diff --git a/.codecov.yml b/.codecov.yml
index 0a6f9328c8e..0a43b628247 100644
--- a/.codecov.yml
+++ b/.codecov.yml
@@ -14,6 +14,6 @@ coverage:
# - !ci.appveyor.com
codecov:
notify:
- # GHA: 5, Jenkins: 6
- after_n_builds: 11 # all
+ # GHA: 4, Jenkins: 4
+ after_n_builds: 8 # all
wait_for_ci: yes
diff --git a/.coin-or/projDesc.xml b/.coin-or/projDesc.xml
index 4d8b04b9c60..f90396b523e 100644
--- a/.coin-or/projDesc.xml
+++ b/.coin-or/projDesc.xml
@@ -107,7 +107,7 @@ Carl D. Laird, Chair, Pyomo Management Committee, cdlaird at sandia dot gov
license file directly.
-->
- https://github.com/Pyomo/pyomo/blob/master/LICENSE.txt
+ https://github.com/Pyomo/pyomo/blob/main/LICENSE.txt
diff --git a/.coveragerc b/.coveragerc
index 34b0503f183..148d49a802a 100644
--- a/.coveragerc
+++ b/.coveragerc
@@ -7,6 +7,7 @@ omit =
# The [run] section must be at the end, as the build harness will add a
# "data_file" directive to the end of this file.
[run]
+concurrency = multiprocessing,thread
parallel = True
source =
pyomo
diff --git a/.github/workflows/pr_master_test.yml b/.github/workflows/pr_master_test.yml
index 648d9f5c3dd..a5f7ebbffdd 100644
--- a/.github/workflows/pr_master_test.yml
+++ b/.github/workflows/pr_master_test.yml
@@ -3,10 +3,10 @@ name: GitHub CI
on:
push:
branches:
- - master
+ - main
pull_request:
branches:
- - master
+ - main
workflow_dispatch:
inputs:
git-ref:
@@ -27,7 +27,7 @@ env:
pint pyro4 pyyaml sphinx_rtd_theme sympy xlrd
python-louvain
PYTHON_NUMPY_PKGS: >
- numpy scipy pyodbc pandas matplotlib seaborn numdifftools
+ numpy scipy pyodbc pandas matplotlib seaborn numdifftools casadi
CACHE_VER: v3
NEOS_EMAIL: tests@pyomo.org
@@ -62,7 +62,7 @@ jobs:
PACKAGES: glpk
- os: ubuntu-18.04
- python: 3.7
+ python: 3.8
other: /mpi
mpi: 3
skip_doctest: 1
@@ -88,11 +88,12 @@ jobs:
- os: ubuntu-18.04
python: 3.6
- other: /parallel
- category: parallel
+ other: /cython
+ setup_options: --with-cython
skip_doctest: 1
TARGET: linux
PYENV: pip
+ PACKAGES: cython
- os: ubuntu-18.04
python: 3.7
@@ -102,15 +103,6 @@ jobs:
TARGET: linux
PYENV: pip
- - os: ubuntu-18.04
- python: 3.6
- other: /cython
- setup_options: --with-cython
- skip_doctest: 1
- TARGET: linux
- PYENV: pip
- PACKAGES: cython
-
exclude:
- {os: macos-latest, python: pypy3}
- {os: windows-latest, python: pypy3}
@@ -203,7 +195,6 @@ jobs:
for pkg in bash pkg-config unixodbc freetds glpk; do
brew list $pkg || brew install $pkg
done
- #brew link --overwrite gcc
- name: Update Linux
if: matrix.TARGET == 'linux'
@@ -649,6 +640,11 @@ jobs:
- name: Upload codecov reports
run: |
set +e
+ if [ "$GITHUB_EVENT_NAME" == "pull_request" ]; then
+ SHA=$(jq --raw-output .pull_request.head.sha "$GITHUB_EVENT_PATH")
+ else
+ SHA=$GITHUB_SHA
+ fi
function upload {
echo ""
echo "Build group: $1"
@@ -667,17 +663,22 @@ jobs:
i=0
while : ; do
((i+=1))
+ rm -f codecov.log
echo "Uploading coverage to codecov (attempt ${i})"
bash $CODECOV -Z -e TAG,GHA_OS_NAME -X gcov -X s3 \
- -f coverage.xml
+ -f coverage.xml -C $SHA | tee codecov.log
if test $? == 0; then
echo "PASS $CODECOV_NAME" >> codecov.result
break
elif test $i -ge 2; then
- # Do not fail the build (yet) just because the codecov
- # upload fails
- echo "FAIL $CODECOV_NAME" >> codecov.result
- break
+ if test `grep successfully codecov.log | wc -l` -gt 0; then
+ echo "PASS $CODECOV_NAME (implied)" >> codecov.result
+ else
+ # Do not fail the build (yet) just because the
+ # codecov upload fails
+ echo "FAIL $CODECOV_NAME" >> codecov.result
+ break
+ fi
fi
DELAY=$(( RANDOM % 30 + 30))
echo "Pausing $DELAY seconds before re-attempting upload"
diff --git a/.github/workflows/push_branch_test.yml b/.github/workflows/push_branch_test.yml
index 964b9a12242..8c9c382cd0c 100644
--- a/.github/workflows/push_branch_test.yml
+++ b/.github/workflows/push_branch_test.yml
@@ -3,7 +3,7 @@ name: GitHub Branch CI
on:
push:
branches-ignore:
- - master
+ - main
workflow_dispatch:
inputs:
git-ref:
@@ -24,7 +24,7 @@ env:
pint pyro4 pyyaml sphinx_rtd_theme sympy xlrd
python-louvain
PYTHON_NUMPY_PKGS: >
- numpy scipy pyodbc pandas matplotlib seaborn numdifftools
+ numpy scipy pyodbc pandas matplotlib seaborn numdifftools casadi
CACHE_VER: v3
NEOS_EMAIL: tests@pyomo.org
@@ -87,14 +87,6 @@ jobs:
- os: ubuntu-18.04
python: 3.6
- other: /parallel
- category: parallel
- skip_doctest: 1
- TARGET: linux
- PYENV: pip
-
- - os: ubuntu-18.04
- python: 3.7
other: /cython
setup_options: --with-cython
skip_doctest: 1
@@ -190,7 +182,6 @@ jobs:
for pkg in bash pkg-config unixodbc freetds glpk; do
brew list $pkg || brew install $pkg
done
- #brew link --overwrite gcc
- name: Update Linux
if: matrix.TARGET == 'linux'
@@ -636,6 +627,11 @@ jobs:
- name: Upload codecov reports
run: |
set +e
+ if [ "$GITHUB_EVENT_NAME" == "pull_request" ]; then
+ SHA=$(jq --raw-output .pull_request.head.sha "$GITHUB_EVENT_PATH")
+ else
+ SHA=$GITHUB_SHA
+ fi
function upload {
echo ""
echo "Build group: $1"
@@ -654,17 +650,22 @@ jobs:
i=0
while : ; do
((i+=1))
+ rm -f codecov.log
echo "Uploading coverage to codecov (attempt ${i})"
bash $CODECOV -Z -e TAG,GHA_OS_NAME -X gcov -X s3 \
- -f coverage.xml
+ -f coverage.xml -C $SHA | tee codecov.log
if test $? == 0; then
echo "PASS $CODECOV_NAME" >> codecov.result
break
elif test $i -ge 2; then
- # Do not fail the build (yet) just because the codecov
- # upload fails
- echo "FAIL $CODECOV_NAME" >> codecov.result
- break
+ if test `grep successfully codecov.log | wc -l` -gt 0; then
+ echo "PASS $CODECOV_NAME (implied)" >> codecov.result
+ else
+ # Do not fail the build (yet) just because the
+ # codecov upload fails
+ echo "FAIL $CODECOV_NAME" >> codecov.result
+ break
+ fi
fi
DELAY=$(( RANDOM % 30 + 30))
echo "Pausing $DELAY seconds before re-attempting upload"
diff --git a/README.md b/README.md
index 36a96dc1ba2..c8c1095e27e 100644
--- a/README.md
+++ b/README.md
@@ -1,8 +1,7 @@
[![Github Actions Status](https://github.com/Pyomo/pyomo/workflows/GitHub%20CI/badge.svg?event=push)](https://github.com/Pyomo/pyomo/actions?query=event%3Apush+workflow%3A%22GitHub+CI%22)
[![Jenkins Status](https://img.shields.io/jenkins/s/https/software.sandia.gov/downloads/pub/pyomo/jenkins/Pyomo_trunk.svg?logo=jenkins&logoColor=white)](https://jenkins-srn.sandia.gov/job/Pyomo_trunk)
-[![codecov](https://codecov.io/gh/Pyomo/pyomo/branch/master/graph/badge.svg)](https://codecov.io/gh/Pyomo/pyomo)
+[![codecov](https://codecov.io/gh/Pyomo/pyomo/branch/main/graph/badge.svg)](https://codecov.io/gh/Pyomo/pyomo)
[![Documentation Status](https://readthedocs.org/projects/pyomo/badge/?version=latest)](http://pyomo.readthedocs.org/en/latest/)
-
[![GitHub contributors](https://img.shields.io/github/contributors/pyomo/pyomo.svg)](https://github.com/pyomo/pyomo/graphs/contributors)
[![Merged PRs](https://img.shields.io/github/issues-pr-closed-raw/pyomo/pyomo.svg?label=merged+PRs)](https://github.com/pyomo/pyomo/pulls?q=is:pr+is:merged)
[![Issue stats](http://isitmaintained.com/badge/resolution/pyomo/pyomo.svg)](http://isitmaintained.com/project/pyomo/pyomo)
@@ -11,7 +10,13 @@
[![a COIN-OR project](https://www.coin-or.org/GitHub/coin-or-badge.png)](https://www.coin-or.org)
## Pyomo Overview
-Pyomo is a Python-based open-source software package that supports a diverse set of optimization capabilities for formulating and analyzing optimization models. Pyomo can be used to define symbolic problems, create concrete problem instances, and solve these instances with standard solvers. Pyomo supports a wide range of problem types, including:
+
+Pyomo is a Python-based open-source software package that supports a
+diverse set of optimization capabilities for formulating and analyzing
+optimization models. Pyomo can be used to define symbolic problems,
+create concrete problem instances, and solve these instances with
+standard solvers. Pyomo supports a wide range of problem types,
+including:
- Linear programming
- Quadratic programming
@@ -24,7 +29,14 @@ Pyomo is a Python-based open-source software package that supports a diverse set
- Differential algebraic equations
- Mathematical programming with equilibrium constraints
-Pyomo supports analysis and scripting within a full-featured programming language. Further, Pyomo has also proven an effective framework for developing high-level optimization and analysis tools. For example, the PySP package provides generic solvers for stochastic programming. PySP leverages the fact that Pyomo's modeling objects are embedded within a full-featured high-level programming language, which allows for transparent parallelization of subproblems using Python parallel communication libraries.
+Pyomo supports analysis and scripting within a full-featured programming
+language. Further, Pyomo has also proven an effective framework for
+developing high-level optimization and analysis tools. For example, the
+[`mpi-sppy`](https://github.com/Pyomo/mpi-sppy) package provides generic
+solvers for stochastic programming. `mpi-sppy` leverages the fact that
+Pyomo's modeling objects are embedded within a full-featured high-level
+programming language, which allows for transparent parallelization of
+subproblems using Python parallel communication libraries.
* [Pyomo Home](http://www.pyomo.org)
* [About Pyomo](http://www.pyomo.org/about)
@@ -68,9 +80,15 @@ Pyomo is currently tested with the following Python implementations:
### Developers
Pyomo development moved to this repository in June, 2016 from
-Sandia National Laboratories. Developer discussions are hosted by [google groups](https://groups.google.com/forum/#!forum/pyomo-developers).
+Sandia National Laboratories. Developer discussions are hosted by
+[google groups](https://groups.google.com/forum/#!forum/pyomo-developers).
-By contributing to this software project, you are agreeing to the following terms and conditions for your contributions:
+By contributing to this software project, you are agreeing to the
+following terms and conditions for your contributions:
1. You agree your contributions are submitted under the BSD license.
-2. You represent you are authorized to make the contributions and grant the license. If your employer has rights to intellectual property that includes your contributions, you represent that you have received permission to make contributions and grant the required license on behalf of that employer.
+2. You represent you are authorized to make the contributions and grant
+ the license. If your employer has rights to intellectual property that
+ includes your contributions, you represent that you have received
+ permission to make contributions and grant the required license on
+ behalf of that employer.
diff --git a/doc/OnlineDocs/advanced_topics/index.rst b/doc/OnlineDocs/advanced_topics/index.rst
index cc4f67837e2..e727dfc0d67 100644
--- a/doc/OnlineDocs/advanced_topics/index.rst
+++ b/doc/OnlineDocs/advanced_topics/index.rst
@@ -5,6 +5,5 @@ Advanced Topics
:maxdepth: 1
persistent_solvers.rst
- pysp_rapper/index.rst
units_container.rst
linearexpression.rst
diff --git a/doc/OnlineDocs/advanced_topics/pysp_rapper/Abstractrapper.rst b/doc/OnlineDocs/advanced_topics/pysp_rapper/Abstractrapper.rst
deleted file mode 100644
index 7a0143a8d8b..00000000000
--- a/doc/OnlineDocs/advanced_topics/pysp_rapper/Abstractrapper.rst
+++ /dev/null
@@ -1,77 +0,0 @@
-Abstract Constructor
-====================
-
-..
- doctest:: I can't stop output from PySP so I can't test. And also:
-
- I think it is a bad idea to try to insist that output is the same
- every time this runs. I have other tests of this code, so it should
- be enough for the doctest just make sure there are no exceptions.
-
- I have tried +ELLIPSIS in various ways, but can't make it work, so
- I am testing as far as I can, then disabling.
-
-In :ref:`demosect` we provide a series of examples intended to show different things that can be done with rapper and the constructor is shown
-for a `ConcreteModel`. The same capabilities are available for
-an `AbstractModel` but the construction of the `rapper` object is
-different as shown here.
-
-.. testsetup:: *
-
- import tempfile
- import sys
- import os
- import shutil
- import pyomo as pyomoroot
-
- tdir = tempfile.mkdtemp() #TemporaryDirectory().name
- sys.path.insert(1, tdir)
-
- savecwd = os.getcwd()
- os.chdir(tdir)
-
- p = str(pyomoroot.__path__)
- l = p.find("'")
- r = p.find("'", l+1)
- pyomorootpath = p[l+1:r]
- farmpath = pyomorootpath + os.sep + ".." + os.sep + "examples" + os.sep + "pysp" + os.sep + "farmer"
- farmpath = os.path.abspath(farmpath)
-
- farmer_abstract_file = farmpath + os.sep + \
- "models" + os.sep + "ReferenceModel.py"
-
- shutil.copyfile(farmer_abstract_file,
- tdir + os.sep + "ReferenceModel.py")
-
- fromdir = farmpath + os.sep +"scenariodata"
-
- for filename in os.listdir(fromdir):
- if filename.endswith(".dat"):
- src = str(fromdir + os.sep + filename)
- shutil.copyfile(src, tdir + os.sep + filename)
-
- ReferencePath = "."
- scenariodirPath = "."
-
- solvername = "cplex"
-
-.. doctest::
-
- Import for constructor:
-
- >>> import pyomo.pysp.util.rapper as rapper
-
-The next line constructs the `rapper` object that can be used
-to emulate `runph` or `runef`.
-
- >>> stsolver = rapper.StochSolver(ReferencePath,
- ... fsfct = None,
- ... tree_model = scenariodirPath,
- ... phopts = None)
-
-.. testcleanup:: *
-
- os.chdir(savecwd)
-
-
-
diff --git a/doc/OnlineDocs/advanced_topics/pysp_rapper/demorapper.rst b/doc/OnlineDocs/advanced_topics/pysp_rapper/demorapper.rst
deleted file mode 100644
index 05e934079dc..00000000000
--- a/doc/OnlineDocs/advanced_topics/pysp_rapper/demorapper.rst
+++ /dev/null
@@ -1,174 +0,0 @@
-.. _demosect:
-
-Demonstration of rapper Capabilities
-====================================
-
-..
- doctest:: I can't stop output from PySP so I can't test. And also:
-
- I think it is a bad idea to try to insist that output is the same
- every time this runs. I have other tests of this code, so it should
- be enough for the doctest just make sure there are no exceptions.
-
- I have tried +ELLIPSIS in various ways, but can't make it work, so
- I am testing as far as I can, then disabling.
-
-In this section we provide a series of examples intended to show different things that
-can be done with rapper.
-
-.. testsetup:: *
-
- import tempfile
- import sys
- import os
- import shutil
- import pyomo as pyomoroot
-
- tdir = tempfile.mkdtemp() #TemporaryDirectory().name
- sys.path.insert(1, tdir)
-
- savecwd = os.getcwd()
- os.chdir(tdir)
-
- p = str(pyomoroot.__path__)
- l = p.find("'")
- r = p.find("'", l+1)
- pyomorootpath = p[l+1:r]
- farmpath = pyomorootpath + os.sep + ".." + os.sep + "examples" + os.sep + "pysp" + os.sep + "farmer"
- farmpath = os.path.abspath(farmpath)
-
- farmer_concrete_file = farmpath + os.sep + \
- "concrete" + os.sep + "ReferenceModel.py"
-
- shutil.copyfile(farmer_concrete_file,
- tdir + os.sep + "ReferenceModel.py")
-
- shutil.copyfile(farmpath + os.sep +"scenariodata" + os.sep + "ScenarioStructure.dat",
- tdir + os.sep + "ScenarioStructure.dat")
-
-.. doctest::
-
- Imports:
-
- >>> import pyomo.pysp.util.rapper as rapper
- >>> import pyomo.pysp.plugins.csvsolutionwriter as csvw
- >>> from pyomo.pysp.scenariotree.tree_structure_model import CreateAbstractScenarioTreeModel
- >>> import pyomo.environ as pyo
-
- The next line establishes the solver to be used.
-
- >>> solvername = "cplex"
-
- The next two lines show one way to create a concrete scenario tree. There are
- others that can be found in `pyomo.pysp.scenariotree.tree_structure_model`.
-
- >>> abstract_tree = CreateAbstractScenarioTreeModel()
- >>> concrete_tree = \
- ... abstract_tree.create_instance("ScenarioStructure.dat")
-
-
-Emulate some aspects of `runef`
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
- Create a `rapper` solver object assuming there is a
- file named `ReferenceModel.py` that has an appropriate
- `pysp_instance_creation_callback` function.
-
- >>> stsolver = rapper.StochSolver("ReferenceModel.py",
- ... tree_model = concrete_tree)
-
- This object has a `solve_ef` method (as well as a `solve_ph` method)
-
- >>> ef_sol = stsolver.solve_ef(solvername) # doctest: +SKIP
-
- The return status from the solver can be tested.
-
- >>> if ef_sol.solver.termination_condition != \ # doctest: +SKIP
- ... pyo.TerminationCondition.optimal: # doctest: +SKIP
- ... print ("oops! not optimal:",ef_sol.solver.termination_condition) # doctest: +SKIP
-
- There is an iterator to loop over the root node solution:
-
- >>> for varname, varval in stsolver.root_Var_solution(): # doctest: +SKIP
- ... print (varname, str(varval)) # doctest: +SKIP
-
- There is also a function to compute compute the objective
- function value.
-
- >>> obj = stsolver.root_E_obj() # doctest: +SKIP
- >>> print ("Expecatation take over scenarios=", obj) # doctest: +SKIP
-
- Also, `stsolver.scenario_tree` has the solution. The package
- csvw is imported from PySP as shown above.
-
- >>> csvw.write_csv_soln(stsolver.scenario_tree, "testcref") # doctest: +SKIP
-
- It is also possible to add arguments for chance constraints and CVaR; see :ref:`rapperAPI`
- for details.
-
-Again, but with mip gap reported
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
- Now we will solve the same problem again, but we cannot re-use the
- same `rapper.StochSolver` object in the same program so we must construct
- a new one; however, we can re-used the scenario tree.
-
- >>> stsolver = rapper.StochSolver("ReferenceModel.py", # doctest: +SKIP
- ... tree_model = concrete_tree) # doctest: +SKIP
-
- We add a solver option to get the mip gap
-
- >>> sopts = {"mipgap": 1} # I want a gap
-
- and we add the option to `solve_ef` to return the gap and
- the `tee` option to see the solver output as well.
-
- >>> res, gap = stsolver.solve_ef(solvername, sopts = sopts, tee=True, need_gap = True) # doctest: +SKIP
- >>> print ("ef gap=",gap) # doctest: +SKIP
-
-PH
-^^
-
- We will now do the same problem, but with PH and we will re-use the scenario
- tree in `tree_model` from the code above. We put sub-solver options in
- `sopts` and PH options (i.e., those that would provided to `runph`)
- Note that if options are passed to the constructor (and the solver);
- they are passed as a dictionary where options that do not have
- an argument have the data value `None`. The constructor really only
- needs to some options, such as those related to bundling.
-
- >>> sopts = {}
- >>> sopts['threads'] = 2
- >>> phopts = {}
- >>> phopts['--output-solver-log'] = None
- >>> phopts['--max-iterations'] = '3'
-
- >>> stsolver = rapper.StochSolver("ReferenceModel.py",
- ... tree_model = concrete_tree,
- ... phopts = phopts)
-
- The `solve_ph` method is similar to `solve_ef`, but requires
- a `default_rho` and accepts PH options:
-
- >>> ph = stsolver.solve_ph(subsolver = solvername, default_rho = 1, # doctest: +SKIP
- ... phopts=phopts) # doctest: +SKIP
-
- With PH, it is important to be careful to distinguish x-bar from x-hat.
-
- >>> obj = stsolver.root_E_obj() # doctest: +SKIP
-
- We can compute and x-hat (using the current PH options):
-
- >>> obj, xhat = rapper.xhat_from_ph(ph) # doctest: +SKIP
-
- There is a utility for obtaining the x-hat values:
-
- >>> for nodename, varname, varvalue in rapper.xhat_walker(xhat): # doctest: +SKIP
- ... print (nodename, varname, varvalue) # doctest: +SKIP
-
-.. testcleanup:: *
-
- os.chdir(savecwd)
-
-
-
diff --git a/doc/OnlineDocs/advanced_topics/pysp_rapper/index.rst b/doc/OnlineDocs/advanced_topics/pysp_rapper/index.rst
deleted file mode 100644
index 77dce81e650..00000000000
--- a/doc/OnlineDocs/advanced_topics/pysp_rapper/index.rst
+++ /dev/null
@@ -1,25 +0,0 @@
-.. _rappersection:
-
-rapper: a PySP wrapper
-======================
-
-This is an advanced topic.
-
-The `pyomo.pysp.util.rapper` package is built on the Pyomo optimization
-modeling language ([PyomoJournal]_, [PyomoBookII]_) to provide a thin
-wrapper for some functionality of PySP [PySPJournal]_ associated with
-the `runef` and `runph` commands. The package is designed mainly for
-experienced Python programmers who are users of a Pyomo `ConcreteModel` in PySP
-and who want to embed the solution process is simple scripts. There
-is also support for users of a Pyomo `AbstractModel`. Note that
-callback functions are also supported for some aspects of PySP, which
-is somewhat orthogonal to the functionality provided by
-`pyomo.pysp.util.rapper`.
-
-.. toctree::
- :maxdepth: 2
-
- demorapper.rst
- stochsolverapi.rst
- Abstractrapper.rst
- rap.rst
diff --git a/doc/OnlineDocs/advanced_topics/pysp_rapper/rap.rst b/doc/OnlineDocs/advanced_topics/pysp_rapper/rap.rst
deleted file mode 100644
index ab9d119dc48..00000000000
--- a/doc/OnlineDocs/advanced_topics/pysp_rapper/rap.rst
+++ /dev/null
@@ -1,53 +0,0 @@
-The rap
-=======
-
-As homage to the tired cliché based on the rap-wrap homonym, we provide the lyrics to our rap anthem:
-
-A PySP State of Mind (The Pyomo Hip Hop)
-
-By Woody and https://www.song-lyrics-generator.org.uk
-
-::
-
- Yeah, yeah
- Ayo, modeller, it's time.
- It's time, modeller (aight, modeller, begin).
- Straight out the scriptable dungeons of rap.
-
- The cat drops deep as does my map.
- I never program, 'cause to program is the uncle of rap.
- Beyond the walls of scenarios, life is defined.
- I think of optimization under uncertainty when I'm in a PySP state of mind.
-
- Hope the resolution got some institution.
- My revolution don't like no dirty retribution.
- Run up to the distribution and get the evolution.
-
- In a PySP state of mind.
-
- What more could you ask for? The fast cat?
- You complain about unscriptability.
- I gotta love it though - somebody still speaks for the mat.
-
- I'm rappin' with a cape,
- And I'm gonna move your escape.
-
- Easy, big, indented, like a solution
- Boy, I tell you, I thought you were an institution.
-
- I can't take the unscriptability, can't take the script.
- I woulda tried to code I guess I got no transcript.
-
- Yea, yaz, in a PySP state of mind.
-
- When I was young my uncle had a nondescript.
- I waz kicked out without no manuscript.
- I never thought I'd see that crypt.
- Ain't a soul alive that could take my uncle's transcript.
-
- An object oriented fox is quite the box.
-
- Thinking of optimization under uncertainty.
- Yaz, thinking of optimization under uncertainty
- (optimization under uncertainty).
-
diff --git a/doc/OnlineDocs/advanced_topics/pysp_rapper/stochsolverapi.rst b/doc/OnlineDocs/advanced_topics/pysp_rapper/stochsolverapi.rst
deleted file mode 100644
index 2d66986301d..00000000000
--- a/doc/OnlineDocs/advanced_topics/pysp_rapper/stochsolverapi.rst
+++ /dev/null
@@ -1,9 +0,0 @@
-.. _rapperAPI:
-
-rapper API
-===============
-
-.. automodule:: pyomo.pysp.util.rapper
- :members:
- :undoc-members:
- :show-inheritance:
diff --git a/doc/OnlineDocs/conf.py b/doc/OnlineDocs/conf.py
index 5cb00f9a744..c0290df8a54 100644
--- a/doc/OnlineDocs/conf.py
+++ b/doc/OnlineDocs/conf.py
@@ -219,6 +219,7 @@ def setup(app):
pympler_available, dill_available,
)
pint_available = attempt_import('pint', defer_check=False)[1]
+from pyomo.contrib.parmest.parmest import parmest_available
import pyomo.opt
# Not using SolverFactory to check solver availability because
diff --git a/doc/OnlineDocs/contributed_packages/parmest/datarec.rst b/doc/OnlineDocs/contributed_packages/parmest/datarec.rst
index 7fa9dce84d5..6b721377e46 100644
--- a/doc/OnlineDocs/contributed_packages/parmest/datarec.rst
+++ b/doc/OnlineDocs/contributed_packages/parmest/datarec.rst
@@ -34,7 +34,7 @@ Here's a full program that can be run to see returned values (in this case it
is the response function that is defined in the model file):
.. doctest::
- :skipif: not ipopt_available or not pandas_available
+ :skipif: not ipopt_available or not parmest_available
>>> import pandas as pd
>>> import pyomo.contrib.parmest.parmest as parmest
diff --git a/doc/OnlineDocs/contribution_guide.rst b/doc/OnlineDocs/contribution_guide.rst
index 3306c4f5ce1..71cc658001b 100644
--- a/doc/OnlineDocs/contribution_guide.rst
+++ b/doc/OnlineDocs/contribution_guide.rst
@@ -15,7 +15,7 @@ and ensures that functional changes aren't obscured by large amounts of
non-functional changes.
We do not squash and merge PRs so all commits in your branch will appear
-in the master history. In addition to well-documented PR descriptions,
+in the main history. In addition to well-documented PR descriptions,
we encourage modular/targeted commits with descriptive commit messages.
Coding Standards
@@ -51,12 +51,12 @@ at least 70% coverage of the lines modified in the PR and prefer coverage
closer to 90%. We also require that all tests pass before a PR will be
merged.
-The Pyomo master branch provides a Github Actions workflow (configured
+The Pyomo main branch provides a Github Actions workflow (configured
in the ``.github/`` directory) that will test any changes pushed to
a branch with a subset of the complete test harness that includes
multiple virtual machines (ubuntu, mac-os, windows)
and multiple Python versions. For existing forks, fetch and merge
-your fork (and branches) with Pyomo's master. For new forks, you will
+your fork (and branches) with Pyomo's main. For new forks, you will
need to enable GitHub Actions in the 'Actions' tab on your fork.
This will enable the tests to run automatically with each push to your fork.
@@ -137,7 +137,7 @@ sure all the changes have been pushed to the branch on your fork.
* visit https://github.com//pyomo.
* Just above the list of files and directories in the repository,
- you should see a button that says "Branch: master". Click on
+ you should see a button that says "Branch: main". Click on
this button, and choose the correct branch.
* Click the "New pull request" button just to the right of the
"Branch: " button.
@@ -145,14 +145,14 @@ sure all the changes have been pushed to the branch on your fork.
pull request" button.
At times during your development, you may want to merge changes from
-the Pyomo master development branch into the feature branch on your
+the Pyomo main development branch into the feature branch on your
fork and in your local clone of the repository.
-Using GitHub UI to merge Pyomo master into a branch on your fork
+Using GitHub UI to merge Pyomo main into a branch on your fork
****************************************************************
To update your fork, you will actually be merging a pull-request from
-the main Pyomo repository into your fork.
+the head Pyomo repository into your fork.
* Visit https://github.com/Pyomo/pyomo.
* Click on the "New pull request" button just above the list of
@@ -163,19 +163,19 @@ the main Pyomo repository into your fork.
across forks." Click the last part of this: "compare across
forks".
* You should now see four buttons just below this: "base
- repository: Pyomo/pyomo", "base: master", "head repository:
- Pyomo/pyomo", and "compare: master". Click the leftmost button
+ repository: Pyomo/pyomo", "base: main", "head repository:
+ Pyomo/pyomo", and "compare: main". Click the leftmost button
and choose "/Pyomo".
* Then click the button which is second to the left, and choose
- the branch which you want to merge Pyomo master into. The four
+ the branch which you want to merge Pyomo main into. The four
buttons should now read: "base repository: /pyomo",
"base: ", "head repository: Pyomo/pyomo", and
- "compare: master". This is setting you up to merge a pull-request
- from Pyomo's master branch into your fork's branch.
+ "compare: main". This is setting you up to merge a pull-request
+ from Pyomo's main branch into your fork's branch.
* You should also now see a pull request template. If you fill out
the pull request template and click "Create pull request", this
will create a pull request which will update your fork and
- branch with any changes that have been made to the master branch
+ branch with any changes that have been made to the main branch
of Pyomo.
* You can then merge the pull request by clicking the green "Merge
pull request" button from your fork on GitHub.
@@ -192,13 +192,13 @@ but, of course, there are other valid GitHub workflows that you can
adopt.
The following commands show how to clone your fork and setup
-two remotes, one for your fork, and one for the main Pyomo repository.
+two remotes, one for your fork, and one for the head Pyomo repository.
::
git clone https://github.com//pyomo.git
git remote rename origin my-fork
- git remote add main-pyomo https://github.com/pyomo/pyomo.git
+ git remote add head-pyomo https://github.com/pyomo/pyomo.git
Note, you can see a list of your remotes with
@@ -224,8 +224,8 @@ Pyomo repository,
::
git checkout
- git fetch main-pyomo
- git merge main-pyomo/ --ff-only
+ git fetch head-pyomo
+ git merge head-pyomo/ --ff-only
The "--ff-only" only allows a merge if the merge can be done by a
fast-forward. If you do not require a fast-forward, you can drop this
@@ -233,17 +233,17 @@ option. The most common concrete example of this would be
::
- git checkout master
- git fetch main-pyomo
- git merge main-pyomo/master --ff-only
+ git checkout main
+ git fetch head-pyomo
+ git merge head-pyomo/main --ff-only
-The above commands pull changes from the master branch of the main
-Pyomo repository into the master branch of your local clone. To push
-these changes to the master branch on your fork,
+The above commands pull changes from the main branch of the head
+Pyomo repository into the main branch of your local clone. To push
+these changes to the main branch on your fork,
::
- git push my-fork master
+ git push my-fork main
Setting up your development environment
@@ -265,7 +265,7 @@ You may change the environment name from ``pyomodev`` as you see fit. Then activ
Step 2: Install PyUtilib
-You will likely need the master branch of PyUtilib to contribute to Pyomo. Clone a copy of the repository in a new directory:
+You will likely need the main branch of PyUtilib to contribute to Pyomo. Clone a copy of the repository in a new directory:
::
diff --git a/doc/OnlineDocs/library_reference/kernel/index.rst b/doc/OnlineDocs/library_reference/kernel/index.rst
index 432c5766ffe..70c3cc715a9 100644
--- a/doc/OnlineDocs/library_reference/kernel/index.rst
+++ b/doc/OnlineDocs/library_reference/kernel/index.rst
@@ -7,7 +7,7 @@
.. warning::
- Models built with :python:`pyomo.kernel` components are not yet compatible with pyomo extension modules (e.g., :python:`pyomo.pysp`, :python:`pyomo.dae`, :python:`pyomo.gdp`).
+ Models built with :python:`pyomo.kernel` components are not yet compatible with pyomo extension modules (e.g., :python:`PySP`, :python:`pyomo.dae`, :python:`pyomo.gdp`).
The Kernel Library
==================
diff --git a/doc/OnlineDocs/modeling_extensions/index.rst b/doc/OnlineDocs/modeling_extensions/index.rst
index 23d21d0bd2d..3a3370e510a 100644
--- a/doc/OnlineDocs/modeling_extensions/index.rst
+++ b/doc/OnlineDocs/modeling_extensions/index.rst
@@ -6,7 +6,7 @@ Modeling Extensions
bilevel.rst
dae.rst
- mpec.rst
gdp/index.rst
- pysp.rst
+ mpec.rst
+ stochastic_programming.rst
network.rst
diff --git a/doc/OnlineDocs/modeling_extensions/pysp.rst b/doc/OnlineDocs/modeling_extensions/pysp.rst
deleted file mode 100644
index a90ad5e6f61..00000000000
--- a/doc/OnlineDocs/modeling_extensions/pysp.rst
+++ /dev/null
@@ -1,1487 +0,0 @@
-Stochastic Programming
-======================
-
-.. image:: /../logos/pysp/PySP-logo-Web2.png
- :scale: 35%
- :align: right
-
-To express a stochastic program in PySP, the user specifies both the
-deterministic base model and the scenario tree model with associated
-uncertain parameters. Both concrete and abstract model representations
-are supported.
-
-Given the deterministic and scenario tree models, PySP provides multiple
-paths for the solution of the corresponding stochastic program. One
-alternative involves forming the extensive form and invoking an
-appropriate deterministic solver for the entire problem once. For more
-complex stochastic programs, we provide a generic implementation of
-Rockafellar and Wets' Progressive Hedging algorithm, with additional
-specializations for approximating mixed-integer stochastic programs as
-well as other decomposition methods. By leveraging the combination of a
-high-level programming language (Python) and the embedding of the base
-deterministic model in that language (Pyomo), we are able to provide
-completely generic and highly configurable solver implementations.
-
-This section describes PySP: (Pyomo Stochastic Programming), where
-parameters are allowed to be uncertain.
-
-Overview of Modeling Components and Processes
----------------------------------------------
-
-The sequence of activities is typically the following:
-
-- Create a deterministic model and declare components
-- Develop base-case data for the deterministic model
-- Test, verify and validate the deterministic model
-- Model the stochastic processes
-- Develop a way to generate scenarios (in the form of a tree if there
- are more than two stages)
-- Create the data files need to describe the stochastics
-- Use PySP to solve stochastic problem
-
-When viewed from the standpoint of file creation, the process is
-
-- Create an abstract model for the deterministic problem in a file
- called ``ReferenceModel.py``
-- Specify the stochastics in a file called ``ScenarioStructure.dat``
-- Specify scenario data
-
-Birge and Louveaux's Farmer Problem
------------------------------------
-
-Birge and Louveaux [BirgeLouveauxBook]_ make use of the example of a
-farmer who has 500 acres that can be planted in wheat, corn or sugar
-beets, at a per acre cost of 150, 230 and 260 (Euros, presumably),
-respectively. The farmer needs to have at least 200 tons of wheat and
-240 tons of corn to use as feed, but if enough is not grown, those crops
-can be purchased for 238 and 210, respectively. Corn and wheat grown in
-excess of the feed requirements can be sold for 170 and 150,
-respectively. A price of 36 per ton is guaranteed for the first 6000
-tons grown by any farmer, but beets in excess of that are sold for 10
-per ton. The yield is 2.5, 3, and 20 tons per acre for wheat, corn and
-sugar beets, respectively.
-
-ReferenceModel.py
-^^^^^^^^^^^^^^^^^
-
-So far, this is a deterministic problem because we are assuming that we
-know all the data. The Pyomo model for this problem shown here is in the
-file ``ReferenceModel.py`` in the sub-directory
-``examples/pysp/farmer/models`` that is distributed with Pyomo.
-
-.. literalinclude:: ../tests/scripting/pysp/farmer/models/ReferenceModel.py
- :language: python
-
-Example Data
-^^^^^^^^^^^^
-
-The data introduced here are in the file AverageScenario.dat in the
-sub-directory examples/pysp/farmer/scenariodata that is distributed with
-Pyomo. These data are given for illustration. The file
-ReferenceModel.dat is not required by PySP.
-
-.. literalinclude:: ../tests/scripting/pysp/farmer/scenariodata/AverageScenario.dat
- :language: python
-
-Any of these data could be modeled as uncertain, but we will consider
-only the possibility that the yield per acre could be higher or lower
-than expected. Assume that there is a probability of 1/3 that the yields
-will be the average values that were given (i.e., wheat 2.5; corn 3; and
-beets 20). Assume that there is a 1/3 probability that they will be
-lower (2, 2.4, 16) and 1/3 probability they will be higher (3, 3.6, 24).
-We refer to each full set of data as a *scenario* and collectively we
-call them a *scenario* *tree*. In this case the scenario tree is very
-simple: there is a root node and three leaf nodes: one corresponding to
-each scenario. The acreage-to-plant decisions are root node decisions
-because they must be made without knowing what the yield will be. The
-other variables are so-called *second* *stage* decisions, because they
-will depend on which scenario is realized.
-
-ScenarioStructure.dat
-^^^^^^^^^^^^^^^^^^^^^
-
-PySP requires that users describe the scenario tree using specific
-constructs in a file named ``ScenarioStructure.dat``; for the farmer
-problem, this file can be found in the pyomo sub-directory
-``examples/pysp/farmer/scenariodata`` that is distributed with Pyomo.
-
-.. literalinclude:: ../tests/scripting/pysp/farmer/scenariodata/ScenarioStructure.dat
- :language: python
-
-This data file is verbose and somewhat redundant, but in most
-applications it is generated by software rather than by a person, so
-this is not an issue. Generally, the left-most part of each expression
-(e.g. ''set Stages :='') is required and uses reserved words (e.g.,
-``Stages``) and the other names are supplied by the user (e.g.,
-''FirstStage'' could be any name). Every assignment is terminated with a
-semi-colon. We will now consider the assignments in this file one at a
-time.
-
-The first assignments provides names for the stages and the words "set
-Stages" are required, as are the := symbols. Any names can be used. In
-this example, we used "FirstStage" and "SecondStage" but we could have
-used "EtapPrimero" and "ZweiteEtage" if we had wanted to. Whatever names
-are given here will continue to be used to refer to the stages in the
-rest of the file. The order of the names is important. A simple way to
-think of it is that generally, the names must be in time order
-(technically, they need to be in order of information discovery, but
-that is usually time-order). Stages refers to decision stages, which
-may, or may not, correspond directly with time stages. In the farmer
-example, decisions about how much to plant are made in the first stage
-and "decisions" (which are pretty obvious, but which are decision
-variables nonetheless) about how much to sell at each price and how much
-needs to be bought are second stage decisions because they are made
-after the yield is known.
-
-::
-
- set Stages := FirstStage SecondStage ;
-
-Node names are constructed next. The words "set Nodes" are required, but
-any names may be assigned to the nodes. In two stage stochastic problems
-there is a root node, which we chose to name "RootNode" and then there
-is a node for each scenario.
-
-::
-
- set Nodes := RootNode
- BelowAverageNode
- AverageNode
- AboveAverageNode ;
-
-Nodes are associated with time stages with an assignment beginning with
-the required words "param Nodestage." The assignments must make use of
-previously defined node and stage names. Every node must be assigned a
-stage.
-
-::
-
- param NodeStage := RootNode FirstStage
- BelowAverageNode SecondStage
- AverageNode SecondStage
- AboveAverageNode SecondStage ;
-
-The structure of the scenario tree is defined using assignment of
-children to each node that has them. Since this is a two stage problem,
-only the root node has children. The words "param Children" are required
-for every node that has children and the name of the node is in square
-brackets before the colon-equals assignment symbols. A list of children
-is assigned.
-
-::
-
- set Children[RootNode] := BelowAverageNode
- AverageNode
- AboveAverageNode ;
-
-The probability for each node, conditional on observing the parent node
-is given in an assignment that begins with the required words "param
-ConditionalProbability." The root node always has a conditional
-probability of 1, but it must always be given anyway. In this example,
-the second stage nodes are equally likely.
-
-::
-
- param ConditionalProbability := RootNode 1.0
- BelowAverageNode 0.33333333
- AverageNode 0.33333334
- AboveAverageNode 0.33333333 ;
-
-Scenario names are given in an assignment that begins with the required
-words "set Scenarios" and provides a list of the names of the
-scenarios. Any names may be given. In many applications they are given
-unimaginative names generated by software such as "Scen1" and the
-like. In this example, there are three scenarios and the names reflect
-the relative values of the yields.
-
-::
-
- set Scenarios := BelowAverageScenario
- AverageScenario
- AboveAverageScenario ;
-
-Leaf nodes, which are nodes with no children, are associated with
-scenarios. This assignment must be one-to-one and it is initiated with
-the words "param ScenarioLeafNode" followed by the colon-equals
-assignment characters.
-
-::
-
- param ScenarioLeafNode :=
- BelowAverageScenario BelowAverageNode
- AverageScenario AverageNode
- AboveAverageScenario AboveAverageNode ;
-
-Variables are associated with stages using an assignment that begins
-with the required words "set StageVariables" and the name of a stage in
-square brackets followed by the colon-equals assignment
-characters. Variable names that have been defined in the file
-ReferenceModel.py can be assigned to stages. Any variables that are not
-assigned are assumed to be in the last stage. Variable indexes can be
-given explicitly and/or wildcards can be used. Note that the variable
-names appear without the prefix "model." In the farmer example,
-DevotedAcreage is the only first stage variable.
-
-::
-
- set StageVariables[FirstStage] := DevotedAcreage[*] ;
- set StageVariables[SecondStage] := QuantitySubQuotaSold[*]
- QuantitySuperQuotaSold[*]
- QuantityPurchased[*] ;
-
-.. note::
-
- Variable names appear without the prefix "model."
-
-.. note::
-
- Wildcards can be used, but fully general Python slicing is not supported.
-
-For reporting purposes, it is useful to define auxiliary variables in
-``ReferenceModel.py`` that will be assigned the cost associated with
-each stage. This variables do not impact algorithms, but the values are
-output by some software during execution as well as upon completion. The
-names of the variables are assigned to stages using the "param
-StageCost" assignment. The stages are previously defined in
-``ScenarioStructure.dat`` and the variables are previously defined in
-``ReferenceModel.py``.
-
-::
-
- param StageCost := FirstStage FirstStageCost
- SecondStage SecondStageCost ;
-
-Scenario data specification
-^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-So far, we have given a model in the file named ``ReferenceModel.py``, a
-set of deterministic data in the file named ``ReferenceModel.py``, and a
-description of the stochastics in the file named
-``ScenarioStructure.dat``. All that remains is to give the data for each
-scenario. There are two ways to do that in PySP: *scenario-based* and
-*node-based*. The default is scenario-based so we will describe that
-first.
-
-For scenario-based data, the full data for each scenario is given in a
-``.dat`` file with the root name that is the name of the scenario. So,
-for example, the file named ``AverageScenario.dat`` must contain all the
-data for the model for the scenario named "AvererageScenario." It turns
-out that this file can be created by simply copying the file
-``ReferenceModel.dat`` as shown above because it contains a full set of
-data for the "AverageScenario" scenario. The files
-``BelowAverageScenario.dat`` and ``AboveAverageScenario.dat`` will
-differ from this file and from each other only in their last line, where
-the yield is specified. These three files are distributed with Pyomo
-and are in the pyomo sub-directory ``examples/pysp/farmer/scenariodata``
-along with ``ScenarioStructure.dat`` and ``ReferenceModel.dat``.
-
-Scenario-based data wastes resources by specifying the same thing over
-and over again. In many cases, that does not matter and it is convenient
-to have full scenario data files available (for one thing, the scenarios
-can easily be run independently using the ``pyomo`` command). However,
-in many other settings, it is better to use a node-based specification
-where the data that is unique to each node is specified in a .dat file
-with a root name that matches the node name. In the farmer example, the
-file ``RootNode.dat`` will be the same as ``ReferenceModel.dat`` except
-that it will lack the last line that specifies the yield. The files
-``BelowAverageNode.dat``, ``AverageNode.dat``, and
-``AboveAverageNode.dat`` will contain only one line each to specify the
-yield. If node-based data is to be used, then the
-``ScenarioStructure.dat`` file must contain the following line:
-
-::
-
- param ScenarioBasedData := False ;
-
-An entire set of files for node-based data for the farmer problem are
-distributed with Pyomo in the sub-directory
-``examples/pysp/farmer/nodedata``
-
-Finding Solutions for Stochastic Models
----------------------------------------
-
-PySP provides a variety of tools for finding solutions to stochastic
-programs.
-
-runef
-^^^^^
-
-The ``runef`` command puts together the so-called *extensive* *form*
-version of the model. It creates a large model that has constraints to
-ensure that variables at a node have the same value. For example, in the
-farmer problem, all of the ``DevotedAcres`` variables must have the same
-value regardless of which scenario is ultimately realized. The objective
-can be the expected value of the objective function, or the CVaR, or a
-weighted combination of the two. Expected value is the default. A full
-set of options for ``runef`` can be obtained using the command:
-
-::
-
- runef --help
-
-The pyomo distribution contains the files need to run the farmer example
-in the sub-directories to the sub-directory ``examples/pysp/farmer`` so
-if this is the current directory and if CPLEX is installed, the
-following command will cause formation of the EF and its solution using
-CPLEX.
-
-::
-
- runef -m models -i nodedata --solver=cplex --solve
-
-The option ``-m models`` has one dash and is short-hand for the option
-``--model-directory=models`` and note that the full option uses two
-dashes. The ``-i`` is equivalent to ``--instance-directory=`` in the
-same fashion. The default solver is CPLEX, so the solver option is not
-really needed. With the ``--solve`` option, runef would simply write an
-.lp data file that could be passed to a solver.
-
-runph
-^^^^^
-
-The runph command executes an implementation of Progressive Hedging (PH)
-that is intended to support scripting and extension.
-
-The pyomo distribution contains the files need to run the farmer example
-in the sub-directories to the sub-directory ``examples/pysp/farmer`` so
-if this is the current directory and if CPLEX is installed, the
-following command will cause PH to execute using the default sub-problem
-solver, which is CPLEX.
-
-::
-
- runph -m models -i nodedata
-
-The option ``-m models`` has one dash and is short-hand for the option
-``--model-directory=models`` and note that the full option uses two
-dashes. The ``-i`` is equivalent to ``--instance-directory=`` in the
-same fashion.
-
-After about 33 iterations, the algorithm will achieve the default level
-of convergence and terminate. A lot of output is generated and among the
-output is the following solution information:
-
-::
-
- Variable=DevotedAcreage
- Index: [CORN] (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 79.9844 80.0000 79.9768 Max-Min= 0.0232 Avg= 79.9871
- Index: [SUGAR_BEETS] (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 249.9848 249.9770 250.0000 Max-Min= 0.0230 Avg= 249.9873
- Index: [WHEAT] (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 170.0308 170.0230 170.0232 Max-Min= 0.0078 Avg= 170.0256
-
- Cost Variable=FirstStageCost
- Tree Node=RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108897.0836 108897.4725 108898.1476 Max-Min= 1.0640 Avg= 108897.5679
-
-For problems with no, or few, integer variables, the default level of
-convergence leaves root-node variables almost converged. Since the
-acreage to be planted cannot depend on the scenario that will be
-realized in the future, the average, which is labeled "Avg" in this
-output, would be used. A farmer would probably interpret acreages of
-79.9871, 249.9873, and 170.0256 to be 80, 250, and 170. In real-world
-applications, PH is embedded in scripts that produce output in a format
-desired by a decision maker.
-
-But in real-world applications, the default settings for PH seldom work
-well enough. In addition to post-processing the output, a number of
-parameters need to be adjusted and sometimes scripting to extend or
-augment the algorithm is needed to improve convergence rates. A full
-set of options can be obtained with the command:
-
-::
-
- runph --help
-
-Note that there are two dashes before ``help``.
-
-By default, PH uses quadratic objective functions after iteration zero;
-in some settings it may be desirable to linearize the quadratic
-terms. This is required to use a solver such as glpk for MIPs because it
-does not support quadratic MIPs. The directive
-``--linearize-nonbinary-penalty-terms=n`` causes linearization of the
-penalty terms using n pieces. For example, to use glpk on the farmer,
-assuming glpk is installed and the command is given when the current
-directory is the ``examples/pysp/farmer``, the following command will
-use default settings for most parameters and four pieces to approximate
-quadratic terms in sub-problems:
-
-::
-
- runph -i nodedata -m models --solver=glpk --linearize-nonbinary-penalty-terms=4
-
-Use of the ``linearize-nonbinary-penalty-terms`` option requires that
-all variables not in the final stage have bounds.
-
-Final Solution
-^^^^^^^^^^^^^^
-
-At each iteration, PH computes an average for each variable over the
-nodes of the scenario tree. We refer to this as X-bar. For many
-problems, particularly those with integer restrictions, X-bar might not
-be feasible for every scenario unless PH happens to be fully converged
-(in the primal variables). Consequently, the software computes a
-solution system X-hat that is more likely to be feasible for every
-scenario and will be equivalent to X-bar under full convergence. This
-solution is reported upon completion of PH and its expected value is
-report if it is feasible for all scenarios.
-
-Methods for computing X-hat are controlled by the ``--xhat-method``
-command-line option. For example
-
-::
-
- --xhat-method=closest-scenario
-
-causes X-hat to be set to the scenario that is closest to X-bar (in a
-z-score sense). Other options, such as ``voting`` and ``rounding``,
-assign values of X-bar to X-hat except for binary and general integer
-variables, where the values are set by probability weighted voting by
-scenarios and rounding from X-bar, respectively.
-
-Solution Output Control
-^^^^^^^^^^^^^^^^^^^^^^^
-
-To get the full solution, including leaf node solution values, use the
-``runph`` ``--output-scenario-tree-solution`` option.
-
-In both ``runph`` and ``runef`` the solution can be written in csv
-format using the
-``--solution-writer=pyomo.pysp.plugins.csvsolutionwriter`` option.
-
-Summary of PySP File Names
---------------------------
-
-PySP scripts such as ``runef`` and ``runph`` require files that specify
-the model and data using files with specific names. All files can be in
-the current directory, but typically, the file ``ReferenceModel.py`` is
-in a directory that is specified using ``--model-directory=`` option
-(the short version of this option is ``-i``) and the data files are in a
-directory specified in the ``--instance-directory=`` option (the short
-version of this option is ``-m``).
-
-.. note::
-
- A file name other than ``ReferenceModel.py`` can be used if the file
- name is given in addition to the directory name as an argument to the
- ``--instance-directory`` option. For example, on a Windows machine
- ``--instance-directory=models\MyModel.py`` would specify the file
- ``MyModel.py`` in the local directory ``models``.
-
-- ``ReferenceModel.py``: A full Pyomo model for a singe scenario. There
- should be no scenario indexes in this model because they are implicit.
-- ``ScenarioStructure.dat``: Specifies the nature of the stochastics. It
- also specifies whether the rest of the data is node-based or
- scenario-based. It is scenario-based unless ``ScenarioStructure.dat``
- contains the line
-
-::
-
- param ScenarioBasedData := False ;
-
-If scenario-based, then there is a data file for each scenario that
-specifies a full set of data for the scenario. The name of the file is
-the name of the scenario with ``.dat`` appended. The names of the
-scenarios are given in the ``ScenarioStructure.dat`` file.
-
-If node-based, then there is a file with data for each node that
-specifies only that data that is unique for the node. The name of the
-file is the name of the node with ``.dat`` appended. The names of the
-nodes are given in the ``ScenarioStructure.dat`` file.
-
-.. _ParallelPySP:
-
-Solving Sub-problems in Parallel and/or Remotely
-------------------------------------------------
-
-The Python package called Pyro provides capabilities that are used to
-enable PH to make use of multiple solver processes for sub-problems and
-allows both ``runef`` and ``runph`` to make use remote solvers. We will
-focus on PH in our discussion here.
-
-There are two solver management systems available for ``runph``, one is
-based on a ``pyro_mip_server`` and the other is based on a
-``phsolverserver``. Regardless of which is used, a name server and a
-dispatch server must be running and accessible to the ``runph``
-process. The name server is launched using the command ``pyomo_ns`` and
-then the dispatch server is launched with ``dispatch_srvr``. Note that
-both commands contain an underscore. Both programs keep running until
-terminated by an external signal, so it is common to pipe their output
-to a file.
-
-Solvers are controlled by solver servers. The pyro mip solver server is
-launched with the command ``pyro_mip_server``. This command may be
-repeated to launch as many solvers as are desired. The ``runph`` then
-needs a ``--solver-manager=pyro`` option to signal that ``runph`` should
-not launch its own solver, but should send subproblems to be dispatched
-to parallel solvers. To summarize the commands:
-
-- Once: ``pyomo_ns``
-- Once: ``dispatch_srvr``
-- Multiple times: ``pyro_mip_server``
-- Once: ``runph ... --solver-manager=pyro ...``
-
-.. note::
-
- The ``runph`` option ``--shutdown-pyro`` will cause a shutdown signal
- to be sent to ``pyomo_ns``, ``dispatch_srvr`` and all
- ``pyro_mip_server`` programs upon termination of ``runph``.
-
-Instead of using ``pyro_mip_server``, one can use ``phsolverserver`` in
-its place. You can get a list of arguments using ``pyrosolverserver
---help``, which does not launch a solver server (it just displays help
-and terminates). If you use the phsolverserver, then use
-``--solver-manager=phpyro`` as an argument to runph rather than
-``--solver-manager=pyro``.
-
-.. warning::
-
- Unlike the normal ``pyro_mip_server``, there must be one
- ``phsolverserver`` for each sub-problem. One can use fewer
- phsolverservers than there are scenarios by adding the command-line
- option “--phpyro-required-workers=X”. This will partition the jobs
- among the available workers,
-
-Generating SMPS Input Files From PySP Models
---------------------------------------------
-
-This document explains how to convert a PySP model into a set of files
-representing the SMPS format for stochastic linear programs. Conversion
-can be performed through the command line by invoking the SMPS converter
-using the command ``python -m pyomo.pysp.convert.smps``. This command is
-available starting with Pyomo version 5.1. Prior to version 5.1, the
-same functionality was available via the command ``pysp2smps`` (starting
-at Pyomo version 4.2).
-
-SMPS is a standard for expressing stochastic mathematical programs that
-is based on the ancient MPS format for linear programs, which is
-matrix-based. Modern algebraic modeling languages such as Pyomo offer a
-lot of flexibility so it is a challenge to take models expressed in
-Pyomo/PySP and force them into SMPS format. The conversions can be
-inefficient and error prone because Pyomo allows flexible expressions
-and model construction so the resulting matrix may not be the same for
-each set of input data. We provide tools for conversion to SMPS because
-some researchers have tools that read SMPS and exploit its limitations
-on problem structure; however, the user should be aware that the
-conversion is not always possible.
-
-Currently, these routines only support two-stage stochastic
-programs. Support for models with more than two time stages will be
-considered in the future as this tool matures.
-
-Additional Requirements for SMPS Conversion
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-To enable proper conversion of a PySP model to a set of SMPS files, the
-following additional requirements must be met:
-
-1. The reference Pyomo model must include annotations that identify
- stochastic data locations in the second-stage problem.
-2. All model variables must be declared in the ScenarioStructure.dat
- file.
-3. The set of constraints and variables, and the overall sparsity
- structure of the objective and constraint matrix must not change
- across scenarios.
-
-The bulk of this section discusses in-depth the annotations mentioned in
-the first point. The second point may come as a surprise to users that
-are not aware of the ability to *not* declare variables in the
-ScenarioStructure.dat file. Indeed, for most of the code in PySP, it is
-only critical that the variables for which non-anticipativity must be
-enforced need to be declared. That is, for a two-stage stochastic
-program, all second-stage variables can be left out of the
-ScenarioStructure.dat file when using commands such as ``runef`` and
-``runph``. However, conversion to SMPS format requires all variables to
-be properly assigned a decision stage by the user.
-
-.. note::
-
- Variables can be declared as *primary* by assigning them to a stage
- using the ``StageVariables`` assignment, or declared as *auxiliary*
- variables, which are assigned to a stage using
- ``StageDerivedVariables`` assignment. For algorithms such as PH, the
- distinction is meaningful and those variables that are fully
- determined by primary variables and the data should generally be
- assigned to ``StageDerivedVariables`` for their stage.
-
-The third point may also come as a surprise, but the ability to handle a
-non-uniform problem structure in most PySP tools falls directly from the
-fact that the non-anticipativity conditions are all that is required in
-many cases. However, the conversion to SMPS format is based on a matrix
-representation of the problem where the stochastic coefficients are
-provided as a set of sparse matrix coordinates. This subsequently
-requires that the row and column dimensions as well as the sparsity
-structure of the problem does not change across scenarios.
-
-.. _SMPS-Annotations:
-
-Annotating Models for SMPS File Generation
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-Annotations are necessary for alerting the SMPS conversion routines of
-the locations of data that needs to be updated when changing from one
-scenario to another. Knowing these sparse locations allows decomposition
-algorithms to employ efficient methods for solving a stochastic
-program. In order to use the SMPS conversion tool, at least one of the
-following annotations must be declared on the reference Pyomo model:
-
-- **StochasticConstraintBoundsAnnotation**: indicates the existence of
- stochastic constraint right-hand-sides (or bounds) in second-stage
- constraints
-- **StochasticConstraintBodyAnnotation**: indicates the existence of
- stochastic variable coefficients in second-stage constraints
-- **StochasticObjectiveAnnotation**: indicates the existence
- stochastic cost coefficients in the second-stage cost function
-
-These will be discussed in further detail in the remaining sections. The
-following code snippet demonstrates how to import these annotations and
-declare them on a model.
-
-.. testcode::
- :hide:
-
- import pyomo.environ as pyo
- model = pyo.ConcreteModel()
-
-.. testcode::
-
- from pyomo.pysp import annotations
- model.stoch_rhs = annotations.StochasticConstraintBoundsAnnotation()
- model.stoch_matrix = annotations.StochasticConstraintBodyAnnotation()
- model.stoch_objective = annotations.StochasticObjectiveAnnotation()
-
-Populating these annotations with entries is optional, and simply
-declaring them on the reference Pyomo model will alert the SMPS
-conversion routines that all coefficients appearing on the second-stage
-model should be assumed stochastic. That is, adding the lines in the
-previous code snippet alone implies that: (i) all **second-stage
-constraints** have stochastic bounds, (ii) all **first- and second-stage
-variables** appearing in **second-stage constraints** have stochastic
-coefficients, and (iii) all **first- and second-stage variables**
-appearing in the objective have stochastic coefficients.
-
-PySP can attempt to determine the *stage*-ness of a constraint by
-examining the set of variables that appear in the constraint
-expression. E.g., a first-stage constraint is characterized as having
-only first-stage variables appearing in its expression. A second-stage
-constraint has at least one second-stage variable appearing in its
-expression. The stage of a variable is declared in the scenario tree
-provided to PySP. This method of constraint stage classification is not
-perfect. That is, one can very easily define a model with a constraint
-that uses only first-stage variables in an expression involving
-stochastic data. This constraint would be incorrectly identified as
-first-stage by the method above, even though the existence of stochastic
-data necessarily implies it is second-stage. To deal with cases such as
-this, an additional annotation is made available that is named
-**ConstraintStageAnnotation**. This annotation will be discussed
-further in a later section.
-
-It is often the case that relatively few coefficients on a stochastic
-program change across scenarios. In these situations, adding explicit
-declarations within these annotations will allow for a more sparse
-representation of the problem and, consequently, more efficient solution
-by particular decomposition methods. Adding declarations to these
-annotations is performed by calling the ``declare`` method, passing some
-component as the initial argument. Any remaining argument requirements
-for this method are specific to each annotation. Valid types for the
-component argument typically include:
-
-- ``Constraint``: includes single constraint objects as well as
- constraint containers
-- ``Objective``: includes single objective objects as well as objective
- containers
-- ``Block``: includes Pyomo models as well as single block objects and
- block containers
-
-Any remaining details for adding declarations to the annotations
-mentioned thus far will be discussed in later sections. The remainder of
-this section discusses the semantics of these declarations based on the
-type for the component argument.
-
-When the ``declare`` method is called with a component such as an
-indexed ``Constraint`` or a ``Block`` (model), the SMPS conversion
-routines will interpret this as meaning all constraints found within
-that indexed ``Constraint`` or on that ``Block`` (that have not been
-deactivated) should be considered. As an example, we consider the
-following partially declared concrete Pyomo model:
-
-.. testcode::
-
- model = pyo.ConcreteModel()
-
- # data that is initialized on a per-scenario basis
- p = 1.0
- q = 2.0
-
- # variables declared as second-stage on the
- # PySP scenario tree
- model.z = pyo.Var()
- model.y = pyo.Var()
-
- # indexed constraint
- model.r_index = pyo.Set(initialize=[3, 6, 9])
- def r_rule(model, i):
- return pyo.inequality(p + i, 1*model.z + 5*model.y, 10 + q + i)
- model.r = pyo.Constraint(model.r_index, rule=r_rule)
-
- # singleton constraint
- model.c = pyo.Constraint(expr= p*model.z >= 1)
-
- # a sub-block with a singleton constraint
- model.b = pyo.Block()
- model.b.c = pyo.Constraint(expr= q*model.y >= 1)
-
-Here the local Python variables ``p`` and ``q`` serve as placeholders
-for data that changes with each scenario.
-
-The following are equivalent annotations of the model, each declaring
-all of the constraints shown above as having stochastic right-hand-side
-data:
-
-- Implicit form
-
- .. testcode::
-
- model.stoch_rhs = annotations.StochasticConstraintBoundsAnnotation()
-
-- Implicit form for ``Block`` (model) assignment
-
- .. testcode::
-
- model.stoch_rhs = annotations.StochasticConstraintBoundsAnnotation()
- model.stoch_rhs.declare(model)
-
-- Explicit form for singleton constraint with implicit form for indexed
- constraint and sub-block
-
- .. testcode::
-
- model.stoch_rhs = annotations.StochasticConstraintBoundsAnnotation()
- model.stoch_rhs.declare(model.r)
- model.stoch_rhs.declare(model.c)
- model.stoch_rhs.declare(model.b)
-
-- Explicit form for singleton constraints at the model and sub-block
- level with implicit form for indexed constraint
-
- .. testcode::
-
- model.stoch_rhs = annotations.StochasticConstraintBoundsAnnotation()
- model.stoch_rhs.declare(model.r)
- model.stoch_rhs.declare(model.c)
- model.stoch_rhs.declare(model.b.c)
-
-- Fully explicit form for singleton constraints as well as all indices
- of indexed constraint
-
- .. testcode::
-
- model.stoch_rhs = annotations.StochasticConstraintBoundsAnnotation()
- model.stoch_rhs.declare(model.r[3])
- model.stoch_rhs.declare(model.r[6])
- model.stoch_rhs.declare(model.r[9])
- model.stoch_rhs.declare(model.c)
- model.stoch_rhs.declare(model.b.c)
-
-Note that the equivalence of the first three bullet forms to the last
-two bullet forms relies on the following conditions being met: (1)
-``model.z`` and ``model.y`` are declared on the second stage of the PySP
-scenario tree and (2) at least one of these second-stage variables
-appears in each of the constraint expressions above. Together, these two
-conditions cause each of the constraints above to be categorized as
-second-stage; thus, causing them to be considered by the SMPS conversion
-routines in the implicit declarations used by the first three bullet
-forms.
-
-.. warning::
-
- Pyomo simplifies product expressions such that terms with 0
- coefficients are removed from the final expression. This can
- sometimes create issues with determining the correct stage
- classification of a constraint as well as result in different
- sparsity patterns across scenarios. This issue is discussed further
- in the later section entitled Edge-Cases.
-
-When it comes to catching errors in model annotations, there is a minor
-difference between the first bullet form from above (empty annotation)
-and the others. In the empty case, PySP will use exactly the set of
-second-stage constraints it is aware of. This set will either be
-determined through inspection of the constraint expressions or through
-the user-provided constraint-stage classifications declared using the
-**ConstraintStageAnnotation** annotation type. In the case where
-the stochastic annotation is not empty, PySP will verify that all
-constraints declared within it belong to the set of second-stage
-constraints it is aware of. If this verification fails, an error will be
-reported. This behavior is meant to aid users in debugging problems
-associated with non-uniform sparsity structure across scenarios that
-are, for example, caused by 0 coefficients in product expressions.
-
-*Annotations on AbstractModel Objects*
-
-Pyomo models defined using the ``AbstractModel`` object require the
-modeler to take further steps when making these annotations. In the
-``AbstractModel`` setting, these assignments must take place within a
-``BuildAction``, which is executed only after the model has been
-constructed with data. As an example, the last bullet form from the
-previous section could be written in the following way to allow
-execution with either an ``AbstractModel`` or a ``ConcreteModel``:
-
-.. testcode::
-
- def annotate_rule(m):
- m.stoch_rhs = annotations.StochasticConstraintBoundsAnnotation()
- m.stoch_rhs.declare(m.r[3])
- m.stoch_rhs.declare(m.r[6])
- m.stoch_rhs.declare(m.r[9])
- m.stoch_rhs.declare(m.c)
- m.stoch_rhs.declare(m.b.c)
- model.annotate = pyo.BuildAction(rule=annotate_rule)
-
-Note that the use of ``m`` rather than ``model`` in the
-``annotate_rule`` function is meant to draw attention to the fact that
-the model object being passed into the function as the first argument
-may not be the same object as the model outside of the function. This is
-in fact the case in the ``AbstractModel`` setting, whereas for the
-``ConcreteModel`` setting they are the same object. We often use
-``model`` in both places to avoid errors caused by forgetting to use the
-correct object inside the function (Python scoping rules handle the
-rest). Also note that a ``BuildAction`` must be declared on the model
-after the declaration of any components being accessed inside its rule
-function.
-
-*Stochastic Constraint Bounds (RHS)*
-
-If stochastic elements appear on the right-hand-side of constraints (or
-as constants in the body of constraint expressions), these locations
-should be declared using the **StochasticConstraintBoundsAnnotation** annotation
-type. When components are declared with this annotation, there are no
-additional required arguments for the ``declare`` method. However, to
-allow for more flexibility when dealing with double-sided inequality
-constraints, the ``declare`` method can be called with at most one of
-the keywords ``lb`` or ``ub`` set to ``False`` to signify that one of
-the bounds is not stochastic. The following code snippet shows example
-declarations with this annotation for various constraint types.
-
-.. testcode::
-
- # declare the annotation
- model.stoch_rhs = annotations.StochasticConstraintBoundsAnnotation()
-
- # equality constraint
- model.c_eq = pyo.Constraint(expr= model.y == q)
- model.stoch_rhs.declare(model.c_eq)
-
- # range inequality constraint with stochastic upper bound
- model.c_ineq = pyo.Constraint(expr= pyo.inequality(0, model.y, p))
- model.stoch_rhs.declare(model.c_ineq, lb=False)
-
- # indexed constraint using a BuildAction
- model.C_index = pyo.RangeSet(1,3)
- def C_rule(model, i):
- if i == 1:
- return model.y >= i * q
- else:
- return pyo.Constraint.Skip
- model.C = pyo.Constraint(model.C_index, rule=C_rule)
- def C_annotate_rule(model, i):
- if i == 1:
- model.stoch_rhs.declare(model.C[i])
- else:
- pass
- model.C_annotate = pyo.BuildAction(model.C_index, rule=C_annotate_rule)
-
-Note that simply declaring the **StochasticConstraintBoundsAnnotation**
-annotation type and leaving it empty will alert the SMPS conversion
-routines that all constraints identified as second-stage should be
-treated as having stochastic right-hand-side data. Calling the
-``declare`` method on at least one component implies that the set of
-constraints considered should be limited to what is declared within the
-annotation.
-
-*Stochastic Constraint Matrix*
-
-If coefficients of variables change in the second-stage constraint
-matrix, these locations should be declared using the
-**StochasticConstraintBodyAnnotation** annotation type. When components are
-declared with this annotation, there are no additional required
-arguments for the ``declare`` method. Calling the ``declare`` method
-with the single component argument signifies that all variables
-encountered in the constraint expression (including first- and
-second-stage variables) should be treated as having stochastic
-coefficients. This can be limited to a specific subset of variables by
-calling the ``declare`` method with the ``variables`` keyword set to an
-explicit list of variable objects. The following code snippet shows
-example declarations with this annotation for various constraint types.
-
-.. testcode::
-
- model = pyo.ConcreteModel()
-
- # data that is initialized on a per-scenario basis
- p = 1.0
- q = 2.0
-
- # a first-stage variable
- model.x = pyo.Var()
-
- # a second-stage variable
- model.y = pyo.Var()
-
- # declare the annotation
- model.stoch_matrix = annotations.StochasticConstraintBodyAnnotation()
-
- # a singleton constraint with stochastic coefficients
- # both the first- and second-stage variable
- model.c = pyo.Constraint(expr= p*model.x + q*model.y == 1)
- model.stoch_matrix.declare(model.c)
- # an assignment that is equivalent to the previous one
- model.stoch_matrix.declare(model.c, variables=[model.x, model.y])
-
- # a singleton range constraint with a stochastic coefficient
- # for the first-stage variable only
- model.r = pyo.Constraint(expr=pyo.inequality(0, p*model.x - 2.0*model.y, 10))
- model.stoch_matrix.declare(model.r, variables=[model.x])
-
-
-As is the case with the **StochasticConstraintBoundsAnnotation** annotation
-type, simply declaring the **StochasticConstraintBodyAnnotation**
-annotation type and leaving it empty will alert the SMPS conversion
-routines that all constraints identified as second-stage should be
-considered, and, additionally, that all variables encountered in these
-constraints should be considered to have stochastic
-coefficients. Calling the ``declare`` method on at least one component
-implies that the set of constraints considered should be limited to what
-is declared within the annotation.
-
-*Stochastic Objective Elements*
-
-If the cost coefficients of any variables are stochastic in the
-second-stage cost expression, this should be noted using the
-**StochasticObjectiveAnnotation** annotation type. This annotation
-uses the same semantics for the ``declare`` method as the
-**StochasticConstraintBodyAnnotation** annotation type, but with one
-additional consideration regarding any constants in the objective
-expression. Constants in the objective are treated as stochastic and
-automatically handled by the SMPS code. If the objective expression does
-not contain any constant terms or these constant terms do not change
-across scenarios, this behavior can be disabled by setting the keyword
-``include_constant`` to ``False`` in a call to the ``declare`` method.
-
-.. testcode::
-
- # declare the annotation
- model.stoch_objective = annotations.StochasticObjectiveAnnotation()
-
- model.FirstStageCost = pyo.Expression(expr= 5.0*model.x)
- model.SecondStageCost = pyo.Expression(expr= p*model.x + q*model.y)
- model.TotalCost = pyo.Objective(expr= model.FirstStageCost + model.SecondStageCost)
-
- # each of these declarations is equivalent for this model
- model.stoch_objective.declare(model.TotalCost)
- model.stoch_objective.declare(model.TotalCost, variables=[model.x, model.y])
-
-Similar to the previous annotation type, simply declaring the
-**StochasticObjectiveAnnotation** annotation type and leaving it
-empty will alert the SMPS conversion routines that all variables
-appearing in the single active model objective expression should be
-considered to have stochastic coefficients.
-
-.. # Commenting out documentation of deprecated functionality
-
- *Annotating Constraint Stages*
-
- Annotating the model with constraint stages is sometimes necessary to
- identify to the SMPS routines that certain constraints belong in the
- second time-stage even though they lack references to any second-stage
- variables. Annotation of constraint stages is achieved using the
- **ConstraintStageAnnotation** annotation type. If this annotation
- is added to the model, it is assumed that it will be fully populated
- with explicit stage assignments for every constraint in the model. The
- ``declare`` method should be called giving a ``Constraint`` or ``Block``
- as the first argument and a positive integer as the second argument (1
- signifies the first time stage). Example:
-
- .. testcode::
-
- model.IDX = pyo.RangeSet(5)
-
- # declare the annotation
- model.constraint_stage = annotations.ConstraintStageAnnotation()
-
- # all constraints on this Block are first-stage
- model.B = pyo.Block()
- # ...
- model.constraint_stage.declare(model.B, 1)
-
- # all indices of this indexed constraint are first-stage
- def C1_rule(m, i):
- return p*m.x <= q*i
- model.C1 = pyo.Constraint(model.IDX, rule=C1_rule)
- model.constraint_stage.declare(model.C1, 1)
-
- # all but one index in this indexed constraint are second-stage
- def C2_rule(m, i):
- return p*m.x <= q*i
- model.C2 = pyo.Constraint(model.IDX, rule=C2_rule)
- for index in model.C2:
- if index == 3:
- model.constraint_stage.declare(model.C2[index], 1)
- else:
- model.constraint_stage.declare(model.C2[index], 2)
-
-.. _Edge-Cases:
-
-*Edge Cases*
-
-The section discusses various points that may give users some trouble,
-and it attempts to provide more details about the common pitfalls
-associated with translating a PySP model to SMPS format.
-
-- *Moving a Stochastic Objective to the Constraint Matrix*
-
-It is often the case that decomposition algorithms theoretically support
-stochastic cost coefficients but the software implementation has not yet
-added support for them. This situation is easy to work around in
-PySP. One can simply augment the model with an additional constraint and
-variable that *computes* the objective, and then use this variable in
-the objective rather than directly using the second-stage cost
-expression. Consider the following reference Pyomo model that has
-stochastic cost coefficients for both a first-stage and a second-stage
-variable in the second-stage cost expression:
-
-.. doctest::
-
- >>> # suppress duplicate object warning
- >>> del model.TotalCost
-
-.. testcode::
-
- # define the objective as the sum of the stage-cost expressions
- model.TotalCost = pyo.Objective(expr= model.FirstStageCost + model.SecondStageCost)
-
- # declare that model.x and model.y have stochastic cost
- # coefficients in the second stage
- model.stoch_objective = annotations.StochasticObjectiveAnnotation()
- model.stoch_objective.declare(model.TotalCost, variables=[model.x, model.y])
-
-The code snippet below re-expresses this model using an objective
-consisting of the original first-stage cost expression plus a
-second-stage variable ``SecondStageCostVar`` that represents the
-second-stage cost. This is enforced by restricting the variable to be
-equal to the second-stage cost expression using an additional equality
-constraint named ``ComputeSecondStageCost``. Additionally, the
-**StochasticObjectiveAnnotation** annotation type is replaced with
-the **StochasticConstraintBodyAnnotation** annotation type.
-
-.. testcode::
-
- # set the variable SecondStageCostVar equal to the
- # expression SecondStageCost using an equality constraint
- model.SecondStageCostVar = pyo.Var()
- model.ComputeSecondStageCost = pyo.Constraint(expr= model.SecondStageCostVar == model.SecondStageCost)
-
- # declare that model.x and model.y have stochastic constraint matrix
- # coefficients in the ComputeSecondStageCost constraint
- model.stoch_matrix = annotations.StochasticConstraintBodyAnnotation()
- model.stoch_matrix.declare(model.ComputeSecondStageCost, variables=[model.x, model.y])
-
-- *Stochastic Constant Terms*
-
-The standard description of a linear program does not allow for a
-constant term in the objective function because this has no weight on
-the problem solution. Additionally, constant terms appearing in a
-constraint expression must be lumped into the right-hand-side
-vector. However, when modeling with an AML such as Pyomo, constant terms
-very naturally fall out of objective and constraint expressions.
-
-If a constant terms falls out of a constraint expression and this term
-changes across scenarios, it is critical that this is accounted for by
-including the constraint in the **StochasticConstraintBoundsAnnotation**
-annotation type. Otherwise, this would lead to an incorrect
-representation of the stochastic program in SMPS format. As an example,
-consider the following:
-
-.. testcode::
-
- # a param initialized with scenario-specific data
- model.p = pyo.Param(mutable=True)
-
- # a second-stage constraint with a stochastic upper bound
- # hidden in the left-hand-side expression
- def d_rule(m):
- return (m.x - m.p) + m.y <= 10
- model.d = pyo.Constraint(rule=d_rule)
-
-Note that in the expression for constraint ``c``, there is a fixed
-parameter ``p`` involved in the variable expression on the
-left-hand-side of the inequality. When an expression is written this
-way, it can be easy to forget that the value of this parameter will be
-pushed to the bound of the constraint when it is converted into linear
-canonical form. Remember to declare these constraints within the
-**StochasticConstraintBoundsAnnotation** annotation type.
-
-A constant term appearing in the objective expression presents a similar
-issue. Whether or not this term is stochastic, it must be dealt with
-when certain outputs expect the problem to be expressed as a linear
-program. The SMPS code in PySP will deal with this situation for you by
-implicitly adding a new second-stage variable to the problem in the
-final output file that uses the constant term as its coefficient in the
-objective and that is fixed to a value of 1.0 using a trivial equality
-constraint. The default behavior when declaring the
-**StochasticObjectiveAnnotation** annotation type will be to assume
-this constant term in the objective is stochastic. This helps ensure
-that the relative scenario costs reported by algorithms using the SMPS
-files will match that of the PySP model for a given solution. When
-moving a stochastic objective into the constraint matrix using the
-method discussed in the previous subsection, it is important to be aware
-of this behavior. A stochastic constant term in the objective would
-necessarily translate into a stochastic constraint right-hand-side when
-moved to the constraint matrix.
-
-- *Stochastic Variable Bounds*
-
-Although not directly supported, stochastic variable bounds can be
-expressed using explicit constraints along with the
-**StochasticConstraintBoundsAnnotation** annotation type to achieve the same
-effect.
-
-- *Problems Caused by Zero Coefficients*
-
-Expressions that involve products with some terms having 0 coefficients
-can be problematic when the zeros can become nonzero in certain
-scenarios. This can cause the sparsity structure of the LP to change
-across scenarios because Pyomo simplifies these expressions when they
-are created such that terms with a 0 coefficient are dropped. This can
-result in an invalid SMPS conversion. Of course, this issue is not
-limited to explicit product expressions, but can arise when the user
-implicitly assigns a variable a zero coefficient by outright excluding
-it from an expression. For example, both constraints in the following
-code snippet suffer from this same underlying issue, which is that the
-variable ``model.y`` will be excluded from the constraint expressions in
-a subset of scenarios (depending on the value of ``q``) either directly
-due to a 0 coefficient in a product expressions or indirectly due to
-user-defined logic that is based off of the values of stochastic data.
-
-.. testcode::
-
- q = 0
-
- model.c1 = pyo.Constraint(expr= p * model.x + q * model.y == 1)
-
- def c2_rule(model):
- expr = p * model.x
- if q != 0:
- expr += model.y
- return expr >= 0
- model.c2 = pyo.Constraint(rule=c2_rule)
-
-The SMPS conversion routines will attempt some limited checking to help
-prevent this kind of situation from silently turning the SMPS
-representation to garbage, but it must ultimately be up to the user to
-ensure this is not an issue. This is in fact the most challenging aspect
-of converting PySP's AML-based problem representation to the
-structure-preserving LP representation used in the SMPS format.
-
-One way to deal with the 0 coefficient issue, which works for both cases
-discussed in the example above, is to create a *zero* ``Expression``
-object. E.g.,
-
-.. testcode::
-
- model.zero = pyo.Expression(expr=0)
-
-This component can be used to add variables to a linear expression so
-that the resulting expression retains a reference to them. This behavior
-can be verified by examining the output from the following example:
-
-.. doctest::
-
- # an expression that does NOT retain model.y
- >>> print((model.x + 0 * model.y).to_string())
- x
-
- # an equivalent expression that DOES retain model.y
- >>> print((model.x + model.zero * model.y).to_string())
- x + 0.0*y
-
- # an equivalent expression that does NOT retain model.y (so beware)
- >>> print((model.x + 0 * model.zero * model.y).to_string())
- x
-
-Generating SMPS Input Files
-^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-This section explains how the SMPS conversion utilities available in
-PySP can be invoked from the command line. Starting with Pyomo version
-5.1, the SMPS writer can be invoked using the command ``python -m
-pyomo.pysp.convert.smps``. Prior to version 5.1, this functionality was
-available via the ``pysp2smps`` command (starting at Pyomo version
-4.2). Use the ``--help`` option with the main command to see a detailed
-description of the command-line options available:
-
-::
-
- $ python -m pyomo.pysp.convert.smps --help
-
-Next, we discuss some of the basic inputs to this command.
-
-Consider the baa99 example inside the ``pysp/baa99`` subdirectory that
-is distributed with the Pyomo examples (``examples/pysp/baa99``). Both
-the reference model and the scenario tree structure are defined in the
-file ``ReferenceModel.py`` using PySP callback functions. This model has
-been annotated to enable conversion to the SMPS format. Assuming one is
-in this example's directory, SMPS files can be generated for the model
-by executing the following shell command:
-
-::
-
- $ python -m pyomo.pysp.convert.smps -m ReferenceModel.py --basename baa99 \
- --output-directory sdinput/baa99
-
-Assuming successful execution, this would result in the following files
-being created:
-
-- ``sdinput/baa99/baa99.cor``
-- ``sdinput/baa99/baa99.tim``
-- ``sdinput/baa99/baa99.sto``
-- ``sdinput/baa99/baa99.cor.symbols``
-
-The first file is the core problem file written in MPS format. The
-second file indicates at which row and column the first and second time
-stages begin. The third file contains the location and values of
-stochastic data in the problem for each scenario. This file is generated
-by merging the individual output for each scenario in the scenario tree
-into separate BLOCK sections. The last file contains a mapping for
-non-anticipative variables from the symbols used in the above files to a
-unique string that can be used to recover the variable on any Pyomo
-model. It is mainly used by PySP's solver interfaces to load a solver
-solution.
-
-To ensure that the problem structure is the same and that all locations
-of stochastic data have been annotated properly, the script creates
-additional auxiliary files that are compared across scenarios. The
-command-line option ``--keep-auxiliary-files`` can be used to retain the
-auxiliary files that were generated for the template scenario used to
-write the core file. When this option is used with the above example,
-the following additional files will appear in the output directory:
-
-- ``sdinput/baa99/baa99.mps.det``
-- ``sdinput/baa99/baa99.sto.struct``
-- ``sdinput/baa99/baa99.row``
-- ``sdinput/baa99/baa99.col``
-
-The ``.mps.det`` file is simply the core file for the reference scenario
-with the values for all stochastic coefficients set to zero. If this
-does not match for every scenario, then there are places in the model
-that still need to be declared on one or more of the stochastic data
-annotations. The ``.row`` and the ``.col`` files indicate the ordering
-of constraints and variables, respectively, that was used to write the
-core file. The ``.sto.struct`` file lists the nonzero locations of the
-stochastic data in terms of their row and column location in the core
-file. These files are created for each scenario instance in the scenario
-tree and placed inside of a subdirectory named ``scenario_files`` within
-the output directory. These files will be removed removed unless
-validation fails or the ``--keep-scenario-files`` option is used.
-
-The SMPS writer also supports parallel execution. This can significantly
-reduce the overall time required to produce the SMPS files when there
-are many scenarios. Parallel execution using PySP's Pyro-based tools can
-be performed using the steps below. Note that each of these commands can
-be launched in the background inside the same shell or in their own
-separate shells.
-
-1. Start the Pyro name server:
-
- ::
-
- $ pyomo_ns -n localhost
-
-2. Start the Pyro dispatch server:
-
- ::
-
- $ dispatch_srvr -n localhost --daemon-host localhost
-
-
-3. Start 8 ScenarioTree Servers (for the 625 baa99 scenarios)
-
- ::
-
- $ mpirun -np 8 scenariotreeserver --pyro-host=localhost
-
-
-4. Run ``python -m pyomo.pysp.convert.smps`` using the Pyro ScenarioTree Manager
-
- ::
-
- $ python -m pyomo.pysp.convert.smps -m ReferenceModel.py --basename baa99 \
- --output-directory sdinput/baa99 \
- --pyro-required-scenariotreeservers=8 \
- --pyro-host=localhost --scenario-tree-manager=pyro
-
-An annotated version of the farmer example is also provided. The model
-file can be found in the ``pysp/farmer/smps_model`` examples
-subdirectory. Note that the scenario tree for this model is defined in a
-separate file. When invoking the SMPS writer, a scenario tree structure
-file can be provided via the ``--scenario-tree-location (-s)``
-command-line option. For example, assuming one is in the
-``pysp/farmer`` subdirectory, the farmer model can be converted to SMPS
-files using the command:
-
-::
-
- $ python -m pyomo.pysp.convert.smps -m smps_model/ReferenceModel.py \
- -s scenariodata/ScenarioStructure.dat --basename farmer \
- --output-directory sdinput/farmer
-
-Note that, by default, the files created by the SMPS writer use
-shortened symbols that do not match the names of the variables and
-constraints declared on the Pyomo model. This is for efficiency reasons,
-as using fully qualified component names can result in significantly
-larger files. However, it can be useful in debugging situations to
-generate the SMPS files using the original component names. To do this,
-simply add the command-line option ``--symbolic-solver-labels`` to the
-command string.
-
-The SMPS writer supports other formats for the core problem file (e.g.,
-the LP format). The command-line option ``--core-format`` can be used to
-control this setting. Refer to the command-line help string for more
-information about the list of available format.
-
-Generating DDSIP Input Files From PySP Models
----------------------------------------------
-
-PySP provides support for creating DDSIP inputs, and some support for
-reading DDSIP solutions back into PySP is under development. Use of
-these utilties requires additional model annotations that declare the
-location of stochastic data coefficients. See the section on converting
-PySP models to SMPS for more information.
-
-To access the DDSIP writer via the command line, use ``python
--m pyomo.pysp.convert.ddsip``. To access the full solver interface to
-DDSIP, which writes the input files, invokes the DDSIP solver, and reads
-the solution, use ``python -m pyomo.pysp.solvers.ddsip``. For example,
-to get a list of command arguments, use:
-
-::
-
- $ python -m pyomo.pysp.convert.ddsip --help
-
-.. note::
-
- Not all of the command arguments are relevant for DDSIP.
-
-For researchers that simply want to write out the files needed by DDSIP,
-the ``--output-directory`` option can be used with the DDSIP writer to
-specifiy the directory where files should be created. The DDSIP solver
-interface creates these files in a temporary directory. To have the
-DDSIP solver interface retain these files after it exits, use the
-``--keep-solver-files`` command-line option. The following example
-invokes the DDSIP solver on the networkflow example that ships with
-PySP. In order to test it, one must first ``cd`` into to the networkflow
-example directory and then execute the command:
-
-::
-
- $ python -m pyomo.pysp.solvers.ddsip \
- -s 1ef10 -m smps_model --solver-options="NODELIM=1”
-
-The ``--solver-options`` command line argument can be used set the
-values of any DDSIP options that are written to the DDSIP configuration
-file; multiple options should be space-separated. See DDSIP
-documentation for a list of options.
-
-Here is the same example modified to simply create the DDSIP input files
-in an output directory named ``ddsip_networkflow``:
-
-::
-
- $ python -m pyomo.pysp.convert.ddsip \
- -s 1ef10 -m smps_model --output-directory ddsip_networkflow \
- --symbolic-solver-labels
-
-The option ``--symbolic-solver-labels`` tells the DDSIP writer to
-produce the file names using symbols that match names on the original
-Pyomo model. This can significantly increase file size, so it is not
-done by default. When the DDSIP writer is invoked, a minimal DDSIP
-configuration file is created in the output directory that specifies the
-required problem structure information. Any additional DDSIP options
-must be manually added to this file by the user.
-
-As with the SMPS writer, the DDSIP writer and solver interface support
-PySP's Pyro-based parallel scenario tree management system. See the
-section on the SMPS writer for a description of how to use this
-functionality.
-
-PySP in scripts
----------------
-
-See :ref:`rappersection` for information about putting Python scripts
-around PySP functionality.
-
-Introduction to Using Concrete Models with PySP
------------------------------------------------
-
-The concrete interface to PySP requires a function that can return a
-concrete model for a given scenario. Optionally, a function that
-returns a scenario tree can be provided; however, a
-``ScenarioStructure.dat`` file is also an option. This very
-terse introduction might help you get started using
-concrete models with PySP.
-
-Scenario Creation Function
-^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-There is a lot of flexibility in how this function is
-implemented, but the path of least resistance is
-
-.. doctest::
-
- >>> def pysp_instance_creation_callback(scenario_tree_model,
- ... scenario_name,
- ... node_names):
- ... pass
-
-In many applications, only the ``scenario_name`` argument is
-used. Its purpose is almost always to determine what data
-to use when populating the scenario instance. Note that in
-older examples, the ``scenario_tree_model`` argument is not
-present.
-
-An older example of this function can be seen in
-``examples/pysp/farmer/concrete/ReferenceModel.py``
-
-Note that this example does not have a function to return
-a scenario tree, so it can be solved from the
-``examples/pysp/farmer`` directory with a command
-like:
-
-::
- runef -m concrete/ReferenceModel.py -s scenariodata/ScenarioStructure.dat --solve
-
-.. note::
-
- If, for some reason, you want to use the concrete interface for PySP for an ``AbstractModel``, the body of the function might be something like:
-
- >>> instance = model.create_instance(scenario_name+".dat") # doctest: +SKIP
- >>> return instance # doctest: +SKIP
-
- assuming that ``model`` is defined as an ``AbstractModel`` in the namespace
- of the file.
-
-Scenario Tree Creation Function
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-There are many options for a function to return a scenario tree. The path
-of least resistance is to name the function ``pysp_scenario_tree_model_callback``
-with no arguments.
-One example is shown in
-``examples/pysp/farmer/concreteNetX/ReferenceModel.py``
-
-It can be solved from the
-``examples/pysp/farmer`` directory with a command
-like:
-
-::
- runef -m concreteNetX/ReferenceModel.py --solve
diff --git a/doc/OnlineDocs/modeling_extensions/stochastic_programming.rst b/doc/OnlineDocs/modeling_extensions/stochastic_programming.rst
new file mode 100644
index 00000000000..227a8d9aa8d
--- /dev/null
+++ b/doc/OnlineDocs/modeling_extensions/stochastic_programming.rst
@@ -0,0 +1,17 @@
+Stochastic Programming in Pyomo
+===============================
+
+There are two extensions for modeling and solving Stochastic Programs in
+Pyomo. Both are currently distributed as independent Python packages.
+PySP was the original extension (and up through Pyomo 5.7.3 was
+distributed as part of Pyomo). You can find the documentation here:
+
+ `https://pysp.readthedocs.io `_
+
+In 2020, the PySP developers released the mpi-sppy package, which
+reimplemented much of the functionality from PySP in a new scalable
+framework built on top of MPI and the mpi4py package. Future
+development of stochastic programming capabilities is occurring in
+mpi-sppy. The documentation is available here:
+
+ `https://mpi-sppy.readthedocs.io `_
diff --git a/doc/OnlineDocs/tests/scripting/pysp/farmer/models/ReferenceModel.py b/doc/OnlineDocs/tests/scripting/pysp/farmer/models/ReferenceModel.py
deleted file mode 100644
index 0fb096d574a..00000000000
--- a/doc/OnlineDocs/tests/scripting/pysp/farmer/models/ReferenceModel.py
+++ /dev/null
@@ -1,112 +0,0 @@
-# ___________________________________________________________________________
-#
-# Pyomo: Python Optimization Modeling Objects
-# Copyright 2017 National Technology and Engineering Solutions of Sandia, LLC
-# Under the terms of Contract DE-NA0003525 with National Technology and
-# Engineering Solutions of Sandia, LLC, the U.S. Government retains certain
-# rights in this software.
-# This software is distributed under the 3-clause BSD License.
-# ___________________________________________________________________________
-
-# Farmer: rent out version has a scalar root node var
-# note: this will minimize
-#
-# Imports
-#
-
-from pyomo.core import *
-
-#
-# Model
-#
-
-model = AbstractModel()
-
-#
-# Parameters
-#
-
-model.CROPS = Set()
-
-model.TOTAL_ACREAGE = Param(within=PositiveReals)
-
-model.PriceQuota = Param(model.CROPS, within=PositiveReals)
-
-model.SubQuotaSellingPrice = Param(model.CROPS, within=PositiveReals)
-
-def super_quota_selling_price_validate (model, value, i):
- return model.SubQuotaSellingPrice[i] >= model.SuperQuotaSellingPrice[i]
-
-model.SuperQuotaSellingPrice = Param(model.CROPS, validate=super_quota_selling_price_validate)
-
-model.CattleFeedRequirement = Param(model.CROPS, within=NonNegativeReals)
-
-model.PurchasePrice = Param(model.CROPS, within=PositiveReals)
-
-model.PlantingCostPerAcre = Param(model.CROPS, within=PositiveReals)
-
-model.Yield = Param(model.CROPS, within=NonNegativeReals)
-
-#
-# Variables
-#
-
-model.DevotedAcreage = Var(model.CROPS, bounds=(0.0, model.TOTAL_ACREAGE))
-
-model.QuantitySubQuotaSold = Var(model.CROPS, bounds=(0.0, None))
-model.QuantitySuperQuotaSold = Var(model.CROPS, bounds=(0.0, None))
-
-model.QuantityPurchased = Var(model.CROPS, bounds=(0.0, None))
-
-#
-# Constraints
-#
-
-def ConstrainTotalAcreage_rule(model):
- return summation(model.DevotedAcreage) <= model.TOTAL_ACREAGE
-
-model.ConstrainTotalAcreage = Constraint(rule=ConstrainTotalAcreage_rule)
-
-def EnforceCattleFeedRequirement_rule(model, i):
- return model.CattleFeedRequirement[i] <= (model.Yield[i] * model.DevotedAcreage[i]) + model.QuantityPurchased[i] - model.QuantitySubQuotaSold[i] - model.QuantitySuperQuotaSold[i]
-
-model.EnforceCattleFeedRequirement = Constraint(model.CROPS, rule=EnforceCattleFeedRequirement_rule)
-
-def LimitAmountSold_rule(model, i):
- return model.QuantitySubQuotaSold[i] + model.QuantitySuperQuotaSold[i] - (model.Yield[i] * model.DevotedAcreage[i]) <= 0.0
-
-model.LimitAmountSold = Constraint(model.CROPS, rule=LimitAmountSold_rule)
-
-def EnforceQuotas_rule(model, i):
- return (0.0, model.QuantitySubQuotaSold[i], model.PriceQuota[i])
-
-model.EnforceQuotas = Constraint(model.CROPS, rule=EnforceQuotas_rule)
-
-#
-# Stage-specific cost computations
-#
-
-def ComputeFirstStageCost_rule(model):
- return summation(model.PlantingCostPerAcre, model.DevotedAcreage)
-
-model.FirstStageCost = Expression(rule=ComputeFirstStageCost_rule)
-
-def ComputeSecondStageCost_rule(model):
- expr = summation(model.PurchasePrice, model.QuantityPurchased)
- expr -= summation(model.SubQuotaSellingPrice, model.QuantitySubQuotaSold)
- expr -= summation(model.SuperQuotaSellingPrice, model.QuantitySuperQuotaSold)
- return expr
-
-model.SecondStageCost = Expression(rule=ComputeSecondStageCost_rule)
-
-#
-# PySP Auto-generated Objective
-#
-# minimize: sum of StageCosts
-#
-# An active scenario objective equivalent to that generated by PySP is
-# included here for informational purposes.
-def total_cost_rule(model):
- return model.FirstStageCost + model.SecondStageCost
-model.Total_Cost_Objective = Objective(rule=total_cost_rule, sense=minimize)
-
diff --git a/doc/OnlineDocs/tests/scripting/pysp/farmer/scenariodata/AverageScenario.dat b/doc/OnlineDocs/tests/scripting/pysp/farmer/scenariodata/AverageScenario.dat
deleted file mode 100644
index 346bd761c5c..00000000000
--- a/doc/OnlineDocs/tests/scripting/pysp/farmer/scenariodata/AverageScenario.dat
+++ /dev/null
@@ -1,23 +0,0 @@
-# "mean" scenario
-
-set CROPS := WHEAT CORN SUGAR_BEETS ;
-
-param TOTAL_ACREAGE := 500 ;
-
-# no quotas on wheat or corn
-param PriceQuota := WHEAT 100000 CORN 100000 SUGAR_BEETS 6000 ;
-
-param SubQuotaSellingPrice := WHEAT 170 CORN 150 SUGAR_BEETS 36 ;
-
-param SuperQuotaSellingPrice := WHEAT 0 CORN 0 SUGAR_BEETS 10 ;
-
-param CattleFeedRequirement := WHEAT 200 CORN 240 SUGAR_BEETS 0 ;
-
-# can't purchase beets (no real need, as cattle don't eat them)
-param PurchasePrice := WHEAT 238 CORN 210 SUGAR_BEETS 100000 ;
-
-param PlantingCostPerAcre := WHEAT 150 CORN 230 SUGAR_BEETS 260 ;
-
-param Yield := WHEAT 2.5 CORN 3 SUGAR_BEETS 20 ;
-
-
diff --git a/doc/OnlineDocs/tests/scripting/pysp/farmer/scenariodata/ScenarioStructure.dat b/doc/OnlineDocs/tests/scripting/pysp/farmer/scenariodata/ScenarioStructure.dat
deleted file mode 100644
index 12be27f9b9b..00000000000
--- a/doc/OnlineDocs/tests/scripting/pysp/farmer/scenariodata/ScenarioStructure.dat
+++ /dev/null
@@ -1,40 +0,0 @@
-# IMPORTANT - THE STAGES ARE ASSUMED TO BE IN TIME-ORDER.
-
-set Stages := FirstStage SecondStage ;
-
-set Nodes := RootNode
- BelowAverageNode
- AverageNode
- AboveAverageNode ;
-
-param NodeStage := RootNode FirstStage
- BelowAverageNode SecondStage
- AverageNode SecondStage
- AboveAverageNode SecondStage ;
-
-set Children[RootNode] := BelowAverageNode
- AverageNode
- AboveAverageNode ;
-
-param ConditionalProbability := RootNode 1.0
- BelowAverageNode 0.33333333
- AverageNode 0.33333334
- AboveAverageNode 0.33333333 ;
-
-set Scenarios := BelowAverageScenario
- AverageScenario
- AboveAverageScenario ;
-
-param ScenarioLeafNode :=
- BelowAverageScenario BelowAverageNode
- AverageScenario AverageNode
- AboveAverageScenario AboveAverageNode ;
-
-set StageVariables[FirstStage] := DevotedAcreage[*];
-
-set StageVariables[SecondStage] := QuantitySubQuotaSold[*]
- QuantitySuperQuotaSold[*]
- QuantityPurchased[*];
-
-param StageCost := FirstStage FirstStageCost
- SecondStage SecondStageCost ;
diff --git a/doc/OnlineDocs/working_models.rst b/doc/OnlineDocs/working_models.rst
index df334aa0891..132f2982146 100644
--- a/doc/OnlineDocs/working_models.rst
+++ b/doc/OnlineDocs/working_models.rst
@@ -675,9 +675,6 @@ instance and pass ``warmstart=True`` to the ``solve()`` method. E.g.,
Solving Multiple Instances in Parallel
--------------------------------------
-Use of parallel solvers for PySP is discussed in the section on parallel
-PySP :ref:`ParallelPySP`.
-
Solvers are controlled by solver servers. The pyro mip solver server is
launched with the command ``pyro_mip_server``. This command may be
repeated to launch as many solvers as are desired. A name server and a
diff --git a/examples/dae/ReactionKinetics.py b/examples/dae/ReactionKinetics.py
index ac8c8ddb5b2..13dffcf0738 100644
--- a/examples/dae/ReactionKinetics.py
+++ b/examples/dae/ReactionKinetics.py
@@ -17,7 +17,7 @@
from pyomo.environ import *
from pyomo.dae import *
-from six import itervalues, iteritems, string_types
+from six import itervalues, iteritems
try:
import matplotlib.pyplot as plt
@@ -63,7 +63,7 @@ def __init__(self, name, reactants, products=None):
def _parse(self, _in):
ans = {}
- if isinstance(_in, string_types):
+ if isinstance(_in, str):
_in = _in.split('+')
for x in _in:
coef, species = self._parseTerm(x)
@@ -71,7 +71,7 @@ def _parse(self, _in):
return ans
def _parseTerm(self, x):
- if isinstance(x, string_types):
+ if isinstance(x, str):
if '*' in x:
coef, species = x.split('*',1)
coef = float(coef)
diff --git a/examples/doc/pyomobook/attic/scripts/alltogether.py b/examples/doc/pyomobook/attic/scripts/alltogether.py
index 1e4d0d6547f..f097575d669 100644
--- a/examples/doc/pyomobook/attic/scripts/alltogether.py
+++ b/examples/doc/pyomobook/attic/scripts/alltogether.py
@@ -1,6 +1,6 @@
import pyomo.environ
from pyomo.opt import SolverFactory
-from pyomo.common.collections import Options
+from pyomo.common.collections import Bunch
import sys
import math
@@ -39,7 +39,7 @@
instance=model.create()
SolverName = "asl"
-so = Options()
+so = Bunch()
so.solver = "ipopt"
opt=SolverFactory(SolverName, options=so)
diff --git a/examples/doc/pyomobook/attic/scripts/benders/runbenders b/examples/doc/pyomobook/attic/scripts/benders/runbenders
index 1699d646e11..a398abd1cc5 100755
--- a/examples/doc/pyomobook/attic/scripts/benders/runbenders
+++ b/examples/doc/pyomobook/attic/scripts/benders/runbenders
@@ -7,7 +7,7 @@
# Python imports
# @imports:
-from pyutilib.misc import import_file
+from pyomo.common.fileutils import import_file
from pyomo.environ import *
from pyomo.opt.base import SolverFactory
from pyomo.opt.parallel import SolverManagerFactory
diff --git a/examples/doc/pyomobook/attic/scripts/indexnonlinscript.py b/examples/doc/pyomobook/attic/scripts/indexnonlinscript.py
index 961b7382866..5be62ba547d 100644
--- a/examples/doc/pyomobook/attic/scripts/indexnonlinscript.py
+++ b/examples/doc/pyomobook/attic/scripts/indexnonlinscript.py
@@ -1,7 +1,7 @@
import sys
import pyomo.environ
from pyomo.opt import SolverFactory
-from pyomo.common.collections import Options
+from pyomo.common.collections import Bunch
from indexnonlin import model
@@ -12,7 +12,7 @@
instance=model.create()
SolverName = "asl"
-so = Options()
+so = Bunch()
so.solver = "ipopt"
opt=SolverFactory(SolverName, options=so)
diff --git a/examples/doc/pyomobook/attic/scripts/mimic_pyomo/mimic_pyomo.py b/examples/doc/pyomobook/attic/scripts/mimic_pyomo/mimic_pyomo.py
index 736b31a36ad..cac032cd99c 100644
--- a/examples/doc/pyomobook/attic/scripts/mimic_pyomo/mimic_pyomo.py
+++ b/examples/doc/pyomobook/attic/scripts/mimic_pyomo/mimic_pyomo.py
@@ -1,9 +1,9 @@
# Mimic the pyomo script
from pyomo.core import *
-from pyomo.common.collections import Options
+from pyomo.common.collections import Bunch
# set high level options that mimic pyomo comand line
-options = Options()
+options = Bunch()
options.model_file = 'DiseaseEstimation.py'
options.data_files = ['DiseaseEstimation.dat']
options.solver = 'ipopt'
diff --git a/examples/doc/pyomobook/attic/scripts/nonlinscript.py b/examples/doc/pyomobook/attic/scripts/nonlinscript.py
index b231c61b3ba..f08b6357e18 100644
--- a/examples/doc/pyomobook/attic/scripts/nonlinscript.py
+++ b/examples/doc/pyomobook/attic/scripts/nonlinscript.py
@@ -1,7 +1,7 @@
import sys
import pyomo.environ
from pyomo.opt import SolverFactory
-from pyomo.common.collections import Options
+from pyomo.common.collections import Bunch
from nonlin import model
@@ -12,7 +12,7 @@
instance=model.create()
SolverName = "asl"
-so = Options()
+so = Bunch()
so.solver = "ipopt"
opt=SolverFactory(SolverName, options=so)
diff --git a/examples/doc/pyomobook/dae-ch/run_path_constraint_tester.py b/examples/doc/pyomobook/dae-ch/run_path_constraint_tester.py
index 6616ed32f9e..ba40674c8fc 100644
--- a/examples/doc/pyomobook/dae-ch/run_path_constraint_tester.py
+++ b/examples/doc/pyomobook/dae-ch/run_path_constraint_tester.py
@@ -1,14 +1,15 @@
-import pyutilib.misc
+from pyomo.common.tee import capture_output
from six import StringIO
output = StringIO()
-pyutilib.misc.setup_redirect(output)
+capture = capture_output(output)
+capture.setup()
try:
# Run the runner
from run_path_constraint import results, m as model
finally:
- pyutilib.misc.reset_redirect()
+ capture.reset()
# Report the result
for line in output.getvalue().splitlines():
diff --git a/examples/doc/samples/pyomo_book/nonlinear_ReactorDesignTable.py b/examples/doc/samples/pyomo_book/nonlinear_ReactorDesignTable.py
index a0c1b61391b..8346cd0ebfa 100644
--- a/examples/doc/samples/pyomo_book/nonlinear_ReactorDesignTable.py
+++ b/examples/doc/samples/pyomo_book/nonlinear_ReactorDesignTable.py
@@ -1,6 +1,6 @@
# nonlinear_ReactorDesignTable.py
from pyomo.environ import *
-from pyomo.common.collections import Options
+from pyomo.common.collections import Bunch
# create the concrete model
model = ConcreteModel()
@@ -36,7 +36,7 @@
+ k3 * model.ca ** 2.0))
# setup the solver options
-options = Options()
+options = Bunch()
options.solver = 'ipopt'
options.quiet = True
diff --git a/examples/doc/samples/pyomo_book/scripts_mimicPyomo.py b/examples/doc/samples/pyomo_book/scripts_mimicPyomo.py
index 870a9f4decd..46723752fcd 100644
--- a/examples/doc/samples/pyomo_book/scripts_mimicPyomo.py
+++ b/examples/doc/samples/pyomo_book/scripts_mimicPyomo.py
@@ -1,9 +1,9 @@
# Mimic the pyomo script
from pyomo.environ import *
-from pyomo.common.collections import Options
+from pyomo.common.collections import Bunch
# set high level options that mimic pyomo comand line
-options = Options()
+options = Bunch()
options.model_file = 'DiseaseEstimation.py'
options.data_files = ['DiseaseEstimation.dat']
options.solver = 'ipopt'
diff --git a/examples/doc/samples/scripts/test_scripts.py b/examples/doc/samples/scripts/test_scripts.py
index 1df15d2d7b2..f2cf36f127e 100644
--- a/examples/doc/samples/scripts/test_scripts.py
+++ b/examples/doc/samples/scripts/test_scripts.py
@@ -1,11 +1,22 @@
+# ___________________________________________________________________________
+#
+# Pyomo: Python Optimization Modeling Objects
+# Copyright 2017 National Technology and Engineering Solutions of Sandia, LLC
+# Under the terms of Contract DE-NA0003525 with National Technology and
+# Engineering Solutions of Sandia, LLC, the U.S. Government retains certain
+# rights in this software.
+# This software is distributed under the 3-clause BSD License.
+# ___________________________________________________________________________
+
import os
import sys
+import subprocess
from os.path import abspath, dirname
currdir = dirname(abspath(__file__))+os.sep
import pyomo.core
import pyutilib.th as unittest
-import pyutilib.subprocess
+
try:
import yaml
yaml_available=True
@@ -34,7 +45,9 @@ def tearDown(self):
def run_script(self, test, filter, yaml=False):
cwd = self.cwd+os.sep+test+os.sep
os.chdir(cwd)
- pyutilib.subprocess.run(sys.executable+' script.py', outfile=cwd+os.sep+'script.log', cwd=cwd)
+ with open(cwd+os.sep+'script.log', 'w') as f:
+ subprocess.run([sys.executable, 'script.py'],
+ stdout=f, stderr=f, cwd=cwd)
if yaml:
self.assertMatchesYamlBaseline(cwd+"script.log", cwd+"script.out", tolerance=1e-3)
else:
diff --git a/examples/pyomo/callbacks/sc.py b/examples/pyomo/callbacks/sc.py
index 9faa62dd6a1..10781ec8f5a 100644
--- a/examples/pyomo/callbacks/sc.py
+++ b/examples/pyomo/callbacks/sc.py
@@ -8,7 +8,7 @@
# This software is distributed under the 3-clause BSD License.
# ___________________________________________________________________________
-from pyomo.common.collections import Options
+from pyomo.common.collections import Bunch
from pyomo.core import *
import math
import random
@@ -45,7 +45,7 @@ def print_model_stats(options,model):
def pyomo_create_model(options=None, model_options=None):
if model_options is None:
- model_options = Options()
+ model_options = Bunch()
if model_options.type is None:
model_options.type = 'fixed_set_size'
#
@@ -185,24 +185,24 @@ def test_model(options=None):
if __name__ == '__main__':
test_model()
#
- options = Options()
+ options = Bunch()
options.type = 'fixed_set_size'
options.m = 11
options.n = 21
options.rho = 0.3
test_model(options)
#
- options = Options()
+ options = Bunch()
options.type = 'fixed_element_coverage'
test_model(options)
#
- options = Options()
+ options = Bunch()
options.m = 100
options.n = 200
options.type = 'fixed_probability'
test_model(options)
#
- options = Options()
+ options = Bunch()
options.type = 'fixed_element_coverage'
options.m = 10
options.n = 100
diff --git a/examples/pysp/README.txt b/examples/pysp/README.txt
deleted file mode 100644
index 4e10dc68387..00000000000
--- a/examples/pysp/README.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-#
-# Examples for pyomo.pysp
-#
diff --git a/examples/pysp/baa99/ReferenceModel.py b/examples/pysp/baa99/ReferenceModel.py
deleted file mode 100644
index d2c51208d00..00000000000
--- a/examples/pysp/baa99/ReferenceModel.py
+++ /dev/null
@@ -1,82 +0,0 @@
-# ___________________________________________________________________________
-#
-# Pyomo: Python Optimization Modeling Objects
-# Copyright 2017 National Technology and Engineering Solutions of Sandia, LLC
-# Under the terms of Contract DE-NA0003525 with National Technology and
-# Engineering Solutions of Sandia, LLC, the U.S. Government retains certain
-# rights in this software.
-# This software is distributed under the 3-clause BSD License.
-# ___________________________________________________________________________
-
-# baa99: Annotated with location of stochastic rhs entries
-# for use with pysp2smps conversion tool.
-
-import itertools
-
-from pyomo.pysp.annotations import StochasticConstraintBoundsAnnotation
-
-#
-# Import the reference model
-#
-from baa99_basemodel import model
-
-#
-# Annotate the model to enable SMPS conversion
-# of the explicit scenario tree defined later
-# in this file
-#
-
-model.stoch_rhs = StochasticConstraintBoundsAnnotation()
-model.stoch_rhs.declare(model.d1)
-model.stoch_rhs.declare(model.d2)
-
-#
-# Define the scenario tree and provide a scenario instance
-# creation callback
-#
-num_scenarios = len(model.d1_rhs_table) * len(model.d2_rhs_table)
-scenario_data = dict(('Scenario'+str(i), (d1val, d2val))
- for i, (d1val, d2val) in
- enumerate(itertools.product(model.d1_rhs_table,
- model.d2_rhs_table), 1))
-
-def pysp_scenario_tree_model_callback():
- from pyomo.pysp.scenariotree.tree_structure_model import \
- CreateConcreteTwoStageScenarioTreeModel
-
- st_model = CreateConcreteTwoStageScenarioTreeModel(num_scenarios)
-
- first_stage = st_model.Stages.first()
- second_stage = st_model.Stages.last()
-
- # First Stage
- st_model.StageCost[first_stage] = 'FirstStageCost'
- st_model.StageVariables[first_stage].add('x1')
- st_model.StageVariables[first_stage].add('x2')
-
- # Second Stage
- st_model.StageCost[second_stage] = 'SecondStageCost'
- st_model.StageVariables[second_stage].add('v1')
- st_model.StageVariables[second_stage].add('v2')
- st_model.StageVariables[second_stage].add('u1')
- st_model.StageVariables[second_stage].add('u2')
- st_model.StageVariables[second_stage].add('w11')
- st_model.StageVariables[second_stage].add('w12')
- st_model.StageVariables[second_stage].add('w22')
-
- return st_model
-
-def pysp_instance_creation_callback(scenario_name, node_names):
-
- #
- # Clone a new instance and update the stochastic
- # parameters from the sampled scenario
- #
-
- instance = model.clone()
-
- d1_rhs_val, d2_rhs_val = scenario_data[scenario_name]
- instance.d1_rhs.value = d1_rhs_val
- instance.d2_rhs.value = d2_rhs_val
-
- return instance
diff --git a/examples/pysp/baa99/baa99_basemodel.py b/examples/pysp/baa99/baa99_basemodel.py
deleted file mode 100644
index 68c4c2351ed..00000000000
--- a/examples/pysp/baa99/baa99_basemodel.py
+++ /dev/null
@@ -1,119 +0,0 @@
-# ___________________________________________________________________________
-#
-# Pyomo: Python Optimization Modeling Objects
-# Copyright 2017 National Technology and Engineering Solutions of Sandia, LLC
-# Under the terms of Contract DE-NA0003525 with National Technology and
-# Engineering Solutions of Sandia, LLC, the U.S. Government retains certain
-# rights in this software.
-# This software is distributed under the 3-clause BSD License.
-# ___________________________________________________________________________
-#
-# baa99: Annotated with location of stochastic rhs entries
-# for use with pysp2smps conversion tool.
-
-from pyomo.core import *
-
-model = ConcreteModel()
-
-# use mutable parameters so that the constraint
-# right-hand-sides can be updated for each scenario
-model.d1_rhs = Param(mutable=True)
-model.d2_rhs = Param(mutable=True)
-
-# first-stage variables
-model.x1 = Var(bounds=(0,217))
-model.x2 = Var(bounds=(0,217))
-
-# second-stage variables
-model.v1 = Var(within=NonNegativeReals)
-model.v2 = Var(within=NonNegativeReals)
-model.u1 = Var(within=NonNegativeReals)
-model.u2 = Var(within=NonNegativeReals)
-model.w11 = Var(within=NonNegativeReals)
-model.w12 = Var(within=NonNegativeReals)
-model.w22 = Var(within=NonNegativeReals)
-
-# stage-cost expressions
-model.FirstStageCost = \
- Expression(initialize=(4*model.x1 + 2*model.x2))
-model.SecondStageCost = \
- Expression(initialize=(-8*model.w11 - 4*model.w12 - 4*model.w22 +\
- 0.2*model.v1 + 0.2*model.v2 + 10*model.u1 + 10*model.u2))
-
-# always define the objective as the sum of the stage costs
-model.obj = Objective(expr=model.FirstStageCost + model.SecondStageCost)
-
-#
-# this model only has second-stage constraints
-#
-
-model.s1 = Constraint(expr=-model.x1 + model.w11 + model.w12 + model.v1 == 0)
-model.s2 = Constraint(expr=-model.x2 + model.w22 + model.v2 == 0)
-
-#
-# these two constraints have stochastic right-hand-sides
-#
-
-model.d1 = Constraint(expr=model.w11 + model.u1 == model.d1_rhs)
-model.d2 = Constraint(expr=model.w12 + model.w22 + model.u2 == model.d2_rhs)
-
-
-#
-# Store the possible table values for the stochastic parameters
-# on the model. These will be used to either generate an explicit
-# list of scenarios or to represent the SP implicitly.
-#
-
-model.d1_rhs_table = \
- [17.75731865,
- 32.96224832,
- 43.68044355,
- 52.29173734,
- 59.67893765,
- 66.27551249,
- 72.33076402,
- 78.00434172,
- 83.40733268,
- 88.62275117,
- 93.71693266,
- 98.74655459,
- 103.7634931,
- 108.8187082,
- 113.9659517,
- 119.2660233,
- 124.7925174,
- 130.6406496,
- 136.9423425,
- 143.8948148,
- 151.8216695,
- 161.326406,
- 173.7895514,
- 194.0396804,
- 216.3173937]
-
-model.d2_rhs_table = \
- [5.960319592,
- 26.21044859,
- 38.673594,
- 48.17833053,
- 56.10518525,
- 63.05765754,
- 69.35935045,
- 75.20748263,
- 80.73397668,
- 86.03404828,
- 91.18129176,
- 96.2365069,
- 101.2534454,
- 106.2830673,
- 111.3772488,
- 116.5926673,
- 121.9956583,
- 127.669236,
- 133.7244875,
- 140.3210624,
- 147.7082627,
- 156.3195565,
- 167.0377517,
- 182.2426813,
- 216.3173937]
diff --git a/examples/pysp/farmer/README.txt b/examples/pysp/farmer/README.txt
deleted file mode 100644
index 6e6f085456b..00000000000
--- a/examples/pysp/farmer/README.txt
+++ /dev/null
@@ -1,46 +0,0 @@
-This directory contains pyomo/pysp models and data for the "Farmer" stochastic program (and corresponding
-deterministic program), introduced in Section 1.1 of "Introduction to Stochastic Programming" by Birge and
-Louveaux.
-
-This problem serves as a simple, quick smoke-screen test for a functioning stochastic programming solver.
-
-The deterministic, expected-value model can be solved simply by the following command-line:
-
-pyomo solve --solver=cplex models/ReferenceModel.py scenariodata/AverageScenario.dat
-
-The optimal objective value for the deterministic expected-value model is: -118600 (profit if 118600).
-
-The stochastic farmers problem is split into the following directories:
-- models ; contains the scenario tree and scenario reference model files.
-- nodedata ; contains node-oriented data for the two-stage case (low, medium, and high yield scenarios).
-- scenariodata ; contains scenario-oriented data for the two-stage case.
-
-The optimal objective value for the stochastic model is: -108390 (profit of 108390).
-The optimal solution for the stochastic model plants 170 acres of wheat, 80 acres of corn, and 250 acres of sugar beets.
-
-The stochasic farmers problem can be solved via the following command-line:
-
-runph --model-directory=models --instance-directory=nodedata --default-rho=1
-
-This should converge in 48 iterations, with an expected profit of 108390 (-108390 objective value).
-
-We did not experiment with any rho values other than 1.0 for this problem - 1.0 works, and we
-aren't that interested in solving this problem more quickly.
-
-To linearize the quadratic penalty terms, simply add the following options to the command line:
-
---linearize-nonbinary-penalty-terms=2
-
-Four piecewise linear segments per blended variable yields faster convergence (9 iterations), but
-a sub-optimal solution (-107958.9).
-
-Fourteen piece linear segments per blended variable yields slow convergence (28 iterations), but
-an optimal solution - to within convergence tolerance (-108389).
-
-All of the above solutions were obtained with CPLEX 12.2 - different solvers may yield slightly
-different convergence behaviors.
-
-You can also run this example using MPI, leveraging PySP's PH solver servers. An example
-command-line is as follows:
-
-mpirun -np 1 pyomo_ns : -np 1 dispatch_srvr : -np 3 phsolverserver : -np 1 runph --solver=cplex --solver-manager=phpyro --shutdown-pyro --model-directory=models --instance-directory=scenariodata --default-rho=1.0
diff --git a/examples/pysp/farmer/concrete/ReferenceModel.py b/examples/pysp/farmer/concrete/ReferenceModel.py
deleted file mode 100644
index 4c7311b4616..00000000000
--- a/examples/pysp/farmer/concrete/ReferenceModel.py
+++ /dev/null
@@ -1,125 +0,0 @@
-# ___________________________________________________________________________
-#
-# Pyomo: Python Optimization Modeling Objects
-# Copyright 2017 National Technology and Engineering Solutions of Sandia, LLC
-# Under the terms of Contract DE-NA0003525 with National Technology and
-# Engineering Solutions of Sandia, LLC, the U.S. Government retains certain
-# rights in this software.
-# This software is distributed under the 3-clause BSD License.
-# ___________________________________________________________________________
-#
-# Farmer: rent out version has a scalar root node var
-# note: this will minimize
-#
-# Imports
-#
-
-from pyomo.core import *
-
-#
-# Model
-#
-
-model = ConcreteModel()
-
-#
-# Parameters
-#
-
-model.CROPS = Set(initialize=['WHEAT','CORN','SUGAR_BEETS'])
-
-model.TOTAL_ACREAGE = 500.0
-
-model.PriceQuota = {'WHEAT':100000.0,'CORN':100000.0,'SUGAR_BEETS':6000.0}
-
-model.SubQuotaSellingPrice = {'WHEAT':170.0,'CORN':150.0,'SUGAR_BEETS':36.0}
-
-model.SuperQuotaSellingPrice = {'WHEAT':0.0,'CORN':0.0,'SUGAR_BEETS':10.0}
-
-model.CattleFeedRequirement = {'WHEAT':200.0,'CORN':240.0,'SUGAR_BEETS':0.0}
-
-model.PurchasePrice = {'WHEAT':238.0,'CORN':210.0,'SUGAR_BEETS':100000.0}
-
-model.PlantingCostPerAcre = {'WHEAT':150.0,'CORN':230.0,'SUGAR_BEETS':260.0}
-
-model.Yield = Param(model.CROPS, within=NonNegativeReals, initialize=0.0, mutable=True)
-
-#
-# Variables
-#
-
-model.DevotedAcreage = Var(model.CROPS, bounds=(0.0, model.TOTAL_ACREAGE))
-
-model.QuantitySubQuotaSold = Var(model.CROPS, bounds=(0.0, None))
-model.QuantitySuperQuotaSold = Var(model.CROPS, bounds=(0.0, None))
-model.QuantityPurchased = Var(model.CROPS, bounds=(0.0, None))
-
-#
-# Constraints
-#
-
-def ConstrainTotalAcreage_rule(model):
- return sum_product(model.DevotedAcreage) <= model.TOTAL_ACREAGE
-
-model.ConstrainTotalAcreage = Constraint(rule=ConstrainTotalAcreage_rule)
-
-def EnforceCattleFeedRequirement_rule(model, i):
- return model.CattleFeedRequirement[i] <= (model.Yield[i] * model.DevotedAcreage[i]) + model.QuantityPurchased[i] - model.QuantitySubQuotaSold[i] - model.QuantitySuperQuotaSold[i]
-
-model.EnforceCattleFeedRequirement = Constraint(model.CROPS, rule=EnforceCattleFeedRequirement_rule)
-
-def LimitAmountSold_rule(model, i):
- return model.QuantitySubQuotaSold[i] + model.QuantitySuperQuotaSold[i] - (model.Yield[i] * model.DevotedAcreage[i]) <= 0.0
-
-model.LimitAmountSold = Constraint(model.CROPS, rule=LimitAmountSold_rule)
-
-def EnforceQuotas_rule(model, i):
- return (0.0, model.QuantitySubQuotaSold[i], model.PriceQuota[i])
-
-model.EnforceQuotas = Constraint(model.CROPS, rule=EnforceQuotas_rule)
-
-#
-# Stage-specific cost computations
-#
-
-def ComputeFirstStageCost_rule(model):
- return sum_product(model.PlantingCostPerAcre, model.DevotedAcreage)
-model.FirstStageCost = Expression(rule=ComputeFirstStageCost_rule)
-
-def ComputeSecondStageCost_rule(model):
- expr = sum_product(model.PurchasePrice, model.QuantityPurchased)
- expr -= sum_product(model.SubQuotaSellingPrice, model.QuantitySubQuotaSold)
- expr -= sum_product(model.SuperQuotaSellingPrice, model.QuantitySuperQuotaSold)
- return expr
-model.SecondStageCost = Expression(rule=ComputeSecondStageCost_rule)
-
-#
-# PySP Auto-generated Objective
-#
-# minimize: sum of StageCosts
-#
-# An active scenario objective equivalent to that generated by PySP is
-# included here for informational purposes.
-def total_cost_rule(model):
- return model.FirstStageCost + model.SecondStageCost
-model.Total_Cost_Objective = Objective(rule=total_cost_rule, sense=minimize)
-
-#@pyomobook:
-#
-# Stochastic Data
-#
-Yield = {}
-Yield['BelowAverageScenario'] = \
- {'WHEAT':2.0,'CORN':2.4,'SUGAR_BEETS':16.0}
-Yield['AverageScenario'] = \
- {'WHEAT':2.5,'CORN':3.0,'SUGAR_BEETS':20.0}
-Yield['AboveAverageScenario'] = \
- {'WHEAT':3.0,'CORN':3.6,'SUGAR_BEETS':24.0}
-
-def pysp_instance_creation_callback(scenario_name, node_names):
-
- instance = model.clone()
- instance.Yield.store_values(Yield[scenario_name])
-
- return instance
-#@:pyomobook
diff --git a/examples/pysp/farmer/concreteNetX/AAAReadme.txt b/examples/pysp/farmer/concreteNetX/AAAReadme.txt
deleted file mode 100644
index 5c3fea8a8d7..00000000000
--- a/examples/pysp/farmer/concreteNetX/AAAReadme.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-Created by DLW, Oct 2018
-runef -m ReferenceModel.py
diff --git a/examples/pysp/farmer/concreteNetX/ReferenceModel.py b/examples/pysp/farmer/concreteNetX/ReferenceModel.py
deleted file mode 100644
index fad6971c96b..00000000000
--- a/examples/pysp/farmer/concreteNetX/ReferenceModel.py
+++ /dev/null
@@ -1,160 +0,0 @@
-# ___________________________________________________________________________
-#
-# Pyomo: Python Optimization Modeling Objects
-# Copyright 2017 National Technology and Engineering Solutions of Sandia, LLC
-# Under the terms of Contract DE-NA0003525 with National Technology and
-# Engineering Solutions of Sandia, LLC, the U.S. Government retains certain
-# rights in this software.
-# This software is distributed under the 3-clause BSD License.
-# ___________________________________________________________________________
-#
-# Farmer: NetworkX to create tree & gratitiously using indexed cost expressions
-
-import networkx
-
-import pyomo.environ as pyo
-
-model = pyo.ConcreteModel()
-
-#
-# Parameters
-#
-
-model.CROPS = pyo.Set(initialize=['WHEAT','CORN','SUGAR_BEETS'])
-
-model.TOTAL_ACREAGE = 500.0
-
-model.PriceQuota = {'WHEAT':100000.0,'CORN':100000.0,'SUGAR_BEETS':6000.0}
-
-model.SubQuotaSellingPrice = {'WHEAT':170.0,'CORN':150.0,'SUGAR_BEETS':36.0}
-
-model.SuperQuotaSellingPrice = {'WHEAT':0.0,'CORN':0.0,'SUGAR_BEETS':10.0}
-
-model.CattleFeedRequirement = {'WHEAT':200.0,'CORN':240.0,'SUGAR_BEETS':0.0}
-
-model.PurchasePrice = {'WHEAT':238.0,'CORN':210.0,'SUGAR_BEETS':100000.0}
-
-model.PlantingCostPerAcre = {'WHEAT':150.0,'CORN':230.0,'SUGAR_BEETS':260.0}
-
-model.Yield = pyo.Param(model.CROPS,
- within=pyo.NonNegativeReals,
- initialize=0.0,
- mutable=True)
-
-#
-# Variables
-#
-
-model.DevotedAcreage = pyo.Var(model.CROPS, bounds=(0.0, model.TOTAL_ACREAGE))
-
-model.QuantitySubQuotaSold = pyo.Var(model.CROPS, bounds=(0.0, None))
-model.QuantitySuperQuotaSold = pyo.Var(model.CROPS, bounds=(0.0, None))
-model.QuantityPurchased = pyo.Var(model.CROPS, bounds=(0.0, None))
-
-#
-# Constraints
-#
-
-def ConstrainTotalAcreage_rule(model):
- return pyo.sum_product(model.DevotedAcreage) <= model.TOTAL_ACREAGE
-
-model.ConstrainTotalAcreage = pyo.Constraint(rule=ConstrainTotalAcreage_rule)
-
-def EnforceCattleFeedRequirement_rule(model, i):
- return model.CattleFeedRequirement[i] <= (model.Yield[i] * model.DevotedAcreage[i]) + model.QuantityPurchased[i] - model.QuantitySubQuotaSold[i] - model.QuantitySuperQuotaSold[i]
-
-model.EnforceCattleFeedRequirement = pyo.Constraint(model.CROPS, rule=EnforceCattleFeedRequirement_rule)
-
-def LimitAmountSold_rule(model, i):
- return model.QuantitySubQuotaSold[i] + model.QuantitySuperQuotaSold[i] - (model.Yield[i] * model.DevotedAcreage[i]) <= 0.0
-
-model.LimitAmountSold = pyo.Constraint(model.CROPS, rule=LimitAmountSold_rule)
-
-def EnforceQuotas_rule(model, i):
- return (0.0, model.QuantitySubQuotaSold[i], model.PriceQuota[i])
-
-model.EnforceQuotas = pyo.Constraint(model.CROPS, rule=EnforceQuotas_rule)
-
-# Stage-specific cost computations;
-
-def ComputeFirstStageCost_rule(model):
- return pyo.sum_product(model.PlantingCostPerAcre, model.DevotedAcreage)
-model.FirstStageCost = pyo.Expression(rule=ComputeFirstStageCost_rule)
-
-def ComputeSecondStageCost_rule(model):
- expr = pyo.sum_product(model.PurchasePrice, model.QuantityPurchased)
- expr -= pyo.sum_product(model.SubQuotaSellingPrice, model.QuantitySubQuotaSold)
- expr -= pyo.sum_product(model.SuperQuotaSellingPrice, model.QuantitySuperQuotaSold)
- return expr
-model.SecondStageCost = pyo.Expression(rule=ComputeSecondStageCost_rule)
-
-# Gratitiously using an indexed cost Expression
-# (you really could/should use the two you already have)
-StageSet = pyo.RangeSet(2)
-def cost_rule(m, stage):
- # Just assign the expressions to the right stage
- if stage == 1:
- return model.FirstStageCost
- if stage == 2:
- return model.SecondStageCost
-model.CostExpressions = pyo.Expression(StageSet, rule=cost_rule)
-
-def total_cost_rule(model):
- return model.FirstStageCost + model.SecondStageCost
-model.Total_Cost_Objective = pyo.Objective(rule=total_cost_rule, sense=pyo.minimize)
-
-#
-# Stochastic Data
-#
-Yield = {}
-Yield['BelowAverageScenario'] = \
- {'WHEAT':2.0,'CORN':2.4,'SUGAR_BEETS':16.0}
-Yield['AverageScenario'] = \
- {'WHEAT':2.5,'CORN':3.0,'SUGAR_BEETS':20.0}
-Yield['AboveAverageScenario'] = \
- {'WHEAT':3.0,'CORN':3.6,'SUGAR_BEETS':24.0}
-
-def pysp_instance_creation_callback(scenario_name, node_names):
-
- instance = model.clone()
- instance.Yield.store_values(Yield[scenario_name])
-
- return instance
-
-def pysp_scenario_tree_model_callback():
- # Return a NetworkX scenario tree.
- g = networkx.DiGraph()
-
- ce1 = "CostExpressions[1]"
- g.add_node("Root",
- cost = ce1,
- variables = ["DevotedAcreage[*]"],
- derived_variables = [])
-
- ce2 = "CostExpressions[2]"
- g.add_node("BelowAverageScenario",
- cost = ce2,
- variables = ["QuantitySubQuotaSold[*]",
- "QuantitySuperQuotaSold[*]",
- "QuantityPurchased[*]"],
- derived_variables = [])
- g.add_edge("Root", "BelowAverageScenario", weight=0.3333)
-
- g.add_node("AverageScenario",
- cost = ce2,
- variables = ["QuantitySubQuotaSold[*]",
- "QuantitySuperQuotaSold[*]",
- "QuantityPurchased[*]"],
- derived_variables = [])
- g.add_edge("Root", "AverageScenario", weight=0.3333)
-
- g.add_node("AboveAverageScenario",
- cost = ce2,
- variables = ["QuantitySubQuotaSold[*]",
- "QuantitySuperQuotaSold[*]",
- "QuantityPurchased[*]"],
- derived_variables = [])
- g.add_edge("Root", "AboveAverageScenario", weight=0.3334)
-
- return g
-
diff --git a/examples/pysp/farmer/config/aggregategetter.py b/examples/pysp/farmer/config/aggregategetter.py
deleted file mode 100644
index cc8a717463f..00000000000
--- a/examples/pysp/farmer/config/aggregategetter.py
+++ /dev/null
@@ -1,51 +0,0 @@
-# ___________________________________________________________________________
-#
-# Pyomo: Python Optimization Modeling Objects
-# Copyright 2017 National Technology and Engineering Solutions of Sandia, LLC
-# Under the terms of Contract DE-NA0003525 with National Technology and
-# Engineering Solutions of Sandia, LLC, the U.S. Government retains certain
-# rights in this software.
-# This software is distributed under the 3-clause BSD License.
-# ___________________________________________________________________________
-
-from pyomo.core import *
-
-# This callback is for collecting aggregate scenario data which is
-# stored on the _aggregate_user_data member of ph after this callback
-# has been sequentially executed with every scenario. This is the
-# only reliable method for collecting such data because scenario
-# instances are not present on the master ph object when PH is
-# executed in parallel mode.
-
-def ph_aggregategetter_callback(ph, scenario_tree, scenario, data):
-
- if 'scenario_yield' not in data:
- # This is the first time calling
- scenario_yield = data['scenario_yield'] = {}
- max_yield = data['max_yield'] = {}
- max_yield['WHEAT'] = 0.0
- max_yield['CORN'] = 0.0
- max_yield['SUGAR_BEETS'] = 0.0
- min_yield = data['min_yield'] = {}
- min_yield['WHEAT'] = float('Inf')
- min_yield['CORN'] = float('Inf')
- min_yield['SUGAR_BEETS'] = float('Inf')
- else:
- scenario_yield = data['scenario_yield']
- max_yield = data['max_yield']
- min_yield = data['min_yield']
-
- this_scenario_yield = scenario_yield[scenario._name] = {}
- max_yield = max_yield
- min_yield = min_yield
- instance = scenario._instance
- for c in instance.CROPS:
- crop_yield = this_scenario_yield[c] = value(instance.Yield[c])
- if crop_yield > max_yield[c]:
- max_yield[c] = crop_yield
- if crop_yield < min_yield[c]:
- min_yield[c] = crop_yield
-
- # **IMPT**: Must also return aggregate data in a singleton tuple
- # to work with bundles
- return (data,)
diff --git a/examples/pysp/farmer/config/boundsetter.py b/examples/pysp/farmer/config/boundsetter.py
deleted file mode 100644
index 4b26487c2bb..00000000000
--- a/examples/pysp/farmer/config/boundsetter.py
+++ /dev/null
@@ -1,46 +0,0 @@
-# ___________________________________________________________________________
-#
-# Pyomo: Python Optimization Modeling Objects
-# Copyright 2017 National Technology and Engineering Solutions of Sandia, LLC
-# Under the terms of Contract DE-NA0003525 with National Technology and
-# Engineering Solutions of Sandia, LLC, the U.S. Government retains certain
-# rights in this software.
-# This software is distributed under the 3-clause BSD License.
-# ___________________________________________________________________________
-
-from pyomo.core import *
-
-def ph_boundsetter_callback(ph, scenario_tree, scenario):
-
- scenario_yield = ph._aggregate_user_data['scenario_yield']
- max_yield = ph._aggregate_user_data['max_yield']
- min_yield = ph._aggregate_user_data['min_yield']
-
- scenario_instance = scenario._instance
- for c in scenario_instance.CROPS:
- assert min_yield[c] <= scenario_yield[scenario._name][c] <= max_yield[c]
-
- symbol_map = scenario_instance._ScenarioTreeSymbolMap
- leaf_node = scenario._node_list[-1]
- for c in scenario_instance.CROPS:
-
- max_produced = \
- max_yield[c]*value(scenario_instance.TOTAL_ACREAGE)
-
- variable_id = \
- symbol_map.getSymbol(scenario_instance.QuantitySuperQuotaSold[c])
- ph.setVariableBoundsOneScenario(
- leaf_node,
- scenario,
- variable_id,
- 0.0,
- max_produced)
-
- variable_id = \
- symbol_map.getSymbol(scenario_instance.QuantitySubQuotaSold[c])
- ph.setVariableBoundsOneScenario(
- leaf_node,
- scenario,
- variable_id,
- 0.0,
- max_produced)
diff --git a/examples/pysp/farmer/config/rhosetter.py b/examples/pysp/farmer/config/rhosetter.py
deleted file mode 100644
index 94c07ad6540..00000000000
--- a/examples/pysp/farmer/config/rhosetter.py
+++ /dev/null
@@ -1,29 +0,0 @@
-# ___________________________________________________________________________
-#
-# Pyomo: Python Optimization Modeling Objects
-# Copyright 2017 National Technology and Engineering Solutions of Sandia, LLC
-# Under the terms of Contract DE-NA0003525 with National Technology and
-# Engineering Solutions of Sandia, LLC, the U.S. Government retains certain
-# rights in this software.
-# This software is distributed under the 3-clause BSD License.
-# ___________________________________________________________________________
-
-def ph_rhosetter_callback(ph, scenario_tree, scenario):
-
- root_node = scenario_tree.findRootNode()
-
- scenario_yield = ph._aggregate_user_data['scenario_yield']
- max_yield = ph._aggregate_user_data['max_yield']
- min_yield = ph._aggregate_user_data['min_yield']
-
- scenario_instance = scenario._instance
- for c in scenario_instance.CROPS:
- assert min_yield[c] <= scenario_yield[scenario._name][c] <= max_yield[c]
-
- symbol_map = scenario_instance._ScenarioTreeSymbolMap
- for c in scenario_instance.CROPS:
- variable_id = symbol_map.getSymbol(scenario_instance.DevotedAcreage[c])
- ph.setRhoOneScenario(root_node,
- scenario,
- variable_id,
- 1.0/max_yield[c])
diff --git a/examples/pysp/farmer/config/wwph.cfg b/examples/pysp/farmer/config/wwph.cfg
deleted file mode 100644
index 55e89953042..00000000000
--- a/examples/pysp/farmer/config/wwph.cfg
+++ /dev/null
@@ -1,5 +0,0 @@
-self.Verbose = True
-self.RhosSEPMult = 1.0
-self.fix_continuous_variable = True
-self.fix_converged_discrete_variables_at_exit = True
-self.ReportPotentialCycles = True
diff --git a/examples/pysp/farmer/config/wwph.suffixes b/examples/pysp/farmer/config/wwph.suffixes
deleted file mode 100644
index 67f65e138d9..00000000000
--- a/examples/pysp/farmer/config/wwph.suffixes
+++ /dev/null
@@ -1,18 +0,0 @@
-RootNode: # or FirstStage
- DevotedAcreage[SUGAR_BEETS]:
- CanSlamToAnywhere: True
- SlammingPriority: 1
- DevotedAcreage[WHEAT]:
- CanSlamToAnywhere: True
- SlammingPriority: 2
- DevotedAcreage[CORN]:
- CanSlamToAnywhere: True
- SlammingPriority: 3
-
-#RootNode:
-# DevotedAcreage[CORN]:
-# CostForRho: 150
-# DevotedAcreage[WHEAT]:
-# CostForRho: 230
-# DevotedAcreage[SUGAR_BEETS]:
-# CostForRho: 260
diff --git a/examples/pysp/farmer/expr_maxmodels/ReferenceModel.py b/examples/pysp/farmer/expr_maxmodels/ReferenceModel.py
deleted file mode 100644
index 7f6cb9b913c..00000000000
--- a/examples/pysp/farmer/expr_maxmodels/ReferenceModel.py
+++ /dev/null
@@ -1,109 +0,0 @@
-# ___________________________________________________________________________
-#
-# Pyomo: Python Optimization Modeling Objects
-# Copyright 2017 National Technology and Engineering Solutions of Sandia, LLC
-# Under the terms of Contract DE-NA0003525 with National Technology and
-# Engineering Solutions of Sandia, LLC, the U.S. Government retains certain
-# rights in this software.
-# This software is distributed under the 3-clause BSD License.
-# ___________________________________________________________________________
-
-# Farmer: rent out version has a scalar root node var
-# note: this will minimize
-#
-# Imports
-#
-
-from pyomo.core import *
-
-#
-# Model
-#
-
-model = AbstractModel()
-
-#
-# Parameters
-#
-
-model.CROPS = Set()
-
-model.TOTAL_ACREAGE = Param(within=PositiveReals)
-
-model.PriceQuota = Param(model.CROPS, within=PositiveReals)
-
-model.SubQuotaSellingPrice = Param(model.CROPS, within=PositiveReals)
-
-def super_quota_selling_price_validate (model, value, i):
- return model.SubQuotaSellingPrice[i] >= model.SuperQuotaSellingPrice[i]
-
-model.SuperQuotaSellingPrice = Param(model.CROPS, validate=super_quota_selling_price_validate)
-
-model.CattleFeedRequirement = Param(model.CROPS, within=NonNegativeReals)
-
-model.PurchasePrice = Param(model.CROPS, within=PositiveReals)
-
-model.PlantingCostPerAcre = Param(model.CROPS, within=PositiveReals)
-
-model.Yield = Param(model.CROPS, within=NonNegativeReals)
-
-#
-# Variables
-#
-
-model.DevotedAcreage = Var(model.CROPS, bounds=(0.0, model.TOTAL_ACREAGE))
-
-model.QuantitySubQuotaSold = Var(model.CROPS, bounds=(0.0, None))
-model.QuantitySuperQuotaSold = Var(model.CROPS, bounds=(0.0, None))
-
-model.QuantityPurchased = Var(model.CROPS, bounds=(0.0, None))
-
-#
-# Constraints
-#
-
-def ConstrainTotalAcreage_rule(model):
- return sum_product(model.DevotedAcreage) <= model.TOTAL_ACREAGE
-
-model.ConstrainTotalAcreage = Constraint(rule=ConstrainTotalAcreage_rule)
-
-def EnforceCattleFeedRequirement_rule(model, i):
- return model.CattleFeedRequirement[i] <= (model.Yield[i] * model.DevotedAcreage[i]) + model.QuantityPurchased[i] - model.QuantitySubQuotaSold[i] - model.QuantitySuperQuotaSold[i]
-
-model.EnforceCattleFeedRequirement = Constraint(model.CROPS, rule=EnforceCattleFeedRequirement_rule)
-
-def LimitAmountSold_rule(model, i):
- return model.QuantitySubQuotaSold[i] + model.QuantitySuperQuotaSold[i] - (model.Yield[i] * model.DevotedAcreage[i]) <= 0.0
-
-model.LimitAmountSold = Constraint(model.CROPS, rule=LimitAmountSold_rule)
-
-def EnforceQuotas_rule(model, i):
- return (0.0, model.QuantitySubQuotaSold[i], model.PriceQuota[i])
-
-model.EnforceQuotas = Constraint(model.CROPS, rule=EnforceQuotas_rule)
-
-#
-# Stage-specific cost computations
-#
-
-def ComputeFirstStageCost_rule(model):
- return -sum_product(model.PlantingCostPerAcre, model.DevotedAcreage)
-model.FirstStageCost = Expression(rule=ComputeFirstStageCost_rule)
-
-def ComputeSecondStageCost_rule(model):
- expr = sum_product(model.PurchasePrice, model.QuantityPurchased)
- expr -= sum_product(model.SubQuotaSellingPrice, model.QuantitySubQuotaSold)
- expr -= sum_product(model.SuperQuotaSellingPrice, model.QuantitySuperQuotaSold)
- return -expr
-model.SecondStageCost = Expression(rule=ComputeSecondStageCost_rule)
-
-#
-# PySP Auto-generated Objective
-#
-# minimize: sum of StageCosts
-#
-# A active scenario objective equivalent to that generated by PySP is
-# included here for informational purposes.
-def total_cost_rule(model):
- return model.FirstStageCost + model.SecondStageCost
-model.Total_Cost_Objective = Objective(rule=total_cost_rule, sense=maximize)
diff --git a/examples/pysp/farmer/expr_models/ReferenceModel.py b/examples/pysp/farmer/expr_models/ReferenceModel.py
deleted file mode 100644
index 70a6d85967a..00000000000
--- a/examples/pysp/farmer/expr_models/ReferenceModel.py
+++ /dev/null
@@ -1,110 +0,0 @@
-# ___________________________________________________________________________
-#
-# Pyomo: Python Optimization Modeling Objects
-# Copyright 2017 National Technology and Engineering Solutions of Sandia, LLC
-# Under the terms of Contract DE-NA0003525 with National Technology and
-# Engineering Solutions of Sandia, LLC, the U.S. Government retains certain
-# rights in this software.
-# This software is distributed under the 3-clause BSD License.
-# ___________________________________________________________________________
-
-# Farmer: rent out version has a scalar root node var
-# note: this will minimize
-#
-# Imports
-#
-
-from pyomo.core import *
-
-#
-# Model
-#
-
-model = AbstractModel()
-
-#
-# Parameters
-#
-
-model.CROPS = Set()
-
-model.TOTAL_ACREAGE = Param(within=PositiveReals)
-
-model.PriceQuota = Param(model.CROPS, within=PositiveReals)
-
-model.SubQuotaSellingPrice = Param(model.CROPS, within=PositiveReals)
-
-def super_quota_selling_price_validate (model, value, i):
- return model.SubQuotaSellingPrice[i] >= model.SuperQuotaSellingPrice[i]
-
-model.SuperQuotaSellingPrice = Param(model.CROPS, validate=super_quota_selling_price_validate)
-
-model.CattleFeedRequirement = Param(model.CROPS, within=NonNegativeReals)
-
-model.PurchasePrice = Param(model.CROPS, within=PositiveReals)
-
-model.PlantingCostPerAcre = Param(model.CROPS, within=PositiveReals)
-
-model.Yield = Param(model.CROPS, within=NonNegativeReals)
-
-#
-# Variables
-#
-
-model.DevotedAcreage = Var(model.CROPS, bounds=(0.0, model.TOTAL_ACREAGE))
-
-model.QuantitySubQuotaSold = Var(model.CROPS, bounds=(0.0, None))
-model.QuantitySuperQuotaSold = Var(model.CROPS, bounds=(0.0, None))
-
-model.QuantityPurchased = Var(model.CROPS, bounds=(0.0, None))
-
-#
-# Constraints
-#
-
-def ConstrainTotalAcreage_rule(model):
- return sum_product(model.DevotedAcreage) <= model.TOTAL_ACREAGE
-
-model.ConstrainTotalAcreage = Constraint(rule=ConstrainTotalAcreage_rule)
-
-def EnforceCattleFeedRequirement_rule(model, i):
- return model.CattleFeedRequirement[i] <= (model.Yield[i] * model.DevotedAcreage[i]) + model.QuantityPurchased[i] - model.QuantitySubQuotaSold[i] - model.QuantitySuperQuotaSold[i]
-
-model.EnforceCattleFeedRequirement = Constraint(model.CROPS, rule=EnforceCattleFeedRequirement_rule)
-
-def LimitAmountSold_rule(model, i):
- return model.QuantitySubQuotaSold[i] + model.QuantitySuperQuotaSold[i] - (model.Yield[i] * model.DevotedAcreage[i]) <= 0.0
-
-model.LimitAmountSold = Constraint(model.CROPS, rule=LimitAmountSold_rule)
-
-def EnforceQuotas_rule(model, i):
- return (0.0, model.QuantitySubQuotaSold[i], model.PriceQuota[i])
-
-model.EnforceQuotas = Constraint(model.CROPS, rule=EnforceQuotas_rule)
-
-#
-# Stage-specific cost computations
-#
-
-def ComputeFirstStageCost_rule(model):
- return sum_product(model.PlantingCostPerAcre, model.DevotedAcreage)
-model.FirstStageCost = Expression(rule=ComputeFirstStageCost_rule)
-
-def ComputeSecondStageCost_rule(model):
- expr = sum_product(model.PurchasePrice, model.QuantityPurchased)
- expr -= sum_product(model.SubQuotaSellingPrice, model.QuantitySubQuotaSold)
- expr -= sum_product(model.SuperQuotaSellingPrice, model.QuantitySuperQuotaSold)
- return expr
-model.SecondStageCost = Expression(rule=ComputeSecondStageCost_rule)
-
-#
-# PySP Auto-generated Objective
-#
-# minimize: sum of StageCosts
-#
-# A active scenario objective equivalent to that generated by PySP is
-# included here for informational purposes.
-def total_cost_rule(model):
- return model.FirstStageCost + model.SecondStageCost
-model.Total_Cost_Objective = Objective(rule=total_cost_rule, sense=minimize)
-
diff --git a/examples/pysp/farmer/maxmodels/ReferenceModel.py b/examples/pysp/farmer/maxmodels/ReferenceModel.py
deleted file mode 100644
index 894e2e6d1cd..00000000000
--- a/examples/pysp/farmer/maxmodels/ReferenceModel.py
+++ /dev/null
@@ -1,115 +0,0 @@
-# ___________________________________________________________________________
-#
-# Pyomo: Python Optimization Modeling Objects
-# Copyright 2017 National Technology and Engineering Solutions of Sandia, LLC
-# Under the terms of Contract DE-NA0003525 with National Technology and
-# Engineering Solutions of Sandia, LLC, the U.S. Government retains certain
-# rights in this software.
-# This software is distributed under the 3-clause BSD License.
-# ___________________________________________________________________________
-
-# Farmer: rent out version has a scalar root node var
-# note: this will minimize
-#
-# Imports
-#
-
-from pyomo.core import *
-
-#
-# Model
-#
-
-model = AbstractModel()
-
-#
-# Parameters
-#
-
-model.CROPS = Set()
-
-model.TOTAL_ACREAGE = Param(within=PositiveReals)
-
-model.PriceQuota = Param(model.CROPS, within=PositiveReals)
-
-model.SubQuotaSellingPrice = Param(model.CROPS, within=PositiveReals)
-
-def super_quota_selling_price_validate (model, value, i):
- return model.SubQuotaSellingPrice[i] >= model.SuperQuotaSellingPrice[i]
-
-model.SuperQuotaSellingPrice = Param(model.CROPS, validate=super_quota_selling_price_validate)
-
-model.CattleFeedRequirement = Param(model.CROPS, within=NonNegativeReals)
-
-model.PurchasePrice = Param(model.CROPS, within=PositiveReals)
-
-model.PlantingCostPerAcre = Param(model.CROPS, within=PositiveReals)
-
-model.Yield = Param(model.CROPS, within=NonNegativeReals)
-
-#
-# Variables
-#
-
-model.DevotedAcreage = Var(model.CROPS, bounds=(0.0, model.TOTAL_ACREAGE))
-
-model.QuantitySubQuotaSold = Var(model.CROPS, bounds=(0.0, None))
-model.QuantitySuperQuotaSold = Var(model.CROPS, bounds=(0.0, None))
-
-model.QuantityPurchased = Var(model.CROPS, bounds=(0.0, None))
-
-model.FirstStageCost = Var()
-model.SecondStageCost = Var()
-
-#
-# Constraints
-#
-
-def ConstrainTotalAcreage_rule(model):
- return sum_product(model.DevotedAcreage) <= model.TOTAL_ACREAGE
-
-model.ConstrainTotalAcreage = Constraint(rule=ConstrainTotalAcreage_rule)
-
-def EnforceCattleFeedRequirement_rule(model, i):
- return model.CattleFeedRequirement[i] <= (model.Yield[i] * model.DevotedAcreage[i]) + model.QuantityPurchased[i] - model.QuantitySubQuotaSold[i] - model.QuantitySuperQuotaSold[i]
-
-model.EnforceCattleFeedRequirement = Constraint(model.CROPS, rule=EnforceCattleFeedRequirement_rule)
-
-def LimitAmountSold_rule(model, i):
- return model.QuantitySubQuotaSold[i] + model.QuantitySuperQuotaSold[i] - (model.Yield[i] * model.DevotedAcreage[i]) <= 0.0
-
-model.LimitAmountSold = Constraint(model.CROPS, rule=LimitAmountSold_rule)
-
-def EnforceQuotas_rule(model, i):
- return (0.0, model.QuantitySubQuotaSold[i], model.PriceQuota[i])
-
-model.EnforceQuotas = Constraint(model.CROPS, rule=EnforceQuotas_rule)
-
-#
-# Stage-specific cost computations
-#
-
-def ComputeFirstStageCost_rule(model):
- return model.FirstStageCost - (-1.0 * sum_product(model.PlantingCostPerAcre, model.DevotedAcreage)) == 0.0
-
-model.ComputeFirstStageCost = Constraint(rule=ComputeFirstStageCost_rule)
-
-def ComputeSecondStageCost_rule(model):
- expr = sum_product(model.PurchasePrice, model.QuantityPurchased)
- expr -= sum_product(model.SubQuotaSellingPrice, model.QuantitySubQuotaSold)
- expr -= sum_product(model.SuperQuotaSellingPrice, model.QuantitySuperQuotaSold)
- return (model.SecondStageCost - (-1.0 * expr)) == 0.0
-
-model.ComputeSecondStageCost = Constraint(rule=ComputeSecondStageCost_rule)
-
-#
-# PySP Auto-generated Objective
-#
-# maximize: sum of StageCosts
-#
-# A active scenario objective equivalent to that generated by PySP is
-# included here for informational purposes.
-def total_cost_rule(model):
- return model.FirstStageCost + model.SecondStageCost
-model.Total_Cost_Objective = Objective(rule=total_cost_rule, sense=maximize)
-
diff --git a/examples/pysp/farmer/models/ReferenceModel.py b/examples/pysp/farmer/models/ReferenceModel.py
deleted file mode 100644
index 973130af1b6..00000000000
--- a/examples/pysp/farmer/models/ReferenceModel.py
+++ /dev/null
@@ -1,114 +0,0 @@
-# ___________________________________________________________________________
-#
-# Pyomo: Python Optimization Modeling Objects
-# Copyright 2017 National Technology and Engineering Solutions of Sandia, LLC
-# Under the terms of Contract DE-NA0003525 with National Technology and
-# Engineering Solutions of Sandia, LLC, the U.S. Government retains certain
-# rights in this software.
-# This software is distributed under the 3-clause BSD License.
-# ___________________________________________________________________________
-
-# Farmer: rent out version has a scalar root node var
-# note: this will minimize
-#
-# Imports
-#
-
-from pyomo.core import (AbstractModel, Set, Param, Var, sum_product,
- PositiveReals, NonNegativeReals, Constraint,
- Objective, Expression, minimize)
-
-#
-# Model
-#
-
-model = AbstractModel()
-
-#
-# Parameters
-#
-
-model.CROPS = Set()
-
-model.TOTAL_ACREAGE = Param(within=PositiveReals)
-
-model.PriceQuota = Param(model.CROPS, within=PositiveReals)
-
-model.SubQuotaSellingPrice = Param(model.CROPS, within=PositiveReals)
-
-def super_quota_selling_price_validate (model, value, i):
- return model.SubQuotaSellingPrice[i] >= model.SuperQuotaSellingPrice[i]
-
-model.SuperQuotaSellingPrice = Param(model.CROPS, validate=super_quota_selling_price_validate)
-
-model.CattleFeedRequirement = Param(model.CROPS, within=NonNegativeReals)
-
-model.PurchasePrice = Param(model.CROPS, within=PositiveReals)
-
-model.PlantingCostPerAcre = Param(model.CROPS, within=PositiveReals)
-
-model.Yield = Param(model.CROPS, within=NonNegativeReals)
-
-#
-# Variables
-#
-
-model.DevotedAcreage = Var(model.CROPS, bounds=(0.0, model.TOTAL_ACREAGE))
-
-model.QuantitySubQuotaSold = Var(model.CROPS, bounds=(0.0, None))
-model.QuantitySuperQuotaSold = Var(model.CROPS, bounds=(0.0, None))
-
-model.QuantityPurchased = Var(model.CROPS, bounds=(0.0, None))
-
-#
-# Constraints
-#
-
-def ConstrainTotalAcreage_rule(model):
- return sum_product(model.DevotedAcreage) <= model.TOTAL_ACREAGE
-
-model.ConstrainTotalAcreage = Constraint(rule=ConstrainTotalAcreage_rule)
-
-def EnforceCattleFeedRequirement_rule(model, i):
- return model.CattleFeedRequirement[i] <= (model.Yield[i] * model.DevotedAcreage[i]) + model.QuantityPurchased[i] - model.QuantitySubQuotaSold[i] - model.QuantitySuperQuotaSold[i]
-
-model.EnforceCattleFeedRequirement = Constraint(model.CROPS, rule=EnforceCattleFeedRequirement_rule)
-
-def LimitAmountSold_rule(model, i):
- return model.QuantitySubQuotaSold[i] + model.QuantitySuperQuotaSold[i] - (model.Yield[i] * model.DevotedAcreage[i]) <= 0.0
-
-model.LimitAmountSold = Constraint(model.CROPS, rule=LimitAmountSold_rule)
-
-def EnforceQuotas_rule(model, i):
- return (0.0, model.QuantitySubQuotaSold[i], model.PriceQuota[i])
-
-model.EnforceQuotas = Constraint(model.CROPS, rule=EnforceQuotas_rule)
-
-#
-# Stage-specific cost computations
-#
-
-def ComputeFirstStageCost_rule(model):
- return sum_product(model.PlantingCostPerAcre, model.DevotedAcreage)
-
-model.FirstStageCost = Expression(rule=ComputeFirstStageCost_rule)
-
-def ComputeSecondStageCost_rule(model):
- expr = sum_product(model.PurchasePrice, model.QuantityPurchased)
- expr -= sum_product(model.SubQuotaSellingPrice, model.QuantitySubQuotaSold)
- expr -= sum_product(model.SuperQuotaSellingPrice, model.QuantitySuperQuotaSold)
- return expr
-
-model.SecondStageCost = Expression(rule=ComputeSecondStageCost_rule)
-
-#
-# PySP Auto-generated Objective
-#
-# minimize: sum of StageCosts
-#
-# An active scenario objective equivalent to that generated by PySP is
-# included here for informational purposes.
-def total_cost_rule(model):
- return model.FirstStageCost + model.SecondStageCost
-model.Total_Cost_Objective = Objective(rule=total_cost_rule, sense=minimize)
-
diff --git a/examples/pysp/farmer/nodedata/AboveAverageNode.dat b/examples/pysp/farmer/nodedata/AboveAverageNode.dat
deleted file mode 100644
index b205cf86046..00000000000
--- a/examples/pysp/farmer/nodedata/AboveAverageNode.dat
+++ /dev/null
@@ -1,5 +0,0 @@
-# high yield scenario
-
-param Yield := WHEAT 3.0 CORN 3.6 SUGAR_BEETS 24 ;
-
-
diff --git a/examples/pysp/farmer/nodedata/AverageNode.dat b/examples/pysp/farmer/nodedata/AverageNode.dat
deleted file mode 100644
index 7e55b53f319..00000000000
--- a/examples/pysp/farmer/nodedata/AverageNode.dat
+++ /dev/null
@@ -1,5 +0,0 @@
-# middle scenario
-
-param Yield := WHEAT 2.5 CORN 3 SUGAR_BEETS 20 ;
-
-
diff --git a/examples/pysp/farmer/nodedata/BelowAverageNode.dat b/examples/pysp/farmer/nodedata/BelowAverageNode.dat
deleted file mode 100644
index 5ffd2ac30cf..00000000000
--- a/examples/pysp/farmer/nodedata/BelowAverageNode.dat
+++ /dev/null
@@ -1,5 +0,0 @@
-# low yield scenario
-
-param Yield := WHEAT 2.0 CORN 2.4 SUGAR_BEETS 16 ;
-
-
diff --git a/examples/pysp/farmer/nodedata/RootNode.dat b/examples/pysp/farmer/nodedata/RootNode.dat
deleted file mode 100644
index 78b71c2849b..00000000000
--- a/examples/pysp/farmer/nodedata/RootNode.dat
+++ /dev/null
@@ -1,17 +0,0 @@
-set CROPS := WHEAT CORN SUGAR_BEETS ;
-
-param TOTAL_ACREAGE := 500 ;
-
-# no quotas on wheat or corn
-param PriceQuota := WHEAT 100000 CORN 100000 SUGAR_BEETS 6000 ;
-
-param SubQuotaSellingPrice := WHEAT 170 CORN 150 SUGAR_BEETS 36 ;
-
-param SuperQuotaSellingPrice := WHEAT 0 CORN 0 SUGAR_BEETS 10 ;
-
-param CattleFeedRequirement := WHEAT 200 CORN 240 SUGAR_BEETS 0 ;
-
-# can't purchase beets (no real need, as cattle don't eat them)
-param PurchasePrice := WHEAT 238 CORN 210 SUGAR_BEETS 100000 ;
-
-param PlantingCostPerAcre := WHEAT 150 CORN 230 SUGAR_BEETS 260 ;
diff --git a/examples/pysp/farmer/nodedata/ScenarioStructure.dat b/examples/pysp/farmer/nodedata/ScenarioStructure.dat
deleted file mode 100644
index 0ea509d6779..00000000000
--- a/examples/pysp/farmer/nodedata/ScenarioStructure.dat
+++ /dev/null
@@ -1,40 +0,0 @@
-# IMPORTANT - THE STAGES ARE ASSUMED TO BE IN TIME-ORDER.
-
-set Stages := FirstStage SecondStage ;
-
-set Nodes := RootNode
- BelowAverageNode
- AverageNode
- AboveAverageNode ;
-
-param NodeStage := RootNode FirstStage
- BelowAverageNode SecondStage
- AverageNode SecondStage
- AboveAverageNode SecondStage ;
-
-set Children[RootNode] := BelowAverageNode
- AverageNode
- AboveAverageNode ;
-
-param ConditionalProbability := RootNode 1.0
- BelowAverageNode 0.33333333
- AverageNode 0.33333334
- AboveAverageNode 0.33333333 ;
-
-set Scenarios := BelowAverageScenario
- AverageScenario
- AboveAverageScenario ;
-
-param ScenarioLeafNode := BelowAverageScenario BelowAverageNode
- AverageScenario AverageNode
- AboveAverageScenario AboveAverageNode ;
-
-set StageVariables[FirstStage] := DevotedAcreage[*] ;
-set StageVariables[SecondStage] := QuantitySubQuotaSold[*]
- QuantitySuperQuotaSold[*]
- QuantityPurchased[*] ;
-
-param StageCost := FirstStage FirstStageCost
- SecondStage SecondStageCost ;
-
-param ScenarioBasedData := False ;
diff --git a/examples/pysp/farmer/scenariodata/AboveAverageScenario.dat b/examples/pysp/farmer/scenariodata/AboveAverageScenario.dat
deleted file mode 100644
index 3b4051e7c02..00000000000
--- a/examples/pysp/farmer/scenariodata/AboveAverageScenario.dat
+++ /dev/null
@@ -1,23 +0,0 @@
-# above mean scenario
-
-set CROPS := WHEAT CORN SUGAR_BEETS ;
-
-param TOTAL_ACREAGE := 500 ;
-
-# no quotas on wheat or corn
-param PriceQuota := WHEAT 100000 CORN 100000 SUGAR_BEETS 6000 ;
-
-param SubQuotaSellingPrice := WHEAT 170 CORN 150 SUGAR_BEETS 36 ;
-
-param SuperQuotaSellingPrice := WHEAT 0 CORN 0 SUGAR_BEETS 10 ;
-
-param CattleFeedRequirement := WHEAT 200 CORN 240 SUGAR_BEETS 0 ;
-
-# can't purchase beets (no real need, as cattle don't eat them)
-param PurchasePrice := WHEAT 238 CORN 210 SUGAR_BEETS 100000 ;
-
-param PlantingCostPerAcre := WHEAT 150 CORN 230 SUGAR_BEETS 260 ;
-
-param Yield := WHEAT 3.0 CORN 3.6 SUGAR_BEETS 24 ;
-
-
diff --git a/examples/pysp/farmer/scenariodata/AverageScenario.dat b/examples/pysp/farmer/scenariodata/AverageScenario.dat
deleted file mode 100644
index 346bd761c5c..00000000000
--- a/examples/pysp/farmer/scenariodata/AverageScenario.dat
+++ /dev/null
@@ -1,23 +0,0 @@
-# "mean" scenario
-
-set CROPS := WHEAT CORN SUGAR_BEETS ;
-
-param TOTAL_ACREAGE := 500 ;
-
-# no quotas on wheat or corn
-param PriceQuota := WHEAT 100000 CORN 100000 SUGAR_BEETS 6000 ;
-
-param SubQuotaSellingPrice := WHEAT 170 CORN 150 SUGAR_BEETS 36 ;
-
-param SuperQuotaSellingPrice := WHEAT 0 CORN 0 SUGAR_BEETS 10 ;
-
-param CattleFeedRequirement := WHEAT 200 CORN 240 SUGAR_BEETS 0 ;
-
-# can't purchase beets (no real need, as cattle don't eat them)
-param PurchasePrice := WHEAT 238 CORN 210 SUGAR_BEETS 100000 ;
-
-param PlantingCostPerAcre := WHEAT 150 CORN 230 SUGAR_BEETS 260 ;
-
-param Yield := WHEAT 2.5 CORN 3 SUGAR_BEETS 20 ;
-
-
diff --git a/examples/pysp/farmer/scenariodata/BelowAverageScenario.dat b/examples/pysp/farmer/scenariodata/BelowAverageScenario.dat
deleted file mode 100644
index 5f24d721fcf..00000000000
--- a/examples/pysp/farmer/scenariodata/BelowAverageScenario.dat
+++ /dev/null
@@ -1,23 +0,0 @@
-# below-mean scenario
-
-set CROPS := WHEAT CORN SUGAR_BEETS ;
-
-param TOTAL_ACREAGE := 500 ;
-
-# no quotas on wheat or corn
-param PriceQuota := WHEAT 100000 CORN 100000 SUGAR_BEETS 6000 ;
-
-param SubQuotaSellingPrice := WHEAT 170 CORN 150 SUGAR_BEETS 36 ;
-
-param SuperQuotaSellingPrice := WHEAT 0 CORN 0 SUGAR_BEETS 10 ;
-
-param CattleFeedRequirement := WHEAT 200 CORN 240 SUGAR_BEETS 0 ;
-
-# can't purchase beets (no real need, as cattle don't eat them)
-param PurchasePrice := WHEAT 238 CORN 210 SUGAR_BEETS 100000 ;
-
-param PlantingCostPerAcre := WHEAT 150 CORN 230 SUGAR_BEETS 260 ;
-
-param Yield := WHEAT 2.0 CORN 2.4 SUGAR_BEETS 16 ;
-
-
diff --git a/examples/pysp/farmer/scenariodata/ScenarioStructure.dat b/examples/pysp/farmer/scenariodata/ScenarioStructure.dat
deleted file mode 100644
index 12be27f9b9b..00000000000
--- a/examples/pysp/farmer/scenariodata/ScenarioStructure.dat
+++ /dev/null
@@ -1,40 +0,0 @@
-# IMPORTANT - THE STAGES ARE ASSUMED TO BE IN TIME-ORDER.
-
-set Stages := FirstStage SecondStage ;
-
-set Nodes := RootNode
- BelowAverageNode
- AverageNode
- AboveAverageNode ;
-
-param NodeStage := RootNode FirstStage
- BelowAverageNode SecondStage
- AverageNode SecondStage
- AboveAverageNode SecondStage ;
-
-set Children[RootNode] := BelowAverageNode
- AverageNode
- AboveAverageNode ;
-
-param ConditionalProbability := RootNode 1.0
- BelowAverageNode 0.33333333
- AverageNode 0.33333334
- AboveAverageNode 0.33333333 ;
-
-set Scenarios := BelowAverageScenario
- AverageScenario
- AboveAverageScenario ;
-
-param ScenarioLeafNode :=
- BelowAverageScenario BelowAverageNode
- AverageScenario AverageNode
- AboveAverageScenario AboveAverageNode ;
-
-set StageVariables[FirstStage] := DevotedAcreage[*];
-
-set StageVariables[SecondStage] := QuantitySubQuotaSold[*]
- QuantitySuperQuotaSold[*]
- QuantityPurchased[*];
-
-param StageCost := FirstStage FirstStageCost
- SecondStage SecondStageCost ;
diff --git a/examples/pysp/farmer/scenariodataWithTrivialBundles/AboveAverageScenario.dat b/examples/pysp/farmer/scenariodataWithTrivialBundles/AboveAverageScenario.dat
deleted file mode 100644
index 3b4051e7c02..00000000000
--- a/examples/pysp/farmer/scenariodataWithTrivialBundles/AboveAverageScenario.dat
+++ /dev/null
@@ -1,23 +0,0 @@
-# above mean scenario
-
-set CROPS := WHEAT CORN SUGAR_BEETS ;
-
-param TOTAL_ACREAGE := 500 ;
-
-# no quotas on wheat or corn
-param PriceQuota := WHEAT 100000 CORN 100000 SUGAR_BEETS 6000 ;
-
-param SubQuotaSellingPrice := WHEAT 170 CORN 150 SUGAR_BEETS 36 ;
-
-param SuperQuotaSellingPrice := WHEAT 0 CORN 0 SUGAR_BEETS 10 ;
-
-param CattleFeedRequirement := WHEAT 200 CORN 240 SUGAR_BEETS 0 ;
-
-# can't purchase beets (no real need, as cattle don't eat them)
-param PurchasePrice := WHEAT 238 CORN 210 SUGAR_BEETS 100000 ;
-
-param PlantingCostPerAcre := WHEAT 150 CORN 230 SUGAR_BEETS 260 ;
-
-param Yield := WHEAT 3.0 CORN 3.6 SUGAR_BEETS 24 ;
-
-
diff --git a/examples/pysp/farmer/scenariodataWithTrivialBundles/AverageScenario.dat b/examples/pysp/farmer/scenariodataWithTrivialBundles/AverageScenario.dat
deleted file mode 100644
index 346bd761c5c..00000000000
--- a/examples/pysp/farmer/scenariodataWithTrivialBundles/AverageScenario.dat
+++ /dev/null
@@ -1,23 +0,0 @@
-# "mean" scenario
-
-set CROPS := WHEAT CORN SUGAR_BEETS ;
-
-param TOTAL_ACREAGE := 500 ;
-
-# no quotas on wheat or corn
-param PriceQuota := WHEAT 100000 CORN 100000 SUGAR_BEETS 6000 ;
-
-param SubQuotaSellingPrice := WHEAT 170 CORN 150 SUGAR_BEETS 36 ;
-
-param SuperQuotaSellingPrice := WHEAT 0 CORN 0 SUGAR_BEETS 10 ;
-
-param CattleFeedRequirement := WHEAT 200 CORN 240 SUGAR_BEETS 0 ;
-
-# can't purchase beets (no real need, as cattle don't eat them)
-param PurchasePrice := WHEAT 238 CORN 210 SUGAR_BEETS 100000 ;
-
-param PlantingCostPerAcre := WHEAT 150 CORN 230 SUGAR_BEETS 260 ;
-
-param Yield := WHEAT 2.5 CORN 3 SUGAR_BEETS 20 ;
-
-
diff --git a/examples/pysp/farmer/scenariodataWithTrivialBundles/BelowAverageScenario.dat b/examples/pysp/farmer/scenariodataWithTrivialBundles/BelowAverageScenario.dat
deleted file mode 100644
index 5f24d721fcf..00000000000
--- a/examples/pysp/farmer/scenariodataWithTrivialBundles/BelowAverageScenario.dat
+++ /dev/null
@@ -1,23 +0,0 @@
-# below-mean scenario
-
-set CROPS := WHEAT CORN SUGAR_BEETS ;
-
-param TOTAL_ACREAGE := 500 ;
-
-# no quotas on wheat or corn
-param PriceQuota := WHEAT 100000 CORN 100000 SUGAR_BEETS 6000 ;
-
-param SubQuotaSellingPrice := WHEAT 170 CORN 150 SUGAR_BEETS 36 ;
-
-param SuperQuotaSellingPrice := WHEAT 0 CORN 0 SUGAR_BEETS 10 ;
-
-param CattleFeedRequirement := WHEAT 200 CORN 240 SUGAR_BEETS 0 ;
-
-# can't purchase beets (no real need, as cattle don't eat them)
-param PurchasePrice := WHEAT 238 CORN 210 SUGAR_BEETS 100000 ;
-
-param PlantingCostPerAcre := WHEAT 150 CORN 230 SUGAR_BEETS 260 ;
-
-param Yield := WHEAT 2.0 CORN 2.4 SUGAR_BEETS 16 ;
-
-
diff --git a/examples/pysp/farmer/scenariodataWithTrivialBundles/ScenarioStructure.dat b/examples/pysp/farmer/scenariodataWithTrivialBundles/ScenarioStructure.dat
deleted file mode 100644
index a58708baeaa..00000000000
--- a/examples/pysp/farmer/scenariodataWithTrivialBundles/ScenarioStructure.dat
+++ /dev/null
@@ -1,48 +0,0 @@
-# IMPORTANT - THE STAGES ARE ASSUMED TO BE IN TIME-ORDER.
-
-set Stages := FirstStage SecondStage ;
-
-set Nodes := RootNode
- BelowAverageNode
- AverageNode
- AboveAverageNode ;
-
-param NodeStage := RootNode FirstStage
- BelowAverageNode SecondStage
- AverageNode SecondStage
- AboveAverageNode SecondStage ;
-
-set Children[RootNode] := BelowAverageNode
- AverageNode
- AboveAverageNode ;
-
-param ConditionalProbability := RootNode 1.0
- BelowAverageNode 0.33333333
- AverageNode 0.33333334
- AboveAverageNode 0.33333333 ;
-
-set Scenarios := BelowAverageScenario
- AverageScenario
- AboveAverageScenario ;
-
-param ScenarioLeafNode :=
- BelowAverageScenario BelowAverageNode
- AverageScenario AverageNode
- AboveAverageScenario AboveAverageNode ;
-
-set StageVariables[FirstStage] := DevotedAcreage[*] ;
-set StageVariables[SecondStage] := QuantitySubQuotaSold[*]
- QuantitySuperQuotaSold[*]
- QuantityPurchased[*] ;
-
-param StageCost := FirstStage FirstStageCost
- SecondStage SecondStageCost ;
-
-param Bundling := True ;
-
-set Bundles := BelowAverageBundle AverageBundle AboveAverageBundle ;
-
-set BundleScenarios[BelowAverageBundle] := BelowAverageScenario ;
-set BundleScenarios[AverageBundle] := AverageScenario ;
-set BundleScenarios[AboveAverageBundle] := AboveAverageScenario ;
-
diff --git a/examples/pysp/farmer/scenariodataWithTwoBundles/AboveAverageScenario.dat b/examples/pysp/farmer/scenariodataWithTwoBundles/AboveAverageScenario.dat
deleted file mode 100644
index 3b4051e7c02..00000000000
--- a/examples/pysp/farmer/scenariodataWithTwoBundles/AboveAverageScenario.dat
+++ /dev/null
@@ -1,23 +0,0 @@
-# above mean scenario
-
-set CROPS := WHEAT CORN SUGAR_BEETS ;
-
-param TOTAL_ACREAGE := 500 ;
-
-# no quotas on wheat or corn
-param PriceQuota := WHEAT 100000 CORN 100000 SUGAR_BEETS 6000 ;
-
-param SubQuotaSellingPrice := WHEAT 170 CORN 150 SUGAR_BEETS 36 ;
-
-param SuperQuotaSellingPrice := WHEAT 0 CORN 0 SUGAR_BEETS 10 ;
-
-param CattleFeedRequirement := WHEAT 200 CORN 240 SUGAR_BEETS 0 ;
-
-# can't purchase beets (no real need, as cattle don't eat them)
-param PurchasePrice := WHEAT 238 CORN 210 SUGAR_BEETS 100000 ;
-
-param PlantingCostPerAcre := WHEAT 150 CORN 230 SUGAR_BEETS 260 ;
-
-param Yield := WHEAT 3.0 CORN 3.6 SUGAR_BEETS 24 ;
-
-
diff --git a/examples/pysp/farmer/scenariodataWithTwoBundles/AverageScenario.dat b/examples/pysp/farmer/scenariodataWithTwoBundles/AverageScenario.dat
deleted file mode 100644
index 346bd761c5c..00000000000
--- a/examples/pysp/farmer/scenariodataWithTwoBundles/AverageScenario.dat
+++ /dev/null
@@ -1,23 +0,0 @@
-# "mean" scenario
-
-set CROPS := WHEAT CORN SUGAR_BEETS ;
-
-param TOTAL_ACREAGE := 500 ;
-
-# no quotas on wheat or corn
-param PriceQuota := WHEAT 100000 CORN 100000 SUGAR_BEETS 6000 ;
-
-param SubQuotaSellingPrice := WHEAT 170 CORN 150 SUGAR_BEETS 36 ;
-
-param SuperQuotaSellingPrice := WHEAT 0 CORN 0 SUGAR_BEETS 10 ;
-
-param CattleFeedRequirement := WHEAT 200 CORN 240 SUGAR_BEETS 0 ;
-
-# can't purchase beets (no real need, as cattle don't eat them)
-param PurchasePrice := WHEAT 238 CORN 210 SUGAR_BEETS 100000 ;
-
-param PlantingCostPerAcre := WHEAT 150 CORN 230 SUGAR_BEETS 260 ;
-
-param Yield := WHEAT 2.5 CORN 3 SUGAR_BEETS 20 ;
-
-
diff --git a/examples/pysp/farmer/scenariodataWithTwoBundles/BelowAverageScenario.dat b/examples/pysp/farmer/scenariodataWithTwoBundles/BelowAverageScenario.dat
deleted file mode 100644
index 5f24d721fcf..00000000000
--- a/examples/pysp/farmer/scenariodataWithTwoBundles/BelowAverageScenario.dat
+++ /dev/null
@@ -1,23 +0,0 @@
-# below-mean scenario
-
-set CROPS := WHEAT CORN SUGAR_BEETS ;
-
-param TOTAL_ACREAGE := 500 ;
-
-# no quotas on wheat or corn
-param PriceQuota := WHEAT 100000 CORN 100000 SUGAR_BEETS 6000 ;
-
-param SubQuotaSellingPrice := WHEAT 170 CORN 150 SUGAR_BEETS 36 ;
-
-param SuperQuotaSellingPrice := WHEAT 0 CORN 0 SUGAR_BEETS 10 ;
-
-param CattleFeedRequirement := WHEAT 200 CORN 240 SUGAR_BEETS 0 ;
-
-# can't purchase beets (no real need, as cattle don't eat them)
-param PurchasePrice := WHEAT 238 CORN 210 SUGAR_BEETS 100000 ;
-
-param PlantingCostPerAcre := WHEAT 150 CORN 230 SUGAR_BEETS 260 ;
-
-param Yield := WHEAT 2.0 CORN 2.4 SUGAR_BEETS 16 ;
-
-
diff --git a/examples/pysp/farmer/scenariodataWithTwoBundles/ScenarioStructure.dat b/examples/pysp/farmer/scenariodataWithTwoBundles/ScenarioStructure.dat
deleted file mode 100644
index 2fbe8a3ec90..00000000000
--- a/examples/pysp/farmer/scenariodataWithTwoBundles/ScenarioStructure.dat
+++ /dev/null
@@ -1,46 +0,0 @@
-# IMPORTANT - THE STAGES ARE ASSUMED TO BE IN TIME-ORDER.
-
-set Stages := FirstStage SecondStage ;
-
-set Nodes := RootNode
- BelowAverageNode
- AverageNode
- AboveAverageNode ;
-
-param NodeStage := RootNode FirstStage
- BelowAverageNode SecondStage
- AverageNode SecondStage
- AboveAverageNode SecondStage ;
-
-set Children[RootNode] := BelowAverageNode
- AverageNode
- AboveAverageNode ;
-
-param ConditionalProbability := RootNode 1.0
- BelowAverageNode 0.33333333
- AverageNode 0.33333334
- AboveAverageNode 0.33333333 ;
-
-set Scenarios := BelowAverageScenario
- AverageScenario
- AboveAverageScenario ;
-
-param ScenarioLeafNode :=
- BelowAverageScenario BelowAverageNode
- AverageScenario AverageNode
- AboveAverageScenario AboveAverageNode ;
-
-set StageVariables[FirstStage] := DevotedAcreage[*] ;
-set StageVariables[SecondStage] := QuantitySubQuotaSold[*]
- QuantitySuperQuotaSold[*]
- QuantityPurchased[*] ;
-
-param StageCost := FirstStage FirstStageCost
- SecondStage SecondStageCost ;
-
-param Bundling := True ;
-
-set Bundles := BelowAverageBundle OtherBundle;
-
-set BundleScenarios[BelowAverageBundle] := BelowAverageScenario ;
-set BundleScenarios[OtherBundle] := AverageScenario AboveAverageScenario ;
diff --git a/examples/pysp/farmer/smps_model/ReferenceModel.py b/examples/pysp/farmer/smps_model/ReferenceModel.py
deleted file mode 100644
index 4cc7ef8471a..00000000000
--- a/examples/pysp/farmer/smps_model/ReferenceModel.py
+++ /dev/null
@@ -1,140 +0,0 @@
-# ___________________________________________________________________________
-#
-# Pyomo: Python Optimization Modeling Objects
-# Copyright 2017 National Technology and Engineering Solutions of Sandia, LLC
-# Under the terms of Contract DE-NA0003525 with National Technology and
-# Engineering Solutions of Sandia, LLC, the U.S. Government retains certain
-# rights in this software.
-# This software is distributed under the 3-clause BSD License.
-# ___________________________________________________________________________
-#
-# Farmer: Annotated with location of stochastic matrix entries
-# for use with pysp2smps conversion tool.
-#
-# Imports
-#
-
-from pyomo.core import *
-from pyomo.pysp.annotations import StochasticConstraintBodyAnnotation
-
-#
-# Model
-#
-
-model = AbstractModel()
-
-#
-# Sets
-#
-
-model.CROPS = Set(initialize=['WHEAT', 'CORN', 'SUGAR_BEETS'],
- ordered=True)
-
-#
-# Parameters
-#
-
-model.TOTAL_ACREAGE = Param(within=PositiveReals)
-
-model.PriceQuota = Param(model.CROPS, within=PositiveReals)
-
-model.SubQuotaSellingPrice = Param(model.CROPS, within=PositiveReals)
-
-def super_quota_selling_price_validate (model, value, i):
- return model.SubQuotaSellingPrice[i] >= model.SuperQuotaSellingPrice[i]
-
-model.SuperQuotaSellingPrice = Param(model.CROPS,
- validate=super_quota_selling_price_validate)
-
-model.CattleFeedRequirement = Param(model.CROPS, within=NonNegativeReals)
-
-model.PurchasePrice = Param(model.CROPS, within=PositiveReals)
-
-model.PlantingCostPerAcre = Param(model.CROPS, within=PositiveReals)
-
-model.Yield = Param(model.CROPS, within=NonNegativeReals)
-
-#
-# Variables
-#
-
-model.DevotedAcreage = Var(model.CROPS,
- bounds=(0.0, model.TOTAL_ACREAGE))
-model.QuantitySubQuotaSold = Var(model.CROPS,
- bounds=(0.0, None))
-model.QuantitySuperQuotaSold = Var(model.CROPS,
- bounds=(0.0, None))
-model.QuantityPurchased = Var(model.CROPS,
- bounds=(0.0, None))
-
-#
-# First-Stage Constraints
-#
-
-def ConstrainTotalAcreage_rule(model):
- return sum_product(model.DevotedAcreage) <= model.TOTAL_ACREAGE
-model.ConstrainTotalAcreage = \
- Constraint(rule=ConstrainTotalAcreage_rule)
-
-#
-# Second-Stage Constraints
-#
-
-def EnforceQuotas_rule(model, i):
- return (0.0, model.QuantitySubQuotaSold[i], model.PriceQuota[i])
-model.EnforceQuotas = Constraint(model.CROPS,
- rule=EnforceQuotas_rule)
-
-#
-# Second-Stage Constraints With Stochastic Data
-#
-
-def EnforceCattleFeedRequirement_rule(model, i):
- return model.CattleFeedRequirement[i] <= (model.Yield[i] * model.DevotedAcreage[i]) + model.QuantityPurchased[i] - model.QuantitySubQuotaSold[i] - model.QuantitySuperQuotaSold[i]
-model.EnforceCattleFeedRequirement = \
- Constraint(model.CROPS, rule=EnforceCattleFeedRequirement_rule)
-
-def LimitAmountSold_rule(model, i):
- return model.QuantitySubQuotaSold[i] + model.QuantitySuperQuotaSold[i] - (model.Yield[i] * model.DevotedAcreage[i]) <= 0.0
-model.LimitAmountSold = \
- Constraint(model.CROPS, rule=LimitAmountSold_rule)
-
-#
-# Stage-specific cost computations
-#
-
-def ComputeFirstStageCost_rule(model):
- return sum_product(model.PlantingCostPerAcre, model.DevotedAcreage)
-model.FirstStageCost = Expression(rule=ComputeFirstStageCost_rule)
-
-def ComputeSecondStageCost_rule(model):
- expr = sum_product(model.PurchasePrice, model.QuantityPurchased)
- expr -= sum_product(model.SubQuotaSellingPrice, model.QuantitySubQuotaSold)
- expr -= sum_product(model.SuperQuotaSellingPrice, model.QuantitySuperQuotaSold)
- return expr
-model.SecondStageCost = Expression(rule=ComputeSecondStageCost_rule)
-
-#
-# PySP Auto-generated Objective
-#
-# minimize: sum of StageCosts
-#
-# An active scenario objective equivalent to that generated by PySP is
-# included here for informational purposes.
-def total_cost_rule(model):
- return model.FirstStageCost + model.SecondStageCost
-model.Total_Cost_Objective = Objective(rule=total_cost_rule,
- sense=minimize)
-
-def declare_annotations_rule(model):
- #
- # Annotate stochastic constraint matrix coefficients
- #
- model.stoch_matrix = StochasticConstraintBodyAnnotation()
- # DevotedAcreage[i] has a stochastic coefficient in two constraints
- for i in model.CROPS:
- model.stoch_matrix.declare(model.EnforceCattleFeedRequirement[i],
- variables=[model.DevotedAcreage[i]])
- model.stoch_matrix.declare(model.LimitAmountSold[i],
- variables=[model.DevotedAcreage[i]])
-model.declare_annotations = BuildAction(rule=declare_annotations_rule)
diff --git a/examples/pysp/farmerWintegers/README.txt b/examples/pysp/farmerWintegers/README.txt
deleted file mode 100644
index 6a13a6fc011..00000000000
--- a/examples/pysp/farmerWintegers/README.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-This directory contains pyomo/pysp models and data for a variant of Birge and Louveaux's farmer example in
-which the farmer can only plant complete (integral or non-fractional) acres of a particular crop.
-
-Mainly used for Pyomo testing, in order to provide a very simple mixed-integer program.
-
diff --git a/examples/pysp/farmerWintegers/models/ReferenceModel.py b/examples/pysp/farmerWintegers/models/ReferenceModel.py
deleted file mode 100644
index 032d336b1d5..00000000000
--- a/examples/pysp/farmerWintegers/models/ReferenceModel.py
+++ /dev/null
@@ -1,114 +0,0 @@
-# ___________________________________________________________________________
-#
-# Pyomo: Python Optimization Modeling Objects
-# Copyright 2017 National Technology and Engineering Solutions of Sandia, LLC
-# Under the terms of Contract DE-NA0003525 with National Technology and
-# Engineering Solutions of Sandia, LLC, the U.S. Government retains certain
-# rights in this software.
-# This software is distributed under the 3-clause BSD License.
-# ___________________________________________________________________________
-
-# Farmer: rent out version has a scalar root node var
-# note: this will minimize
-#
-# Imports
-#
-
-from pyomo.core import *
-
-#
-# Model
-#
-
-model = AbstractModel()
-
-#
-# Parameters
-#
-
-model.CROPS = Set()
-
-model.TOTAL_ACREAGE = Param(within=PositiveReals)
-
-model.PriceQuota = Param(model.CROPS, within=PositiveReals)
-
-model.SubQuotaSellingPrice = Param(model.CROPS, within=PositiveReals)
-
-def super_quota_selling_price_validate (model, value, i):
- return model.SubQuotaSellingPrice[i] >= model.SuperQuotaSellingPrice[i]
-
-model.SuperQuotaSellingPrice = Param(model.CROPS, validate=super_quota_selling_price_validate)
-
-model.CattleFeedRequirement = Param(model.CROPS, within=NonNegativeReals)
-
-model.PurchasePrice = Param(model.CROPS, within=PositiveReals)
-
-model.PlantingCostPerAcre = Param(model.CROPS, within=PositiveReals)
-
-model.Yield = Param(model.CROPS, within=NonNegativeReals)
-
-#
-# Variables
-#
-
-model.DevotedAcreage = Var(model.CROPS, bounds=(0.0, model.TOTAL_ACREAGE), within=NonNegativeIntegers)
-
-model.QuantitySubQuotaSold = Var(model.CROPS, bounds=(0.0, None))
-model.QuantitySuperQuotaSold = Var(model.CROPS, bounds=(0.0, None))
-
-model.QuantityPurchased = Var(model.CROPS, bounds=(0.0, None))
-
-model.FirstStageCost = Var()
-model.SecondStageCost = Var()
-
-#
-# Constraints
-#
-
-def ConstrainTotalAcreage_rule(model):
- return sum_product(model.DevotedAcreage) <= model.TOTAL_ACREAGE
-
-model.ConstrainTotalAcreage = Constraint(rule=ConstrainTotalAcreage_rule)
-
-def EnforceCattleFeedRequirement_rule(model, i):
- return model.CattleFeedRequirement[i] <= (model.Yield[i] * model.DevotedAcreage[i]) + model.QuantityPurchased[i] - model.QuantitySubQuotaSold[i] - model.QuantitySuperQuotaSold[i]
-
-model.EnforceCattleFeedRequirement = Constraint(model.CROPS, rule=EnforceCattleFeedRequirement_rule)
-
-def LimitAmountSold_rule(model, i):
- return model.QuantitySubQuotaSold[i] + model.QuantitySuperQuotaSold[i] - (model.Yield[i] * model.DevotedAcreage[i]) <= 0.0
-
-model.LimitAmountSold = Constraint(model.CROPS, rule=LimitAmountSold_rule)
-
-def EnforceQuotas_rule(model, i):
- return (0.0, model.QuantitySubQuotaSold[i], model.PriceQuota[i])
-
-model.EnforceQuotas = Constraint(model.CROPS, rule=EnforceQuotas_rule)
-
-#
-# Stage-specific cost computations
-#
-
-def ComputeFirstStageCost_rule(model):
- return model.FirstStageCost - sum_product(model.PlantingCostPerAcre, model.DevotedAcreage) == 0.0
-
-model.ComputeFirstStageCost = Constraint(rule=ComputeFirstStageCost_rule)
-
-def ComputeSecondStageCost_rule(model):
- expr = sum_product(model.PurchasePrice, model.QuantityPurchased)
- expr -= sum_product(model.SubQuotaSellingPrice, model.QuantitySubQuotaSold)
- expr -= sum_product(model.SuperQuotaSellingPrice, model.QuantitySuperQuotaSold)
- return (model.SecondStageCost - expr) == 0.0
-
-model.ComputeSecondStageCost = Constraint(rule=ComputeSecondStageCost_rule)
-
-#
-# PySP Auto-generated Objective
-#
-# minimize: sum of StageCosts
-#
-# A active scenario objective equivalent to that generated by PySP is
-# included here for informational purposes.
-def total_cost_rule(model):
- return model.FirstStageCost + model.SecondStageCost
-model.Total_Cost_Objective = Objective(rule=total_cost_rule, sense=minimize)
diff --git a/examples/pysp/farmerWintegers/scenariodata/AboveAverageScenario.dat b/examples/pysp/farmerWintegers/scenariodata/AboveAverageScenario.dat
deleted file mode 100644
index 3b4051e7c02..00000000000
--- a/examples/pysp/farmerWintegers/scenariodata/AboveAverageScenario.dat
+++ /dev/null
@@ -1,23 +0,0 @@
-# above mean scenario
-
-set CROPS := WHEAT CORN SUGAR_BEETS ;
-
-param TOTAL_ACREAGE := 500 ;
-
-# no quotas on wheat or corn
-param PriceQuota := WHEAT 100000 CORN 100000 SUGAR_BEETS 6000 ;
-
-param SubQuotaSellingPrice := WHEAT 170 CORN 150 SUGAR_BEETS 36 ;
-
-param SuperQuotaSellingPrice := WHEAT 0 CORN 0 SUGAR_BEETS 10 ;
-
-param CattleFeedRequirement := WHEAT 200 CORN 240 SUGAR_BEETS 0 ;
-
-# can't purchase beets (no real need, as cattle don't eat them)
-param PurchasePrice := WHEAT 238 CORN 210 SUGAR_BEETS 100000 ;
-
-param PlantingCostPerAcre := WHEAT 150 CORN 230 SUGAR_BEETS 260 ;
-
-param Yield := WHEAT 3.0 CORN 3.6 SUGAR_BEETS 24 ;
-
-
diff --git a/examples/pysp/farmerWintegers/scenariodata/AverageScenario.dat b/examples/pysp/farmerWintegers/scenariodata/AverageScenario.dat
deleted file mode 100644
index 346bd761c5c..00000000000
--- a/examples/pysp/farmerWintegers/scenariodata/AverageScenario.dat
+++ /dev/null
@@ -1,23 +0,0 @@
-# "mean" scenario
-
-set CROPS := WHEAT CORN SUGAR_BEETS ;
-
-param TOTAL_ACREAGE := 500 ;
-
-# no quotas on wheat or corn
-param PriceQuota := WHEAT 100000 CORN 100000 SUGAR_BEETS 6000 ;
-
-param SubQuotaSellingPrice := WHEAT 170 CORN 150 SUGAR_BEETS 36 ;
-
-param SuperQuotaSellingPrice := WHEAT 0 CORN 0 SUGAR_BEETS 10 ;
-
-param CattleFeedRequirement := WHEAT 200 CORN 240 SUGAR_BEETS 0 ;
-
-# can't purchase beets (no real need, as cattle don't eat them)
-param PurchasePrice := WHEAT 238 CORN 210 SUGAR_BEETS 100000 ;
-
-param PlantingCostPerAcre := WHEAT 150 CORN 230 SUGAR_BEETS 260 ;
-
-param Yield := WHEAT 2.5 CORN 3 SUGAR_BEETS 20 ;
-
-
diff --git a/examples/pysp/farmerWintegers/scenariodata/BelowAverageScenario.dat b/examples/pysp/farmerWintegers/scenariodata/BelowAverageScenario.dat
deleted file mode 100644
index 5f24d721fcf..00000000000
--- a/examples/pysp/farmerWintegers/scenariodata/BelowAverageScenario.dat
+++ /dev/null
@@ -1,23 +0,0 @@
-# below-mean scenario
-
-set CROPS := WHEAT CORN SUGAR_BEETS ;
-
-param TOTAL_ACREAGE := 500 ;
-
-# no quotas on wheat or corn
-param PriceQuota := WHEAT 100000 CORN 100000 SUGAR_BEETS 6000 ;
-
-param SubQuotaSellingPrice := WHEAT 170 CORN 150 SUGAR_BEETS 36 ;
-
-param SuperQuotaSellingPrice := WHEAT 0 CORN 0 SUGAR_BEETS 10 ;
-
-param CattleFeedRequirement := WHEAT 200 CORN 240 SUGAR_BEETS 0 ;
-
-# can't purchase beets (no real need, as cattle don't eat them)
-param PurchasePrice := WHEAT 238 CORN 210 SUGAR_BEETS 100000 ;
-
-param PlantingCostPerAcre := WHEAT 150 CORN 230 SUGAR_BEETS 260 ;
-
-param Yield := WHEAT 2.0 CORN 2.4 SUGAR_BEETS 16 ;
-
-
diff --git a/examples/pysp/farmerWintegers/scenariodata/ScenarioStructure.dat b/examples/pysp/farmerWintegers/scenariodata/ScenarioStructure.dat
deleted file mode 100644
index 3b502b17b62..00000000000
--- a/examples/pysp/farmerWintegers/scenariodata/ScenarioStructure.dat
+++ /dev/null
@@ -1,39 +0,0 @@
-# IMPORTANT - THE STAGES ARE ASSUMED TO BE IN TIME-ORDER.
-
-set Stages := FirstStage SecondStage ;
-
-set Nodes := RootNode
- BelowAverageNode
- AverageNode
- AboveAverageNode ;
-
-param NodeStage := RootNode FirstStage
- BelowAverageNode SecondStage
- AverageNode SecondStage
- AboveAverageNode SecondStage ;
-
-set Children[RootNode] := BelowAverageNode
- AverageNode
- AboveAverageNode ;
-
-param ConditionalProbability := RootNode 1.0
- BelowAverageNode 0.33333333
- AverageNode 0.33333334
- AboveAverageNode 0.33333333 ;
-
-set Scenarios := BelowAverageScenario
- AverageScenario
- AboveAverageScenario ;
-
-param ScenarioLeafNode :=
- BelowAverageScenario BelowAverageNode
- AverageScenario AverageNode
- AboveAverageScenario AboveAverageNode ;
-
-set StageVariables[FirstStage] := DevotedAcreage[*] ;
-set StageVariables[SecondStage] := QuantitySubQuotaSold[*]
- QuantitySuperQuotaSold[*]
- QuantityPurchased[*] ;
-
-param StageCost := FirstStage FirstStageCost
- SecondStage SecondStageCost ;
diff --git a/examples/pysp/farmerWintegers/smps_model/ReferenceModel.py b/examples/pysp/farmerWintegers/smps_model/ReferenceModel.py
deleted file mode 100644
index 97a9cab4fa0..00000000000
--- a/examples/pysp/farmerWintegers/smps_model/ReferenceModel.py
+++ /dev/null
@@ -1,128 +0,0 @@
-# _________________________________________________________________________
-#
-# Pyomo: Python Optimization Modeling Objects
-# Copyright (c) 2014 Sandia Corporation.
-# Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation,
-# the U.S. Government retains certain rights in this software.
-# This software is distributed under the BSD License.
-# _________________________________________________________________________
-
-# Farmer: rent out version has a scalar root node var
-# note: this will minimize
-#
-# Imports
-#
-
-from pyomo.core import *
-from pyomo.pysp.annotations import StochasticConstraintBodyAnnotation
-
-#
-# Model
-#
-
-model = AbstractModel()
-
-#
-# Parameters
-#
-
-model.CROPS = Set()
-
-model.TOTAL_ACREAGE = Param(within=PositiveReals)
-
-model.PriceQuota = Param(model.CROPS, within=PositiveReals)
-
-model.SubQuotaSellingPrice = Param(model.CROPS, within=PositiveReals)
-
-def super_quota_selling_price_validate (model, value, i):
- return model.SubQuotaSellingPrice[i] >= model.SuperQuotaSellingPrice[i]
-
-model.SuperQuotaSellingPrice = Param(model.CROPS, validate=super_quota_selling_price_validate)
-
-model.CattleFeedRequirement = Param(model.CROPS, within=NonNegativeReals)
-
-model.PurchasePrice = Param(model.CROPS, within=PositiveReals)
-
-model.PlantingCostPerAcre = Param(model.CROPS, within=PositiveReals)
-
-model.Yield = Param(model.CROPS, within=NonNegativeReals)
-
-#
-# Variables
-#
-
-model.DevotedAcreage = Var(model.CROPS, bounds=(0.0, model.TOTAL_ACREAGE), within=NonNegativeIntegers)
-
-model.QuantitySubQuotaSold = Var(model.CROPS, bounds=(0.0, None))
-model.QuantitySuperQuotaSold = Var(model.CROPS, bounds=(0.0, None))
-
-model.QuantityPurchased = Var(model.CROPS, bounds=(0.0, None))
-
-model.FirstStageCost = Var()
-model.SecondStageCost = Var()
-
-#
-# Constraints
-#
-
-def ConstrainTotalAcreage_rule(model):
- return sum_product(model.DevotedAcreage) <= model.TOTAL_ACREAGE
-
-model.ConstrainTotalAcreage = Constraint(rule=ConstrainTotalAcreage_rule)
-
-def EnforceCattleFeedRequirement_rule(model, i):
- return model.CattleFeedRequirement[i] <= (model.Yield[i] * model.DevotedAcreage[i]) + model.QuantityPurchased[i] - model.QuantitySubQuotaSold[i] - model.QuantitySuperQuotaSold[i]
-
-model.EnforceCattleFeedRequirement = Constraint(model.CROPS, rule=EnforceCattleFeedRequirement_rule)
-
-def LimitAmountSold_rule(model, i):
- return model.QuantitySubQuotaSold[i] + model.QuantitySuperQuotaSold[i] - (model.Yield[i] * model.DevotedAcreage[i]) <= 0.0
-
-model.LimitAmountSold = Constraint(model.CROPS, rule=LimitAmountSold_rule)
-
-def EnforceQuotas_rule(model, i):
- return (0.0, model.QuantitySubQuotaSold[i], model.PriceQuota[i])
-
-model.EnforceQuotas = Constraint(model.CROPS, rule=EnforceQuotas_rule)
-
-#
-# Stage-specific cost computations
-#
-
-def ComputeFirstStageCost_rule(model):
- return model.FirstStageCost - sum_product(model.PlantingCostPerAcre, model.DevotedAcreage) == 0.0
-
-model.ComputeFirstStageCost = Constraint(rule=ComputeFirstStageCost_rule)
-
-def ComputeSecondStageCost_rule(model):
- expr = sum_product(model.PurchasePrice, model.QuantityPurchased)
- expr -= sum_product(model.SubQuotaSellingPrice, model.QuantitySubQuotaSold)
- expr -= sum_product(model.SuperQuotaSellingPrice, model.QuantitySuperQuotaSold)
- return (model.SecondStageCost - expr) == 0.0
-
-model.ComputeSecondStageCost = Constraint(rule=ComputeSecondStageCost_rule)
-
-#
-# PySP Auto-generated Objective
-#
-# minimize: sum of StageCosts
-#
-# A active scenario objective equivalent to that generated by PySP is
-# included here for informational purposes.
-def total_cost_rule(model):
- return model.FirstStageCost + model.SecondStageCost
-model.Total_Cost_Objective = Objective(rule=total_cost_rule, sense=minimize)
-
-
-def declare_annotations_rule(model):
- #
- # Annotate stochastic constraint matrix coefficients
- #
- model.stoch_matrix = StochasticConstraintBodyAnnotation()
- # DevotedAcreage[i] has a stochastic coefficient in two constraints
- for i in model.CROPS:
- model.stoch_matrix.declare(model.EnforceCattleFeedRequirement[i],
- variables=[model.DevotedAcreage[i]])
- model.stoch_matrix.declare(model.LimitAmountSold[i],
- variables=[model.DevotedAcreage[i]])
-model.declare_annotations = BuildAction(rule=declare_annotations_rule)
diff --git a/examples/pysp/farmerWpiecewise/README.txt b/examples/pysp/farmerWpiecewise/README.txt
deleted file mode 100644
index 792e9a710d3..00000000000
--- a/examples/pysp/farmerWpiecewise/README.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-This is a variant of farmer in which the crop profit is a quadratic function of the amount sold.
-
-A completely artificial example - the main intent is to illustrate the use of the Piecewise
-construct in the context of a stochastic program, and to provide the corresponding regression
-test case.
diff --git a/examples/pysp/farmerWpiecewise/models/ReferenceModel.py b/examples/pysp/farmerWpiecewise/models/ReferenceModel.py
deleted file mode 100644
index 0b7a5d94a80..00000000000
--- a/examples/pysp/farmerWpiecewise/models/ReferenceModel.py
+++ /dev/null
@@ -1,144 +0,0 @@
-# ___________________________________________________________________________
-#
-# Pyomo: Python Optimization Modeling Objects
-# Copyright 2017 National Technology and Engineering Solutions of Sandia, LLC
-# Under the terms of Contract DE-NA0003525 with National Technology and
-# Engineering Solutions of Sandia, LLC, the U.S. Government retains certain
-# rights in this software.
-# This software is distributed under the 3-clause BSD License.
-# ___________________________________________________________________________
-
-#
-# Imports
-#
-
-from pyomo.core import *
-
-#
-# Model
-#
-
-model = AbstractModel()
-
-#
-# Parameters
-#
-
-model.CROPS = Set()
-
-model.TOTAL_ACREAGE = Param(within=PositiveReals)
-
-model.CattleFeedRequirement = Param(model.CROPS, within=NonNegativeReals)
-
-model.PurchasePrice = Param(model.CROPS, within=PositiveReals)
-
-model.PlantingCostPerAcre = Param(model.CROPS, within=PositiveReals)
-
-model.Yield = Param(model.CROPS, within=NonNegativeReals)
-
-# the maximum possible yield for this scenario.
-def max_yield_rule(m):
- result = 0
- acreage = value(m.TOTAL_ACREAGE)
- for c in m.CROPS:
- crop_yield = value(m.Yield[c])
- if crop_yield * acreage > result:
- result = crop_yield * acreage
- return result
-
-model.MaxYield = Param(within=NonNegativeReals, initialize=max_yield_rule)
-
-# number of pieces in the linear approximation of the profit curves.
-model.NumProfitCurvePieces = Param(model.CROPS, default=2)
-
-# the quadratic coefficients for the profit curve, per-crop.
-model.SalePriceA0 = Param(model.CROPS, within=NonNegativeReals)
-model.SalePriceA1 = Param(model.CROPS, within=NonNegativeReals)
-model.SalePriceA2 = Param(model.CROPS, within=NonNegativeReals)
-
-#
-# Variables
-#
-
-model.DevotedAcreage = Var(model.CROPS, bounds=(0.0, model.TOTAL_ACREAGE))
-
-model.QuantityPurchased = Var(model.CROPS, bounds=(0.0, None))
-
-model.QuantitySold = Var(model.CROPS, bounds=(0.0, model.MaxYield))
-
-# per-crop profit, based on the piecewise cost curves.
-model.Profit = Var(model.CROPS, within=NonNegativeReals)
-
-model.FirstStageCost = Var()
-model.SecondStageCost = Var()
-
-#
-# Piecewise constructs
-#
-
-model.ProfitCurvePoints = {}
-
-def create_profit_curve_points_rule(m):
- for c in m.CROPS:
- m.ProfitCurvePoints[c] = [0, value(m.MaxYield)/2, value(m.MaxYield)]
-
-model.CreateProfitCurvePoints = BuildAction(rule=create_profit_curve_points_rule)
-
-# a function for use in piecewise linearization of the profit function.
-def profit_function(m, c, x):
- return value(m.SalePriceA0[c]) + value(m.SalePriceA1[c])*x + value(m.SalePriceA2[c])*x*x
-
-# compute the per-crop profit - the "UB" is used because
-# this is profit, which is a negative term in the
-# (cost-oriented) objective.
-model.ComputeProfits = Piecewise(model.CROPS,
- model.Profit,
- model.QuantitySold,
- pw_pts=model.ProfitCurvePoints,
- f_rule=profit_function,
- pw_constr_type='UB')
-
-#
-# Constraints
-#
-
-def ConstrainTotalAcreage_rule(model):
- return sum_product(model.DevotedAcreage) <= model.TOTAL_ACREAGE
-
-model.ConstrainTotalAcreage = Constraint(rule=ConstrainTotalAcreage_rule)
-
-def EnforceCattleFeedRequirement_rule(model, i):
- return model.CattleFeedRequirement[i] <= (model.Yield[i] * model.DevotedAcreage[i]) + model.QuantityPurchased[i] - model.QuantitySold[i]
-
-model.EnforceCattleFeedRequirement = Constraint(model.CROPS, rule=EnforceCattleFeedRequirement_rule)
-
-def LimitAmountSold_rule(model, i):
- return model.QuantitySold[i] - (model.Yield[i] * model.DevotedAcreage[i]) <= 0.0
-
-model.LimitAmountSold = Constraint(model.CROPS, rule=LimitAmountSold_rule)
-
-#
-# Stage-specific cost computations
-#
-
-def ComputeFirstStageCost_rule(model):
- return model.FirstStageCost - sum_product(model.PlantingCostPerAcre, model.DevotedAcreage) == 0.0
-
-model.ComputeFirstStageCost = Constraint(rule=ComputeFirstStageCost_rule)
-
-def ComputeSecondStageCost_rule(model):
- return model.SecondStageCost - (sum_product(model.PurchasePrice, model.QuantityPurchased) - sum_product(model.Profit)) == 0.0
-
-model.ComputeSecondStageCost = Constraint(rule=ComputeSecondStageCost_rule)
-
-#
-# PySP Auto-generated Objective
-#
-# minimize: sum of StageCosts
-#
-# A active scenario objective equivalent to that generated by PySP is
-# included here for informational purposes.
-def total_cost_rule(model):
- return model.FirstStageCost + model.SecondStageCost
-model.Total_Cost_Objective = Objective(rule=total_cost_rule, sense=minimize)
-
diff --git a/examples/pysp/farmerWpiecewise/nodedata/AboveAverageNode.dat b/examples/pysp/farmerWpiecewise/nodedata/AboveAverageNode.dat
deleted file mode 100644
index b205cf86046..00000000000
--- a/examples/pysp/farmerWpiecewise/nodedata/AboveAverageNode.dat
+++ /dev/null
@@ -1,5 +0,0 @@
-# high yield scenario
-
-param Yield := WHEAT 3.0 CORN 3.6 SUGAR_BEETS 24 ;
-
-
diff --git a/examples/pysp/farmerWpiecewise/nodedata/AverageNode.dat b/examples/pysp/farmerWpiecewise/nodedata/AverageNode.dat
deleted file mode 100644
index 7e55b53f319..00000000000
--- a/examples/pysp/farmerWpiecewise/nodedata/AverageNode.dat
+++ /dev/null
@@ -1,5 +0,0 @@
-# middle scenario
-
-param Yield := WHEAT 2.5 CORN 3 SUGAR_BEETS 20 ;
-
-
diff --git a/examples/pysp/farmerWpiecewise/nodedata/BelowAverageNode.dat b/examples/pysp/farmerWpiecewise/nodedata/BelowAverageNode.dat
deleted file mode 100644
index 5ffd2ac30cf..00000000000
--- a/examples/pysp/farmerWpiecewise/nodedata/BelowAverageNode.dat
+++ /dev/null
@@ -1,5 +0,0 @@
-# low yield scenario
-
-param Yield := WHEAT 2.0 CORN 2.4 SUGAR_BEETS 16 ;
-
-
diff --git a/examples/pysp/farmerWpiecewise/nodedata/RootNode.dat b/examples/pysp/farmerWpiecewise/nodedata/RootNode.dat
deleted file mode 100644
index f12a3031991..00000000000
--- a/examples/pysp/farmerWpiecewise/nodedata/RootNode.dat
+++ /dev/null
@@ -1,28 +0,0 @@
-set CROPS := WHEAT CORN SUGAR_BEETS ;
-
-param TOTAL_ACREAGE := 500 ;
-
-param CattleFeedRequirement := WHEAT 200 CORN 240 SUGAR_BEETS 0 ;
-
-# can't purchase beets (no real need, as cattle don't eat them)
-param PurchasePrice := WHEAT 238 CORN 210 SUGAR_BEETS 100000 ;
-
-param PlantingCostPerAcre := WHEAT 150 CORN 230 SUGAR_BEETS 260 ;
-
-param SalePriceA0 :=
-WHEAT 0
-CORN 0
-SUGAR_BEETS 0
-;
-
-param SalePriceA1 :=
-WHEAT 1
-CORN 3
-SUGAR_BEETS 1
-;
-
-param SalePriceA2 :=
-WHEAT 0.5
-CORN 0.2
-SUGAR_BEETS 0.05
-;
diff --git a/examples/pysp/farmerWpiecewise/nodedata/ScenarioStructure.dat b/examples/pysp/farmerWpiecewise/nodedata/ScenarioStructure.dat
deleted file mode 100644
index 231db91a2a2..00000000000
--- a/examples/pysp/farmerWpiecewise/nodedata/ScenarioStructure.dat
+++ /dev/null
@@ -1,41 +0,0 @@
-# IMPORTANT - THE STAGES ARE ASSUMED TO BE IN TIME-ORDER.
-
-set Stages := FirstStage SecondStage ;
-
-set Nodes := RootNode
- BelowAverageNode
- AverageNode
- AboveAverageNode ;
-
-param NodeStage := RootNode FirstStage
- BelowAverageNode SecondStage
- AverageNode SecondStage
- AboveAverageNode SecondStage ;
-
-set Children[RootNode] := BelowAverageNode
- AverageNode
- AboveAverageNode ;
-
-param ConditionalProbability := RootNode 1.0
- BelowAverageNode 0.33333333
- AverageNode 0.33333334
- AboveAverageNode 0.33333333 ;
-
-set Scenarios := BelowAverageScenario
- AverageScenario
- AboveAverageScenario ;
-
-param ScenarioLeafNode := BelowAverageScenario BelowAverageNode
- AverageScenario AverageNode
- AboveAverageScenario AboveAverageNode ;
-
-set StageVariables[FirstStage] := DevotedAcreage[*] ;
-set StageVariables[SecondStage] := QuantitySold[*]
- QuantityPurchased[*]
- Profit[*]
- ComputeProfits[*] ;
-
-param StageCost := FirstStage FirstStageCost
- SecondStage SecondStageCost ;
-
-param ScenarioBasedData := False ;
diff --git a/examples/pysp/farmerWrent/README.txt b/examples/pysp/farmerWrent/README.txt
deleted file mode 100644
index 986125f6a24..00000000000
--- a/examples/pysp/farmerWrent/README.txt
+++ /dev/null
@@ -1,41 +0,0 @@
-Extended version: there is a singleton var to allow for renting land to the neighbor. Primarily for testing purposes,
-i.e., to avoid strictly indexed variables.
-
-This directory contains pyomo/pysp models and data for the "Farmer" stochastic program (and corresponding
-deterministic program), introduced in Section 1.1 of "Introduction to Stochastic Programming" by Birge and
-Louveaux.
-
-This problem serves as a simple, quick smoke-screen test for a functioning stochastic programming solver.
-
-farmer_mip.py: the deterministic LP model
-farmer_mip.dat: data file for the deterministic LP (expected case parameters)
-
-The deterministic model can be solved simply by the following command-line: pyomo farmer_mip.py farmer_mip.dat
-
-The optimal objective value for the deterministic expected-value model is: -118600 (profot if 118600).
-The stochastic farmers problem is split into the following directories:
-- models ; contains the scenario tree and scenario reference model files.
-- nodedata ; contains node-oriented data for the two-stage case (low, medium, and high yield scenarios).
-- scenariodata ; contains scenario-oriented data for the two-stage case.
-
-The optimal objective value for the stochastic model lis: -108390 (profit of 108390).
-The optimal solution for the stochastic model plants 170 acres of wheat, 80 acres of corn, and 250 acres of sugar beets.
-
-The stochasic farmers problem can be solved via the following command-line:
-
-runph --model-directory=models --instance-directory=nodedata --default-rho=1.0 --max-iterations=100
-
-This should converge in 48 iterations, with an expected profit of 108390 (-108390 objective value).
-
-We did not experiment with any rho values other than 1.0 for this problem - 1.0 works, and we
-aren't that interested in solving this problem more quickly.
-
-To linearize the quadratic penalty terms, simply add the following options to the command line:
-
---linearize-nonbinary-penalty-terms=2
-
-Four piecewise linear segments per blended variable yields faster convergence (9 iterations), but
-a sub-optimal solution (-107958.9).
-
-Fourteen piece linear segments per blended variable yields slow convergence (28 iterations), but
-an optimal solution - to within convergence tolerance (-108389).
diff --git a/examples/pysp/farmerWrent/models/ReferenceModel.py b/examples/pysp/farmerWrent/models/ReferenceModel.py
deleted file mode 100644
index b0311b4295c..00000000000
--- a/examples/pysp/farmerWrent/models/ReferenceModel.py
+++ /dev/null
@@ -1,119 +0,0 @@
-# ___________________________________________________________________________
-#
-# Pyomo: Python Optimization Modeling Objects
-# Copyright 2017 National Technology and Engineering Solutions of Sandia, LLC
-# Under the terms of Contract DE-NA0003525 with National Technology and
-# Engineering Solutions of Sandia, LLC, the U.S. Government retains certain
-# rights in this software.
-# This software is distributed under the 3-clause BSD License.
-# ___________________________________________________________________________
-
-# Farmer: rent out version
-# note: this will minimize
-#
-# Imports
-#
-
-from pyomo.core import *
-
-#
-# Model
-#
-
-model = AbstractModel()
-
-#
-# Parameters
-#
-
-model.CROPS = Set()
-
-model.TOTAL_ACREAGE = Param(within=PositiveReals)
-
-model.RentOutRatePerAcre = Param(within=PositiveReals)
-
-model.PriceQuota = Param(model.CROPS, within=PositiveReals)
-
-model.SubQuotaSellingPrice = Param(model.CROPS, within=PositiveReals)
-
-def super_quota_selling_price_validate (model, value, i):
- return model.SubQuotaSellingPrice[i] >= model.SuperQuotaSellingPrice[i]
-
-model.SuperQuotaSellingPrice = Param(model.CROPS, validate=super_quota_selling_price_validate)
-
-model.CattleFeedRequirement = Param(model.CROPS, within=NonNegativeReals)
-
-model.PurchasePrice = Param(model.CROPS, within=PositiveReals)
-
-model.PlantingCostPerAcre = Param(model.CROPS, within=PositiveReals)
-
-model.Yield = Param(model.CROPS, within=NonNegativeReals)
-
-#
-# Variables
-#
-
-model.DevotedAcreage = Var(model.CROPS, bounds=(0.0, model.TOTAL_ACREAGE))
-
-model.RentedOutAcreage = Var(bounds=(0.0, model.TOTAL_ACREAGE))
-
-model.QuantitySubQuotaSold = Var(model.CROPS, bounds=(0.0, None))
-model.QuantitySuperQuotaSold = Var(model.CROPS, bounds=(0.0, None))
-
-model.QuantityPurchased = Var(model.CROPS, bounds=(0.0, None))
-
-model.FirstStageCost = Var()
-model.SecondStageCost = Var()
-
-#
-# Constraints
-#
-
-def total_acreage_rule(model):
- return sum_product(model.DevotedAcreage) + model.RentedOutAcreage <= model.TOTAL_ACREAGE
-
-model.ConstrainTotalAcreage = Constraint(rule=total_acreage_rule)
-
-def cattle_feed_rule(model, i):
- return model.CattleFeedRequirement[i] <= (model.Yield[i] * model.DevotedAcreage[i]) + model.QuantityPurchased[i] - model.QuantitySubQuotaSold[i] - model.QuantitySuperQuotaSold[i]
-
-model.EnforceCattleFeedRequirement = Constraint(model.CROPS, rule=cattle_feed_rule)
-
-def limit_amount_sold_rule(model, i):
- return model.QuantitySubQuotaSold[i] + model.QuantitySuperQuotaSold[i] - (model.Yield[i] * model.DevotedAcreage[i]) <= 0.0
-
-model.LimitAmountSold = Constraint(model.CROPS, rule=limit_amount_sold_rule)
-
-def enforce_quotas_rule(model, i):
- return (0.0, model.QuantitySubQuotaSold[i], model.PriceQuota[i])
-
-model.EnforceQuotas = Constraint(model.CROPS, rule=enforce_quotas_rule)
-
-#
-# Stage-specific cost computations
-#
-
-def first_stage_cost_rule(model):
- return model.FirstStageCost - sum_product(model.PlantingCostPerAcre, model.DevotedAcreage) + model.RentedOutAcreage * model.RentOutRatePerAcre == 0.0
-
-model.ComputeFirstStageCost = Constraint(rule=first_stage_cost_rule)
-
-def second_stage_cost_rule(model):
- expr = sum_product(model.PurchasePrice, model.QuantityPurchased)
- expr -= sum_product(model.SubQuotaSellingPrice, model.QuantitySubQuotaSold)
- expr -= sum_product(model.SuperQuotaSellingPrice, model.QuantitySuperQuotaSold)
- return (model.SecondStageCost - expr) == 0.0
-
-model.ComputeSecondStageCost = Constraint(rule=second_stage_cost_rule)
-
-#
-# PySP Auto-generated Objective
-#
-# minimize: sum of StageCosts
-#
-# A active scenario objective equivalent to that generated by PySP is
-# included here for informational purposes.
-def total_cost_rule(model):
- return model.FirstStageCost + model.SecondStageCost
-model.Total_Cost_Objective = Objective(rule=total_cost_rule, sense=minimize)
-
diff --git a/examples/pysp/farmerWrent/nodedata/AboveAverageNode.dat b/examples/pysp/farmerWrent/nodedata/AboveAverageNode.dat
deleted file mode 100644
index 0fbc2e9db0e..00000000000
--- a/examples/pysp/farmerWrent/nodedata/AboveAverageNode.dat
+++ /dev/null
@@ -1,5 +0,0 @@
-# above mean scenario
-
-param Yield := WHEAT 3.0 CORN 3.6 SUGAR_BEETS 24 ;
-
-
diff --git a/examples/pysp/farmerWrent/nodedata/AverageNode.dat b/examples/pysp/farmerWrent/nodedata/AverageNode.dat
deleted file mode 100644
index 207bf23acc3..00000000000
--- a/examples/pysp/farmerWrent/nodedata/AverageNode.dat
+++ /dev/null
@@ -1,5 +0,0 @@
-# "mean" scenario
-
-param Yield := WHEAT 2.5 CORN 3 SUGAR_BEETS 20 ;
-
-
diff --git a/examples/pysp/farmerWrent/nodedata/BelowAverageNode.dat b/examples/pysp/farmerWrent/nodedata/BelowAverageNode.dat
deleted file mode 100644
index ef85d906aef..00000000000
--- a/examples/pysp/farmerWrent/nodedata/BelowAverageNode.dat
+++ /dev/null
@@ -1,5 +0,0 @@
-# below-mean scenario
-
-param Yield := WHEAT 2.0 CORN 2.4 SUGAR_BEETS 16 ;
-
-
diff --git a/examples/pysp/farmerWrent/nodedata/RootNode.dat b/examples/pysp/farmerWrent/nodedata/RootNode.dat
deleted file mode 100644
index ac912f13b90..00000000000
--- a/examples/pysp/farmerWrent/nodedata/RootNode.dat
+++ /dev/null
@@ -1,19 +0,0 @@
-set CROPS := WHEAT CORN SUGAR_BEETS ;
-
-param TOTAL_ACREAGE := 500 ;
-
-param RentOutRatePerAcre := 411 ;
-
-# no quotas on wheat or corn
-param PriceQuota := WHEAT 100000 CORN 100000 SUGAR_BEETS 6000 ;
-
-param SubQuotaSellingPrice := WHEAT 170 CORN 150 SUGAR_BEETS 36 ;
-
-param SuperQuotaSellingPrice := WHEAT 0 CORN 0 SUGAR_BEETS 10 ;
-
-param CattleFeedRequirement := WHEAT 200 CORN 240 SUGAR_BEETS 0 ;
-
-# can't purchase beets (no real need, as cattle don't eat them)
-param PurchasePrice := WHEAT 238 CORN 210 SUGAR_BEETS 100000 ;
-
-param PlantingCostPerAcre := WHEAT 150 CORN 230 SUGAR_BEETS 260 ;
diff --git a/examples/pysp/farmerWrent/nodedata/ScenarioStructure.dat b/examples/pysp/farmerWrent/nodedata/ScenarioStructure.dat
deleted file mode 100644
index 8fdb737532c..00000000000
--- a/examples/pysp/farmerWrent/nodedata/ScenarioStructure.dat
+++ /dev/null
@@ -1,41 +0,0 @@
-# IMPORTANT - THE STAGES ARE ASSUMED TO BE IN TIME-ORDER.
-
-set Stages := FirstStage SecondStage ;
-
-set Nodes := RootNode
- BelowAverageNode
- AverageNode
- AboveAverageNode ;
-
-param NodeStage := RootNode FirstStage
- BelowAverageNode SecondStage
- AverageNode SecondStage
- AboveAverageNode SecondStage ;
-
-set Children[RootNode] := BelowAverageNode
- AverageNode
- AboveAverageNode ;
-
-param ConditionalProbability := RootNode 1.0
- BelowAverageNode 0.33333333
- AverageNode 0.33333334
- AboveAverageNode 0.33333333 ;
-
-set Scenarios := BelowAverageScenario
- AverageScenario
- AboveAverageScenario ;
-
-param ScenarioLeafNode := BelowAverageScenario BelowAverageNode
- AverageScenario AverageNode
- AboveAverageScenario AboveAverageNode ;
-
-set StageVariables[FirstStage] := DevotedAcreage[*]
- RentedOutAcreage ;
-set StageVariables[SecondStage] := QuantitySubQuotaSold[*]
- QuantitySuperQuotaSold[*]
- QuantityPurchased[*] ;
-
-param StageCost := FirstStage FirstStageCost
- SecondStage SecondStageCost ;
-
-param ScenarioBasedData := False ;
diff --git a/examples/pysp/farmer_generated/model.py b/examples/pysp/farmer_generated/model.py
deleted file mode 100644
index a009fbc06be..00000000000
--- a/examples/pysp/farmer_generated/model.py
+++ /dev/null
@@ -1,160 +0,0 @@
-# ___________________________________________________________________________
-#
-# Pyomo: Python Optimization Modeling Objects
-# Copyright 2017 National Technology and Engineering Solutions of Sandia, LLC
-# Under the terms of Contract DE-NA0003525 with National Technology and
-# Engineering Solutions of Sandia, LLC, the U.S. Government retains certain
-# rights in this software.
-# This software is distributed under the 3-clause BSD License.
-# ___________________________________________________________________________
-#
-# Farmer: Generates scenario tree structure using callback
-#
-# Imports
-#
-
-from pyomo.core import *
-import random
-
-#
-# Model
-#
-
-model = ConcreteModel()
-
-#
-# Parameters
-#
-
-model.CROPS = Set(initialize=['WHEAT','CORN','SUGAR_BEETS'])
-
-model.TOTAL_ACREAGE = 500.0
-
-model.PriceQuota = {'WHEAT':100000.0,'CORN':100000.0,'SUGAR_BEETS':6000.0}
-
-model.SubQuotaSellingPrice = {'WHEAT':170.0,'CORN':150.0,'SUGAR_BEETS':36.0}
-
-model.SuperQuotaSellingPrice = {'WHEAT':0.0,'CORN':0.0,'SUGAR_BEETS':10.0}
-
-model.CattleFeedRequirement = {'WHEAT':200.0,'CORN':240.0,'SUGAR_BEETS':0.0}
-
-model.PurchasePrice = {'WHEAT':238.0,'CORN':210.0,'SUGAR_BEETS':100000.0}
-
-model.PlantingCostPerAcre = {'WHEAT':150.0,'CORN':230.0,'SUGAR_BEETS':260.0}
-
-model.Yield = Param(model.CROPS, within=NonNegativeReals, initialize=0.0, mutable=True)
-
-#
-# Variables
-#
-
-model.DevotedAcreage = Var(model.CROPS, bounds=(0.0, model.TOTAL_ACREAGE))
-
-model.QuantitySubQuotaSold = Var(model.CROPS, bounds=(0.0, None))
-model.QuantitySuperQuotaSold = Var(model.CROPS, bounds=(0.0, None))
-model.QuantityPurchased = Var(model.CROPS, bounds=(0.0, None))
-
-#
-# Constraints
-#
-
-def ConstrainTotalAcreage_rule(model):
- return sum_product(model.DevotedAcreage) <= model.TOTAL_ACREAGE
-
-model.ConstrainTotalAcreage = Constraint(rule=ConstrainTotalAcreage_rule)
-
-def EnforceCattleFeedRequirement_rule(model, i):
- return model.CattleFeedRequirement[i] <= (model.Yield[i] * model.DevotedAcreage[i]) + model.QuantityPurchased[i] - model.QuantitySubQuotaSold[i] - model.QuantitySuperQuotaSold[i]
-
-model.EnforceCattleFeedRequirement = Constraint(model.CROPS, rule=EnforceCattleFeedRequirement_rule)
-
-def LimitAmountSold_rule(model, i):
- return model.QuantitySubQuotaSold[i] + model.QuantitySuperQuotaSold[i] - (model.Yield[i] * model.DevotedAcreage[i]) <= 0.0
-
-model.LimitAmountSold = Constraint(model.CROPS, rule=LimitAmountSold_rule)
-
-def EnforceQuotas_rule(model, i):
- return (0.0, model.QuantitySubQuotaSold[i], model.PriceQuota[i])
-
-model.EnforceQuotas = Constraint(model.CROPS, rule=EnforceQuotas_rule)
-
-#
-# Stage-specific cost computations
-#
-
-def ComputeFirstStageCost_rule(model):
- return sum_product(model.PlantingCostPerAcre, model.DevotedAcreage)
-model.FirstStageCost = Expression(rule=ComputeFirstStageCost_rule)
-
-def ComputeSecondStageCost_rule(model):
- expr = sum_product(model.PurchasePrice, model.QuantityPurchased)
- expr -= sum_product(model.SubQuotaSellingPrice, model.QuantitySubQuotaSold)
- expr -= sum_product(model.SuperQuotaSellingPrice, model.QuantitySuperQuotaSold)
- return expr
-model.SecondStageCost = Expression(rule=ComputeSecondStageCost_rule)
-
-#
-# PySP Auto-generated Objective
-#
-# minimize: sum of StageCosts
-#
-# An active scenario objective equivalent to that generated by PySP is
-# included here for informational purposes.
-def total_cost_rule(model):
- return model.FirstStageCost + model.SecondStageCost
-model.Total_Cost_Objective = Objective(rule=total_cost_rule, sense=minimize)
-
-#
-# Generate stochastic data as needed
-#
-
-# Number of scenarios
-scenarios = 100
-
-# Parameters for Normal distribution (mu, sigma)
-RandomYield = {}
-RandomYield['WHEAT'] = (2.5, 0.5)
-RandomYield['CORN'] = (3.0, 0.4)
-RandomYield['SUGAR_BEETS'] = (20.0, 4.0)
-
-# Use a deterministic hash across python versions so we can semi-test
-# this model
-import hashlib
-seed_random = lambda name: \
- random.seed(
- int(hashlib.sha512(name.encode()).hexdigest(), 16))
-
-def pysp_scenario_tree_model_callback():
- from pyomo.pysp.scenariotree.tree_structure_model \
- import CreateConcreteTwoStageScenarioTreeModel
-
- st_model = CreateConcreteTwoStageScenarioTreeModel(scenarios)
-
- first_stage = st_model.Stages.first()
- second_stage = st_model.Stages.last()
-
- # First Stage
- st_model.StageCost[first_stage] = 'FirstStageCost'
- st_model.StageVariables[first_stage].add('DevotedAcreage[*]')
-
- # Second Stage
- st_model.StageCost[second_stage] = 'SecondStageCost'
- st_model.StageVariables[second_stage].add('QuantitySubQuotaSold[*]')
- st_model.StageVariables[second_stage].add('QuantitySuperQuotaSold[*]')
- st_model.StageVariables[second_stage].add('QuantityPurchased[*]')
-
- return st_model
-
-def pysp_instance_creation_callback(scenario_name, node_names):
-
- instance = model.clone()
-
- seed_random(scenario_name)
- # Note: Must sort the iteration order so that
- # data is generated deterministically
- # across runs. Iteration over dict and set
- # is very fickle in Python3.x
- for key in sorted(RandomYield.keys()):
- instance.Yield[key] = random.normalvariate(*RandomYield[key])
-
- return instance
diff --git a/examples/pysp/finance/README.txt b/examples/pysp/finance/README.txt
deleted file mode 100644
index 8b434af1c42..00000000000
--- a/examples/pysp/finance/README.txt
+++ /dev/null
@@ -1,20 +0,0 @@
-This directory contains pyomo/pysp models and data for the "Financial Planning" stochastic
-program (and corresponding deterministic program), introduced in Section 1.2 of "Introduction
-to Stochastic Programming" by Birge and Louveaux.
-
-Building on the farmer example, this problem is still relatively simple (all continuous variables)
-but multi-stage. Intent is to exercise some multi-stage aspects of stochastic programming solvers,
-before diving into multi-stage plus integers.
-
-financial_planning.py: the deterministic LP model.
-financial_planning.dat: data file for the deterministic LP (expected-case parameters).
-
-The deterministic model can be solved simply by the following command-line: pyomo solve financial_planning.py financial_planning.dat
-
-the objective function value is 4743.94
-
-The stochastic model can be solved with a command line like:
-
-runef -i scenariodata/ -m models --solve --solver=gurobi
-
-The solution to the stochastic version has objective function value (expected code) $-1514
diff --git a/examples/pysp/finance/financial_planning.dat b/examples/pysp/finance/financial_planning.dat
deleted file mode 100644
index ea734cd868c..00000000000
--- a/examples/pysp/finance/financial_planning.dat
+++ /dev/null
@@ -1,22 +0,0 @@
-set Investments := STOCKS BONDS ;
-
-param InitialWealth := 55000 ;
-
-param TargetCapital := 80000 ;
-
-param ExcessPerUnitBenefit := 1 ;
-
-param ShortagePerUnitCost := 4 ;
-
-param NumTimes := 3 ;
-
-param Return :=
-
-STOCKS 1 1.155
-BONDS 1 1.13
-
-STOCKS 2 1.155
-BONDS 2 1.13
-
-STOCKS 3 1.155
-BONDS 3 1.13 ;
diff --git a/examples/pysp/finance/financial_planning.py b/examples/pysp/finance/financial_planning.py
deleted file mode 100644
index 3d09f5164ca..00000000000
--- a/examples/pysp/finance/financial_planning.py
+++ /dev/null
@@ -1,101 +0,0 @@
-# ___________________________________________________________________________
-#
-# Pyomo: Python Optimization Modeling Objects
-# Copyright 2017 National Technology and Engineering Solutions of Sandia, LLC
-# Under the terms of Contract DE-NA0003525 with National Technology and
-# Engineering Solutions of Sandia, LLC, the U.S. Government retains certain
-# rights in this software.
-# This software is distributed under the 3-clause BSD License.
-# ___________________________________________________________________________
-#
-# Imports
-#
-
-from pyomo.environ import *
-
-#
-# Model
-#
-
-model = AbstractModel()
-
-#
-# Parameters
-#
-
-model.Investments = Set()
-
-model.InitialWealth = Param(within=PositiveReals)
-
-model.TargetCapital = Param(within=PositiveReals)
-
-model.ExcessPerUnitBenefit = Param(within=PositiveReals)
-
-model.ShortagePerUnitCost = Param(within=PositiveReals)
-
-model.NumTimes = Param(within=PositiveIntegers)
-
-def stages_rule(model):
- return set(range(1, model.NumTimes()+1))
-
-model.Times = Set(initialize=stages_rule)
-
-model.Return = Param(model.Investments, model.Times)
-
-#
-# Variables
-#
-
-model.StageCost = Var(model.Times)
-
-model.AmountInvested = Var(model.Investments, model.Times, within=NonNegativeReals)
-
-model.TargetDeficit = Var(within=NonNegativeReals)
-
-model.TargetSurplus = Var(within=NonNegativeReals)
-
-model.Wealth = Var(model.Times)
-
-model.FinalWealth = Var()
-
-#
-# Constraints
-#
-
-def force_wealth_distribution(model, t):
- if t == 1:
- return (sum([model.AmountInvested[i,1] for i in model.Investments]) - model.InitialWealth) == 0.0
- else:
- return (sum([model.Return[i,t-1] * model.AmountInvested[i,t-1] for i in model.Investments]) - sum([model.AmountInvested[i,t] for i in model.Investments])) == 0.0
-
-model.ForceWealthDistributionConstraint = Constraint(model.Times, rule=force_wealth_distribution)
-
-def compute_surplus_deficit(model):
- return (sum([model.Return[i,model.NumTimes()] * model.AmountInvested[i,model.NumTimes()] for i in model.Investments]) - model.TargetSurplus + model.TargetDeficit - model.TargetCapital) == 0.0
-
-model.ComputeSurplusDeficitConstraint = Constraint(rule=compute_surplus_deficit)
-
-
-#
-# Stage-specific cost computations
-#
-
-def stage_profit_rule(model,t ):
- return model.Wealth[t] == 0.0
-
-model.ComputeStageProfit = Constraint(model.Times, rule=stage_profit_rule)
-
-def compute_final_wealth_rule(model):
- return (model.FinalWealth - model.ExcessPerUnitBenefit * model.TargetSurplus + model.ShortagePerUnitCost * model.TargetDeficit) == 0.0
-
-model.ComputeFinalWealth = Constraint(rule=compute_final_wealth_rule)
-
-
-#
-# Objective
-#
-
-def total_wealth_rule(model):
- return model.FinalWealth
-
-model.Total_Wealth_Objective = Objective(rule=total_wealth_rule, sense=maximize)
diff --git a/examples/pysp/finance/models/ReferenceModel.py b/examples/pysp/finance/models/ReferenceModel.py
deleted file mode 100644
index b45488e582c..00000000000
--- a/examples/pysp/finance/models/ReferenceModel.py
+++ /dev/null
@@ -1,105 +0,0 @@
-# ___________________________________________________________________________
-#
-# Pyomo: Python Optimization Modeling Objects
-# Copyright 2017 National Technology and Engineering Solutions of Sandia, LLC
-# Under the terms of Contract DE-NA0003525 with National Technology and
-# Engineering Solutions of Sandia, LLC, the U.S. Government retains certain
-# rights in this software.
-# This software is distributed under the 3-clause BSD License.
-# ___________________________________________________________________________
-
-#
-# Imports
-#
-
-from pyomo.environ import *
-
-#
-# Model
-#
-
-model = AbstractModel()
-
-#
-# Parameters
-#
-
-model.Investments = Set()
-
-model.InitialWealth = Param(within=PositiveReals)
-
-model.TargetCapital = Param(within=PositiveReals)
-
-model.ExcessPerUnitBenefit = Param(within=PositiveReals)
-
-model.ShortagePerUnitCost = Param(within=PositiveReals)
-
-model.NumTimes = Param(within=PositiveIntegers)
-
-def stages_rule(model):
- return set(range(1, model.NumTimes()+1))
-
-model.Times = Set(initialize=stages_rule)
-
-model.Return = Param(model.Investments, model.Times)
-
-#
-# Variables
-#
-
-model.StageCost = Var(model.Times)
-
-model.AmountInvested = Var(model.Investments, model.Times, within=NonNegativeReals)
-
-model.TargetDeficit = Var(within=NonNegativeReals)
-
-model.TargetSurplus = Var(within=NonNegativeReals)
-
-model.Wealth = Var(model.Times)
-
-model.FinalWealth = Var()
-
-#
-# Constraints
-#
-
-def force_wealth_distribution(model, t):
- if t == 1:
- return (sum([model.AmountInvested[i,1] for i in model.Investments]) - model.InitialWealth) == 0.0
- else:
- return (sum([model.Return[i,t-1] * model.AmountInvested[i,t-1] for i in model.Investments]) - sum([model.AmountInvested[i,t] for i in model.Investments])) == 0.0
-
-model.ForceWealthDistributionConstraint = Constraint(model.Times, rule=force_wealth_distribution)
-
-def compute_surplus_deficit(model):
- return (sum([model.Return[i,model.NumTimes()] * model.AmountInvested[i,model.NumTimes()] for i in model.Investments]) - model.TargetSurplus + model.TargetDeficit - model.TargetCapital) == 0.0
-
-model.ComputeSurplusDeficitConstraint = Constraint(rule=compute_surplus_deficit)
-
-
-#
-# Stage-specific cost computations
-#
-
-def stage_profit_rule(model, t):
- return model.Wealth[t] == 0.0
-
-model.ComputeStageProfit = Constraint(model.Times, rule=stage_profit_rule)
-
-def compute_final_wealth_rule(model):
- return (model.FinalWealth - model.ExcessPerUnitBenefit * model.TargetSurplus + model.ShortagePerUnitCost * model.TargetDeficit) == 0.0
-
-model.ComputeFinalWealth = Constraint(rule=compute_final_wealth_rule)
-
-
-#
-# PySP Auto-generated Objective
-#
-# maximize: sum of StageCosts
-#
-# A active scenario objective equivalent to that generated by PySP is
-# included here for informational purposes.
-def total_wealth_rule(model):
- return model.FinalWealth
-model.Total_Wealth_Objective = Objective(rule=total_wealth_rule, sense=maximize)
-
diff --git a/examples/pysp/finance/scenariodata/BondBondBondScenario.dat b/examples/pysp/finance/scenariodata/BondBondBondScenario.dat
deleted file mode 100644
index 3b1964dcdf8..00000000000
--- a/examples/pysp/finance/scenariodata/BondBondBondScenario.dat
+++ /dev/null
@@ -1,22 +0,0 @@
-set Investments := STOCKS BONDS ;
-
-param InitialWealth := 55000 ;
-
-param TargetCapital := 80000 ;
-
-param ExcessPerUnitBenefit := 1 ;
-
-param ShortagePerUnitCost := 4 ;
-
-param NumTimes := 3 ;
-
-param Return :=
-
-STOCKS 1 1.06
-BONDS 1 1.12
-
-STOCKS 2 1.06
-BONDS 2 1.12
-
-STOCKS 3 1.06
-BONDS 3 1.12 ;
diff --git a/examples/pysp/finance/scenariodata/BondBondStockScenario.dat b/examples/pysp/finance/scenariodata/BondBondStockScenario.dat
deleted file mode 100644
index 56f4f6ceae2..00000000000
--- a/examples/pysp/finance/scenariodata/BondBondStockScenario.dat
+++ /dev/null
@@ -1,22 +0,0 @@
-set Investments := STOCKS BONDS ;
-
-param InitialWealth := 55000 ;
-
-param TargetCapital := 80000 ;
-
-param ExcessPerUnitBenefit := 1 ;
-
-param ShortagePerUnitCost := 4 ;
-
-param NumTimes := 3 ;
-
-param Return :=
-
-STOCKS 1 1.06
-BONDS 1 1.12
-
-STOCKS 2 1.06
-BONDS 2 1.12
-
-STOCKS 3 1.25
-BONDS 3 1.14 ;
diff --git a/examples/pysp/finance/scenariodata/BondStockBondScenario.dat b/examples/pysp/finance/scenariodata/BondStockBondScenario.dat
deleted file mode 100644
index 5a998db4ace..00000000000
--- a/examples/pysp/finance/scenariodata/BondStockBondScenario.dat
+++ /dev/null
@@ -1,22 +0,0 @@
-set Investments := STOCKS BONDS ;
-
-param InitialWealth := 55000 ;
-
-param TargetCapital := 80000 ;
-
-param ExcessPerUnitBenefit := 1 ;
-
-param ShortagePerUnitCost := 4 ;
-
-param NumTimes := 3 ;
-
-param Return :=
-
-STOCKS 1 1.06
-BONDS 1 1.12
-
-STOCKS 2 1.25
-BONDS 2 1.14
-
-STOCKS 3 1.06
-BONDS 3 1.12 ;
diff --git a/examples/pysp/finance/scenariodata/BondStockStockScenario.dat b/examples/pysp/finance/scenariodata/BondStockStockScenario.dat
deleted file mode 100644
index bdc8ea1bfaf..00000000000
--- a/examples/pysp/finance/scenariodata/BondStockStockScenario.dat
+++ /dev/null
@@ -1,22 +0,0 @@
-set Investments := STOCKS BONDS ;
-
-param InitialWealth := 55000 ;
-
-param TargetCapital := 80000 ;
-
-param ExcessPerUnitBenefit := 1 ;
-
-param ShortagePerUnitCost := 4 ;
-
-param NumTimes := 3 ;
-
-param Return :=
-
-STOCKS 1 1.06
-BONDS 1 1.12
-
-STOCKS 2 1.25
-BONDS 2 1.14
-
-STOCKS 3 1.25
-BONDS 3 1.14 ;
diff --git a/examples/pysp/finance/scenariodata/ScenarioStructure.dat b/examples/pysp/finance/scenariodata/ScenarioStructure.dat
deleted file mode 100644
index 014baf66b69..00000000000
--- a/examples/pysp/finance/scenariodata/ScenarioStructure.dat
+++ /dev/null
@@ -1,106 +0,0 @@
-# IMPORTANT - THE STAGES ARE ASSUMED TO BE IN TIME-ORDER.
-
-set Stages := FirstStage SecondStage ThirdStage FourthStage;
-
-set Nodes := RootNode
-
- StockNode
- BondNode
-
- StockStockNode
- StockBondNode
- BondStockNode
- BondBondNode
-
- StockStockStockNode
- StockStockBondNode
- StockBondStockNode
- StockBondBondNode
-
- BondStockStockNode
- BondStockBondNode
- BondBondStockNode
- BondBondBondNode ;
-
-param NodeStage := RootNode FirstStage
-
- StockNode SecondStage
- BondNode SecondStage
-
- StockStockNode ThirdStage
- StockBondNode ThirdStage
- BondStockNode ThirdStage
- BondBondNode ThirdStage
-
- StockStockStockNode FourthStage
- StockStockBondNode FourthStage
- StockBondStockNode FourthStage
- StockBondBondNode FourthStage
-
- BondStockStockNode FourthStage
- BondStockBondNode FourthStage
- BondBondStockNode FourthStage
- BondBondBondNode FourthStage ;
-
-set Children[RootNode] := StockNode BondNode ;
-set Children[StockNode] := StockStockNode StockBondNode ;
-set Children[BondNode] := BondStockNode BondBondNode ;
-set Children[StockStockNode] := StockStockStockNode StockStockBondNode ;
-set Children[StockBondNode] := StockBondStockNode StockBondBondNode ;
-set Children[BondStockNode] := BondStockStockNode BondStockBondNode ;
-set Children[BondBondNode] := BondBondStockNode BondBondBondNode ;
-
-param ConditionalProbability := RootNode 1.0
-
- StockNode 0.5
- BondNode 0.5
-
- StockStockNode 0.5
- StockBondNode 0.5
- BondStockNode 0.5
- BondBondNode 0.5
-
- StockStockStockNode 0.5
- StockStockBondNode 0.5
- StockBondStockNode 0.5
- StockBondBondNode 0.5
-
- BondStockStockNode 0.5
- BondStockBondNode 0.5
- BondBondStockNode 0.5
- BondBondBondNode 0.5 ;
-
-set Scenarios := StockStockStockScenario
- StockStockBondScenario
- StockBondStockScenario
- StockBondBondScenario
- BondStockStockScenario
- BondStockBondScenario
- BondBondStockScenario
- BondBondBondScenario ;
-
-param ScenarioLeafNode := StockStockStockScenario StockStockStockNode
- StockStockBondScenario StockStockBondNode
- StockBondStockScenario StockBondStockNode
- StockBondBondScenario StockBondBondNode
- BondStockStockScenario BondStockStockNode
- BondStockBondScenario BondStockBondNode
- BondBondStockScenario BondBondStockNode
- BondBondBondScenario BondBondBondNode ;
-
-set StageVariables[FirstStage] := AmountInvested[*,1] ;
-
-set StageVariables[SecondStage] := AmountInvested[*,2] ;
-
-set StageVariables[ThirdStage] := AmountInvested[*,3] ;
-
-set StageVariables[FourthStage] := TargetDeficit
- TargetSurplus
- FinalWealth;
-
-param StageCost := FirstStage Wealth[1]
- SecondStage Wealth[2]
- ThirdStage Wealth[3]
- FourthStage FinalWealth ;
-
-param ScenarioBasedData := True ;
diff --git a/examples/pysp/finance/scenariodata/StockBondBondScenario.dat b/examples/pysp/finance/scenariodata/StockBondBondScenario.dat
deleted file mode 100644
index 8c13b0e3c3e..00000000000
--- a/examples/pysp/finance/scenariodata/StockBondBondScenario.dat
+++ /dev/null
@@ -1,22 +0,0 @@
-set Investments := STOCKS BONDS ;
-
-param InitialWealth := 55000 ;
-
-param TargetCapital := 80000 ;
-
-param ExcessPerUnitBenefit := 1 ;
-
-param ShortagePerUnitCost := 4 ;
-
-param NumTimes := 3 ;
-
-param Return :=
-
-STOCKS 1 1.25
-BONDS 1 1.14
-
-STOCKS 2 1.06
-BONDS 2 1.12
-
-STOCKS 3 1.06
-BONDS 3 1.12 ;
diff --git a/examples/pysp/finance/scenariodata/StockBondStockScenario.dat b/examples/pysp/finance/scenariodata/StockBondStockScenario.dat
deleted file mode 100644
index 33047bed3fe..00000000000
--- a/examples/pysp/finance/scenariodata/StockBondStockScenario.dat
+++ /dev/null
@@ -1,22 +0,0 @@
-set Investments := STOCKS BONDS ;
-
-param InitialWealth := 55000 ;
-
-param TargetCapital := 80000 ;
-
-param ExcessPerUnitBenefit := 1 ;
-
-param ShortagePerUnitCost := 4 ;
-
-param NumTimes := 3 ;
-
-param Return :=
-
-STOCKS 1 1.25
-BONDS 1 1.14
-
-STOCKS 2 1.06
-BONDS 2 1.12
-
-STOCKS 3 1.25
-BONDS 3 1.14 ;
diff --git a/examples/pysp/finance/scenariodata/StockStockBondScenario.dat b/examples/pysp/finance/scenariodata/StockStockBondScenario.dat
deleted file mode 100644
index c91bc1adc18..00000000000
--- a/examples/pysp/finance/scenariodata/StockStockBondScenario.dat
+++ /dev/null
@@ -1,22 +0,0 @@
-set Investments := STOCKS BONDS ;
-
-param InitialWealth := 55000 ;
-
-param TargetCapital := 80000 ;
-
-param ExcessPerUnitBenefit := 1 ;
-
-param ShortagePerUnitCost := 4 ;
-
-param NumTimes := 3 ;
-
-param Return :=
-
-STOCKS 1 1.25
-BONDS 1 1.14
-
-STOCKS 2 1.25
-BONDS 2 1.14
-
-STOCKS 3 1.06
-BONDS 3 1.12 ;
diff --git a/examples/pysp/finance/scenariodata/StockStockStockScenario.dat b/examples/pysp/finance/scenariodata/StockStockStockScenario.dat
deleted file mode 100644
index 92cc5390a42..00000000000
--- a/examples/pysp/finance/scenariodata/StockStockStockScenario.dat
+++ /dev/null
@@ -1,22 +0,0 @@
-set Investments := STOCKS BONDS ;
-
-param InitialWealth := 55000 ;
-
-param TargetCapital := 80000 ;
-
-param ExcessPerUnitBenefit := 1 ;
-
-param ShortagePerUnitCost := 4 ;
-
-param NumTimes := 3 ;
-
-param Return :=
-
-STOCKS 1 1.25
-BONDS 1 1.14
-
-STOCKS 2 1.25
-BONDS 2 1.14
-
-STOCKS 3 1.25
-BONDS 3 1.14 ;
diff --git a/examples/pysp/forestry/18scenarios/ForestChile1.dat b/examples/pysp/forestry/18scenarios/ForestChile1.dat
deleted file mode 100644
index 98d888bf3e1..00000000000
--- a/examples/pysp/forestry/18scenarios/ForestChile1.dat
+++ /dev/null
@@ -1,562 +0,0 @@
-# fbv
-# mnr May 3, 2009
-
-# general nodes
-set Nodes := E1
- I1 I2 I3
- C01 C02 C03 C04 C05 C06 C07 C08 C09 ;
-
-# following the notation in the paper (note: nodes \equiv origins)
-
-#
-# Sets
-#
-
-set Times := Ano1 Ano2 Ano3 Ano4;
-
-set OriginNodes := C01 C02 C03 C04 C05 C06 C07 C08 C09 ;
-
-set IntersectionNodes := I1 I2 I3;
-
-set ExitNodes := E1;
-
-set HarvestCells := U1 U2 U3 U4 U5 U6 U7 U8 U9 U10 U11 U12 U13
- U14 U15 U16 U17 U18 U19 U20 U21 U22 U23 U24 U25;
-
-set HCellsForOrigin[C01] := U1 U2 U4 ;
-set HCellsForOrigin[C02] := U6 U7 U9 U10 ;
-set HCellsForOrigin[C03] := U12 U13 ;
-set HCellsForOrigin[C04] := U11 U15 U16 ;
-set HCellsForOrigin[C05] := U14 U23 U24 ;
-set HCellsForOrigin[C06] := U17 U18 U19 ;
-set HCellsForOrigin[C07] := U22 U25 ;
-set HCellsForOrigin[C08] := U20 U21 ;
-set HCellsForOrigin[C09] := U3 U5 U8 ;
-
-set ExistingRoads :=
-C02 C03
-C03 E1
-C05 I1
-I1 I2
-I2 I3
-I3 E1
-;
-
-set PotentialRoads :=
-C01 C09
-C01 C02
-C02 C09
-C09 C02
-C09 E1
-C09 C03
-C04 C03
-C04 I3
-C06 I3
-C08 C06
-C08 I2
-C07 C08
-C07 I1
-C07 C05
-;
-
-set AllRoads :=
-C02 C03
-C03 E1
-C05 I1
-I1 I2
-I2 I3
-I3 E1
-C01 C09
-C01 C02
-C02 C09
-C09 C02
-C09 E1
-C09 C03
-C04 C03
-C04 I3
-C06 I3
-C08 C06
-C08 I2
-C07 C08
-C07 I1
-C07 C05
-;
-
-#
-# Deterministic Parameters
-#
-
-# productivity of cell h if it is harvested in period t
-param a :=
-U1 Ano1 362
-U1 Ano2 362
-U1 Ano3 362
-U1 Ano4 362
-U2 Ano1 362
-U2 Ano2 362
-U2 Ano3 362
-U2 Ano4 362
-U3 Ano1 362
-U3 Ano2 362
-U3 Ano3 362
-U3 Ano4 362
-U4 Ano1 642
-U4 Ano2 642
-U4 Ano3 642
-U4 Ano4 642
-U5 Ano1 362
-U5 Ano2 362
-U5 Ano3 362
-U5 Ano4 362
-U6 Ano1 642
-U6 Ano2 642
-U6 Ano3 642
-U6 Ano4 642
-U7 Ano1 642
-U7 Ano2 642
-U7 Ano3 642
-U7 Ano4 642
-U8 Ano1 362
-U8 Ano2 362
-U8 Ano3 362
-U8 Ano4 362
-U9 Ano1 642
-U9 Ano2 642
-U9 Ano3 642
-U9 Ano4 642
-U10 Ano1 642
-U10 Ano2 642
-U10 Ano3 642
-U10 Ano4 642
-U11 Ano1 600
-U11 Ano2 600
-U11 Ano3 600
-U11 Ano4 600
-U12 Ano1 518
-U12 Ano2 518
-U12 Ano3 518
-U12 Ano4 518
-U13 Ano1 518
-U13 Ano2 518
-U13 Ano3 518
-U13 Ano4 518
-U14 Ano1 567
-U14 Ano2 567
-U14 Ano3 567
-U14 Ano4 567
-U15 Ano1 600
-U15 Ano2 600
-U15 Ano3 600
-U15 Ano4 600
-U16 Ano1 600
-U16 Ano2 600
-U16 Ano3 600
-U16 Ano4 600
-U17 Ano1 518
-U17 Ano2 518
-U17 Ano3 518
-U17 Ano4 518
-U18 Ano1 401
-U18 Ano2 401
-U18 Ano3 401
-U18 Ano4 401
-U19 Ano1 401
-U19 Ano2 401
-U19 Ano3 401
-U19 Ano4 401
-U20 Ano1 401
-U20 Ano2 401
-U20 Ano3 401
-U20 Ano4 401
-U21 Ano1 373
-U21 Ano2 373
-U21 Ano3 373
-U21 Ano4 373
-U22 Ano1 373
-U22 Ano2 373
-U22 Ano3 373
-U22 Ano4 373
-U23 Ano1 567
-U23 Ano2 567
-U23 Ano3 567
-U23 Ano4 567
-U24 Ano1 567
-U24 Ano2 567
-U24 Ano3 567
-U24 Ano4 567
-U25 Ano1 373
-U25 Ano2 373
-U25 Ano3 373
-U25 Ano4 373
-;
-
-# Area of cell h to be harvested
-param A :=
-U1 10.1
-U2 10.1
-U3 10.1
-U4 13.4
-U5 10.3
-U6 10.2
-U7 10.1
-U8 10.4
-U9 16.7
-U10 12.8
-U11 12.2
-U12 15.2
-U13 11.3
-U14 12.7
-U15 12.6
-U16 12.6
-U17 10
-U18 14.4
-U19 10.8
-U20 10.4
-U21 16.4
-U22 10
-U23 11.4
-U24 14.8
-U25 10.1
-;
-
-# harvesting cost of one hectare of cell h in time t
-param P :=
-U1 Ano1 8
-U1 Ano2 8
-U1 Ano3 8
-U1 Ano4 8
-U2 Ano1 8
-U2 Ano2 8
-U2 Ano3 8
-U2 Ano4 8
-U3 Ano1 8
-U3 Ano2 8
-U3 Ano3 8
-U3 Ano4 8
-U4 Ano1 8
-U4 Ano2 8
-U4 Ano3 8
-U4 Ano4 8
-U5 Ano1 8
-U5 Ano2 8
-U5 Ano3 8
-U5 Ano4 8
-U6 Ano1 8
-U6 Ano2 8
-U6 Ano3 8
-U6 Ano4 8
-U7 Ano1 8
-U7 Ano2 8
-U7 Ano3 8
-U7 Ano4 8
-U8 Ano1 8
-U8 Ano2 8
-U8 Ano3 8
-U8 Ano4 8
-U9 Ano1 8
-U9 Ano2 8
-U9 Ano3 8
-U9 Ano4 8
-U10 Ano1 8
-U10 Ano2 8
-U10 Ano3 8
-U10 Ano4 8
-U11 Ano1 8
-U11 Ano2 8
-U11 Ano3 8
-U11 Ano4 8
-U12 Ano1 8
-U12 Ano2 8
-U12 Ano3 8
-U12 Ano4 8
-U13 Ano1 8
-U13 Ano2 8
-U13 Ano3 8
-U13 Ano4 8
-U14 Ano1 8
-U14 Ano2 8
-U14 Ano3 8
-U14 Ano4 8
-U15 Ano1 8
-U15 Ano2 8
-U15 Ano3 8
-U15 Ano4 8
-U16 Ano1 8
-U16 Ano2 8
-U16 Ano3 8
-U16 Ano4 8
-U17 Ano1 8
-U17 Ano2 8
-U17 Ano3 8
-U17 Ano4 8
-U18 Ano1 8
-U18 Ano2 8
-U18 Ano3 8
-U18 Ano4 8
-U19 Ano1 8
-U19 Ano2 8
-U19 Ano3 8
-U19 Ano4 8
-U20 Ano1 8
-U20 Ano2 8
-U20 Ano3 8
-U20 Ano4 8
-U21 Ano1 8
-U21 Ano2 8
-U21 Ano3 8
-U21 Ano4 8
-U22 Ano1 8
-U22 Ano2 8
-U22 Ano3 8
-U22 Ano4 8
-U23 Ano1 8
-U23 Ano2 8
-U23 Ano3 8
-U23 Ano4 8
-U24 Ano1 8
-U24 Ano2 8
-U24 Ano3 8
-U24 Ano4 8
-U25 Ano1 8
-U25 Ano2 8
-U25 Ano3 8
-U25 Ano4 8
-;
-
-
-# prod cost
-param Q :=
-C01 Ano1 0.1
-C01 Ano2 0.1
-C01 Ano3 0.1
-C01 Ano4 0.1
-C02 Ano1 0.1
-C02 Ano2 0.1
-C02 Ano3 0.1
-C02 Ano4 0.1
-C03 Ano1 0.1
-C03 Ano2 0.1
-C03 Ano3 0.1
-C03 Ano4 0.1
-C04 Ano1 0.1
-C04 Ano2 0.1
-C04 Ano3 0.1
-C04 Ano4 0.1
-C05 Ano1 0.1
-C05 Ano2 0.1
-C05 Ano3 0.1
-C05 Ano4 0.1
-C06 Ano1 0.1
-C06 Ano2 0.1
-C06 Ano3 0.1
-C06 Ano4 0.1
-C07 Ano1 0.1
-C07 Ano2 0.1
-C07 Ano3 0.1
-C07 Ano4 0.1
-C08 Ano1 0.1
-C08 Ano2 0.1
-C08 Ano3 0.1
-C08 Ano4 0.1
-C09 Ano1 0.1
-C09 Ano2 0.1
-C09 Ano3 0.1
-C09 Ano4 0.1
-;
-
-# construction cost of one road in arc (k,l) in time t
-param C :=
-C01 C09 Ano1 1440
-C01 C09 Ano2 1309.09
-C01 C09 Ano3 1190.08
-C01 C09 Ano4 1081.89
-C01 C02 Ano1 1950
-C01 C02 Ano2 1772.73
-C01 C02 Ano3 1611.57
-C01 C02 Ano4 1465.06
-C02 C09 Ano1 1690
-C02 C09 Ano2 1536.36
-C02 C09 Ano3 1396.69
-C02 C09 Ano4 1269.72
-C09 C02 Ano1 1690
-C09 C02 Ano2 1536.36
-C09 C02 Ano3 1396.69
-C09 C02 Ano4 1269.72
-C09 E1 Ano1 2840
-C09 E1 Ano2 2581.82
-C09 E1 Ano3 2347.11
-C09 E1 Ano4 2133.73
-C09 C03 Ano1 2190
-C09 C03 Ano2 1990.91
-C09 C03 Ano3 1809.92
-C09 C03 Ano4 1645.38
-C04 C03 Ano1 1170
-C04 C03 Ano2 1063.64
-C04 C03 Ano3 966.94
-C04 C03 Ano4 879.04
-C04 I3 Ano1 1320
-C04 I3 Ano2 1200
-C04 I3 Ano3 1090.91
-C04 I3 Ano4 991.74
-C06 I3 Ano1 150
-C06 I3 Ano2 136.36
-C06 I3 Ano3 123.97
-C06 I3 Ano4 112.7
-C08 C06 Ano1 1950
-C08 C06 Ano2 1772.73
-C08 C06 Ano3 1611.57
-C08 C06 Ano4 1465.06
-C08 I2 Ano1 1110
-C08 I2 Ano2 1009.09
-C08 I2 Ano3 917.36
-C08 I2 Ano4 833.96
-C07 C08 Ano1 930
-C07 C08 Ano2 845.45
-C07 C08 Ano3 768.6
-C07 C08 Ano4 698.72
-C07 I1 Ano1 1950
-C07 I1 Ano2 1772.73
-C07 I1 Ano3 1611.57
-C07 I1 Ano4 1465.06
-C07 C05 Ano1 2130
-C07 C05 Ano2 1936.36
-C07 C05 Ano3 1760.33
-C07 C05 Ano4 1600.3
-;
-
-# unit transport cost through arc (k,l) in time t
-param D :=
-C01 C09 Ano1 1.9
-C01 C02 Ano1 3.25
-C02 C09 Ano1 2.35
-C09 C02 Ano1 2.35
-C09 E1 Ano1 4.1
-C09 C03 Ano1 3.65
-C04 C03 Ano1 1.95
-C04 I3 Ano1 2.2
-C06 I3 Ano1 0.25
-C08 C06 Ano1 3.25
-C08 I2 Ano1 1.85
-C07 C08 Ano1 1.55
-C07 I1 Ano1 3.15
-C07 C05 Ano1 3.25
-C02 C03 Ano1 3.6
-C03 E1 Ano1 1.4
-C05 I1 Ano1 0.95
-I1 I2 Ano1 1.1
-I2 I3 Ano1 1.45
-I3 E1 Ano1 1.95
-C01 C09 Ano2 1.9
-C01 C02 Ano2 3.25
-C02 C09 Ano2 2.35
-C09 C02 Ano2 2.35
-C09 E1 Ano2 4.1
-C09 C03 Ano2 3.65
-C04 C03 Ano2 1.95
-C04 I3 Ano2 2.2
-C06 I3 Ano2 0.25
-C08 C06 Ano2 3.25
-C08 I2 Ano2 1.85
-C07 C08 Ano2 1.55
-C07 I1 Ano2 3.15
-C07 C05 Ano2 3.25
-C02 C03 Ano2 3.6
-C03 E1 Ano2 1.4
-C05 I1 Ano2 0.95
-I1 I2 Ano2 1.1
-I2 I3 Ano2 1.45
-I3 E1 Ano2 1.95
-C01 C09 Ano3 1.9
-C01 C02 Ano3 3.25
-C02 C09 Ano3 2.35
-C09 C02 Ano3 2.35
-C09 E1 Ano3 4.1
-C09 C03 Ano3 3.65
-C04 C03 Ano3 1.95
-C04 I3 Ano3 2.2
-C06 I3 Ano3 0.25
-C08 C06 Ano3 3.25
-C08 I2 Ano3 1.85
-C07 C08 Ano3 1.55
-C07 I1 Ano3 3.15
-C07 C05 Ano3 3.25
-C02 C03 Ano3 3.6
-C03 E1 Ano3 1.4
-C05 I1 Ano3 0.95
-I1 I2 Ano3 1.1
-I2 I3 Ano3 1.45
-I3 E1 Ano3 1.95
-C01 C09 Ano4 1.9
-C01 C02 Ano4 3.25
-C02 C09 Ano4 2.35
-C09 C02 Ano4 2.35
-C09 E1 Ano4 4.1
-C09 C03 Ano4 3.65
-C04 C03 Ano4 1.95
-C04 I3 Ano4 2.2
-C06 I3 Ano4 0.25
-C08 C06 Ano4 3.25
-C08 I2 Ano4 1.85
-C07 C08 Ano4 1.55
-C07 I1 Ano4 3.15
-C07 C05 Ano4 3.25
-C02 C03 Ano4 3.6
-C03 E1 Ano4 1.4
-C05 I1 Ano4 0.95
-I1 I2 Ano4 1.1
-I2 I3 Ano4 1.45
-I3 E1 Ano4 1.95
-;
-
-#
-# Stochastic Parameters
-#
-
-# sale price at exit e in time period t
-param R := E1 Ano1 45
- E1 Ano2 60
- E1 Ano3 65
- E1 Ano4 68 ;
-
-# upper and lower bounds on wood supplied
-param Zlb := Ano1 30000
- Ano2 27000
- Ano3 28000
- Ano4 25000 ;
-param Zub := Ano1 40000
- Ano2 50000
- Ano3 52000
- Ano4 50000 ;
-param yr:=
-Ano1 1
-Ano2 1
-Ano3 1
-Ano4 1
-;
-
-set COriginNodeForCell[U1]:= C01;
-set COriginNodeForCell[U2]:= C01;
-set COriginNodeForCell[U3]:= C09;
-set COriginNodeForCell[U4]:= C01;
-set COriginNodeForCell[U5]:= C09;
-set COriginNodeForCell[U6]:= C02;
-set COriginNodeForCell[U7]:= C02;
-set COriginNodeForCell[U8]:= C09;
-set COriginNodeForCell[U9]:= C02;
-set COriginNodeForCell[U10]:= C02;
-set COriginNodeForCell[U11]:= C04;
-set COriginNodeForCell[U12]:= C03;
-set COriginNodeForCell[U13]:= C03;
-set COriginNodeForCell[U14]:= C05;
-set COriginNodeForCell[U15]:= C04;
-set COriginNodeForCell[U16]:= C04;
-set COriginNodeForCell[U17]:= C06;
-set COriginNodeForCell[U18]:= C06;
-set COriginNodeForCell[U19]:= C06;
-set COriginNodeForCell[U20]:= C08;
-set COriginNodeForCell[U21]:= C08;
-set COriginNodeForCell[U22]:= C07;
-set COriginNodeForCell[U23]:= C05;
-set COriginNodeForCell[U24]:= C05;
-set COriginNodeForCell[U25]:= C07;
-
diff --git a/examples/pysp/forestry/18scenarios/ForestChile10.dat b/examples/pysp/forestry/18scenarios/ForestChile10.dat
deleted file mode 100644
index 7e2a561396d..00000000000
--- a/examples/pysp/forestry/18scenarios/ForestChile10.dat
+++ /dev/null
@@ -1,562 +0,0 @@
-# fbv
-# mnr May 3, 2009
-
-# general nodes
-set Nodes := E1
- I1 I2 I3
- C01 C02 C03 C04 C05 C06 C07 C08 C09 ;
-
-# following the notation in the paper (note: nodes \equiv origins)
-
-#
-# Sets
-#
-
-set Times := Ano1 Ano2 Ano3 Ano4;
-
-set OriginNodes := C01 C02 C03 C04 C05 C06 C07 C08 C09 ;
-
-set IntersectionNodes := I1 I2 I3;
-
-set ExitNodes := E1;
-
-set HarvestCells := U1 U2 U3 U4 U5 U6 U7 U8 U9 U10 U11 U12 U13
- U14 U15 U16 U17 U18 U19 U20 U21 U22 U23 U24 U25;
-
-set HCellsForOrigin[C01] := U1 U2 U4 ;
-set HCellsForOrigin[C02] := U6 U7 U9 U10 ;
-set HCellsForOrigin[C03] := U12 U13 ;
-set HCellsForOrigin[C04] := U11 U15 U16 ;
-set HCellsForOrigin[C05] := U14 U23 U24 ;
-set HCellsForOrigin[C06] := U17 U18 U19 ;
-set HCellsForOrigin[C07] := U22 U25 ;
-set HCellsForOrigin[C08] := U20 U21 ;
-set HCellsForOrigin[C09] := U3 U5 U8 ;
-
-set ExistingRoads :=
-C02 C03
-C03 E1
-C05 I1
-I1 I2
-I2 I3
-I3 E1
-;
-
-set PotentialRoads :=
-C01 C09
-C01 C02
-C02 C09
-C09 C02
-C09 E1
-C09 C03
-C04 C03
-C04 I3
-C06 I3
-C08 C06
-C08 I2
-C07 C08
-C07 I1
-C07 C05
-;
-
-set AllRoads :=
-C02 C03
-C03 E1
-C05 I1
-I1 I2
-I2 I3
-I3 E1
-C01 C09
-C01 C02
-C02 C09
-C09 C02
-C09 E1
-C09 C03
-C04 C03
-C04 I3
-C06 I3
-C08 C06
-C08 I2
-C07 C08
-C07 I1
-C07 C05
-;
-
-#
-# Deterministic Parameters
-#
-
-# productivity of cell h if it is harvested in period t
-param a :=
-U1 Ano1 362
-U1 Ano2 362
-U1 Ano3 362
-U1 Ano4 362
-U2 Ano1 362
-U2 Ano2 362
-U2 Ano3 362
-U2 Ano4 362
-U3 Ano1 362
-U3 Ano2 362
-U3 Ano3 362
-U3 Ano4 362
-U4 Ano1 642
-U4 Ano2 642
-U4 Ano3 642
-U4 Ano4 642
-U5 Ano1 362
-U5 Ano2 362
-U5 Ano3 362
-U5 Ano4 362
-U6 Ano1 642
-U6 Ano2 642
-U6 Ano3 642
-U6 Ano4 642
-U7 Ano1 642
-U7 Ano2 642
-U7 Ano3 642
-U7 Ano4 642
-U8 Ano1 362
-U8 Ano2 362
-U8 Ano3 362
-U8 Ano4 362
-U9 Ano1 642
-U9 Ano2 642
-U9 Ano3 642
-U9 Ano4 642
-U10 Ano1 642
-U10 Ano2 642
-U10 Ano3 642
-U10 Ano4 642
-U11 Ano1 600
-U11 Ano2 600
-U11 Ano3 600
-U11 Ano4 600
-U12 Ano1 518
-U12 Ano2 518
-U12 Ano3 518
-U12 Ano4 518
-U13 Ano1 518
-U13 Ano2 518
-U13 Ano3 518
-U13 Ano4 518
-U14 Ano1 567
-U14 Ano2 567
-U14 Ano3 567
-U14 Ano4 567
-U15 Ano1 600
-U15 Ano2 600
-U15 Ano3 600
-U15 Ano4 600
-U16 Ano1 600
-U16 Ano2 600
-U16 Ano3 600
-U16 Ano4 600
-U17 Ano1 518
-U17 Ano2 518
-U17 Ano3 518
-U17 Ano4 518
-U18 Ano1 401
-U18 Ano2 401
-U18 Ano3 401
-U18 Ano4 401
-U19 Ano1 401
-U19 Ano2 401
-U19 Ano3 401
-U19 Ano4 401
-U20 Ano1 401
-U20 Ano2 401
-U20 Ano3 401
-U20 Ano4 401
-U21 Ano1 373
-U21 Ano2 373
-U21 Ano3 373
-U21 Ano4 373
-U22 Ano1 373
-U22 Ano2 373
-U22 Ano3 373
-U22 Ano4 373
-U23 Ano1 567
-U23 Ano2 567
-U23 Ano3 567
-U23 Ano4 567
-U24 Ano1 567
-U24 Ano2 567
-U24 Ano3 567
-U24 Ano4 567
-U25 Ano1 373
-U25 Ano2 373
-U25 Ano3 373
-U25 Ano4 373
-;
-
-# Area of cell h to be harvested
-param A :=
-U1 10.1
-U2 10.1
-U3 10.1
-U4 13.4
-U5 10.3
-U6 10.2
-U7 10.1
-U8 10.4
-U9 16.7
-U10 12.8
-U11 12.2
-U12 15.2
-U13 11.3
-U14 12.7
-U15 12.6
-U16 12.6
-U17 10
-U18 14.4
-U19 10.8
-U20 10.4
-U21 16.4
-U22 10
-U23 11.4
-U24 14.8
-U25 10.1
-;
-
-# harvesting cost of one hectare of cell h in time t
-param P :=
-U1 Ano1 8
-U1 Ano2 8
-U1 Ano3 8
-U1 Ano4 8
-U2 Ano1 8
-U2 Ano2 8
-U2 Ano3 8
-U2 Ano4 8
-U3 Ano1 8
-U3 Ano2 8
-U3 Ano3 8
-U3 Ano4 8
-U4 Ano1 8
-U4 Ano2 8
-U4 Ano3 8
-U4 Ano4 8
-U5 Ano1 8
-U5 Ano2 8
-U5 Ano3 8
-U5 Ano4 8
-U6 Ano1 8
-U6 Ano2 8
-U6 Ano3 8
-U6 Ano4 8
-U7 Ano1 8
-U7 Ano2 8
-U7 Ano3 8
-U7 Ano4 8
-U8 Ano1 8
-U8 Ano2 8
-U8 Ano3 8
-U8 Ano4 8
-U9 Ano1 8
-U9 Ano2 8
-U9 Ano3 8
-U9 Ano4 8
-U10 Ano1 8
-U10 Ano2 8
-U10 Ano3 8
-U10 Ano4 8
-U11 Ano1 8
-U11 Ano2 8
-U11 Ano3 8
-U11 Ano4 8
-U12 Ano1 8
-U12 Ano2 8
-U12 Ano3 8
-U12 Ano4 8
-U13 Ano1 8
-U13 Ano2 8
-U13 Ano3 8
-U13 Ano4 8
-U14 Ano1 8
-U14 Ano2 8
-U14 Ano3 8
-U14 Ano4 8
-U15 Ano1 8
-U15 Ano2 8
-U15 Ano3 8
-U15 Ano4 8
-U16 Ano1 8
-U16 Ano2 8
-U16 Ano3 8
-U16 Ano4 8
-U17 Ano1 8
-U17 Ano2 8
-U17 Ano3 8
-U17 Ano4 8
-U18 Ano1 8
-U18 Ano2 8
-U18 Ano3 8
-U18 Ano4 8
-U19 Ano1 8
-U19 Ano2 8
-U19 Ano3 8
-U19 Ano4 8
-U20 Ano1 8
-U20 Ano2 8
-U20 Ano3 8
-U20 Ano4 8
-U21 Ano1 8
-U21 Ano2 8
-U21 Ano3 8
-U21 Ano4 8
-U22 Ano1 8
-U22 Ano2 8
-U22 Ano3 8
-U22 Ano4 8
-U23 Ano1 8
-U23 Ano2 8
-U23 Ano3 8
-U23 Ano4 8
-U24 Ano1 8
-U24 Ano2 8
-U24 Ano3 8
-U24 Ano4 8
-U25 Ano1 8
-U25 Ano2 8
-U25 Ano3 8
-U25 Ano4 8
-;
-
-
-# prod cost
-param Q :=
-C01 Ano1 0.1
-C01 Ano2 0.1
-C01 Ano3 0.1
-C01 Ano4 0.1
-C02 Ano1 0.1
-C02 Ano2 0.1
-C02 Ano3 0.1
-C02 Ano4 0.1
-C03 Ano1 0.1
-C03 Ano2 0.1
-C03 Ano3 0.1
-C03 Ano4 0.1
-C04 Ano1 0.1
-C04 Ano2 0.1
-C04 Ano3 0.1
-C04 Ano4 0.1
-C05 Ano1 0.1
-C05 Ano2 0.1
-C05 Ano3 0.1
-C05 Ano4 0.1
-C06 Ano1 0.1
-C06 Ano2 0.1
-C06 Ano3 0.1
-C06 Ano4 0.1
-C07 Ano1 0.1
-C07 Ano2 0.1
-C07 Ano3 0.1
-C07 Ano4 0.1
-C08 Ano1 0.1
-C08 Ano2 0.1
-C08 Ano3 0.1
-C08 Ano4 0.1
-C09 Ano1 0.1
-C09 Ano2 0.1
-C09 Ano3 0.1
-C09 Ano4 0.1
-;
-
-# construction cost of one road in arc (k,l) in time t
-param C :=
-C01 C09 Ano1 1440
-C01 C09 Ano2 1309.09
-C01 C09 Ano3 1190.08
-C01 C09 Ano4 1081.89
-C01 C02 Ano1 1950
-C01 C02 Ano2 1772.73
-C01 C02 Ano3 1611.57
-C01 C02 Ano4 1465.06
-C02 C09 Ano1 1690
-C02 C09 Ano2 1536.36
-C02 C09 Ano3 1396.69
-C02 C09 Ano4 1269.72
-C09 C02 Ano1 1690
-C09 C02 Ano2 1536.36
-C09 C02 Ano3 1396.69
-C09 C02 Ano4 1269.72
-C09 E1 Ano1 2840
-C09 E1 Ano2 2581.82
-C09 E1 Ano3 2347.11
-C09 E1 Ano4 2133.73
-C09 C03 Ano1 2190
-C09 C03 Ano2 1990.91
-C09 C03 Ano3 1809.92
-C09 C03 Ano4 1645.38
-C04 C03 Ano1 1170
-C04 C03 Ano2 1063.64
-C04 C03 Ano3 966.94
-C04 C03 Ano4 879.04
-C04 I3 Ano1 1320
-C04 I3 Ano2 1200
-C04 I3 Ano3 1090.91
-C04 I3 Ano4 991.74
-C06 I3 Ano1 150
-C06 I3 Ano2 136.36
-C06 I3 Ano3 123.97
-C06 I3 Ano4 112.7
-C08 C06 Ano1 1950
-C08 C06 Ano2 1772.73
-C08 C06 Ano3 1611.57
-C08 C06 Ano4 1465.06
-C08 I2 Ano1 1110
-C08 I2 Ano2 1009.09
-C08 I2 Ano3 917.36
-C08 I2 Ano4 833.96
-C07 C08 Ano1 930
-C07 C08 Ano2 845.45
-C07 C08 Ano3 768.6
-C07 C08 Ano4 698.72
-C07 I1 Ano1 1950
-C07 I1 Ano2 1772.73
-C07 I1 Ano3 1611.57
-C07 I1 Ano4 1465.06
-C07 C05 Ano1 2130
-C07 C05 Ano2 1936.36
-C07 C05 Ano3 1760.33
-C07 C05 Ano4 1600.3
-;
-
-# unit transport cost through arc (k,l) in time t
-param D :=
-C01 C09 Ano1 1.9
-C01 C02 Ano1 3.25
-C02 C09 Ano1 2.35
-C09 C02 Ano1 2.35
-C09 E1 Ano1 4.1
-C09 C03 Ano1 3.65
-C04 C03 Ano1 1.95
-C04 I3 Ano1 2.2
-C06 I3 Ano1 0.25
-C08 C06 Ano1 3.25
-C08 I2 Ano1 1.85
-C07 C08 Ano1 1.55
-C07 I1 Ano1 3.15
-C07 C05 Ano1 3.25
-C02 C03 Ano1 3.6
-C03 E1 Ano1 1.4
-C05 I1 Ano1 0.95
-I1 I2 Ano1 1.1
-I2 I3 Ano1 1.45
-I3 E1 Ano1 1.95
-C01 C09 Ano2 1.9
-C01 C02 Ano2 3.25
-C02 C09 Ano2 2.35
-C09 C02 Ano2 2.35
-C09 E1 Ano2 4.1
-C09 C03 Ano2 3.65
-C04 C03 Ano2 1.95
-C04 I3 Ano2 2.2
-C06 I3 Ano2 0.25
-C08 C06 Ano2 3.25
-C08 I2 Ano2 1.85
-C07 C08 Ano2 1.55
-C07 I1 Ano2 3.15
-C07 C05 Ano2 3.25
-C02 C03 Ano2 3.6
-C03 E1 Ano2 1.4
-C05 I1 Ano2 0.95
-I1 I2 Ano2 1.1
-I2 I3 Ano2 1.45
-I3 E1 Ano2 1.95
-C01 C09 Ano3 1.9
-C01 C02 Ano3 3.25
-C02 C09 Ano3 2.35
-C09 C02 Ano3 2.35
-C09 E1 Ano3 4.1
-C09 C03 Ano3 3.65
-C04 C03 Ano3 1.95
-C04 I3 Ano3 2.2
-C06 I3 Ano3 0.25
-C08 C06 Ano3 3.25
-C08 I2 Ano3 1.85
-C07 C08 Ano3 1.55
-C07 I1 Ano3 3.15
-C07 C05 Ano3 3.25
-C02 C03 Ano3 3.6
-C03 E1 Ano3 1.4
-C05 I1 Ano3 0.95
-I1 I2 Ano3 1.1
-I2 I3 Ano3 1.45
-I3 E1 Ano3 1.95
-C01 C09 Ano4 1.9
-C01 C02 Ano4 3.25
-C02 C09 Ano4 2.35
-C09 C02 Ano4 2.35
-C09 E1 Ano4 4.1
-C09 C03 Ano4 3.65
-C04 C03 Ano4 1.95
-C04 I3 Ano4 2.2
-C06 I3 Ano4 0.25
-C08 C06 Ano4 3.25
-C08 I2 Ano4 1.85
-C07 C08 Ano4 1.55
-C07 I1 Ano4 3.15
-C07 C05 Ano4 3.25
-C02 C03 Ano4 3.6
-C03 E1 Ano4 1.4
-C05 I1 Ano4 0.95
-I1 I2 Ano4 1.1
-I2 I3 Ano4 1.45
-I3 E1 Ano4 1.95
-;
-
-#
-# Stochastic Parameters
-#
-
-# sale price at exit e in time period t
-param R := E1 Ano1 45
- E1 Ano2 45
- E1 Ano3 45
- E1 Ano4 42 ;
-
-# upper and lower bounds on wood supplied
-param Zlb := Ano1 30000
- Ano2 15000
- Ano3 25000
- Ano4 15000 ;
-param Zub := Ano1 40000
- Ano2 33000
- Ano3 41000
- Ano4 30000 ;
-param yr:=
-Ano1 1
-Ano2 1
-Ano3 1
-Ano4 1
-;
-
-set COriginNodeForCell[U1]:= C01;
-set COriginNodeForCell[U2]:= C01;
-set COriginNodeForCell[U3]:= C09;
-set COriginNodeForCell[U4]:= C01;
-set COriginNodeForCell[U5]:= C09;
-set COriginNodeForCell[U6]:= C02;
-set COriginNodeForCell[U7]:= C02;
-set COriginNodeForCell[U8]:= C09;
-set COriginNodeForCell[U9]:= C02;
-set COriginNodeForCell[U10]:= C02;
-set COriginNodeForCell[U11]:= C04;
-set COriginNodeForCell[U12]:= C03;
-set COriginNodeForCell[U13]:= C03;
-set COriginNodeForCell[U14]:= C05;
-set COriginNodeForCell[U15]:= C04;
-set COriginNodeForCell[U16]:= C04;
-set COriginNodeForCell[U17]:= C06;
-set COriginNodeForCell[U18]:= C06;
-set COriginNodeForCell[U19]:= C06;
-set COriginNodeForCell[U20]:= C08;
-set COriginNodeForCell[U21]:= C08;
-set COriginNodeForCell[U22]:= C07;
-set COriginNodeForCell[U23]:= C05;
-set COriginNodeForCell[U24]:= C05;
-set COriginNodeForCell[U25]:= C07;
-
diff --git a/examples/pysp/forestry/18scenarios/ForestChile11.dat b/examples/pysp/forestry/18scenarios/ForestChile11.dat
deleted file mode 100644
index 5a09335ed53..00000000000
--- a/examples/pysp/forestry/18scenarios/ForestChile11.dat
+++ /dev/null
@@ -1,562 +0,0 @@
-# fbv
-# mnr May 3, 2009
-
-# general nodes
-set Nodes := E1
- I1 I2 I3
- C01 C02 C03 C04 C05 C06 C07 C08 C09 ;
-
-# following the notation in the paper (note: nodes \equiv origins)
-
-#
-# Sets
-#
-
-set Times := Ano1 Ano2 Ano3 Ano4;
-
-set OriginNodes := C01 C02 C03 C04 C05 C06 C07 C08 C09 ;
-
-set IntersectionNodes := I1 I2 I3;
-
-set ExitNodes := E1;
-
-set HarvestCells := U1 U2 U3 U4 U5 U6 U7 U8 U9 U10 U11 U12 U13
- U14 U15 U16 U17 U18 U19 U20 U21 U22 U23 U24 U25;
-
-set HCellsForOrigin[C01] := U1 U2 U4 ;
-set HCellsForOrigin[C02] := U6 U7 U9 U10 ;
-set HCellsForOrigin[C03] := U12 U13 ;
-set HCellsForOrigin[C04] := U11 U15 U16 ;
-set HCellsForOrigin[C05] := U14 U23 U24 ;
-set HCellsForOrigin[C06] := U17 U18 U19 ;
-set HCellsForOrigin[C07] := U22 U25 ;
-set HCellsForOrigin[C08] := U20 U21 ;
-set HCellsForOrigin[C09] := U3 U5 U8 ;
-
-set ExistingRoads :=
-C02 C03
-C03 E1
-C05 I1
-I1 I2
-I2 I3
-I3 E1
-;
-
-set PotentialRoads :=
-C01 C09
-C01 C02
-C02 C09
-C09 C02
-C09 E1
-C09 C03
-C04 C03
-C04 I3
-C06 I3
-C08 C06
-C08 I2
-C07 C08
-C07 I1
-C07 C05
-;
-
-set AllRoads :=
-C02 C03
-C03 E1
-C05 I1
-I1 I2
-I2 I3
-I3 E1
-C01 C09
-C01 C02
-C02 C09
-C09 C02
-C09 E1
-C09 C03
-C04 C03
-C04 I3
-C06 I3
-C08 C06
-C08 I2
-C07 C08
-C07 I1
-C07 C05
-;
-
-#
-# Deterministic Parameters
-#
-
-# productivity of cell h if it is harvested in period t
-param a :=
-U1 Ano1 362
-U1 Ano2 362
-U1 Ano3 362
-U1 Ano4 362
-U2 Ano1 362
-U2 Ano2 362
-U2 Ano3 362
-U2 Ano4 362
-U3 Ano1 362
-U3 Ano2 362
-U3 Ano3 362
-U3 Ano4 362
-U4 Ano1 642
-U4 Ano2 642
-U4 Ano3 642
-U4 Ano4 642
-U5 Ano1 362
-U5 Ano2 362
-U5 Ano3 362
-U5 Ano4 362
-U6 Ano1 642
-U6 Ano2 642
-U6 Ano3 642
-U6 Ano4 642
-U7 Ano1 642
-U7 Ano2 642
-U7 Ano3 642
-U7 Ano4 642
-U8 Ano1 362
-U8 Ano2 362
-U8 Ano3 362
-U8 Ano4 362
-U9 Ano1 642
-U9 Ano2 642
-U9 Ano3 642
-U9 Ano4 642
-U10 Ano1 642
-U10 Ano2 642
-U10 Ano3 642
-U10 Ano4 642
-U11 Ano1 600
-U11 Ano2 600
-U11 Ano3 600
-U11 Ano4 600
-U12 Ano1 518
-U12 Ano2 518
-U12 Ano3 518
-U12 Ano4 518
-U13 Ano1 518
-U13 Ano2 518
-U13 Ano3 518
-U13 Ano4 518
-U14 Ano1 567
-U14 Ano2 567
-U14 Ano3 567
-U14 Ano4 567
-U15 Ano1 600
-U15 Ano2 600
-U15 Ano3 600
-U15 Ano4 600
-U16 Ano1 600
-U16 Ano2 600
-U16 Ano3 600
-U16 Ano4 600
-U17 Ano1 518
-U17 Ano2 518
-U17 Ano3 518
-U17 Ano4 518
-U18 Ano1 401
-U18 Ano2 401
-U18 Ano3 401
-U18 Ano4 401
-U19 Ano1 401
-U19 Ano2 401
-U19 Ano3 401
-U19 Ano4 401
-U20 Ano1 401
-U20 Ano2 401
-U20 Ano3 401
-U20 Ano4 401
-U21 Ano1 373
-U21 Ano2 373
-U21 Ano3 373
-U21 Ano4 373
-U22 Ano1 373
-U22 Ano2 373
-U22 Ano3 373
-U22 Ano4 373
-U23 Ano1 567
-U23 Ano2 567
-U23 Ano3 567
-U23 Ano4 567
-U24 Ano1 567
-U24 Ano2 567
-U24 Ano3 567
-U24 Ano4 567
-U25 Ano1 373
-U25 Ano2 373
-U25 Ano3 373
-U25 Ano4 373
-;
-
-# Area of cell h to be harvested
-param A :=
-U1 10.1
-U2 10.1
-U3 10.1
-U4 13.4
-U5 10.3
-U6 10.2
-U7 10.1
-U8 10.4
-U9 16.7
-U10 12.8
-U11 12.2
-U12 15.2
-U13 11.3
-U14 12.7
-U15 12.6
-U16 12.6
-U17 10
-U18 14.4
-U19 10.8
-U20 10.4
-U21 16.4
-U22 10
-U23 11.4
-U24 14.8
-U25 10.1
-;
-
-# harvesting cost of one hectare of cell h in time t
-param P :=
-U1 Ano1 8
-U1 Ano2 8
-U1 Ano3 8
-U1 Ano4 8
-U2 Ano1 8
-U2 Ano2 8
-U2 Ano3 8
-U2 Ano4 8
-U3 Ano1 8
-U3 Ano2 8
-U3 Ano3 8
-U3 Ano4 8
-U4 Ano1 8
-U4 Ano2 8
-U4 Ano3 8
-U4 Ano4 8
-U5 Ano1 8
-U5 Ano2 8
-U5 Ano3 8
-U5 Ano4 8
-U6 Ano1 8
-U6 Ano2 8
-U6 Ano3 8
-U6 Ano4 8
-U7 Ano1 8
-U7 Ano2 8
-U7 Ano3 8
-U7 Ano4 8
-U8 Ano1 8
-U8 Ano2 8
-U8 Ano3 8
-U8 Ano4 8
-U9 Ano1 8
-U9 Ano2 8
-U9 Ano3 8
-U9 Ano4 8
-U10 Ano1 8
-U10 Ano2 8
-U10 Ano3 8
-U10 Ano4 8
-U11 Ano1 8
-U11 Ano2 8
-U11 Ano3 8
-U11 Ano4 8
-U12 Ano1 8
-U12 Ano2 8
-U12 Ano3 8
-U12 Ano4 8
-U13 Ano1 8
-U13 Ano2 8
-U13 Ano3 8
-U13 Ano4 8
-U14 Ano1 8
-U14 Ano2 8
-U14 Ano3 8
-U14 Ano4 8
-U15 Ano1 8
-U15 Ano2 8
-U15 Ano3 8
-U15 Ano4 8
-U16 Ano1 8
-U16 Ano2 8
-U16 Ano3 8
-U16 Ano4 8
-U17 Ano1 8
-U17 Ano2 8
-U17 Ano3 8
-U17 Ano4 8
-U18 Ano1 8
-U18 Ano2 8
-U18 Ano3 8
-U18 Ano4 8
-U19 Ano1 8
-U19 Ano2 8
-U19 Ano3 8
-U19 Ano4 8
-U20 Ano1 8
-U20 Ano2 8
-U20 Ano3 8
-U20 Ano4 8
-U21 Ano1 8
-U21 Ano2 8
-U21 Ano3 8
-U21 Ano4 8
-U22 Ano1 8
-U22 Ano2 8
-U22 Ano3 8
-U22 Ano4 8
-U23 Ano1 8
-U23 Ano2 8
-U23 Ano3 8
-U23 Ano4 8
-U24 Ano1 8
-U24 Ano2 8
-U24 Ano3 8
-U24 Ano4 8
-U25 Ano1 8
-U25 Ano2 8
-U25 Ano3 8
-U25 Ano4 8
-;
-
-
-# prod cost
-param Q :=
-C01 Ano1 0.1
-C01 Ano2 0.1
-C01 Ano3 0.1
-C01 Ano4 0.1
-C02 Ano1 0.1
-C02 Ano2 0.1
-C02 Ano3 0.1
-C02 Ano4 0.1
-C03 Ano1 0.1
-C03 Ano2 0.1
-C03 Ano3 0.1
-C03 Ano4 0.1
-C04 Ano1 0.1
-C04 Ano2 0.1
-C04 Ano3 0.1
-C04 Ano4 0.1
-C05 Ano1 0.1
-C05 Ano2 0.1
-C05 Ano3 0.1
-C05 Ano4 0.1
-C06 Ano1 0.1
-C06 Ano2 0.1
-C06 Ano3 0.1
-C06 Ano4 0.1
-C07 Ano1 0.1
-C07 Ano2 0.1
-C07 Ano3 0.1
-C07 Ano4 0.1
-C08 Ano1 0.1
-C08 Ano2 0.1
-C08 Ano3 0.1
-C08 Ano4 0.1
-C09 Ano1 0.1
-C09 Ano2 0.1
-C09 Ano3 0.1
-C09 Ano4 0.1
-;
-
-# construction cost of one road in arc (k,l) in time t
-param C :=
-C01 C09 Ano1 1440
-C01 C09 Ano2 1309.09
-C01 C09 Ano3 1190.08
-C01 C09 Ano4 1081.89
-C01 C02 Ano1 1950
-C01 C02 Ano2 1772.73
-C01 C02 Ano3 1611.57
-C01 C02 Ano4 1465.06
-C02 C09 Ano1 1690
-C02 C09 Ano2 1536.36
-C02 C09 Ano3 1396.69
-C02 C09 Ano4 1269.72
-C09 C02 Ano1 1690
-C09 C02 Ano2 1536.36
-C09 C02 Ano3 1396.69
-C09 C02 Ano4 1269.72
-C09 E1 Ano1 2840
-C09 E1 Ano2 2581.82
-C09 E1 Ano3 2347.11
-C09 E1 Ano4 2133.73
-C09 C03 Ano1 2190
-C09 C03 Ano2 1990.91
-C09 C03 Ano3 1809.92
-C09 C03 Ano4 1645.38
-C04 C03 Ano1 1170
-C04 C03 Ano2 1063.64
-C04 C03 Ano3 966.94
-C04 C03 Ano4 879.04
-C04 I3 Ano1 1320
-C04 I3 Ano2 1200
-C04 I3 Ano3 1090.91
-C04 I3 Ano4 991.74
-C06 I3 Ano1 150
-C06 I3 Ano2 136.36
-C06 I3 Ano3 123.97
-C06 I3 Ano4 112.7
-C08 C06 Ano1 1950
-C08 C06 Ano2 1772.73
-C08 C06 Ano3 1611.57
-C08 C06 Ano4 1465.06
-C08 I2 Ano1 1110
-C08 I2 Ano2 1009.09
-C08 I2 Ano3 917.36
-C08 I2 Ano4 833.96
-C07 C08 Ano1 930
-C07 C08 Ano2 845.45
-C07 C08 Ano3 768.6
-C07 C08 Ano4 698.72
-C07 I1 Ano1 1950
-C07 I1 Ano2 1772.73
-C07 I1 Ano3 1611.57
-C07 I1 Ano4 1465.06
-C07 C05 Ano1 2130
-C07 C05 Ano2 1936.36
-C07 C05 Ano3 1760.33
-C07 C05 Ano4 1600.3
-;
-
-# unit transport cost through arc (k,l) in time t
-param D :=
-C01 C09 Ano1 1.9
-C01 C02 Ano1 3.25
-C02 C09 Ano1 2.35
-C09 C02 Ano1 2.35
-C09 E1 Ano1 4.1
-C09 C03 Ano1 3.65
-C04 C03 Ano1 1.95
-C04 I3 Ano1 2.2
-C06 I3 Ano1 0.25
-C08 C06 Ano1 3.25
-C08 I2 Ano1 1.85
-C07 C08 Ano1 1.55
-C07 I1 Ano1 3.15
-C07 C05 Ano1 3.25
-C02 C03 Ano1 3.6
-C03 E1 Ano1 1.4
-C05 I1 Ano1 0.95
-I1 I2 Ano1 1.1
-I2 I3 Ano1 1.45
-I3 E1 Ano1 1.95
-C01 C09 Ano2 1.9
-C01 C02 Ano2 3.25
-C02 C09 Ano2 2.35
-C09 C02 Ano2 2.35
-C09 E1 Ano2 4.1
-C09 C03 Ano2 3.65
-C04 C03 Ano2 1.95
-C04 I3 Ano2 2.2
-C06 I3 Ano2 0.25
-C08 C06 Ano2 3.25
-C08 I2 Ano2 1.85
-C07 C08 Ano2 1.55
-C07 I1 Ano2 3.15
-C07 C05 Ano2 3.25
-C02 C03 Ano2 3.6
-C03 E1 Ano2 1.4
-C05 I1 Ano2 0.95
-I1 I2 Ano2 1.1
-I2 I3 Ano2 1.45
-I3 E1 Ano2 1.95
-C01 C09 Ano3 1.9
-C01 C02 Ano3 3.25
-C02 C09 Ano3 2.35
-C09 C02 Ano3 2.35
-C09 E1 Ano3 4.1
-C09 C03 Ano3 3.65
-C04 C03 Ano3 1.95
-C04 I3 Ano3 2.2
-C06 I3 Ano3 0.25
-C08 C06 Ano3 3.25
-C08 I2 Ano3 1.85
-C07 C08 Ano3 1.55
-C07 I1 Ano3 3.15
-C07 C05 Ano3 3.25
-C02 C03 Ano3 3.6
-C03 E1 Ano3 1.4
-C05 I1 Ano3 0.95
-I1 I2 Ano3 1.1
-I2 I3 Ano3 1.45
-I3 E1 Ano3 1.95
-C01 C09 Ano4 1.9
-C01 C02 Ano4 3.25
-C02 C09 Ano4 2.35
-C09 C02 Ano4 2.35
-C09 E1 Ano4 4.1
-C09 C03 Ano4 3.65
-C04 C03 Ano4 1.95
-C04 I3 Ano4 2.2
-C06 I3 Ano4 0.25
-C08 C06 Ano4 3.25
-C08 I2 Ano4 1.85
-C07 C08 Ano4 1.55
-C07 I1 Ano4 3.15
-C07 C05 Ano4 3.25
-C02 C03 Ano4 3.6
-C03 E1 Ano4 1.4
-C05 I1 Ano4 0.95
-I1 I2 Ano4 1.1
-I2 I3 Ano4 1.45
-I3 E1 Ano4 1.95
-;
-
-#
-# Stochastic Parameters
-#
-
-# sale price at exit e in time period t
-param R := E1 Ano1 45
- E1 Ano2 45
- E1 Ano3 30
- E1 Ano4 48 ;
-
-# upper and lower bounds on wood supplied
-param Zlb := Ano1 30000
- Ano2 15000
- Ano3 20000
- Ano4 15000 ;
-param Zub := Ano1 40000
- Ano2 33000
- Ano3 32000
- Ano4 28000 ;
-param yr:=
-Ano1 1
-Ano2 1
-Ano3 1
-Ano4 1
-;
-
-set COriginNodeForCell[U1]:= C01;
-set COriginNodeForCell[U2]:= C01;
-set COriginNodeForCell[U3]:= C09;
-set COriginNodeForCell[U4]:= C01;
-set COriginNodeForCell[U5]:= C09;
-set COriginNodeForCell[U6]:= C02;
-set COriginNodeForCell[U7]:= C02;
-set COriginNodeForCell[U8]:= C09;
-set COriginNodeForCell[U9]:= C02;
-set COriginNodeForCell[U10]:= C02;
-set COriginNodeForCell[U11]:= C04;
-set COriginNodeForCell[U12]:= C03;
-set COriginNodeForCell[U13]:= C03;
-set COriginNodeForCell[U14]:= C05;
-set COriginNodeForCell[U15]:= C04;
-set COriginNodeForCell[U16]:= C04;
-set COriginNodeForCell[U17]:= C06;
-set COriginNodeForCell[U18]:= C06;
-set COriginNodeForCell[U19]:= C06;
-set COriginNodeForCell[U20]:= C08;
-set COriginNodeForCell[U21]:= C08;
-set COriginNodeForCell[U22]:= C07;
-set COriginNodeForCell[U23]:= C05;
-set COriginNodeForCell[U24]:= C05;
-set COriginNodeForCell[U25]:= C07;
-
diff --git a/examples/pysp/forestry/18scenarios/ForestChile12.dat b/examples/pysp/forestry/18scenarios/ForestChile12.dat
deleted file mode 100644
index 51710f6c54e..00000000000
--- a/examples/pysp/forestry/18scenarios/ForestChile12.dat
+++ /dev/null
@@ -1,562 +0,0 @@
-# fbv
-# mnr May 3, 2009
-
-# general nodes
-set Nodes := E1
- I1 I2 I3
- C01 C02 C03 C04 C05 C06 C07 C08 C09 ;
-
-# following the notation in the paper (note: nodes \equiv origins)
-
-#
-# Sets
-#
-
-set Times := Ano1 Ano2 Ano3 Ano4;
-
-set OriginNodes := C01 C02 C03 C04 C05 C06 C07 C08 C09 ;
-
-set IntersectionNodes := I1 I2 I3;
-
-set ExitNodes := E1;
-
-set HarvestCells := U1 U2 U3 U4 U5 U6 U7 U8 U9 U10 U11 U12 U13
- U14 U15 U16 U17 U18 U19 U20 U21 U22 U23 U24 U25;
-
-set HCellsForOrigin[C01] := U1 U2 U4 ;
-set HCellsForOrigin[C02] := U6 U7 U9 U10 ;
-set HCellsForOrigin[C03] := U12 U13 ;
-set HCellsForOrigin[C04] := U11 U15 U16 ;
-set HCellsForOrigin[C05] := U14 U23 U24 ;
-set HCellsForOrigin[C06] := U17 U18 U19 ;
-set HCellsForOrigin[C07] := U22 U25 ;
-set HCellsForOrigin[C08] := U20 U21 ;
-set HCellsForOrigin[C09] := U3 U5 U8 ;
-
-set ExistingRoads :=
-C02 C03
-C03 E1
-C05 I1
-I1 I2
-I2 I3
-I3 E1
-;
-
-set PotentialRoads :=
-C01 C09
-C01 C02
-C02 C09
-C09 C02
-C09 E1
-C09 C03
-C04 C03
-C04 I3
-C06 I3
-C08 C06
-C08 I2
-C07 C08
-C07 I1
-C07 C05
-;
-
-set AllRoads :=
-C02 C03
-C03 E1
-C05 I1
-I1 I2
-I2 I3
-I3 E1
-C01 C09
-C01 C02
-C02 C09
-C09 C02
-C09 E1
-C09 C03
-C04 C03
-C04 I3
-C06 I3
-C08 C06
-C08 I2
-C07 C08
-C07 I1
-C07 C05
-;
-
-#
-# Deterministic Parameters
-#
-
-# productivity of cell h if it is harvested in period t
-param a :=
-U1 Ano1 362
-U1 Ano2 362
-U1 Ano3 362
-U1 Ano4 362
-U2 Ano1 362
-U2 Ano2 362
-U2 Ano3 362
-U2 Ano4 362
-U3 Ano1 362
-U3 Ano2 362
-U3 Ano3 362
-U3 Ano4 362
-U4 Ano1 642
-U4 Ano2 642
-U4 Ano3 642
-U4 Ano4 642
-U5 Ano1 362
-U5 Ano2 362
-U5 Ano3 362
-U5 Ano4 362
-U6 Ano1 642
-U6 Ano2 642
-U6 Ano3 642
-U6 Ano4 642
-U7 Ano1 642
-U7 Ano2 642
-U7 Ano3 642
-U7 Ano4 642
-U8 Ano1 362
-U8 Ano2 362
-U8 Ano3 362
-U8 Ano4 362
-U9 Ano1 642
-U9 Ano2 642
-U9 Ano3 642
-U9 Ano4 642
-U10 Ano1 642
-U10 Ano2 642
-U10 Ano3 642
-U10 Ano4 642
-U11 Ano1 600
-U11 Ano2 600
-U11 Ano3 600
-U11 Ano4 600
-U12 Ano1 518
-U12 Ano2 518
-U12 Ano3 518
-U12 Ano4 518
-U13 Ano1 518
-U13 Ano2 518
-U13 Ano3 518
-U13 Ano4 518
-U14 Ano1 567
-U14 Ano2 567
-U14 Ano3 567
-U14 Ano4 567
-U15 Ano1 600
-U15 Ano2 600
-U15 Ano3 600
-U15 Ano4 600
-U16 Ano1 600
-U16 Ano2 600
-U16 Ano3 600
-U16 Ano4 600
-U17 Ano1 518
-U17 Ano2 518
-U17 Ano3 518
-U17 Ano4 518
-U18 Ano1 401
-U18 Ano2 401
-U18 Ano3 401
-U18 Ano4 401
-U19 Ano1 401
-U19 Ano2 401
-U19 Ano3 401
-U19 Ano4 401
-U20 Ano1 401
-U20 Ano2 401
-U20 Ano3 401
-U20 Ano4 401
-U21 Ano1 373
-U21 Ano2 373
-U21 Ano3 373
-U21 Ano4 373
-U22 Ano1 373
-U22 Ano2 373
-U22 Ano3 373
-U22 Ano4 373
-U23 Ano1 567
-U23 Ano2 567
-U23 Ano3 567
-U23 Ano4 567
-U24 Ano1 567
-U24 Ano2 567
-U24 Ano3 567
-U24 Ano4 567
-U25 Ano1 373
-U25 Ano2 373
-U25 Ano3 373
-U25 Ano4 373
-;
-
-# Area of cell h to be harvested
-param A :=
-U1 10.1
-U2 10.1
-U3 10.1
-U4 13.4
-U5 10.3
-U6 10.2
-U7 10.1
-U8 10.4
-U9 16.7
-U10 12.8
-U11 12.2
-U12 15.2
-U13 11.3
-U14 12.7
-U15 12.6
-U16 12.6
-U17 10
-U18 14.4
-U19 10.8
-U20 10.4
-U21 16.4
-U22 10
-U23 11.4
-U24 14.8
-U25 10.1
-;
-
-# harvesting cost of one hectare of cell h in time t
-param P :=
-U1 Ano1 8
-U1 Ano2 8
-U1 Ano3 8
-U1 Ano4 8
-U2 Ano1 8
-U2 Ano2 8
-U2 Ano3 8
-U2 Ano4 8
-U3 Ano1 8
-U3 Ano2 8
-U3 Ano3 8
-U3 Ano4 8
-U4 Ano1 8
-U4 Ano2 8
-U4 Ano3 8
-U4 Ano4 8
-U5 Ano1 8
-U5 Ano2 8
-U5 Ano3 8
-U5 Ano4 8
-U6 Ano1 8
-U6 Ano2 8
-U6 Ano3 8
-U6 Ano4 8
-U7 Ano1 8
-U7 Ano2 8
-U7 Ano3 8
-U7 Ano4 8
-U8 Ano1 8
-U8 Ano2 8
-U8 Ano3 8
-U8 Ano4 8
-U9 Ano1 8
-U9 Ano2 8
-U9 Ano3 8
-U9 Ano4 8
-U10 Ano1 8
-U10 Ano2 8
-U10 Ano3 8
-U10 Ano4 8
-U11 Ano1 8
-U11 Ano2 8
-U11 Ano3 8
-U11 Ano4 8
-U12 Ano1 8
-U12 Ano2 8
-U12 Ano3 8
-U12 Ano4 8
-U13 Ano1 8
-U13 Ano2 8
-U13 Ano3 8
-U13 Ano4 8
-U14 Ano1 8
-U14 Ano2 8
-U14 Ano3 8
-U14 Ano4 8
-U15 Ano1 8
-U15 Ano2 8
-U15 Ano3 8
-U15 Ano4 8
-U16 Ano1 8
-U16 Ano2 8
-U16 Ano3 8
-U16 Ano4 8
-U17 Ano1 8
-U17 Ano2 8
-U17 Ano3 8
-U17 Ano4 8
-U18 Ano1 8
-U18 Ano2 8
-U18 Ano3 8
-U18 Ano4 8
-U19 Ano1 8
-U19 Ano2 8
-U19 Ano3 8
-U19 Ano4 8
-U20 Ano1 8
-U20 Ano2 8
-U20 Ano3 8
-U20 Ano4 8
-U21 Ano1 8
-U21 Ano2 8
-U21 Ano3 8
-U21 Ano4 8
-U22 Ano1 8
-U22 Ano2 8
-U22 Ano3 8
-U22 Ano4 8
-U23 Ano1 8
-U23 Ano2 8
-U23 Ano3 8
-U23 Ano4 8
-U24 Ano1 8
-U24 Ano2 8
-U24 Ano3 8
-U24 Ano4 8
-U25 Ano1 8
-U25 Ano2 8
-U25 Ano3 8
-U25 Ano4 8
-;
-
-
-# prod cost
-param Q :=
-C01 Ano1 0.1
-C01 Ano2 0.1
-C01 Ano3 0.1
-C01 Ano4 0.1
-C02 Ano1 0.1
-C02 Ano2 0.1
-C02 Ano3 0.1
-C02 Ano4 0.1
-C03 Ano1 0.1
-C03 Ano2 0.1
-C03 Ano3 0.1
-C03 Ano4 0.1
-C04 Ano1 0.1
-C04 Ano2 0.1
-C04 Ano3 0.1
-C04 Ano4 0.1
-C05 Ano1 0.1
-C05 Ano2 0.1
-C05 Ano3 0.1
-C05 Ano4 0.1
-C06 Ano1 0.1
-C06 Ano2 0.1
-C06 Ano3 0.1
-C06 Ano4 0.1
-C07 Ano1 0.1
-C07 Ano2 0.1
-C07 Ano3 0.1
-C07 Ano4 0.1
-C08 Ano1 0.1
-C08 Ano2 0.1
-C08 Ano3 0.1
-C08 Ano4 0.1
-C09 Ano1 0.1
-C09 Ano2 0.1
-C09 Ano3 0.1
-C09 Ano4 0.1
-;
-
-# construction cost of one road in arc (k,l) in time t
-param C :=
-C01 C09 Ano1 1440
-C01 C09 Ano2 1309.09
-C01 C09 Ano3 1190.08
-C01 C09 Ano4 1081.89
-C01 C02 Ano1 1950
-C01 C02 Ano2 1772.73
-C01 C02 Ano3 1611.57
-C01 C02 Ano4 1465.06
-C02 C09 Ano1 1690
-C02 C09 Ano2 1536.36
-C02 C09 Ano3 1396.69
-C02 C09 Ano4 1269.72
-C09 C02 Ano1 1690
-C09 C02 Ano2 1536.36
-C09 C02 Ano3 1396.69
-C09 C02 Ano4 1269.72
-C09 E1 Ano1 2840
-C09 E1 Ano2 2581.82
-C09 E1 Ano3 2347.11
-C09 E1 Ano4 2133.73
-C09 C03 Ano1 2190
-C09 C03 Ano2 1990.91
-C09 C03 Ano3 1809.92
-C09 C03 Ano4 1645.38
-C04 C03 Ano1 1170
-C04 C03 Ano2 1063.64
-C04 C03 Ano3 966.94
-C04 C03 Ano4 879.04
-C04 I3 Ano1 1320
-C04 I3 Ano2 1200
-C04 I3 Ano3 1090.91
-C04 I3 Ano4 991.74
-C06 I3 Ano1 150
-C06 I3 Ano2 136.36
-C06 I3 Ano3 123.97
-C06 I3 Ano4 112.7
-C08 C06 Ano1 1950
-C08 C06 Ano2 1772.73
-C08 C06 Ano3 1611.57
-C08 C06 Ano4 1465.06
-C08 I2 Ano1 1110
-C08 I2 Ano2 1009.09
-C08 I2 Ano3 917.36
-C08 I2 Ano4 833.96
-C07 C08 Ano1 930
-C07 C08 Ano2 845.45
-C07 C08 Ano3 768.6
-C07 C08 Ano4 698.72
-C07 I1 Ano1 1950
-C07 I1 Ano2 1772.73
-C07 I1 Ano3 1611.57
-C07 I1 Ano4 1465.06
-C07 C05 Ano1 2130
-C07 C05 Ano2 1936.36
-C07 C05 Ano3 1760.33
-C07 C05 Ano4 1600.3
-;
-
-# unit transport cost through arc (k,l) in time t
-param D :=
-C01 C09 Ano1 1.9
-C01 C02 Ano1 3.25
-C02 C09 Ano1 2.35
-C09 C02 Ano1 2.35
-C09 E1 Ano1 4.1
-C09 C03 Ano1 3.65
-C04 C03 Ano1 1.95
-C04 I3 Ano1 2.2
-C06 I3 Ano1 0.25
-C08 C06 Ano1 3.25
-C08 I2 Ano1 1.85
-C07 C08 Ano1 1.55
-C07 I1 Ano1 3.15
-C07 C05 Ano1 3.25
-C02 C03 Ano1 3.6
-C03 E1 Ano1 1.4
-C05 I1 Ano1 0.95
-I1 I2 Ano1 1.1
-I2 I3 Ano1 1.45
-I3 E1 Ano1 1.95
-C01 C09 Ano2 1.9
-C01 C02 Ano2 3.25
-C02 C09 Ano2 2.35
-C09 C02 Ano2 2.35
-C09 E1 Ano2 4.1
-C09 C03 Ano2 3.65
-C04 C03 Ano2 1.95
-C04 I3 Ano2 2.2
-C06 I3 Ano2 0.25
-C08 C06 Ano2 3.25
-C08 I2 Ano2 1.85
-C07 C08 Ano2 1.55
-C07 I1 Ano2 3.15
-C07 C05 Ano2 3.25
-C02 C03 Ano2 3.6
-C03 E1 Ano2 1.4
-C05 I1 Ano2 0.95
-I1 I2 Ano2 1.1
-I2 I3 Ano2 1.45
-I3 E1 Ano2 1.95
-C01 C09 Ano3 1.9
-C01 C02 Ano3 3.25
-C02 C09 Ano3 2.35
-C09 C02 Ano3 2.35
-C09 E1 Ano3 4.1
-C09 C03 Ano3 3.65
-C04 C03 Ano3 1.95
-C04 I3 Ano3 2.2
-C06 I3 Ano3 0.25
-C08 C06 Ano3 3.25
-C08 I2 Ano3 1.85
-C07 C08 Ano3 1.55
-C07 I1 Ano3 3.15
-C07 C05 Ano3 3.25
-C02 C03 Ano3 3.6
-C03 E1 Ano3 1.4
-C05 I1 Ano3 0.95
-I1 I2 Ano3 1.1
-I2 I3 Ano3 1.45
-I3 E1 Ano3 1.95
-C01 C09 Ano4 1.9
-C01 C02 Ano4 3.25
-C02 C09 Ano4 2.35
-C09 C02 Ano4 2.35
-C09 E1 Ano4 4.1
-C09 C03 Ano4 3.65
-C04 C03 Ano4 1.95
-C04 I3 Ano4 2.2
-C06 I3 Ano4 0.25
-C08 C06 Ano4 3.25
-C08 I2 Ano4 1.85
-C07 C08 Ano4 1.55
-C07 I1 Ano4 3.15
-C07 C05 Ano4 3.25
-C02 C03 Ano4 3.6
-C03 E1 Ano4 1.4
-C05 I1 Ano4 0.95
-I1 I2 Ano4 1.1
-I2 I3 Ano4 1.45
-I3 E1 Ano4 1.95
-;
-
-#
-# Stochastic Parameters
-#
-
-# sale price at exit e in time period t
-param R := E1 Ano1 45
- E1 Ano2 45
- E1 Ano3 30
- E1 Ano4 42 ;
-
-# upper and lower bounds on wood supplied
-param Zlb := Ano1 30000
- Ano2 15000
- Ano3 20000
- Ano4 13000 ;
-param Zub := Ano1 40000
- Ano2 33000
- Ano3 32000
- Ano4 24000 ;
-param yr:=
-Ano1 1
-Ano2 1
-Ano3 1
-Ano4 1
-;
-
-set COriginNodeForCell[U1]:= C01;
-set COriginNodeForCell[U2]:= C01;
-set COriginNodeForCell[U3]:= C09;
-set COriginNodeForCell[U4]:= C01;
-set COriginNodeForCell[U5]:= C09;
-set COriginNodeForCell[U6]:= C02;
-set COriginNodeForCell[U7]:= C02;
-set COriginNodeForCell[U8]:= C09;
-set COriginNodeForCell[U9]:= C02;
-set COriginNodeForCell[U10]:= C02;
-set COriginNodeForCell[U11]:= C04;
-set COriginNodeForCell[U12]:= C03;
-set COriginNodeForCell[U13]:= C03;
-set COriginNodeForCell[U14]:= C05;
-set COriginNodeForCell[U15]:= C04;
-set COriginNodeForCell[U16]:= C04;
-set COriginNodeForCell[U17]:= C06;
-set COriginNodeForCell[U18]:= C06;
-set COriginNodeForCell[U19]:= C06;
-set COriginNodeForCell[U20]:= C08;
-set COriginNodeForCell[U21]:= C08;
-set COriginNodeForCell[U22]:= C07;
-set COriginNodeForCell[U23]:= C05;
-set COriginNodeForCell[U24]:= C05;
-set COriginNodeForCell[U25]:= C07;
-
diff --git a/examples/pysp/forestry/18scenarios/ForestChile13.dat b/examples/pysp/forestry/18scenarios/ForestChile13.dat
deleted file mode 100644
index 1983553a9fe..00000000000
--- a/examples/pysp/forestry/18scenarios/ForestChile13.dat
+++ /dev/null
@@ -1,562 +0,0 @@
-# fbv
-# mnr May 3, 2009
-
-# general nodes
-set Nodes := E1
- I1 I2 I3
- C01 C02 C03 C04 C05 C06 C07 C08 C09 ;
-
-# following the notation in the paper (note: nodes \equiv origins)
-
-#
-# Sets
-#
-
-set Times := Ano1 Ano2 Ano3 Ano4;
-
-set OriginNodes := C01 C02 C03 C04 C05 C06 C07 C08 C09 ;
-
-set IntersectionNodes := I1 I2 I3;
-
-set ExitNodes := E1;
-
-set HarvestCells := U1 U2 U3 U4 U5 U6 U7 U8 U9 U10 U11 U12 U13
- U14 U15 U16 U17 U18 U19 U20 U21 U22 U23 U24 U25;
-
-set HCellsForOrigin[C01] := U1 U2 U4 ;
-set HCellsForOrigin[C02] := U6 U7 U9 U10 ;
-set HCellsForOrigin[C03] := U12 U13 ;
-set HCellsForOrigin[C04] := U11 U15 U16 ;
-set HCellsForOrigin[C05] := U14 U23 U24 ;
-set HCellsForOrigin[C06] := U17 U18 U19 ;
-set HCellsForOrigin[C07] := U22 U25 ;
-set HCellsForOrigin[C08] := U20 U21 ;
-set HCellsForOrigin[C09] := U3 U5 U8 ;
-
-set ExistingRoads :=
-C02 C03
-C03 E1
-C05 I1
-I1 I2
-I2 I3
-I3 E1
-;
-
-set PotentialRoads :=
-C01 C09
-C01 C02
-C02 C09
-C09 C02
-C09 E1
-C09 C03
-C04 C03
-C04 I3
-C06 I3
-C08 C06
-C08 I2
-C07 C08
-C07 I1
-C07 C05
-;
-
-set AllRoads :=
-C02 C03
-C03 E1
-C05 I1
-I1 I2
-I2 I3
-I3 E1
-C01 C09
-C01 C02
-C02 C09
-C09 C02
-C09 E1
-C09 C03
-C04 C03
-C04 I3
-C06 I3
-C08 C06
-C08 I2
-C07 C08
-C07 I1
-C07 C05
-;
-
-#
-# Deterministic Parameters
-#
-
-# productivity of cell h if it is harvested in period t
-param a :=
-U1 Ano1 362
-U1 Ano2 362
-U1 Ano3 362
-U1 Ano4 362
-U2 Ano1 362
-U2 Ano2 362
-U2 Ano3 362
-U2 Ano4 362
-U3 Ano1 362
-U3 Ano2 362
-U3 Ano3 362
-U3 Ano4 362
-U4 Ano1 642
-U4 Ano2 642
-U4 Ano3 642
-U4 Ano4 642
-U5 Ano1 362
-U5 Ano2 362
-U5 Ano3 362
-U5 Ano4 362
-U6 Ano1 642
-U6 Ano2 642
-U6 Ano3 642
-U6 Ano4 642
-U7 Ano1 642
-U7 Ano2 642
-U7 Ano3 642
-U7 Ano4 642
-U8 Ano1 362
-U8 Ano2 362
-U8 Ano3 362
-U8 Ano4 362
-U9 Ano1 642
-U9 Ano2 642
-U9 Ano3 642
-U9 Ano4 642
-U10 Ano1 642
-U10 Ano2 642
-U10 Ano3 642
-U10 Ano4 642
-U11 Ano1 600
-U11 Ano2 600
-U11 Ano3 600
-U11 Ano4 600
-U12 Ano1 518
-U12 Ano2 518
-U12 Ano3 518
-U12 Ano4 518
-U13 Ano1 518
-U13 Ano2 518
-U13 Ano3 518
-U13 Ano4 518
-U14 Ano1 567
-U14 Ano2 567
-U14 Ano3 567
-U14 Ano4 567
-U15 Ano1 600
-U15 Ano2 600
-U15 Ano3 600
-U15 Ano4 600
-U16 Ano1 600
-U16 Ano2 600
-U16 Ano3 600
-U16 Ano4 600
-U17 Ano1 518
-U17 Ano2 518
-U17 Ano3 518
-U17 Ano4 518
-U18 Ano1 401
-U18 Ano2 401
-U18 Ano3 401
-U18 Ano4 401
-U19 Ano1 401
-U19 Ano2 401
-U19 Ano3 401
-U19 Ano4 401
-U20 Ano1 401
-U20 Ano2 401
-U20 Ano3 401
-U20 Ano4 401
-U21 Ano1 373
-U21 Ano2 373
-U21 Ano3 373
-U21 Ano4 373
-U22 Ano1 373
-U22 Ano2 373
-U22 Ano3 373
-U22 Ano4 373
-U23 Ano1 567
-U23 Ano2 567
-U23 Ano3 567
-U23 Ano4 567
-U24 Ano1 567
-U24 Ano2 567
-U24 Ano3 567
-U24 Ano4 567
-U25 Ano1 373
-U25 Ano2 373
-U25 Ano3 373
-U25 Ano4 373
-;
-
-# Area of cell h to be harvested
-param A :=
-U1 10.1
-U2 10.1
-U3 10.1
-U4 13.4
-U5 10.3
-U6 10.2
-U7 10.1
-U8 10.4
-U9 16.7
-U10 12.8
-U11 12.2
-U12 15.2
-U13 11.3
-U14 12.7
-U15 12.6
-U16 12.6
-U17 10
-U18 14.4
-U19 10.8
-U20 10.4
-U21 16.4
-U22 10
-U23 11.4
-U24 14.8
-U25 10.1
-;
-
-# harvesting cost of one hectare of cell h in time t
-param P :=
-U1 Ano1 8
-U1 Ano2 8
-U1 Ano3 8
-U1 Ano4 8
-U2 Ano1 8
-U2 Ano2 8
-U2 Ano3 8
-U2 Ano4 8
-U3 Ano1 8
-U3 Ano2 8
-U3 Ano3 8
-U3 Ano4 8
-U4 Ano1 8
-U4 Ano2 8
-U4 Ano3 8
-U4 Ano4 8
-U5 Ano1 8
-U5 Ano2 8
-U5 Ano3 8
-U5 Ano4 8
-U6 Ano1 8
-U6 Ano2 8
-U6 Ano3 8
-U6 Ano4 8
-U7 Ano1 8
-U7 Ano2 8
-U7 Ano3 8
-U7 Ano4 8
-U8 Ano1 8
-U8 Ano2 8
-U8 Ano3 8
-U8 Ano4 8
-U9 Ano1 8
-U9 Ano2 8
-U9 Ano3 8
-U9 Ano4 8
-U10 Ano1 8
-U10 Ano2 8
-U10 Ano3 8
-U10 Ano4 8
-U11 Ano1 8
-U11 Ano2 8
-U11 Ano3 8
-U11 Ano4 8
-U12 Ano1 8
-U12 Ano2 8
-U12 Ano3 8
-U12 Ano4 8
-U13 Ano1 8
-U13 Ano2 8
-U13 Ano3 8
-U13 Ano4 8
-U14 Ano1 8
-U14 Ano2 8
-U14 Ano3 8
-U14 Ano4 8
-U15 Ano1 8
-U15 Ano2 8
-U15 Ano3 8
-U15 Ano4 8
-U16 Ano1 8
-U16 Ano2 8
-U16 Ano3 8
-U16 Ano4 8
-U17 Ano1 8
-U17 Ano2 8
-U17 Ano3 8
-U17 Ano4 8
-U18 Ano1 8
-U18 Ano2 8
-U18 Ano3 8
-U18 Ano4 8
-U19 Ano1 8
-U19 Ano2 8
-U19 Ano3 8
-U19 Ano4 8
-U20 Ano1 8
-U20 Ano2 8
-U20 Ano3 8
-U20 Ano4 8
-U21 Ano1 8
-U21 Ano2 8
-U21 Ano3 8
-U21 Ano4 8
-U22 Ano1 8
-U22 Ano2 8
-U22 Ano3 8
-U22 Ano4 8
-U23 Ano1 8
-U23 Ano2 8
-U23 Ano3 8
-U23 Ano4 8
-U24 Ano1 8
-U24 Ano2 8
-U24 Ano3 8
-U24 Ano4 8
-U25 Ano1 8
-U25 Ano2 8
-U25 Ano3 8
-U25 Ano4 8
-;
-
-
-# prod cost
-param Q :=
-C01 Ano1 0.1
-C01 Ano2 0.1
-C01 Ano3 0.1
-C01 Ano4 0.1
-C02 Ano1 0.1
-C02 Ano2 0.1
-C02 Ano3 0.1
-C02 Ano4 0.1
-C03 Ano1 0.1
-C03 Ano2 0.1
-C03 Ano3 0.1
-C03 Ano4 0.1
-C04 Ano1 0.1
-C04 Ano2 0.1
-C04 Ano3 0.1
-C04 Ano4 0.1
-C05 Ano1 0.1
-C05 Ano2 0.1
-C05 Ano3 0.1
-C05 Ano4 0.1
-C06 Ano1 0.1
-C06 Ano2 0.1
-C06 Ano3 0.1
-C06 Ano4 0.1
-C07 Ano1 0.1
-C07 Ano2 0.1
-C07 Ano3 0.1
-C07 Ano4 0.1
-C08 Ano1 0.1
-C08 Ano2 0.1
-C08 Ano3 0.1
-C08 Ano4 0.1
-C09 Ano1 0.1
-C09 Ano2 0.1
-C09 Ano3 0.1
-C09 Ano4 0.1
-;
-
-# construction cost of one road in arc (k,l) in time t
-param C :=
-C01 C09 Ano1 1440
-C01 C09 Ano2 1309.09
-C01 C09 Ano3 1190.08
-C01 C09 Ano4 1081.89
-C01 C02 Ano1 1950
-C01 C02 Ano2 1772.73
-C01 C02 Ano3 1611.57
-C01 C02 Ano4 1465.06
-C02 C09 Ano1 1690
-C02 C09 Ano2 1536.36
-C02 C09 Ano3 1396.69
-C02 C09 Ano4 1269.72
-C09 C02 Ano1 1690
-C09 C02 Ano2 1536.36
-C09 C02 Ano3 1396.69
-C09 C02 Ano4 1269.72
-C09 E1 Ano1 2840
-C09 E1 Ano2 2581.82
-C09 E1 Ano3 2347.11
-C09 E1 Ano4 2133.73
-C09 C03 Ano1 2190
-C09 C03 Ano2 1990.91
-C09 C03 Ano3 1809.92
-C09 C03 Ano4 1645.38
-C04 C03 Ano1 1170
-C04 C03 Ano2 1063.64
-C04 C03 Ano3 966.94
-C04 C03 Ano4 879.04
-C04 I3 Ano1 1320
-C04 I3 Ano2 1200
-C04 I3 Ano3 1090.91
-C04 I3 Ano4 991.74
-C06 I3 Ano1 150
-C06 I3 Ano2 136.36
-C06 I3 Ano3 123.97
-C06 I3 Ano4 112.7
-C08 C06 Ano1 1950
-C08 C06 Ano2 1772.73
-C08 C06 Ano3 1611.57
-C08 C06 Ano4 1465.06
-C08 I2 Ano1 1110
-C08 I2 Ano2 1009.09
-C08 I2 Ano3 917.36
-C08 I2 Ano4 833.96
-C07 C08 Ano1 930
-C07 C08 Ano2 845.45
-C07 C08 Ano3 768.6
-C07 C08 Ano4 698.72
-C07 I1 Ano1 1950
-C07 I1 Ano2 1772.73
-C07 I1 Ano3 1611.57
-C07 I1 Ano4 1465.06
-C07 C05 Ano1 2130
-C07 C05 Ano2 1936.36
-C07 C05 Ano3 1760.33
-C07 C05 Ano4 1600.3
-;
-
-# unit transport cost through arc (k,l) in time t
-param D :=
-C01 C09 Ano1 1.9
-C01 C02 Ano1 3.25
-C02 C09 Ano1 2.35
-C09 C02 Ano1 2.35
-C09 E1 Ano1 4.1
-C09 C03 Ano1 3.65
-C04 C03 Ano1 1.95
-C04 I3 Ano1 2.2
-C06 I3 Ano1 0.25
-C08 C06 Ano1 3.25
-C08 I2 Ano1 1.85
-C07 C08 Ano1 1.55
-C07 I1 Ano1 3.15
-C07 C05 Ano1 3.25
-C02 C03 Ano1 3.6
-C03 E1 Ano1 1.4
-C05 I1 Ano1 0.95
-I1 I2 Ano1 1.1
-I2 I3 Ano1 1.45
-I3 E1 Ano1 1.95
-C01 C09 Ano2 1.9
-C01 C02 Ano2 3.25
-C02 C09 Ano2 2.35
-C09 C02 Ano2 2.35
-C09 E1 Ano2 4.1
-C09 C03 Ano2 3.65
-C04 C03 Ano2 1.95
-C04 I3 Ano2 2.2
-C06 I3 Ano2 0.25
-C08 C06 Ano2 3.25
-C08 I2 Ano2 1.85
-C07 C08 Ano2 1.55
-C07 I1 Ano2 3.15
-C07 C05 Ano2 3.25
-C02 C03 Ano2 3.6
-C03 E1 Ano2 1.4
-C05 I1 Ano2 0.95
-I1 I2 Ano2 1.1
-I2 I3 Ano2 1.45
-I3 E1 Ano2 1.95
-C01 C09 Ano3 1.9
-C01 C02 Ano3 3.25
-C02 C09 Ano3 2.35
-C09 C02 Ano3 2.35
-C09 E1 Ano3 4.1
-C09 C03 Ano3 3.65
-C04 C03 Ano3 1.95
-C04 I3 Ano3 2.2
-C06 I3 Ano3 0.25
-C08 C06 Ano3 3.25
-C08 I2 Ano3 1.85
-C07 C08 Ano3 1.55
-C07 I1 Ano3 3.15
-C07 C05 Ano3 3.25
-C02 C03 Ano3 3.6
-C03 E1 Ano3 1.4
-C05 I1 Ano3 0.95
-I1 I2 Ano3 1.1
-I2 I3 Ano3 1.45
-I3 E1 Ano3 1.95
-C01 C09 Ano4 1.9
-C01 C02 Ano4 3.25
-C02 C09 Ano4 2.35
-C09 C02 Ano4 2.35
-C09 E1 Ano4 4.1
-C09 C03 Ano4 3.65
-C04 C03 Ano4 1.95
-C04 I3 Ano4 2.2
-C06 I3 Ano4 0.25
-C08 C06 Ano4 3.25
-C08 I2 Ano4 1.85
-C07 C08 Ano4 1.55
-C07 I1 Ano4 3.15
-C07 C05 Ano4 3.25
-C02 C03 Ano4 3.6
-C03 E1 Ano4 1.4
-C05 I1 Ano4 0.95
-I1 I2 Ano4 1.1
-I2 I3 Ano4 1.45
-I3 E1 Ano4 1.95
-;
-
-#
-# Stochastic Parameters
-#
-
-# sale price at exit e in time period t
-param R := E1 Ano1 45
- E1 Ano2 30
- E1 Ano3 45
- E1 Ano4 40 ;
-
-# upper and lower bounds on wood supplied
-param Zlb := Ano1 30000
- Ano2 10000
- Ano3 22000
- Ano4 12000 ;
-param Zub := Ano1 40000
- Ano2 18000
- Ano3 40000
- Ano4 18000 ;
-param yr:=
-Ano1 1
-Ano2 1
-Ano3 1
-Ano4 1
-;
-
-set COriginNodeForCell[U1]:= C01;
-set COriginNodeForCell[U2]:= C01;
-set COriginNodeForCell[U3]:= C09;
-set COriginNodeForCell[U4]:= C01;
-set COriginNodeForCell[U5]:= C09;
-set COriginNodeForCell[U6]:= C02;
-set COriginNodeForCell[U7]:= C02;
-set COriginNodeForCell[U8]:= C09;
-set COriginNodeForCell[U9]:= C02;
-set COriginNodeForCell[U10]:= C02;
-set COriginNodeForCell[U11]:= C04;
-set COriginNodeForCell[U12]:= C03;
-set COriginNodeForCell[U13]:= C03;
-set COriginNodeForCell[U14]:= C05;
-set COriginNodeForCell[U15]:= C04;
-set COriginNodeForCell[U16]:= C04;
-set COriginNodeForCell[U17]:= C06;
-set COriginNodeForCell[U18]:= C06;
-set COriginNodeForCell[U19]:= C06;
-set COriginNodeForCell[U20]:= C08;
-set COriginNodeForCell[U21]:= C08;
-set COriginNodeForCell[U22]:= C07;
-set COriginNodeForCell[U23]:= C05;
-set COriginNodeForCell[U24]:= C05;
-set COriginNodeForCell[U25]:= C07;
-
diff --git a/examples/pysp/forestry/18scenarios/ForestChile14.dat b/examples/pysp/forestry/18scenarios/ForestChile14.dat
deleted file mode 100644
index 8870df44ef1..00000000000
--- a/examples/pysp/forestry/18scenarios/ForestChile14.dat
+++ /dev/null
@@ -1,562 +0,0 @@
-# fbv
-# mnr May 3, 2009
-
-# general nodes
-set Nodes := E1
- I1 I2 I3
- C01 C02 C03 C04 C05 C06 C07 C08 C09 ;
-
-# following the notation in the paper (note: nodes \equiv origins)
-
-#
-# Sets
-#
-
-set Times := Ano1 Ano2 Ano3 Ano4;
-
-set OriginNodes := C01 C02 C03 C04 C05 C06 C07 C08 C09 ;
-
-set IntersectionNodes := I1 I2 I3;
-
-set ExitNodes := E1;
-
-set HarvestCells := U1 U2 U3 U4 U5 U6 U7 U8 U9 U10 U11 U12 U13
- U14 U15 U16 U17 U18 U19 U20 U21 U22 U23 U24 U25;
-
-set HCellsForOrigin[C01] := U1 U2 U4 ;
-set HCellsForOrigin[C02] := U6 U7 U9 U10 ;
-set HCellsForOrigin[C03] := U12 U13 ;
-set HCellsForOrigin[C04] := U11 U15 U16 ;
-set HCellsForOrigin[C05] := U14 U23 U24 ;
-set HCellsForOrigin[C06] := U17 U18 U19 ;
-set HCellsForOrigin[C07] := U22 U25 ;
-set HCellsForOrigin[C08] := U20 U21 ;
-set HCellsForOrigin[C09] := U3 U5 U8 ;
-
-set ExistingRoads :=
-C02 C03
-C03 E1
-C05 I1
-I1 I2
-I2 I3
-I3 E1
-;
-
-set PotentialRoads :=
-C01 C09
-C01 C02
-C02 C09
-C09 C02
-C09 E1
-C09 C03
-C04 C03
-C04 I3
-C06 I3
-C08 C06
-C08 I2
-C07 C08
-C07 I1
-C07 C05
-;
-
-set AllRoads :=
-C02 C03
-C03 E1
-C05 I1
-I1 I2
-I2 I3
-I3 E1
-C01 C09
-C01 C02
-C02 C09
-C09 C02
-C09 E1
-C09 C03
-C04 C03
-C04 I3
-C06 I3
-C08 C06
-C08 I2
-C07 C08
-C07 I1
-C07 C05
-;
-
-#
-# Deterministic Parameters
-#
-
-# productivity of cell h if it is harvested in period t
-param a :=
-U1 Ano1 362
-U1 Ano2 362
-U1 Ano3 362
-U1 Ano4 362
-U2 Ano1 362
-U2 Ano2 362
-U2 Ano3 362
-U2 Ano4 362
-U3 Ano1 362
-U3 Ano2 362
-U3 Ano3 362
-U3 Ano4 362
-U4 Ano1 642
-U4 Ano2 642
-U4 Ano3 642
-U4 Ano4 642
-U5 Ano1 362
-U5 Ano2 362
-U5 Ano3 362
-U5 Ano4 362
-U6 Ano1 642
-U6 Ano2 642
-U6 Ano3 642
-U6 Ano4 642
-U7 Ano1 642
-U7 Ano2 642
-U7 Ano3 642
-U7 Ano4 642
-U8 Ano1 362
-U8 Ano2 362
-U8 Ano3 362
-U8 Ano4 362
-U9 Ano1 642
-U9 Ano2 642
-U9 Ano3 642
-U9 Ano4 642
-U10 Ano1 642
-U10 Ano2 642
-U10 Ano3 642
-U10 Ano4 642
-U11 Ano1 600
-U11 Ano2 600
-U11 Ano3 600
-U11 Ano4 600
-U12 Ano1 518
-U12 Ano2 518
-U12 Ano3 518
-U12 Ano4 518
-U13 Ano1 518
-U13 Ano2 518
-U13 Ano3 518
-U13 Ano4 518
-U14 Ano1 567
-U14 Ano2 567
-U14 Ano3 567
-U14 Ano4 567
-U15 Ano1 600
-U15 Ano2 600
-U15 Ano3 600
-U15 Ano4 600
-U16 Ano1 600
-U16 Ano2 600
-U16 Ano3 600
-U16 Ano4 600
-U17 Ano1 518
-U17 Ano2 518
-U17 Ano3 518
-U17 Ano4 518
-U18 Ano1 401
-U18 Ano2 401
-U18 Ano3 401
-U18 Ano4 401
-U19 Ano1 401
-U19 Ano2 401
-U19 Ano3 401
-U19 Ano4 401
-U20 Ano1 401
-U20 Ano2 401
-U20 Ano3 401
-U20 Ano4 401
-U21 Ano1 373
-U21 Ano2 373
-U21 Ano3 373
-U21 Ano4 373
-U22 Ano1 373
-U22 Ano2 373
-U22 Ano3 373
-U22 Ano4 373
-U23 Ano1 567
-U23 Ano2 567
-U23 Ano3 567
-U23 Ano4 567
-U24 Ano1 567
-U24 Ano2 567
-U24 Ano3 567
-U24 Ano4 567
-U25 Ano1 373
-U25 Ano2 373
-U25 Ano3 373
-U25 Ano4 373
-;
-
-# Area of cell h to be harvested
-param A :=
-U1 10.1
-U2 10.1
-U3 10.1
-U4 13.4
-U5 10.3
-U6 10.2
-U7 10.1
-U8 10.4
-U9 16.7
-U10 12.8
-U11 12.2
-U12 15.2
-U13 11.3
-U14 12.7
-U15 12.6
-U16 12.6
-U17 10
-U18 14.4
-U19 10.8
-U20 10.4
-U21 16.4
-U22 10
-U23 11.4
-U24 14.8
-U25 10.1
-;
-
-# harvesting cost of one hectare of cell h in time t
-param P :=
-U1 Ano1 8
-U1 Ano2 8
-U1 Ano3 8
-U1 Ano4 8
-U2 Ano1 8
-U2 Ano2 8
-U2 Ano3 8
-U2 Ano4 8
-U3 Ano1 8
-U3 Ano2 8
-U3 Ano3 8
-U3 Ano4 8
-U4 Ano1 8
-U4 Ano2 8
-U4 Ano3 8
-U4 Ano4 8
-U5 Ano1 8
-U5 Ano2 8
-U5 Ano3 8
-U5 Ano4 8
-U6 Ano1 8
-U6 Ano2 8
-U6 Ano3 8
-U6 Ano4 8
-U7 Ano1 8
-U7 Ano2 8
-U7 Ano3 8
-U7 Ano4 8
-U8 Ano1 8
-U8 Ano2 8
-U8 Ano3 8
-U8 Ano4 8
-U9 Ano1 8
-U9 Ano2 8
-U9 Ano3 8
-U9 Ano4 8
-U10 Ano1 8
-U10 Ano2 8
-U10 Ano3 8
-U10 Ano4 8
-U11 Ano1 8
-U11 Ano2 8
-U11 Ano3 8
-U11 Ano4 8
-U12 Ano1 8
-U12 Ano2 8
-U12 Ano3 8
-U12 Ano4 8
-U13 Ano1 8
-U13 Ano2 8
-U13 Ano3 8
-U13 Ano4 8
-U14 Ano1 8
-U14 Ano2 8
-U14 Ano3 8
-U14 Ano4 8
-U15 Ano1 8
-U15 Ano2 8
-U15 Ano3 8
-U15 Ano4 8
-U16 Ano1 8
-U16 Ano2 8
-U16 Ano3 8
-U16 Ano4 8
-U17 Ano1 8
-U17 Ano2 8
-U17 Ano3 8
-U17 Ano4 8
-U18 Ano1 8
-U18 Ano2 8
-U18 Ano3 8
-U18 Ano4 8
-U19 Ano1 8
-U19 Ano2 8
-U19 Ano3 8
-U19 Ano4 8
-U20 Ano1 8
-U20 Ano2 8
-U20 Ano3 8
-U20 Ano4 8
-U21 Ano1 8
-U21 Ano2 8
-U21 Ano3 8
-U21 Ano4 8
-U22 Ano1 8
-U22 Ano2 8
-U22 Ano3 8
-U22 Ano4 8
-U23 Ano1 8
-U23 Ano2 8
-U23 Ano3 8
-U23 Ano4 8
-U24 Ano1 8
-U24 Ano2 8
-U24 Ano3 8
-U24 Ano4 8
-U25 Ano1 8
-U25 Ano2 8
-U25 Ano3 8
-U25 Ano4 8
-;
-
-
-# prod cost
-param Q :=
-C01 Ano1 0.1
-C01 Ano2 0.1
-C01 Ano3 0.1
-C01 Ano4 0.1
-C02 Ano1 0.1
-C02 Ano2 0.1
-C02 Ano3 0.1
-C02 Ano4 0.1
-C03 Ano1 0.1
-C03 Ano2 0.1
-C03 Ano3 0.1
-C03 Ano4 0.1
-C04 Ano1 0.1
-C04 Ano2 0.1
-C04 Ano3 0.1
-C04 Ano4 0.1
-C05 Ano1 0.1
-C05 Ano2 0.1
-C05 Ano3 0.1
-C05 Ano4 0.1
-C06 Ano1 0.1
-C06 Ano2 0.1
-C06 Ano3 0.1
-C06 Ano4 0.1
-C07 Ano1 0.1
-C07 Ano2 0.1
-C07 Ano3 0.1
-C07 Ano4 0.1
-C08 Ano1 0.1
-C08 Ano2 0.1
-C08 Ano3 0.1
-C08 Ano4 0.1
-C09 Ano1 0.1
-C09 Ano2 0.1
-C09 Ano3 0.1
-C09 Ano4 0.1
-;
-
-# construction cost of one road in arc (k,l) in time t
-param C :=
-C01 C09 Ano1 1440
-C01 C09 Ano2 1309.09
-C01 C09 Ano3 1190.08
-C01 C09 Ano4 1081.89
-C01 C02 Ano1 1950
-C01 C02 Ano2 1772.73
-C01 C02 Ano3 1611.57
-C01 C02 Ano4 1465.06
-C02 C09 Ano1 1690
-C02 C09 Ano2 1536.36
-C02 C09 Ano3 1396.69
-C02 C09 Ano4 1269.72
-C09 C02 Ano1 1690
-C09 C02 Ano2 1536.36
-C09 C02 Ano3 1396.69
-C09 C02 Ano4 1269.72
-C09 E1 Ano1 2840
-C09 E1 Ano2 2581.82
-C09 E1 Ano3 2347.11
-C09 E1 Ano4 2133.73
-C09 C03 Ano1 2190
-C09 C03 Ano2 1990.91
-C09 C03 Ano3 1809.92
-C09 C03 Ano4 1645.38
-C04 C03 Ano1 1170
-C04 C03 Ano2 1063.64
-C04 C03 Ano3 966.94
-C04 C03 Ano4 879.04
-C04 I3 Ano1 1320
-C04 I3 Ano2 1200
-C04 I3 Ano3 1090.91
-C04 I3 Ano4 991.74
-C06 I3 Ano1 150
-C06 I3 Ano2 136.36
-C06 I3 Ano3 123.97
-C06 I3 Ano4 112.7
-C08 C06 Ano1 1950
-C08 C06 Ano2 1772.73
-C08 C06 Ano3 1611.57
-C08 C06 Ano4 1465.06
-C08 I2 Ano1 1110
-C08 I2 Ano2 1009.09
-C08 I2 Ano3 917.36
-C08 I2 Ano4 833.96
-C07 C08 Ano1 930
-C07 C08 Ano2 845.45
-C07 C08 Ano3 768.6
-C07 C08 Ano4 698.72
-C07 I1 Ano1 1950
-C07 I1 Ano2 1772.73
-C07 I1 Ano3 1611.57
-C07 I1 Ano4 1465.06
-C07 C05 Ano1 2130
-C07 C05 Ano2 1936.36
-C07 C05 Ano3 1760.33
-C07 C05 Ano4 1600.3
-;
-
-# unit transport cost through arc (k,l) in time t
-param D :=
-C01 C09 Ano1 1.9
-C01 C02 Ano1 3.25
-C02 C09 Ano1 2.35
-C09 C02 Ano1 2.35
-C09 E1 Ano1 4.1
-C09 C03 Ano1 3.65
-C04 C03 Ano1 1.95
-C04 I3 Ano1 2.2
-C06 I3 Ano1 0.25
-C08 C06 Ano1 3.25
-C08 I2 Ano1 1.85
-C07 C08 Ano1 1.55
-C07 I1 Ano1 3.15
-C07 C05 Ano1 3.25
-C02 C03 Ano1 3.6
-C03 E1 Ano1 1.4
-C05 I1 Ano1 0.95
-I1 I2 Ano1 1.1
-I2 I3 Ano1 1.45
-I3 E1 Ano1 1.95
-C01 C09 Ano2 1.9
-C01 C02 Ano2 3.25
-C02 C09 Ano2 2.35
-C09 C02 Ano2 2.35
-C09 E1 Ano2 4.1
-C09 C03 Ano2 3.65
-C04 C03 Ano2 1.95
-C04 I3 Ano2 2.2
-C06 I3 Ano2 0.25
-C08 C06 Ano2 3.25
-C08 I2 Ano2 1.85
-C07 C08 Ano2 1.55
-C07 I1 Ano2 3.15
-C07 C05 Ano2 3.25
-C02 C03 Ano2 3.6
-C03 E1 Ano2 1.4
-C05 I1 Ano2 0.95
-I1 I2 Ano2 1.1
-I2 I3 Ano2 1.45
-I3 E1 Ano2 1.95
-C01 C09 Ano3 1.9
-C01 C02 Ano3 3.25
-C02 C09 Ano3 2.35
-C09 C02 Ano3 2.35
-C09 E1 Ano3 4.1
-C09 C03 Ano3 3.65
-C04 C03 Ano3 1.95
-C04 I3 Ano3 2.2
-C06 I3 Ano3 0.25
-C08 C06 Ano3 3.25
-C08 I2 Ano3 1.85
-C07 C08 Ano3 1.55
-C07 I1 Ano3 3.15
-C07 C05 Ano3 3.25
-C02 C03 Ano3 3.6
-C03 E1 Ano3 1.4
-C05 I1 Ano3 0.95
-I1 I2 Ano3 1.1
-I2 I3 Ano3 1.45
-I3 E1 Ano3 1.95
-C01 C09 Ano4 1.9
-C01 C02 Ano4 3.25
-C02 C09 Ano4 2.35
-C09 C02 Ano4 2.35
-C09 E1 Ano4 4.1
-C09 C03 Ano4 3.65
-C04 C03 Ano4 1.95
-C04 I3 Ano4 2.2
-C06 I3 Ano4 0.25
-C08 C06 Ano4 3.25
-C08 I2 Ano4 1.85
-C07 C08 Ano4 1.55
-C07 I1 Ano4 3.15
-C07 C05 Ano4 3.25
-C02 C03 Ano4 3.6
-C03 E1 Ano4 1.4
-C05 I1 Ano4 0.95
-I1 I2 Ano4 1.1
-I2 I3 Ano4 1.45
-I3 E1 Ano4 1.95
-;
-
-#
-# Stochastic Parameters
-#
-
-# sale price at exit e in time period t
-param R := E1 Ano1 45
- E1 Ano2 30
- E1 Ano3 45
- E1 Ano4 30 ;
-
-# upper and lower bounds on wood supplied
-param Zlb := Ano1 30000
- Ano2 10000
- Ano3 22000
- Ano4 12000 ;
-param Zub := Ano1 40000
- Ano2 18000
- Ano3 40000
- Ano4 18000 ;
-param yr:=
-Ano1 1
-Ano2 1
-Ano3 1
-Ano4 1
-;
-
-set COriginNodeForCell[U1]:= C01;
-set COriginNodeForCell[U2]:= C01;
-set COriginNodeForCell[U3]:= C09;
-set COriginNodeForCell[U4]:= C01;
-set COriginNodeForCell[U5]:= C09;
-set COriginNodeForCell[U6]:= C02;
-set COriginNodeForCell[U7]:= C02;
-set COriginNodeForCell[U8]:= C09;
-set COriginNodeForCell[U9]:= C02;
-set COriginNodeForCell[U10]:= C02;
-set COriginNodeForCell[U11]:= C04;
-set COriginNodeForCell[U12]:= C03;
-set COriginNodeForCell[U13]:= C03;
-set COriginNodeForCell[U14]:= C05;
-set COriginNodeForCell[U15]:= C04;
-set COriginNodeForCell[U16]:= C04;
-set COriginNodeForCell[U17]:= C06;
-set COriginNodeForCell[U18]:= C06;
-set COriginNodeForCell[U19]:= C06;
-set COriginNodeForCell[U20]:= C08;
-set COriginNodeForCell[U21]:= C08;
-set COriginNodeForCell[U22]:= C07;
-set COriginNodeForCell[U23]:= C05;
-set COriginNodeForCell[U24]:= C05;
-set COriginNodeForCell[U25]:= C07;
-
diff --git a/examples/pysp/forestry/18scenarios/ForestChile15.dat b/examples/pysp/forestry/18scenarios/ForestChile15.dat
deleted file mode 100644
index 00bd73406a8..00000000000
--- a/examples/pysp/forestry/18scenarios/ForestChile15.dat
+++ /dev/null
@@ -1,562 +0,0 @@
-# fbv
-# mnr May 3, 2009
-
-# general nodes
-set Nodes := E1
- I1 I2 I3
- C01 C02 C03 C04 C05 C06 C07 C08 C09 ;
-
-# following the notation in the paper (note: nodes \equiv origins)
-
-#
-# Sets
-#
-
-set Times := Ano1 Ano2 Ano3 Ano4;
-
-set OriginNodes := C01 C02 C03 C04 C05 C06 C07 C08 C09 ;
-
-set IntersectionNodes := I1 I2 I3;
-
-set ExitNodes := E1;
-
-set HarvestCells := U1 U2 U3 U4 U5 U6 U7 U8 U9 U10 U11 U12 U13
- U14 U15 U16 U17 U18 U19 U20 U21 U22 U23 U24 U25;
-
-set HCellsForOrigin[C01] := U1 U2 U4 ;
-set HCellsForOrigin[C02] := U6 U7 U9 U10 ;
-set HCellsForOrigin[C03] := U12 U13 ;
-set HCellsForOrigin[C04] := U11 U15 U16 ;
-set HCellsForOrigin[C05] := U14 U23 U24 ;
-set HCellsForOrigin[C06] := U17 U18 U19 ;
-set HCellsForOrigin[C07] := U22 U25 ;
-set HCellsForOrigin[C08] := U20 U21 ;
-set HCellsForOrigin[C09] := U3 U5 U8 ;
-
-set ExistingRoads :=
-C02 C03
-C03 E1
-C05 I1
-I1 I2
-I2 I3
-I3 E1
-;
-
-set PotentialRoads :=
-C01 C09
-C01 C02
-C02 C09
-C09 C02
-C09 E1
-C09 C03
-C04 C03
-C04 I3
-C06 I3
-C08 C06
-C08 I2
-C07 C08
-C07 I1
-C07 C05
-;
-
-set AllRoads :=
-C02 C03
-C03 E1
-C05 I1
-I1 I2
-I2 I3
-I3 E1
-C01 C09
-C01 C02
-C02 C09
-C09 C02
-C09 E1
-C09 C03
-C04 C03
-C04 I3
-C06 I3
-C08 C06
-C08 I2
-C07 C08
-C07 I1
-C07 C05
-;
-
-#
-# Deterministic Parameters
-#
-
-# productivity of cell h if it is harvested in period t
-param a :=
-U1 Ano1 362
-U1 Ano2 362
-U1 Ano3 362
-U1 Ano4 362
-U2 Ano1 362
-U2 Ano2 362
-U2 Ano3 362
-U2 Ano4 362
-U3 Ano1 362
-U3 Ano2 362
-U3 Ano3 362
-U3 Ano4 362
-U4 Ano1 642
-U4 Ano2 642
-U4 Ano3 642
-U4 Ano4 642
-U5 Ano1 362
-U5 Ano2 362
-U5 Ano3 362
-U5 Ano4 362
-U6 Ano1 642
-U6 Ano2 642
-U6 Ano3 642
-U6 Ano4 642
-U7 Ano1 642
-U7 Ano2 642
-U7 Ano3 642
-U7 Ano4 642
-U8 Ano1 362
-U8 Ano2 362
-U8 Ano3 362
-U8 Ano4 362
-U9 Ano1 642
-U9 Ano2 642
-U9 Ano3 642
-U9 Ano4 642
-U10 Ano1 642
-U10 Ano2 642
-U10 Ano3 642
-U10 Ano4 642
-U11 Ano1 600
-U11 Ano2 600
-U11 Ano3 600
-U11 Ano4 600
-U12 Ano1 518
-U12 Ano2 518
-U12 Ano3 518
-U12 Ano4 518
-U13 Ano1 518
-U13 Ano2 518
-U13 Ano3 518
-U13 Ano4 518
-U14 Ano1 567
-U14 Ano2 567
-U14 Ano3 567
-U14 Ano4 567
-U15 Ano1 600
-U15 Ano2 600
-U15 Ano3 600
-U15 Ano4 600
-U16 Ano1 600
-U16 Ano2 600
-U16 Ano3 600
-U16 Ano4 600
-U17 Ano1 518
-U17 Ano2 518
-U17 Ano3 518
-U17 Ano4 518
-U18 Ano1 401
-U18 Ano2 401
-U18 Ano3 401
-U18 Ano4 401
-U19 Ano1 401
-U19 Ano2 401
-U19 Ano3 401
-U19 Ano4 401
-U20 Ano1 401
-U20 Ano2 401
-U20 Ano3 401
-U20 Ano4 401
-U21 Ano1 373
-U21 Ano2 373
-U21 Ano3 373
-U21 Ano4 373
-U22 Ano1 373
-U22 Ano2 373
-U22 Ano3 373
-U22 Ano4 373
-U23 Ano1 567
-U23 Ano2 567
-U23 Ano3 567
-U23 Ano4 567
-U24 Ano1 567
-U24 Ano2 567
-U24 Ano3 567
-U24 Ano4 567
-U25 Ano1 373
-U25 Ano2 373
-U25 Ano3 373
-U25 Ano4 373
-;
-
-# Area of cell h to be harvested
-param A :=
-U1 10.1
-U2 10.1
-U3 10.1
-U4 13.4
-U5 10.3
-U6 10.2
-U7 10.1
-U8 10.4
-U9 16.7
-U10 12.8
-U11 12.2
-U12 15.2
-U13 11.3
-U14 12.7
-U15 12.6
-U16 12.6
-U17 10
-U18 14.4
-U19 10.8
-U20 10.4
-U21 16.4
-U22 10
-U23 11.4
-U24 14.8
-U25 10.1
-;
-
-# harvesting cost of one hectare of cell h in time t
-param P :=
-U1 Ano1 8
-U1 Ano2 8
-U1 Ano3 8
-U1 Ano4 8
-U2 Ano1 8
-U2 Ano2 8
-U2 Ano3 8
-U2 Ano4 8
-U3 Ano1 8
-U3 Ano2 8
-U3 Ano3 8
-U3 Ano4 8
-U4 Ano1 8
-U4 Ano2 8
-U4 Ano3 8
-U4 Ano4 8
-U5 Ano1 8
-U5 Ano2 8
-U5 Ano3 8
-U5 Ano4 8
-U6 Ano1 8
-U6 Ano2 8
-U6 Ano3 8
-U6 Ano4 8
-U7 Ano1 8
-U7 Ano2 8
-U7 Ano3 8
-U7 Ano4 8
-U8 Ano1 8
-U8 Ano2 8
-U8 Ano3 8
-U8 Ano4 8
-U9 Ano1 8
-U9 Ano2 8
-U9 Ano3 8
-U9 Ano4 8
-U10 Ano1 8
-U10 Ano2 8
-U10 Ano3 8
-U10 Ano4 8
-U11 Ano1 8
-U11 Ano2 8
-U11 Ano3 8
-U11 Ano4 8
-U12 Ano1 8
-U12 Ano2 8
-U12 Ano3 8
-U12 Ano4 8
-U13 Ano1 8
-U13 Ano2 8
-U13 Ano3 8
-U13 Ano4 8
-U14 Ano1 8
-U14 Ano2 8
-U14 Ano3 8
-U14 Ano4 8
-U15 Ano1 8
-U15 Ano2 8
-U15 Ano3 8
-U15 Ano4 8
-U16 Ano1 8
-U16 Ano2 8
-U16 Ano3 8
-U16 Ano4 8
-U17 Ano1 8
-U17 Ano2 8
-U17 Ano3 8
-U17 Ano4 8
-U18 Ano1 8
-U18 Ano2 8
-U18 Ano3 8
-U18 Ano4 8
-U19 Ano1 8
-U19 Ano2 8
-U19 Ano3 8
-U19 Ano4 8
-U20 Ano1 8
-U20 Ano2 8
-U20 Ano3 8
-U20 Ano4 8
-U21 Ano1 8
-U21 Ano2 8
-U21 Ano3 8
-U21 Ano4 8
-U22 Ano1 8
-U22 Ano2 8
-U22 Ano3 8
-U22 Ano4 8
-U23 Ano1 8
-U23 Ano2 8
-U23 Ano3 8
-U23 Ano4 8
-U24 Ano1 8
-U24 Ano2 8
-U24 Ano3 8
-U24 Ano4 8
-U25 Ano1 8
-U25 Ano2 8
-U25 Ano3 8
-U25 Ano4 8
-;
-
-
-# prod cost
-param Q :=
-C01 Ano1 0.1
-C01 Ano2 0.1
-C01 Ano3 0.1
-C01 Ano4 0.1
-C02 Ano1 0.1
-C02 Ano2 0.1
-C02 Ano3 0.1
-C02 Ano4 0.1
-C03 Ano1 0.1
-C03 Ano2 0.1
-C03 Ano3 0.1
-C03 Ano4 0.1
-C04 Ano1 0.1
-C04 Ano2 0.1
-C04 Ano3 0.1
-C04 Ano4 0.1
-C05 Ano1 0.1
-C05 Ano2 0.1
-C05 Ano3 0.1
-C05 Ano4 0.1
-C06 Ano1 0.1
-C06 Ano2 0.1
-C06 Ano3 0.1
-C06 Ano4 0.1
-C07 Ano1 0.1
-C07 Ano2 0.1
-C07 Ano3 0.1
-C07 Ano4 0.1
-C08 Ano1 0.1
-C08 Ano2 0.1
-C08 Ano3 0.1
-C08 Ano4 0.1
-C09 Ano1 0.1
-C09 Ano2 0.1
-C09 Ano3 0.1
-C09 Ano4 0.1
-;
-
-# construction cost of one road in arc (k,l) in time t
-param C :=
-C01 C09 Ano1 1440
-C01 C09 Ano2 1309.09
-C01 C09 Ano3 1190.08
-C01 C09 Ano4 1081.89
-C01 C02 Ano1 1950
-C01 C02 Ano2 1772.73
-C01 C02 Ano3 1611.57
-C01 C02 Ano4 1465.06
-C02 C09 Ano1 1690
-C02 C09 Ano2 1536.36
-C02 C09 Ano3 1396.69
-C02 C09 Ano4 1269.72
-C09 C02 Ano1 1690
-C09 C02 Ano2 1536.36
-C09 C02 Ano3 1396.69
-C09 C02 Ano4 1269.72
-C09 E1 Ano1 2840
-C09 E1 Ano2 2581.82
-C09 E1 Ano3 2347.11
-C09 E1 Ano4 2133.73
-C09 C03 Ano1 2190
-C09 C03 Ano2 1990.91
-C09 C03 Ano3 1809.92
-C09 C03 Ano4 1645.38
-C04 C03 Ano1 1170
-C04 C03 Ano2 1063.64
-C04 C03 Ano3 966.94
-C04 C03 Ano4 879.04
-C04 I3 Ano1 1320
-C04 I3 Ano2 1200
-C04 I3 Ano3 1090.91
-C04 I3 Ano4 991.74
-C06 I3 Ano1 150
-C06 I3 Ano2 136.36
-C06 I3 Ano3 123.97
-C06 I3 Ano4 112.7
-C08 C06 Ano1 1950
-C08 C06 Ano2 1772.73
-C08 C06 Ano3 1611.57
-C08 C06 Ano4 1465.06
-C08 I2 Ano1 1110
-C08 I2 Ano2 1009.09
-C08 I2 Ano3 917.36
-C08 I2 Ano4 833.96
-C07 C08 Ano1 930
-C07 C08 Ano2 845.45
-C07 C08 Ano3 768.6
-C07 C08 Ano4 698.72
-C07 I1 Ano1 1950
-C07 I1 Ano2 1772.73
-C07 I1 Ano3 1611.57
-C07 I1 Ano4 1465.06
-C07 C05 Ano1 2130
-C07 C05 Ano2 1936.36
-C07 C05 Ano3 1760.33
-C07 C05 Ano4 1600.3
-;
-
-# unit transport cost through arc (k,l) in time t
-param D :=
-C01 C09 Ano1 1.9
-C01 C02 Ano1 3.25
-C02 C09 Ano1 2.35
-C09 C02 Ano1 2.35
-C09 E1 Ano1 4.1
-C09 C03 Ano1 3.65
-C04 C03 Ano1 1.95
-C04 I3 Ano1 2.2
-C06 I3 Ano1 0.25
-C08 C06 Ano1 3.25
-C08 I2 Ano1 1.85
-C07 C08 Ano1 1.55
-C07 I1 Ano1 3.15
-C07 C05 Ano1 3.25
-C02 C03 Ano1 3.6
-C03 E1 Ano1 1.4
-C05 I1 Ano1 0.95
-I1 I2 Ano1 1.1
-I2 I3 Ano1 1.45
-I3 E1 Ano1 1.95
-C01 C09 Ano2 1.9
-C01 C02 Ano2 3.25
-C02 C09 Ano2 2.35
-C09 C02 Ano2 2.35
-C09 E1 Ano2 4.1
-C09 C03 Ano2 3.65
-C04 C03 Ano2 1.95
-C04 I3 Ano2 2.2
-C06 I3 Ano2 0.25
-C08 C06 Ano2 3.25
-C08 I2 Ano2 1.85
-C07 C08 Ano2 1.55
-C07 I1 Ano2 3.15
-C07 C05 Ano2 3.25
-C02 C03 Ano2 3.6
-C03 E1 Ano2 1.4
-C05 I1 Ano2 0.95
-I1 I2 Ano2 1.1
-I2 I3 Ano2 1.45
-I3 E1 Ano2 1.95
-C01 C09 Ano3 1.9
-C01 C02 Ano3 3.25
-C02 C09 Ano3 2.35
-C09 C02 Ano3 2.35
-C09 E1 Ano3 4.1
-C09 C03 Ano3 3.65
-C04 C03 Ano3 1.95
-C04 I3 Ano3 2.2
-C06 I3 Ano3 0.25
-C08 C06 Ano3 3.25
-C08 I2 Ano3 1.85
-C07 C08 Ano3 1.55
-C07 I1 Ano3 3.15
-C07 C05 Ano3 3.25
-C02 C03 Ano3 3.6
-C03 E1 Ano3 1.4
-C05 I1 Ano3 0.95
-I1 I2 Ano3 1.1
-I2 I3 Ano3 1.45
-I3 E1 Ano3 1.95
-C01 C09 Ano4 1.9
-C01 C02 Ano4 3.25
-C02 C09 Ano4 2.35
-C09 C02 Ano4 2.35
-C09 E1 Ano4 4.1
-C09 C03 Ano4 3.65
-C04 C03 Ano4 1.95
-C04 I3 Ano4 2.2
-C06 I3 Ano4 0.25
-C08 C06 Ano4 3.25
-C08 I2 Ano4 1.85
-C07 C08 Ano4 1.55
-C07 I1 Ano4 3.15
-C07 C05 Ano4 3.25
-C02 C03 Ano4 3.6
-C03 E1 Ano4 1.4
-C05 I1 Ano4 0.95
-I1 I2 Ano4 1.1
-I2 I3 Ano4 1.45
-I3 E1 Ano4 1.95
-;
-
-#
-# Stochastic Parameters
-#
-
-# sale price at exit e in time period t
-param R := E1 Ano1 45
- E1 Ano2 30
- E1 Ano3 30
- E1 Ano4 40 ;
-
-# upper and lower bounds on wood supplied
-param Zlb := Ano1 30000
- Ano2 10000
- Ano3 15000
- Ano4 13000 ;
-param Zub := Ano1 40000
- Ano2 18000
- Ano3 25000
- Ano4 18000 ;
-param yr:=
-Ano1 1
-Ano2 1
-Ano3 1
-Ano4 1
-;
-
-set COriginNodeForCell[U1]:= C01;
-set COriginNodeForCell[U2]:= C01;
-set COriginNodeForCell[U3]:= C09;
-set COriginNodeForCell[U4]:= C01;
-set COriginNodeForCell[U5]:= C09;
-set COriginNodeForCell[U6]:= C02;
-set COriginNodeForCell[U7]:= C02;
-set COriginNodeForCell[U8]:= C09;
-set COriginNodeForCell[U9]:= C02;
-set COriginNodeForCell[U10]:= C02;
-set COriginNodeForCell[U11]:= C04;
-set COriginNodeForCell[U12]:= C03;
-set COriginNodeForCell[U13]:= C03;
-set COriginNodeForCell[U14]:= C05;
-set COriginNodeForCell[U15]:= C04;
-set COriginNodeForCell[U16]:= C04;
-set COriginNodeForCell[U17]:= C06;
-set COriginNodeForCell[U18]:= C06;
-set COriginNodeForCell[U19]:= C06;
-set COriginNodeForCell[U20]:= C08;
-set COriginNodeForCell[U21]:= C08;
-set COriginNodeForCell[U22]:= C07;
-set COriginNodeForCell[U23]:= C05;
-set COriginNodeForCell[U24]:= C05;
-set COriginNodeForCell[U25]:= C07;
-
diff --git a/examples/pysp/forestry/18scenarios/ForestChile16.dat b/examples/pysp/forestry/18scenarios/ForestChile16.dat
deleted file mode 100644
index 411b676dfef..00000000000
--- a/examples/pysp/forestry/18scenarios/ForestChile16.dat
+++ /dev/null
@@ -1,562 +0,0 @@
-# fbv
-# mnr May 3, 2009
-
-# general nodes
-set Nodes := E1
- I1 I2 I3
- C01 C02 C03 C04 C05 C06 C07 C08 C09 ;
-
-# following the notation in the paper (note: nodes \equiv origins)
-
-#
-# Sets
-#
-
-set Times := Ano1 Ano2 Ano3 Ano4;
-
-set OriginNodes := C01 C02 C03 C04 C05 C06 C07 C08 C09 ;
-
-set IntersectionNodes := I1 I2 I3;
-
-set ExitNodes := E1;
-
-set HarvestCells := U1 U2 U3 U4 U5 U6 U7 U8 U9 U10 U11 U12 U13
- U14 U15 U16 U17 U18 U19 U20 U21 U22 U23 U24 U25;
-
-set HCellsForOrigin[C01] := U1 U2 U4 ;
-set HCellsForOrigin[C02] := U6 U7 U9 U10 ;
-set HCellsForOrigin[C03] := U12 U13 ;
-set HCellsForOrigin[C04] := U11 U15 U16 ;
-set HCellsForOrigin[C05] := U14 U23 U24 ;
-set HCellsForOrigin[C06] := U17 U18 U19 ;
-set HCellsForOrigin[C07] := U22 U25 ;
-set HCellsForOrigin[C08] := U20 U21 ;
-set HCellsForOrigin[C09] := U3 U5 U8 ;
-
-set ExistingRoads :=
-C02 C03
-C03 E1
-C05 I1
-I1 I2
-I2 I3
-I3 E1
-;
-
-set PotentialRoads :=
-C01 C09
-C01 C02
-C02 C09
-C09 C02
-C09 E1
-C09 C03
-C04 C03
-C04 I3
-C06 I3
-C08 C06
-C08 I2
-C07 C08
-C07 I1
-C07 C05
-;
-
-set AllRoads :=
-C02 C03
-C03 E1
-C05 I1
-I1 I2
-I2 I3
-I3 E1
-C01 C09
-C01 C02
-C02 C09
-C09 C02
-C09 E1
-C09 C03
-C04 C03
-C04 I3
-C06 I3
-C08 C06
-C08 I2
-C07 C08
-C07 I1
-C07 C05
-;
-
-#
-# Deterministic Parameters
-#
-
-# productivity of cell h if it is harvested in period t
-param a :=
-U1 Ano1 362
-U1 Ano2 362
-U1 Ano3 362
-U1 Ano4 362
-U2 Ano1 362
-U2 Ano2 362
-U2 Ano3 362
-U2 Ano4 362
-U3 Ano1 362
-U3 Ano2 362
-U3 Ano3 362
-U3 Ano4 362
-U4 Ano1 642
-U4 Ano2 642
-U4 Ano3 642
-U4 Ano4 642
-U5 Ano1 362
-U5 Ano2 362
-U5 Ano3 362
-U5 Ano4 362
-U6 Ano1 642
-U6 Ano2 642
-U6 Ano3 642
-U6 Ano4 642
-U7 Ano1 642
-U7 Ano2 642
-U7 Ano3 642
-U7 Ano4 642
-U8 Ano1 362
-U8 Ano2 362
-U8 Ano3 362
-U8 Ano4 362
-U9 Ano1 642
-U9 Ano2 642
-U9 Ano3 642
-U9 Ano4 642
-U10 Ano1 642
-U10 Ano2 642
-U10 Ano3 642
-U10 Ano4 642
-U11 Ano1 600
-U11 Ano2 600
-U11 Ano3 600
-U11 Ano4 600
-U12 Ano1 518
-U12 Ano2 518
-U12 Ano3 518
-U12 Ano4 518
-U13 Ano1 518
-U13 Ano2 518
-U13 Ano3 518
-U13 Ano4 518
-U14 Ano1 567
-U14 Ano2 567
-U14 Ano3 567
-U14 Ano4 567
-U15 Ano1 600
-U15 Ano2 600
-U15 Ano3 600
-U15 Ano4 600
-U16 Ano1 600
-U16 Ano2 600
-U16 Ano3 600
-U16 Ano4 600
-U17 Ano1 518
-U17 Ano2 518
-U17 Ano3 518
-U17 Ano4 518
-U18 Ano1 401
-U18 Ano2 401
-U18 Ano3 401
-U18 Ano4 401
-U19 Ano1 401
-U19 Ano2 401
-U19 Ano3 401
-U19 Ano4 401
-U20 Ano1 401
-U20 Ano2 401
-U20 Ano3 401
-U20 Ano4 401
-U21 Ano1 373
-U21 Ano2 373
-U21 Ano3 373
-U21 Ano4 373
-U22 Ano1 373
-U22 Ano2 373
-U22 Ano3 373
-U22 Ano4 373
-U23 Ano1 567
-U23 Ano2 567
-U23 Ano3 567
-U23 Ano4 567
-U24 Ano1 567
-U24 Ano2 567
-U24 Ano3 567
-U24 Ano4 567
-U25 Ano1 373
-U25 Ano2 373
-U25 Ano3 373
-U25 Ano4 373
-;
-
-# Area of cell h to be harvested
-param A :=
-U1 10.1
-U2 10.1
-U3 10.1
-U4 13.4
-U5 10.3
-U6 10.2
-U7 10.1
-U8 10.4
-U9 16.7
-U10 12.8
-U11 12.2
-U12 15.2
-U13 11.3
-U14 12.7
-U15 12.6
-U16 12.6
-U17 10
-U18 14.4
-U19 10.8
-U20 10.4
-U21 16.4
-U22 10
-U23 11.4
-U24 14.8
-U25 10.1
-;
-
-# harvesting cost of one hectare of cell h in time t
-param P :=
-U1 Ano1 8
-U1 Ano2 8
-U1 Ano3 8
-U1 Ano4 8
-U2 Ano1 8
-U2 Ano2 8
-U2 Ano3 8
-U2 Ano4 8
-U3 Ano1 8
-U3 Ano2 8
-U3 Ano3 8
-U3 Ano4 8
-U4 Ano1 8
-U4 Ano2 8
-U4 Ano3 8
-U4 Ano4 8
-U5 Ano1 8
-U5 Ano2 8
-U5 Ano3 8
-U5 Ano4 8
-U6 Ano1 8
-U6 Ano2 8
-U6 Ano3 8
-U6 Ano4 8
-U7 Ano1 8
-U7 Ano2 8
-U7 Ano3 8
-U7 Ano4 8
-U8 Ano1 8
-U8 Ano2 8
-U8 Ano3 8
-U8 Ano4 8
-U9 Ano1 8
-U9 Ano2 8
-U9 Ano3 8
-U9 Ano4 8
-U10 Ano1 8
-U10 Ano2 8
-U10 Ano3 8
-U10 Ano4 8
-U11 Ano1 8
-U11 Ano2 8
-U11 Ano3 8
-U11 Ano4 8
-U12 Ano1 8
-U12 Ano2 8
-U12 Ano3 8
-U12 Ano4 8
-U13 Ano1 8
-U13 Ano2 8
-U13 Ano3 8
-U13 Ano4 8
-U14 Ano1 8
-U14 Ano2 8
-U14 Ano3 8
-U14 Ano4 8
-U15 Ano1 8
-U15 Ano2 8
-U15 Ano3 8
-U15 Ano4 8
-U16 Ano1 8
-U16 Ano2 8
-U16 Ano3 8
-U16 Ano4 8
-U17 Ano1 8
-U17 Ano2 8
-U17 Ano3 8
-U17 Ano4 8
-U18 Ano1 8
-U18 Ano2 8
-U18 Ano3 8
-U18 Ano4 8
-U19 Ano1 8
-U19 Ano2 8
-U19 Ano3 8
-U19 Ano4 8
-U20 Ano1 8
-U20 Ano2 8
-U20 Ano3 8
-U20 Ano4 8
-U21 Ano1 8
-U21 Ano2 8
-U21 Ano3 8
-U21 Ano4 8
-U22 Ano1 8
-U22 Ano2 8
-U22 Ano3 8
-U22 Ano4 8
-U23 Ano1 8
-U23 Ano2 8
-U23 Ano3 8
-U23 Ano4 8
-U24 Ano1 8
-U24 Ano2 8
-U24 Ano3 8
-U24 Ano4 8
-U25 Ano1 8
-U25 Ano2 8
-U25 Ano3 8
-U25 Ano4 8
-;
-
-
-# prod cost
-param Q :=
-C01 Ano1 0.1
-C01 Ano2 0.1
-C01 Ano3 0.1
-C01 Ano4 0.1
-C02 Ano1 0.1
-C02 Ano2 0.1
-C02 Ano3 0.1
-C02 Ano4 0.1
-C03 Ano1 0.1
-C03 Ano2 0.1
-C03 Ano3 0.1
-C03 Ano4 0.1
-C04 Ano1 0.1
-C04 Ano2 0.1
-C04 Ano3 0.1
-C04 Ano4 0.1
-C05 Ano1 0.1
-C05 Ano2 0.1
-C05 Ano3 0.1
-C05 Ano4 0.1
-C06 Ano1 0.1
-C06 Ano2 0.1
-C06 Ano3 0.1
-C06 Ano4 0.1
-C07 Ano1 0.1
-C07 Ano2 0.1
-C07 Ano3 0.1
-C07 Ano4 0.1
-C08 Ano1 0.1
-C08 Ano2 0.1
-C08 Ano3 0.1
-C08 Ano4 0.1
-C09 Ano1 0.1
-C09 Ano2 0.1
-C09 Ano3 0.1
-C09 Ano4 0.1
-;
-
-# construction cost of one road in arc (k,l) in time t
-param C :=
-C01 C09 Ano1 1440
-C01 C09 Ano2 1309.09
-C01 C09 Ano3 1190.08
-C01 C09 Ano4 1081.89
-C01 C02 Ano1 1950
-C01 C02 Ano2 1772.73
-C01 C02 Ano3 1611.57
-C01 C02 Ano4 1465.06
-C02 C09 Ano1 1690
-C02 C09 Ano2 1536.36
-C02 C09 Ano3 1396.69
-C02 C09 Ano4 1269.72
-C09 C02 Ano1 1690
-C09 C02 Ano2 1536.36
-C09 C02 Ano3 1396.69
-C09 C02 Ano4 1269.72
-C09 E1 Ano1 2840
-C09 E1 Ano2 2581.82
-C09 E1 Ano3 2347.11
-C09 E1 Ano4 2133.73
-C09 C03 Ano1 2190
-C09 C03 Ano2 1990.91
-C09 C03 Ano3 1809.92
-C09 C03 Ano4 1645.38
-C04 C03 Ano1 1170
-C04 C03 Ano2 1063.64
-C04 C03 Ano3 966.94
-C04 C03 Ano4 879.04
-C04 I3 Ano1 1320
-C04 I3 Ano2 1200
-C04 I3 Ano3 1090.91
-C04 I3 Ano4 991.74
-C06 I3 Ano1 150
-C06 I3 Ano2 136.36
-C06 I3 Ano3 123.97
-C06 I3 Ano4 112.7
-C08 C06 Ano1 1950
-C08 C06 Ano2 1772.73
-C08 C06 Ano3 1611.57
-C08 C06 Ano4 1465.06
-C08 I2 Ano1 1110
-C08 I2 Ano2 1009.09
-C08 I2 Ano3 917.36
-C08 I2 Ano4 833.96
-C07 C08 Ano1 930
-C07 C08 Ano2 845.45
-C07 C08 Ano3 768.6
-C07 C08 Ano4 698.72
-C07 I1 Ano1 1950
-C07 I1 Ano2 1772.73
-C07 I1 Ano3 1611.57
-C07 I1 Ano4 1465.06
-C07 C05 Ano1 2130
-C07 C05 Ano2 1936.36
-C07 C05 Ano3 1760.33
-C07 C05 Ano4 1600.3
-;
-
-# unit transport cost through arc (k,l) in time t
-param D :=
-C01 C09 Ano1 1.9
-C01 C02 Ano1 3.25
-C02 C09 Ano1 2.35
-C09 C02 Ano1 2.35
-C09 E1 Ano1 4.1
-C09 C03 Ano1 3.65
-C04 C03 Ano1 1.95
-C04 I3 Ano1 2.2
-C06 I3 Ano1 0.25
-C08 C06 Ano1 3.25
-C08 I2 Ano1 1.85
-C07 C08 Ano1 1.55
-C07 I1 Ano1 3.15
-C07 C05 Ano1 3.25
-C02 C03 Ano1 3.6
-C03 E1 Ano1 1.4
-C05 I1 Ano1 0.95
-I1 I2 Ano1 1.1
-I2 I3 Ano1 1.45
-I3 E1 Ano1 1.95
-C01 C09 Ano2 1.9
-C01 C02 Ano2 3.25
-C02 C09 Ano2 2.35
-C09 C02 Ano2 2.35
-C09 E1 Ano2 4.1
-C09 C03 Ano2 3.65
-C04 C03 Ano2 1.95
-C04 I3 Ano2 2.2
-C06 I3 Ano2 0.25
-C08 C06 Ano2 3.25
-C08 I2 Ano2 1.85
-C07 C08 Ano2 1.55
-C07 I1 Ano2 3.15
-C07 C05 Ano2 3.25
-C02 C03 Ano2 3.6
-C03 E1 Ano2 1.4
-C05 I1 Ano2 0.95
-I1 I2 Ano2 1.1
-I2 I3 Ano2 1.45
-I3 E1 Ano2 1.95
-C01 C09 Ano3 1.9
-C01 C02 Ano3 3.25
-C02 C09 Ano3 2.35
-C09 C02 Ano3 2.35
-C09 E1 Ano3 4.1
-C09 C03 Ano3 3.65
-C04 C03 Ano3 1.95
-C04 I3 Ano3 2.2
-C06 I3 Ano3 0.25
-C08 C06 Ano3 3.25
-C08 I2 Ano3 1.85
-C07 C08 Ano3 1.55
-C07 I1 Ano3 3.15
-C07 C05 Ano3 3.25
-C02 C03 Ano3 3.6
-C03 E1 Ano3 1.4
-C05 I1 Ano3 0.95
-I1 I2 Ano3 1.1
-I2 I3 Ano3 1.45
-I3 E1 Ano3 1.95
-C01 C09 Ano4 1.9
-C01 C02 Ano4 3.25
-C02 C09 Ano4 2.35
-C09 C02 Ano4 2.35
-C09 E1 Ano4 4.1
-C09 C03 Ano4 3.65
-C04 C03 Ano4 1.95
-C04 I3 Ano4 2.2
-C06 I3 Ano4 0.25
-C08 C06 Ano4 3.25
-C08 I2 Ano4 1.85
-C07 C08 Ano4 1.55
-C07 I1 Ano4 3.15
-C07 C05 Ano4 3.25
-C02 C03 Ano4 3.6
-C03 E1 Ano4 1.4
-C05 I1 Ano4 0.95
-I1 I2 Ano4 1.1
-I2 I3 Ano4 1.45
-I3 E1 Ano4 1.95
-;
-
-#
-# Stochastic Parameters
-#
-
-# sale price at exit e in time period t
-param R := E1 Ano1 45
- E1 Ano2 30
- E1 Ano3 30
- E1 Ano4 30 ;
-
-# upper and lower bounds on wood supplied
-param Zlb := Ano1 30000
- Ano2 10000
- Ano3 15000
- Ano4 12000 ;
-param Zub := Ano1 40000
- Ano2 18000
- Ano3 25000
- Ano4 17000 ;
-param yr:=
-Ano1 1
-Ano2 1
-Ano3 1
-Ano4 1
-;
-
-set COriginNodeForCell[U1]:= C01;
-set COriginNodeForCell[U2]:= C01;
-set COriginNodeForCell[U3]:= C09;
-set COriginNodeForCell[U4]:= C01;
-set COriginNodeForCell[U5]:= C09;
-set COriginNodeForCell[U6]:= C02;
-set COriginNodeForCell[U7]:= C02;
-set COriginNodeForCell[U8]:= C09;
-set COriginNodeForCell[U9]:= C02;
-set COriginNodeForCell[U10]:= C02;
-set COriginNodeForCell[U11]:= C04;
-set COriginNodeForCell[U12]:= C03;
-set COriginNodeForCell[U13]:= C03;
-set COriginNodeForCell[U14]:= C05;
-set COriginNodeForCell[U15]:= C04;
-set COriginNodeForCell[U16]:= C04;
-set COriginNodeForCell[U17]:= C06;
-set COriginNodeForCell[U18]:= C06;
-set COriginNodeForCell[U19]:= C06;
-set COriginNodeForCell[U20]:= C08;
-set COriginNodeForCell[U21]:= C08;
-set COriginNodeForCell[U22]:= C07;
-set COriginNodeForCell[U23]:= C05;
-set COriginNodeForCell[U24]:= C05;
-set COriginNodeForCell[U25]:= C07;
-
diff --git a/examples/pysp/forestry/18scenarios/ForestChile17.dat b/examples/pysp/forestry/18scenarios/ForestChile17.dat
deleted file mode 100644
index 13fb8cb97cb..00000000000
--- a/examples/pysp/forestry/18scenarios/ForestChile17.dat
+++ /dev/null
@@ -1,562 +0,0 @@
-# fbv
-# mnr May 3, 2009
-
-# general nodes
-set Nodes := E1
- I1 I2 I3
- C01 C02 C03 C04 C05 C06 C07 C08 C09 ;
-
-# following the notation in the paper (note: nodes \equiv origins)
-
-#
-# Sets
-#
-
-set Times := Ano1 Ano2 Ano3 Ano4;
-
-set OriginNodes := C01 C02 C03 C04 C05 C06 C07 C08 C09 ;
-
-set IntersectionNodes := I1 I2 I3;
-
-set ExitNodes := E1;
-
-set HarvestCells := U1 U2 U3 U4 U5 U6 U7 U8 U9 U10 U11 U12 U13
- U14 U15 U16 U17 U18 U19 U20 U21 U22 U23 U24 U25;
-
-set HCellsForOrigin[C01] := U1 U2 U4 ;
-set HCellsForOrigin[C02] := U6 U7 U9 U10 ;
-set HCellsForOrigin[C03] := U12 U13 ;
-set HCellsForOrigin[C04] := U11 U15 U16 ;
-set HCellsForOrigin[C05] := U14 U23 U24 ;
-set HCellsForOrigin[C06] := U17 U18 U19 ;
-set HCellsForOrigin[C07] := U22 U25 ;
-set HCellsForOrigin[C08] := U20 U21 ;
-set HCellsForOrigin[C09] := U3 U5 U8 ;
-
-set ExistingRoads :=
-C02 C03
-C03 E1
-C05 I1
-I1 I2
-I2 I3
-I3 E1
-;
-
-set PotentialRoads :=
-C01 C09
-C01 C02
-C02 C09
-C09 C02
-C09 E1
-C09 C03
-C04 C03
-C04 I3
-C06 I3
-C08 C06
-C08 I2
-C07 C08
-C07 I1
-C07 C05
-;
-
-set AllRoads :=
-C02 C03
-C03 E1
-C05 I1
-I1 I2
-I2 I3
-I3 E1
-C01 C09
-C01 C02
-C02 C09
-C09 C02
-C09 E1
-C09 C03
-C04 C03
-C04 I3
-C06 I3
-C08 C06
-C08 I2
-C07 C08
-C07 I1
-C07 C05
-;
-
-#
-# Deterministic Parameters
-#
-
-# productivity of cell h if it is harvested in period t
-param a :=
-U1 Ano1 362
-U1 Ano2 362
-U1 Ano3 362
-U1 Ano4 362
-U2 Ano1 362
-U2 Ano2 362
-U2 Ano3 362
-U2 Ano4 362
-U3 Ano1 362
-U3 Ano2 362
-U3 Ano3 362
-U3 Ano4 362
-U4 Ano1 642
-U4 Ano2 642
-U4 Ano3 642
-U4 Ano4 642
-U5 Ano1 362
-U5 Ano2 362
-U5 Ano3 362
-U5 Ano4 362
-U6 Ano1 642
-U6 Ano2 642
-U6 Ano3 642
-U6 Ano4 642
-U7 Ano1 642
-U7 Ano2 642
-U7 Ano3 642
-U7 Ano4 642
-U8 Ano1 362
-U8 Ano2 362
-U8 Ano3 362
-U8 Ano4 362
-U9 Ano1 642
-U9 Ano2 642
-U9 Ano3 642
-U9 Ano4 642
-U10 Ano1 642
-U10 Ano2 642
-U10 Ano3 642
-U10 Ano4 642
-U11 Ano1 600
-U11 Ano2 600
-U11 Ano3 600
-U11 Ano4 600
-U12 Ano1 518
-U12 Ano2 518
-U12 Ano3 518
-U12 Ano4 518
-U13 Ano1 518
-U13 Ano2 518
-U13 Ano3 518
-U13 Ano4 518
-U14 Ano1 567
-U14 Ano2 567
-U14 Ano3 567
-U14 Ano4 567
-U15 Ano1 600
-U15 Ano2 600
-U15 Ano3 600
-U15 Ano4 600
-U16 Ano1 600
-U16 Ano2 600
-U16 Ano3 600
-U16 Ano4 600
-U17 Ano1 518
-U17 Ano2 518
-U17 Ano3 518
-U17 Ano4 518
-U18 Ano1 401
-U18 Ano2 401
-U18 Ano3 401
-U18 Ano4 401
-U19 Ano1 401
-U19 Ano2 401
-U19 Ano3 401
-U19 Ano4 401
-U20 Ano1 401
-U20 Ano2 401
-U20 Ano3 401
-U20 Ano4 401
-U21 Ano1 373
-U21 Ano2 373
-U21 Ano3 373
-U21 Ano4 373
-U22 Ano1 373
-U22 Ano2 373
-U22 Ano3 373
-U22 Ano4 373
-U23 Ano1 567
-U23 Ano2 567
-U23 Ano3 567
-U23 Ano4 567
-U24 Ano1 567
-U24 Ano2 567
-U24 Ano3 567
-U24 Ano4 567
-U25 Ano1 373
-U25 Ano2 373
-U25 Ano3 373
-U25 Ano4 373
-;
-
-# Area of cell h to be harvested
-param A :=
-U1 10.1
-U2 10.1
-U3 10.1
-U4 13.4
-U5 10.3
-U6 10.2
-U7 10.1
-U8 10.4
-U9 16.7
-U10 12.8
-U11 12.2
-U12 15.2
-U13 11.3
-U14 12.7
-U15 12.6
-U16 12.6
-U17 10
-U18 14.4
-U19 10.8
-U20 10.4
-U21 16.4
-U22 10
-U23 11.4
-U24 14.8
-U25 10.1
-;
-
-# harvesting cost of one hectare of cell h in time t
-param P :=
-U1 Ano1 8
-U1 Ano2 8
-U1 Ano3 8
-U1 Ano4 8
-U2 Ano1 8
-U2 Ano2 8
-U2 Ano3 8
-U2 Ano4 8
-U3 Ano1 8
-U3 Ano2 8
-U3 Ano3 8
-U3 Ano4 8
-U4 Ano1 8
-U4 Ano2 8
-U4 Ano3 8
-U4 Ano4 8
-U5 Ano1 8
-U5 Ano2 8
-U5 Ano3 8
-U5 Ano4 8
-U6 Ano1 8
-U6 Ano2 8
-U6 Ano3 8
-U6 Ano4 8
-U7 Ano1 8
-U7 Ano2 8
-U7 Ano3 8
-U7 Ano4 8
-U8 Ano1 8
-U8 Ano2 8
-U8 Ano3 8
-U8 Ano4 8
-U9 Ano1 8
-U9 Ano2 8
-U9 Ano3 8
-U9 Ano4 8
-U10 Ano1 8
-U10 Ano2 8
-U10 Ano3 8
-U10 Ano4 8
-U11 Ano1 8
-U11 Ano2 8
-U11 Ano3 8
-U11 Ano4 8
-U12 Ano1 8
-U12 Ano2 8
-U12 Ano3 8
-U12 Ano4 8
-U13 Ano1 8
-U13 Ano2 8
-U13 Ano3 8
-U13 Ano4 8
-U14 Ano1 8
-U14 Ano2 8
-U14 Ano3 8
-U14 Ano4 8
-U15 Ano1 8
-U15 Ano2 8
-U15 Ano3 8
-U15 Ano4 8
-U16 Ano1 8
-U16 Ano2 8
-U16 Ano3 8
-U16 Ano4 8
-U17 Ano1 8
-U17 Ano2 8
-U17 Ano3 8
-U17 Ano4 8
-U18 Ano1 8
-U18 Ano2 8
-U18 Ano3 8
-U18 Ano4 8
-U19 Ano1 8
-U19 Ano2 8
-U19 Ano3 8
-U19 Ano4 8
-U20 Ano1 8
-U20 Ano2 8
-U20 Ano3 8
-U20 Ano4 8
-U21 Ano1 8
-U21 Ano2 8
-U21 Ano3 8
-U21 Ano4 8
-U22 Ano1 8
-U22 Ano2 8
-U22 Ano3 8
-U22 Ano4 8
-U23 Ano1 8
-U23 Ano2 8
-U23 Ano3 8
-U23 Ano4 8
-U24 Ano1 8
-U24 Ano2 8
-U24 Ano3 8
-U24 Ano4 8
-U25 Ano1 8
-U25 Ano2 8
-U25 Ano3 8
-U25 Ano4 8
-;
-
-
-# prod cost
-param Q :=
-C01 Ano1 0.1
-C01 Ano2 0.1
-C01 Ano3 0.1
-C01 Ano4 0.1
-C02 Ano1 0.1
-C02 Ano2 0.1
-C02 Ano3 0.1
-C02 Ano4 0.1
-C03 Ano1 0.1
-C03 Ano2 0.1
-C03 Ano3 0.1
-C03 Ano4 0.1
-C04 Ano1 0.1
-C04 Ano2 0.1
-C04 Ano3 0.1
-C04 Ano4 0.1
-C05 Ano1 0.1
-C05 Ano2 0.1
-C05 Ano3 0.1
-C05 Ano4 0.1
-C06 Ano1 0.1
-C06 Ano2 0.1
-C06 Ano3 0.1
-C06 Ano4 0.1
-C07 Ano1 0.1
-C07 Ano2 0.1
-C07 Ano3 0.1
-C07 Ano4 0.1
-C08 Ano1 0.1
-C08 Ano2 0.1
-C08 Ano3 0.1
-C08 Ano4 0.1
-C09 Ano1 0.1
-C09 Ano2 0.1
-C09 Ano3 0.1
-C09 Ano4 0.1
-;
-
-# construction cost of one road in arc (k,l) in time t
-param C :=
-C01 C09 Ano1 1440
-C01 C09 Ano2 1309.09
-C01 C09 Ano3 1190.08
-C01 C09 Ano4 1081.89
-C01 C02 Ano1 1950
-C01 C02 Ano2 1772.73
-C01 C02 Ano3 1611.57
-C01 C02 Ano4 1465.06
-C02 C09 Ano1 1690
-C02 C09 Ano2 1536.36
-C02 C09 Ano3 1396.69
-C02 C09 Ano4 1269.72
-C09 C02 Ano1 1690
-C09 C02 Ano2 1536.36
-C09 C02 Ano3 1396.69
-C09 C02 Ano4 1269.72
-C09 E1 Ano1 2840
-C09 E1 Ano2 2581.82
-C09 E1 Ano3 2347.11
-C09 E1 Ano4 2133.73
-C09 C03 Ano1 2190
-C09 C03 Ano2 1990.91
-C09 C03 Ano3 1809.92
-C09 C03 Ano4 1645.38
-C04 C03 Ano1 1170
-C04 C03 Ano2 1063.64
-C04 C03 Ano3 966.94
-C04 C03 Ano4 879.04
-C04 I3 Ano1 1320
-C04 I3 Ano2 1200
-C04 I3 Ano3 1090.91
-C04 I3 Ano4 991.74
-C06 I3 Ano1 150
-C06 I3 Ano2 136.36
-C06 I3 Ano3 123.97
-C06 I3 Ano4 112.7
-C08 C06 Ano1 1950
-C08 C06 Ano2 1772.73
-C08 C06 Ano3 1611.57
-C08 C06 Ano4 1465.06
-C08 I2 Ano1 1110
-C08 I2 Ano2 1009.09
-C08 I2 Ano3 917.36
-C08 I2 Ano4 833.96
-C07 C08 Ano1 930
-C07 C08 Ano2 845.45
-C07 C08 Ano3 768.6
-C07 C08 Ano4 698.72
-C07 I1 Ano1 1950
-C07 I1 Ano2 1772.73
-C07 I1 Ano3 1611.57
-C07 I1 Ano4 1465.06
-C07 C05 Ano1 2130
-C07 C05 Ano2 1936.36
-C07 C05 Ano3 1760.33
-C07 C05 Ano4 1600.3
-;
-
-# unit transport cost through arc (k,l) in time t
-param D :=
-C01 C09 Ano1 1.9
-C01 C02 Ano1 3.25
-C02 C09 Ano1 2.35
-C09 C02 Ano1 2.35
-C09 E1 Ano1 4.1
-C09 C03 Ano1 3.65
-C04 C03 Ano1 1.95
-C04 I3 Ano1 2.2
-C06 I3 Ano1 0.25
-C08 C06 Ano1 3.25
-C08 I2 Ano1 1.85
-C07 C08 Ano1 1.55
-C07 I1 Ano1 3.15
-C07 C05 Ano1 3.25
-C02 C03 Ano1 3.6
-C03 E1 Ano1 1.4
-C05 I1 Ano1 0.95
-I1 I2 Ano1 1.1
-I2 I3 Ano1 1.45
-I3 E1 Ano1 1.95
-C01 C09 Ano2 1.9
-C01 C02 Ano2 3.25
-C02 C09 Ano2 2.35
-C09 C02 Ano2 2.35
-C09 E1 Ano2 4.1
-C09 C03 Ano2 3.65
-C04 C03 Ano2 1.95
-C04 I3 Ano2 2.2
-C06 I3 Ano2 0.25
-C08 C06 Ano2 3.25
-C08 I2 Ano2 1.85
-C07 C08 Ano2 1.55
-C07 I1 Ano2 3.15
-C07 C05 Ano2 3.25
-C02 C03 Ano2 3.6
-C03 E1 Ano2 1.4
-C05 I1 Ano2 0.95
-I1 I2 Ano2 1.1
-I2 I3 Ano2 1.45
-I3 E1 Ano2 1.95
-C01 C09 Ano3 1.9
-C01 C02 Ano3 3.25
-C02 C09 Ano3 2.35
-C09 C02 Ano3 2.35
-C09 E1 Ano3 4.1
-C09 C03 Ano3 3.65
-C04 C03 Ano3 1.95
-C04 I3 Ano3 2.2
-C06 I3 Ano3 0.25
-C08 C06 Ano3 3.25
-C08 I2 Ano3 1.85
-C07 C08 Ano3 1.55
-C07 I1 Ano3 3.15
-C07 C05 Ano3 3.25
-C02 C03 Ano3 3.6
-C03 E1 Ano3 1.4
-C05 I1 Ano3 0.95
-I1 I2 Ano3 1.1
-I2 I3 Ano3 1.45
-I3 E1 Ano3 1.95
-C01 C09 Ano4 1.9
-C01 C02 Ano4 3.25
-C02 C09 Ano4 2.35
-C09 C02 Ano4 2.35
-C09 E1 Ano4 4.1
-C09 C03 Ano4 3.65
-C04 C03 Ano4 1.95
-C04 I3 Ano4 2.2
-C06 I3 Ano4 0.25
-C08 C06 Ano4 3.25
-C08 I2 Ano4 1.85
-C07 C08 Ano4 1.55
-C07 I1 Ano4 3.15
-C07 C05 Ano4 3.25
-C02 C03 Ano4 3.6
-C03 E1 Ano4 1.4
-C05 I1 Ano4 0.95
-I1 I2 Ano4 1.1
-I2 I3 Ano4 1.45
-I3 E1 Ano4 1.95
-;
-
-#
-# Stochastic Parameters
-#
-
-# sale price at exit e in time period t
-param R := E1 Ano1 45
- E1 Ano2 30
- E1 Ano3 22
- E1 Ano4 35 ;
-
-# upper and lower bounds on wood supplied
-param Zlb := Ano1 30000
- Ano2 10000
- Ano3 12000
- Ano4 11000 ;
-param Zub := Ano1 40000
- Ano2 18000
- Ano3 22000
- Ano4 16000 ;
-param yr:=
-Ano1 1
-Ano2 1
-Ano3 1
-Ano4 1
-;
-
-set COriginNodeForCell[U1]:= C01;
-set COriginNodeForCell[U2]:= C01;
-set COriginNodeForCell[U3]:= C09;
-set COriginNodeForCell[U4]:= C01;
-set COriginNodeForCell[U5]:= C09;
-set COriginNodeForCell[U6]:= C02;
-set COriginNodeForCell[U7]:= C02;
-set COriginNodeForCell[U8]:= C09;
-set COriginNodeForCell[U9]:= C02;
-set COriginNodeForCell[U10]:= C02;
-set COriginNodeForCell[U11]:= C04;
-set COriginNodeForCell[U12]:= C03;
-set COriginNodeForCell[U13]:= C03;
-set COriginNodeForCell[U14]:= C05;
-set COriginNodeForCell[U15]:= C04;
-set COriginNodeForCell[U16]:= C04;
-set COriginNodeForCell[U17]:= C06;
-set COriginNodeForCell[U18]:= C06;
-set COriginNodeForCell[U19]:= C06;
-set COriginNodeForCell[U20]:= C08;
-set COriginNodeForCell[U21]:= C08;
-set COriginNodeForCell[U22]:= C07;
-set COriginNodeForCell[U23]:= C05;
-set COriginNodeForCell[U24]:= C05;
-set COriginNodeForCell[U25]:= C07;
-
diff --git a/examples/pysp/forestry/18scenarios/ForestChile18.dat b/examples/pysp/forestry/18scenarios/ForestChile18.dat
deleted file mode 100644
index dcbee19fa94..00000000000
--- a/examples/pysp/forestry/18scenarios/ForestChile18.dat
+++ /dev/null
@@ -1,562 +0,0 @@
-# fbv
-# mnr May 3, 2009
-
-# general nodes
-set Nodes := E1
- I1 I2 I3
- C01 C02 C03 C04 C05 C06 C07 C08 C09 ;
-
-# following the notation in the paper (note: nodes \equiv origins)
-
-#
-# Sets
-#
-
-set Times := Ano1 Ano2 Ano3 Ano4;
-
-set OriginNodes := C01 C02 C03 C04 C05 C06 C07 C08 C09 ;
-
-set IntersectionNodes := I1 I2 I3;
-
-set ExitNodes := E1;
-
-set HarvestCells := U1 U2 U3 U4 U5 U6 U7 U8 U9 U10 U11 U12 U13
- U14 U15 U16 U17 U18 U19 U20 U21 U22 U23 U24 U25;
-
-set HCellsForOrigin[C01] := U1 U2 U4 ;
-set HCellsForOrigin[C02] := U6 U7 U9 U10 ;
-set HCellsForOrigin[C03] := U12 U13 ;
-set HCellsForOrigin[C04] := U11 U15 U16 ;
-set HCellsForOrigin[C05] := U14 U23 U24 ;
-set HCellsForOrigin[C06] := U17 U18 U19 ;
-set HCellsForOrigin[C07] := U22 U25 ;
-set HCellsForOrigin[C08] := U20 U21 ;
-set HCellsForOrigin[C09] := U3 U5 U8 ;
-
-set ExistingRoads :=
-C02 C03
-C03 E1
-C05 I1
-I1 I2
-I2 I3
-I3 E1
-;
-
-set PotentialRoads :=
-C01 C09
-C01 C02
-C02 C09
-C09 C02
-C09 E1
-C09 C03
-C04 C03
-C04 I3
-C06 I3
-C08 C06
-C08 I2
-C07 C08
-C07 I1
-C07 C05
-;
-
-set AllRoads :=
-C02 C03
-C03 E1
-C05 I1
-I1 I2
-I2 I3
-I3 E1
-C01 C09
-C01 C02
-C02 C09
-C09 C02
-C09 E1
-C09 C03
-C04 C03
-C04 I3
-C06 I3
-C08 C06
-C08 I2
-C07 C08
-C07 I1
-C07 C05
-;
-
-#
-# Deterministic Parameters
-#
-
-# productivity of cell h if it is harvested in period t
-param a :=
-U1 Ano1 362
-U1 Ano2 362
-U1 Ano3 362
-U1 Ano4 362
-U2 Ano1 362
-U2 Ano2 362
-U2 Ano3 362
-U2 Ano4 362
-U3 Ano1 362
-U3 Ano2 362
-U3 Ano3 362
-U3 Ano4 362
-U4 Ano1 642
-U4 Ano2 642
-U4 Ano3 642
-U4 Ano4 642
-U5 Ano1 362
-U5 Ano2 362
-U5 Ano3 362
-U5 Ano4 362
-U6 Ano1 642
-U6 Ano2 642
-U6 Ano3 642
-U6 Ano4 642
-U7 Ano1 642
-U7 Ano2 642
-U7 Ano3 642
-U7 Ano4 642
-U8 Ano1 362
-U8 Ano2 362
-U8 Ano3 362
-U8 Ano4 362
-U9 Ano1 642
-U9 Ano2 642
-U9 Ano3 642
-U9 Ano4 642
-U10 Ano1 642
-U10 Ano2 642
-U10 Ano3 642
-U10 Ano4 642
-U11 Ano1 600
-U11 Ano2 600
-U11 Ano3 600
-U11 Ano4 600
-U12 Ano1 518
-U12 Ano2 518
-U12 Ano3 518
-U12 Ano4 518
-U13 Ano1 518
-U13 Ano2 518
-U13 Ano3 518
-U13 Ano4 518
-U14 Ano1 567
-U14 Ano2 567
-U14 Ano3 567
-U14 Ano4 567
-U15 Ano1 600
-U15 Ano2 600
-U15 Ano3 600
-U15 Ano4 600
-U16 Ano1 600
-U16 Ano2 600
-U16 Ano3 600
-U16 Ano4 600
-U17 Ano1 518
-U17 Ano2 518
-U17 Ano3 518
-U17 Ano4 518
-U18 Ano1 401
-U18 Ano2 401
-U18 Ano3 401
-U18 Ano4 401
-U19 Ano1 401
-U19 Ano2 401
-U19 Ano3 401
-U19 Ano4 401
-U20 Ano1 401
-U20 Ano2 401
-U20 Ano3 401
-U20 Ano4 401
-U21 Ano1 373
-U21 Ano2 373
-U21 Ano3 373
-U21 Ano4 373
-U22 Ano1 373
-U22 Ano2 373
-U22 Ano3 373
-U22 Ano4 373
-U23 Ano1 567
-U23 Ano2 567
-U23 Ano3 567
-U23 Ano4 567
-U24 Ano1 567
-U24 Ano2 567
-U24 Ano3 567
-U24 Ano4 567
-U25 Ano1 373
-U25 Ano2 373
-U25 Ano3 373
-U25 Ano4 373
-;
-
-# Area of cell h to be harvested
-param A :=
-U1 10.1
-U2 10.1
-U3 10.1
-U4 13.4
-U5 10.3
-U6 10.2
-U7 10.1
-U8 10.4
-U9 16.7
-U10 12.8
-U11 12.2
-U12 15.2
-U13 11.3
-U14 12.7
-U15 12.6
-U16 12.6
-U17 10
-U18 14.4
-U19 10.8
-U20 10.4
-U21 16.4
-U22 10
-U23 11.4
-U24 14.8
-U25 10.1
-;
-
-# harvesting cost of one hectare of cell h in time t
-param P :=
-U1 Ano1 8
-U1 Ano2 8
-U1 Ano3 8
-U1 Ano4 8
-U2 Ano1 8
-U2 Ano2 8
-U2 Ano3 8
-U2 Ano4 8
-U3 Ano1 8
-U3 Ano2 8
-U3 Ano3 8
-U3 Ano4 8
-U4 Ano1 8
-U4 Ano2 8
-U4 Ano3 8
-U4 Ano4 8
-U5 Ano1 8
-U5 Ano2 8
-U5 Ano3 8
-U5 Ano4 8
-U6 Ano1 8
-U6 Ano2 8
-U6 Ano3 8
-U6 Ano4 8
-U7 Ano1 8
-U7 Ano2 8
-U7 Ano3 8
-U7 Ano4 8
-U8 Ano1 8
-U8 Ano2 8
-U8 Ano3 8
-U8 Ano4 8
-U9 Ano1 8
-U9 Ano2 8
-U9 Ano3 8
-U9 Ano4 8
-U10 Ano1 8
-U10 Ano2 8
-U10 Ano3 8
-U10 Ano4 8
-U11 Ano1 8
-U11 Ano2 8
-U11 Ano3 8
-U11 Ano4 8
-U12 Ano1 8
-U12 Ano2 8
-U12 Ano3 8
-U12 Ano4 8
-U13 Ano1 8
-U13 Ano2 8
-U13 Ano3 8
-U13 Ano4 8
-U14 Ano1 8
-U14 Ano2 8
-U14 Ano3 8
-U14 Ano4 8
-U15 Ano1 8
-U15 Ano2 8
-U15 Ano3 8
-U15 Ano4 8
-U16 Ano1 8
-U16 Ano2 8
-U16 Ano3 8
-U16 Ano4 8
-U17 Ano1 8
-U17 Ano2 8
-U17 Ano3 8
-U17 Ano4 8
-U18 Ano1 8
-U18 Ano2 8
-U18 Ano3 8
-U18 Ano4 8
-U19 Ano1 8
-U19 Ano2 8
-U19 Ano3 8
-U19 Ano4 8
-U20 Ano1 8
-U20 Ano2 8
-U20 Ano3 8
-U20 Ano4 8
-U21 Ano1 8
-U21 Ano2 8
-U21 Ano3 8
-U21 Ano4 8
-U22 Ano1 8
-U22 Ano2 8
-U22 Ano3 8
-U22 Ano4 8
-U23 Ano1 8
-U23 Ano2 8
-U23 Ano3 8
-U23 Ano4 8
-U24 Ano1 8
-U24 Ano2 8
-U24 Ano3 8
-U24 Ano4 8
-U25 Ano1 8
-U25 Ano2 8
-U25 Ano3 8
-U25 Ano4 8
-;
-
-
-# prod cost
-param Q :=
-C01 Ano1 0.1
-C01 Ano2 0.1
-C01 Ano3 0.1
-C01 Ano4 0.1
-C02 Ano1 0.1
-C02 Ano2 0.1
-C02 Ano3 0.1
-C02 Ano4 0.1
-C03 Ano1 0.1
-C03 Ano2 0.1
-C03 Ano3 0.1
-C03 Ano4 0.1
-C04 Ano1 0.1
-C04 Ano2 0.1
-C04 Ano3 0.1
-C04 Ano4 0.1
-C05 Ano1 0.1
-C05 Ano2 0.1
-C05 Ano3 0.1
-C05 Ano4 0.1
-C06 Ano1 0.1
-C06 Ano2 0.1
-C06 Ano3 0.1
-C06 Ano4 0.1
-C07 Ano1 0.1
-C07 Ano2 0.1
-C07 Ano3 0.1
-C07 Ano4 0.1
-C08 Ano1 0.1
-C08 Ano2 0.1
-C08 Ano3 0.1
-C08 Ano4 0.1
-C09 Ano1 0.1
-C09 Ano2 0.1
-C09 Ano3 0.1
-C09 Ano4 0.1
-;
-
-# construction cost of one road in arc (k,l) in time t
-param C :=
-C01 C09 Ano1 1440
-C01 C09 Ano2 1309.09
-C01 C09 Ano3 1190.08
-C01 C09 Ano4 1081.89
-C01 C02 Ano1 1950
-C01 C02 Ano2 1772.73
-C01 C02 Ano3 1611.57
-C01 C02 Ano4 1465.06
-C02 C09 Ano1 1690
-C02 C09 Ano2 1536.36
-C02 C09 Ano3 1396.69
-C02 C09 Ano4 1269.72
-C09 C02 Ano1 1690
-C09 C02 Ano2 1536.36
-C09 C02 Ano3 1396.69
-C09 C02 Ano4 1269.72
-C09 E1 Ano1 2840
-C09 E1 Ano2 2581.82
-C09 E1 Ano3 2347.11
-C09 E1 Ano4 2133.73
-C09 C03 Ano1 2190
-C09 C03 Ano2 1990.91
-C09 C03 Ano3 1809.92
-C09 C03 Ano4 1645.38
-C04 C03 Ano1 1170
-C04 C03 Ano2 1063.64
-C04 C03 Ano3 966.94
-C04 C03 Ano4 879.04
-C04 I3 Ano1 1320
-C04 I3 Ano2 1200
-C04 I3 Ano3 1090.91
-C04 I3 Ano4 991.74
-C06 I3 Ano1 150
-C06 I3 Ano2 136.36
-C06 I3 Ano3 123.97
-C06 I3 Ano4 112.7
-C08 C06 Ano1 1950
-C08 C06 Ano2 1772.73
-C08 C06 Ano3 1611.57
-C08 C06 Ano4 1465.06
-C08 I2 Ano1 1110
-C08 I2 Ano2 1009.09
-C08 I2 Ano3 917.36
-C08 I2 Ano4 833.96
-C07 C08 Ano1 930
-C07 C08 Ano2 845.45
-C07 C08 Ano3 768.6
-C07 C08 Ano4 698.72
-C07 I1 Ano1 1950
-C07 I1 Ano2 1772.73
-C07 I1 Ano3 1611.57
-C07 I1 Ano4 1465.06
-C07 C05 Ano1 2130
-C07 C05 Ano2 1936.36
-C07 C05 Ano3 1760.33
-C07 C05 Ano4 1600.3
-;
-
-# unit transport cost through arc (k,l) in time t
-param D :=
-C01 C09 Ano1 1.9
-C01 C02 Ano1 3.25
-C02 C09 Ano1 2.35
-C09 C02 Ano1 2.35
-C09 E1 Ano1 4.1
-C09 C03 Ano1 3.65
-C04 C03 Ano1 1.95
-C04 I3 Ano1 2.2
-C06 I3 Ano1 0.25
-C08 C06 Ano1 3.25
-C08 I2 Ano1 1.85
-C07 C08 Ano1 1.55
-C07 I1 Ano1 3.15
-C07 C05 Ano1 3.25
-C02 C03 Ano1 3.6
-C03 E1 Ano1 1.4
-C05 I1 Ano1 0.95
-I1 I2 Ano1 1.1
-I2 I3 Ano1 1.45
-I3 E1 Ano1 1.95
-C01 C09 Ano2 1.9
-C01 C02 Ano2 3.25
-C02 C09 Ano2 2.35
-C09 C02 Ano2 2.35
-C09 E1 Ano2 4.1
-C09 C03 Ano2 3.65
-C04 C03 Ano2 1.95
-C04 I3 Ano2 2.2
-C06 I3 Ano2 0.25
-C08 C06 Ano2 3.25
-C08 I2 Ano2 1.85
-C07 C08 Ano2 1.55
-C07 I1 Ano2 3.15
-C07 C05 Ano2 3.25
-C02 C03 Ano2 3.6
-C03 E1 Ano2 1.4
-C05 I1 Ano2 0.95
-I1 I2 Ano2 1.1
-I2 I3 Ano2 1.45
-I3 E1 Ano2 1.95
-C01 C09 Ano3 1.9
-C01 C02 Ano3 3.25
-C02 C09 Ano3 2.35
-C09 C02 Ano3 2.35
-C09 E1 Ano3 4.1
-C09 C03 Ano3 3.65
-C04 C03 Ano3 1.95
-C04 I3 Ano3 2.2
-C06 I3 Ano3 0.25
-C08 C06 Ano3 3.25
-C08 I2 Ano3 1.85
-C07 C08 Ano3 1.55
-C07 I1 Ano3 3.15
-C07 C05 Ano3 3.25
-C02 C03 Ano3 3.6
-C03 E1 Ano3 1.4
-C05 I1 Ano3 0.95
-I1 I2 Ano3 1.1
-I2 I3 Ano3 1.45
-I3 E1 Ano3 1.95
-C01 C09 Ano4 1.9
-C01 C02 Ano4 3.25
-C02 C09 Ano4 2.35
-C09 C02 Ano4 2.35
-C09 E1 Ano4 4.1
-C09 C03 Ano4 3.65
-C04 C03 Ano4 1.95
-C04 I3 Ano4 2.2
-C06 I3 Ano4 0.25
-C08 C06 Ano4 3.25
-C08 I2 Ano4 1.85
-C07 C08 Ano4 1.55
-C07 I1 Ano4 3.15
-C07 C05 Ano4 3.25
-C02 C03 Ano4 3.6
-C03 E1 Ano4 1.4
-C05 I1 Ano4 0.95
-I1 I2 Ano4 1.1
-I2 I3 Ano4 1.45
-I3 E1 Ano4 1.95
-;
-
-#
-# Stochastic Parameters
-#
-
-# sale price at exit e in time period t
-param R := E1 Ano1 45
- E1 Ano2 30
- E1 Ano3 22
- E1 Ano4 20 ;
-
-# upper and lower bounds on wood supplied
-param Zlb := Ano1 30000
- Ano2 10000
- Ano3 12000
- Ano4 10000 ;
-param Zub := Ano1 40000
- Ano2 18000
- Ano3 22000
- Ano4 15000 ;
-param yr:=
-Ano1 1
-Ano2 1
-Ano3 1
-Ano4 1
-;
-
-set COriginNodeForCell[U1]:= C01;
-set COriginNodeForCell[U2]:= C01;
-set COriginNodeForCell[U3]:= C09;
-set COriginNodeForCell[U4]:= C01;
-set COriginNodeForCell[U5]:= C09;
-set COriginNodeForCell[U6]:= C02;
-set COriginNodeForCell[U7]:= C02;
-set COriginNodeForCell[U8]:= C09;
-set COriginNodeForCell[U9]:= C02;
-set COriginNodeForCell[U10]:= C02;
-set COriginNodeForCell[U11]:= C04;
-set COriginNodeForCell[U12]:= C03;
-set COriginNodeForCell[U13]:= C03;
-set COriginNodeForCell[U14]:= C05;
-set COriginNodeForCell[U15]:= C04;
-set COriginNodeForCell[U16]:= C04;
-set COriginNodeForCell[U17]:= C06;
-set COriginNodeForCell[U18]:= C06;
-set COriginNodeForCell[U19]:= C06;
-set COriginNodeForCell[U20]:= C08;
-set COriginNodeForCell[U21]:= C08;
-set COriginNodeForCell[U22]:= C07;
-set COriginNodeForCell[U23]:= C05;
-set COriginNodeForCell[U24]:= C05;
-set COriginNodeForCell[U25]:= C07;
-
diff --git a/examples/pysp/forestry/18scenarios/ForestChile2.dat b/examples/pysp/forestry/18scenarios/ForestChile2.dat
deleted file mode 100644
index cf039abfc41..00000000000
--- a/examples/pysp/forestry/18scenarios/ForestChile2.dat
+++ /dev/null
@@ -1,562 +0,0 @@
-# fbv
-# mnr May 3, 2009
-
-# general nodes
-set Nodes := E1
- I1 I2 I3
- C01 C02 C03 C04 C05 C06 C07 C08 C09 ;
-
-# following the notation in the paper (note: nodes \equiv origins)
-
-#
-# Sets
-#
-
-set Times := Ano1 Ano2 Ano3 Ano4;
-
-set OriginNodes := C01 C02 C03 C04 C05 C06 C07 C08 C09 ;
-
-set IntersectionNodes := I1 I2 I3;
-
-set ExitNodes := E1;
-
-set HarvestCells := U1 U2 U3 U4 U5 U6 U7 U8 U9 U10 U11 U12 U13
- U14 U15 U16 U17 U18 U19 U20 U21 U22 U23 U24 U25;
-
-set HCellsForOrigin[C01] := U1 U2 U4 ;
-set HCellsForOrigin[C02] := U6 U7 U9 U10 ;
-set HCellsForOrigin[C03] := U12 U13 ;
-set HCellsForOrigin[C04] := U11 U15 U16 ;
-set HCellsForOrigin[C05] := U14 U23 U24 ;
-set HCellsForOrigin[C06] := U17 U18 U19 ;
-set HCellsForOrigin[C07] := U22 U25 ;
-set HCellsForOrigin[C08] := U20 U21 ;
-set HCellsForOrigin[C09] := U3 U5 U8 ;
-
-set ExistingRoads :=
-C02 C03
-C03 E1
-C05 I1
-I1 I2
-I2 I3
-I3 E1
-;
-
-set PotentialRoads :=
-C01 C09
-C01 C02
-C02 C09
-C09 C02
-C09 E1
-C09 C03
-C04 C03
-C04 I3
-C06 I3
-C08 C06
-C08 I2
-C07 C08
-C07 I1
-C07 C05
-;
-
-set AllRoads :=
-C02 C03
-C03 E1
-C05 I1
-I1 I2
-I2 I3
-I3 E1
-C01 C09
-C01 C02
-C02 C09
-C09 C02
-C09 E1
-C09 C03
-C04 C03
-C04 I3
-C06 I3
-C08 C06
-C08 I2
-C07 C08
-C07 I1
-C07 C05
-;
-
-#
-# Deterministic Parameters
-#
-
-# productivity of cell h if it is harvested in period t
-param a :=
-U1 Ano1 362
-U1 Ano2 362
-U1 Ano3 362
-U1 Ano4 362
-U2 Ano1 362
-U2 Ano2 362
-U2 Ano3 362
-U2 Ano4 362
-U3 Ano1 362
-U3 Ano2 362
-U3 Ano3 362
-U3 Ano4 362
-U4 Ano1 642
-U4 Ano2 642
-U4 Ano3 642
-U4 Ano4 642
-U5 Ano1 362
-U5 Ano2 362
-U5 Ano3 362
-U5 Ano4 362
-U6 Ano1 642
-U6 Ano2 642
-U6 Ano3 642
-U6 Ano4 642
-U7 Ano1 642
-U7 Ano2 642
-U7 Ano3 642
-U7 Ano4 642
-U8 Ano1 362
-U8 Ano2 362
-U8 Ano3 362
-U8 Ano4 362
-U9 Ano1 642
-U9 Ano2 642
-U9 Ano3 642
-U9 Ano4 642
-U10 Ano1 642
-U10 Ano2 642
-U10 Ano3 642
-U10 Ano4 642
-U11 Ano1 600
-U11 Ano2 600
-U11 Ano3 600
-U11 Ano4 600
-U12 Ano1 518
-U12 Ano2 518
-U12 Ano3 518
-U12 Ano4 518
-U13 Ano1 518
-U13 Ano2 518
-U13 Ano3 518
-U13 Ano4 518
-U14 Ano1 567
-U14 Ano2 567
-U14 Ano3 567
-U14 Ano4 567
-U15 Ano1 600
-U15 Ano2 600
-U15 Ano3 600
-U15 Ano4 600
-U16 Ano1 600
-U16 Ano2 600
-U16 Ano3 600
-U16 Ano4 600
-U17 Ano1 518
-U17 Ano2 518
-U17 Ano3 518
-U17 Ano4 518
-U18 Ano1 401
-U18 Ano2 401
-U18 Ano3 401
-U18 Ano4 401
-U19 Ano1 401
-U19 Ano2 401
-U19 Ano3 401
-U19 Ano4 401
-U20 Ano1 401
-U20 Ano2 401
-U20 Ano3 401
-U20 Ano4 401
-U21 Ano1 373
-U21 Ano2 373
-U21 Ano3 373
-U21 Ano4 373
-U22 Ano1 373
-U22 Ano2 373
-U22 Ano3 373
-U22 Ano4 373
-U23 Ano1 567
-U23 Ano2 567
-U23 Ano3 567
-U23 Ano4 567
-U24 Ano1 567
-U24 Ano2 567
-U24 Ano3 567
-U24 Ano4 567
-U25 Ano1 373
-U25 Ano2 373
-U25 Ano3 373
-U25 Ano4 373
-;
-
-# Area of cell h to be harvested
-param A :=
-U1 10.1
-U2 10.1
-U3 10.1
-U4 13.4
-U5 10.3
-U6 10.2
-U7 10.1
-U8 10.4
-U9 16.7
-U10 12.8
-U11 12.2
-U12 15.2
-U13 11.3
-U14 12.7
-U15 12.6
-U16 12.6
-U17 10
-U18 14.4
-U19 10.8
-U20 10.4
-U21 16.4
-U22 10
-U23 11.4
-U24 14.8
-U25 10.1
-;
-
-# harvesting cost of one hectare of cell h in time t
-param P :=
-U1 Ano1 8
-U1 Ano2 8
-U1 Ano3 8
-U1 Ano4 8
-U2 Ano1 8
-U2 Ano2 8
-U2 Ano3 8
-U2 Ano4 8
-U3 Ano1 8
-U3 Ano2 8
-U3 Ano3 8
-U3 Ano4 8
-U4 Ano1 8
-U4 Ano2 8
-U4 Ano3 8
-U4 Ano4 8
-U5 Ano1 8
-U5 Ano2 8
-U5 Ano3 8
-U5 Ano4 8
-U6 Ano1 8
-U6 Ano2 8
-U6 Ano3 8
-U6 Ano4 8
-U7 Ano1 8
-U7 Ano2 8
-U7 Ano3 8
-U7 Ano4 8
-U8 Ano1 8
-U8 Ano2 8
-U8 Ano3 8
-U8 Ano4 8
-U9 Ano1 8
-U9 Ano2 8
-U9 Ano3 8
-U9 Ano4 8
-U10 Ano1 8
-U10 Ano2 8
-U10 Ano3 8
-U10 Ano4 8
-U11 Ano1 8
-U11 Ano2 8
-U11 Ano3 8
-U11 Ano4 8
-U12 Ano1 8
-U12 Ano2 8
-U12 Ano3 8
-U12 Ano4 8
-U13 Ano1 8
-U13 Ano2 8
-U13 Ano3 8
-U13 Ano4 8
-U14 Ano1 8
-U14 Ano2 8
-U14 Ano3 8
-U14 Ano4 8
-U15 Ano1 8
-U15 Ano2 8
-U15 Ano3 8
-U15 Ano4 8
-U16 Ano1 8
-U16 Ano2 8
-U16 Ano3 8
-U16 Ano4 8
-U17 Ano1 8
-U17 Ano2 8
-U17 Ano3 8
-U17 Ano4 8
-U18 Ano1 8
-U18 Ano2 8
-U18 Ano3 8
-U18 Ano4 8
-U19 Ano1 8
-U19 Ano2 8
-U19 Ano3 8
-U19 Ano4 8
-U20 Ano1 8
-U20 Ano2 8
-U20 Ano3 8
-U20 Ano4 8
-U21 Ano1 8
-U21 Ano2 8
-U21 Ano3 8
-U21 Ano4 8
-U22 Ano1 8
-U22 Ano2 8
-U22 Ano3 8
-U22 Ano4 8
-U23 Ano1 8
-U23 Ano2 8
-U23 Ano3 8
-U23 Ano4 8
-U24 Ano1 8
-U24 Ano2 8
-U24 Ano3 8
-U24 Ano4 8
-U25 Ano1 8
-U25 Ano2 8
-U25 Ano3 8
-U25 Ano4 8
-;
-
-
-# prod cost
-param Q :=
-C01 Ano1 0.1
-C01 Ano2 0.1
-C01 Ano3 0.1
-C01 Ano4 0.1
-C02 Ano1 0.1
-C02 Ano2 0.1
-C02 Ano3 0.1
-C02 Ano4 0.1
-C03 Ano1 0.1
-C03 Ano2 0.1
-C03 Ano3 0.1
-C03 Ano4 0.1
-C04 Ano1 0.1
-C04 Ano2 0.1
-C04 Ano3 0.1
-C04 Ano4 0.1
-C05 Ano1 0.1
-C05 Ano2 0.1
-C05 Ano3 0.1
-C05 Ano4 0.1
-C06 Ano1 0.1
-C06 Ano2 0.1
-C06 Ano3 0.1
-C06 Ano4 0.1
-C07 Ano1 0.1
-C07 Ano2 0.1
-C07 Ano3 0.1
-C07 Ano4 0.1
-C08 Ano1 0.1
-C08 Ano2 0.1
-C08 Ano3 0.1
-C08 Ano4 0.1
-C09 Ano1 0.1
-C09 Ano2 0.1
-C09 Ano3 0.1
-C09 Ano4 0.1
-;
-
-# construction cost of one road in arc (k,l) in time t
-param C :=
-C01 C09 Ano1 1440
-C01 C09 Ano2 1309.09
-C01 C09 Ano3 1190.08
-C01 C09 Ano4 1081.89
-C01 C02 Ano1 1950
-C01 C02 Ano2 1772.73
-C01 C02 Ano3 1611.57
-C01 C02 Ano4 1465.06
-C02 C09 Ano1 1690
-C02 C09 Ano2 1536.36
-C02 C09 Ano3 1396.69
-C02 C09 Ano4 1269.72
-C09 C02 Ano1 1690
-C09 C02 Ano2 1536.36
-C09 C02 Ano3 1396.69
-C09 C02 Ano4 1269.72
-C09 E1 Ano1 2840
-C09 E1 Ano2 2581.82
-C09 E1 Ano3 2347.11
-C09 E1 Ano4 2133.73
-C09 C03 Ano1 2190
-C09 C03 Ano2 1990.91
-C09 C03 Ano3 1809.92
-C09 C03 Ano4 1645.38
-C04 C03 Ano1 1170
-C04 C03 Ano2 1063.64
-C04 C03 Ano3 966.94
-C04 C03 Ano4 879.04
-C04 I3 Ano1 1320
-C04 I3 Ano2 1200
-C04 I3 Ano3 1090.91
-C04 I3 Ano4 991.74
-C06 I3 Ano1 150
-C06 I3 Ano2 136.36
-C06 I3 Ano3 123.97
-C06 I3 Ano4 112.7
-C08 C06 Ano1 1950
-C08 C06 Ano2 1772.73
-C08 C06 Ano3 1611.57
-C08 C06 Ano4 1465.06
-C08 I2 Ano1 1110
-C08 I2 Ano2 1009.09
-C08 I2 Ano3 917.36
-C08 I2 Ano4 833.96
-C07 C08 Ano1 930
-C07 C08 Ano2 845.45
-C07 C08 Ano3 768.6
-C07 C08 Ano4 698.72
-C07 I1 Ano1 1950
-C07 I1 Ano2 1772.73
-C07 I1 Ano3 1611.57
-C07 I1 Ano4 1465.06
-C07 C05 Ano1 2130
-C07 C05 Ano2 1936.36
-C07 C05 Ano3 1760.33
-C07 C05 Ano4 1600.3
-;
-
-# unit transport cost through arc (k,l) in time t
-param D :=
-C01 C09 Ano1 1.9
-C01 C02 Ano1 3.25
-C02 C09 Ano1 2.35
-C09 C02 Ano1 2.35
-C09 E1 Ano1 4.1
-C09 C03 Ano1 3.65
-C04 C03 Ano1 1.95
-C04 I3 Ano1 2.2
-C06 I3 Ano1 0.25
-C08 C06 Ano1 3.25
-C08 I2 Ano1 1.85
-C07 C08 Ano1 1.55
-C07 I1 Ano1 3.15
-C07 C05 Ano1 3.25
-C02 C03 Ano1 3.6
-C03 E1 Ano1 1.4
-C05 I1 Ano1 0.95
-I1 I2 Ano1 1.1
-I2 I3 Ano1 1.45
-I3 E1 Ano1 1.95
-C01 C09 Ano2 1.9
-C01 C02 Ano2 3.25
-C02 C09 Ano2 2.35
-C09 C02 Ano2 2.35
-C09 E1 Ano2 4.1
-C09 C03 Ano2 3.65
-C04 C03 Ano2 1.95
-C04 I3 Ano2 2.2
-C06 I3 Ano2 0.25
-C08 C06 Ano2 3.25
-C08 I2 Ano2 1.85
-C07 C08 Ano2 1.55
-C07 I1 Ano2 3.15
-C07 C05 Ano2 3.25
-C02 C03 Ano2 3.6
-C03 E1 Ano2 1.4
-C05 I1 Ano2 0.95
-I1 I2 Ano2 1.1
-I2 I3 Ano2 1.45
-I3 E1 Ano2 1.95
-C01 C09 Ano3 1.9
-C01 C02 Ano3 3.25
-C02 C09 Ano3 2.35
-C09 C02 Ano3 2.35
-C09 E1 Ano3 4.1
-C09 C03 Ano3 3.65
-C04 C03 Ano3 1.95
-C04 I3 Ano3 2.2
-C06 I3 Ano3 0.25
-C08 C06 Ano3 3.25
-C08 I2 Ano3 1.85
-C07 C08 Ano3 1.55
-C07 I1 Ano3 3.15
-C07 C05 Ano3 3.25
-C02 C03 Ano3 3.6
-C03 E1 Ano3 1.4
-C05 I1 Ano3 0.95
-I1 I2 Ano3 1.1
-I2 I3 Ano3 1.45
-I3 E1 Ano3 1.95
-C01 C09 Ano4 1.9
-C01 C02 Ano4 3.25
-C02 C09 Ano4 2.35
-C09 C02 Ano4 2.35
-C09 E1 Ano4 4.1
-C09 C03 Ano4 3.65
-C04 C03 Ano4 1.95
-C04 I3 Ano4 2.2
-C06 I3 Ano4 0.25
-C08 C06 Ano4 3.25
-C08 I2 Ano4 1.85
-C07 C08 Ano4 1.55
-C07 I1 Ano4 3.15
-C07 C05 Ano4 3.25
-C02 C03 Ano4 3.6
-C03 E1 Ano4 1.4
-C05 I1 Ano4 0.95
-I1 I2 Ano4 1.1
-I2 I3 Ano4 1.45
-I3 E1 Ano4 1.95
-;
-
-#
-# Stochastic Parameters
-#
-
-# sale price at exit e in time period t
-param R := E1 Ano1 45
- E1 Ano2 60
- E1 Ano3 65
- E1 Ano4 57 ;
-
-# upper and lower bounds on wood supplied
-param Zlb := Ano1 30000
- Ano2 27000
- Ano3 28000
- Ano4 20000 ;
-param Zub := Ano1 40000
- Ano2 50000
- Ano3 52000
- Ano4 51000 ;
-param yr:=
-Ano1 1
-Ano2 1
-Ano3 1
-Ano4 1
-;
-
-set COriginNodeForCell[U1]:= C01;
-set COriginNodeForCell[U2]:= C01;
-set COriginNodeForCell[U3]:= C09;
-set COriginNodeForCell[U4]:= C01;
-set COriginNodeForCell[U5]:= C09;
-set COriginNodeForCell[U6]:= C02;
-set COriginNodeForCell[U7]:= C02;
-set COriginNodeForCell[U8]:= C09;
-set COriginNodeForCell[U9]:= C02;
-set COriginNodeForCell[U10]:= C02;
-set COriginNodeForCell[U11]:= C04;
-set COriginNodeForCell[U12]:= C03;
-set COriginNodeForCell[U13]:= C03;
-set COriginNodeForCell[U14]:= C05;
-set COriginNodeForCell[U15]:= C04;
-set COriginNodeForCell[U16]:= C04;
-set COriginNodeForCell[U17]:= C06;
-set COriginNodeForCell[U18]:= C06;
-set COriginNodeForCell[U19]:= C06;
-set COriginNodeForCell[U20]:= C08;
-set COriginNodeForCell[U21]:= C08;
-set COriginNodeForCell[U22]:= C07;
-set COriginNodeForCell[U23]:= C05;
-set COriginNodeForCell[U24]:= C05;
-set COriginNodeForCell[U25]:= C07;
-
diff --git a/examples/pysp/forestry/18scenarios/ForestChile3.dat b/examples/pysp/forestry/18scenarios/ForestChile3.dat
deleted file mode 100644
index 5624038a5b0..00000000000
--- a/examples/pysp/forestry/18scenarios/ForestChile3.dat
+++ /dev/null
@@ -1,562 +0,0 @@
-# fbv
-# mnr May 3, 2009
-
-# general nodes
-set Nodes := E1
- I1 I2 I3
- C01 C02 C03 C04 C05 C06 C07 C08 C09 ;
-
-# following the notation in the paper (note: nodes \equiv origins)
-
-#
-# Sets
-#
-
-set Times := Ano1 Ano2 Ano3 Ano4;
-
-set OriginNodes := C01 C02 C03 C04 C05 C06 C07 C08 C09 ;
-
-set IntersectionNodes := I1 I2 I3;
-
-set ExitNodes := E1;
-
-set HarvestCells := U1 U2 U3 U4 U5 U6 U7 U8 U9 U10 U11 U12 U13
- U14 U15 U16 U17 U18 U19 U20 U21 U22 U23 U24 U25;
-
-set HCellsForOrigin[C01] := U1 U2 U4 ;
-set HCellsForOrigin[C02] := U6 U7 U9 U10 ;
-set HCellsForOrigin[C03] := U12 U13 ;
-set HCellsForOrigin[C04] := U11 U15 U16 ;
-set HCellsForOrigin[C05] := U14 U23 U24 ;
-set HCellsForOrigin[C06] := U17 U18 U19 ;
-set HCellsForOrigin[C07] := U22 U25 ;
-set HCellsForOrigin[C08] := U20 U21 ;
-set HCellsForOrigin[C09] := U3 U5 U8 ;
-
-set ExistingRoads :=
-C02 C03
-C03 E1
-C05 I1
-I1 I2
-I2 I3
-I3 E1
-;
-
-set PotentialRoads :=
-C01 C09
-C01 C02
-C02 C09
-C09 C02
-C09 E1
-C09 C03
-C04 C03
-C04 I3
-C06 I3
-C08 C06
-C08 I2
-C07 C08
-C07 I1
-C07 C05
-;
-
-set AllRoads :=
-C02 C03
-C03 E1
-C05 I1
-I1 I2
-I2 I3
-I3 E1
-C01 C09
-C01 C02
-C02 C09
-C09 C02
-C09 E1
-C09 C03
-C04 C03
-C04 I3
-C06 I3
-C08 C06
-C08 I2
-C07 C08
-C07 I1
-C07 C05
-;
-
-#
-# Deterministic Parameters
-#
-
-# productivity of cell h if it is harvested in period t
-param a :=
-U1 Ano1 362
-U1 Ano2 362
-U1 Ano3 362
-U1 Ano4 362
-U2 Ano1 362
-U2 Ano2 362
-U2 Ano3 362
-U2 Ano4 362
-U3 Ano1 362
-U3 Ano2 362
-U3 Ano3 362
-U3 Ano4 362
-U4 Ano1 642
-U4 Ano2 642
-U4 Ano3 642
-U4 Ano4 642
-U5 Ano1 362
-U5 Ano2 362
-U5 Ano3 362
-U5 Ano4 362
-U6 Ano1 642
-U6 Ano2 642
-U6 Ano3 642
-U6 Ano4 642
-U7 Ano1 642
-U7 Ano2 642
-U7 Ano3 642
-U7 Ano4 642
-U8 Ano1 362
-U8 Ano2 362
-U8 Ano3 362
-U8 Ano4 362
-U9 Ano1 642
-U9 Ano2 642
-U9 Ano3 642
-U9 Ano4 642
-U10 Ano1 642
-U10 Ano2 642
-U10 Ano3 642
-U10 Ano4 642
-U11 Ano1 600
-U11 Ano2 600
-U11 Ano3 600
-U11 Ano4 600
-U12 Ano1 518
-U12 Ano2 518
-U12 Ano3 518
-U12 Ano4 518
-U13 Ano1 518
-U13 Ano2 518
-U13 Ano3 518
-U13 Ano4 518
-U14 Ano1 567
-U14 Ano2 567
-U14 Ano3 567
-U14 Ano4 567
-U15 Ano1 600
-U15 Ano2 600
-U15 Ano3 600
-U15 Ano4 600
-U16 Ano1 600
-U16 Ano2 600
-U16 Ano3 600
-U16 Ano4 600
-U17 Ano1 518
-U17 Ano2 518
-U17 Ano3 518
-U17 Ano4 518
-U18 Ano1 401
-U18 Ano2 401
-U18 Ano3 401
-U18 Ano4 401
-U19 Ano1 401
-U19 Ano2 401
-U19 Ano3 401
-U19 Ano4 401
-U20 Ano1 401
-U20 Ano2 401
-U20 Ano3 401
-U20 Ano4 401
-U21 Ano1 373
-U21 Ano2 373
-U21 Ano3 373
-U21 Ano4 373
-U22 Ano1 373
-U22 Ano2 373
-U22 Ano3 373
-U22 Ano4 373
-U23 Ano1 567
-U23 Ano2 567
-U23 Ano3 567
-U23 Ano4 567
-U24 Ano1 567
-U24 Ano2 567
-U24 Ano3 567
-U24 Ano4 567
-U25 Ano1 373
-U25 Ano2 373
-U25 Ano3 373
-U25 Ano4 373
-;
-
-# Area of cell h to be harvested
-param A :=
-U1 10.1
-U2 10.1
-U3 10.1
-U4 13.4
-U5 10.3
-U6 10.2
-U7 10.1
-U8 10.4
-U9 16.7
-U10 12.8
-U11 12.2
-U12 15.2
-U13 11.3
-U14 12.7
-U15 12.6
-U16 12.6
-U17 10
-U18 14.4
-U19 10.8
-U20 10.4
-U21 16.4
-U22 10
-U23 11.4
-U24 14.8
-U25 10.1
-;
-
-# harvesting cost of one hectare of cell h in time t
-param P :=
-U1 Ano1 8
-U1 Ano2 8
-U1 Ano3 8
-U1 Ano4 8
-U2 Ano1 8
-U2 Ano2 8
-U2 Ano3 8
-U2 Ano4 8
-U3 Ano1 8
-U3 Ano2 8
-U3 Ano3 8
-U3 Ano4 8
-U4 Ano1 8
-U4 Ano2 8
-U4 Ano3 8
-U4 Ano4 8
-U5 Ano1 8
-U5 Ano2 8
-U5 Ano3 8
-U5 Ano4 8
-U6 Ano1 8
-U6 Ano2 8
-U6 Ano3 8
-U6 Ano4 8
-U7 Ano1 8
-U7 Ano2 8
-U7 Ano3 8
-U7 Ano4 8
-U8 Ano1 8
-U8 Ano2 8
-U8 Ano3 8
-U8 Ano4 8
-U9 Ano1 8
-U9 Ano2 8
-U9 Ano3 8
-U9 Ano4 8
-U10 Ano1 8
-U10 Ano2 8
-U10 Ano3 8
-U10 Ano4 8
-U11 Ano1 8
-U11 Ano2 8
-U11 Ano3 8
-U11 Ano4 8
-U12 Ano1 8
-U12 Ano2 8
-U12 Ano3 8
-U12 Ano4 8
-U13 Ano1 8
-U13 Ano2 8
-U13 Ano3 8
-U13 Ano4 8
-U14 Ano1 8
-U14 Ano2 8
-U14 Ano3 8
-U14 Ano4 8
-U15 Ano1 8
-U15 Ano2 8
-U15 Ano3 8
-U15 Ano4 8
-U16 Ano1 8
-U16 Ano2 8
-U16 Ano3 8
-U16 Ano4 8
-U17 Ano1 8
-U17 Ano2 8
-U17 Ano3 8
-U17 Ano4 8
-U18 Ano1 8
-U18 Ano2 8
-U18 Ano3 8
-U18 Ano4 8
-U19 Ano1 8
-U19 Ano2 8
-U19 Ano3 8
-U19 Ano4 8
-U20 Ano1 8
-U20 Ano2 8
-U20 Ano3 8
-U20 Ano4 8
-U21 Ano1 8
-U21 Ano2 8
-U21 Ano3 8
-U21 Ano4 8
-U22 Ano1 8
-U22 Ano2 8
-U22 Ano3 8
-U22 Ano4 8
-U23 Ano1 8
-U23 Ano2 8
-U23 Ano3 8
-U23 Ano4 8
-U24 Ano1 8
-U24 Ano2 8
-U24 Ano3 8
-U24 Ano4 8
-U25 Ano1 8
-U25 Ano2 8
-U25 Ano3 8
-U25 Ano4 8
-;
-
-
-# prod cost
-param Q :=
-C01 Ano1 0.1
-C01 Ano2 0.1
-C01 Ano3 0.1
-C01 Ano4 0.1
-C02 Ano1 0.1
-C02 Ano2 0.1
-C02 Ano3 0.1
-C02 Ano4 0.1
-C03 Ano1 0.1
-C03 Ano2 0.1
-C03 Ano3 0.1
-C03 Ano4 0.1
-C04 Ano1 0.1
-C04 Ano2 0.1
-C04 Ano3 0.1
-C04 Ano4 0.1
-C05 Ano1 0.1
-C05 Ano2 0.1
-C05 Ano3 0.1
-C05 Ano4 0.1
-C06 Ano1 0.1
-C06 Ano2 0.1
-C06 Ano3 0.1
-C06 Ano4 0.1
-C07 Ano1 0.1
-C07 Ano2 0.1
-C07 Ano3 0.1
-C07 Ano4 0.1
-C08 Ano1 0.1
-C08 Ano2 0.1
-C08 Ano3 0.1
-C08 Ano4 0.1
-C09 Ano1 0.1
-C09 Ano2 0.1
-C09 Ano3 0.1
-C09 Ano4 0.1
-;
-
-# construction cost of one road in arc (k,l) in time t
-param C :=
-C01 C09 Ano1 1440
-C01 C09 Ano2 1309.09
-C01 C09 Ano3 1190.08
-C01 C09 Ano4 1081.89
-C01 C02 Ano1 1950
-C01 C02 Ano2 1772.73
-C01 C02 Ano3 1611.57
-C01 C02 Ano4 1465.06
-C02 C09 Ano1 1690
-C02 C09 Ano2 1536.36
-C02 C09 Ano3 1396.69
-C02 C09 Ano4 1269.72
-C09 C02 Ano1 1690
-C09 C02 Ano2 1536.36
-C09 C02 Ano3 1396.69
-C09 C02 Ano4 1269.72
-C09 E1 Ano1 2840
-C09 E1 Ano2 2581.82
-C09 E1 Ano3 2347.11
-C09 E1 Ano4 2133.73
-C09 C03 Ano1 2190
-C09 C03 Ano2 1990.91
-C09 C03 Ano3 1809.92
-C09 C03 Ano4 1645.38
-C04 C03 Ano1 1170
-C04 C03 Ano2 1063.64
-C04 C03 Ano3 966.94
-C04 C03 Ano4 879.04
-C04 I3 Ano1 1320
-C04 I3 Ano2 1200
-C04 I3 Ano3 1090.91
-C04 I3 Ano4 991.74
-C06 I3 Ano1 150
-C06 I3 Ano2 136.36
-C06 I3 Ano3 123.97
-C06 I3 Ano4 112.7
-C08 C06 Ano1 1950
-C08 C06 Ano2 1772.73
-C08 C06 Ano3 1611.57
-C08 C06 Ano4 1465.06
-C08 I2 Ano1 1110
-C08 I2 Ano2 1009.09
-C08 I2 Ano3 917.36
-C08 I2 Ano4 833.96
-C07 C08 Ano1 930
-C07 C08 Ano2 845.45
-C07 C08 Ano3 768.6
-C07 C08 Ano4 698.72
-C07 I1 Ano1 1950
-C07 I1 Ano2 1772.73
-C07 I1 Ano3 1611.57
-C07 I1 Ano4 1465.06
-C07 C05 Ano1 2130
-C07 C05 Ano2 1936.36
-C07 C05 Ano3 1760.33
-C07 C05 Ano4 1600.3
-;
-
-# unit transport cost through arc (k,l) in time t
-param D :=
-C01 C09 Ano1 1.9
-C01 C02 Ano1 3.25
-C02 C09 Ano1 2.35
-C09 C02 Ano1 2.35
-C09 E1 Ano1 4.1
-C09 C03 Ano1 3.65
-C04 C03 Ano1 1.95
-C04 I3 Ano1 2.2
-C06 I3 Ano1 0.25
-C08 C06 Ano1 3.25
-C08 I2 Ano1 1.85
-C07 C08 Ano1 1.55
-C07 I1 Ano1 3.15
-C07 C05 Ano1 3.25
-C02 C03 Ano1 3.6
-C03 E1 Ano1 1.4
-C05 I1 Ano1 0.95
-I1 I2 Ano1 1.1
-I2 I3 Ano1 1.45
-I3 E1 Ano1 1.95
-C01 C09 Ano2 1.9
-C01 C02 Ano2 3.25
-C02 C09 Ano2 2.35
-C09 C02 Ano2 2.35
-C09 E1 Ano2 4.1
-C09 C03 Ano2 3.65
-C04 C03 Ano2 1.95
-C04 I3 Ano2 2.2
-C06 I3 Ano2 0.25
-C08 C06 Ano2 3.25
-C08 I2 Ano2 1.85
-C07 C08 Ano2 1.55
-C07 I1 Ano2 3.15
-C07 C05 Ano2 3.25
-C02 C03 Ano2 3.6
-C03 E1 Ano2 1.4
-C05 I1 Ano2 0.95
-I1 I2 Ano2 1.1
-I2 I3 Ano2 1.45
-I3 E1 Ano2 1.95
-C01 C09 Ano3 1.9
-C01 C02 Ano3 3.25
-C02 C09 Ano3 2.35
-C09 C02 Ano3 2.35
-C09 E1 Ano3 4.1
-C09 C03 Ano3 3.65
-C04 C03 Ano3 1.95
-C04 I3 Ano3 2.2
-C06 I3 Ano3 0.25
-C08 C06 Ano3 3.25
-C08 I2 Ano3 1.85
-C07 C08 Ano3 1.55
-C07 I1 Ano3 3.15
-C07 C05 Ano3 3.25
-C02 C03 Ano3 3.6
-C03 E1 Ano3 1.4
-C05 I1 Ano3 0.95
-I1 I2 Ano3 1.1
-I2 I3 Ano3 1.45
-I3 E1 Ano3 1.95
-C01 C09 Ano4 1.9
-C01 C02 Ano4 3.25
-C02 C09 Ano4 2.35
-C09 C02 Ano4 2.35
-C09 E1 Ano4 4.1
-C09 C03 Ano4 3.65
-C04 C03 Ano4 1.95
-C04 I3 Ano4 2.2
-C06 I3 Ano4 0.25
-C08 C06 Ano4 3.25
-C08 I2 Ano4 1.85
-C07 C08 Ano4 1.55
-C07 I1 Ano4 3.15
-C07 C05 Ano4 3.25
-C02 C03 Ano4 3.6
-C03 E1 Ano4 1.4
-C05 I1 Ano4 0.95
-I1 I2 Ano4 1.1
-I2 I3 Ano4 1.45
-I3 E1 Ano4 1.95
-;
-
-#
-# Stochastic Parameters
-#
-
-# sale price at exit e in time period t
-param R := E1 Ano1 45
- E1 Ano2 60
- E1 Ano3 55
- E1 Ano4 62 ;
-
-# upper and lower bounds on wood supplied
-param Zlb := Ano1 30000
- Ano2 27000
- Ano3 26000
- Ano4 25000 ;
-param Zub := Ano1 40000
- Ano2 50000
- Ano3 50000
- Ano4 48000 ;
-param yr:=
-Ano1 1
-Ano2 1
-Ano3 1
-Ano4 1
-;
-
-set COriginNodeForCell[U1]:= C01;
-set COriginNodeForCell[U2]:= C01;
-set COriginNodeForCell[U3]:= C09;
-set COriginNodeForCell[U4]:= C01;
-set COriginNodeForCell[U5]:= C09;
-set COriginNodeForCell[U6]:= C02;
-set COriginNodeForCell[U7]:= C02;
-set COriginNodeForCell[U8]:= C09;
-set COriginNodeForCell[U9]:= C02;
-set COriginNodeForCell[U10]:= C02;
-set COriginNodeForCell[U11]:= C04;
-set COriginNodeForCell[U12]:= C03;
-set COriginNodeForCell[U13]:= C03;
-set COriginNodeForCell[U14]:= C05;
-set COriginNodeForCell[U15]:= C04;
-set COriginNodeForCell[U16]:= C04;
-set COriginNodeForCell[U17]:= C06;
-set COriginNodeForCell[U18]:= C06;
-set COriginNodeForCell[U19]:= C06;
-set COriginNodeForCell[U20]:= C08;
-set COriginNodeForCell[U21]:= C08;
-set COriginNodeForCell[U22]:= C07;
-set COriginNodeForCell[U23]:= C05;
-set COriginNodeForCell[U24]:= C05;
-set COriginNodeForCell[U25]:= C07;
-
diff --git a/examples/pysp/forestry/18scenarios/ForestChile4.dat b/examples/pysp/forestry/18scenarios/ForestChile4.dat
deleted file mode 100644
index 110df5bfa1b..00000000000
--- a/examples/pysp/forestry/18scenarios/ForestChile4.dat
+++ /dev/null
@@ -1,562 +0,0 @@
-# fbv
-# mnr May 3, 2009
-
-# general nodes
-set Nodes := E1
- I1 I2 I3
- C01 C02 C03 C04 C05 C06 C07 C08 C09 ;
-
-# following the notation in the paper (note: nodes \equiv origins)
-
-#
-# Sets
-#
-
-set Times := Ano1 Ano2 Ano3 Ano4;
-
-set OriginNodes := C01 C02 C03 C04 C05 C06 C07 C08 C09 ;
-
-set IntersectionNodes := I1 I2 I3;
-
-set ExitNodes := E1;
-
-set HarvestCells := U1 U2 U3 U4 U5 U6 U7 U8 U9 U10 U11 U12 U13
- U14 U15 U16 U17 U18 U19 U20 U21 U22 U23 U24 U25;
-
-set HCellsForOrigin[C01] := U1 U2 U4 ;
-set HCellsForOrigin[C02] := U6 U7 U9 U10 ;
-set HCellsForOrigin[C03] := U12 U13 ;
-set HCellsForOrigin[C04] := U11 U15 U16 ;
-set HCellsForOrigin[C05] := U14 U23 U24 ;
-set HCellsForOrigin[C06] := U17 U18 U19 ;
-set HCellsForOrigin[C07] := U22 U25 ;
-set HCellsForOrigin[C08] := U20 U21 ;
-set HCellsForOrigin[C09] := U3 U5 U8 ;
-
-set ExistingRoads :=
-C02 C03
-C03 E1
-C05 I1
-I1 I2
-I2 I3
-I3 E1
-;
-
-set PotentialRoads :=
-C01 C09
-C01 C02
-C02 C09
-C09 C02
-C09 E1
-C09 C03
-C04 C03
-C04 I3
-C06 I3
-C08 C06
-C08 I2
-C07 C08
-C07 I1
-C07 C05
-;
-
-set AllRoads :=
-C02 C03
-C03 E1
-C05 I1
-I1 I2
-I2 I3
-I3 E1
-C01 C09
-C01 C02
-C02 C09
-C09 C02
-C09 E1
-C09 C03
-C04 C03
-C04 I3
-C06 I3
-C08 C06
-C08 I2
-C07 C08
-C07 I1
-C07 C05
-;
-
-#
-# Deterministic Parameters
-#
-
-# productivity of cell h if it is harvested in period t
-param a :=
-U1 Ano1 362
-U1 Ano2 362
-U1 Ano3 362
-U1 Ano4 362
-U2 Ano1 362
-U2 Ano2 362
-U2 Ano3 362
-U2 Ano4 362
-U3 Ano1 362
-U3 Ano2 362
-U3 Ano3 362
-U3 Ano4 362
-U4 Ano1 642
-U4 Ano2 642
-U4 Ano3 642
-U4 Ano4 642
-U5 Ano1 362
-U5 Ano2 362
-U5 Ano3 362
-U5 Ano4 362
-U6 Ano1 642
-U6 Ano2 642
-U6 Ano3 642
-U6 Ano4 642
-U7 Ano1 642
-U7 Ano2 642
-U7 Ano3 642
-U7 Ano4 642
-U8 Ano1 362
-U8 Ano2 362
-U8 Ano3 362
-U8 Ano4 362
-U9 Ano1 642
-U9 Ano2 642
-U9 Ano3 642
-U9 Ano4 642
-U10 Ano1 642
-U10 Ano2 642
-U10 Ano3 642
-U10 Ano4 642
-U11 Ano1 600
-U11 Ano2 600
-U11 Ano3 600
-U11 Ano4 600
-U12 Ano1 518
-U12 Ano2 518
-U12 Ano3 518
-U12 Ano4 518
-U13 Ano1 518
-U13 Ano2 518
-U13 Ano3 518
-U13 Ano4 518
-U14 Ano1 567
-U14 Ano2 567
-U14 Ano3 567
-U14 Ano4 567
-U15 Ano1 600
-U15 Ano2 600
-U15 Ano3 600
-U15 Ano4 600
-U16 Ano1 600
-U16 Ano2 600
-U16 Ano3 600
-U16 Ano4 600
-U17 Ano1 518
-U17 Ano2 518
-U17 Ano3 518
-U17 Ano4 518
-U18 Ano1 401
-U18 Ano2 401
-U18 Ano3 401
-U18 Ano4 401
-U19 Ano1 401
-U19 Ano2 401
-U19 Ano3 401
-U19 Ano4 401
-U20 Ano1 401
-U20 Ano2 401
-U20 Ano3 401
-U20 Ano4 401
-U21 Ano1 373
-U21 Ano2 373
-U21 Ano3 373
-U21 Ano4 373
-U22 Ano1 373
-U22 Ano2 373
-U22 Ano3 373
-U22 Ano4 373
-U23 Ano1 567
-U23 Ano2 567
-U23 Ano3 567
-U23 Ano4 567
-U24 Ano1 567
-U24 Ano2 567
-U24 Ano3 567
-U24 Ano4 567
-U25 Ano1 373
-U25 Ano2 373
-U25 Ano3 373
-U25 Ano4 373
-;
-
-# Area of cell h to be harvested
-param A :=
-U1 10.1
-U2 10.1
-U3 10.1
-U4 13.4
-U5 10.3
-U6 10.2
-U7 10.1
-U8 10.4
-U9 16.7
-U10 12.8
-U11 12.2
-U12 15.2
-U13 11.3
-U14 12.7
-U15 12.6
-U16 12.6
-U17 10
-U18 14.4
-U19 10.8
-U20 10.4
-U21 16.4
-U22 10
-U23 11.4
-U24 14.8
-U25 10.1
-;
-
-# harvesting cost of one hectare of cell h in time t
-param P :=
-U1 Ano1 8
-U1 Ano2 8
-U1 Ano3 8
-U1 Ano4 8
-U2 Ano1 8
-U2 Ano2 8
-U2 Ano3 8
-U2 Ano4 8
-U3 Ano1 8
-U3 Ano2 8
-U3 Ano3 8
-U3 Ano4 8
-U4 Ano1 8
-U4 Ano2 8
-U4 Ano3 8
-U4 Ano4 8
-U5 Ano1 8
-U5 Ano2 8
-U5 Ano3 8
-U5 Ano4 8
-U6 Ano1 8
-U6 Ano2 8
-U6 Ano3 8
-U6 Ano4 8
-U7 Ano1 8
-U7 Ano2 8
-U7 Ano3 8
-U7 Ano4 8
-U8 Ano1 8
-U8 Ano2 8
-U8 Ano3 8
-U8 Ano4 8
-U9 Ano1 8
-U9 Ano2 8
-U9 Ano3 8
-U9 Ano4 8
-U10 Ano1 8
-U10 Ano2 8
-U10 Ano3 8
-U10 Ano4 8
-U11 Ano1 8
-U11 Ano2 8
-U11 Ano3 8
-U11 Ano4 8
-U12 Ano1 8
-U12 Ano2 8
-U12 Ano3 8
-U12 Ano4 8
-U13 Ano1 8
-U13 Ano2 8
-U13 Ano3 8
-U13 Ano4 8
-U14 Ano1 8
-U14 Ano2 8
-U14 Ano3 8
-U14 Ano4 8
-U15 Ano1 8
-U15 Ano2 8
-U15 Ano3 8
-U15 Ano4 8
-U16 Ano1 8
-U16 Ano2 8
-U16 Ano3 8
-U16 Ano4 8
-U17 Ano1 8
-U17 Ano2 8
-U17 Ano3 8
-U17 Ano4 8
-U18 Ano1 8
-U18 Ano2 8
-U18 Ano3 8
-U18 Ano4 8
-U19 Ano1 8
-U19 Ano2 8
-U19 Ano3 8
-U19 Ano4 8
-U20 Ano1 8
-U20 Ano2 8
-U20 Ano3 8
-U20 Ano4 8
-U21 Ano1 8
-U21 Ano2 8
-U21 Ano3 8
-U21 Ano4 8
-U22 Ano1 8
-U22 Ano2 8
-U22 Ano3 8
-U22 Ano4 8
-U23 Ano1 8
-U23 Ano2 8
-U23 Ano3 8
-U23 Ano4 8
-U24 Ano1 8
-U24 Ano2 8
-U24 Ano3 8
-U24 Ano4 8
-U25 Ano1 8
-U25 Ano2 8
-U25 Ano3 8
-U25 Ano4 8
-;
-
-
-# prod cost
-param Q :=
-C01 Ano1 0.1
-C01 Ano2 0.1
-C01 Ano3 0.1
-C01 Ano4 0.1
-C02 Ano1 0.1
-C02 Ano2 0.1
-C02 Ano3 0.1
-C02 Ano4 0.1
-C03 Ano1 0.1
-C03 Ano2 0.1
-C03 Ano3 0.1
-C03 Ano4 0.1
-C04 Ano1 0.1
-C04 Ano2 0.1
-C04 Ano3 0.1
-C04 Ano4 0.1
-C05 Ano1 0.1
-C05 Ano2 0.1
-C05 Ano3 0.1
-C05 Ano4 0.1
-C06 Ano1 0.1
-C06 Ano2 0.1
-C06 Ano3 0.1
-C06 Ano4 0.1
-C07 Ano1 0.1
-C07 Ano2 0.1
-C07 Ano3 0.1
-C07 Ano4 0.1
-C08 Ano1 0.1
-C08 Ano2 0.1
-C08 Ano3 0.1
-C08 Ano4 0.1
-C09 Ano1 0.1
-C09 Ano2 0.1
-C09 Ano3 0.1
-C09 Ano4 0.1
-;
-
-# construction cost of one road in arc (k,l) in time t
-param C :=
-C01 C09 Ano1 1440
-C01 C09 Ano2 1309.09
-C01 C09 Ano3 1190.08
-C01 C09 Ano4 1081.89
-C01 C02 Ano1 1950
-C01 C02 Ano2 1772.73
-C01 C02 Ano3 1611.57
-C01 C02 Ano4 1465.06
-C02 C09 Ano1 1690
-C02 C09 Ano2 1536.36
-C02 C09 Ano3 1396.69
-C02 C09 Ano4 1269.72
-C09 C02 Ano1 1690
-C09 C02 Ano2 1536.36
-C09 C02 Ano3 1396.69
-C09 C02 Ano4 1269.72
-C09 E1 Ano1 2840
-C09 E1 Ano2 2581.82
-C09 E1 Ano3 2347.11
-C09 E1 Ano4 2133.73
-C09 C03 Ano1 2190
-C09 C03 Ano2 1990.91
-C09 C03 Ano3 1809.92
-C09 C03 Ano4 1645.38
-C04 C03 Ano1 1170
-C04 C03 Ano2 1063.64
-C04 C03 Ano3 966.94
-C04 C03 Ano4 879.04
-C04 I3 Ano1 1320
-C04 I3 Ano2 1200
-C04 I3 Ano3 1090.91
-C04 I3 Ano4 991.74
-C06 I3 Ano1 150
-C06 I3 Ano2 136.36
-C06 I3 Ano3 123.97
-C06 I3 Ano4 112.7
-C08 C06 Ano1 1950
-C08 C06 Ano2 1772.73
-C08 C06 Ano3 1611.57
-C08 C06 Ano4 1465.06
-C08 I2 Ano1 1110
-C08 I2 Ano2 1009.09
-C08 I2 Ano3 917.36
-C08 I2 Ano4 833.96
-C07 C08 Ano1 930
-C07 C08 Ano2 845.45
-C07 C08 Ano3 768.6
-C07 C08 Ano4 698.72
-C07 I1 Ano1 1950
-C07 I1 Ano2 1772.73
-C07 I1 Ano3 1611.57
-C07 I1 Ano4 1465.06
-C07 C05 Ano1 2130
-C07 C05 Ano2 1936.36
-C07 C05 Ano3 1760.33
-C07 C05 Ano4 1600.3
-;
-
-# unit transport cost through arc (k,l) in time t
-param D :=
-C01 C09 Ano1 1.9
-C01 C02 Ano1 3.25
-C02 C09 Ano1 2.35
-C09 C02 Ano1 2.35
-C09 E1 Ano1 4.1
-C09 C03 Ano1 3.65
-C04 C03 Ano1 1.95
-C04 I3 Ano1 2.2
-C06 I3 Ano1 0.25
-C08 C06 Ano1 3.25
-C08 I2 Ano1 1.85
-C07 C08 Ano1 1.55
-C07 I1 Ano1 3.15
-C07 C05 Ano1 3.25
-C02 C03 Ano1 3.6
-C03 E1 Ano1 1.4
-C05 I1 Ano1 0.95
-I1 I2 Ano1 1.1
-I2 I3 Ano1 1.45
-I3 E1 Ano1 1.95
-C01 C09 Ano2 1.9
-C01 C02 Ano2 3.25
-C02 C09 Ano2 2.35
-C09 C02 Ano2 2.35
-C09 E1 Ano2 4.1
-C09 C03 Ano2 3.65
-C04 C03 Ano2 1.95
-C04 I3 Ano2 2.2
-C06 I3 Ano2 0.25
-C08 C06 Ano2 3.25
-C08 I2 Ano2 1.85
-C07 C08 Ano2 1.55
-C07 I1 Ano2 3.15
-C07 C05 Ano2 3.25
-C02 C03 Ano2 3.6
-C03 E1 Ano2 1.4
-C05 I1 Ano2 0.95
-I1 I2 Ano2 1.1
-I2 I3 Ano2 1.45
-I3 E1 Ano2 1.95
-C01 C09 Ano3 1.9
-C01 C02 Ano3 3.25
-C02 C09 Ano3 2.35
-C09 C02 Ano3 2.35
-C09 E1 Ano3 4.1
-C09 C03 Ano3 3.65
-C04 C03 Ano3 1.95
-C04 I3 Ano3 2.2
-C06 I3 Ano3 0.25
-C08 C06 Ano3 3.25
-C08 I2 Ano3 1.85
-C07 C08 Ano3 1.55
-C07 I1 Ano3 3.15
-C07 C05 Ano3 3.25
-C02 C03 Ano3 3.6
-C03 E1 Ano3 1.4
-C05 I1 Ano3 0.95
-I1 I2 Ano3 1.1
-I2 I3 Ano3 1.45
-I3 E1 Ano3 1.95
-C01 C09 Ano4 1.9
-C01 C02 Ano4 3.25
-C02 C09 Ano4 2.35
-C09 C02 Ano4 2.35
-C09 E1 Ano4 4.1
-C09 C03 Ano4 3.65
-C04 C03 Ano4 1.95
-C04 I3 Ano4 2.2
-C06 I3 Ano4 0.25
-C08 C06 Ano4 3.25
-C08 I2 Ano4 1.85
-C07 C08 Ano4 1.55
-C07 I1 Ano4 3.15
-C07 C05 Ano4 3.25
-C02 C03 Ano4 3.6
-C03 E1 Ano4 1.4
-C05 I1 Ano4 0.95
-I1 I2 Ano4 1.1
-I2 I3 Ano4 1.45
-I3 E1 Ano4 1.95
-;
-
-#
-# Stochastic Parameters
-#
-
-# sale price at exit e in time period t
-param R := E1 Ano1 45
- E1 Ano2 60
- E1 Ano3 55
- E1 Ano4 50 ;
-
-# upper and lower bounds on wood supplied
-param Zlb := Ano1 30000
- Ano2 27000
- Ano3 26000
- Ano4 26000 ;
-param Zub := Ano1 40000
- Ano2 50000
- Ano3 50000
- Ano4 49000 ;
-param yr:=
-Ano1 1
-Ano2 1
-Ano3 1
-Ano4 1
-;
-
-set COriginNodeForCell[U1]:= C01;
-set COriginNodeForCell[U2]:= C01;
-set COriginNodeForCell[U3]:= C09;
-set COriginNodeForCell[U4]:= C01;
-set COriginNodeForCell[U5]:= C09;
-set COriginNodeForCell[U6]:= C02;
-set COriginNodeForCell[U7]:= C02;
-set COriginNodeForCell[U8]:= C09;
-set COriginNodeForCell[U9]:= C02;
-set COriginNodeForCell[U10]:= C02;
-set COriginNodeForCell[U11]:= C04;
-set COriginNodeForCell[U12]:= C03;
-set COriginNodeForCell[U13]:= C03;
-set COriginNodeForCell[U14]:= C05;
-set COriginNodeForCell[U15]:= C04;
-set COriginNodeForCell[U16]:= C04;
-set COriginNodeForCell[U17]:= C06;
-set COriginNodeForCell[U18]:= C06;
-set COriginNodeForCell[U19]:= C06;
-set COriginNodeForCell[U20]:= C08;
-set COriginNodeForCell[U21]:= C08;
-set COriginNodeForCell[U22]:= C07;
-set COriginNodeForCell[U23]:= C05;
-set COriginNodeForCell[U24]:= C05;
-set COriginNodeForCell[U25]:= C07;
-
diff --git a/examples/pysp/forestry/18scenarios/ForestChile5.dat b/examples/pysp/forestry/18scenarios/ForestChile5.dat
deleted file mode 100644
index 67af5c85179..00000000000
--- a/examples/pysp/forestry/18scenarios/ForestChile5.dat
+++ /dev/null
@@ -1,562 +0,0 @@
-# fbv
-# mnr May 3, 2009
-
-# general nodes
-set Nodes := E1
- I1 I2 I3
- C01 C02 C03 C04 C05 C06 C07 C08 C09 ;
-
-# following the notation in the paper (note: nodes \equiv origins)
-
-#
-# Sets
-#
-
-set Times := Ano1 Ano2 Ano3 Ano4;
-
-set OriginNodes := C01 C02 C03 C04 C05 C06 C07 C08 C09 ;
-
-set IntersectionNodes := I1 I2 I3;
-
-set ExitNodes := E1;
-
-set HarvestCells := U1 U2 U3 U4 U5 U6 U7 U8 U9 U10 U11 U12 U13
- U14 U15 U16 U17 U18 U19 U20 U21 U22 U23 U24 U25;
-
-set HCellsForOrigin[C01] := U1 U2 U4 ;
-set HCellsForOrigin[C02] := U6 U7 U9 U10 ;
-set HCellsForOrigin[C03] := U12 U13 ;
-set HCellsForOrigin[C04] := U11 U15 U16 ;
-set HCellsForOrigin[C05] := U14 U23 U24 ;
-set HCellsForOrigin[C06] := U17 U18 U19 ;
-set HCellsForOrigin[C07] := U22 U25 ;
-set HCellsForOrigin[C08] := U20 U21 ;
-set HCellsForOrigin[C09] := U3 U5 U8 ;
-
-set ExistingRoads :=
-C02 C03
-C03 E1
-C05 I1
-I1 I2
-I2 I3
-I3 E1
-;
-
-set PotentialRoads :=
-C01 C09
-C01 C02
-C02 C09
-C09 C02
-C09 E1
-C09 C03
-C04 C03
-C04 I3
-C06 I3
-C08 C06
-C08 I2
-C07 C08
-C07 I1
-C07 C05
-;
-
-set AllRoads :=
-C02 C03
-C03 E1
-C05 I1
-I1 I2
-I2 I3
-I3 E1
-C01 C09
-C01 C02
-C02 C09
-C09 C02
-C09 E1
-C09 C03
-C04 C03
-C04 I3
-C06 I3
-C08 C06
-C08 I2
-C07 C08
-C07 I1
-C07 C05
-;
-
-#
-# Deterministic Parameters
-#
-
-# productivity of cell h if it is harvested in period t
-param a :=
-U1 Ano1 362
-U1 Ano2 362
-U1 Ano3 362
-U1 Ano4 362
-U2 Ano1 362
-U2 Ano2 362
-U2 Ano3 362
-U2 Ano4 362
-U3 Ano1 362
-U3 Ano2 362
-U3 Ano3 362
-U3 Ano4 362
-U4 Ano1 642
-U4 Ano2 642
-U4 Ano3 642
-U4 Ano4 642
-U5 Ano1 362
-U5 Ano2 362
-U5 Ano3 362
-U5 Ano4 362
-U6 Ano1 642
-U6 Ano2 642
-U6 Ano3 642
-U6 Ano4 642
-U7 Ano1 642
-U7 Ano2 642
-U7 Ano3 642
-U7 Ano4 642
-U8 Ano1 362
-U8 Ano2 362
-U8 Ano3 362
-U8 Ano4 362
-U9 Ano1 642
-U9 Ano2 642
-U9 Ano3 642
-U9 Ano4 642
-U10 Ano1 642
-U10 Ano2 642
-U10 Ano3 642
-U10 Ano4 642
-U11 Ano1 600
-U11 Ano2 600
-U11 Ano3 600
-U11 Ano4 600
-U12 Ano1 518
-U12 Ano2 518
-U12 Ano3 518
-U12 Ano4 518
-U13 Ano1 518
-U13 Ano2 518
-U13 Ano3 518
-U13 Ano4 518
-U14 Ano1 567
-U14 Ano2 567
-U14 Ano3 567
-U14 Ano4 567
-U15 Ano1 600
-U15 Ano2 600
-U15 Ano3 600
-U15 Ano4 600
-U16 Ano1 600
-U16 Ano2 600
-U16 Ano3 600
-U16 Ano4 600
-U17 Ano1 518
-U17 Ano2 518
-U17 Ano3 518
-U17 Ano4 518
-U18 Ano1 401
-U18 Ano2 401
-U18 Ano3 401
-U18 Ano4 401
-U19 Ano1 401
-U19 Ano2 401
-U19 Ano3 401
-U19 Ano4 401
-U20 Ano1 401
-U20 Ano2 401
-U20 Ano3 401
-U20 Ano4 401
-U21 Ano1 373
-U21 Ano2 373
-U21 Ano3 373
-U21 Ano4 373
-U22 Ano1 373
-U22 Ano2 373
-U22 Ano3 373
-U22 Ano4 373
-U23 Ano1 567
-U23 Ano2 567
-U23 Ano3 567
-U23 Ano4 567
-U24 Ano1 567
-U24 Ano2 567
-U24 Ano3 567
-U24 Ano4 567
-U25 Ano1 373
-U25 Ano2 373
-U25 Ano3 373
-U25 Ano4 373
-;
-
-# Area of cell h to be harvested
-param A :=
-U1 10.1
-U2 10.1
-U3 10.1
-U4 13.4
-U5 10.3
-U6 10.2
-U7 10.1
-U8 10.4
-U9 16.7
-U10 12.8
-U11 12.2
-U12 15.2
-U13 11.3
-U14 12.7
-U15 12.6
-U16 12.6
-U17 10
-U18 14.4
-U19 10.8
-U20 10.4
-U21 16.4
-U22 10
-U23 11.4
-U24 14.8
-U25 10.1
-;
-
-# harvesting cost of one hectare of cell h in time t
-param P :=
-U1 Ano1 8
-U1 Ano2 8
-U1 Ano3 8
-U1 Ano4 8
-U2 Ano1 8
-U2 Ano2 8
-U2 Ano3 8
-U2 Ano4 8
-U3 Ano1 8
-U3 Ano2 8
-U3 Ano3 8
-U3 Ano4 8
-U4 Ano1 8
-U4 Ano2 8
-U4 Ano3 8
-U4 Ano4 8
-U5 Ano1 8
-U5 Ano2 8
-U5 Ano3 8
-U5 Ano4 8
-U6 Ano1 8
-U6 Ano2 8
-U6 Ano3 8
-U6 Ano4 8
-U7 Ano1 8
-U7 Ano2 8
-U7 Ano3 8
-U7 Ano4 8
-U8 Ano1 8
-U8 Ano2 8
-U8 Ano3 8
-U8 Ano4 8
-U9 Ano1 8
-U9 Ano2 8
-U9 Ano3 8
-U9 Ano4 8
-U10 Ano1 8
-U10 Ano2 8
-U10 Ano3 8
-U10 Ano4 8
-U11 Ano1 8
-U11 Ano2 8
-U11 Ano3 8
-U11 Ano4 8
-U12 Ano1 8
-U12 Ano2 8
-U12 Ano3 8
-U12 Ano4 8
-U13 Ano1 8
-U13 Ano2 8
-U13 Ano3 8
-U13 Ano4 8
-U14 Ano1 8
-U14 Ano2 8
-U14 Ano3 8
-U14 Ano4 8
-U15 Ano1 8
-U15 Ano2 8
-U15 Ano3 8
-U15 Ano4 8
-U16 Ano1 8
-U16 Ano2 8
-U16 Ano3 8
-U16 Ano4 8
-U17 Ano1 8
-U17 Ano2 8
-U17 Ano3 8
-U17 Ano4 8
-U18 Ano1 8
-U18 Ano2 8
-U18 Ano3 8
-U18 Ano4 8
-U19 Ano1 8
-U19 Ano2 8
-U19 Ano3 8
-U19 Ano4 8
-U20 Ano1 8
-U20 Ano2 8
-U20 Ano3 8
-U20 Ano4 8
-U21 Ano1 8
-U21 Ano2 8
-U21 Ano3 8
-U21 Ano4 8
-U22 Ano1 8
-U22 Ano2 8
-U22 Ano3 8
-U22 Ano4 8
-U23 Ano1 8
-U23 Ano2 8
-U23 Ano3 8
-U23 Ano4 8
-U24 Ano1 8
-U24 Ano2 8
-U24 Ano3 8
-U24 Ano4 8
-U25 Ano1 8
-U25 Ano2 8
-U25 Ano3 8
-U25 Ano4 8
-;
-
-
-# prod cost
-param Q :=
-C01 Ano1 0.1
-C01 Ano2 0.1
-C01 Ano3 0.1
-C01 Ano4 0.1
-C02 Ano1 0.1
-C02 Ano2 0.1
-C02 Ano3 0.1
-C02 Ano4 0.1
-C03 Ano1 0.1
-C03 Ano2 0.1
-C03 Ano3 0.1
-C03 Ano4 0.1
-C04 Ano1 0.1
-C04 Ano2 0.1
-C04 Ano3 0.1
-C04 Ano4 0.1
-C05 Ano1 0.1
-C05 Ano2 0.1
-C05 Ano3 0.1
-C05 Ano4 0.1
-C06 Ano1 0.1
-C06 Ano2 0.1
-C06 Ano3 0.1
-C06 Ano4 0.1
-C07 Ano1 0.1
-C07 Ano2 0.1
-C07 Ano3 0.1
-C07 Ano4 0.1
-C08 Ano1 0.1
-C08 Ano2 0.1
-C08 Ano3 0.1
-C08 Ano4 0.1
-C09 Ano1 0.1
-C09 Ano2 0.1
-C09 Ano3 0.1
-C09 Ano4 0.1
-;
-
-# construction cost of one road in arc (k,l) in time t
-param C :=
-C01 C09 Ano1 1440
-C01 C09 Ano2 1309.09
-C01 C09 Ano3 1190.08
-C01 C09 Ano4 1081.89
-C01 C02 Ano1 1950
-C01 C02 Ano2 1772.73
-C01 C02 Ano3 1611.57
-C01 C02 Ano4 1465.06
-C02 C09 Ano1 1690
-C02 C09 Ano2 1536.36
-C02 C09 Ano3 1396.69
-C02 C09 Ano4 1269.72
-C09 C02 Ano1 1690
-C09 C02 Ano2 1536.36
-C09 C02 Ano3 1396.69
-C09 C02 Ano4 1269.72
-C09 E1 Ano1 2840
-C09 E1 Ano2 2581.82
-C09 E1 Ano3 2347.11
-C09 E1 Ano4 2133.73
-C09 C03 Ano1 2190
-C09 C03 Ano2 1990.91
-C09 C03 Ano3 1809.92
-C09 C03 Ano4 1645.38
-C04 C03 Ano1 1170
-C04 C03 Ano2 1063.64
-C04 C03 Ano3 966.94
-C04 C03 Ano4 879.04
-C04 I3 Ano1 1320
-C04 I3 Ano2 1200
-C04 I3 Ano3 1090.91
-C04 I3 Ano4 991.74
-C06 I3 Ano1 150
-C06 I3 Ano2 136.36
-C06 I3 Ano3 123.97
-C06 I3 Ano4 112.7
-C08 C06 Ano1 1950
-C08 C06 Ano2 1772.73
-C08 C06 Ano3 1611.57
-C08 C06 Ano4 1465.06
-C08 I2 Ano1 1110
-C08 I2 Ano2 1009.09
-C08 I2 Ano3 917.36
-C08 I2 Ano4 833.96
-C07 C08 Ano1 930
-C07 C08 Ano2 845.45
-C07 C08 Ano3 768.6
-C07 C08 Ano4 698.72
-C07 I1 Ano1 1950
-C07 I1 Ano2 1772.73
-C07 I1 Ano3 1611.57
-C07 I1 Ano4 1465.06
-C07 C05 Ano1 2130
-C07 C05 Ano2 1936.36
-C07 C05 Ano3 1760.33
-C07 C05 Ano4 1600.3
-;
-
-# unit transport cost through arc (k,l) in time t
-param D :=
-C01 C09 Ano1 1.9
-C01 C02 Ano1 3.25
-C02 C09 Ano1 2.35
-C09 C02 Ano1 2.35
-C09 E1 Ano1 4.1
-C09 C03 Ano1 3.65
-C04 C03 Ano1 1.95
-C04 I3 Ano1 2.2
-C06 I3 Ano1 0.25
-C08 C06 Ano1 3.25
-C08 I2 Ano1 1.85
-C07 C08 Ano1 1.55
-C07 I1 Ano1 3.15
-C07 C05 Ano1 3.25
-C02 C03 Ano1 3.6
-C03 E1 Ano1 1.4
-C05 I1 Ano1 0.95
-I1 I2 Ano1 1.1
-I2 I3 Ano1 1.45
-I3 E1 Ano1 1.95
-C01 C09 Ano2 1.9
-C01 C02 Ano2 3.25
-C02 C09 Ano2 2.35
-C09 C02 Ano2 2.35
-C09 E1 Ano2 4.1
-C09 C03 Ano2 3.65
-C04 C03 Ano2 1.95
-C04 I3 Ano2 2.2
-C06 I3 Ano2 0.25
-C08 C06 Ano2 3.25
-C08 I2 Ano2 1.85
-C07 C08 Ano2 1.55
-C07 I1 Ano2 3.15
-C07 C05 Ano2 3.25
-C02 C03 Ano2 3.6
-C03 E1 Ano2 1.4
-C05 I1 Ano2 0.95
-I1 I2 Ano2 1.1
-I2 I3 Ano2 1.45
-I3 E1 Ano2 1.95
-C01 C09 Ano3 1.9
-C01 C02 Ano3 3.25
-C02 C09 Ano3 2.35
-C09 C02 Ano3 2.35
-C09 E1 Ano3 4.1
-C09 C03 Ano3 3.65
-C04 C03 Ano3 1.95
-C04 I3 Ano3 2.2
-C06 I3 Ano3 0.25
-C08 C06 Ano3 3.25
-C08 I2 Ano3 1.85
-C07 C08 Ano3 1.55
-C07 I1 Ano3 3.15
-C07 C05 Ano3 3.25
-C02 C03 Ano3 3.6
-C03 E1 Ano3 1.4
-C05 I1 Ano3 0.95
-I1 I2 Ano3 1.1
-I2 I3 Ano3 1.45
-I3 E1 Ano3 1.95
-C01 C09 Ano4 1.9
-C01 C02 Ano4 3.25
-C02 C09 Ano4 2.35
-C09 C02 Ano4 2.35
-C09 E1 Ano4 4.1
-C09 C03 Ano4 3.65
-C04 C03 Ano4 1.95
-C04 I3 Ano4 2.2
-C06 I3 Ano4 0.25
-C08 C06 Ano4 3.25
-C08 I2 Ano4 1.85
-C07 C08 Ano4 1.55
-C07 I1 Ano4 3.15
-C07 C05 Ano4 3.25
-C02 C03 Ano4 3.6
-C03 E1 Ano4 1.4
-C05 I1 Ano4 0.95
-I1 I2 Ano4 1.1
-I2 I3 Ano4 1.45
-I3 E1 Ano4 1.95
-;
-
-#
-# Stochastic Parameters
-#
-
-# sale price at exit e in time period t
-param R := E1 Ano1 45
- E1 Ano2 60
- E1 Ano3 45
- E1 Ano4 58 ;
-
-# upper and lower bounds on wood supplied
-param Zlb := Ano1 30000
- Ano2 27000
- Ano3 24000
- Ano4 26000 ;
-param Zub := Ano1 40000
- Ano2 50000
- Ano3 44000
- Ano4 48000 ;
-param yr:=
-Ano1 1
-Ano2 1
-Ano3 1
-Ano4 1
-;
-
-set COriginNodeForCell[U1]:= C01;
-set COriginNodeForCell[U2]:= C01;
-set COriginNodeForCell[U3]:= C09;
-set COriginNodeForCell[U4]:= C01;
-set COriginNodeForCell[U5]:= C09;
-set COriginNodeForCell[U6]:= C02;
-set COriginNodeForCell[U7]:= C02;
-set COriginNodeForCell[U8]:= C09;
-set COriginNodeForCell[U9]:= C02;
-set COriginNodeForCell[U10]:= C02;
-set COriginNodeForCell[U11]:= C04;
-set COriginNodeForCell[U12]:= C03;
-set COriginNodeForCell[U13]:= C03;
-set COriginNodeForCell[U14]:= C05;
-set COriginNodeForCell[U15]:= C04;
-set COriginNodeForCell[U16]:= C04;
-set COriginNodeForCell[U17]:= C06;
-set COriginNodeForCell[U18]:= C06;
-set COriginNodeForCell[U19]:= C06;
-set COriginNodeForCell[U20]:= C08;
-set COriginNodeForCell[U21]:= C08;
-set COriginNodeForCell[U22]:= C07;
-set COriginNodeForCell[U23]:= C05;
-set COriginNodeForCell[U24]:= C05;
-set COriginNodeForCell[U25]:= C07;
-
diff --git a/examples/pysp/forestry/18scenarios/ForestChile6.dat b/examples/pysp/forestry/18scenarios/ForestChile6.dat
deleted file mode 100644
index 561df12bb59..00000000000
--- a/examples/pysp/forestry/18scenarios/ForestChile6.dat
+++ /dev/null
@@ -1,562 +0,0 @@
-# fbv
-# mnr May 3, 2009
-
-# general nodes
-set Nodes := E1
- I1 I2 I3
- C01 C02 C03 C04 C05 C06 C07 C08 C09 ;
-
-# following the notation in the paper (note: nodes \equiv origins)
-
-#
-# Sets
-#
-
-set Times := Ano1 Ano2 Ano3 Ano4;
-
-set OriginNodes := C01 C02 C03 C04 C05 C06 C07 C08 C09 ;
-
-set IntersectionNodes := I1 I2 I3;
-
-set ExitNodes := E1;
-
-set HarvestCells := U1 U2 U3 U4 U5 U6 U7 U8 U9 U10 U11 U12 U13
- U14 U15 U16 U17 U18 U19 U20 U21 U22 U23 U24 U25;
-
-set HCellsForOrigin[C01] := U1 U2 U4 ;
-set HCellsForOrigin[C02] := U6 U7 U9 U10 ;
-set HCellsForOrigin[C03] := U12 U13 ;
-set HCellsForOrigin[C04] := U11 U15 U16 ;
-set HCellsForOrigin[C05] := U14 U23 U24 ;
-set HCellsForOrigin[C06] := U17 U18 U19 ;
-set HCellsForOrigin[C07] := U22 U25 ;
-set HCellsForOrigin[C08] := U20 U21 ;
-set HCellsForOrigin[C09] := U3 U5 U8 ;
-
-set ExistingRoads :=
-C02 C03
-C03 E1
-C05 I1
-I1 I2
-I2 I3
-I3 E1
-;
-
-set PotentialRoads :=
-C01 C09
-C01 C02
-C02 C09
-C09 C02
-C09 E1
-C09 C03
-C04 C03
-C04 I3
-C06 I3
-C08 C06
-C08 I2
-C07 C08
-C07 I1
-C07 C05
-;
-
-set AllRoads :=
-C02 C03
-C03 E1
-C05 I1
-I1 I2
-I2 I3
-I3 E1
-C01 C09
-C01 C02
-C02 C09
-C09 C02
-C09 E1
-C09 C03
-C04 C03
-C04 I3
-C06 I3
-C08 C06
-C08 I2
-C07 C08
-C07 I1
-C07 C05
-;
-
-#
-# Deterministic Parameters
-#
-
-# productivity of cell h if it is harvested in period t
-param a :=
-U1 Ano1 362
-U1 Ano2 362
-U1 Ano3 362
-U1 Ano4 362
-U2 Ano1 362
-U2 Ano2 362
-U2 Ano3 362
-U2 Ano4 362
-U3 Ano1 362
-U3 Ano2 362
-U3 Ano3 362
-U3 Ano4 362
-U4 Ano1 642
-U4 Ano2 642
-U4 Ano3 642
-U4 Ano4 642
-U5 Ano1 362
-U5 Ano2 362
-U5 Ano3 362
-U5 Ano4 362
-U6 Ano1 642
-U6 Ano2 642
-U6 Ano3 642
-U6 Ano4 642
-U7 Ano1 642
-U7 Ano2 642
-U7 Ano3 642
-U7 Ano4 642
-U8 Ano1 362
-U8 Ano2 362
-U8 Ano3 362
-U8 Ano4 362
-U9 Ano1 642
-U9 Ano2 642
-U9 Ano3 642
-U9 Ano4 642
-U10 Ano1 642
-U10 Ano2 642
-U10 Ano3 642
-U10 Ano4 642
-U11 Ano1 600
-U11 Ano2 600
-U11 Ano3 600
-U11 Ano4 600
-U12 Ano1 518
-U12 Ano2 518
-U12 Ano3 518
-U12 Ano4 518
-U13 Ano1 518
-U13 Ano2 518
-U13 Ano3 518
-U13 Ano4 518
-U14 Ano1 567
-U14 Ano2 567
-U14 Ano3 567
-U14 Ano4 567
-U15 Ano1 600
-U15 Ano2 600
-U15 Ano3 600
-U15 Ano4 600
-U16 Ano1 600
-U16 Ano2 600
-U16 Ano3 600
-U16 Ano4 600
-U17 Ano1 518
-U17 Ano2 518
-U17 Ano3 518
-U17 Ano4 518
-U18 Ano1 401
-U18 Ano2 401
-U18 Ano3 401
-U18 Ano4 401
-U19 Ano1 401
-U19 Ano2 401
-U19 Ano3 401
-U19 Ano4 401
-U20 Ano1 401
-U20 Ano2 401
-U20 Ano3 401
-U20 Ano4 401
-U21 Ano1 373
-U21 Ano2 373
-U21 Ano3 373
-U21 Ano4 373
-U22 Ano1 373
-U22 Ano2 373
-U22 Ano3 373
-U22 Ano4 373
-U23 Ano1 567
-U23 Ano2 567
-U23 Ano3 567
-U23 Ano4 567
-U24 Ano1 567
-U24 Ano2 567
-U24 Ano3 567
-U24 Ano4 567
-U25 Ano1 373
-U25 Ano2 373
-U25 Ano3 373
-U25 Ano4 373
-;
-
-# Area of cell h to be harvested
-param A :=
-U1 10.1
-U2 10.1
-U3 10.1
-U4 13.4
-U5 10.3
-U6 10.2
-U7 10.1
-U8 10.4
-U9 16.7
-U10 12.8
-U11 12.2
-U12 15.2
-U13 11.3
-U14 12.7
-U15 12.6
-U16 12.6
-U17 10
-U18 14.4
-U19 10.8
-U20 10.4
-U21 16.4
-U22 10
-U23 11.4
-U24 14.8
-U25 10.1
-;
-
-# harvesting cost of one hectare of cell h in time t
-param P :=
-U1 Ano1 8
-U1 Ano2 8
-U1 Ano3 8
-U1 Ano4 8
-U2 Ano1 8
-U2 Ano2 8
-U2 Ano3 8
-U2 Ano4 8
-U3 Ano1 8
-U3 Ano2 8
-U3 Ano3 8
-U3 Ano4 8
-U4 Ano1 8
-U4 Ano2 8
-U4 Ano3 8
-U4 Ano4 8
-U5 Ano1 8
-U5 Ano2 8
-U5 Ano3 8
-U5 Ano4 8
-U6 Ano1 8
-U6 Ano2 8
-U6 Ano3 8
-U6 Ano4 8
-U7 Ano1 8
-U7 Ano2 8
-U7 Ano3 8
-U7 Ano4 8
-U8 Ano1 8
-U8 Ano2 8
-U8 Ano3 8
-U8 Ano4 8
-U9 Ano1 8
-U9 Ano2 8
-U9 Ano3 8
-U9 Ano4 8
-U10 Ano1 8
-U10 Ano2 8
-U10 Ano3 8
-U10 Ano4 8
-U11 Ano1 8
-U11 Ano2 8
-U11 Ano3 8
-U11 Ano4 8
-U12 Ano1 8
-U12 Ano2 8
-U12 Ano3 8
-U12 Ano4 8
-U13 Ano1 8
-U13 Ano2 8
-U13 Ano3 8
-U13 Ano4 8
-U14 Ano1 8
-U14 Ano2 8
-U14 Ano3 8
-U14 Ano4 8
-U15 Ano1 8
-U15 Ano2 8
-U15 Ano3 8
-U15 Ano4 8
-U16 Ano1 8
-U16 Ano2 8
-U16 Ano3 8
-U16 Ano4 8
-U17 Ano1 8
-U17 Ano2 8
-U17 Ano3 8
-U17 Ano4 8
-U18 Ano1 8
-U18 Ano2 8
-U18 Ano3 8
-U18 Ano4 8
-U19 Ano1 8
-U19 Ano2 8
-U19 Ano3 8
-U19 Ano4 8
-U20 Ano1 8
-U20 Ano2 8
-U20 Ano3 8
-U20 Ano4 8
-U21 Ano1 8
-U21 Ano2 8
-U21 Ano3 8
-U21 Ano4 8
-U22 Ano1 8
-U22 Ano2 8
-U22 Ano3 8
-U22 Ano4 8
-U23 Ano1 8
-U23 Ano2 8
-U23 Ano3 8
-U23 Ano4 8
-U24 Ano1 8
-U24 Ano2 8
-U24 Ano3 8
-U24 Ano4 8
-U25 Ano1 8
-U25 Ano2 8
-U25 Ano3 8
-U25 Ano4 8
-;
-
-
-# prod cost
-param Q :=
-C01 Ano1 0.1
-C01 Ano2 0.1
-C01 Ano3 0.1
-C01 Ano4 0.1
-C02 Ano1 0.1
-C02 Ano2 0.1
-C02 Ano3 0.1
-C02 Ano4 0.1
-C03 Ano1 0.1
-C03 Ano2 0.1
-C03 Ano3 0.1
-C03 Ano4 0.1
-C04 Ano1 0.1
-C04 Ano2 0.1
-C04 Ano3 0.1
-C04 Ano4 0.1
-C05 Ano1 0.1
-C05 Ano2 0.1
-C05 Ano3 0.1
-C05 Ano4 0.1
-C06 Ano1 0.1
-C06 Ano2 0.1
-C06 Ano3 0.1
-C06 Ano4 0.1
-C07 Ano1 0.1
-C07 Ano2 0.1
-C07 Ano3 0.1
-C07 Ano4 0.1
-C08 Ano1 0.1
-C08 Ano2 0.1
-C08 Ano3 0.1
-C08 Ano4 0.1
-C09 Ano1 0.1
-C09 Ano2 0.1
-C09 Ano3 0.1
-C09 Ano4 0.1
-;
-
-# construction cost of one road in arc (k,l) in time t
-param C :=
-C01 C09 Ano1 1440
-C01 C09 Ano2 1309.09
-C01 C09 Ano3 1190.08
-C01 C09 Ano4 1081.89
-C01 C02 Ano1 1950
-C01 C02 Ano2 1772.73
-C01 C02 Ano3 1611.57
-C01 C02 Ano4 1465.06
-C02 C09 Ano1 1690
-C02 C09 Ano2 1536.36
-C02 C09 Ano3 1396.69
-C02 C09 Ano4 1269.72
-C09 C02 Ano1 1690
-C09 C02 Ano2 1536.36
-C09 C02 Ano3 1396.69
-C09 C02 Ano4 1269.72
-C09 E1 Ano1 2840
-C09 E1 Ano2 2581.82
-C09 E1 Ano3 2347.11
-C09 E1 Ano4 2133.73
-C09 C03 Ano1 2190
-C09 C03 Ano2 1990.91
-C09 C03 Ano3 1809.92
-C09 C03 Ano4 1645.38
-C04 C03 Ano1 1170
-C04 C03 Ano2 1063.64
-C04 C03 Ano3 966.94
-C04 C03 Ano4 879.04
-C04 I3 Ano1 1320
-C04 I3 Ano2 1200
-C04 I3 Ano3 1090.91
-C04 I3 Ano4 991.74
-C06 I3 Ano1 150
-C06 I3 Ano2 136.36
-C06 I3 Ano3 123.97
-C06 I3 Ano4 112.7
-C08 C06 Ano1 1950
-C08 C06 Ano2 1772.73
-C08 C06 Ano3 1611.57
-C08 C06 Ano4 1465.06
-C08 I2 Ano1 1110
-C08 I2 Ano2 1009.09
-C08 I2 Ano3 917.36
-C08 I2 Ano4 833.96
-C07 C08 Ano1 930
-C07 C08 Ano2 845.45
-C07 C08 Ano3 768.6
-C07 C08 Ano4 698.72
-C07 I1 Ano1 1950
-C07 I1 Ano2 1772.73
-C07 I1 Ano3 1611.57
-C07 I1 Ano4 1465.06
-C07 C05 Ano1 2130
-C07 C05 Ano2 1936.36
-C07 C05 Ano3 1760.33
-C07 C05 Ano4 1600.3
-;
-
-# unit transport cost through arc (k,l) in time t
-param D :=
-C01 C09 Ano1 1.9
-C01 C02 Ano1 3.25
-C02 C09 Ano1 2.35
-C09 C02 Ano1 2.35
-C09 E1 Ano1 4.1
-C09 C03 Ano1 3.65
-C04 C03 Ano1 1.95
-C04 I3 Ano1 2.2
-C06 I3 Ano1 0.25
-C08 C06 Ano1 3.25
-C08 I2 Ano1 1.85
-C07 C08 Ano1 1.55
-C07 I1 Ano1 3.15
-C07 C05 Ano1 3.25
-C02 C03 Ano1 3.6
-C03 E1 Ano1 1.4
-C05 I1 Ano1 0.95
-I1 I2 Ano1 1.1
-I2 I3 Ano1 1.45
-I3 E1 Ano1 1.95
-C01 C09 Ano2 1.9
-C01 C02 Ano2 3.25
-C02 C09 Ano2 2.35
-C09 C02 Ano2 2.35
-C09 E1 Ano2 4.1
-C09 C03 Ano2 3.65
-C04 C03 Ano2 1.95
-C04 I3 Ano2 2.2
-C06 I3 Ano2 0.25
-C08 C06 Ano2 3.25
-C08 I2 Ano2 1.85
-C07 C08 Ano2 1.55
-C07 I1 Ano2 3.15
-C07 C05 Ano2 3.25
-C02 C03 Ano2 3.6
-C03 E1 Ano2 1.4
-C05 I1 Ano2 0.95
-I1 I2 Ano2 1.1
-I2 I3 Ano2 1.45
-I3 E1 Ano2 1.95
-C01 C09 Ano3 1.9
-C01 C02 Ano3 3.25
-C02 C09 Ano3 2.35
-C09 C02 Ano3 2.35
-C09 E1 Ano3 4.1
-C09 C03 Ano3 3.65
-C04 C03 Ano3 1.95
-C04 I3 Ano3 2.2
-C06 I3 Ano3 0.25
-C08 C06 Ano3 3.25
-C08 I2 Ano3 1.85
-C07 C08 Ano3 1.55
-C07 I1 Ano3 3.15
-C07 C05 Ano3 3.25
-C02 C03 Ano3 3.6
-C03 E1 Ano3 1.4
-C05 I1 Ano3 0.95
-I1 I2 Ano3 1.1
-I2 I3 Ano3 1.45
-I3 E1 Ano3 1.95
-C01 C09 Ano4 1.9
-C01 C02 Ano4 3.25
-C02 C09 Ano4 2.35
-C09 C02 Ano4 2.35
-C09 E1 Ano4 4.1
-C09 C03 Ano4 3.65
-C04 C03 Ano4 1.95
-C04 I3 Ano4 2.2
-C06 I3 Ano4 0.25
-C08 C06 Ano4 3.25
-C08 I2 Ano4 1.85
-C07 C08 Ano4 1.55
-C07 I1 Ano4 3.15
-C07 C05 Ano4 3.25
-C02 C03 Ano4 3.6
-C03 E1 Ano4 1.4
-C05 I1 Ano4 0.95
-I1 I2 Ano4 1.1
-I2 I3 Ano4 1.45
-I3 E1 Ano4 1.95
-;
-
-#
-# Stochastic Parameters
-#
-
-# sale price at exit e in time period t
-param R := E1 Ano1 45
- E1 Ano2 60
- E1 Ano3 45
- E1 Ano4 48 ;
-
-# upper and lower bounds on wood supplied
-param Zlb := Ano1 30000
- Ano2 27000
- Ano3 24000
- Ano4 22000 ;
-param Zub := Ano1 40000
- Ano2 50000
- Ano3 44000
- Ano4 40000 ;
-param yr:=
-Ano1 1
-Ano2 1
-Ano3 1
-Ano4 1
-;
-
-set COriginNodeForCell[U1]:= C01;
-set COriginNodeForCell[U2]:= C01;
-set COriginNodeForCell[U3]:= C09;
-set COriginNodeForCell[U4]:= C01;
-set COriginNodeForCell[U5]:= C09;
-set COriginNodeForCell[U6]:= C02;
-set COriginNodeForCell[U7]:= C02;
-set COriginNodeForCell[U8]:= C09;
-set COriginNodeForCell[U9]:= C02;
-set COriginNodeForCell[U10]:= C02;
-set COriginNodeForCell[U11]:= C04;
-set COriginNodeForCell[U12]:= C03;
-set COriginNodeForCell[U13]:= C03;
-set COriginNodeForCell[U14]:= C05;
-set COriginNodeForCell[U15]:= C04;
-set COriginNodeForCell[U16]:= C04;
-set COriginNodeForCell[U17]:= C06;
-set COriginNodeForCell[U18]:= C06;
-set COriginNodeForCell[U19]:= C06;
-set COriginNodeForCell[U20]:= C08;
-set COriginNodeForCell[U21]:= C08;
-set COriginNodeForCell[U22]:= C07;
-set COriginNodeForCell[U23]:= C05;
-set COriginNodeForCell[U24]:= C05;
-set COriginNodeForCell[U25]:= C07;
-
diff --git a/examples/pysp/forestry/18scenarios/ForestChile7.dat b/examples/pysp/forestry/18scenarios/ForestChile7.dat
deleted file mode 100644
index 79fc76653a0..00000000000
--- a/examples/pysp/forestry/18scenarios/ForestChile7.dat
+++ /dev/null
@@ -1,562 +0,0 @@
-# fbv
-# mnr May 3, 2009
-
-# general nodes
-set Nodes := E1
- I1 I2 I3
- C01 C02 C03 C04 C05 C06 C07 C08 C09 ;
-
-# following the notation in the paper (note: nodes \equiv origins)
-
-#
-# Sets
-#
-
-set Times := Ano1 Ano2 Ano3 Ano4;
-
-set OriginNodes := C01 C02 C03 C04 C05 C06 C07 C08 C09 ;
-
-set IntersectionNodes := I1 I2 I3;
-
-set ExitNodes := E1;
-
-set HarvestCells := U1 U2 U3 U4 U5 U6 U7 U8 U9 U10 U11 U12 U13
- U14 U15 U16 U17 U18 U19 U20 U21 U22 U23 U24 U25;
-
-set HCellsForOrigin[C01] := U1 U2 U4 ;
-set HCellsForOrigin[C02] := U6 U7 U9 U10 ;
-set HCellsForOrigin[C03] := U12 U13 ;
-set HCellsForOrigin[C04] := U11 U15 U16 ;
-set HCellsForOrigin[C05] := U14 U23 U24 ;
-set HCellsForOrigin[C06] := U17 U18 U19 ;
-set HCellsForOrigin[C07] := U22 U25 ;
-set HCellsForOrigin[C08] := U20 U21 ;
-set HCellsForOrigin[C09] := U3 U5 U8 ;
-
-set ExistingRoads :=
-C02 C03
-C03 E1
-C05 I1
-I1 I2
-I2 I3
-I3 E1
-;
-
-set PotentialRoads :=
-C01 C09
-C01 C02
-C02 C09
-C09 C02
-C09 E1
-C09 C03
-C04 C03
-C04 I3
-C06 I3
-C08 C06
-C08 I2
-C07 C08
-C07 I1
-C07 C05
-;
-
-set AllRoads :=
-C02 C03
-C03 E1
-C05 I1
-I1 I2
-I2 I3
-I3 E1
-C01 C09
-C01 C02
-C02 C09
-C09 C02
-C09 E1
-C09 C03
-C04 C03
-C04 I3
-C06 I3
-C08 C06
-C08 I2
-C07 C08
-C07 I1
-C07 C05
-;
-
-#
-# Deterministic Parameters
-#
-
-# productivity of cell h if it is harvested in period t
-param a :=
-U1 Ano1 362
-U1 Ano2 362
-U1 Ano3 362
-U1 Ano4 362
-U2 Ano1 362
-U2 Ano2 362
-U2 Ano3 362
-U2 Ano4 362
-U3 Ano1 362
-U3 Ano2 362
-U3 Ano3 362
-U3 Ano4 362
-U4 Ano1 642
-U4 Ano2 642
-U4 Ano3 642
-U4 Ano4 642
-U5 Ano1 362
-U5 Ano2 362
-U5 Ano3 362
-U5 Ano4 362
-U6 Ano1 642
-U6 Ano2 642
-U6 Ano3 642
-U6 Ano4 642
-U7 Ano1 642
-U7 Ano2 642
-U7 Ano3 642
-U7 Ano4 642
-U8 Ano1 362
-U8 Ano2 362
-U8 Ano3 362
-U8 Ano4 362
-U9 Ano1 642
-U9 Ano2 642
-U9 Ano3 642
-U9 Ano4 642
-U10 Ano1 642
-U10 Ano2 642
-U10 Ano3 642
-U10 Ano4 642
-U11 Ano1 600
-U11 Ano2 600
-U11 Ano3 600
-U11 Ano4 600
-U12 Ano1 518
-U12 Ano2 518
-U12 Ano3 518
-U12 Ano4 518
-U13 Ano1 518
-U13 Ano2 518
-U13 Ano3 518
-U13 Ano4 518
-U14 Ano1 567
-U14 Ano2 567
-U14 Ano3 567
-U14 Ano4 567
-U15 Ano1 600
-U15 Ano2 600
-U15 Ano3 600
-U15 Ano4 600
-U16 Ano1 600
-U16 Ano2 600
-U16 Ano3 600
-U16 Ano4 600
-U17 Ano1 518
-U17 Ano2 518
-U17 Ano3 518
-U17 Ano4 518
-U18 Ano1 401
-U18 Ano2 401
-U18 Ano3 401
-U18 Ano4 401
-U19 Ano1 401
-U19 Ano2 401
-U19 Ano3 401
-U19 Ano4 401
-U20 Ano1 401
-U20 Ano2 401
-U20 Ano3 401
-U20 Ano4 401
-U21 Ano1 373
-U21 Ano2 373
-U21 Ano3 373
-U21 Ano4 373
-U22 Ano1 373
-U22 Ano2 373
-U22 Ano3 373
-U22 Ano4 373
-U23 Ano1 567
-U23 Ano2 567
-U23 Ano3 567
-U23 Ano4 567
-U24 Ano1 567
-U24 Ano2 567
-U24 Ano3 567
-U24 Ano4 567
-U25 Ano1 373
-U25 Ano2 373
-U25 Ano3 373
-U25 Ano4 373
-;
-
-# Area of cell h to be harvested
-param A :=
-U1 10.1
-U2 10.1
-U3 10.1
-U4 13.4
-U5 10.3
-U6 10.2
-U7 10.1
-U8 10.4
-U9 16.7
-U10 12.8
-U11 12.2
-U12 15.2
-U13 11.3
-U14 12.7
-U15 12.6
-U16 12.6
-U17 10
-U18 14.4
-U19 10.8
-U20 10.4
-U21 16.4
-U22 10
-U23 11.4
-U24 14.8
-U25 10.1
-;
-
-# harvesting cost of one hectare of cell h in time t
-param P :=
-U1 Ano1 8
-U1 Ano2 8
-U1 Ano3 8
-U1 Ano4 8
-U2 Ano1 8
-U2 Ano2 8
-U2 Ano3 8
-U2 Ano4 8
-U3 Ano1 8
-U3 Ano2 8
-U3 Ano3 8
-U3 Ano4 8
-U4 Ano1 8
-U4 Ano2 8
-U4 Ano3 8
-U4 Ano4 8
-U5 Ano1 8
-U5 Ano2 8
-U5 Ano3 8
-U5 Ano4 8
-U6 Ano1 8
-U6 Ano2 8
-U6 Ano3 8
-U6 Ano4 8
-U7 Ano1 8
-U7 Ano2 8
-U7 Ano3 8
-U7 Ano4 8
-U8 Ano1 8
-U8 Ano2 8
-U8 Ano3 8
-U8 Ano4 8
-U9 Ano1 8
-U9 Ano2 8
-U9 Ano3 8
-U9 Ano4 8
-U10 Ano1 8
-U10 Ano2 8
-U10 Ano3 8
-U10 Ano4 8
-U11 Ano1 8
-U11 Ano2 8
-U11 Ano3 8
-U11 Ano4 8
-U12 Ano1 8
-U12 Ano2 8
-U12 Ano3 8
-U12 Ano4 8
-U13 Ano1 8
-U13 Ano2 8
-U13 Ano3 8
-U13 Ano4 8
-U14 Ano1 8
-U14 Ano2 8
-U14 Ano3 8
-U14 Ano4 8
-U15 Ano1 8
-U15 Ano2 8
-U15 Ano3 8
-U15 Ano4 8
-U16 Ano1 8
-U16 Ano2 8
-U16 Ano3 8
-U16 Ano4 8
-U17 Ano1 8
-U17 Ano2 8
-U17 Ano3 8
-U17 Ano4 8
-U18 Ano1 8
-U18 Ano2 8
-U18 Ano3 8
-U18 Ano4 8
-U19 Ano1 8
-U19 Ano2 8
-U19 Ano3 8
-U19 Ano4 8
-U20 Ano1 8
-U20 Ano2 8
-U20 Ano3 8
-U20 Ano4 8
-U21 Ano1 8
-U21 Ano2 8
-U21 Ano3 8
-U21 Ano4 8
-U22 Ano1 8
-U22 Ano2 8
-U22 Ano3 8
-U22 Ano4 8
-U23 Ano1 8
-U23 Ano2 8
-U23 Ano3 8
-U23 Ano4 8
-U24 Ano1 8
-U24 Ano2 8
-U24 Ano3 8
-U24 Ano4 8
-U25 Ano1 8
-U25 Ano2 8
-U25 Ano3 8
-U25 Ano4 8
-;
-
-
-# prod cost
-param Q :=
-C01 Ano1 0.1
-C01 Ano2 0.1
-C01 Ano3 0.1
-C01 Ano4 0.1
-C02 Ano1 0.1
-C02 Ano2 0.1
-C02 Ano3 0.1
-C02 Ano4 0.1
-C03 Ano1 0.1
-C03 Ano2 0.1
-C03 Ano3 0.1
-C03 Ano4 0.1
-C04 Ano1 0.1
-C04 Ano2 0.1
-C04 Ano3 0.1
-C04 Ano4 0.1
-C05 Ano1 0.1
-C05 Ano2 0.1
-C05 Ano3 0.1
-C05 Ano4 0.1
-C06 Ano1 0.1
-C06 Ano2 0.1
-C06 Ano3 0.1
-C06 Ano4 0.1
-C07 Ano1 0.1
-C07 Ano2 0.1
-C07 Ano3 0.1
-C07 Ano4 0.1
-C08 Ano1 0.1
-C08 Ano2 0.1
-C08 Ano3 0.1
-C08 Ano4 0.1
-C09 Ano1 0.1
-C09 Ano2 0.1
-C09 Ano3 0.1
-C09 Ano4 0.1
-;
-
-# construction cost of one road in arc (k,l) in time t
-param C :=
-C01 C09 Ano1 1440
-C01 C09 Ano2 1309.09
-C01 C09 Ano3 1190.08
-C01 C09 Ano4 1081.89
-C01 C02 Ano1 1950
-C01 C02 Ano2 1772.73
-C01 C02 Ano3 1611.57
-C01 C02 Ano4 1465.06
-C02 C09 Ano1 1690
-C02 C09 Ano2 1536.36
-C02 C09 Ano3 1396.69
-C02 C09 Ano4 1269.72
-C09 C02 Ano1 1690
-C09 C02 Ano2 1536.36
-C09 C02 Ano3 1396.69
-C09 C02 Ano4 1269.72
-C09 E1 Ano1 2840
-C09 E1 Ano2 2581.82
-C09 E1 Ano3 2347.11
-C09 E1 Ano4 2133.73
-C09 C03 Ano1 2190
-C09 C03 Ano2 1990.91
-C09 C03 Ano3 1809.92
-C09 C03 Ano4 1645.38
-C04 C03 Ano1 1170
-C04 C03 Ano2 1063.64
-C04 C03 Ano3 966.94
-C04 C03 Ano4 879.04
-C04 I3 Ano1 1320
-C04 I3 Ano2 1200
-C04 I3 Ano3 1090.91
-C04 I3 Ano4 991.74
-C06 I3 Ano1 150
-C06 I3 Ano2 136.36
-C06 I3 Ano3 123.97
-C06 I3 Ano4 112.7
-C08 C06 Ano1 1950
-C08 C06 Ano2 1772.73
-C08 C06 Ano3 1611.57
-C08 C06 Ano4 1465.06
-C08 I2 Ano1 1110
-C08 I2 Ano2 1009.09
-C08 I2 Ano3 917.36
-C08 I2 Ano4 833.96
-C07 C08 Ano1 930
-C07 C08 Ano2 845.45
-C07 C08 Ano3 768.6
-C07 C08 Ano4 698.72
-C07 I1 Ano1 1950
-C07 I1 Ano2 1772.73
-C07 I1 Ano3 1611.57
-C07 I1 Ano4 1465.06
-C07 C05 Ano1 2130
-C07 C05 Ano2 1936.36
-C07 C05 Ano3 1760.33
-C07 C05 Ano4 1600.3
-;
-
-# unit transport cost through arc (k,l) in time t
-param D :=
-C01 C09 Ano1 1.9
-C01 C02 Ano1 3.25
-C02 C09 Ano1 2.35
-C09 C02 Ano1 2.35
-C09 E1 Ano1 4.1
-C09 C03 Ano1 3.65
-C04 C03 Ano1 1.95
-C04 I3 Ano1 2.2
-C06 I3 Ano1 0.25
-C08 C06 Ano1 3.25
-C08 I2 Ano1 1.85
-C07 C08 Ano1 1.55
-C07 I1 Ano1 3.15
-C07 C05 Ano1 3.25
-C02 C03 Ano1 3.6
-C03 E1 Ano1 1.4
-C05 I1 Ano1 0.95
-I1 I2 Ano1 1.1
-I2 I3 Ano1 1.45
-I3 E1 Ano1 1.95
-C01 C09 Ano2 1.9
-C01 C02 Ano2 3.25
-C02 C09 Ano2 2.35
-C09 C02 Ano2 2.35
-C09 E1 Ano2 4.1
-C09 C03 Ano2 3.65
-C04 C03 Ano2 1.95
-C04 I3 Ano2 2.2
-C06 I3 Ano2 0.25
-C08 C06 Ano2 3.25
-C08 I2 Ano2 1.85
-C07 C08 Ano2 1.55
-C07 I1 Ano2 3.15
-C07 C05 Ano2 3.25
-C02 C03 Ano2 3.6
-C03 E1 Ano2 1.4
-C05 I1 Ano2 0.95
-I1 I2 Ano2 1.1
-I2 I3 Ano2 1.45
-I3 E1 Ano2 1.95
-C01 C09 Ano3 1.9
-C01 C02 Ano3 3.25
-C02 C09 Ano3 2.35
-C09 C02 Ano3 2.35
-C09 E1 Ano3 4.1
-C09 C03 Ano3 3.65
-C04 C03 Ano3 1.95
-C04 I3 Ano3 2.2
-C06 I3 Ano3 0.25
-C08 C06 Ano3 3.25
-C08 I2 Ano3 1.85
-C07 C08 Ano3 1.55
-C07 I1 Ano3 3.15
-C07 C05 Ano3 3.25
-C02 C03 Ano3 3.6
-C03 E1 Ano3 1.4
-C05 I1 Ano3 0.95
-I1 I2 Ano3 1.1
-I2 I3 Ano3 1.45
-I3 E1 Ano3 1.95
-C01 C09 Ano4 1.9
-C01 C02 Ano4 3.25
-C02 C09 Ano4 2.35
-C09 C02 Ano4 2.35
-C09 E1 Ano4 4.1
-C09 C03 Ano4 3.65
-C04 C03 Ano4 1.95
-C04 I3 Ano4 2.2
-C06 I3 Ano4 0.25
-C08 C06 Ano4 3.25
-C08 I2 Ano4 1.85
-C07 C08 Ano4 1.55
-C07 I1 Ano4 3.15
-C07 C05 Ano4 3.25
-C02 C03 Ano4 3.6
-C03 E1 Ano4 1.4
-C05 I1 Ano4 0.95
-I1 I2 Ano4 1.1
-I2 I3 Ano4 1.45
-I3 E1 Ano4 1.95
-;
-
-#
-# Stochastic Parameters
-#
-
-# sale price at exit e in time period t
-param R := E1 Ano1 45
- E1 Ano2 45
- E1 Ano3 52
- E1 Ano4 55 ;
-
-# upper and lower bounds on wood supplied
-param Zlb := Ano1 30000
- Ano2 15000
- Ano3 27000
- Ano4 21000 ;
-param Zub := Ano1 40000
- Ano2 33000
- Ano3 45000
- Ano4 50000 ;
-param yr:=
-Ano1 1
-Ano2 1
-Ano3 1
-Ano4 1
-;
-
-set COriginNodeForCell[U1]:= C01;
-set COriginNodeForCell[U2]:= C01;
-set COriginNodeForCell[U3]:= C09;
-set COriginNodeForCell[U4]:= C01;
-set COriginNodeForCell[U5]:= C09;
-set COriginNodeForCell[U6]:= C02;
-set COriginNodeForCell[U7]:= C02;
-set COriginNodeForCell[U8]:= C09;
-set COriginNodeForCell[U9]:= C02;
-set COriginNodeForCell[U10]:= C02;
-set COriginNodeForCell[U11]:= C04;
-set COriginNodeForCell[U12]:= C03;
-set COriginNodeForCell[U13]:= C03;
-set COriginNodeForCell[U14]:= C05;
-set COriginNodeForCell[U15]:= C04;
-set COriginNodeForCell[U16]:= C04;
-set COriginNodeForCell[U17]:= C06;
-set COriginNodeForCell[U18]:= C06;
-set COriginNodeForCell[U19]:= C06;
-set COriginNodeForCell[U20]:= C08;
-set COriginNodeForCell[U21]:= C08;
-set COriginNodeForCell[U22]:= C07;
-set COriginNodeForCell[U23]:= C05;
-set COriginNodeForCell[U24]:= C05;
-set COriginNodeForCell[U25]:= C07;
-
diff --git a/examples/pysp/forestry/18scenarios/ForestChile8.dat b/examples/pysp/forestry/18scenarios/ForestChile8.dat
deleted file mode 100644
index 87490a8a4c8..00000000000
--- a/examples/pysp/forestry/18scenarios/ForestChile8.dat
+++ /dev/null
@@ -1,562 +0,0 @@
-# fbv
-# mnr May 3, 2009
-
-# general nodes
-set Nodes := E1
- I1 I2 I3
- C01 C02 C03 C04 C05 C06 C07 C08 C09 ;
-
-# following the notation in the paper (note: nodes \equiv origins)
-
-#
-# Sets
-#
-
-set Times := Ano1 Ano2 Ano3 Ano4;
-
-set OriginNodes := C01 C02 C03 C04 C05 C06 C07 C08 C09 ;
-
-set IntersectionNodes := I1 I2 I3;
-
-set ExitNodes := E1;
-
-set HarvestCells := U1 U2 U3 U4 U5 U6 U7 U8 U9 U10 U11 U12 U13
- U14 U15 U16 U17 U18 U19 U20 U21 U22 U23 U24 U25;
-
-set HCellsForOrigin[C01] := U1 U2 U4 ;
-set HCellsForOrigin[C02] := U6 U7 U9 U10 ;
-set HCellsForOrigin[C03] := U12 U13 ;
-set HCellsForOrigin[C04] := U11 U15 U16 ;
-set HCellsForOrigin[C05] := U14 U23 U24 ;
-set HCellsForOrigin[C06] := U17 U18 U19 ;
-set HCellsForOrigin[C07] := U22 U25 ;
-set HCellsForOrigin[C08] := U20 U21 ;
-set HCellsForOrigin[C09] := U3 U5 U8 ;
-
-set ExistingRoads :=
-C02 C03
-C03 E1
-C05 I1
-I1 I2
-I2 I3
-I3 E1
-;
-
-set PotentialRoads :=
-C01 C09
-C01 C02
-C02 C09
-C09 C02
-C09 E1
-C09 C03
-C04 C03
-C04 I3
-C06 I3
-C08 C06
-C08 I2
-C07 C08
-C07 I1
-C07 C05
-;
-
-set AllRoads :=
-C02 C03
-C03 E1
-C05 I1
-I1 I2
-I2 I3
-I3 E1
-C01 C09
-C01 C02
-C02 C09
-C09 C02
-C09 E1
-C09 C03
-C04 C03
-C04 I3
-C06 I3
-C08 C06
-C08 I2
-C07 C08
-C07 I1
-C07 C05
-;
-
-#
-# Deterministic Parameters
-#
-
-# productivity of cell h if it is harvested in period t
-param a :=
-U1 Ano1 362
-U1 Ano2 362
-U1 Ano3 362
-U1 Ano4 362
-U2 Ano1 362
-U2 Ano2 362
-U2 Ano3 362
-U2 Ano4 362
-U3 Ano1 362
-U3 Ano2 362
-U3 Ano3 362
-U3 Ano4 362
-U4 Ano1 642
-U4 Ano2 642
-U4 Ano3 642
-U4 Ano4 642
-U5 Ano1 362
-U5 Ano2 362
-U5 Ano3 362
-U5 Ano4 362
-U6 Ano1 642
-U6 Ano2 642
-U6 Ano3 642
-U6 Ano4 642
-U7 Ano1 642
-U7 Ano2 642
-U7 Ano3 642
-U7 Ano4 642
-U8 Ano1 362
-U8 Ano2 362
-U8 Ano3 362
-U8 Ano4 362
-U9 Ano1 642
-U9 Ano2 642
-U9 Ano3 642
-U9 Ano4 642
-U10 Ano1 642
-U10 Ano2 642
-U10 Ano3 642
-U10 Ano4 642
-U11 Ano1 600
-U11 Ano2 600
-U11 Ano3 600
-U11 Ano4 600
-U12 Ano1 518
-U12 Ano2 518
-U12 Ano3 518
-U12 Ano4 518
-U13 Ano1 518
-U13 Ano2 518
-U13 Ano3 518
-U13 Ano4 518
-U14 Ano1 567
-U14 Ano2 567
-U14 Ano3 567
-U14 Ano4 567
-U15 Ano1 600
-U15 Ano2 600
-U15 Ano3 600
-U15 Ano4 600
-U16 Ano1 600
-U16 Ano2 600
-U16 Ano3 600
-U16 Ano4 600
-U17 Ano1 518
-U17 Ano2 518
-U17 Ano3 518
-U17 Ano4 518
-U18 Ano1 401
-U18 Ano2 401
-U18 Ano3 401
-U18 Ano4 401
-U19 Ano1 401
-U19 Ano2 401
-U19 Ano3 401
-U19 Ano4 401
-U20 Ano1 401
-U20 Ano2 401
-U20 Ano3 401
-U20 Ano4 401
-U21 Ano1 373
-U21 Ano2 373
-U21 Ano3 373
-U21 Ano4 373
-U22 Ano1 373
-U22 Ano2 373
-U22 Ano3 373
-U22 Ano4 373
-U23 Ano1 567
-U23 Ano2 567
-U23 Ano3 567
-U23 Ano4 567
-U24 Ano1 567
-U24 Ano2 567
-U24 Ano3 567
-U24 Ano4 567
-U25 Ano1 373
-U25 Ano2 373
-U25 Ano3 373
-U25 Ano4 373
-;
-
-# Area of cell h to be harvested
-param A :=
-U1 10.1
-U2 10.1
-U3 10.1
-U4 13.4
-U5 10.3
-U6 10.2
-U7 10.1
-U8 10.4
-U9 16.7
-U10 12.8
-U11 12.2
-U12 15.2
-U13 11.3
-U14 12.7
-U15 12.6
-U16 12.6
-U17 10
-U18 14.4
-U19 10.8
-U20 10.4
-U21 16.4
-U22 10
-U23 11.4
-U24 14.8
-U25 10.1
-;
-
-# harvesting cost of one hectare of cell h in time t
-param P :=
-U1 Ano1 8
-U1 Ano2 8
-U1 Ano3 8
-U1 Ano4 8
-U2 Ano1 8
-U2 Ano2 8
-U2 Ano3 8
-U2 Ano4 8
-U3 Ano1 8
-U3 Ano2 8
-U3 Ano3 8
-U3 Ano4 8
-U4 Ano1 8
-U4 Ano2 8
-U4 Ano3 8
-U4 Ano4 8
-U5 Ano1 8
-U5 Ano2 8
-U5 Ano3 8
-U5 Ano4 8
-U6 Ano1 8
-U6 Ano2 8
-U6 Ano3 8
-U6 Ano4 8
-U7 Ano1 8
-U7 Ano2 8
-U7 Ano3 8
-U7 Ano4 8
-U8 Ano1 8
-U8 Ano2 8
-U8 Ano3 8
-U8 Ano4 8
-U9 Ano1 8
-U9 Ano2 8
-U9 Ano3 8
-U9 Ano4 8
-U10 Ano1 8
-U10 Ano2 8
-U10 Ano3 8
-U10 Ano4 8
-U11 Ano1 8
-U11 Ano2 8
-U11 Ano3 8
-U11 Ano4 8
-U12 Ano1 8
-U12 Ano2 8
-U12 Ano3 8
-U12 Ano4 8
-U13 Ano1 8
-U13 Ano2 8
-U13 Ano3 8
-U13 Ano4 8
-U14 Ano1 8
-U14 Ano2 8
-U14 Ano3 8
-U14 Ano4 8
-U15 Ano1 8
-U15 Ano2 8
-U15 Ano3 8
-U15 Ano4 8
-U16 Ano1 8
-U16 Ano2 8
-U16 Ano3 8
-U16 Ano4 8
-U17 Ano1 8
-U17 Ano2 8
-U17 Ano3 8
-U17 Ano4 8
-U18 Ano1 8
-U18 Ano2 8
-U18 Ano3 8
-U18 Ano4 8
-U19 Ano1 8
-U19 Ano2 8
-U19 Ano3 8
-U19 Ano4 8
-U20 Ano1 8
-U20 Ano2 8
-U20 Ano3 8
-U20 Ano4 8
-U21 Ano1 8
-U21 Ano2 8
-U21 Ano3 8
-U21 Ano4 8
-U22 Ano1 8
-U22 Ano2 8
-U22 Ano3 8
-U22 Ano4 8
-U23 Ano1 8
-U23 Ano2 8
-U23 Ano3 8
-U23 Ano4 8
-U24 Ano1 8
-U24 Ano2 8
-U24 Ano3 8
-U24 Ano4 8
-U25 Ano1 8
-U25 Ano2 8
-U25 Ano3 8
-U25 Ano4 8
-;
-
-
-# prod cost
-param Q :=
-C01 Ano1 0.1
-C01 Ano2 0.1
-C01 Ano3 0.1
-C01 Ano4 0.1
-C02 Ano1 0.1
-C02 Ano2 0.1
-C02 Ano3 0.1
-C02 Ano4 0.1
-C03 Ano1 0.1
-C03 Ano2 0.1
-C03 Ano3 0.1
-C03 Ano4 0.1
-C04 Ano1 0.1
-C04 Ano2 0.1
-C04 Ano3 0.1
-C04 Ano4 0.1
-C05 Ano1 0.1
-C05 Ano2 0.1
-C05 Ano3 0.1
-C05 Ano4 0.1
-C06 Ano1 0.1
-C06 Ano2 0.1
-C06 Ano3 0.1
-C06 Ano4 0.1
-C07 Ano1 0.1
-C07 Ano2 0.1
-C07 Ano3 0.1
-C07 Ano4 0.1
-C08 Ano1 0.1
-C08 Ano2 0.1
-C08 Ano3 0.1
-C08 Ano4 0.1
-C09 Ano1 0.1
-C09 Ano2 0.1
-C09 Ano3 0.1
-C09 Ano4 0.1
-;
-
-# construction cost of one road in arc (k,l) in time t
-param C :=
-C01 C09 Ano1 1440
-C01 C09 Ano2 1309.09
-C01 C09 Ano3 1190.08
-C01 C09 Ano4 1081.89
-C01 C02 Ano1 1950
-C01 C02 Ano2 1772.73
-C01 C02 Ano3 1611.57
-C01 C02 Ano4 1465.06
-C02 C09 Ano1 1690
-C02 C09 Ano2 1536.36
-C02 C09 Ano3 1396.69
-C02 C09 Ano4 1269.72
-C09 C02 Ano1 1690
-C09 C02 Ano2 1536.36
-C09 C02 Ano3 1396.69
-C09 C02 Ano4 1269.72
-C09 E1 Ano1 2840
-C09 E1 Ano2 2581.82
-C09 E1 Ano3 2347.11
-C09 E1 Ano4 2133.73
-C09 C03 Ano1 2190
-C09 C03 Ano2 1990.91
-C09 C03 Ano3 1809.92
-C09 C03 Ano4 1645.38
-C04 C03 Ano1 1170
-C04 C03 Ano2 1063.64
-C04 C03 Ano3 966.94
-C04 C03 Ano4 879.04
-C04 I3 Ano1 1320
-C04 I3 Ano2 1200
-C04 I3 Ano3 1090.91
-C04 I3 Ano4 991.74
-C06 I3 Ano1 150
-C06 I3 Ano2 136.36
-C06 I3 Ano3 123.97
-C06 I3 Ano4 112.7
-C08 C06 Ano1 1950
-C08 C06 Ano2 1772.73
-C08 C06 Ano3 1611.57
-C08 C06 Ano4 1465.06
-C08 I2 Ano1 1110
-C08 I2 Ano2 1009.09
-C08 I2 Ano3 917.36
-C08 I2 Ano4 833.96
-C07 C08 Ano1 930
-C07 C08 Ano2 845.45
-C07 C08 Ano3 768.6
-C07 C08 Ano4 698.72
-C07 I1 Ano1 1950
-C07 I1 Ano2 1772.73
-C07 I1 Ano3 1611.57
-C07 I1 Ano4 1465.06
-C07 C05 Ano1 2130
-C07 C05 Ano2 1936.36
-C07 C05 Ano3 1760.33
-C07 C05 Ano4 1600.3
-;
-
-# unit transport cost through arc (k,l) in time t
-param D :=
-C01 C09 Ano1 1.9
-C01 C02 Ano1 3.25
-C02 C09 Ano1 2.35
-C09 C02 Ano1 2.35
-C09 E1 Ano1 4.1
-C09 C03 Ano1 3.65
-C04 C03 Ano1 1.95
-C04 I3 Ano1 2.2
-C06 I3 Ano1 0.25
-C08 C06 Ano1 3.25
-C08 I2 Ano1 1.85
-C07 C08 Ano1 1.55
-C07 I1 Ano1 3.15
-C07 C05 Ano1 3.25
-C02 C03 Ano1 3.6
-C03 E1 Ano1 1.4
-C05 I1 Ano1 0.95
-I1 I2 Ano1 1.1
-I2 I3 Ano1 1.45
-I3 E1 Ano1 1.95
-C01 C09 Ano2 1.9
-C01 C02 Ano2 3.25
-C02 C09 Ano2 2.35
-C09 C02 Ano2 2.35
-C09 E1 Ano2 4.1
-C09 C03 Ano2 3.65
-C04 C03 Ano2 1.95
-C04 I3 Ano2 2.2
-C06 I3 Ano2 0.25
-C08 C06 Ano2 3.25
-C08 I2 Ano2 1.85
-C07 C08 Ano2 1.55
-C07 I1 Ano2 3.15
-C07 C05 Ano2 3.25
-C02 C03 Ano2 3.6
-C03 E1 Ano2 1.4
-C05 I1 Ano2 0.95
-I1 I2 Ano2 1.1
-I2 I3 Ano2 1.45
-I3 E1 Ano2 1.95
-C01 C09 Ano3 1.9
-C01 C02 Ano3 3.25
-C02 C09 Ano3 2.35
-C09 C02 Ano3 2.35
-C09 E1 Ano3 4.1
-C09 C03 Ano3 3.65
-C04 C03 Ano3 1.95
-C04 I3 Ano3 2.2
-C06 I3 Ano3 0.25
-C08 C06 Ano3 3.25
-C08 I2 Ano3 1.85
-C07 C08 Ano3 1.55
-C07 I1 Ano3 3.15
-C07 C05 Ano3 3.25
-C02 C03 Ano3 3.6
-C03 E1 Ano3 1.4
-C05 I1 Ano3 0.95
-I1 I2 Ano3 1.1
-I2 I3 Ano3 1.45
-I3 E1 Ano3 1.95
-C01 C09 Ano4 1.9
-C01 C02 Ano4 3.25
-C02 C09 Ano4 2.35
-C09 C02 Ano4 2.35
-C09 E1 Ano4 4.1
-C09 C03 Ano4 3.65
-C04 C03 Ano4 1.95
-C04 I3 Ano4 2.2
-C06 I3 Ano4 0.25
-C08 C06 Ano4 3.25
-C08 I2 Ano4 1.85
-C07 C08 Ano4 1.55
-C07 I1 Ano4 3.15
-C07 C05 Ano4 3.25
-C02 C03 Ano4 3.6
-C03 E1 Ano4 1.4
-C05 I1 Ano4 0.95
-I1 I2 Ano4 1.1
-I2 I3 Ano4 1.45
-I3 E1 Ano4 1.95
-;
-
-#
-# Stochastic Parameters
-#
-
-# sale price at exit e in time period t
-param R := E1 Ano1 45
- E1 Ano2 45
- E1 Ano3 52
- E1 Ano4 44 ;
-
-# upper and lower bounds on wood supplied
-param Zlb := Ano1 30000
- Ano2 15000
- Ano3 27000
- Ano4 19000 ;
-param Zub := Ano1 40000
- Ano2 33000
- Ano3 45000
- Ano4 42000 ;
-param yr:=
-Ano1 1
-Ano2 1
-Ano3 1
-Ano4 1
-;
-
-set COriginNodeForCell[U1]:= C01;
-set COriginNodeForCell[U2]:= C01;
-set COriginNodeForCell[U3]:= C09;
-set COriginNodeForCell[U4]:= C01;
-set COriginNodeForCell[U5]:= C09;
-set COriginNodeForCell[U6]:= C02;
-set COriginNodeForCell[U7]:= C02;
-set COriginNodeForCell[U8]:= C09;
-set COriginNodeForCell[U9]:= C02;
-set COriginNodeForCell[U10]:= C02;
-set COriginNodeForCell[U11]:= C04;
-set COriginNodeForCell[U12]:= C03;
-set COriginNodeForCell[U13]:= C03;
-set COriginNodeForCell[U14]:= C05;
-set COriginNodeForCell[U15]:= C04;
-set COriginNodeForCell[U16]:= C04;
-set COriginNodeForCell[U17]:= C06;
-set COriginNodeForCell[U18]:= C06;
-set COriginNodeForCell[U19]:= C06;
-set COriginNodeForCell[U20]:= C08;
-set COriginNodeForCell[U21]:= C08;
-set COriginNodeForCell[U22]:= C07;
-set COriginNodeForCell[U23]:= C05;
-set COriginNodeForCell[U24]:= C05;
-set COriginNodeForCell[U25]:= C07;
-
diff --git a/examples/pysp/forestry/18scenarios/ForestChile9.dat b/examples/pysp/forestry/18scenarios/ForestChile9.dat
deleted file mode 100644
index 00bd057daf4..00000000000
--- a/examples/pysp/forestry/18scenarios/ForestChile9.dat
+++ /dev/null
@@ -1,562 +0,0 @@
-# fbv
-# mnr May 3, 2009
-
-# general nodes
-set Nodes := E1
- I1 I2 I3
- C01 C02 C03 C04 C05 C06 C07 C08 C09 ;
-
-# following the notation in the paper (note: nodes \equiv origins)
-
-#
-# Sets
-#
-
-set Times := Ano1 Ano2 Ano3 Ano4;
-
-set OriginNodes := C01 C02 C03 C04 C05 C06 C07 C08 C09 ;
-
-set IntersectionNodes := I1 I2 I3;
-
-set ExitNodes := E1;
-
-set HarvestCells := U1 U2 U3 U4 U5 U6 U7 U8 U9 U10 U11 U12 U13
- U14 U15 U16 U17 U18 U19 U20 U21 U22 U23 U24 U25;
-
-set HCellsForOrigin[C01] := U1 U2 U4 ;
-set HCellsForOrigin[C02] := U6 U7 U9 U10 ;
-set HCellsForOrigin[C03] := U12 U13 ;
-set HCellsForOrigin[C04] := U11 U15 U16 ;
-set HCellsForOrigin[C05] := U14 U23 U24 ;
-set HCellsForOrigin[C06] := U17 U18 U19 ;
-set HCellsForOrigin[C07] := U22 U25 ;
-set HCellsForOrigin[C08] := U20 U21 ;
-set HCellsForOrigin[C09] := U3 U5 U8 ;
-
-set ExistingRoads :=
-C02 C03
-C03 E1
-C05 I1
-I1 I2
-I2 I3
-I3 E1
-;
-
-set PotentialRoads :=
-C01 C09
-C01 C02
-C02 C09
-C09 C02
-C09 E1
-C09 C03
-C04 C03
-C04 I3
-C06 I3
-C08 C06
-C08 I2
-C07 C08
-C07 I1
-C07 C05
-;
-
-set AllRoads :=
-C02 C03
-C03 E1
-C05 I1
-I1 I2
-I2 I3
-I3 E1
-C01 C09
-C01 C02
-C02 C09
-C09 C02
-C09 E1
-C09 C03
-C04 C03
-C04 I3
-C06 I3
-C08 C06
-C08 I2
-C07 C08
-C07 I1
-C07 C05
-;
-
-#
-# Deterministic Parameters
-#
-
-# productivity of cell h if it is harvested in period t
-param a :=
-U1 Ano1 362
-U1 Ano2 362
-U1 Ano3 362
-U1 Ano4 362
-U2 Ano1 362
-U2 Ano2 362
-U2 Ano3 362
-U2 Ano4 362
-U3 Ano1 362
-U3 Ano2 362
-U3 Ano3 362
-U3 Ano4 362
-U4 Ano1 642
-U4 Ano2 642
-U4 Ano3 642
-U4 Ano4 642
-U5 Ano1 362
-U5 Ano2 362
-U5 Ano3 362
-U5 Ano4 362
-U6 Ano1 642
-U6 Ano2 642
-U6 Ano3 642
-U6 Ano4 642
-U7 Ano1 642
-U7 Ano2 642
-U7 Ano3 642
-U7 Ano4 642
-U8 Ano1 362
-U8 Ano2 362
-U8 Ano3 362
-U8 Ano4 362
-U9 Ano1 642
-U9 Ano2 642
-U9 Ano3 642
-U9 Ano4 642
-U10 Ano1 642
-U10 Ano2 642
-U10 Ano3 642
-U10 Ano4 642
-U11 Ano1 600
-U11 Ano2 600
-U11 Ano3 600
-U11 Ano4 600
-U12 Ano1 518
-U12 Ano2 518
-U12 Ano3 518
-U12 Ano4 518
-U13 Ano1 518
-U13 Ano2 518
-U13 Ano3 518
-U13 Ano4 518
-U14 Ano1 567
-U14 Ano2 567
-U14 Ano3 567
-U14 Ano4 567
-U15 Ano1 600
-U15 Ano2 600
-U15 Ano3 600
-U15 Ano4 600
-U16 Ano1 600
-U16 Ano2 600
-U16 Ano3 600
-U16 Ano4 600
-U17 Ano1 518
-U17 Ano2 518
-U17 Ano3 518
-U17 Ano4 518
-U18 Ano1 401
-U18 Ano2 401
-U18 Ano3 401
-U18 Ano4 401
-U19 Ano1 401
-U19 Ano2 401
-U19 Ano3 401
-U19 Ano4 401
-U20 Ano1 401
-U20 Ano2 401
-U20 Ano3 401
-U20 Ano4 401
-U21 Ano1 373
-U21 Ano2 373
-U21 Ano3 373
-U21 Ano4 373
-U22 Ano1 373
-U22 Ano2 373
-U22 Ano3 373
-U22 Ano4 373
-U23 Ano1 567
-U23 Ano2 567
-U23 Ano3 567
-U23 Ano4 567
-U24 Ano1 567
-U24 Ano2 567
-U24 Ano3 567
-U24 Ano4 567
-U25 Ano1 373
-U25 Ano2 373
-U25 Ano3 373
-U25 Ano4 373
-;
-
-# Area of cell h to be harvested
-param A :=
-U1 10.1
-U2 10.1
-U3 10.1
-U4 13.4
-U5 10.3
-U6 10.2
-U7 10.1
-U8 10.4
-U9 16.7
-U10 12.8
-U11 12.2
-U12 15.2
-U13 11.3
-U14 12.7
-U15 12.6
-U16 12.6
-U17 10
-U18 14.4
-U19 10.8
-U20 10.4
-U21 16.4
-U22 10
-U23 11.4
-U24 14.8
-U25 10.1
-;
-
-# harvesting cost of one hectare of cell h in time t
-param P :=
-U1 Ano1 8
-U1 Ano2 8
-U1 Ano3 8
-U1 Ano4 8
-U2 Ano1 8
-U2 Ano2 8
-U2 Ano3 8
-U2 Ano4 8
-U3 Ano1 8
-U3 Ano2 8
-U3 Ano3 8
-U3 Ano4 8
-U4 Ano1 8
-U4 Ano2 8
-U4 Ano3 8
-U4 Ano4 8
-U5 Ano1 8
-U5 Ano2 8
-U5 Ano3 8
-U5 Ano4 8
-U6 Ano1 8
-U6 Ano2 8
-U6 Ano3 8
-U6 Ano4 8
-U7 Ano1 8
-U7 Ano2 8
-U7 Ano3 8
-U7 Ano4 8
-U8 Ano1 8
-U8 Ano2 8
-U8 Ano3 8
-U8 Ano4 8
-U9 Ano1 8
-U9 Ano2 8
-U9 Ano3 8
-U9 Ano4 8
-U10 Ano1 8
-U10 Ano2 8
-U10 Ano3 8
-U10 Ano4 8
-U11 Ano1 8
-U11 Ano2 8
-U11 Ano3 8
-U11 Ano4 8
-U12 Ano1 8
-U12 Ano2 8
-U12 Ano3 8
-U12 Ano4 8
-U13 Ano1 8
-U13 Ano2 8
-U13 Ano3 8
-U13 Ano4 8
-U14 Ano1 8
-U14 Ano2 8
-U14 Ano3 8
-U14 Ano4 8
-U15 Ano1 8
-U15 Ano2 8
-U15 Ano3 8
-U15 Ano4 8
-U16 Ano1 8
-U16 Ano2 8
-U16 Ano3 8
-U16 Ano4 8
-U17 Ano1 8
-U17 Ano2 8
-U17 Ano3 8
-U17 Ano4 8
-U18 Ano1 8
-U18 Ano2 8
-U18 Ano3 8
-U18 Ano4 8
-U19 Ano1 8
-U19 Ano2 8
-U19 Ano3 8
-U19 Ano4 8
-U20 Ano1 8
-U20 Ano2 8
-U20 Ano3 8
-U20 Ano4 8
-U21 Ano1 8
-U21 Ano2 8
-U21 Ano3 8
-U21 Ano4 8
-U22 Ano1 8
-U22 Ano2 8
-U22 Ano3 8
-U22 Ano4 8
-U23 Ano1 8
-U23 Ano2 8
-U23 Ano3 8
-U23 Ano4 8
-U24 Ano1 8
-U24 Ano2 8
-U24 Ano3 8
-U24 Ano4 8
-U25 Ano1 8
-U25 Ano2 8
-U25 Ano3 8
-U25 Ano4 8
-;
-
-
-# prod cost
-param Q :=
-C01 Ano1 0.1
-C01 Ano2 0.1
-C01 Ano3 0.1
-C01 Ano4 0.1
-C02 Ano1 0.1
-C02 Ano2 0.1
-C02 Ano3 0.1
-C02 Ano4 0.1
-C03 Ano1 0.1
-C03 Ano2 0.1
-C03 Ano3 0.1
-C03 Ano4 0.1
-C04 Ano1 0.1
-C04 Ano2 0.1
-C04 Ano3 0.1
-C04 Ano4 0.1
-C05 Ano1 0.1
-C05 Ano2 0.1
-C05 Ano3 0.1
-C05 Ano4 0.1
-C06 Ano1 0.1
-C06 Ano2 0.1
-C06 Ano3 0.1
-C06 Ano4 0.1
-C07 Ano1 0.1
-C07 Ano2 0.1
-C07 Ano3 0.1
-C07 Ano4 0.1
-C08 Ano1 0.1
-C08 Ano2 0.1
-C08 Ano3 0.1
-C08 Ano4 0.1
-C09 Ano1 0.1
-C09 Ano2 0.1
-C09 Ano3 0.1
-C09 Ano4 0.1
-;
-
-# construction cost of one road in arc (k,l) in time t
-param C :=
-C01 C09 Ano1 1440
-C01 C09 Ano2 1309.09
-C01 C09 Ano3 1190.08
-C01 C09 Ano4 1081.89
-C01 C02 Ano1 1950
-C01 C02 Ano2 1772.73
-C01 C02 Ano3 1611.57
-C01 C02 Ano4 1465.06
-C02 C09 Ano1 1690
-C02 C09 Ano2 1536.36
-C02 C09 Ano3 1396.69
-C02 C09 Ano4 1269.72
-C09 C02 Ano1 1690
-C09 C02 Ano2 1536.36
-C09 C02 Ano3 1396.69
-C09 C02 Ano4 1269.72
-C09 E1 Ano1 2840
-C09 E1 Ano2 2581.82
-C09 E1 Ano3 2347.11
-C09 E1 Ano4 2133.73
-C09 C03 Ano1 2190
-C09 C03 Ano2 1990.91
-C09 C03 Ano3 1809.92
-C09 C03 Ano4 1645.38
-C04 C03 Ano1 1170
-C04 C03 Ano2 1063.64
-C04 C03 Ano3 966.94
-C04 C03 Ano4 879.04
-C04 I3 Ano1 1320
-C04 I3 Ano2 1200
-C04 I3 Ano3 1090.91
-C04 I3 Ano4 991.74
-C06 I3 Ano1 150
-C06 I3 Ano2 136.36
-C06 I3 Ano3 123.97
-C06 I3 Ano4 112.7
-C08 C06 Ano1 1950
-C08 C06 Ano2 1772.73
-C08 C06 Ano3 1611.57
-C08 C06 Ano4 1465.06
-C08 I2 Ano1 1110
-C08 I2 Ano2 1009.09
-C08 I2 Ano3 917.36
-C08 I2 Ano4 833.96
-C07 C08 Ano1 930
-C07 C08 Ano2 845.45
-C07 C08 Ano3 768.6
-C07 C08 Ano4 698.72
-C07 I1 Ano1 1950
-C07 I1 Ano2 1772.73
-C07 I1 Ano3 1611.57
-C07 I1 Ano4 1465.06
-C07 C05 Ano1 2130
-C07 C05 Ano2 1936.36
-C07 C05 Ano3 1760.33
-C07 C05 Ano4 1600.3
-;
-
-# unit transport cost through arc (k,l) in time t
-param D :=
-C01 C09 Ano1 1.9
-C01 C02 Ano1 3.25
-C02 C09 Ano1 2.35
-C09 C02 Ano1 2.35
-C09 E1 Ano1 4.1
-C09 C03 Ano1 3.65
-C04 C03 Ano1 1.95
-C04 I3 Ano1 2.2
-C06 I3 Ano1 0.25
-C08 C06 Ano1 3.25
-C08 I2 Ano1 1.85
-C07 C08 Ano1 1.55
-C07 I1 Ano1 3.15
-C07 C05 Ano1 3.25
-C02 C03 Ano1 3.6
-C03 E1 Ano1 1.4
-C05 I1 Ano1 0.95
-I1 I2 Ano1 1.1
-I2 I3 Ano1 1.45
-I3 E1 Ano1 1.95
-C01 C09 Ano2 1.9
-C01 C02 Ano2 3.25
-C02 C09 Ano2 2.35
-C09 C02 Ano2 2.35
-C09 E1 Ano2 4.1
-C09 C03 Ano2 3.65
-C04 C03 Ano2 1.95
-C04 I3 Ano2 2.2
-C06 I3 Ano2 0.25
-C08 C06 Ano2 3.25
-C08 I2 Ano2 1.85
-C07 C08 Ano2 1.55
-C07 I1 Ano2 3.15
-C07 C05 Ano2 3.25
-C02 C03 Ano2 3.6
-C03 E1 Ano2 1.4
-C05 I1 Ano2 0.95
-I1 I2 Ano2 1.1
-I2 I3 Ano2 1.45
-I3 E1 Ano2 1.95
-C01 C09 Ano3 1.9
-C01 C02 Ano3 3.25
-C02 C09 Ano3 2.35
-C09 C02 Ano3 2.35
-C09 E1 Ano3 4.1
-C09 C03 Ano3 3.65
-C04 C03 Ano3 1.95
-C04 I3 Ano3 2.2
-C06 I3 Ano3 0.25
-C08 C06 Ano3 3.25
-C08 I2 Ano3 1.85
-C07 C08 Ano3 1.55
-C07 I1 Ano3 3.15
-C07 C05 Ano3 3.25
-C02 C03 Ano3 3.6
-C03 E1 Ano3 1.4
-C05 I1 Ano3 0.95
-I1 I2 Ano3 1.1
-I2 I3 Ano3 1.45
-I3 E1 Ano3 1.95
-C01 C09 Ano4 1.9
-C01 C02 Ano4 3.25
-C02 C09 Ano4 2.35
-C09 C02 Ano4 2.35
-C09 E1 Ano4 4.1
-C09 C03 Ano4 3.65
-C04 C03 Ano4 1.95
-C04 I3 Ano4 2.2
-C06 I3 Ano4 0.25
-C08 C06 Ano4 3.25
-C08 I2 Ano4 1.85
-C07 C08 Ano4 1.55
-C07 I1 Ano4 3.15
-C07 C05 Ano4 3.25
-C02 C03 Ano4 3.6
-C03 E1 Ano4 1.4
-C05 I1 Ano4 0.95
-I1 I2 Ano4 1.1
-I2 I3 Ano4 1.45
-I3 E1 Ano4 1.95
-;
-
-#
-# Stochastic Parameters
-#
-
-# sale price at exit e in time period t
-param R := E1 Ano1 45
- E1 Ano2 45
- E1 Ano3 45
- E1 Ano4 50 ;
-
-# upper and lower bounds on wood supplied
-param Zlb := Ano1 30000
- Ano2 15000
- Ano3 25000
- Ano4 20000 ;
-param Zub := Ano1 40000
- Ano2 33000
- Ano3 41000
- Ano4 36000 ;
-param yr:=
-Ano1 1
-Ano2 1
-Ano3 1
-Ano4 1
-;
-
-set COriginNodeForCell[U1]:= C01;
-set COriginNodeForCell[U2]:= C01;
-set COriginNodeForCell[U3]:= C09;
-set COriginNodeForCell[U4]:= C01;
-set COriginNodeForCell[U5]:= C09;
-set COriginNodeForCell[U6]:= C02;
-set COriginNodeForCell[U7]:= C02;
-set COriginNodeForCell[U8]:= C09;
-set COriginNodeForCell[U9]:= C02;
-set COriginNodeForCell[U10]:= C02;
-set COriginNodeForCell[U11]:= C04;
-set COriginNodeForCell[U12]:= C03;
-set COriginNodeForCell[U13]:= C03;
-set COriginNodeForCell[U14]:= C05;
-set COriginNodeForCell[U15]:= C04;
-set COriginNodeForCell[U16]:= C04;
-set COriginNodeForCell[U17]:= C06;
-set COriginNodeForCell[U18]:= C06;
-set COriginNodeForCell[U19]:= C06;
-set COriginNodeForCell[U20]:= C08;
-set COriginNodeForCell[U21]:= C08;
-set COriginNodeForCell[U22]:= C07;
-set COriginNodeForCell[U23]:= C05;
-set COriginNodeForCell[U24]:= C05;
-set COriginNodeForCell[U25]:= C07;
-
diff --git a/examples/pysp/forestry/18scenarios/ScenarioStructure.dat b/examples/pysp/forestry/18scenarios/ScenarioStructure.dat
deleted file mode 100644
index 4874cc9231c..00000000000
--- a/examples/pysp/forestry/18scenarios/ScenarioStructure.dat
+++ /dev/null
@@ -1,422 +0,0 @@
-# IMPORTANT - THE STAGES ARE ASSUMED TO BE IN TIME-ORDER.
-
-set Stages := Ano1Stage Ano2Stage Ano3Stage Ano4Stage ;
-
-set Nodes := RootNode
- StageTwoHigh
- StageTwoMedium
- StageTwoLow
- StageThreeHighHigh
- StageThreeHighMedium
- StageThreeHighLow
- StageThreeMediumHigh
- StageThreeMediumMedium
- StageThreeMediumLow
- StageThreeLowHigh
- StageThreeLowMedium
- StageThreeLowLow
- Leaf1
- Leaf2
- Leaf3
- Leaf4
- Leaf5
- Leaf6
- Leaf7
- Leaf8
- Leaf9
- Leaf10
- Leaf11
- Leaf12
- Leaf13
- Leaf14
- Leaf15
- Leaf16
- Leaf17
- Leaf18 ;
-
-param NodeStage := RootNode Ano1Stage
- StageTwoHigh Ano2Stage
- StageTwoMedium Ano2Stage
- StageTwoLow Ano2Stage
- StageThreeHighHigh Ano3Stage
- StageThreeHighMedium Ano3Stage
- StageThreeHighLow Ano3Stage
- StageThreeMediumHigh Ano3Stage
- StageThreeMediumMedium Ano3Stage
- StageThreeMediumLow Ano3Stage
- StageThreeLowHigh Ano3Stage
- StageThreeLowMedium Ano3Stage
- StageThreeLowLow Ano3Stage
- Leaf1 Ano4Stage
- Leaf2 Ano4Stage
- Leaf3 Ano4Stage
- Leaf4 Ano4Stage
- Leaf5 Ano4Stage
- Leaf6 Ano4Stage
- Leaf7 Ano4Stage
- Leaf8 Ano4Stage
- Leaf9 Ano4Stage
- Leaf10 Ano4Stage
- Leaf11 Ano4Stage
- Leaf12 Ano4Stage
- Leaf13 Ano4Stage
- Leaf14 Ano4Stage
- Leaf15 Ano4Stage
- Leaf16 Ano4Stage
- Leaf17 Ano4Stage
- Leaf18 Ano4Stage ;
-
-
-set Children[RootNode] := StageTwoHigh
- StageTwoMedium
- StageTwoLow ;
-
-set Children[StageTwoHigh] := StageThreeHighHigh
- StageThreeHighMedium
- StageThreeHighLow ;
-
-set Children[StageTwoMedium] := StageThreeMediumHigh
- StageThreeMediumMedium
- StageThreeMediumLow ;
-
-set Children[StageTwoLow] := StageThreeLowHigh
- StageThreeLowMedium
- StageThreeLowLow ;
-
-set Children[StageThreeHighHigh] := Leaf1 Leaf2 ;
-set Children[StageThreeHighMedium] := Leaf3 Leaf4 ;
-set Children[StageThreeHighLow] := Leaf5 Leaf6 ;
-
-set Children[StageThreeMediumHigh] := Leaf7 Leaf8 ;
-set Children[StageThreeMediumMedium] := Leaf9 Leaf10 ;
-set Children[StageThreeMediumLow] := Leaf11 Leaf12 ;
-
-set Children[StageThreeLowHigh] := Leaf13 Leaf14 ;
-set Children[StageThreeLowMedium] := Leaf15 Leaf16 ;
-set Children[StageThreeLowLow] := Leaf17 Leaf18 ;
-
-param ConditionalProbability := RootNode 1.0
- StageTwoHigh 0.33
- StageTwoMedium 0.33
- StageTwoLow 0.34
- StageThreeHighHigh 0.33
- StageThreeHighMedium 0.33
- StageThreeHighLow 0.34
- StageThreeMediumHigh 0.33
- StageThreeMediumMedium 0.33
- StageThreeMediumLow 0.34
- StageThreeLowHigh 0.33
- StageThreeLowMedium 0.33
- StageThreeLowLow 0.34
- Leaf1 0.5
- Leaf2 0.5
- Leaf3 0.5
- Leaf4 0.5
- Leaf5 0.5
- Leaf6 0.5
- Leaf7 0.5
- Leaf8 0.5
- Leaf9 0.5
- Leaf10 0.5
- Leaf11 0.5
- Leaf12 0.5
- Leaf13 0.5
- Leaf14 0.5
- Leaf15 0.5
- Leaf16 0.5
- Leaf17 0.5
- Leaf18 0.5 ;
-
-set Scenarios := ForestChile1
- ForestChile2
- ForestChile3
- ForestChile4
- ForestChile5
- ForestChile6
- ForestChile7
- ForestChile8
- ForestChile9
- ForestChile10
- ForestChile11
- ForestChile12
- ForestChile13
- ForestChile14
- ForestChile15
- ForestChile16
- ForestChile17
- ForestChile18 ;
-
-param ScenarioLeafNode := ForestChile1 Leaf1
- ForestChile2 Leaf2
- ForestChile3 Leaf3
- ForestChile4 Leaf4
- ForestChile5 Leaf5
- ForestChile6 Leaf6
- ForestChile7 Leaf7
- ForestChile8 Leaf8
- ForestChile9 Leaf9
- ForestChile10 Leaf10
- ForestChile11 Leaf11
- ForestChile12 Leaf12
- ForestChile13 Leaf13
- ForestChile14 Leaf14
- ForestChile15 Leaf15
- ForestChile16 Leaf16
- ForestChile17 Leaf17
- ForestChile18 Leaf18 ;
-
-set StageVariables[Ano1Stage] := delta[U1,Ano1]
- delta[U2,Ano1]
- delta[U3,Ano1]
- delta[U4,Ano1]
- delta[U5,Ano1]
- delta[U6,Ano1]
- delta[U7,Ano1]
- delta[U8,Ano1]
- delta[U9,Ano1]
- delta[U10,Ano1]
- delta[U11,Ano1]
- delta[U12,Ano1]
- delta[U13,Ano1]
- delta[U14,Ano1]
- delta[U15,Ano1]
- delta[U16,Ano1]
- delta[U17,Ano1]
- delta[U18,Ano1]
- delta[U19,Ano1]
- delta[U20,Ano1]
- delta[U21,Ano1]
- delta[U22,Ano1]
- delta[U23,Ano1]
- delta[U24,Ano1]
- delta[U25,Ano1]
- gamma[C01,C09,Ano1]
- gamma[C01,C02,Ano1]
- gamma[C02,C09,Ano1]
- gamma[C09,C02,Ano1]
- gamma[C09,E1,Ano1]
- gamma[C09,C03,Ano1]
- gamma[C04,C03,Ano1]
- gamma[C04,I3,Ano1]
- gamma[C06,I3,Ano1]
- gamma[C08,C06,Ano1]
- gamma[C08,I2,Ano1]
- gamma[C07,C08,Ano1]
- gamma[C07,I1,Ano1]
- gamma[C07,C05,Ano1]
- f[C02,C03,Ano1]
- f[C03,E1,Ano1]
- f[C05,I1,Ano1]
- f[I1,I2,Ano1]
- f[I2,I3,Ano1]
- f[I3,E1,Ano1]
- f[C01,C09,Ano1]
- f[C01,C02,Ano1]
- f[C02,C09,Ano1]
- f[C09,C02,Ano1]
- f[C09,E1,Ano1]
- f[C09,C03,Ano1]
- f[C04,C03,Ano1]
- f[C04,I3,Ano1]
- f[C06,I3,Ano1]
- f[C08,C06,Ano1]
- f[C08,I2,Ano1]
- f[C07,C08,Ano1]
- f[C07,I1,Ano1]
- f[C07,C05,Ano1] ;
-set StageDerivedVariables[Ano1Stage] :=
- z[E1,Ano1] ;
-
-set StageVariables[Ano2Stage] := delta[U1,Ano2]
- delta[U2,Ano2]
- delta[U3,Ano2]
- delta[U4,Ano2]
- delta[U5,Ano2]
- delta[U6,Ano2]
- delta[U7,Ano2]
- delta[U8,Ano2]
- delta[U9,Ano2]
- delta[U10,Ano2]
- delta[U11,Ano2]
- delta[U12,Ano2]
- delta[U13,Ano2]
- delta[U14,Ano2]
- delta[U15,Ano2]
- delta[U16,Ano2]
- delta[U17,Ano2]
- delta[U18,Ano2]
- delta[U19,Ano2]
- delta[U20,Ano2]
- delta[U21,Ano2]
- delta[U22,Ano2]
- delta[U23,Ano2]
- delta[U24,Ano2]
- delta[U25,Ano2]
- gamma[C01,C09,Ano2]
- gamma[C01,C02,Ano2]
- gamma[C02,C09,Ano2]
- gamma[C09,C02,Ano2]
- gamma[C09,E1,Ano2]
- gamma[C09,C03,Ano2]
- gamma[C04,C03,Ano2]
- gamma[C04,I3,Ano2]
- gamma[C06,I3,Ano2]
- gamma[C08,C06,Ano2]
- gamma[C08,I2,Ano2]
- gamma[C07,C08,Ano2]
- gamma[C07,I1,Ano2]
- gamma[C07,C05,Ano2]
- f[C02,C03,Ano2]
- f[C03,E1,Ano2]
- f[C05,I1,Ano2]
- f[I1,I2,Ano2]
- f[I2,I3,Ano2]
- f[I3,E1,Ano2]
- f[C01,C09,Ano2]
- f[C01,C02,Ano2]
- f[C02,C09,Ano2]
- f[C09,C02,Ano2]
- f[C09,E1,Ano2]
- f[C09,C03,Ano2]
- f[C04,C03,Ano2]
- f[C04,I3,Ano2]
- f[C06,I3,Ano2]
- f[C08,C06,Ano2]
- f[C08,I2,Ano2]
- f[C07,C08,Ano2]
- f[C07,I1,Ano2]
- f[C07,C05,Ano2] ;
-set StageDerivedVariables[Ano2Stage] :=
- z[E1,Ano2] ;
-
-set StageVariables[Ano3Stage] := delta[U1,Ano3]
- delta[U2,Ano3]
- delta[U3,Ano3]
- delta[U4,Ano3]
- delta[U5,Ano3]
- delta[U6,Ano3]
- delta[U7,Ano3]
- delta[U8,Ano3]
- delta[U9,Ano3]
- delta[U10,Ano3]
- delta[U11,Ano3]
- delta[U12,Ano3]
- delta[U13,Ano3]
- delta[U14,Ano3]
- delta[U15,Ano3]
- delta[U16,Ano3]
- delta[U17,Ano3]
- delta[U18,Ano3]
- delta[U19,Ano3]
- delta[U20,Ano3]
- delta[U21,Ano3]
- delta[U22,Ano3]
- delta[U23,Ano3]
- delta[U24,Ano3]
- delta[U25,Ano3]
- gamma[C01,C09,Ano3]
- gamma[C01,C02,Ano3]
- gamma[C02,C09,Ano3]
- gamma[C09,C02,Ano3]
- gamma[C09,E1,Ano3]
- gamma[C09,C03,Ano3]
- gamma[C04,C03,Ano3]
- gamma[C04,I3,Ano3]
- gamma[C06,I3,Ano3]
- gamma[C08,C06,Ano3]
- gamma[C08,I2,Ano3]
- gamma[C07,C08,Ano3]
- gamma[C07,I1,Ano3]
- gamma[C07,C05,Ano3]
- f[C02,C03,Ano3]
- f[C03,E1,Ano3]
- f[C05,I1,Ano3]
- f[I1,I2,Ano3]
- f[I2,I3,Ano3]
- f[I3,E1,Ano3]
- f[C01,C09,Ano3]
- f[C01,C02,Ano3]
- f[C02,C09,Ano3]
- f[C09,C02,Ano3]
- f[C09,E1,Ano3]
- f[C09,C03,Ano3]
- f[C04,C03,Ano3]
- f[C04,I3,Ano3]
- f[C06,I3,Ano3]
- f[C08,C06,Ano3]
- f[C08,I2,Ano3]
- f[C07,C08,Ano3]
- f[C07,I1,Ano3]
- f[C07,C05,Ano3] ;
-set StageDerivedVariables[Ano3Stage] :=
-
- z[E1,Ano3] ;
-
-set StageVariables[Ano4Stage] := delta[U1,Ano4]
- delta[U2,Ano4]
- delta[U3,Ano4]
- delta[U4,Ano4]
- delta[U5,Ano4]
- delta[U6,Ano4]
- delta[U7,Ano4]
- delta[U8,Ano4]
- delta[U9,Ano4]
- delta[U10,Ano4]
- delta[U11,Ano4]
- delta[U12,Ano4]
- delta[U13,Ano4]
- delta[U14,Ano4]
- delta[U15,Ano4]
- delta[U16,Ano4]
- delta[U17,Ano4]
- delta[U18,Ano4]
- delta[U19,Ano4]
- delta[U20,Ano4]
- delta[U21,Ano4]
- delta[U22,Ano4]
- delta[U23,Ano4]
- delta[U24,Ano4]
- delta[U25,Ano4]
- gamma[C01,C09,Ano4]
- gamma[C01,C02,Ano4]
- gamma[C02,C09,Ano4]
- gamma[C09,C02,Ano4]
- gamma[C09,E1,Ano4]
- gamma[C09,C03,Ano4]
- gamma[C04,C03,Ano4]
- gamma[C04,I3,Ano4]
- gamma[C06,I3,Ano4]
- gamma[C08,C06,Ano4]
- gamma[C08,I2,Ano4]
- gamma[C07,C08,Ano4]
- gamma[C07,I1,Ano4]
- gamma[C07,C05,Ano4]
- f[C02,C03,Ano4]
- f[C03,E1,Ano4]
- f[C05,I1,Ano4]
- f[I1,I2,Ano4]
- f[I2,I3,Ano4]
- f[I3,E1,Ano4]
- f[C01,C09,Ano4]
- f[C01,C02,Ano4]
- f[C02,C09,Ano4]
- f[C09,C02,Ano4]
- f[C09,E1,Ano4]
- f[C09,C03,Ano4]
- f[C04,C03,Ano4]
- f[C04,I3,Ano4]
- f[C06,I3,Ano4]
- f[C08,C06,Ano4]
- f[C08,I2,Ano4]
- f[C07,C08,Ano4]
- f[C07,I1,Ano4]
- f[C07,C05,Ano4] ;
-set StageDerivedVariables[Ano4Stage] :=
-
- z[E1,Ano4] ;
-
-param StageCost := Ano1Stage AnoProfit[Ano1]
- Ano2Stage AnoProfit[Ano2]
- Ano3Stage AnoProfit[Ano3]
- Ano4Stage AnoProfit[Ano4] ;
-
diff --git a/examples/pysp/forestry/config/boundsetter.py b/examples/pysp/forestry/config/boundsetter.py
deleted file mode 100644
index 647198d4831..00000000000
--- a/examples/pysp/forestry/config/boundsetter.py
+++ /dev/null
@@ -1,41 +0,0 @@
-# ___________________________________________________________________________
-#
-# Pyomo: Python Optimization Modeling Objects
-# Copyright 2017 National Technology and Engineering Solutions of Sandia, LLC
-# Under the terms of Contract DE-NA0003525 with National Technology and
-# Engineering Solutions of Sandia, LLC, the U.S. Government retains certain
-# rights in this software.
-# This software is distributed under the 3-clause BSD License.
-# ___________________________________________________________________________
-
-from pyomo.core import *
-
-def ph_boundsetter_callback(ph, scenario_tree, scenario):
-
- # can be eliminated once Pyomo supports parameters in variable
- # bounds declarations.
- instance = scenario._instance
- for t in instance.Times:
- lb = value(instance.Zlb[t])
- ub = value(instance.Zub[t])
- for e in instance.ExitNodes:
- instance.z[e,t].setlb(lb)
- instance.z[e,t].setub(ub)
-
- for t in instance.Times:
- lb = 0
- ub = value(instance.Zub[t])
- for (i,j) in instance.AllRoads:
- instance.f[i,j,t].setub(ub)
- instance.f[i,j,t].setlb(lb)
-
- # formula taken from Fernando's AMPL model. Not sure why the time
- # period is restricted to the first year.
- """
- for (i,j) in instance.AllRoads:
- umax = value(sum(model_instance.A[h] * \
- model_instance.a[h,"Ano1"] \
- for h in model_instance.HarvestCells))
- instance.f[i,j,t].setub(umax)
- instance.f[i,j,t].setlb(0.0)
- """
diff --git a/examples/pysp/forestry/config/rhosetter.py b/examples/pysp/forestry/config/rhosetter.py
deleted file mode 100644
index 3572a9ff5ce..00000000000
--- a/examples/pysp/forestry/config/rhosetter.py
+++ /dev/null
@@ -1,79 +0,0 @@
-# ___________________________________________________________________________
-#
-# Pyomo: Python Optimization Modeling Objects
-# Copyright 2017 National Technology and Engineering Solutions of Sandia, LLC
-# Under the terms of Contract DE-NA0003525 with National Technology and
-# Engineering Solutions of Sandia, LLC, the U.S. Government retains certain
-# rights in this software.
-# This software is distributed under the 3-clause BSD License.
-# ___________________________________________________________________________
-
-
-def ph_rhosetter_callback(ph, scenario_tree, scenario):
-
- MyRhoFactorDelta = 0.001
- MyRhoFactorGamma = 0.0001
- MyRhoFactorF = 0.1
- MyRhoFactorZ = 0.01
-
- scenario_instance = scenario._instance
- symbol_map = scenario_instance._ScenarioTreeSymbolMap
- for tree_node in scenario._node_list:
-
- stage = tree_node._stage
- t = None
- if stage._name == "Ano1Stage":
- t = "Ano1"
- elif stage._name == "Ano2Stage":
- t = "Ano2"
- elif stage._name == "Ano3Stage":
- t = "Ano3"
- elif stage._name == "Ano4Stage":
- continue
- else:
- raise RuntimeError("Unexpected stage name: "+stage._name)
-
- for h in scenario_instance.HarvestCells:
-
- new_rho = 0.0
- new_rho += (scenario_instance.P[h,t] * \
- scenario_instance.A[h] *
- MyRhoFactorDelta)
- new_rho += (MyRhoFactorDelta * \
- scenario_instance.a[h, t] * \
- scenario_instance.yr[t] * \
- scenario_instance.A[h] * \
- sum(scenario_instance.Q[o, t] for o in \
- scenario_instance.COriginNodeForCell[h]))
-
- ph.setRhoOneScenario(
- tree_node,
- scenario,
- symbol_map.getSymbol(scenario_instance.delta[h,t]),
- new_rho)
-
- # .a[h, t] * .A[h] * sum([ scenario_instance.Q[o, t] for o in model.OriginNodes for h in model.HCellsForOrigin[o]])
- # scenario_instance.a[h, t] * scenario_instance.A[h] * sum([ scenario_instance.Q[o, t] for o in scenario_instance.COriginNodeForCell[h]])
-
- for (i,j) in scenario_instance.PotentialRoads:
- ph.setRhoOneScenario(
- tree_node,
- scenario,
- symbol_map.getSymbol(scenario_instance.gamma[i,j,t]),
- scenario_instance.C[i,j,t] * MyRhoFactorGamma)
-
- for (i,j) in scenario_instance.AllRoads:
- ph.setRhoOneScenario(
- tree_node,
- scenario,
- symbol_map.getSymbol(scenario_instance.f[i,j,t]),
- scenario_instance.D[i,j,t] * MyRhoFactorF)
- """
- for e in scenario_instance.ExitNodes:
- #for e in model.ExitNodes:
- ph.setRhoOneScenario(
- tree_node,
- scenario,
- symbol_map.getSymbol(scenario_instance.z[e,t]),
- scenario_instance.R[e,t] * MyRhoFactorZ)
- """
diff --git a/examples/pysp/forestry/config/wwph-nb.suffixes b/examples/pysp/forestry/config/wwph-nb.suffixes
deleted file mode 100644
index 63b6920d5d6..00000000000
--- a/examples/pysp/forestry/config/wwph-nb.suffixes
+++ /dev/null
@@ -1,70 +0,0 @@
-# Optional suffixes to help control PH
-RootNode: # or Ano1Stage
- gamma[*,*,Ano1]:
- Iter0FixIfConvergedAtLB: 1
- Iter0FixIfConvergedAtUB: 1
- FixWhenItersConvergedAtLB: 1
- FixWhenItersConvergedAtUB: 1
- #SlammingPriority: 40
- CanSlamToLB: False
- CanSlamToMin: False
- CanSlamToAnywhere: False
- CanSlamToMax: False
- CanSlamToUB: False
- delta[*,Ano1]:
- Iter0FixIfConvergedAtLB: 1
- Iter0FixIfConvergedAtUB: 1
- FixWhenItersConvergedAtLB: 1
- FixWhenItersConvergedAtUB: 1
- #SlammingPriority: 1
- CanSlamToLB: False
- CanSlamToMin: False
- CanSlamToAnywhere: False
- CanSlamToMax: False
- CanSlamToUB: False
-Ano2Stage:
- gamma[*,*,Ano2]:
- #Iter0FixIfConvergedAtLB: 0
- Iter0FixIfConvergedAtUB: 1
- FixWhenItersConvergedAtLB: 4
- FixWhenItersConvergedAtUB: 0
- #SlammingPriority: 30
- CanSlamToLB: False
- CanSlamToMin: False
- CanSlamToAnywhere: False
- CanSlamToMax: False
- CanSlamToUB: False
- delta[*,Ano2]:
- #Iter0FixIfConvergedAtLB: 1
- Iter0FixIfConvergedAtUB: 1
- FixWhenItersConvergedAtLB: 4
- FixWhenItersConvergedAtUB: 0
- #SlammingPriority: 2
- CanSlamToLB: False
- CanSlamToMin: False
- CanSlamToAnywhere: False
- CanSlamToMax: False
- CanSlamToUB: False
-Ano3Stage:
- gamma[*,*,Ano3]:
- #Iter0FixIfConvergedAtUB: 0
- #Iter0FixIfConvergedAtLB: 0
- FixWhenItersConvergedAtLB: 6
- FixWhenItersConvergedAtUB: 0
- #SlammingPriority: 20
- CanSlamToLB: False
- CanSlamToMin: False
- CanSlamToAnywhere: False
- CanSlamToMax: False
- CanSlamToUB: False
- delta[*,Ano3]:
- #Iter0FixIfConvergedAtLB: 1
- #Iter0FixIfConvergedAtUB: 1
- FixWhenItersConvergedAtLB: 6
- FixWhenItersConvergedAtUB: 0
- #SlammingPriority: 2
- CanSlamToLB: False
- CanSlamToMin: False
- CanSlamToAnywhere: False
- CanSlamToMax: False
- CanSlamToUB: False
diff --git a/examples/pysp/forestry/config/wwph.cfg b/examples/pysp/forestry/config/wwph.cfg
deleted file mode 100644
index 94d5aaf7c0d..00000000000
--- a/examples/pysp/forestry/config/wwph.cfg
+++ /dev/null
@@ -1,15 +0,0 @@
-#self.Iter0FixIfConvergedAtLB = 0
-#self.Iter0FixIfConvergedAtUB = 1
-#self.Iter0FixIfConvergedAtNB = 0
-
-#self.FixWhenItersConvergedAtLB = 1
-#self.FixWhenItersConvergedAtUB = 1
-#self.FixWhenItersConvergedAtNB = 1
-
-self.Iteration0MipGap = 0.021
-self.InitialMipGap = 0.02
-self.FinalMipGap = 0.016 # will be above this
-
-self.fix_continuous_variables = False
-#self.StartBlendingContIter = 1
-self.DisableCycleDetection = True
diff --git a/examples/pysp/forestry/expr-models-nb-yr/ReferenceModel.py b/examples/pysp/forestry/expr-models-nb-yr/ReferenceModel.py
deleted file mode 100644
index 9a6cdef4d31..00000000000
--- a/examples/pysp/forestry/expr-models-nb-yr/ReferenceModel.py
+++ /dev/null
@@ -1,315 +0,0 @@
-# ___________________________________________________________________________
-#
-# Pyomo: Python Optimization Modeling Objects
-# Copyright 2017 National Technology and Engineering Solutions of Sandia, LLC
-# Under the terms of Contract DE-NA0003525 with National Technology and
-# Engineering Solutions of Sandia, LLC, the U.S. Government retains certain
-# rights in this software.
-# This software is distributed under the 3-clause BSD License.
-# ___________________________________________________________________________
-
-# fbv - Chile rules!
-# dlw - base forest model - begin April 2009
-# mnr - base forest model - revised May 1, 2009 - changed the notation of parameters to match those in paper.
-
-#
-# Imports (i.e., magical incantations)
-#
-from pyomo.core import *
-
-#
-# Model
-#
-model = AbstractModel(name="Forest Management Base Model")
-
-#
-# Implementation Sets (not in paper, used to make it happen)
-# general nodes (not in paper)
-model.Nodes = Set()
-
-#
-# Sets
-#
-
-
-# time Horizon \mathcal{T}
-#def Time_init
-#model.Times = Set(ordered=True, initialize=Time_init)
-model.Times = Set(ordered=True)
-
-# network nodes \mathcal{O}
-model.OriginNodes = Set(within=model.Nodes)
-
-# intersection nodes
-model.IntersectionNodes = Set(within=model.Nodes)
-
-# wood exit nodes
-model.ExitNodes = Set(within=model.Nodes)
-
-# harvest cells \mathcal{H}
-model.HarvestCells = Set()
-
-# harvest cells for origin o \mathcal{H}_o
-model.HCellsForOrigin = Set(model.OriginNodes, within=model.HarvestCells)
-
-# HERE'S MY BUG!!!!!!!!!!!!!!!!!!!
-# origin nodes for cell
-#def origin_node_for_harvest_cell_rule(model, h):
-# for o in model.OriginNodes:
-# if h in model.HCellsForOrigin[o]:
-# print "h,o=",h,o
-# return o
-# #return o()
-# #return str(o)
-#model.COriginNodeForCellA = Set(model.HarvestCells, within=model.OriginNodes, rule=origin_node_for_harvest_cell_rule)
-# SO I PRECALCULATED IT
-model.COriginNodeForCell = Set(model.HarvestCells, within=model.OriginNodes)
-
-# existing roads
-model.ExistingRoads = Set(within=model.Nodes*model.Nodes)
-
-# potential roads
-model.PotentialRoads = Set(within=model.Nodes*model.Nodes)
-
-# Roads declaring
-#model.AllRoads = model.ExistingRoads & model.PotentialRoads
-model.AllRoads = Set(within=model.Nodes*model.Nodes)
-
-# derived set
-def aplus_arc_set_rule(model, v):
- return [(i, j) for (i, j) in model.AllRoads if j == v]
-model.Aplus = Set(model.Nodes, within=model.AllRoads, initialize=aplus_arc_set_rule)
-
-# derived set
-def aminus_arc_set_rule(model, v):
- return [(i, j) for (i, j) in model.AllRoads if i == v]
-model.Aminus = Set(model.Nodes, within=model.AllRoads, initialize=aminus_arc_set_rule)
-
-# derived set for the "no isolated roads can be built" constraint
-# if you would build the road, then one connecting road should be built around you. And because the roads its isolated, you need to sum over potential roads around you
-def connected_potential_roads_rule(model, k, l):
- return [ (i, j) for (i, j) in model.PotentialRoads if (i==k and j!=l) or (i==l and j!=k) or (j==k and i!=l) or (j==l and i!=k) ]
-model.ConnectedPotentialRoads = Set( model.Nodes, model.Nodes, within=model.PotentialRoads, initialize=connected_potential_roads_rule)
-# a PotentialRoad is not isolated if it connects to an ExitNode or an Existing Road
-def potential_roads_connected_to_existing_roads_rule(model):
- set=[]
- for (k,l) in model.PotentialRoads:
- #if not (k in model.ExitNodes and l in model.OriginNodes) and not (l in model.ExitNodes and k in model.OriginNodes):
- if not (k in model.ExitNodes) and not (l in model.ExitNodes):
- for x in model.Nodes:
- if x!=k and x!=l:
- #print "k,l,x=",k,l,x
- if (x,k) in model.AllRoads or (x,l) in model.AllRoads or (k,x) in model.AllRoads or (l,x) in model.AllRoads:
- #if not (k in model.OriginNodes and (l,x) in model.ExistingRoads) and not (l in model.OriginNodes and (k,x) in model.ExistingRoads):
- if ((x,k) in model.ExistingRoads) or ((x,l) in model.ExistingRoads) or ((k,x) in model.ExistingRoads) or ((l,x) in model.ExistingRoads):
- if (k,l) not in set:
- set.append((k,l))
- #print "set=",set
- return set
-model.PotentialRoadsConnectedToExistingRoads = Set(within=model.PotentialRoads, initialize=potential_roads_connected_to_existing_roads_rule)
-# isolated PotentialRoads
-model.DisconnectedPotentialRoads = model.PotentialRoads - model.PotentialRoadsConnectedToExistingRoads
-
-# derived set for the "no isolated lots can be harvest" constraint
-# if a isolated lot is harvested then one potential road accesing it must be built around
-def potential_roads_accesing_lot_h(model, h):
- return [ (i, j) for (i, j) in model.PotentialRoads if (i in model.COriginNodeForCell[h]) or (j in model.COriginNodeForCell[h]) ]
-model.PotentialRoadsAccesingLotH = Set( model.HarvestCells, within=model.PotentialRoads, initialize=potential_roads_accesing_lot_h )
-# a isolated lot is not connected to an ExistingRoad
-def lots_connected_to_existing_roads(model):
- set=[]
- for h in model.HarvestCells:
- for (i,j) in model.ExistingRoads:
- if (i in model.COriginNodeForCell[h]) or (j in model.COriginNodeForCell[h]):
- if h not in set:
- set.append(h)
- return set
-model.LotsConnectedToExistingRoads = Set(within=model.HarvestCells, initialize=lots_connected_to_existing_roads )
-# isolated lots or HarvestCells
-model.LotsNotConnectedToExistingRoads = model.HarvestCells - model.LotsConnectedToExistingRoads
-
-
-#
-# Deterministic Parameters
-#
-
-# productivity of cell h if it is harvested in period t
-model.a = Param(model.HarvestCells, model.Times)
-
-# Area of cell h to be harvested
-model.A = Param(model.HarvestCells)
-
-
-# harvesting cost of one hectare of cell h in time t
-model.P = Param(model.HarvestCells, model.Times)
-
-# unit Production cost at origin o in time t
-model.Q = Param(model.OriginNodes, model.Times)
-
-# construction cost of one road in arc (k,l) in time t
-model.C = Param(model.PotentialRoads, model.Times, default=0.0)
-
-# unit transport cost through arc (k,l) in time t
-model.D = Param(model.AllRoads, model.Times)
-
-#
-# Stochastic Parameters
-#
-
-# sale price at exit s in time period t
-model.R = Param(model.ExitNodes, model.Times)
-
-# upper and lower bounds on wood supplied
-model.Zlb = Param(model.Times)
-model.Zub = Param(model.Times)
-
-# Yield Ratio
-model.yr = Param(model.Times)
-
-# flow capacity (smallest big M)
-def Umax_init(model):
- return sum([value(model.a[h, t]) * value(model.yr[t]) * value(model.A[h]) for h in model.HarvestCells for t in model.Times])
-model.Umax = Param(initialize=Umax_init)
-#
-# Variables
-#
-
-# If cell h is harvested in period t
-model.delta = Var(model.HarvestCells, model.Times, domain=Boolean)
-
-# If road in arc (k,l) is built in period t
-model.gamma = Var(model.PotentialRoads, model.Times, domain=Boolean)
-
-# Flow of wood thransported through arc (k,l)
-model.f = Var(model.AllRoads, model.Times, domain=NonNegativeReals)
-
-# Supply of wood at exit s in period t
-model.z = Var(model.ExitNodes, model.Times, domain=NonNegativeReals)
-
-#
-# Constraints
-#
-
-# flow balance at origin nodes
-def origin_flow_bal(model, o, t):
- ans1 = sum([model.a[h, t] * model.yr[t] * model.A[h] * model.delta[h, t] for h in model.HCellsForOrigin[o]])
- ans2 = sum([model.f[k, o, t] for (k, o) in model.Aplus[o]])
- ans3 = sum([model.f[o, k, t] for (o, k) in model.Aminus[o]])
- return (ans1 + ans2 - ans3) == 0.0
-
-model.EnforceOriginFlowBalance = Constraint(model.OriginNodes, model.Times, rule=origin_flow_bal)
-
-# flow balance at intersection nodes
-def intersection_flow_bal(model, j, t):
- return (sum([model.f[k, j, t] for (k, j) in model.Aplus[j]]) - sum([model.f[j, k, t] for (j, k) in model.Aminus[j]])) == 0.0
-
-model.EnforceIntersectionFlowBalance = Constraint(model.IntersectionNodes, model.Times, rule=intersection_flow_bal)
-
-# flow balance at destination nodes
-def destination_flow_bal(model, e, t):
- return (model.z[e, t] - sum([model.f[k, e, t] for (k, e) in model.Aplus[e]]) + sum([model.f[e, k, t] for (e, k) in model.Aminus[e]])) == 0.0
-
-model.EnforceDestinationFlowBalance = Constraint(model.ExitNodes, model.Times, rule=destination_flow_bal)
-
-# explicit divergence or supply equals demand or no inventory between periods
-def divergence_flow_bal(model, t):
- return (sum([model.z[e, t] for e in model.ExitNodes]) - sum([model.a[h, t] * model.yr[t] * model.A[h] * model.delta[h, t] for h in model.HarvestCells])) == 0.0
-
-model.EnforceDivergenceFlowBalance = Constraint(model.Times, rule=divergence_flow_bal)
-
-# Wood Production Bounds
-def wood_prod_bounds(model, t):
- return (model.Zlb[t], sum([model.z[e, t] for e in model.ExitNodes]), model.Zub[t])
-
-model.EnforceWoodProductionBounds = Constraint(model.Times, rule=wood_prod_bounds)
-
-# potential roads flow capacity 1
-def pot_road_flow_capacity(model, k, l, t):
- return (None, model.f[k, l, t] - sum([model.Umax * model.gamma[k, l, tau] for tau in model.Times if tau <= t]), 0.0)
-
-model.EnforcePotentialRoadFlowCap = Constraint(model.PotentialRoads, model.Times, rule=pot_road_flow_capacity)
-
-# each potential road can be built no more than once in the time horizon
-def one_potential_road(model, k, l):
- return (None, sum([model.gamma[k ,l, t] for t in model.Times]), 1.0)
-
-model.EnforceOnePotentialRoad = Constraint(model.PotentialRoads, rule=one_potential_road)
-
-# existing roads flow capacity
-def existing_roads_capacity(model, k, l, t):
- return (None, model.f[k, l, t], model.Umax)
-
-model.EnforceExistingRoadCapacities = Constraint(model.ExistingRoads, model.Times, rule=existing_roads_capacity)
-
-# additional road bound capacity
-def additional_roads_capacity(model, k, l, t):
- return ( None, model.f[k, l, t] - sum([model.z[e, t] for e in model.ExitNodes]), 0.0 )
-
-model.EnforceAdditionalRoadCapacities = Constraint(model.AllRoads, model.Times, rule=additional_roads_capacity)
-
-# each cell can be harvested no more than once in the time horizon
-def one_harvest(model, h):
- return (None, sum([model.delta[h,t] for t in model.Times]), 1.0)
-
-model.EnforceOneHarvest = Constraint(model.HarvestCells, rule=one_harvest)
-
-# no isolated roads can be built
-def road_to_road_trigger(model, t, k, l):
- return ( None, sum([ model.gamma[ k, l, tt] for tt in model.Times if tt <= t ]) - sum([ model.gamma[ i, j, ttt] for ttt in model.Times if ttt <= t for (i,j) in model.ConnectedPotentialRoads[k,l] ]), 0.0 )
-
-model.EnforceRoadToRoadTrigger = Constraint(model.Times, model.DisconnectedPotentialRoads, rule=road_to_road_trigger)
-
-# no isolated lots can be harvest
-def lot_to_road_trigger(model, t, h):
- return ( None, sum([ model.delta[ h, tt] for tt in model.Times if tt <= t ]) - sum([ model.gamma[ i, j, ttt] for ttt in model.Times if ttt <= t for (i,j) in model.PotentialRoadsAccesingLotH[h] ]), 0.0 )
-
-model.EnforceLotToRoadTrigger = Constraint(model.Times, model.LotsNotConnectedToExistingRoads, rule=lot_to_road_trigger)
-
-#
-# Stage-specific profit computations
-#
-
-# awful but straigthforward way to set the discount factor
-def hehe(t):
-# print "t=",t
- if t == "Ano1":
- return 1
- if t == "Ano2":
- return 0.9
- if t == "Ano3":
- return 0.81
- if t == "Ano4":
- return 0.729
-
-def stage_profit_rule(model, t):
- # ans1 is T1 (i.e. wood sale revenue)
- ans1 = sum([model.R[e, t] * model.z[e, t] for e in model.ExitNodes])
-
- # ans2 is T2 (i.e. wood harvest cost)
- ans2 = sum([model.P[h, t] * model.A[h] * model.delta[h, t] for h in model.HarvestCells])
-
- # ans3 is T3 (i.e. production costs at origin nodes)
- ans3 = sum([model.a[h, t] * model.yr[t] * model.A[h] * model.delta[h,t] * model.Q[o, t] for o in model.OriginNodes for h in model.HCellsForOrigin[o]])
-
- # ans4 is T4 (i.e. potential road construction cost)
- ans4 = sum([model.C[i, j, t] * model.gamma[i, j, t] for (i,j) in model.PotentialRoads])
-
- # ans5 is T5 (i.e. wood transport cost)
- ans5 = sum([model.D[i, j, t] * model.f[i, j, t] for (i,j) in model.AllRoads])
-
- return hehe(t)*(ans1 - ans2 - ans3 - ans4 - ans5)
-
-# Declared when changing the program for stochastics
-model.AnoProfit = Expression(model.Times, rule=stage_profit_rule)
-
-#
-# PySP Auto-generated Objective
-#
-# maximize: sum of StageCosts
-#
-# A active scenario objective equivalent to that generated by PySP is
-# included here for informational purposes.
-def total_profit_rule(model):
- return sum(model.AnoProfit[t] for t in model.Times)
-model.Production_Profit_Objective = Objective(rule=total_profit_rule, sense=maximize)
-
diff --git a/examples/pysp/forestry/models-nb-yr/ReferenceModel.py b/examples/pysp/forestry/models-nb-yr/ReferenceModel.py
deleted file mode 100644
index 19ada38c026..00000000000
--- a/examples/pysp/forestry/models-nb-yr/ReferenceModel.py
+++ /dev/null
@@ -1,318 +0,0 @@
-# ___________________________________________________________________________
-#
-# Pyomo: Python Optimization Modeling Objects
-# Copyright 2017 National Technology and Engineering Solutions of Sandia, LLC
-# Under the terms of Contract DE-NA0003525 with National Technology and
-# Engineering Solutions of Sandia, LLC, the U.S. Government retains certain
-# rights in this software.
-# This software is distributed under the 3-clause BSD License.
-# ___________________________________________________________________________
-
-# fbv - Chile rules!
-# dlw - base forest model - begin April 2009
-# mnr - base forest model - revised May 1, 2009 - changed the notation of parameters to match those in paper.
-
-#
-# Imports (i.e., magical incantations)
-#
-from pyomo.core import *
-
-#
-# Model
-#
-model = AbstractModel(name="Forest Management Base Model")
-
-#
-# Implementation Sets (not in paper, used to make it happen)
-# general nodes (not in paper)
-model.Nodes = Set()
-
-#
-# Sets
-#
-
-
-# time Horizon \mathcal{T}
-#def Time_init
-#model.Times = Set(ordered=True, initialize=Time_init)
-model.Times = Set(ordered=True)
-
-# network nodes \mathcal{O}
-model.OriginNodes = Set(within=model.Nodes)
-
-# intersection nodes
-model.IntersectionNodes = Set(within=model.Nodes)
-
-# wood exit nodes
-model.ExitNodes = Set(within=model.Nodes)
-
-# harvest cells \mathcal{H}
-model.HarvestCells = Set()
-
-# harvest cells for origin o \mathcal{H}_o
-model.HCellsForOrigin = Set(model.OriginNodes, within=model.HarvestCells)
-
-# HERE'S MY BUG!!!!!!!!!!!!!!!!!!!
-# origin nodes for cell
-#def origin_node_for_harvest_cell_rule(model, h):
-# for o in model.OriginNodes:
-# if h in model.HCellsForOrigin[o]:
-# print "h,o=",h,o
-# return o
-# #return o()
-# #return str(o)
-#model.COriginNodeForCellA = Set(model.HarvestCells, within=model.OriginNodes, rule=origin_node_for_harvest_cell_rule)
-# SO I PRECALCULATED IT
-model.COriginNodeForCell = Set(model.HarvestCells, within=model.OriginNodes)
-
-# existing roads
-model.ExistingRoads = Set(within=model.Nodes*model.Nodes)
-
-# potential roads
-model.PotentialRoads = Set(within=model.Nodes*model.Nodes)
-
-# Roads declaring
-#model.AllRoads = model.ExistingRoads & model.PotentialRoads
-model.AllRoads = Set(within=model.Nodes*model.Nodes)
-
-# derived set
-def aplus_arc_set_rule(model, v):
- return [(i, j) for (i, j) in model.AllRoads if j == v]
-model.Aplus = Set(model.Nodes, within=model.AllRoads, initialize=aplus_arc_set_rule)
-
-# derived set
-def aminus_arc_set_rule(model, v):
- return [(i, j) for (i, j) in model.AllRoads if i == v]
-model.Aminus = Set(model.Nodes, within=model.AllRoads, initialize=aminus_arc_set_rule)
-
-# derived set for the "no isolated roads can be built" constraint
-# if you would build the road, then one connecting road should be built around you. And because the roads its isolated, you need to sum over potential roads around you
-def connected_potential_roads_rule(model, k, l):
- return [ (i, j) for (i, j) in model.PotentialRoads if (i==k and j!=l) or (i==l and j!=k) or (j==k and i!=l) or (j==l and i!=k) ]
-model.ConnectedPotentialRoads = Set( model.Nodes, model.Nodes, within=model.PotentialRoads, initialize=connected_potential_roads_rule)
-# a PotentialRoad is not isolated if it connects to an ExitNode or an Existing Road
-def potential_roads_connected_to_existing_roads_rule(model):
- set=[]
- for (k,l) in model.PotentialRoads:
- #if not (k in model.ExitNodes and l in model.OriginNodes) and not (l in model.ExitNodes and k in model.OriginNodes):
- if not (k in model.ExitNodes) and not (l in model.ExitNodes):
- for x in model.Nodes:
- if x!=k and x!=l:
- #print "k,l,x=",k,l,x
- if (x,k) in model.AllRoads or (x,l) in model.AllRoads or (k,x) in model.AllRoads or (l,x) in model.AllRoads:
- #if not (k in model.OriginNodes and (l,x) in model.ExistingRoads) and not (l in model.OriginNodes and (k,x) in model.ExistingRoads):
- if ((x,k) in model.ExistingRoads) or ((x,l) in model.ExistingRoads) or ((k,x) in model.ExistingRoads) or ((l,x) in model.ExistingRoads):
- if (k,l) not in set:
- set.append((k,l))
- #print "set=",set
- return set
-model.PotentialRoadsConnectedToExistingRoads = Set(within=model.PotentialRoads, initialize=potential_roads_connected_to_existing_roads_rule)
-# isolated PotentialRoads
-model.DisconnectedPotentialRoads = model.PotentialRoads - model.PotentialRoadsConnectedToExistingRoads
-
-# derived set for the "no isolated lots can be harvest" constraint
-# if a isolated lot is harvested then one potential road accesing it must be built around
-def potential_roads_accesing_lot_h(model, h):
- return [ (i, j) for (i, j) in model.PotentialRoads if (i in model.COriginNodeForCell[h]) or (j in model.COriginNodeForCell[h]) ]
-model.PotentialRoadsAccesingLotH = Set( model.HarvestCells, within=model.PotentialRoads, initialize=potential_roads_accesing_lot_h )
-# a isolated lot is not connected to an ExistingRoad
-def lots_connected_to_existing_roads(model):
- set=[]
- for h in model.HarvestCells:
- for (i,j) in model.ExistingRoads:
- if (i in model.COriginNodeForCell[h]) or (j in model.COriginNodeForCell[h]):
- if h not in set:
- set.append(h)
- return set
-model.LotsConnectedToExistingRoads = Set(within=model.HarvestCells, initialize=lots_connected_to_existing_roads )
-# isolated lots or HarvestCells
-model.LotsNotConnectedToExistingRoads = model.HarvestCells - model.LotsConnectedToExistingRoads
-
-
-#
-# Deterministic Parameters
-#
-
-# productivity of cell h if it is harvested in period t
-model.a = Param(model.HarvestCells, model.Times)
-
-# Area of cell h to be harvested
-model.A = Param(model.HarvestCells)
-
-
-# harvesting cost of one hectare of cell h in time t
-model.P = Param(model.HarvestCells, model.Times)
-
-# unit Production cost at origin o in time t
-model.Q = Param(model.OriginNodes, model.Times)
-
-# construction cost of one road in arc (k,l) in time t
-model.C = Param(model.PotentialRoads, model.Times, default=0.0)
-
-# unit transport cost through arc (k,l) in time t
-model.D = Param(model.AllRoads, model.Times)
-
-#
-# Stochastic Parameters
-#
-
-# sale price at exit s in time period t
-model.R = Param(model.ExitNodes, model.Times)
-
-# upper and lower bounds on wood supplied
-model.Zlb = Param(model.Times)
-model.Zub = Param(model.Times)
-
-# Yield Ratio
-model.yr = Param(model.Times)
-
-# flow capacity (smallest big M)
-def Umax_init(model):
- return sum([value(model.a[h, t]) * value(model.yr[t]) * value(model.A[h]) for h in model.HarvestCells for t in model.Times])
-model.Umax = Param(initialize=Umax_init)
-#
-# Variables
-#
-
-# If cell h is harvested in period t
-model.delta = Var(model.HarvestCells, model.Times, domain=Boolean)
-
-# If road in arc (k,l) is built in period t
-model.gamma = Var(model.PotentialRoads, model.Times, domain=Boolean)
-
-# Flow of wood thransported through arc (k,l)
-model.f = Var(model.AllRoads, model.Times, domain=NonNegativeReals)
-
-# Supply of wood at exit s in period t
-model.z = Var(model.ExitNodes, model.Times, domain=NonNegativeReals)
-
-# Declared when changing the program for stochastics
-model.AnoProfit = Var(model.Times)
-
-#
-# Constraints
-#
-
-# flow balance at origin nodes
-def origin_flow_bal(model, o, t):
- ans1 = sum([model.a[h, t] * model.yr[t] * model.A[h] * model.delta[h, t] for h in model.HCellsForOrigin[o]])
- ans2 = sum([model.f[k, o, t] for (k, o) in model.Aplus[o]])
- ans3 = sum([model.f[o, k, t] for (o, k) in model.Aminus[o]])
- return (ans1 + ans2 - ans3) == 0.0
-
-model.EnforceOriginFlowBalance = Constraint(model.OriginNodes, model.Times, rule=origin_flow_bal)
-
-# flow balance at intersection nodes
-def intersection_flow_bal(model, j, t):
- return (sum([model.f[k, j, t] for (k, j) in model.Aplus[j]]) - sum([model.f[j, k, t] for (j, k) in model.Aminus[j]])) == 0.0
-
-model.EnforceIntersectionFlowBalance = Constraint(model.IntersectionNodes, model.Times, rule=intersection_flow_bal)
-
-# flow balance at destination nodes
-def destination_flow_bal(model, e, t):
- return (model.z[e, t] - sum([model.f[k, e, t] for (k, e) in model.Aplus[e]]) + sum([model.f[e, k, t] for (e, k) in model.Aminus[e]])) == 0.0
-
-model.EnforceDestinationFlowBalance = Constraint(model.ExitNodes, model.Times, rule=destination_flow_bal)
-
-# explicit divergence or supply equals demand or no inventory between periods
-def divergence_flow_bal(model, t):
- return (sum([model.z[e, t] for e in model.ExitNodes]) - sum([model.a[h, t] * model.yr[t] * model.A[h] * model.delta[h, t] for h in model.HarvestCells])) == 0.0
-
-model.EnforceDivergenceFlowBalance = Constraint(model.Times, rule=divergence_flow_bal)
-
-# Wood Production Bounds
-def wood_prod_bounds(model, t):
- return (model.Zlb[t], sum([model.z[e, t] for e in model.ExitNodes]), model.Zub[t])
-
-model.EnforceWoodProductionBounds = Constraint(model.Times, rule=wood_prod_bounds)
-
-# potential roads flow capacity 1
-def pot_road_flow_capacity(model, k, l, t):
- return (None, model.f[k, l, t] - sum([model.Umax * model.gamma[k, l, tau] for tau in model.Times if tau <= t]), 0.0)
-
-model.EnforcePotentialRoadFlowCap = Constraint(model.PotentialRoads, model.Times, rule=pot_road_flow_capacity)
-
-# each potential road can be built no more than once in the time horizon
-def one_potential_road(model, k, l):
- return (None, sum([model.gamma[k ,l, t] for t in model.Times]), 1.0)
-
-model.EnforceOnePotentialRoad = Constraint(model.PotentialRoads, rule=one_potential_road)
-
-# existing roads flow capacity
-def existing_roads_capacity(model, k, l, t):
- return (None, model.f[k, l, t], model.Umax)
-
-model.EnforceExistingRoadCapacities = Constraint(model.ExistingRoads, model.Times, rule=existing_roads_capacity)
-
-# additional road bound capacity
-def additional_roads_capacity(model, k, l, t):
- return ( None, model.f[k, l, t] - sum([model.z[e, t] for e in model.ExitNodes]), 0.0 )
-
-model.EnforceAdditionalRoadCapacities = Constraint(model.AllRoads, model.Times, rule=additional_roads_capacity)
-
-# each cell can be harvested no more than once in the time horizon
-def one_harvest(model, h):
- return (None, sum([model.delta[h,t] for t in model.Times]), 1.0)
-
-model.EnforceOneHarvest = Constraint(model.HarvestCells, rule=one_harvest)
-
-# no isolated roads can be built
-def road_to_road_trigger(model, t, k, l):
- return ( None, sum([ model.gamma[ k, l, tt] for tt in model.Times if tt <= t ]) - sum([ model.gamma[ i, j, ttt] for ttt in model.Times if ttt <= t for (i,j) in model.ConnectedPotentialRoads[k,l] ]), 0.0 )
-
-model.EnforceRoadToRoadTrigger = Constraint(model.Times, model.DisconnectedPotentialRoads, rule=road_to_road_trigger)
-
-# no isolated lots can be harvest
-def lot_to_road_trigger(model, t, h):
- return ( None, sum([ model.delta[ h, tt] for tt in model.Times if tt <= t ]) - sum([ model.gamma[ i, j, ttt] for ttt in model.Times if ttt <= t for (i,j) in model.PotentialRoadsAccesingLotH[h] ]), 0.0 )
-
-model.EnforceLotToRoadTrigger = Constraint(model.Times, model.LotsNotConnectedToExistingRoads, rule=lot_to_road_trigger)
-
-#
-# Stage-specific profit computations
-#
-
-# awful but straigthforward way to set the discount factor
-def hehe(t):
-# print "t=",t
- if t == "Ano1":
- return 1
- if t == "Ano2":
- return 0.9
- if t == "Ano3":
- return 0.81
- if t == "Ano4":
- return 0.729
-
-def stage_profit_rule(model, t):
- # ans1 is T1 (i.e. wood sale revenue)
- ans1 = sum([model.R[e, t] * model.z[e, t] for e in model.ExitNodes])
-
- # ans2 is T2 (i.e. wood harvest cost)
- ans2 = sum([model.P[h, t] * model.A[h] * model.delta[h, t] for h in model.HarvestCells])
-
- # ans3 is T3 (i.e. production costs at origin nodes)
- ans3 = sum([model.a[h, t] * model.yr[t] * model.A[h] * model.delta[h,t] * model.Q[o, t] for o in model.OriginNodes for h in model.HCellsForOrigin[o]])
-
- # ans4 is T4 (i.e. potential road construction cost)
- ans4 = sum([model.C[i, j, t] * model.gamma[i, j, t] for (i,j) in model.PotentialRoads])
-
- # ans5 is T5 (i.e. wood transport cost)
- ans5 = sum([model.D[i, j, t] * model.f[i, j, t] for (i,j) in model.AllRoads])
-
- return (model.AnoProfit[t] - hehe(t)*(ans1 - ans2 - ans3 - ans4 - ans5)) == 0.0
-# return (model.AnoProfit[t] - (ans1 - ans2 - ans3 - ans4 - ans5)) == 0.0
-
-model.ComputeStageProfit = Constraint(model.Times, rule=stage_profit_rule)
-
-#
-# PySP Auto-generated Objective
-#
-# maximize: sum of StageCosts
-#
-# A active scenario objective equivalent to that generated by PySP is
-# included here for informational purposes.
-def total_profit_rule(model):
- return sum_product(model.AnoProfit)
-model.Production_Profit_Objective = Objective(rule=total_profit_rule, sense=maximize)
-
diff --git a/examples/pysp/forestry/unequalProbs/ForestChile1.dat b/examples/pysp/forestry/unequalProbs/ForestChile1.dat
deleted file mode 100644
index 98d888bf3e1..00000000000
--- a/examples/pysp/forestry/unequalProbs/ForestChile1.dat
+++ /dev/null
@@ -1,562 +0,0 @@
-# fbv
-# mnr May 3, 2009
-
-# general nodes
-set Nodes := E1
- I1 I2 I3
- C01 C02 C03 C04 C05 C06 C07 C08 C09 ;
-
-# following the notation in the paper (note: nodes \equiv origins)
-
-#
-# Sets
-#
-
-set Times := Ano1 Ano2 Ano3 Ano4;
-
-set OriginNodes := C01 C02 C03 C04 C05 C06 C07 C08 C09 ;
-
-set IntersectionNodes := I1 I2 I3;
-
-set ExitNodes := E1;
-
-set HarvestCells := U1 U2 U3 U4 U5 U6 U7 U8 U9 U10 U11 U12 U13
- U14 U15 U16 U17 U18 U19 U20 U21 U22 U23 U24 U25;
-
-set HCellsForOrigin[C01] := U1 U2 U4 ;
-set HCellsForOrigin[C02] := U6 U7 U9 U10 ;
-set HCellsForOrigin[C03] := U12 U13 ;
-set HCellsForOrigin[C04] := U11 U15 U16 ;
-set HCellsForOrigin[C05] := U14 U23 U24 ;
-set HCellsForOrigin[C06] := U17 U18 U19 ;
-set HCellsForOrigin[C07] := U22 U25 ;
-set HCellsForOrigin[C08] := U20 U21 ;
-set HCellsForOrigin[C09] := U3 U5 U8 ;
-
-set ExistingRoads :=
-C02 C03
-C03 E1
-C05 I1
-I1 I2
-I2 I3
-I3 E1
-;
-
-set PotentialRoads :=
-C01 C09
-C01 C02
-C02 C09
-C09 C02
-C09 E1
-C09 C03
-C04 C03
-C04 I3
-C06 I3
-C08 C06
-C08 I2
-C07 C08
-C07 I1
-C07 C05
-;
-
-set AllRoads :=
-C02 C03
-C03 E1
-C05 I1
-I1 I2
-I2 I3
-I3 E1
-C01 C09
-C01 C02
-C02 C09
-C09 C02
-C09 E1
-C09 C03
-C04 C03
-C04 I3
-C06 I3
-C08 C06
-C08 I2
-C07 C08
-C07 I1
-C07 C05
-;
-
-#
-# Deterministic Parameters
-#
-
-# productivity of cell h if it is harvested in period t
-param a :=
-U1 Ano1 362
-U1 Ano2 362
-U1 Ano3 362
-U1 Ano4 362
-U2 Ano1 362
-U2 Ano2 362
-U2 Ano3 362
-U2 Ano4 362
-U3 Ano1 362
-U3 Ano2 362
-U3 Ano3 362
-U3 Ano4 362
-U4 Ano1 642
-U4 Ano2 642
-U4 Ano3 642
-U4 Ano4 642
-U5 Ano1 362
-U5 Ano2 362
-U5 Ano3 362
-U5 Ano4 362
-U6 Ano1 642
-U6 Ano2 642
-U6 Ano3 642
-U6 Ano4 642
-U7 Ano1 642
-U7 Ano2 642
-U7 Ano3 642
-U7 Ano4 642
-U8 Ano1 362
-U8 Ano2 362
-U8 Ano3 362
-U8 Ano4 362
-U9 Ano1 642
-U9 Ano2 642
-U9 Ano3 642
-U9 Ano4 642
-U10 Ano1 642
-U10 Ano2 642
-U10 Ano3 642
-U10 Ano4 642
-U11 Ano1 600
-U11 Ano2 600
-U11 Ano3 600
-U11 Ano4 600
-U12 Ano1 518
-U12 Ano2 518
-U12 Ano3 518
-U12 Ano4 518
-U13 Ano1 518
-U13 Ano2 518
-U13 Ano3 518
-U13 Ano4 518
-U14 Ano1 567
-U14 Ano2 567
-U14 Ano3 567
-U14 Ano4 567
-U15 Ano1 600
-U15 Ano2 600
-U15 Ano3 600
-U15 Ano4 600
-U16 Ano1 600
-U16 Ano2 600
-U16 Ano3 600
-U16 Ano4 600
-U17 Ano1 518
-U17 Ano2 518
-U17 Ano3 518
-U17 Ano4 518
-U18 Ano1 401
-U18 Ano2 401
-U18 Ano3 401
-U18 Ano4 401
-U19 Ano1 401
-U19 Ano2 401
-U19 Ano3 401
-U19 Ano4 401
-U20 Ano1 401
-U20 Ano2 401
-U20 Ano3 401
-U20 Ano4 401
-U21 Ano1 373
-U21 Ano2 373
-U21 Ano3 373
-U21 Ano4 373
-U22 Ano1 373
-U22 Ano2 373
-U22 Ano3 373
-U22 Ano4 373
-U23 Ano1 567
-U23 Ano2 567
-U23 Ano3 567
-U23 Ano4 567
-U24 Ano1 567
-U24 Ano2 567
-U24 Ano3 567
-U24 Ano4 567
-U25 Ano1 373
-U25 Ano2 373
-U25 Ano3 373
-U25 Ano4 373
-;
-
-# Area of cell h to be harvested
-param A :=
-U1 10.1
-U2 10.1
-U3 10.1
-U4 13.4
-U5 10.3
-U6 10.2
-U7 10.1
-U8 10.4
-U9 16.7
-U10 12.8
-U11 12.2
-U12 15.2
-U13 11.3
-U14 12.7
-U15 12.6
-U16 12.6
-U17 10
-U18 14.4
-U19 10.8
-U20 10.4
-U21 16.4
-U22 10
-U23 11.4
-U24 14.8
-U25 10.1
-;
-
-# harvesting cost of one hectare of cell h in time t
-param P :=
-U1 Ano1 8
-U1 Ano2 8
-U1 Ano3 8
-U1 Ano4 8
-U2 Ano1 8
-U2 Ano2 8
-U2 Ano3 8
-U2 Ano4 8
-U3 Ano1 8
-U3 Ano2 8
-U3 Ano3 8
-U3 Ano4 8
-U4 Ano1 8
-U4 Ano2 8
-U4 Ano3 8
-U4 Ano4 8
-U5 Ano1 8
-U5 Ano2 8
-U5 Ano3 8
-U5 Ano4 8
-U6 Ano1 8
-U6 Ano2 8
-U6 Ano3 8
-U6 Ano4 8
-U7 Ano1 8
-U7 Ano2 8
-U7 Ano3 8
-U7 Ano4 8
-U8 Ano1 8
-U8 Ano2 8
-U8 Ano3 8
-U8 Ano4 8
-U9 Ano1 8
-U9 Ano2 8
-U9 Ano3 8
-U9 Ano4 8
-U10 Ano1 8
-U10 Ano2 8
-U10 Ano3 8
-U10 Ano4 8
-U11 Ano1 8
-U11 Ano2 8
-U11 Ano3 8
-U11 Ano4 8
-U12 Ano1 8
-U12 Ano2 8
-U12 Ano3 8
-U12 Ano4 8
-U13 Ano1 8
-U13 Ano2 8
-U13 Ano3 8
-U13 Ano4 8
-U14 Ano1 8
-U14 Ano2 8
-U14 Ano3 8
-U14 Ano4 8
-U15 Ano1 8
-U15 Ano2 8
-U15 Ano3 8
-U15 Ano4 8
-U16 Ano1 8
-U16 Ano2 8
-U16 Ano3 8
-U16 Ano4 8
-U17 Ano1 8
-U17 Ano2 8
-U17 Ano3 8
-U17 Ano4 8
-U18 Ano1 8
-U18 Ano2 8
-U18 Ano3 8
-U18 Ano4 8
-U19 Ano1 8
-U19 Ano2 8
-U19 Ano3 8
-U19 Ano4 8
-U20 Ano1 8
-U20 Ano2 8
-U20 Ano3 8
-U20 Ano4 8
-U21 Ano1 8
-U21 Ano2 8
-U21 Ano3 8
-U21 Ano4 8
-U22 Ano1 8
-U22 Ano2 8
-U22 Ano3 8
-U22 Ano4 8
-U23 Ano1 8
-U23 Ano2 8
-U23 Ano3 8
-U23 Ano4 8
-U24 Ano1 8
-U24 Ano2 8
-U24 Ano3 8
-U24 Ano4 8
-U25 Ano1 8
-U25 Ano2 8
-U25 Ano3 8
-U25 Ano4 8
-;
-
-
-# prod cost
-param Q :=
-C01 Ano1 0.1
-C01 Ano2 0.1
-C01 Ano3 0.1
-C01 Ano4 0.1
-C02 Ano1 0.1
-C02 Ano2 0.1
-C02 Ano3 0.1
-C02 Ano4 0.1
-C03 Ano1 0.1
-C03 Ano2 0.1
-C03 Ano3 0.1
-C03 Ano4 0.1
-C04 Ano1 0.1
-C04 Ano2 0.1
-C04 Ano3 0.1
-C04 Ano4 0.1
-C05 Ano1 0.1
-C05 Ano2 0.1
-C05 Ano3 0.1
-C05 Ano4 0.1
-C06 Ano1 0.1
-C06 Ano2 0.1
-C06 Ano3 0.1
-C06 Ano4 0.1
-C07 Ano1 0.1
-C07 Ano2 0.1
-C07 Ano3 0.1
-C07 Ano4 0.1
-C08 Ano1 0.1
-C08 Ano2 0.1
-C08 Ano3 0.1
-C08 Ano4 0.1
-C09 Ano1 0.1
-C09 Ano2 0.1
-C09 Ano3 0.1
-C09 Ano4 0.1
-;
-
-# construction cost of one road in arc (k,l) in time t
-param C :=
-C01 C09 Ano1 1440
-C01 C09 Ano2 1309.09
-C01 C09 Ano3 1190.08
-C01 C09 Ano4 1081.89
-C01 C02 Ano1 1950
-C01 C02 Ano2 1772.73
-C01 C02 Ano3 1611.57
-C01 C02 Ano4 1465.06
-C02 C09 Ano1 1690
-C02 C09 Ano2 1536.36
-C02 C09 Ano3 1396.69
-C02 C09 Ano4 1269.72
-C09 C02 Ano1 1690
-C09 C02 Ano2 1536.36
-C09 C02 Ano3 1396.69
-C09 C02 Ano4 1269.72
-C09 E1 Ano1 2840
-C09 E1 Ano2 2581.82
-C09 E1 Ano3 2347.11
-C09 E1 Ano4 2133.73
-C09 C03 Ano1 2190
-C09 C03 Ano2 1990.91
-C09 C03 Ano3 1809.92
-C09 C03 Ano4 1645.38
-C04 C03 Ano1 1170
-C04 C03 Ano2 1063.64
-C04 C03 Ano3 966.94
-C04 C03 Ano4 879.04
-C04 I3 Ano1 1320
-C04 I3 Ano2 1200
-C04 I3 Ano3 1090.91
-C04 I3 Ano4 991.74
-C06 I3 Ano1 150
-C06 I3 Ano2 136.36
-C06 I3 Ano3 123.97
-C06 I3 Ano4 112.7
-C08 C06 Ano1 1950
-C08 C06 Ano2 1772.73
-C08 C06 Ano3 1611.57
-C08 C06 Ano4 1465.06
-C08 I2 Ano1 1110
-C08 I2 Ano2 1009.09
-C08 I2 Ano3 917.36
-C08 I2 Ano4 833.96
-C07 C08 Ano1 930
-C07 C08 Ano2 845.45
-C07 C08 Ano3 768.6
-C07 C08 Ano4 698.72
-C07 I1 Ano1 1950
-C07 I1 Ano2 1772.73
-C07 I1 Ano3 1611.57
-C07 I1 Ano4 1465.06
-C07 C05 Ano1 2130
-C07 C05 Ano2 1936.36
-C07 C05 Ano3 1760.33
-C07 C05 Ano4 1600.3
-;
-
-# unit transport cost through arc (k,l) in time t
-param D :=
-C01 C09 Ano1 1.9
-C01 C02 Ano1 3.25
-C02 C09 Ano1 2.35
-C09 C02 Ano1 2.35
-C09 E1 Ano1 4.1
-C09 C03 Ano1 3.65
-C04 C03 Ano1 1.95
-C04 I3 Ano1 2.2
-C06 I3 Ano1 0.25
-C08 C06 Ano1 3.25
-C08 I2 Ano1 1.85
-C07 C08 Ano1 1.55
-C07 I1 Ano1 3.15
-C07 C05 Ano1 3.25
-C02 C03 Ano1 3.6
-C03 E1 Ano1 1.4
-C05 I1 Ano1 0.95
-I1 I2 Ano1 1.1
-I2 I3 Ano1 1.45
-I3 E1 Ano1 1.95
-C01 C09 Ano2 1.9
-C01 C02 Ano2 3.25
-C02 C09 Ano2 2.35
-C09 C02 Ano2 2.35
-C09 E1 Ano2 4.1
-C09 C03 Ano2 3.65
-C04 C03 Ano2 1.95
-C04 I3 Ano2 2.2
-C06 I3 Ano2 0.25
-C08 C06 Ano2 3.25
-C08 I2 Ano2 1.85
-C07 C08 Ano2 1.55
-C07 I1 Ano2 3.15
-C07 C05 Ano2 3.25
-C02 C03 Ano2 3.6
-C03 E1 Ano2 1.4
-C05 I1 Ano2 0.95
-I1 I2 Ano2 1.1
-I2 I3 Ano2 1.45
-I3 E1 Ano2 1.95
-C01 C09 Ano3 1.9
-C01 C02 Ano3 3.25
-C02 C09 Ano3 2.35
-C09 C02 Ano3 2.35
-C09 E1 Ano3 4.1
-C09 C03 Ano3 3.65
-C04 C03 Ano3 1.95
-C04 I3 Ano3 2.2
-C06 I3 Ano3 0.25
-C08 C06 Ano3 3.25
-C08 I2 Ano3 1.85
-C07 C08 Ano3 1.55
-C07 I1 Ano3 3.15
-C07 C05 Ano3 3.25
-C02 C03 Ano3 3.6
-C03 E1 Ano3 1.4
-C05 I1 Ano3 0.95
-I1 I2 Ano3 1.1
-I2 I3 Ano3 1.45
-I3 E1 Ano3 1.95
-C01 C09 Ano4 1.9
-C01 C02 Ano4 3.25
-C02 C09 Ano4 2.35
-C09 C02 Ano4 2.35
-C09 E1 Ano4 4.1
-C09 C03 Ano4 3.65
-C04 C03 Ano4 1.95
-C04 I3 Ano4 2.2
-C06 I3 Ano4 0.25
-C08 C06 Ano4 3.25
-C08 I2 Ano4 1.85
-C07 C08 Ano4 1.55
-C07 I1 Ano4 3.15
-C07 C05 Ano4 3.25
-C02 C03 Ano4 3.6
-C03 E1 Ano4 1.4
-C05 I1 Ano4 0.95
-I1 I2 Ano4 1.1
-I2 I3 Ano4 1.45
-I3 E1 Ano4 1.95
-;
-
-#
-# Stochastic Parameters
-#
-
-# sale price at exit e in time period t
-param R := E1 Ano1 45
- E1 Ano2 60
- E1 Ano3 65
- E1 Ano4 68 ;
-
-# upper and lower bounds on wood supplied
-param Zlb := Ano1 30000
- Ano2 27000
- Ano3 28000
- Ano4 25000 ;
-param Zub := Ano1 40000
- Ano2 50000
- Ano3 52000
- Ano4 50000 ;
-param yr:=
-Ano1 1
-Ano2 1
-Ano3 1
-Ano4 1
-;
-
-set COriginNodeForCell[U1]:= C01;
-set COriginNodeForCell[U2]:= C01;
-set COriginNodeForCell[U3]:= C09;
-set COriginNodeForCell[U4]:= C01;
-set COriginNodeForCell[U5]:= C09;
-set COriginNodeForCell[U6]:= C02;
-set COriginNodeForCell[U7]:= C02;
-set COriginNodeForCell[U8]:= C09;
-set COriginNodeForCell[U9]:= C02;
-set COriginNodeForCell[U10]:= C02;
-set COriginNodeForCell[U11]:= C04;
-set COriginNodeForCell[U12]:= C03;
-set COriginNodeForCell[U13]:= C03;
-set COriginNodeForCell[U14]:= C05;
-set COriginNodeForCell[U15]:= C04;
-set COriginNodeForCell[U16]:= C04;
-set COriginNodeForCell[U17]:= C06;
-set COriginNodeForCell[U18]:= C06;
-set COriginNodeForCell[U19]:= C06;
-set COriginNodeForCell[U20]:= C08;
-set COriginNodeForCell[U21]:= C08;
-set COriginNodeForCell[U22]:= C07;
-set COriginNodeForCell[U23]:= C05;
-set COriginNodeForCell[U24]:= C05;
-set COriginNodeForCell[U25]:= C07;
-
diff --git a/examples/pysp/forestry/unequalProbs/ForestChile10.dat b/examples/pysp/forestry/unequalProbs/ForestChile10.dat
deleted file mode 100644
index 7e2a561396d..00000000000
--- a/examples/pysp/forestry/unequalProbs/ForestChile10.dat
+++ /dev/null
@@ -1,562 +0,0 @@
-# fbv
-# mnr May 3, 2009
-
-# general nodes
-set Nodes := E1
- I1 I2 I3
- C01 C02 C03 C04 C05 C06 C07 C08 C09 ;
-
-# following the notation in the paper (note: nodes \equiv origins)
-
-#
-# Sets
-#
-
-set Times := Ano1 Ano2 Ano3 Ano4;
-
-set OriginNodes := C01 C02 C03 C04 C05 C06 C07 C08 C09 ;
-
-set IntersectionNodes := I1 I2 I3;
-
-set ExitNodes := E1;
-
-set HarvestCells := U1 U2 U3 U4 U5 U6 U7 U8 U9 U10 U11 U12 U13
- U14 U15 U16 U17 U18 U19 U20 U21 U22 U23 U24 U25;
-
-set HCellsForOrigin[C01] := U1 U2 U4 ;
-set HCellsForOrigin[C02] := U6 U7 U9 U10 ;
-set HCellsForOrigin[C03] := U12 U13 ;
-set HCellsForOrigin[C04] := U11 U15 U16 ;
-set HCellsForOrigin[C05] := U14 U23 U24 ;
-set HCellsForOrigin[C06] := U17 U18 U19 ;
-set HCellsForOrigin[C07] := U22 U25 ;
-set HCellsForOrigin[C08] := U20 U21 ;
-set HCellsForOrigin[C09] := U3 U5 U8 ;
-
-set ExistingRoads :=
-C02 C03
-C03 E1
-C05 I1
-I1 I2
-I2 I3
-I3 E1
-;
-
-set PotentialRoads :=
-C01 C09
-C01 C02
-C02 C09
-C09 C02
-C09 E1
-C09 C03
-C04 C03
-C04 I3
-C06 I3
-C08 C06
-C08 I2
-C07 C08
-C07 I1
-C07 C05
-;
-
-set AllRoads :=
-C02 C03
-C03 E1
-C05 I1
-I1 I2
-I2 I3
-I3 E1
-C01 C09
-C01 C02
-C02 C09
-C09 C02
-C09 E1
-C09 C03
-C04 C03
-C04 I3
-C06 I3
-C08 C06
-C08 I2
-C07 C08
-C07 I1
-C07 C05
-;
-
-#
-# Deterministic Parameters
-#
-
-# productivity of cell h if it is harvested in period t
-param a :=
-U1 Ano1 362
-U1 Ano2 362
-U1 Ano3 362
-U1 Ano4 362
-U2 Ano1 362
-U2 Ano2 362
-U2 Ano3 362
-U2 Ano4 362
-U3 Ano1 362
-U3 Ano2 362
-U3 Ano3 362
-U3 Ano4 362
-U4 Ano1 642
-U4 Ano2 642
-U4 Ano3 642
-U4 Ano4 642
-U5 Ano1 362
-U5 Ano2 362
-U5 Ano3 362
-U5 Ano4 362
-U6 Ano1 642
-U6 Ano2 642
-U6 Ano3 642
-U6 Ano4 642
-U7 Ano1 642
-U7 Ano2 642
-U7 Ano3 642
-U7 Ano4 642
-U8 Ano1 362
-U8 Ano2 362
-U8 Ano3 362
-U8 Ano4 362
-U9 Ano1 642
-U9 Ano2 642
-U9 Ano3 642
-U9 Ano4 642
-U10 Ano1 642
-U10 Ano2 642
-U10 Ano3 642
-U10 Ano4 642
-U11 Ano1 600
-U11 Ano2 600
-U11 Ano3 600
-U11 Ano4 600
-U12 Ano1 518
-U12 Ano2 518
-U12 Ano3 518
-U12 Ano4 518
-U13 Ano1 518
-U13 Ano2 518
-U13 Ano3 518
-U13 Ano4 518
-U14 Ano1 567
-U14 Ano2 567
-U14 Ano3 567
-U14 Ano4 567
-U15 Ano1 600
-U15 Ano2 600
-U15 Ano3 600
-U15 Ano4 600
-U16 Ano1 600
-U16 Ano2 600
-U16 Ano3 600
-U16 Ano4 600
-U17 Ano1 518
-U17 Ano2 518
-U17 Ano3 518
-U17 Ano4 518
-U18 Ano1 401
-U18 Ano2 401
-U18 Ano3 401
-U18 Ano4 401
-U19 Ano1 401
-U19 Ano2 401
-U19 Ano3 401
-U19 Ano4 401
-U20 Ano1 401
-U20 Ano2 401
-U20 Ano3 401
-U20 Ano4 401
-U21 Ano1 373
-U21 Ano2 373
-U21 Ano3 373
-U21 Ano4 373
-U22 Ano1 373
-U22 Ano2 373
-U22 Ano3 373
-U22 Ano4 373
-U23 Ano1 567
-U23 Ano2 567
-U23 Ano3 567
-U23 Ano4 567
-U24 Ano1 567
-U24 Ano2 567
-U24 Ano3 567
-U24 Ano4 567
-U25 Ano1 373
-U25 Ano2 373
-U25 Ano3 373
-U25 Ano4 373
-;
-
-# Area of cell h to be harvested
-param A :=
-U1 10.1
-U2 10.1
-U3 10.1
-U4 13.4
-U5 10.3
-U6 10.2
-U7 10.1
-U8 10.4
-U9 16.7
-U10 12.8
-U11 12.2
-U12 15.2
-U13 11.3
-U14 12.7
-U15 12.6
-U16 12.6
-U17 10
-U18 14.4
-U19 10.8
-U20 10.4
-U21 16.4
-U22 10
-U23 11.4
-U24 14.8
-U25 10.1
-;
-
-# harvesting cost of one hectare of cell h in time t
-param P :=
-U1 Ano1 8
-U1 Ano2 8
-U1 Ano3 8
-U1 Ano4 8
-U2 Ano1 8
-U2 Ano2 8
-U2 Ano3 8
-U2 Ano4 8
-U3 Ano1 8
-U3 Ano2 8
-U3 Ano3 8
-U3 Ano4 8
-U4 Ano1 8
-U4 Ano2 8
-U4 Ano3 8
-U4 Ano4 8
-U5 Ano1 8
-U5 Ano2 8
-U5 Ano3 8
-U5 Ano4 8
-U6 Ano1 8
-U6 Ano2 8
-U6 Ano3 8
-U6 Ano4 8
-U7 Ano1 8
-U7 Ano2 8
-U7 Ano3 8
-U7 Ano4 8
-U8 Ano1 8
-U8 Ano2 8
-U8 Ano3 8
-U8 Ano4 8
-U9 Ano1 8
-U9 Ano2 8
-U9 Ano3 8
-U9 Ano4 8
-U10 Ano1 8
-U10 Ano2 8
-U10 Ano3 8
-U10 Ano4 8
-U11 Ano1 8
-U11 Ano2 8
-U11 Ano3 8
-U11 Ano4 8
-U12 Ano1 8
-U12 Ano2 8
-U12 Ano3 8
-U12 Ano4 8
-U13 Ano1 8
-U13 Ano2 8
-U13 Ano3 8
-U13 Ano4 8
-U14 Ano1 8
-U14 Ano2 8
-U14 Ano3 8
-U14 Ano4 8
-U15 Ano1 8
-U15 Ano2 8
-U15 Ano3 8
-U15 Ano4 8
-U16 Ano1 8
-U16 Ano2 8
-U16 Ano3 8
-U16 Ano4 8
-U17 Ano1 8
-U17 Ano2 8
-U17 Ano3 8
-U17 Ano4 8
-U18 Ano1 8
-U18 Ano2 8
-U18 Ano3 8
-U18 Ano4 8
-U19 Ano1 8
-U19 Ano2 8
-U19 Ano3 8
-U19 Ano4 8
-U20 Ano1 8
-U20 Ano2 8
-U20 Ano3 8
-U20 Ano4 8
-U21 Ano1 8
-U21 Ano2 8
-U21 Ano3 8
-U21 Ano4 8
-U22 Ano1 8
-U22 Ano2 8
-U22 Ano3 8
-U22 Ano4 8
-U23 Ano1 8
-U23 Ano2 8
-U23 Ano3 8
-U23 Ano4 8
-U24 Ano1 8
-U24 Ano2 8
-U24 Ano3 8
-U24 Ano4 8
-U25 Ano1 8
-U25 Ano2 8
-U25 Ano3 8
-U25 Ano4 8
-;
-
-
-# prod cost
-param Q :=
-C01 Ano1 0.1
-C01 Ano2 0.1
-C01 Ano3 0.1
-C01 Ano4 0.1
-C02 Ano1 0.1
-C02 Ano2 0.1
-C02 Ano3 0.1
-C02 Ano4 0.1
-C03 Ano1 0.1
-C03 Ano2 0.1
-C03 Ano3 0.1
-C03 Ano4 0.1
-C04 Ano1 0.1
-C04 Ano2 0.1
-C04 Ano3 0.1
-C04 Ano4 0.1
-C05 Ano1 0.1
-C05 Ano2 0.1
-C05 Ano3 0.1
-C05 Ano4 0.1
-C06 Ano1 0.1
-C06 Ano2 0.1
-C06 Ano3 0.1
-C06 Ano4 0.1
-C07 Ano1 0.1
-C07 Ano2 0.1
-C07 Ano3 0.1
-C07 Ano4 0.1
-C08 Ano1 0.1
-C08 Ano2 0.1
-C08 Ano3 0.1
-C08 Ano4 0.1
-C09 Ano1 0.1
-C09 Ano2 0.1
-C09 Ano3 0.1
-C09 Ano4 0.1
-;
-
-# construction cost of one road in arc (k,l) in time t
-param C :=
-C01 C09 Ano1 1440
-C01 C09 Ano2 1309.09
-C01 C09 Ano3 1190.08
-C01 C09 Ano4 1081.89
-C01 C02 Ano1 1950
-C01 C02 Ano2 1772.73
-C01 C02 Ano3 1611.57
-C01 C02 Ano4 1465.06
-C02 C09 Ano1 1690
-C02 C09 Ano2 1536.36
-C02 C09 Ano3 1396.69
-C02 C09 Ano4 1269.72
-C09 C02 Ano1 1690
-C09 C02 Ano2 1536.36
-C09 C02 Ano3 1396.69
-C09 C02 Ano4 1269.72
-C09 E1 Ano1 2840
-C09 E1 Ano2 2581.82
-C09 E1 Ano3 2347.11
-C09 E1 Ano4 2133.73
-C09 C03 Ano1 2190
-C09 C03 Ano2 1990.91
-C09 C03 Ano3 1809.92
-C09 C03 Ano4 1645.38
-C04 C03 Ano1 1170
-C04 C03 Ano2 1063.64
-C04 C03 Ano3 966.94
-C04 C03 Ano4 879.04
-C04 I3 Ano1 1320
-C04 I3 Ano2 1200
-C04 I3 Ano3 1090.91
-C04 I3 Ano4 991.74
-C06 I3 Ano1 150
-C06 I3 Ano2 136.36
-C06 I3 Ano3 123.97
-C06 I3 Ano4 112.7
-C08 C06 Ano1 1950
-C08 C06 Ano2 1772.73
-C08 C06 Ano3 1611.57
-C08 C06 Ano4 1465.06
-C08 I2 Ano1 1110
-C08 I2 Ano2 1009.09
-C08 I2 Ano3 917.36
-C08 I2 Ano4 833.96
-C07 C08 Ano1 930
-C07 C08 Ano2 845.45
-C07 C08 Ano3 768.6
-C07 C08 Ano4 698.72
-C07 I1 Ano1 1950
-C07 I1 Ano2 1772.73
-C07 I1 Ano3 1611.57
-C07 I1 Ano4 1465.06
-C07 C05 Ano1 2130
-C07 C05 Ano2 1936.36
-C07 C05 Ano3 1760.33
-C07 C05 Ano4 1600.3
-;
-
-# unit transport cost through arc (k,l) in time t
-param D :=
-C01 C09 Ano1 1.9
-C01 C02 Ano1 3.25
-C02 C09 Ano1 2.35
-C09 C02 Ano1 2.35
-C09 E1 Ano1 4.1
-C09 C03 Ano1 3.65
-C04 C03 Ano1 1.95
-C04 I3 Ano1 2.2
-C06 I3 Ano1 0.25
-C08 C06 Ano1 3.25
-C08 I2 Ano1 1.85
-C07 C08 Ano1 1.55
-C07 I1 Ano1 3.15
-C07 C05 Ano1 3.25
-C02 C03 Ano1 3.6
-C03 E1 Ano1 1.4
-C05 I1 Ano1 0.95
-I1 I2 Ano1 1.1
-I2 I3 Ano1 1.45
-I3 E1 Ano1 1.95
-C01 C09 Ano2 1.9
-C01 C02 Ano2 3.25
-C02 C09 Ano2 2.35
-C09 C02 Ano2 2.35
-C09 E1 Ano2 4.1
-C09 C03 Ano2 3.65
-C04 C03 Ano2 1.95
-C04 I3 Ano2 2.2
-C06 I3 Ano2 0.25
-C08 C06 Ano2 3.25
-C08 I2 Ano2 1.85
-C07 C08 Ano2 1.55
-C07 I1 Ano2 3.15
-C07 C05 Ano2 3.25
-C02 C03 Ano2 3.6
-C03 E1 Ano2 1.4
-C05 I1 Ano2 0.95
-I1 I2 Ano2 1.1
-I2 I3 Ano2 1.45
-I3 E1 Ano2 1.95
-C01 C09 Ano3 1.9
-C01 C02 Ano3 3.25
-C02 C09 Ano3 2.35
-C09 C02 Ano3 2.35
-C09 E1 Ano3 4.1
-C09 C03 Ano3 3.65
-C04 C03 Ano3 1.95
-C04 I3 Ano3 2.2
-C06 I3 Ano3 0.25
-C08 C06 Ano3 3.25
-C08 I2 Ano3 1.85
-C07 C08 Ano3 1.55
-C07 I1 Ano3 3.15
-C07 C05 Ano3 3.25
-C02 C03 Ano3 3.6
-C03 E1 Ano3 1.4
-C05 I1 Ano3 0.95
-I1 I2 Ano3 1.1
-I2 I3 Ano3 1.45
-I3 E1 Ano3 1.95
-C01 C09 Ano4 1.9
-C01 C02 Ano4 3.25
-C02 C09 Ano4 2.35
-C09 C02 Ano4 2.35
-C09 E1 Ano4 4.1
-C09 C03 Ano4 3.65
-C04 C03 Ano4 1.95
-C04 I3 Ano4 2.2
-C06 I3 Ano4 0.25
-C08 C06 Ano4 3.25
-C08 I2 Ano4 1.85
-C07 C08 Ano4 1.55
-C07 I1 Ano4 3.15
-C07 C05 Ano4 3.25
-C02 C03 Ano4 3.6
-C03 E1 Ano4 1.4
-C05 I1 Ano4 0.95
-I1 I2 Ano4 1.1
-I2 I3 Ano4 1.45
-I3 E1 Ano4 1.95
-;
-
-#
-# Stochastic Parameters
-#
-
-# sale price at exit e in time period t
-param R := E1 Ano1 45
- E1 Ano2 45
- E1 Ano3 45
- E1 Ano4 42 ;
-
-# upper and lower bounds on wood supplied
-param Zlb := Ano1 30000
- Ano2 15000
- Ano3 25000
- Ano4 15000 ;
-param Zub := Ano1 40000
- Ano2 33000
- Ano3 41000
- Ano4 30000 ;
-param yr:=
-Ano1 1
-Ano2 1
-Ano3 1
-Ano4 1
-;
-
-set COriginNodeForCell[U1]:= C01;
-set COriginNodeForCell[U2]:= C01;
-set COriginNodeForCell[U3]:= C09;
-set COriginNodeForCell[U4]:= C01;
-set COriginNodeForCell[U5]:= C09;
-set COriginNodeForCell[U6]:= C02;
-set COriginNodeForCell[U7]:= C02;
-set COriginNodeForCell[U8]:= C09;
-set COriginNodeForCell[U9]:= C02;
-set COriginNodeForCell[U10]:= C02;
-set COriginNodeForCell[U11]:= C04;
-set COriginNodeForCell[U12]:= C03;
-set COriginNodeForCell[U13]:= C03;
-set COriginNodeForCell[U14]:= C05;
-set COriginNodeForCell[U15]:= C04;
-set COriginNodeForCell[U16]:= C04;
-set COriginNodeForCell[U17]:= C06;
-set COriginNodeForCell[U18]:= C06;
-set COriginNodeForCell[U19]:= C06;
-set COriginNodeForCell[U20]:= C08;
-set COriginNodeForCell[U21]:= C08;
-set COriginNodeForCell[U22]:= C07;
-set COriginNodeForCell[U23]:= C05;
-set COriginNodeForCell[U24]:= C05;
-set COriginNodeForCell[U25]:= C07;
-
diff --git a/examples/pysp/forestry/unequalProbs/ForestChile11.dat b/examples/pysp/forestry/unequalProbs/ForestChile11.dat
deleted file mode 100644
index 5a09335ed53..00000000000
--- a/examples/pysp/forestry/unequalProbs/ForestChile11.dat
+++ /dev/null
@@ -1,562 +0,0 @@
-# fbv
-# mnr May 3, 2009
-
-# general nodes
-set Nodes := E1
- I1 I2 I3
- C01 C02 C03 C04 C05 C06 C07 C08 C09 ;
-
-# following the notation in the paper (note: nodes \equiv origins)
-
-#
-# Sets
-#
-
-set Times := Ano1 Ano2 Ano3 Ano4;
-
-set OriginNodes := C01 C02 C03 C04 C05 C06 C07 C08 C09 ;
-
-set IntersectionNodes := I1 I2 I3;
-
-set ExitNodes := E1;
-
-set HarvestCells := U1 U2 U3 U4 U5 U6 U7 U8 U9 U10 U11 U12 U13
- U14 U15 U16 U17 U18 U19 U20 U21 U22 U23 U24 U25;
-
-set HCellsForOrigin[C01] := U1 U2 U4 ;
-set HCellsForOrigin[C02] := U6 U7 U9 U10 ;
-set HCellsForOrigin[C03] := U12 U13 ;
-set HCellsForOrigin[C04] := U11 U15 U16 ;
-set HCellsForOrigin[C05] := U14 U23 U24 ;
-set HCellsForOrigin[C06] := U17 U18 U19 ;
-set HCellsForOrigin[C07] := U22 U25 ;
-set HCellsForOrigin[C08] := U20 U21 ;
-set HCellsForOrigin[C09] := U3 U5 U8 ;
-
-set ExistingRoads :=
-C02 C03
-C03 E1
-C05 I1
-I1 I2
-I2 I3
-I3 E1
-;
-
-set PotentialRoads :=
-C01 C09
-C01 C02
-C02 C09
-C09 C02
-C09 E1
-C09 C03
-C04 C03
-C04 I3
-C06 I3
-C08 C06
-C08 I2
-C07 C08
-C07 I1
-C07 C05
-;
-
-set AllRoads :=
-C02 C03
-C03 E1
-C05 I1
-I1 I2
-I2 I3
-I3 E1
-C01 C09
-C01 C02
-C02 C09
-C09 C02
-C09 E1
-C09 C03
-C04 C03
-C04 I3
-C06 I3
-C08 C06
-C08 I2
-C07 C08
-C07 I1
-C07 C05
-;
-
-#
-# Deterministic Parameters
-#
-
-# productivity of cell h if it is harvested in period t
-param a :=
-U1 Ano1 362
-U1 Ano2 362
-U1 Ano3 362
-U1 Ano4 362
-U2 Ano1 362
-U2 Ano2 362
-U2 Ano3 362
-U2 Ano4 362
-U3 Ano1 362
-U3 Ano2 362
-U3 Ano3 362
-U3 Ano4 362
-U4 Ano1 642
-U4 Ano2 642
-U4 Ano3 642
-U4 Ano4 642
-U5 Ano1 362
-U5 Ano2 362
-U5 Ano3 362
-U5 Ano4 362
-U6 Ano1 642
-U6 Ano2 642
-U6 Ano3 642
-U6 Ano4 642
-U7 Ano1 642
-U7 Ano2 642
-U7 Ano3 642
-U7 Ano4 642
-U8 Ano1 362
-U8 Ano2 362
-U8 Ano3 362
-U8 Ano4 362
-U9 Ano1 642
-U9 Ano2 642
-U9 Ano3 642
-U9 Ano4 642
-U10 Ano1 642
-U10 Ano2 642
-U10 Ano3 642
-U10 Ano4 642
-U11 Ano1 600
-U11 Ano2 600
-U11 Ano3 600
-U11 Ano4 600
-U12 Ano1 518
-U12 Ano2 518
-U12 Ano3 518
-U12 Ano4 518
-U13 Ano1 518
-U13 Ano2 518
-U13 Ano3 518
-U13 Ano4 518
-U14 Ano1 567
-U14 Ano2 567
-U14 Ano3 567
-U14 Ano4 567
-U15 Ano1 600
-U15 Ano2 600
-U15 Ano3 600
-U15 Ano4 600
-U16 Ano1 600
-U16 Ano2 600
-U16 Ano3 600
-U16 Ano4 600
-U17 Ano1 518
-U17 Ano2 518
-U17 Ano3 518
-U17 Ano4 518
-U18 Ano1 401
-U18 Ano2 401
-U18 Ano3 401
-U18 Ano4 401
-U19 Ano1 401
-U19 Ano2 401
-U19 Ano3 401
-U19 Ano4 401
-U20 Ano1 401
-U20 Ano2 401
-U20 Ano3 401
-U20 Ano4 401
-U21 Ano1 373
-U21 Ano2 373
-U21 Ano3 373
-U21 Ano4 373
-U22 Ano1 373
-U22 Ano2 373
-U22 Ano3 373
-U22 Ano4 373
-U23 Ano1 567
-U23 Ano2 567
-U23 Ano3 567
-U23 Ano4 567
-U24 Ano1 567
-U24 Ano2 567
-U24 Ano3 567
-U24 Ano4 567
-U25 Ano1 373
-U25 Ano2 373
-U25 Ano3 373
-U25 Ano4 373
-;
-
-# Area of cell h to be harvested
-param A :=
-U1 10.1
-U2 10.1
-U3 10.1
-U4 13.4
-U5 10.3
-U6 10.2
-U7 10.1
-U8 10.4
-U9 16.7
-U10 12.8
-U11 12.2
-U12 15.2
-U13 11.3
-U14 12.7
-U15 12.6
-U16 12.6
-U17 10
-U18 14.4
-U19 10.8
-U20 10.4
-U21 16.4
-U22 10
-U23 11.4
-U24 14.8
-U25 10.1
-;
-
-# harvesting cost of one hectare of cell h in time t
-param P :=
-U1 Ano1 8
-U1 Ano2 8
-U1 Ano3 8
-U1 Ano4 8
-U2 Ano1 8
-U2 Ano2 8
-U2 Ano3 8
-U2 Ano4 8
-U3 Ano1 8
-U3 Ano2 8
-U3 Ano3 8
-U3 Ano4 8
-U4 Ano1 8
-U4 Ano2 8
-U4 Ano3 8
-U4 Ano4 8
-U5 Ano1 8
-U5 Ano2 8
-U5 Ano3 8
-U5 Ano4 8
-U6 Ano1 8
-U6 Ano2 8
-U6 Ano3 8
-U6 Ano4 8
-U7 Ano1 8
-U7 Ano2 8
-U7 Ano3 8
-U7 Ano4 8
-U8 Ano1 8
-U8 Ano2 8
-U8 Ano3 8
-U8 Ano4 8
-U9 Ano1 8
-U9 Ano2 8
-U9 Ano3 8
-U9 Ano4 8
-U10 Ano1 8
-U10 Ano2 8
-U10 Ano3 8
-U10 Ano4 8
-U11 Ano1 8
-U11 Ano2 8
-U11 Ano3 8
-U11 Ano4 8
-U12 Ano1 8
-U12 Ano2 8
-U12 Ano3 8
-U12 Ano4 8
-U13 Ano1 8
-U13 Ano2 8
-U13 Ano3 8
-U13 Ano4 8
-U14 Ano1 8
-U14 Ano2 8
-U14 Ano3 8
-U14 Ano4 8
-U15 Ano1 8
-U15 Ano2 8
-U15 Ano3 8
-U15 Ano4 8
-U16 Ano1 8
-U16 Ano2 8
-U16 Ano3 8
-U16 Ano4 8
-U17 Ano1 8
-U17 Ano2 8
-U17 Ano3 8
-U17 Ano4 8
-U18 Ano1 8
-U18 Ano2 8
-U18 Ano3 8
-U18 Ano4 8
-U19 Ano1 8
-U19 Ano2 8
-U19 Ano3 8
-U19 Ano4 8
-U20 Ano1 8
-U20 Ano2 8
-U20 Ano3 8
-U20 Ano4 8
-U21 Ano1 8
-U21 Ano2 8
-U21 Ano3 8
-U21 Ano4 8
-U22 Ano1 8
-U22 Ano2 8
-U22 Ano3 8
-U22 Ano4 8
-U23 Ano1 8
-U23 Ano2 8
-U23 Ano3 8
-U23 Ano4 8
-U24 Ano1 8
-U24 Ano2 8
-U24 Ano3 8
-U24 Ano4 8
-U25 Ano1 8
-U25 Ano2 8
-U25 Ano3 8
-U25 Ano4 8
-;
-
-
-# prod cost
-param Q :=
-C01 Ano1 0.1
-C01 Ano2 0.1
-C01 Ano3 0.1
-C01 Ano4 0.1
-C02 Ano1 0.1
-C02 Ano2 0.1
-C02 Ano3 0.1
-C02 Ano4 0.1
-C03 Ano1 0.1
-C03 Ano2 0.1
-C03 Ano3 0.1
-C03 Ano4 0.1
-C04 Ano1 0.1
-C04 Ano2 0.1
-C04 Ano3 0.1
-C04 Ano4 0.1
-C05 Ano1 0.1
-C05 Ano2 0.1
-C05 Ano3 0.1
-C05 Ano4 0.1
-C06 Ano1 0.1
-C06 Ano2 0.1
-C06 Ano3 0.1
-C06 Ano4 0.1
-C07 Ano1 0.1
-C07 Ano2 0.1
-C07 Ano3 0.1
-C07 Ano4 0.1
-C08 Ano1 0.1
-C08 Ano2 0.1
-C08 Ano3 0.1
-C08 Ano4 0.1
-C09 Ano1 0.1
-C09 Ano2 0.1
-C09 Ano3 0.1
-C09 Ano4 0.1
-;
-
-# construction cost of one road in arc (k,l) in time t
-param C :=
-C01 C09 Ano1 1440
-C01 C09 Ano2 1309.09
-C01 C09 Ano3 1190.08
-C01 C09 Ano4 1081.89
-C01 C02 Ano1 1950
-C01 C02 Ano2 1772.73
-C01 C02 Ano3 1611.57
-C01 C02 Ano4 1465.06
-C02 C09 Ano1 1690
-C02 C09 Ano2 1536.36
-C02 C09 Ano3 1396.69
-C02 C09 Ano4 1269.72
-C09 C02 Ano1 1690
-C09 C02 Ano2 1536.36
-C09 C02 Ano3 1396.69
-C09 C02 Ano4 1269.72
-C09 E1 Ano1 2840
-C09 E1 Ano2 2581.82
-C09 E1 Ano3 2347.11
-C09 E1 Ano4 2133.73
-C09 C03 Ano1 2190
-C09 C03 Ano2 1990.91
-C09 C03 Ano3 1809.92
-C09 C03 Ano4 1645.38
-C04 C03 Ano1 1170
-C04 C03 Ano2 1063.64
-C04 C03 Ano3 966.94
-C04 C03 Ano4 879.04
-C04 I3 Ano1 1320
-C04 I3 Ano2 1200
-C04 I3 Ano3 1090.91
-C04 I3 Ano4 991.74
-C06 I3 Ano1 150
-C06 I3 Ano2 136.36
-C06 I3 Ano3 123.97
-C06 I3 Ano4 112.7
-C08 C06 Ano1 1950
-C08 C06 Ano2 1772.73
-C08 C06 Ano3 1611.57
-C08 C06 Ano4 1465.06
-C08 I2 Ano1 1110
-C08 I2 Ano2 1009.09
-C08 I2 Ano3 917.36
-C08 I2 Ano4 833.96
-C07 C08 Ano1 930
-C07 C08 Ano2 845.45
-C07 C08 Ano3 768.6
-C07 C08 Ano4 698.72
-C07 I1 Ano1 1950
-C07 I1 Ano2 1772.73
-C07 I1 Ano3 1611.57
-C07 I1 Ano4 1465.06
-C07 C05 Ano1 2130
-C07 C05 Ano2 1936.36
-C07 C05 Ano3 1760.33
-C07 C05 Ano4 1600.3
-;
-
-# unit transport cost through arc (k,l) in time t
-param D :=
-C01 C09 Ano1 1.9
-C01 C02 Ano1 3.25
-C02 C09 Ano1 2.35
-C09 C02 Ano1 2.35
-C09 E1 Ano1 4.1
-C09 C03 Ano1 3.65
-C04 C03 Ano1 1.95
-C04 I3 Ano1 2.2
-C06 I3 Ano1 0.25
-C08 C06 Ano1 3.25
-C08 I2 Ano1 1.85
-C07 C08 Ano1 1.55
-C07 I1 Ano1 3.15
-C07 C05 Ano1 3.25
-C02 C03 Ano1 3.6
-C03 E1 Ano1 1.4
-C05 I1 Ano1 0.95
-I1 I2 Ano1 1.1
-I2 I3 Ano1 1.45
-I3 E1 Ano1 1.95
-C01 C09 Ano2 1.9
-C01 C02 Ano2 3.25
-C02 C09 Ano2 2.35
-C09 C02 Ano2 2.35
-C09 E1 Ano2 4.1
-C09 C03 Ano2 3.65
-C04 C03 Ano2 1.95
-C04 I3 Ano2 2.2
-C06 I3 Ano2 0.25
-C08 C06 Ano2 3.25
-C08 I2 Ano2 1.85
-C07 C08 Ano2 1.55
-C07 I1 Ano2 3.15
-C07 C05 Ano2 3.25
-C02 C03 Ano2 3.6
-C03 E1 Ano2 1.4
-C05 I1 Ano2 0.95
-I1 I2 Ano2 1.1
-I2 I3 Ano2 1.45
-I3 E1 Ano2 1.95
-C01 C09 Ano3 1.9
-C01 C02 Ano3 3.25
-C02 C09 Ano3 2.35
-C09 C02 Ano3 2.35
-C09 E1 Ano3 4.1
-C09 C03 Ano3 3.65
-C04 C03 Ano3 1.95
-C04 I3 Ano3 2.2
-C06 I3 Ano3 0.25
-C08 C06 Ano3 3.25
-C08 I2 Ano3 1.85
-C07 C08 Ano3 1.55
-C07 I1 Ano3 3.15
-C07 C05 Ano3 3.25
-C02 C03 Ano3 3.6
-C03 E1 Ano3 1.4
-C05 I1 Ano3 0.95
-I1 I2 Ano3 1.1
-I2 I3 Ano3 1.45
-I3 E1 Ano3 1.95
-C01 C09 Ano4 1.9
-C01 C02 Ano4 3.25
-C02 C09 Ano4 2.35
-C09 C02 Ano4 2.35
-C09 E1 Ano4 4.1
-C09 C03 Ano4 3.65
-C04 C03 Ano4 1.95
-C04 I3 Ano4 2.2
-C06 I3 Ano4 0.25
-C08 C06 Ano4 3.25
-C08 I2 Ano4 1.85
-C07 C08 Ano4 1.55
-C07 I1 Ano4 3.15
-C07 C05 Ano4 3.25
-C02 C03 Ano4 3.6
-C03 E1 Ano4 1.4
-C05 I1 Ano4 0.95
-I1 I2 Ano4 1.1
-I2 I3 Ano4 1.45
-I3 E1 Ano4 1.95
-;
-
-#
-# Stochastic Parameters
-#
-
-# sale price at exit e in time period t
-param R := E1 Ano1 45
- E1 Ano2 45
- E1 Ano3 30
- E1 Ano4 48 ;
-
-# upper and lower bounds on wood supplied
-param Zlb := Ano1 30000
- Ano2 15000
- Ano3 20000
- Ano4 15000 ;
-param Zub := Ano1 40000
- Ano2 33000
- Ano3 32000
- Ano4 28000 ;
-param yr:=
-Ano1 1
-Ano2 1
-Ano3 1
-Ano4 1
-;
-
-set COriginNodeForCell[U1]:= C01;
-set COriginNodeForCell[U2]:= C01;
-set COriginNodeForCell[U3]:= C09;
-set COriginNodeForCell[U4]:= C01;
-set COriginNodeForCell[U5]:= C09;
-set COriginNodeForCell[U6]:= C02;
-set COriginNodeForCell[U7]:= C02;
-set COriginNodeForCell[U8]:= C09;
-set COriginNodeForCell[U9]:= C02;
-set COriginNodeForCell[U10]:= C02;
-set COriginNodeForCell[U11]:= C04;
-set COriginNodeForCell[U12]:= C03;
-set COriginNodeForCell[U13]:= C03;
-set COriginNodeForCell[U14]:= C05;
-set COriginNodeForCell[U15]:= C04;
-set COriginNodeForCell[U16]:= C04;
-set COriginNodeForCell[U17]:= C06;
-set COriginNodeForCell[U18]:= C06;
-set COriginNodeForCell[U19]:= C06;
-set COriginNodeForCell[U20]:= C08;
-set COriginNodeForCell[U21]:= C08;
-set COriginNodeForCell[U22]:= C07;
-set COriginNodeForCell[U23]:= C05;
-set COriginNodeForCell[U24]:= C05;
-set COriginNodeForCell[U25]:= C07;
-
diff --git a/examples/pysp/forestry/unequalProbs/ForestChile12.dat b/examples/pysp/forestry/unequalProbs/ForestChile12.dat
deleted file mode 100644
index 51710f6c54e..00000000000
--- a/examples/pysp/forestry/unequalProbs/ForestChile12.dat
+++ /dev/null
@@ -1,562 +0,0 @@
-# fbv
-# mnr May 3, 2009
-
-# general nodes
-set Nodes := E1
- I1 I2 I3
- C01 C02 C03 C04 C05 C06 C07 C08 C09 ;
-
-# following the notation in the paper (note: nodes \equiv origins)
-
-#
-# Sets
-#
-
-set Times := Ano1 Ano2 Ano3 Ano4;
-
-set OriginNodes := C01 C02 C03 C04 C05 C06 C07 C08 C09 ;
-
-set IntersectionNodes := I1 I2 I3;
-
-set ExitNodes := E1;
-
-set HarvestCells := U1 U2 U3 U4 U5 U6 U7 U8 U9 U10 U11 U12 U13
- U14 U15 U16 U17 U18 U19 U20 U21 U22 U23 U24 U25;
-
-set HCellsForOrigin[C01] := U1 U2 U4 ;
-set HCellsForOrigin[C02] := U6 U7 U9 U10 ;
-set HCellsForOrigin[C03] := U12 U13 ;
-set HCellsForOrigin[C04] := U11 U15 U16 ;
-set HCellsForOrigin[C05] := U14 U23 U24 ;
-set HCellsForOrigin[C06] := U17 U18 U19 ;
-set HCellsForOrigin[C07] := U22 U25 ;
-set HCellsForOrigin[C08] := U20 U21 ;
-set HCellsForOrigin[C09] := U3 U5 U8 ;
-
-set ExistingRoads :=
-C02 C03
-C03 E1
-C05 I1
-I1 I2
-I2 I3
-I3 E1
-;
-
-set PotentialRoads :=
-C01 C09
-C01 C02
-C02 C09
-C09 C02
-C09 E1
-C09 C03
-C04 C03
-C04 I3
-C06 I3
-C08 C06
-C08 I2
-C07 C08
-C07 I1
-C07 C05
-;
-
-set AllRoads :=
-C02 C03
-C03 E1
-C05 I1
-I1 I2
-I2 I3
-I3 E1
-C01 C09
-C01 C02
-C02 C09
-C09 C02
-C09 E1
-C09 C03
-C04 C03
-C04 I3
-C06 I3
-C08 C06
-C08 I2
-C07 C08
-C07 I1
-C07 C05
-;
-
-#
-# Deterministic Parameters
-#
-
-# productivity of cell h if it is harvested in period t
-param a :=
-U1 Ano1 362
-U1 Ano2 362
-U1 Ano3 362
-U1 Ano4 362
-U2 Ano1 362
-U2 Ano2 362
-U2 Ano3 362
-U2 Ano4 362
-U3 Ano1 362
-U3 Ano2 362
-U3 Ano3 362
-U3 Ano4 362
-U4 Ano1 642
-U4 Ano2 642
-U4 Ano3 642
-U4 Ano4 642
-U5 Ano1 362
-U5 Ano2 362
-U5 Ano3 362
-U5 Ano4 362
-U6 Ano1 642
-U6 Ano2 642
-U6 Ano3 642
-U6 Ano4 642
-U7 Ano1 642
-U7 Ano2 642
-U7 Ano3 642
-U7 Ano4 642
-U8 Ano1 362
-U8 Ano2 362
-U8 Ano3 362
-U8 Ano4 362
-U9 Ano1 642
-U9 Ano2 642
-U9 Ano3 642
-U9 Ano4 642
-U10 Ano1 642
-U10 Ano2 642
-U10 Ano3 642
-U10 Ano4 642
-U11 Ano1 600
-U11 Ano2 600
-U11 Ano3 600
-U11 Ano4 600
-U12 Ano1 518
-U12 Ano2 518
-U12 Ano3 518
-U12 Ano4 518
-U13 Ano1 518
-U13 Ano2 518
-U13 Ano3 518
-U13 Ano4 518
-U14 Ano1 567
-U14 Ano2 567
-U14 Ano3 567
-U14 Ano4 567
-U15 Ano1 600
-U15 Ano2 600
-U15 Ano3 600
-U15 Ano4 600
-U16 Ano1 600
-U16 Ano2 600
-U16 Ano3 600
-U16 Ano4 600
-U17 Ano1 518
-U17 Ano2 518
-U17 Ano3 518
-U17 Ano4 518
-U18 Ano1 401
-U18 Ano2 401
-U18 Ano3 401
-U18 Ano4 401
-U19 Ano1 401
-U19 Ano2 401
-U19 Ano3 401
-U19 Ano4 401
-U20 Ano1 401
-U20 Ano2 401
-U20 Ano3 401
-U20 Ano4 401
-U21 Ano1 373
-U21 Ano2 373
-U21 Ano3 373
-U21 Ano4 373
-U22 Ano1 373
-U22 Ano2 373
-U22 Ano3 373
-U22 Ano4 373
-U23 Ano1 567
-U23 Ano2 567
-U23 Ano3 567
-U23 Ano4 567
-U24 Ano1 567
-U24 Ano2 567
-U24 Ano3 567
-U24 Ano4 567
-U25 Ano1 373
-U25 Ano2 373
-U25 Ano3 373
-U25 Ano4 373
-;
-
-# Area of cell h to be harvested
-param A :=
-U1 10.1
-U2 10.1
-U3 10.1
-U4 13.4
-U5 10.3
-U6 10.2
-U7 10.1
-U8 10.4
-U9 16.7
-U10 12.8
-U11 12.2
-U12 15.2
-U13 11.3
-U14 12.7
-U15 12.6
-U16 12.6
-U17 10
-U18 14.4
-U19 10.8
-U20 10.4
-U21 16.4
-U22 10
-U23 11.4
-U24 14.8
-U25 10.1
-;
-
-# harvesting cost of one hectare of cell h in time t
-param P :=
-U1 Ano1 8
-U1 Ano2 8
-U1 Ano3 8
-U1 Ano4 8
-U2 Ano1 8
-U2 Ano2 8
-U2 Ano3 8
-U2 Ano4 8
-U3 Ano1 8
-U3 Ano2 8
-U3 Ano3 8
-U3 Ano4 8
-U4 Ano1 8
-U4 Ano2 8
-U4 Ano3 8
-U4 Ano4 8
-U5 Ano1 8
-U5 Ano2 8
-U5 Ano3 8
-U5 Ano4 8
-U6 Ano1 8
-U6 Ano2 8
-U6 Ano3 8
-U6 Ano4 8
-U7 Ano1 8
-U7 Ano2 8
-U7 Ano3 8
-U7 Ano4 8
-U8 Ano1 8
-U8 Ano2 8
-U8 Ano3 8
-U8 Ano4 8
-U9 Ano1 8
-U9 Ano2 8
-U9 Ano3 8
-U9 Ano4 8
-U10 Ano1 8
-U10 Ano2 8
-U10 Ano3 8
-U10 Ano4 8
-U11 Ano1 8
-U11 Ano2 8
-U11 Ano3 8
-U11 Ano4 8
-U12 Ano1 8
-U12 Ano2 8
-U12 Ano3 8
-U12 Ano4 8
-U13 Ano1 8
-U13 Ano2 8
-U13 Ano3 8
-U13 Ano4 8
-U14 Ano1 8
-U14 Ano2 8
-U14 Ano3 8
-U14 Ano4 8
-U15 Ano1 8
-U15 Ano2 8
-U15 Ano3 8
-U15 Ano4 8
-U16 Ano1 8
-U16 Ano2 8
-U16 Ano3 8
-U16 Ano4 8
-U17 Ano1 8
-U17 Ano2 8
-U17 Ano3 8
-U17 Ano4 8
-U18 Ano1 8
-U18 Ano2 8
-U18 Ano3 8
-U18 Ano4 8
-U19 Ano1 8
-U19 Ano2 8
-U19 Ano3 8
-U19 Ano4 8
-U20 Ano1 8
-U20 Ano2 8
-U20 Ano3 8
-U20 Ano4 8
-U21 Ano1 8
-U21 Ano2 8
-U21 Ano3 8
-U21 Ano4 8
-U22 Ano1 8
-U22 Ano2 8
-U22 Ano3 8
-U22 Ano4 8
-U23 Ano1 8
-U23 Ano2 8
-U23 Ano3 8
-U23 Ano4 8
-U24 Ano1 8
-U24 Ano2 8
-U24 Ano3 8
-U24 Ano4 8
-U25 Ano1 8
-U25 Ano2 8
-U25 Ano3 8
-U25 Ano4 8
-;
-
-
-# prod cost
-param Q :=
-C01 Ano1 0.1
-C01 Ano2 0.1
-C01 Ano3 0.1
-C01 Ano4 0.1
-C02 Ano1 0.1
-C02 Ano2 0.1
-C02 Ano3 0.1
-C02 Ano4 0.1
-C03 Ano1 0.1
-C03 Ano2 0.1
-C03 Ano3 0.1
-C03 Ano4 0.1
-C04 Ano1 0.1
-C04 Ano2 0.1
-C04 Ano3 0.1
-C04 Ano4 0.1
-C05 Ano1 0.1
-C05 Ano2 0.1
-C05 Ano3 0.1
-C05 Ano4 0.1
-C06 Ano1 0.1
-C06 Ano2 0.1
-C06 Ano3 0.1
-C06 Ano4 0.1
-C07 Ano1 0.1
-C07 Ano2 0.1
-C07 Ano3 0.1
-C07 Ano4 0.1
-C08 Ano1 0.1
-C08 Ano2 0.1
-C08 Ano3 0.1
-C08 Ano4 0.1
-C09 Ano1 0.1
-C09 Ano2 0.1
-C09 Ano3 0.1
-C09 Ano4 0.1
-;
-
-# construction cost of one road in arc (k,l) in time t
-param C :=
-C01 C09 Ano1 1440
-C01 C09 Ano2 1309.09
-C01 C09 Ano3 1190.08
-C01 C09 Ano4 1081.89
-C01 C02 Ano1 1950
-C01 C02 Ano2 1772.73
-C01 C02 Ano3 1611.57
-C01 C02 Ano4 1465.06
-C02 C09 Ano1 1690
-C02 C09 Ano2 1536.36
-C02 C09 Ano3 1396.69
-C02 C09 Ano4 1269.72
-C09 C02 Ano1 1690
-C09 C02 Ano2 1536.36
-C09 C02 Ano3 1396.69
-C09 C02 Ano4 1269.72
-C09 E1 Ano1 2840
-C09 E1 Ano2 2581.82
-C09 E1 Ano3 2347.11
-C09 E1 Ano4 2133.73
-C09 C03 Ano1 2190
-C09 C03 Ano2 1990.91
-C09 C03 Ano3 1809.92
-C09 C03 Ano4 1645.38
-C04 C03 Ano1 1170
-C04 C03 Ano2 1063.64
-C04 C03 Ano3 966.94
-C04 C03 Ano4 879.04
-C04 I3 Ano1 1320
-C04 I3 Ano2 1200
-C04 I3 Ano3 1090.91
-C04 I3 Ano4 991.74
-C06 I3 Ano1 150
-C06 I3 Ano2 136.36
-C06 I3 Ano3 123.97
-C06 I3 Ano4 112.7
-C08 C06 Ano1 1950
-C08 C06 Ano2 1772.73
-C08 C06 Ano3 1611.57
-C08 C06 Ano4 1465.06
-C08 I2 Ano1 1110
-C08 I2 Ano2 1009.09
-C08 I2 Ano3 917.36
-C08 I2 Ano4 833.96
-C07 C08 Ano1 930
-C07 C08 Ano2 845.45
-C07 C08 Ano3 768.6
-C07 C08 Ano4 698.72
-C07 I1 Ano1 1950
-C07 I1 Ano2 1772.73
-C07 I1 Ano3 1611.57
-C07 I1 Ano4 1465.06
-C07 C05 Ano1 2130
-C07 C05 Ano2 1936.36
-C07 C05 Ano3 1760.33
-C07 C05 Ano4 1600.3
-;
-
-# unit transport cost through arc (k,l) in time t
-param D :=
-C01 C09 Ano1 1.9
-C01 C02 Ano1 3.25
-C02 C09 Ano1 2.35
-C09 C02 Ano1 2.35
-C09 E1 Ano1 4.1
-C09 C03 Ano1 3.65
-C04 C03 Ano1 1.95
-C04 I3 Ano1 2.2
-C06 I3 Ano1 0.25
-C08 C06 Ano1 3.25
-C08 I2 Ano1 1.85
-C07 C08 Ano1 1.55
-C07 I1 Ano1 3.15
-C07 C05 Ano1 3.25
-C02 C03 Ano1 3.6
-C03 E1 Ano1 1.4
-C05 I1 Ano1 0.95
-I1 I2 Ano1 1.1
-I2 I3 Ano1 1.45
-I3 E1 Ano1 1.95
-C01 C09 Ano2 1.9
-C01 C02 Ano2 3.25
-C02 C09 Ano2 2.35
-C09 C02 Ano2 2.35
-C09 E1 Ano2 4.1
-C09 C03 Ano2 3.65
-C04 C03 Ano2 1.95
-C04 I3 Ano2 2.2
-C06 I3 Ano2 0.25
-C08 C06 Ano2 3.25
-C08 I2 Ano2 1.85
-C07 C08 Ano2 1.55
-C07 I1 Ano2 3.15
-C07 C05 Ano2 3.25
-C02 C03 Ano2 3.6
-C03 E1 Ano2 1.4
-C05 I1 Ano2 0.95
-I1 I2 Ano2 1.1
-I2 I3 Ano2 1.45
-I3 E1 Ano2 1.95
-C01 C09 Ano3 1.9
-C01 C02 Ano3 3.25
-C02 C09 Ano3 2.35
-C09 C02 Ano3 2.35
-C09 E1 Ano3 4.1
-C09 C03 Ano3 3.65
-C04 C03 Ano3 1.95
-C04 I3 Ano3 2.2
-C06 I3 Ano3 0.25
-C08 C06 Ano3 3.25
-C08 I2 Ano3 1.85
-C07 C08 Ano3 1.55
-C07 I1 Ano3 3.15
-C07 C05 Ano3 3.25
-C02 C03 Ano3 3.6
-C03 E1 Ano3 1.4
-C05 I1 Ano3 0.95
-I1 I2 Ano3 1.1
-I2 I3 Ano3 1.45
-I3 E1 Ano3 1.95
-C01 C09 Ano4 1.9
-C01 C02 Ano4 3.25
-C02 C09 Ano4 2.35
-C09 C02 Ano4 2.35
-C09 E1 Ano4 4.1
-C09 C03 Ano4 3.65
-C04 C03 Ano4 1.95
-C04 I3 Ano4 2.2
-C06 I3 Ano4 0.25
-C08 C06 Ano4 3.25
-C08 I2 Ano4 1.85
-C07 C08 Ano4 1.55
-C07 I1 Ano4 3.15
-C07 C05 Ano4 3.25
-C02 C03 Ano4 3.6
-C03 E1 Ano4 1.4
-C05 I1 Ano4 0.95
-I1 I2 Ano4 1.1
-I2 I3 Ano4 1.45
-I3 E1 Ano4 1.95
-;
-
-#
-# Stochastic Parameters
-#
-
-# sale price at exit e in time period t
-param R := E1 Ano1 45
- E1 Ano2 45
- E1 Ano3 30
- E1 Ano4 42 ;
-
-# upper and lower bounds on wood supplied
-param Zlb := Ano1 30000
- Ano2 15000
- Ano3 20000
- Ano4 13000 ;
-param Zub := Ano1 40000
- Ano2 33000
- Ano3 32000
- Ano4 24000 ;
-param yr:=
-Ano1 1
-Ano2 1
-Ano3 1
-Ano4 1
-;
-
-set COriginNodeForCell[U1]:= C01;
-set COriginNodeForCell[U2]:= C01;
-set COriginNodeForCell[U3]:= C09;
-set COriginNodeForCell[U4]:= C01;
-set COriginNodeForCell[U5]:= C09;
-set COriginNodeForCell[U6]:= C02;
-set COriginNodeForCell[U7]:= C02;
-set COriginNodeForCell[U8]:= C09;
-set COriginNodeForCell[U9]:= C02;
-set COriginNodeForCell[U10]:= C02;
-set COriginNodeForCell[U11]:= C04;
-set COriginNodeForCell[U12]:= C03;
-set COriginNodeForCell[U13]:= C03;
-set COriginNodeForCell[U14]:= C05;
-set COriginNodeForCell[U15]:= C04;
-set COriginNodeForCell[U16]:= C04;
-set COriginNodeForCell[U17]:= C06;
-set COriginNodeForCell[U18]:= C06;
-set COriginNodeForCell[U19]:= C06;
-set COriginNodeForCell[U20]:= C08;
-set COriginNodeForCell[U21]:= C08;
-set COriginNodeForCell[U22]:= C07;
-set COriginNodeForCell[U23]:= C05;
-set COriginNodeForCell[U24]:= C05;
-set COriginNodeForCell[U25]:= C07;
-
diff --git a/examples/pysp/forestry/unequalProbs/ForestChile13.dat b/examples/pysp/forestry/unequalProbs/ForestChile13.dat
deleted file mode 100644
index 1983553a9fe..00000000000
--- a/examples/pysp/forestry/unequalProbs/ForestChile13.dat
+++ /dev/null
@@ -1,562 +0,0 @@
-# fbv
-# mnr May 3, 2009
-
-# general nodes
-set Nodes := E1
- I1 I2 I3
- C01 C02 C03 C04 C05 C06 C07 C08 C09 ;
-
-# following the notation in the paper (note: nodes \equiv origins)
-
-#
-# Sets
-#
-
-set Times := Ano1 Ano2 Ano3 Ano4;
-
-set OriginNodes := C01 C02 C03 C04 C05 C06 C07 C08 C09 ;
-
-set IntersectionNodes := I1 I2 I3;
-
-set ExitNodes := E1;
-
-set HarvestCells := U1 U2 U3 U4 U5 U6 U7 U8 U9 U10 U11 U12 U13
- U14 U15 U16 U17 U18 U19 U20 U21 U22 U23 U24 U25;
-
-set HCellsForOrigin[C01] := U1 U2 U4 ;
-set HCellsForOrigin[C02] := U6 U7 U9 U10 ;
-set HCellsForOrigin[C03] := U12 U13 ;
-set HCellsForOrigin[C04] := U11 U15 U16 ;
-set HCellsForOrigin[C05] := U14 U23 U24 ;
-set HCellsForOrigin[C06] := U17 U18 U19 ;
-set HCellsForOrigin[C07] := U22 U25 ;
-set HCellsForOrigin[C08] := U20 U21 ;
-set HCellsForOrigin[C09] := U3 U5 U8 ;
-
-set ExistingRoads :=
-C02 C03
-C03 E1
-C05 I1
-I1 I2
-I2 I3
-I3 E1
-;
-
-set PotentialRoads :=
-C01 C09
-C01 C02
-C02 C09
-C09 C02
-C09 E1
-C09 C03
-C04 C03
-C04 I3
-C06 I3
-C08 C06
-C08 I2
-C07 C08
-C07 I1
-C07 C05
-;
-
-set AllRoads :=
-C02 C03
-C03 E1
-C05 I1
-I1 I2
-I2 I3
-I3 E1
-C01 C09
-C01 C02
-C02 C09
-C09 C02
-C09 E1
-C09 C03
-C04 C03
-C04 I3
-C06 I3
-C08 C06
-C08 I2
-C07 C08
-C07 I1
-C07 C05
-;
-
-#
-# Deterministic Parameters
-#
-
-# productivity of cell h if it is harvested in period t
-param a :=
-U1 Ano1 362
-U1 Ano2 362
-U1 Ano3 362
-U1 Ano4 362
-U2 Ano1 362
-U2 Ano2 362
-U2 Ano3 362
-U2 Ano4 362
-U3 Ano1 362
-U3 Ano2 362
-U3 Ano3 362
-U3 Ano4 362
-U4 Ano1 642
-U4 Ano2 642
-U4 Ano3 642
-U4 Ano4 642
-U5 Ano1 362
-U5 Ano2 362
-U5 Ano3 362
-U5 Ano4 362
-U6 Ano1 642
-U6 Ano2 642
-U6 Ano3 642
-U6 Ano4 642
-U7 Ano1 642
-U7 Ano2 642
-U7 Ano3 642
-U7 Ano4 642
-U8 Ano1 362
-U8 Ano2 362
-U8 Ano3 362
-U8 Ano4 362
-U9 Ano1 642
-U9 Ano2 642
-U9 Ano3 642
-U9 Ano4 642
-U10 Ano1 642
-U10 Ano2 642
-U10 Ano3 642
-U10 Ano4 642
-U11 Ano1 600
-U11 Ano2 600
-U11 Ano3 600
-U11 Ano4 600
-U12 Ano1 518
-U12 Ano2 518
-U12 Ano3 518
-U12 Ano4 518
-U13 Ano1 518
-U13 Ano2 518
-U13 Ano3 518
-U13 Ano4 518
-U14 Ano1 567
-U14 Ano2 567
-U14 Ano3 567
-U14 Ano4 567
-U15 Ano1 600
-U15 Ano2 600
-U15 Ano3 600
-U15 Ano4 600
-U16 Ano1 600
-U16 Ano2 600
-U16 Ano3 600
-U16 Ano4 600
-U17 Ano1 518
-U17 Ano2 518
-U17 Ano3 518
-U17 Ano4 518
-U18 Ano1 401
-U18 Ano2 401
-U18 Ano3 401
-U18 Ano4 401
-U19 Ano1 401
-U19 Ano2 401
-U19 Ano3 401
-U19 Ano4 401
-U20 Ano1 401
-U20 Ano2 401
-U20 Ano3 401
-U20 Ano4 401
-U21 Ano1 373
-U21 Ano2 373
-U21 Ano3 373
-U21 Ano4 373
-U22 Ano1 373
-U22 Ano2 373
-U22 Ano3 373
-U22 Ano4 373
-U23 Ano1 567
-U23 Ano2 567
-U23 Ano3 567
-U23 Ano4 567
-U24 Ano1 567
-U24 Ano2 567
-U24 Ano3 567
-U24 Ano4 567
-U25 Ano1 373
-U25 Ano2 373
-U25 Ano3 373
-U25 Ano4 373
-;
-
-# Area of cell h to be harvested
-param A :=
-U1 10.1
-U2 10.1
-U3 10.1
-U4 13.4
-U5 10.3
-U6 10.2
-U7 10.1
-U8 10.4
-U9 16.7
-U10 12.8
-U11 12.2
-U12 15.2
-U13 11.3
-U14 12.7
-U15 12.6
-U16 12.6
-U17 10
-U18 14.4
-U19 10.8
-U20 10.4
-U21 16.4
-U22 10
-U23 11.4
-U24 14.8
-U25 10.1
-;
-
-# harvesting cost of one hectare of cell h in time t
-param P :=
-U1 Ano1 8
-U1 Ano2 8
-U1 Ano3 8
-U1 Ano4 8
-U2 Ano1 8
-U2 Ano2 8
-U2 Ano3 8
-U2 Ano4 8
-U3 Ano1 8
-U3 Ano2 8
-U3 Ano3 8
-U3 Ano4 8
-U4 Ano1 8
-U4 Ano2 8
-U4 Ano3 8
-U4 Ano4 8
-U5 Ano1 8
-U5 Ano2 8
-U5 Ano3 8
-U5 Ano4 8
-U6 Ano1 8
-U6 Ano2 8
-U6 Ano3 8
-U6 Ano4 8
-U7 Ano1 8
-U7 Ano2 8
-U7 Ano3 8
-U7 Ano4 8
-U8 Ano1 8
-U8 Ano2 8
-U8 Ano3 8
-U8 Ano4 8
-U9 Ano1 8
-U9 Ano2 8
-U9 Ano3 8
-U9 Ano4 8
-U10 Ano1 8
-U10 Ano2 8
-U10 Ano3 8
-U10 Ano4 8
-U11 Ano1 8
-U11 Ano2 8
-U11 Ano3 8
-U11 Ano4 8
-U12 Ano1 8
-U12 Ano2 8
-U12 Ano3 8
-U12 Ano4 8
-U13 Ano1 8
-U13 Ano2 8
-U13 Ano3 8
-U13 Ano4 8
-U14 Ano1 8
-U14 Ano2 8
-U14 Ano3 8
-U14 Ano4 8
-U15 Ano1 8
-U15 Ano2 8
-U15 Ano3 8
-U15 Ano4 8
-U16 Ano1 8
-U16 Ano2 8
-U16 Ano3 8
-U16 Ano4 8
-U17 Ano1 8
-U17 Ano2 8
-U17 Ano3 8
-U17 Ano4 8
-U18 Ano1 8
-U18 Ano2 8
-U18 Ano3 8
-U18 Ano4 8
-U19 Ano1 8
-U19 Ano2 8
-U19 Ano3 8
-U19 Ano4 8
-U20 Ano1 8
-U20 Ano2 8
-U20 Ano3 8
-U20 Ano4 8
-U21 Ano1 8
-U21 Ano2 8
-U21 Ano3 8
-U21 Ano4 8
-U22 Ano1 8
-U22 Ano2 8
-U22 Ano3 8
-U22 Ano4 8
-U23 Ano1 8
-U23 Ano2 8
-U23 Ano3 8
-U23 Ano4 8
-U24 Ano1 8
-U24 Ano2 8
-U24 Ano3 8
-U24 Ano4 8
-U25 Ano1 8
-U25 Ano2 8
-U25 Ano3 8
-U25 Ano4 8
-;
-
-
-# prod cost
-param Q :=
-C01 Ano1 0.1
-C01 Ano2 0.1
-C01 Ano3 0.1
-C01 Ano4 0.1
-C02 Ano1 0.1
-C02 Ano2 0.1
-C02 Ano3 0.1
-C02 Ano4 0.1
-C03 Ano1 0.1
-C03 Ano2 0.1
-C03 Ano3 0.1
-C03 Ano4 0.1
-C04 Ano1 0.1
-C04 Ano2 0.1
-C04 Ano3 0.1
-C04 Ano4 0.1
-C05 Ano1 0.1
-C05 Ano2 0.1
-C05 Ano3 0.1
-C05 Ano4 0.1
-C06 Ano1 0.1
-C06 Ano2 0.1
-C06 Ano3 0.1
-C06 Ano4 0.1
-C07 Ano1 0.1
-C07 Ano2 0.1
-C07 Ano3 0.1
-C07 Ano4 0.1
-C08 Ano1 0.1
-C08 Ano2 0.1
-C08 Ano3 0.1
-C08 Ano4 0.1
-C09 Ano1 0.1
-C09 Ano2 0.1
-C09 Ano3 0.1
-C09 Ano4 0.1
-;
-
-# construction cost of one road in arc (k,l) in time t
-param C :=
-C01 C09 Ano1 1440
-C01 C09 Ano2 1309.09
-C01 C09 Ano3 1190.08
-C01 C09 Ano4 1081.89
-C01 C02 Ano1 1950
-C01 C02 Ano2 1772.73
-C01 C02 Ano3 1611.57
-C01 C02 Ano4 1465.06
-C02 C09 Ano1 1690
-C02 C09 Ano2 1536.36
-C02 C09 Ano3 1396.69
-C02 C09 Ano4 1269.72
-C09 C02 Ano1 1690
-C09 C02 Ano2 1536.36
-C09 C02 Ano3 1396.69
-C09 C02 Ano4 1269.72
-C09 E1 Ano1 2840
-C09 E1 Ano2 2581.82
-C09 E1 Ano3 2347.11
-C09 E1 Ano4 2133.73
-C09 C03 Ano1 2190
-C09 C03 Ano2 1990.91
-C09 C03 Ano3 1809.92
-C09 C03 Ano4 1645.38
-C04 C03 Ano1 1170
-C04 C03 Ano2 1063.64
-C04 C03 Ano3 966.94
-C04 C03 Ano4 879.04
-C04 I3 Ano1 1320
-C04 I3 Ano2 1200
-C04 I3 Ano3 1090.91
-C04 I3 Ano4 991.74
-C06 I3 Ano1 150
-C06 I3 Ano2 136.36
-C06 I3 Ano3 123.97
-C06 I3 Ano4 112.7
-C08 C06 Ano1 1950
-C08 C06 Ano2 1772.73
-C08 C06 Ano3 1611.57
-C08 C06 Ano4 1465.06
-C08 I2 Ano1 1110
-C08 I2 Ano2 1009.09
-C08 I2 Ano3 917.36
-C08 I2 Ano4 833.96
-C07 C08 Ano1 930
-C07 C08 Ano2 845.45
-C07 C08 Ano3 768.6
-C07 C08 Ano4 698.72
-C07 I1 Ano1 1950
-C07 I1 Ano2 1772.73
-C07 I1 Ano3 1611.57
-C07 I1 Ano4 1465.06
-C07 C05 Ano1 2130
-C07 C05 Ano2 1936.36
-C07 C05 Ano3 1760.33
-C07 C05 Ano4 1600.3
-;
-
-# unit transport cost through arc (k,l) in time t
-param D :=
-C01 C09 Ano1 1.9
-C01 C02 Ano1 3.25
-C02 C09 Ano1 2.35
-C09 C02 Ano1 2.35
-C09 E1 Ano1 4.1
-C09 C03 Ano1 3.65
-C04 C03 Ano1 1.95
-C04 I3 Ano1 2.2
-C06 I3 Ano1 0.25
-C08 C06 Ano1 3.25
-C08 I2 Ano1 1.85
-C07 C08 Ano1 1.55
-C07 I1 Ano1 3.15
-C07 C05 Ano1 3.25
-C02 C03 Ano1 3.6
-C03 E1 Ano1 1.4
-C05 I1 Ano1 0.95
-I1 I2 Ano1 1.1
-I2 I3 Ano1 1.45
-I3 E1 Ano1 1.95
-C01 C09 Ano2 1.9
-C01 C02 Ano2 3.25
-C02 C09 Ano2 2.35
-C09 C02 Ano2 2.35
-C09 E1 Ano2 4.1
-C09 C03 Ano2 3.65
-C04 C03 Ano2 1.95
-C04 I3 Ano2 2.2
-C06 I3 Ano2 0.25
-C08 C06 Ano2 3.25
-C08 I2 Ano2 1.85
-C07 C08 Ano2 1.55
-C07 I1 Ano2 3.15
-C07 C05 Ano2 3.25
-C02 C03 Ano2 3.6
-C03 E1 Ano2 1.4
-C05 I1 Ano2 0.95
-I1 I2 Ano2 1.1
-I2 I3 Ano2 1.45
-I3 E1 Ano2 1.95
-C01 C09 Ano3 1.9
-C01 C02 Ano3 3.25
-C02 C09 Ano3 2.35
-C09 C02 Ano3 2.35
-C09 E1 Ano3 4.1
-C09 C03 Ano3 3.65
-C04 C03 Ano3 1.95
-C04 I3 Ano3 2.2
-C06 I3 Ano3 0.25
-C08 C06 Ano3 3.25
-C08 I2 Ano3 1.85
-C07 C08 Ano3 1.55
-C07 I1 Ano3 3.15
-C07 C05 Ano3 3.25
-C02 C03 Ano3 3.6
-C03 E1 Ano3 1.4
-C05 I1 Ano3 0.95
-I1 I2 Ano3 1.1
-I2 I3 Ano3 1.45
-I3 E1 Ano3 1.95
-C01 C09 Ano4 1.9
-C01 C02 Ano4 3.25
-C02 C09 Ano4 2.35
-C09 C02 Ano4 2.35
-C09 E1 Ano4 4.1
-C09 C03 Ano4 3.65
-C04 C03 Ano4 1.95
-C04 I3 Ano4 2.2
-C06 I3 Ano4 0.25
-C08 C06 Ano4 3.25
-C08 I2 Ano4 1.85
-C07 C08 Ano4 1.55
-C07 I1 Ano4 3.15
-C07 C05 Ano4 3.25
-C02 C03 Ano4 3.6
-C03 E1 Ano4 1.4
-C05 I1 Ano4 0.95
-I1 I2 Ano4 1.1
-I2 I3 Ano4 1.45
-I3 E1 Ano4 1.95
-;
-
-#
-# Stochastic Parameters
-#
-
-# sale price at exit e in time period t
-param R := E1 Ano1 45
- E1 Ano2 30
- E1 Ano3 45
- E1 Ano4 40 ;
-
-# upper and lower bounds on wood supplied
-param Zlb := Ano1 30000
- Ano2 10000
- Ano3 22000
- Ano4 12000 ;
-param Zub := Ano1 40000
- Ano2 18000
- Ano3 40000
- Ano4 18000 ;
-param yr:=
-Ano1 1
-Ano2 1
-Ano3 1
-Ano4 1
-;
-
-set COriginNodeForCell[U1]:= C01;
-set COriginNodeForCell[U2]:= C01;
-set COriginNodeForCell[U3]:= C09;
-set COriginNodeForCell[U4]:= C01;
-set COriginNodeForCell[U5]:= C09;
-set COriginNodeForCell[U6]:= C02;
-set COriginNodeForCell[U7]:= C02;
-set COriginNodeForCell[U8]:= C09;
-set COriginNodeForCell[U9]:= C02;
-set COriginNodeForCell[U10]:= C02;
-set COriginNodeForCell[U11]:= C04;
-set COriginNodeForCell[U12]:= C03;
-set COriginNodeForCell[U13]:= C03;
-set COriginNodeForCell[U14]:= C05;
-set COriginNodeForCell[U15]:= C04;
-set COriginNodeForCell[U16]:= C04;
-set COriginNodeForCell[U17]:= C06;
-set COriginNodeForCell[U18]:= C06;
-set COriginNodeForCell[U19]:= C06;
-set COriginNodeForCell[U20]:= C08;
-set COriginNodeForCell[U21]:= C08;
-set COriginNodeForCell[U22]:= C07;
-set COriginNodeForCell[U23]:= C05;
-set COriginNodeForCell[U24]:= C05;
-set COriginNodeForCell[U25]:= C07;
-
diff --git a/examples/pysp/forestry/unequalProbs/ForestChile14.dat b/examples/pysp/forestry/unequalProbs/ForestChile14.dat
deleted file mode 100644
index 8870df44ef1..00000000000
--- a/examples/pysp/forestry/unequalProbs/ForestChile14.dat
+++ /dev/null
@@ -1,562 +0,0 @@
-# fbv
-# mnr May 3, 2009
-
-# general nodes
-set Nodes := E1
- I1 I2 I3
- C01 C02 C03 C04 C05 C06 C07 C08 C09 ;
-
-# following the notation in the paper (note: nodes \equiv origins)
-
-#
-# Sets
-#
-
-set Times := Ano1 Ano2 Ano3 Ano4;
-
-set OriginNodes := C01 C02 C03 C04 C05 C06 C07 C08 C09 ;
-
-set IntersectionNodes := I1 I2 I3;
-
-set ExitNodes := E1;
-
-set HarvestCells := U1 U2 U3 U4 U5 U6 U7 U8 U9 U10 U11 U12 U13
- U14 U15 U16 U17 U18 U19 U20 U21 U22 U23 U24 U25;
-
-set HCellsForOrigin[C01] := U1 U2 U4 ;
-set HCellsForOrigin[C02] := U6 U7 U9 U10 ;
-set HCellsForOrigin[C03] := U12 U13 ;
-set HCellsForOrigin[C04] := U11 U15 U16 ;
-set HCellsForOrigin[C05] := U14 U23 U24 ;
-set HCellsForOrigin[C06] := U17 U18 U19 ;
-set HCellsForOrigin[C07] := U22 U25 ;
-set HCellsForOrigin[C08] := U20 U21 ;
-set HCellsForOrigin[C09] := U3 U5 U8 ;
-
-set ExistingRoads :=
-C02 C03
-C03 E1
-C05 I1
-I1 I2
-I2 I3
-I3 E1
-;
-
-set PotentialRoads :=
-C01 C09
-C01 C02
-C02 C09
-C09 C02
-C09 E1
-C09 C03
-C04 C03
-C04 I3
-C06 I3
-C08 C06
-C08 I2
-C07 C08
-C07 I1
-C07 C05
-;
-
-set AllRoads :=
-C02 C03
-C03 E1
-C05 I1
-I1 I2
-I2 I3
-I3 E1
-C01 C09
-C01 C02
-C02 C09
-C09 C02
-C09 E1
-C09 C03
-C04 C03
-C04 I3
-C06 I3
-C08 C06
-C08 I2
-C07 C08
-C07 I1
-C07 C05
-;
-
-#
-# Deterministic Parameters
-#
-
-# productivity of cell h if it is harvested in period t
-param a :=
-U1 Ano1 362
-U1 Ano2 362
-U1 Ano3 362
-U1 Ano4 362
-U2 Ano1 362
-U2 Ano2 362
-U2 Ano3 362
-U2 Ano4 362
-U3 Ano1 362
-U3 Ano2 362
-U3 Ano3 362
-U3 Ano4 362
-U4 Ano1 642
-U4 Ano2 642
-U4 Ano3 642
-U4 Ano4 642
-U5 Ano1 362
-U5 Ano2 362
-U5 Ano3 362
-U5 Ano4 362
-U6 Ano1 642
-U6 Ano2 642
-U6 Ano3 642
-U6 Ano4 642
-U7 Ano1 642
-U7 Ano2 642
-U7 Ano3 642
-U7 Ano4 642
-U8 Ano1 362
-U8 Ano2 362
-U8 Ano3 362
-U8 Ano4 362
-U9 Ano1 642
-U9 Ano2 642
-U9 Ano3 642
-U9 Ano4 642
-U10 Ano1 642
-U10 Ano2 642
-U10 Ano3 642
-U10 Ano4 642
-U11 Ano1 600
-U11 Ano2 600
-U11 Ano3 600
-U11 Ano4 600
-U12 Ano1 518
-U12 Ano2 518
-U12 Ano3 518
-U12 Ano4 518
-U13 Ano1 518
-U13 Ano2 518
-U13 Ano3 518
-U13 Ano4 518
-U14 Ano1 567
-U14 Ano2 567
-U14 Ano3 567
-U14 Ano4 567
-U15 Ano1 600
-U15 Ano2 600
-U15 Ano3 600
-U15 Ano4 600
-U16 Ano1 600
-U16 Ano2 600
-U16 Ano3 600
-U16 Ano4 600
-U17 Ano1 518
-U17 Ano2 518
-U17 Ano3 518
-U17 Ano4 518
-U18 Ano1 401
-U18 Ano2 401
-U18 Ano3 401
-U18 Ano4 401
-U19 Ano1 401
-U19 Ano2 401
-U19 Ano3 401
-U19 Ano4 401
-U20 Ano1 401
-U20 Ano2 401
-U20 Ano3 401
-U20 Ano4 401
-U21 Ano1 373
-U21 Ano2 373
-U21 Ano3 373
-U21 Ano4 373
-U22 Ano1 373
-U22 Ano2 373
-U22 Ano3 373
-U22 Ano4 373
-U23 Ano1 567
-U23 Ano2 567
-U23 Ano3 567
-U23 Ano4 567
-U24 Ano1 567
-U24 Ano2 567
-U24 Ano3 567
-U24 Ano4 567
-U25 Ano1 373
-U25 Ano2 373
-U25 Ano3 373
-U25 Ano4 373
-;
-
-# Area of cell h to be harvested
-param A :=
-U1 10.1
-U2 10.1
-U3 10.1
-U4 13.4
-U5 10.3
-U6 10.2
-U7 10.1
-U8 10.4
-U9 16.7
-U10 12.8
-U11 12.2
-U12 15.2
-U13 11.3
-U14 12.7
-U15 12.6
-U16 12.6
-U17 10
-U18 14.4
-U19 10.8
-U20 10.4
-U21 16.4
-U22 10
-U23 11.4
-U24 14.8
-U25 10.1
-;
-
-# harvesting cost of one hectare of cell h in time t
-param P :=
-U1 Ano1 8
-U1 Ano2 8
-U1 Ano3 8
-U1 Ano4 8
-U2 Ano1 8
-U2 Ano2 8
-U2 Ano3 8
-U2 Ano4 8
-U3 Ano1 8
-U3 Ano2 8
-U3 Ano3 8
-U3 Ano4 8
-U4 Ano1 8
-U4 Ano2 8
-U4 Ano3 8
-U4 Ano4 8
-U5 Ano1 8
-U5 Ano2 8
-U5 Ano3 8
-U5 Ano4 8
-U6 Ano1 8
-U6 Ano2 8
-U6 Ano3 8
-U6 Ano4 8
-U7 Ano1 8
-U7 Ano2 8
-U7 Ano3 8
-U7 Ano4 8
-U8 Ano1 8
-U8 Ano2 8
-U8 Ano3 8
-U8 Ano4 8
-U9 Ano1 8
-U9 Ano2 8
-U9 Ano3 8
-U9 Ano4 8
-U10 Ano1 8
-U10 Ano2 8
-U10 Ano3 8
-U10 Ano4 8
-U11 Ano1 8
-U11 Ano2 8
-U11 Ano3 8
-U11 Ano4 8
-U12 Ano1 8
-U12 Ano2 8
-U12 Ano3 8
-U12 Ano4 8
-U13 Ano1 8
-U13 Ano2 8
-U13 Ano3 8
-U13 Ano4 8
-U14 Ano1 8
-U14 Ano2 8
-U14 Ano3 8
-U14 Ano4 8
-U15 Ano1 8
-U15 Ano2 8
-U15 Ano3 8
-U15 Ano4 8
-U16 Ano1 8
-U16 Ano2 8
-U16 Ano3 8
-U16 Ano4 8
-U17 Ano1 8
-U17 Ano2 8
-U17 Ano3 8
-U17 Ano4 8
-U18 Ano1 8
-U18 Ano2 8
-U18 Ano3 8
-U18 Ano4 8
-U19 Ano1 8
-U19 Ano2 8
-U19 Ano3 8
-U19 Ano4 8
-U20 Ano1 8
-U20 Ano2 8
-U20 Ano3 8
-U20 Ano4 8
-U21 Ano1 8
-U21 Ano2 8
-U21 Ano3 8
-U21 Ano4 8
-U22 Ano1 8
-U22 Ano2 8
-U22 Ano3 8
-U22 Ano4 8
-U23 Ano1 8
-U23 Ano2 8
-U23 Ano3 8
-U23 Ano4 8
-U24 Ano1 8
-U24 Ano2 8
-U24 Ano3 8
-U24 Ano4 8
-U25 Ano1 8
-U25 Ano2 8
-U25 Ano3 8
-U25 Ano4 8
-;
-
-
-# prod cost
-param Q :=
-C01 Ano1 0.1
-C01 Ano2 0.1
-C01 Ano3 0.1
-C01 Ano4 0.1
-C02 Ano1 0.1
-C02 Ano2 0.1
-C02 Ano3 0.1
-C02 Ano4 0.1
-C03 Ano1 0.1
-C03 Ano2 0.1
-C03 Ano3 0.1
-C03 Ano4 0.1
-C04 Ano1 0.1
-C04 Ano2 0.1
-C04 Ano3 0.1
-C04 Ano4 0.1
-C05 Ano1 0.1
-C05 Ano2 0.1
-C05 Ano3 0.1
-C05 Ano4 0.1
-C06 Ano1 0.1
-C06 Ano2 0.1
-C06 Ano3 0.1
-C06 Ano4 0.1
-C07 Ano1 0.1
-C07 Ano2 0.1
-C07 Ano3 0.1
-C07 Ano4 0.1
-C08 Ano1 0.1
-C08 Ano2 0.1
-C08 Ano3 0.1
-C08 Ano4 0.1
-C09 Ano1 0.1
-C09 Ano2 0.1
-C09 Ano3 0.1
-C09 Ano4 0.1
-;
-
-# construction cost of one road in arc (k,l) in time t
-param C :=
-C01 C09 Ano1 1440
-C01 C09 Ano2 1309.09
-C01 C09 Ano3 1190.08
-C01 C09 Ano4 1081.89
-C01 C02 Ano1 1950
-C01 C02 Ano2 1772.73
-C01 C02 Ano3 1611.57
-C01 C02 Ano4 1465.06
-C02 C09 Ano1 1690
-C02 C09 Ano2 1536.36
-C02 C09 Ano3 1396.69
-C02 C09 Ano4 1269.72
-C09 C02 Ano1 1690
-C09 C02 Ano2 1536.36
-C09 C02 Ano3 1396.69
-C09 C02 Ano4 1269.72
-C09 E1 Ano1 2840
-C09 E1 Ano2 2581.82
-C09 E1 Ano3 2347.11
-C09 E1 Ano4 2133.73
-C09 C03 Ano1 2190
-C09 C03 Ano2 1990.91
-C09 C03 Ano3 1809.92
-C09 C03 Ano4 1645.38
-C04 C03 Ano1 1170
-C04 C03 Ano2 1063.64
-C04 C03 Ano3 966.94
-C04 C03 Ano4 879.04
-C04 I3 Ano1 1320
-C04 I3 Ano2 1200
-C04 I3 Ano3 1090.91
-C04 I3 Ano4 991.74
-C06 I3 Ano1 150
-C06 I3 Ano2 136.36
-C06 I3 Ano3 123.97
-C06 I3 Ano4 112.7
-C08 C06 Ano1 1950
-C08 C06 Ano2 1772.73
-C08 C06 Ano3 1611.57
-C08 C06 Ano4 1465.06
-C08 I2 Ano1 1110
-C08 I2 Ano2 1009.09
-C08 I2 Ano3 917.36
-C08 I2 Ano4 833.96
-C07 C08 Ano1 930
-C07 C08 Ano2 845.45
-C07 C08 Ano3 768.6
-C07 C08 Ano4 698.72
-C07 I1 Ano1 1950
-C07 I1 Ano2 1772.73
-C07 I1 Ano3 1611.57
-C07 I1 Ano4 1465.06
-C07 C05 Ano1 2130
-C07 C05 Ano2 1936.36
-C07 C05 Ano3 1760.33
-C07 C05 Ano4 1600.3
-;
-
-# unit transport cost through arc (k,l) in time t
-param D :=
-C01 C09 Ano1 1.9
-C01 C02 Ano1 3.25
-C02 C09 Ano1 2.35
-C09 C02 Ano1 2.35
-C09 E1 Ano1 4.1
-C09 C03 Ano1 3.65
-C04 C03 Ano1 1.95
-C04 I3 Ano1 2.2
-C06 I3 Ano1 0.25
-C08 C06 Ano1 3.25
-C08 I2 Ano1 1.85
-C07 C08 Ano1 1.55
-C07 I1 Ano1 3.15
-C07 C05 Ano1 3.25
-C02 C03 Ano1 3.6
-C03 E1 Ano1 1.4
-C05 I1 Ano1 0.95
-I1 I2 Ano1 1.1
-I2 I3 Ano1 1.45
-I3 E1 Ano1 1.95
-C01 C09 Ano2 1.9
-C01 C02 Ano2 3.25
-C02 C09 Ano2 2.35
-C09 C02 Ano2 2.35
-C09 E1 Ano2 4.1
-C09 C03 Ano2 3.65
-C04 C03 Ano2 1.95
-C04 I3 Ano2 2.2
-C06 I3 Ano2 0.25
-C08 C06 Ano2 3.25
-C08 I2 Ano2 1.85
-C07 C08 Ano2 1.55
-C07 I1 Ano2 3.15
-C07 C05 Ano2 3.25
-C02 C03 Ano2 3.6
-C03 E1 Ano2 1.4
-C05 I1 Ano2 0.95
-I1 I2 Ano2 1.1
-I2 I3 Ano2 1.45
-I3 E1 Ano2 1.95
-C01 C09 Ano3 1.9
-C01 C02 Ano3 3.25
-C02 C09 Ano3 2.35
-C09 C02 Ano3 2.35
-C09 E1 Ano3 4.1
-C09 C03 Ano3 3.65
-C04 C03 Ano3 1.95
-C04 I3 Ano3 2.2
-C06 I3 Ano3 0.25
-C08 C06 Ano3 3.25
-C08 I2 Ano3 1.85
-C07 C08 Ano3 1.55
-C07 I1 Ano3 3.15
-C07 C05 Ano3 3.25
-C02 C03 Ano3 3.6
-C03 E1 Ano3 1.4
-C05 I1 Ano3 0.95
-I1 I2 Ano3 1.1
-I2 I3 Ano3 1.45
-I3 E1 Ano3 1.95
-C01 C09 Ano4 1.9
-C01 C02 Ano4 3.25
-C02 C09 Ano4 2.35
-C09 C02 Ano4 2.35
-C09 E1 Ano4 4.1
-C09 C03 Ano4 3.65
-C04 C03 Ano4 1.95
-C04 I3 Ano4 2.2
-C06 I3 Ano4 0.25
-C08 C06 Ano4 3.25
-C08 I2 Ano4 1.85
-C07 C08 Ano4 1.55
-C07 I1 Ano4 3.15
-C07 C05 Ano4 3.25
-C02 C03 Ano4 3.6
-C03 E1 Ano4 1.4
-C05 I1 Ano4 0.95
-I1 I2 Ano4 1.1
-I2 I3 Ano4 1.45
-I3 E1 Ano4 1.95
-;
-
-#
-# Stochastic Parameters
-#
-
-# sale price at exit e in time period t
-param R := E1 Ano1 45
- E1 Ano2 30
- E1 Ano3 45
- E1 Ano4 30 ;
-
-# upper and lower bounds on wood supplied
-param Zlb := Ano1 30000
- Ano2 10000
- Ano3 22000
- Ano4 12000 ;
-param Zub := Ano1 40000
- Ano2 18000
- Ano3 40000
- Ano4 18000 ;
-param yr:=
-Ano1 1
-Ano2 1
-Ano3 1
-Ano4 1
-;
-
-set COriginNodeForCell[U1]:= C01;
-set COriginNodeForCell[U2]:= C01;
-set COriginNodeForCell[U3]:= C09;
-set COriginNodeForCell[U4]:= C01;
-set COriginNodeForCell[U5]:= C09;
-set COriginNodeForCell[U6]:= C02;
-set COriginNodeForCell[U7]:= C02;
-set COriginNodeForCell[U8]:= C09;
-set COriginNodeForCell[U9]:= C02;
-set COriginNodeForCell[U10]:= C02;
-set COriginNodeForCell[U11]:= C04;
-set COriginNodeForCell[U12]:= C03;
-set COriginNodeForCell[U13]:= C03;
-set COriginNodeForCell[U14]:= C05;
-set COriginNodeForCell[U15]:= C04;
-set COriginNodeForCell[U16]:= C04;
-set COriginNodeForCell[U17]:= C06;
-set COriginNodeForCell[U18]:= C06;
-set COriginNodeForCell[U19]:= C06;
-set COriginNodeForCell[U20]:= C08;
-set COriginNodeForCell[U21]:= C08;
-set COriginNodeForCell[U22]:= C07;
-set COriginNodeForCell[U23]:= C05;
-set COriginNodeForCell[U24]:= C05;
-set COriginNodeForCell[U25]:= C07;
-
diff --git a/examples/pysp/forestry/unequalProbs/ForestChile15.dat b/examples/pysp/forestry/unequalProbs/ForestChile15.dat
deleted file mode 100644
index 00bd73406a8..00000000000
--- a/examples/pysp/forestry/unequalProbs/ForestChile15.dat
+++ /dev/null
@@ -1,562 +0,0 @@
-# fbv
-# mnr May 3, 2009
-
-# general nodes
-set Nodes := E1
- I1 I2 I3
- C01 C02 C03 C04 C05 C06 C07 C08 C09 ;
-
-# following the notation in the paper (note: nodes \equiv origins)
-
-#
-# Sets
-#
-
-set Times := Ano1 Ano2 Ano3 Ano4;
-
-set OriginNodes := C01 C02 C03 C04 C05 C06 C07 C08 C09 ;
-
-set IntersectionNodes := I1 I2 I3;
-
-set ExitNodes := E1;
-
-set HarvestCells := U1 U2 U3 U4 U5 U6 U7 U8 U9 U10 U11 U12 U13
- U14 U15 U16 U17 U18 U19 U20 U21 U22 U23 U24 U25;
-
-set HCellsForOrigin[C01] := U1 U2 U4 ;
-set HCellsForOrigin[C02] := U6 U7 U9 U10 ;
-set HCellsForOrigin[C03] := U12 U13 ;
-set HCellsForOrigin[C04] := U11 U15 U16 ;
-set HCellsForOrigin[C05] := U14 U23 U24 ;
-set HCellsForOrigin[C06] := U17 U18 U19 ;
-set HCellsForOrigin[C07] := U22 U25 ;
-set HCellsForOrigin[C08] := U20 U21 ;
-set HCellsForOrigin[C09] := U3 U5 U8 ;
-
-set ExistingRoads :=
-C02 C03
-C03 E1
-C05 I1
-I1 I2
-I2 I3
-I3 E1
-;
-
-set PotentialRoads :=
-C01 C09
-C01 C02
-C02 C09
-C09 C02
-C09 E1
-C09 C03
-C04 C03
-C04 I3
-C06 I3
-C08 C06
-C08 I2
-C07 C08
-C07 I1
-C07 C05
-;
-
-set AllRoads :=
-C02 C03
-C03 E1
-C05 I1
-I1 I2
-I2 I3
-I3 E1
-C01 C09
-C01 C02
-C02 C09
-C09 C02
-C09 E1
-C09 C03
-C04 C03
-C04 I3
-C06 I3
-C08 C06
-C08 I2
-C07 C08
-C07 I1
-C07 C05
-;
-
-#
-# Deterministic Parameters
-#
-
-# productivity of cell h if it is harvested in period t
-param a :=
-U1 Ano1 362
-U1 Ano2 362
-U1 Ano3 362
-U1 Ano4 362
-U2 Ano1 362
-U2 Ano2 362
-U2 Ano3 362
-U2 Ano4 362
-U3 Ano1 362
-U3 Ano2 362
-U3 Ano3 362
-U3 Ano4 362
-U4 Ano1 642
-U4 Ano2 642
-U4 Ano3 642
-U4 Ano4 642
-U5 Ano1 362
-U5 Ano2 362
-U5 Ano3 362
-U5 Ano4 362
-U6 Ano1 642
-U6 Ano2 642
-U6 Ano3 642
-U6 Ano4 642
-U7 Ano1 642
-U7 Ano2 642
-U7 Ano3 642
-U7 Ano4 642
-U8 Ano1 362
-U8 Ano2 362
-U8 Ano3 362
-U8 Ano4 362
-U9 Ano1 642
-U9 Ano2 642
-U9 Ano3 642
-U9 Ano4 642
-U10 Ano1 642
-U10 Ano2 642
-U10 Ano3 642
-U10 Ano4 642
-U11 Ano1 600
-U11 Ano2 600
-U11 Ano3 600
-U11 Ano4 600
-U12 Ano1 518
-U12 Ano2 518
-U12 Ano3 518
-U12 Ano4 518
-U13 Ano1 518
-U13 Ano2 518
-U13 Ano3 518
-U13 Ano4 518
-U14 Ano1 567
-U14 Ano2 567
-U14 Ano3 567
-U14 Ano4 567
-U15 Ano1 600
-U15 Ano2 600
-U15 Ano3 600
-U15 Ano4 600
-U16 Ano1 600
-U16 Ano2 600
-U16 Ano3 600
-U16 Ano4 600
-U17 Ano1 518
-U17 Ano2 518
-U17 Ano3 518
-U17 Ano4 518
-U18 Ano1 401
-U18 Ano2 401
-U18 Ano3 401
-U18 Ano4 401
-U19 Ano1 401
-U19 Ano2 401
-U19 Ano3 401
-U19 Ano4 401
-U20 Ano1 401
-U20 Ano2 401
-U20 Ano3 401
-U20 Ano4 401
-U21 Ano1 373
-U21 Ano2 373
-U21 Ano3 373
-U21 Ano4 373
-U22 Ano1 373
-U22 Ano2 373
-U22 Ano3 373
-U22 Ano4 373
-U23 Ano1 567
-U23 Ano2 567
-U23 Ano3 567
-U23 Ano4 567
-U24 Ano1 567
-U24 Ano2 567
-U24 Ano3 567
-U24 Ano4 567
-U25 Ano1 373
-U25 Ano2 373
-U25 Ano3 373
-U25 Ano4 373
-;
-
-# Area of cell h to be harvested
-param A :=
-U1 10.1
-U2 10.1
-U3 10.1
-U4 13.4
-U5 10.3
-U6 10.2
-U7 10.1
-U8 10.4
-U9 16.7
-U10 12.8
-U11 12.2
-U12 15.2
-U13 11.3
-U14 12.7
-U15 12.6
-U16 12.6
-U17 10
-U18 14.4
-U19 10.8
-U20 10.4
-U21 16.4
-U22 10
-U23 11.4
-U24 14.8
-U25 10.1
-;
-
-# harvesting cost of one hectare of cell h in time t
-param P :=
-U1 Ano1 8
-U1 Ano2 8
-U1 Ano3 8
-U1 Ano4 8
-U2 Ano1 8
-U2 Ano2 8
-U2 Ano3 8
-U2 Ano4 8
-U3 Ano1 8
-U3 Ano2 8
-U3 Ano3 8
-U3 Ano4 8
-U4 Ano1 8
-U4 Ano2 8
-U4 Ano3 8
-U4 Ano4 8
-U5 Ano1 8
-U5 Ano2 8
-U5 Ano3 8
-U5 Ano4 8
-U6 Ano1 8
-U6 Ano2 8
-U6 Ano3 8
-U6 Ano4 8
-U7 Ano1 8
-U7 Ano2 8
-U7 Ano3 8
-U7 Ano4 8
-U8 Ano1 8
-U8 Ano2 8
-U8 Ano3 8
-U8 Ano4 8
-U9 Ano1 8
-U9 Ano2 8
-U9 Ano3 8
-U9 Ano4 8
-U10 Ano1 8
-U10 Ano2 8
-U10 Ano3 8
-U10 Ano4 8
-U11 Ano1 8
-U11 Ano2 8
-U11 Ano3 8
-U11 Ano4 8
-U12 Ano1 8
-U12 Ano2 8
-U12 Ano3 8
-U12 Ano4 8
-U13 Ano1 8
-U13 Ano2 8
-U13 Ano3 8
-U13 Ano4 8
-U14 Ano1 8
-U14 Ano2 8
-U14 Ano3 8
-U14 Ano4 8
-U15 Ano1 8
-U15 Ano2 8
-U15 Ano3 8
-U15 Ano4 8
-U16 Ano1 8
-U16 Ano2 8
-U16 Ano3 8
-U16 Ano4 8
-U17 Ano1 8
-U17 Ano2 8
-U17 Ano3 8
-U17 Ano4 8
-U18 Ano1 8
-U18 Ano2 8
-U18 Ano3 8
-U18 Ano4 8
-U19 Ano1 8
-U19 Ano2 8
-U19 Ano3 8
-U19 Ano4 8
-U20 Ano1 8
-U20 Ano2 8
-U20 Ano3 8
-U20 Ano4 8
-U21 Ano1 8
-U21 Ano2 8
-U21 Ano3 8
-U21 Ano4 8
-U22 Ano1 8
-U22 Ano2 8
-U22 Ano3 8
-U22 Ano4 8
-U23 Ano1 8
-U23 Ano2 8
-U23 Ano3 8
-U23 Ano4 8
-U24 Ano1 8
-U24 Ano2 8
-U24 Ano3 8
-U24 Ano4 8
-U25 Ano1 8
-U25 Ano2 8
-U25 Ano3 8
-U25 Ano4 8
-;
-
-
-# prod cost
-param Q :=
-C01 Ano1 0.1
-C01 Ano2 0.1
-C01 Ano3 0.1
-C01 Ano4 0.1
-C02 Ano1 0.1
-C02 Ano2 0.1
-C02 Ano3 0.1
-C02 Ano4 0.1
-C03 Ano1 0.1
-C03 Ano2 0.1
-C03 Ano3 0.1
-C03 Ano4 0.1
-C04 Ano1 0.1
-C04 Ano2 0.1
-C04 Ano3 0.1
-C04 Ano4 0.1
-C05 Ano1 0.1
-C05 Ano2 0.1
-C05 Ano3 0.1
-C05 Ano4 0.1
-C06 Ano1 0.1
-C06 Ano2 0.1
-C06 Ano3 0.1
-C06 Ano4 0.1
-C07 Ano1 0.1
-C07 Ano2 0.1
-C07 Ano3 0.1
-C07 Ano4 0.1
-C08 Ano1 0.1
-C08 Ano2 0.1
-C08 Ano3 0.1
-C08 Ano4 0.1
-C09 Ano1 0.1
-C09 Ano2 0.1
-C09 Ano3 0.1
-C09 Ano4 0.1
-;
-
-# construction cost of one road in arc (k,l) in time t
-param C :=
-C01 C09 Ano1 1440
-C01 C09 Ano2 1309.09
-C01 C09 Ano3 1190.08
-C01 C09 Ano4 1081.89
-C01 C02 Ano1 1950
-C01 C02 Ano2 1772.73
-C01 C02 Ano3 1611.57
-C01 C02 Ano4 1465.06
-C02 C09 Ano1 1690
-C02 C09 Ano2 1536.36
-C02 C09 Ano3 1396.69
-C02 C09 Ano4 1269.72
-C09 C02 Ano1 1690
-C09 C02 Ano2 1536.36
-C09 C02 Ano3 1396.69
-C09 C02 Ano4 1269.72
-C09 E1 Ano1 2840
-C09 E1 Ano2 2581.82
-C09 E1 Ano3 2347.11
-C09 E1 Ano4 2133.73
-C09 C03 Ano1 2190
-C09 C03 Ano2 1990.91
-C09 C03 Ano3 1809.92
-C09 C03 Ano4 1645.38
-C04 C03 Ano1 1170
-C04 C03 Ano2 1063.64
-C04 C03 Ano3 966.94
-C04 C03 Ano4 879.04
-C04 I3 Ano1 1320
-C04 I3 Ano2 1200
-C04 I3 Ano3 1090.91
-C04 I3 Ano4 991.74
-C06 I3 Ano1 150
-C06 I3 Ano2 136.36
-C06 I3 Ano3 123.97
-C06 I3 Ano4 112.7
-C08 C06 Ano1 1950
-C08 C06 Ano2 1772.73
-C08 C06 Ano3 1611.57
-C08 C06 Ano4 1465.06
-C08 I2 Ano1 1110
-C08 I2 Ano2 1009.09
-C08 I2 Ano3 917.36
-C08 I2 Ano4 833.96
-C07 C08 Ano1 930
-C07 C08 Ano2 845.45
-C07 C08 Ano3 768.6
-C07 C08 Ano4 698.72
-C07 I1 Ano1 1950
-C07 I1 Ano2 1772.73
-C07 I1 Ano3 1611.57
-C07 I1 Ano4 1465.06
-C07 C05 Ano1 2130
-C07 C05 Ano2 1936.36
-C07 C05 Ano3 1760.33
-C07 C05 Ano4 1600.3
-;
-
-# unit transport cost through arc (k,l) in time t
-param D :=
-C01 C09 Ano1 1.9
-C01 C02 Ano1 3.25
-C02 C09 Ano1 2.35
-C09 C02 Ano1 2.35
-C09 E1 Ano1 4.1
-C09 C03 Ano1 3.65
-C04 C03 Ano1 1.95
-C04 I3 Ano1 2.2
-C06 I3 Ano1 0.25
-C08 C06 Ano1 3.25
-C08 I2 Ano1 1.85
-C07 C08 Ano1 1.55
-C07 I1 Ano1 3.15
-C07 C05 Ano1 3.25
-C02 C03 Ano1 3.6
-C03 E1 Ano1 1.4
-C05 I1 Ano1 0.95
-I1 I2 Ano1 1.1
-I2 I3 Ano1 1.45
-I3 E1 Ano1 1.95
-C01 C09 Ano2 1.9
-C01 C02 Ano2 3.25
-C02 C09 Ano2 2.35
-C09 C02 Ano2 2.35
-C09 E1 Ano2 4.1
-C09 C03 Ano2 3.65
-C04 C03 Ano2 1.95
-C04 I3 Ano2 2.2
-C06 I3 Ano2 0.25
-C08 C06 Ano2 3.25
-C08 I2 Ano2 1.85
-C07 C08 Ano2 1.55
-C07 I1 Ano2 3.15
-C07 C05 Ano2 3.25
-C02 C03 Ano2 3.6
-C03 E1 Ano2 1.4
-C05 I1 Ano2 0.95
-I1 I2 Ano2 1.1
-I2 I3 Ano2 1.45
-I3 E1 Ano2 1.95
-C01 C09 Ano3 1.9
-C01 C02 Ano3 3.25
-C02 C09 Ano3 2.35
-C09 C02 Ano3 2.35
-C09 E1 Ano3 4.1
-C09 C03 Ano3 3.65
-C04 C03 Ano3 1.95
-C04 I3 Ano3 2.2
-C06 I3 Ano3 0.25
-C08 C06 Ano3 3.25
-C08 I2 Ano3 1.85
-C07 C08 Ano3 1.55
-C07 I1 Ano3 3.15
-C07 C05 Ano3 3.25
-C02 C03 Ano3 3.6
-C03 E1 Ano3 1.4
-C05 I1 Ano3 0.95
-I1 I2 Ano3 1.1
-I2 I3 Ano3 1.45
-I3 E1 Ano3 1.95
-C01 C09 Ano4 1.9
-C01 C02 Ano4 3.25
-C02 C09 Ano4 2.35
-C09 C02 Ano4 2.35
-C09 E1 Ano4 4.1
-C09 C03 Ano4 3.65
-C04 C03 Ano4 1.95
-C04 I3 Ano4 2.2
-C06 I3 Ano4 0.25
-C08 C06 Ano4 3.25
-C08 I2 Ano4 1.85
-C07 C08 Ano4 1.55
-C07 I1 Ano4 3.15
-C07 C05 Ano4 3.25
-C02 C03 Ano4 3.6
-C03 E1 Ano4 1.4
-C05 I1 Ano4 0.95
-I1 I2 Ano4 1.1
-I2 I3 Ano4 1.45
-I3 E1 Ano4 1.95
-;
-
-#
-# Stochastic Parameters
-#
-
-# sale price at exit e in time period t
-param R := E1 Ano1 45
- E1 Ano2 30
- E1 Ano3 30
- E1 Ano4 40 ;
-
-# upper and lower bounds on wood supplied
-param Zlb := Ano1 30000
- Ano2 10000
- Ano3 15000
- Ano4 13000 ;
-param Zub := Ano1 40000
- Ano2 18000
- Ano3 25000
- Ano4 18000 ;
-param yr:=
-Ano1 1
-Ano2 1
-Ano3 1
-Ano4 1
-;
-
-set COriginNodeForCell[U1]:= C01;
-set COriginNodeForCell[U2]:= C01;
-set COriginNodeForCell[U3]:= C09;
-set COriginNodeForCell[U4]:= C01;
-set COriginNodeForCell[U5]:= C09;
-set COriginNodeForCell[U6]:= C02;
-set COriginNodeForCell[U7]:= C02;
-set COriginNodeForCell[U8]:= C09;
-set COriginNodeForCell[U9]:= C02;
-set COriginNodeForCell[U10]:= C02;
-set COriginNodeForCell[U11]:= C04;
-set COriginNodeForCell[U12]:= C03;
-set COriginNodeForCell[U13]:= C03;
-set COriginNodeForCell[U14]:= C05;
-set COriginNodeForCell[U15]:= C04;
-set COriginNodeForCell[U16]:= C04;
-set COriginNodeForCell[U17]:= C06;
-set COriginNodeForCell[U18]:= C06;
-set COriginNodeForCell[U19]:= C06;
-set COriginNodeForCell[U20]:= C08;
-set COriginNodeForCell[U21]:= C08;
-set COriginNodeForCell[U22]:= C07;
-set COriginNodeForCell[U23]:= C05;
-set COriginNodeForCell[U24]:= C05;
-set COriginNodeForCell[U25]:= C07;
-
diff --git a/examples/pysp/forestry/unequalProbs/ForestChile16.dat b/examples/pysp/forestry/unequalProbs/ForestChile16.dat
deleted file mode 100644
index 411b676dfef..00000000000
--- a/examples/pysp/forestry/unequalProbs/ForestChile16.dat
+++ /dev/null
@@ -1,562 +0,0 @@
-# fbv
-# mnr May 3, 2009
-
-# general nodes
-set Nodes := E1
- I1 I2 I3
- C01 C02 C03 C04 C05 C06 C07 C08 C09 ;
-
-# following the notation in the paper (note: nodes \equiv origins)
-
-#
-# Sets
-#
-
-set Times := Ano1 Ano2 Ano3 Ano4;
-
-set OriginNodes := C01 C02 C03 C04 C05 C06 C07 C08 C09 ;
-
-set IntersectionNodes := I1 I2 I3;
-
-set ExitNodes := E1;
-
-set HarvestCells := U1 U2 U3 U4 U5 U6 U7 U8 U9 U10 U11 U12 U13
- U14 U15 U16 U17 U18 U19 U20 U21 U22 U23 U24 U25;
-
-set HCellsForOrigin[C01] := U1 U2 U4 ;
-set HCellsForOrigin[C02] := U6 U7 U9 U10 ;
-set HCellsForOrigin[C03] := U12 U13 ;
-set HCellsForOrigin[C04] := U11 U15 U16 ;
-set HCellsForOrigin[C05] := U14 U23 U24 ;
-set HCellsForOrigin[C06] := U17 U18 U19 ;
-set HCellsForOrigin[C07] := U22 U25 ;
-set HCellsForOrigin[C08] := U20 U21 ;
-set HCellsForOrigin[C09] := U3 U5 U8 ;
-
-set ExistingRoads :=
-C02 C03
-C03 E1
-C05 I1
-I1 I2
-I2 I3
-I3 E1
-;
-
-set PotentialRoads :=
-C01 C09
-C01 C02
-C02 C09
-C09 C02
-C09 E1
-C09 C03
-C04 C03
-C04 I3
-C06 I3
-C08 C06
-C08 I2
-C07 C08
-C07 I1
-C07 C05
-;
-
-set AllRoads :=
-C02 C03
-C03 E1
-C05 I1
-I1 I2
-I2 I3
-I3 E1
-C01 C09
-C01 C02
-C02 C09
-C09 C02
-C09 E1
-C09 C03
-C04 C03
-C04 I3
-C06 I3
-C08 C06
-C08 I2
-C07 C08
-C07 I1
-C07 C05
-;
-
-#
-# Deterministic Parameters
-#
-
-# productivity of cell h if it is harvested in period t
-param a :=
-U1 Ano1 362
-U1 Ano2 362
-U1 Ano3 362
-U1 Ano4 362
-U2 Ano1 362
-U2 Ano2 362
-U2 Ano3 362
-U2 Ano4 362
-U3 Ano1 362
-U3 Ano2 362
-U3 Ano3 362
-U3 Ano4 362
-U4 Ano1 642
-U4 Ano2 642
-U4 Ano3 642
-U4 Ano4 642
-U5 Ano1 362
-U5 Ano2 362
-U5 Ano3 362
-U5 Ano4 362
-U6 Ano1 642
-U6 Ano2 642
-U6 Ano3 642
-U6 Ano4 642
-U7 Ano1 642
-U7 Ano2 642
-U7 Ano3 642
-U7 Ano4 642
-U8 Ano1 362
-U8 Ano2 362
-U8 Ano3 362
-U8 Ano4 362
-U9 Ano1 642
-U9 Ano2 642
-U9 Ano3 642
-U9 Ano4 642
-U10 Ano1 642
-U10 Ano2 642
-U10 Ano3 642
-U10 Ano4 642
-U11 Ano1 600
-U11 Ano2 600
-U11 Ano3 600
-U11 Ano4 600
-U12 Ano1 518
-U12 Ano2 518
-U12 Ano3 518
-U12 Ano4 518
-U13 Ano1 518
-U13 Ano2 518
-U13 Ano3 518
-U13 Ano4 518
-U14 Ano1 567
-U14 Ano2 567
-U14 Ano3 567
-U14 Ano4 567
-U15 Ano1 600
-U15 Ano2 600
-U15 Ano3 600
-U15 Ano4 600
-U16 Ano1 600
-U16 Ano2 600
-U16 Ano3 600
-U16 Ano4 600
-U17 Ano1 518
-U17 Ano2 518
-U17 Ano3 518
-U17 Ano4 518
-U18 Ano1 401
-U18 Ano2 401
-U18 Ano3 401
-U18 Ano4 401
-U19 Ano1 401
-U19 Ano2 401
-U19 Ano3 401
-U19 Ano4 401
-U20 Ano1 401
-U20 Ano2 401
-U20 Ano3 401
-U20 Ano4 401
-U21 Ano1 373
-U21 Ano2 373
-U21 Ano3 373
-U21 Ano4 373
-U22 Ano1 373
-U22 Ano2 373
-U22 Ano3 373
-U22 Ano4 373
-U23 Ano1 567
-U23 Ano2 567
-U23 Ano3 567
-U23 Ano4 567
-U24 Ano1 567
-U24 Ano2 567
-U24 Ano3 567
-U24 Ano4 567
-U25 Ano1 373
-U25 Ano2 373
-U25 Ano3 373
-U25 Ano4 373
-;
-
-# Area of cell h to be harvested
-param A :=
-U1 10.1
-U2 10.1
-U3 10.1
-U4 13.4
-U5 10.3
-U6 10.2
-U7 10.1
-U8 10.4
-U9 16.7
-U10 12.8
-U11 12.2
-U12 15.2
-U13 11.3
-U14 12.7
-U15 12.6
-U16 12.6
-U17 10
-U18 14.4
-U19 10.8
-U20 10.4
-U21 16.4
-U22 10
-U23 11.4
-U24 14.8
-U25 10.1
-;
-
-# harvesting cost of one hectare of cell h in time t
-param P :=
-U1 Ano1 8
-U1 Ano2 8
-U1 Ano3 8
-U1 Ano4 8
-U2 Ano1 8
-U2 Ano2 8
-U2 Ano3 8
-U2 Ano4 8
-U3 Ano1 8
-U3 Ano2 8
-U3 Ano3 8
-U3 Ano4 8
-U4 Ano1 8
-U4 Ano2 8
-U4 Ano3 8
-U4 Ano4 8
-U5 Ano1 8
-U5 Ano2 8
-U5 Ano3 8
-U5 Ano4 8
-U6 Ano1 8
-U6 Ano2 8
-U6 Ano3 8
-U6 Ano4 8
-U7 Ano1 8
-U7 Ano2 8
-U7 Ano3 8
-U7 Ano4 8
-U8 Ano1 8
-U8 Ano2 8
-U8 Ano3 8
-U8 Ano4 8
-U9 Ano1 8
-U9 Ano2 8
-U9 Ano3 8
-U9 Ano4 8
-U10 Ano1 8
-U10 Ano2 8
-U10 Ano3 8
-U10 Ano4 8
-U11 Ano1 8
-U11 Ano2 8
-U11 Ano3 8
-U11 Ano4 8
-U12 Ano1 8
-U12 Ano2 8
-U12 Ano3 8
-U12 Ano4 8
-U13 Ano1 8
-U13 Ano2 8
-U13 Ano3 8
-U13 Ano4 8
-U14 Ano1 8
-U14 Ano2 8
-U14 Ano3 8
-U14 Ano4 8
-U15 Ano1 8
-U15 Ano2 8
-U15 Ano3 8
-U15 Ano4 8
-U16 Ano1 8
-U16 Ano2 8
-U16 Ano3 8
-U16 Ano4 8
-U17 Ano1 8
-U17 Ano2 8
-U17 Ano3 8
-U17 Ano4 8
-U18 Ano1 8
-U18 Ano2 8
-U18 Ano3 8
-U18 Ano4 8
-U19 Ano1 8
-U19 Ano2 8
-U19 Ano3 8
-U19 Ano4 8
-U20 Ano1 8
-U20 Ano2 8
-U20 Ano3 8
-U20 Ano4 8
-U21 Ano1 8
-U21 Ano2 8
-U21 Ano3 8
-U21 Ano4 8
-U22 Ano1 8
-U22 Ano2 8
-U22 Ano3 8
-U22 Ano4 8
-U23 Ano1 8
-U23 Ano2 8
-U23 Ano3 8
-U23 Ano4 8
-U24 Ano1 8
-U24 Ano2 8
-U24 Ano3 8
-U24 Ano4 8
-U25 Ano1 8
-U25 Ano2 8
-U25 Ano3 8
-U25 Ano4 8
-;
-
-
-# prod cost
-param Q :=
-C01 Ano1 0.1
-C01 Ano2 0.1
-C01 Ano3 0.1
-C01 Ano4 0.1
-C02 Ano1 0.1
-C02 Ano2 0.1
-C02 Ano3 0.1
-C02 Ano4 0.1
-C03 Ano1 0.1
-C03 Ano2 0.1
-C03 Ano3 0.1
-C03 Ano4 0.1
-C04 Ano1 0.1
-C04 Ano2 0.1
-C04 Ano3 0.1
-C04 Ano4 0.1
-C05 Ano1 0.1
-C05 Ano2 0.1
-C05 Ano3 0.1
-C05 Ano4 0.1
-C06 Ano1 0.1
-C06 Ano2 0.1
-C06 Ano3 0.1
-C06 Ano4 0.1
-C07 Ano1 0.1
-C07 Ano2 0.1
-C07 Ano3 0.1
-C07 Ano4 0.1
-C08 Ano1 0.1
-C08 Ano2 0.1
-C08 Ano3 0.1
-C08 Ano4 0.1
-C09 Ano1 0.1
-C09 Ano2 0.1
-C09 Ano3 0.1
-C09 Ano4 0.1
-;
-
-# construction cost of one road in arc (k,l) in time t
-param C :=
-C01 C09 Ano1 1440
-C01 C09 Ano2 1309.09
-C01 C09 Ano3 1190.08
-C01 C09 Ano4 1081.89
-C01 C02 Ano1 1950
-C01 C02 Ano2 1772.73
-C01 C02 Ano3 1611.57
-C01 C02 Ano4 1465.06
-C02 C09 Ano1 1690
-C02 C09 Ano2 1536.36
-C02 C09 Ano3 1396.69
-C02 C09 Ano4 1269.72
-C09 C02 Ano1 1690
-C09 C02 Ano2 1536.36
-C09 C02 Ano3 1396.69
-C09 C02 Ano4 1269.72
-C09 E1 Ano1 2840
-C09 E1 Ano2 2581.82
-C09 E1 Ano3 2347.11
-C09 E1 Ano4 2133.73
-C09 C03 Ano1 2190
-C09 C03 Ano2 1990.91
-C09 C03 Ano3 1809.92
-C09 C03 Ano4 1645.38
-C04 C03 Ano1 1170
-C04 C03 Ano2 1063.64
-C04 C03 Ano3 966.94
-C04 C03 Ano4 879.04
-C04 I3 Ano1 1320
-C04 I3 Ano2 1200
-C04 I3 Ano3 1090.91
-C04 I3 Ano4 991.74
-C06 I3 Ano1 150
-C06 I3 Ano2 136.36
-C06 I3 Ano3 123.97
-C06 I3 Ano4 112.7
-C08 C06 Ano1 1950
-C08 C06 Ano2 1772.73
-C08 C06 Ano3 1611.57
-C08 C06 Ano4 1465.06
-C08 I2 Ano1 1110
-C08 I2 Ano2 1009.09
-C08 I2 Ano3 917.36
-C08 I2 Ano4 833.96
-C07 C08 Ano1 930
-C07 C08 Ano2 845.45
-C07 C08 Ano3 768.6
-C07 C08 Ano4 698.72
-C07 I1 Ano1 1950
-C07 I1 Ano2 1772.73
-C07 I1 Ano3 1611.57
-C07 I1 Ano4 1465.06
-C07 C05 Ano1 2130
-C07 C05 Ano2 1936.36
-C07 C05 Ano3 1760.33
-C07 C05 Ano4 1600.3
-;
-
-# unit transport cost through arc (k,l) in time t
-param D :=
-C01 C09 Ano1 1.9
-C01 C02 Ano1 3.25
-C02 C09 Ano1 2.35
-C09 C02 Ano1 2.35
-C09 E1 Ano1 4.1
-C09 C03 Ano1 3.65
-C04 C03 Ano1 1.95
-C04 I3 Ano1 2.2
-C06 I3 Ano1 0.25
-C08 C06 Ano1 3.25
-C08 I2 Ano1 1.85
-C07 C08 Ano1 1.55
-C07 I1 Ano1 3.15
-C07 C05 Ano1 3.25
-C02 C03 Ano1 3.6
-C03 E1 Ano1 1.4
-C05 I1 Ano1 0.95
-I1 I2 Ano1 1.1
-I2 I3 Ano1 1.45
-I3 E1 Ano1 1.95
-C01 C09 Ano2 1.9
-C01 C02 Ano2 3.25
-C02 C09 Ano2 2.35
-C09 C02 Ano2 2.35
-C09 E1 Ano2 4.1
-C09 C03 Ano2 3.65
-C04 C03 Ano2 1.95
-C04 I3 Ano2 2.2
-C06 I3 Ano2 0.25
-C08 C06 Ano2 3.25
-C08 I2 Ano2 1.85
-C07 C08 Ano2 1.55
-C07 I1 Ano2 3.15
-C07 C05 Ano2 3.25
-C02 C03 Ano2 3.6
-C03 E1 Ano2 1.4
-C05 I1 Ano2 0.95
-I1 I2 Ano2 1.1
-I2 I3 Ano2 1.45
-I3 E1 Ano2 1.95
-C01 C09 Ano3 1.9
-C01 C02 Ano3 3.25
-C02 C09 Ano3 2.35
-C09 C02 Ano3 2.35
-C09 E1 Ano3 4.1
-C09 C03 Ano3 3.65
-C04 C03 Ano3 1.95
-C04 I3 Ano3 2.2
-C06 I3 Ano3 0.25
-C08 C06 Ano3 3.25
-C08 I2 Ano3 1.85
-C07 C08 Ano3 1.55
-C07 I1 Ano3 3.15
-C07 C05 Ano3 3.25
-C02 C03 Ano3 3.6
-C03 E1 Ano3 1.4
-C05 I1 Ano3 0.95
-I1 I2 Ano3 1.1
-I2 I3 Ano3 1.45
-I3 E1 Ano3 1.95
-C01 C09 Ano4 1.9
-C01 C02 Ano4 3.25
-C02 C09 Ano4 2.35
-C09 C02 Ano4 2.35
-C09 E1 Ano4 4.1
-C09 C03 Ano4 3.65
-C04 C03 Ano4 1.95
-C04 I3 Ano4 2.2
-C06 I3 Ano4 0.25
-C08 C06 Ano4 3.25
-C08 I2 Ano4 1.85
-C07 C08 Ano4 1.55
-C07 I1 Ano4 3.15
-C07 C05 Ano4 3.25
-C02 C03 Ano4 3.6
-C03 E1 Ano4 1.4
-C05 I1 Ano4 0.95
-I1 I2 Ano4 1.1
-I2 I3 Ano4 1.45
-I3 E1 Ano4 1.95
-;
-
-#
-# Stochastic Parameters
-#
-
-# sale price at exit e in time period t
-param R := E1 Ano1 45
- E1 Ano2 30
- E1 Ano3 30
- E1 Ano4 30 ;
-
-# upper and lower bounds on wood supplied
-param Zlb := Ano1 30000
- Ano2 10000
- Ano3 15000
- Ano4 12000 ;
-param Zub := Ano1 40000
- Ano2 18000
- Ano3 25000
- Ano4 17000 ;
-param yr:=
-Ano1 1
-Ano2 1
-Ano3 1
-Ano4 1
-;
-
-set COriginNodeForCell[U1]:= C01;
-set COriginNodeForCell[U2]:= C01;
-set COriginNodeForCell[U3]:= C09;
-set COriginNodeForCell[U4]:= C01;
-set COriginNodeForCell[U5]:= C09;
-set COriginNodeForCell[U6]:= C02;
-set COriginNodeForCell[U7]:= C02;
-set COriginNodeForCell[U8]:= C09;
-set COriginNodeForCell[U9]:= C02;
-set COriginNodeForCell[U10]:= C02;
-set COriginNodeForCell[U11]:= C04;
-set COriginNodeForCell[U12]:= C03;
-set COriginNodeForCell[U13]:= C03;
-set COriginNodeForCell[U14]:= C05;
-set COriginNodeForCell[U15]:= C04;
-set COriginNodeForCell[U16]:= C04;
-set COriginNodeForCell[U17]:= C06;
-set COriginNodeForCell[U18]:= C06;
-set COriginNodeForCell[U19]:= C06;
-set COriginNodeForCell[U20]:= C08;
-set COriginNodeForCell[U21]:= C08;
-set COriginNodeForCell[U22]:= C07;
-set COriginNodeForCell[U23]:= C05;
-set COriginNodeForCell[U24]:= C05;
-set COriginNodeForCell[U25]:= C07;
-
diff --git a/examples/pysp/forestry/unequalProbs/ForestChile17.dat b/examples/pysp/forestry/unequalProbs/ForestChile17.dat
deleted file mode 100644
index 13fb8cb97cb..00000000000
--- a/examples/pysp/forestry/unequalProbs/ForestChile17.dat
+++ /dev/null
@@ -1,562 +0,0 @@
-# fbv
-# mnr May 3, 2009
-
-# general nodes
-set Nodes := E1
- I1 I2 I3
- C01 C02 C03 C04 C05 C06 C07 C08 C09 ;
-
-# following the notation in the paper (note: nodes \equiv origins)
-
-#
-# Sets
-#
-
-set Times := Ano1 Ano2 Ano3 Ano4;
-
-set OriginNodes := C01 C02 C03 C04 C05 C06 C07 C08 C09 ;
-
-set IntersectionNodes := I1 I2 I3;
-
-set ExitNodes := E1;
-
-set HarvestCells := U1 U2 U3 U4 U5 U6 U7 U8 U9 U10 U11 U12 U13
- U14 U15 U16 U17 U18 U19 U20 U21 U22 U23 U24 U25;
-
-set HCellsForOrigin[C01] := U1 U2 U4 ;
-set HCellsForOrigin[C02] := U6 U7 U9 U10 ;
-set HCellsForOrigin[C03] := U12 U13 ;
-set HCellsForOrigin[C04] := U11 U15 U16 ;
-set HCellsForOrigin[C05] := U14 U23 U24 ;
-set HCellsForOrigin[C06] := U17 U18 U19 ;
-set HCellsForOrigin[C07] := U22 U25 ;
-set HCellsForOrigin[C08] := U20 U21 ;
-set HCellsForOrigin[C09] := U3 U5 U8 ;
-
-set ExistingRoads :=
-C02 C03
-C03 E1
-C05 I1
-I1 I2
-I2 I3
-I3 E1
-;
-
-set PotentialRoads :=
-C01 C09
-C01 C02
-C02 C09
-C09 C02
-C09 E1
-C09 C03
-C04 C03
-C04 I3
-C06 I3
-C08 C06
-C08 I2
-C07 C08
-C07 I1
-C07 C05
-;
-
-set AllRoads :=
-C02 C03
-C03 E1
-C05 I1
-I1 I2
-I2 I3
-I3 E1
-C01 C09
-C01 C02
-C02 C09
-C09 C02
-C09 E1
-C09 C03
-C04 C03
-C04 I3
-C06 I3
-C08 C06
-C08 I2
-C07 C08
-C07 I1
-C07 C05
-;
-
-#
-# Deterministic Parameters
-#
-
-# productivity of cell h if it is harvested in period t
-param a :=
-U1 Ano1 362
-U1 Ano2 362
-U1 Ano3 362
-U1 Ano4 362
-U2 Ano1 362
-U2 Ano2 362
-U2 Ano3 362
-U2 Ano4 362
-U3 Ano1 362
-U3 Ano2 362
-U3 Ano3 362
-U3 Ano4 362
-U4 Ano1 642
-U4 Ano2 642
-U4 Ano3 642
-U4 Ano4 642
-U5 Ano1 362
-U5 Ano2 362
-U5 Ano3 362
-U5 Ano4 362
-U6 Ano1 642
-U6 Ano2 642
-U6 Ano3 642
-U6 Ano4 642
-U7 Ano1 642
-U7 Ano2 642
-U7 Ano3 642
-U7 Ano4 642
-U8 Ano1 362
-U8 Ano2 362
-U8 Ano3 362
-U8 Ano4 362
-U9 Ano1 642
-U9 Ano2 642
-U9 Ano3 642
-U9 Ano4 642
-U10 Ano1 642
-U10 Ano2 642
-U10 Ano3 642
-U10 Ano4 642
-U11 Ano1 600
-U11 Ano2 600
-U11 Ano3 600
-U11 Ano4 600
-U12 Ano1 518
-U12 Ano2 518
-U12 Ano3 518
-U12 Ano4 518
-U13 Ano1 518
-U13 Ano2 518
-U13 Ano3 518
-U13 Ano4 518
-U14 Ano1 567
-U14 Ano2 567
-U14 Ano3 567
-U14 Ano4 567
-U15 Ano1 600
-U15 Ano2 600
-U15 Ano3 600
-U15 Ano4 600
-U16 Ano1 600
-U16 Ano2 600
-U16 Ano3 600
-U16 Ano4 600
-U17 Ano1 518
-U17 Ano2 518
-U17 Ano3 518
-U17 Ano4 518
-U18 Ano1 401
-U18 Ano2 401
-U18 Ano3 401
-U18 Ano4 401
-U19 Ano1 401
-U19 Ano2 401
-U19 Ano3 401
-U19 Ano4 401
-U20 Ano1 401
-U20 Ano2 401
-U20 Ano3 401
-U20 Ano4 401
-U21 Ano1 373
-U21 Ano2 373
-U21 Ano3 373
-U21 Ano4 373
-U22 Ano1 373
-U22 Ano2 373
-U22 Ano3 373
-U22 Ano4 373
-U23 Ano1 567
-U23 Ano2 567
-U23 Ano3 567
-U23 Ano4 567
-U24 Ano1 567
-U24 Ano2 567
-U24 Ano3 567
-U24 Ano4 567
-U25 Ano1 373
-U25 Ano2 373
-U25 Ano3 373
-U25 Ano4 373
-;
-
-# Area of cell h to be harvested
-param A :=
-U1 10.1
-U2 10.1
-U3 10.1
-U4 13.4
-U5 10.3
-U6 10.2
-U7 10.1
-U8 10.4
-U9 16.7
-U10 12.8
-U11 12.2
-U12 15.2
-U13 11.3
-U14 12.7
-U15 12.6
-U16 12.6
-U17 10
-U18 14.4
-U19 10.8
-U20 10.4
-U21 16.4
-U22 10
-U23 11.4
-U24 14.8
-U25 10.1
-;
-
-# harvesting cost of one hectare of cell h in time t
-param P :=
-U1 Ano1 8
-U1 Ano2 8
-U1 Ano3 8
-U1 Ano4 8
-U2 Ano1 8
-U2 Ano2 8
-U2 Ano3 8
-U2 Ano4 8
-U3 Ano1 8
-U3 Ano2 8
-U3 Ano3 8
-U3 Ano4 8
-U4 Ano1 8
-U4 Ano2 8
-U4 Ano3 8
-U4 Ano4 8
-U5 Ano1 8
-U5 Ano2 8
-U5 Ano3 8
-U5 Ano4 8
-U6 Ano1 8
-U6 Ano2 8
-U6 Ano3 8
-U6 Ano4 8
-U7 Ano1 8
-U7 Ano2 8
-U7 Ano3 8
-U7 Ano4 8
-U8 Ano1 8
-U8 Ano2 8
-U8 Ano3 8
-U8 Ano4 8
-U9 Ano1 8
-U9 Ano2 8
-U9 Ano3 8
-U9 Ano4 8
-U10 Ano1 8
-U10 Ano2 8
-U10 Ano3 8
-U10 Ano4 8
-U11 Ano1 8
-U11 Ano2 8
-U11 Ano3 8
-U11 Ano4 8
-U12 Ano1 8
-U12 Ano2 8
-U12 Ano3 8
-U12 Ano4 8
-U13 Ano1 8
-U13 Ano2 8
-U13 Ano3 8
-U13 Ano4 8
-U14 Ano1 8
-U14 Ano2 8
-U14 Ano3 8
-U14 Ano4 8
-U15 Ano1 8
-U15 Ano2 8
-U15 Ano3 8
-U15 Ano4 8
-U16 Ano1 8
-U16 Ano2 8
-U16 Ano3 8
-U16 Ano4 8
-U17 Ano1 8
-U17 Ano2 8
-U17 Ano3 8
-U17 Ano4 8
-U18 Ano1 8
-U18 Ano2 8
-U18 Ano3 8
-U18 Ano4 8
-U19 Ano1 8
-U19 Ano2 8
-U19 Ano3 8
-U19 Ano4 8
-U20 Ano1 8
-U20 Ano2 8
-U20 Ano3 8
-U20 Ano4 8
-U21 Ano1 8
-U21 Ano2 8
-U21 Ano3 8
-U21 Ano4 8
-U22 Ano1 8
-U22 Ano2 8
-U22 Ano3 8
-U22 Ano4 8
-U23 Ano1 8
-U23 Ano2 8
-U23 Ano3 8
-U23 Ano4 8
-U24 Ano1 8
-U24 Ano2 8
-U24 Ano3 8
-U24 Ano4 8
-U25 Ano1 8
-U25 Ano2 8
-U25 Ano3 8
-U25 Ano4 8
-;
-
-
-# prod cost
-param Q :=
-C01 Ano1 0.1
-C01 Ano2 0.1
-C01 Ano3 0.1
-C01 Ano4 0.1
-C02 Ano1 0.1
-C02 Ano2 0.1
-C02 Ano3 0.1
-C02 Ano4 0.1
-C03 Ano1 0.1
-C03 Ano2 0.1
-C03 Ano3 0.1
-C03 Ano4 0.1
-C04 Ano1 0.1
-C04 Ano2 0.1
-C04 Ano3 0.1
-C04 Ano4 0.1
-C05 Ano1 0.1
-C05 Ano2 0.1
-C05 Ano3 0.1
-C05 Ano4 0.1
-C06 Ano1 0.1
-C06 Ano2 0.1
-C06 Ano3 0.1
-C06 Ano4 0.1
-C07 Ano1 0.1
-C07 Ano2 0.1
-C07 Ano3 0.1
-C07 Ano4 0.1
-C08 Ano1 0.1
-C08 Ano2 0.1
-C08 Ano3 0.1
-C08 Ano4 0.1
-C09 Ano1 0.1
-C09 Ano2 0.1
-C09 Ano3 0.1
-C09 Ano4 0.1
-;
-
-# construction cost of one road in arc (k,l) in time t
-param C :=
-C01 C09 Ano1 1440
-C01 C09 Ano2 1309.09
-C01 C09 Ano3 1190.08
-C01 C09 Ano4 1081.89
-C01 C02 Ano1 1950
-C01 C02 Ano2 1772.73
-C01 C02 Ano3 1611.57
-C01 C02 Ano4 1465.06
-C02 C09 Ano1 1690
-C02 C09 Ano2 1536.36
-C02 C09 Ano3 1396.69
-C02 C09 Ano4 1269.72
-C09 C02 Ano1 1690
-C09 C02 Ano2 1536.36
-C09 C02 Ano3 1396.69
-C09 C02 Ano4 1269.72
-C09 E1 Ano1 2840
-C09 E1 Ano2 2581.82
-C09 E1 Ano3 2347.11
-C09 E1 Ano4 2133.73
-C09 C03 Ano1 2190
-C09 C03 Ano2 1990.91
-C09 C03 Ano3 1809.92
-C09 C03 Ano4 1645.38
-C04 C03 Ano1 1170
-C04 C03 Ano2 1063.64
-C04 C03 Ano3 966.94
-C04 C03 Ano4 879.04
-C04 I3 Ano1 1320
-C04 I3 Ano2 1200
-C04 I3 Ano3 1090.91
-C04 I3 Ano4 991.74
-C06 I3 Ano1 150
-C06 I3 Ano2 136.36
-C06 I3 Ano3 123.97
-C06 I3 Ano4 112.7
-C08 C06 Ano1 1950
-C08 C06 Ano2 1772.73
-C08 C06 Ano3 1611.57
-C08 C06 Ano4 1465.06
-C08 I2 Ano1 1110
-C08 I2 Ano2 1009.09
-C08 I2 Ano3 917.36
-C08 I2 Ano4 833.96
-C07 C08 Ano1 930
-C07 C08 Ano2 845.45
-C07 C08 Ano3 768.6
-C07 C08 Ano4 698.72
-C07 I1 Ano1 1950
-C07 I1 Ano2 1772.73
-C07 I1 Ano3 1611.57
-C07 I1 Ano4 1465.06
-C07 C05 Ano1 2130
-C07 C05 Ano2 1936.36
-C07 C05 Ano3 1760.33
-C07 C05 Ano4 1600.3
-;
-
-# unit transport cost through arc (k,l) in time t
-param D :=
-C01 C09 Ano1 1.9
-C01 C02 Ano1 3.25
-C02 C09 Ano1 2.35
-C09 C02 Ano1 2.35
-C09 E1 Ano1 4.1
-C09 C03 Ano1 3.65
-C04 C03 Ano1 1.95
-C04 I3 Ano1 2.2
-C06 I3 Ano1 0.25
-C08 C06 Ano1 3.25
-C08 I2 Ano1 1.85
-C07 C08 Ano1 1.55
-C07 I1 Ano1 3.15
-C07 C05 Ano1 3.25
-C02 C03 Ano1 3.6
-C03 E1 Ano1 1.4
-C05 I1 Ano1 0.95
-I1 I2 Ano1 1.1
-I2 I3 Ano1 1.45
-I3 E1 Ano1 1.95
-C01 C09 Ano2 1.9
-C01 C02 Ano2 3.25
-C02 C09 Ano2 2.35
-C09 C02 Ano2 2.35
-C09 E1 Ano2 4.1
-C09 C03 Ano2 3.65
-C04 C03 Ano2 1.95
-C04 I3 Ano2 2.2
-C06 I3 Ano2 0.25
-C08 C06 Ano2 3.25
-C08 I2 Ano2 1.85
-C07 C08 Ano2 1.55
-C07 I1 Ano2 3.15
-C07 C05 Ano2 3.25
-C02 C03 Ano2 3.6
-C03 E1 Ano2 1.4
-C05 I1 Ano2 0.95
-I1 I2 Ano2 1.1
-I2 I3 Ano2 1.45
-I3 E1 Ano2 1.95
-C01 C09 Ano3 1.9
-C01 C02 Ano3 3.25
-C02 C09 Ano3 2.35
-C09 C02 Ano3 2.35
-C09 E1 Ano3 4.1
-C09 C03 Ano3 3.65
-C04 C03 Ano3 1.95
-C04 I3 Ano3 2.2
-C06 I3 Ano3 0.25
-C08 C06 Ano3 3.25
-C08 I2 Ano3 1.85
-C07 C08 Ano3 1.55
-C07 I1 Ano3 3.15
-C07 C05 Ano3 3.25
-C02 C03 Ano3 3.6
-C03 E1 Ano3 1.4
-C05 I1 Ano3 0.95
-I1 I2 Ano3 1.1
-I2 I3 Ano3 1.45
-I3 E1 Ano3 1.95
-C01 C09 Ano4 1.9
-C01 C02 Ano4 3.25
-C02 C09 Ano4 2.35
-C09 C02 Ano4 2.35
-C09 E1 Ano4 4.1
-C09 C03 Ano4 3.65
-C04 C03 Ano4 1.95
-C04 I3 Ano4 2.2
-C06 I3 Ano4 0.25
-C08 C06 Ano4 3.25
-C08 I2 Ano4 1.85
-C07 C08 Ano4 1.55
-C07 I1 Ano4 3.15
-C07 C05 Ano4 3.25
-C02 C03 Ano4 3.6
-C03 E1 Ano4 1.4
-C05 I1 Ano4 0.95
-I1 I2 Ano4 1.1
-I2 I3 Ano4 1.45
-I3 E1 Ano4 1.95
-;
-
-#
-# Stochastic Parameters
-#
-
-# sale price at exit e in time period t
-param R := E1 Ano1 45
- E1 Ano2 30
- E1 Ano3 22
- E1 Ano4 35 ;
-
-# upper and lower bounds on wood supplied
-param Zlb := Ano1 30000
- Ano2 10000
- Ano3 12000
- Ano4 11000 ;
-param Zub := Ano1 40000
- Ano2 18000
- Ano3 22000
- Ano4 16000 ;
-param yr:=
-Ano1 1
-Ano2 1
-Ano3 1
-Ano4 1
-;
-
-set COriginNodeForCell[U1]:= C01;
-set COriginNodeForCell[U2]:= C01;
-set COriginNodeForCell[U3]:= C09;
-set COriginNodeForCell[U4]:= C01;
-set COriginNodeForCell[U5]:= C09;
-set COriginNodeForCell[U6]:= C02;
-set COriginNodeForCell[U7]:= C02;
-set COriginNodeForCell[U8]:= C09;
-set COriginNodeForCell[U9]:= C02;
-set COriginNodeForCell[U10]:= C02;
-set COriginNodeForCell[U11]:= C04;
-set COriginNodeForCell[U12]:= C03;
-set COriginNodeForCell[U13]:= C03;
-set COriginNodeForCell[U14]:= C05;
-set COriginNodeForCell[U15]:= C04;
-set COriginNodeForCell[U16]:= C04;
-set COriginNodeForCell[U17]:= C06;
-set COriginNodeForCell[U18]:= C06;
-set COriginNodeForCell[U19]:= C06;
-set COriginNodeForCell[U20]:= C08;
-set COriginNodeForCell[U21]:= C08;
-set COriginNodeForCell[U22]:= C07;
-set COriginNodeForCell[U23]:= C05;
-set COriginNodeForCell[U24]:= C05;
-set COriginNodeForCell[U25]:= C07;
-
diff --git a/examples/pysp/forestry/unequalProbs/ForestChile18.dat b/examples/pysp/forestry/unequalProbs/ForestChile18.dat
deleted file mode 100644
index dcbee19fa94..00000000000
--- a/examples/pysp/forestry/unequalProbs/ForestChile18.dat
+++ /dev/null
@@ -1,562 +0,0 @@
-# fbv
-# mnr May 3, 2009
-
-# general nodes
-set Nodes := E1
- I1 I2 I3
- C01 C02 C03 C04 C05 C06 C07 C08 C09 ;
-
-# following the notation in the paper (note: nodes \equiv origins)
-
-#
-# Sets
-#
-
-set Times := Ano1 Ano2 Ano3 Ano4;
-
-set OriginNodes := C01 C02 C03 C04 C05 C06 C07 C08 C09 ;
-
-set IntersectionNodes := I1 I2 I3;
-
-set ExitNodes := E1;
-
-set HarvestCells := U1 U2 U3 U4 U5 U6 U7 U8 U9 U10 U11 U12 U13
- U14 U15 U16 U17 U18 U19 U20 U21 U22 U23 U24 U25;
-
-set HCellsForOrigin[C01] := U1 U2 U4 ;
-set HCellsForOrigin[C02] := U6 U7 U9 U10 ;
-set HCellsForOrigin[C03] := U12 U13 ;
-set HCellsForOrigin[C04] := U11 U15 U16 ;
-set HCellsForOrigin[C05] := U14 U23 U24 ;
-set HCellsForOrigin[C06] := U17 U18 U19 ;
-set HCellsForOrigin[C07] := U22 U25 ;
-set HCellsForOrigin[C08] := U20 U21 ;
-set HCellsForOrigin[C09] := U3 U5 U8 ;
-
-set ExistingRoads :=
-C02 C03
-C03 E1
-C05 I1
-I1 I2
-I2 I3
-I3 E1
-;
-
-set PotentialRoads :=
-C01 C09
-C01 C02
-C02 C09
-C09 C02
-C09 E1
-C09 C03
-C04 C03
-C04 I3
-C06 I3
-C08 C06
-C08 I2
-C07 C08
-C07 I1
-C07 C05
-;
-
-set AllRoads :=
-C02 C03
-C03 E1
-C05 I1
-I1 I2
-I2 I3
-I3 E1
-C01 C09
-C01 C02
-C02 C09
-C09 C02
-C09 E1
-C09 C03
-C04 C03
-C04 I3
-C06 I3
-C08 C06
-C08 I2
-C07 C08
-C07 I1
-C07 C05
-;
-
-#
-# Deterministic Parameters
-#
-
-# productivity of cell h if it is harvested in period t
-param a :=
-U1 Ano1 362
-U1 Ano2 362
-U1 Ano3 362
-U1 Ano4 362
-U2 Ano1 362
-U2 Ano2 362
-U2 Ano3 362
-U2 Ano4 362
-U3 Ano1 362
-U3 Ano2 362
-U3 Ano3 362
-U3 Ano4 362
-U4 Ano1 642
-U4 Ano2 642
-U4 Ano3 642
-U4 Ano4 642
-U5 Ano1 362
-U5 Ano2 362
-U5 Ano3 362
-U5 Ano4 362
-U6 Ano1 642
-U6 Ano2 642
-U6 Ano3 642
-U6 Ano4 642
-U7 Ano1 642
-U7 Ano2 642
-U7 Ano3 642
-U7 Ano4 642
-U8 Ano1 362
-U8 Ano2 362
-U8 Ano3 362
-U8 Ano4 362
-U9 Ano1 642
-U9 Ano2 642
-U9 Ano3 642
-U9 Ano4 642
-U10 Ano1 642
-U10 Ano2 642
-U10 Ano3 642
-U10 Ano4 642
-U11 Ano1 600
-U11 Ano2 600
-U11 Ano3 600
-U11 Ano4 600
-U12 Ano1 518
-U12 Ano2 518
-U12 Ano3 518
-U12 Ano4 518
-U13 Ano1 518
-U13 Ano2 518
-U13 Ano3 518
-U13 Ano4 518
-U14 Ano1 567
-U14 Ano2 567
-U14 Ano3 567
-U14 Ano4 567
-U15 Ano1 600
-U15 Ano2 600
-U15 Ano3 600
-U15 Ano4 600
-U16 Ano1 600
-U16 Ano2 600
-U16 Ano3 600
-U16 Ano4 600
-U17 Ano1 518
-U17 Ano2 518
-U17 Ano3 518
-U17 Ano4 518
-U18 Ano1 401
-U18 Ano2 401
-U18 Ano3 401
-U18 Ano4 401
-U19 Ano1 401
-U19 Ano2 401
-U19 Ano3 401
-U19 Ano4 401
-U20 Ano1 401
-U20 Ano2 401
-U20 Ano3 401
-U20 Ano4 401
-U21 Ano1 373
-U21 Ano2 373
-U21 Ano3 373
-U21 Ano4 373
-U22 Ano1 373
-U22 Ano2 373
-U22 Ano3 373
-U22 Ano4 373
-U23 Ano1 567
-U23 Ano2 567
-U23 Ano3 567
-U23 Ano4 567
-U24 Ano1 567
-U24 Ano2 567
-U24 Ano3 567
-U24 Ano4 567
-U25 Ano1 373
-U25 Ano2 373
-U25 Ano3 373
-U25 Ano4 373
-;
-
-# Area of cell h to be harvested
-param A :=
-U1 10.1
-U2 10.1
-U3 10.1
-U4 13.4
-U5 10.3
-U6 10.2
-U7 10.1
-U8 10.4
-U9 16.7
-U10 12.8
-U11 12.2
-U12 15.2
-U13 11.3
-U14 12.7
-U15 12.6
-U16 12.6
-U17 10
-U18 14.4
-U19 10.8
-U20 10.4
-U21 16.4
-U22 10
-U23 11.4
-U24 14.8
-U25 10.1
-;
-
-# harvesting cost of one hectare of cell h in time t
-param P :=
-U1 Ano1 8
-U1 Ano2 8
-U1 Ano3 8
-U1 Ano4 8
-U2 Ano1 8
-U2 Ano2 8
-U2 Ano3 8
-U2 Ano4 8
-U3 Ano1 8
-U3 Ano2 8
-U3 Ano3 8
-U3 Ano4 8
-U4 Ano1 8
-U4 Ano2 8
-U4 Ano3 8
-U4 Ano4 8
-U5 Ano1 8
-U5 Ano2 8
-U5 Ano3 8
-U5 Ano4 8
-U6 Ano1 8
-U6 Ano2 8
-U6 Ano3 8
-U6 Ano4 8
-U7 Ano1 8
-U7 Ano2 8
-U7 Ano3 8
-U7 Ano4 8
-U8 Ano1 8
-U8 Ano2 8
-U8 Ano3 8
-U8 Ano4 8
-U9 Ano1 8
-U9 Ano2 8
-U9 Ano3 8
-U9 Ano4 8
-U10 Ano1 8
-U10 Ano2 8
-U10 Ano3 8
-U10 Ano4 8
-U11 Ano1 8
-U11 Ano2 8
-U11 Ano3 8
-U11 Ano4 8
-U12 Ano1 8
-U12 Ano2 8
-U12 Ano3 8
-U12 Ano4 8
-U13 Ano1 8
-U13 Ano2 8
-U13 Ano3 8
-U13 Ano4 8
-U14 Ano1 8
-U14 Ano2 8
-U14 Ano3 8
-U14 Ano4 8
-U15 Ano1 8
-U15 Ano2 8
-U15 Ano3 8
-U15 Ano4 8
-U16 Ano1 8
-U16 Ano2 8
-U16 Ano3 8
-U16 Ano4 8
-U17 Ano1 8
-U17 Ano2 8
-U17 Ano3 8
-U17 Ano4 8
-U18 Ano1 8
-U18 Ano2 8
-U18 Ano3 8
-U18 Ano4 8
-U19 Ano1 8
-U19 Ano2 8
-U19 Ano3 8
-U19 Ano4 8
-U20 Ano1 8
-U20 Ano2 8
-U20 Ano3 8
-U20 Ano4 8
-U21 Ano1 8
-U21 Ano2 8
-U21 Ano3 8
-U21 Ano4 8
-U22 Ano1 8
-U22 Ano2 8
-U22 Ano3 8
-U22 Ano4 8
-U23 Ano1 8
-U23 Ano2 8
-U23 Ano3 8
-U23 Ano4 8
-U24 Ano1 8
-U24 Ano2 8
-U24 Ano3 8
-U24 Ano4 8
-U25 Ano1 8
-U25 Ano2 8
-U25 Ano3 8
-U25 Ano4 8
-;
-
-
-# prod cost
-param Q :=
-C01 Ano1 0.1
-C01 Ano2 0.1
-C01 Ano3 0.1
-C01 Ano4 0.1
-C02 Ano1 0.1
-C02 Ano2 0.1
-C02 Ano3 0.1
-C02 Ano4 0.1
-C03 Ano1 0.1
-C03 Ano2 0.1
-C03 Ano3 0.1
-C03 Ano4 0.1
-C04 Ano1 0.1
-C04 Ano2 0.1
-C04 Ano3 0.1
-C04 Ano4 0.1
-C05 Ano1 0.1
-C05 Ano2 0.1
-C05 Ano3 0.1
-C05 Ano4 0.1
-C06 Ano1 0.1
-C06 Ano2 0.1
-C06 Ano3 0.1
-C06 Ano4 0.1
-C07 Ano1 0.1
-C07 Ano2 0.1
-C07 Ano3 0.1
-C07 Ano4 0.1
-C08 Ano1 0.1
-C08 Ano2 0.1
-C08 Ano3 0.1
-C08 Ano4 0.1
-C09 Ano1 0.1
-C09 Ano2 0.1
-C09 Ano3 0.1
-C09 Ano4 0.1
-;
-
-# construction cost of one road in arc (k,l) in time t
-param C :=
-C01 C09 Ano1 1440
-C01 C09 Ano2 1309.09
-C01 C09 Ano3 1190.08
-C01 C09 Ano4 1081.89
-C01 C02 Ano1 1950
-C01 C02 Ano2 1772.73
-C01 C02 Ano3 1611.57
-C01 C02 Ano4 1465.06
-C02 C09 Ano1 1690
-C02 C09 Ano2 1536.36
-C02 C09 Ano3 1396.69
-C02 C09 Ano4 1269.72
-C09 C02 Ano1 1690
-C09 C02 Ano2 1536.36
-C09 C02 Ano3 1396.69
-C09 C02 Ano4 1269.72
-C09 E1 Ano1 2840
-C09 E1 Ano2 2581.82
-C09 E1 Ano3 2347.11
-C09 E1 Ano4 2133.73
-C09 C03 Ano1 2190
-C09 C03 Ano2 1990.91
-C09 C03 Ano3 1809.92
-C09 C03 Ano4 1645.38
-C04 C03 Ano1 1170
-C04 C03 Ano2 1063.64
-C04 C03 Ano3 966.94
-C04 C03 Ano4 879.04
-C04 I3 Ano1 1320
-C04 I3 Ano2 1200
-C04 I3 Ano3 1090.91
-C04 I3 Ano4 991.74
-C06 I3 Ano1 150
-C06 I3 Ano2 136.36
-C06 I3 Ano3 123.97
-C06 I3 Ano4 112.7
-C08 C06 Ano1 1950
-C08 C06 Ano2 1772.73
-C08 C06 Ano3 1611.57
-C08 C06 Ano4 1465.06
-C08 I2 Ano1 1110
-C08 I2 Ano2 1009.09
-C08 I2 Ano3 917.36
-C08 I2 Ano4 833.96
-C07 C08 Ano1 930
-C07 C08 Ano2 845.45
-C07 C08 Ano3 768.6
-C07 C08 Ano4 698.72
-C07 I1 Ano1 1950
-C07 I1 Ano2 1772.73
-C07 I1 Ano3 1611.57
-C07 I1 Ano4 1465.06
-C07 C05 Ano1 2130
-C07 C05 Ano2 1936.36
-C07 C05 Ano3 1760.33
-C07 C05 Ano4 1600.3
-;
-
-# unit transport cost through arc (k,l) in time t
-param D :=
-C01 C09 Ano1 1.9
-C01 C02 Ano1 3.25
-C02 C09 Ano1 2.35
-C09 C02 Ano1 2.35
-C09 E1 Ano1 4.1
-C09 C03 Ano1 3.65
-C04 C03 Ano1 1.95
-C04 I3 Ano1 2.2
-C06 I3 Ano1 0.25
-C08 C06 Ano1 3.25
-C08 I2 Ano1 1.85
-C07 C08 Ano1 1.55
-C07 I1 Ano1 3.15
-C07 C05 Ano1 3.25
-C02 C03 Ano1 3.6
-C03 E1 Ano1 1.4
-C05 I1 Ano1 0.95
-I1 I2 Ano1 1.1
-I2 I3 Ano1 1.45
-I3 E1 Ano1 1.95
-C01 C09 Ano2 1.9
-C01 C02 Ano2 3.25
-C02 C09 Ano2 2.35
-C09 C02 Ano2 2.35
-C09 E1 Ano2 4.1
-C09 C03 Ano2 3.65
-C04 C03 Ano2 1.95
-C04 I3 Ano2 2.2
-C06 I3 Ano2 0.25
-C08 C06 Ano2 3.25
-C08 I2 Ano2 1.85
-C07 C08 Ano2 1.55
-C07 I1 Ano2 3.15
-C07 C05 Ano2 3.25
-C02 C03 Ano2 3.6
-C03 E1 Ano2 1.4
-C05 I1 Ano2 0.95
-I1 I2 Ano2 1.1
-I2 I3 Ano2 1.45
-I3 E1 Ano2 1.95
-C01 C09 Ano3 1.9
-C01 C02 Ano3 3.25
-C02 C09 Ano3 2.35
-C09 C02 Ano3 2.35
-C09 E1 Ano3 4.1
-C09 C03 Ano3 3.65
-C04 C03 Ano3 1.95
-C04 I3 Ano3 2.2
-C06 I3 Ano3 0.25
-C08 C06 Ano3 3.25
-C08 I2 Ano3 1.85
-C07 C08 Ano3 1.55
-C07 I1 Ano3 3.15
-C07 C05 Ano3 3.25
-C02 C03 Ano3 3.6
-C03 E1 Ano3 1.4
-C05 I1 Ano3 0.95
-I1 I2 Ano3 1.1
-I2 I3 Ano3 1.45
-I3 E1 Ano3 1.95
-C01 C09 Ano4 1.9
-C01 C02 Ano4 3.25
-C02 C09 Ano4 2.35
-C09 C02 Ano4 2.35
-C09 E1 Ano4 4.1
-C09 C03 Ano4 3.65
-C04 C03 Ano4 1.95
-C04 I3 Ano4 2.2
-C06 I3 Ano4 0.25
-C08 C06 Ano4 3.25
-C08 I2 Ano4 1.85
-C07 C08 Ano4 1.55
-C07 I1 Ano4 3.15
-C07 C05 Ano4 3.25
-C02 C03 Ano4 3.6
-C03 E1 Ano4 1.4
-C05 I1 Ano4 0.95
-I1 I2 Ano4 1.1
-I2 I3 Ano4 1.45
-I3 E1 Ano4 1.95
-;
-
-#
-# Stochastic Parameters
-#
-
-# sale price at exit e in time period t
-param R := E1 Ano1 45
- E1 Ano2 30
- E1 Ano3 22
- E1 Ano4 20 ;
-
-# upper and lower bounds on wood supplied
-param Zlb := Ano1 30000
- Ano2 10000
- Ano3 12000
- Ano4 10000 ;
-param Zub := Ano1 40000
- Ano2 18000
- Ano3 22000
- Ano4 15000 ;
-param yr:=
-Ano1 1
-Ano2 1
-Ano3 1
-Ano4 1
-;
-
-set COriginNodeForCell[U1]:= C01;
-set COriginNodeForCell[U2]:= C01;
-set COriginNodeForCell[U3]:= C09;
-set COriginNodeForCell[U4]:= C01;
-set COriginNodeForCell[U5]:= C09;
-set COriginNodeForCell[U6]:= C02;
-set COriginNodeForCell[U7]:= C02;
-set COriginNodeForCell[U8]:= C09;
-set COriginNodeForCell[U9]:= C02;
-set COriginNodeForCell[U10]:= C02;
-set COriginNodeForCell[U11]:= C04;
-set COriginNodeForCell[U12]:= C03;
-set COriginNodeForCell[U13]:= C03;
-set COriginNodeForCell[U14]:= C05;
-set COriginNodeForCell[U15]:= C04;
-set COriginNodeForCell[U16]:= C04;
-set COriginNodeForCell[U17]:= C06;
-set COriginNodeForCell[U18]:= C06;
-set COriginNodeForCell[U19]:= C06;
-set COriginNodeForCell[U20]:= C08;
-set COriginNodeForCell[U21]:= C08;
-set COriginNodeForCell[U22]:= C07;
-set COriginNodeForCell[U23]:= C05;
-set COriginNodeForCell[U24]:= C05;
-set COriginNodeForCell[U25]:= C07;
-
diff --git a/examples/pysp/forestry/unequalProbs/ForestChile2.dat b/examples/pysp/forestry/unequalProbs/ForestChile2.dat
deleted file mode 100644
index cf039abfc41..00000000000
--- a/examples/pysp/forestry/unequalProbs/ForestChile2.dat
+++ /dev/null
@@ -1,562 +0,0 @@
-# fbv
-# mnr May 3, 2009
-
-# general nodes
-set Nodes := E1
- I1 I2 I3
- C01 C02 C03 C04 C05 C06 C07 C08 C09 ;
-
-# following the notation in the paper (note: nodes \equiv origins)
-
-#
-# Sets
-#
-
-set Times := Ano1 Ano2 Ano3 Ano4;
-
-set OriginNodes := C01 C02 C03 C04 C05 C06 C07 C08 C09 ;
-
-set IntersectionNodes := I1 I2 I3;
-
-set ExitNodes := E1;
-
-set HarvestCells := U1 U2 U3 U4 U5 U6 U7 U8 U9 U10 U11 U12 U13
- U14 U15 U16 U17 U18 U19 U20 U21 U22 U23 U24 U25;
-
-set HCellsForOrigin[C01] := U1 U2 U4 ;
-set HCellsForOrigin[C02] := U6 U7 U9 U10 ;
-set HCellsForOrigin[C03] := U12 U13 ;
-set HCellsForOrigin[C04] := U11 U15 U16 ;
-set HCellsForOrigin[C05] := U14 U23 U24 ;
-set HCellsForOrigin[C06] := U17 U18 U19 ;
-set HCellsForOrigin[C07] := U22 U25 ;
-set HCellsForOrigin[C08] := U20 U21 ;
-set HCellsForOrigin[C09] := U3 U5 U8 ;
-
-set ExistingRoads :=
-C02 C03
-C03 E1
-C05 I1
-I1 I2
-I2 I3
-I3 E1
-;
-
-set PotentialRoads :=
-C01 C09
-C01 C02
-C02 C09
-C09 C02
-C09 E1
-C09 C03
-C04 C03
-C04 I3
-C06 I3
-C08 C06
-C08 I2
-C07 C08
-C07 I1
-C07 C05
-;
-
-set AllRoads :=
-C02 C03
-C03 E1
-C05 I1
-I1 I2
-I2 I3
-I3 E1
-C01 C09
-C01 C02
-C02 C09
-C09 C02
-C09 E1
-C09 C03
-C04 C03
-C04 I3
-C06 I3
-C08 C06
-C08 I2
-C07 C08
-C07 I1
-C07 C05
-;
-
-#
-# Deterministic Parameters
-#
-
-# productivity of cell h if it is harvested in period t
-param a :=
-U1 Ano1 362
-U1 Ano2 362
-U1 Ano3 362
-U1 Ano4 362
-U2 Ano1 362
-U2 Ano2 362
-U2 Ano3 362
-U2 Ano4 362
-U3 Ano1 362
-U3 Ano2 362
-U3 Ano3 362
-U3 Ano4 362
-U4 Ano1 642
-U4 Ano2 642
-U4 Ano3 642
-U4 Ano4 642
-U5 Ano1 362
-U5 Ano2 362
-U5 Ano3 362
-U5 Ano4 362
-U6 Ano1 642
-U6 Ano2 642
-U6 Ano3 642
-U6 Ano4 642
-U7 Ano1 642
-U7 Ano2 642
-U7 Ano3 642
-U7 Ano4 642
-U8 Ano1 362
-U8 Ano2 362
-U8 Ano3 362
-U8 Ano4 362
-U9 Ano1 642
-U9 Ano2 642
-U9 Ano3 642
-U9 Ano4 642
-U10 Ano1 642
-U10 Ano2 642
-U10 Ano3 642
-U10 Ano4 642
-U11 Ano1 600
-U11 Ano2 600
-U11 Ano3 600
-U11 Ano4 600
-U12 Ano1 518
-U12 Ano2 518
-U12 Ano3 518
-U12 Ano4 518
-U13 Ano1 518
-U13 Ano2 518
-U13 Ano3 518
-U13 Ano4 518
-U14 Ano1 567
-U14 Ano2 567
-U14 Ano3 567
-U14 Ano4 567
-U15 Ano1 600
-U15 Ano2 600
-U15 Ano3 600
-U15 Ano4 600
-U16 Ano1 600
-U16 Ano2 600
-U16 Ano3 600
-U16 Ano4 600
-U17 Ano1 518
-U17 Ano2 518
-U17 Ano3 518
-U17 Ano4 518
-U18 Ano1 401
-U18 Ano2 401
-U18 Ano3 401
-U18 Ano4 401
-U19 Ano1 401
-U19 Ano2 401
-U19 Ano3 401
-U19 Ano4 401
-U20 Ano1 401
-U20 Ano2 401
-U20 Ano3 401
-U20 Ano4 401
-U21 Ano1 373
-U21 Ano2 373
-U21 Ano3 373
-U21 Ano4 373
-U22 Ano1 373
-U22 Ano2 373
-U22 Ano3 373
-U22 Ano4 373
-U23 Ano1 567
-U23 Ano2 567
-U23 Ano3 567
-U23 Ano4 567
-U24 Ano1 567
-U24 Ano2 567
-U24 Ano3 567
-U24 Ano4 567
-U25 Ano1 373
-U25 Ano2 373
-U25 Ano3 373
-U25 Ano4 373
-;
-
-# Area of cell h to be harvested
-param A :=
-U1 10.1
-U2 10.1
-U3 10.1
-U4 13.4
-U5 10.3
-U6 10.2
-U7 10.1
-U8 10.4
-U9 16.7
-U10 12.8
-U11 12.2
-U12 15.2
-U13 11.3
-U14 12.7
-U15 12.6
-U16 12.6
-U17 10
-U18 14.4
-U19 10.8
-U20 10.4
-U21 16.4
-U22 10
-U23 11.4
-U24 14.8
-U25 10.1
-;
-
-# harvesting cost of one hectare of cell h in time t
-param P :=
-U1 Ano1 8
-U1 Ano2 8
-U1 Ano3 8
-U1 Ano4 8
-U2 Ano1 8
-U2 Ano2 8
-U2 Ano3 8
-U2 Ano4 8
-U3 Ano1 8
-U3 Ano2 8
-U3 Ano3 8
-U3 Ano4 8
-U4 Ano1 8
-U4 Ano2 8
-U4 Ano3 8
-U4 Ano4 8
-U5 Ano1 8
-U5 Ano2 8
-U5 Ano3 8
-U5 Ano4 8
-U6 Ano1 8
-U6 Ano2 8
-U6 Ano3 8
-U6 Ano4 8
-U7 Ano1 8
-U7 Ano2 8
-U7 Ano3 8
-U7 Ano4 8
-U8 Ano1 8
-U8 Ano2 8
-U8 Ano3 8
-U8 Ano4 8
-U9 Ano1 8
-U9 Ano2 8
-U9 Ano3 8
-U9 Ano4 8
-U10 Ano1 8
-U10 Ano2 8
-U10 Ano3 8
-U10 Ano4 8
-U11 Ano1 8
-U11 Ano2 8
-U11 Ano3 8
-U11 Ano4 8
-U12 Ano1 8
-U12 Ano2 8
-U12 Ano3 8
-U12 Ano4 8
-U13 Ano1 8
-U13 Ano2 8
-U13 Ano3 8
-U13 Ano4 8
-U14 Ano1 8
-U14 Ano2 8
-U14 Ano3 8
-U14 Ano4 8
-U15 Ano1 8
-U15 Ano2 8
-U15 Ano3 8
-U15 Ano4 8
-U16 Ano1 8
-U16 Ano2 8
-U16 Ano3 8
-U16 Ano4 8
-U17 Ano1 8
-U17 Ano2 8
-U17 Ano3 8
-U17 Ano4 8
-U18 Ano1 8
-U18 Ano2 8
-U18 Ano3 8
-U18 Ano4 8
-U19 Ano1 8
-U19 Ano2 8
-U19 Ano3 8
-U19 Ano4 8
-U20 Ano1 8
-U20 Ano2 8
-U20 Ano3 8
-U20 Ano4 8
-U21 Ano1 8
-U21 Ano2 8
-U21 Ano3 8
-U21 Ano4 8
-U22 Ano1 8
-U22 Ano2 8
-U22 Ano3 8
-U22 Ano4 8
-U23 Ano1 8
-U23 Ano2 8
-U23 Ano3 8
-U23 Ano4 8
-U24 Ano1 8
-U24 Ano2 8
-U24 Ano3 8
-U24 Ano4 8
-U25 Ano1 8
-U25 Ano2 8
-U25 Ano3 8
-U25 Ano4 8
-;
-
-
-# prod cost
-param Q :=
-C01 Ano1 0.1
-C01 Ano2 0.1
-C01 Ano3 0.1
-C01 Ano4 0.1
-C02 Ano1 0.1
-C02 Ano2 0.1
-C02 Ano3 0.1
-C02 Ano4 0.1
-C03 Ano1 0.1
-C03 Ano2 0.1
-C03 Ano3 0.1
-C03 Ano4 0.1
-C04 Ano1 0.1
-C04 Ano2 0.1
-C04 Ano3 0.1
-C04 Ano4 0.1
-C05 Ano1 0.1
-C05 Ano2 0.1
-C05 Ano3 0.1
-C05 Ano4 0.1
-C06 Ano1 0.1
-C06 Ano2 0.1
-C06 Ano3 0.1
-C06 Ano4 0.1
-C07 Ano1 0.1
-C07 Ano2 0.1
-C07 Ano3 0.1
-C07 Ano4 0.1
-C08 Ano1 0.1
-C08 Ano2 0.1
-C08 Ano3 0.1
-C08 Ano4 0.1
-C09 Ano1 0.1
-C09 Ano2 0.1
-C09 Ano3 0.1
-C09 Ano4 0.1
-;
-
-# construction cost of one road in arc (k,l) in time t
-param C :=
-C01 C09 Ano1 1440
-C01 C09 Ano2 1309.09
-C01 C09 Ano3 1190.08
-C01 C09 Ano4 1081.89
-C01 C02 Ano1 1950
-C01 C02 Ano2 1772.73
-C01 C02 Ano3 1611.57
-C01 C02 Ano4 1465.06
-C02 C09 Ano1 1690
-C02 C09 Ano2 1536.36
-C02 C09 Ano3 1396.69
-C02 C09 Ano4 1269.72
-C09 C02 Ano1 1690
-C09 C02 Ano2 1536.36
-C09 C02 Ano3 1396.69
-C09 C02 Ano4 1269.72
-C09 E1 Ano1 2840
-C09 E1 Ano2 2581.82
-C09 E1 Ano3 2347.11
-C09 E1 Ano4 2133.73
-C09 C03 Ano1 2190
-C09 C03 Ano2 1990.91
-C09 C03 Ano3 1809.92
-C09 C03 Ano4 1645.38
-C04 C03 Ano1 1170
-C04 C03 Ano2 1063.64
-C04 C03 Ano3 966.94
-C04 C03 Ano4 879.04
-C04 I3 Ano1 1320
-C04 I3 Ano2 1200
-C04 I3 Ano3 1090.91
-C04 I3 Ano4 991.74
-C06 I3 Ano1 150
-C06 I3 Ano2 136.36
-C06 I3 Ano3 123.97
-C06 I3 Ano4 112.7
-C08 C06 Ano1 1950
-C08 C06 Ano2 1772.73
-C08 C06 Ano3 1611.57
-C08 C06 Ano4 1465.06
-C08 I2 Ano1 1110
-C08 I2 Ano2 1009.09
-C08 I2 Ano3 917.36
-C08 I2 Ano4 833.96
-C07 C08 Ano1 930
-C07 C08 Ano2 845.45
-C07 C08 Ano3 768.6
-C07 C08 Ano4 698.72
-C07 I1 Ano1 1950
-C07 I1 Ano2 1772.73
-C07 I1 Ano3 1611.57
-C07 I1 Ano4 1465.06
-C07 C05 Ano1 2130
-C07 C05 Ano2 1936.36
-C07 C05 Ano3 1760.33
-C07 C05 Ano4 1600.3
-;
-
-# unit transport cost through arc (k,l) in time t
-param D :=
-C01 C09 Ano1 1.9
-C01 C02 Ano1 3.25
-C02 C09 Ano1 2.35
-C09 C02 Ano1 2.35
-C09 E1 Ano1 4.1
-C09 C03 Ano1 3.65
-C04 C03 Ano1 1.95
-C04 I3 Ano1 2.2
-C06 I3 Ano1 0.25
-C08 C06 Ano1 3.25
-C08 I2 Ano1 1.85
-C07 C08 Ano1 1.55
-C07 I1 Ano1 3.15
-C07 C05 Ano1 3.25
-C02 C03 Ano1 3.6
-C03 E1 Ano1 1.4
-C05 I1 Ano1 0.95
-I1 I2 Ano1 1.1
-I2 I3 Ano1 1.45
-I3 E1 Ano1 1.95
-C01 C09 Ano2 1.9
-C01 C02 Ano2 3.25
-C02 C09 Ano2 2.35
-C09 C02 Ano2 2.35
-C09 E1 Ano2 4.1
-C09 C03 Ano2 3.65
-C04 C03 Ano2 1.95
-C04 I3 Ano2 2.2
-C06 I3 Ano2 0.25
-C08 C06 Ano2 3.25
-C08 I2 Ano2 1.85
-C07 C08 Ano2 1.55
-C07 I1 Ano2 3.15
-C07 C05 Ano2 3.25
-C02 C03 Ano2 3.6
-C03 E1 Ano2 1.4
-C05 I1 Ano2 0.95
-I1 I2 Ano2 1.1
-I2 I3 Ano2 1.45
-I3 E1 Ano2 1.95
-C01 C09 Ano3 1.9
-C01 C02 Ano3 3.25
-C02 C09 Ano3 2.35
-C09 C02 Ano3 2.35
-C09 E1 Ano3 4.1
-C09 C03 Ano3 3.65
-C04 C03 Ano3 1.95
-C04 I3 Ano3 2.2
-C06 I3 Ano3 0.25
-C08 C06 Ano3 3.25
-C08 I2 Ano3 1.85
-C07 C08 Ano3 1.55
-C07 I1 Ano3 3.15
-C07 C05 Ano3 3.25
-C02 C03 Ano3 3.6
-C03 E1 Ano3 1.4
-C05 I1 Ano3 0.95
-I1 I2 Ano3 1.1
-I2 I3 Ano3 1.45
-I3 E1 Ano3 1.95
-C01 C09 Ano4 1.9
-C01 C02 Ano4 3.25
-C02 C09 Ano4 2.35
-C09 C02 Ano4 2.35
-C09 E1 Ano4 4.1
-C09 C03 Ano4 3.65
-C04 C03 Ano4 1.95
-C04 I3 Ano4 2.2
-C06 I3 Ano4 0.25
-C08 C06 Ano4 3.25
-C08 I2 Ano4 1.85
-C07 C08 Ano4 1.55
-C07 I1 Ano4 3.15
-C07 C05 Ano4 3.25
-C02 C03 Ano4 3.6
-C03 E1 Ano4 1.4
-C05 I1 Ano4 0.95
-I1 I2 Ano4 1.1
-I2 I3 Ano4 1.45
-I3 E1 Ano4 1.95
-;
-
-#
-# Stochastic Parameters
-#
-
-# sale price at exit e in time period t
-param R := E1 Ano1 45
- E1 Ano2 60
- E1 Ano3 65
- E1 Ano4 57 ;
-
-# upper and lower bounds on wood supplied
-param Zlb := Ano1 30000
- Ano2 27000
- Ano3 28000
- Ano4 20000 ;
-param Zub := Ano1 40000
- Ano2 50000
- Ano3 52000
- Ano4 51000 ;
-param yr:=
-Ano1 1
-Ano2 1
-Ano3 1
-Ano4 1
-;
-
-set COriginNodeForCell[U1]:= C01;
-set COriginNodeForCell[U2]:= C01;
-set COriginNodeForCell[U3]:= C09;
-set COriginNodeForCell[U4]:= C01;
-set COriginNodeForCell[U5]:= C09;
-set COriginNodeForCell[U6]:= C02;
-set COriginNodeForCell[U7]:= C02;
-set COriginNodeForCell[U8]:= C09;
-set COriginNodeForCell[U9]:= C02;
-set COriginNodeForCell[U10]:= C02;
-set COriginNodeForCell[U11]:= C04;
-set COriginNodeForCell[U12]:= C03;
-set COriginNodeForCell[U13]:= C03;
-set COriginNodeForCell[U14]:= C05;
-set COriginNodeForCell[U15]:= C04;
-set COriginNodeForCell[U16]:= C04;
-set COriginNodeForCell[U17]:= C06;
-set COriginNodeForCell[U18]:= C06;
-set COriginNodeForCell[U19]:= C06;
-set COriginNodeForCell[U20]:= C08;
-set COriginNodeForCell[U21]:= C08;
-set COriginNodeForCell[U22]:= C07;
-set COriginNodeForCell[U23]:= C05;
-set COriginNodeForCell[U24]:= C05;
-set COriginNodeForCell[U25]:= C07;
-
diff --git a/examples/pysp/forestry/unequalProbs/ForestChile3.dat b/examples/pysp/forestry/unequalProbs/ForestChile3.dat
deleted file mode 100644
index 5624038a5b0..00000000000
--- a/examples/pysp/forestry/unequalProbs/ForestChile3.dat
+++ /dev/null
@@ -1,562 +0,0 @@
-# fbv
-# mnr May 3, 2009
-
-# general nodes
-set Nodes := E1
- I1 I2 I3
- C01 C02 C03 C04 C05 C06 C07 C08 C09 ;
-
-# following the notation in the paper (note: nodes \equiv origins)
-
-#
-# Sets
-#
-
-set Times := Ano1 Ano2 Ano3 Ano4;
-
-set OriginNodes := C01 C02 C03 C04 C05 C06 C07 C08 C09 ;
-
-set IntersectionNodes := I1 I2 I3;
-
-set ExitNodes := E1;
-
-set HarvestCells := U1 U2 U3 U4 U5 U6 U7 U8 U9 U10 U11 U12 U13
- U14 U15 U16 U17 U18 U19 U20 U21 U22 U23 U24 U25;
-
-set HCellsForOrigin[C01] := U1 U2 U4 ;
-set HCellsForOrigin[C02] := U6 U7 U9 U10 ;
-set HCellsForOrigin[C03] := U12 U13 ;
-set HCellsForOrigin[C04] := U11 U15 U16 ;
-set HCellsForOrigin[C05] := U14 U23 U24 ;
-set HCellsForOrigin[C06] := U17 U18 U19 ;
-set HCellsForOrigin[C07] := U22 U25 ;
-set HCellsForOrigin[C08] := U20 U21 ;
-set HCellsForOrigin[C09] := U3 U5 U8 ;
-
-set ExistingRoads :=
-C02 C03
-C03 E1
-C05 I1
-I1 I2
-I2 I3
-I3 E1
-;
-
-set PotentialRoads :=
-C01 C09
-C01 C02
-C02 C09
-C09 C02
-C09 E1
-C09 C03
-C04 C03
-C04 I3
-C06 I3
-C08 C06
-C08 I2
-C07 C08
-C07 I1
-C07 C05
-;
-
-set AllRoads :=
-C02 C03
-C03 E1
-C05 I1
-I1 I2
-I2 I3
-I3 E1
-C01 C09
-C01 C02
-C02 C09
-C09 C02
-C09 E1
-C09 C03
-C04 C03
-C04 I3
-C06 I3
-C08 C06
-C08 I2
-C07 C08
-C07 I1
-C07 C05
-;
-
-#
-# Deterministic Parameters
-#
-
-# productivity of cell h if it is harvested in period t
-param a :=
-U1 Ano1 362
-U1 Ano2 362
-U1 Ano3 362
-U1 Ano4 362
-U2 Ano1 362
-U2 Ano2 362
-U2 Ano3 362
-U2 Ano4 362
-U3 Ano1 362
-U3 Ano2 362
-U3 Ano3 362
-U3 Ano4 362
-U4 Ano1 642
-U4 Ano2 642
-U4 Ano3 642
-U4 Ano4 642
-U5 Ano1 362
-U5 Ano2 362
-U5 Ano3 362
-U5 Ano4 362
-U6 Ano1 642
-U6 Ano2 642
-U6 Ano3 642
-U6 Ano4 642
-U7 Ano1 642
-U7 Ano2 642
-U7 Ano3 642
-U7 Ano4 642
-U8 Ano1 362
-U8 Ano2 362
-U8 Ano3 362
-U8 Ano4 362
-U9 Ano1 642
-U9 Ano2 642
-U9 Ano3 642
-U9 Ano4 642
-U10 Ano1 642
-U10 Ano2 642
-U10 Ano3 642
-U10 Ano4 642
-U11 Ano1 600
-U11 Ano2 600
-U11 Ano3 600
-U11 Ano4 600
-U12 Ano1 518
-U12 Ano2 518
-U12 Ano3 518
-U12 Ano4 518
-U13 Ano1 518
-U13 Ano2 518
-U13 Ano3 518
-U13 Ano4 518
-U14 Ano1 567
-U14 Ano2 567
-U14 Ano3 567
-U14 Ano4 567
-U15 Ano1 600
-U15 Ano2 600
-U15 Ano3 600
-U15 Ano4 600
-U16 Ano1 600
-U16 Ano2 600
-U16 Ano3 600
-U16 Ano4 600
-U17 Ano1 518
-U17 Ano2 518
-U17 Ano3 518
-U17 Ano4 518
-U18 Ano1 401
-U18 Ano2 401
-U18 Ano3 401
-U18 Ano4 401
-U19 Ano1 401
-U19 Ano2 401
-U19 Ano3 401
-U19 Ano4 401
-U20 Ano1 401
-U20 Ano2 401
-U20 Ano3 401
-U20 Ano4 401
-U21 Ano1 373
-U21 Ano2 373
-U21 Ano3 373
-U21 Ano4 373
-U22 Ano1 373
-U22 Ano2 373
-U22 Ano3 373
-U22 Ano4 373
-U23 Ano1 567
-U23 Ano2 567
-U23 Ano3 567
-U23 Ano4 567
-U24 Ano1 567
-U24 Ano2 567
-U24 Ano3 567
-U24 Ano4 567
-U25 Ano1 373
-U25 Ano2 373
-U25 Ano3 373
-U25 Ano4 373
-;
-
-# Area of cell h to be harvested
-param A :=
-U1 10.1
-U2 10.1
-U3 10.1
-U4 13.4
-U5 10.3
-U6 10.2
-U7 10.1
-U8 10.4
-U9 16.7
-U10 12.8
-U11 12.2
-U12 15.2
-U13 11.3
-U14 12.7
-U15 12.6
-U16 12.6
-U17 10
-U18 14.4
-U19 10.8
-U20 10.4
-U21 16.4
-U22 10
-U23 11.4
-U24 14.8
-U25 10.1
-;
-
-# harvesting cost of one hectare of cell h in time t
-param P :=
-U1 Ano1 8
-U1 Ano2 8
-U1 Ano3 8
-U1 Ano4 8
-U2 Ano1 8
-U2 Ano2 8
-U2 Ano3 8
-U2 Ano4 8
-U3 Ano1 8
-U3 Ano2 8
-U3 Ano3 8
-U3 Ano4 8
-U4 Ano1 8
-U4 Ano2 8
-U4 Ano3 8
-U4 Ano4 8
-U5 Ano1 8
-U5 Ano2 8
-U5 Ano3 8
-U5 Ano4 8
-U6 Ano1 8
-U6 Ano2 8
-U6 Ano3 8
-U6 Ano4 8
-U7 Ano1 8
-U7 Ano2 8
-U7 Ano3 8
-U7 Ano4 8
-U8 Ano1 8
-U8 Ano2 8
-U8 Ano3 8
-U8 Ano4 8
-U9 Ano1 8
-U9 Ano2 8
-U9 Ano3 8
-U9 Ano4 8
-U10 Ano1 8
-U10 Ano2 8
-U10 Ano3 8
-U10 Ano4 8
-U11 Ano1 8
-U11 Ano2 8
-U11 Ano3 8
-U11 Ano4 8
-U12 Ano1 8
-U12 Ano2 8
-U12 Ano3 8
-U12 Ano4 8
-U13 Ano1 8
-U13 Ano2 8
-U13 Ano3 8
-U13 Ano4 8
-U14 Ano1 8
-U14 Ano2 8
-U14 Ano3 8
-U14 Ano4 8
-U15 Ano1 8
-U15 Ano2 8
-U15 Ano3 8
-U15 Ano4 8
-U16 Ano1 8
-U16 Ano2 8
-U16 Ano3 8
-U16 Ano4 8
-U17 Ano1 8
-U17 Ano2 8
-U17 Ano3 8
-U17 Ano4 8
-U18 Ano1 8
-U18 Ano2 8
-U18 Ano3 8
-U18 Ano4 8
-U19 Ano1 8
-U19 Ano2 8
-U19 Ano3 8
-U19 Ano4 8
-U20 Ano1 8
-U20 Ano2 8
-U20 Ano3 8
-U20 Ano4 8
-U21 Ano1 8
-U21 Ano2 8
-U21 Ano3 8
-U21 Ano4 8
-U22 Ano1 8
-U22 Ano2 8
-U22 Ano3 8
-U22 Ano4 8
-U23 Ano1 8
-U23 Ano2 8
-U23 Ano3 8
-U23 Ano4 8
-U24 Ano1 8
-U24 Ano2 8
-U24 Ano3 8
-U24 Ano4 8
-U25 Ano1 8
-U25 Ano2 8
-U25 Ano3 8
-U25 Ano4 8
-;
-
-
-# prod cost
-param Q :=
-C01 Ano1 0.1
-C01 Ano2 0.1
-C01 Ano3 0.1
-C01 Ano4 0.1
-C02 Ano1 0.1
-C02 Ano2 0.1
-C02 Ano3 0.1
-C02 Ano4 0.1
-C03 Ano1 0.1
-C03 Ano2 0.1
-C03 Ano3 0.1
-C03 Ano4 0.1
-C04 Ano1 0.1
-C04 Ano2 0.1
-C04 Ano3 0.1
-C04 Ano4 0.1
-C05 Ano1 0.1
-C05 Ano2 0.1
-C05 Ano3 0.1
-C05 Ano4 0.1
-C06 Ano1 0.1
-C06 Ano2 0.1
-C06 Ano3 0.1
-C06 Ano4 0.1
-C07 Ano1 0.1
-C07 Ano2 0.1
-C07 Ano3 0.1
-C07 Ano4 0.1
-C08 Ano1 0.1
-C08 Ano2 0.1
-C08 Ano3 0.1
-C08 Ano4 0.1
-C09 Ano1 0.1
-C09 Ano2 0.1
-C09 Ano3 0.1
-C09 Ano4 0.1
-;
-
-# construction cost of one road in arc (k,l) in time t
-param C :=
-C01 C09 Ano1 1440
-C01 C09 Ano2 1309.09
-C01 C09 Ano3 1190.08
-C01 C09 Ano4 1081.89
-C01 C02 Ano1 1950
-C01 C02 Ano2 1772.73
-C01 C02 Ano3 1611.57
-C01 C02 Ano4 1465.06
-C02 C09 Ano1 1690
-C02 C09 Ano2 1536.36
-C02 C09 Ano3 1396.69
-C02 C09 Ano4 1269.72
-C09 C02 Ano1 1690
-C09 C02 Ano2 1536.36
-C09 C02 Ano3 1396.69
-C09 C02 Ano4 1269.72
-C09 E1 Ano1 2840
-C09 E1 Ano2 2581.82
-C09 E1 Ano3 2347.11
-C09 E1 Ano4 2133.73
-C09 C03 Ano1 2190
-C09 C03 Ano2 1990.91
-C09 C03 Ano3 1809.92
-C09 C03 Ano4 1645.38
-C04 C03 Ano1 1170
-C04 C03 Ano2 1063.64
-C04 C03 Ano3 966.94
-C04 C03 Ano4 879.04
-C04 I3 Ano1 1320
-C04 I3 Ano2 1200
-C04 I3 Ano3 1090.91
-C04 I3 Ano4 991.74
-C06 I3 Ano1 150
-C06 I3 Ano2 136.36
-C06 I3 Ano3 123.97
-C06 I3 Ano4 112.7
-C08 C06 Ano1 1950
-C08 C06 Ano2 1772.73
-C08 C06 Ano3 1611.57
-C08 C06 Ano4 1465.06
-C08 I2 Ano1 1110
-C08 I2 Ano2 1009.09
-C08 I2 Ano3 917.36
-C08 I2 Ano4 833.96
-C07 C08 Ano1 930
-C07 C08 Ano2 845.45
-C07 C08 Ano3 768.6
-C07 C08 Ano4 698.72
-C07 I1 Ano1 1950
-C07 I1 Ano2 1772.73
-C07 I1 Ano3 1611.57
-C07 I1 Ano4 1465.06
-C07 C05 Ano1 2130
-C07 C05 Ano2 1936.36
-C07 C05 Ano3 1760.33
-C07 C05 Ano4 1600.3
-;
-
-# unit transport cost through arc (k,l) in time t
-param D :=
-C01 C09 Ano1 1.9
-C01 C02 Ano1 3.25
-C02 C09 Ano1 2.35
-C09 C02 Ano1 2.35
-C09 E1 Ano1 4.1
-C09 C03 Ano1 3.65
-C04 C03 Ano1 1.95
-C04 I3 Ano1 2.2
-C06 I3 Ano1 0.25
-C08 C06 Ano1 3.25
-C08 I2 Ano1 1.85
-C07 C08 Ano1 1.55
-C07 I1 Ano1 3.15
-C07 C05 Ano1 3.25
-C02 C03 Ano1 3.6
-C03 E1 Ano1 1.4
-C05 I1 Ano1 0.95
-I1 I2 Ano1 1.1
-I2 I3 Ano1 1.45
-I3 E1 Ano1 1.95
-C01 C09 Ano2 1.9
-C01 C02 Ano2 3.25
-C02 C09 Ano2 2.35
-C09 C02 Ano2 2.35
-C09 E1 Ano2 4.1
-C09 C03 Ano2 3.65
-C04 C03 Ano2 1.95
-C04 I3 Ano2 2.2
-C06 I3 Ano2 0.25
-C08 C06 Ano2 3.25
-C08 I2 Ano2 1.85
-C07 C08 Ano2 1.55
-C07 I1 Ano2 3.15
-C07 C05 Ano2 3.25
-C02 C03 Ano2 3.6
-C03 E1 Ano2 1.4
-C05 I1 Ano2 0.95
-I1 I2 Ano2 1.1
-I2 I3 Ano2 1.45
-I3 E1 Ano2 1.95
-C01 C09 Ano3 1.9
-C01 C02 Ano3 3.25
-C02 C09 Ano3 2.35
-C09 C02 Ano3 2.35
-C09 E1 Ano3 4.1
-C09 C03 Ano3 3.65
-C04 C03 Ano3 1.95
-C04 I3 Ano3 2.2
-C06 I3 Ano3 0.25
-C08 C06 Ano3 3.25
-C08 I2 Ano3 1.85
-C07 C08 Ano3 1.55
-C07 I1 Ano3 3.15
-C07 C05 Ano3 3.25
-C02 C03 Ano3 3.6
-C03 E1 Ano3 1.4
-C05 I1 Ano3 0.95
-I1 I2 Ano3 1.1
-I2 I3 Ano3 1.45
-I3 E1 Ano3 1.95
-C01 C09 Ano4 1.9
-C01 C02 Ano4 3.25
-C02 C09 Ano4 2.35
-C09 C02 Ano4 2.35
-C09 E1 Ano4 4.1
-C09 C03 Ano4 3.65
-C04 C03 Ano4 1.95
-C04 I3 Ano4 2.2
-C06 I3 Ano4 0.25
-C08 C06 Ano4 3.25
-C08 I2 Ano4 1.85
-C07 C08 Ano4 1.55
-C07 I1 Ano4 3.15
-C07 C05 Ano4 3.25
-C02 C03 Ano4 3.6
-C03 E1 Ano4 1.4
-C05 I1 Ano4 0.95
-I1 I2 Ano4 1.1
-I2 I3 Ano4 1.45
-I3 E1 Ano4 1.95
-;
-
-#
-# Stochastic Parameters
-#
-
-# sale price at exit e in time period t
-param R := E1 Ano1 45
- E1 Ano2 60
- E1 Ano3 55
- E1 Ano4 62 ;
-
-# upper and lower bounds on wood supplied
-param Zlb := Ano1 30000
- Ano2 27000
- Ano3 26000
- Ano4 25000 ;
-param Zub := Ano1 40000
- Ano2 50000
- Ano3 50000
- Ano4 48000 ;
-param yr:=
-Ano1 1
-Ano2 1
-Ano3 1
-Ano4 1
-;
-
-set COriginNodeForCell[U1]:= C01;
-set COriginNodeForCell[U2]:= C01;
-set COriginNodeForCell[U3]:= C09;
-set COriginNodeForCell[U4]:= C01;
-set COriginNodeForCell[U5]:= C09;
-set COriginNodeForCell[U6]:= C02;
-set COriginNodeForCell[U7]:= C02;
-set COriginNodeForCell[U8]:= C09;
-set COriginNodeForCell[U9]:= C02;
-set COriginNodeForCell[U10]:= C02;
-set COriginNodeForCell[U11]:= C04;
-set COriginNodeForCell[U12]:= C03;
-set COriginNodeForCell[U13]:= C03;
-set COriginNodeForCell[U14]:= C05;
-set COriginNodeForCell[U15]:= C04;
-set COriginNodeForCell[U16]:= C04;
-set COriginNodeForCell[U17]:= C06;
-set COriginNodeForCell[U18]:= C06;
-set COriginNodeForCell[U19]:= C06;
-set COriginNodeForCell[U20]:= C08;
-set COriginNodeForCell[U21]:= C08;
-set COriginNodeForCell[U22]:= C07;
-set COriginNodeForCell[U23]:= C05;
-set COriginNodeForCell[U24]:= C05;
-set COriginNodeForCell[U25]:= C07;
-
diff --git a/examples/pysp/forestry/unequalProbs/ForestChile4.dat b/examples/pysp/forestry/unequalProbs/ForestChile4.dat
deleted file mode 100644
index 110df5bfa1b..00000000000
--- a/examples/pysp/forestry/unequalProbs/ForestChile4.dat
+++ /dev/null
@@ -1,562 +0,0 @@
-# fbv
-# mnr May 3, 2009
-
-# general nodes
-set Nodes := E1
- I1 I2 I3
- C01 C02 C03 C04 C05 C06 C07 C08 C09 ;
-
-# following the notation in the paper (note: nodes \equiv origins)
-
-#
-# Sets
-#
-
-set Times := Ano1 Ano2 Ano3 Ano4;
-
-set OriginNodes := C01 C02 C03 C04 C05 C06 C07 C08 C09 ;
-
-set IntersectionNodes := I1 I2 I3;
-
-set ExitNodes := E1;
-
-set HarvestCells := U1 U2 U3 U4 U5 U6 U7 U8 U9 U10 U11 U12 U13
- U14 U15 U16 U17 U18 U19 U20 U21 U22 U23 U24 U25;
-
-set HCellsForOrigin[C01] := U1 U2 U4 ;
-set HCellsForOrigin[C02] := U6 U7 U9 U10 ;
-set HCellsForOrigin[C03] := U12 U13 ;
-set HCellsForOrigin[C04] := U11 U15 U16 ;
-set HCellsForOrigin[C05] := U14 U23 U24 ;
-set HCellsForOrigin[C06] := U17 U18 U19 ;
-set HCellsForOrigin[C07] := U22 U25 ;
-set HCellsForOrigin[C08] := U20 U21 ;
-set HCellsForOrigin[C09] := U3 U5 U8 ;
-
-set ExistingRoads :=
-C02 C03
-C03 E1
-C05 I1
-I1 I2
-I2 I3
-I3 E1
-;
-
-set PotentialRoads :=
-C01 C09
-C01 C02
-C02 C09
-C09 C02
-C09 E1
-C09 C03
-C04 C03
-C04 I3
-C06 I3
-C08 C06
-C08 I2
-C07 C08
-C07 I1
-C07 C05
-;
-
-set AllRoads :=
-C02 C03
-C03 E1
-C05 I1
-I1 I2
-I2 I3
-I3 E1
-C01 C09
-C01 C02
-C02 C09
-C09 C02
-C09 E1
-C09 C03
-C04 C03
-C04 I3
-C06 I3
-C08 C06
-C08 I2
-C07 C08
-C07 I1
-C07 C05
-;
-
-#
-# Deterministic Parameters
-#
-
-# productivity of cell h if it is harvested in period t
-param a :=
-U1 Ano1 362
-U1 Ano2 362
-U1 Ano3 362
-U1 Ano4 362
-U2 Ano1 362
-U2 Ano2 362
-U2 Ano3 362
-U2 Ano4 362
-U3 Ano1 362
-U3 Ano2 362
-U3 Ano3 362
-U3 Ano4 362
-U4 Ano1 642
-U4 Ano2 642
-U4 Ano3 642
-U4 Ano4 642
-U5 Ano1 362
-U5 Ano2 362
-U5 Ano3 362
-U5 Ano4 362
-U6 Ano1 642
-U6 Ano2 642
-U6 Ano3 642
-U6 Ano4 642
-U7 Ano1 642
-U7 Ano2 642
-U7 Ano3 642
-U7 Ano4 642
-U8 Ano1 362
-U8 Ano2 362
-U8 Ano3 362
-U8 Ano4 362
-U9 Ano1 642
-U9 Ano2 642
-U9 Ano3 642
-U9 Ano4 642
-U10 Ano1 642
-U10 Ano2 642
-U10 Ano3 642
-U10 Ano4 642
-U11 Ano1 600
-U11 Ano2 600
-U11 Ano3 600
-U11 Ano4 600
-U12 Ano1 518
-U12 Ano2 518
-U12 Ano3 518
-U12 Ano4 518
-U13 Ano1 518
-U13 Ano2 518
-U13 Ano3 518
-U13 Ano4 518
-U14 Ano1 567
-U14 Ano2 567
-U14 Ano3 567
-U14 Ano4 567
-U15 Ano1 600
-U15 Ano2 600
-U15 Ano3 600
-U15 Ano4 600
-U16 Ano1 600
-U16 Ano2 600
-U16 Ano3 600
-U16 Ano4 600
-U17 Ano1 518
-U17 Ano2 518
-U17 Ano3 518
-U17 Ano4 518
-U18 Ano1 401
-U18 Ano2 401
-U18 Ano3 401
-U18 Ano4 401
-U19 Ano1 401
-U19 Ano2 401
-U19 Ano3 401
-U19 Ano4 401
-U20 Ano1 401
-U20 Ano2 401
-U20 Ano3 401
-U20 Ano4 401
-U21 Ano1 373
-U21 Ano2 373
-U21 Ano3 373
-U21 Ano4 373
-U22 Ano1 373
-U22 Ano2 373
-U22 Ano3 373
-U22 Ano4 373
-U23 Ano1 567
-U23 Ano2 567
-U23 Ano3 567
-U23 Ano4 567
-U24 Ano1 567
-U24 Ano2 567
-U24 Ano3 567
-U24 Ano4 567
-U25 Ano1 373
-U25 Ano2 373
-U25 Ano3 373
-U25 Ano4 373
-;
-
-# Area of cell h to be harvested
-param A :=
-U1 10.1
-U2 10.1
-U3 10.1
-U4 13.4
-U5 10.3
-U6 10.2
-U7 10.1
-U8 10.4
-U9 16.7
-U10 12.8
-U11 12.2
-U12 15.2
-U13 11.3
-U14 12.7
-U15 12.6
-U16 12.6
-U17 10
-U18 14.4
-U19 10.8
-U20 10.4
-U21 16.4
-U22 10
-U23 11.4
-U24 14.8
-U25 10.1
-;
-
-# harvesting cost of one hectare of cell h in time t
-param P :=
-U1 Ano1 8
-U1 Ano2 8
-U1 Ano3 8
-U1 Ano4 8
-U2 Ano1 8
-U2 Ano2 8
-U2 Ano3 8
-U2 Ano4 8
-U3 Ano1 8
-U3 Ano2 8
-U3 Ano3 8
-U3 Ano4 8
-U4 Ano1 8
-U4 Ano2 8
-U4 Ano3 8
-U4 Ano4 8
-U5 Ano1 8
-U5 Ano2 8
-U5 Ano3 8
-U5 Ano4 8
-U6 Ano1 8
-U6 Ano2 8
-U6 Ano3 8
-U6 Ano4 8
-U7 Ano1 8
-U7 Ano2 8
-U7 Ano3 8
-U7 Ano4 8
-U8 Ano1 8
-U8 Ano2 8
-U8 Ano3 8
-U8 Ano4 8
-U9 Ano1 8
-U9 Ano2 8
-U9 Ano3 8
-U9 Ano4 8
-U10 Ano1 8
-U10 Ano2 8
-U10 Ano3 8
-U10 Ano4 8
-U11 Ano1 8
-U11 Ano2 8
-U11 Ano3 8
-U11 Ano4 8
-U12 Ano1 8
-U12 Ano2 8
-U12 Ano3 8
-U12 Ano4 8
-U13 Ano1 8
-U13 Ano2 8
-U13 Ano3 8
-U13 Ano4 8
-U14 Ano1 8
-U14 Ano2 8
-U14 Ano3 8
-U14 Ano4 8
-U15 Ano1 8
-U15 Ano2 8
-U15 Ano3 8
-U15 Ano4 8
-U16 Ano1 8
-U16 Ano2 8
-U16 Ano3 8
-U16 Ano4 8
-U17 Ano1 8
-U17 Ano2 8
-U17 Ano3 8
-U17 Ano4 8
-U18 Ano1 8
-U18 Ano2 8
-U18 Ano3 8
-U18 Ano4 8
-U19 Ano1 8
-U19 Ano2 8
-U19 Ano3 8
-U19 Ano4 8
-U20 Ano1 8
-U20 Ano2 8
-U20 Ano3 8
-U20 Ano4 8
-U21 Ano1 8
-U21 Ano2 8
-U21 Ano3 8
-U21 Ano4 8
-U22 Ano1 8
-U22 Ano2 8
-U22 Ano3 8
-U22 Ano4 8
-U23 Ano1 8
-U23 Ano2 8
-U23 Ano3 8
-U23 Ano4 8
-U24 Ano1 8
-U24 Ano2 8
-U24 Ano3 8
-U24 Ano4 8
-U25 Ano1 8
-U25 Ano2 8
-U25 Ano3 8
-U25 Ano4 8
-;
-
-
-# prod cost
-param Q :=
-C01 Ano1 0.1
-C01 Ano2 0.1
-C01 Ano3 0.1
-C01 Ano4 0.1
-C02 Ano1 0.1
-C02 Ano2 0.1
-C02 Ano3 0.1
-C02 Ano4 0.1
-C03 Ano1 0.1
-C03 Ano2 0.1
-C03 Ano3 0.1
-C03 Ano4 0.1
-C04 Ano1 0.1
-C04 Ano2 0.1
-C04 Ano3 0.1
-C04 Ano4 0.1
-C05 Ano1 0.1
-C05 Ano2 0.1
-C05 Ano3 0.1
-C05 Ano4 0.1
-C06 Ano1 0.1
-C06 Ano2 0.1
-C06 Ano3 0.1
-C06 Ano4 0.1
-C07 Ano1 0.1
-C07 Ano2 0.1
-C07 Ano3 0.1
-C07 Ano4 0.1
-C08 Ano1 0.1
-C08 Ano2 0.1
-C08 Ano3 0.1
-C08 Ano4 0.1
-C09 Ano1 0.1
-C09 Ano2 0.1
-C09 Ano3 0.1
-C09 Ano4 0.1
-;
-
-# construction cost of one road in arc (k,l) in time t
-param C :=
-C01 C09 Ano1 1440
-C01 C09 Ano2 1309.09
-C01 C09 Ano3 1190.08
-C01 C09 Ano4 1081.89
-C01 C02 Ano1 1950
-C01 C02 Ano2 1772.73
-C01 C02 Ano3 1611.57
-C01 C02 Ano4 1465.06
-C02 C09 Ano1 1690
-C02 C09 Ano2 1536.36
-C02 C09 Ano3 1396.69
-C02 C09 Ano4 1269.72
-C09 C02 Ano1 1690
-C09 C02 Ano2 1536.36
-C09 C02 Ano3 1396.69
-C09 C02 Ano4 1269.72
-C09 E1 Ano1 2840
-C09 E1 Ano2 2581.82
-C09 E1 Ano3 2347.11
-C09 E1 Ano4 2133.73
-C09 C03 Ano1 2190
-C09 C03 Ano2 1990.91
-C09 C03 Ano3 1809.92
-C09 C03 Ano4 1645.38
-C04 C03 Ano1 1170
-C04 C03 Ano2 1063.64
-C04 C03 Ano3 966.94
-C04 C03 Ano4 879.04
-C04 I3 Ano1 1320
-C04 I3 Ano2 1200
-C04 I3 Ano3 1090.91
-C04 I3 Ano4 991.74
-C06 I3 Ano1 150
-C06 I3 Ano2 136.36
-C06 I3 Ano3 123.97
-C06 I3 Ano4 112.7
-C08 C06 Ano1 1950
-C08 C06 Ano2 1772.73
-C08 C06 Ano3 1611.57
-C08 C06 Ano4 1465.06
-C08 I2 Ano1 1110
-C08 I2 Ano2 1009.09
-C08 I2 Ano3 917.36
-C08 I2 Ano4 833.96
-C07 C08 Ano1 930
-C07 C08 Ano2 845.45
-C07 C08 Ano3 768.6
-C07 C08 Ano4 698.72
-C07 I1 Ano1 1950
-C07 I1 Ano2 1772.73
-C07 I1 Ano3 1611.57
-C07 I1 Ano4 1465.06
-C07 C05 Ano1 2130
-C07 C05 Ano2 1936.36
-C07 C05 Ano3 1760.33
-C07 C05 Ano4 1600.3
-;
-
-# unit transport cost through arc (k,l) in time t
-param D :=
-C01 C09 Ano1 1.9
-C01 C02 Ano1 3.25
-C02 C09 Ano1 2.35
-C09 C02 Ano1 2.35
-C09 E1 Ano1 4.1
-C09 C03 Ano1 3.65
-C04 C03 Ano1 1.95
-C04 I3 Ano1 2.2
-C06 I3 Ano1 0.25
-C08 C06 Ano1 3.25
-C08 I2 Ano1 1.85
-C07 C08 Ano1 1.55
-C07 I1 Ano1 3.15
-C07 C05 Ano1 3.25
-C02 C03 Ano1 3.6
-C03 E1 Ano1 1.4
-C05 I1 Ano1 0.95
-I1 I2 Ano1 1.1
-I2 I3 Ano1 1.45
-I3 E1 Ano1 1.95
-C01 C09 Ano2 1.9
-C01 C02 Ano2 3.25
-C02 C09 Ano2 2.35
-C09 C02 Ano2 2.35
-C09 E1 Ano2 4.1
-C09 C03 Ano2 3.65
-C04 C03 Ano2 1.95
-C04 I3 Ano2 2.2
-C06 I3 Ano2 0.25
-C08 C06 Ano2 3.25
-C08 I2 Ano2 1.85
-C07 C08 Ano2 1.55
-C07 I1 Ano2 3.15
-C07 C05 Ano2 3.25
-C02 C03 Ano2 3.6
-C03 E1 Ano2 1.4
-C05 I1 Ano2 0.95
-I1 I2 Ano2 1.1
-I2 I3 Ano2 1.45
-I3 E1 Ano2 1.95
-C01 C09 Ano3 1.9
-C01 C02 Ano3 3.25
-C02 C09 Ano3 2.35
-C09 C02 Ano3 2.35
-C09 E1 Ano3 4.1
-C09 C03 Ano3 3.65
-C04 C03 Ano3 1.95
-C04 I3 Ano3 2.2
-C06 I3 Ano3 0.25
-C08 C06 Ano3 3.25
-C08 I2 Ano3 1.85
-C07 C08 Ano3 1.55
-C07 I1 Ano3 3.15
-C07 C05 Ano3 3.25
-C02 C03 Ano3 3.6
-C03 E1 Ano3 1.4
-C05 I1 Ano3 0.95
-I1 I2 Ano3 1.1
-I2 I3 Ano3 1.45
-I3 E1 Ano3 1.95
-C01 C09 Ano4 1.9
-C01 C02 Ano4 3.25
-C02 C09 Ano4 2.35
-C09 C02 Ano4 2.35
-C09 E1 Ano4 4.1
-C09 C03 Ano4 3.65
-C04 C03 Ano4 1.95
-C04 I3 Ano4 2.2
-C06 I3 Ano4 0.25
-C08 C06 Ano4 3.25
-C08 I2 Ano4 1.85
-C07 C08 Ano4 1.55
-C07 I1 Ano4 3.15
-C07 C05 Ano4 3.25
-C02 C03 Ano4 3.6
-C03 E1 Ano4 1.4
-C05 I1 Ano4 0.95
-I1 I2 Ano4 1.1
-I2 I3 Ano4 1.45
-I3 E1 Ano4 1.95
-;
-
-#
-# Stochastic Parameters
-#
-
-# sale price at exit e in time period t
-param R := E1 Ano1 45
- E1 Ano2 60
- E1 Ano3 55
- E1 Ano4 50 ;
-
-# upper and lower bounds on wood supplied
-param Zlb := Ano1 30000
- Ano2 27000
- Ano3 26000
- Ano4 26000 ;
-param Zub := Ano1 40000
- Ano2 50000
- Ano3 50000
- Ano4 49000 ;
-param yr:=
-Ano1 1
-Ano2 1
-Ano3 1
-Ano4 1
-;
-
-set COriginNodeForCell[U1]:= C01;
-set COriginNodeForCell[U2]:= C01;
-set COriginNodeForCell[U3]:= C09;
-set COriginNodeForCell[U4]:= C01;
-set COriginNodeForCell[U5]:= C09;
-set COriginNodeForCell[U6]:= C02;
-set COriginNodeForCell[U7]:= C02;
-set COriginNodeForCell[U8]:= C09;
-set COriginNodeForCell[U9]:= C02;
-set COriginNodeForCell[U10]:= C02;
-set COriginNodeForCell[U11]:= C04;
-set COriginNodeForCell[U12]:= C03;
-set COriginNodeForCell[U13]:= C03;
-set COriginNodeForCell[U14]:= C05;
-set COriginNodeForCell[U15]:= C04;
-set COriginNodeForCell[U16]:= C04;
-set COriginNodeForCell[U17]:= C06;
-set COriginNodeForCell[U18]:= C06;
-set COriginNodeForCell[U19]:= C06;
-set COriginNodeForCell[U20]:= C08;
-set COriginNodeForCell[U21]:= C08;
-set COriginNodeForCell[U22]:= C07;
-set COriginNodeForCell[U23]:= C05;
-set COriginNodeForCell[U24]:= C05;
-set COriginNodeForCell[U25]:= C07;
-
diff --git a/examples/pysp/forestry/unequalProbs/ForestChile5.dat b/examples/pysp/forestry/unequalProbs/ForestChile5.dat
deleted file mode 100644
index 67af5c85179..00000000000
--- a/examples/pysp/forestry/unequalProbs/ForestChile5.dat
+++ /dev/null
@@ -1,562 +0,0 @@
-# fbv
-# mnr May 3, 2009
-
-# general nodes
-set Nodes := E1
- I1 I2 I3
- C01 C02 C03 C04 C05 C06 C07 C08 C09 ;
-
-# following the notation in the paper (note: nodes \equiv origins)
-
-#
-# Sets
-#
-
-set Times := Ano1 Ano2 Ano3 Ano4;
-
-set OriginNodes := C01 C02 C03 C04 C05 C06 C07 C08 C09 ;
-
-set IntersectionNodes := I1 I2 I3;
-
-set ExitNodes := E1;
-
-set HarvestCells := U1 U2 U3 U4 U5 U6 U7 U8 U9 U10 U11 U12 U13
- U14 U15 U16 U17 U18 U19 U20 U21 U22 U23 U24 U25;
-
-set HCellsForOrigin[C01] := U1 U2 U4 ;
-set HCellsForOrigin[C02] := U6 U7 U9 U10 ;
-set HCellsForOrigin[C03] := U12 U13 ;
-set HCellsForOrigin[C04] := U11 U15 U16 ;
-set HCellsForOrigin[C05] := U14 U23 U24 ;
-set HCellsForOrigin[C06] := U17 U18 U19 ;
-set HCellsForOrigin[C07] := U22 U25 ;
-set HCellsForOrigin[C08] := U20 U21 ;
-set HCellsForOrigin[C09] := U3 U5 U8 ;
-
-set ExistingRoads :=
-C02 C03
-C03 E1
-C05 I1
-I1 I2
-I2 I3
-I3 E1
-;
-
-set PotentialRoads :=
-C01 C09
-C01 C02
-C02 C09
-C09 C02
-C09 E1
-C09 C03
-C04 C03
-C04 I3
-C06 I3
-C08 C06
-C08 I2
-C07 C08
-C07 I1
-C07 C05
-;
-
-set AllRoads :=
-C02 C03
-C03 E1
-C05 I1
-I1 I2
-I2 I3
-I3 E1
-C01 C09
-C01 C02
-C02 C09
-C09 C02
-C09 E1
-C09 C03
-C04 C03
-C04 I3
-C06 I3
-C08 C06
-C08 I2
-C07 C08
-C07 I1
-C07 C05
-;
-
-#
-# Deterministic Parameters
-#
-
-# productivity of cell h if it is harvested in period t
-param a :=
-U1 Ano1 362
-U1 Ano2 362
-U1 Ano3 362
-U1 Ano4 362
-U2 Ano1 362
-U2 Ano2 362
-U2 Ano3 362
-U2 Ano4 362
-U3 Ano1 362
-U3 Ano2 362
-U3 Ano3 362
-U3 Ano4 362
-U4 Ano1 642
-U4 Ano2 642
-U4 Ano3 642
-U4 Ano4 642
-U5 Ano1 362
-U5 Ano2 362
-U5 Ano3 362
-U5 Ano4 362
-U6 Ano1 642
-U6 Ano2 642
-U6 Ano3 642
-U6 Ano4 642
-U7 Ano1 642
-U7 Ano2 642
-U7 Ano3 642
-U7 Ano4 642
-U8 Ano1 362
-U8 Ano2 362
-U8 Ano3 362
-U8 Ano4 362
-U9 Ano1 642
-U9 Ano2 642
-U9 Ano3 642
-U9 Ano4 642
-U10 Ano1 642
-U10 Ano2 642
-U10 Ano3 642
-U10 Ano4 642
-U11 Ano1 600
-U11 Ano2 600
-U11 Ano3 600
-U11 Ano4 600
-U12 Ano1 518
-U12 Ano2 518
-U12 Ano3 518
-U12 Ano4 518
-U13 Ano1 518
-U13 Ano2 518
-U13 Ano3 518
-U13 Ano4 518
-U14 Ano1 567
-U14 Ano2 567
-U14 Ano3 567
-U14 Ano4 567
-U15 Ano1 600
-U15 Ano2 600
-U15 Ano3 600
-U15 Ano4 600
-U16 Ano1 600
-U16 Ano2 600
-U16 Ano3 600
-U16 Ano4 600
-U17 Ano1 518
-U17 Ano2 518
-U17 Ano3 518
-U17 Ano4 518
-U18 Ano1 401
-U18 Ano2 401
-U18 Ano3 401
-U18 Ano4 401
-U19 Ano1 401
-U19 Ano2 401
-U19 Ano3 401
-U19 Ano4 401
-U20 Ano1 401
-U20 Ano2 401
-U20 Ano3 401
-U20 Ano4 401
-U21 Ano1 373
-U21 Ano2 373
-U21 Ano3 373
-U21 Ano4 373
-U22 Ano1 373
-U22 Ano2 373
-U22 Ano3 373
-U22 Ano4 373
-U23 Ano1 567
-U23 Ano2 567
-U23 Ano3 567
-U23 Ano4 567
-U24 Ano1 567
-U24 Ano2 567
-U24 Ano3 567
-U24 Ano4 567
-U25 Ano1 373
-U25 Ano2 373
-U25 Ano3 373
-U25 Ano4 373
-;
-
-# Area of cell h to be harvested
-param A :=
-U1 10.1
-U2 10.1
-U3 10.1
-U4 13.4
-U5 10.3
-U6 10.2
-U7 10.1
-U8 10.4
-U9 16.7
-U10 12.8
-U11 12.2
-U12 15.2
-U13 11.3
-U14 12.7
-U15 12.6
-U16 12.6
-U17 10
-U18 14.4
-U19 10.8
-U20 10.4
-U21 16.4
-U22 10
-U23 11.4
-U24 14.8
-U25 10.1
-;
-
-# harvesting cost of one hectare of cell h in time t
-param P :=
-U1 Ano1 8
-U1 Ano2 8
-U1 Ano3 8
-U1 Ano4 8
-U2 Ano1 8
-U2 Ano2 8
-U2 Ano3 8
-U2 Ano4 8
-U3 Ano1 8
-U3 Ano2 8
-U3 Ano3 8
-U3 Ano4 8
-U4 Ano1 8
-U4 Ano2 8
-U4 Ano3 8
-U4 Ano4 8
-U5 Ano1 8
-U5 Ano2 8
-U5 Ano3 8
-U5 Ano4 8
-U6 Ano1 8
-U6 Ano2 8
-U6 Ano3 8
-U6 Ano4 8
-U7 Ano1 8
-U7 Ano2 8
-U7 Ano3 8
-U7 Ano4 8
-U8 Ano1 8
-U8 Ano2 8
-U8 Ano3 8
-U8 Ano4 8
-U9 Ano1 8
-U9 Ano2 8
-U9 Ano3 8
-U9 Ano4 8
-U10 Ano1 8
-U10 Ano2 8
-U10 Ano3 8
-U10 Ano4 8
-U11 Ano1 8
-U11 Ano2 8
-U11 Ano3 8
-U11 Ano4 8
-U12 Ano1 8
-U12 Ano2 8
-U12 Ano3 8
-U12 Ano4 8
-U13 Ano1 8
-U13 Ano2 8
-U13 Ano3 8
-U13 Ano4 8
-U14 Ano1 8
-U14 Ano2 8
-U14 Ano3 8
-U14 Ano4 8
-U15 Ano1 8
-U15 Ano2 8
-U15 Ano3 8
-U15 Ano4 8
-U16 Ano1 8
-U16 Ano2 8
-U16 Ano3 8
-U16 Ano4 8
-U17 Ano1 8
-U17 Ano2 8
-U17 Ano3 8
-U17 Ano4 8
-U18 Ano1 8
-U18 Ano2 8
-U18 Ano3 8
-U18 Ano4 8
-U19 Ano1 8
-U19 Ano2 8
-U19 Ano3 8
-U19 Ano4 8
-U20 Ano1 8
-U20 Ano2 8
-U20 Ano3 8
-U20 Ano4 8
-U21 Ano1 8
-U21 Ano2 8
-U21 Ano3 8
-U21 Ano4 8
-U22 Ano1 8
-U22 Ano2 8
-U22 Ano3 8
-U22 Ano4 8
-U23 Ano1 8
-U23 Ano2 8
-U23 Ano3 8
-U23 Ano4 8
-U24 Ano1 8
-U24 Ano2 8
-U24 Ano3 8
-U24 Ano4 8
-U25 Ano1 8
-U25 Ano2 8
-U25 Ano3 8
-U25 Ano4 8
-;
-
-
-# prod cost
-param Q :=
-C01 Ano1 0.1
-C01 Ano2 0.1
-C01 Ano3 0.1
-C01 Ano4 0.1
-C02 Ano1 0.1
-C02 Ano2 0.1
-C02 Ano3 0.1
-C02 Ano4 0.1
-C03 Ano1 0.1
-C03 Ano2 0.1
-C03 Ano3 0.1
-C03 Ano4 0.1
-C04 Ano1 0.1
-C04 Ano2 0.1
-C04 Ano3 0.1
-C04 Ano4 0.1
-C05 Ano1 0.1
-C05 Ano2 0.1
-C05 Ano3 0.1
-C05 Ano4 0.1
-C06 Ano1 0.1
-C06 Ano2 0.1
-C06 Ano3 0.1
-C06 Ano4 0.1
-C07 Ano1 0.1
-C07 Ano2 0.1
-C07 Ano3 0.1
-C07 Ano4 0.1
-C08 Ano1 0.1
-C08 Ano2 0.1
-C08 Ano3 0.1
-C08 Ano4 0.1
-C09 Ano1 0.1
-C09 Ano2 0.1
-C09 Ano3 0.1
-C09 Ano4 0.1
-;
-
-# construction cost of one road in arc (k,l) in time t
-param C :=
-C01 C09 Ano1 1440
-C01 C09 Ano2 1309.09
-C01 C09 Ano3 1190.08
-C01 C09 Ano4 1081.89
-C01 C02 Ano1 1950
-C01 C02 Ano2 1772.73
-C01 C02 Ano3 1611.57
-C01 C02 Ano4 1465.06
-C02 C09 Ano1 1690
-C02 C09 Ano2 1536.36
-C02 C09 Ano3 1396.69
-C02 C09 Ano4 1269.72
-C09 C02 Ano1 1690
-C09 C02 Ano2 1536.36
-C09 C02 Ano3 1396.69
-C09 C02 Ano4 1269.72
-C09 E1 Ano1 2840
-C09 E1 Ano2 2581.82
-C09 E1 Ano3 2347.11
-C09 E1 Ano4 2133.73
-C09 C03 Ano1 2190
-C09 C03 Ano2 1990.91
-C09 C03 Ano3 1809.92
-C09 C03 Ano4 1645.38
-C04 C03 Ano1 1170
-C04 C03 Ano2 1063.64
-C04 C03 Ano3 966.94
-C04 C03 Ano4 879.04
-C04 I3 Ano1 1320
-C04 I3 Ano2 1200
-C04 I3 Ano3 1090.91
-C04 I3 Ano4 991.74
-C06 I3 Ano1 150
-C06 I3 Ano2 136.36
-C06 I3 Ano3 123.97
-C06 I3 Ano4 112.7
-C08 C06 Ano1 1950
-C08 C06 Ano2 1772.73
-C08 C06 Ano3 1611.57
-C08 C06 Ano4 1465.06
-C08 I2 Ano1 1110
-C08 I2 Ano2 1009.09
-C08 I2 Ano3 917.36
-C08 I2 Ano4 833.96
-C07 C08 Ano1 930
-C07 C08 Ano2 845.45
-C07 C08 Ano3 768.6
-C07 C08 Ano4 698.72
-C07 I1 Ano1 1950
-C07 I1 Ano2 1772.73
-C07 I1 Ano3 1611.57
-C07 I1 Ano4 1465.06
-C07 C05 Ano1 2130
-C07 C05 Ano2 1936.36
-C07 C05 Ano3 1760.33
-C07 C05 Ano4 1600.3
-;
-
-# unit transport cost through arc (k,l) in time t
-param D :=
-C01 C09 Ano1 1.9
-C01 C02 Ano1 3.25
-C02 C09 Ano1 2.35
-C09 C02 Ano1 2.35
-C09 E1 Ano1 4.1
-C09 C03 Ano1 3.65
-C04 C03 Ano1 1.95
-C04 I3 Ano1 2.2
-C06 I3 Ano1 0.25
-C08 C06 Ano1 3.25
-C08 I2 Ano1 1.85
-C07 C08 Ano1 1.55
-C07 I1 Ano1 3.15
-C07 C05 Ano1 3.25
-C02 C03 Ano1 3.6
-C03 E1 Ano1 1.4
-C05 I1 Ano1 0.95
-I1 I2 Ano1 1.1
-I2 I3 Ano1 1.45
-I3 E1 Ano1 1.95
-C01 C09 Ano2 1.9
-C01 C02 Ano2 3.25
-C02 C09 Ano2 2.35
-C09 C02 Ano2 2.35
-C09 E1 Ano2 4.1
-C09 C03 Ano2 3.65
-C04 C03 Ano2 1.95
-C04 I3 Ano2 2.2
-C06 I3 Ano2 0.25
-C08 C06 Ano2 3.25
-C08 I2 Ano2 1.85
-C07 C08 Ano2 1.55
-C07 I1 Ano2 3.15
-C07 C05 Ano2 3.25
-C02 C03 Ano2 3.6
-C03 E1 Ano2 1.4
-C05 I1 Ano2 0.95
-I1 I2 Ano2 1.1
-I2 I3 Ano2 1.45
-I3 E1 Ano2 1.95
-C01 C09 Ano3 1.9
-C01 C02 Ano3 3.25
-C02 C09 Ano3 2.35
-C09 C02 Ano3 2.35
-C09 E1 Ano3 4.1
-C09 C03 Ano3 3.65
-C04 C03 Ano3 1.95
-C04 I3 Ano3 2.2
-C06 I3 Ano3 0.25
-C08 C06 Ano3 3.25
-C08 I2 Ano3 1.85
-C07 C08 Ano3 1.55
-C07 I1 Ano3 3.15
-C07 C05 Ano3 3.25
-C02 C03 Ano3 3.6
-C03 E1 Ano3 1.4
-C05 I1 Ano3 0.95
-I1 I2 Ano3 1.1
-I2 I3 Ano3 1.45
-I3 E1 Ano3 1.95
-C01 C09 Ano4 1.9
-C01 C02 Ano4 3.25
-C02 C09 Ano4 2.35
-C09 C02 Ano4 2.35
-C09 E1 Ano4 4.1
-C09 C03 Ano4 3.65
-C04 C03 Ano4 1.95
-C04 I3 Ano4 2.2
-C06 I3 Ano4 0.25
-C08 C06 Ano4 3.25
-C08 I2 Ano4 1.85
-C07 C08 Ano4 1.55
-C07 I1 Ano4 3.15
-C07 C05 Ano4 3.25
-C02 C03 Ano4 3.6
-C03 E1 Ano4 1.4
-C05 I1 Ano4 0.95
-I1 I2 Ano4 1.1
-I2 I3 Ano4 1.45
-I3 E1 Ano4 1.95
-;
-
-#
-# Stochastic Parameters
-#
-
-# sale price at exit e in time period t
-param R := E1 Ano1 45
- E1 Ano2 60
- E1 Ano3 45
- E1 Ano4 58 ;
-
-# upper and lower bounds on wood supplied
-param Zlb := Ano1 30000
- Ano2 27000
- Ano3 24000
- Ano4 26000 ;
-param Zub := Ano1 40000
- Ano2 50000
- Ano3 44000
- Ano4 48000 ;
-param yr:=
-Ano1 1
-Ano2 1
-Ano3 1
-Ano4 1
-;
-
-set COriginNodeForCell[U1]:= C01;
-set COriginNodeForCell[U2]:= C01;
-set COriginNodeForCell[U3]:= C09;
-set COriginNodeForCell[U4]:= C01;
-set COriginNodeForCell[U5]:= C09;
-set COriginNodeForCell[U6]:= C02;
-set COriginNodeForCell[U7]:= C02;
-set COriginNodeForCell[U8]:= C09;
-set COriginNodeForCell[U9]:= C02;
-set COriginNodeForCell[U10]:= C02;
-set COriginNodeForCell[U11]:= C04;
-set COriginNodeForCell[U12]:= C03;
-set COriginNodeForCell[U13]:= C03;
-set COriginNodeForCell[U14]:= C05;
-set COriginNodeForCell[U15]:= C04;
-set COriginNodeForCell[U16]:= C04;
-set COriginNodeForCell[U17]:= C06;
-set COriginNodeForCell[U18]:= C06;
-set COriginNodeForCell[U19]:= C06;
-set COriginNodeForCell[U20]:= C08;
-set COriginNodeForCell[U21]:= C08;
-set COriginNodeForCell[U22]:= C07;
-set COriginNodeForCell[U23]:= C05;
-set COriginNodeForCell[U24]:= C05;
-set COriginNodeForCell[U25]:= C07;
-
diff --git a/examples/pysp/forestry/unequalProbs/ForestChile6.dat b/examples/pysp/forestry/unequalProbs/ForestChile6.dat
deleted file mode 100644
index 561df12bb59..00000000000
--- a/examples/pysp/forestry/unequalProbs/ForestChile6.dat
+++ /dev/null
@@ -1,562 +0,0 @@
-# fbv
-# mnr May 3, 2009
-
-# general nodes
-set Nodes := E1
- I1 I2 I3
- C01 C02 C03 C04 C05 C06 C07 C08 C09 ;
-
-# following the notation in the paper (note: nodes \equiv origins)
-
-#
-# Sets
-#
-
-set Times := Ano1 Ano2 Ano3 Ano4;
-
-set OriginNodes := C01 C02 C03 C04 C05 C06 C07 C08 C09 ;
-
-set IntersectionNodes := I1 I2 I3;
-
-set ExitNodes := E1;
-
-set HarvestCells := U1 U2 U3 U4 U5 U6 U7 U8 U9 U10 U11 U12 U13
- U14 U15 U16 U17 U18 U19 U20 U21 U22 U23 U24 U25;
-
-set HCellsForOrigin[C01] := U1 U2 U4 ;
-set HCellsForOrigin[C02] := U6 U7 U9 U10 ;
-set HCellsForOrigin[C03] := U12 U13 ;
-set HCellsForOrigin[C04] := U11 U15 U16 ;
-set HCellsForOrigin[C05] := U14 U23 U24 ;
-set HCellsForOrigin[C06] := U17 U18 U19 ;
-set HCellsForOrigin[C07] := U22 U25 ;
-set HCellsForOrigin[C08] := U20 U21 ;
-set HCellsForOrigin[C09] := U3 U5 U8 ;
-
-set ExistingRoads :=
-C02 C03
-C03 E1
-C05 I1
-I1 I2
-I2 I3
-I3 E1
-;
-
-set PotentialRoads :=
-C01 C09
-C01 C02
-C02 C09
-C09 C02
-C09 E1
-C09 C03
-C04 C03
-C04 I3
-C06 I3
-C08 C06
-C08 I2
-C07 C08
-C07 I1
-C07 C05
-;
-
-set AllRoads :=
-C02 C03
-C03 E1
-C05 I1
-I1 I2
-I2 I3
-I3 E1
-C01 C09
-C01 C02
-C02 C09
-C09 C02
-C09 E1
-C09 C03
-C04 C03
-C04 I3
-C06 I3
-C08 C06
-C08 I2
-C07 C08
-C07 I1
-C07 C05
-;
-
-#
-# Deterministic Parameters
-#
-
-# productivity of cell h if it is harvested in period t
-param a :=
-U1 Ano1 362
-U1 Ano2 362
-U1 Ano3 362
-U1 Ano4 362
-U2 Ano1 362
-U2 Ano2 362
-U2 Ano3 362
-U2 Ano4 362
-U3 Ano1 362
-U3 Ano2 362
-U3 Ano3 362
-U3 Ano4 362
-U4 Ano1 642
-U4 Ano2 642
-U4 Ano3 642
-U4 Ano4 642
-U5 Ano1 362
-U5 Ano2 362
-U5 Ano3 362
-U5 Ano4 362
-U6 Ano1 642
-U6 Ano2 642
-U6 Ano3 642
-U6 Ano4 642
-U7 Ano1 642
-U7 Ano2 642
-U7 Ano3 642
-U7 Ano4 642
-U8 Ano1 362
-U8 Ano2 362
-U8 Ano3 362
-U8 Ano4 362
-U9 Ano1 642
-U9 Ano2 642
-U9 Ano3 642
-U9 Ano4 642
-U10 Ano1 642
-U10 Ano2 642
-U10 Ano3 642
-U10 Ano4 642
-U11 Ano1 600
-U11 Ano2 600
-U11 Ano3 600
-U11 Ano4 600
-U12 Ano1 518
-U12 Ano2 518
-U12 Ano3 518
-U12 Ano4 518
-U13 Ano1 518
-U13 Ano2 518
-U13 Ano3 518
-U13 Ano4 518
-U14 Ano1 567
-U14 Ano2 567
-U14 Ano3 567
-U14 Ano4 567
-U15 Ano1 600
-U15 Ano2 600
-U15 Ano3 600
-U15 Ano4 600
-U16 Ano1 600
-U16 Ano2 600
-U16 Ano3 600
-U16 Ano4 600
-U17 Ano1 518
-U17 Ano2 518
-U17 Ano3 518
-U17 Ano4 518
-U18 Ano1 401
-U18 Ano2 401
-U18 Ano3 401
-U18 Ano4 401
-U19 Ano1 401
-U19 Ano2 401
-U19 Ano3 401
-U19 Ano4 401
-U20 Ano1 401
-U20 Ano2 401
-U20 Ano3 401
-U20 Ano4 401
-U21 Ano1 373
-U21 Ano2 373
-U21 Ano3 373
-U21 Ano4 373
-U22 Ano1 373
-U22 Ano2 373
-U22 Ano3 373
-U22 Ano4 373
-U23 Ano1 567
-U23 Ano2 567
-U23 Ano3 567
-U23 Ano4 567
-U24 Ano1 567
-U24 Ano2 567
-U24 Ano3 567
-U24 Ano4 567
-U25 Ano1 373
-U25 Ano2 373
-U25 Ano3 373
-U25 Ano4 373
-;
-
-# Area of cell h to be harvested
-param A :=
-U1 10.1
-U2 10.1
-U3 10.1
-U4 13.4
-U5 10.3
-U6 10.2
-U7 10.1
-U8 10.4
-U9 16.7
-U10 12.8
-U11 12.2
-U12 15.2
-U13 11.3
-U14 12.7
-U15 12.6
-U16 12.6
-U17 10
-U18 14.4
-U19 10.8
-U20 10.4
-U21 16.4
-U22 10
-U23 11.4
-U24 14.8
-U25 10.1
-;
-
-# harvesting cost of one hectare of cell h in time t
-param P :=
-U1 Ano1 8
-U1 Ano2 8
-U1 Ano3 8
-U1 Ano4 8
-U2 Ano1 8
-U2 Ano2 8
-U2 Ano3 8
-U2 Ano4 8
-U3 Ano1 8
-U3 Ano2 8
-U3 Ano3 8
-U3 Ano4 8
-U4 Ano1 8
-U4 Ano2 8
-U4 Ano3 8
-U4 Ano4 8
-U5 Ano1 8
-U5 Ano2 8
-U5 Ano3 8
-U5 Ano4 8
-U6 Ano1 8
-U6 Ano2 8
-U6 Ano3 8
-U6 Ano4 8
-U7 Ano1 8
-U7 Ano2 8
-U7 Ano3 8
-U7 Ano4 8
-U8 Ano1 8
-U8 Ano2 8
-U8 Ano3 8
-U8 Ano4 8
-U9 Ano1 8
-U9 Ano2 8
-U9 Ano3 8
-U9 Ano4 8
-U10 Ano1 8
-U10 Ano2 8
-U10 Ano3 8
-U10 Ano4 8
-U11 Ano1 8
-U11 Ano2 8
-U11 Ano3 8
-U11 Ano4 8
-U12 Ano1 8
-U12 Ano2 8
-U12 Ano3 8
-U12 Ano4 8
-U13 Ano1 8
-U13 Ano2 8
-U13 Ano3 8
-U13 Ano4 8
-U14 Ano1 8
-U14 Ano2 8
-U14 Ano3 8
-U14 Ano4 8
-U15 Ano1 8
-U15 Ano2 8
-U15 Ano3 8
-U15 Ano4 8
-U16 Ano1 8
-U16 Ano2 8
-U16 Ano3 8
-U16 Ano4 8
-U17 Ano1 8
-U17 Ano2 8
-U17 Ano3 8
-U17 Ano4 8
-U18 Ano1 8
-U18 Ano2 8
-U18 Ano3 8
-U18 Ano4 8
-U19 Ano1 8
-U19 Ano2 8
-U19 Ano3 8
-U19 Ano4 8
-U20 Ano1 8
-U20 Ano2 8
-U20 Ano3 8
-U20 Ano4 8
-U21 Ano1 8
-U21 Ano2 8
-U21 Ano3 8
-U21 Ano4 8
-U22 Ano1 8
-U22 Ano2 8
-U22 Ano3 8
-U22 Ano4 8
-U23 Ano1 8
-U23 Ano2 8
-U23 Ano3 8
-U23 Ano4 8
-U24 Ano1 8
-U24 Ano2 8
-U24 Ano3 8
-U24 Ano4 8
-U25 Ano1 8
-U25 Ano2 8
-U25 Ano3 8
-U25 Ano4 8
-;
-
-
-# prod cost
-param Q :=
-C01 Ano1 0.1
-C01 Ano2 0.1
-C01 Ano3 0.1
-C01 Ano4 0.1
-C02 Ano1 0.1
-C02 Ano2 0.1
-C02 Ano3 0.1
-C02 Ano4 0.1
-C03 Ano1 0.1
-C03 Ano2 0.1
-C03 Ano3 0.1
-C03 Ano4 0.1
-C04 Ano1 0.1
-C04 Ano2 0.1
-C04 Ano3 0.1
-C04 Ano4 0.1
-C05 Ano1 0.1
-C05 Ano2 0.1
-C05 Ano3 0.1
-C05 Ano4 0.1
-C06 Ano1 0.1
-C06 Ano2 0.1
-C06 Ano3 0.1
-C06 Ano4 0.1
-C07 Ano1 0.1
-C07 Ano2 0.1
-C07 Ano3 0.1
-C07 Ano4 0.1
-C08 Ano1 0.1
-C08 Ano2 0.1
-C08 Ano3 0.1
-C08 Ano4 0.1
-C09 Ano1 0.1
-C09 Ano2 0.1
-C09 Ano3 0.1
-C09 Ano4 0.1
-;
-
-# construction cost of one road in arc (k,l) in time t
-param C :=
-C01 C09 Ano1 1440
-C01 C09 Ano2 1309.09
-C01 C09 Ano3 1190.08
-C01 C09 Ano4 1081.89
-C01 C02 Ano1 1950
-C01 C02 Ano2 1772.73
-C01 C02 Ano3 1611.57
-C01 C02 Ano4 1465.06
-C02 C09 Ano1 1690
-C02 C09 Ano2 1536.36
-C02 C09 Ano3 1396.69
-C02 C09 Ano4 1269.72
-C09 C02 Ano1 1690
-C09 C02 Ano2 1536.36
-C09 C02 Ano3 1396.69
-C09 C02 Ano4 1269.72
-C09 E1 Ano1 2840
-C09 E1 Ano2 2581.82
-C09 E1 Ano3 2347.11
-C09 E1 Ano4 2133.73
-C09 C03 Ano1 2190
-C09 C03 Ano2 1990.91
-C09 C03 Ano3 1809.92
-C09 C03 Ano4 1645.38
-C04 C03 Ano1 1170
-C04 C03 Ano2 1063.64
-C04 C03 Ano3 966.94
-C04 C03 Ano4 879.04
-C04 I3 Ano1 1320
-C04 I3 Ano2 1200
-C04 I3 Ano3 1090.91
-C04 I3 Ano4 991.74
-C06 I3 Ano1 150
-C06 I3 Ano2 136.36
-C06 I3 Ano3 123.97
-C06 I3 Ano4 112.7
-C08 C06 Ano1 1950
-C08 C06 Ano2 1772.73
-C08 C06 Ano3 1611.57
-C08 C06 Ano4 1465.06
-C08 I2 Ano1 1110
-C08 I2 Ano2 1009.09
-C08 I2 Ano3 917.36
-C08 I2 Ano4 833.96
-C07 C08 Ano1 930
-C07 C08 Ano2 845.45
-C07 C08 Ano3 768.6
-C07 C08 Ano4 698.72
-C07 I1 Ano1 1950
-C07 I1 Ano2 1772.73
-C07 I1 Ano3 1611.57
-C07 I1 Ano4 1465.06
-C07 C05 Ano1 2130
-C07 C05 Ano2 1936.36
-C07 C05 Ano3 1760.33
-C07 C05 Ano4 1600.3
-;
-
-# unit transport cost through arc (k,l) in time t
-param D :=
-C01 C09 Ano1 1.9
-C01 C02 Ano1 3.25
-C02 C09 Ano1 2.35
-C09 C02 Ano1 2.35
-C09 E1 Ano1 4.1
-C09 C03 Ano1 3.65
-C04 C03 Ano1 1.95
-C04 I3 Ano1 2.2
-C06 I3 Ano1 0.25
-C08 C06 Ano1 3.25
-C08 I2 Ano1 1.85
-C07 C08 Ano1 1.55
-C07 I1 Ano1 3.15
-C07 C05 Ano1 3.25
-C02 C03 Ano1 3.6
-C03 E1 Ano1 1.4
-C05 I1 Ano1 0.95
-I1 I2 Ano1 1.1
-I2 I3 Ano1 1.45
-I3 E1 Ano1 1.95
-C01 C09 Ano2 1.9
-C01 C02 Ano2 3.25
-C02 C09 Ano2 2.35
-C09 C02 Ano2 2.35
-C09 E1 Ano2 4.1
-C09 C03 Ano2 3.65
-C04 C03 Ano2 1.95
-C04 I3 Ano2 2.2
-C06 I3 Ano2 0.25
-C08 C06 Ano2 3.25
-C08 I2 Ano2 1.85
-C07 C08 Ano2 1.55
-C07 I1 Ano2 3.15
-C07 C05 Ano2 3.25
-C02 C03 Ano2 3.6
-C03 E1 Ano2 1.4
-C05 I1 Ano2 0.95
-I1 I2 Ano2 1.1
-I2 I3 Ano2 1.45
-I3 E1 Ano2 1.95
-C01 C09 Ano3 1.9
-C01 C02 Ano3 3.25
-C02 C09 Ano3 2.35
-C09 C02 Ano3 2.35
-C09 E1 Ano3 4.1
-C09 C03 Ano3 3.65
-C04 C03 Ano3 1.95
-C04 I3 Ano3 2.2
-C06 I3 Ano3 0.25
-C08 C06 Ano3 3.25
-C08 I2 Ano3 1.85
-C07 C08 Ano3 1.55
-C07 I1 Ano3 3.15
-C07 C05 Ano3 3.25
-C02 C03 Ano3 3.6
-C03 E1 Ano3 1.4
-C05 I1 Ano3 0.95
-I1 I2 Ano3 1.1
-I2 I3 Ano3 1.45
-I3 E1 Ano3 1.95
-C01 C09 Ano4 1.9
-C01 C02 Ano4 3.25
-C02 C09 Ano4 2.35
-C09 C02 Ano4 2.35
-C09 E1 Ano4 4.1
-C09 C03 Ano4 3.65
-C04 C03 Ano4 1.95
-C04 I3 Ano4 2.2
-C06 I3 Ano4 0.25
-C08 C06 Ano4 3.25
-C08 I2 Ano4 1.85
-C07 C08 Ano4 1.55
-C07 I1 Ano4 3.15
-C07 C05 Ano4 3.25
-C02 C03 Ano4 3.6
-C03 E1 Ano4 1.4
-C05 I1 Ano4 0.95
-I1 I2 Ano4 1.1
-I2 I3 Ano4 1.45
-I3 E1 Ano4 1.95
-;
-
-#
-# Stochastic Parameters
-#
-
-# sale price at exit e in time period t
-param R := E1 Ano1 45
- E1 Ano2 60
- E1 Ano3 45
- E1 Ano4 48 ;
-
-# upper and lower bounds on wood supplied
-param Zlb := Ano1 30000
- Ano2 27000
- Ano3 24000
- Ano4 22000 ;
-param Zub := Ano1 40000
- Ano2 50000
- Ano3 44000
- Ano4 40000 ;
-param yr:=
-Ano1 1
-Ano2 1
-Ano3 1
-Ano4 1
-;
-
-set COriginNodeForCell[U1]:= C01;
-set COriginNodeForCell[U2]:= C01;
-set COriginNodeForCell[U3]:= C09;
-set COriginNodeForCell[U4]:= C01;
-set COriginNodeForCell[U5]:= C09;
-set COriginNodeForCell[U6]:= C02;
-set COriginNodeForCell[U7]:= C02;
-set COriginNodeForCell[U8]:= C09;
-set COriginNodeForCell[U9]:= C02;
-set COriginNodeForCell[U10]:= C02;
-set COriginNodeForCell[U11]:= C04;
-set COriginNodeForCell[U12]:= C03;
-set COriginNodeForCell[U13]:= C03;
-set COriginNodeForCell[U14]:= C05;
-set COriginNodeForCell[U15]:= C04;
-set COriginNodeForCell[U16]:= C04;
-set COriginNodeForCell[U17]:= C06;
-set COriginNodeForCell[U18]:= C06;
-set COriginNodeForCell[U19]:= C06;
-set COriginNodeForCell[U20]:= C08;
-set COriginNodeForCell[U21]:= C08;
-set COriginNodeForCell[U22]:= C07;
-set COriginNodeForCell[U23]:= C05;
-set COriginNodeForCell[U24]:= C05;
-set COriginNodeForCell[U25]:= C07;
-
diff --git a/examples/pysp/forestry/unequalProbs/ForestChile7.dat b/examples/pysp/forestry/unequalProbs/ForestChile7.dat
deleted file mode 100644
index 79fc76653a0..00000000000
--- a/examples/pysp/forestry/unequalProbs/ForestChile7.dat
+++ /dev/null
@@ -1,562 +0,0 @@
-# fbv
-# mnr May 3, 2009
-
-# general nodes
-set Nodes := E1
- I1 I2 I3
- C01 C02 C03 C04 C05 C06 C07 C08 C09 ;
-
-# following the notation in the paper (note: nodes \equiv origins)
-
-#
-# Sets
-#
-
-set Times := Ano1 Ano2 Ano3 Ano4;
-
-set OriginNodes := C01 C02 C03 C04 C05 C06 C07 C08 C09 ;
-
-set IntersectionNodes := I1 I2 I3;
-
-set ExitNodes := E1;
-
-set HarvestCells := U1 U2 U3 U4 U5 U6 U7 U8 U9 U10 U11 U12 U13
- U14 U15 U16 U17 U18 U19 U20 U21 U22 U23 U24 U25;
-
-set HCellsForOrigin[C01] := U1 U2 U4 ;
-set HCellsForOrigin[C02] := U6 U7 U9 U10 ;
-set HCellsForOrigin[C03] := U12 U13 ;
-set HCellsForOrigin[C04] := U11 U15 U16 ;
-set HCellsForOrigin[C05] := U14 U23 U24 ;
-set HCellsForOrigin[C06] := U17 U18 U19 ;
-set HCellsForOrigin[C07] := U22 U25 ;
-set HCellsForOrigin[C08] := U20 U21 ;
-set HCellsForOrigin[C09] := U3 U5 U8 ;
-
-set ExistingRoads :=
-C02 C03
-C03 E1
-C05 I1
-I1 I2
-I2 I3
-I3 E1
-;
-
-set PotentialRoads :=
-C01 C09
-C01 C02
-C02 C09
-C09 C02
-C09 E1
-C09 C03
-C04 C03
-C04 I3
-C06 I3
-C08 C06
-C08 I2
-C07 C08
-C07 I1
-C07 C05
-;
-
-set AllRoads :=
-C02 C03
-C03 E1
-C05 I1
-I1 I2
-I2 I3
-I3 E1
-C01 C09
-C01 C02
-C02 C09
-C09 C02
-C09 E1
-C09 C03
-C04 C03
-C04 I3
-C06 I3
-C08 C06
-C08 I2
-C07 C08
-C07 I1
-C07 C05
-;
-
-#
-# Deterministic Parameters
-#
-
-# productivity of cell h if it is harvested in period t
-param a :=
-U1 Ano1 362
-U1 Ano2 362
-U1 Ano3 362
-U1 Ano4 362
-U2 Ano1 362
-U2 Ano2 362
-U2 Ano3 362
-U2 Ano4 362
-U3 Ano1 362
-U3 Ano2 362
-U3 Ano3 362
-U3 Ano4 362
-U4 Ano1 642
-U4 Ano2 642
-U4 Ano3 642
-U4 Ano4 642
-U5 Ano1 362
-U5 Ano2 362
-U5 Ano3 362
-U5 Ano4 362
-U6 Ano1 642
-U6 Ano2 642
-U6 Ano3 642
-U6 Ano4 642
-U7 Ano1 642
-U7 Ano2 642
-U7 Ano3 642
-U7 Ano4 642
-U8 Ano1 362
-U8 Ano2 362
-U8 Ano3 362
-U8 Ano4 362
-U9 Ano1 642
-U9 Ano2 642
-U9 Ano3 642
-U9 Ano4 642
-U10 Ano1 642
-U10 Ano2 642
-U10 Ano3 642
-U10 Ano4 642
-U11 Ano1 600
-U11 Ano2 600
-U11 Ano3 600
-U11 Ano4 600
-U12 Ano1 518
-U12 Ano2 518
-U12 Ano3 518
-U12 Ano4 518
-U13 Ano1 518
-U13 Ano2 518
-U13 Ano3 518
-U13 Ano4 518
-U14 Ano1 567
-U14 Ano2 567
-U14 Ano3 567
-U14 Ano4 567
-U15 Ano1 600
-U15 Ano2 600
-U15 Ano3 600
-U15 Ano4 600
-U16 Ano1 600
-U16 Ano2 600
-U16 Ano3 600
-U16 Ano4 600
-U17 Ano1 518
-U17 Ano2 518
-U17 Ano3 518
-U17 Ano4 518
-U18 Ano1 401
-U18 Ano2 401
-U18 Ano3 401
-U18 Ano4 401
-U19 Ano1 401
-U19 Ano2 401
-U19 Ano3 401
-U19 Ano4 401
-U20 Ano1 401
-U20 Ano2 401
-U20 Ano3 401
-U20 Ano4 401
-U21 Ano1 373
-U21 Ano2 373
-U21 Ano3 373
-U21 Ano4 373
-U22 Ano1 373
-U22 Ano2 373
-U22 Ano3 373
-U22 Ano4 373
-U23 Ano1 567
-U23 Ano2 567
-U23 Ano3 567
-U23 Ano4 567
-U24 Ano1 567
-U24 Ano2 567
-U24 Ano3 567
-U24 Ano4 567
-U25 Ano1 373
-U25 Ano2 373
-U25 Ano3 373
-U25 Ano4 373
-;
-
-# Area of cell h to be harvested
-param A :=
-U1 10.1
-U2 10.1
-U3 10.1
-U4 13.4
-U5 10.3
-U6 10.2
-U7 10.1
-U8 10.4
-U9 16.7
-U10 12.8
-U11 12.2
-U12 15.2
-U13 11.3
-U14 12.7
-U15 12.6
-U16 12.6
-U17 10
-U18 14.4
-U19 10.8
-U20 10.4
-U21 16.4
-U22 10
-U23 11.4
-U24 14.8
-U25 10.1
-;
-
-# harvesting cost of one hectare of cell h in time t
-param P :=
-U1 Ano1 8
-U1 Ano2 8
-U1 Ano3 8
-U1 Ano4 8
-U2 Ano1 8
-U2 Ano2 8
-U2 Ano3 8
-U2 Ano4 8
-U3 Ano1 8
-U3 Ano2 8
-U3 Ano3 8
-U3 Ano4 8
-U4 Ano1 8
-U4 Ano2 8
-U4 Ano3 8
-U4 Ano4 8
-U5 Ano1 8
-U5 Ano2 8
-U5 Ano3 8
-U5 Ano4 8
-U6 Ano1 8
-U6 Ano2 8
-U6 Ano3 8
-U6 Ano4 8
-U7 Ano1 8
-U7 Ano2 8
-U7 Ano3 8
-U7 Ano4 8
-U8 Ano1 8
-U8 Ano2 8
-U8 Ano3 8
-U8 Ano4 8
-U9 Ano1 8
-U9 Ano2 8
-U9 Ano3 8
-U9 Ano4 8
-U10 Ano1 8
-U10 Ano2 8
-U10 Ano3 8
-U10 Ano4 8
-U11 Ano1 8
-U11 Ano2 8
-U11 Ano3 8
-U11 Ano4 8
-U12 Ano1 8
-U12 Ano2 8
-U12 Ano3 8
-U12 Ano4 8
-U13 Ano1 8
-U13 Ano2 8
-U13 Ano3 8
-U13 Ano4 8
-U14 Ano1 8
-U14 Ano2 8
-U14 Ano3 8
-U14 Ano4 8
-U15 Ano1 8
-U15 Ano2 8
-U15 Ano3 8
-U15 Ano4 8
-U16 Ano1 8
-U16 Ano2 8
-U16 Ano3 8
-U16 Ano4 8
-U17 Ano1 8
-U17 Ano2 8
-U17 Ano3 8
-U17 Ano4 8
-U18 Ano1 8
-U18 Ano2 8
-U18 Ano3 8
-U18 Ano4 8
-U19 Ano1 8
-U19 Ano2 8
-U19 Ano3 8
-U19 Ano4 8
-U20 Ano1 8
-U20 Ano2 8
-U20 Ano3 8
-U20 Ano4 8
-U21 Ano1 8
-U21 Ano2 8
-U21 Ano3 8
-U21 Ano4 8
-U22 Ano1 8
-U22 Ano2 8
-U22 Ano3 8
-U22 Ano4 8
-U23 Ano1 8
-U23 Ano2 8
-U23 Ano3 8
-U23 Ano4 8
-U24 Ano1 8
-U24 Ano2 8
-U24 Ano3 8
-U24 Ano4 8
-U25 Ano1 8
-U25 Ano2 8
-U25 Ano3 8
-U25 Ano4 8
-;
-
-
-# prod cost
-param Q :=
-C01 Ano1 0.1
-C01 Ano2 0.1
-C01 Ano3 0.1
-C01 Ano4 0.1
-C02 Ano1 0.1
-C02 Ano2 0.1
-C02 Ano3 0.1
-C02 Ano4 0.1
-C03 Ano1 0.1
-C03 Ano2 0.1
-C03 Ano3 0.1
-C03 Ano4 0.1
-C04 Ano1 0.1
-C04 Ano2 0.1
-C04 Ano3 0.1
-C04 Ano4 0.1
-C05 Ano1 0.1
-C05 Ano2 0.1
-C05 Ano3 0.1
-C05 Ano4 0.1
-C06 Ano1 0.1
-C06 Ano2 0.1
-C06 Ano3 0.1
-C06 Ano4 0.1
-C07 Ano1 0.1
-C07 Ano2 0.1
-C07 Ano3 0.1
-C07 Ano4 0.1
-C08 Ano1 0.1
-C08 Ano2 0.1
-C08 Ano3 0.1
-C08 Ano4 0.1
-C09 Ano1 0.1
-C09 Ano2 0.1
-C09 Ano3 0.1
-C09 Ano4 0.1
-;
-
-# construction cost of one road in arc (k,l) in time t
-param C :=
-C01 C09 Ano1 1440
-C01 C09 Ano2 1309.09
-C01 C09 Ano3 1190.08
-C01 C09 Ano4 1081.89
-C01 C02 Ano1 1950
-C01 C02 Ano2 1772.73
-C01 C02 Ano3 1611.57
-C01 C02 Ano4 1465.06
-C02 C09 Ano1 1690
-C02 C09 Ano2 1536.36
-C02 C09 Ano3 1396.69
-C02 C09 Ano4 1269.72
-C09 C02 Ano1 1690
-C09 C02 Ano2 1536.36
-C09 C02 Ano3 1396.69
-C09 C02 Ano4 1269.72
-C09 E1 Ano1 2840
-C09 E1 Ano2 2581.82
-C09 E1 Ano3 2347.11
-C09 E1 Ano4 2133.73
-C09 C03 Ano1 2190
-C09 C03 Ano2 1990.91
-C09 C03 Ano3 1809.92
-C09 C03 Ano4 1645.38
-C04 C03 Ano1 1170
-C04 C03 Ano2 1063.64
-C04 C03 Ano3 966.94
-C04 C03 Ano4 879.04
-C04 I3 Ano1 1320
-C04 I3 Ano2 1200
-C04 I3 Ano3 1090.91
-C04 I3 Ano4 991.74
-C06 I3 Ano1 150
-C06 I3 Ano2 136.36
-C06 I3 Ano3 123.97
-C06 I3 Ano4 112.7
-C08 C06 Ano1 1950
-C08 C06 Ano2 1772.73
-C08 C06 Ano3 1611.57
-C08 C06 Ano4 1465.06
-C08 I2 Ano1 1110
-C08 I2 Ano2 1009.09
-C08 I2 Ano3 917.36
-C08 I2 Ano4 833.96
-C07 C08 Ano1 930
-C07 C08 Ano2 845.45
-C07 C08 Ano3 768.6
-C07 C08 Ano4 698.72
-C07 I1 Ano1 1950
-C07 I1 Ano2 1772.73
-C07 I1 Ano3 1611.57
-C07 I1 Ano4 1465.06
-C07 C05 Ano1 2130
-C07 C05 Ano2 1936.36
-C07 C05 Ano3 1760.33
-C07 C05 Ano4 1600.3
-;
-
-# unit transport cost through arc (k,l) in time t
-param D :=
-C01 C09 Ano1 1.9
-C01 C02 Ano1 3.25
-C02 C09 Ano1 2.35
-C09 C02 Ano1 2.35
-C09 E1 Ano1 4.1
-C09 C03 Ano1 3.65
-C04 C03 Ano1 1.95
-C04 I3 Ano1 2.2
-C06 I3 Ano1 0.25
-C08 C06 Ano1 3.25
-C08 I2 Ano1 1.85
-C07 C08 Ano1 1.55
-C07 I1 Ano1 3.15
-C07 C05 Ano1 3.25
-C02 C03 Ano1 3.6
-C03 E1 Ano1 1.4
-C05 I1 Ano1 0.95
-I1 I2 Ano1 1.1
-I2 I3 Ano1 1.45
-I3 E1 Ano1 1.95
-C01 C09 Ano2 1.9
-C01 C02 Ano2 3.25
-C02 C09 Ano2 2.35
-C09 C02 Ano2 2.35
-C09 E1 Ano2 4.1
-C09 C03 Ano2 3.65
-C04 C03 Ano2 1.95
-C04 I3 Ano2 2.2
-C06 I3 Ano2 0.25
-C08 C06 Ano2 3.25
-C08 I2 Ano2 1.85
-C07 C08 Ano2 1.55
-C07 I1 Ano2 3.15
-C07 C05 Ano2 3.25
-C02 C03 Ano2 3.6
-C03 E1 Ano2 1.4
-C05 I1 Ano2 0.95
-I1 I2 Ano2 1.1
-I2 I3 Ano2 1.45
-I3 E1 Ano2 1.95
-C01 C09 Ano3 1.9
-C01 C02 Ano3 3.25
-C02 C09 Ano3 2.35
-C09 C02 Ano3 2.35
-C09 E1 Ano3 4.1
-C09 C03 Ano3 3.65
-C04 C03 Ano3 1.95
-C04 I3 Ano3 2.2
-C06 I3 Ano3 0.25
-C08 C06 Ano3 3.25
-C08 I2 Ano3 1.85
-C07 C08 Ano3 1.55
-C07 I1 Ano3 3.15
-C07 C05 Ano3 3.25
-C02 C03 Ano3 3.6
-C03 E1 Ano3 1.4
-C05 I1 Ano3 0.95
-I1 I2 Ano3 1.1
-I2 I3 Ano3 1.45
-I3 E1 Ano3 1.95
-C01 C09 Ano4 1.9
-C01 C02 Ano4 3.25
-C02 C09 Ano4 2.35
-C09 C02 Ano4 2.35
-C09 E1 Ano4 4.1
-C09 C03 Ano4 3.65
-C04 C03 Ano4 1.95
-C04 I3 Ano4 2.2
-C06 I3 Ano4 0.25
-C08 C06 Ano4 3.25
-C08 I2 Ano4 1.85
-C07 C08 Ano4 1.55
-C07 I1 Ano4 3.15
-C07 C05 Ano4 3.25
-C02 C03 Ano4 3.6
-C03 E1 Ano4 1.4
-C05 I1 Ano4 0.95
-I1 I2 Ano4 1.1
-I2 I3 Ano4 1.45
-I3 E1 Ano4 1.95
-;
-
-#
-# Stochastic Parameters
-#
-
-# sale price at exit e in time period t
-param R := E1 Ano1 45
- E1 Ano2 45
- E1 Ano3 52
- E1 Ano4 55 ;
-
-# upper and lower bounds on wood supplied
-param Zlb := Ano1 30000
- Ano2 15000
- Ano3 27000
- Ano4 21000 ;
-param Zub := Ano1 40000
- Ano2 33000
- Ano3 45000
- Ano4 50000 ;
-param yr:=
-Ano1 1
-Ano2 1
-Ano3 1
-Ano4 1
-;
-
-set COriginNodeForCell[U1]:= C01;
-set COriginNodeForCell[U2]:= C01;
-set COriginNodeForCell[U3]:= C09;
-set COriginNodeForCell[U4]:= C01;
-set COriginNodeForCell[U5]:= C09;
-set COriginNodeForCell[U6]:= C02;
-set COriginNodeForCell[U7]:= C02;
-set COriginNodeForCell[U8]:= C09;
-set COriginNodeForCell[U9]:= C02;
-set COriginNodeForCell[U10]:= C02;
-set COriginNodeForCell[U11]:= C04;
-set COriginNodeForCell[U12]:= C03;
-set COriginNodeForCell[U13]:= C03;
-set COriginNodeForCell[U14]:= C05;
-set COriginNodeForCell[U15]:= C04;
-set COriginNodeForCell[U16]:= C04;
-set COriginNodeForCell[U17]:= C06;
-set COriginNodeForCell[U18]:= C06;
-set COriginNodeForCell[U19]:= C06;
-set COriginNodeForCell[U20]:= C08;
-set COriginNodeForCell[U21]:= C08;
-set COriginNodeForCell[U22]:= C07;
-set COriginNodeForCell[U23]:= C05;
-set COriginNodeForCell[U24]:= C05;
-set COriginNodeForCell[U25]:= C07;
-
diff --git a/examples/pysp/forestry/unequalProbs/ForestChile8.dat b/examples/pysp/forestry/unequalProbs/ForestChile8.dat
deleted file mode 100644
index 87490a8a4c8..00000000000
--- a/examples/pysp/forestry/unequalProbs/ForestChile8.dat
+++ /dev/null
@@ -1,562 +0,0 @@
-# fbv
-# mnr May 3, 2009
-
-# general nodes
-set Nodes := E1
- I1 I2 I3
- C01 C02 C03 C04 C05 C06 C07 C08 C09 ;
-
-# following the notation in the paper (note: nodes \equiv origins)
-
-#
-# Sets
-#
-
-set Times := Ano1 Ano2 Ano3 Ano4;
-
-set OriginNodes := C01 C02 C03 C04 C05 C06 C07 C08 C09 ;
-
-set IntersectionNodes := I1 I2 I3;
-
-set ExitNodes := E1;
-
-set HarvestCells := U1 U2 U3 U4 U5 U6 U7 U8 U9 U10 U11 U12 U13
- U14 U15 U16 U17 U18 U19 U20 U21 U22 U23 U24 U25;
-
-set HCellsForOrigin[C01] := U1 U2 U4 ;
-set HCellsForOrigin[C02] := U6 U7 U9 U10 ;
-set HCellsForOrigin[C03] := U12 U13 ;
-set HCellsForOrigin[C04] := U11 U15 U16 ;
-set HCellsForOrigin[C05] := U14 U23 U24 ;
-set HCellsForOrigin[C06] := U17 U18 U19 ;
-set HCellsForOrigin[C07] := U22 U25 ;
-set HCellsForOrigin[C08] := U20 U21 ;
-set HCellsForOrigin[C09] := U3 U5 U8 ;
-
-set ExistingRoads :=
-C02 C03
-C03 E1
-C05 I1
-I1 I2
-I2 I3
-I3 E1
-;
-
-set PotentialRoads :=
-C01 C09
-C01 C02
-C02 C09
-C09 C02
-C09 E1
-C09 C03
-C04 C03
-C04 I3
-C06 I3
-C08 C06
-C08 I2
-C07 C08
-C07 I1
-C07 C05
-;
-
-set AllRoads :=
-C02 C03
-C03 E1
-C05 I1
-I1 I2
-I2 I3
-I3 E1
-C01 C09
-C01 C02
-C02 C09
-C09 C02
-C09 E1
-C09 C03
-C04 C03
-C04 I3
-C06 I3
-C08 C06
-C08 I2
-C07 C08
-C07 I1
-C07 C05
-;
-
-#
-# Deterministic Parameters
-#
-
-# productivity of cell h if it is harvested in period t
-param a :=
-U1 Ano1 362
-U1 Ano2 362
-U1 Ano3 362
-U1 Ano4 362
-U2 Ano1 362
-U2 Ano2 362
-U2 Ano3 362
-U2 Ano4 362
-U3 Ano1 362
-U3 Ano2 362
-U3 Ano3 362
-U3 Ano4 362
-U4 Ano1 642
-U4 Ano2 642
-U4 Ano3 642
-U4 Ano4 642
-U5 Ano1 362
-U5 Ano2 362
-U5 Ano3 362
-U5 Ano4 362
-U6 Ano1 642
-U6 Ano2 642
-U6 Ano3 642
-U6 Ano4 642
-U7 Ano1 642
-U7 Ano2 642
-U7 Ano3 642
-U7 Ano4 642
-U8 Ano1 362
-U8 Ano2 362
-U8 Ano3 362
-U8 Ano4 362
-U9 Ano1 642
-U9 Ano2 642
-U9 Ano3 642
-U9 Ano4 642
-U10 Ano1 642
-U10 Ano2 642
-U10 Ano3 642
-U10 Ano4 642
-U11 Ano1 600
-U11 Ano2 600
-U11 Ano3 600
-U11 Ano4 600
-U12 Ano1 518
-U12 Ano2 518
-U12 Ano3 518
-U12 Ano4 518
-U13 Ano1 518
-U13 Ano2 518
-U13 Ano3 518
-U13 Ano4 518
-U14 Ano1 567
-U14 Ano2 567
-U14 Ano3 567
-U14 Ano4 567
-U15 Ano1 600
-U15 Ano2 600
-U15 Ano3 600
-U15 Ano4 600
-U16 Ano1 600
-U16 Ano2 600
-U16 Ano3 600
-U16 Ano4 600
-U17 Ano1 518
-U17 Ano2 518
-U17 Ano3 518
-U17 Ano4 518
-U18 Ano1 401
-U18 Ano2 401
-U18 Ano3 401
-U18 Ano4 401
-U19 Ano1 401
-U19 Ano2 401
-U19 Ano3 401
-U19 Ano4 401
-U20 Ano1 401
-U20 Ano2 401
-U20 Ano3 401
-U20 Ano4 401
-U21 Ano1 373
-U21 Ano2 373
-U21 Ano3 373
-U21 Ano4 373
-U22 Ano1 373
-U22 Ano2 373
-U22 Ano3 373
-U22 Ano4 373
-U23 Ano1 567
-U23 Ano2 567
-U23 Ano3 567
-U23 Ano4 567
-U24 Ano1 567
-U24 Ano2 567
-U24 Ano3 567
-U24 Ano4 567
-U25 Ano1 373
-U25 Ano2 373
-U25 Ano3 373
-U25 Ano4 373
-;
-
-# Area of cell h to be harvested
-param A :=
-U1 10.1
-U2 10.1
-U3 10.1
-U4 13.4
-U5 10.3
-U6 10.2
-U7 10.1
-U8 10.4
-U9 16.7
-U10 12.8
-U11 12.2
-U12 15.2
-U13 11.3
-U14 12.7
-U15 12.6
-U16 12.6
-U17 10
-U18 14.4
-U19 10.8
-U20 10.4
-U21 16.4
-U22 10
-U23 11.4
-U24 14.8
-U25 10.1
-;
-
-# harvesting cost of one hectare of cell h in time t
-param P :=
-U1 Ano1 8
-U1 Ano2 8
-U1 Ano3 8
-U1 Ano4 8
-U2 Ano1 8
-U2 Ano2 8
-U2 Ano3 8
-U2 Ano4 8
-U3 Ano1 8
-U3 Ano2 8
-U3 Ano3 8
-U3 Ano4 8
-U4 Ano1 8
-U4 Ano2 8
-U4 Ano3 8
-U4 Ano4 8
-U5 Ano1 8
-U5 Ano2 8
-U5 Ano3 8
-U5 Ano4 8
-U6 Ano1 8
-U6 Ano2 8
-U6 Ano3 8
-U6 Ano4 8
-U7 Ano1 8
-U7 Ano2 8
-U7 Ano3 8
-U7 Ano4 8
-U8 Ano1 8
-U8 Ano2 8
-U8 Ano3 8
-U8 Ano4 8
-U9 Ano1 8
-U9 Ano2 8
-U9 Ano3 8
-U9 Ano4 8
-U10 Ano1 8
-U10 Ano2 8
-U10 Ano3 8
-U10 Ano4 8
-U11 Ano1 8
-U11 Ano2 8
-U11 Ano3 8
-U11 Ano4 8
-U12 Ano1 8
-U12 Ano2 8
-U12 Ano3 8
-U12 Ano4 8
-U13 Ano1 8
-U13 Ano2 8
-U13 Ano3 8
-U13 Ano4 8
-U14 Ano1 8
-U14 Ano2 8
-U14 Ano3 8
-U14 Ano4 8
-U15 Ano1 8
-U15 Ano2 8
-U15 Ano3 8
-U15 Ano4 8
-U16 Ano1 8
-U16 Ano2 8
-U16 Ano3 8
-U16 Ano4 8
-U17 Ano1 8
-U17 Ano2 8
-U17 Ano3 8
-U17 Ano4 8
-U18 Ano1 8
-U18 Ano2 8
-U18 Ano3 8
-U18 Ano4 8
-U19 Ano1 8
-U19 Ano2 8
-U19 Ano3 8
-U19 Ano4 8
-U20 Ano1 8
-U20 Ano2 8
-U20 Ano3 8
-U20 Ano4 8
-U21 Ano1 8
-U21 Ano2 8
-U21 Ano3 8
-U21 Ano4 8
-U22 Ano1 8
-U22 Ano2 8
-U22 Ano3 8
-U22 Ano4 8
-U23 Ano1 8
-U23 Ano2 8
-U23 Ano3 8
-U23 Ano4 8
-U24 Ano1 8
-U24 Ano2 8
-U24 Ano3 8
-U24 Ano4 8
-U25 Ano1 8
-U25 Ano2 8
-U25 Ano3 8
-U25 Ano4 8
-;
-
-
-# prod cost
-param Q :=
-C01 Ano1 0.1
-C01 Ano2 0.1
-C01 Ano3 0.1
-C01 Ano4 0.1
-C02 Ano1 0.1
-C02 Ano2 0.1
-C02 Ano3 0.1
-C02 Ano4 0.1
-C03 Ano1 0.1
-C03 Ano2 0.1
-C03 Ano3 0.1
-C03 Ano4 0.1
-C04 Ano1 0.1
-C04 Ano2 0.1
-C04 Ano3 0.1
-C04 Ano4 0.1
-C05 Ano1 0.1
-C05 Ano2 0.1
-C05 Ano3 0.1
-C05 Ano4 0.1
-C06 Ano1 0.1
-C06 Ano2 0.1
-C06 Ano3 0.1
-C06 Ano4 0.1
-C07 Ano1 0.1
-C07 Ano2 0.1
-C07 Ano3 0.1
-C07 Ano4 0.1
-C08 Ano1 0.1
-C08 Ano2 0.1
-C08 Ano3 0.1
-C08 Ano4 0.1
-C09 Ano1 0.1
-C09 Ano2 0.1
-C09 Ano3 0.1
-C09 Ano4 0.1
-;
-
-# construction cost of one road in arc (k,l) in time t
-param C :=
-C01 C09 Ano1 1440
-C01 C09 Ano2 1309.09
-C01 C09 Ano3 1190.08
-C01 C09 Ano4 1081.89
-C01 C02 Ano1 1950
-C01 C02 Ano2 1772.73
-C01 C02 Ano3 1611.57
-C01 C02 Ano4 1465.06
-C02 C09 Ano1 1690
-C02 C09 Ano2 1536.36
-C02 C09 Ano3 1396.69
-C02 C09 Ano4 1269.72
-C09 C02 Ano1 1690
-C09 C02 Ano2 1536.36
-C09 C02 Ano3 1396.69
-C09 C02 Ano4 1269.72
-C09 E1 Ano1 2840
-C09 E1 Ano2 2581.82
-C09 E1 Ano3 2347.11
-C09 E1 Ano4 2133.73
-C09 C03 Ano1 2190
-C09 C03 Ano2 1990.91
-C09 C03 Ano3 1809.92
-C09 C03 Ano4 1645.38
-C04 C03 Ano1 1170
-C04 C03 Ano2 1063.64
-C04 C03 Ano3 966.94
-C04 C03 Ano4 879.04
-C04 I3 Ano1 1320
-C04 I3 Ano2 1200
-C04 I3 Ano3 1090.91
-C04 I3 Ano4 991.74
-C06 I3 Ano1 150
-C06 I3 Ano2 136.36
-C06 I3 Ano3 123.97
-C06 I3 Ano4 112.7
-C08 C06 Ano1 1950
-C08 C06 Ano2 1772.73
-C08 C06 Ano3 1611.57
-C08 C06 Ano4 1465.06
-C08 I2 Ano1 1110
-C08 I2 Ano2 1009.09
-C08 I2 Ano3 917.36
-C08 I2 Ano4 833.96
-C07 C08 Ano1 930
-C07 C08 Ano2 845.45
-C07 C08 Ano3 768.6
-C07 C08 Ano4 698.72
-C07 I1 Ano1 1950
-C07 I1 Ano2 1772.73
-C07 I1 Ano3 1611.57
-C07 I1 Ano4 1465.06
-C07 C05 Ano1 2130
-C07 C05 Ano2 1936.36
-C07 C05 Ano3 1760.33
-C07 C05 Ano4 1600.3
-;
-
-# unit transport cost through arc (k,l) in time t
-param D :=
-C01 C09 Ano1 1.9
-C01 C02 Ano1 3.25
-C02 C09 Ano1 2.35
-C09 C02 Ano1 2.35
-C09 E1 Ano1 4.1
-C09 C03 Ano1 3.65
-C04 C03 Ano1 1.95
-C04 I3 Ano1 2.2
-C06 I3 Ano1 0.25
-C08 C06 Ano1 3.25
-C08 I2 Ano1 1.85
-C07 C08 Ano1 1.55
-C07 I1 Ano1 3.15
-C07 C05 Ano1 3.25
-C02 C03 Ano1 3.6
-C03 E1 Ano1 1.4
-C05 I1 Ano1 0.95
-I1 I2 Ano1 1.1
-I2 I3 Ano1 1.45
-I3 E1 Ano1 1.95
-C01 C09 Ano2 1.9
-C01 C02 Ano2 3.25
-C02 C09 Ano2 2.35
-C09 C02 Ano2 2.35
-C09 E1 Ano2 4.1
-C09 C03 Ano2 3.65
-C04 C03 Ano2 1.95
-C04 I3 Ano2 2.2
-C06 I3 Ano2 0.25
-C08 C06 Ano2 3.25
-C08 I2 Ano2 1.85
-C07 C08 Ano2 1.55
-C07 I1 Ano2 3.15
-C07 C05 Ano2 3.25
-C02 C03 Ano2 3.6
-C03 E1 Ano2 1.4
-C05 I1 Ano2 0.95
-I1 I2 Ano2 1.1
-I2 I3 Ano2 1.45
-I3 E1 Ano2 1.95
-C01 C09 Ano3 1.9
-C01 C02 Ano3 3.25
-C02 C09 Ano3 2.35
-C09 C02 Ano3 2.35
-C09 E1 Ano3 4.1
-C09 C03 Ano3 3.65
-C04 C03 Ano3 1.95
-C04 I3 Ano3 2.2
-C06 I3 Ano3 0.25
-C08 C06 Ano3 3.25
-C08 I2 Ano3 1.85
-C07 C08 Ano3 1.55
-C07 I1 Ano3 3.15
-C07 C05 Ano3 3.25
-C02 C03 Ano3 3.6
-C03 E1 Ano3 1.4
-C05 I1 Ano3 0.95
-I1 I2 Ano3 1.1
-I2 I3 Ano3 1.45
-I3 E1 Ano3 1.95
-C01 C09 Ano4 1.9
-C01 C02 Ano4 3.25
-C02 C09 Ano4 2.35
-C09 C02 Ano4 2.35
-C09 E1 Ano4 4.1
-C09 C03 Ano4 3.65
-C04 C03 Ano4 1.95
-C04 I3 Ano4 2.2
-C06 I3 Ano4 0.25
-C08 C06 Ano4 3.25
-C08 I2 Ano4 1.85
-C07 C08 Ano4 1.55
-C07 I1 Ano4 3.15
-C07 C05 Ano4 3.25
-C02 C03 Ano4 3.6
-C03 E1 Ano4 1.4
-C05 I1 Ano4 0.95
-I1 I2 Ano4 1.1
-I2 I3 Ano4 1.45
-I3 E1 Ano4 1.95
-;
-
-#
-# Stochastic Parameters
-#
-
-# sale price at exit e in time period t
-param R := E1 Ano1 45
- E1 Ano2 45
- E1 Ano3 52
- E1 Ano4 44 ;
-
-# upper and lower bounds on wood supplied
-param Zlb := Ano1 30000
- Ano2 15000
- Ano3 27000
- Ano4 19000 ;
-param Zub := Ano1 40000
- Ano2 33000
- Ano3 45000
- Ano4 42000 ;
-param yr:=
-Ano1 1
-Ano2 1
-Ano3 1
-Ano4 1
-;
-
-set COriginNodeForCell[U1]:= C01;
-set COriginNodeForCell[U2]:= C01;
-set COriginNodeForCell[U3]:= C09;
-set COriginNodeForCell[U4]:= C01;
-set COriginNodeForCell[U5]:= C09;
-set COriginNodeForCell[U6]:= C02;
-set COriginNodeForCell[U7]:= C02;
-set COriginNodeForCell[U8]:= C09;
-set COriginNodeForCell[U9]:= C02;
-set COriginNodeForCell[U10]:= C02;
-set COriginNodeForCell[U11]:= C04;
-set COriginNodeForCell[U12]:= C03;
-set COriginNodeForCell[U13]:= C03;
-set COriginNodeForCell[U14]:= C05;
-set COriginNodeForCell[U15]:= C04;
-set COriginNodeForCell[U16]:= C04;
-set COriginNodeForCell[U17]:= C06;
-set COriginNodeForCell[U18]:= C06;
-set COriginNodeForCell[U19]:= C06;
-set COriginNodeForCell[U20]:= C08;
-set COriginNodeForCell[U21]:= C08;
-set COriginNodeForCell[U22]:= C07;
-set COriginNodeForCell[U23]:= C05;
-set COriginNodeForCell[U24]:= C05;
-set COriginNodeForCell[U25]:= C07;
-
diff --git a/examples/pysp/forestry/unequalProbs/ForestChile9.dat b/examples/pysp/forestry/unequalProbs/ForestChile9.dat
deleted file mode 100644
index 00bd057daf4..00000000000
--- a/examples/pysp/forestry/unequalProbs/ForestChile9.dat
+++ /dev/null
@@ -1,562 +0,0 @@
-# fbv
-# mnr May 3, 2009
-
-# general nodes
-set Nodes := E1
- I1 I2 I3
- C01 C02 C03 C04 C05 C06 C07 C08 C09 ;
-
-# following the notation in the paper (note: nodes \equiv origins)
-
-#
-# Sets
-#
-
-set Times := Ano1 Ano2 Ano3 Ano4;
-
-set OriginNodes := C01 C02 C03 C04 C05 C06 C07 C08 C09 ;
-
-set IntersectionNodes := I1 I2 I3;
-
-set ExitNodes := E1;
-
-set HarvestCells := U1 U2 U3 U4 U5 U6 U7 U8 U9 U10 U11 U12 U13
- U14 U15 U16 U17 U18 U19 U20 U21 U22 U23 U24 U25;
-
-set HCellsForOrigin[C01] := U1 U2 U4 ;
-set HCellsForOrigin[C02] := U6 U7 U9 U10 ;
-set HCellsForOrigin[C03] := U12 U13 ;
-set HCellsForOrigin[C04] := U11 U15 U16 ;
-set HCellsForOrigin[C05] := U14 U23 U24 ;
-set HCellsForOrigin[C06] := U17 U18 U19 ;
-set HCellsForOrigin[C07] := U22 U25 ;
-set HCellsForOrigin[C08] := U20 U21 ;
-set HCellsForOrigin[C09] := U3 U5 U8 ;
-
-set ExistingRoads :=
-C02 C03
-C03 E1
-C05 I1
-I1 I2
-I2 I3
-I3 E1
-;
-
-set PotentialRoads :=
-C01 C09
-C01 C02
-C02 C09
-C09 C02
-C09 E1
-C09 C03
-C04 C03
-C04 I3
-C06 I3
-C08 C06
-C08 I2
-C07 C08
-C07 I1
-C07 C05
-;
-
-set AllRoads :=
-C02 C03
-C03 E1
-C05 I1
-I1 I2
-I2 I3
-I3 E1
-C01 C09
-C01 C02
-C02 C09
-C09 C02
-C09 E1
-C09 C03
-C04 C03
-C04 I3
-C06 I3
-C08 C06
-C08 I2
-C07 C08
-C07 I1
-C07 C05
-;
-
-#
-# Deterministic Parameters
-#
-
-# productivity of cell h if it is harvested in period t
-param a :=
-U1 Ano1 362
-U1 Ano2 362
-U1 Ano3 362
-U1 Ano4 362
-U2 Ano1 362
-U2 Ano2 362
-U2 Ano3 362
-U2 Ano4 362
-U3 Ano1 362
-U3 Ano2 362
-U3 Ano3 362
-U3 Ano4 362
-U4 Ano1 642
-U4 Ano2 642
-U4 Ano3 642
-U4 Ano4 642
-U5 Ano1 362
-U5 Ano2 362
-U5 Ano3 362
-U5 Ano4 362
-U6 Ano1 642
-U6 Ano2 642
-U6 Ano3 642
-U6 Ano4 642
-U7 Ano1 642
-U7 Ano2 642
-U7 Ano3 642
-U7 Ano4 642
-U8 Ano1 362
-U8 Ano2 362
-U8 Ano3 362
-U8 Ano4 362
-U9 Ano1 642
-U9 Ano2 642
-U9 Ano3 642
-U9 Ano4 642
-U10 Ano1 642
-U10 Ano2 642
-U10 Ano3 642
-U10 Ano4 642
-U11 Ano1 600
-U11 Ano2 600
-U11 Ano3 600
-U11 Ano4 600
-U12 Ano1 518
-U12 Ano2 518
-U12 Ano3 518
-U12 Ano4 518
-U13 Ano1 518
-U13 Ano2 518
-U13 Ano3 518
-U13 Ano4 518
-U14 Ano1 567
-U14 Ano2 567
-U14 Ano3 567
-U14 Ano4 567
-U15 Ano1 600
-U15 Ano2 600
-U15 Ano3 600
-U15 Ano4 600
-U16 Ano1 600
-U16 Ano2 600
-U16 Ano3 600
-U16 Ano4 600
-U17 Ano1 518
-U17 Ano2 518
-U17 Ano3 518
-U17 Ano4 518
-U18 Ano1 401
-U18 Ano2 401
-U18 Ano3 401
-U18 Ano4 401
-U19 Ano1 401
-U19 Ano2 401
-U19 Ano3 401
-U19 Ano4 401
-U20 Ano1 401
-U20 Ano2 401
-U20 Ano3 401
-U20 Ano4 401
-U21 Ano1 373
-U21 Ano2 373
-U21 Ano3 373
-U21 Ano4 373
-U22 Ano1 373
-U22 Ano2 373
-U22 Ano3 373
-U22 Ano4 373
-U23 Ano1 567
-U23 Ano2 567
-U23 Ano3 567
-U23 Ano4 567
-U24 Ano1 567
-U24 Ano2 567
-U24 Ano3 567
-U24 Ano4 567
-U25 Ano1 373
-U25 Ano2 373
-U25 Ano3 373
-U25 Ano4 373
-;
-
-# Area of cell h to be harvested
-param A :=
-U1 10.1
-U2 10.1
-U3 10.1
-U4 13.4
-U5 10.3
-U6 10.2
-U7 10.1
-U8 10.4
-U9 16.7
-U10 12.8
-U11 12.2
-U12 15.2
-U13 11.3
-U14 12.7
-U15 12.6
-U16 12.6
-U17 10
-U18 14.4
-U19 10.8
-U20 10.4
-U21 16.4
-U22 10
-U23 11.4
-U24 14.8
-U25 10.1
-;
-
-# harvesting cost of one hectare of cell h in time t
-param P :=
-U1 Ano1 8
-U1 Ano2 8
-U1 Ano3 8
-U1 Ano4 8
-U2 Ano1 8
-U2 Ano2 8
-U2 Ano3 8
-U2 Ano4 8
-U3 Ano1 8
-U3 Ano2 8
-U3 Ano3 8
-U3 Ano4 8
-U4 Ano1 8
-U4 Ano2 8
-U4 Ano3 8
-U4 Ano4 8
-U5 Ano1 8
-U5 Ano2 8
-U5 Ano3 8
-U5 Ano4 8
-U6 Ano1 8
-U6 Ano2 8
-U6 Ano3 8
-U6 Ano4 8
-U7 Ano1 8
-U7 Ano2 8
-U7 Ano3 8
-U7 Ano4 8
-U8 Ano1 8
-U8 Ano2 8
-U8 Ano3 8
-U8 Ano4 8
-U9 Ano1 8
-U9 Ano2 8
-U9 Ano3 8
-U9 Ano4 8
-U10 Ano1 8
-U10 Ano2 8
-U10 Ano3 8
-U10 Ano4 8
-U11 Ano1 8
-U11 Ano2 8
-U11 Ano3 8
-U11 Ano4 8
-U12 Ano1 8
-U12 Ano2 8
-U12 Ano3 8
-U12 Ano4 8
-U13 Ano1 8
-U13 Ano2 8
-U13 Ano3 8
-U13 Ano4 8
-U14 Ano1 8
-U14 Ano2 8
-U14 Ano3 8
-U14 Ano4 8
-U15 Ano1 8
-U15 Ano2 8
-U15 Ano3 8
-U15 Ano4 8
-U16 Ano1 8
-U16 Ano2 8
-U16 Ano3 8
-U16 Ano4 8
-U17 Ano1 8
-U17 Ano2 8
-U17 Ano3 8
-U17 Ano4 8
-U18 Ano1 8
-U18 Ano2 8
-U18 Ano3 8
-U18 Ano4 8
-U19 Ano1 8
-U19 Ano2 8
-U19 Ano3 8
-U19 Ano4 8
-U20 Ano1 8
-U20 Ano2 8
-U20 Ano3 8
-U20 Ano4 8
-U21 Ano1 8
-U21 Ano2 8
-U21 Ano3 8
-U21 Ano4 8
-U22 Ano1 8
-U22 Ano2 8
-U22 Ano3 8
-U22 Ano4 8
-U23 Ano1 8
-U23 Ano2 8
-U23 Ano3 8
-U23 Ano4 8
-U24 Ano1 8
-U24 Ano2 8
-U24 Ano3 8
-U24 Ano4 8
-U25 Ano1 8
-U25 Ano2 8
-U25 Ano3 8
-U25 Ano4 8
-;
-
-
-# prod cost
-param Q :=
-C01 Ano1 0.1
-C01 Ano2 0.1
-C01 Ano3 0.1
-C01 Ano4 0.1
-C02 Ano1 0.1
-C02 Ano2 0.1
-C02 Ano3 0.1
-C02 Ano4 0.1
-C03 Ano1 0.1
-C03 Ano2 0.1
-C03 Ano3 0.1
-C03 Ano4 0.1
-C04 Ano1 0.1
-C04 Ano2 0.1
-C04 Ano3 0.1
-C04 Ano4 0.1
-C05 Ano1 0.1
-C05 Ano2 0.1
-C05 Ano3 0.1
-C05 Ano4 0.1
-C06 Ano1 0.1
-C06 Ano2 0.1
-C06 Ano3 0.1
-C06 Ano4 0.1
-C07 Ano1 0.1
-C07 Ano2 0.1
-C07 Ano3 0.1
-C07 Ano4 0.1
-C08 Ano1 0.1
-C08 Ano2 0.1
-C08 Ano3 0.1
-C08 Ano4 0.1
-C09 Ano1 0.1
-C09 Ano2 0.1
-C09 Ano3 0.1
-C09 Ano4 0.1
-;
-
-# construction cost of one road in arc (k,l) in time t
-param C :=
-C01 C09 Ano1 1440
-C01 C09 Ano2 1309.09
-C01 C09 Ano3 1190.08
-C01 C09 Ano4 1081.89
-C01 C02 Ano1 1950
-C01 C02 Ano2 1772.73
-C01 C02 Ano3 1611.57
-C01 C02 Ano4 1465.06
-C02 C09 Ano1 1690
-C02 C09 Ano2 1536.36
-C02 C09 Ano3 1396.69
-C02 C09 Ano4 1269.72
-C09 C02 Ano1 1690
-C09 C02 Ano2 1536.36
-C09 C02 Ano3 1396.69
-C09 C02 Ano4 1269.72
-C09 E1 Ano1 2840
-C09 E1 Ano2 2581.82
-C09 E1 Ano3 2347.11
-C09 E1 Ano4 2133.73
-C09 C03 Ano1 2190
-C09 C03 Ano2 1990.91
-C09 C03 Ano3 1809.92
-C09 C03 Ano4 1645.38
-C04 C03 Ano1 1170
-C04 C03 Ano2 1063.64
-C04 C03 Ano3 966.94
-C04 C03 Ano4 879.04
-C04 I3 Ano1 1320
-C04 I3 Ano2 1200
-C04 I3 Ano3 1090.91
-C04 I3 Ano4 991.74
-C06 I3 Ano1 150
-C06 I3 Ano2 136.36
-C06 I3 Ano3 123.97
-C06 I3 Ano4 112.7
-C08 C06 Ano1 1950
-C08 C06 Ano2 1772.73
-C08 C06 Ano3 1611.57
-C08 C06 Ano4 1465.06
-C08 I2 Ano1 1110
-C08 I2 Ano2 1009.09
-C08 I2 Ano3 917.36
-C08 I2 Ano4 833.96
-C07 C08 Ano1 930
-C07 C08 Ano2 845.45
-C07 C08 Ano3 768.6
-C07 C08 Ano4 698.72
-C07 I1 Ano1 1950
-C07 I1 Ano2 1772.73
-C07 I1 Ano3 1611.57
-C07 I1 Ano4 1465.06
-C07 C05 Ano1 2130
-C07 C05 Ano2 1936.36
-C07 C05 Ano3 1760.33
-C07 C05 Ano4 1600.3
-;
-
-# unit transport cost through arc (k,l) in time t
-param D :=
-C01 C09 Ano1 1.9
-C01 C02 Ano1 3.25
-C02 C09 Ano1 2.35
-C09 C02 Ano1 2.35
-C09 E1 Ano1 4.1
-C09 C03 Ano1 3.65
-C04 C03 Ano1 1.95
-C04 I3 Ano1 2.2
-C06 I3 Ano1 0.25
-C08 C06 Ano1 3.25
-C08 I2 Ano1 1.85
-C07 C08 Ano1 1.55
-C07 I1 Ano1 3.15
-C07 C05 Ano1 3.25
-C02 C03 Ano1 3.6
-C03 E1 Ano1 1.4
-C05 I1 Ano1 0.95
-I1 I2 Ano1 1.1
-I2 I3 Ano1 1.45
-I3 E1 Ano1 1.95
-C01 C09 Ano2 1.9
-C01 C02 Ano2 3.25
-C02 C09 Ano2 2.35
-C09 C02 Ano2 2.35
-C09 E1 Ano2 4.1
-C09 C03 Ano2 3.65
-C04 C03 Ano2 1.95
-C04 I3 Ano2 2.2
-C06 I3 Ano2 0.25
-C08 C06 Ano2 3.25
-C08 I2 Ano2 1.85
-C07 C08 Ano2 1.55
-C07 I1 Ano2 3.15
-C07 C05 Ano2 3.25
-C02 C03 Ano2 3.6
-C03 E1 Ano2 1.4
-C05 I1 Ano2 0.95
-I1 I2 Ano2 1.1
-I2 I3 Ano2 1.45
-I3 E1 Ano2 1.95
-C01 C09 Ano3 1.9
-C01 C02 Ano3 3.25
-C02 C09 Ano3 2.35
-C09 C02 Ano3 2.35
-C09 E1 Ano3 4.1
-C09 C03 Ano3 3.65
-C04 C03 Ano3 1.95
-C04 I3 Ano3 2.2
-C06 I3 Ano3 0.25
-C08 C06 Ano3 3.25
-C08 I2 Ano3 1.85
-C07 C08 Ano3 1.55
-C07 I1 Ano3 3.15
-C07 C05 Ano3 3.25
-C02 C03 Ano3 3.6
-C03 E1 Ano3 1.4
-C05 I1 Ano3 0.95
-I1 I2 Ano3 1.1
-I2 I3 Ano3 1.45
-I3 E1 Ano3 1.95
-C01 C09 Ano4 1.9
-C01 C02 Ano4 3.25
-C02 C09 Ano4 2.35
-C09 C02 Ano4 2.35
-C09 E1 Ano4 4.1
-C09 C03 Ano4 3.65
-C04 C03 Ano4 1.95
-C04 I3 Ano4 2.2
-C06 I3 Ano4 0.25
-C08 C06 Ano4 3.25
-C08 I2 Ano4 1.85
-C07 C08 Ano4 1.55
-C07 I1 Ano4 3.15
-C07 C05 Ano4 3.25
-C02 C03 Ano4 3.6
-C03 E1 Ano4 1.4
-C05 I1 Ano4 0.95
-I1 I2 Ano4 1.1
-I2 I3 Ano4 1.45
-I3 E1 Ano4 1.95
-;
-
-#
-# Stochastic Parameters
-#
-
-# sale price at exit e in time period t
-param R := E1 Ano1 45
- E1 Ano2 45
- E1 Ano3 45
- E1 Ano4 50 ;
-
-# upper and lower bounds on wood supplied
-param Zlb := Ano1 30000
- Ano2 15000
- Ano3 25000
- Ano4 20000 ;
-param Zub := Ano1 40000
- Ano2 33000
- Ano3 41000
- Ano4 36000 ;
-param yr:=
-Ano1 1
-Ano2 1
-Ano3 1
-Ano4 1
-;
-
-set COriginNodeForCell[U1]:= C01;
-set COriginNodeForCell[U2]:= C01;
-set COriginNodeForCell[U3]:= C09;
-set COriginNodeForCell[U4]:= C01;
-set COriginNodeForCell[U5]:= C09;
-set COriginNodeForCell[U6]:= C02;
-set COriginNodeForCell[U7]:= C02;
-set COriginNodeForCell[U8]:= C09;
-set COriginNodeForCell[U9]:= C02;
-set COriginNodeForCell[U10]:= C02;
-set COriginNodeForCell[U11]:= C04;
-set COriginNodeForCell[U12]:= C03;
-set COriginNodeForCell[U13]:= C03;
-set COriginNodeForCell[U14]:= C05;
-set COriginNodeForCell[U15]:= C04;
-set COriginNodeForCell[U16]:= C04;
-set COriginNodeForCell[U17]:= C06;
-set COriginNodeForCell[U18]:= C06;
-set COriginNodeForCell[U19]:= C06;
-set COriginNodeForCell[U20]:= C08;
-set COriginNodeForCell[U21]:= C08;
-set COriginNodeForCell[U22]:= C07;
-set COriginNodeForCell[U23]:= C05;
-set COriginNodeForCell[U24]:= C05;
-set COriginNodeForCell[U25]:= C07;
-
diff --git a/examples/pysp/forestry/unequalProbs/ScenarioStructure.dat b/examples/pysp/forestry/unequalProbs/ScenarioStructure.dat
deleted file mode 100644
index 0910b8573da..00000000000
--- a/examples/pysp/forestry/unequalProbs/ScenarioStructure.dat
+++ /dev/null
@@ -1,415 +0,0 @@
-# IMPORTANT - THE STAGES ARE ASSUMED TO BE IN TIME-ORDER.
-
-set Stages := Ano1Stage Ano2Stage Ano3Stage Ano4Stage ;
-
-set Nodes := RootNode
- StageTwoHigh
- StageTwoMedium
- StageTwoLow
- StageThreeHighHigh
- StageThreeHighMedium
- StageThreeHighLow
- StageThreeMediumHigh
- StageThreeMediumMedium
- StageThreeMediumLow
- StageThreeLowHigh
- StageThreeLowMedium
- StageThreeLowLow
- Leaf1
- Leaf2
- Leaf3
- Leaf4
- Leaf5
- Leaf6
- Leaf7
- Leaf8
- Leaf9
- Leaf10
- Leaf11
- Leaf12
- Leaf13
- Leaf14
- Leaf15
- Leaf16
- Leaf17
- Leaf18 ;
-
-param NodeStage := RootNode Ano1Stage
- StageTwoHigh Ano2Stage
- StageTwoMedium Ano2Stage
- StageTwoLow Ano2Stage
- StageThreeHighHigh Ano3Stage
- StageThreeHighMedium Ano3Stage
- StageThreeHighLow Ano3Stage
- StageThreeMediumHigh Ano3Stage
- StageThreeMediumMedium Ano3Stage
- StageThreeMediumLow Ano3Stage
- StageThreeLowHigh Ano3Stage
- StageThreeLowMedium Ano3Stage
- StageThreeLowLow Ano3Stage
- Leaf1 Ano4Stage
- Leaf2 Ano4Stage
- Leaf3 Ano4Stage
- Leaf4 Ano4Stage
- Leaf5 Ano4Stage
- Leaf6 Ano4Stage
- Leaf7 Ano4Stage
- Leaf8 Ano4Stage
- Leaf9 Ano4Stage
- Leaf10 Ano4Stage
- Leaf11 Ano4Stage
- Leaf12 Ano4Stage
- Leaf13 Ano4Stage
- Leaf14 Ano4Stage
- Leaf15 Ano4Stage
- Leaf16 Ano4Stage
- Leaf17 Ano4Stage
- Leaf18 Ano4Stage ;
-
-
-set Children[RootNode] := StageTwoHigh
- StageTwoMedium
- StageTwoLow ;
-
-set Children[StageTwoHigh] := StageThreeHighHigh
- StageThreeHighMedium
- StageThreeHighLow ;
-
-set Children[StageTwoMedium] := StageThreeMediumHigh
- StageThreeMediumMedium
- StageThreeMediumLow ;
-
-set Children[StageTwoLow] := StageThreeLowHigh
- StageThreeLowMedium
- StageThreeLowLow ;
-
-set Children[StageThreeHighHigh] := Leaf1 Leaf2 ;
-set Children[StageThreeHighMedium] := Leaf3 Leaf4 ;
-set Children[StageThreeHighLow] := Leaf5 Leaf6 ;
-
-set Children[StageThreeMediumHigh] := Leaf7 Leaf8 ;
-set Children[StageThreeMediumMedium] := Leaf9 Leaf10 ;
-set Children[StageThreeMediumLow] := Leaf11 Leaf12 ;
-
-set Children[StageThreeLowHigh] := Leaf13 Leaf14 ;
-set Children[StageThreeLowMedium] := Leaf15 Leaf16 ;
-set Children[StageThreeLowLow] := Leaf17 Leaf18 ;
-
-param ConditionalProbability := RootNode 1.0
- StageTwoHigh 0.7
- StageTwoMedium 0.2
- StageTwoLow 0.1
- StageThreeHighHigh 0.45
- StageThreeHighMedium 0.3
- StageThreeHighLow 0.25
- StageThreeMediumHigh 0.33
- StageThreeMediumMedium 0.33
- StageThreeMediumLow 0.34
- StageThreeLowHigh 0.33
- StageThreeLowMedium 0.33
- StageThreeLowLow 0.34
- Leaf1 0.2
- Leaf2 0.8
- Leaf3 0.3
- Leaf4 0.7
- Leaf5 0.4
- Leaf6 0.6
- Leaf7 0.5
- Leaf8 0.5
- Leaf9 0.5
- Leaf10 0.5
- Leaf11 0.5
- Leaf12 0.5
- Leaf13 0.5
- Leaf14 0.5
- Leaf15 0.5
- Leaf16 0.5
- Leaf17 0.5
- Leaf18 0.5 ;
-
-set Scenarios := ForestChile1
- ForestChile2
- ForestChile3
- ForestChile4
- ForestChile5
- ForestChile6
- ForestChile7
- ForestChile8
- ForestChile9
- ForestChile10
- ForestChile11
- ForestChile12
- ForestChile13
- ForestChile14
- ForestChile15
- ForestChile16
- ForestChile17
- ForestChile18 ;
-
-param ScenarioLeafNode := ForestChile1 Leaf1
- ForestChile2 Leaf2
- ForestChile3 Leaf3
- ForestChile4 Leaf4
- ForestChile5 Leaf5
- ForestChile6 Leaf6
- ForestChile7 Leaf7
- ForestChile8 Leaf8
- ForestChile9 Leaf9
- ForestChile10 Leaf10
- ForestChile11 Leaf11
- ForestChile12 Leaf12
- ForestChile13 Leaf13
- ForestChile14 Leaf14
- ForestChile15 Leaf15
- ForestChile16 Leaf16
- ForestChile17 Leaf17
- ForestChile18 Leaf18 ;
-
-set StageVariables[Ano1Stage] := delta[U1,Ano1]
- delta[U2,Ano1]
- delta[U3,Ano1]
- delta[U4,Ano1]
- delta[U5,Ano1]
- delta[U6,Ano1]
- delta[U7,Ano1]
- delta[U8,Ano1]
- delta[U9,Ano1]
- delta[U10,Ano1]
- delta[U11,Ano1]
- delta[U12,Ano1]
- delta[U13,Ano1]
- delta[U14,Ano1]
- delta[U15,Ano1]
- delta[U16,Ano1]
- delta[U17,Ano1]
- delta[U18,Ano1]
- delta[U19,Ano1]
- delta[U20,Ano1]
- delta[U21,Ano1]
- delta[U22,Ano1]
- delta[U23,Ano1]
- delta[U24,Ano1]
- delta[U25,Ano1]
- gamma[C01,C09,Ano1]
- gamma[C01,C02,Ano1]
- gamma[C02,C09,Ano1]
- gamma[C09,C02,Ano1]
- gamma[C09,E1,Ano1]
- gamma[C09,C03,Ano1]
- gamma[C04,C03,Ano1]
- gamma[C04,I3,Ano1]
- gamma[C06,I3,Ano1]
- gamma[C08,C06,Ano1]
- gamma[C08,I2,Ano1]
- gamma[C07,C08,Ano1]
- gamma[C07,I1,Ano1]
- gamma[C07,C05,Ano1]
- f[C02,C03,Ano1]
- f[C03,E1,Ano1]
- f[C05,I1,Ano1]
- f[I1,I2,Ano1]
- f[I2,I3,Ano1]
- f[I3,E1,Ano1]
- f[C01,C09,Ano1]
- f[C01,C02,Ano1]
- f[C02,C09,Ano1]
- f[C09,C02,Ano1]
- f[C09,E1,Ano1]
- f[C09,C03,Ano1]
- f[C04,C03,Ano1]
- f[C04,I3,Ano1]
- f[C06,I3,Ano1]
- f[C08,C06,Ano1]
- f[C08,I2,Ano1]
- f[C07,C08,Ano1]
- f[C07,I1,Ano1]
- f[C07,C05,Ano1]
- z[E1,Ano1] ;
-
-set StageVariables[Ano2Stage] := delta[U1,Ano2]
- delta[U2,Ano2]
- delta[U3,Ano2]
- delta[U4,Ano2]
- delta[U5,Ano2]
- delta[U6,Ano2]
- delta[U7,Ano2]
- delta[U8,Ano2]
- delta[U9,Ano2]
- delta[U10,Ano2]
- delta[U11,Ano2]
- delta[U12,Ano2]
- delta[U13,Ano2]
- delta[U14,Ano2]
- delta[U15,Ano2]
- delta[U16,Ano2]
- delta[U17,Ano2]
- delta[U18,Ano2]
- delta[U19,Ano2]
- delta[U20,Ano2]
- delta[U21,Ano2]
- delta[U22,Ano2]
- delta[U23,Ano2]
- delta[U24,Ano2]
- delta[U25,Ano2]
- gamma[C01,C09,Ano2]
- gamma[C01,C02,Ano2]
- gamma[C02,C09,Ano2]
- gamma[C09,C02,Ano2]
- gamma[C09,E1,Ano2]
- gamma[C09,C03,Ano2]
- gamma[C04,C03,Ano2]
- gamma[C04,I3,Ano2]
- gamma[C06,I3,Ano2]
- gamma[C08,C06,Ano2]
- gamma[C08,I2,Ano2]
- gamma[C07,C08,Ano2]
- gamma[C07,I1,Ano2]
- gamma[C07,C05,Ano2]
- f[C02,C03,Ano2]
- f[C03,E1,Ano2]
- f[C05,I1,Ano2]
- f[I1,I2,Ano2]
- f[I2,I3,Ano2]
- f[I3,E1,Ano2]
- f[C01,C09,Ano2]
- f[C01,C02,Ano2]
- f[C02,C09,Ano2]
- f[C09,C02,Ano2]
- f[C09,E1,Ano2]
- f[C09,C03,Ano2]
- f[C04,C03,Ano2]
- f[C04,I3,Ano2]
- f[C06,I3,Ano2]
- f[C08,C06,Ano2]
- f[C08,I2,Ano2]
- f[C07,C08,Ano2]
- f[C07,I1,Ano2]
- f[C07,C05,Ano2]
- z[E1,Ano2] ;
-
-set StageVariables[Ano3Stage] := delta[U1,Ano3]
- delta[U2,Ano3]
- delta[U3,Ano3]
- delta[U4,Ano3]
- delta[U5,Ano3]
- delta[U6,Ano3]
- delta[U7,Ano3]
- delta[U8,Ano3]
- delta[U9,Ano3]
- delta[U10,Ano3]
- delta[U11,Ano3]
- delta[U12,Ano3]
- delta[U13,Ano3]
- delta[U14,Ano3]
- delta[U15,Ano3]
- delta[U16,Ano3]
- delta[U17,Ano3]
- delta[U18,Ano3]
- delta[U19,Ano3]
- delta[U20,Ano3]
- delta[U21,Ano3]
- delta[U22,Ano3]
- delta[U23,Ano3]
- delta[U24,Ano3]
- delta[U25,Ano3]
- gamma[C01,C09,Ano3]
- gamma[C01,C02,Ano3]
- gamma[C02,C09,Ano3]
- gamma[C09,C02,Ano3]
- gamma[C09,E1,Ano3]
- gamma[C09,C03,Ano3]
- gamma[C04,C03,Ano3]
- gamma[C04,I3,Ano3]
- gamma[C06,I3,Ano3]
- gamma[C08,C06,Ano3]
- gamma[C08,I2,Ano3]
- gamma[C07,C08,Ano3]
- gamma[C07,I1,Ano3]
- gamma[C07,C05,Ano3]
- f[C02,C03,Ano3]
- f[C03,E1,Ano3]
- f[C05,I1,Ano3]
- f[I1,I2,Ano3]
- f[I2,I3,Ano3]
- f[I3,E1,Ano3]
- f[C01,C09,Ano3]
- f[C01,C02,Ano3]
- f[C02,C09,Ano3]
- f[C09,C02,Ano3]
- f[C09,E1,Ano3]
- f[C09,C03,Ano3]
- f[C04,C03,Ano3]
- f[C04,I3,Ano3]
- f[C06,I3,Ano3]
- f[C08,C06,Ano3]
- f[C08,I2,Ano3]
- f[C07,C08,Ano3]
- f[C07,I1,Ano3]
- f[C07,C05,Ano3]
- z[E1,Ano3] ;
-
-set StageVariables[Ano4Stage] := delta[U1,Ano4]
- delta[U2,Ano4]
- delta[U3,Ano4]
- delta[U4,Ano4]
- delta[U5,Ano4]
- delta[U6,Ano4]
- delta[U7,Ano4]
- delta[U8,Ano4]
- delta[U9,Ano4]
- delta[U10,Ano4]
- delta[U11,Ano4]
- delta[U12,Ano4]
- delta[U13,Ano4]
- delta[U14,Ano4]
- delta[U15,Ano4]
- delta[U16,Ano4]
- delta[U17,Ano4]
- delta[U18,Ano4]
- delta[U19,Ano4]
- delta[U20,Ano4]
- delta[U21,Ano4]
- delta[U22,Ano4]
- delta[U23,Ano4]
- delta[U24,Ano4]
- delta[U25,Ano4]
- gamma[C01,C09,Ano4]
- gamma[C01,C02,Ano4]
- gamma[C02,C09,Ano4]
- gamma[C09,C02,Ano4]
- gamma[C09,E1,Ano4]
- gamma[C09,C03,Ano4]
- gamma[C04,C03,Ano4]
- gamma[C04,I3,Ano4]
- gamma[C06,I3,Ano4]
- gamma[C08,C06,Ano4]
- gamma[C08,I2,Ano4]
- gamma[C07,C08,Ano4]
- gamma[C07,I1,Ano4]
- gamma[C07,C05,Ano4]
- f[C02,C03,Ano4]
- f[C03,E1,Ano4]
- f[C05,I1,Ano4]
- f[I1,I2,Ano4]
- f[I2,I3,Ano4]
- f[I3,E1,Ano4]
- f[C01,C09,Ano4]
- f[C01,C02,Ano4]
- f[C02,C09,Ano4]
- f[C09,C02,Ano4]
- f[C09,E1,Ano4]
- f[C09,C03,Ano4]
- f[C04,C03,Ano4]
- f[C04,I3,Ano4]
- f[C06,I3,Ano4]
- f[C08,C06,Ano4]
- f[C08,I2,Ano4]
- f[C07,C08,Ano4]
- f[C07,I1,Ano4]
- f[C07,C05,Ano4]
- z[E1,Ano4] ;
-
-param StageCost := Ano1Stage AnoProfit[Ano1]
- Ano2Stage AnoProfit[Ano2]
- Ano3Stage AnoProfit[Ano3]
- Ano4Stage AnoProfit[Ano4] ;
diff --git a/examples/pysp/hydro/README.txt b/examples/pysp/hydro/README.txt
deleted file mode 100644
index 3a2998ca988..00000000000
--- a/examples/pysp/hydro/README.txt
+++ /dev/null
@@ -1,8 +0,0 @@
-A continuous multi-stage hydro planning problem, courtesy of Claudio Andres Troncoso Malebran. References for the model are as follows:
-
-Thesis: Herramienta docente para estudios de Coordinacion Hidrotermica
-Laboratory: Centro de Energia - FCFM
-
-The model is in Spanish, but the intent (once you know it is a hydro model) should be pretty easy to pick up.
-
-Serves as an invaluable case for multi-stage regression tests.
diff --git a/examples/pysp/hydro/models/ReferenceModel.py b/examples/pysp/hydro/models/ReferenceModel.py
deleted file mode 100644
index 4518a909ead..00000000000
--- a/examples/pysp/hydro/models/ReferenceModel.py
+++ /dev/null
@@ -1,133 +0,0 @@
-# ___________________________________________________________________________
-#
-# Pyomo: Python Optimization Modeling Objects
-# Copyright 2017 National Technology and Engineering Solutions of Sandia, LLC
-# Under the terms of Contract DE-NA0003525 with National Technology and
-# Engineering Solutions of Sandia, LLC, the U.S. Government retains certain
-# rights in this software.
-# This software is distributed under the 3-clause BSD License.
-# ___________________________________________________________________________
-
-# started as elec3 from Pierre on 8 Dec 2010; removed scenarios
-#
-# Imports
-#
-from pyomo.core import *
-
-##
-## Setting up a Model
-##
-#
-# Create the model
-#
-model = AbstractModel(name="elec3")
-
-#
-# Create sets used to define parameters
-#
-
-### etaps
-
-model.nb_etap=Param(within=PositiveIntegers)
-
-model.etap = RangeSet(1,model.nb_etap)
-
-##
-## Declaring Params
-##
-#
-model.A=Param(model.etap)
-model.D=Param(model.etap)
-
-model.betaGt=Param()
-model.betaGh=Param()
-model.betaDns=Param()
-
-model.PgtMax=Param()
-model.PgtMin=Param()
-model.PghMin=Param()
-model.PghMax=Param()
-
-model.VMin=Param()
-model.VMax=Param()
-
-model.u=Param(model.etap)
-model.duracion=Param(model.etap)
-model.V0=Param()
-model.T=Param()
-
-
-#bounds and variables
-
-def Pgt_bounds(model, t):
- return(model.PgtMin,model.PgtMax)
-model.Pgt = Var(model.etap, bounds=Pgt_bounds, within=NonNegativeReals)
-
-def Pgh_bounds(model, t):
- return(model.PghMin,model.PghMax)
-model.Pgh = Var(model.etap, bounds=Pgh_bounds, within=NonNegativeReals)
-
-def PDns_bounds(model, t):
- return(0,model.D[t])
-model.PDns = Var(model.etap, bounds=PDns_bounds, within=NonNegativeReals)
-
-def Vol_bounds(model, t):
- return(model.VMin,model.VMax)
-model.Vol = Var(model.etap, bounds=Vol_bounds, within=NonNegativeReals)
-
-model.sl = Var(within=NonNegativeReals)
-
-model.StageCost = Var(model.etap, within=Reals)
-
-def discount_rule(model, t):
- # Be careful about integer division in python 2
- return (1/1.1)**(value(model.duracion[t])/float(value(model.T)))
-model.r = Param(model.etap,initialize=discount_rule)
-
-
-# objective
-
-def StageCostRule(model, t):
- if t < value(model.nb_etap):
- return model.StageCost[t] == model.r[t] * (model.betaGt * model.Pgt[t] + \
- model.betaGh * model.Pgh[t] + \
- model.betaDns * model.PDns[t] )
- else:
- return model.StageCost[t] == (model.r[t] * (model.betaGt * model.Pgt[t] + \
- model.betaGh * model.Pgh[t] + \
- model.betaDns * model.PDns[t]) + model.sl)
-
-model.StageCostConstraint = Constraint(model.etap, rule=StageCostRule)
-
-# constraints
-
-def fixpgh_rule(model):
- return model.Pgh[1] == 60
-#model.testfixing = Constraint(rule=fixpgh_rule)
-
-def demand_rule(model, t):
- return model.Pgt[t]+model.Pgh[t]+model.PDns[t]-model.D[t] == 0.0
-model.demand= Constraint(model.etap, rule=demand_rule)
-
-def conserv_rule(model, t):
- if t == 1:
- return model.Vol[t]-model.V0 <= model.u[t] *(model.A[t]-model.Pgh[t])
- else:
- return model.Vol[t]-model.Vol[t-1] <= model.u[t] *(model.A[t]-model.Pgh[t])
-model.conserv= Constraint(model.etap, rule=conserv_rule)
-
-def fcfe_rule(model):
- return model.sl>= 4166.67*(model.V0-model.Vol[3])
-model.fcfe= Constraint(rule=fcfe_rule)
-
-
-#
-# PySP Auto-generated Objective
-#
-# minimize: sum of StageCosts
-#
-# A active scenario objective equivalent to that generated by PySP is
-# included here for informational purposes.
-def total_cost_rule(model):
- return sum_product(model.StageCost)
-model.Objective_rule = Objective(rule=total_cost_rule, sense=minimize)
diff --git a/examples/pysp/hydro/nodedata/Node2_1.dat b/examples/pysp/hydro/nodedata/Node2_1.dat
deleted file mode 100644
index 89d8660e7cd..00000000000
--- a/examples/pysp/hydro/nodedata/Node2_1.dat
+++ /dev/null
@@ -1,3 +0,0 @@
-param A :=
-2 10
-;
diff --git a/examples/pysp/hydro/nodedata/Node2_2.dat b/examples/pysp/hydro/nodedata/Node2_2.dat
deleted file mode 100644
index c09a244777b..00000000000
--- a/examples/pysp/hydro/nodedata/Node2_2.dat
+++ /dev/null
@@ -1,2 +0,0 @@
-param A :=
-2 50;
\ No newline at end of file
diff --git a/examples/pysp/hydro/nodedata/Node2_3.dat b/examples/pysp/hydro/nodedata/Node2_3.dat
deleted file mode 100644
index 14f58e81567..00000000000
--- a/examples/pysp/hydro/nodedata/Node2_3.dat
+++ /dev/null
@@ -1,2 +0,0 @@
-param A :=
-2 90;
\ No newline at end of file
diff --git a/examples/pysp/hydro/nodedata/Node3_1_1.dat b/examples/pysp/hydro/nodedata/Node3_1_1.dat
deleted file mode 100644
index 0388e2760f5..00000000000
--- a/examples/pysp/hydro/nodedata/Node3_1_1.dat
+++ /dev/null
@@ -1,2 +0,0 @@
-param A :=
-3 40;
\ No newline at end of file
diff --git a/examples/pysp/hydro/nodedata/Node3_1_2.dat b/examples/pysp/hydro/nodedata/Node3_1_2.dat
deleted file mode 100644
index 675361c386b..00000000000
--- a/examples/pysp/hydro/nodedata/Node3_1_2.dat
+++ /dev/null
@@ -1,2 +0,0 @@
-param A :=
-3 50;
\ No newline at end of file
diff --git a/examples/pysp/hydro/nodedata/Node3_1_3.dat b/examples/pysp/hydro/nodedata/Node3_1_3.dat
deleted file mode 100644
index 1d70a77a391..00000000000
--- a/examples/pysp/hydro/nodedata/Node3_1_3.dat
+++ /dev/null
@@ -1,2 +0,0 @@
-param A :=
-3 60;
\ No newline at end of file
diff --git a/examples/pysp/hydro/nodedata/Node3_2_1.dat b/examples/pysp/hydro/nodedata/Node3_2_1.dat
deleted file mode 100644
index 0388e2760f5..00000000000
--- a/examples/pysp/hydro/nodedata/Node3_2_1.dat
+++ /dev/null
@@ -1,2 +0,0 @@
-param A :=
-3 40;
\ No newline at end of file
diff --git a/examples/pysp/hydro/nodedata/Node3_2_2.dat b/examples/pysp/hydro/nodedata/Node3_2_2.dat
deleted file mode 100644
index 675361c386b..00000000000
--- a/examples/pysp/hydro/nodedata/Node3_2_2.dat
+++ /dev/null
@@ -1,2 +0,0 @@
-param A :=
-3 50;
\ No newline at end of file
diff --git a/examples/pysp/hydro/nodedata/Node3_2_3.dat b/examples/pysp/hydro/nodedata/Node3_2_3.dat
deleted file mode 100644
index 1d70a77a391..00000000000
--- a/examples/pysp/hydro/nodedata/Node3_2_3.dat
+++ /dev/null
@@ -1,2 +0,0 @@
-param A :=
-3 60;
\ No newline at end of file
diff --git a/examples/pysp/hydro/nodedata/Node3_3_1.dat b/examples/pysp/hydro/nodedata/Node3_3_1.dat
deleted file mode 100644
index 188d09fc707..00000000000
--- a/examples/pysp/hydro/nodedata/Node3_3_1.dat
+++ /dev/null
@@ -1,2 +0,0 @@
-param A :=
-3 40;
\ No newline at end of file
diff --git a/examples/pysp/hydro/nodedata/Node3_3_2.dat b/examples/pysp/hydro/nodedata/Node3_3_2.dat
deleted file mode 100644
index 675361c386b..00000000000
--- a/examples/pysp/hydro/nodedata/Node3_3_2.dat
+++ /dev/null
@@ -1,2 +0,0 @@
-param A :=
-3 50;
\ No newline at end of file
diff --git a/examples/pysp/hydro/nodedata/Node3_3_3.dat b/examples/pysp/hydro/nodedata/Node3_3_3.dat
deleted file mode 100644
index a9197f23b85..00000000000
--- a/examples/pysp/hydro/nodedata/Node3_3_3.dat
+++ /dev/null
@@ -1,2 +0,0 @@
-param A :=
-3 60;
\ No newline at end of file
diff --git a/examples/pysp/hydro/nodedata/RootNode.dat b/examples/pysp/hydro/nodedata/RootNode.dat
deleted file mode 100644
index 89bc6ad1052..00000000000
--- a/examples/pysp/hydro/nodedata/RootNode.dat
+++ /dev/null
@@ -1,49 +0,0 @@
-# params from model elec3
-# Pierre y David 8 Dec 2010
-
-param nb_etap:=3;
-
-param D:=
-1 90
-2 160
-3 110
-;
-
-param betaGt:=1;
-param betaGh:=0;
-param betaDns:=10;
-
-param PgtMin:=0;
-param PgtMax:=100;
-param PghMin:=0;
-param PghMax:=100;
-
-param VMin:=0;
-param VMax:=100;
-
-param u:=
-1 0.6048
-2 0.6048
-3 1.2096
-;
-
-#param B: 1 2 3:=
-#1 50 50 50
-#2 10 50 90
-#3 40 50 60
-#;
-
-param A:=
-1 50
-2 10
-3 40
-;
-
-param duracion:=
-1 168
-2 168
-3 336
-;
-
-param V0:=60.48;
-param T:=8760;
diff --git a/examples/pysp/hydro/nodedata/ScenarioStructure.dat b/examples/pysp/hydro/nodedata/ScenarioStructure.dat
deleted file mode 100644
index 65399a5dbdd..00000000000
--- a/examples/pysp/hydro/nodedata/ScenarioStructure.dat
+++ /dev/null
@@ -1,93 +0,0 @@
-# IMPORTANT - THE STAGES ARE ASSUMED TO BE IN TIME-ORDER.
-# replaced underscore with _
-
-set Stages := FirstStage SecondStage ThirdStage;
-
-set Nodes := RootNode
- Node2_1
- Node2_2
- Node2_3
- Node3_1_1
- Node3_1_2
- Node3_1_3
- Node3_2_1
- Node3_2_2
- Node3_2_3
- Node3_3_1
- Node3_3_2
- Node3_3_3
-;
-
-param NodeStage := RootNode FirstStage
- Node2_1 SecondStage
- Node2_2 SecondStage
- Node2_3 SecondStage
- Node3_1_1 ThirdStage
- Node3_1_2 ThirdStage
- Node3_1_3 ThirdStage
- Node3_2_1 ThirdStage
- Node3_2_2 ThirdStage
- Node3_2_3 ThirdStage
- Node3_3_1 ThirdStage
- Node3_3_2 ThirdStage
- Node3_3_3 ThirdStage
-;
-set Children[RootNode] := Node2_1 Node2_2 Node2_3;
-set Children[Node2_1]:=Node3_1_1 Node3_1_2 Node3_1_3;
-set Children[Node2_2] := Node3_2_1
- Node3_2_2
- Node3_2_3
-;
-set Children[Node2_3] := Node3_3_1
- Node3_3_2
- Node3_3_3
-;
-
-param ConditionalProbability := RootNode 1.0
- Node2_1 0.333
- Node2_2 0.333
- Node2_3 0.334
- Node3_1_1 0.333
- Node3_1_2 0.333
- Node3_1_3 0.334
- Node3_2_1 0.333
- Node3_2_2 0.333
- Node3_2_3 0.334
- Node3_3_1 0.333
- Node3_3_2 0.333
- Node3_3_3 0.334
-;
-
-set Scenarios := Scen1
- Scen2
- Scen3
- Scen4
- Scen5
- Scen6
- Scen7
- Scen8
- Scen9
-;
-
-param ScenarioLeafNode := Scen1 Node3_1_1
- Scen2 Node3_1_2
- Scen3 Node3_1_3
- Scen4 Node3_2_1
- Scen5 Node3_2_2
- Scen6 Node3_2_3
- Scen7 Node3_3_1
- Scen8 Node3_3_2
- Scen9 Node3_3_3
-;
-
-
-set StageVariables[FirstStage] := Pgt[1] Pgh[1] PDns[1] Vol[1] ;
-set StageVariables[SecondStage] := Pgt[2] Pgh[2] PDns[2] Vol[2] ;
-set StageVariables[ThirdStage] := Pgt[3] Pgh[3] PDns[3] Vol[3] sl ;
-
-
-param StageCost := FirstStage StageCost[1]
- SecondStage StageCost[2]
- ThirdStage StageCost[3] ;
-
-param ScenarioBasedData := False ;
diff --git a/examples/pysp/hydro/scenariodata/Scen1.dat b/examples/pysp/hydro/scenariodata/Scen1.dat
deleted file mode 100644
index 89bc6ad1052..00000000000
--- a/examples/pysp/hydro/scenariodata/Scen1.dat
+++ /dev/null
@@ -1,49 +0,0 @@
-# params from model elec3
-# Pierre y David 8 Dec 2010
-
-param nb_etap:=3;
-
-param D:=
-1 90
-2 160
-3 110
-;
-
-param betaGt:=1;
-param betaGh:=0;
-param betaDns:=10;
-
-param PgtMin:=0;
-param PgtMax:=100;
-param PghMin:=0;
-param PghMax:=100;
-
-param VMin:=0;
-param VMax:=100;
-
-param u:=
-1 0.6048
-2 0.6048
-3 1.2096
-;
-
-#param B: 1 2 3:=
-#1 50 50 50
-#2 10 50 90
-#3 40 50 60
-#;
-
-param A:=
-1 50
-2 10
-3 40
-;
-
-param duracion:=
-1 168
-2 168
-3 336
-;
-
-param V0:=60.48;
-param T:=8760;
diff --git a/examples/pysp/hydro/scenariodata/Scen2.dat b/examples/pysp/hydro/scenariodata/Scen2.dat
deleted file mode 100644
index bf05100c8c7..00000000000
--- a/examples/pysp/hydro/scenariodata/Scen2.dat
+++ /dev/null
@@ -1,49 +0,0 @@
-# params from model elec3
-# Pierre y David 8 Dec 2010
-
-param nb_etap:=3;
-
-param D:=
-1 90
-2 160
-3 110
-;
-
-param betaGt:=1;
-param betaGh:=0;
-param betaDns:=10;
-
-param PgtMin:=0;
-param PgtMax:=100;
-param PghMin:=0;
-param PghMax:=100;
-
-param VMin:=0;
-param VMax:=100;
-
-param u:=
-1 0.6048
-2 0.6048
-3 1.2096
-;
-
-#param B: 1 2 3:=
-#1 50 50 50
-#2 10 50 90
-#3 40 50 60
-#;
-
-param A:=
-1 50
-2 10
-3 50
-;
-
-param duracion:=
-1 168
-2 168
-3 336
-;
-
-param V0:=60.48;
-param T:=8760;
diff --git a/examples/pysp/hydro/scenariodata/Scen3.dat b/examples/pysp/hydro/scenariodata/Scen3.dat
deleted file mode 100644
index d4b242f2f28..00000000000
--- a/examples/pysp/hydro/scenariodata/Scen3.dat
+++ /dev/null
@@ -1,50 +0,0 @@
-# params from model elec3
-# Pierre y David 8 Dec 2010
-
-param nb_etap:=3;
-
-param D:=
-1 90
-2 160
-3 110
-;
-
-param betaGt:=1;
-param betaGh:=0;
-param betaDns:=10;
-
-param PgtMin:=0;
-param PgtMax:=100;
-param PghMin:=0;
-param PghMax:=100;
-
-param VMin:=0;
-param VMax:=100;
-
-param u:=
-1 0.6048
-2 0.6048
-3 1.2096
-;
-
-#param B: 1 2 3:=
-#1 50 50 50
-#2 10 50 90
-#3 40 50 60
-#;
-
-param A:=
-1 50
-2 10
-3 60
-;
-
-param duracion:=
-1 168
-2 168
-3 336
-;
-
-param V0:=60.48;
-param T:=8760;
-
diff --git a/examples/pysp/hydro/scenariodata/Scen4.dat b/examples/pysp/hydro/scenariodata/Scen4.dat
deleted file mode 100644
index fdab433c44a..00000000000
--- a/examples/pysp/hydro/scenariodata/Scen4.dat
+++ /dev/null
@@ -1,49 +0,0 @@
-# params from model elec3
-# Pierre y David 8 Dec 2010
-
-param nb_etap:=3;
-
-param D:=
-1 90
-2 160
-3 110
-;
-
-param betaGt:=1;
-param betaGh:=0;
-param betaDns:=10;
-
-param PgtMin:=0;
-param PgtMax:=100;
-param PghMin:=0;
-param PghMax:=100;
-
-param VMin:=0;
-param VMax:=100;
-
-param u:=
-1 0.6048
-2 0.6048
-3 1.2096
-;
-
-#param B: 1 2 3:=
-#1 50 50 50
-#2 10 50 90
-#3 40 50 60
-#;
-
-param A:=
-1 50
-2 50
-3 40
-;
-
-param duracion:=
-1 168
-2 168
-3 336
-;
-
-param V0:=60.48;
-param T:=8760;
diff --git a/examples/pysp/hydro/scenariodata/Scen5.dat b/examples/pysp/hydro/scenariodata/Scen5.dat
deleted file mode 100644
index 8943297560f..00000000000
--- a/examples/pysp/hydro/scenariodata/Scen5.dat
+++ /dev/null
@@ -1,49 +0,0 @@
-# params from model elec3
-# Pierre y David 8 Dec 2010
-
-param nb_etap:=3;
-
-param D:=
-1 90
-2 160
-3 110
-;
-
-param betaGt:=1;
-param betaGh:=0;
-param betaDns:=10;
-
-param PgtMin:=0;
-param PgtMax:=100;
-param PghMin:=0;
-param PghMax:=100;
-
-param VMin:=0;
-param VMax:=100;
-
-param u:=
-1 0.6048
-2 0.6048
-3 1.2096
-;
-
-#param B: 1 2 3:=
-#1 50 50 50
-#2 10 50 90
-#3 40 50 60
-#;
-
-param A:=
-1 50
-2 50
-3 50
-;
-
-param duracion:=
-1 168
-2 168
-3 336
-;
-
-param V0:=60.48;
-param T:=8760;
diff --git a/examples/pysp/hydro/scenariodata/Scen6.dat b/examples/pysp/hydro/scenariodata/Scen6.dat
deleted file mode 100644
index 0a0034d13a7..00000000000
--- a/examples/pysp/hydro/scenariodata/Scen6.dat
+++ /dev/null
@@ -1,49 +0,0 @@
-# params from model elec3
-# Pierre y David 8 Dec 2010
-
-param nb_etap:=3;
-
-param D:=
-1 90
-2 160
-3 110
-;
-
-param betaGt:=1;
-param betaGh:=0;
-param betaDns:=10;
-
-param PgtMin:=0;
-param PgtMax:=100;
-param PghMin:=0;
-param PghMax:=100;
-
-param VMin:=0;
-param VMax:=100;
-
-param u:=
-1 0.6048
-2 0.6048
-3 1.2096
-;
-
-#param B: 1 2 3:=
-#1 50 50 50
-#2 10 50 90
-#3 40 50 60
-#;
-
-param A:=
-1 50
-2 50
-3 60
-;
-
-param duracion:=
-1 168
-2 168
-3 336
-;
-
-param V0:=60.48;
-param T:=8760;
diff --git a/examples/pysp/hydro/scenariodata/Scen7.dat b/examples/pysp/hydro/scenariodata/Scen7.dat
deleted file mode 100644
index 1fffde917ab..00000000000
--- a/examples/pysp/hydro/scenariodata/Scen7.dat
+++ /dev/null
@@ -1,50 +0,0 @@
-# params from model elec3
-# Pierre y David 8 Dec 2010
-
-param nb_etap:=3;
-
-param D:=
-1 90
-2 160
-3 110
-;
-
-param betaGt:=1;
-param betaGh:=0;
-param betaDns:=10;
-
-param PgtMin:=0;
-param PgtMax:=100;
-param PghMin:=0;
-param PghMax:=100;
-
-param VMin:=0;
-param VMax:=100;
-
-param u:=
-1 0.6048
-2 0.6048
-3 1.2096
-;
-
-#param B: 1 2 3:=
-#1 50 50 50
-#2 10 50 90
-#3 40 50 60
-#;
-
-param A:=
-1 50
-2 90
-3 40
-;
-
-param duracion:=
-1 168
-2 168
-3 336
-;
-
-param V0:=60.48;
-param T:=8760;
-
diff --git a/examples/pysp/hydro/scenariodata/Scen8.dat b/examples/pysp/hydro/scenariodata/Scen8.dat
deleted file mode 100644
index 7c3d24331f5..00000000000
--- a/examples/pysp/hydro/scenariodata/Scen8.dat
+++ /dev/null
@@ -1,50 +0,0 @@
-# params from model elec3
-# Pierre y David 8 Dec 2010
-
-param nb_etap:=3;
-
-param D:=
-1 90
-2 160
-3 110
-;
-
-param betaGt:=1;
-param betaGh:=0;
-param betaDns:=10;
-
-param PgtMin:=0;
-param PgtMax:=100;
-param PghMin:=0;
-param PghMax:=100;
-
-param VMin:=0;
-param VMax:=100;
-
-param u:=
-1 0.6048
-2 0.6048
-3 1.2096
-;
-
-#param B: 1 2 3:=
-#1 50 50 50
-#2 10 50 90
-#3 40 50 60
-#;
-
-param A:=
-1 50
-2 90
-3 50
-;
-
-param duracion:=
-1 168
-2 168
-3 336
-;
-
-param V0:=60.48;
-param T:=8760;
-
diff --git a/examples/pysp/hydro/scenariodata/Scen9.dat b/examples/pysp/hydro/scenariodata/Scen9.dat
deleted file mode 100644
index 7ca30430ac8..00000000000
--- a/examples/pysp/hydro/scenariodata/Scen9.dat
+++ /dev/null
@@ -1,50 +0,0 @@
-# params from model elec3
-# Pierre y David 8 Dec 2010
-
-param nb_etap:=3;
-
-param D:=
-1 90
-2 160
-3 110
-;
-
-param betaGt:=1;
-param betaGh:=0;
-param betaDns:=10;
-
-param PgtMin:=0;
-param PgtMax:=100;
-param PghMin:=0;
-param PghMax:=100;
-
-param VMin:=0;
-param VMax:=100;
-
-param u:=
-1 0.6048
-2 0.6048
-3 1.2096
-;
-
-#param B: 1 2 3:=
-#1 50 50 50
-#2 10 50 90
-#3 40 50 60
-#;
-
-param A:=
-1 50
-2 90
-3 60
-;
-
-param duracion:=
-1 168
-2 168
-3 336
-;
-
-param V0:=60.48;
-param T:=8760;
-
diff --git a/examples/pysp/hydro/scenariodata/ScenarioStructure.dat b/examples/pysp/hydro/scenariodata/ScenarioStructure.dat
deleted file mode 100644
index 8827cdbaa4d..00000000000
--- a/examples/pysp/hydro/scenariodata/ScenarioStructure.dat
+++ /dev/null
@@ -1,91 +0,0 @@
-# IMPORTANT - THE STAGES ARE ASSUMED TO BE IN TIME-ORDER.
-# replaced underscore with _
-
-set Stages := FirstStage SecondStage ThirdStage;
-
-set Nodes := RootNode
- Node2_1
- Node2_2
- Node2_3
- Node3_1_1
- Node3_1_2
- Node3_1_3
- Node3_2_1
- Node3_2_2
- Node3_2_3
- Node3_3_1
- Node3_3_2
- Node3_3_3
-;
-
-param NodeStage := RootNode FirstStage
- Node2_1 SecondStage
- Node2_2 SecondStage
- Node2_3 SecondStage
- Node3_1_1 ThirdStage
- Node3_1_2 ThirdStage
- Node3_1_3 ThirdStage
- Node3_2_1 ThirdStage
- Node3_2_2 ThirdStage
- Node3_2_3 ThirdStage
- Node3_3_1 ThirdStage
- Node3_3_2 ThirdStage
- Node3_3_3 ThirdStage
-;
-set Children[RootNode] := Node2_1 Node2_2 Node2_3;
-set Children[Node2_1]:=Node3_1_1 Node3_1_2 Node3_1_3;
-set Children[Node2_2] := Node3_2_1
- Node3_2_2
- Node3_2_3
-;
-set Children[Node2_3] := Node3_3_1
- Node3_3_2
- Node3_3_3
-;
-
-param ConditionalProbability := RootNode 1.0
- Node2_1 0.333
- Node2_2 0.333
- Node2_3 0.334
- Node3_1_1 0.333
- Node3_1_2 0.333
- Node3_1_3 0.334
- Node3_2_1 0.333
- Node3_2_2 0.333
- Node3_2_3 0.334
- Node3_3_1 0.333
- Node3_3_2 0.333
- Node3_3_3 0.334
-;
-
-set Scenarios := Scen1
- Scen2
- Scen3
- Scen4
- Scen5
- Scen6
- Scen7
- Scen8
- Scen9
-;
-
-param ScenarioLeafNode := Scen1 Node3_1_1
- Scen2 Node3_1_2
- Scen3 Node3_1_3
- Scen4 Node3_2_1
- Scen5 Node3_2_2
- Scen6 Node3_2_3
- Scen7 Node3_3_1
- Scen8 Node3_3_2
- Scen9 Node3_3_3
-;
-
-
-set StageVariables[FirstStage] := Pgt[1] Pgh[1] PDns[1] Vol[1] ;
-set StageVariables[SecondStage] := Pgt[2] Pgh[2] PDns[2] Vol[2] ;
-set StageVariables[ThirdStage] := Pgt[3] Pgh[3] PDns[3] Vol[3] sl ;
-
-
-param StageCost := FirstStage StageCost[1]
- SecondStage StageCost[2]
- ThirdStage StageCost[3] ;
diff --git a/examples/pysp/networkflow/10scenario-bundle-specs/FiveBundles.dat b/examples/pysp/networkflow/10scenario-bundle-specs/FiveBundles.dat
deleted file mode 100644
index 08d510782ca..00000000000
--- a/examples/pysp/networkflow/10scenario-bundle-specs/FiveBundles.dat
+++ /dev/null
@@ -1,13 +0,0 @@
-param Bundling := True ;
-
-set Bundles := Bundle1
-Bundle2
-Bundle3
-Bundle4
-Bundle5 ;
-
-set BundleScenarios[Bundle1] := Scenario1 Scenario2 ;
-set BundleScenarios[Bundle2] := Scenario3 Scenario4 ;
-set BundleScenarios[Bundle3] := Scenario5 Scenario6 ;
-set BundleScenarios[Bundle4] := Scenario7 Scenario8 ;
-set BundleScenarios[Bundle5] := Scenario9 Scenario10 ;
diff --git a/examples/pysp/networkflow/10scenario-bundle-specs/TenBundles.dat b/examples/pysp/networkflow/10scenario-bundle-specs/TenBundles.dat
deleted file mode 100644
index 46d652eb54a..00000000000
--- a/examples/pysp/networkflow/10scenario-bundle-specs/TenBundles.dat
+++ /dev/null
@@ -1,24 +0,0 @@
-param Bundling := True ;
-
-set Bundles := Bundle1
-Bundle2
-Bundle3
-Bundle4
-Bundle5
-Bundle6
-Bundle7
-Bundle8
-Bundle9
-Bundle10 ;
-
-set BundleScenarios[Bundle1] := Scenario1 ;
-set BundleScenarios[Bundle2] := Scenario2 ;
-set BundleScenarios[Bundle3] := Scenario3 ;
-set BundleScenarios[Bundle4] := Scenario4 ;
-set BundleScenarios[Bundle5] := Scenario5 ;
-set BundleScenarios[Bundle6] := Scenario6 ;
-set BundleScenarios[Bundle7] := Scenario7 ;
-set BundleScenarios[Bundle8] := Scenario8 ;
-set BundleScenarios[Bundle9] := Scenario9 ;
-set BundleScenarios[Bundle10] := Scenario10 ;
-
diff --git a/examples/pysp/networkflow/10scenario-bundle-specs/ThreeBundles.dat b/examples/pysp/networkflow/10scenario-bundle-specs/ThreeBundles.dat
deleted file mode 100644
index bcffa934950..00000000000
--- a/examples/pysp/networkflow/10scenario-bundle-specs/ThreeBundles.dat
+++ /dev/null
@@ -1,11 +0,0 @@
-param Bundling := True ;
-
-set Bundles :=
-Bundle1
-Bundle2
-Bundle3
-;
-
-set BundleScenarios[Bundle1] := Scenario1 Scenario2 Scenario3 ;
-set BundleScenarios[Bundle2] := Scenario4 Scenario5 Scenario6 ;
-set BundleScenarios[Bundle3] := Scenario7 Scenario8 Scenario9 Scenario10 ;
diff --git a/examples/pysp/networkflow/10scenario-bundle-specs/TwoBundles.dat b/examples/pysp/networkflow/10scenario-bundle-specs/TwoBundles.dat
deleted file mode 100644
index 62711b21855..00000000000
--- a/examples/pysp/networkflow/10scenario-bundle-specs/TwoBundles.dat
+++ /dev/null
@@ -1,6 +0,0 @@
-param Bundling := True ;
-
-set Bundles := Bundle1 Bundle2 ;
-
-set BundleScenarios[Bundle1] := Scenario1 Scenario2 Scenario3 Scenario4 Scenario5 ;
-set BundleScenarios[Bundle2] := Scenario6 Scenario7 Scenario8 Scenario9 Scenario10 ;
diff --git a/examples/pysp/networkflow/1ef10/Scenario1.dat b/examples/pysp/networkflow/1ef10/Scenario1.dat
deleted file mode 100755
index 957eae74ec0..00000000000
--- a/examples/pysp/networkflow/1ef10/Scenario1.dat
+++ /dev/null
@@ -1,97 +0,0 @@
-set Nodes := A B C D E F G H I J;
-
-set Arcs := (A,B) (B,A) (A,C) (C,A) (B,C) (C,B) (B,D) (D,B) (B,E) (E,B) (C,D) (D,C) (D,E) (E,D) (F,G) (G,F) (F,H) (H,F) (G,H) (H,G) (G,I) (I,G) (G,J) (J,G) (H,I) (I,H) (I,J) (J,I) (E,F) (F,E);
-
-param CapCost :=
-A B 112
-A C 123
-B C 116
-B D 128
-B E 130
-C D 112
-D E 110
-B A 112
-C A 123
-C B 116
-D B 128
-E B 130
-D C 112
-E D 110
-E F 110
-F E 110
-F G 112
-F H 128
-G H 116
-G I 123
-G J 130
-H I 112
-I J 110
-G F 112
-H F 128
-H G 116
-I G 123
-J G 130
-I H 112
-J I 110
-;
-
-param b0Cost :=
-A B 1120
-A C 1230
-B C 1160
-B D 1280
-B E 1300
-C D 1120
-D E 1100
-B A 1120
-C A 1230
-C B 1160
-D B 1280
-E B 1300
-D C 1120
-E D 1100
-E F 1100
-F E 1100
-F G 1120
-F H 1280
-G H 1160
-G I 1230
-G J 1300
-H I 1120
-I J 1100
-G F 1120
-H F 1280
-H G 1160
-I G 1230
-J G 1300
-I H 1120
-J I 1100
-;
-
-param FCost:
- A B C D E F G H I J :=
- A 0.00 560.00 1845.00 2010.00 2175.00 1560.00 1670.00 1780.00 2835.00 950.00
- B 560.00 0.00 1740.00 640.00 650.00 1420.00 2310.00 1660.00 890.00 900.00
- C 1845.00 1740.00 0.00 1680.00 1250.00 2070.00 705.00 1540.00 835.00 1700.00
- D 2010.00 640.00 1680.00 0.00 1100.00 1860.00 690.00 710.00 2340.00 1600.00
- E 2175.00 650.00 1250.00 1100.00 0.00 1100.00 1875.00 1300.00 2175.00 1500.00
- F 1560.00 1420.00 2070.00 1860.00 1100.00 0.00 560.00 640.00 2010.00 700.00
- G 1670.00 2310.00 705.00 690.00 1875.00 560.00 0.00 1740.00 615.00 1950.00
- H 1780.00 1660.00 1540.00 710.00 1300.00 640.00 1740.00 0.00 560.00 600.00
- I 2835.00 890.00 835.00 2340.00 2175.00 2010.00 615.00 560.00 0.00 550.00
- J 950.00 900.00 1700.00 1600.00 1500.00 700.00 1950.00 600.00 550.00 0.00 ;
-
-param Demand:
- A B C D E F G H I J :=
- A 0 3.47 4.16 3.81 4.02 3.77 3.84 4.02 3.80 3.84
- B 3.47 0 4.21 4.18 3.94 4.14 4.07 3.69 3.50 3.96
- C 4.16 4.21 0 4.29 4.27 4.26 4.09 3.73 3.64 3.88
- D 3.81 4.18 4.29 0 3.66 3.95 3.54 4.07 3.64 4.21
- E 4.02 3.94 4.27 3.66 0 4.04 4.14 3.92 3.57 3.77
- F 3.77 4.14 4.26 3.95 4.04 0 3.69 3.62 3.76 3.73
- G 3.84 4.07 4.09 3.54 4.14 3.69 0 4.10 3.25 4.08
- H 4.02 3.69 3.73 4.07 3.92 3.62 4.10 0 3.55 3.82
- I 3.80 3.50 3.64 3.64 3.57 3.76 3.25 3.55 0 4.19
- J 3.84 3.96 3.88 4.21 3.77 3.73 4.08 3.82 4.19 0 ;
-
-param M := 174.88 ;
diff --git a/examples/pysp/networkflow/1ef10/Scenario10.dat b/examples/pysp/networkflow/1ef10/Scenario10.dat
deleted file mode 100755
index 61e7da3f66c..00000000000
--- a/examples/pysp/networkflow/1ef10/Scenario10.dat
+++ /dev/null
@@ -1,97 +0,0 @@
-set Nodes := A B C D E F G H I J;
-
-set Arcs := (A,B) (B,A) (A,C) (C,A) (B,C) (C,B) (B,D) (D,B) (B,E) (E,B) (C,D) (D,C) (D,E) (E,D) (F,G) (G,F) (F,H) (H,F) (G,H) (H,G) (G,I) (I,G) (G,J) (J,G) (H,I) (I,H) (I,J) (J,I) (E,F) (F,E);
-
-param CapCost :=
-A B 112
-A C 123
-B C 116
-B D 128
-B E 130
-C D 112
-D E 110
-B A 112
-C A 123
-C B 116
-D B 128
-E B 130
-D C 112
-E D 110
-E F 110
-F E 110
-F G 112
-F H 128
-G H 116
-G I 123
-G J 130
-H I 112
-I J 110
-G F 112
-H F 128
-H G 116
-I G 123
-J G 130
-I H 112
-J I 110
-;
-
-param b0Cost :=
-A B 1120
-A C 1230
-B C 1160
-B D 1280
-B E 1300
-C D 1120
-D E 1100
-B A 1120
-C A 1230
-C B 1160
-D B 1280
-E B 1300
-D C 1120
-E D 1100
-E F 1100
-F E 1100
-F G 1120
-F H 1280
-G H 1160
-G I 1230
-G J 1300
-H I 1120
-I J 1100
-G F 1120
-H F 1280
-H G 1160
-I G 1230
-J G 1300
-I H 1120
-J I 1100
-;
-
-param FCost:
- A B C D E F G H I J :=
- A 0.00 560.00 1845.00 670.00 2175.00 1560.00 1670.00 2670.00 1890.00 2850.00
- B 560.00 0.00 1160.00 1920.00 1950.00 710.00 1540.00 2490.00 2670.00 900.00
- C 1845.00 1160.00 0.00 1680.00 1875.00 1380.00 705.00 2310.00 1670.00 1700.00
- D 670.00 1920.00 1680.00 0.00 1100.00 1860.00 2070.00 2130.00 2340.00 1600.00
- E 2175.00 1950.00 1875.00 1100.00 0.00 550.00 1875.00 650.00 1450.00 750.00
- F 1560.00 710.00 1380.00 1860.00 550.00 0.00 1680.00 640.00 670.00 2100.00
- G 1670.00 1540.00 705.00 2070.00 1875.00 1680.00 0.00 1160.00 1845.00 650.00
- H 2670.00 2490.00 2310.00 2130.00 650.00 640.00 1160.00 0.00 1680.00 1800.00
- I 1890.00 2670.00 1670.00 2340.00 1450.00 670.00 1845.00 1680.00 0.00 1650.00
- J 2850.00 900.00 1700.00 1600.00 750.00 2100.00 650.00 1800.00 1650.00 0.00 ;
-
-param Demand:
- A B C D E F G H I J :=
- A 0 3.12 3.34 3.12 3.15 3.47 3.03 3.33 3.15 3.20
- B 3.12 0 3.42 3.59 3.21 3.16 3.43 3.40 3.57 3.71
- C 3.34 3.42 0 3.35 3.50 3.06 3.27 3.38 3.17 3.45
- D 3.12 3.59 3.35 0 2.94 2.80 3.12 3.08 3.67 3.05
- E 3.15 3.21 3.50 2.94 0 3.24 3.32 3.14 3.08 3.52
- F 3.47 3.16 3.06 2.80 3.24 0 3.03 3.24 3.36 3.23
- G 3.03 3.43 3.27 3.12 3.32 3.03 0 3.17 3.38 3.52
- H 3.33 3.40 3.38 3.08 3.14 3.24 3.17 0 3.07 3.15
- I 3.15 3.57 3.17 3.67 3.08 3.36 3.38 3.07 0 2.75
- J 3.20 3.71 3.45 3.05 3.52 3.23 3.52 3.15 2.75 0 ;
-
-param M := 174.88 ;
diff --git a/examples/pysp/networkflow/1ef10/Scenario2.dat b/examples/pysp/networkflow/1ef10/Scenario2.dat
deleted file mode 100755
index 7fc0e9fbf0e..00000000000
--- a/examples/pysp/networkflow/1ef10/Scenario2.dat
+++ /dev/null
@@ -1,97 +0,0 @@
-set Nodes := A B C D E F G H I J;
-
-set Arcs := (A,B) (B,A) (A,C) (C,A) (B,C) (C,B) (B,D) (D,B) (B,E) (E,B) (C,D) (D,C) (D,E) (E,D) (F,G) (G,F) (F,H) (H,F) (G,H) (H,G) (G,I) (I,G) (G,J) (J,G) (H,I) (I,H) (I,J) (J,I) (E,F) (F,E);
-
-param CapCost :=
-A B 112
-A C 123
-B C 116
-B D 128
-B E 130
-C D 112
-D E 110
-B A 112
-C A 123
-C B 116
-D B 128
-E B 130
-D C 112
-E D 110
-E F 110
-F E 110
-F G 112
-F H 128
-G H 116
-G I 123
-G J 130
-H I 112
-I J 110
-G F 112
-H F 128
-H G 116
-I G 123
-J G 130
-I H 112
-J I 110
-;
-
-param b0Cost :=
-A B 1120
-A C 1230
-B C 1160
-B D 1280
-B E 1300
-C D 1120
-D E 1100
-B A 1120
-C A 1230
-C B 1160
-D B 1280
-E B 1300
-D C 1120
-E D 1100
-E F 1100
-F E 1100
-F G 1120
-F H 1280
-G H 1160
-G I 1230
-G J 1300
-H I 1120
-I J 1100
-G F 1120
-H F 1280
-H G 1160
-I G 1230
-J G 1300
-I H 1120
-J I 1100
-;
-
-param FCost:
- A B C D E F G H I J :=
- A 0.00 560.00 1230.00 1340.00 2175.00 2340.00 2505.00 890.00 2835.00 1900.00
- B 560.00 0.00 1160.00 640.00 1950.00 710.00 1540.00 830.00 890.00 1800.00
- C 1230.00 1160.00 0.00 1120.00 1250.00 690.00 705.00 1540.00 835.00 1700.00
- D 1340.00 640.00 1120.00 0.00 550.00 1860.00 1380.00 710.00 1560.00 800.00
- E 2175.00 1950.00 1250.00 550.00 0.00 1650.00 1875.00 650.00 1450.00 750.00
- F 2340.00 710.00 690.00 1860.00 1650.00 0.00 1680.00 640.00 1340.00 2100.00
- G 2505.00 1540.00 705.00 1380.00 1875.00 1680.00 0.00 1160.00 1230.00 650.00
- H 890.00 830.00 1540.00 710.00 650.00 640.00 1160.00 0.00 1120.00 1800.00
- I 2835.00 890.00 835.00 1560.00 1450.00 1340.00 1230.00 1120.00 0.00 550.00
- J 1900.00 1800.00 1700.00 800.00 750.00 2100.00 650.00 1800.00 550.00 0.00 ;
-
-param Demand:
- A B C D E F G H I J :=
- A 0 3.41 3.24 3.22 2.80 3.06 3.32 3.00 3.53 3.35
- B 3.41 0 3.15 3.50 2.98 3.19 3.14 3.12 3.49 3.20
- C 3.24 3.15 0 3.01 3.13 3.24 3.08 3.59 3.05 3.19
- D 3.22 3.50 3.01 0 3.35 2.97 3.18 3.17 2.90 3.12
- E 2.80 2.98 3.13 3.35 0 3.17 3.12 3.27 3.14 3.16
- F 3.06 3.19 3.24 2.97 3.17 0 3.01 3.21 2.87 3.25
- G 3.32 3.14 3.08 3.18 3.12 3.01 0 3.02 2.95 3.18
- H 3.00 3.12 3.59 3.17 3.27 3.21 3.02 0 3.37 3.02
- I 3.53 3.49 3.05 2.90 3.14 2.87 2.95 3.37 0 3.10
- J 3.35 3.20 3.19 3.12 3.16 3.25 3.18 3.02 3.10 0 ;
-
-param M := 174.88 ;
diff --git a/examples/pysp/networkflow/1ef10/Scenario3.dat b/examples/pysp/networkflow/1ef10/Scenario3.dat
deleted file mode 100755
index fd4af00131a..00000000000
--- a/examples/pysp/networkflow/1ef10/Scenario3.dat
+++ /dev/null
@@ -1,97 +0,0 @@
-set Nodes := A B C D E F G H I J;
-
-set Arcs := (A,B) (B,A) (A,C) (C,A) (B,C) (C,B) (B,D) (D,B) (B,E) (E,B) (C,D) (D,C) (D,E) (E,D) (F,G) (G,F) (F,H) (H,F) (G,H) (H,G) (G,I) (I,G) (G,J) (J,G) (H,I) (I,H) (I,J) (J,I) (E,F) (F,E);
-
-param CapCost :=
-A B 112
-A C 123
-B C 116
-B D 128
-B E 130
-C D 112
-D E 110
-B A 112
-C A 123
-C B 116
-D B 128
-E B 130
-D C 112
-E D 110
-E F 110
-F E 110
-F G 112
-F H 128
-G H 116
-G I 123
-G J 130
-H I 112
-I J 110
-G F 112
-H F 128
-H G 116
-I G 123
-J G 130
-I H 112
-J I 110
-;
-
-param b0Cost :=
-A B 1120
-A C 1230
-B C 1160
-B D 1280
-B E 1300
-C D 1120
-D E 1100
-B A 1120
-C A 1230
-C B 1160
-D B 1280
-E B 1300
-D C 1120
-E D 1100
-E F 1100
-F E 1100
-F G 1120
-F H 1280
-G H 1160
-G I 1230
-G J 1300
-H I 1120
-I J 1100
-G F 1120
-H F 1280
-H G 1160
-I G 1230
-J G 1300
-I H 1120
-J I 1100
-;
-
-param FCost:
- A B C D E F G H I J :=
- A 0.00 1120.00 1230.00 670.00 1450.00 1560.00 835.00 1780.00 1890.00 1900.00
- B 1120.00 0.00 1160.00 1920.00 650.00 710.00 770.00 2490.00 2670.00 1800.00
- C 1230.00 1160.00 0.00 560.00 1875.00 690.00 2115.00 2310.00 835.00 2550.00
- D 670.00 1920.00 560.00 0.00 1100.00 1240.00 1380.00 710.00 1560.00 1600.00
- E 1450.00 650.00 1875.00 1100.00 0.00 1650.00 625.00 1300.00 725.00 750.00
- F 1560.00 710.00 690.00 1240.00 1650.00 0.00 1120.00 1280.00 670.00 700.00
- G 835.00 770.00 2115.00 1380.00 625.00 1120.00 0.00 1740.00 615.00 1950.00
- H 1780.00 2490.00 2310.00 710.00 1300.00 1280.00 1740.00 0.00 1680.00 1800.00
- I 1890.00 2670.00 835.00 1560.00 725.00 670.00 615.00 1680.00 0.00 1650.00
- J 1900.00 1800.00 2550.00 1600.00 750.00 700.00 1950.00 1800.00 1650.00 0.00 ;
-
-param Demand:
- A B C D E F G H I J :=
- A 0 2.66 3.06 2.77 3.06 3.17 3.61 3.69 3.41 3.12
- B 2.66 0 2.86 3.34 3.23 3.34 2.85 3.06 3.16 3.06
- C 3.06 2.86 0 3.18 3.46 3.28 2.95 3.18 3.40 3.04
- D 2.77 3.34 3.18 0 2.86 3.15 3.61 2.88 3.44 2.86
- E 3.06 3.23 3.46 2.86 0 3.11 3.02 3.50 3.67 3.30
- F 3.17 3.34 3.28 3.15 3.11 0 3.25 3.13 2.73 3.38
- G 3.61 2.85 2.95 3.61 3.02 3.25 0 3.11 3.32 3.67
- H 3.69 3.06 3.18 2.88 3.50 3.13 3.11 0 2.68 3.25
- I 3.41 3.16 3.40 3.44 3.67 2.73 3.32 2.68 0 2.94
- J 3.12 3.06 3.04 2.86 3.30 3.38 3.67 3.25 2.94 0 ;
-
-param M := 174.88 ;
diff --git a/examples/pysp/networkflow/1ef10/Scenario4.dat b/examples/pysp/networkflow/1ef10/Scenario4.dat
deleted file mode 100755
index 8cf734825f7..00000000000
--- a/examples/pysp/networkflow/1ef10/Scenario4.dat
+++ /dev/null
@@ -1,97 +0,0 @@
-set Nodes := A B C D E F G H I J;
-
-set Arcs := (A,B) (B,A) (A,C) (C,A) (B,C) (C,B) (B,D) (D,B) (B,E) (E,B) (C,D) (D,C) (D,E) (E,D) (F,G) (G,F) (F,H) (H,F) (G,H) (H,G) (G,I) (I,G) (G,J) (J,G) (H,I) (I,H) (I,J) (J,I) (E,F) (F,E);
-
-param CapCost :=
-A B 112
-A C 123
-B C 116
-B D 128
-B E 130
-C D 112
-D E 110
-B A 112
-C A 123
-C B 116
-D B 128
-E B 130
-D C 112
-E D 110
-E F 110
-F E 110
-F G 112
-F H 128
-G H 116
-G I 123
-G J 130
-H I 112
-I J 110
-G F 112
-H F 128
-H G 116
-I G 123
-J G 130
-I H 112
-J I 110
-;
-
-param b0Cost :=
-A B 1120
-A C 1230
-B C 1160
-B D 1280
-B E 1300
-C D 1120
-D E 1100
-B A 1120
-C A 1230
-C B 1160
-D B 1280
-E B 1300
-D C 1120
-E D 1100
-E F 1100
-F E 1100
-F G 1120
-F H 1280
-G H 1160
-G I 1230
-G J 1300
-H I 1120
-I J 1100
-G F 1120
-H F 1280
-H G 1160
-I G 1230
-J G 1300
-I H 1120
-J I 1100
-;
-
-param FCost:
- A B C D E F G H I J :=
- A 0.00 1120.00 1230.00 670.00 1450.00 2340.00 2505.00 890.00 1890.00 950.00
- B 1120.00 0.00 1160.00 1920.00 1950.00 1420.00 770.00 1660.00 890.00 1800.00
- C 1230.00 1160.00 0.00 1120.00 1875.00 690.00 1410.00 770.00 1670.00 2550.00
- D 670.00 1920.00 1120.00 0.00 550.00 620.00 690.00 2130.00 780.00 800.00
- E 1450.00 1950.00 1875.00 550.00 0.00 1100.00 1875.00 1950.00 725.00 1500.00
- F 2340.00 1420.00 690.00 620.00 1100.00 0.00 560.00 1920.00 2010.00 700.00
- G 2505.00 770.00 1410.00 690.00 1875.00 560.00 0.00 1160.00 1230.00 1950.00
- H 890.00 1660.00 770.00 2130.00 1950.00 1920.00 1160.00 0.00 560.00 1800.00
- I 1890.00 890.00 1670.00 780.00 725.00 2010.00 1230.00 560.00 0.00 1650.00
- J 950.00 1800.00 2550.00 800.00 1500.00 700.00 1950.00 1800.00 1650.00 0.00 ;
-
-param Demand:
- A B C D E F G H I J :=
- A 0 2.81 2.39 2.60 2.88 2.85 2.95 2.76 2.77 2.66
- B 2.81 0 2.52 2.77 2.76 2.34 2.83 2.85 2.43 2.44
- C 2.39 2.52 0 2.69 2.62 3.00 2.59 2.81 2.39 2.91
- D 2.60 2.77 2.69 0 2.30 2.93 2.34 2.81 2.34 2.83
- E 2.88 2.76 2.62 2.30 0 2.73 2.71 2.84 2.52 2.34
- F 2.85 2.34 3.00 2.93 2.73 0 2.93 2.37 2.62 2.84
- G 2.95 2.83 2.59 2.34 2.71 2.93 0 2.97 2.82 2.64
- H 2.76 2.85 2.81 2.81 2.84 2.37 2.97 0 2.79 2.29
- I 2.77 2.43 2.39 2.34 2.52 2.62 2.82 2.79 0 3.12
- J 2.66 2.44 2.91 2.83 2.34 2.84 2.64 2.29 3.12 0 ;
-
-param M := 174.88 ;
diff --git a/examples/pysp/networkflow/1ef10/Scenario5.dat b/examples/pysp/networkflow/1ef10/Scenario5.dat
deleted file mode 100755
index 5937a912d9c..00000000000
--- a/examples/pysp/networkflow/1ef10/Scenario5.dat
+++ /dev/null
@@ -1,97 +0,0 @@
-set Nodes := A B C D E F G H I J;
-
-set Arcs := (A,B) (B,A) (A,C) (C,A) (B,C) (C,B) (B,D) (D,B) (B,E) (E,B) (C,D) (D,C) (D,E) (E,D) (F,G) (G,F) (F,H) (H,F) (G,H) (H,G) (G,I) (I,G) (G,J) (J,G) (H,I) (I,H) (I,J) (J,I) (E,F) (F,E);
-
-param CapCost :=
-A B 112
-A C 123
-B C 116
-B D 128
-B E 130
-C D 112
-D E 110
-B A 112
-C A 123
-C B 116
-D B 128
-E B 130
-D C 112
-E D 110
-E F 110
-F E 110
-F G 112
-F H 128
-G H 116
-G I 123
-G J 130
-H I 112
-I J 110
-G F 112
-H F 128
-H G 116
-I G 123
-J G 130
-I H 112
-J I 110
-;
-
-param b0Cost :=
-A B 1120
-A C 1230
-B C 1160
-B D 1280
-B E 1300
-C D 1120
-D E 1100
-B A 1120
-C A 1230
-C B 1160
-D B 1280
-E B 1300
-D C 1120
-E D 1100
-E F 1100
-F E 1100
-F G 1120
-F H 1280
-G H 1160
-G I 1230
-G J 1300
-H I 1120
-I J 1100
-G F 1120
-H F 1280
-H G 1160
-I G 1230
-J G 1300
-I H 1120
-J I 1100
-;
-
-param FCost:
- A B C D E F G H I J :=
- A 0.00 1680.00 1230.00 670.00 1450.00 2340.00 2505.00 2670.00 2835.00 2850.00
- B 1680.00 0.00 1740.00 640.00 1950.00 2130.00 770.00 1660.00 890.00 2700.00
- C 1230.00 1740.00 0.00 560.00 1875.00 2070.00 2115.00 770.00 2505.00 1700.00
- D 670.00 640.00 560.00 0.00 550.00 620.00 1380.00 1420.00 1560.00 1600.00
- E 1450.00 1950.00 1875.00 550.00 0.00 550.00 625.00 1950.00 2175.00 1500.00
- F 2340.00 2130.00 2070.00 620.00 550.00 0.00 1120.00 1280.00 1340.00 1400.00
- G 2505.00 770.00 2115.00 1380.00 625.00 1120.00 0.00 1740.00 615.00 1950.00
- H 2670.00 1660.00 770.00 1420.00 1950.00 1280.00 1740.00 0.00 560.00 600.00
- I 2835.00 890.00 2505.00 1560.00 2175.00 1340.00 615.00 560.00 0.00 1650.00
- J 2850.00 2700.00 1700.00 1600.00 1500.00 1400.00 1950.00 600.00 1650.00 0.00 ;
-
-param Demand:
- A B C D E F G H I J :=
- A 0 3.67 3.22 3.63 3.46 3.65 3.80 3.73 3.59 3.26
- B 3.67 0 3.50 3.61 3.93 3.71 3.70 3.56 3.86 3.58
- C 3.22 3.50 0 3.65 3.49 3.50 3.55 3.22 3.49 3.70
- D 3.63 3.61 3.65 0 3.57 4.12 3.39 3.83 3.32 3.57
- E 3.46 3.93 3.49 3.57 0 3.51 3.85 3.43 3.90 3.53
- F 3.65 3.71 3.50 4.12 3.51 0 3.76 3.46 3.74 3.95
- G 3.80 3.70 3.55 3.39 3.85 3.76 0 3.98 3.60 3.91
- H 3.73 3.56 3.22 3.83 3.43 3.46 3.98 0 3.53 3.20
- I 3.59 3.86 3.49 3.32 3.90 3.74 3.60 3.53 0 3.99
- J 3.26 3.58 3.70 3.57 3.53 3.95 3.91 3.20 3.99 0 ;
-
-param M := 174.88 ;
diff --git a/examples/pysp/networkflow/1ef10/Scenario6.dat b/examples/pysp/networkflow/1ef10/Scenario6.dat
deleted file mode 100755
index 15584539944..00000000000
--- a/examples/pysp/networkflow/1ef10/Scenario6.dat
+++ /dev/null
@@ -1,97 +0,0 @@
-set Nodes := A B C D E F G H I J;
-
-set Arcs := (A,B) (B,A) (A,C) (C,A) (B,C) (C,B) (B,D) (D,B) (B,E) (E,B) (C,D) (D,C) (D,E) (E,D) (F,G) (G,F) (F,H) (H,F) (G,H) (H,G) (G,I) (I,G) (G,J) (J,G) (H,I) (I,H) (I,J) (J,I) (E,F) (F,E);
-
-param CapCost :=
-A B 112
-A C 123
-B C 116
-B D 128
-B E 130
-C D 112
-D E 110
-B A 112
-C A 123
-C B 116
-D B 128
-E B 130
-D C 112
-E D 110
-E F 110
-F E 110
-F G 112
-F H 128
-G H 116
-G I 123
-G J 130
-H I 112
-I J 110
-G F 112
-H F 128
-H G 116
-I G 123
-J G 130
-I H 112
-J I 110
-;
-
-param b0Cost :=
-A B 1120
-A C 1230
-B C 1160
-B D 1280
-B E 1300
-C D 1120
-D E 1100
-B A 1120
-C A 1230
-C B 1160
-D B 1280
-E B 1300
-D C 1120
-E D 1100
-E F 1100
-F E 1100
-F G 1120
-F H 1280
-G H 1160
-G I 1230
-G J 1300
-H I 1120
-I J 1100
-G F 1120
-H F 1280
-H G 1160
-I G 1230
-J G 1300
-I H 1120
-J I 1100
-;
-
-param FCost:
- A B C D E F G H I J :=
- A 0.00 1120.00 1230.00 1340.00 1450.00 1560.00 1670.00 890.00 1890.00 950.00
- B 1120.00 0.00 1740.00 1920.00 650.00 2130.00 770.00 830.00 2670.00 2700.00
- C 1230.00 1740.00 0.00 1680.00 1875.00 2070.00 2115.00 2310.00 835.00 850.00
- D 1340.00 1920.00 1680.00 0.00 550.00 1240.00 1380.00 2130.00 2340.00 2400.00
- E 1450.00 650.00 1875.00 550.00 0.00 1650.00 1875.00 1950.00 725.00 2250.00
- F 1560.00 2130.00 2070.00 1240.00 1650.00 0.00 1680.00 1280.00 670.00 700.00
- G 1670.00 770.00 2115.00 1380.00 1875.00 1680.00 0.00 580.00 615.00 1950.00
- H 890.00 830.00 2310.00 2130.00 1950.00 1280.00 580.00 0.00 1120.00 1200.00
- I 1890.00 2670.00 835.00 2340.00 725.00 670.00 615.00 1120.00 0.00 1100.00
- J 950.00 2700.00 850.00 2400.00 2250.00 700.00 1950.00 1200.00 1100.00 0.00 ;
-
-param Demand:
- A B C D E F G H I J :=
- A 0 3.05 3.08 3.22 3.11 3.42 2.75 3.02 3.12 2.83
- B 3.05 0 3.35 3.12 3.07 3.29 3.28 3.03 3.09 2.83
- C 3.08 3.35 0 2.69 2.94 3.07 3.56 3.30 2.91 2.78
- D 3.22 3.12 2.69 0 3.26 3.20 3.26 3.28 3.08 3.06
- E 3.11 3.07 2.94 3.26 0 3.15 3.13 2.77 2.85 2.52
- F 3.42 3.29 3.07 3.20 3.15 0 3.26 2.56 2.98 3.12
- G 2.75 3.28 3.56 3.26 3.13 3.26 0 2.98 2.94 3.00
- H 3.02 3.03 3.30 3.28 2.77 2.56 2.98 0 3.42 3.27
- I 3.12 3.09 2.91 3.08 2.85 2.98 2.94 3.42 0 2.89
- J 2.83 2.83 2.78 3.06 2.52 3.12 3.00 3.27 2.89 0 ;
-
-param M := 174.88 ;
diff --git a/examples/pysp/networkflow/1ef10/Scenario7.dat b/examples/pysp/networkflow/1ef10/Scenario7.dat
deleted file mode 100755
index b6f15564ca5..00000000000
--- a/examples/pysp/networkflow/1ef10/Scenario7.dat
+++ /dev/null
@@ -1,97 +0,0 @@
-set Nodes := A B C D E F G H I J;
-
-set Arcs := (A,B) (B,A) (A,C) (C,A) (B,C) (C,B) (B,D) (D,B) (B,E) (E,B) (C,D) (D,C) (D,E) (E,D) (F,G) (G,F) (F,H) (H,F) (G,H) (H,G) (G,I) (I,G) (G,J) (J,G) (H,I) (I,H) (I,J) (J,I) (E,F) (F,E);
-
-param CapCost :=
-A B 112
-A C 123
-B C 116
-B D 128
-B E 130
-C D 112
-D E 110
-B A 112
-C A 123
-C B 116
-D B 128
-E B 130
-D C 112
-E D 110
-E F 110
-F E 110
-F G 112
-F H 128
-G H 116
-G I 123
-G J 130
-H I 112
-I J 110
-G F 112
-H F 128
-H G 116
-I G 123
-J G 130
-I H 112
-J I 110
-;
-
-param b0Cost :=
-A B 1120
-A C 1230
-B C 1160
-B D 1280
-B E 1300
-C D 1120
-D E 1100
-B A 1120
-C A 1230
-C B 1160
-D B 1280
-E B 1300
-D C 1120
-E D 1100
-E F 1100
-F E 1100
-F G 1120
-F H 1280
-G H 1160
-G I 1230
-G J 1300
-H I 1120
-I J 1100
-G F 1120
-H F 1280
-H G 1160
-I G 1230
-J G 1300
-I H 1120
-J I 1100
-;
-
-param FCost:
- A B C D E F G H I J :=
- A 0.00 560.00 615.00 2010.00 2175.00 2340.00 835.00 2670.00 1890.00 2850.00
- B 560.00 0.00 1740.00 640.00 650.00 1420.00 2310.00 830.00 890.00 900.00
- C 615.00 1740.00 0.00 560.00 1875.00 1380.00 2115.00 770.00 835.00 2550.00
- D 2010.00 640.00 560.00 0.00 1100.00 620.00 690.00 2130.00 780.00 2400.00
- E 2175.00 650.00 1875.00 1100.00 0.00 1100.00 625.00 650.00 1450.00 1500.00
- F 2340.00 1420.00 1380.00 620.00 1100.00 0.00 1680.00 1920.00 1340.00 700.00
- G 835.00 2310.00 2115.00 690.00 625.00 1680.00 0.00 1160.00 615.00 1300.00
- H 2670.00 830.00 770.00 2130.00 650.00 1920.00 1160.00 0.00 1120.00 600.00
- I 1890.00 890.00 835.00 780.00 1450.00 1340.00 615.00 1120.00 0.00 1650.00
- J 2850.00 900.00 2550.00 2400.00 1500.00 700.00 1300.00 600.00 1650.00 0.00 ;
-
-param Demand:
- A B C D E F G H I J :=
- A 0 3.61 3.36 3.68 3.32 2.85 3.30 3.51 3.25 3.36
- B 3.61 0 3.79 3.43 3.39 3.42 2.94 3.40 2.74 3.28
- C 3.36 3.79 0 3.26 2.72 2.91 3.11 2.98 3.10 3.38
- D 3.68 3.43 3.26 0 2.81 2.99 2.83 3.33 3.55 3.14
- E 3.32 3.39 2.72 2.81 0 3.28 2.96 2.88 3.55 3.02
- F 2.85 3.42 2.91 2.99 3.28 0 3.48 2.98 3.56 3.02
- G 3.30 2.94 3.11 2.83 2.96 3.48 0 3.33 3.38 3.24
- H 3.51 3.40 2.98 3.33 2.88 2.98 3.33 0 3.27 3.24
- I 3.25 2.74 3.10 3.55 3.55 3.56 3.38 3.27 0 2.78
- J 3.36 3.28 3.38 3.14 3.02 3.02 3.24 3.24 2.78 0 ;
-
-param M := 174.88 ;
diff --git a/examples/pysp/networkflow/1ef10/Scenario8.dat b/examples/pysp/networkflow/1ef10/Scenario8.dat
deleted file mode 100755
index c364cad58ff..00000000000
--- a/examples/pysp/networkflow/1ef10/Scenario8.dat
+++ /dev/null
@@ -1,97 +0,0 @@
-set Nodes := A B C D E F G H I J;
-
-set Arcs := (A,B) (B,A) (A,C) (C,A) (B,C) (C,B) (B,D) (D,B) (B,E) (E,B) (C,D) (D,C) (D,E) (E,D) (F,G) (G,F) (F,H) (H,F) (G,H) (H,G) (G,I) (I,G) (G,J) (J,G) (H,I) (I,H) (I,J) (J,I) (E,F) (F,E);
-
-param CapCost :=
-A B 112
-A C 123
-B C 116
-B D 128
-B E 130
-C D 112
-D E 110
-B A 112
-C A 123
-C B 116
-D B 128
-E B 130
-D C 112
-E D 110
-E F 110
-F E 110
-F G 112
-F H 128
-G H 116
-G I 123
-G J 130
-H I 112
-I J 110
-G F 112
-H F 128
-H G 116
-I G 123
-J G 130
-I H 112
-J I 110
-;
-
-param b0Cost :=
-A B 1120
-A C 1230
-B C 1160
-B D 1280
-B E 1300
-C D 1120
-D E 1100
-B A 1120
-C A 1230
-C B 1160
-D B 1280
-E B 1300
-D C 1120
-E D 1100
-E F 1100
-F E 1100
-F G 1120
-F H 1280
-G H 1160
-G I 1230
-G J 1300
-H I 1120
-I J 1100
-G F 1120
-H F 1280
-H G 1160
-I G 1230
-J G 1300
-I H 1120
-J I 1100
-;
-
-param FCost:
- A B C D E F G H I J :=
- A 0.00 1120.00 1230.00 670.00 1450.00 2340.00 835.00 1780.00 1890.00 1900.00
- B 1120.00 0.00 580.00 1920.00 1950.00 710.00 770.00 2490.00 1780.00 2700.00
- C 1230.00 580.00 0.00 560.00 1250.00 690.00 2115.00 1540.00 1670.00 2550.00
- D 670.00 1920.00 560.00 0.00 1650.00 1860.00 690.00 1420.00 780.00 800.00
- E 1450.00 1950.00 1250.00 1650.00 0.00 1100.00 1875.00 1950.00 725.00 2250.00
- F 2340.00 710.00 690.00 1860.00 1100.00 0.00 1120.00 1280.00 2010.00 1400.00
- G 835.00 770.00 2115.00 690.00 1875.00 1120.00 0.00 580.00 615.00 1950.00
- H 1780.00 2490.00 1540.00 1420.00 1950.00 1280.00 580.00 0.00 1120.00 1200.00
- I 1890.00 1780.00 1670.00 780.00 725.00 2010.00 615.00 1120.00 0.00 550.00
- J 1900.00 2700.00 2550.00 800.00 2250.00 1400.00 1950.00 1200.00 550.00 0.00 ;
-
-param Demand:
- A B C D E F G H I J :=
- A 0 3.08 3.52 3.34 2.96 3.24 2.91 3.29 3.32 2.92
- B 3.08 0 2.89 3.04 3.03 2.91 2.87 3.30 3.20 2.90
- C 3.52 2.89 0 3.28 2.81 3.26 3.17 3.42 2.78 3.21
- D 3.34 3.04 3.28 0 3.00 3.00 2.85 2.59 3.36 3.19
- E 2.96 3.03 2.81 3.00 0 2.95 3.09 2.99 2.74 2.89
- F 3.24 2.91 3.26 3.00 2.95 0 2.91 2.95 2.87 3.21
- G 2.91 2.87 3.17 2.85 3.09 2.91 0 2.90 3.16 3.11
- H 3.29 3.30 3.42 2.59 2.99 2.95 2.90 0 3.19 2.81
- I 3.32 3.20 2.78 3.36 2.74 2.87 3.16 3.19 0 2.43
- J 2.92 2.90 3.21 3.19 2.89 3.21 3.11 2.81 2.43 0 ;
-
-param M := 174.88 ;
diff --git a/examples/pysp/networkflow/1ef10/Scenario9.dat b/examples/pysp/networkflow/1ef10/Scenario9.dat
deleted file mode 100755
index 23a104d0791..00000000000
--- a/examples/pysp/networkflow/1ef10/Scenario9.dat
+++ /dev/null
@@ -1,97 +0,0 @@
-set Nodes := A B C D E F G H I J;
-
-set Arcs := (A,B) (B,A) (A,C) (C,A) (B,C) (C,B) (B,D) (D,B) (B,E) (E,B) (C,D) (D,C) (D,E) (E,D) (F,G) (G,F) (F,H) (H,F) (G,H) (H,G) (G,I) (I,G) (G,J) (J,G) (H,I) (I,H) (I,J) (J,I) (E,F) (F,E);
-
-param CapCost :=
-A B 112
-A C 123
-B C 116
-B D 128
-B E 130
-C D 112
-D E 110
-B A 112
-C A 123
-C B 116
-D B 128
-E B 130
-D C 112
-E D 110
-E F 110
-F E 110
-F G 112
-F H 128
-G H 116
-G I 123
-G J 130
-H I 112
-I J 110
-G F 112
-H F 128
-H G 116
-I G 123
-J G 130
-I H 112
-J I 110
-;
-
-param b0Cost :=
-A B 1120
-A C 1230
-B C 1160
-B D 1280
-B E 1300
-C D 1120
-D E 1100
-B A 1120
-C A 1230
-C B 1160
-D B 1280
-E B 1300
-D C 1120
-E D 1100
-E F 1100
-F E 1100
-F G 1120
-F H 1280
-G H 1160
-G I 1230
-G J 1300
-H I 1120
-I J 1100
-G F 1120
-H F 1280
-H G 1160
-I G 1230
-J G 1300
-I H 1120
-J I 1100
-;
-
-param FCost:
- A B C D E F G H I J :=
- A 0.00 560.00 615.00 1340.00 2175.00 780.00 1670.00 1780.00 1890.00 950.00
- B 560.00 0.00 1740.00 640.00 650.00 2130.00 1540.00 830.00 1780.00 2700.00
- C 615.00 1740.00 0.00 1680.00 625.00 690.00 1410.00 1540.00 835.00 1700.00
- D 1340.00 640.00 1680.00 0.00 1100.00 620.00 690.00 1420.00 1560.00 1600.00
- E 2175.00 650.00 625.00 1100.00 0.00 1650.00 1875.00 1950.00 2175.00 1500.00
- F 780.00 2130.00 690.00 620.00 1650.00 0.00 560.00 1280.00 1340.00 1400.00
- G 1670.00 1540.00 1410.00 690.00 1875.00 560.00 0.00 1160.00 1230.00 650.00
- H 1780.00 830.00 1540.00 1420.00 1950.00 1280.00 1160.00 0.00 1120.00 1800.00
- I 1890.00 1780.00 835.00 1560.00 2175.00 1340.00 1230.00 1120.00 0.00 550.00
- J 950.00 2700.00 1700.00 1600.00 1500.00 1400.00 650.00 1800.00 550.00 0.00 ;
-
-param Demand:
- A B C D E F G H I J :=
- A 0 3.44 3.42 3.55 3.18 3.71 3.79 3.88 3.76 3.38
- B 3.44 0 3.57 3.60 3.34 3.40 3.61 3.06 3.28 3.29
- C 3.42 3.57 0 3.22 3.36 3.63 3.47 3.73 3.06 3.33
- D 3.55 3.60 3.22 0 3.34 3.15 3.81 3.67 3.29 3.34
- E 3.18 3.34 3.36 3.34 0 3.59 3.35 3.30 3.19 3.28
- F 3.71 3.40 3.63 3.15 3.59 0 3.53 3.33 3.91 3.66
- G 3.79 3.61 3.47 3.81 3.35 3.53 0 3.73 3.35 3.66
- H 3.88 3.06 3.73 3.67 3.30 3.33 3.73 0 3.48 3.31
- I 3.76 3.28 3.06 3.29 3.19 3.91 3.35 3.48 0 3.52
- J 3.38 3.29 3.33 3.34 3.28 3.66 3.66 3.31 3.52 0 ;
-
-param M := 174.88 ;
diff --git a/examples/pysp/networkflow/1ef10/ScenarioStructure.dat b/examples/pysp/networkflow/1ef10/ScenarioStructure.dat
deleted file mode 100644
index 5e4719193ba..00000000000
--- a/examples/pysp/networkflow/1ef10/ScenarioStructure.dat
+++ /dev/null
@@ -1,81 +0,0 @@
-# IMPORTANT - THE STAGES ARE ASSUMED TO BE IN TIME-ORDER.
-
-set Stages := FirstStage SecondStage ;
-
-set Nodes := RootNode
- Scenario1Node
- Scenario2Node
- Scenario3Node
- Scenario4Node
- Scenario5Node
- Scenario6Node
- Scenario7Node
- Scenario8Node
- Scenario9Node
- Scenario10Node ;
-
-param NodeStage := RootNode FirstStage
- Scenario1Node SecondStage
- Scenario2Node SecondStage
- Scenario3Node SecondStage
- Scenario4Node SecondStage
- Scenario5Node SecondStage
- Scenario6Node SecondStage
- Scenario7Node SecondStage
- Scenario8Node SecondStage
- Scenario9Node SecondStage
- Scenario10Node SecondStage ;
-
-set Children[RootNode] := Scenario1Node
- Scenario2Node
- Scenario3Node
- Scenario4Node
- Scenario5Node
- Scenario6Node
- Scenario7Node
- Scenario8Node
- Scenario9Node
- Scenario10Node ;
-
-param ConditionalProbability := RootNode 1.0
- Scenario1Node 0.1
- Scenario2Node 0.1
- Scenario3Node 0.1
- Scenario4Node 0.1
- Scenario5Node 0.1
- Scenario6Node 0.1
- Scenario7Node 0.1
- Scenario8Node 0.1
- Scenario9Node 0.1
- Scenario10Node 0.1 ;
-
-set Scenarios := Scenario1
- Scenario2
- Scenario3
- Scenario4
- Scenario5
- Scenario6
- Scenario7
- Scenario8
- Scenario9
- Scenario10 ;
-
-param ScenarioLeafNode := Scenario1 Scenario1Node
- Scenario2 Scenario2Node
- Scenario3 Scenario3Node
- Scenario4 Scenario4Node
- Scenario5 Scenario5Node
- Scenario6 Scenario6Node
- Scenario7 Scenario7Node
- Scenario8 Scenario8Node
- Scenario9 Scenario9Node
- Scenario10 Scenario10Node ;
-
-set StageVariables[FirstStage] := b0[*,*]
- x[*,*] ;
-set StageVariables[SecondStage] := b[*,*]
- y[*,*,*,*] ;
-
-param StageCost := FirstStage FirstStageCost
- SecondStage SecondStageCost ;
-
diff --git a/examples/pysp/networkflow/1ef10/db/README.md b/examples/pysp/networkflow/1ef10/db/README.md
deleted file mode 100644
index f05441b5025..00000000000
--- a/examples/pysp/networkflow/1ef10/db/README.md
+++ /dev/null
@@ -1,112 +0,0 @@
-This directory contains scripts and information meant to help ease the
-transition of a network flow model into a MySQL database, with all the
-data transfer and .dat rewrites that implies. This document describes
-the transition process.
-
-## Executive Summary
-
-Get Ruby 1.8, MySQL 5.1. Run `db/gen.rb` to build `1ef10.sql`. Import
-that file into your MySQL server. Run `db/switch.rb` to change the
-relevant `.dat` files. Re-run the 1ef10 model to verify it works.
-
-## Prerequisites
-
-In order to successfully complete the transition, your system needs:
-
-* The ability to run the network flow model in the first place. (This
- implies Python 2.5 - 2.7, a working Pyomo install, the various
- required modules, etc. See [the Pyomo site][pyomo_install] for
- details on installation.)
-* Ruby 1.8. The preferred version is 1.8.7, but most 1.8 series
- interpreters should work. Ruby 1.9 is untested.
-* An accessible MySQL server with a spare database. The translation
- scripts are not particularly friendly, flexible, or portable, and so
- it is recommended that you dedicate an entire database to the
- model, or be prepared to make manual modifications throughout the
- process. Recommended version is 5.1; any newer MySQL should suffice.
-* The InnoDB MySQL database engine. The network flow models rely on
- in-database foreign key constraints, and the default MyISAM engine
- does not support them. Using InnoDB is necessary for the generated
- SQL files to import.
-* An ODBC configuration that supports MySQL connections. On Windows,
- this means you must download a custom MySQL ODBC driver; on Linux
- and similar Unix-based systems, you will need the `unixODBC` package
- and a MySQL connector.
-* The `pyodbc` package in a directory on your Python path. Either your
- local Pyomo installation or your systemwide Python installation are
- acceptable.
-
-This guide focuses on Unix-based systems from this point on; adapting
-commands to Windows platforms is an exercise left to the reader.
-
-## Step 1: Generating SQL
-
-Before the model can pull from an SQL database, that database must be
-populated with the data from the various scenario `.dat` files. Move
-to the root directory of the model instance (`1ef10`, in this case)
-and open the file `db/gen.rb`. Ensure that the user-configurable values
-are correct, then close the file and run:
-
- $ ruby db/gen.rb
-
-This will create a file called `1ef10.sql` in the instance directory,
-backing up and replacing any existing file of the same name. This new
-SQL file contains all the relevant statements to create the data tables
-and populate them with data extracted from the `.dat` files.
-
-## Step 2: Importing SQL
-
-Once the `1ef10.sql` file has been successfully generated, locate the
-database name and credentials for your MySQL server. The scenario will
-use the following table names:
-
-* Nodes
-* Arcs
-* CapCost
-* b0Cost
-* FCost
-* Demand
-
-Your database must have these six tables available; they will be
-dropped and recreated on SQL import. The importer does not currently
-have SQL table name prefixing available.
-
-From the instance directory, run:
-
- $ cat 1ef10.sql | mysql -h -u -p -D
-
-Replace the relevant information as necessary. You will be prompted
-for your MySQL password on import; if your account has no password,
-drop the `-p` option. The import process should take a few seconds
-at most.
-
-Once the import completes, verify the data is stored in the MySQL
-database. Run:
-
- $ mysql -h -u -p
- > USE ;
- > SELECT COUNT (*) FROM Demand;
-
-The Demand table should contain 1100 rows; if it does not, the
-import was not successful.
-
-## Step 3: Converting .dat files
-
-Now that the data has been imported into the SQL database, it can
-be used to replace the data in .dat files locally. Run:
-
- $ ruby db/switch.rb
-
-You will be prompted for credentials to your MySQL server, including
-your username and password. This password will be written in plaintext -
-**do not use a sensitive or valuable password**.
-
-The script will back up the existing `.dat` files in a directory
-named `orig`, or a numbered variant if `orig` already exists. To go
-back to a file-based network flow problem, simply restore these files.
-
-## Step 4: Running the model
-
-At this point, the database conversion is complete. Run the model to
-verify its accuracy, and to check that your ODBC configuration is
-working properly.
diff --git a/examples/pysp/networkflow/1ef10/db/config.rb b/examples/pysp/networkflow/1ef10/db/config.rb
deleted file mode 100644
index daa6c6d8822..00000000000
--- a/examples/pysp/networkflow/1ef10/db/config.rb
+++ /dev/null
@@ -1,18 +0,0 @@
-###
-# User-configurable options.
-###
-
-# Number of scenarios. Expected to be in ScenarioX.dat.
-N = 10
-
-# Extra files not covered by N above.
-UserFiles = ["ReferenceModel.dat"]
-
-# Scenario number mappings. Inferred otherwise.
-UserMappings = {"ReferenceModel" => 0}
-
-# Output file name.
-OutFilename = "1ef10.sql"
-
-# Problem title
-ProblemName = "Network Flow 1ef10"
diff --git a/examples/pysp/networkflow/1ef10/db/gen.rb b/examples/pysp/networkflow/1ef10/db/gen.rb
deleted file mode 100755
index e1362059cb9..00000000000
--- a/examples/pysp/networkflow/1ef10/db/gen.rb
+++ /dev/null
@@ -1,160 +0,0 @@
-#!/usr/bin/env ruby
-
-['config', 'lib'].each do |r|
- require File.join(File.dirname(__FILE__), "#{r}.rb")
-end
-
-# Figure out usable files
-files = 1.upto(N).map { |i| "Scenario#{i}.dat" } + UserFiles
-info("Using files:", 1)
-files.each { |f| info f }
-info_indent(-1)
-
-# Save existing output file, if any
-if File.exist? OutFilename
- File.rename(OutFilename, OutFilename + ".orig")
- info "Moving existing output file to #{OutFilename}.orig"
-end
-
-# Header
-info("Beginning SQL translation for #{files.length} files...", indent = 1)
-output "--"
-output "-- MySQL data file for #{ProblemName}"
-output "-- Generated #{Time.now}"
-output "--"
-output
-
-# Drop existing tables
-info "Setting up SQL file"
-['Demand', 'FCost', 'b0Cost', 'CapCost', 'Arcs', 'Nodes'].each do |table|
- output "drop table if exists #{table};"
-end
-output
-
-# Create Nodes table
-info "Parsing Node information"
-output "create table Nodes ( name varchar(16) not null default '', primary key (name) ) engine=innodb;"
-
-# Get node set
-set_output = `grep 'set Nodes' #{files.join " "} | cut -f2- -d: | uniq`.chomp.split("\n")
-raise "Node names are not consistent across models" if set_output.length > 1
-
-m = /set Nodes := (.*);/.match(set_output[0])
-raise "Node set was not recognized" if m.nil?
-
-# Populate Nodes table
-node_names = m[1].split
-node_count = node_names.length
-output "insert into Nodes values #{node_names.to_sql(ParenType::ITEM)};"
-output
-
-# Create Arcs table
-info "Parsing Arc information"
-output "create table Arcs (
- first varchar(16) not null,
- second varchar(16) not null,
- primary key (first, second),
- foreign key (first) references Nodes (name),
- foreign key (second) references Nodes (name)
- ) engine=innodb ;"
-
-# Get arc set
-set_output = `grep 'set Arcs' #{files.join " "} | cut -f2- -d: | uniq`.chomp.split("\n")
-raise "Arc pairs are not consistent across models" if set_output.length > 1
-
-m = /set Arcs := (.*);/.match(set_output[0])
-raise "Arc set was not recognized" if m.nil?
-
-# Populate Arcs table
-arc_names = m[1].split.map { |i| [i[1].chr, i[3].chr] }
-arc_count = arc_names.length
-output "insert into Arcs values #{arc_names.to_sql(ParenType::NONE)};"
-output
-
-# Create CapCost table
-info "Parsing CapCost information"
-output "create table CapCost (
- first varchar(16) not null,
- second varchar(16) not null,
- cost int not null,
- primary key (first, second),
- foreign key (first, second) references Arcs (first, second)
- ) engine=innodb ;"
-
-# Find CapCost data for all referenced files
-capcost_data = files.map { |f| `grep -A#{arc_count} CapCost #{f} | tail -#{arc_count}` }
-1.upto(capcost_data.length - 2).each do |i|
- raise "CapCost data differs between models #{files[i]} and #{files[i + 1]}" if capcost_data[i] != capcost_data[i + 1]
-end
-
-# Populate CapCost table
-output "insert into CapCost values #{list2array(capcost_data[0]).to_sql(ParenType::NONE)};"
-output
-
-# Create b0Cost table
-info "Parsing b0Cost information"
-output "create table b0Cost (
- first varchar(16) not null,
- second varchar(16) not null,
- cost int not null,
- primary key (first, second),
- foreign key (first, second) references Arcs (first, second)
- ) engine=innodb ;"
-
-# Get b0Cost data
-b0cost_data = files.map { |f| `grep -A#{arc_count} b0Cost #{f} | tail -#{arc_count}` }
-1.upto(b0cost_data.length - 2).each do |i|
- raise "b0Cost data differs between models #{files[i]} and #{files[i + 1]}" if b0cost_data[i] != b0cost_data[i + 1]
-end
-
-# Populate b0Cost table
-output "insert into b0Cost values #{list2array(b0cost_data[0]).to_sql(ParenType::NONE)};"
-output
-
-# Create FCost table
-info "Parsing FCost information"
-output "create table FCost (
- scenario int not null default 0,
- first varchar(16) not null,
- second varchar(16) not null,
- cost float not null,
- primary key (scenario, first, second),
- foreign key (first) references Nodes (name),
- foreign key (second) references Nodes (name)
- ) engine=innodb ;"
-
-# Get FCost data tables
-fcost_data = files.map { |f| `grep -A#{node_count + 1} FCost #{f} | tail -#{node_count + 1}` }
-
-# Populate FCost table
-0.upto(files.length - 1).each do |i|
- fd = fcost_data[i]
- pfx = [scenario_number(files[i])]
- output "insert into FCost values #{table2array(fd, prefixes=pfx).to_sql(ParenType::NONE)};"
-end
-output
-
-# Create Demand table
-info "Parsing Demand information"
-output "create table Demand (
- scenario int not null default 0,
- first varchar(16) not null,
- second varchar(16) not null,
- demand float not null,
- primary key (scenario, first, second),
- foreign key (first) references Nodes (name),
- foreign key (second) references Nodes (name)
- ) engine=innodb ;"
-
-# Get Demand data
-demand_data = files.map { |f| `grep -A#{node_count + 1} Demand #{f} | tail -#{node_count + 1}` }
-0.upto(files.length - 1).each do |i|
- dd = demand_data[i]
- pfx = [scenario_number(files[i])]
- output "insert into Demand values #{table2array(dd, prefixes=pfx).to_sql(ParenType::NONE)};"
-end
-output
-
-# Finish up
-info_indent(-1)
-info "Done!"
diff --git a/examples/pysp/networkflow/1ef10/db/lib.rb b/examples/pysp/networkflow/1ef10/db/lib.rb
deleted file mode 100644
index c37b98fdfce..00000000000
--- a/examples/pysp/networkflow/1ef10/db/lib.rb
+++ /dev/null
@@ -1,96 +0,0 @@
-class ParenType
- NONE = 0
- ITEM = 1
- ARRAY = 2
-end
-
-class Array
- def to_sql(parens = ParenType::ARRAY)
- if parens == ParenType::ARRAY
- return "(" + self.map { |item| item.to_sql }.join(',') + ")"
- elsif parens == ParenType::ITEM
- return self.map { |item| "(#{item.to_sql})" }.join(',')
- elsif parens == ParenType::NONE
- return self.map { |item| item.to_sql }.join(',')
- else
- return self.to_s
- end
- end
-end
-
-class String
- def to_sql
- return "'#{self}'"
- end
-end
-
-class Object
- def to_sql
- return self.to_s.to_sql
- end
-end
-
-def list2array(data)
- result = []
- data.split("\n").each do |line|
- result.push line.split
- end
- return result
-end
-
-def table2array(data, prefixes = [], suffixes = [])
- lines = data.split("\n")
-
- # Get first line for set def
- seconds = lines.shift.split[0..-2]
-
- # Loop for values
- result = []
- lines.each do |line|
- # Extract values
- values = line.split
- first = values.shift
-
- # Drop punctuation
- if values[-1] == ';'
- values.slice!(-1)
- end
-
- # Check lengths match
- if values.length != seconds.length
- raise "Poorly formatted table"
- end
-
- # Actually format tuple
- 0.upto(seconds.length - 1).each do |i|
- result.push [prefixes, first, seconds[i], values[i], suffixes].flatten
- end
- end
- return result
-end
-
-def scenario_number(filename)
- filename = filename.chomp(".dat")
- m = /Scenario(\d+)/.match(filename)
- if UserMappings.has_key? filename
- return UserMappings[filename]
- elsif not m.nil?
- return m[1].to_i
- else
- return -1
- end
-end
-
-$_info_indent = 0
-def info(msg, indent = 0)
- puts "[INFO] #{' ' * $_info_indent}#{msg}"
- info_indent(indent)
-end
-
-def info_indent(indent = 0)
- $_info_indent += indent
-end
-
-def output(msg = "")
- File.open(OutFilename, "a") { |f| f.puts msg }
-end
diff --git a/examples/pysp/networkflow/1ef10/db/scripts/list2sql.rb b/examples/pysp/networkflow/1ef10/db/scripts/list2sql.rb
deleted file mode 100644
index 937b476415c..00000000000
--- a/examples/pysp/networkflow/1ef10/db/scripts/list2sql.rb
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/usr/bin/env ruby
-
-while line = $stdin.gets
- puts "(" + line.split.map {|i| "'#{i}'"}.join(',') + "),"
-end
diff --git a/examples/pysp/networkflow/1ef10/db/scripts/table2sql.rb b/examples/pysp/networkflow/1ef10/db/scripts/table2sql.rb
deleted file mode 100644
index 29cf59c63d4..00000000000
--- a/examples/pysp/networkflow/1ef10/db/scripts/table2sql.rb
+++ /dev/null
@@ -1,46 +0,0 @@
-#!/usr/bin/env ruby
-
-require 'optparse'
-
-prefixes = []
-suffixes = []
-OptionParser.new do |opts|
- opts.banner = "Usage: #{$FILENAME} [options]"
-
- opts.on("-p", "--prepend VAL", "Prepend a value to tuples. Repeatable.") do |p|
- prefixes.push p
- end
-
- opts.on("-a", "--append VAL", "Append a value to tuples. Repeatable") do |a|
- suffixes.push a
- end
-end.parse!
-
-# Helper
-class String
- def smart_split
- sa = self.split(/"/).collect { |x| x.strip }
- return (1..sa.length).zip(sa).collect { |i,x| (i&1).zero? ? x : x.split }.flatten
- end
-end
-
-# Get first line for set def
-firsts = $stdin.gets.smart_split[0..-2]
-
-# Loop for values
-while line = $stdin.gets
- values = line.smart_split
- second = values.shift
- if values[-1] == ';'
- _ = values.slice!(-1)
- end
-
- if values.length != firsts.length
- raise "Poorly formatted table"
- end
-
- 0.upto(firsts.length - 1).each do |i|
- elements = [prefixes, firsts[i], second, values[i], suffixes].flatten
- puts "(" + elements.map {|i| "'#{i}'"}.join(',') + "),"
- end
-end
diff --git a/examples/pysp/networkflow/1ef10/db/switch.rb b/examples/pysp/networkflow/1ef10/db/switch.rb
deleted file mode 100755
index b89bfaa5db8..00000000000
--- a/examples/pysp/networkflow/1ef10/db/switch.rb
+++ /dev/null
@@ -1,81 +0,0 @@
-#!/usr/bin/env ruby
-
-['config', 'lib'].each do |r|
- require File.join(File.dirname(__FILE__), "#{r}.rb")
-end
-
-# Get info from user
-config = {}
-
-print "MySQL hostname [localhost]: "
-config['host'] = gets.chomp
-config['host'] = 'localhost' if config['host'].empty?
-
-print "MySQL database [networkflow]: "
-config['db'] = gets.chomp
-config['db'] = 'networkflow' if config['db'].empty?
-
-print "MySQL user []: "
-config['user'] = gets.chomp
-
-print "MySQL password []: "
-config['pass'] = gets.chomp
-
-# Figure out usable files
-files = 1.upto(N).map { |i| "Scenario#{i}.dat" } + UserFiles
-
-# Save all existing files
-if File.exists? "orig"
- existing = [0]
- Dir.glob("orig.*") do |fn|
- puts "Globbing #{fn}"
- m = /^orig\.([0-9]+)$/.match(fn)
- if m
- existing.push m[1].to_i
- end
- end
- backup_dir = "orig.#{existing.sort[-1] + 1}"
-else
- backup_dir = "orig"
-end
-info "Backing up into directory #{backup_dir}"
-
-# Move and rewrite files
-info("Replacing #{files.length} .dat files", indent = 1)
-Dir.mkdir(backup_dir)
-files.each do |fn|
- info "Processing #{fn}..."
- # Back up
- File.rename(fn, File.join(backup_dir, fn))
-
- # Common data
- data = [
- {:columns => "name", :name => "Nodes", :format => "set"},
- {:columns => "first,second", :name => "Arcs", :format => "set"},
- {:columns => "first,second,cost", :name => "CapCost", :format => "param"},
- {:columns => "first,second,cost", :name => "b0Cost", :format => "param"},
- {:columns => "first,second,cost", :name => "FCost", :format => "param", :where => "scenario"},
- {:columns => "first,second,demand", :name => "Demand", :format => "param", :where => "scenario"}
- ]
-
- def query(d, sn)
- result = "SELECT #{d[:columns]} FROM #{d[:name]}"
- if ! d[:where].nil?
- result += " WHERE #{d[:where]}=#{sn}"
- end
- return result
- end
-
- # Rewrite
- File.open(fn, 'w') do |file|
- sn = scenario_number(fn)
-
- import_def = "Driver={MySQL};Database=#{config['db']};Server=#{config['host']};User=#{config['user']};Password=#{config['pass']};"
- data.each do |d|
- file.puts "import \"#{import_def}\" using=pyodbc query=\"#{query(d, sn)}\" format=#{d[:format]} : #{d[:name]} ;"
- end
- end
-end
-
-info_indent(-1)
-info "Done!"
diff --git a/examples/pysp/networkflow/1ef10With10Bundles/Scenario1.dat b/examples/pysp/networkflow/1ef10With10Bundles/Scenario1.dat
deleted file mode 100755
index 957eae74ec0..00000000000
--- a/examples/pysp/networkflow/1ef10With10Bundles/Scenario1.dat
+++ /dev/null
@@ -1,97 +0,0 @@
-set Nodes := A B C D E F G H I J;
-
-set Arcs := (A,B) (B,A) (A,C) (C,A) (B,C) (C,B) (B,D) (D,B) (B,E) (E,B) (C,D) (D,C) (D,E) (E,D) (F,G) (G,F) (F,H) (H,F) (G,H) (H,G) (G,I) (I,G) (G,J) (J,G) (H,I) (I,H) (I,J) (J,I) (E,F) (F,E);
-
-param CapCost :=
-A B 112
-A C 123
-B C 116
-B D 128
-B E 130
-C D 112
-D E 110
-B A 112
-C A 123
-C B 116
-D B 128
-E B 130
-D C 112
-E D 110
-E F 110
-F E 110
-F G 112
-F H 128
-G H 116
-G I 123
-G J 130
-H I 112
-I J 110
-G F 112
-H F 128
-H G 116
-I G 123
-J G 130
-I H 112
-J I 110
-;
-
-param b0Cost :=
-A B 1120
-A C 1230
-B C 1160
-B D 1280
-B E 1300
-C D 1120
-D E 1100
-B A 1120
-C A 1230
-C B 1160
-D B 1280
-E B 1300
-D C 1120
-E D 1100
-E F 1100
-F E 1100
-F G 1120
-F H 1280
-G H 1160
-G I 1230
-G J 1300
-H I 1120
-I J 1100
-G F 1120
-H F 1280
-H G 1160
-I G 1230
-J G 1300
-I H 1120
-J I 1100
-;
-
-param FCost:
- A B C D E F G H I J :=
- A 0.00 560.00 1845.00 2010.00 2175.00 1560.00 1670.00 1780.00 2835.00 950.00
- B 560.00 0.00 1740.00 640.00 650.00 1420.00 2310.00 1660.00 890.00 900.00
- C 1845.00 1740.00 0.00 1680.00 1250.00 2070.00 705.00 1540.00 835.00 1700.00
- D 2010.00 640.00 1680.00 0.00 1100.00 1860.00 690.00 710.00 2340.00 1600.00
- E 2175.00 650.00 1250.00 1100.00 0.00 1100.00 1875.00 1300.00 2175.00 1500.00
- F 1560.00 1420.00 2070.00 1860.00 1100.00 0.00 560.00 640.00 2010.00 700.00
- G 1670.00 2310.00 705.00 690.00 1875.00 560.00 0.00 1740.00 615.00 1950.00
- H 1780.00 1660.00 1540.00 710.00 1300.00 640.00 1740.00 0.00 560.00 600.00
- I 2835.00 890.00 835.00 2340.00 2175.00 2010.00 615.00 560.00 0.00 550.00
- J 950.00 900.00 1700.00 1600.00 1500.00 700.00 1950.00 600.00 550.00 0.00 ;
-
-param Demand:
- A B C D E F G H I J :=
- A 0 3.47 4.16 3.81 4.02 3.77 3.84 4.02 3.80 3.84
- B 3.47 0 4.21 4.18 3.94 4.14 4.07 3.69 3.50 3.96
- C 4.16 4.21 0 4.29 4.27 4.26 4.09 3.73 3.64 3.88
- D 3.81 4.18 4.29 0 3.66 3.95 3.54 4.07 3.64 4.21
- E 4.02 3.94 4.27 3.66 0 4.04 4.14 3.92 3.57 3.77
- F 3.77 4.14 4.26 3.95 4.04 0 3.69 3.62 3.76 3.73
- G 3.84 4.07 4.09 3.54 4.14 3.69 0 4.10 3.25 4.08
- H 4.02 3.69 3.73 4.07 3.92 3.62 4.10 0 3.55 3.82
- I 3.80 3.50 3.64 3.64 3.57 3.76 3.25 3.55 0 4.19
- J 3.84 3.96 3.88 4.21 3.77 3.73 4.08 3.82 4.19 0 ;
-
-param M := 174.88 ;
diff --git a/examples/pysp/networkflow/1ef10With10Bundles/Scenario10.dat b/examples/pysp/networkflow/1ef10With10Bundles/Scenario10.dat
deleted file mode 100755
index 61e7da3f66c..00000000000
--- a/examples/pysp/networkflow/1ef10With10Bundles/Scenario10.dat
+++ /dev/null
@@ -1,97 +0,0 @@
-set Nodes := A B C D E F G H I J;
-
-set Arcs := (A,B) (B,A) (A,C) (C,A) (B,C) (C,B) (B,D) (D,B) (B,E) (E,B) (C,D) (D,C) (D,E) (E,D) (F,G) (G,F) (F,H) (H,F) (G,H) (H,G) (G,I) (I,G) (G,J) (J,G) (H,I) (I,H) (I,J) (J,I) (E,F) (F,E);
-
-param CapCost :=
-A B 112
-A C 123
-B C 116
-B D 128
-B E 130
-C D 112
-D E 110
-B A 112
-C A 123
-C B 116
-D B 128
-E B 130
-D C 112
-E D 110
-E F 110
-F E 110
-F G 112
-F H 128
-G H 116
-G I 123
-G J 130
-H I 112
-I J 110
-G F 112
-H F 128
-H G 116
-I G 123
-J G 130
-I H 112
-J I 110
-;
-
-param b0Cost :=
-A B 1120
-A C 1230
-B C 1160
-B D 1280
-B E 1300
-C D 1120
-D E 1100
-B A 1120
-C A 1230
-C B 1160
-D B 1280
-E B 1300
-D C 1120
-E D 1100
-E F 1100
-F E 1100
-F G 1120
-F H 1280
-G H 1160
-G I 1230
-G J 1300
-H I 1120
-I J 1100
-G F 1120
-H F 1280
-H G 1160
-I G 1230
-J G 1300
-I H 1120
-J I 1100
-;
-
-param FCost:
- A B C D E F G H I J :=
- A 0.00 560.00 1845.00 670.00 2175.00 1560.00 1670.00 2670.00 1890.00 2850.00
- B 560.00 0.00 1160.00 1920.00 1950.00 710.00 1540.00 2490.00 2670.00 900.00
- C 1845.00 1160.00 0.00 1680.00 1875.00 1380.00 705.00 2310.00 1670.00 1700.00
- D 670.00 1920.00 1680.00 0.00 1100.00 1860.00 2070.00 2130.00 2340.00 1600.00
- E 2175.00 1950.00 1875.00 1100.00 0.00 550.00 1875.00 650.00 1450.00 750.00
- F 1560.00 710.00 1380.00 1860.00 550.00 0.00 1680.00 640.00 670.00 2100.00
- G 1670.00 1540.00 705.00 2070.00 1875.00 1680.00 0.00 1160.00 1845.00 650.00
- H 2670.00 2490.00 2310.00 2130.00 650.00 640.00 1160.00 0.00 1680.00 1800.00
- I 1890.00 2670.00 1670.00 2340.00 1450.00 670.00 1845.00 1680.00 0.00 1650.00
- J 2850.00 900.00 1700.00 1600.00 750.00 2100.00 650.00 1800.00 1650.00 0.00 ;
-
-param Demand:
- A B C D E F G H I J :=
- A 0 3.12 3.34 3.12 3.15 3.47 3.03 3.33 3.15 3.20
- B 3.12 0 3.42 3.59 3.21 3.16 3.43 3.40 3.57 3.71
- C 3.34 3.42 0 3.35 3.50 3.06 3.27 3.38 3.17 3.45
- D 3.12 3.59 3.35 0 2.94 2.80 3.12 3.08 3.67 3.05
- E 3.15 3.21 3.50 2.94 0 3.24 3.32 3.14 3.08 3.52
- F 3.47 3.16 3.06 2.80 3.24 0 3.03 3.24 3.36 3.23
- G 3.03 3.43 3.27 3.12 3.32 3.03 0 3.17 3.38 3.52
- H 3.33 3.40 3.38 3.08 3.14 3.24 3.17 0 3.07 3.15
- I 3.15 3.57 3.17 3.67 3.08 3.36 3.38 3.07 0 2.75
- J 3.20 3.71 3.45 3.05 3.52 3.23 3.52 3.15 2.75 0 ;
-
-param M := 174.88 ;
diff --git a/examples/pysp/networkflow/1ef10With10Bundles/Scenario2.dat b/examples/pysp/networkflow/1ef10With10Bundles/Scenario2.dat
deleted file mode 100755
index 7fc0e9fbf0e..00000000000
--- a/examples/pysp/networkflow/1ef10With10Bundles/Scenario2.dat
+++ /dev/null
@@ -1,97 +0,0 @@
-set Nodes := A B C D E F G H I J;
-
-set Arcs := (A,B) (B,A) (A,C) (C,A) (B,C) (C,B) (B,D) (D,B) (B,E) (E,B) (C,D) (D,C) (D,E) (E,D) (F,G) (G,F) (F,H) (H,F) (G,H) (H,G) (G,I) (I,G) (G,J) (J,G) (H,I) (I,H) (I,J) (J,I) (E,F) (F,E);
-
-param CapCost :=
-A B 112
-A C 123
-B C 116
-B D 128
-B E 130
-C D 112
-D E 110
-B A 112
-C A 123
-C B 116
-D B 128
-E B 130
-D C 112
-E D 110
-E F 110
-F E 110
-F G 112
-F H 128
-G H 116
-G I 123
-G J 130
-H I 112
-I J 110
-G F 112
-H F 128
-H G 116
-I G 123
-J G 130
-I H 112
-J I 110
-;
-
-param b0Cost :=
-A B 1120
-A C 1230
-B C 1160
-B D 1280
-B E 1300
-C D 1120
-D E 1100
-B A 1120
-C A 1230
-C B 1160
-D B 1280
-E B 1300
-D C 1120
-E D 1100
-E F 1100
-F E 1100
-F G 1120
-F H 1280
-G H 1160
-G I 1230
-G J 1300
-H I 1120
-I J 1100
-G F 1120
-H F 1280
-H G 1160
-I G 1230
-J G 1300
-I H 1120
-J I 1100
-;
-
-param FCost:
- A B C D E F G H I J :=
- A 0.00 560.00 1230.00 1340.00 2175.00 2340.00 2505.00 890.00 2835.00 1900.00
- B 560.00 0.00 1160.00 640.00 1950.00 710.00 1540.00 830.00 890.00 1800.00
- C 1230.00 1160.00 0.00 1120.00 1250.00 690.00 705.00 1540.00 835.00 1700.00
- D 1340.00 640.00 1120.00 0.00 550.00 1860.00 1380.00 710.00 1560.00 800.00
- E 2175.00 1950.00 1250.00 550.00 0.00 1650.00 1875.00 650.00 1450.00 750.00
- F 2340.00 710.00 690.00 1860.00 1650.00 0.00 1680.00 640.00 1340.00 2100.00
- G 2505.00 1540.00 705.00 1380.00 1875.00 1680.00 0.00 1160.00 1230.00 650.00
- H 890.00 830.00 1540.00 710.00 650.00 640.00 1160.00 0.00 1120.00 1800.00
- I 2835.00 890.00 835.00 1560.00 1450.00 1340.00 1230.00 1120.00 0.00 550.00
- J 1900.00 1800.00 1700.00 800.00 750.00 2100.00 650.00 1800.00 550.00 0.00 ;
-
-param Demand:
- A B C D E F G H I J :=
- A 0 3.41 3.24 3.22 2.80 3.06 3.32 3.00 3.53 3.35
- B 3.41 0 3.15 3.50 2.98 3.19 3.14 3.12 3.49 3.20
- C 3.24 3.15 0 3.01 3.13 3.24 3.08 3.59 3.05 3.19
- D 3.22 3.50 3.01 0 3.35 2.97 3.18 3.17 2.90 3.12
- E 2.80 2.98 3.13 3.35 0 3.17 3.12 3.27 3.14 3.16
- F 3.06 3.19 3.24 2.97 3.17 0 3.01 3.21 2.87 3.25
- G 3.32 3.14 3.08 3.18 3.12 3.01 0 3.02 2.95 3.18
- H 3.00 3.12 3.59 3.17 3.27 3.21 3.02 0 3.37 3.02
- I 3.53 3.49 3.05 2.90 3.14 2.87 2.95 3.37 0 3.10
- J 3.35 3.20 3.19 3.12 3.16 3.25 3.18 3.02 3.10 0 ;
-
-param M := 174.88 ;
diff --git a/examples/pysp/networkflow/1ef10With10Bundles/Scenario3.dat b/examples/pysp/networkflow/1ef10With10Bundles/Scenario3.dat
deleted file mode 100755
index fd4af00131a..00000000000
--- a/examples/pysp/networkflow/1ef10With10Bundles/Scenario3.dat
+++ /dev/null
@@ -1,97 +0,0 @@
-set Nodes := A B C D E F G H I J;
-
-set Arcs := (A,B) (B,A) (A,C) (C,A) (B,C) (C,B) (B,D) (D,B) (B,E) (E,B) (C,D) (D,C) (D,E) (E,D) (F,G) (G,F) (F,H) (H,F) (G,H) (H,G) (G,I) (I,G) (G,J) (J,G) (H,I) (I,H) (I,J) (J,I) (E,F) (F,E);
-
-param CapCost :=
-A B 112
-A C 123
-B C 116
-B D 128
-B E 130
-C D 112
-D E 110
-B A 112
-C A 123
-C B 116
-D B 128
-E B 130
-D C 112
-E D 110
-E F 110
-F E 110
-F G 112
-F H 128
-G H 116
-G I 123
-G J 130
-H I 112
-I J 110
-G F 112
-H F 128
-H G 116
-I G 123
-J G 130
-I H 112
-J I 110
-;
-
-param b0Cost :=
-A B 1120
-A C 1230
-B C 1160
-B D 1280
-B E 1300
-C D 1120
-D E 1100
-B A 1120
-C A 1230
-C B 1160
-D B 1280
-E B 1300
-D C 1120
-E D 1100
-E F 1100
-F E 1100
-F G 1120
-F H 1280
-G H 1160
-G I 1230
-G J 1300
-H I 1120
-I J 1100
-G F 1120
-H F 1280
-H G 1160
-I G 1230
-J G 1300
-I H 1120
-J I 1100
-;
-
-param FCost:
- A B C D E F G H I J :=
- A 0.00 1120.00 1230.00 670.00 1450.00 1560.00 835.00 1780.00 1890.00 1900.00
- B 1120.00 0.00 1160.00 1920.00 650.00 710.00 770.00 2490.00 2670.00 1800.00
- C 1230.00 1160.00 0.00 560.00 1875.00 690.00 2115.00 2310.00 835.00 2550.00
- D 670.00 1920.00 560.00 0.00 1100.00 1240.00 1380.00 710.00 1560.00 1600.00
- E 1450.00 650.00 1875.00 1100.00 0.00 1650.00 625.00 1300.00 725.00 750.00
- F 1560.00 710.00 690.00 1240.00 1650.00 0.00 1120.00 1280.00 670.00 700.00
- G 835.00 770.00 2115.00 1380.00 625.00 1120.00 0.00 1740.00 615.00 1950.00
- H 1780.00 2490.00 2310.00 710.00 1300.00 1280.00 1740.00 0.00 1680.00 1800.00
- I 1890.00 2670.00 835.00 1560.00 725.00 670.00 615.00 1680.00 0.00 1650.00
- J 1900.00 1800.00 2550.00 1600.00 750.00 700.00 1950.00 1800.00 1650.00 0.00 ;
-
-param Demand:
- A B C D E F G H I J :=
- A 0 2.66 3.06 2.77 3.06 3.17 3.61 3.69 3.41 3.12
- B 2.66 0 2.86 3.34 3.23 3.34 2.85 3.06 3.16 3.06
- C 3.06 2.86 0 3.18 3.46 3.28 2.95 3.18 3.40 3.04
- D 2.77 3.34 3.18 0 2.86 3.15 3.61 2.88 3.44 2.86
- E 3.06 3.23 3.46 2.86 0 3.11 3.02 3.50 3.67 3.30
- F 3.17 3.34 3.28 3.15 3.11 0 3.25 3.13 2.73 3.38
- G 3.61 2.85 2.95 3.61 3.02 3.25 0 3.11 3.32 3.67
- H 3.69 3.06 3.18 2.88 3.50 3.13 3.11 0 2.68 3.25
- I 3.41 3.16 3.40 3.44 3.67 2.73 3.32 2.68 0 2.94
- J 3.12 3.06 3.04 2.86 3.30 3.38 3.67 3.25 2.94 0 ;
-
-param M := 174.88 ;
diff --git a/examples/pysp/networkflow/1ef10With10Bundles/Scenario4.dat b/examples/pysp/networkflow/1ef10With10Bundles/Scenario4.dat
deleted file mode 100755
index 8cf734825f7..00000000000
--- a/examples/pysp/networkflow/1ef10With10Bundles/Scenario4.dat
+++ /dev/null
@@ -1,97 +0,0 @@
-set Nodes := A B C D E F G H I J;
-
-set Arcs := (A,B) (B,A) (A,C) (C,A) (B,C) (C,B) (B,D) (D,B) (B,E) (E,B) (C,D) (D,C) (D,E) (E,D) (F,G) (G,F) (F,H) (H,F) (G,H) (H,G) (G,I) (I,G) (G,J) (J,G) (H,I) (I,H) (I,J) (J,I) (E,F) (F,E);
-
-param CapCost :=
-A B 112
-A C 123
-B C 116
-B D 128
-B E 130
-C D 112
-D E 110
-B A 112
-C A 123
-C B 116
-D B 128
-E B 130
-D C 112
-E D 110
-E F 110
-F E 110
-F G 112
-F H 128
-G H 116
-G I 123
-G J 130
-H I 112
-I J 110
-G F 112
-H F 128
-H G 116
-I G 123
-J G 130
-I H 112
-J I 110
-;
-
-param b0Cost :=
-A B 1120
-A C 1230
-B C 1160
-B D 1280
-B E 1300
-C D 1120
-D E 1100
-B A 1120
-C A 1230
-C B 1160
-D B 1280
-E B 1300
-D C 1120
-E D 1100
-E F 1100
-F E 1100
-F G 1120
-F H 1280
-G H 1160
-G I 1230
-G J 1300
-H I 1120
-I J 1100
-G F 1120
-H F 1280
-H G 1160
-I G 1230
-J G 1300
-I H 1120
-J I 1100
-;
-
-param FCost:
- A B C D E F G H I J :=
- A 0.00 1120.00 1230.00 670.00 1450.00 2340.00 2505.00 890.00 1890.00 950.00
- B 1120.00 0.00 1160.00 1920.00 1950.00 1420.00 770.00 1660.00 890.00 1800.00
- C 1230.00 1160.00 0.00 1120.00 1875.00 690.00 1410.00 770.00 1670.00 2550.00
- D 670.00 1920.00 1120.00 0.00 550.00 620.00 690.00 2130.00 780.00 800.00
- E 1450.00 1950.00 1875.00 550.00 0.00 1100.00 1875.00 1950.00 725.00 1500.00
- F 2340.00 1420.00 690.00 620.00 1100.00 0.00 560.00 1920.00 2010.00 700.00
- G 2505.00 770.00 1410.00 690.00 1875.00 560.00 0.00 1160.00 1230.00 1950.00
- H 890.00 1660.00 770.00 2130.00 1950.00 1920.00 1160.00 0.00 560.00 1800.00
- I 1890.00 890.00 1670.00 780.00 725.00 2010.00 1230.00 560.00 0.00 1650.00
- J 950.00 1800.00 2550.00 800.00 1500.00 700.00 1950.00 1800.00 1650.00 0.00 ;
-
-param Demand:
- A B C D E F G H I J :=
- A 0 2.81 2.39 2.60 2.88 2.85 2.95 2.76 2.77 2.66
- B 2.81 0 2.52 2.77 2.76 2.34 2.83 2.85 2.43 2.44
- C 2.39 2.52 0 2.69 2.62 3.00 2.59 2.81 2.39 2.91
- D 2.60 2.77 2.69 0 2.30 2.93 2.34 2.81 2.34 2.83
- E 2.88 2.76 2.62 2.30 0 2.73 2.71 2.84 2.52 2.34
- F 2.85 2.34 3.00 2.93 2.73 0 2.93 2.37 2.62 2.84
- G 2.95 2.83 2.59 2.34 2.71 2.93 0 2.97 2.82 2.64
- H 2.76 2.85 2.81 2.81 2.84 2.37 2.97 0 2.79 2.29
- I 2.77 2.43 2.39 2.34 2.52 2.62 2.82 2.79 0 3.12
- J 2.66 2.44 2.91 2.83 2.34 2.84 2.64 2.29 3.12 0 ;
-
-param M := 174.88 ;
diff --git a/examples/pysp/networkflow/1ef10With10Bundles/Scenario5.dat b/examples/pysp/networkflow/1ef10With10Bundles/Scenario5.dat
deleted file mode 100755
index 5937a912d9c..00000000000
--- a/examples/pysp/networkflow/1ef10With10Bundles/Scenario5.dat
+++ /dev/null
@@ -1,97 +0,0 @@
-set Nodes := A B C D E F G H I J;
-
-set Arcs := (A,B) (B,A) (A,C) (C,A) (B,C) (C,B) (B,D) (D,B) (B,E) (E,B) (C,D) (D,C) (D,E) (E,D) (F,G) (G,F) (F,H) (H,F) (G,H) (H,G) (G,I) (I,G) (G,J) (J,G) (H,I) (I,H) (I,J) (J,I) (E,F) (F,E);
-
-param CapCost :=
-A B 112
-A C 123
-B C 116
-B D 128
-B E 130
-C D 112
-D E 110
-B A 112
-C A 123
-C B 116
-D B 128
-E B 130
-D C 112
-E D 110
-E F 110
-F E 110
-F G 112
-F H 128
-G H 116
-G I 123
-G J 130
-H I 112
-I J 110
-G F 112
-H F 128
-H G 116
-I G 123
-J G 130
-I H 112
-J I 110
-;
-
-param b0Cost :=
-A B 1120
-A C 1230
-B C 1160
-B D 1280
-B E 1300
-C D 1120
-D E 1100
-B A 1120
-C A 1230
-C B 1160
-D B 1280
-E B 1300
-D C 1120
-E D 1100
-E F 1100
-F E 1100
-F G 1120
-F H 1280
-G H 1160
-G I 1230
-G J 1300
-H I 1120
-I J 1100
-G F 1120
-H F 1280
-H G 1160
-I G 1230
-J G 1300
-I H 1120
-J I 1100
-;
-
-param FCost:
- A B C D E F G H I J :=
- A 0.00 1680.00 1230.00 670.00 1450.00 2340.00 2505.00 2670.00 2835.00 2850.00
- B 1680.00 0.00 1740.00 640.00 1950.00 2130.00 770.00 1660.00 890.00 2700.00
- C 1230.00 1740.00 0.00 560.00 1875.00 2070.00 2115.00 770.00 2505.00 1700.00
- D 670.00 640.00 560.00 0.00 550.00 620.00 1380.00 1420.00 1560.00 1600.00
- E 1450.00 1950.00 1875.00 550.00 0.00 550.00 625.00 1950.00 2175.00 1500.00
- F 2340.00 2130.00 2070.00 620.00 550.00 0.00 1120.00 1280.00 1340.00 1400.00
- G 2505.00 770.00 2115.00 1380.00 625.00 1120.00 0.00 1740.00 615.00 1950.00
- H 2670.00 1660.00 770.00 1420.00 1950.00 1280.00 1740.00 0.00 560.00 600.00
- I 2835.00 890.00 2505.00 1560.00 2175.00 1340.00 615.00 560.00 0.00 1650.00
- J 2850.00 2700.00 1700.00 1600.00 1500.00 1400.00 1950.00 600.00 1650.00 0.00 ;
-
-param Demand:
- A B C D E F G H I J :=
- A 0 3.67 3.22 3.63 3.46 3.65 3.80 3.73 3.59 3.26
- B 3.67 0 3.50 3.61 3.93 3.71 3.70 3.56 3.86 3.58
- C 3.22 3.50 0 3.65 3.49 3.50 3.55 3.22 3.49 3.70
- D 3.63 3.61 3.65 0 3.57 4.12 3.39 3.83 3.32 3.57
- E 3.46 3.93 3.49 3.57 0 3.51 3.85 3.43 3.90 3.53
- F 3.65 3.71 3.50 4.12 3.51 0 3.76 3.46 3.74 3.95
- G 3.80 3.70 3.55 3.39 3.85 3.76 0 3.98 3.60 3.91
- H 3.73 3.56 3.22 3.83 3.43 3.46 3.98 0 3.53 3.20
- I 3.59 3.86 3.49 3.32 3.90 3.74 3.60 3.53 0 3.99
- J 3.26 3.58 3.70 3.57 3.53 3.95 3.91 3.20 3.99 0 ;
-
-param M := 174.88 ;
diff --git a/examples/pysp/networkflow/1ef10With10Bundles/Scenario6.dat b/examples/pysp/networkflow/1ef10With10Bundles/Scenario6.dat
deleted file mode 100755
index 15584539944..00000000000
--- a/examples/pysp/networkflow/1ef10With10Bundles/Scenario6.dat
+++ /dev/null
@@ -1,97 +0,0 @@
-set Nodes := A B C D E F G H I J;
-
-set Arcs := (A,B) (B,A) (A,C) (C,A) (B,C) (C,B) (B,D) (D,B) (B,E) (E,B) (C,D) (D,C) (D,E) (E,D) (F,G) (G,F) (F,H) (H,F) (G,H) (H,G) (G,I) (I,G) (G,J) (J,G) (H,I) (I,H) (I,J) (J,I) (E,F) (F,E);
-
-param CapCost :=
-A B 112
-A C 123
-B C 116
-B D 128
-B E 130
-C D 112
-D E 110
-B A 112
-C A 123
-C B 116
-D B 128
-E B 130
-D C 112
-E D 110
-E F 110
-F E 110
-F G 112
-F H 128
-G H 116
-G I 123
-G J 130
-H I 112
-I J 110
-G F 112
-H F 128
-H G 116
-I G 123
-J G 130
-I H 112
-J I 110
-;
-
-param b0Cost :=
-A B 1120
-A C 1230
-B C 1160
-B D 1280
-B E 1300
-C D 1120
-D E 1100
-B A 1120
-C A 1230
-C B 1160
-D B 1280
-E B 1300
-D C 1120
-E D 1100
-E F 1100
-F E 1100
-F G 1120
-F H 1280
-G H 1160
-G I 1230
-G J 1300
-H I 1120
-I J 1100
-G F 1120
-H F 1280
-H G 1160
-I G 1230
-J G 1300
-I H 1120
-J I 1100
-;
-
-param FCost:
- A B C D E F G H I J :=
- A 0.00 1120.00 1230.00 1340.00 1450.00 1560.00 1670.00 890.00 1890.00 950.00
- B 1120.00 0.00 1740.00 1920.00 650.00 2130.00 770.00 830.00 2670.00 2700.00
- C 1230.00 1740.00 0.00 1680.00 1875.00 2070.00 2115.00 2310.00 835.00 850.00
- D 1340.00 1920.00 1680.00 0.00 550.00 1240.00 1380.00 2130.00 2340.00 2400.00
- E 1450.00 650.00 1875.00 550.00 0.00 1650.00 1875.00 1950.00 725.00 2250.00
- F 1560.00 2130.00 2070.00 1240.00 1650.00 0.00 1680.00 1280.00 670.00 700.00
- G 1670.00 770.00 2115.00 1380.00 1875.00 1680.00 0.00 580.00 615.00 1950.00
- H 890.00 830.00 2310.00 2130.00 1950.00 1280.00 580.00 0.00 1120.00 1200.00
- I 1890.00 2670.00 835.00 2340.00 725.00 670.00 615.00 1120.00 0.00 1100.00
- J 950.00 2700.00 850.00 2400.00 2250.00 700.00 1950.00 1200.00 1100.00 0.00 ;
-
-param Demand:
- A B C D E F G H I J :=
- A 0 3.05 3.08 3.22 3.11 3.42 2.75 3.02 3.12 2.83
- B 3.05 0 3.35 3.12 3.07 3.29 3.28 3.03 3.09 2.83
- C 3.08 3.35 0 2.69 2.94 3.07 3.56 3.30 2.91 2.78
- D 3.22 3.12 2.69 0 3.26 3.20 3.26 3.28 3.08 3.06
- E 3.11 3.07 2.94 3.26 0 3.15 3.13 2.77 2.85 2.52
- F 3.42 3.29 3.07 3.20 3.15 0 3.26 2.56 2.98 3.12
- G 2.75 3.28 3.56 3.26 3.13 3.26 0 2.98 2.94 3.00
- H 3.02 3.03 3.30 3.28 2.77 2.56 2.98 0 3.42 3.27
- I 3.12 3.09 2.91 3.08 2.85 2.98 2.94 3.42 0 2.89
- J 2.83 2.83 2.78 3.06 2.52 3.12 3.00 3.27 2.89 0 ;
-
-param M := 174.88 ;
diff --git a/examples/pysp/networkflow/1ef10With10Bundles/Scenario7.dat b/examples/pysp/networkflow/1ef10With10Bundles/Scenario7.dat
deleted file mode 100755
index b6f15564ca5..00000000000
--- a/examples/pysp/networkflow/1ef10With10Bundles/Scenario7.dat
+++ /dev/null
@@ -1,97 +0,0 @@
-set Nodes := A B C D E F G H I J;
-
-set Arcs := (A,B) (B,A) (A,C) (C,A) (B,C) (C,B) (B,D) (D,B) (B,E) (E,B) (C,D) (D,C) (D,E) (E,D) (F,G) (G,F) (F,H) (H,F) (G,H) (H,G) (G,I) (I,G) (G,J) (J,G) (H,I) (I,H) (I,J) (J,I) (E,F) (F,E);
-
-param CapCost :=
-A B 112
-A C 123
-B C 116
-B D 128
-B E 130
-C D 112
-D E 110
-B A 112
-C A 123
-C B 116
-D B 128
-E B 130
-D C 112
-E D 110
-E F 110
-F E 110
-F G 112
-F H 128
-G H 116
-G I 123
-G J 130
-H I 112
-I J 110
-G F 112
-H F 128
-H G 116
-I G 123
-J G 130
-I H 112
-J I 110
-;
-
-param b0Cost :=
-A B 1120
-A C 1230
-B C 1160
-B D 1280
-B E 1300
-C D 1120
-D E 1100
-B A 1120
-C A 1230
-C B 1160
-D B 1280
-E B 1300
-D C 1120
-E D 1100
-E F 1100
-F E 1100
-F G 1120
-F H 1280
-G H 1160
-G I 1230
-G J 1300
-H I 1120
-I J 1100
-G F 1120
-H F 1280
-H G 1160
-I G 1230
-J G 1300
-I H 1120
-J I 1100
-;
-
-param FCost:
- A B C D E F G H I J :=
- A 0.00 560.00 615.00 2010.00 2175.00 2340.00 835.00 2670.00 1890.00 2850.00
- B 560.00 0.00 1740.00 640.00 650.00 1420.00 2310.00 830.00 890.00 900.00
- C 615.00 1740.00 0.00 560.00 1875.00 1380.00 2115.00 770.00 835.00 2550.00
- D 2010.00 640.00 560.00 0.00 1100.00 620.00 690.00 2130.00 780.00 2400.00
- E 2175.00 650.00 1875.00 1100.00 0.00 1100.00 625.00 650.00 1450.00 1500.00
- F 2340.00 1420.00 1380.00 620.00 1100.00 0.00 1680.00 1920.00 1340.00 700.00
- G 835.00 2310.00 2115.00 690.00 625.00 1680.00 0.00 1160.00 615.00 1300.00
- H 2670.00 830.00 770.00 2130.00 650.00 1920.00 1160.00 0.00 1120.00 600.00
- I 1890.00 890.00 835.00 780.00 1450.00 1340.00 615.00 1120.00 0.00 1650.00
- J 2850.00 900.00 2550.00 2400.00 1500.00 700.00 1300.00 600.00 1650.00 0.00 ;
-
-param Demand:
- A B C D E F G H I J :=
- A 0 3.61 3.36 3.68 3.32 2.85 3.30 3.51 3.25 3.36
- B 3.61 0 3.79 3.43 3.39 3.42 2.94 3.40 2.74 3.28
- C 3.36 3.79 0 3.26 2.72 2.91 3.11 2.98 3.10 3.38
- D 3.68 3.43 3.26 0 2.81 2.99 2.83 3.33 3.55 3.14
- E 3.32 3.39 2.72 2.81 0 3.28 2.96 2.88 3.55 3.02
- F 2.85 3.42 2.91 2.99 3.28 0 3.48 2.98 3.56 3.02
- G 3.30 2.94 3.11 2.83 2.96 3.48 0 3.33 3.38 3.24
- H 3.51 3.40 2.98 3.33 2.88 2.98 3.33 0 3.27 3.24
- I 3.25 2.74 3.10 3.55 3.55 3.56 3.38 3.27 0 2.78
- J 3.36 3.28 3.38 3.14 3.02 3.02 3.24 3.24 2.78 0 ;
-
-param M := 174.88 ;
diff --git a/examples/pysp/networkflow/1ef10With10Bundles/Scenario8.dat b/examples/pysp/networkflow/1ef10With10Bundles/Scenario8.dat
deleted file mode 100755
index c364cad58ff..00000000000
--- a/examples/pysp/networkflow/1ef10With10Bundles/Scenario8.dat
+++ /dev/null
@@ -1,97 +0,0 @@
-set Nodes := A B C D E F G H I J;
-
-set Arcs := (A,B) (B,A) (A,C) (C,A) (B,C) (C,B) (B,D) (D,B) (B,E) (E,B) (C,D) (D,C) (D,E) (E,D) (F,G) (G,F) (F,H) (H,F) (G,H) (H,G) (G,I) (I,G) (G,J) (J,G) (H,I) (I,H) (I,J) (J,I) (E,F) (F,E);
-
-param CapCost :=
-A B 112
-A C 123
-B C 116
-B D 128
-B E 130
-C D 112
-D E 110
-B A 112
-C A 123
-C B 116
-D B 128
-E B 130
-D C 112
-E D 110
-E F 110
-F E 110
-F G 112
-F H 128
-G H 116
-G I 123
-G J 130
-H I 112
-I J 110
-G F 112
-H F 128
-H G 116
-I G 123
-J G 130
-I H 112
-J I 110
-;
-
-param b0Cost :=
-A B 1120
-A C 1230
-B C 1160
-B D 1280
-B E 1300
-C D 1120
-D E 1100
-B A 1120
-C A 1230
-C B 1160
-D B 1280
-E B 1300
-D C 1120
-E D 1100
-E F 1100
-F E 1100
-F G 1120
-F H 1280
-G H 1160
-G I 1230
-G J 1300
-H I 1120
-I J 1100
-G F 1120
-H F 1280
-H G 1160
-I G 1230
-J G 1300
-I H 1120
-J I 1100
-;
-
-param FCost:
- A B C D E F G H I J :=
- A 0.00 1120.00 1230.00 670.00 1450.00 2340.00 835.00 1780.00 1890.00 1900.00
- B 1120.00 0.00 580.00 1920.00 1950.00 710.00 770.00 2490.00 1780.00 2700.00
- C 1230.00 580.00 0.00 560.00 1250.00 690.00 2115.00 1540.00 1670.00 2550.00
- D 670.00 1920.00 560.00 0.00 1650.00 1860.00 690.00 1420.00 780.00 800.00
- E 1450.00 1950.00 1250.00 1650.00 0.00 1100.00 1875.00 1950.00 725.00 2250.00
- F 2340.00 710.00 690.00 1860.00 1100.00 0.00 1120.00 1280.00 2010.00 1400.00
- G 835.00 770.00 2115.00 690.00 1875.00 1120.00 0.00 580.00 615.00 1950.00
- H 1780.00 2490.00 1540.00 1420.00 1950.00 1280.00 580.00 0.00 1120.00 1200.00
- I 1890.00 1780.00 1670.00 780.00 725.00 2010.00 615.00 1120.00 0.00 550.00
- J 1900.00 2700.00 2550.00 800.00 2250.00 1400.00 1950.00 1200.00 550.00 0.00 ;
-
-param Demand:
- A B C D E F G H I J :=
- A 0 3.08 3.52 3.34 2.96 3.24 2.91 3.29 3.32 2.92
- B 3.08 0 2.89 3.04 3.03 2.91 2.87 3.30 3.20 2.90
- C 3.52 2.89 0 3.28 2.81 3.26 3.17 3.42 2.78 3.21
- D 3.34 3.04 3.28 0 3.00 3.00 2.85 2.59 3.36 3.19
- E 2.96 3.03 2.81 3.00 0 2.95 3.09 2.99 2.74 2.89
- F 3.24 2.91 3.26 3.00 2.95 0 2.91 2.95 2.87 3.21
- G 2.91 2.87 3.17 2.85 3.09 2.91 0 2.90 3.16 3.11
- H 3.29 3.30 3.42 2.59 2.99 2.95 2.90 0 3.19 2.81
- I 3.32 3.20 2.78 3.36 2.74 2.87 3.16 3.19 0 2.43
- J 2.92 2.90 3.21 3.19 2.89 3.21 3.11 2.81 2.43 0 ;
-
-param M := 174.88 ;
diff --git a/examples/pysp/networkflow/1ef10With10Bundles/Scenario9.dat b/examples/pysp/networkflow/1ef10With10Bundles/Scenario9.dat
deleted file mode 100755
index 23a104d0791..00000000000
--- a/examples/pysp/networkflow/1ef10With10Bundles/Scenario9.dat
+++ /dev/null
@@ -1,97 +0,0 @@
-set Nodes := A B C D E F G H I J;
-
-set Arcs := (A,B) (B,A) (A,C) (C,A) (B,C) (C,B) (B,D) (D,B) (B,E) (E,B) (C,D) (D,C) (D,E) (E,D) (F,G) (G,F) (F,H) (H,F) (G,H) (H,G) (G,I) (I,G) (G,J) (J,G) (H,I) (I,H) (I,J) (J,I) (E,F) (F,E);
-
-param CapCost :=
-A B 112
-A C 123
-B C 116
-B D 128
-B E 130
-C D 112
-D E 110
-B A 112
-C A 123
-C B 116
-D B 128
-E B 130
-D C 112
-E D 110
-E F 110
-F E 110
-F G 112
-F H 128
-G H 116
-G I 123
-G J 130
-H I 112
-I J 110
-G F 112
-H F 128
-H G 116
-I G 123
-J G 130
-I H 112
-J I 110
-;
-
-param b0Cost :=
-A B 1120
-A C 1230
-B C 1160
-B D 1280
-B E 1300
-C D 1120
-D E 1100
-B A 1120
-C A 1230
-C B 1160
-D B 1280
-E B 1300
-D C 1120
-E D 1100
-E F 1100
-F E 1100
-F G 1120
-F H 1280
-G H 1160
-G I 1230
-G J 1300
-H I 1120
-I J 1100
-G F 1120
-H F 1280
-H G 1160
-I G 1230
-J G 1300
-I H 1120
-J I 1100
-;
-
-param FCost:
- A B C D E F G H I J :=
- A 0.00 560.00 615.00 1340.00 2175.00 780.00 1670.00 1780.00 1890.00 950.00
- B 560.00 0.00 1740.00 640.00 650.00 2130.00 1540.00 830.00 1780.00 2700.00
- C 615.00 1740.00 0.00 1680.00 625.00 690.00 1410.00 1540.00 835.00 1700.00
- D 1340.00 640.00 1680.00 0.00 1100.00 620.00 690.00 1420.00 1560.00 1600.00
- E 2175.00 650.00 625.00 1100.00 0.00 1650.00 1875.00 1950.00 2175.00 1500.00
- F 780.00 2130.00 690.00 620.00 1650.00 0.00 560.00 1280.00 1340.00 1400.00
- G 1670.00 1540.00 1410.00 690.00 1875.00 560.00 0.00 1160.00 1230.00 650.00
- H 1780.00 830.00 1540.00 1420.00 1950.00 1280.00 1160.00 0.00 1120.00 1800.00
- I 1890.00 1780.00 835.00 1560.00 2175.00 1340.00 1230.00 1120.00 0.00 550.00
- J 950.00 2700.00 1700.00 1600.00 1500.00 1400.00 650.00 1800.00 550.00 0.00 ;
-
-param Demand:
- A B C D E F G H I J :=
- A 0 3.44 3.42 3.55 3.18 3.71 3.79 3.88 3.76 3.38
- B 3.44 0 3.57 3.60 3.34 3.40 3.61 3.06 3.28 3.29
- C 3.42 3.57 0 3.22 3.36 3.63 3.47 3.73 3.06 3.33
- D 3.55 3.60 3.22 0 3.34 3.15 3.81 3.67 3.29 3.34
- E 3.18 3.34 3.36 3.34 0 3.59 3.35 3.30 3.19 3.28
- F 3.71 3.40 3.63 3.15 3.59 0 3.53 3.33 3.91 3.66
- G 3.79 3.61 3.47 3.81 3.35 3.53 0 3.73 3.35 3.66
- H 3.88 3.06 3.73 3.67 3.30 3.33 3.73 0 3.48 3.31
- I 3.76 3.28 3.06 3.29 3.19 3.91 3.35 3.48 0 3.52
- J 3.38 3.29 3.33 3.34 3.28 3.66 3.66 3.31 3.52 0 ;
-
-param M := 174.88 ;
diff --git a/examples/pysp/networkflow/1ef10With10Bundles/ScenarioStructure.dat b/examples/pysp/networkflow/1ef10With10Bundles/ScenarioStructure.dat
deleted file mode 100644
index e74fe9e3959..00000000000
--- a/examples/pysp/networkflow/1ef10With10Bundles/ScenarioStructure.dat
+++ /dev/null
@@ -1,105 +0,0 @@
-# IMPORTANT - THE STAGES ARE ASSUMED TO BE IN TIME-ORDER.
-
-set Stages := FirstStage SecondStage ;
-
-set Nodes := RootNode
- Scenario1Node
- Scenario2Node
- Scenario3Node
- Scenario4Node
- Scenario5Node
- Scenario6Node
- Scenario7Node
- Scenario8Node
- Scenario9Node
- Scenario10Node ;
-
-param NodeStage := RootNode FirstStage
- Scenario1Node SecondStage
- Scenario2Node SecondStage
- Scenario3Node SecondStage
- Scenario4Node SecondStage
- Scenario5Node SecondStage
- Scenario6Node SecondStage
- Scenario7Node SecondStage
- Scenario8Node SecondStage
- Scenario9Node SecondStage
- Scenario10Node SecondStage ;
-
-set Children[RootNode] := Scenario1Node
- Scenario2Node
- Scenario3Node
- Scenario4Node
- Scenario5Node
- Scenario6Node
- Scenario7Node
- Scenario8Node
- Scenario9Node
- Scenario10Node ;
-
-param ConditionalProbability := RootNode 1.0
- Scenario1Node 0.1
- Scenario2Node 0.1
- Scenario3Node 0.1
- Scenario4Node 0.1
- Scenario5Node 0.1
- Scenario6Node 0.1
- Scenario7Node 0.1
- Scenario8Node 0.1
- Scenario9Node 0.1
- Scenario10Node 0.1 ;
-
-set Scenarios := Scenario1
- Scenario2
- Scenario3
- Scenario4
- Scenario5
- Scenario6
- Scenario7
- Scenario8
- Scenario9
- Scenario10 ;
-
-param ScenarioLeafNode := Scenario1 Scenario1Node
- Scenario2 Scenario2Node
- Scenario3 Scenario3Node
- Scenario4 Scenario4Node
- Scenario5 Scenario5Node
- Scenario6 Scenario6Node
- Scenario7 Scenario7Node
- Scenario8 Scenario8Node
- Scenario9 Scenario9Node
- Scenario10 Scenario10Node ;
-
-set StageVariables[FirstStage] := b0[*,*]
- x[*,*] ;
-set StageVariables[SecondStage] := b[*,*]
- y[*,*,*,*] ;
-
-param StageCost := FirstStage FirstStageCost
- SecondStage SecondStageCost ;
-
-param Bundling := True ;
-
-set Bundles := Bundle1
-Bundle2
-Bundle3
-Bundle4
-Bundle5
-Bundle6
-Bundle7
-Bundle8
-Bundle9
-Bundle10 ;
-
-set BundleScenarios[Bundle1] := Scenario1 ;
-set BundleScenarios[Bundle2] := Scenario2 ;
-set BundleScenarios[Bundle3] := Scenario3 ;
-set BundleScenarios[Bundle4] := Scenario4 ;
-set BundleScenarios[Bundle5] := Scenario5 ;
-set BundleScenarios[Bundle6] := Scenario6 ;
-set BundleScenarios[Bundle7] := Scenario7 ;
-set BundleScenarios[Bundle8] := Scenario8 ;
-set BundleScenarios[Bundle9] := Scenario9 ;
-set BundleScenarios[Bundle10] := Scenario10 ;
-
diff --git a/examples/pysp/networkflow/1ef10With2Bundles/Scenario1.dat b/examples/pysp/networkflow/1ef10With2Bundles/Scenario1.dat
deleted file mode 100755
index 957eae74ec0..00000000000
--- a/examples/pysp/networkflow/1ef10With2Bundles/Scenario1.dat
+++ /dev/null
@@ -1,97 +0,0 @@
-set Nodes := A B C D E F G H I J;
-
-set Arcs := (A,B) (B,A) (A,C) (C,A) (B,C) (C,B) (B,D) (D,B) (B,E) (E,B) (C,D) (D,C) (D,E) (E,D) (F,G) (G,F) (F,H) (H,F) (G,H) (H,G) (G,I) (I,G) (G,J) (J,G) (H,I) (I,H) (I,J) (J,I) (E,F) (F,E);
-
-param CapCost :=
-A B 112
-A C 123
-B C 116
-B D 128
-B E 130
-C D 112
-D E 110
-B A 112
-C A 123
-C B 116
-D B 128
-E B 130
-D C 112
-E D 110
-E F 110
-F E 110
-F G 112
-F H 128
-G H 116
-G I 123
-G J 130
-H I 112
-I J 110
-G F 112
-H F 128
-H G 116
-I G 123
-J G 130
-I H 112
-J I 110
-;
-
-param b0Cost :=
-A B 1120
-A C 1230
-B C 1160
-B D 1280
-B E 1300
-C D 1120
-D E 1100
-B A 1120
-C A 1230
-C B 1160
-D B 1280
-E B 1300
-D C 1120
-E D 1100
-E F 1100
-F E 1100
-F G 1120
-F H 1280
-G H 1160
-G I 1230
-G J 1300
-H I 1120
-I J 1100
-G F 1120
-H F 1280
-H G 1160
-I G 1230
-J G 1300
-I H 1120
-J I 1100
-;
-
-param FCost:
- A B C D E F G H I J :=
- A 0.00 560.00 1845.00 2010.00 2175.00 1560.00 1670.00 1780.00 2835.00 950.00
- B 560.00 0.00 1740.00 640.00 650.00 1420.00 2310.00 1660.00 890.00 900.00
- C 1845.00 1740.00 0.00 1680.00 1250.00 2070.00 705.00 1540.00 835.00 1700.00
- D 2010.00 640.00 1680.00 0.00 1100.00 1860.00 690.00 710.00 2340.00 1600.00
- E 2175.00 650.00 1250.00 1100.00 0.00 1100.00 1875.00 1300.00 2175.00 1500.00
- F 1560.00 1420.00 2070.00 1860.00 1100.00 0.00 560.00 640.00 2010.00 700.00
- G 1670.00 2310.00 705.00 690.00 1875.00 560.00 0.00 1740.00 615.00 1950.00
- H 1780.00 1660.00 1540.00 710.00 1300.00 640.00 1740.00 0.00 560.00 600.00
- I 2835.00 890.00 835.00 2340.00 2175.00 2010.00 615.00 560.00 0.00 550.00
- J 950.00 900.00 1700.00 1600.00 1500.00 700.00 1950.00 600.00 550.00 0.00 ;
-
-param Demand:
- A B C D E F G H I J :=
- A 0 3.47 4.16 3.81 4.02 3.77 3.84 4.02 3.80 3.84
- B 3.47 0 4.21 4.18 3.94 4.14 4.07 3.69 3.50 3.96
- C 4.16 4.21 0 4.29 4.27 4.26 4.09 3.73 3.64 3.88
- D 3.81 4.18 4.29 0 3.66 3.95 3.54 4.07 3.64 4.21
- E 4.02 3.94 4.27 3.66 0 4.04 4.14 3.92 3.57 3.77
- F 3.77 4.14 4.26 3.95 4.04 0 3.69 3.62 3.76 3.73
- G 3.84 4.07 4.09 3.54 4.14 3.69 0 4.10 3.25 4.08
- H 4.02 3.69 3.73 4.07 3.92 3.62 4.10 0 3.55 3.82
- I 3.80 3.50 3.64 3.64 3.57 3.76 3.25 3.55 0 4.19
- J 3.84 3.96 3.88 4.21 3.77 3.73 4.08 3.82 4.19 0 ;
-
-param M := 174.88 ;
diff --git a/examples/pysp/networkflow/1ef10With2Bundles/Scenario10.dat b/examples/pysp/networkflow/1ef10With2Bundles/Scenario10.dat
deleted file mode 100755
index 61e7da3f66c..00000000000
--- a/examples/pysp/networkflow/1ef10With2Bundles/Scenario10.dat
+++ /dev/null
@@ -1,97 +0,0 @@
-set Nodes := A B C D E F G H I J;
-
-set Arcs := (A,B) (B,A) (A,C) (C,A) (B,C) (C,B) (B,D) (D,B) (B,E) (E,B) (C,D) (D,C) (D,E) (E,D) (F,G) (G,F) (F,H) (H,F) (G,H) (H,G) (G,I) (I,G) (G,J) (J,G) (H,I) (I,H) (I,J) (J,I) (E,F) (F,E);
-
-param CapCost :=
-A B 112
-A C 123
-B C 116
-B D 128
-B E 130
-C D 112
-D E 110
-B A 112
-C A 123
-C B 116
-D B 128
-E B 130
-D C 112
-E D 110
-E F 110
-F E 110
-F G 112
-F H 128
-G H 116
-G I 123
-G J 130
-H I 112
-I J 110
-G F 112
-H F 128
-H G 116
-I G 123
-J G 130
-I H 112
-J I 110
-;
-
-param b0Cost :=
-A B 1120
-A C 1230
-B C 1160
-B D 1280
-B E 1300
-C D 1120
-D E 1100
-B A 1120
-C A 1230
-C B 1160
-D B 1280
-E B 1300
-D C 1120
-E D 1100
-E F 1100
-F E 1100
-F G 1120
-F H 1280
-G H 1160
-G I 1230
-G J 1300
-H I 1120
-I J 1100
-G F 1120
-H F 1280
-H G 1160
-I G 1230
-J G 1300
-I H 1120
-J I 1100
-;
-
-param FCost:
- A B C D E F G H I J :=
- A 0.00 560.00 1845.00 670.00 2175.00 1560.00 1670.00 2670.00 1890.00 2850.00
- B 560.00 0.00 1160.00 1920.00 1950.00 710.00 1540.00 2490.00 2670.00 900.00
- C 1845.00 1160.00 0.00 1680.00 1875.00 1380.00 705.00 2310.00 1670.00 1700.00
- D 670.00 1920.00 1680.00 0.00 1100.00 1860.00 2070.00 2130.00 2340.00 1600.00
- E 2175.00 1950.00 1875.00 1100.00 0.00 550.00 1875.00 650.00 1450.00 750.00
- F 1560.00 710.00 1380.00 1860.00 550.00 0.00 1680.00 640.00 670.00 2100.00
- G 1670.00 1540.00 705.00 2070.00 1875.00 1680.00 0.00 1160.00 1845.00 650.00
- H 2670.00 2490.00 2310.00 2130.00 650.00 640.00 1160.00 0.00 1680.00 1800.00
- I 1890.00 2670.00 1670.00 2340.00 1450.00 670.00 1845.00 1680.00 0.00 1650.00
- J 2850.00 900.00 1700.00 1600.00 750.00 2100.00 650.00 1800.00 1650.00 0.00 ;
-
-param Demand:
- A B C D E F G H I J :=
- A 0 3.12 3.34 3.12 3.15 3.47 3.03 3.33 3.15 3.20
- B 3.12 0 3.42 3.59 3.21 3.16 3.43 3.40 3.57 3.71
- C 3.34 3.42 0 3.35 3.50 3.06 3.27 3.38 3.17 3.45
- D 3.12 3.59 3.35 0 2.94 2.80 3.12 3.08 3.67 3.05
- E 3.15 3.21 3.50 2.94 0 3.24 3.32 3.14 3.08 3.52
- F 3.47 3.16 3.06 2.80 3.24 0 3.03 3.24 3.36 3.23
- G 3.03 3.43 3.27 3.12 3.32 3.03 0 3.17 3.38 3.52
- H 3.33 3.40 3.38 3.08 3.14 3.24 3.17 0 3.07 3.15
- I 3.15 3.57 3.17 3.67 3.08 3.36 3.38 3.07 0 2.75
- J 3.20 3.71 3.45 3.05 3.52 3.23 3.52 3.15 2.75 0 ;
-
-param M := 174.88 ;
diff --git a/examples/pysp/networkflow/1ef10With2Bundles/Scenario2.dat b/examples/pysp/networkflow/1ef10With2Bundles/Scenario2.dat
deleted file mode 100755
index 7fc0e9fbf0e..00000000000
--- a/examples/pysp/networkflow/1ef10With2Bundles/Scenario2.dat
+++ /dev/null
@@ -1,97 +0,0 @@
-set Nodes := A B C D E F G H I J;
-
-set Arcs := (A,B) (B,A) (A,C) (C,A) (B,C) (C,B) (B,D) (D,B) (B,E) (E,B) (C,D) (D,C) (D,E) (E,D) (F,G) (G,F) (F,H) (H,F) (G,H) (H,G) (G,I) (I,G) (G,J) (J,G) (H,I) (I,H) (I,J) (J,I) (E,F) (F,E);
-
-param CapCost :=
-A B 112
-A C 123
-B C 116
-B D 128
-B E 130
-C D 112
-D E 110
-B A 112
-C A 123
-C B 116
-D B 128
-E B 130
-D C 112
-E D 110
-E F 110
-F E 110
-F G 112
-F H 128
-G H 116
-G I 123
-G J 130
-H I 112
-I J 110
-G F 112
-H F 128
-H G 116
-I G 123
-J G 130
-I H 112
-J I 110
-;
-
-param b0Cost :=
-A B 1120
-A C 1230
-B C 1160
-B D 1280
-B E 1300
-C D 1120
-D E 1100
-B A 1120
-C A 1230
-C B 1160
-D B 1280
-E B 1300
-D C 1120
-E D 1100
-E F 1100
-F E 1100
-F G 1120
-F H 1280
-G H 1160
-G I 1230
-G J 1300
-H I 1120
-I J 1100
-G F 1120
-H F 1280
-H G 1160
-I G 1230
-J G 1300
-I H 1120
-J I 1100
-;
-
-param FCost:
- A B C D E F G H I J :=
- A 0.00 560.00 1230.00 1340.00 2175.00 2340.00 2505.00 890.00 2835.00 1900.00
- B 560.00 0.00 1160.00 640.00 1950.00 710.00 1540.00 830.00 890.00 1800.00
- C 1230.00 1160.00 0.00 1120.00 1250.00 690.00 705.00 1540.00 835.00 1700.00
- D 1340.00 640.00 1120.00 0.00 550.00 1860.00 1380.00 710.00 1560.00 800.00
- E 2175.00 1950.00 1250.00 550.00 0.00 1650.00 1875.00 650.00 1450.00 750.00
- F 2340.00 710.00 690.00 1860.00 1650.00 0.00 1680.00 640.00 1340.00 2100.00
- G 2505.00 1540.00 705.00 1380.00 1875.00 1680.00 0.00 1160.00 1230.00 650.00
- H 890.00 830.00 1540.00 710.00 650.00 640.00 1160.00 0.00 1120.00 1800.00
- I 2835.00 890.00 835.00 1560.00 1450.00 1340.00 1230.00 1120.00 0.00 550.00
- J 1900.00 1800.00 1700.00 800.00 750.00 2100.00 650.00 1800.00 550.00 0.00 ;
-
-param Demand:
- A B C D E F G H I J :=
- A 0 3.41 3.24 3.22 2.80 3.06 3.32 3.00 3.53 3.35
- B 3.41 0 3.15 3.50 2.98 3.19 3.14 3.12 3.49 3.20
- C 3.24 3.15 0 3.01 3.13 3.24 3.08 3.59 3.05 3.19
- D 3.22 3.50 3.01 0 3.35 2.97 3.18 3.17 2.90 3.12
- E 2.80 2.98 3.13 3.35 0 3.17 3.12 3.27 3.14 3.16
- F 3.06 3.19 3.24 2.97 3.17 0 3.01 3.21 2.87 3.25
- G 3.32 3.14 3.08 3.18 3.12 3.01 0 3.02 2.95 3.18
- H 3.00 3.12 3.59 3.17 3.27 3.21 3.02 0 3.37 3.02
- I 3.53 3.49 3.05 2.90 3.14 2.87 2.95 3.37 0 3.10
- J 3.35 3.20 3.19 3.12 3.16 3.25 3.18 3.02 3.10 0 ;
-
-param M := 174.88 ;
diff --git a/examples/pysp/networkflow/1ef10With2Bundles/Scenario3.dat b/examples/pysp/networkflow/1ef10With2Bundles/Scenario3.dat
deleted file mode 100755
index fd4af00131a..00000000000
--- a/examples/pysp/networkflow/1ef10With2Bundles/Scenario3.dat
+++ /dev/null
@@ -1,97 +0,0 @@
-set Nodes := A B C D E F G H I J;
-
-set Arcs := (A,B) (B,A) (A,C) (C,A) (B,C) (C,B) (B,D) (D,B) (B,E) (E,B) (C,D) (D,C) (D,E) (E,D) (F,G) (G,F) (F,H) (H,F) (G,H) (H,G) (G,I) (I,G) (G,J) (J,G) (H,I) (I,H) (I,J) (J,I) (E,F) (F,E);
-
-param CapCost :=
-A B 112
-A C 123
-B C 116
-B D 128
-B E 130
-C D 112
-D E 110
-B A 112
-C A 123
-C B 116
-D B 128
-E B 130
-D C 112
-E D 110
-E F 110
-F E 110
-F G 112
-F H 128
-G H 116
-G I 123
-G J 130
-H I 112
-I J 110
-G F 112
-H F 128
-H G 116
-I G 123
-J G 130
-I H 112
-J I 110
-;
-
-param b0Cost :=
-A B 1120
-A C 1230
-B C 1160
-B D 1280
-B E 1300
-C D 1120
-D E 1100
-B A 1120
-C A 1230
-C B 1160
-D B 1280
-E B 1300
-D C 1120
-E D 1100
-E F 1100
-F E 1100
-F G 1120
-F H 1280
-G H 1160
-G I 1230
-G J 1300
-H I 1120
-I J 1100
-G F 1120
-H F 1280
-H G 1160
-I G 1230
-J G 1300
-I H 1120
-J I 1100
-;
-
-param FCost:
- A B C D E F G H I J :=
- A 0.00 1120.00 1230.00 670.00 1450.00 1560.00 835.00 1780.00 1890.00 1900.00
- B 1120.00 0.00 1160.00 1920.00 650.00 710.00 770.00 2490.00 2670.00 1800.00
- C 1230.00 1160.00 0.00 560.00 1875.00 690.00 2115.00 2310.00 835.00 2550.00
- D 670.00 1920.00 560.00 0.00 1100.00 1240.00 1380.00 710.00 1560.00 1600.00
- E 1450.00 650.00 1875.00 1100.00 0.00 1650.00 625.00 1300.00 725.00 750.00
- F 1560.00 710.00 690.00 1240.00 1650.00 0.00 1120.00 1280.00 670.00 700.00
- G 835.00 770.00 2115.00 1380.00 625.00 1120.00 0.00 1740.00 615.00 1950.00
- H 1780.00 2490.00 2310.00 710.00 1300.00 1280.00 1740.00 0.00 1680.00 1800.00
- I 1890.00 2670.00 835.00 1560.00 725.00 670.00 615.00 1680.00 0.00 1650.00
- J 1900.00 1800.00 2550.00 1600.00 750.00 700.00 1950.00 1800.00 1650.00 0.00 ;
-
-param Demand:
- A B C D E F G H I J :=
- A 0 2.66 3.06 2.77 3.06 3.17 3.61 3.69 3.41 3.12
- B 2.66 0 2.86 3.34 3.23 3.34 2.85 3.06 3.16 3.06
- C 3.06 2.86 0 3.18 3.46 3.28 2.95 3.18 3.40 3.04
- D 2.77 3.34 3.18 0 2.86 3.15 3.61 2.88 3.44 2.86
- E 3.06 3.23 3.46 2.86 0 3.11 3.02 3.50 3.67 3.30
- F 3.17 3.34 3.28 3.15 3.11 0 3.25 3.13 2.73 3.38
- G 3.61 2.85 2.95 3.61 3.02 3.25 0 3.11 3.32 3.67
- H 3.69 3.06 3.18 2.88 3.50 3.13 3.11 0 2.68 3.25
- I 3.41 3.16 3.40 3.44 3.67 2.73 3.32 2.68 0 2.94
- J 3.12 3.06 3.04 2.86 3.30 3.38 3.67 3.25 2.94 0 ;
-
-param M := 174.88 ;
diff --git a/examples/pysp/networkflow/1ef10With2Bundles/Scenario4.dat b/examples/pysp/networkflow/1ef10With2Bundles/Scenario4.dat
deleted file mode 100755
index 8cf734825f7..00000000000
--- a/examples/pysp/networkflow/1ef10With2Bundles/Scenario4.dat
+++ /dev/null
@@ -1,97 +0,0 @@
-set Nodes := A B C D E F G H I J;
-
-set Arcs := (A,B) (B,A) (A,C) (C,A) (B,C) (C,B) (B,D) (D,B) (B,E) (E,B) (C,D) (D,C) (D,E) (E,D) (F,G) (G,F) (F,H) (H,F) (G,H) (H,G) (G,I) (I,G) (G,J) (J,G) (H,I) (I,H) (I,J) (J,I) (E,F) (F,E);
-
-param CapCost :=
-A B 112
-A C 123
-B C 116
-B D 128
-B E 130
-C D 112
-D E 110
-B A 112
-C A 123
-C B 116
-D B 128
-E B 130
-D C 112
-E D 110
-E F 110
-F E 110
-F G 112
-F H 128
-G H 116
-G I 123
-G J 130
-H I 112
-I J 110
-G F 112
-H F 128
-H G 116
-I G 123
-J G 130
-I H 112
-J I 110
-;
-
-param b0Cost :=
-A B 1120
-A C 1230
-B C 1160
-B D 1280
-B E 1300
-C D 1120
-D E 1100
-B A 1120
-C A 1230
-C B 1160
-D B 1280
-E B 1300
-D C 1120
-E D 1100
-E F 1100
-F E 1100
-F G 1120
-F H 1280
-G H 1160
-G I 1230
-G J 1300
-H I 1120
-I J 1100
-G F 1120
-H F 1280
-H G 1160
-I G 1230
-J G 1300
-I H 1120
-J I 1100
-;
-
-param FCost:
- A B C D E F G H I J :=
- A 0.00 1120.00 1230.00 670.00 1450.00 2340.00 2505.00 890.00 1890.00 950.00
- B 1120.00 0.00 1160.00 1920.00 1950.00 1420.00 770.00 1660.00 890.00 1800.00
- C 1230.00 1160.00 0.00 1120.00 1875.00 690.00 1410.00 770.00 1670.00 2550.00
- D 670.00 1920.00 1120.00 0.00 550.00 620.00 690.00 2130.00 780.00 800.00
- E 1450.00 1950.00 1875.00 550.00 0.00 1100.00 1875.00 1950.00 725.00 1500.00
- F 2340.00 1420.00 690.00 620.00 1100.00 0.00 560.00 1920.00 2010.00 700.00
- G 2505.00 770.00 1410.00 690.00 1875.00 560.00 0.00 1160.00 1230.00 1950.00
- H 890.00 1660.00 770.00 2130.00 1950.00 1920.00 1160.00 0.00 560.00 1800.00
- I 1890.00 890.00 1670.00 780.00 725.00 2010.00 1230.00 560.00 0.00 1650.00
- J 950.00 1800.00 2550.00 800.00 1500.00 700.00 1950.00 1800.00 1650.00 0.00 ;
-
-param Demand:
- A B C D E F G H I J :=
- A 0 2.81 2.39 2.60 2.88 2.85 2.95 2.76 2.77 2.66
- B 2.81 0 2.52 2.77 2.76 2.34 2.83 2.85 2.43 2.44
- C 2.39 2.52 0 2.69 2.62 3.00 2.59 2.81 2.39 2.91
- D 2.60 2.77 2.69 0 2.30 2.93 2.34 2.81 2.34 2.83
- E 2.88 2.76 2.62 2.30 0 2.73 2.71 2.84 2.52 2.34
- F 2.85 2.34 3.00 2.93 2.73 0 2.93 2.37 2.62 2.84
- G 2.95 2.83 2.59 2.34 2.71 2.93 0 2.97 2.82 2.64
- H 2.76 2.85 2.81 2.81 2.84 2.37 2.97 0 2.79 2.29
- I 2.77 2.43 2.39 2.34 2.52 2.62 2.82 2.79 0 3.12
- J 2.66 2.44 2.91 2.83 2.34 2.84 2.64 2.29 3.12 0 ;
-
-param M := 174.88 ;
diff --git a/examples/pysp/networkflow/1ef10With2Bundles/Scenario5.dat b/examples/pysp/networkflow/1ef10With2Bundles/Scenario5.dat
deleted file mode 100755
index 5937a912d9c..00000000000
--- a/examples/pysp/networkflow/1ef10With2Bundles/Scenario5.dat
+++ /dev/null
@@ -1,97 +0,0 @@
-set Nodes := A B C D E F G H I J;
-
-set Arcs := (A,B) (B,A) (A,C) (C,A) (B,C) (C,B) (B,D) (D,B) (B,E) (E,B) (C,D) (D,C) (D,E) (E,D) (F,G) (G,F) (F,H) (H,F) (G,H) (H,G) (G,I) (I,G) (G,J) (J,G) (H,I) (I,H) (I,J) (J,I) (E,F) (F,E);
-
-param CapCost :=
-A B 112
-A C 123
-B C 116
-B D 128
-B E 130
-C D 112
-D E 110
-B A 112
-C A 123
-C B 116
-D B 128
-E B 130
-D C 112
-E D 110
-E F 110
-F E 110
-F G 112
-F H 128
-G H 116
-G I 123
-G J 130
-H I 112
-I J 110
-G F 112
-H F 128
-H G 116
-I G 123
-J G 130
-I H 112
-J I 110
-;
-
-param b0Cost :=
-A B 1120
-A C 1230
-B C 1160
-B D 1280
-B E 1300
-C D 1120
-D E 1100
-B A 1120
-C A 1230
-C B 1160
-D B 1280
-E B 1300
-D C 1120
-E D 1100
-E F 1100
-F E 1100
-F G 1120
-F H 1280
-G H 1160
-G I 1230
-G J 1300
-H I 1120
-I J 1100
-G F 1120
-H F 1280
-H G 1160
-I G 1230
-J G 1300
-I H 1120
-J I 1100
-;
-
-param FCost:
- A B C D E F G H I J :=
- A 0.00 1680.00 1230.00 670.00 1450.00 2340.00 2505.00 2670.00 2835.00 2850.00
- B 1680.00 0.00 1740.00 640.00 1950.00 2130.00 770.00 1660.00 890.00 2700.00
- C 1230.00 1740.00 0.00 560.00 1875.00 2070.00 2115.00 770.00 2505.00 1700.00
- D 670.00 640.00 560.00 0.00 550.00 620.00 1380.00 1420.00 1560.00 1600.00
- E 1450.00 1950.00 1875.00 550.00 0.00 550.00 625.00 1950.00 2175.00 1500.00
- F 2340.00 2130.00 2070.00 620.00 550.00 0.00 1120.00 1280.00 1340.00 1400.00
- G 2505.00 770.00 2115.00 1380.00 625.00 1120.00 0.00 1740.00 615.00 1950.00
- H 2670.00 1660.00 770.00 1420.00 1950.00 1280.00 1740.00 0.00 560.00 600.00
- I 2835.00 890.00 2505.00 1560.00 2175.00 1340.00 615.00 560.00 0.00 1650.00
- J 2850.00 2700.00 1700.00 1600.00 1500.00 1400.00 1950.00 600.00 1650.00 0.00 ;
-
-param Demand:
- A B C D E F G H I J :=
- A 0 3.67 3.22 3.63 3.46 3.65 3.80 3.73 3.59 3.26
- B 3.67 0 3.50 3.61 3.93 3.71 3.70 3.56 3.86 3.58
- C 3.22 3.50 0 3.65 3.49 3.50 3.55 3.22 3.49 3.70
- D 3.63 3.61 3.65 0 3.57 4.12 3.39 3.83 3.32 3.57
- E 3.46 3.93 3.49 3.57 0 3.51 3.85 3.43 3.90 3.53
- F 3.65 3.71 3.50 4.12 3.51 0 3.76 3.46 3.74 3.95
- G 3.80 3.70 3.55 3.39 3.85 3.76 0 3.98 3.60 3.91
- H 3.73 3.56 3.22 3.83 3.43 3.46 3.98 0 3.53 3.20
- I 3.59 3.86 3.49 3.32 3.90 3.74 3.60 3.53 0 3.99
- J 3.26 3.58 3.70 3.57 3.53 3.95 3.91 3.20 3.99 0 ;
-
-param M := 174.88 ;
diff --git a/examples/pysp/networkflow/1ef10With2Bundles/Scenario6.dat b/examples/pysp/networkflow/1ef10With2Bundles/Scenario6.dat
deleted file mode 100755
index 15584539944..00000000000
--- a/examples/pysp/networkflow/1ef10With2Bundles/Scenario6.dat
+++ /dev/null
@@ -1,97 +0,0 @@
-set Nodes := A B C D E F G H I J;
-
-set Arcs := (A,B) (B,A) (A,C) (C,A) (B,C) (C,B) (B,D) (D,B) (B,E) (E,B) (C,D) (D,C) (D,E) (E,D) (F,G) (G,F) (F,H) (H,F) (G,H) (H,G) (G,I) (I,G) (G,J) (J,G) (H,I) (I,H) (I,J) (J,I) (E,F) (F,E);
-
-param CapCost :=
-A B 112
-A C 123
-B C 116
-B D 128
-B E 130
-C D 112
-D E 110
-B A 112
-C A 123
-C B 116
-D B 128
-E B 130
-D C 112
-E D 110
-E F 110
-F E 110
-F G 112
-F H 128
-G H 116
-G I 123
-G J 130
-H I 112
-I J 110
-G F 112
-H F 128
-H G 116
-I G 123
-J G 130
-I H 112
-J I 110
-;
-
-param b0Cost :=
-A B 1120
-A C 1230
-B C 1160
-B D 1280
-B E 1300
-C D 1120
-D E 1100
-B A 1120
-C A 1230
-C B 1160
-D B 1280
-E B 1300
-D C 1120
-E D 1100
-E F 1100
-F E 1100
-F G 1120
-F H 1280
-G H 1160
-G I 1230
-G J 1300
-H I 1120
-I J 1100
-G F 1120
-H F 1280
-H G 1160
-I G 1230
-J G 1300
-I H 1120
-J I 1100
-;
-
-param FCost:
- A B C D E F G H I J :=
- A 0.00 1120.00 1230.00 1340.00 1450.00 1560.00 1670.00 890.00 1890.00 950.00
- B 1120.00 0.00 1740.00 1920.00 650.00 2130.00 770.00 830.00 2670.00 2700.00
- C 1230.00 1740.00 0.00 1680.00 1875.00 2070.00 2115.00 2310.00 835.00 850.00
- D 1340.00 1920.00 1680.00 0.00 550.00 1240.00 1380.00 2130.00 2340.00 2400.00
- E 1450.00 650.00 1875.00 550.00 0.00 1650.00 1875.00 1950.00 725.00 2250.00
- F 1560.00 2130.00 2070.00 1240.00 1650.00 0.00 1680.00 1280.00 670.00 700.00
- G 1670.00 770.00 2115.00 1380.00 1875.00 1680.00 0.00 580.00 615.00 1950.00
- H 890.00 830.00 2310.00 2130.00 1950.00 1280.00 580.00 0.00 1120.00 1200.00
- I 1890.00 2670.00 835.00 2340.00 725.00 670.00 615.00 1120.00 0.00 1100.00
- J 950.00 2700.00 850.00 2400.00 2250.00 700.00 1950.00 1200.00 1100.00 0.00 ;
-
-param Demand:
- A B C D E F G H I J :=
- A 0 3.05 3.08 3.22 3.11 3.42 2.75 3.02 3.12 2.83
- B 3.05 0 3.35 3.12 3.07 3.29 3.28 3.03 3.09 2.83
- C 3.08 3.35 0 2.69 2.94 3.07 3.56 3.30 2.91 2.78
- D 3.22 3.12 2.69 0 3.26 3.20 3.26 3.28 3.08 3.06
- E 3.11 3.07 2.94 3.26 0 3.15 3.13 2.77 2.85 2.52
- F 3.42 3.29 3.07 3.20 3.15 0 3.26 2.56 2.98 3.12
- G 2.75 3.28 3.56 3.26 3.13 3.26 0 2.98 2.94 3.00
- H 3.02 3.03 3.30 3.28 2.77 2.56 2.98 0 3.42 3.27
- I 3.12 3.09 2.91 3.08 2.85 2.98 2.94 3.42 0 2.89
- J 2.83 2.83 2.78 3.06 2.52 3.12 3.00 3.27 2.89 0 ;
-
-param M := 174.88 ;
diff --git a/examples/pysp/networkflow/1ef10With2Bundles/Scenario7.dat b/examples/pysp/networkflow/1ef10With2Bundles/Scenario7.dat
deleted file mode 100755
index b6f15564ca5..00000000000
--- a/examples/pysp/networkflow/1ef10With2Bundles/Scenario7.dat
+++ /dev/null
@@ -1,97 +0,0 @@
-set Nodes := A B C D E F G H I J;
-
-set Arcs := (A,B) (B,A) (A,C) (C,A) (B,C) (C,B) (B,D) (D,B) (B,E) (E,B) (C,D) (D,C) (D,E) (E,D) (F,G) (G,F) (F,H) (H,F) (G,H) (H,G) (G,I) (I,G) (G,J) (J,G) (H,I) (I,H) (I,J) (J,I) (E,F) (F,E);
-
-param CapCost :=
-A B 112
-A C 123
-B C 116
-B D 128
-B E 130
-C D 112
-D E 110
-B A 112
-C A 123
-C B 116
-D B 128
-E B 130
-D C 112
-E D 110
-E F 110
-F E 110
-F G 112
-F H 128
-G H 116
-G I 123
-G J 130
-H I 112
-I J 110
-G F 112
-H F 128
-H G 116
-I G 123
-J G 130
-I H 112
-J I 110
-;
-
-param b0Cost :=
-A B 1120
-A C 1230
-B C 1160
-B D 1280
-B E 1300
-C D 1120
-D E 1100
-B A 1120
-C A 1230
-C B 1160
-D B 1280
-E B 1300
-D C 1120
-E D 1100
-E F 1100
-F E 1100
-F G 1120
-F H 1280
-G H 1160
-G I 1230
-G J 1300
-H I 1120
-I J 1100
-G F 1120
-H F 1280
-H G 1160
-I G 1230
-J G 1300
-I H 1120
-J I 1100
-;
-
-param FCost:
- A B C D E F G H I J :=
- A 0.00 560.00 615.00 2010.00 2175.00 2340.00 835.00 2670.00 1890.00 2850.00
- B 560.00 0.00 1740.00 640.00 650.00 1420.00 2310.00 830.00 890.00 900.00
- C 615.00 1740.00 0.00 560.00 1875.00 1380.00 2115.00 770.00 835.00 2550.00
- D 2010.00 640.00 560.00 0.00 1100.00 620.00 690.00 2130.00 780.00 2400.00
- E 2175.00 650.00 1875.00 1100.00 0.00 1100.00 625.00 650.00 1450.00 1500.00
- F 2340.00 1420.00 1380.00 620.00 1100.00 0.00 1680.00 1920.00 1340.00 700.00
- G 835.00 2310.00 2115.00 690.00 625.00 1680.00 0.00 1160.00 615.00 1300.00
- H 2670.00 830.00 770.00 2130.00 650.00 1920.00 1160.00 0.00 1120.00 600.00
- I 1890.00 890.00 835.00 780.00 1450.00 1340.00 615.00 1120.00 0.00 1650.00
- J 2850.00 900.00 2550.00 2400.00 1500.00 700.00 1300.00 600.00 1650.00 0.00 ;
-
-param Demand:
- A B C D E F G H I J :=
- A 0 3.61 3.36 3.68 3.32 2.85 3.30 3.51 3.25 3.36
- B 3.61 0 3.79 3.43 3.39 3.42 2.94 3.40 2.74 3.28
- C 3.36 3.79 0 3.26 2.72 2.91 3.11 2.98 3.10 3.38
- D 3.68 3.43 3.26 0 2.81 2.99 2.83 3.33 3.55 3.14
- E 3.32 3.39 2.72 2.81 0 3.28 2.96 2.88 3.55 3.02
- F 2.85 3.42 2.91 2.99 3.28 0 3.48 2.98 3.56 3.02
- G 3.30 2.94 3.11 2.83 2.96 3.48 0 3.33 3.38 3.24
- H 3.51 3.40 2.98 3.33 2.88 2.98 3.33 0 3.27 3.24
- I 3.25 2.74 3.10 3.55 3.55 3.56 3.38 3.27 0 2.78
- J 3.36 3.28 3.38 3.14 3.02 3.02 3.24 3.24 2.78 0 ;
-
-param M := 174.88 ;
diff --git a/examples/pysp/networkflow/1ef10With2Bundles/Scenario8.dat b/examples/pysp/networkflow/1ef10With2Bundles/Scenario8.dat
deleted file mode 100755
index c364cad58ff..00000000000
--- a/examples/pysp/networkflow/1ef10With2Bundles/Scenario8.dat
+++ /dev/null
@@ -1,97 +0,0 @@
-set Nodes := A B C D E F G H I J;
-
-set Arcs := (A,B) (B,A) (A,C) (C,A) (B,C) (C,B) (B,D) (D,B) (B,E) (E,B) (C,D) (D,C) (D,E) (E,D) (F,G) (G,F) (F,H) (H,F) (G,H) (H,G) (G,I) (I,G) (G,J) (J,G) (H,I) (I,H) (I,J) (J,I) (E,F) (F,E);
-
-param CapCost :=
-A B 112
-A C 123
-B C 116
-B D 128
-B E 130
-C D 112
-D E 110
-B A 112
-C A 123
-C B 116
-D B 128
-E B 130
-D C 112
-E D 110
-E F 110
-F E 110
-F G 112
-F H 128
-G H 116
-G I 123
-G J 130
-H I 112
-I J 110
-G F 112
-H F 128
-H G 116
-I G 123
-J G 130
-I H 112
-J I 110
-;
-
-param b0Cost :=
-A B 1120
-A C 1230
-B C 1160
-B D 1280
-B E 1300
-C D 1120
-D E 1100
-B A 1120
-C A 1230
-C B 1160
-D B 1280
-E B 1300
-D C 1120
-E D 1100
-E F 1100
-F E 1100
-F G 1120
-F H 1280
-G H 1160
-G I 1230
-G J 1300
-H I 1120
-I J 1100
-G F 1120
-H F 1280
-H G 1160
-I G 1230
-J G 1300
-I H 1120
-J I 1100
-;
-
-param FCost:
- A B C D E F G H I J :=
- A 0.00 1120.00 1230.00 670.00 1450.00 2340.00 835.00 1780.00 1890.00 1900.00
- B 1120.00 0.00 580.00 1920.00 1950.00 710.00 770.00 2490.00 1780.00 2700.00
- C 1230.00 580.00 0.00 560.00 1250.00 690.00 2115.00 1540.00 1670.00 2550.00
- D 670.00 1920.00 560.00 0.00 1650.00 1860.00 690.00 1420.00 780.00 800.00
- E 1450.00 1950.00 1250.00 1650.00 0.00 1100.00 1875.00 1950.00 725.00 2250.00
- F 2340.00 710.00 690.00 1860.00 1100.00 0.00 1120.00 1280.00 2010.00 1400.00
- G 835.00 770.00 2115.00 690.00 1875.00 1120.00 0.00 580.00 615.00 1950.00
- H 1780.00 2490.00 1540.00 1420.00 1950.00 1280.00 580.00 0.00 1120.00 1200.00
- I 1890.00 1780.00 1670.00 780.00 725.00 2010.00 615.00 1120.00 0.00 550.00
- J 1900.00 2700.00 2550.00 800.00 2250.00 1400.00 1950.00 1200.00 550.00 0.00 ;
-
-param Demand:
- A B C D E F G H I J :=
- A 0 3.08 3.52 3.34 2.96 3.24 2.91 3.29 3.32 2.92
- B 3.08 0 2.89 3.04 3.03 2.91 2.87 3.30 3.20 2.90
- C 3.52 2.89 0 3.28 2.81 3.26 3.17 3.42 2.78 3.21
- D 3.34 3.04 3.28 0 3.00 3.00 2.85 2.59 3.36 3.19
- E 2.96 3.03 2.81 3.00 0 2.95 3.09 2.99 2.74 2.89
- F 3.24 2.91 3.26 3.00 2.95 0 2.91 2.95 2.87 3.21
- G 2.91 2.87 3.17 2.85 3.09 2.91 0 2.90 3.16 3.11
- H 3.29 3.30 3.42 2.59 2.99 2.95 2.90 0 3.19 2.81
- I 3.32 3.20 2.78 3.36 2.74 2.87 3.16 3.19 0 2.43
- J 2.92 2.90 3.21 3.19 2.89 3.21 3.11 2.81 2.43 0 ;
-
-param M := 174.88 ;
diff --git a/examples/pysp/networkflow/1ef10With2Bundles/Scenario9.dat b/examples/pysp/networkflow/1ef10With2Bundles/Scenario9.dat
deleted file mode 100755
index 23a104d0791..00000000000
--- a/examples/pysp/networkflow/1ef10With2Bundles/Scenario9.dat
+++ /dev/null
@@ -1,97 +0,0 @@
-set Nodes := A B C D E F G H I J;
-
-set Arcs := (A,B) (B,A) (A,C) (C,A) (B,C) (C,B) (B,D) (D,B) (B,E) (E,B) (C,D) (D,C) (D,E) (E,D) (F,G) (G,F) (F,H) (H,F) (G,H) (H,G) (G,I) (I,G) (G,J) (J,G) (H,I) (I,H) (I,J) (J,I) (E,F) (F,E);
-
-param CapCost :=
-A B 112
-A C 123
-B C 116
-B D 128
-B E 130
-C D 112
-D E 110
-B A 112
-C A 123
-C B 116
-D B 128
-E B 130
-D C 112
-E D 110
-E F 110
-F E 110
-F G 112
-F H 128
-G H 116
-G I 123
-G J 130
-H I 112
-I J 110
-G F 112
-H F 128
-H G 116
-I G 123
-J G 130
-I H 112
-J I 110
-;
-
-param b0Cost :=
-A B 1120
-A C 1230
-B C 1160
-B D 1280
-B E 1300
-C D 1120
-D E 1100
-B A 1120
-C A 1230
-C B 1160
-D B 1280
-E B 1300
-D C 1120
-E D 1100
-E F 1100
-F E 1100
-F G 1120
-F H 1280
-G H 1160
-G I 1230
-G J 1300
-H I 1120
-I J 1100
-G F 1120
-H F 1280
-H G 1160
-I G 1230
-J G 1300
-I H 1120
-J I 1100
-;
-
-param FCost:
- A B C D E F G H I J :=
- A 0.00 560.00 615.00 1340.00 2175.00 780.00 1670.00 1780.00 1890.00 950.00
- B 560.00 0.00 1740.00 640.00 650.00 2130.00 1540.00 830.00 1780.00 2700.00
- C 615.00 1740.00 0.00 1680.00 625.00 690.00 1410.00 1540.00 835.00 1700.00
- D 1340.00 640.00 1680.00 0.00 1100.00 620.00 690.00 1420.00 1560.00 1600.00
- E 2175.00 650.00 625.00 1100.00 0.00 1650.00 1875.00 1950.00 2175.00 1500.00
- F 780.00 2130.00 690.00 620.00 1650.00 0.00 560.00 1280.00 1340.00 1400.00
- G 1670.00 1540.00 1410.00 690.00 1875.00 560.00 0.00 1160.00 1230.00 650.00
- H 1780.00 830.00 1540.00 1420.00 1950.00 1280.00 1160.00 0.00 1120.00 1800.00
- I 1890.00 1780.00 835.00 1560.00 2175.00 1340.00 1230.00 1120.00 0.00 550.00
- J 950.00 2700.00 1700.00 1600.00 1500.00 1400.00 650.00 1800.00 550.00 0.00 ;
-
-param Demand:
- A B C D E F G H I J :=
- A 0 3.44 3.42 3.55 3.18 3.71 3.79 3.88 3.76 3.38
- B 3.44 0 3.57 3.60 3.34 3.40 3.61 3.06 3.28 3.29
- C 3.42 3.57 0 3.22 3.36 3.63 3.47 3.73 3.06 3.33
- D 3.55 3.60 3.22 0 3.34 3.15 3.81 3.67 3.29 3.34
- E 3.18 3.34 3.36 3.34 0 3.59 3.35 3.30 3.19 3.28
- F 3.71 3.40 3.63 3.15 3.59 0 3.53 3.33 3.91 3.66
- G 3.79 3.61 3.47 3.81 3.35 3.53 0 3.73 3.35 3.66
- H 3.88 3.06 3.73 3.67 3.30 3.33 3.73 0 3.48 3.31
- I 3.76 3.28 3.06 3.29 3.19 3.91 3.35 3.48 0 3.52
- J 3.38 3.29 3.33 3.34 3.28 3.66 3.66 3.31 3.52 0 ;
-
-param M := 174.88 ;
diff --git a/examples/pysp/networkflow/1ef10With2Bundles/ScenarioStructure.dat b/examples/pysp/networkflow/1ef10With2Bundles/ScenarioStructure.dat
deleted file mode 100644
index 637b25ebdc3..00000000000
--- a/examples/pysp/networkflow/1ef10With2Bundles/ScenarioStructure.dat
+++ /dev/null
@@ -1,87 +0,0 @@
-# IMPORTANT - THE STAGES ARE ASSUMED TO BE IN TIME-ORDER.
-
-set Stages := FirstStage SecondStage ;
-
-set Nodes := RootNode
- Scenario1Node
- Scenario2Node
- Scenario3Node
- Scenario4Node
- Scenario5Node
- Scenario6Node
- Scenario7Node
- Scenario8Node
- Scenario9Node
- Scenario10Node ;
-
-param NodeStage := RootNode FirstStage
- Scenario1Node SecondStage
- Scenario2Node SecondStage
- Scenario3Node SecondStage
- Scenario4Node SecondStage
- Scenario5Node SecondStage
- Scenario6Node SecondStage
- Scenario7Node SecondStage
- Scenario8Node SecondStage
- Scenario9Node SecondStage
- Scenario10Node SecondStage ;
-
-set Children[RootNode] := Scenario1Node
- Scenario2Node
- Scenario3Node
- Scenario4Node
- Scenario5Node
- Scenario6Node
- Scenario7Node
- Scenario8Node
- Scenario9Node
- Scenario10Node ;
-
-param ConditionalProbability := RootNode 1.0
- Scenario1Node 0.1
- Scenario2Node 0.1
- Scenario3Node 0.1
- Scenario4Node 0.1
- Scenario5Node 0.1
- Scenario6Node 0.1
- Scenario7Node 0.1
- Scenario8Node 0.1
- Scenario9Node 0.1
- Scenario10Node 0.1 ;
-
-set Scenarios := Scenario1
- Scenario2
- Scenario3
- Scenario4
- Scenario5
- Scenario6
- Scenario7
- Scenario8
- Scenario9
- Scenario10 ;
-
-param ScenarioLeafNode := Scenario1 Scenario1Node
- Scenario2 Scenario2Node
- Scenario3 Scenario3Node
- Scenario4 Scenario4Node
- Scenario5 Scenario5Node
- Scenario6 Scenario6Node
- Scenario7 Scenario7Node
- Scenario8 Scenario8Node
- Scenario9 Scenario9Node
- Scenario10 Scenario10Node ;
-
-set StageVariables[FirstStage] := b0[*,*]
- x[*,*] ;
-set StageVariables[SecondStage] := b[*,*]
- y[*,*,*,*] ;
-
-param StageCost := FirstStage FirstStageCost
- SecondStage SecondStageCost ;
-
-param Bundling := True ;
-
-set Bundles := Bundle1 Bundle2 ;
-
-set BundleScenarios[Bundle1] := Scenario1 Scenario2 Scenario3 Scenario4 Scenario5 ;
-set BundleScenarios[Bundle2] := Scenario6 Scenario7 Scenario8 Scenario9 Scenario10 ;
diff --git a/examples/pysp/networkflow/1ef10With5Bundles/Scenario1.dat b/examples/pysp/networkflow/1ef10With5Bundles/Scenario1.dat
deleted file mode 100755
index 957eae74ec0..00000000000
--- a/examples/pysp/networkflow/1ef10With5Bundles/Scenario1.dat
+++ /dev/null
@@ -1,97 +0,0 @@
-set Nodes := A B C D E F G H I J;
-
-set Arcs := (A,B) (B,A) (A,C) (C,A) (B,C) (C,B) (B,D) (D,B) (B,E) (E,B) (C,D) (D,C) (D,E) (E,D) (F,G) (G,F) (F,H) (H,F) (G,H) (H,G) (G,I) (I,G) (G,J) (J,G) (H,I) (I,H) (I,J) (J,I) (E,F) (F,E);
-
-param CapCost :=
-A B 112
-A C 123
-B C 116
-B D 128
-B E 130
-C D 112
-D E 110
-B A 112
-C A 123
-C B 116
-D B 128
-E B 130
-D C 112
-E D 110
-E F 110
-F E 110
-F G 112
-F H 128
-G H 116
-G I 123
-G J 130
-H I 112
-I J 110
-G F 112
-H F 128
-H G 116
-I G 123
-J G 130
-I H 112
-J I 110
-;
-
-param b0Cost :=
-A B 1120
-A C 1230
-B C 1160
-B D 1280
-B E 1300
-C D 1120
-D E 1100
-B A 1120
-C A 1230
-C B 1160
-D B 1280
-E B 1300
-D C 1120
-E D 1100
-E F 1100
-F E 1100
-F G 1120
-F H 1280
-G H 1160
-G I 1230
-G J 1300
-H I 1120
-I J 1100
-G F 1120
-H F 1280
-H G 1160
-I G 1230
-J G 1300
-I H 1120
-J I 1100
-;
-
-param FCost:
- A B C D E F G H I J :=
- A 0.00 560.00 1845.00 2010.00 2175.00 1560.00 1670.00 1780.00 2835.00 950.00
- B 560.00 0.00 1740.00 640.00 650.00 1420.00 2310.00 1660.00 890.00 900.00
- C 1845.00 1740.00 0.00 1680.00 1250.00 2070.00 705.00 1540.00 835.00 1700.00
- D 2010.00 640.00 1680.00 0.00 1100.00 1860.00 690.00 710.00 2340.00 1600.00
- E 2175.00 650.00 1250.00 1100.00 0.00 1100.00 1875.00 1300.00 2175.00 1500.00
- F 1560.00 1420.00 2070.00 1860.00 1100.00 0.00 560.00 640.00 2010.00 700.00
- G 1670.00 2310.00 705.00 690.00 1875.00 560.00 0.00 1740.00 615.00 1950.00
- H 1780.00 1660.00 1540.00 710.00 1300.00 640.00 1740.00 0.00 560.00 600.00
- I 2835.00 890.00 835.00 2340.00 2175.00 2010.00 615.00 560.00 0.00 550.00
- J 950.00 900.00 1700.00 1600.00 1500.00 700.00 1950.00 600.00 550.00 0.00 ;
-
-param Demand:
- A B C D E F G H I J :=
- A 0 3.47 4.16 3.81 4.02 3.77 3.84 4.02 3.80 3.84
- B 3.47 0 4.21 4.18 3.94 4.14 4.07 3.69 3.50 3.96
- C 4.16 4.21 0 4.29 4.27 4.26 4.09 3.73 3.64 3.88
- D 3.81 4.18 4.29 0 3.66 3.95 3.54 4.07 3.64 4.21
- E 4.02 3.94 4.27 3.66 0 4.04 4.14 3.92 3.57 3.77
- F 3.77 4.14 4.26 3.95 4.04 0 3.69 3.62 3.76 3.73
- G 3.84 4.07 4.09 3.54 4.14 3.69 0 4.10 3.25 4.08
- H 4.02 3.69 3.73 4.07 3.92 3.62 4.10 0 3.55 3.82
- I 3.80 3.50 3.64 3.64 3.57 3.76 3.25 3.55 0 4.19
- J 3.84 3.96 3.88 4.21 3.77 3.73 4.08 3.82 4.19 0 ;
-
-param M := 174.88 ;
diff --git a/examples/pysp/networkflow/1ef10With5Bundles/Scenario10.dat b/examples/pysp/networkflow/1ef10With5Bundles/Scenario10.dat
deleted file mode 100755
index 61e7da3f66c..00000000000
--- a/examples/pysp/networkflow/1ef10With5Bundles/Scenario10.dat
+++ /dev/null
@@ -1,97 +0,0 @@
-set Nodes := A B C D E F G H I J;
-
-set Arcs := (A,B) (B,A) (A,C) (C,A) (B,C) (C,B) (B,D) (D,B) (B,E) (E,B) (C,D) (D,C) (D,E) (E,D) (F,G) (G,F) (F,H) (H,F) (G,H) (H,G) (G,I) (I,G) (G,J) (J,G) (H,I) (I,H) (I,J) (J,I) (E,F) (F,E);
-
-param CapCost :=
-A B 112
-A C 123
-B C 116
-B D 128
-B E 130
-C D 112
-D E 110
-B A 112
-C A 123
-C B 116
-D B 128
-E B 130
-D C 112
-E D 110
-E F 110
-F E 110
-F G 112
-F H 128
-G H 116
-G I 123
-G J 130
-H I 112
-I J 110
-G F 112
-H F 128
-H G 116
-I G 123
-J G 130
-I H 112
-J I 110
-;
-
-param b0Cost :=
-A B 1120
-A C 1230
-B C 1160
-B D 1280
-B E 1300
-C D 1120
-D E 1100
-B A 1120
-C A 1230
-C B 1160
-D B 1280
-E B 1300
-D C 1120
-E D 1100
-E F 1100
-F E 1100
-F G 1120
-F H 1280
-G H 1160
-G I 1230
-G J 1300
-H I 1120
-I J 1100
-G F 1120
-H F 1280
-H G 1160
-I G 1230
-J G 1300
-I H 1120
-J I 1100
-;
-
-param FCost:
- A B C D E F G H I J :=
- A 0.00 560.00 1845.00 670.00 2175.00 1560.00 1670.00 2670.00 1890.00 2850.00
- B 560.00 0.00 1160.00 1920.00 1950.00 710.00 1540.00 2490.00 2670.00 900.00
- C 1845.00 1160.00 0.00 1680.00 1875.00 1380.00 705.00 2310.00 1670.00 1700.00
- D 670.00 1920.00 1680.00 0.00 1100.00 1860.00 2070.00 2130.00 2340.00 1600.00
- E 2175.00 1950.00 1875.00 1100.00 0.00 550.00 1875.00 650.00 1450.00 750.00
- F 1560.00 710.00 1380.00 1860.00 550.00 0.00 1680.00 640.00 670.00 2100.00
- G 1670.00 1540.00 705.00 2070.00 1875.00 1680.00 0.00 1160.00 1845.00 650.00
- H 2670.00 2490.00 2310.00 2130.00 650.00 640.00 1160.00 0.00 1680.00 1800.00
- I 1890.00 2670.00 1670.00 2340.00 1450.00 670.00 1845.00 1680.00 0.00 1650.00
- J 2850.00 900.00 1700.00 1600.00 750.00 2100.00 650.00 1800.00 1650.00 0.00 ;
-
-param Demand:
- A B C D E F G H I J :=
- A 0 3.12 3.34 3.12 3.15 3.47 3.03 3.33 3.15 3.20
- B 3.12 0 3.42 3.59 3.21 3.16 3.43 3.40 3.57 3.71
- C 3.34 3.42 0 3.35 3.50 3.06 3.27 3.38 3.17 3.45
- D 3.12 3.59 3.35 0 2.94 2.80 3.12 3.08 3.67 3.05
- E 3.15 3.21 3.50 2.94 0 3.24 3.32 3.14 3.08 3.52
- F 3.47 3.16 3.06 2.80 3.24 0 3.03 3.24 3.36 3.23
- G 3.03 3.43 3.27 3.12 3.32 3.03 0 3.17 3.38 3.52
- H 3.33 3.40 3.38 3.08 3.14 3.24 3.17 0 3.07 3.15
- I 3.15 3.57 3.17 3.67 3.08 3.36 3.38 3.07 0 2.75
- J 3.20 3.71 3.45 3.05 3.52 3.23 3.52 3.15 2.75 0 ;
-
-param M := 174.88 ;
diff --git a/examples/pysp/networkflow/1ef10With5Bundles/Scenario2.dat b/examples/pysp/networkflow/1ef10With5Bundles/Scenario2.dat
deleted file mode 100755
index 7fc0e9fbf0e..00000000000
--- a/examples/pysp/networkflow/1ef10With5Bundles/Scenario2.dat
+++ /dev/null
@@ -1,97 +0,0 @@
-set Nodes := A B C D E F G H I J;
-
-set Arcs := (A,B) (B,A) (A,C) (C,A) (B,C) (C,B) (B,D) (D,B) (B,E) (E,B) (C,D) (D,C) (D,E) (E,D) (F,G) (G,F) (F,H) (H,F) (G,H) (H,G) (G,I) (I,G) (G,J) (J,G) (H,I) (I,H) (I,J) (J,I) (E,F) (F,E);
-
-param CapCost :=
-A B 112
-A C 123
-B C 116
-B D 128
-B E 130
-C D 112
-D E 110
-B A 112
-C A 123
-C B 116
-D B 128
-E B 130
-D C 112
-E D 110
-E F 110
-F E 110
-F G 112
-F H 128
-G H 116
-G I 123
-G J 130
-H I 112
-I J 110
-G F 112
-H F 128
-H G 116
-I G 123
-J G 130
-I H 112
-J I 110
-;
-
-param b0Cost :=
-A B 1120
-A C 1230
-B C 1160
-B D 1280
-B E 1300
-C D 1120
-D E 1100
-B A 1120
-C A 1230
-C B 1160
-D B 1280
-E B 1300
-D C 1120
-E D 1100
-E F 1100
-F E 1100
-F G 1120
-F H 1280
-G H 1160
-G I 1230
-G J 1300
-H I 1120
-I J 1100
-G F 1120
-H F 1280
-H G 1160
-I G 1230
-J G 1300
-I H 1120
-J I 1100
-;
-
-param FCost:
- A B C D E F G H I J :=
- A 0.00 560.00 1230.00 1340.00 2175.00 2340.00 2505.00 890.00 2835.00 1900.00
- B 560.00 0.00 1160.00 640.00 1950.00 710.00 1540.00 830.00 890.00 1800.00
- C 1230.00 1160.00 0.00 1120.00 1250.00 690.00 705.00 1540.00 835.00 1700.00
- D 1340.00 640.00 1120.00 0.00 550.00 1860.00 1380.00 710.00 1560.00 800.00
- E 2175.00 1950.00 1250.00 550.00 0.00 1650.00 1875.00 650.00 1450.00 750.00
- F 2340.00 710.00 690.00 1860.00 1650.00 0.00 1680.00 640.00 1340.00 2100.00
- G 2505.00 1540.00 705.00 1380.00 1875.00 1680.00 0.00 1160.00 1230.00 650.00
- H 890.00 830.00 1540.00 710.00 650.00 640.00 1160.00 0.00 1120.00 1800.00
- I 2835.00 890.00 835.00 1560.00 1450.00 1340.00 1230.00 1120.00 0.00 550.00
- J 1900.00 1800.00 1700.00 800.00 750.00 2100.00 650.00 1800.00 550.00 0.00 ;
-
-param Demand:
- A B C D E F G H I J :=
- A 0 3.41 3.24 3.22 2.80 3.06 3.32 3.00 3.53 3.35
- B 3.41 0 3.15 3.50 2.98 3.19 3.14 3.12 3.49 3.20
- C 3.24 3.15 0 3.01 3.13 3.24 3.08 3.59 3.05 3.19
- D 3.22 3.50 3.01 0 3.35 2.97 3.18 3.17 2.90 3.12
- E 2.80 2.98 3.13 3.35 0 3.17 3.12 3.27 3.14 3.16
- F 3.06 3.19 3.24 2.97 3.17 0 3.01 3.21 2.87 3.25
- G 3.32 3.14 3.08 3.18 3.12 3.01 0 3.02 2.95 3.18
- H 3.00 3.12 3.59 3.17 3.27 3.21 3.02 0 3.37 3.02
- I 3.53 3.49 3.05 2.90 3.14 2.87 2.95 3.37 0 3.10
- J 3.35 3.20 3.19 3.12 3.16 3.25 3.18 3.02 3.10 0 ;
-
-param M := 174.88 ;
diff --git a/examples/pysp/networkflow/1ef10With5Bundles/Scenario3.dat b/examples/pysp/networkflow/1ef10With5Bundles/Scenario3.dat
deleted file mode 100755
index fd4af00131a..00000000000
--- a/examples/pysp/networkflow/1ef10With5Bundles/Scenario3.dat
+++ /dev/null
@@ -1,97 +0,0 @@
-set Nodes := A B C D E F G H I J;
-
-set Arcs := (A,B) (B,A) (A,C) (C,A) (B,C) (C,B) (B,D) (D,B) (B,E) (E,B) (C,D) (D,C) (D,E) (E,D) (F,G) (G,F) (F,H) (H,F) (G,H) (H,G) (G,I) (I,G) (G,J) (J,G) (H,I) (I,H) (I,J) (J,I) (E,F) (F,E);
-
-param CapCost :=
-A B 112
-A C 123
-B C 116
-B D 128
-B E 130
-C D 112
-D E 110
-B A 112
-C A 123
-C B 116
-D B 128
-E B 130
-D C 112
-E D 110
-E F 110
-F E 110
-F G 112
-F H 128
-G H 116
-G I 123
-G J 130
-H I 112
-I J 110
-G F 112
-H F 128
-H G 116
-I G 123
-J G 130
-I H 112
-J I 110
-;
-
-param b0Cost :=
-A B 1120
-A C 1230
-B C 1160
-B D 1280
-B E 1300
-C D 1120
-D E 1100
-B A 1120
-C A 1230
-C B 1160
-D B 1280
-E B 1300
-D C 1120
-E D 1100
-E F 1100
-F E 1100
-F G 1120
-F H 1280
-G H 1160
-G I 1230
-G J 1300
-H I 1120
-I J 1100
-G F 1120
-H F 1280
-H G 1160
-I G 1230
-J G 1300
-I H 1120
-J I 1100
-;
-
-param FCost:
- A B C D E F G H I J :=
- A 0.00 1120.00 1230.00 670.00 1450.00 1560.00 835.00 1780.00 1890.00 1900.00
- B 1120.00 0.00 1160.00 1920.00 650.00 710.00 770.00 2490.00 2670.00 1800.00
- C 1230.00 1160.00 0.00 560.00 1875.00 690.00 2115.00 2310.00 835.00 2550.00
- D 670.00 1920.00 560.00 0.00 1100.00 1240.00 1380.00 710.00 1560.00 1600.00
- E 1450.00 650.00 1875.00 1100.00 0.00 1650.00 625.00 1300.00 725.00 750.00
- F 1560.00 710.00 690.00 1240.00 1650.00 0.00 1120.00 1280.00 670.00 700.00
- G 835.00 770.00 2115.00 1380.00 625.00 1120.00 0.00 1740.00 615.00 1950.00
- H 1780.00 2490.00 2310.00 710.00 1300.00 1280.00 1740.00 0.00 1680.00 1800.00
- I 1890.00 2670.00 835.00 1560.00 725.00 670.00 615.00 1680.00 0.00 1650.00
- J 1900.00 1800.00 2550.00 1600.00 750.00 700.00 1950.00 1800.00 1650.00 0.00 ;
-
-param Demand:
- A B C D E F G H I J :=
- A 0 2.66 3.06 2.77 3.06 3.17 3.61 3.69 3.41 3.12
- B 2.66 0 2.86 3.34 3.23 3.34 2.85 3.06 3.16 3.06
- C 3.06 2.86 0 3.18 3.46 3.28 2.95 3.18 3.40 3.04
- D 2.77 3.34 3.18 0 2.86 3.15 3.61 2.88 3.44 2.86
- E 3.06 3.23 3.46 2.86 0 3.11 3.02 3.50 3.67 3.30
- F 3.17 3.34 3.28 3.15 3.11 0 3.25 3.13 2.73 3.38
- G 3.61 2.85 2.95 3.61 3.02 3.25 0 3.11 3.32 3.67
- H 3.69 3.06 3.18 2.88 3.50 3.13 3.11 0 2.68 3.25
- I 3.41 3.16 3.40 3.44 3.67 2.73 3.32 2.68 0 2.94
- J 3.12 3.06 3.04 2.86 3.30 3.38 3.67 3.25 2.94 0 ;
-
-param M := 174.88 ;
diff --git a/examples/pysp/networkflow/1ef10With5Bundles/Scenario4.dat b/examples/pysp/networkflow/1ef10With5Bundles/Scenario4.dat
deleted file mode 100755
index 8cf734825f7..00000000000
--- a/examples/pysp/networkflow/1ef10With5Bundles/Scenario4.dat
+++ /dev/null
@@ -1,97 +0,0 @@
-set Nodes := A B C D E F G H I J;
-
-set Arcs := (A,B) (B,A) (A,C) (C,A) (B,C) (C,B) (B,D) (D,B) (B,E) (E,B) (C,D) (D,C) (D,E) (E,D) (F,G) (G,F) (F,H) (H,F) (G,H) (H,G) (G,I) (I,G) (G,J) (J,G) (H,I) (I,H) (I,J) (J,I) (E,F) (F,E);
-
-param CapCost :=
-A B 112
-A C 123
-B C 116
-B D 128
-B E 130
-C D 112
-D E 110
-B A 112
-C A 123
-C B 116
-D B 128
-E B 130
-D C 112
-E D 110
-E F 110
-F E 110
-F G 112
-F H 128
-G H 116
-G I 123
-G J 130
-H I 112
-I J 110
-G F 112
-H F 128
-H G 116
-I G 123
-J G 130
-I H 112
-J I 110
-;
-
-param b0Cost :=
-A B 1120
-A C 1230
-B C 1160
-B D 1280
-B E 1300
-C D 1120
-D E 1100
-B A 1120
-C A 1230
-C B 1160
-D B 1280
-E B 1300
-D C 1120
-E D 1100
-E F 1100
-F E 1100
-F G 1120
-F H 1280
-G H 1160
-G I 1230
-G J 1300
-H I 1120
-I J 1100
-G F 1120
-H F 1280
-H G 1160
-I G 1230
-J G 1300
-I H 1120
-J I 1100
-;
-
-param FCost:
- A B C D E F G H I J :=
- A 0.00 1120.00 1230.00 670.00 1450.00 2340.00 2505.00 890.00 1890.00 950.00
- B 1120.00 0.00 1160.00 1920.00 1950.00 1420.00 770.00 1660.00 890.00 1800.00
- C 1230.00 1160.00 0.00 1120.00 1875.00 690.00 1410.00 770.00 1670.00 2550.00
- D 670.00 1920.00 1120.00 0.00 550.00 620.00 690.00 2130.00 780.00 800.00
- E 1450.00 1950.00 1875.00 550.00 0.00 1100.00 1875.00 1950.00 725.00 1500.00
- F 2340.00 1420.00 690.00 620.00 1100.00 0.00 560.00 1920.00 2010.00 700.00
- G 2505.00 770.00 1410.00 690.00 1875.00 560.00 0.00 1160.00 1230.00 1950.00
- H 890.00 1660.00 770.00 2130.00 1950.00 1920.00 1160.00 0.00 560.00 1800.00
- I 1890.00 890.00 1670.00 780.00 725.00 2010.00 1230.00 560.00 0.00 1650.00
- J 950.00 1800.00 2550.00 800.00 1500.00 700.00 1950.00 1800.00 1650.00 0.00 ;
-
-param Demand:
- A B C D E F G H I J :=
- A 0 2.81 2.39 2.60 2.88 2.85 2.95 2.76 2.77 2.66
- B 2.81 0 2.52 2.77 2.76 2.34 2.83 2.85 2.43 2.44
- C 2.39 2.52 0 2.69 2.62 3.00 2.59 2.81 2.39 2.91
- D 2.60 2.77 2.69 0 2.30 2.93 2.34 2.81 2.34 2.83
- E 2.88 2.76 2.62 2.30 0 2.73 2.71 2.84 2.52 2.34
- F 2.85 2.34 3.00 2.93 2.73 0 2.93 2.37 2.62 2.84
- G 2.95 2.83 2.59 2.34 2.71 2.93 0 2.97 2.82 2.64
- H 2.76 2.85 2.81 2.81 2.84 2.37 2.97 0 2.79 2.29
- I 2.77 2.43 2.39 2.34 2.52 2.62 2.82 2.79 0 3.12
- J 2.66 2.44 2.91 2.83 2.34 2.84 2.64 2.29 3.12 0 ;
-
-param M := 174.88 ;
diff --git a/examples/pysp/networkflow/1ef10With5Bundles/Scenario5.dat b/examples/pysp/networkflow/1ef10With5Bundles/Scenario5.dat
deleted file mode 100755
index 5937a912d9c..00000000000
--- a/examples/pysp/networkflow/1ef10With5Bundles/Scenario5.dat
+++ /dev/null
@@ -1,97 +0,0 @@
-set Nodes := A B C D E F G H I J;
-
-set Arcs := (A,B) (B,A) (A,C) (C,A) (B,C) (C,B) (B,D) (D,B) (B,E) (E,B) (C,D) (D,C) (D,E) (E,D) (F,G) (G,F) (F,H) (H,F) (G,H) (H,G) (G,I) (I,G) (G,J) (J,G) (H,I) (I,H) (I,J) (J,I) (E,F) (F,E);
-
-param CapCost :=
-A B 112
-A C 123
-B C 116
-B D 128
-B E 130
-C D 112
-D E 110
-B A 112
-C A 123
-C B 116
-D B 128
-E B 130
-D C 112
-E D 110
-E F 110
-F E 110
-F G 112
-F H 128
-G H 116
-G I 123
-G J 130
-H I 112
-I J 110
-G F 112
-H F 128
-H G 116
-I G 123
-J G 130
-I H 112
-J I 110
-;
-
-param b0Cost :=
-A B 1120
-A C 1230
-B C 1160
-B D 1280
-B E 1300
-C D 1120
-D E 1100
-B A 1120
-C A 1230
-C B 1160
-D B 1280
-E B 1300
-D C 1120
-E D 1100
-E F 1100
-F E 1100
-F G 1120
-F H 1280
-G H 1160
-G I 1230
-G J 1300
-H I 1120
-I J 1100
-G F 1120
-H F 1280
-H G 1160
-I G 1230
-J G 1300
-I H 1120
-J I 1100
-;
-
-param FCost:
- A B C D E F G H I J :=
- A 0.00 1680.00 1230.00 670.00 1450.00 2340.00 2505.00 2670.00 2835.00 2850.00
- B 1680.00 0.00 1740.00 640.00 1950.00 2130.00 770.00 1660.00 890.00 2700.00
- C 1230.00 1740.00 0.00 560.00 1875.00 2070.00 2115.00 770.00 2505.00 1700.00
- D 670.00 640.00 560.00 0.00 550.00 620.00 1380.00 1420.00 1560.00 1600.00
- E 1450.00 1950.00 1875.00 550.00 0.00 550.00 625.00 1950.00 2175.00 1500.00
- F 2340.00 2130.00 2070.00 620.00 550.00 0.00 1120.00 1280.00 1340.00 1400.00
- G 2505.00 770.00 2115.00 1380.00 625.00 1120.00 0.00 1740.00 615.00 1950.00
- H 2670.00 1660.00 770.00 1420.00 1950.00 1280.00 1740.00 0.00 560.00 600.00
- I 2835.00 890.00 2505.00 1560.00 2175.00 1340.00 615.00 560.00 0.00 1650.00
- J 2850.00 2700.00 1700.00 1600.00 1500.00 1400.00 1950.00 600.00 1650.00 0.00 ;
-
-param Demand:
- A B C D E F G H I J :=
- A 0 3.67 3.22 3.63 3.46 3.65 3.80 3.73 3.59 3.26
- B 3.67 0 3.50 3.61 3.93 3.71 3.70 3.56 3.86 3.58
- C 3.22 3.50 0 3.65 3.49 3.50 3.55 3.22 3.49 3.70
- D 3.63 3.61 3.65 0 3.57 4.12 3.39 3.83 3.32 3.57
- E 3.46 3.93 3.49 3.57 0 3.51 3.85 3.43 3.90 3.53
- F 3.65 3.71 3.50 4.12 3.51 0 3.76 3.46 3.74 3.95
- G 3.80 3.70 3.55 3.39 3.85 3.76 0 3.98 3.60 3.91
- H 3.73 3.56 3.22 3.83 3.43 3.46 3.98 0 3.53 3.20
- I 3.59 3.86 3.49 3.32 3.90 3.74 3.60 3.53 0 3.99
- J 3.26 3.58 3.70 3.57 3.53 3.95 3.91 3.20 3.99 0 ;
-
-param M := 174.88 ;
diff --git a/examples/pysp/networkflow/1ef10With5Bundles/Scenario6.dat b/examples/pysp/networkflow/1ef10With5Bundles/Scenario6.dat
deleted file mode 100755
index 15584539944..00000000000
--- a/examples/pysp/networkflow/1ef10With5Bundles/Scenario6.dat
+++ /dev/null
@@ -1,97 +0,0 @@
-set Nodes := A B C D E F G H I J;
-
-set Arcs := (A,B) (B,A) (A,C) (C,A) (B,C) (C,B) (B,D) (D,B) (B,E) (E,B) (C,D) (D,C) (D,E) (E,D) (F,G) (G,F) (F,H) (H,F) (G,H) (H,G) (G,I) (I,G) (G,J) (J,G) (H,I) (I,H) (I,J) (J,I) (E,F) (F,E);
-
-param CapCost :=
-A B 112
-A C 123
-B C 116
-B D 128
-B E 130
-C D 112
-D E 110
-B A 112
-C A 123
-C B 116
-D B 128
-E B 130
-D C 112
-E D 110
-E F 110
-F E 110
-F G 112
-F H 128
-G H 116
-G I 123
-G J 130
-H I 112
-I J 110
-G F 112
-H F 128
-H G 116
-I G 123
-J G 130
-I H 112
-J I 110
-;
-
-param b0Cost :=
-A B 1120
-A C 1230
-B C 1160
-B D 1280
-B E 1300
-C D 1120
-D E 1100
-B A 1120
-C A 1230
-C B 1160
-D B 1280
-E B 1300
-D C 1120
-E D 1100
-E F 1100
-F E 1100
-F G 1120
-F H 1280
-G H 1160
-G I 1230
-G J 1300
-H I 1120
-I J 1100
-G F 1120
-H F 1280
-H G 1160
-I G 1230
-J G 1300
-I H 1120
-J I 1100
-;
-
-param FCost:
- A B C D E F G H I J :=
- A 0.00 1120.00 1230.00 1340.00 1450.00 1560.00 1670.00 890.00 1890.00 950.00
- B 1120.00 0.00 1740.00 1920.00 650.00 2130.00 770.00 830.00 2670.00 2700.00
- C 1230.00 1740.00 0.00 1680.00 1875.00 2070.00 2115.00 2310.00 835.00 850.00
- D 1340.00 1920.00 1680.00 0.00 550.00 1240.00 1380.00 2130.00 2340.00 2400.00
- E 1450.00 650.00 1875.00 550.00 0.00 1650.00 1875.00 1950.00 725.00 2250.00
- F 1560.00 2130.00 2070.00 1240.00 1650.00 0.00 1680.00 1280.00 670.00 700.00
- G 1670.00 770.00 2115.00 1380.00 1875.00 1680.00 0.00 580.00 615.00 1950.00
- H 890.00 830.00 2310.00 2130.00 1950.00 1280.00 580.00 0.00 1120.00 1200.00
- I 1890.00 2670.00 835.00 2340.00 725.00 670.00 615.00 1120.00 0.00 1100.00
- J 950.00 2700.00 850.00 2400.00 2250.00 700.00 1950.00 1200.00 1100.00 0.00 ;
-
-param Demand:
- A B C D E F G H I J :=
- A 0 3.05 3.08 3.22 3.11 3.42 2.75 3.02 3.12 2.83
- B 3.05 0 3.35 3.12 3.07 3.29 3.28 3.03 3.09 2.83
- C 3.08 3.35 0 2.69 2.94 3.07 3.56 3.30 2.91 2.78
- D 3.22 3.12 2.69 0 3.26 3.20 3.26 3.28 3.08 3.06
- E 3.11 3.07 2.94 3.26 0 3.15 3.13 2.77 2.85 2.52
- F 3.42 3.29 3.07 3.20 3.15 0 3.26 2.56 2.98 3.12
- G 2.75 3.28 3.56 3.26 3.13 3.26 0 2.98 2.94 3.00
- H 3.02 3.03 3.30 3.28 2.77 2.56 2.98 0 3.42 3.27
- I 3.12 3.09 2.91 3.08 2.85 2.98 2.94 3.42 0 2.89
- J 2.83 2.83 2.78 3.06 2.52 3.12 3.00 3.27 2.89 0 ;
-
-param M := 174.88 ;
diff --git a/examples/pysp/networkflow/1ef10With5Bundles/Scenario7.dat b/examples/pysp/networkflow/1ef10With5Bundles/Scenario7.dat
deleted file mode 100755
index b6f15564ca5..00000000000
--- a/examples/pysp/networkflow/1ef10With5Bundles/Scenario7.dat
+++ /dev/null
@@ -1,97 +0,0 @@
-set Nodes := A B C D E F G H I J;
-
-set Arcs := (A,B) (B,A) (A,C) (C,A) (B,C) (C,B) (B,D) (D,B) (B,E) (E,B) (C,D) (D,C) (D,E) (E,D) (F,G) (G,F) (F,H) (H,F) (G,H) (H,G) (G,I) (I,G) (G,J) (J,G) (H,I) (I,H) (I,J) (J,I) (E,F) (F,E);
-
-param CapCost :=
-A B 112
-A C 123
-B C 116
-B D 128
-B E 130
-C D 112
-D E 110
-B A 112
-C A 123
-C B 116
-D B 128
-E B 130
-D C 112
-E D 110
-E F 110
-F E 110
-F G 112
-F H 128
-G H 116
-G I 123
-G J 130
-H I 112
-I J 110
-G F 112
-H F 128
-H G 116
-I G 123
-J G 130
-I H 112
-J I 110
-;
-
-param b0Cost :=
-A B 1120
-A C 1230
-B C 1160
-B D 1280
-B E 1300
-C D 1120
-D E 1100
-B A 1120
-C A 1230
-C B 1160
-D B 1280
-E B 1300
-D C 1120
-E D 1100
-E F 1100
-F E 1100
-F G 1120
-F H 1280
-G H 1160
-G I 1230
-G J 1300
-H I 1120
-I J 1100
-G F 1120
-H F 1280
-H G 1160
-I G 1230
-J G 1300
-I H 1120
-J I 1100
-;
-
-param FCost:
- A B C D E F G H I J :=
- A 0.00 560.00 615.00 2010.00 2175.00 2340.00 835.00 2670.00 1890.00 2850.00
- B 560.00 0.00 1740.00 640.00 650.00 1420.00 2310.00 830.00 890.00 900.00
- C 615.00 1740.00 0.00 560.00 1875.00 1380.00 2115.00 770.00 835.00 2550.00
- D 2010.00 640.00 560.00 0.00 1100.00 620.00 690.00 2130.00 780.00 2400.00
- E 2175.00 650.00 1875.00 1100.00 0.00 1100.00 625.00 650.00 1450.00 1500.00
- F 2340.00 1420.00 1380.00 620.00 1100.00 0.00 1680.00 1920.00 1340.00 700.00
- G 835.00 2310.00 2115.00 690.00 625.00 1680.00 0.00 1160.00 615.00 1300.00
- H 2670.00 830.00 770.00 2130.00 650.00 1920.00 1160.00 0.00 1120.00 600.00
- I 1890.00 890.00 835.00 780.00 1450.00 1340.00 615.00 1120.00 0.00 1650.00
- J 2850.00 900.00 2550.00 2400.00 1500.00 700.00 1300.00 600.00 1650.00 0.00 ;
-
-param Demand:
- A B C D E F G H I J :=
- A 0 3.61 3.36 3.68 3.32 2.85 3.30 3.51 3.25 3.36
- B 3.61 0 3.79 3.43 3.39 3.42 2.94 3.40 2.74 3.28
- C 3.36 3.79 0 3.26 2.72 2.91 3.11 2.98 3.10 3.38
- D 3.68 3.43 3.26 0 2.81 2.99 2.83 3.33 3.55 3.14
- E 3.32 3.39 2.72 2.81 0 3.28 2.96 2.88 3.55 3.02
- F 2.85 3.42 2.91 2.99 3.28 0 3.48 2.98 3.56 3.02
- G 3.30 2.94 3.11 2.83 2.96 3.48 0 3.33 3.38 3.24
- H 3.51 3.40 2.98 3.33 2.88 2.98 3.33 0 3.27 3.24
- I 3.25 2.74 3.10 3.55 3.55 3.56 3.38 3.27 0 2.78
- J 3.36 3.28 3.38 3.14 3.02 3.02 3.24 3.24 2.78 0 ;
-
-param M := 174.88 ;
diff --git a/examples/pysp/networkflow/1ef10With5Bundles/Scenario8.dat b/examples/pysp/networkflow/1ef10With5Bundles/Scenario8.dat
deleted file mode 100755
index c364cad58ff..00000000000
--- a/examples/pysp/networkflow/1ef10With5Bundles/Scenario8.dat
+++ /dev/null
@@ -1,97 +0,0 @@
-set Nodes := A B C D E F G H I J;
-
-set Arcs := (A,B) (B,A) (A,C) (C,A) (B,C) (C,B) (B,D) (D,B) (B,E) (E,B) (C,D) (D,C) (D,E) (E,D) (F,G) (G,F) (F,H) (H,F) (G,H) (H,G) (G,I) (I,G) (G,J) (J,G) (H,I) (I,H) (I,J) (J,I) (E,F) (F,E);
-
-param CapCost :=
-A B 112
-A C 123
-B C 116
-B D 128
-B E 130
-C D 112
-D E 110
-B A 112
-C A 123
-C B 116
-D B 128
-E B 130
-D C 112
-E D 110
-E F 110
-F E 110
-F G 112
-F H 128
-G H 116
-G I 123
-G J 130
-H I 112
-I J 110
-G F 112
-H F 128
-H G 116
-I G 123
-J G 130
-I H 112
-J I 110
-;
-
-param b0Cost :=
-A B 1120
-A C 1230
-B C 1160
-B D 1280
-B E 1300
-C D 1120
-D E 1100
-B A 1120
-C A 1230
-C B 1160
-D B 1280
-E B 1300
-D C 1120
-E D 1100
-E F 1100
-F E 1100
-F G 1120
-F H 1280
-G H 1160
-G I 1230
-G J 1300
-H I 1120
-I J 1100
-G F 1120
-H F 1280
-H G 1160
-I G 1230
-J G 1300
-I H 1120
-J I 1100
-;
-
-param FCost:
- A B C D E F G H I J :=
- A 0.00 1120.00 1230.00 670.00 1450.00 2340.00 835.00 1780.00 1890.00 1900.00
- B 1120.00 0.00 580.00 1920.00 1950.00 710.00 770.00 2490.00 1780.00 2700.00
- C 1230.00 580.00 0.00 560.00 1250.00 690.00 2115.00 1540.00 1670.00 2550.00
- D 670.00 1920.00 560.00 0.00 1650.00 1860.00 690.00 1420.00 780.00 800.00
- E 1450.00 1950.00 1250.00 1650.00 0.00 1100.00 1875.00 1950.00 725.00 2250.00
- F 2340.00 710.00 690.00 1860.00 1100.00 0.00 1120.00 1280.00 2010.00 1400.00
- G 835.00 770.00 2115.00 690.00 1875.00 1120.00 0.00 580.00 615.00 1950.00
- H 1780.00 2490.00 1540.00 1420.00 1950.00 1280.00 580.00 0.00 1120.00 1200.00
- I 1890.00 1780.00 1670.00 780.00 725.00 2010.00 615.00 1120.00 0.00 550.00
- J 1900.00 2700.00 2550.00 800.00 2250.00 1400.00 1950.00 1200.00 550.00 0.00 ;
-
-param Demand:
- A B C D E F G H I J :=
- A 0 3.08 3.52 3.34 2.96 3.24 2.91 3.29 3.32 2.92
- B 3.08 0 2.89 3.04 3.03 2.91 2.87 3.30 3.20 2.90
- C 3.52 2.89 0 3.28 2.81 3.26 3.17 3.42 2.78 3.21
- D 3.34 3.04 3.28 0 3.00 3.00 2.85 2.59 3.36 3.19
- E 2.96 3.03 2.81 3.00 0 2.95 3.09 2.99 2.74 2.89
- F 3.24 2.91 3.26 3.00 2.95 0 2.91 2.95 2.87 3.21
- G 2.91 2.87 3.17 2.85 3.09 2.91 0 2.90 3.16 3.11
- H 3.29 3.30 3.42 2.59 2.99 2.95 2.90 0 3.19 2.81
- I 3.32 3.20 2.78 3.36 2.74 2.87 3.16 3.19 0 2.43
- J 2.92 2.90 3.21 3.19 2.89 3.21 3.11 2.81 2.43 0 ;
-
-param M := 174.88 ;
diff --git a/examples/pysp/networkflow/1ef10With5Bundles/Scenario9.dat b/examples/pysp/networkflow/1ef10With5Bundles/Scenario9.dat
deleted file mode 100755
index 23a104d0791..00000000000
--- a/examples/pysp/networkflow/1ef10With5Bundles/Scenario9.dat
+++ /dev/null
@@ -1,97 +0,0 @@
-set Nodes := A B C D E F G H I J;
-
-set Arcs := (A,B) (B,A) (A,C) (C,A) (B,C) (C,B) (B,D) (D,B) (B,E) (E,B) (C,D) (D,C) (D,E) (E,D) (F,G) (G,F) (F,H) (H,F) (G,H) (H,G) (G,I) (I,G) (G,J) (J,G) (H,I) (I,H) (I,J) (J,I) (E,F) (F,E);
-
-param CapCost :=
-A B 112
-A C 123
-B C 116
-B D 128
-B E 130
-C D 112
-D E 110
-B A 112
-C A 123
-C B 116
-D B 128
-E B 130
-D C 112
-E D 110
-E F 110
-F E 110
-F G 112
-F H 128
-G H 116
-G I 123
-G J 130
-H I 112
-I J 110
-G F 112
-H F 128
-H G 116
-I G 123
-J G 130
-I H 112
-J I 110
-;
-
-param b0Cost :=
-A B 1120
-A C 1230
-B C 1160
-B D 1280
-B E 1300
-C D 1120
-D E 1100
-B A 1120
-C A 1230
-C B 1160
-D B 1280
-E B 1300
-D C 1120
-E D 1100
-E F 1100
-F E 1100
-F G 1120
-F H 1280
-G H 1160
-G I 1230
-G J 1300
-H I 1120
-I J 1100
-G F 1120
-H F 1280
-H G 1160
-I G 1230
-J G 1300
-I H 1120
-J I 1100
-;
-
-param FCost:
- A B C D E F G H I J :=
- A 0.00 560.00 615.00 1340.00 2175.00 780.00 1670.00 1780.00 1890.00 950.00
- B 560.00 0.00 1740.00 640.00 650.00 2130.00 1540.00 830.00 1780.00 2700.00
- C 615.00 1740.00 0.00 1680.00 625.00 690.00 1410.00 1540.00 835.00 1700.00
- D 1340.00 640.00 1680.00 0.00 1100.00 620.00 690.00 1420.00 1560.00 1600.00
- E 2175.00 650.00 625.00 1100.00 0.00 1650.00 1875.00 1950.00 2175.00 1500.00
- F 780.00 2130.00 690.00 620.00 1650.00 0.00 560.00 1280.00 1340.00 1400.00
- G 1670.00 1540.00 1410.00 690.00 1875.00 560.00 0.00 1160.00 1230.00 650.00
- H 1780.00 830.00 1540.00 1420.00 1950.00 1280.00 1160.00 0.00 1120.00 1800.00
- I 1890.00 1780.00 835.00 1560.00 2175.00 1340.00 1230.00 1120.00 0.00 550.00
- J 950.00 2700.00 1700.00 1600.00 1500.00 1400.00 650.00 1800.00 550.00 0.00 ;
-
-param Demand:
- A B C D E F G H I J :=
- A 0 3.44 3.42 3.55 3.18 3.71 3.79 3.88 3.76 3.38
- B 3.44 0 3.57 3.60 3.34 3.40 3.61 3.06 3.28 3.29
- C 3.42 3.57 0 3.22 3.36 3.63 3.47 3.73 3.06 3.33
- D 3.55 3.60 3.22 0 3.34 3.15 3.81 3.67 3.29 3.34
- E 3.18 3.34 3.36 3.34 0 3.59 3.35 3.30 3.19 3.28
- F 3.71 3.40 3.63 3.15 3.59 0 3.53 3.33 3.91 3.66
- G 3.79 3.61 3.47 3.81 3.35 3.53 0 3.73 3.35 3.66
- H 3.88 3.06 3.73 3.67 3.30 3.33 3.73 0 3.48 3.31
- I 3.76 3.28 3.06 3.29 3.19 3.91 3.35 3.48 0 3.52
- J 3.38 3.29 3.33 3.34 3.28 3.66 3.66 3.31 3.52 0 ;
-
-param M := 174.88 ;
diff --git a/examples/pysp/networkflow/1ef10With5Bundles/ScenarioStructure.dat b/examples/pysp/networkflow/1ef10With5Bundles/ScenarioStructure.dat
deleted file mode 100644
index 6c6b4efc598..00000000000
--- a/examples/pysp/networkflow/1ef10With5Bundles/ScenarioStructure.dat
+++ /dev/null
@@ -1,94 +0,0 @@
-# IMPORTANT - THE STAGES ARE ASSUMED TO BE IN TIME-ORDER.
-
-set Stages := FirstStage SecondStage ;
-
-set Nodes := RootNode
- Scenario1Node
- Scenario2Node
- Scenario3Node
- Scenario4Node
- Scenario5Node
- Scenario6Node
- Scenario7Node
- Scenario8Node
- Scenario9Node
- Scenario10Node ;
-
-param NodeStage := RootNode FirstStage
- Scenario1Node SecondStage
- Scenario2Node SecondStage
- Scenario3Node SecondStage
- Scenario4Node SecondStage
- Scenario5Node SecondStage
- Scenario6Node SecondStage
- Scenario7Node SecondStage
- Scenario8Node SecondStage
- Scenario9Node SecondStage
- Scenario10Node SecondStage ;
-
-set Children[RootNode] := Scenario1Node
- Scenario2Node
- Scenario3Node
- Scenario4Node
- Scenario5Node
- Scenario6Node
- Scenario7Node
- Scenario8Node
- Scenario9Node
- Scenario10Node ;
-
-param ConditionalProbability := RootNode 1.0
- Scenario1Node 0.1
- Scenario2Node 0.1
- Scenario3Node 0.1
- Scenario4Node 0.1
- Scenario5Node 0.1
- Scenario6Node 0.1
- Scenario7Node 0.1
- Scenario8Node 0.1
- Scenario9Node 0.1
- Scenario10Node 0.1 ;
-
-set Scenarios := Scenario1
- Scenario2
- Scenario3
- Scenario4
- Scenario5
- Scenario6
- Scenario7
- Scenario8
- Scenario9
- Scenario10 ;
-
-param ScenarioLeafNode := Scenario1 Scenario1Node
- Scenario2 Scenario2Node
- Scenario3 Scenario3Node
- Scenario4 Scenario4Node
- Scenario5 Scenario5Node
- Scenario6 Scenario6Node
- Scenario7 Scenario7Node
- Scenario8 Scenario8Node
- Scenario9 Scenario9Node
- Scenario10 Scenario10Node ;
-
-set StageVariables[FirstStage] := b0[*,*]
- x[*,*] ;
-set StageVariables[SecondStage] := b[*,*]
- y[*,*,*,*] ;
-
-param StageCost := FirstStage FirstStageCost
- SecondStage SecondStageCost ;
-
-param Bundling := True ;
-
-set Bundles := Bundle1
-Bundle2
-Bundle3
-Bundle4
-Bundle5 ;
-
-set BundleScenarios[Bundle1] := Scenario1 Scenario2 ;
-set BundleScenarios[Bundle2] := Scenario3 Scenario4 ;
-set BundleScenarios[Bundle3] := Scenario5 Scenario6 ;
-set BundleScenarios[Bundle4] := Scenario7 Scenario8 ;
-set BundleScenarios[Bundle5] := Scenario9 Scenario10 ;
diff --git a/examples/pysp/networkflow/1ef10db/1ef10.sql b/examples/pysp/networkflow/1ef10db/1ef10.sql
deleted file mode 100644
index 20f11782eec..00000000000
--- a/examples/pysp/networkflow/1ef10db/1ef10.sql
+++ /dev/null
@@ -1,84 +0,0 @@
---
--- MySQL data file for Network Flow 1ef10
--- Generated Tue Jul 12 11:32:21 -0600 2011
---
-
-drop table if exists Demand;
-drop table if exists FCost;
-drop table if exists b0Cost;
-drop table if exists CapCost;
-drop table if exists Arcs;
-drop table if exists Nodes;
-
-create table Nodes ( name varchar(16) not null default '', primary key (name) ) engine=innodb;
-insert into Nodes values ('A'),('B'),('C'),('D'),('E'),('F'),('G'),('H'),('I'),('J');
-
-create table Arcs (
- first varchar(16) not null,
- second varchar(16) not null,
- primary key (first, second),
- foreign key (first) references Nodes (name),
- foreign key (second) references Nodes (name)
- ) engine=innodb ;
-insert into Arcs values ('A','B'),('B','A'),('A','C'),('C','A'),('B','C'),('C','B'),('B','D'),('D','B'),('B','E'),('E','B'),('C','D'),('D','C'),('D','E'),('E','D'),('F','G'),('G','F'),('F','H'),('H','F'),('G','H'),('H','G'),('G','I'),('I','G'),('G','J'),('J','G'),('H','I'),('I','H'),('I','J'),('J','I'),('E','F'),('F','E');
-
-create table CapCost (
- first varchar(16) not null,
- second varchar(16) not null,
- cost int not null,
- primary key (first, second),
- foreign key (first, second) references Arcs (first, second)
- ) engine=innodb ;
-insert into CapCost values ('A','B','112'),('A','C','123'),('B','C','116'),('B','D','128'),('B','E','130'),('C','D','112'),('D','E','110'),('B','A','112'),('C','A','123'),('C','B','116'),('D','B','128'),('E','B','130'),('D','C','112'),('E','D','110'),('E','F','110'),('F','E','110'),('F','G','112'),('F','H','128'),('G','H','116'),('G','I','123'),('G','J','130'),('H','I','112'),('I','J','110'),('G','F','112'),('H','F','128'),('H','G','116'),('I','G','123'),('J','G','130'),('I','H','112'),('J','I','110');
-
-create table b0Cost (
- first varchar(16) not null,
- second varchar(16) not null,
- cost int not null,
- primary key (first, second),
- foreign key (first, second) references Arcs (first, second)
- ) engine=innodb ;
-insert into b0Cost values ('A','B','1120'),('A','C','1230'),('B','C','1160'),('B','D','1280'),('B','E','1300'),('C','D','1120'),('D','E','1100'),('B','A','1120'),('C','A','1230'),('C','B','1160'),('D','B','1280'),('E','B','1300'),('D','C','1120'),('E','D','1100'),('E','F','1100'),('F','E','1100'),('F','G','1120'),('F','H','1280'),('G','H','1160'),('G','I','1230'),('G','J','1300'),('H','I','1120'),('I','J','1100'),('G','F','1120'),('H','F','1280'),('H','G','1160'),('I','G','1230'),('J','G','1300'),('I','H','1120'),('J','I','1100');
-
-create table FCost (
- scenario int not null default 0,
- first varchar(16) not null,
- second varchar(16) not null,
- cost float not null,
- primary key (scenario, first, second),
- foreign key (first) references Nodes (name),
- foreign key (second) references Nodes (name)
- ) engine=innodb ;
-insert into FCost values ('1','A','A','0.00'),('1','A','B','560.00'),('1','A','C','1845.00'),('1','A','D','2010.00'),('1','A','E','2175.00'),('1','A','F','1560.00'),('1','A','G','1670.00'),('1','A','H','1780.00'),('1','A','I','2835.00'),('1','A','J','950.00'),('1','B','A','560.00'),('1','B','B','0.00'),('1','B','C','1740.00'),('1','B','D','640.00'),('1','B','E','650.00'),('1','B','F','1420.00'),('1','B','G','2310.00'),('1','B','H','1660.00'),('1','B','I','890.00'),('1','B','J','900.00'),('1','C','A','1845.00'),('1','C','B','1740.00'),('1','C','C','0.00'),('1','C','D','1680.00'),('1','C','E','1250.00'),('1','C','F','2070.00'),('1','C','G','705.00'),('1','C','H','1540.00'),('1','C','I','835.00'),('1','C','J','1700.00'),('1','D','A','2010.00'),('1','D','B','640.00'),('1','D','C','1680.00'),('1','D','D','0.00'),('1','D','E','1100.00'),('1','D','F','1860.00'),('1','D','G','690.00'),('1','D','H','710.00'),('1','D','I','2340.00'),('1','D','J','1600.00'),('1','E','A','2175.00'),('1','E','B','650.00'),('1','E','C','1250.00'),('1','E','D','1100.00'),('1','E','E','0.00'),('1','E','F','1100.00'),('1','E','G','1875.00'),('1','E','H','1300.00'),('1','E','I','2175.00'),('1','E','J','1500.00'),('1','F','A','1560.00'),('1','F','B','1420.00'),('1','F','C','2070.00'),('1','F','D','1860.00'),('1','F','E','1100.00'),('1','F','F','0.00'),('1','F','G','560.00'),('1','F','H','640.00'),('1','F','I','2010.00'),('1','F','J','700.00'),('1','G','A','1670.00'),('1','G','B','2310.00'),('1','G','C','705.00'),('1','G','D','690.00'),('1','G','E','1875.00'),('1','G','F','560.00'),('1','G','G','0.00'),('1','G','H','1740.00'),('1','G','I','615.00'),('1','G','J','1950.00'),('1','H','A','1780.00'),('1','H','B','1660.00'),('1','H','C','1540.00'),('1','H','D','710.00'),('1','H','E','1300.00'),('1','H','F','640.00'),('1','H','G','1740.00'),('1','H','H','0.00'),('1','H','I','560.00'),('1','H','J','600.00'),('1','I','A','2835.00'),('1','I','B','890.00'),('1','I','C','835.00'),('1','I','D','2340.00'),('1','I','E','2175.00'),('1','I','F','2010.00'),('1','I','G','615.00'),('1','I','H','560.00'),('1','I','I','0.00'),('1','I','J','550.00'),('1','J','A','950.00'),('1','J','B','900.00'),('1','J','C','1700.00'),('1','J','D','1600.00'),('1','J','E','1500.00'),('1','J','F','700.00'),('1','J','G','1950.00'),('1','J','H','600.00'),('1','J','I','550.00'),('1','J','J','0.00');
-insert into FCost values ('2','A','A','0.00'),('2','A','B','560.00'),('2','A','C','1230.00'),('2','A','D','1340.00'),('2','A','E','2175.00'),('2','A','F','2340.00'),('2','A','G','2505.00'),('2','A','H','890.00'),('2','A','I','2835.00'),('2','A','J','1900.00'),('2','B','A','560.00'),('2','B','B','0.00'),('2','B','C','1160.00'),('2','B','D','640.00'),('2','B','E','1950.00'),('2','B','F','710.00'),('2','B','G','1540.00'),('2','B','H','830.00'),('2','B','I','890.00'),('2','B','J','1800.00'),('2','C','A','1230.00'),('2','C','B','1160.00'),('2','C','C','0.00'),('2','C','D','1120.00'),('2','C','E','1250.00'),('2','C','F','690.00'),('2','C','G','705.00'),('2','C','H','1540.00'),('2','C','I','835.00'),('2','C','J','1700.00'),('2','D','A','1340.00'),('2','D','B','640.00'),('2','D','C','1120.00'),('2','D','D','0.00'),('2','D','E','550.00'),('2','D','F','1860.00'),('2','D','G','1380.00'),('2','D','H','710.00'),('2','D','I','1560.00'),('2','D','J','800.00'),('2','E','A','2175.00'),('2','E','B','1950.00'),('2','E','C','1250.00'),('2','E','D','550.00'),('2','E','E','0.00'),('2','E','F','1650.00'),('2','E','G','1875.00'),('2','E','H','650.00'),('2','E','I','1450.00'),('2','E','J','750.00'),('2','F','A','2340.00'),('2','F','B','710.00'),('2','F','C','690.00'),('2','F','D','1860.00'),('2','F','E','1650.00'),('2','F','F','0.00'),('2','F','G','1680.00'),('2','F','H','640.00'),('2','F','I','1340.00'),('2','F','J','2100.00'),('2','G','A','2505.00'),('2','G','B','1540.00'),('2','G','C','705.00'),('2','G','D','1380.00'),('2','G','E','1875.00'),('2','G','F','1680.00'),('2','G','G','0.00'),('2','G','H','1160.00'),('2','G','I','1230.00'),('2','G','J','650.00'),('2','H','A','890.00'),('2','H','B','830.00'),('2','H','C','1540.00'),('2','H','D','710.00'),('2','H','E','650.00'),('2','H','F','640.00'),('2','H','G','1160.00'),('2','H','H','0.00'),('2','H','I','1120.00'),('2','H','J','1800.00'),('2','I','A','2835.00'),('2','I','B','890.00'),('2','I','C','835.00'),('2','I','D','1560.00'),('2','I','E','1450.00'),('2','I','F','1340.00'),('2','I','G','1230.00'),('2','I','H','1120.00'),('2','I','I','0.00'),('2','I','J','550.00'),('2','J','A','1900.00'),('2','J','B','1800.00'),('2','J','C','1700.00'),('2','J','D','800.00'),('2','J','E','750.00'),('2','J','F','2100.00'),('2','J','G','650.00'),('2','J','H','1800.00'),('2','J','I','550.00'),('2','J','J','0.00');
-insert into FCost values ('3','A','A','0.00'),('3','A','B','1120.00'),('3','A','C','1230.00'),('3','A','D','670.00'),('3','A','E','1450.00'),('3','A','F','1560.00'),('3','A','G','835.00'),('3','A','H','1780.00'),('3','A','I','1890.00'),('3','A','J','1900.00'),('3','B','A','1120.00'),('3','B','B','0.00'),('3','B','C','1160.00'),('3','B','D','1920.00'),('3','B','E','650.00'),('3','B','F','710.00'),('3','B','G','770.00'),('3','B','H','2490.00'),('3','B','I','2670.00'),('3','B','J','1800.00'),('3','C','A','1230.00'),('3','C','B','1160.00'),('3','C','C','0.00'),('3','C','D','560.00'),('3','C','E','1875.00'),('3','C','F','690.00'),('3','C','G','2115.00'),('3','C','H','2310.00'),('3','C','I','835.00'),('3','C','J','2550.00'),('3','D','A','670.00'),('3','D','B','1920.00'),('3','D','C','560.00'),('3','D','D','0.00'),('3','D','E','1100.00'),('3','D','F','1240.00'),('3','D','G','1380.00'),('3','D','H','710.00'),('3','D','I','1560.00'),('3','D','J','1600.00'),('3','E','A','1450.00'),('3','E','B','650.00'),('3','E','C','1875.00'),('3','E','D','1100.00'),('3','E','E','0.00'),('3','E','F','1650.00'),('3','E','G','625.00'),('3','E','H','1300.00'),('3','E','I','725.00'),('3','E','J','750.00'),('3','F','A','1560.00'),('3','F','B','710.00'),('3','F','C','690.00'),('3','F','D','1240.00'),('3','F','E','1650.00'),('3','F','F','0.00'),('3','F','G','1120.00'),('3','F','H','1280.00'),('3','F','I','670.00'),('3','F','J','700.00'),('3','G','A','835.00'),('3','G','B','770.00'),('3','G','C','2115.00'),('3','G','D','1380.00'),('3','G','E','625.00'),('3','G','F','1120.00'),('3','G','G','0.00'),('3','G','H','1740.00'),('3','G','I','615.00'),('3','G','J','1950.00'),('3','H','A','1780.00'),('3','H','B','2490.00'),('3','H','C','2310.00'),('3','H','D','710.00'),('3','H','E','1300.00'),('3','H','F','1280.00'),('3','H','G','1740.00'),('3','H','H','0.00'),('3','H','I','1680.00'),('3','H','J','1800.00'),('3','I','A','1890.00'),('3','I','B','2670.00'),('3','I','C','835.00'),('3','I','D','1560.00'),('3','I','E','725.00'),('3','I','F','670.00'),('3','I','G','615.00'),('3','I','H','1680.00'),('3','I','I','0.00'),('3','I','J','1650.00'),('3','J','A','1900.00'),('3','J','B','1800.00'),('3','J','C','2550.00'),('3','J','D','1600.00'),('3','J','E','750.00'),('3','J','F','700.00'),('3','J','G','1950.00'),('3','J','H','1800.00'),('3','J','I','1650.00'),('3','J','J','0.00');
-insert into FCost values ('4','A','A','0.00'),('4','A','B','1120.00'),('4','A','C','1230.00'),('4','A','D','670.00'),('4','A','E','1450.00'),('4','A','F','2340.00'),('4','A','G','2505.00'),('4','A','H','890.00'),('4','A','I','1890.00'),('4','A','J','950.00'),('4','B','A','1120.00'),('4','B','B','0.00'),('4','B','C','1160.00'),('4','B','D','1920.00'),('4','B','E','1950.00'),('4','B','F','1420.00'),('4','B','G','770.00'),('4','B','H','1660.00'),('4','B','I','890.00'),('4','B','J','1800.00'),('4','C','A','1230.00'),('4','C','B','1160.00'),('4','C','C','0.00'),('4','C','D','1120.00'),('4','C','E','1875.00'),('4','C','F','690.00'),('4','C','G','1410.00'),('4','C','H','770.00'),('4','C','I','1670.00'),('4','C','J','2550.00'),('4','D','A','670.00'),('4','D','B','1920.00'),('4','D','C','1120.00'),('4','D','D','0.00'),('4','D','E','550.00'),('4','D','F','620.00'),('4','D','G','690.00'),('4','D','H','2130.00'),('4','D','I','780.00'),('4','D','J','800.00'),('4','E','A','1450.00'),('4','E','B','1950.00'),('4','E','C','1875.00'),('4','E','D','550.00'),('4','E','E','0.00'),('4','E','F','1100.00'),('4','E','G','1875.00'),('4','E','H','1950.00'),('4','E','I','725.00'),('4','E','J','1500.00'),('4','F','A','2340.00'),('4','F','B','1420.00'),('4','F','C','690.00'),('4','F','D','620.00'),('4','F','E','1100.00'),('4','F','F','0.00'),('4','F','G','560.00'),('4','F','H','1920.00'),('4','F','I','2010.00'),('4','F','J','700.00'),('4','G','A','2505.00'),('4','G','B','770.00'),('4','G','C','1410.00'),('4','G','D','690.00'),('4','G','E','1875.00'),('4','G','F','560.00'),('4','G','G','0.00'),('4','G','H','1160.00'),('4','G','I','1230.00'),('4','G','J','1950.00'),('4','H','A','890.00'),('4','H','B','1660.00'),('4','H','C','770.00'),('4','H','D','2130.00'),('4','H','E','1950.00'),('4','H','F','1920.00'),('4','H','G','1160.00'),('4','H','H','0.00'),('4','H','I','560.00'),('4','H','J','1800.00'),('4','I','A','1890.00'),('4','I','B','890.00'),('4','I','C','1670.00'),('4','I','D','780.00'),('4','I','E','725.00'),('4','I','F','2010.00'),('4','I','G','1230.00'),('4','I','H','560.00'),('4','I','I','0.00'),('4','I','J','1650.00'),('4','J','A','950.00'),('4','J','B','1800.00'),('4','J','C','2550.00'),('4','J','D','800.00'),('4','J','E','1500.00'),('4','J','F','700.00'),('4','J','G','1950.00'),('4','J','H','1800.00'),('4','J','I','1650.00'),('4','J','J','0.00');
-insert into FCost values ('5','A','A','0.00'),('5','A','B','1680.00'),('5','A','C','1230.00'),('5','A','D','670.00'),('5','A','E','1450.00'),('5','A','F','2340.00'),('5','A','G','2505.00'),('5','A','H','2670.00'),('5','A','I','2835.00'),('5','A','J','2850.00'),('5','B','A','1680.00'),('5','B','B','0.00'),('5','B','C','1740.00'),('5','B','D','640.00'),('5','B','E','1950.00'),('5','B','F','2130.00'),('5','B','G','770.00'),('5','B','H','1660.00'),('5','B','I','890.00'),('5','B','J','2700.00'),('5','C','A','1230.00'),('5','C','B','1740.00'),('5','C','C','0.00'),('5','C','D','560.00'),('5','C','E','1875.00'),('5','C','F','2070.00'),('5','C','G','2115.00'),('5','C','H','770.00'),('5','C','I','2505.00'),('5','C','J','1700.00'),('5','D','A','670.00'),('5','D','B','640.00'),('5','D','C','560.00'),('5','D','D','0.00'),('5','D','E','550.00'),('5','D','F','620.00'),('5','D','G','1380.00'),('5','D','H','1420.00'),('5','D','I','1560.00'),('5','D','J','1600.00'),('5','E','A','1450.00'),('5','E','B','1950.00'),('5','E','C','1875.00'),('5','E','D','550.00'),('5','E','E','0.00'),('5','E','F','550.00'),('5','E','G','625.00'),('5','E','H','1950.00'),('5','E','I','2175.00'),('5','E','J','1500.00'),('5','F','A','2340.00'),('5','F','B','2130.00'),('5','F','C','2070.00'),('5','F','D','620.00'),('5','F','E','550.00'),('5','F','F','0.00'),('5','F','G','1120.00'),('5','F','H','1280.00'),('5','F','I','1340.00'),('5','F','J','1400.00'),('5','G','A','2505.00'),('5','G','B','770.00'),('5','G','C','2115.00'),('5','G','D','1380.00'),('5','G','E','625.00'),('5','G','F','1120.00'),('5','G','G','0.00'),('5','G','H','1740.00'),('5','G','I','615.00'),('5','G','J','1950.00'),('5','H','A','2670.00'),('5','H','B','1660.00'),('5','H','C','770.00'),('5','H','D','1420.00'),('5','H','E','1950.00'),('5','H','F','1280.00'),('5','H','G','1740.00'),('5','H','H','0.00'),('5','H','I','560.00'),('5','H','J','600.00'),('5','I','A','2835.00'),('5','I','B','890.00'),('5','I','C','2505.00'),('5','I','D','1560.00'),('5','I','E','2175.00'),('5','I','F','1340.00'),('5','I','G','615.00'),('5','I','H','560.00'),('5','I','I','0.00'),('5','I','J','1650.00'),('5','J','A','2850.00'),('5','J','B','2700.00'),('5','J','C','1700.00'),('5','J','D','1600.00'),('5','J','E','1500.00'),('5','J','F','1400.00'),('5','J','G','1950.00'),('5','J','H','600.00'),('5','J','I','1650.00'),('5','J','J','0.00');
-insert into FCost values ('6','A','A','0.00'),('6','A','B','1120.00'),('6','A','C','1230.00'),('6','A','D','1340.00'),('6','A','E','1450.00'),('6','A','F','1560.00'),('6','A','G','1670.00'),('6','A','H','890.00'),('6','A','I','1890.00'),('6','A','J','950.00'),('6','B','A','1120.00'),('6','B','B','0.00'),('6','B','C','1740.00'),('6','B','D','1920.00'),('6','B','E','650.00'),('6','B','F','2130.00'),('6','B','G','770.00'),('6','B','H','830.00'),('6','B','I','2670.00'),('6','B','J','2700.00'),('6','C','A','1230.00'),('6','C','B','1740.00'),('6','C','C','0.00'),('6','C','D','1680.00'),('6','C','E','1875.00'),('6','C','F','2070.00'),('6','C','G','2115.00'),('6','C','H','2310.00'),('6','C','I','835.00'),('6','C','J','850.00'),('6','D','A','1340.00'),('6','D','B','1920.00'),('6','D','C','1680.00'),('6','D','D','0.00'),('6','D','E','550.00'),('6','D','F','1240.00'),('6','D','G','1380.00'),('6','D','H','2130.00'),('6','D','I','2340.00'),('6','D','J','2400.00'),('6','E','A','1450.00'),('6','E','B','650.00'),('6','E','C','1875.00'),('6','E','D','550.00'),('6','E','E','0.00'),('6','E','F','1650.00'),('6','E','G','1875.00'),('6','E','H','1950.00'),('6','E','I','725.00'),('6','E','J','2250.00'),('6','F','A','1560.00'),('6','F','B','2130.00'),('6','F','C','2070.00'),('6','F','D','1240.00'),('6','F','E','1650.00'),('6','F','F','0.00'),('6','F','G','1680.00'),('6','F','H','1280.00'),('6','F','I','670.00'),('6','F','J','700.00'),('6','G','A','1670.00'),('6','G','B','770.00'),('6','G','C','2115.00'),('6','G','D','1380.00'),('6','G','E','1875.00'),('6','G','F','1680.00'),('6','G','G','0.00'),('6','G','H','580.00'),('6','G','I','615.00'),('6','G','J','1950.00'),('6','H','A','890.00'),('6','H','B','830.00'),('6','H','C','2310.00'),('6','H','D','2130.00'),('6','H','E','1950.00'),('6','H','F','1280.00'),('6','H','G','580.00'),('6','H','H','0.00'),('6','H','I','1120.00'),('6','H','J','1200.00'),('6','I','A','1890.00'),('6','I','B','2670.00'),('6','I','C','835.00'),('6','I','D','2340.00'),('6','I','E','725.00'),('6','I','F','670.00'),('6','I','G','615.00'),('6','I','H','1120.00'),('6','I','I','0.00'),('6','I','J','1100.00'),('6','J','A','950.00'),('6','J','B','2700.00'),('6','J','C','850.00'),('6','J','D','2400.00'),('6','J','E','2250.00'),('6','J','F','700.00'),('6','J','G','1950.00'),('6','J','H','1200.00'),('6','J','I','1100.00'),('6','J','J','0.00');
-insert into FCost values ('7','A','A','0.00'),('7','A','B','560.00'),('7','A','C','615.00'),('7','A','D','2010.00'),('7','A','E','2175.00'),('7','A','F','2340.00'),('7','A','G','835.00'),('7','A','H','2670.00'),('7','A','I','1890.00'),('7','A','J','2850.00'),('7','B','A','560.00'),('7','B','B','0.00'),('7','B','C','1740.00'),('7','B','D','640.00'),('7','B','E','650.00'),('7','B','F','1420.00'),('7','B','G','2310.00'),('7','B','H','830.00'),('7','B','I','890.00'),('7','B','J','900.00'),('7','C','A','615.00'),('7','C','B','1740.00'),('7','C','C','0.00'),('7','C','D','560.00'),('7','C','E','1875.00'),('7','C','F','1380.00'),('7','C','G','2115.00'),('7','C','H','770.00'),('7','C','I','835.00'),('7','C','J','2550.00'),('7','D','A','2010.00'),('7','D','B','640.00'),('7','D','C','560.00'),('7','D','D','0.00'),('7','D','E','1100.00'),('7','D','F','620.00'),('7','D','G','690.00'),('7','D','H','2130.00'),('7','D','I','780.00'),('7','D','J','2400.00'),('7','E','A','2175.00'),('7','E','B','650.00'),('7','E','C','1875.00'),('7','E','D','1100.00'),('7','E','E','0.00'),('7','E','F','1100.00'),('7','E','G','625.00'),('7','E','H','650.00'),('7','E','I','1450.00'),('7','E','J','1500.00'),('7','F','A','2340.00'),('7','F','B','1420.00'),('7','F','C','1380.00'),('7','F','D','620.00'),('7','F','E','1100.00'),('7','F','F','0.00'),('7','F','G','1680.00'),('7','F','H','1920.00'),('7','F','I','1340.00'),('7','F','J','700.00'),('7','G','A','835.00'),('7','G','B','2310.00'),('7','G','C','2115.00'),('7','G','D','690.00'),('7','G','E','625.00'),('7','G','F','1680.00'),('7','G','G','0.00'),('7','G','H','1160.00'),('7','G','I','615.00'),('7','G','J','1300.00'),('7','H','A','2670.00'),('7','H','B','830.00'),('7','H','C','770.00'),('7','H','D','2130.00'),('7','H','E','650.00'),('7','H','F','1920.00'),('7','H','G','1160.00'),('7','H','H','0.00'),('7','H','I','1120.00'),('7','H','J','600.00'),('7','I','A','1890.00'),('7','I','B','890.00'),('7','I','C','835.00'),('7','I','D','780.00'),('7','I','E','1450.00'),('7','I','F','1340.00'),('7','I','G','615.00'),('7','I','H','1120.00'),('7','I','I','0.00'),('7','I','J','1650.00'),('7','J','A','2850.00'),('7','J','B','900.00'),('7','J','C','2550.00'),('7','J','D','2400.00'),('7','J','E','1500.00'),('7','J','F','700.00'),('7','J','G','1300.00'),('7','J','H','600.00'),('7','J','I','1650.00'),('7','J','J','0.00');
-insert into FCost values ('8','A','A','0.00'),('8','A','B','1120.00'),('8','A','C','1230.00'),('8','A','D','670.00'),('8','A','E','1450.00'),('8','A','F','2340.00'),('8','A','G','835.00'),('8','A','H','1780.00'),('8','A','I','1890.00'),('8','A','J','1900.00'),('8','B','A','1120.00'),('8','B','B','0.00'),('8','B','C','580.00'),('8','B','D','1920.00'),('8','B','E','1950.00'),('8','B','F','710.00'),('8','B','G','770.00'),('8','B','H','2490.00'),('8','B','I','1780.00'),('8','B','J','2700.00'),('8','C','A','1230.00'),('8','C','B','580.00'),('8','C','C','0.00'),('8','C','D','560.00'),('8','C','E','1250.00'),('8','C','F','690.00'),('8','C','G','2115.00'),('8','C','H','1540.00'),('8','C','I','1670.00'),('8','C','J','2550.00'),('8','D','A','670.00'),('8','D','B','1920.00'),('8','D','C','560.00'),('8','D','D','0.00'),('8','D','E','1650.00'),('8','D','F','1860.00'),('8','D','G','690.00'),('8','D','H','1420.00'),('8','D','I','780.00'),('8','D','J','800.00'),('8','E','A','1450.00'),('8','E','B','1950.00'),('8','E','C','1250.00'),('8','E','D','1650.00'),('8','E','E','0.00'),('8','E','F','1100.00'),('8','E','G','1875.00'),('8','E','H','1950.00'),('8','E','I','725.00'),('8','E','J','2250.00'),('8','F','A','2340.00'),('8','F','B','710.00'),('8','F','C','690.00'),('8','F','D','1860.00'),('8','F','E','1100.00'),('8','F','F','0.00'),('8','F','G','1120.00'),('8','F','H','1280.00'),('8','F','I','2010.00'),('8','F','J','1400.00'),('8','G','A','835.00'),('8','G','B','770.00'),('8','G','C','2115.00'),('8','G','D','690.00'),('8','G','E','1875.00'),('8','G','F','1120.00'),('8','G','G','0.00'),('8','G','H','580.00'),('8','G','I','615.00'),('8','G','J','1950.00'),('8','H','A','1780.00'),('8','H','B','2490.00'),('8','H','C','1540.00'),('8','H','D','1420.00'),('8','H','E','1950.00'),('8','H','F','1280.00'),('8','H','G','580.00'),('8','H','H','0.00'),('8','H','I','1120.00'),('8','H','J','1200.00'),('8','I','A','1890.00'),('8','I','B','1780.00'),('8','I','C','1670.00'),('8','I','D','780.00'),('8','I','E','725.00'),('8','I','F','2010.00'),('8','I','G','615.00'),('8','I','H','1120.00'),('8','I','I','0.00'),('8','I','J','550.00'),('8','J','A','1900.00'),('8','J','B','2700.00'),('8','J','C','2550.00'),('8','J','D','800.00'),('8','J','E','2250.00'),('8','J','F','1400.00'),('8','J','G','1950.00'),('8','J','H','1200.00'),('8','J','I','550.00'),('8','J','J','0.00');
-insert into FCost values ('9','A','A','0.00'),('9','A','B','560.00'),('9','A','C','615.00'),('9','A','D','1340.00'),('9','A','E','2175.00'),('9','A','F','780.00'),('9','A','G','1670.00'),('9','A','H','1780.00'),('9','A','I','1890.00'),('9','A','J','950.00'),('9','B','A','560.00'),('9','B','B','0.00'),('9','B','C','1740.00'),('9','B','D','640.00'),('9','B','E','650.00'),('9','B','F','2130.00'),('9','B','G','1540.00'),('9','B','H','830.00'),('9','B','I','1780.00'),('9','B','J','2700.00'),('9','C','A','615.00'),('9','C','B','1740.00'),('9','C','C','0.00'),('9','C','D','1680.00'),('9','C','E','625.00'),('9','C','F','690.00'),('9','C','G','1410.00'),('9','C','H','1540.00'),('9','C','I','835.00'),('9','C','J','1700.00'),('9','D','A','1340.00'),('9','D','B','640.00'),('9','D','C','1680.00'),('9','D','D','0.00'),('9','D','E','1100.00'),('9','D','F','620.00'),('9','D','G','690.00'),('9','D','H','1420.00'),('9','D','I','1560.00'),('9','D','J','1600.00'),('9','E','A','2175.00'),('9','E','B','650.00'),('9','E','C','625.00'),('9','E','D','1100.00'),('9','E','E','0.00'),('9','E','F','1650.00'),('9','E','G','1875.00'),('9','E','H','1950.00'),('9','E','I','2175.00'),('9','E','J','1500.00'),('9','F','A','780.00'),('9','F','B','2130.00'),('9','F','C','690.00'),('9','F','D','620.00'),('9','F','E','1650.00'),('9','F','F','0.00'),('9','F','G','560.00'),('9','F','H','1280.00'),('9','F','I','1340.00'),('9','F','J','1400.00'),('9','G','A','1670.00'),('9','G','B','1540.00'),('9','G','C','1410.00'),('9','G','D','690.00'),('9','G','E','1875.00'),('9','G','F','560.00'),('9','G','G','0.00'),('9','G','H','1160.00'),('9','G','I','1230.00'),('9','G','J','650.00'),('9','H','A','1780.00'),('9','H','B','830.00'),('9','H','C','1540.00'),('9','H','D','1420.00'),('9','H','E','1950.00'),('9','H','F','1280.00'),('9','H','G','1160.00'),('9','H','H','0.00'),('9','H','I','1120.00'),('9','H','J','1800.00'),('9','I','A','1890.00'),('9','I','B','1780.00'),('9','I','C','835.00'),('9','I','D','1560.00'),('9','I','E','2175.00'),('9','I','F','1340.00'),('9','I','G','1230.00'),('9','I','H','1120.00'),('9','I','I','0.00'),('9','I','J','550.00'),('9','J','A','950.00'),('9','J','B','2700.00'),('9','J','C','1700.00'),('9','J','D','1600.00'),('9','J','E','1500.00'),('9','J','F','1400.00'),('9','J','G','650.00'),('9','J','H','1800.00'),('9','J','I','550.00'),('9','J','J','0.00');
-insert into FCost values ('10','A','A','0.00'),('10','A','B','560.00'),('10','A','C','1845.00'),('10','A','D','670.00'),('10','A','E','2175.00'),('10','A','F','1560.00'),('10','A','G','1670.00'),('10','A','H','2670.00'),('10','A','I','1890.00'),('10','A','J','2850.00'),('10','B','A','560.00'),('10','B','B','0.00'),('10','B','C','1160.00'),('10','B','D','1920.00'),('10','B','E','1950.00'),('10','B','F','710.00'),('10','B','G','1540.00'),('10','B','H','2490.00'),('10','B','I','2670.00'),('10','B','J','900.00'),('10','C','A','1845.00'),('10','C','B','1160.00'),('10','C','C','0.00'),('10','C','D','1680.00'),('10','C','E','1875.00'),('10','C','F','1380.00'),('10','C','G','705.00'),('10','C','H','2310.00'),('10','C','I','1670.00'),('10','C','J','1700.00'),('10','D','A','670.00'),('10','D','B','1920.00'),('10','D','C','1680.00'),('10','D','D','0.00'),('10','D','E','1100.00'),('10','D','F','1860.00'),('10','D','G','2070.00'),('10','D','H','2130.00'),('10','D','I','2340.00'),('10','D','J','1600.00'),('10','E','A','2175.00'),('10','E','B','1950.00'),('10','E','C','1875.00'),('10','E','D','1100.00'),('10','E','E','0.00'),('10','E','F','550.00'),('10','E','G','1875.00'),('10','E','H','650.00'),('10','E','I','1450.00'),('10','E','J','750.00'),('10','F','A','1560.00'),('10','F','B','710.00'),('10','F','C','1380.00'),('10','F','D','1860.00'),('10','F','E','550.00'),('10','F','F','0.00'),('10','F','G','1680.00'),('10','F','H','640.00'),('10','F','I','670.00'),('10','F','J','2100.00'),('10','G','A','1670.00'),('10','G','B','1540.00'),('10','G','C','705.00'),('10','G','D','2070.00'),('10','G','E','1875.00'),('10','G','F','1680.00'),('10','G','G','0.00'),('10','G','H','1160.00'),('10','G','I','1845.00'),('10','G','J','650.00'),('10','H','A','2670.00'),('10','H','B','2490.00'),('10','H','C','2310.00'),('10','H','D','2130.00'),('10','H','E','650.00'),('10','H','F','640.00'),('10','H','G','1160.00'),('10','H','H','0.00'),('10','H','I','1680.00'),('10','H','J','1800.00'),('10','I','A','1890.00'),('10','I','B','2670.00'),('10','I','C','1670.00'),('10','I','D','2340.00'),('10','I','E','1450.00'),('10','I','F','670.00'),('10','I','G','1845.00'),('10','I','H','1680.00'),('10','I','I','0.00'),('10','I','J','1650.00'),('10','J','A','2850.00'),('10','J','B','900.00'),('10','J','C','1700.00'),('10','J','D','1600.00'),('10','J','E','750.00'),('10','J','F','2100.00'),('10','J','G','650.00'),('10','J','H','1800.00'),('10','J','I','1650.00'),('10','J','J','0.00');
-insert into FCost values ('0','A','A','0.00'),('0','A','B','560.00'),('0','A','C','1845.00'),('0','A','D','2010.00'),('0','A','E','2175.00'),('0','A','F','1560.00'),('0','A','G','1670.00'),('0','A','H','1780.00'),('0','A','I','2835.00'),('0','A','J','950.00'),('0','B','A','560.00'),('0','B','B','0.00'),('0','B','C','1740.00'),('0','B','D','640.00'),('0','B','E','650.00'),('0','B','F','1420.00'),('0','B','G','2310.00'),('0','B','H','1660.00'),('0','B','I','890.00'),('0','B','J','900.00'),('0','C','A','1845.00'),('0','C','B','1740.00'),('0','C','C','0.00'),('0','C','D','1680.00'),('0','C','E','1250.00'),('0','C','F','2070.00'),('0','C','G','705.00'),('0','C','H','1540.00'),('0','C','I','835.00'),('0','C','J','1700.00'),('0','D','A','2010.00'),('0','D','B','640.00'),('0','D','C','1680.00'),('0','D','D','0.00'),('0','D','E','1100.00'),('0','D','F','1860.00'),('0','D','G','690.00'),('0','D','H','710.00'),('0','D','I','2340.00'),('0','D','J','1600.00'),('0','E','A','2175.00'),('0','E','B','650.00'),('0','E','C','1250.00'),('0','E','D','1100.00'),('0','E','E','0.00'),('0','E','F','1100.00'),('0','E','G','1875.00'),('0','E','H','1300.00'),('0','E','I','2175.00'),('0','E','J','1500.00'),('0','F','A','1560.00'),('0','F','B','1420.00'),('0','F','C','2070.00'),('0','F','D','1860.00'),('0','F','E','1100.00'),('0','F','F','0.00'),('0','F','G','560.00'),('0','F','H','640.00'),('0','F','I','2010.00'),('0','F','J','700.00'),('0','G','A','1670.00'),('0','G','B','2310.00'),('0','G','C','705.00'),('0','G','D','690.00'),('0','G','E','1875.00'),('0','G','F','560.00'),('0','G','G','0.00'),('0','G','H','1740.00'),('0','G','I','615.00'),('0','G','J','1950.00'),('0','H','A','1780.00'),('0','H','B','1660.00'),('0','H','C','1540.00'),('0','H','D','710.00'),('0','H','E','1300.00'),('0','H','F','640.00'),('0','H','G','1740.00'),('0','H','H','0.00'),('0','H','I','560.00'),('0','H','J','600.00'),('0','I','A','2835.00'),('0','I','B','890.00'),('0','I','C','835.00'),('0','I','D','2340.00'),('0','I','E','2175.00'),('0','I','F','2010.00'),('0','I','G','615.00'),('0','I','H','560.00'),('0','I','I','0.00'),('0','I','J','550.00'),('0','J','A','950.00'),('0','J','B','900.00'),('0','J','C','1700.00'),('0','J','D','1600.00'),('0','J','E','1500.00'),('0','J','F','700.00'),('0','J','G','1950.00'),('0','J','H','600.00'),('0','J','I','550.00'),('0','J','J','0.00');
-
-create table Demand (
- scenario int not null default 0,
- first varchar(16) not null,
- second varchar(16) not null,
- demand float not null,
- primary key (scenario, first, second),
- foreign key (first) references Nodes (name),
- foreign key (second) references Nodes (name)
- ) engine=innodb ;
-insert into Demand values ('1','A','A','0'),('1','A','B','3.47'),('1','A','C','4.16'),('1','A','D','3.81'),('1','A','E','4.02'),('1','A','F','3.77'),('1','A','G','3.84'),('1','A','H','4.02'),('1','A','I','3.80'),('1','A','J','3.84'),('1','B','A','3.47'),('1','B','B','0'),('1','B','C','4.21'),('1','B','D','4.18'),('1','B','E','3.94'),('1','B','F','4.14'),('1','B','G','4.07'),('1','B','H','3.69'),('1','B','I','3.50'),('1','B','J','3.96'),('1','C','A','4.16'),('1','C','B','4.21'),('1','C','C','0'),('1','C','D','4.29'),('1','C','E','4.27'),('1','C','F','4.26'),('1','C','G','4.09'),('1','C','H','3.73'),('1','C','I','3.64'),('1','C','J','3.88'),('1','D','A','3.81'),('1','D','B','4.18'),('1','D','C','4.29'),('1','D','D','0'),('1','D','E','3.66'),('1','D','F','3.95'),('1','D','G','3.54'),('1','D','H','4.07'),('1','D','I','3.64'),('1','D','J','4.21'),('1','E','A','4.02'),('1','E','B','3.94'),('1','E','C','4.27'),('1','E','D','3.66'),('1','E','E','0'),('1','E','F','4.04'),('1','E','G','4.14'),('1','E','H','3.92'),('1','E','I','3.57'),('1','E','J','3.77'),('1','F','A','3.77'),('1','F','B','4.14'),('1','F','C','4.26'),('1','F','D','3.95'),('1','F','E','4.04'),('1','F','F','0'),('1','F','G','3.69'),('1','F','H','3.62'),('1','F','I','3.76'),('1','F','J','3.73'),('1','G','A','3.84'),('1','G','B','4.07'),('1','G','C','4.09'),('1','G','D','3.54'),('1','G','E','4.14'),('1','G','F','3.69'),('1','G','G','0'),('1','G','H','4.10'),('1','G','I','3.25'),('1','G','J','4.08'),('1','H','A','4.02'),('1','H','B','3.69'),('1','H','C','3.73'),('1','H','D','4.07'),('1','H','E','3.92'),('1','H','F','3.62'),('1','H','G','4.10'),('1','H','H','0'),('1','H','I','3.55'),('1','H','J','3.82'),('1','I','A','3.80'),('1','I','B','3.50'),('1','I','C','3.64'),('1','I','D','3.64'),('1','I','E','3.57'),('1','I','F','3.76'),('1','I','G','3.25'),('1','I','H','3.55'),('1','I','I','0'),('1','I','J','4.19'),('1','J','A','3.84'),('1','J','B','3.96'),('1','J','C','3.88'),('1','J','D','4.21'),('1','J','E','3.77'),('1','J','F','3.73'),('1','J','G','4.08'),('1','J','H','3.82'),('1','J','I','4.19'),('1','J','J','0');
-insert into Demand values ('2','A','A','0'),('2','A','B','3.41'),('2','A','C','3.24'),('2','A','D','3.22'),('2','A','E','2.80'),('2','A','F','3.06'),('2','A','G','3.32'),('2','A','H','3.00'),('2','A','I','3.53'),('2','A','J','3.35'),('2','B','A','3.41'),('2','B','B','0'),('2','B','C','3.15'),('2','B','D','3.50'),('2','B','E','2.98'),('2','B','F','3.19'),('2','B','G','3.14'),('2','B','H','3.12'),('2','B','I','3.49'),('2','B','J','3.20'),('2','C','A','3.24'),('2','C','B','3.15'),('2','C','C','0'),('2','C','D','3.01'),('2','C','E','3.13'),('2','C','F','3.24'),('2','C','G','3.08'),('2','C','H','3.59'),('2','C','I','3.05'),('2','C','J','3.19'),('2','D','A','3.22'),('2','D','B','3.50'),('2','D','C','3.01'),('2','D','D','0'),('2','D','E','3.35'),('2','D','F','2.97'),('2','D','G','3.18'),('2','D','H','3.17'),('2','D','I','2.90'),('2','D','J','3.12'),('2','E','A','2.80'),('2','E','B','2.98'),('2','E','C','3.13'),('2','E','D','3.35'),('2','E','E','0'),('2','E','F','3.17'),('2','E','G','3.12'),('2','E','H','3.27'),('2','E','I','3.14'),('2','E','J','3.16'),('2','F','A','3.06'),('2','F','B','3.19'),('2','F','C','3.24'),('2','F','D','2.97'),('2','F','E','3.17'),('2','F','F','0'),('2','F','G','3.01'),('2','F','H','3.21'),('2','F','I','2.87'),('2','F','J','3.25'),('2','G','A','3.32'),('2','G','B','3.14'),('2','G','C','3.08'),('2','G','D','3.18'),('2','G','E','3.12'),('2','G','F','3.01'),('2','G','G','0'),('2','G','H','3.02'),('2','G','I','2.95'),('2','G','J','3.18'),('2','H','A','3.00'),('2','H','B','3.12'),('2','H','C','3.59'),('2','H','D','3.17'),('2','H','E','3.27'),('2','H','F','3.21'),('2','H','G','3.02'),('2','H','H','0'),('2','H','I','3.37'),('2','H','J','3.02'),('2','I','A','3.53'),('2','I','B','3.49'),('2','I','C','3.05'),('2','I','D','2.90'),('2','I','E','3.14'),('2','I','F','2.87'),('2','I','G','2.95'),('2','I','H','3.37'),('2','I','I','0'),('2','I','J','3.10'),('2','J','A','3.35'),('2','J','B','3.20'),('2','J','C','3.19'),('2','J','D','3.12'),('2','J','E','3.16'),('2','J','F','3.25'),('2','J','G','3.18'),('2','J','H','3.02'),('2','J','I','3.10'),('2','J','J','0');
-insert into Demand values ('3','A','A','0'),('3','A','B','2.66'),('3','A','C','3.06'),('3','A','D','2.77'),('3','A','E','3.06'),('3','A','F','3.17'),('3','A','G','3.61'),('3','A','H','3.69'),('3','A','I','3.41'),('3','A','J','3.12'),('3','B','A','2.66'),('3','B','B','0'),('3','B','C','2.86'),('3','B','D','3.34'),('3','B','E','3.23'),('3','B','F','3.34'),('3','B','G','2.85'),('3','B','H','3.06'),('3','B','I','3.16'),('3','B','J','3.06'),('3','C','A','3.06'),('3','C','B','2.86'),('3','C','C','0'),('3','C','D','3.18'),('3','C','E','3.46'),('3','C','F','3.28'),('3','C','G','2.95'),('3','C','H','3.18'),('3','C','I','3.40'),('3','C','J','3.04'),('3','D','A','2.77'),('3','D','B','3.34'),('3','D','C','3.18'),('3','D','D','0'),('3','D','E','2.86'),('3','D','F','3.15'),('3','D','G','3.61'),('3','D','H','2.88'),('3','D','I','3.44'),('3','D','J','2.86'),('3','E','A','3.06'),('3','E','B','3.23'),('3','E','C','3.46'),('3','E','D','2.86'),('3','E','E','0'),('3','E','F','3.11'),('3','E','G','3.02'),('3','E','H','3.50'),('3','E','I','3.67'),('3','E','J','3.30'),('3','F','A','3.17'),('3','F','B','3.34'),('3','F','C','3.28'),('3','F','D','3.15'),('3','F','E','3.11'),('3','F','F','0'),('3','F','G','3.25'),('3','F','H','3.13'),('3','F','I','2.73'),('3','F','J','3.38'),('3','G','A','3.61'),('3','G','B','2.85'),('3','G','C','2.95'),('3','G','D','3.61'),('3','G','E','3.02'),('3','G','F','3.25'),('3','G','G','0'),('3','G','H','3.11'),('3','G','I','3.32'),('3','G','J','3.67'),('3','H','A','3.69'),('3','H','B','3.06'),('3','H','C','3.18'),('3','H','D','2.88'),('3','H','E','3.50'),('3','H','F','3.13'),('3','H','G','3.11'),('3','H','H','0'),('3','H','I','2.68'),('3','H','J','3.25'),('3','I','A','3.41'),('3','I','B','3.16'),('3','I','C','3.40'),('3','I','D','3.44'),('3','I','E','3.67'),('3','I','F','2.73'),('3','I','G','3.32'),('3','I','H','2.68'),('3','I','I','0'),('3','I','J','2.94'),('3','J','A','3.12'),('3','J','B','3.06'),('3','J','C','3.04'),('3','J','D','2.86'),('3','J','E','3.30'),('3','J','F','3.38'),('3','J','G','3.67'),('3','J','H','3.25'),('3','J','I','2.94'),('3','J','J','0');
-insert into Demand values ('4','A','A','0'),('4','A','B','2.81'),('4','A','C','2.39'),('4','A','D','2.60'),('4','A','E','2.88'),('4','A','F','2.85'),('4','A','G','2.95'),('4','A','H','2.76'),('4','A','I','2.77'),('4','A','J','2.66'),('4','B','A','2.81'),('4','B','B','0'),('4','B','C','2.52'),('4','B','D','2.77'),('4','B','E','2.76'),('4','B','F','2.34'),('4','B','G','2.83'),('4','B','H','2.85'),('4','B','I','2.43'),('4','B','J','2.44'),('4','C','A','2.39'),('4','C','B','2.52'),('4','C','C','0'),('4','C','D','2.69'),('4','C','E','2.62'),('4','C','F','3.00'),('4','C','G','2.59'),('4','C','H','2.81'),('4','C','I','2.39'),('4','C','J','2.91'),('4','D','A','2.60'),('4','D','B','2.77'),('4','D','C','2.69'),('4','D','D','0'),('4','D','E','2.30'),('4','D','F','2.93'),('4','D','G','2.34'),('4','D','H','2.81'),('4','D','I','2.34'),('4','D','J','2.83'),('4','E','A','2.88'),('4','E','B','2.76'),('4','E','C','2.62'),('4','E','D','2.30'),('4','E','E','0'),('4','E','F','2.73'),('4','E','G','2.71'),('4','E','H','2.84'),('4','E','I','2.52'),('4','E','J','2.34'),('4','F','A','2.85'),('4','F','B','2.34'),('4','F','C','3.00'),('4','F','D','2.93'),('4','F','E','2.73'),('4','F','F','0'),('4','F','G','2.93'),('4','F','H','2.37'),('4','F','I','2.62'),('4','F','J','2.84'),('4','G','A','2.95'),('4','G','B','2.83'),('4','G','C','2.59'),('4','G','D','2.34'),('4','G','E','2.71'),('4','G','F','2.93'),('4','G','G','0'),('4','G','H','2.97'),('4','G','I','2.82'),('4','G','J','2.64'),('4','H','A','2.76'),('4','H','B','2.85'),('4','H','C','2.81'),('4','H','D','2.81'),('4','H','E','2.84'),('4','H','F','2.37'),('4','H','G','2.97'),('4','H','H','0'),('4','H','I','2.79'),('4','H','J','2.29'),('4','I','A','2.77'),('4','I','B','2.43'),('4','I','C','2.39'),('4','I','D','2.34'),('4','I','E','2.52'),('4','I','F','2.62'),('4','I','G','2.82'),('4','I','H','2.79'),('4','I','I','0'),('4','I','J','3.12'),('4','J','A','2.66'),('4','J','B','2.44'),('4','J','C','2.91'),('4','J','D','2.83'),('4','J','E','2.34'),('4','J','F','2.84'),('4','J','G','2.64'),('4','J','H','2.29'),('4','J','I','3.12'),('4','J','J','0');
-insert into Demand values ('5','A','A','0'),('5','A','B','3.67'),('5','A','C','3.22'),('5','A','D','3.63'),('5','A','E','3.46'),('5','A','F','3.65'),('5','A','G','3.80'),('5','A','H','3.73'),('5','A','I','3.59'),('5','A','J','3.26'),('5','B','A','3.67'),('5','B','B','0'),('5','B','C','3.50'),('5','B','D','3.61'),('5','B','E','3.93'),('5','B','F','3.71'),('5','B','G','3.70'),('5','B','H','3.56'),('5','B','I','3.86'),('5','B','J','3.58'),('5','C','A','3.22'),('5','C','B','3.50'),('5','C','C','0'),('5','C','D','3.65'),('5','C','E','3.49'),('5','C','F','3.50'),('5','C','G','3.55'),('5','C','H','3.22'),('5','C','I','3.49'),('5','C','J','3.70'),('5','D','A','3.63'),('5','D','B','3.61'),('5','D','C','3.65'),('5','D','D','0'),('5','D','E','3.57'),('5','D','F','4.12'),('5','D','G','3.39'),('5','D','H','3.83'),('5','D','I','3.32'),('5','D','J','3.57'),('5','E','A','3.46'),('5','E','B','3.93'),('5','E','C','3.49'),('5','E','D','3.57'),('5','E','E','0'),('5','E','F','3.51'),('5','E','G','3.85'),('5','E','H','3.43'),('5','E','I','3.90'),('5','E','J','3.53'),('5','F','A','3.65'),('5','F','B','3.71'),('5','F','C','3.50'),('5','F','D','4.12'),('5','F','E','3.51'),('5','F','F','0'),('5','F','G','3.76'),('5','F','H','3.46'),('5','F','I','3.74'),('5','F','J','3.95'),('5','G','A','3.80'),('5','G','B','3.70'),('5','G','C','3.55'),('5','G','D','3.39'),('5','G','E','3.85'),('5','G','F','3.76'),('5','G','G','0'),('5','G','H','3.98'),('5','G','I','3.60'),('5','G','J','3.91'),('5','H','A','3.73'),('5','H','B','3.56'),('5','H','C','3.22'),('5','H','D','3.83'),('5','H','E','3.43'),('5','H','F','3.46'),('5','H','G','3.98'),('5','H','H','0'),('5','H','I','3.53'),('5','H','J','3.20'),('5','I','A','3.59'),('5','I','B','3.86'),('5','I','C','3.49'),('5','I','D','3.32'),('5','I','E','3.90'),('5','I','F','3.74'),('5','I','G','3.60'),('5','I','H','3.53'),('5','I','I','0'),('5','I','J','3.99'),('5','J','A','3.26'),('5','J','B','3.58'),('5','J','C','3.70'),('5','J','D','3.57'),('5','J','E','3.53'),('5','J','F','3.95'),('5','J','G','3.91'),('5','J','H','3.20'),('5','J','I','3.99'),('5','J','J','0');
-insert into Demand values ('6','A','A','0'),('6','A','B','3.05'),('6','A','C','3.08'),('6','A','D','3.22'),('6','A','E','3.11'),('6','A','F','3.42'),('6','A','G','2.75'),('6','A','H','3.02'),('6','A','I','3.12'),('6','A','J','2.83'),('6','B','A','3.05'),('6','B','B','0'),('6','B','C','3.35'),('6','B','D','3.12'),('6','B','E','3.07'),('6','B','F','3.29'),('6','B','G','3.28'),('6','B','H','3.03'),('6','B','I','3.09'),('6','B','J','2.83'),('6','C','A','3.08'),('6','C','B','3.35'),('6','C','C','0'),('6','C','D','2.69'),('6','C','E','2.94'),('6','C','F','3.07'),('6','C','G','3.56'),('6','C','H','3.30'),('6','C','I','2.91'),('6','C','J','2.78'),('6','D','A','3.22'),('6','D','B','3.12'),('6','D','C','2.69'),('6','D','D','0'),('6','D','E','3.26'),('6','D','F','3.20'),('6','D','G','3.26'),('6','D','H','3.28'),('6','D','I','3.08'),('6','D','J','3.06'),('6','E','A','3.11'),('6','E','B','3.07'),('6','E','C','2.94'),('6','E','D','3.26'),('6','E','E','0'),('6','E','F','3.15'),('6','E','G','3.13'),('6','E','H','2.77'),('6','E','I','2.85'),('6','E','J','2.52'),('6','F','A','3.42'),('6','F','B','3.29'),('6','F','C','3.07'),('6','F','D','3.20'),('6','F','E','3.15'),('6','F','F','0'),('6','F','G','3.26'),('6','F','H','2.56'),('6','F','I','2.98'),('6','F','J','3.12'),('6','G','A','2.75'),('6','G','B','3.28'),('6','G','C','3.56'),('6','G','D','3.26'),('6','G','E','3.13'),('6','G','F','3.26'),('6','G','G','0'),('6','G','H','2.98'),('6','G','I','2.94'),('6','G','J','3.00'),('6','H','A','3.02'),('6','H','B','3.03'),('6','H','C','3.30'),('6','H','D','3.28'),('6','H','E','2.77'),('6','H','F','2.56'),('6','H','G','2.98'),('6','H','H','0'),('6','H','I','3.42'),('6','H','J','3.27'),('6','I','A','3.12'),('6','I','B','3.09'),('6','I','C','2.91'),('6','I','D','3.08'),('6','I','E','2.85'),('6','I','F','2.98'),('6','I','G','2.94'),('6','I','H','3.42'),('6','I','I','0'),('6','I','J','2.89'),('6','J','A','2.83'),('6','J','B','2.83'),('6','J','C','2.78'),('6','J','D','3.06'),('6','J','E','2.52'),('6','J','F','3.12'),('6','J','G','3.00'),('6','J','H','3.27'),('6','J','I','2.89'),('6','J','J','0');
-insert into Demand values ('7','A','A','0'),('7','A','B','3.61'),('7','A','C','3.36'),('7','A','D','3.68'),('7','A','E','3.32'),('7','A','F','2.85'),('7','A','G','3.30'),('7','A','H','3.51'),('7','A','I','3.25'),('7','A','J','3.36'),('7','B','A','3.61'),('7','B','B','0'),('7','B','C','3.79'),('7','B','D','3.43'),('7','B','E','3.39'),('7','B','F','3.42'),('7','B','G','2.94'),('7','B','H','3.40'),('7','B','I','2.74'),('7','B','J','3.28'),('7','C','A','3.36'),('7','C','B','3.79'),('7','C','C','0'),('7','C','D','3.26'),('7','C','E','2.72'),('7','C','F','2.91'),('7','C','G','3.11'),('7','C','H','2.98'),('7','C','I','3.10'),('7','C','J','3.38'),('7','D','A','3.68'),('7','D','B','3.43'),('7','D','C','3.26'),('7','D','D','0'),('7','D','E','2.81'),('7','D','F','2.99'),('7','D','G','2.83'),('7','D','H','3.33'),('7','D','I','3.55'),('7','D','J','3.14'),('7','E','A','3.32'),('7','E','B','3.39'),('7','E','C','2.72'),('7','E','D','2.81'),('7','E','E','0'),('7','E','F','3.28'),('7','E','G','2.96'),('7','E','H','2.88'),('7','E','I','3.55'),('7','E','J','3.02'),('7','F','A','2.85'),('7','F','B','3.42'),('7','F','C','2.91'),('7','F','D','2.99'),('7','F','E','3.28'),('7','F','F','0'),('7','F','G','3.48'),('7','F','H','2.98'),('7','F','I','3.56'),('7','F','J','3.02'),('7','G','A','3.30'),('7','G','B','2.94'),('7','G','C','3.11'),('7','G','D','2.83'),('7','G','E','2.96'),('7','G','F','3.48'),('7','G','G','0'),('7','G','H','3.33'),('7','G','I','3.38'),('7','G','J','3.24'),('7','H','A','3.51'),('7','H','B','3.40'),('7','H','C','2.98'),('7','H','D','3.33'),('7','H','E','2.88'),('7','H','F','2.98'),('7','H','G','3.33'),('7','H','H','0'),('7','H','I','3.27'),('7','H','J','3.24'),('7','I','A','3.25'),('7','I','B','2.74'),('7','I','C','3.10'),('7','I','D','3.55'),('7','I','E','3.55'),('7','I','F','3.56'),('7','I','G','3.38'),('7','I','H','3.27'),('7','I','I','0'),('7','I','J','2.78'),('7','J','A','3.36'),('7','J','B','3.28'),('7','J','C','3.38'),('7','J','D','3.14'),('7','J','E','3.02'),('7','J','F','3.02'),('7','J','G','3.24'),('7','J','H','3.24'),('7','J','I','2.78'),('7','J','J','0');
-insert into Demand values ('8','A','A','0'),('8','A','B','3.08'),('8','A','C','3.52'),('8','A','D','3.34'),('8','A','E','2.96'),('8','A','F','3.24'),('8','A','G','2.91'),('8','A','H','3.29'),('8','A','I','3.32'),('8','A','J','2.92'),('8','B','A','3.08'),('8','B','B','0'),('8','B','C','2.89'),('8','B','D','3.04'),('8','B','E','3.03'),('8','B','F','2.91'),('8','B','G','2.87'),('8','B','H','3.30'),('8','B','I','3.20'),('8','B','J','2.90'),('8','C','A','3.52'),('8','C','B','2.89'),('8','C','C','0'),('8','C','D','3.28'),('8','C','E','2.81'),('8','C','F','3.26'),('8','C','G','3.17'),('8','C','H','3.42'),('8','C','I','2.78'),('8','C','J','3.21'),('8','D','A','3.34'),('8','D','B','3.04'),('8','D','C','3.28'),('8','D','D','0'),('8','D','E','3.00'),('8','D','F','3.00'),('8','D','G','2.85'),('8','D','H','2.59'),('8','D','I','3.36'),('8','D','J','3.19'),('8','E','A','2.96'),('8','E','B','3.03'),('8','E','C','2.81'),('8','E','D','3.00'),('8','E','E','0'),('8','E','F','2.95'),('8','E','G','3.09'),('8','E','H','2.99'),('8','E','I','2.74'),('8','E','J','2.89'),('8','F','A','3.24'),('8','F','B','2.91'),('8','F','C','3.26'),('8','F','D','3.00'),('8','F','E','2.95'),('8','F','F','0'),('8','F','G','2.91'),('8','F','H','2.95'),('8','F','I','2.87'),('8','F','J','3.21'),('8','G','A','2.91'),('8','G','B','2.87'),('8','G','C','3.17'),('8','G','D','2.85'),('8','G','E','3.09'),('8','G','F','2.91'),('8','G','G','0'),('8','G','H','2.90'),('8','G','I','3.16'),('8','G','J','3.11'),('8','H','A','3.29'),('8','H','B','3.30'),('8','H','C','3.42'),('8','H','D','2.59'),('8','H','E','2.99'),('8','H','F','2.95'),('8','H','G','2.90'),('8','H','H','0'),('8','H','I','3.19'),('8','H','J','2.81'),('8','I','A','3.32'),('8','I','B','3.20'),('8','I','C','2.78'),('8','I','D','3.36'),('8','I','E','2.74'),('8','I','F','2.87'),('8','I','G','3.16'),('8','I','H','3.19'),('8','I','I','0'),('8','I','J','2.43'),('8','J','A','2.92'),('8','J','B','2.90'),('8','J','C','3.21'),('8','J','D','3.19'),('8','J','E','2.89'),('8','J','F','3.21'),('8','J','G','3.11'),('8','J','H','2.81'),('8','J','I','2.43'),('8','J','J','0');
-insert into Demand values ('9','A','A','0'),('9','A','B','3.44'),('9','A','C','3.42'),('9','A','D','3.55'),('9','A','E','3.18'),('9','A','F','3.71'),('9','A','G','3.79'),('9','A','H','3.88'),('9','A','I','3.76'),('9','A','J','3.38'),('9','B','A','3.44'),('9','B','B','0'),('9','B','C','3.57'),('9','B','D','3.60'),('9','B','E','3.34'),('9','B','F','3.40'),('9','B','G','3.61'),('9','B','H','3.06'),('9','B','I','3.28'),('9','B','J','3.29'),('9','C','A','3.42'),('9','C','B','3.57'),('9','C','C','0'),('9','C','D','3.22'),('9','C','E','3.36'),('9','C','F','3.63'),('9','C','G','3.47'),('9','C','H','3.73'),('9','C','I','3.06'),('9','C','J','3.33'),('9','D','A','3.55'),('9','D','B','3.60'),('9','D','C','3.22'),('9','D','D','0'),('9','D','E','3.34'),('9','D','F','3.15'),('9','D','G','3.81'),('9','D','H','3.67'),('9','D','I','3.29'),('9','D','J','3.34'),('9','E','A','3.18'),('9','E','B','3.34'),('9','E','C','3.36'),('9','E','D','3.34'),('9','E','E','0'),('9','E','F','3.59'),('9','E','G','3.35'),('9','E','H','3.30'),('9','E','I','3.19'),('9','E','J','3.28'),('9','F','A','3.71'),('9','F','B','3.40'),('9','F','C','3.63'),('9','F','D','3.15'),('9','F','E','3.59'),('9','F','F','0'),('9','F','G','3.53'),('9','F','H','3.33'),('9','F','I','3.91'),('9','F','J','3.66'),('9','G','A','3.79'),('9','G','B','3.61'),('9','G','C','3.47'),('9','G','D','3.81'),('9','G','E','3.35'),('9','G','F','3.53'),('9','G','G','0'),('9','G','H','3.73'),('9','G','I','3.35'),('9','G','J','3.66'),('9','H','A','3.88'),('9','H','B','3.06'),('9','H','C','3.73'),('9','H','D','3.67'),('9','H','E','3.30'),('9','H','F','3.33'),('9','H','G','3.73'),('9','H','H','0'),('9','H','I','3.48'),('9','H','J','3.31'),('9','I','A','3.76'),('9','I','B','3.28'),('9','I','C','3.06'),('9','I','D','3.29'),('9','I','E','3.19'),('9','I','F','3.91'),('9','I','G','3.35'),('9','I','H','3.48'),('9','I','I','0'),('9','I','J','3.52'),('9','J','A','3.38'),('9','J','B','3.29'),('9','J','C','3.33'),('9','J','D','3.34'),('9','J','E','3.28'),('9','J','F','3.66'),('9','J','G','3.66'),('9','J','H','3.31'),('9','J','I','3.52'),('9','J','J','0');
-insert into Demand values ('10','A','A','0'),('10','A','B','3.12'),('10','A','C','3.34'),('10','A','D','3.12'),('10','A','E','3.15'),('10','A','F','3.47'),('10','A','G','3.03'),('10','A','H','3.33'),('10','A','I','3.15'),('10','A','J','3.20'),('10','B','A','3.12'),('10','B','B','0'),('10','B','C','3.42'),('10','B','D','3.59'),('10','B','E','3.21'),('10','B','F','3.16'),('10','B','G','3.43'),('10','B','H','3.40'),('10','B','I','3.57'),('10','B','J','3.71'),('10','C','A','3.34'),('10','C','B','3.42'),('10','C','C','0'),('10','C','D','3.35'),('10','C','E','3.50'),('10','C','F','3.06'),('10','C','G','3.27'),('10','C','H','3.38'),('10','C','I','3.17'),('10','C','J','3.45'),('10','D','A','3.12'),('10','D','B','3.59'),('10','D','C','3.35'),('10','D','D','0'),('10','D','E','2.94'),('10','D','F','2.80'),('10','D','G','3.12'),('10','D','H','3.08'),('10','D','I','3.67'),('10','D','J','3.05'),('10','E','A','3.15'),('10','E','B','3.21'),('10','E','C','3.50'),('10','E','D','2.94'),('10','E','E','0'),('10','E','F','3.24'),('10','E','G','3.32'),('10','E','H','3.14'),('10','E','I','3.08'),('10','E','J','3.52'),('10','F','A','3.47'),('10','F','B','3.16'),('10','F','C','3.06'),('10','F','D','2.80'),('10','F','E','3.24'),('10','F','F','0'),('10','F','G','3.03'),('10','F','H','3.24'),('10','F','I','3.36'),('10','F','J','3.23'),('10','G','A','3.03'),('10','G','B','3.43'),('10','G','C','3.27'),('10','G','D','3.12'),('10','G','E','3.32'),('10','G','F','3.03'),('10','G','G','0'),('10','G','H','3.17'),('10','G','I','3.38'),('10','G','J','3.52'),('10','H','A','3.33'),('10','H','B','3.40'),('10','H','C','3.38'),('10','H','D','3.08'),('10','H','E','3.14'),('10','H','F','3.24'),('10','H','G','3.17'),('10','H','H','0'),('10','H','I','3.07'),('10','H','J','3.15'),('10','I','A','3.15'),('10','I','B','3.57'),('10','I','C','3.17'),('10','I','D','3.67'),('10','I','E','3.08'),('10','I','F','3.36'),('10','I','G','3.38'),('10','I','H','3.07'),('10','I','I','0'),('10','I','J','2.75'),('10','J','A','3.20'),('10','J','B','3.71'),('10','J','C','3.45'),('10','J','D','3.05'),('10','J','E','3.52'),('10','J','F','3.23'),('10','J','G','3.52'),('10','J','H','3.15'),('10','J','I','2.75'),('10','J','J','0');
-insert into Demand values ('0','A','A','0'),('0','A','B','3.47'),('0','A','C','4.16'),('0','A','D','3.81'),('0','A','E','4.02'),('0','A','F','3.77'),('0','A','G','3.84'),('0','A','H','4.02'),('0','A','I','3.80'),('0','A','J','3.84'),('0','B','A','3.47'),('0','B','B','0'),('0','B','C','4.21'),('0','B','D','4.18'),('0','B','E','3.94'),('0','B','F','4.14'),('0','B','G','4.07'),('0','B','H','3.69'),('0','B','I','3.50'),('0','B','J','3.96'),('0','C','A','4.16'),('0','C','B','4.21'),('0','C','C','0'),('0','C','D','4.29'),('0','C','E','4.27'),('0','C','F','4.26'),('0','C','G','4.09'),('0','C','H','3.73'),('0','C','I','3.64'),('0','C','J','3.88'),('0','D','A','3.81'),('0','D','B','4.18'),('0','D','C','4.29'),('0','D','D','0'),('0','D','E','3.66'),('0','D','F','3.95'),('0','D','G','3.54'),('0','D','H','4.07'),('0','D','I','3.64'),('0','D','J','4.21'),('0','E','A','4.02'),('0','E','B','3.94'),('0','E','C','4.27'),('0','E','D','3.66'),('0','E','E','0'),('0','E','F','4.04'),('0','E','G','4.14'),('0','E','H','3.92'),('0','E','I','3.57'),('0','E','J','3.77'),('0','F','A','3.77'),('0','F','B','4.14'),('0','F','C','4.26'),('0','F','D','3.95'),('0','F','E','4.04'),('0','F','F','0'),('0','F','G','3.69'),('0','F','H','3.62'),('0','F','I','3.76'),('0','F','J','3.73'),('0','G','A','3.84'),('0','G','B','4.07'),('0','G','C','4.09'),('0','G','D','3.54'),('0','G','E','4.14'),('0','G','F','3.69'),('0','G','G','0'),('0','G','H','4.10'),('0','G','I','3.25'),('0','G','J','4.08'),('0','H','A','4.02'),('0','H','B','3.69'),('0','H','C','3.73'),('0','H','D','4.07'),('0','H','E','3.92'),('0','H','F','3.62'),('0','H','G','4.10'),('0','H','H','0'),('0','H','I','3.55'),('0','H','J','3.82'),('0','I','A','3.80'),('0','I','B','3.50'),('0','I','C','3.64'),('0','I','D','3.64'),('0','I','E','3.57'),('0','I','F','3.76'),('0','I','G','3.25'),('0','I','H','3.55'),('0','I','I','0'),('0','I','J','4.19'),('0','J','A','3.84'),('0','J','B','3.96'),('0','J','C','3.88'),('0','J','D','4.21'),('0','J','E','3.77'),('0','J','F','3.73'),('0','J','G','4.08'),('0','J','H','3.82'),('0','J','I','4.19'),('0','J','J','0');
-
diff --git a/examples/pysp/networkflow/1ef10db/README b/examples/pysp/networkflow/1ef10db/README
deleted file mode 100644
index 10dcf8b321a..00000000000
--- a/examples/pysp/networkflow/1ef10db/README
+++ /dev/null
@@ -1,5 +0,0 @@
-This directory contains a MySQL-based instance for the network flow model
-derived from the 1ef10 instance. To get started, set up MySQL, then import
-1ef10.sql. Modify the .dat files as necessary for your credentials.
-
-For more info, see ../1ef10/db/README.md.
diff --git a/examples/pysp/networkflow/1ef10db/Scenario1.dat b/examples/pysp/networkflow/1ef10db/Scenario1.dat
deleted file mode 100644
index 3bd389486aa..00000000000
--- a/examples/pysp/networkflow/1ef10db/Scenario1.dat
+++ /dev/null
@@ -1,6 +0,0 @@
-load "Driver={MySQL};Database=networkflow;Server=localhost;User=netflow;Password=pyomopass;" using=pyodbc query="SELECT name FROM Nodes" format=set : Nodes ;
-load "Driver={MySQL};Database=networkflow;Server=localhost;User=netflow;Password=pyomopass;" using=pyodbc query="SELECT first,second FROM Arcs" format=set : Arcs ;
-load "Driver={MySQL};Database=networkflow;Server=localhost;User=netflow;Password=pyomopass;" using=pyodbc query="SELECT first,second,cost FROM CapCost" format=param : CapCost ;
-load "Driver={MySQL};Database=networkflow;Server=localhost;User=netflow;Password=pyomopass;" using=pyodbc query="SELECT first,second,cost FROM b0Cost" format=param : b0Cost ;
-load "Driver={MySQL};Database=networkflow;Server=localhost;User=netflow;Password=pyomopass;" using=pyodbc query="SELECT first,second,cost FROM FCost WHERE scenario=1" format=param : FCost ;
-load "Driver={MySQL};Database=networkflow;Server=localhost;User=netflow;Password=pyomopass;" using=pyodbc query="SELECT first,second,demand FROM Demand WHERE scenario=1" format=param : Demand ;
diff --git a/examples/pysp/networkflow/1ef10db/Scenario10.dat b/examples/pysp/networkflow/1ef10db/Scenario10.dat
deleted file mode 100644
index dc2c46610bb..00000000000
--- a/examples/pysp/networkflow/1ef10db/Scenario10.dat
+++ /dev/null
@@ -1,6 +0,0 @@
-load "Driver={MySQL};Database=networkflow;Server=localhost;User=netflow;Password=pyomopass;" using=pyodbc query="SELECT name FROM Nodes" format=set : Nodes ;
-load "Driver={MySQL};Database=networkflow;Server=localhost;User=netflow;Password=pyomopass;" using=pyodbc query="SELECT first,second FROM Arcs" format=set : Arcs ;
-load "Driver={MySQL};Database=networkflow;Server=localhost;User=netflow;Password=pyomopass;" using=pyodbc query="SELECT first,second,cost FROM CapCost" format=param : CapCost ;
-load "Driver={MySQL};Database=networkflow;Server=localhost;User=netflow;Password=pyomopass;" using=pyodbc query="SELECT first,second,cost FROM b0Cost" format=param : b0Cost ;
-load "Driver={MySQL};Database=networkflow;Server=localhost;User=netflow;Password=pyomopass;" using=pyodbc query="SELECT first,second,cost FROM FCost WHERE scenario=10" format=param : FCost ;
-load "Driver={MySQL};Database=networkflow;Server=localhost;User=netflow;Password=pyomopass;" using=pyodbc query="SELECT first,second,demand FROM Demand WHERE scenario=10" format=param : Demand ;
diff --git a/examples/pysp/networkflow/1ef10db/Scenario2.dat b/examples/pysp/networkflow/1ef10db/Scenario2.dat
deleted file mode 100644
index 4b83fd58b7e..00000000000
--- a/examples/pysp/networkflow/1ef10db/Scenario2.dat
+++ /dev/null
@@ -1,6 +0,0 @@
-load "Driver={MySQL};Database=networkflow;Server=localhost;User=netflow;Password=pyomopass;" using=pyodbc query="SELECT name FROM Nodes" format=set : Nodes ;
-load "Driver={MySQL};Database=networkflow;Server=localhost;User=netflow;Password=pyomopass;" using=pyodbc query="SELECT first,second FROM Arcs" format=set : Arcs ;
-load "Driver={MySQL};Database=networkflow;Server=localhost;User=netflow;Password=pyomopass;" using=pyodbc query="SELECT first,second,cost FROM CapCost" format=param : CapCost ;
-load "Driver={MySQL};Database=networkflow;Server=localhost;User=netflow;Password=pyomopass;" using=pyodbc query="SELECT first,second,cost FROM b0Cost" format=param : b0Cost ;
-load "Driver={MySQL};Database=networkflow;Server=localhost;User=netflow;Password=pyomopass;" using=pyodbc query="SELECT first,second,cost FROM FCost WHERE scenario=2" format=param : FCost ;
-load "Driver={MySQL};Database=networkflow;Server=localhost;User=netflow;Password=pyomopass;" using=pyodbc query="SELECT first,second,demand FROM Demand WHERE scenario=2" format=param : Demand ;
diff --git a/examples/pysp/networkflow/1ef10db/Scenario3.dat b/examples/pysp/networkflow/1ef10db/Scenario3.dat
deleted file mode 100644
index d110e9cdbe4..00000000000
--- a/examples/pysp/networkflow/1ef10db/Scenario3.dat
+++ /dev/null
@@ -1,6 +0,0 @@
-load "Driver={MySQL};Database=networkflow;Server=localhost;User=netflow;Password=pyomopass;" using=pyodbc query="SELECT name FROM Nodes" format=set : Nodes ;
-load "Driver={MySQL};Database=networkflow;Server=localhost;User=netflow;Password=pyomopass;" using=pyodbc query="SELECT first,second FROM Arcs" format=set : Arcs ;
-load "Driver={MySQL};Database=networkflow;Server=localhost;User=netflow;Password=pyomopass;" using=pyodbc query="SELECT first,second,cost FROM CapCost" format=param : CapCost ;
-load "Driver={MySQL};Database=networkflow;Server=localhost;User=netflow;Password=pyomopass;" using=pyodbc query="SELECT first,second,cost FROM b0Cost" format=param : b0Cost ;
-load "Driver={MySQL};Database=networkflow;Server=localhost;User=netflow;Password=pyomopass;" using=pyodbc query="SELECT first,second,cost FROM FCost WHERE scenario=3" format=param : FCost ;
-load "Driver={MySQL};Database=networkflow;Server=localhost;User=netflow;Password=pyomopass;" using=pyodbc query="SELECT first,second,demand FROM Demand WHERE scenario=3" format=param : Demand ;
diff --git a/examples/pysp/networkflow/1ef10db/Scenario4.dat b/examples/pysp/networkflow/1ef10db/Scenario4.dat
deleted file mode 100644
index b3c02358f4e..00000000000
--- a/examples/pysp/networkflow/1ef10db/Scenario4.dat
+++ /dev/null
@@ -1,6 +0,0 @@
-load "Driver={MySQL};Database=networkflow;Server=localhost;User=netflow;Password=pyomopass;" using=pyodbc query="SELECT name FROM Nodes" format=set : Nodes ;
-load "Driver={MySQL};Database=networkflow;Server=localhost;User=netflow;Password=pyomopass;" using=pyodbc query="SELECT first,second FROM Arcs" format=set : Arcs ;
-load "Driver={MySQL};Database=networkflow;Server=localhost;User=netflow;Password=pyomopass;" using=pyodbc query="SELECT first,second,cost FROM CapCost" format=param : CapCost ;
-load "Driver={MySQL};Database=networkflow;Server=localhost;User=netflow;Password=pyomopass;" using=pyodbc query="SELECT first,second,cost FROM b0Cost" format=param : b0Cost ;
-load "Driver={MySQL};Database=networkflow;Server=localhost;User=netflow;Password=pyomopass;" using=pyodbc query="SELECT first,second,cost FROM FCost WHERE scenario=4" format=param : FCost ;
-load "Driver={MySQL};Database=networkflow;Server=localhost;User=netflow;Password=pyomopass;" using=pyodbc query="SELECT first,second,demand FROM Demand WHERE scenario=4" format=param : Demand ;
diff --git a/examples/pysp/networkflow/1ef10db/Scenario5.dat b/examples/pysp/networkflow/1ef10db/Scenario5.dat
deleted file mode 100644
index 7bc172a5d30..00000000000
--- a/examples/pysp/networkflow/1ef10db/Scenario5.dat
+++ /dev/null
@@ -1,6 +0,0 @@
-load "Driver={MySQL};Database=networkflow;Server=localhost;User=netflow;Password=pyomopass;" using=pyodbc query="SELECT name FROM Nodes" format=set : Nodes ;
-load "Driver={MySQL};Database=networkflow;Server=localhost;User=netflow;Password=pyomopass;" using=pyodbc query="SELECT first,second FROM Arcs" format=set : Arcs ;
-load "Driver={MySQL};Database=networkflow;Server=localhost;User=netflow;Password=pyomopass;" using=pyodbc query="SELECT first,second,cost FROM CapCost" format=param : CapCost ;
-load "Driver={MySQL};Database=networkflow;Server=localhost;User=netflow;Password=pyomopass;" using=pyodbc query="SELECT first,second,cost FROM b0Cost" format=param : b0Cost ;
-load "Driver={MySQL};Database=networkflow;Server=localhost;User=netflow;Password=pyomopass;" using=pyodbc query="SELECT first,second,cost FROM FCost WHERE scenario=5" format=param : FCost ;
-load "Driver={MySQL};Database=networkflow;Server=localhost;User=netflow;Password=pyomopass;" using=pyodbc query="SELECT first,second,demand FROM Demand WHERE scenario=5" format=param : Demand ;
diff --git a/examples/pysp/networkflow/1ef10db/Scenario6.dat b/examples/pysp/networkflow/1ef10db/Scenario6.dat
deleted file mode 100644
index 25f4f2597d6..00000000000
--- a/examples/pysp/networkflow/1ef10db/Scenario6.dat
+++ /dev/null
@@ -1,6 +0,0 @@
-load "Driver={MySQL};Database=networkflow;Server=localhost;User=netflow;Password=pyomopass;" using=pyodbc query="SELECT name FROM Nodes" format=set : Nodes ;
-load "Driver={MySQL};Database=networkflow;Server=localhost;User=netflow;Password=pyomopass;" using=pyodbc query="SELECT first,second FROM Arcs" format=set : Arcs ;
-load "Driver={MySQL};Database=networkflow;Server=localhost;User=netflow;Password=pyomopass;" using=pyodbc query="SELECT first,second,cost FROM CapCost" format=param : CapCost ;
-load "Driver={MySQL};Database=networkflow;Server=localhost;User=netflow;Password=pyomopass;" using=pyodbc query="SELECT first,second,cost FROM b0Cost" format=param : b0Cost ;
-load "Driver={MySQL};Database=networkflow;Server=localhost;User=netflow;Password=pyomopass;" using=pyodbc query="SELECT first,second,cost FROM FCost WHERE scenario=6" format=param : FCost ;
-load "Driver={MySQL};Database=networkflow;Server=localhost;User=netflow;Password=pyomopass;" using=pyodbc query="SELECT first,second,demand FROM Demand WHERE scenario=6" format=param : Demand ;
diff --git a/examples/pysp/networkflow/1ef10db/Scenario7.dat b/examples/pysp/networkflow/1ef10db/Scenario7.dat
deleted file mode 100644
index 964f6007153..00000000000
--- a/examples/pysp/networkflow/1ef10db/Scenario7.dat
+++ /dev/null
@@ -1,6 +0,0 @@
-load "Driver={MySQL};Database=networkflow;Server=localhost;User=netflow;Password=pyomopass;" using=pyodbc query="SELECT name FROM Nodes" format=set : Nodes ;
-load "Driver={MySQL};Database=networkflow;Server=localhost;User=netflow;Password=pyomopass;" using=pyodbc query="SELECT first,second FROM Arcs" format=set : Arcs ;
-load "Driver={MySQL};Database=networkflow;Server=localhost;User=netflow;Password=pyomopass;" using=pyodbc query="SELECT first,second,cost FROM CapCost" format=param : CapCost ;
-load "Driver={MySQL};Database=networkflow;Server=localhost;User=netflow;Password=pyomopass;" using=pyodbc query="SELECT first,second,cost FROM b0Cost" format=param : b0Cost ;
-load "Driver={MySQL};Database=networkflow;Server=localhost;User=netflow;Password=pyomopass;" using=pyodbc query="SELECT first,second,cost FROM FCost WHERE scenario=7" format=param : FCost ;
-load "Driver={MySQL};Database=networkflow;Server=localhost;User=netflow;Password=pyomopass;" using=pyodbc query="SELECT first,second,demand FROM Demand WHERE scenario=7" format=param : Demand ;
diff --git a/examples/pysp/networkflow/1ef10db/Scenario8.dat b/examples/pysp/networkflow/1ef10db/Scenario8.dat
deleted file mode 100644
index 85996e32274..00000000000
--- a/examples/pysp/networkflow/1ef10db/Scenario8.dat
+++ /dev/null
@@ -1,6 +0,0 @@
-load "Driver={MySQL};Database=networkflow;Server=localhost;User=netflow;Password=pyomopass;" using=pyodbc query="SELECT name FROM Nodes" format=set : Nodes ;
-load "Driver={MySQL};Database=networkflow;Server=localhost;User=netflow;Password=pyomopass;" using=pyodbc query="SELECT first,second FROM Arcs" format=set : Arcs ;
-load "Driver={MySQL};Database=networkflow;Server=localhost;User=netflow;Password=pyomopass;" using=pyodbc query="SELECT first,second,cost FROM CapCost" format=param : CapCost ;
-load "Driver={MySQL};Database=networkflow;Server=localhost;User=netflow;Password=pyomopass;" using=pyodbc query="SELECT first,second,cost FROM b0Cost" format=param : b0Cost ;
-load "Driver={MySQL};Database=networkflow;Server=localhost;User=netflow;Password=pyomopass;" using=pyodbc query="SELECT first,second,cost FROM FCost WHERE scenario=8" format=param : FCost ;
-load "Driver={MySQL};Database=networkflow;Server=localhost;User=netflow;Password=pyomopass;" using=pyodbc query="SELECT first,second,demand FROM Demand WHERE scenario=8" format=param : Demand ;
diff --git a/examples/pysp/networkflow/1ef10db/Scenario9.dat b/examples/pysp/networkflow/1ef10db/Scenario9.dat
deleted file mode 100644
index bbb44522a6b..00000000000
--- a/examples/pysp/networkflow/1ef10db/Scenario9.dat
+++ /dev/null
@@ -1,6 +0,0 @@
-load "Driver={MySQL};Database=networkflow;Server=localhost;User=netflow;Password=pyomopass;" using=pyodbc query="SELECT name FROM Nodes" format=set : Nodes ;
-load "Driver={MySQL};Database=networkflow;Server=localhost;User=netflow;Password=pyomopass;" using=pyodbc query="SELECT first,second FROM Arcs" format=set : Arcs ;
-load "Driver={MySQL};Database=networkflow;Server=localhost;User=netflow;Password=pyomopass;" using=pyodbc query="SELECT first,second,cost FROM CapCost" format=param : CapCost ;
-load "Driver={MySQL};Database=networkflow;Server=localhost;User=netflow;Password=pyomopass;" using=pyodbc query="SELECT first,second,cost FROM b0Cost" format=param : b0Cost ;
-load "Driver={MySQL};Database=networkflow;Server=localhost;User=netflow;Password=pyomopass;" using=pyodbc query="SELECT first,second,cost FROM FCost WHERE scenario=9" format=param : FCost ;
-load "Driver={MySQL};Database=networkflow;Server=localhost;User=netflow;Password=pyomopass;" using=pyodbc query="SELECT first,second,demand FROM Demand WHERE scenario=9" format=param : Demand ;
diff --git a/examples/pysp/networkflow/1ef10db/ScenarioStructure.dat b/examples/pysp/networkflow/1ef10db/ScenarioStructure.dat
deleted file mode 100644
index 5e4719193ba..00000000000
--- a/examples/pysp/networkflow/1ef10db/ScenarioStructure.dat
+++ /dev/null
@@ -1,81 +0,0 @@
-# IMPORTANT - THE STAGES ARE ASSUMED TO BE IN TIME-ORDER.
-
-set Stages := FirstStage SecondStage ;
-
-set Nodes := RootNode
- Scenario1Node
- Scenario2Node
- Scenario3Node
- Scenario4Node
- Scenario5Node
- Scenario6Node
- Scenario7Node
- Scenario8Node
- Scenario9Node
- Scenario10Node ;
-
-param NodeStage := RootNode FirstStage
- Scenario1Node SecondStage
- Scenario2Node SecondStage
- Scenario3Node SecondStage
- Scenario4Node SecondStage
- Scenario5Node SecondStage
- Scenario6Node SecondStage
- Scenario7Node SecondStage
- Scenario8Node SecondStage
- Scenario9Node SecondStage
- Scenario10Node SecondStage ;
-
-set Children[RootNode] := Scenario1Node
- Scenario2Node
- Scenario3Node
- Scenario4Node
- Scenario5Node
- Scenario6Node
- Scenario7Node
- Scenario8Node
- Scenario9Node
- Scenario10Node ;
-
-param ConditionalProbability := RootNode 1.0
- Scenario1Node 0.1
- Scenario2Node 0.1
- Scenario3Node 0.1
- Scenario4Node 0.1
- Scenario5Node 0.1
- Scenario6Node 0.1
- Scenario7Node 0.1
- Scenario8Node 0.1
- Scenario9Node 0.1
- Scenario10Node 0.1 ;
-
-set Scenarios := Scenario1
- Scenario2
- Scenario3
- Scenario4
- Scenario5
- Scenario6
- Scenario7
- Scenario8
- Scenario9
- Scenario10 ;
-
-param ScenarioLeafNode := Scenario1 Scenario1Node
- Scenario2 Scenario2Node
- Scenario3 Scenario3Node
- Scenario4 Scenario4Node
- Scenario5 Scenario5Node
- Scenario6 Scenario6Node
- Scenario7 Scenario7Node
- Scenario8 Scenario8Node
- Scenario9 Scenario9Node
- Scenario10 Scenario10Node ;
-
-set StageVariables[FirstStage] := b0[*,*]
- x[*,*] ;
-set StageVariables[SecondStage] := b[*,*]
- y[*,*,*,*] ;
-
-param StageCost := FirstStage FirstStageCost
- SecondStage SecondStageCost ;
-
diff --git a/examples/pysp/networkflow/1ef3-cc/LeafNode1.dat b/examples/pysp/networkflow/1ef3-cc/LeafNode1.dat
deleted file mode 100644
index 37ac0a62bf5..00000000000
--- a/examples/pysp/networkflow/1ef3-cc/LeafNode1.dat
+++ /dev/null
@@ -1,25 +0,0 @@
-param FCost:
- A B C D E F G H I J :=
- A 0.00 560.00 1845.00 2010.00 2175.00 1560.00 1670.00 1780.00 2835.00 950.00
- B 560.00 0.00 1740.00 640.00 650.00 1420.00 2310.00 1660.00 890.00 900.00
- C 1845.00 1740.00 0.00 1680.00 1250.00 2070.00 705.00 1540.00 835.00 1700.00
- D 2010.00 640.00 1680.00 0.00 1100.00 1860.00 690.00 710.00 2340.00 1600.00
- E 2175.00 650.00 1250.00 1100.00 0.00 1100.00 1875.00 1300.00 2175.00 1500.00
- F 1560.00 1420.00 2070.00 1860.00 1100.00 0.00 560.00 640.00 2010.00 700.00
- G 1670.00 2310.00 705.00 690.00 1875.00 560.00 0.00 1740.00 615.00 1950.00
- H 1780.00 1660.00 1540.00 710.00 1300.00 640.00 1740.00 0.00 560.00 600.00
- I 2835.00 890.00 835.00 2340.00 2175.00 2010.00 615.00 560.00 0.00 550.00
- J 950.00 900.00 1700.00 1600.00 1500.00 700.00 1950.00 600.00 550.00 0.00 ;
-
-param Demand:
- A B C D E F G H I J :=
- A 0 3.47 4.16 3.81 4.02 3.77 3.84 4.02 3.80 3.84
- B 3.47 0 4.21 4.18 3.94 4.14 4.07 3.69 3.50 3.96
- C 4.16 4.21 0 4.29 4.27 4.26 4.09 3.73 3.64 3.88
- D 3.81 4.18 4.29 0 3.66 3.95 3.54 4.07 3.64 4.21
- E 4.02 3.94 4.27 3.66 0 4.04 4.14 3.92 3.57 3.77
- F 3.77 4.14 4.26 3.95 4.04 0 3.69 3.62 3.76 3.73
- G 3.84 4.07 4.09 3.54 4.14 3.69 0 4.10 3.25 4.08
- H 4.02 3.69 3.73 4.07 3.92 3.62 4.10 0 3.55 3.82
- I 3.80 3.50 3.64 3.64 3.57 3.76 3.25 3.55 0 4.19
- J 3.84 3.96 3.88 4.21 3.77 3.73 4.08 3.82 4.19 0 ;
diff --git a/examples/pysp/networkflow/1ef3-cc/LeafNode2.dat b/examples/pysp/networkflow/1ef3-cc/LeafNode2.dat
deleted file mode 100644
index 029a06c6a99..00000000000
--- a/examples/pysp/networkflow/1ef3-cc/LeafNode2.dat
+++ /dev/null
@@ -1,25 +0,0 @@
-param FCost:
- A B C D E F G H I J :=
- A 0.00 560.00 1230.00 1340.00 2175.00 2340.00 2505.00 890.00 2835.00 1900.00
- B 560.00 0.00 1160.00 640.00 1950.00 710.00 1540.00 830.00 890.00 1800.00
- C 1230.00 1160.00 0.00 1120.00 1250.00 690.00 705.00 1540.00 835.00 1700.00
- D 1340.00 640.00 1120.00 0.00 550.00 1860.00 1380.00 710.00 1560.00 800.00
- E 2175.00 1950.00 1250.00 550.00 0.00 1650.00 1875.00 650.00 1450.00 750.00
- F 2340.00 710.00 690.00 1860.00 1650.00 0.00 1680.00 640.00 1340.00 2100.00
- G 2505.00 1540.00 705.00 1380.00 1875.00 1680.00 0.00 1160.00 1230.00 650.00
- H 890.00 830.00 1540.00 710.00 650.00 640.00 1160.00 0.00 1120.00 1800.00
- I 2835.00 890.00 835.00 1560.00 1450.00 1340.00 1230.00 1120.00 0.00 550.00
- J 1900.00 1800.00 1700.00 800.00 750.00 2100.00 650.00 1800.00 550.00 0.00 ;
-
-param Demand:
- A B C D E F G H I J :=
- A 0 3.41 3.24 3.22 2.80 3.06 3.32 3.00 3.53 3.35
- B 3.41 0 3.15 3.50 2.98 3.19 3.14 3.12 3.49 3.20
- C 3.24 3.15 0 3.01 3.13 3.24 3.08 3.59 3.05 3.19
- D 3.22 3.50 3.01 0 3.35 2.97 3.18 3.17 2.90 3.12
- E 2.80 2.98 3.13 3.35 0 3.17 3.12 3.27 3.14 3.16
- F 3.06 3.19 3.24 2.97 3.17 0 3.01 3.21 2.87 3.25
- G 3.32 3.14 3.08 3.18 3.12 3.01 0 3.02 2.95 3.18
- H 3.00 3.12 3.59 3.17 3.27 3.21 3.02 0 3.37 3.02
- I 3.53 3.49 3.05 2.90 3.14 2.87 2.95 3.37 0 3.10
- J 3.35 3.20 3.19 3.12 3.16 3.25 3.18 3.02 3.10 0 ;
diff --git a/examples/pysp/networkflow/1ef3-cc/LeafNode3.dat b/examples/pysp/networkflow/1ef3-cc/LeafNode3.dat
deleted file mode 100644
index fbf33d9d8f7..00000000000
--- a/examples/pysp/networkflow/1ef3-cc/LeafNode3.dat
+++ /dev/null
@@ -1,25 +0,0 @@
-param FCost:
- A B C D E F G H I J :=
- A 0.00 1120.00 1230.00 670.00 1450.00 1560.00 835.00 1780.00 1890.00 1900.00
- B 1120.00 0.00 1160.00 1920.00 650.00 710.00 770.00 2490.00 2670.00 1800.00
- C 1230.00 1160.00 0.00 560.00 1875.00 690.00 2115.00 2310.00 835.00 2550.00
- D 670.00 1920.00 560.00 0.00 1100.00 1240.00 1380.00 710.00 1560.00 1600.00
- E 1450.00 650.00 1875.00 1100.00 0.00 1650.00 625.00 1300.00 725.00 750.00
- F 1560.00 710.00 690.00 1240.00 1650.00 0.00 1120.00 1280.00 670.00 700.00
- G 835.00 770.00 2115.00 1380.00 625.00 1120.00 0.00 1740.00 615.00 1950.00
- H 1780.00 2490.00 2310.00 710.00 1300.00 1280.00 1740.00 0.00 1680.00 1800.00
- I 1890.00 2670.00 835.00 1560.00 725.00 670.00 615.00 1680.00 0.00 1650.00
- J 1900.00 1800.00 2550.00 1600.00 750.00 700.00 1950.00 1800.00 1650.00 0.00 ;
-
-param Demand:
- A B C D E F G H I J :=
- A 0 2.66 3.06 2.77 3.06 3.17 3.61 3.69 3.41 3.12
- B 2.66 0 2.86 3.34 3.23 3.34 2.85 3.06 3.16 3.06
- C 3.06 2.86 0 3.18 3.46 3.28 2.95 3.18 3.40 3.04
- D 2.77 3.34 3.18 0 2.86 3.15 3.61 2.88 3.44 2.86
- E 3.06 3.23 3.46 2.86 0 3.11 3.02 3.50 3.67 3.30
- F 3.17 3.34 3.28 3.15 3.11 0 3.25 3.13 2.73 3.38
- G 3.61 2.85 2.95 3.61 3.02 3.25 0 3.11 3.32 3.67
- H 3.69 3.06 3.18 2.88 3.50 3.13 3.11 0 2.68 3.25
- I 3.41 3.16 3.40 3.44 3.67 2.73 3.32 2.68 0 2.94
- J 3.12 3.06 3.04 2.86 3.30 3.38 3.67 3.25 2.94 0 ;
diff --git a/examples/pysp/networkflow/1ef3-cc/RootNode.dat b/examples/pysp/networkflow/1ef3-cc/RootNode.dat
deleted file mode 100644
index 08282045f4f..00000000000
--- a/examples/pysp/networkflow/1ef3-cc/RootNode.dat
+++ /dev/null
@@ -1,73 +0,0 @@
-set Nodes := A B C D E F G H I J;
-
-set Arcs := (A,B) (B,A) (A,C) (C,A) (B,C) (C,B) (B,D) (D,B) (B,E) (E,B) (C,D) (D,C) (D,E) (E,D) (F,G) (G,F) (F,H) (H,F) (G,H) (H,G) (G,I) (I,G) (G,J) (J,G) (H,I) (I,H) (I,J) (J,I) (E,F) (F,E);
-
-param CapCost :=
-A B 112
-A C 123
-B C 116
-B D 128
-B E 130
-C D 112
-D E 110
-B A 112
-C A 123
-C B 116
-D B 128
-E B 130
-D C 112
-E D 110
-E F 110
-F E 110
-F G 112
-F H 128
-G H 116
-G I 123
-G J 130
-H I 112
-I J 110
-G F 112
-H F 128
-H G 116
-I G 123
-J G 130
-I H 112
-J I 110
-;
-
-param b0Cost :=
-A B 1120
-A C 1230
-B C 1160
-B D 1280
-B E 1300
-C D 1120
-D E 1100
-B A 1120
-C A 1230
-C B 1160
-D B 1280
-E B 1300
-D C 1120
-E D 1100
-E F 1100
-F E 1100
-F G 1120
-F H 1280
-G H 1160
-G I 1230
-G J 1300
-H I 1120
-I J 1100
-G F 1120
-H F 1280
-H G 1160
-I G 1230
-J G 1300
-I H 1120
-J I 1100
-;
-
-param M := 174.88 ;
-
-param UnmetDemandThreshold := 0.2 ;
diff --git a/examples/pysp/networkflow/1ef3-cc/ScenarioStructure.dat b/examples/pysp/networkflow/1ef3-cc/ScenarioStructure.dat
deleted file mode 100644
index 98cf16321f5..00000000000
--- a/examples/pysp/networkflow/1ef3-cc/ScenarioStructure.dat
+++ /dev/null
@@ -1,43 +0,0 @@
-# IMPORTANT - THE STAGES ARE ASSUMED TO BE IN TIME-ORDER.
-
-set Stages := FirstStage SecondStage ;
-
-set Nodes := RootNode
- LeafNode1
- LeafNode2
- LeafNode3 ;
-
-param NodeStage := RootNode FirstStage
- LeafNode1 SecondStage
- LeafNode2 SecondStage
- LeafNode3 SecondStage ;
-
-set Children[RootNode] := LeafNode1
- LeafNode2
- LeafNode3 ;
-
-param ConditionalProbability := RootNode 1.0
- LeafNode1 0.33
- LeafNode2 0.33
- LeafNode3 0.34 ;
-
-set Scenarios := Scenario1
- Scenario2
- Scenario3 ;
-
-param ScenarioLeafNode := Scenario1 LeafNode1
- Scenario2 LeafNode2
- Scenario3 LeafNode3 ;
-
-set StageVariables[FirstStage] := b0[*,*]
- x[*,*] ;
-set StageVariables[SecondStage] := delta[*]
- UnmetDemand[*,*]
- b[*,*]
- y[*,*,*,*] ;
-
-param StageCost := FirstStage FirstStageCost
- SecondStage SecondStageCost ;
-
-param ScenarioBasedData := False ;
-
diff --git a/examples/pysp/networkflow/1ef3/Scenario1.dat b/examples/pysp/networkflow/1ef3/Scenario1.dat
deleted file mode 100644
index 957eae74ec0..00000000000
--- a/examples/pysp/networkflow/1ef3/Scenario1.dat
+++ /dev/null
@@ -1,97 +0,0 @@
-set Nodes := A B C D E F G H I J;
-
-set Arcs := (A,B) (B,A) (A,C) (C,A) (B,C) (C,B) (B,D) (D,B) (B,E) (E,B) (C,D) (D,C) (D,E) (E,D) (F,G) (G,F) (F,H) (H,F) (G,H) (H,G) (G,I) (I,G) (G,J) (J,G) (H,I) (I,H) (I,J) (J,I) (E,F) (F,E);
-
-param CapCost :=
-A B 112
-A C 123
-B C 116
-B D 128
-B E 130
-C D 112
-D E 110
-B A 112
-C A 123
-C B 116
-D B 128
-E B 130
-D C 112
-E D 110
-E F 110
-F E 110
-F G 112
-F H 128
-G H 116
-G I 123
-G J 130
-H I 112
-I J 110
-G F 112
-H F 128
-H G 116
-I G 123
-J G 130
-I H 112
-J I 110
-;
-
-param b0Cost :=
-A B 1120
-A C 1230
-B C 1160
-B D 1280
-B E 1300
-C D 1120
-D E 1100
-B A 1120
-C A 1230
-C B 1160
-D B 1280
-E B 1300
-D C 1120
-E D 1100
-E F 1100
-F E 1100
-F G 1120
-F H 1280
-G H 1160
-G I 1230
-G J 1300
-H I 1120
-I J 1100
-G F 1120
-H F 1280
-H G 1160
-I G 1230
-J G 1300
-I H 1120
-J I 1100
-;
-
-param FCost:
- A B C D E F G H I J :=
- A 0.00 560.00 1845.00 2010.00 2175.00 1560.00 1670.00 1780.00 2835.00 950.00
- B 560.00 0.00 1740.00 640.00 650.00 1420.00 2310.00 1660.00 890.00 900.00
- C 1845.00 1740.00 0.00 1680.00 1250.00 2070.00 705.00 1540.00 835.00 1700.00
- D 2010.00 640.00 1680.00 0.00 1100.00 1860.00 690.00 710.00 2340.00 1600.00
- E 2175.00 650.00 1250.00 1100.00 0.00 1100.00 1875.00 1300.00 2175.00 1500.00
- F 1560.00 1420.00 2070.00 1860.00 1100.00 0.00 560.00 640.00 2010.00 700.00
- G 1670.00 2310.00 705.00 690.00 1875.00 560.00 0.00 1740.00 615.00 1950.00
- H 1780.00 1660.00 1540.00 710.00 1300.00 640.00 1740.00 0.00 560.00 600.00
- I 2835.00 890.00 835.00 2340.00 2175.00 2010.00 615.00 560.00 0.00 550.00
- J 950.00 900.00 1700.00 1600.00 1500.00 700.00 1950.00 600.00 550.00 0.00 ;
-
-param Demand:
- A B C D E F G H I J :=
- A 0 3.47 4.16 3.81 4.02 3.77 3.84 4.02 3.80 3.84
- B 3.47 0 4.21 4.18 3.94 4.14 4.07 3.69 3.50 3.96
- C 4.16 4.21 0 4.29 4.27 4.26 4.09 3.73 3.64 3.88
- D 3.81 4.18 4.29 0 3.66 3.95 3.54 4.07 3.64 4.21
- E 4.02 3.94 4.27 3.66 0 4.04 4.14 3.92 3.57 3.77
- F 3.77 4.14 4.26 3.95 4.04 0 3.69 3.62 3.76 3.73
- G 3.84 4.07 4.09 3.54 4.14 3.69 0 4.10 3.25 4.08
- H 4.02 3.69 3.73 4.07 3.92 3.62 4.10 0 3.55 3.82
- I 3.80 3.50 3.64 3.64 3.57 3.76 3.25 3.55 0 4.19
- J 3.84 3.96 3.88 4.21 3.77 3.73 4.08 3.82 4.19 0 ;
-
-param M := 174.88 ;
diff --git a/examples/pysp/networkflow/1ef3/Scenario2.dat b/examples/pysp/networkflow/1ef3/Scenario2.dat
deleted file mode 100644
index 7fc0e9fbf0e..00000000000
--- a/examples/pysp/networkflow/1ef3/Scenario2.dat
+++ /dev/null
@@ -1,97 +0,0 @@
-set Nodes := A B C D E F G H I J;
-
-set Arcs := (A,B) (B,A) (A,C) (C,A) (B,C) (C,B) (B,D) (D,B) (B,E) (E,B) (C,D) (D,C) (D,E) (E,D) (F,G) (G,F) (F,H) (H,F) (G,H) (H,G) (G,I) (I,G) (G,J) (J,G) (H,I) (I,H) (I,J) (J,I) (E,F) (F,E);
-
-param CapCost :=
-A B 112
-A C 123
-B C 116
-B D 128
-B E 130
-C D 112
-D E 110
-B A 112
-C A 123
-C B 116
-D B 128
-E B 130
-D C 112
-E D 110
-E F 110
-F E 110
-F G 112
-F H 128
-G H 116
-G I 123
-G J 130
-H I 112
-I J 110
-G F 112
-H F 128
-H G 116
-I G 123
-J G 130
-I H 112
-J I 110
-;
-
-param b0Cost :=
-A B 1120
-A C 1230
-B C 1160
-B D 1280
-B E 1300
-C D 1120
-D E 1100
-B A 1120
-C A 1230
-C B 1160
-D B 1280
-E B 1300
-D C 1120
-E D 1100
-E F 1100
-F E 1100
-F G 1120
-F H 1280
-G H 1160
-G I 1230
-G J 1300
-H I 1120
-I J 1100
-G F 1120
-H F 1280
-H G 1160
-I G 1230
-J G 1300
-I H 1120
-J I 1100
-;
-
-param FCost:
- A B C D E F G H I J :=
- A 0.00 560.00 1230.00 1340.00 2175.00 2340.00 2505.00 890.00 2835.00 1900.00
- B 560.00 0.00 1160.00 640.00 1950.00 710.00 1540.00 830.00 890.00 1800.00
- C 1230.00 1160.00 0.00 1120.00 1250.00 690.00 705.00 1540.00 835.00 1700.00
- D 1340.00 640.00 1120.00 0.00 550.00 1860.00 1380.00 710.00 1560.00 800.00
- E 2175.00 1950.00 1250.00 550.00 0.00 1650.00 1875.00 650.00 1450.00 750.00
- F 2340.00 710.00 690.00 1860.00 1650.00 0.00 1680.00 640.00 1340.00 2100.00
- G 2505.00 1540.00 705.00 1380.00 1875.00 1680.00 0.00 1160.00 1230.00 650.00
- H 890.00 830.00 1540.00 710.00 650.00 640.00 1160.00 0.00 1120.00 1800.00
- I 2835.00 890.00 835.00 1560.00 1450.00 1340.00 1230.00 1120.00 0.00 550.00
- J 1900.00 1800.00 1700.00 800.00 750.00 2100.00 650.00 1800.00 550.00 0.00 ;
-
-param Demand:
- A B C D E F G H I J :=
- A 0 3.41 3.24 3.22 2.80 3.06 3.32 3.00 3.53 3.35
- B 3.41 0 3.15 3.50 2.98 3.19 3.14 3.12 3.49 3.20
- C 3.24 3.15 0 3.01 3.13 3.24 3.08 3.59 3.05 3.19
- D 3.22 3.50 3.01 0 3.35 2.97 3.18 3.17 2.90 3.12
- E 2.80 2.98 3.13 3.35 0 3.17 3.12 3.27 3.14 3.16
- F 3.06 3.19 3.24 2.97 3.17 0 3.01 3.21 2.87 3.25
- G 3.32 3.14 3.08 3.18 3.12 3.01 0 3.02 2.95 3.18
- H 3.00 3.12 3.59 3.17 3.27 3.21 3.02 0 3.37 3.02
- I 3.53 3.49 3.05 2.90 3.14 2.87 2.95 3.37 0 3.10
- J 3.35 3.20 3.19 3.12 3.16 3.25 3.18 3.02 3.10 0 ;
-
-param M := 174.88 ;
diff --git a/examples/pysp/networkflow/1ef3/Scenario3.dat b/examples/pysp/networkflow/1ef3/Scenario3.dat
deleted file mode 100644
index fd4af00131a..00000000000
--- a/examples/pysp/networkflow/1ef3/Scenario3.dat
+++ /dev/null
@@ -1,97 +0,0 @@
-set Nodes := A B C D E F G H I J;
-
-set Arcs := (A,B) (B,A) (A,C) (C,A) (B,C) (C,B) (B,D) (D,B) (B,E) (E,B) (C,D) (D,C) (D,E) (E,D) (F,G) (G,F) (F,H) (H,F) (G,H) (H,G) (G,I) (I,G) (G,J) (J,G) (H,I) (I,H) (I,J) (J,I) (E,F) (F,E);
-
-param CapCost :=
-A B 112
-A C 123
-B C 116
-B D 128
-B E 130
-C D 112
-D E 110
-B A 112
-C A 123
-C B 116
-D B 128
-E B 130
-D C 112
-E D 110
-E F 110
-F E 110
-F G 112
-F H 128
-G H 116
-G I 123
-G J 130
-H I 112
-I J 110
-G F 112
-H F 128
-H G 116
-I G 123
-J G 130
-I H 112
-J I 110
-;
-
-param b0Cost :=
-A B 1120
-A C 1230
-B C 1160
-B D 1280
-B E 1300
-C D 1120
-D E 1100
-B A 1120
-C A 1230
-C B 1160
-D B 1280
-E B 1300
-D C 1120
-E D 1100
-E F 1100
-F E 1100
-F G 1120
-F H 1280
-G H 1160
-G I 1230
-G J 1300
-H I 1120
-I J 1100
-G F 1120
-H F 1280
-H G 1160
-I G 1230
-J G 1300
-I H 1120
-J I 1100
-;
-
-param FCost:
- A B C D E F G H I J :=
- A 0.00 1120.00 1230.00 670.00 1450.00 1560.00 835.00 1780.00 1890.00 1900.00
- B 1120.00 0.00 1160.00 1920.00 650.00 710.00 770.00 2490.00 2670.00 1800.00
- C 1230.00 1160.00 0.00 560.00 1875.00 690.00 2115.00 2310.00 835.00 2550.00
- D 670.00 1920.00 560.00 0.00 1100.00 1240.00 1380.00 710.00 1560.00 1600.00
- E 1450.00 650.00 1875.00 1100.00 0.00 1650.00 625.00 1300.00 725.00 750.00
- F 1560.00 710.00 690.00 1240.00 1650.00 0.00 1120.00 1280.00 670.00 700.00
- G 835.00 770.00 2115.00 1380.00 625.00 1120.00 0.00 1740.00 615.00 1950.00
- H 1780.00 2490.00 2310.00 710.00 1300.00 1280.00 1740.00 0.00 1680.00 1800.00
- I 1890.00 2670.00 835.00 1560.00 725.00 670.00 615.00 1680.00 0.00 1650.00
- J 1900.00 1800.00 2550.00 1600.00 750.00 700.00 1950.00 1800.00 1650.00 0.00 ;
-
-param Demand:
- A B C D E F G H I J :=
- A 0 2.66 3.06 2.77 3.06 3.17 3.61 3.69 3.41 3.12
- B 2.66 0 2.86 3.34 3.23 3.34 2.85 3.06 3.16 3.06
- C 3.06 2.86 0 3.18 3.46 3.28 2.95 3.18 3.40 3.04
- D 2.77 3.34 3.18 0 2.86 3.15 3.61 2.88 3.44 2.86
- E 3.06 3.23 3.46 2.86 0 3.11 3.02 3.50 3.67 3.30
- F 3.17 3.34 3.28 3.15 3.11 0 3.25 3.13 2.73 3.38
- G 3.61 2.85 2.95 3.61 3.02 3.25 0 3.11 3.32 3.67
- H 3.69 3.06 3.18 2.88 3.50 3.13 3.11 0 2.68 3.25
- I 3.41 3.16 3.40 3.44 3.67 2.73 3.32 2.68 0 2.94
- J 3.12 3.06 3.04 2.86 3.30 3.38 3.67 3.25 2.94 0 ;
-
-param M := 174.88 ;
diff --git a/examples/pysp/networkflow/1ef3/ScenarioStructure.dat b/examples/pysp/networkflow/1ef3/ScenarioStructure.dat
deleted file mode 100644
index 262002da046..00000000000
--- a/examples/pysp/networkflow/1ef3/ScenarioStructure.dat
+++ /dev/null
@@ -1,39 +0,0 @@
-# IMPORTANT - THE STAGES ARE ASSUMED TO BE IN TIME-ORDER.
-
-set Stages := FirstStage SecondStage ;
-
-set Nodes := RootNode
- Scenario1Node
- Scenario2Node
- Scenario3Node ;
-
-param NodeStage := RootNode FirstStage
- Scenario1Node SecondStage
- Scenario2Node SecondStage
- Scenario3Node SecondStage ;
-
-set Children[RootNode] := Scenario1Node
- Scenario2Node
- Scenario3Node ;
-
-param ConditionalProbability := RootNode 1.0
- Scenario1Node 0.33
- Scenario2Node 0.33
- Scenario3Node 0.34 ;
-
-set Scenarios := Scenario1
- Scenario2
- Scenario3 ;
-
-param ScenarioLeafNode := Scenario1 Scenario1Node
- Scenario2 Scenario2Node
- Scenario3 Scenario3Node ;
-
-set StageVariables[FirstStage] := b0[*,*]
- x[*,*] ;
-set StageVariables[SecondStage] := b[*,*]
- y[*,*,*,*] ;
-
-param StageCost := FirstStage FirstStageCost
- SecondStage SecondStageCost ;
-
diff --git a/examples/pysp/networkflow/1ef50.tbz2 b/examples/pysp/networkflow/1ef50.tbz2
deleted file mode 100644
index f52fc4a2ce3..00000000000
Binary files a/examples/pysp/networkflow/1ef50.tbz2 and /dev/null differ
diff --git a/examples/pysp/networkflow/2ef10.tbz2 b/examples/pysp/networkflow/2ef10.tbz2
deleted file mode 100644
index bb5f3d5a632..00000000000
Binary files a/examples/pysp/networkflow/2ef10.tbz2 and /dev/null differ
diff --git a/examples/pysp/networkflow/2ef50.tbz2 b/examples/pysp/networkflow/2ef50.tbz2
deleted file mode 100644
index 5c620d49697..00000000000
Binary files a/examples/pysp/networkflow/2ef50.tbz2 and /dev/null differ
diff --git a/examples/pysp/networkflow/3ef10.tbz2 b/examples/pysp/networkflow/3ef10.tbz2
deleted file mode 100644
index 4a92ee0d5bf..00000000000
Binary files a/examples/pysp/networkflow/3ef10.tbz2 and /dev/null differ
diff --git a/examples/pysp/networkflow/3ef50.tbz2 b/examples/pysp/networkflow/3ef50.tbz2
deleted file mode 100644
index 486c4159a14..00000000000
Binary files a/examples/pysp/networkflow/3ef50.tbz2 and /dev/null differ
diff --git a/examples/pysp/networkflow/4ef10.tbz2 b/examples/pysp/networkflow/4ef10.tbz2
deleted file mode 100644
index 222d09b9d07..00000000000
Binary files a/examples/pysp/networkflow/4ef10.tbz2 and /dev/null differ
diff --git a/examples/pysp/networkflow/4ef50.tbz2 b/examples/pysp/networkflow/4ef50.tbz2
deleted file mode 100644
index cfba2f16ff9..00000000000
Binary files a/examples/pysp/networkflow/4ef50.tbz2 and /dev/null differ
diff --git a/examples/pysp/networkflow/50scenario-bundle-specs/FiveBundles.dat b/examples/pysp/networkflow/50scenario-bundle-specs/FiveBundles.dat
deleted file mode 100644
index b82a30b209f..00000000000
--- a/examples/pysp/networkflow/50scenario-bundle-specs/FiveBundles.dat
+++ /dev/null
@@ -1,15 +0,0 @@
-param Bundling := True ;
-
-set Bundles :=
-Bundle1
-Bundle2
-Bundle3
-Bundle4
-Bundle5
-;
-
-set BundleScenarios[Bundle1] := Scenario1 Scenario2 Scenario3 Scenario4 Scenario5 Scenario6 Scenario7 Scenario8 Scenario9 Scenario10 ;
-set BundleScenarios[Bundle2] := Scenario11 Scenario12 Scenario13 Scenario14 Scenario15 Scenario16 Scenario17 Scenario18 Scenario19 Scenario20 ;
-set BundleScenarios[Bundle3] := Scenario21 Scenario22 Scenario23 Scenario24 Scenario25 Scenario26 Scenario27 Scenario28 Scenario29 Scenario30 ;
-set BundleScenarios[Bundle4] := Scenario31 Scenario32 Scenario33 Scenario34 Scenario35 Scenario36 Scenario37 Scenario38 Scenario39 Scenario40 ;
-set BundleScenarios[Bundle5] := Scenario41 Scenario42 Scenario43 Scenario44 Scenario45 Scenario46 Scenario47 Scenario48 Scenario49 Scenario50 ;
diff --git a/examples/pysp/networkflow/50scenario-bundle-specs/SixteenBundles.dat b/examples/pysp/networkflow/50scenario-bundle-specs/SixteenBundles.dat
deleted file mode 100644
index fea076a6435..00000000000
--- a/examples/pysp/networkflow/50scenario-bundle-specs/SixteenBundles.dat
+++ /dev/null
@@ -1,37 +0,0 @@
-param Bundling := True ;
-
-set Bundles :=
-Bundle1
-Bundle2
-Bundle3
-Bundle4
-Bundle5
-Bundle6
-Bundle7
-Bundle8
-Bundle9
-Bundle10
-Bundle11
-Bundle12
-Bundle13
-Bundle14
-Bundle15
-Bundle16
-;
-
-set BundleScenarios[Bundle1] := Scenario1 Scenario2 Scenario3 ;
-set BundleScenarios[Bundle2] := Scenario4 Scenario5 Scenario6 ;
-set BundleScenarios[Bundle3] := Scenario7 Scenario8 Scenario9 ;
-set BundleScenarios[Bundle4] := Scenario10 Scenario11 Scenario12 ;
-set BundleScenarios[Bundle5] := Scenario13 Scenario14 Scenario15 ;
-set BundleScenarios[Bundle6] := Scenario16 Scenario17 Scenario18 ;
-set BundleScenarios[Bundle7] := Scenario19 Scenario20 Scenario21 ;
-set BundleScenarios[Bundle8] := Scenario22 Scenario23 Scenario24 ;
-set BundleScenarios[Bundle9] := Scenario25 Scenario26 Scenario27 ;
-set BundleScenarios[Bundle10] := Scenario28 Scenario29 Scenario30 ;
-set BundleScenarios[Bundle11] := Scenario31 Scenario32 Scenario33 ;
-set BundleScenarios[Bundle12] := Scenario34 Scenario35 Scenario36 ;
-set BundleScenarios[Bundle13] := Scenario37 Scenario38 Scenario39 ;
-set BundleScenarios[Bundle14] := Scenario40 Scenario41 Scenario42 ;
-set BundleScenarios[Bundle15] := Scenario43 Scenario44 Scenario45 Scenario46 ;
-set BundleScenarios[Bundle16] := Scenario47 Scenario48 Scenario49 Scenario50 ;
diff --git a/examples/pysp/networkflow/50scenario-bundle-specs/TenBundles.dat b/examples/pysp/networkflow/50scenario-bundle-specs/TenBundles.dat
deleted file mode 100644
index da063f01649..00000000000
--- a/examples/pysp/networkflow/50scenario-bundle-specs/TenBundles.dat
+++ /dev/null
@@ -1,25 +0,0 @@
-param Bundling := True ;
-
-set Bundles :=
-Bundle1
-Bundle2
-Bundle3
-Bundle4
-Bundle5
-Bundle6
-Bundle7
-Bundle8
-Bundle9
-Bundle10
-;
-
-set BundleScenarios[Bundle1] := Scenario1 Scenario2 Scenario3 Scenario4 Scenario5 ;
-set BundleScenarios[Bundle2] := Scenario6 Scenario7 Scenario8 Scenario9 Scenario10 ;
-set BundleScenarios[Bundle3] := Scenario11 Scenario12 Scenario13 Scenario14 Scenario15 ;
-set BundleScenarios[Bundle4] := Scenario16 Scenario17 Scenario18 Scenario19 Scenario20 ;
-set BundleScenarios[Bundle5] := Scenario21 Scenario22 Scenario23 Scenario24 Scenario25 ;
-set BundleScenarios[Bundle6] := Scenario26 Scenario27 Scenario28 Scenario29 Scenario30 ;
-set BundleScenarios[Bundle7] := Scenario31 Scenario32 Scenario33 Scenario34 Scenario35 ;
-set BundleScenarios[Bundle8] := Scenario36 Scenario37 Scenario38 Scenario39 Scenario40 ;
-set BundleScenarios[Bundle9] := Scenario41 Scenario42 Scenario43 Scenario44 Scenario45 ;
-set BundleScenarios[Bundle10] := Scenario46 Scenario47 Scenario48 Scenario49 Scenario50 ;
diff --git a/examples/pysp/networkflow/50scenario-bundle-specs/TwentyFiveBundles.dat b/examples/pysp/networkflow/50scenario-bundle-specs/TwentyFiveBundles.dat
deleted file mode 100644
index 13c23f4dfb9..00000000000
--- a/examples/pysp/networkflow/50scenario-bundle-specs/TwentyFiveBundles.dat
+++ /dev/null
@@ -1,55 +0,0 @@
-param Bundling := True ;
-
-set Bundles :=
-Bundle1
-Bundle2
-Bundle3
-Bundle4
-Bundle5
-Bundle6
-Bundle7
-Bundle8
-Bundle9
-Bundle10
-Bundle11
-Bundle12
-Bundle13
-Bundle14
-Bundle15
-Bundle16
-Bundle17
-Bundle18
-Bundle19
-Bundle20
-Bundle21
-Bundle22
-Bundle23
-Bundle24
-Bundle25
-;
-
-set BundleScenarios[Bundle1] := Scenario1 Scenario2;
-set BundleScenarios[Bundle2] := Scenario3 Scenario4;
-set BundleScenarios[Bundle3] := Scenario5 Scenario6;
-set BundleScenarios[Bundle4] := Scenario7 Scenario8;
-set BundleScenarios[Bundle5] := Scenario9 Scenario10;
-set BundleScenarios[Bundle6] := Scenario11 Scenario12;
-set BundleScenarios[Bundle7] := Scenario13 Scenario14;
-set BundleScenarios[Bundle8] := Scenario15 Scenario16;
-set BundleScenarios[Bundle9] := Scenario17 Scenario18;
-set BundleScenarios[Bundle10] := Scenario19 Scenario20;
-set BundleScenarios[Bundle11] := Scenario21 Scenario22;
-set BundleScenarios[Bundle12] := Scenario23 Scenario24;
-set BundleScenarios[Bundle13] := Scenario25 Scenario26;
-set BundleScenarios[Bundle14] := Scenario27 Scenario28;
-set BundleScenarios[Bundle15] := Scenario29 Scenario30;
-set BundleScenarios[Bundle16] := Scenario31 Scenario32;
-set BundleScenarios[Bundle17] := Scenario33 Scenario34;
-set BundleScenarios[Bundle18] := Scenario35 Scenario36;
-set BundleScenarios[Bundle19] := Scenario37 Scenario38;
-set BundleScenarios[Bundle20] := Scenario39 Scenario40;
-set BundleScenarios[Bundle21] := Scenario41 Scenario42;
-set BundleScenarios[Bundle22] := Scenario43 Scenario44;
-set BundleScenarios[Bundle23] := Scenario45 Scenario46;
-set BundleScenarios[Bundle24] := Scenario47 Scenario48;
-set BundleScenarios[Bundle25] := Scenario49 Scenario50;
diff --git a/examples/pysp/networkflow/5ef10.tbz2 b/examples/pysp/networkflow/5ef10.tbz2
deleted file mode 100644
index 986cf2432f4..00000000000
Binary files a/examples/pysp/networkflow/5ef10.tbz2 and /dev/null differ
diff --git a/examples/pysp/networkflow/5ef50.tbz2 b/examples/pysp/networkflow/5ef50.tbz2
deleted file mode 100644
index ab5fe25b805..00000000000
Binary files a/examples/pysp/networkflow/5ef50.tbz2 and /dev/null differ
diff --git a/examples/pysp/networkflow/CCdata/1ef3CC/LeafNode1.dat b/examples/pysp/networkflow/CCdata/1ef3CC/LeafNode1.dat
deleted file mode 100644
index 37ac0a62bf5..00000000000
--- a/examples/pysp/networkflow/CCdata/1ef3CC/LeafNode1.dat
+++ /dev/null
@@ -1,25 +0,0 @@
-param FCost:
- A B C D E F G H I J :=
- A 0.00 560.00 1845.00 2010.00 2175.00 1560.00 1670.00 1780.00 2835.00 950.00
- B 560.00 0.00 1740.00 640.00 650.00 1420.00 2310.00 1660.00 890.00 900.00
- C 1845.00 1740.00 0.00 1680.00 1250.00 2070.00 705.00 1540.00 835.00 1700.00
- D 2010.00 640.00 1680.00 0.00 1100.00 1860.00 690.00 710.00 2340.00 1600.00
- E 2175.00 650.00 1250.00 1100.00 0.00 1100.00 1875.00 1300.00 2175.00 1500.00
- F 1560.00 1420.00 2070.00 1860.00 1100.00 0.00 560.00 640.00 2010.00 700.00
- G 1670.00 2310.00 705.00 690.00 1875.00 560.00 0.00 1740.00 615.00 1950.00
- H 1780.00 1660.00 1540.00 710.00 1300.00 640.00 1740.00 0.00 560.00 600.00
- I 2835.00 890.00 835.00 2340.00 2175.00 2010.00 615.00 560.00 0.00 550.00
- J 950.00 900.00 1700.00 1600.00 1500.00 700.00 1950.00 600.00 550.00 0.00 ;
-
-param Demand:
- A B C D E F G H I J :=
- A 0 3.47 4.16 3.81 4.02 3.77 3.84 4.02 3.80 3.84
- B 3.47 0 4.21 4.18 3.94 4.14 4.07 3.69 3.50 3.96
- C 4.16 4.21 0 4.29 4.27 4.26 4.09 3.73 3.64 3.88
- D 3.81 4.18 4.29 0 3.66 3.95 3.54 4.07 3.64 4.21
- E 4.02 3.94 4.27 3.66 0 4.04 4.14 3.92 3.57 3.77
- F 3.77 4.14 4.26 3.95 4.04 0 3.69 3.62 3.76 3.73
- G 3.84 4.07 4.09 3.54 4.14 3.69 0 4.10 3.25 4.08
- H 4.02 3.69 3.73 4.07 3.92 3.62 4.10 0 3.55 3.82
- I 3.80 3.50 3.64 3.64 3.57 3.76 3.25 3.55 0 4.19
- J 3.84 3.96 3.88 4.21 3.77 3.73 4.08 3.82 4.19 0 ;
diff --git a/examples/pysp/networkflow/CCdata/1ef3CC/LeafNode2.dat b/examples/pysp/networkflow/CCdata/1ef3CC/LeafNode2.dat
deleted file mode 100644
index 029a06c6a99..00000000000
--- a/examples/pysp/networkflow/CCdata/1ef3CC/LeafNode2.dat
+++ /dev/null
@@ -1,25 +0,0 @@
-param FCost:
- A B C D E F G H I J :=
- A 0.00 560.00 1230.00 1340.00 2175.00 2340.00 2505.00 890.00 2835.00 1900.00
- B 560.00 0.00 1160.00 640.00 1950.00 710.00 1540.00 830.00 890.00 1800.00
- C 1230.00 1160.00 0.00 1120.00 1250.00 690.00 705.00 1540.00 835.00 1700.00
- D 1340.00 640.00 1120.00 0.00 550.00 1860.00 1380.00 710.00 1560.00 800.00
- E 2175.00 1950.00 1250.00 550.00 0.00 1650.00 1875.00 650.00 1450.00 750.00
- F 2340.00 710.00 690.00 1860.00 1650.00 0.00 1680.00 640.00 1340.00 2100.00
- G 2505.00 1540.00 705.00 1380.00 1875.00 1680.00 0.00 1160.00 1230.00 650.00
- H 890.00 830.00 1540.00 710.00 650.00 640.00 1160.00 0.00 1120.00 1800.00
- I 2835.00 890.00 835.00 1560.00 1450.00 1340.00 1230.00 1120.00 0.00 550.00
- J 1900.00 1800.00 1700.00 800.00 750.00 2100.00 650.00 1800.00 550.00 0.00 ;
-
-param Demand:
- A B C D E F G H I J :=
- A 0 3.41 3.24 3.22 2.80 3.06 3.32 3.00 3.53 3.35
- B 3.41 0 3.15 3.50 2.98 3.19 3.14 3.12 3.49 3.20
- C 3.24 3.15 0 3.01 3.13 3.24 3.08 3.59 3.05 3.19
- D 3.22 3.50 3.01 0 3.35 2.97 3.18 3.17 2.90 3.12
- E 2.80 2.98 3.13 3.35 0 3.17 3.12 3.27 3.14 3.16
- F 3.06 3.19 3.24 2.97 3.17 0 3.01 3.21 2.87 3.25
- G 3.32 3.14 3.08 3.18 3.12 3.01 0 3.02 2.95 3.18
- H 3.00 3.12 3.59 3.17 3.27 3.21 3.02 0 3.37 3.02
- I 3.53 3.49 3.05 2.90 3.14 2.87 2.95 3.37 0 3.10
- J 3.35 3.20 3.19 3.12 3.16 3.25 3.18 3.02 3.10 0 ;
diff --git a/examples/pysp/networkflow/CCdata/1ef3CC/LeafNode3.dat b/examples/pysp/networkflow/CCdata/1ef3CC/LeafNode3.dat
deleted file mode 100644
index fbf33d9d8f7..00000000000
--- a/examples/pysp/networkflow/CCdata/1ef3CC/LeafNode3.dat
+++ /dev/null
@@ -1,25 +0,0 @@
-param FCost:
- A B C D E F G H I J :=
- A 0.00 1120.00 1230.00 670.00 1450.00 1560.00 835.00 1780.00 1890.00 1900.00
- B 1120.00 0.00 1160.00 1920.00 650.00 710.00 770.00 2490.00 2670.00 1800.00
- C 1230.00 1160.00 0.00 560.00 1875.00 690.00 2115.00 2310.00 835.00 2550.00
- D 670.00 1920.00 560.00 0.00 1100.00 1240.00 1380.00 710.00 1560.00 1600.00
- E 1450.00 650.00 1875.00 1100.00 0.00 1650.00 625.00 1300.00 725.00 750.00
- F 1560.00 710.00 690.00 1240.00 1650.00 0.00 1120.00 1280.00 670.00 700.00
- G 835.00 770.00 2115.00 1380.00 625.00 1120.00 0.00 1740.00 615.00 1950.00
- H 1780.00 2490.00 2310.00 710.00 1300.00 1280.00 1740.00 0.00 1680.00 1800.00
- I 1890.00 2670.00 835.00 1560.00 725.00 670.00 615.00 1680.00 0.00 1650.00
- J 1900.00 1800.00 2550.00 1600.00 750.00 700.00 1950.00 1800.00 1650.00 0.00 ;
-
-param Demand:
- A B C D E F G H I J :=
- A 0 2.66 3.06 2.77 3.06 3.17 3.61 3.69 3.41 3.12
- B 2.66 0 2.86 3.34 3.23 3.34 2.85 3.06 3.16 3.06
- C 3.06 2.86 0 3.18 3.46 3.28 2.95 3.18 3.40 3.04
- D 2.77 3.34 3.18 0 2.86 3.15 3.61 2.88 3.44 2.86
- E 3.06 3.23 3.46 2.86 0 3.11 3.02 3.50 3.67 3.30
- F 3.17 3.34 3.28 3.15 3.11 0 3.25 3.13 2.73 3.38
- G 3.61 2.85 2.95 3.61 3.02 3.25 0 3.11 3.32 3.67
- H 3.69 3.06 3.18 2.88 3.50 3.13 3.11 0 2.68 3.25
- I 3.41 3.16 3.40 3.44 3.67 2.73 3.32 2.68 0 2.94
- J 3.12 3.06 3.04 2.86 3.30 3.38 3.67 3.25 2.94 0 ;
diff --git a/examples/pysp/networkflow/CCdata/1ef3CC/RootNode.dat b/examples/pysp/networkflow/CCdata/1ef3CC/RootNode.dat
deleted file mode 100644
index 08282045f4f..00000000000
--- a/examples/pysp/networkflow/CCdata/1ef3CC/RootNode.dat
+++ /dev/null
@@ -1,73 +0,0 @@
-set Nodes := A B C D E F G H I J;
-
-set Arcs := (A,B) (B,A) (A,C) (C,A) (B,C) (C,B) (B,D) (D,B) (B,E) (E,B) (C,D) (D,C) (D,E) (E,D) (F,G) (G,F) (F,H) (H,F) (G,H) (H,G) (G,I) (I,G) (G,J) (J,G) (H,I) (I,H) (I,J) (J,I) (E,F) (F,E);
-
-param CapCost :=
-A B 112
-A C 123
-B C 116
-B D 128
-B E 130
-C D 112
-D E 110
-B A 112
-C A 123
-C B 116
-D B 128
-E B 130
-D C 112
-E D 110
-E F 110
-F E 110
-F G 112
-F H 128
-G H 116
-G I 123
-G J 130
-H I 112
-I J 110
-G F 112
-H F 128
-H G 116
-I G 123
-J G 130
-I H 112
-J I 110
-;
-
-param b0Cost :=
-A B 1120
-A C 1230
-B C 1160
-B D 1280
-B E 1300
-C D 1120
-D E 1100
-B A 1120
-C A 1230
-C B 1160
-D B 1280
-E B 1300
-D C 1120
-E D 1100
-E F 1100
-F E 1100
-F G 1120
-F H 1280
-G H 1160
-G I 1230
-G J 1300
-H I 1120
-I J 1100
-G F 1120
-H F 1280
-H G 1160
-I G 1230
-J G 1300
-I H 1120
-J I 1100
-;
-
-param M := 174.88 ;
-
-param UnmetDemandThreshold := 0.2 ;
diff --git a/examples/pysp/networkflow/CCdata/1ef3CC/ScenarioStructure.dat b/examples/pysp/networkflow/CCdata/1ef3CC/ScenarioStructure.dat
deleted file mode 100644
index 7492f40a9fe..00000000000
--- a/examples/pysp/networkflow/CCdata/1ef3CC/ScenarioStructure.dat
+++ /dev/null
@@ -1,42 +0,0 @@
-# IMPORTANT - THE STAGES ARE ASSUMED TO BE IN TIME-ORDER.
-
-set Stages := FirstStage SecondStage ;
-
-set Nodes := RootNode
- LeafNode1
- LeafNode2
- LeafNode3 ;
-
-param NodeStage := RootNode FirstStage
- LeafNode1 SecondStage
- LeafNode2 SecondStage
- LeafNode3 SecondStage ;
-
-set Children[RootNode] := LeafNode1
- LeafNode2
- LeafNode3 ;
-
-param ConditionalProbability := RootNode 1.0
- LeafNode1 0.33
- LeafNode2 0.33
- LeafNode3 0.34 ;
-
-set Scenarios := Scenario1
- Scenario2
- Scenario3 ;
-
-param ScenarioLeafNode := Scenario1 LeafNode1
- Scenario2 LeafNode2
- Scenario3 LeafNode3 ;
-
-set StageVariables[FirstStage] := b0[*,*]
- x[*,*] ;
-set StageVariables[SecondStage] := UnmetDemand[*,*] delta
- b[*,*]
- y[*,*,*,*] ;
-
-param StageCost := FirstStage FirstStageCost
- SecondStage SecondStageCost ;
-
-param ScenarioBasedData := False ;
-
diff --git a/examples/pysp/networkflow/CCdata/notuniform10/LeafNode1.dat b/examples/pysp/networkflow/CCdata/notuniform10/LeafNode1.dat
deleted file mode 100644
index 37ac0a62bf5..00000000000
--- a/examples/pysp/networkflow/CCdata/notuniform10/LeafNode1.dat
+++ /dev/null
@@ -1,25 +0,0 @@
-param FCost:
- A B C D E F G H I J :=
- A 0.00 560.00 1845.00 2010.00 2175.00 1560.00 1670.00 1780.00 2835.00 950.00
- B 560.00 0.00 1740.00 640.00 650.00 1420.00 2310.00 1660.00 890.00 900.00
- C 1845.00 1740.00 0.00 1680.00 1250.00 2070.00 705.00 1540.00 835.00 1700.00
- D 2010.00 640.00 1680.00 0.00 1100.00 1860.00 690.00 710.00 2340.00 1600.00
- E 2175.00 650.00 1250.00 1100.00 0.00 1100.00 1875.00 1300.00 2175.00 1500.00
- F 1560.00 1420.00 2070.00 1860.00 1100.00 0.00 560.00 640.00 2010.00 700.00
- G 1670.00 2310.00 705.00 690.00 1875.00 560.00 0.00 1740.00 615.00 1950.00
- H 1780.00 1660.00 1540.00 710.00 1300.00 640.00 1740.00 0.00 560.00 600.00
- I 2835.00 890.00 835.00 2340.00 2175.00 2010.00 615.00 560.00 0.00 550.00
- J 950.00 900.00 1700.00 1600.00 1500.00 700.00 1950.00 600.00 550.00 0.00 ;
-
-param Demand:
- A B C D E F G H I J :=
- A 0 3.47 4.16 3.81 4.02 3.77 3.84 4.02 3.80 3.84
- B 3.47 0 4.21 4.18 3.94 4.14 4.07 3.69 3.50 3.96
- C 4.16 4.21 0 4.29 4.27 4.26 4.09 3.73 3.64 3.88
- D 3.81 4.18 4.29 0 3.66 3.95 3.54 4.07 3.64 4.21
- E 4.02 3.94 4.27 3.66 0 4.04 4.14 3.92 3.57 3.77
- F 3.77 4.14 4.26 3.95 4.04 0 3.69 3.62 3.76 3.73
- G 3.84 4.07 4.09 3.54 4.14 3.69 0 4.10 3.25 4.08
- H 4.02 3.69 3.73 4.07 3.92 3.62 4.10 0 3.55 3.82
- I 3.80 3.50 3.64 3.64 3.57 3.76 3.25 3.55 0 4.19
- J 3.84 3.96 3.88 4.21 3.77 3.73 4.08 3.82 4.19 0 ;
diff --git a/examples/pysp/networkflow/CCdata/notuniform10/LeafNode10.dat b/examples/pysp/networkflow/CCdata/notuniform10/LeafNode10.dat
deleted file mode 100644
index 8fe73a1dc57..00000000000
--- a/examples/pysp/networkflow/CCdata/notuniform10/LeafNode10.dat
+++ /dev/null
@@ -1,25 +0,0 @@
-param FCost:
- A B C D E F G H I J :=
- A 0.00 560.00 1845.00 670.00 2175.00 1560.00 1670.00 2670.00 1890.00 2850.00
- B 560.00 0.00 1160.00 1920.00 1950.00 710.00 1540.00 2490.00 2670.00 900.00
- C 1845.00 1160.00 0.00 1680.00 1875.00 1380.00 705.00 2310.00 1670.00 1700.00
- D 670.00 1920.00 1680.00 0.00 1100.00 1860.00 2070.00 2130.00 2340.00 1600.00
- E 2175.00 1950.00 1875.00 1100.00 0.00 550.00 1875.00 650.00 1450.00 750.00
- F 1560.00 710.00 1380.00 1860.00 550.00 0.00 1680.00 640.00 670.00 2100.00
- G 1670.00 1540.00 705.00 2070.00 1875.00 1680.00 0.00 1160.00 1845.00 650.00
- H 2670.00 2490.00 2310.00 2130.00 650.00 640.00 1160.00 0.00 1680.00 1800.00
- I 1890.00 2670.00 1670.00 2340.00 1450.00 670.00 1845.00 1680.00 0.00 1650.00
- J 2850.00 900.00 1700.00 1600.00 750.00 2100.00 650.00 1800.00 1650.00 0.00 ;
-
-param Demand:
- A B C D E F G H I J :=
- A 0 3.12 3.34 3.12 3.15 3.47 3.03 3.33 3.15 3.20
- B 3.12 0 3.42 3.59 3.21 3.16 3.43 3.40 3.57 3.71
- C 3.34 3.42 0 3.35 3.50 3.06 3.27 3.38 3.17 3.45
- D 3.12 3.59 3.35 0 2.94 2.80 3.12 3.08 3.67 3.05
- E 3.15 3.21 3.50 2.94 0 3.24 3.32 3.14 3.08 3.52
- F 3.47 3.16 3.06 2.80 3.24 0 3.03 3.24 3.36 3.23
- G 3.03 3.43 3.27 3.12 3.32 3.03 0 3.17 3.38 3.52
- H 3.33 3.40 3.38 3.08 3.14 3.24 3.17 0 3.07 3.15
- I 3.15 3.57 3.17 3.67 3.08 3.36 3.38 3.07 0 2.75
- J 3.20 3.71 3.45 3.05 3.52 3.23 3.52 3.15 2.75 0 ;
diff --git a/examples/pysp/networkflow/CCdata/notuniform10/LeafNode2.dat b/examples/pysp/networkflow/CCdata/notuniform10/LeafNode2.dat
deleted file mode 100644
index 029a06c6a99..00000000000
--- a/examples/pysp/networkflow/CCdata/notuniform10/LeafNode2.dat
+++ /dev/null
@@ -1,25 +0,0 @@
-param FCost:
- A B C D E F G H I J :=
- A 0.00 560.00 1230.00 1340.00 2175.00 2340.00 2505.00 890.00 2835.00 1900.00
- B 560.00 0.00 1160.00 640.00 1950.00 710.00 1540.00 830.00 890.00 1800.00
- C 1230.00 1160.00 0.00 1120.00 1250.00 690.00 705.00 1540.00 835.00 1700.00
- D 1340.00 640.00 1120.00 0.00 550.00 1860.00 1380.00 710.00 1560.00 800.00
- E 2175.00 1950.00 1250.00 550.00 0.00 1650.00 1875.00 650.00 1450.00 750.00
- F 2340.00 710.00 690.00 1860.00 1650.00 0.00 1680.00 640.00 1340.00 2100.00
- G 2505.00 1540.00 705.00 1380.00 1875.00 1680.00 0.00 1160.00 1230.00 650.00
- H 890.00 830.00 1540.00 710.00 650.00 640.00 1160.00 0.00 1120.00 1800.00
- I 2835.00 890.00 835.00 1560.00 1450.00 1340.00 1230.00 1120.00 0.00 550.00
- J 1900.00 1800.00 1700.00 800.00 750.00 2100.00 650.00 1800.00 550.00 0.00 ;
-
-param Demand:
- A B C D E F G H I J :=
- A 0 3.41 3.24 3.22 2.80 3.06 3.32 3.00 3.53 3.35
- B 3.41 0 3.15 3.50 2.98 3.19 3.14 3.12 3.49 3.20
- C 3.24 3.15 0 3.01 3.13 3.24 3.08 3.59 3.05 3.19
- D 3.22 3.50 3.01 0 3.35 2.97 3.18 3.17 2.90 3.12
- E 2.80 2.98 3.13 3.35 0 3.17 3.12 3.27 3.14 3.16
- F 3.06 3.19 3.24 2.97 3.17 0 3.01 3.21 2.87 3.25
- G 3.32 3.14 3.08 3.18 3.12 3.01 0 3.02 2.95 3.18
- H 3.00 3.12 3.59 3.17 3.27 3.21 3.02 0 3.37 3.02
- I 3.53 3.49 3.05 2.90 3.14 2.87 2.95 3.37 0 3.10
- J 3.35 3.20 3.19 3.12 3.16 3.25 3.18 3.02 3.10 0 ;
diff --git a/examples/pysp/networkflow/CCdata/notuniform10/LeafNode3.dat b/examples/pysp/networkflow/CCdata/notuniform10/LeafNode3.dat
deleted file mode 100644
index fbf33d9d8f7..00000000000
--- a/examples/pysp/networkflow/CCdata/notuniform10/LeafNode3.dat
+++ /dev/null
@@ -1,25 +0,0 @@
-param FCost:
- A B C D E F G H I J :=
- A 0.00 1120.00 1230.00 670.00 1450.00 1560.00 835.00 1780.00 1890.00 1900.00
- B 1120.00 0.00 1160.00 1920.00 650.00 710.00 770.00 2490.00 2670.00 1800.00
- C 1230.00 1160.00 0.00 560.00 1875.00 690.00 2115.00 2310.00 835.00 2550.00
- D 670.00 1920.00 560.00 0.00 1100.00 1240.00 1380.00 710.00 1560.00 1600.00
- E 1450.00 650.00 1875.00 1100.00 0.00 1650.00 625.00 1300.00 725.00 750.00
- F 1560.00 710.00 690.00 1240.00 1650.00 0.00 1120.00 1280.00 670.00 700.00
- G 835.00 770.00 2115.00 1380.00 625.00 1120.00 0.00 1740.00 615.00 1950.00
- H 1780.00 2490.00 2310.00 710.00 1300.00 1280.00 1740.00 0.00 1680.00 1800.00
- I 1890.00 2670.00 835.00 1560.00 725.00 670.00 615.00 1680.00 0.00 1650.00
- J 1900.00 1800.00 2550.00 1600.00 750.00 700.00 1950.00 1800.00 1650.00 0.00 ;
-
-param Demand:
- A B C D E F G H I J :=
- A 0 2.66 3.06 2.77 3.06 3.17 3.61 3.69 3.41 3.12
- B 2.66 0 2.86 3.34 3.23 3.34 2.85 3.06 3.16 3.06
- C 3.06 2.86 0 3.18 3.46 3.28 2.95 3.18 3.40 3.04
- D 2.77 3.34 3.18 0 2.86 3.15 3.61 2.88 3.44 2.86
- E 3.06 3.23 3.46 2.86 0 3.11 3.02 3.50 3.67 3.30
- F 3.17 3.34 3.28 3.15 3.11 0 3.25 3.13 2.73 3.38
- G 3.61 2.85 2.95 3.61 3.02 3.25 0 3.11 3.32 3.67
- H 3.69 3.06 3.18 2.88 3.50 3.13 3.11 0 2.68 3.25
- I 3.41 3.16 3.40 3.44 3.67 2.73 3.32 2.68 0 2.94
- J 3.12 3.06 3.04 2.86 3.30 3.38 3.67 3.25 2.94 0 ;
diff --git a/examples/pysp/networkflow/CCdata/notuniform10/LeafNode4.dat b/examples/pysp/networkflow/CCdata/notuniform10/LeafNode4.dat
deleted file mode 100644
index 9c1babd6ee3..00000000000
--- a/examples/pysp/networkflow/CCdata/notuniform10/LeafNode4.dat
+++ /dev/null
@@ -1,25 +0,0 @@
-param FCost:
- A B C D E F G H I J :=
- A 0.00 1120.00 1230.00 670.00 1450.00 2340.00 2505.00 890.00 1890.00 950.00
- B 1120.00 0.00 1160.00 1920.00 1950.00 1420.00 770.00 1660.00 890.00 1800.00
- C 1230.00 1160.00 0.00 1120.00 1875.00 690.00 1410.00 770.00 1670.00 2550.00
- D 670.00 1920.00 1120.00 0.00 550.00 620.00 690.00 2130.00 780.00 800.00
- E 1450.00 1950.00 1875.00 550.00 0.00 1100.00 1875.00 1950.00 725.00 1500.00
- F 2340.00 1420.00 690.00 620.00 1100.00 0.00 560.00 1920.00 2010.00 700.00
- G 2505.00 770.00 1410.00 690.00 1875.00 560.00 0.00 1160.00 1230.00 1950.00
- H 890.00 1660.00 770.00 2130.00 1950.00 1920.00 1160.00 0.00 560.00 1800.00
- I 1890.00 890.00 1670.00 780.00 725.00 2010.00 1230.00 560.00 0.00 1650.00
- J 950.00 1800.00 2550.00 800.00 1500.00 700.00 1950.00 1800.00 1650.00 0.00 ;
-
-param Demand:
- A B C D E F G H I J :=
- A 0 2.81 2.39 2.60 2.88 2.85 2.95 2.76 2.77 2.66
- B 2.81 0 2.52 2.77 2.76 2.34 2.83 2.85 2.43 2.44
- C 2.39 2.52 0 2.69 2.62 3.00 2.59 2.81 2.39 2.91
- D 2.60 2.77 2.69 0 2.30 2.93 2.34 2.81 2.34 2.83
- E 2.88 2.76 2.62 2.30 0 2.73 2.71 2.84 2.52 2.34
- F 2.85 2.34 3.00 2.93 2.73 0 2.93 2.37 2.62 2.84
- G 2.95 2.83 2.59 2.34 2.71 2.93 0 2.97 2.82 2.64
- H 2.76 2.85 2.81 2.81 2.84 2.37 2.97 0 2.79 2.29
- I 2.77 2.43 2.39 2.34 2.52 2.62 2.82 2.79 0 3.12
- J 2.66 2.44 2.91 2.83 2.34 2.84 2.64 2.29 3.12 0 ;
diff --git a/examples/pysp/networkflow/CCdata/notuniform10/LeafNode5.dat b/examples/pysp/networkflow/CCdata/notuniform10/LeafNode5.dat
deleted file mode 100644
index 4f57760ac3f..00000000000
--- a/examples/pysp/networkflow/CCdata/notuniform10/LeafNode5.dat
+++ /dev/null
@@ -1,25 +0,0 @@
-param FCost:
- A B C D E F G H I J :=
- A 0.00 1680.00 1230.00 670.00 1450.00 2340.00 2505.00 2670.00 2835.00 2850.00
- B 1680.00 0.00 1740.00 640.00 1950.00 2130.00 770.00 1660.00 890.00 2700.00
- C 1230.00 1740.00 0.00 560.00 1875.00 2070.00 2115.00 770.00 2505.00 1700.00
- D 670.00 640.00 560.00 0.00 550.00 620.00 1380.00 1420.00 1560.00 1600.00
- E 1450.00 1950.00 1875.00 550.00 0.00 550.00 625.00 1950.00 2175.00 1500.00
- F 2340.00 2130.00 2070.00 620.00 550.00 0.00 1120.00 1280.00 1340.00 1400.00
- G 2505.00 770.00 2115.00 1380.00 625.00 1120.00 0.00 1740.00 615.00 1950.00
- H 2670.00 1660.00 770.00 1420.00 1950.00 1280.00 1740.00 0.00 560.00 600.00
- I 2835.00 890.00 2505.00 1560.00 2175.00 1340.00 615.00 560.00 0.00 1650.00
- J 2850.00 2700.00 1700.00 1600.00 1500.00 1400.00 1950.00 600.00 1650.00 0.00 ;
-
-param Demand:
- A B C D E F G H I J :=
- A 0 3.67 3.22 3.63 3.46 3.65 3.80 3.73 3.59 3.26
- B 3.67 0 3.50 3.61 3.93 3.71 3.70 3.56 3.86 3.58
- C 3.22 3.50 0 3.65 3.49 3.50 3.55 3.22 3.49 3.70
- D 3.63 3.61 3.65 0 3.57 4.12 3.39 3.83 3.32 3.57
- E 3.46 3.93 3.49 3.57 0 3.51 3.85 3.43 3.90 3.53
- F 3.65 3.71 3.50 4.12 3.51 0 3.76 3.46 3.74 3.95
- G 3.80 3.70 3.55 3.39 3.85 3.76 0 3.98 3.60 3.91
- H 3.73 3.56 3.22 3.83 3.43 3.46 3.98 0 3.53 3.20
- I 3.59 3.86 3.49 3.32 3.90 3.74 3.60 3.53 0 3.99
- J 3.26 3.58 3.70 3.57 3.53 3.95 3.91 3.20 3.99 0 ;
diff --git a/examples/pysp/networkflow/CCdata/notuniform10/LeafNode6.dat b/examples/pysp/networkflow/CCdata/notuniform10/LeafNode6.dat
deleted file mode 100644
index 53f43d2c19c..00000000000
--- a/examples/pysp/networkflow/CCdata/notuniform10/LeafNode6.dat
+++ /dev/null
@@ -1,25 +0,0 @@
-param FCost:
- A B C D E F G H I J :=
- A 0.00 1120.00 1230.00 1340.00 1450.00 1560.00 1670.00 890.00 1890.00 950.00
- B 1120.00 0.00 1740.00 1920.00 650.00 2130.00 770.00 830.00 2670.00 2700.00
- C 1230.00 1740.00 0.00 1680.00 1875.00 2070.00 2115.00 2310.00 835.00 850.00
- D 1340.00 1920.00 1680.00 0.00 550.00 1240.00 1380.00 2130.00 2340.00 2400.00
- E 1450.00 650.00 1875.00 550.00 0.00 1650.00 1875.00 1950.00 725.00 2250.00
- F 1560.00 2130.00 2070.00 1240.00 1650.00 0.00 1680.00 1280.00 670.00 700.00
- G 1670.00 770.00 2115.00 1380.00 1875.00 1680.00 0.00 580.00 615.00 1950.00
- H 890.00 830.00 2310.00 2130.00 1950.00 1280.00 580.00 0.00 1120.00 1200.00
- I 1890.00 2670.00 835.00 2340.00 725.00 670.00 615.00 1120.00 0.00 1100.00
- J 950.00 2700.00 850.00 2400.00 2250.00 700.00 1950.00 1200.00 1100.00 0.00 ;
-
-param Demand:
- A B C D E F G H I J :=
- A 0 3.05 3.08 3.22 3.11 3.42 2.75 3.02 3.12 2.83
- B 3.05 0 3.35 3.12 3.07 3.29 3.28 3.03 3.09 2.83
- C 3.08 3.35 0 2.69 2.94 3.07 3.56 3.30 2.91 2.78
- D 3.22 3.12 2.69 0 3.26 3.20 3.26 3.28 3.08 3.06
- E 3.11 3.07 2.94 3.26 0 3.15 3.13 2.77 2.85 2.52
- F 3.42 3.29 3.07 3.20 3.15 0 3.26 2.56 2.98 3.12
- G 2.75 3.28 3.56 3.26 3.13 3.26 0 2.98 2.94 3.00
- H 3.02 3.03 3.30 3.28 2.77 2.56 2.98 0 3.42 3.27
- I 3.12 3.09 2.91 3.08 2.85 2.98 2.94 3.42 0 2.89
- J 2.83 2.83 2.78 3.06 2.52 3.12 3.00 3.27 2.89 0 ;
diff --git a/examples/pysp/networkflow/CCdata/notuniform10/LeafNode7.dat b/examples/pysp/networkflow/CCdata/notuniform10/LeafNode7.dat
deleted file mode 100644
index 8850828dc25..00000000000
--- a/examples/pysp/networkflow/CCdata/notuniform10/LeafNode7.dat
+++ /dev/null
@@ -1,25 +0,0 @@
-param FCost:
- A B C D E F G H I J :=
- A 0.00 560.00 615.00 2010.00 2175.00 2340.00 835.00 2670.00 1890.00 2850.00
- B 560.00 0.00 1740.00 640.00 650.00 1420.00 2310.00 830.00 890.00 900.00
- C 615.00 1740.00 0.00 560.00 1875.00 1380.00 2115.00 770.00 835.00 2550.00
- D 2010.00 640.00 560.00 0.00 1100.00 620.00 690.00 2130.00 780.00 2400.00
- E 2175.00 650.00 1875.00 1100.00 0.00 1100.00 625.00 650.00 1450.00 1500.00
- F 2340.00 1420.00 1380.00 620.00 1100.00 0.00 1680.00 1920.00 1340.00 700.00
- G 835.00 2310.00 2115.00 690.00 625.00 1680.00 0.00 1160.00 615.00 1300.00
- H 2670.00 830.00 770.00 2130.00 650.00 1920.00 1160.00 0.00 1120.00 600.00
- I 1890.00 890.00 835.00 780.00 1450.00 1340.00 615.00 1120.00 0.00 1650.00
- J 2850.00 900.00 2550.00 2400.00 1500.00 700.00 1300.00 600.00 1650.00 0.00 ;
-
-param Demand:
- A B C D E F G H I J :=
- A 0 3.61 3.36 3.68 3.32 2.85 3.30 3.51 3.25 3.36
- B 3.61 0 3.79 3.43 3.39 3.42 2.94 3.40 2.74 3.28
- C 3.36 3.79 0 3.26 2.72 2.91 3.11 2.98 3.10 3.38
- D 3.68 3.43 3.26 0 2.81 2.99 2.83 3.33 3.55 3.14
- E 3.32 3.39 2.72 2.81 0 3.28 2.96 2.88 3.55 3.02
- F 2.85 3.42 2.91 2.99 3.28 0 3.48 2.98 3.56 3.02
- G 3.30 2.94 3.11 2.83 2.96 3.48 0 3.33 3.38 3.24
- H 3.51 3.40 2.98 3.33 2.88 2.98 3.33 0 3.27 3.24
- I 3.25 2.74 3.10 3.55 3.55 3.56 3.38 3.27 0 2.78
- J 3.36 3.28 3.38 3.14 3.02 3.02 3.24 3.24 2.78 0 ;
diff --git a/examples/pysp/networkflow/CCdata/notuniform10/LeafNode8.dat b/examples/pysp/networkflow/CCdata/notuniform10/LeafNode8.dat
deleted file mode 100644
index 5bba7f180c5..00000000000
--- a/examples/pysp/networkflow/CCdata/notuniform10/LeafNode8.dat
+++ /dev/null
@@ -1,25 +0,0 @@
-param FCost:
- A B C D E F G H I J :=
- A 0.00 1120.00 1230.00 670.00 1450.00 2340.00 835.00 1780.00 1890.00 1900.00
- B 1120.00 0.00 580.00 1920.00 1950.00 710.00 770.00 2490.00 1780.00 2700.00
- C 1230.00 580.00 0.00 560.00 1250.00 690.00 2115.00 1540.00 1670.00 2550.00
- D 670.00 1920.00 560.00 0.00 1650.00 1860.00 690.00 1420.00 780.00 800.00
- E 1450.00 1950.00 1250.00 1650.00 0.00 1100.00 1875.00 1950.00 725.00 2250.00
- F 2340.00 710.00 690.00 1860.00 1100.00 0.00 1120.00 1280.00 2010.00 1400.00
- G 835.00 770.00 2115.00 690.00 1875.00 1120.00 0.00 580.00 615.00 1950.00
- H 1780.00 2490.00 1540.00 1420.00 1950.00 1280.00 580.00 0.00 1120.00 1200.00
- I 1890.00 1780.00 1670.00 780.00 725.00 2010.00 615.00 1120.00 0.00 550.00
- J 1900.00 2700.00 2550.00 800.00 2250.00 1400.00 1950.00 1200.00 550.00 0.00 ;
-
-param Demand:
- A B C D E F G H I J :=
- A 0 3.08 3.52 3.34 2.96 3.24 2.91 3.29 3.32 2.92
- B 3.08 0 2.89 3.04 3.03 2.91 2.87 3.30 3.20 2.90
- C 3.52 2.89 0 3.28 2.81 3.26 3.17 3.42 2.78 3.21
- D 3.34 3.04 3.28 0 3.00 3.00 2.85 2.59 3.36 3.19
- E 2.96 3.03 2.81 3.00 0 2.95 3.09 2.99 2.74 2.89
- F 3.24 2.91 3.26 3.00 2.95 0 2.91 2.95 2.87 3.21
- G 2.91 2.87 3.17 2.85 3.09 2.91 0 2.90 3.16 3.11
- H 3.29 3.30 3.42 2.59 2.99 2.95 2.90 0 3.19 2.81
- I 3.32 3.20 2.78 3.36 2.74 2.87 3.16 3.19 0 2.43
- J 2.92 2.90 3.21 3.19 2.89 3.21 3.11 2.81 2.43 0 ;
diff --git a/examples/pysp/networkflow/CCdata/notuniform10/LeafNode9.dat b/examples/pysp/networkflow/CCdata/notuniform10/LeafNode9.dat
deleted file mode 100644
index 929121c435e..00000000000
--- a/examples/pysp/networkflow/CCdata/notuniform10/LeafNode9.dat
+++ /dev/null
@@ -1,25 +0,0 @@
-param FCost:
- A B C D E F G H I J :=
- A 0.00 560.00 615.00 1340.00 2175.00 780.00 1670.00 1780.00 1890.00 950.00
- B 560.00 0.00 1740.00 640.00 650.00 2130.00 1540.00 830.00 1780.00 2700.00
- C 615.00 1740.00 0.00 1680.00 625.00 690.00 1410.00 1540.00 835.00 1700.00
- D 1340.00 640.00 1680.00 0.00 1100.00 620.00 690.00 1420.00 1560.00 1600.00
- E 2175.00 650.00 625.00 1100.00 0.00 1650.00 1875.00 1950.00 2175.00 1500.00
- F 780.00 2130.00 690.00 620.00 1650.00 0.00 560.00 1280.00 1340.00 1400.00
- G 1670.00 1540.00 1410.00 690.00 1875.00 560.00 0.00 1160.00 1230.00 650.00
- H 1780.00 830.00 1540.00 1420.00 1950.00 1280.00 1160.00 0.00 1120.00 1800.00
- I 1890.00 1780.00 835.00 1560.00 2175.00 1340.00 1230.00 1120.00 0.00 550.00
- J 950.00 2700.00 1700.00 1600.00 1500.00 1400.00 650.00 1800.00 550.00 0.00 ;
-
-param Demand:
- A B C D E F G H I J :=
- A 0 3.44 3.42 3.55 3.18 3.71 3.79 3.88 3.76 3.38
- B 3.44 0 3.57 3.60 3.34 3.40 3.61 3.06 3.28 3.29
- C 3.42 3.57 0 3.22 3.36 3.63 3.47 3.73 3.06 3.33
- D 3.55 3.60 3.22 0 3.34 3.15 3.81 3.67 3.29 3.34
- E 3.18 3.34 3.36 3.34 0 3.59 3.35 3.30 3.19 3.28
- F 3.71 3.40 3.63 3.15 3.59 0 3.53 3.33 3.91 3.66
- G 3.79 3.61 3.47 3.81 3.35 3.53 0 3.73 3.35 3.66
- H 3.88 3.06 3.73 3.67 3.30 3.33 3.73 0 3.48 3.31
- I 3.76 3.28 3.06 3.29 3.19 3.91 3.35 3.48 0 3.52
- J 3.38 3.29 3.33 3.34 3.28 3.66 3.66 3.31 3.52 0 ;
diff --git a/examples/pysp/networkflow/CCdata/notuniform10/RootNode.dat b/examples/pysp/networkflow/CCdata/notuniform10/RootNode.dat
deleted file mode 100644
index 08282045f4f..00000000000
--- a/examples/pysp/networkflow/CCdata/notuniform10/RootNode.dat
+++ /dev/null
@@ -1,73 +0,0 @@
-set Nodes := A B C D E F G H I J;
-
-set Arcs := (A,B) (B,A) (A,C) (C,A) (B,C) (C,B) (B,D) (D,B) (B,E) (E,B) (C,D) (D,C) (D,E) (E,D) (F,G) (G,F) (F,H) (H,F) (G,H) (H,G) (G,I) (I,G) (G,J) (J,G) (H,I) (I,H) (I,J) (J,I) (E,F) (F,E);
-
-param CapCost :=
-A B 112
-A C 123
-B C 116
-B D 128
-B E 130
-C D 112
-D E 110
-B A 112
-C A 123
-C B 116
-D B 128
-E B 130
-D C 112
-E D 110
-E F 110
-F E 110
-F G 112
-F H 128
-G H 116
-G I 123
-G J 130
-H I 112
-I J 110
-G F 112
-H F 128
-H G 116
-I G 123
-J G 130
-I H 112
-J I 110
-;
-
-param b0Cost :=
-A B 1120
-A C 1230
-B C 1160
-B D 1280
-B E 1300
-C D 1120
-D E 1100
-B A 1120
-C A 1230
-C B 1160
-D B 1280
-E B 1300
-D C 1120
-E D 1100
-E F 1100
-F E 1100
-F G 1120
-F H 1280
-G H 1160
-G I 1230
-G J 1300
-H I 1120
-I J 1100
-G F 1120
-H F 1280
-H G 1160
-I G 1230
-J G 1300
-I H 1120
-J I 1100
-;
-
-param M := 174.88 ;
-
-param UnmetDemandThreshold := 0.2 ;
diff --git a/examples/pysp/networkflow/CCdata/notuniform10/ScenarioStructure.dat b/examples/pysp/networkflow/CCdata/notuniform10/ScenarioStructure.dat
deleted file mode 100644
index 51cb48322c8..00000000000
--- a/examples/pysp/networkflow/CCdata/notuniform10/ScenarioStructure.dat
+++ /dev/null
@@ -1,85 +0,0 @@
-# IMPORTANT - THE STAGES ARE ASSUMED TO BE IN TIME-ORDER.
-
-set Stages := FirstStage SecondStage ;
-
-set Nodes := RootNode
- LeafNode1
- LeafNode2
- LeafNode3
- LeafNode4
- LeafNode5
- LeafNode6
- LeafNode7
- LeafNode8
- LeafNode9
- LeafNode10 ;
-
-param NodeStage := RootNode FirstStage
- LeafNode1 SecondStage
- LeafNode2 SecondStage
- LeafNode3 SecondStage
- LeafNode4 SecondStage
- LeafNode5 SecondStage
- LeafNode6 SecondStage
- LeafNode7 SecondStage
- LeafNode8 SecondStage
- LeafNode9 SecondStage
- LeafNode10 SecondStage ;
-
-set Children[RootNode] := LeafNode1
- LeafNode2
- LeafNode3
- LeafNode4
- LeafNode5
- LeafNode6
- LeafNode7
- LeafNode8
- LeafNode9
- LeafNode10 ;
-
-param ConditionalProbability := RootNode 1.0
- LeafNode1 0.033
- LeafNode2 0.067
- LeafNode3 0.067
- LeafNode4 0.073
- LeafNode5 0.087
- LeafNode6 0.107
- LeafNode7 0.133
- LeafNode8 0.147
- LeafNode9 0.133
- LeafNode10 0.153 ;
-
-set Scenarios := Scenario1
- Scenario2
- Scenario3
- Scenario4
- Scenario5
- Scenario6
- Scenario7
- Scenario8
- Scenario9
- Scenario10 ;
-
-param ScenarioLeafNode := Scenario1 LeafNode1
- Scenario2 LeafNode2
- Scenario3 LeafNode3
- Scenario4 LeafNode4
- Scenario5 LeafNode5
- Scenario6 LeafNode6
- Scenario7 LeafNode7
- Scenario8 LeafNode8
- Scenario9 LeafNode9
- Scenario10 LeafNode10 ;
-
-set StageVariables[FirstStage] := b0[*,*]
- x[*,*] ;
-set StageVariables[SecondStage] := delta
- UnmetDemand[*,*]
- b[*,*]
- y[*,*,*,*] ;
-
-param StageCost := FirstStage FirstStageCost
- SecondStage SecondStageCost ;
-
-param ScenarioBasedData := False ;
-
diff --git a/examples/pysp/networkflow/CCdata/notuniform10/ScenarioStructureNotUniform.dat b/examples/pysp/networkflow/CCdata/notuniform10/ScenarioStructureNotUniform.dat
deleted file mode 100644
index 51cb48322c8..00000000000
--- a/examples/pysp/networkflow/CCdata/notuniform10/ScenarioStructureNotUniform.dat
+++ /dev/null
@@ -1,85 +0,0 @@
-# IMPORTANT - THE STAGES ARE ASSUMED TO BE IN TIME-ORDER.
-
-set Stages := FirstStage SecondStage ;
-
-set Nodes := RootNode
- LeafNode1
- LeafNode2
- LeafNode3
- LeafNode4
- LeafNode5
- LeafNode6
- LeafNode7
- LeafNode8
- LeafNode9
- LeafNode10 ;
-
-param NodeStage := RootNode FirstStage
- LeafNode1 SecondStage
- LeafNode2 SecondStage
- LeafNode3 SecondStage
- LeafNode4 SecondStage
- LeafNode5 SecondStage
- LeafNode6 SecondStage
- LeafNode7 SecondStage
- LeafNode8 SecondStage
- LeafNode9 SecondStage
- LeafNode10 SecondStage ;
-
-set Children[RootNode] := LeafNode1
- LeafNode2
- LeafNode3
- LeafNode4
- LeafNode5
- LeafNode6
- LeafNode7
- LeafNode8
- LeafNode9
- LeafNode10 ;
-
-param ConditionalProbability := RootNode 1.0
- LeafNode1 0.033
- LeafNode2 0.067
- LeafNode3 0.067
- LeafNode4 0.073
- LeafNode5 0.087
- LeafNode6 0.107
- LeafNode7 0.133
- LeafNode8 0.147
- LeafNode9 0.133
- LeafNode10 0.153 ;
-
-set Scenarios := Scenario1
- Scenario2
- Scenario3
- Scenario4
- Scenario5
- Scenario6
- Scenario7
- Scenario8
- Scenario9
- Scenario10 ;
-
-param ScenarioLeafNode := Scenario1 LeafNode1
- Scenario2 LeafNode2
- Scenario3 LeafNode3
- Scenario4 LeafNode4
- Scenario5 LeafNode5
- Scenario6 LeafNode6
- Scenario7 LeafNode7
- Scenario8 LeafNode8
- Scenario9 LeafNode9
- Scenario10 LeafNode10 ;
-
-set StageVariables[FirstStage] := b0[*,*]
- x[*,*] ;
-set StageVariables[SecondStage] := delta
- UnmetDemand[*,*]
- b[*,*]
- y[*,*,*,*] ;
-
-param StageCost := FirstStage FirstStageCost
- SecondStage SecondStageCost ;
-
-param ScenarioBasedData := False ;
-
diff --git a/examples/pysp/networkflow/CCmodels/AAAReadme.txt b/examples/pysp/networkflow/CCmodels/AAAReadme.txt
deleted file mode 100644
index fcf0a452db9..00000000000
--- a/examples/pysp/networkflow/CCmodels/AAAReadme.txt
+++ /dev/null
@@ -1 +0,0 @@
-For lagrangeParam etc.
diff --git a/examples/pysp/networkflow/CCmodels/ReferenceModel.py b/examples/pysp/networkflow/CCmodels/ReferenceModel.py
deleted file mode 100644
index 3f162a04034..00000000000
--- a/examples/pysp/networkflow/CCmodels/ReferenceModel.py
+++ /dev/null
@@ -1,175 +0,0 @@
-# ___________________________________________________________________________
-#
-# Pyomo: Python Optimization Modeling Objects
-# Copyright 2017 National Technology and Engineering Solutions of Sandia, LLC
-# Under the terms of Contract DE-NA0003525 with National Technology and
-# Engineering Solutions of Sandia, LLC, the U.S. Government retains certain
-# rights in this software.
-# This software is distributed under the 3-clause BSD License.
-# ___________________________________________________________________________
-
-#
-# A simple budget-constrained single-commodity network flow problem, taken from Ruszcynski.
-#
-
-from pyomo.core import *
-
-#
-# Model
-#
-
-model = AbstractModel()
-
-#
-# Parameters
-#
-
-model.Nodes = Set(ordered=True)
-
-model.Arcs = Set(within=model.Nodes*model.Nodes)
-
-# derived set
-def aplus_arc_set_rule(model, v):
- return [(i, j) for (i, j) in model.Arcs if j == v]
-model.Aplus = Set(model.Nodes, within=model.Arcs, initialize=aplus_arc_set_rule)
-# ########## changed from rule 1/31/14
-
-# derived set
-def aminus_arc_set_rule(model, v):
- return [(i, j) for (i, j) in model.Arcs if i == v]
-model.Aminus = Set(model.Nodes, within=model.Arcs, initialize=aminus_arc_set_rule)
-# ########## changed from rule 1/31/14
-
-# demands are assumed to be symmetric, although this is not explicitly checked.
-model.Demand = Param(model.Nodes, model.Nodes, initialize=0.0)
-
-model.CapCost = Param(model.Arcs)
-
-model.b0Cost = Param(model.Arcs)
-
-model.FCost = Param(model.Nodes, model.Nodes)
-
-# the maximum sum of demands across the set of scenarios - necessarily computed externally.
-model.M = Param(within=NonNegativeReals)
-
-# Threshold for the UnmetDemand (percentage of Demand)
-model.UnmetDemandThreshold = Param(within=NonNegativeReals)
-
-# lambdaMult is the Lagrangian multiplier for the relaxed chance constraint
-# (note: lambda is a reserved word in Python)
-# note: a default makes no sense so watch out because zero is special (no delta)
-model.lambdaMult = Param(initialize = 0, mutable=True)
-
-# big M is needed to establish delta
-# set it to total demand + 1
-# note: without value() a bad lp file will be written
-def BigM_Init(model):
- return sum(sum(value(model.Demand[i,j]) for i in model.Nodes) for j in model.Nodes) + 1
- #return 400000
-model.BigM = Param(initialize=BigM_Init)
-
-#
-# Variables
-#
-
-# delta is the indicator that we meet demand (so 1-delta indicates that we shed load)
-model.delta = Var(within=Binary)
-
-# UnmetDemand
-model.UnmetDemand = Var(model.Nodes, model.Nodes, within=NonNegativeReals)
-
-# total arc capacity - a first stage variable.
-model.x = Var(model.Arcs, within=NonNegativeReals)
-
-# from between the nodes through the arc - a second stage variable.
-model.y = Var(model.Nodes, model.Nodes, model.Arcs, within=NonNegativeReals)
-
-# first stage budget allocation variable
-model.b0 = Var(model.Arcs, within=Binary)
-
-# second stage budget allocation variable
-model.b = Var(model.Arcs, within=Binary)
-
-# the cost variables for the stages, in isolation.
-model.FirstStageCost = Var()
-model.SecondStageCost = Var()
-model.fofx = Var()
-
-
-#
-# Constraints
-#
-
-def flow_balance_constraint_rule(model, v, k, l):
- if v == k:
- return (sum([model.y[k, l, i, j] for (i, j) in model.Aplus[v]]) - sum([model.y[k, l, i, j] for (i, j) in model.Aminus[v]]) + (model.Demand[k, l] - model.UnmetDemand[k, l])) == 0.0
- elif v == l:
- return (sum([model.y[k, l, i, j] for (i, j) in model.Aplus[v]]) - sum([model.y[k, l, i, j] for (i, j) in model.Aminus[v]]) - (model.Demand[k, l] - model.UnmetDemand[k, l])) == 0.0
- else:
- return (sum([model.y[k, l, i, j] for (i, j) in model.Aplus[v]]) - sum([model.y[k, l, i, j] for (i, j) in model.Aminus[v]])) == 0.0
-model.FlowBalanceConstraint = Constraint(model.Nodes, model.Nodes, model.Nodes, rule=flow_balance_constraint_rule)
-
-def capacity_constraint_rule(model, i, j):
- return (None, sum([model.y[k, l, i, j] for k in model.Nodes for l in model.Nodes]) - model.x[i, j], 0.0)
-model.CapacityConstraint = Constraint(model.Arcs, rule=capacity_constraint_rule)
-
-def x_symmetry_constraint_rule(model, i, j):
- return (model.x[i, j] - model.x[j, i]) == 0.0
-model.xSymmetryConstraint = Constraint(model.Arcs, rule=x_symmetry_constraint_rule)
-
-def b0_symmetry_constraint_rule(model, i, j):
- return (model.b0[i, j] - model.b0[j, i]) == 0.0
-model.b0SymmetryConstraint = Constraint(model.Arcs, rule=b0_symmetry_constraint_rule)
-
-def b_symmetry_constraint_rule(model, i, j):
- return (model.b[i, j] - model.b[j, i]) == 0.0
-model.bSymmetryConstraint = Constraint(model.Arcs, rule=b_symmetry_constraint_rule)
-
-#def bought_arc0_constraint_rule(model, k, l, i, j):
-# return (0.0, model.M * model.b0[i, j] - model.y[k, l, i, j], None)
-#model.BoughtArc0Constraint = Constraint(model.Nodes, model.Nodes, model.Arcs, rule=bought_arc0_constraint_rule)
-
-#def bought_arc_constraint_rule(model, k, l, i, j):
-# return (0.0, model.M * model.b[i, j] - model.y[k, l, i, j], None)
-#model.BoughtArcConstraint = Constraint(model.Nodes, model.Nodes, model.Arcs, rule=bought_arc_constraint_rule)
-
-def no_arc_capacity_unless_bought_constraint_rule(model, i, j):
- return (0.0, model.M * model.b0[i, j] - model.x[i, j], None)
-model.NoArcCapacityUnlessBoughtConstraint = Constraint(model.Arcs, rule=no_arc_capacity_unless_bought_constraint_rule)
-
-# UnmetDemand Threshold: the UnmetDemand for each node-pair has to be smaller than the
-# threshold (percentage) times the corresponding Demand for this node-pair
-def demand_service_threshold_rule(model, k, l):
- return model.UnmetDemand[k, l] <= model.Demand[k, l] * model.UnmetDemandThreshold
-
-model.DemandServiceThreshold = Constraint(model.Nodes, model.Nodes, rule=demand_service_threshold_rule)
-
-# establish the value for delta
-def establish_delta_rule(model):
- return sum_product(model.UnmetDemand) <= model.BigM * (1-model.delta)
-model.Establishdelta = Constraint(rule=establish_delta_rule)
-
-#
-# Stage-specific cost computations
-#
-
-def compute_first_stage_cost_rule(model):
- return (model.FirstStageCost - sum_product(model.CapCost, model.x) - sum_product(model.b0Cost, model.b0)) == 0.0
-model.ComputeFirstStageCost = Constraint(rule=compute_first_stage_cost_rule)
-
-def compute_second_stage_cost_rule(model):
- return model.SecondStageCost == sum_product(model.FCost, model.b) - (model.lambdaMult * model.delta)
-model.ComputeSecondStageCost = Constraint(rule=compute_second_stage_cost_rule)
-
-def fofx_rule(model):
- return ((model.fofx - model.FirstStageCost - model.SecondStageCost) == 0.0)
-model.Compute_fofx = Constraint(rule=fofx_rule)
-#
-# Objective
-#
-
-def total_cost_rule(model):
- return model.FirstStageCost + model.SecondStageCost
-
-model.Total_Cost_Objective = Objective(rule=total_cost_rule, sense=minimize)
-
diff --git a/examples/pysp/networkflow/README.txt b/examples/pysp/networkflow/README.txt
deleted file mode 100644
index 8a7155288ea..00000000000
--- a/examples/pysp/networkflow/README.txt
+++ /dev/null
@@ -1,97 +0,0 @@
-###########################################################################################
-10-scenario instances
-###########################################################################################
-
-CPLEX 10.1 EF values after 2 days of CPU time (values reported in CMS paper):
-
-1ef10 152701.58 (1.32% optimality gap) - proved optimal by CPLEX 12.1 (16 threads, 3200 seconds real wall-clock time).
-2ef10 148531.92 (1.54% optimality gap)
-3ef10 148781.07 (1.13% optimality gap)
-4ef10 159805.00 (2.15% optimality gap)
-5ef10 153352.16 (1.68% optimality gap)
-
-Using CPLEX 12.2 and PH, on Sandia's sleipnir server. Times are wall-clock time.
-
-No fixing of continuous variables (or waiting for their convergence), as the resulting EF MIP is solvable.
-Slamming after iteration 100, but not really - we haven't defined variable slam priorities. Cycle breaking
-when length exceeds 30.
-
-Quadratic run results:
-
-runph --model-directory=models --instance-directory=XXXX --max-iterations=100 --rho-cfgfile=config/rhosetter1.0.cfg --enable-ww-extensions --ww-extension-cfgfile=config/XXX.cfg --solve-ef
-
-Immediate fixing results (with wwph-immediatefixing.cfg).
-
-1ef10: 7m5s, solution=156611.92, 14 PH iterations (VERIFIED)
-2ef10: 3m32s, solution=149138.58, 11 PH iterations (VERIFIED)
-3ef10: 4m8s, solution=151230.45, 9 PH iterations (VERIFIED)
-4ef10: 3m32s, solution=161215.44, 12 PH iterations (VERIFIED)
-5ef10: 3m6s, solution=154286.86, 10 PH iterations (VERIFIED)
-
-Fix lag = 10 (with wwph-fixlag10.cfg).
-
-1ef10: 23m32s, solution=153542.68, 69 PH iterations (VERIFIED)
-2ef10: Converges in 44 iterations. After solving remaining EF, objective=149048.82***OLD***
-3ef10: 30m55s, solution=149973.90, 33 PH iterations
-4ef10: Converges in 85 iterations. After solving remaining EF, objective=161147.9 - exhibits a lot of cycle-breaking.***OLD***
-5ef10: Converges in 51 iterations. After solving remaining EF, objective=153279.42***OLD***
-
-Fix lag = 20 (with wwph-fixlag20.cfg).
-
-1ef10: Converges in 64 iterations. After solving remaining EF, objective=153542.68***OLD***
-2ef10: Converges in 110 iterations. After solving remaining EF, objective=149048.82***OLD***
-3ef10: Converges in 67 iterations. After solving remaining EF, objective=149973.9***OLD***
-4ef10: ***FAILS TO CONVERGE - SLAMMING PRIORITIES ARE REQUIRED.***OLD***
-5ef10: Converges in 81 iterations. After solving remaining EF, objective=153279.42***OLD***
-
-Linearized run results:
-
-Same as above, but with the additional options: --bounds-cfgfile=config/xboundsetter.cfg --linearize-nonbinary-penalty-terms=8
-
-Immediate fixing results (with wwph-immediatefixing.cfg).
-
-1ef10: 6m58s, solution=156129.92, 15 PH iterations (VALIDATED)
-2ef10: 3m23s, solution=150550.36, 10 PH iterations (VALIDATED)
-3ef10: 5m40s, solution=151230.45, 19 PH iterations (VALIDATED)
-4ef10: 2m38s, solution=161215.44, 7 PH iterations (VALIDATED)
-5ef10: 3m26s, solution=154286.86, 12 PH iterations (VALIDATED)
-
-Fix lag = 10 (with wwph-fixlag10.cfg).
-
-1ef10:
-2ef10:
-3ef10:
-4ef10: ***RUNNING***
-5ef10:
-
-Fix lag = 20 (with wwph-fixlag20.cfg).
-
-1ef10:
-2ef10:
-3ef10:
-4ef10:
-5ef10:
-
-###########################################################################################
-50-scenario instances
-###########################################################################################
-
-CPLEX 12.2 EF results:
-
-1ef50:
-2ef50:
-3ef50:
-4ef50:
-5ef50:
-
-Quadratic run results:
-
-runph --model-directory=models --instance-directory=XXXX --max-iterations=100 --rho-cfgfile=config/rhosetter1.0.cfg --enable-ww-extensions --ww-extension-cfgfile=config/XXX.cfg --solve-ef
-
-Immediate fixing results (with wwph-immediatefixing.cfg).
-
-1ef10: 372m51s, solution=161096.56, 54 PH iterations
-2ef10:
-3ef10:
-4ef10:
-5ef10:
diff --git a/examples/pysp/networkflow/config/aggregategetter.py b/examples/pysp/networkflow/config/aggregategetter.py
deleted file mode 100644
index c5e5e5a8770..00000000000
--- a/examples/pysp/networkflow/config/aggregategetter.py
+++ /dev/null
@@ -1,35 +0,0 @@
-# ___________________________________________________________________________
-#
-# Pyomo: Python Optimization Modeling Objects
-# Copyright 2017 National Technology and Engineering Solutions of Sandia, LLC
-# Under the terms of Contract DE-NA0003525 with National Technology and
-# Engineering Solutions of Sandia, LLC, the U.S. Government retains certain
-# rights in this software.
-# This software is distributed under the 3-clause BSD License.
-# ___________________________________________________________________________
-
-from pyomo.core import *
-
-# This callback is for collecting aggregate scenario data which is
-# stored on the _aggregate_user_data member of ph after this callback
-# has been sequentially executed with every scenario. This is the
-# only reliable method for collecting such data because scenario
-# instances are not present on the master ph object when PH is
-# executed in parallel mode.
-
-def ph_aggregategetter_callback(ph, scenario_tree, scenario, data):
-
- if 'max_aggregate_demand' not in data:
- data['max_aggregate_demand'] = 0.0
-
- # a super-weak upper bound to be used with the boundsetter callback,
- # namely the max aggregate demand observed in any scenario
- instance = scenario._instance
- scenario_aggregate_demand = sum([value(instance.Demand[i,j]) \
- for (i,j) in instance.Arcs])
- if scenario_aggregate_demand > data['max_aggregate_demand']:
- data['max_aggregate_demand'] = scenario_aggregate_demand
-
- # **IMPT**: Must also return aggregate data in a singleton tuple
- # to work with bundles
- return (data,)
diff --git a/examples/pysp/networkflow/config/rhosetter0.5.py b/examples/pysp/networkflow/config/rhosetter0.5.py
deleted file mode 100644
index 67f9996cbb5..00000000000
--- a/examples/pysp/networkflow/config/rhosetter0.5.py
+++ /dev/null
@@ -1,33 +0,0 @@
-# ___________________________________________________________________________
-#
-# Pyomo: Python Optimization Modeling Objects
-# Copyright 2017 National Technology and Engineering Solutions of Sandia, LLC
-# Under the terms of Contract DE-NA0003525 with National Technology and
-# Engineering Solutions of Sandia, LLC, the U.S. Government retains certain
-# rights in this software.
-# This software is distributed under the 3-clause BSD License.
-# ___________________________________________________________________________
-
-def ph_rhosetter_callback(ph, scenario_tree, scenario):
-
- root_node = scenario_tree.findRootNode()
-
- scenario_instance = scenario._instance
-
- symbol_map = scenario_instance._ScenarioTreeSymbolMap
-
- MyRhoFactor = 0.5
-
- for a in scenario_instance.Arcs:
-
- ph.setRhoOneScenario(root_node,
- scenario,
- symbol_map.getSymbol(scenario_instance.b0[a]),
- scenario_instance.b0Cost[a] * MyRhoFactor)
- ph.setRhoOneScenario(root_node,
- scenario,
- symbol_map.getSymbol(scenario_instance.x[a]),
- scenario_instance.CapCost[a] * MyRhoFactor)
-
-
-
diff --git a/examples/pysp/networkflow/config/rhosetter1.0.py b/examples/pysp/networkflow/config/rhosetter1.0.py
deleted file mode 100644
index 35cd402df3e..00000000000
--- a/examples/pysp/networkflow/config/rhosetter1.0.py
+++ /dev/null
@@ -1,30 +0,0 @@
-# ___________________________________________________________________________
-#
-# Pyomo: Python Optimization Modeling Objects
-# Copyright 2017 National Technology and Engineering Solutions of Sandia, LLC
-# Under the terms of Contract DE-NA0003525 with National Technology and
-# Engineering Solutions of Sandia, LLC, the U.S. Government retains certain
-# rights in this software.
-# This software is distributed under the 3-clause BSD License.
-# ___________________________________________________________________________
-
-def ph_rhosetter_callback(ph, scenario_tree, scenario):
-
- root_node = scenario_tree.findRootNode()
-
- scenario_instance = scenario._instance
-
- symbol_map = scenario_instance._ScenarioTreeSymbolMap
-
- MyRhoFactor = 1.0
-
- for a in scenario_instance.Arcs:
-
- ph.setRhoOneScenario(root_node,
- scenario,
- symbol_map.getSymbol(scenario_instance.b0[a]),
- scenario_instance.b0Cost[a] * MyRhoFactor)
- ph.setRhoOneScenario(root_node,
- scenario,
- symbol_map.getSymbol(scenario_instance.x[a]),
- scenario_instance.CapCost[a] * MyRhoFactor)
diff --git a/examples/pysp/networkflow/config/rhosettermixed.py b/examples/pysp/networkflow/config/rhosettermixed.py
deleted file mode 100644
index 64df982e6e0..00000000000
--- a/examples/pysp/networkflow/config/rhosettermixed.py
+++ /dev/null
@@ -1,30 +0,0 @@
-# ___________________________________________________________________________
-#
-# Pyomo: Python Optimization Modeling Objects
-# Copyright 2017 National Technology and Engineering Solutions of Sandia, LLC
-# Under the terms of Contract DE-NA0003525 with National Technology and
-# Engineering Solutions of Sandia, LLC, the U.S. Government retains certain
-# rights in this software.
-# This software is distributed under the 3-clause BSD License.
-# ___________________________________________________________________________
-
-def ph_rhosetter_callback(ph, scenario_tree, scenario):
-
- root_node = scenario_tree.findRootNode()
-
- scenario_instance = scenario._instance
-
- symbol_map = scenario_instance._ScenarioTreeSymbolMap
-
- for a in scenario_instance.Arcs:
-
- ph.setRhoOneScenario(root_node,
- scenario,
- symbol_map.getSymbol(scenario_instance.b0[a]),
- scenario_instance.b0Cost[a] * 1.0)
- ph.setRhoOneScenario(root_node,
- scenario,
- symbol_map.getSymbol(scenario_instance.x[a]),
- scenario_instance.CapCost[a] * 0.1)
-
-
diff --git a/examples/pysp/networkflow/config/slam.suffixes b/examples/pysp/networkflow/config/slam.suffixes
deleted file mode 100644
index f180e3818ae..00000000000
--- a/examples/pysp/networkflow/config/slam.suffixes
+++ /dev/null
@@ -1,15 +0,0 @@
-# allow slamming of b0 to any agreed-up value.
-# and, importantly, indicated what to with x when looking for "x-hat"
-RootNode: # or FirstStage
- b0[*,*]:
- CanSlamToLB: True
- CanSlamToMin: True
- CanSlamToAnywhere: True
- CanSlamToMax: True
- CanSlamToUB: True
- x[*,*]:
- CanSlamToLB: False
- CanSlamToMin: False
- CanSlamToAnywhere: False
- CanSlamToMax: True
- CanSlamToUB: False
diff --git a/examples/pysp/networkflow/config/wwph-aggressivefixing-4bundles.cfg b/examples/pysp/networkflow/config/wwph-aggressivefixing-4bundles.cfg
deleted file mode 100644
index 423411cd0ab..00000000000
--- a/examples/pysp/networkflow/config/wwph-aggressivefixing-4bundles.cfg
+++ /dev/null
@@ -1,21 +0,0 @@
-# our original AMPL script fixes values to any common value.
-self.Iter0FixIfConvergedAtLB = 0
-self.Iter0FixIfConvergedAtUB = 0
-self.Iter0FixIfConvergedAtNB = 0
-
-# our original AMPL script fixes values to any common value.
-self.FixWhenItersConvergedAtLB = 2
-self.FixWhenItersConvergedAtUB = 2
-self.FixWhenItersConvergedAtNB = 0
-
-# with bundling, we can't really afford to solve the
-# extensive forms to optimality - so don't bother.
-# the precise value may eventually vary, as a function
-# of bundle size (and therefore lower bound quality).
-self.Iteration0MipGap = 0.10
-
-self.InitialMipGap = 0.15
-self.FinalMipGap = 0.0001
-
-self.CycleLengthSlamThreshold = 30
-self.SlamAfterIter = 100
diff --git a/examples/pysp/networkflow/config/wwph-aggressivefixing.cfg b/examples/pysp/networkflow/config/wwph-aggressivefixing.cfg
deleted file mode 100644
index f7f46ca738a..00000000000
--- a/examples/pysp/networkflow/config/wwph-aggressivefixing.cfg
+++ /dev/null
@@ -1,19 +0,0 @@
-# our original AMPL script fixes values to any common value.
-self.Iter0FixIfConvergedAtLB = 0
-self.Iter0FixIfConvergedAtUB = 0
-self.Iter0FixIfConvergedAtNB = 0
-
-# our original AMPL script fixes values to any common value.
-self.FixWhenItersConvergedAtLB = 2
-self.FixWhenItersConvergedAtUB = 2
-self.FixWhenItersConvergedAtNB = 0
-
-# doesn't actually set it to zero. rather, it goes with
-# the default solver mipgap.
-self.Iteration0MipGap = 0.0
-
-self.InitialMipGap = 0.10
-self.FinalMipGap = 0.0001
-
-self.CycleLengthSlamThreshold = 30
-self.SlamAfterIter = 100
diff --git a/examples/pysp/networkflow/config/wwph-fixlag10.cfg b/examples/pysp/networkflow/config/wwph-fixlag10.cfg
deleted file mode 100644
index c83d30e1a92..00000000000
--- a/examples/pysp/networkflow/config/wwph-fixlag10.cfg
+++ /dev/null
@@ -1,19 +0,0 @@
-# our original AMPL script fixes values to any common value.
-self.Iter0FixIfConvergedAtLB = 0
-self.Iter0FixIfConvergedAtUB = 0
-self.Iter0FixIfConvergedAtNB = 0
-
-# our original AMPL script fixes values to any common value.
-self.FixWhenItersConvergedAtLB = 10
-self.FixWhenItersConvergedAtUB = 10
-self.FixWhenItersConvergedAtNB = 0
-
-# doesn't actually set it to zero. rather, it goes with
-# the default solver mipgap.
-self.Iteration0MipGap = 0.0
-
-self.InitialMipGap = 0.10
-self.FinalMipGap = 0.0001
-
-self.CycleLengthSlamThreshold = 30
-self.SlamAfterIter = 100
diff --git a/examples/pysp/networkflow/config/wwph-fixlag20.cfg b/examples/pysp/networkflow/config/wwph-fixlag20.cfg
deleted file mode 100644
index 5ec421a501e..00000000000
--- a/examples/pysp/networkflow/config/wwph-fixlag20.cfg
+++ /dev/null
@@ -1,19 +0,0 @@
-# our original AMPL script fixes values to any common value.
-self.Iter0FixIfConvergedAtLB = 0
-self.Iter0FixIfConvergedAtUB = 0
-self.Iter0FixIfConvergedAtNB = 0
-
-# our original AMPL script fixes values to any common value.
-self.FixWhenItersConvergedAtLB = 20
-self.FixWhenItersConvergedAtUB = 20
-self.FixWhenItersConvergedAtNB = 0
-
-# doesn't actually set it to zero. rather, it goes with
-# the default solver mipgap.
-self.Iteration0MipGap = 0.0
-
-self.InitialMipGap = 0.10
-self.FinalMipGap = 0.0001
-
-self.CycleLengthSlamThreshold = 30
-self.SlamAfterIter = 100
diff --git a/examples/pysp/networkflow/config/wwph-immediatefixing.cfg b/examples/pysp/networkflow/config/wwph-immediatefixing.cfg
deleted file mode 100644
index a55f8d9f9cd..00000000000
--- a/examples/pysp/networkflow/config/wwph-immediatefixing.cfg
+++ /dev/null
@@ -1,19 +0,0 @@
-# our original AMPL script fixes values to any common value.
-self.Iter0FixIfConvergedAtLB = 1
-self.Iter0FixIfConvergedAtUB = 1
-self.Iter0FixIfConvergedAtNB = 0
-
-# our original AMPL script fixes values to any common value.
-self.FixWhenItersConvergedAtLB = 1
-self.FixWhenItersConvergedAtUB = 1
-self.FixWhenItersConvergedAtNB = 0
-
-# doesn't actually set it to zero. rather, it goes with
-# the default solver mipgap.
-self.Iteration0MipGap = 0.0
-
-self.InitialMipGap = 0.10
-self.FinalMipGap = 0.0001
-
-self.CycleLengthSlamThreshold = 30
-self.SlamAfterIter = 100
diff --git a/examples/pysp/networkflow/config/wwph-mipgaponly.cfg b/examples/pysp/networkflow/config/wwph-mipgaponly.cfg
deleted file mode 100644
index 90ee4c8272e..00000000000
--- a/examples/pysp/networkflow/config/wwph-mipgaponly.cfg
+++ /dev/null
@@ -1,16 +0,0 @@
-# don't allow any fixing - just let the mipgap start out weak, and tighten up.
-
-self.Iter0FixIfConvergedAtLB = 0
-self.Iter0FixIfConvergedAtUB = 0
-self.Iter0FixIfConvergedAtNB = 0
-
-self.FixWhenItersConvergedAtLB = 0
-self.FixWhenItersConvergedAtUB = 0
-self.FixWhenItersConvergedAtNB = 0
-
-# doesn't actually set it to zero. rather, it
-# goes with the default solver mipgap.
-self.Iteration0MipGap = 0.0
-
-self.InitialMipGap = 0.10
-self.FinalMipGap = 0.0001
diff --git a/examples/pysp/networkflow/config/wwph.suffixes b/examples/pysp/networkflow/config/wwph.suffixes
deleted file mode 100644
index 7a03104a885..00000000000
--- a/examples/pysp/networkflow/config/wwph.suffixes
+++ /dev/null
@@ -1,9 +0,0 @@
-# allow slamming of b0 to any agreed-up value.
-RootNode: # or FirstStage
- b0[*,*]:
- CanSlamToLB: True
- CanSlamToMin: True
- CanSlamToAnywhere: True
- CanSlamToMax: True
- CanSlamToUB: True
- SlammingPriority: 1 # equal priority for now.
diff --git a/examples/pysp/networkflow/config/xboundsetter.py b/examples/pysp/networkflow/config/xboundsetter.py
deleted file mode 100644
index c5293ba1aee..00000000000
--- a/examples/pysp/networkflow/config/xboundsetter.py
+++ /dev/null
@@ -1,25 +0,0 @@
-# ___________________________________________________________________________
-#
-# Pyomo: Python Optimization Modeling Objects
-# Copyright 2017 National Technology and Engineering Solutions of Sandia, LLC
-# Under the terms of Contract DE-NA0003525 with National Technology and
-# Engineering Solutions of Sandia, LLC, the U.S. Government retains certain
-# rights in this software.
-# This software is distributed under the 3-clause BSD License.
-# ___________________________________________________________________________
-#
-
-#@pyomobook:
-# We only need to set upper bounds on first-stage variables, i.e., those
-# being blended.
-
-def ph_boundsetter_callback(ph, scenario_tree, scenario):
-
- # x is a first stage variable
- root_node = scenario_tree.findRootNode()
- scenario_instance = scenario._instance
- symbol_map = scenario_instance._ScenarioTreeSymbolMap
- for arc in scenario_instance.Arcs:
- scenario_instance.x[arc].setlb(0.0)
- scenario_instance.x[arc].setub(scenario_instance.M)
-#@:pyomobook
diff --git a/examples/pysp/networkflow/models-cc/ReferenceModel.py b/examples/pysp/networkflow/models-cc/ReferenceModel.py
deleted file mode 100644
index 49bee6bd451..00000000000
--- a/examples/pysp/networkflow/models-cc/ReferenceModel.py
+++ /dev/null
@@ -1,175 +0,0 @@
-# ___________________________________________________________________________
-#
-# Pyomo: Python Optimization Modeling Objects
-# Copyright 2017 National Technology and Engineering Solutions of Sandia, LLC
-# Under the terms of Contract DE-NA0003525 with National Technology and
-# Engineering Solutions of Sandia, LLC, the U.S. Government retains certain
-# rights in this software.
-# This software is distributed under the 3-clause BSD License.
-# ___________________________________________________________________________
-#
-# A simple budget-constrained single-commodity network flow problem, taken from Ruszcynski.
-#
-
-from pyomo.core import *
-
-#
-# Model
-#
-
-model = AbstractModel()
-
-#
-# Parameters
-#
-
-model.Nodes = Set(ordered=True)
-
-model.Arcs = Set(within=model.Nodes*model.Nodes)
-
-# derived set
-def aplus_arc_set_rule(model, v):
- return [(i, j) for (i, j) in model.Arcs if j == v]
-model.Aplus = Set(model.Nodes, within=model.Arcs, initialize=aplus_arc_set_rule)
-
-# derived set
-def aminus_arc_set_rule(model, v):
- return [(i, j) for (i, j) in model.Arcs if i == v]
-model.Aminus = Set(model.Nodes, within=model.Arcs, initialize=aminus_arc_set_rule)
-
-# demands are assumed to be symmetric, although this is not explicitly checked.
-model.Demand = Param(model.Nodes, model.Nodes, default=0.0)
-
-model.CapCost = Param(model.Arcs)
-
-model.b0Cost = Param(model.Arcs)
-
-model.FCost = Param(model.Nodes, model.Nodes)
-
-# the maximum sum of demands across the set of scenarios - necessarily computed externally.
-model.M = Param(within=NonNegativeReals)
-
-# Threshold for the UnmetDemand (percentage of Demand)
-model.UnmetDemandThreshold = Param(within=NonNegativeReals)
-
-# lambdaMult is the Lagrangian multiplier for the relaxed chance constraint
-# (note: lambda is a reserved word in Python)
-# note: a default makes no sense so watch out because zero is special (no delta)
-model.lambdaMult = Param(mutable=True, default = 0)
-
-# big M is needed to establish delta
-# set it to total demand + 1
-# note: without value() a bad lp file will be written
-def BigM_Init(model):
- return sum(sum(value(model.Demand[i,j]) for i in model.Nodes) for j in model.Nodes) + 1
- #return 400000
-model.BigM = Param(initialize=BigM_Init)
-
-#
-# Variables
-#
-
-# delta is the indicator that we meet demand (so 1-delta indicates that we shed load)
-model.delta = Var(within=Binary)
-
-# UnmetDemand
-model.UnmetDemand = Var(model.Nodes, model.Nodes, within=NonNegativeReals)
-
-# total arc capacity - a first stage variable.
-model.x = Var(model.Arcs, within=NonNegativeReals)
-
-# from between the nodes through the arc - a second stage variable.
-model.y = Var(model.Nodes, model.Nodes, model.Arcs, within=NonNegativeReals)
-
-# first stage budget allocation variable
-model.b0 = Var(model.Arcs, within=Binary)
-
-# second stage budget allocation variable
-model.b = Var(model.Arcs, within=Binary)
-
-# the cost variables for the stages, in isolation.
-model.FirstStageCost = Var()
-model.SecondStageCost = Var()
-model.fofx = Var()
-
-
-#
-# Constraints
-#
-
-def flow_balance_constraint_rule(model, v, k, l):
- if v == k:
- return (sum([model.y[k, l, i, j] for (i, j) in model.Aplus[v]]) - sum([model.y[k, l, i, j] for (i, j) in model.Aminus[v]]) + (model.Demand[k, l] - model.UnmetDemand[k, l])) == 0.0
- elif v == l:
- return (sum([model.y[k, l, i, j] for (i, j) in model.Aplus[v]]) - sum([model.y[k, l, i, j] for (i, j) in model.Aminus[v]]) - (model.Demand[k, l] - model.UnmetDemand[k, l])) == 0.0
- else:
- return (sum([model.y[k, l, i, j] for (i, j) in model.Aplus[v]]) - sum([model.y[k, l, i, j] for (i, j) in model.Aminus[v]])) == 0.0
-model.FlowBalanceConstraint = Constraint(model.Nodes, model.Nodes, model.Nodes, rule=flow_balance_constraint_rule)
-
-def capacity_constraint_rule(model, i, j):
- return (None, sum([model.y[k, l, i, j] for k in model.Nodes for l in model.Nodes]) - model.x[i, j], 0.0)
-model.CapacityConstraint = Constraint(model.Arcs, rule=capacity_constraint_rule)
-
-def x_symmetry_constraint_rule(model, i, j):
- return (model.x[i, j] - model.x[j, i]) == 0.0
-model.xSymmetryConstraint = Constraint(model.Arcs, rule=x_symmetry_constraint_rule)
-
-def b0_symmetry_constraint_rule(model, i, j):
- return (model.b0[i, j] - model.b0[j, i]) == 0.0
-model.b0SymmetryConstraint = Constraint(model.Arcs, rule=b0_symmetry_constraint_rule)
-
-def b_symmetry_constraint_rule(model, i, j):
- return (model.b[i, j] - model.b[j, i]) == 0.0
-model.bSymmetryConstraint = Constraint(model.Arcs, rule=b_symmetry_constraint_rule)
-
-#def bought_arc0_constraint_rule(model, k, l, i, j):
-# return (0.0, model.M * model.b0[i, j] - model.y[k, l, i, j], None)
-#model.BoughtArc0Constraint = Constraint(model.Nodes, model.Nodes, model.Arcs, rule=bought_arc0_constraint_rule)
-
-#def bought_arc_constraint_rule(model, k, l, i, j):
-# return (0.0, model.M * model.b[i, j] - model.y[k, l, i, j], None)
-#model.BoughtArcConstraint = Constraint(model.Nodes, model.Nodes, model.Arcs, rule=bought_arc_constraint_rule)
-
-def no_arc_capacity_unless_bought_constraint_rule(model, i, j):
- return (0.0, model.M * model.b0[i, j] - model.x[i, j], None)
-model.NoArcCapacityUnlessBoughtConstraint = Constraint(model.Arcs, rule=no_arc_capacity_unless_bought_constraint_rule)
-
-# UnmetDemand Threshold: the UnmetDemand for each node-pair has to be smaller than the
-# threshold (percentage) times the corresponding Demand for this node-pair
-def demand_service_threshold_rule(model, k, l):
- return model.UnmetDemand[k, l] <= model.Demand[k, l] * model.UnmetDemandThreshold
-
-model.DemandServiceThreshold = Constraint(model.Nodes, model.Nodes, rule=demand_service_threshold_rule)
-
-# establish the value for delta
-def establish_delta_rule(model):
- return sum_product(model.UnmetDemand) <= model.BigM * (1-model.delta)
-model.Establishdelta = Constraint(rule=establish_delta_rule)
-
-#
-# Stage-specific cost computations
-#
-
-def compute_first_stage_cost_rule(model):
- return (model.FirstStageCost - sum_product(model.CapCost, model.x) - sum_product(model.b0Cost, model.b0)) == 0.0
-model.ComputeFirstStageCost = Constraint(rule=compute_first_stage_cost_rule)
-
-def compute_second_stage_cost_rule(model):
- return model.SecondStageCost == sum_product(model.FCost, model.b) - (model.lambdaMult * model.delta)
-model.ComputeSecondStageCost = Constraint(rule=compute_second_stage_cost_rule)
-
-def fofx_rule(model):
- return ((model.fofx - model.FirstStageCost - model.SecondStageCost) == 0.0)
-model.Compute_fofx = Constraint(rule=fofx_rule)
-
-#
-# PySP Auto-generated Objective
-#
-# minimize: sum of StageCosts
-#
-# A active scenario objective equivalent to that generated by PySP is
-# included here for informational purposes.
-def total_cost_rule(model):
- return model.FirstStageCost + model.SecondStageCost
-model.Total_Cost_Objective = Objective(rule=total_cost_rule, sense=minimize)
-
diff --git a/examples/pysp/networkflow/models-discrete/ReferenceModel.py b/examples/pysp/networkflow/models-discrete/ReferenceModel.py
deleted file mode 100644
index cff3760ef0a..00000000000
--- a/examples/pysp/networkflow/models-discrete/ReferenceModel.py
+++ /dev/null
@@ -1,141 +0,0 @@
-# ___________________________________________________________________________
-#
-# Pyomo: Python Optimization Modeling Objects
-# Copyright 2017 National Technology and Engineering Solutions of Sandia, LLC
-# Under the terms of Contract DE-NA0003525 with National Technology and
-# Engineering Solutions of Sandia, LLC, the U.S. Government retains certain
-# rights in this software.
-# This software is distributed under the 3-clause BSD License.
-# ___________________________________________________________________________
-#
-# A simple budget-constrained single-commodity network flow problem, taken from Ruszcynski.
-#
-
-from pyomo.core import *
-
-#
-# Model
-#
-
-model = AbstractModel()
-
-#
-# Parameters
-#
-
-model.Nodes = Set(ordered=True)
-
-model.Arcs = Set(within=model.Nodes*model.Nodes)
-
-# derived set
-def aplus_arc_set_rule(model, v):
- return [(i, j) for (i, j) in model.Arcs if j == v]
-model.Aplus = Set(model.Nodes, within=model.Arcs, initialize=aplus_arc_set_rule)
-
-# derived set
-def aminus_arc_set_rule(model, v):
- return [(i, j) for (i, j) in model.Arcs if i == v]
-model.Aminus = Set(model.Nodes, within=model.Arcs, initialize=aminus_arc_set_rule)
-
-# demands are assumed to be symmetric, although this is not explicitly checked.
-model.Demand = Param(model.Nodes, model.Nodes, default=0.0)
-
-model.CapCost = Param(model.Arcs)
-
-model.b0Cost = Param(model.Arcs)
-
-model.FCost = Param(model.Nodes, model.Nodes)
-
-# the maximum sum of demands across the set of scenarios - necessarily computed externally.
-model.M = Param(within=NonNegativeReals)
-
-#
-# Variables
-#
-
-# total arc capacity - a first stage variable.
-model.x = Var(model.Arcs, within=NonNegativeReals)
-
-model.discrete_x = Var(model.Arcs, within=NonNegativeIntegers)
-model.scale_x = Param(initialize=10)
-def set_x(m,*i):
- return m.x[i] == m.scale_x * m.discrete_x[i]
-model.set_x = Constraint(model.Arcs, rule=set_x)
-
-# from between the nodes through the arc - a second stage variable.
-model.y = Var(model.Nodes, model.Nodes, model.Arcs, within=NonNegativeReals)
-
-# first stage budget allocation variable
-model.b0 = Var(model.Arcs, within=Binary)
-
-# second stage budget allocation variable
-model.b = Var(model.Arcs, within=Binary)
-
-# the cost variables for the stages, in isolation.
-model.FirstStageCost = Var()
-model.SecondStageCost = Var()
-
-#
-# Constraints
-#
-
-def flow_balance_constraint_rule(model, v, k, l):
- if v == k:
- return (sum([model.y[k, l, i, j] for (i, j) in model.Aplus[v]]) - sum([model.y[k, l, i, j] for (i, j) in model.Aminus[v]]) + model.Demand[k, l]) == 0.0
- elif v == l:
- return (sum([model.y[k, l, i, j] for (i, j) in model.Aplus[v]]) - sum([model.y[k, l, i, j] for (i, j) in model.Aminus[v]]) - model.Demand[k, l]) == 0.0
- else:
- return (sum([model.y[k, l, i, j] for (i, j) in model.Aplus[v]]) - sum([model.y[k, l, i, j] for (i, j) in model.Aminus[v]])) == 0.0
-model.FlowBalanceConstraint = Constraint(model.Nodes, model.Nodes, model.Nodes, rule=flow_balance_constraint_rule)
-
-def capacity_constraint_rule(model, i, j):
- return (None, sum([model.y[k, l, i, j] for k in model.Nodes for l in model.Nodes]) - model.x[i, j], 0.0)
-model.CapacityConstraint = Constraint(model.Arcs, rule=capacity_constraint_rule)
-
-def x_symmetry_constraint_rule(model, i, j):
- return (model.x[i, j] - model.x[j, i]) == 0.0
-model.xSymmetryConstraint = Constraint(model.Arcs, rule=x_symmetry_constraint_rule)
-
-def b0_symmetry_constraint_rule(model, i, j):
- return (model.b0[i, j] - model.b0[j, i]) == 0.0
-model.b0SymmetryConstraint = Constraint(model.Arcs, rule=b0_symmetry_constraint_rule)
-
-def b_symmetry_constraint_rule(model, i, j):
- return (model.b[i, j] - model.b[j, i]) == 0.0
-model.bSymmetryConstraint = Constraint(model.Arcs, rule=b_symmetry_constraint_rule)
-
-def bought_arc0_constraint_rule(model, k, l, i, j):
- return (0.0, model.M * model.b0[i, j] - model.y[k, l, i, j], None)
-model.BoughtArc0Constraint = Constraint(model.Nodes, model.Nodes, model.Arcs, rule=bought_arc0_constraint_rule)
-
-def bought_arc_constraint_rule(model, k, l, i, j):
- return (0.0, model.M * model.b[i, j] - model.y[k, l, i, j], None)
-model.BoughtArcConstraint = Constraint(model.Nodes, model.Nodes, model.Arcs, rule=bought_arc_constraint_rule)
-
-def no_arc_capacity_unless_bought_constraint_rule(model, i, j):
- return (0.0, model.M * model.b0[i, j] - model.x[i, j], None)
-model.NoArcCapacityUnlessBoughtConstraint = Constraint(model.Arcs, rule=no_arc_capacity_unless_bought_constraint_rule)
-
-#
-# Stage-specific cost computations
-#
-
-def compute_first_stage_cost_rule(model):
- return (model.FirstStageCost - sum_product(model.CapCost, model.x) - sum_product(model.b0Cost, model.b0)) == 0.0
-model.ComputeFirstStageCost = Constraint(rule=compute_first_stage_cost_rule)
-
-def compute_second_stage_cost_rule(model):
- return (model.SecondStageCost - sum_product(model.FCost, model.b)) == 0.0
-model.ComputeSecondStageCost = Constraint(rule=compute_second_stage_cost_rule)
-
-#
-# PySP Auto-generated Objective
-#
-# minimize: sum of StageCosts
-#
-# A active scenario objective equivalent to that generated by PySP is
-# included here for informational purposes.
-def total_cost_rule(model):
- return model.FirstStageCost + model.SecondStageCost
-model.Total_Cost_Objective = Objective(rule=total_cost_rule, sense=minimize)
-
diff --git a/examples/pysp/networkflow/models/ReferenceModel.py b/examples/pysp/networkflow/models/ReferenceModel.py
deleted file mode 100644
index c0245d06618..00000000000
--- a/examples/pysp/networkflow/models/ReferenceModel.py
+++ /dev/null
@@ -1,135 +0,0 @@
-# ___________________________________________________________________________
-#
-# Pyomo: Python Optimization Modeling Objects
-# Copyright 2017 National Technology and Engineering Solutions of Sandia, LLC
-# Under the terms of Contract DE-NA0003525 with National Technology and
-# Engineering Solutions of Sandia, LLC, the U.S. Government retains certain
-# rights in this software.
-# This software is distributed under the 3-clause BSD License.
-# ___________________________________________________________________________
-#
-# A simple budget-constrained single-commodity network flow problem, taken from Ruszcynski.
-#
-
-from pyomo.core import *
-
-#
-# Model
-#
-
-model = AbstractModel()
-
-#
-# Parameters
-#
-
-model.Nodes = Set(ordered=True)
-
-model.Arcs = Set(within=model.Nodes*model.Nodes)
-
-# derived set
-def aplus_arc_set_rule(model, v):
- return [(i, j) for (i, j) in model.Arcs if j == v]
-model.Aplus = Set(model.Nodes, within=model.Arcs, initialize=aplus_arc_set_rule)
-
-# derived set
-def aminus_arc_set_rule(model, v):
- return [(i, j) for (i, j) in model.Arcs if i == v]
-model.Aminus = Set(model.Nodes, within=model.Arcs, initialize=aminus_arc_set_rule)
-
-# demands are assumed to be symmetric, although this is not explicitly checked.
-model.Demand = Param(model.Nodes, model.Nodes, default=0.0)
-
-model.CapCost = Param(model.Arcs)
-
-model.b0Cost = Param(model.Arcs)
-
-model.FCost = Param(model.Nodes, model.Nodes)
-
-# the maximum sum of demands across the set of scenarios - necessarily computed externally.
-model.M = Param(within=NonNegativeReals)
-
-#
-# Variables
-#
-
-# total arc capacity - a first stage variable.
-model.x = Var(model.Arcs, within=NonNegativeReals)
-
-# from between the nodes through the arc - a second stage variable.
-model.y = Var(model.Nodes, model.Nodes, model.Arcs, within=NonNegativeReals)
-
-# first stage budget allocation variable
-model.b0 = Var(model.Arcs, within=Binary)
-
-# second stage budget allocation variable
-model.b = Var(model.Arcs, within=Binary)
-
-# the cost variables for the stages, in isolation.
-model.FirstStageCost = Var()
-model.SecondStageCost = Var()
-
-#
-# Constraints
-#
-
-def flow_balance_constraint_rule(model, v, k, l):
- if v == k:
- return (sum([model.y[k, l, i, j] for (i, j) in model.Aplus[v]]) - sum([model.y[k, l, i, j] for (i, j) in model.Aminus[v]]) + model.Demand[k, l]) == 0.0
- elif v == l:
- return (sum([model.y[k, l, i, j] for (i, j) in model.Aplus[v]]) - sum([model.y[k, l, i, j] for (i, j) in model.Aminus[v]]) - model.Demand[k, l]) == 0.0
- else:
- return (sum([model.y[k, l, i, j] for (i, j) in model.Aplus[v]]) - sum([model.y[k, l, i, j] for (i, j) in model.Aminus[v]])) == 0.0
-model.FlowBalanceConstraint = Constraint(model.Nodes, model.Nodes, model.Nodes, rule=flow_balance_constraint_rule)
-
-def capacity_constraint_rule(model, i, j):
- return (None, sum([model.y[k, l, i, j] for k in model.Nodes for l in model.Nodes]) - model.x[i, j], 0.0)
-model.CapacityConstraint = Constraint(model.Arcs, rule=capacity_constraint_rule)
-
-def x_symmetry_constraint_rule(model, i, j):
- return (model.x[i, j] - model.x[j, i]) == 0.0
-model.xSymmetryConstraint = Constraint(model.Arcs, rule=x_symmetry_constraint_rule)
-
-def b0_symmetry_constraint_rule(model, i, j):
- return (model.b0[i, j] - model.b0[j, i]) == 0.0
-model.b0SymmetryConstraint = Constraint(model.Arcs, rule=b0_symmetry_constraint_rule)
-
-def b_symmetry_constraint_rule(model, i, j):
- return (model.b[i, j] - model.b[j, i]) == 0.0
-model.bSymmetryConstraint = Constraint(model.Arcs, rule=b_symmetry_constraint_rule)
-
-def bought_arc0_constraint_rule(model, k, l, i, j):
- return (0.0, model.M * model.b0[i, j] - model.y[k, l, i, j], None)
-model.BoughtArc0Constraint = Constraint(model.Nodes, model.Nodes, model.Arcs, rule=bought_arc0_constraint_rule)
-
-def bought_arc_constraint_rule(model, k, l, i, j):
- return (0.0, model.M * model.b[i, j] - model.y[k, l, i, j], None)
-model.BoughtArcConstraint = Constraint(model.Nodes, model.Nodes, model.Arcs, rule=bought_arc_constraint_rule)
-
-def no_arc_capacity_unless_bought_constraint_rule(model, i, j):
- return (0.0, model.M * model.b0[i, j] - model.x[i, j], None)
-model.NoArcCapacityUnlessBoughtConstraint = Constraint(model.Arcs, rule=no_arc_capacity_unless_bought_constraint_rule)
-
-#
-# Stage-specific cost computations
-#
-
-def compute_first_stage_cost_rule(model):
- return (model.FirstStageCost - sum_product(model.CapCost, model.x) - sum_product(model.b0Cost, model.b0)) == 0.0
-model.ComputeFirstStageCost = Constraint(rule=compute_first_stage_cost_rule)
-
-def compute_second_stage_cost_rule(model):
- return (model.SecondStageCost - sum_product(model.FCost, model.b)) == 0.0
-model.ComputeSecondStageCost = Constraint(rule=compute_second_stage_cost_rule)
-
-#
-# PySP Auto-generated Objective
-#
-# minimize: sum of StageCosts
-#
-# A active scenario objective equivalent to that generated by PySP is
-# included here for informational purposes.
-def total_cost_rule(model):
- return model.FirstStageCost + model.SecondStageCost
-model.Total_Cost_Objective = Objective(rule=total_cost_rule, sense=minimize)
-
diff --git a/examples/pysp/networkflow/mpiexec.bash b/examples/pysp/networkflow/mpiexec.bash
deleted file mode 100755
index 13d3d22397d..00000000000
--- a/examples/pysp/networkflow/mpiexec.bash
+++ /dev/null
@@ -1,20 +0,0 @@
-#!/bin/bash
-
-# this script is for a particular SGE machine, but the mpiexec command
-# would be similar on any machine with mpi
-# this assumes you are launching from the networkflow directory
-
-# it is set up to do the 5 bundle example using 5 solver servers
-# followed by solving the ef
-
-#$ -N runnetflow
-#$ -cwd
-#$ -V
-#$ -o runnetflow.out
-#$ -e runnetflow.err
-
-mpiexec \
--np 1 pyomo_ns : \
--np 1 dispatch_srvr : \
--np 5 phsolverserver : \
--np 1 runph --solver=cplex --solver-manager=phpyro --shutdown-pyro -m models -i 1ef10 --solver=cplex --rho-cfgfile=config/rhosetter0.5.cfg --bounds-cfgfile=config/xboundsetter.cfg --max-iterations=20 --scenario-solver-options="threads=4" --scenario-bundle-specification=10scenario-bundle-specs/FiveBundles.dat --output-times --solve-ef --ef-mipgap=0.01 --ef-output-solver-log --enable-ww-extensions --ww-extension-cfgfile=config/wwph-fixlag10.cfg --ww-extension-suffixfile=config/wwph.suffixes --linearize-nonbinary-penalty-terms=4 --traceback --default-rho=1.0 >& netflow.out
diff --git a/examples/pysp/networkflow/run10.sh b/examples/pysp/networkflow/run10.sh
deleted file mode 100755
index a761c9af748..00000000000
--- a/examples/pysp/networkflow/run10.sh
+++ /dev/null
@@ -1,12 +0,0 @@
-#!/bin/bash
-# Must be run from pyomo/examples/pysp/networkflow
-SourceDir="/home/woodruff/software/pyomo/src/pyomo.pysp/pyomo/pysp"
-if [ "$1" == "" ]; then
- solver='gurobi'
-else
- solver=$1
-fi
-
-echo "run3.sh SourceDir is $SourceDir"
-python $SourceDir/lagrangeParam.py -m CCmodels -i CCdata/notuniform10 --solver=$solver --csvPrefix="10" >> run10.out
-
diff --git a/examples/pysp/networkflow/run3.sh b/examples/pysp/networkflow/run3.sh
deleted file mode 100755
index 79a1fef4463..00000000000
--- a/examples/pysp/networkflow/run3.sh
+++ /dev/null
@@ -1,14 +0,0 @@
-#!/bin/bash
-# Must be run from pyomo/examples/pysp/networkflow
-SourceDir="/home/woodruff/software/pyomo/src/pyomo.pysp/pyomo/pysp"
-
-if [ "$1" == "" ]; then
- solver='gurobi'
-else
- solver=$1
-fi
-
-echo
-echo "run3.sh SourceDir is $SourceDir"
-python $SourceDir/lagrangeParam.py -m CCmodels -i CCdata/1ef3CC --solver=$solver --csvPrefix = "3" >> run3.out
-
diff --git a/examples/pysp/networkflow/runmore10.s b/examples/pysp/networkflow/runmore10.s
deleted file mode 100755
index ef2d4222ae8..00000000000
--- a/examples/pysp/networkflow/runmore10.s
+++ /dev/null
@@ -1,9 +0,0 @@
-f [ "$1" == "" ]; then
- solver='gurobi'
-else
- solver=$1
-fi
-
-echo "running lagrangeMorePR.py for 10-scenario network flow at $(date)$ using solver $solver" > runmore10.out
-python ../lagrangeMorePR.py -m CCmodels -i CCdata/notuniform10 --solver=$solver --csvPrefix='10' >> runmore10.out
-vi runmore10.out
diff --git a/examples/pysp/networkflow/runmore3.s b/examples/pysp/networkflow/runmore3.s
deleted file mode 100755
index e7964338608..00000000000
--- a/examples/pysp/networkflow/runmore3.s
+++ /dev/null
@@ -1,9 +0,0 @@
-if [ "$1" == "" ]; then
- solver='gurobi'
-else
- solver=$1
-fi
-
-echo "running lagrangeMorePR.py for 3-scenario network flow at $(date)$ using solver $solver" > runmore3.out
-python ../lagrangeMorePR.py -m CCmodels -i CCdata/1ef3CC --solver=$solver --csvPrefix='run3' --prob-file='plist.dat' >> runmore3.out
-vi runmore3.out
diff --git a/examples/pysp/networkflow/smps_model/ReferenceModel.py b/examples/pysp/networkflow/smps_model/ReferenceModel.py
deleted file mode 100644
index 2f2d04fbc5f..00000000000
--- a/examples/pysp/networkflow/smps_model/ReferenceModel.py
+++ /dev/null
@@ -1,151 +0,0 @@
-# _________________________________________________________________________
-#
-# Pyomo: Python Optimization Modeling Objects
-# Copyright (c) 2014 Sandia Corporation.
-# Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation,
-# the U.S. Government retains certain rights in this software.
-# This software is distributed under the BSD License.
-# _________________________________________________________________________
-#
-# A simple budget-constrained single-commodity network flow problem,
-# given to us by Ruszcynski and modified.
-#
-# This version first appeared in
-# Scalable heuristics for a class of chance-constrained stochastic programs
-# JP Watson, RJB Wets, DL Woodruff
-# INFORMS Journal on Computing 22 (4), 543-554
-#
-
-# Annotated with location of stochastic matrix entries
-# for use with pysp2smps conversion tool.
-
-from pyomo.core import *
-from pyomo.pysp.annotations import StochasticConstraintBodyAnnotation
-from pyomo.pysp.annotations import StochasticConstraintBoundsAnnotation
-
-model = AbstractModel()
-
-#
-# Parameters and sets
-#
-
-model.Nodes = Set(ordered=True)
-
-model.Arcs = Set(within=model.Nodes*model.Nodes)
-
-# derived set
-def aplus_arc_set_rule(model, v):
- return [(i, j) for (i, j) in model.Arcs if j == v]
-model.Aplus = Set(model.Nodes, within=model.Arcs, initialize=aplus_arc_set_rule)
-
-# derived set
-def aminus_arc_set_rule(model, v):
- return [(i, j) for (i, j) in model.Arcs if i == v]
-model.Aminus = Set(model.Nodes, within=model.Arcs, initialize=aminus_arc_set_rule)
-
-# demands are assumed to be symmetric, although this is not explicitly checked.
-model.Demand = Param(model.Nodes, model.Nodes, default=0.0)
-
-model.CapCost = Param(model.Arcs)
-
-model.b0Cost = Param(model.Arcs)
-
-model.FCost = Param(model.Nodes, model.Nodes)
-
-# the maximum sum of demands across the set of scenarios - necessarily computed externally.
-model.M = Param(within=NonNegativeReals)
-
-#
-# Variables
-#
-
-# total arc capacity - a first stage variable.
-model.x = Var(model.Arcs, within=NonNegativeReals)
-
-# from between the nodes through the arc - a second stage variable.
-model.y = Var(model.Nodes, model.Nodes, model.Arcs, within=NonNegativeReals)
-
-# first stage budget allocation variable
-model.b0 = Var(model.Arcs, within=Binary)
-
-# second stage budget allocation variable
-model.b = Var(model.Arcs, within=Binary)
-
-# the cost variables for the stages, in isolation.
-model.FirstStageCost = Var()
-model.SecondStageCost = Var()
-
-#
-# Constraints
-#
-
-def flow_balance_constraint_rule(model, v, k, l):
- if v == k:
- return (sum([model.y[k, l, i, j] for (i, j) in model.Aplus[v]]) - sum([model.y[k, l, i, j] for (i, j) in model.Aminus[v]]) + model.Demand[k, l]) == 0.0
- elif v == l:
- return (sum([model.y[k, l, i, j] for (i, j) in model.Aplus[v]]) - sum([model.y[k, l, i, j] for (i, j) in model.Aminus[v]]) - model.Demand[k, l]) == 0.0
- else:
- return (sum([model.y[k, l, i, j] for (i, j) in model.Aplus[v]]) - sum([model.y[k, l, i, j] for (i, j) in model.Aminus[v]])) == 0.0
-model.FlowBalanceConstraint = Constraint(model.Nodes, model.Nodes, model.Nodes, rule=flow_balance_constraint_rule)
-
-def capacity_constraint_rule(model, i, j):
- return (None, sum([model.y[k, l, i, j] for k in model.Nodes for l in model.Nodes]) - model.x[i, j], 0.0)
-model.CapacityConstraint = Constraint(model.Arcs, rule=capacity_constraint_rule)
-
-def x_symmetry_constraint_rule(model, i, j):
- return (model.x[i, j] - model.x[j, i]) == 0.0
-model.xSymmetryConstraint = Constraint(model.Arcs, rule=x_symmetry_constraint_rule)
-
-def b0_symmetry_constraint_rule(model, i, j):
- return (model.b0[i, j] - model.b0[j, i]) == 0.0
-model.b0SymmetryConstraint = Constraint(model.Arcs, rule=b0_symmetry_constraint_rule)
-
-def b_symmetry_constraint_rule(model, i, j):
- return (model.b[i, j] - model.b[j, i]) == 0.0
-model.bSymmetryConstraint = Constraint(model.Arcs, rule=b_symmetry_constraint_rule)
-
-def bought_arc0_constraint_rule(model, k, l, i, j):
- return (0.0, model.M * model.b0[i, j] - model.y[k, l, i, j], None)
-model.BoughtArc0Constraint = Constraint(model.Nodes, model.Nodes, model.Arcs, rule=bought_arc0_constraint_rule)
-
-def bought_arc_constraint_rule(model, k, l, i, j):
- return (0.0, model.M * model.b[i, j] - model.y[k, l, i, j], None)
-model.BoughtArcConstraint = Constraint(model.Nodes, model.Nodes, model.Arcs, rule=bought_arc_constraint_rule)
-
-def no_arc_capacity_unless_bought_constraint_rule(model, i, j):
- return (0.0, model.M * model.b0[i, j] - model.x[i, j], None)
-model.NoArcCapacityUnlessBoughtConstraint = Constraint(model.Arcs, rule=no_arc_capacity_unless_bought_constraint_rule)
-
-#
-# Stage-specific cost computations
-#
-
-def compute_first_stage_cost_rule(model):
- return (model.FirstStageCost - sum_product(model.CapCost, model.x) - sum_product(model.b0Cost, model.b0)) == 0.0
-model.ComputeFirstStageCost = Constraint(rule=compute_first_stage_cost_rule)
-
-# this is a Var and constraint to help DDSIP (dlw, Aug 2016)
-def compute_second_stage_cost_rule(model):
- return (model.SecondStageCost - sum_product(model.FCost, model.b)) == 0.0
-model.ComputeSecondStageCost = Constraint(rule=compute_second_stage_cost_rule)
-
-#
-# PySP Auto-generated Objective
-#
-# minimize: sum of StageCosts
-#
-# A active scenario objective equivalent to that generated by PySP is
-# included here for informational purposes.
-def total_cost_rule(model):
- return model.FirstStageCost + model.SecondStageCost
-model.Total_Cost_Objective = Objective(rule=total_cost_rule, sense=minimize)
-
-def pysp_annotation_rule(model):
- # to enable SMPS and or DDSIP
- model.stoch_rhs = StochasticConstraintBoundsAnnotation()
- model.stoch_rhs.declare(model.FlowBalanceConstraint)
- model.stoch_matrix = StochasticConstraintBodyAnnotation()
- model.stoch_matrix.declare(model.ComputeSecondStageCost)
-model.annotate = BuildAction(rule=pysp_annotation_rule)
-
-
diff --git a/examples/pysp/networkx_scenariotree/ReferenceModel.py b/examples/pysp/networkx_scenariotree/ReferenceModel.py
deleted file mode 100644
index 711ac1f64a7..00000000000
--- a/examples/pysp/networkx_scenariotree/ReferenceModel.py
+++ /dev/null
@@ -1,81 +0,0 @@
-# ___________________________________________________________________________
-#
-# Pyomo: Python Optimization Modeling Objects
-# Copyright 2017 National Technology and Engineering Solutions of Sandia, LLC
-# Under the terms of Contract DE-NA0003525 with National Technology and
-# Engineering Solutions of Sandia, LLC, the U.S. Government retains certain
-# rights in this software.
-# This software is distributed under the 3-clause BSD License.
-# ___________________________________________________________________________
-
-import pyomo.environ as aml
-
-# Creates an instance for each scenario
-def pysp_instance_creation_callback(scenario_name, node_names):
-
- model = aml.ConcreteModel()
- model.x = aml.Var()
- model.z = aml.Var()
- model.FirstStageCost = aml.Expression(
- expr=5*(model.z**2 + (model.x-1.1)**2))
- model.SecondStageCost = aml.Expression(expr=0.0)
- model.ThirdStageCost = aml.Expression(expr=0.0)
- model.obj = aml.Objective(expr= model.FirstStageCost + \
- model.SecondStageCost + \
- model.ThirdStageCost)
- model.c = aml.ConstraintList()
- model.c.add(model.z == model.x)
- if scenario_name.startswith("u0"):
- # All scenarios under second-stage node "u0"
- model.xu0 = aml.Var()
- model.c.add(model.xu0 == model.x)
- model.SecondStageCost.expr = (model.xu0 - 1)**2
-
- model.y0 = aml.Var()
- model.c.add(expr= -10 <= model.y0 <= 10)
- if scenario_name == "u00":
- model.yu00 = aml.Var()
- model.c.add(model.yu00 == model.y0)
- model.ThirdStageCost.expr = (model.yu00 + 1)**2
- elif scenario_name == "u01":
- model.yu01 = aml.Var()
- model.c.add(model.yu01 == model.y0)
- model.ThirdStageCost.expr = (2*model.yu01 - 3)**2 + 1
- else:
- assert False
- elif scenario_name.startswith("u1"):
- # All scenarios under second-stage node "u1"
- model.xu1 = aml.Var()
- model.c.add(model.xu1 == model.x)
- model.SecondStageCost.expr = (model.xu1 + 1)**2
-
- model.y1 = aml.Var()
- model.c.add(expr= -10 <= model.y1 <= 10)
- if scenario_name == "u10":
- model.yu10 = aml.Var()
- model.c.add(model.yu10 == model.y1)
- model.ThirdStageCost.expr = (0.5*model.yu10 - 1)**2 - 1
- elif scenario_name == "u11":
- model.yu11 = aml.Var()
- model.c.add(model.yu11 == model.y1)
- model.ThirdStageCost.expr = (0.2*model.yu11)**2
- else:
- assert False
- elif scenario_name.startswith("u2"):
- # All scenarios under second-stage node "u2"
- model.xu2 = aml.Var()
- model.c.add(model.xu2 == model.x)
- model.SecondStageCost.expr = (model.xu2 - 0.5)**2
-
- model.y2 = aml.Var()
- model.c.add(expr= -10 <= model.y2 <= 10)
- if scenario_name == "u20":
- model.yu20 = aml.Var()
- model.c.add(model.yu20 == model.y2)
- model.ThirdStageCost.expr = (0.1*model.yu20 - 3)**2 + 2
- else:
- assert False
- else:
- assert False
-
- return model
diff --git a/examples/pysp/networkx_scenariotree/ScenarioTree.pdf b/examples/pysp/networkx_scenariotree/ScenarioTree.pdf
deleted file mode 100644
index 1cdbedf59a2..00000000000
Binary files a/examples/pysp/networkx_scenariotree/ScenarioTree.pdf and /dev/null differ
diff --git a/examples/pysp/networkx_scenariotree/ScenarioTree.py b/examples/pysp/networkx_scenariotree/ScenarioTree.py
deleted file mode 100644
index 1b806aa08b8..00000000000
--- a/examples/pysp/networkx_scenariotree/ScenarioTree.py
+++ /dev/null
@@ -1,57 +0,0 @@
-# ___________________________________________________________________________
-#
-# Pyomo: Python Optimization Modeling Objects
-# Copyright 2017 National Technology and Engineering Solutions of Sandia, LLC
-# Under the terms of Contract DE-NA0003525 with National Technology and
-# Engineering Solutions of Sandia, LLC, the U.S. Government retains certain
-# rights in this software.
-# This software is distributed under the 3-clause BSD License.
-# ___________________________________________________________________________
-
-import networkx
-
-G = networkx.DiGraph()
-# first stage
-G.add_node("R",
- cost="FirstStageCost",
- variables=["x"],
- derived_variables=["z"])
-
-# second stage
-G.add_node("u0",
- cost="SecondStageCost",
- variables=["y0"],
- derived_variables=["xu0"])
-G.add_edge("R", "u0", weight=0.1)
-G.add_node("u1",
- cost="SecondStageCost",
- variables=["y1"],
- derived_variables=["xu1"])
-G.add_edge("R", "u1", weight=0.5)
-G.add_node("u2",
- cost="SecondStageCost",
- variables=["y2"],
- derived_variables=["xu2"])
-G.add_edge("R", "u2", weight=0.4)
-
-# third stage
-G.add_node("u00",
- cost="ThirdStageCost",
- variables=["yu00"])
-G.add_edge("u0", "u00", weight=0.1)
-G.add_node("u01",
- cost="ThirdStageCost",
- variables=["yu01"])
-G.add_edge("u0", "u01", weight=0.9)
-G.add_node("u10",
- cost="ThirdStageCost",
- variables=["yu10"])
-G.add_edge("u1", "u10", weight=0.5)
-G.add_node("u11",
- cost="ThirdStageCost",
- variables=["yu11"])
-G.add_edge("u1", "u11", weight=0.5)
-G.add_node("u20",
- cost="ThirdStageCost",
- variables=["yu20"])
-G.add_edge("u2", "u20", weight=1.0)
diff --git a/examples/pysp/runscripts/AAAREADME.txt b/examples/pysp/runscripts/AAAREADME.txt
deleted file mode 100644
index cb59e5c7c55..00000000000
--- a/examples/pysp/runscripts/AAAREADME.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-This directory contains scripts that can be used for the purpose
-of driving ph. For example, makephscript.py has hard-coded inputs
-and writes a bash script file that can used to run ph in parallel.
diff --git a/examples/pysp/runscripts/makephscript.py b/examples/pysp/runscripts/makephscript.py
deleted file mode 100644
index 7f51b1b7e82..00000000000
--- a/examples/pysp/runscripts/makephscript.py
+++ /dev/null
@@ -1,149 +0,0 @@
-# Author: David L. Woodruff October 2016
-#
-# This python script creates scripts (e.g., slurm scripts) to run ph.
-# I use this to avoid inconsistencies because bash variables
-# cannot be used within slurm directives and also to be able
-# to create "the same" script for multiple types of machines.
-# Also, comments in slurm scripts can cause trouble if they are
-# too early in the script, but I can put comments in this py file.
-
-import datetime
-import os
-
-### Edit the following input lines:
-
-MachineOnWhichToRun = "NERSCslurm"
-#MachineOnWhichToRun = "sharedmemory"
-workercnt = 5
-modelname = "models"
-instance = "1ef50" # the runph line has "-i "+instance
-ScriptFileName = instance+".bash"
-threadcnt = 2 # number of threads to each subproblem
-
-# distributed memory stuff
-timelimit = "00:01:00"
-nodecnt = 1
-combined_srun = True
-dispatch_memory = 10000 # at NERSC these are MB
-worker_memory = 50000
-ph_memory = 10000
-
-# NERSC stuff
-partition = "debug"
-
-# Ugly runph line: runph -i instance -m modelname is assumed.
-# Note that \\\n outputs a bash continuation line symbol and eoln
-# Note that the threads substitution is done here.
-runph_line = \
- "--rho-cfgfile=config/rhosetter05 \\\n" + \
- "--enable-ww-extensions \\\n" + \
- "--ww-extension-cfgfile=config/wwph-fixlag10.cfg \\\n" + \
- "--ww-extension-suffixfile=config/wwph.suffixes \\\n" + \
- "--default-rho=1 \\\n" +\
- "--user-defined-extension=pyomo.pysp.plugins.phboundextension \\\n" + \
- "--traceback \\\n" + \
- "--xhat-method=config/xhatslam.yaml \\\n" +\
- "--solver-manager=phpyro --shutdown-pyro \\\n" +\
- "--max-iterations=1 \\\n" +\
- '--scenario-solver-options="threads='+str(threadcnt)+'" \\\n' +\
- "--output-times \\\n" + \
- " >& runph.out"
-
- # the threads line should ouput something like:
- # --scenario-solver-options="threads=8" \
-
-
-# end input lines ###
-
-timestamp = datetime.datetime.now()
-thisfile = os.path.abspath(__file__)
-
-#======= utils ============
-def environ_write(f):
- # set the enviornment variables for distributed memory machines
-
- # the plus 3 is for the name server, dispatch server and ph
- f.write("export PYRO_THREADPOOL_SIZE="+str(workercnt+3)+"\n")
- f.write("\n")
- # we are *not* using the broadcast server
- f.write("\n")
- f.write("export PYRO_SOCK_REUSE=True\n")
- f.write("export PYRO_BROKEN_MSGWAITALL=1\n")
- f.write("export PYTHONDONTWRITEBYTECODE=1\n")
- f.write("export PYRO_SERIALIZERS_ACCEPTED=serpent,json,marshal,pickle")
- f.write("export PYRO_SERIALIZER=pickle")
- f.write("\n")
-
-def port_write(f):
- # set the unused_port variable and the PYRO_NS_PORT
- f.write('unused_port=$(python -c "import pyutilib.pyro; print(pyutilib.pyro.util.find_unused_port())")\n')
- f.write('export PYRO_NS_PORT=$unused_port\n')
- f.write("\n")
-
-def host_write(f):
- # set the nameserver_node variable and the PYRO_NS_HOST
- f.write("nameserver_node=$(hostname)\n") # nameserver_node=`scontrol show hostnames $SLURM_NODELIST | sed -n 1p`
- f.write('export PYRO_NS_HOST=$nameserver_node\n')
- f.write("\n")
-
-def write_slurm_run(f):
- f.write("srun -u -n 1 -N 1 -o pyomo_ns.out unbuffer pyomo_ns -x --port=$unused_port --host=$nameserver_node & \n")
- f.write("sleep 1\n")
- f.write("srun -u -n 1 -N 1 -o dispatch_srvr.out unbuffer dispatch_srvr & \n")
- f.write("sleep 1\n")
-
-
-#==========================
-
-with open(ScriptFileName ,"wt") as f:
-
- if MachineOnWhichToRun == "NERSCslurm":
- f.write("#!/bin/bash -l\n")
- f.write("\n")
- f.write("#SBATCH --partition="+partition+"\n")
- f.write("#SBATCH --nodes="+str(nodecnt)+"\n")
- f.write("#SBATCH --time="+timelimit+"\n")
- f.write("#SBATCH --job-name="+instance+"\n")
- f.write("#SBATCH --license=SCRATCH\n")
- f.write("#SBATCH -A m2528\n")
- f.write("#SBATCH --output="+instance+".out\n")
- f.write("#SBATCH --gres=craynetwork:4\n")
- f.write("\n")
- f.write("module load python/3.5-anaconda\n")
- f.write("source activate pyomo\n")
- f.write("\n")
- environ_write(f)
- port_write(f)
- host_write(f)
- # the -x eliminates the broadcast server
- f.write("srun -u --relative=0 -N 1 -x --mem=1000 " + \
- " --gres=craynetwork:1 pyomo_ns --port=$unused_port --host=$nameserver_node " + \
- ">& pyomo_ns.out &\n")
- f.write("srun -u --relative=0 -N 1 --mem=" + str(dispatch_memory) + \
- " --gres=craynetwork:1 dispatch_srvr >& dispatch_srvr.out &\n")
-
- if combined_srun:
- # note that the output is going to all go to the same file
- f.write("srun -u -n "+str(workercnt)+" --mem="+str(worker_memory) + \
- " --gres=craynetwork:1 " + \
- "phsolverserver --verbose --traceback &\n")
- else:
- for w in range(workercnt):
- f.write("srun -u -N 1 --gres=craynetwork:1 phsolverserver " + \
- "--verbose --traceback >& worker"+str(w+1)+".out &\n")
-
- # note that ph command line does not terminate with an ampersand
- f.write ("srun -u --relative=0 -N 1 --mem="+str(ph_memory) + \
- " --gres=craynetwork:1 runph -i "+instance + " -m "+modelname+" "+\
- runph_line+"\n")
-
- elif MachineOnWhichToRun == "sharedmemory":
- f.write("#!/bin/bash -l\n")
- f.write("\n")
- port_write(f)
- f.write ("mpiexec -np 1 pyomo_ns : -np 1 dispatch_srvr : -np "+ \
- str(workercnt) +" phsolverserver : -np 1 runph -i "+ \
- instance+" -m "+modelname+" "+runph_line+"\n")
-
- f.write("\n")
- f.write("## Created by "+str(thisfile)+" at "+str(timestamp)+"\n")
diff --git a/examples/pysp/scripting/apps/compile_scenario_tree.py b/examples/pysp/scripting/apps/compile_scenario_tree.py
deleted file mode 100644
index b3d0f9e289e..00000000000
--- a/examples/pysp/scripting/apps/compile_scenario_tree.py
+++ /dev/null
@@ -1,288 +0,0 @@
-# ___________________________________________________________________________
-#
-# Pyomo: Python Optimization Modeling Objects
-# Copyright 2017 National Technology and Engineering Solutions of Sandia, LLC
-# Under the terms of Contract DE-NA0003525 with National Technology and
-# Engineering Solutions of Sandia, LLC, the U.S. Government retains certain
-# rights in this software.
-# This software is distributed under the 3-clause BSD License.
-# ___________________________________________________________________________
-
-__all__ = ('compile_scenario_tree',)
-
-import os
-import sys
-import time
-import argparse
-
-from pyomo.common import pyomo_command
-from pyomo.repn.beta.matrix import compile_block_linear_constraints
-from pyomo.pysp.util.config import (PySPConfigValue,
- PySPConfigBlock,
- safe_register_common_option,
- safe_register_unique_option,
- _domain_must_be_str)
-from pyomo.pysp.util.misc import (parse_command_line,
- launch_command)
-from pyomo.pysp.scenariotree.manager import (ScenarioTreeManagerClientSerial,
- ScenarioTreeManagerClientPyro,
- InvocationType)
-
-from six.moves import cPickle
-
-# generate an absolute path to this file
-thisfile = os.path.abspath(__file__)
-
-#
-# This function can be transmitted to scenario tree servers.
-# NOTE: It is assumed the models are "clean", with the exception of
-# whatever objects are added by the ScenarioTree linking
-# processes. That is, these instances have not yet been handed
-# over to something like PH (e.g., annotated with PH specific
-# parameters, variables, and other objects).
-#
-def _pickle_compiled_scenario(worker,
- scenario,
- output_directory):
- from pyomo.core.base import (Var,
- Constraint,
- Objective,
- Block,
- Param,
- Set,
- BuildAction)
-
- assert output_directory is not None
- assert scenario._instance is not None
- scenario_instance = scenario._instance
-
- output_filename = os.path.join(output_directory,
- scenario.name+".compiled.pickle")
-
- #
- # Temporarily remove PySP objects added by the scenario tree
- # linking process, so we can pickle the original model.
- #
- scenario_instance_cost_expression = \
- scenario._instance_cost_expression
- assert scenario_instance_cost_expression.local_name in \
- ("_PySP_UserCostExpression", "_PySP_CostExpression")
- scenario_instance.del_component(scenario_instance_cost_expression)
-
- scenario_instance_objective = \
- scenario._instance_objective
- if scenario_instance_objective.local_name == "_PySP_CostObjective":
- scenario_instance.del_component(scenario_instance_objective)
- else:
- scenario_instance_objective.expr = scenario_instance_cost_expression.expr
-
- assert hasattr(scenario_instance, "_ScenarioTreeSymbolMap")
- scenario_tree_symbol_map = scenario_instance._ScenarioTreeSymbolMap
- del scenario_instance._ScenarioTreeSymbolMap
-
- if scenario._instance_original_objective_object is not None:
- assert scenario._instance_original_objective_object is not \
- scenario_instance_objective
- scenario._instance_original_objective_object.activate()
-
- # Delete all possible references to "rules"
- # declared in the original model file so we
- # don't have to reference it when we unpickle
- for block in scenario_instance.block_data_objects():
- if isinstance(block, Block):
- block._rule = None
- for var in block.component_objects(Var):
- var._domain_init_rule = None
- for con in block.component_objects(Constraint):
- con.rule = None
- for obj in block.component_objects(Objective):
- obj.rule = None
- for param in block.component_objects(Param):
- param._rule = None
- param._validate = None
- for set_ in block.component_objects(Set):
- set_.initialize = None
- for ba in block.component_objects(BuildAction):
- ba._rule = None
-
- #
- # Pickle the scenario_instance
- #
- with open(output_filename, 'wb') as f:
- # in case it is in a bundle
- owning_block = scenario_instance._parent
- scenario_instance._parent = None
- cPickle.dump(scenario_instance,
- f,
- protocol=cPickle.HIGHEST_PROTOCOL)
- scenario_instance._parent = owning_block
-
- #
- # Re-add PySP generated model components
- #
- scenario_instance.add_component(scenario_instance_cost_expression.local_name,
- scenario_instance_cost_expression)
- if scenario_instance_objective.local_name == "_PySP_CostObjective":
- scenario_instance.add_component(scenario_instance_objective.local_name,
- scenario_instance_objective)
- scenario_instance_objective.expr = scenario_instance_cost_expression
- scenario_instance._ScenarioTreeSymbolMap = scenario_tree_symbol_map
- if scenario._instance_original_objective_object is not None:
- scenario._instance_original_objective_object.deactivate()
-
-def pickle_compiled_scenario_tree(manager,
- output_directory,
- compiled_reference_model_filename):
-
- assert output_directory is not None
- output_directory = os.path.abspath(output_directory)
- if not os.path.exists(output_directory):
- os.makedirs(output_directory)
-
- scenario_tree = manager.scenario_tree
- if scenario_tree.contains_bundles():
- print("WARNING: This application ignores scenario bundles.")
-
- async_action = \
- manager.invoke_function(
- "_pickle_compiled_scenario",
- thisfile,
- function_args=(os.path.join(output_directory),),
- invocation_type=InvocationType.PerScenario,
- async_call=True)
-
- filename = os.path.join(output_directory,
- compiled_reference_model_filename)
- print("Saving reference model for compiled scenario tree "
- "to file: "+str(filename))
- with open(filename, 'w') as f:
- f.write("import os\n")
- f.write("from six.moves import cPickle\n")
- f.write("thisdir = os.path.dirname(os.path.abspath(__file__))\n")
- f.write("def pysp_instance_creation_callback(scenario_name, node_names):\n")
- f.write(" scenario_filename = os.path.join(thisdir, scenario_name+'.compiled.pickle')\n")
- f.write(" with open(scenario_filename, 'rb') as f:\n")
- f.write(" return cPickle.load(f)\n")
-
- async_action.complete()
- for scenario in scenario_tree.scenarios:
- assert os.path.exists(os.path.join(output_directory,
- scenario.name+".compiled.pickle"))
-
-def compile_scenario_tree_register_options(options=None):
- if options is None:
- options = PySPConfigBlock()
- safe_register_common_option(options, "disable_gc")
- safe_register_common_option(options, "profile")
- safe_register_common_option(options, "traceback")
- safe_register_unique_option(
- options,
- "output_directory",
- PySPConfigValue(
- ".",
- domain=_domain_must_be_str,
- description=(
- "The directory in which to store all output files. "
- "Default is '.'."
- ),
- doc=None,
- visibility=0))
- safe_register_unique_option(
- options,
- "compiled_reference_model_filename",
- PySPConfigValue(
- "PySP_CompiledReferenceModel.py",
- domain=_domain_must_be_str,
- description=(
- "The filename to use for the new reference model that uses "
- "the compiled scenarios. This will be prefixed by the "
- "output directory name where compiled scenarios are stored. "
- "Default is 'PySP_CompiledReferenceModel.py'."
- ),
- doc=None,
- visibility=0))
- safe_register_common_option(options, "scenario_tree_manager")
- ScenarioTreeManagerClientSerial.register_options(options)
- ScenarioTreeManagerClientPyro.register_options(options)
-
- return options
-
-#
-# Convert a PySP scenario tree formulation to SMPS input files
-#
-
-def run_compile_scenario_tree(options):
-
- import pyomo.environ
-
- start_time = time.time()
-
- manager_class = None
- if options.scenario_tree_manager == 'serial':
- manager_class = ScenarioTreeManagerClientSerial
- elif options.scenario_tree_manager == 'pyro':
- manager_class = ScenarioTreeManagerClientPyro
-
- options.compile_scenario_instances = True
- with manager_class(options) \
- as manager:
- manager.initialize()
- pickle_compiled_scenario_tree(
- manager,
- options.output_directory,
- options.compiled_reference_model_filename)
-
- print("")
- print("Total execution time=%.2f seconds"
- % (time.time() - start_time))
-
- return 0
-
-#
-# the main driver routine for the pysp_compile_scenario_tree script.
-#
-
-def main(args=None):
- #
- # Top-level command that executes the extensive form writer.
- # This is segregated from run_ef_writer to enable profiling.
- #
-
- #
- # Import plugins
- #
- import pyomo.environ
-
- #
- # Parse command-line options.
- #
- try:
- options = parse_command_line(
- args,
- compile_scenario_tree_register_options,
- prog='compile_scenario_tree',
- description=(
-"""Compresses linear constraints on all scenarios into
-sparse matrix form and then pickles the resulting scenario
-models. This should enable faster startup time with reduced
-memory usage. This script will automatically activate the
-'compile_scenario_instances' scenario tree manager flag."""
- ))
-
- except SystemExit as _exc:
- # the parser throws a system exit if "-h" is specified
- # - catch it to exit gracefully.
- return _exc.code
-
- return launch_command(run_compile_scenario_tree,
- options,
- error_label="compile_scenario_tree: ",
- disable_gc=options.disable_gc,
- profile_count=options.profile,
- traceback=options.traceback)
-
-def compile_scenario_tree_main(args=None):
- return main(args=args)
-
-if __name__ == "__main__":
- sys.exit(main())
diff --git a/examples/pysp/scripting/apps/generate_distributed_NL.py b/examples/pysp/scripting/apps/generate_distributed_NL.py
deleted file mode 100644
index 526e0208455..00000000000
--- a/examples/pysp/scripting/apps/generate_distributed_NL.py
+++ /dev/null
@@ -1,293 +0,0 @@
-# ___________________________________________________________________________
-#
-# Pyomo: Python Optimization Modeling Objects
-# Copyright 2017 National Technology and Engineering Solutions of Sandia, LLC
-# Under the terms of Contract DE-NA0003525 with National Technology and
-# Engineering Solutions of Sandia, LLC, the U.S. Government retains certain
-# rights in this software.
-# This software is distributed under the 3-clause BSD License.
-# ___________________________________________________________________________
-
-import os
-import sys
-import time
-import argparse
-
-from pyomo.common import pyomo_command
-from pyomo.pysp.util.config import (PySPConfigValue,
- PySPConfigBlock,
- safe_register_common_option,
- safe_register_unique_option,
- _domain_must_be_str)
-from pyomo.pysp.util.misc import (parse_command_line,
- launch_command)
-from pyomo.pysp.scenariotree.manager import (ScenarioTreeManagerClientSerial,
- ScenarioTreeManagerClientPyro,
- InvocationType)
-from pyomo.core import Suffix, Block
-
-# generate an absolute path to this file
-thisfile = os.path.abspath(__file__)
-
-def _write_bundle_NL(worker,
- bundle,
- output_directory,
- linking_suffix_name,
- objective_suffix_name,
- symbolic_solver_labels):
-
- assert os.path.exists(output_directory)
-
- bundle_instance = worker._bundle_binding_instance_map[bundle.name]
- assert not hasattr(bundle_instance, ".tmpblock")
- tmpblock = Block(concrete=True)
- bundle_instance.add_component(".tmpblock", tmpblock)
-
- #
- # linking variable suffix
- #
- tmpblock.add_component(linking_suffix_name,
- Suffix(direction=Suffix.EXPORT))
- linking_suffix = getattr(tmpblock, linking_suffix_name)
-
- # Loop over all nodes for the bundle except the leaf nodes,
- # which have no blended variables
- scenario_tree = worker.scenario_tree
- for stage in bundle.scenario_tree.stages[:-1]:
- for _node in stage.nodes:
- # get the node of off the real scenario tree
- # as this has the linked variable information
- node = scenario_tree.get_node(_node.name)
- master_variable = bundle_instance.find_component(
- "MASTER_BLEND_VAR_"+str(node.name))
- for variable_id in node._standard_variable_ids:
- linking_suffix[master_variable[variable_id]] = variable_id
-
- #
- # objective weight suffix
- #
- tmpblock.add_component(objective_suffix_name,
- Suffix(direction=Suffix.EXPORT))
-
- getattr(tmpblock, objective_suffix_name)[bundle_instance] = \
- bundle._probability
-
- output_filename = os.path.join(output_directory, str(bundle.name)+".nl")
- bundle_instance.write(
- output_filename,
- io_options={'symbolic_solver_labels': symbolic_solver_labels})
-
- bundle_instance.del_component(tmpblock)
-
-def _write_scenario_NL(worker,
- scenario,
- output_directory,
- linking_suffix_name,
- objective_suffix_name,
- symbolic_solver_labels):
-
- assert os.path.exists(output_directory)
- instance = scenario._instance
- assert not hasattr(instance, ".tmpblock")
- tmpblock = Block(concrete=True)
- instance.add_component(".tmpblock", tmpblock)
-
- #
- # linking variable suffix
- #
- bySymbol = instance._ScenarioTreeSymbolMap.bySymbol
- tmpblock.add_component(linking_suffix_name,
- Suffix(direction=Suffix.EXPORT))
- linking_suffix = getattr(tmpblock, linking_suffix_name)
-
- # Loop over all nodes for the scenario except the leaf node,
- # which has no blended variables
- for node in scenario._node_list[:-1]:
- for variable_id in node._standard_variable_ids:
- linking_suffix[bySymbol[variable_id]] = variable_id
-
- #
- # objective weight suffix
- #
- tmpblock.add_component(objective_suffix_name,
- Suffix(direction=Suffix.EXPORT))
- getattr(tmpblock, objective_suffix_name)[instance] = \
- scenario._probability
-
- output_filename = os.path.join(output_directory,
- str(scenario.name)+".nl")
- instance.write(
- output_filename,
- io_options={'symbolic_solver_labels': symbolic_solver_labels})
-
- instance.del_component(tmpblock)
-
-def write_distributed_NL_files(manager,
- output_directory,
- linking_suffix_name,
- objective_suffix_name,
- symbolic_solver_labels=False):
-
- if not os.path.exists(output_directory):
- os.makedirs(output_directory)
-
- scenario_tree = manager.scenario_tree
- #
- # Write list of subproblems to file
- #
- with open(os.path.join(output_directory,
- "PySP_Subproblems.txt"),'w') as f:
-
- if scenario_tree.contains_bundles():
- for bundle in scenario_tree.bundles:
- f.write(str(bundle.name)+".nl\n")
- else:
- for scenario in scenario_tree.scenarios:
- f.write(str(scenario.name)+".nl\n")
-
- if scenario_tree.contains_bundles():
- print("Executing bundle NL-file conversions")
- manager.invoke_function(
- "_write_bundle_NL",
- thisfile,
- invocation_type=InvocationType.PerBundle,
- function_args=(output_directory,
- linking_suffix_name,
- objective_suffix_name,
- symbolic_solver_labels))
-
- else:
- print("Executing scenario NL-file conversions")
- manager.invoke_function(
- "_write_scenario_NL",
- thisfile,
- invocation_type=InvocationType.PerScenario,
- function_args=(output_directory,
- linking_suffix_name,
- objective_suffix_name,
- symbolic_solver_labels))
-
-def run_generate_distributed_NL_register_options(options=None):
- if options is None:
- options = PySPConfigBlock()
- safe_register_common_option(options, "disable_gc")
- safe_register_common_option(options, "profile")
- safe_register_common_option(options, "traceback")
- safe_register_common_option(options, "scenario_tree_manager")
- safe_register_common_option(options, "symbolic_solver_labels")
- safe_register_unique_option(
- options,
- "output_directory",
- PySPConfigValue(
- ".",
- domain=_domain_must_be_str,
- description=(
- "The directory in which to store all output files. "
- "Default is '.'."
- ),
- doc=None,
- visibility=0))
- safe_register_unique_option(
- options,
- "linking_suffix_name",
- PySPConfigValue(
- "variable_id",
- domain=_domain_must_be_str,
- description=(
- "The suffix name used to identify common variables "
- "across NL files. Default is 'ipopt_blend_id'."
- ),
- doc=None,
- visibility=0))
- safe_register_unique_option(
- options,
- "objective_suffix_name",
- PySPConfigValue(
- "objective_weight",
- domain=_domain_must_be_str,
- description=(
- "The suffix name used to identify the relative "
- "objective weight for each NL-file subproblem."
- "Default is 'ipopt_blend_weight'."
- ),
- doc=None,
- visibility=0))
- ScenarioTreeManagerClientSerial.register_options(options)
- ScenarioTreeManagerClientPyro.register_options(options)
-
- return options
-#
-# Convert a PySP scenario tree formulation to SMPS input files
-#
-
-def run_generate_distributed_NL(options):
- import pyomo.environ
-
- start_time = time.time()
-
- manager_class = None
- if options.scenario_tree_manager == 'serial':
- manager_class = ScenarioTreeManagerClientSerial
- elif options.scenario_tree_manager == 'pyro':
- manager_class = ScenarioTreeManagerClientPyro
-
- with manager_class(options) \
- as manager:
- manager.initialize()
- write_distributed_NL_files(
- manager,
- options.output_directory,
- options.linking_suffix_name,
- options.objective_suffix_name,
- symbolic_solver_labels=options.symbolic_solver_labels)
-
- print("")
- print("Total execution time=%.2f seconds"
- % (time.time() - start_time))
-
- return 0
-
-#
-# the main driver routine for the generate_distributed_NL script.
-#
-
-def main(args=None):
- #
- # Top-level command that executes everything
- #
-
- #
- # Import plugins
- #
- import pyomo.environ
-
- #
- # Parse command-line options.
- #
- try:
- options = parse_command_line(
- args,
- run_generate_distributed_NL_register_options,
- prog='generate_distributed_NL',
- description=(
-"""Converts a scenario tree into multiple NL files with linking
-information specified with suffixes."""
- ))
-
- except SystemExit as _exc:
- # the parser throws a system exit if "-h" is specified
- # - catch it to exit gracefully.
- return _exc.code
-
- return launch_command(run_generate_distributed_NL,
- options,
- error_label="generate_distributed_NL: ",
- disable_gc=options.disable_gc,
- profile_count=options.profile,
- traceback=options.traceback)
-
-def generate_distributed_NL_main(args=None):
- return main(args=args)
-
-if __name__ == "__main__":
- sys.exit(main())
diff --git a/examples/pysp/scripting/apps/scenario_tree_image.py b/examples/pysp/scripting/apps/scenario_tree_image.py
deleted file mode 100644
index e393260e335..00000000000
--- a/examples/pysp/scripting/apps/scenario_tree_image.py
+++ /dev/null
@@ -1,123 +0,0 @@
-# ___________________________________________________________________________
-#
-# Pyomo: Python Optimization Modeling Objects
-# Copyright 2017 National Technology and Engineering Solutions of Sandia, LLC
-# Under the terms of Contract DE-NA0003525 with National Technology and
-# Engineering Solutions of Sandia, LLC, the U.S. Government retains certain
-# rights in this software.
-# This software is distributed under the 3-clause BSD License.
-# ___________________________________________________________________________
-
-import os
-import sys
-
-from pyomo.common.tempfiles import TempfileManager
-from pyomo.pysp.util.config import (PySPConfigValue,
- PySPConfigBlock,
- safe_register_common_option,
- safe_register_unique_option,
- _domain_must_be_str)
-from pyomo.pysp.util.misc import (parse_command_line,
- launch_command)
-from pyomo.pysp.scenariotree.instance_factory import \
- ScenarioTreeInstanceFactory
-
-def generate_scenario_tree_image(options):
- with ScenarioTreeInstanceFactory(
- options.model_location,
- options.scenario_tree_location) as factory:
-
- scenario_tree = factory.generate_scenario_tree(
- downsample_fraction=options.scenario_tree_downsample_fraction,
- bundles=options.scenario_bundle_specification,
- random_bundles=options.create_random_bundles,
- random_seed=options.scenario_tree_random_seed,
- verbose=options.verbose)
-
- with TempfileManager.push():
- tmpdotfile = TempfileManager.create_tempfile(suffix=".dot")
- scenario_tree.save_to_dot(tmpdotfile)
- os.system('dot -Tpdf -o %s %s' % (options.output_file,
- tmpdotfile))
- print("Output Saved To: %s" % (options.output_file))
-
-def generate_scenario_tree_image_register_options(options=None):
- if options is None:
- options = PySPConfigBlock()
- safe_register_unique_option(
- options,
- "output_file",
- PySPConfigValue(
- "ScenarioStructure.pdf",
- domain=_domain_must_be_str,
- description=(
- "The name of the file in which to store the scenario "
- "tree image. Default is ScenarioStructure.pdf."
- ),
- doc=None,
- visibility=0))
- safe_register_common_option(options,
- "verbose")
- safe_register_common_option(options,
- "model_location")
- safe_register_common_option(options,
- "scenario_tree_location")
- safe_register_common_option(options,
- "scenario_tree_random_seed")
- safe_register_common_option(options,
- "scenario_tree_downsample_fraction")
- safe_register_common_option(options,
- "scenario_bundle_specification")
- safe_register_common_option(options,
- "create_random_bundles")
- safe_register_common_option(options,
- "disable_gc")
- safe_register_common_option(options,
- "profile")
- safe_register_common_option(options,
- "traceback")
- return options
-
-#
-# the main driver routine for the scenario_tree_image script.
-#
-
-def main(args=None):
- #
- # Top-level command that executes everything
- #
-
- #
- # Import plugins
- #
- import pyomo.environ
-
- #
- # Parse command-line options.
- #
- try:
- options = parse_command_line(
- args,
- generate_scenario_tree_image_register_options,
- prog='scenario_tree_image',
- description=(
-"""Generate a pdf image of the scenario tree."""
- ))
-
- except SystemExit as _exc:
- # the parser throws a system exit if "-h" is specified
- # - catch it to exit gracefully.
- return _exc.code
-
- return launch_command(generate_scenario_tree_image,
- options,
- error_label="scenario_tree_image: ",
- disable_gc=options.disable_gc,
- profile_count=options.profile,
- traceback=options.traceback)
-
-def scenario_tree_image_main(args=None):
- return main(args=args)
-
-if __name__ == "__main__":
- sys.exit(main())
diff --git a/examples/pysp/scripting/benders_scripting.py b/examples/pysp/scripting/benders_scripting.py
deleted file mode 100644
index 4cdbd9efebe..00000000000
--- a/examples/pysp/scripting/benders_scripting.py
+++ /dev/null
@@ -1,195 +0,0 @@
-# ___________________________________________________________________________
-#
-# Pyomo: Python Optimization Modeling Objects
-# Copyright 2017 National Technology and Engineering Solutions of Sandia, LLC
-# Under the terms of Contract DE-NA0003525 with National Technology and
-# Engineering Solutions of Sandia, LLC, the U.S. Government retains certain
-# rights in this software.
-# This software is distributed under the 3-clause BSD License.
-# ___________________________________________________________________________
-
-# This PySP example is setup to run as an independent python script
-# that does the following:
-# (1) Registers options for the ScenarioTreeManagerSolver and
-# BendersAlgorithm classes
-# (2) Creates a ScenarioTreeManagerSolver object (serial- or pyro-based)
-# for the farmer problem
-# (3) Creates a BendersAlgorithm object to solve the farmer problem
-# (4) Creates another BendersAlgorithm object to solve the
-# farmer problem, but uses some advanced features to interact
-# with the Benders solve process.
-
-import os
-import sys
-import random
-
-from pyomo.environ import *
-from pyomo.pysp.scenariotree.manager import \
- ScenarioTreeManagerFactory
-from pyomo.pysp.solvers.benders import BendersAlgorithm
-
-# *** How to run this example using Pyro ***:
-#
-# To run this example using Pyro, launch the following
-# command in another terminal:
-# $ mpirun -np 1 pyomo_ns -r -n localhost : \
-# -np 1 dispatch_srvr -n localhost : \
-# -np 3 scenariotreeserver --pyro-host=localhost --traceback
-#
-# In this shell launch:
-# $ python benders_scripting.py
-# with sp_options.scenario_tree_manager = "pyro"
-
-sp_options = ScenarioTreeManagerFactory.register_options()
-
-# To see detailed information about options
-#for name in sp_options.keys():
-# print(sp_options.about(name))
-
-# To see a more compact display of options
-#sp_options.display()
-
-#
-# General options for the scenario tree manager
-#
-sp_options.scenario_tree_manager = "serial"
-# using absolute paths so we can automate testing
-# of this example
-examplesdir = os.path.dirname(
- os.path.dirname(os.path.abspath(__file__)))
-sp_options.model_location = \
- os.path.join(examplesdir, "farmerWintegers", "models")
-sp_options.scenario_tree_location = \
- os.path.join(examplesdir, "farmerWintegers", "scenariodata")
-if sp_options.scenario_tree_manager == "pyro":
- sp_options.pyro_host = 'localhost'
- # we allow this option to be overridden from the
- # command line for Pyomo testing purposes
- sp_options.pyro_port = \
- None if (len(sys.argv) == 1) else int(sys.argv[1])
- # set this option to the number of scenario tree
- # servers currently running
- # Note: it can be fewer than the number of scenarios
- sp_options.pyro_required_scenariotreeservers = 3
- # Shutdown all pyro-related components when the scenario
- # tree manager closes. Note that with Pyro4, the nameserver
- # must be shutdown manually.
- sp_options.pyro_shutdown = False
-
-# using the 'with' block will automatically call
-# manager.close() and gracefully shutdown the
-# scenario tree servers
-with ScenarioTreeManagerFactory(sp_options) as sp:
- sp.initialize()
-
- #
- # General options for the benders algorithm
- #
-
- benders_options = BendersAlgorithm.register_options()
- benders_options.subproblem_solver = "cplex"
- benders_options.verbose = True
- # include one of the scenarios in the benders master problem
- benders_options.master_include_scenarios = \
- [sp.scenario_tree.scenarios[0].name]
- # aggregate all scenarios into a single average cut
- benders_options.multicut_level = 1
-
- # Using the 'with' block will automatically restore the
- # subproblems to their state before the benders initialization
- # (e.g., removing benders fixing constraints and reactivating
- # the first-stage cost in each scenario's objective). Note that
- # BendersAlgorithm sets up the scenarios for generating
- # cuts immediately upon initialization.
- with BendersAlgorithm(sp, benders_options) as benders:
- # this must be called before solve()
- benders.initialize_subproblems()
- # this must be called before solve()
- benders.build_master_problem()
- benders.solve()
- assert len(benders.cut_pool) > 0
- last_cut = benders.cut_pool[-1]
-
- print("\nRestarting benders algorithm")
- # Now setup and solve again, but use some more advanced
- # features
- with BendersAlgorithm(sp, benders_options) as benders:
-
- # this must be called before solve()
- benders.initialize_subproblems()
- # build the master problem, add the last cut
- # from the previous solve
- benders.build_master_problem()
- benders.add_cut(last_cut)
-
- # override the default percent_gap set
- # on the options object
- objective = benders.solve(percent_gap=100.0)
- assert objective == benders.incumbent_objective
- print("")
- print("Incumbent Objective: %s"
- % (benders.incumbent_objective))
- print("Optimality Gap: %s %%"
- % (benders.optimality_gap*100))
- print("Iterations: %s"
- % (benders.iterations))
- print("Resuming Benders...")
- print("")
-
- # override the default max_iterations set
- # on the options object
- objective = benders.solve(max_iterations=3)
- assert objective == benders.incumbent_objective
- print("")
- print("Incumbent Objective: %s"
- % (benders.incumbent_objective))
- print("Optimality Gap: %s %%"
- % (benders.optimality_gap*100))
- print("Iterations: %s"
- % (benders.iterations))
- print("Resuming Benders...")
- print("")
-
- # use the default percent_gap / max_iterations
- # set on the options object
- objective = benders.solve()
- assert objective == benders.incumbent_objective
- print("")
- print("Incumbent Objective: %s"
- % (benders.incumbent_objective))
- print("Optimality Gap: %s %%"
- % (benders.optimality_gap*100))
- print("Iterations: %s"
- % (benders.iterations))
- print("")
-
- print("Building a new master (without including any "
- "scenarios) and adding a random set of cuts "
- "before solving.")
- print("Current size of cut pool: %s"
- % (len(benders.cut_pool)))
- # save the cut pool, rebuild the master problem
- # and add a random sample of the cuts to initialize
- # the algorithm
- cut_pool = benders.cut_pool
- assert len(cut_pool) >= 5
- # override the default master_include_scenarios
- # set on the options object
- benders.build_master_problem(include_scenarios=None)
- assert len(benders.cut_pool) == 0
-
- random.shuffle(cut_pool)
- while len(benders.cut_pool) < 5:
- benders.add_cut(cut_pool.pop())
- benders.solve()
- print("")
- print("Incumbent Objective: %s"
- % (benders.incumbent_objective))
- print("Optimality Gap: %s %%"
- % (benders.optimality_gap*100))
- print("Iterations: %s"
- % (benders.iterations))
- print("Current size of cut pool: %s"
- % (len(benders.cut_pool)))
- print("")
-
diff --git a/examples/pysp/scripting/ef_duals.py b/examples/pysp/scripting/ef_duals.py
deleted file mode 100644
index 96629cb2ec3..00000000000
--- a/examples/pysp/scripting/ef_duals.py
+++ /dev/null
@@ -1,72 +0,0 @@
-# ___________________________________________________________________________
-#
-# Pyomo: Python Optimization Modeling Objects
-# Copyright 2017 National Technology and Engineering Solutions of Sandia, LLC
-# Under the terms of Contract DE-NA0003525 with National Technology and
-# Engineering Solutions of Sandia, LLC, the U.S. Government retains certain
-# rights in this software.
-# This software is distributed under the 3-clause BSD License.
-# ___________________________________________________________________________
-
-# This PySP example is setup to run as an independent python script
-# that does the following:
-# (1) Constructs scenario instances for the farmer problem using the
-# serial scenario tree manager (non-distributed).
-# (2) Constructs the extensive form instance over all scenarios in the
-# scenario tree.
-# (3) Solves the extensive form instance and reports the dual values
-# associated with the non-anticipativity constraints on the
-# first-stage variables.
-
-import os
-import sys
-from pyomo.environ import *
-from pyomo.pysp.scenariotree.manager import \
- ScenarioTreeManagerClientSerial
-from pyomo.pysp.ef import create_ef_instance
-from pyomo.opt import SolverFactory
-
-thisdir = os.path.dirname(os.path.abspath(__file__))
-farmer_example_dir = os.path.join(os.path.dirname(thisdir), 'farmer')
-
-options = ScenarioTreeManagerClientSerial.register_options()
-
-# To see detailed information about options
-#for name in options.keys():
-# print(options.about(name))
-
-# To see a more compact display of options
-#options.display()
-
-options.model_location = \
- os.path.join(farmer_example_dir, 'models')
-options.scenario_tree_location = \
- os.path.join(farmer_example_dir, 'scenariodata')
-
-# using the 'with' block will automatically call
-# manager.close() and gracefully shutdown
-with ScenarioTreeManagerClientSerial(options) as manager:
- manager.initialize()
-
- ef_instance = create_ef_instance(manager.scenario_tree,
- verbose_output=options.verbose)
-
- ef_instance.dual = Suffix(direction=Suffix.IMPORT)
-
- with SolverFactory('cplex') as opt:
-
- opt.solve(ef_instance)
-
- #
- # Print duals of non-anticipaticity constraints
- #
- master_constraint_map = ef_instance.MASTER_CONSTRAINT_MAP
- print("%50s %20s" % ("Variable", "Dual"))
- for scenario in manager.scenario_tree.scenarios:
- instance = scenario._instance
- for i in instance.DevotedAcreage:
- print("%50s %20s" % (instance.DevotedAcreage[i],
- ef_instance.dual[master_constraint_map[
- instance.DevotedAcreage[i]]]))
-
- print("")
diff --git a/examples/pysp/scripting/embedded.py b/examples/pysp/scripting/embedded.py
deleted file mode 100644
index d376b8cd5b6..00000000000
--- a/examples/pysp/scripting/embedded.py
+++ /dev/null
@@ -1,120 +0,0 @@
-import time
-
-from pyomo.environ import *
-from pyomo.opt import TerminationCondition
-from pyomo.pysp.annotations import (StochasticDataAnnotation,
- StageCostAnnotation,
- VariableStageAnnotation)
-from pyomo.pysp.embeddedsp import (EmbeddedSP,
- UniformDistribution)
-from pyomo.pysp.solvers import SPSolverFactory
-
-# make this example deterministic
-import random
-random.seed(2352352342)
-
-# This examples does the following:
-# (1) Defines an EmbeddedSP by annotating a reference
-# model with information about variables stages
-# and stochastic parameters.
-# (2) Obtains a solution using the deterministic
-# approximation, where stochastic parameters
-# are set to the expected value of their
-# distribution.
-# (3) Generates an "external" SP by sampling from
-# the EmbeddedSP and uses DDSIP solver interface.
-# The DDSIP solver requires explicit annotations
-# that describe the locations of the stochastic data.
-# These annotations are automatically added when
-# the SP is created from an EmbeddedSP object.
-# (4) The EmbeddedSP object is then re-sampled to
-# creating a test set that is used to evaluate
-# the solutions from steps (2) and (3).
-
-d_dist = UniformDistribution(0, 100)
-train_N = 150
-test_N = 150
-cplex = SolverFactory("cplex")
-saa_solver = SPSolverFactory("ddsip") # "ef"
-
-#
-# Define the reference model
-#
-model = ConcreteModel()
-model.x = Var(domain=Integers)
-model.y = Var(domain=Integers)
-model.t = Var(domain=Integers)
-model.c = 1.0
-model.b = 1.5
-model.h = 0.1
-model.d = Param(mutable=True)
-model.cost = Expression([1,2], initialize=0.0)
-model.cost[1].expr = 0
-model.cost[2].expr = model.t
-model.obj = Objective(expr= sum_product(model.cost))
-model.cons = ConstraintList()
-model.cons.add(model.t >= (model.c-model.b)*model.x + model.b*model.d)
-model.cons.add(model.t >= (model.c+model.h)*model.x - model.h*model.d)
-model.cons.add(model.y == -model.x)
-
-#
-# Embed an SP in the model using annotations
-#
-model.varstage = VariableStageAnnotation()
-model.stagecost = StageCostAnnotation()
-model.stochdata = StochasticDataAnnotation()
-model.varstage.declare(model.x, 1)
-model.stagecost.declare(model.cost[1], 1)
-model.stagecost.declare(model.cost[2], 2)
-model.stochdata.declare(model.d,
- distribution=d_dist)
-sp = EmbeddedSP(model)
-
-#
-# Solve the deterministic approximation
-#
-sp.set_expected_value()
-status = cplex.solve(sp.reference_model)
-assert status.solver.termination_condition == \
- TerminationCondition.optimal
-ev_solution = sp.reference_model.x()
-
-#
-# Setup an explicit training sample and solve
-#
-train_sp = sp.generate_sample_sp(train_N)
-results = saa_solver.solve(train_sp,
- output_solver_log=True)
-print(results)
-saa_solution = list(results.xhat['root'].values())[0]
-
-print("Deterministic Solution: %s" % (ev_solution))
-print("SAA Solution: %s" % (saa_solution))
-
-#
-# Evaluate the solutions on a test sample
-#
-ev_objectives = []
-saa_objectives = []
-for i in range(test_N):
- # samples into the reference model by default
- sp.sample()
-
- # evaluate the solution from the deterministic approximiation
- sp.reference_model.x.fix(ev_solution)
- status = cplex.solve(sp.reference_model)
- assert status.solver.termination_condition == \
- TerminationCondition.optimal
- ev_objectives.append(sp.reference_model.obj())
-
- # evaluate the solution from the SAA
- sp.reference_model.x.fix(saa_solution)
- status = cplex.solve(sp.reference_model)
- assert status.solver.termination_condition == \
- TerminationCondition.optimal
- saa_objectives.append(sp.reference_model.obj())
-
-print("Average Test Objective for Deterministic Solution: %s"
- % (sum(ev_objectives)/float(test_N)))
-print("Average Test Objective for SAA Solution: %s"
- % (sum(saa_objectives)/float(test_N)))
diff --git a/examples/pysp/scripting/solve_distributed.py b/examples/pysp/scripting/solve_distributed.py
deleted file mode 100644
index 117adaa7089..00000000000
--- a/examples/pysp/scripting/solve_distributed.py
+++ /dev/null
@@ -1,168 +0,0 @@
-# ___________________________________________________________________________
-#
-# Pyomo: Python Optimization Modeling Objects
-# Copyright 2017 National Technology and Engineering Solutions of Sandia, LLC
-# Under the terms of Contract DE-NA0003525 with National Technology and
-# Engineering Solutions of Sandia, LLC, the U.S. Government retains certain
-# rights in this software.
-# This software is distributed under the 3-clause BSD License.
-# ___________________________________________________________________________
-
-# This PySP example is setup to run as an independent python script
-# that does the following:
-# (1) Constructs scenario instances over a distributed
-# Pyro-based scenario tree. A distributed scenario tree consists
-# of the following objects:
-# - A scenario tree manager (launched from this file)
-# - One or more scenario tree servers (launched using the
-# 'scenariotreeserver' executable installed with PySP)
-# - One or more scenario tree workers managed by the
-# scenario tree servers. These will be setup by the scenario
-# tree manager.
-# - A dispatch server (launched using the 'dispatch_srvr'
-# executable installed with PySP)
-# (2) Executes a function on each scenario of the distributed tree.
-# These function invocations must be transmitted via Pyro to the
-# scenario tree workers where the Pyomo scenario instances have
-# been constructed.
-
-# *** How to run this example ***:
-#
-# In a separate shell launch
-# $ mpirun -np 1 pyomo_ns -n localhost : \
-# -np 1 dispatch_srvr -n localhost : \
-# -np 3 scenariotreeserver --pyro-host=localhost
-#
-# In this shell launch:
-# $ python solve_distributed.py
-
-import os
-import sys
-from pyomo.environ import *
-from pyomo.pysp.scenariotree.manager import \
- (ScenarioTreeManagerClientPyro,
- InvocationType)
-
-# declare the number of scenarios over which to construct a simple
-# two-stage scenario tree
-num_scenarios = 3
-
-#
-# Define the scenario tree structure as well as stage
-# costs and variables
-#
-def pysp_scenario_tree_model_callback():
- from pyomo.pysp.scenariotree.tree_structure_model import \
- CreateConcreteTwoStageScenarioTreeModel
-
- st_model = CreateConcreteTwoStageScenarioTreeModel(num_scenarios)
-
- first_stage = st_model.Stages.first()
- second_stage = st_model.Stages.last()
-
- # First Stage
- st_model.StageCost[first_stage] = 'FirstStageCost'
- st_model.StageVariables[first_stage].add('x')
-
- # Second Stage
- st_model.StageCost[second_stage] = 'SecondStageCost'
- st_model.StageVariables[second_stage].add('y')
-
- return st_model
-
-#
-# Define a PySP callback function that returns a constructed scenario
-# instance for each scenario. Stochastic scenario data is created
-# on the fly using the random module, so this script will likely
-# produce different results with each execution.
-#
-#
-import random
-random.seed(None)
-def pysp_instance_creation_callback(scenario_name, node_names):
-
- model = ConcreteModel()
- model.x = Var(bounds=(-10,10))
- model.y = Var()
- model.FirstStageCost = Expression(expr=0.0)
- model.SecondStageCost = Expression(expr=model.y + 1)
- model.obj = Objective(expr=model.FirstStageCost + model.SecondStageCost)
- model.con1 = Constraint(expr=model.x >= model.y)
- model.con2 = Constraint(expr=model.y >= random.randint(-10,10))
-
- return model
-
-#
-# Define a function to execute on scenarios that solves the pyomo
-# instance and returns the objective function value. Function
-# invocations require that the function to be invoked always accepts
-# the process-local scenario tree worker object as the first argument.
-# InvocationType.PerScenario requires a second argument representing
-# the scenario object to be processed. Refer to the help doc-string
-# on InvocationType for more information.
-#
-def solve_model(worker, scenario):
- from pyomo.opt import SolverFactory
-
- with SolverFactory("glpk") as opt:
- opt.solve(scenario._instance)
- return value(scenario._instance.obj)
-
-if __name__ == "__main__":
-
- # generate an absolute path to this file
- thisfile = os.path.abspath(__file__)
-
- # generate a list of options we can configure
- options = ScenarioTreeManagerClientPyro.register_options()
-
- # To see detailed information about options
- #for name in options.keys():
- # print(options.about(name))
-
- # To see a more compact display of options
- #options.display()
-
- #
- # Set a few options
- #
-
- # the pysp_instance_creation_callback function
- # will be detected and used
- options.model_location = thisfile
- # setting this option to None implies there
- # is a pysp_scenario_tree_model_callback function
- # defined in the model file
- options.scenario_tree_location = None
- # use verbose output
- options.verbose = True
- #
- # Pyro-specific options
- #
- options.pyro_host = 'localhost'
- # we allow this option to be overridden from the
- # command line for Pyomo testing purposes
- options.pyro_port = \
- None if (len(sys.argv) == 1) else int(sys.argv[1])
- # set this option to the number of scenario tree
- # servers currently running
- # Note: it can be fewer than the number of scenarios
- options.pyro_required_scenariotreeservers = 3
- # Shutdown all pyro-related components when the scenario
- # tree manager closes. Note that with Pyro4, the nameserver
- # must be shutdown manually.
- options.pyro_shutdown = True
-
- # using the 'with' block will automatically call
- # manager.close() and gracefully shutdown the
- # scenario tree servers
- with ScenarioTreeManagerClientPyro(options) as manager:
- manager.initialize()
-
- results = manager.invoke_function(
- "solve_model", # function to execute
- thisfile, # file (or module) containing the function
- invocation_type=InvocationType.PerScenario)
-
- for scenario_name in sorted(results):
- print(scenario_name+": "+str(results[scenario_name]))
diff --git a/examples/pysp/simple_quadratic/ReferenceModel.py b/examples/pysp/simple_quadratic/ReferenceModel.py
deleted file mode 100644
index 3e2790dfdb3..00000000000
--- a/examples/pysp/simple_quadratic/ReferenceModel.py
+++ /dev/null
@@ -1,70 +0,0 @@
-# ___________________________________________________________________________
-#
-# Pyomo: Python Optimization Modeling Objects
-# Copyright 2017 National Technology and Engineering Solutions of Sandia, LLC
-# Under the terms of Contract DE-NA0003525 with National Technology and
-# Engineering Solutions of Sandia, LLC, the U.S. Government retains certain
-# rights in this software.
-# This software is distributed under the 3-clause BSD License.
-# ___________________________________________________________________________
-
-#
-# This PySP example defines a simple model with a stochastic
-# quadratic objective. It defines auxiliary variables on the
-# scenario tree using the StageDerivedVariables declaration.
-#
-
-from pyomo.environ import *
-
-scenario_data = {}
-scenario_data['Scenario1'] = (2.1, 23.5)
-scenario_data['Scenario2'] = (0.2, 4.2)
-scenario_data['Scenario3'] = (0.6, 0.1)
-scenario_data['Scenario4'] = (1.1, -4.4)
-
-def pysp_scenario_tree_model_callback():
- from pyomo.pysp.scenariotree.tree_structure_model \
- import CreateConcreteTwoStageScenarioTreeModel
-
- st_model = CreateConcreteTwoStageScenarioTreeModel(len(scenario_data))
-
- first_stage = st_model.Stages.first()
- second_stage = st_model.Stages.last()
-
- # First Stage
- st_model.StageCost[first_stage] = 'FirstStageCost'
- st_model.StageVariables[first_stage].add('x')
- st_model.StageDerivedVariables[first_stage].add('xd')
- st_model.StageDerivedVariables[first_stage].add('xde')
-
- # Second Stage
- st_model.StageCost[second_stage] = 'SecondStageCost'
- st_model.StageVariables[second_stage].add('y')
- st_model.StageDerivedVariables[second_stage].add('yd')
- st_model.StageDerivedVariables[second_stage].add('yde')
-
- return st_model
-
-# Creates an instance for each scenario
-def pysp_instance_creation_callback(scenario_name, node_names):
- a,b = scenario_data[scenario_name]
-
- model = ConcreteModel()
- model.x = Var()
- model.y = Var()
- model.FirstStageCost = Expression(expr=model.x**2)
- model.SecondStageCost = Expression(expr=a*(model.y-b)**2)
- model.obj = Objective(expr= model.FirstStageCost + \
- model.SecondStageCost)
-
- model.xd = Var()
- model.xde = Expression(expr=model.x)
- model.yd = Var()
- model.yde = Expression(expr=model.y - b)
-
- model.c = ConstraintList()
- model.c.add(model.y == model.x)
- model.c.add(model.xd == model.x)
- model.c.add(model.yd == model.y - b)
-
- return model
diff --git a/examples/pysp/sizes/CCmodels/ReferenceModel.py b/examples/pysp/sizes/CCmodels/ReferenceModel.py
deleted file mode 100644
index 348c7def3de..00000000000
--- a/examples/pysp/sizes/CCmodels/ReferenceModel.py
+++ /dev/null
@@ -1,202 +0,0 @@
-# ___________________________________________________________________________
-#
-# Pyomo: Python Optimization Modeling Objects
-# Copyright 2017 National Technology and Engineering Solutions of Sandia, LLC
-# Under the terms of Contract DE-NA0003525 with National Technology and
-# Engineering Solutions of Sandia, LLC, the U.S. Government retains certain
-# rights in this software.
-# This software is distributed under the 3-clause BSD License.
-# ___________________________________________________________________________
-#
-# revised to have a chance constraint for demand as needed by runef with the CC option
-#
-# This is the two-period version of the SIZES optimization model
-# derived from the three stage model in:
-#A. L{\o}kketangen and D. L. Woodruff,
-#"Progressive Hedging and Tabu Search Applied to Mixed Integer (0,1) Multistage Stochastic Programming",
-#Journal of Heuristics, 1996, Vol 2, Pages 111-128.
-
-from pyomo.core import *
-
-#
-# Model
-#
-
-model = AbstractModel()
-
-#
-# Parameters
-#
-
-# the number of product sizes.
-model.NumSizes = Param(within=NonNegativeIntegers)
-
-# the set of sizes, labeled 1 through NumSizes.
-def product_sizes_rule(model):
- return set(range(1, model.NumSizes()+1))
-model.ProductSizes = Set(initialize=product_sizes_rule)
-
-# the deterministic demands for product at each size.
-model.DemandsFirstStage = Param(model.ProductSizes, within=NonNegativeIntegers)
-model.DemandsSecondStage = Param(model.ProductSizes, within=NonNegativeIntegers)
-
-# the unit production cost at each size.
-model.UnitProductionCosts = Param(model.ProductSizes, within=NonNegativeReals)
-
-# the setup cost for producing any units of size i.
-model.SetupCosts = Param(model.ProductSizes, within=NonNegativeReals)
-
-# the unit penalty cost of meeting demand for size j with larger size i.
-model.UnitPenaltyCosts = Param(model.ProductSizes, within=NonNegativeReals)
-
-# the cost to reduce a unit i to a lower unit j.
-model.UnitReductionCost = Param(within=NonNegativeReals)
-
-# a cap on the overall production within any time stage.
-model.Capacity = Param(within=PositiveReals)
-
-# a derived set to constrain the NumUnitsCut variable domain.
-# TBD: the (i,j) with i >= j set should be a generic utility.
-def num_units_cut_domain_rule(model):
- ans = set()
- for i in range(1,model.NumSizes()+1):
- for j in range(1, i+1):
- ans.add((i,j))
- return ans
-
-model.NumUnitsCutDomain = Set(initialize=num_units_cut_domain_rule, dimen=2)
-
-#
-# Variables
-#
-
-# are any products at size i produced?
-model.ProduceSizeFirstStage = Var(model.ProductSizes, domain=Boolean)
-model.ProduceSizeSecondStage = Var(model.ProductSizes, domain=Boolean)
-
-# NOTE: The following (num-produced and num-cut) variables are implicitly integer
-# under the normal cost objective, but with the PH cost objective, this isn't
-# the case.
-
-# the number of units at each size produced.
-model.NumProducedFirstStage = Var(model.ProductSizes, domain=NonNegativeIntegers, bounds=(0.0, model.Capacity))
-model.NumProducedSecondStage = Var(model.ProductSizes, domain=NonNegativeIntegers, bounds=(0.0, model.Capacity))
-
-# the number of units of size i cut (down) to meet demands for units of size j.
-model.NumUnitsCutFirstStage = Var(model.NumUnitsCutDomain, domain=NonNegativeIntegers, bounds=(0.0, model.Capacity))
-model.NumUnitsCutSecondStage = Var(model.NumUnitsCutDomain, domain=NonNegativeIntegers, bounds=(0.0, model.Capacity))
-
-# stage-specific cost variables for use in the pysp scenario tree / analysis.
-model.FirstStageCost = Var(domain=NonNegativeReals)
-model.SecondStageCost = Var(domain=NonNegativeReals)
-
-#
-# Constraints
-#
-
-# ensure that demand is satisfied in the first stage, accounting for cut-downs.
-def demand_satisfied_first_stage_rule(model, i):
- return (0.0, sum([model.NumUnitsCutFirstStage[j,i] for j in model.ProductSizes if j >= i]) - model.DemandsFirstStage[i], None)
-model.DemandSatisfiedFirstStage = Constraint(model.ProductSizes, rule=demand_satisfied_first_stage_rule)
-
-###### CC: chance constraint #######
-## instead of requiring demand always be met in the second stage,
-## we set up a variable that indicates whether it is met
-##def demand_satisfied_second_stage_rule(i, model):
-## return (0.0, sum([model.NumUnitsCutSecondStage[j,i] for j in model.ProductSizes if j >= i]) - model.DemandsSecondStage[i], None)
-##model.DemandSatisfiedSecondStage = Constraint(model.ProductSizes, rule=demand_satisfied_second_stage_rule)
-
-model.dIndicator = Var(domain=Boolean)# indicate that all demans is met (for scenario)
-model.dforsize = Var(model.ProductSizes, domain=Boolean) # indicate that demand is met for size
-model.lambdaMult = Param(initialize=0.0, mutable=True)
-
-# The production capacity per time stage serves as a simple upper bound for "M".
-def establish_dforsize_rule(model, i):
- return model.dforsize[i]-1.0 <= (sum([model.NumUnitsCutSecondStage[j,i] for j in model.ProductSizes if j >= i]) - model.DemandsSecondStage[i]) / model.Capacity
-
-model.establish_dforsize = Constraint(model.ProductSizes, rule=establish_dforsize_rule)
-
-# it "wants to be a one" so don't let it unless it should be
-def establish_dIndicator_rule(model):
- return model.dIndicator * model.NumSizes <= sum_product(model.dforsize)
-
-model.establish_dIndicator = Constraint(rule=establish_dIndicator_rule)
-
-# if the chance constraint is not desired, then runef can give the fully admissible solutions
-# by using the following AllDemandMet constraint
-# (this should be commented-out to get a chance constraint)
-##def AllDemandMet_rule(model):
-## return model.dIndicator >= 1.0
-##model.AllDemandMet = Constraint(rule=AllDemandMet_rule)
-
-# ensure that you don't produce any units if the decision has been made to disable producion.
-def enforce_production_first_stage_rule(model, i):
- # The production capacity per time stage serves as a simple upper bound for "M".
- return (None, model.NumProducedFirstStage[i] - model.Capacity * model.ProduceSizeFirstStage[i], 0.0)
-
-def enforce_production_second_stage_rule(model, i):
- # The production capacity per time stage serves as a simple upper bound for "M".
- return (None, model.NumProducedSecondStage[i] - model.Capacity * model.ProduceSizeSecondStage[i], 0.0)
-
-model.EnforceProductionBinaryFirstStage = Constraint(model.ProductSizes, rule=enforce_production_first_stage_rule)
-model.EnforceProductionBinarySecondStage = Constraint(model.ProductSizes, rule=enforce_production_second_stage_rule)
-
-# ensure that the production capacity is not exceeded for each time stage.
-def enforce_capacity_first_stage_rule(model):
- return (None, sum([model.NumProducedFirstStage[i] for i in model.ProductSizes]) - model.Capacity, 0.0)
-
-def enforce_capacity_second_stage_rule(model):
- return (None, sum([model.NumProducedSecondStage[i] for i in model.ProductSizes]) - model.Capacity, 0.0)
-
-model.EnforceCapacityLimitFirstStage = Constraint(rule=enforce_capacity_first_stage_rule)
-model.EnforceCapacityLimitSecondStage = Constraint(rule=enforce_capacity_second_stage_rule)
-
-# ensure that you can't generate inventory out of thin air.
-def enforce_inventory_first_stage_rule(model, i):
- return (None, \
- sum([model.NumUnitsCutFirstStage[i,j] for j in model.ProductSizes if j <= i]) - \
- model.NumProducedFirstStage[i], \
- 0.0)
-
-def enforce_inventory_second_stage_rule(model, i):
- return (None, \
- sum([model.NumUnitsCutFirstStage[i,j] for j in model.ProductSizes if j <= i]) + \
- sum([model.NumUnitsCutSecondStage[i,j] for j in model.ProductSizes if j <= i]) \
- - model.NumProducedFirstStage[i] - model.NumProducedSecondStage[i], \
- 0.0)
-
-model.EnforceInventoryFirstStage = Constraint(model.ProductSizes, rule=enforce_inventory_first_stage_rule)
-model.EnforceInventorySecondStage = Constraint(model.ProductSizes, rule=enforce_inventory_second_stage_rule)
-
-# stage-specific cost computations.
-def first_stage_cost_rule(model):
- production_costs = sum([model.SetupCosts[i] * model.ProduceSizeFirstStage[i] + \
- model.UnitProductionCosts[i] * model.NumProducedFirstStage[i] \
- for i in model.ProductSizes])
- cut_costs = sum([model.UnitReductionCost * model.NumUnitsCutFirstStage[i,j] \
- for (i,j) in model.NumUnitsCutDomain if i != j])
- return (model.FirstStageCost - production_costs - cut_costs) == 0.0
-
-model.ComputeFirstStageCost = Constraint(rule=first_stage_cost_rule)
-
-def second_stage_cost_rule(model):
- production_costs = sum([model.SetupCosts[i] * model.ProduceSizeSecondStage[i] + \
- model.UnitProductionCosts[i] * model.NumProducedSecondStage[i] \
- for i in model.ProductSizes])
- cut_costs = sum([model.UnitReductionCost * model.NumUnitsCutSecondStage[i,j] \
- for (i,j) in model.NumUnitsCutDomain if i != j])
- return (model.SecondStageCost - production_costs - cut_costs) == 0.0
-
-model.ComputeSecondStageCost = Constraint(rule=second_stage_cost_rule)
-
-#
-# PySP Auto-generated Objective
-#
-# minimize: sum of StageCosts
-#
-# A active scenario objective equivalent to that generated by PySP is
-# included here for informational purposes.
-def total_cost_rule(model):
- return model.FirstStageCost + model.SecondStageCost
-model.Total_Cost_Objective = Objective(rule=total_cost_rule, sense=minimize)
-
diff --git a/examples/pysp/sizes/README.txt b/examples/pysp/sizes/README.txt
deleted file mode 100644
index 315f9d08139..00000000000
--- a/examples/pysp/sizes/README.txt
+++ /dev/null
@@ -1,93 +0,0 @@
-Model source: Jorjani, Scott, and Woodruff. 1996. Selection of Optimal Subset of Sizes. Technical Report.
-
-Described also in: Progressive Hedging and Tabu Search Applied to Mixed-Integer (0,1) Multistage Stochastic Programming.
- Journal of Heuristics, Volume 2, 1996, pp. 111-128.
-
-With CPLEX 11.21, the following are the EF optimal objectives and solution times:
-
-SIZES3: Optimal objective value: 224275.3334 Achieved after 1 second, 6K branch-and-bound nodes.
-SIZES10: Objective value with gap=0.12%: 224406.64 Achieved after 10+ minutes and 2.5M branch-and-bound nodes.
-
-SIZES3 EF (OPTIMAL) SOLUTION (non-zero elements):
-
-ProduceSizeFirstStage(3) 1.000000
-ProduceSizeFirstStage(5) 1.000000
-ProduceSizeFirstStage(6) 1.000000
-ProduceSizeFirstStage(8) 1.000000
-ProduceSizeFirstStage(10) 1.000000
-
-NumProducedFirstStage(3) 38250.000000
-NumProducedFirstStage(5) 45000.000000
-NumProducedFirstStage(6) 50000.000000
-NumProducedFirstStage(8) 42750.000000
-NumProducedFirstStage(10) 24000.000000
-
-NumUnitsCutFirstStage(3,3) 12500.000000
-NumUnitsCutFirstStage(3,1) 2500.000000
-NumUnitsCutFirstStage(8,7) 15000.000000
-NumUnitsCutFirstStage(3,2) 7500.000000
-NumUnitsCutFirstStage(5,4) 10000.000000
-NumUnitsCutFirstStage(6,6) 25000.000000
-NumUnitsCutFirstStage(5,5) 35000.000000
-NumUnitsCutFirstStage(10,10) 5000.000000
-NumUnitsCutFirstStage(10,9) 12500.000000
-NumUnitsCutFirstStage(8,8) 12500.000000
-
-SIZES10 EF (SUB-OPTIMAL) SOLUTION (non-zero elements):
-
-ProduceSizeFirstStage(3) 1.000000
-ProduceSizeFirstStage(5) 1.000000
-ProduceSizeFirstStage(6) 1.000000
-ProduceSizeFirstStage(8) 1.000000
-ProduceSizeFirstStage(10) 1.000000
-
-NumProducedFirstStage(3) 33750.000000
-NumProducedFirstStage(5) 45000.000000
-NumProducedFirstStage(6) 52500.000000
-NumProducedFirstStage(8) 43750.000000
-NumProducedFirstStage(10) 25000.000000
-
-NumUnitsCutFirstStage(8,8) 12500.000000
-NumUnitsCutFirstStage(5,4) 10000.000000
-NumUnitsCutFirstStage(3,2) 7500.000000
-NumUnitsCutFirstStage(6,6) 25000.000000
-NumUnitsCutFirstStage(10,10) 5000.000000
-NumUnitsCutFirstStage(9,7) -0.000000
-NumUnitsCutFirstStage(3,1) 2500.000000
-NumUnitsCutFirstStage(3,3) 12500.000000
-NumUnitsCutFirstStage(8,7) 15000.000000
-NumUnitsCutFirstStage(6,5) 0.000000
-NumUnitsCutFirstStage(5,5) 35000.000000
-NumUnitsCutFirstStage(10,9) 12500.000000
-
-Baseline PH results (no plug-ins or tweaks, other than reasonable rho values):
-
-runph --model-directory=models --instance-directory=SIZESX --max-iterations=200 --rho-cfgfile=config/rhosetter.cfg --scenario-solver-options="mip_tolerances_integrality=1e-7"
-
-NOTE: The big-M formulation requires the mip tolerances to be tightened; otherwise, with a production capacity of 200K and a default (CPLEX)
- integrality tolerance of 1e-5, you can end up producing quantity of certain sizes when production of that size is disabled!
-
-NOTE: Small rhos in general are required to obtain good solutions. The rule specified in the rhosetter.cfg file is cost-proportional
- with a factor equal to 0.001. Larger values accelerate convergence significantly, as the cost of solution quality.
-
-SIZES3: Converges in 131 iterations, with an objective equal to 224480.8819
-SIZES10: Doesn't converge after 200 iterations, but is very close. Minor discrepancies in the
- NumProducedFirstStage and NumUnitsCutFirstStage variables. Objective value equals
- 224591.7098, but this doesn't make much sense because the solution isn't fully converged.
- But: The max-min difference in first-stage costs is only 1.2272, so this solution is very
- good.
-
-The SIZES example is a great example of where fixing is needed - PH gets close to a high-quality solution quickly, but takes a long
-time to "polish" the solution to complete agreement. Thus, acceleration can be achieved by using variable fixing and slamming; both
-techniques are described in the PySP documentation. To use these techniques, simply add the following command-line arguments to the
-runph invocation:
-
---enable-ww-extensions --ww-extension-cfgfile=config/wwph.cfg --ww-extension-suffixfile=config/wwph.suffixes
-
-With these techniques, runph yields the following performance:
-
-SIZES3: Converges in 113 iterations with an objective value=224553.5936
-SIZES10: Converges in 125 iterations with an objective value=224702.6184
-
-In the case of SIZES3, the acceleration comes at a slight increase in solution cost. For SIZES10, it makes convergence possible.
-In both cases, the solutions are very high-quality relative to the EF objective function values.
diff --git a/examples/pysp/sizes/SIZES10/Scenario1.dat b/examples/pysp/sizes/SIZES10/Scenario1.dat
deleted file mode 100644
index a91c2300cdb..00000000000
--- a/examples/pysp/sizes/SIZES10/Scenario1.dat
+++ /dev/null
@@ -1,15 +0,0 @@
-param NumSizes := 10 ;
-
-param Capacity := 200000 ;
-
-param DemandsFirstStage := 1 2500 2 7500 3 12500 4 10000 5 35000 6 25000 7 15000 8 12500 9 12500 10 5000 ;
-
-param DemandsSecondStage := 1 1250 2 3750 3 6250 4 5000 5 17500 6 12500 7 7500 8 6250 9 6250 10 2500 ;
-
-param UnitProductionCosts := 1 0.748 2 0.7584 3 0.7688 4 0.7792 5 0.7896 6 0.8 7 0.8104 8 0.8208 9 0.8312 10 0.8416 ;
-
-param SetupCosts := 1 453 2 453 3 453 4 453 5 453 6 453 7 453 8 453 9 453 10 453;
-
-param UnitReductionCost := 0.008 ;
-
-
diff --git a/examples/pysp/sizes/SIZES10/Scenario10.dat b/examples/pysp/sizes/SIZES10/Scenario10.dat
deleted file mode 100644
index 6b49f3f6bbc..00000000000
--- a/examples/pysp/sizes/SIZES10/Scenario10.dat
+++ /dev/null
@@ -1,15 +0,0 @@
-param NumSizes := 10 ;
-
-param Capacity := 200000 ;
-
-param DemandsFirstStage := 1 2500 2 7500 3 12500 4 10000 5 35000 6 25000 7 15000 8 12500 9 12500 10 5000 ;
-
-param DemandsSecondStage := 1 3750 2 11250 3 18750 4 15000 5 52500 6 37500 7 22500 8 18750 9 18750 10 7500 ;
-
-param UnitProductionCosts := 1 0.748 2 0.7584 3 0.7688 4 0.7792 5 0.7896 6 0.8 7 0.8104 8 0.8208 9 0.8312 10 0.8416 ;
-
-param SetupCosts := 1 453 2 453 3 453 4 453 5 453 6 453 7 453 8 453 9 453 10 453;
-
-param UnitReductionCost := 0.008 ;
-
-
diff --git a/examples/pysp/sizes/SIZES10/Scenario2.dat b/examples/pysp/sizes/SIZES10/Scenario2.dat
deleted file mode 100644
index 5061501e872..00000000000
--- a/examples/pysp/sizes/SIZES10/Scenario2.dat
+++ /dev/null
@@ -1,15 +0,0 @@
-param NumSizes := 10 ;
-
-param Capacity := 200000 ;
-
-param DemandsFirstStage := 1 2500 2 7500 3 12500 4 10000 5 35000 6 25000 7 15000 8 12500 9 12500 10 5000 ;
-
-param DemandsSecondStage := 1 1500 2 4500 3 7500 4 6000 5 21000 6 15000 7 9000 8 7500 9 7500 10 3000 ;
-
-param UnitProductionCosts := 1 0.748 2 0.7584 3 0.7688 4 0.7792 5 0.7896 6 0.8 7 0.8104 8 0.8208 9 0.8312 10 0.8416 ;
-
-param SetupCosts := 1 453 2 453 3 453 4 453 5 453 6 453 7 453 8 453 9 453 10 453;
-
-param UnitReductionCost := 0.008 ;
-
-
diff --git a/examples/pysp/sizes/SIZES10/Scenario3.dat b/examples/pysp/sizes/SIZES10/Scenario3.dat
deleted file mode 100644
index 9608c18ddc4..00000000000
--- a/examples/pysp/sizes/SIZES10/Scenario3.dat
+++ /dev/null
@@ -1,15 +0,0 @@
-param NumSizes := 10 ;
-
-param Capacity := 200000 ;
-
-param DemandsFirstStage := 1 2500 2 7500 3 12500 4 10000 5 35000 6 25000 7 15000 8 12500 9 12500 10 5000 ;
-
-param DemandsSecondStage := 1 1750 2 5250 3 8750 4 7000 5 24500 6 17500 7 10500 8 8750 9 8750 10 3500 ;
-
-param UnitProductionCosts := 1 0.748 2 0.7584 3 0.7688 4 0.7792 5 0.7896 6 0.8 7 0.8104 8 0.8208 9 0.8312 10 0.8416 ;
-
-param SetupCosts := 1 453 2 453 3 453 4 453 5 453 6 453 7 453 8 453 9 453 10 453;
-
-param UnitReductionCost := 0.008 ;
-
-
diff --git a/examples/pysp/sizes/SIZES10/Scenario4.dat b/examples/pysp/sizes/SIZES10/Scenario4.dat
deleted file mode 100644
index e3724d5b0a7..00000000000
--- a/examples/pysp/sizes/SIZES10/Scenario4.dat
+++ /dev/null
@@ -1,15 +0,0 @@
-param NumSizes := 10 ;
-
-param Capacity := 200000 ;
-
-param DemandsFirstStage := 1 2500 2 7500 3 12500 4 10000 5 35000 6 25000 7 15000 8 12500 9 12500 10 5000 ;
-
-param DemandsSecondStage := 1 2000 2 6000 3 10000 4 8000 5 28000 6 20000 7 12000 8 10000 9 10000 10 4000 ;
-
-param UnitProductionCosts := 1 0.748 2 0.7584 3 0.7688 4 0.7792 5 0.7896 6 0.8 7 0.8104 8 0.8208 9 0.8312 10 0.8416 ;
-
-param SetupCosts := 1 453 2 453 3 453 4 453 5 453 6 453 7 453 8 453 9 453 10 453;
-
-param UnitReductionCost := 0.008 ;
-
-
diff --git a/examples/pysp/sizes/SIZES10/Scenario5.dat b/examples/pysp/sizes/SIZES10/Scenario5.dat
deleted file mode 100644
index 393e3bd5d05..00000000000
--- a/examples/pysp/sizes/SIZES10/Scenario5.dat
+++ /dev/null
@@ -1,15 +0,0 @@
-param NumSizes := 10 ;
-
-param Capacity := 200000 ;
-
-param DemandsFirstStage := 1 2500 2 7500 3 12500 4 10000 5 35000 6 25000 7 15000 8 12500 9 12500 10 5000 ;
-
-param DemandsSecondStage := 1 2250 2 6750 3 11250 4 9000 5 31500 6 22500 7 13500 8 11250 9 11250 10 4500 ;
-
-param UnitProductionCosts := 1 0.748 2 0.7584 3 0.7688 4 0.7792 5 0.7896 6 0.8 7 0.8104 8 0.8208 9 0.8312 10 0.8416 ;
-
-param SetupCosts := 1 453 2 453 3 453 4 453 5 453 6 453 7 453 8 453 9 453 10 453;
-
-param UnitReductionCost := 0.008 ;
-
-
diff --git a/examples/pysp/sizes/SIZES10/Scenario6.dat b/examples/pysp/sizes/SIZES10/Scenario6.dat
deleted file mode 100644
index 231fa871817..00000000000
--- a/examples/pysp/sizes/SIZES10/Scenario6.dat
+++ /dev/null
@@ -1,15 +0,0 @@
-param NumSizes := 10 ;
-
-param Capacity := 200000 ;
-
-param DemandsFirstStage := 1 2500 2 7500 3 12500 4 10000 5 35000 6 25000 7 15000 8 12500 9 12500 10 5000 ;
-
-param DemandsSecondStage := 1 2750 2 8250 3 13750 4 11000 5 38500 6 27500 7 16500 8 13750 9 13750 10 5500 ;
-
-param UnitProductionCosts := 1 0.748 2 0.7584 3 0.7688 4 0.7792 5 0.7896 6 0.8 7 0.8104 8 0.8208 9 0.8312 10 0.8416 ;
-
-param SetupCosts := 1 453 2 453 3 453 4 453 5 453 6 453 7 453 8 453 9 453 10 453;
-
-param UnitReductionCost := 0.008 ;
-
-
diff --git a/examples/pysp/sizes/SIZES10/Scenario7.dat b/examples/pysp/sizes/SIZES10/Scenario7.dat
deleted file mode 100644
index 2e3e75e995c..00000000000
--- a/examples/pysp/sizes/SIZES10/Scenario7.dat
+++ /dev/null
@@ -1,15 +0,0 @@
-param NumSizes := 10 ;
-
-param Capacity := 200000 ;
-
-param DemandsFirstStage := 1 2500 2 7500 3 12500 4 10000 5 35000 6 25000 7 15000 8 12500 9 12500 10 5000 ;
-
-param DemandsSecondStage := 1 3000 2 9000 3 15000 4 12000 5 42000 6 30000 7 18000 8 15000 9 15000 10 6000 ;
-
-param UnitProductionCosts := 1 0.748 2 0.7584 3 0.7688 4 0.7792 5 0.7896 6 0.8 7 0.8104 8 0.8208 9 0.8312 10 0.8416 ;
-
-param SetupCosts := 1 453 2 453 3 453 4 453 5 453 6 453 7 453 8 453 9 453 10 453;
-
-param UnitReductionCost := 0.008 ;
-
-
diff --git a/examples/pysp/sizes/SIZES10/Scenario8.dat b/examples/pysp/sizes/SIZES10/Scenario8.dat
deleted file mode 100644
index 2934d9776ec..00000000000
--- a/examples/pysp/sizes/SIZES10/Scenario8.dat
+++ /dev/null
@@ -1,15 +0,0 @@
-param NumSizes := 10 ;
-
-param Capacity := 200000 ;
-
-param DemandsFirstStage := 1 2500 2 7500 3 12500 4 10000 5 35000 6 25000 7 15000 8 12500 9 12500 10 5000 ;
-
-param DemandsSecondStage := 1 3250 2 9750 3 16250 4 13000 5 45500 6 32500 7 19500 8 16250 9 16250 10 6500 ;
-
-param UnitProductionCosts := 1 0.748 2 0.7584 3 0.7688 4 0.7792 5 0.7896 6 0.8 7 0.8104 8 0.8208 9 0.8312 10 0.8416 ;
-
-param SetupCosts := 1 453 2 453 3 453 4 453 5 453 6 453 7 453 8 453 9 453 10 453;
-
-param UnitReductionCost := 0.008 ;
-
-
diff --git a/examples/pysp/sizes/SIZES10/Scenario9.dat b/examples/pysp/sizes/SIZES10/Scenario9.dat
deleted file mode 100644
index ea12e6d457a..00000000000
--- a/examples/pysp/sizes/SIZES10/Scenario9.dat
+++ /dev/null
@@ -1,15 +0,0 @@
-param NumSizes := 10 ;
-
-param Capacity := 200000 ;
-
-param DemandsFirstStage := 1 2500 2 7500 3 12500 4 10000 5 35000 6 25000 7 15000 8 12500 9 12500 10 5000 ;
-
-param DemandsSecondStage := 1 3500 2 10500 3 17500 4 14000 5 49000 6 35000 7 21000 8 17500 9 17500 10 7000 ;
-
-param UnitProductionCosts := 1 0.748 2 0.7584 3 0.7688 4 0.7792 5 0.7896 6 0.8 7 0.8104 8 0.8208 9 0.8312 10 0.8416 ;
-
-param SetupCosts := 1 453 2 453 3 453 4 453 5 453 6 453 7 453 8 453 9 453 10 453;
-
-param UnitReductionCost := 0.008 ;
-
-
diff --git a/examples/pysp/sizes/SIZES10/ScenarioStructure.dat b/examples/pysp/sizes/SIZES10/ScenarioStructure.dat
deleted file mode 100644
index cbced5c00fa..00000000000
--- a/examples/pysp/sizes/SIZES10/ScenarioStructure.dat
+++ /dev/null
@@ -1,85 +0,0 @@
-# IMPORTANT - THE STAGES ARE ASSUMED TO BE IN TIME-ORDER.
-
-set Stages := FirstStage SecondStage ;
-
-set Nodes := RootNode
- Scenario1Node
- Scenario2Node
- Scenario3Node
- Scenario4Node
- Scenario5Node
- Scenario6Node
- Scenario7Node
- Scenario8Node
- Scenario9Node
- Scenario10Node ;
-
-param NodeStage := RootNode FirstStage
- Scenario1Node SecondStage
- Scenario2Node SecondStage
- Scenario3Node SecondStage
- Scenario4Node SecondStage
- Scenario5Node SecondStage
- Scenario6Node SecondStage
- Scenario7Node SecondStage
- Scenario8Node SecondStage
- Scenario9Node SecondStage
- Scenario10Node SecondStage ;
-
-set Children[RootNode] := Scenario1Node
- Scenario2Node
- Scenario3Node
- Scenario4Node
- Scenario5Node
- Scenario6Node
- Scenario7Node
- Scenario8Node
- Scenario9Node
- Scenario10Node ;
-
-param ConditionalProbability := RootNode 1.0
- Scenario1Node 0.10
- Scenario2Node 0.10
- Scenario3Node 0.10
- Scenario4Node 0.10
- Scenario5Node 0.10
- Scenario6Node 0.10
- Scenario7Node 0.10
- Scenario8Node 0.10
- Scenario9Node 0.10
- Scenario10Node 0.10 ;
-
-set Scenarios := Scenario1
- Scenario2
- Scenario3
- Scenario4
- Scenario5
- Scenario6
- Scenario7
- Scenario8
- Scenario9
- Scenario10 ;
-
-param ScenarioLeafNode := Scenario1 Scenario1Node
- Scenario2 Scenario2Node
- Scenario3 Scenario3Node
- Scenario4 Scenario4Node
- Scenario5 Scenario5Node
- Scenario6 Scenario6Node
- Scenario7 Scenario7Node
- Scenario8 Scenario8Node
- Scenario9 Scenario9Node
- Scenario10 Scenario10Node ;
-
-set StageVariables[FirstStage] := NumProducedFirstStage[*]
- NumUnitsCutFirstStage[*,*] ;
-set StageDerivedVariables[FirstStage] := ProduceSizeFirstStage[*] ;
-
-set StageVariables[SecondStage] := NumProducedSecondStage[*]
- NumUnitsCutSecondStage[*,*] ;
-set StageDerivedVariables[SecondStage] := ProduceSizeSecondStage[*] ;
-
-param StageCost := FirstStage FirstStageCost
- SecondStage SecondStageCost ;
-
-
diff --git a/examples/pysp/sizes/SIZES10WithTrivialBundles/Scenario1.dat b/examples/pysp/sizes/SIZES10WithTrivialBundles/Scenario1.dat
deleted file mode 100644
index a91c2300cdb..00000000000
--- a/examples/pysp/sizes/SIZES10WithTrivialBundles/Scenario1.dat
+++ /dev/null
@@ -1,15 +0,0 @@
-param NumSizes := 10 ;
-
-param Capacity := 200000 ;
-
-param DemandsFirstStage := 1 2500 2 7500 3 12500 4 10000 5 35000 6 25000 7 15000 8 12500 9 12500 10 5000 ;
-
-param DemandsSecondStage := 1 1250 2 3750 3 6250 4 5000 5 17500 6 12500 7 7500 8 6250 9 6250 10 2500 ;
-
-param UnitProductionCosts := 1 0.748 2 0.7584 3 0.7688 4 0.7792 5 0.7896 6 0.8 7 0.8104 8 0.8208 9 0.8312 10 0.8416 ;
-
-param SetupCosts := 1 453 2 453 3 453 4 453 5 453 6 453 7 453 8 453 9 453 10 453;
-
-param UnitReductionCost := 0.008 ;
-
-
diff --git a/examples/pysp/sizes/SIZES10WithTrivialBundles/Scenario10.dat b/examples/pysp/sizes/SIZES10WithTrivialBundles/Scenario10.dat
deleted file mode 100644
index 6b49f3f6bbc..00000000000
--- a/examples/pysp/sizes/SIZES10WithTrivialBundles/Scenario10.dat
+++ /dev/null
@@ -1,15 +0,0 @@
-param NumSizes := 10 ;
-
-param Capacity := 200000 ;
-
-param DemandsFirstStage := 1 2500 2 7500 3 12500 4 10000 5 35000 6 25000 7 15000 8 12500 9 12500 10 5000 ;
-
-param DemandsSecondStage := 1 3750 2 11250 3 18750 4 15000 5 52500 6 37500 7 22500 8 18750 9 18750 10 7500 ;
-
-param UnitProductionCosts := 1 0.748 2 0.7584 3 0.7688 4 0.7792 5 0.7896 6 0.8 7 0.8104 8 0.8208 9 0.8312 10 0.8416 ;
-
-param SetupCosts := 1 453 2 453 3 453 4 453 5 453 6 453 7 453 8 453 9 453 10 453;
-
-param UnitReductionCost := 0.008 ;
-
-
diff --git a/examples/pysp/sizes/SIZES10WithTrivialBundles/Scenario2.dat b/examples/pysp/sizes/SIZES10WithTrivialBundles/Scenario2.dat
deleted file mode 100644
index 5061501e872..00000000000
--- a/examples/pysp/sizes/SIZES10WithTrivialBundles/Scenario2.dat
+++ /dev/null
@@ -1,15 +0,0 @@
-param NumSizes := 10 ;
-
-param Capacity := 200000 ;
-
-param DemandsFirstStage := 1 2500 2 7500 3 12500 4 10000 5 35000 6 25000 7 15000 8 12500 9 12500 10 5000 ;
-
-param DemandsSecondStage := 1 1500 2 4500 3 7500 4 6000 5 21000 6 15000 7 9000 8 7500 9 7500 10 3000 ;
-
-param UnitProductionCosts := 1 0.748 2 0.7584 3 0.7688 4 0.7792 5 0.7896 6 0.8 7 0.8104 8 0.8208 9 0.8312 10 0.8416 ;
-
-param SetupCosts := 1 453 2 453 3 453 4 453 5 453 6 453 7 453 8 453 9 453 10 453;
-
-param UnitReductionCost := 0.008 ;
-
-
diff --git a/examples/pysp/sizes/SIZES10WithTrivialBundles/Scenario3.dat b/examples/pysp/sizes/SIZES10WithTrivialBundles/Scenario3.dat
deleted file mode 100644
index 9608c18ddc4..00000000000
--- a/examples/pysp/sizes/SIZES10WithTrivialBundles/Scenario3.dat
+++ /dev/null
@@ -1,15 +0,0 @@
-param NumSizes := 10 ;
-
-param Capacity := 200000 ;
-
-param DemandsFirstStage := 1 2500 2 7500 3 12500 4 10000 5 35000 6 25000 7 15000 8 12500 9 12500 10 5000 ;
-
-param DemandsSecondStage := 1 1750 2 5250 3 8750 4 7000 5 24500 6 17500 7 10500 8 8750 9 8750 10 3500 ;
-
-param UnitProductionCosts := 1 0.748 2 0.7584 3 0.7688 4 0.7792 5 0.7896 6 0.8 7 0.8104 8 0.8208 9 0.8312 10 0.8416 ;
-
-param SetupCosts := 1 453 2 453 3 453 4 453 5 453 6 453 7 453 8 453 9 453 10 453;
-
-param UnitReductionCost := 0.008 ;
-
-
diff --git a/examples/pysp/sizes/SIZES10WithTrivialBundles/Scenario4.dat b/examples/pysp/sizes/SIZES10WithTrivialBundles/Scenario4.dat
deleted file mode 100644
index e3724d5b0a7..00000000000
--- a/examples/pysp/sizes/SIZES10WithTrivialBundles/Scenario4.dat
+++ /dev/null
@@ -1,15 +0,0 @@
-param NumSizes := 10 ;
-
-param Capacity := 200000 ;
-
-param DemandsFirstStage := 1 2500 2 7500 3 12500 4 10000 5 35000 6 25000 7 15000 8 12500 9 12500 10 5000 ;
-
-param DemandsSecondStage := 1 2000 2 6000 3 10000 4 8000 5 28000 6 20000 7 12000 8 10000 9 10000 10 4000 ;
-
-param UnitProductionCosts := 1 0.748 2 0.7584 3 0.7688 4 0.7792 5 0.7896 6 0.8 7 0.8104 8 0.8208 9 0.8312 10 0.8416 ;
-
-param SetupCosts := 1 453 2 453 3 453 4 453 5 453 6 453 7 453 8 453 9 453 10 453;
-
-param UnitReductionCost := 0.008 ;
-
-
diff --git a/examples/pysp/sizes/SIZES10WithTrivialBundles/Scenario5.dat b/examples/pysp/sizes/SIZES10WithTrivialBundles/Scenario5.dat
deleted file mode 100644
index 393e3bd5d05..00000000000
--- a/examples/pysp/sizes/SIZES10WithTrivialBundles/Scenario5.dat
+++ /dev/null
@@ -1,15 +0,0 @@
-param NumSizes := 10 ;
-
-param Capacity := 200000 ;
-
-param DemandsFirstStage := 1 2500 2 7500 3 12500 4 10000 5 35000 6 25000 7 15000 8 12500 9 12500 10 5000 ;
-
-param DemandsSecondStage := 1 2250 2 6750 3 11250 4 9000 5 31500 6 22500 7 13500 8 11250 9 11250 10 4500 ;
-
-param UnitProductionCosts := 1 0.748 2 0.7584 3 0.7688 4 0.7792 5 0.7896 6 0.8 7 0.8104 8 0.8208 9 0.8312 10 0.8416 ;
-
-param SetupCosts := 1 453 2 453 3 453 4 453 5 453 6 453 7 453 8 453 9 453 10 453;
-
-param UnitReductionCost := 0.008 ;
-
-
diff --git a/examples/pysp/sizes/SIZES10WithTrivialBundles/Scenario6.dat b/examples/pysp/sizes/SIZES10WithTrivialBundles/Scenario6.dat
deleted file mode 100644
index 231fa871817..00000000000
--- a/examples/pysp/sizes/SIZES10WithTrivialBundles/Scenario6.dat
+++ /dev/null
@@ -1,15 +0,0 @@
-param NumSizes := 10 ;
-
-param Capacity := 200000 ;
-
-param DemandsFirstStage := 1 2500 2 7500 3 12500 4 10000 5 35000 6 25000 7 15000 8 12500 9 12500 10 5000 ;
-
-param DemandsSecondStage := 1 2750 2 8250 3 13750 4 11000 5 38500 6 27500 7 16500 8 13750 9 13750 10 5500 ;
-
-param UnitProductionCosts := 1 0.748 2 0.7584 3 0.7688 4 0.7792 5 0.7896 6 0.8 7 0.8104 8 0.8208 9 0.8312 10 0.8416 ;
-
-param SetupCosts := 1 453 2 453 3 453 4 453 5 453 6 453 7 453 8 453 9 453 10 453;
-
-param UnitReductionCost := 0.008 ;
-
-
diff --git a/examples/pysp/sizes/SIZES10WithTrivialBundles/Scenario7.dat b/examples/pysp/sizes/SIZES10WithTrivialBundles/Scenario7.dat
deleted file mode 100644
index 2e3e75e995c..00000000000
--- a/examples/pysp/sizes/SIZES10WithTrivialBundles/Scenario7.dat
+++ /dev/null
@@ -1,15 +0,0 @@
-param NumSizes := 10 ;
-
-param Capacity := 200000 ;
-
-param DemandsFirstStage := 1 2500 2 7500 3 12500 4 10000 5 35000 6 25000 7 15000 8 12500 9 12500 10 5000 ;
-
-param DemandsSecondStage := 1 3000 2 9000 3 15000 4 12000 5 42000 6 30000 7 18000 8 15000 9 15000 10 6000 ;
-
-param UnitProductionCosts := 1 0.748 2 0.7584 3 0.7688 4 0.7792 5 0.7896 6 0.8 7 0.8104 8 0.8208 9 0.8312 10 0.8416 ;
-
-param SetupCosts := 1 453 2 453 3 453 4 453 5 453 6 453 7 453 8 453 9 453 10 453;
-
-param UnitReductionCost := 0.008 ;
-
-
diff --git a/examples/pysp/sizes/SIZES10WithTrivialBundles/Scenario8.dat b/examples/pysp/sizes/SIZES10WithTrivialBundles/Scenario8.dat
deleted file mode 100644
index 2934d9776ec..00000000000
--- a/examples/pysp/sizes/SIZES10WithTrivialBundles/Scenario8.dat
+++ /dev/null
@@ -1,15 +0,0 @@
-param NumSizes := 10 ;
-
-param Capacity := 200000 ;
-
-param DemandsFirstStage := 1 2500 2 7500 3 12500 4 10000 5 35000 6 25000 7 15000 8 12500 9 12500 10 5000 ;
-
-param DemandsSecondStage := 1 3250 2 9750 3 16250 4 13000 5 45500 6 32500 7 19500 8 16250 9 16250 10 6500 ;
-
-param UnitProductionCosts := 1 0.748 2 0.7584 3 0.7688 4 0.7792 5 0.7896 6 0.8 7 0.8104 8 0.8208 9 0.8312 10 0.8416 ;
-
-param SetupCosts := 1 453 2 453 3 453 4 453 5 453 6 453 7 453 8 453 9 453 10 453;
-
-param UnitReductionCost := 0.008 ;
-
-
diff --git a/examples/pysp/sizes/SIZES10WithTrivialBundles/Scenario9.dat b/examples/pysp/sizes/SIZES10WithTrivialBundles/Scenario9.dat
deleted file mode 100644
index ea12e6d457a..00000000000
--- a/examples/pysp/sizes/SIZES10WithTrivialBundles/Scenario9.dat
+++ /dev/null
@@ -1,15 +0,0 @@
-param NumSizes := 10 ;
-
-param Capacity := 200000 ;
-
-param DemandsFirstStage := 1 2500 2 7500 3 12500 4 10000 5 35000 6 25000 7 15000 8 12500 9 12500 10 5000 ;
-
-param DemandsSecondStage := 1 3500 2 10500 3 17500 4 14000 5 49000 6 35000 7 21000 8 17500 9 17500 10 7000 ;
-
-param UnitProductionCosts := 1 0.748 2 0.7584 3 0.7688 4 0.7792 5 0.7896 6 0.8 7 0.8104 8 0.8208 9 0.8312 10 0.8416 ;
-
-param SetupCosts := 1 453 2 453 3 453 4 453 5 453 6 453 7 453 8 453 9 453 10 453;
-
-param UnitReductionCost := 0.008 ;
-
-
diff --git a/examples/pysp/sizes/SIZES10WithTrivialBundles/ScenarioStructure.dat b/examples/pysp/sizes/SIZES10WithTrivialBundles/ScenarioStructure.dat
deleted file mode 100644
index a2ab989e208..00000000000
--- a/examples/pysp/sizes/SIZES10WithTrivialBundles/ScenarioStructure.dat
+++ /dev/null
@@ -1,107 +0,0 @@
-# IMPORTANT - THE STAGES ARE ASSUMED TO BE IN TIME-ORDER.
-
-set Stages := FirstStage SecondStage ;
-
-set Nodes := RootNode
- Scenario1Node
- Scenario2Node
- Scenario3Node
- Scenario4Node
- Scenario5Node
- Scenario6Node
- Scenario7Node
- Scenario8Node
- Scenario9Node
- Scenario10Node ;
-
-param NodeStage := RootNode FirstStage
- Scenario1Node SecondStage
- Scenario2Node SecondStage
- Scenario3Node SecondStage
- Scenario4Node SecondStage
- Scenario5Node SecondStage
- Scenario6Node SecondStage
- Scenario7Node SecondStage
- Scenario8Node SecondStage
- Scenario9Node SecondStage
- Scenario10Node SecondStage ;
-
-set Children[RootNode] := Scenario1Node
- Scenario2Node
- Scenario3Node
- Scenario4Node
- Scenario5Node
- Scenario6Node
- Scenario7Node
- Scenario8Node
- Scenario9Node
- Scenario10Node ;
-
-param ConditionalProbability := RootNode 1.0
- Scenario1Node 0.10
- Scenario2Node 0.10
- Scenario3Node 0.10
- Scenario4Node 0.10
- Scenario5Node 0.10
- Scenario6Node 0.10
- Scenario7Node 0.10
- Scenario8Node 0.10
- Scenario9Node 0.10
- Scenario10Node 0.10 ;
-
-set Scenarios := Scenario1
- Scenario2
- Scenario3
- Scenario4
- Scenario5
- Scenario6
- Scenario7
- Scenario8
- Scenario9
- Scenario10 ;
-
-param ScenarioLeafNode := Scenario1 Scenario1Node
- Scenario2 Scenario2Node
- Scenario3 Scenario3Node
- Scenario4 Scenario4Node
- Scenario5 Scenario5Node
- Scenario6 Scenario6Node
- Scenario7 Scenario7Node
- Scenario8 Scenario8Node
- Scenario9 Scenario9Node
- Scenario10 Scenario10Node ;
-
-set StageVariables[FirstStage] := ProduceSizeFirstStage[*]
- NumProducedFirstStage[*]
- NumUnitsCutFirstStage[*,*] ;
-set StageVariables[SecondStage] := ProduceSizeSecondStage[*]
- NumProducedSecondStage[*]
- NumUnitsCutSecondStage[*,*] ;
-
-param StageCost := FirstStage FirstStageCost
- SecondStage SecondStageCost ;
-
-param Bundling := True ;
-
-set Bundles := Bundle1
-Bundle2
-Bundle3
-Bundle4
-Bundle5
-Bundle6
-Bundle7
-Bundle8
-Bundle9
-Bundle10 ;
-
-set BundleScenarios[Bundle1] := Scenario1 ;
-set BundleScenarios[Bundle2] := Scenario2 ;
-set BundleScenarios[Bundle3] := Scenario3 ;
-set BundleScenarios[Bundle4] := Scenario4 ;
-set BundleScenarios[Bundle5] := Scenario5 ;
-set BundleScenarios[Bundle6] := Scenario6 ;
-set BundleScenarios[Bundle7] := Scenario7 ;
-set BundleScenarios[Bundle8] := Scenario8 ;
-set BundleScenarios[Bundle9] := Scenario9 ;
-set BundleScenarios[Bundle10] := Scenario10 ;
-
diff --git a/examples/pysp/sizes/SIZES10WithTwoBundles/Scenario1.dat b/examples/pysp/sizes/SIZES10WithTwoBundles/Scenario1.dat
deleted file mode 100644
index a91c2300cdb..00000000000
--- a/examples/pysp/sizes/SIZES10WithTwoBundles/Scenario1.dat
+++ /dev/null
@@ -1,15 +0,0 @@
-param NumSizes := 10 ;
-
-param Capacity := 200000 ;
-
-param DemandsFirstStage := 1 2500 2 7500 3 12500 4 10000 5 35000 6 25000 7 15000 8 12500 9 12500 10 5000 ;
-
-param DemandsSecondStage := 1 1250 2 3750 3 6250 4 5000 5 17500 6 12500 7 7500 8 6250 9 6250 10 2500 ;
-
-param UnitProductionCosts := 1 0.748 2 0.7584 3 0.7688 4 0.7792 5 0.7896 6 0.8 7 0.8104 8 0.8208 9 0.8312 10 0.8416 ;
-
-param SetupCosts := 1 453 2 453 3 453 4 453 5 453 6 453 7 453 8 453 9 453 10 453;
-
-param UnitReductionCost := 0.008 ;
-
-
diff --git a/examples/pysp/sizes/SIZES10WithTwoBundles/Scenario10.dat b/examples/pysp/sizes/SIZES10WithTwoBundles/Scenario10.dat
deleted file mode 100644
index 6b49f3f6bbc..00000000000
--- a/examples/pysp/sizes/SIZES10WithTwoBundles/Scenario10.dat
+++ /dev/null
@@ -1,15 +0,0 @@
-param NumSizes := 10 ;
-
-param Capacity := 200000 ;
-
-param DemandsFirstStage := 1 2500 2 7500 3 12500 4 10000 5 35000 6 25000 7 15000 8 12500 9 12500 10 5000 ;
-
-param DemandsSecondStage := 1 3750 2 11250 3 18750 4 15000 5 52500 6 37500 7 22500 8 18750 9 18750 10 7500 ;
-
-param UnitProductionCosts := 1 0.748 2 0.7584 3 0.7688 4 0.7792 5 0.7896 6 0.8 7 0.8104 8 0.8208 9 0.8312 10 0.8416 ;
-
-param SetupCosts := 1 453 2 453 3 453 4 453 5 453 6 453 7 453 8 453 9 453 10 453;
-
-param UnitReductionCost := 0.008 ;
-
-
diff --git a/examples/pysp/sizes/SIZES10WithTwoBundles/Scenario2.dat b/examples/pysp/sizes/SIZES10WithTwoBundles/Scenario2.dat
deleted file mode 100644
index 5061501e872..00000000000
--- a/examples/pysp/sizes/SIZES10WithTwoBundles/Scenario2.dat
+++ /dev/null
@@ -1,15 +0,0 @@
-param NumSizes := 10 ;
-
-param Capacity := 200000 ;
-
-param DemandsFirstStage := 1 2500 2 7500 3 12500 4 10000 5 35000 6 25000 7 15000 8 12500 9 12500 10 5000 ;
-
-param DemandsSecondStage := 1 1500 2 4500 3 7500 4 6000 5 21000 6 15000 7 9000 8 7500 9 7500 10 3000 ;
-
-param UnitProductionCosts := 1 0.748 2 0.7584 3 0.7688 4 0.7792 5 0.7896 6 0.8 7 0.8104 8 0.8208 9 0.8312 10 0.8416 ;
-
-param SetupCosts := 1 453 2 453 3 453 4 453 5 453 6 453 7 453 8 453 9 453 10 453;
-
-param UnitReductionCost := 0.008 ;
-
-
diff --git a/examples/pysp/sizes/SIZES10WithTwoBundles/Scenario3.dat b/examples/pysp/sizes/SIZES10WithTwoBundles/Scenario3.dat
deleted file mode 100644
index 9608c18ddc4..00000000000
--- a/examples/pysp/sizes/SIZES10WithTwoBundles/Scenario3.dat
+++ /dev/null
@@ -1,15 +0,0 @@
-param NumSizes := 10 ;
-
-param Capacity := 200000 ;
-
-param DemandsFirstStage := 1 2500 2 7500 3 12500 4 10000 5 35000 6 25000 7 15000 8 12500 9 12500 10 5000 ;
-
-param DemandsSecondStage := 1 1750 2 5250 3 8750 4 7000 5 24500 6 17500 7 10500 8 8750 9 8750 10 3500 ;
-
-param UnitProductionCosts := 1 0.748 2 0.7584 3 0.7688 4 0.7792 5 0.7896 6 0.8 7 0.8104 8 0.8208 9 0.8312 10 0.8416 ;
-
-param SetupCosts := 1 453 2 453 3 453 4 453 5 453 6 453 7 453 8 453 9 453 10 453;
-
-param UnitReductionCost := 0.008 ;
-
-
diff --git a/examples/pysp/sizes/SIZES10WithTwoBundles/Scenario4.dat b/examples/pysp/sizes/SIZES10WithTwoBundles/Scenario4.dat
deleted file mode 100644
index e3724d5b0a7..00000000000
--- a/examples/pysp/sizes/SIZES10WithTwoBundles/Scenario4.dat
+++ /dev/null
@@ -1,15 +0,0 @@
-param NumSizes := 10 ;
-
-param Capacity := 200000 ;
-
-param DemandsFirstStage := 1 2500 2 7500 3 12500 4 10000 5 35000 6 25000 7 15000 8 12500 9 12500 10 5000 ;
-
-param DemandsSecondStage := 1 2000 2 6000 3 10000 4 8000 5 28000 6 20000 7 12000 8 10000 9 10000 10 4000 ;
-
-param UnitProductionCosts := 1 0.748 2 0.7584 3 0.7688 4 0.7792 5 0.7896 6 0.8 7 0.8104 8 0.8208 9 0.8312 10 0.8416 ;
-
-param SetupCosts := 1 453 2 453 3 453 4 453 5 453 6 453 7 453 8 453 9 453 10 453;
-
-param UnitReductionCost := 0.008 ;
-
-
diff --git a/examples/pysp/sizes/SIZES10WithTwoBundles/Scenario5.dat b/examples/pysp/sizes/SIZES10WithTwoBundles/Scenario5.dat
deleted file mode 100644
index 393e3bd5d05..00000000000
--- a/examples/pysp/sizes/SIZES10WithTwoBundles/Scenario5.dat
+++ /dev/null
@@ -1,15 +0,0 @@
-param NumSizes := 10 ;
-
-param Capacity := 200000 ;
-
-param DemandsFirstStage := 1 2500 2 7500 3 12500 4 10000 5 35000 6 25000 7 15000 8 12500 9 12500 10 5000 ;
-
-param DemandsSecondStage := 1 2250 2 6750 3 11250 4 9000 5 31500 6 22500 7 13500 8 11250 9 11250 10 4500 ;
-
-param UnitProductionCosts := 1 0.748 2 0.7584 3 0.7688 4 0.7792 5 0.7896 6 0.8 7 0.8104 8 0.8208 9 0.8312 10 0.8416 ;
-
-param SetupCosts := 1 453 2 453 3 453 4 453 5 453 6 453 7 453 8 453 9 453 10 453;
-
-param UnitReductionCost := 0.008 ;
-
-
diff --git a/examples/pysp/sizes/SIZES10WithTwoBundles/Scenario6.dat b/examples/pysp/sizes/SIZES10WithTwoBundles/Scenario6.dat
deleted file mode 100644
index 231fa871817..00000000000
--- a/examples/pysp/sizes/SIZES10WithTwoBundles/Scenario6.dat
+++ /dev/null
@@ -1,15 +0,0 @@
-param NumSizes := 10 ;
-
-param Capacity := 200000 ;
-
-param DemandsFirstStage := 1 2500 2 7500 3 12500 4 10000 5 35000 6 25000 7 15000 8 12500 9 12500 10 5000 ;
-
-param DemandsSecondStage := 1 2750 2 8250 3 13750 4 11000 5 38500 6 27500 7 16500 8 13750 9 13750 10 5500 ;
-
-param UnitProductionCosts := 1 0.748 2 0.7584 3 0.7688 4 0.7792 5 0.7896 6 0.8 7 0.8104 8 0.8208 9 0.8312 10 0.8416 ;
-
-param SetupCosts := 1 453 2 453 3 453 4 453 5 453 6 453 7 453 8 453 9 453 10 453;
-
-param UnitReductionCost := 0.008 ;
-
-
diff --git a/examples/pysp/sizes/SIZES10WithTwoBundles/Scenario7.dat b/examples/pysp/sizes/SIZES10WithTwoBundles/Scenario7.dat
deleted file mode 100644
index 2e3e75e995c..00000000000
--- a/examples/pysp/sizes/SIZES10WithTwoBundles/Scenario7.dat
+++ /dev/null
@@ -1,15 +0,0 @@
-param NumSizes := 10 ;
-
-param Capacity := 200000 ;
-
-param DemandsFirstStage := 1 2500 2 7500 3 12500 4 10000 5 35000 6 25000 7 15000 8 12500 9 12500 10 5000 ;
-
-param DemandsSecondStage := 1 3000 2 9000 3 15000 4 12000 5 42000 6 30000 7 18000 8 15000 9 15000 10 6000 ;
-
-param UnitProductionCosts := 1 0.748 2 0.7584 3 0.7688 4 0.7792 5 0.7896 6 0.8 7 0.8104 8 0.8208 9 0.8312 10 0.8416 ;
-
-param SetupCosts := 1 453 2 453 3 453 4 453 5 453 6 453 7 453 8 453 9 453 10 453;
-
-param UnitReductionCost := 0.008 ;
-
-
diff --git a/examples/pysp/sizes/SIZES10WithTwoBundles/Scenario8.dat b/examples/pysp/sizes/SIZES10WithTwoBundles/Scenario8.dat
deleted file mode 100644
index 2934d9776ec..00000000000
--- a/examples/pysp/sizes/SIZES10WithTwoBundles/Scenario8.dat
+++ /dev/null
@@ -1,15 +0,0 @@
-param NumSizes := 10 ;
-
-param Capacity := 200000 ;
-
-param DemandsFirstStage := 1 2500 2 7500 3 12500 4 10000 5 35000 6 25000 7 15000 8 12500 9 12500 10 5000 ;
-
-param DemandsSecondStage := 1 3250 2 9750 3 16250 4 13000 5 45500 6 32500 7 19500 8 16250 9 16250 10 6500 ;
-
-param UnitProductionCosts := 1 0.748 2 0.7584 3 0.7688 4 0.7792 5 0.7896 6 0.8 7 0.8104 8 0.8208 9 0.8312 10 0.8416 ;
-
-param SetupCosts := 1 453 2 453 3 453 4 453 5 453 6 453 7 453 8 453 9 453 10 453;
-
-param UnitReductionCost := 0.008 ;
-
-
diff --git a/examples/pysp/sizes/SIZES10WithTwoBundles/Scenario9.dat b/examples/pysp/sizes/SIZES10WithTwoBundles/Scenario9.dat
deleted file mode 100644
index ea12e6d457a..00000000000
--- a/examples/pysp/sizes/SIZES10WithTwoBundles/Scenario9.dat
+++ /dev/null
@@ -1,15 +0,0 @@
-param NumSizes := 10 ;
-
-param Capacity := 200000 ;
-
-param DemandsFirstStage := 1 2500 2 7500 3 12500 4 10000 5 35000 6 25000 7 15000 8 12500 9 12500 10 5000 ;
-
-param DemandsSecondStage := 1 3500 2 10500 3 17500 4 14000 5 49000 6 35000 7 21000 8 17500 9 17500 10 7000 ;
-
-param UnitProductionCosts := 1 0.748 2 0.7584 3 0.7688 4 0.7792 5 0.7896 6 0.8 7 0.8104 8 0.8208 9 0.8312 10 0.8416 ;
-
-param SetupCosts := 1 453 2 453 3 453 4 453 5 453 6 453 7 453 8 453 9 453 10 453;
-
-param UnitReductionCost := 0.008 ;
-
-
diff --git a/examples/pysp/sizes/SIZES10WithTwoBundles/ScenarioStructure.dat b/examples/pysp/sizes/SIZES10WithTwoBundles/ScenarioStructure.dat
deleted file mode 100644
index 5b070bdfced..00000000000
--- a/examples/pysp/sizes/SIZES10WithTwoBundles/ScenarioStructure.dat
+++ /dev/null
@@ -1,90 +0,0 @@
-# IMPORTANT - THE STAGES ARE ASSUMED TO BE IN TIME-ORDER.
-
-set Stages := FirstStage SecondStage ;
-
-set Nodes := RootNode
- Scenario1Node
- Scenario2Node
- Scenario3Node
- Scenario4Node
- Scenario5Node
- Scenario6Node
- Scenario7Node
- Scenario8Node
- Scenario9Node
- Scenario10Node ;
-
-param NodeStage := RootNode FirstStage
- Scenario1Node SecondStage
- Scenario2Node SecondStage
- Scenario3Node SecondStage
- Scenario4Node SecondStage
- Scenario5Node SecondStage
- Scenario6Node SecondStage
- Scenario7Node SecondStage
- Scenario8Node SecondStage
- Scenario9Node SecondStage
- Scenario10Node SecondStage ;
-
-set Children[RootNode] := Scenario1Node
- Scenario2Node
- Scenario3Node
- Scenario4Node
- Scenario5Node
- Scenario6Node
- Scenario7Node
- Scenario8Node
- Scenario9Node
- Scenario10Node ;
-
-param ConditionalProbability := RootNode 1.0
- Scenario1Node 0.10
- Scenario2Node 0.10
- Scenario3Node 0.10
- Scenario4Node 0.10
- Scenario5Node 0.10
- Scenario6Node 0.10
- Scenario7Node 0.10
- Scenario8Node 0.10
- Scenario9Node 0.10
- Scenario10Node 0.10 ;
-
-set Scenarios := Scenario1
- Scenario2
- Scenario3
- Scenario4
- Scenario5
- Scenario6
- Scenario7
- Scenario8
- Scenario9
- Scenario10 ;
-
-param ScenarioLeafNode := Scenario1 Scenario1Node
- Scenario2 Scenario2Node
- Scenario3 Scenario3Node
- Scenario4 Scenario4Node
- Scenario5 Scenario5Node
- Scenario6 Scenario6Node
- Scenario7 Scenario7Node
- Scenario8 Scenario8Node
- Scenario9 Scenario9Node
- Scenario10 Scenario10Node ;
-
-set StageVariables[FirstStage] := ProduceSizeFirstStage[*]
- NumProducedFirstStage[*]
- NumUnitsCutFirstStage[*,*] ;
-set StageVariables[SecondStage] := ProduceSizeSecondStage[*]
- NumProducedSecondStage[*]
- NumUnitsCutSecondStage[*,*] ;
-
-param StageCost := FirstStage FirstStageCost
- SecondStage SecondStageCost ;
-
-param Bundling := True ;
-
-set Bundles := EvenBundle OddBundle ;
-
-set BundleScenarios[OddBundle] := Scenario1 Scenario3 Scenario5 Scenario7 Scenario9 ;
-
-set BundleScenarios[EvenBundle] := Scenario2 Scenario4 Scenario6 Scenario8 Scenario10 ;
diff --git a/examples/pysp/sizes/SIZES3/Scenario1.dat b/examples/pysp/sizes/SIZES3/Scenario1.dat
deleted file mode 100644
index 9608c18ddc4..00000000000
--- a/examples/pysp/sizes/SIZES3/Scenario1.dat
+++ /dev/null
@@ -1,15 +0,0 @@
-param NumSizes := 10 ;
-
-param Capacity := 200000 ;
-
-param DemandsFirstStage := 1 2500 2 7500 3 12500 4 10000 5 35000 6 25000 7 15000 8 12500 9 12500 10 5000 ;
-
-param DemandsSecondStage := 1 1750 2 5250 3 8750 4 7000 5 24500 6 17500 7 10500 8 8750 9 8750 10 3500 ;
-
-param UnitProductionCosts := 1 0.748 2 0.7584 3 0.7688 4 0.7792 5 0.7896 6 0.8 7 0.8104 8 0.8208 9 0.8312 10 0.8416 ;
-
-param SetupCosts := 1 453 2 453 3 453 4 453 5 453 6 453 7 453 8 453 9 453 10 453;
-
-param UnitReductionCost := 0.008 ;
-
-
diff --git a/examples/pysp/sizes/SIZES3/Scenario2.dat b/examples/pysp/sizes/SIZES3/Scenario2.dat
deleted file mode 100644
index 5e4a5a02ba6..00000000000
--- a/examples/pysp/sizes/SIZES3/Scenario2.dat
+++ /dev/null
@@ -1,17 +0,0 @@
-#
-# Data for the one-period version of the SIZES optimization model.
-#
-
-param NumSizes := 10 ;
-
-param Capacity := 200000 ;
-
-param DemandsFirstStage := 1 2500 2 7500 3 12500 4 10000 5 35000 6 25000 7 15000 8 12500 9 12500 10 5000 ;
-
-param DemandsSecondStage := 1 2500 2 7500 3 12500 4 10000 5 35000 6 25000 7 15000 8 12500 9 12500 10 5000 ;
-
-param UnitProductionCosts := 1 0.748 2 0.7584 3 0.7688 4 0.7792 5 0.7896 6 0.8 7 0.8104 8 0.8208 9 0.8312 10 0.8416 ;
-
-param SetupCosts := 1 453 2 453 3 453 4 453 5 453 6 453 7 453 8 453 9 453 10 453;
-
-param UnitReductionCost := 0.008 ;
diff --git a/examples/pysp/sizes/SIZES3/Scenario3.dat b/examples/pysp/sizes/SIZES3/Scenario3.dat
deleted file mode 100644
index 2934d9776ec..00000000000
--- a/examples/pysp/sizes/SIZES3/Scenario3.dat
+++ /dev/null
@@ -1,15 +0,0 @@
-param NumSizes := 10 ;
-
-param Capacity := 200000 ;
-
-param DemandsFirstStage := 1 2500 2 7500 3 12500 4 10000 5 35000 6 25000 7 15000 8 12500 9 12500 10 5000 ;
-
-param DemandsSecondStage := 1 3250 2 9750 3 16250 4 13000 5 45500 6 32500 7 19500 8 16250 9 16250 10 6500 ;
-
-param UnitProductionCosts := 1 0.748 2 0.7584 3 0.7688 4 0.7792 5 0.7896 6 0.8 7 0.8104 8 0.8208 9 0.8312 10 0.8416 ;
-
-param SetupCosts := 1 453 2 453 3 453 4 453 5 453 6 453 7 453 8 453 9 453 10 453;
-
-param UnitReductionCost := 0.008 ;
-
-
diff --git a/examples/pysp/sizes/SIZES3/ScenarioStructure.dat b/examples/pysp/sizes/SIZES3/ScenarioStructure.dat
deleted file mode 100644
index 37b3581f0a6..00000000000
--- a/examples/pysp/sizes/SIZES3/ScenarioStructure.dat
+++ /dev/null
@@ -1,46 +0,0 @@
-# IMPORTANT - THE STAGES ARE ASSUMED TO BE IN TIME-ORDER.
-
-set Stages := FirstStage SecondStage ;
-
-set Nodes := RootNode
- Scenario1Node
- Scenario2Node
- Scenario3Node ;
-
-param NodeStage := RootNode FirstStage
- Scenario1Node SecondStage
- Scenario2Node SecondStage
- Scenario3Node SecondStage ;
-
-
-set Children[RootNode] := Scenario1Node
- Scenario2Node
- Scenario3Node ;
-
-param ConditionalProbability := RootNode 1.0
- Scenario1Node 0.333333333
- Scenario2Node 0.333333333
- Scenario3Node 0.333333334 ;
-
-set Scenarios := Scenario1
- Scenario2
- Scenario3 ;
-
-param ScenarioLeafNode := Scenario1 Scenario1Node
- Scenario2 Scenario2Node
- Scenario3 Scenario3Node ;
-
-set StageVariables[FirstStage] := NumProducedFirstStage[*]
- NumUnitsCutFirstStage[*,*] ;
-
-set StageDerivedVariables[FirstStage] := ProduceSizeFirstStage[*] ;
-
-set StageVariables[SecondStage] := NumProducedSecondStage[*]
- NumUnitsCutSecondStage[*,*] ;
-
-set StageDerivedVariables[SecondStage] := ProduceSizeSecondStage[*] ;
-
-param StageCost := FirstStage FirstStageCost
- SecondStage SecondStageCost ;
-
-
diff --git a/examples/pysp/sizes/SIZES3WithThreeBundles/Scenario1.dat b/examples/pysp/sizes/SIZES3WithThreeBundles/Scenario1.dat
deleted file mode 100644
index 9608c18ddc4..00000000000
--- a/examples/pysp/sizes/SIZES3WithThreeBundles/Scenario1.dat
+++ /dev/null
@@ -1,15 +0,0 @@
-param NumSizes := 10 ;
-
-param Capacity := 200000 ;
-
-param DemandsFirstStage := 1 2500 2 7500 3 12500 4 10000 5 35000 6 25000 7 15000 8 12500 9 12500 10 5000 ;
-
-param DemandsSecondStage := 1 1750 2 5250 3 8750 4 7000 5 24500 6 17500 7 10500 8 8750 9 8750 10 3500 ;
-
-param UnitProductionCosts := 1 0.748 2 0.7584 3 0.7688 4 0.7792 5 0.7896 6 0.8 7 0.8104 8 0.8208 9 0.8312 10 0.8416 ;
-
-param SetupCosts := 1 453 2 453 3 453 4 453 5 453 6 453 7 453 8 453 9 453 10 453;
-
-param UnitReductionCost := 0.008 ;
-
-
diff --git a/examples/pysp/sizes/SIZES3WithThreeBundles/Scenario2.dat b/examples/pysp/sizes/SIZES3WithThreeBundles/Scenario2.dat
deleted file mode 100644
index 5e4a5a02ba6..00000000000
--- a/examples/pysp/sizes/SIZES3WithThreeBundles/Scenario2.dat
+++ /dev/null
@@ -1,17 +0,0 @@
-#
-# Data for the one-period version of the SIZES optimization model.
-#
-
-param NumSizes := 10 ;
-
-param Capacity := 200000 ;
-
-param DemandsFirstStage := 1 2500 2 7500 3 12500 4 10000 5 35000 6 25000 7 15000 8 12500 9 12500 10 5000 ;
-
-param DemandsSecondStage := 1 2500 2 7500 3 12500 4 10000 5 35000 6 25000 7 15000 8 12500 9 12500 10 5000 ;
-
-param UnitProductionCosts := 1 0.748 2 0.7584 3 0.7688 4 0.7792 5 0.7896 6 0.8 7 0.8104 8 0.8208 9 0.8312 10 0.8416 ;
-
-param SetupCosts := 1 453 2 453 3 453 4 453 5 453 6 453 7 453 8 453 9 453 10 453;
-
-param UnitReductionCost := 0.008 ;
diff --git a/examples/pysp/sizes/SIZES3WithThreeBundles/Scenario3.dat b/examples/pysp/sizes/SIZES3WithThreeBundles/Scenario3.dat
deleted file mode 100644
index 2934d9776ec..00000000000
--- a/examples/pysp/sizes/SIZES3WithThreeBundles/Scenario3.dat
+++ /dev/null
@@ -1,15 +0,0 @@
-param NumSizes := 10 ;
-
-param Capacity := 200000 ;
-
-param DemandsFirstStage := 1 2500 2 7500 3 12500 4 10000 5 35000 6 25000 7 15000 8 12500 9 12500 10 5000 ;
-
-param DemandsSecondStage := 1 3250 2 9750 3 16250 4 13000 5 45500 6 32500 7 19500 8 16250 9 16250 10 6500 ;
-
-param UnitProductionCosts := 1 0.748 2 0.7584 3 0.7688 4 0.7792 5 0.7896 6 0.8 7 0.8104 8 0.8208 9 0.8312 10 0.8416 ;
-
-param SetupCosts := 1 453 2 453 3 453 4 453 5 453 6 453 7 453 8 453 9 453 10 453;
-
-param UnitReductionCost := 0.008 ;
-
-
diff --git a/examples/pysp/sizes/SIZES3WithThreeBundles/ScenarioStructure.dat b/examples/pysp/sizes/SIZES3WithThreeBundles/ScenarioStructure.dat
deleted file mode 100644
index 376ef90d132..00000000000
--- a/examples/pysp/sizes/SIZES3WithThreeBundles/ScenarioStructure.dat
+++ /dev/null
@@ -1,52 +0,0 @@
-# IMPORTANT - THE STAGES ARE ASSUMED TO BE IN TIME-ORDER.
-
-set Stages := FirstStage SecondStage ;
-
-set Nodes := RootNode
- Scenario1Node
- Scenario2Node
- Scenario3Node ;
-
-param NodeStage := RootNode FirstStage
- Scenario1Node SecondStage
- Scenario2Node SecondStage
- Scenario3Node SecondStage ;
-
-
-set Children[RootNode] := Scenario1Node
- Scenario2Node
- Scenario3Node ;
-
-param ConditionalProbability := RootNode 1.0
- Scenario1Node 0.333333333
- Scenario2Node 0.333333333
- Scenario3Node 0.333333334 ;
-
-set Scenarios := Scenario1
- Scenario2
- Scenario3 ;
-
-param ScenarioLeafNode := Scenario1 Scenario1Node
- Scenario2 Scenario2Node
- Scenario3 Scenario3Node ;
-
-set StageVariables[FirstStage] := ProduceSizeFirstStage[*]
- NumProducedFirstStage[*]
- NumUnitsCutFirstStage[*,*] ;
-set StageVariables[SecondStage] := ProduceSizeSecondStage[*]
- NumProducedSecondStage[*]
- NumUnitsCutSecondStage[*,*] ;
-
-param StageCost := FirstStage FirstStageCost
- SecondStage SecondStageCost ;
-
-param Bundling := True ;
-
-set Bundles := Bundle1
-Bundle2
-Bundle3
-;
-
-set BundleScenarios[Bundle1] := Scenario1 ;
-set BundleScenarios[Bundle2] := Scenario2 ;
-set BundleScenarios[Bundle3] := Scenario3 ;
diff --git a/examples/pysp/sizes/SMPS/README.txt b/examples/pysp/sizes/SMPS/README.txt
deleted file mode 100644
index f604aef4017..00000000000
--- a/examples/pysp/sizes/SMPS/README.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-This is the original set of files from Woodruff for the SIZES SMPS.
-"sizes.mps" is the deterministic equivalent for SIZES10.
-"sizes.sto" specifies the scenarios for SIZES10.
diff --git a/examples/pysp/sizes/SMPS/sizes.cor b/examples/pysp/sizes/SMPS/sizes.cor
deleted file mode 100644
index 9b4b59d5639..00000000000
--- a/examples/pysp/sizes/SMPS/sizes.cor
+++ /dev/null
@@ -1,550 +0,0 @@
-NAME SIZES FREE
-* This is the core file for the 10 scenario sizes problem as described in
-*
-* Jorjani, S., C.H. Scott and D.L. Woodruff
-* Optimal Selection of Subsets of Sizes for Production,
-* International Journal of Production Research, 37, 3697-3710, 1999.
-*
-* and
-*
-* A. L{\o}kketangen and D. L. Woodruff,
-* "Progressive Hedging and Tabu Search Applied to Mixed Integer (0,1) Multistage
-* Stochastic Programming",
-* Journal of Heuristics, 1996, Vol 2, Pages 111-128.
-*
-* dlwoodruff@ucdavis.edu and Arne.Lokketangen@himolde.no
-*
-* See also:
-* Caroe, C.C. and Schultz, R.,
-* "Dual Decomposition in Stochastic Integer Programming",
-* Operations Research Letters, 1999, Vol 24, Pages 37-45.
-*
-* production is in thousands
-* extension of Jorjani and Scott by Woodruff
-* VARNAMEiijjtt
-* all indexes are one based
-ROWS
- N OBJ
- G D01JJ01
- G D02JJ01
- G D03JJ01
- G D04JJ01
- G D05JJ01
- G D06JJ01
- G D07JJ01
- G D08JJ01
- G D09JJ01
- G D10JJ01
- L P01JJ01
- L P02JJ01
- L P03JJ01
- L P04JJ01
- L P05JJ01
- L P06JJ01
- L P07JJ01
- L P08JJ01
- L P09JJ01
- L P10JJ01
- L S01JJ01
- L S02JJ01
- L S03JJ01
- L S04JJ01
- L S05JJ01
- L S06JJ01
- L S07JJ01
- L S08JJ01
- L S09JJ01
- L S10JJ01
- L CIIJJ01
- G D01JJ02
- G D02JJ02
- G D03JJ02
- G D04JJ02
- G D05JJ02
- G D06JJ02
- G D07JJ02
- G D08JJ02
- G D09JJ02
- G D10JJ02
- L P01JJ02
- L P02JJ02
- L P03JJ02
- L P04JJ02
- L P05JJ02
- L P06JJ02
- L P07JJ02
- L P08JJ02
- L P09JJ02
- L P10JJ02
- L S01JJ02
- L S02JJ02
- L S03JJ02
- L S04JJ02
- L S05JJ02
- L S06JJ02
- L S07JJ02
- L S08JJ02
- L S09JJ02
- L S10JJ02
- L CIIJJ02
-COLUMNS
- INT01 'MARKER' 'INTORG'
- Z01JJ01 OBJ 453.0 S01JJ01 -201.0
- Z02JJ01 OBJ 453.0 S02JJ01 -201.0
- Z03JJ01 OBJ 453.0 S03JJ01 -201.0
- Z04JJ01 OBJ 453.0 S04JJ01 -201.0
- Z05JJ01 OBJ 453.0 S05JJ01 -201.0
- Z06JJ01 OBJ 453.0 S06JJ01 -201.0
- Z07JJ01 OBJ 453.0 S07JJ01 -201.0
- Z08JJ01 OBJ 453.0 S08JJ01 -201.0
- Z09JJ01 OBJ 453.0 S09JJ01 -201.0
- Z10JJ01 OBJ 453.0 S10JJ01 -201.0
- INT01 'MARKER' 'INTEND'
- Y01JJ01 OBJ 748.0 S01JJ01 1.0
- Y01JJ01 CIIJJ01 1.0
- Y01JJ01 P01JJ01 -1.0 P01JJ02 -1.0
- Y02JJ01 OBJ 758.4 S02JJ01 1.0
- Y02JJ01 P02JJ01 -1.0 P02JJ02 -1.0
- Y02JJ01 CIIJJ01 1.0
- Y03JJ01 OBJ 768.8 S03JJ01 1.0
- Y03JJ01 P03JJ01 -1.0 P03JJ02 -1.0
- Y03JJ01 CIIJJ01 1.0
- Y04JJ01 OBJ 779.2 S04JJ01 1.0
- Y04JJ01 P04JJ01 -1.0 P04JJ02 -1.0
- Y04JJ01 CIIJJ01 1.0
- Y05JJ01 OBJ 789.6 S05JJ01 1.0
- Y05JJ01 P05JJ01 -1.0 P05JJ02 -1.0
- Y05JJ01 CIIJJ01 1.0
- Y06JJ01 OBJ 800.0 S06JJ01 1.0
- Y06JJ01 P06JJ01 -1.0 P06JJ02 -1.0
- Y06JJ01 CIIJJ01 1.0
- Y07JJ01 OBJ 810.4 S07JJ01 1.0
- Y07JJ01 P07JJ01 -1.0 P07JJ02 -1.0
- Y07JJ01 CIIJJ01 1.0
- Y08JJ01 OBJ 820.8 S08JJ01 1.0
- Y08JJ01 P08JJ01 -1.0 P08JJ02 -1.0
- Y08JJ01 CIIJJ01 1.0
- Y09JJ01 OBJ 831.2 S09JJ01 1.0
- Y09JJ01 P09JJ01 -1.0 P09JJ02 -1.0
- Y09JJ01 CIIJJ01 1.0
- Y10JJ01 OBJ 841.6 S10JJ01 1.0
- Y10JJ01 P10JJ01 -1.0 P10JJ02 -1.0
- Y10JJ01 CIIJJ01 1.0
- X010101 D01JJ01 1.0
- X010101 P01JJ01 1.0
- X010101 P01JJ02 1.0
- X020201 D02JJ01 1.0
- X020201 P02JJ01 1.0
- X020201 P02JJ02 1.0
- X020101 OBJ 8.0
- X020101 D01JJ01 1.0
- X020101 P02JJ01 1.0
- X020101 P02JJ02 1.0
- X030301 D03JJ01 1.0
- X030301 P03JJ01 1.0
- X030301 P03JJ02 1.0
- X030201 OBJ 8.0
- X030201 D02JJ01 1.0
- X030201 P03JJ01 1.0
- X030201 P03JJ02 1.0
- X030101 OBJ 8.0
- X030101 D01JJ01 1.0
- X030101 P03JJ01 1.0
- X030101 P03JJ02 1.0
- X040401 D04JJ01 1.0
- X040401 P04JJ01 1.0
- X040401 P04JJ02 1.0
- X040301 OBJ 8.0
- X040301 D03JJ01 1.0
- X040301 P04JJ01 1.0
- X040301 P04JJ02 1.0
- X040201 OBJ 8.0
- X040201 D02JJ01 1.0
- X040201 P04JJ01 1.0
- X040201 P04JJ02 1.0
- X040101 OBJ 8.0
- X040101 D01JJ01 1.0
- X040101 P04JJ01 1.0
- X040101 P04JJ02 1.0
- X050501 D05JJ01 1.0
- X050501 P05JJ01 1.0
- X050501 P05JJ02 1.0
- X050401 OBJ 8.0
- X050401 D04JJ01 1.0
- X050401 P05JJ01 1.0
- X050401 P05JJ02 1.0
- X050301 OBJ 8.0
- X050301 D03JJ01 1.0
- X050301 P05JJ01 1.0
- X050301 P05JJ02 1.0
- X050201 OBJ 8.0
- X050201 D02JJ01 1.0
- X050201 P05JJ01 1.0
- X050201 P05JJ02 1.0
- X050101 OBJ 8.0
- X050101 D01JJ01 1.0
- X050101 P05JJ01 1.0
- X050101 P05JJ02 1.0
- X060601 D06JJ01 1.0
- X060601 P06JJ01 1.0
- X060601 P06JJ02 1.0
- X060501 OBJ 8.0
- X060501 D05JJ01 1.0
- X060501 P06JJ01 1.0
- X060501 P06JJ02 1.0
- X060401 OBJ 8.0
- X060401 D04JJ01 1.0
- X060401 P06JJ01 1.0
- X060401 P06JJ02 1.0
- X060301 OBJ 8.0
- X060301 D03JJ01 1.0
- X060301 P06JJ01 1.0
- X060301 P06JJ02 1.0
- X060201 OBJ 8.0
- X060201 D02JJ01 1.0
- X060201 P06JJ01 1.0
- X060201 P06JJ02 1.0
- X060101 OBJ 8.0
- X060101 D01JJ01 1.0
- X060101 P06JJ01 1.0
- X060101 P06JJ02 1.0
- X070701 D07JJ01 1.0
- X070701 P07JJ01 1.0
- X070701 P07JJ02 1.0
- X070601 OBJ 8.0
- X070601 D06JJ01 1.0
- X070601 P07JJ01 1.0
- X070601 P07JJ02 1.0
- X070501 OBJ 8.0
- X070501 D05JJ01 1.0
- X070501 P07JJ01 1.0
- X070501 P07JJ02 1.0
- X070401 OBJ 8.0
- X070401 D04JJ01 1.0
- X070401 P07JJ01 1.0
- X070401 P07JJ02 1.0
- X070301 OBJ 8.0
- X070301 D03JJ01 1.0
- X070301 P07JJ01 1.0
- X070301 P07JJ02 1.0
- X070201 OBJ 8.0
- X070201 D02JJ01 1.0
- X070201 P07JJ01 1.0
- X070201 P07JJ02 1.0
- X070101 OBJ 8.0
- X070101 D01JJ01 1.0
- X070101 P07JJ01 1.0
- X070101 P07JJ02 1.0
- X080801 D08JJ01 1.0
- X080801 P08JJ01 1.0
- X080801 P08JJ02 1.0
- X080701 OBJ 8.0
- X080701 D07JJ01 1.0
- X080701 P08JJ01 1.0
- X080701 P08JJ02 1.0
- X080601 OBJ 8.0
- X080601 D06JJ01 1.0
- X080601 P08JJ01 1.0
- X080601 P08JJ02 1.0
- X080501 OBJ 8.0
- X080501 D05JJ01 1.0
- X080501 P08JJ01 1.0
- X080501 P08JJ02 1.0
- X080401 OBJ 8.0
- X080401 D04JJ01 1.0
- X080401 P08JJ01 1.0
- X080401 P08JJ02 1.0
- X080301 OBJ 8.0
- X080301 D03JJ01 1.0
- X080301 P08JJ01 1.0
- X080301 P08JJ02 1.0
- X080201 OBJ 8.0
- X080201 D02JJ01 1.0
- X080201 P08JJ01 1.0
- X080201 P08JJ02 1.0
- X080101 OBJ 8.0
- X080101 D01JJ01 1.0
- X080101 P08JJ01 1.0
- X080101 P08JJ02 1.0
- X090901 D09JJ01 1.0
- X090901 P09JJ01 1.0
- X090901 P09JJ02 1.0
- X090801 OBJ 8.0
- X090801 D08JJ01 1.0
- X090801 P09JJ01 1.0
- X090801 P09JJ02 1.0
- X090701 OBJ 8.0
- X090701 D07JJ01 1.0
- X090701 P09JJ01 1.0
- X090701 P09JJ02 1.0
- X090601 OBJ 8.0
- X090601 D06JJ01 1.0
- X090601 P09JJ01 1.0
- X090601 P09JJ02 1.0
- X090501 OBJ 8.0
- X090501 D05JJ01 1.0
- X090501 P09JJ01 1.0
- X090501 P09JJ02 1.0
- X090401 OBJ 8.0
- X090401 D04JJ01 1.0
- X090401 P09JJ01 1.0
- X090401 P09JJ02 1.0
- X090301 OBJ 8.0
- X090301 D03JJ01 1.0
- X090301 P09JJ01 1.0
- X090301 P09JJ02 1.0
- X090201 OBJ 8.0
- X090201 D02JJ01 1.0
- X090201 P09JJ01 1.0
- X090201 P09JJ02 1.0
- X090101 OBJ 8.0
- X090101 D01JJ01 1.0
- X090101 P09JJ01 1.0
- X090101 P09JJ02 1.0
- X101001 D10JJ01 1.0
- X101001 P10JJ01 1.0
- X101001 P10JJ02 1.0
- X100901 OBJ 8.0
- X100901 D09JJ01 1.0
- X100901 P10JJ01 1.0
- X100901 P10JJ02 1.0
- X100801 OBJ 8.0
- X100801 D08JJ01 1.0
- X100801 P10JJ01 1.0
- X100801 P10JJ02 1.0
- X100701 OBJ 8.0
- X100701 D07JJ01 1.0
- X100701 P10JJ01 1.0
- X100701 P10JJ02 1.0
- X100601 OBJ 8.0
- X100601 D06JJ01 1.0
- X100601 P10JJ01 1.0
- X100601 P10JJ02 1.0
- X100501 OBJ 8.0
- X100501 D05JJ01 1.0
- X100501 P10JJ01 1.0
- X100501 P10JJ02 1.0
- X100401 OBJ 8.0
- X100401 D04JJ01 1.0
- X100401 P10JJ01 1.0
- X100401 P10JJ02 1.0
- X100301 OBJ 8.0
- X100301 D03JJ01 1.0
- X100301 P10JJ01 1.0
- X100301 P10JJ02 1.0
- X100201 OBJ 8.0
- X100201 D02JJ01 1.0
- X100201 P10JJ01 1.0
- X100201 P10JJ02 1.0
- X100101 OBJ 8.0
- X100101 D01JJ01 1.0
- X100101 P10JJ01 1.0
- X100101 P10JJ02 1.0
- INT02 'MARKER' 'INTORG'
- Z01JJ02 OBJ 453.0 S01JJ02 -201.0
- Z02JJ02 OBJ 453.0 S02JJ02 -201.0
- Z03JJ02 OBJ 453.0 S03JJ02 -201.0
- Z04JJ02 OBJ 453.0 S04JJ02 -201.0
- Z05JJ02 OBJ 453.0 S05JJ02 -201.0
- Z06JJ02 OBJ 453.0 S06JJ02 -201.0
- Z07JJ02 OBJ 453.0 S07JJ02 -201.0
- Z08JJ02 OBJ 453.0 S08JJ02 -201.0
- Z09JJ02 OBJ 453.0 S09JJ02 -201.0
- Z10JJ02 OBJ 453.0 S10JJ02 -201.0
- INT02 'MARKER' 'INTEND'
- Y01JJ02 OBJ 748.0 S01JJ02 1.0
- Y01JJ02 CIIJJ02 1.0
- Y01JJ02 P01JJ02 -1.0
- Y02JJ02 OBJ 758.4 S02JJ02 1.0
- Y02JJ02 P02JJ02 -1.0
- Y02JJ02 CIIJJ02 1.0
- Y03JJ02 OBJ 768.8 S03JJ02 1.0
- Y03JJ02 P03JJ02 -1.0
- Y03JJ02 CIIJJ02 1.0
- Y04JJ02 OBJ 779.2 S04JJ02 1.0
- Y04JJ02 P04JJ02 -1.0
- Y04JJ02 CIIJJ02 1.0
- Y05JJ02 OBJ 789.6 S05JJ02 1.0
- Y05JJ02 P05JJ02 -1.0
- Y05JJ02 CIIJJ02 1.0
- Y06JJ02 OBJ 800.0 S06JJ02 1.0
- Y06JJ02 P06JJ02 -1.0
- Y06JJ02 CIIJJ02 1.0
- Y07JJ02 OBJ 810.4 S07JJ02 1.0
- Y07JJ02 P07JJ02 -1.0
- Y07JJ02 CIIJJ02 1.0
- Y08JJ02 OBJ 820.8 S08JJ02 1.0
- Y08JJ02 P08JJ02 -1.0
- Y08JJ02 CIIJJ02 1.0
- Y09JJ02 OBJ 831.2 S09JJ02 1.0
- Y09JJ02 P09JJ02 -1.0
- Y09JJ02 CIIJJ02 1.0
- Y10JJ02 OBJ 841.6 S10JJ02 1.0
- Y10JJ02 P10JJ02 -1.0
- Y10JJ02 CIIJJ02 1.0
- X010102 D01JJ02 1.0 P01JJ02 1.0
- X020202 D02JJ02 1.0 P02JJ02 1.0
- X020102 OBJ 8.0
- X020102 D01JJ02 1.0 P02JJ02 1.0
- X030302 D03JJ02 1.0 P03JJ02 1.0
- X030202 OBJ 8.0
- X030202 D02JJ02 1.0 P03JJ02 1.0
- X030102 OBJ 8.0
- X030102 D01JJ02 1.0 P03JJ02 1.0
- X040402 D04JJ02 1.0 P04JJ02 1.0
- X040302 OBJ 8.0
- X040302 D03JJ02 1.0 P04JJ02 1.0
- X040202 OBJ 8.0
- X040202 D02JJ02 1.0 P04JJ02 1.0
- X040102 OBJ 8.0
- X040102 D01JJ02 1.0 P04JJ02 1.0
- X050502 D05JJ02 1.0 P05JJ02 1.0
- X050402 OBJ 8.0
- X050402 D04JJ02 1.0 P05JJ02 1.0
- X050302 OBJ 8.0
- X050302 D03JJ02 1.0 P05JJ02 1.0
- X050202 OBJ 8.0
- X050202 D02JJ02 1.0 P05JJ02 1.0
- X050102 OBJ 8.0
- X050102 D01JJ02 1.0 P05JJ02 1.0
- X060602 D06JJ02 1.0 P06JJ02 1.0
- X060502 OBJ 8.0
- X060502 D05JJ02 1.0 P06JJ02 1.0
- X060402 OBJ 8.0
- X060402 D04JJ02 1.0 P06JJ02 1.0
- X060302 OBJ 8.0
- X060302 D03JJ02 1.0 P06JJ02 1.0
- X060202 OBJ 8.0
- X060202 D02JJ02 1.0 P06JJ02 1.0
- X060102 OBJ 8.0
- X060102 D01JJ02 1.0 P06JJ02 1.0
- X070702 D07JJ02 1.0 P07JJ02 1.0
- X070602 OBJ 8.0
- X070602 D06JJ02 1.0 P07JJ02 1.0
- X070502 OBJ 8.0
- X070502 D05JJ02 1.0 P07JJ02 1.0
- X070402 OBJ 8.0
- X070402 D04JJ02 1.0 P07JJ02 1.0
- X070302 OBJ 8.0
- X070302 D03JJ02 1.0 P07JJ02 1.0
- X070202 OBJ 8.0
- X070202 D02JJ02 1.0 P07JJ02 1.0
- X070102 OBJ 8.0
- X070102 D01JJ02 1.0 P07JJ02 1.0
- X080802 D08JJ02 1.0 P08JJ02 1.0
- X080702 OBJ 8.0
- X080702 D07JJ02 1.0 P08JJ02 1.0
- X080602 OBJ 8.0
- X080602 D06JJ02 1.0 P08JJ02 1.0
- X080502 OBJ 8.0
- X080502 D05JJ02 1.0 P08JJ02 1.0
- X080402 OBJ 8.0
- X080402 D04JJ02 1.0 P08JJ02 1.0
- X080302 OBJ 8.0
- X080302 D03JJ02 1.0 P08JJ02 1.0
- X080202 OBJ 8.0
- X080202 D02JJ02 1.0 P08JJ02 1.0
- X080102 OBJ 8.0
- X080102 D01JJ02 1.0 P08JJ02 1.0
- X090902 D09JJ02 1.0 P09JJ02 1.0
- X090802 OBJ 8.0
- X090802 D08JJ02 1.0 P09JJ02 1.0
- X090702 OBJ 8.0
- X090702 D07JJ02 1.0 P09JJ02 1.0
- X090602 OBJ 8.0
- X090602 D06JJ02 1.0 P09JJ02 1.0
- X090502 OBJ 8.0
- X090502 D05JJ02 1.0 P09JJ02 1.0
- X090402 OBJ 8.0
- X090402 D04JJ02 1.0 P09JJ02 1.0
- X090302 OBJ 8.0
- X090302 D03JJ02 1.0 P09JJ02 1.0
- X090202 OBJ 8.0
- X090202 D02JJ02 1.0 P09JJ02 1.0
- X090102 OBJ 8.0
- X090102 D01JJ02 1.0 P09JJ02 1.0
- X101002 D10JJ02 1.0 P10JJ02 1.0
- X100902 OBJ 8.0
- X100902 D09JJ02 1.0 P10JJ02 1.0
- X100802 OBJ 8.0
- X100802 D08JJ02 1.0 P10JJ02 1.0
- X100702 OBJ 8.0
- X100702 D07JJ02 1.0 P10JJ02 1.0
- X100602 OBJ 8.0
- X100602 D06JJ02 1.0 P10JJ02 1.0
- X100502 OBJ 8.0
- X100502 D05JJ02 1.0 P10JJ02 1.0
- X100402 OBJ 8.0
- X100402 D04JJ02 1.0 P10JJ02 1.0
- X100302 OBJ 8.0
- X100302 D03JJ02 1.0 P10JJ02 1.0
- X100202 OBJ 8.0
- X100202 D02JJ02 1.0 P10JJ02 1.0
- X100102 OBJ 8.0
- X100102 D01JJ02 1.0 P10JJ02 1.0
-RHS
- RHS1 D01JJ01 2.500
- RHS1 D02JJ01 7.5000
- RHS1 D03JJ01 12.5000
- RHS1 D04JJ01 10.0000
- RHS1 D05JJ01 35.0000
- RHS1 D06JJ01 25.0000
- RHS1 D07JJ01 15.0000
- RHS1 D08JJ01 12.5000
- RHS1 D09JJ01 12.5000
- RHS1 D10JJ01 5.0000
- RHS1 P01JJ01 0.0
- RHS1 P02JJ01 0.0
- RHS1 P03JJ01 0.0
- RHS1 P04JJ01 0.0
- RHS1 P05JJ01 0.0
- RHS1 P06JJ01 0.0
- RHS1 P07JJ01 0.0
- RHS1 P08JJ01 0.0
- RHS1 P09JJ01 0.0
- RHS1 P10JJ01 0.0
- RHS1 CIIJJ01 200.0000
- RHS1 D01JJ02 2.5000
- RHS1 D02JJ02 7.5000
- RHS1 D03JJ02 12.5000
- RHS1 D04JJ02 10.0000
- RHS1 D05JJ02 35.0000
- RHS1 D06JJ02 25.0000
- RHS1 D07JJ02 15.0000
- RHS1 D08JJ02 12.5000
- RHS1 D09JJ02 12.5000
- RHS1 D10JJ02 5.0000
- RHS1 P01JJ02 0.0
- RHS1 P02JJ02 0.0
- RHS1 P03JJ02 0.0
- RHS1 P04JJ02 0.0
- RHS1 P05JJ02 0.0
- RHS1 P06JJ02 0.0
- RHS1 P07JJ02 0.0
- RHS1 P08JJ02 0.0
- RHS1 P09JJ02 0.0
- RHS1 P10JJ02 0.0
- RHS1 CIIJJ02 200.0000
-BOUNDS
-* UP BND1 'IMPLICIT' 200.0
- BV BND1 Z01JJ01 0.0
- BV BND1 Z02JJ01 0.0
- BV BND1 Z03JJ01 0.0
- BV BND1 Z04JJ01 0.0
- BV BND1 Z05JJ01 0.0
- BV BND1 Z06JJ01 0.0
- BV BND1 Z07JJ01 0.0
- BV BND1 Z08JJ01 0.0
- BV BND1 Z09JJ01 0.0
- BV BND1 Z10JJ01 0.0
- BV BND1 Z01JJ02 0.0
- BV BND1 Z02JJ02 0.0
- BV BND1 Z03JJ02 0.0
- BV BND1 Z04JJ02 0.0
- BV BND1 Z05JJ02 0.0
- BV BND1 Z06JJ02 0.0
- BV BND1 Z07JJ02 0.0
- BV BND1 Z08JJ02 0.0
- BV BND1 Z09JJ02 0.0
- BV BND1 Z10JJ02 0.0
-ENDATA
diff --git a/examples/pysp/sizes/SMPS/sizes.mps b/examples/pysp/sizes/SMPS/sizes.mps
deleted file mode 100644
index f1b4ab68b69..00000000000
--- a/examples/pysp/sizes/SMPS/sizes.mps
+++ /dev/null
@@ -1,3855 +0,0 @@
-NAME SIZES FREE
-* Generated from sizes.cor, sizes.sto and sizes.tim
-*
-* This is the deterministic equivalent generated for the 10 scenario sizes problem
-* as described in
-*
-* A. L{\o}kketangen and D. L. Woodruff,
-* "Progressive Hedging and Tabu Search Applied to Mixed Integer (0,1)
-* Multistage Stochastic Programming",
-* Journal of Heuristics, 1996, Vol 2, Pages 111-128.
-*
-* dlwoodruff@ucdavis.edu and Arne.Lokketangen@himolde.no
-*
-* See also:
-* Caroe, C.C. and Schultz, R.,
-* "Dual Decomposition in Stochastic Integer Programming",
-* Operations Research Letters, 1999, Vol 24, Pages 37-45.
-*
-* Stochmip_Scenario_Problem::Write_Deterministic_Equivalent(determ.mps)
-* First char, 4 digits for original index, 3 digits for scen.
-ROWS
- N O0000RRR
- G D0001RRR
- G D0002RRR
- G D0003RRR
- G D0004RRR
- G D0005RRR
- G D0006RRR
- G D0007RRR
- G D0008RRR
- G D0009RRR
- G D0010RRR
- L P0011RRR
- L P0012RRR
- L P0013RRR
- L P0014RRR
- L P0015RRR
- L P0016RRR
- L P0017RRR
- L P0018RRR
- L P0019RRR
- L P0020RRR
- L S0021RRR
- L S0022RRR
- L S0023RRR
- L S0024RRR
- L S0025RRR
- L S0026RRR
- L S0027RRR
- L S0028RRR
- L S0029RRR
- L S0030RRR
- L C0031RRR
- G D0032000
- G D0033000
- G D0034000
- G D0035000
- G D0036000
- G D0037000
- G D0038000
- G D0039000
- G D0040000
- G D0041000
- L P0042000
- L P0043000
- L P0044000
- L P0045000
- L P0046000
- L P0047000
- L P0048000
- L P0049000
- L P0050000
- L P0051000
- L S0052000
- L S0053000
- L S0054000
- L S0055000
- L S0056000
- L S0057000
- L S0058000
- L S0059000
- L S0060000
- L S0061000
- L C0062000
- G D0032001
- G D0033001
- G D0034001
- G D0035001
- G D0036001
- G D0037001
- G D0038001
- G D0039001
- G D0040001
- G D0041001
- L P0042001
- L P0043001
- L P0044001
- L P0045001
- L P0046001
- L P0047001
- L P0048001
- L P0049001
- L P0050001
- L P0051001
- L S0052001
- L S0053001
- L S0054001
- L S0055001
- L S0056001
- L S0057001
- L S0058001
- L S0059001
- L S0060001
- L S0061001
- L C0062001
- G D0032002
- G D0033002
- G D0034002
- G D0035002
- G D0036002
- G D0037002
- G D0038002
- G D0039002
- G D0040002
- G D0041002
- L P0042002
- L P0043002
- L P0044002
- L P0045002
- L P0046002
- L P0047002
- L P0048002
- L P0049002
- L P0050002
- L P0051002
- L S0052002
- L S0053002
- L S0054002
- L S0055002
- L S0056002
- L S0057002
- L S0058002
- L S0059002
- L S0060002
- L S0061002
- L C0062002
- G D0032003
- G D0033003
- G D0034003
- G D0035003
- G D0036003
- G D0037003
- G D0038003
- G D0039003
- G D0040003
- G D0041003
- L P0042003
- L P0043003
- L P0044003
- L P0045003
- L P0046003
- L P0047003
- L P0048003
- L P0049003
- L P0050003
- L P0051003
- L S0052003
- L S0053003
- L S0054003
- L S0055003
- L S0056003
- L S0057003
- L S0058003
- L S0059003
- L S0060003
- L S0061003
- L C0062003
- G D0032004
- G D0033004
- G D0034004
- G D0035004
- G D0036004
- G D0037004
- G D0038004
- G D0039004
- G D0040004
- G D0041004
- L P0042004
- L P0043004
- L P0044004
- L P0045004
- L P0046004
- L P0047004
- L P0048004
- L P0049004
- L P0050004
- L P0051004
- L S0052004
- L S0053004
- L S0054004
- L S0055004
- L S0056004
- L S0057004
- L S0058004
- L S0059004
- L S0060004
- L S0061004
- L C0062004
- G D0032005
- G D0033005
- G D0034005
- G D0035005
- G D0036005
- G D0037005
- G D0038005
- G D0039005
- G D0040005
- G D0041005
- L P0042005
- L P0043005
- L P0044005
- L P0045005
- L P0046005
- L P0047005
- L P0048005
- L P0049005
- L P0050005
- L P0051005
- L S0052005
- L S0053005
- L S0054005
- L S0055005
- L S0056005
- L S0057005
- L S0058005
- L S0059005
- L S0060005
- L S0061005
- L C0062005
- G D0032006
- G D0033006
- G D0034006
- G D0035006
- G D0036006
- G D0037006
- G D0038006
- G D0039006
- G D0040006
- G D0041006
- L P0042006
- L P0043006
- L P0044006
- L P0045006
- L P0046006
- L P0047006
- L P0048006
- L P0049006
- L P0050006
- L P0051006
- L S0052006
- L S0053006
- L S0054006
- L S0055006
- L S0056006
- L S0057006
- L S0058006
- L S0059006
- L S0060006
- L S0061006
- L C0062006
- G D0032007
- G D0033007
- G D0034007
- G D0035007
- G D0036007
- G D0037007
- G D0038007
- G D0039007
- G D0040007
- G D0041007
- L P0042007
- L P0043007
- L P0044007
- L P0045007
- L P0046007
- L P0047007
- L P0048007
- L P0049007
- L P0050007
- L P0051007
- L S0052007
- L S0053007
- L S0054007
- L S0055007
- L S0056007
- L S0057007
- L S0058007
- L S0059007
- L S0060007
- L S0061007
- L C0062007
- G D0032008
- G D0033008
- G D0034008
- G D0035008
- G D0036008
- G D0037008
- G D0038008
- G D0039008
- G D0040008
- G D0041008
- L P0042008
- L P0043008
- L P0044008
- L P0045008
- L P0046008
- L P0047008
- L P0048008
- L P0049008
- L P0050008
- L P0051008
- L S0052008
- L S0053008
- L S0054008
- L S0055008
- L S0056008
- L S0057008
- L S0058008
- L S0059008
- L S0060008
- L S0061008
- L C0062008
- G D0032009
- G D0033009
- G D0034009
- G D0035009
- G D0036009
- G D0037009
- G D0038009
- G D0039009
- G D0040009
- G D0041009
- L P0042009
- L P0043009
- L P0044009
- L P0045009
- L P0046009
- L P0047009
- L P0048009
- L P0049009
- L P0050009
- L P0051009
- L S0052009
- L S0053009
- L S0054009
- L S0055009
- L S0056009
- L S0057009
- L S0058009
- L S0059009
- L S0060009
- L S0061009
- L C0062009
-COLUMNS
- INT0001 'MARKER' 'INTORG'
- Z0000CCC O0000RRR 453
- Z0000CCC S0021RRR -201
- Z0001CCC O0000RRR 453
- Z0001CCC S0022RRR -201
- Z0002CCC O0000RRR 453
- Z0002CCC S0023RRR -201
- Z0003CCC O0000RRR 453
- Z0003CCC S0024RRR -201
- Z0004CCC O0000RRR 453
- Z0004CCC S0025RRR -201
- Z0005CCC O0000RRR 453
- Z0005CCC S0026RRR -201
- Z0006CCC O0000RRR 453
- Z0006CCC S0027RRR -201
- Z0007CCC O0000RRR 453
- Z0007CCC S0028RRR -201
- Z0008CCC O0000RRR 453
- Z0008CCC S0029RRR -201
- Z0009CCC O0000RRR 453
- Z0009CCC S0030RRR -201
- INT0001 'MARKER' 'INTEND'
- Y0010CCC O0000RRR 748
- Y0010CCC P0011RRR -1
- Y0010CCC S0021RRR 1
- Y0010CCC C0031RRR 1
- Y0010CCC P0042000 -1
- Y0010CCC P0042001 -1
- Y0010CCC P0042002 -1
- Y0010CCC P0042003 -1
- Y0010CCC P0042004 -1
- Y0010CCC P0042005 -1
- Y0010CCC P0042006 -1
- Y0010CCC P0042007 -1
- Y0010CCC P0042008 -1
- Y0010CCC P0042009 -1
- Y0011CCC O0000RRR 758.4
- Y0011CCC P0012RRR -1
- Y0011CCC S0022RRR 1
- Y0011CCC C0031RRR 1
- Y0011CCC P0043000 -1
- Y0011CCC P0043001 -1
- Y0011CCC P0043002 -1
- Y0011CCC P0043003 -1
- Y0011CCC P0043004 -1
- Y0011CCC P0043005 -1
- Y0011CCC P0043006 -1
- Y0011CCC P0043007 -1
- Y0011CCC P0043008 -1
- Y0011CCC P0043009 -1
- Y0012CCC O0000RRR 768.8
- Y0012CCC P0013RRR -1
- Y0012CCC S0023RRR 1
- Y0012CCC C0031RRR 1
- Y0012CCC P0044000 -1
- Y0012CCC P0044001 -1
- Y0012CCC P0044002 -1
- Y0012CCC P0044003 -1
- Y0012CCC P0044004 -1
- Y0012CCC P0044005 -1
- Y0012CCC P0044006 -1
- Y0012CCC P0044007 -1
- Y0012CCC P0044008 -1
- Y0012CCC P0044009 -1
- Y0013CCC O0000RRR 779.2
- Y0013CCC P0014RRR -1
- Y0013CCC S0024RRR 1
- Y0013CCC C0031RRR 1
- Y0013CCC P0045000 -1
- Y0013CCC P0045001 -1
- Y0013CCC P0045002 -1
- Y0013CCC P0045003 -1
- Y0013CCC P0045004 -1
- Y0013CCC P0045005 -1
- Y0013CCC P0045006 -1
- Y0013CCC P0045007 -1
- Y0013CCC P0045008 -1
- Y0013CCC P0045009 -1
- Y0014CCC O0000RRR 789.6
- Y0014CCC P0015RRR -1
- Y0014CCC S0025RRR 1
- Y0014CCC C0031RRR 1
- Y0014CCC P0046000 -1
- Y0014CCC P0046001 -1
- Y0014CCC P0046002 -1
- Y0014CCC P0046003 -1
- Y0014CCC P0046004 -1
- Y0014CCC P0046005 -1
- Y0014CCC P0046006 -1
- Y0014CCC P0046007 -1
- Y0014CCC P0046008 -1
- Y0014CCC P0046009 -1
- Y0015CCC O0000RRR 800
- Y0015CCC P0016RRR -1
- Y0015CCC S0026RRR 1
- Y0015CCC C0031RRR 1
- Y0015CCC P0047000 -1
- Y0015CCC P0047001 -1
- Y0015CCC P0047002 -1
- Y0015CCC P0047003 -1
- Y0015CCC P0047004 -1
- Y0015CCC P0047005 -1
- Y0015CCC P0047006 -1
- Y0015CCC P0047007 -1
- Y0015CCC P0047008 -1
- Y0015CCC P0047009 -1
- Y0016CCC O0000RRR 810.4
- Y0016CCC P0017RRR -1
- Y0016CCC S0027RRR 1
- Y0016CCC C0031RRR 1
- Y0016CCC P0048000 -1
- Y0016CCC P0048001 -1
- Y0016CCC P0048002 -1
- Y0016CCC P0048003 -1
- Y0016CCC P0048004 -1
- Y0016CCC P0048005 -1
- Y0016CCC P0048006 -1
- Y0016CCC P0048007 -1
- Y0016CCC P0048008 -1
- Y0016CCC P0048009 -1
- Y0017CCC O0000RRR 820.8
- Y0017CCC P0018RRR -1
- Y0017CCC S0028RRR 1
- Y0017CCC C0031RRR 1
- Y0017CCC P0049000 -1
- Y0017CCC P0049001 -1
- Y0017CCC P0049002 -1
- Y0017CCC P0049003 -1
- Y0017CCC P0049004 -1
- Y0017CCC P0049005 -1
- Y0017CCC P0049006 -1
- Y0017CCC P0049007 -1
- Y0017CCC P0049008 -1
- Y0017CCC P0049009 -1
- Y0018CCC O0000RRR 831.2
- Y0018CCC P0019RRR -1
- Y0018CCC S0029RRR 1
- Y0018CCC C0031RRR 1
- Y0018CCC P0050000 -1
- Y0018CCC P0050001 -1
- Y0018CCC P0050002 -1
- Y0018CCC P0050003 -1
- Y0018CCC P0050004 -1
- Y0018CCC P0050005 -1
- Y0018CCC P0050006 -1
- Y0018CCC P0050007 -1
- Y0018CCC P0050008 -1
- Y0018CCC P0050009 -1
- Y0019CCC O0000RRR 841.6
- Y0019CCC P0020RRR -1
- Y0019CCC S0030RRR 1
- Y0019CCC C0031RRR 1
- Y0019CCC P0051000 -1
- Y0019CCC P0051001 -1
- Y0019CCC P0051002 -1
- Y0019CCC P0051003 -1
- Y0019CCC P0051004 -1
- Y0019CCC P0051005 -1
- Y0019CCC P0051006 -1
- Y0019CCC P0051007 -1
- Y0019CCC P0051008 -1
- Y0019CCC P0051009 -1
- X0020CCC D0001RRR 1
- X0020CCC P0011RRR 1
- X0020CCC P0042000 1
- X0020CCC P0042001 1
- X0020CCC P0042002 1
- X0020CCC P0042003 1
- X0020CCC P0042004 1
- X0020CCC P0042005 1
- X0020CCC P0042006 1
- X0020CCC P0042007 1
- X0020CCC P0042008 1
- X0020CCC P0042009 1
- X0021CCC D0002RRR 1
- X0021CCC P0012RRR 1
- X0021CCC P0043000 1
- X0021CCC P0043001 1
- X0021CCC P0043002 1
- X0021CCC P0043003 1
- X0021CCC P0043004 1
- X0021CCC P0043005 1
- X0021CCC P0043006 1
- X0021CCC P0043007 1
- X0021CCC P0043008 1
- X0021CCC P0043009 1
- X0022CCC O0000RRR 8
- X0022CCC D0001RRR 1
- X0022CCC P0012RRR 1
- X0022CCC P0043000 1
- X0022CCC P0043001 1
- X0022CCC P0043002 1
- X0022CCC P0043003 1
- X0022CCC P0043004 1
- X0022CCC P0043005 1
- X0022CCC P0043006 1
- X0022CCC P0043007 1
- X0022CCC P0043008 1
- X0022CCC P0043009 1
- X0023CCC D0003RRR 1
- X0023CCC P0013RRR 1
- X0023CCC P0044000 1
- X0023CCC P0044001 1
- X0023CCC P0044002 1
- X0023CCC P0044003 1
- X0023CCC P0044004 1
- X0023CCC P0044005 1
- X0023CCC P0044006 1
- X0023CCC P0044007 1
- X0023CCC P0044008 1
- X0023CCC P0044009 1
- X0024CCC O0000RRR 8
- X0024CCC D0002RRR 1
- X0024CCC P0013RRR 1
- X0024CCC P0044000 1
- X0024CCC P0044001 1
- X0024CCC P0044002 1
- X0024CCC P0044003 1
- X0024CCC P0044004 1
- X0024CCC P0044005 1
- X0024CCC P0044006 1
- X0024CCC P0044007 1
- X0024CCC P0044008 1
- X0024CCC P0044009 1
- X0025CCC O0000RRR 8
- X0025CCC D0001RRR 1
- X0025CCC P0013RRR 1
- X0025CCC P0044000 1
- X0025CCC P0044001 1
- X0025CCC P0044002 1
- X0025CCC P0044003 1
- X0025CCC P0044004 1
- X0025CCC P0044005 1
- X0025CCC P0044006 1
- X0025CCC P0044007 1
- X0025CCC P0044008 1
- X0025CCC P0044009 1
- X0026CCC D0004RRR 1
- X0026CCC P0014RRR 1
- X0026CCC P0045000 1
- X0026CCC P0045001 1
- X0026CCC P0045002 1
- X0026CCC P0045003 1
- X0026CCC P0045004 1
- X0026CCC P0045005 1
- X0026CCC P0045006 1
- X0026CCC P0045007 1
- X0026CCC P0045008 1
- X0026CCC P0045009 1
- X0027CCC O0000RRR 8
- X0027CCC D0003RRR 1
- X0027CCC P0014RRR 1
- X0027CCC P0045000 1
- X0027CCC P0045001 1
- X0027CCC P0045002 1
- X0027CCC P0045003 1
- X0027CCC P0045004 1
- X0027CCC P0045005 1
- X0027CCC P0045006 1
- X0027CCC P0045007 1
- X0027CCC P0045008 1
- X0027CCC P0045009 1
- X0028CCC O0000RRR 8
- X0028CCC D0002RRR 1
- X0028CCC P0014RRR 1
- X0028CCC P0045000 1
- X0028CCC P0045001 1
- X0028CCC P0045002 1
- X0028CCC P0045003 1
- X0028CCC P0045004 1
- X0028CCC P0045005 1
- X0028CCC P0045006 1
- X0028CCC P0045007 1
- X0028CCC P0045008 1
- X0028CCC P0045009 1
- X0029CCC O0000RRR 8
- X0029CCC D0001RRR 1
- X0029CCC P0014RRR 1
- X0029CCC P0045000 1
- X0029CCC P0045001 1
- X0029CCC P0045002 1
- X0029CCC P0045003 1
- X0029CCC P0045004 1
- X0029CCC P0045005 1
- X0029CCC P0045006 1
- X0029CCC P0045007 1
- X0029CCC P0045008 1
- X0029CCC P0045009 1
- X0030CCC D0005RRR 1
- X0030CCC P0015RRR 1
- X0030CCC P0046000 1
- X0030CCC P0046001 1
- X0030CCC P0046002 1
- X0030CCC P0046003 1
- X0030CCC P0046004 1
- X0030CCC P0046005 1
- X0030CCC P0046006 1
- X0030CCC P0046007 1
- X0030CCC P0046008 1
- X0030CCC P0046009 1
- X0031CCC O0000RRR 8
- X0031CCC D0004RRR 1
- X0031CCC P0015RRR 1
- X0031CCC P0046000 1
- X0031CCC P0046001 1
- X0031CCC P0046002 1
- X0031CCC P0046003 1
- X0031CCC P0046004 1
- X0031CCC P0046005 1
- X0031CCC P0046006 1
- X0031CCC P0046007 1
- X0031CCC P0046008 1
- X0031CCC P0046009 1
- X0032CCC O0000RRR 8
- X0032CCC D0003RRR 1
- X0032CCC P0015RRR 1
- X0032CCC P0046000 1
- X0032CCC P0046001 1
- X0032CCC P0046002 1
- X0032CCC P0046003 1
- X0032CCC P0046004 1
- X0032CCC P0046005 1
- X0032CCC P0046006 1
- X0032CCC P0046007 1
- X0032CCC P0046008 1
- X0032CCC P0046009 1
- X0033CCC O0000RRR 8
- X0033CCC D0002RRR 1
- X0033CCC P0015RRR 1
- X0033CCC P0046000 1
- X0033CCC P0046001 1
- X0033CCC P0046002 1
- X0033CCC P0046003 1
- X0033CCC P0046004 1
- X0033CCC P0046005 1
- X0033CCC P0046006 1
- X0033CCC P0046007 1
- X0033CCC P0046008 1
- X0033CCC P0046009 1
- X0034CCC O0000RRR 8
- X0034CCC D0001RRR 1
- X0034CCC P0015RRR 1
- X0034CCC P0046000 1
- X0034CCC P0046001 1
- X0034CCC P0046002 1
- X0034CCC P0046003 1
- X0034CCC P0046004 1
- X0034CCC P0046005 1
- X0034CCC P0046006 1
- X0034CCC P0046007 1
- X0034CCC P0046008 1
- X0034CCC P0046009 1
- X0035CCC D0006RRR 1
- X0035CCC P0016RRR 1
- X0035CCC P0047000 1
- X0035CCC P0047001 1
- X0035CCC P0047002 1
- X0035CCC P0047003 1
- X0035CCC P0047004 1
- X0035CCC P0047005 1
- X0035CCC P0047006 1
- X0035CCC P0047007 1
- X0035CCC P0047008 1
- X0035CCC P0047009 1
- X0036CCC O0000RRR 8
- X0036CCC D0005RRR 1
- X0036CCC P0016RRR 1
- X0036CCC P0047000 1
- X0036CCC P0047001 1
- X0036CCC P0047002 1
- X0036CCC P0047003 1
- X0036CCC P0047004 1
- X0036CCC P0047005 1
- X0036CCC P0047006 1
- X0036CCC P0047007 1
- X0036CCC P0047008 1
- X0036CCC P0047009 1
- X0037CCC O0000RRR 8
- X0037CCC D0004RRR 1
- X0037CCC P0016RRR 1
- X0037CCC P0047000 1
- X0037CCC P0047001 1
- X0037CCC P0047002 1
- X0037CCC P0047003 1
- X0037CCC P0047004 1
- X0037CCC P0047005 1
- X0037CCC P0047006 1
- X0037CCC P0047007 1
- X0037CCC P0047008 1
- X0037CCC P0047009 1
- X0038CCC O0000RRR 8
- X0038CCC D0003RRR 1
- X0038CCC P0016RRR 1
- X0038CCC P0047000 1
- X0038CCC P0047001 1
- X0038CCC P0047002 1
- X0038CCC P0047003 1
- X0038CCC P0047004 1
- X0038CCC P0047005 1
- X0038CCC P0047006 1
- X0038CCC P0047007 1
- X0038CCC P0047008 1
- X0038CCC P0047009 1
- X0039CCC O0000RRR 8
- X0039CCC D0002RRR 1
- X0039CCC P0016RRR 1
- X0039CCC P0047000 1
- X0039CCC P0047001 1
- X0039CCC P0047002 1
- X0039CCC P0047003 1
- X0039CCC P0047004 1
- X0039CCC P0047005 1
- X0039CCC P0047006 1
- X0039CCC P0047007 1
- X0039CCC P0047008 1
- X0039CCC P0047009 1
- X0040CCC O0000RRR 8
- X0040CCC D0001RRR 1
- X0040CCC P0016RRR 1
- X0040CCC P0047000 1
- X0040CCC P0047001 1
- X0040CCC P0047002 1
- X0040CCC P0047003 1
- X0040CCC P0047004 1
- X0040CCC P0047005 1
- X0040CCC P0047006 1
- X0040CCC P0047007 1
- X0040CCC P0047008 1
- X0040CCC P0047009 1
- X0041CCC D0007RRR 1
- X0041CCC P0017RRR 1
- X0041CCC P0048000 1
- X0041CCC P0048001 1
- X0041CCC P0048002 1
- X0041CCC P0048003 1
- X0041CCC P0048004 1
- X0041CCC P0048005 1
- X0041CCC P0048006 1
- X0041CCC P0048007 1
- X0041CCC P0048008 1
- X0041CCC P0048009 1
- X0042CCC O0000RRR 8
- X0042CCC D0006RRR 1
- X0042CCC P0017RRR 1
- X0042CCC P0048000 1
- X0042CCC P0048001 1
- X0042CCC P0048002 1
- X0042CCC P0048003 1
- X0042CCC P0048004 1
- X0042CCC P0048005 1
- X0042CCC P0048006 1
- X0042CCC P0048007 1
- X0042CCC P0048008 1
- X0042CCC P0048009 1
- X0043CCC O0000RRR 8
- X0043CCC D0005RRR 1
- X0043CCC P0017RRR 1
- X0043CCC P0048000 1
- X0043CCC P0048001 1
- X0043CCC P0048002 1
- X0043CCC P0048003 1
- X0043CCC P0048004 1
- X0043CCC P0048005 1
- X0043CCC P0048006 1
- X0043CCC P0048007 1
- X0043CCC P0048008 1
- X0043CCC P0048009 1
- X0044CCC O0000RRR 8
- X0044CCC D0004RRR 1
- X0044CCC P0017RRR 1
- X0044CCC P0048000 1
- X0044CCC P0048001 1
- X0044CCC P0048002 1
- X0044CCC P0048003 1
- X0044CCC P0048004 1
- X0044CCC P0048005 1
- X0044CCC P0048006 1
- X0044CCC P0048007 1
- X0044CCC P0048008 1
- X0044CCC P0048009 1
- X0045CCC O0000RRR 8
- X0045CCC D0003RRR 1
- X0045CCC P0017RRR 1
- X0045CCC P0048000 1
- X0045CCC P0048001 1
- X0045CCC P0048002 1
- X0045CCC P0048003 1
- X0045CCC P0048004 1
- X0045CCC P0048005 1
- X0045CCC P0048006 1
- X0045CCC P0048007 1
- X0045CCC P0048008 1
- X0045CCC P0048009 1
- X0046CCC O0000RRR 8
- X0046CCC D0002RRR 1
- X0046CCC P0017RRR 1
- X0046CCC P0048000 1
- X0046CCC P0048001 1
- X0046CCC P0048002 1
- X0046CCC P0048003 1
- X0046CCC P0048004 1
- X0046CCC P0048005 1
- X0046CCC P0048006 1
- X0046CCC P0048007 1
- X0046CCC P0048008 1
- X0046CCC P0048009 1
- X0047CCC O0000RRR 8
- X0047CCC D0001RRR 1
- X0047CCC P0017RRR 1
- X0047CCC P0048000 1
- X0047CCC P0048001 1
- X0047CCC P0048002 1
- X0047CCC P0048003 1
- X0047CCC P0048004 1
- X0047CCC P0048005 1
- X0047CCC P0048006 1
- X0047CCC P0048007 1
- X0047CCC P0048008 1
- X0047CCC P0048009 1
- X0048CCC D0008RRR 1
- X0048CCC P0018RRR 1
- X0048CCC P0049000 1
- X0048CCC P0049001 1
- X0048CCC P0049002 1
- X0048CCC P0049003 1
- X0048CCC P0049004 1
- X0048CCC P0049005 1
- X0048CCC P0049006 1
- X0048CCC P0049007 1
- X0048CCC P0049008 1
- X0048CCC P0049009 1
- X0049CCC O0000RRR 8
- X0049CCC D0007RRR 1
- X0049CCC P0018RRR 1
- X0049CCC P0049000 1
- X0049CCC P0049001 1
- X0049CCC P0049002 1
- X0049CCC P0049003 1
- X0049CCC P0049004 1
- X0049CCC P0049005 1
- X0049CCC P0049006 1
- X0049CCC P0049007 1
- X0049CCC P0049008 1
- X0049CCC P0049009 1
- X0050CCC O0000RRR 8
- X0050CCC D0006RRR 1
- X0050CCC P0018RRR 1
- X0050CCC P0049000 1
- X0050CCC P0049001 1
- X0050CCC P0049002 1
- X0050CCC P0049003 1
- X0050CCC P0049004 1
- X0050CCC P0049005 1
- X0050CCC P0049006 1
- X0050CCC P0049007 1
- X0050CCC P0049008 1
- X0050CCC P0049009 1
- X0051CCC O0000RRR 8
- X0051CCC D0005RRR 1
- X0051CCC P0018RRR 1
- X0051CCC P0049000 1
- X0051CCC P0049001 1
- X0051CCC P0049002 1
- X0051CCC P0049003 1
- X0051CCC P0049004 1
- X0051CCC P0049005 1
- X0051CCC P0049006 1
- X0051CCC P0049007 1
- X0051CCC P0049008 1
- X0051CCC P0049009 1
- X0052CCC O0000RRR 8
- X0052CCC D0004RRR 1
- X0052CCC P0018RRR 1
- X0052CCC P0049000 1
- X0052CCC P0049001 1
- X0052CCC P0049002 1
- X0052CCC P0049003 1
- X0052CCC P0049004 1
- X0052CCC P0049005 1
- X0052CCC P0049006 1
- X0052CCC P0049007 1
- X0052CCC P0049008 1
- X0052CCC P0049009 1
- X0053CCC O0000RRR 8
- X0053CCC D0003RRR 1
- X0053CCC P0018RRR 1
- X0053CCC P0049000 1
- X0053CCC P0049001 1
- X0053CCC P0049002 1
- X0053CCC P0049003 1
- X0053CCC P0049004 1
- X0053CCC P0049005 1
- X0053CCC P0049006 1
- X0053CCC P0049007 1
- X0053CCC P0049008 1
- X0053CCC P0049009 1
- X0054CCC O0000RRR 8
- X0054CCC D0002RRR 1
- X0054CCC P0018RRR 1
- X0054CCC P0049000 1
- X0054CCC P0049001 1
- X0054CCC P0049002 1
- X0054CCC P0049003 1
- X0054CCC P0049004 1
- X0054CCC P0049005 1
- X0054CCC P0049006 1
- X0054CCC P0049007 1
- X0054CCC P0049008 1
- X0054CCC P0049009 1
- X0055CCC O0000RRR 8
- X0055CCC D0001RRR 1
- X0055CCC P0018RRR 1
- X0055CCC P0049000 1
- X0055CCC P0049001 1
- X0055CCC P0049002 1
- X0055CCC P0049003 1
- X0055CCC P0049004 1
- X0055CCC P0049005 1
- X0055CCC P0049006 1
- X0055CCC P0049007 1
- X0055CCC P0049008 1
- X0055CCC P0049009 1
- X0056CCC D0009RRR 1
- X0056CCC P0019RRR 1
- X0056CCC P0050000 1
- X0056CCC P0050001 1
- X0056CCC P0050002 1
- X0056CCC P0050003 1
- X0056CCC P0050004 1
- X0056CCC P0050005 1
- X0056CCC P0050006 1
- X0056CCC P0050007 1
- X0056CCC P0050008 1
- X0056CCC P0050009 1
- X0057CCC O0000RRR 8
- X0057CCC D0008RRR 1
- X0057CCC P0019RRR 1
- X0057CCC P0050000 1
- X0057CCC P0050001 1
- X0057CCC P0050002 1
- X0057CCC P0050003 1
- X0057CCC P0050004 1
- X0057CCC P0050005 1
- X0057CCC P0050006 1
- X0057CCC P0050007 1
- X0057CCC P0050008 1
- X0057CCC P0050009 1
- X0058CCC O0000RRR 8
- X0058CCC D0007RRR 1
- X0058CCC P0019RRR 1
- X0058CCC P0050000 1
- X0058CCC P0050001 1
- X0058CCC P0050002 1
- X0058CCC P0050003 1
- X0058CCC P0050004 1
- X0058CCC P0050005 1
- X0058CCC P0050006 1
- X0058CCC P0050007 1
- X0058CCC P0050008 1
- X0058CCC P0050009 1
- X0059CCC O0000RRR 8
- X0059CCC D0006RRR 1
- X0059CCC P0019RRR 1
- X0059CCC P0050000 1
- X0059CCC P0050001 1
- X0059CCC P0050002 1
- X0059CCC P0050003 1
- X0059CCC P0050004 1
- X0059CCC P0050005 1
- X0059CCC P0050006 1
- X0059CCC P0050007 1
- X0059CCC P0050008 1
- X0059CCC P0050009 1
- X0060CCC O0000RRR 8
- X0060CCC D0005RRR 1
- X0060CCC P0019RRR 1
- X0060CCC P0050000 1
- X0060CCC P0050001 1
- X0060CCC P0050002 1
- X0060CCC P0050003 1
- X0060CCC P0050004 1
- X0060CCC P0050005 1
- X0060CCC P0050006 1
- X0060CCC P0050007 1
- X0060CCC P0050008 1
- X0060CCC P0050009 1
- X0061CCC O0000RRR 8
- X0061CCC D0004RRR 1
- X0061CCC P0019RRR 1
- X0061CCC P0050000 1
- X0061CCC P0050001 1
- X0061CCC P0050002 1
- X0061CCC P0050003 1
- X0061CCC P0050004 1
- X0061CCC P0050005 1
- X0061CCC P0050006 1
- X0061CCC P0050007 1
- X0061CCC P0050008 1
- X0061CCC P0050009 1
- X0062CCC O0000RRR 8
- X0062CCC D0003RRR 1
- X0062CCC P0019RRR 1
- X0062CCC P0050000 1
- X0062CCC P0050001 1
- X0062CCC P0050002 1
- X0062CCC P0050003 1
- X0062CCC P0050004 1
- X0062CCC P0050005 1
- X0062CCC P0050006 1
- X0062CCC P0050007 1
- X0062CCC P0050008 1
- X0062CCC P0050009 1
- X0063CCC O0000RRR 8
- X0063CCC D0002RRR 1
- X0063CCC P0019RRR 1
- X0063CCC P0050000 1
- X0063CCC P0050001 1
- X0063CCC P0050002 1
- X0063CCC P0050003 1
- X0063CCC P0050004 1
- X0063CCC P0050005 1
- X0063CCC P0050006 1
- X0063CCC P0050007 1
- X0063CCC P0050008 1
- X0063CCC P0050009 1
- X0064CCC O0000RRR 8
- X0064CCC D0001RRR 1
- X0064CCC P0019RRR 1
- X0064CCC P0050000 1
- X0064CCC P0050001 1
- X0064CCC P0050002 1
- X0064CCC P0050003 1
- X0064CCC P0050004 1
- X0064CCC P0050005 1
- X0064CCC P0050006 1
- X0064CCC P0050007 1
- X0064CCC P0050008 1
- X0064CCC P0050009 1
- X0065CCC D0010RRR 1
- X0065CCC P0020RRR 1
- X0065CCC P0051000 1
- X0065CCC P0051001 1
- X0065CCC P0051002 1
- X0065CCC P0051003 1
- X0065CCC P0051004 1
- X0065CCC P0051005 1
- X0065CCC P0051006 1
- X0065CCC P0051007 1
- X0065CCC P0051008 1
- X0065CCC P0051009 1
- X0066CCC O0000RRR 8
- X0066CCC D0009RRR 1
- X0066CCC P0020RRR 1
- X0066CCC P0051000 1
- X0066CCC P0051001 1
- X0066CCC P0051002 1
- X0066CCC P0051003 1
- X0066CCC P0051004 1
- X0066CCC P0051005 1
- X0066CCC P0051006 1
- X0066CCC P0051007 1
- X0066CCC P0051008 1
- X0066CCC P0051009 1
- X0067CCC O0000RRR 8
- X0067CCC D0008RRR 1
- X0067CCC P0020RRR 1
- X0067CCC P0051000 1
- X0067CCC P0051001 1
- X0067CCC P0051002 1
- X0067CCC P0051003 1
- X0067CCC P0051004 1
- X0067CCC P0051005 1
- X0067CCC P0051006 1
- X0067CCC P0051007 1
- X0067CCC P0051008 1
- X0067CCC P0051009 1
- X0068CCC O0000RRR 8
- X0068CCC D0007RRR 1
- X0068CCC P0020RRR 1
- X0068CCC P0051000 1
- X0068CCC P0051001 1
- X0068CCC P0051002 1
- X0068CCC P0051003 1
- X0068CCC P0051004 1
- X0068CCC P0051005 1
- X0068CCC P0051006 1
- X0068CCC P0051007 1
- X0068CCC P0051008 1
- X0068CCC P0051009 1
- X0069CCC O0000RRR 8
- X0069CCC D0006RRR 1
- X0069CCC P0020RRR 1
- X0069CCC P0051000 1
- X0069CCC P0051001 1
- X0069CCC P0051002 1
- X0069CCC P0051003 1
- X0069CCC P0051004 1
- X0069CCC P0051005 1
- X0069CCC P0051006 1
- X0069CCC P0051007 1
- X0069CCC P0051008 1
- X0069CCC P0051009 1
- X0070CCC O0000RRR 8
- X0070CCC D0005RRR 1
- X0070CCC P0020RRR 1
- X0070CCC P0051000 1
- X0070CCC P0051001 1
- X0070CCC P0051002 1
- X0070CCC P0051003 1
- X0070CCC P0051004 1
- X0070CCC P0051005 1
- X0070CCC P0051006 1
- X0070CCC P0051007 1
- X0070CCC P0051008 1
- X0070CCC P0051009 1
- X0071CCC O0000RRR 8
- X0071CCC D0004RRR 1
- X0071CCC P0020RRR 1
- X0071CCC P0051000 1
- X0071CCC P0051001 1
- X0071CCC P0051002 1
- X0071CCC P0051003 1
- X0071CCC P0051004 1
- X0071CCC P0051005 1
- X0071CCC P0051006 1
- X0071CCC P0051007 1
- X0071CCC P0051008 1
- X0071CCC P0051009 1
- X0072CCC O0000RRR 8
- X0072CCC D0003RRR 1
- X0072CCC P0020RRR 1
- X0072CCC P0051000 1
- X0072CCC P0051001 1
- X0072CCC P0051002 1
- X0072CCC P0051003 1
- X0072CCC P0051004 1
- X0072CCC P0051005 1
- X0072CCC P0051006 1
- X0072CCC P0051007 1
- X0072CCC P0051008 1
- X0072CCC P0051009 1
- X0073CCC O0000RRR 8
- X0073CCC D0002RRR 1
- X0073CCC P0020RRR 1
- X0073CCC P0051000 1
- X0073CCC P0051001 1
- X0073CCC P0051002 1
- X0073CCC P0051003 1
- X0073CCC P0051004 1
- X0073CCC P0051005 1
- X0073CCC P0051006 1
- X0073CCC P0051007 1
- X0073CCC P0051008 1
- X0073CCC P0051009 1
- X0074CCC O0000RRR 8
- X0074CCC D0001RRR 1
- X0074CCC P0020RRR 1
- X0074CCC P0051000 1
- X0074CCC P0051001 1
- X0074CCC P0051002 1
- X0074CCC P0051003 1
- X0074CCC P0051004 1
- X0074CCC P0051005 1
- X0074CCC P0051006 1
- X0074CCC P0051007 1
- X0074CCC P0051008 1
- X0074CCC P0051009 1
- INT0002 'MARKER' 'INTORG'
- Z0075000 O0000RRR 45.3
- Z0075000 S0052000 -201
- Z0076000 O0000RRR 45.3
- Z0076000 S0053000 -201
- Z0077000 O0000RRR 45.3
- Z0077000 S0054000 -201
- Z0078000 O0000RRR 45.3
- Z0078000 S0055000 -201
- Z0079000 O0000RRR 45.3
- Z0079000 S0056000 -201
- Z0080000 O0000RRR 45.3
- Z0080000 S0057000 -201
- Z0081000 O0000RRR 45.3
- Z0081000 S0058000 -201
- Z0082000 O0000RRR 45.3
- Z0082000 S0059000 -201
- Z0083000 O0000RRR 45.3
- Z0083000 S0060000 -201
- Z0084000 O0000RRR 45.3
- Z0084000 S0061000 -201
- INT0002 'MARKER' 'INTEND'
- Y0085000 O0000RRR 74.8
- Y0085000 P0042000 -1
- Y0085000 S0052000 1
- Y0085000 C0062000 1
- Y0086000 O0000RRR 75.84
- Y0086000 P0043000 -1
- Y0086000 S0053000 1
- Y0086000 C0062000 1
- Y0087000 O0000RRR 76.88
- Y0087000 P0044000 -1
- Y0087000 S0054000 1
- Y0087000 C0062000 1
- Y0088000 O0000RRR 77.92
- Y0088000 P0045000 -1
- Y0088000 S0055000 1
- Y0088000 C0062000 1
- Y0089000 O0000RRR 78.96
- Y0089000 P0046000 -1
- Y0089000 S0056000 1
- Y0089000 C0062000 1
- Y0090000 O0000RRR 80
- Y0090000 P0047000 -1
- Y0090000 S0057000 1
- Y0090000 C0062000 1
- Y0091000 O0000RRR 81.04
- Y0091000 P0048000 -1
- Y0091000 S0058000 1
- Y0091000 C0062000 1
- Y0092000 O0000RRR 82.08
- Y0092000 P0049000 -1
- Y0092000 S0059000 1
- Y0092000 C0062000 1
- Y0093000 O0000RRR 83.12
- Y0093000 P0050000 -1
- Y0093000 S0060000 1
- Y0093000 C0062000 1
- Y0094000 O0000RRR 84.16
- Y0094000 P0051000 -1
- Y0094000 S0061000 1
- Y0094000 C0062000 1
- X0095000 D0032000 1
- X0095000 P0042000 1
- X0096000 D0033000 1
- X0096000 P0043000 1
- X0097000 O0000RRR 0.8
- X0097000 D0032000 1
- X0097000 P0043000 1
- X0098000 D0034000 1
- X0098000 P0044000 1
- X0099000 O0000RRR 0.8
- X0099000 D0033000 1
- X0099000 P0044000 1
- X0100000 O0000RRR 0.8
- X0100000 D0032000 1
- X0100000 P0044000 1
- X0101000 D0035000 1
- X0101000 P0045000 1
- X0102000 O0000RRR 0.8
- X0102000 D0034000 1
- X0102000 P0045000 1
- X0103000 O0000RRR 0.8
- X0103000 D0033000 1
- X0103000 P0045000 1
- X0104000 O0000RRR 0.8
- X0104000 D0032000 1
- X0104000 P0045000 1
- X0105000 D0036000 1
- X0105000 P0046000 1
- X0106000 O0000RRR 0.8
- X0106000 D0035000 1
- X0106000 P0046000 1
- X0107000 O0000RRR 0.8
- X0107000 D0034000 1
- X0107000 P0046000 1
- X0108000 O0000RRR 0.8
- X0108000 D0033000 1
- X0108000 P0046000 1
- X0109000 O0000RRR 0.8
- X0109000 D0032000 1
- X0109000 P0046000 1
- X0110000 D0037000 1
- X0110000 P0047000 1
- X0111000 O0000RRR 0.8
- X0111000 D0036000 1
- X0111000 P0047000 1
- X0112000 O0000RRR 0.8
- X0112000 D0035000 1
- X0112000 P0047000 1
- X0113000 O0000RRR 0.8
- X0113000 D0034000 1
- X0113000 P0047000 1
- X0114000 O0000RRR 0.8
- X0114000 D0033000 1
- X0114000 P0047000 1
- X0115000 O0000RRR 0.8
- X0115000 D0032000 1
- X0115000 P0047000 1
- X0116000 D0038000 1
- X0116000 P0048000 1
- X0117000 O0000RRR 0.8
- X0117000 D0037000 1
- X0117000 P0048000 1
- X0118000 O0000RRR 0.8
- X0118000 D0036000 1
- X0118000 P0048000 1
- X0119000 O0000RRR 0.8
- X0119000 D0035000 1
- X0119000 P0048000 1
- X0120000 O0000RRR 0.8
- X0120000 D0034000 1
- X0120000 P0048000 1
- X0121000 O0000RRR 0.8
- X0121000 D0033000 1
- X0121000 P0048000 1
- X0122000 O0000RRR 0.8
- X0122000 D0032000 1
- X0122000 P0048000 1
- X0123000 D0039000 1
- X0123000 P0049000 1
- X0124000 O0000RRR 0.8
- X0124000 D0038000 1
- X0124000 P0049000 1
- X0125000 O0000RRR 0.8
- X0125000 D0037000 1
- X0125000 P0049000 1
- X0126000 O0000RRR 0.8
- X0126000 D0036000 1
- X0126000 P0049000 1
- X0127000 O0000RRR 0.8
- X0127000 D0035000 1
- X0127000 P0049000 1
- X0128000 O0000RRR 0.8
- X0128000 D0034000 1
- X0128000 P0049000 1
- X0129000 O0000RRR 0.8
- X0129000 D0033000 1
- X0129000 P0049000 1
- X0130000 O0000RRR 0.8
- X0130000 D0032000 1
- X0130000 P0049000 1
- X0131000 D0040000 1
- X0131000 P0050000 1
- X0132000 O0000RRR 0.8
- X0132000 D0039000 1
- X0132000 P0050000 1
- X0133000 O0000RRR 0.8
- X0133000 D0038000 1
- X0133000 P0050000 1
- X0134000 O0000RRR 0.8
- X0134000 D0037000 1
- X0134000 P0050000 1
- X0135000 O0000RRR 0.8
- X0135000 D0036000 1
- X0135000 P0050000 1
- X0136000 O0000RRR 0.8
- X0136000 D0035000 1
- X0136000 P0050000 1
- X0137000 O0000RRR 0.8
- X0137000 D0034000 1
- X0137000 P0050000 1
- X0138000 O0000RRR 0.8
- X0138000 D0033000 1
- X0138000 P0050000 1
- X0139000 O0000RRR 0.8
- X0139000 D0032000 1
- X0139000 P0050000 1
- X0140000 D0041000 1
- X0140000 P0051000 1
- X0141000 O0000RRR 0.8
- X0141000 D0040000 1
- X0141000 P0051000 1
- X0142000 O0000RRR 0.8
- X0142000 D0039000 1
- X0142000 P0051000 1
- X0143000 O0000RRR 0.8
- X0143000 D0038000 1
- X0143000 P0051000 1
- X0144000 O0000RRR 0.8
- X0144000 D0037000 1
- X0144000 P0051000 1
- X0145000 O0000RRR 0.8
- X0145000 D0036000 1
- X0145000 P0051000 1
- X0146000 O0000RRR 0.8
- X0146000 D0035000 1
- X0146000 P0051000 1
- X0147000 O0000RRR 0.8
- X0147000 D0034000 1
- X0147000 P0051000 1
- X0148000 O0000RRR 0.8
- X0148000 D0033000 1
- X0148000 P0051000 1
- X0149000 O0000RRR 0.8
- X0149000 D0032000 1
- X0149000 P0051000 1
- INT0003 'MARKER' 'INTORG'
- Z0075001 O0000RRR 45.3
- Z0075001 S0052001 -201
- Z0076001 O0000RRR 45.3
- Z0076001 S0053001 -201
- Z0077001 O0000RRR 45.3
- Z0077001 S0054001 -201
- Z0078001 O0000RRR 45.3
- Z0078001 S0055001 -201
- Z0079001 O0000RRR 45.3
- Z0079001 S0056001 -201
- Z0080001 O0000RRR 45.3
- Z0080001 S0057001 -201
- Z0081001 O0000RRR 45.3
- Z0081001 S0058001 -201
- Z0082001 O0000RRR 45.3
- Z0082001 S0059001 -201
- Z0083001 O0000RRR 45.3
- Z0083001 S0060001 -201
- Z0084001 O0000RRR 45.3
- Z0084001 S0061001 -201
- INT0003 'MARKER' 'INTEND'
- Y0085001 O0000RRR 74.8
- Y0085001 P0042001 -1
- Y0085001 S0052001 1
- Y0085001 C0062001 1
- Y0086001 O0000RRR 75.84
- Y0086001 P0043001 -1
- Y0086001 S0053001 1
- Y0086001 C0062001 1
- Y0087001 O0000RRR 76.88
- Y0087001 P0044001 -1
- Y0087001 S0054001 1
- Y0087001 C0062001 1
- Y0088001 O0000RRR 77.92
- Y0088001 P0045001 -1
- Y0088001 S0055001 1
- Y0088001 C0062001 1
- Y0089001 O0000RRR 78.96
- Y0089001 P0046001 -1
- Y0089001 S0056001 1
- Y0089001 C0062001 1
- Y0090001 O0000RRR 80
- Y0090001 P0047001 -1
- Y0090001 S0057001 1
- Y0090001 C0062001 1
- Y0091001 O0000RRR 81.04
- Y0091001 P0048001 -1
- Y0091001 S0058001 1
- Y0091001 C0062001 1
- Y0092001 O0000RRR 82.08
- Y0092001 P0049001 -1
- Y0092001 S0059001 1
- Y0092001 C0062001 1
- Y0093001 O0000RRR 83.12
- Y0093001 P0050001 -1
- Y0093001 S0060001 1
- Y0093001 C0062001 1
- Y0094001 O0000RRR 84.16
- Y0094001 P0051001 -1
- Y0094001 S0061001 1
- Y0094001 C0062001 1
- X0095001 D0032001 1
- X0095001 P0042001 1
- X0096001 D0033001 1
- X0096001 P0043001 1
- X0097001 O0000RRR 0.8
- X0097001 D0032001 1
- X0097001 P0043001 1
- X0098001 D0034001 1
- X0098001 P0044001 1
- X0099001 O0000RRR 0.8
- X0099001 D0033001 1
- X0099001 P0044001 1
- X0100001 O0000RRR 0.8
- X0100001 D0032001 1
- X0100001 P0044001 1
- X0101001 D0035001 1
- X0101001 P0045001 1
- X0102001 O0000RRR 0.8
- X0102001 D0034001 1
- X0102001 P0045001 1
- X0103001 O0000RRR 0.8
- X0103001 D0033001 1
- X0103001 P0045001 1
- X0104001 O0000RRR 0.8
- X0104001 D0032001 1
- X0104001 P0045001 1
- X0105001 D0036001 1
- X0105001 P0046001 1
- X0106001 O0000RRR 0.8
- X0106001 D0035001 1
- X0106001 P0046001 1
- X0107001 O0000RRR 0.8
- X0107001 D0034001 1
- X0107001 P0046001 1
- X0108001 O0000RRR 0.8
- X0108001 D0033001 1
- X0108001 P0046001 1
- X0109001 O0000RRR 0.8
- X0109001 D0032001 1
- X0109001 P0046001 1
- X0110001 D0037001 1
- X0110001 P0047001 1
- X0111001 O0000RRR 0.8
- X0111001 D0036001 1
- X0111001 P0047001 1
- X0112001 O0000RRR 0.8
- X0112001 D0035001 1
- X0112001 P0047001 1
- X0113001 O0000RRR 0.8
- X0113001 D0034001 1
- X0113001 P0047001 1
- X0114001 O0000RRR 0.8
- X0114001 D0033001 1
- X0114001 P0047001 1
- X0115001 O0000RRR 0.8
- X0115001 D0032001 1
- X0115001 P0047001 1
- X0116001 D0038001 1
- X0116001 P0048001 1
- X0117001 O0000RRR 0.8
- X0117001 D0037001 1
- X0117001 P0048001 1
- X0118001 O0000RRR 0.8
- X0118001 D0036001 1
- X0118001 P0048001 1
- X0119001 O0000RRR 0.8
- X0119001 D0035001 1
- X0119001 P0048001 1
- X0120001 O0000RRR 0.8
- X0120001 D0034001 1
- X0120001 P0048001 1
- X0121001 O0000RRR 0.8
- X0121001 D0033001 1
- X0121001 P0048001 1
- X0122001 O0000RRR 0.8
- X0122001 D0032001 1
- X0122001 P0048001 1
- X0123001 D0039001 1
- X0123001 P0049001 1
- X0124001 O0000RRR 0.8
- X0124001 D0038001 1
- X0124001 P0049001 1
- X0125001 O0000RRR 0.8
- X0125001 D0037001 1
- X0125001 P0049001 1
- X0126001 O0000RRR 0.8
- X0126001 D0036001 1
- X0126001 P0049001 1
- X0127001 O0000RRR 0.8
- X0127001 D0035001 1
- X0127001 P0049001 1
- X0128001 O0000RRR 0.8
- X0128001 D0034001 1
- X0128001 P0049001 1
- X0129001 O0000RRR 0.8
- X0129001 D0033001 1
- X0129001 P0049001 1
- X0130001 O0000RRR 0.8
- X0130001 D0032001 1
- X0130001 P0049001 1
- X0131001 D0040001 1
- X0131001 P0050001 1
- X0132001 O0000RRR 0.8
- X0132001 D0039001 1
- X0132001 P0050001 1
- X0133001 O0000RRR 0.8
- X0133001 D0038001 1
- X0133001 P0050001 1
- X0134001 O0000RRR 0.8
- X0134001 D0037001 1
- X0134001 P0050001 1
- X0135001 O0000RRR 0.8
- X0135001 D0036001 1
- X0135001 P0050001 1
- X0136001 O0000RRR 0.8
- X0136001 D0035001 1
- X0136001 P0050001 1
- X0137001 O0000RRR 0.8
- X0137001 D0034001 1
- X0137001 P0050001 1
- X0138001 O0000RRR 0.8
- X0138001 D0033001 1
- X0138001 P0050001 1
- X0139001 O0000RRR 0.8
- X0139001 D0032001 1
- X0139001 P0050001 1
- X0140001 D0041001 1
- X0140001 P0051001 1
- X0141001 O0000RRR 0.8
- X0141001 D0040001 1
- X0141001 P0051001 1
- X0142001 O0000RRR 0.8
- X0142001 D0039001 1
- X0142001 P0051001 1
- X0143001 O0000RRR 0.8
- X0143001 D0038001 1
- X0143001 P0051001 1
- X0144001 O0000RRR 0.8
- X0144001 D0037001 1
- X0144001 P0051001 1
- X0145001 O0000RRR 0.8
- X0145001 D0036001 1
- X0145001 P0051001 1
- X0146001 O0000RRR 0.8
- X0146001 D0035001 1
- X0146001 P0051001 1
- X0147001 O0000RRR 0.8
- X0147001 D0034001 1
- X0147001 P0051001 1
- X0148001 O0000RRR 0.8
- X0148001 D0033001 1
- X0148001 P0051001 1
- X0149001 O0000RRR 0.8
- X0149001 D0032001 1
- X0149001 P0051001 1
- INT0004 'MARKER' 'INTORG'
- Z0075002 O0000RRR 45.3
- Z0075002 S0052002 -201
- Z0076002 O0000RRR 45.3
- Z0076002 S0053002 -201
- Z0077002 O0000RRR 45.3
- Z0077002 S0054002 -201
- Z0078002 O0000RRR 45.3
- Z0078002 S0055002 -201
- Z0079002 O0000RRR 45.3
- Z0079002 S0056002 -201
- Z0080002 O0000RRR 45.3
- Z0080002 S0057002 -201
- Z0081002 O0000RRR 45.3
- Z0081002 S0058002 -201
- Z0082002 O0000RRR 45.3
- Z0082002 S0059002 -201
- Z0083002 O0000RRR 45.3
- Z0083002 S0060002 -201
- Z0084002 O0000RRR 45.3
- Z0084002 S0061002 -201
- INT0004 'MARKER' 'INTEND'
- Y0085002 O0000RRR 74.8
- Y0085002 P0042002 -1
- Y0085002 S0052002 1
- Y0085002 C0062002 1
- Y0086002 O0000RRR 75.84
- Y0086002 P0043002 -1
- Y0086002 S0053002 1
- Y0086002 C0062002 1
- Y0087002 O0000RRR 76.88
- Y0087002 P0044002 -1
- Y0087002 S0054002 1
- Y0087002 C0062002 1
- Y0088002 O0000RRR 77.92
- Y0088002 P0045002 -1
- Y0088002 S0055002 1
- Y0088002 C0062002 1
- Y0089002 O0000RRR 78.96
- Y0089002 P0046002 -1
- Y0089002 S0056002 1
- Y0089002 C0062002 1
- Y0090002 O0000RRR 80
- Y0090002 P0047002 -1
- Y0090002 S0057002 1
- Y0090002 C0062002 1
- Y0091002 O0000RRR 81.04
- Y0091002 P0048002 -1
- Y0091002 S0058002 1
- Y0091002 C0062002 1
- Y0092002 O0000RRR 82.08
- Y0092002 P0049002 -1
- Y0092002 S0059002 1
- Y0092002 C0062002 1
- Y0093002 O0000RRR 83.12
- Y0093002 P0050002 -1
- Y0093002 S0060002 1
- Y0093002 C0062002 1
- Y0094002 O0000RRR 84.16
- Y0094002 P0051002 -1
- Y0094002 S0061002 1
- Y0094002 C0062002 1
- X0095002 D0032002 1
- X0095002 P0042002 1
- X0096002 D0033002 1
- X0096002 P0043002 1
- X0097002 O0000RRR 0.8
- X0097002 D0032002 1
- X0097002 P0043002 1
- X0098002 D0034002 1
- X0098002 P0044002 1
- X0099002 O0000RRR 0.8
- X0099002 D0033002 1
- X0099002 P0044002 1
- X0100002 O0000RRR 0.8
- X0100002 D0032002 1
- X0100002 P0044002 1
- X0101002 D0035002 1
- X0101002 P0045002 1
- X0102002 O0000RRR 0.8
- X0102002 D0034002 1
- X0102002 P0045002 1
- X0103002 O0000RRR 0.8
- X0103002 D0033002 1
- X0103002 P0045002 1
- X0104002 O0000RRR 0.8
- X0104002 D0032002 1
- X0104002 P0045002 1
- X0105002 D0036002 1
- X0105002 P0046002 1
- X0106002 O0000RRR 0.8
- X0106002 D0035002 1
- X0106002 P0046002 1
- X0107002 O0000RRR 0.8
- X0107002 D0034002 1
- X0107002 P0046002 1
- X0108002 O0000RRR 0.8
- X0108002 D0033002 1
- X0108002 P0046002 1
- X0109002 O0000RRR 0.8
- X0109002 D0032002 1
- X0109002 P0046002 1
- X0110002 D0037002 1
- X0110002 P0047002 1
- X0111002 O0000RRR 0.8
- X0111002 D0036002 1
- X0111002 P0047002 1
- X0112002 O0000RRR 0.8
- X0112002 D0035002 1
- X0112002 P0047002 1
- X0113002 O0000RRR 0.8
- X0113002 D0034002 1
- X0113002 P0047002 1
- X0114002 O0000RRR 0.8
- X0114002 D0033002 1
- X0114002 P0047002 1
- X0115002 O0000RRR 0.8
- X0115002 D0032002 1
- X0115002 P0047002 1
- X0116002 D0038002 1
- X0116002 P0048002 1
- X0117002 O0000RRR 0.8
- X0117002 D0037002 1
- X0117002 P0048002 1
- X0118002 O0000RRR 0.8
- X0118002 D0036002 1
- X0118002 P0048002 1
- X0119002 O0000RRR 0.8
- X0119002 D0035002 1
- X0119002 P0048002 1
- X0120002 O0000RRR 0.8
- X0120002 D0034002 1
- X0120002 P0048002 1
- X0121002 O0000RRR 0.8
- X0121002 D0033002 1
- X0121002 P0048002 1
- X0122002 O0000RRR 0.8
- X0122002 D0032002 1
- X0122002 P0048002 1
- X0123002 D0039002 1
- X0123002 P0049002 1
- X0124002 O0000RRR 0.8
- X0124002 D0038002 1
- X0124002 P0049002 1
- X0125002 O0000RRR 0.8
- X0125002 D0037002 1
- X0125002 P0049002 1
- X0126002 O0000RRR 0.8
- X0126002 D0036002 1
- X0126002 P0049002 1
- X0127002 O0000RRR 0.8
- X0127002 D0035002 1
- X0127002 P0049002 1
- X0128002 O0000RRR 0.8
- X0128002 D0034002 1
- X0128002 P0049002 1
- X0129002 O0000RRR 0.8
- X0129002 D0033002 1
- X0129002 P0049002 1
- X0130002 O0000RRR 0.8
- X0130002 D0032002 1
- X0130002 P0049002 1
- X0131002 D0040002 1
- X0131002 P0050002 1
- X0132002 O0000RRR 0.8
- X0132002 D0039002 1
- X0132002 P0050002 1
- X0133002 O0000RRR 0.8
- X0133002 D0038002 1
- X0133002 P0050002 1
- X0134002 O0000RRR 0.8
- X0134002 D0037002 1
- X0134002 P0050002 1
- X0135002 O0000RRR 0.8
- X0135002 D0036002 1
- X0135002 P0050002 1
- X0136002 O0000RRR 0.8
- X0136002 D0035002 1
- X0136002 P0050002 1
- X0137002 O0000RRR 0.8
- X0137002 D0034002 1
- X0137002 P0050002 1
- X0138002 O0000RRR 0.8
- X0138002 D0033002 1
- X0138002 P0050002 1
- X0139002 O0000RRR 0.8
- X0139002 D0032002 1
- X0139002 P0050002 1
- X0140002 D0041002 1
- X0140002 P0051002 1
- X0141002 O0000RRR 0.8
- X0141002 D0040002 1
- X0141002 P0051002 1
- X0142002 O0000RRR 0.8
- X0142002 D0039002 1
- X0142002 P0051002 1
- X0143002 O0000RRR 0.8
- X0143002 D0038002 1
- X0143002 P0051002 1
- X0144002 O0000RRR 0.8
- X0144002 D0037002 1
- X0144002 P0051002 1
- X0145002 O0000RRR 0.8
- X0145002 D0036002 1
- X0145002 P0051002 1
- X0146002 O0000RRR 0.8
- X0146002 D0035002 1
- X0146002 P0051002 1
- X0147002 O0000RRR 0.8
- X0147002 D0034002 1
- X0147002 P0051002 1
- X0148002 O0000RRR 0.8
- X0148002 D0033002 1
- X0148002 P0051002 1
- X0149002 O0000RRR 0.8
- X0149002 D0032002 1
- X0149002 P0051002 1
- INT0005 'MARKER' 'INTORG'
- Z0075003 O0000RRR 45.3
- Z0075003 S0052003 -201
- Z0076003 O0000RRR 45.3
- Z0076003 S0053003 -201
- Z0077003 O0000RRR 45.3
- Z0077003 S0054003 -201
- Z0078003 O0000RRR 45.3
- Z0078003 S0055003 -201
- Z0079003 O0000RRR 45.3
- Z0079003 S0056003 -201
- Z0080003 O0000RRR 45.3
- Z0080003 S0057003 -201
- Z0081003 O0000RRR 45.3
- Z0081003 S0058003 -201
- Z0082003 O0000RRR 45.3
- Z0082003 S0059003 -201
- Z0083003 O0000RRR 45.3
- Z0083003 S0060003 -201
- Z0084003 O0000RRR 45.3
- Z0084003 S0061003 -201
- INT0005 'MARKER' 'INTEND'
- Y0085003 O0000RRR 74.8
- Y0085003 P0042003 -1
- Y0085003 S0052003 1
- Y0085003 C0062003 1
- Y0086003 O0000RRR 75.84
- Y0086003 P0043003 -1
- Y0086003 S0053003 1
- Y0086003 C0062003 1
- Y0087003 O0000RRR 76.88
- Y0087003 P0044003 -1
- Y0087003 S0054003 1
- Y0087003 C0062003 1
- Y0088003 O0000RRR 77.92
- Y0088003 P0045003 -1
- Y0088003 S0055003 1
- Y0088003 C0062003 1
- Y0089003 O0000RRR 78.96
- Y0089003 P0046003 -1
- Y0089003 S0056003 1
- Y0089003 C0062003 1
- Y0090003 O0000RRR 80
- Y0090003 P0047003 -1
- Y0090003 S0057003 1
- Y0090003 C0062003 1
- Y0091003 O0000RRR 81.04
- Y0091003 P0048003 -1
- Y0091003 S0058003 1
- Y0091003 C0062003 1
- Y0092003 O0000RRR 82.08
- Y0092003 P0049003 -1
- Y0092003 S0059003 1
- Y0092003 C0062003 1
- Y0093003 O0000RRR 83.12
- Y0093003 P0050003 -1
- Y0093003 S0060003 1
- Y0093003 C0062003 1
- Y0094003 O0000RRR 84.16
- Y0094003 P0051003 -1
- Y0094003 S0061003 1
- Y0094003 C0062003 1
- X0095003 D0032003 1
- X0095003 P0042003 1
- X0096003 D0033003 1
- X0096003 P0043003 1
- X0097003 O0000RRR 0.8
- X0097003 D0032003 1
- X0097003 P0043003 1
- X0098003 D0034003 1
- X0098003 P0044003 1
- X0099003 O0000RRR 0.8
- X0099003 D0033003 1
- X0099003 P0044003 1
- X0100003 O0000RRR 0.8
- X0100003 D0032003 1
- X0100003 P0044003 1
- X0101003 D0035003 1
- X0101003 P0045003 1
- X0102003 O0000RRR 0.8
- X0102003 D0034003 1
- X0102003 P0045003 1
- X0103003 O0000RRR 0.8
- X0103003 D0033003 1
- X0103003 P0045003 1
- X0104003 O0000RRR 0.8
- X0104003 D0032003 1
- X0104003 P0045003 1
- X0105003 D0036003 1
- X0105003 P0046003 1
- X0106003 O0000RRR 0.8
- X0106003 D0035003 1
- X0106003 P0046003 1
- X0107003 O0000RRR 0.8
- X0107003 D0034003 1
- X0107003 P0046003 1
- X0108003 O0000RRR 0.8
- X0108003 D0033003 1
- X0108003 P0046003 1
- X0109003 O0000RRR 0.8
- X0109003 D0032003 1
- X0109003 P0046003 1
- X0110003 D0037003 1
- X0110003 P0047003 1
- X0111003 O0000RRR 0.8
- X0111003 D0036003 1
- X0111003 P0047003 1
- X0112003 O0000RRR 0.8
- X0112003 D0035003 1
- X0112003 P0047003 1
- X0113003 O0000RRR 0.8
- X0113003 D0034003 1
- X0113003 P0047003 1
- X0114003 O0000RRR 0.8
- X0114003 D0033003 1
- X0114003 P0047003 1
- X0115003 O0000RRR 0.8
- X0115003 D0032003 1
- X0115003 P0047003 1
- X0116003 D0038003 1
- X0116003 P0048003 1
- X0117003 O0000RRR 0.8
- X0117003 D0037003 1
- X0117003 P0048003 1
- X0118003 O0000RRR 0.8
- X0118003 D0036003 1
- X0118003 P0048003 1
- X0119003 O0000RRR 0.8
- X0119003 D0035003 1
- X0119003 P0048003 1
- X0120003 O0000RRR 0.8
- X0120003 D0034003 1
- X0120003 P0048003 1
- X0121003 O0000RRR 0.8
- X0121003 D0033003 1
- X0121003 P0048003 1
- X0122003 O0000RRR 0.8
- X0122003 D0032003 1
- X0122003 P0048003 1
- X0123003 D0039003 1
- X0123003 P0049003 1
- X0124003 O0000RRR 0.8
- X0124003 D0038003 1
- X0124003 P0049003 1
- X0125003 O0000RRR 0.8
- X0125003 D0037003 1
- X0125003 P0049003 1
- X0126003 O0000RRR 0.8
- X0126003 D0036003 1
- X0126003 P0049003 1
- X0127003 O0000RRR 0.8
- X0127003 D0035003 1
- X0127003 P0049003 1
- X0128003 O0000RRR 0.8
- X0128003 D0034003 1
- X0128003 P0049003 1
- X0129003 O0000RRR 0.8
- X0129003 D0033003 1
- X0129003 P0049003 1
- X0130003 O0000RRR 0.8
- X0130003 D0032003 1
- X0130003 P0049003 1
- X0131003 D0040003 1
- X0131003 P0050003 1
- X0132003 O0000RRR 0.8
- X0132003 D0039003 1
- X0132003 P0050003 1
- X0133003 O0000RRR 0.8
- X0133003 D0038003 1
- X0133003 P0050003 1
- X0134003 O0000RRR 0.8
- X0134003 D0037003 1
- X0134003 P0050003 1
- X0135003 O0000RRR 0.8
- X0135003 D0036003 1
- X0135003 P0050003 1
- X0136003 O0000RRR 0.8
- X0136003 D0035003 1
- X0136003 P0050003 1
- X0137003 O0000RRR 0.8
- X0137003 D0034003 1
- X0137003 P0050003 1
- X0138003 O0000RRR 0.8
- X0138003 D0033003 1
- X0138003 P0050003 1
- X0139003 O0000RRR 0.8
- X0139003 D0032003 1
- X0139003 P0050003 1
- X0140003 D0041003 1
- X0140003 P0051003 1
- X0141003 O0000RRR 0.8
- X0141003 D0040003 1
- X0141003 P0051003 1
- X0142003 O0000RRR 0.8
- X0142003 D0039003 1
- X0142003 P0051003 1
- X0143003 O0000RRR 0.8
- X0143003 D0038003 1
- X0143003 P0051003 1
- X0144003 O0000RRR 0.8
- X0144003 D0037003 1
- X0144003 P0051003 1
- X0145003 O0000RRR 0.8
- X0145003 D0036003 1
- X0145003 P0051003 1
- X0146003 O0000RRR 0.8
- X0146003 D0035003 1
- X0146003 P0051003 1
- X0147003 O0000RRR 0.8
- X0147003 D0034003 1
- X0147003 P0051003 1
- X0148003 O0000RRR 0.8
- X0148003 D0033003 1
- X0148003 P0051003 1
- X0149003 O0000RRR 0.8
- X0149003 D0032003 1
- X0149003 P0051003 1
- INT0006 'MARKER' 'INTORG'
- Z0075004 O0000RRR 45.3
- Z0075004 S0052004 -201
- Z0076004 O0000RRR 45.3
- Z0076004 S0053004 -201
- Z0077004 O0000RRR 45.3
- Z0077004 S0054004 -201
- Z0078004 O0000RRR 45.3
- Z0078004 S0055004 -201
- Z0079004 O0000RRR 45.3
- Z0079004 S0056004 -201
- Z0080004 O0000RRR 45.3
- Z0080004 S0057004 -201
- Z0081004 O0000RRR 45.3
- Z0081004 S0058004 -201
- Z0082004 O0000RRR 45.3
- Z0082004 S0059004 -201
- Z0083004 O0000RRR 45.3
- Z0083004 S0060004 -201
- Z0084004 O0000RRR 45.3
- Z0084004 S0061004 -201
- INT0006 'MARKER' 'INTEND'
- Y0085004 O0000RRR 74.8
- Y0085004 P0042004 -1
- Y0085004 S0052004 1
- Y0085004 C0062004 1
- Y0086004 O0000RRR 75.84
- Y0086004 P0043004 -1
- Y0086004 S0053004 1
- Y0086004 C0062004 1
- Y0087004 O0000RRR 76.88
- Y0087004 P0044004 -1
- Y0087004 S0054004 1
- Y0087004 C0062004 1
- Y0088004 O0000RRR 77.92
- Y0088004 P0045004 -1
- Y0088004 S0055004 1
- Y0088004 C0062004 1
- Y0089004 O0000RRR 78.96
- Y0089004 P0046004 -1
- Y0089004 S0056004 1
- Y0089004 C0062004 1
- Y0090004 O0000RRR 80
- Y0090004 P0047004 -1
- Y0090004 S0057004 1
- Y0090004 C0062004 1
- Y0091004 O0000RRR 81.04
- Y0091004 P0048004 -1
- Y0091004 S0058004 1
- Y0091004 C0062004 1
- Y0092004 O0000RRR 82.08
- Y0092004 P0049004 -1
- Y0092004 S0059004 1
- Y0092004 C0062004 1
- Y0093004 O0000RRR 83.12
- Y0093004 P0050004 -1
- Y0093004 S0060004 1
- Y0093004 C0062004 1
- Y0094004 O0000RRR 84.16
- Y0094004 P0051004 -1
- Y0094004 S0061004 1
- Y0094004 C0062004 1
- X0095004 D0032004 1
- X0095004 P0042004 1
- X0096004 D0033004 1
- X0096004 P0043004 1
- X0097004 O0000RRR 0.8
- X0097004 D0032004 1
- X0097004 P0043004 1
- X0098004 D0034004 1
- X0098004 P0044004 1
- X0099004 O0000RRR 0.8
- X0099004 D0033004 1
- X0099004 P0044004 1
- X0100004 O0000RRR 0.8
- X0100004 D0032004 1
- X0100004 P0044004 1
- X0101004 D0035004 1
- X0101004 P0045004 1
- X0102004 O0000RRR 0.8
- X0102004 D0034004 1
- X0102004 P0045004 1
- X0103004 O0000RRR 0.8
- X0103004 D0033004 1
- X0103004 P0045004 1
- X0104004 O0000RRR 0.8
- X0104004 D0032004 1
- X0104004 P0045004 1
- X0105004 D0036004 1
- X0105004 P0046004 1
- X0106004 O0000RRR 0.8
- X0106004 D0035004 1
- X0106004 P0046004 1
- X0107004 O0000RRR 0.8
- X0107004 D0034004 1
- X0107004 P0046004 1
- X0108004 O0000RRR 0.8
- X0108004 D0033004 1
- X0108004 P0046004 1
- X0109004 O0000RRR 0.8
- X0109004 D0032004 1
- X0109004 P0046004 1
- X0110004 D0037004 1
- X0110004 P0047004 1
- X0111004 O0000RRR 0.8
- X0111004 D0036004 1
- X0111004 P0047004 1
- X0112004 O0000RRR 0.8
- X0112004 D0035004 1
- X0112004 P0047004 1
- X0113004 O0000RRR 0.8
- X0113004 D0034004 1
- X0113004 P0047004 1
- X0114004 O0000RRR 0.8
- X0114004 D0033004 1
- X0114004 P0047004 1
- X0115004 O0000RRR 0.8
- X0115004 D0032004 1
- X0115004 P0047004 1
- X0116004 D0038004 1
- X0116004 P0048004 1
- X0117004 O0000RRR 0.8
- X0117004 D0037004 1
- X0117004 P0048004 1
- X0118004 O0000RRR 0.8
- X0118004 D0036004 1
- X0118004 P0048004 1
- X0119004 O0000RRR 0.8
- X0119004 D0035004 1
- X0119004 P0048004 1
- X0120004 O0000RRR 0.8
- X0120004 D0034004 1
- X0120004 P0048004 1
- X0121004 O0000RRR 0.8
- X0121004 D0033004 1
- X0121004 P0048004 1
- X0122004 O0000RRR 0.8
- X0122004 D0032004 1
- X0122004 P0048004 1
- X0123004 D0039004 1
- X0123004 P0049004 1
- X0124004 O0000RRR 0.8
- X0124004 D0038004 1
- X0124004 P0049004 1
- X0125004 O0000RRR 0.8
- X0125004 D0037004 1
- X0125004 P0049004 1
- X0126004 O0000RRR 0.8
- X0126004 D0036004 1
- X0126004 P0049004 1
- X0127004 O0000RRR 0.8
- X0127004 D0035004 1
- X0127004 P0049004 1
- X0128004 O0000RRR 0.8
- X0128004 D0034004 1
- X0128004 P0049004 1
- X0129004 O0000RRR 0.8
- X0129004 D0033004 1
- X0129004 P0049004 1
- X0130004 O0000RRR 0.8
- X0130004 D0032004 1
- X0130004 P0049004 1
- X0131004 D0040004 1
- X0131004 P0050004 1
- X0132004 O0000RRR 0.8
- X0132004 D0039004 1
- X0132004 P0050004 1
- X0133004 O0000RRR 0.8
- X0133004 D0038004 1
- X0133004 P0050004 1
- X0134004 O0000RRR 0.8
- X0134004 D0037004 1
- X0134004 P0050004 1
- X0135004 O0000RRR 0.8
- X0135004 D0036004 1
- X0135004 P0050004 1
- X0136004 O0000RRR 0.8
- X0136004 D0035004 1
- X0136004 P0050004 1
- X0137004 O0000RRR 0.8
- X0137004 D0034004 1
- X0137004 P0050004 1
- X0138004 O0000RRR 0.8
- X0138004 D0033004 1
- X0138004 P0050004 1
- X0139004 O0000RRR 0.8
- X0139004 D0032004 1
- X0139004 P0050004 1
- X0140004 D0041004 1
- X0140004 P0051004 1
- X0141004 O0000RRR 0.8
- X0141004 D0040004 1
- X0141004 P0051004 1
- X0142004 O0000RRR 0.8
- X0142004 D0039004 1
- X0142004 P0051004 1
- X0143004 O0000RRR 0.8
- X0143004 D0038004 1
- X0143004 P0051004 1
- X0144004 O0000RRR 0.8
- X0144004 D0037004 1
- X0144004 P0051004 1
- X0145004 O0000RRR 0.8
- X0145004 D0036004 1
- X0145004 P0051004 1
- X0146004 O0000RRR 0.8
- X0146004 D0035004 1
- X0146004 P0051004 1
- X0147004 O0000RRR 0.8
- X0147004 D0034004 1
- X0147004 P0051004 1
- X0148004 O0000RRR 0.8
- X0148004 D0033004 1
- X0148004 P0051004 1
- X0149004 O0000RRR 0.8
- X0149004 D0032004 1
- X0149004 P0051004 1
- INT0007 'MARKER' 'INTORG'
- Z0075005 O0000RRR 45.3
- Z0075005 S0052005 -201
- Z0076005 O0000RRR 45.3
- Z0076005 S0053005 -201
- Z0077005 O0000RRR 45.3
- Z0077005 S0054005 -201
- Z0078005 O0000RRR 45.3
- Z0078005 S0055005 -201
- Z0079005 O0000RRR 45.3
- Z0079005 S0056005 -201
- Z0080005 O0000RRR 45.3
- Z0080005 S0057005 -201
- Z0081005 O0000RRR 45.3
- Z0081005 S0058005 -201
- Z0082005 O0000RRR 45.3
- Z0082005 S0059005 -201
- Z0083005 O0000RRR 45.3
- Z0083005 S0060005 -201
- Z0084005 O0000RRR 45.3
- Z0084005 S0061005 -201
- INT0007 'MARKER' 'INTEND'
- Y0085005 O0000RRR 74.8
- Y0085005 P0042005 -1
- Y0085005 S0052005 1
- Y0085005 C0062005 1
- Y0086005 O0000RRR 75.84
- Y0086005 P0043005 -1
- Y0086005 S0053005 1
- Y0086005 C0062005 1
- Y0087005 O0000RRR 76.88
- Y0087005 P0044005 -1
- Y0087005 S0054005 1
- Y0087005 C0062005 1
- Y0088005 O0000RRR 77.92
- Y0088005 P0045005 -1
- Y0088005 S0055005 1
- Y0088005 C0062005 1
- Y0089005 O0000RRR 78.96
- Y0089005 P0046005 -1
- Y0089005 S0056005 1
- Y0089005 C0062005 1
- Y0090005 O0000RRR 80
- Y0090005 P0047005 -1
- Y0090005 S0057005 1
- Y0090005 C0062005 1
- Y0091005 O0000RRR 81.04
- Y0091005 P0048005 -1
- Y0091005 S0058005 1
- Y0091005 C0062005 1
- Y0092005 O0000RRR 82.08
- Y0092005 P0049005 -1
- Y0092005 S0059005 1
- Y0092005 C0062005 1
- Y0093005 O0000RRR 83.12
- Y0093005 P0050005 -1
- Y0093005 S0060005 1
- Y0093005 C0062005 1
- Y0094005 O0000RRR 84.16
- Y0094005 P0051005 -1
- Y0094005 S0061005 1
- Y0094005 C0062005 1
- X0095005 D0032005 1
- X0095005 P0042005 1
- X0096005 D0033005 1
- X0096005 P0043005 1
- X0097005 O0000RRR 0.8
- X0097005 D0032005 1
- X0097005 P0043005 1
- X0098005 D0034005 1
- X0098005 P0044005 1
- X0099005 O0000RRR 0.8
- X0099005 D0033005 1
- X0099005 P0044005 1
- X0100005 O0000RRR 0.8
- X0100005 D0032005 1
- X0100005 P0044005 1
- X0101005 D0035005 1
- X0101005 P0045005 1
- X0102005 O0000RRR 0.8
- X0102005 D0034005 1
- X0102005 P0045005 1
- X0103005 O0000RRR 0.8
- X0103005 D0033005 1
- X0103005 P0045005 1
- X0104005 O0000RRR 0.8
- X0104005 D0032005 1
- X0104005 P0045005 1
- X0105005 D0036005 1
- X0105005 P0046005 1
- X0106005 O0000RRR 0.8
- X0106005 D0035005 1
- X0106005 P0046005 1
- X0107005 O0000RRR 0.8
- X0107005 D0034005 1
- X0107005 P0046005 1
- X0108005 O0000RRR 0.8
- X0108005 D0033005 1
- X0108005 P0046005 1
- X0109005 O0000RRR 0.8
- X0109005 D0032005 1
- X0109005 P0046005 1
- X0110005 D0037005 1
- X0110005 P0047005 1
- X0111005 O0000RRR 0.8
- X0111005 D0036005 1
- X0111005 P0047005 1
- X0112005 O0000RRR 0.8
- X0112005 D0035005 1
- X0112005 P0047005 1
- X0113005 O0000RRR 0.8
- X0113005 D0034005 1
- X0113005 P0047005 1
- X0114005 O0000RRR 0.8
- X0114005 D0033005 1
- X0114005 P0047005 1
- X0115005 O0000RRR 0.8
- X0115005 D0032005 1
- X0115005 P0047005 1
- X0116005 D0038005 1
- X0116005 P0048005 1
- X0117005 O0000RRR 0.8
- X0117005 D0037005 1
- X0117005 P0048005 1
- X0118005 O0000RRR 0.8
- X0118005 D0036005 1
- X0118005 P0048005 1
- X0119005 O0000RRR 0.8
- X0119005 D0035005 1
- X0119005 P0048005 1
- X0120005 O0000RRR 0.8
- X0120005 D0034005 1
- X0120005 P0048005 1
- X0121005 O0000RRR 0.8
- X0121005 D0033005 1
- X0121005 P0048005 1
- X0122005 O0000RRR 0.8
- X0122005 D0032005 1
- X0122005 P0048005 1
- X0123005 D0039005 1
- X0123005 P0049005 1
- X0124005 O0000RRR 0.8
- X0124005 D0038005 1
- X0124005 P0049005 1
- X0125005 O0000RRR 0.8
- X0125005 D0037005 1
- X0125005 P0049005 1
- X0126005 O0000RRR 0.8
- X0126005 D0036005 1
- X0126005 P0049005 1
- X0127005 O0000RRR 0.8
- X0127005 D0035005 1
- X0127005 P0049005 1
- X0128005 O0000RRR 0.8
- X0128005 D0034005 1
- X0128005 P0049005 1
- X0129005 O0000RRR 0.8
- X0129005 D0033005 1
- X0129005 P0049005 1
- X0130005 O0000RRR 0.8
- X0130005 D0032005 1
- X0130005 P0049005 1
- X0131005 D0040005 1
- X0131005 P0050005 1
- X0132005 O0000RRR 0.8
- X0132005 D0039005 1
- X0132005 P0050005 1
- X0133005 O0000RRR 0.8
- X0133005 D0038005 1
- X0133005 P0050005 1
- X0134005 O0000RRR 0.8
- X0134005 D0037005 1
- X0134005 P0050005 1
- X0135005 O0000RRR 0.8
- X0135005 D0036005 1
- X0135005 P0050005 1
- X0136005 O0000RRR 0.8
- X0136005 D0035005 1
- X0136005 P0050005 1
- X0137005 O0000RRR 0.8
- X0137005 D0034005 1
- X0137005 P0050005 1
- X0138005 O0000RRR 0.8
- X0138005 D0033005 1
- X0138005 P0050005 1
- X0139005 O0000RRR 0.8
- X0139005 D0032005 1
- X0139005 P0050005 1
- X0140005 D0041005 1
- X0140005 P0051005 1
- X0141005 O0000RRR 0.8
- X0141005 D0040005 1
- X0141005 P0051005 1
- X0142005 O0000RRR 0.8
- X0142005 D0039005 1
- X0142005 P0051005 1
- X0143005 O0000RRR 0.8
- X0143005 D0038005 1
- X0143005 P0051005 1
- X0144005 O0000RRR 0.8
- X0144005 D0037005 1
- X0144005 P0051005 1
- X0145005 O0000RRR 0.8
- X0145005 D0036005 1
- X0145005 P0051005 1
- X0146005 O0000RRR 0.8
- X0146005 D0035005 1
- X0146005 P0051005 1
- X0147005 O0000RRR 0.8
- X0147005 D0034005 1
- X0147005 P0051005 1
- X0148005 O0000RRR 0.8
- X0148005 D0033005 1
- X0148005 P0051005 1
- X0149005 O0000RRR 0.8
- X0149005 D0032005 1
- X0149005 P0051005 1
- INT0008 'MARKER' 'INTORG'
- Z0075006 O0000RRR 45.3
- Z0075006 S0052006 -201
- Z0076006 O0000RRR 45.3
- Z0076006 S0053006 -201
- Z0077006 O0000RRR 45.3
- Z0077006 S0054006 -201
- Z0078006 O0000RRR 45.3
- Z0078006 S0055006 -201
- Z0079006 O0000RRR 45.3
- Z0079006 S0056006 -201
- Z0080006 O0000RRR 45.3
- Z0080006 S0057006 -201
- Z0081006 O0000RRR 45.3
- Z0081006 S0058006 -201
- Z0082006 O0000RRR 45.3
- Z0082006 S0059006 -201
- Z0083006 O0000RRR 45.3
- Z0083006 S0060006 -201
- Z0084006 O0000RRR 45.3
- Z0084006 S0061006 -201
- INT0008 'MARKER' 'INTEND'
- Y0085006 O0000RRR 74.8
- Y0085006 P0042006 -1
- Y0085006 S0052006 1
- Y0085006 C0062006 1
- Y0086006 O0000RRR 75.84
- Y0086006 P0043006 -1
- Y0086006 S0053006 1
- Y0086006 C0062006 1
- Y0087006 O0000RRR 76.88
- Y0087006 P0044006 -1
- Y0087006 S0054006 1
- Y0087006 C0062006 1
- Y0088006 O0000RRR 77.92
- Y0088006 P0045006 -1
- Y0088006 S0055006 1
- Y0088006 C0062006 1
- Y0089006 O0000RRR 78.96
- Y0089006 P0046006 -1
- Y0089006 S0056006 1
- Y0089006 C0062006 1
- Y0090006 O0000RRR 80
- Y0090006 P0047006 -1
- Y0090006 S0057006 1
- Y0090006 C0062006 1
- Y0091006 O0000RRR 81.04
- Y0091006 P0048006 -1
- Y0091006 S0058006 1
- Y0091006 C0062006 1
- Y0092006 O0000RRR 82.08
- Y0092006 P0049006 -1
- Y0092006 S0059006 1
- Y0092006 C0062006 1
- Y0093006 O0000RRR 83.12
- Y0093006 P0050006 -1
- Y0093006 S0060006 1
- Y0093006 C0062006 1
- Y0094006 O0000RRR 84.16
- Y0094006 P0051006 -1
- Y0094006 S0061006 1
- Y0094006 C0062006 1
- X0095006 D0032006 1
- X0095006 P0042006 1
- X0096006 D0033006 1
- X0096006 P0043006 1
- X0097006 O0000RRR 0.8
- X0097006 D0032006 1
- X0097006 P0043006 1
- X0098006 D0034006 1
- X0098006 P0044006 1
- X0099006 O0000RRR 0.8
- X0099006 D0033006 1
- X0099006 P0044006 1
- X0100006 O0000RRR 0.8
- X0100006 D0032006 1
- X0100006 P0044006 1
- X0101006 D0035006 1
- X0101006 P0045006 1
- X0102006 O0000RRR 0.8
- X0102006 D0034006 1
- X0102006 P0045006 1
- X0103006 O0000RRR 0.8
- X0103006 D0033006 1
- X0103006 P0045006 1
- X0104006 O0000RRR 0.8
- X0104006 D0032006 1
- X0104006 P0045006 1
- X0105006 D0036006 1
- X0105006 P0046006 1
- X0106006 O0000RRR 0.8
- X0106006 D0035006 1
- X0106006 P0046006 1
- X0107006 O0000RRR 0.8
- X0107006 D0034006 1
- X0107006 P0046006 1
- X0108006 O0000RRR 0.8
- X0108006 D0033006 1
- X0108006 P0046006 1
- X0109006 O0000RRR 0.8
- X0109006 D0032006 1
- X0109006 P0046006 1
- X0110006 D0037006 1
- X0110006 P0047006 1
- X0111006 O0000RRR 0.8
- X0111006 D0036006 1
- X0111006 P0047006 1
- X0112006 O0000RRR 0.8
- X0112006 D0035006 1
- X0112006 P0047006 1
- X0113006 O0000RRR 0.8
- X0113006 D0034006 1
- X0113006 P0047006 1
- X0114006 O0000RRR 0.8
- X0114006 D0033006 1
- X0114006 P0047006 1
- X0115006 O0000RRR 0.8
- X0115006 D0032006 1
- X0115006 P0047006 1
- X0116006 D0038006 1
- X0116006 P0048006 1
- X0117006 O0000RRR 0.8
- X0117006 D0037006 1
- X0117006 P0048006 1
- X0118006 O0000RRR 0.8
- X0118006 D0036006 1
- X0118006 P0048006 1
- X0119006 O0000RRR 0.8
- X0119006 D0035006 1
- X0119006 P0048006 1
- X0120006 O0000RRR 0.8
- X0120006 D0034006 1
- X0120006 P0048006 1
- X0121006 O0000RRR 0.8
- X0121006 D0033006 1
- X0121006 P0048006 1
- X0122006 O0000RRR 0.8
- X0122006 D0032006 1
- X0122006 P0048006 1
- X0123006 D0039006 1
- X0123006 P0049006 1
- X0124006 O0000RRR 0.8
- X0124006 D0038006 1
- X0124006 P0049006 1
- X0125006 O0000RRR 0.8
- X0125006 D0037006 1
- X0125006 P0049006 1
- X0126006 O0000RRR 0.8
- X0126006 D0036006 1
- X0126006 P0049006 1
- X0127006 O0000RRR 0.8
- X0127006 D0035006 1
- X0127006 P0049006 1
- X0128006 O0000RRR 0.8
- X0128006 D0034006 1
- X0128006 P0049006 1
- X0129006 O0000RRR 0.8
- X0129006 D0033006 1
- X0129006 P0049006 1
- X0130006 O0000RRR 0.8
- X0130006 D0032006 1
- X0130006 P0049006 1
- X0131006 D0040006 1
- X0131006 P0050006 1
- X0132006 O0000RRR 0.8
- X0132006 D0039006 1
- X0132006 P0050006 1
- X0133006 O0000RRR 0.8
- X0133006 D0038006 1
- X0133006 P0050006 1
- X0134006 O0000RRR 0.8
- X0134006 D0037006 1
- X0134006 P0050006 1
- X0135006 O0000RRR 0.8
- X0135006 D0036006 1
- X0135006 P0050006 1
- X0136006 O0000RRR 0.8
- X0136006 D0035006 1
- X0136006 P0050006 1
- X0137006 O0000RRR 0.8
- X0137006 D0034006 1
- X0137006 P0050006 1
- X0138006 O0000RRR 0.8
- X0138006 D0033006 1
- X0138006 P0050006 1
- X0139006 O0000RRR 0.8
- X0139006 D0032006 1
- X0139006 P0050006 1
- X0140006 D0041006 1
- X0140006 P0051006 1
- X0141006 O0000RRR 0.8
- X0141006 D0040006 1
- X0141006 P0051006 1
- X0142006 O0000RRR 0.8
- X0142006 D0039006 1
- X0142006 P0051006 1
- X0143006 O0000RRR 0.8
- X0143006 D0038006 1
- X0143006 P0051006 1
- X0144006 O0000RRR 0.8
- X0144006 D0037006 1
- X0144006 P0051006 1
- X0145006 O0000RRR 0.8
- X0145006 D0036006 1
- X0145006 P0051006 1
- X0146006 O0000RRR 0.8
- X0146006 D0035006 1
- X0146006 P0051006 1
- X0147006 O0000RRR 0.8
- X0147006 D0034006 1
- X0147006 P0051006 1
- X0148006 O0000RRR 0.8
- X0148006 D0033006 1
- X0148006 P0051006 1
- X0149006 O0000RRR 0.8
- X0149006 D0032006 1
- X0149006 P0051006 1
- INT0009 'MARKER' 'INTORG'
- Z0075007 O0000RRR 45.3
- Z0075007 S0052007 -201
- Z0076007 O0000RRR 45.3
- Z0076007 S0053007 -201
- Z0077007 O0000RRR 45.3
- Z0077007 S0054007 -201
- Z0078007 O0000RRR 45.3
- Z0078007 S0055007 -201
- Z0079007 O0000RRR 45.3
- Z0079007 S0056007 -201
- Z0080007 O0000RRR 45.3
- Z0080007 S0057007 -201
- Z0081007 O0000RRR 45.3
- Z0081007 S0058007 -201
- Z0082007 O0000RRR 45.3
- Z0082007 S0059007 -201
- Z0083007 O0000RRR 45.3
- Z0083007 S0060007 -201
- Z0084007 O0000RRR 45.3
- Z0084007 S0061007 -201
- INT0009 'MARKER' 'INTEND'
- Y0085007 O0000RRR 74.8
- Y0085007 P0042007 -1
- Y0085007 S0052007 1
- Y0085007 C0062007 1
- Y0086007 O0000RRR 75.84
- Y0086007 P0043007 -1
- Y0086007 S0053007 1
- Y0086007 C0062007 1
- Y0087007 O0000RRR 76.88
- Y0087007 P0044007 -1
- Y0087007 S0054007 1
- Y0087007 C0062007 1
- Y0088007 O0000RRR 77.92
- Y0088007 P0045007 -1
- Y0088007 S0055007 1
- Y0088007 C0062007 1
- Y0089007 O0000RRR 78.96
- Y0089007 P0046007 -1
- Y0089007 S0056007 1
- Y0089007 C0062007 1
- Y0090007 O0000RRR 80
- Y0090007 P0047007 -1
- Y0090007 S0057007 1
- Y0090007 C0062007 1
- Y0091007 O0000RRR 81.04
- Y0091007 P0048007 -1
- Y0091007 S0058007 1
- Y0091007 C0062007 1
- Y0092007 O0000RRR 82.08
- Y0092007 P0049007 -1
- Y0092007 S0059007 1
- Y0092007 C0062007 1
- Y0093007 O0000RRR 83.12
- Y0093007 P0050007 -1
- Y0093007 S0060007 1
- Y0093007 C0062007 1
- Y0094007 O0000RRR 84.16
- Y0094007 P0051007 -1
- Y0094007 S0061007 1
- Y0094007 C0062007 1
- X0095007 D0032007 1
- X0095007 P0042007 1
- X0096007 D0033007 1
- X0096007 P0043007 1
- X0097007 O0000RRR 0.8
- X0097007 D0032007 1
- X0097007 P0043007 1
- X0098007 D0034007 1
- X0098007 P0044007 1
- X0099007 O0000RRR 0.8
- X0099007 D0033007 1
- X0099007 P0044007 1
- X0100007 O0000RRR 0.8
- X0100007 D0032007 1
- X0100007 P0044007 1
- X0101007 D0035007 1
- X0101007 P0045007 1
- X0102007 O0000RRR 0.8
- X0102007 D0034007 1
- X0102007 P0045007 1
- X0103007 O0000RRR 0.8
- X0103007 D0033007 1
- X0103007 P0045007 1
- X0104007 O0000RRR 0.8
- X0104007 D0032007 1
- X0104007 P0045007 1
- X0105007 D0036007 1
- X0105007 P0046007 1
- X0106007 O0000RRR 0.8
- X0106007 D0035007 1
- X0106007 P0046007 1
- X0107007 O0000RRR 0.8
- X0107007 D0034007 1
- X0107007 P0046007 1
- X0108007 O0000RRR 0.8
- X0108007 D0033007 1
- X0108007 P0046007 1
- X0109007 O0000RRR 0.8
- X0109007 D0032007 1
- X0109007 P0046007 1
- X0110007 D0037007 1
- X0110007 P0047007 1
- X0111007 O0000RRR 0.8
- X0111007 D0036007 1
- X0111007 P0047007 1
- X0112007 O0000RRR 0.8
- X0112007 D0035007 1
- X0112007 P0047007 1
- X0113007 O0000RRR 0.8
- X0113007 D0034007 1
- X0113007 P0047007 1
- X0114007 O0000RRR 0.8
- X0114007 D0033007 1
- X0114007 P0047007 1
- X0115007 O0000RRR 0.8
- X0115007 D0032007 1
- X0115007 P0047007 1
- X0116007 D0038007 1
- X0116007 P0048007 1
- X0117007 O0000RRR 0.8
- X0117007 D0037007 1
- X0117007 P0048007 1
- X0118007 O0000RRR 0.8
- X0118007 D0036007 1
- X0118007 P0048007 1
- X0119007 O0000RRR 0.8
- X0119007 D0035007 1
- X0119007 P0048007 1
- X0120007 O0000RRR 0.8
- X0120007 D0034007 1
- X0120007 P0048007 1
- X0121007 O0000RRR 0.8
- X0121007 D0033007 1
- X0121007 P0048007 1
- X0122007 O0000RRR 0.8
- X0122007 D0032007 1
- X0122007 P0048007 1
- X0123007 D0039007 1
- X0123007 P0049007 1
- X0124007 O0000RRR 0.8
- X0124007 D0038007 1
- X0124007 P0049007 1
- X0125007 O0000RRR 0.8
- X0125007 D0037007 1
- X0125007 P0049007 1
- X0126007 O0000RRR 0.8
- X0126007 D0036007 1
- X0126007 P0049007 1
- X0127007 O0000RRR 0.8
- X0127007 D0035007 1
- X0127007 P0049007 1
- X0128007 O0000RRR 0.8
- X0128007 D0034007 1
- X0128007 P0049007 1
- X0129007 O0000RRR 0.8
- X0129007 D0033007 1
- X0129007 P0049007 1
- X0130007 O0000RRR 0.8
- X0130007 D0032007 1
- X0130007 P0049007 1
- X0131007 D0040007 1
- X0131007 P0050007 1
- X0132007 O0000RRR 0.8
- X0132007 D0039007 1
- X0132007 P0050007 1
- X0133007 O0000RRR 0.8
- X0133007 D0038007 1
- X0133007 P0050007 1
- X0134007 O0000RRR 0.8
- X0134007 D0037007 1
- X0134007 P0050007 1
- X0135007 O0000RRR 0.8
- X0135007 D0036007 1
- X0135007 P0050007 1
- X0136007 O0000RRR 0.8
- X0136007 D0035007 1
- X0136007 P0050007 1
- X0137007 O0000RRR 0.8
- X0137007 D0034007 1
- X0137007 P0050007 1
- X0138007 O0000RRR 0.8
- X0138007 D0033007 1
- X0138007 P0050007 1
- X0139007 O0000RRR 0.8
- X0139007 D0032007 1
- X0139007 P0050007 1
- X0140007 D0041007 1
- X0140007 P0051007 1
- X0141007 O0000RRR 0.8
- X0141007 D0040007 1
- X0141007 P0051007 1
- X0142007 O0000RRR 0.8
- X0142007 D0039007 1
- X0142007 P0051007 1
- X0143007 O0000RRR 0.8
- X0143007 D0038007 1
- X0143007 P0051007 1
- X0144007 O0000RRR 0.8
- X0144007 D0037007 1
- X0144007 P0051007 1
- X0145007 O0000RRR 0.8
- X0145007 D0036007 1
- X0145007 P0051007 1
- X0146007 O0000RRR 0.8
- X0146007 D0035007 1
- X0146007 P0051007 1
- X0147007 O0000RRR 0.8
- X0147007 D0034007 1
- X0147007 P0051007 1
- X0148007 O0000RRR 0.8
- X0148007 D0033007 1
- X0148007 P0051007 1
- X0149007 O0000RRR 0.8
- X0149007 D0032007 1
- X0149007 P0051007 1
- INT0010 'MARKER' 'INTORG'
- Z0075008 O0000RRR 45.3
- Z0075008 S0052008 -201
- Z0076008 O0000RRR 45.3
- Z0076008 S0053008 -201
- Z0077008 O0000RRR 45.3
- Z0077008 S0054008 -201
- Z0078008 O0000RRR 45.3
- Z0078008 S0055008 -201
- Z0079008 O0000RRR 45.3
- Z0079008 S0056008 -201
- Z0080008 O0000RRR 45.3
- Z0080008 S0057008 -201
- Z0081008 O0000RRR 45.3
- Z0081008 S0058008 -201
- Z0082008 O0000RRR 45.3
- Z0082008 S0059008 -201
- Z0083008 O0000RRR 45.3
- Z0083008 S0060008 -201
- Z0084008 O0000RRR 45.3
- Z0084008 S0061008 -201
- INT0010 'MARKER' 'INTEND'
- Y0085008 O0000RRR 74.8
- Y0085008 P0042008 -1
- Y0085008 S0052008 1
- Y0085008 C0062008 1
- Y0086008 O0000RRR 75.84
- Y0086008 P0043008 -1
- Y0086008 S0053008 1
- Y0086008 C0062008 1
- Y0087008 O0000RRR 76.88
- Y0087008 P0044008 -1
- Y0087008 S0054008 1
- Y0087008 C0062008 1
- Y0088008 O0000RRR 77.92
- Y0088008 P0045008 -1
- Y0088008 S0055008 1
- Y0088008 C0062008 1
- Y0089008 O0000RRR 78.96
- Y0089008 P0046008 -1
- Y0089008 S0056008 1
- Y0089008 C0062008 1
- Y0090008 O0000RRR 80
- Y0090008 P0047008 -1
- Y0090008 S0057008 1
- Y0090008 C0062008 1
- Y0091008 O0000RRR 81.04
- Y0091008 P0048008 -1
- Y0091008 S0058008 1
- Y0091008 C0062008 1
- Y0092008 O0000RRR 82.08
- Y0092008 P0049008 -1
- Y0092008 S0059008 1
- Y0092008 C0062008 1
- Y0093008 O0000RRR 83.12
- Y0093008 P0050008 -1
- Y0093008 S0060008 1
- Y0093008 C0062008 1
- Y0094008 O0000RRR 84.16
- Y0094008 P0051008 -1
- Y0094008 S0061008 1
- Y0094008 C0062008 1
- X0095008 D0032008 1
- X0095008 P0042008 1
- X0096008 D0033008 1
- X0096008 P0043008 1
- X0097008 O0000RRR 0.8
- X0097008 D0032008 1
- X0097008 P0043008 1
- X0098008 D0034008 1
- X0098008 P0044008 1
- X0099008 O0000RRR 0.8
- X0099008 D0033008 1
- X0099008 P0044008 1
- X0100008 O0000RRR 0.8
- X0100008 D0032008 1
- X0100008 P0044008 1
- X0101008 D0035008 1
- X0101008 P0045008 1
- X0102008 O0000RRR 0.8
- X0102008 D0034008 1
- X0102008 P0045008 1
- X0103008 O0000RRR 0.8
- X0103008 D0033008 1
- X0103008 P0045008 1
- X0104008 O0000RRR 0.8
- X0104008 D0032008 1
- X0104008 P0045008 1
- X0105008 D0036008 1
- X0105008 P0046008 1
- X0106008 O0000RRR 0.8
- X0106008 D0035008 1
- X0106008 P0046008 1
- X0107008 O0000RRR 0.8
- X0107008 D0034008 1
- X0107008 P0046008 1
- X0108008 O0000RRR 0.8
- X0108008 D0033008 1
- X0108008 P0046008 1
- X0109008 O0000RRR 0.8
- X0109008 D0032008 1
- X0109008 P0046008 1
- X0110008 D0037008 1
- X0110008 P0047008 1
- X0111008 O0000RRR 0.8
- X0111008 D0036008 1
- X0111008 P0047008 1
- X0112008 O0000RRR 0.8
- X0112008 D0035008 1
- X0112008 P0047008 1
- X0113008 O0000RRR 0.8
- X0113008 D0034008 1
- X0113008 P0047008 1
- X0114008 O0000RRR 0.8
- X0114008 D0033008 1
- X0114008 P0047008 1
- X0115008 O0000RRR 0.8
- X0115008 D0032008 1
- X0115008 P0047008 1
- X0116008 D0038008 1
- X0116008 P0048008 1
- X0117008 O0000RRR 0.8
- X0117008 D0037008 1
- X0117008 P0048008 1
- X0118008 O0000RRR 0.8
- X0118008 D0036008 1
- X0118008 P0048008 1
- X0119008 O0000RRR 0.8
- X0119008 D0035008 1
- X0119008 P0048008 1
- X0120008 O0000RRR 0.8
- X0120008 D0034008 1
- X0120008 P0048008 1
- X0121008 O0000RRR 0.8
- X0121008 D0033008 1
- X0121008 P0048008 1
- X0122008 O0000RRR 0.8
- X0122008 D0032008 1
- X0122008 P0048008 1
- X0123008 D0039008 1
- X0123008 P0049008 1
- X0124008 O0000RRR 0.8
- X0124008 D0038008 1
- X0124008 P0049008 1
- X0125008 O0000RRR 0.8
- X0125008 D0037008 1
- X0125008 P0049008 1
- X0126008 O0000RRR 0.8
- X0126008 D0036008 1
- X0126008 P0049008 1
- X0127008 O0000RRR 0.8
- X0127008 D0035008 1
- X0127008 P0049008 1
- X0128008 O0000RRR 0.8
- X0128008 D0034008 1
- X0128008 P0049008 1
- X0129008 O0000RRR 0.8
- X0129008 D0033008 1
- X0129008 P0049008 1
- X0130008 O0000RRR 0.8
- X0130008 D0032008 1
- X0130008 P0049008 1
- X0131008 D0040008 1
- X0131008 P0050008 1
- X0132008 O0000RRR 0.8
- X0132008 D0039008 1
- X0132008 P0050008 1
- X0133008 O0000RRR 0.8
- X0133008 D0038008 1
- X0133008 P0050008 1
- X0134008 O0000RRR 0.8
- X0134008 D0037008 1
- X0134008 P0050008 1
- X0135008 O0000RRR 0.8
- X0135008 D0036008 1
- X0135008 P0050008 1
- X0136008 O0000RRR 0.8
- X0136008 D0035008 1
- X0136008 P0050008 1
- X0137008 O0000RRR 0.8
- X0137008 D0034008 1
- X0137008 P0050008 1
- X0138008 O0000RRR 0.8
- X0138008 D0033008 1
- X0138008 P0050008 1
- X0139008 O0000RRR 0.8
- X0139008 D0032008 1
- X0139008 P0050008 1
- X0140008 D0041008 1
- X0140008 P0051008 1
- X0141008 O0000RRR 0.8
- X0141008 D0040008 1
- X0141008 P0051008 1
- X0142008 O0000RRR 0.8
- X0142008 D0039008 1
- X0142008 P0051008 1
- X0143008 O0000RRR 0.8
- X0143008 D0038008 1
- X0143008 P0051008 1
- X0144008 O0000RRR 0.8
- X0144008 D0037008 1
- X0144008 P0051008 1
- X0145008 O0000RRR 0.8
- X0145008 D0036008 1
- X0145008 P0051008 1
- X0146008 O0000RRR 0.8
- X0146008 D0035008 1
- X0146008 P0051008 1
- X0147008 O0000RRR 0.8
- X0147008 D0034008 1
- X0147008 P0051008 1
- X0148008 O0000RRR 0.8
- X0148008 D0033008 1
- X0148008 P0051008 1
- X0149008 O0000RRR 0.8
- X0149008 D0032008 1
- X0149008 P0051008 1
- INT0011 'MARKER' 'INTORG'
- Z0075009 O0000RRR 45.3
- Z0075009 S0052009 -201
- Z0076009 O0000RRR 45.3
- Z0076009 S0053009 -201
- Z0077009 O0000RRR 45.3
- Z0077009 S0054009 -201
- Z0078009 O0000RRR 45.3
- Z0078009 S0055009 -201
- Z0079009 O0000RRR 45.3
- Z0079009 S0056009 -201
- Z0080009 O0000RRR 45.3
- Z0080009 S0057009 -201
- Z0081009 O0000RRR 45.3
- Z0081009 S0058009 -201
- Z0082009 O0000RRR 45.3
- Z0082009 S0059009 -201
- Z0083009 O0000RRR 45.3
- Z0083009 S0060009 -201
- Z0084009 O0000RRR 45.3
- Z0084009 S0061009 -201
- INT0011 'MARKER' 'INTEND'
- Y0085009 O0000RRR 74.8
- Y0085009 P0042009 -1
- Y0085009 S0052009 1
- Y0085009 C0062009 1
- Y0086009 O0000RRR 75.84
- Y0086009 P0043009 -1
- Y0086009 S0053009 1
- Y0086009 C0062009 1
- Y0087009 O0000RRR 76.88
- Y0087009 P0044009 -1
- Y0087009 S0054009 1
- Y0087009 C0062009 1
- Y0088009 O0000RRR 77.92
- Y0088009 P0045009 -1
- Y0088009 S0055009 1
- Y0088009 C0062009 1
- Y0089009 O0000RRR 78.96
- Y0089009 P0046009 -1
- Y0089009 S0056009 1
- Y0089009 C0062009 1
- Y0090009 O0000RRR 80
- Y0090009 P0047009 -1
- Y0090009 S0057009 1
- Y0090009 C0062009 1
- Y0091009 O0000RRR 81.04
- Y0091009 P0048009 -1
- Y0091009 S0058009 1
- Y0091009 C0062009 1
- Y0092009 O0000RRR 82.08
- Y0092009 P0049009 -1
- Y0092009 S0059009 1
- Y0092009 C0062009 1
- Y0093009 O0000RRR 83.12
- Y0093009 P0050009 -1
- Y0093009 S0060009 1
- Y0093009 C0062009 1
- Y0094009 O0000RRR 84.16
- Y0094009 P0051009 -1
- Y0094009 S0061009 1
- Y0094009 C0062009 1
- X0095009 D0032009 1
- X0095009 P0042009 1
- X0096009 D0033009 1
- X0096009 P0043009 1
- X0097009 O0000RRR 0.8
- X0097009 D0032009 1
- X0097009 P0043009 1
- X0098009 D0034009 1
- X0098009 P0044009 1
- X0099009 O0000RRR 0.8
- X0099009 D0033009 1
- X0099009 P0044009 1
- X0100009 O0000RRR 0.8
- X0100009 D0032009 1
- X0100009 P0044009 1
- X0101009 D0035009 1
- X0101009 P0045009 1
- X0102009 O0000RRR 0.8
- X0102009 D0034009 1
- X0102009 P0045009 1
- X0103009 O0000RRR 0.8
- X0103009 D0033009 1
- X0103009 P0045009 1
- X0104009 O0000RRR 0.8
- X0104009 D0032009 1
- X0104009 P0045009 1
- X0105009 D0036009 1
- X0105009 P0046009 1
- X0106009 O0000RRR 0.8
- X0106009 D0035009 1
- X0106009 P0046009 1
- X0107009 O0000RRR 0.8
- X0107009 D0034009 1
- X0107009 P0046009 1
- X0108009 O0000RRR 0.8
- X0108009 D0033009 1
- X0108009 P0046009 1
- X0109009 O0000RRR 0.8
- X0109009 D0032009 1
- X0109009 P0046009 1
- X0110009 D0037009 1
- X0110009 P0047009 1
- X0111009 O0000RRR 0.8
- X0111009 D0036009 1
- X0111009 P0047009 1
- X0112009 O0000RRR 0.8
- X0112009 D0035009 1
- X0112009 P0047009 1
- X0113009 O0000RRR 0.8
- X0113009 D0034009 1
- X0113009 P0047009 1
- X0114009 O0000RRR 0.8
- X0114009 D0033009 1
- X0114009 P0047009 1
- X0115009 O0000RRR 0.8
- X0115009 D0032009 1
- X0115009 P0047009 1
- X0116009 D0038009 1
- X0116009 P0048009 1
- X0117009 O0000RRR 0.8
- X0117009 D0037009 1
- X0117009 P0048009 1
- X0118009 O0000RRR 0.8
- X0118009 D0036009 1
- X0118009 P0048009 1
- X0119009 O0000RRR 0.8
- X0119009 D0035009 1
- X0119009 P0048009 1
- X0120009 O0000RRR 0.8
- X0120009 D0034009 1
- X0120009 P0048009 1
- X0121009 O0000RRR 0.8
- X0121009 D0033009 1
- X0121009 P0048009 1
- X0122009 O0000RRR 0.8
- X0122009 D0032009 1
- X0122009 P0048009 1
- X0123009 D0039009 1
- X0123009 P0049009 1
- X0124009 O0000RRR 0.8
- X0124009 D0038009 1
- X0124009 P0049009 1
- X0125009 O0000RRR 0.8
- X0125009 D0037009 1
- X0125009 P0049009 1
- X0126009 O0000RRR 0.8
- X0126009 D0036009 1
- X0126009 P0049009 1
- X0127009 O0000RRR 0.8
- X0127009 D0035009 1
- X0127009 P0049009 1
- X0128009 O0000RRR 0.8
- X0128009 D0034009 1
- X0128009 P0049009 1
- X0129009 O0000RRR 0.8
- X0129009 D0033009 1
- X0129009 P0049009 1
- X0130009 O0000RRR 0.8
- X0130009 D0032009 1
- X0130009 P0049009 1
- X0131009 D0040009 1
- X0131009 P0050009 1
- X0132009 O0000RRR 0.8
- X0132009 D0039009 1
- X0132009 P0050009 1
- X0133009 O0000RRR 0.8
- X0133009 D0038009 1
- X0133009 P0050009 1
- X0134009 O0000RRR 0.8
- X0134009 D0037009 1
- X0134009 P0050009 1
- X0135009 O0000RRR 0.8
- X0135009 D0036009 1
- X0135009 P0050009 1
- X0136009 O0000RRR 0.8
- X0136009 D0035009 1
- X0136009 P0050009 1
- X0137009 O0000RRR 0.8
- X0137009 D0034009 1
- X0137009 P0050009 1
- X0138009 O0000RRR 0.8
- X0138009 D0033009 1
- X0138009 P0050009 1
- X0139009 O0000RRR 0.8
- X0139009 D0032009 1
- X0139009 P0050009 1
- X0140009 D0041009 1
- X0140009 P0051009 1
- X0141009 O0000RRR 0.8
- X0141009 D0040009 1
- X0141009 P0051009 1
- X0142009 O0000RRR 0.8
- X0142009 D0039009 1
- X0142009 P0051009 1
- X0143009 O0000RRR 0.8
- X0143009 D0038009 1
- X0143009 P0051009 1
- X0144009 O0000RRR 0.8
- X0144009 D0037009 1
- X0144009 P0051009 1
- X0145009 O0000RRR 0.8
- X0145009 D0036009 1
- X0145009 P0051009 1
- X0146009 O0000RRR 0.8
- X0146009 D0035009 1
- X0146009 P0051009 1
- X0147009 O0000RRR 0.8
- X0147009 D0034009 1
- X0147009 P0051009 1
- X0148009 O0000RRR 0.8
- X0148009 D0033009 1
- X0148009 P0051009 1
- X0149009 O0000RRR 0.8
- X0149009 D0032009 1
- X0149009 P0051009 1
-RHS
- RHS1 D0001RRR 2.5
- RHS1 D0002RRR 7.5
- RHS1 D0003RRR 12.5
- RHS1 D0004RRR 10
- RHS1 D0005RRR 35
- RHS1 D0006RRR 25
- RHS1 D0007RRR 15
- RHS1 D0008RRR 12.5
- RHS1 D0009RRR 12.5
- RHS1 D0010RRR 5
- RHS1 P0011RRR 0
- RHS1 P0012RRR 0
- RHS1 P0013RRR 0
- RHS1 P0014RRR 0
- RHS1 P0015RRR 0
- RHS1 P0016RRR 0
- RHS1 P0017RRR 0
- RHS1 P0018RRR 0
- RHS1 P0019RRR 0
- RHS1 P0020RRR 0
- RHS1 S0021RRR 0
- RHS1 S0022RRR 0
- RHS1 S0023RRR 0
- RHS1 S0024RRR 0
- RHS1 S0025RRR 0
- RHS1 S0026RRR 0
- RHS1 S0027RRR 0
- RHS1 S0028RRR 0
- RHS1 S0029RRR 0
- RHS1 S0030RRR 0
- RHS1 C0031RRR 200
- RHS1 D0032000 1.25
- RHS1 D0033000 3.75
- RHS1 D0034000 6.25
- RHS1 D0035000 5
- RHS1 D0036000 17.5
- RHS1 D0037000 12.5
- RHS1 D0038000 7.5
- RHS1 D0039000 6.25
- RHS1 D0040000 6.25
- RHS1 D0041000 2.5
- RHS1 P0042000 0
- RHS1 P0043000 0
- RHS1 P0044000 0
- RHS1 P0045000 0
- RHS1 P0046000 0
- RHS1 P0047000 0
- RHS1 P0048000 0
- RHS1 P0049000 0
- RHS1 P0050000 0
- RHS1 P0051000 0
- RHS1 S0052000 0
- RHS1 S0053000 0
- RHS1 S0054000 0
- RHS1 S0055000 0
- RHS1 S0056000 0
- RHS1 S0057000 0
- RHS1 S0058000 0
- RHS1 S0059000 0
- RHS1 S0060000 0
- RHS1 S0061000 0
- RHS1 C0062000 200
- RHS1 D0032001 1.5
- RHS1 D0033001 4.5
- RHS1 D0034001 7.5
- RHS1 D0035001 6
- RHS1 D0036001 21
- RHS1 D0037001 15
- RHS1 D0038001 9
- RHS1 D0039001 7.5
- RHS1 D0040001 7.5
- RHS1 D0041001 3
- RHS1 P0042001 0
- RHS1 P0043001 0
- RHS1 P0044001 0
- RHS1 P0045001 0
- RHS1 P0046001 0
- RHS1 P0047001 0
- RHS1 P0048001 0
- RHS1 P0049001 0
- RHS1 P0050001 0
- RHS1 P0051001 0
- RHS1 S0052001 0
- RHS1 S0053001 0
- RHS1 S0054001 0
- RHS1 S0055001 0
- RHS1 S0056001 0
- RHS1 S0057001 0
- RHS1 S0058001 0
- RHS1 S0059001 0
- RHS1 S0060001 0
- RHS1 S0061001 0
- RHS1 C0062001 200
- RHS1 D0032002 1.75
- RHS1 D0033002 5.25
- RHS1 D0034002 8.75
- RHS1 D0035002 7
- RHS1 D0036002 24.5
- RHS1 D0037002 17.5
- RHS1 D0038002 10.5
- RHS1 D0039002 8.75
- RHS1 D0040002 8.75
- RHS1 D0041002 3.5
- RHS1 P0042002 0
- RHS1 P0043002 0
- RHS1 P0044002 0
- RHS1 P0045002 0
- RHS1 P0046002 0
- RHS1 P0047002 0
- RHS1 P0048002 0
- RHS1 P0049002 0
- RHS1 P0050002 0
- RHS1 P0051002 0
- RHS1 S0052002 0
- RHS1 S0053002 0
- RHS1 S0054002 0
- RHS1 S0055002 0
- RHS1 S0056002 0
- RHS1 S0057002 0
- RHS1 S0058002 0
- RHS1 S0059002 0
- RHS1 S0060002 0
- RHS1 S0061002 0
- RHS1 C0062002 200
- RHS1 D0032003 2
- RHS1 D0033003 6
- RHS1 D0034003 10
- RHS1 D0035003 8
- RHS1 D0036003 28
- RHS1 D0037003 20
- RHS1 D0038003 12
- RHS1 D0039003 10
- RHS1 D0040003 10
- RHS1 D0041003 4
- RHS1 P0042003 0
- RHS1 P0043003 0
- RHS1 P0044003 0
- RHS1 P0045003 0
- RHS1 P0046003 0
- RHS1 P0047003 0
- RHS1 P0048003 0
- RHS1 P0049003 0
- RHS1 P0050003 0
- RHS1 P0051003 0
- RHS1 S0052003 0
- RHS1 S0053003 0
- RHS1 S0054003 0
- RHS1 S0055003 0
- RHS1 S0056003 0
- RHS1 S0057003 0
- RHS1 S0058003 0
- RHS1 S0059003 0
- RHS1 S0060003 0
- RHS1 S0061003 0
- RHS1 C0062003 200
- RHS1 D0032004 2.25
- RHS1 D0033004 6.75
- RHS1 D0034004 11.25
- RHS1 D0035004 9
- RHS1 D0036004 31.5
- RHS1 D0037004 22.5
- RHS1 D0038004 13.5
- RHS1 D0039004 11.25
- RHS1 D0040004 11.25
- RHS1 D0041004 4.5
- RHS1 P0042004 0
- RHS1 P0043004 0
- RHS1 P0044004 0
- RHS1 P0045004 0
- RHS1 P0046004 0
- RHS1 P0047004 0
- RHS1 P0048004 0
- RHS1 P0049004 0
- RHS1 P0050004 0
- RHS1 P0051004 0
- RHS1 S0052004 0
- RHS1 S0053004 0
- RHS1 S0054004 0
- RHS1 S0055004 0
- RHS1 S0056004 0
- RHS1 S0057004 0
- RHS1 S0058004 0
- RHS1 S0059004 0
- RHS1 S0060004 0
- RHS1 S0061004 0
- RHS1 C0062004 200
- RHS1 D0032005 2.75
- RHS1 D0033005 8.25
- RHS1 D0034005 13.75
- RHS1 D0035005 11
- RHS1 D0036005 38.5
- RHS1 D0037005 27.5
- RHS1 D0038005 16.5
- RHS1 D0039005 13.75
- RHS1 D0040005 13.75
- RHS1 D0041005 5.5
- RHS1 P0042005 0
- RHS1 P0043005 0
- RHS1 P0044005 0
- RHS1 P0045005 0
- RHS1 P0046005 0
- RHS1 P0047005 0
- RHS1 P0048005 0
- RHS1 P0049005 0
- RHS1 P0050005 0
- RHS1 P0051005 0
- RHS1 S0052005 0
- RHS1 S0053005 0
- RHS1 S0054005 0
- RHS1 S0055005 0
- RHS1 S0056005 0
- RHS1 S0057005 0
- RHS1 S0058005 0
- RHS1 S0059005 0
- RHS1 S0060005 0
- RHS1 S0061005 0
- RHS1 C0062005 200
- RHS1 D0032006 3
- RHS1 D0033006 9
- RHS1 D0034006 15
- RHS1 D0035006 12
- RHS1 D0036006 42
- RHS1 D0037006 30
- RHS1 D0038006 18
- RHS1 D0039006 15
- RHS1 D0040006 15
- RHS1 D0041006 6
- RHS1 P0042006 0
- RHS1 P0043006 0
- RHS1 P0044006 0
- RHS1 P0045006 0
- RHS1 P0046006 0
- RHS1 P0047006 0
- RHS1 P0048006 0
- RHS1 P0049006 0
- RHS1 P0050006 0
- RHS1 P0051006 0
- RHS1 S0052006 0
- RHS1 S0053006 0
- RHS1 S0054006 0
- RHS1 S0055006 0
- RHS1 S0056006 0
- RHS1 S0057006 0
- RHS1 S0058006 0
- RHS1 S0059006 0
- RHS1 S0060006 0
- RHS1 S0061006 0
- RHS1 C0062006 200
- RHS1 D0032007 3.25
- RHS1 D0033007 9.75
- RHS1 D0034007 16.25
- RHS1 D0035007 13
- RHS1 D0036007 45.5
- RHS1 D0037007 32.5
- RHS1 D0038007 19.5
- RHS1 D0039007 16.25
- RHS1 D0040007 16.25
- RHS1 D0041007 6.5
- RHS1 P0042007 0
- RHS1 P0043007 0
- RHS1 P0044007 0
- RHS1 P0045007 0
- RHS1 P0046007 0
- RHS1 P0047007 0
- RHS1 P0048007 0
- RHS1 P0049007 0
- RHS1 P0050007 0
- RHS1 P0051007 0
- RHS1 S0052007 0
- RHS1 S0053007 0
- RHS1 S0054007 0
- RHS1 S0055007 0
- RHS1 S0056007 0
- RHS1 S0057007 0
- RHS1 S0058007 0
- RHS1 S0059007 0
- RHS1 S0060007 0
- RHS1 S0061007 0
- RHS1 C0062007 200
- RHS1 D0032008 3.5
- RHS1 D0033008 10.5
- RHS1 D0034008 17.5
- RHS1 D0035008 14
- RHS1 D0036008 49
- RHS1 D0037008 35
- RHS1 D0038008 21
- RHS1 D0039008 17.5
- RHS1 D0040008 17.5
- RHS1 D0041008 7
- RHS1 P0042008 0
- RHS1 P0043008 0
- RHS1 P0044008 0
- RHS1 P0045008 0
- RHS1 P0046008 0
- RHS1 P0047008 0
- RHS1 P0048008 0
- RHS1 P0049008 0
- RHS1 P0050008 0
- RHS1 P0051008 0
- RHS1 S0052008 0
- RHS1 S0053008 0
- RHS1 S0054008 0
- RHS1 S0055008 0
- RHS1 S0056008 0
- RHS1 S0057008 0
- RHS1 S0058008 0
- RHS1 S0059008 0
- RHS1 S0060008 0
- RHS1 S0061008 0
- RHS1 C0062008 200
- RHS1 D0032009 3.75
- RHS1 D0033009 11.25
- RHS1 D0034009 18.75
- RHS1 D0035009 15
- RHS1 D0036009 52.5
- RHS1 D0037009 37.5
- RHS1 D0038009 22.5
- RHS1 D0039009 18.75
- RHS1 D0040009 18.75
- RHS1 D0041009 7.5
- RHS1 P0042009 0
- RHS1 P0043009 0
- RHS1 P0044009 0
- RHS1 P0045009 0
- RHS1 P0046009 0
- RHS1 P0047009 0
- RHS1 P0048009 0
- RHS1 P0049009 0
- RHS1 P0050009 0
- RHS1 P0051009 0
- RHS1 S0052009 0
- RHS1 S0053009 0
- RHS1 S0054009 0
- RHS1 S0055009 0
- RHS1 S0056009 0
- RHS1 S0057009 0
- RHS1 S0058009 0
- RHS1 S0059009 0
- RHS1 S0060009 0
- RHS1 S0061009 0
- RHS1 C0062009 200
-BOUNDS
- UP BND1 Z0000CCC 1
- UP BND1 Z0001CCC 1
- UP BND1 Z0002CCC 1
- UP BND1 Z0003CCC 1
- UP BND1 Z0004CCC 1
- UP BND1 Z0005CCC 1
- UP BND1 Z0006CCC 1
- UP BND1 Z0007CCC 1
- UP BND1 Z0008CCC 1
- UP BND1 Z0009CCC 1
- UP BND1 Z0075000 1
- UP BND1 Z0076000 1
- UP BND1 Z0077000 1
- UP BND1 Z0078000 1
- UP BND1 Z0079000 1
- UP BND1 Z0080000 1
- UP BND1 Z0081000 1
- UP BND1 Z0082000 1
- UP BND1 Z0083000 1
- UP BND1 Z0084000 1
- UP BND1 Z0075001 1
- UP BND1 Z0076001 1
- UP BND1 Z0077001 1
- UP BND1 Z0078001 1
- UP BND1 Z0079001 1
- UP BND1 Z0080001 1
- UP BND1 Z0081001 1
- UP BND1 Z0082001 1
- UP BND1 Z0083001 1
- UP BND1 Z0084001 1
- UP BND1 Z0075002 1
- UP BND1 Z0076002 1
- UP BND1 Z0077002 1
- UP BND1 Z0078002 1
- UP BND1 Z0079002 1
- UP BND1 Z0080002 1
- UP BND1 Z0081002 1
- UP BND1 Z0082002 1
- UP BND1 Z0083002 1
- UP BND1 Z0084002 1
- UP BND1 Z0075003 1
- UP BND1 Z0076003 1
- UP BND1 Z0077003 1
- UP BND1 Z0078003 1
- UP BND1 Z0079003 1
- UP BND1 Z0080003 1
- UP BND1 Z0081003 1
- UP BND1 Z0082003 1
- UP BND1 Z0083003 1
- UP BND1 Z0084003 1
- UP BND1 Z0075004 1
- UP BND1 Z0076004 1
- UP BND1 Z0077004 1
- UP BND1 Z0078004 1
- UP BND1 Z0079004 1
- UP BND1 Z0080004 1
- UP BND1 Z0081004 1
- UP BND1 Z0082004 1
- UP BND1 Z0083004 1
- UP BND1 Z0084004 1
- UP BND1 Z0075005 1
- UP BND1 Z0076005 1
- UP BND1 Z0077005 1
- UP BND1 Z0078005 1
- UP BND1 Z0079005 1
- UP BND1 Z0080005 1
- UP BND1 Z0081005 1
- UP BND1 Z0082005 1
- UP BND1 Z0083005 1
- UP BND1 Z0084005 1
- UP BND1 Z0075006 1
- UP BND1 Z0076006 1
- UP BND1 Z0077006 1
- UP BND1 Z0078006 1
- UP BND1 Z0079006 1
- UP BND1 Z0080006 1
- UP BND1 Z0081006 1
- UP BND1 Z0082006 1
- UP BND1 Z0083006 1
- UP BND1 Z0084006 1
- UP BND1 Z0075007 1
- UP BND1 Z0076007 1
- UP BND1 Z0077007 1
- UP BND1 Z0078007 1
- UP BND1 Z0079007 1
- UP BND1 Z0080007 1
- UP BND1 Z0081007 1
- UP BND1 Z0082007 1
- UP BND1 Z0083007 1
- UP BND1 Z0084007 1
- UP BND1 Z0075008 1
- UP BND1 Z0076008 1
- UP BND1 Z0077008 1
- UP BND1 Z0078008 1
- UP BND1 Z0079008 1
- UP BND1 Z0080008 1
- UP BND1 Z0081008 1
- UP BND1 Z0082008 1
- UP BND1 Z0083008 1
- UP BND1 Z0084008 1
- UP BND1 Z0075009 1
- UP BND1 Z0076009 1
- UP BND1 Z0077009 1
- UP BND1 Z0078009 1
- UP BND1 Z0079009 1
- UP BND1 Z0080009 1
- UP BND1 Z0081009 1
- UP BND1 Z0082009 1
- UP BND1 Z0083009 1
- UP BND1 Z0084009 1
-ENDATA
diff --git a/examples/pysp/sizes/SMPS/sizes.sto b/examples/pysp/sizes/SMPS/sizes.sto
deleted file mode 100644
index 2d087073a09..00000000000
--- a/examples/pysp/sizes/SMPS/sizes.sto
+++ /dev/null
@@ -1,127 +0,0 @@
-STOCH SIZES
-* This is the stoch file for the 10 scenario sizes problem as described in
-*
-* A. L{\o}kketangen and D. L. Woodruff,
-* "Progressive Hedging and Tabu Search Applied to Mixed Integer (0,1) Multistage Stochastic Programming",
-* Journal of Heuristics, 1996, Vol 2, Pages 111-128.
-*
-* dlwoodruff@ucdavis.edu and Arne.Lokketangen@himolde.no
-*
-* See also:
-* Caroe, C.C. and Schultz, R.,
-* "Dual Decomposition in Stochastic Integer Programming",
-* Operations Research Letters, 1999, Vol 24, Pages 37-45.
-*
-SCENARIOS DISCRETE
-* generated by g2hacker.c using g2(1.000000,1.000000)
- SC SCEN01 ROOT 0.100000 STAGE-2
- RHS1 D01JJ02 1.250
- RHS1 D02JJ02 3.750
- RHS1 D03JJ02 6.250
- RHS1 D04JJ02 5.000
- RHS1 D05JJ02 17.500
- RHS1 D06JJ02 12.500
- RHS1 D07JJ02 7.500
- RHS1 D08JJ02 6.250
- RHS1 D09JJ02 6.250
- RHS1 D10JJ02 2.500
- SC SCEN02 ROOT 0.100000 STAGE-2
- RHS1 D01JJ02 1.500
- RHS1 D02JJ02 4.500
- RHS1 D03JJ02 7.500
- RHS1 D04JJ02 6.000
- RHS1 D05JJ02 21.000
- RHS1 D06JJ02 15.000
- RHS1 D07JJ02 9.000
- RHS1 D08JJ02 7.500
- RHS1 D09JJ02 7.500
- RHS1 D10JJ02 3.000
- SC SCEN03 ROOT 0.100000 STAGE-2
- RHS1 D01JJ02 1.750
- RHS1 D02JJ02 5.250
- RHS1 D03JJ02 8.750
- RHS1 D04JJ02 7.000
- RHS1 D05JJ02 24.500
- RHS1 D06JJ02 17.500
- RHS1 D07JJ02 10.500
- RHS1 D08JJ02 8.750
- RHS1 D09JJ02 8.750
- RHS1 D10JJ02 3.500
- SC SCEN04 ROOT 0.100000 STAGE-2
- RHS1 D01JJ02 2.000
- RHS1 D02JJ02 6.000
- RHS1 D03JJ02 10.000
- RHS1 D04JJ02 8.000
- RHS1 D05JJ02 28.000
- RHS1 D06JJ02 20.000
- RHS1 D07JJ02 12.000
- RHS1 D08JJ02 10.000
- RHS1 D09JJ02 10.000
- RHS1 D10JJ02 4.000
- SC SCEN05 ROOT 0.100000 STAGE-2
- RHS1 D01JJ02 2.250
- RHS1 D02JJ02 6.750
- RHS1 D03JJ02 11.250
- RHS1 D04JJ02 9.000
- RHS1 D05JJ02 31.500
- RHS1 D06JJ02 22.500
- RHS1 D07JJ02 13.500
- RHS1 D08JJ02 11.250
- RHS1 D09JJ02 11.250
- RHS1 D10JJ02 4.500
- SC SCEN06 ROOT 0.100000 STAGE-2
- RHS1 D01JJ02 2.750
- RHS1 D02JJ02 8.250
- RHS1 D03JJ02 13.750
- RHS1 D04JJ02 11.000
- RHS1 D05JJ02 38.500
- RHS1 D06JJ02 27.500
- RHS1 D07JJ02 16.500
- RHS1 D08JJ02 13.750
- RHS1 D09JJ02 13.750
- RHS1 D10JJ02 5.500
- SC SCEN07 ROOT 0.100000 STAGE-2
- RHS1 D01JJ02 3.000
- RHS1 D02JJ02 9.000
- RHS1 D03JJ02 15.000
- RHS1 D04JJ02 12.000
- RHS1 D05JJ02 42.000
- RHS1 D06JJ02 30.000
- RHS1 D07JJ02 18.000
- RHS1 D08JJ02 15.000
- RHS1 D09JJ02 15.000
- RHS1 D10JJ02 6.000
- SC SCEN08 ROOT 0.100000 STAGE-2
- RHS1 D01JJ02 3.250
- RHS1 D02JJ02 9.750
- RHS1 D03JJ02 16.250
- RHS1 D04JJ02 13.000
- RHS1 D05JJ02 45.500
- RHS1 D06JJ02 32.500
- RHS1 D07JJ02 19.500
- RHS1 D08JJ02 16.250
- RHS1 D09JJ02 16.250
- RHS1 D10JJ02 6.500
- SC SCEN09 ROOT 0.100000 STAGE-2
- RHS1 D01JJ02 3.500
- RHS1 D02JJ02 10.500
- RHS1 D03JJ02 17.500
- RHS1 D04JJ02 14.000
- RHS1 D05JJ02 49.000
- RHS1 D06JJ02 35.000
- RHS1 D07JJ02 21.000
- RHS1 D08JJ02 17.500
- RHS1 D09JJ02 17.500
- RHS1 D10JJ02 7.000
- SC SCEN10 ROOT 0.100000 STAGE-2
- RHS1 D01JJ02 3.750
- RHS1 D02JJ02 11.250
- RHS1 D03JJ02 18.750
- RHS1 D04JJ02 15.000
- RHS1 D05JJ02 52.500
- RHS1 D06JJ02 37.500
- RHS1 D07JJ02 22.500
- RHS1 D08JJ02 18.750
- RHS1 D09JJ02 18.750
- RHS1 D10JJ02 7.500
-ENDATA
diff --git a/examples/pysp/sizes/SMPS/sizes.tim b/examples/pysp/sizes/SMPS/sizes.tim
deleted file mode 100644
index 107415dadfc..00000000000
--- a/examples/pysp/sizes/SMPS/sizes.tim
+++ /dev/null
@@ -1,18 +0,0 @@
-TIME SIZES
-* This is the time file for the 10 scenario sizes problem as described in
-*
-* A. L{\o}kketangen and D. L. Woodruff,
-* "Progressive Hedging and Tabu Search Applied to Mixed Integer (0,1) Multistage Stochastic Programming",
-* Journal of Heuristics, 1996, Vol 2, Pages 111-128.
-*
-* dlwoodruff@ucdavis.edu and Arne.Lokketangen@himolde.no
-*
-* See also:
-* Caroe, C.C. and Schultz, R.,
-* "Dual Decomposition in Stochastic Integer Programming",
-* Operations Research Letters, 1999, Vol 24, Pages 37-45.
-*
-PERIODS LP
- Z01JJ01 D01JJ01 ROOT
- Z01JJ02 D01JJ02 STAGE-2
-ENDATA
diff --git a/examples/pysp/sizes/SMPS/sizes.txt b/examples/pysp/sizes/SMPS/sizes.txt
deleted file mode 100644
index 81fad307f93..00000000000
--- a/examples/pysp/sizes/SMPS/sizes.txt
+++ /dev/null
@@ -1,27 +0,0 @@
-Sizes
-
-SMPS format, two-stage mixed integer problem.
-
-The files sizes.sto, sizes.cor, and sizes.tim contain the SMPS format
-description of the 10 scenario problem given in
-
-A. L{\o}kketangen and D. L. Woodruff,
-"Progressive Hedging and Tabu Search Applied to Mixed Integer (0,1) Multistage Stochastic Programming",
-Journal of Heuristics, 1996, Vol 2, Pages 111-128.
-
-( See also:
-Caroe, C.C. and Schultz, R.,
-"Dual Decomposition in Stochastic Integer Programming",
-Operations Research Letters, 1999, Vol 24, Pages 37-45.)
-
-The file sizes.mps contains a deterministic equivalent for the
-problem. The solution is 224706 (with a gap of less than 1%).
-
-The problem was created by a taking a real-world deterministic
-production planning problem and adding "artificial" stochastics.
-
-For more information (and a few more problem instances) send email to
-dlwoodruff@ucdavis.edu and Arne.Lokketangen@himolde.no
-
-
-
diff --git a/examples/pysp/sizes/config/rhosetter.py b/examples/pysp/sizes/config/rhosetter.py
deleted file mode 100644
index 04d36d0d6e2..00000000000
--- a/examples/pysp/sizes/config/rhosetter.py
+++ /dev/null
@@ -1,35 +0,0 @@
-# ___________________________________________________________________________
-#
-# Pyomo: Python Optimization Modeling Objects
-# Copyright 2017 National Technology and Engineering Solutions of Sandia, LLC
-# Under the terms of Contract DE-NA0003525 with National Technology and
-# Engineering Solutions of Sandia, LLC, the U.S. Government retains certain
-# rights in this software.
-# This software is distributed under the 3-clause BSD License.
-# ___________________________________________________________________________
-#@pyomobook:
-def ph_rhosetter_callback(ph, scenario_tree, scenario):
-
- MyRhoFactor = 1.0
-
- root_node = scenario_tree.findRootNode()
-
- si = scenario._instance
- sm = si._ScenarioTreeSymbolMap
-
- for i in si.ProductSizes:
-
- ph.setRhoOneScenario(
- root_node,
- scenario,
- sm.getSymbol(si.NumProducedFirstStage[i]),
- si.UnitProductionCosts[i] * MyRhoFactor * 0.001)
-
- for j in si.ProductSizes:
- if j <= i:
- ph.setRhoOneScenario(
- root_node,
- scenario,
- sm.getSymbol(si.NumUnitsCutFirstStage[i,j]),
- si.UnitReductionCost * MyRhoFactor * 0.001)
-#@:pyomobook
diff --git a/examples/pysp/sizes/config/wwph.cfg b/examples/pysp/sizes/config/wwph.cfg
deleted file mode 100644
index 54e0280f75d..00000000000
--- a/examples/pysp/sizes/config/wwph.cfg
+++ /dev/null
@@ -1,32 +0,0 @@
-# values equal to 0.0 indicate don't mess with the solver defaults.
-self.Iteration0MipGap = 0.0
-self.InitialMipGap = 0.0
-self.FinalMipGap = 0.0
-
-# disable general fixing - see suffix file for variable-specific over-rides.
-self.Iter0FixIfConvergedAtLB = 0
-self.Iter0FixIfConvergedAtUB = 0
-self.Iter0FixIfConvergedAtNB = 0
-
-self.FixWhenItersConvergedAtLB = 0
-self.FixWhenItersConvergedAtUB = 0
-self.FixWhenItersConvergedAtNB = 0
-
-# the length threshold above which cycles will be
-# broken by variable slamming.
-self.CycleLengthSlamThreshold = 50
-
-# "default" slamming parms
-self.CanSlamToLB = False
-self.CanSlamToMin = False
-self.CanSlamToAnywhere = False
-self.CanSlamToMax = True
-self.CanSlamToUB = False
-
-# the next line will try to force at least one variable to be
-# fixed every other iteration after iteration 100 if anything
-# can be slammed. this is a "last-resort" behavior.
-self.SlamAfterIter = 100
-
-self.PH_Iters_Between_Cycle_Slams = 5
-
diff --git a/examples/pysp/sizes/config/wwph.suffixes b/examples/pysp/sizes/config/wwph.suffixes
deleted file mode 100644
index 21ca7a95c62..00000000000
--- a/examples/pysp/sizes/config/wwph.suffixes
+++ /dev/null
@@ -1,62 +0,0 @@
-RootNode:
-
- ProduceSizeFirstStage[1]:
-
- # If no scenario needs the smallest size to be produced, then just forget it.
- Iter0FixIfConvergedAtLB: 1
-
- # If scenarios have agreed for a while tht the smallest size need not be produced,
- # then just lock them in.
- FixWhenItersConvergedAtLB: 20
-
- # If all scenarios need either of the two largest sizes, just lock them in.
- ProduceSizeFirstStage[9]:
- Iter0FixIfConvergedAtUB: 1
- ProduceSizeFirstStage[10]:
- Iter0FixIfConvergedAtUB: 1
-
- # in general, fix production binaries if they have been stable for a long time.
- ProduceSizeFirstStage[*]:
- FixWhenItersConvergedAtLB: 20
- FixWhenItersConvergedAtUB: 20
-
- # if the production quantities have been stable a long time, fix them.
- NumProducedFirstStage[*]:
- FixWhenItersConvergedAtLB: 30
- FixWhenItersConvergedAtNB: 30
- CanSlamToMax: True
-
- NumUnitsCutFirstStage[*,*]:
-
- # if the number of units to cut has been frozen for a while, fix them.
- FixWhenItersConvergedAtLB: 40
- FixWhenItersConvergedAtNB: 40
-
- # these variables often differ by a few units
- # at most, in which case slamming can significantly
- # accelerate convergence.
- SlammingPriority: 10
- CanSlamToMax: True
-
- # the num produced variables are problematic to converge,
- # so slam them to force early convergence.
- NumProducedFirstStage[1]:
- SlammingPriority: 1
- NumProducedFirstStage[2]:
- SlammingPriority: 2
- NumProducedFirstStage[3]:
- SlammingPriority: 3
- NumProducedFirstStage[4]:
- SlammingPriority: 4
- NumProducedFirstStage[5]:
- SlammingPriority: 5
- NumProducedFirstStage[6]:
- SlammingPriority: 6
- NumProducedFirstStage[7]:
- SlammingPriority: 7
- NumProducedFirstStage[8]:
- SlammingPriority: 8
- NumProducedFirstStage[9]:
- SlammingPriority: 9
- NumProducedFirstStage[10]:
- SlammingPriority: 10
diff --git a/examples/pysp/sizes/models/ReferenceModel.py b/examples/pysp/sizes/models/ReferenceModel.py
deleted file mode 100644
index df70a71290a..00000000000
--- a/examples/pysp/sizes/models/ReferenceModel.py
+++ /dev/null
@@ -1,171 +0,0 @@
-# ___________________________________________________________________________
-#
-# Pyomo: Python Optimization Modeling Objects
-# Copyright 2017 National Technology and Engineering Solutions of Sandia, LLC
-# Under the terms of Contract DE-NA0003525 with National Technology and
-# Engineering Solutions of Sandia, LLC, the U.S. Government retains certain
-# rights in this software.
-# This software is distributed under the 3-clause BSD License.
-# ___________________________________________________________________________
-#
-# This is the two-period version of the SIZES optimization model
-# derived from the three stage model in:
-#A. L{\o}kketangen and D. L. Woodruff,
-#"Progressive Hedging and Tabu Search Applied to Mixed Integer (0,1) Multistage Stochastic Programming",
-#Journal of Heuristics, 1996, Vol 2, Pages 111-128.
-
-
-import pyomo.environ as pyo
-
-#
-# Model
-#
-
-model = pyo.AbstractModel()
-
-#
-# Parameters
-#
-
-# the number of product sizes.
-model.NumSizes = pyo.Param(within=pyo.NonNegativeIntegers)
-
-# the set of sizes, labeled 1 through NumSizes.
-def product_sizes_rule(model):
- return list(range(1, model.NumSizes()+1))
-model.ProductSizes = pyo.Set(initialize=product_sizes_rule)
-
-# the deterministic demands for product at each size.
-model.DemandsFirstStage = pyo.Param(model.ProductSizes, within=pyo.NonNegativeIntegers)
-model.DemandsSecondStage = pyo.Param(model.ProductSizes, within=pyo.NonNegativeIntegers)
-
-# the unit production cost at each size.
-model.UnitProductionCosts = pyo.Param(model.ProductSizes, within=pyo.NonNegativeReals)
-
-# the setup cost for producing any units of size i.
-model.SetupCosts = pyo.Param(model.ProductSizes, within=pyo.NonNegativeReals)
-
-# the cost to reduce a unit i to a lower unit j.
-model.UnitReductionCost = pyo.Param(within=pyo.NonNegativeReals)
-
-# a cap on the overall production within any time stage.
-model.Capacity = pyo.Param(within=pyo.PositiveReals)
-
-# a derived set to constrain the NumUnitsCut variable domain.
-# TBD: the (i,j) with i >= j set should be a generic utility.
-def num_units_cut_domain_rule(model):
- return ((i,j) for i in range(1,model.NumSizes()+1) for j in range(1,i+1))
-
-model.NumUnitsCutDomain = pyo.Set(initialize=num_units_cut_domain_rule, dimen=2)
-
-#
-# Variables
-#
-
-# are any products at size i produced?
-model.ProduceSizeFirstStage = pyo.Var(model.ProductSizes, domain=pyo.Boolean)
-model.ProduceSizeSecondStage = pyo.Var(model.ProductSizes, domain=pyo.Boolean)
-
-# NOTE: The following (num-produced and num-cut) variables are implicitly integer
-# under the normal cost objective, but with the PH cost objective, this isn't
-# the case.
-
-# the number of units at each size produced.
-model.NumProducedFirstStage = pyo.Var(model.ProductSizes, domain=pyo.NonNegativeIntegers, bounds=(0.0, model.Capacity))
-model.NumProducedSecondStage = pyo.Var(model.ProductSizes, domain=pyo.NonNegativeIntegers, bounds=(0.0, model.Capacity))
-
-# the number of units of size i cut (down) to meet demand for units of size j.
-model.NumUnitsCutFirstStage = pyo.Var(model.NumUnitsCutDomain,
- domain=pyo.NonNegativeIntegers,
- bounds=(0.0, model.Capacity))
-model.NumUnitsCutSecondStage = pyo.Var(model.NumUnitsCutDomain,
- domain=pyo.NonNegativeIntegers,
- bounds=(0.0, model.Capacity))
-
-# stage-specific cost variables for use in the pysp scenario tree / analysis.
-model.FirstStageCost = pyo.Var(domain=pyo.NonNegativeReals)
-model.SecondStageCost = pyo.Var(domain=pyo.NonNegativeReals)
-
-#
-# Constraints
-#
-
-# ensure that demand is satisfied in each time stage, accounting for cut-downs.
-def demand_satisfied_first_stage_rule(model, i):
- return (0.0, sum([model.NumUnitsCutFirstStage[j,i] for j in model.ProductSizes if j >= i]) - model.DemandsFirstStage[i], None)
-
-def demand_satisfied_second_stage_rule(model, i):
- return (0.0, sum([model.NumUnitsCutSecondStage[j,i] for j in model.ProductSizes if j >= i]) - model.DemandsSecondStage[i], None)
-
-model.DemandSatisfiedFirstStage = pyo.Constraint(model.ProductSizes, rule=demand_satisfied_first_stage_rule)
-model.DemandSatisfiedSecondStage = pyo.Constraint(model.ProductSizes, rule=demand_satisfied_second_stage_rule)
-
-# ensure that you don't produce any units if the decision has been made to disable producion.
-def enforce_production_first_stage_rule(model, i):
- # The production capacity per time stage serves as a simple upper bound for "M".
- return (None, model.NumProducedFirstStage[i] - model.Capacity * model.ProduceSizeFirstStage[i], 0.0)
-
-def enforce_production_second_stage_rule(model, i):
- # The production capacity per time stage serves as a simple upper bound for "M".
- return (None, model.NumProducedSecondStage[i] - model.Capacity * model.ProduceSizeSecondStage[i], 0.0)
-
-model.EnforceProductionBinaryFirstStage = pyo.Constraint(model.ProductSizes, rule=enforce_production_first_stage_rule)
-model.EnforceProductionBinarySecondStage = pyo.Constraint(model.ProductSizes, rule=enforce_production_second_stage_rule)
-
-# ensure that the production capacity is not exceeded for each time stage.
-def enforce_capacity_first_stage_rule(model):
- return (None, sum([model.NumProducedFirstStage[i] for i in model.ProductSizes]) - model.Capacity, 0.0)
-
-def enforce_capacity_second_stage_rule(model):
- return (None, sum([model.NumProducedSecondStage[i] for i in model.ProductSizes]) - model.Capacity, 0.0)
-
-model.EnforceCapacityLimitFirstStage = pyo.Constraint(rule=enforce_capacity_first_stage_rule)
-model.EnforceCapacityLimitSecondStage = pyo.Constraint(rule=enforce_capacity_second_stage_rule)
-
-# ensure that you can't generate inventory out of thin air.
-def enforce_inventory_first_stage_rule(model, i):
- return (None, \
- sum([model.NumUnitsCutFirstStage[i,j] for j in model.ProductSizes if j <= i]) - \
- model.NumProducedFirstStage[i], \
- 0.0)
-
-def enforce_inventory_second_stage_rule(model, i):
- return (None, \
- sum([model.NumUnitsCutFirstStage[i,j] for j in model.ProductSizes if j <= i]) + \
- sum([model.NumUnitsCutSecondStage[i,j] for j in model.ProductSizes if j <= i]) \
- - model.NumProducedFirstStage[i] - model.NumProducedSecondStage[i], \
- 0.0)
-
-model.EnforceInventoryFirstStage = pyo.Constraint(model.ProductSizes, rule=enforce_inventory_first_stage_rule)
-model.EnforceInventorySecondStage = pyo.Constraint(model.ProductSizes, rule=enforce_inventory_second_stage_rule)
-
-# stage-specific cost computations.
-def first_stage_cost_rule(model):
- production_costs = sum([model.SetupCosts[i] * model.ProduceSizeFirstStage[i] + \
- model.UnitProductionCosts[i] * model.NumProducedFirstStage[i] \
- for i in model.ProductSizes])
- cut_costs = sum([model.UnitReductionCost * model.NumUnitsCutFirstStage[i,j] \
- for (i,j) in model.NumUnitsCutDomain if i != j])
- return (model.FirstStageCost - production_costs - cut_costs) == 0.0
-
-model.ComputeFirstStageCost = pyo.Constraint(rule=first_stage_cost_rule)
-
-def second_stage_cost_rule(model):
- production_costs = sum([model.SetupCosts[i] * model.ProduceSizeSecondStage[i] + \
- model.UnitProductionCosts[i] * model.NumProducedSecondStage[i] \
- for i in model.ProductSizes])
- cut_costs = sum([model.UnitReductionCost * model.NumUnitsCutSecondStage[i,j] \
- for (i,j) in model.NumUnitsCutDomain if i != j])
- return (model.SecondStageCost - production_costs - cut_costs) == 0.0
-
-model.ComputeSecondStageCost = pyo.Constraint(rule=second_stage_cost_rule)
-
-#
-# minimize: sum of StageCosts
-#
-# A active scenario objective equivalent to that generated by PySP is
-# included here for informational purposes.
-def total_cost_rule(model):
- return model.FirstStageCost + model.SecondStageCost
-model.Total_Cost_Objective = pyo.Objective(rule=total_cost_rule, sense=pyo.minimize)
-
diff --git a/examples/pysp/sizes/smps_model/ReferenceModel.py b/examples/pysp/sizes/smps_model/ReferenceModel.py
deleted file mode 100644
index 462860a5385..00000000000
--- a/examples/pysp/sizes/smps_model/ReferenceModel.py
+++ /dev/null
@@ -1,178 +0,0 @@
-# _________________________________________________________________________
-#
-# Pyomo: Python Optimization Modeling Objects
-# Copyright (c) 2014 Sandia Corporation.
-# Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation,
-# the U.S. Government retains certain rights in this software.
-# This software is distributed under the BSD License.
-# _________________________________________________________________________
-#
-# This is the two-period version of the SIZES optimization model
-# derived from the three stage model in:
-#A. L{\o}kketangen and D. L. Woodruff,
-#"Progressive Hedging and Tabu Search Applied to Mixed Integer (0,1) Multistage Stochastic Programming",
-#Journal of Heuristics, 1996, Vol 2, Pages 111-128.
-
-
-from pyomo.core import *
-from pyomo.pysp.annotations import StochasticConstraintBoundsAnnotation
-
-#
-# Model
-#
-
-model = AbstractModel()
-
-#
-# Parameters
-#
-
-# the number of product sizes.
-model.NumSizes = Param(within=NonNegativeIntegers)
-
-# the set of sizes, labeled 1 through NumSizes.
-def product_sizes_rule(model):
- return set(range(1, model.NumSizes()+1))
-model.ProductSizes = Set(initialize=product_sizes_rule)
-
-# the deterministic demands for product at each size.
-model.DemandsFirstStage = Param(model.ProductSizes, within=NonNegativeIntegers)
-model.DemandsSecondStage = Param(model.ProductSizes, within=NonNegativeIntegers)
-
-# the unit production cost at each size.
-model.UnitProductionCosts = Param(model.ProductSizes, within=NonNegativeReals)
-
-# the setup cost for producing any units of size i.
-model.SetupCosts = Param(model.ProductSizes, within=NonNegativeReals)
-
-# the cost to reduce a unit i to a lower unit j.
-model.UnitReductionCost = Param(within=NonNegativeReals)
-
-# a cap on the overall production within any time stage.
-model.Capacity = Param(within=PositiveReals)
-
-# a derived set to constrain the NumUnitsCut variable domain.
-# TBD: the (i,j) with i >= j set should be a generic utility.
-def num_units_cut_domain_rule(model):
- ans = set()
- for i in range(1,model.NumSizes()+1):
- for j in range(1, i+1):
- ans.add((i,j))
- return ans
-
-model.NumUnitsCutDomain = Set(initialize=num_units_cut_domain_rule, dimen=2)
-
-#
-# Variables
-#
-
-# are any products at size i produced?
-model.ProduceSizeFirstStage = Var(model.ProductSizes, domain=Boolean)
-model.ProduceSizeSecondStage = Var(model.ProductSizes, domain=Boolean)
-
-# NOTE: The following (num-produced and num-cut) variables are implicitly integer
-# under the normal cost objective, but with the PH cost objective, this isn't
-# the case.
-
-# the number of units at each size produced.
-model.NumProducedFirstStage = Var(model.ProductSizes, domain=NonNegativeIntegers, bounds=(0.0, model.Capacity))
-model.NumProducedSecondStage = Var(model.ProductSizes, domain=NonNegativeIntegers, bounds=(0.0, model.Capacity))
-
-# the number of units of size i cut (down) to meet demand for units of size j.
-model.NumUnitsCutFirstStage = Var(model.NumUnitsCutDomain, domain=NonNegativeIntegers, bounds=(0.0, model.Capacity))
-model.NumUnitsCutSecondStage = Var(model.NumUnitsCutDomain, domain=NonNegativeIntegers, bounds=(0.0, model.Capacity))
-
-# stage-specific cost variables for use in the pysp scenario tree / analysis.
-model.FirstStageCost = Var(domain=NonNegativeReals)
-model.SecondStageCost = Var(domain=NonNegativeReals)
-
-#
-# Constraints
-#
-
-# ensure that demand is satisfied in each time stage, accounting for cut-downs.
-def demand_satisfied_first_stage_rule(model, i):
- return (0.0, sum([model.NumUnitsCutFirstStage[j,i] for j in model.ProductSizes if j >= i]) - model.DemandsFirstStage[i], None)
-
-def demand_satisfied_second_stage_rule(model, i):
- return (0.0, sum([model.NumUnitsCutSecondStage[j,i] for j in model.ProductSizes if j >= i]) - model.DemandsSecondStage[i], None)
-
-model.DemandSatisfiedFirstStage = Constraint(model.ProductSizes, rule=demand_satisfied_first_stage_rule)
-model.DemandSatisfiedSecondStage = Constraint(model.ProductSizes, rule=demand_satisfied_second_stage_rule)
-
-# ensure that you don't produce any units if the decision has been made to disable producion.
-def enforce_production_first_stage_rule(model, i):
- # The production capacity per time stage serves as a simple upper bound for "M".
- return (None, model.NumProducedFirstStage[i] - model.Capacity * model.ProduceSizeFirstStage[i], 0.0)
-
-def enforce_production_second_stage_rule(model, i):
- # The production capacity per time stage serves as a simple upper bound for "M".
- return (None, model.NumProducedSecondStage[i] - model.Capacity * model.ProduceSizeSecondStage[i], 0.0)
-
-model.EnforceProductionBinaryFirstStage = Constraint(model.ProductSizes, rule=enforce_production_first_stage_rule)
-model.EnforceProductionBinarySecondStage = Constraint(model.ProductSizes, rule=enforce_production_second_stage_rule)
-
-# ensure that the production capacity is not exceeded for each time stage.
-def enforce_capacity_first_stage_rule(model):
- return (None, sum([model.NumProducedFirstStage[i] for i in model.ProductSizes]) - model.Capacity, 0.0)
-
-def enforce_capacity_second_stage_rule(model):
- return (None, sum([model.NumProducedSecondStage[i] for i in model.ProductSizes]) - model.Capacity, 0.0)
-
-model.EnforceCapacityLimitFirstStage = Constraint(rule=enforce_capacity_first_stage_rule)
-model.EnforceCapacityLimitSecondStage = Constraint(rule=enforce_capacity_second_stage_rule)
-
-# ensure that you can't generate inventory out of thin air.
-def enforce_inventory_first_stage_rule(model, i):
- return (None, \
- sum([model.NumUnitsCutFirstStage[i,j] for j in model.ProductSizes if j <= i]) - \
- model.NumProducedFirstStage[i], \
- 0.0)
-
-def enforce_inventory_second_stage_rule(model, i):
- return (None, \
- sum([model.NumUnitsCutFirstStage[i,j] for j in model.ProductSizes if j <= i]) + \
- sum([model.NumUnitsCutSecondStage[i,j] for j in model.ProductSizes if j <= i]) \
- - model.NumProducedFirstStage[i] - model.NumProducedSecondStage[i], \
- 0.0)
-
-model.EnforceInventoryFirstStage = Constraint(model.ProductSizes, rule=enforce_inventory_first_stage_rule)
-model.EnforceInventorySecondStage = Constraint(model.ProductSizes, rule=enforce_inventory_second_stage_rule)
-
-# stage-specific cost computations.
-def first_stage_cost_rule(model):
- production_costs = sum([model.SetupCosts[i] * model.ProduceSizeFirstStage[i] + \
- model.UnitProductionCosts[i] * model.NumProducedFirstStage[i] \
- for i in model.ProductSizes])
- cut_costs = sum([model.UnitReductionCost * model.NumUnitsCutFirstStage[i,j] \
- for (i,j) in model.NumUnitsCutDomain if i != j])
- return (model.FirstStageCost - production_costs - cut_costs) == 0.0
-
-model.ComputeFirstStageCost = Constraint(rule=first_stage_cost_rule)
-
-def second_stage_cost_rule(model):
- production_costs = sum([model.SetupCosts[i] * model.ProduceSizeSecondStage[i] + \
- model.UnitProductionCosts[i] * model.NumProducedSecondStage[i] \
- for i in model.ProductSizes])
- cut_costs = sum([model.UnitReductionCost * model.NumUnitsCutSecondStage[i,j] \
- for (i,j) in model.NumUnitsCutDomain if i != j])
- return (model.SecondStageCost - production_costs - cut_costs) == 0.0
-
-model.ComputeSecondStageCost = Constraint(rule=second_stage_cost_rule)
-
-#
-# PySP Auto-generated Objective
-#
-# minimize: sum of StageCosts
-#
-# A active scenario objective equivalent to that generated by PySP is
-# included here for informational purposes.
-def total_cost_rule(model):
- return model.FirstStageCost + model.SecondStageCost
-model.Total_Cost_Objective = Objective(rule=total_cost_rule, sense=minimize)
-
-def pysp_annotation_rule(model):
- # to enable SMPS and or DDSIP
- model.stoch_rhs = StochasticConstraintBoundsAnnotation()
- model.stoch_rhs.declare(model.DemandSatisfiedSecondStage)
-model.annotate = BuildAction(rule=pysp_annotation_rule)
diff --git a/examples/pysp/sizes/two_period_mip.dat b/examples/pysp/sizes/two_period_mip.dat
deleted file mode 100644
index 5e4a5a02ba6..00000000000
--- a/examples/pysp/sizes/two_period_mip.dat
+++ /dev/null
@@ -1,17 +0,0 @@
-#
-# Data for the one-period version of the SIZES optimization model.
-#
-
-param NumSizes := 10 ;
-
-param Capacity := 200000 ;
-
-param DemandsFirstStage := 1 2500 2 7500 3 12500 4 10000 5 35000 6 25000 7 15000 8 12500 9 12500 10 5000 ;
-
-param DemandsSecondStage := 1 2500 2 7500 3 12500 4 10000 5 35000 6 25000 7 15000 8 12500 9 12500 10 5000 ;
-
-param UnitProductionCosts := 1 0.748 2 0.7584 3 0.7688 4 0.7792 5 0.7896 6 0.8 7 0.8104 8 0.8208 9 0.8312 10 0.8416 ;
-
-param SetupCosts := 1 453 2 453 3 453 4 453 5 453 6 453 7 453 8 453 9 453 10 453;
-
-param UnitReductionCost := 0.008 ;
diff --git a/examples/pysp/sizes/two_period_mip.py b/examples/pysp/sizes/two_period_mip.py
deleted file mode 100644
index 4b18da0cbee..00000000000
--- a/examples/pysp/sizes/two_period_mip.py
+++ /dev/null
@@ -1,214 +0,0 @@
-# ___________________________________________________________________________
-#
-# Pyomo: Python Optimization Modeling Objects
-# Copyright 2017 National Technology and Engineering Solutions of Sandia, LLC
-# Under the terms of Contract DE-NA0003525 with National Technology and
-# Engineering Solutions of Sandia, LLC, the U.S. Government retains certain
-# rights in this software.
-# This software is distributed under the 3-clause BSD License.
-# ___________________________________________________________________________
-#
-# This is the two-period version of the SIZES optimization model.
-# Ideally, the general multi-period formulation would suffice with
-# sufficient data, but the sp component that specifies the variable->
-# stage mapping can't deal with "partial" variables at the moment,
-# i.e., subsets of the index set. Once it can, this file is obselete.
-#
-
-#
-# Imports
-#
-
-from pyomo.core import *
-
-#
-# Model
-#
-
-model = AbstractModel()
-
-#
-# Parameters
-#
-
-# the number of product sizes.
-model.NumSizes = Param(within=NonNegativeIntegers)
-
-# the set of sizes, labeled 1 through NumSizes.
-def product_sizes_rule(model):
- return set(range(1, model.NumSizes()+1))
-model.ProductSizes = Set(initialize=product_sizes_rule)
-
-# the deterministic demands for product at each size.
-model.DemandsFirstStage = Param(model.ProductSizes, within=NonNegativeReals)
-model.DemandsSecondStage = Param(model.ProductSizes, within=NonNegativeReals)
-
-# the unit production cost at each size.
-model.UnitProductionCosts = Param(model.ProductSizes, within=NonNegativeReals)
-
-# the setup cost for producing any units of size i.
-model.SetupCosts = Param(model.ProductSizes, within=NonNegativeReals)
-
-# the unit penalty cost of meeting demand for size j with larger size i.
-model.UnitPenaltyCosts = Param(model.ProductSizes, within=NonNegativeReals)
-
-# the cost to reduce a unit i to a lower unit j.
-model.UnitReductionCost = Param(within=NonNegativeReals)
-
-# a cap on the overall production within any time stage.
-model.Capacity = Param(within=PositiveReals)
-
-# a derived set to constraint the NumUnitsCut variable domain.
-# TBD: the (i,j) with i < j set should be a generic utility.
-def num_units_cut_domain_rule(model):
- ans = set()
- for i in range(1,model.NumSizes+1):
- for j in range(1, i+1):
- ans.add((i,j))
- return ans
-
-model.NumUnitsCutDomain = Set(initialize=num_units_cut_domain_rule,dimen=2)
-
-# TBD - should be able to define the "M" here, after the total demands are defined.
-
-#
-# Variables
-#
-
-# are any products at size i produced?
-model.ProduceSizeFirstStage = Var(model.ProductSizes, domain=Boolean)
-model.ProduceSizeSecondStage = Var(model.ProductSizes, domain=Boolean)
-
-# the number of units at each size produced.
-# TBD - the bounds should link/propagate through the domain, but they aren't.
-model.NumProducedFirstStage = Var(model.ProductSizes, domain=NonNegativeIntegers, bounds=(0.0, None))
-model.NumProducedSecondStage = Var(model.ProductSizes, domain=NonNegativeIntegers, bounds=(0.0, None))
-
-# the number of units of size i cut (down) to meet demand for units of size j.
-# TBD - the bounds should link/propagate through the domain, but they aren't.
-# TBD - can actually/should be implicitly integer.
-model.NumUnitsCutFirstStage = Var(model.NumUnitsCutDomain, domain=NonNegativeIntegers, bounds=(0.0, None))
-model.NumUnitsCutSecondStage = Var(model.NumUnitsCutDomain, domain=NonNegativeIntegers, bounds=(0.0, None))
-
-model.FirstStageCost = Var()
-model.SecondStageCost = Var()
-
-#
-# Constraints
-#
-
-# ensure that demand is satisfied in each time stage.
-def demand_satisfied_first_stage_rule(i, model):
- expr = 0.0
- # TBD - simplify loop with range construct
- for j in model.ProductSizes:
- if j >= i:
- expr += model.NumUnitsCutFirstStage[j,i]
- expr -= model.DemandsFirstStage[i]
- return (0.0, expr, None)
-
-def demand_satisfied_second_stage_rule(i, model):
- expr = 0.0
- for j in model.ProductSizes:
- if j >= i:
- expr += model.NumUnitsCutSecondStage[j,i]
- expr -= model.DemandsSecondStage[i]
- return (0.0, expr, None)
-
-model.DemandSatisfiedFirstStage = Constraint(model.ProductSizes, rule=demand_satisfied_first_stage_rule)
-model.DemandSatisfiedSecondStage = Constraint(model.ProductSizes, rule=demand_satisfied_second_stage_rule)
-
-# ensure that you don't produce any units if the decision has been made to disable producion.
-def enforce_production_first_stage_rule(i, model):
- # TBD - compute M as the maximal demand - really max across all scenarios, which complicates things.
- M = 10000000
- expr = model.NumProducedFirstStage[i] - M * model.ProduceSizeFirstStage[i]
- return (None, expr, 0.0)
-
-def enforce_production_second_stage_rule(i, model):
- # TBD - compute M as the maximal demand
- M = 10000000
- expr = model.NumProducedSecondStage[i] - M * model.ProduceSizeSecondStage[i]
- return (None, expr, 0.0)
-
-model.EnforceProductionBinaryFirstStage = Constraint(model.ProductSizes, rule=enforce_production_first_stage_rule)
-model.EnforceProductionBinarySecondStage = Constraint(model.ProductSizes, rule=enforce_production_second_stage_rule)
-
-# ensure that the production capacity is not exceeded for each time stage.
-def enforce_capacity_first_stage_rule(model):
- expr = 0.0
- for i in model.ProductSizes:
- expr += model.NumProducedFirstStage[i]
- expr -= model.Capacity
- return (None, expr, 0.0)
-
-def enforce_capacity_second_stage_rule(model):
- expr = 0.0
- for i in model.ProductSizes:
- expr += model.NumProducedSecondStage[i]
- expr -= model.Capacity
- return (None, expr, 0.0)
-
-model.EnforceCapacityLimitFirstStage = Constraint(rule=enforce_capacity_first_stage_rule)
-model.EnforceCapacityLimitSecondStage = Constraint(rule=enforce_capacity_second_stage_rule)
-
-# ensure that you can't generate inventory out of thin air.
-def enforce_inventory_first_stage_rule(i, model):
- expr = 0.0
- for j in model.ProductSizes:
- if j <= i:
- expr += model.NumUnitsCutFirstStage[i,j]
- expr -= model.NumProducedFirstStage[i]
- return (None, expr, 0.0)
-
-def enforce_inventory_second_stage_rule(i, model):
- expr = 0.0
- for j in model.ProductSizes:
- if j <= i:
- expr += model.NumUnitsCutFirstStage[i,j]
- expr -= model.NumProducedFirstStage[i]
- for j in model.ProductSizes:
- if j <= i:
- expr += model.NumUnitsCutSecondStage[i,j]
- expr -= model.NumProducedSecondStage[i]
- return (None, expr, 0.0)
-
-model.EnforceInventoryFirstStage = Constraint(model.ProductSizes, rule=enforce_inventory_first_stage_rule)
-model.EnforceInventorySecondStage = Constraint(model.ProductSizes, rule=enforce_inventory_second_stage_rule)
-
-#
-# Stage-specific cost computations
-#
-
-def first_stage_cost_rule(model):
- # production costs followed by cut-down penalties.
- expr = 0.0
- for i in model.ProductSizes:
- expr += (model.SetupCosts[i] * model.ProduceSizeFirstStage[i] + model.UnitProductionCosts[i] * model.NumProducedFirstStage[i])
- for (i,j) in model.NumUnitsCutDomain:
- if i != j:
- expr += model.UnitReductionCost * model.NumUnitsCutFirstStage[i,j];
- return (model.FirstStageCost - expr) == 0.0
-
-model.ComputeFirstStageCost = Constraint(rule=first_stage_cost_rule)
-
-def second_stage_cost_rule(model):
- # production costs followed by cut-down penalties.
- expr = 0.0
- for i in model.ProductSizes:
- expr += (model.SetupCosts[i] * model.ProduceSizeSecondStage[i] + model.UnitProductionCosts[i] * model.NumProducedSecondStage[i])
- for (i,j) in model.NumUnitsCutDomain:
- if i != j:
- expr += model.UnitReductionCost * model.NumUnitsCutSecondStage[i,j];
- return (model.SecondStageCost - expr) == 0.0
-
-model.ComputeSecondStageCost = Constraint(rule=second_stage_cost_rule)
-
-#
-# Objective
-#
-
-def total_cost_rule(model):
- return (model.FirstStageCost + model.SecondStageCost)
-
-model.TotalCostObjective = Objective(rule = total_cost_rule, sense=minimize)
diff --git a/pyomo/bilevel/plugins/lcp.py b/pyomo/bilevel/plugins/lcp.py
index 11ab41e9e1c..3c728e30c3b 100644
--- a/pyomo/bilevel/plugins/lcp.py
+++ b/pyomo/bilevel/plugins/lcp.py
@@ -8,7 +8,6 @@
# This software is distributed under the 3-clause BSD License.
# ___________________________________________________________________________
-import six
import logging
from pyomo.core.base import Block, VarList, ConstraintList, Objective, Var, Constraint, maximize, ComponentUID, Set, TransformationFactory
@@ -287,7 +286,7 @@ def _add_optimality_conditions(self, instance, submodel):
exp -= B2_[uid] * lb_dual
if not ub_dual is None:
exp += B2_[uid] * ub_dual
- if type(exp) in six.integer_types or type(exp) is float:
+ if type(exp) in [int, float]:
# TODO: Annotate the model as unbounded
raise IOError("Unbounded variable without side constraints")
else:
diff --git a/pyomo/bilevel/tests/test_blp.py b/pyomo/bilevel/tests/test_blp.py
index f9fe4e63631..e5e4773f4c9 100644
--- a/pyomo/bilevel/tests/test_blp.py
+++ b/pyomo/bilevel/tests/test_blp.py
@@ -26,10 +26,9 @@
from pyomo.scripting.util import cleanup
from pyomo.environ import TransformationFactory
-from six import iteritems
-
solvers = pyomo.opt.check_available_solvers('cplex', 'glpk', 'ipopt')
+
class CommonTests:
solve = True
@@ -148,7 +147,7 @@ def check(self, problem, solver):
self.assertEqual(len(refObj), len(ansObj))
for i in range(len(refObj)):
self.assertEqual(len(refObj[i]), len(ansObj[i]))
- for key,val in iteritems(refObj[i]):
+ for key,val in refObj[i].items():
#self.assertEqual(val['Id'], ansObj[i].get(key,None)['Id'])
self.assertAlmostEqual(val['Value'], ansObj[i].get(key,None)['Value'], places=3)
diff --git a/pyomo/bilevel/tests/test_linear_dual.py b/pyomo/bilevel/tests/test_linear_dual.py
index 05c0dc425a3..96645c45503 100644
--- a/pyomo/bilevel/tests/test_linear_dual.py
+++ b/pyomo/bilevel/tests/test_linear_dual.py
@@ -25,8 +25,6 @@
from pyomo.scripting.util import cleanup
import pyomo.environ
-from six import iteritems
-
solvers = pyomo.opt.check_available_solvers('cplex', 'glpk')
@@ -154,7 +152,7 @@ def check(self, problem, solver):
self.assertEqual(len(refObj), len(ansObj))
for i in range(len(refObj)):
self.assertEqual(len(refObj[i]), len(ansObj[i]))
- for key,val in iteritems(refObj[i]):
+ for key,val in refObj[i].items():
#self.assertEqual(val['Id'], ansObj[i].get(key,None)['Id'])
self.assertAlmostEqual(val['Value'], ansObj[i].get(key,None)['Value'], places=3)
diff --git a/pyomo/common/collections/__init__.py b/pyomo/common/collections/__init__.py
index 1fcfc12c1c4..80e468eb9d3 100644
--- a/pyomo/common/collections/__init__.py
+++ b/pyomo/common/collections/__init__.py
@@ -23,5 +23,4 @@
from .orderedset import OrderedDict, OrderedSet
from .component_map import ComponentMap
from .component_set import ComponentSet
-
-from pyutilib.misc import Bunch, Container, Options
+from .bunch import Bunch
diff --git a/pyomo/common/collections/bunch.py b/pyomo/common/collections/bunch.py
new file mode 100644
index 00000000000..4ddf90c62c9
--- /dev/null
+++ b/pyomo/common/collections/bunch.py
@@ -0,0 +1,121 @@
+# ___________________________________________________________________________
+#
+# Pyomo: Python Optimization Modeling Objects
+# Copyright 2017 National Technology and Engineering Solutions of Sandia, LLC
+# Under the terms of Contract DE-NA0003525 with National Technology and
+# Engineering Solutions of Sandia, LLC, the U.S. Government retains certain
+# rights in this software.
+# This software is distributed under the 3-clause BSD License.
+# ___________________________________________________________________________
+#
+# This module was originally developed as part of the PyUtilib project
+# Copyright (c) 2008 Sandia Corporation.
+# This software is distributed under the BSD License.
+# Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation,
+# the U.S. Government retains certain rights in this software.
+# ___________________________________________________________________________
+
+import shlex
+
+
+class Bunch(dict):
+ """
+ A class that can be used to store a bunch of data dynamically.
+ This class allows all other attributes to have a default value of None.
+ This borrows the output formatting ideas from the
+ ActiveState Code Container (recipe 496697).
+ """
+
+ def __init__(self, *args, **kw):
+ for arg in args:
+ for item in shlex.split(arg):
+ r = item.find('=')
+ if r != -1:
+ try:
+ val = eval(item[r + 1:])
+ except:
+ val = item[r + 1:]
+ kw[item[:r]] = val
+ dict.__init__(self, kw)
+ self.__dict__.update(kw)
+ if not '_name_' in kw:
+ self._name_ = self.__class__.__name__
+
+ def update(self, d):
+ """
+ The update is specialized for JSON-like data. This
+ recursively replaces dictionaries with Container objects.
+ """
+ for k in d:
+ if type(d[k]) is dict:
+ tmp = Bunch()
+ tmp.update(d[k])
+ self.__setattr__(k, tmp)
+ elif type(d[k]) is list:
+ val = []
+ for i in d[k]:
+ if type(i) is dict:
+ tmp = Bunch()
+ tmp.update(i)
+ val.append(tmp)
+ else:
+ val.append(i)
+ self.__setattr__(k, val)
+ else:
+ self.__setattr__(k, d[k])
+
+ def set_name(self, name):
+ self._name_ = name
+
+ def __setitem__(self, name, val):
+ self.__setattr__(name, val)
+
+ def __getitem__(self, name):
+ return self.__getattr__(name)
+
+ def __setattr__(self, name, val):
+ if name[0] != '_':
+ dict.__setitem__(self, name, val)
+ self.__dict__[name] = val
+
+ def __getattr__(self, name):
+ try:
+ return dict.__getitem__(self, name)
+ except:
+ if name[0] == '_':
+ raise AttributeError("Unknown attribute %s" % name)
+ return None
+
+ def __repr__(self):
+ attrs = sorted("%s = %r" % (k, v) for k, v in self.__dict__.items()
+ if not k.startswith("_"))
+ return "%s(%s)" % (self.__class__.__name__, ", ".join(attrs))
+
+ def __str__(self):
+ return self.as_string()
+
+ def __str__(self, nesting=0, indent=''):
+ attrs = []
+ indentation = indent + " " * nesting
+ for k, v in self.__dict__.items():
+ if not k.startswith("_"):
+ text = [indentation, k, ":"]
+ if isinstance(v, Bunch):
+ if len(v) > 0:
+ text.append('\n')
+ text.append(v.__str__(nesting + 1))
+ elif isinstance(v, list):
+ if len(v) == 0:
+ text.append(' []')
+ else:
+ for v_ in v:
+ text.append('\n' + indentation + "-")
+ if isinstance(v_, Bunch):
+ text.append('\n' + v_.__str__(nesting + 1))
+ else:
+ text.append(" " + repr(v_))
+ else:
+ text.append(' ' + repr(v))
+ attrs.append("".join(text))
+ attrs.sort()
+ return "\n".join(attrs)
diff --git a/pyomo/common/config.py b/pyomo/common/config.py
index f4f9589cbb0..5ac933ab47a 100644
--- a/pyomo/common/config.py
+++ b/pyomo/common/config.py
@@ -203,7 +203,7 @@ def __call__(self, path):
class PathList(Path):
def __call__(self, data):
- if hasattr(data, "__iter__") and not isinstance(data, six.string_types):
+ if hasattr(data, "__iter__") and not isinstance(data, str):
return [ super(PathList, self).__call__(i) for i in data ]
else:
return [ super(PathList, self).__call__(data) ]
@@ -963,10 +963,10 @@ def _get_subparser_or_group(_parser, name):
# well
if isinstance(name, argparse._ActionsContainer):
#hasattr(_group, 'title') and \
- # isinstance(_group.title, six.string_types):
+ # isinstance(_group.title, str):
return 2, name
- if not isinstance(name, six.string_types):
+ if not isinstance(name, str):
raise RuntimeError(
'Unknown datatype (%s) for argparse group on '
'configuration definition %s' %
diff --git a/pyomo/common/download.py b/pyomo/common/download.py
index b890a82225c..b97da9c54a2 100644
--- a/pyomo/common/download.py
+++ b/pyomo/common/download.py
@@ -15,8 +15,7 @@
import platform
import re
import sys
-
-from pyutilib.subprocess import run
+import subprocess
from .config import PYOMO_CONFIG_DIR
from .deprecation import deprecated
@@ -98,9 +97,11 @@ def _get_distver_from_redhat_release(cls):
@classmethod
def _get_distver_from_lsb_release(cls):
- rc, dist = run(['lsb_release', '-si'])
- rc, ver = run(['lsb_release', '-sr'])
- return cls._map_dist(dist.lower().strip()), ver.strip()
+ dist = subprocess.run(['lsb_release', '-si'], stdout=subprocess.PIPE,
+ stderr=subprocess.STDOUT, universal_newlines=True)
+ ver = subprocess.run(['lsb_release', '-sr'], stdout=subprocess.PIPE,
+ stderr=subprocess.STDOUT, universal_newlines=True)
+ return cls._map_dist(dist.stdout.lower().strip()), ver.stdout.strip()
@classmethod
def _get_distver_from_distro(cls):
@@ -130,7 +131,8 @@ def _get_os_version(cls):
dist, ver = cls._get_distver_from_distro()
elif os.path.exists('/etc/redhat-release'):
dist, ver = cls._get_distver_from_redhat_release()
- elif run(['lsb_release'])[0] == 0:
+ elif subprocess.run(['lsb_release'], stdout=subprocess.DEVNULL,
+ stderr=subprocess.DEVNULL).returncode == 0:
dist, ver = cls._get_distver_from_lsb_release()
elif os.path.exists('/etc/os-release'):
# Note that (at least on centos), os_release is an
diff --git a/pyomo/common/fileutils.py b/pyomo/common/fileutils.py
index e7398af0b9d..6fe1b872678 100644
--- a/pyomo/common/fileutils.py
+++ b/pyomo/common/fileutils.py
@@ -7,6 +7,14 @@
# rights in this software.
# This software is distributed under the 3-clause BSD License.
# ___________________________________________________________________________
+#
+# This module was originally developed as part of the PyUtilib project
+# Copyright (c) 2008 Sandia Corporation.
+# This software is distributed under the BSD License.
+# Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation,
+# the U.S. Government retains certain rights in this software.
+# ___________________________________________________________________________
+
import ctypes.util
import glob
@@ -14,7 +22,7 @@
import logging
import os
import platform
-import six
+from six import itervalues
import importlib.util
import sys
@@ -110,14 +118,14 @@ def find_path(name, validate, cwd=True, mode=os.R_OK, ext=None,
locations.append(os.getcwd())
if allow_pathlist_deep_references or os.path.basename(name) == name:
- if isinstance(pathlist, six.string_types):
+ if isinstance(pathlist, str):
locations.extend( pathlist.split(os.pathsep) )
else:
locations.extend(pathlist)
extlist = ['']
if ext:
- if isinstance(ext, six.string_types):
+ if isinstance(ext, str):
extlist.append(ext)
else:
extlist.extend(ext)
@@ -142,6 +150,7 @@ def find_file(filename, cwd=True, mode=os.R_OK, ext=None, pathlist=[],
Parameters
----------
filename : str
+
The file name to locate. The file name may contain references
to a user's home directory (``~user``), environment variables
(``${HOME}/bin``), and shell wildcards (``?`` and ``*``); all of
@@ -312,7 +321,7 @@ def find_library(libname, cwd=True, include_PATH=True, pathlist=None):
pathlist.extend(os.environ.get('LD_LIBRARY_PATH','').split(os.pathsep))
if include_PATH:
pathlist.append( os.path.join(config.PYOMO_CONFIG_DIR, 'bin') )
- elif isinstance(pathlist, six.string_types):
+ elif isinstance(pathlist, str):
pathlist = pathlist.split(os.pathsep)
else:
pathlist = list(pathlist)
@@ -379,7 +388,7 @@ def find_executable(exename, cwd=True, include_PATH=True, pathlist=None):
"""
if pathlist is None:
pathlist = [ os.path.join(config.PYOMO_CONFIG_DIR, 'bin') ]
- elif isinstance(pathlist, six.string_types):
+ elif isinstance(pathlist, str):
pathlist = pathlist.split(os.pathsep)
else:
pathlist = list(pathlist)
@@ -415,6 +424,54 @@ def import_file(path, clear_cache=False):
return module
+class StreamIndenter(object):
+ """
+ Mock-up of a file-like object that wraps another file-like object
+ and indents all data using the specified string before passing it to
+ the underlying file. Since this presents a full file interface,
+ StreamIndenter objects may be arbitrarily nested.
+ """
+
+ def __init__(self, ostream, indent=' '*4):
+ self.os = ostream
+ self.indent = indent
+ self.stripped_indent = indent.rstrip()
+ self.newline = True
+
+ def __getattr__(self, name):
+ return getattr(self.os, name)
+
+ def write(self, data):
+ if not len(data):
+ return
+ lines = data.split('\n')
+ if self.newline:
+ if lines[0]:
+ self.os.write(self.indent+lines[0])
+ else:
+ self.os.write(self.stripped_indent)
+ else:
+ self.os.write(lines[0])
+ if len(lines) < 2:
+ self.newline = False
+ return
+ for line in lines[1:-1]:
+ if line:
+ self.os.write("\n"+self.indent+line)
+ else:
+ self.os.write("\n"+self.stripped_indent)
+ if lines[-1]:
+ self.os.write("\n"+self.indent+lines[-1])
+ self.newline = False
+ else:
+ self.os.write("\n")
+ self.newline = True
+
+ def writelines(self, sequence):
+ for x in sequence:
+ self.write(x)
+
+
class _PathData(object):
def __init__(self, manager, name):
self._mngr = manager
@@ -653,7 +710,7 @@ def rehash(self):
through the PATH.
"""
- for _path in six.itervalues(self._pathTo):
+ for _path in itervalues(self._pathTo):
_path.rehash()
#
diff --git a/pyomo/common/tee.py b/pyomo/common/tee.py
new file mode 100644
index 00000000000..8e6bbd537b3
--- /dev/null
+++ b/pyomo/common/tee.py
@@ -0,0 +1,361 @@
+# ___________________________________________________________________________
+#
+# Pyomo: Python Optimization Modeling Objects
+# Copyright 2017 National Technology and Engineering Solutions of Sandia, LLC
+# Under the terms of Contract DE-NA0003525 with National Technology and
+# Engineering Solutions of Sandia, LLC, the U.S. Government retains certain
+# rights in this software.
+# This software is distributed under the 3-clause BSD License.
+# ___________________________________________________________________________
+#
+# This module was originally developed as part of the PyUtilib project
+# Copyright (c) 2008 Sandia Corporation.
+# This software is distributed under the BSD License.
+# Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation,
+# the U.S. Government retains certain rights in this software.
+# ___________________________________________________________________________
+#
+import io
+import logging
+import os
+import sys
+import threading
+import time
+from six import StringIO
+
+_mswindows = sys.platform.startswith('win')
+_poll_interval = 0.1
+try:
+ if _mswindows:
+ from msvcrt import get_osfhandle
+ from win32pipe import PeekNamedPipe
+ from win32file import ReadFile
+ else:
+ from select import select
+ _peek_available = True
+except ImportError:
+ _peek_available = False
+
+logger = logging.getLogger(__name__)
+
+
+class capture_output(object):
+ """
+ Drop-in substitute for PyUtilib's capture_output.
+ Takes in a StringIO, file-like object, or filename and temporarily
+ redirects output to a string buffer.
+ """
+ def __init__(self, output=None):
+ if output is None:
+ output = StringIO()
+ self.output = output
+ self.output_file = None
+ self.old = None
+ self.tee = None
+
+ def __enter__(self):
+ if isinstance(self.output, str):
+ self.output_stream = open(self.output, 'w')
+ else:
+ self.output_stream = self.output
+ self.old = (sys.stdout, sys.stderr)
+ self.tee = TeeStream(self.output_stream)
+ self.tee.__enter__()
+ sys.stdout = self.tee.STDOUT
+ sys.stderr = self.tee.STDERR
+ return self.output_stream
+
+ def __exit__(self, et, ev, tb):
+ FAIL = self.tee.STDOUT is not sys.stdout
+ self.tee.__exit__(et, ev, tb)
+ if self.output_stream is not self.output:
+ self.output_stream.close()
+ sys.stdout, sys.stderr = self.old
+ self.old = None
+ self.tee = None
+ self.output_stream = None
+ if FAIL:
+ raise RuntimeError('Captured output does not match sys.stdout.')
+
+ def __del__(self):
+ if self.tee is not None:
+ self.__exit__(None, None, None)
+
+ def setup(self):
+ if self.old is not None:
+ raise RuntimeError('Duplicate call to capture_output.setup.')
+ return self.__enter__()
+
+ def reset(self):
+ return self.__exit__(None, None, None)
+
+
+class _StreamHandle(object):
+ def __init__(self, mode, buffering, encoding, newline):
+ self.buffering = buffering
+ self.newlines = newline
+ self.read_pipe, self.write_pipe = os.pipe()
+ if not buffering and 'b' not in mode:
+ # While we support "unbuffered" behavior in text mode,
+ # python does not
+ buffering = -1
+ self.write_file = os.fdopen(self.write_pipe, mode=mode,
+ buffering=buffering, encoding=encoding,
+ newline=newline, closefd=False)
+ self.decoder_buffer = b''
+ try:
+ self.encoding = encoding or self.write_file.encoding
+ except AttributeError:
+ self.encoding = None
+ if self.encoding:
+ self.output_buffer = ''
+ else:
+ self.output_buffer = b''
+
+ def __repr__(self):
+ return "%s(%s)" % (self.buffering, id(self))
+
+ def fileno(self):
+ return self.read_pipe
+
+ def close(self):
+ # Close both the file and the underlying file descriptor. Note
+ # that this may get called more than once.
+ if self.write_file is not None:
+ self.write_file.close()
+ self.write_file = None
+
+ if self.write_pipe is not None:
+ # If someone else has closed the file descriptor, then
+ # python raises an OSError
+ try:
+ os.close(self.write_pipe)
+ except OSError:
+ pass
+ self.write_pipe = None
+
+ def finalize(self, ostreams):
+ self.close()
+ self.decodeIncomingBuffer()
+ if ostreams:
+ # Turn off buffering for the final write
+ self.buffering = 0
+ self.writeOutputBuffer(ostreams)
+ os.close(self.read_pipe)
+
+ if self.output_buffer:
+ logger.error(
+ "Stream handle closed with a partial line "
+ "in the output buffer that was not emitted to the "
+ "output stream(s):\n\t'%s'" % (self.output_buffer,))
+ if self.decoder_buffer:
+ logger.error(
+ "Stream handle closed with un-decoded characters "
+ "in the decoder buffer that was not emitted to the "
+ "output stream(s):\n\t%r" % (self.decoder_buffer,))
+
+ def decodeIncomingBuffer(self):
+ if not self.encoding:
+ self.output_buffer, self.decoder_buffer = self.decoder_buffer, b''
+ return
+
+ raw_len = len(self.decoder_buffer)
+ chars = ''
+ while raw_len:
+ try:
+ chars = self.decoder_buffer[:raw_len].decode(self.encoding)
+ break
+ except:
+ pass
+ # partial read of unicode character, try again with
+ # a shorter bytes buffer
+ raw_len -= 1
+ if self.newlines is None:
+ chars = chars.replace('\r\n', '\n').replace('\r', '\n')
+ self.output_buffer += chars
+ self.decoder_buffer = self.decoder_buffer[raw_len:]
+
+ def writeOutputBuffer(self, ostreams):
+ if not self.encoding:
+ ostring, self.output_buffer = self.output_buffer, b''
+ elif self.buffering == 1:
+ EOL = self.output_buffer.rfind(self.newlines or '\n') + 1
+ ostring = self.output_buffer[:EOL]
+ self.output_buffer = self.output_buffer[EOL:]
+ else:
+ ostring, self.output_buffer = self.output_buffer, ''
+
+ if not ostring:
+ return
+
+ for stream in ostreams:
+ try:
+ written = stream.write(ostring)
+ except:
+ written = 0
+ if written and not self.buffering:
+ stream.flush()
+ if written != len(ostring):
+ logger.error(
+ "Output stream closed before all output was "
+ "written to it. The following was left in "
+ "the output buffer:\n\t%r" % (ostring[written:],))
+
+
+class TeeStream(object):
+ def __init__(self, *ostreams, encoding=None):
+ self.ostreams = ostreams
+ self.encoding = encoding
+ self._stdout = None
+ self._stderr = None
+ self._handles = []
+ self._threads = []
+
+ @property
+ def STDOUT(self):
+ if self._stdout is None:
+ self._stdout = self.open(buffering=1)
+ return self._stdout
+
+ @property
+ def STDERR(self):
+ if self._stderr is None:
+ self._stderr = self.open(buffering=0)
+ return self._stderr
+
+ def open(self, mode='w', buffering=-1, encoding=None, newline=None):
+ if encoding is None:
+ encoding = self.encoding
+ handle = _StreamHandle(mode, buffering, encoding, newline)
+ if handle.buffering:
+ self._handles.append(handle)
+ else:
+ # Unbuffered handles should appear earlier in the list so
+ # that they get processed first
+ self._handles.insert(0, handle)
+ self._start(handle)
+ return handle.write_file
+
+ def close(self, in_exception=False):
+ # Close all open handles. Note that as the threads may
+ # immediately start removing handles from the list, it is
+ # important that we iterate over a copy of the list.
+ for h in list(self._handles):
+ h.close()
+
+ # Join all stream processing threads
+ join_iter = 1
+ while True:
+ for th in self._threads:
+ th.join(_poll_interval*join_iter)
+ self._threads[:] = [th for th in self._threads if th.is_alive()]
+ if not self._threads:
+ break
+ join_iter += 1
+ if join_iter == 10:
+ if in_exception:
+ # We are already processing an exception: no reason
+ # to trigger another
+ break
+ raise RuntimeError(
+ "TeeStream: deadlock observed joining reader threads")
+
+ self._threads.clear()
+ self._handles.clear()
+ self._stdout = None
+ self._stderr = None
+
+ def __enter__(self):
+ return self
+
+ def __exit__(self, et, ev, tb):
+ self.close(et is not None)
+
+ def __del__(self):
+ # Implement __del__ to guarantee that file descriptors are closed
+ self.close()
+
+ def _start(self, handle):
+ if not _peek_available:
+ th = threading.Thread(target=self._streamReader, args=(handle,))
+ th.daemon = True
+ th.start()
+ self._threads.append(th)
+ elif not self._threads:
+ th = threading.Thread(target=self._mergedReader)
+ th.daemon = True
+ th.start()
+ self._threads.append(th)
+ else:
+ # The merged reader is already running... nothing additional
+ # needs to be done
+ pass
+
+ def _streamReader(self, handle):
+ while True:
+ new_data = os.read(handle.read_pipe, io.DEFAULT_BUFFER_SIZE)
+ if not new_data:
+ handle.finalize(self.ostreams)
+ break
+ handle.decoder_buffer += new_data
+
+ # At this point, we have new data sitting in the
+ # handle.decoder_buffer
+ handle.decodeIncomingBuffer()
+ # Now, output whatever we have decoded to the output streams
+ handle.writeOutputBuffer(self.ostreams)
+ #
+ #print("STREAM READER: DONE")
+
+ def _mergedReader(self):
+ noop = []
+ handles = self._handles
+ while handles:
+ if _mswindows:
+ new_data = None
+ for handle in list(handles):
+ try:
+ pipe = get_osfhandle(handle.read_pipe)
+ numAvail = PeekNamedPipe(pipe, 0)[1]
+ if numAvail:
+ result, new_data = ReadFile(pipe, numAvail, None)
+ handle.decoder_buffer += new_data
+ break
+ except:
+ handle.finalize(self.ostreams)
+ handles.remove(handle)
+ new_data = None
+ if new_data is None:
+ # PeekNamedPipe is non-blocking; to avoid swamping
+ # the core, sleep for a "short" amount of time
+ time.sleep(_poll_interval)
+ continue
+ else:
+ # Because we could be *adding* handles to the TeeStream
+ # while the _mergedReader is running, we want to
+ # periodically time out and update the list of handles
+ # that we are waiting for. It is also critical that we
+ # send select() a *copy* of the handles list, as we see
+ # deadlocks when handles are added while select() is
+ # waiting
+ ready_handles = select(
+ list(handles), noop, noop, _poll_interval)[0]
+ if not ready_handles:
+ continue
+
+ handle = ready_handles[0]
+ new_data = os.read(handle.read_pipe, io.DEFAULT_BUFFER_SIZE)
+ if not new_data:
+ handle.finalize(self.ostreams)
+ handles.remove(handle)
+ continue
+ handle.decoder_buffer += new_data
+
+ # At this point, we have new data sitting in the
+ # handle.decoder_buffer
+ handle.decodeIncomingBuffer()
+
+ # Now, output whatever we have decoded to the output streams
+ handle.writeOutputBuffer(self.ostreams)
+ #
+ #print("MERGED READER: DONE")
diff --git a/pyomo/common/tests/test_bunch.py b/pyomo/common/tests/test_bunch.py
new file mode 100644
index 00000000000..af4d2c53d01
--- /dev/null
+++ b/pyomo/common/tests/test_bunch.py
@@ -0,0 +1,77 @@
+# ___________________________________________________________________________
+#
+# Pyomo: Python Optimization Modeling Objects
+# Copyright 2017 National Technology and Engineering Solutions of Sandia, LLC
+# Under the terms of Contract DE-NA0003525 with National Technology and
+# Engineering Solutions of Sandia, LLC, the U.S. Government retains certain
+# rights in this software.
+# This software is distributed under the 3-clause BSD License.
+# ___________________________________________________________________________
+#
+# This module was originally developed as part of the PyUtilib project
+# Copyright (c) 2008 Sandia Corporation.
+# This software is distributed under the BSD License.
+# Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation,
+# the U.S. Government retains certain rights in this software.
+# ___________________________________________________________________________
+
+import pickle
+import unittest
+from pyomo.common.collections import Bunch
+
+class Test(unittest.TestCase):
+ def test_Bunch1(self):
+ opt = Bunch('a=None c=d e="1 2 3"', foo=1, bar='x')
+ self.assertEqual(opt.ll, None)
+ self.assertEqual(opt.a, None)
+ self.assertEqual(opt.c, 'd')
+ self.assertEqual(opt.e, '1 2 3')
+ self.assertEqual(opt.foo, 1)
+ self.assertEqual(opt.bar, 'x')
+ self.assertEqual(opt['bar'], 'x')
+ opt.xx = 1
+ opt['yy'] = 2
+ self.assertEqual(
+ set(opt.keys()), set(['a', 'bar', 'c', 'foo', 'e', 'xx', 'yy']))
+ opt.x = Bunch(a=1, b=2)
+ self.assertEqual(
+ set(opt.keys()), set(
+ ['a', 'bar', 'c', 'foo', 'e', 'xx', 'yy', 'x']))
+ self.assertEqual(
+ repr(opt),
+ "Bunch(a = None, bar = 'x', c = 'd', e = '1 2 3', foo = 1, x = Bunch(a = 1, b = 2), xx = 1, yy = 2)")
+ self.assertEqual(
+ str(opt), """a: None
+bar: 'x'
+c: 'd'
+e: '1 2 3'
+foo: 1
+x:
+ a: 1
+ b: 2
+xx: 1
+yy: 2""")
+ opt._name_ = 'BUNCH'
+ self.assertEqual(
+ set(opt.keys()), set(
+ ['a', 'bar', 'c', 'foo', 'e', 'xx', 'yy', 'x']))
+ self.assertEqual(
+ repr(opt),
+ "Bunch(a = None, bar = 'x', c = 'd', e = '1 2 3', foo = 1, x = Bunch(a = 1, b = 2), xx = 1, yy = 2)")
+ self.assertEqual(
+ str(opt), """a: None
+bar: 'x'
+c: 'd'
+e: '1 2 3'
+foo: 1
+x:
+ a: 1
+ b: 2
+xx: 1
+yy: 2""")
+
+ def test_Container2(self):
+ o1 = Bunch('a=None c=d e="1 2 3"', foo=1, bar='x')
+ s = pickle.dumps(o1)
+ o2 = pickle.loads(s)
+ self.assertEqual(o1, o2)
diff --git a/pyomo/common/tests/test_download.py b/pyomo/common/tests/test_download.py
index 1d38ea103b1..4326fbc2f52 100644
--- a/pyomo/common/tests/test_download.py
+++ b/pyomo/common/tests/test_download.py
@@ -14,15 +14,16 @@
import six
import shutil
import tempfile
+import subprocess
import pyutilib.th as unittest
-from pyutilib.misc import capture_output
-from pyutilib.subprocess import run
+
from pyomo.common import DeveloperError
from pyomo.common.config import PYOMO_CONFIG_DIR
from pyomo.common.fileutils import this_file
from pyomo.common.download import FileDownloader, distro_available
+from pyomo.common.tee import capture_output
class Test_FileDownloader(unittest.TestCase):
def setUp(self):
@@ -83,14 +84,14 @@ def test_parse(self):
with capture_output() as io:
with self.assertRaises(SystemExit):
f.parse_args(['--cacert'])
- self.assertIn('argument --cacert: expected one argument',
+ self.assertIn('argument --cacert: expected one argument',
io.getvalue())
f = FileDownloader()
with capture_output() as io:
with self.assertRaises(SystemExit):
f.parse_args(['--cacert', '--insecure'])
- self.assertIn('argument --cacert: expected one argument',
+ self.assertIn('argument --cacert: expected one argument',
io.getvalue())
f = FileDownloader()
@@ -103,7 +104,7 @@ def test_parse(self):
with capture_output() as io:
with self.assertRaises(SystemExit):
f.parse_args(['--foo'])
- self.assertIn('error: unrecognized arguments: --foo',
+ self.assertIn('error: unrecognized arguments: --foo',
io.getvalue())
def test_set_destination_filename(self):
@@ -169,7 +170,8 @@ def test_get_os_version(self):
self.assertEqual(_ver, v)
self.assertTrue(v.replace('.','').startswith(dist_ver))
- if run(['lsb_release'])[0] == 0:
+ if subprocess.run(['lsb_release'], stdout=subprocess.DEVNULL,
+ stderr=subprocess.DEVNULL).returncode == 0:
d, v = f._get_distver_from_lsb_release()
#print(d,v)
self.assertEqual(_os, d)
diff --git a/pyomo/common/tests/test_fileutils.py b/pyomo/common/tests/test_fileutils.py
index 7fecc137797..ebede3f8786 100755
--- a/pyomo/common/tests/test_fileutils.py
+++ b/pyomo/common/tests/test_fileutils.py
@@ -16,18 +16,18 @@
import stat
import sys
import tempfile
+import subprocess
from six import StringIO
import pyutilib.th as unittest
-from pyutilib.subprocess import run
import pyomo.common.config as config
from pyomo.common.log import LoggingIntercept
from pyomo.common.fileutils import (
this_file, this_file_dir, find_file, find_library, find_executable,
PathManager, _system, _path, _exeExt, _libExt, _ExecutableData,
- import_file
+ import_file, StreamIndenter
)
from pyomo.common.download import FileDownloader
@@ -85,16 +85,20 @@ def test_this_file(self):
self.assertEquals(_this_file, __file__.replace('.pyc','.py'))
# Note that in some versions of PyPy, this can return
# instead of the normal
- self.assertIn(run([
+ self.assertIn(subprocess.run([
sys.executable,'-c',
'from pyomo.common.fileutils import this_file;'
'print(this_file())'
- ])[1].strip(), ['',''])
- self.assertEquals(run(
+ ], stdout=subprocess.PIPE,
+ stderr=subprocess.STDOUT,
+ universal_newlines=True).stdout.strip(),
+ ['',''])
+ self.assertEquals(subprocess.run(
[sys.executable],
- stdin='from pyomo.common.fileutils import this_file;'
- 'print(this_file())'
- )[1].strip(), '')
+ input='from pyomo.common.fileutils import this_file;'
+ 'print(this_file())', stdout=subprocess.PIPE,
+ stderr=subprocess.STDOUT, universal_newlines=True
+ ).stdout.strip(), '')
def test_this_file_dir(self):
expected_path = os.path.join('pyomo','common','tests')
@@ -117,6 +121,20 @@ def test_import_file_no_extension(self):
import_file(os.path.join(_this_file_dir, 'import_ex'))
self.assertTrue('File does not exist' in str(context.exception))
+ def test_StreamIndenter_noprefix(self):
+ OUT1 = StringIO()
+ OUT2 = StreamIndenter(OUT1)
+ OUT2.write('Hello?\nHello, world!')
+ self.assertEqual(' Hello?\n Hello, world!',
+ OUT2.getvalue())
+
+ def test_StreamIndenter_prefix(self):
+ prefix = 'foo:'
+ OUT1 = StringIO()
+ OUT2 = StreamIndenter(OUT1, prefix)
+ OUT2.write('Hello?\nHello, world!')
+ self.assertEqual('foo:Hello?\nfoo:Hello, world!', OUT2.getvalue())
+
def test_system(self):
self.assertTrue(platform.system().lower().startswith(_system()))
self.assertNotIn('.', _system())
diff --git a/pyomo/common/tests/test_tee.py b/pyomo/common/tests/test_tee.py
new file mode 100644
index 00000000000..e4fd486d0c4
--- /dev/null
+++ b/pyomo/common/tests/test_tee.py
@@ -0,0 +1,160 @@
+# -*- coding: utf-8 -*-
+# ___________________________________________________________________________
+#
+# Pyomo: Python Optimization Modeling Objects
+# Copyright 2017 National Technology and Engineering Solutions of Sandia, LLC
+# Under the terms of Contract DE-NA0003525 with National Technology and
+# Engineering Solutions of Sandia, LLC, the U.S. Government retains certain
+# rights in this software.
+# This software is distributed under the 3-clause BSD License.
+# ___________________________________________________________________________
+
+import os
+import time
+import sys
+
+from six import StringIO, BytesIO
+
+from pyomo.common.log import LoggingIntercept
+import pyomo.common.unittest as unittest
+from pyomo.common.tempfiles import TempfileManager
+import pyomo.common.tee as tee
+
+class TestTeeStream(unittest.TestCase):
+ def test_stdout(self):
+ a = StringIO()
+ b = StringIO()
+ with tee.TeeStream(a,b) as t:
+ t.STDOUT.write("Hello\n")
+ self.assertEqual(a.getvalue(), "Hello\n")
+ self.assertEqual(b.getvalue(), "Hello\n")
+
+ def test_err_and_out_are_different(self):
+ with tee.TeeStream() as t:
+ out = t.STDOUT
+ self.assertIs(out, t.STDOUT)
+ err = t.STDERR
+ self.assertIs(err, t.STDERR)
+ self.assertIsNot(out, err)
+
+ @unittest.skipIf(not tee._peek_available,
+ "Requires the _mergedReader, but _peek_available==False")
+ def test_merge_out_and_err(self):
+ # Test that the STDERR/STDOUT streams are merged correctly
+ # (i.e., STDOUT is line buffered and STDERR is not). This merge
+ # logic is only applicable when using the merged reader (i.e.,
+ # _peek_available is True)
+ a = StringIO()
+ b = StringIO()
+ with tee.TeeStream(a,b) as t:
+ # This is a slightly nondeterministic (on Windows), so a
+ # flush() and short pause should help
+ t.STDOUT.write("Hello\nWorld")
+ t.STDOUT.flush()
+ time.sleep(tee._poll_interval*2)
+ t.STDERR.write("interrupting\ncow")
+ t.STDERR.flush()
+ time.sleep(tee._poll_interval*3)
+ self.assertEqual(a.getvalue(), "Hello\ninterrupting\ncowWorld")
+ self.assertEqual(b.getvalue(), "Hello\ninterrupting\ncowWorld")
+
+ def test_merged_out_and_err_without_peek(self):
+ a = StringIO()
+ b = StringIO()
+ try:
+ _tmp, tee._peek_available = tee._peek_available, False
+ with tee.TeeStream(a,b) as t:
+ # Ensure both threads are running
+ t.STDOUT
+ t.STDERR
+ # ERR should come out before OUT, but this is slightly
+ # nondeterministic, so a short pause should help
+ t.STDERR.write("Hello\n")
+ t.STDERR.flush()
+ time.sleep(tee._poll_interval*2)
+ t.STDOUT.write("World\n")
+ finally:
+ tee._peek_available = _tmp
+ self.assertEqual(a.getvalue(), "Hello\nWorld\n")
+ self.assertEqual(b.getvalue(), "Hello\nWorld\n")
+
+ def test_binary_tee(self):
+ a = BytesIO()
+ b = BytesIO()
+ with tee.TeeStream(a,b) as t:
+ t.open('wb').write(b"Hello\n")
+ self.assertEqual(a.getvalue(), b"Hello\n")
+ self.assertEqual(b.getvalue(), b"Hello\n")
+
+ def test_decoder_and_buffer_errors(self):
+ ref = "Hello, ©"
+ bytes_ref = ref.encode()
+ log = StringIO()
+ with LoggingIntercept(log):
+ # Note: we must force the encoding for Windows
+ with tee.TeeStream(encoding='utf-8') as t:
+ os.write(t.STDOUT.fileno(), bytes_ref[:-1])
+ self.assertEqual(
+ log.getvalue(),
+ "Stream handle closed with a partial line in the output buffer "
+ "that was not emitted to the output stream(s):\n"
+ "\t'Hello, '\n"
+ "Stream handle closed with un-decoded characters in the decoder "
+ "buffer that was not emitted to the output stream(s):\n"
+ "\tb'\\xc2'\n"
+ )
+
+ out = StringIO()
+ log = StringIO()
+ with LoggingIntercept(log):
+ with tee.TeeStream(out) as t:
+ out.close()
+ t.STDOUT.write("hi\n")
+ self.assertEqual(
+ log.getvalue(),
+ "Output stream closed before all output was written to it. "
+ "The following was left in the output buffer:\n\t'hi\\n'\n"
+ )
+
+ def test_capture_output(self):
+ out = StringIO()
+ with tee.capture_output(out) as OUT:
+ print('Hello World')
+ self.assertEqual(OUT.getvalue(), 'Hello World\n')
+
+ def test_duplicate_capture_output(self):
+ out = StringIO()
+ capture = tee.capture_output(out)
+ capture.setup()
+ try:
+ with self.assertRaisesRegex(RuntimeError, 'Duplicate call to capture_output.setup'):
+ capture.setup()
+ finally:
+ capture.reset()
+
+ def test_capture_output_logfile_string(self):
+ logfile = TempfileManager.create_tempfile()
+ self.assertTrue(isinstance(logfile, str))
+ try:
+ with tee.capture_output(logfile):
+ print('HELLO WORLD')
+ with open(logfile, 'r') as f:
+ result = f.read()
+ self.assertEqual('HELLO WORLD\n', result)
+ finally:
+ TempfileManager.clear_tempfiles()
+
+ def test_capture_output_stack_error(self):
+ OUT1 = StringIO()
+ OUT2 = StringIO()
+ old = (sys.stdout, sys.stderr)
+ try:
+ a = tee.capture_output(OUT1)
+ a.setup()
+ b = tee.capture_output(OUT2)
+ b.setup()
+ with self.assertRaisesRegex(RuntimeError, 'Captured output does not match sys.stdout'):
+ a.reset()
+ b.tee = None
+ finally:
+ sys.stdout, sys.stderr = old
diff --git a/pyomo/common/tests/test_timing.py b/pyomo/common/tests/test_timing.py
index 209b486f0ad..2162135bd9f 100644
--- a/pyomo/common/tests/test_timing.py
+++ b/pyomo/common/tests/test_timing.py
@@ -9,7 +9,7 @@
# ___________________________________________________________________________
import pyomo.common.unittest as unittest
-from pyutilib.misc.redirect_io import capture_output
+from pyomo.common.tee import capture_output
from six import StringIO
import sys
diff --git a/pyomo/common/tests/test_unittest.py b/pyomo/common/tests/test_unittest.py
index f3b624531e3..201967bff0d 100644
--- a/pyomo/common/tests/test_unittest.py
+++ b/pyomo/common/tests/test_unittest.py
@@ -9,8 +9,30 @@
# ___________________________________________________________________________
import datetime
+import multiprocessing
+import six
+import time
import pyomo.common.unittest as unittest
+from pyomo.common.log import LoggingIntercept
+
+@unittest.timeout(10)
+def short_sleep():
+ return 42
+
+@unittest.timeout(0.01)
+def long_sleep():
+ time.sleep(1)
+ return 42
+
+@unittest.timeout(10)
+def raise_exception():
+ foo.bar
+
+@unittest.timeout(10)
+def fail():
+ raise AssertionError("0 != 1")
+
class TestPyomoUnittest(unittest.TestCase):
def test_assertStructuredAlmostEqual_comparison(self):
@@ -127,3 +149,74 @@ def test_assertStructuredAlmostEqual_nested(self):
with self.assertRaisesRegex(self.failureException,
'3 !~= 2.999'):
self.assertStructuredAlmostEqual(a, b)
+
+ def test_timeout_fcn_call(self):
+ self.assertEqual(short_sleep(), 42)
+ with self.assertRaisesRegex(
+ TimeoutError, 'test timed out after 0.01 seconds'):
+ long_sleep()
+ with self.assertRaisesRegex(
+ NameError,
+ f"name 'foo' is not defined\s+Original traceback:"):
+ raise_exception()
+ with self.assertRaisesRegex(AssertionError, r"^0 != 1$"):
+ fail()
+
+ @unittest.timeout(10)
+ def test_timeout(self):
+ self.assertEqual(0, 0)
+
+ @unittest.expectedFailure
+ @unittest.timeout(0.01)
+ def test_timeout_timeout(self):
+ time.sleep(1)
+ self.assertEqual(0, 1)
+
+ @unittest.timeout(10)
+ def test_timeout_skip(self):
+ if TestPyomoUnittest.test_timeout_skip.skip:
+ self.skipTest("Skipping this test")
+ self.assertEqual(0, 1)
+
+ test_timeout_skip.skip = True
+
+ def test_timeout_skip_fails(self):
+ try:
+ with self.assertRaisesRegex(
+ unittest.SkipTest, r"Skipping this test"):
+ self.test_timeout_skip()
+ TestPyomoUnittest.test_timeout_skip.skip = False
+ with self.assertRaisesRegex(AssertionError, r"0 != 1"):
+ self.test_timeout_skip()
+ finally:
+ TestPyomoUnittest.test_timeout_skip.skip = True
+
+ @unittest.timeout(10)
+ def bound_function(self):
+ self.assertEqual(0, 0)
+
+ def test_bound_function(self):
+ if multiprocessing.get_start_method() == 'fork':
+ self.bound_function()
+ return
+ LOG = six.StringIO()
+ with LoggingIntercept(LOG):
+ with self.assertRaises(TypeError):
+ self.bound_function()
+ self.assertIn("platform that does not support 'fork'", LOG.getvalue())
+
+ @unittest.timeout(10, require_fork=True)
+ def bound_function_require_fork(self):
+ self.assertEqual(0, 0)
+
+ def test_bound_function_require_fork(self):
+ if multiprocessing.get_start_method() == 'fork':
+ self.bound_function_require_fork()
+ return
+ with self.assertRaisesRegex(
+ unittest.SkipTest,
+ "timeout requires unavailable fork interface"):
+ self.bound_function_require_fork()
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/pyomo/common/unittest.py b/pyomo/common/unittest.py
index f09a60b48b4..de9ba465ea3 100644
--- a/pyomo/common/unittest.py
+++ b/pyomo/common/unittest.py
@@ -8,8 +8,10 @@
# This software is distributed under the 3-clause BSD License.
# ___________________________________________________________________________
-import math
+import enum
+import logging
import six
+import sys
# Import base classes privately (so that we have handles on them)
import pyutilib.th.pyunit as _pyunit
@@ -21,10 +23,166 @@
from pyutilib.th import *
from pyomo.common.collections import Mapping, Sequence
+from pyomo.common.tee import capture_output
# This augments the unittest exports with two additional decorators
__all__ = _unittest.__all__ + ['category', 'nottest']
+def _runner(q, qualname):
+ "Utility wrapper for running functions, used by timeout()"
+ resultType = _RunnerResult.call
+ if q in _runner.data:
+ fcn, args, kwargs = _runner.data[q]
+ elif isinstance(qualname, str):
+ # Use unittest to instantiate the TestCase and run it
+ resultType = _RunnerResult.unittest
+ def fcn():
+ s = _unittest.TestLoader().loadTestsFromName(qualname)
+ r = _unittest.TestResult()
+ s.run(r)
+ return r.errors + r.failures, r.skipped
+ args = ()
+ kwargs = {}
+ else:
+ qualname, fcn, args, kwargs = qualname
+ _runner.data[qualname] = None
+ OUT = six.StringIO()
+ try:
+ with capture_output(OUT):
+ result = fcn(*args, **kwargs)
+ q.put((resultType, result, OUT.getvalue()))
+ except:
+ import traceback
+ etype, e, tb = sys.exc_info()
+ if not isinstance(e, AssertionError):
+ e = etype("%s\nOriginal traceback:\n%s" % (
+ e, ''.join(traceback.format_tb(tb))))
+ q.put((_RunnerResult.exception, e, OUT.getvalue()))
+ finally:
+ _runner.data.pop(qualname)
+
+# Data structure for passing functions/arguments to the _runner
+# without forcing them to be pickled / unpickled
+_runner.data = {}
+
+class _RunnerResult(enum.Enum):
+ exception = 0
+ call = 1
+ unittest = 2
+
+
+def timeout(seconds, require_fork=False):
+ """Function decorator to timeout the decorated function.
+
+ This decorator will wrap a function call with a timeout, returning
+ the result of the wrapped function. The timeout is implemented
+ using multiprocessing to execute the function in a forked process.
+ If the wrapped function raises an exception, then the exception will
+ be re-raised in this process. If the function times out, a
+ :python:`TimeoutError` will be raised.
+
+ Note that as this method uses multiprocessing, the wrapped function
+ should NOT spawn any subprocesses. The timeout is implemented using
+ `multiprocessing.Process.terminate()`, which sends a SIGTERM signal
+ to the subprocess. Any spawned subprocesses are not collected and
+ will be orphaned and left running.
+
+ Parameters
+ ----------
+ seconds: float
+ Number of seconds to wait before timing out the function
+
+ Examples
+ --------
+ >>> import pyomo.common.unittest as unittest
+ >>> @unittest.timeout(1)
+ ... def test_function():
+ ... return 42
+ >>> test_function()
+ 42
+
+ >>> @unittest.timeout(0.01)
+ ... def test_function():
+ ... while 1:
+ ... pass
+ >>> test_function()
+ Traceback (most recent call last):
+ ...
+ TimeoutError: test timed out after 0.01 seconds
+
+ """
+ import functools
+ import multiprocessing
+ import queue
+ def timeout_decorator(fcn):
+ @functools.wraps(fcn)
+ def test_timer(*args, **kwargs):
+ qualname = '%s.%s' % (fcn.__module__, fcn.__qualname__)
+ if qualname in _runner.data:
+ return fcn(*args, **kwargs)
+ if require_fork and multiprocessing.get_start_method() != 'fork':
+ raise _unittest.SkipTest(
+ "timeout requires unavailable fork interface")
+
+ q = multiprocessing.Queue()
+ if multiprocessing.get_start_method() == 'fork':
+ # Option 1: leverage fork if possible. This minimizes
+ # the reliance on serialization and ensures that the
+ # wrapped function operates in the same environment.
+ _runner.data[q] = (fcn, args, kwargs)
+ runner_args = (q, qualname)
+ elif (args and fcn.__name__.startswith('test')
+ and _unittest.case.TestCase in args[0].__class__.__mro__):
+ # Option 2: this is wrapping a unittest. Re-run
+ # unittest in the child process with this function as
+ # the sole target. This ensures that things like setUp
+ # and tearDown are correctly called.
+ runner_args = (q, qualname)
+ else:
+ # Option 3: attempt to serialize the function and all
+ # arguments and send them to the (spawned) child
+ # process. The wrapped function cannot count on any
+ # environment configuration that it does not set up
+ # itself.
+ runner_args = (q, (qualname, test_timer, args, kwargs))
+ test_proc = multiprocessing.Process(
+ target=_runner, args=runner_args)
+ test_proc.daemon = True
+ try:
+ test_proc.start()
+ except:
+ if type(runner_args[1]) is tuple:
+ logging.getLogger(__name__).error(
+ "Exception raised spawning timeout subprocess "
+ "on a platform that does not support 'fork'. "
+ "It is likely that either the wrapped function or "
+ "one of its arguments is not serializable")
+ raise
+ try:
+ resultType, result, stdout = q.get(True, seconds)
+ except queue.Empty:
+ test_proc.terminate()
+ raise TimeoutError(
+ "test timed out after %s seconds" % (seconds,)) from None
+ finally:
+ _runner.data.pop(q, None)
+ sys.stdout.write(stdout)
+ test_proc.join()
+ if resultType == _RunnerResult.call:
+ return result
+ elif resultType == _RunnerResult.unittest:
+ for name, msg in result[0]:
+ with args[0].subTest(name):
+ raise args[0].failureException(msg)
+ for name, msg in result[1]:
+ with args[0].subTest(name):
+ args[0].skipTest(msg)
+ else:
+ raise result
+ return test_timer
+ return timeout_decorator
+
+
class TestCase(_pyunit.TestCase):
"""A Pyomo-specific class whose instances are single test cases.
@@ -157,7 +315,7 @@ def _assertStructuredAlmostEqual(self, first, second,
str(e), _unittest.case.safe_repr(key)))
return # PASS!
- elif any(isinstance(_, six.string_types) for _ in args):
+ elif any(isinstance(_, str) for _ in args):
if first == second:
return # PASS!
diff --git a/pyomo/contrib/benders/benders_cuts.py b/pyomo/contrib/benders/benders_cuts.py
index 91ea37f9bcc..a686cefd79b 100644
--- a/pyomo/contrib/benders/benders_cuts.py
+++ b/pyomo/contrib/benders/benders_cuts.py
@@ -48,7 +48,7 @@
f(x, y) <= eta
h(y) <= 0
-Master problem must be of the form
+Root problem must be of the form
min h0(y) + eta
s.t.
@@ -109,9 +109,9 @@ def _any_common_elements(a, b):
return False
-def _setup_subproblem(b, master_vars, relax_subproblem_cons):
+def _setup_subproblem(b, root_vars, relax_subproblem_cons):
# first get the objective and turn it into a constraint
- master_vars = ComponentSet(master_vars)
+ root_vars = ComponentSet(root_vars)
objs = list(b.component_data_objects(pyo.Objective, descend_into=False, active=True))
if len(objs) != 1:
@@ -129,7 +129,7 @@ def _setup_subproblem(b, master_vars, relax_subproblem_cons):
for c in list(b.component_data_objects(pyo.Constraint, descend_into=True, active=True, sort=True)):
if not relax_subproblem_cons:
c_vars = ComponentSet(identify_variables(c.body, include_fixed=False))
- if not _any_common_elements(master_vars, c_vars):
+ if not _any_common_elements(root_vars, c_vars):
continue
if c.equality:
body = c.body
@@ -167,13 +167,13 @@ def __init__(self, component):
self.num_subproblems_by_rank = 0 #np.zeros(self.comm.Get_size())
self.subproblems = list()
self.complicating_vars_maps = list()
- self.master_vars = list()
- self.master_vars_indices = pyo.ComponentMap()
- self.master_etas = list()
+ self.root_vars = list()
+ self.root_vars_indices = pyo.ComponentMap()
+ self.root_etas = list()
self.cuts = None
self.subproblem_solvers = list()
self.tol = None
- self.all_master_etas = list()
+ self.all_root_etas = list()
self._subproblem_ndx_map = dict() # map from ndx in self.subproblems (local) to the global subproblem ndx
@@ -183,13 +183,13 @@ def global_num_subproblems(self):
def local_num_subproblems(self):
return len(self.subproblems)
- def set_input(self, master_vars, tol=1e-6, comm = None):
+ def set_input(self, root_vars, tol=1e-6, comm = None):
"""
- It is very important for master_vars to be in the same order for every process.
+ It is very important for root_vars to be in the same order for every process.
Parameters
----------
- master_vars
+ root_vars
tol
"""
self.comm = None
@@ -202,27 +202,27 @@ def set_input(self, master_vars, tol=1e-6, comm = None):
del self.cuts
self.cuts = pyo.ConstraintList()
self.subproblems = list()
- self.master_etas = list()
+ self.root_etas = list()
self.complicating_vars_maps = list()
- self.master_vars = list(master_vars)
- self.master_vars_indices = pyo.ComponentMap()
- for i, v in enumerate(self.master_vars):
- self.master_vars_indices[v] = i
+ self.root_vars = list(root_vars)
+ self.root_vars_indices = pyo.ComponentMap()
+ for i, v in enumerate(self.root_vars):
+ self.root_vars_indices[v] = i
self.tol = tol
self.subproblem_solvers = list()
- self.all_master_etas = list()
+ self.all_root_etas = list()
self._subproblem_ndx_map = dict()
- def add_subproblem(self, subproblem_fn, subproblem_fn_kwargs, master_eta, subproblem_solver='gurobi_persistent', relax_subproblem_cons=False):
+ def add_subproblem(self, subproblem_fn, subproblem_fn_kwargs, root_eta, subproblem_solver='gurobi_persistent', relax_subproblem_cons=False):
_rank = np.argmin(self.num_subproblems_by_rank)
self.num_subproblems_by_rank[_rank] += 1
- self.all_master_etas.append(master_eta)
+ self.all_root_etas.append(root_eta)
if _rank == self.comm.Get_rank():
- self.master_etas.append(master_eta)
+ self.root_etas.append(root_eta)
subproblem, complicating_vars_map = subproblem_fn(**subproblem_fn_kwargs)
self.subproblems.append(subproblem)
self.complicating_vars_maps.append(complicating_vars_map)
- _setup_subproblem(subproblem, master_vars=[complicating_vars_map[i] for i in self.master_vars if i in complicating_vars_map], relax_subproblem_cons=relax_subproblem_cons)
+ _setup_subproblem(subproblem, root_vars=[complicating_vars_map[i] for i in self.root_vars if i in complicating_vars_map], relax_subproblem_cons=relax_subproblem_cons)
self._subproblem_ndx_map[len(self.subproblems) - 1] = self.global_num_subproblems() - 1
if isinstance(subproblem_solver, str):
@@ -232,7 +232,7 @@ def add_subproblem(self, subproblem_fn, subproblem_fn_kwargs, master_eta, subpro
subproblem_solver.set_instance(subproblem)
def generate_cut(self):
- coefficients = np.zeros(self.global_num_subproblems() * len(self.master_vars), dtype='d')
+ coefficients = np.zeros(self.global_num_subproblems() * len(self.root_vars), dtype='d')
constants = np.zeros(self.global_num_subproblems(), dtype='d')
eta_coeffs = np.zeros(self.global_num_subproblems(), dtype='d')
@@ -240,19 +240,19 @@ def generate_cut(self):
subproblem = self.subproblems[local_subproblem_ndx]
global_subproblem_ndx = self._subproblem_ndx_map[local_subproblem_ndx]
complicating_vars_map = self.complicating_vars_maps[local_subproblem_ndx]
- master_eta = self.master_etas[local_subproblem_ndx]
- coeff_ndx = global_subproblem_ndx * len(self.master_vars)
+ root_eta = self.root_etas[local_subproblem_ndx]
+ coeff_ndx = global_subproblem_ndx * len(self.root_vars)
subproblem.fix_complicating_vars = pyo.ConstraintList()
var_to_con_map = pyo.ComponentMap()
- for master_var in self.master_vars:
- if master_var in complicating_vars_map:
- sub_var = complicating_vars_map[master_var]
- sub_var.value = master_var.value
- new_con = subproblem.fix_complicating_vars.add(sub_var - master_var.value == 0)
- var_to_con_map[master_var] = new_con
- subproblem.fix_eta = pyo.Constraint(expr=subproblem._eta - master_eta.value == 0)
- subproblem._eta.value = master_eta.value
+ for root_var in self.root_vars:
+ if root_var in complicating_vars_map:
+ sub_var = complicating_vars_map[root_var]
+ sub_var.value = root_var.value
+ new_con = subproblem.fix_complicating_vars.add(sub_var - root_var.value == 0)
+ var_to_con_map[root_var] = new_con
+ subproblem.fix_eta = pyo.Constraint(expr=subproblem._eta - root_eta.value == 0)
+ subproblem._eta.value = root_eta.value
subproblem_solver = self.subproblem_solvers[local_subproblem_ndx]
if subproblem_solver.name not in solver_dual_sign_convention:
@@ -276,9 +276,9 @@ def generate_cut(self):
constants[global_subproblem_ndx] = pyo.value(subproblem._z)
eta_coeffs[global_subproblem_ndx] = sign_convention * pyo.value(subproblem.dual[subproblem.obj_con])
- for master_var in self.master_vars:
- if master_var in complicating_vars_map:
- c = var_to_con_map[master_var]
+ for root_var in self.root_vars:
+ if root_var in complicating_vars_map:
+ c = var_to_con_map[root_var]
coefficients[coeff_ndx] = sign_convention * pyo.value(subproblem.dual[c])
coeff_ndx += 1
@@ -292,7 +292,7 @@ def generate_cut(self):
total_num_subproblems = self.global_num_subproblems()
global_constants = np.zeros(total_num_subproblems, dtype='d')
- global_coeffs = np.zeros(total_num_subproblems*len(self.master_vars), dtype='d')
+ global_coeffs = np.zeros(total_num_subproblems*len(self.root_vars), dtype='d')
global_eta_coeffs = np.zeros(total_num_subproblems, dtype='d')
comm = self.comm
@@ -309,15 +309,15 @@ def generate_cut(self):
for global_subproblem_ndx in range(total_num_subproblems):
cut_expr = global_constants[global_subproblem_ndx]
if cut_expr > self.tol:
- master_eta = self.all_master_etas[global_subproblem_ndx]
- cut_expr -= global_eta_coeffs[global_subproblem_ndx] * (master_eta - master_eta.value)
- for master_var in self.master_vars:
+ root_eta = self.all_root_etas[global_subproblem_ndx]
+ cut_expr -= global_eta_coeffs[global_subproblem_ndx] * (root_eta - root_eta.value)
+ for root_var in self.root_vars:
coeff = global_coeffs[coeff_ndx]
- cut_expr -= coeff * (master_var - master_var.value)
+ cut_expr -= coeff * (root_var - root_var.value)
coeff_ndx += 1
new_cut = self.cuts.add(cut_expr <= 0)
cuts_added.append(new_cut)
else:
- coeff_ndx += len(self.master_vars)
+ coeff_ndx += len(self.root_vars)
return cuts_added
diff --git a/pyomo/contrib/benders/examples/farmer.py b/pyomo/contrib/benders/examples/farmer.py
index 925b66defd0..2a757345279 100644
--- a/pyomo/contrib/benders/examples/farmer.py
+++ b/pyomo/contrib/benders/examples/farmer.py
@@ -44,7 +44,7 @@ def __init__(self):
self.scenario_probabilities['AboveAverageScenario'] = 0.3333
-def create_master(farmer):
+def create_root(farmer):
m = pyo.ConcreteModel()
m.crops = pyo.Set(initialize=farmer.crops, ordered=True)
@@ -61,7 +61,7 @@ def create_master(farmer):
return m
-def create_subproblem(master, farmer, scenario):
+def create_subproblem(root, farmer, scenario):
m = pyo.ConcreteModel()
m.crops = pyo.Set(initialize=farmer.crops, ordered=True)
@@ -91,7 +91,7 @@ def EnforceQuotas_rule(m, i):
complicating_vars_map = pyo.ComponentMap()
for crop in m.crops:
- complicating_vars_map[master.devoted_acreage[crop]] = m.devoted_acreage[crop]
+ complicating_vars_map[root.devoted_acreage[crop]] = m.devoted_acreage[crop]
return m, complicating_vars_map
@@ -103,18 +103,18 @@ def main():
t0 = time.time()
farmer = Farmer()
- m = create_master(farmer=farmer)
- master_vars = list(m.devoted_acreage.values())
+ m = create_root(farmer=farmer)
+ root_vars = list(m.devoted_acreage.values())
m.benders = BendersCutGenerator()
- m.benders.set_input(master_vars=master_vars, tol=1e-8)
+ m.benders.set_input(root_vars=root_vars, tol=1e-8)
for s in farmer.scenarios:
subproblem_fn_kwargs = dict()
- subproblem_fn_kwargs['master'] = m
+ subproblem_fn_kwargs['root'] = m
subproblem_fn_kwargs['farmer'] = farmer
subproblem_fn_kwargs['scenario'] = s
m.benders.add_subproblem(subproblem_fn=create_subproblem,
subproblem_fn_kwargs=subproblem_fn_kwargs,
- master_eta=m.eta[s],
+ root_eta=m.eta[s],
subproblem_solver='gurobi_persistent')
opt = pyo.SolverFactory('gurobi_persistent')
opt.set_instance(m)
diff --git a/pyomo/contrib/benders/examples/grothey_ex.py b/pyomo/contrib/benders/examples/grothey_ex.py
index 9628d2a02a0..6f9c77d0e80 100644
--- a/pyomo/contrib/benders/examples/grothey_ex.py
+++ b/pyomo/contrib/benders/examples/grothey_ex.py
@@ -12,7 +12,7 @@
import pyomo.environ as pyo
-def create_master():
+def create_root():
m = pyo.ConcreteModel()
m.y = pyo.Var(bounds=(1, None))
m.eta = pyo.Var(bounds=(-10, None))
@@ -20,7 +20,7 @@ def create_master():
return m
-def create_subproblem(master):
+def create_subproblem(root):
m = pyo.ConcreteModel()
m.x1 = pyo.Var()
m.x2 = pyo.Var()
@@ -30,19 +30,19 @@ def create_subproblem(master):
m.c2 = pyo.Constraint(expr=(m.x1 + 1)**2 + m.x2**2 <= pyo.log(m.y))
complicating_vars_map = pyo.ComponentMap()
- complicating_vars_map[master.y] = m.y
+ complicating_vars_map[root.y] = m.y
return m, complicating_vars_map
def main():
- m = create_master()
- master_vars = [m.y]
+ m = create_root()
+ root_vars = [m.y]
m.benders = BendersCutGenerator()
- m.benders.set_input(master_vars=master_vars, tol=1e-8)
+ m.benders.set_input(root_vars=root_vars, tol=1e-8)
m.benders.add_subproblem(subproblem_fn=create_subproblem,
- subproblem_fn_kwargs={'master': m},
- master_eta=m.eta,
+ subproblem_fn_kwargs={'root': m},
+ root_eta=m.eta,
subproblem_solver='ipopt', )
opt = pyo.SolverFactory('gurobi_direct')
diff --git a/pyomo/contrib/benders/tests/test_benders.py b/pyomo/contrib/benders/tests/test_benders.py
index 437f5818966..8ef4ce4481a 100644
--- a/pyomo/contrib/benders/tests/test_benders.py
+++ b/pyomo/contrib/benders/tests/test_benders.py
@@ -56,7 +56,7 @@ def __init__(self):
self.scenario_probabilities['AverageScenario'] = 0.3334
self.scenario_probabilities['AboveAverageScenario'] = 0.3333
- def create_master(farmer):
+ def create_root(farmer):
m = pyo.ConcreteModel()
m.crops = pyo.Set(initialize=farmer.crops, ordered=True)
@@ -74,7 +74,7 @@ def create_master(farmer):
m.eta.values()))
return m
- def create_subproblem(master, farmer, scenario):
+ def create_subproblem(root, farmer, scenario):
m = pyo.ConcreteModel()
m.crops = pyo.Set(initialize=farmer.crops, ordered=True)
@@ -108,23 +108,23 @@ def EnforceQuotas_rule(m, i):
complicating_vars_map = pyo.ComponentMap()
for crop in m.crops:
- complicating_vars_map[master.devoted_acreage[crop]] = m.devoted_acreage[crop]
+ complicating_vars_map[root.devoted_acreage[crop]] = m.devoted_acreage[crop]
return m, complicating_vars_map
farmer = Farmer()
- m = create_master(farmer=farmer)
- master_vars = list(m.devoted_acreage.values())
+ m = create_root(farmer=farmer)
+ root_vars = list(m.devoted_acreage.values())
m.benders = BendersCutGenerator()
- m.benders.set_input(master_vars=master_vars, tol=1e-8)
+ m.benders.set_input(root_vars=root_vars, tol=1e-8)
for s in farmer.scenarios:
subproblem_fn_kwargs = dict()
- subproblem_fn_kwargs['master'] = m
+ subproblem_fn_kwargs['root'] = m
subproblem_fn_kwargs['farmer'] = farmer
subproblem_fn_kwargs['scenario'] = s
m.benders.add_subproblem(subproblem_fn=create_subproblem,
subproblem_fn_kwargs=subproblem_fn_kwargs,
- master_eta=m.eta[s],
+ root_eta=m.eta[s],
subproblem_solver='cplex_direct')
opt = pyo.SolverFactory('cplex_direct')
@@ -142,14 +142,14 @@ def EnforceQuotas_rule(m, i):
@unittest.skipIf(not numpy_available, 'numpy is not available.')
@unittest.skipIf(not ipopt_available, 'ipopt is not available.')
def test_grothey(self):
- def create_master():
+ def create_root():
m = pyo.ConcreteModel()
m.y = pyo.Var(bounds=(1, None))
m.eta = pyo.Var(bounds=(-10, None))
m.obj = pyo.Objective(expr=m.y ** 2 + m.eta)
return m
- def create_subproblem(master):
+ def create_subproblem(root):
m = pyo.ConcreteModel()
m.x1 = pyo.Var()
m.x2 = pyo.Var()
@@ -159,17 +159,17 @@ def create_subproblem(master):
m.c2 = pyo.Constraint(expr=(m.x1 + 1) ** 2 + m.x2 ** 2 <= pyo.log(m.y))
complicating_vars_map = pyo.ComponentMap()
- complicating_vars_map[master.y] = m.y
+ complicating_vars_map[root.y] = m.y
return m, complicating_vars_map
- m = create_master()
- master_vars = [m.y]
+ m = create_root()
+ root_vars = [m.y]
m.benders = BendersCutGenerator()
- m.benders.set_input(master_vars=master_vars, tol=1e-8)
+ m.benders.set_input(root_vars=root_vars, tol=1e-8)
m.benders.add_subproblem(subproblem_fn=create_subproblem,
- subproblem_fn_kwargs={'master': m},
- master_eta=m.eta,
+ subproblem_fn_kwargs={'root': m},
+ root_eta=m.eta,
subproblem_solver='ipopt', )
opt = pyo.SolverFactory('ipopt')
@@ -207,7 +207,7 @@ def __init__(self):
self.scenario_probabilities['AboveAverageScenario'] = 0.25
self.scenario_probabilities['Scenario4'] = 0.25
- def create_master(farmer):
+ def create_root(farmer):
m = pyo.ConcreteModel()
m.crops = pyo.Set(initialize=farmer.crops, ordered=True)
@@ -225,7 +225,7 @@ def create_master(farmer):
m.eta.values()))
return m
- def create_subproblem(master, farmer, scenario):
+ def create_subproblem(root, farmer, scenario):
m = pyo.ConcreteModel()
m.crops = pyo.Set(initialize=farmer.crops, ordered=True)
@@ -259,23 +259,23 @@ def EnforceQuotas_rule(m, i):
complicating_vars_map = pyo.ComponentMap()
for crop in m.crops:
- complicating_vars_map[master.devoted_acreage[crop]] = m.devoted_acreage[crop]
+ complicating_vars_map[root.devoted_acreage[crop]] = m.devoted_acreage[crop]
return m, complicating_vars_map
farmer = FourScenFarmer()
- m = create_master(farmer=farmer)
- master_vars = list(m.devoted_acreage.values())
+ m = create_root(farmer=farmer)
+ root_vars = list(m.devoted_acreage.values())
m.benders = BendersCutGenerator()
- m.benders.set_input(master_vars=master_vars, tol=1e-8)
+ m.benders.set_input(root_vars=root_vars, tol=1e-8)
for s in farmer.scenarios:
subproblem_fn_kwargs = dict()
- subproblem_fn_kwargs['master'] = m
+ subproblem_fn_kwargs['root'] = m
subproblem_fn_kwargs['farmer'] = farmer
subproblem_fn_kwargs['scenario'] = s
m.benders.add_subproblem(subproblem_fn=create_subproblem,
subproblem_fn_kwargs=subproblem_fn_kwargs,
- master_eta=m.eta[s],
+ root_eta=m.eta[s],
subproblem_solver='cplex_direct')
opt = pyo.SolverFactory('cplex_direct')
diff --git a/pyomo/contrib/gdpbb/GDPbb.py b/pyomo/contrib/gdpbb/GDPbb.py
index 0dd8fac2905..c530375ad47 100644
--- a/pyomo/contrib/gdpbb/GDPbb.py
+++ b/pyomo/contrib/gdpbb/GDPbb.py
@@ -11,7 +11,7 @@
import traceback
from pyomo.common import deprecated
-from pyomo.common.collections import ComponentSet, Container
+from pyomo.common.collections import ComponentSet, Bunch
from pyomo.common.config import (ConfigBlock, ConfigValue, PositiveInt)
from pyomo.contrib.gdpopt.util import create_utility_block, time_code, a_logger, restore_logger_level, \
setup_results_object, get_main_elapsed_time, process_objective
@@ -112,7 +112,7 @@ def solve(self, model, **kwds):
self.validate_model(model)
# Set solver as an MINLP
solve_data = GDPbbSolveData()
- solve_data.timing = Container()
+ solve_data.timing = Bunch()
solve_data.original_model = model
solve_data.results = SolverResults()
diff --git a/pyomo/contrib/gdpopt/GDPopt.py b/pyomo/contrib/gdpopt/GDPopt.py
index f07dd9e944c..d9bd765bc98 100644
--- a/pyomo/contrib/gdpopt/GDPopt.py
+++ b/pyomo/contrib/gdpopt/GDPopt.py
@@ -107,6 +107,13 @@ def solve(self, model, **kwds):
"""
config = self.CONFIG(kwds.pop('options', {}), preserve_implicit=True)
config.set_value(kwds)
+ if config.strategy is None:
+ msg = 'Please specify solution strategy. Options are: \n'
+ msg += ' LOA: Logic-based Outer Approximation\n'
+ msg += ' GLOA: Global Logic-based Outer Approximation\n'
+ msg += ' LBB: Logic-based Branch and Bound\n'
+ msg += ' RIC: Relaxation with Integer Cuts'
+ raise ValueError(msg)
with setup_solver_environment(model, config) as solve_data:
self._log_solver_intro_message(config)
@@ -122,7 +129,7 @@ def solve(self, model, **kwds):
# TODO merge the solver results
return presolve_results # problem presolved
- if solve_data.active_strategy in {'LOA', 'GLOA'}:
+ if solve_data.active_strategy in {'LOA', 'GLOA', 'RIC'}:
# Initialize the master problem
with time_code(solve_data.timing, 'initialization'):
GDPopt_initialize_master(solve_data, config)
@@ -132,6 +139,8 @@ def solve(self, model, **kwds):
GDPopt_iteration_loop(solve_data, config)
elif solve_data.active_strategy == 'LBB':
_perform_branch_and_bound(solve_data)
+ else:
+ raise ValueError('Unrecognized strategy: ' + config.strategy)
return solve_data.results
diff --git a/pyomo/contrib/gdpopt/config_options.py b/pyomo/contrib/gdpopt/config_options.py
index 8fde999a695..368b14b37a9 100644
--- a/pyomo/contrib/gdpopt/config_options.py
+++ b/pyomo/contrib/gdpopt/config_options.py
@@ -20,6 +20,7 @@ def _get_GDPopt_config():
'LOA', # Logic-based outer approximation
'GLOA', # Global logic-based outer approximation
'LBB', # Logic-based branch-and-bound
+ 'RIC', # Relaxation with Integer Cuts
}
CONFIG = ConfigBlock("GDPopt")
CONFIG.declare("iterlim", ConfigValue(
@@ -35,7 +36,7 @@ def _get_GDPopt_config():
"need to set subsolver time limits as well."
))
CONFIG.declare("strategy", ConfigValue(
- default="LOA", domain=In(_supported_strategies),
+ default=None, domain=In(_supported_strategies),
description="Decomposition strategy to use."
))
CONFIG.declare("tee", ConfigValue(
diff --git a/pyomo/contrib/gdpopt/cut_generation.py b/pyomo/contrib/gdpopt/cut_generation.py
index a9ef71daac4..9e0855ad86d 100644
--- a/pyomo/contrib/gdpopt/cut_generation.py
+++ b/pyomo/contrib/gdpopt/cut_generation.py
@@ -31,7 +31,10 @@ def add_subproblem_cuts(subprob_result, solve_data, config):
return add_outer_approximation_cuts(subprob_result, solve_data, config)
elif config.strategy == "GLOA":
return add_affine_cuts(subprob_result, solve_data, config)
-
+ elif config.strategy == 'RIC':
+ pass
+ else:
+ raise ValueError('Unrecognized strategy: ' + config.strategy)
def add_outer_approximation_cuts(nlp_result, solve_data, config):
"""Add outer approximation cuts to the linear GDP model."""
diff --git a/pyomo/contrib/gdpopt/iterate.py b/pyomo/contrib/gdpopt/iterate.py
index cc9e09a25c3..83d3d697fb8 100644
--- a/pyomo/contrib/gdpopt/iterate.py
+++ b/pyomo/contrib/gdpopt/iterate.py
@@ -46,6 +46,11 @@ def GDPopt_iteration_loop(solve_data, config):
nlp_result = solve_global_subproblem(mip_result, solve_data, config)
if nlp_result.feasible:
add_affine_cuts(nlp_result, solve_data, config)
+ elif solve_data.active_strategy == 'RIC':
+ with time_code(solve_data.timing, 'nlp'):
+ nlp_result = solve_local_subproblem(mip_result, solve_data, config)
+ else:
+ raise ValueError('Unrecognized strategy: ' + solve_data.active_strategy)
# Add integer cut
add_integer_cut(
diff --git a/pyomo/contrib/gdpopt/mip_solve.py b/pyomo/contrib/gdpopt/mip_solve.py
index c8a62bd7db8..2fae792a626 100644
--- a/pyomo/contrib/gdpopt/mip_solve.py
+++ b/pyomo/contrib/gdpopt/mip_solve.py
@@ -201,8 +201,10 @@ def solve_LOA_master(solve_data, config):
obj_expr = GDPopt.oa_obj.expr
base_obj_expr = main_objective.expr
- elif solve_data.active_strategy == 'GLOA':
+ elif solve_data.active_strategy in {'GLOA', 'RIC'}:
obj_expr = base_obj_expr = main_objective.expr
+ else:
+ raise ValueError('Unrecognized strategy: ' + solve_data.active_strategy)
mip_result = solve_linear_GDP(m, solve_data, config)
if mip_result.feasible:
diff --git a/pyomo/contrib/gdpopt/nlp_solve.py b/pyomo/contrib/gdpopt/nlp_solve.py
index 317e00f76a3..6ab9f6bf93b 100644
--- a/pyomo/contrib/gdpopt/nlp_solve.py
+++ b/pyomo/contrib/gdpopt/nlp_solve.py
@@ -27,15 +27,19 @@
def solve_disjunctive_subproblem(mip_result, solve_data, config):
"""Set up and solve the disjunctive subproblem."""
if config.force_subproblem_nlp:
- if config.strategy == "LOA":
+ if config.strategy in {"LOA", "RIC"}:
return solve_local_NLP(mip_result.var_values, solve_data, config)
elif config.strategy == 'GLOA':
return solve_global_subproblem(mip_result, solve_data, config)
+ else:
+ raise ValueError('Unrecognized strategy: ' + config.strategy)
else:
- if config.strategy == "LOA":
+ if config.strategy in {"LOA", "RIC"}:
return solve_local_subproblem(mip_result, solve_data, config)
elif config.strategy == 'GLOA':
return solve_global_subproblem(mip_result, solve_data, config)
+ else:
+ raise ValueError('Unrecognized strategy: ' + config.strategy)
def solve_linear_subproblem(mip_model, solve_data, config):
diff --git a/pyomo/contrib/gdpopt/tests/test_gdpopt.py b/pyomo/contrib/gdpopt/tests/test_gdpopt.py
index e392142d769..a4c0ca1a2ad 100644
--- a/pyomo/contrib/gdpopt/tests/test_gdpopt.py
+++ b/pyomo/contrib/gdpopt/tests/test_gdpopt.py
@@ -17,7 +17,7 @@
import pyutilib.th as unittest
from pyomo.common.log import LoggingIntercept
-from pyomo.common.collections import Container
+from pyomo.common.collections import Bunch
from pyomo.common.fileutils import import_file
from pyomo.contrib.gdpopt.GDPopt import GDPoptSolver
from pyomo.contrib.gdpopt.data_class import GDPoptSolveData
@@ -62,9 +62,9 @@ def test_solve_linear_GDP_unbounded(self):
output = StringIO()
with LoggingIntercept(output, 'pyomo.contrib.gdpopt', logging.WARNING):
solver_data = GDPoptSolveData()
- solver_data.timing = Container()
+ solver_data.timing = Bunch()
with time_code(solver_data.timing, 'main', is_main_timer=True):
- solve_linear_GDP(m, solver_data, GDPoptSolver.CONFIG(dict(mip_solver=mip_solver)))
+ solve_linear_GDP(m, solver_data, GDPoptSolver.CONFIG(dict(mip_solver=mip_solver, strategy='LOA')))
self.assertIn("Linear GDP was unbounded. Resolving with arbitrary bound values",
output.getvalue().strip())
@@ -76,7 +76,7 @@ def test_solve_lp(self):
m.o = Objective(expr=m.x)
output = StringIO()
with LoggingIntercept(output, 'pyomo.contrib.gdpopt', logging.INFO):
- SolverFactory('gdpopt').solve(m, mip_solver=mip_solver)
+ SolverFactory('gdpopt').solve(m, mip_solver=mip_solver, strategy='LOA')
self.assertIn("Your model is an LP (linear program).",
output.getvalue().strip())
self.assertAlmostEqual(value(m.o.expr), 1)
@@ -89,7 +89,7 @@ def test_solve_nlp(self):
m.o = Objective(expr=m.x ** 2)
output = StringIO()
with LoggingIntercept(output, 'pyomo.contrib.gdpopt', logging.INFO):
- SolverFactory('gdpopt').solve(m, nlp_solver=nlp_solver)
+ SolverFactory('gdpopt').solve(m, nlp_solver=nlp_solver, strategy='LOA')
self.assertIn("Your model is an NLP (nonlinear program).",
output.getvalue().strip())
self.assertAlmostEqual(value(m.o.expr), 1)
@@ -102,7 +102,7 @@ def test_solve_constant_obj(self):
m.o = Objective(expr=1)
output = StringIO()
with LoggingIntercept(output, 'pyomo.contrib.gdpopt', logging.INFO):
- SolverFactory('gdpopt').solve(m, mip_solver=mip_solver)
+ SolverFactory('gdpopt').solve(m, mip_solver=mip_solver, strategy='LOA')
self.assertIn("Your model is an LP (linear program).",
output.getvalue().strip())
self.assertAlmostEqual(value(m.o.expr), 1)
@@ -114,7 +114,7 @@ def test_no_objective(self):
m.c = Constraint(expr=m.x ** 2 >= 1)
output = StringIO()
with LoggingIntercept(output, 'pyomo.contrib.gdpopt', logging.WARNING):
- SolverFactory('gdpopt').solve(m, nlp_solver=nlp_solver)
+ SolverFactory('gdpopt').solve(m, nlp_solver=nlp_solver, strategy='LOA')
self.assertIn("Model has no active objectives. Adding dummy objective.",
output.getvalue().strip())
@@ -124,35 +124,35 @@ def test_multiple_objectives(self):
m.o = Objective(expr=m.x)
m.o2 = Objective(expr=m.x + 1)
with self.assertRaisesRegexp(ValueError, "Model has multiple active objectives"):
- SolverFactory('gdpopt').solve(m)
+ SolverFactory('gdpopt').solve(m, strategy='LOA')
def test_is_feasible_function(self):
m = ConcreteModel()
m.x = Var(bounds=(0, 3), initialize=2)
m.c = Constraint(expr=m.x == 2)
- self.assertTrue(is_feasible(m, GDPoptSolver.CONFIG()))
+ self.assertTrue(is_feasible(m, GDPoptSolver.CONFIG(dict(strategy='LOA'))))
m.c2 = Constraint(expr=m.x <= 1)
- self.assertFalse(is_feasible(m, GDPoptSolver.CONFIG()))
+ self.assertFalse(is_feasible(m, GDPoptSolver.CONFIG(dict(strategy='LOA'))))
m = ConcreteModel()
m.x = Var(bounds=(0, 3), initialize=2)
m.c = Constraint(expr=m.x >= 5)
- self.assertFalse(is_feasible(m, GDPoptSolver.CONFIG()))
+ self.assertFalse(is_feasible(m, GDPoptSolver.CONFIG(dict(strategy='LOA'))))
m = ConcreteModel()
m.x = Var(bounds=(3, 3), initialize=2)
- self.assertFalse(is_feasible(m, GDPoptSolver.CONFIG()))
+ self.assertFalse(is_feasible(m, GDPoptSolver.CONFIG(dict(strategy='LOA'))))
m = ConcreteModel()
m.x = Var(bounds=(0, 1), initialize=2)
- self.assertFalse(is_feasible(m, GDPoptSolver.CONFIG()))
+ self.assertFalse(is_feasible(m, GDPoptSolver.CONFIG(dict(strategy='LOA'))))
m = ConcreteModel()
m.x = Var(bounds=(0, 1), initialize=2)
m.d = Disjunct()
with self.assertRaisesRegexp(NotImplementedError, "Found active disjunct"):
- is_feasible(m, GDPoptSolver.CONFIG())
+ is_feasible(m, GDPoptSolver.CONFIG(dict(strategy='LOA')))
@unittest.skipIf(not LOA_solvers_available,
@@ -365,6 +365,216 @@ def assert_correct_disjuncts_active(nlp_model, solve_data):
self.assertTrue(fabs(value(eight_process.profit.expr) - 68) <= 1E-2)
+@unittest.skipIf(not LOA_solvers_available,
+ "Required subsolvers %s are not available"
+ % (LOA_solvers,))
+class TestGDPoptRIC(unittest.TestCase):
+ """Tests for the GDPopt solver plugin."""
+
+ def test_infeasible_GDP(self):
+ """Test for infeasible GDP."""
+ m = ConcreteModel()
+ m.x = Var(bounds=(0, 2))
+ m.d = Disjunction(expr=[
+ [m.x ** 2 >= 3, m.x >= 3],
+ [m.x ** 2 <= -1, m.x <= -1]])
+ m.o = Objective(expr=m.x)
+ output = StringIO()
+ with LoggingIntercept(output, 'pyomo.contrib.gdpopt', logging.WARNING):
+ SolverFactory('gdpopt').solve(
+ m, strategy='RIC',
+ mip_solver=mip_solver,
+ nlp_solver=nlp_solver)
+ self.assertIn("Set covering problem was infeasible.",
+ output.getvalue().strip())
+
+ def test_GDP_nonlinear_objective(self):
+ m = ConcreteModel()
+ m.x = Var(bounds=(-1, 10))
+ m.y = Var(bounds=(2, 3))
+ m.d = Disjunction(expr=[
+ [m.x + m.y >= 5], [m.x - m.y <= 3]
+ ])
+ m.o = Objective(expr=m.x ** 2)
+ SolverFactory('gdpopt').solve(
+ m, strategy='RIC',
+ mip_solver=mip_solver,
+ nlp_solver=nlp_solver
+ )
+ self.assertAlmostEqual(value(m.o), 0)
+
+ m = ConcreteModel()
+ m.x = Var(bounds=(-1, 10))
+ m.y = Var(bounds=(2, 3))
+ m.d = Disjunction(expr=[
+ [m.x + m.y >= 5], [m.x - m.y <= 3]
+ ])
+ m.o = Objective(expr=-m.x ** 2, sense=maximize)
+ SolverFactory('gdpopt').solve(
+ m, strategy='RIC',
+ mip_solver=mip_solver,
+ nlp_solver=nlp_solver
+ )
+ self.assertAlmostEqual(value(m.o), 0)
+
+ def test_RIC_8PP_default_init(self):
+ """Test logic-based outer approximation with 8PP."""
+ exfile = import_file(
+ join(exdir, 'eight_process', 'eight_proc_model.py'))
+ eight_process = exfile.build_eight_process_flowsheet()
+ SolverFactory('gdpopt').solve(
+ eight_process, strategy='RIC',
+ mip_solver=mip_solver,
+ nlp_solver=nlp_solver,
+ tee=False)
+ self.assertTrue(fabs(value(eight_process.profit.expr) - 68) <= 1E-2)
+
+ @unittest.skipUnless(SolverFactory('gams').available(exception_flag=False), 'GAMS solver not available')
+ def test_RIC_8PP_gams_solver(self):
+ # Make sure that the duals are still correct
+ exfile = import_file(
+ join(exdir, 'eight_process', 'eight_proc_model.py'))
+ eight_process = exfile.build_eight_process_flowsheet()
+ SolverFactory('gdpopt').solve(
+ eight_process, strategy='RIC',
+ mip_solver=mip_solver,
+ nlp_solver='gams',
+ max_slack=0,
+ tee=False)
+ self.assertTrue(fabs(value(eight_process.profit.expr) - 68) <= 1E-2)
+
+ def test_RIC_8PP_force_NLP(self):
+ exfile = import_file(
+ join(exdir, 'eight_process', 'eight_proc_model.py'))
+ eight_process = exfile.build_eight_process_flowsheet()
+ SolverFactory('gdpopt').solve(
+ eight_process, strategy='RIC',
+ mip_solver=mip_solver,
+ nlp_solver=nlp_solver,
+ force_subproblem_nlp=True,
+ tee=False)
+ self.assertTrue(fabs(value(eight_process.profit.expr) - 68) <= 1E-2)
+
+ def test_RIC_strip_pack_default_init(self):
+ """Test logic-based outer approximation with strip packing."""
+ exfile = import_file(
+ join(exdir, 'strip_packing', 'strip_packing_concrete.py'))
+ strip_pack = exfile.build_rect_strip_packing_model()
+ SolverFactory('gdpopt').solve(
+ strip_pack, strategy='RIC',
+ mip_solver=mip_solver,
+ nlp_solver=nlp_solver)
+ self.assertTrue(
+ fabs(value(strip_pack.total_length.expr) - 11) <= 1E-2)
+
+ def test_RIC_constrained_layout_default_init(self):
+ """Test RIC with constrained layout."""
+ exfile = import_file(
+ join(exdir, 'constrained_layout', 'cons_layout_model.py'))
+ cons_layout = exfile.build_constrained_layout_model()
+ SolverFactory('gdpopt').solve(
+ cons_layout, strategy='RIC',
+ mip_solver=mip_solver,
+ nlp_solver=nlp_solver,
+ iterlim=120,
+ max_slack=5, # problem is convex, so can decrease slack
+ )
+ objective_value = value(cons_layout.min_dist_cost.expr)
+ self.assertTrue(
+ fabs(objective_value - 41573) <= 200,
+ "Objective value of %s instead of 41573" % objective_value)
+
+ def test_RIC_8PP_maxBinary(self):
+ """Test logic-based OA with max_binary initialization."""
+ exfile = import_file(
+ join(exdir, 'eight_process', 'eight_proc_model.py'))
+ eight_process = exfile.build_eight_process_flowsheet()
+ SolverFactory('gdpopt').solve(
+ eight_process, strategy='RIC', init_strategy='max_binary',
+ mip_solver=mip_solver,
+ nlp_solver=nlp_solver)
+
+ self.assertTrue(fabs(value(eight_process.profit.expr) - 68) <= 1E-2)
+
+ def test_RIC_strip_pack_maxBinary(self):
+ """Test RIC with strip packing using max_binary initialization."""
+ exfile = import_file(
+ join(exdir, 'strip_packing', 'strip_packing_concrete.py'))
+ strip_pack = exfile.build_rect_strip_packing_model()
+ SolverFactory('gdpopt').solve(
+ strip_pack, strategy='RIC', init_strategy='max_binary',
+ mip_solver=mip_solver,
+ nlp_solver=nlp_solver)
+ self.assertTrue(
+ fabs(value(strip_pack.total_length.expr) - 11) <= 1E-2)
+
+ def test_RIC_8PP_fixed_disjuncts(self):
+ """Test RIC with 8PP using fixed disjuncts initialization."""
+ exfile = import_file(
+ join(exdir, 'eight_process', 'eight_proc_model.py'))
+ eight_process = exfile.build_eight_process_flowsheet()
+ initialize = [
+ # Use units 1, 4, 7, 8
+ eight_process.use_unit_1or2.disjuncts[0],
+ eight_process.use_unit_3ornot.disjuncts[1],
+ eight_process.use_unit_4or5ornot.disjuncts[0],
+ eight_process.use_unit_6or7ornot.disjuncts[1],
+ eight_process.use_unit_8ornot.disjuncts[0]
+ ]
+ for disj in eight_process.component_data_objects(Disjunct):
+ if disj in initialize:
+ disj.indicator_var.set_value(1)
+ else:
+ disj.indicator_var.set_value(0)
+ SolverFactory('gdpopt').solve(
+ eight_process, strategy='RIC', init_strategy='fix_disjuncts',
+ mip_solver=mip_solver,
+ nlp_solver=nlp_solver)
+
+ self.assertTrue(fabs(value(eight_process.profit.expr) - 68) <= 1E-2)
+
+ def test_RIC_custom_disjuncts(self):
+ """Test logic-based OA with custom disjuncts initialization."""
+ exfile = import_file(
+ join(exdir, 'eight_process', 'eight_proc_model.py'))
+ eight_process = exfile.build_eight_process_flowsheet()
+ initialize = [
+ # Use units 1, 4, 7, 8
+ [eight_process.use_unit_1or2.disjuncts[0],
+ eight_process.use_unit_3ornot.disjuncts[1],
+ eight_process.use_unit_4or5ornot.disjuncts[0],
+ eight_process.use_unit_6or7ornot.disjuncts[1],
+ eight_process.use_unit_8ornot.disjuncts[0]],
+ # Use units 2, 4, 6, 8
+ [eight_process.use_unit_1or2.disjuncts[1],
+ eight_process.use_unit_3ornot.disjuncts[1],
+ eight_process.use_unit_4or5ornot.disjuncts[0],
+ eight_process.use_unit_6or7ornot.disjuncts[0],
+ eight_process.use_unit_8ornot.disjuncts[0]]
+ ]
+
+ def assert_correct_disjuncts_active(nlp_model, solve_data):
+ if solve_data.master_iteration >= 1:
+ return # only checking initialization
+ iter_num = solve_data.nlp_iteration
+ disjs_should_be_active = initialize[iter_num - 1]
+ for orig_disj, soln_disj in zip(
+ solve_data.original_model.GDPopt_utils.disjunct_list,
+ nlp_model.GDPopt_utils.disjunct_list
+ ):
+ if orig_disj in disjs_should_be_active:
+ self.assertTrue(soln_disj.indicator_var.value == 1)
+
+ SolverFactory('gdpopt').solve(
+ eight_process, strategy='RIC', init_strategy='custom_disjuncts',
+ custom_init_disjuncts=initialize,
+ mip_solver=mip_solver,
+ nlp_solver=nlp_solver,
+ call_after_subproblem_feasible=assert_correct_disjuncts_active)
+
+ self.assertTrue(fabs(value(eight_process.profit.expr) - 68) <= 1E-2)
+
+
@unittest.skipIf(not GLOA_solvers_available,
"Required subsolvers %s are not available"
% (GLOA_solvers,))
diff --git a/pyomo/contrib/gdpopt/util.py b/pyomo/contrib/gdpopt/util.py
index 29d4cf75e8d..4bce9f9a540 100644
--- a/pyomo/contrib/gdpopt/util.py
+++ b/pyomo/contrib/gdpopt/util.py
@@ -18,7 +18,7 @@
import six
from pyomo.common import deprecated, timing
-from pyomo.common.collections import ComponentSet, Container
+from pyomo.common.collections import ComponentSet, Bunch
from pyomo.contrib.fbbt.fbbt import compute_bounds_on_expr
from pyomo.contrib.gdpopt.data_class import GDPoptSolveData
from pyomo.contrib.mcpp.pyomo_mcpp import mcpp_available, McCormick
@@ -484,7 +484,7 @@ def setup_solver_environment(model, config):
solve_data = GDPoptSolveData() # data object for storing solver state
solve_data.config = config
solve_data.results = SolverResults()
- solve_data.timing = Container()
+ solve_data.timing = Bunch()
min_logging_level = logging.INFO if config.tee else None
with time_code(solve_data.timing, 'total', is_main_timer=True), \
lower_logger_level_to(config.logger, min_logging_level), \
diff --git a/pyomo/pysp/tests/examples/__init__.py b/pyomo/contrib/interior_point/linalg/tests/__init__.py
similarity index 100%
rename from pyomo/pysp/tests/examples/__init__.py
rename to pyomo/contrib/interior_point/linalg/tests/__init__.py
diff --git a/pyomo/contrib/mindtpy/MindtPy.py b/pyomo/contrib/mindtpy/MindtPy.py
index 0fbe38109b6..aa029fee19f 100644
--- a/pyomo/contrib/mindtpy/MindtPy.py
+++ b/pyomo/contrib/mindtpy/MindtPy.py
@@ -47,7 +47,7 @@
Block, ConstraintList, NonNegativeReals, Set, Suffix, Var,
VarList, TransformationFactory, Objective)
from pyomo.opt import SolverFactory, SolverResults
-from pyomo.common.collections import Container
+from pyomo.common.collections import Bunch
from pyomo.contrib.fbbt.fbbt import fbbt
from pyomo.contrib.mindtpy.config_options import _get_GDPopt_config
@@ -126,7 +126,7 @@ def solve(self, model, **kwds):
solve_data = MindtPySolveData()
solve_data.results = SolverResults()
- solve_data.timing = Container()
+ solve_data.timing = Bunch()
solve_data.curr_int_sol = []
solve_data.prev_int_sol = []
diff --git a/pyomo/contrib/parmest/parmest.py b/pyomo/contrib/parmest/parmest.py
index e6822339f05..28daeed1af6 100644
--- a/pyomo/contrib/parmest/parmest.py
+++ b/pyomo/contrib/parmest/parmest.py
@@ -23,11 +23,6 @@
)
import pyomo.environ as pyo
-import pyomo.pysp.util.rapper as st
-from pyomo.pysp.scenariotree import tree_structure
-from pyomo.pysp.scenariotree.tree_structure_model import (
- CreateAbstractScenarioTreeModel
-)
from pyomo.opt import SolverFactory
from pyomo.environ import Block, ComponentUID
@@ -35,11 +30,17 @@
import pyomo.contrib.parmest.ipopt_solver_wrapper as ipopt_solver_wrapper
import pyomo.contrib.parmest.graphics as graphics
-parmest_available = numpy_available & pandas_available & scipy_available
+pysp, pysp_available = attempt_import('pysp')
+
+parmest_available = numpy_available & pandas_available & scipy_available & \
+ pysp_available
inverse_reduced_hessian, inverse_reduced_hessian_available = attempt_import(
'pyomo.contrib.interior_point.inverse_reduced_hessian')
+st = attempt_import('pysp.util.rapper')[0]
+scenariotree = attempt_import('pysp.scenariotree')[0]
+
logger = logging.getLogger(__name__)
__version__ = 0.1
@@ -251,7 +252,8 @@ def _treemaker(scenlist):
"""
num_scenarios = len(scenlist)
- m = CreateAbstractScenarioTreeModel().create_instance()
+ m = scenariotree.tree_structure_model.CreateAbstractScenarioTreeModel()
+ m = m.create_instance()
m.Stages.add('Stage1')
m.Stages.add('Stage2')
m.Nodes.add('RootNode')
@@ -484,15 +486,15 @@ def _Q_opt(self, ThetaVals=None, solver="ef_ipopt",
# backwards compatibility reasons, and so a ton of tests
# don't have to be updated) still defaults to the old
# representation.
- _cuidver = tree_structure.CUID_repr_version
- tree_structure.CUID_repr_version = 2
+ _cuidver = scenariotree.tree_structure.CUID_repr_version
+ scenariotree.tree_structure.CUID_repr_version = 2
stsolver = st.StochSolver(
fsfile = "pyomo.contrib.parmest.parmest",
fsfct = "_pysp_instance_creation_callback",
tree_model = tree_model
)
finally:
- tree_structure.CUID_repr_version = _cuidver
+ scenariotree.tree_structure.CUID_repr_version = _cuidver
# Solve the extensive form with ipopt
if solver == "ef_ipopt":
diff --git a/pyomo/contrib/parmest/tests/test_scenariocreator.py b/pyomo/contrib/parmest/tests/test_scenariocreator.py
index ed126e59fe1..1a293ac6b5e 100644
--- a/pyomo/contrib/parmest/tests/test_scenariocreator.py
+++ b/pyomo/contrib/parmest/tests/test_scenariocreator.py
@@ -9,12 +9,8 @@
# ___________________________________________________________________________
from pyomo.common.dependencies import (
- numpy as np, numpy_available,
pandas as pd, pandas_available,
- scipy, scipy_available,
- matplotlib, matplotlib_available,
)
-imports_present = numpy_available & pandas_available & scipy_available
uuid_available = True
try:
@@ -34,7 +30,7 @@
testdir = os.path.dirname(os.path.abspath(__file__))
-@unittest.skipIf(not imports_present, "Cannot test parmest: required dependencies are missing")
+@unittest.skipIf(not parmest.parmest_available, "Cannot test parmest: required dependencies are missing")
@unittest.skipIf(not ipopt_available, "The 'ipopt' command is not available")
class pamest_Scenario_creator_reactor_design(unittest.TestCase):
@@ -102,7 +98,7 @@ def test_no_csv_if_empty(self):
-@unittest.skipIf(not imports_present, "Cannot test parmest: required dependencies are missing")
+@unittest.skipIf(not parmest.parmest_available, "Cannot test parmest: required dependencies are missing")
@unittest.skipIf(not ipopt_available, "The 'ipopt' command is not available")
class pamest_Scenario_creator_semibatch(unittest.TestCase):
diff --git a/pyomo/contrib/pynumero/algorithms/solvers/cyipopt_solver.py b/pyomo/contrib/pynumero/algorithms/solvers/cyipopt_solver.py
index e5790e3c4c3..bb122113452 100644
--- a/pyomo/contrib/pynumero/algorithms/solvers/cyipopt_solver.py
+++ b/pyomo/contrib/pynumero/algorithms/solvers/cyipopt_solver.py
@@ -39,6 +39,7 @@
# imports here so that the solver can be registered even when numpy is
# not available.
pyomo_nlp = attempt_import('pyomo.contrib.pynumero.interfaces.pyomo_nlp')[0]
+pyomo_grey_box = attempt_import('pyomo.contrib.pynumero.interfaces.pyomo_grey_box_nlp')[0]
egb = attempt_import('pyomo.contrib.pynumero.interfaces.external_grey_box')[0]
from pyomo.common.config import ConfigBlock, ConfigValue
@@ -448,6 +449,12 @@ class PyomoCyIpoptSolver(object):
domain=bool,
description="Store the final solution into the original Pyomo model",
))
+ CONFIG.declare("return_nlp", ConfigValue(
+ default=False,
+ domain=bool,
+ description="Return the results object and the underlying nlp"
+ " NLP object from the solve call.",
+ ))
CONFIG.declare("options", ConfigBlock(implicit=True))
@@ -485,9 +492,11 @@ def solve(self, model, **kwds):
grey_box_blocks = list(model.component_data_objects(
egb.ExternalGreyBoxBlock, active=True))
if grey_box_blocks:
- nlp = pyomo_nlp.PyomoGreyBoxNLP(model)
+ # nlp = pyomo_nlp.PyomoGreyBoxNLP(model)
+ nlp = pyomo_grey_box.PyomoNLPWithGreyBoxBlocks(model)
else:
nlp = pyomo_nlp.PyomoNLP(model)
+
problem = CyIpoptNLP(nlp)
xl = problem.x_lb()
@@ -586,6 +595,10 @@ def solve(self, model, **kwds):
results.solver.termination_condition = _ipopt_term_cond[status_enum]
results.solver.status = TerminationCondition.to_solver_status(
results.solver.termination_condition)
+
+ if config.return_nlp:
+ return results, nlp
+
return results
#
diff --git a/pyomo/contrib/pynumero/examples/derivatives_gas.py b/pyomo/contrib/pynumero/examples/derivatives_gas.py
index 526b095fea4..f4834b553f0 100644
--- a/pyomo/contrib/pynumero/examples/derivatives_gas.py
+++ b/pyomo/contrib/pynumero/examples/derivatives_gas.py
@@ -11,16 +11,16 @@
from pyomo.contrib.pynumero.interfaces.pyomo_nlp import PyomoNLP
import matplotlib.pylab as plt
-from pyomo.pysp.scenariotree.manager import \
+from pysp.scenariotree.manager import \
ScenarioTreeManagerFactory
-from pyomo.pysp.scenariotree.instance_factory import \
+from pysp.scenariotree.instance_factory import \
ScenarioTreeInstanceFactory
from gas_network_model import (pysp_instance_creation_callback,
nx_scenario_tree)
-from pyomo.pysp.ef import create_ef_instance
+from pysp.ef import create_ef_instance
# define and initialize the SP
instance_factory = ScenarioTreeInstanceFactory(
diff --git a/pyomo/contrib/pynumero/examples/external_grey_box/param_est/README b/pyomo/contrib/pynumero/examples/external_grey_box/param_est/README
new file mode 100644
index 00000000000..a4e8c699a33
--- /dev/null
+++ b/pyomo/contrib/pynumero/examples/external_grey_box/param_est/README
@@ -0,0 +1,18 @@
+This folder shows how an external model (e.g., external compiled code)
+can be coupled with Pyomo using the ExternalGreyBoxModel and the
+ExternalGreyBoxBlock component.
+
+The example includes a purely Pyomo version and a version with the
+external grey box model.
+- models.py: Contains the vanilla Pyomo model and a version
+ using the external grey box interface
+- generate_data.py: This file was used to generate the data files
+ data.csv and smalldata.csv. This can mostly be ignored, but it
+ does show how to solve a "square" version of both models. This
+ can be a helpful example since the external grey box model interface
+ does not support "fix"-ing of variables.
+- perform_estimation.py: This file shows how to create a parameter
+ estimation formulation that has an instance of an ExternalGreyBoxBlock
+ (and ExternalGreyBoxModel) for every data run in the parameter
+ estimation. It builds the least-squares objective function and solves
+ the problems with ipopt (pure Pyomo) and cyipopt (Pyomo with external)
diff --git a/pyomo/pysp/tests/unit/testdata/root.dat b/pyomo/contrib/pynumero/examples/external_grey_box/param_est/__init__.py
similarity index 100%
rename from pyomo/pysp/tests/unit/testdata/root.dat
rename to pyomo/contrib/pynumero/examples/external_grey_box/param_est/__init__.py
diff --git a/pyomo/contrib/pynumero/examples/external_grey_box/param_est/generate_data.py b/pyomo/contrib/pynumero/examples/external_grey_box/param_est/generate_data.py
new file mode 100644
index 00000000000..ba2e7210c9f
--- /dev/null
+++ b/pyomo/contrib/pynumero/examples/external_grey_box/param_est/generate_data.py
@@ -0,0 +1,84 @@
+import pyomo.environ as pyo
+import numpy.random as rnd
+import pyomo.contrib.pynumero.examples.external_grey_box.param_est.models as pm
+import pandas as pd
+
+def generate_data(N, UA_mean, UA_std, seed=42):
+ rnd.seed(seed)
+ m = pyo.ConcreteModel()
+ pm.build_single_point_model_pyomo_only(m)
+
+ # dummy objective since this is a square problem
+ m.obj = pyo.Objective(expr=1)
+
+ # create the ipopt solver
+ solver = pyo.SolverFactory('ipopt')
+
+ data = {'run': [], 'Th_in': [], 'Tc_in': [], 'Th_out':[],
+ 'Tc_out': []}
+ for i in range(N):
+ # draw a random value for the parameters
+ ua = float(rnd.normal(UA_mean, UA_std))
+ # draw a noisy value for the test input conditions
+ Th_in = 100 + float(rnd.normal(0, 2))
+ Tc_in = 30 + float(rnd.normal(0, 2))
+ m.UA.fix(ua)
+ m.Th_in.fix(Th_in)
+ m.Tc_in.fix(Tc_in)
+
+ status = solver.solve(m, tee=False)
+ data['run'].append(i)
+ data['Th_in'].append(pyo.value(m.Th_in))
+ data['Tc_in'].append(pyo.value(m.Tc_in))
+ data['Th_out'].append(pyo.value(m.Th_out))
+ data['Tc_out'].append(pyo.value(m.Tc_out))
+
+ return pd.DataFrame(data)
+
+def generate_data_external(N, UA_mean, UA_std, seed=42):
+ rnd.seed(seed)
+ m = pyo.ConcreteModel()
+ pm.build_single_point_model_external(m)
+
+ # Add mutable parameters for the rhs of the equalities
+ m.UA_spec = pyo.Param(initialize=200, mutable=True)
+ m.Th_in_spec = pyo.Param(initialize=100, mutable=True)
+ m.Tc_in_spec = pyo.Param(initialize=30, mutable=True)
+ m.UA_spec_con = pyo.Constraint(expr=m.egb.inputs['UA'] == m.UA_spec)
+ m.Th_in_spec_con = pyo.Constraint(expr=m.egb.inputs['Th_in'] == m.Th_in_spec)
+ m.Tc_in_spec_con = pyo.Constraint(expr=m.egb.inputs['Tc_in'] == m.Tc_in_spec)
+
+
+ # dummy objective since this is a square problem
+ m.obj = pyo.Objective(expr=(m.egb.inputs['UA'] - m.UA_spec)**2)
+
+ # create the ipopt solver
+ solver = pyo.SolverFactory('cyipopt')
+
+ data = {'run': [], 'Th_in': [], 'Tc_in': [], 'Th_out':[],
+ 'Tc_out': []}
+ for i in range(N):
+ # draw a random value for the parameters
+ UA = float(rnd.normal(UA_mean, UA_std))
+ # draw a noisy value for the test input conditions
+ Th_in = 100 + float(rnd.normal(0, 2))
+ Tc_in = 30 + float(rnd.normal(0, 2))
+ m.UA_spec.value = UA
+ m.Th_in_spec.value = Th_in
+ m.Tc_in_spec.value = Tc_in
+
+ status = solver.solve(m, tee=False)
+ data['run'].append(i)
+ data['Th_in'].append(pyo.value(m.egb.inputs['Th_in']))
+ data['Tc_in'].append(pyo.value(m.egb.inputs['Tc_in']))
+ data['Th_out'].append(pyo.value(m.egb.inputs['Th_out']))
+ data['Tc_out'].append(pyo.value(m.egb.inputs['Tc_out']))
+
+ return pd.DataFrame(data)
+
+if __name__ == '__main__':
+ #df = generate_data(50, 200, 5)
+ df = generate_data_external(50, 200, 5)
+ df.to_csv('data.csv', index=False)
+
+
diff --git a/pyomo/contrib/pynumero/examples/external_grey_box/param_est/models.py b/pyomo/contrib/pynumero/examples/external_grey_box/param_est/models.py
new file mode 100644
index 00000000000..84b308ce10e
--- /dev/null
+++ b/pyomo/contrib/pynumero/examples/external_grey_box/param_est/models.py
@@ -0,0 +1,250 @@
+import pyomo.environ as pyo
+from pyomo.contrib.pynumero.interfaces.external_grey_box import ExternalGreyBoxModel, ExternalGreyBoxBlock
+import scipy.sparse as spa
+import numpy as np
+import math
+
+
+"""
+This module builds a simple model for use in parameter
+estimation. The module contains both the pyomo only version
+of the model and the external grey box version of the model
+
+The models are setup for nonlinear least-squares to estimate
+the value of the overall heat transfer coefficient UA
+
+# The model is as follows:
+# dT1 = Th_in - Tc_out
+# dT2 = Th_out - Tc_in
+# lmtd = (dT2 - dT1)/ln(dT2/dT1)
+# Q = UA*lmtd
+# Q = Fh * Cp_h * (Th_in - Th_out))
+# Q = -Fc * Cp_c * (Tc_in - Tc_out))
+
+and written as the following for the external model
+# Th_in - Tc_out - dT1 = 0
+# Th_out - Tc_in - dT2 = 0
+# lmtd*ln(dT2/dT1) - (dT2 - dT1) = 0
+# UA*lmtd - Q = 0
+# Fh * Cp_h * (Th_in - Th_out)) - Q = 0
+# -Fc * Cp_c * (Tc_in - Tc_out)) = 0
+
+"""
+
+def build_single_point_model_pyomo_only(m):
+ # fixed parameters
+ m.Cp_h = 2131 # heat cap hot
+ m.Cp_c = 4178 # heat cap cold
+ m.Fh = 0.1 # flow hot
+ m.Fc = 0.2 # flow cold
+
+
+ # model inputs
+ m.Th_in = pyo.Var(initialize=100, bounds=(10,None))
+ m.Th_out = pyo.Var(initialize=50, bounds=(10,None))
+ m.Tc_in = pyo.Var(initialize=30, bounds=(10,None))
+ m.Tc_out = pyo.Var(initialize=50, bounds=(10,None))
+ m.UA = pyo.Var(initialize=100)
+ m.Q = pyo.Var(initialize=10000, bounds=(0,None))
+ m.lmtd = pyo.Var(initialize=20, bounds=(0,None))
+ m.dt1 = pyo.Var(initialize=20, bounds=(0,None))
+ m.dt2 = pyo.Var(initialize=20, bounds=(0,None))
+
+ # model constraints
+ m.dt1_con = pyo.Constraint(expr = m.dt1 == m.Th_in - m.Tc_out)
+ m.dt2_con = pyo.Constraint(expr = m.dt2 == m.Th_out - m.Tc_in)
+ m.lmtd_con = pyo.Constraint(expr = m.lmtd * pyo.log(m.dt2/m.dt1) == (m.dt2 - m.dt1))
+
+ m.ua_con = pyo.Constraint(expr = m.Q == m.UA * m.lmtd)
+ m.Qh_con = pyo.Constraint(expr = m.Q == m.Fh*m.Cp_h*(m.Th_in - m.Th_out))
+ m.Qc_con = pyo.Constraint(expr = m.Q == m.Fc*m.Cp_c*(m.Tc_out - m.Tc_in))
+
+def build_single_point_model_external(m):
+ ex_model = UAModelExternal()
+ m.egb = ExternalGreyBoxBlock()
+ m.egb.set_external_model(ex_model)
+
+class UAModelExternal(ExternalGreyBoxModel):
+ def __init__(self):
+ super(UAModelExternal, self).__init__()
+ self._input_names = ['Th_in', 'Th_out', 'Tc_in', 'Tc_out', 'UA', 'Q',
+ 'lmtd', 'dT1', 'dT2']
+ self._input_values = np.zeros(self.n_inputs(), dtype=np.float64)
+ self._eq_constraint_names = \
+ ['dT1_con', 'dT2_con', 'lmtd_con', 'QUA_con', 'Qhot_con', 'Qcold_con']
+ self._eq_constraint_multipliers = np.zeros(self.n_equality_constraints(), dtype=np.float64)
+
+ # parameters
+ self._Cp_h = 2131
+ self._Cp_c = 4178
+ self._Fh = 0.1
+ self._Fc = 0.2
+
+ def n_inputs(self):
+ return len(self.input_names())
+
+ def n_equality_constraints(self):
+ return len(self.equality_constraint_names())
+
+ def n_outputs(self):
+ return 0
+
+ def input_names(self):
+ return self._input_names
+
+ def equality_constraint_names(self):
+ return self._eq_constraint_names
+
+ def output_names(self):
+ return []
+
+ def finalize_block_construction(self, pyomo_block):
+ pyomo_block.inputs['Th_in'].setlb(10)
+ pyomo_block.inputs['Th_in'].set_value(100)
+ pyomo_block.inputs['Th_out'].setlb(10)
+ pyomo_block.inputs['Th_out'].set_value(50)
+
+ pyomo_block.inputs['Tc_in'].setlb(10)
+ pyomo_block.inputs['Tc_in'].set_value(30)
+ pyomo_block.inputs['Tc_out'].setlb(10)
+ pyomo_block.inputs['Tc_out'].set_value(50)
+
+ pyomo_block.inputs['UA'].set_value(100)
+
+ pyomo_block.inputs['Q'].setlb(0)
+ pyomo_block.inputs['Q'].set_value(10000)
+
+ pyomo_block.inputs['lmtd'].setlb(0)
+ pyomo_block.inputs['lmtd'].set_value(20)
+
+ pyomo_block.inputs['dT1'].setlb(0)
+ pyomo_block.inputs['dT1'].set_value(20)
+ pyomo_block.inputs['dT2'].setlb(0)
+ pyomo_block.inputs['dT2'].set_value(20)
+
+ def set_input_values(self, input_values):
+ assert len(input_values) == 9
+ np.copyto(self._input_values, input_values)
+
+ def set_equality_constraint_multipliers(self, eq_con_multiplier_values):
+ assert len(eq_con_multiplier_values) == 6
+ np.copyto(self._eq_constraint_multipliers, eq_con_multiplier_values)
+
+ def evaluate_equality_constraints(self):
+ Th_in = self._input_values[0]
+ Th_out = self._input_values[1]
+ Tc_in = self._input_values[2]
+ Tc_out = self._input_values[3]
+ UA = self._input_values[4]
+ Q = self._input_values[5]
+ lmtd = self._input_values[6]
+ dT1 = self._input_values[7]
+ dT2 = self._input_values[8]
+
+ resid = np.zeros(self.n_equality_constraints())
+ resid[0] = Th_in - Tc_out - dT1
+ resid[1] = Th_out - Tc_in - dT2
+ resid[2] = lmtd * math.log(dT2/dT1) - (dT2-dT1)
+ resid[3] = UA * lmtd - Q
+ resid[4] = self._Fh * self._Cp_h * (Th_in - Th_out) - Q
+ resid[5] = -self._Fc * self._Cp_c * (Tc_in - Tc_out) - Q
+
+ return resid
+
+ def evaluate_jacobian_equality_constraints(self):
+ Th_in = self._input_values[0]
+ Th_out = self._input_values[1]
+ Tc_in = self._input_values[2]
+ Tc_out = self._input_values[3]
+ UA = self._input_values[4]
+ Q = self._input_values[5]
+ lmtd = self._input_values[6]
+ dT1 = self._input_values[7]
+ dT2 = self._input_values[8]
+
+ row = np.zeros(18, dtype=np.int64)
+ col = np.zeros(18, dtype=np.int64)
+ data = np.zeros(18, dtype=np.float64)
+
+ idx = 0
+ row[idx], col[idx], data[idx] = (0, 0, 1.0)
+ idx += 1
+ row[idx], col[idx], data[idx] = (0, 3, -1.0)
+ idx += 1
+ row[idx], col[idx], data[idx] = (0, 7, -1.0)
+ idx += 1
+ row[idx], col[idx], data[idx] = (1, 1, 1.0)
+ idx += 1
+ row[idx], col[idx], data[idx] = (1, 2, -1.0)
+ idx += 1
+ row[idx], col[idx], data[idx] = (1, 8, -1.0)
+ idx += 1
+ row[idx], col[idx], data[idx] = (2, 6, math.log(dT2/dT1))
+ idx += 1
+ row[idx], col[idx], data[idx] = (2, 7, -lmtd/dT1 + 1)
+ idx += 1
+ row[idx], col[idx], data[idx] = (2, 8, lmtd/dT2 - 1)
+ idx += 1
+ row[idx], col[idx], data[idx] = (3, 4, lmtd)
+ idx += 1
+ row[idx], col[idx], data[idx] = (3, 5, -1.0)
+ idx += 1
+ row[idx], col[idx], data[idx] = (3, 6, UA)
+ idx += 1
+ row[idx], col[idx], data[idx] = (4, 0, self._Fh*self._Cp_h)
+ idx += 1
+ row[idx], col[idx], data[idx] = (4, 1, -self._Fh*self._Cp_h)
+ idx += 1
+ row[idx], col[idx], data[idx] = (4, 5, -1)
+ idx += 1
+ row[idx], col[idx], data[idx] = (5, 2, -self._Fc*self._Cp_c)
+ idx += 1
+ row[idx], col[idx], data[idx] = (5, 3, self._Fc*self._Cp_c)
+ idx += 1
+ row[idx], col[idx], data[idx] = (5, 5, -1.0)
+ idx += 1
+ assert idx == 18
+
+ return spa.coo_matrix( (data, (row, col)), shape=(6,9) )
+
+ def evaluate_hessian_equality_constraints(self):
+ Th_in = self._input_values[0]
+ Th_out = self._input_values[1]
+ Tc_in = self._input_values[2]
+ Tc_out = self._input_values[3]
+ UA = self._input_values[4]
+ Q = self._input_values[5]
+ lmtd = self._input_values[6]
+ dT1 = self._input_values[7]
+ dT2 = self._input_values[8]
+
+ row = np.zeros(5, dtype=np.int64)
+ col = np.zeros(5, dtype=np.int64)
+ data = np.zeros(5, dtype=np.float64)
+ lam = self._eq_constraint_multipliers
+
+ idx = 0
+ # lmtd_con
+ row[idx], col[idx], data[idx] = (7, 6, lam[2]*(-1)/dT1)
+ idx += 1
+ row[idx], col[idx], data[idx] = (7, 7, lam[2]*lmtd/(dT1**2))
+ idx += 1
+ row[idx], col[idx], data[idx] = (8, 6, lam[2]*1/dT2)
+ idx += 1
+ row[idx], col[idx], data[idx] = (8, 8, lam[2]*(-lmtd)/(dT2**2))
+ idx += 1
+
+ # QUA_con
+ row[idx], col[idx], data[idx] = (6, 4, lam[3]*(1))
+ idx += 1
+ assert idx == 5
+
+ return spa.coo_matrix( (data, (row, col)), shape=(9,9) )
+
+ #
+ # Implement the following methods to provide support for
+ # Hessian computations: see documentation in class docstring
+ #
+ # def evaluate_hessian_equality_constraints(self):
+ # def evaluate_hessian_outputs(self):
+ #
diff --git a/pyomo/contrib/pynumero/examples/external_grey_box/param_est/perform_estimation.py b/pyomo/contrib/pynumero/examples/external_grey_box/param_est/perform_estimation.py
new file mode 100644
index 00000000000..5307611a56b
--- /dev/null
+++ b/pyomo/contrib/pynumero/examples/external_grey_box/param_est/perform_estimation.py
@@ -0,0 +1,105 @@
+import sys
+import pyomo.environ as pyo
+import numpy.random as rnd
+import pandas as pd
+import pyomo.contrib.pynumero.examples.external_grey_box.param_est.models as po
+
+def perform_estimation_pyomo_only(data_fname, solver_trace=False):
+ # read in our data file - careful with formats
+ df = pd.read_csv(data_fname)
+ npts = len(df)
+
+ # create our parameter estimation formulation
+ m = pyo.ConcreteModel()
+ m.df = df
+ m.PTS = pyo.Set(initialize=range(npts), ordered=True)
+
+ # create a separate Pyomo block for each data point
+ def _model_i(b, i):
+ po.build_single_point_model_pyomo_only(b)
+ m.model_i = pyo.Block(m.PTS, rule=_model_i)
+
+ # we want the parameters to be the same across all the data pts
+ m.UA = pyo.Var()
+ def _eq_parameter(m, i):
+ return m.UA == m.model_i[i].UA
+ m.eq_parameter = pyo.Constraint(m.PTS, rule=_eq_parameter)
+
+ # define the least squares objective function
+ def _least_squares(m):
+ obj = 0
+ for i in m.PTS:
+ row = m.df.iloc[i]
+
+ # error in inputs measured
+ obj += (m.model_i[i].Th_in - float(row['Th_in']))**2
+ obj += (m.model_i[i].Tc_in - float(row['Tc_in']))**2
+
+ # error in outputs
+ obj += (m.model_i[i].Th_out - float(row['Th_out']))**2
+ obj += (m.model_i[i].Tc_out - float(row['Tc_out']))**2
+ return obj
+ m.obj = pyo.Objective(rule=_least_squares)
+
+ solver = pyo.SolverFactory('ipopt')
+ status = solver.solve(m, tee=solver_trace)
+
+ return m
+
+def perform_estimation_external(data_fname, solver_trace=False):
+ # read in our data file - careful with formats
+ df = pd.read_csv(data_fname)
+ npts = len(df)
+
+ # create our parameter estimation formulation
+ m = pyo.ConcreteModel()
+ m.df = df
+ m.PTS = pyo.Set(initialize=range(npts), ordered=True)
+
+ # create a separate Pyomo block for each data point
+ def _model_i(b, i):
+ po.build_single_point_model_external(b)
+ m.model_i = pyo.Block(m.PTS, rule=_model_i)
+
+ # we want the parameters to be the same across all the data pts
+ # create a global parameter and provide equality constraints to
+ # the parameters in each model instance
+ m.UA = pyo.Var()
+ def _eq_parameter(m, i):
+ return m.UA == m.model_i[i].egb.inputs['UA']
+ m.eq_parameter = pyo.Constraint(m.PTS, rule=_eq_parameter)
+
+ # define the least squares objective function
+ def _least_squares(m):
+ obj = 0
+ for i in m.PTS:
+ row = m.df.iloc[i]
+
+ # error in inputs measured
+ obj += (m.model_i[i].egb.inputs['Th_in'] - float(row['Th_in']))**2
+ obj += (m.model_i[i].egb.inputs['Tc_in'] - float(row['Tc_in']))**2
+
+ # error in outputs
+ obj += (m.model_i[i].egb.inputs['Th_out'] - float(row['Th_out']))**2
+ obj += (m.model_i[i].egb.inputs['Tc_out'] - float(row['Tc_out']))**2
+ return obj
+ m.obj = pyo.Objective(rule=_least_squares)
+
+ solver = pyo.SolverFactory('cyipopt')
+ status, nlp = solver.solve(m, tee=solver_trace, return_nlp=True)
+
+ if solver_trace:
+ # use the NLP object to access additional information if so desired
+ # for example:
+ names = nlp.primals_names()
+ values = nlp.evaluate_grad_objective()
+ print({names[i]:values[i] for i in range(len(names))})
+
+ return m
+
+if __name__ == '__main__':
+ m = perform_estimation_pyomo_only(sys.argv[1])
+ print(pyo.value(m.UA))
+ m = perform_estimation_external(sys.argv[1])
+ print(pyo.value(m.UA))
+
diff --git a/pyomo/contrib/pynumero/examples/external_grey_box/param_est/smalldata.csv b/pyomo/contrib/pynumero/examples/external_grey_box/param_est/smalldata.csv
new file mode 100644
index 00000000000..056d7196ee6
--- /dev/null
+++ b/pyomo/contrib/pynumero/examples/external_grey_box/param_est/smalldata.csv
@@ -0,0 +1,6 @@
+run,Th_in,Tc_in,Th_out,Tc_out
+0,99.72347139765763,31.295377076201383,60.02109268504368,41.42052894750109
+1,99.53169325055333,29.53172608610164,58.32128603943537,40.04146492847746
+2,101.53486945830582,29.061051228130097,58.834683568096295,39.95072285714356
+3,99.07316461437507,29.068540492859487,58.42915369393251,39.433833368812465
+4,96.1734395106844,26.550164334973935,55.926888237342524,36.81409453644492
diff --git a/pyomo/contrib/pynumero/examples/structured/tests/__init__.py b/pyomo/contrib/pynumero/examples/structured/tests/__init__.py
new file mode 100644
index 00000000000..e69de29bb2d
diff --git a/pyomo/contrib/pynumero/interfaces/ampl_nlp.py b/pyomo/contrib/pynumero/interfaces/ampl_nlp.py
index 5aafaedccd7..0eb0c6820cf 100644
--- a/pyomo/contrib/pynumero/interfaces/ampl_nlp.py
+++ b/pyomo/contrib/pynumero/interfaces/ampl_nlp.py
@@ -21,6 +21,7 @@
from scipy.sparse import coo_matrix
import os
import numpy as np
+from pyomo.common.deprecation import deprecated
from pyomo.contrib.pynumero.interfaces.nlp import ExtendedNLP
__all__ = ['AslNLP', 'AmplNLP']
@@ -603,8 +604,12 @@ def evaluate_hessian_lag(self, out=None):
self._asl.eval_hes_lag(self._primals, self._duals_full,
data, obj_factor=self._obj_factor)
values = np.concatenate((data, data[self._lower_hess_mask]))
- #TODO: find out why this is done
- values += 1e-16 # this is to deal with scipy bug temporarily
+ # note: this was done to ensure that scipy did not change
+ # the structure of a sparse matrix if one of the nonzeros
+ # happened to be zero.
+ # CDL: I am removing this for now to see if it is necessary
+ # values += 1e-16 # this is to deal with scipy bug temporarily
+ # CDL
np.copyto(self._cached_hessian_lag.data, values)
self._hessian_lag_is_cached = True
@@ -682,11 +687,15 @@ def __init__(self, nl_file, row_filename=None, col_filename=None):
self._name_to_con_eq_idx = {name:idx for idx,name in enumerate(self._con_eq_idx_to_name)}
self._name_to_con_ineq_idx = {name:idx for idx,name in enumerate(self._con_ineq_idx_to_name)}
-
- def variable_names(self):
+ def primals_names(self):
"""Returns ordered list with names of primal variables"""
return list(self._vidx_to_name)
+ @deprecated(msg='This method has been replaced with primals_names', version='6.0.0.dev0', remove_in='6.0')
+ def variable_names(self):
+ """Returns ordered list with names of primal variables"""
+ return self.primals_names()
+
def constraint_names(self):
"""Returns an ordered list with the names of all the constraints
(corresponding to evaluate_constraints)"""
@@ -702,14 +711,18 @@ def ineq_constraint_names(self):
(corresponding to evaluate_ineq_constraints)"""
return list(self._con_ineq_idx_to_name)
+ @deprecated(msg='This method has been replaced with primal_idx', version='6.0.0.dev0', remove_in='6.0')
def variable_idx(self, var_name):
+ return self.primal_idx(var_name)
+
+ def primal_idx(self, var_name):
"""
- Returns the index of the variable named var_name
+ Returns the index of the primal variable named var_name
Parameters
----------
var_name: str
- Name of variable
+ Name of primal variable
Returns
-------
diff --git a/pyomo/contrib/pynumero/interfaces/external_grey_box.py b/pyomo/contrib/pynumero/interfaces/external_grey_box.py
index 22a177c830c..7717fe78400 100644
--- a/pyomo/contrib/pynumero/interfaces/external_grey_box.py
+++ b/pyomo/contrib/pynumero/interfaces/external_grey_box.py
@@ -14,7 +14,7 @@
from pyomo.common.log import is_debug_set
from pyomo.common.timing import ConstructionTimer
-from pyomo.core.base import Var, Constraint, value
+from pyomo.core.base import Var, Set, Constraint, value
from pyomo.core.base.block import _BlockData, Block, declare_custom_block
from pyomo.core.base.util import Initializer
@@ -305,13 +305,14 @@ def set_external_model(self, external_grey_box_model):
raise ValueError(
'No input_names specified for external_grey_box_model.'
' Must specify at least one input.')
- self.inputs = Var(self._input_names)
+ self._input_names_set = Set(initialize=self._input_names, ordered=True)
+ self.inputs = Var(self._input_names_set)
self._equality_constraint_names = ex_model.equality_constraint_names()
self._output_names = ex_model.output_names()
- # Note, this works even if output_names is an empty list
- self.outputs = Var(self._output_names)
+ self._output_names_set = Set(initialize=self._output_names, ordered=True)
+ self.outputs = Var(self._output_names_set)
# call the callback so the model can set initialization, bounds, etc.
external_grey_box_model.finalize_block_construction(self)
diff --git a/pyomo/contrib/pynumero/interfaces/nlp.py b/pyomo/contrib/pynumero/interfaces/nlp.py
index 2c5ea5d8097..fd2e6bd1246 100644
--- a/pyomo/contrib/pynumero/interfaces/nlp.py
+++ b/pyomo/contrib/pynumero/interfaces/nlp.py
@@ -66,12 +66,24 @@ def n_primals(self):
"""
pass
+ def primals_names(self):
+ """
+ Override this to provide string names for the primal variables
+ """
+ return [str(i) for i in range(self.n_primals())]
+
@abc.abstractmethod
def n_constraints(self):
"""
Returns number of constraints
"""
pass
+
+ def constraint_names(self):
+ """
+ Override this to provide string names for the constraints
+ """
+ return [str(i) for i in range(self.n_constraints())]
@abc.abstractmethod
def nnz_jacobian(self):
diff --git a/pyomo/contrib/pynumero/interfaces/nlp_projections.py b/pyomo/contrib/pynumero/interfaces/nlp_projections.py
new file mode 100644
index 00000000000..a91b976965a
--- /dev/null
+++ b/pyomo/contrib/pynumero/interfaces/nlp_projections.py
@@ -0,0 +1,304 @@
+from pyomo.contrib.pynumero.interfaces.nlp import NLP
+import numpy as np
+import scipy.sparse as sp
+
+class _BaseNLPDelegator(NLP):
+ def __init__(self, original_nlp):
+ """
+ This is a base class to make it easier to implement NLP
+ classes that wrap other NLP instances. This class
+ simply reproduces the NLP interface by passing the call
+ onto the original_nlp passed in the constructor. This allows
+ new wrapper classes to only implement the methods that change,
+ allowing the others to pass through.
+
+ Parameters
+ ----------
+ original_nlp : NLP-like
+ The original NLP object that we want to wrap
+ """
+ super(NLP, self).__init__()
+ self._original_nlp = original_nlp
+
+ def n_primals(self):
+ return self._original_nlp.n_primals()
+
+ def primals_names(self):
+ return self._original_nlp.primals_names()
+
+ def n_constraints(self):
+ return self._original_nlp.n_constraints()
+
+ def constraint_names(self):
+ return self._original_nlp.constraint_names()
+
+ def nnz_jacobian(self):
+ return self._original_nlp.nnz_jacobian()
+
+ def nnz_hessian_lag(self):
+ return self._original_nlp.nnz_hessian_lag()
+
+ def primals_lb(self):
+ return self._original_nlp.primals_lb()
+
+ def primals_ub(self):
+ return self._original_nlp.primals_ub()
+
+ def constraints_lb(self):
+ return self._original_nlp.constraints_lb()
+
+ def constraints_ub(self):
+ return self._original_nlp.constraints_ub()
+
+ def init_primals(self):
+ return self._original_nlp.init_primals()
+
+ def init_duals(self):
+ return self._original_nlp.init_duals()
+
+ def create_new_vector(self, vector_type):
+ return self._original_nlp.create_new_vector(vector_type)
+
+ def set_primals(self, primals):
+ self._original_nlp.set_primals(primals)
+
+ def get_primals(self):
+ return self._original_nlp.get_primals()
+
+ def set_duals(self, duals):
+ self._original_nlp.set_duals(duals)
+
+ def get_duals(self):
+ return self._original_nlp.get_duals()
+
+ def set_obj_factor(self, obj_factor):
+ self._original_nlp.set_obj_factor(obj_factor)
+
+ def get_obj_factor(self):
+ return self._original_nlp.get_obj_factor()
+
+ def get_obj_scaling(self):
+ return self._original_nlp.get_obj_scaling()
+
+ def get_primals_scaling(self):
+ return self._original_nlp.get_primals_scaling()
+
+ def get_constraints_scaling(self):
+ return self._original_nlp.get_constraints_scaling()
+
+ def evaluate_objective(self):
+ return self._original_nlp.evaluate_objective()
+
+ def evaluate_grad_objective(self, out=None):
+ return self._original_nlp.evaluate_grad_objective(out)
+
+ def evaluate_constraints(self, out=None):
+ return self._original_nlp.evaluate_constraints(out)
+
+ def evaluate_jacobian(self, out=None):
+ return self._original_nlp.evaluate_jacobian(out)
+
+ def evaluate_hessian_lag(self, out=None):
+ return self._original_nlp.evaluate_hessian_lag(out)
+
+ def report_solver_status(self, status_code, status_message):
+ self._original_nlp.report_solver_status(status_code, status_message)
+
+
+class RenamedNLP(_BaseNLPDelegator):
+ def __init__(self, original_nlp, primals_name_map):
+ """
+ This class takes an NLP that and allows one to rename the primals.
+ It is a thin wrapper around the original NLP.
+
+ Parameters
+ ----------
+ original_nlp : NLP-like
+ The original NLP object that implements the NLP interface
+
+ primals_name_map : dict of str --> str
+ This is a dictionary that maps from the names
+ in the original NLP class to the desired names
+ for this instance.
+ """
+ super(RenamedNLP, self).__init__(original_nlp)
+ self._primals_name_map = primals_name_map
+ self._new_primals_names = None
+ # Todo: maybe do this on first call instead of __init__?
+ self._generate_new_names()
+
+ def _generate_new_names(self):
+ if self._new_primals_names is None:
+ assert self._original_nlp.n_primals() == len(self._primals_name_map)
+ self._new_primals_names = \
+ [self._primals_name_map[nm] for nm in self._original_nlp.primals_names()]
+
+ def primals_names(self):
+ return self._new_primals_names
+
+
+class ProjectedNLP(_BaseNLPDelegator):
+ def __init__(self, original_nlp, primals_ordering):
+ """
+ This class takes an NLP that depends on a set of primals (original
+ space) and converts it to an NLP that depends on a reordered set of
+ primals (projected space).
+
+ This will impact all the returned items associated with primal
+ variables. E.g., the gradient will be in the new primals ordering
+ instead of the original primals ordering.
+
+ Note also that this can include additional primal variables not
+ in the original NLP, or can exclude primal variables that were
+ in the original NLP.
+
+ Parameters
+ ----------
+ original_nlp : NLP-like
+ The original NLP object that implements the NLP interface
+
+ primals_ordering: list
+ List of strings indicating the desired primal variable
+ ordering for this NLP. The list can contain new variables
+ that are not in the original NLP, thereby expanding the
+ space of the primal variables.
+ """
+ super(ProjectedNLP, self).__init__(original_nlp)
+ self._primals_ordering = list(primals_ordering)
+ self._original_idxs = None
+ self._projected_idxs = None
+ self._generate_maps()
+ self._projected_primals = self.init_primals()
+ self._jacobian_nz_mask = None
+ self._hessian_nz_mask = None
+ self._nnz_jacobian = None
+ self._nnz_hessian_lag = None
+
+ def _generate_maps(self):
+ if self._original_idxs is None or self._projected_idxs is None:
+ primals_ordering_dict = {k:i for i,k in enumerate(self._primals_ordering)}
+ original_names = self._original_nlp.primals_names()
+ original_idxs = list()
+ projected_idxs = list()
+ for i,nm in enumerate(original_names):
+ if nm in primals_ordering_dict:
+ # we need the reordering for this element
+ original_idxs.append(i)
+ projected_idxs.append(primals_ordering_dict[nm])
+ self._original_idxs = np.asarray(original_idxs)
+ self._projected_idxs = np.asarray(projected_idxs)
+ self._original_to_projected = np.nan*np.zeros(self._original_nlp.n_primals())
+ self._original_to_projected[self._original_idxs] = self._projected_idxs
+
+ def n_primals(self):
+ return len(self._primals_ordering)
+
+ def primals_names(self):
+ return list(self._primals_ordering)
+
+ def nnz_jacobian(self):
+ if self._nnz_jacobian is None:
+ J = self.evaluate_jacobian()
+ self._nnz_jacobian = len(J.data)
+ return self._nnz_jacobian
+
+ def nnz_hessian_lag(self):
+ if self._nnz_hessian_lag is None:
+ H = self.evaluate_hessian_lag()
+ self._nnz_hessian_lag = len(H.data)
+ return self._nnz_hessian_lag
+
+ def _project_primals(self, default, original_primals):
+ projected_x = default*np.ones(self.n_primals(), dtype=np.float64)
+ projected_x[self._projected_idxs] = original_primals[self._original_idxs]
+ return projected_x
+
+ def primals_lb(self):
+ return self._project_primals(-np.inf, self._original_nlp.primals_lb())
+
+ def primals_ub(self):
+ return self._project_primals(np.inf, self._original_nlp.primals_ub())
+
+ def init_primals(self):
+ # Todo: think about what to do here if an entry is not defined
+ # for now, we default to NaN, but there may be a better way
+ # (e.g., taking a new initial value in the constructor?)
+ return self._project_primals(np.nan, self._original_nlp.init_primals())
+
+ def create_new_vector(self, vector_type):
+ if vector_type == 'primals':
+ return np.zeros(self.n_primals(), dtype=np.float64)
+ return self._original_nlp.create_new_vector(vector_type)
+
+ def set_primals(self, primals):
+ # here, we keep a local copy of the projected primals so
+ # we can give back these values in get_primals. This might
+ # not be the best idea since we can't really support this
+ # same strategy for other methods (e.g., init_primals) where
+ # we now use NaNs to fill in any "missing" entries.
+ np.copyto(self._projected_primals, primals)
+ original_primals = self._original_nlp.get_primals()
+ original_primals[self._original_idxs] = primals[self._projected_idxs]
+ self._original_nlp.set_primals(original_primals)
+
+ def get_primals(self):
+ original_primals = self._original_nlp.get_primals()
+ self._projected_primals[self._projected_idxs] = original_primals[self._original_idxs]
+ return self._projected_primals
+
+ def get_primals_scaling(self):
+ return self._project_primals(np.nan, self._original_nlp.get_primals_scaling())
+
+ def evaluate_grad_objective(self, out=None):
+ original_grad_objective = self._original_nlp.evaluate_grad_objective()
+ projected_objective = self._project_primals(0.0, original_grad_objective)
+ if out is None:
+ return projected_objective
+ np.copyto(out, projected_objective)
+ return out
+
+ def evaluate_jacobian(self, out=None):
+ original_jacobian = self._original_nlp.evaluate_jacobian()
+ if out is not None:
+ np.copyto(out.data, original_jacobian.data[self._jacobian_nz_mask])
+ return out
+
+ row = original_jacobian.row
+ col = original_jacobian.col
+ data = original_jacobian.data
+
+ if self._jacobian_nz_mask is None:
+ # need to remap the irow, jcol to the new space and change the size
+ self._jacobian_nz_mask = np.isin(col, self._original_idxs)
+
+ new_col = col[self._jacobian_nz_mask]
+ new_col = self._original_to_projected[new_col]
+ new_row = row[self._jacobian_nz_mask]
+ new_data = data[self._jacobian_nz_mask]
+
+ return sp.coo_matrix((new_data, (new_row,new_col)), shape=(self.n_constraints(), self.n_primals()))
+
+ def evaluate_hessian_lag(self, out=None):
+ original_hessian = self._original_nlp.evaluate_hessian_lag()
+ if out is not None:
+ np.copyto(out.data, original_hessian.data[self._hessian_nz_mask])
+ return out
+
+ row = original_hessian.row
+ col = original_hessian.col
+ data = original_hessian.data
+
+ if self._hessian_nz_mask is None:
+ # need to remap the irow, jcol to the new space and change the size
+ self._hessian_nz_mask = np.isin(col, self._original_idxs) & np.isin(row, self._original_idxs)
+
+ new_col = col[self._hessian_nz_mask]
+ new_col = self._original_to_projected[new_col]
+ new_row = row[self._hessian_nz_mask]
+ new_row = self._original_to_projected[new_row]
+ new_data = data[self._hessian_nz_mask]
+
+ return sp.coo_matrix((new_data, (new_row,new_col)), shape=(self.n_primals(), self.n_primals()))
+
+ def report_solver_status(self, status_code, status_message):
+ raise NotImplementedError('Need to think about this...')
diff --git a/pyomo/contrib/pynumero/interfaces/pyomo_grey_box_nlp.py b/pyomo/contrib/pynumero/interfaces/pyomo_grey_box_nlp.py
new file mode 100644
index 00000000000..f067fd3e138
--- /dev/null
+++ b/pyomo/contrib/pynumero/interfaces/pyomo_grey_box_nlp.py
@@ -0,0 +1,770 @@
+# ___________________________________________________________________________
+#
+# Pyomo: Python Optimization Modeling Objects
+# Copyright 2017 National Technology and Engineering Solutions of Sandia, LLC
+# Under the terms of Contract DE-NA0003525 with National Technology and
+# Engineering Solutions of Sandia, LLC, the U.S. Government retains certain
+# rights in this software.
+# This software is distributed under the 3-clause BSD License.
+# ___________________________________________________________________________
+"""
+This module defines the classes that provide an NLP interface based on
+the Ampl Solver Library (ASL) implementation
+"""
+
+import os
+import numpy as np
+import logging
+
+from scipy.sparse import coo_matrix, identity
+from pyomo.common.deprecation import deprecated
+import pyomo.core.base as pyo
+from pyomo.common.collections import ComponentMap
+from pyomo.contrib.pynumero.sparse.block_matrix import BlockMatrix
+from pyomo.contrib.pynumero.sparse.block_vector import BlockVector
+from pyomo.contrib.pynumero.interfaces.nlp import NLP
+from pyomo.contrib.pynumero.interfaces.pyomo_nlp import PyomoNLP
+from pyomo.contrib.pynumero.interfaces.utils import make_lower_triangular_full, CondensedSparseSummation
+from pyomo.contrib.pynumero.interfaces.external_grey_box import ExternalGreyBoxBlock
+from pyomo.contrib.pynumero.interfaces.nlp_projections import ProjectedNLP
+
+# Todo: make some of the numpy arise not writable from __init__
+class PyomoNLPWithGreyBoxBlocks(NLP):
+ def __init__(self, pyomo_model):
+ super(PyomoNLPWithGreyBoxBlocks,self).__init__()
+
+ # get the list of all grey box blocks and build _ExternalGreyBoxAsNLP objects
+ greybox_components = []
+ # build a map from the names to the variable data objects
+ # this is done over *all* variables in active blocks, even
+ # if they are not included in this model
+ self._pyomo_model_var_names_to_datas = None
+ try:
+ # We support Pynumero's ExternalGreyBoxBlock modeling
+ # objects that are provided through ExternalGreyBoxBlock objects
+ # We reclassify these as Pyomo Block objects before building the
+ # PyomoNLP object to expose any variables on the block to
+ # the underlying Pyomo machinery
+ for greybox in pyomo_model.component_objects(
+ ExternalGreyBoxBlock, descend_into=True):
+ greybox.parent_block().reclassify_component_type(
+ greybox, pyo.Block)
+ greybox_components.append(greybox)
+
+ # store the pyomo model
+ self._pyomo_model = pyomo_model
+ # build a PyomoNLP object (will include the "pyomo"
+ # part of the model only)
+ self._pyomo_nlp = PyomoNLP(pyomo_model)
+ self._pyomo_model_var_names_to_datas = \
+ {v.getname(fully_qualified=True):v for v in pyomo_model.component_data_objects(ctype=pyo.Var, descend_into=True)}
+ self._pyomo_model_constraint_names_to_datas = \
+ {c.getname(fully_qualified=True):c for c in pyomo_model.component_data_objects(ctype=pyo.Constraint, descend_into=True)}
+
+ finally:
+ # Restore the ctypes of the ExternalGreyBoxBlock components
+ for greybox in greybox_components:
+ greybox.parent_block().reclassify_component_type(
+ greybox, ExternalGreyBoxBlock)
+
+ if self._pyomo_nlp.n_primals() == 0:
+ raise ValueError(
+ "No variables were found in the Pyomo part of the model."
+ " PyomoGreyBoxModel requires at least one variable"
+ " to be active in a Pyomo objective or constraint")
+
+ # build the list of NLP wrappers for the greybox objects
+ greybox_nlps = []
+ fixed_vars = []
+ for greybox in greybox_components:
+ # iterate through the data objects if component is indexed
+ for data in greybox.values():
+ if data.active:
+ # check that no variables are fixed
+ fixed_vars.extend(v for v in data.inputs.values() if v.fixed)
+ fixed_vars.extend(v for v in data.outputs.values() if v.fixed)
+ greybox_nlp = _ExternalGreyBoxAsNLP(greybox)
+ greybox_nlps.append(greybox_nlp)
+
+ if fixed_vars:
+ logging.getLogger(__name__).error('PyomoNLPWithGreyBoxBlocks found fixed variables for the'
+ ' inputs and/or outputs of an ExternalGreyBoxBlock. This'
+ ' is not currently supported. The fixed variables were:\n\t'
+ + '\n\t'.join(f.getname(fully_qualified=True) for f in fixed_vars)
+ )
+ raise NotImplementedError('PyomoNLPWithGreyBoxBlocks does not support fixed inputs or outputs')
+
+ # let's build up the union of all the primal variables names
+ primals_names = set(self._pyomo_nlp.primals_names())
+ for gbnlp in greybox_nlps:
+ primals_names.update(gbnlp.primals_names())
+
+ # sort the names for consistency run to run
+ self._n_primals = len(primals_names)
+ self._primals_names = primals_names = sorted(primals_names)
+ self._pyomo_model_var_datas = [self._pyomo_model_var_names_to_datas[nm] for nm in self._primals_names]
+
+ # get the names of all the constraints
+ self._constraint_names = list(self._pyomo_nlp.constraint_names())
+ self._constraint_datas = [self._pyomo_model_constraint_names_to_datas.get(nm) for nm in self._constraint_names]
+ for gbnlp in greybox_nlps:
+ self._constraint_names.extend(gbnlp.constraint_names())
+ self._constraint_datas.extend([(gbnlp._block, nm) for nm in gbnlp.constraint_names()])
+ self._n_constraints = len(self._constraint_names)
+
+ self._has_hessian_support = True
+ for nlp in greybox_nlps:
+ if not nlp.has_hessian_support():
+ self._has_hessian_support = False
+
+ # wrap all the nlp objects with projected nlp objects
+ self._pyomo_nlp = ProjectedNLP(self._pyomo_nlp, primals_names)
+ for i,gbnlp in enumerate(greybox_nlps):
+ greybox_nlps[i] = ProjectedNLP(greybox_nlps[i], primals_names)
+
+ # build a list of all the nlps in order
+ self._nlps = nlps = [self._pyomo_nlp]
+ nlps.extend(greybox_nlps)
+
+ # build the primal and dual inits and lb, ub vectors
+ self._init_primals = self._pyomo_nlp.init_primals()
+ self._primals_lb = self._pyomo_nlp.primals_lb()
+ self._primals_ub = self._pyomo_nlp.primals_ub()
+ for gbnlp in greybox_nlps:
+ local = gbnlp.init_primals()
+ mask = ~np.isnan(local)
+ self._init_primals[mask] = local[mask]
+
+ local = gbnlp.primals_lb()
+ mask = ~np.isnan(local)
+ self._primals_lb[mask] = np.maximum(self._primals_lb[mask], local[mask])
+
+ local = gbnlp.primals_ub()
+ mask = ~np.isnan(local)
+ self._primals_ub[mask] = np.minimum(self._primals_ub[mask], local[mask])
+
+ # all the nan's should be gone (every primal should be initialized)
+ if np.any(np.isnan(self._init_primals)) \
+ or np.any(np.isnan(self._primals_lb)) \
+ or np.any(np.isnan(self._primals_ub)):
+ raise ValueError('NaN values found in initialization of primals or'
+ ' primals_lb or primals_ub in _PyomoNLPWithGreyBoxBlocks.')
+
+ self._init_duals = BlockVector(len(nlps))
+ self._dual_values_blockvector = BlockVector(len(nlps))
+ self._constraints_lb = BlockVector(len(nlps))
+ self._constraints_ub = BlockVector(len(nlps))
+ for i,nlp in enumerate(nlps):
+ self._init_duals.set_block(i, nlp.init_duals())
+ self._constraints_lb.set_block(i, nlp.constraints_lb())
+ self._constraints_ub.set_block(i, nlp.constraints_ub())
+ self._dual_values_blockvector.set_block(i, np.nan*np.zeros(nlp.n_constraints()))
+ self._init_duals = self._init_duals.flatten()
+ self._constraints_lb = self._constraints_lb.flatten()
+ self._constraints_ub = self._constraints_ub.flatten()
+ # verify that there are no nans in the init_duals
+ if np.any(np.isnan(self._init_duals)) \
+ or np.any(np.isnan(self._constraints_lb)) \
+ or np.any(np.isnan(self._constraints_ub)):
+ raise ValueError('NaN values found in initialization of duals or'
+ ' constraints_lb or constraints_ub in'
+ ' _PyomoNLPWithGreyBoxBlocks.')
+
+ self._primal_values = np.nan*np.ones(self._n_primals)
+ # set the values of the primals and duals to make sure initial
+ # values get all the way through to the underlying models
+ self.set_primals(self._init_primals)
+ self.set_duals(self._init_duals)
+ assert not np.any(np.isnan(self._primal_values))
+ assert not np.any(np.isnan(self._dual_values_blockvector))
+
+ # if any of the problem is scaled (i.e., one or more of primals,
+ # constraints, or objective), then we want scaling factors for
+ # all of them (defaulted to 1)
+ need_scaling = False
+ # objective is owned by self._pyomo_nlp, not in any of the greybox models
+ self._obj_scaling = self._pyomo_nlp.get_obj_scaling()
+ if self._obj_scaling is None:
+ self._obj_scaling = 1.0
+ else:
+ need_scaling = True
+
+ self._primals_scaling = np.ones(self.n_primals())
+ scaling_suffix = pyomo_model.component('scaling_factor')
+ if scaling_suffix and scaling_suffix.ctype is pyo.Suffix:
+ need_scaling = True
+ for i,v in enumerate(self._pyomo_model_var_datas):
+ if v in scaling_suffix:
+ self._primals_scaling[i] = scaling_suffix[v]
+
+ self._constraints_scaling = BlockVector(len(nlps))
+ for i,nlp in enumerate(nlps):
+ local_constraints_scaling = nlp.get_constraints_scaling()
+ if local_constraints_scaling is None:
+ self._constraints_scaling.set_block(i, np.ones(nlp.n_constraints()))
+ else:
+ self._constraints_scaling.set_block(i, local_constraints_scaling)
+ need_scaling = True
+ if need_scaling:
+ self._constraints_scaling = self._constraints_scaling.flatten()
+ else:
+ self._obj_scaling = None
+ self._primals_scaling = None
+ self._constraints_scaling = None
+
+ # compute the jacobian and the hessian to get nnz
+ jac = self.evaluate_jacobian()
+ self._nnz_jacobian = len(jac.data)
+
+ self._sparse_hessian_summation = None
+ self._nnz_hessian_lag = None
+ if self._has_hessian_support:
+ hess = self.evaluate_hessian_lag()
+ self._nnz_hessian_lag = len(hess.data)
+
+ # overloaded from NLP
+ def n_primals(self):
+ return self._n_primals
+
+ # overloaded from NLP
+ def primals_names(self):
+ return self._primals_names
+
+ # overloaded from NLP
+ def n_constraints(self):
+ return self._n_constraints
+
+ # overloaded from NLP
+ def constraint_names(self):
+ return self._constraint_names
+
+ # overloaded from NLP
+ def nnz_jacobian(self):
+ return self._nnz_jacobian
+
+ # overloaded from NLP
+ def nnz_hessian_lag(self):
+ return self._nnz_hessian_lag
+
+ # overloaded from NLP
+ def primals_lb(self):
+ return self._primals_lb
+
+ # overloaded from NLP
+ def primals_ub(self):
+ return self._primals_ub
+
+ # overloaded from NLP
+ def constraints_lb(self):
+ return self._constraints_lb
+
+ # overloaded from NLP
+ def constraints_ub(self):
+ return self._constraints_ub
+
+ # overloaded from NLP
+ def init_primals(self):
+ return self._init_primals
+
+ # overloaded from NLP
+ def init_duals(self):
+ return self._init_duals
+
+ # overloaded from NLP / Extended NLP
+ def create_new_vector(self, vector_type):
+ if vector_type == 'primals':
+ return np.zeros(self.n_primals(), dtype=np.float64)
+ elif vector_type == 'constraints' or vector_type == 'duals':
+ return np.zeros(self.n_constraints(), dtype=np.float64)
+ else:
+ raise RuntimeError('Called create_new_vector with an unknown vector_type')
+
+ # overloaded from NLP
+ def set_primals(self, primals):
+ np.copyto(self._primal_values, primals)
+ for nlp in self._nlps:
+ nlp.set_primals(primals)
+
+ # overloaded from AslNLP
+ def get_primals(self):
+ return np.copy(self._primal_values)
+
+ # overloaded from NLP
+ def set_duals(self, duals):
+ self._dual_values_blockvector.copyfrom(duals)
+ for i,nlp in enumerate(self._nlps):
+ nlp.set_duals(self._dual_values_blockvector.get_block(i))
+
+ # overloaded from NLP
+ def get_duals(self):
+ return self._dual_values_blockvector.flatten()
+
+ # overloaded from NLP
+ def set_obj_factor(self, obj_factor):
+ # objective is owned by the pyomo model
+ self._pyomo_nlp.set_obj_factor(obj_factor)
+
+ # overloaded from NLP
+ def get_obj_factor(self):
+ # objective is owned by the pyomo model
+ return self._pyomo_nlp.get_obj_factor()
+
+ # overloaded from NLP
+ def get_obj_scaling(self):
+ return self._obj_scaling
+
+ # overloaded from NLP
+ def get_primals_scaling(self):
+ return self._primals_scaling
+
+ # overloaded from NLP
+ def get_constraints_scaling(self):
+ return self._constraints_scaling
+
+ # overloaded from NLP
+ def evaluate_objective(self):
+ # objective is owned by the pyomo model
+ return self._pyomo_nlp.evaluate_objective()
+
+ # overloaded from NLP
+ def evaluate_grad_objective(self, out=None):
+ return self._pyomo_nlp.evaluate_grad_objective(out=out)
+
+ # overloaded from NLP
+ def evaluate_constraints(self, out=None):
+ # todo: implement the "out" version more efficiently
+ ret = BlockVector(len(self._nlps))
+ for i,nlp in enumerate(self._nlps):
+ ret.set_block(i, nlp.evaluate_constraints())
+
+ if out is not None:
+ ret.copyto(out)
+ return out
+
+ return ret.flatten()
+
+ # overloaded from NLP
+ def evaluate_jacobian(self, out=None):
+ ret = BlockMatrix(len(self._nlps),1)
+ for i,nlp in enumerate(self._nlps):
+ ret.set_block(i, 0, nlp.evaluate_jacobian())
+ ret = ret.tocoo()
+
+ if out is not None:
+ assert np.array_equal(ret.row, out.row)
+ assert np.array_equal(ret.col, out.col)
+ np.copyto(out.data, ret.data)
+ return out
+ return ret
+
+ def evaluate_hessian_lag(self, out=None):
+ list_of_hessians = [nlp.evaluate_hessian_lag() for nlp in self._nlps]
+ if self._sparse_hessian_summation is None:
+ self._sparse_hessian_summation = CondensedSparseSummation(list_of_hessians)
+ ret = self._sparse_hessian_summation.sum(list_of_hessians)
+
+ if out is not None:
+ assert np.array_equal(ret.row, out.row)
+ assert np.array_equal(ret.col, out.col)
+ np.copyto(out.data, ret.data)
+ return out
+ return ret
+
+ def report_solver_status(self, status_code, status_message):
+ raise NotImplementedError('This is not yet implemented.')
+
+ def load_state_into_pyomo(self, bound_multipliers=None):
+ # load the values of the primals into the pyomo
+ primals = self.get_primals()
+ for value,vardata in zip(primals, self._pyomo_model_var_datas):
+ vardata.set_value(value)
+
+ # get the active suffixes
+ m = self._pyomo_model
+ model_suffixes = dict(
+ pyo.suffix.active_import_suffix_generator(m))
+
+ # we need to correct the sign of the multipliers based on whether or
+ # not we are minimizing or maximizing - this is done in the ASL interface
+ # for ipopt, but does not appear to be done in cyipopt.
+ obj_sign = 1.0
+ objs = list(m.component_data_objects(ctype=pyo.Objective, descend_into=True))
+ assert len(objs) == 1
+ if objs[0].sense == pyo.maximize:
+ obj_sign = -1.0
+
+ if 'dual' in model_suffixes:
+ model_suffixes['dual'].clear()
+ dual_values = self._dual_values_blockvector.flatten()
+ for value,t in zip(dual_values, self._constraint_datas):
+ if type(t) is tuple:
+ model_suffixes['dual'].setdefault(t[0], {})[t[1]] = -obj_sign*value
+ else:
+ # t is a constraint data
+ model_suffixes['dual'][t] = -obj_sign*value
+
+ if 'ipopt_zL_out' in model_suffixes:
+ model_suffixes['ipopt_zL_out'].clear()
+ if bound_multipliers is not None:
+ model_suffixes['ipopt_zL_out'].update(
+ zip(self._pyomo_model_var_datas, obj_sign*bound_multipliers[0]))
+ if 'ipopt_zU_out' in model_suffixes:
+ model_suffixes['ipopt_zU_out'].clear()
+ if bound_multipliers is not None:
+ model_suffixes['ipopt_zU_out'].update(
+ zip(self._pyomo_model_var_datas, -obj_sign*bound_multipliers[1]))
+
+def _default_if_none(value, default):
+ if value is None:
+ return default
+ return value
+
+class _ExternalGreyBoxAsNLP(NLP):
+ """
+ This class takes an ExternalGreyBoxModel and makes it look
+ like an NLP so it can be used with other interfaces. Currently,
+ the ExternalGreyBoxModel supports constraints only (no objective),
+ so some of the methods are not appropriate and raise exceptions
+ """
+ def __init__(self, external_grey_box_block):
+ self._block = external_grey_box_block
+ self._ex_model = external_grey_box_block.get_external_model()
+ n_inputs = len(self._block.inputs)
+ assert n_inputs == self._ex_model.n_inputs()
+ n_eq_constraints = self._ex_model.n_equality_constraints()
+ n_outputs = len(self._block.outputs)
+ assert n_outputs == self._ex_model.n_outputs()
+
+ if self._ex_model.n_outputs() == 0 and \
+ self._ex_model.n_equality_constraints() == 0:
+ raise ValueError(
+ 'ExternalGreyBoxModel has no equality constraints '
+ 'or outputs. To use _ExternalGreyBoxAsNLP, it must'
+ ' have at least one or both.')
+
+ # create the list of primals and constraint names
+ # primals will be ordered inputs, followed by outputs
+ self._primals_names = \
+ [self._block.inputs[k].getname(fully_qualified=True) \
+ for k in self._block.inputs]
+ self._primals_names.extend(
+ [self._block.outputs[k].getname(fully_qualified=True) \
+ for k in self._block.outputs]
+ )
+ n_primals = len(self._primals_names)
+
+ prefix = self._block.getname(fully_qualified=True)
+ self._constraint_names = \
+ ['{}.{}'.format(prefix, nm) \
+ for nm in self._ex_model.equality_constraint_names()]
+ output_var_names = \
+ [self._block.outputs[k].getname(fully_qualified=False) \
+ for k in self._block.outputs]
+ self._constraint_names.extend(
+ ['{}.output_constraints[{}]'.format(prefix, nm) \
+ for nm in self._ex_model.output_names()])
+
+ # create the numpy arrays of bounds on the primals
+ self._primals_lb = BlockVector(2)
+ self._primals_ub = BlockVector(2)
+ self._init_primals = BlockVector(2)
+ lb = np.nan*np.zeros(n_inputs)
+ ub = np.nan*np.zeros(n_inputs)
+ init_primals = np.nan*np.zeros(n_inputs)
+ for i,k in enumerate(self._block.inputs):
+ lb[i] = _default_if_none(self._block.inputs[k].lb, -np.inf)
+ ub[i] = _default_if_none(self._block.inputs[k].ub, np.inf)
+ init_primals[i] = _default_if_none(self._block.inputs[k].value, 0.0)
+ self._primals_lb.set_block(0,lb)
+ self._primals_ub.set_block(0,ub)
+ self._init_primals.set_block(0, init_primals)
+
+ lb = np.nan*np.zeros(n_outputs)
+ ub = np.nan*np.zeros(n_outputs)
+ init_primals = np.nan*np.zeros(n_outputs)
+ for i,k in enumerate(self._block.outputs):
+ lb[i] = _default_if_none(self._block.outputs[k].lb, -np.inf)
+ ub[i] = _default_if_none(self._block.outputs[k].ub, np.inf)
+ init_primals[i] = _default_if_none(self._block.outputs[k].value, 0.0)
+ self._primals_lb.set_block(1,lb)
+ self._primals_ub.set_block(1,ub)
+ self._init_primals.set_block(1,init_primals)
+ self._primals_lb = self._primals_lb.flatten()
+ self._primals_ub = self._primals_ub.flatten()
+ self._init_primals = self._init_primals.flatten()
+
+ # create a numpy array to store the values of the primals
+ self._primal_values = np.copy(self._init_primals)
+ # make sure the values are passed through to other objects
+ self.set_primals(self._init_primals)
+
+ # create the numpy arrays for the duals and initial values
+ # for now, initialize the duals to zero
+ self._init_duals = np.zeros(self.n_constraints(), dtype=np.float64)
+ # create the numpy arrays to store the dual variables
+ self._dual_values = np.copy(self._init_duals)
+ # make sure the values are passed through to other objects
+ self.set_duals(self._init_duals)
+
+ # create the numpy arrays for bounds on the constraints
+ # for now all of these are equalities
+ self._constraints_lb = np.zeros(self.n_constraints(), dtype=np.float64)
+ self._constraints_ub = np.zeros(self.n_constraints(), dtype=np.float64)
+
+ # do we have hessian support
+ self._has_hessian_support = True
+ if self._ex_model.n_equality_constraints() > 0 \
+ and not hasattr(self._ex_model, 'evaluate_hessian_equality_constraints'):
+ self._has_hessian_support = False
+ if self._ex_model.n_outputs() > 0 \
+ and not hasattr(self._ex_model, 'evaluate_hessian_outputs'):
+ self._has_hessian_support = False
+
+ self._nnz_jacobian = None
+ self._nnz_hessian_lag = None
+ self._cached_constraint_residuals = None
+ self._cached_jacobian = None
+ self._cached_hessian = None
+
+ def n_primals(self):
+ return len(self._primals_names)
+
+ def primals_names(self):
+ return list(self._primals_names)
+
+ def n_constraints(self):
+ return len(self._constraint_names)
+
+ def constraint_names(self):
+ return list(self._constraint_names)
+
+ def nnz_jacobian(self):
+ if self._nnz_jacobian is None:
+ J = self.evaluate_jacobian()
+ self._nnz_jacobian = len(J.data)
+ return self._nnz_jacobian
+
+ def nnz_hessian_lag(self):
+ if self._nnz_hessian_lag is None:
+ H = self.evaluate_hessian_lag()
+ self._nnz_hessian_lag = len(H.data)
+ return self._nnz_hessian_lag
+
+ def primals_lb(self):
+ return np.copy(self._primals_lb)
+
+ def primals_ub(self):
+ return np.copy(self._primals_ub)
+
+ def constraints_lb(self):
+ return np.copy(self._constraints_lb)
+
+ def constraints_ub(self):
+ return np.copy(self._constraints_ub)
+
+ def init_primals(self):
+ return np.copy(self._init_primals)
+
+ def init_duals(self):
+ return np.copy(self._init_duals)
+
+ def create_new_vector(self, vector_type):
+ if vector_type == 'primals':
+ return np.zeros(self.n_primals(), dtype=np.float64)
+ elif vector_type == 'constraints' or vector_type == 'duals':
+ return np.zeros(self.n_constraints(), dtype=np.float64)
+
+ def _cache_invalidate_primals(self):
+ self._cached_constraint_residuals = None
+ self._cached_jacobian = None
+ self._cached_hessian = None
+
+ def set_primals(self, primals):
+ self._cache_invalidate_primals()
+ assert len(primals) == self.n_primals()
+ np.copyto(self._primal_values, primals)
+ self._ex_model.set_input_values(primals[:self._ex_model.n_inputs()])
+
+ def get_primals(self):
+ return np.copy(self._primal_values)
+
+ def _cache_invalidate_duals(self):
+ self._cached_hessian = None
+
+ def set_duals(self, duals):
+ self._cache_invalidate_duals()
+ assert len(duals) == self.n_constraints()
+ np.copyto(self._dual_values, duals)
+ if self._ex_model.n_equality_constraints() > 0:
+ self._ex_model.set_equality_constraint_multipliers(
+ self._dual_values[:self._ex_model.n_equality_constraints()]
+ )
+ if self._ex_model.n_outputs() > 0:
+ self._ex_model.set_output_constraint_multipliers(
+ self._dual_values[self._ex_model.n_equality_constraints():]
+ )
+
+ def get_duals(self):
+ return np.copy(self._dual_values)
+
+ def set_obj_factor(self, obj_factor):
+ raise NotImplementedError('_ExternalGreyBoxAsNLP does not support objectives')
+
+ def get_obj_factor(self):
+ raise NotImplementedError('_ExternalGreyBoxAsNLP does not support objectives')
+
+ def get_obj_scaling(self):
+ raise NotImplementedError('_ExternalGreyBoxAsNLP does not support objectives')
+
+ def get_primals_scaling(self):
+ raise NotImplementedError(
+ '_ExternalGreyBoxAsNLP does not support scaling of primals '
+ 'directly. This should be handled at a higher level using '
+ 'suffixes on the Pyomo variables.'
+ )
+
+ def get_constraints_scaling(self):
+ # todo: would this be better with block vectors
+ scaling = np.ones(self.n_constraints(), dtype=np.float64)
+ scaled = False
+ if self._ex_model.n_equality_constraints() > 0:
+ eq_scaling = self._ex_model.get_equality_constraint_scaling_factors()
+ if eq_scaling is not None:
+ scaling[:self._ex_model.n_equality_constraints()] = eq_scaling
+ scaled = True
+ if self._ex_model.n_outputs() > 0:
+ output_scaling = self._ex_model.get_output_constraint_scaling_factors()
+ if output_scaling is not None:
+ scaling[self._ex_model.n_equality_constraints():] = output_scaling
+ scaled = True
+ if scaled:
+ return scaling
+ return None
+
+ def evaluate_objective(self):
+ # todo: Should we return 0 here?
+ raise NotImplementedError('_ExternalGreyBoxNLP does not support objectives')
+
+ def evaluate_grad_objective(self, out=None):
+ # todo: Should we return 0 here?
+ raise NotImplementedError('_ExternalGreyBoxNLP does not support objectives')
+
+ def _evaluate_constraints_if_necessary_and_cache(self):
+ if self._cached_constraint_residuals is None:
+ c = BlockVector(2)
+ if self._ex_model.n_equality_constraints() > 0:
+ c.set_block(0, self._ex_model.evaluate_equality_constraints())
+ else:
+ c.set_block(0, np.zeros(0, dtype=np.float64))
+ if self._ex_model.n_outputs() > 0:
+ output_values = self._primal_values[self._ex_model.n_inputs():]
+ c.set_block(1, self._ex_model.evaluate_outputs() - output_values)
+ else:
+ c.set_block(1,np.zeros(0, dtype=np.float64))
+ self._cached_constraint_residuals = c.flatten()
+
+ def evaluate_constraints(self, out=None):
+ self._evaluate_constraints_if_necessary_and_cache()
+ if out is not None:
+ assert len(out) == self.n_constraints()
+ np.copyto(out, self._cached_constraint_residuals)
+ return out
+
+ return np.copy(self._cached_constraint_residuals)
+
+ def _evaluate_jacobian_if_necessary_and_cache(self):
+ if self._cached_jacobian is None:
+ jac = BlockMatrix(2,2)
+ jac.set_row_size(0,self._ex_model.n_equality_constraints())
+ jac.set_row_size(1,self._ex_model.n_outputs())
+ jac.set_col_size(0,self._ex_model.n_inputs())
+ jac.set_col_size(1,self._ex_model.n_outputs())
+
+ if self._ex_model.n_equality_constraints() > 0:
+ jac.set_block(0,0,self._ex_model.evaluate_jacobian_equality_constraints())
+ if self._ex_model.n_outputs() > 0:
+ jac.set_block(1,0,self._ex_model.evaluate_jacobian_outputs())
+ jac.set_block(1,1,-1.0*identity(self._ex_model.n_outputs()))
+
+ self._cached_jacobian = jac.tocoo()
+
+ def evaluate_jacobian(self, out=None):
+ self._evaluate_jacobian_if_necessary_and_cache()
+ if out is not None:
+ jac = self._cached_jacobian
+ assert np.array_equal(jac.row, out.row)
+ assert np.array_equal(jac.col, out.col)
+ np.copyto(out.data, jac.data)
+ return out
+
+ return self._cached_jacobian.copy()
+
+ def _evaluate_hessian_if_necessary_and_cache(self):
+ if self._cached_hessian is None:
+ hess = BlockMatrix(2,2)
+ hess.set_row_size(0,self._ex_model.n_inputs())
+ hess.set_row_size(1,self._ex_model.n_outputs())
+ hess.set_col_size(0,self._ex_model.n_inputs())
+ hess.set_col_size(1,self._ex_model.n_outputs())
+
+ # get the hessian w.r.t. the equality constraints
+ eq_hess = None
+ if self._ex_model.n_equality_constraints() > 0:
+ eq_hess = self._ex_model.evaluate_hessian_equality_constraints()
+ # let's check that it is lower triangular
+ if np.any(eq_hess.row < eq_hess.col):
+ raise ValueError('ExternalGreyBoxModel must return lower '
+ 'triangular portion of the Hessian only')
+
+ eq_hess = make_lower_triangular_full(eq_hess)
+
+ output_hess = None
+ if self._ex_model.n_outputs() > 0:
+ output_hess = self._ex_model.evaluate_hessian_outputs()
+ # let's check that it is lower triangular
+ if np.any(output_hess.row < output_hess.col):
+ raise ValueError('ExternalGreyBoxModel must return lower '
+ 'triangular portion of the Hessian only')
+
+ output_hess = make_lower_triangular_full(output_hess)
+
+ input_hess = None
+ if eq_hess is not None and output_hess is not None:
+ # we may want to make this more efficient
+ row = np.concatenate((eq_hess.row, output_hess.row))
+ col = np.concatenate((eq_hess.col, output_hess.col))
+ data = np.concatenate((eq_hess.data, output_hess.data))
+
+ assert eq_hess.shape == output_hess.shape
+ input_hess = coo_matrix( (data, (row,col)), shape=eq_hess.shape)
+ elif eq_hess is not None:
+ input_hess = eq_hess
+ elif output_hess is not None:
+ input_hess = output_hess
+ assert input_hess is not None # need equality or outputs or both
+
+ hess.set_block(0,0,input_hess)
+ self._cached_hessian = hess.tocoo()
+
+ def has_hessian_support(self):
+ return self._has_hessian_support
+
+ def evaluate_hessian_lag(self, out=None):
+ if not self._has_hessian_support:
+ raise NotImplementedError(
+ 'Hessians not supported for all of the external grey box'
+ ' models. Therefore, Hessians are not supported overall.'
+ )
+
+ self._evaluate_hessian_if_necessary_and_cache()
+ if out is not None:
+ hess = self._cached_hessian
+ assert np.array_equal(hess.row, out.row)
+ assert np.array_equal(hess.col, out.col)
+ np.copyto(out.data, hess.data)
+ return out
+
+ return self._cached_hessian.copy()
+
+ def report_solver_status(self, status_code, status_message):
+ raise NotImplementedError('report_solver_status not implemented')
diff --git a/pyomo/contrib/pynumero/interfaces/pyomo_nlp.py b/pyomo/contrib/pynumero/interfaces/pyomo_nlp.py
index e420a15851a..35087232c85 100644
--- a/pyomo/contrib/pynumero/interfaces/pyomo_nlp.py
+++ b/pyomo/contrib/pynumero/interfaces/pyomo_nlp.py
@@ -18,7 +18,7 @@
from six.moves import xrange
from scipy.sparse import coo_matrix
-
+from pyomo.common.deprecation import deprecated
from pyomo.common.tempfiles import TempfileManager
from pyomo.opt import WriterFactory
import pyomo.core.base as pyo
@@ -170,7 +170,11 @@ def get_pyomo_inequality_constraints(self):
six.iteritems(self._condata_to_ineq_idx)}
return [idx_to_condata[i] for i in range(len(idx_to_condata))]
+ @deprecated(msg='This method has been replaced with primals_names', version='6.0.0.dev0', remove_in='6.0')
def variable_names(self):
+ return self.primals_names()
+
+ def primals_names(self):
"""
Return an ordered list of the Pyomo variable
names in the order corresponding to the primals
@@ -1048,7 +1052,11 @@ def evaluate_hessian_lag(self, out=None):
def report_solver_status(self, status_code, status_message):
raise NotImplementedError('Todo: implement this')
+ @deprecated(msg='This method has been replaced with primals_names', version='6.0.0.dev0', remove_in='6.0')
def variable_names(self):
+ return self.primals_names()
+
+ def primals_names(self):
names = list(self._pyomo_nlp.variable_names())
names.extend(self._greybox_primals_names)
return names
diff --git a/pyomo/contrib/pynumero/interfaces/tests/external_grey_box_models.py b/pyomo/contrib/pynumero/interfaces/tests/external_grey_box_models.py
new file mode 100644
index 00000000000..0b04e5cabed
--- /dev/null
+++ b/pyomo/contrib/pynumero/interfaces/tests/external_grey_box_models.py
@@ -0,0 +1,546 @@
+from pyomo.contrib.pynumero.dependencies import (
+ numpy as np, numpy_available, scipy_sparse as spa, scipy_available
+)
+
+if not (numpy_available and scipy_available):
+ raise unittest.SkipTest("Pynumero needs scipy and numpy to run NLP tests")
+
+from ..external_grey_box import ExternalGreyBoxModel, ExternalGreyBoxBlock
+
+# set of external models for testing
+# basic model is a simple pipe sequence with nonlinear pressure drop
+# Pin -> P1 -> P2 -> P3 -> Pout
+#
+# We will assume that we have an external model to compute
+# the pressure drop in this sequence of pipes, where the dP
+# is given by c*F^2
+#
+# There are several ways to format this.
+# Model 1: Use the "external model" to compute the output pressure
+# no equalities, 1 output
+# u = [Pin, c, F]
+# o = [Pout]
+# h_eq(u) = {empty}
+# h_o(u) = [Pin - 4*c*F^2]
+#
+# Model 2: Same as model 1, but treat Pout as an input to be converged by the optimizer
+# 1 equality, no outputs
+# u = [Pin, c, F, Pout]
+# o = {empty}
+# h_eq(u) = [Pout - (Pin - 4*c*F^2]
+# h_o(u) = {empty}
+#
+# Model 3: Use the "external model" to compute the output pressure and the pressure
+# at node 2 (e.g., maybe we have a measurement there we want to match)
+# no equalities, 2 outputs
+# u = [Pin, c, F]
+# o = [P2, Pout]
+# h_eq(u) = {empty}
+# h_o(u) = [Pin - 2*c*F^2]
+# [Pin - 4*c*F^2]
+#
+# Model 4: Same as model 2, but treat P2, and Pout as an input to be converged by the optimizer
+# 2 equality, no outputs
+# u = [Pin, c, F, P2, Pout]
+# o = {empty}
+# h_eq(u) = [P2 - (Pin - 2*c*F^2]
+# [Pout - (P2 - 2*c*F^2]
+# h_o(u) = {empty}
+
+# Model 4: Same as model 2, but treat P2 as an input to be converged by the solver
+# u = [Pin, c, F, P2]
+# o = [Pout]
+# h_eq(u) = P2 - (Pin-2*c*F^2)]
+# h_o(u) = [Pin - 4*c*F^2] (or could also be [P2 - 2*c*F^2])
+#
+# Model 5: treat all "internal" variables as "inputs", equality and output equations
+# u = [Pin, c, F, P1, P2, P3]
+# o = [Pout]
+# h_eq(u) = [
+# P1 - (Pin - c*F^2);
+# P2 - (P1 - c*F^2);
+# P3 - (P2 - c*F^2);
+# ]
+# h_o(u) = [P3 - c*F^2] (or could also be [Pin - 4*c*F^2] or [P1 - 3*c*F^2] or [P2 - 2*c*F^2])
+#
+# Model 6: treat all variables as "inputs", equality only, and no output equations
+# u = [Pin, c, F, P1, P2, P3, Pout]
+# o = {empty}
+# h_eq(u) = [
+# P1 - (Pin - c*F^2);
+# P2 - (P1 - c*F^2);
+# P3 - (P2 - c*F^2);
+# Pout = (P3 - c*F^2);
+# ]
+# h_o(u) = {empty}
+#
+class PressureDropSingleOutput(ExternalGreyBoxModel):
+ def __init__(self):
+ self._input_names = ['Pin', 'c', 'F']
+ self._input_values = np.zeros(3, dtype=np.float64)
+ self._output_names = ['Pout']
+
+ def input_names(self):
+ return self._input_names
+
+ def equality_constraint_names(self):
+ return []
+
+ def output_names(self):
+ return self._output_names
+
+ def set_input_values(self, input_values):
+ assert len(input_values) == 3
+ np.copyto(self._input_values, input_values)
+
+ def evaluate_outputs(self):
+ Pin = self._input_values[0]
+ c = self._input_values[1]
+ F = self._input_values[2]
+ Pout = Pin - 4*c*F**2
+ return np.asarray([Pout], dtype=np.float64)
+
+ def evaluate_jacobian_outputs(self):
+ c = self._input_values[1]
+ F = self._input_values[2]
+ irow = np.asarray([0, 0, 0], dtype=np.int64)
+ jcol = np.asarray([0, 1, 2], dtype=np.int64)
+ nonzeros = np.asarray([1, -4*F**2, -4*c*2*F], dtype=np.float64)
+ jac = spa.coo_matrix((nonzeros, (irow, jcol)), shape=(1,3))
+ return jac
+
+class PressureDropSingleOutputWithHessian(PressureDropSingleOutput):
+ def __init__(self):
+ super(PressureDropSingleOutputWithHessian, self).__init__()
+ self._output_con_mult_values = np.zeros(1, dtype=np.float64)
+
+ def set_output_constraint_multipliers(self, output_con_multiplier_values):
+ np.copyto(self._output_con_mult_values, output_con_multiplier_values)
+
+ def evaluate_hessian_outputs(self):
+ c = self._input_values[1]
+ F = self._input_values[2]
+ irow = np.asarray([2, 2], dtype=np.int64)
+ jcol = np.asarray([1, 2], dtype=np.int64)
+ data = self._output_con_mult_values[0]*np.asarray([-8*F, -8*c], dtype=np.float64)
+ hess = spa.coo_matrix((data, (irow, jcol)), shape=(3,3))
+ return hess
+
+class PressureDropSingleEquality(ExternalGreyBoxModel):
+ # u = [Pin, c, F, Pout]
+ # o = {empty}
+ # h_eq(u) = [Pout - (Pin - 4*c*F^2]
+ # h_o(u) = {empty}
+ def __init__(self):
+ self._input_names = ['Pin', 'c', 'F', 'Pout']
+ self._input_values = np.zeros(4, dtype=np.float64)
+ self._equality_constraint_names = ['pdrop']
+
+ def input_names(self):
+ return self._input_names
+
+ def equality_constraint_names(self):
+ return self._equality_constraint_names
+
+ def set_input_values(self, input_values):
+ assert len(input_values) == 4
+ np.copyto(self._input_values, input_values)
+
+ def evaluate_equality_constraints(self):
+ Pin = self._input_values[0]
+ c = self._input_values[1]
+ F = self._input_values[2]
+ Pout = self._input_values[3]
+ return np.asarray([Pout - (Pin - 4*c*F**2)], dtype=np.float64)
+
+ def evaluate_jacobian_equality_constraints(self):
+ c = self._input_values[1]
+ F = self._input_values[2]
+ irow = np.asarray([0, 0, 0, 0], dtype=np.int64)
+ jcol = np.asarray([0, 1, 2, 3], dtype=np.int64)
+ nonzeros = np.asarray([-1, 4*F**2, 4*2*c*F, 1], dtype=np.float64)
+ jac = spa.coo_matrix((nonzeros, (irow, jcol)), shape=(1,4))
+ return jac
+
+class PressureDropSingleEqualityWithHessian(PressureDropSingleEquality):
+ # u = [Pin, c, F, Pout]
+ # o = {empty}
+ # h_eq(u) = [Pout - (Pin - 4*c*F^2]
+ # h_o(u) = {empty}
+ def __init__(self):
+ super(PressureDropSingleEqualityWithHessian, self).__init__()
+ self._eq_con_mult_values = np.zeros(1, dtype=np.float64)
+
+ def set_equality_constraint_multipliers(self, eq_con_multiplier_values):
+ assert len(eq_con_multiplier_values) == 1
+ np.copyto(self._eq_con_mult_values, eq_con_multiplier_values)
+
+ def evaluate_hessian_equality_constraints(self):
+ c = self._input_values[1]
+ F = self._input_values[2]
+ irow = np.asarray([2, 2], dtype=np.int64)
+ jcol = np.asarray([1, 2], dtype=np.int64)
+ nonzeros = self._eq_con_mult_values[0]*np.asarray([8*F, 8*c], dtype=np.float64)
+ hess = spa.coo_matrix((nonzeros, (irow, jcol)), shape=(4,4))
+ return hess
+
+class PressureDropTwoOutputs(ExternalGreyBoxModel):
+ # u = [Pin, c, F]
+ # o = [P2, Pout]
+ # h_eq(u) = {empty}
+ # h_o(u) = [Pin - 2*c*F^2]
+ # [Pin - 4*c*F^2]
+ def __init__(self):
+ self._input_names = ['Pin', 'c', 'F']
+ self._input_values = np.zeros(3, dtype=np.float64)
+ self._output_names = ['P2', 'Pout']
+
+ def input_names(self):
+ return self._input_names
+
+ def output_names(self):
+ return self._output_names
+
+ def set_input_values(self, input_values):
+ assert len(input_values) == 3
+ np.copyto(self._input_values, input_values)
+
+ def evaluate_equality_constraints(self):
+ raise NotImplementedError('This method should not be called for this model.')
+
+ def evaluate_outputs(self):
+ Pin = self._input_values[0]
+ c = self._input_values[1]
+ F = self._input_values[2]
+ P2 = Pin - 2*c*F**2
+ Pout = Pin - 4*c*F**2
+ return np.asarray([P2, Pout], dtype=np.float64)
+
+ def evaluate_jacobian_outputs(self):
+ c = self._input_values[1]
+ F = self._input_values[2]
+ irow = np.asarray([0, 0, 0, 1, 1, 1], dtype=np.int64)
+ jcol = np.asarray([0, 1, 2, 0, 1, 2], dtype=np.int64)
+ nonzeros = np.asarray([1, -2*F**2, -2*c*2*F, 1, -4*F**2, -4*c*2*F], dtype=np.float64)
+ jac = spa.coo_matrix((nonzeros, (irow, jcol)), shape=(2,3))
+ return jac
+
+class PressureDropTwoOutputsWithHessian(PressureDropTwoOutputs):
+ # u = [Pin, c, F]
+ # o = [P2, Pout]
+ # h_eq(u) = {empty}
+ # h_o(u) = [Pin - 2*c*F^2]
+ # [Pin - 4*c*F^2]
+ def __init__(self):
+ super(PressureDropTwoOutputsWithHessian,self).__init__()
+ self._output_con_mult_values = np.zeros(2, dtype=np.float64)
+
+ def set_output_constraint_multipliers(self, output_con_multiplier_values):
+ np.copyto(self._output_con_mult_values, output_con_multiplier_values)
+
+ def evaluate_hessian_outputs(self):
+ c = self._input_values[1]
+ F = self._input_values[2]
+ y1 = self._output_con_mult_values[0]
+ y2 = self._output_con_mult_values[1]
+ irow = np.asarray([2, 2], dtype=np.int64)
+ jcol = np.asarray([1, 2], dtype=np.int64)
+ nonzeros = np.asarray([y1*(-4*F) + y2*(-8*F), y1*(-4*c)+y2*(-8*c)], dtype=np.float64)
+ hess = spa.coo_matrix((nonzeros, (irow, jcol)), shape=(3,3))
+ return hess
+
+class PressureDropTwoEqualities(ExternalGreyBoxModel):
+ # u = [Pin, c, F, P2, Pout]
+ # o = {empty}
+ # h_eq(u) = [P2 - (Pin - 2*c*F^2]
+ # [Pout - (P2 - 2*c*F^2]
+ # h_o(u) = {empty}
+ def __init__(self):
+ self._input_names = ['Pin', 'c', 'F', 'P2', 'Pout']
+ self._input_values = np.zeros(5, dtype=np.float64)
+ self._equality_constraint_names = ['pdrop2', 'pdropout']
+
+ def input_names(self):
+ return self._input_names
+
+ def equality_constraint_names(self):
+ return self._equality_constraint_names
+
+ def set_input_values(self, input_values):
+ assert len(input_values) == 5
+ np.copyto(self._input_values, input_values)
+
+ def evaluate_equality_constraints(self):
+ Pin = self._input_values[0]
+ c = self._input_values[1]
+ F = self._input_values[2]
+ P2 = self._input_values[3]
+ Pout = self._input_values[4]
+ return np.asarray([P2 - (Pin - 2*c*F**2), Pout - (P2 - 2*c*F**2)], dtype=np.float64)
+
+ def evaluate_jacobian_equality_constraints(self):
+ c = self._input_values[1]
+ F = self._input_values[2]
+ irow = np.asarray([0, 0, 0, 0, 1, 1, 1, 1], dtype=np.int64)
+ jcol = np.asarray([0, 1, 2, 3, 1, 2, 3, 4], dtype=np.int64)
+ nonzeros = np.asarray([-1, 2*F**2, 2*2*c*F, 1, 2*F**2, 2*2*c*F, -1, 1], dtype=np.float64)
+ jac = spa.coo_matrix((nonzeros, (irow, jcol)), shape=(2,5))
+ return jac
+
+class PressureDropTwoEqualitiesWithHessian(PressureDropTwoEqualities):
+ # u = [Pin, c, F, P2, Pout]
+ # o = {empty}
+ # h_eq(u) = [P2 - (Pin - 2*c*F^2]
+ # [Pout - (P2 - 2*c*F^2]
+ # h_o(u) = {empty}
+ def __init__(self):
+ super(PressureDropTwoEqualitiesWithHessian,self).__init__()
+ self._eq_con_mult_values = np.zeros(2, dtype=np.float64)
+
+ def set_equality_constraint_multipliers(self, eq_con_multiplier_values):
+ assert len(eq_con_multiplier_values) == 2
+ np.copyto(self._eq_con_mult_values, eq_con_multiplier_values)
+
+ def evaluate_hessian_equality_constraints(self):
+ c = self._input_values[1]
+ F = self._input_values[2]
+ y1 = self._eq_con_mult_values[0]
+ y2 = self._eq_con_mult_values[1]
+
+ irow = np.asarray([2, 2], dtype=np.int64)
+ jcol = np.asarray([1, 2], dtype=np.int64)
+ nonzeros = np.asarray([y1*(4*F) + y2*(4*F), y1*(4*c)+y2*(4*c)], dtype=np.float64)
+ hess = spa.coo_matrix((nonzeros, (irow, jcol)), shape=(5,5))
+ return hess
+
+class PressureDropTwoEqualitiesTwoOutputs(ExternalGreyBoxModel):
+ # u = [Pin, c, F, P1, P3]
+ # o = {P2, Pout}
+ # h_eq(u) = [P1 - (Pin - c*F^2]
+ # [P3 - (P1 - 2*c*F^2]
+ # h_o(u) = [P1 - c*F^2]
+ # [Pin - 4*c*F^2]
+ def __init__(self):
+ self._input_names = ['Pin', 'c', 'F', 'P1', 'P3']
+ self._input_values = np.zeros(5, dtype=np.float64)
+ self._equality_constraint_names = ['pdrop1', 'pdrop3']
+ self._output_names = ['P2', 'Pout']
+
+ def input_names(self):
+ return self._input_names
+
+ def equality_constraint_names(self):
+ return self._equality_constraint_names
+
+ def output_names(self):
+ return self._output_names
+
+ def set_input_values(self, input_values):
+ assert len(input_values) == 5
+ np.copyto(self._input_values, input_values)
+
+ def evaluate_equality_constraints(self):
+ Pin = self._input_values[0]
+ c = self._input_values[1]
+ F = self._input_values[2]
+ P1 = self._input_values[3]
+ P3 = self._input_values[4]
+ return np.asarray([P1 - (Pin - c*F**2), P3 - (P1 - 2*c*F**2)], dtype=np.float64)
+
+ def evaluate_outputs(self):
+ Pin = self._input_values[0]
+ c = self._input_values[1]
+ F = self._input_values[2]
+ P1 = self._input_values[3]
+ return np.asarray([P1 - c*F**2, Pin - 4*c*F**2], dtype=np.float64)
+
+ def evaluate_jacobian_equality_constraints(self):
+ c = self._input_values[1]
+ F = self._input_values[2]
+ irow = np.asarray([0, 0, 0, 0, 1, 1, 1, 1], dtype=np.int64)
+ jcol = np.asarray([0, 1, 2, 3, 1, 2, 3, 4], dtype=np.int64)
+ nonzeros = np.asarray([-1, F**2, 2*c*F, 1, 2*F**2, 4*c*F, -1, 1], dtype=np.float64)
+ jac = spa.coo_matrix((nonzeros, (irow, jcol)), shape=(2,5))
+ return jac
+
+ def evaluate_jacobian_outputs(self):
+ c = self._input_values[1]
+ F = self._input_values[2]
+ irow = np.asarray([0, 0, 0, 1, 1, 1], dtype=np.int64)
+ jcol = np.asarray([1, 2, 3, 0, 1, 2], dtype=np.int64)
+ nonzeros = np.asarray([-F**2, -c*2*F, 1, 1, -4*F**2, -4*c*2*F], dtype=np.float64)
+ jac = spa.coo_matrix((nonzeros, (irow, jcol)), shape=(2,5))
+ return jac
+
+
+class PressureDropTwoEqualitiesTwoOutputsWithHessian(PressureDropTwoEqualitiesTwoOutputs):
+ # u = [Pin, c, F, P1, P3]
+ # o = {P2, Pout}
+ # h_eq(u) = [P1 - (Pin - c*F^2]
+ # [P3 - (P1 - 2*c*F^2]
+ # h_o(u) = [P1 - c*F^2]
+ # [Pin - 4*c*F^2]
+ def __init__(self):
+ super(PressureDropTwoEqualitiesTwoOutputsWithHessian,self).__init__()
+ self._eq_con_mult_values = np.zeros(2, dtype=np.float64)
+ self._output_con_mult_values = np.zeros(2, dtype=np.float64)
+
+ def set_equality_constraint_multipliers(self, eq_con_multiplier_values):
+ assert len(eq_con_multiplier_values) == 2
+ np.copyto(self._eq_con_mult_values, eq_con_multiplier_values)
+
+ def set_output_constraint_multipliers(self, output_con_multiplier_values):
+ assert len(output_con_multiplier_values) == 2
+ np.copyto(self._output_con_mult_values, output_con_multiplier_values)
+
+ def evaluate_hessian_equality_constraints(self):
+ c = self._input_values[1]
+ F = self._input_values[2]
+ y1 = self._eq_con_mult_values[0]
+ y2 = self._eq_con_mult_values[1]
+ irow = np.asarray([2, 2], dtype=np.int64)
+ jcol = np.asarray([1, 2], dtype=np.int64)
+ nonzeros = np.asarray([y1*(2*F) + y2*(4*F), y1*(2*c)+y2*(4*c)], dtype=np.float64)
+ hess = spa.coo_matrix((nonzeros, (irow, jcol)), shape=(5,5))
+ return hess
+
+ def evaluate_hessian_outputs(self):
+ c = self._input_values[1]
+ F = self._input_values[2]
+ y1 = self._output_con_mult_values[0]
+ y2 = self._output_con_mult_values[1]
+ irow = np.asarray([2, 2], dtype=np.int64)
+ jcol = np.asarray([1, 2], dtype=np.int64)
+ nonzeros = np.asarray([y1*(-2*F) + y2*(-8*F), y1*(-2*c)+y2*(-8*c)], dtype=np.float64)
+ hess = spa.coo_matrix((nonzeros, (irow, jcol)), shape=(5,5))
+ return hess
+
+class PressureDropTwoEqualitiesTwoOutputsScaleBoth(PressureDropTwoEqualitiesTwoOutputs):
+ def get_equality_constraint_scaling_factors(self):
+ return np.asarray([3.1, 3.2], dtype=np.float64)
+
+ def get_output_constraint_scaling_factors(self):
+ return np.asarray([4.1, 4.2])
+
+class PressureDropTwoEqualitiesTwoOutputsScaleEqualities(PressureDropTwoEqualitiesTwoOutputs):
+ def get_equality_constraint_scaling_factors(self):
+ return np.asarray([3.1, 3.2], dtype=np.float64)
+
+class PressureDropTwoEqualitiesTwoOutputsScaleOutputs(PressureDropTwoEqualitiesTwoOutputs):
+ def get_output_constraint_scaling_factors(self):
+ return np.asarray([4.1, 4.2])
+
+class OneOutput(ExternalGreyBoxModel):
+ def __init__(self):
+ self._input_names = ['u']
+ self._output_names = ['o']
+ self._u = None
+ self._output_mult = None
+
+ def input_names(self):
+ return self._input_names
+
+ def equality_constraint_names(self):
+ return []
+
+ def output_names(self):
+ return self._output_names
+
+ def finalize_block_construction(self, pyomo_block):
+ pyomo_block.inputs['u'].setlb(4)
+ pyomo_block.inputs['u'].setub(10)
+ pyomo_block.inputs['u'].set_value(1.0)
+ pyomo_block.outputs['o'].set_value(1.0)
+
+ def set_input_values(self, input_values):
+ assert len(input_values) == 1
+ self._u = input_values[0]
+
+ def evaluate_outputs(self):
+ return np.asarray([5*self._u])
+
+ def evaluate_jacobian_outputs(self):
+ irow = np.asarray([0], dtype=np.int64)
+ jcol = np.asarray([0], dtype=np.int64)
+ nonzeros = np.asarray([5.0], dtype=np.float64)
+ jac = spa.coo_matrix((nonzeros, (irow, jcol)), shape=(1,1))
+ return jac
+
+ def set_output_constraint_multipliers(self, output_con_multiplier_values):
+ assert len(output_con_multiplier_values) == 1
+ self._output_mult = output_con_multiplier_values[0]
+
+ def evaluate_hessian_outputs(self):
+ irow = np.asarray([], dtype=np.int64)
+ jcol = np.asarray([], dtype=np.int64)
+ data = np.asarray([], dtype=np.float64)
+ hess = spa.coo_matrix((data, (irow, jcol)), shape=(1,1))
+ return hess
+
+class OneOutputOneEquality(ExternalGreyBoxModel):
+ def __init__(self):
+ self._input_names = ['u']
+ self._equality_constraint_names = ['u2_con']
+ self._output_names = ['o']
+ self._u = None
+ self._output_mult = None
+ self._equality_mult = None
+
+ def input_names(self):
+ return self._input_names
+
+ def equality_constraint_names(self):
+ return self._equality_constraint_names
+
+ def output_names(self):
+ return self._output_names
+
+ def finalize_block_construction(self, pyomo_block):
+ pyomo_block.inputs['u'].set_value(1.0)
+ pyomo_block.outputs['o'].set_value(1.0)
+
+ def set_input_values(self, input_values):
+ assert len(input_values) == 1
+ self._u = input_values[0]
+
+ def evaluate_equality_constraints(self):
+ return np.asarray([self._u**2 - 1])
+
+ def evaluate_outputs(self):
+ return np.asarray([5*self._u])
+
+ def evaluate_jacobian_equality_constraints(self):
+ irow = np.asarray([0], dtype=np.int64)
+ jcol = np.asarray([0], dtype=np.int64)
+ nonzeros = np.asarray([2*self._u], dtype=np.float64)
+ jac = spa.coo_matrix((nonzeros, (irow, jcol)), shape=(1,1))
+ return jac
+
+ def evaluate_jacobian_outputs(self):
+ irow = np.asarray([0], dtype=np.int64)
+ jcol = np.asarray([0], dtype=np.int64)
+ nonzeros = np.asarray([5.0], dtype=np.float64)
+ jac = spa.coo_matrix((nonzeros, (irow, jcol)), shape=(1,1))
+ return jac
+
+ def set_equality_constraint_multipliers(self, equality_con_multiplier_values):
+ assert len(equality_con_multiplier_values) == 1
+ self._equality_mult = equality_con_multiplier_values[0]
+
+ def set_output_constraint_multipliers(self, output_con_multiplier_values):
+ assert len(output_con_multiplier_values) == 1
+ self._output_mult = output_con_multiplier_values[0]
+
+ def evaluate_hessian_equality_constraints(self):
+ irow = np.asarray([0], dtype=np.int64)
+ jcol = np.asarray([0], dtype=np.int64)
+ data = np.asarray([self._equality_mult*2.0], dtype=np.float64)
+ hess = spa.coo_matrix((data, (irow, jcol)), shape=(1,1))
+ return hess
+
+ def evaluate_hessian_outputs(self):
+ irow = np.asarray([], dtype=np.int64)
+ jcol = np.asarray([], dtype=np.int64)
+ data = np.asarray([], dtype=np.float64)
+ hess = spa.coo_matrix((data, (irow, jcol)), shape=(1,1))
+ return hess
diff --git a/pyomo/contrib/pynumero/interfaces/tests/test_dynamic_model.py b/pyomo/contrib/pynumero/interfaces/tests/test_dynamic_model.py
index a7e62dab5d3..81a4faffd79 100644
--- a/pyomo/contrib/pynumero/interfaces/tests/test_dynamic_model.py
+++ b/pyomo/contrib/pynumero/interfaces/tests/test_dynamic_model.py
@@ -30,6 +30,7 @@
from pyomo.contrib.pynumero.interfaces.external_grey_box import ExternalGreyBoxModel, ExternalGreyBoxBlock
from pyomo.contrib.pynumero.interfaces.pyomo_nlp import PyomoGreyBoxNLP, PyomoNLP
+from pyomo.contrib.pynumero.interfaces.pyomo_grey_box_nlp import PyomoNLPWithGreyBoxBlocks
from pyomo.contrib.pynumero.interfaces.tests.compare_utils import check_vectors_specific_order, check_sparse_matrix_specific_order
@@ -385,13 +386,14 @@ def test_compare_evaluations(self):
m_nlp = PyomoNLP(m)
mex = create_pyomo_external_grey_box_model(A1, A2, c1, c2, N, dt)
- mex_nlp = PyomoGreyBoxNLP(mex)
+ # mex_nlp = PyomoGreyBoxNLP(mex)
+ mex_nlp = PyomoNLPWithGreyBoxBlocks(mex)
# get the variable and constraint order and create the maps
# reliable order independent comparisons
- m_x_order = m_nlp.variable_names()
+ m_x_order = m_nlp.primals_names()
m_c_order = m_nlp.constraint_names()
- mex_x_order = mex_nlp.variable_names()
+ mex_x_order = mex_nlp.primals_names()
mex_c_order = mex_nlp.constraint_names()
x1list = ['h1[0]', 'h1[1]', 'h1[2]', 'h1[3]', 'h1[4]', 'h1[5]', 'h2[0]', 'h2[1]', 'h2[2]', 'h2[3]', 'h2[4]', 'h2[5]', 'F1[1]', 'F1[2]', 'F1[3]', 'F1[4]', 'F1[5]', 'F2[1]', 'F2[2]', 'F2[3]', 'F2[4]', 'F2[5]', 'F12[0]', 'F12[1]', 'F12[2]', 'F12[3]', 'F12[4]', 'F12[5]', 'Fo[0]', 'Fo[1]', 'Fo[2]', 'Fo[3]', 'Fo[4]', 'Fo[5]']
@@ -399,8 +401,34 @@ def test_compare_evaluations(self):
x1_x2_map = dict(zip(x1list, x2list))
x1idx_x2idx_map = {i: mex_x_order.index(x1_x2_map[m_x_order[i]]) for i in range(len(m_x_order))}
- c1list = ['h1bal[1]', 'h1bal[2]', 'h1bal[3]', 'h1bal[4]', 'h1bal[5]', 'h2bal[1]', 'h2bal[2]', 'h2bal[3]', 'h2bal[4]', 'h2bal[5]', 'F12con[0]', 'F12con[1]', 'F12con[2]', 'F12con[3]', 'F12con[4]', 'F12con[5]', 'Focon[0]', 'Focon[1]', 'Focon[2]', 'Focon[3]', 'Focon[4]', 'Focon[5]', 'min_inflow[1]', 'min_inflow[2]', 'min_inflow[3]', 'min_inflow[4]', 'min_inflow[5]', 'max_outflow[0]', 'max_outflow[1]', 'max_outflow[2]', 'max_outflow[3]', 'max_outflow[4]', 'max_outflow[5]', 'h10', 'h20']
- c2list = ['egb.h1bal_1', 'egb.h1bal_2', 'egb.h1bal_3', 'egb.h1bal_4', 'egb.h1bal_5', 'egb.h2bal_1', 'egb.h2bal_2', 'egb.h2bal_3', 'egb.h2bal_4', 'egb.h2bal_5', 'egb.F12_0_con', 'egb.F12_1_con', 'egb.F12_2_con', 'egb.F12_3_con', 'egb.F12_4_con', 'egb.F12_5_con', 'egb.Fo_0_con', 'egb.Fo_1_con', 'egb.Fo_2_con', 'egb.Fo_3_con', 'egb.Fo_4_con', 'egb.Fo_5_con', 'min_inflow[1]', 'min_inflow[2]', 'min_inflow[3]', 'min_inflow[4]', 'min_inflow[5]', 'max_outflow[0]', 'max_outflow[1]', 'max_outflow[2]', 'max_outflow[3]', 'max_outflow[4]', 'max_outflow[5]', 'h10', 'h20']
+ c1list = ['h1bal[1]', 'h1bal[2]', 'h1bal[3]', 'h1bal[4]',
+ 'h1bal[5]', 'h2bal[1]', 'h2bal[2]', 'h2bal[3]', 'h2bal[4]',
+ 'h2bal[5]', 'F12con[0]', 'F12con[1]', 'F12con[2]',
+ 'F12con[3]', 'F12con[4]', 'F12con[5]', 'Focon[0]', 'Focon[1]',
+ 'Focon[2]', 'Focon[3]', 'Focon[4]', 'Focon[5]',
+ 'min_inflow[1]', 'min_inflow[2]', 'min_inflow[3]',
+ 'min_inflow[4]', 'min_inflow[5]', 'max_outflow[0]',
+ 'max_outflow[1]', 'max_outflow[2]', 'max_outflow[3]',
+ 'max_outflow[4]', 'max_outflow[5]', 'h10', 'h20']
+ c2list = ['egb.h1bal_1', 'egb.h1bal_2', 'egb.h1bal_3',
+ 'egb.h1bal_4', 'egb.h1bal_5', 'egb.h2bal_1', 'egb.h2bal_2',
+ 'egb.h2bal_3', 'egb.h2bal_4', 'egb.h2bal_5',
+ 'egb.output_constraints[F12_0]',
+ 'egb.output_constraints[F12_1]',
+ 'egb.output_constraints[F12_2]',
+ 'egb.output_constraints[F12_3]',
+ 'egb.output_constraints[F12_4]',
+ 'egb.output_constraints[F12_5]',
+ 'egb.output_constraints[Fo_0]',
+ 'egb.output_constraints[Fo_1]',
+ 'egb.output_constraints[Fo_2]',
+ 'egb.output_constraints[Fo_3]',
+ 'egb.output_constraints[Fo_4]',
+ 'egb.output_constraints[Fo_5]', 'min_inflow[1]',
+ 'min_inflow[2]', 'min_inflow[3]', 'min_inflow[4]',
+ 'min_inflow[5]', 'max_outflow[0]', 'max_outflow[1]',
+ 'max_outflow[2]', 'max_outflow[3]', 'max_outflow[4]',
+ 'max_outflow[5]', 'h10', 'h20']
c1_c2_map = dict(zip(c1list, c2list))
c1idx_c2idx_map = {i: mex_c_order.index(c1_c2_map[m_c_order[i]]) for i in range(len(m_c_order))}
diff --git a/pyomo/contrib/pynumero/interfaces/tests/test_external_grey_box_model.py b/pyomo/contrib/pynumero/interfaces/tests/test_external_grey_box_model.py
index c272393462b..0081a9a5115 100644
--- a/pyomo/contrib/pynumero/interfaces/tests/test_external_grey_box_model.py
+++ b/pyomo/contrib/pynumero/interfaces/tests/test_external_grey_box_model.py
@@ -21,511 +21,21 @@
from pyomo.contrib.pynumero.asl import AmplInterface
if not AmplInterface.available():
raise unittest.SkipTest(
- "Pynumero needs the ASL extension to run CyIpoptSolver tests")
+ "Pynumero needs the ASL extension to run cyipopt tests")
from pyomo.contrib.pynumero.algorithms.solvers.cyipopt_solver import (
- CyIpoptSolver, CyIpoptNLP, ipopt, ipopt_available,
+ ipopt, ipopt_available,
)
from ..external_grey_box import ExternalGreyBoxModel, ExternalGreyBoxBlock
from ..pyomo_nlp import PyomoGreyBoxNLP
from pyomo.contrib.pynumero.interfaces.tests.compare_utils import check_vectors_specific_order, check_sparse_matrix_specific_order
-
-# set of external models for testing
-# basic model is a simple pipe sequence with nonlinear pressure drop
-# Pin -> P1 -> P2 -> P3 -> Pout
-#
-# We will assume that we have an external model to compute
-# the pressure drop in this sequence of pipes, where the dP
-# is given by c*F^2
-#
-# There are several ways to format this.
-# Model 1: Use the "external model" to compute the output pressure
-# no equalities, 1 output
-# u = [Pin, c, F]
-# o = [Pout]
-# h_eq(u) = {empty}
-# h_o(u) = [Pin - 4*c*F^2]
-#
-# Model 2: Same as model 1, but treat Pout as an input to be converged by the optimizer
-# 1 equality, no outputs
-# u = [Pin, c, F, Pout]
-# o = {empty}
-# h_eq(u) = [Pout - (Pin - 4*c*F^2]
-# h_o(u) = {empty}
-#
-# Model 3: Use the "external model" to compute the output pressure and the pressure
-# at node 2 (e.g., maybe we have a measurement there we want to match)
-# no equalities, 2 outputs
-# u = [Pin, c, F]
-# o = [P2, Pout]
-# h_eq(u) = {empty}
-# h_o(u) = [Pin - 2*c*F^2]
-# [Pin - 4*c*F^2]
-#
-# Model 4: Same as model 2, but treat P2, and Pout as an input to be converged by the optimizer
-# 2 equality, no outputs
-# u = [Pin, c, F, P2, Pout]
-# o = {empty}
-# h_eq(u) = [P2 - (Pin - 2*c*F^2]
-# [Pout - (P2 - 2*c*F^2]
-# h_o(u) = {empty}
-
-# Model 4: Same as model 2, but treat P2 as an input to be converged by the solver
-# u = [Pin, c, F, P2]
-# o = [Pout]
-# h_eq(u) = P2 - (Pin-2*c*F^2)]
-# h_o(u) = [Pin - 4*c*F^2] (or could also be [P2 - 2*c*F^2])
-#
-# Model 5: treat all "internal" variables as "inputs", equality and output equations
-# u = [Pin, c, F, P1, P2, P3]
-# o = [Pout]
-# h_eq(u) = [
-# P1 - (Pin - c*F^2);
-# P2 - (P1 - c*F^2);
-# P3 - (P2 - c*F^2);
-# ]
-# h_o(u) = [P3 - c*F^2] (or could also be [Pin - 4*c*F^2] or [P1 - 3*c*F^2] or [P2 - 2*c*F^2])
-#
-# Model 6: treat all variables as "inputs", equality only, and no output equations
-# u = [Pin, c, F, P1, P2, P3, Pout]
-# o = {empty}
-# h_eq(u) = [
-# P1 - (Pin - c*F^2);
-# P2 - (P1 - c*F^2);
-# P3 - (P2 - c*F^2);
-# Pout = (P3 - c*F^2);
-# ]
-# h_o(u) = {empty}
-#
-class PressureDropSingleOutput(ExternalGreyBoxModel):
- def __init__(self):
- self._input_names = ['Pin', 'c', 'F']
- self._input_values = np.zeros(3, dtype=np.float64)
- self._output_names = ['Pout']
-
- def input_names(self):
- return self._input_names
-
- def equality_constraint_names(self):
- return []
-
- def output_names(self):
- return self._output_names
-
- def set_input_values(self, input_values):
- assert len(input_values) == 3
- np.copyto(self._input_values, input_values)
-
- def evaluate_outputs(self):
- Pin = self._input_values[0]
- c = self._input_values[1]
- F = self._input_values[2]
- Pout = Pin - 4*c*F**2
- return np.asarray([Pout], dtype=np.float64)
-
- def evaluate_jacobian_outputs(self):
- c = self._input_values[1]
- F = self._input_values[2]
- irow = np.asarray([0, 0, 0], dtype=np.int64)
- jcol = np.asarray([0, 1, 2], dtype=np.int64)
- nonzeros = np.asarray([1, -4*F**2, -4*c*2*F], dtype=np.float64)
- jac = spa.coo_matrix((nonzeros, (irow, jcol)), shape=(1,3))
- return jac
-
-class PressureDropSingleOutputWithHessian(PressureDropSingleOutput):
- def __init__(self):
- super(PressureDropSingleOutputWithHessian, self).__init__()
- self._output_con_mult_values = np.zeros(1, dtype=np.float64)
-
- def set_output_constraint_multipliers(self, output_con_multiplier_values):
- np.copyto(self._output_con_mult_values, output_con_multiplier_values)
-
- def evaluate_hessian_outputs(self):
- c = self._input_values[1]
- F = self._input_values[2]
- irow = np.asarray([2, 2], dtype=np.int64)
- jcol = np.asarray([1, 2], dtype=np.int64)
- data = self._output_con_mult_values[0]*np.asarray([-8*F, -8*c], dtype=np.float64)
- hess = spa.coo_matrix((data, (irow, jcol)), shape=(3,3))
- return hess
-
-class PressureDropSingleEquality(ExternalGreyBoxModel):
- # u = [Pin, c, F, Pout]
- # o = {empty}
- # h_eq(u) = [Pout - (Pin - 4*c*F^2]
- # h_o(u) = {empty}
- def __init__(self):
- self._input_names = ['Pin', 'c', 'F', 'Pout']
- self._input_values = np.zeros(4, dtype=np.float64)
- self._equality_constraint_names = ['pdrop']
-
- def input_names(self):
- return self._input_names
-
- def equality_constraint_names(self):
- return self._equality_constraint_names
-
- def set_input_values(self, input_values):
- assert len(input_values) == 4
- np.copyto(self._input_values, input_values)
-
- def evaluate_equality_constraints(self):
- Pin = self._input_values[0]
- c = self._input_values[1]
- F = self._input_values[2]
- Pout = self._input_values[3]
- return np.asarray([Pout - (Pin - 4*c*F**2)], dtype=np.float64)
-
- def evaluate_jacobian_equality_constraints(self):
- c = self._input_values[1]
- F = self._input_values[2]
- irow = np.asarray([0, 0, 0, 0], dtype=np.int64)
- jcol = np.asarray([0, 1, 2, 3], dtype=np.int64)
- nonzeros = np.asarray([-1, 4*F**2, 4*2*c*F, 1], dtype=np.float64)
- jac = spa.coo_matrix((nonzeros, (irow, jcol)), shape=(1,4))
- return jac
-
-class PressureDropSingleEqualityWithHessian(PressureDropSingleEquality):
- # u = [Pin, c, F, Pout]
- # o = {empty}
- # h_eq(u) = [Pout - (Pin - 4*c*F^2]
- # h_o(u) = {empty}
- def __init__(self):
- super(PressureDropSingleEqualityWithHessian, self).__init__()
- self._eq_con_mult_values = np.zeros(1, dtype=np.float64)
-
- def set_equality_constraint_multipliers(self, eq_con_multiplier_values):
- assert len(eq_con_multiplier_values) == 1
- np.copyto(self._eq_con_mult_values, eq_con_multiplier_values)
-
- def evaluate_hessian_equality_constraints(self):
- c = self._input_values[1]
- F = self._input_values[2]
- irow = np.asarray([2, 2], dtype=np.int64)
- jcol = np.asarray([1, 2], dtype=np.int64)
- nonzeros = self._eq_con_mult_values[0]*np.asarray([8*F, 8*c], dtype=np.float64)
- hess = spa.coo_matrix((nonzeros, (irow, jcol)), shape=(4,4))
- return hess
-
-class PressureDropTwoOutputs(ExternalGreyBoxModel):
- # u = [Pin, c, F]
- # o = [P2, Pout]
- # h_eq(u) = {empty}
- # h_o(u) = [Pin - 2*c*F^2]
- # [Pin - 4*c*F^2]
- def __init__(self):
- self._input_names = ['Pin', 'c', 'F']
- self._input_values = np.zeros(3, dtype=np.float64)
- self._output_names = ['P2', 'Pout']
-
- def input_names(self):
- return self._input_names
-
- def output_names(self):
- return self._output_names
-
- def set_input_values(self, input_values):
- assert len(input_values) == 3
- np.copyto(self._input_values, input_values)
-
- def evaluate_equality_constraints(self):
- raise NotImplementedError('This method should not be called for this model.')
-
- def evaluate_outputs(self):
- Pin = self._input_values[0]
- c = self._input_values[1]
- F = self._input_values[2]
- P2 = Pin - 2*c*F**2
- Pout = Pin - 4*c*F**2
- return np.asarray([P2, Pout], dtype=np.float64)
-
- def evaluate_jacobian_outputs(self):
- c = self._input_values[1]
- F = self._input_values[2]
- irow = np.asarray([0, 0, 0, 1, 1, 1], dtype=np.int64)
- jcol = np.asarray([0, 1, 2, 0, 1, 2], dtype=np.int64)
- nonzeros = np.asarray([1, -2*F**2, -2*c*2*F, 1, -4*F**2, -4*c*2*F], dtype=np.float64)
- jac = spa.coo_matrix((nonzeros, (irow, jcol)), shape=(2,3))
- return jac
-
-class PressureDropTwoOutputsWithHessian(PressureDropTwoOutputs):
- # u = [Pin, c, F]
- # o = [P2, Pout]
- # h_eq(u) = {empty}
- # h_o(u) = [Pin - 2*c*F^2]
- # [Pin - 4*c*F^2]
- def __init__(self):
- super(PressureDropTwoOutputsWithHessian,self).__init__()
- self._output_con_mult_values = np.zeros(2, dtype=np.float64)
-
- def set_output_constraint_multipliers(self, output_con_multiplier_values):
- np.copyto(self._output_con_mult_values, output_con_multiplier_values)
-
- def evaluate_hessian_outputs(self):
- c = self._input_values[1]
- F = self._input_values[2]
- y1 = self._output_con_mult_values[0]
- y2 = self._output_con_mult_values[1]
- irow = np.asarray([2, 2], dtype=np.int64)
- jcol = np.asarray([1, 2], dtype=np.int64)
- nonzeros = np.asarray([y1*(-4*F) + y2*(-8*F), y1*(-4*c)+y2*(-8*c)], dtype=np.float64)
- hess = spa.coo_matrix((nonzeros, (irow, jcol)), shape=(3,3))
- return hess
-
-class PressureDropTwoEqualities(ExternalGreyBoxModel):
- # u = [Pin, c, F, P2, Pout]
- # o = {empty}
- # h_eq(u) = [P2 - (Pin - 2*c*F^2]
- # [Pout - (P2 - 2*c*F^2]
- # h_o(u) = {empty}
- def __init__(self):
- self._input_names = ['Pin', 'c', 'F', 'P2', 'Pout']
- self._input_values = np.zeros(5, dtype=np.float64)
- self._equality_constraint_names = ['pdrop2', 'pdropout']
-
- def input_names(self):
- return self._input_names
-
- def equality_constraint_names(self):
- return self._equality_constraint_names
-
- def set_input_values(self, input_values):
- assert len(input_values) == 5
- np.copyto(self._input_values, input_values)
-
- def evaluate_equality_constraints(self):
- Pin = self._input_values[0]
- c = self._input_values[1]
- F = self._input_values[2]
- P2 = self._input_values[3]
- Pout = self._input_values[4]
- return np.asarray([P2 - (Pin - 2*c*F**2), Pout - (P2 - 2*c*F**2)], dtype=np.float64)
-
- def evaluate_jacobian_equality_constraints(self):
- c = self._input_values[1]
- F = self._input_values[2]
- irow = np.asarray([0, 0, 0, 0, 1, 1, 1, 1], dtype=np.int64)
- jcol = np.asarray([0, 1, 2, 3, 1, 2, 3, 4], dtype=np.int64)
- nonzeros = np.asarray([-1, 2*F**2, 2*2*c*F, 1, 2*F**2, 2*2*c*F, -1, 1], dtype=np.float64)
- jac = spa.coo_matrix((nonzeros, (irow, jcol)), shape=(2,5))
- return jac
-
-class PressureDropTwoEqualitiesWithHessian(PressureDropTwoEqualities):
- # u = [Pin, c, F, P2, Pout]
- # o = {empty}
- # h_eq(u) = [P2 - (Pin - 2*c*F^2]
- # [Pout - (P2 - 2*c*F^2]
- # h_o(u) = {empty}
- def __init__(self):
- super(PressureDropTwoEqualitiesWithHessian,self).__init__()
- self._eq_con_mult_values = np.zeros(2, dtype=np.float64)
-
- def set_equality_constraint_multipliers(self, eq_con_multiplier_values):
- assert len(eq_con_multiplier_values) == 2
- np.copyto(self._eq_con_mult_values, eq_con_multiplier_values)
-
- def evaluate_hessian_equality_constraints(self):
- c = self._input_values[1]
- F = self._input_values[2]
- y1 = self._eq_con_mult_values[0]
- y2 = self._eq_con_mult_values[1]
-
- irow = np.asarray([2, 2], dtype=np.int64)
- jcol = np.asarray([1, 2], dtype=np.int64)
- nonzeros = np.asarray([y1*(4*F) + y2*(4*F), y1*(4*c)+y2*(4*c)], dtype=np.float64)
- hess = spa.coo_matrix((nonzeros, (irow, jcol)), shape=(5,5))
- return hess
-
-class PressureDropTwoEqualitiesTwoOutputs(ExternalGreyBoxModel):
- # u = [Pin, c, F, P1, P3]
- # o = {P2, Pout}
- # h_eq(u) = [P1 - (Pin - c*F^2]
- # [P3 - (P1 - 2*c*F^2]
- # h_o(u) = [P1 - c*F^2]
- # [Pin - 4*c*F^2]
- def __init__(self):
- self._input_names = ['Pin', 'c', 'F', 'P1', 'P3']
- self._input_values = np.zeros(5, dtype=np.float64)
- self._equality_constraint_names = ['pdrop1', 'pdrop3']
- self._output_names = ['P2', 'Pout']
-
- def input_names(self):
- return self._input_names
-
- def equality_constraint_names(self):
- return self._equality_constraint_names
-
- def output_names(self):
- return self._output_names
-
- def set_input_values(self, input_values):
- assert len(input_values) == 5
- np.copyto(self._input_values, input_values)
-
- def evaluate_equality_constraints(self):
- Pin = self._input_values[0]
- c = self._input_values[1]
- F = self._input_values[2]
- P1 = self._input_values[3]
- P3 = self._input_values[4]
- return np.asarray([P1 - (Pin - c*F**2), P3 - (P1 - 2*c*F**2)], dtype=np.float64)
-
- def evaluate_outputs(self):
- Pin = self._input_values[0]
- c = self._input_values[1]
- F = self._input_values[2]
- P1 = self._input_values[3]
- return np.asarray([P1 - c*F**2, Pin - 4*c*F**2], dtype=np.float64)
-
- def evaluate_jacobian_equality_constraints(self):
- c = self._input_values[1]
- F = self._input_values[2]
- irow = np.asarray([0, 0, 0, 0, 1, 1, 1, 1], dtype=np.int64)
- jcol = np.asarray([0, 1, 2, 3, 1, 2, 3, 4], dtype=np.int64)
- nonzeros = np.asarray([-1, F**2, 2*c*F, 1, 2*F**2, 4*c*F, -1, 1], dtype=np.float64)
- jac = spa.coo_matrix((nonzeros, (irow, jcol)), shape=(2,5))
- return jac
-
- def evaluate_jacobian_outputs(self):
- c = self._input_values[1]
- F = self._input_values[2]
- irow = np.asarray([0, 0, 0, 1, 1, 1], dtype=np.int64)
- jcol = np.asarray([1, 2, 3, 0, 1, 2], dtype=np.int64)
- nonzeros = np.asarray([-F**2, -c*2*F, 1, 1, -4*F**2, -4*c*2*F], dtype=np.float64)
- jac = spa.coo_matrix((nonzeros, (irow, jcol)), shape=(2,5))
- return jac
-
-
-class PressureDropTwoEqualitiesTwoOutputsWithHessian(PressureDropTwoEqualitiesTwoOutputs):
- # u = [Pin, c, F, P1, P3]
- # o = {P2, Pout}
- # h_eq(u) = [P1 - (Pin - c*F^2]
- # [P3 - (P1 - 2*c*F^2]
- # h_o(u) = [P1 - c*F^2]
- # [Pin - 4*c*F^2]
- def __init__(self):
- super(PressureDropTwoEqualitiesTwoOutputsWithHessian,self).__init__()
- self._eq_con_mult_values = np.zeros(2, dtype=np.float64)
- self._output_con_mult_values = np.zeros(2, dtype=np.float64)
-
- def set_equality_constraint_multipliers(self, eq_con_multiplier_values):
- assert len(eq_con_multiplier_values) == 2
- np.copyto(self._eq_con_mult_values, eq_con_multiplier_values)
-
- def set_output_constraint_multipliers(self, output_con_multiplier_values):
- assert len(output_con_multiplier_values) == 2
- np.copyto(self._output_con_mult_values, output_con_multiplier_values)
-
- def evaluate_hessian_equality_constraints(self):
- c = self._input_values[1]
- F = self._input_values[2]
- y1 = self._eq_con_mult_values[0]
- y2 = self._eq_con_mult_values[1]
- irow = np.asarray([2, 2], dtype=np.int64)
- jcol = np.asarray([1, 2], dtype=np.int64)
- nonzeros = np.asarray([y1*(2*F) + y2*(4*F), y1*(2*c)+y2*(4*c)], dtype=np.float64)
- hess = spa.coo_matrix((nonzeros, (irow, jcol)), shape=(5,5))
- return hess
-
- def evaluate_hessian_outputs(self):
- c = self._input_values[1]
- F = self._input_values[2]
- y1 = self._output_con_mult_values[0]
- y2 = self._output_con_mult_values[1]
- irow = np.asarray([2, 2], dtype=np.int64)
- jcol = np.asarray([1, 2], dtype=np.int64)
- nonzeros = np.asarray([y1*(-2*F) + y2*(-8*F), y1*(-2*c)+y2*(-8*c)], dtype=np.float64)
- hess = spa.coo_matrix((nonzeros, (irow, jcol)), shape=(3,3))
- return hess
-
-"""
-class PressureDropTwoEqualitiesTwoOutputsNoHessian(ExternalGreyBoxModel):
- # u = [Pin, c, F, P1, P3]
- # o = {P2, Pout}
- # h_eq(u) = [P1 - (Pin - c*F^2]
- # [P3 - (P1 - 2*c*F^2]
- # h_o(u) = [P1 - c*F^2]
- # [Pin - 4*c*F^2]
- def __init__(self):
- self._input_names = ['Pin', 'c', 'F', 'P1', 'P3']
- self._input_values = np.zeros(5, dtype=np.float64)
- self._equality_constraint_names = ['pdrop1', 'pdrop3']
- self._output_names = ['P2', 'Pout']
-
- def model_capabilities(self):
- capabilities = self.ModelCapabilities()
- capabilities.supports_jacobian_equality_constraints = True
- capabilities.supports_jacobian_outputs = True
- return capabilities
-
- def input_names(self):
- return self._input_names
-
- def equality_constraint_names(self):
- return self._equality_constraint_names
-
- def output_names(self):
- return self._output_names
-
- def set_input_values(self, input_values):
- assert len(input_values) == 5
- np.copyto(self._input_values, input_values)
-
- def evaluate_equality_constraints(self):
- Pin = self._input_values[0]
- c = self._input_values[1]
- F = self._input_values[2]
- P1 = self._input_values[3]
- P3 = self._input_values[4]
- return np.asarray([P1 - (Pin - c*F**2), P3 - (P1 - 2*c*F**2)], dtype=np.float64)
-
- def evaluate_outputs(self):
- Pin = self._input_values[0]
- c = self._input_values[1]
- F = self._input_values[2]
- P1 = self._input_values[3]
- return np.asarray([P1 - c*F**2, Pin - 4*c*F**2], dtype=np.float64)
-
- def evaluate_jacobian_equality_constraints(self):
- c = self._input_values[1]
- F = self._input_values[2]
- irow = np.asarray([0, 0, 0, 0, 1, 1, 1, 1], dtype=np.int64)
- jcol = np.asarray([0, 1, 2, 3, 1, 2, 3, 4], dtype=np.int64)
- nonzeros = np.asarray([-1, F**2, 2*c*F, 1, 2*F**2, 4*c*F, -1, 1], dtype=np.float64)
- jac = spa.coo_matrix((nonzeros, (irow, jcol)), shape=(2,5))
- return jac
-
- def evaluate_jacobian_outputs(self):
- c = self._input_values[1]
- F = self._input_values[2]
- irow = np.asarray([0, 0, 0, 1, 1, 1], dtype=np.int64)
- jcol = np.asarray([1, 2, 3, 0, 1, 2], dtype=np.int64)
- nonzeros = np.asarray([-F**2, -c*2*F, 1, 1, -4*F**2, -4*c*2*F], dtype=np.float64)
- jac = spa.coo_matrix((nonzeros, (irow, jcol)), shape=(2,5))
- return jac
-"""
-
-class PressureDropTwoEqualitiesTwoOutputsScaleBoth(PressureDropTwoEqualitiesTwoOutputs):
- def get_equality_constraint_scaling_factors(self):
- return np.asarray([3.1, 3.2], dtype=np.float64)
-
- def get_output_constraint_scaling_factors(self):
- return np.asarray([4.1, 4.2])
-
-class PressureDropTwoEqualitiesTwoOutputsScaleEqualities(PressureDropTwoEqualitiesTwoOutputs):
- def get_equality_constraint_scaling_factors(self):
- return np.asarray([3.1, 3.2], dtype=np.float64)
-
-class PressureDropTwoEqualitiesTwoOutputsScaleOutputs(PressureDropTwoEqualitiesTwoOutputs):
- def get_output_constraint_scaling_factors(self):
- return np.asarray([4.1, 4.2])
-
+import pyomo.contrib.pynumero.interfaces.tests.external_grey_box_models as ex_models
class TestExternalGreyBoxModel(unittest.TestCase):
def test_pressure_drop_single_output(self):
- egbm = PressureDropSingleOutput()
+ egbm = ex_models.PressureDropSingleOutput()
input_names = egbm.input_names()
self.assertEqual(input_names, ['Pin', 'c', 'F'])
eq_con_names = egbm.equality_constraint_names()
@@ -560,7 +70,7 @@ def test_pressure_drop_single_output(self):
outputs_hess = egbm.evaluate_hessian_outputs()
def test_pressure_drop_single_output_with_hessian(self):
- egbm = PressureDropSingleOutputWithHessian()
+ egbm = ex_models.PressureDropSingleOutputWithHessian()
input_names = egbm.input_names()
self.assertEqual(input_names, ['Pin', 'c', 'F'])
eq_con_names = egbm.equality_constraint_names()
@@ -596,7 +106,7 @@ def test_pressure_drop_single_output_with_hessian(self):
self.assertTrue(np.array_equal(outputs_hess.data, np.asarray([5*(-8*3), 5*(-8*2)], dtype=np.int64)))
def test_pressure_drop_single_equality(self):
- egbm = PressureDropSingleEquality()
+ egbm = ex_models.PressureDropSingleEquality()
input_names = egbm.input_names()
self.assertEqual(input_names, ['Pin', 'c', 'F', 'Pout'])
eq_con_names = egbm.equality_constraint_names()
@@ -629,7 +139,7 @@ def test_pressure_drop_single_equality(self):
outputs_hess = egbm.evaluate_hessian_outputs()
def test_pressure_drop_single_equality_with_hessian(self):
- egbm = PressureDropSingleEqualityWithHessian()
+ egbm = ex_models.PressureDropSingleEqualityWithHessian()
input_names = egbm.input_names()
self.assertEqual(input_names, ['Pin', 'c', 'F', 'Pout'])
eq_con_names = egbm.equality_constraint_names()
@@ -664,7 +174,7 @@ def test_pressure_drop_single_equality_with_hessian(self):
self.assertTrue(np.array_equal(eq_hess.data, np.asarray([5*(8*3), 5*(8*2)], dtype=np.float64)))
def test_pressure_drop_two_outputs(self):
- egbm = PressureDropTwoOutputs()
+ egbm = ex_models.PressureDropTwoOutputs()
input_names = egbm.input_names()
self.assertEqual(input_names, ['Pin', 'c', 'F'])
eq_con_names = egbm.equality_constraint_names()
@@ -706,7 +216,7 @@ def test_pressure_drop_two_outputs(self):
hess_outputs = egbm.evaluate_hessian_outputs()
def test_pressure_drop_two_outputs_with_hessian(self):
- egbm = PressureDropTwoOutputsWithHessian()
+ egbm = ex_models.PressureDropTwoOutputsWithHessian()
input_names = egbm.input_names()
self.assertEqual(input_names, ['Pin', 'c', 'F'])
eq_con_names = egbm.equality_constraint_names()
@@ -750,7 +260,7 @@ def test_pressure_drop_two_outputs_with_hessian(self):
self.assertTrue(np.array_equal(hess.data, np.asarray([-156.0, -104.0], dtype=np.float64)))
def test_pressure_drop_two_equalities(self):
- egbm = PressureDropTwoEqualities()
+ egbm = ex_models.PressureDropTwoEqualities()
input_names = egbm.input_names()
self.assertEqual(input_names, ['Pin', 'c', 'F', 'P2', 'Pout'])
eq_con_names = egbm.equality_constraint_names()
@@ -790,7 +300,7 @@ def test_pressure_drop_two_equalities(self):
hess = egbm.evaluate_hessian_equality_constraints()
def test_pressure_drop_two_equalities_with_hessian(self):
- egbm = PressureDropTwoEqualitiesWithHessian()
+ egbm = ex_models.PressureDropTwoEqualitiesWithHessian()
input_names = egbm.input_names()
self.assertEqual(input_names, ['Pin', 'c', 'F', 'P2', 'Pout'])
eq_con_names = egbm.equality_constraint_names()
@@ -839,7 +349,7 @@ def test_pressure_drop_two_equalities_two_outputs(self):
# [P3 - (Pin - 2*c*F^2]
# h_o(u) = [P1 - c*F^2]
# [Pin - 4*c*F^2]
- egbm = PressureDropTwoEqualitiesTwoOutputs()
+ egbm = ex_models.PressureDropTwoEqualitiesTwoOutputs()
input_names = egbm.input_names()
self.assertEqual(input_names, ['Pin', 'c', 'F', 'P1', 'P3'])
eq_con_names = egbm.equality_constraint_names()
@@ -878,7 +388,7 @@ def test_pressure_drop_two_equalities_two_outputs_with_hessian(self):
# [P3 - (Pin - 2*c*F^2]
# h_o(u) = [P1 - c*F^2]
# [Pin - 4*c*F^2]
- egbm = PressureDropTwoEqualitiesTwoOutputsWithHessian()
+ egbm = ex_models.PressureDropTwoEqualitiesTwoOutputsWithHessian()
input_names = egbm.input_names()
self.assertEqual(input_names, ['Pin', 'c', 'F', 'P1', 'P3'])
eq_con_names = egbm.equality_constraint_names()
@@ -922,7 +432,7 @@ def test_pressure_drop_two_equalities_two_outputs_no_hessian(self):
# [P3 - (Pin - 2*c*F^2]
# h_o(u) = [P1 - c*F^2]
# [Pin - 4*c*F^2]
- egbm = PressureDropTwoEqualitiesTwoOutputsNoHessian()
+ egbm = ex_models.PressureDropTwoEqualitiesTwoOutputsNoHessian()
input_names = egbm.input_names()
self.assertEqual(input_names, ['Pin', 'c', 'F', 'P1', 'P3'])
eq_con_names = egbm.equality_constraint_names()
@@ -961,11 +471,10 @@ def test_pressure_drop_two_equalities_two_outputs_no_hessian(self):
# TODO: make this work even if there is only external and no variables anywhere in pyomo part
class TestPyomoGreyBoxNLP(unittest.TestCase):
- @unittest.skip("It looks like ASL exits when there are no variables")
def test_error_no_variables(self):
m = pyo.ConcreteModel()
m.egb = ExternalGreyBoxBlock()
- m.egb.set_external_model(PressureDropSingleOutput())
+ m.egb.set_external_model(ex_models.PressureDropSingleOutput())
m.obj = pyo.Objective(expr=1)
with self.assertRaises(ValueError):
pyomo_nlp = PyomoGreyBoxNLP(m)
@@ -973,7 +482,7 @@ def test_error_no_variables(self):
def test_error_fixed_inputs_outputs(self):
m = pyo.ConcreteModel()
m.egb = ExternalGreyBoxBlock()
- m.egb.set_external_model(PressureDropSingleOutput())
+ m.egb.set_external_model(ex_models.PressureDropSingleOutput())
m.egb.inputs['Pin'].fix(100)
m.obj = pyo.Objective(expr=(m.egb.outputs['Pout']-20)**2)
with self.assertRaises(NotImplementedError):
@@ -981,15 +490,15 @@ def test_error_fixed_inputs_outputs(self):
m = pyo.ConcreteModel()
m.egb = ExternalGreyBoxBlock()
- m.egb.set_external_model(PressureDropTwoOutputs())
+ m.egb.set_external_model(ex_models.PressureDropTwoOutputs())
m.egb.outputs['P2'].fix(50)
m.obj = pyo.Objective(expr=(m.egb.outputs['Pout']-20)**2)
with self.assertRaises(NotImplementedError):
pyomo_nlp = PyomoGreyBoxNLP(m)
def test_pressure_drop_single_output(self):
- self._test_pressure_drop_single_output(PressureDropSingleOutput(),False)
- self._test_pressure_drop_single_output(PressureDropSingleOutputWithHessian(),True)
+ self._test_pressure_drop_single_output(ex_models.PressureDropSingleOutput(),False)
+ self._test_pressure_drop_single_output(ex_models.PressureDropSingleOutputWithHessian(),True)
def _test_pressure_drop_single_output(self, ex_model, hessian_support):
m = pyo.ConcreteModel()
@@ -1100,8 +609,8 @@ def _test_pressure_drop_single_output(self, ex_model, hessian_support):
h = pyomo_nlp.evaluate_hessian_lag()
def test_pressure_drop_single_equality(self):
- self._test_pressure_drop_single_equality(PressureDropSingleEquality(), False)
- self._test_pressure_drop_single_equality(PressureDropSingleEqualityWithHessian(), True)
+ self._test_pressure_drop_single_equality(ex_models.PressureDropSingleEquality(), False)
+ self._test_pressure_drop_single_equality(ex_models.PressureDropSingleEqualityWithHessian(), True)
def _test_pressure_drop_single_equality(self, ex_model, hessian_support):
m = pyo.ConcreteModel()
@@ -1210,8 +719,8 @@ def _test_pressure_drop_single_equality(self, ex_model, hessian_support):
h = pyomo_nlp.evaluate_hessian_lag()
def test_pressure_drop_two_outputs(self):
- self._test_pressure_drop_two_outputs(PressureDropTwoOutputs(), False)
- self._test_pressure_drop_two_outputs(PressureDropTwoOutputsWithHessian(), True)
+ self._test_pressure_drop_two_outputs(ex_models.PressureDropTwoOutputs(), False)
+ self._test_pressure_drop_two_outputs(ex_models.PressureDropTwoOutputsWithHessian(), True)
def _test_pressure_drop_two_outputs(self, ex_model, hessian_support):
m = pyo.ConcreteModel()
@@ -1323,8 +832,8 @@ def _test_pressure_drop_two_outputs(self, ex_model, hessian_support):
h = pyomo_nlp.evaluate_hessian_lag()
def test_pressure_drop_two_equalities(self):
- self._test_pressure_drop_two_equalities(PressureDropTwoEqualities(), False)
- self._test_pressure_drop_two_equalities(PressureDropTwoEqualitiesWithHessian(), True)
+ self._test_pressure_drop_two_equalities(ex_models.PressureDropTwoEqualities(), False)
+ self._test_pressure_drop_two_equalities(ex_models.PressureDropTwoEqualitiesWithHessian(), True)
def _test_pressure_drop_two_equalities(self, ex_model, hessian_support):
m = pyo.ConcreteModel()
@@ -1436,8 +945,8 @@ def _test_pressure_drop_two_equalities(self, ex_model, hessian_support):
h = pyomo_nlp.evaluate_hessian_lag()
def test_pressure_drop_two_equalities_two_outputs(self):
- self._test_pressure_drop_two_equalities_two_outputs(PressureDropTwoEqualitiesTwoOutputs(), False)
- self._test_pressure_drop_two_equalities_two_outputs(PressureDropTwoEqualitiesTwoOutputsWithHessian(), True)
+ self._test_pressure_drop_two_equalities_two_outputs(ex_models.PressureDropTwoEqualitiesTwoOutputs(), False)
+ self._test_pressure_drop_two_equalities_two_outputs(ex_models.PressureDropTwoEqualitiesTwoOutputsWithHessian(), True)
def _test_pressure_drop_two_equalities_two_outputs(self, ex_model, hessian_support):
m = pyo.ConcreteModel()
@@ -1568,8 +1077,8 @@ def _test_pressure_drop_two_equalities_two_outputs(self, ex_model, hessian_suppo
h = pyomo_nlp.evaluate_hessian_lag()
def test_external_additional_constraints_vars(self):
- self._test_external_additional_constraints_vars(PressureDropTwoEqualitiesTwoOutputs(), False)
- self._test_external_additional_constraints_vars(PressureDropTwoEqualitiesTwoOutputsWithHessian(), True)
+ self._test_external_additional_constraints_vars(ex_models.PressureDropTwoEqualitiesTwoOutputs(), False)
+ self._test_external_additional_constraints_vars(ex_models.PressureDropTwoEqualitiesTwoOutputsWithHessian(), True)
def _test_external_additional_constraints_vars(self, ex_model, hessian_support):
m = pyo.ConcreteModel()
@@ -1710,8 +1219,8 @@ def _test_external_additional_constraints_vars(self, ex_model, hessian_support):
@unittest.skipIf(not ipopt_available, "CyIpopt needed to run tests with solve")
def test_external_greybox_solve(self):
- self._test_external_greybox_solve(PressureDropTwoEqualitiesTwoOutputs(), False)
- self._test_external_greybox_solve(PressureDropTwoEqualitiesTwoOutputsWithHessian(), True)
+ self._test_external_greybox_solve(ex_models.PressureDropTwoEqualitiesTwoOutputs(), False)
+ self._test_external_greybox_solve(ex_models.PressureDropTwoEqualitiesTwoOutputsWithHessian(), True)
def _test_external_greybox_solve(self, ex_model, hessian_support):
m = pyo.ConcreteModel()
@@ -1743,17 +1252,12 @@ def _test_external_greybox_solve(self, ex_model, hessian_support):
m.egb.outputs['Pout'].setlb(10)
m.egb.outputs['Pout'].setub(70)
m.obj = pyo.Objective(expr=(m.egb.outputs['Pout']-20)**2 + (m.egb.inputs['F']-3)**2)
- pyomo_nlp = PyomoGreyBoxNLP(m)
- if hessian_support:
- options = {}
- else:
- options = {'hessian_approximation':'limited-memory'}
- cyipopt_problem = CyIpoptNLP(pyomo_nlp)
- solver = CyIpoptSolver(cyipopt_problem, options)
- x, info = solver.solve(tee=False)
- pyomo_nlp.set_primals(x)
- pyomo_nlp.load_state_into_pyomo()
+ solver = pyo.SolverFactory('cyipopt')
+
+ if not hessian_support:
+ solver.config.options = {'hessian_approximation':'limited-memory'}
+ status = solver.solve(m, tee=False)
self.assertAlmostEqual(pyo.value(m.egb.inputs['F']), 3.0, places=3)
self.assertAlmostEqual(pyo.value(m.mu), 1.63542e-6, places=3)
@@ -1797,7 +1301,7 @@ def create_model_two_equalities_two_outputs(self, external_model):
return m
def test_scaling_all_missing(self):
- m = self.create_model_two_equalities_two_outputs(PressureDropTwoEqualitiesTwoOutputs())
+ m = self.create_model_two_equalities_two_outputs(ex_models.PressureDropTwoEqualitiesTwoOutputs())
m.obj = pyo.Objective(expr=(m.egb.outputs['Pout']-20)**2)
pyomo_nlp = PyomoGreyBoxNLP(m)
fs = pyomo_nlp.get_obj_scaling()
@@ -1808,7 +1312,7 @@ def test_scaling_all_missing(self):
self.assertIsNone(cs)
def test_scaling_pyomo_model_only(self):
- m = self.create_model_two_equalities_two_outputs(PressureDropTwoEqualitiesTwoOutputs())
+ m = self.create_model_two_equalities_two_outputs(ex_models.PressureDropTwoEqualitiesTwoOutputs())
m.obj = pyo.Objective(expr=(m.egb.outputs['Pout']-20)**2)
m.scaling_factor = pyo.Suffix(direction=pyo.Suffix.EXPORT)
#m.scaling_factor[m.obj] = 0.1 # scale the objective
@@ -1845,7 +1349,7 @@ def test_scaling_pyomo_model_only(self):
check_vectors_specific_order(self, cs, c_order, comparison_cs, comparison_c_order)
def test_scaling_greybox_only(self):
- m = self.create_model_two_equalities_two_outputs(PressureDropTwoEqualitiesTwoOutputsScaleBoth())
+ m = self.create_model_two_equalities_two_outputs(ex_models.PressureDropTwoEqualitiesTwoOutputsScaleBoth())
m.obj = pyo.Objective(expr=(m.egb.outputs['Pout']-20)**2)
pyomo_nlp = PyomoGreyBoxNLP(m)
@@ -1868,14 +1372,14 @@ def test_scaling_greybox_only(self):
comparison_cs = np.asarray([3.1, 3.2, 4.1, 4.2, 1, 1], dtype=np.float64)
check_vectors_specific_order(self, cs, c_order, comparison_cs, comparison_c_order)
- m = self.create_model_two_equalities_two_outputs(PressureDropTwoEqualitiesTwoOutputsScaleEqualities())
+ m = self.create_model_two_equalities_two_outputs(ex_models.PressureDropTwoEqualitiesTwoOutputsScaleEqualities())
m.obj = pyo.Objective(expr=(m.egb.outputs['Pout']-20)**2)
pyomo_nlp = PyomoGreyBoxNLP(m)
cs = pyomo_nlp.get_constraints_scaling()
comparison_cs = np.asarray([3.1, 3.2, 1, 1, 1, 1], dtype=np.float64)
check_vectors_specific_order(self, cs, c_order, comparison_cs, comparison_c_order)
- m = self.create_model_two_equalities_two_outputs(PressureDropTwoEqualitiesTwoOutputsScaleOutputs())
+ m = self.create_model_two_equalities_two_outputs(ex_models.PressureDropTwoEqualitiesTwoOutputsScaleOutputs())
m.obj = pyo.Objective(expr=(m.egb.outputs['Pout']-20)**2)
pyomo_nlp = PyomoGreyBoxNLP(m)
cs = pyomo_nlp.get_constraints_scaling()
@@ -1883,7 +1387,7 @@ def test_scaling_greybox_only(self):
check_vectors_specific_order(self, cs, c_order, comparison_cs, comparison_c_order)
def test_scaling_pyomo_model_and_greybox(self):
- m = self.create_model_two_equalities_two_outputs(PressureDropTwoEqualitiesTwoOutputsScaleBoth())
+ m = self.create_model_two_equalities_two_outputs(ex_models.PressureDropTwoEqualitiesTwoOutputsScaleBoth())
m.obj = pyo.Objective(expr=(m.egb.outputs['Pout']-20)**2)
m.scaling_factor = pyo.Suffix(direction=pyo.Suffix.EXPORT)
#m.scaling_factor[m.obj] = 0.1 # scale the objective
@@ -1924,7 +1428,7 @@ def test_external_greybox_solve_scaling(self):
m = pyo.ConcreteModel()
m.mu = pyo.Var(bounds=(0,None), initialize=1)
m.egb = ExternalGreyBoxBlock()
- m.egb.set_external_model(PressureDropTwoEqualitiesTwoOutputsScaleBoth())
+ m.egb.set_external_model(ex_models.PressureDropTwoEqualitiesTwoOutputsScaleBoth())
m.ccon = pyo.Constraint(expr = m.egb.inputs['c'] == 128/(3.14*1e-4)*m.mu*m.egb.inputs['F'])
m.pcon = pyo.Constraint(expr = m.egb.inputs['Pin'] - m.egb.outputs['Pout'] <= 72)
m.pincon = pyo.Constraint(expr = m.egb.inputs['Pin'] == 100.0)
@@ -1962,16 +1466,14 @@ def test_external_greybox_solve_scaling(self):
m.scaling_factor[m.egb.outputs['Pout']] = 1.7 # scale the variable
m.scaling_factor[m.mu] = 1.9
m.scaling_factor[m.pincon] = 2.2
- pyomo_nlp = PyomoGreyBoxNLP(m)
- options={'hessian_approximation':'limited-memory',
- 'nlp_scaling_method': 'user-scaling',
- 'output_file': '_cyipopt-external-greybox-scaling.log',
- 'file_print_level':10,
- 'max_iter': 0}
- cyipopt_problem = CyIpoptNLP(pyomo_nlp)
- solver = CyIpoptSolver(cyipopt_problem, options)
- x, info = solver.solve(tee=False)
+ solver = pyo.SolverFactory('cyipopt')
+ solver.config.options = {'hessian_approximation':'limited-memory',
+ 'nlp_scaling_method': 'user-scaling',
+ 'output_file': '_cyipopt-external-greybox-scaling.log',
+ 'file_print_level':10,
+ 'max_iter': 0}
+ status = solver.solve(m, tee=False)
with open('_cyipopt-external-greybox-scaling.log', 'r') as fd:
solver_trace = fd.read()
@@ -1987,13 +1489,13 @@ def test_external_greybox_solve_scaling(self):
# c order: ['ccon', 'pcon', 'pincon', 'egb.pdrop1', 'egb.pdrop3', 'egb.P2_con', 'egb.Pout_con']
self.assertIn('DenseVector "x scaling vector" with 8 elements:', solver_trace)
self.assertIn('x scaling vector[ 1]= 1.3000000000000000e+00', solver_trace) # F
- self.assertIn('x scaling vector[ 2]= 1.8999999999999999e+00', solver_trace) # mu
- self.assertIn('x scaling vector[ 3]= 1.7000000000000000e+00', solver_trace) # Pout
+ self.assertIn('x scaling vector[ 8]= 1.8999999999999999e+00', solver_trace) # mu
+ self.assertIn('x scaling vector[ 7]= 1.7000000000000000e+00', solver_trace) # Pout
self.assertIn('x scaling vector[ 4]= 1.1000000000000001e+00', solver_trace) # Pin
self.assertIn('x scaling vector[ 5]= 1.2000000000000000e+00', solver_trace) # c
- self.assertIn('x scaling vector[ 6]= 1.0000000000000000e+00', solver_trace) # P1
- self.assertIn('x scaling vector[ 7]= 1.5000000000000000e+00', solver_trace) # P3
- self.assertIn('x scaling vector[ 8]= 1.6000000000000001e+00', solver_trace) # P2
+ self.assertIn('x scaling vector[ 2]= 1.0000000000000000e+00', solver_trace) # P1
+ self.assertIn('x scaling vector[ 3]= 1.5000000000000000e+00', solver_trace) # P3
+ self.assertIn('x scaling vector[ 6]= 1.6000000000000001e+00', solver_trace) # P2
self.assertIn('DenseVector "c scaling vector" with 6 elements:', solver_trace)
self.assertIn('c scaling vector[ 1]= 1.0000000000000000e+00', solver_trace) # ccon
self.assertIn('c scaling vector[ 2]= 2.2000000000000002e+00', solver_trace) # pincon
diff --git a/pyomo/contrib/pynumero/interfaces/tests/test_nlp_projections.py b/pyomo/contrib/pynumero/interfaces/tests/test_nlp_projections.py
new file mode 100644
index 00000000000..6334d8fb661
--- /dev/null
+++ b/pyomo/contrib/pynumero/interfaces/tests/test_nlp_projections.py
@@ -0,0 +1,195 @@
+# ___________________________________________________________________________
+#
+# Pyomo: Python Optimization Modeling Objects
+# Copyright 2017 National Technology and Engineering Solutions of Sandia, LLC
+# Under the terms of Contract DE-NA0003525 with National Technology and
+# Engineering Solutions of Sandia, LLC, the U.S. Government retains certain
+# rights in this software.
+# This software is distributed under the 3-clause BSD License.
+# ___________________________________________________________________________
+
+import pyutilib.th as unittest
+import os
+
+from pyomo.contrib.pynumero.dependencies import (
+ numpy as np, numpy_available, scipy_available
+)
+if not (numpy_available and scipy_available):
+ raise unittest.SkipTest("Pynumero needs scipy and numpy to run NLP tests")
+
+from pyomo.contrib.pynumero.asl import AmplInterface
+if not AmplInterface.available():
+ raise unittest.SkipTest(
+ "Pynumero needs the ASL extension to run NLP tests")
+
+import pyomo.environ as pyo
+from pyomo.contrib.pynumero.interfaces.pyomo_nlp import PyomoNLP
+from pyomo.contrib.pynumero.interfaces.nlp_projections import RenamedNLP, ProjectedNLP
+
+def create_pyomo_model():
+ m = pyo.ConcreteModel()
+ m.x = pyo.Var(range(3), bounds=(-10,10), initialize={0:1.0, 1:2.0, 2:4.0})
+
+ m.obj = pyo.Objective(expr=m.x[0]**2 + m.x[0]*m.x[1] + m.x[0]*m.x[2] + m.x[2]**2)
+
+ m.con1 = pyo.Constraint(expr=m.x[0]*m.x[1] + m.x[0]*m.x[2] == 4)
+ m.con2 = pyo.Constraint(expr=m.x[0] + m.x[2] == 4)
+
+ return m
+
+class TestRenamedNLP(unittest.TestCase):
+ def test_rename(self):
+ m = create_pyomo_model()
+ nlp = PyomoNLP(m)
+ expected_names = ['x[0]', 'x[1]', 'x[2]']
+ self.assertEqual(nlp.primals_names(), expected_names)
+ renamed_nlp = RenamedNLP(nlp, {'x[0]': 'y[0]', 'x[1]':'y[1]', 'x[2]':'y[2]'})
+ expected_names = ['y[0]', 'y[1]', 'y[2]']
+
+class TestProjectedNLP(unittest.TestCase):
+ def test_projected(self):
+ m = create_pyomo_model()
+ nlp = PyomoNLP(m)
+ projected_nlp = ProjectedNLP(nlp, ['x[0]', 'x[1]', 'x[2]'])
+ expected_names = ['x[0]', 'x[1]', 'x[2]']
+ self.assertEqual(projected_nlp.primals_names(), expected_names)
+ self.assertTrue(np.array_equal(projected_nlp.get_primals(),
+ np.asarray([1.0, 2.0, 4.0])))
+ self.assertTrue(np.array_equal(projected_nlp.evaluate_grad_objective(),
+ np.asarray([8.0, 1.0, 9.0])))
+ self.assertEqual(projected_nlp.nnz_jacobian(), 5)
+ self.assertEqual(projected_nlp.nnz_hessian_lag(), 6)
+
+ J = projected_nlp.evaluate_jacobian()
+ self.assertEqual(len(J.data), 5)
+ denseJ = J.todense()
+ expected_jac = np.asarray([[6.0, 1.0, 1.0],[1.0, 0.0, 1.0]])
+ self.assertTrue(np.array_equal(denseJ, expected_jac))
+
+ # test the use of "out"
+ J = 0.0*J
+ projected_nlp.evaluate_jacobian(out=J)
+ denseJ = J.todense()
+ self.assertTrue(np.array_equal(denseJ, expected_jac))
+
+ H = projected_nlp.evaluate_hessian_lag()
+ self.assertEqual(len(H.data), 6)
+ expectedH = np.asarray([[2.0, 1.0, 1.0],[1.0, 0.0, 0.0], [1.0, 0.0, 2.0]])
+ denseH = H.todense()
+ self.assertTrue(np.array_equal(denseH, expectedH))
+
+ # test the use of "out"
+ H = 0.0*H
+ projected_nlp.evaluate_hessian_lag(out=H)
+ denseH = H.todense()
+ self.assertTrue(np.array_equal(denseH, expectedH))
+
+ # now test a reordering
+ projected_nlp = ProjectedNLP(nlp, ['x[0]', 'x[2]', 'x[1]'])
+ expected_names = ['x[0]', 'x[2]', 'x[1]']
+ self.assertEqual(projected_nlp.primals_names(), expected_names)
+ self.assertTrue(np.array_equal(projected_nlp.get_primals(), np.asarray([1.0, 4.0, 2.0])))
+ self.assertTrue(np.array_equal(projected_nlp.evaluate_grad_objective(),
+ np.asarray([8.0, 9.0, 1.0])))
+ self.assertEqual(projected_nlp.nnz_jacobian(), 5)
+ self.assertEqual(projected_nlp.nnz_hessian_lag(), 6)
+
+ J = projected_nlp.evaluate_jacobian()
+ self.assertEqual(len(J.data), 5)
+ denseJ = J.todense()
+ expected_jac = np.asarray([[6.0, 1.0, 1.0],[1.0, 1.0, 0.0]])
+ self.assertTrue(np.array_equal(denseJ, expected_jac))
+
+ # test the use of "out"
+ J = 0.0*J
+ projected_nlp.evaluate_jacobian(out=J)
+ denseJ = J.todense()
+ self.assertTrue(np.array_equal(denseJ, expected_jac))
+
+ H = projected_nlp.evaluate_hessian_lag()
+ self.assertEqual(len(H.data), 6)
+ expectedH = np.asarray([[2.0, 1.0, 1.0],[1.0, 2.0, 0.0], [1.0, 0.0, 0.0]])
+ denseH = H.todense()
+ self.assertTrue(np.array_equal(denseH, expectedH))
+
+ # test the use of "out"
+ H = 0.0*H
+ projected_nlp.evaluate_hessian_lag(out=H)
+ denseH = H.todense()
+ self.assertTrue(np.array_equal(denseH, expectedH))
+
+ # now test an expansion
+ projected_nlp = ProjectedNLP(nlp, ['x[0]', 'x[2]', 'y', 'x[1]'])
+ expected_names = ['x[0]', 'x[2]', 'y', 'x[1]']
+ self.assertEqual(projected_nlp.primals_names(), expected_names)
+ np.testing.assert_equal(projected_nlp.get_primals(),np.asarray([1.0, 4.0, np.nan, 2.0]))
+
+ self.assertTrue(np.array_equal(projected_nlp.evaluate_grad_objective(),
+ np.asarray([8.0, 9.0, 0.0, 1.0])))
+ self.assertEqual(projected_nlp.nnz_jacobian(), 5)
+ self.assertEqual(projected_nlp.nnz_hessian_lag(), 6)
+
+ J = projected_nlp.evaluate_jacobian()
+ self.assertEqual(len(J.data), 5)
+ denseJ = J.todense()
+ expected_jac = np.asarray([[6.0, 1.0, 0.0, 1.0],[1.0, 1.0, 0.0, 0.0]])
+ self.assertTrue(np.array_equal(denseJ, expected_jac))
+
+ # test the use of "out"
+ J = 0.0*J
+ projected_nlp.evaluate_jacobian(out=J)
+ denseJ = J.todense()
+ self.assertTrue(np.array_equal(denseJ, expected_jac))
+
+ H = projected_nlp.evaluate_hessian_lag()
+ self.assertEqual(len(H.data), 6)
+ expectedH = np.asarray([[2.0, 1.0, 0.0, 1.0],[1.0, 2.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0], [1.0, 0.0, 0.0, 0.0]])
+ denseH = H.todense()
+ self.assertTrue(np.array_equal(denseH, expectedH))
+
+ # test the use of "out"
+ H = 0.0*H
+ projected_nlp.evaluate_hessian_lag(out=H)
+ denseH = H.todense()
+ self.assertTrue(np.array_equal(denseH, expectedH))
+
+ # now test an expansion
+ projected_nlp = ProjectedNLP(nlp, ['x[0]', 'x[2]'])
+ expected_names = ['x[0]', 'x[2]']
+ self.assertEqual(projected_nlp.primals_names(), expected_names)
+ np.testing.assert_equal(projected_nlp.get_primals(),np.asarray([1.0, 4.0]))
+
+ self.assertTrue(np.array_equal(projected_nlp.evaluate_grad_objective(),
+ np.asarray([8.0, 9.0])))
+ self.assertEqual(projected_nlp.nnz_jacobian(), 4)
+ self.assertEqual(projected_nlp.nnz_hessian_lag(), 4)
+
+ J = projected_nlp.evaluate_jacobian()
+ self.assertEqual(len(J.data), 4)
+ denseJ = J.todense()
+ expected_jac = np.asarray([[6.0, 1.0],[1.0, 1.0]])
+ self.assertTrue(np.array_equal(denseJ, expected_jac))
+
+ # test the use of "out"
+ J = 0.0*J
+ projected_nlp.evaluate_jacobian(out=J)
+ denseJ = J.todense()
+ self.assertTrue(np.array_equal(denseJ, expected_jac))
+
+ H = projected_nlp.evaluate_hessian_lag()
+ self.assertEqual(len(H.data), 4)
+ expectedH = np.asarray([[2.0, 1.0],[1.0, 2.0]])
+ denseH = H.todense()
+ self.assertTrue(np.array_equal(denseH, expectedH))
+
+ # test the use of "out"
+ H = 0.0*H
+ projected_nlp.evaluate_hessian_lag(out=H)
+ denseH = H.todense()
+ self.assertTrue(np.array_equal(denseH, expectedH))
+
+if __name__ == '__main__':
+ TestRenamedNLP().test_rename()
+ TestProjectedNLP().test_projected()
+
+
diff --git a/pyomo/contrib/pynumero/interfaces/tests/test_pyomo_grey_box_nlp.py b/pyomo/contrib/pynumero/interfaces/tests/test_pyomo_grey_box_nlp.py
new file mode 100644
index 00000000000..f6f8e95d5aa
--- /dev/null
+++ b/pyomo/contrib/pynumero/interfaces/tests/test_pyomo_grey_box_nlp.py
@@ -0,0 +1,1767 @@
+# ___________________________________________________________________________
+#
+# Pyomo: Python Optimization Modeling Objects
+# Copyright 2017 National Technology and Engineering Solutions of Sandia, LLC
+# Under the terms of Contract DE-NA0003525 with National Technology and
+# Engineering Solutions of Sandia, LLC, the U.S. Government retains certain
+# rights in this software.
+# This software is distributed under the 3-clause BSD License.
+# ___________________________________________________________________________
+
+import os
+import pyutilib.th as unittest
+import pyomo.environ as pyo
+
+from pyomo.contrib.pynumero.dependencies import (
+ numpy as np, numpy_available, scipy_sparse as spa, scipy_available
+)
+if not (numpy_available and scipy_available):
+ raise unittest.SkipTest("Pynumero needs scipy and numpy to run NLP tests")
+
+from pyomo.contrib.pynumero.asl import AmplInterface
+if not AmplInterface.available():
+ raise unittest.SkipTest(
+ "Pynumero needs the ASL extension to run cyipopt tests")
+
+from pyomo.contrib.pynumero.algorithms.solvers.cyipopt_solver import (
+ ipopt, ipopt_available,
+)
+
+from pyomo.contrib.pynumero.interfaces.external_grey_box import ExternalGreyBoxBlock
+from pyomo.contrib.pynumero.interfaces.pyomo_grey_box_nlp import _ExternalGreyBoxAsNLP, PyomoNLPWithGreyBoxBlocks
+from pyomo.contrib.pynumero.interfaces.tests.compare_utils import check_vectors_specific_order, check_sparse_matrix_specific_order
+import pyomo.contrib.pynumero.interfaces.tests.external_grey_box_models as ex_models
+
+class TestExternalGreyBoxAsNLP(unittest.TestCase):
+ def test_pressure_drop_single_output(self):
+ self._test_pressure_drop_single_output(ex_models.PressureDropSingleOutput(),False)
+ self._test_pressure_drop_single_output(ex_models.PressureDropSingleOutputWithHessian(),True)
+
+ def _test_pressure_drop_single_output(self, ex_model, hessian_support):
+ m = pyo.ConcreteModel()
+ m.egb = ExternalGreyBoxBlock()
+ m.egb.set_external_model(ex_model)
+ m.egb.inputs['Pin'].value = 100
+ m.egb.inputs['Pin'].setlb(50)
+ m.egb.inputs['Pin'].setub(150)
+ m.egb.inputs['c'].value = 2
+ m.egb.inputs['c'].setlb(1)
+ m.egb.inputs['c'].setub(5)
+ m.egb.inputs['F'].value = 3
+ m.egb.inputs['F'].setlb(1)
+ m.egb.inputs['F'].setub(5)
+ m.egb.outputs['Pout'].value = 50
+ m.egb.outputs['Pout'].setlb(0)
+ m.egb.outputs['Pout'].setub(100)
+ m.obj = pyo.Objective(expr=(m.egb.outputs['Pout']-20)**2)
+ egb_nlp = _ExternalGreyBoxAsNLP(m.egb)
+
+ self.assertEqual(4, egb_nlp.n_primals())
+ self.assertEqual(1, egb_nlp.n_constraints())
+ self.assertEqual(4, egb_nlp.nnz_jacobian())
+ if hessian_support:
+ self.assertEqual(3, egb_nlp.nnz_hessian_lag())
+
+ comparison_x_order = ['egb.inputs[Pin]', 'egb.inputs[c]', 'egb.inputs[F]', 'egb.outputs[Pout]']
+ x_order = egb_nlp.primals_names()
+ comparison_c_order = ['egb.output_constraints[Pout]']
+ c_order = egb_nlp.constraint_names()
+
+ xlb = egb_nlp.primals_lb()
+ comparison_xlb = np.asarray([50, 1, 1, 0], dtype=np.float64)
+ check_vectors_specific_order(self, xlb, x_order, comparison_xlb, comparison_x_order)
+ xub = egb_nlp.primals_ub()
+ comparison_xub = np.asarray([150, 5, 5, 100], dtype=np.float64)
+ check_vectors_specific_order(self, xub, x_order, comparison_xub, comparison_x_order)
+ clb = egb_nlp.constraints_lb()
+ comparison_clb = np.asarray([0], dtype=np.float64)
+ check_vectors_specific_order(self, clb, c_order, comparison_clb, comparison_c_order)
+ cub = egb_nlp.constraints_ub()
+ comparison_cub = np.asarray([0], dtype=np.float64)
+ check_vectors_specific_order(self, cub, c_order, comparison_cub, comparison_c_order)
+
+ xinit = egb_nlp.init_primals()
+ comparison_xinit = np.asarray([100, 2, 3, 50], dtype=np.float64)
+ check_vectors_specific_order(self, xinit, x_order, comparison_xinit, comparison_x_order)
+ duals_init = egb_nlp.init_duals()
+ comparison_duals_init = np.asarray([0], dtype=np.float64)
+ check_vectors_specific_order(self, duals_init, c_order, comparison_duals_init, comparison_c_order)
+
+ self.assertEqual(4, len(egb_nlp.create_new_vector('primals')))
+ self.assertEqual(1, len(egb_nlp.create_new_vector('constraints')))
+ self.assertEqual(1, len(egb_nlp.create_new_vector('duals')))
+
+ egb_nlp.set_primals(np.asarray([1, 2, 3, 4], dtype=np.float64))
+ x = egb_nlp.get_primals()
+ self.assertTrue(np.array_equal(x, np.asarray([1,2,3,4], dtype=np.float64)))
+ egb_nlp.set_primals(egb_nlp.init_primals())
+
+ egb_nlp.set_duals(np.asarray([42], dtype=np.float64))
+ y = egb_nlp.get_duals()
+ self.assertTrue(np.array_equal(y, np.asarray([42], dtype=np.float64)))
+ egb_nlp.set_duals(np.asarray([21], dtype=np.float64))
+ y = egb_nlp.get_duals()
+ self.assertTrue(np.array_equal(y, np.asarray([21], dtype=np.float64)))
+
+ with self.assertRaises(NotImplementedError):
+ fac = egb_nlp.get_obj_factor()
+ with self.assertRaises(NotImplementedError):
+ egb_nlp.set_obj_factor(42)
+ with self.assertRaises(NotImplementedError):
+ egb_nlp.set_obj_factor(1)
+ with self.assertRaises(NotImplementedError):
+ f = egb_nlp.evaluate_objective()
+ with self.assertRaises(NotImplementedError):
+ gradf = egb_nlp.evaluate_grad_objective()
+
+ c = egb_nlp.evaluate_constraints()
+ comparison_c = np.asarray([-22], dtype=np.float64)
+ check_vectors_specific_order(self, c, c_order, comparison_c, comparison_c_order)
+ c = np.zeros(1, dtype=np.float64)
+ egb_nlp.evaluate_constraints(out=c)
+ check_vectors_specific_order(self, c, c_order, comparison_c, comparison_c_order)
+
+ j = egb_nlp.evaluate_jacobian()
+ comparison_j = np.asarray([[1, -36, -48, -1]])
+ check_sparse_matrix_specific_order(self, j, c_order, x_order, comparison_j, comparison_c_order, comparison_x_order)
+
+ j = 2.0*j
+ egb_nlp.evaluate_jacobian(out=j)
+ check_sparse_matrix_specific_order(self, j, c_order, x_order, comparison_j, comparison_c_order, comparison_x_order)
+
+ if hessian_support:
+ h = egb_nlp.evaluate_hessian_lag()
+ self.assertTrue(h.shape == (4,4))
+ # hessian should be "full", not lower or upper triangular
+ comparison_h = np.asarray([[0, 0, 0, 0],[0, 0, -8*3*21, 0], [0, -8*3*21, -8*2*21, 0], [0, 0, 0, 0]], dtype=np.float64)
+ check_sparse_matrix_specific_order(self, h, x_order, x_order, comparison_h, comparison_x_order, comparison_x_order)
+ else:
+ with self.assertRaises(NotImplementedError):
+ h = egb_nlp.evaluate_hessian_lag()
+
+ def test_pressure_drop_single_equality(self):
+ self._test_pressure_drop_single_equality(ex_models.PressureDropSingleEquality(), False)
+ self._test_pressure_drop_single_equality(ex_models.PressureDropSingleEqualityWithHessian(), True)
+
+ def _test_pressure_drop_single_equality(self, ex_model, hessian_support):
+ m = pyo.ConcreteModel()
+ m.egb = ExternalGreyBoxBlock()
+ m.egb.set_external_model(ex_model)
+ m.egb.inputs['Pin'].value = 100
+ m.egb.inputs['Pin'].setlb(50)
+ m.egb.inputs['Pin'].setub(150)
+ m.egb.inputs['c'].value = 2
+ m.egb.inputs['c'].setlb(1)
+ m.egb.inputs['c'].setub(5)
+ m.egb.inputs['F'].value = 3
+ m.egb.inputs['F'].setlb(1)
+ m.egb.inputs['F'].setub(5)
+ m.egb.inputs['Pout'].value = 50
+ m.egb.inputs['Pout'].setlb(0)
+ m.egb.inputs['Pout'].setub(100)
+ m.obj = pyo.Objective(expr=(m.egb.inputs['Pout']-20)**2)
+ egb_nlp = _ExternalGreyBoxAsNLP(m.egb)
+
+ self.assertEqual(4, egb_nlp.n_primals())
+ self.assertEqual(1, egb_nlp.n_constraints())
+ self.assertEqual(4, egb_nlp.nnz_jacobian())
+ if hessian_support:
+ self.assertEqual(3, egb_nlp.nnz_hessian_lag())
+
+ comparison_x_order = ['egb.inputs[Pin]', 'egb.inputs[c]', 'egb.inputs[F]', 'egb.inputs[Pout]']
+ x_order = egb_nlp.primals_names()
+ comparison_c_order = ['egb.pdrop']
+ c_order = egb_nlp.constraint_names()
+
+ xlb = egb_nlp.primals_lb()
+ comparison_xlb = np.asarray([50, 1, 1, 0], dtype=np.float64)
+ check_vectors_specific_order(self, xlb, x_order, comparison_xlb, comparison_x_order)
+ xub = egb_nlp.primals_ub()
+ comparison_xub = np.asarray([150, 5, 5, 100], dtype=np.float64)
+ check_vectors_specific_order(self, xub, x_order, comparison_xub, comparison_x_order)
+ clb = egb_nlp.constraints_lb()
+ comparison_clb = np.asarray([0], dtype=np.float64)
+ check_vectors_specific_order(self, clb, c_order, comparison_clb, comparison_c_order)
+ cub = egb_nlp.constraints_ub()
+ comparison_cub = np.asarray([0], dtype=np.float64)
+ check_vectors_specific_order(self, cub, c_order, comparison_cub, comparison_c_order)
+
+ xinit = egb_nlp.init_primals()
+ comparison_xinit = np.asarray([100, 2, 3, 50], dtype=np.float64)
+ check_vectors_specific_order(self, xinit, x_order, comparison_xinit, comparison_x_order)
+ duals_init = egb_nlp.init_duals()
+ comparison_duals_init = np.asarray([0], dtype=np.float64)
+ check_vectors_specific_order(self, duals_init, c_order, comparison_duals_init, comparison_c_order)
+
+ self.assertEqual(4, len(egb_nlp.create_new_vector('primals')))
+ self.assertEqual(1, len(egb_nlp.create_new_vector('constraints')))
+ self.assertEqual(1, len(egb_nlp.create_new_vector('duals')))
+
+ egb_nlp.set_primals(np.asarray([1, 2, 3, 4], dtype=np.float64))
+ x = egb_nlp.get_primals()
+ self.assertTrue(np.array_equal(x, np.asarray([1,2,3,4], dtype=np.float64)))
+ egb_nlp.set_primals(egb_nlp.init_primals())
+
+ egb_nlp.set_duals(np.asarray([42], dtype=np.float64))
+ y = egb_nlp.get_duals()
+ self.assertTrue(np.array_equal(y, np.asarray([42], dtype=np.float64)))
+ egb_nlp.set_duals(np.asarray([21], dtype=np.float64))
+ y = egb_nlp.get_duals()
+ self.assertTrue(np.array_equal(y, np.asarray([21], dtype=np.float64)))
+
+ with self.assertRaises(NotImplementedError):
+ fac = egb_nlp.get_obj_factor()
+ with self.assertRaises(NotImplementedError):
+ egb_nlp.set_obj_factor(42)
+ with self.assertRaises(NotImplementedError):
+ egb_nlp.set_obj_factor(1)
+ with self.assertRaises(NotImplementedError):
+ f = egb_nlp.evaluate_objective()
+ with self.assertRaises(NotImplementedError):
+ gradf = egb_nlp.evaluate_grad_objective()
+
+ c = egb_nlp.evaluate_constraints()
+ comparison_c = np.asarray([22], dtype=np.float64)
+ check_vectors_specific_order(self, c, c_order, comparison_c, comparison_c_order)
+ c = np.zeros(1, dtype=np.float64)
+ egb_nlp.evaluate_constraints(out=c)
+ check_vectors_specific_order(self, c, c_order, comparison_c, comparison_c_order)
+
+ j = egb_nlp.evaluate_jacobian()
+ comparison_j = np.asarray([[-1, 36, 48, 1]])
+ check_sparse_matrix_specific_order(self, j, c_order, x_order, comparison_j, comparison_c_order, comparison_x_order)
+
+ j = 2.0*j
+ egb_nlp.evaluate_jacobian(out=j)
+ check_sparse_matrix_specific_order(self, j, c_order, x_order, comparison_j, comparison_c_order, comparison_x_order)
+
+ if hessian_support:
+ h = egb_nlp.evaluate_hessian_lag()
+ self.assertTrue(h.shape == (4,4))
+ comparison_h = np.asarray([[0, 0, 0, 0],[0, 0, 8*3*21, 0], [0, 8*3*21, 8*2*21, 0], [0, 0, 0, 0]], dtype=np.float64)
+ check_sparse_matrix_specific_order(self, h, x_order, x_order, comparison_h, comparison_x_order, comparison_x_order)
+ else:
+ with self.assertRaises(NotImplementedError):
+ h = egb_nlp.evaluate_hessian_lag()
+
+ def test_pressure_drop_two_outputs(self):
+ self._test_pressure_drop_two_outputs(ex_models.PressureDropTwoOutputs(), False)
+ self._test_pressure_drop_two_outputs(ex_models.PressureDropTwoOutputsWithHessian(), True)
+
+ def _test_pressure_drop_two_outputs(self, ex_model, hessian_support):
+ m = pyo.ConcreteModel()
+ m.egb = ExternalGreyBoxBlock()
+ m.egb.set_external_model(ex_model)
+ m.egb.inputs['Pin'].value = 100
+ m.egb.inputs['Pin'].setlb(50)
+ m.egb.inputs['Pin'].setub(150)
+ m.egb.inputs['c'].value = 2
+ m.egb.inputs['c'].setlb(1)
+ m.egb.inputs['c'].setub(5)
+ m.egb.inputs['F'].value = 3
+ m.egb.inputs['F'].setlb(1)
+ m.egb.inputs['F'].setub(5)
+ m.egb.outputs['P2'].value = 80
+ m.egb.outputs['P2'].setlb(10)
+ m.egb.outputs['P2'].setub(90)
+ m.egb.outputs['Pout'].value = 50
+ m.egb.outputs['Pout'].setlb(0)
+ m.egb.outputs['Pout'].setub(100)
+ m.obj = pyo.Objective(expr=(m.egb.outputs['Pout']-20)**2)
+ egb_nlp = _ExternalGreyBoxAsNLP(m.egb)
+
+ self.assertEqual(5, egb_nlp.n_primals())
+ self.assertEqual(2, egb_nlp.n_constraints())
+ self.assertEqual(8, egb_nlp.nnz_jacobian())
+ if hessian_support:
+ self.assertEqual(3, egb_nlp.nnz_hessian_lag())
+
+ comparison_x_order = ['egb.inputs[Pin]', 'egb.inputs[c]', 'egb.inputs[F]', 'egb.outputs[P2]', 'egb.outputs[Pout]']
+ x_order = egb_nlp.primals_names()
+ comparison_c_order = ['egb.output_constraints[P2]', 'egb.output_constraints[Pout]']
+ c_order = egb_nlp.constraint_names()
+
+ xlb = egb_nlp.primals_lb()
+ comparison_xlb = np.asarray([50, 1, 1, 10, 0], dtype=np.float64)
+ check_vectors_specific_order(self, xlb, x_order, comparison_xlb, comparison_x_order)
+ xub = egb_nlp.primals_ub()
+ comparison_xub = np.asarray([150, 5, 5, 90, 100], dtype=np.float64)
+ check_vectors_specific_order(self, xub, x_order, comparison_xub, comparison_x_order)
+ clb = egb_nlp.constraints_lb()
+ comparison_clb = np.asarray([0, 0], dtype=np.float64)
+ check_vectors_specific_order(self, clb, c_order, comparison_clb, comparison_c_order)
+ cub = egb_nlp.constraints_ub()
+ comparison_cub = np.asarray([0, 0], dtype=np.float64)
+ check_vectors_specific_order(self, cub, c_order, comparison_cub, comparison_c_order)
+
+ xinit = egb_nlp.init_primals()
+ comparison_xinit = np.asarray([100, 2, 3, 80, 50], dtype=np.float64)
+ check_vectors_specific_order(self, xinit, x_order, comparison_xinit, comparison_x_order)
+ duals_init = egb_nlp.init_duals()
+ comparison_duals_init = np.asarray([0, 0], dtype=np.float64)
+ check_vectors_specific_order(self, duals_init, c_order, comparison_duals_init, comparison_c_order)
+
+ self.assertEqual(5, len(egb_nlp.create_new_vector('primals')))
+ self.assertEqual(2, len(egb_nlp.create_new_vector('constraints')))
+ self.assertEqual(2, len(egb_nlp.create_new_vector('duals')))
+
+ egb_nlp.set_primals(np.asarray([1, 2, 3, 4, 5], dtype=np.float64))
+ x = egb_nlp.get_primals()
+ self.assertTrue(np.array_equal(x, np.asarray([1,2,3,4,5], dtype=np.float64)))
+ egb_nlp.set_primals(egb_nlp.init_primals())
+
+ egb_nlp.set_duals(np.asarray([42, 10], dtype=np.float64))
+ y = egb_nlp.get_duals()
+ self.assertTrue(np.array_equal(y, np.asarray([42, 10], dtype=np.float64)))
+ egb_nlp.set_duals(np.asarray([21, 5], dtype=np.float64))
+ y = egb_nlp.get_duals()
+ self.assertTrue(np.array_equal(y, np.asarray([21, 5], dtype=np.float64)))
+
+ with self.assertRaises(NotImplementedError):
+ fac = egb_nlp.get_obj_factor()
+ with self.assertRaises(NotImplementedError):
+ egb_nlp.set_obj_factor(42)
+ with self.assertRaises(NotImplementedError):
+ egb_nlp.set_obj_factor(1)
+ with self.assertRaises(NotImplementedError):
+ f = egb_nlp.evaluate_objective()
+ with self.assertRaises(NotImplementedError):
+ gradf = egb_nlp.evaluate_grad_objective()
+
+ c = egb_nlp.evaluate_constraints()
+ comparison_c = np.asarray([-16, -22], dtype=np.float64)
+ check_vectors_specific_order(self, c, c_order, comparison_c, comparison_c_order)
+ c = np.zeros(2)
+ egb_nlp.evaluate_constraints(out=c)
+ check_vectors_specific_order(self, c, c_order, comparison_c, comparison_c_order)
+
+ j = egb_nlp.evaluate_jacobian()
+ comparison_j = np.asarray([[1, -18, -24, -1, 0], [1, -36, -48, 0, -1]])
+ check_sparse_matrix_specific_order(self, j, c_order, x_order, comparison_j, comparison_c_order, comparison_x_order)
+
+ j = 2.0*j
+ egb_nlp.evaluate_jacobian(out=j)
+ check_sparse_matrix_specific_order(self, j, c_order, x_order, comparison_j, comparison_c_order, comparison_x_order)
+
+ if hessian_support:
+ h = egb_nlp.evaluate_hessian_lag()
+ self.assertTrue(h.shape == (5,5))
+ comparison_h = np.asarray([[0, 0, 0, 0, 0],
+ [0, 0, (-4*3*21) + (-8*3*5), 0, 0],
+ [0, (-4*3*21) + (-8*3*5), (-4*2*21) + (-8*2*5), 0, 0],
+ [0, 0, 0, 0, 0],
+ [0, 0, 0, 0, 0]], dtype=np.float64)
+ check_sparse_matrix_specific_order(self, h, x_order, x_order, comparison_h, comparison_x_order, comparison_x_order)
+ else:
+ with self.assertRaises(NotImplementedError):
+ h = egb_nlp.evaluate_hessian_lag()
+
+ def test_pressure_drop_two_equalities(self):
+ self._test_pressure_drop_two_equalities(ex_models.PressureDropTwoEqualities(), False)
+ self._test_pressure_drop_two_equalities(ex_models.PressureDropTwoEqualitiesWithHessian(), True)
+
+ def _test_pressure_drop_two_equalities(self, ex_model, hessian_support):
+ m = pyo.ConcreteModel()
+ m.egb = ExternalGreyBoxBlock()
+ m.egb.set_external_model(ex_model)
+ m.egb.inputs['Pin'].value = 100
+ m.egb.inputs['Pin'].setlb(50)
+ m.egb.inputs['Pin'].setub(150)
+ m.egb.inputs['c'].value = 2
+ m.egb.inputs['c'].setlb(1)
+ m.egb.inputs['c'].setub(5)
+ m.egb.inputs['F'].value = 3
+ m.egb.inputs['F'].setlb(1)
+ m.egb.inputs['F'].setub(5)
+ m.egb.inputs['P2'].value = 80
+ m.egb.inputs['P2'].setlb(10)
+ m.egb.inputs['P2'].setub(90)
+ m.egb.inputs['Pout'].value = 50
+ m.egb.inputs['Pout'].setlb(0)
+ m.egb.inputs['Pout'].setub(100)
+ m.obj = pyo.Objective(expr=(m.egb.inputs['Pout']-20)**2)
+ egb_nlp = _ExternalGreyBoxAsNLP(m.egb)
+
+ self.assertEqual(5, egb_nlp.n_primals())
+ self.assertEqual(2, egb_nlp.n_constraints())
+ self.assertEqual(8, egb_nlp.nnz_jacobian())
+ if hessian_support:
+ self.assertEqual(3, egb_nlp.nnz_hessian_lag())
+
+ comparison_x_order = ['egb.inputs[Pin]', 'egb.inputs[c]', 'egb.inputs[F]', 'egb.inputs[P2]', 'egb.inputs[Pout]']
+ x_order = egb_nlp.primals_names()
+ comparison_c_order = ['egb.pdrop2', 'egb.pdropout']
+ c_order = egb_nlp.constraint_names()
+
+ xlb = egb_nlp.primals_lb()
+ comparison_xlb = np.asarray([50, 1, 1, 10, 0], dtype=np.float64)
+ check_vectors_specific_order(self, xlb, x_order, comparison_xlb, comparison_x_order)
+ xub = egb_nlp.primals_ub()
+ comparison_xub = np.asarray([150, 5, 5, 90, 100], dtype=np.float64)
+ check_vectors_specific_order(self, xub, x_order, comparison_xub, comparison_x_order)
+ clb = egb_nlp.constraints_lb()
+ comparison_clb = np.asarray([0, 0], dtype=np.float64)
+ check_vectors_specific_order(self, clb, c_order, comparison_clb, comparison_c_order)
+ cub = egb_nlp.constraints_ub()
+ comparison_cub = np.asarray([0, 0], dtype=np.float64)
+ check_vectors_specific_order(self, cub, c_order, comparison_cub, comparison_c_order)
+
+ xinit = egb_nlp.init_primals()
+ comparison_xinit = np.asarray([100, 2, 3, 80, 50], dtype=np.float64)
+ check_vectors_specific_order(self, xinit, x_order, comparison_xinit, comparison_x_order)
+ duals_init = egb_nlp.init_duals()
+ comparison_duals_init = np.asarray([0, 0], dtype=np.float64)
+ check_vectors_specific_order(self, duals_init, c_order, comparison_duals_init, comparison_c_order)
+
+ self.assertEqual(5, len(egb_nlp.create_new_vector('primals')))
+ self.assertEqual(2, len(egb_nlp.create_new_vector('constraints')))
+ self.assertEqual(2, len(egb_nlp.create_new_vector('duals')))
+
+ egb_nlp.set_primals(np.asarray([1, 2, 3, 4, 5], dtype=np.float64))
+ x = egb_nlp.get_primals()
+ self.assertTrue(np.array_equal(x, np.asarray([1,2,3,4,5], dtype=np.float64)))
+ egb_nlp.set_primals(egb_nlp.init_primals())
+
+ egb_nlp.set_duals(np.asarray([42, 10], dtype=np.float64))
+ y = egb_nlp.get_duals()
+ self.assertTrue(np.array_equal(y, np.asarray([42, 10], dtype=np.float64)))
+ egb_nlp.set_duals(np.asarray([21, 5], dtype=np.float64))
+ y = egb_nlp.get_duals()
+ self.assertTrue(np.array_equal(y, np.asarray([21, 5], dtype=np.float64)))
+
+ with self.assertRaises(NotImplementedError):
+ fac = egb_nlp.get_obj_factor()
+ with self.assertRaises(NotImplementedError):
+ egb_nlp.set_obj_factor(42)
+ with self.assertRaises(NotImplementedError):
+ egb_nlp.set_obj_factor(1)
+ with self.assertRaises(NotImplementedError):
+ f = egb_nlp.evaluate_objective()
+ with self.assertRaises(NotImplementedError):
+ gradf = egb_nlp.evaluate_grad_objective()
+
+ c = egb_nlp.evaluate_constraints()
+ comparison_c = np.asarray([16, 6], dtype=np.float64)
+ check_vectors_specific_order(self, c, c_order, comparison_c, comparison_c_order)
+ c = np.zeros(2)
+ egb_nlp.evaluate_constraints(out=c)
+ check_vectors_specific_order(self, c, c_order, comparison_c, comparison_c_order)
+
+ j = egb_nlp.evaluate_jacobian()
+ comparison_j = np.asarray([[-1, 18, 24, 1, 0], [0, 18, 24, -1, 1]])
+ check_sparse_matrix_specific_order(self, j, c_order, x_order, comparison_j, comparison_c_order, comparison_x_order)
+
+ j = 2.0*j
+ egb_nlp.evaluate_jacobian(out=j)
+ check_sparse_matrix_specific_order(self, j, c_order, x_order, comparison_j, comparison_c_order, comparison_x_order)
+
+ if hessian_support:
+ h = egb_nlp.evaluate_hessian_lag()
+ self.assertTrue(h.shape == (5,5))
+ comparison_h = np.asarray([[0, 0, 0, 0, 0],
+ [0, 0, (4*3*21) + (4*3*5), 0, 0],
+ [0, (4*3*21) + (4*3*5), (4*2*21) + (4*2*5), 0, 0],
+ [0, 0, 0, 0, 0],
+ [0, 0, 0, 0, 0]], dtype=np.float64)
+ check_sparse_matrix_specific_order(self, h, x_order, x_order, comparison_h, comparison_x_order, comparison_x_order)
+ else:
+ with self.assertRaises(NotImplementedError):
+ h = egb_nlp.evaluate_hessian_lag()
+
+ def test_pressure_drop_two_equalities_two_outputs(self):
+ self._test_pressure_drop_two_equalities_two_outputs(ex_models.PressureDropTwoEqualitiesTwoOutputs(), False)
+ self._test_pressure_drop_two_equalities_two_outputs(ex_models.PressureDropTwoEqualitiesTwoOutputsWithHessian(), True)
+
+ def _test_pressure_drop_two_equalities_two_outputs(self, ex_model, hessian_support):
+ m = pyo.ConcreteModel()
+ m.egb = ExternalGreyBoxBlock()
+ m.egb.set_external_model(ex_model)
+ m.egb.inputs['Pin'].value = 100
+ m.egb.inputs['Pin'].setlb(50)
+ m.egb.inputs['Pin'].setub(150)
+ m.egb.inputs['c'].value = 2
+ m.egb.inputs['c'].setlb(1)
+ m.egb.inputs['c'].setub(5)
+ m.egb.inputs['F'].value = 3
+ m.egb.inputs['F'].setlb(1)
+ m.egb.inputs['F'].setub(5)
+ m.egb.inputs['P1'].value = 80
+ m.egb.inputs['P1'].setlb(10)
+ m.egb.inputs['P1'].setub(90)
+ m.egb.inputs['P3'].value = 70
+ m.egb.inputs['P3'].setlb(20)
+ m.egb.inputs['P3'].setub(80)
+ m.egb.outputs['P2'].value = 75
+ m.egb.outputs['P2'].setlb(15)
+ m.egb.outputs['P2'].setub(85)
+ m.egb.outputs['Pout'].value = 50
+ m.egb.outputs['Pout'].setlb(30)
+ m.egb.outputs['Pout'].setub(70)
+ m.obj = pyo.Objective(expr=(m.egb.outputs['Pout']-20)**2)
+ egb_nlp = _ExternalGreyBoxAsNLP(m.egb)
+
+ self.assertEqual(7, egb_nlp.n_primals())
+ self.assertEqual(4, egb_nlp.n_constraints())
+ self.assertEqual(16, egb_nlp.nnz_jacobian())
+ if hessian_support:
+ # this number is larger than expected because the nnz for the
+ # hessian of equality and output constraints are concatenated
+ # even if they occur in the same place
+ self.assertEqual(6, egb_nlp.nnz_hessian_lag())
+
+ comparison_x_order = ['egb.inputs[Pin]', 'egb.inputs[c]', 'egb.inputs[F]',
+ 'egb.inputs[P1]', 'egb.inputs[P3]',
+ 'egb.outputs[P2]', 'egb.outputs[Pout]']
+ x_order = egb_nlp.primals_names()
+ comparison_c_order = ['egb.pdrop1', 'egb.pdrop3', 'egb.output_constraints[P2]', 'egb.output_constraints[Pout]']
+ c_order = egb_nlp.constraint_names()
+
+ xlb = egb_nlp.primals_lb()
+ comparison_xlb = np.asarray([50, 1, 1, 10, 20, 15, 30], dtype=np.float64)
+ check_vectors_specific_order(self, xlb, x_order, comparison_xlb, comparison_x_order)
+ xub = egb_nlp.primals_ub()
+ comparison_xub = np.asarray([150, 5, 5, 90, 80, 85, 70], dtype=np.float64)
+ check_vectors_specific_order(self, xub, x_order, comparison_xub, comparison_x_order)
+ clb = egb_nlp.constraints_lb()
+ comparison_clb = np.asarray([0, 0, 0, 0], dtype=np.float64)
+ check_vectors_specific_order(self, clb, c_order, comparison_clb, comparison_c_order)
+ cub = egb_nlp.constraints_ub()
+ comparison_cub = np.asarray([0, 0, 0, 0], dtype=np.float64)
+ check_vectors_specific_order(self, cub, c_order, comparison_cub, comparison_c_order)
+
+ xinit = egb_nlp.init_primals()
+ comparison_xinit = np.asarray([100, 2, 3, 80, 70, 75, 50], dtype=np.float64)
+ check_vectors_specific_order(self, xinit, x_order, comparison_xinit, comparison_x_order)
+ duals_init = egb_nlp.init_duals()
+ comparison_duals_init = np.asarray([0, 0, 0, 0], dtype=np.float64)
+ check_vectors_specific_order(self, duals_init, c_order, comparison_duals_init, comparison_c_order)
+
+ self.assertEqual(7, len(egb_nlp.create_new_vector('primals')))
+ self.assertEqual(4, len(egb_nlp.create_new_vector('constraints')))
+ self.assertEqual(4, len(egb_nlp.create_new_vector('duals')))
+
+ egb_nlp.set_primals(np.asarray([1, 2, 3, 4, 5, 6, 7], dtype=np.float64))
+ x = egb_nlp.get_primals()
+ self.assertTrue(np.array_equal(x, np.asarray([1,2,3,4,5,6,7], dtype=np.float64)))
+ egb_nlp.set_primals(egb_nlp.init_primals())
+
+ egb_nlp.set_duals(np.asarray([42, 10, 11, 12], dtype=np.float64))
+ y = egb_nlp.get_duals()
+ self.assertTrue(np.array_equal(y, np.asarray([42, 10, 11, 12], dtype=np.float64)))
+ egb_nlp.set_duals(np.asarray([21, 5, 6, 7], dtype=np.float64))
+ y = egb_nlp.get_duals()
+ self.assertTrue(np.array_equal(y, np.asarray([21, 5, 6, 7], dtype=np.float64)))
+
+ with self.assertRaises(NotImplementedError):
+ fac = egb_nlp.get_obj_factor()
+ with self.assertRaises(NotImplementedError):
+ egb_nlp.set_obj_factor(42)
+ with self.assertRaises(NotImplementedError):
+ egb_nlp.set_obj_factor(1)
+ with self.assertRaises(NotImplementedError):
+ f = egb_nlp.evaluate_objective()
+ with self.assertRaises(NotImplementedError):
+ gradf = egb_nlp.evaluate_grad_objective()
+
+ c = egb_nlp.evaluate_constraints()
+ comparison_c = np.asarray([-2, 26, -13, -22], dtype=np.float64)
+ check_vectors_specific_order(self, c, c_order, comparison_c, comparison_c_order)
+ c = np.zeros(4)
+ egb_nlp.evaluate_constraints(out=c)
+ check_vectors_specific_order(self, c, c_order, comparison_c, comparison_c_order)
+
+ j = egb_nlp.evaluate_jacobian()
+ comparison_j = np.asarray([[-1, 9, 12, 1, 0, 0, 0],
+ [ 0, 18, 24, -1, 1, 0, 0],
+ [ 0, -9, -12, 1, 0, -1, 0],
+ [ 1, -36, -48, 0, 0, 0, -1]])
+ check_sparse_matrix_specific_order(self, j, c_order, x_order, comparison_j, comparison_c_order, comparison_x_order)
+
+ j = 2.0*j
+ egb_nlp.evaluate_jacobian(out=j)
+ check_sparse_matrix_specific_order(self, j, c_order, x_order, comparison_j, comparison_c_order, comparison_x_order)
+
+ if hessian_support:
+ h = egb_nlp.evaluate_hessian_lag()
+ self.assertTrue(h.shape == (7,7))
+ comparison_h = np.asarray([[0, 0, 0, 0, 0, 0, 0],
+ [0, 0, (2*3*21) + (4*3*5) + (-2*3*6) + (-8*3*7), 0, 0, 0, 0],
+ [0, (2*3*21) + (4*3*5) + (-2*3*6) + (-8*3*7), (2*2*21) + (4*2*5) + (-2*2*6) + (-8*2*7), 0, 0, 0, 0],
+ [0, 0, 0, 0, 0, 0, 0],
+ [0, 0, 0, 0, 0, 0, 0],
+ [0, 0, 0, 0, 0, 0, 0],
+ [0, 0, 0, 0, 0, 0, 0]],
+ dtype=np.float64)
+ check_sparse_matrix_specific_order(self, h, x_order, x_order, comparison_h, comparison_x_order, comparison_x_order)
+ else:
+ with self.assertRaises(NotImplementedError):
+ h = egb_nlp.evaluate_hessian_lag()
+
+ def create_model_two_equalities_two_outputs(self, external_model):
+ m = pyo.ConcreteModel()
+ m.hin = pyo.Var(bounds=(0,None), initialize=10)
+ m.hout = pyo.Var(bounds=(0,None))
+ m.egb = ExternalGreyBoxBlock()
+ m.egb.set_external_model(external_model)
+ m.incon = pyo.Constraint(expr= 0 <= m.egb.inputs['Pin'] - 10*m.hin)
+ m.outcon = pyo.Constraint(expr= 0 == m.egb.outputs['Pout'] - 10*m.hout)
+ m.egb.inputs['Pin'].value = 100
+ m.egb.inputs['Pin'].setlb(50)
+ m.egb.inputs['Pin'].setub(150)
+ m.egb.inputs['c'].value = 2
+ m.egb.inputs['c'].setlb(1)
+ m.egb.inputs['c'].setub(5)
+ m.egb.inputs['F'].value = 3
+ m.egb.inputs['F'].setlb(1)
+ m.egb.inputs['F'].setub(5)
+ m.egb.inputs['P1'].value = 80
+ m.egb.inputs['P1'].setlb(10)
+ m.egb.inputs['P1'].setub(90)
+ m.egb.inputs['P3'].value = 70
+ m.egb.inputs['P3'].setlb(20)
+ m.egb.inputs['P3'].setub(80)
+ m.egb.outputs['P2'].value = 75
+ m.egb.outputs['P2'].setlb(15)
+ m.egb.outputs['P2'].setub(85)
+ m.egb.outputs['Pout'].value = 50
+ m.egb.outputs['Pout'].setlb(30)
+ m.egb.outputs['Pout'].setub(70)
+ return m
+
+ def test_scaling_all_missing(self):
+ m = self.create_model_two_equalities_two_outputs(ex_models.PressureDropTwoEqualitiesTwoOutputs())
+ m.obj = pyo.Objective(expr=(m.egb.outputs['Pout']-20)**2)
+ egb_nlp = _ExternalGreyBoxAsNLP(m.egb)
+ with self.assertRaises(NotImplementedError):
+ fs = egb_nlp.get_obj_scaling()
+ with self.assertRaises(NotImplementedError):
+ xs = egb_nlp.get_primals_scaling()
+ cs = egb_nlp.get_constraints_scaling()
+ self.assertIsNone(cs)
+
+ def test_scaling_pyomo_model_only(self):
+ m = self.create_model_two_equalities_two_outputs(ex_models.PressureDropTwoEqualitiesTwoOutputs())
+ m.obj = pyo.Objective(expr=(m.egb.outputs['Pout']-20)**2)
+ m.scaling_factor = pyo.Suffix(direction=pyo.Suffix.EXPORT)
+ #m.scaling_factor[m.obj] = 0.1 # scale the objective
+ m.scaling_factor[m.egb.inputs['Pin']] = 1.1 # scale the variable
+ m.scaling_factor[m.egb.inputs['c']] = 1.2 # scale the variable
+ m.scaling_factor[m.egb.inputs['F']] = 1.3 # scale the variable
+ #m.scaling_factor[m.egb.inputs['P1']] = 1.4 # scale the variable
+ m.scaling_factor[m.egb.inputs['P3']] = 1.5 # scale the variable
+ m.scaling_factor[m.egb.outputs['P2']] = 1.6 # scale the variable
+ m.scaling_factor[m.egb.outputs['Pout']] = 1.7 # scale the variable
+ #m.scaling_factor[m.hin] = 1.8
+ m.scaling_factor[m.hout] = 1.9
+ #m.scaling_factor[m.incon] = 2.1
+ m.scaling_factor[m.outcon] = 2.2
+ egb_nlp = _ExternalGreyBoxAsNLP(m.egb)
+
+ with self.assertRaises(NotImplementedError):
+ fs = egb_nlp.get_obj_scaling()
+ with self.assertRaises(NotImplementedError):
+ xs = egb_nlp.get_primals_scaling()
+
+ cs = egb_nlp.get_constraints_scaling()
+ self.assertIsNone(cs)
+
+ def test_scaling_greybox_only(self):
+ m = self.create_model_two_equalities_two_outputs(ex_models.PressureDropTwoEqualitiesTwoOutputsScaleBoth())
+ m.obj = pyo.Objective(expr=(m.egb.outputs['Pout']-20)**2)
+ egb_nlp = _ExternalGreyBoxAsNLP(m.egb)
+
+ comparison_c_order = ['egb.pdrop1', 'egb.pdrop3', 'egb.output_constraints[P2]', 'egb.output_constraints[Pout]']
+ c_order = egb_nlp.constraint_names()
+
+ with self.assertRaises(NotImplementedError):
+ fs = egb_nlp.get_obj_scaling()
+ with self.assertRaises(NotImplementedError):
+ xs = egb_nlp.get_primals_scaling()
+
+ cs = egb_nlp.get_constraints_scaling()
+ comparison_cs = np.asarray([3.1, 3.2, 4.1, 4.2], dtype=np.float64)
+ check_vectors_specific_order(self, cs, c_order, comparison_cs, comparison_c_order)
+
+ m = self.create_model_two_equalities_two_outputs(ex_models.PressureDropTwoEqualitiesTwoOutputsScaleEqualities())
+ m.obj = pyo.Objective(expr=(m.egb.outputs['Pout']-20)**2)
+ egb_nlp = _ExternalGreyBoxAsNLP(m.egb)
+ cs = egb_nlp.get_constraints_scaling()
+ comparison_cs = np.asarray([3.1, 3.2, 1, 1], dtype=np.float64)
+ check_vectors_specific_order(self, cs, c_order, comparison_cs, comparison_c_order)
+
+ m = self.create_model_two_equalities_two_outputs(ex_models.PressureDropTwoEqualitiesTwoOutputsScaleOutputs())
+ m.obj = pyo.Objective(expr=(m.egb.outputs['Pout']-20)**2)
+ egb_nlp = _ExternalGreyBoxAsNLP(m.egb)
+ cs = egb_nlp.get_constraints_scaling()
+ comparison_cs = np.asarray([1, 1, 4.1, 4.2], dtype=np.float64)
+ check_vectors_specific_order(self, cs, c_order, comparison_cs, comparison_c_order)
+
+class TestPyomoNLPWithGreyBoxModels(unittest.TestCase):
+
+ def test_error_no_variables(self):
+ m = pyo.ConcreteModel()
+ m.egb = ExternalGreyBoxBlock()
+ m.egb.set_external_model(ex_models.PressureDropSingleOutput())
+ m.obj = pyo.Objective(expr=1)
+ with self.assertRaises(ValueError):
+ pyomo_nlp = PyomoNLPWithGreyBoxBlocks(m)
+
+ def test_error_fixed_inputs_outputs(self):
+ m = pyo.ConcreteModel()
+ m.egb = ExternalGreyBoxBlock()
+ m.egb.set_external_model(ex_models.PressureDropSingleOutput())
+ m.egb.inputs['Pin'].fix(100)
+ m.obj = pyo.Objective(expr=(m.egb.outputs['Pout']-20)**2)
+ with self.assertRaises(NotImplementedError):
+ pyomo_nlp = PyomoNLPWithGreyBoxBlocks(m)
+
+ m = pyo.ConcreteModel()
+ m.egb = ExternalGreyBoxBlock()
+ m.egb.set_external_model(ex_models.PressureDropTwoOutputs())
+ m.egb.outputs['P2'].fix(50)
+ m.obj = pyo.Objective(expr=(m.egb.outputs['Pout']-20)**2)
+ with self.assertRaises(NotImplementedError):
+ pyomo_nlp = PyomoNLPWithGreyBoxBlocks(m)
+
+ def test_pressure_drop_single_output(self):
+ self._test_pressure_drop_single_output(ex_models.PressureDropSingleOutput(),False)
+ self._test_pressure_drop_single_output(ex_models.PressureDropSingleOutputWithHessian(),True)
+
+ def _test_pressure_drop_single_output(self, ex_model, hessian_support):
+ m = pyo.ConcreteModel()
+ m.egb = ExternalGreyBoxBlock()
+ m.egb.set_external_model(ex_model)
+ m.egb.inputs['Pin'].value = 100
+ m.egb.inputs['Pin'].setlb(50)
+ m.egb.inputs['Pin'].setub(150)
+ m.egb.inputs['c'].value = 2
+ m.egb.inputs['c'].setlb(1)
+ m.egb.inputs['c'].setub(5)
+ m.egb.inputs['F'].value = 3
+ m.egb.inputs['F'].setlb(1)
+ m.egb.inputs['F'].setub(5)
+ m.egb.outputs['Pout'].value = 50
+ m.egb.outputs['Pout'].setlb(0)
+ m.egb.outputs['Pout'].setub(100)
+ #m.dummy = pyo.Constraint(expr=sum(m.egb.inputs[i] for i in m.egb.inputs) + sum(m.egb.outputs[i] for i in m.egb.outputs) <= 1e6)
+ m.obj = pyo.Objective(expr=(m.egb.outputs['Pout']-20)**2)
+
+ pyomo_nlp = PyomoNLPWithGreyBoxBlocks(m)
+
+ self.assertEqual(4, pyomo_nlp.n_primals())
+ self.assertEqual(1, pyomo_nlp.n_constraints())
+ self.assertEqual(4, pyomo_nlp.nnz_jacobian())
+ if hessian_support:
+ self.assertEqual(4, pyomo_nlp.nnz_hessian_lag())
+
+ comparison_x_order = ['egb.inputs[Pin]', 'egb.inputs[c]', 'egb.inputs[F]', 'egb.outputs[Pout]']
+ x_order = pyomo_nlp.primals_names()
+ comparison_c_order = ['egb.output_constraints[Pout]']
+ c_order = pyomo_nlp.constraint_names()
+
+ xlb = pyomo_nlp.primals_lb()
+ comparison_xlb = np.asarray([50, 1, 1, 0], dtype=np.float64)
+ check_vectors_specific_order(self, xlb, x_order, comparison_xlb, comparison_x_order)
+ xub = pyomo_nlp.primals_ub()
+ comparison_xub = np.asarray([150, 5, 5, 100], dtype=np.float64)
+ check_vectors_specific_order(self, xub, x_order, comparison_xub, comparison_x_order)
+ clb = pyomo_nlp.constraints_lb()
+ comparison_clb = np.asarray([0], dtype=np.float64)
+ check_vectors_specific_order(self, clb, c_order, comparison_clb, comparison_c_order)
+ cub = pyomo_nlp.constraints_ub()
+ comparison_cub = np.asarray([0], dtype=np.float64)
+ check_vectors_specific_order(self, cub, c_order, comparison_cub, comparison_c_order)
+
+ xinit = pyomo_nlp.init_primals()
+ comparison_xinit = np.asarray([100, 2, 3, 50], dtype=np.float64)
+ check_vectors_specific_order(self, xinit, x_order, comparison_xinit, comparison_x_order)
+ duals_init = pyomo_nlp.init_duals()
+ comparison_duals_init = np.asarray([0], dtype=np.float64)
+ check_vectors_specific_order(self, duals_init, c_order, comparison_duals_init, comparison_c_order)
+
+ self.assertEqual(4, len(pyomo_nlp.create_new_vector('primals')))
+ self.assertEqual(1, len(pyomo_nlp.create_new_vector('constraints')))
+ self.assertEqual(1, len(pyomo_nlp.create_new_vector('duals')))
+
+ pyomo_nlp.set_primals(np.asarray([1, 2, 3, 4], dtype=np.float64))
+ x = pyomo_nlp.get_primals()
+ self.assertTrue(np.array_equal(x, np.asarray([1,2,3,4], dtype=np.float64)))
+ pyomo_nlp.set_primals(pyomo_nlp.init_primals())
+
+ pyomo_nlp.set_duals(np.asarray([42], dtype=np.float64))
+ y = pyomo_nlp.get_duals()
+ self.assertTrue(np.array_equal(y, np.asarray([42], dtype=np.float64)))
+ pyomo_nlp.set_duals(np.asarray([21], dtype=np.float64))
+ y = pyomo_nlp.get_duals()
+ self.assertTrue(np.array_equal(y, np.asarray([21], dtype=np.float64)))
+
+ fac = pyomo_nlp.get_obj_factor()
+ self.assertEqual(fac, 1)
+ pyomo_nlp.set_obj_factor(42)
+ self.assertEqual(pyomo_nlp.get_obj_factor(), 42)
+ pyomo_nlp.set_obj_factor(1)
+
+ f = pyomo_nlp.evaluate_objective()
+ self.assertEqual(f, 900)
+
+ gradf = pyomo_nlp.evaluate_grad_objective()
+ comparison_gradf = np.asarray([0, 0, 0, 60], dtype=np.float64)
+ check_vectors_specific_order(self, gradf, x_order, comparison_gradf, comparison_x_order)
+ c = pyomo_nlp.evaluate_constraints()
+ comparison_c = np.asarray([-22], dtype=np.float64)
+ check_vectors_specific_order(self, c, c_order, comparison_c, comparison_c_order)
+ c = np.zeros(1)
+ pyomo_nlp.evaluate_constraints(out=c)
+ check_vectors_specific_order(self, c, c_order, comparison_c, comparison_c_order)
+
+ j = pyomo_nlp.evaluate_jacobian()
+ comparison_j = np.asarray([[1, -36, -48, -1]])
+ check_sparse_matrix_specific_order(self, j, c_order, x_order, comparison_j, comparison_c_order, comparison_x_order)
+
+ j = 2.0*j
+ pyomo_nlp.evaluate_jacobian(out=j)
+ check_sparse_matrix_specific_order(self, j, c_order, x_order, comparison_j, comparison_c_order, comparison_x_order)
+
+ if hessian_support:
+ h = pyomo_nlp.evaluate_hessian_lag()
+ self.assertTrue(h.shape == (4,4))
+ comparison_h = np.asarray([[0, 0, 0, 0],[0, 0, -8*3*21, 0], [0, -8*3*21, -8*2*21, 0], [0, 0, 0, 2*1]], dtype=np.float64)
+ check_sparse_matrix_specific_order(self, h, x_order, x_order, comparison_h, comparison_x_order, comparison_x_order)
+ else:
+ with self.assertRaises(NotImplementedError):
+ h = pyomo_nlp.evaluate_hessian_lag()
+
+ def test_pressure_drop_single_equality(self):
+ self._test_pressure_drop_single_equality(ex_models.PressureDropSingleEquality(), False)
+ self._test_pressure_drop_single_equality(ex_models.PressureDropSingleEqualityWithHessian(), True)
+
+ def _test_pressure_drop_single_equality(self, ex_model, hessian_support):
+ m = pyo.ConcreteModel()
+ m.egb = ExternalGreyBoxBlock()
+ m.egb.set_external_model(ex_model)
+ m.egb.inputs['Pin'].value = 100
+ m.egb.inputs['Pin'].setlb(50)
+ m.egb.inputs['Pin'].setub(150)
+ m.egb.inputs['c'].value = 2
+ m.egb.inputs['c'].setlb(1)
+ m.egb.inputs['c'].setub(5)
+ m.egb.inputs['F'].value = 3
+ m.egb.inputs['F'].setlb(1)
+ m.egb.inputs['F'].setub(5)
+ m.egb.inputs['Pout'].value = 50
+ m.egb.inputs['Pout'].setlb(0)
+ m.egb.inputs['Pout'].setub(100)
+ m.obj = pyo.Objective(expr=(m.egb.inputs['Pout']-20)**2)
+ pyomo_nlp = PyomoNLPWithGreyBoxBlocks(m)
+
+ self.assertEqual(4, pyomo_nlp.n_primals())
+ self.assertEqual(1, pyomo_nlp.n_constraints())
+ self.assertEqual(4, pyomo_nlp.nnz_jacobian())
+ if hessian_support:
+ self.assertEqual(4, pyomo_nlp.nnz_hessian_lag())
+
+ comparison_x_order = ['egb.inputs[Pin]', 'egb.inputs[c]', 'egb.inputs[F]', 'egb.inputs[Pout]']
+ x_order = pyomo_nlp.primals_names()
+ comparison_c_order = ['egb.pdrop']
+ c_order = pyomo_nlp.constraint_names()
+
+ xlb = pyomo_nlp.primals_lb()
+ comparison_xlb = np.asarray([50, 1, 1, 0], dtype=np.float64)
+ check_vectors_specific_order(self, xlb, x_order, comparison_xlb, comparison_x_order)
+ xub = pyomo_nlp.primals_ub()
+ comparison_xub = np.asarray([150, 5, 5, 100], dtype=np.float64)
+ check_vectors_specific_order(self, xub, x_order, comparison_xub, comparison_x_order)
+ clb = pyomo_nlp.constraints_lb()
+ comparison_clb = np.asarray([0], dtype=np.float64)
+ check_vectors_specific_order(self, clb, c_order, comparison_clb, comparison_c_order)
+ cub = pyomo_nlp.constraints_ub()
+ comparison_cub = np.asarray([0], dtype=np.float64)
+ check_vectors_specific_order(self, cub, c_order, comparison_cub, comparison_c_order)
+
+ xinit = pyomo_nlp.init_primals()
+ comparison_xinit = np.asarray([100, 2, 3, 50], dtype=np.float64)
+ check_vectors_specific_order(self, xinit, x_order, comparison_xinit, comparison_x_order)
+ duals_init = pyomo_nlp.init_duals()
+ comparison_duals_init = np.asarray([0], dtype=np.float64)
+ check_vectors_specific_order(self, duals_init, c_order, comparison_duals_init, comparison_c_order)
+
+ self.assertEqual(4, len(pyomo_nlp.create_new_vector('primals')))
+ self.assertEqual(1, len(pyomo_nlp.create_new_vector('constraints')))
+ self.assertEqual(1, len(pyomo_nlp.create_new_vector('duals')))
+
+ pyomo_nlp.set_primals(np.asarray([1, 2, 3, 4], dtype=np.float64))
+ x = pyomo_nlp.get_primals()
+ self.assertTrue(np.array_equal(x, np.asarray([1,2,3,4], dtype=np.float64)))
+ pyomo_nlp.set_primals(pyomo_nlp.init_primals())
+
+ pyomo_nlp.set_duals(np.asarray([42], dtype=np.float64))
+ y = pyomo_nlp.get_duals()
+ self.assertTrue(np.array_equal(y, np.asarray([42], dtype=np.float64)))
+ pyomo_nlp.set_duals(np.asarray([21], dtype=np.float64))
+ y = pyomo_nlp.get_duals()
+ self.assertTrue(np.array_equal(y, np.asarray([21], dtype=np.float64)))
+
+ fac = pyomo_nlp.get_obj_factor()
+ self.assertEqual(fac, 1)
+ pyomo_nlp.set_obj_factor(42)
+ self.assertEqual(pyomo_nlp.get_obj_factor(), 42)
+ pyomo_nlp.set_obj_factor(1)
+
+ f = pyomo_nlp.evaluate_objective()
+ self.assertEqual(f, 900)
+
+ gradf = pyomo_nlp.evaluate_grad_objective()
+ comparison_gradf = np.asarray([0, 0, 0, 60], dtype=np.float64)
+ check_vectors_specific_order(self, gradf, x_order, comparison_gradf, comparison_x_order)
+ c = pyomo_nlp.evaluate_constraints()
+ comparison_c = np.asarray([22], dtype=np.float64)
+ check_vectors_specific_order(self, c, c_order, comparison_c, comparison_c_order)
+ c = np.zeros(1)
+ pyomo_nlp.evaluate_constraints(out=c)
+ check_vectors_specific_order(self, c, c_order, comparison_c, comparison_c_order)
+
+ j = pyomo_nlp.evaluate_jacobian()
+ comparison_j = np.asarray([[-1, 36, 48, 1]])
+ check_sparse_matrix_specific_order(self, j, c_order, x_order, comparison_j, comparison_c_order, comparison_x_order)
+
+ j = 2.0*j
+ pyomo_nlp.evaluate_jacobian(out=j)
+ check_sparse_matrix_specific_order(self, j, c_order, x_order, comparison_j, comparison_c_order, comparison_x_order)
+
+ if hessian_support:
+ h = pyomo_nlp.evaluate_hessian_lag()
+ self.assertTrue(h.shape == (4,4))
+ comparison_h = np.asarray([[0, 0, 0, 0],[0, 0, 8*3*21, 0], [0, 8*3*21, 8*2*21, 0], [0, 0, 0, 2*1]], dtype=np.float64)
+ check_sparse_matrix_specific_order(self, h, x_order, x_order, comparison_h, comparison_x_order, comparison_x_order)
+ else:
+ with self.assertRaises(NotImplementedError):
+ h = pyomo_nlp.evaluate_hessian_lag()
+
+ def test_pressure_drop_two_outputs(self):
+ self._test_pressure_drop_two_outputs(ex_models.PressureDropTwoOutputs(), False)
+ self._test_pressure_drop_two_outputs(ex_models.PressureDropTwoOutputsWithHessian(), True)
+
+ def _test_pressure_drop_two_outputs(self, ex_model, hessian_support):
+ m = pyo.ConcreteModel()
+ m.egb = ExternalGreyBoxBlock()
+ m.egb.set_external_model(ex_model)
+ m.egb.inputs['Pin'].value = 100
+ m.egb.inputs['Pin'].setlb(50)
+ m.egb.inputs['Pin'].setub(150)
+ m.egb.inputs['c'].value = 2
+ m.egb.inputs['c'].setlb(1)
+ m.egb.inputs['c'].setub(5)
+ m.egb.inputs['F'].value = 3
+ m.egb.inputs['F'].setlb(1)
+ m.egb.inputs['F'].setub(5)
+ m.egb.outputs['P2'].value = 80
+ m.egb.outputs['P2'].setlb(10)
+ m.egb.outputs['P2'].setub(90)
+ m.egb.outputs['Pout'].value = 50
+ m.egb.outputs['Pout'].setlb(0)
+ m.egb.outputs['Pout'].setub(100)
+ m.obj = pyo.Objective(expr=(m.egb.outputs['Pout']-20)**2)
+ pyomo_nlp = PyomoNLPWithGreyBoxBlocks(m)
+
+ self.assertEqual(5, pyomo_nlp.n_primals())
+ self.assertEqual(2, pyomo_nlp.n_constraints())
+ self.assertEqual(8, pyomo_nlp.nnz_jacobian())
+ if hessian_support:
+ self.assertEqual(4, pyomo_nlp.nnz_hessian_lag())
+
+ comparison_x_order = ['egb.inputs[Pin]', 'egb.inputs[c]', 'egb.inputs[F]', 'egb.outputs[P2]', 'egb.outputs[Pout]']
+ x_order = pyomo_nlp.primals_names()
+ comparison_c_order = ['egb.output_constraints[P2]', 'egb.output_constraints[Pout]']
+ c_order = pyomo_nlp.constraint_names()
+
+ xlb = pyomo_nlp.primals_lb()
+ comparison_xlb = np.asarray([50, 1, 1, 10, 0], dtype=np.float64)
+ check_vectors_specific_order(self, xlb, x_order, comparison_xlb, comparison_x_order)
+ xub = pyomo_nlp.primals_ub()
+ comparison_xub = np.asarray([150, 5, 5, 90, 100], dtype=np.float64)
+ check_vectors_specific_order(self, xub, x_order, comparison_xub, comparison_x_order)
+ clb = pyomo_nlp.constraints_lb()
+ comparison_clb = np.asarray([0, 0], dtype=np.float64)
+ check_vectors_specific_order(self, clb, c_order, comparison_clb, comparison_c_order)
+ cub = pyomo_nlp.constraints_ub()
+ comparison_cub = np.asarray([0, 0], dtype=np.float64)
+ check_vectors_specific_order(self, cub, c_order, comparison_cub, comparison_c_order)
+
+ xinit = pyomo_nlp.init_primals()
+ comparison_xinit = np.asarray([100, 2, 3, 80, 50], dtype=np.float64)
+ check_vectors_specific_order(self, xinit, x_order, comparison_xinit, comparison_x_order)
+ duals_init = pyomo_nlp.init_duals()
+ comparison_duals_init = np.asarray([0, 0], dtype=np.float64)
+ check_vectors_specific_order(self, duals_init, c_order, comparison_duals_init, comparison_c_order)
+
+ self.assertEqual(5, len(pyomo_nlp.create_new_vector('primals')))
+ self.assertEqual(2, len(pyomo_nlp.create_new_vector('constraints')))
+ self.assertEqual(2, len(pyomo_nlp.create_new_vector('duals')))
+
+ pyomo_nlp.set_primals(np.asarray([1, 2, 3, 4, 5], dtype=np.float64))
+ x = pyomo_nlp.get_primals()
+ self.assertTrue(np.array_equal(x, np.asarray([1,2,3,4,5], dtype=np.float64)))
+ pyomo_nlp.set_primals(pyomo_nlp.init_primals())
+
+ pyomo_nlp.set_duals(np.asarray([42, 10], dtype=np.float64))
+ y = pyomo_nlp.get_duals()
+ self.assertTrue(np.array_equal(y, np.asarray([42, 10], dtype=np.float64)))
+ pyomo_nlp.set_duals(np.asarray([21, 5], dtype=np.float64))
+ y = pyomo_nlp.get_duals()
+ self.assertTrue(np.array_equal(y, np.asarray([21, 5], dtype=np.float64)))
+
+ fac = pyomo_nlp.get_obj_factor()
+ self.assertEqual(fac, 1)
+ pyomo_nlp.set_obj_factor(42)
+ self.assertEqual(pyomo_nlp.get_obj_factor(), 42)
+ pyomo_nlp.set_obj_factor(1)
+
+ f = pyomo_nlp.evaluate_objective()
+ self.assertEqual(f, 900)
+
+ gradf = pyomo_nlp.evaluate_grad_objective()
+ comparison_gradf = np.asarray([0, 0, 0, 0, 60], dtype=np.float64)
+ check_vectors_specific_order(self, gradf, x_order, comparison_gradf, comparison_x_order)
+ c = pyomo_nlp.evaluate_constraints()
+ comparison_c = np.asarray([-16, -22], dtype=np.float64)
+ check_vectors_specific_order(self, c, c_order, comparison_c, comparison_c_order)
+ c = np.zeros(2)
+ pyomo_nlp.evaluate_constraints(out=c)
+ check_vectors_specific_order(self, c, c_order, comparison_c, comparison_c_order)
+
+ j = pyomo_nlp.evaluate_jacobian()
+ comparison_j = np.asarray([[1, -18, -24, -1, 0], [1, -36, -48, 0, -1]])
+ check_sparse_matrix_specific_order(self, j, c_order, x_order, comparison_j, comparison_c_order, comparison_x_order)
+
+ j = 2.0*j
+ pyomo_nlp.evaluate_jacobian(out=j)
+ check_sparse_matrix_specific_order(self, j, c_order, x_order, comparison_j, comparison_c_order, comparison_x_order)
+
+ if hessian_support:
+ h = pyomo_nlp.evaluate_hessian_lag()
+ self.assertTrue(h.shape == (5,5))
+ comparison_h = np.asarray([[0, 0, 0, 0, 0],[0, 0, (-4*3*21) + (-8*3*5), 0, 0], [0, (-4*3*21) + (-8*3*5), (-4*2*21) + (-8*2*5), 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 2*1]], dtype=np.float64)
+ check_sparse_matrix_specific_order(self, h, x_order, x_order, comparison_h, comparison_x_order, comparison_x_order)
+ else:
+ with self.assertRaises(NotImplementedError):
+ h = pyomo_nlp.evaluate_hessian_lag()
+
+ def test_pressure_drop_two_equalities(self):
+ self._test_pressure_drop_two_equalities(ex_models.PressureDropTwoEqualities(), False)
+ self._test_pressure_drop_two_equalities(ex_models.PressureDropTwoEqualitiesWithHessian(), True)
+
+ def _test_pressure_drop_two_equalities(self, ex_model, hessian_support):
+ m = pyo.ConcreteModel()
+ m.egb = ExternalGreyBoxBlock()
+ m.egb.set_external_model(ex_model)
+ m.egb.inputs['Pin'].value = 100
+ m.egb.inputs['Pin'].setlb(50)
+ m.egb.inputs['Pin'].setub(150)
+ m.egb.inputs['c'].value = 2
+ m.egb.inputs['c'].setlb(1)
+ m.egb.inputs['c'].setub(5)
+ m.egb.inputs['F'].value = 3
+ m.egb.inputs['F'].setlb(1)
+ m.egb.inputs['F'].setub(5)
+ m.egb.inputs['P2'].value = 80
+ m.egb.inputs['P2'].setlb(10)
+ m.egb.inputs['P2'].setub(90)
+ m.egb.inputs['Pout'].value = 50
+ m.egb.inputs['Pout'].setlb(0)
+ m.egb.inputs['Pout'].setub(100)
+ m.obj = pyo.Objective(expr=(m.egb.inputs['Pout']-20)**2)
+ pyomo_nlp = PyomoNLPWithGreyBoxBlocks(m)
+
+ self.assertEqual(5, pyomo_nlp.n_primals())
+ self.assertEqual(2, pyomo_nlp.n_constraints())
+ self.assertEqual(8, pyomo_nlp.nnz_jacobian())
+ if hessian_support:
+ self.assertEqual(4, pyomo_nlp.nnz_hessian_lag())
+
+ comparison_x_order = ['egb.inputs[Pin]', 'egb.inputs[c]', 'egb.inputs[F]', 'egb.inputs[P2]', 'egb.inputs[Pout]']
+ x_order = pyomo_nlp.primals_names()
+ comparison_c_order = ['egb.pdrop2', 'egb.pdropout']
+ c_order = pyomo_nlp.constraint_names()
+
+ xlb = pyomo_nlp.primals_lb()
+ comparison_xlb = np.asarray([50, 1, 1, 10, 0], dtype=np.float64)
+ check_vectors_specific_order(self, xlb, x_order, comparison_xlb, comparison_x_order)
+ xub = pyomo_nlp.primals_ub()
+ comparison_xub = np.asarray([150, 5, 5, 90, 100], dtype=np.float64)
+ check_vectors_specific_order(self, xub, x_order, comparison_xub, comparison_x_order)
+ clb = pyomo_nlp.constraints_lb()
+ comparison_clb = np.asarray([0, 0], dtype=np.float64)
+ check_vectors_specific_order(self, clb, c_order, comparison_clb, comparison_c_order)
+ cub = pyomo_nlp.constraints_ub()
+ comparison_cub = np.asarray([0, 0], dtype=np.float64)
+ check_vectors_specific_order(self, cub, c_order, comparison_cub, comparison_c_order)
+
+ xinit = pyomo_nlp.init_primals()
+ comparison_xinit = np.asarray([100, 2, 3, 80, 50], dtype=np.float64)
+ check_vectors_specific_order(self, xinit, x_order, comparison_xinit, comparison_x_order)
+ duals_init = pyomo_nlp.init_duals()
+ comparison_duals_init = np.asarray([0, 0], dtype=np.float64)
+ check_vectors_specific_order(self, duals_init, c_order, comparison_duals_init, comparison_c_order)
+
+ self.assertEqual(5, len(pyomo_nlp.create_new_vector('primals')))
+ self.assertEqual(2, len(pyomo_nlp.create_new_vector('constraints')))
+ self.assertEqual(2, len(pyomo_nlp.create_new_vector('duals')))
+
+ pyomo_nlp.set_primals(np.asarray([1, 2, 3, 4, 5], dtype=np.float64))
+ x = pyomo_nlp.get_primals()
+ self.assertTrue(np.array_equal(x, np.asarray([1,2,3,4,5], dtype=np.float64)))
+ pyomo_nlp.set_primals(pyomo_nlp.init_primals())
+
+ pyomo_nlp.set_duals(np.asarray([42, 10], dtype=np.float64))
+ y = pyomo_nlp.get_duals()
+ self.assertTrue(np.array_equal(y, np.asarray([42, 10], dtype=np.float64)))
+ pyomo_nlp.set_duals(np.asarray([21, 5], dtype=np.float64))
+ y = pyomo_nlp.get_duals()
+ self.assertTrue(np.array_equal(y, np.asarray([21, 5], dtype=np.float64)))
+
+ fac = pyomo_nlp.get_obj_factor()
+ self.assertEqual(fac, 1)
+ pyomo_nlp.set_obj_factor(42)
+ self.assertEqual(pyomo_nlp.get_obj_factor(), 42)
+ pyomo_nlp.set_obj_factor(1)
+
+ f = pyomo_nlp.evaluate_objective()
+ self.assertEqual(f, 900)
+
+ gradf = pyomo_nlp.evaluate_grad_objective()
+ comparison_gradf = np.asarray([0, 0, 0, 0, 60], dtype=np.float64)
+ check_vectors_specific_order(self, gradf, x_order, comparison_gradf, comparison_x_order)
+ c = pyomo_nlp.evaluate_constraints()
+ comparison_c = np.asarray([16, 6], dtype=np.float64)
+ check_vectors_specific_order(self, c, c_order, comparison_c, comparison_c_order)
+ c = np.zeros(2)
+ pyomo_nlp.evaluate_constraints(out=c)
+ check_vectors_specific_order(self, c, c_order, comparison_c, comparison_c_order)
+
+ j = pyomo_nlp.evaluate_jacobian()
+ comparison_j = np.asarray([[-1, 18, 24, 1, 0], [0, 18, 24, -1, 1]])
+ check_sparse_matrix_specific_order(self, j, c_order, x_order, comparison_j, comparison_c_order, comparison_x_order)
+
+ j = 2.0*j
+ pyomo_nlp.evaluate_jacobian(out=j)
+ check_sparse_matrix_specific_order(self, j, c_order, x_order, comparison_j, comparison_c_order, comparison_x_order)
+
+ if hessian_support:
+ h = pyomo_nlp.evaluate_hessian_lag()
+ self.assertTrue(h.shape == (5,5))
+ comparison_h = np.asarray([[0, 0, 0, 0, 0],[0, 0, (4*3*21) + (4*3*5), 0, 0], [0, (4*3*21) + (4*3*5), (4*2*21) + (4*2*5), 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 2*1]], dtype=np.float64)
+ check_sparse_matrix_specific_order(self, h, x_order, x_order, comparison_h, comparison_x_order, comparison_x_order)
+ else:
+ with self.assertRaises(NotImplementedError):
+ h = pyomo_nlp.evaluate_hessian_lag()
+
+ def test_pressure_drop_two_equalities_two_outputs(self):
+ self._test_pressure_drop_two_equalities_two_outputs(ex_models.PressureDropTwoEqualitiesTwoOutputs(), False)
+ self._test_pressure_drop_two_equalities_two_outputs(ex_models.PressureDropTwoEqualitiesTwoOutputsWithHessian(), True)
+
+ def _test_pressure_drop_two_equalities_two_outputs(self, ex_model, hessian_support):
+ m = pyo.ConcreteModel()
+ m.egb = ExternalGreyBoxBlock()
+ m.egb.set_external_model(ex_model)
+ m.egb.inputs['Pin'].value = 100
+ m.egb.inputs['Pin'].setlb(50)
+ m.egb.inputs['Pin'].setub(150)
+ m.egb.inputs['c'].value = 2
+ m.egb.inputs['c'].setlb(1)
+ m.egb.inputs['c'].setub(5)
+ m.egb.inputs['F'].value = 3
+ m.egb.inputs['F'].setlb(1)
+ m.egb.inputs['F'].setub(5)
+ m.egb.inputs['P1'].value = 80
+ m.egb.inputs['P1'].setlb(10)
+ m.egb.inputs['P1'].setub(90)
+ m.egb.inputs['P3'].value = 70
+ m.egb.inputs['P3'].setlb(20)
+ m.egb.inputs['P3'].setub(80)
+ m.egb.outputs['P2'].value = 75
+ m.egb.outputs['P2'].setlb(15)
+ m.egb.outputs['P2'].setub(85)
+ m.egb.outputs['Pout'].value = 50
+ m.egb.outputs['Pout'].setlb(30)
+ m.egb.outputs['Pout'].setub(70)
+ m.obj = pyo.Objective(expr=(m.egb.outputs['Pout']-20)**2)
+ pyomo_nlp = PyomoNLPWithGreyBoxBlocks(m)
+
+ self.assertEqual(7, pyomo_nlp.n_primals())
+ self.assertEqual(4, pyomo_nlp.n_constraints())
+ self.assertEqual(16, pyomo_nlp.nnz_jacobian())
+ if hessian_support:
+ self.assertEqual(4, pyomo_nlp.nnz_hessian_lag())
+
+ comparison_x_order = ['egb.inputs[Pin]', 'egb.inputs[c]', 'egb.inputs[F]',
+ 'egb.inputs[P1]', 'egb.inputs[P3]',
+ 'egb.outputs[P2]', 'egb.outputs[Pout]']
+ x_order = pyomo_nlp.primals_names()
+ comparison_c_order = ['egb.pdrop1', 'egb.pdrop3', 'egb.output_constraints[P2]', 'egb.output_constraints[Pout]']
+ c_order = pyomo_nlp.constraint_names()
+
+ xlb = pyomo_nlp.primals_lb()
+ comparison_xlb = np.asarray([50, 1, 1, 10, 20, 15, 30], dtype=np.float64)
+ check_vectors_specific_order(self, xlb, x_order, comparison_xlb, comparison_x_order)
+ xub = pyomo_nlp.primals_ub()
+ comparison_xub = np.asarray([150, 5, 5, 90, 80, 85, 70], dtype=np.float64)
+ check_vectors_specific_order(self, xub, x_order, comparison_xub, comparison_x_order)
+ clb = pyomo_nlp.constraints_lb()
+ comparison_clb = np.asarray([0, 0, 0, 0], dtype=np.float64)
+ check_vectors_specific_order(self, clb, c_order, comparison_clb, comparison_c_order)
+ cub = pyomo_nlp.constraints_ub()
+ comparison_cub = np.asarray([0, 0, 0, 0], dtype=np.float64)
+ check_vectors_specific_order(self, cub, c_order, comparison_cub, comparison_c_order)
+
+ xinit = pyomo_nlp.init_primals()
+ comparison_xinit = np.asarray([100, 2, 3, 80, 70, 75, 50], dtype=np.float64)
+ check_vectors_specific_order(self, xinit, x_order, comparison_xinit, comparison_x_order)
+ duals_init = pyomo_nlp.init_duals()
+ comparison_duals_init = np.asarray([0, 0, 0, 0], dtype=np.float64)
+ check_vectors_specific_order(self, duals_init, c_order, comparison_duals_init, comparison_c_order)
+
+ self.assertEqual(7, len(pyomo_nlp.create_new_vector('primals')))
+ self.assertEqual(4, len(pyomo_nlp.create_new_vector('constraints')))
+ self.assertEqual(4, len(pyomo_nlp.create_new_vector('duals')))
+
+ pyomo_nlp.set_primals(np.asarray([1, 2, 3, 4, 5, 6, 7], dtype=np.float64))
+ x = pyomo_nlp.get_primals()
+ self.assertTrue(np.array_equal(x, np.asarray([1,2,3,4,5,6,7], dtype=np.float64)))
+ pyomo_nlp.set_primals(pyomo_nlp.init_primals())
+
+ pyomo_nlp.set_duals(np.asarray([42, 10, 11, 12], dtype=np.float64))
+ y = pyomo_nlp.get_duals()
+ self.assertTrue(np.array_equal(y, np.asarray([42, 10, 11, 12], dtype=np.float64)))
+ pyomo_nlp.set_duals(np.asarray([21, 5, 6, 7], dtype=np.float64))
+ y = pyomo_nlp.get_duals()
+ self.assertTrue(np.array_equal(y, np.asarray([21, 5, 6, 7], dtype=np.float64)))
+
+ fac = pyomo_nlp.get_obj_factor()
+ self.assertEqual(fac, 1)
+ pyomo_nlp.set_obj_factor(42)
+ self.assertEqual(pyomo_nlp.get_obj_factor(), 42)
+ pyomo_nlp.set_obj_factor(1)
+
+ f = pyomo_nlp.evaluate_objective()
+ self.assertEqual(f, 900)
+
+ gradf = pyomo_nlp.evaluate_grad_objective()
+ comparison_gradf = np.asarray([0, 0, 0, 0, 0, 0, 60], dtype=np.float64)
+ check_vectors_specific_order(self, gradf, x_order, comparison_gradf, comparison_x_order)
+ c = pyomo_nlp.evaluate_constraints()
+ comparison_c = np.asarray([-2, 26, -13, -22], dtype=np.float64)
+ check_vectors_specific_order(self, c, c_order, comparison_c, comparison_c_order)
+ c = np.zeros(4)
+ pyomo_nlp.evaluate_constraints(out=c)
+ check_vectors_specific_order(self, c, c_order, comparison_c, comparison_c_order)
+
+ j = pyomo_nlp.evaluate_jacobian()
+ comparison_j = np.asarray([[-1, 9, 12, 1, 0, 0, 0],
+ [ 0, 18, 24, -1, 1, 0, 0],
+ [ 0, -9, -12, 1, 0, -1, 0],
+ [ 1, -36, -48, 0, 0, 0, -1]])
+ check_sparse_matrix_specific_order(self, j, c_order, x_order, comparison_j, comparison_c_order, comparison_x_order)
+
+ j = 2.0*j
+ pyomo_nlp.evaluate_jacobian(out=j)
+ check_sparse_matrix_specific_order(self, j, c_order, x_order, comparison_j, comparison_c_order, comparison_x_order)
+
+ if hessian_support:
+ h = pyomo_nlp.evaluate_hessian_lag()
+ self.assertTrue(h.shape == (7,7))
+ comparison_h = np.asarray([[0, 0, 0, 0, 0, 0, 0],
+ [0, 0, (2*3*21) + (4*3*5) + (-2*3*6) + (-8*3*7), 0, 0, 0, 0],
+ [0, (2*3*21) + (4*3*5) + (-2*3*6) + (-8*3*7), (2*2*21) + (4*2*5) + (-2*2*6) + (-8*2*7), 0, 0, 0, 0],
+ [0, 0, 0, 0, 0, 0, 0],
+ [0, 0, 0, 0, 0, 0, 0],
+ [0, 0, 0, 0, 0, 0, 0],
+ [0, 0, 0, 0, 0, 0, 2*1]],
+ dtype=np.float64)
+ check_sparse_matrix_specific_order(self, h, x_order, x_order, comparison_h, comparison_x_order, comparison_x_order)
+ else:
+ with self.assertRaises(NotImplementedError):
+ h = pyomo_nlp.evaluate_hessian_lag()
+
+ def test_external_additional_constraints_vars(self):
+ self._test_external_additional_constraints_vars(ex_models.PressureDropTwoEqualitiesTwoOutputs(), False)
+ self._test_external_additional_constraints_vars(ex_models.PressureDropTwoEqualitiesTwoOutputsWithHessian(), True)
+
+ def _test_external_additional_constraints_vars(self, ex_model, hessian_support):
+ m = pyo.ConcreteModel()
+ m.hin = pyo.Var(bounds=(0,None), initialize=10)
+ m.hout = pyo.Var(bounds=(0,None))
+ m.egb = ExternalGreyBoxBlock()
+ m.egb.set_external_model(ex_model)
+ m.incon = pyo.Constraint(expr= 0 <= m.egb.inputs['Pin'] - 10*m.hin)
+ m.outcon = pyo.Constraint(expr= 0 == m.egb.outputs['Pout'] - 10*m.hout)
+ m.egb.inputs['Pin'].value = 100
+ m.egb.inputs['Pin'].setlb(50)
+ m.egb.inputs['Pin'].setub(150)
+ m.egb.inputs['c'].value = 2
+ m.egb.inputs['c'].setlb(1)
+ m.egb.inputs['c'].setub(5)
+ m.egb.inputs['F'].value = 3
+ m.egb.inputs['F'].setlb(1)
+ m.egb.inputs['F'].setub(5)
+ m.egb.inputs['P1'].value = 80
+ m.egb.inputs['P1'].setlb(10)
+ m.egb.inputs['P1'].setub(90)
+ m.egb.inputs['P3'].value = 70
+ m.egb.inputs['P3'].setlb(20)
+ m.egb.inputs['P3'].setub(80)
+ m.egb.outputs['P2'].value = 75
+ m.egb.outputs['P2'].setlb(15)
+ m.egb.outputs['P2'].setub(85)
+ m.egb.outputs['Pout'].value = 50
+ m.egb.outputs['Pout'].setlb(30)
+ m.egb.outputs['Pout'].setub(70)
+ m.obj = pyo.Objective(expr=(m.egb.outputs['Pout']-20)**2)
+ pyomo_nlp = PyomoNLPWithGreyBoxBlocks(m)
+
+ self.assertEqual(9, pyomo_nlp.n_primals())
+ self.assertEqual(6, pyomo_nlp.n_constraints())
+ self.assertEqual(20, pyomo_nlp.nnz_jacobian())
+ if hessian_support:
+ self.assertEqual(4, pyomo_nlp.nnz_hessian_lag())
+
+ comparison_x_order = ['egb.inputs[Pin]', 'egb.inputs[c]', 'egb.inputs[F]',
+ 'egb.inputs[P1]', 'egb.inputs[P3]',
+ 'egb.outputs[P2]', 'egb.outputs[Pout]',
+ 'hin', 'hout']
+ x_order = pyomo_nlp.primals_names()
+ comparison_c_order = ['egb.pdrop1', 'egb.pdrop3', 'egb.output_constraints[P2]', 'egb.output_constraints[Pout]', 'incon', 'outcon']
+ c_order = pyomo_nlp.constraint_names()
+
+ xlb = pyomo_nlp.primals_lb()
+ comparison_xlb = np.asarray([50, 1, 1, 10, 20, 15, 30, 0, 0], dtype=np.float64)
+ check_vectors_specific_order(self, xlb, x_order, comparison_xlb, comparison_x_order)
+ xub = pyomo_nlp.primals_ub()
+ comparison_xub = np.asarray([150, 5, 5, 90, 80, 85, 70, np.inf, np.inf], dtype=np.float64)
+ check_vectors_specific_order(self, xub, x_order, comparison_xub, comparison_x_order)
+ clb = pyomo_nlp.constraints_lb()
+ comparison_clb = np.asarray([0, 0, 0, 0, 0, 0], dtype=np.float64)
+ check_vectors_specific_order(self, clb, c_order, comparison_clb, comparison_c_order)
+ cub = pyomo_nlp.constraints_ub()
+ comparison_cub = np.asarray([0, 0, 0, 0, np.inf, 0], dtype=np.float64)
+ check_vectors_specific_order(self, cub, c_order, comparison_cub, comparison_c_order)
+
+ xinit = pyomo_nlp.init_primals()
+ comparison_xinit = np.asarray([100, 2, 3, 80, 70, 75, 50, 10, 0], dtype=np.float64)
+ check_vectors_specific_order(self, xinit, x_order, comparison_xinit, comparison_x_order)
+ duals_init = pyomo_nlp.init_duals()
+ comparison_duals_init = np.asarray([0, 0, 0, 0, 0, 0], dtype=np.float64)
+ check_vectors_specific_order(self, duals_init, c_order, comparison_duals_init, comparison_c_order)
+
+ self.assertEqual(9, len(pyomo_nlp.create_new_vector('primals')))
+ self.assertEqual(6, len(pyomo_nlp.create_new_vector('constraints')))
+ self.assertEqual(6, len(pyomo_nlp.create_new_vector('duals')))
+
+ pyomo_nlp.set_primals(np.asarray([1, 2, 3, 4, 5, 6, 7, 8, 9], dtype=np.float64))
+ x = pyomo_nlp.get_primals()
+ self.assertTrue(np.array_equal(x, np.asarray([1,2,3,4,5,6,7,8,9], dtype=np.float64)))
+ pyomo_nlp.set_primals(pyomo_nlp.init_primals())
+
+ pyomo_nlp.set_duals(np.asarray([42, 10, 11, 12, 13, 14], dtype=np.float64))
+ y = pyomo_nlp.get_duals()
+ self.assertTrue(np.array_equal(y, np.asarray([42, 10, 11, 12, 13, 14], dtype=np.float64)))
+ pyomo_nlp.set_duals(np.asarray([0, 0, 21, 5, 6, 7], dtype=np.float64))
+ y = pyomo_nlp.get_duals()
+ self.assertTrue(np.array_equal(y, np.asarray([0, 0, 21, 5, 6, 7], dtype=np.float64)))
+
+ fac = pyomo_nlp.get_obj_factor()
+ self.assertEqual(fac, 1)
+ pyomo_nlp.set_obj_factor(42)
+ self.assertEqual(pyomo_nlp.get_obj_factor(), 42)
+ pyomo_nlp.set_obj_factor(1)
+
+ f = pyomo_nlp.evaluate_objective()
+ self.assertEqual(f, 900)
+
+ gradf = pyomo_nlp.evaluate_grad_objective()
+ comparison_gradf = np.asarray([0, 0, 0, 0, 0, 0, 60, 0, 0], dtype=np.float64)
+ check_vectors_specific_order(self, gradf, x_order, comparison_gradf, comparison_x_order)
+ c = pyomo_nlp.evaluate_constraints()
+ comparison_c = np.asarray([-2, 26, -13, -22, 0, 50], dtype=np.float64)
+ check_vectors_specific_order(self, c, c_order, comparison_c, comparison_c_order)
+ c = np.zeros(6)
+ pyomo_nlp.evaluate_constraints(out=c)
+ check_vectors_specific_order(self, c, c_order, comparison_c, comparison_c_order)
+
+ j = pyomo_nlp.evaluate_jacobian()
+ comparison_j = np.asarray([[-1, 9, 12, 1, 0, 0, 0, 0, 0],
+ [ 0, 18, 24, -1, 1, 0, 0, 0, 0],
+ [ 0, -9, -12, 1, 0, -1, 0, 0, 0],
+ [ 1, -36, -48, 0, 0, 0, -1, 0, 0],
+ [ 1, 0, 0, 0, 0, 0, 0, -10, 0],
+ [ 0, 0, 0, 0, 0, 0, 1, 0, -10]])
+
+ check_sparse_matrix_specific_order(self, j, c_order, x_order, comparison_j, comparison_c_order, comparison_x_order)
+
+ j = 2.0*j
+ pyomo_nlp.evaluate_jacobian(out=j)
+ check_sparse_matrix_specific_order(self, j, c_order, x_order, comparison_j, comparison_c_order, comparison_x_order)
+
+ if hessian_support:
+ h = pyomo_nlp.evaluate_hessian_lag()
+ self.assertTrue(h.shape == (9,9))
+ comparison_h = np.asarray([[0, 0, 0, 0, 0, 0, 0, 0, 0],
+ [0, 0, (2*3*21) + (4*3*5) + (-2*3*6) + (-8*3*7), 0, 0, 0, 0, 0, 0],
+ [0, (2*3*21) + (4*3*5) + (-2*3*6) + (-8*3*7), (2*2*21) + (4*2*5) + (-2*2*6) + (-8*2*7), 0, 0, 0, 0, 0, 0],
+ [0, 0, 0, 0, 0, 0, 0, 0, 0],
+ [0, 0, 0, 0, 0, 0, 0, 0, 0],
+ [0, 0, 0, 0, 0, 0, 0, 0, 0],
+ [0, 0, 0, 0, 0, 0, 2*1, 0, 0],
+ [0, 0, 0, 0, 0, 0, 0, 0, 0],
+ [0, 0, 0, 0, 0, 0, 0, 0, 0]],
+ dtype=np.float64)
+ check_sparse_matrix_specific_order(self, h, x_order, x_order, comparison_h, comparison_x_order, comparison_x_order)
+ else:
+ with self.assertRaises(NotImplementedError):
+ h = pyomo_nlp.evaluate_hessian_lag()
+
+ @unittest.skipIf(not ipopt_available, "CyIpopt needed to run tests with solve")
+ def test_external_greybox_solve(self):
+ self._test_external_greybox_solve(ex_models.PressureDropTwoEqualitiesTwoOutputs(), False)
+ self._test_external_greybox_solve(ex_models.PressureDropTwoEqualitiesTwoOutputsWithHessian(), True)
+
+ def _test_external_greybox_solve(self, ex_model, hessian_support):
+ m = pyo.ConcreteModel()
+ m.mu = pyo.Var(bounds=(0,None), initialize=1)
+ m.egb = ExternalGreyBoxBlock()
+ m.egb.set_external_model(ex_model)
+ m.ccon = pyo.Constraint(expr = m.egb.inputs['c'] == 128/(3.14*1e-4)*m.mu*m.egb.inputs['F'])
+ m.pcon = pyo.Constraint(expr = m.egb.inputs['Pin'] - m.egb.outputs['Pout'] <= 72)
+ m.pincon = pyo.Constraint(expr = m.egb.inputs['Pin'] == 100.0)
+ m.egb.inputs['Pin'].value = 100
+ m.egb.inputs['Pin'].setlb(50)
+ m.egb.inputs['Pin'].setub(150)
+ m.egb.inputs['c'].value = 2
+ m.egb.inputs['c'].setlb(1)
+ m.egb.inputs['c'].setub(5)
+ m.egb.inputs['F'].value = 3
+ m.egb.inputs['F'].setlb(1)
+ m.egb.inputs['F'].setub(5)
+ m.egb.inputs['P1'].value = 80
+ m.egb.inputs['P1'].setlb(10)
+ m.egb.inputs['P1'].setub(90)
+ m.egb.inputs['P3'].value = 70
+ m.egb.inputs['P3'].setlb(20)
+ m.egb.inputs['P3'].setub(80)
+ m.egb.outputs['P2'].value = 75
+ m.egb.outputs['P2'].setlb(15)
+ m.egb.outputs['P2'].setub(85)
+ m.egb.outputs['Pout'].value = 50
+ m.egb.outputs['Pout'].setlb(10)
+ m.egb.outputs['Pout'].setub(70)
+ m.obj = pyo.Objective(expr=(m.egb.outputs['Pout']-20)**2 + (m.egb.inputs['F']-3)**2)
+
+ solver = pyo.SolverFactory('cyipopt')
+ if not hessian_support:
+ solver.config.options = {'hessian_approximation':'limited-memory'}
+ status = solver.solve(m, tee=False)
+
+ self.assertAlmostEqual(pyo.value(m.egb.inputs['F']), 3.0, places=3)
+ self.assertAlmostEqual(pyo.value(m.mu), 1.63542e-6, places=3)
+ self.assertAlmostEqual(pyo.value(m.egb.outputs['Pout']), 28.0, places=3)
+ self.assertAlmostEqual(pyo.value(m.egb.inputs['Pin']), 100.0, places=3)
+ self.assertAlmostEqual(pyo.value(m.egb.inputs['c']), 2.0, places=3)
+ self.assertAlmostEqual(pyo.value(m.egb.inputs['P1']), 82.0, places=3)
+ self.assertAlmostEqual(pyo.value(m.egb.inputs['P3']), 46.0, places=3)
+ self.assertAlmostEqual(pyo.value(m.egb.outputs['P2']), 64.0, places=3)
+
+ def create_model_two_equalities_two_outputs(self, external_model):
+ m = pyo.ConcreteModel()
+ m.hin = pyo.Var(bounds=(0,None), initialize=10)
+ m.hout = pyo.Var(bounds=(0,None))
+ m.egb = ExternalGreyBoxBlock()
+ m.egb.set_external_model(external_model)
+ m.incon = pyo.Constraint(expr= 0 <= m.egb.inputs['Pin'] - 10*m.hin)
+ m.outcon = pyo.Constraint(expr= 0 == m.egb.outputs['Pout'] - 10*m.hout)
+ m.egb.inputs['Pin'].value = 100
+ m.egb.inputs['Pin'].setlb(50)
+ m.egb.inputs['Pin'].setub(150)
+ m.egb.inputs['c'].value = 2
+ m.egb.inputs['c'].setlb(1)
+ m.egb.inputs['c'].setub(5)
+ m.egb.inputs['F'].value = 3
+ m.egb.inputs['F'].setlb(1)
+ m.egb.inputs['F'].setub(5)
+ m.egb.inputs['P1'].value = 80
+ m.egb.inputs['P1'].setlb(10)
+ m.egb.inputs['P1'].setub(90)
+ m.egb.inputs['P3'].value = 70
+ m.egb.inputs['P3'].setlb(20)
+ m.egb.inputs['P3'].setub(80)
+ m.egb.outputs['P2'].value = 75
+ m.egb.outputs['P2'].setlb(15)
+ m.egb.outputs['P2'].setub(85)
+ m.egb.outputs['Pout'].value = 50
+ m.egb.outputs['Pout'].setlb(30)
+ m.egb.outputs['Pout'].setub(70)
+ return m
+
+ def test_scaling_all_missing(self):
+ m = self.create_model_two_equalities_two_outputs(ex_models.PressureDropTwoEqualitiesTwoOutputs())
+ m.obj = pyo.Objective(expr=(m.egb.outputs['Pout']-20)**2)
+ pyomo_nlp = PyomoNLPWithGreyBoxBlocks(m)
+ fs = pyomo_nlp.get_obj_scaling()
+ xs = pyomo_nlp.get_primals_scaling()
+ cs = pyomo_nlp.get_constraints_scaling()
+ self.assertIsNone(fs)
+ self.assertIsNone(xs)
+ self.assertIsNone(cs)
+
+ def test_scaling_pyomo_model_only(self):
+ m = self.create_model_two_equalities_two_outputs(ex_models.PressureDropTwoEqualitiesTwoOutputs())
+ m.obj = pyo.Objective(expr=(m.egb.outputs['Pout']-20)**2)
+ m.scaling_factor = pyo.Suffix(direction=pyo.Suffix.EXPORT)
+ #m.scaling_factor[m.obj] = 0.1 # scale the objective
+ m.scaling_factor[m.egb.inputs['Pin']] = 1.1 # scale the variable
+ m.scaling_factor[m.egb.inputs['c']] = 1.2 # scale the variable
+ m.scaling_factor[m.egb.inputs['F']] = 1.3 # scale the variable
+ #m.scaling_factor[m.egb.inputs['P1']] = 1.4 # scale the variable
+ m.scaling_factor[m.egb.inputs['P3']] = 1.5 # scale the variable
+ m.scaling_factor[m.egb.outputs['P2']] = 1.6 # scale the variable
+ m.scaling_factor[m.egb.outputs['Pout']] = 1.7 # scale the variable
+ #m.scaling_factor[m.hin] = 1.8
+ m.scaling_factor[m.hout] = 1.9
+ #m.scaling_factor[m.incon] = 2.1
+ m.scaling_factor[m.outcon] = 2.2
+ pyomo_nlp = PyomoNLPWithGreyBoxBlocks(m)
+
+ comparison_x_order = ['egb.inputs[Pin]', 'egb.inputs[c]', 'egb.inputs[F]',
+ 'egb.inputs[P1]', 'egb.inputs[P3]',
+ 'egb.outputs[P2]', 'egb.outputs[Pout]',
+ 'hin', 'hout']
+ x_order = pyomo_nlp.primals_names()
+ comparison_c_order = ['egb.pdrop1', 'egb.pdrop3', 'egb.output_constraints[P2]', 'egb.output_constraints[Pout]', 'incon', 'outcon']
+ c_order = pyomo_nlp.constraint_names()
+
+ fs = pyomo_nlp.get_obj_scaling()
+ self.assertEqual(fs, 1.0)
+
+ xs = pyomo_nlp.get_primals_scaling()
+ comparison_xs = np.asarray([1.1, 1.2, 1.3, 1.0, 1.5, 1.6, 1.7, 1.0, 1.9], dtype=np.float64)
+ check_vectors_specific_order(self, xs, x_order, comparison_xs, comparison_x_order)
+
+ cs = pyomo_nlp.get_constraints_scaling()
+ comparison_cs = np.asarray([1, 1, 1, 1, 1, 2.2], dtype=np.float64)
+ check_vectors_specific_order(self, cs, c_order, comparison_cs, comparison_c_order)
+
+ def test_scaling_greybox_only(self):
+ m = self.create_model_two_equalities_two_outputs(ex_models.PressureDropTwoEqualitiesTwoOutputsScaleBoth())
+ m.obj = pyo.Objective(expr=(m.egb.outputs['Pout']-20)**2)
+ pyomo_nlp = PyomoNLPWithGreyBoxBlocks(m)
+
+ comparison_x_order = ['egb.inputs[Pin]', 'egb.inputs[c]', 'egb.inputs[F]',
+ 'egb.inputs[P1]', 'egb.inputs[P3]',
+ 'egb.outputs[P2]', 'egb.outputs[Pout]',
+ 'hin', 'hout']
+ x_order = pyomo_nlp.primals_names()
+ comparison_c_order = ['egb.pdrop1', 'egb.pdrop3', 'egb.output_constraints[P2]', 'egb.output_constraints[Pout]', 'incon', 'outcon']
+ c_order = pyomo_nlp.constraint_names()
+
+ fs = pyomo_nlp.get_obj_scaling()
+ self.assertEqual(fs, 1.0)
+
+ xs = pyomo_nlp.get_primals_scaling()
+ comparison_xs = np.asarray([1, 1, 1, 1, 1, 1, 1, 1, 1], dtype=np.float64)
+ check_vectors_specific_order(self, xs, x_order, comparison_xs, comparison_x_order)
+
+ cs = pyomo_nlp.get_constraints_scaling()
+ comparison_cs = np.asarray([3.1, 3.2, 4.1, 4.2, 1, 1], dtype=np.float64)
+ check_vectors_specific_order(self, cs, c_order, comparison_cs, comparison_c_order)
+
+ m = self.create_model_two_equalities_two_outputs(ex_models.PressureDropTwoEqualitiesTwoOutputsScaleEqualities())
+ m.obj = pyo.Objective(expr=(m.egb.outputs['Pout']-20)**2)
+ pyomo_nlp = PyomoNLPWithGreyBoxBlocks(m)
+ cs = pyomo_nlp.get_constraints_scaling()
+ comparison_cs = np.asarray([3.1, 3.2, 1, 1, 1, 1], dtype=np.float64)
+ check_vectors_specific_order(self, cs, c_order, comparison_cs, comparison_c_order)
+
+ m = self.create_model_two_equalities_two_outputs(ex_models.PressureDropTwoEqualitiesTwoOutputsScaleOutputs())
+ m.obj = pyo.Objective(expr=(m.egb.outputs['Pout']-20)**2)
+ pyomo_nlp = PyomoNLPWithGreyBoxBlocks(m)
+ cs = pyomo_nlp.get_constraints_scaling()
+ comparison_cs = np.asarray([1, 1, 4.1, 4.2, 1, 1], dtype=np.float64)
+ check_vectors_specific_order(self, cs, c_order, comparison_cs, comparison_c_order)
+
+ def test_scaling_pyomo_model_and_greybox(self):
+ m = self.create_model_two_equalities_two_outputs(ex_models.PressureDropTwoEqualitiesTwoOutputsScaleBoth())
+ m.obj = pyo.Objective(expr=(m.egb.outputs['Pout']-20)**2)
+ m.scaling_factor = pyo.Suffix(direction=pyo.Suffix.EXPORT)
+ #m.scaling_factor[m.obj] = 0.1 # scale the objective
+ m.scaling_factor[m.egb.inputs['Pin']] = 1.1 # scale the variable
+ m.scaling_factor[m.egb.inputs['c']] = 1.2 # scale the variable
+ m.scaling_factor[m.egb.inputs['F']] = 1.3 # scale the variable
+ #m.scaling_factor[m.egb.inputs['P1']] = 1.4 # scale the variable
+ m.scaling_factor[m.egb.inputs['P3']] = 1.5 # scale the variable
+ m.scaling_factor[m.egb.outputs['P2']] = 1.6 # scale the variable
+ m.scaling_factor[m.egb.outputs['Pout']] = 1.7 # scale the variable
+ #m.scaling_factor[m.hin] = 1.8
+ m.scaling_factor[m.hout] = 1.9
+ #m.scaling_factor[m.incon] = 2.1
+ m.scaling_factor[m.outcon] = 2.2
+ pyomo_nlp = PyomoNLPWithGreyBoxBlocks(m)
+
+ comparison_x_order = ['egb.inputs[Pin]', 'egb.inputs[c]', 'egb.inputs[F]',
+ 'egb.inputs[P1]', 'egb.inputs[P3]',
+ 'egb.outputs[P2]', 'egb.outputs[Pout]',
+ 'hin', 'hout']
+ x_order = pyomo_nlp.primals_names()
+ comparison_c_order = ['egb.pdrop1', 'egb.pdrop3', 'egb.output_constraints[P2]', 'egb.output_constraints[Pout]', 'incon', 'outcon']
+ c_order = pyomo_nlp.constraint_names()
+
+ fs = pyomo_nlp.get_obj_scaling()
+ self.assertEqual(fs, 1.0)
+
+ xs = pyomo_nlp.get_primals_scaling()
+ comparison_xs = np.asarray([1.1, 1.2, 1.3, 1.0, 1.5, 1.6, 1.7, 1.0, 1.9], dtype=np.float64)
+ check_vectors_specific_order(self, xs, x_order, comparison_xs, comparison_x_order)
+
+ cs = pyomo_nlp.get_constraints_scaling()
+ comparison_cs = np.asarray([3.1, 3.2, 4.1, 4.2, 1, 2.2], dtype=np.float64)
+ check_vectors_specific_order(self, cs, c_order, comparison_cs, comparison_c_order)
+
+ @unittest.skipIf(not ipopt_available, "CyIpopt needed to run tests with solve")
+ def test_external_greybox_solve_scaling(self):
+ m = pyo.ConcreteModel()
+ m.mu = pyo.Var(bounds=(0,None), initialize=1)
+ m.egb = ExternalGreyBoxBlock()
+ m.egb.set_external_model(ex_models.PressureDropTwoEqualitiesTwoOutputsScaleBoth())
+ m.ccon = pyo.Constraint(expr = m.egb.inputs['c'] == 128/(3.14*1e-4)*m.mu*m.egb.inputs['F'])
+ m.pcon = pyo.Constraint(expr = m.egb.inputs['Pin'] - m.egb.outputs['Pout'] <= 72)
+ m.pincon = pyo.Constraint(expr = m.egb.inputs['Pin'] == 100.0)
+ m.egb.inputs['Pin'].value = 100
+ m.egb.inputs['Pin'].setlb(50)
+ m.egb.inputs['Pin'].setub(150)
+ m.egb.inputs['c'].value = 2
+ m.egb.inputs['c'].setlb(1)
+ m.egb.inputs['c'].setub(5)
+ m.egb.inputs['F'].value = 3
+ m.egb.inputs['F'].setlb(1)
+ m.egb.inputs['F'].setub(5)
+ m.egb.inputs['P1'].value = 80
+ m.egb.inputs['P1'].setlb(10)
+ m.egb.inputs['P1'].setub(90)
+ m.egb.inputs['P3'].value = 70
+ m.egb.inputs['P3'].setlb(20)
+ m.egb.inputs['P3'].setub(80)
+ m.egb.outputs['P2'].value = 75
+ m.egb.outputs['P2'].setlb(15)
+ m.egb.outputs['P2'].setub(85)
+ m.egb.outputs['Pout'].value = 50
+ m.egb.outputs['Pout'].setlb(10)
+ m.egb.outputs['Pout'].setub(70)
+ m.obj = pyo.Objective(expr=(m.egb.outputs['Pout']-20)**2 + (m.egb.inputs['F']-3)**2)
+
+ m.scaling_factor = pyo.Suffix(direction=pyo.Suffix.EXPORT)
+ m.scaling_factor[m.obj] = 0.1 # scale the objective
+ m.scaling_factor[m.egb.inputs['Pin']] = 1.1 # scale the variable
+ m.scaling_factor[m.egb.inputs['c']] = 1.2 # scale the variable
+ m.scaling_factor[m.egb.inputs['F']] = 1.3 # scale the variable
+ #m.scaling_factor[m.egb.inputs['P1']] = 1.4 # scale the variable
+ m.scaling_factor[m.egb.inputs['P3']] = 1.5 # scale the variable
+ m.scaling_factor[m.egb.outputs['P2']] = 1.6 # scale the variable
+ m.scaling_factor[m.egb.outputs['Pout']] = 1.7 # scale the variable
+ m.scaling_factor[m.mu] = 1.9
+ m.scaling_factor[m.pincon] = 2.2
+
+ solver = pyo.SolverFactory('cyipopt')
+ solver.config.options = {'hessian_approximation':'limited-memory',
+ 'nlp_scaling_method': 'user-scaling',
+ 'output_file': '_cyipopt-external-greybox-scaling.log',
+ 'file_print_level':10,
+ 'max_iter': 0}
+ status = solver.solve(m, tee=False)
+
+ with open('_cyipopt-external-greybox-scaling.log', 'r') as fd:
+ solver_trace = fd.read()
+ os.remove('_cyipopt-external-greybox-scaling.log')
+
+ self.assertIn('nlp_scaling_method = user-scaling', solver_trace)
+ self.assertIn('output_file = _cyipopt-external-greybox-scaling.log', solver_trace)
+ self.assertIn('objective scaling factor = 0.1', solver_trace)
+ self.assertIn('x scaling provided', solver_trace)
+ self.assertIn('c scaling provided', solver_trace)
+ self.assertIn('d scaling provided', solver_trace)
+ # x_order: ['egb.inputs[F]', 'egb.inputs[P1]', 'egb.inputs[P3]', 'egb.inputs[Pin]', 'egb.inputs[c]', 'egb.outputs[P2]', 'egb.outputs[Pout]', 'mu']
+ # c_order: ['ccon', 'pcon', 'pincon', 'egb.pdrop1', 'egb.pdrop3', 'egb.output_constraints[P2]', 'egb.output_constraints[Pout]']
+ self.assertIn('DenseVector "x scaling vector" with 8 elements:', solver_trace)
+ self.assertIn('x scaling vector[ 1]= 1.3000000000000000e+00', solver_trace) # F
+ self.assertIn('x scaling vector[ 8]= 1.8999999999999999e+00', solver_trace) # mu
+ self.assertIn('x scaling vector[ 7]= 1.7000000000000000e+00', solver_trace) # Pout
+ self.assertIn('x scaling vector[ 4]= 1.1000000000000001e+00', solver_trace) # Pin
+ self.assertIn('x scaling vector[ 5]= 1.2000000000000000e+00', solver_trace) # c
+ self.assertIn('x scaling vector[ 2]= 1.0000000000000000e+00', solver_trace) # P1
+ self.assertIn('x scaling vector[ 3]= 1.5000000000000000e+00', solver_trace) # P3
+ self.assertIn('x scaling vector[ 6]= 1.6000000000000001e+00', solver_trace) # P2
+ self.assertIn('DenseVector "c scaling vector" with 6 elements:', solver_trace)
+ self.assertIn('c scaling vector[ 1]= 1.0000000000000000e+00', solver_trace) # ccon
+ self.assertIn('c scaling vector[ 2]= 2.2000000000000002e+00', solver_trace) # pincon
+ self.assertIn('c scaling vector[ 3]= 3.1000000000000001e+00', solver_trace) # pdrop1
+ self.assertIn('c scaling vector[ 4]= 3.2000000000000002e+00', solver_trace) # pdrop3
+ self.assertIn('c scaling vector[ 5]= 4.0999999999999996e+00', solver_trace) # P2_con
+ self.assertIn('c scaling vector[ 6]= 4.2000000000000002e+00', solver_trace) # Pout_con
+ self.assertIn('DenseVector "d scaling vector" with 1 elements:', solver_trace)
+ self.assertIn('d scaling vector[ 1]= 1.0000000000000000e+00', solver_trace) # pcon
+
+ @unittest.skipIf(not ipopt_available, "CyIpopt needed to run tests with solve")
+ def test_duals_after_solve(self):
+ m = pyo.ConcreteModel()
+ m.p = pyo.Var(initialize=1)
+ m.egb = ExternalGreyBoxBlock()
+ m.egb.set_external_model(ex_models.OneOutput())
+ m.con = pyo.Constraint(expr=4*m.p-2*m.egb.outputs['o'] == 0)
+ m.obj = pyo.Objective(expr=10*m.p**2)
+
+ # we want to check dual information so we need the suffixes
+ m.dual = pyo.Suffix(direction=pyo.Suffix.IMPORT_EXPORT)
+ m.ipopt_zL_out = pyo.Suffix(direction=pyo.Suffix.IMPORT_EXPORT)
+ m.ipopt_zU_out = pyo.Suffix(direction=pyo.Suffix.IMPORT_EXPORT)
+
+ solver = pyo.SolverFactory('cyipopt')
+ status = solver.solve(m, tee=False)
+
+ self.assertAlmostEqual(pyo.value(m.p), 10.0, places=3)
+ self.assertAlmostEqual(pyo.value(m.egb.inputs['u']), 4.0, places=3)
+ self.assertAlmostEqual(pyo.value(m.egb.outputs['o']), 20.0, places=3)
+ self.assertAlmostEqual(pyo.value(m.dual[m.con]), 50.0, places=3)
+ self.assertAlmostEqual(m.dual[m.egb]['egb.output_constraints[o]'], -100.0, places=3)
+ self.assertAlmostEqual(pyo.value(m.ipopt_zL_out[m.egb.inputs['u']]), 500.0, places=3)
+ self.assertAlmostEqual(pyo.value(m.ipopt_zU_out[m.egb.inputs['u']]), 0.0, places=3)
+
+ del m.obj
+ m.obj = pyo.Objective(expr=-10*m.p**2)
+ status = solver.solve(m, tee=False)
+
+ self.assertAlmostEqual(pyo.value(m.p), 25.0, places=3)
+ self.assertAlmostEqual(pyo.value(m.egb.inputs['u']), 10.0, places=3)
+ self.assertAlmostEqual(pyo.value(m.egb.outputs['o']), 50.0, places=3)
+ self.assertAlmostEqual(pyo.value(m.dual[m.con]), -125.0, places=3)
+ self.assertAlmostEqual(m.dual[m.egb]['egb.output_constraints[o]'], 250.0, places=3)
+ self.assertAlmostEqual(pyo.value(m.ipopt_zL_out[m.egb.inputs['u']]), 0.0, places=3)
+ self.assertAlmostEqual(pyo.value(m.ipopt_zU_out[m.egb.inputs['u']]), -1250.0, places=3)
+
+ m = pyo.ConcreteModel()
+ m.p = pyo.Var(initialize=1)
+ m.egb = ExternalGreyBoxBlock()
+ m.egb.set_external_model(ex_models.OneOutputOneEquality())
+ m.con = pyo.Constraint(expr=4*m.p-2*m.egb.outputs['o'] == 0)
+ m.obj = pyo.Objective(expr=10*m.p**2)
+
+ # we want to check dual information so we need the suffixes
+ m.dual = pyo.Suffix(direction=pyo.Suffix.IMPORT_EXPORT)
+
+ solver = pyo.SolverFactory('cyipopt')
+ status = solver.solve(m, tee=False)
+
+ self.assertAlmostEqual(pyo.value(m.p), 2.5, places=3)
+ self.assertAlmostEqual(pyo.value(m.egb.inputs['u']), 1.0, places=3)
+ self.assertAlmostEqual(pyo.value(m.egb.outputs['o']), 5.0, places=3)
+ self.assertAlmostEqual(pyo.value(m.dual[m.con]), 12.5, places=3)
+ self.assertAlmostEqual(m.dual[m.egb]['egb.output_constraints[o]'], -25.0, places=3)
+ self.assertAlmostEqual(m.dual[m.egb]['egb.u2_con'], 62.5, places=3)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/pyomo/contrib/pynumero/interfaces/tests/test_utils.py b/pyomo/contrib/pynumero/interfaces/tests/test_utils.py
new file mode 100644
index 00000000000..d9f77a07b5b
--- /dev/null
+++ b/pyomo/contrib/pynumero/interfaces/tests/test_utils.py
@@ -0,0 +1,85 @@
+# ___________________________________________________________________________
+#
+# Pyomo: Python Optimization Modeling Objects
+# Copyright 2017 National Technology and Engineering Solutions of Sandia, LLC
+# Under the terms of Contract DE-NA0003525 with National Technology and
+# Engineering Solutions of Sandia, LLC, the U.S. Government retains certain
+# rights in this software.
+# This software is distributed under the 3-clause BSD License.
+# ___________________________________________________________________________
+
+import pyutilib.th as unittest
+from pyomo.contrib.pynumero.dependencies import (
+ numpy as np, numpy_available, scipy, scipy_available
+)
+if not (numpy_available and scipy_available):
+ raise unittest.SkipTest("Pynumero needs scipy and numpy to run NLP tests")
+
+import pyomo.contrib.pynumero.interfaces.utils as utils
+class TestCondensedSparseSummation(unittest.TestCase):
+ def test_condensed_sparse_summation(self):
+ data = [1.0, 0.0]
+ row = [1, 2]
+ col = [2, 2]
+ A = scipy.sparse.coo_matrix( (data, (row,col)), shape=(3,3) )
+
+ data = [3.0, 0.0]
+ B = scipy.sparse.coo_matrix( (data, (row,col)), shape=(3,3) )
+
+ # By default, scipy will remove structural nonzeros that
+ # have zero values
+ C = A + B
+ self.assertEqual(C.nnz, 1)
+
+ # Our CondensedSparseSummation should not remove any
+ # structural nonzeros
+ sparse_sum = utils.CondensedSparseSummation([A,B])
+ C = sparse_sum.sum([A,B])
+ expected_data = np.asarray([4.0, 0.0], dtype=np.float64)
+ expected_row = np.asarray([1, 2], dtype=np.int64)
+ expected_col = np.asarray([2, 2], dtype=np.int64)
+ self.assertTrue(np.array_equal(expected_data, C.data))
+ self.assertTrue(np.array_equal(expected_row, C.row))
+ self.assertTrue(np.array_equal(expected_col, C.col))
+
+ B.data[1] = 5.0
+ C = sparse_sum.sum([A,B])
+ expected_data = np.asarray([4.0, 5.0], dtype=np.float64)
+ self.assertTrue(np.array_equal(expected_data, C.data))
+ self.assertTrue(np.array_equal(expected_row, C.row))
+ self.assertTrue(np.array_equal(expected_col, C.col))
+
+ B.data[1] = 0.0
+ C = sparse_sum.sum([A,B])
+ expected_data = np.asarray([4.0, 0.0], dtype=np.float64)
+ self.assertTrue(np.array_equal(expected_data, C.data))
+ self.assertTrue(np.array_equal(expected_row, C.row))
+ self.assertTrue(np.array_equal(expected_col, C.col))
+
+ def test_repeated_row_col(self):
+ data = [1.0, 0.0, 2.0]
+ row = [1, 2, 1]
+ col = [2, 2, 2]
+ A = scipy.sparse.coo_matrix( (data, (row,col)), shape=(3,3) )
+
+ data = [3.0, 0.0]
+ row = [1, 2]
+ col = [2, 2]
+ B = scipy.sparse.coo_matrix( (data, (row,col)), shape=(3,3) )
+
+ # Our CondensedSparseSummation should not remove any
+ # structural nonzeros
+ sparse_sum = utils.CondensedSparseSummation([A,B])
+ C = sparse_sum.sum([A,B])
+ expected_data = np.asarray([6.0, 0.0], dtype=np.float64)
+ expected_row = np.asarray([1, 2], dtype=np.int64)
+ expected_col = np.asarray([2, 2], dtype=np.int64)
+ self.assertTrue(np.array_equal(expected_data, C.data))
+ self.assertTrue(np.array_equal(expected_row, C.row))
+ self.assertTrue(np.array_equal(expected_col, C.col))
+
+
+if __name__ == '__main__':
+ TestCondensedSparseSummation().test_condensed_sparse_summation()
+
+
diff --git a/pyomo/contrib/pynumero/interfaces/utils.py b/pyomo/contrib/pynumero/interfaces/utils.py
index d58a111d049..2756d14f961 100644
--- a/pyomo/contrib/pynumero/interfaces/utils.py
+++ b/pyomo/contrib/pynumero/interfaces/utils.py
@@ -108,3 +108,68 @@ def compressed_to_full(compressed_array, compression_mask, out=None, default=Non
ret[~compression_mask] = default
return ret
+
+def make_lower_triangular_full(lower_triangular_matrix):
+ '''
+ This function takes a symmetric matrix that only has entries in the
+ lower triangle and makes is a full matrix by duplicating the entries
+ '''
+ mask = lower_triangular_matrix.row != lower_triangular_matrix.col
+
+ row = np.concatenate((lower_triangular_matrix.row, lower_triangular_matrix.col[mask]))
+ col = np.concatenate((lower_triangular_matrix.col, lower_triangular_matrix.row[mask]))
+ data = np.concatenate((lower_triangular_matrix.data, lower_triangular_matrix.data[mask]))
+
+ return coo_matrix((data, (row, col)), shape=lower_triangular_matrix.shape)
+
+class CondensedSparseSummation(object):
+ def __init__(self, list_of_matrices):
+ """
+ This class is used to perform a summation of sparse matrices
+ while retaining the correct and consistent nonzero structure.
+ Create the class with the list of matrices you want to sum,
+ and the condensed_summation method remains valid as long as
+ the structure of the individual matrices is consistent
+ """
+ self._nz_tuples = None
+ self._maps = None
+ self._build_maps(list_of_matrices)
+
+ def _build_maps(self, list_of_matrices):
+ """
+ This method creates the maps that are used in condensed_sum.
+ These maps remain valid as long as the nonzero structure of
+ the individual matrices does not change
+ """
+ # get the list of all unique nonzeros across the matrices
+ nz_tuples = set()
+ for m in list_of_matrices:
+ nz_tuples.update(zip(m.row,m.col))
+ nz_tuples = sorted(nz_tuples)
+ self._nz_tuples = nz_tuples
+ self._row, self._col = list(zip(*nz_tuples))
+ row_col_to_nz_map = {t:i for i,t in enumerate(nz_tuples)}
+
+ self._shape = None
+ self._maps = list()
+ for m in list_of_matrices:
+ nnz = len(m.data)
+ map_row = np.zeros(nnz)
+ map_col = np.zeros(nnz)
+ for i in range(nnz):
+ map_col[i] = i
+ map_row[i] = row_col_to_nz_map[(m.row[i], m.col[i])]
+ mp = coo_matrix( (np.ones(nnz), (map_row, map_col)), shape=(len(row_col_to_nz_map),nnz) )
+ self._maps.append(mp)
+ if self._shape is None:
+ self._shape = m.shape
+ else:
+ assert self._shape == m.shape
+
+ def sum(self, list_of_matrices):
+ data = np.zeros(len(self._row))
+ assert len(self._maps) == len(list_of_matrices)
+ for i,mp in enumerate(self._maps):
+ data += mp.dot(list_of_matrices[i].data)
+ ret = coo_matrix((data, (np.copy(self._row), np.copy(self._col))), shape=self._shape)
+ return ret
diff --git a/pyomo/contrib/pynumero/linalg/tests/__init__.py b/pyomo/contrib/pynumero/linalg/tests/__init__.py
new file mode 100644
index 00000000000..e69de29bb2d
diff --git a/pyomo/contrib/pynumero/tests/__init__.py b/pyomo/contrib/pynumero/tests/__init__.py
new file mode 100644
index 00000000000..e69de29bb2d
diff --git a/pyomo/contrib/pynumero/tests/test_cyipopt_examples.py b/pyomo/contrib/pynumero/tests/test_cyipopt_examples.py
index de9e180e6b9..258699ec431 100644
--- a/pyomo/contrib/pynumero/tests/test_cyipopt_examples.py
+++ b/pyomo/contrib/pynumero/tests/test_cyipopt_examples.py
@@ -12,6 +12,7 @@
from pyomo.common.fileutils import this_file_dir, import_file
import pyutilib.th as unittest
import pyomo.environ as pyo
+from pyomo.common.dependencies import attempt_import
from pyomo.contrib.pynumero.dependencies import (
numpy as np, numpy_available, scipy_sparse as spa, scipy_available
@@ -19,6 +20,13 @@
if not (numpy_available and scipy_available):
raise unittest.SkipTest("Pynumero needs scipy and numpy to run CyIpopt tests")
+pandas, pandas_available = attempt_import(
+ 'pandas',
+ 'One of the tests below requires a recent version of pandas for'
+ ' comparing with a tolerance.',
+ minimum_version='1.1.0',
+ defer_check=False)
+
from pyomo.contrib.pynumero.asl import AmplInterface
if not AmplInterface.available():
raise unittest.SkipTest(
@@ -71,13 +79,13 @@ def test_external_grey_box_react_example_maximize_cb_outputs_scaling(self):
self.assertIn('c scaling provided', solver_trace)
self.assertIn('d scaling provided', solver_trace)
self.assertIn('DenseVector "x scaling vector" with 7 elements:', solver_trace)
- self.assertIn('x scaling vector[ 1]= 1.2000000000000000e+00', solver_trace)
- self.assertIn('x scaling vector[ 2]= 1.7000000000000000e+00', solver_trace)
- self.assertIn('x scaling vector[ 3]= 1.1000000000000001e+00', solver_trace)
- self.assertIn('x scaling vector[ 4]= 1.3000000000000000e+00', solver_trace)
- self.assertIn('x scaling vector[ 5]= 1.3999999999999999e+00', solver_trace)
- self.assertIn('x scaling vector[ 6]= 1.5000000000000000e+00', solver_trace)
- self.assertIn('x scaling vector[ 7]= 1.6000000000000001e+00', solver_trace)
+ self.assertIn('x scaling vector[ 2]= 1.2000000000000000e+00', solver_trace)
+ self.assertIn('x scaling vector[ 7]= 1.7000000000000000e+00', solver_trace)
+ self.assertIn('x scaling vector[ 6]= 1.1000000000000001e+00', solver_trace)
+ self.assertIn('x scaling vector[ 1]= 1.3000000000000000e+00', solver_trace)
+ self.assertIn('x scaling vector[ 3]= 1.3999999999999999e+00', solver_trace)
+ self.assertIn('x scaling vector[ 4]= 1.5000000000000000e+00', solver_trace)
+ self.assertIn('x scaling vector[ 5]= 1.6000000000000001e+00', solver_trace)
self.assertIn('DenseVector "c scaling vector" with 6 elements:', solver_trace)
self.assertIn('c scaling vector[ 1]= 4.2000000000000000e+01', solver_trace)
self.assertIn('c scaling vector[ 2]= 1.0000000000000001e-01', solver_trace)
@@ -120,3 +128,24 @@ def test_external_grey_box_react_example_maximize_with_additional_pyomo_variable
self.assertAlmostEqual(pyo.value(m.reactor.inputs['sv']), 1.26541996, places=3)
self.assertAlmostEqual(pyo.value(m.reactor.inputs['cb']), 1071.7410089, places=2)
self.assertAlmostEqual(pyo.value(m.cb_ratio), 0.15190409266, places=3)
+
+ @unittest.skipIf(not pandas_available, "Test uses pandas for data")
+ def test_parameter_estimation(self):
+ data_fname = os.path.join(example_dir, 'external_grey_box', 'param_est', 'smalldata.csv')
+ baseline = pandas.read_csv(data_fname)
+
+ # test the data generator
+ ex = import_file(os.path.join(example_dir, 'external_grey_box', 'param_est', 'generate_data.py'))
+ df1 = ex.generate_data(5, 200, 5, 42)
+ df2 = ex.generate_data_external(5, 200, 5, 42)
+ pandas.testing.assert_frame_equal(df1, baseline, atol=1e-3)
+ pandas.testing.assert_frame_equal(df2, baseline, atol=1e-3)
+
+ # test the estimation
+ ex = import_file(os.path.join(example_dir, 'external_grey_box', 'param_est', 'perform_estimation.py'))
+
+ m = ex.perform_estimation_external(data_fname, solver_trace=False)
+ self.assertAlmostEqual(pyo.value(m.UA), 204.43761, places=3)
+
+ m = ex.perform_estimation_pyomo_only(data_fname, solver_trace=False)
+ self.assertAlmostEqual(pyo.value(m.UA), 204.43761, places=3)
diff --git a/pyomo/contrib/viewer/tests/__init__.py b/pyomo/contrib/viewer/tests/__init__.py
new file mode 100644
index 00000000000..e69de29bb2d
diff --git a/pyomo/contrib/viewer/tests/pytest_qt.py b/pyomo/contrib/viewer/tests/pytest_qt.py
index 5194d54a9fe..ecfa7eacc6b 100644
--- a/pyomo/contrib/viewer/tests/pytest_qt.py
+++ b/pyomo/contrib/viewer/tests/pytest_qt.py
@@ -11,7 +11,6 @@
"""
UI Tests
"""
-import pyutilib.th as unittest
from pyomo.environ import ConcreteModel, Var, Param, Constraint, Objective, Reals, Block, Expression, ExternalFunction, sin, sqrt, log
from pyomo.contrib.viewer.qt import qt_available
diff --git a/pyomo/contrib/viewer/tests/test_qt.py b/pyomo/contrib/viewer/tests/test_qt.py
index 6c4791e56aa..7b4e5bfb7c1 100644
--- a/pyomo/contrib/viewer/tests/test_qt.py
+++ b/pyomo/contrib/viewer/tests/test_qt.py
@@ -1,42 +1,54 @@
-##############################################################################
-# Institute for the Design of Advanced Energy Systems Process Systems
-# Engineering Framework (IDAES PSE Framework) Copyright (c) 2018-2019, by the
-# software owners: The Regents of the University of California, through
-# Lawrence Berkeley National Laboratory, National Technology & Engineering
-# Solutions of Sandia, LLC, Carnegie Mellon University, West Virginia
-# University Research Corporation, et al. All rights reserved.
+# ___________________________________________________________________________
#
-# This software is distributed under the 3-clause BSD License.
-##############################################################################
+# Pyomo: Python Optimization Modeling Objects
+# Copyright 2017 National Technology and Engineering Solutions of Sandia, LLC
+# Under the terms of Contract DE-NA0003525 with National Technology and
+# Engineering Solutions of Sandia, LLC, the U.S. Government retains certain
+# rights in this software.
+# This software is distributed under the 3-clause BSD License.
+# ___________________________________________________________________________
+#
+# This module was originally developed as part of the IDAES PSE Framework
+#
+# Institute for the Design of Advanced Energy Systems Process Systems
+# Engineering Framework (IDAES PSE Framework) Copyright (c) 2018-2019, by the
+# software owners: The Regents of the University of California, through
+# Lawrence Berkeley National Laboratory, National Technology & Engineering
+# Solutions of Sandia, LLC, Carnegie Mellon University, West Virginia
+# University Research Corporation, et al. All rights reserved.
+#
+# This software is distributed under the 3-clause BSD License.
+# ___________________________________________________________________________
+
"""
UI Tests
"""
-from subprocess import Popen
import os
-import time
-import pyutilib.th as unittest
+import sys
+import pyomo.common.unittest as unittest
+from pyomo.common.fileutils import this_file_dir
-test_file = os.path.join(os.path.dirname(__file__), "pytest_qt.py")
+test_file = os.path.join(this_file_dir(), "pytest_qt.py")
try:
- skip_qt_tests=False
import pytest
+ # Contextvars is required for anyio/sniffio (pytest), but was not
+ # added to the standard library until Python 3.7. If it is not
+ # available (either directly or through the 3.6 backport), do not
+ # attempt the QT tests.
+ import contextvars
from pyomo.contrib.viewer.qt import qt_available
- assert(qt_available)
except:
- skip_qt_tests=True
+ qt_available = False
-def run_subproc_pytest(test_file, test_func, freq=1, timeout=10.0):
- p = Popen(["pytest", "::".join([test_file, test_func])])
- i = 0
- while p.poll() is None:
- time.sleep(1.0/freq)
- i += 1
- if(i > timeout*freq):
- p.kill()
- raise Exception("Test took too long")
- assert(p.poll()==0)
+@unittest.skipUnless(qt_available, "Required packages not available")
+class TestViewerQT(unittest.TestCase):
+ @unittest.timeout(10)
+ def test_get_mainwindow(self):
+ rc = pytest.main(["%s::%s" % (test_file, 'test_get_mainwindow')])
+ self.assertEqual(rc, pytest.ExitCode.OK)
-@unittest.skipIf(skip_qt_tests, "Required packages not available")
-def test_model_information():
- run_subproc_pytest(test_file, "test_model_information")
+ @unittest.timeout(10)
+ def test_model_information(self):
+ rc = pytest.main(["%s::%s" % (test_file, 'test_model_information')])
+ self.assertEqual(rc, pytest.ExitCode.OK)
diff --git a/pyomo/core/__init__.py b/pyomo/core/__init__.py
index 523e0ec29d5..cbcf354401d 100644
--- a/pyomo/core/__init__.py
+++ b/pyomo/core/__init__.py
@@ -8,7 +8,6 @@
# This software is distributed under the 3-clause BSD License.
# ___________________________________________________________________________
-from six import iteritems, iterkeys
from pyomo.core.expr.numvalue import (
value, is_constant, is_fixed, is_variable_type,
is_potentially_variable, NumericValue, ZeroConstant,
diff --git a/pyomo/core/base/PyomoModel.py b/pyomo/core/base/PyomoModel.py
index bd6d410922b..ccc9622ae7c 100644
--- a/pyomo/core/base/PyomoModel.py
+++ b/pyomo/core/base/PyomoModel.py
@@ -14,43 +14,32 @@
import sys
from weakref import ref as weakref_ref
import gc
-import time
import math
from pyomo.common import timing, PyomoAPIFactory
-from pyomo.common.collections import Container, OrderedDict
+from pyomo.common.collections import Bunch
from pyomo.common.dependencies import pympler, pympler_available
from pyomo.common.deprecation import deprecated, deprecation_warning
from pyomo.common.gc_manager import PauseGC
from pyomo.common.log import is_debug_set
from pyomo.common.plugin import ExtensionPoint
-
-from pyomo.core.expr import expr_common
from pyomo.core.expr.symbol_map import SymbolMap
-from pyomo.core.expr.numeric_expr import clone_counter
-
from pyomo.core.base.var import Var
from pyomo.core.base.constraint import Constraint
from pyomo.core.base.objective import Objective
from pyomo.core.base.suffix import active_import_suffix_generator
-from pyomo.core.base.indexed_component import IndexedComponent
from pyomo.dataportal.DataPortal import DataPortal
from pyomo.core.base.plugin import IPyomoPresolver
from pyomo.core.base.numvalue import value
from pyomo.core.base.block import SimpleBlock
from pyomo.core.base.set import Set
from pyomo.core.base.componentuid import ComponentUID
-from pyomo.core.base.component import Component
from pyomo.core.base.plugin import ModelComponentFactory, TransformationFactory
from pyomo.core.base.label import CNameLabeler, CuidLabeler
from pyomo.opt.results import SolverResults, Solution, SolverStatus, UndefinedData
-from six import itervalues, iteritems, StringIO, string_types
-try:
- unicode
-except:
- basestring = unicode = str
+from io import StringIO
logger = logging.getLogger('pyomo.core')
id_func = id
@@ -72,7 +61,7 @@ def wrapper_function(*args, **kwargs):
return wrapper_function
-class PyomoConfig(Container):
+class PyomoConfig(Bunch):
"""
This is a pyomo-specific configuration object, which is a subclass of Container.
"""
@@ -80,7 +69,7 @@ class PyomoConfig(Container):
_option = {}
def __init__(self, *args, **kw):
- Container.__init__(self, *args, **kw)
+ Bunch.__init__(self, *args, **kw)
self.set_name('PyomoConfig')
#
# Create the nested options specified by the the PyomoConfig._option
@@ -90,7 +79,7 @@ def __init__(self, *args, **kw):
d = self
for attr in item[:-1]:
if not attr in d:
- d[attr] = Container()
+ d[attr] = Bunch()
d = d[attr]
d[item[-1]] = PyomoConfig._option[item]
@@ -129,7 +118,7 @@ def __getstate__(self):
'_metadata': self._metadata,
'_entry': {}
}
- for (name, data) in iteritems(self._entry):
+ for (name, data) in self._entry.items():
tmp = state['_entry'][name] = []
# Note: We must convert all weakrefs to hard refs and
# not indirect references like ComponentUIDs because
@@ -137,7 +126,7 @@ def __getstate__(self):
# model instance to have already been reconstructed --
# so things like CUID.find_component will fail (return
# None).
- for obj, entry in itervalues(data):
+ for obj, entry in data.values():
if obj is None or obj() is None:
logger.warn(
"Solution component in '%s' no longer "
@@ -149,7 +138,7 @@ def __getstate__(self):
def __setstate__(self, state):
self._metadata = state['_metadata']
self._entry = {}
- for name, data in iteritems(state['_entry']):
+ for name, data in state['_entry'].items():
tmp = self._entry[name] = {}
for obj, entry in data:
tmp[ id(obj) ] = ( weakref_ref(obj), entry )
@@ -177,7 +166,7 @@ def __getstate__(self):
return state
def __setstate__(self, state):
- for key, val in iteritems(state):
+ for key, val in state.items():
setattr(self, key, val)
# Restore the instance weakref
self._instance = weakref_ref(self._instance)
@@ -294,7 +283,7 @@ def store_to(self, results, cuid=False, skip_stale_vars=False):
for soln_ in self.solutions:
soln = Solution()
soln._cuid = cuid
- for key, val in iteritems(soln_._metadata):
+ for key, val in soln_._metadata.items():
setattr(soln, key, val)
if cuid:
@@ -372,7 +361,7 @@ def add_solution(self,
for name in ['problem', 'objective', 'variable', 'constraint']:
tmp = soln._entry[name]
- for cuid, val in iteritems(getattr(solution, name)):
+ for cuid, val in getattr(solution, name).items():
obj = cache.get(cuid, None)
if obj is None:
if ignore_invalid_labels:
@@ -394,7 +383,7 @@ def add_solution(self,
for name in ['problem', 'objective', 'variable', 'constraint']:
tmp = soln._entry[name]
- for symb, val in iteritems(getattr(solution, name)):
+ for symb, val in getattr(solution, name).items():
obj = cache.get(symb, None)
if obj is None:
if ignore_invalid_labels:
@@ -409,7 +398,7 @@ def add_solution(self,
smap = self.symbol_map[smap_id]
for name in ['problem', 'objective', 'variable', 'constraint']:
tmp = soln._entry[name]
- for symb, val in iteritems(getattr(solution, name)):
+ for symb, val in getattr(solution, name).items():
if symb in smap.bySymbol:
obj = smap.bySymbol[symb]
elif symb in smap.aliases:
@@ -488,30 +477,30 @@ def select(self,
# sparse dual values exist in the results object) we clear all active
# import suffixes.
#
- for suffix in itervalues(valid_import_suffixes):
+ for suffix in valid_import_suffixes.values():
suffix.clear_all_values()
#
# Load problem (model) level suffixes. These would only come from ampl
# interfaced solution suffixes at this point in time.
#
- for id_, (pobj,entry) in iteritems(soln._entry['problem']):
- for _attr_key, attr_value in iteritems(entry):
+ for id_, (pobj,entry) in soln._entry['problem'].items():
+ for _attr_key, attr_value in entry.items():
attr_key = _attr_key[0].lower() + _attr_key[1:]
if attr_key in valid_import_suffixes:
valid_import_suffixes[attr_key][pobj] = attr_value
#
# Load objective data (suffixes)
#
- for id_, (odata, entry) in iteritems(soln._entry['objective']):
+ for id_, (odata, entry) in soln._entry['objective'].items():
odata = odata()
- for _attr_key, attr_value in iteritems(entry):
+ for _attr_key, attr_value in entry.items():
attr_key = _attr_key[0].lower() + _attr_key[1:]
if attr_key in valid_import_suffixes:
valid_import_suffixes[attr_key][odata] = attr_value
#
# Load variable data (suffixes and values)
#
- for id_, (vdata, entry) in iteritems(soln._entry['variable']):
+ for id_, (vdata, entry) in soln._entry['variable'].items():
vdata = vdata()
val = entry['Value']
if vdata.fixed is True:
@@ -535,7 +524,7 @@ def select(self,
vdata.value = val
vdata.stale = False
- for _attr_key, attr_value in iteritems(entry):
+ for _attr_key, attr_value in entry.items():
attr_key = _attr_key[0].lower() + _attr_key[1:]
if attr_key == 'value':
continue
@@ -544,9 +533,9 @@ def select(self,
#
# Load constraint data (suffixes)
#
- for id_, (cdata, entry) in iteritems(soln._entry['constraint']):
+ for id_, (cdata, entry) in soln._entry['constraint'].items():
cdata = cdata()
- for _attr_key, attr_value in iteritems(entry):
+ for _attr_key, attr_value in entry.items():
attr_key = _attr_key[0].lower() + _attr_key[1:]
if attr_key in valid_import_suffixes:
valid_import_suffixes[attr_key][cdata] = attr_value
@@ -584,7 +573,7 @@ def __init__(self, name='unknown', **kwargs):
#
SimpleBlock.__init__(self, **kwargs)
self._name = name
- self.statistics = Container()
+ self.statistics = Bunch()
self.config = PyomoConfig()
self.solutions = ModelSolutions(self)
self.config.preprocessor = 'pyomo.model.simple_preprocessor'
@@ -649,7 +638,7 @@ def create_instance( self, filename=None, data=None, name=None,
# filename is specified. A concrete model is already
# constructed, so passing in a data file is a waste of time.
#
- if self.is_constructed() and isinstance(filename, string_types):
+ if self.is_constructed() and isinstance(filename, str):
msg = "The filename=%s will not be loaded - supplied as an " \
"argument to the create_instance() method of a "\
"concrete instance with name=%s." % (filename, name)
@@ -751,7 +740,7 @@ def load(self, arg, namespaces=[None], profile_memory=0, report_timing=None):
"The report_timing argument to Model.load() is deprecated. "
"Use pyomo.common.timing.report_timing() to enable reporting "
"construction timing")
- if arg is None or isinstance(arg, basestring):
+ if arg is None or isinstance(arg, str):
dp = DataPortal(filename=arg, model=self)
elif type(arg) is DataPortal:
dp = arg
@@ -822,26 +811,12 @@ def _load_model_data(self, modeldata, namespaces, **kwds):
# Initialize each component in order.
#
- for component_name, component in iteritems(self.component_map()):
+ for component_name, component in self.component_map().items():
if component.ctype is Model:
continue
self._initialize_component(modeldata, namespaces, component_name, profile_memory)
- if False:
- total_time = time.time() - start_time
- if isinstance(component, IndexedComponent):
- clen = len(component)
- else:
- assert isinstance(component, Component)
- clen = 1
- print(" %%6.%df seconds required to construct component=%s; %d indices total" \
- % (total_time>=0.005 and 2 or 0, component_name, clen) \
- % total_time)
- tmp_clone_counter = expr_common.clone_counter
- if clone_counter != tmp_clone_counter:
- clone_counter = tmp_clone_counter
- print(" Cloning detected! (clone count: %d)" % clone_counters)
# Note: As is, connectors are expanded when using command-line pyomo but not calling model.create(...) in a Python script.
# John says this has to do with extension points which are called from commandline but not when writing scripts.
diff --git a/pyomo/core/base/__init__.py b/pyomo/core/base/__init__.py
index 498bf2730e8..92bcdd9a64c 100644
--- a/pyomo/core/base/__init__.py
+++ b/pyomo/core/base/__init__.py
@@ -11,7 +11,6 @@
# TODO: this import is for historical backwards compatibility and should
# probably be removed
-from six import iteritems, iterkeys
import pyomo.core.expr.numvalue
import pyomo.core.expr.logical_expr
from pyomo.common.collections import ComponentMap
diff --git a/pyomo/core/base/_pyomo.py b/pyomo/core/base/_pyomo.py
index 8337882283c..290e09056d3 100644
--- a/pyomo/core/base/_pyomo.py
+++ b/pyomo/core/base/_pyomo.py
@@ -8,7 +8,6 @@
# This software is distributed under the 3-clause BSD License.
# ___________________________________________________________________________
-from six import iteritems
from pyomo.core.base.plugin import (unique_component_name, Factory, implements,
Interface, Plugin, CreatePluginFactory,
ExtensionPoint, TransformationTimer,
@@ -35,7 +34,7 @@
def predefined_sets():
from pyomo.core.base.set import GlobalSets
- return list((name, obj.doc) for name,obj in iteritems(GlobalSets))
+ return list((name, obj.doc) for name,obj in GlobalSets.items())
def model_components():
diff --git a/pyomo/core/base/block.py b/pyomo/core/base/block.py
index 7f848c18805..3c642427086 100644
--- a/pyomo/core/base/block.py
+++ b/pyomo/core/base/block.py
@@ -12,7 +12,6 @@
'active_components', 'components', 'active_components_data',
'components_data', 'SimpleBlock']
-import collections
import copy
import logging
import sys
@@ -21,13 +20,11 @@
from inspect import isclass
from operator import itemgetter
-from six import iteritems, iterkeys, itervalues, StringIO, string_types, \
- advance_iterator, PY3
+from io import StringIO
-from pyutilib.misc.indent_io import StreamIndenter
-
-from pyomo.common.collections import ComponentMap, Mapping
+from pyomo.common.collections import Mapping
from pyomo.common.deprecation import deprecated, deprecation_warning
+from pyomo.common.fileutils import StreamIndenter
from pyomo.common.log import is_debug_set
from pyomo.common.timing import ConstructionTimer
from pyomo.core.base.plugin import ModelComponentFactory
@@ -257,7 +254,7 @@ def __iter__(self):
"""
TODO
"""
- return self.iterkeys()
+ return self.keys()
def __getitem__(self, key):
"""
@@ -292,7 +289,7 @@ def __nonzero__(self):
sort_order = self._sorted
try:
self._sorted = False
- for x in itervalues(self):
+ for x in self.values():
return True
return False
finally:
@@ -311,7 +308,7 @@ def __len__(self):
#
if self._active is None:
if self._ctypes is None:
- return sum(x[2] for x in itervalues(self._block._ctypes))
+ return sum(x[2] for x in self._block._ctypes.values())
else:
return sum(self._block._ctypes.get(x, (0, 0, 0))[2]
for x in self._block._ctypes
@@ -320,7 +317,7 @@ def __len__(self):
# If _active is True or False, then we have to count by brute force.
#
ans = 0
- for x in itervalues(self):
+ for x in self.values():
ans += 1
return ans
@@ -362,9 +359,9 @@ def _ctypewalker(self):
_idx_list.sort(reverse=True)
break
- def iterkeys(self):
+ def keys(self):
"""
- TODO
+ Generator returning the component names defined on the Block
"""
# Iterate over the PseudoMap keys (the component names) in
# declaration order
@@ -372,12 +369,12 @@ def iterkeys(self):
# Ironically, the values are the fundamental thing that we
# can (efficiently) iterate over in decl_order. iterkeys
# just wraps itervalues.
- for obj in self.itervalues():
+ for obj in self.values():
yield obj._name
- def itervalues(self):
+ def values(self):
"""
- TODO
+ Generator returning the components defined on the Block
"""
# Iterate over the PseudoMap values (the component objects) in
# declaration order
@@ -410,40 +407,41 @@ def itervalues(self):
else:
return walker
- def iteritems(self):
+ def items(self):
"""
- TODO
+ Generator returning (name, component) tuples for components
+ defined on the Block
"""
# Ironically, the values are the fundamental thing that we
# can (efficiently) iterate over in decl_order. iteritems
# just wraps itervalues.
- for obj in self.itervalues():
+ for obj in self.values():
yield (obj._name, obj)
- def keys(self):
+ @deprecated('The iterkeys method is deprecated. Use dict.keys().',
+ version='TBD')
+ def iterkeys(self):
"""
- Return a list of dictionary keys
+ Generator returning the component names defined on the Block
"""
- return list(self.iterkeys())
+ return self.keys()
- def values(self):
+ @deprecated('The itervalues method is deprecated. Use dict.values().',
+ version='TBD')
+ def itervalues(self):
"""
- Return a list of dictionary values
+ Generator returning the components defined on the Block
"""
- return list(self.itervalues())
+ return self.values()
- def items(self):
+ @deprecated('The iteritems method is deprecated. Use dict.items().',
+ version='TBD')
+ def iteritems(self):
"""
- Return a list of (key, value) tuples
+ Generator returning (name, component) tuples for components
+ defined on the Block
"""
- return list(self.iteritems())
-
-# In Python3, the items(), etc methods of dict-like things return
-# generator-like objects.
-if PY3:
- PseudoMap.keys = PseudoMap.iterkeys
- PseudoMap.values = PseudoMap.itervalues
- PseudoMap.items = PseudoMap.iteritems
+ return self.items()
class _BlockData(ActiveComponentData):
@@ -688,9 +686,9 @@ def _compact_decl_storage(self):
j += 1
_new_decl_order.append(entry)
# Update the _decl map
- self._decl = {k:idxMap[idx] for k,idx in iteritems(self._decl)}
+ self._decl = {k:idxMap[idx] for k,idx in self._decl.items()}
# Update the ctypes, _decl_order linked lists
- for ctype, info in iteritems(self._ctypes):
+ for ctype, info in self._ctypes.items():
idx = info[0]
entry = self._decl_order[idx]
while entry[0] is None:
@@ -718,7 +716,7 @@ def set_value(self, val):
"""))
def clear(self):
- for name in iterkeys(self.component_map()):
+ for name in self.component_map().keys():
if name not in self._Block_reserved_words:
self.del_component(name)
for attr in tuple(self.__dict__):
@@ -764,7 +762,7 @@ def transfer_attributes_from(self, src):
# record the components and the non-component objects added
# to the block
src_comp_map = src.component_map()
- src_raw_dict = {k:v for k,v in iteritems(src.__dict__)
+ src_raw_dict = {k:v for k,v in src.__dict__.items()
if k not in src_comp_map}
elif isinstance(src, Mapping):
src_comp_map = {}
@@ -775,7 +773,7 @@ def transfer_attributes_from(self, src):
"Block or dict; received %s" % (type(src).__name__,))
# Use component_map for the components to preserve decl_order
- for k,v in iteritems(src_comp_map):
+ for k,v in src_comp_map.items():
if k in self._decl:
self.del_component(k)
src.del_component(k)
@@ -783,7 +781,7 @@ def transfer_attributes_from(self, src):
# Because Blocks are not slotized and we allow the
# assignment of arbitrary data to Blocks, we will move over
# any other unrecognized entries in the object's __dict__:
- for k in sorted(iterkeys(src_raw_dict)):
+ for k in sorted(src_raw_dict.keys()):
if k not in self._Block_reserved_words or not hasattr(self, k) \
or k in self._decl:
setattr(self, k, src_raw_dict[k])
@@ -1266,7 +1264,7 @@ def component(self, name_or_object):
return that component IFF the component is a child of this
block. Returns None on lookup failure.
"""
- if isinstance(name_or_object, string_types):
+ if isinstance(name_or_object, str):
if name_or_object in self._decl:
return self._decl_order[self._decl[name_or_object]][0]
else:
@@ -1342,7 +1340,7 @@ def _component_data_iter(self, ctype=None, active=None, sort=False):
"""
_sort_indices = SortComponents.sort_indices(sort)
_subcomp = PseudoMap(self, ctype, active, sort)
- for name, comp in _subcomp.iteritems():
+ for name, comp in _subcomp.items():
# NOTE: Suffix has a dict interface (something other derived
# non-indexed Components may do as well), so we don't want
# to test the existence of iteritems as a check for
@@ -1351,12 +1349,12 @@ def _component_data_iter(self, ctype=None, active=None, sort=False):
# processing for the scalar components to catch the case
# where there are "sparse scalar components"
if comp.is_indexed():
- _items = comp.iteritems()
+ _items = comp.items()
elif hasattr(comp, '_data'):
# This may be an empty Scalar component (e.g., from
# Constraint.Skip on a scalar Constraint)
assert len(comp._data) <= 1
- _items = iteritems(comp._data)
+ _items = comp._data.items()
else:
_items = ((None, comp),)
@@ -1404,11 +1402,11 @@ def component_objects(self, ctype=None, active=None, sort=False,
generator recursively descends into sub-blocks.
"""
if not descend_into:
- for x in self.component_map(ctype, active, sort).itervalues():
+ for x in self.component_map(ctype, active, sort).values():
yield x
return
for _block in self.block_data_objects(active, sort, descend_into, descent_order):
- for x in _block.component_map(ctype, active, sort).itervalues():
+ for x in _block.component_map(ctype, active, sort).values():
yield x
def component_data_objects(self,
@@ -1564,7 +1562,7 @@ def _prefix_dfs_iterator(self, ctype, active, sort):
_stack = [(self,).__iter__(), ]
while _stack:
try:
- PM._block = _block = advance_iterator(_stack[-1])
+ PM._block = _block = next(_stack[-1])
yield _block
if not PM:
continue
@@ -1588,7 +1586,7 @@ def _postfix_dfs_iterator(self, ctype, active, sort):
_stack = [(self, self.component_data_iterindex(ctype, active, sort, False))]
while _stack:
try:
- _sub = advance_iterator(_stack[-1][1])[-1]
+ _sub = next(_stack[-1][1])[-1]
_stack.append((_sub,
_sub.component_data_iterindex(ctype, active, sort, False)
))
@@ -1642,16 +1640,16 @@ def _bfs_iterator(self, ctype, active, sort):
def fix_all_vars(self):
# TODO: Simplify based on recursive logic
- for var in itervalues(self.component_map(Var)):
+ for var in self.component_map(Var).values():
var.fix()
- for block in itervalues(self.component_map(Block)):
+ for block in self.component_map(Block).values():
block.fix_all_vars()
def unfix_all_vars(self):
# TODO: Simplify based on recursive logic
- for var in itervalues(self.component_map(Var)):
+ for var in self.component_map(Var).values():
var.unfix()
- for block in itervalues(self.component_map(Block)):
+ for block in self.component_map(Block).values():
block.unfix_all_vars()
def is_constructed(self):
@@ -1740,7 +1738,7 @@ def display(self, filename=None, ostream=None, prefix=""):
if not ACTIVE:
ostream.write(prefix + " None\n")
else:
- for obj in itervalues(ACTIVE):
+ for obj in ACTIVE.values():
obj.display(prefix=prefix + " ", ostream=ostream)
item = Block
@@ -1750,7 +1748,7 @@ def display(self, filename=None, ostream=None, prefix=""):
ostream.write(
prefix + " %s:\n" %
pyomo.core.base.component_order.display_name[item])
- for obj in itervalues(ACTIVE):
+ for obj in ACTIVE.values():
obj.display(prefix=prefix + " ", ostream=ostream)
#
@@ -1980,7 +1978,7 @@ def construct(self, data=None):
data = data.get(_idx, None)
if data is None:
data = {}
- for name, obj in iteritems(_predefined_components):
+ for name, obj in _predefined_components.items():
if not obj._constructed:
obj.construct(data.get(name, None))
# Trigger the (normal) initialization of the block
@@ -2010,9 +2008,9 @@ def _pprint(self):
]
# HACK: suppress the top-level block header (for historical reasons)
if self.parent_block() is None and not self.is_indexed():
- return None, iteritems(self._data), None, self._pprint_callback
+ return None, self._data.items(), None, self._pprint_callback
else:
- return _attrs, iteritems(self._data), None, self._pprint_callback
+ return _attrs, self._data.items(), None, self._pprint_callback
def display(self, filename=None, ostream=None, prefix=""):
"""
diff --git a/pyomo/core/base/boolean_var.py b/pyomo/core/base/boolean_var.py
index 2b7c79806e6..3bdf15bbd8e 100644
--- a/pyomo/core/base/boolean_var.py
+++ b/pyomo/core/base/boolean_var.py
@@ -1,5 +1,12 @@
-from six import itervalues, iteritems
-
+# ___________________________________________________________________________
+#
+# Pyomo: Python Optimization Modeling Objects
+# Copyright 2017 National Technology and Engineering Solutions of Sandia, LLC
+# Under the terms of Contract DE-NA0003525 with National Technology and
+# Engineering Solutions of Sandia, LLC, the U.S. Government retains certain
+# rights in this software.
+# This software is distributed under the 3-clause BSD License.
+# ___________________________________________________________________________
import logging
from weakref import ref as weakref_ref
@@ -14,7 +21,6 @@
from pyomo.core.base.misc import apply_indexed_rule
from pyomo.core.base.set import Set, BooleanSet
from pyomo.core.base.util import is_functor
-from six.moves import xrange
logger = logging.getLogger('pyomo.core')
@@ -193,7 +199,7 @@ def __setstate__(self, state):
if hasattr(_base, '__setstate__'):
_base.__setstate__(state)
else:
- for key, val in iteritems(state):
+ for key, val in state.items():
# Note: per the Python data model docs, we explicitly
# set the attribute using object.__setattr__() instead
# of setting self.__dict__[key] = val.
@@ -296,7 +302,7 @@ def flag_as_stale(self):
"""
Set the 'stale' attribute of every variable data object to True.
"""
- for boolvar_data in itervalues(self._data):
+ for boolvar_data in self._data.values():
boolvar_data.stale = True
def get_values(self, include_fixed_values=True):
@@ -305,9 +311,9 @@ def get_values(self, include_fixed_values=True):
"""
if include_fixed_values:
return dict((idx, vardata.value)
- for idx, vardata in iteritems(self._data))
+ for idx, vardata in self._data.items())
return dict((idx, vardata.value)
- for idx, vardata in iteritems(self._data)
+ for idx, vardata in self._data.items()
if not vardata.fixed)
extract_values = get_values
@@ -319,7 +325,7 @@ def set_values(self, new_values, valid=False):
The default behavior is to validate the values in the
dictionary.
"""
- for index, new_value in iteritems(new_values):
+ for index, new_value in new_values.items():
self[index].set_value(new_value, valid)
@@ -437,7 +443,7 @@ def _pprint(self):
return ( [("Size", len(self)),
("Index", self._index if self.is_indexed() else None),
],
- iteritems(self._data),
+ self._data.items(),
( "Value","Fixed","Stale"),
lambda k, v: [ v.value,
v.fixed,
@@ -531,12 +537,12 @@ def fix(self, *val):
Set the fixed indicator to True. Value argument is optional,
indicating the variable should be fixed at its current value.
"""
- for boolean_vardata in itervalues(self):
+ for boolean_vardata in self.values():
boolean_vardata.fix(*val)
def unfix(self):
"""Sets the fixed indicator to False."""
- for boolean_vardata in itervalues(self):
+ for boolean_vardata in self.values():
boolean_vardata.unfix()
@property
@@ -567,7 +573,7 @@ def construct(self, data=None):
# OR we can just add the correct number of sequential integers and
# then let _validate_index complain when we set the value.
if self._value_init_value.__class__ is dict:
- for i in xrange(len(self._value_init_value)):
+ for i in range(len(self._value_init_value)):
self._index.add(i+1)
super(BooleanVarList,self).construct(data)
# Note that the current Var initializer silently ignores
@@ -576,7 +582,7 @@ def construct(self, data=None):
# VarList (so we get potential domain errors), we will re-set
# everything.
if self._value_init_value.__class__ is dict:
- for k,v in iteritems(self._value_init_value):
+ for k,v in self._value_init_value.items():
self[k] = v
def add(self):
diff --git a/pyomo/core/base/component.py b/pyomo/core/base/component.py
index f37484e02d2..e07b2bd6de4 100644
--- a/pyomo/core/base/component.py
+++ b/pyomo/core/base/component.py
@@ -9,17 +9,14 @@
# ___________________________________________________________________________
import logging
-import six
import sys
from copy import deepcopy
from pickle import PickleError
-from six import iteritems, string_types
from weakref import ref as weakref_ref
-from pyutilib.misc.indent_io import StreamIndenter
-
import pyomo.common
from pyomo.common.deprecation import deprecated, relocated_module_attribute
+from pyomo.common.fileutils import StreamIndenter
from pyomo.core.pyomoobject import PyomoObject
from pyomo.core.base.misc import tabular_writer, sorted_robust
@@ -43,7 +40,7 @@ def _escape(val):
# requires escaping any single quotes in the string... which
# in turn requires escaping the escape character.
ans = "%s" % (val,)
- if isinstance(val, six.string_types):
+ if isinstance(val, str):
ans = ans.replace("\\", "\\\\").replace("'", "\\'")
if ',' in ans or "'" in ans:
ans = "'"+ans+"'"
@@ -201,7 +198,7 @@ def __deepcopy__(self, memo):
elif paranoid is not None:
raise PickleError()
new_state = {}
- for k,v in iteritems(state):
+ for k, v in state.items():
try:
if paranoid:
saved_memo = dict(memo)
@@ -268,7 +265,7 @@ def pprint(self, ostream=None, verbose=False, prefix=""):
"""
comp = self.parent_component()
_attr, _data, _header, _fcn = comp._pprint()
- if isinstance(type(_data), six.string_types):
+ if isinstance(type(_data), str):
# If the component _pprint only returned a pre-formatted
# result, then we have no way to only emit the information
# for this _data object.
@@ -359,7 +356,7 @@ def _pprint_base_impl(self, ostream, verbose, prefix, _name, _doc,
if _header is not None:
if _fcn2 is not None:
_data_dict = dict(_data)
- _data = iteritems(_data_dict)
+ _data = _data_dict.items()
tabular_writer( ostream, '', _data, _header, _fcn )
if _fcn2 is not None:
for _key in sorted_robust(_data_dict):
@@ -433,7 +430,7 @@ def __getstate__(self):
_base = super(Component,self)
if hasattr(_base, '__getstate__'):
state = _base.__getstate__()
- for key,val in iteritems(self.__dict__):
+ for key,val in self.__dict__.items():
if key not in state:
state[key] = val
else:
@@ -461,7 +458,7 @@ def __setstate__(self, state):
if hasattr(_base, '__setstate__'):
_base.__setstate__(state)
else:
- for key, val in iteritems(state):
+ for key, val in state.items():
# Note: per the Python data model docs, we explicitly
# set the attribute using object.__setattr__() instead
# of setting self.__dict__[key] = val.
@@ -608,7 +605,7 @@ def is_indexed(self):
def clear_suffix_value(self, suffix_or_name, expand=True):
"""Clear the suffix value for this component data"""
- if isinstance(suffix_or_name, six.string_types):
+ if isinstance(suffix_or_name, str):
import pyomo.core.base.suffix
for name_, suffix_ in pyomo.core.base.suffix.active_suffix_generator(self.model()):
if suffix_or_name == name_:
@@ -619,7 +616,7 @@ def clear_suffix_value(self, suffix_or_name, expand=True):
def set_suffix_value(self, suffix_or_name, value, expand=True):
"""Set the suffix value for this component data"""
- if isinstance(suffix_or_name, six.string_types):
+ if isinstance(suffix_or_name, str):
import pyomo.core.base.suffix
for name_, suffix_ in pyomo.core.base.suffix.active_suffix_generator(self.model()):
if suffix_or_name == name_:
@@ -630,7 +627,7 @@ def set_suffix_value(self, suffix_or_name, value, expand=True):
def get_suffix_value(self, suffix_or_name, default=None):
"""Get the suffix value for this component data"""
- if isinstance(suffix_or_name, six.string_types):
+ if isinstance(suffix_or_name, str):
import pyomo.core.base.suffix
for name_, suffix_ in pyomo.core.base.suffix.active_suffix_generator(self.model()):
if suffix_or_name == name_:
@@ -773,7 +770,7 @@ class owns weakrefs for '_component', which must be restored
if hasattr(_base, '__setstate__'):
_base.__setstate__(state)
else:
- for key, val in iteritems(state):
+ for key, val in state.items():
# Note: per the Python data model docs, we explicitly
# set the attribute using object.__setattr__() instead
# of setting self.__dict__[key] = val.
@@ -898,7 +895,7 @@ def getname(self, fully_qualified=False, name_buffer=None, relative_to=None):
if name_buffer is not None:
# Iterate through the dictionary and generate all names in
# the buffer
- for idx, obj in iteritems(c):
+ for idx, obj in c.items():
name_buffer[id(obj)] = base + _name_index_generator(idx)
if id(self) in name_buffer:
# Return the name if it is in the buffer
@@ -909,7 +906,7 @@ def getname(self, fully_qualified=False, name_buffer=None, relative_to=None):
# dictionary until we find this object. This can be much
# more expensive than if a buffer is provided.
#
- for idx, obj in iteritems(c):
+ for idx, obj in c.items():
if obj is self:
return base + _name_index_generator(idx)
#
@@ -922,7 +919,7 @@ def is_indexed(self):
def clear_suffix_value(self, suffix_or_name, expand=True):
"""Set the suffix value for this component data"""
- if isinstance(suffix_or_name, six.string_types):
+ if isinstance(suffix_or_name, str):
import pyomo.core.base.suffix
for name_, suffix_ in pyomo.core.base.suffix.active_suffix_generator(self.model()):
if suffix_or_name == name_:
@@ -933,7 +930,7 @@ def clear_suffix_value(self, suffix_or_name, expand=True):
def set_suffix_value(self, suffix_or_name, value, expand=True):
"""Set the suffix value for this component data"""
- if isinstance(suffix_or_name, six.string_types):
+ if isinstance(suffix_or_name, str):
import pyomo.core.base.suffix
for name_, suffix_ in pyomo.core.base.suffix.active_suffix_generator(self.model()):
if suffix_or_name == name_:
@@ -944,7 +941,7 @@ def set_suffix_value(self, suffix_or_name, value, expand=True):
def get_suffix_value(self, suffix_or_name, default=None):
"""Get the suffix value for this component data"""
- if isinstance(suffix_or_name, six.string_types):
+ if isinstance(suffix_or_name, str):
import pyomo.core.base.suffix
for name_, suffix_ in pyomo.core.base.suffix.active_suffix_generator(self.model()):
if suffix_or_name == name_:
diff --git a/pyomo/core/base/componentuid.py b/pyomo/core/base/componentuid.py
index b5ddde3828b..5d2dc850fd5 100644
--- a/pyomo/core/base/componentuid.py
+++ b/pyomo/core/base/componentuid.py
@@ -8,26 +8,21 @@
# This software is distributed under the 3-clause BSD License.
# ___________________________________________________________________________
-import bisect
import codecs
import re
import ply.lex
-from six import PY2, string_types, iteritems
-
from pyomo.common.collections import ComponentMap
from pyomo.common.dependencies import pickle
from pyomo.common.deprecation import deprecated
from pyomo.core.base.indexed_component_slice import IndexedComponent_slice
from pyomo.core.base.reference import Reference
-class _PickleEllipsis(object):
- "A work around for the non-picklability of Ellipsis in Python 2"
- pass
class _NotSpecified(object):
pass
+
class ComponentUID(object):
"""
A Component unique identifier
@@ -59,7 +54,7 @@ def _pickle(x):
@staticmethod
def _safe_str(x):
- if not isinstance(x, string_types):
+ if not isinstance(x, str):
return ComponentUID._repr_map.get(
x.__class__, ComponentUID._pickle)(x)
else:
@@ -93,7 +88,7 @@ def _safe_str(x):
def __init__(self, component, cuid_buffer=None, context=None):
# A CUID can be initialized from either a reference component or
# the string representation.
- if isinstance(component, string_types):
+ if isinstance(component, str):
if context is not None:
raise ValueError("Context is not allowed when initializing a "
"ComponentUID object from a string type")
@@ -143,20 +138,10 @@ def get_repr(self, version=2):
def __getstate__(self):
ans = {x:getattr(self, x) for x in ComponentUID.__slots__}
- if PY2:
- # Ellipsis is not picklable
- ans['_cids'] = tuple(
- (k, tuple(_PickleEllipsis if i is Ellipsis else i
- for i in v)) for k,v in ans['_cids'])
return ans
def __setstate__(self, state):
- if PY2:
- # Ellipsis is not picklable
- state['_cids'] = tuple(
- (k, tuple(Ellipsis if i is _PickleEllipsis else i
- for i in v)) for k,v in state['_cids'])
- for key, val in iteritems(state):
+ for key, val in state.items():
setattr(self,key,val)
def __hash__(self):
@@ -254,7 +239,7 @@ def generate_cuid_string_map(block, ctype=None, descend_into=True,
repr_version=2):
def _record_indexed_object_cuid_strings_v1(obj, cuid_str):
_unknown = lambda x: '?'+str(x)
- for idx, data in iteritems(obj):
+ for idx, data in obj.items():
if idx.__class__ is tuple and len(idx) > 1:
cuid_strings[data] = cuid_str + ':' + ','.join(
ComponentUID._repr_v1_map.get(x.__class__, _unknown)(x)
@@ -265,7 +250,7 @@ def _record_indexed_object_cuid_strings_v1(obj, cuid_str):
idx.__class__, _unknown)(idx)
def _record_indexed_object_cuid_strings_v2(obj, cuid_str):
- for idx, data in iteritems(obj):
+ for idx, data in obj.items():
if idx.__class__ is tuple and len(idx) > 1:
cuid_strings[data] = cuid_str + '[' + ','.join(
ComponentUID._safe_str(x) for x in idx) + ']'
@@ -439,7 +424,7 @@ def _generate_cuid(self, component, cuid_buffer=None, context=None):
elif cuid_buffer is not None:
if id(component) not in cuid_buffer:
c_local_name = c.local_name
- for idx, obj in iteritems(c):
+ for idx, obj in c.items():
if idx.__class__ is not tuple or len(idx) == 1:
idx = (idx,)
cuid_buffer[id(obj)] = (c_local_name, idx)
@@ -698,10 +683,7 @@ def t_STAR(t):
def t_PICKLE(t):
start = 3 if t.value[1] == 'b' else 2
unescaped = _re_escape_sequences.sub(_match_escape, t.value[start:-1])
- if PY2:
- rawstr = unescaped.encode('latin-1')
- else:
- rawstr = bytes(list(ord(_) for _ in unescaped))
+ rawstr = bytes(list(ord(_) for _ in unescaped))
t.value = pickle.loads(rawstr)
return t
diff --git a/pyomo/core/base/connector.py b/pyomo/core/base/connector.py
index e2c7348fadb..b5e722a0a53 100644
--- a/pyomo/core/base/connector.py
+++ b/pyomo/core/base/connector.py
@@ -12,7 +12,6 @@
import logging
import sys
-from six import iteritems, itervalues
from weakref import ref as weakref_ref
from pyomo.common import deprecated
@@ -110,11 +109,11 @@ def add(self, var, name=None, aggregate=None):
def _iter_vars(self):
- for var in itervalues(self.vars):
+ for var in self.vars.values():
if not hasattr(var, 'is_indexed') or not var.is_indexed():
yield var
else:
- for v in itervalues(var):
+ for v in var.values():
yield v
@@ -195,21 +194,21 @@ def _initialize_members(self, initSet):
for key in self._implicit:
tmp.add(None,key)
if self._extends:
- for key, val in iteritems(self._extends.vars):
+ for key, val in self._extends.vars.items():
tmp.add(val,key)
- for key, val in iteritems(self._initialize):
+ for key, val in self._initialize.items():
tmp.add(val,key)
if self._rule:
items = apply_indexed_rule(
self, self._rule, self._parent(), idx)
- for key, val in iteritems(items):
+ for key, val in items.items():
tmp.add(val,key)
def _pprint(self, ostream=None, verbose=False):
"""Print component information."""
def _line_generator(k,v):
- for _k, _v in sorted(iteritems(v.vars)):
+ for _k, _v in sorted(v.vars.items()):
if _v is None:
_len = '-'
elif _k in v.aggregators:
@@ -222,7 +221,7 @@ def _line_generator(k,v):
return ( [("Size", len(self)),
("Index", self._index if self.is_indexed() else None),
],
- iteritems(self._data),
+ self._data.items(),
( "Name","Size", "Variable", ),
_line_generator
)
@@ -244,7 +243,7 @@ def display(self, prefix="", ostream=None):
ostream.write("\n")
def _line_generator(k,v):
- for _k, _v in sorted(iteritems(v.vars)):
+ for _k, _v in sorted(v.vars.items()):
if _v is None:
_val = '-'
elif not hasattr(_v, 'is_indexed') or not _v.is_indexed():
@@ -254,7 +253,7 @@ def _line_generator(k,v):
x, value(_v[x])) for x in sorted(_v._data) ),)
yield _k, _val
tabular_writer( ostream, prefix+tab,
- ((k,v) for k,v in iteritems(self._data)),
+ ((k,v) for k,v in self._data.items()),
( "Name","Value" ), _line_generator )
diff --git a/pyomo/core/base/constraint.py b/pyomo/core/base/constraint.py
index b09a6fe7c7a..3c872080088 100644
--- a/pyomo/core/base/constraint.py
+++ b/pyomo/core/base/constraint.py
@@ -12,7 +12,7 @@
'simple_constraint_rule', 'simple_constraintlist_rule']
import inspect
-import six
+import io
import sys
import logging
import math
@@ -38,17 +38,6 @@
IndexedCallInitializer, CountedCallInitializer
)
-from six import StringIO, iteritems
-
-if six.PY3:
- from collections.abc import Sequence as collections_Sequence
- def formatargspec(fn):
- return str(inspect.signature(fn))
-else:
- from collections import Sequence as collections_Sequence
- def formatargspec(fn):
- return str(inspect.formatargspec(*inspect.getargspec(fn)))
-
logger = logging.getLogger('pyomo.core')
@@ -120,7 +109,7 @@ def C_rule(model, i, j):
# knowing the number of positional arguments, we will go to extra
# effort here to preserve the original function signature.
_funcdef = _map_constraint_funcdef % (
- formatargspec(fn), 'ConstraintList.Skip'
+ str(inspect.signature(fn)), 'ConstraintList.Skip'
)
# Create the wrapper in a temporary environment that mimics this
# function's environment.
@@ -151,7 +140,7 @@ def C_rule(model, i, j):
# knowing the number of positional arguments, we will go to extra
# effort here to preserve the original function signature.
_funcdef = _map_constraint_funcdef % (
- formatargspec(fn), 'ConstraintList.End'
+ str(inspect.signature(fn)), 'ConstraintList.End'
)
# Create the wrapper in a temporary environment that mimics this
# function's environment.
@@ -526,7 +515,7 @@ def set_value(self, expr):
if logical_expr._using_chained_inequality \
and logical_expr._chainedInequality.prev is not None:
- buf = StringIO()
+ buf = io.StringIO()
logical_expr._chainedInequality.prev.pprint(buf)
#
# We are about to raise an exception, so it's OK to
@@ -612,18 +601,20 @@ def set_value(self, expr):
"using '<=', '>=', or '=='."
% (self.name))
- if not expr.arg(1).is_potentially_variable():
+ arg0 = as_numeric(expr.arg(0))
+ arg1 = as_numeric(expr.arg(1))
+ if not arg1.is_potentially_variable():
self._lower = None
- self._body = expr.arg(0)
- self._upper = as_numeric(expr.arg(1))
- elif not expr.arg(0).is_potentially_variable():
- self._lower = as_numeric(expr.arg(0))
- self._body = expr.arg(1)
+ self._body = arg0
+ self._upper = arg1
+ elif not arg0.is_potentially_variable():
+ self._lower = arg0
+ self._body = arg1
self._upper = None
else:
self._lower = None
- self._body = expr.arg(0)
- self._body -= expr.arg(1)
+ self._body = arg0
+ self._body -= arg1
self._upper = ZeroConstant
@@ -865,7 +856,7 @@ def _pprint(self):
("Index", self._index if self.is_indexed() else None),
("Active", self.active),
],
- iteritems(self),
+ self.items(),
( "Lower","Body","Upper","Active" ),
lambda k, v: [ "-Inf" if v.lower is None else v.lower,
v.body,
@@ -890,7 +881,7 @@ def display(self, prefix="", ostream=None):
ostream.write("\n")
tabular_writer( ostream, prefix+tab,
- ((k,v) for k,v in iteritems(self._data) if v.active),
+ ((k,v) for k,v in self._data.items() if v.active),
( "Lower","Body","Upper" ),
lambda k, v: [ value(v.lower),
v.body(),
diff --git a/pyomo/core/base/expression.py b/pyomo/core/base/expression.py
index 5b82d3bb0ad..390bb9ce7ad 100644
--- a/pyomo/core/base/expression.py
+++ b/pyomo/core/base/expression.py
@@ -29,8 +29,6 @@
as_numeric)
from pyomo.core.base.util import is_functor
-from six import iteritems
-
logger = logging.getLogger('pyomo.core')
@@ -319,7 +317,7 @@ def display(self, prefix="", ostream=None):
tabular_writer(
ostream,
prefix+tab,
- ((k,v) for k,v in iteritems(self._data)),
+ ((k,v) for k,v in self._data.items()),
( "Value", ),
lambda k, v: \
["Undefined" if v.expr is None else v()])
@@ -332,7 +330,7 @@ def display(self, prefix="", ostream=None):
#
def extract_values(self):
return {key:expression_data.expr
- for key, expression_data in iteritems(self)}
+ for key, expression_data in self.items()}
#
# takes as input a (index, value) dictionary for updating this
@@ -348,7 +346,7 @@ def store_values(self, new_values):
"="+self.name+"; no value with index "
"None in input new values map.")
- for index, new_value in iteritems(new_values):
+ for index, new_value in new_values.items():
self._data[index].set_value(new_value)
def _getitem_when_not_present(self, index):
diff --git a/pyomo/core/base/external.py b/pyomo/core/base/external.py
index 2daabcd9b1a..b203a4a3183 100644
--- a/pyomo/core/base/external.py
+++ b/pyomo/core/base/external.py
@@ -10,7 +10,6 @@
import logging
import os
-import six
import types
import weakref
@@ -25,11 +24,6 @@
__all__ = ( 'ExternalFunction', )
-try:
- basestring
-except:
- basestring = str
-
logger = logging.getLogger('pyomo.core')
@@ -177,7 +171,7 @@ def load_library(self):
def addfunc(name, f, _type, nargs, funcinfo, ae):
# trap for Python 3, where the name comes in as bytes() and
# not a string
- if not isinstance(name, six.string_types):
+ if not isinstance(name, str):
name = name.decode()
self._known_functions[str(name)] = (f, _type, nargs, funcinfo, ae)
AE.Addfunc = _AMPLEXPORTS.ADDFUNC(addfunc)
diff --git a/pyomo/core/base/indexed_component.py b/pyomo/core/base/indexed_component.py
index 54d47616049..30ee94c5ff7 100644
--- a/pyomo/core/base/indexed_component.py
+++ b/pyomo/core/base/indexed_component.py
@@ -19,15 +19,10 @@
from pyomo.core.base.config import PyomoOptions
from pyomo.core.base.global_set import UnindexedComponent_set
from pyomo.common import DeveloperError
-from pyomo.common.deprecation import deprecation_warning
+from pyomo.common.deprecation import deprecated, deprecation_warning
-from six import PY3, itervalues, iteritems, string_types
+from collections.abc import Sequence
-if PY3:
- from collections.abc import Sequence as collections_Sequence
-else:
- from collections import Sequence as collections_Sequence
-
logger = logging.getLogger('pyomo.core')
sequence_types = {tuple, list}
@@ -66,8 +61,8 @@ def normalize_index(x):
# Note that casting a tuple to a tuple is cheap (no copy, no
# new object)
x = x[:i] + tuple(x[i]) + x[i + 1:]
- elif issubclass(_xi_class, collections_Sequence):
- if issubclass(_xi_class, string_types):
+ elif issubclass(_xi_class, Sequence):
+ if issubclass(_xi_class, str):
# This is very difficult to get to: it would require a
# user creating a custom derived string type
native_types.add(_xi_class)
@@ -345,31 +340,35 @@ def _sparse_iter_gen(self):
yield idx
return _sparse_iter_gen(self)
- def keys(self):
+ @deprecated('The iterkeys method is deprecated. Use dict.keys().',
+ version='TBD')
+ def iterkeys(self):
"""Return a list of keys in the dictionary"""
- return [ x for x in self ]
+ return self.keys()
- def values(self):
+ @deprecated('The itervalues method is deprecated. Use dict.values().',
+ version='TBD')
+ def itervalues(self):
"""Return a list of the component data objects in the dictionary"""
- return [ self[x] for x in self ]
+ return self.values()
- def items(self):
+ @deprecated('The iteritems method is deprecated. Use dict.items().',
+ version='TBD')
+ def iteritems(self):
"""Return a list (index,data) tuples from the dictionary"""
- return [ (x, self[x]) for x in self ]
+ return self.items()
- def iterkeys(self):
+ def keys(self):
"""Return an iterator of the keys in the dictionary"""
- return self.__iter__()
+ return [ x for x in self ]
- def itervalues(self):
+ def values(self):
"""Return an iterator of the component data objects in the dictionary"""
- for key in self:
- yield self[key]
+ return [ self[x] for x in self ]
- def iteritems(self):
+ def items(self):
"""Return an iterator of (index,data) tuples from the dictionary"""
- for key in self:
- yield key, self[key]
+ return [ (x, self[x]) for x in self ]
def __getitem__(self, index):
"""
@@ -801,7 +800,7 @@ def _pprint(self):
return ( [("Size", len(self)),
("Index", self._index if self.is_indexed() else None),
],
- iteritems(self._data),
+ self._data.items(),
( "Object",),
lambda k, v: [ type(v) ]
)
@@ -812,18 +811,11 @@ def id_index_map(self):
all ComponentData instances.
"""
result = {}
- for index, component_data in iteritems(self):
+ for index, component_data in self.items():
result[id(component_data)] = index
return result
-# In Python3, the items(), etc methods of dict-like things return
-# generator-like objects.
-if PY3:
- IndexedComponent.keys = IndexedComponent.iterkeys
- IndexedComponent.values = IndexedComponent.itervalues
- IndexedComponent.items = IndexedComponent.iteritems
-
class ActiveIndexedComponent(IndexedComponent, ActiveComponent):
"""
This is the base class for all indexed modeling components
@@ -847,13 +839,13 @@ def activate(self):
"""Set the active attribute to True"""
super(ActiveIndexedComponent, self).activate()
if self.is_indexed():
- for component_data in itervalues(self):
+ for component_data in self.values():
component_data.activate()
def deactivate(self):
"""Set the active attribute to False"""
super(ActiveIndexedComponent, self).deactivate()
if self.is_indexed():
- for component_data in itervalues(self):
+ for component_data in self.values():
component_data.deactivate()
diff --git a/pyomo/core/base/indexed_component_slice.py b/pyomo/core/base/indexed_component_slice.py
index 90fe090aecf..e77ba2202c5 100644
--- a/pyomo/core/base/indexed_component_slice.py
+++ b/pyomo/core/base/indexed_component_slice.py
@@ -7,10 +7,11 @@
# rights in this software.
# This software is distributed under the 3-clause BSD License.
# ___________________________________________________________________________
+
import copy
-from six import iteritems, iterkeys, advance_iterator
from pyomo.common import DeveloperError
+
class IndexedComponent_slice(object):
"""Special class for slicing through hierarchical component trees
@@ -121,7 +122,7 @@ def __getstate__(self):
def __setstate__(self, state):
"""Deserialize the state into this object. """
set_attr = super(IndexedComponent_slice, self).__setattr__
- for k,v in iteritems(state):
+ for k,v in state.items():
set_attr(k,v)
def __deepcopy__(self, memo):
@@ -284,8 +285,8 @@ def _freeze(info):
return (
info[0],
id(info[1][0]), # id of the Component
- tuple(iteritems(info[1][1])), # {idx: value} for fixed
- tuple(iterkeys(info[1][2])), # {idx: slice} for slices
+ tuple(info[1][1].items()), # {idx: value} for fixed
+ tuple(info[1][2].keys()), # {idx: slice} for slices
info[1][3] # elipsis index
)
elif info[0] & IndexedComponent_slice.ITEM_MASK:
@@ -349,7 +350,7 @@ def __next__(self):
# Note: running off the end of the underlying iterator will
# generate a StopIteration exception that will propagate up
# and end this iterator.
- index = advance_iterator(self.component_iter)
+ index = next(self.component_iter)
# We want a tuple of indices, so convert scalars to tuples
if normalize_index.flatten:
@@ -370,7 +371,7 @@ def __next__(self):
continue
valid = True
- for key, val in iteritems(self.fixed):
+ for key, val in self.fixed.items():
# If this index of the component does not match all
# the specified fixed indices, don't return anything.
if not val == _idx[key]:
@@ -407,7 +408,7 @@ def __next__(self):
# Mock up a callable object with a "check_complete" method
def _advance_iter(_iter):
- return advance_iterator(_iter)
+ return next(_iter)
def _advance_iter_check_complete():
pass
_advance_iter.check_complete = _advance_iter_check_complete
diff --git a/pyomo/core/base/instance2dat.py b/pyomo/core/base/instance2dat.py
index 9df7e9af6d2..d9ce546bee6 100644
--- a/pyomo/core/base/instance2dat.py
+++ b/pyomo/core/base/instance2dat.py
@@ -11,7 +11,6 @@
__all__ = ['instance2dat']
import types
-from six import iteritems
from pyomo.core.base import Set, Param, value
@@ -21,7 +20,7 @@ def instance2dat(instance, output_filename):
output_file = open(output_filename,"w")
- for set_name, set_object in iteritems(instance.component_map(Set, active=True)):
+ for set_name, set_object in instance.component_map(Set, active=True).items():
if (set_object.initialize is not None) and (type(set_object.initialize) is types.FunctionType):
continue
@@ -45,7 +44,8 @@ def instance2dat(instance, output_filename):
output_file.write("\n")
- for param_name, param_object in iteritems(instance.component_map(Param, active=True)):
+ for param_name, param_object in instance.component_map(Param,
+ active=True).items():
if (param_object._initialize is not None) and (type(param_object._initialize) is types.FunctionType):
continue
elif len(param_object) == 0:
diff --git a/pyomo/core/base/label.py b/pyomo/core/base/label.py
index e976f19a2e1..8f7f5f47bac 100644
--- a/pyomo/core/base/label.py
+++ b/pyomo/core/base/label.py
@@ -13,12 +13,6 @@
'ShortNameLabeler']
import re
-import six
-if six.PY3:
- _translate = str.translate
-else:
- import string
- _translate = string.translate
from pyomo.core.base.componentuid import ComponentUID
@@ -40,7 +34,7 @@ def __init__(self, preserve, translate, other):
preserve or translate
"""
self.table = {k if isinstance(k, int) else ord(k): v
- for k,v in six.iteritems(dict(translate)) }
+ for k,v in dict(translate).items() }
for c in preserve:
_c = ord(c)
if _c in self.table and self.table[_c] != c:
@@ -73,7 +67,7 @@ def cpxlp_label_from_name(name):
raise RuntimeError("Illegal name=None supplied to "
"cpxlp_label_from_name function")
- return _translate(name, _cpxlp_translation_table)
+ return str.translate(name, _cpxlp_translation_table)
_alphanum_translation_table = _CharMapper( preserve=_alpha+_digit+'_',
translate = {},
@@ -84,7 +78,7 @@ def alphanum_label_from_name(name):
raise RuntimeError("Illegal name=None supplied to "
"alphanum_label_from_name function")
- return _translate(name, _alphanum_translation_table)
+ return str.translate(name, _alphanum_translation_table)
class CuidLabeler(object):
@@ -164,7 +158,7 @@ def __init__(self, limit, suffix, start=0, labeler=None,
else:
self.labeler = AlphaNumericTextLabeler()
self.known_labels = set() if caseInsensitive else None
- if isinstance(legalRegex, six.string_types):
+ if isinstance(legalRegex, str):
self.legalRegex = re.compile(legalRegex)
else:
self.legalRegex = legalRegex
diff --git a/pyomo/core/base/logical_constraint.py b/pyomo/core/base/logical_constraint.py
index 66e4b807d40..acb291d3d45 100644
--- a/pyomo/core/base/logical_constraint.py
+++ b/pyomo/core/base/logical_constraint.py
@@ -30,8 +30,6 @@
tabular_writer)
from pyomo.core.base.set import Set
-from six import iteritems
-
logger = logging.getLogger('pyomo.core')
_rule_returned_none_error = """LogicalConstraint '%s': rule returned None.
@@ -356,7 +354,7 @@ def _pprint(self):
("Index", self._index if self.is_indexed() else None),
("Active", self.active),
],
- iteritems(self),
+ self.items(),
("Body", "Active"),
lambda k, v: [v.body, v.active, ]
)
@@ -377,7 +375,7 @@ def display(self, prefix="", ostream=None):
ostream.write("\n")
tabular_writer(ostream, prefix + tab,
- ((k, v) for k, v in iteritems(self._data) if v.active),
+ ((k, v) for k, v in self._data.items() if v.active),
("Body",),
lambda k, v: [v.body(), ])
diff --git a/pyomo/core/base/matrix_constraint.py b/pyomo/core/base/matrix_constraint.py
index 838b7e5e9d9..9378471bde1 100644
--- a/pyomo/core/base/matrix_constraint.py
+++ b/pyomo/core/base/matrix_constraint.py
@@ -22,13 +22,7 @@
from pyomo.common.gc_manager import PauseGC
from pyomo.common.log import is_debug_set
-import six
-from six.moves import xrange
-
-if six.PY3:
- from collections.abc import Mapping as collections_Mapping
-else:
- from collections import Mapping as collections_Mapping
+from collections.abc import Mapping
logger = logging.getLogger('pyomo.core')
@@ -85,7 +79,7 @@ def canonical_form(self, compute_values=True):
variables = []
coefficients = []
constant = 0
- for p in xrange(indptr[index],
+ for p in range(indptr[index],
indptr[index+1]):
v = x[indices[p]]
c = data[p]
@@ -145,7 +139,7 @@ def __call__(self, exception=True):
indices = comp._A_indices
indptr = comp._A_indptr
x = comp._x
- ptrs = xrange(indptr[index],
+ ptrs = range(indptr[index],
indptr[index+1])
try:
return sum(x[indices[p]].value * data[p]
@@ -232,7 +226,7 @@ def body(self):
indices = comp._A_indices
indptr = comp._A_indptr
x = comp._x
- ptrs = xrange(indptr[index],
+ ptrs = range(indptr[index],
indptr[index+1])
return LinearExpression(
linear_vars=[x[indices[p]] for p in ptrs],
@@ -288,8 +282,7 @@ def set_value(self, expr):
@ModelComponentFactory.register(
"A set of constraint expressions in Ax=b form.")
-class MatrixConstraint(collections_Mapping,
- IndexedConstraint):
+class MatrixConstraint(Mapping, IndexedConstraint):
"""
Defines a set of linear constraints of the form:
@@ -364,7 +357,7 @@ def construct(self, data=None):
ref = weakref.ref(self)
with PauseGC():
self._data = tuple(_MatrixConstraintData(i, ref)
- for i in xrange(len(self._lower)))
+ for i in range(len(self._lower)))
#
# Override some IndexedComponent methods
@@ -377,7 +370,7 @@ def __len__(self):
return self._data.__len__()
def __iter__(self):
- return iter(i for i in xrange(len(self)))
+ return iter(i for i in range(len(self)))
#
# Remove methods that allow modifying this constraint
diff --git a/pyomo/core/base/objective.py b/pyomo/core/base/objective.py
index 86638de8f57..df509705741 100644
--- a/pyomo/core/base/objective.py
+++ b/pyomo/core/base/objective.py
@@ -36,8 +36,6 @@
from pyomo.core.base.set import Set
from pyomo.core.base import minimize, maximize
-from six import iteritems
-
logger = logging.getLogger('pyomo.core')
_rule_returned_none_error = """Objective '%s': rule returned None.
@@ -402,7 +400,7 @@ def _pprint(self):
("Index", self._index if self.is_indexed() else None),
("Active", self.active)
],
- iteritems(self._data),
+ self._data.items(),
( "Active","Sense","Expression"),
lambda k, v: [ v.active,
("minimize" if (v.sense == minimize) else "maximize"),
@@ -426,7 +424,7 @@ def display(self, prefix="", ostream=None):
ostream.write("\n")
tabular_writer( ostream, prefix+tab,
- ((k,v) for k,v in iteritems(self._data) if v.active),
+ ((k,v) for k,v in self._data.items() if v.active),
( "Active","Value" ),
lambda k, v: [ v.active, value(v), ] )
diff --git a/pyomo/core/base/param.py b/pyomo/core/base/param.py
index 505e58385ae..d1e06bd0471 100644
--- a/pyomo/core/base/param.py
+++ b/pyomo/core/base/param.py
@@ -24,12 +24,10 @@
from pyomo.core.base.indexed_component import IndexedComponent, \
UnindexedComponent_set
from pyomo.core.base.misc import apply_indexed_rule, apply_parameterized_indexed_rule
-from pyomo.core.base.numvalue import NumericValue, native_types, value
+from pyomo.core.base.numvalue import NumericValue, native_types
from pyomo.core.base.set_types import Any, Reals
from pyomo.core.base.units_container import units
-from six import iteritems, iterkeys, next, itervalues
-
logger = logging.getLogger('pyomo.core')
def _raise_modifying_immutable_error(obj, index):
@@ -311,27 +309,27 @@ def get_units(self):
def sparse_keys(self):
"""Return a list of keys in the defined parameters"""
- return list(iterkeys(self._data))
+ return list(self._data.keys())
def sparse_values(self):
"""Return a list of the defined param data objects"""
- return list(itervalues(self._data))
+ return list(self._data.values())
def sparse_items(self):
"""Return a list (index,data) tuples for defined parameters"""
- return list(iteritems(self._data))
+ return list(self._data.items())
def sparse_iterkeys(self):
"""Return an iterator for the keys in the defined parameters"""
- return iterkeys(self._data)
+ return self._data.keys()
def sparse_itervalues(self):
"""Return an iterator for the defined param data objects"""
- return itervalues(self._data)
+ return self._data.values()
def sparse_iteritems(self):
"""Return an iterator of (index,data) tuples for defined parameters"""
- return iteritems(self._data)
+ return self._data.items()
def extract_values(self):
"""
@@ -412,7 +410,7 @@ def store_values(self, new_values, check=True):
#
if check:
if _isDict:
- for index, new_value in iteritems(new_values):
+ for index, new_value in new_values.items():
self[index] = new_value
else:
for index in self._index:
@@ -428,7 +426,7 @@ def store_values(self, new_values, check=True):
# index is not already in the _data dict. As these
# cases are rare, we will recover from the exception
# instead of incurring the penalty of checking.
- for index, new_value in iteritems(new_values):
+ for index, new_value in new_values.items():
if index not in self._data:
self._data[index] = _ParamData(self)
self._data[index]._value = new_value
@@ -910,7 +908,7 @@ def construct(self, data=None):
#
if data is not None:
try:
- for key, val in iteritems(data):
+ for key, val in data.items():
self._setitem_when_not_present(
self._validate_index(key), val)
except Exception:
diff --git a/pyomo/core/base/piecewise.py b/pyomo/core/base/piecewise.py
index d483de629a1..afc3c8a23ab 100644
--- a/pyomo/core/base/piecewise.py
+++ b/pyomo/core/base/piecewise.py
@@ -45,8 +45,6 @@
import types
import enum
-from pyutilib.misc import flatten_tuple
-
from pyomo.common.log import is_debug_set
from pyomo.common.deprecation import deprecation_warning
from pyomo.common.timing import ConstructionTimer
@@ -57,12 +55,9 @@
from pyomo.core.base.var import Var, _VarData, IndexedVar
from pyomo.core.base.set_types import PositiveReals, NonNegativeReals, Binary
from pyomo.core.base.numvalue import value
-
-from six import iterkeys, advance_iterator
-from six.moves import xrange, zip
+from pyomo.core.base.util import flatten_tuple
logger = logging.getLogger('pyomo.core')
-
class PWRepn(str, enum.Enum):
SOS2 = 'SOS2'
BIGM_BIN = 'BIGM_BIN'
@@ -90,7 +85,7 @@ def _isNonDecreasing(vals):
nondecreasing
"""
it = iter(vals)
- advance_iterator(it)
+ next(it)
op = operator.ge
return all(itertools.starmap(op, zip(it,vals)))
@@ -100,7 +95,7 @@ def _isNonIncreasing(vals):
nonincreasing
"""
it = iter(vals)
- advance_iterator(it)
+ next(it)
op = operator.le
return all(itertools.starmap(op, zip(it,vals)))
@@ -118,13 +113,13 @@ def _GrayCode(nbits):
Generates a GrayCode of nbits represented
by a list of lists
"""
- bitset = [0 for i in xrange(nbits)]
+ bitset = [0 for i in range(nbits)]
# important that we copy bitset each time
graycode = [list(bitset)]
- for i in xrange(2,(1<= rhs
def con2_rule(model):
- expr = [bigm_y[i] for i in xrange(1,len_x_pts) if i in all_keys]
+ expr = [bigm_y[i] for i in range(1,len_x_pts) if i in all_keys]
if len(expr) > 0:
return sum(expr) == 1
else:
@@ -879,18 +874,18 @@ def _find_M(self,x_pts,y_pts,bound_type):
_self_M_func = self._M_func
M_final = {}
- for j in xrange(1,len_x_pts):
+ for j in range(1,len_x_pts):
index = j
if (bound_type == Bound.Lower):
M_final[index] = min( [0.0, min([_self_M_func(x_pts[k],y_pts[k],
x_pts[j-1],y_pts[j-1],
x_pts[j],y_pts[j]) \
- for k in xrange(len_x_pts)])] )
+ for k in range(len_x_pts)])] )
elif (bound_type == Bound.Upper):
M_final[index] = max( [0.0, max([_self_M_func(x_pts[k],y_pts[k],
x_pts[j-1],y_pts[j-1],
x_pts[j],y_pts[j]) \
- for k in xrange(len_x_pts)])] )
+ for k in range(len_x_pts)])] )
else:
raise ValueError("Invalid Bound passed to _find_M function")
if M_final[index] == 0.0:
diff --git a/pyomo/core/base/range.py b/pyomo/core/base/range.py
index 5a4d0dbd666..81aca68fee1 100644
--- a/pyomo/core/base/range.py
+++ b/pyomo/core/base/range.py
@@ -9,14 +9,7 @@
# ___________________________________________________________________________
import math
-
-from six import iteritems, PY3
-from six.moves import xrange
-
-if PY3:
- from collections.abc import Sequence as collections_Sequence
-else:
- from collections import Sequence as collections_Sequence
+from collections.abc import Sequence
try:
from math import remainder
@@ -132,7 +125,7 @@ def __setstate__(self, state):
This method must be defined because this class uses slots.
"""
- for key, val in iteritems(state):
+ for key, val in state.items():
# Note: per the Python data model docs, we explicitly
# set the attribute using object.__setattr__() instead
# of setting self.__dict__[key] = val.
@@ -475,7 +468,7 @@ def _split_ranges(cnr, new_step):
assert new_step % cnr.step == 0
_dir = math.copysign(1, cnr.step)
_subranges = []
- for i in xrange(int(abs(new_step // cnr.step))):
+ for i in range(int(abs(new_step // cnr.step))):
if ( cnr.end is not None
and _dir*(cnr.start + i*cnr.step) > _dir*cnr.end ):
# Once we walk past the end of the range, we are done
@@ -619,7 +612,7 @@ def range_difference(self, other_ranges):
t.start, start, 0, (t.closed[0], False)
))
if s.step: # i.e., not a single point
- for i in xrange(int(start//s.step), int(end//s.step)):
+ for i in range(int(start//s.step), int(end//s.step)):
_new_subranges.append(NumericRange(
i*s.step, (i+1)*s.step, 0, '()'
))
@@ -796,7 +789,7 @@ def __setstate__(self, state):
This method must be defined because this class uses slots.
"""
- for key, val in iteritems(state):
+ for key, val in state.items():
# Note: per the Python data model docs, we explicitly
# set the attribute using object.__setattr__() instead
# of setting self.__dict__[key] = val.
@@ -903,7 +896,7 @@ def __ne__(self, other):
return not self.__eq__(other)
def __contains__(self, value):
- if not isinstance(value, collections_Sequence):
+ if not isinstance(value, Sequence):
return False
if len(value) != len(self.range_lists):
return False
@@ -927,7 +920,7 @@ def __setstate__(self, state):
This method must be defined because this class uses slots.
"""
- for key, val in iteritems(state):
+ for key, val in state.items():
# Note: per the Python data model docs, we explicitly
# set the attribute using object.__setattr__() instead
# of setting self.__dict__[key] = val.
@@ -981,7 +974,7 @@ def range_difference(self, other_ranges):
tmp.append(rp)
continue
- for dim in xrange(N):
+ for dim in range(N):
remainder = []
for r in rp.range_lists[dim]:
remainder.extend(
@@ -1005,7 +998,7 @@ def range_intersection(self, other_ranges):
if type(other) is not RangeProduct or len(other.range_lists) != N:
return []
- for dim in xrange(N):
+ for dim in range(N):
tmp = []
for r in ans[dim]:
tmp.extend(r.range_intersection(other.range_lists[dim]))
diff --git a/pyomo/core/base/reference.py b/pyomo/core/base/reference.py
index a4ddb2a0cc5..17b218cdcff 100644
--- a/pyomo/core/base/reference.py
+++ b/pyomo/core/base/reference.py
@@ -8,7 +8,6 @@
# This software is distributed under the 3-clause BSD License.
# ___________________________________________________________________________
-from pyutilib.misc import flatten_tuple
from pyomo.common import DeveloperError
from pyomo.common.collections import (
UserDict, OrderedDict, Mapping, MutableMapping,
@@ -22,12 +21,12 @@
from pyomo.core.base.indexed_component_slice import (
IndexedComponent_slice, _IndexedComponent_slice_iter
)
-
-import six
-from six import iteritems, itervalues, advance_iterator
+from pyomo.core.base.util import flatten_tuple
+from pyomo.common.deprecation import deprecated
_NotSpecified = object()
+
class _fill_in_known_wildcards(object):
"""Variant of "six.advance_iterator" that substitutes wildcard values
@@ -182,7 +181,7 @@ def __init__(self, component_slice):
def __contains__(self, key):
try:
- advance_iterator(self._get_iter(self._slice, key))
+ next(self._get_iter(self._slice, key))
# This calls IC_slice_iter.__next__, which calls
# _fill_in_known_wildcards.
return True
@@ -207,7 +206,7 @@ def __getitem__(self, key):
try:
# This calls IC_slice_iter.__next__, which calls
# _fill_in_known_wildcards.
- return advance_iterator(
+ return next(
self._get_iter(self._slice, key, get_if_not_present=True)
)
except SliceEllipsisLookupError:
@@ -248,7 +247,7 @@ def __setitem__(self, key, val):
raise DeveloperError(
"Unexpected slice _call_stack operation: %s" % op)
try:
- advance_iterator(self._get_iter(tmp, key, get_if_not_present=True))
+ next(self._get_iter(tmp, key, get_if_not_present=True))
except StopIteration:
pass
@@ -265,7 +264,7 @@ def __delitem__(self, key):
assert len(tmp._call_stack) == 1
_iter = self._get_iter(tmp, key)
try:
- advance_iterator(_iter)
+ next(_iter)
del _iter._iter_stack[0].component[_iter.get_last_index()]
return
except StopIteration:
@@ -280,7 +279,7 @@ def __delitem__(self, key):
raise DeveloperError(
"Unexpected slice _call_stack operation: %s" % op)
try:
- advance_iterator(self._get_iter(tmp, key))
+ next(self._get_iter(tmp, key))
except StopIteration:
pass
@@ -292,7 +291,7 @@ def __len__(self):
# is very slow (linear time).
return sum(1 for i in self._slice)
- def iteritems(self):
+ def items(self):
"""Return the wildcard, value tuples for this ReferenceDict
This method is necessary because the default implementation
@@ -307,7 +306,7 @@ def iteritems(self):
"""
return self._slice.wildcard_items()
- def itervalues(self):
+ def values(self):
"""Return the values for this ReferenceDict
This method is necessary because the default implementation
@@ -322,6 +321,16 @@ def itervalues(self):
"""
return iter(self._slice)
+ @deprecated('The iteritems method is deprecated. Use dict.items().',
+ version='TBD')
+ def iteritems(self):
+ return self.items()
+
+ @deprecated('The itervalues method is deprecated. Use dict.values().',
+ version='TBD')
+ def itervalues(self):
+ return self.values()
+
def _get_iter(self, _slice, key, get_if_not_present=False):
# Construct a slice iter with `_fill_in_known_wildcards`
# as `advance_iter`. This reuses all the logic from the slice
@@ -336,10 +345,6 @@ def _get_iter(self, _slice, key, get_if_not_present=False):
get_if_not_present=get_if_not_present)
)
-if six.PY3:
- _ReferenceDict.items = _ReferenceDict.iteritems
- _ReferenceDict.values = _ReferenceDict.itervalues
-
class _ReferenceDict_mapping(UserDict):
def __init__(self, data):
@@ -370,7 +375,7 @@ def __init__(self, component_slice):
def __contains__(self, key):
try:
- advance_iterator(self._get_iter(self._slice, key))
+ next(self._get_iter(self._slice, key))
return True
except SliceEllipsisLookupError:
if type(key) is tuple and len(key) == 1:
@@ -490,7 +495,7 @@ def _identify_wildcard_sets(iter_stack, index):
if len(index[i]) != len(level):
return None
# if any wildcard "subset" differs in position or set.
- if any(index[i].get(j,None) is not _set for j,_set in iteritems(level)):
+ if any(index[i].get(j,None) is not _set for j,_set in level.items()):
return None
# These checks seem to intentionally preclude
# m.b1[:].v and m.b2[1,:].v
@@ -617,12 +622,12 @@ def Reference(reference, ctype=_NotSpecified):
index = None
elif isinstance(reference, Mapping):
_data = _ReferenceDict_mapping(dict(reference))
- _iter = itervalues(_data)
+ _iter = _data.values()
slice_idx = None
index = SetOf(_data)
elif isinstance(reference, Sequence):
_data = _ReferenceDict_mapping(OrderedDict(enumerate(reference)))
- _iter = itervalues(_data)
+ _iter = _data.values()
slice_idx = None
index = OrderedSetOf(_data)
else:
@@ -668,7 +673,7 @@ def Reference(reference, ctype=_NotSpecified):
if not slice_idx:
index = SetOf(_ReferenceSet(reference))
else:
- wildcards = sum((sorted(iteritems(lvl)) for lvl in slice_idx
+ wildcards = sum((sorted(lvl.items()) for lvl in slice_idx
if lvl is not None), [])
# Wildcards is a list of (coordinate, set) tuples. Coordinate
# is that within the subsets list, and set is a wildcard set.
diff --git a/pyomo/core/base/set.py b/pyomo/core/base/set.py
index 88dde6c3c79..eda138b9d44 100644
--- a/pyomo/core/base/set.py
+++ b/pyomo/core/base/set.py
@@ -12,13 +12,9 @@
import itertools
import logging
import math
-import six
import sys
import weakref
-from six import iteritems
-from six.moves import xrange
-
from pyomo.common.deprecation import deprecated, deprecation_warning
from pyomo.common.errors import DeveloperError, PyomoException
from pyomo.common.log import is_debug_set
@@ -44,14 +40,7 @@
)
from pyomo.core.base.misc import sorted_robust
-if six.PY3:
- from collections.abc import Sequence as collections_Sequence
- def formatargspec(fn):
- return str(inspect.signature(fn))
-else:
- from collections import Sequence as collections_Sequence
- def formatargspec(fn):
- return str(inspect.formatargspec(*inspect.getargspec(fn)))
+from collections.abc import Sequence
logger = logging.getLogger('pyomo.core')
@@ -242,7 +231,7 @@ def A_rule(model, i, j):
if value is None:
return Set.End
return value
-""" % (formatargspec(fn),)
+""" % (str(inspect.signature(fn)),)
# Create the wrapper in a temporary environment that mimics this
# function's environment.
_env = dict(globals())
@@ -363,7 +352,7 @@ def __init__(self, init, default_step=0):
def __call__(self, parent, idx):
val = self._init(parent, idx)
- if not isinstance(val, collections_Sequence):
+ if not isinstance(val, Sequence):
val = (1, val, self.default_step)
else:
val = tuple(val)
@@ -418,7 +407,7 @@ def __call__(self, parent, index):
elif _val is None:
return _val
- if not isinstance(_val, collections_Sequence):
+ if not isinstance(_val, Sequence):
_val = tuple(_val)
if len(_val) == 0:
return _val
@@ -442,7 +431,7 @@ def _tuplize(self, _val, parent, index):
"Cannot tuplize list data for set %%s%%s because its "
"length %s is not a multiple of dimen=%s" % (len(_val), d))
- return list(tuple(_val[d*i:d*(i+1)]) for i in xrange(len(_val)//d))
+ return list(tuple(_val[d*i:d*(i+1)]) for i in range(len(_val)//d))
class _NotFound(object):
@@ -653,7 +642,7 @@ def _get_discrete_interval(self):
if len(vals) < 2:
return (vals[0], vals[0], 0)
step = vals[1]-vals[0]
- for i in xrange(2, len(vals)):
+ for i in range(2, len(vals)):
if step != vals[i] - vals[i-1]:
return self.bounds() + (None,)
return (vals[0], vals[-1], step)
@@ -1549,7 +1538,7 @@ def _add_impl(self, value):
def remove(self, val):
idx = self._values.pop(val)
self._ordered_values.pop(idx)
- for i in xrange(idx, len(self._ordered_values)):
+ for i in range(idx, len(self._ordered_values)):
self._values[self._ordered_values[i]] -= 1
def discard(self, val):
@@ -2196,7 +2185,7 @@ def _pprint(self):
[("Size", len(self._data)),
("Index", self._index if self.is_indexed() else None),
("Ordered", _ordered),],
- iteritems(self._data),
+ self._data.items(),
("Dimen","Domain","Size","Members",),
lambda k, v: [
Set._pprint_dimen(v),
@@ -2209,7 +2198,7 @@ def _pprint(self):
class IndexedSet(Set):
def data(self):
"Return a dict containing the data() of each Set in this IndexedSet"
- return {k: v.data() for k,v in iteritems(self)}
+ return {k: v.data() for k,v in self.items()}
class FiniteSimpleSet(_FiniteSetData, Set):
@@ -2329,7 +2318,7 @@ def _pprint(self):
[("Dimen", self.dimen),
("Size", len(self)),
("Bounds", self.bounds())],
- iteritems( {None: self} ),
+ {None: self}.items() ,
("Ordered", "Members",),
lambda k, v: [
v.isordered(),
@@ -2889,7 +2878,7 @@ def _pprint(self):
[("Dimen", self.dimen),
("Size", len(self) if self.isfinite() else 'Inf'),
("Bounds", self.bounds())],
- iteritems( {None: self} ),
+ {None: self}.items(),
("Finite","Members",),
lambda k, v: [
v.isfinite(),#isinstance(v, _FiniteSetMixin),
@@ -3617,7 +3606,7 @@ def _flatten_product(self, val):
nested tuples (so this only needs to check the top-level terms)
"""
- for i in xrange(len(val)-1, -1, -1):
+ for i in range(len(val)-1, -1, -1):
if val[i].__class__ is tuple:
val = val[:i] + val[i] + val[i+1:]
return val
@@ -3739,7 +3728,7 @@ def _find_val(self, val):
for cuts in self._cutPointGenerator(subsets, len(_val)):
if all(_val[cuts[i]:cuts[i+1]] in s for i,s in enumerate(subsets)):
offset = index[firstNonDimSet]
- for i in xrange(1,len(subsets)):
+ for i in range(1,len(subsets)):
index[firstNonDimSet+i] = offset + cuts[i]
return val, index
return None
@@ -3763,7 +3752,7 @@ def _cutPointGenerator(subsets, val_len):
cutIters = [None] * (len(subsets)+1)
cutPoints = [0] * (len(subsets)+1)
i = 1
- cutIters[i] = iter(xrange(val_len+1))
+ cutIters[i] = iter(range(val_len+1))
cutPoints[-1] = val_len
while i > 0:
try:
@@ -3772,7 +3761,7 @@ def _cutPointGenerator(subsets, val_len):
if setDims[i] is not None:
cutIters[i+1] = iter((cutPoints[i]+setDims[i],))
else:
- cutIters[i+1] = iter(xrange(cutPoints[i], val_len+1))
+ cutIters[i+1] = iter(range(cutPoints[i], val_len+1))
i += 1
elif cutPoints[i] > val_len:
i -= 1
@@ -3839,7 +3828,7 @@ def ord(self, item):
val, cutPoints = found
if cutPoints is not None:
val = tuple( val[cutPoints[i]:cutPoints[i+1]]
- for i in xrange(len(self._sets)) )
+ for i in range(len(self._sets)) )
_idx = tuple(s.ord(val[i])-1 for i,s in enumerate(self._sets))
_len = list(len(_) for _ in self._sets)
_len.append(1)
diff --git a/pyomo/core/base/sos.py b/pyomo/core/base/sos.py
index 1d1837dc60c..655f95bd127 100644
--- a/pyomo/core/base/sos.py
+++ b/pyomo/core/base/sos.py
@@ -12,8 +12,6 @@
import sys
import logging
-import six
-from six.moves import zip, xrange
from pyomo.common.log import is_debug_set
from pyomo.common.timing import ConstructionTimer
@@ -244,7 +242,7 @@ def construct(self, data=None):
else:
_sosSet = self._sosSet
- for index, sosSet in six.iteritems(_sosSet):
+ for index, sosSet in _sosSet.items():
if generate_debug_messages: #pragma:nocover
logger.debug(" Constructing "+self.name+" index "+str(index))
@@ -306,7 +304,7 @@ def add(self, index, variables, weights=None):
soscondata.level = self._sosLevel
if weights is None:
- soscondata.set_items(variables, list(xrange(1, len(variables)+1)))
+ soscondata.set_items(variables, list(range(1, len(variables)+1)))
else:
soscondata.set_items(variables, weights)
diff --git a/pyomo/core/base/suffix.py b/pyomo/core/base/suffix.py
index 183fdb13893..dbc8a68c4a4 100644
--- a/pyomo/core/base/suffix.py
+++ b/pyomo/core/base/suffix.py
@@ -20,7 +20,6 @@
from pyomo.core.base.plugin import ModelComponentFactory
from pyomo.core.base.component import ActiveComponent
-from six import iteritems, itervalues
from pyomo.common.deprecation import deprecated
logger = logging.getLogger('pyomo.core')
@@ -40,11 +39,11 @@
def active_export_suffix_generator(a_block, datatype=False):
if (datatype is False):
- for name, suffix in iteritems(a_block.component_map(Suffix, active=True)):
+ for name, suffix in a_block.component_map(Suffix, active=True).items():
if suffix.export_enabled() is True:
yield name, suffix
else:
- for name, suffix in iteritems(a_block.component_map(Suffix, active=True)):
+ for name, suffix in a_block.component_map(Suffix, active=True).items():
if (suffix.export_enabled() is True) and \
(suffix.get_datatype() is datatype):
yield name, suffix
@@ -52,11 +51,11 @@ def active_export_suffix_generator(a_block, datatype=False):
def export_suffix_generator(a_block, datatype=False):
if (datatype is False):
- for name, suffix in iteritems(a_block.component_map(Suffix)):
+ for name, suffix in a_block.component_map(Suffix).items():
if suffix.export_enabled() is True:
yield name, suffix
else:
- for name, suffix in iteritems(a_block.component_map(Suffix)):
+ for name, suffix in a_block.component_map(Suffix).items():
if (suffix.export_enabled() is True) and \
(suffix.get_datatype() is datatype):
yield name, suffix
@@ -64,11 +63,11 @@ def export_suffix_generator(a_block, datatype=False):
def active_import_suffix_generator(a_block, datatype=False):
if (datatype is False):
- for name, suffix in iteritems(a_block.component_map(Suffix, active=True)):
+ for name, suffix in a_block.component_map(Suffix, active=True).items():
if suffix.import_enabled() is True:
yield name, suffix
else:
- for name, suffix in iteritems(a_block.component_map(Suffix, active=True)):
+ for name, suffix in a_block.component_map(Suffix, active=True).items():
if (suffix.import_enabled() is True) and \
(suffix.get_datatype() is datatype):
yield name, suffix
@@ -76,11 +75,11 @@ def active_import_suffix_generator(a_block, datatype=False):
def import_suffix_generator(a_block, datatype=False):
if (datatype is False):
- for name, suffix in iteritems(a_block.component_map(Suffix)):
+ for name, suffix in a_block.component_map(Suffix).items():
if suffix.import_enabled() is True:
yield name, suffix
else:
- for name, suffix in iteritems(a_block.component_map(Suffix)):
+ for name, suffix in a_block.component_map(Suffix).items():
if (suffix.import_enabled() is True) and \
(suffix.get_datatype() is datatype):
yield name, suffix
@@ -88,11 +87,11 @@ def import_suffix_generator(a_block, datatype=False):
def active_local_suffix_generator(a_block, datatype=False):
if (datatype is False):
- for name, suffix in iteritems(a_block.component_map(Suffix, active=True)):
+ for name, suffix in a_block.component_map(Suffix, active=True).items():
if suffix.get_direction() is Suffix.LOCAL:
yield name, suffix
else:
- for name, suffix in iteritems(a_block.component_map(Suffix, active=True)):
+ for name, suffix in a_block.component_map(Suffix, active=True).items():
if (suffix.get_direction() is Suffix.LOCAL) and \
(suffix.get_datatype() is datatype):
yield name, suffix
@@ -100,11 +99,11 @@ def active_local_suffix_generator(a_block, datatype=False):
def local_suffix_generator(a_block, datatype=False):
if (datatype is False):
- for name, suffix in iteritems(a_block.component_map(Suffix)):
+ for name, suffix in a_block.component_map(Suffix).items():
if suffix.get_direction() is Suffix.LOCAL:
yield name, suffix
else:
- for name, suffix in iteritems(a_block.component_map(Suffix)):
+ for name, suffix in a_block.component_map(Suffix).items():
if (suffix.get_direction() is Suffix.LOCAL) and \
(suffix.get_datatype() is datatype):
yield name, suffix
@@ -112,20 +111,20 @@ def local_suffix_generator(a_block, datatype=False):
def active_suffix_generator(a_block, datatype=False):
if (datatype is False):
- for name, suffix in iteritems(a_block.component_map(Suffix, active=True)):
+ for name, suffix in a_block.component_map(Suffix, active=True).items():
yield name, suffix
else:
- for name, suffix in iteritems(a_block.component_map(Suffix, active=True)):
+ for name, suffix in a_block.component_map(Suffix, active=True).items():
if suffix.get_datatype() is datatype:
yield name, suffix
def suffix_generator(a_block, datatype=False):
if (datatype is False):
- for name, suffix in iteritems(a_block.component_map(Suffix)):
+ for name, suffix in a_block.component_map(Suffix).items():
yield name, suffix
else:
- for name, suffix in iteritems(a_block.component_map(Suffix)):
+ for name, suffix in a_block.component_map(Suffix).items():
if suffix.get_datatype() is datatype:
yield name, suffix
@@ -264,7 +263,7 @@ def update_values(self, data, expand=True):
if expand:
try:
- items = iteritems(data)
+ items = data.items()
except AttributeError:
items = data
@@ -293,7 +292,7 @@ def set_value(self, component, value, expand=True):
itself is kept.
"""
if expand and component.is_indexed():
- for component_ in itervalues(component):
+ for component_ in component.values():
self[component_] = value
else:
self[component] = value
@@ -320,7 +319,7 @@ def clear_value(self, component, expand=True):
Clears suffix information for a component.
"""
if expand and component.is_indexed():
- for component_ in itervalues(component):
+ for component_ in component.values():
try:
del self[component_]
except KeyError:
@@ -412,7 +411,7 @@ def _pprint(self):
[('Direction', self.SuffixDirectionToStr[self._direction]),
('Datatype', self.SuffixDatatypeToStr[self._datatype]),
],
- ((str(k), v) for k, v in itervalues(self._dict)),
+ ((str(k), v) for k, v in self._dict.values()),
("Value",),
lambda k, v: [v]
)
diff --git a/pyomo/core/base/units_container.py b/pyomo/core/base/units_container.py
index 3286d1b69ab..0a7f52e4d4a 100644
--- a/pyomo/core/base/units_container.py
+++ b/pyomo/core/base/units_container.py
@@ -108,7 +108,6 @@
# * Extend external function interface to support units for the arguments in addition to the function itself
import logging
-import six
import sys
from pyomo.common.dependencies import attempt_import
@@ -370,10 +369,7 @@ def __str__(self):
retstr = u'{:!~C}'.format(self._pint_unit)
if retstr == '':
retstr = 'dimensionless'
- if six.PY2:
- return str(retstr.encode('utf8'))
- else:
- return retstr
+ return retstr
def to_string(self, verbose=None, labeler=None, smap=None,
compute_values=False):
@@ -1114,7 +1110,7 @@ def __getattr__(self, item):
# check if the unit is an offset unit and throw an exception if necessary
# TODO: should we prevent delta versions: delta_degC and delta_degF as well?
pint_unit_container = pint_module.util.to_units_container(pint_unit, pint_registry)
- for (u, e) in six.iteritems(pint_unit_container):
+ for (u, e) in pint_unit_container.items():
if not pint_registry._units[u].is_multiplicative:
raise UnitsError('Pyomo units system does not support the offset units "{}".'
' Use absolute units (e.g. kelvin instead of degC) instead.'
diff --git a/pyomo/core/base/util.py b/pyomo/core/base/util.py
index 519577c9c34..ce5410792a6 100644
--- a/pyomo/core/base/util.py
+++ b/pyomo/core/base/util.py
@@ -13,27 +13,16 @@
#
import functools
import inspect
-import six
-
-from six import iteritems, iterkeys
-from six.moves import xrange
-
-if six.PY2:
- getargspec = inspect.getargspec
- from collections import Sequence as collections_Sequence
- from collections import Mapping as collections_Mapping
-else:
- # For our needs, getfullargspec is a drop-in replacement for
- # getargspec (which was removed in Python 3.x)
- getargspec = inspect.getfullargspec
- from collections.abc import Sequence as collections_Sequence
- from collections.abc import Mapping as collections_Mapping
+from collections.abc import Sequence
+from collections.abc import Mapping
from pyomo.common import DeveloperError
from pyomo.core.expr.numvalue import (
native_types,
)
+from pyomo.core.base.indexed_component import normalize_index
+
def is_functor(obj):
"""
@@ -42,6 +31,23 @@ def is_functor(obj):
return inspect.isfunction(obj) or hasattr(obj,'__call__')
+def flatten_tuple(x):
+ """
+ This wraps around normalize_index. It flattens a nested sequence into
+ a single tuple and always returns a tuple, even for single
+ element inputs.
+
+ Returns
+ -------
+ tuple
+
+ """
+ x = normalize_index(x)
+ if isinstance(x, tuple):
+ return x
+ return (x,)
+
+
#
# The following decorator is general and should probably be promoted to
# component.py so that we can efficiently handle construction errors on
@@ -64,10 +70,7 @@ def _disable_method(fcn, msg=None):
# an error). For backwards compatability with Python 2.x, we will
# create a temporary (local) function using exec that matches the
# function signature passed in and raises an exception
- if six.PY2:
- args = str(inspect.formatargspec(*getargspec(fcn)))
- else:
- args = str(inspect.signature(fcn))
+ args = str(inspect.signature(fcn))
assert args == '(self)' or args.startswith('(self,')
# lambda comes through with a function name "". We will
@@ -173,7 +176,7 @@ def Initializer(init,
# accepted rules that took only the parent block (even for
# indexed components). We will preserve that functionality
# here.
- _args = getargspec(init)
+ _args = inspect.getfullargspec(init)
_nargs = len(_args.args)
if inspect.ismethod(init) and init.__self__ is not None:
# Ignore 'self' for bound instance methods and 'cls' for
@@ -183,10 +186,10 @@ def Initializer(init,
return ScalarCallInitializer(init)
else:
return IndexedCallInitializer(init)
- elif isinstance(init, collections_Mapping):
+ elif isinstance(init, Mapping):
return ItemInitializer(init)
- elif isinstance(init, collections_Sequence) \
- and not isinstance(init, six.string_types):
+ elif isinstance(init, Sequence) \
+ and not isinstance(init, str):
if treat_sequences_as_mappings:
return ItemInitializer(init)
else:
@@ -204,7 +207,7 @@ def Initializer(init,
# generator into a tuple and then store it as a constant.
return ConstantInitializer(tuple(init))
elif type(init) is functools.partial:
- _args = getargspec(init.func)
+ _args = inspect.getfullargspec(init.func)
if len(_args.args) - len(init.args) == 1 and _args.varargs is None:
return ScalarCallInitializer(init)
else:
@@ -230,7 +233,7 @@ def __getstate__(self):
return {k:getattr(self,k) for k in self.__slots__}
def __setstate__(self, state):
- for key, val in iteritems(state):
+ for key, val in state.items():
object.__setattr__(self, key, val)
def constant(self):
@@ -281,9 +284,9 @@ def contains_indices(self):
def indices(self):
try:
- return iterkeys(self._dict)
+ return self._dict.keys()
except AttributeError:
- return xrange(len(self._dict))
+ return range(len(self._dict))
class IndexedCallInitializer(InitializerBase):
@@ -398,7 +401,7 @@ def __call__(self, parent, idx):
# Note that this code will only be called once, and only if
# the object is not a scalar.
- _args = getargspec(self._fcn)
+ _args = inspect.getfullargspec(self._fcn)
_nargs = len(_args.args)
if inspect.ismethod(self._fcn) and self._fcn.__self__ is not None:
_nargs -= 1
diff --git a/pyomo/core/base/var.py b/pyomo/core/base/var.py
index 2717fc9e60c..ad51323f5d7 100644
--- a/pyomo/core/base/var.py
+++ b/pyomo/core/base/var.py
@@ -26,11 +26,9 @@
from pyomo.core.base.units_container import units
from pyomo.core.base.util import is_functor
-from six import iteritems, itervalues
-from six.moves import xrange
-
logger = logging.getLogger('pyomo.core')
+
class _VarData(ComponentData, NumericValue):
"""
This class defines the data for a single variable.
@@ -561,7 +559,7 @@ def flag_as_stale(self):
"""
Set the 'stale' attribute of every variable data object to True.
"""
- for var_data in itervalues(self._data):
+ for var_data in self._data.values():
var_data.stale = True
def get_values(self, include_fixed_values=True):
@@ -569,9 +567,9 @@ def get_values(self, include_fixed_values=True):
Return a dictionary of index-value pairs.
"""
if include_fixed_values:
- return {idx:vardata.value for idx,vardata in iteritems(self._data)}
+ return {idx:vardata.value for idx,vardata in self._data.items()}
return {idx:vardata.value
- for idx, vardata in iteritems(self._data)
+ for idx, vardata in self._data.items()
if not vardata.fixed}
extract_values = get_values
@@ -583,7 +581,7 @@ def set_values(self, new_values, valid=False):
The default behavior is to validate the values in the
dictionary.
"""
- for index, new_value in iteritems(new_values):
+ for index, new_value in new_values.items():
self[index].set_value(new_value, valid)
def get_units(self):
@@ -774,7 +772,7 @@ def _pprint(self):
return ( [("Size", len(self)),
("Index", self._index if self.is_indexed() else None),
],
- iteritems(self._data),
+ self._data.items(),
( "Lower","Value","Upper","Fixed","Stale","Domain"),
lambda k, v: [ value(v.lb),
v.value,
@@ -942,14 +940,14 @@ def setlb(self, val):
"""
Set the lower bound for this variable.
"""
- for vardata in itervalues(self):
+ for vardata in self.values():
vardata.setlb(val)
def setub(self, val):
"""
Set the upper bound for this variable.
"""
- for vardata in itervalues(self):
+ for vardata in self.values():
vardata.setub(val)
def fix(self, value=NoArgumentGiven):
@@ -957,12 +955,12 @@ def fix(self, value=NoArgumentGiven):
Set the fixed indicator to True. Value argument is optional,
indicating the variable should be fixed at its current value.
"""
- for vardata in itervalues(self):
+ for vardata in self.values():
vardata.fix(value=value)
def unfix(self):
"""Sets the fixed indicator to False."""
- for vardata in itervalues(self):
+ for vardata in self.values():
vardata.unfix()
@property
@@ -974,7 +972,7 @@ def domain(self):
@domain.setter
def domain(self, domain):
"""Sets the domain for all variables in this container."""
- for vardata in itervalues(self):
+ for vardata in self.values():
vardata.domain = domain
free=unfix
@@ -1008,7 +1006,7 @@ def construct(self, data=None):
# OR we can just add the correct number of sequential integers and
# then let _validate_index complain when we set the value.
if self._value_init_value.__class__ is dict:
- for i in xrange(len(self._value_init_value)):
+ for i in range(len(self._value_init_value)):
self._index.add(i+1)
super(VarList,self).construct(data)
# Note that the current Var initializer silently ignores
@@ -1017,7 +1015,7 @@ def construct(self, data=None):
# VarList (so we get potential domain errors), we will re-set
# everything.
if self._value_init_value.__class__ is dict:
- for k,v in iteritems(self._value_init_value):
+ for k,v in self._value_init_value.items():
self[k] = v
def add(self):
diff --git a/pyomo/core/beta/dict_objects.py b/pyomo/core/beta/dict_objects.py
index a00c81f79e2..cf71c2ceaa6 100644
--- a/pyomo/core/beta/dict_objects.py
+++ b/pyomo/core/beta/dict_objects.py
@@ -24,14 +24,8 @@
from pyomo.core.base.expression import (IndexedExpression,
_ExpressionData)
-import six
-
-if six.PY3:
- from collections.abc import MutableMapping as collections_MutableMapping
- from collections.abc import Mapping as collections_Mapping
-else:
- from collections import MutableMapping as collections_MutableMapping
- from collections import Mapping as collections_Mapping
+from collections.abc import MutableMapping
+from collections.abc import Mapping
logger = logging.getLogger('pyomo.core')
@@ -42,7 +36,7 @@
# be implemented on top of these classes.
#
-class ComponentDict(collections_MutableMapping):
+class ComponentDict(MutableMapping):
def __init__(self, interface_datatype, *args):
self._interface_datatype = interface_datatype
@@ -167,7 +161,7 @@ def __len__(self): return self._data.__len__()
# dictionary mapping key->(type(val), id(val)) and
# compare that instead.
def __eq__(self, other):
- if not isinstance(other, collections_Mapping):
+ if not isinstance(other, Mapping):
return False
return dict((key, (type(val), id(val)))
for key,val in self.items()) == \
diff --git a/pyomo/core/beta/list_objects.py b/pyomo/core/beta/list_objects.py
index 90ca3ac9158..c4dda8ee2df 100644
--- a/pyomo/core/beta/list_objects.py
+++ b/pyomo/core/beta/list_objects.py
@@ -24,12 +24,7 @@
from pyomo.core.base.expression import (IndexedExpression,
_ExpressionData)
-import six
-
-if six.PY3:
- from collections.abc import MutableSequence as collections_MutableSequence
-else:
- from collections import MutableSequence as collections_MutableSequence
+from collections.abc import MutableSequence
logger = logging.getLogger('pyomo.core')
@@ -40,7 +35,7 @@
# be implemented on top of these classes.
#
-class ComponentList(collections_MutableSequence):
+class ComponentList(MutableSequence):
def __init__(self, interface_datatype, *args):
self._interface_datatype = interface_datatype
diff --git a/pyomo/core/expr/boolean_value.py b/pyomo/core/expr/boolean_value.py
index 1d9b1a039a5..96c56d60229 100644
--- a/pyomo/core/expr/boolean_value.py
+++ b/pyomo/core/expr/boolean_value.py
@@ -1,9 +1,7 @@
import sys
import logging
-from six import iteritems
from pyomo.common.deprecation import deprecated
-from pyomo.core.expr.expr_errors import TemplateExpressionError
from pyomo.core.expr.numvalue import native_types, native_logical_types
from pyomo.core.expr.expr_common import _and, _or, _equiv, _inv, _xor, _impl
from pyomo.core.pyomoobject import PyomoObject
@@ -76,7 +74,7 @@ def __setstate__(self, state):
if hasattr(_base, '__setstate__'):
return _base.__setstate__(state)
else:
- for key, val in iteritems(state):
+ for key, val in state.items():
# Note: per the Python data model docs, we explicitly
# set the attribute using object.__setattr__() instead
# of setting self.__dict__[key] = val.
diff --git a/pyomo/core/expr/cnf_walker.py b/pyomo/core/expr/cnf_walker.py
index c3a504681a2..3667c4476eb 100644
--- a/pyomo/core/expr/cnf_walker.py
+++ b/pyomo/core/expr/cnf_walker.py
@@ -1,4 +1,13 @@
-from six import iterkeys
+# ___________________________________________________________________________
+#
+# Pyomo: Python Optimization Modeling Objects
+# Copyright 2017 National Technology and Engineering Solutions of Sandia, LLC
+# Under the terms of Contract DE-NA0003525 with National Technology and
+# Engineering Solutions of Sandia, LLC, the U.S. Government retains certain
+# rights in this software.
+# This software is distributed under the 3-clause BSD License.
+# ___________________________________________________________________________
+
from pyomo.common import DeveloperError
from pyomo.common.collections import ComponentMap
@@ -60,7 +69,7 @@ def getSympySymbol(self, pyomo_object):
return sympy_obj
def sympyVars(self):
- return iterkeys(self.sympy2pyomo)
+ return self.sympy2pyomo.keys()
class _Pyomo2SympyVisitor(StreamBasedExpressionVisitor):
diff --git a/pyomo/core/expr/numvalue.py b/pyomo/core/expr/numvalue.py
index 2a354d65c12..e053e0aebc1 100644
--- a/pyomo/core/expr/numvalue.py
+++ b/pyomo/core/expr/numvalue.py
@@ -15,7 +15,6 @@
import sys
import logging
-from six import iteritems, PY3
from pyomo.common.deprecation import deprecated
from pyomo.core.expr.expr_common import \
@@ -96,15 +95,9 @@ def __setstate__(self, state):
#: like numpy, which may be registered by users.
native_numeric_types = set([ int, float, bool ])
native_integer_types = set([ int, bool ])
-native_boolean_types = set([ int, bool, str ])
+native_boolean_types = set([ int, bool, str, bytes ])
native_logical_types = {bool, }
pyomo_constant_types = set() # includes NumericConstant
-try:
- native_numeric_types.add(long)
- native_integer_types.add(long)
- native_boolean_types.add(long)
-except:
- pass
#: Python set used to identify numeric constants and related native
#: types. This set includes
@@ -112,13 +105,7 @@ def __setstate__(self, state):
#: like numpy.
#:
#: :data:`native_types` = :data:`native_numeric_types ` + { str }
-native_types = set([ bool, str, type(None), slice ])
-if PY3:
- native_types.add(bytes)
- native_boolean_types.add(bytes)
-else:
- native_types.add(unicode)
- native_boolean_types.add(unicode)
+native_types = set([ bool, str, type(None), slice, bytes])
native_types.update( native_numeric_types )
native_types.update( native_integer_types )
@@ -589,7 +576,7 @@ def __setstate__(self, state):
if hasattr(_base, '__setstate__'):
return _base.__setstate__(state)
else:
- for key, val in iteritems(state):
+ for key, val in state.items():
# Note: per the Python data model docs, we explicitly
# set the attribute using object.__setattr__() instead
# of setting self.__dict__[key] = val.
diff --git a/pyomo/core/expr/symbol_map.py b/pyomo/core/expr/symbol_map.py
index 15f7979fc22..ed7524e1af3 100644
--- a/pyomo/core/expr/symbol_map.py
+++ b/pyomo/core/expr/symbol_map.py
@@ -9,7 +9,7 @@
# ___________________________________________________________________________
from weakref import ref as weakref_ref
-from six import iteritems
+
class SymbolMap(object):
"""
@@ -52,9 +52,9 @@ def __getstate__(self):
#
return {
'bySymbol': tuple(
- (key, obj()) for key, obj in iteritems(self.bySymbol) ),
+ (key, obj()) for key, obj in self.bySymbol.items() ),
'aliases': tuple(
- (key, obj()) for key, obj in iteritems(self.aliases) ),
+ (key, obj()) for key, obj in self.aliases.items() ),
}
def __setstate__(self, state):
diff --git a/pyomo/core/expr/sympy_tools.py b/pyomo/core/expr/sympy_tools.py
index b1cba66f67a..7f7058da5ac 100644
--- a/pyomo/core/expr/sympy_tools.py
+++ b/pyomo/core/expr/sympy_tools.py
@@ -8,7 +8,6 @@
# This software is distributed under the 3-clause BSD License.
# ___________________________________________________________________________
-from six import iterkeys
from pyomo.common import DeveloperError
from pyomo.common.collections import ComponentMap
from pyomo.common.dependencies import attempt_import
@@ -128,7 +127,7 @@ def getSympySymbol(self, pyomo_object):
return sympy_obj
def sympyVars(self):
- return iterkeys(self.sympy2pyomo)
+ return self.sympy2pyomo.keys()
# =====================================================
# sympyify_expression
diff --git a/pyomo/core/expr/template_expr.py b/pyomo/core/expr/template_expr.py
index 72420d5df97..1d2aac22cf1 100644
--- a/pyomo/core/expr/template_expr.py
+++ b/pyomo/core/expr/template_expr.py
@@ -12,8 +12,7 @@
import itertools
import logging
import sys
-from six import itervalues
-from six.moves import builtins
+import builtins
from pyomo.core.expr.expr_errors import TemplateExpressionError
from pyomo.core.expr.numvalue import (
@@ -83,20 +82,20 @@ def is_potentially_variable(self):
# storage scheme), but as of now [30 Apr 20], there are no known
# Components where this assumption will cause problems.
return any( getattr(x, 'is_potentially_variable', _false)()
- for x in itervalues(getattr(base, '_data', {})) )
+ for x in getattr(base, '_data', {}).values() )
def _is_fixed(self, values):
if not all(values[1:]):
return False
_true = lambda: True
return all( getattr(x, 'is_fixed', _true)()
- for x in itervalues(values[0]) )
+ for x in values[0].values() )
def _compute_polynomial_degree(self, result):
if any(x != 0 for x in result[1:]):
return None
ans = 0
- for x in itervalues(result[0]):
+ for x in result[0].values():
if x.__class__ in nonpyomo_leaf_types \
or not hasattr(x, 'polynomial_degree'):
continue
diff --git a/pyomo/core/expr/visitor.py b/pyomo/core/expr/visitor.py
index c74b324539e..7b90fc97735 100644
--- a/pyomo/core/expr/visitor.py
+++ b/pyomo/core/expr/visitor.py
@@ -12,28 +12,15 @@
import inspect
import logging
-import six
from copy import deepcopy
from collections import deque
-if six.PY2:
- getargspec = inspect.getargspec
-else:
- # For our needs, getfullargspec is a drop-in replacement for
- # getargspec (which was removed in Python 3.x)
- getargspec = inspect.getfullargspec
-
logger = logging.getLogger('pyomo.core')
from .symbol_map import SymbolMap
from . import expr_common as common
from .expr_errors import TemplateExpressionError
from pyomo.common.deprecation import deprecation_warning
-
-from pyomo.core.expr.boolean_value import (
- BooleanValue,)
-
-
from pyomo.core.expr.numvalue import (
nonpyomo_leaf_types,
native_numeric_types,
@@ -179,7 +166,7 @@ def __init__(self, **kwds):
fcn = getattr(self, name)
if fcn is None:
continue
- _args = getargspec(fcn)
+ _args = inspect.getfullargspec(fcn)
_self_arg = 1 if inspect.ismethod(fcn) else 0
if len(_args.args) == nargs + _self_arg and _args.varargs is None:
deprecation_warning(
diff --git a/pyomo/core/kernel/block.py b/pyomo/core/kernel/block.py
index a0858a9ec4c..ac0ec6e1baf 100644
--- a/pyomo/core/kernel/block.py
+++ b/pyomo/core/kernel/block.py
@@ -12,12 +12,12 @@
import logging
import math
-from pyomo.common.collections import OrderedDict
if sys.version_info[:2] >= (3,7):
# dict became ordered in CPython 3.6 and added to the standard in 3.7
_ordered_dict_ = dict
else:
- _ordered_dict_ = OrderedDict
+ import collections
+ _ordered_dict_ = collections.OrderedDict
from pyomo.core.expr.symbol_map import SymbolMap
from pyomo.core.kernel.base import \
@@ -28,8 +28,6 @@
from pyomo.core.kernel.container_utils import \
define_simple_containers
-import six
-
logger = logging.getLogger('pyomo.core')
class IBlock(IHeterogeneousContainer):
@@ -374,13 +372,13 @@ def load_solution(self,
# values exist on the suffix and but only sparse
# dual values exist in the results object) we clear
# all active import suffixes.
- for suffix in six.itervalues(valid_import_suffixes):
+ for suffix in valid_import_suffixes.values():
suffix.clear()
# Load problem (model) level suffixes. These would
# only come from ampl interfaced solution suffixes
# at this point in time.
- for _attr_key, attr_value in six.iteritems(solution.problem):
+ for _attr_key, attr_value in solution.problem.items():
attr_key = _attr_key[0].lower() + _attr_key[1:]
if attr_key in valid_import_suffixes:
valid_import_suffixes[attr_key][self] = attr_value
@@ -393,7 +391,7 @@ def load_solution(self,
var.stale = True
var_skip_attrs = ['id','canonical_label']
seen_var_ids = set()
- for label, entry in six.iteritems(solution.variable):
+ for label, entry in solution.variable.items():
var = symbol_map.getObject(label)
if (var is None) or \
(var is SymbolMap.UnknownSymbol):
@@ -419,7 +417,7 @@ def load_solution(self,
"A new value is not expected "
"in solution" % (var.name))
- for _attr_key, attr_value in six.iteritems(entry):
+ for _attr_key, attr_value in entry.items():
attr_key = _attr_key[0].lower() + _attr_key[1:]
if attr_key == 'value':
if allow_consistent_values_for_fixed_vars and \
@@ -449,7 +447,7 @@ def load_solution(self,
# they exist)
#
objective_skip_attrs = ['id','canonical_label','value']
- for label,entry in six.iteritems(solution.objective):
+ for label,entry in solution.objective.items():
obj = symbol_map.getObject(label)
if (obj is None) or \
(obj is SymbolMap.UnknownSymbol):
@@ -459,7 +457,7 @@ def load_solution(self,
# Because of __default_objective__, an objective might
# appear twice in the objective dictionary.
unseen_var_ids.discard(id(obj))
- for _attr_key, attr_value in six.iteritems(entry):
+ for _attr_key, attr_value in entry.items():
attr_key = _attr_key[0].lower() + _attr_key[1:]
if attr_key in valid_import_suffixes:
valid_import_suffixes[attr_key][obj] = \
@@ -469,7 +467,7 @@ def load_solution(self,
# Load constraint solution
#
con_skip_attrs = ['id', 'canonical_label']
- for label, entry in six.iteritems(solution.constraint):
+ for label, entry in solution.constraint.items():
con = symbol_map.getObject(label)
if con is SymbolMap.UnknownSymbol:
#
@@ -482,7 +480,7 @@ def load_solution(self,
"is not found on this block"
% (label))
unseen_var_ids.remove(id(con))
- for _attr_key, attr_value in six.iteritems(entry):
+ for _attr_key, attr_value in entry.items():
attr_key = _attr_key[0].lower() + _attr_key[1:]
if attr_key in valid_import_suffixes:
valid_import_suffixes[attr_key][con] = \
diff --git a/pyomo/core/kernel/constraint.py b/pyomo/core/kernel/constraint.py
index 4e23f4188a1..0ad362475ee 100644
--- a/pyomo/core/kernel/constraint.py
+++ b/pyomo/core/kernel/constraint.py
@@ -20,8 +20,6 @@
from pyomo.core.kernel.container_utils import \
define_simple_containers
-from six.moves import zip
-
_pos_inf = float('inf')
_neg_inf = float('-inf')
diff --git a/pyomo/core/kernel/container_utils.py b/pyomo/core/kernel/container_utils.py
index 1dd7095541e..b16876ff97b 100644
--- a/pyomo/core/kernel/container_utils.py
+++ b/pyomo/core/kernel/container_utils.py
@@ -12,8 +12,6 @@
from pyomo.core.kernel.tuple_container import TupleContainer
from pyomo.core.kernel.list_container import ListContainer
-import six
-
def define_homogeneous_container_type(namespace,
name,
container_class,
@@ -34,17 +32,11 @@ class ():
_ctype =
### if ###
- __slots__ = ["_parent",
+ __slots__ = ("_parent",
"_storage_key",
"_active",
- "_data"]
- if six.PY3:
- # Prior to Python 3, the abc module does not
- # use empty __slots__ declarations on the
- # base classes. Therefore, we do not need a
- # __weakref__ slot because there is already
- # a __dict__ in the class hierarchy.
- __slots__.append("__weakref__")
+ "_data",
+ "__weakref__")
### fi ###
def __init__(self, *args, **kwds):
@@ -57,13 +49,11 @@ def __init__(self, *args, **kwds):
cls_dict = {}
cls_dict['_ctype'] = ctype
if use_slots:
- cls_dict['__slots__'] = ["_parent",
+ cls_dict['__slots__'] = ("_parent",
"_storage_key",
"_active",
- "_data"]
- if six.PY3:
- cls_dict['__slots__'].append("__weakref__")
- cls_dict['__slots__'] = tuple(cls_dict['__slots__'])
+ "_data",
+ "__weakref__")
def _init(self, *args, **kwds):
self._parent = None
diff --git a/pyomo/core/kernel/dict_container.py b/pyomo/core/kernel/dict_container.py
index 15a89ccc775..638a4639949 100644
--- a/pyomo/core/kernel/dict_container.py
+++ b/pyomo/core/kernel/dict_container.py
@@ -10,8 +10,7 @@
import sys
import logging
-
-from pyomo.common.collections import OrderedDict, Mapping, MutableMapping
+import collections.abc
from pyomo.core.kernel.homogeneous_container import \
IHomogeneousContainer
@@ -20,21 +19,13 @@
# dict became ordered in CPython 3.6 and added to the standard in 3.7
_ordered_dict_ = dict
else:
- _ordered_dict_ = OrderedDict
-
-from six import itervalues
+ _ordered_dict_ = collections.OrderedDict
logger = logging.getLogger('pyomo.core')
-# Note that prior to Python 3, collections
-# is not defined with an empty __slots__
-# attribute. Therefore, in Python 2, all implementations of
-# this class will have a __dict__ member whether or not they
-# declare __slots__. I don't believe it is worth trying to
-# code a work around for the Python 2 case as we are moving
-# closer to a Python 3-only world these types of objects are
-# not memory bottlenecks.
-class DictContainer(IHomogeneousContainer, MutableMapping):
+
+class DictContainer(IHomogeneousContainer,
+ collections.abc.MutableMapping):
"""
A partial implementation of the IHomogeneousContainer
interface that provides dict-like storage functionality.
@@ -84,7 +75,7 @@ def child(self, key):
def children(self):
"""A generator over the children of this container."""
- return itervalues(self._data)
+ return self._data.values()
#
# Define the MutableMapping abstract methods
@@ -158,7 +149,7 @@ def __contains__(self, key):
# plain dictionary mapping key->(type(val), id(val)) and
# compare that instead.
def __eq__(self, other):
- if not isinstance(other, Mapping):
+ if not isinstance(other, collections.abc.Mapping):
return False
return {key:(type(val), id(val))
for key, val in self.items()} == \
diff --git a/pyomo/core/kernel/list_container.py b/pyomo/core/kernel/list_container.py
index 35593fd92eb..b3b438d9fad 100644
--- a/pyomo/core/kernel/list_container.py
+++ b/pyomo/core/kernel/list_container.py
@@ -9,21 +9,14 @@
# ___________________________________________________________________________
import logging
+import collections.abc
from pyomo.core.kernel.tuple_container import TupleContainer
-import six
-from six.moves import xrange as range
-
-if six.PY3:
- from collections.abc import MutableSequence as collections_MutableSequence
-else:
- from collections import MutableSequence as collections_MutableSequence
-
logger = logging.getLogger('pyomo.core')
class ListContainer(TupleContainer,
- collections_MutableSequence):
+ collections.abc.MutableSequence):
"""
A partial implementation of the IHomogeneousContainer
interface that provides list-like storage functionality.
diff --git a/pyomo/core/kernel/matrix_constraint.py b/pyomo/core/kernel/matrix_constraint.py
index 9b081c1534f..8d1ddce296b 100644
--- a/pyomo/core/kernel/matrix_constraint.py
+++ b/pyomo/core/kernel/matrix_constraint.py
@@ -17,8 +17,6 @@
(IConstraint,
constraint_tuple)
-from six.moves import zip, xrange
-
_noarg = object()
#
@@ -61,8 +59,8 @@ def terms(self):
"No variable order has been assigned")
A = parent._A
if parent._sparse:
- for k in xrange(A.indptr[self._storage_key],
- A.indptr[self._storage_key+1]):
+ for k in range(A.indptr[self._storage_key],
+ A.indptr[self._storage_key+1]):
yield x[A.indices[k]], A.data[k]
else:
for item in zip(x, A[self._storage_key,:].tolist()):
@@ -260,7 +258,7 @@ def __init__(self,
assert m > 0
assert n > 0
cons = (_MatrixConstraintData(i)
- for i in xrange(m))
+ for i in range(m))
super(matrix_constraint, self).__init__(cons)
if sparse:
diff --git a/pyomo/core/kernel/piecewise_library/transforms.py b/pyomo/core/kernel/piecewise_library/transforms.py
index dcc588b6bf6..a7f20c8f800 100644
--- a/pyomo/core/kernel/piecewise_library/transforms.py
+++ b/pyomo/core/kernel/piecewise_library/transforms.py
@@ -18,10 +18,6 @@
Nemhauser 2008)
"""
-# ****** NOTE: Nothing in this file relies on integer division *******
-# I predict this will save numerous headaches as
-# well as gratuitous calls to float() in this code
-from __future__ import division
import logging
import bisect
@@ -51,7 +47,6 @@
generate_gray_code,
PiecewiseValidationError)
-from six.moves import xrange
logger = logging.getLogger('pyomo.core')
@@ -305,7 +300,7 @@ def validate(self,
% (str(breakpoints)))
ftype, slopes = characterize_function(breakpoints, values)
- for i in xrange(1, len(slopes)):
+ for i in range(1, len(slopes)):
if (slopes[i-1] is not None) and \
(slopes[i] is not None) and \
(abs(slopes[i-1] - slopes[i]) <= equal_slopes_tolerance):
@@ -547,7 +542,7 @@ def __init__(self, *args, **kwds):
breakpoints = self.breakpoints
values = self.values
self.c = constraint_list()
- for i in xrange(len(breakpoints)-1):
+ for i in range(len(breakpoints)-1):
X0 = breakpoints[i]
F_AT_X0 = values[i]
dF_AT_X0 = (values[i+1] - F_AT_X0) / \
@@ -627,7 +622,7 @@ def __init__(self, *args, **kwds):
# create vars
y_tuple = tuple(variable(lb=0)
- for i in xrange(len(self.breakpoints)))
+ for i in range(len(self.breakpoints)))
y = self.v = variable_tuple(y_tuple)
# create piecewise constraints
@@ -683,7 +678,7 @@ def __init__(self, *args, **kwds):
polytopes = range(len(self.breakpoints)-1)
vertices = range(len(self.breakpoints))
def polytope_verts(p):
- return xrange(p,p+2)
+ return range(p,p+2)
# create vars
self.v = variable_dict()
@@ -1031,7 +1026,7 @@ def __init__(self, *args, **kwds):
polytopes = range(len(breakpoints)-1)
vertices = range(len(breakpoints))
def polytope_verts(p):
- return xrange(p,p+2)
+ return range(p,p+2)
# create vars
self.v = variable_dict()
@@ -1105,7 +1100,7 @@ def _branching_scheme(self, L):
step = N//(2**i)
tmp = []
while start < N:
- tmp.extend(j-1 for j in xrange(start,start+step))
+ tmp.extend(j-1 for j in range(start,start+step))
start += 2*step
B_LEFT.append(tmp)
@@ -1216,10 +1211,10 @@ def _branching_scheme(self, n):
N = 2**n
S = range(n)
G = generate_gray_code(n)
- L = tuple([k for k in xrange(N+1)
+ L = tuple([k for k in range(N+1)
if ((k == 0) or (G[k-1][s] == 1))
and ((k == N) or (G[k][s] == 1))] for s in S)
- R = tuple([k for k in xrange(N+1)
+ R = tuple([k for k in range(N+1)
if ((k == 0) or (G[k-1][s] == 0))
and ((k == N) or (G[k][s] == 0))] for s in S)
return S, L, R
diff --git a/pyomo/core/kernel/piecewise_library/util.py b/pyomo/core/kernel/piecewise_library/util.py
index 5c389e852dc..68c55937294 100644
--- a/pyomo/core/kernel/piecewise_library/util.py
+++ b/pyomo/core/kernel/piecewise_library/util.py
@@ -11,9 +11,6 @@
import operator
import itertools
-from six.moves import xrange
-from six import advance_iterator
-
from pyomo.common.dependencies import (
numpy, numpy_available, scipy, scipy_available
)
@@ -27,7 +24,7 @@ def is_constant(vals):
if len(vals) <= 1:
return True
it = iter(vals)
- advance_iterator(it)
+ next(it)
op = operator.eq
return all(itertools.starmap(op, zip(it,vals)))
@@ -36,7 +33,7 @@ def is_nondecreasing(vals):
if len(vals) <= 1:
return True
it = iter(vals)
- advance_iterator(it)
+ next(it)
op = operator.ge
return all(itertools.starmap(op, zip(it,vals)))
@@ -45,7 +42,7 @@ def is_nonincreasing(vals):
if len(vals) <= 1:
return True
it = iter(vals)
- advance_iterator(it)
+ next(it)
op = operator.le
return all(itertools.starmap(op, zip(it,vals)))
@@ -61,24 +58,17 @@ def log2floor(n):
using floating point calculations. Input argument must
be a positive integer."""
assert n > 0
- try:
- return n.bit_length() - 1
- except AttributeError: #pragma:nocover
- # int.bit_length() was introduced in Python 2.7. Fallback to a
- # brute-force calculation if bit_length is not available.
- s = bin(n) # binary representation: bin(37) --> '0b100101'
- s = s.lstrip('0b') # remove leading zeros and 'b'
- return len(s) - 1
+ return n.bit_length() - 1
def generate_gray_code(nbits):
"""Generates a Gray code of nbits as list of lists"""
- bitset = [0 for i in xrange(nbits)]
+ bitset = [0 for i in range(nbits)]
# important that we copy bitset each time
graycode = [list(bitset)]
- for i in xrange(2,(1<= 0:
_iter = v[0]
else:
@@ -148,7 +146,7 @@ def _apply_to(self, instance, **kwds):
# Now, go back and implement VarList aggregators
for conn in connector_list:
block = conn.parent_block()
- for var, aggregator in iteritems(conn.aggregators):
+ for var, aggregator in conn.aggregators.items():
c = Constraint(expr=aggregator(block, conn.vars[var]))
block.add_component(
'%s.%s.aggregate' % (
@@ -162,7 +160,7 @@ def _validate_and_expand_connector_set(self, connectors):
ref = {}
# First, go through the connectors and get the superset of all fields
for c in connectors:
- for k,v in iteritems(c.vars):
+ for k,v in c.vars.items():
if k in ref:
# We have already seen this var
continue
@@ -194,7 +192,7 @@ def _validate_and_expand_connector_set(self, connectors):
empty_or_partial.append(c)
continue
- for k,v in iteritems(ref):
+ for k,v in ref.items():
if k not in c.vars:
raise ValueError(
"Connector mismatch: Connector '%s' missing variable "
@@ -232,7 +230,7 @@ def _validate_and_expand_connector_set(self, connectors):
# as we are adding things to the model, sort by key so that
# the order things are added is deterministic
- sorted_refs = sorted(iteritems(ref))
+ sorted_refs = sorted(ref.items())
if len(empty_or_partial) > 1:
# This is expensive (names aren't cheap), but does result in
# a deterministic ordering
diff --git a/pyomo/core/plugins/transform/model.py b/pyomo/core/plugins/transform/model.py
index 035a8fe756c..eae3032d36f 100644
--- a/pyomo/core/plugins/transform/model.py
+++ b/pyomo/core/plugins/transform/model.py
@@ -18,8 +18,6 @@
from pyomo.core.base import Objective, Constraint
import array
-from six.moves import xrange
-
def to_standard_form(self):
"""
Produces a standard-form representation of the model. Returns
@@ -309,12 +307,12 @@ def to_standard_form(self):
if len(tmp_name) > maxColWidth:
maxColWidth = len(tmp_name)
varNames[colID[name]] = tmp_name
- for i in xrange(0, nSlack):
+ for i in range(0, nSlack):
tmp_name = " _slack_%i" % i
if len(tmp_name) > maxColWidth:
maxColWidth = len(tmp_name)
varNames.append(tmp_name)
- for i in xrange(0, nExcess):
+ for i in range(0, nExcess):
tmp_name = " _excess_%i" % i
if len(tmp_name) > maxColWidth:
maxColWidth = len(tmp_name)
@@ -322,7 +320,7 @@ def to_standard_form(self):
# Variable names
line = " "*maxConNameLen + (" "*constraintPadding) + " "
- for col in xrange(0, nVariables):
+ for col in range(0, nVariables):
# Format entry
token = varNames[col]
@@ -337,7 +335,7 @@ def to_standard_form(self):
print(" "*maxConNameLen + (" "*constraintPadding) + "+--" + \
" "*((maxColWidth+2)*nVariables - 4) + "--+" + '\n')
line = " "*maxConNameLen + (" "*constraintPadding) + "|"
- for col in xrange(0, nVariables):
+ for col in range(0, nVariables):
# Format entry
token = numFmt % costs[col]
if len(token) > maxColWidth:
@@ -358,12 +356,12 @@ def to_standard_form(self):
" "*((maxColWidth+2)*nVariables - 4) + "--+" + \
(" "*constraintPadding) + "+--" + \
(" "*(maxConstraintColWidth-1)) + "--+"+'\n')
- for row in xrange(0, nConstraints):
+ for row in range(0, nConstraints):
# Print constraint name
line = conNames[row] + (" "*constraintPadding) + (" "*(maxConNameLen - len(conNames[row]))) + "|"
# Print each coefficient
- for col in xrange(0, nVariables):
+ for col in range(0, nVariables):
# Format entry
token = numFmt % coefficients[nVariables*row + col]
if len(token) > maxColWidth:
diff --git a/pyomo/core/plugins/transform/radix_linearization.py b/pyomo/core/plugins/transform/radix_linearization.py
index c428e1a53f2..ff268a8fab2 100644
--- a/pyomo/core/plugins/transform/radix_linearization.py
+++ b/pyomo/core/plugins/transform/radix_linearization.py
@@ -14,8 +14,6 @@
from pyomo.core.base.numvalue import as_numeric
from pyomo.core.base.var import _VarData
-from six import iteritems
-
import logging
logger = logging.getLogger(__name__)
@@ -137,7 +135,7 @@ def _create_using(self, model, **kwds):
bounds=(0,2**-precision) )
# Actually discretize the terms we have marked for discretization
- for _id, _idx in iteritems(_discretize):
+ for _id, _idx in _discretize.items():
if verbose:
logger.info("Discretizing variable %s as %s" %
(_counts[_id][0].name, _idx))
diff --git a/pyomo/core/preprocess/simple_preprocessor.py b/pyomo/core/preprocess/simple_preprocessor.py
index bf45c9e291d..0e4ea53eb58 100644
--- a/pyomo/core/preprocess/simple_preprocessor.py
+++ b/pyomo/core/preprocess/simple_preprocessor.py
@@ -8,7 +8,6 @@
# This software is distributed under the 3-clause BSD License.
# ___________________________________________________________________________
-import pyutilib.misc
import pyomo.common.plugin
import pyomo.common
from pyomo.core.base import IPyomoPresolveAction
@@ -47,7 +46,7 @@ def simple_preprocessor(data, model=None):
ranks = []
for item in actions:
ranks.append(action_rank[item])
- index = pyutilib.misc.sort_index(ranks)
+ index = list(idx for idx, item in sorted(enumerate(ranks), key=lambda item: item[1]))
sorted=[]
for i in index:
sorted.append( actions[i] )
diff --git a/pyomo/core/tests/examples/test_convert.py b/pyomo/core/tests/examples/test_convert.py
index 68a4aed8cce..ba747f56136 100644
--- a/pyomo/core/tests/examples/test_convert.py
+++ b/pyomo/core/tests/examples/test_convert.py
@@ -13,19 +13,19 @@
import os
import sys
+import subprocess
import re
from os.path import abspath, dirname
currdir = dirname(abspath(__file__))+os.sep
scriptdir = dirname(dirname(dirname(dirname(dirname(abspath(__file__))))))+os.sep
-from pyutilib.misc import setup_redirect, reset_redirect
-import pyutilib.subprocess
import pyutilib.th as unittest
import pyomo.scripting.convert as main
+from pyomo.common.tee import capture_output
-from six import StringIO
+from io import StringIO
if os.path.exists(sys.exec_prefix+os.sep+'bin'+os.sep+'coverage'):
executable=sys.exec_prefix+os.sep+'bin'+os.sep+'coverage -x '
@@ -49,23 +49,28 @@ def convert(self, cmd, type, **kwds):
OUTPUT=kwds['file']
else:
OUTPUT=StringIO()
- setup_redirect(OUTPUT)
- os.chdir(currdir)
- if type == 'lp':
- output = main.pyomo2lp(list(args))
- else:
- output = main.pyomo2nl(list(args))
- reset_redirect()
+ with capture_output(OUTPUT):
+ os.chdir(currdir)
+ if type == 'lp':
+ output = main.pyomo2lp(list(args))
+ else:
+ output = main.pyomo2nl(list(args))
if not 'file' in kwds:
return OUTPUT.getvalue()
return output.retval, output.errorcode
# in the convert tests, make sure everything is generating symbolic solver labels - aids debugging.
def run_convert2nl(self, cmd, file=None):
- return pyutilib.subprocess.run('pyomo convert --format=nl --symbolic-solver-labels '+cmd, outfile=file)
+ cmd = ('pyomo convert --format=nl --symbolic-solver-labels '+cmd).split(' ')
+ with open(file, 'w') as f:
+ result = subprocess.run(cmd, stdout=f, stderr=f)
+ return result
def run_convert2lp(self, cmd, file=None):
- return pyutilib.subprocess.run('pyomo convert --format=lp --symbolic-solver-labels '+cmd, outfile=file)
+ cmd = ('pyomo convert --format=lp --symbolic-solver-labels '+cmd).split(' ')
+ with open(file, 'w') as f:
+ result = subprocess.run(cmd, stdout=f, stderr=f)
+ return result
def test1a(self):
"""Simple execution of 'convert2nl'"""
diff --git a/pyomo/core/tests/examples/test_kernel_examples.py b/pyomo/core/tests/examples/test_kernel_examples.py
index ea5eeb9d478..85ec22cd54c 100644
--- a/pyomo/core/tests/examples/test_kernel_examples.py
+++ b/pyomo/core/tests/examples/test_kernel_examples.py
@@ -16,7 +16,7 @@
import sys
from os.path import basename, dirname, abspath, join
-import pyutilib.subprocess
+import subprocess
import pyutilib.th as unittest
from pyomo.common.dependencies import numpy_available, scipy_available
@@ -64,8 +64,10 @@ def testmethod(self):
if (not testing_solvers['ipopt','nl']) or \
(not testing_solvers['mosek_direct','python']):
self.skipTest("Ipopt or Mosek is not available")
- rc, log = pyutilib.subprocess.run([sys.executable,example])
- self.assertEqual(rc, 0, msg=log)
+ result = subprocess.run([sys.executable, example],
+ stdout=subprocess.PIPE, stderr=subprocess.STDOUT,
+ universal_newlines=True)
+ self.assertEqual(result.returncode, 0, msg=result.stdout)
return testmethod
class TestKernelExamples(unittest.TestCase):
diff --git a/pyomo/core/tests/examples/test_pyomo.py b/pyomo/core/tests/examples/test_pyomo.py
index 850ba57107c..ff0132d4baa 100644
--- a/pyomo/core/tests/examples/test_pyomo.py
+++ b/pyomo/core/tests/examples/test_pyomo.py
@@ -17,16 +17,16 @@
from os.path import abspath, dirname
currdir = dirname(abspath(__file__))+os.sep
-import pyutilib.subprocess
+import subprocess
import pyutilib.th as unittest
-from pyutilib.misc import setup_redirect, reset_redirect
from pyomo.common.dependencies import yaml_available
+from pyomo.common.tee import capture_output
import pyomo.core
import pyomo.scripting.pyomo_main as main
from pyomo.opt import check_available_solvers
-from six import StringIO
+from io import StringIO
if os.path.exists(sys.exec_prefix+os.sep+'bin'+os.sep+'coverage'):
executable=sys.exec_prefix+os.sep+'bin'+os.sep+'coverage -x '
@@ -57,16 +57,15 @@ def pyomo(self, cmd, **kwds):
else:
OUTPUT=StringIO()
results='results.jsn'
- setup_redirect(OUTPUT)
- os.chdir(currdir)
- if type(cmd) is list:
- output = main.main(['solve', '--solver=glpk', '--results-format=json', '--save-results=%s' % results] + cmd)
- elif cmd.endswith('json') or cmd.endswith('yaml'):
- output = main.main(['solve', '--results-format=json', '--save-results=%s' % results] + [cmd])
- else:
- args=re.split('[ ]+',cmd)
- output = main.main(['solve', '--solver=glpk', '--results-format=json', '--save-results=%s' % results] + list(args))
- reset_redirect()
+ with capture_output(OUTPUT):
+ os.chdir(currdir)
+ if type(cmd) is list:
+ output = main.main(['solve', '--solver=glpk', '--results-format=json', '--save-results=%s' % results] + cmd)
+ elif cmd.endswith('json') or cmd.endswith('yaml'):
+ output = main.main(['solve', '--results-format=json', '--save-results=%s' % results] + [cmd])
+ else:
+ args=re.split('[ ]+',cmd)
+ output = main.main(['solve', '--solver=glpk', '--results-format=json', '--save-results=%s' % results] + list(args))
if not 'root' in kwds:
return OUTPUT.getvalue()
return output
@@ -86,9 +85,11 @@ def tearDown(self):
os.remove(currdir+'results.jsn')
def run_pyomo(self, cmd, root=None):
- cmd = 'pyomo solve --solver=glpk --results-format=json ' \
- '--save-results=%s.jsn %s' % (root, cmd)
- return pyutilib.subprocess.run(cmd, outfile=root+'.out')
+ cmd = ('pyomo solve --solver=glpk --results-format=json ' \
+ '--save-results=%s.jsn %s' % (root, cmd)).split(' ')
+ with open(root+'.out', 'w') as f:
+ result = subprocess.run(cmd, stdout=f, stderr=f)
+ return result
class TestJson(BaseTester):
@@ -97,20 +98,19 @@ def test1_simple_pyomo_execution(self):
# Simple execution of 'pyomo'
self.pyomo([currdir+'pmedian.py',currdir+'pmedian.dat'], root=currdir+'test1')
self.assertMatchesJsonBaseline(currdir+"test1.jsn", currdir+"test1.txt",tolerance=_diff_tol)
- os.remove(currdir+'test1.out')
+ os.remove(os.path.join(currdir, 'test1.out'))
def test1a_simple_pyomo_execution(self):
# Simple execution of 'pyomo' in a subprocess
- self.run_pyomo('%s/pmedian.py %s/pmedian.dat' % (currdir,currdir),
- root=currdir+'test1a')
+ files = os.path.join(currdir, 'pmedian.py') + ' ' + os.path.join(currdir, 'pmedian.dat')
+ self.run_pyomo(files, root=os.path.join(currdir, 'test1a'))
self.assertMatchesJsonBaseline(currdir+"test1a.jsn", currdir+"test1.txt",tolerance=_diff_tol)
- os.remove(currdir+'test1a.out')
def test1b_simple_pyomo_execution(self):
# Simple execution of 'pyomo' with a configuration file
self.pyomo(currdir+'test1b.json', root=currdir+'test1')
self.assertMatchesJsonBaseline(currdir+"test1.jsn", currdir+"test1.txt",tolerance=_diff_tol)
- os.remove(currdir+'test1.out')
+ os.remove(os.path.join(currdir, 'test1.out'))
def test2_bad_model_name(self):
# Run pyomo with bad --model-name option value
@@ -132,19 +132,19 @@ def test3_missing_model_object(self):
def filter3(line):
return line.startswith('[') or line.startswith('DEPRECATION')
self.assertMatchesJsonBaseline(currdir+"test3.jsn", currdir+"test1.txt",tolerance=_diff_tol)
- os.remove(currdir+'test3.out')
+ os.remove(os.path.join(currdir, 'test3.out'))
def test4_valid_modelname_option(self):
# Run pyomo with good --model-name option value
self.pyomo('--model-name=MODEL '+currdir+'pmedian1.py pmedian.dat', root=currdir+'test4')
self.assertMatchesJsonBaseline(currdir+"test4.jsn", currdir+"test1.txt",tolerance=_diff_tol)
- os.remove(currdir+'test4.out')
+ os.remove(os.path.join(currdir, 'test4.out'))
def test4b_valid_modelname_option(self):
# Run pyomo with good 'object name' option value (configfile)
self.pyomo(currdir+'test4b.json', root=currdir+'test4b')
self.assertMatchesJsonBaseline(currdir+"test4b.jsn", currdir+"test1.txt",tolerance=_diff_tol)
- os.remove(currdir+'test4b.out')
+ os.remove(os.path.join(currdir, 'test4b.out'))
def test5_create_model_fcn(self):
#"""Run pyomo with create_model function"""
@@ -153,7 +153,7 @@ def filter5(line):
return ("Writing model " in line) or ("Solver results file" in line) or \
line.startswith('[') or line.startswith('DEPRECATION')
self.assertFileEqualsBaseline(currdir+"test5.out", currdir+"test5.txt",filter=filter5,tolerance=_diff_tol)
- os.remove(currdir+'test5.jsn')
+ os.remove(os.path.join(currdir, 'test5.jsn'))
def test5b_create_model_fcn(self):
# Run pyomo with create_model function (configfile)
@@ -162,7 +162,7 @@ def filter5(line):
return ("Writing model " in line) or ("Solver results file" in line) or \
line.startswith('[') or line.startswith('DEPRECATION')
self.assertFileEqualsBaseline(currdir+"test5.out", currdir+"test5.txt",filter=filter5,tolerance=_diff_tol)
- os.remove(currdir+'test5.jsn')
+ os.remove(os.path.join(currdir, 'test5.jsn'))
def test8_instanceonly_option(self):
#"""Run pyomo with --instance-only option"""
@@ -170,7 +170,7 @@ def test8_instanceonly_option(self):
self.assertEqual(type(output.retval.instance), pyomo.core.ConcreteModel)
# Check that the results file was NOT created
self.assertRaises(OSError, lambda: os.remove(currdir+'test8.jsn'))
- os.remove(currdir+'test8.out')
+ os.remove(os.path.join(currdir, 'test8.out'))
def test8b_instanceonly_option(self):
# Run pyomo with --instance-only option (configfile)
@@ -178,65 +178,65 @@ def test8b_instanceonly_option(self):
self.assertEqual(type(output.retval.instance), pyomo.core.ConcreteModel)
# Check that the results file was NOT created
self.assertRaises(OSError, lambda: os.remove(currdir+'test8.jsn'))
- os.remove(currdir+'test8.out')
+ os.remove(os.path.join(currdir, 'test8.out'))
def test9_disablegc_option(self):
#"""Run pyomo with --disable-gc option"""
output = self.pyomo('--disable-gc pmedian.py pmedian.dat', root=currdir+'test9')
self.assertEqual(type(output.retval.instance), pyomo.core.ConcreteModel)
- os.remove(currdir+'test9.jsn')
- os.remove(currdir+'test9.out')
+ os.remove(os.path.join(currdir, 'test9.jsn'))
+ os.remove(os.path.join(currdir, 'test9.out'))
def test9b_disablegc_option(self):
# Run pyomo with --disable-gc option (configfile)
output = self.pyomo(currdir+'test9b.json', root=currdir+'test9')
self.assertEqual(type(output.retval.instance), pyomo.core.ConcreteModel)
- os.remove(currdir+'test9.jsn')
- os.remove(currdir+'test9.out')
+ os.remove(os.path.join(currdir, 'test9.jsn'))
+ os.remove(os.path.join(currdir, 'test9.out'))
def test12_output_option(self):
#"""Run pyomo with --output option"""
self.pyomo('--logfile=%s pmedian.py pmedian.dat' % (currdir+'test12.log'), root=currdir+'test12')
self.assertMatchesJsonBaseline(currdir+"test12.jsn", currdir+"test12.txt",tolerance=_diff_tol)
- os.remove(currdir+'test12.log')
- os.remove(currdir+'test12.out')
+ os.remove(os.path.join(currdir, 'test12.log'))
+ os.remove(os.path.join(currdir, 'test12.out'))
def test12b_output_option(self):
# Run pyomo with --output option (configfile)
self.pyomo(currdir+'test12b.json', root=currdir+'test12')
- self.assertMatchesJsonBaseline(currdir+"test12.jsn", currdir+"test12.txt",tolerance=_diff_tol)
+ self.assertMatchesJsonBaseline(currdir+"test12.jsn", currdir+"test12.txt", tolerance=_diff_tol)
os.remove('test12b.log')
- os.remove(currdir+'test12.out')
+ os.remove(os.path.join(currdir, 'test12.out'))
def test14_concrete_model_with_constraintlist(self):
# Simple execution of 'pyomo' with a concrete model and constraint lists
self.pyomo('pmedian4.py', root=currdir+'test14')
self.assertMatchesJsonBaseline(currdir+"test14.jsn", currdir+"test14.txt",tolerance=_diff_tol)
- os.remove(currdir+'test14.out')
+ os.remove(os.path.join(currdir, 'test14.out'))
def test14b_concrete_model_with_constraintlist(self):
# Simple execution of 'pyomo' with a concrete model and constraint lists (configfile)
self.pyomo('pmedian4.py', root=currdir+'test14')
self.assertMatchesJsonBaseline(currdir+"test14.jsn", currdir+"test14.txt",tolerance=_diff_tol)
- os.remove(currdir+'test14.out')
+ os.remove(os.path.join(currdir, 'test14.out'))
def test15_simple_pyomo_execution(self):
# Simple execution of 'pyomo' with options
self.pyomo(['--solver-options="mipgap=0.02 cuts="', currdir+'pmedian.py', 'pmedian.dat'], root=currdir+'test15')
self.assertMatchesJsonBaseline(currdir+"test15.jsn", currdir+"test1.txt",tolerance=_diff_tol)
- os.remove(currdir+'test15.out')
+ os.remove(os.path.join(currdir, 'test15.out'))
def test15b_simple_pyomo_execution(self):
# Simple execution of 'pyomo' with options
self.pyomo(currdir+'test15b.json', root=currdir+'test15b')
self.assertMatchesJsonBaseline(currdir+"test15b.jsn", currdir+"test1.txt",tolerance=_diff_tol)
- os.remove(currdir+'test15b.out')
+ os.remove(os.path.join(currdir, 'test15b.out'))
def test15c_simple_pyomo_execution(self):
# Simple execution of 'pyomo' with options
self.pyomo(currdir+'test15c.json', root=currdir+'test15c')
self.assertMatchesJsonBaseline(currdir+"test15c.jsn", currdir+"test1.txt",tolerance=_diff_tol)
- os.remove(currdir+'test15c.out')
+ os.remove(os.path.join(currdir, 'test15c.out'))
@unittest.skipIf(not yaml_available, "YAML not available available")
@@ -246,13 +246,13 @@ def test15b_simple_pyomo_execution(self):
# Simple execution of 'pyomo' with options
self.pyomo(currdir+'test15b.yaml', root=currdir+'test15b')
self.assertMatchesJsonBaseline(currdir+"test15b.jsn", currdir+"test1.txt",tolerance=_diff_tol)
- os.remove(currdir+'test15b.out')
+ os.remove(os.path.join(currdir, 'test15b.out'))
def test15c_simple_pyomo_execution(self):
# Simple execution of 'pyomo' with options
self.pyomo(currdir+'test15c.yaml', root=currdir+'test15c')
self.assertMatchesJsonBaseline(currdir+"test15c.jsn", currdir+"test1.txt",tolerance=_diff_tol)
- os.remove(currdir+'test15c.out')
+ os.remove(os.path.join(currdir, 'test15c.out'))
if __name__ == "__main__":
diff --git a/pyomo/core/tests/transform/test_add_slacks.py b/pyomo/core/tests/transform/test_add_slacks.py
index a7ee4d0753d..b9c0a66716a 100644
--- a/pyomo/core/tests/transform/test_add_slacks.py
+++ b/pyomo/core/tests/transform/test_add_slacks.py
@@ -12,7 +12,7 @@
from os.path import abspath, dirname
currdir = dirname(abspath(__file__))+os.sep
-from six import StringIO
+from io import StringIO
from pyomo.common.log import LoggingIntercept
import pyutilib.th as unittest
diff --git a/pyomo/core/tests/unit/kernel/test_block.py b/pyomo/core/tests/unit/kernel/test_block.py
index f72f6549b52..d23e80005fb 100644
--- a/pyomo/core/tests/unit/kernel/test_block.py
+++ b/pyomo/core/tests/unit/kernel/test_block.py
@@ -14,6 +14,7 @@
import random
import collections
import itertools
+from io import StringIO
import pyutilib.th as unittest
from pyomo.core.expr.numvalue import native_numeric_types
@@ -60,8 +61,6 @@
from pyomo.core.kernel.sos import sos
from pyomo.opt.results import Solution
-from six import StringIO
-
def _path_to_object_exists(obj, descendent):
if descendent is obj:
return True
diff --git a/pyomo/core/tests/unit/kernel/test_component_map.py b/pyomo/core/tests/unit/kernel/test_component_map.py
index 016a4b7645f..17f947a98f3 100644
--- a/pyomo/core/tests/unit/kernel/test_component_map.py
+++ b/pyomo/core/tests/unit/kernel/test_component_map.py
@@ -8,6 +8,7 @@
# This software is distributed under the 3-clause BSD License.
# ___________________________________________________________________________
+import collections.abc
import pickle
import pyutilib.th as unittest
@@ -29,15 +30,6 @@
block_list)
from pyomo.core.kernel.suffix import suffix
-import six
-
-if six.PY3:
- from collections.abc import Mapping as collections_Mapping
- from collections.abc import MutableMapping as collections_MutableMapping
-else:
- from collections import Mapping as collections_Mapping
- from collections import MutableMapping as collections_MutableMapping
-
class TestComponentMap(unittest.TestCase):
@@ -114,10 +106,10 @@ def test_init(self):
def test_type(self):
cmap = ComponentMap()
- self.assertTrue(isinstance(cmap, collections_Mapping))
- self.assertTrue(isinstance(cmap, collections_MutableMapping))
- self.assertTrue(issubclass(type(cmap), collections_Mapping))
- self.assertTrue(issubclass(type(cmap), collections_MutableMapping))
+ self.assertTrue(isinstance(cmap, collections.abc.Mapping))
+ self.assertTrue(isinstance(cmap, collections.abc.MutableMapping))
+ self.assertTrue(issubclass(type(cmap), collections.abc.Mapping))
+ self.assertTrue(issubclass(type(cmap), collections.abc.MutableMapping))
def test_str(self):
cmap = ComponentMap()
diff --git a/pyomo/core/tests/unit/kernel/test_component_set.py b/pyomo/core/tests/unit/kernel/test_component_set.py
index 9f15e404738..e023b6c078f 100644
--- a/pyomo/core/tests/unit/kernel/test_component_set.py
+++ b/pyomo/core/tests/unit/kernel/test_component_set.py
@@ -8,6 +8,7 @@
# This software is distributed under the 3-clause BSD License.
# ___________________________________________________________________________
+import collections.abc
import pickle
import pyutilib.th as unittest
@@ -29,15 +30,6 @@
block_list)
from pyomo.core.kernel.suffix import suffix
-import six
-
-if six.PY3:
- from collections.abc import Set as collections_Set
- from collections.abc import MutableSet as collections_MutableSet
-else:
- from collections import Set as collections_Set
- from collections import MutableSet as collections_MutableSet
-
class TestComponentSet(unittest.TestCase):
@@ -115,10 +107,10 @@ def test_init(self):
def test_type(self):
cset = ComponentSet()
- self.assertTrue(isinstance(cset, collections_Set))
- self.assertTrue(isinstance(cset, collections_MutableSet))
- self.assertTrue(issubclass(type(cset), collections_Set))
- self.assertTrue(issubclass(type(cset), collections_MutableSet))
+ self.assertTrue(isinstance(cset, collections.abc.Set))
+ self.assertTrue(isinstance(cset, collections.abc.MutableSet))
+ self.assertTrue(issubclass(type(cset), collections.abc.Set))
+ self.assertTrue(issubclass(type(cset), collections.abc.MutableSet))
def test_str(self):
cset = ComponentSet()
diff --git a/pyomo/core/tests/unit/kernel/test_dict_container.py b/pyomo/core/tests/unit/kernel/test_dict_container.py
index 3ac7fdff12c..32a69fd3e5c 100644
--- a/pyomo/core/tests/unit/kernel/test_dict_container.py
+++ b/pyomo/core/tests/unit/kernel/test_dict_container.py
@@ -8,7 +8,9 @@
# This software is distributed under the 3-clause BSD License.
# ___________________________________________________________________________
+import collections.abc
import pickle
+from io import StringIO
import pyutilib.th as unittest
import pyomo.kernel as pmo
@@ -22,16 +24,6 @@
from pyomo.core.kernel.block import (block,
block_dict)
-import six
-from six import StringIO
-
-if six.PY3:
- from collections.abc import Mapping as collections_Mapping
- from collections.abc import MutableMapping as collections_MutableMapping
-else:
- from collections import Mapping as collections_Mapping
- from collections import MutableMapping as collections_MutableMapping
-
#
# There are no fully implemented test suites in this
# file. These classes are meant to be used to test
@@ -139,10 +131,10 @@ def test_type(self):
self.assertTrue(isinstance(cdict, ICategorizedObjectContainer))
self.assertTrue(isinstance(cdict, IHomogeneousContainer))
self.assertTrue(isinstance(cdict, DictContainer))
- self.assertTrue(isinstance(cdict, collections_Mapping))
- self.assertTrue(isinstance(cdict, collections_MutableMapping))
- self.assertTrue(issubclass(type(cdict), collections_Mapping))
- self.assertTrue(issubclass(type(cdict), collections_MutableMapping))
+ self.assertTrue(isinstance(cdict, collections.abc.Mapping))
+ self.assertTrue(isinstance(cdict, collections.abc.MutableMapping))
+ self.assertTrue(issubclass(type(cdict), collections.abc.Mapping))
+ self.assertTrue(issubclass(type(cdict), collections.abc.MutableMapping))
def test_len1(self):
cdict = self._container_type()
@@ -606,8 +598,8 @@ def test_active_type(self):
self.assertTrue(isinstance(cdict, ICategorizedObjectContainer))
self.assertTrue(isinstance(cdict, IHomogeneousContainer))
self.assertTrue(isinstance(cdict, DictContainer))
- self.assertTrue(isinstance(cdict, collections_Mapping))
- self.assertTrue(isinstance(cdict, collections_MutableMapping))
+ self.assertTrue(isinstance(cdict, collections.abc.Mapping))
+ self.assertTrue(isinstance(cdict, collections.abc.MutableMapping))
def test_active(self):
children = {}
diff --git a/pyomo/core/tests/unit/kernel/test_expression.py b/pyomo/core/tests/unit/kernel/test_expression.py
index 4ab8c904fa9..0c069ed0cf3 100644
--- a/pyomo/core/tests/unit/kernel/test_expression.py
+++ b/pyomo/core/tests/unit/kernel/test_expression.py
@@ -37,8 +37,6 @@
from pyomo.core.kernel.objective import objective
from pyomo.core.kernel.block import block
-import six
-
try:
import numpy
numpy_available = True
@@ -257,12 +255,7 @@ def test_division_behavior(self):
self.assertIs(type(e.expr), parameter)
self.assertEqual((1/e)(), 0.5)
self.assertEqual((parameter(1)/e)(), 0.5)
- # since the type returned is int, this should result
- # in the behavior used by the interpreter
- if six.PY3:
- self.assertEqual((1/e.expr()), 0.5)
- else:
- self.assertEqual((1/e.expr()), 0)
+ self.assertEqual((1/e.expr()), 0.5)
def test_to_string(self):
b = block()
@@ -409,12 +402,7 @@ def test_division_behavior(self):
self.assertIs(type(e.expr), int)
self.assertEqual((1/e)(), 0.5)
self.assertEqual((parameter(1)/e)(), 0.5)
- # since the type returned is int, this should result
- # in the behavior used by the interpreter
- if six.PY3:
- self.assertEqual((1/e.expr), 0.5)
- else:
- self.assertEqual((1/e.expr), 0)
+ self.assertEqual((1/e.expr), 0.5)
def test_to_string(self):
b = block()
diff --git a/pyomo/core/tests/unit/kernel/test_list_container.py b/pyomo/core/tests/unit/kernel/test_list_container.py
index 1613886a96c..480430338e5 100644
--- a/pyomo/core/tests/unit/kernel/test_list_container.py
+++ b/pyomo/core/tests/unit/kernel/test_list_container.py
@@ -8,7 +8,9 @@
# This software is distributed under the 3-clause BSD License.
# ___________________________________________________________________________
+import collections.abc
import pickle
+from io import StringIO
import pyutilib.th as unittest
import pyomo.kernel as pmo
@@ -22,16 +24,6 @@
from pyomo.core.kernel.block import (block,
block_list)
-import six
-from six import StringIO
-
-if six.PY3:
- from collections.abc import Sequence as collections_Sequence
- from collections.abc import MutableSequence as collections_MutableSequence
-else:
- from collections import Sequence as collections_Sequence
- from collections import MutableSequence as collections_MutableSequence
-
#
# There are no fully implemented test suites in this
# file. These classes are meant to be used to test
@@ -97,10 +89,10 @@ def test_type(self):
self.assertTrue(isinstance(clist, ICategorizedObjectContainer))
self.assertTrue(isinstance(clist, IHomogeneousContainer))
self.assertTrue(isinstance(clist, ListContainer))
- self.assertTrue(isinstance(clist, collections_Sequence))
- self.assertTrue(issubclass(type(clist), collections_Sequence))
- self.assertTrue(isinstance(clist, collections_MutableSequence))
- self.assertTrue(issubclass(type(clist), collections_MutableSequence))
+ self.assertTrue(isinstance(clist, collections.abc.Sequence))
+ self.assertTrue(issubclass(type(clist), collections.abc.Sequence))
+ self.assertTrue(isinstance(clist, collections.abc.MutableSequence))
+ self.assertTrue(issubclass(type(clist), collections.abc.MutableSequence))
def test_len1(self):
c = self._container_type()
@@ -652,10 +644,10 @@ def test_active_type(self):
self.assertTrue(isinstance(clist, ICategorizedObjectContainer))
self.assertTrue(isinstance(clist, IHomogeneousContainer))
self.assertTrue(isinstance(clist, ListContainer))
- self.assertTrue(isinstance(clist, collections_Sequence))
- self.assertTrue(issubclass(type(clist), collections_Sequence))
- self.assertTrue(isinstance(clist, collections_MutableSequence))
- self.assertTrue(issubclass(type(clist), collections_MutableSequence))
+ self.assertTrue(isinstance(clist, collections.abc.Sequence))
+ self.assertTrue(issubclass(type(clist), collections.abc.Sequence))
+ self.assertTrue(isinstance(clist, collections.abc.MutableSequence))
+ self.assertTrue(issubclass(type(clist), collections.abc.MutableSequence))
def test_active(self):
index = list(range(4))
diff --git a/pyomo/core/tests/unit/kernel/test_suffix.py b/pyomo/core/tests/unit/kernel/test_suffix.py
index b715d275d3d..1112bcc075e 100644
--- a/pyomo/core/tests/unit/kernel/test_suffix.py
+++ b/pyomo/core/tests/unit/kernel/test_suffix.py
@@ -8,6 +8,7 @@
# This software is distributed under the 3-clause BSD License.
# ___________________________________________________________________________
+import collections.abc
import pickle
import pyutilib.th as unittest
@@ -28,16 +29,6 @@
from pyomo.core.kernel.block import (block,
block_dict)
-import six
-
-if six.PY3:
- from collections.abc import Mapping as collections_Mapping
- from collections.abc import MutableMapping as collections_MutableMapping
-else:
- from collections import Mapping as collections_Mapping
- from collections import MutableMapping as collections_MutableMapping
-
-
class Test_suffix(unittest.TestCase):
def test_pprint(self):
@@ -113,10 +104,10 @@ def test_init(self):
def test_type(self):
s = suffix()
self.assertTrue(isinstance(s, ICategorizedObject))
- self.assertTrue(isinstance(s, collections_Mapping))
- self.assertTrue(isinstance(s, collections_MutableMapping))
- self.assertTrue(issubclass(type(s), collections_Mapping))
- self.assertTrue(issubclass(type(s), collections_MutableMapping))
+ self.assertTrue(isinstance(s, collections.abc.Mapping))
+ self.assertTrue(isinstance(s, collections.abc.MutableMapping))
+ self.assertTrue(issubclass(type(s), collections.abc.Mapping))
+ self.assertTrue(issubclass(type(s), collections.abc.MutableMapping))
def test_import_export_enabled(self):
s = suffix()
diff --git a/pyomo/core/tests/unit/kernel/test_tuple_container.py b/pyomo/core/tests/unit/kernel/test_tuple_container.py
index 156e83a22cc..89c8f3a43f5 100644
--- a/pyomo/core/tests/unit/kernel/test_tuple_container.py
+++ b/pyomo/core/tests/unit/kernel/test_tuple_container.py
@@ -8,6 +8,7 @@
# This software is distributed under the 3-clause BSD License.
# ___________________________________________________________________________
+import collections.abc
import pickle
import pyutilib.th as unittest
@@ -21,13 +22,6 @@
from pyomo.core.kernel.block import (block,
block_list)
-import six
-
-if six.PY3:
- from collections.abc import Sequence as collections_Sequence
-else:
- from collections import Sequence as collections_Sequence
-
#
# There are no fully implemented test suites in this
# file. These classes are meant to be used to test
@@ -74,8 +68,8 @@ def test_type(self):
self.assertTrue(isinstance(ctuple, ICategorizedObjectContainer))
self.assertTrue(isinstance(ctuple, IHomogeneousContainer))
self.assertTrue(isinstance(ctuple, TupleContainer))
- self.assertTrue(isinstance(ctuple, collections_Sequence))
- self.assertTrue(issubclass(type(ctuple), collections_Sequence))
+ self.assertTrue(isinstance(ctuple, collections.abc.Sequence))
+ self.assertTrue(issubclass(type(ctuple), collections.abc.Sequence))
def test_len1(self):
c = self._container_type()
@@ -466,8 +460,8 @@ def test_active_type(self):
self.assertTrue(isinstance(ctuple, ICategorizedObjectContainer))
self.assertTrue(isinstance(ctuple, IHomogeneousContainer))
self.assertTrue(isinstance(ctuple, TupleContainer))
- self.assertTrue(isinstance(ctuple, collections_Sequence))
- self.assertTrue(issubclass(type(ctuple), collections_Sequence))
+ self.assertTrue(isinstance(ctuple, collections.abc.Sequence))
+ self.assertTrue(issubclass(type(ctuple), collections.abc.Sequence))
def test_active(self):
index = list(range(4))
diff --git a/pyomo/core/tests/unit/test_action.py b/pyomo/core/tests/unit/test_action.py
index 9723de5e687..74a1328ada4 100644
--- a/pyomo/core/tests/unit/test_action.py
+++ b/pyomo/core/tests/unit/test_action.py
@@ -15,7 +15,7 @@
# Array1 Test arrays of parameters
#
-from six import StringIO
+from io import StringIO
import os
import pyutilib.th as unittest
diff --git a/pyomo/core/tests/unit/test_base_misc.py b/pyomo/core/tests/unit/test_base_misc.py
index 053480bcf47..52d8db7747e 100644
--- a/pyomo/core/tests/unit/test_base_misc.py
+++ b/pyomo/core/tests/unit/test_base_misc.py
@@ -17,7 +17,6 @@
from pyomo.core.base.misc import tabular_writer, sorted_robust
-
class TestTabularWriter(unittest.TestCase):
def test_unicode_table(self):
# Test that an embedded unicode character does not foul up the
diff --git a/pyomo/core/tests/unit/test_block.py b/pyomo/core/tests/unit/test_block.py
index 32d0f758299..ac6710c9186 100644
--- a/pyomo/core/tests/unit/test_block.py
+++ b/pyomo/core/tests/unit/test_block.py
@@ -11,13 +11,11 @@
# Unit Tests for Elements of a Block
#
+from io import StringIO
import os
import sys
-import six
import types
-from six import StringIO, iterkeys
-
from copy import deepcopy
from os.path import abspath, dirname, join
@@ -770,7 +768,7 @@ def __init__(self, *args, **kwds):
b.clear()
b.transfer_attributes_from(c)
self.assertEqual(list(b.component_map()), ['y','x','z'])
- self.assertEqual(sorted(list(iterkeys(c))), ['x','y','z'])
+ self.assertEqual(sorted(list(c.keys())), ['x','y','z'])
self.assertIs(b.x, c['x'])
self.assertIsNot(b.y, c['y'])
self.assertIs(b.y, b_y)
@@ -1362,7 +1360,7 @@ def test_pseudomap_getitem(self):
def assertWorks(self, key, pm):
self.assertIs(pm[key.local_name], key)
def assertFails(self, key, pm):
- if not isinstance(key, six.string_types):
+ if not isinstance(key, str):
key = key.local_name
self.assertRaises(KeyError, pm.__getitem__, key)
diff --git a/pyomo/core/tests/unit/test_check.py b/pyomo/core/tests/unit/test_check.py
index 4b40103ab45..4174604ebec 100644
--- a/pyomo/core/tests/unit/test_check.py
+++ b/pyomo/core/tests/unit/test_check.py
@@ -16,7 +16,7 @@
#
import os
-from six import StringIO
+from io import StringIO
import pyutilib.th as unittest
diff --git a/pyomo/core/tests/unit/test_component.py b/pyomo/core/tests/unit/test_component.py
index 73376d19799..fd9ebc875fe 100644
--- a/pyomo/core/tests/unit/test_component.py
+++ b/pyomo/core/tests/unit/test_component.py
@@ -10,13 +10,13 @@
#
# Unit Tests for components
#
-from six import StringIO
+from io import StringIO
import pyutilib.th as unittest
from pyomo.common import DeveloperError
import pyomo.core.base._pyomo
from pyomo.environ import (
- ConcreteModel, Component, Block, Var, Set, Param,
+ ConcreteModel, Component, Block, Var, Set,
)
class TestComponent(unittest.TestCase):
diff --git a/pyomo/core/tests/unit/test_componentuid.py b/pyomo/core/tests/unit/test_componentuid.py
index 4da79e0f513..462d42eb6ee 100644
--- a/pyomo/core/tests/unit/test_componentuid.py
+++ b/pyomo/core/tests/unit/test_componentuid.py
@@ -11,10 +11,9 @@
# Unit Tests for ComponentUID
#
import pickle
-import sys
from collections import namedtuple
from datetime import datetime
-from six import StringIO, itervalues
+from io import StringIO
import pyutilib.th as unittest
from pyomo.environ import (
@@ -276,14 +275,14 @@ def test_find_wildcard(self):
cuid = ComponentUID('b:1,$2.c.a:*')
comp = cuid.find_component_on(self.m)
self.assertIs(comp.ctype, Param)
- cList = list(itervalues(comp))
+ cList = list(comp.values())
self.assertEqual(len(cList), 3)
self.assertEqual(cList, list(self.m.b[1,'2'].c.a[:]))
cuid = ComponentUID('b[*,*]')
comp = cuid.find_component_on(self.m)
self.assertIs(comp.ctype, Block)
- cList = list(itervalues(comp))
+ cList = list(comp.values())
self.assertEqual(len(cList), 9)
self.assertEqual(cList, list(self.m.b.values()))
@@ -292,7 +291,7 @@ def test_find_wildcard_partial_exists(self):
cuid = ComponentUID('b[*,*].c.a[**]')
comp = cuid.find_component_on(self.m)
self.assertIs(comp.ctype, Param)
- cList = list(itervalues(comp))
+ cList = list(comp.values())
self.assertEqual(len(cList), 3)
self.assertEqual(cList, list(self.m.b[1,'2'].c.a[:]))
@@ -300,7 +299,7 @@ def test_find_wildcard_partial_exists(self):
cuid = ComponentUID('b[*,*].c.a')
comp = cuid.find_component_on(self.m)
self.assertIs(comp.ctype, IndexedComponent)
- cList = list(itervalues(comp))
+ cList = list(comp.values())
self.assertEqual(len(cList), 1)
self.assertIs(cList[0], self.m.b[1,'2'].c.a)
@@ -1267,5 +1266,6 @@ def test_cuid_from_slice_errors(self):
IndexedComponent_slice.del_attribute,)):
cuid = ComponentUID(_slice)
+
if __name__ == "__main__":
unittest.main()
diff --git a/pyomo/core/tests/unit/test_con.py b/pyomo/core/tests/unit/test_con.py
index f7e919a13de..9f0855ecbec 100644
--- a/pyomo/core/tests/unit/test_con.py
+++ b/pyomo/core/tests/unit/test_con.py
@@ -568,6 +568,27 @@ def test_mutable_novalue_param_equality(self):
self.assertEqual(model.c.equality, True)
model.del_component(model.c)
+ def test_inequality(self):
+ m = ConcreteModel()
+ m.x = Var()
+ m.c = Constraint(expr=inequality(lower=-1, body=m.x))
+ self.assertEqual(m.c.lower.value, -1)
+ self.assertIs(m.c.body, m.x)
+ self.assertIs(m.c.upper, None)
+
+ del m.c
+ m.c = Constraint(expr=inequality(body=m.x, upper=1))
+ self.assertIs(m.c.lower, None)
+ self.assertIs(m.c.body, m.x)
+ self.assertEqual(m.c.upper.value, 1)
+
+ del m.c
+ m.c = Constraint(expr=inequality(lower=-1, body=m.x, upper=1))
+ self.assertEqual(m.c.lower.value, -1)
+ self.assertIs(m.c.body, m.x)
+ self.assertEqual(m.c.upper.value, 1)
+
+
class TestSimpleCon(unittest.TestCase):
def test_set_expr_explicit_multivariate(self):
diff --git a/pyomo/core/tests/unit/test_connector.py b/pyomo/core/tests/unit/test_connector.py
index 9e5be8ed21e..889b6c590db 100644
--- a/pyomo/core/tests/unit/test_connector.py
+++ b/pyomo/core/tests/unit/test_connector.py
@@ -19,7 +19,7 @@
currdir = dirname(abspath(__file__))+os.sep
import pyutilib.th as unittest
-from six import StringIO
+from io import StringIO
from pyomo.environ import ConcreteModel, AbstractModel, Connector, Var, NonNegativeReals, Set, Constraint, TransformationFactory, Binary, Reals, VarList
diff --git a/pyomo/core/tests/unit/test_deprecation.py b/pyomo/core/tests/unit/test_deprecation.py
index 3da118032a7..322219cd1b1 100644
--- a/pyomo/core/tests/unit/test_deprecation.py
+++ b/pyomo/core/tests/unit/test_deprecation.py
@@ -12,7 +12,7 @@
import sys
from importlib import import_module
-from six import StringIO
+from io import StringIO
from pyomo.common.log import LoggingIntercept
diff --git a/pyomo/core/tests/unit/test_expression.py b/pyomo/core/tests/unit/test_expression.py
index 218a0dfd495..52bc4083eaf 100644
--- a/pyomo/core/tests/unit/test_expression.py
+++ b/pyomo/core/tests/unit/test_expression.py
@@ -10,15 +10,15 @@
import copy
-from six import StringIO
+from io import StringIO
from pyomo.core.expr import expr_common
import pyutilib.th as unittest
-from pyutilib.misc.redirect_io import capture_output
from pyomo.environ import ConcreteModel, AbstractModel, Expression, Var, Set, Param, Objective, value, sum_product
from pyomo.core.base.expression import _GeneralExpressionData
+from pyomo.common.tee import capture_output
class TestExpressionData(unittest.TestCase):
diff --git a/pyomo/core/tests/unit/test_logical_expr.py b/pyomo/core/tests/unit/test_logical_expr.py
index fd3fe61913a..40faffe5f29 100644
--- a/pyomo/core/tests/unit/test_logical_expr.py
+++ b/pyomo/core/tests/unit/test_logical_expr.py
@@ -13,7 +13,7 @@
import pickle
import os
-import six
+import io
import sys
from os.path import abspath, dirname
currdir = dirname(abspath(__file__))+os.sep
@@ -676,7 +676,7 @@ def _con(m, i):
return inequality(m.vmin[i]**2, m.v[i], m.vmax[i]**2)
m.con = Constraint(m.s, rule=_con)
- OUT = six.StringIO()
+ OUT = io.StringIO()
for i in m.s:
OUT.write(str(_con(m,i)))
OUT.write("\n")
diff --git a/pyomo/core/tests/unit/test_logical_expr_expanded.py b/pyomo/core/tests/unit/test_logical_expr_expanded.py
index b18baaed272..1b9bb9dc311 100644
--- a/pyomo/core/tests/unit/test_logical_expr_expanded.py
+++ b/pyomo/core/tests/unit/test_logical_expr_expanded.py
@@ -1,15 +1,22 @@
+# ___________________________________________________________________________
+#
+# Pyomo: Python Optimization Modeling Objects
+# Copyright 2017 National Technology and Engineering Solutions of Sandia, LLC
+# Under the terms of Contract DE-NA0003525 with National Technology and
+# Engineering Solutions of Sandia, LLC, the U.S. Government retains certain
+# rights in this software.
+# This software is distributed under the 3-clause BSD License.
+# ___________________________________________________________________________
+#
# -*- coding: utf-8 -*-
"""
Testing for the logical expression system
"""
from __future__ import division
import operator
-import platform
-import sys
from itertools import product
import pyutilib.th as unittest
-import six
from pyomo.core.expr.cnf_walker import to_cnf
from pyomo.core.expr.sympy_tools import sympy_available
@@ -277,17 +284,9 @@ def invalid_comparison_generator():
# These errors differ between python versions, regrettably
comparison_error_msg = "(?:(?:unorderable types)|(?:not supported between instances of))"
- if six.PY3:
- for invalid_expr_fcn in invalid_comparison_generator():
- with self.assertRaisesRegex(TypeError, comparison_error_msg):
- _ = invalid_expr_fcn()
- else: # Python 2
- pass
- # Note: Python 2 behavior is weird, returning native type bool:
- # m.Y1 >= 0 -> True
- # m.Y1 <= 0 -> False
- # m.Y1 > 0 -> True
- # m.Y1 < 0 -> False
+ for invalid_expr_fcn in invalid_comparison_generator():
+ with self.assertRaisesRegex(TypeError, comparison_error_msg):
+ _ = invalid_expr_fcn()
def test_invalid_conversion(self):
m = ConcreteModel()
diff --git a/pyomo/core/tests/unit/test_misc.py b/pyomo/core/tests/unit/test_misc.py
index 9737b369cbc..17dfe5dbc8c 100644
--- a/pyomo/core/tests/unit/test_misc.py
+++ b/pyomo/core/tests/unit/test_misc.py
@@ -15,13 +15,14 @@
currdir= dirname(abspath(__file__))
import pyutilib.th as unittest
-from pyutilib.misc import setup_redirect, reset_redirect
from pyomo.opt import check_available_solvers
import pyomo.scripting.pyomo_command as main
-from pyomo.core import AbstractModel, ConcreteModel, Block, Set, Param, Var, Objective, Constraint, Reals, display
+from pyomo.core import (AbstractModel, ConcreteModel, Block, Set, Param, Var,
+ Objective, Constraint, Reals, display)
+from pyomo.common.tee import capture_output
-from six import StringIO
+from io import StringIO
def rule1(model):
return (1,model.x+model.y[1],2)
@@ -114,12 +115,11 @@ def pyomo ( self, cmd, **kwargs):
out = kwargs.get( 'file', None )
if out is None:
out = StringIO()
- setup_redirect( out )
- os.chdir( currdir )
- output = main.run( args )
- reset_redirect()
+ with capture_output(out):
+ os.chdir( currdir )
+ output = main.run( args )
if not 'file' in kwargs:
- return OUTPUT.getvalue()
+ return output.getvalue()
return output
def test_uninstantiated_model_linear ( self ):
diff --git a/pyomo/core/tests/unit/test_numvalue.py b/pyomo/core/tests/unit/test_numvalue.py
index 65e5ce765b5..63657bf7953 100644
--- a/pyomo/core/tests/unit/test_numvalue.py
+++ b/pyomo/core/tests/unit/test_numvalue.py
@@ -25,10 +25,6 @@
as_numeric,
is_numeric_data)
-try:
- unicode
-except:
- long = int
try:
import numpy
numpy_available=True
@@ -69,7 +65,7 @@ def test_int(self):
self.assertEqual(val, value(val))
def test_long(self):
- val = long(1e10)
+ val = int(1e10)
self.assertEqual(val, value(val))
def test_string(self):
@@ -161,7 +157,7 @@ def test_int(self):
self.assertEqual(val, value(val))
def test_long(self):
- val = long(1e10)
+ val = int(1e10)
self.assertEqual(val, value(val))
def test_nan(self):
@@ -253,7 +249,7 @@ def test_int(self):
self.assertEqual(0, polynomial_degree(val))
def test_long(self):
- val = long(1e10)
+ val = int(1e10)
self.assertEqual(0, polynomial_degree(val))
def test_nan(self):
@@ -331,7 +327,7 @@ def test_int(self):
self.assertTrue(is_constant(1))
def test_long(self):
- val = long(1e10)
+ val = int(1e10)
self.assertTrue(is_constant(val))
def test_string(self):
@@ -379,7 +375,7 @@ def test_int(self):
self.assertTrue(is_fixed(1))
def test_long(self):
- val = long(1e10)
+ val = int(1e10)
self.assertTrue(is_fixed(val))
def test_string(self):
@@ -423,7 +419,7 @@ def test_int(self):
self.assertFalse(is_variable_type(1))
def test_long(self):
- val = long(1e10)
+ val = int(1e10)
self.assertFalse(is_variable_type(val))
def test_string(self):
@@ -458,7 +454,7 @@ def test_int(self):
self.assertFalse(is_potentially_variable(1))
def test_long(self):
- val = long(1e10)
+ val = int(1e10)
self.assertFalse(is_potentially_variable(val))
def test_string(self):
@@ -516,7 +512,7 @@ def test_int(self):
self.assertEqual(nval/2, 0.5)
def test_long(self):
- val = long(1e10)
+ val = int(1e10)
nval = as_numeric(val)
self.assertEqual(1.0e10, nval)
#self.assertEqual(val, as_numeric(val))
diff --git a/pyomo/core/tests/unit/test_param.py b/pyomo/core/tests/unit/test_param.py
index cecbabd87aa..9cf4d9f510d 100644
--- a/pyomo/core/tests/unit/test_param.py
+++ b/pyomo/core/tests/unit/test_param.py
@@ -35,7 +35,7 @@
from pyomo.common.tempfiles import TempfileManager
from pyomo.core.base.param import _NotValid, _ParamData
-from six import iteritems, itervalues, StringIO
+from io import StringIO
class ParamTester(object):
@@ -116,7 +116,7 @@ def test_set_value(self):
pass
def test_getitem(self):
- for key, val in iteritems(self.data):
+ for key, val in self.data.items():
try:
test = self.instance.A[key]
self.assertEqual( value(test), val )
@@ -340,7 +340,7 @@ def test_itervalues(self):
# not self.instance.A._default_val is None and \
# not self.instance.A.mutable
try:
- test = itervalues(self.instance.A)
+ test = self.instance.A.values()
test = zip(self.instance.A.keys(), test)
if self.instance.A._default_val is _NotValid:
self.validateDict(self.sparse_data.items(), test)
@@ -357,7 +357,7 @@ def test_iteritems(self):
# not self.instance.A._default_val is None and \
# not self.instance.A.mutable
try:
- test = iteritems(self.instance.A)
+ test = self.instance.A.items()
if self.instance.A._default_val is _NotValid:
self.validateDict(self.sparse_data.items(), test)
else:
diff --git a/pyomo/core/tests/unit/test_pickle.py b/pyomo/core/tests/unit/test_pickle.py
index 8e1061ca12f..969325f5870 100644
--- a/pyomo/core/tests/unit/test_pickle.py
+++ b/pyomo/core/tests/unit/test_pickle.py
@@ -12,7 +12,6 @@
#
import pickle
-import six
import os
import sys
from os.path import abspath, dirname
@@ -306,9 +305,7 @@ def rule2(model, i):
model.con = Constraint(rule=rule1)
model.con2 = Constraint(model.a, rule=rule2)
instance = model.create_instance()
- if (not six.PY3) and ('dill' in sys.modules):
- pickle.dumps(instance)
- elif using_pypy:
+ if using_pypy:
str_ = pickle.dumps(instance)
tmp_ = pickle.loads(str_)
else:
diff --git a/pyomo/core/tests/unit/test_reference.py b/pyomo/core/tests/unit/test_reference.py
index e115b6b68a3..16dac6b2fae 100644
--- a/pyomo/core/tests/unit/test_reference.py
+++ b/pyomo/core/tests/unit/test_reference.py
@@ -16,12 +16,12 @@
currdir = dirname(abspath(__file__))+os.sep
import pyutilib.th as unittest
-from six import itervalues, StringIO, iterkeys, iteritems
+from io import StringIO
from pyomo.environ import (
ConcreteModel, Block, Var, Set, RangeSet, Param, value,
)
-from pyomo.common.collections import OrderedDict, ComponentSet
+from pyomo.common.collections import ComponentSet
from pyomo.core.base.var import IndexedVar
from pyomo.core.base.set import SetProduct, UnorderedSetOf
from pyomo.core.base.indexed_component import (
@@ -124,16 +124,16 @@ def test_iterators(self):
rd = _ReferenceDict(m.b[:,4].x[8,:])
self.assertEqual(
- list(iterkeys(rd)),
+ list(rd.keys()),
[(1,10), (1,11), (2,10), (2,11)]
)
self.assertEqual(
- list(itervalues(rd)),
+ list(rd.values()),
[m.b[1,4].x[8,10], m.b[1,4].x[8,11],
m.b[2,4].x[8,10], m.b[2,4].x[8,11]]
)
self.assertEqual(
- list(iteritems(rd)),
+ list(rd.items()),
[((1,10), m.b[1,4].x[8,10]),
((1,11), m.b[1,4].x[8,11]),
((2,10), m.b[2,4].x[8,10]),
@@ -144,86 +144,86 @@ def test_nested_assignment(self):
m = self.m
rd = _ReferenceDict(m.b[:,:].x[:,:])
- self.assertEqual( sum(x.value for x in itervalues(rd)), 0 )
+ self.assertEqual( sum(x.value for x in rd.values()), 0 )
rd[1,5,7,10] = 10
self.assertEqual( m.b[1,5].x[7,10].value, 10 )
- self.assertEqual( sum(x.value for x in itervalues(rd)), 10 )
+ self.assertEqual( sum(x.value for x in rd.values()), 10 )
rd = _ReferenceDict(m.b[:,4].x[8,:])
- self.assertEqual( sum(x.value for x in itervalues(rd)), 0 )
+ self.assertEqual( sum(x.value for x in rd.values()), 0 )
rd[1,10] = 20
self.assertEqual( m.b[1,4].x[8,10].value, 20 )
- self.assertEqual( sum(x.value for x in itervalues(rd)), 20 )
+ self.assertEqual( sum(x.value for x in rd.values()), 20 )
def test_attribute_assignment(self):
m = self.m
rd = _ReferenceDict(m.b[:,:].x[:,:].value)
- self.assertEqual( sum(x for x in itervalues(rd)), 0 )
+ self.assertEqual( sum(x for x in rd.values()), 0 )
rd[1,5,7,10] = 10
self.assertEqual( m.b[1,5].x[7,10].value, 10 )
- self.assertEqual( sum(x for x in itervalues(rd)), 10 )
+ self.assertEqual( sum(x for x in rd.values()), 10 )
rd = _ReferenceDict(m.b[:,4].x[8,:].value)
- self.assertEqual( sum(x for x in itervalues(rd)), 0 )
+ self.assertEqual( sum(x for x in rd.values()), 0 )
rd[1,10] = 20
self.assertEqual( m.b[1,4].x[8,10].value, 20 )
- self.assertEqual( sum(x for x in itervalues(rd)), 20 )
+ self.assertEqual( sum(x for x in rd.values()), 20 )
m.x = Var([1,2], initialize=0)
rd = _ReferenceDict(m.x[:])
- self.assertEqual( sum(x.value for x in itervalues(rd)), 0 )
+ self.assertEqual( sum(x.value for x in rd.values()), 0 )
rd[2] = 10
self.assertEqual( m.x[1].value, 0 )
self.assertEqual( m.x[2].value, 10 )
- self.assertEqual( sum(x.value for x in itervalues(rd)), 10 )
+ self.assertEqual( sum(x.value for x in rd.values()), 10 )
def test_single_attribute_assignment(self):
m = self.m
rd = _ReferenceDict(m.b[1,5].x[:,:])
- self.assertEqual( sum(x.value for x in itervalues(rd)), 0 )
+ self.assertEqual( sum(x.value for x in rd.values()), 0 )
rd[7,10].value = 10
self.assertEqual( m.b[1,5].x[7,10].value, 10 )
- self.assertEqual( sum(x.value for x in itervalues(rd)), 10 )
+ self.assertEqual( sum(x.value for x in rd.values()), 10 )
rd = _ReferenceDict(m.b[1,4].x[8,:])
- self.assertEqual( sum(x.value for x in itervalues(rd)), 0 )
+ self.assertEqual( sum(x.value for x in rd.values()), 0 )
rd[10].value = 20
self.assertEqual( m.b[1,4].x[8,10].value, 20 )
- self.assertEqual( sum(x.value for x in itervalues(rd)), 20 )
+ self.assertEqual( sum(x.value for x in rd.values()), 20 )
def test_nested_attribute_assignment(self):
m = self.m
rd = _ReferenceDict(m.b[:,:].x[:,:])
- self.assertEqual( sum(x.value for x in itervalues(rd)), 0 )
+ self.assertEqual( sum(x.value for x in rd.values()), 0 )
rd[1,5,7,10].value = 10
self.assertEqual( m.b[1,5].x[7,10].value, 10 )
- self.assertEqual( sum(x.value for x in itervalues(rd)), 10 )
+ self.assertEqual( sum(x.value for x in rd.values()), 10 )
rd = _ReferenceDict(m.b[:,4].x[8,:])
- self.assertEqual( sum(x.value for x in itervalues(rd)), 0 )
+ self.assertEqual( sum(x.value for x in rd.values()), 0 )
rd[1,10].value = 20
self.assertEqual( m.b[1,4].x[8,10].value, 20 )
- self.assertEqual( sum(x.value for x in itervalues(rd)), 20 )
+ self.assertEqual( sum(x.value for x in rd.values()), 20 )
def test_single_deletion(self):
m = self.m
rd = _ReferenceDict(m.b[1,5].x[:,:])
- self.assertEqual(len(list(x.value for x in itervalues(rd))), 2*2)
+ self.assertEqual(len(list(x.value for x in rd.values())), 2*2)
self.assertTrue((7,10) in rd)
del rd[7,10]
self.assertFalse((7,10) in rd)
- self.assertEqual(len(list(x.value for x in itervalues(rd))), 3)
+ self.assertEqual(len(list(x.value for x in rd.values())), 3)
rd = _ReferenceDict(m.b[1,4].x[8,:])
- self.assertEqual(len(list(x.value for x in itervalues(rd))), 2)
+ self.assertEqual(len(list(x.value for x in rd.values())), 2)
self.assertTrue((10) in rd)
del rd[10]
self.assertFalse(10 in rd)
- self.assertEqual(len(list(x.value for x in itervalues(rd))), 2-1)
+ self.assertEqual(len(list(x.value for x in rd.values())), 2-1)
with self.assertRaisesRegexp(
KeyError,
@@ -241,25 +241,25 @@ def test_nested_deletion(self):
m = self.m
rd = _ReferenceDict(m.b[:,:].x[:,:])
- self.assertEqual(len(list(x.value for x in itervalues(rd))), 2*2*2*2)
+ self.assertEqual(len(list(x.value for x in rd.values())), 2*2*2*2)
self.assertTrue((1,5,7,10) in rd)
del rd[1,5,7,10]
self.assertFalse((1,5,7,10) in rd)
- self.assertEqual(len(list(x.value for x in itervalues(rd))), 2*2*2*2-1)
+ self.assertEqual(len(list(x.value for x in rd.values())), 2*2*2*2-1)
rd = _ReferenceDict(m.b[:,4].x[8,:])
- self.assertEqual(len(list(x.value for x in itervalues(rd))), 2*2)
+ self.assertEqual(len(list(x.value for x in rd.values())), 2*2)
self.assertTrue((1,10) in rd)
del rd[1,10]
self.assertFalse((1,10) in rd)
- self.assertEqual(len(list(x.value for x in itervalues(rd))), 2*2-1)
+ self.assertEqual(len(list(x.value for x in rd.values())), 2*2-1)
def test_attribute_deletion(self):
m = self.m
rd = _ReferenceDict(m.b[:,:].z)
rd._slice.attribute_errors_generate_exceptions = False
- self.assertEqual(len(list(x.value for x in itervalues(rd))), 2*2)
+ self.assertEqual(len(list(x.value for x in rd.values())), 2*2)
self.assertTrue((1,5) in rd)
self.assertTrue( hasattr(m.b[1,5], 'z') )
self.assertTrue( hasattr(m.b[2,5], 'z') )
@@ -267,11 +267,11 @@ def test_attribute_deletion(self):
self.assertFalse((1,5) in rd)
self.assertFalse( hasattr(m.b[1,5], 'z') )
self.assertTrue( hasattr(m.b[2,5], 'z') )
- self.assertEqual(len(list(x.value for x in itervalues(rd))), 3)
+ self.assertEqual(len(list(x.value for x in rd.values())), 3)
rd = _ReferenceDict(m.b[2,:].z)
rd._slice.attribute_errors_generate_exceptions = False
- self.assertEqual(len(list(x.value for x in itervalues(rd))), 2)
+ self.assertEqual(len(list(x.value for x in rd.values())), 2)
self.assertTrue(5 in rd)
self.assertTrue( hasattr(m.b[2,4], 'z') )
self.assertTrue( hasattr(m.b[2,5], 'z') )
@@ -279,7 +279,7 @@ def test_attribute_deletion(self):
self.assertFalse(5 in rd)
self.assertTrue( hasattr(m.b[2,4], 'z') )
self.assertFalse( hasattr(m.b[2,5], 'z') )
- self.assertEqual(len(list(x.value for x in itervalues(rd))), 2-1)
+ self.assertEqual(len(list(x.value for x in rd.values())), 2-1)
class TestReferenceSet(unittest.TestCase):
def test_lookup_and_iter_dense_data(self):
diff --git a/pyomo/core/tests/unit/test_set.py b/pyomo/core/tests/unit/test_set.py
index 9dd848799e5..ce7fa5b4f9f 100644
--- a/pyomo/core/tests/unit/test_set.py
+++ b/pyomo/core/tests/unit/test_set.py
@@ -12,8 +12,7 @@
import itertools
import logging
import pickle
-from six import StringIO, PY2
-from six.moves import xrange
+from io import StringIO
from collections import namedtuple as NamedTuple
try:
@@ -3487,7 +3486,7 @@ def _init_set(m, *args):
n = 1
for i in args:
n *= i
- return xrange(n)
+ return range(n)
class TestSet(unittest.TestCase):
@@ -4188,7 +4187,7 @@ def myFcn(x):
m = ConcreteModel()
m.I_index = RangeSet(3)
- m.I = Set(m.I_index, initialize=lambda m,i: xrange(i+1),
+ m.I = Set(m.I_index, initialize=lambda m,i: range(i+1),
domain=Integers)
m.J = Set(ordered=False)
m.K = Set(initialize=[(1,2), (3,4)], ordered=Set.SortedOrder)
@@ -4303,8 +4302,8 @@ def test_construction(self):
m.I = Set(initialize=[1,2,3])
m.J = Set(initialize=[4,5,6])
m.K = Set(initialize=[(1,4),(2,6),(3,5)], within=m.I*m.J)
- m.II = Set([1,2,3], initialize={1:[0], 2:[1,2], 3: xrange(3)})
- m.JJ = Set([1,2,3], initialize={1:[0], 2:[1,2], 3: xrange(3)})
+ m.II = Set([1,2,3], initialize={1:[0], 2:[1,2], 3: range(3)})
+ m.JJ = Set([1,2,3], initialize={1:[0], 2:[1,2], 3: range(3)})
m.KK = Set([1,2], initialize=[], dimen=lambda m,i: i)
output = StringIO()
@@ -5596,18 +5595,13 @@ def test_issue_116(self):
"Testing for set subsets with 'a in b' is deprecated.",
output.getvalue()
)
- if PY2:
+ # Note that pypy raises a different exception from cpython
+ err = "((unhashable type: 'OrderedSimpleSet')" \
+ "|('OrderedSimpleSet' objects are unhashable))"
+ with self.assertRaisesRegexp(TypeError, err):
self.assertFalse(m.s in m.t)
- with self.assertRaisesRegexp(KeyError, "Index 's' is not valid"):
- m.x[m.s].display()
- else:
- # Note that pypy raises a different exception from cpython
- err = "((unhashable type: 'OrderedSimpleSet')" \
- "|('OrderedSimpleSet' objects are unhashable))"
- with self.assertRaisesRegexp(TypeError, err):
- self.assertFalse(m.s in m.t)
- with self.assertRaisesRegexp(TypeError, err):
- m.x[m.s].display()
+ with self.assertRaisesRegexp(TypeError, err):
+ m.x[m.s].display()
self.assertEqual(list(m.x), ['one'])
diff --git a/pyomo/core/tests/unit/test_sets.py b/pyomo/core/tests/unit/test_sets.py
index d25245f9a2d..0677114f722 100644
--- a/pyomo/core/tests/unit/test_sets.py
+++ b/pyomo/core/tests/unit/test_sets.py
@@ -30,16 +30,17 @@
import itertools
import os
from os.path import abspath, dirname
-from six import StringIO, iterkeys
+from io import StringIO
currdir = dirname(abspath(__file__))+os.sep
-from pyutilib.misc import flatten_tuple as pyutilib_misc_flatten_tuple
import pyutilib.th as unittest
import pyomo.core.base
+from pyomo.core.base.util import flatten_tuple
from pyomo.environ import (Set, SetOf, RangeSet, Param, ConcreteModel,
- AbstractModel, Expression, EmptySet, NonPositiveIntegers,
+ AbstractModel, Expression, EmptySet,
+ NonPositiveIntegers,
NonPositiveReals, PositiveReals, NegativeReals,
IntegerSet, NegativeIntegers,
PositiveIntegers, RealSet, BooleanSet,
@@ -2720,12 +2721,10 @@ def test_initialize_and_clone_from_dict_keys(self):
buf = StringIO()
m3.pprint(ostream=buf)
self.assertEqual(ref, buf.getvalue())
- #
- # six.iterkeys()
- #
+
m = ConcreteModel()
v = {1:2,3:4,5:6}
- m.INDEX = Set(initialize=iterkeys(v))
+ m.INDEX = Set(initialize=v.keys())
m.p = Param(m.INDEX, initialize=v)
buf = StringIO()
m.pprint(ostream=buf)
@@ -3631,19 +3630,19 @@ def test_product(self):
self.assertTrue(isinstance(inst.product1,
pyomo.core.base.set.SetProduct))
- prod1 = set([pyutilib_misc_flatten_tuple(i) \
+ prod1 = set([flatten_tuple(i) \
for i in set( p(s1,p(s2,p(s3,p(s3,s2)))) )])
self.assertEqual(sorted(inst.product1),
sorted(prod1))
self.assertTrue(isinstance(inst.product2,
pyomo.core.base.set.SetProduct))
- prod2 = set([pyutilib_misc_flatten_tuple(i) \
+ prod2 = set([flatten_tuple(i) \
for i in set( p(s1,p(s2,p(s3,p(s3,s2)))) )])
self.assertEqual(sorted(inst.product2),
sorted(prod2))
self.assertTrue(isinstance(inst.product3,
pyomo.core.base.set.SetProduct))
- prod3 = set([pyutilib_misc_flatten_tuple(i) \
+ prod3 = set([flatten_tuple(i) \
for i in set( p(p(p(p(s1,s2),s3),s3),s2) )])
self.assertEqual(sorted(inst.product3),
sorted(prod3))
diff --git a/pyomo/core/tests/unit/test_sos.py b/pyomo/core/tests/unit/test_sos.py
index fb3d31172c8..f064feeed95 100644
--- a/pyomo/core/tests/unit/test_sos.py
+++ b/pyomo/core/tests/unit/test_sos.py
@@ -14,7 +14,6 @@
import os
from os.path import abspath, dirname
currdir = dirname(abspath(__file__))+os.sep
-from six.moves import xrange
import pyutilib.th as unittest
from pyomo.environ import ConcreteModel, AbstractModel, SOSConstraint, Var, Set
@@ -112,18 +111,18 @@ class TestExamples(unittest.TestCase):
def test1(self):
M = ConcreteModel()
- M.x = Var(xrange(20))
+ M.x = Var(range(20))
M.c = SOSConstraint(var=M.x, sos=1)
self.assertEqual(set((v.name,w) for v,w in M.c.get_items()),
- set((M.x[i].name, i+1) for i in xrange(20)))
+ set((M.x[i].name, i+1) for i in range(20)))
def test2(self):
# Use an index set, which is a subset of M.x.index_set()
M = ConcreteModel()
- M.x = Var(xrange(20))
- M.c = SOSConstraint(var=M.x, index=list(xrange(10)), sos=1)
+ M.x = Var(range(20))
+ M.c = SOSConstraint(var=M.x, index=list(range(10)), sos=1)
self.assertEqual(set((v.name,w) for v,w in M.c.get_items()),
- set((M.x[i].name, i+1) for i in xrange(10)))
+ set((M.x[i].name, i+1) for i in range(10)))
def test3(self):
# User-specified weights
diff --git a/pyomo/core/tests/unit/test_suffix.py b/pyomo/core/tests/unit/test_suffix.py
index 0f3fc5d33d7..10e0da28243 100644
--- a/pyomo/core/tests/unit/test_suffix.py
+++ b/pyomo/core/tests/unit/test_suffix.py
@@ -29,7 +29,7 @@
suffix_generator)
from pyomo.environ import ConcreteModel, Suffix, Var, Param, Set, Objective, Constraint, Block, sum_product
-from six import StringIO
+from io import StringIO
def simple_con_rule(model,i):
return model.x[i] == 1
diff --git a/pyomo/core/tests/unit/test_units.py b/pyomo/core/tests/unit/test_units.py
index 21762aed746..121b2b43cc2 100644
--- a/pyomo/core/tests/unit/test_units.py
+++ b/pyomo/core/tests/unit/test_units.py
@@ -26,7 +26,7 @@
from pyomo.core.base.units_container import (
pint_available, InconsistentUnitsError, UnitsError, PyomoUnitsContainer,
)
-from six import StringIO
+from io import StringIO
def python_callback_function(arg1, arg2):
return 42.0
diff --git a/pyomo/core/tests/unit/test_util.py b/pyomo/core/tests/unit/test_util.py
index 704ba81185f..9da02d2ba7b 100644
--- a/pyomo/core/tests/unit/test_util.py
+++ b/pyomo/core/tests/unit/test_util.py
@@ -16,7 +16,7 @@
from pyomo.core.base.util import (
Initializer, ConstantInitializer, ItemInitializer, ScalarCallInitializer,
IndexedCallInitializer, CountedCallInitializer, CountedCallGenerator,
- disable_methods,
+ disable_methods, flatten_tuple
)
from pyomo.environ import (
ConcreteModel, Var,
@@ -125,6 +125,14 @@ def _init_indexed(m, *args):
return i
class Test_Initializer(unittest.TestCase):
+ def test_flattener(self):
+ tup = (1, 0, (0, 1), (2, 3))
+ self.assertEqual((1, 0, 0, 1, 2, 3), flatten_tuple(tup))
+ li = [0]
+ self.assertEqual((0,), flatten_tuple(li))
+ ex = [(1, 0), [2, 3]]
+ self.assertEqual((1, 0, 2, 3), flatten_tuple(ex))
+
def test_constant(self):
m = ConcreteModel()
a = Initializer(5)
diff --git a/pyomo/core/tests/unit/test_var_set_bounds.py b/pyomo/core/tests/unit/test_var_set_bounds.py
index 21b9292169a..5a437cd0871 100644
--- a/pyomo/core/tests/unit/test_var_set_bounds.py
+++ b/pyomo/core/tests/unit/test_var_set_bounds.py
@@ -16,7 +16,6 @@
currdir = dirname(abspath(__file__))+os.sep
import pyutilib.th as unittest
-from six.moves import xrange
from pyomo.opt import check_available_solvers
from pyomo.environ import ConcreteModel, RangeSet, Var, Set, Objective, Constraint, SolverFactory, AbstractModel
@@ -152,6 +151,8 @@ def Xtest_list_domain(self):
self.model.con2 = Constraint(expr=self.model.y[2] <= 2.9)
self.instance = self.model.create_instance()
+ # !! THIS SEEMS LIKE A BUG!! - mrmundt
+ # I think it's supposed to be SolverFactory
self.opt = solver["glpk"]
self.results = self.opt.solve(self.instance)
self.instance.load(self.results)
@@ -239,7 +240,7 @@ def Xtest_set_domain_bad_duplicates(self):
@unittest.skipIf(not 'glpk' in solvers, "glpk solver is not available")
def Xtest_rangeset_domain(self):
self.model = ConcreteModel()
- self.model.y = Var([1,2], within=xrange(4))
+ self.model.y = Var([1,2], within=range(4))
self.model.obj = Objective(expr=self.model.y[1]-self.model.y[2])
self.model.con1 = Constraint(expr=self.model.y[1] >= 1.1)
diff --git a/pyomo/core/tests/unit/test_visitor.py b/pyomo/core/tests/unit/test_visitor.py
index 2e26e62ee37..c9cc5dd6ef7 100644
--- a/pyomo/core/tests/unit/test_visitor.py
+++ b/pyomo/core/tests/unit/test_visitor.py
@@ -34,7 +34,7 @@
from pyomo.core.expr.template_expr import IndexTemplate
from pyomo.core.expr.expr_errors import TemplateExpressionError
from pyomo.common.log import LoggingIntercept
-from six import StringIO
+from io import StringIO
class TestExpressionUtilities(unittest.TestCase):
diff --git a/pyomo/core/util.py b/pyomo/core/util.py
index 7a4e992e3d2..2182d483692 100644
--- a/pyomo/core/util.py
+++ b/pyomo/core/util.py
@@ -14,7 +14,6 @@
__all__ = ['sum_product', 'summation', 'dot_product', 'sequence', 'prod', 'quicksum']
-from six.moves import xrange
from pyomo.core.expr.numvalue import native_numeric_types
from pyomo.core.expr.numeric_expr import decompose_term
from pyomo.core.expr import current as EXPR
@@ -269,10 +268,10 @@ def sequence(*args):
if len(args) > 3:
raise ValueError('sequence expected at most 3 arguments, got %d' % len(args))
if len(args) == 1:
- return xrange(1,args[0]+1)
+ return range(1,args[0]+1)
if len(args) == 2:
- return xrange(args[0],args[1]+1)
- return xrange(args[0],args[1]+1,args[2])
+ return range(args[0],args[1]+1)
+ return range(args[0],args[1]+1,args[2])
def xsequence(*args):
diff --git a/pyomo/dae/tests/test_simulator.py b/pyomo/dae/tests/test_simulator.py
index 54e0bb87e7a..71134341c20 100644
--- a/pyomo/dae/tests/test_simulator.py
+++ b/pyomo/dae/tests/test_simulator.py
@@ -34,9 +34,9 @@
_GetItemIndexer,
)
from pyomo.common.fileutils import import_file
+from pyomo.common.tee import capture_output
import os
-from pyutilib.misc import setup_redirect, reset_redirect
from os.path import abspath, dirname, normpath, join
currdir = dirname(abspath(__file__))
@@ -1222,31 +1222,29 @@ def _test(self, tname):
ofile = join(currdir, tname + '.' + self.sim_mod + '.out')
bfile = join(currdir, tname + '.' + self.sim_mod + '.txt')
- setup_redirect(ofile)
+ with capture_output(ofile):
+ # create model
+ exmod = import_file(join(exdir, tname + '.py'))
+ m = exmod.create_model()
- # create model
- exmod = import_file(join(exdir, tname + '.py'))
- m = exmod.create_model()
+ # Simulate model
+ sim = Simulator(m, package=self.sim_mod)
- # Simulate model
- sim = Simulator(m, package=self.sim_mod)
+ if hasattr(m, 'var_input'):
+ tsim, profiles = sim.simulate(numpoints=100,
+ varying_inputs=m.var_input)
+ else:
+ tsim, profiles = sim.simulate(numpoints=100)
- if hasattr(m, 'var_input'):
- tsim, profiles = sim.simulate(numpoints=100,
- varying_inputs=m.var_input)
- else:
- tsim, profiles = sim.simulate(numpoints=100)
+ # Discretize model
+ discretizer = TransformationFactory('dae.collocation')
+ discretizer.apply_to(m, nfe=10, ncp=5)
- # Discretize model
- discretizer = TransformationFactory('dae.collocation')
- discretizer.apply_to(m, nfe=10, ncp=5)
+ # Initialize model
+ sim.initialize_model()
- # Initialize model
- sim.initialize_model()
+ self._print(m, profiles)
- self._print(m, profiles)
-
- reset_redirect()
if not os.path.exists(bfile):
os.rename(ofile, bfile)
@@ -1257,31 +1255,29 @@ def _test_disc_first(self, tname):
ofile = join(currdir, tname + '.' + self.sim_mod + '.out')
bfile = join(currdir, tname + '.' + self.sim_mod + '.txt')
- setup_redirect(ofile)
-
- # create model
- exmod = import_file(join(exdir, tname + '.py'))
- m = exmod.create_model()
+ with capture_output(ofile):
+ # create model
+ exmod = import_file(join(exdir, tname + '.py'))
+ m = exmod.create_model()
- # Discretize model
- discretizer = TransformationFactory('dae.collocation')
- discretizer.apply_to(m, nfe=10, ncp=5)
+ # Discretize model
+ discretizer = TransformationFactory('dae.collocation')
+ discretizer.apply_to(m, nfe=10, ncp=5)
- # Simulate model
- sim = Simulator(m, package=self.sim_mod)
+ # Simulate model
+ sim = Simulator(m, package=self.sim_mod)
- if hasattr(m, 'var_input'):
- tsim, profiles = sim.simulate(numpoints=100,
- varying_inputs=m.var_input)
- else:
- tsim, profiles = sim.simulate(numpoints=100)
+ if hasattr(m, 'var_input'):
+ tsim, profiles = sim.simulate(numpoints=100,
+ varying_inputs=m.var_input)
+ else:
+ tsim, profiles = sim.simulate(numpoints=100)
- # Initialize model
- sim.initialize_model()
+ # Initialize model
+ sim.initialize_model()
- self._print(m, profiles)
+ self._print(m, profiles)
- reset_redirect()
if not os.path.exists(bfile):
os.rename(ofile, bfile)
diff --git a/pyomo/dataportal/TableData.py b/pyomo/dataportal/TableData.py
index 9d4fd95b6fc..9109b333ebb 100644
--- a/pyomo/dataportal/TableData.py
+++ b/pyomo/dataportal/TableData.py
@@ -12,7 +12,7 @@
from six.moves import xrange
-from pyomo.common.collections import Options
+from pyomo.common.collections import Bunch
from pyomo.dataportal.process_data import _process_data
@@ -28,7 +28,7 @@ def __init__(self):
"""
self._info=None
self._data=None
- self.options = Options()
+ self.options = Bunch()
self.options.ncolumns = 1
def available(self):
diff --git a/pyomo/dataportal/parse_datacmds.py b/pyomo/dataportal/parse_datacmds.py
index 272cf6bd8dd..959dd1db7a6 100644
--- a/pyomo/dataportal/parse_datacmds.py
+++ b/pyomo/dataportal/parse_datacmds.py
@@ -20,8 +20,8 @@
from inspect import getfile, currentframe
from six.moves import xrange
-from pyutilib.misc import flatten_list
from pyomo.common.fileutils import this_file
+from pyomo.core.base.util import flatten_tuple
_re_number = r'[-+]?(?:[0-9]+\.?[0-9]*|\.[0-9]+)(?:[eE][-+]?[0-9]+)?'
@@ -254,11 +254,12 @@ def p_statement(p):
stmt = p[1]
if stmt == 'set':
if p[2][-1] == '[':
- p[0] = ['set', p[2][:-1], '['] + flatten_list([p[i] for i in xrange(3,len(p)-1)])
+ # Just turn off the flatten_list and see what happens
+ p[0] = ['set', p[2][:-1], '['] + list(flatten_tuple([p[i] for i in xrange(3,len(p)-1)]))
else:
- p[0] = flatten_list([p[i] for i in xrange(1,len(p)-1)])
+ p[0] = list(flatten_tuple([p[i] for i in xrange(1,len(p)-1)]))
elif stmt == 'param':
- p[0] = flatten_list([p[i] for i in xrange(1,len(p)-1)])
+ p[0] = list(flatten_tuple([p[i] for i in xrange(1,len(p)-1)]))
elif stmt == 'include':
p[0] = [p[i] for i in xrange(1,len(p)-1)]
elif stmt == 'load':
diff --git a/pyomo/dataportal/plugins/datacommands.py b/pyomo/dataportal/plugins/datacommands.py
index e5571bccc1d..0bb42c11659 100644
--- a/pyomo/dataportal/plugins/datacommands.py
+++ b/pyomo/dataportal/plugins/datacommands.py
@@ -10,7 +10,7 @@
import os.path
-from pyomo.common.collections import Options
+from pyomo.common.collections import Bunch
from pyomo.dataportal.factory import DataManagerFactory
from pyomo.dataportal.process_data import _process_include
@@ -20,7 +20,7 @@ class PyomoDataCommands(object):
def __init__(self):
self._info = []
- self.options = Options()
+ self.options = Bunch()
def available(self):
return True
diff --git a/pyomo/dataportal/plugins/db_table.py b/pyomo/dataportal/plugins/db_table.py
index bdf1aaa212a..991b466ca53 100644
--- a/pyomo/dataportal/plugins/db_table.py
+++ b/pyomo/dataportal/plugins/db_table.py
@@ -8,12 +8,6 @@
# This software is distributed under the 3-clause BSD License.
# ___________________________________________________________________________
-try:
- unicode
-except:
- basestring = str
- long = int
-
import os.path
import re
import sys
@@ -110,7 +104,7 @@ def read(self):
ttmp.append(float(data))
elif data is None:
ttmp.append('.')
- elif isinstance(data, str) or isinstance(data, basestring):
+ elif isinstance(data, str):
nulidx = data.find('\x00')
if nulidx > -1:
data = data[:nulidx]
@@ -122,7 +116,7 @@ def read(self):
#
# Process data from the table
#
- if type(tmp) in (int,long,float):
+ if type(tmp) in (int, float):
if not self.options.param is None:
self._info = ["param", self.options.param.local_name, ":=", tmp]
elif len(self.options.symbol_map) == 1:
diff --git a/pyomo/dataportal/plugins/json_dict.py b/pyomo/dataportal/plugins/json_dict.py
index 7c7234e6a3d..d2af934d13f 100644
--- a/pyomo/dataportal/plugins/json_dict.py
+++ b/pyomo/dataportal/plugins/json_dict.py
@@ -12,7 +12,7 @@
import json
import six
-from pyomo.common.collections import Options
+from pyomo.common.collections import Bunch
from pyomo.common.dependencies import yaml, yaml_available, yaml_load_args
from pyomo.dataportal.factory import DataManagerFactory
@@ -93,7 +93,7 @@ class JSONDictionary(object):
def __init__(self):
self._info = {}
- self.options = Options()
+ self.options = Bunch()
def available(self):
return True
@@ -192,7 +192,7 @@ class YamlDictionary(object):
def __init__(self):
self._info = {}
- self.options = Options()
+ self.options = Bunch()
def available(self):
return yaml_available
diff --git a/pyomo/dataportal/process_data.py b/pyomo/dataportal/process_data.py
index 78679e21910..77992113bce 100644
--- a/pyomo/dataportal/process_data.py
+++ b/pyomo/dataportal/process_data.py
@@ -14,26 +14,19 @@
import logging
from pyomo.common.log import is_debug_set
-from pyomo.common.collections import Options, OrderedDict
+from pyomo.common.collections import Bunch, OrderedDict
from pyomo.common.errors import ApplicationError
-from pyutilib.misc import flatten
from pyomo.dataportal.parse_datacmds import (
parse_data_commands, _re_number
)
from pyomo.dataportal.factory import DataManagerFactory, UnknownDataManager
from pyomo.core.base.set import UnknownSetDimen
+from pyomo.core.base.util import flatten_tuple
from six.moves import xrange
-try:
- unicode
-except:
- unicode = str
-try:
- long
- numlist = {bool, int, float, long}
-except:
- numlist = {bool, int, float}
+
+numlist = {bool, int, float}
logger = logging.getLogger('pyomo.core')
@@ -701,7 +694,7 @@ def _process_table(cmd, _model, _data, _default, options=None):
#print("_param %s" % _param)
#print("_labels %s" % _labels)
#
- options = Options(**_options)
+ options = Bunch(**_options)
for key in options:
if not key in ['columns']:
raise ValueError("Unknown table option '%s'" % key)
@@ -749,7 +742,7 @@ def _process_table(cmd, _model, _data, _default, options=None):
tmp.append(cmap[col])
if not sname in cmap:
cmap[sname] = tmp
- cols = flatten(tmp)
+ cols = list(flatten_tuple(tmp))
#
_cmd = ['set', sname, ':=']
i = 0
@@ -782,7 +775,7 @@ def _process_table(cmd, _model, _data, _default, options=None):
raise IOError("Unexpected table column '%s' for table value '%s'" % (col, vname))
tmp.append(cmap[col])
#print("X %s %s" % (len(cols), tmp))
- cols = flatten(tmp)
+ cols = list(flatten_tuple(tmp))
#print("X %s" % len(cols))
#print("VNAME %s %s" % (vname, cmap[vname]))
if vname in cmap:
@@ -834,7 +827,7 @@ def _process_load(cmd, _model, _data, _default, options=None):
if len(cmd) < 2:
raise IOError("The 'load' command must specify a filename")
- options = Options(**_options)
+ options = Bunch(**_options)
for key in options:
if not key in ['range','filename','format','using','driver','query','table','user','password','database']:
raise ValueError("Unknown load option '%s'" % key)
diff --git a/pyomo/dataportal/tests/test_dataportal.py b/pyomo/dataportal/tests/test_dataportal.py
index 7449ca415a6..c5415714efb 100644
--- a/pyomo/dataportal/tests/test_dataportal.py
+++ b/pyomo/dataportal/tests/test_dataportal.py
@@ -15,10 +15,10 @@
from os.path import abspath, dirname
pyomo_dir=dirname(dirname(abspath(__file__)))+os.sep+".."
-import pyutilib.misc
import pyutilib.th as unittest
from pyomo.common.errors import ApplicationError
+from pyomo.common.tee import capture_output
from pyomo.dataportal.factory import DataManagerFactory
from pyomo.environ import AbstractModel, ConcreteModel, Set, DataPortal, Param, Boolean, Any, value
@@ -1116,9 +1116,8 @@ def filename(self, tname):
def test_tableA1(self):
# Importing a single column of data
self.check_skiplist('tableA1')
- pyutilib.misc.setup_redirect(currdir+'loadA1.dat')
- print("load "+self.filename('A')+" format=set : A;")
- pyutilib.misc.reset_redirect()
+ with capture_output(currdir+'loadA1.dat'):
+ print("load "+self.filename('A')+" format=set : A;")
model=AbstractModel()
model.A = Set()
instance = model.create_instance(currdir+'loadA1.dat')
@@ -1128,9 +1127,8 @@ def test_tableA1(self):
def test_tableA2(self):
# Importing a single column of data
self.check_skiplist('tableA2')
- pyutilib.misc.setup_redirect(currdir+'loadA2.dat')
- print("load "+self.filename('A')+" ;")
- pyutilib.misc.reset_redirect()
+ with capture_output(currdir+'loadA2.dat'):
+ print("load "+self.filename('A')+" ;")
model=AbstractModel()
model.A = Set()
try:
@@ -1145,9 +1143,8 @@ def test_tableA2(self):
def test_tableA3(self):
# Importing a single column of data
self.check_skiplist('tableA3')
- pyutilib.misc.setup_redirect(currdir+'loadA3.dat')
- print("load "+self.filename('A')+" format=set : A ;")
- pyutilib.misc.reset_redirect()
+ with capture_output(currdir+'loadA3.dat'):
+ print("load "+self.filename('A')+" format=set : A ;")
model=AbstractModel()
model.A = Set()
instance = model.create_instance(currdir+'loadA3.dat')
@@ -1157,9 +1154,8 @@ def test_tableA3(self):
def test_tableB1(self):
# Same as test_tableA
self.check_skiplist('tableB1')
- pyutilib.misc.setup_redirect(currdir+'loadB.dat')
- print("load "+self.filename('B')+" format=set : B;")
- pyutilib.misc.reset_redirect()
+ with capture_output(currdir+'loadB.dat'):
+ print("load "+self.filename('B')+" format=set : B;")
model=AbstractModel()
model.B = Set()
instance = model.create_instance(currdir+'loadB.dat')
@@ -1170,9 +1166,8 @@ def test_tableC(self):
# Importing a multi-column table, where all columns are
# treated as values for a set with tuple values.
self.check_skiplist('tableC')
- pyutilib.misc.setup_redirect(currdir+'loadC.dat')
- print("load "+self.filename('C')+" format=set : C ;")
- pyutilib.misc.reset_redirect()
+ with capture_output(currdir+'loadC.dat'):
+ print("load "+self.filename('C')+" format=set : C ;")
model=AbstractModel()
model.C = Set(dimen=2)
instance = model.create_instance(currdir+'loadC.dat')
@@ -1182,9 +1177,8 @@ def test_tableC(self):
def test_tableD(self):
# Importing a 2D array of data as a set.
self.check_skiplist('tableD')
- pyutilib.misc.setup_redirect(currdir+'loadD.dat')
- print("load "+self.filename('D')+" format=set_array : C ;")
- pyutilib.misc.reset_redirect()
+ with capture_output(currdir+'loadD.dat'):
+ print("load "+self.filename('D')+" format=set_array : C ;")
model=AbstractModel()
model.C = Set(dimen=2)
instance = model.create_instance(currdir+'loadD.dat')
@@ -1194,9 +1188,8 @@ def test_tableD(self):
def test_tableZ(self):
# Importing a single parameter
self.check_skiplist('tableZ')
- pyutilib.misc.setup_redirect(currdir+'loadZ.dat')
- print("load "+self.filename('Z')+" : Z ;")
- pyutilib.misc.reset_redirect()
+ with capture_output(currdir+'loadZ.dat'):
+ print("load "+self.filename('Z')+" : Z ;")
model=AbstractModel()
model.Z = Param(default=99.0)
instance = model.create_instance(currdir+'loadZ.dat')
@@ -1206,9 +1199,8 @@ def test_tableZ(self):
def test_tableY(self):
# Same as tableXW.
self.check_skiplist('tableY')
- pyutilib.misc.setup_redirect(currdir+'loadY.dat')
- print("load "+self.filename('Y')+" : [A] Y;")
- pyutilib.misc.reset_redirect()
+ with capture_output(currdir+'loadY.dat'):
+ print("load "+self.filename('Y')+" : [A] Y;")
model=AbstractModel()
model.A = Set(initialize=['A1','A2','A3','A4'])
model.Y = Param(model.A)
@@ -1222,9 +1214,8 @@ def test_tableXW_1(self):
# parameter columns. The first column is assumed to represent an
# index column.
self.check_skiplist('tableXW_1')
- pyutilib.misc.setup_redirect(currdir+'loadXW.dat')
- print("load "+self.filename('XW')+" : [A] X W;")
- pyutilib.misc.reset_redirect()
+ with capture_output(currdir+'loadXW.dat'):
+ print("load "+self.filename('XW')+" : [A] X W;")
model=AbstractModel()
model.A = Set(initialize=['A1','A2','A3','A4'])
model.X = Param(model.A)
@@ -1238,9 +1229,8 @@ def test_tableXW_1(self):
def test_tableXW_2(self):
# Like test_tableXW_1, except that set A is not defined.
self.check_skiplist('tableXW_2')
- pyutilib.misc.setup_redirect(currdir+'loadXW.dat')
- print("load "+self.filename('XW')+" : [A] X W;")
- pyutilib.misc.reset_redirect()
+ with capture_output(currdir+'loadXW.dat'):
+ print("load "+self.filename('XW')+" : [A] X W;")
model=AbstractModel()
model.A = Set(initialize=['A1','A2','A3'])
model.X = Param(model.A)
@@ -1253,9 +1243,8 @@ def test_tableXW_2(self):
def test_tableXW_3(self):
# Like test_tableXW_1, except that set A is defined in the load statment.
self.check_skiplist('tableXW_3')
- pyutilib.misc.setup_redirect(currdir+'loadXW.dat')
- print("load "+self.filename('XW')+" : A=[A] X W;")
- pyutilib.misc.reset_redirect()
+ with capture_output(currdir+'loadXW.dat'):
+ print("load "+self.filename('XW')+" : A=[A] X W;")
model=AbstractModel()
model.A = Set()
model.X = Param(model.A)
@@ -1269,9 +1258,8 @@ def test_tableXW_3(self):
def test_tableXW_4(self):
# Like test_tableXW_1, except that set A is defined in the load statment and all values are mapped.
self.check_skiplist('tableXW_4')
- pyutilib.misc.setup_redirect(currdir+'loadXW.dat')
- print("load "+self.filename('XW')+" : B=[A] R=X S=W;")
- pyutilib.misc.reset_redirect()
+ with capture_output(currdir+'loadXW.dat'):
+ print("load "+self.filename('XW')+" : B=[A] R=X S=W;")
model=AbstractModel()
model.B = Set()
model.R = Param(model.B)
@@ -1285,9 +1273,8 @@ def test_tableXW_4(self):
def test_tableT(self):
# Importing a 2D array of parameters that are transposed.
self.check_skiplist('tableT')
- pyutilib.misc.setup_redirect(currdir+'loadT.dat')
- print("load "+self.filename('T')+" format=transposed_array : T;")
- pyutilib.misc.reset_redirect()
+ with capture_output(currdir+'loadT.dat'):
+ print("load "+self.filename('T')+" format=transposed_array : T;")
model=AbstractModel()
model.B = Set(initialize=['I1','I2','I3','I4'])
model.A = Set(initialize=['A1','A2','A3'])
@@ -1299,9 +1286,8 @@ def test_tableT(self):
def test_tableU(self):
# Importing a 2D array of parameters.
self.check_skiplist('tableU')
- pyutilib.misc.setup_redirect(currdir+'loadU.dat')
- print("load "+self.filename('U')+" format=array : U;")
- pyutilib.misc.reset_redirect()
+ with capture_output(currdir+'loadU.dat'):
+ print("load "+self.filename('U')+" format=array : U;")
model=AbstractModel()
model.A = Set(initialize=['I1','I2','I3','I4'])
model.B = Set(initialize=['A1','A2','A3'])
@@ -1315,9 +1301,8 @@ def test_tableS(self):
# parameter columns. The first column is assumed to represent an
# index column. A missing value is represented in the column data.
self.check_skiplist('tableS')
- pyutilib.misc.setup_redirect(currdir+'loadS.dat')
- print("load "+self.filename('S')+" : [A] S ;")
- pyutilib.misc.reset_redirect()
+ with capture_output(currdir+'loadS.dat'):
+ print("load "+self.filename('S')+" : [A] S ;")
model=AbstractModel()
model.A = Set(initialize=['A1','A2','A3','A4'])
model.S = Param(model.A)
@@ -1329,9 +1314,8 @@ def test_tableS(self):
def test_tablePO(self):
# Importing a table that has multiple indexing columns
self.check_skiplist('tablePO')
- pyutilib.misc.setup_redirect(currdir+'loadPO.dat')
- print("load "+self.filename('PO')+" : J=[A,B] P O;")
- pyutilib.misc.reset_redirect()
+ with capture_output(currdir+'loadPO.dat'):
+ print("load "+self.filename('PO')+" : J=[A,B] P O;")
model=AbstractModel()
model.J = Set(dimen=2)
model.P = Param(model.J)
@@ -1363,9 +1347,8 @@ def test_tableXW_nested1(self):
# parameter columns. The first column is assumed to represent an
# index column.
self.check_skiplist('tableXW_1')
- pyutilib.misc.setup_redirect(currdir+'loadXW.dat')
- print("load "+self.filename('XW_nested1')+" query='./bar/table/*' : [A] X W;")
- pyutilib.misc.reset_redirect()
+ with capture_output(currdir+'loadXW.dat'):
+ print("load "+self.filename('XW_nested1')+" query='./bar/table/*' : [A] X W;")
model=AbstractModel()
model.A = Set(initialize=['A1','A2','A3','A4'])
model.X = Param(model.A)
@@ -1381,9 +1364,8 @@ def test_tableXW_nested2(self):
# parameter columns. The first column is assumed to represent an
# index column.
self.check_skiplist('tableXW_1')
- pyutilib.misc.setup_redirect(currdir+'loadXW.dat')
- print("load "+self.filename('XW_nested2')+" query='./bar/table/row' : [A] X W;")
- pyutilib.misc.reset_redirect()
+ with capture_output(currdir+'loadXW.dat'):
+ print("load "+self.filename('XW_nested2')+" query='./bar/table/row' : [A] X W;")
model=AbstractModel()
model.A = Set(initialize=['A1','A2','A3','A4'])
model.X = Param(model.A)
@@ -1433,9 +1415,8 @@ class TestTableCmd(unittest.TestCase):
def test_tableA1_1(self):
# Importing a single column of data as a set
- pyutilib.misc.setup_redirect(currdir+'loadA1.dat')
- print("table columns=1 A={1} := A1 A2 A3 ;")
- pyutilib.misc.reset_redirect()
+ with capture_output(currdir+'loadA1.dat'):
+ print("table columns=1 A={1} := A1 A2 A3 ;")
model=AbstractModel()
model.A = Set()
instance = model.create_instance(currdir+'loadA1.dat')
@@ -1444,9 +1425,8 @@ def test_tableA1_1(self):
def test_tableA1_2(self):
# Importing a single column of data as a set
- pyutilib.misc.setup_redirect(currdir+'loadA1.dat')
- print("table A={A} : A := A1 A2 A3 ;")
- pyutilib.misc.reset_redirect()
+ with capture_output(currdir+'loadA1.dat'):
+ print("table A={A} : A := A1 A2 A3 ;")
model=AbstractModel()
model.A = Set()
instance = model.create_instance(currdir+'loadA1.dat')
@@ -1455,9 +1435,8 @@ def test_tableA1_2(self):
def test_tableB1_1(self):
# Same as test_tableA
- pyutilib.misc.setup_redirect(currdir+'loadB.dat')
- print("table columns=1 B={1} := 1 2 3 ;")
- pyutilib.misc.reset_redirect()
+ with capture_output(currdir+'loadB.dat'):
+ print("table columns=1 B={1} := 1 2 3 ;")
model=AbstractModel()
model.B = Set()
instance = model.create_instance(currdir+'loadB.dat')
@@ -1466,9 +1445,8 @@ def test_tableB1_1(self):
def test_tableB1_2(self):
# Same as test_tableA
- pyutilib.misc.setup_redirect(currdir+'loadB.dat')
- print("table B={B} : B := 1 2 3 ;")
- pyutilib.misc.reset_redirect()
+ with capture_output(currdir+'loadB.dat'):
+ print("table B={B} : B := 1 2 3 ;")
model=AbstractModel()
model.B = Set()
instance = model.create_instance(currdir+'loadB.dat')
@@ -1478,9 +1456,8 @@ def test_tableB1_2(self):
def test_tableC_1(self):
# Importing a multi-column table, where all columns are
# treated as values for a set with tuple values.
- pyutilib.misc.setup_redirect(currdir+'loadC.dat')
- print("table columns=2 C={1,2} := A1 1 A1 2 A1 3 A2 1 A2 2 A2 3 A3 1 A3 2 A3 3 ;")
- pyutilib.misc.reset_redirect()
+ with capture_output(currdir+'loadC.dat'):
+ print("table columns=2 C={1,2} := A1 1 A1 2 A1 3 A2 1 A2 2 A2 3 A3 1 A3 2 A3 3 ;")
model=AbstractModel()
model.C = Set(dimen=2)
instance = model.create_instance(currdir+'loadC.dat')
@@ -1490,9 +1467,8 @@ def test_tableC_1(self):
def test_tableC_2(self):
# Importing a multi-column table, where all columns are
# treated as values for a set with tuple values.
- pyutilib.misc.setup_redirect(currdir+'loadC.dat')
- print("table C={a,b} : a b := A1 1 A1 2 A1 3 A2 1 A2 2 A2 3 A3 1 A3 2 A3 3 ;")
- pyutilib.misc.reset_redirect()
+ with capture_output(currdir+'loadC.dat'):
+ print("table C={a,b} : a b := A1 1 A1 2 A1 3 A2 1 A2 2 A2 3 A3 1 A3 2 A3 3 ;")
model=AbstractModel()
model.C = Set(dimen=2)
instance = model.create_instance(currdir+'loadC.dat')
@@ -1501,9 +1477,8 @@ def test_tableC_2(self):
def test_tableZ(self):
# Importing a single parameter
- pyutilib.misc.setup_redirect(currdir+'loadZ.dat')
- print("table Z := 1.01 ;")
- pyutilib.misc.reset_redirect()
+ with capture_output(currdir+'loadZ.dat'):
+ print("table Z := 1.01 ;")
model=AbstractModel()
model.Z = Param(default=99.0)
instance = model.create_instance(currdir+'loadZ.dat')
@@ -1512,9 +1487,8 @@ def test_tableZ(self):
def test_tableY_1(self):
# Same as tableXW.
- pyutilib.misc.setup_redirect(currdir+'loadY.dat')
- print("table columns=2 Y(1)={2} := A1 3.3 A2 3.4 A3 3.5 ;")
- pyutilib.misc.reset_redirect()
+ with capture_output(currdir+'loadY.dat'):
+ print("table columns=2 Y(1)={2} := A1 3.3 A2 3.4 A3 3.5 ;")
model=AbstractModel()
model.A = Set(initialize=['A1','A2','A3','A4'])
model.Y = Param(model.A)
@@ -1525,9 +1499,8 @@ def test_tableY_1(self):
def test_tableY_2(self):
# Same as tableXW.
- pyutilib.misc.setup_redirect(currdir+'loadY.dat')
- print("table Y(A) : A Y := A1 3.3 A2 3.4 A3 3.5 ;")
- pyutilib.misc.reset_redirect()
+ with capture_output(currdir+'loadY.dat'):
+ print("table Y(A) : A Y := A1 3.3 A2 3.4 A3 3.5 ;")
model=AbstractModel()
model.A = Set(initialize=['A1','A2','A3','A4'])
model.Y = Param(model.A)
@@ -1540,9 +1513,8 @@ def test_tableXW_1_1(self):
# Importing a table, but only reporting the values for the non-index
# parameter columns. The first column is assumed to represent an
# index column.
- pyutilib.misc.setup_redirect(currdir+'loadXW.dat')
- print("table columns=3 X(1)={2} W(1)={3} := A1 3.3 4.3 A2 3.4 4.4 A3 3.5 4.5 ;")
- pyutilib.misc.reset_redirect()
+ with capture_output(currdir+'loadXW.dat'):
+ print("table columns=3 X(1)={2} W(1)={3} := A1 3.3 4.3 A2 3.4 4.4 A3 3.5 4.5 ;")
model=AbstractModel()
model.A = Set(initialize=['A1','A2','A3','A4'])
model.X = Param(model.A)
@@ -1557,9 +1529,8 @@ def test_tableXW_1_2(self):
# Importing a table, but only reporting the values for the non-index
# parameter columns. The first column is assumed to represent an
# index column.
- pyutilib.misc.setup_redirect(currdir+'loadXW.dat')
- print("table X(A) W(A) : A X W := A1 3.3 4.3 A2 3.4 4.4 A3 3.5 4.5 ;")
- pyutilib.misc.reset_redirect()
+ with capture_output(currdir+'loadXW.dat'):
+ print("table X(A) W(A) : A X W := A1 3.3 4.3 A2 3.4 4.4 A3 3.5 4.5 ;")
model=AbstractModel()
model.A = Set(initialize=['A1','A2','A3','A4'])
model.X = Param(model.A)
@@ -1572,9 +1543,8 @@ def test_tableXW_1_2(self):
def test_tableXW_3_1(self):
# Like test_tableXW_1, except that set A is defined in the load statment.
- pyutilib.misc.setup_redirect(currdir+'loadXW.dat')
- print("table columns=3 A={1} X(A)={2} W(A)={3} := A1 3.3 4.3 A2 3.4 4.4 A3 3.5 4.5 ;")
- pyutilib.misc.reset_redirect()
+ with capture_output(currdir+'loadXW.dat'):
+ print("table columns=3 A={1} X(A)={2} W(A)={3} := A1 3.3 4.3 A2 3.4 4.4 A3 3.5 4.5 ;")
model=AbstractModel()
model.A = Set()
model.X = Param(model.A)
@@ -1587,9 +1557,8 @@ def test_tableXW_3_1(self):
def test_tableXW_3_2(self):
# Like test_tableXW_1, except that set A is defined in the load statment.
- pyutilib.misc.setup_redirect(currdir+'loadXW.dat')
- print("table A={A} X(A) W(A) : A X W := A1 3.3 4.3 A2 3.4 4.4 A3 3.5 4.5 ;")
- pyutilib.misc.reset_redirect()
+ with capture_output(currdir+'loadXW.dat'):
+ print("table A={A} X(A) W(A) : A X W := A1 3.3 4.3 A2 3.4 4.4 A3 3.5 4.5 ;")
model=AbstractModel()
model.A = Set()
model.X = Param(model.A)
@@ -1604,9 +1573,8 @@ def test_tableS_1(self):
# Importing a table, but only reporting the values for the non-index
# parameter columns. The first column is assumed to represent an
# index column. A missing value is represented in the column data.
- pyutilib.misc.setup_redirect(currdir+'loadS.dat')
- print("table columns=2 S(1)={2} := A1 3.3 A2 . A3 3.5 ;")
- pyutilib.misc.reset_redirect()
+ with capture_output(currdir+'loadS.dat'):
+ print("table columns=2 S(1)={2} := A1 3.3 A2 . A3 3.5 ;")
model=AbstractModel()
model.A = Set(initialize=['A1','A2','A3','A4'])
model.S = Param(model.A)
@@ -1619,9 +1587,8 @@ def test_tableS_2(self):
# Importing a table, but only reporting the values for the non-index
# parameter columns. The first column is assumed to represent an
# index column. A missing value is represented in the column data.
- pyutilib.misc.setup_redirect(currdir+'loadS.dat')
- print("table S(A) : A S := A1 3.3 A2 . A3 3.5 ;")
- pyutilib.misc.reset_redirect()
+ with capture_output(currdir+'loadS.dat'):
+ print("table S(A) : A S := A1 3.3 A2 . A3 3.5 ;")
model=AbstractModel()
model.A = Set(initialize=['A1','A2','A3','A4'])
model.S = Param(model.A)
@@ -1632,9 +1599,8 @@ def test_tableS_2(self):
def test_tablePO_1(self):
# Importing a table that has multiple indexing columns
- pyutilib.misc.setup_redirect(currdir+'loadPO.dat')
- print("table columns=4 J={1,2} P(J)={3} O(J)={4} := A1 B1 4.3 5.3 A2 B2 4.4 5.4 A3 B3 4.5 5.5 ;")
- pyutilib.misc.reset_redirect()
+ with capture_output(currdir+'loadPO.dat'):
+ print("table columns=4 J={1,2} P(J)={3} O(J)={4} := A1 B1 4.3 5.3 A2 B2 4.4 5.4 A3 B3 4.5 5.5 ;")
model=AbstractModel()
model.J = Set(dimen=2)
model.P = Param(model.J)
@@ -1647,9 +1613,8 @@ def test_tablePO_1(self):
def test_tablePO_2(self):
# Importing a table that has multiple indexing columns
- pyutilib.misc.setup_redirect(currdir+'loadPO.dat')
- print("table J={A,B} P(J) O(J) : A B P O := A1 B1 4.3 5.3 A2 B2 4.4 5.4 A3 B3 4.5 5.5 ;")
- pyutilib.misc.reset_redirect()
+ with capture_output(currdir+'loadPO.dat'):
+ print("table J={A,B} P(J) O(J) : A B P O := A1 B1 4.3 5.3 A2 B2 4.4 5.4 A3 B3 4.5 5.5 ;")
model=AbstractModel()
model.J = Set(dimen=2)
model.P = Param(model.J)
@@ -1662,13 +1627,12 @@ def test_tablePO_2(self):
def test_complex_1(self):
# Importing a table with multiple indexing columns
- pyutilib.misc.setup_redirect(currdir+'loadComplex.dat')
- print("table columns=8 I={4} J={3,5} A(I)={1} B(J)={7} :=")
- print("A1 x1 J311 I1 J321 y1 B1 z1")
- print("A2 x2 J312 I2 J322 y2 B2 z2")
- print("A3 x3 J313 I3 J323 y3 B3 z3")
- print(";")
- pyutilib.misc.reset_redirect()
+ with capture_output(currdir+'loadComplex.dat'):
+ print("table columns=8 I={4} J={3,5} A(I)={1} B(J)={7} :=")
+ print("A1 x1 J311 I1 J321 y1 B1 z1")
+ print("A2 x2 J312 I2 J322 y2 B2 z2")
+ print("A3 x3 J313 I3 J323 y3 B3 z3")
+ print(";")
model=AbstractModel()
model.I = Set()
model.J = Set(dimen=2)
@@ -1683,14 +1647,13 @@ def test_complex_1(self):
def test_complex_2(self):
# Importing a table with multiple indexing columns
- pyutilib.misc.setup_redirect(currdir+'loadComplex.dat')
- print("table I={I} J={J1,J2} A(J) B(I) :")
- print("A x J1 I J2 y B z :=")
- print("A1 x1 J311 I1 J321 y1 B1 z1")
- print("A2 x2 J312 I2 J322 y2 B2 z2")
- print("A3 x3 J313 I3 J323 y3 B3 z3")
- print(";")
- pyutilib.misc.reset_redirect()
+ with capture_output(currdir+'loadComplex.dat'):
+ print("table I={I} J={J1,J2} A(J) B(I) :")
+ print("A x J1 I J2 y B z :=")
+ print("A1 x1 J311 I1 J321 y1 B1 z1")
+ print("A2 x2 J312 I2 J322 y2 B2 z2")
+ print("A3 x3 J313 I3 J323 y3 B3 z3")
+ print(";")
model=AbstractModel()
model.I = Set()
model.J = Set(dimen=2)
diff --git a/pyomo/environ/__init__.py b/pyomo/environ/__init__.py
index c213b415454..b669ed4be9f 100644
--- a/pyomo/environ/__init__.py
+++ b/pyomo/environ/__init__.py
@@ -31,7 +31,6 @@ def _do_import(pkg_name):
'pyomo.duality',
'pyomo.checker',
'pyomo.repn',
- 'pyomo.pysp',
'pyomo.neos',
'pyomo.solvers',
'pyomo.gdp',
diff --git a/pyomo/kernel/util.py b/pyomo/kernel/util.py
index c6e2405879d..57675907eed 100644
--- a/pyomo/kernel/util.py
+++ b/pyomo/kernel/util.py
@@ -21,8 +21,6 @@
_convert_ctype,
_convert_descend_into)
-import six
-
def preorder_traversal(node,
ctype=_no_ctype,
active=True,
@@ -162,7 +160,7 @@ def generate_names(node,
# skip the root object
try:
- six.next(traversal)
+ next(traversal)
except StopIteration:
# might be an empty traversal
return names
diff --git a/pyomo/mpec/plugins/pathampl.py b/pyomo/mpec/plugins/pathampl.py
index 6f665559d16..3f32f40f9ac 100644
--- a/pyomo/mpec/plugins/pathampl.py
+++ b/pyomo/mpec/plugins/pathampl.py
@@ -12,7 +12,7 @@
from pyomo.opt.base.solvers import SolverFactory
from pyomo.common import Executable
-from pyomo.common.collections import Options
+from pyomo.common.collections import Bunch
from pyomo.solvers.plugins.solvers.ASL import ASL
logger = logging.getLogger('pyomo.solvers')
@@ -32,7 +32,7 @@ def __init__(self, **kwds):
#
# Define solver capabilities, which default to 'None'
#
- self._capabilities = Options()
+ self._capabilities = Bunch()
self._capabilities.linear = True
def _default_executable(self):
diff --git a/pyomo/mpec/tests/cov2_mpec.nl.txt b/pyomo/mpec/tests/cov2_mpec.nl.txt
index 7adae135019..a526784344b 100644
--- a/pyomo/mpec/tests/cov2_mpec.nl.txt
+++ b/pyomo/mpec/tests/cov2_mpec.nl.txt
@@ -17,8 +17,13 @@
Key : Lower : Value : Upper : Fixed : Stale : Domain
None : None : None : None : False : True : Reals
+1 Constraint Declarations
+ keep_var_con : Size=1, Index=None, Active=True
+ Key : Lower : Body : Upper : Active
+ None : 0.5 : x1 : 0.5 : True
+
1 Block Declarations
cc : Size=0, Index=cc_index, Active=True
Key : Arg0 : Arg1 : Active
-6 Declarations: y x1 x2 x3 cc_index cc
+7 Declarations: y x1 x2 x3 cc_index cc keep_var_con
diff --git a/pyomo/mpec/tests/cov2_nlxfrm.nl b/pyomo/mpec/tests/cov2_nlxfrm.nl
index f05d0d6f940..8b2d9bc3419 100644
--- a/pyomo/mpec/tests/cov2_nlxfrm.nl
+++ b/pyomo/mpec/tests/cov2_nlxfrm.nl
@@ -1,14 +1,20 @@
g3 1 1 0 # problem unknown
- 0 0 0 0 0 # vars, constraints, objectives, ranges, eqns
+ 1 1 0 0 1 # vars, constraints, objectives, ranges, eqns
0 0 0 0 0 0 # nonlinear constrs, objs; ccons: lin, nonlin, nd, nzlb
0 0 # network constraints: nonlinear, linear
0 0 0 # nonlinear vars in constraints, objectives, both
0 0 0 1 # linear network variables; functions; arith, flags
0 0 0 0 0 # discrete variables: binary, integer, nonlinear (b,c,o)
- 0 0 # nonzeros in Jacobian, obj. gradient
+ 1 0 # nonzeros in Jacobian, obj. gradient
0 0 # max name lengths: constraints, variables
0 0 0 0 0 # common exprs: b,c,o,c1,o1
+C0
+n0
x0
r
+4 0.5
b
-k-1
+3
+k0
+J0 1
+0 1
diff --git a/pyomo/mpec/tests/t9_mpec.nl.txt b/pyomo/mpec/tests/t9_mpec.nl.txt
index 4aaa49bfa37..2a308dd6e80 100644
--- a/pyomo/mpec/tests/t9_mpec.nl.txt
+++ b/pyomo/mpec/tests/t9_mpec.nl.txt
@@ -12,9 +12,14 @@
Key : Lower : Value : Upper : Fixed : Stale : Domain
None : None : None : None : False : True : Reals
+1 Constraint Declarations
+ keep_var_con : Size=1, Index=None, Active=True
+ Key : Lower : Body : Upper : Active
+ None : 0.5 : x1 : 0.5 : True
+
1 Complementarity Declarations
cc : Size=1, Index=None, Active=False
Key : Arg0 : Arg1 : Active
None : y + x3 : x1 + 2*x2 == 1.0 : False
-5 Declarations: y x1 x2 x3 cc
+6 Declarations: y x1 x2 x3 cc keep_var_con
diff --git a/pyomo/mpec/tests/t9_nlxfrm.nl b/pyomo/mpec/tests/t9_nlxfrm.nl
index f05d0d6f940..8b2d9bc3419 100644
--- a/pyomo/mpec/tests/t9_nlxfrm.nl
+++ b/pyomo/mpec/tests/t9_nlxfrm.nl
@@ -1,14 +1,20 @@
g3 1 1 0 # problem unknown
- 0 0 0 0 0 # vars, constraints, objectives, ranges, eqns
+ 1 1 0 0 1 # vars, constraints, objectives, ranges, eqns
0 0 0 0 0 0 # nonlinear constrs, objs; ccons: lin, nonlin, nd, nzlb
0 0 # network constraints: nonlinear, linear
0 0 0 # nonlinear vars in constraints, objectives, both
0 0 0 1 # linear network variables; functions; arith, flags
0 0 0 0 0 # discrete variables: binary, integer, nonlinear (b,c,o)
- 0 0 # nonzeros in Jacobian, obj. gradient
+ 1 0 # nonzeros in Jacobian, obj. gradient
0 0 # max name lengths: constraints, variables
0 0 0 0 0 # common exprs: b,c,o,c1,o1
+C0
+n0
x0
r
+4 0.5
b
-k-1
+3
+k0
+J0 1
+0 1
diff --git a/pyomo/mpec/tests/test_complementarity.py b/pyomo/mpec/tests/test_complementarity.py
index 3e06b654eaa..88e038a7f93 100644
--- a/pyomo/mpec/tests/test_complementarity.py
+++ b/pyomo/mpec/tests/test_complementarity.py
@@ -20,10 +20,10 @@
currdir = dirname(abspath(__file__)) + os.sep
import pyutilib.th as unittest
-from pyutilib.misc import setup_redirect, reset_redirect
from pyomo.opt import ProblemFormat
from pyomo.core import ConcreteModel, Var, Constraint, TransformationFactory, Objective, Block, inequality
+from pyomo.common.tee import capture_output
from pyomo.mpec import Complementarity, complements, ComplementarityList
from pyomo.gdp import Disjunct, Disjunction
@@ -50,9 +50,8 @@ def _test(self, tname, M):
if self.xfrm is not None:
xfrm = TransformationFactory(self.xfrm)
xfrm.apply_to(M)
- setup_redirect(ofile)
- self._print(M)
- reset_redirect()
+ with capture_output(ofile):
+ self._print(M)
if not os.path.exists(bfile):
os.rename(ofile, bfile)
self.assertFileEqualsBaseline(ofile, bfile)
@@ -137,6 +136,9 @@ def test_t9(self):
M = self._setup()
M.cc = Complementarity(expr=complements(M.y + M.x3, M.x1 + 2*M.x2 == 1))
M.cc.deactivate()
+ # AMPL needs at least one variable in the problem therefore
+ # we need to have a constraint that keeps them around
+ M.keep_var_con = Constraint(expr=M.x1 == 0.5)
self._test("t9", M)
def test_t10(self):
@@ -177,6 +179,9 @@ def test_cov2(self):
# Testing warning for no rule"""
M = self._setup()
M.cc = Complementarity([0,1,2])
+ # AMPL needs at least one variable in the problem therefore
+ # we need to have a constraint that keeps them around
+ M.keep_var_con = Constraint(expr=M.x1 == 0.5)
self._test("cov2", M)
def test_cov4(self):
diff --git a/pyomo/mpec/tests/test_path.py b/pyomo/mpec/tests/test_path.py
index 58bee669d0a..997c6d0afb5 100644
--- a/pyomo/mpec/tests/test_path.py
+++ b/pyomo/mpec/tests/test_path.py
@@ -17,7 +17,6 @@
currdir = dirname(abspath(__file__))
exdir = normpath(join(currdir,'..','..','..','examples','mpec'))
-import six
import pyutilib.th as unittest
from pyomo.common.dependencies import yaml, yaml_available, yaml_load_args
@@ -113,7 +112,7 @@ def check(self, problem, solver):
self.assertEqual(len(refObj), len(ansObj))
for i in range(len(refObj)):
self.assertEqual(len(refObj[i]), len(ansObj[i]))
- if isinstance(refObj[i], six.string_types):
+ if isinstance(refObj[i], str):
continue
for key,val in iteritems(refObj[i]):
self.assertAlmostEqual(val['Value'], ansObj[i].get(key,None)['Value'], places=2)
diff --git a/pyomo/neos/plugins/kestrel_plugin.py b/pyomo/neos/plugins/kestrel_plugin.py
index c43910fa6ce..ef8c60d90a7 100644
--- a/pyomo/neos/plugins/kestrel_plugin.py
+++ b/pyomo/neos/plugins/kestrel_plugin.py
@@ -79,7 +79,7 @@ def _perform_queue(self, ah, *args, **kwds):
raise ActionManagerError(
"No solver passed to %s, use keyword option 'solver'"
% (type(self).__name__) )
- if not isinstance(solver, six.string_types):
+ if not isinstance(solver, str):
solver_name = solver.name
if solver_name == 'asl':
solver_name = \
@@ -102,7 +102,7 @@ def _perform_queue(self, ah, *args, **kwds):
if solver is not None:
user_solver_options.update(solver.options)
_options = kwds.pop('options', {})
- if isinstance(_options, six.string_types):
+ if isinstance(_options, str):
_options = OptSolver._options_string_to_dict(_options)
user_solver_options.update(_options)
user_solver_options.update(
diff --git a/pyomo/network/decomposition.py b/pyomo/network/decomposition.py
index d9e0701b163..688d898f7b2 100644
--- a/pyomo/network/decomposition.py
+++ b/pyomo/network/decomposition.py
@@ -14,7 +14,7 @@
from pyomo.network.foqus_graph import FOQUSGraph
from pyomo.core import Constraint, value, Objective, Var, ConcreteModel, \
Binary, minimize, Expression
-from pyomo.common.collections import ComponentSet, ComponentMap, Options
+from pyomo.common.collections import ComponentSet, ComponentMap, Bunch
from pyomo.core.expr.current import identify_variables
from pyomo.repn import generate_standard_repn
import logging, time
@@ -146,7 +146,7 @@ class SequentialDecomposition(FOQUSGraph):
def __init__(self, **kwds):
"""Pass kwds to update the options attribute after setting defaults"""
self.cache = {}
- options = self.options = Options()
+ options = self.options = Bunch()
# defaults
options["graph"] = None
options["tear_set"] = None
diff --git a/pyomo/opt/base/convert.py b/pyomo/opt/base/convert.py
index 776e9a8f53d..39c6251b202 100644
--- a/pyomo/opt/base/convert.py
+++ b/pyomo/opt/base/convert.py
@@ -17,11 +17,6 @@
from pyomo.opt.base.error import ConverterError
from pyomo.common import Factory
-try:
- unicode
-except NameError:
- basestring = unicode = str
-
# WEH - Should we treat these as singleton objects? Not for now, since
# I can't think of a case where that would impact performance
@@ -53,7 +48,7 @@ def convert_problem(args,
# Setup list of source problem types
#
tmp = args[0]
- if isinstance(tmp,basestring):
+ if isinstance(tmp, str):
fname = tmp.split(os.sep)[-1]
if os.sep in fname: #pragma:nocover
fname = tmp.split(os.sep)[-1]
diff --git a/pyomo/opt/base/solvers.py b/pyomo/opt/base/solvers.py
index d8fbdbd9eb3..e103b0c4bcd 100644
--- a/pyomo/opt/base/solvers.py
+++ b/pyomo/opt/base/solvers.py
@@ -17,19 +17,18 @@
import sys
import time
import logging
+import shlex
from pyomo.common.config import ConfigBlock, ConfigList, ConfigValue
from pyomo.common import Factory
from pyomo.common.errors import ApplicationError
-from pyomo.common.collections import Options
-from pyutilib.misc import quote_split
+from pyomo.common.collections import Bunch
from pyomo.opt.base.problem import ProblemConfigFactory
from pyomo.opt.base.convert import convert_problem
from pyomo.opt.base.formats import ResultsFormat, ProblemFormat
import pyomo.opt.base.results
-import six
from six import iteritems
from six.moves import xrange
@@ -171,9 +170,9 @@ def __call__(self, _name=None, **kwds):
if opt is not None:
opt.set_options('solver='+_name)
except:
- err = sys.exc_info()[1]
+ err = sys.exc_info()
logger.warning("Failed to create solver with name '%s':\n%s"
- % (_name, err))
+ % (_name, err[1]), exc_info=err)
opt = None
if opt is not None and _name != "py" and subsolver is not None:
# py just creates instance of its subsolver, no need for this option
@@ -341,7 +340,7 @@ def __init__(self, **kwds):
# through the solve command. Everything else is reset inside
# presolve
#
- self.options = Options()
+ self.options = Bunch()
if 'options' in kwds and not kwds['options'] is None:
for key in kwds['options']:
setattr(self.options, key, kwds['options'][key])
@@ -390,7 +389,7 @@ def __init__(self, **kwds):
# We define no capabilities for the generic solver; base
# classes must override this
- self._capabilities = Options()
+ self._capabilities = Bunch()
@staticmethod
def _options_string_to_dict(istr):
@@ -400,7 +399,7 @@ def _options_string_to_dict(istr):
return ans
if istr[0] == "'" or istr[0] == '"':
istr = eval(istr)
- tokens = quote_split('[ ]+',istr)
+ tokens = shlex.split(istr)
for token in tokens:
index = token.find('=')
if index == -1:
@@ -491,8 +490,8 @@ def has_capability(self, cap):
Whether or not the solver has the specified capability.
"""
if not isinstance(cap, str):
- raise TypeError("Expected argument to be of type '%s', not " + \
- "'%s'." % (str(type(str())), str(type(cap))))
+ raise TypeError("Expected argument to be of type '%s', not "
+ "'%s'." % (type(str()), type(cap)))
else:
val = self._capabilities[str(cap)]
if val is None:
@@ -562,7 +561,7 @@ def solve(self, *args, **kwds):
orig_options = self.options
- self.options = Options()
+ self.options = Bunch()
self.options.update(orig_options)
self.options.update(kwds.pop('options', {}))
self.options.update(
@@ -682,13 +681,8 @@ def _presolve(self, *args, **kwds):
"Solver="+self.type+" passed unrecognized keywords: \n\t"
+("\n\t".join("%s = %s" % (k,v) for k,v in iteritems(kwds))))
- if six.PY3:
- compare_type = str
- else:
- compare_type = basestring
-
if (type(self._problem_files) in (list,tuple)) and \
- (not isinstance(self._problem_files[0], compare_type)):
+ (not isinstance(self._problem_files[0], str)):
self._problem_files = self._problem_files[0]._problem_files()
if self._results_format is None:
self._results_format = self._default_results_format(self._problem_format)
@@ -763,14 +757,14 @@ def _get_options_string(self, options=None):
ans = []
for key in options:
val = options[key]
- if isinstance(val, six.string_types) and ' ' in val:
+ if isinstance(val, str) and ' ' in val:
ans.append("%s=\"%s\"" % (str(key), str(val)))
else:
ans.append("%s=%s" % (str(key), str(val)))
return ' '.join(ans)
def set_options(self, istr):
- if isinstance(istr, six.string_types):
+ if isinstance(istr, str):
istr = self._options_string_to_dict(istr)
for key in istr:
if not istr[key] is None:
diff --git a/pyomo/opt/blackbox/point.py b/pyomo/opt/blackbox/point.py
index ac72d55796d..92621432809 100644
--- a/pyomo/opt/blackbox/point.py
+++ b/pyomo/opt/blackbox/point.py
@@ -17,8 +17,17 @@
import sys
import copy
import re
+from xml.dom import Node
+
+
+def get_xml_text(node):
+ nodetext = ""
+ for child in node.childNodes:
+ if child.nodeType == Node.TEXT_NODE:
+ nodetext = nodetext + child.nodeValue
+ nodetext = str(nodetext)
+ return nodetext.strip()
-from pyutilib.misc import get_xml_text
class MixedIntVars(object):
"""
diff --git a/pyomo/opt/parallel/local.py b/pyomo/opt/parallel/local.py
index 9fbc9a3a2ce..6c63271cf6c 100644
--- a/pyomo/opt/parallel/local.py
+++ b/pyomo/opt/parallel/local.py
@@ -21,8 +21,6 @@
ActionHandle)
from pyomo.opt.parallel.async_solver import AsynchronousSolverManager, SolverManagerFactory
-from six import string_types
-
@SolverManagerFactory.register("serial", doc="Synchronously execute solvers locally")
class SolverManager_Serial(AsynchronousSolverManager):
@@ -47,7 +45,7 @@ def _perform_queue(self, ah, *args, **kwds):
% (type(self).__name__) )
time_start = time.time()
- if isinstance(opt, string_types):
+ if isinstance(opt, str):
with pyomo.opt.SolverFactory(opt) as _opt:
results = _opt.solve(*args, **kwds)
else:
diff --git a/pyomo/opt/plugins/colin_xml_io.py b/pyomo/opt/plugins/colin_xml_io.py
index 2acd7ba303a..95bf308f22d 100644
--- a/pyomo/opt/plugins/colin_xml_io.py
+++ b/pyomo/opt/plugins/colin_xml_io.py
@@ -14,14 +14,7 @@
from pyomo.opt.blackbox.problem_io import BlackBoxOptProblemIOFactory
import xml.dom.minidom
-from pyutilib.misc import tostr
-
-try:
- unicode
- intlist = [int, long, float]
-except:
- basestring = str
- intlist = [int, float]
+import re
@BlackBoxOptProblemIOFactory.register('colin')
@@ -74,11 +67,11 @@ def _process(self, response):
for key in response:
elt = doc.createElement(str(key))
root.appendChild(elt)
- if isinstance(response[key], basestring):
+ if isinstance(response[key], str):
text_elt = doc.createTextNode( response[key] )
- elif type(response[key]) in intlist:
+ elif type(response[key]) in [int, float]:
text_elt = doc.createTextNode( str(response[key]) )
else:
- text_elt = doc.createTextNode( tostr(response[key]) )
+ text_elt = doc.createTextNode(' '.join(repr(x) for x in response[key]))
elt.appendChild(text_elt)
return doc
diff --git a/pyomo/opt/plugins/dakota_text_io.py b/pyomo/opt/plugins/dakota_text_io.py
index 66ad0b297dc..afd4b773ca2 100644
--- a/pyomo/opt/plugins/dakota_text_io.py
+++ b/pyomo/opt/plugins/dakota_text_io.py
@@ -17,14 +17,13 @@
"""
import re
-import six
from pyomo.opt.blackbox.problem_io import BlackBoxOptProblemIOFactory
def as_number(value):
if type(value) in [int, float]:
return value
- if isinstance(value, six.string_types):
+ if isinstance(value, str):
try:
tmp = int(value)
return tmp
diff --git a/pyomo/opt/plugins/sol.py b/pyomo/opt/plugins/sol.py
index 9dc645e087a..b950c3c3ba0 100644
--- a/pyomo/opt/plugins/sol.py
+++ b/pyomo/opt/plugins/sol.py
@@ -14,8 +14,6 @@
import re
-import pyutilib.misc
-
from pyomo.opt.base import results
from pyomo.opt.base.formats import ResultsFormat
from pyomo.opt import (SolverResults,
@@ -24,6 +22,7 @@
TerminationCondition)
from six.moves import xrange
+from six import string_types
@results.ReaderFactory.register(str(ResultsFormat.sol))
@@ -114,7 +113,8 @@ def _load(self, fin, res, soln, suffixes):
objno = [int(t[1]), int(t[2])]
res.solver.message = msg.strip()
res.solver.message = res.solver.message.replace("\n","; ")
- res.solver.message = pyutilib.misc.yaml_fix(res.solver.message)
+ if isinstance(res.solver.message, string_types):
+ res.solver.message = res.solver.message.replace(':', '\\x3a')
##res.solver.instanceName = osrl.header.instanceName
##res.solver.systime = osrl.header.time
res.solver.status = SolverStatus.ok
diff --git a/pyomo/opt/results/container.py b/pyomo/opt/results/container.py
index 75b009c4e68..7b23d68125e 100644
--- a/pyomo/opt/results/container.py
+++ b/pyomo/opt/results/container.py
@@ -19,10 +19,6 @@
from six import StringIO
from six.moves import xrange
-try:
- unicode
-except NameError:
- basestring = unicode = str
class ScalarType(str, enum.Enum):
int='int'
@@ -129,9 +125,9 @@ def pprint(self, ostream, option, prefix="", repn=None):
ostream.write(prefix+'Type: '+self.yaml_fix(self.scalar_type)+'\n')
def yaml_fix(self, val):
- if not isinstance(val,basestring):
+ if not isinstance(val, str):
return val
- return val.replace(':','\\x3a')
+ return val.replace(':', '\\x3a')
def load(self, repn):
if type(repn) is dict:
@@ -370,7 +366,7 @@ def _repn_(self, option):
return tmp
def _convert(self, name):
- if not isinstance(name,basestring):
+ if not isinstance(name, str):
return name
tmp = name.replace('_',' ')
return tmp[0].upper() + tmp[1:]
diff --git a/pyomo/opt/results/solution.py b/pyomo/opt/results/solution.py
index 28e40c19f79..40c8ddbadd0 100644
--- a/pyomo/opt/results/solution.py
+++ b/pyomo/opt/results/solution.py
@@ -46,18 +46,8 @@ def __str__(self):
return self.value
-try:
- unicode
-except NameError:
- basestring = unicode = str
-
-try:
- long
- intlist = (int, long)
- numlist = (float, int, long)
-except:
- intlist = (int, )
- numlist = (float, int)
+intlist = (int, )
+numlist = (float, int)
class Solution(MapContainer):
diff --git a/pyomo/opt/solver/ilmcmd.py b/pyomo/opt/solver/ilmcmd.py
index 078bd7eff2c..bcb5f7cef3e 100644
--- a/pyomo/opt/solver/ilmcmd.py
+++ b/pyomo/opt/solver/ilmcmd.py
@@ -13,9 +13,9 @@
import re
import sys
import os
+import subprocess
import pyomo.common
-import pyutilib.subprocess
from pyomo.common.errors import ApplicationError
import pyomo.opt.solver.shellcmd
@@ -47,12 +47,14 @@ def available(self, exception_flag=False):
# this behavior, this command will stall until the
# user hits Ctrl-C.
cmd.append("-batch")
- [rc,log] = pyutilib.subprocess.run(cmd)
+ result = subprocess.run(cmd, stdout=subprocess.PIPE,
+ stderr=subprocess.STDOUT,
+ universal_newlines=True)
except OSError:
msg = sys.exc_info()[1]
raise ApplicationError("Could not execute the command: ilmtest\n\tError message: "+msg)
sys.stdout.flush()
- for line in log.split("\n"):
+ for line in result.stdout.split("\n"):
tokens = re.split('[\t ]+',line.strip())
if len(tokens) == 5 and tokens[0] == 'tokens' and tokens[1] == 'reserved:' and tokens[4] == os.environ.get('USER',None):
if not (tokens[2] == 'none' or tokens[2] == '0'):
diff --git a/pyomo/opt/solver/shellcmd.py b/pyomo/opt/solver/shellcmd.py
index 9c126719a42..198d6a455e4 100644
--- a/pyomo/opt/solver/shellcmd.py
+++ b/pyomo/opt/solver/shellcmd.py
@@ -14,12 +14,14 @@
import sys
import time
import logging
+import subprocess
+from six import StringIO
from pyomo.common.errors import ApplicationError
from pyomo.common.collections import Bunch
from pyomo.common.log import is_debug_set
from pyomo.common.tempfiles import TempfileManager
-from pyutilib.subprocess import run
+from pyomo.common.tee import TeeStream
import pyomo.common
from pyomo.opt.base import ResultsFormat
@@ -294,19 +296,33 @@ def _execute_command(self,command):
start_time = time.time()
+ if 'script' in command:
+ _input = command.script
+ else:
+ _input = None
+
+ timeout = self._timelimit
+ if timeout is not None:
+ timeout += max(1, 0.01*self._timelimit)
+
+ ostreams = [StringIO()]
+ if self._tee:
+ ostreams.append(sys.stdout)
+
try:
- if 'script' in command:
- _input = command.script
- else:
- _input = None
- [rc, log] = run(
- command.cmd,
- stdin = _input,
- timelimit = self._timelimit if self._timelimit is None else self._timelimit + max(1, 0.01*self._timelimit),
- env = command.env,
- tee = self._tee,
- define_signal_handlers = self._define_signal_handlers
- )
+ with TeeStream(*ostreams) as t:
+ results = subprocess.run(
+ command.cmd,
+ input=_input,
+ env=command.env,
+ stdout=t.STDOUT,
+ stderr=t.STDERR,
+ timeout=timeout,
+ universal_newlines=True,
+ )
+
+ rc = results.returncode
+ log = ostreams[0].getvalue()
except OSError:
err = sys.exc_info()[1]
msg = 'Could not execute the command: %s\tError message: %s'
diff --git a/pyomo/opt/testing/pyunit.py b/pyomo/opt/testing/pyunit.py
index a08f76c4017..1a1002d6707 100644
--- a/pyomo/opt/testing/pyunit.py
+++ b/pyomo/opt/testing/pyunit.py
@@ -17,7 +17,7 @@
from inspect import getfile
import pyutilib.th as unittest
-import pyutilib.subprocess
+import subprocess
def _failIfPyomoResultsDiffer(self, cmd=None, baseline=None, cwd=None):
if cwd is None:
@@ -32,13 +32,17 @@ def _failIfPyomoResultsDiffer(self, cmd=None, baseline=None, cwd=None):
baseline = "\n".join(INPUT.readlines())
INPUT.close()
- output = pyutilib.subprocess.run(cmd)
+ output = subprocess.run(cmd, stdout=subprocess.PIPE,
+ stderr=subprocess.STDOUT,
+ universal_newlines=True)
finally:
os.chdir(oldpwd)
- if output[0] != 0:
+ if output.returncode != 0:
self.fail("Command terminated with nonzero status: '%s'" % cmd)
- results = extract_results(re.split('\n',output[1]))
+ # !!THIS SEEMS LIKE A BUG!! - mrmundt #
+ # There is nothing imported called "extract_results" nor "compare_results"
+ results = extract_results(re.split('\n', output.stdout))
try:
compare_results(results, baseline)
except IOError:
diff --git a/pyomo/opt/tests/base/test_soln.py b/pyomo/opt/tests/base/test_soln.py
index 3fb2c775481..3e3e014c62a 100644
--- a/pyomo/opt/tests/base/test_soln.py
+++ b/pyomo/opt/tests/base/test_soln.py
@@ -18,7 +18,6 @@
currdir = dirname(abspath(__file__))+os.sep
import pyutilib.th as unittest
-import pyutilib.misc
from pyomo.common.dependencies import yaml_available
from pyomo.common.tempfiles import TempfileManager
@@ -150,9 +149,8 @@ def test_soln_pprint2(self):
self.soln.variable[1]["Value"]=0.0
self.soln.variable[2]["Value"]=0.0
self.soln.variable[4]["Value"]=0.0
- pyutilib.misc.setup_redirect(currdir+"soln_pprint2.out")
- print(self.soln)
- pyutilib.misc.reset_redirect()
+ with open(currdir+'soln_pprint2.out', 'w') as f:
+ f.write(str(self.soln))
self.assertFileEqualsBaseline(currdir+"soln_pprint2.out", currdir+"soln_pprint2.txt")
def test_soln_suffix_getiter(self):
@@ -172,5 +170,4 @@ def test_soln_suffix_setattr(self):
self.assertEqual(self.soln.variable[4]["Slack"],0.4)
if __name__ == "__main__":
- #sys.settrace(pyutilib.misc.traceit)
unittest.main()
diff --git a/pyomo/opt/tests/blackbox/test_problem.py b/pyomo/opt/tests/blackbox/test_problem.py
index 157956a7c9f..9ba5844d36e 100644
--- a/pyomo/opt/tests/blackbox/test_problem.py
+++ b/pyomo/opt/tests/blackbox/test_problem.py
@@ -18,11 +18,11 @@
currdir = dirname(abspath(__file__))+os.sep
import pyutilib.th as unittest
-import pyutilib.misc
import pyomo.opt
import pyomo.opt.blackbox
from pyomo.common.tempfiles import TempfileManager
+from pyomo.common.tee import capture_output
old_tempdir = TempfileManager.tempdir
@@ -285,17 +285,15 @@ def test_mi(self):
point.reals = [1.0]
point.ints = [1.0]
point.bits = [0]
- pyutilib.misc.setup_redirect(currdir+'mi_point.out')
- point.display()
- pyutilib.misc.reset_redirect()
+ with capture_output(currdir+'mi_point.out'):
+ point.display()
self.assertFileEqualsBaseline(currdir+'mi_point.out', currdir+'mi_point.txt')
def test_reals(self):
point = pyomo.opt.blackbox.RealVars()
point.vars = [1.0]
- pyutilib.misc.setup_redirect(currdir+'real_point.out')
- point.display()
- pyutilib.misc.reset_redirect()
+ with capture_output(currdir+'real_point.out'):
+ point.display()
self.assertFileEqualsBaseline(currdir+'real_point.out', currdir+'real_point.txt')
diff --git a/pyomo/pysp/__init__.py b/pyomo/pysp/__init__.py
index ce93d0530c8..e8c727d64f9 100644
--- a/pyomo/pysp/__init__.py
+++ b/pyomo/pysp/__init__.py
@@ -2,43 +2,33 @@
#
# Pyomo: Python Optimization Modeling Objects
# Copyright 2017 National Technology and Engineering Solutions of Sandia, LLC
-# Under the terms of Contract DE-NA0003525 with National Technology and
-# Engineering Solutions of Sandia, LLC, the U.S. Government retains certain
+# Under the terms of Contract DE-NA0003525 with National Technology and
+# Engineering Solutions of Sandia, LLC, the U.S. Government retains certain
# rights in this software.
# This software is distributed under the 3-clause BSD License.
# ___________________________________________________________________________
-from pyomo.common.plugin import PluginGlobals
-PluginGlobals.add_env("pyomo")
+import logging
+import sys
+from pyomo.common.deprecation import deprecation_warning
-import pyomo.pysp.annotations
-import pyomo.pysp.solutionioextensions
-import pyomo.pysp.util
-#import pyomo.pysp.ef_vss
-import pyomo.pysp.phsolverserverutils
-import pyomo.pysp.solutionwriter
-import pyomo.pysp.phextension
-import pyomo.pysp.phutils
-import pyomo.pysp.dualphmodel
-import pyomo.pysp.generators
-import pyomo.pysp.convergence
-import pyomo.pysp.scenariotree
-import pyomo.pysp.phobjective
-import pyomo.pysp.embeddedsp
+# Only implement the deprecation imports nose is NOT running
+if 'nose' not in sys.modules and 'nose2' not in sys.modules:
+ try:
+ from pysp import *
+ # Redirect all (imported) pysp modules into the pyomo.pysp namespace
+ for mod in list(sys.modules):
+ if mod.startswith('pysp.'):
+ sys.modules['pyomo.'+mod] = sys.modules[mod]
+ # Warn the user
+ deprecation_warning(
+ "PySP has been removed from pyomo.pysp namespace. "
+ "Please import PySP directly from the pysp namespace.",
+ version='TBD')
+ except ImportError:
+ raise ImportError(
+ "No module named 'pyomo.pysp'. "
+ "Beginning in Pyomo 6.0, PySP is distributed as a separate "
+ "package. Please see https://github.com/Pyomo/pysp for "
+ "information on downloading and installing PySP")
-import pyomo.pysp.ef
-import pyomo.pysp.ph
-import pyomo.pysp.lagrangeutils
-
-import pyomo.pysp.phsolverserver
-import pyomo.pysp.ef_writer_script
-import pyomo.pysp.phinit
-import pyomo.pysp.computeconf
-import pyomo.pysp.drive_lagrangian_cc
-import pyomo.pysp.lagrangeMorePR
-import pyomo.pysp.lagrangeParam
-import pyomo.pysp.convert
-import pyomo.pysp.solvers
-import pyomo.pysp.benders
-
-PluginGlobals.pop_env()
diff --git a/pyomo/pysp/annotations.py b/pyomo/pysp/annotations.py
deleted file mode 100644
index 04e8aec6a02..00000000000
--- a/pyomo/pysp/annotations.py
+++ /dev/null
@@ -1,363 +0,0 @@
-# ___________________________________________________________________________
-#
-# Pyomo: Python Optimization Modeling Objects
-# Copyright 2017 National Technology and Engineering Solutions of Sandia, LLC
-# Under the terms of Contract DE-NA0003525 with National Technology and
-# Engineering Solutions of Sandia, LLC, the U.S. Government retains certain
-# rights in this software.
-# This software is distributed under the 3-clause BSD License.
-# ___________________________________________________________________________
-
-import logging
-
-from pyomo.common.collections import ComponentMap
-from pyomo.core.base.constraint import Constraint, _ConstraintData
-from pyomo.core.base.var import Var, _VarData
-from pyomo.core.base.expression import Expression, _ExpressionData
-from pyomo.core.base.param import Param, _ParamData
-from pyomo.core.base.objective import Objective, _ObjectiveData
-from pyomo.core.base.block import Block, _BlockData
-
-logger = logging.getLogger('pyomo.pysp')
-
-def locate_annotations(model, annotation_type, max_allowed=None):
- """
- Return a list of all annotations of a given type on a Pyomo model.
- Setting the 'max_allowed' keyword will cause an exception to
- be raised if more than that many declarations of than annotation
- type are found on the model.
- """
-
- annotations = [(name, obj)
- for block in model.block_data_objects(active=True,
- descend_into=True)
- for name, obj in vars(block).items()
- if isinstance(obj, annotation_type)]
- if (max_allowed is not None) and (len(annotations) > max_allowed):
- raise ValueError("Too many annotations of type %s found on "
- "model %s. The maximum allowed is %s."
- % (annotation_type.__name__,
- model.name,
- max_allowed))
- return annotations
-
-class PySP_Annotation(object):
- _ctypes = ()
- _ctypes_data = ()
- def __init__(self):
- assert len(self._ctypes) > 0
- assert len(self._ctypes) == len(self._ctypes_data)
- self._data = ComponentMap()
- self._default = None
-
- @property
- def default(self):
- return self._default
-
- @property
- def has_declarations(self):
- return bool(len(self._data) > 0)
-
- def declare(self, component, *args, **kwds):
- if isinstance(component, self._ctypes_data) or \
- isinstance(component, self._ctypes) or \
- isinstance(component, (Block, _BlockData)):
- self._declare_impl(component, *args, **kwds)
- else:
- raise TypeError(
- "Declarations in annotation type %s must be of types "
- "%s or Block. Invalid type: %s"
- % (self.__class__.__name__,
- (",".join(ctype.__name__ for ctype in self._ctypes)),
- type(component)))
-
- def expand_entries(self, expand_containers=True):
- """
- Translates the annotation into a flattened list of
- (component, annotation_value) pairs. The ctypes argument
- can be a single component type are a tuple of component
- types. If any components are found in the annotation
- not matching those types, an exception will be
- raised. If 'expand_containers' is set to False, then
- component containers will not be flattened into the set
- of components they contain.
- """
- items = []
- component_ids = set()
- def _append(component, val):
- items.append((component, val))
- if id(component) in component_ids:
- raise RuntimeError(
- "Component %s was assigned multiple declarations "
- "in annotation type %s. To correct this issue, ensure that "
- "multiple container components under which the component might "
- "be stored (such as a Block and an indexed Constraint) are not "
- "simultaneously set in this annotation." % (component.name,
- self.__class__.__name__))
- component_ids.add(id(component))
-
- for component in self._data:
- component_annotation_value = self._data[component]
- if not getattr(component, "active", True):
- continue
- if isinstance(component, self._ctypes_data):
- _append(component, component_annotation_value)
- elif isinstance(component, self._ctypes):
- if expand_containers:
- for index in component:
- obj = component[index]
- if getattr(obj, "active", True):
- _append(obj, component_annotation_value)
- else:
- _append(component, component_annotation_value)
- else:
- if isinstance(component, _BlockData):
- block_list = (component,)
- else:
- isinstance(component, Block)
- block_list = (component[index] for index in component)
- for block in block_list:
- if block.active:
- for ctype in self._ctypes:
- if expand_containers:
- for obj in block.component_data_objects(
- ctype,
- active=True,
- descend_into=True):
- _append(obj, component_annotation_value)
- else:
- for obj in block.component_objects(
- ctype,
- active=True,
- descend_into=True):
- _append(obj, component_annotation_value)
-
- return items
-
-def PySP_StageCostAnnotation(*args, **kwds):
- logger.warning("DEPRECATED: 'PySP_StageCostAnnotation' "
- "has been renamed to 'StageCostAnnotation'. "
- "Please update your model file.")
- return StageCostAnnotation(*args, **kwds)
-class StageCostAnnotation(PySP_Annotation):
- """
- This annotation is used to identify the component
- representing the objective cost associated with
- a time stage.
-
- The declare method should be called with an additional
- argument that is an integer greater than or equal to
- one, which signifies the time-stage of the initial
- component argument.
- """
- _ctypes = (Var, Expression)
- _ctypes_data = (_VarData, _ExpressionData)
-
- def __init__(self):
- super(StageCostAnnotation, self).__init__()
- self._default = None
-
- def _declare_impl(self, component, stage):
- assert int(stage) == stage
- assert stage >= 1
- self._data[component] = stage
-
-def PySP_VariableStageAnnotation(*args, **kwds):
- logger.warning("DEPRECATED: 'PySP_VariableStageAnnotation' "
- "has been renamed to 'VariableStageAnnotation'. "
- "Please update your model file.")
- return VariableStageAnnotation(*args, **kwds)
-class VariableStageAnnotation(PySP_Annotation):
- """
- This annotation is used to identify what time-stage a
- variable belongs to.
-
- The declare method should be called with an additional
- argument that is an integer greater than or equal to
- one, which signifies the time-stage of the initial
- component argument. The optional keyword 'derived' can
- be set to true to imply that a variable belongs to a
- particular time stage, but does not require
- non-anticipativity constraints be added when that time
- stage is not the last.
- """
- _ctypes = (Var, Expression)
- _ctypes_data = (_VarData, _ExpressionData)
-
- def __init__(self):
- super(VariableStageAnnotation, self).__init__()
- self._default = None
-
- def _declare_impl(self, component, stage, derived=False):
- assert int(stage) == stage
- assert stage >= 1
- self._data[component] = (stage, derived)
-
-def PySP_ConstraintStageAnnotation(*args, **kwds):
- logger.warning("DEPRECATED: 'PySP_ConstraintStageAnnotation' "
- "is no longer recognized (constraint stages are "
- "automatically inferred). It will be removed in "
- "the future. Please update your model file.")
- return _ConstraintStageAnnotation(*args, **kwds)
-def ConstraintStageAnnotation(*args, **kwds):
- logger.warning("DEPRECATED: 'ConstraintStageAnnotation' "
- "is no longer recognized (constraint stages are "
- "automatically inferred). It will be removed in "
- "the future. Please update your model file.")
- return _ConstraintStageAnnotation(*args, **kwds)
-class _ConstraintStageAnnotation(PySP_Annotation):
- """
- This annotation is used to identify what time-stage a
- constraint belongs to.
-
- The declare method should be called with an additional
- argument that is an integer greater than or equal to
- one, which signifies the time-stage of the initial
- component argument.
- """
- _ctypes = (Constraint,)
- _ctypes_data = (_ConstraintData,)
-
- def __init__(self):
- super(_ConstraintStageAnnotation, self).__init__()
- self._default = None
-
- def _declare_impl(self, component, stage):
- assert int(stage) == stage
- assert stage >= 1
- self._data[component] = stage
-
-def PySP_StochasticDataAnnotation(*args, **kwds):
- logger.warning("DEPRECATED: 'PySP_StochasticDataAnnotation' "
- "has been renamed to 'StochasticDataAnnotation'. "
- "Please update your model file.")
- return StochasticDataAnnotation(*args, **kwds)
-class StochasticDataAnnotation(PySP_Annotation):
- """
- This annotation is used to identify stochastic data
- locations in constraints or the objective.
-
- When calling declare, if the second argument is set
- to None, this implies that the constant part of the
- expression (e.g., the constant in the objective or the
- or rhs of a constraint) should be marked as stochastic.
- The optional keyword 'distribution' can be set to
- a data distribution.
- """
- _ctypes = (Param,)
- _ctypes_data = (_ParamData,)
-
- def __init__(self):
- super(StochasticDataAnnotation, self).__init__()
- self._default = None
-
- def _declare_impl(self, component, distribution=None):
- self._data[component] = distribution
-
-def PySP_StochasticRHSAnnotation(*args, **kwds):
- logger.warning("DEPRECATED: 'PySP_StochasticRHSAnnotation' "
- "has been renamed to 'StochasticConstraintBoundsAnnotation'. "
- "Please update your model file.")
- return StochasticConstraintBoundsAnnotation(*args, **kwds)
-class StochasticConstraintBoundsAnnotation(PySP_Annotation):
- """
- This annotation is used to identify constraints that have
- stochastic bound data.
-
- When calling declare, at most one of the keywords 'lb' or
- 'ub' can be set to False to disable the annotation on
- one side of any range type constraints.
- """
- _ctypes = (Constraint,)
- _ctypes_data = (_ConstraintData,)
-
- def __init__(self):
- super(StochasticConstraintBoundsAnnotation, self).__init__()
- self._default = True
-
- def _declare_impl(self, component, lb=True, ub=True):
- assert lb or ub
- assert (lb is True) or (lb is False)
- assert (ub is True) or (ub is False)
- if lb and ub:
- self._data[component] = True
- else:
- self._data[component] = (lb, ub)
-
-def PySP_StochasticMatrixAnnotation(*args, **kwds):
- logger.warning("DEPRECATED: 'PySP_StochasticMatrixAnnotation' "
- "has been renamed to 'StochasticConstraintBodyAnnotation'. "
- "Please update your model file.")
- return StochasticConstraintBodyAnnotation(*args, **kwds)
-class StochasticConstraintBodyAnnotation(PySP_Annotation):
- """
- This annotation is used to identify constraints with
- stochastic data appearing in the body expression.
-
- When calling declare, the 'variables' keyword can be set to
- a list of variables whose coefficients should be treated
- as stochastic. Leaving 'variables' at its default of
- None signifies that coefficients of all variables
- appearing in the expression should be considered
- stochastic.
- """
- _ctypes = (Constraint,)
- _ctypes_data = (_ConstraintData,)
-
- def __init__(self):
- super(StochasticConstraintBodyAnnotation, self).__init__()
- self._default = None
-
- def _declare_impl(self, component, variables=None):
- self._data[component] = variables
-
-def PySP_StochasticObjectiveAnnotation(*args, **kwds):
- logger.warning("DEPRECATED: 'PySP_StochasticObjectiveAnnotation' "
- "has been renamed to 'StochasticObjectiveAnnotation'. "
- "Please update your model file.")
- return StochasticObjectiveAnnotation(*args, **kwds)
-class StochasticObjectiveAnnotation(PySP_Annotation):
- """
- This annotation is used to identify variable
- cost-coefficients that are stochastic.
-
- When calling declare, the 'variables' keyword can be set to
- a list of variables whose coefficients should be treated
- as stochastic. Leaving 'variables' at its default of
- None signifies that the coefficients of all variables
- appearing in the expression should be considered
- stochastic. The 'include_constant' keyword signifies
- whether or not the constant term in the cost expression
- should be treated as stochastic (default is True).
- """
- _ctypes = (Objective,)
- _ctypes_data = (_ObjectiveData,)
-
- def __init__(self):
- super(StochasticObjectiveAnnotation, self).__init__()
- self._default = (None, True)
-
- def _declare_impl(self, component, variables=None, include_constant=True):
- self._data[component] = (variables, include_constant)
-
-class StochasticVariableBoundsAnnotation(PySP_Annotation):
- """
- This annotation is used to identify variable
- bounds that are stochastic.
-
- When calling declare, at most one of the keywords 'lb' or
- 'ub' can be set to False to disable the annotation for
- one of the variable bounds.
- """
- _ctypes = (Var,)
- _ctypes_data = (_VarData,)
-
- def __init__(self):
- super(StochasticVariableBoundsAnnotation, self).__init__()
- self._default = (True, True)
-
- def _declare_impl(self, component, lb=True, ub=True):
- assert lb or ub
- assert (lb is True) or (lb is False)
- assert (ub is True) or (ub is False)
- self._data[component] = (lb, ub)
diff --git a/pyomo/pysp/bbph/archive/AAAReadme.txt b/pyomo/pysp/bbph/archive/AAAReadme.txt
deleted file mode 100644
index 286be021fca..00000000000
--- a/pyomo/pysp/bbph/archive/AAAReadme.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-Files more-or-less as used for the bbph.py paper;
-created by dlw Dec 2016
diff --git a/pyomo/pysp/bbph/archive/bbph.py b/pyomo/pysp/bbph/archive/bbph.py
deleted file mode 100644
index 89fb7fcbc0d..00000000000
--- a/pyomo/pysp/bbph/archive/bbph.py
+++ /dev/null
@@ -1,608 +0,0 @@
-# This is research code that can be used to re-create the tests
-# reported in the BBPH paper in OR Letters.
-#
-### DO NOT EDIT ### !!!!! !!!! !!!!!! !!!!
-# THIS IS FROZEN BY ORDER OF DLW MAY 21, 2016
-#
-# If we want to branch on non-binary vars, we need var bounds info to detect terminal-ness:
-# but in general, that can vary by scenario, so we would need the min var lb and max var ub
-# but... for now we could just branch and then hit infeasiblity...
-
-import pyomo.environ
-from pyomo.pysp import ph, phinit, phutils
-from pyomo.core.base import maximize, minimize
-import pyomo.solvers.plugins.smanager.phpyro
-from pyomo.pysp import phsolverserverutils
-
-import os
-from optparse import OptionParser, OptionGroup
-import copy
-import sys
-import time
-
-thisfile = os.path.abspath(__file__)
-
-# branch and bound based on PH
-
-###### local options ######
-def AddBBOptions(parser):
- # add BB options to the parser object
- BBPH_options = parser.add_argument_group("BB PH options")
-
- BBPH_options.add_argument('--BBPH-OuterIterationLimit',
- help='Specifies the maximum number of Outer Iterations. Default is None.',
- action='store',
- dest='BBPH_OuterIterationLimit',
- type=int,
- default=None)
-
- BBPH_options.add_argument('--BBPH-Verbose',
- help='Specifies verbose output from BBPH. Default is False.',
- action='store_true',
- dest='BBPH_Verbose',
- default=False)
-
- BBPH_options.add_argument('--BBPH-Initial-IB',
- help='Specifies an initial value of the global inner bound. Default is None.',
- action='store',
- dest='BBPH_Initial_IB',
- type=float,
- default=None)
-
- BBPH_options.add_argument('--BBPH-Initial-OB',
- help='Specifies an initial value of the global outer bound. Default is None.',
- action='store',
- dest='BBPH_Initial_OB',
- type=float,
- default=None)
-
- BBPH_options.add_argument('--BBPH-No-Branch-Epsilon',
- help="For the node IB and OB, an abs(IB-OB) that precludes branching; default 1e-9",
- action='store',
- dest='BBPH_No_Branch_Epsilon',
- type=float,
- default=1e-9)
-
- BBPH_options.add_argument('--BBPH-Terminate-Epsilon',
- help="For global IB and OB, an abs(IB-OB) that causes termination; default 1e-5",
- action='store',
- dest='BBPH_Terminate_Epsilon',
- type=float,
- default=1e-5)
-
-######### Global Counts dictionary for reporting #######
-
-Counts = {}
-Counts["Infeasible"] = 0
-Counts["Pruned by Bound Threshhold"] = 0
-Counts["Pruned by IB == OB"] = 0
-
-###### for transmitting variable bounds ####
-def external_branch_on_variable(ph, scenario_tree, scenario_or_bundle, boundslist, Verbose):
- # signature needed to pass across to solvers
- if Verbose:
- print ("creating bounds for B&B node for",scenario_or_bundle.name,"as follows:")
- instance = ph._instances[scenario_or_bundle.name]
- for boundtuple in boundslist:
- ((scenario_tree_node_name, variable_id), value, direction) = boundtuple
- tree_node = scenario_tree.get_node(scenario_tree_node_name)
- varname, varindex = tree_node._variable_ids[variable_id]
- vardataobject = getattr(instance, varname)[varindex]
- if direction == 'up':
- vardataobject.setlb(value)
- else:
- vardataobject.setub(value)
- if Verbose:
- print (" ",varname,"[",varindex,"] ",direction,value)
- instance.preprocess()
-
-#
-# Create a dictionary mapping scenario tree id to
-# variable bounds
-#
-def collect_node_variable_bounds(tree_node):
- assert tree_node._variable_datas is not None
- var_bounds = {}
- for variable_id, vardatas in iteritems(tree_node._variable_datas):
- vardata = vardatas[0][0]
- if not vardata.is_expression():
- var_bounds[variable_id] = (vardata.lb, vardata.ub)
- else:
- # Expression
- var_bounds[variable_id] = (None,None)
-
- return var_bounds
-
-# This function will be executed on a phsolverserver using
-# the transmit_external_function_invocation_to_worker utility
-def external_collect_variable_bounds(ph,
- scenario_tree,
- scenario_or_bundle,
- node_list):
-
- variable_bounds = {}
- for node_name in node_list:
- tree_node = scenario_tree._tree_node_map[node_name]
- variable_bounds[node_name] = collect_node_variable_bounds(tree_node)
-
- return variable_bounds
-
-###### output utilities #########
-def IBName(sense):
- if sense == minimize:
- return "upper bound "
- elif sense == maximize:
- return "lower bound"
- else:
- return "N/A"
-
-def OBName(sense):
- if sense == maximize:
- return "upper bound"
- elif sense == minimize:
- return "lower bound"
- else:
- return "N/A"
-
-##### comparison utility #####
-def isBetter(val0, sense, val1):
- # return true if val0 is better than val1 using sense
- return (sense is minimize and val0 < val1) or (sense is maximize and val0 > val1)
-
-########################### node class ##############################
-class BBPH_node(object):
- # assumed to be a node in a binary tree in some places
-
- def __init__(self, options, BranchTupleList=None, Parent=None, isTerminal=False):
- # only the root BB node has no Parent and no BranchTuple
- # NOTE: if you want to know what branch made this, look at BranchTupleList[-1]
-
- self._options = options
- self.Parent = Parent
- # the ChildrenOB list is created when we do the branching (which is done all at once)
- # if a child has a "none" bound, it has not been processed yet
- # NOTE: there might be 0,1, or two children
- self.ChildrenOBs = {} # Each child can enter the list and/or update outer bounds
- self.BranchTupleList = BranchTupleList # ((scenario_tree_node_name, variable_id), value, direction)
- self.InnerBound = None
- self.OuterBound = None
-
- #
- # Store the variable bounds on the tree node by variable id
- # If this is parallel ph, then we need to do this by transmitting
- # an external function invocation that collects the variable
- # bounds from a given list of node names. We do this in such
- # a way as to minimize the amount of data we need to transfer
- # (e.g., in the case of a two stage problem, we request information
- # about the root node from only one of the PH solver servers)
- #
-
- def _collect_node_variable_bounds(self, ph, tree_node):
-
- if not isinstance(ph._solver_manager,
- pyomo.solvers.plugins.\
- smanager.phpyro.SolverManager_PHPyro):
-
- tree_node._variable_bounds = \
- collect_node_variable_bounds(tree_node)
-
- else:
-
- new_action_handle = \
- transmit_external_function_invocation_to_worker(
- ph,
- object_name,
- thisfile,
- "external_collect_variable_bounds",
- return_action_handle=True,
- function_args=((tree_node.name,),))
-
- results = ph._solver_manager.wait_for(ah)
- object_name = action_handle_map[ah]
- assert tree_node.name in results
- tree_node._variable_bounds = results[tree_node.name]
-
- def Select_var_by_dist_from_xbar(self, ph):
- # assuming the solve is complete, find a good variable on which to branch
- # we want the biggest dist from the lowest stage with a non-zero...
- # this is looking for an outlier with general ints, but for binaries, it picks the var
- # with xbar closest to 1/2
- biggestdist = 0
- stagenum = 0
- # TBD: we probably should go all the way out, as in the paper...
- for stage in ph._scenario_tree._stages[:-1]:
- stagenum += 1
- for tree_node in stage._tree_nodes:
- xbars = tree_node._xbars
- mins = tree_node._minimums
- maxs = tree_node._maximums
- for scen in tree_node._scenarios:
- for variable_id in tree_node._standard_variable_ids:
- if tree_node.is_variable_boolean(variable_id): # for now...
- diff = scen._x[tree_node._name][variable_id] - xbars[variable_id]
- sest = (maxs[variable_id] - mins[variable_id]) / 4.0 # close enough to stdev
- if sest > ph._integer_tolerance: # actually, it should be at least 1/4 if not zero
- dist = min(3, abs(diff)/sest) # truncated z score
- if dist > biggestdist:
- biggestdist = dist
- winner = (tree_node._name, variable_id)
- if biggestdist > 0:
- return biggestdist, stagenum, winner
- return None, None, None
-
- def Select_var_by_latest_convergence(self, ph):
- # assuming the solve is complete, find a good variable on which to branch
- # we want one that converged last
- # return a boolean to indicate if Conv iters is provided
- LeastConvergedIters = ph._current_iteration+1 # how long have we been converged
- winner = None
- stagenum = 0
- for stage in ph._scenario_tree._stages[:-1]:
- stagenum += 1
- for tree_node in stage._tree_nodes:
- if not hasattr(tree_node, '_num_iters_converged'):
- print ("warning: _num_iters_converged not provided by wwextensions")
- return None, (None, None), False
- ConIters = tree_node._num_iters_converged
- for scen in tree_node._scenarios:
- for variable_id in tree_node._standard_variable_ids:
- if tree_node.is_variable_boolean(variable_id): # for now...
- if not hasattr(tree_node, "_variable_bounds"):
- self._collect_node_variable_bounds(ph, tree_node)
- (lbval, ubval) = tree_node._variable_bounds[variable_id]
- if (lbval is None or ubval is None or lbval != ubval): # don't want a do-over
- if ConIters[variable_id] < LeastConvergedIters:
- LeastConvergedIters = ConIters[variable_id]
- winner = (tree_node._name, variable_id)
- if winner is not None:
- if options.BBPH_Verbose is True:
- print ("LeastConvergedIters=",LeastConvergedIters)
- return stagenum, winner, True
- return None, (None, None), True
-
- def Select_var_by_first_unbranched(self, ph):
- # assuming the solve is complete, find a variable on which to branch
- # here we also will branch on derived variables
-
- def Process_var(stage, tree_node, variable_id):
- # return True if this is the var to use
- varname, varindex = tree_node._variable_ids[variable_id]
- #print ("looking at stagenum=%d varid=%s; %s[%s]" % (stagenum, str(variable_id), varname, varindex))
- notit = True
- if tree_node.is_variable_boolean(variable_id): # as of Aug 2015, TBD: general ints
- if options.BBPH_Verbose is True:
- print ("looking hard at stage=%s varid=%s; %s[%s]" % (stage.name, str(variable_id), varname, varindex))
- notit = False
- # note: we need to know if we have branched on it to get here
- if self.BranchTupleList is not None:
- for BT in self.BranchTupleList:
- ((tn, vi), v, d) = BT
- if (tree_node._name, variable_id) == (tn, vi):
- notit = True
- if not notit:
- return True
- return False
-
- stagenum = 0
- for stage in ph._scenario_tree._stages[:-1]:
- stagenum += 1
- for tree_node in stage._tree_nodes:
- for variable_id in tree_node._standard_variable_ids:
- is_it = Process_var(stage, tree_node, variable_id)
- if is_it:
- return stagenum, tree_node._name, variable_id
- for variable_id in tree_node._derived_variable_ids:
- is_it = Process_var(stage, tree_node, variable_id)
- if is_it:
- return stagenum, tree_node._name, variable_id
-
- return None, None, None
-
- def ProcessNewChildOB(self, ChildNode, sense):
- # One of my children has a new OB, see if I care
- # I might want to update the kids OB locally, and maybe update my OB
- # If I update my OB, call this function on my parent (if I have one)
-
- currkidval = self.ChildrenOBs[ChildNode]
- if currkidval is not None \
- and not isBetter(ChildNode.OuterBound, sense, currkidval):
- return # we are not moved to act on this
-
- if options.BBPH_Verbose is True:
- print ("Updating OB for child in node")
- self.ChildrenOBs[ChildNode] = ChildNode.OuterBound
-
- ValtoUse = self.OuterBound
- # note: this could be the final (i.e. second) arrival
- for kid in self.ChildrenOBs: # for sort of would work with non-binary (but full-partition) trees...
- if self.ChildrenOBs[kid] is None:
- if options.BBPH_Verbose is True:
- print ("Not all children have reported OB so no need to update further")
- return
- if isBetter(self.ChildrenOBs[kid], sense, ValtoUse):
- ValtoUse = self.ChildrenOBs[kid]
-
- if isBetter(ValtoUse, sense, self.OuterBound):
- if options.BBPH_Verbose is True:
- print ("Updating OB for this node")
- self.OuterBound = ChildNode.OuterBound
- else:
- if options.BBPH_Verbose is True:
- ("No OB improment for this node")
- return
-
- if self.Parent is not None:
- if options.BBPH_Verbose is True:
- print ("Passing my new OB to my parent")
- self.Parent.ProcessNewChildOB(self, sense)
-
- def Branch(self, ph):
- # pick a variable and return two new BBPH_nodes
- # i.e. do all binary branching on the node
-
- # see if ph reached an integer xhat in the first stage
- # not terribly efficient...
- dist, stagenum, varpair = self.Select_var_by_dist_from_xbar(ph)
- if stagenum is None:
- if options.BBPH_Verbose is True:
- print ("BBPH: All at xbar, so trying latest converged")
- latestSN, (latestTN, latestVI), couldlatest = self.Select_var_by_latest_convergence(ph)
- if not couldlatest:
- if options.BBPH_Verbose is True:
- print ("resorting to unbranched")
- # use the vars with "latest" names even though that is not the correct name...
- latestSN, latestTN, latestVI = self.Select_var_by_first_unbranched(ph)
- if latestSN is None: # we struck out...
- return None, None
- else:
- latestSN = None # good housekeeping
- if stagenum == None or (stagenum != None and latestSN != None and latestSN < stagenum):
- # we want the latest or the unbranched because they are all we have or an earlier stage
- if options.BBPH_Verbose is True:
- print ("Based on latest converged or unbranched")
- varpair = (latestTN, latestVI)
- else:
- if options.BBPH_Verbose is True:
- print ("Based on dist from xbar")
- node_name, variable_id = varpair
- tree_node = ph._scenario_tree._tree_node_map[node_name]
- varname, varindex = tree_node._variable_ids[variable_id]
- if options.BBPH_Verbose is True:
- print ("BBPH is branching on node=%s varid=%s; %s[%s]" % (node_name, str(variable_id), varname, varindex))
- #xbars = tree_node._xbars
- #xbar = xbars[variable_id]
- # major hack: just do binaries
- BPL = copy.deepcopy(self.BranchTupleList)
- if options.BBPH_Verbose is True:
- print ("Creating branch ", 0, 'down')
- BPL.append(((node_name, variable_id), 0, 'down'))
- bbnodedown = BBPH_node(options, BranchTupleList=BPL, Parent=self, isTerminal=False)
- self.ChildrenOBs[bbnodedown] = None
- BPL = copy.deepcopy(self.BranchTupleList)
- if options.BBPH_Verbose is True:
- print ("Creating branch ", 1, 'up')
- BPL.append(((node_name, variable_id), 1, 'up'))
- bbnodeup = BBPH_node(options, Parent=self, BranchTupleList=BPL, isTerminal=False)
- self.ChildrenOBs[bbnodeup] = None
-
- return bbnodeup, bbnodedown
-
- def Process_Node(self, GIB, NoBranchEpsilon):
- # GIB is the global inner bound (upper for min)
- # don't bother to branch if OB and GIB are within NoBranchEpsilon
-
- # create a ph object and run the solver;
- # return five values, but some or all might be None
- # if feasible and not fathomed
- # return terminalflag, Outerbound, InnerBound, xhat
- # if not terminal and abs(inner_bound - outer_bound) > tolerance:
- # return two new BB_nodes
- # Note: you could look at the node and see if it is terminal before processing
-
- # create the ph object
- # remember to terminate on LB above global UB (or the opposite)
- if GIB != None:
- if options.BBPH_Verbose is True:
- print ("Setting PH outer-bound-convergence=",GIB," which is the global inner bound")
- options.enable_outer_bound_convergence = True
- options.outer_bound_convergence_threshold = GIB
-
- with phinit.PHFromScratchManagedContext(self._options) as phobject:
-
- # because the plugins "live" across PH instances, we need
- # to reset them after creating a new PH object. otherwise,
- # they will inherit prior PH execution state.
- phutils.reset_ph_plugins(phobject)
-
- sense = phobject._objective_sense # sort of wierd that we have to pass this out...
-
- # TBD: capture the current bounds for the vars in question
-
- # transmit the var bounds
- if self.BranchTupleList is not None:
- if isinstance(phobject._solver_manager,
- pyomo.solvers.plugins.smanager.\
- phpyro.SolverManager_PHPyro):
- ahs = phsolverserverutils.transmit_external_function_invocation(
- phobject,
- thisfile,
- "external_branch_on_variable",
- invocation_type=(phsolverserverutils.InvocationType.\
- PerScenarioInvocation),
- return_action_handles=True,
- function_args=(self.BranchTupleList, options.BBPH_Verbose,))
- phobject._solver_manager.wait_all(ahs)
- else:
- for scenario in phobject._scenario_tree.scenarios:
- external_branch_on_variable(phobject,
- phobject._scenario_tree,
- scenario,
- self.BranchTupleList,
- options.BBPH_Verbose )
-
- # solve and process solution
- phretval = phobject.solve()
-
- # TBD: reset var the bounds (see tbd for capture)
-
- if phretval is not None:
- Counts["Infeasible"] += 1
- if options.BBPH_Verbose is True:
- print("PH Iteration zero solve was not successful for scenario: "+str(phretval))
- return sense, None, None, None, None, None
-
- self.InnerBound = IB = phobject._best_reported_inner_bound
- self.OuterBound = OB = phobject._best_reported_outer_bound
- Xhat = copy.deepcopy(phobject._xhat)
-
- if self.Parent is not None and OB is not None:
- if options.BBPH_Verbose is True:
- print ("Sending OB to parent node for processing")
- self.Parent.ProcessNewChildOB(self, sense)
-
- # don't branch if IB==OB or if it terminated on bound threshold
- if OB is not None and GIB is not None and \
- ((sense == minimize and OB > GIB) or (sense == maximize) and OB < GIB):
- Counts["Pruned by Bound Threshhold"] += 1
- if options.BBPH_Verbose is True:
- print ("Not branching; pruned by global ",IBName(sense))
- return sense, OB, IB, None, None, None # pruned
-
- if IB is not None and OB is not None and abs(IB-OB) <= NoBranchEpsilon:
- Counts["Pruned by IB == OB"] += 1
- if options.BBPH_Verbose is True:
- print ("not branching because IB=%f, OB=%f and NoBranchEpsilon = %f"
- % (IB, OB, NoBranchEpsilon))
- return sense, OB, IB, Xhat, None, None # terminal node
-
- # branch
- bbnodeup, bbnodedown = self.Branch(phobject)
-
- if options.BBPH_Verbose is True:
- print ("Returning from Process_node and reporting OB,IB=",OB,IB)
- return sense, OB, IB, Xhat, bbnodedown, bbnodeup
-
-
-########### BB Node List Processing (e.g., searching for interesting nodes) ######
-def Furthest_Outer_Bound(ndList, sense):
- Furthest = None
- for nd in ndList:
- if nd.OuterBound is not None and (Furthest is None or isBetter(Furthest.OuterBound, sense, ndList.OuterBound)):
- Furthest = nd
-
-def Most_Promising_Node(ndList, GIB, GOB, sense):
- # search the node list using global inner bound GIB and outer bound GOB
- return Furthest_Outer_Bound(ndList, sense) # for now...
-
-if __name__ == "__main__":
-
- ##======================= Main ========================
- # two lists: active nodes and processed nodes
- # when a list is taken off the active list, it is processed, added to the processed list
- # and deleted from the active list. If it spawns children, they are added to the active list
- # NOTE: really, there are two active lists: one "normal" and one for so-called terminal nodes
-
- start_time = time.time()
-
- try:
- ph_options_parser = phinit.construct_ph_options_parser("python ./BBPH.py [options]")
- AddBBOptions(ph_options_parser)
- ###(options, args) = ph_options_parser.parse_args(args=sys.argv)
- options = ph_options_parser.parse_args(args=sys.argv[1:])
- except SystemExit as _exc:
- #? the parser throws a system exit if "-h" is specified - catch
- #? it to exit somewhat gracefully.
- sys.exit(0)
- #pass
- ###return _exc.code
-
- if options.enable_outer_bound_convergence == True:
- print ("\nWARNING: the outer-bound-convergence option will be overwritten\n")
-
- ActiveNodeList = []
- TerminalNodeList = []
- ProcessedNodeList = []
- GlobalInnerBound = options.BBPH_Initial_IB # None # best
- GlobalXhat = None # best
- GlobalOuterBound = options.BBPH_Initial_OB # None # furthest
- emptyBPL = []
- NoBranchEpsilon = options.BBPH_No_Branch_Epsilon # an absolute abs(IB-OB)
-
- def Gap_met():
- # return True (and talk about it) if the global bound difference is inside the gap
- if GlobalInnerBound is not None and GlobalOuterBound is not None \
- and abs(GlobalInnerBound - GlobalOuterBound) <= options.BBPH_Terminate_Epsilon:
- print ("Terminating because GlobalIB=%f, GlobalOB=%f and Terminate-Epsilon = %f"
- % (GlobalIB, GlobalOB, options.BBPH_Terminate_Epsilon))
- return True
- return False
-
- RootNode = BBPH_node(options,emptyBPL) # create the rootnode
- ActiveNodeList.append(RootNode)
-
- OuterIter = 0 # simple iteration count
- IterLim = options.BBPH_OuterIterationLimit
-
- while len(ActiveNodeList) > 0 and (IterLim is None or OuterIter <= IterLim) and not Gap_met():
- OuterIter += 1
- print ("BBPH OuterIter=",OuterIter)
- bbnode = ActiveNodeList[0]
- sense, OB, IB, Xhat, nd0, nd1 = bbnode.Process_Node(GlobalInnerBound, NoBranchEpsilon)
- if IB is not None and (GlobalInnerBound is None or isBetter(IB, sense, GlobalInnerBound)):
- GlobalInnerBound = IB
- print ("New best global (",IBName(sense),") GlobalInnerBound=",GlobalInnerBound)
- GlobalXhat = Xhat
- if OB is not None:
- # propogate OB info up... TBD
- # If the new OB bound is a "worse" value (tighter; closer to IB; better as a bound)
- if GlobalOuterBound is None or isBetter(GlobalOuterBound, sense, RootNode.OuterBound):
- GlobalOuterBound = RootNode.OuterBound
- print ("New global (",OBName(sense),") GlobalOuterBound=",GlobalOuterBound)
- if Xhat is not None and nd0 is None and nd1 is None:
- TerminalNodeList.append(bbnode)
- else:
- ProcessedNodeList.append(bbnode)
- if nd0 is not None:
- ActiveNodeList.append(nd0)
- if nd1 is not None:
- ActiveNodeList.append(nd1)
- del ActiveNodeList[0]
- print ("The active node list has %d entries" % (len(ActiveNodeList)))
- print ("There are now %d terminal nodes." % (len(TerminalNodeList)))
- print ("Time so far is %f seconds." % (time.time() - start_time))
-
- end_time = time.time()
- print ("Final Global",IBName(sense)," ,", str(GlobalInnerBound))
- print ("Final Global",OBName(sense)," ,", str(GlobalOuterBound))
-
- print ("Begin Final Summary.")
- print ("Final Obj,", str(GlobalInnerBound))
- print ("Final Bound,", str(GlobalOuterBound))
- print ("Final elapsed time (sec), %f" % (end_time - start_time))
- print ("Final Outer Iters,", str(OuterIter))
- print ("Final Terminal Node Count,",str(len(TerminalNodeList)))
- print ("Final Active Node Count,",str(len(ActiveNodeList)))
- for c in Counts:
- print (c,",",Counts[c])
- print ("Input IterLim,",str(IterLim))
- print ("Input Termination Epsilon,",str(options.BBPH_Terminate_Epsilon))
- print ("End Final Summary.")
-
- TLlen = len(TerminalNodeList)
- print ("There are %d terminal nodes to process." % TLlen)
-
- # we are going to solve the EF for the terminal nodes (note that leaf integers will not be fixed)
- #NOTE: you don't need to re-process nodes with IB and OB close enough together
- if TLlen > 0:
- print ("terminal nodes")
- print ("Index: ", IBName(sense), OBName(sense))
- for ndnum in range(TLlen): # want index number
- nd = TerminalNodeList[ndnum]
- print (ndnum, ": ", nd.InnerBound," , ",nd.OuterBound)
- print ("Branching lists for terminal nodes")
- for ndnum in range(TLlen):
- nd = TerminalNodeList[ndnum]
- print (ndnum,":")
- for bt in nd.BranchTupleList:
- print (bt)
- print("----")
diff --git a/pyomo/pysp/bbph/archive/sizes.bash b/pyomo/pysp/bbph/archive/sizes.bash
deleted file mode 100644
index 0ba054f0b74..00000000000
--- a/pyomo/pysp/bbph/archive/sizes.bash
+++ /dev/null
@@ -1,17 +0,0 @@
-#! /bin/bash
-# test the bb code
-
-EDIR=../../../examples/pysp/sizes
-#EDIR=$BASEDIR/pyomo/src/pyomo/examples/pysp/farmerWintegers
-#EDIR=$BASEDIR/pyomo/src/pyomo/examples/pysp/networkflow
-#EDIR=/export/home/dlwoodruff/software/pyomo/src/pyomo/examples/pysp/sizes
-#EDIR=/home/dlwoodruff/data/pyomoexamples/pyomo_examples_1886/pysp/sizes
-#EDIR=$BASEDIR/pyomo/src/pyomo/pyomo/pysp/tests/examples/test_model/twovarslack
-#EDIR=$BASEDIR/pyomo/src/pyomo/pyomo/pysp/tests/examples/test_model/feas
-#EDIR=../impossible
-
-python bbph.py -i $EDIR/SIZES3 -m $EDIR/models --default-rho=1 --user-defined-extension=pyomo.pysp.plugins.phboundextension --traceback --BBPH-Verbose --BBPH-OuterIterationLimit=4 --max-iterations=40 --or-convergers --termdiff-threshold=0.005
-
-#python BBPH.py -i $EDIR/SIZES3 -m $EDIR/models --default-rho=1 --user-defined-extension=pyomo.pysp.plugins.phboundextension --traceback --BBPH-OuterIterationLimit=5 --max-iterations=5 #--pyro-host=localhost --solver-manager=phpyro --phpyro-required-workers=3
-
-#python BBPH.py -i $EDIR -m $EDIR --default-rho=1 --user-defined-extension=pyomo.pysp.plugins.phboundextension --traceback --BBPH-OuterIterationLimit=5 --max-iterations=5 #--pyro-host=localhost --solver-manager=phpyro --phpyro-required-workers=3
diff --git a/pyomo/pysp/bbph/archive/test.bash b/pyomo/pysp/bbph/archive/test.bash
deleted file mode 100644
index e81c1b1ee41..00000000000
--- a/pyomo/pysp/bbph/archive/test.bash
+++ /dev/null
@@ -1,17 +0,0 @@
-#! /bin/bash
-# fast test of the bb code; mainly just looking for python error messages
-
-EDIR=../../../examples/pysp/sizes
-#EDIR=$BASEDIR/pyomo/src/pyomo/examples/pysp/farmerWintegers
-#EDIR=$BASEDIR/pyomo/src/pyomo/examples/pysp/networkflow
-#EDIR=/export/home/dlwoodruff/software/pyomo/src/pyomo/examples/pysp/sizes
-#EDIR=/home/dlwoodruff/data/pyomoexamples/pyomo_examples_1886/pysp/sizes
-#EDIR=$BASEDIR/pyomo/src/pyomo/pyomo/pysp/tests/examples/test_model/twovarslack
-#EDIR=$BASEDIR/pyomo/src/pyomo/pyomo/pysp/tests/examples/test_model/feas
-#EDIR=../impossible
-
-python bbph.py -i $EDIR/SIZES3 -m $EDIR/models --default-rho=1 --user-defined-extension=pyomo.pysp.plugins.phboundextension --traceback --BBPH-Verbose --BBPH-OuterIterationLimit=2 --max-iterations=30 --or-convergers --termdiff-threshold=0.005
-
-#python BBPH.py -i $EDIR/SIZES3 -m $EDIR/models --default-rho=1 --user-defined-extension=pyomo.pysp.plugins.phboundextension --traceback --BBPH-OuterIterationLimit=5 --max-iterations=5 #--pyro-host=localhost --solver-manager=phpyro --phpyro-required-workers=3
-
-#python BBPH.py -i $EDIR -m $EDIR --default-rho=1 --user-defined-extension=pyomo.pysp.plugins.phboundextension --traceback --BBPH-OuterIterationLimit=5 --max-iterations=5 #--pyro-host=localhost --solver-manager=phpyro --phpyro-required-workers=3
diff --git a/pyomo/pysp/bbph/archive/testnetflow.bash b/pyomo/pysp/bbph/archive/testnetflow.bash
deleted file mode 100644
index 2db3a7134ee..00000000000
--- a/pyomo/pysp/bbph/archive/testnetflow.bash
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/bash
-IDIR=../../../examples/pysp/networkflow
-
-python bbph.py -i $IDIR/1ef10 -m $IDIR/models --rho-cfgfile=$IDIR/config/rhosetter0.5 --enable-ww-extensions --ww-extension-cfgfile=$IDIR/config/wwph-fixlag10.cfg --ww-extension-suffixfile=$IDIR/config/wwph.suffixes --default-rho=1 --user-defined-extension=pyomo.pysp.plugins.phboundextension --traceback --max-iterations=20 --BBPH-OuterIterationLimit=3 --xhat-method=config/slam.suffixes --or-convergers --termdiff-threshold=0.005
-
diff --git a/pyomo/pysp/bbph/brancher.py b/pyomo/pysp/bbph/brancher.py
deleted file mode 100644
index a63848fc38a..00000000000
--- a/pyomo/pysp/bbph/brancher.py
+++ /dev/null
@@ -1,306 +0,0 @@
-# DELETE THIS COMMENT: we need control over getting sorgw to run first
-# brancher.py
-# find a branching var for bbph
-# pickle a special little object
-# note: it could be "n/a"
-# As of Sept 2016 this is heavily biased toward binaries
-
-outputfilename = "brancherout.p"
-
-import time
-import os
-import pickle # so we can send index across with its type (I hope)
-
-import pyomo.common.plugin
-from pyomo.pysp import phextension
-import pyomo.solvers.plugins.smanager.phpyro
-from pyomo.pysp import phsolverserverutils
-
-from six import iteritems
-
-thisfile = os.path.abspath(__file__)
-
-#
-# Create a dictionary mapping scenario tree id to
-# variable bounds
-#
-def collect_node_variable_bounds(tree_node):
- assert tree_node._variable_datas is not None
- var_bounds = {}
- for variable_id, vardatas in iteritems(tree_node._variable_datas):
- vardata = vardatas[0][0]
- if not vardata.is_expression_type():
- var_bounds[variable_id] = (vardata.lb, vardata.ub)
- else:
- # Expression
- var_bounds[variable_id] = (None,None)
-
- return var_bounds
-
-# This function will be executed on a phsolverserver using
-# the transmit_external_function_invocation_to_worker utility
-def external_collect_variable_bounds(ph,
- scenario_tree,
- scenario_or_bundle,
- node_list):
-
- variable_bounds = {}
- for node_name in node_list:
- tree_node = scenario_tree._tree_node_map[node_name]
- variable_bounds[node_name] = collect_node_variable_bounds(tree_node)
-
- return variable_bounds
-
-
-#==================================================
-class brancherextension(pyomo.common.plugin.SingletonPlugin):
-
- pyomo.common.plugin.implements(phextension.IPHExtension)
-
- # the below is a hack to get this extension into the
- # set of IPHExtension objects, so it can be queried
- # automagically by PH.
- pyomo.common.plugin.alias("brancherextension")
-
- def __init__(self, *args, **kwds):
-
- self.Tol = 1e-6
-
-#==================================================
- def reset(self, ph):
- self.__init__()
-
- def pre_ph_initialization(self,ph):
- # we don't need to intefere with PH initialization.
- pass
-#==================================================
-
-#==================================================
- def post_instance_creation(self, ph):
- # we don't muck with the instances.
- pass
-
-#==================================================
- def post_ph_initialization(self, ph):
- pass
-
-#==================================================
- def post_iteration_0_solves(self, ph):
- pass
-
-#==================================================
- def post_iteration_0(self, ph):
- pass
-
-#==================================================
- def pre_iteration_k_solves(self, ph):
- pass
-
-#==================================================
- def post_iteration_k_solves(self, ph):
- pass
-
-#==================================================
- def post_iteration_k(self, ph):
- pass
-
-#==================================================
- def post_ph_execution(self, ph):
-
- ####################################################
- # copied from the archived, serial version of BBPH
- # find a var to branch on and pickle some info about it
- # As of Sept 2016, this is getting pretty hacked up
-
-
- start_time = time.time()
- gotit, varpair = self.Select_var_by_W_dispersion(ph)
- if gotit:
- source = "sorgw"
- else:
- dist, stagenum, varpair = self.Select_var_by_dist_from_xbar(ph)
- if stagenum is not None:
- source = "Based on dist from xbar"
- else:
- # All at xbar, so trying latest converged
- latestSN, (latestTN, latestVI), couldlatest = self.Select_var_by_latest_convergence(ph)
- source = "Latest Convergence"
- if not couldlatest:
- # print ("resorting to unbranched")
- # use the vars with "latest" names even though that is not the correct name...
- latestSN, latestTN, latestVI = self.Select_var_by_first_unbranched(ph)
- if latestSN is None: # we struck out...
- xfer = ("N/A","N/A","N/A","FAILED TO FIND A BRANCHING VAR")
- pickle.dump( xfer, open( outputfilename, "wb" ) )
- print ("Time in brancher.py=",time.time()-start_time)
- return
- varpair = (latestTN, latestVI)
-
- node_name, variable_id = varpair
- tree_node = ph._scenario_tree._tree_node_map[node_name]
- varname, varindex = tree_node._variable_ids[variable_id]
- xfer = (node_name, varname, varindex, source)
- pickle.dump( xfer, open( outputfilename, "wb" ) )
-
- print ("Time in brancher.py=",time.time()-start_time)
-
-#=========================
-
- def Select_var_by_W_dispersion(self, ph):
- # assuming the solve is complete, find a good variable on which to branch
- # Sept 2016
- # Per a suggestion by John S, maybe we want a var where W is highly dispersed, but the var still didn't converge
- # but I'm not sure how to measure the dispersion in an appropriate way,
- # I think what we really want is a var where W behaved badly (in the sorgw.py sense)
- # or a var that cycled (but unlike WW, we want the "most expensive" var that cycled)
- # Wait! Now that I think about it, maybe max Range (as suggested by John) is an OK proxy (it will also be influenced a lot by rho)
- # for "most expensive."
- # Idea (Sept 2016, DLW):
- # Read the sorgw interesting variables file
- # you need to lowest stage with a non-converged var whether it is in the file or not
- # so first, find that stage
- # Loop through the sorgw vars and keep only those that are not converged and from that stage
- # from among those, run a contest to find the highest W range
- # .... Let's let sorgw.py do this work by sticking something on ph
- # ASSUME sorgw was root node only !!!
- root_node_name = ph._scenario_tree.findRootNode()._name
-
- if hasattr(ph, "_sorgw_BiggestLoser"):
- print ("sorgw_BiggestLoser="+str(ph._sorgw_BiggestLoser))
- return True, (root_node_name, ph._sorgw_BiggestLoser)
- else:
- return False, ("N/A", 0)
-
-#=========================
- def Select_var_by_dist_from_xbar(self, ph):
- # assuming the solve is complete, find a good variable on which to branch
- # we want the biggest dist from the lowest stage with a non-zero...
- # this is looking for an outlier with general ints, but for binaries, it picks the var
- # with xbar closest to 1/2
- biggestdist = 0
- stagenum = 0
- # TBD: we probably should go all the way out, as in the paper...
- for stage in ph._scenario_tree._stages[:-1]:
- stagenum += 1
- for tree_node in stage._tree_nodes:
- xbars = tree_node._xbars
- mins = tree_node._minimums
- maxs = tree_node._maximums
- for scen in tree_node._scenarios:
- for variable_id in tree_node._standard_variable_ids:
- if tree_node.is_variable_boolean(variable_id): # for now...
- diff = scen._x[tree_node._name][variable_id] - xbars[variable_id]
- sest = (maxs[variable_id] - mins[variable_id]) / 4.0 # close enough to stdev
- if sest > ph._integer_tolerance: # actually, it should be at least 1/4 if not zero
- dist = min(3, abs(diff)/sest) # truncated z score
- if dist > biggestdist:
- biggestdist = dist
- winner = (tree_node._name, variable_id)
- if biggestdist > 0:
- return biggestdist, stagenum, winner
- return None, None, None
-
-#=========================
- def Select_var_by_latest_convergence(self, ph):
- # assuming the solve is complete, find a good variable on which to branch
- # we want one that converged last
- # return a boolean to indicate if Conv iters is provided
- LeastConvergedIters = ph._current_iteration+1 # how long have we been converged
- winner = None
- stagenum = 0
- for stage in ph._scenario_tree._stages[:-1]:
- stagenum += 1
- for tree_node in stage._tree_nodes:
- if not hasattr(tree_node, '_num_iters_converged'):
- print ("warning: _num_iters_converged not provided by wwextensions")
- return None, (None, None), False
- ConIters = tree_node._num_iters_converged
- for scen in tree_node._scenarios:
- for variable_id in tree_node._standard_variable_ids:
- if tree_node.is_variable_boolean(variable_id): # for now...
- if not hasattr(tree_node, "_variable_bounds"):
- self._collect_node_variable_bounds(ph, tree_node)
- (lbval, ubval) = tree_node._variable_bounds[variable_id]
- if (lbval is None or ubval is None or lbval != ubval): # don't want a do-over
- if ConIters[variable_id] < LeastConvergedIters:
- LeastConvergedIters = ConIters[variable_id]
- winner = (tree_node._name, variable_id)
- if winner is not None:
- ### if options.BBPH_Verbose is True:
- print ("LeastConvergedIters=",LeastConvergedIters)
- return stagenum, winner, True
- return None, (None, None), True
-
-#=========================
- def Select_var_by_first_unbranched(self, ph):
- # assuming the solve is complete, find a variable on which to branch
- # here we also will branch on derived variables
-
- def Process_var(stage, tree_node, variable_id):
- # return True if this is the var to use
- varname, varindex = tree_node._variable_ids[variable_id]
- #print ("looking at stagenum=%d varid=%s; %s[%s]" % (stagenum, str(variable_id), varname, varindex))
- if tree_node.is_variable_boolean(variable_id): # as of Aug 2015, TBD: general ints
- ### if options.BBPH_Verbose is True:
- print ("looking hard at stage=%s varid=%s; %s[%s]" % (stage.name, str(variable_id), varname, varindex))
- # note: we need to know if we have branched on it to get here
- if not hasattr(tree_node, "_variable_bounds"):
- self._collect_node_variable_bounds(ph, tree_node)
- (lbval, ubval) = tree_node._variable_bounds[variable_id]
- return lbval is None or ubval is None or lbval != ubval
-
- stagenum = 0
- for stage in ph._scenario_tree._stages[:-1]:
- stagenum += 1
- for tree_node in stage._tree_nodes:
- for variable_id in tree_node._standard_variable_ids:
- is_it = Process_var(stage, tree_node, variable_id)
- if is_it:
- return stagenum, tree_node._name, variable_id
- for variable_id in tree_node._derived_variable_ids:
- is_it = Process_var(stage, tree_node, variable_id)
- if is_it:
- return stagenum, tree_node._name, variable_id
-
- return None, None, None
-
-#==================
-
- #
- # Store the variable bounds on the tree node by variable id
- # If this is parallel ph, then we need to do this by transmitting
- # an external function invocation that collects the variable
- # bounds from a given list of node names. We do this in such
- # a way as to minimize the amount of data we need to transfer
- # (e.g., in the case of a two stage problem, we request information
- # about the root node from only one of the PH solver servers)
- #
-
- def _collect_node_variable_bounds(self, ph, tree_node):
-
- if not isinstance(ph._solver_manager,
- pyomo.solvers.plugins.\
- smanager.phpyro.SolverManager_PHPyro):
-
- tree_node._variable_bounds = \
- collect_node_variable_bounds(tree_node)
-
- else:
- # NOTE: as of 24 May 2016 this does not work in archiveBBPH either
- # edited by dlw 24 May 2016
- object_name = ph._scenario_tree._scenarios[0]._name
- ah = \
- phsolverserverutils.transmit_external_function_invocation_to_worker(
- ph,
- object_name,
- thisfile,
- "external_collect_variable_bounds",
- return_action_handle=True,
- function_args=((tree_node.name,),))
-
- results = ph._solver_manager.wait_for(ah)
- # dlw ?? object_name = action_handle_map[ah]
- assert tree_node.name in results
- tree_node._variable_bounds = results[tree_node.name]
-
-
diff --git a/pyomo/pysp/bbph/doc/BBPH.tex b/pyomo/pysp/bbph/doc/BBPH.tex
deleted file mode 100644
index 35ea7703914..00000000000
--- a/pyomo/pysp/bbph/doc/BBPH.tex
+++ /dev/null
@@ -1,189 +0,0 @@
-\documentclass[12pt]{article}
-
-\usepackage[margin=1in]{geometry} % set the margins to 1in on all sides
-\usepackage{graphicx} % to include figures
-\usepackage{amsmath} % great math stuff
-\usepackage{amsfonts} % for blackboard bold, etc
-\usepackage{amsthm} % better theorem environments
-\usepackage{url}
-
-% various theorems, numbered by section
-
-\newtheorem{thm}{Theorem}[section]
-\newtheorem{lem}[thm]{Lemma}
-\newtheorem{prop}[thm]{Proposition}
-\newtheorem{cor}[thm]{Corollary}
-\newtheorem{conj}[thm]{Conjecture}
-
-\DeclareMathOperator{\id}{id}
-\DeclareMathOperator*{\argmin}{argmin}
-
-\newcommand{\bd}[1]{\mathbf{#1}} % for bolding symbols
-\newcommand{\RR}{\mathbb{R}} % for Real numbers
-\newcommand{\ZZ}{\mathbb{Z}} % for Integers
-\newcommand{\col}[1]{\left[\begin{matrix} #1 \end{matrix} \right]}
-\newcommand{\comb}[2]{\binom{#1^2 + #2^2}{#1+#2}}
-
-
-\begin{document}
-
-
-%\nocite{*}
-
-\title{bbph.py}
-
-\author{David L. Woodruff \\ Graduate School of Management, University of California Davis, \\ Davis, CA 95616-8609, USA \\ dlwoodruff@ucdavis.edu}
-\maketitle
-
-\section{Introduction}
-
-See \cite{bbphpaper} for
-background on bbph.
-This document gives some help running bbph.py
-that is part of the Pyomo (\url{www.pyomo.org}) family.
-The code and document are presently designed for
-use by {\em researchers} rather than modelers or
-end-users.
-The document assumes that you have expertise using PySP \cite{pyspmpc}
-and its \verb|runph| command as well as an ability read Python and bash scripts.
-
-The basic idea is that bbph.py manages an {\em outer} branch and bound tree with so-called outer branch and bound nodes.
-To see a list of command arguments, use the Unix shell (i.e. terminal) command
-\begin{verbatim}
-python bbph.py --help
-\end{verbatim}
-The software has some flexibilty to support multiple environments, but to
-simplify this document, we will assume a shared-memory bash system.
-
-It is very unfortunate that we use the word {\em outer} for two
-things, but we do. The word is used to refer to the branch and bound
-nodes managed by bbph.py and the word is used again to refer to {\em
- outer bounds}, which are lower bounds for a minimization problem
-(and upper for a maximization problem). There are also {\em inner}
-bounds that are upper bounds for a minimization problem and
-lower bounds for a maximization problem.
-
-At each outer node, some integers are bounded. For binaries, this means they
-are fixed (as of November 2016, the code only supports binaries well
-and has only been tested with mixed and pure binary problems).
-
-\section{Script Options}
-
-As a practical matter of some importance, bbpy.py creates a sub-directory
-for each outer node and uses it for working space and output. The
-bbph.py option
-\begin{verbatim}
---BBPH-working-dir
-\end{verbatim}
-gives the full path to a directory that will be created or emptied and then
-used for these sub-dictories and other storage.
-
-For each outer node, runph is invoked via a bash script; actually
-two similar batch scripts, whose names are given
-by the bbph.py arguments
-\begin{verbatim}
---BBPH-ph-Script
-\end{verbatim}
-and the optional argument
-\begin{verbatim}
---BBPH-ph-Script-BBND0
-\end{verbatim}
-The bbpy.py software will manipulate these scripts and, in particular, it will
-replace some tokens in the scripts. One token in the runph command
-line in the ph script is specified by the bbpy.py option
-\begin{verbatim}
---BBPH-ph-options-token
-\end{verbatim}
-that will be replaced with runph options needed by bbph.py and another
-token is given by
-\begin{verbatim}
- --BBPH-pyro-ns-port-token
-\end{verbatim}
-That will be replaced by the pyro name server port that is being used
-for the particular outer node that is invoking runph (cryptic aside:
-at the time of this writing in November 2016, bbph creates a full set of machinery
-for each runph. Shutdown of name servers and solver servers
-is a bit of a mess right now. So if you use this on a machine
-that does not have a batch manager, you may need to shut down
-servers ``yourself'' somehow.)
-
-\subsection{Brancher plugin}
-
-The code relies on a plugin to be invoked by runph that will transmit branching
-information to bbph.py in a pickle file. A plug-in called
-brancher.py has been provided to you, which you will want to use
-until some day you write your own. The name of the plugin
-is given by
-\begin{verbatim}
---BBPH-brancher-plugin
-\end{verbatim}
-This plugin does {\em not} need to be named in the runph
-script whose name is provided to \verb|--BBPH-ph-Script|
-because bbph.py will ``put it in'' when it replaces the
-token given by \verb|--BBPH-ph-options-token|.
-
-The plugin needs to write a pickle file whose file name
-is given by the bbph.py option
-\begin{verbatim}
---BBPH-brancher-output
-\end{verbatim}
-that simply gives a file name. It does {\em not} give
-a path because this file will be in the
-outer node's sub-directory.
-
-\subsection{Special case of Var bounds in a cfg script}
-
-If you have a script that sets Var bounds (and you probably don't), then you
-need to specify it using the bbph.py option
-\begin{verbatim}
---BBPH-ph-bounds-cfgfile
-\end{verbatim}
-and do not put it in your runph script (because bbph.py needs
-to control bounds). Note: if the Var declarations in your
-model specify bounds, that is unaffected by this issue. This
-is only relevent for those few situations where a cfg script
-outside the model file is used to set Var bounds.
-
-\section{Example files}
-
-\subsection{bash Script to Drive bbph.py}
-
-This file is called test.bash in the release.
-
-\begin{verbatim}
-EDIR=/export/home/dlwoodruff/software/pyomo/src/pyomo/examples/pysp/sizes
-
-python BBPH.py -i $EDIR/SIZES3 -m $EDIR/models --default-rho=1 \
---user-defined-extension=pyomo.pysp.plugins.phboundextension \
---traceback --BBPH-working-dir=workingdir --BBPH-ph-Script=testphscript.bash \
---BBPH-ph-options-token=BBPHTOKEN --BBPH-Verbose \
---BBPH-brancher-plugin=/export/home/dlwoodruff/Documents/phbb/code/brancher \
---BBPH-brancher-output=brancherout.p \
---BBPH-OuterIterationLimit=4 --BBPH-PH-Launch-Limit=4
-\end{verbatim}
-
-\subsection{Script for runph at outer nodes}
-
-This file is called testphscript.bash.
-\begin{verbatim}
-#! /bin/bash
-EDIR=/export/home/dlwoodruff/software/pyomo/src/pyomo/examples/pysp/sizes
-
-export PYRO_NS_PORT=9090
-runph -i $EDIR/SIZES3 -m $EDIR/models --default-rho=1 \
---user-defined-extension=pyomo.pysp.plugins.phboundextension BBPHTOKEN
-\end{verbatim}
-
-Notice that BBPHTOKEN makes this script invalid if run directly, but
-
-\section{Installation}
-
-As of January 2017, the files for bbph.py are installed with Pyomo in the directory
-
-pyomo/pysp/bbph
-
-\bibliographystyle{plain}
-\bibliography{Refs}
-
-
-\end{document}
diff --git a/pyomo/pysp/bbph/doc/Refs.bib b/pyomo/pysp/bbph/doc/Refs.bib
deleted file mode 100644
index cc2646e9ed1..00000000000
--- a/pyomo/pysp/bbph/doc/Refs.bib
+++ /dev/null
@@ -1,588 +0,0 @@
-@article{bbphpaper,
-title = "BBPH: Using progressive hedging within branch and bound to solve multi-stage stochastic mixed integer programs ",
-journal = "Operations Research Letters ",
-volume = "",
-number = "",
-pages = " - ",
-year = "2016",
-note = "",
-issn = "0167-6377",
-doi = "http://dx.doi.org/10.1016/j.orl.2016.11.006",
-url = "http://www.sciencedirect.com/science/article/pii/S0167637716302152",
-author = "Jason Barnett and Jean-Paul Watson and David L. Woodruff",
-keywords = "Stochastic programming",
-keywords = "Progressive hedging",
-keywords = "Branch and bound "
-}
-
-
-@article{part2,
-author = {Kwok Cheung and Dinakar Gade and Cesar Silva Monroy and Sarah M. Ryan and
-Jean-Paul Watson and Roger J.-B. Wets and David L. Woodruff},
-title = {Scalable Stochastic Unit Commitment, Part 2: Solver Performance},
-journal = {Energy Systems},
-year = {to appear}
-}
-
-@article{claireLetters,
-title={Integration of progressive hedging and dual decomposition in stochastic integer programs},
-author = {G Guo and G Hackebeil and SM Ryan and JP Watson and DL Woodruff},
-journal = {Operations Research Letters},
-volume = {43},
-year = {2015},
-pages = { 311--316}
-}
-
-@article{bounds,
-author={D. Gade and G. Hackebeil and S.M. Ryan and J.P. Watson and R.J.B. Wets and D.L. Woodruff},
-title={Obtaining Lower Bounds From the Progressive Hedging Algorithm for Stochastic Mixed-Integer Programs},
-journal={Mathematical Programming, Series B},
-year={2016}
-}
-
-@book{BBText,
- author={G. Nemhauser and L. Wolsey},
- year = {1988},
- Title ={ Integer and Combinatorial Optimization},
- Publisher = {Wiley-Interscience}
-}
-
-
-@MISC{SIPB9607,
- author = {Maarten H. {van der Vlerk}},
- title = {Stochastic Integer Programming Bibliography},
- year = {1996-2007},
- howpublished = {World Wide Web,
- \url{http://www.eco.rug.nl/mally/biblio/sip.html}}
-}
-@article{held2005decomposition,
- title={A decomposition algorithm applied to planning the interdiction of stochastic networks},
- author={Held, Harald and Hemmecke, Raymond and Woodruff, David L},
- journal={Naval Research Logistics (NRL)},
- volume={52},
- number={4},
- pages={321--328},
- year={2005},
- publisher={Wiley Online Library}
-}
-@article{cormican1998stochastic,
- title={Stochastic network interdiction},
- author={Cormican, Kelly J and Morton, David P and Wood, R Kevin},
- journal={Operations Research},
- volume={46},
- number={2},
- pages={184--197},
- year={1998},
- publisher={INFORMS}
-}
-
-@article{janjarassuk2008reformulation,
- title={Reformulation and sampling to solve a stochastic network interdiction problem},
- author={Janjarassuk, Udom and Linderoth, Jeff},
- journal={Networks},
- volume={52},
- number={3},
- pages={120--132},
- year={2008},
- publisher={Wiley Online Library}
-}
-
-@article{santoso2005stochastic,
- title={A stochastic programming approach for supply chain network design under uncertainty},
- author={Santoso, Tjendera and Ahmed, Shabbir and Goetschalckx, Marc and Shapiro, Alexander},
- journal={European Journal of Operational Research},
- volume={167},
- number={1},
- pages={96--115},
- year={2005},
- publisher={Elsevier}
-}
-
-@article{KautWallace07,
-title = "Evaluation of scenario-generation methods for stochastic programming",
-author = "Michal Kaut and Wallace, {Stein W.}",
-year = "2007",
-volume = "3",
-number = "2",
-pages = "257--271",
-journal = "Pacific Journal of Optimization",
-}
-@incollection{EichhornHeitschRomisch11,
-year={2010},
-isbn={978-3-642-12685-7},
-booktitle={Handbook of Power Systems II},
-series={Energy Systems},
-editor={Rebennack, Steffen and Pardalos, Panos M. and Pereira, Mario V. F. and Iliadis, Niko A.},
-doi={10.1007/978-3-642-12686-4_15},
-title={Stochastic Optimization of Electricity Portfolios: Scenario Tree Modeling and Risk Management},
-url={http://dx.doi.org/10.1007/978-3-642-12686-4_15},
-publisher={Springer Berlin Heidelberg},
-keywords={Electricity; Energy trading; Multiperiod risk; Polyhedral risk functionals; Power portfolio; Risk management; Scenario reduction; Scenario tree approximation; Stochastic programming},
-author={Eichhorn, Andreas and Heitsch, Holger and R{\"o}misch, Werner},
-pages={405-432},
-language={English}
-}
-
-@incollection{PflugPichler11,
-author = {George Ch. Pflug and Alois Pichler},
-editor = {Marida Bertocchi and Giorgio Consigli and Michael A.H. Dempster},
-booktitle = {Stochastic Optimization Methods in Finance and Energy},
-title = {Approximations for Probability Distributions and Stochastic Optimization Problems},
-publisher = {Springer},
-year = {2011},
-volume = {163},
-series = {International Series in Operations Research and Management Science},
-}
-
-@incollection{W75,
- title={On the relation between stochastic and deterministic optimization},
- author={Wets, Roger J-B},
- booktitle={Control Theory, Numerical Methods and Computer Systems Modelling},
- pages={350--361},
- year={1975},
- publisher={Springer Berlin Heidelberg}
-}
-@incollection{W89,
- title={The aggregation principle in scenario analysis and stochastic optimization},
- author={Wets, Roger J-B},
- booktitle={Algorithms and Model Formulations in Mathematical Programming},
- editor={Wallace, Stein W},
- pages={91--113},
- year={1989},
- publisher={Springer-Verlag}
-}
-@article{NtaimoSen,
- title={The million-variable ``march'' for stochastic combinatorial optimization},
- author={Ntaimo, Lewis and Sen, Suvrajeet},
- journal={Journal of Global Optimization},
- volume={32},
- pages={385--400},
- year={2005},
- publisher={Springer}
-}
-@article{Takriti_etal,
- title={A stochastic model for the unit commitment problem},
- author={Takriti, Samer and Birge, John R and Long, Eric},
- journal={IEEE Transactions on Power Systems},
- volume={11},
- number={3},
- pages={1497--1508},
- year={1996},
- publisher={IEEE}
-}
-@article{Ruiz_etal09,
- title={Uncertainty management in the unit commitment problem},
- author={Ruiz, P. A. and Philbrick, R. C. and Zack, E. and Cheung K. W. and Sauer, P.W.},
- journal={IEEE Transactions on Power Systems},
- volume={24},
- number={2},
- pages={642--651},
- year={2009},
- publisher={IEEE}
-}
-@article{Papa_Oren13,
- title={Multiarea stochastic unit commitment for high wind penetration in a transmission constrained network},
- author={Papavasiliou, Anthony and Oren, Shmuel S.},
- journal={Operations Research},
- volume={61},
- number={3},
- pages={578--592},
- year={2013},
- publisher={INFORMS}
-}
-@article{ATS04,
- title={A finite branch and bound algorithm for two-stage stochastic integer programs},
- author={Ahmed, Shabbir and Tawarmalani, Mohit and Sahinidis, Nikolaus V},
- journal={Mathematical Programming, Series A},
- volume={100},
- number = {2},
- pages={355--377},
- year={2004},
- publisher={Springer}
-}
-
-@TechReport{AhmedBB,
- author={Shabbir Ahmed},
- year = 2013,
- title = {A scenario decomposition algorithm for 0-1 stochastic programs},
- institution = {ISYE, Georgia Tech}
-}
-
-
-@article{LW96,
- title={Progressive hedging and tabu search applied to mixed integer (0,1) multistage stochastic programming},
- author={L{\o}kketangen, Arne and Woodruff, David L},
- journal={Journal of Heuristics},
- volume={2},
- pages={111--128},
- year={1996},
- publisher={Kluwer}
-}
-@article{RW91,
- title={Scenarios and policy aggregation in optimization under uncertainty},
- author={Rockafellar, R Tyrrell and Wets, Roger J-B},
- journal={Mathematics of Operations Research},
- volume={16},
- number={1},
- pages={119--147},
- year={2004},
- publisher={INFORMS}
-}
-
-% dlw Jan 2016: fix the entry then delete this comment!!
-@article{Escudero09,
-author="Escudero, Laureano F.
-and Gar{\'i}n, Araceli
-and Merino, Mar{\'i}a
-and P{\'e}rez, Gloria",
-title="BFC-MSMIP: an exact branch-and-fix coordination approach for solving multistage stochastic mixed 0--1 problems",
-journal="TOP",
-year="2009",
-volume="17",
-number="1",
-pages="96--122",
-abstract="We present an exact algorithmic framework, so-called BFC-MSMIP, for optimizing multistage stochastic mixed 0--1 problems with complete recourse. The uncertainty is represented by using a scenario tree and lies anywhere in the model. The problem is modeled by a splitting variable representation of the Deterministic Equivalent Model of the stochastic problem, where the 0--1 variables and the continuous variables appear at any stage. The approach uses the Twin Node Family concept within the algorithmic framework, so-called Branch-and-Fix Coordination, for satisfying the nonanticipativity constraints in the 0--1 variables. Some blocks of additional strategies are used in order to show the performance of the proposed approach. The blocks are related to the scenario clustering, the starting branching and the branching order strategies, among others. Some computational experience is reported. It shows that the new approach obtains the optimal solution in all instances under consideration.",
-issn="1863-8279",
-doi="10.1007/s11750-009-0083-6",
-url="http://dx.doi.org/10.1007/s11750-009-0083-6"
-}
-
-@article{CS98,
- title={Dual decomposition in stochastic integer programming},
- author={Car{\o}e, Claus C and Schultz, R{\"u}diger},
- journal={Operations Research Letters},
- volume={24},
- number={1},
- pages={37--45},
- year={1999},
- publisher={Elsevier}
-}
-@misc{H11,
- title={The ConicBundle Library for Convex Optimization},
- author={Christoph Helmberg},
- year = {2011},
- howpublished={\url{http://www-user.tu-chemnitz.de/~helmberg/index.html}}
-}
-
-@article{MG11,
- title={User's Guide to ddsip--A {C} Package for the Dual Decomposition of Two-Stage Stochastic Programs with Mixed-Integer Recourse},
- author={M{\"a}rkert, A and Gollmer, R},
- journal={Department of Mathematics, University of Duisburg-Essen},
- year={2008}
-}
-
-@article{LMPS13,
- title={On parallelizing dual decomposition in stochastic integer programming},
- author={Lubin, Miles and Martin, Kipp and Petra, Cosmin and Sand{\i}k{\c{c}}{\i}, Burhaneddin},
- journal={Operations Research Letters},
- volume={41},
- number={3},
- pages={252--258},
- year={2013}
-}
-
-@article{GK87,
- title={Lagrangean decomposition: a model yielding stronger Lagrangean bounds},
- author={Guignard, Monique and Kim, Siwhan},
- journal={Mathematical programming},
- volume={39},
- number={2},
- pages={215--228},
- year={1987},
- publisher={Springer}
-}
-
-@book{NW88,
- title={Integer and combinatorial optimization},
- author={Nemhauser, George L and Wolsey, Laurence A},
- volume={18},
- year={1988},
- publisher={Wiley New York}
-}
-
-@article{M74,
- title={On the existence of optimal solutions to integer and mixed-integer programming problems},
- author={Meyer, Robert R},
- journal={Mathematical Programming},
- volume={7},
- number={1},
- pages={223--235},
- year={1974},
- publisher={Springer}
-}
-
-@article{DW60,
- title={Decomposition principle for linear programs},
- author={Dantzig, George B and Wolfe, Philip},
- journal={Operations research},
- volume={8},
- number={1},
- pages={101--111},
- year={1960},
- publisher={INFORMS}
-}
-
-@book{S85,
- title={Minimization methods for non-differentiable functions},
- author={Shor, Naum Zuselevich and Kiwiel, Krzysztof C and Ruszczynski, A},
- volume={3},
- year={1985},
- publisher={Springer-Verlag Berlin}
-}
-
-@book{HL93,
- title={Convex analysis and minimization algorithms},
- author={Hiriart-Urruty, Jean-Baptiste and Lemar{\'e}chal, Claude},
- year={1993},
- publisher={Springer}
-}
-
-@article{LS04,
- title={A branch-and-price algorithm for multistage stochastic integer programming with application to stochastic batch-sizing problems},
- author={Lulli, Guglielmo and Sen, Suvrajeet},
- journal={Management Science},
- volume={50},
- number={6},
- pages={786--796},
- year={2004},
- publisher={INFORMS}
-}
-
-@article{WW11,
- title={Progressive hedging innovations for a class of stochastic mixed-integer resource allocation problems},
- author={Watson, Jean-Paul and Woodruff, David L},
- journal={Computational Management Science},
- volume={8},
- number={4},
- pages={355--370},
- year={2011},
- publisher={Springer}
-}
-
-@article{CA06,
- title={A computationally efficient mixed-integer linear formulation for the thermal unit commitment problem},
- author={Carri{\'o}n, Miguel and Arroyo, Jos{\'e} M},
- journal={Power Systems, IEEE Transactions on},
- volume={21},
- number={3},
- pages={1371--1378},
- year={2006},
- publisher={IEEE}
-}
-
-@article{ST07,
- title={Dynamic testing of wholesale power market designs: An open-source agent-based framework},
- author={Sun, J. and Tesfatsion, L.},
- journal={Computational Economics},
- volume={30},
- number={3},
- pages={291--327},
- year={2007},
- publisher={Springer}
-}
-@article{MV91a,
- title={Solving multistage stochastic networks: an appplication of scenario aggregation},
- author={Mulvey, John M and Vladimirou, Hercules},
- journal={Networks},
- volume={21},
- pages={619--643},
- year={1991},
- publisher={John Wiley & Sons}
-}
-@article{MV91b,
- title={Applying the progressive hedging algorithm to stochastic generalized networks},
- author={Mulvey, John M and Vladimirou, Hercules},
- journal={Annals of Operations Research},
- volume={31},
- pages={399--424},
- year={1991},
- publisher={Baltzer}
-}
-@inproceedings{RRWWM13,
- title={Toward scalable, parallel progressive hedging for stochastic unit commitment},
- author={Ryan, Sarah M and Wets, Roger J-B and Woodruff, David L and Silva-Monroy, C{\'e}sar and Watson, Jean-Paul},
- booktitle={Power and Energy Society General Meeting, 2013 IEEE},
- year = {2013},
- organization={IEEE}
-}
-
-@article{guo2015integration,
- title={Integration of progressive hedging and dual decomposition in stochastic integer programs},
- author={Guo, Ge and Hackebeil, Gabriel and Ryan, Sarah M and Watson, Jean-Paul and Woodruff, David L},
- journal={Operations Research Letters},
- volume={43},
- number={3},
- pages={311--316},
- year={2015},
- publisher={North-Holland}
-}
-
-
-@article{pyspmpc,
- title={{PySP}: Modeling and solving stochastic programs in {Python}},
- author={Watson, J.P. and Woodruff, D.L. and Hart, W.E.},
- journal={Mathematical Programming Computation},
- volume={4},
- number={2},
- year={2012},
- publisher={Springer}
-}
-@article{pyomompc,
- title={{Pyomo}: Modeling and solving mathematical programs in {Python}},
- author={Hart, W.E. and Watson, J.P. and Woodruff, D.L.},
- journal={Mathematical Programming Computation},
- volume={3},
- number={3},
- year={2011},
- publisher={Springer}
-}
-@article{crainicetal14,
- title={Scenario grouping in a progressive hedging-based meta-heuristics for stochastic network design},
- author={Crainic, T.G. and Hewitt, M. and Rei, W.},
- journal={Computers and Operations Research},
- volume={43},
- pages={90--99},
- year={2014},
- publisher={Elsevier}
-}
-@article{boydetal11,
- title={Distributed Optimization and Statistical Learning via the Alternating Direction Method of Multipliers},
- author={Boyd, S. and Parihk, N. and Chu, E. and Peleato, B. and Eckstein, J.},
- journal={Foundations and Trends in Machine Learning},
- volume={3},
- issue={1},
- year={2011}
-}
-
-@article{WWW10,
- author = {J.-P. Watson and R. J.-B. Wets and D.L. Woodruff},
- title = {Scalable Heuristics for a Class of Chance-Constrained Stochastic Programs},
- journal = {INFORMS Journal on Computing},
- issue_date = {Fall 2010},
- volume = {22},
- number = {4},
- month = oct,
- year = {2010},
- issn = {1526-5528},
- pages = {543--554},
- numpages = {12},
- url = {http://dx.doi.org/10.1287/ijoc.1090.0372},
- doi = {10.1287/ijoc.1090.0372},
- acmid = {1878527},
- publisher = {INFORMS},
- address = {Institute for Operations Research and the Management Sciences (INFORMS),
- Linthicum, Maryland, USA},
-}
-
-@Article{Ruszczynski,
- author = {A. Ruszczy{\'n}ski},
- title = {Probabilistic Programming with Discrete Distributions and Precedence Constrained Knapsack Polyhedra},
- journal = {Mathematical Programming},
- year = {2002},
- volume = {93},
- pages = {195--215}
-}
-
-@Article{Fan2008,
-author="Fan, Yueyue
-and Liu, Changzheng",
-title="Solving Stochastic Transportation Network Protection Problems Using the Progressive Hedging-based Method",
-journal="Networks and Spatial Economics",
-year="2008",
-volume="10",
-number="2",
-pages="193--208",
-abstract="This research focuses on pre-disaster transportation network protection against uncertain future disasters. Given limited resources, the goal of the central planner is to choose the best set of network components to protect while allowing the network users to follow their own best-perceived routes in any resultant network configuration. This problem is formulated as a two-stage stochastic programming problem with equilibrium constraints, where the objective is to minimize the total expected physical and social losses caused by potential disasters. Developing efficient solution methods for such a problem can be challenging. In this work, we will demonstrate the applicability of progressive hedging-based method for solving large scale stochastic network optimization problems with equilibrium constraints. In the proposed solution procedure, we solve each modified scenario sub-problem as a mathematical program with complementary constraints and then gradually aggregate scenario-dependent solutions to the final optimal solution.",
-issn="1572-9427",
-doi="10.1007/s11067-008-9062-y",
-url="http://dx.doi.org/10.1007/s11067-008-9062-y"
-}
-
-@article{Crainic2011,
-author = {Crainic, Teodor Gabriel and Fu, Xiaorui and Gendreau, Michel and Rei, Walter and Wallace, Stein W.},
-title = {Progressive hedging-based metaheuristics for stochastic network design},
-journal = {Networks},
-volume = {58},
-number = {2},
-publisher = {Wiley Subscription Services, Inc., A Wiley Company},
-issn = {1097-0037},
-url = {http://dx.doi.org/10.1002/net.20456},
-doi = {10.1002/net.20456},
-pages = {114--124},
-keywords = {stochastic network design, metaheuristics, progressive hedging, lagrangean relaxation},
-year = {2011},
-}
-
-@article{Crainic2014,
- author = {Crainic, Teodor Gabriel and Hewitt, Mike and Rei, Walter},
- title = {Scenario Grouping in a Progressive Hedging-based Meta-heuristic for Stochastic Network Design},
- journal = {Comput. Oper. Res.},
- issue_date = {March, 2014},
- volume = {43},
- month = mar,
- year = {2014},
- issn = {0305-0548},
- pages = {90--99},
- numpages = {10},
- url = {http://dx.doi.org/10.1016/j.cor.2013.08.020},
- doi = {10.1016/j.cor.2013.08.020},
- acmid = {2565219},
- publisher = {Elsevier Science Ltd.},
- address = {Oxford, UK, UK},
- keywords = {Machine learning, Network design, Progressive hedging, Scenario clustering, Stochastic programs},
-}
-
-@article{Hvattum2006,
-author = {Lars M. Hvattum and Arne Løkketangen and Gilbert Laporte},
-title = {Solving a Dynamic and Stochastic Vehicle Routing Problem with a Sample Scenario Hedging Heuristic},
-journal = {Transportation Science},
-volume = {40},
-number = {4},
-pages = {421-438},
-year = {2006},
-doi = {10.1287/trsc.1060.0166},
-
-URL = {
- http://dx.doi.org/10.1287/trsc.1060.0166
-
-},
-eprint = {
- http://dx.doi.org/10.1287/trsc.1060.0166
-
-}
-
-}
-
-@Article{Hvattum2008,
-author="Hvattum, Lars Magnus
-and L{\o}kketangen, Arne",
-title="Using scenario trees and progressive hedging for stochastic inventory routing problems",
-journal="Journal of Heuristics",
-year="2008",
-volume="15",
-number="6",
-pages="527--557",
-abstract="The Stochastic Inventory Routing Problem is a challenging problem, combining inventory management and vehicle routing, as well as including stochastic customer demands. The problem can be described by a discounted, infinite horizon Markov Decision Problem, but it has been showed that this can be effectively approximated by solving a finite scenario tree based problem at each epoch. In this paper the use of the Progressive Hedging Algorithm for solving these scenario tree based problems is examined. The Progressive Hedging Algorithm can be suitable for large-scale problems, by giving an effective decomposition, but is not trivially implemented for non-convex problems. Attempting to improve the solution process, the standard algorithm is extended with locking mechanisms, dynamic multiple penalty parameters, and heuristic intermediate solutions. Extensive computational results are reported, giving further insights into the use of scenario trees as approximations of Markov Decision Problem formulations of the Stochastic Inventory Routing Problem.",
-issn="1572-9397",
-doi="10.1007/s10732-008-9076-0",
-url="http://dx.doi.org/10.1007/s10732-008-9076-0"
-}
-
-@article{dosSantos2009546,
-title = "Practical aspects in solving the medium-term operation planning problem of hydrothermal power systems by using the progressive hedging method ",
-journal = "International Journal of Electrical Power \& Energy Systems ",
-volume = "31",
-number = "9",
-pages = "546 - 552",
-year = "2009",
-note = "Power Systems Computation Conference (PSCC) 2008Power Systems Computation Conference (PSCC) 200816th Power Systems Computation Conference (PSCC), 2008 ",
-issn = "0142-0615",
-doi = "http://dx.doi.org/10.1016/j.ijepes.2009.03.032",
-url = "http://www.sciencedirect.com/science/article/pii/S0142061509000726",
-author = "Marcelo L.L. dos Santos and Edson Luiz da Silva and Erlon Cristian Finardi and Raphael E.C. Gonçalves",
-keywords = "Hydrothermal systems",
-keywords = "Medium-term operating planning",
-keywords = "Stochastic programming",
-keywords = "Progressive hedging "
-}
-
diff --git a/pyomo/pysp/bbph/test.bash b/pyomo/pysp/bbph/test.bash
deleted file mode 100644
index abdf3e58270..00000000000
--- a/pyomo/pysp/bbph/test.bash
+++ /dev/null
@@ -1,11 +0,0 @@
-#! /bin/bash
-# test the bb code
-
-BDIR=/home/woodruff/software/pyomo
-EDIR=$BDIR/examples/pysp/sizes
-
-python BBPH.py -i $EDIR/SIZES3 -m $EDIR/models --default-rho=1 --user-defined-extension=pyomo.pysp.plugins.phboundextension --traceback --BBPH-working-dir=workingdir --BBPH-ph-Script=testphscript.bash --BBPH-ph-options-token=BBPHTOKEN --BBPH-Verbose --BBPH-brancher-plugin=/export/home/dlwoodruff/Documents/phbb/code/brancher --BBPH-brancher-output=brancherout.p --BBPH-OuterIterationLimit=4 --BBPH-PH-Launch-Limit=4
-
-#python BBPH.py -i $EDIR/SIZES3 -m $EDIR/models --default-rho=1 --user-defined-extension=pyomo.pysp.plugins.phboundextension --traceback --BBPH-OuterIterationLimit=5 --max-iterations=5 #--pyro-host=localhost --solver-manager=phpyro --phpyro-required-workers=3
-
-#python BBPH.py -i $EDIR -m $EDIR --default-rho=1 --user-defined-extension=pyomo.pysp.plugins.phboundextension --traceback --BBPH-OuterIterationLimit=5 --max-iterations=5 #--pyro-host=localhost --solver-manager=phpyro --phpyro-required-workers=3
diff --git a/pyomo/pysp/bbph/testphscript.bash b/pyomo/pysp/bbph/testphscript.bash
deleted file mode 100644
index 323a9011cac..00000000000
--- a/pyomo/pysp/bbph/testphscript.bash
+++ /dev/null
@@ -1,9 +0,0 @@
-#! /bin/bash
-EDIR=/home/woodruff/software/pyomo/examples/pysp/sizes
-
-export PYRO_NS_PORT=9090
-runph -i $EDIR/SIZES3 -m $EDIR/models \
- --default-rho=1 \
- --user-defined-extension=pyomo.pysp.plugins.phboundextension \
- --traceback BBPHTOKEN
-
diff --git a/pyomo/pysp/benders.py b/pyomo/pysp/benders.py
deleted file mode 100644
index 0cc0b165087..00000000000
--- a/pyomo/pysp/benders.py
+++ /dev/null
@@ -1,62 +0,0 @@
-# ___________________________________________________________________________
-#
-# Pyomo: Python Optimization Modeling Objects
-# Copyright 2017 National Technology and Engineering Solutions of Sandia, LLC
-# Under the terms of Contract DE-NA0003525 with National Technology and
-# Engineering Solutions of Sandia, LLC, the U.S. Government retains certain
-# rights in this software.
-# This software is distributed under the 3-clause BSD License.
-# ___________________________________________________________________________
-
-from pyomo.common import pyomo_command
-from pyomo.opt import (SolverFactory,
- TerminationCondition,
- undefined)
-from pyomo.core import (value, minimize, Set,
- Objective, SOSConstraint,
- Constraint, Var, RangeSet,
- Expression, Suffix, Reals, Param)
-from pyomo.core.base.constraint import _GeneralConstraintData
-from pyomo.core.beta.list_objects import XConstraintList
-from pyomo.pysp.util.configured_object import PySPConfiguredObject
-from pyomo.pysp.util.config import (PySPConfigValue,
- PySPConfigBlock,
- safe_register_common_option,
- safe_declare_common_option,
- safe_declare_unique_option,
- _domain_percent,
- _domain_nonnegative,
- _domain_positive_integer,
- _domain_must_be_str,
- _domain_unit_interval,
- _domain_tuple_of_str,
- _domain_tuple_of_str_or_dict)
-from pyomo.pysp.util.misc import (parse_command_line,
- launch_command)
-from pyomo.pysp.scenariotree.manager import \
- (InvocationType,
- ScenarioTreeManager,
- ScenarioTreeManagerFactory)
-from pyomo.pysp.scenariotree.manager_solver import \
- ScenarioTreeManagerSolverFactory
-from pyomo.pysp.phutils import find_active_objective
-from pyomo.pysp.ef import create_ef_instance
-from pyomo.pysp.solvers.spsolver import (SPSolver,
- SPSolverResults,
- SPSolverFactory)
-from pyomo.pysp.solvers.benders import (EXTERNAL_deactivate_rootnode_costs,
- EXTERNAL_activate_rootnode_costs,
- EXTERNAL_activate_fix_constraints,
- EXTERNAL_deactivate_fix_constraints,
- EXTERNAL_cleanup_from_benders,
- EXTERNAL_initialize_for_benders,
- EXTERNAL_update_fix_constraints,
- EXTERNAL_collect_cut_data,
- BendersOptimalityCut, BendersAlgorithm,
- BendersSolver,
- runbenders_register_options, runbenders,
- main as b_main)
-
-@pyomo_command('runbenders', 'Optimize with the Benders solver')
-def Benders_main(args=None):
- return b_main(args=args)
diff --git a/pyomo/pysp/computeconf.py b/pyomo/pysp/computeconf.py
deleted file mode 100755
index 074ec09c3e4..00000000000
--- a/pyomo/pysp/computeconf.py
+++ /dev/null
@@ -1,815 +0,0 @@
-#! /usr/bin/env python
-# ___________________________________________________________________________
-#
-# Pyomo: Python Optimization Modeling Objects
-# Copyright 2017 National Technology and Engineering Solutions of Sandia, LLC
-# Under the terms of Contract DE-NA0003525 with National Technology and
-# Engineering Solutions of Sandia, LLC, the U.S. Government retains certain
-# rights in this software.
-# This software is distributed under the 3-clause BSD License.
-# ___________________________________________________________________________
-
-import os
-import random
-import math
-import time
-import traceback
-
-from pyomo.common.errors import ApplicationError
-
-from pyomo.core import minimize
-# this is a hack, in order to pick up the UndefinedData class. this is
-# needed currently, as CPLEX is periodically barfing on cvar
-# formulations, yielding an undefined gap. technically, the gap is
-# defined and the solution is feasible, but a correct fix to the CPLEX
-# plugin would yield a complete failure to solve cvar problems. see
-# related hacks below, searching for CVARHACK.
-from pyomo.opt import UndefinedData
-from pyomo.common import pyomo_command
-from pyomo.pysp.scenariotree.instance_factory import \
- ScenarioTreeInstanceFactory
-from pyomo.pysp.phinit import (construct_ph_options_parser,
- GenerateScenarioTreeForPH,
- PHAlgorithmBuilder,
- PHFromScratch,
- PHCleanup)
-from pyomo.pysp.ef_writer_script import ExtensiveFormAlgorithm
-from pyomo.pysp.phutils import _OLD_OUTPUT
-
-from six import iteritems, iterkeys
-
-# to avoid the pain of user lookup of parameter in t-tables, we
-# provide decent coverage automatically. feel free to add more
-# values!!!! maps degrees-of-freedom to (alpha,t-statistic) pairs.
-
-t_table_values = {
-
-1 : {0.25 : 1.000 ,0.1 : 3.078 ,0.05 : 6.314 ,0.025 : 12.706 ,0.01 : 31.821 ,0.005 : 63.657 ,0.001 : 318.309},
-2 : {0.25 : 0.816 ,0.1 : 1.886 ,0.05 : 2.920 ,0.025 : 4.303 ,0.01 : 6.965 ,0.005 : 9.925 ,0.001 : 22.327},
-3 : {0.25 : 0.765 ,0.1 : 1.638 ,0.05 : 2.353 ,0.025 : 3.182 ,0.01 : 4.541 ,0.005 : 5.841 ,0.001 : 10.215},
-4 : {0.25 : 0.741 , 0.1 : 1.533 , 0.05 : 2.132 , 0.025 : 2.776 , 0.01 : 3.747 , 0.005 : 4.604 , 0.001 : 7.173},
-5 : {0.25 : 0.727 , 0.1 : 1.476 , 0.05 : 2.015 , 0.025 : 2.571 , 0.01 : 3.365 , 0.005 : 4.032 , 0.001 : 5.893},
-6 : {0.25 : 0.718 , 0.1 : 1.440 , 0.05 : 1.943 , 0.025 : 2.447 , 0.01 : 3.143 , 0.005 : 3.707 , 0.001 : 5.208},
-7 : {0.25 : 0.711 , 0.1 : 1.415 , 0.05 : 1.895 , 0.025 : 2.365 , 0.01 : 2.998 , 0.005 : 3.499 , 0.001 : 4.785},
-8 : {0.25 : 0.706 , 0.1 : 1.397 , 0.05 : 1.860 , 0.025 : 2.306 , 0.01 : 2.896 , 0.005 : 3.355 , 0.001 : 4.501},
-9 : {0.25 : 0.703 , 0.1 : 1.383 , 0.05 : 1.833 , 0.025 : 2.262 , 0.01 : 2.821 , 0.005 : 3.250 , 0.001 : 4.297},
-10 : {0.25 : 0.700 , 0.1 : 1.372 , 0.05 : 1.812 , 0.025 : 2.228 , 0.01 : 2.764 , 0.005 : 3.169 , 0.001 : 4.144},
-11 : {0.25 : 0.697 , 0.1 : 1.363 , 0.05 : 1.796 , 0.025 : 2.201 , 0.01 : 2.718 , 0.005 : 3.106 , 0.001 : 4.025},
-12 : {0.25 : 0.695 , 0.1 : 1.356 , 0.05 : 1.782 , 0.025 : 2.179 , 0.01 : 2.681 , 0.005 : 3.055 , 0.001 : 3.930},
-13 : {0.25 : 0.694 , 0.1 : 1.350 , 0.05 : 1.771 , 0.025 : 2.160 , 0.01 : 2.650 , 0.005 : 3.012 , 0.001 : 3.852},
-14 : {0.25 : 0.692 , 0.1 : 1.345 , 0.05 : 1.761 , 0.025 : 2.145 , 0.01 : 2.624 , 0.005 : 2.977 , 0.001 : 3.787},
-15 : {0.25 : 0.691 , 0.1 : 1.341 , 0.05 : 1.753 , 0.025 : 2.131 , 0.01 : 2.602 , 0.005 : 2.947 , 0.001 : 3.733},
-16 : {0.25 : 0.690 , 0.1 : 1.337 , 0.05 : 1.746 , 0.025 : 2.120 , 0.01 : 2.583 , 0.005 : 2.921 , 0.001 : 3.686},
-17 : {0.25 : 0.689 , 0.1 : 1.333 , 0.05 : 1.740 , 0.025 : 2.110 , 0.01 : 2.567 , 0.005 : 2.898 , 0.001 : 3.646},
-18 : {0.25 : 0.688 , 0.1 : 1.330 , 0.05 : 1.734 , 0.025 : 2.101 , 0.01 : 2.552 , 0.005 : 2.878 , 0.001 : 3.610},
-19 : {0.25 : 0.688 , 0.1 : 1.328 , 0.05 : 1.729 , 0.025 : 2.093 , 0.01 : 2.539 , 0.005 : 2.861 , 0.001 : 3.579},
-20 : {0.25 : 0.687 , 0.1 : 1.325 , 0.05 : 1.725 , 0.025 : 2.086 , 0.01 : 2.528 , 0.005 : 2.845 , 0.001 : 3.552},
-21 : {0.25 : 0.686 , 0.1 : 1.323 , 0.05 : 1.721 , 0.025 : 2.080 , 0.01 : 2.518 , 0.005 : 2.831 , 0.001 : 3.527},
-22 : {0.25 : 0.686 , 0.1 : 1.321 , 0.05 : 1.717 , 0.025 : 2.074 , 0.01 : 2.508 , 0.005 : 2.819 , 0.001 : 3.505},
-23 : {0.25 : 0.685 , 0.1 : 1.319 , 0.05 : 1.714 , 0.025 : 2.069 , 0.01 : 2.500 , 0.005 : 2.807 , 0.001 : 3.485},
-24 : {0.25 : 0.685 , 0.1 : 1.318 , 0.05 : 1.711 , 0.025 : 2.064 , 0.01 : 2.492 , 0.005 : 2.797 , 0.001 : 3.467},
-25 : {0.25 : 0.684 , 0.1 : 1.316 , 0.05 : 1.708 , 0.025 : 2.060 , 0.01 : 2.485 , 0.005 : 2.787 , 0.001 : 3.450},
-26 : {0.25 : 0.684 , 0.1 : 1.315 , 0.05 : 1.706 , 0.025 : 2.056 , 0.01 : 2.479 , 0.005 : 2.779 , 0.001 : 3.435},
-27 : {0.25 : 0.684 , 0.1 : 1.314 , 0.05 : 1.703 , 0.025 : 2.052 , 0.01 : 2.473 , 0.005 : 2.771 , 0.001 : 3.421},
-28 : {0.25 : 0.683 , 0.1 : 1.313 , 0.05 : 1.701 , 0.025 : 2.048 , 0.01 : 2.467 , 0.005 : 2.763 , 0.001 : 3.408},
-29 : {0.25 : 0.683 , 0.1 : 1.311 , 0.05 : 1.699 , 0.025 : 2.045 , 0.01 : 2.462 , 0.005 : 2.756 , 0.001 : 3.396},
-30 : {0.25 : 0.683 , 0.1 : 1.310 , 0.05 : 1.697 , 0.025 : 2.042 , 0.01 : 2.457 , 0.005 : 2.750 , 0.001 : 3.385},
-31 : {0.25 : 0.682 , 0.1 : 1.309 , 0.05 : 1.696 , 0.025 : 2.040 , 0.01 : 2.453 , 0.005 : 2.744 , 0.001 : 3.375},
-32 : {0.25 : 0.682 , 0.1 : 1.309 , 0.05 : 1.694 , 0.025 : 2.037 , 0.01 : 2.449 , 0.005 : 2.738 , 0.001 : 3.365},
-33 : {0.25 : 0.682 , 0.1 : 1.308 , 0.05 : 1.692 , 0.025 : 2.035 , 0.01 : 2.445 , 0.005 : 2.733 , 0.001 : 3.356},
-34 : {0.25 : 0.682 , 0.1 : 1.307 , 0.05 : 1.691 , 0.025 : 2.032 , 0.01 : 2.441 , 0.005 : 2.728 , 0.001 : 3.348},
-35 : {0.25 : 0.682 , 0.1 : 1.306 , 0.05 : 1.690 , 0.025 : 2.030 , 0.01 : 2.438 , 0.005 : 2.724 , 0.001 : 3.340},
-36 : {0.25 : 0.681 , 0.1 : 1.306 , 0.05 : 1.688 , 0.025 : 2.028 , 0.01 : 2.434 , 0.005 : 2.719 , 0.001 : 3.333},
-37 : {0.25 : 0.681 , 0.1 : 1.305 , 0.05 : 1.687 , 0.025 : 2.026 , 0.01 : 2.431 , 0.005 : 2.715 , 0.001 : 3.326},
-38 : {0.25 : 0.681 , 0.1 : 1.304 , 0.05 : 1.686 , 0.025 : 2.024 , 0.01 : 2.429 , 0.005 : 2.712 , 0.001 : 3.319},
-39 : {0.25 : 0.681 , 0.1 : 1.304 , 0.05 : 1.685 , 0.025 : 2.023 , 0.01 : 2.426 , 0.005 : 2.708 , 0.001 : 3.313},
-40 : {0.25 : 0.681 , 0.1 : 1.303 , 0.05 : 1.684 , 0.025 : 2.021 , 0.01 : 2.423 , 0.005 : 2.704 , 0.001 : 3.307},
-41 : {0.25 : 0.681 , 0.1 : 1.303 , 0.05 : 1.683 , 0.025 : 2.020 , 0.01 : 2.421 , 0.005 : 2.701 , 0.001 : 3.301},
-42 : {0.25 : 0.680 , 0.1 : 1.302 , 0.05 : 1.682 , 0.025 : 2.018 , 0.01 : 2.418 , 0.005 : 2.698 , 0.001 : 3.296},
-43 : {0.25 : 0.680 , 0.1 : 1.302 , 0.05 : 1.681 , 0.025 : 2.017 , 0.01 : 2.416 , 0.005 : 2.695 , 0.001 : 3.291},
-44 : {0.25 : 0.680 , 0.1 : 1.301 , 0.05 : 1.680 , 0.025 : 2.015 , 0.01 : 2.414 , 0.005 : 2.692 , 0.001 : 3.286},
-45 : {0.25 : 0.680 , 0.1 : 1.301 , 0.05 : 1.679 , 0.025 : 2.014 , 0.01 : 2.412 , 0.005 : 2.690 , 0.001 : 3.281},
-46 : {0.25 : 0.680 , 0.1 : 1.300 , 0.05 : 1.679 , 0.025 : 2.013 , 0.01 : 2.410 , 0.005 : 2.687 , 0.001 : 3.277},
-47 : {0.25 : 0.680 , 0.1 : 1.300 , 0.05 : 1.678 , 0.025 : 2.012 , 0.01 : 2.408 , 0.005 : 2.685 , 0.001 : 3.273},
-48 : {0.25 : 0.680 , 0.1 : 1.299 , 0.05 : 1.677 , 0.025 : 2.011 , 0.01 : 2.407 , 0.005 : 2.682 , 0.001 : 3.269},
-49 : {0.25 : 0.680 , 0.1 : 1.299 , 0.05 : 1.677 , 0.025 : 2.010 , 0.01 : 2.405 , 0.005 : 2.680 , 0.001 : 3.265},
-50 : {0.25 : 0.679 , 0.1 : 1.299 , 0.05 : 1.676 , 0.025 : 2.009 , 0.01 : 2.403 , 0.005 : 2.678 , 0.001 : 3.261}
-
-}
-
-def run(args=None):
- AllInOne = False
- # The value of AllInOne will be set to True for the "old"
- # computeconf (with fraction_for_solve) and will stay False for
- # the "new" computeconf (with MRP_directory_basename)
-
- try:
- conf_options_parser = construct_ph_options_parser("computeconf [options]")
- conf_options_parser.add_argument("--fraction-scenarios-for-solve",
- help="The fraction of scenarios that are allocated to finding a solution. Default is None.",
- action="store",
- dest="fraction_for_solve",
- type=float,
- default=None)
- conf_options_parser.add_argument("--number-samples-for-confidence-interval",
- help="The number of samples of scenarios that are allocated to the confidence inteval (n_g). Default is None.",
- action="store",
- dest="n_g",
- type=int,
- default=None)
- conf_options_parser.add_argument("--confidence-interval-alpha",
- help="The alpha level for the confidence interval. Default is 0.05",
- action="store",
- dest="confidence_interval_alpha",
- type=float,
- default=0.05)
- conf_options_parser.add_argument("--solve-xhat-with-ph",
- help="Perform xhat solve via PH rather than an EF solve. Default is False",
- action="store_true",
- dest="solve_xhat_with_ph",
- default=False)
- conf_options_parser.add_argument("--random-seed",
- help="Seed the random number generator used to select samples. Defaults to 0, indicating time seed will be used.",
- action="store",
- dest="random_seed",
- type=int,
- default=0)
- conf_options_parser.add_argument("--append-file",
- help="File to which summary run information is appended, for output tracking purposes.",
- action="store",
- dest="append_file",
- type=str,
- default=None)
- conf_options_parser.add_argument("--write-xhat-solution",
- help="Write xhat solutions (first stage variables only) to the append file? Defaults to False.",
- action="store_true",
- dest="write_xhat_solution",
- default=False)
- conf_options_parser.add_argument("--generate-weighted-cvar",
- help="Add a weighted CVaR term to the primary objective",
- action="store_true",
- dest="generate_weighted_cvar",
- default=False)
- conf_options_parser.add_argument("--cvar-weight",
- help="The weight associated with the CVaR term in the risk-weighted objective formulation. Default is 1.0. If the weight is 0, then *only* a non-weighted CVaR cost will appear in the EF objective - the expected cost component will be dropped.",
- action="store",
- dest="cvar_weight",
- type=float,
- default=1.0)
- conf_options_parser.add_argument("--risk-alpha",
- help="The probability threshold associated with cvar (or any future) risk-oriented performance metrics. Default is 0.95.",
- action="store",
- dest="risk_alpha",
- type=float,
- default=0.95)
- conf_options_parser.add_argument("--MRP-directory-basename",
- help="The basename for the replicate directories. It will be appended by the number of the group (loop over n_g). Default is None",
- action="store",
- dest="MRP_directory_basename",
- type=str,
- default=None)
-
-
- options = conf_options_parser.parse_args(args=args)
- # temporary hack
- options._ef_options = conf_options_parser._ef_options
- options._ef_options.import_argparse(options)
- except SystemExit as _exc:
- # the parser throws a system exit if "-h" is specified - catch
- # it to exit gracefully.
- return _exc.code
-
- # seed the generator if a user-supplied seed is
- # provided. otherwise, python will seed from the current system
- # time.
- if options.random_seed > 0:
- random.seed(options.random_seed)
-
- start_time = time.time()
- if options.verbose:
- print("Importing model and scenario tree files")
-
- scenario_instance_factory = \
- ScenarioTreeInstanceFactory(options.model_directory,
- options.instance_directory)
- if _OLD_OUTPUT:
- print("Loading reference model and scenario tree")
- if options.verbose or options.output_times:
- print("Time to import model and scenario "
- "tree structure files=%.2f seconds"
- %(time.time() - start_time))
-
- try:
-
- scenario_tree = \
- scenario_instance_factory.generate_scenario_tree(
- downsample_fraction=options.scenario_tree_downsample_fraction,
- bundles=options.scenario_bundle_specification,
- random_bundles=options.create_random_bundles,
- random_seed=options.scenario_tree_random_seed,
- verbose=options.verbose)
-
- #
- # print the input tree for validation/information purposes.
- #
- if options.verbose:
- scenario_tree.pprint()
-
- #
- # validate the tree prior to doing anything serious
- #
- scenario_tree.validate()
- if options.verbose:
- print("Scenario tree is valid!")
-
- index_list, num_scenarios_for_solution, num_scenarios_per_sample = \
- partition_scenario_space(scenario_tree,
- options)
-
- #index_list = [0,3,5,7,1,4,6,8,2,9]
- #for ndx in index_list:
- # print("%d: %s" % (ndx, scenario_tree._scenarios[ndx]._name))
- xhat_ph = find_candidate(scenario_instance_factory,
- index_list,
- num_scenarios_for_solution,
- scenario_tree,
- options)
-
- run_conf(scenario_instance_factory,
- index_list,
- num_scenarios_for_solution,
- num_scenarios_per_sample,
- scenario_tree,
- xhat_ph,
- options)
-
- finally:
-
- # delete temporary unarchived directories
- if scenario_instance_factory is not None:
- scenario_instance_factory.close()
-
-def partition_scenario_space(full_scenario_tree,
- options):
-
- if (options.MRP_directory_basename is not None) and \
- (options.fraction_for_solve is not None):
- raise RuntimeError("The two options --MRP-directory-"
- "basename and --fraction-scenarios"
- "-for-solve cannot both be set.")
-
- if options.MRP_directory_basename is None:
- AllInOne = True
- if options.fraction_for_solve is None:
- raise RuntimeError("Option --fraction-scenarios-"
- "for-solve needs to be set.")
- if options.n_g is None:
- raise RuntimeError("Option --number-samples-for-"
- "confidence-interval needs to be set.")
-
- print("Starting confidence interval calculation...")
-
- # randomly permute the indices to extract a subset to compute
- # xhat.
- scenario_count = len(full_scenario_tree._stages[-1]._tree_nodes)
- index_list = list(range(scenario_count))
- if AllInOne:
- random.shuffle(index_list)
- if options.verbose is True:
- print("Random permutation of the "
- "scenario indices="+str(index_list))
-
- # figure out the scenario counts for both the xhat and confidence
- # interval computations.
- if AllInOne:
- num_scenarios_for_solution = \
- int(options.fraction_for_solve * scenario_count)
- n_g = options.n_g
- # 'n' in Morton's slides
- # integer division (cast to int required for python 3)
- num_scenarios_per_sample = \
- int((scenario_count - num_scenarios_for_solution) / n_g)
- wasted_scenarios = scenario_count - num_scenarios_for_solution - \
- n_g * num_scenarios_per_sample
- else:
- num_scenarios_for_solution = scenario_count
- n_g = options.n_g
- ### num_scenario_per_sample
- biggest_scenario_number = 0
- scenariostructure_file = \
- open(os.path.join(options.MRP_directory_basename+"1",
- "ScenarioStructure.dat"), "r")
- for line in scenariostructure_file:
- splitted_line = line.split(" ")
- if "Scenario" in str(splitted_line[0]):
- scenario_number_in_line = \
- splitted_line[0].split("Scenario")[1]
- if scenario_number_in_line.isdigit():
- if scenario_number_in_line > biggest_scenario_number:
- biggest_scenario_number = int(scenario_number_in_line)
- num_scenarios_per_sample = biggest_scenario_number
- wasted_scenarios = scenario_count - num_scenarios_for_solution - \
- n_g * num_scenarios_per_sample
-
- if num_scenarios_per_sample == 0:
- raise RuntimeError("Computed number of scenarios "
- "per sample group equals 0 - "
- +str(scenario_count - num_scenarios_for_solution)+
- " scenarios cannot be divided into "
- +str(n_g)+" groups!")
-
- print("Problem contains "+str(scenario_count)
- +" scenarios, of which "
- +str(num_scenarios_for_solution)
- +" will be used to find a solution xhat.")
- print("A total of "+str(n_g)+" groups of "
- +str(num_scenarios_per_sample)+
- " scenarios will be used to compute the "
- "confidence interval on xhat.")
- if wasted_scenarios > 0:
- print("A total of "+str(wasted_scenarios)
- +" scenarios will not be used.")
-
- if not options.solve_xhat_with_ph:
- if options.default_rho != "":
- raise ValueError("A default rho value can not be used "
- "unless xhat is solved with ph")
- # provide a default rho value to avoid an error when
- # initializing the ph object for the xhat bundle
- # it will not be used
- options.default_rho = 1.0
-
- if len(full_scenario_tree._stages) > 2:
- raise RuntimeError("***ERROR: Confidence intervals are "
- "available only for two stage stochastic "
- "programs;"+str(len(full_scenario_tree._stages))+
- " stages specified")
- return index_list, num_scenarios_for_solution, num_scenarios_per_sample
-
-def find_candidate(scenario_instance_factory,
- index_list,
- num_scenarios_for_solution,
- full_scenario_tree,
- options):
-
- # create a ph object for finding the solution. we do this even if
- # we're solving the extensive form directly, mainly out of
- # convenience - we're leveraging the code in ph_for_bundle to
- # create the scenario tree and scenario instances.
- print("")
- print("Loading scenario instances and initializing "
- "scenario tree for xhat scenario bundle.")
-
- xhat_ph = None
- try:
-
- xhat_ph = ph_for_bundle(0,
- num_scenarios_for_solution,
- scenario_instance_factory,
- full_scenario_tree,
- index_list,
- options)
-
- xhat_obj = None
-
- sense = xhat_ph._scenario_tree._scenarios[0]._objective_sense
- if sense == minimize:
- print("We are solving a MINIMIZATION problem.")
- else:
- print("We are solving a MAXIMIZATION problem.")
-
- if not options.solve_xhat_with_ph:
- print("Creating the xhat extensive form.")
- print("")
- print("Composite scenarios:")
- for scenario in xhat_ph._scenario_tree._scenarios:
- print(scenario._name)
- print("")
-
- if options.verbose:
- print("Time="+time.asctime())
-
- with ExtensiveFormAlgorithm(xhat_ph,
- options._ef_options,
- options_prefix="ef_") as ef:
-
- ef.build_ef()
- print("Solving the xhat extensive form.")
- # Instance preprocessing is managed within the
- # ph object automatically when required for a
- # solve. Since we are solving the instances
- # outside of the ph object, we will inform it
- # that it should complete the instance
- # preprocessing early
- xhat_ph._preprocess_scenario_instances()
- ef.solve(io_options=\
- {'output_fixed_variable_bounds':
- options.write_fixed_variables})
- xhat_obj = ef.objective
- """
- hatex_ef = create_ef_instance(
- xhat_ph._scenario_tree,
- verbose_output=options.verbose,
- generate_weighted_cvar=options.generate_weighted_cvar,
- cvar_weight=options.cvar_weight,
- risk_alpha=options.risk_alpha)
-
- if options.verbose:
- print("Time="+time.asctime())
- print("Solving the xhat extensive form.")
-
- # Instance preprocessing is managed within the ph object
- # automatically when required for a solve. Since we are
- # solving the instances outside of the ph object, we will
- # inform it that it should complete the instance preprocessing
- # early
- xhat_ph._preprocess_scenario_instances()
-
- ef_results = solve_ef(hatex_ef, options)
-
- if options.verbose:
- print("Loading extensive form solution.")
- print("Time="+time.asctime())
-
- # IMPT: the following method populates the _solution variables
- # on the scenario tree nodes by forming an average of
- # the corresponding variable values for all instances
- # particpating in that node. if you don't do this, the
- # scenario tree doesn't have the solution - and we need
- # this below for variable fixing.
- if options.verbose:
- print("Computing extensive form solution from instances.")
- print("Time="+time.asctime())
-
- xhat_ph._scenario_tree.pullScenarioSolutionsFromInstances()
- xhat_ph._scenario_tree.snapshotSolutionFromScenarios()
-
- xhat_obj = xhat_ph._scenario_tree.findRootNode().computeExpectedNodeCost()
- """
- print("Extensive form objective value given xhat="
- +str(xhat_obj))
- else:
- print("Solving for xhat via Progressive Hedging.")
- phretval = xhat_ph.solve()
- if phretval is not None:
- raise RuntimeError("No solution was obtained "
- "for scenario: "+phretval)
- # TBD - grab xhat_obj; complicated by the fact that PH may not
- # have converged.
- # TBD - also not sure if PH calls
- # snapshotSolutionFromAverages.
- print("The computation of xhat is complete - "
- "starting to compute confidence interval "
- "via sub-sampling.")
-
- finally:
-
- if xhat_ph is not None:
-
- # we are using the PHCleanup function for
- # convenience, but we need to prevent it
- # from shutting down the scenario_instance_factory
- # as it is managed outside this function
- xhat_ph._scenario_tree._scenario_instance_factory = None
- PHCleanup(xhat_ph)
-
- return xhat_ph
-
-def run_conf(scenario_instance_factory,
- index_list,
- num_scenarios_for_solution,
- num_scenarios_per_sample,
- full_scenario_tree,
- xhat_ph,
- options):
-
- if options.MRP_directory_basename is None:
- AllInOne = True
-
- sense = xhat_ph._scenario_tree._scenarios[0]._objective_sense
-
- # in order to handle the case of scenarios that are not equally
- # likely, we will split the expectations for Gsupk
- # BUT we are going to assume that the groups themselves are
- # equally likely and just scale by n_g and n_g-1 for Gbar and VarG
-
- # really not always needed...
- # http://www.eecs.berkeley.edu/~mhoemmen/cs194/Tutorials/variance.pdf
- g_supk_of_xhat = []
- g_bar = 0
- sum_xstar_obj_given_xhat = 0
- n_g = options.n_g
-
- for k in range(1, n_g+1):
-
- gk_ph = None
- try:
-
- if AllInOne:
-
- start_index = num_scenarios_for_solution + \
- (k-1)*num_scenarios_per_sample
- stop_index = start_index + num_scenarios_per_sample
-
- print("")
- print("Computing statistics for sample k="+str(k)+".")
- if options.verbose:
- print("Bundle start index="+str(start_index)
- +", stop index="+str(stop_index)+".")
-
- # compute this xstar solution for the EF associated with
- # sample k.
-
- print("Loading scenario instances and initializing "
- "scenario tree for xstar scenario bundle.")
-
- gk_ph = ph_for_bundle(start_index,
- stop_index,
- scenario_instance_factory,
- full_scenario_tree,
- index_list,
- options)
-
- else:
-
- options.instance_directory = \
- options.MRP_directory_basename+str(k)
-
- gk_ph = PHFromScratch(options)
-
- print("Creating the xstar extensive form.")
- print("")
- print("Composite scenarios:")
- for scenario in gk_ph._scenario_tree._scenarios:
- print (scenario._name)
- print("")
- gk_ef = ExtensiveFormAlgorithm(gk_ph,
- options._ef_options,
- options_prefix="ef_")
- gk_ef.build_ef()
- print("Solving the xstar extensive form.")
- # Instance preprocessing is managed within the
- # ph object automatically when required for a
- # solve. Since we are solving the instances
- # outside of the ph object, we will inform it
- # that it should complete the instance
- # preprocessing early
- gk_ph._preprocess_scenario_instances()
- gk_ef.solve(io_options=\
- {'output_fixed_variable_bounds':
- options.write_fixed_variables})
- xstar_obj = gk_ef.objective
- # assuming this is the absolute gap
- xstar_obj_gap = gk_ef.gap
-
- """
- gk_ef = create_ef_instance(gk_ph._scenario_tree,
- generate_weighted_cvar=options.generate_weighted_cvar,
- cvar_weight=options.cvar_weight,
- risk_alpha=options.risk_alpha)
- print("Solving the xstar extensive form.")
-
- # Instance preprocessing is managed within the ph object
- # automatically when required for a solve. Since we are
- # solving the instances outside of the ph object, we will
- # inform it that it should complete the instance preprocessing
- # early
- gk_ph._preprocess_scenario_instances()
-
- ef_results = solve_ef(gk_ef, options)
-
- # as in the computation of xhat, the following is required to form a
- # solution to the extensive form in the scenario tree itself.
- gk_ph._scenario_tree.pullScenarioSolutionsFromInstances()
- gk_ph._scenario_tree.snapshotSolutionFromScenarios()
-
- # extract the objective function value corresponding to the
- # xstar solution, along with any gap information.
-
- xstar_obj = gk_ph._scenario_tree.findRootNode().computeExpectedNodeCost()
- # assuming this is the absolute gap
- xstar_obj_gap = gk_ef.solutions[0].gap# ef_results.solution(0).gap
- """
-
- print("Sample extensive form objective value="+str(xstar_obj))
-
-
- # CVARHACK: if CPLEX barfed, keep trucking and bury our head
- # in the sand.
- if type(xstar_obj_gap) is UndefinedData:
- xstar_obj_bound = xstar_obj
- #EW#print("xstar_obj_bound= "+str(xstar_obj_bound))
- else:
- if sense == minimize:
- xstar_obj_bound = xstar_obj - xstar_obj_gap
- else:
- xstar_obj_bound = xstar_obj + xstar_obj_gap
- #EW#print("xstar_obj_bound= "+str(xstar_obj_bound))
- #EW#print("xstar_obj = "+str(xstar_obj))
- #EW#print("xstar_obj_gap = "+str(xstar_obj_gap))
- # TBD: ADD VERBOSE OUTPUT HERE
-
- # to get f(xhat) for this sample, fix the first-stage
- # variables and re-solve the extensive form. note that the
- # fixing yields side-effects on the original gk_ef, but that
- # is fine as it isn't used after this point.
- print("Solving the extensive form given the xhat solution.")
- #xhat = pyomo.pysp.phboundbase.ExtractInternalNodeSolutionsforInner(xhat_ph)
- #
- # fix the first stage variables
- #
- gk_root_node = gk_ph._scenario_tree.findRootNode()
- #root_xhat = xhat[gk_root_node._name]
- root_xhat = xhat_ph._scenario_tree.findRootNode()._solution
- for variable_id in gk_root_node._standard_variable_ids:
- gk_root_node.fix_variable(variable_id,
- root_xhat[variable_id])
-
- # Push fixed variable statuses on instances (or
- # transmit to the phsolverservers), since we are not
- # calling the solve method on the ph object, we
- # need to do this manually
- gk_ph._push_fix_queue_to_instances()
- gk_ph._preprocess_scenario_instances()
-
- gk_ef.solve(io_options=\
- {'output_fixed_variable_bounds':
- options.write_fixed_variables})
- #ef_results = solve_ef(gk_ef, options)
-
- # we don't need the solution - just the objective value.
- #objective_name = "MASTER"
- #objective = gk_ef.find_component(objective_name)
- xstar_obj_given_xhat = gk_ef.objective
-
- print("Sample extensive form objective value given xhat="
- +str(xstar_obj_given_xhat))
-
- #g_supk_of_xhat.append(xstar_obj_given_xhat - xstar_obj_bound)
- if sense == minimize:
- g_supk_of_xhat.append(xstar_obj_given_xhat - xstar_obj_bound)
- else:
- g_supk_of_xhat.append(- xstar_obj_given_xhat + xstar_obj_bound)
- g_bar += g_supk_of_xhat[k-1]
- sum_xstar_obj_given_xhat += xstar_obj_given_xhat
-
- finally:
-
- if gk_ph is not None:
-
- # we are using the PHCleanup function for
- # convenience, but we need to prevent it
- # from shutting down the scenario_instance_factory
- # as it is managed outside this function
- if gk_ph._scenario_tree._scenario_instance_factory is \
- scenario_instance_factory:
- gk_ph._scenario_tree._scenario_instance_factory = None
- PHCleanup(gk_ph)
-
- g_bar /= n_g
- # second pass for variance calculation (because we like storing
- # the g_supk)
- g_var = 0.0
- for k in range(0, n_g):
- print("g_supk_of_xhat[%d]=%12.6f"
- % (k+1, g_supk_of_xhat[k]))
- g_var = g_var + (g_supk_of_xhat[k] - g_bar) * \
- (g_supk_of_xhat[k] - g_bar)
- if n_g != 1:
- # sample var
- g_var = g_var / (n_g - 1)
- print("")
- print("Raw results:")
- print("g_bar= "+str(g_bar))
- print("g_stddev= "+str(math.sqrt(g_var)))
- print("Average f(xhat)= "+str(sum_xstar_obj_given_xhat / n_g))
-
- if n_g in t_table_values:
- print("")
- print("Results summary:")
- t_table_entries = t_table_values[n_g]
- for key in sorted(iterkeys(t_table_entries)):
- print("Confidence interval width for alpha="+str(key)
- +" is "+str(g_bar + (t_table_entries[key] * \
- math.sqrt(g_var) / \
- math.sqrt(n_g))))
- else:
- print("No built-in t-table entries for "+str(n_g)
- +" degrees of freedom - cannot calculate confidence interval width")
-
- if options.write_xhat_solution:
- print("")
- print("xhat solution:")
- scenario_tree = xhat_ph._scenario_tree
- first_stage = scenario_tree._stages[0]
- root_node = first_stage._tree_nodes[0]
- for key, val in iteritems(root_node._solutions):
- for idx in val:
- if val[idx] != 0.0:
- print("%s %s %s" % (str(key), str(idx), str(val[idx]())))
-
- scenario_count = len(full_scenario_tree._stages[-1]._tree_nodes)
- if options.append_file is not None:
- output_file = open(options.append_file, "a")
- output_file.write("\ninstancedirectory, "
- +str(options.instance_directory)
- +", seed, "+str(options.random_seed)
- +", N, "+str(scenario_count)
- +", hatn, "+str(num_scenarios_for_solution)
- +", n_g, "+str(options.n_g)
- +", Eoffofxhat, "
- +str(sum_xstar_obj_given_xhat / n_g)
- +", gbar, "+str(g_bar)+", sg, "
- +str(math.sqrt(g_var))+", objforxhat, "
- +str(xhat_obj)+", n,"
- +str(num_scenarios_per_sample))
-
- if n_g in t_table_values:
- t_table_entries = t_table_values[n_g]
- for key in sorted(iterkeys(t_table_entries)):
- output_file.write(" , alpha="+str(key)+" , "
- +str(g_bar + (t_table_entries[key] * \
- math.sqrt(g_var) / \
- math.sqrt(n_g))))
-
- if options.write_xhat_solution:
- output_file.write(" , ")
- scenario_tree = xhat_ph._scenario_tree
- first_stage = scenario_tree._stages[0]
- root_node = first_stage._tree_nodes[0]
- for key, val in iteritems(root_node._solutions):
- for idx in val:
- if val[idx] != 0.0:
- output_file.write("%s %s %s"
- % (str(key),
- str(idx),
- str(val[idx]())))
- output_file.close()
- print("")
- print("Results summary appended to file="
- +options.append_file)
-
- xhat_ph.release_components()
-
-#
-# routine to create a down-sampled (bundled) scenario tree and the associated PH object.
-#
-def ph_for_bundle(bundle_start,
- bundle_stop,
- scenario_instance_factory,
- full_scenario_tree,
- index_list,
- options):
-
- scenarios_to_bundle = []
- for i in range(bundle_start, bundle_stop):
- scenarios_to_bundle.append(full_scenario_tree.\
- _scenarios[index_list[i]]._name)
-
- ph = None
- try:
-
- scenario_tree = \
- GenerateScenarioTreeForPH(options,
- scenario_instance_factory,
- include_scenarios=scenarios_to_bundle)
-
- ph = PHAlgorithmBuilder(options, scenario_tree)
-
- except:
-
- if ph is not None:
- ph.release_components()
-
- raise
-
- return ph
-
-# print "DLW says: first stage vars are fixed; maybe we need to delete any constraints with only first stage vars due to precision issues"
-
-#
-# the main script routine starts here - and is obviously pretty simple!
-#
-
-@pyomo_command('computeconf', "Compute the confidence for a SP solution")
-def main(args=None):
- # to import plugins
- import pyomo.environ
-
- try:
- run(args=args)
- except ValueError as str:
- print("VALUE ERROR:")
- print(str)
- except IOError as str:
- print("IO ERROR:")
- print(str)
- except ApplicationError as str:
- print("APPLICATION ERROR:")
- print(str)
- except RuntimeError as str:
- print("RUN-TIME ERROR:")
- print(str)
- except:
- print("Encountered unhandled exception")
- traceback.print_exc()
diff --git a/pyomo/pysp/convergence.py b/pyomo/pysp/convergence.py
deleted file mode 100644
index 96e32035a72..00000000000
--- a/pyomo/pysp/convergence.py
+++ /dev/null
@@ -1,377 +0,0 @@
-# ___________________________________________________________________________
-#
-# Pyomo: Python Optimization Modeling Objects
-# Copyright 2017 National Technology and Engineering Solutions of Sandia, LLC
-# Under the terms of Contract DE-NA0003525 with National Technology and
-# Engineering Solutions of Sandia, LLC, the U.S. Government retains certain
-# rights in this software.
-# This software is distributed under the 3-clause BSD License.
-# ___________________________________________________________________________
-
-import copy
-from math import fabs
-
-from pyomo.pysp.generators import \
- scenario_tree_node_variables_generator_noinstances
-
-from six import iterkeys
-
-#
-# This module contains a hierarchy of convergence "computers" for PH
-# (or any other scenario-based decomposition strategy). Their basic
-# function is to compute some measure of convergence among disparate
-# scenario solutions, and to track the corresponding history of the
-# metric. the sole inputs are a scenario tree and a (time-varying) set
-# of instances (with solutions).
-#
-
-class ConvergenceBase(object):
-
- """ Constructor
- Arguments:
- convergence_threshold numeric threshold at-or-below which a set
- of scenario solutions is considered
- converged. (must be >= 0.0)
- """
- def __init__(self, *args, **kwds):
-
- # human-readable name of the converger
- self._name = ""
-
- # key is the iteration number, passed in via the update()
- # method.
- self._metric_history = {}
-
- # the largest iteration key thus far - we assume continugous
- # values from 0.
- self._largest_iteration_key = 0
-
- # at what point do I consider the scenario solution pool
- # converged?
- self._convergence_threshold = 0.0
-
- # test for <= or >= the convergence threshold?
- self._test_for_le_threshold = True
-
- for key in kwds:
- if key == "convergence_threshold":
- self._convergence_threshold = kwds[key]
- elif key == "convergence_threshold_sense":
- if kwds[key] == True:
- self._test_for_le_threshold = True
- else:
- self._test_for_le_threshold = False
- else:
- print("Unknown option=" + key + " specified in "
- "call to ConvergenceBase constructor")
-
- def reset(self):
-
- self._metric_history.clear()
-
- def lastMetric(self):
-
- if len(self._metric_history) == 0:
- raise RuntimeError("ConvergenceBase::lastMetric() "
- "invoked with 0-length history")
-
- assert max(iterkeys(self._metric_history)) == \
- self._largest_iteration_key
- return self._metric_history[self._largest_iteration_key]
-
- def update(self, iteration_id, ph, scenario_tree, instances):
-
- current_value = self.computeMetric(ph, scenario_tree, instances)
- self._metric_history[iteration_id] = current_value
- self._largest_iteration_key = \
- max(self._largest_iteration_key, iteration_id)
-
- def computeMetric(self, ph, scenario_tree, solutions):
-
- raise NotImplementedError("ConvergenceBase::computeMetric() is "
- "an abstract method")
-
- def isConverged(self, ph):
-
- if self.lastMetric() == None:
- return False
-
- if self._test_for_le_threshold:
- return self.lastMetric() <= self._convergence_threshold
- else:
- return self.lastMetric() >= self._convergence_threshold
-
- def isImproving(self, iteration_lag):
-
- last_iteration = self._largest_iteration_key
- reference_iteration = \
- min(0,self._largest_iteration_key - iteration_lag)
- return self._metric_history[last_iteration] < \
- self._metric_history[reference_iteration]
-
- def pprint(self):
-
- print("Iteration Metric Value")
- for key in sorted(iterkeys(self._metric_history)):
- val = self._metric_history[key]
-
- if val is None:
- print(' %5d %12s' % (key, "None"))
- else:
- metric_format_string = ""
- if self._convergence_threshold >= 0.0001:
- metric_format_string += "%14.4f"
- else:
- metric_format_string += "%14.3e"
- print(' %5d %12s' % (key, (metric_format_string % val)))
-
-class PrimalDualResidualConvergence(ConvergenceBase):
- """ Constructor
- Arguments: None beyond those in the base class.
- """
- def __init__(self, *args, **kwds):
- super(PrimalDualResidualConvergence, self).__init__(*args, **kwds)
- self._name = "PrimalDual-Residual"
- self._previous_average = None
-
- @staticmethod
- def snapshot_average(ph):
- previous_average = {}
- for stage in ph.scenario_tree.stages[:-1]:
- for tree_node in stage.nodes:
- previous_average[tree_node.name] = \
- copy.deepcopy(tree_node._averages)
- return previous_average
-
- @staticmethod
- def compute_residual_squared_norm(ph, previous_average):
- residual_squared_norm = 0.0
- for stage in ph.scenario_tree.stages[:-1]:
- for tree_node in stage.nodes:
- node_residual_squared_norm = 0.0
- node_previous_average = previous_average[tree_node.name]
- for scenario in tree_node.scenarios:
- scenario_node_x = scenario._x[tree_node.name]
- scenario_residual_squared_norm = 0.0
- for variable_id in tree_node._standard_variable_ids:
- scenario_residual_squared_norm += \
- (scenario_node_x[variable_id] - \
- node_previous_average[variable_id])**2
- node_residual_squared_norm += \
- scenario._probability * \
- scenario_residual_squared_norm
- residual_squared_norm += \
- tree_node.conditional_probability * \
- node_residual_squared_norm
- return residual_squared_norm
-
- @staticmethod
- def compute_primal_residual_squared_norm(ph):
- primal_residual_squared_norm = 0.0
- for stage in ph.scenario_tree.stages[:-1]:
- for tree_node in stage.nodes:
- node_primal_residual_squared_norm = 0.0
- node_average = tree_node._averages
- for scenario in tree_node.scenarios:
- scenario_node_x = scenario._x[tree_node.name]
- scenario_primal_residual_squared_norm = 0.0
- for variable_id in tree_node._standard_variable_ids:
- scenario_primal_residual_squared_norm += \
- (scenario_node_x[variable_id] - \
- node_average[variable_id])**2
- node_primal_residual_squared_norm += \
- scenario._probability * \
- scenario_primal_residual_squared_norm
- primal_residual_squared_norm += \
- tree_node.conditional_probability * \
- node_primal_residual_squared_norm
- return primal_residual_squared_norm
-
- @staticmethod
- def compute_dual_residual_squared_norm(ph, previous_average, rho_scaled=True):
- dual_residual_squared_norm = 0.0
- for stage in ph.scenario_tree.stages[:-1]:
- for tree_node in stage.nodes:
- node_dual_residual_squared_norm = 0.0
- node_previous_average = previous_average[tree_node.name]
- node_average = tree_node._averages
- node_rho = tree_node._scenarios[0]._rho[tree_node.name]
- for variable_id in tree_node._standard_variable_ids:
- if rho_scaled:
- node_dual_residual_squared_norm += \
- node_rho[variable_id]**2 * \
- (node_average[variable_id] - \
- node_previous_average[variable_id])**2
- else:
- node_dual_residual_squared_norm += \
- (node_average[variable_id] - \
- node_previous_average[variable_id])**2
- dual_residual_squared_norm += \
- tree_node.conditional_probability * \
- node_dual_residual_squared_norm
- return dual_residual_squared_norm
-
- def computeMetric(self, ph, scenario_tree, instances):
- previous_average = self._previous_average
- self._previous_average = self.snapshot_average(ph)
- if previous_average is None:
- return None
-
- prsqn = self.compute_primal_residual_squared_norm(ph)
- drsqn = self.compute_dual_residual_squared_norm(ph,
- previous_average)
-
- return prsqn+drsqn
-
-#
-# Implements the baseline "term-diff" metric from our submitted CMS
-# paper. For each variable, take the fabs of the difference from the
-# mean at that node, and weight by scenario probability.
-#
-
-class TermDiffConvergence(ConvergenceBase):
-
- """ Constructor
- Arguments: None beyond those in the base class.
-
- """
- def __init__(self, *args, **kwds):
-
- ConvergenceBase.__init__(self, *args, **kwds)
- self._name = "Term diff"
-
- def computeMetric(self, ph, scenario_tree, instances):
-
- term_diff = 0.0
-
- for stage, tree_node, variable_id, variable_values, is_fixed, is_stale \
- in scenario_tree_node_variables_generator_noinstances(
- scenario_tree,
- includeDerivedVariables=False,
- includeLastStage=False):
-
- if (not is_stale) or (is_fixed):
-
- for var_value, scenario_probability in variable_values:
-
- term_diff += \
- scenario_probability * \
- fabs(var_value - tree_node._averages[variable_id])
-
- return term_diff
-
-
-#
-# Implements the normalized "term-diff" metric from our submitted CMS
-# paper. For each variable, take the fabs of the difference from the
-# mean at that node, and weight by scenario probability - but
-# normalize by the mean. If I wasn't being lazy, this could be
-# derived from the TermDiffConvergence class to avoid code replication
-# :)
-#
-
-class NormalizedTermDiffConvergence(ConvergenceBase):
-
- """ Constructor
- Arguments: None beyond those in the base class.
-
- """
- def __init__(self, *args, **kwds):
-
- ConvergenceBase.__init__(self, *args, **kwds)
- self._name = "Normalized term diff"
-
- def computeMetric(self, ph, scenario_tree, instances):
-
- normalized_term_diff = 0.0
-
- for stage, tree_node, variable_id, variable_values, is_fixed, is_stale \
- in scenario_tree_node_variables_generator_noinstances(
- scenario_tree,
- includeDerivedVariables=False,
- includeLastStage=False):
-
- average_value = tree_node._averages[variable_id]
-
- # should think about nixing the magic constant below (not
- # sure how to best pararamterize it).
- if ((not is_stale) or (is_fixed)) and \
- (fabs(average_value) > 0.0001):
-
- for var_value, scenario_probability in variable_values:
-
- normalized_term_diff += \
- scenario_probability * \
- fabs((var_value - average_value)/average_value)
-
- normalized_term_diff = \
- normalized_term_diff / \
- (ph._total_discrete_vars + ph._total_continuous_vars)
-
- return normalized_term_diff
-
-#
-# Implements a super-simple convergence criterion based on when a
-# particular number of discrete variables are free (e.g., 20 or
-# fewer).
-#
-
-class NumFixedDiscreteVarConvergence(ConvergenceBase):
-
- """ Constructor
- Arguments: None beyond those in the base class.
-
- """
- def __init__(self, *args, **kwds):
-
- ConvergenceBase.__init__(self, *args, **kwds)
- self._name = "Number of fixed discrete variables"
-
- def computeMetric(self, ph, scenario_tree, instances):
-
- # the metric is brain-dead; just look at PH to see how many
- # free discrete variables there are!
- return ph._total_discrete_vars - ph._total_fixed_discrete_vars
-
-#
-# Implements a convergence criterion that is based on exceeding
-# a threshold on the outer bound.
-#
-
-class OuterBoundConvergence(ConvergenceBase):
-
- """ Constructor
- Arguments: None beyond those in the base class.
-
- """
- def __init__(self, *args, **kwds):
-
- ConvergenceBase.__init__(self, *args, **kwds)
- self._name = "Outer bound"
-
- def computeMetric(self, ph, scenario_tree, instances):
-
- return ph._best_reported_outer_bound
-#
-# Implements a convergence criterion that is based on exceeding
-# the gap between the best inner and best outer bound
-#
-
-class InnerOuterConvergence(ConvergenceBase):
-
- """ Constructor
- Arguments: None beyond those in the base class.
-
- """
- def __init__(self, *args, **kwds):
-
- ConvergenceBase.__init__(self, *args, **kwds)
- self._name = "Inner Outer gap bound"
-
- def computeMetric(self, ph, scenario_tree, instances):
- if ph._best_reported_outer_bound is None \
- or ph._best_reported_inner_bound is None:
- return float('inf')
- else:
- return abs(ph._best_reported_outer_bound \
- - ph._best_reported_inner_bound)
diff --git a/pyomo/pysp/convert/__init__.py b/pyomo/pysp/convert/__init__.py
deleted file mode 100644
index 84c8377d11d..00000000000
--- a/pyomo/pysp/convert/__init__.py
+++ /dev/null
@@ -1,13 +0,0 @@
-# ___________________________________________________________________________
-#
-# Pyomo: Python Optimization Modeling Objects
-# Copyright 2017 National Technology and Engineering Solutions of Sandia, LLC
-# Under the terms of Contract DE-NA0003525 with National Technology and
-# Engineering Solutions of Sandia, LLC, the U.S. Government retains certain
-# rights in this software.
-# This software is distributed under the 3-clause BSD License.
-# ___________________________________________________________________________
-
-import pyomo.pysp.convert.schuripopt
-import pyomo.pysp.convert.smps
-import pyomo.pysp.convert.ddsip
diff --git a/pyomo/pysp/convert/ddsip.py b/pyomo/pysp/convert/ddsip.py
deleted file mode 100644
index 2675ef02919..00000000000
--- a/pyomo/pysp/convert/ddsip.py
+++ /dev/null
@@ -1,1151 +0,0 @@
-# _________________________________________________________________________
-#
-# Pyomo: Python Optimization Modeling Objects
-# Copyright (c) 2014 Sandia Corporation.
-# Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation,
-# the U.S. Government retains certain rights in this software.
-# This software is distributed under the BSD License.
-# _________________________________________________________________________
-
-import os
-import time
-import sys
-import argparse
-import shutil
-import filecmp
-import logging
-
-from pyomo.opt import WriterFactory
-from pyomo.common.collections import ComponentMap
-from pyomo.core.base.numvalue import value, as_numeric
-from pyomo.core.base.var import _VarData
-from pyomo.core.base.constraint import Constraint, _ConstraintData
-from pyomo.core.base import TextLabeler, NumericLabeler
-from pyomo.pysp.scenariotree.manager import InvocationType
-from pyomo.pysp.annotations import (locate_annotations,
- StochasticConstraintBoundsAnnotation,
- StochasticConstraintBodyAnnotation,
- StochasticObjectiveAnnotation,
- StochasticVariableBoundsAnnotation)
-from pyomo.pysp.convert.smps import (map_variable_stages,
- map_constraint_stages,
- build_repns,
- _safe_remove_file,
- _no_negative_zero,
- _deterministic_check_value,
- _deterministic_check_constant)
-from pyomo.pysp.util.config import (PySPConfigValue,
- PySPConfigBlock,
- safe_register_common_option,
- safe_register_unique_option,
- _domain_must_be_str)
-from pyomo.pysp.scenariotree.manager import \
- (ScenarioTreeManagerClientSerial,
- ScenarioTreeManagerClientPyro)
-from pyomo.pysp.util.misc import launch_command
-import pyomo.environ
-
-from six import iteritems
-
-thisfile = os.path.abspath(__file__)
-
-logger = logging.getLogger('pyomo.pysp')
-
-def _convert_external_setup(worker, scenario, *args, **kwds):
- reference_model = scenario._instance
- #
- # We will be tweaking the standard_repn objects on objectives
- # and constraints, so cache anything related to this here so
- # that this function does not have any side effects on the
- # instance after returning
- #
- cached_attrs = []
- for block in reference_model.block_data_objects(
- active=True,
- descend_into=True):
- block_cached_attrs = {}
- if hasattr(block, "_gen_obj_repn"):
- block_cached_attrs["_gen_obj_repn"] = \
- block._gen_obj_repn
- del block._gen_obj_repn
- if hasattr(block, "_gen_con_repn"):
- block_cached_attrs["_gen_con_repn"] = \
- block._gen_con_repn
- del block._gen_con_repn
- if hasattr(block, "_repn"):
- block_cached_attrs["_repn"] = \
- block._repn
- del block._repn
- cached_attrs.append((block, block_cached_attrs))
-
- try:
- return _convert_external_setup_without_cleanup(
- worker, scenario, *args, **kwds)
- except:
- logger.error("Failed to complete partial DDSIP conversion "
- "for scenario: %s" % (scenario.name))
- raise
- finally:
- for block, block_cached_attrs in cached_attrs:
- if hasattr(block, "_gen_obj_repn"):
- del block._gen_obj_repn
- if hasattr(block, "_gen_con_repn"):
- del block._gen_con_repn
- if hasattr(block, "_repn"):
- del block._repn
- for name in block_cached_attrs:
- setattr(block, name, block_cached_attrs[name])
-
-def _convert_external_setup_without_cleanup(
- worker,
- scenario,
- output_directory,
- firststage_var_suffix,
- enforce_derived_nonanticipativity,
- io_options):
- assert os.path.exists(output_directory)
-
- io_options = dict(io_options)
- scenario_tree = worker.scenario_tree
- reference_model = scenario._instance
- rootnode = scenario_tree.findRootNode()
- firststage = scenario_tree.stages[0]
- secondstage = scenario_tree.stages[1]
- constraint_name_buffer = {}
- objective_name_buffer = {}
- variable_name_buffer = {}
-
- all_constraints = list(
- con for con in reference_model.component_data_objects(
- Constraint,
- active=True,
- descend_into=True))
-
- #
- # Check for model annotations
- #
- stochastic_rhs = locate_annotations(
- reference_model,
- StochasticConstraintBoundsAnnotation,
- max_allowed=1)
- if len(stochastic_rhs) == 0:
- stochastic_rhs = None
- stochastic_rhs_entries = {}
- empty_rhs_annotation = False
- else:
- assert len(stochastic_rhs) == 1
- stochastic_rhs = stochastic_rhs[0][1]
- if stochastic_rhs.has_declarations:
- empty_rhs_annotation = False
- stochastic_rhs_entries = stochastic_rhs.expand_entries()
- stochastic_rhs_entries.sort(
- key=lambda x: x[0].getname(True, constraint_name_buffer))
- if len(stochastic_rhs_entries) == 0:
- raise RuntimeError(
- "The %s annotation was declared "
- "with external entries but no active Constraint "
- "objects were recovered from those entries."
- % (StochasticConstraintBoundsAnnotation.__name__))
- else:
- empty_rhs_annotation = True
- stochastic_rhs_entries = tuple((con, stochastic_rhs.default)
- for con in all_constraints)
-
-
- stochastic_matrix = locate_annotations(
- reference_model,
- StochasticConstraintBodyAnnotation,
- max_allowed=1)
- if len(stochastic_matrix) == 0:
- stochastic_matrix = None
- stochastic_matrix_entries = {}
- empty_matrix_annotation = False
- else:
- assert len(stochastic_matrix) == 1
- stochastic_matrix = stochastic_matrix[0][1]
- if stochastic_matrix.has_declarations:
- empty_matrix_annotation = False
- stochastic_matrix_entries = stochastic_matrix.expand_entries()
- stochastic_matrix_entries.sort(
- key=lambda x: x[0].getname(True, constraint_name_buffer))
- if len(stochastic_matrix_entries) == 0:
- raise RuntimeError(
- "The %s annotation was declared "
- "with external entries but no active Constraint "
- "objects were recovered from those entries."
- % (StochasticConstraintBoundsAnnotation.__name__))
- else:
- empty_matrix_annotation = True
- stochastic_matrix_entries = tuple((con,stochastic_matrix.default)
- for con in all_constraints)
-
- stochastic_constraint_ids = set()
- stochastic_constraint_ids.update(id(con) for con,_
- in stochastic_rhs_entries)
- stochastic_constraint_ids.update(id(con) for con,_
- in stochastic_matrix_entries)
-
- stochastic_objective = locate_annotations(
- reference_model,
- StochasticObjectiveAnnotation,
- max_allowed=1)
- if len(stochastic_objective) == 0:
- stochastic_objective = None
- else:
- assert len(stochastic_objective) == 1
- stochastic_objective = stochastic_objective[0][1]
-
- stochastic_varbounds = locate_annotations(
- reference_model,
- StochasticVariableBoundsAnnotation)
- if len(stochastic_varbounds) > 0:
- raise ValueError(
- "The DDSIP writer does not currently support "
- "stochastic variable bounds. Invalid annotation type: %s"
- % (StochasticVariableBoundsAnnotation.__name__))
-
- if (stochastic_rhs is None) and \
- (stochastic_matrix is None) and \
- (stochastic_objective is None):
- raise RuntimeError(
- "No stochastic annotations found. DDSIP "
- "conversion requires at least one of the following "
- "annotation types:\n - %s\n - %s\n - %s"
- % (StochasticConstraintBoundsAnnotation.__name__,
- StochasticConstraintBodyAnnotation.__name__,
- StochasticObjectiveAnnotation.__name__))
-
- assert not hasattr(reference_model, "_repn")
- repn_cache = build_repns(reference_model)
- assert hasattr(reference_model, "_repn")
- assert not reference_model._gen_obj_repn
- assert not reference_model._gen_con_repn
- # compute values
- for block_repns in repn_cache.values():
- for repn in block_repns.values():
- repn.constant = value(repn.constant)
- repn.linear_coefs = [value(c) for c in repn.linear_coefs]
- repn.quadratic_coefs = [value(c) for c in repn.quadratic_coefs]
-
- #
- # Write the LP file once to obtain the symbol map
- #
- output_filename = os.path.join(output_directory,
- scenario.name+".lp.setup")
- with WriterFactory("lp") as writer:
- assert 'column_order' not in io_options
- assert 'row_order' not in io_options
- output_fname, symbol_map = writer(reference_model,
- output_filename,
- lambda x: True,
- io_options)
- assert output_fname == output_filename
- _safe_remove_file(output_filename)
-
- StageToVariableMap = map_variable_stages(
- scenario,
- scenario_tree,
- symbol_map,
- enforce_derived_nonanticipativity=enforce_derived_nonanticipativity)
- firststage_variable_ids = \
- set(id(var) for symbol, var, scenario_tree_id
- in StageToVariableMap[firststage.name])
- secondstage_variable_ids = \
- set(id(var) for symbol, var, scenario_tree_id
- in StageToVariableMap[secondstage.name])
-
- StageToConstraintMap = \
- map_constraint_stages(
- scenario,
- scenario_tree,
- symbol_map,
- stochastic_constraint_ids,
- firststage_variable_ids,
- secondstage_variable_ids)
- secondstage_constraint_ids = \
- set(id(con) for symbols, con
- in StageToConstraintMap[secondstage.name])
-
- assert len(scenario_tree.stages) == 2
- firststage = scenario_tree.stages[0]
- secondstage = scenario_tree.stages[1]
-
- #
- # Make sure the objective references all first stage variables.
- # We do this by directly modifying the _repn of the
- # objective which the LP/MPS writer will reference next time we call
- # it. In addition, make sure that the first second-stage variable
- # in our column ordering also appears in the objective so that
- # ONE_VAR_CONSTANT does not get identified as the first
- # second-stage variable.
- # ** Just do NOT preprocess again until we call the writer **
- #
- objective_object = scenario._instance_objective
- assert objective_object is not None
- objective_block = objective_object.parent_block()
- objective_repn = repn_cache[id(objective_block)][objective_object]
-
- #
- # Create column (variable) ordering maps for LP/MPS files
- #
- column_order = ComponentMap()
- firststage_variable_count = 0
- secondstage_variable_count = 0
- # first-stage variables
- for column_index, (symbol, var, scenario_tree_id) \
- in enumerate(StageToVariableMap[firststage.name]):
- column_order[var] = column_index
- firststage_variable_count += 1
- # second-stage variables
- for column_index, (symbol, var, scenario_tree_id) \
- in enumerate(StageToVariableMap[secondstage.name],
- len(column_order)):
- column_order[var] = column_index
- secondstage_variable_count += 1
- # account for the ONE_VAR_CONSTANT second-stage variable
- # added by the LP writer
- secondstage_variable_count += 1
-
- #
- # Create row (constraint) ordering maps for LP/MPS files
- #
- firststage_constraint_count = 0
- secondstage_constraint_count = 0
- row_order = ComponentMap()
- # first-stage constraints
- for row_index, (symbols, con) \
- in enumerate(StageToConstraintMap[firststage.name]):
- row_order[con] = row_index
- firststage_constraint_count += len(symbols)
- # second-stage constraints
- for row_index, (symbols, con) \
- in enumerate(StageToConstraintMap[secondstage.name],
- len(row_order)):
- row_order[con] = row_index
- secondstage_constraint_count += len(symbols)
- # account for the ONE_VAR_CONSTANT = 1 second-stage constraint
- # added by the LP writer
- secondstage_constraint_count += 1
-
- #
- # Create a custom labeler that allows DDSIP to identify
- # first-stage variables
- #
- if io_options.pop('symbolic_solver_labels', False):
- _labeler = TextLabeler()
- else:
- _labeler = NumericLabeler('x')
- labeler = lambda x: _labeler(x) + \
- (""
- if ((not isinstance(x, _VarData)) or \
- (id(x) not in firststage_variable_ids)) else \
- firststage_var_suffix)
-
- #
- # Write the ordered LP/MPS file
- #
- output_filename = os.path.join(output_directory,
- scenario.name+".lp")
- symbols_filename = os.path.join(output_directory,
- scenario.name+".lp.symbols")
- with WriterFactory("lp") as writer:
- assert 'column_order' not in io_options
- assert 'row_order' not in io_options
- assert 'labeler' not in io_options
- assert 'force_objective_constant' not in io_options
- io_options['column_order'] = column_order
- io_options['row_order'] = row_order
- io_options['force_objective_constant'] = True
- io_options['labeler'] = labeler
- output_fname, symbol_map = writer(reference_model,
- output_filename,
- lambda x: True,
- io_options)
- assert output_fname == output_filename
- # write the lp file symbol paired with the scenario
- # tree id for each variable in the root node
- with open(symbols_filename, "w") as f:
- st_symbol_map = reference_model._ScenarioTreeSymbolMap
- lines = []
- for id_ in sorted(rootnode._variable_ids):
- var = st_symbol_map.bySymbol[id_]
- if not var.is_expression_type():
- lp_label = symbol_map.byObject[id(var)]
- lines.append("%s %s\n" % (lp_label, id_))
- f.writelines(lines)
-
- # re-generate these maps as the LP/MPS symbol map
- # is likely different
- StageToVariableMap = map_variable_stages(
- scenario,
- scenario_tree,
- symbol_map,
- enforce_derived_nonanticipativity=enforce_derived_nonanticipativity)
-
- StageToConstraintMap = map_constraint_stages(
- scenario,
- scenario_tree,
- symbol_map,
- stochastic_constraint_ids,
- firststage_variable_ids,
- secondstage_variable_ids)
-
- # generate a few data structures that are used
- # when writing the .sc files
- constraint_symbols = ComponentMap(
- (con, symbols) for stage_name in StageToConstraintMap
- for symbols, con in StageToConstraintMap[stage_name])
-
- #
- # Write the body of the .sc files
- #
- modified_constraint_lb = ComponentMap()
- modified_constraint_ub = ComponentMap()
-
- #
- # Stochastic RHS
- #
- # **NOTE: In the code that follows we assume the LP
- # writer always moves constraint body
- # constants to the rhs and that the lower part
- # of any range constraints are written before
- # the upper part.
- #
- stochastic_rhs_count = 0
- with open(os.path.join(output_directory,
- scenario.name+".rhs.sc.struct"),'w') as f_rhs_struct:
- with open(os.path.join(output_directory,
- scenario.name+".rhs.sc"),'w') as f_rhs:
- scenario_probability = scenario.probability
- rhs_struct_template = " %s\n"
- rhs_template = " %.17g\n"
- f_rhs.write("scen\n%.17g\n"
- % (_no_negative_zero(scenario_probability)))
- if stochastic_rhs is not None:
- for con, include_bound in stochastic_rhs_entries:
- assert isinstance(con, _ConstraintData)
- if not empty_rhs_annotation:
- # verify that this constraint was
- # flagged by PySP or the user as second-stage
- if id(con) not in secondstage_constraint_ids:
- raise RuntimeError(
- "The constraint %s has been declared "
- "in the %s annotation but it was not identified as "
- "a second-stage constraint. To correct this issue, "
- "remove the constraint from this annotation."
- % (con.name,
- StochasticConstraintBoundsAnnotation.__name__))
-
- constraint_repn = \
- repn_cache[id(con.parent_block())][con]
- if not constraint_repn.is_linear():
- raise RuntimeError("Only linear constraints are "
- "accepted for conversion to DDSIP format. "
- "Constraint %s is not linear."
- % (con.name))
-
- body_constant = constraint_repn.constant
- # We are going to rewrite the core problem file
- # with all stochastic values set to zero. This will
- # allow an easy test for missing user annotations.
- constraint_repn.constant = 0
- if body_constant is None:
- body_constant = 0.0
- symbols = constraint_symbols[con]
- assert len(symbols) > 0
- for con_label in symbols:
- if con_label.startswith('c_e_') or \
- con_label.startswith('c_l_'):
- assert (include_bound is True) or \
- (include_bound[0] is True)
- stochastic_rhs_count += 1
- f_rhs_struct.write(rhs_struct_template % (con_label))
- f_rhs.write(rhs_template %
- (_no_negative_zero(
- value(con.lower) - \
- value(body_constant))))
- # We are going to rewrite the core problem file
- # with all stochastic values set to zero. This will
- # allow an easy test for missing user annotations.
- modified_constraint_lb[con] = con.lower
- con._lower = _deterministic_check_constant
- if con_label.startswith('c_e_'):
- modified_constraint_ub[con] = con.upper
- con._upper = _deterministic_check_constant
- elif con_label.startswith('r_l_') :
- if (include_bound is True) or \
- (include_bound[0] is True):
- stochastic_rhs_count += 1
- f_rhs_struct.write(rhs_struct_template % (con_label))
- f_rhs.write(rhs_template %
- (_no_negative_zero(
- value(con.lower) - \
- value(body_constant))))
- # We are going to rewrite the core problem file
- # with all stochastic values set to zero. This will
- # allow an easy test for missing user annotations.
- modified_constraint_lb[con] = con.lower
- con._lower = _deterministic_check_constant
- elif con_label.startswith('c_u_'):
- assert (include_bound is True) or \
- (include_bound[1] is True)
- stochastic_rhs_count += 1
- f_rhs_struct.write(rhs_struct_template % (con_label))
- f_rhs.write(rhs_template %
- (_no_negative_zero(
- value(con.upper) - \
- value(body_constant))))
- # We are going to rewrite the core problem file
- # with all stochastic values set to zero. This will
- # allow an easy test for missing user annotations.
- modified_constraint_ub[con] = con.upper
- con._upper = _deterministic_check_constant
- elif con_label.startswith('r_u_'):
- if (include_bound is True) or \
- (include_bound[1] is True):
- stochastic_rhs_count += 1
- f_rhs_struct.write(rhs_struct_template % (con_label))
- f_rhs.write(rhs_template %
- (_no_negative_zero(
- value(con.upper) - \
- value(body_constant))))
- # We are going to rewrite the core problem file
- # with all stochastic values set to zero. This will
- # allow an easy test for missing user annotations.
- modified_constraint_ub[con] = con.upper
- con._upper = _deterministic_check_constant
- else:
- assert False
-
- #
- # Stochastic Matrix
- #
- stochastic_matrix_count = 0
- with open(os.path.join(output_directory,
- scenario.name+".matrix.sc.struct"),'w') as f_mat_struct:
- with open(os.path.join(output_directory,
- scenario.name+".matrix.sc"),'w') as f_mat:
- scenario_probability = scenario.probability
- matrix_struct_template = " %s %s\n"
- matrix_template = " %.17g\n"
- f_mat.write("scen\n")
- if stochastic_matrix is not None:
- for con, var_list in stochastic_matrix_entries:
- assert isinstance(con, _ConstraintData)
- if not empty_matrix_annotation:
- # verify that this constraint was
- # flagged by PySP or the user as second-stage
- if id(con) not in secondstage_constraint_ids:
- raise RuntimeError(
- "The constraint %s has been declared "
- "in the %s annotation but it was not identified as "
- "a second-stage constraint. To correct this issue, "
- "remove the constraint from this annotation."
- % (con.name,
- StochasticConstraintBodyAnnotation.__name__))
- constraint_repn = \
- repn_cache[id(con.parent_block())][con]
- if not constraint_repn.is_linear():
- raise RuntimeError("Only linear constraints are "
- "accepted for conversion to DDSIP format. "
- "Constraint %s is not linear."
- % (con.name))
- assert len(constraint_repn.linear_vars) > 0
- if var_list is None:
- var_list = constraint_repn.linear_vars
- assert len(var_list) > 0
- symbols = constraint_symbols[con]
- # sort the variable list by the column ordering
- # so that we have deterministic output
- var_list = list(var_list)
- var_list.sort(key=lambda _v: column_order[_v])
- new_coefs = list(constraint_repn.linear_coefs)
- for var in var_list:
- assert isinstance(var, _VarData)
- assert not var.fixed
- var_coef = None
- for i, (_var, coef) in enumerate(zip(constraint_repn.linear_vars,
- constraint_repn.linear_coefs)):
- if _var is var:
- var_coef = coef
- # We are going to rewrite with core problem file
- # with all stochastic values set to zero. This will
- # allow an easy test for missing user annotations.
- new_coefs[i] = _deterministic_check_value
- break
- if var_coef is None:
- raise RuntimeError(
- "The coefficient for variable %s has "
- "been marked as stochastic in constraint %s using "
- "the %s annotation, but the variable does not appear"
- " in the canonical constraint expression."
- % (var.name,
- con.name,
- StochasticConstraintBodyAnnotation.__name__))
- var_label = symbol_map.byObject[id(var)]
- for con_label in symbols:
- stochastic_matrix_count += 1
- f_mat_struct.write(matrix_struct_template
- % (con_label, var_label))
- f_mat.write(matrix_template
- % (_no_negative_zero(value(var_coef))))
-
- constraint_repn.linear_coefs = tuple(new_coefs)
-
- #
- # Stochastic Objective
- #
- stochastic_cost_count = 0
- with open(os.path.join(output_directory,
- scenario.name+".cost.sc.struct"),'w') as f_obj_struct:
- with open(os.path.join(output_directory,
- scenario.name+".cost.sc"),'w') as f_obj:
- obj_struct_template = " %s\n"
- obj_template = " %.17g\n"
- f_obj.write("scen\n")
- if stochastic_objective is not None:
- if stochastic_objective.has_declarations:
- sorted_values = stochastic_objective.expand_entries()
- assert len(sorted_values) <= 1
- if len(sorted_values) == 0:
- raise RuntimeError(
- "The %s annotation was declared "
- "with external entries but no active Objective "
- "objects were recovered from those entries."
- % (StochasticObjectiveAnnotation.__name__))
- obj, (objective_variables, include_constant) = \
- sorted_values[0]
- assert obj is objective_object
- else:
- objective_variables, include_constant = \
- stochastic_objective.default
-
- if not objective_repn.is_linear():
- raise RuntimeError("Only linear stochastic objectives are "
- "accepted for conversion to DDSIP format. "
- "Objective %s is not linear."
- % (objective_object.name))
- if objective_variables is None:
- objective_variables = objective_repn.linear_vars
- stochastic_objective_label = symbol_map.byObject[id(objective_object)]
- # sort the variable list by the column ordering
- # so that we have deterministic output
- objective_variables = list(objective_variables)
- objective_variables.sort(key=lambda _v: column_order[_v])
- assert (len(objective_variables) > 0) or include_constant
- new_coefs = list(objective_repn.linear_coefs)
- for var in objective_variables:
- assert isinstance(var, _VarData)
- var_coef = None
- for i, (_var, coef) in enumerate(zip(objective_repn.linear_vars,
- objective_repn.linear_coefs)):
- if _var is var:
- var_coef = coef
- # We are going to rewrite the core problem file
- # with all stochastic values set to zero. This will
- # allow an easy test for missing user annotations.
- new_coefs[i] = _deterministic_check_value
- break
- if var_coef is None:
- raise RuntimeError(
- "The coefficient for variable %s has "
- "been marked as stochastic in objective %s using "
- "the %s annotation, but the variable does not appear"
- " in the canonical objective expression."
- % (var.name,
- objective_object.name,
- StochasticObjectiveAnnotation.__name__))
- var_label = symbol_map.byObject[id(var)]
- stochastic_cost_count += 1
- f_obj_struct.write(obj_struct_template % (var_label))
- f_obj.write(obj_template
- % (_no_negative_zero(value(var_coef))))
-
- objective_repn.linear_coefs = tuple(new_coefs)
- if include_constant:
- obj_constant = objective_repn.constant
- # We are going to rewrite the core problem file
- # with all stochastic values set to zero. This will
- # allow an easy test for missing user annotations.
- objective_repn.constant = _deterministic_check_value
- if obj_constant is None:
- obj_constant = 0.0
- stochastic_cost_count += 1
- f_obj_struct.write(obj_struct_template % ("ONE_VAR_CONSTANT"))
- f_obj.write(obj_template % (_no_negative_zero(obj_constant)))
-
- #
- # Write the deterministic part of the LP/MPS-file to its own
- # file for debugging purposes
- #
- reference_model_name = reference_model.name
- reference_model._name = "ZeroStochasticData"
- det_output_filename = os.path.join(output_directory,
- scenario.name+".lp.det")
- with WriterFactory("lp") as writer:
- output_fname, symbol_map = writer(reference_model,
- det_output_filename,
- lambda x: True,
- io_options)
- assert output_fname == det_output_filename
- reference_model._name = reference_model_name
-
- # reset bounds on any constraints that were modified
- for con, lower in iteritems(modified_constraint_lb):
- con._lower = as_numeric(lower)
- for con, upper in iteritems(modified_constraint_ub):
- con._upper = as_numeric(upper)
-
- return (firststage_variable_count,
- secondstage_variable_count,
- firststage_constraint_count,
- secondstage_constraint_count,
- stochastic_cost_count,
- stochastic_rhs_count,
- stochastic_matrix_count)
-
-def convert_external(output_directory,
- firststage_var_suffix,
- scenario_tree_manager,
- enforce_derived_nonanticipativity=False,
- io_options=None,
- disable_consistency_checks=False,
- keep_scenario_files=False,
- verbose=False):
- import pyomo.environ
- import pyomo.solvers.plugins.smanager.phpyro
-
- if io_options is None:
- io_options = {}
-
- assert os.path.exists(output_directory)
-
- scenario_tree = scenario_tree_manager.scenario_tree
-
- if scenario_tree.contains_bundles():
- raise ValueError(
- "DDSIP conversion does not yet handle bundles")
-
- scenario_directory = os.path.join(output_directory,
- 'scenario_files')
-
- if not os.path.exists(scenario_directory):
- os.mkdir(scenario_directory)
-
- counts = scenario_tree_manager.invoke_function(
- "_convert_external_setup",
- thisfile,
- invocation_type=InvocationType.PerScenario,
- function_args=(scenario_directory,
- firststage_var_suffix,
- enforce_derived_nonanticipativity,
- io_options))
-
- reference_scenario = scenario_tree.scenarios[0]
- reference_scenario_name = reference_scenario.name
- (firststage_variable_count,
- secondstage_variable_count,
- firststage_constraint_count,
- secondstage_constraint_count,
- stochastic_cost_count,
- stochastic_rhs_count,
- stochastic_matrix_count) = counts[reference_scenario_name]
-
- #
- # Copy the reference scenario's core, row, col, and tim
- # to the output directory. The consistency checks will
- # verify that these files match across scenarios.
- #
- input_files = {}
- lp_dst = os.path.join(output_directory, "core.lp")
- _safe_remove_file(lp_dst)
- lp_src = os.path.join(scenario_directory,
- reference_scenario_name+".lp")
- shutil.copy2(lp_src, lp_dst)
- input_files["core"] = lp_dst
-
- symbols_dst = os.path.join(output_directory, "core.lp.symbols")
- _safe_remove_file(symbols_dst)
- symbols_src = os.path.join(scenario_directory,
- reference_scenario_name+".lp.symbols")
- shutil.copy2(symbols_src, symbols_dst)
- input_files["symbols"] = symbols_dst
-
- #
- # Merge the per-scenario .sc files into one
- #
- for _type in ["rhs", "cost", "matrix"]:
-
- basename = _type+".sc"
- if basename == "cost.sc":
- if stochastic_cost_count == 0:
- continue
- elif basename == "matrix.sc":
- if stochastic_matrix_count == 0:
- continue
- else:
- assert basename == "rhs.sc"
- # Note: DDSIP requires that the RHS files always
- # exists because it contains the scenario
- # probabilities
-
- dst = os.path.join(output_directory, basename)
- input_files[_type] = dst
- _safe_remove_file(dst)
- with open(dst, "w") as fdst:
- # Note: If the RHS file is going to be empty
- # then we must leave out the "Names" line
- if not ((_type == "rhs") and
- (stochastic_rhs_count == 0)):
- fdst.write("Names\n")
- assert reference_scenario is scenario_tree.scenarios[0]
- src = os.path.join(scenario_directory,
- reference_scenario.name+"."+basename+".struct")
- assert os.path.exists(src)
- with open(src, "r") as fsrc:
- shutil.copyfileobj(fsrc, fdst)
- for scenario in scenario_tree.scenarios:
- src = os.path.join(scenario_directory,
- scenario.name+"."+basename)
- assert os.path.exists(src)
- with open(src, "r") as fsrc:
- shutil.copyfileobj(fsrc, fdst)
-
- if verbose:
- print("\nDDSIP Conversion Complete")
- print("Output Saved To: "+os.path.relpath(output_directory))
- print("Basic Problem Information:")
- print(" - Variables:")
- print(" - First Stage: %d"
- % (firststage_variable_count))
- print(" - Second Stage: %d"
- % (secondstage_variable_count))
- print(" - Constraints:")
- print(" - First Stage: %d"
- % (firststage_constraint_count))
- print(" - Second Stage: %d"
- % (secondstage_constraint_count))
- print(" - Stoch. RHS Entries: %d"
- % (stochastic_rhs_count))
- print(" - Stoch. Matrix Entries: %d"
- % (stochastic_matrix_count))
- print(" - Objective:")
- print(" - Stoch. Cost Entries: %d"
- % (stochastic_cost_count))
-
- if not disable_consistency_checks:
- if verbose:
- print("\nStarting scenario structure consistency checks "
- "across scenario files stored in %s."
- % (scenario_directory))
- print("This may take some time. If this test is "
- "prohibitively slow or can not be executed on "
- "your system, disable it by activating the "
- "disable_consistency_check option.")
- has_diff = False
- try:
- if not os.system('diff --help > /dev/null'):
- has_diff = True
- else:
- has_diff = False
- except:
- has_diff = False
-
- if verbose:
- print(" - Checking structure in stochastic files...")
- for basename in ["rhs.sc.struct", "cost.sc.struct", "matrix.sc.struct"]:
- reference_struct_filename = os.path.join(
- scenario_directory,
- reference_scenario.name+"."+basename)
- for scenario in scenario_tree.scenarios:
- scenario_struct_filename = \
- os.path.join(scenario_directory,
- scenario.name+"."+basename)
- if has_diff:
- rc = os.system('diff -q '+scenario_struct_filename+' '+
- reference_struct_filename)
- else:
- rc = not filecmp.cmp(scenario_struct_filename,
- reference_struct_filename,
- shallow=False)
- if rc:
- raise ValueError(
- "The structure indicated in file '%s' does not match "
- "that for scenario %s indicated in file '%s'. This "
- "suggests one or more locations of stachastic data "
- "have not been annotated. If you feel this message is "
- "in error, please report this issue to the PySP "
- "developers."
- % (reference_struct_filename,
- scenario.name,
- scenario_struct_filename))
-
- if verbose:
- print(" - Checking deterministic sections in the core "
- "problem file...")
- reference_lp_det_filename = \
- os.path.join(scenario_directory,
- reference_scenario.name+".lp.det")
-
- for scenario in scenario_tree.scenarios:
- scenario_lp_det_filename = \
- os.path.join(scenario_directory,
- scenario.name+".lp.det")
- if has_diff:
- rc = os.system('diff -q '+scenario_lp_det_filename+' '+
- reference_lp_det_filename)
- else:
- rc = not filecmp.cmp(scenario_lp_det_filename,
- reference_lp_det_filename,
- shallow=False)
- if rc:
- raise ValueError(
- "One or more deterministic parts of the problem found "
- "in file '%s' do not match those for scenario %s found "
- "in file %s. This suggests that one or more locations "
- "of stochastic data have not been been annotated on the "
- "reference Pyomo model. If this seems like a tolerance "
- "issue or a developer error, please report this issue "
- "to the PySP developers."
- % (reference_lp_det_filename,
- scenario.name,
- scenario_lp_det_filename))
-
- if not keep_scenario_files:
- if verbose:
- print("Cleaning temporary per-scenario files")
-
- for scenario in scenario_tree.scenarios:
-
- for basename in ["lp", "lp.det", "lp.symbols",
- "matrix.sc", "matrix.sc.struct",
- "cost.sc", "cost.sc.struct",
- "rhs.sc", "rhs.sc.struct"]:
- scenario_filename = \
- os.path.join(scenario_directory,
- scenario.name+"."+basename)
- assert os.path.exists(scenario_filename)
- _safe_remove_file(scenario_filename)
-
- # only delete this directory if it is empty,
- # it might have previously existed and contains
- # user files
- if len(os.listdir(scenario_directory)) == 0:
- shutil.rmtree(scenario_directory, ignore_errors=True)
- else:
- if verbose:
- print("Temporary per-scenario files are retained in "
- "scenario_files subdirectory")
- pass
-
- config_filename = os.path.join(output_directory,
- "ddsip.config")
- with open(config_filename, 'w') as f:
- f.write("BEGIN \n\n\n")
- f.write("FIRSTCON "+str(firststage_constraint_count)+"\n")
- f.write("FIRSTVAR "+str(firststage_variable_count)+"\n")
- f.write("SECCON "+str(secondstage_constraint_count)+"\n")
- f.write("SECVAR "+str(secondstage_variable_count)+"\n")
- f.write("POSTFIX "+firststage_var_suffix+"\n")
- f.write("SCENAR "+str(len(scenario_tree.scenarios))+"\n")
- f.write("STOCRHS "+str(stochastic_rhs_count)+"\n")
- f.write("STOCCOST "+str(stochastic_cost_count)+"\n")
- f.write("STOCMAT "+str(stochastic_matrix_count)+"\n")
- f.write("\n\nEND\n")
- input_files["config"] = config_filename
-
- script_filename = \
- os.path.join(output_directory,
- "ddsip.stdin")
- # hacked by DLW, November 2016: the model file is now
- # first and the config file is second. So ddsiputils
- # gets it almost right.
- with open(script_filename, "w") as f:
- f.write(os.path.relpath(input_files["core"], output_directory)+"\n")
- f.write(os.path.relpath(input_files["config"], output_directory)+"\n")
- assert "rhs" in input_files
- f.write(os.path.relpath(input_files["rhs"], output_directory)+"\n")
- if "cost" in input_files:
- f.write(os.path.relpath(input_files["cost"], output_directory)+"\n")
- if "matrix" in input_files:
- f.write(os.path.relpath(input_files["matrix"], output_directory)+"\n")
- input_files["script"] = script_filename
-
- return input_files
-
-def convertddsip_register_options(options=None):
- if options is None:
- options = PySPConfigBlock()
- safe_register_common_option(options, "disable_gc")
- safe_register_common_option(options, "profile")
- safe_register_common_option(options, "traceback")
- safe_register_common_option(options, "verbose")
- safe_register_common_option(options, "symbolic_solver_labels")
- safe_register_unique_option(
- options,
- "output_directory",
- PySPConfigValue(
- ".",
- domain=_domain_must_be_str,
- description=(
- "The directory in which all DDSIP files "
- "will be stored. Default is '.'."
- ),
- doc=None,
- visibility=0))
- safe_register_unique_option(
- options,
- "first_stage_suffix",
- PySPConfigValue(
- "__DDSIP_FIRSTSTAGE",
- domain=_domain_must_be_str,
- description=(
- "The suffix used to identify first-stage variables. "
- "Default: '__DDSIP_FIRSTSTAGE'"
- ),
- doc=None,
- visibility=0))
- safe_register_unique_option(
- options,
- "enforce_derived_nonanticipativity",
- PySPConfigValue(
- False,
- domain=bool,
- description=(
- "Adds nonanticipativity constraints for variables flagged "
- "as derived within their respective time stage (except for "
- "the final time stage). The default behavior behavior is "
- "to treat derived variables as belonging to the final "
- "time stage."
- ),
- doc=None,
- visibility=0))
- safe_register_unique_option(
- options,
- "disable_consistency_checks",
- PySPConfigValue(
- False,
- domain=bool,
- description=(
- "Disables consistency checks that attempt to find issues "
- "with the DDSIP conversion. By default, these checks are run "
- "after conversion takes place and leave behind a temporary "
- "directory with per-scenario output files if the checks fail. "
- "This option is not recommended, but can be used if the "
- "consistency checks are prohibitively slow."
- ),
- doc=None,
- visibility=0))
- safe_register_unique_option(
- options,
- "keep_scenario_files",
- PySPConfigValue(
- False,
- domain=bool,
- description=(
- "Keeps around the per-scenario DDSIP files created for testing "
- "whether a conversion is valid (whether or not the validation "
- "checks are performed). These files can be useful for "
- "debugging purposes."
- ),
- doc=None,
- visibility=0))
- safe_register_common_option(options, "scenario_tree_manager")
- ScenarioTreeManagerClientSerial.register_options(options)
- ScenarioTreeManagerClientPyro.register_options(options)
-
- return options
-
-#
-# Convert a PySP scenario tree formulation to DDSIP input files
-#
-
-def run_convertddsip(options):
-
- if not os.path.exists(options.output_directory):
- os.makedirs(options.output_directory)
-
- start_time = time.time()
-
- io_options = {'symbolic_solver_labels':
- options.symbolic_solver_labels}
-
- assert not options.compile_scenario_instances
-
- manager_class = None
- if options.scenario_tree_manager == 'serial':
- manager_class = ScenarioTreeManagerClientSerial
- elif options.scenario_tree_manager == 'pyro':
- manager_class = ScenarioTreeManagerClientPyro
-
- with manager_class(options) as scenario_tree_manager:
- scenario_tree_manager.initialize()
- files = convert_external(
- options.output_directory,
- options.first_stage_suffix,
- scenario_tree_manager,
- enforce_derived_nonanticipativity=\
- options.enforce_derived_nonanticipativity,
- io_options=io_options,
- disable_consistency_checks=\
- options.disable_consistency_checks,
- keep_scenario_files=options.keep_scenario_files,
- verbose=options.verbose)
-
- end_time = time.time()
-
- print("")
- print("Total execution time=%.2f seconds"
- % (end_time - start_time))
-
-#
-# the main driver routine for the convertddsip script.
-#
-
-def main(args=None):
- #
- # Top-level command that executes everything
- #
-
- #
- # Import plugins
- #
- import pyomo.environ
-
- #
- # Parse command-line options.
- #
- options = PySPConfigBlock()
- convertddsip_register_options(options)
-
- #
- # Prevent the compile_scenario_instances option from
- # appearing on the command line. This script relies on
- # the original constraints being present on the model
- #
- argparse_val = options.get('compile_scenario_instances')._argparse
- options.get('compile_scenario_instances')._argparse = None
-
- try:
- ap = argparse.ArgumentParser(prog='pyomo.pysp.convert.ddsip')
- options.initialize_argparse(ap)
-
- # restore the option so the class validation does not
- # raise an exception
- options.get('compile_scenario_instances')._argparse = argparse_val
-
- options.import_argparse(ap.parse_args(args=args))
- except SystemExit as _exc:
- # the parser throws a system exit if "-h" is specified
- # - catch it to exit gracefully.
- return _exc.code
-
- return launch_command(run_convertddsip,
- options,
- error_label="pyomo.pysp.convert.ddsip: ",
- disable_gc=options.disable_gc,
- profile_count=options.profile,
- traceback=options.traceback)
-
-if __name__ == "__main__":
- main(args=sys.argv[1:])
diff --git a/pyomo/pysp/convert/schuripopt.py b/pyomo/pysp/convert/schuripopt.py
deleted file mode 100644
index b3b8b56f85d..00000000000
--- a/pyomo/pysp/convert/schuripopt.py
+++ /dev/null
@@ -1,400 +0,0 @@
-# _________________________________________________________________________
-#
-# Pyomo: Python Optimization Modeling Objects
-# Copyright (c) 2014 Sandia Corporation.
-# Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation,
-# the U.S. Government retains certain rights in this software.
-# This software is distributed under the BSD License.
-# _________________________________________________________________________
-
-import os
-import time
-import sys
-import logging
-
-from pyomo.opt import ProblemFormat
-from pyomo.core import (Block,
- Suffix)
-from pyomo.pysp.scenariotree.manager import InvocationType
-from pyomo.pysp.util.config import (PySPConfigValue,
- PySPConfigBlock,
- safe_register_common_option,
- safe_register_unique_option,
- _domain_must_be_str)
-from pyomo.pysp.scenariotree.manager import \
- (ScenarioTreeManagerClientSerial,
- ScenarioTreeManagerClientPyro)
-from pyomo.pysp.scenariotree.util import \
- scenario_tree_id_to_pint32
-from pyomo.pysp.util.misc import (parse_command_line,
- launch_command)
-
-thisfile = os.path.abspath(__file__)
-
-logger = logging.getLogger('pyomo.pysp')
-
-_objective_weight_suffix_name = "schurip_objective_weight"
-_variable_id_suffix_name = "schurip_variable_id"
-
-def _write_bundle_nl(worker,
- bundle,
- output_directory,
- io_options):
-
- assert os.path.exists(output_directory)
-
- bundle_instance = worker._bundle_binding_instance_map[bundle.name]
- assert not hasattr(bundle_instance, ".schuripopt")
- tmpblock = Block(concrete=True)
- bundle_instance.add_component(".schuripopt", tmpblock)
-
- #
- # linking variable suffix
- #
- tmpblock.add_component(_variable_id_suffix_name,
- Suffix(direction=Suffix.EXPORT,
- datatype=Suffix.INT))
- linking_suffix = getattr(tmpblock, _variable_id_suffix_name)
-
- # Loop over all nodes for the bundle except the leaf nodes,
- # which have no blended variables
- scenario_tree = worker.scenario_tree
- for stage in bundle.scenario_tree.stages[:-1]:
- for _node in stage.nodes:
- # get the node of off the real scenario tree
- # as this has the linked variable information
- node = scenario_tree.get_node(_node.name)
- node_name = node.name
- master_variable = bundle_instance.find_component(
- "MASTER_BLEND_VAR_"+str(node.name))
- for variable_id in node._standard_variable_ids:
- # Assumes ASL uses 4-byte, signed integers to store suffixes,
- # and we need positive suffix values
- linking_suffix[master_variable[variable_id]] = \
- scenario_tree_id_to_pint32(node_name, variable_id)
- # make sure the conversion from scenario tree id to int
- # did not have any collisions
- _ids = list(linking_suffix.values())
- assert len(_ids) == len(set(_ids))
-
- #
- # objective weight suffix
- #
- tmpblock.add_component(_objective_weight_suffix_name,
- Suffix(direction=Suffix.EXPORT))
- getattr(tmpblock, _objective_weight_suffix_name)[bundle_instance] = \
- bundle.probability
-
- # take care to disable any advanced preprocessing flags since we
- # are not going through the scenario tree manager solver interface
- # TODO: resolve this preprocessing mess
- block_attrs = []
- for block in bundle_instance.block_data_objects(active=True):
- attrs = []
- for attr_name in ("_gen_obj_repn",
- "_gen_con_repn"):
- if hasattr(block, attr_name):
- attrs.append((attr_name, getattr(block, attr_name)))
- setattr(block, attr_name, True)
- if len(attrs):
- block_attrs.append((block, attrs))
-
- output_filename = os.path.join(output_directory,
- str(bundle.name)+".nl")
- # write the model and obtain the symbol_map
- _, smap_id = bundle_instance.write(
- output_filename,
- format=ProblemFormat.nl,
- io_options=io_options)
- symbol_map = bundle_instance.solutions.symbol_map[smap_id]
-
- # reset preprocessing flags
- # TODO: resolve this preprocessing mess
- for block, attrs in block_attrs:
- for attr_name, attr_val in attrs:
- setattr(block, attr_name, attr_val)
-
- bundle_instance.del_component(tmpblock)
-
- return output_filename, symbol_map
-
-def _write_scenario_nl(worker,
- scenario,
- output_directory,
- io_options):
-
- assert os.path.exists(output_directory)
- instance = scenario._instance
- assert not hasattr(instance, ".schuripopt")
- tmpblock = Block(concrete=True)
- instance.add_component(".schuripopt", tmpblock)
-
- #
- # linking variable suffix
- #
- bySymbol = instance._ScenarioTreeSymbolMap.bySymbol
- tmpblock.add_component(_variable_id_suffix_name,
- Suffix(direction=Suffix.EXPORT,
- datatype=Suffix.INT))
- linking_suffix = getattr(tmpblock, _variable_id_suffix_name)
-
- # Loop over all nodes for the scenario except the leaf node,
- # which has no blended variables
- for node in scenario._node_list[:-1]:
- node_name = node.name
- for variable_id in node._standard_variable_ids:
- # Assumes ASL uses 4-byte, signed integers to store suffixes,
- # and we need positive suffix values
- linking_suffix[bySymbol[variable_id]] = \
- scenario_tree_id_to_pint32(node_name, variable_id)
- # make sure the conversion from scenario tree id to int
- # did not have any collisions
- _ids = list(linking_suffix.values())
- assert len(_ids) == len(set(_ids))
-
- #
- # objective weight suffix
- #
- tmpblock.add_component(_objective_weight_suffix_name,
- Suffix(direction=Suffix.EXPORT))
- getattr(tmpblock, _objective_weight_suffix_name)[instance] = \
- scenario.probability
-
- # take care to disable any advanced preprocessing flags since we
- # are not going through the scenario tree manager solver interface
- # TODO: resolve this preprocessing mess
- block_attrs = []
- for block in instance.block_data_objects(active=True):
- attrs = []
- for attr_name in ("_gen_obj_repn",
- "_gen_con_repn"):
- if hasattr(block, attr_name):
- attrs.append((attr_name, getattr(block, attr_name)))
- setattr(block, attr_name, True)
- if len(attrs):
- block_attrs.append((block, attrs))
-
- output_filename = os.path.join(output_directory,
- str(scenario.name)+".nl")
-
- # write the model and obtain the symbol_map
- _, smap_id = instance.write(
- output_filename,
- format=ProblemFormat.nl,
- io_options=io_options)
- symbol_map = instance.solutions.symbol_map[smap_id]
-
- # reset preprocessing flags
- # TODO: resolve this preprocessing mess
- for block, attrs in block_attrs:
- for attr_name, attr_val in attrs:
- setattr(block, attr_name, attr_val)
-
- instance.del_component(tmpblock)
-
- return output_filename, symbol_map
-
-def _write_problem_list_file(scenario_tree,
- problem_list_filename,
- ignore_bundles=False):
-
- #
- # Write list of subproblems to file
- #
- subproblem_type = None
- with open(problem_list_filename, 'w') as f:
- if (not ignore_bundles) and scenario_tree.contains_bundles():
- subproblem_type = "bundles"
- for bundle in scenario_tree.bundles:
- f.write(str(bundle.name)+".nl")
- f.write("\n")
- else:
- subproblem_type = "scenarios"
- for scenario in scenario_tree.scenarios:
- f.write(str(scenario.name)+".nl")
- f.write("\n")
- assert subproblem_type is not None
- return subproblem_type
-
-def EXTERNAL_write_nl(worker,
- working_directory,
- subproblem_type,
- io_options):
-
- if subproblem_type == 'bundles':
- assert worker.scenario_tree.contains_bundles()
- for bundle in worker.scenario_tree.bundles:
- fname, symbol_map = _write_bundle_nl(
- worker,
- bundle,
- working_directory,
- io_options)
- else:
- assert subproblem_type == 'scenarios'
- orig_parents = {}
- if worker.scenario_tree.contains_bundles():
- for scenario in worker.scenario_tree.scenarios:
- if scenario._instance._parent is not None:
- orig_parents[scenario] = scenario._instance._parent
- scenario._instance._parent = None
- assert not scenario._instance_objective.active
- scenario._instance_objective.activate()
- try:
- for scenario in worker.scenario_tree.scenarios:
- fname, symbol_map = _write_scenario_nl(
- worker,
- scenario,
- working_directory,
- io_options)
- finally:
- for scenario, parent in orig_parents.items():
- scenario._instance._parent = parent
- assert scenario._instance_objective.active
- scenario._instance_objective.deactivate()
-
-def write_schuripopt_files(manager,
- output_directory,
- ignore_bundles=False,
- io_options=None,
- verbose=False):
-
- if not os.path.exists(output_directory):
- os.makedirs(output_directory)
- problem_list_filename = os.path.join(output_directory,
- "PySP_Subproblems.txt")
-
- scenario_tree = manager.scenario_tree
-
- subproblem_type = _write_problem_list_file(
- scenario_tree,
- problem_list_filename,
- ignore_bundles=ignore_bundles)
-
- assert subproblem_type in ('scenarios','bundles')
-
- manager.invoke_function(
- "EXTERNAL_write_nl",
- thisfile,
- invocation_type=InvocationType.Single,
- function_args=(output_directory,
- subproblem_type,
- io_options))
-
-def convertschuripopt_register_options(options=None):
- if options is None:
- options = PySPConfigBlock()
- safe_register_common_option(options, "disable_gc")
- safe_register_common_option(options, "profile")
- safe_register_common_option(options, "traceback")
- safe_register_common_option(options, "verbose")
- safe_register_common_option(options, "symbolic_solver_labels")
- safe_register_unique_option(
- options,
- "output_directory",
- PySPConfigValue(
- ".",
- domain=_domain_must_be_str,
- description=(
- "The directory in which all SchurIpopt files "
- "will be stored. Default is '.'."
- ),
- doc=None,
- visibility=0))
- safe_register_unique_option(
- options,
- "ignore_bundles",
- PySPConfigValue(
- False,
- domain=bool,
- description=(
- "Ignore bundles when converting the SP to "
- "SchurIpopt input files."
- ),
- doc=None,
- visibility=0))
- safe_register_common_option(options, "scenario_tree_manager")
- ScenarioTreeManagerClientSerial.register_options(options)
- ScenarioTreeManagerClientPyro.register_options(options)
-
- return options
-
-#
-# Convert a PySP scenario tree formulation to DDSIP input files
-#
-
-def convertschuripopt(options):
- """
- Construct a senario tree manager and write the
- schuripopt input files.
- """
-
- start_time = time.time()
-
- io_options = {'symbolic_solver_labels':
- options.symbolic_solver_labels}
-
- assert not options.compile_scenario_instances
-
- manager_class = None
- if options.scenario_tree_manager == 'serial':
- manager_class = ScenarioTreeManagerClientSerial
- elif options.scenario_tree_manager == 'pyro':
- manager_class = ScenarioTreeManagerClientPyro
-
- with manager_class(options) as scenario_tree_manager:
- scenario_tree_manager.initialize()
- files = write_schuripopt_files(
- scenario_tree_manager,
- options.output_directory,
- ignore_bundles=options.ignore_bundles,
- io_options=io_options,
- verbose=options.verbose)
-
- end_time = time.time()
-
- print("SchurIpopt files written to directory: %s"
- % (options.output_directory))
- print("")
- print("Total execution time=%.2f seconds"
- % (end_time - start_time))
-
-#
-# the main driver routine
-#
-
-def main(args=None):
- #
- # Top-level command that executes everything
- #
-
- #
- # Import plugins
- #
- import pyomo.environ
-
- #
- # Parse command-line options.
- #
- try:
- options = parse_command_line(
- args,
- convertschuripopt_register_options,
- prog='convertschuripopt',
- description=(
-"""Optimize a stochastic program using the SchurIpopt solver."""
- ))
-
- except SystemExit as _exc:
- # the parser throws a system exit if "-h" is specified
- # - catch it to exit gracefully.
- return _exc.code
-
- return launch_command(convertschuripopt,
- options,
- error_label="convertschuripopt: ",
- disable_gc=options.disable_gc,
- profile_count=options.profile,
- traceback=options.traceback)
-
-if __name__ == "__main__":
- sys.exit(main())
diff --git a/pyomo/pysp/convert/smps.py b/pyomo/pysp/convert/smps.py
deleted file mode 100644
index 2c551086605..00000000000
--- a/pyomo/pysp/convert/smps.py
+++ /dev/null
@@ -1,2290 +0,0 @@
-# ___________________________________________________________________________
-#
-# Pyomo: Python Optimization Modeling Objects
-# Copyright 2017 National Technology and Engineering Solutions of Sandia, LLC
-# Under the terms of Contract DE-NA0003525 with National Technology and
-# Engineering Solutions of Sandia, LLC, the U.S. Government retains certain
-# rights in this software.
-# This software is distributed under the 3-clause BSD License.
-# ___________________________________________________________________________
-
-import os
-import argparse
-import sys
-import time
-import operator
-import shutil
-import filecmp
-import logging
-import itertools
-from collections import namedtuple
-
-from pyomo.common.collections import ComponentMap
-from pyomo.opt import WriterFactory
-from pyomo.core.base.numvalue import value, as_numeric
-from pyomo.core.base.block import SortComponents
-from pyomo.core.base.objective import Objective
-from pyomo.core.base.var import Var, _VarData
-from pyomo.core.base.constraint import Constraint, _ConstraintData
-from pyomo.core.base.sos import SOSConstraint
-from pyomo.repn import generate_standard_repn
-from pyomo.pysp.scenariotree.manager import InvocationType
-from pyomo.pysp.embeddedsp import (EmbeddedSP,
- TableDistribution)
-from pyomo.pysp.annotations import (locate_annotations,
- StochasticConstraintBoundsAnnotation,
- StochasticConstraintBodyAnnotation,
- StochasticObjectiveAnnotation,
- StochasticVariableBoundsAnnotation)
-from pyomo.pysp.util.config import (PySPConfigValue,
- PySPConfigBlock,
- safe_register_common_option,
- safe_register_unique_option,
- _domain_must_be_str)
-from pyomo.pysp.scenariotree.manager import \
- (ScenarioTreeManagerClientSerial,
- ScenarioTreeManagerClientPyro)
-from pyomo.pysp.util.misc import launch_command
-
-from six import iteritems, itervalues
-
-thisfile = os.path.abspath(__file__)
-
-logger = logging.getLogger('pyomo.pysp')
-
-# LONG TERM TODO:
-# - Multi-stage?
-# - Quadratic constraints and objectives?
-# - For variables with both linear and quadratic terms, how
-# to distinguish between the two with model annotations?
-
-_deterministic_check_value = -9876543210
-_deterministic_check_constant = as_numeric(_deterministic_check_value)
-
-def _safe_remove_file(filename):
- """Try to remove a file, ignoring failure."""
- try:
- os.remove(filename)
- except OSError:
- pass
-
-def _no_negative_zero(val):
- """Make sure -0 is never output. Makes diff tests easier."""
- if val == 0:
- return 0
- return val
-
-ProblemStats = namedtuple("ProblemStats",
- ["firststage_variable_count",
- "secondstage_variable_count",
- "firststage_constraint_count",
- "secondstage_constraint_count",
- "stochastic_cost_count",
- "stochastic_rhs_count",
- "stochastic_matrix_count",
- "scenario_count"])
-
-def map_constraint_stages(scenario,
- scenario_tree,
- symbol_map,
- stochastic_constraint_ids,
- firststage_variable_ids,
- secondstage_variable_ids):
-
- reference_model = scenario._instance
-
- assert len(scenario_tree.stages) == 2
- firststage = scenario_tree.stages[0]
- secondstage = scenario_tree.stages[1]
-
- rootnode = scenario_tree.findRootNode()
- assert len(scenario_tree.stages) == 2
-
- StageToConstraintMap = {}
- StageToConstraintMap[firststage.name] = []
- StageToConstraintMap[secondstage.name] = []
-
- #
- # Keep output deterministic, there is enough to deal
- # with already
- #
- sortOrder = SortComponents.indices | SortComponents.alphabetical
-
- byObject = symbol_map.byObject
- # deal with the fact that the LP/MPS writer prepends constraint
- # names with things like 'c_e_', 'c_l_', etc depending on the
- # constraint bound type and will even split a constraint into
- # two constraints if it has two bounds
- reverse_alias = \
- dict((symbol, []) for symbol in symbol_map.bySymbol)
- for alias, obj_weakref in iteritems(symbol_map.aliases):
- reverse_alias[byObject[id(obj_weakref())]].append(alias)
-
- # ** SORT POINT TO AVOID NON-DETERMINISTIC ROW ORDERING ***
- for _aliases in itervalues(reverse_alias):
- _aliases.sort()
-
- #
- # Loop through constraints
- #
- for block in reference_model.block_data_objects(
- active=True,
- descend_into=True,
- sort=sortOrder):
-
- for con in block.component_data_objects(
- SOSConstraint,
- active=True,
- descend_into=False):
- raise TypeError("SOSConstraints are not allowed with this format. "
- "Invalid constraint: %s"
- % (con.name))
-
- block_repn = getattr(block, "_repn", None)
- if block_repn is None:
- raise ValueError(
- "Unable to find _repn ComponentMap "
- "on block %s" % (block.name))
-
- for con in block.component_data_objects(
- Constraint,
- active=True,
- descend_into=False,
- sort=sortOrder):
-
- symbol = byObject[id(con)]
- # if it is a range constraint, this will account for
- # that fact and store an alias for each bound
- aliases = reverse_alias[symbol]
- assert len(aliases) > 0
-
- if id(con) in stochastic_constraint_ids:
- # there is stochastic data in this constraint
- constraint_stage = secondstage
- else:
- # Note: By the time we get to this function,
- # there is no concept of derived stage
- # variables. They have either been pushed
- # into the leaf-stage or have been
- # re-categorized as standard variables
- # where non-anticipativity will be enforced.
- constraint_stage = firststage
- for var in EmbeddedSP._collect_variables(con.body).values():
- if not var.fixed:
- if id(var) in secondstage_variable_ids:
- constraint_stage = secondstage
- break
- else:
- assert id(var) in firststage_variable_ids
-
- StageToConstraintMap[constraint_stage.name].\
- append((aliases, con))
-
- assert sorted(StageToConstraintMap.keys()) == \
- sorted([firststage.name, secondstage.name])
-
- # sort each by name
- for key in StageToConstraintMap:
- StageToConstraintMap[key].sort(key=operator.itemgetter(0))
-
- return StageToConstraintMap
-
-def map_variable_stages(scenario,
- scenario_tree,
- symbol_map,
- enforce_derived_nonanticipativity=False):
-
- reference_model = scenario._instance
-
- FirstStageVars = {}
- SecondStageVars = {}
-
- rootnode = scenario_tree.findRootNode()
- assert len(scenario_tree.stages) == 2
- firststage = scenario_tree.stages[0]
- secondstage = scenario_tree.stages[1]
- secondstage_node = scenario.node_list[-1]
- assert secondstage_node.stage is secondstage
- firststage_standard_variables = rootnode._standard_variable_ids
- firststage_derived_variables = rootnode._derived_variable_ids
- secondstage_variables = secondstage_node._variable_ids
-
- scenariotree_byObject = reference_model._ScenarioTreeSymbolMap.byObject
- symbolmap_byObject = symbol_map.byObject
- for var in reference_model.component_data_objects(
- Var,
- descend_into=True):
- if id(var) not in symbolmap_byObject:
- continue
-
- symbol = symbolmap_byObject[id(var)]
- scenario_tree_id = scenariotree_byObject.get(id(var), None)
- if scenario_tree_id in firststage_standard_variables:
- FirstStageVars[symbol] = (var, scenario_tree_id)
- elif enforce_derived_nonanticipativity and \
- (scenario_tree_id in firststage_derived_variables):
- FirstStageVars[symbol] = (var, scenario_tree_id)
- elif (scenario_tree_id in firststage_derived_variables) or \
- (scenario_tree_id in secondstage_variables) or \
- (scenario_tree_id is None):
- SecondStageVars[symbol] = (var, scenario_tree_id)
-
- else:
- # More than two stages?
- assert False
-
- StageToVariableMap = {}
- StageToVariableMap[firststage.name] = \
- [(symbol,
- FirstStageVars[symbol][0],
- FirstStageVars[symbol][1])
- for symbol in sorted(FirstStageVars)]
- StageToVariableMap[secondstage.name] = \
- [(symbol,
- SecondStageVars[symbol][0],
- SecondStageVars[symbol][1])
- for symbol in sorted(SecondStageVars)]
-
- return StageToVariableMap
-
-def build_repns(model):
- """Compiles expressions in a way that reduces the chance
- of throwing out 0*var terms. Also activate flags that
- disable regeneration by a solver plugin."""
- repn_cache = {}
- for block in model.block_data_objects(
- active=True,
- descend_into=True):
- block._gen_obj_repn = False
- block._gen_con_repn = False
- repn_cache[id(block)] = block._repn = ComponentMap()
- for objective_object in block.component_data_objects(
- Objective,
- active=True,
- descend_into=False):
- repn = generate_standard_repn(objective_object.expr,
- compute_values=False)
- block._repn[objective_object] = repn
-
- for constraint_data in block.component_data_objects(
- Constraint,
- active=True,
- descend_into=False):
-
- if constraint_data._linear_canonical_form:
- repn = constraint_data.canonical_form(compute_values=False)
- else:
- repn = generate_standard_repn(constraint_data.body,
- compute_values=False)
-
- block._repn[constraint_data] = repn
-
- return repn_cache
-
-def _convert_external_setup(worker, scenario, *args, **kwds):
- reference_model = scenario._instance
- #
- # We will be tweaking the repn objects on objectives
- # and constraints, so cache anything related to this here so
- # that this function does not have any side effects on the
- # instance after returning
- #
- cached_attrs = []
- for block in reference_model.block_data_objects(
- active=True,
- descend_into=True):
- block_cached_attrs = {}
- if hasattr(block, "_gen_obj_repn"):
- block_cached_attrs["_gen_obj_repn"] = \
- block._gen_obj_repn
- del block._gen_obj_repn
- if hasattr(block, "_gen_con_repn"):
- block_cached_attrs["_gen_con_repn"] = \
- block._gen_con_repn
- del block._gen_con_repn
- if hasattr(block, "_repn"):
- block_cached_attrs["_repn"] = \
- block._repn
- del block._repn
- cached_attrs.append((block, block_cached_attrs))
-
- try:
- return _convert_external_setup_without_cleanup(
- worker, scenario, *args, **kwds)
- except:
- logger.error("Failed to complete partial SMPS conversion "
- "for scenario: %s" % (scenario.name))
- raise
- finally:
- for block, block_cached_attrs in cached_attrs:
- if hasattr(block, "_gen_obj_repn"):
- del block._gen_obj_repn
- if hasattr(block, "_gen_con_repn"):
- del block._gen_con_repn
- if hasattr(block, "_repn"):
- del block._repn
- for name in block_cached_attrs:
- setattr(block, name, block_cached_attrs[name])
-
-def _convert_external_setup_without_cleanup(
- worker,
- scenario,
- output_directory,
- basename,
- file_format,
- enforce_derived_nonanticipativity,
- io_options):
- import pyomo.environ
- assert os.path.exists(output_directory)
- assert file_format in ('lp', 'mps')
-
- io_options = dict(io_options)
- scenario_tree = worker.scenario_tree
- reference_model = scenario._instance
- rootnode = scenario_tree.findRootNode()
- firststage = scenario_tree.stages[0]
- secondstage = scenario_tree.stages[1]
- constraint_name_buffer = {}
- objective_name_buffer = {}
- variable_name_buffer = {}
-
- all_constraints = list(
- con for con in reference_model.component_data_objects(
- Constraint,
- active=True,
- descend_into=True))
-
- #
- # Check for model annotations
- #
- stochastic_rhs = locate_annotations(
- reference_model,
- StochasticConstraintBoundsAnnotation,
- max_allowed=1)
- if len(stochastic_rhs) == 0:
- stochastic_rhs = None
- stochastic_rhs_entries = {}
- empty_rhs_annotation = False
- else:
- assert len(stochastic_rhs) == 1
- stochastic_rhs = stochastic_rhs[0][1]
- if stochastic_rhs.has_declarations:
- empty_rhs_annotation = False
- stochastic_rhs_entries = stochastic_rhs.expand_entries()
- stochastic_rhs_entries.sort(
- key=lambda x: x[0].getname(True, constraint_name_buffer))
- if len(stochastic_rhs_entries) == 0:
- raise RuntimeError(
- "The %s annotation was declared "
- "with explicit entries but no active Constraint "
- "objects were recovered from those entries."
- % (StochasticConstraintBoundsAnnotation.__name__))
- else:
- empty_rhs_annotation = True
- stochastic_rhs_entries = tuple((con, stochastic_rhs.default)
- for con in all_constraints)
-
-
- stochastic_matrix = locate_annotations(
- reference_model,
- StochasticConstraintBodyAnnotation,
- max_allowed=1)
- if len(stochastic_matrix) == 0:
- stochastic_matrix = None
- stochastic_matrix_entries = {}
- empty_matrix_annotation = False
- else:
- assert len(stochastic_matrix) == 1
- stochastic_matrix = stochastic_matrix[0][1]
- if stochastic_matrix.has_declarations:
- empty_matrix_annotation = False
- stochastic_matrix_entries = stochastic_matrix.expand_entries()
- stochastic_matrix_entries.sort(
- key=lambda x: x[0].getname(True, constraint_name_buffer))
- if len(stochastic_matrix_entries) == 0:
- raise RuntimeError(
- "The %s annotation was declared "
- "with explicit entries but no active Constraint "
- "objects were recovered from those entries."
- % (StochasticConstraintBodyAnnotation.__name__))
- else:
- empty_matrix_annotation = True
- stochastic_matrix_entries = tuple((con,stochastic_matrix.default)
- for con in all_constraints)
-
- stochastic_constraint_ids = set()
- stochastic_constraint_ids.update(id(con) for con,_
- in stochastic_rhs_entries)
- stochastic_constraint_ids.update(id(con) for con,_
- in stochastic_matrix_entries)
-
- stochastic_objective = locate_annotations(
- reference_model,
- StochasticObjectiveAnnotation,
- max_allowed=1)
- if len(stochastic_objective) == 0:
- stochastic_objective = None
- else:
- assert len(stochastic_objective) == 1
- stochastic_objective = stochastic_objective[0][1]
-
- stochastic_varbounds = locate_annotations(
- reference_model,
- StochasticVariableBoundsAnnotation)
- if len(stochastic_varbounds) > 0:
- raise ValueError(
- "The SMPS writer does not currently support "
- "stochastic variable bounds. Invalid annotation type: %s"
- % (StochasticVariableBoundsAnnotation.__name__))
-
- if (stochastic_rhs is None) and \
- (stochastic_matrix is None) and \
- (stochastic_objective is None):
- raise RuntimeError(
- "No stochastic annotations found. SMPS "
- "conversion requires at least one of the following "
- "annotation types:\n - %s\n - %s\n - %s"
- % (StochasticConstraintBoundsAnnotation.__name__,
- StochasticConstraintBodyAnnotation.__name__,
- StochasticObjectiveAnnotation.__name__))
-
- assert not hasattr(reference_model, "_repn")
- repn_cache = build_repns(reference_model)
- assert hasattr(reference_model, "_repn")
- assert not reference_model._gen_obj_repn
- assert not reference_model._gen_con_repn
- # compute values
- for block_repns in repn_cache.values():
- for repn in block_repns.values():
- repn.constant = value(repn.constant)
- repn.linear_coefs = [value(c) for c in repn.linear_coefs]
- repn.quadratic_coefs = [value(c) for c in repn.quadratic_coefs]
-
- #
- # Write the LP/MPS file once to obtain the symbol map
- #
- with WriterFactory(file_format) as writer:
- output_filename = \
- os.path.join(output_directory,
- basename+".setup."+file_format+"."+scenario.name)
- assert 'column_order' not in io_options
- assert 'row_order' not in io_options
- output_fname, symbol_map = writer(reference_model,
- output_filename,
- lambda x: True,
- io_options)
- assert output_fname == output_filename
-
- StageToVariableMap = map_variable_stages(
- scenario,
- scenario_tree,
- symbol_map,
- enforce_derived_nonanticipativity=enforce_derived_nonanticipativity)
- firststage_variable_ids = \
- set(id(var) for symbol, var, scenario_tree_id
- in StageToVariableMap[firststage.name])
- secondstage_variable_ids = \
- set(id(var) for symbol, var, scenario_tree_id
- in StageToVariableMap[secondstage.name])
-
- StageToConstraintMap = \
- map_constraint_stages(
- scenario,
- scenario_tree,
- symbol_map,
- stochastic_constraint_ids,
- firststage_variable_ids,
- secondstage_variable_ids)
- secondstage_constraint_ids = \
- set(id(con) for symbols, con
- in StageToConstraintMap[secondstage.name])
-
- assert len(scenario_tree.stages) == 2
- firststage = scenario_tree.stages[0]
- secondstage = scenario_tree.stages[1]
-
- #
- # Make sure the objective references all first stage variables.
- # We do this by directly modifying the repn of the
- # objective which the LP/MPS writer will reference next time we call
- # it. In addition, make sure that the first second-stage variable
- # in our column ordering also appears in the objective so that
- # ONE_VAR_CONSTANT does not get identified as the first
- # second-stage variable.
- # ** Just do NOT preprocess again until we call the writer **
- #
- objective_object = scenario._instance_objective
- assert objective_object is not None
- objective_block = objective_object.parent_block()
- objective_repn = repn_cache[id(objective_block)][objective_object]
-
- #
- # Create column (variable) ordering maps for LP/MPS files
- #
- column_order = ComponentMap()
- # first-stage variables
- for column_index, (symbol, var, scenario_tree_id) \
- in enumerate(StageToVariableMap[firststage.name]):
- column_order[var] = column_index
- if symbol == "RHS":
- raise RuntimeError(
- "Congratulations! You have hit an edge case. The "
- "SMPS input format forbids variables from using "
- "the symbol 'RHS'. Please rename it or use a "
- "different symbol in the output file.")
- # second-stage variables
- for column_index, (symbol, var, scenario_tree_id) \
- in enumerate(StageToVariableMap[secondstage.name],
- len(column_order)):
- column_order[var] = column_index
- if symbol == "RHS":
- raise RuntimeError(
- "Congratulations! You have hit an edge case. The "
- "SMPS input format forbids variables from using "
- "the symbol 'RHS'. Please rename it or use a "
- "different symbol in the output file.")
-
- #
- # Create row (constraint) ordering maps for LP/MPS files
- #
- row_order = ComponentMap()
- # first-stage constraints
- for row_index, (symbols, con) \
- in enumerate(StageToConstraintMap[firststage.name]):
- row_order[con] = row_index
- # second-stage constraints
- for row_index, (symbols, con) \
- in enumerate(StageToConstraintMap[secondstage.name],
- len(row_order)):
- row_order[con] = row_index
-
- #
- # Write the ordered LP/MPS file
- #
- output_filename = os.path.join(output_directory,
- basename+"."+file_format+"."+scenario.name)
- symbols_filename = os.path.join(output_directory,
- basename+"."+file_format+".symbols."+scenario.name)
- with WriterFactory(file_format) as writer:
- assert 'column_order' not in io_options
- assert 'row_order' not in io_options
- io_options['column_order'] = column_order
- io_options['row_order'] = row_order
- io_options['force_objective_constant'] = True
- output_fname, symbol_map = writer(reference_model,
- output_filename,
- lambda x: True,
- io_options)
- assert output_fname == output_filename
- # write the lp file symbol paired with the scenario
- # tree id for each variable in the root node
- with open(symbols_filename, "w") as f:
- st_symbol_map = reference_model._ScenarioTreeSymbolMap
- lines = []
- for id_ in sorted(rootnode._variable_ids):
- var = st_symbol_map.bySymbol[id_]
- if not var.is_expression_type():
- lp_label = symbol_map.byObject[id(var)]
- lines.append("%s %s\n" % (lp_label, id_))
- f.writelines(lines)
-
- # re-generate these maps as the LP/MPS symbol map
- # is likely different
- StageToVariableMap = map_variable_stages(
- scenario,
- scenario_tree,
- symbol_map,
- enforce_derived_nonanticipativity=enforce_derived_nonanticipativity)
-
- StageToConstraintMap = map_constraint_stages(
- scenario,
- scenario_tree,
- symbol_map,
- stochastic_constraint_ids,
- firststage_variable_ids,
- secondstage_variable_ids)
-
- # generate a few data structures that are used
- # when writing the .sto file
- constraint_symbols = ComponentMap(
- (con, symbols) for stage_name in StageToConstraintMap
- for symbols, con in StageToConstraintMap[stage_name])
-
- #
- # Write the explicit column ordering (variables) used
- # for the ordered LP/MPS file
- #
- firststage_variable_count = 0
- secondstage_variable_count = 0
- with open(os.path.join(output_directory,
- basename+".col."+scenario.name),'w') as f_col:
- # first-stage variables
- for (symbol, _, _) in StageToVariableMap[firststage.name]:
- f_col.write(symbol+"\n")
- firststage_variable_count += 1
- # second-stage variables
- for (symbol, _, _) in StageToVariableMap[secondstage.name]:
- f_col.write(symbol+"\n")
- secondstage_variable_count += 1
- f_col.write("ONE_VAR_CONSTANT\n")
- secondstage_variable_count += 1
-
- #
- # Write the explicit row ordering (constraints) used
- # for the ordered LP/MPS file
- #
- firststage_constraint_count = 0
- secondstage_constraint_count = 0
- with open(os.path.join(output_directory,
- basename+".row."+scenario.name),'w') as f_row:
- # the objective is always the first row in SMPS format
- f_row.write(symbol_map.byObject[id(objective_object)]+"\n")
- # first-stage constraints
- for (symbols, _) in StageToConstraintMap[firststage.name]:
- # because range constraints are split into two
- # constraints (hopefully our ordering of the r_l_
- # and r_u_ forms is the same as the LP/MPS file!)
- for symbol in symbols:
- f_row.write(symbol+"\n")
- firststage_constraint_count += 1
- # second-stage constraints
- for (symbols, _) in StageToConstraintMap[secondstage.name]:
- # because range constraints are split into two
- # constraints (hopefully our ordering of the r_l_
- # and r_u_ forms is the same as the LP/MPS file!)
- for symbol in symbols:
- f_row.write(symbol+"\n")
- secondstage_constraint_count += 1
- f_row.write("c_e_ONE_VAR_CONSTANT")
- secondstage_constraint_count += 1
-
- #
- # Write the .tim file
- #
- with open(os.path.join(output_directory,
- basename+".tim."+scenario.name),'w') as f_tim:
- f_tim.write("TIME %s\n" % (basename))
- if file_format == 'mps':
- f_tim.write("PERIODS IMPLICIT\n")
- f_tim.write(" %s %s TIME1\n"
- % (StageToVariableMap[firststage.name][0][0],
- symbol_map.byObject[id(objective_object)]))
- symbols = StageToConstraintMap[secondstage.name][0][0]
- if len(symbols) == 1:
- # equality constraint
- assert (symbols[0].startswith('c_e_') or \
- symbols[0].startswith('c_l_') or \
- symbols[0].startswith('c_u_'))
- stage2_row_start = symbols[0]
- else:
- # range constraint (assumed the LP/MPS writer outputs
- # the lower range constraint first)
- symbols = sorted(symbols)
- assert (symbols[0].startswith('r_l_') or \
- symbols[0].startswith('r_u_'))
- stage2_row_start = symbols[0]
- # don't assume there is always a second stage variable
- if len(StageToVariableMap[secondstage.name]) > 0:
- f_tim.write(" %s "
- % (StageToVariableMap[secondstage.name][0][0]))
- else:
- f_tim.write(" ONE_VAR_CONSTANT ")
- f_tim.write("%s TIME2\n" % (stage2_row_start))
- else:
- assert file_format == "lp"
- f_tim.write("PERIODS EXPLICIT\n")
- f_tim.write(" TIME1\n")
- f_tim.write(" TIME2\n")
- line_template = " %s %s\n"
- f_tim.write("ROWS\n")
- # the objective is always the first row in SMPS format
- f_tim.write(line_template
- % (symbol_map.byObject[id(objective_object)],
- "TIME1"))
- # first-stage constraints
- for (symbols, _) in StageToConstraintMap[firststage.name]:
- for symbol in symbols:
- f_tim.write(line_template % (symbol, "TIME1"))
- # second-stage constraints
- for (symbols, _) in StageToConstraintMap[secondstage.name]:
- for symbol in symbols:
- f_tim.write(line_template % (symbol, "TIME2"))
- f_tim.write(line_template % ("c_e_ONE_VAR_CONSTANT", "TIME2"))
-
- f_tim.write("COLS\n")
- # first-stage variables
- for (symbol, _, _) in StageToVariableMap[firststage.name]:
- f_tim.write(line_template % (symbol, "TIME1"))
- # second-stage variables
- for (symbol, _, _) in StageToVariableMap[secondstage.name]:
- f_tim.write(line_template % (symbol, "TIME2"))
- f_tim.write(line_template % ("ONE_VAR_CONSTANT", "TIME2"))
-
- f_tim.write("ENDATA\n")
-
- stochastic_lp_labels = set()
- stochastic_constraint_count = 0
- stochastic_secondstage_rhs_count = 0
- stochastic_firststagevar_constraint_count = 0
- stochastic_secondstagevar_constraint_count = 0
- stochastic_firststagevar_objective_count = 0
- stochastic_secondstagevar_objective_count = 0
- #
- # Write the body of the .sto file
- #
- #
- # **NOTE: In the code that follows we assume the LP/MPS
- # writer always moves constraint body
- # constants to the rhs and that the lower part
- # of any range constraints are written before
- # the upper part.
- #
- modified_constraint_lb = ComponentMap()
- modified_constraint_ub = ComponentMap()
- stochastic_rhs_count = 0
- stochastic_matrix_count = 0
- stochastic_cost_count = 0
- with open(os.path.join(output_directory,
- basename+".sto.struct."+scenario.name),'w') as f_coords:
- with open(os.path.join(output_directory,
- basename+".sto."+scenario.name),'w') as f_sto:
- scenario_probability = scenario.probability
- f_sto.write(" BL BLOCK1 PERIOD2 %.17g\n"
- % (_no_negative_zero(scenario_probability)))
-
- #
- # Stochastic RHS
- #
- rhs_template = " RHS %s %.17g\n"
- if stochastic_rhs is not None:
- for con, include_bound in stochastic_rhs_entries:
- assert isinstance(con, _ConstraintData)
- if not empty_rhs_annotation:
- # verify that this constraint was
- # flagged by PySP or the user as second-stage
- if id(con) not in secondstage_constraint_ids:
- raise RuntimeError(
- "The constraint %s has been declared "
- "in the %s annotation but it was not identified as "
- "a second-stage constraint. To correct this issue, "
- "remove the constraint from this annotation."
- % (con.name,
- StochasticConstraintBoundsAnnotation.__name__))
-
- constraint_repn = \
- repn_cache[id(con.parent_block())][con]
-
- if not constraint_repn.is_linear():
- raise RuntimeError("Only linear constraints are "
- "accepted for conversion to SMPS format. "
- "Constraint %s is not linear."
- % (constraint_data.name))
-
- body_constant = constraint_repn.constant
- # We are going to rewrite the core problem file
- # with all stochastic values set to zero. This will
- # allow an easy test for missing user annotations.
- constraint_repn.constant = 0
- if body_constant is None:
- body_constant = 0.0
- symbols = constraint_symbols[con]
- assert len(symbols) > 0
- for con_label in symbols:
- if con_label.startswith('c_e_') or \
- con_label.startswith('c_l_'):
- assert (include_bound is True) or \
- (include_bound[0] is True)
- stochastic_rhs_count += 1
- f_sto.write(rhs_template %
- (con_label,
- _no_negative_zero(
- value(con.lower) - \
- value(body_constant))))
- f_coords.write("RHS %s\n" % (con_label))
- # We are going to rewrite the core problem file
- # with all stochastic values set to zero. This will
- # allow an easy test for missing user annotations.
- modified_constraint_lb[con] = con.lower
- con._lower = _deterministic_check_constant
- if con_label.startswith('c_e_'):
- modified_constraint_ub[con] = con.upper
- con._upper = _deterministic_check_constant
- elif con_label.startswith('r_l_') :
- if (include_bound is True) or \
- (include_bound[0] is True):
- stochastic_rhs_count += 1
- f_sto.write(rhs_template %
- (con_label,
- _no_negative_zero(
- value(con.lower) - \
- value(body_constant))))
- f_coords.write("RHS %s\n" % (con_label))
- # We are going to rewrite the core problem file
- # with all stochastic values set to zero. This will
- # allow an easy test for missing user annotations.
- modified_constraint_lb[con] = con.lower
- con._lower = _deterministic_check_constant
- elif con_label.startswith('c_u_'):
- assert (include_bound is True) or \
- (include_bound[1] is True)
- stochastic_rhs_count += 1
- f_sto.write(rhs_template %
- (con_label,
- _no_negative_zero(
- value(con.upper) - \
- value(body_constant))))
- f_coords.write("RHS %s\n" % (con_label))
- # We are going to rewrite the core problem file
- # with all stochastic values set to zero. This will
- # allow an easy test for missing user annotations.
- modified_constraint_ub[con] = con.upper
- con._upper = _deterministic_check_constant
- elif con_label.startswith('r_u_'):
- if (include_bound is True) or \
- (include_bound[1] is True):
- stochastic_rhs_count += 1
- f_sto.write(rhs_template %
- (con_label,
- _no_negative_zero(
- value(con.upper) - \
- value(body_constant))))
- f_coords.write("RHS %s\n" % (con_label))
- # We are going to rewrite the core problem file
- # with all stochastic values set to zero. This will
- # allow an easy test for missing user annotations.
- modified_constraint_ub[con] = con.upper
- con._upper = _deterministic_check_constant
- else:
- assert False
-
- #
- # Stochastic Matrix
- #
- matrix_template = " %s %s %.17g\n"
- if stochastic_matrix is not None:
- for con, var_list in stochastic_matrix_entries:
- assert isinstance(con, _ConstraintData)
- if not empty_matrix_annotation:
- # verify that this constraint was
- # flagged by PySP or the user as second-stage
- if id(con) not in secondstage_constraint_ids:
- raise RuntimeError(
- "The constraint %s has been declared "
- "in the %s annotation but it was not identified as "
- "a second-stage constraint. To correct this issue, "
- "remove the constraint from this annotation."
- % (con.name,
- StochasticConstraintBodyAnnotation.__name__))
-
- constraint_repn = \
- repn_cache[id(con.parent_block())][con]
-
- if not constraint_repn.is_linear():
- raise RuntimeError("Only linear constraints are "
- "accepted for conversion to SMPS format. "
- "Constraint %s is not linear."
- % (constraint_data.name))
-
- assert len(constraint_repn.linear_vars) > 0
- if var_list is None:
- var_list = constraint_repn.linear_vars
- assert len(var_list) > 0
- symbols = constraint_symbols[con]
- # sort the variable list by the column ordering
- # so that we have deterministic output
- var_list = list(var_list)
- var_list.sort(key=lambda _v: column_order[_v])
- new_coefs = list(constraint_repn.linear_coefs)
- for var in var_list:
- assert isinstance(var, _VarData)
- assert not var.fixed
- var_coef = None
- for i, (_var, coef) in enumerate(zip(constraint_repn.linear_vars,
- constraint_repn.linear_coefs)):
- if _var is var:
- var_coef = coef
- # We are going to rewrite with core problem file
- # with all stochastic values set to zero. This will
- # allow an easy test for missing user annotations.
- new_coefs[i] = _deterministic_check_value
- break
- if var_coef is None:
- raise RuntimeError(
- "The coefficient for variable %s has "
- "been marked as stochastic in constraint %s using "
- "the %s annotation, but the variable does not appear"
- " in the canonical constraint expression."
- % (var.name,
- con.name,
- StochasticConstraintBodyAnnotation.__name__))
- var_label = symbol_map.byObject[id(var)]
-
- for con_label in symbols:
- stochastic_matrix_count += 1
- f_sto.write(matrix_template
- % (var_label,
- con_label,
- _no_negative_zero(value(var_coef))))
- f_coords.write("%s %s\n" % (var_label, con_label))
-
- constraint_repn.linear_coefs = tuple(new_coefs)
-
-
- #
- # Stochastic Objective
- #
- obj_template = " %s %s %.17g\n"
- if stochastic_objective is not None:
- if stochastic_objective.has_declarations:
- sorted_values = stochastic_objective.expand_entries()
- assert len(sorted_values) <= 1
- if len(sorted_values) == 0:
- raise RuntimeError(
- "The %s annotation was declared "
- "with explicit entries but no active Objective "
- "objects were recovered from those entries."
- % (StochasticObjectiveAnnotation.__name__))
- obj, (objective_variables, include_constant) = \
- sorted_values[0]
- assert obj is objective_object
- else:
- objective_variables, include_constant = \
- stochastic_objective.default
-
- if not objective_repn.is_linear():
- raise RuntimeError("Only linear stochastic objectives are "
- "accepted for conversion to SMPS format. "
- "Objective %s is not linear."
- % (objective_object.name))
-
- if objective_variables is None:
- objective_variables = objective_repn.linear_vars
- stochastic_objective_label = symbol_map.byObject[id(objective_object)]
- # sort the variable list by the column ordering
- # so that we have deterministic output
- objective_variables = list(objective_variables)
- objective_variables.sort(key=lambda _v: column_order[_v])
- assert (len(objective_variables) > 0) or include_constant
- new_coefs = list(objective_repn.linear_coefs)
- for var in objective_variables:
- assert isinstance(var, _VarData)
- var_coef = None
- for i, (_var, coef) in enumerate(zip(objective_repn.linear_vars,
- objective_repn.linear_coefs)):
- if _var is var:
- var_coef = coef
- # We are going to rewrite the core problem file
- # with all stochastic values set to zero. This will
- # allow an easy test for missing user annotations.
- new_coefs[i] = _deterministic_check_value
- break
- if var_coef is None:
- raise RuntimeError(
- "The coefficient for variable %s has "
- "been marked as stochastic in objective %s using "
- "the %s annotation, but the variable does not appear"
- " in the canonical objective expression."
- % (var.name,
- objective_object.name,
- StochasticObjectiveAnnotation.__name__))
- var_label = symbol_map.byObject[id(var)]
- stochastic_cost_count += 1
-
- f_sto.write(obj_template
- % (var_label,
- stochastic_objective_label,
- _no_negative_zero(value(var_coef))))
- f_coords.write("%s %s\n"
- % (var_label,
- stochastic_objective_label))
-
- objective_repn.linear_coefs = tuple(new_coefs)
- if include_constant:
- obj_constant = objective_repn.constant
- # We are going to rewrite the core problem file
- # with all stochastic values set to zero. This will
- # allow an easy test for missing user annotations.
- objective_repn.constant = 0
- if obj_constant is None:
- obj_constant = 0.0
- stochastic_cost_count += 1
- f_sto.write(obj_template % ("ONE_VAR_CONSTANT",
- stochastic_objective_label,
- _no_negative_zero(obj_constant)))
- f_coords.write("%s %s\n"
- % ("ONE_VAR_CONSTANT",
- stochastic_objective_label))
-
- #
- # Write the deterministic part of the LP/MPS-file to its own
- # file for debugging purposes
- #
- reference_model_name = reference_model.name
- reference_model._name = "ZeroStochasticData"
- det_output_filename = \
- os.path.join(output_directory,
- basename+"."+file_format+".det."+scenario.name)
- with WriterFactory(file_format) as writer:
- output_fname, symbol_map = writer(reference_model,
- det_output_filename,
- lambda x: True,
- io_options)
- assert output_fname == det_output_filename
- reference_model._name = reference_model_name
-
- # reset bounds on any constraints that were modified
- for con, lower in iteritems(modified_constraint_lb):
- con._lower = as_numeric(lower)
- for con, upper in iteritems(modified_constraint_ub):
- con._upper = as_numeric(upper)
-
- return (firststage_variable_count,
- secondstage_variable_count,
- firststage_constraint_count,
- secondstage_constraint_count,
- stochastic_cost_count,
- stochastic_rhs_count,
- stochastic_matrix_count)
-
-def convert_external(output_directory,
- basename,
- scenario_tree_manager,
- core_format='mps',
- enforce_derived_nonanticipativity=False,
- io_options=None,
- disable_consistency_checks=False,
- keep_scenario_files=False,
- keep_auxiliary_files=False,
- verbose=False):
- import pyomo.environ
- import pyomo.solvers.plugins.smanager.phpyro
-
- if io_options is None:
- io_options = {}
-
- if not os.path.exists(output_directory):
- os.makedirs(output_directory)
-
- scenario_tree = scenario_tree_manager.scenario_tree
-
- if len(scenario_tree.stages) > 2:
- raise ValueError("SMPS conversion does not yet handle more "
- "than 2 time-stages")
-
- if scenario_tree.contains_bundles():
- raise ValueError(
- "SMPS conversion does not yet handle bundles")
-
- scenario_directory = os.path.join(output_directory,
- 'scenario_files')
-
- if not os.path.exists(scenario_directory):
- os.mkdir(scenario_directory)
-
- counts = scenario_tree_manager.invoke_function(
- "_convert_external_setup",
- thisfile,
- invocation_type=InvocationType.PerScenario,
- function_args=(scenario_directory,
- basename,
- core_format,
- enforce_derived_nonanticipativity,
- io_options))
-
- reference_scenario = scenario_tree.scenarios[0]
- reference_scenario_name = reference_scenario.name
-
- (firststage_variable_count,
- secondstage_variable_count,
- firststage_constraint_count,
- secondstage_constraint_count,
- stochastic_cost_count,
- stochastic_rhs_count,
- stochastic_matrix_count) = counts[reference_scenario_name]
-
- #
- # Copy the reference scenario's core, row, col, and tim
- # to the output directory. The consistency checks will
- # verify that these files match across scenarios.
- #
- input_files = {}
- core_filename = os.path.join(output_directory,
- basename+".cor")
- _safe_remove_file(core_filename)
- shutil.copy2(os.path.join(scenario_directory,
- (basename+"."+core_format+"."+
- reference_scenario_name)),
- core_filename)
- input_files["core"] = core_filename
-
- symbols_filename = os.path.join(output_directory,
- basename+".cor.symbols")
- _safe_remove_file(symbols_filename)
- shutil.copy2(os.path.join(scenario_directory,
- (basename+"."+core_format+".symbols."+
- reference_scenario_name)),
- symbols_filename)
- input_files["symbols"] = symbols_filename
-
- tim_filename = os.path.join(output_directory,
- basename+".tim")
- _safe_remove_file(tim_filename)
- shutil.copy2(os.path.join(scenario_directory,
- (basename+".tim."+
- reference_scenario_name)),
- tim_filename)
- input_files["time"] = tim_filename
-
- #
- # aux files used for checking
- #
-
- core_row_filename = os.path.join(output_directory,
- basename+".row")
- _safe_remove_file(core_row_filename)
- shutil.copy2(os.path.join(scenario_directory,
- (basename+".row."+
- reference_scenario_name)),
- core_row_filename)
-
- core_col_filename = os.path.join(output_directory,
- basename+".col")
- _safe_remove_file(core_col_filename)
- shutil.copy2(os.path.join(scenario_directory,
- (basename+".col."+
- reference_scenario_name)),
- core_col_filename)
-
- sto_struct_filename = os.path.join(output_directory,
- basename+".sto.struct")
- _safe_remove_file(sto_struct_filename)
- shutil.copy2(os.path.join(scenario_directory,
- (basename+".sto.struct."+
- reference_scenario_name)),
- sto_struct_filename)
-
- core_det_filename = os.path.join(output_directory,
- basename+"."+core_format+".det")
- _safe_remove_file(core_det_filename)
- shutil.copy2(os.path.join(scenario_directory,
- (basename+"."+core_format+".det."+
- reference_scenario_name)),
- core_det_filename)
-
- #
- # Merge the per-scenario .sto files into one
- #
- sto_filename = os.path.join(output_directory,
- basename+".sto")
- _safe_remove_file(sto_filename)
- with open(sto_filename, 'w') as fdst:
- fdst.write('STOCH '+basename+'\n')
- fdst.write('BLOCKS DISCRETE REPLACE\n')
- for scenario in scenario_tree.scenarios:
- scenario_sto_filename = \
- os.path.join(scenario_directory,
- basename+".sto."+scenario.name)
- assert os.path.exists(scenario_sto_filename)
- with open(scenario_sto_filename, 'r') as fsrc:
- shutil.copyfileobj(fsrc, fdst)
- fdst.write('ENDATA\n')
- input_files["sto"] = sto_filename
-
- if verbose:
- print("\nSMPS Conversion Complete")
- print("Output Saved To: "+os.path.relpath(output_directory))
- print("Basic Problem Information:")
- print(" - Variables:")
- print(" - First Stage: %d"
- % (firststage_variable_count))
- print(" - Second Stage: %d"
- % (secondstage_variable_count))
- print(" - Constraints:")
- print(" - First Stage: %d"
- % (firststage_constraint_count))
- print(" - Second Stage: %d"
- % (secondstage_constraint_count))
- print(" - Stoch. RHS Entries: %d"
- % (stochastic_rhs_count))
- print(" - Stoch. Matrix Entries: %d"
- % (stochastic_matrix_count))
- print(" - Objective:")
- print(" - Stoch. Cost Entries: %d"
- % (stochastic_cost_count))
-
- if not disable_consistency_checks:
- if verbose:
- print("\nStarting scenario structure consistency checks "
- "across scenario files stored in %s."
- % (scenario_directory))
- print("This may take some time. If this test is "
- "prohibitively slow or can not be executed on "
- "your system, disable it by activating the "
- "disable_consistency_check option.")
- has_diff = False
- try:
- if not os.system('diff --help > /dev/null'):
- has_diff = True
- else:
- has_diff = False
- except:
- has_diff = False
- if verbose:
- print(" - Checking row and column ordering...")
- for scenario in scenario_tree.scenarios:
- scenario_core_row_filename = \
- os.path.join(scenario_directory,
- basename+".row."+scenario.name)
- if has_diff:
- rc = os.system('diff -q '+scenario_core_row_filename+' '+
- core_row_filename)
- else:
- rc = not filecmp.cmp(scenario_core_row_filename,
- core_row_filename,
- shallow=False)
- if rc:
- raise ValueError(
- "The row ordering indicated in file '%s' does not match "
- "that for scenario %s indicated in file '%s'. This "
- "suggests that one or more locations of stochastic data "
- "have not been annotated. If you feel this message is "
- "in error, please report this issue to the PySP "
- "developers."
- % (core_row_filename,
- scenario.name,
- scenario_core_row_filename))
-
- scenario_core_col_filename = \
- os.path.join(scenario_directory,
- basename+".col."+scenario.name)
- if has_diff:
- rc = os.system('diff -q '+scenario_core_col_filename+' '+
- core_col_filename)
- else:
- rc = not filecmp.cmp(scenario_core_col_filename,
- core_col_filename,
- shallow=False)
- if rc:
- raise ValueError(
- "The column ordering indicated in file '%s' does not "
- "match that for scenario %s indicated in file '%s'. "
- "This suggests that the set of variables on the model "
- "changes across scenarios. This is not allowed by the "
- "SMPS format. If you feel this is a developer error, "
- "please report this issue to the PySP developers."
- % (core_col_filename,
- scenario.name,
- scenario_core_col_filename))
-
- if verbose:
- print(" - Checking time-stage classifications...")
- for scenario in scenario_tree.scenarios:
- scenario_tim_filename = \
- os.path.join(scenario_directory,
- basename+".tim."+scenario.name)
- if has_diff:
- rc = os.system('diff -q '+scenario_tim_filename+' '+
- tim_filename)
- else:
- rc = not filecmp.cmp(scenario_tim_filename,
- tim_filename,
- shallow=False)
- if rc:
- raise ValueError(
- "Main .tim file '%s' does not match .tim file for "
- "scenario %s located at '%s'. This indicates there was "
- "a problem translating the reference model to SMPS "
- "format. Please make sure the problem structure is "
- "identical over all scenarios (e.g., no. of variables, "
- "no. of constraints), or report this issue to the PySP "
- "developers if you feel that it is a developer error."
- % (tim_filename,
- scenario.name,
- scenario_tim_filename))
-
- if verbose:
- print(" - Checking sparse locations of stochastic elements...")
- for scenario in scenario_tree.scenarios:
- scenario_sto_struct_filename = \
- os.path.join(scenario_directory,
- basename+".sto.struct."+scenario.name)
- if has_diff:
- rc = os.system('diff -q '+scenario_sto_struct_filename+' '+
- sto_struct_filename)
- else:
- rc = not filecmp.cmp(scenario_sto_struct_filename,
- sto_struct_filename,
- shallow=False)
- if rc:
- raise ValueError(
- "The structure of stochastic entries indicated in file "
- "'%s' does not match that for scenario %s indicated in "
- "file '%s'. This suggests that the set of variables "
- "appearing in some expression declared as stochastic is "
- "changing across scenarios. If you feel this is a "
- "developer error, please report this issue to the PySP "
- "developers." % (sto_struct_filename,
- scenario.name,
- scenario_sto_struct_filename))
-
- if verbose:
- print(" - Checking deterministic sections in the core "
- "problem file...")
- for scenario in scenario_tree.scenarios:
- scenario_core_det_filename = \
- os.path.join(scenario_directory,
- basename+"."+core_format+".det."+scenario.name)
- if has_diff:
- rc = os.system('diff -q '+scenario_core_det_filename+' '+
- core_det_filename)
- else:
- rc = not filecmp.cmp(scenario_core_det_filename,
- core_det_filename,
- shallow=False)
- if rc:
- raise ValueError(
- "One or more deterministic parts of the problem found "
- "in file '%s' do not match those for scenario %s found "
- "in file %s. This suggests that one or more locations "
- "of stochastic data have not been been annotated on the "
- "reference Pyomo model. If this seems like a tolerance "
- "issue or a developer error, please report this issue "
- "to the PySP developers."
- % (core_det_filename,
- scenario.name,
- scenario_core_det_filename))
-
- if not keep_auxiliary_files:
- _safe_remove_file(core_row_filename)
- _safe_remove_file(core_col_filename)
- _safe_remove_file(sto_struct_filename)
- _safe_remove_file(core_det_filename)
-
- if not keep_scenario_files:
- if verbose:
- print("Cleaning temporary per-scenario files")
- for scenario in scenario_tree.scenarios:
-
- scenario_core_row_filename = \
- os.path.join(scenario_directory,
- basename+".row."+scenario.name)
- assert os.path.exists(scenario_core_row_filename)
- _safe_remove_file(scenario_core_row_filename)
-
- scenario_core_col_filename = \
- os.path.join(scenario_directory,
- basename+".col."+scenario.name)
- assert os.path.exists(scenario_core_col_filename)
- _safe_remove_file(scenario_core_col_filename)
-
- scenario_tim_filename = \
- os.path.join(scenario_directory,
- basename+".tim."+scenario.name)
- assert os.path.exists(scenario_tim_filename)
- _safe_remove_file(scenario_tim_filename)
-
- scenario_sto_struct_filename = \
- os.path.join(scenario_directory,
- basename+".sto.struct."+scenario.name)
- assert os.path.exists(scenario_sto_struct_filename)
- _safe_remove_file(scenario_sto_struct_filename)
-
- scenario_sto_filename = \
- os.path.join(scenario_directory,
- basename+".sto."+scenario.name)
- assert os.path.exists(scenario_sto_filename)
- _safe_remove_file(scenario_sto_filename)
-
- scenario_core_det_filename = \
- os.path.join(scenario_directory,
- basename+"."+core_format+".det."+scenario.name)
- assert os.path.exists(scenario_core_det_filename)
- _safe_remove_file(scenario_core_det_filename)
-
- scenario_core_setup_filename = \
- os.path.join(scenario_directory,
- basename+".setup."+core_format+"."+scenario.name)
- assert os.path.exists(scenario_core_setup_filename)
- _safe_remove_file(scenario_core_setup_filename)
-
- scenario_core_filename = \
- os.path.join(scenario_directory,
- basename+"."+core_format+"."+scenario.name)
- assert os.path.exists(scenario_core_filename)
- _safe_remove_file(scenario_core_filename)
-
- scenario_core_filename = \
- os.path.join(scenario_directory,
- basename+"."+core_format+".symbols."+scenario.name)
- assert os.path.exists(scenario_core_filename)
- _safe_remove_file(scenario_core_filename)
-
-
- # only delete this directory if it is empty,
- # it might have previously existed and contains
- # user files
- if len(os.listdir(scenario_directory)) == 0:
- shutil.rmtree(scenario_directory, ignore_errors=True)
- else:
- if verbose:
- print("Temporary per-scenario files are retained in "
- "scenario_files subdirectory")
- pass
-
- return input_files
-
-
-def convert_embedded(output_directory,
- basename,
- sp,
- core_format='mps',
- io_options=None,
- enforce_derived_nonanticipativity=False):
-
- if io_options is None:
- io_options = {}
-
- import pyomo.environ
- if not os.path.exists(output_directory):
- os.makedirs(output_directory)
-
- assert core_format in ('lp', 'mps')
-
- io_options = dict(io_options)
-
-
- if len(sp.time_stages) > 2:
- raise ValueError("SMPS conversion does not yet handle more "
- "than 2 time-stages")
-
- if sp.has_stochastic_variable_bounds:
- raise ValueError("Problems with stochastic variables bounds "
- "can not be converted into an embedded "
- "SMPS representation")
-
- #
- # We will be tweaking the repn objects on objectives
- # and constraints, so cache anything related to this here so
- # that this function does not have any side effects on the
- # instance after returning
- #
- reference_model = sp.reference_model
- cached_attrs = []
- for block in reference_model.block_data_objects(
- active=True,
- descend_into=True):
- block_cached_attrs = {}
- if hasattr(block, "_gen_obj_repn"):
- block_cached_attrs["_gen_obj_repn"] = \
- block._gen_obj_repn
- del block._gen_obj_repn
- if hasattr(block, "_gen_con_repn"):
- block_cached_attrs["_gen_con_repn"] = \
- block._gen_con_repn
- del block._gen_con_repn
- if hasattr(block, "_repn"):
- block_cached_attrs["_repn"] = \
- block._repn
- del block._repn
- cached_attrs.append((block, block_cached_attrs))
-
- try:
- return _convert_embedded(output_directory,
- basename,
- sp,
- core_format,
- io_options,
- enforce_derived_nonanticipativity)
- except:
- logger.error("Failed to complete embedded SMPS conversion")
- raise
- finally:
- for block, block_cached_attrs in cached_attrs:
- if hasattr(block, "_gen_obj_repn"):
- del block._gen_obj_repn
- if hasattr(block, "_gen_con_repn"):
- del block._gen_con_repn
- if hasattr(block, "_repn"):
- del block._repn
- for name in block_cached_attrs:
- setattr(block, name, block_cached_attrs[name])
-
-def _convert_embedded(output_directory,
- basename,
- sp,
- core_format,
- io_options,
- enforce_derived_nonanticipativity):
-
- reference_model = sp.reference_model
- #
- # Reinterpret the stage-ness of variables on the sp by
- # pushing derived first-stage variables into the second
- # stage, or keeping them as first-stage variables with
- # non-anticipativity enforced. There is no concept of
- # derived variables in SMPS output.
- #
- first_stage_variables = []
- first_stage_variable_ids = set()
- second_stage_variables = []
- second_stage_variable_ids = set()
- assert len(sp.time_stages) == 2
- assert sorted(sp.time_stages) == sorted(sp.stage_to_variables_map)
- firststage = sp.time_stages[0]
- secondstage = sp.time_stages[1]
- for var, derived in sp.stage_to_variables_map[firststage]:
- if (not derived) or enforce_derived_nonanticipativity:
- first_stage_variables.append(var)
- first_stage_variable_ids.add(id(var))
- else:
- second_stage_variables.append(var)
- second_stage_variable_ids.add(id(var))
- for var, derived in sp.stage_to_variables_map[secondstage]:
- second_stage_variables.append(var)
- second_stage_variable_ids.add(id(var))
- # sort things to keep file output deterministic
- name_buffer = {}
- first_stage_variables.sort(key=lambda x: x.getname(True, name_buffer))
- name_buffer = {}
- second_stage_variables.sort(key=lambda x: x.getname(True, name_buffer))
-
- assert len(first_stage_variables) == \
- len(first_stage_variable_ids)
- assert len(second_stage_variables) == \
- len(second_stage_variable_ids)
-
- #
- # Interpret the stage-ness of constraints based on the
- # appearence of second-stage variables or stochastic data
- # (note that derived first-stage variables are considered
- # second-stage variables)
- #
- first_stage_constraints = []
- first_stage_constraint_ids = set()
- second_stage_constraints = []
- second_stage_constraint_ids = set()
- for con in reference_model.component_data_objects(
- Constraint,
- active=True,
- descend_into=True):
- constage = sp.compute_time_stage(
- con,
- derived_last_stage=not enforce_derived_nonanticipativity)
- if constage == firststage:
- first_stage_constraints.append(con)
- first_stage_constraint_ids.add(id(con))
- else:
- assert constage == secondstage
- second_stage_constraints.append(con)
- second_stage_constraint_ids.add(id(con))
- # sort things to keep file output deterministic
- name_buffer = {}
- first_stage_constraints.sort(key=lambda x: x.getname(True, name_buffer))
- name_buffer = {}
- second_stage_constraints.sort(key=lambda x: x.getname(True, name_buffer))
-
- #
- # Create column (variable) ordering maps for LP/MPS files
- #
- column_order = ComponentMap()
- # first stage
- for column_cntr, var in enumerate(first_stage_variables):
- column_order[var] = column_cntr
- # second stage
- for column_cntr, var in enumerate(second_stage_variables,
- len(column_order)):
- column_order[var] = column_cntr
-
- #
- # Create row (constraint) ordering maps for LP/MPS files
- #
- row_order = ComponentMap()
- # first stage
- for row_cntr, var in enumerate(first_stage_constraints):
- row_order[var] = row_cntr
- # second stage
- for row_cntr, var in enumerate(second_stage_constraints,
- len(row_order)):
- row_order[var] = row_cntr
-
-
- # For consistancy set all stochastic parameters to zero
- # before writing the core file (some may not have been
- # initialized with a value)
- param_vals_orig = ComponentMap()
- for paramdata in sp.stochastic_data:
- param_vals_orig[paramdata] = paramdata._value
- paramdata.value = 0
-
- assert not hasattr(reference_model, "_repn")
- repn_cache = build_repns(reference_model)
- assert hasattr(reference_model, "_repn")
- assert not reference_model._gen_obj_repn
- assert not reference_model._gen_con_repn
- symbolic_repn_data = {}
- # compute values before the write, but cache the original symbolic data
- for block_repns in repn_cache.values():
- for repn in block_repns.values():
- symbolic_repn_data[repn] = (repn.constant,
- repn.linear_coefs,
- repn.quadratic_coefs)
- repn.constant = value(repn.constant)
- repn.linear_coefs = [value(c) for c in repn.linear_coefs]
- repn.quadratic_coefs = [value(c) for c in repn.quadratic_coefs]
-
- input_files = {}
- #
- # Write the ordered LP/MPS file
- #
- output_filename = os.path.join(output_directory,
- basename+".cor")
- input_files["cor"] = output_filename
- symbols_filename = os.path.join(output_directory,
- basename+".cor.symbols")
- input_files["symbols"] = symbols_filename
- with WriterFactory(core_format) as writer:
- assert 'column_order' not in io_options
- assert 'row_order' not in io_options
- io_options['column_order'] = column_order
- io_options['row_order'] = row_order
- io_options['force_objective_constant'] = True
- output_fname, symbol_map = writer(reference_model,
- output_filename,
- lambda x: True,
- io_options)
- assert output_fname == output_filename
- # write the lp file symbol paired with the scenario
- # tree id for each variable in the root node
- with open(symbols_filename, "w") as f:
- lines = []
- for var,_ in sp.stage_to_variables_map[firststage]:
- id_ = sp.variable_symbols[var]
- lp_label = symbol_map.byObject[id(var)]
- lines.append("%s %s\n" % (lp_label, id_))
- f.writelines(sorted(lines))
-
- # reset repns to symbolic form
- for repn in symbolic_repn_data:
- (repn.constant,
- repn.linear_coefs,
- repn.quadratic_coefs) = symbolic_repn_data[repn]
- del symbolic_repn_data
-
- # Reset stochastic parameters to their
- # original values
- for paramdata, orig_val in param_vals_orig.items():
- paramdata._value = orig_val
- del param_vals_orig
-
- # Collect constraint symbols and deal with the fact that
- # the LP/MPS writer prepends constraint names with
- # things like 'c_e_', 'c_l_', etc depending on the
- # constraint bound type and will even split a constraint
- # into two constraints if it has two bounds
- constraint_symbols = ComponentMap()
- _reverse_alias = \
- dict((symbol, []) for symbol in symbol_map.bySymbol)
- for alias, obj_weakref in iteritems(symbol_map.aliases):
- _reverse_alias[symbol_map.byObject[id(obj_weakref())]].append(alias)
- # ** SORT POINT TO AVOID NON-DETERMINISTIC ROW ORDERING ***
- for _aliases in itervalues(_reverse_alias):
- _aliases.sort()
- for con in itertools.chain(first_stage_constraints,
- second_stage_constraints):
- symbol = symbol_map.byObject[id(con)]
- # if it is a range constraint this will account for
- # that fact and hold and alias for each bound
- aliases = _reverse_alias[symbol]
- constraint_symbols[con] = aliases
-
- #
- # Write the .tim file
- #
- tim_filename = os.path.join(output_directory, basename+".tim")
- input_files["tim"] = tim_filename
- with open(tim_filename, "w") as f_tim:
- f_tim.write("TIME %s\n" % (basename))
- if core_format == 'mps':
- f_tim.write("PERIODS IMPLICIT\n")
- f_tim.write(" %s %s TIME1\n"
- % (symbol_map.byObject[id(first_stage_variables[0])],
- symbol_map.byObject[id(sp.objective)]))
- symbols = constraint_symbols[second_stage_constraints[0]]
- if len(symbols) == 1:
- # equality constraint
- assert (symbols[0].startswith('c_e_') or \
- symbols[0].startswith('c_l_') or \
- symbols[0].startswith('c_u_'))
- stage2_row_start = symbols[0]
- else:
- # range constraint (assumed the LP/MPS writer outputs
- # the lower range constraint first)
- symbols = sorted(symbols)
- assert (symbols[0].startswith('r_l_') or \
- symbols[0].startswith('r_u_'))
- stage2_row_start = symbols[0]
- # don't assume there is always a second stage variable
- if id(second_stage_variables[0]) in symbol_map.byObject:
- f_tim.write(" %s "
- % (symbol_map.byObject[id(second_stage_variables[0])]))
- else:
- f_tim.write(" ONE_VAR_CONSTANT ")
- f_tim.write("%s TIME2\n" % (stage2_row_start))
- else:
- assert core_format == "lp"
- f_tim.write("PERIODS EXPLICIT\n")
- f_tim.write(" TIME1\n")
- f_tim.write(" TIME2\n")
- line_template = " %s %s\n"
- f_tim.write("ROWS\n")
- # the objective is always the first row in SMPS format
- f_tim.write(line_template
- % (symbol_map.byObject[id(sp.objective)],
- "TIME1"))
- # first-stage constraints
- for con in first_stage_constraints:
- for symbol in constraint_symbols[con]:
- f_tim.write(line_template % (symbol, "TIME1"))
- # second-stage constraints
- for con in second_stage_constraints:
- for symbol in constraint_symbols[con]:
- f_tim.write(line_template % (symbol, "TIME2"))
- f_tim.write(line_template % ("c_e_ONE_VAR_CONSTANT", "TIME2"))
-
- f_tim.write("COLS\n")
- # first-stage variables
- for var in first_stage_variables:
- varid = id(var)
- if varid in symbol_map.byObject:
- f_tim.write(line_template % (symbol_map.byObject[varid], "TIME1"))
- # second-stage variables
- for var in second_stage_variables:
- varid = id(var)
- if varid in symbol_map.byObject:
- f_tim.write(line_template % (symbol_map.byObject[varid], "TIME2"))
- f_tim.write(line_template % ("ONE_VAR_CONSTANT", "TIME2"))
-
- f_tim.write("ENDATA\n")
-
- #
- # Write the body of the .sto file
- #
- # **NOTE: In the code that follows we assume the LP/MPS
- # writer always moves constraint body
- # constants to the rhs and that the lower part
- # of any range constraints are written before
- # the upper part.
- #
- sto_filename = os.path.join(output_directory,
- basename+".sto")
- input_files["sto"] = sto_filename
- stochastic_data_seen = ComponentMap()
- line_template = " %s %s %.17g %.17g\n"
- with open(sto_filename,'w') as f_sto:
- f_sto.write('STOCH '+basename+'\n')
- # TODO: For the time being, we are assuming all
- # parameter distributions are discrete
- # tables. This header will need to change when
- # we start supporting other distributions
- f_sto.write('INDEP DISCRETE\n')
- constraint_name_buffer = {}
- objective_name_buffer = {}
- variable_name_buffer = {}
-
- #
- # Stochastic objective elements
- #
-
- if len(sp.objective_to_stochastic_data_map) > 0:
- assert len(sp.objective_to_stochastic_data_map) == 1
- assert list(sp.objective_to_stochastic_data_map.keys())[0] is sp.objective
- # setting compute values to False allows us to
- # extract the location of Param objects in the
- # constant or variable coefficient
- objective_repn = generate_standard_repn(sp.objective.expr,
- compute_values=False)
- if not objective_repn.is_linear():
- raise ValueError(
- "Cannot output embedded SP representation for component "
- "'%s'. The embedded SMPS writer does not yet handle "
- "stochastic nonlinear expressions. Invalid expression: %s"
- % (sp.objective.name, sp.objective.expr))
-
- # sort the variable list by the column ordering
- # so that we have deterministic output
- objective_vars = list(zip(objective_repn.linear_vars,
- objective_repn.linear_coefs))
- objective_vars.sort(key=lambda x: column_order[x[0]])
- if objective_repn.constant is not None:
- objective_vars.append(("ONE_VAR_CONSTANT",
- objective_repn.constant))
- stochastic_objective_label = symbol_map.byObject[id(sp.objective)]
- for var, varcoef in objective_vars:
- params = list(sp._collect_mutable_parameters(varcoef).values())
- stochastic_params = [p for p in params
- if p in sp.stochastic_data]
- # NOTE: Be sure to keep track of
- for param in stochastic_params:
- if param in stochastic_data_seen:
- raise ValueError(
- "Cannot output embedded SP representation for component "
- "'%s'. The embedded SMPS writer does not yet handle the "
- "case where a stochastic data component appears in "
- "multiple expressions or locations within a single "
- "expression (e.g., multiple constraints, or multiple "
- "variable coefficients within a constraint). The "
- "parameter '%s' appearing in component '%s' was "
- "previously encountered in another location in "
- "component '%s'."
- % (sp.objective.name,
- param.name,
- sp.objective.name,
- stochastic_data_seen[param].name))
- else:
- stochastic_data_seen[param] = sp.objective
-
- if len(stochastic_params) == 1:
- paramdata = stochastic_params[0]
- if varcoef is not paramdata:
- # TODO: Basically need to rescale / shift
- # the original distribution. I think both of these
- # operations are trivial to transform any probability
- # measure. I'm just not going to get into that right now.
- raise ValueError(
- "Cannot output embedded SP representation for component "
- "'%s'. The embedded SMPS writer does not yet handle the "
- "case where a stochastic data component appears "
- "in an expression that defines a single variable's "
- "coefficient. The coefficient for variable '%s' must be "
- "exactly set to parameter '%s' in the expression. Invalid "
- "expression: %s"
- % (sp.objective.name,
- str(var),
- paramdata.name,
- varcoef))
-
- # output the parameter's distribution (provided by the user)
- distribution = sp.stochastic_data[paramdata]
- if type(distribution) is not TableDistribution:
- # TODO: relax this when we start supporting other distributions
- # or add some object oriented components for defining
- # them.
- raise ValueError(
- "Invalid distribution type '%s' for stochastic "
- "parameter '%s'. The embedded SMPS writer currently "
- "only supports discrete table distributions of type "
- "pyomo.pysp.embeddedsp.TableDistribution."
- % (distribution.__class__.__name__,
- paramdata.name))
- if not isinstance(var, _VarData):
- assert var == "ONE_VAR_CONSTANT"
- varlabel = var
- else:
- varlabel = symbol_map.byObject[id(var)]
- assert len(distribution.values) > 0
- assert len(distribution.weights) == \
- len(distribution.values)
- for prob, val in zip(distribution.weights,
- distribution.values):
- f_sto.write(line_template % (varlabel,
- stochastic_objective_label,
- _no_negative_zero(val),
- _no_negative_zero(prob)))
- elif len(stochastic_params) > 1:
- # TODO: Need to output a new distribution based
- # on some mathematical expression involving
- # multiple distributions. Might be hard for
- # general distributions, but would not be that
- # difficult for discrete tables.
- raise ValueError(
- "Cannot output embedded SP representation for component "
- "'%s'. The embedded SMPS writer does not yet handle the "
- "case where multiple stochastic data components appear "
- "in an expression that defines a single variable's "
- "coefficient. The coefficient for variable '%s' involves "
- "stochastic parameters: %s"
- % (sp.objective.name,
- var.name,
- [p.name for p in stochastic_params]))
-
- #
- # Stochastic constraint matrix and rhs elements
- #
-
- stochastic_constraints = list(sp.constraint_to_stochastic_data_map.keys())
- stochastic_constraints.sort(key=lambda x: row_order[x])
- for con in stochastic_constraints:
-
- # setting compute values to False allows us to
- # extract the location of Param objects in the
- # constant or variable coefficient
- constraint_repn = generate_standard_repn(con.body,
- compute_values=False)
- if not constraint_repn.is_linear():
- raise ValueError(
- "Cannot output embedded SP representation for component "
- "'%s'. The embedded SMPS writer does not yet handle "
- "stochastic nonlinear expressions. Invalid expression: %s"
- % (con.name, con.body))
-
- # sort the variable list by the column ordering
- # so that we have deterministic output
- constraint_vars = list(zip(constraint_repn.linear_vars,
- constraint_repn.linear_coefs))
- constraint_vars.sort(key=lambda x: column_order[x[0]])
- constraint_vars = \
- [(var, symbol_map.byObject[id(var)], varcoef)
- for var, varcoef in constraint_vars]
-
- # check if any stochastic data appears in the constant
- # falling out of the body of the constraint expression
- if (constraint_repn.constant is not None):
- # TODO: We can probably support this, just do not want to get
- # into it right now. It also seems like this is an edge case
- # that is hard to reproduce because _ConstraintData moves
- # this stuff out of the body when it is build (so it won't
- # show up in the body repn)
- for param in sp._collect_mutable_parameters(constraint_repn.constant).values():
- if param in sp.stochastic_data:
- raise ValueError(
- "Cannot output embedded SP representation for component "
- "'%s'. The embedded SMPS writer does not yet handle the "
- "case where a stochastic data appears in the body of a "
- "constraint expression that must be moved to the bounds. "
- "The constraint must be written so that the stochastic "
- "element '%s' is a simple bound or a simple variable "
- "coefficient." % (con.name,
- param.name))
-
- symbols = constraint_symbols[con]
- if len(symbols) == 2:
- # TODO: We can handle range constraints (just not in the body).
- # Will add support for range constraints with stochastic data
- # in one or both of the bounds later.
- raise ValueError(
- "Cannot output embedded SP representation for component "
- "'%s'. The embedded SMPS writer does not yet handle range "
- "constraints that have stochastic data."
- % (con.name))
-
- # fix this later, for now we assume it is not a range constraint
- assert len(symbols) == 1
- stochastic_constraint_label = symbols[0]
- if stochastic_constraint_label.startswith('c_e_') or \
- stochastic_constraint_label.startswith('c_l_'):
- constraint_vars.append(("RHS","RHS",con.lower))
- elif stochastic_constraint_label.startswith('c_u_'):
- constraint_vars.append(("RHS","RHS",con.upper))
-
- for var, varlabel, varcoef in constraint_vars:
- params = list(sp._collect_mutable_parameters(varcoef).values())
- stochastic_params = [param for param in params
- if param in sp.stochastic_data]
- for param in stochastic_params:
- if param in stochastic_data_seen:
- raise ValueError(
- "Cannot output embedded SP representation for component "
- "'%s'. The embedded SMPS writer does not yet handle the "
- "case where a stochastic data component appears in "
- "multiple expressions or locations within a single "
- "expression (e.g., multiple constraints, or multiple "
- "variable coefficients within a constraint). The "
- "parameter '%s' appearing in component '%s' was "
- "previously encountered in another location in "
- "component '%s'."
- % (con.name,
- param.name,
- con.name,
- stochastic_data_seen[param].name))
- else:
- stochastic_data_seen[param] = con
-
- if len(stochastic_params) == 1:
- paramdata = stochastic_params[0]
- if varcoef is not paramdata:
- # TODO: Basically need to rescale / shift
- # the original distribution. I think both of these
- # operations are trivial to transform any probability
- # measure. I'm just not going to get into that right now.
- raise ValueError(
- "Cannot output embedded SP representation for component "
- "'%s'. The embedded SMPS writer does not yet handle the "
- "case where a stochastic data component appears "
- "in an expression that defines a single variable's "
- "coefficient. The coefficient for variable '%s' must be "
- "exactly set to parameter '%s' in the expression. Invalid "
- "expression: %s"
- % (con.name,
- str(var),
- paramdata.name,
- varcoef))
-
- # output the parameter's distribution (provided by the user)
- distribution = sp.stochastic_data[paramdata]
- if type(distribution) is not TableDistribution:
- # TODO: relax this when we start supporting other distributions
- # or add some object oriented components for defining
- # them.
- raise ValueError(
- "Invalid distribution type '%s' for stochastic "
- "parameter '%s'. The embedded SMPS writer currently "
- "only supports discrete table distributions of type "
- "pyomo.pysp.embeddedsp.TableDistribution."
- % (distribution.__class__.__name__,
- paramdata.name))
- assert len(distribution.values) > 0
- assert len(distribution.weights) == \
- len(distribution.values)
- for prob, val in zip(distribution.weights,
- distribution.values):
- f_sto.write(line_template % (varlabel,
- stochastic_constraint_label,
- _no_negative_zero(val),
- _no_negative_zero(prob)))
- elif len(stochastic_params) > 1:
- # TODO: Need to output a new distribution based
- # on some mathematical expression involving
- # multiple distributions. Might be hard for
- # general distributions, but would not be that
- # difficult for discrete tables.
- raise ValueError(
- "Cannot output embedded SP representation for component "
- "'%s'. The embedded SMPS writer does not yet handle the "
- "case where multiple stochastic data components appear "
- "in an expression that defines a single variable's "
- "coefficient. The coefficient for variable '%s' involves "
- "stochastic parameters: %s"
- % (con.name,
- var.name,
- [param.name for param in stochastic_params]))
-
- f_sto.write("ENDATA\n")
-
- return input_files, symbol_map
-
-def convertsmps_register_options(options=None):
- if options is None:
- options = PySPConfigBlock()
- safe_register_common_option(options, "disable_gc")
- safe_register_common_option(options, "profile")
- safe_register_common_option(options, "traceback")
- safe_register_common_option(options, "verbose")
- safe_register_common_option(options, "symbolic_solver_labels")
- safe_register_unique_option(
- options,
- "explicit",
- PySPConfigValue(
- False,
- domain=bool,
- description=(
- "Generate SMPS files using explicit scenarios "
- "(or bundles). ** This option is deprecated. It is "
- "the default behavior. ** "
- ),
- doc=None,
- visibility=0))
- safe_register_unique_option(
- options,
- "core_format",
- PySPConfigValue(
- "mps",
- domain=_domain_must_be_str,
- description=(
- "The format used to generate the core SMPS problem file. "
- "Choices are: [mps, lp]. The default format is MPS."
- ),
- doc=None,
- visibility=0),
- ap_kwds={'choices': ['mps','lp']})
- safe_register_unique_option(
- options,
- "output_directory",
- PySPConfigValue(
- ".",
- domain=_domain_must_be_str,
- description=(
- "The directory in which all SMPS related output files "
- "will be stored. Default is '.'."
- ),
- doc=None,
- visibility=0))
- safe_register_unique_option(
- options,
- "basename",
- PySPConfigValue(
- None,
- domain=_domain_must_be_str,
- description=(
- "The basename to use for all SMPS related output "
- "files. ** Required **"
- ),
- doc=None,
- visibility=0))
- safe_register_unique_option(
- options,
- "enforce_derived_nonanticipativity",
- PySPConfigValue(
- False,
- domain=bool,
- description=(
- "Adds nonanticipativity constraints for variables flagged "
- "as derived within their respective time stage (except for "
- "the final time stage). The default behavior behavior is "
- "to treat derived variables as belonging to the final "
- "time stage."
- ),
- doc=None,
- visibility=0))
- safe_register_unique_option(
- options,
- "disable_consistency_checks",
- PySPConfigValue(
- False,
- domain=bool,
- description=(
- "Disables consistency checks that attempt to find issues "
- "with the SMPS conversion. By default, these checks are run "
- "after conversion takes place and leave behind a temporary "
- "directory with per-scenario output files if the checks fail. "
- "This option is not recommended, but can be used if the "
- "consistency checks are prohibitively slow."
- ),
- doc=None,
- visibility=0))
- safe_register_unique_option(
- options,
- "keep_scenario_files",
- PySPConfigValue(
- False,
- domain=bool,
- description=(
- "Keeps around the per-scenario SMPS files created for testing "
- "whether a conversion is valid (whether or not the validation "
- "checks are performed). These files can be useful for "
- "debugging purposes."
- ),
- doc=None,
- visibility=0))
- safe_register_unique_option(
- options,
- "keep_auxiliary_files",
- PySPConfigValue(
- False,
- domain=bool,
- description=(
- "Keep auxiliary files for the template scenario that are normally "
- "used for testing the validity of the SMPS conversion. "
- "These include the .row, .col, .sto.struct, and .[mps,lp].det files."
- ),
- doc=None,
- visibility=0))
- safe_register_common_option(options, "scenario_tree_manager")
- ScenarioTreeManagerClientSerial.register_options(options)
- ScenarioTreeManagerClientPyro.register_options(options)
-
- return options
-
-#
-# Convert a PySP scenario tree formulation to SMPS input files
-#
-
-def run_convertsmps(options):
- import pyomo.environ
-
- if (options.basename is None):
- raise ValueError("Output basename is required. "
- "Use the --basename command-line option")
-
- if not os.path.exists(options.output_directory):
- os.makedirs(options.output_directory)
-
- start_time = time.time()
-
- io_options = {'symbolic_solver_labels':
- options.symbolic_solver_labels}
-
- assert not options.compile_scenario_instances
-
- if options.explicit:
- logger.warn("DEPRECATED: The use of the --explicit option "
- "is no longer necessary. It is the default behavior")
-
- manager_class = None
- if options.scenario_tree_manager == 'serial':
- manager_class = ScenarioTreeManagerClientSerial
- elif options.scenario_tree_manager == 'pyro':
- manager_class = ScenarioTreeManagerClientPyro
-
- with manager_class(options) as scenario_tree_manager:
- scenario_tree_manager.initialize()
- convert_external(
- options.output_directory,
- options.basename,
- scenario_tree_manager,
- core_format=options.core_format,
- enforce_derived_nonanticipativity=\
- options.enforce_derived_nonanticipativity,
- io_options=io_options,
- disable_consistency_checks=\
- options.disable_consistency_checks,
- keep_scenario_files=options.keep_scenario_files,
- keep_auxiliary_files=options.keep_auxiliary_files,
- verbose=options.verbose)
-
- end_time = time.time()
-
- print("")
- print("Total execution time=%.2f seconds"
- % (end_time - start_time))
-
-#
-# the main driver routine for the convertsmps script.
-#
-
-def main(args=None):
- #
- # Top-level command that executes everything
- #
-
- #
- # Import plugins
- #
- import pyomo.environ
-
- #
- # Parse command-line options.
- #
- options = PySPConfigBlock()
- convertsmps_register_options(options)
-
- #
- # Prevent the compile_scenario_instances option from
- # appearing on the command line. This script relies on
- # the original constraints being present on the model
- #
- argparse_val = options.get('compile_scenario_instances')._argparse
- options.get('compile_scenario_instances')._argparse = None
-
- try:
- ap = argparse.ArgumentParser(prog='pyomo.pysp.convert.smps')
- options.initialize_argparse(ap)
-
- # restore the option so the class validation does not
- # raise an exception
- options.get('compile_scenario_instances')._argparse = argparse_val
-
- options.import_argparse(ap.parse_args(args=args))
- except SystemExit as _exc:
- # the parser throws a system exit if "-h" is specified
- # - catch it to exit gracefully.
- return _exc.code
-
- return launch_command(run_convertsmps,
- options,
- error_label="pyomo.pysp.convert.smps: ",
- disable_gc=options.disable_gc,
- profile_count=options.profile,
- traceback=options.traceback)
-
-if __name__ == "__main__":
- main(args=sys.argv[1:])
diff --git a/pyomo/pysp/drive_lagrangian_cc.py b/pyomo/pysp/drive_lagrangian_cc.py
deleted file mode 100644
index 83d882c6ef4..00000000000
--- a/pyomo/pysp/drive_lagrangian_cc.py
+++ /dev/null
@@ -1,481 +0,0 @@
-#! /usr/bin/env python
-# ___________________________________________________________________________
-#
-# Pyomo: Python Optimization Modeling Objects
-# Copyright 2017 National Technology and Engineering Solutions of Sandia, LLC
-# Under the terms of Contract DE-NA0003525 with National Technology and
-# Engineering Solutions of Sandia, LLC, the U.S. Government retains certain
-# rights in this software.
-# This software is distributed under the 3-clause BSD License.
-# ___________________________________________________________________________
-
-#
-# code to drive lagrgangeutils.py for a test
-#
-
-import sys
-import operator
-import traceback
-
-from pyomo.common.errors import ApplicationError
-
-from pyomo.opt import SolverManagerFactory
-
-from pyomo.pysp.scenariotree.instance_factory import \
- ScenarioTreeInstanceFactory
-from pyomo.pysp.phinit import (construct_ph_options_parser,
- GenerateScenarioTreeForPH,
- PHFromScratch)
-from pyomo.pysp.phutils import find_active_objective
-from pyomo.pysp import lagrangeutils as lagrUtil
-
-#########################################
-def run(args=None):
-##########################================================#########
- # to import plugins
- import pyomo.environ
- import pyomo.solvers.plugins.smanager.phpyro
- import pyomo.solvers.plugins.smanager.pyro
-
- def partialLagrangeParametric(args=None):
- print("lagrangeParam begins ")
- blanks = " " # used for formatting print statements
- class Object(object): pass
- Result = Object()
-
-# options used
- IndVarName = options.indicator_var_name
- CCStageNum = options.stage_num
- alphaTol = options.alpha_tol
- MaxMorePR = options.MaxMorePR # option to include up to this many PR points above F^* with all delta fixed
- outputFilePrefix = options.outputFilePrefix
-
-# We write ScenarioList = name, probability
-# PRoptimal = probability, min-cost, [selections]
-# PRmore = probability, min-cost, [selections]
-# ================ sorted by probability ========================
-#
-# These can be read to avoid re-computing points
-
- ph = PHFromScratch(options)
- Result.ph = ph
- rootnode = ph._scenario_tree._stages[0]._tree_nodes[0] # use rootnode to loop over scenarios
-
- if find_active_objective(ph._scenario_tree._scenarios[0]._instance,safety_checks=True).is_minimizing():
- print("We are solving a MINIMIZATION problem.\n")
- else:
- print("We are solving a MAXIMIZATION problem.\n")
-
-# initialize
- ScenarioList = []
- lambdaval = 0.
- lagrUtil.Set_ParmValue(ph,
- options.lambda_parm_name,
- lambdaval)
-
- # IMPORTANT: Preprocess the scenario instances
- # before fixing variables, otherwise they
- # will be preprocessed out of the expressions
- # and the output_fixed_variable_bounds option
- # will have no effect when we update the
- # fixed variable values (and then assume we
- # do not need to preprocess again because
- # of this option).
- ph._preprocess_scenario_instances()
-
- lagrUtil.FixAllIndicatorVariables(ph, IndVarName, 0)
- for scenario in rootnode._scenarios:
- ScenarioList.append((scenario._name,
- scenario._probability))
-
- # sorts from min to max probability
- ScenarioList.sort(key=operator.itemgetter(1))
- with open(outputFilePrefix+'ScenarioList.csv','w') as outFile:
- for scenario in ScenarioList:
- outFile.write(scenario[0]+ ", " +str(scenario[1])+"\n")
- Result.ScenarioList = ScenarioList
-
- print("lambda= "+str(lambdaval)+" ...run begins "+str(len(ScenarioList))+" scenarios")
- SolStat, zL = lagrUtil.solve_ph_code(ph, options)
- print("\t...ends")
- bL = Compute_ExpectationforVariable(ph,
- IndVarName,
- CCStageNum)
- if bL > 0:
- print("** bL = "+str(bL)+" > 0")
- return Result
-
- print("Initial cost = "+str(zL)+" for bL = "+str(bL))
-
- lagrUtil.FixAllIndicatorVariables(ph, IndVarName, 1)
-
- print("lambda= "+str(lambdaval)+" ...run begins")
- SolStat, zU = lagrUtil.solve_ph_code(ph, options)
- print("\t...ends")
- bU = Compute_ExpectationforVariable(ph,
- IndVarName,
- CCStageNum)
- if bU < 1:
- print("** bU = "+str(bU)+" < 1")
-
- lagrUtil.FreeAllIndicatorVariables(ph, IndVarName)
-
- Result.lbz = [ [0,bL,zL], [None,bU,zU] ]
- Result.selections = [[], ScenarioList]
- NumIntervals = 1
- print("initial gap = "+str(1-zL/zU)+" \n")
- print("End of test; this is only a test.")
-
- return Result
-################################
-# LagrangeParametric ends here
-################################
-
-#### start run ####
-
- AllInOne = False
-
-##########################
-# options defined here
-##########################
- try:
- conf_options_parser = construct_ph_options_parser("lagrange [options]")
- conf_options_parser.add_argument("--alpha",
- help="The alpha level for the chance constraint. Default is 0.05",
- action="store",
- dest="alpha",
- type=float,
- default=0.05)
- conf_options_parser.add_argument("--alpha-min",
- help="The min alpha level for the chance constraint. Default is None",
- action="store",
- dest="alpha_min",
- type=float,
- default=None)
- conf_options_parser.add_argument("--alpha-max",
- help="The alpha level for the chance constraint. Default is None",
- action="store",
- dest="alpha_max",
- type=float,
- default=None)
- conf_options_parser.add_argument("--min-prob",
- help="Tolerance for testing probability > 0. Default is 1e-5",
- action="store",
- dest="min_prob",
- type=float,
- default=1e-5)
- conf_options_parser.add_argument("--alpha-tol",
- help="Tolerance for testing equality to alpha. Default is 1e-5",
- action="store",
- dest="alpha_tol",
- type=float,
- default=1e-5)
- conf_options_parser.add_argument("--MaxMorePR",
- help="Generate up to this many additional PR points after response function. Default is 0",
- action="store",
- dest="MaxMorePR",
- type=int,
- default=0)
- conf_options_parser.add_argument("--outputFilePrefix",
- help="Output file name. Default is ''",
- action="store",
- dest="outputFilePrefix",
- type=str,
- default="")
- conf_options_parser.add_argument("--stage-num",
- help="The stage number of the CC indicator variable (number, not name). Default is 2",
- action="store",
- dest="stage_num",
- type=int,
- default=2)
- conf_options_parser.add_argument("--lambda-parm-name",
- help="The name of the lambda parameter in the model. Default is lambdaMult",
- action="store",
- dest="lambda_parm_name",
- type=str,
- default="lambdaMult")
- conf_options_parser.add_argument("--indicator-var-name",
- help="The name of the indicator variable for the chance constraint. The default is delta",
- action="store",
- dest="indicator_var_name",
- type=str,
- default="delta")
- conf_options_parser.add_argument("--use-Loane-cuts",
- help="Add the Loane cuts if there is a gap. Default is False",
- action="store_true",
- dest="add_Loane_cuts",
- default=False)
- conf_options_parser.add_argument("--fofx-var-name",
- help="(Loane) The name of the model's auxiliary variable that is constrained to be f(x). Default is fofox",
- action="store",
- dest="fofx_var_name",
- type=str,
- default="fofx")
- conf_options_parser.add_argument("--solve-with-ph",
- help="Perform solves via PH rather than an EF solve. Default is False",
- action="store_true",
- dest="solve_with_ph",
- default=False)
- conf_options_parser.add_argument("--skip-graph",
- help="Do not show the graph at the end. Default is False (i.e. show the graph)",
- action="store_true",
- dest="skip_graph",
- default=False)
- conf_options_parser.add_argument("--write-xls",
- help="Write results into a xls file. Default is False",
- action="store_true",
- dest="write_xls",
- default=False)
- conf_options_parser.add_argument("--skip-ExpFlip",
- help="Do not show the results for flipping the indicator variable for each scenario. Default is False (i.e. show the flipping-results)",
- action="store_true",
- dest="skip_ExpFlip",
- default=False)
- conf_options_parser.add_argument("--HeurFlip",
- help="The number of solutions to evaluate after the heuristic. Default is 3. For 0 the heuristic flip gets skipped.",
- action="store",
- type=int,
- dest="HeurFlip",
- default=3)
- conf_options_parser.add_argument("--HeurMIP",
- help="The mipgap for the scenariowise solves in the heuristic. Default is 0.0001",
- action="store",
- type=float,
- dest="HeurMIP",
- default=0.0001)
- conf_options_parser.add_argument("--interactive",
- help="Enable interactive version of the code. Default is False.",
- action="store_true",
- dest="interactive",
- default=False)
- conf_options_parser.add_argument("--Lgap",
- help="The (relative) Lagrangian gap acceptable for the chance constraint. Default is 10^-4",
- action="store",
- type=float,
- dest="LagrangeGap",
- default=0.0001)
- conf_options_parser.add_argument("--lagrange-method",
- help="The Lagrange multiplier search method",
- action="store",
- dest="lagrange_search_method",
- type=str,
- default="tangential")
- conf_options_parser.add_argument("--max-lambda",
- help="The max value of the multiplier. Default=10^10",
- action="store",
- dest="max_lambda",
- type=float,
- default=10**10)
- conf_options_parser.add_argument("--min-lambda",
- help="The min value of the multiplier. Default=0.0",
- action="store",
- dest="min_lambda",
- type=float,
- default=0)
- conf_options_parser.add_argument("--min-probability",
- help="The min value of scenario probability. Default=10^-15",
- action="store",
- dest="min_probability",
- type=float,
- default=10**(-15))
-
-################################################################
-
- options = conf_options_parser.parse_args(args=args)
- # temporary hack
- options._ef_options = conf_options_parser._ef_options
- options._ef_options.import_argparse(options)
- except SystemExit as _exc:
- # the parser throws a system exit if "-h" is specified - catch
- # it to exit gracefully.
- return _exc.code
-
- # load the reference model and create the scenario tree - no
- # scenario instances yet.
- if options.verbose:
- print("Loading reference model and scenario tree")
- #scenario_instance_factory, full_scenario_tree = load_models(options)
- scenario_instance_factory = \
- ScenarioTreeInstanceFactory(options.model_directory,
- options.instance_directory)
-
- full_scenario_tree = \
- GenerateScenarioTreeForPH(options,
- scenario_instance_factory)
-
- solver_manager = SolverManagerFactory(options.solver_manager_type)
- if solver_manager is None:
- raise ValueError("Failed to create solver manager of "
- "type="+options.solver_manager_type+
- " specified in call to PH constructor")
- if isinstance(solver_manager,
- pyomo.solvers.plugins.smanager.phpyro.SolverManager_PHPyro):
- raise ValueError("PHPyro can not be used as the solver manager")
-
- try:
-
- if (scenario_instance_factory is None) or (full_scenario_tree is None):
- raise RuntimeError("***ERROR: Failed to initialize model and/or the scenario tree data.")
-
- # load_model gets called again, so lets make sure unarchived directories are used
- options.model_directory = scenario_instance_factory._model_filename
- options.instance_directory = scenario_instance_factory._scenario_tree_filename
-
- scenario_count = len(full_scenario_tree._stages[-1]._tree_nodes)
-
- # create ph objects for finding the solution. we do this even if
- # we're solving the extensive form
-
- if options.verbose:
- print("Loading scenario instances and initializing scenario tree for full problem.")
-
-########## Here is where multiplier search is called ############
- Result = partialLagrangeParametric()
-#####################################################################################
-
- finally:
- # delete temporary unarchived directories
- scenario_instance_factory.close()
-
- print("\nreturned from partialLagrangeParametric")
-
-##########
-def Compute_ExpectationforVariable(ph, IndVarName, CCStageNum):
- SumSoFar = 0.0
- node_probability = 0.0
- stage = ph._scenario_tree._stages[CCStageNum-1]
- for tree_node in stage._tree_nodes:
- for scenario in tree_node._scenarios:
- instance = ph._instances[scenario._name]
- #print "scenario._probability:",scenario._probability
- node_probability += scenario._probability
- #print "node_probability:",node_probability
- #print "getattr(instance, IndVarName).value:",getattr(instance, IndVarName).value
- SumSoFar += scenario._probability * getattr(instance, IndVarName).value
- #print "SumSoFar:",SumSoFar
- return SumSoFar / node_probability
-
-#######################################
-
-def Insert(newpoint,location,List):
- newList = []
- for i in range(location): newList.append(List[i])
- newList.append(newpoint)
- for i in range(location,len(List)): newList.append(List[i])
- return newList
-
-#######################################
-
-def ismember(List,member): # designed to test 1st member of each list in List (ie, 1st column)
- for i in List:
- if len(i[0]) == 0: continue # in case list contains empty list
- if i[0] == member: return True
- return
-
-#######################################
-
-def putcommas(num):
- snum = str(num)
- decimal = snum.find('.')
- if decimal >= 0:
- frac = snum[decimal:]
- snum = snum[0:decimal]
- else: frac = ''
- if len(snum) < 4: return snum + frac
- else: return putcommas(snum[:len(snum)-3]) + "," + snum[len(snum)-3:len(snum)] + frac
-
-#######################################
-
-def PrintPRpoints(PRlist):
- if len(PRlist) == 0:
- print("No PR points")
- else:
- print(str(len(PRlist))+" PR points:")
- blanks = " "
- print(" lambda beta-probability min cost ")
- for row in PRlist:
- b = round(row[1],4)
- z = round(row[2])
-# lambda = row[0] could be float, string, or None
- sl = str(row[0])
- sl = blanks[0:20-len(sl)] + sl
- sb = str(b)
- sb = blanks[0:20-len(sb)] + sb
- sz = putcommas(z)
- sz = blanks[2:20-len(sz)] + sz
- print(sl+" "+sb+" "+sz)
- print("==================================================================\n")
- return
-
-###########
-def ZeroOneIndexListsforVariable(ph, IndVarName, CCStageNum):
- # return lists across scenarios of the zero value scenarios and one value scenarios
- # for unindexed variable in the ph object for a stage (one based)
- # in this routine we trust that it is binary
- ZerosList = []
- OnesList = []
-
- stage = ph._scenario_tree._stages[CCStageNum-1]
- for tree_node in stage._tree_nodes:
- for scenario in tree_node._scenarios:
- instance = ph._instances[scenario._name]
- locval = getattr(instance, IndVarName).value
- #print locval
- if locval < 0.5:
- ZerosList.append(scenario)
- else:
- OnesList.append(scenario)
- return [ZerosList,OnesList]
-
-###########
-def PrintanIndexList(IndList):
- # show some useful information about an index list (note: indexes are scenarios)
- print("Zeros:")
- for i in IndList[0]:
- print(i._name)
- print("Ones:")
- for i in IndList[1]:
- print(i._name)
-
-###########
-def ReturnIndexListNames(IndList):
- ListNames=[[],[]]
- #print "Zeros:"
- for i in IndList[0]:
- ListNames[0].append(i._name)
- #print "Ones:"
- for i in IndList[1]:
- ListNames[1].append(i._name)
- return ListNames
-
-#
-# the main script routine starts here
-#
-
-def main(args=None):
-
- try:
- run(args)
- except ValueError:
- msg = sys.exc_info()[1]
- print("VALUE ERROR:")
- print(msg)
- except IOError:
- msg = sys.exc_info()[1]
- print("IO ERROR:")
- print(msg)
- except ApplicationError:
- msg = sys.exc_info()[1]
- print("APPLICATION ERROR:")
- print(msg)
- except RuntimeError:
- msg = sys.exc_info()[1]
- print("RUN-TIME ERROR:")
- print(msg)
- except:
- print("Encountered unhandled exception"+str(sys.exc_info()[0]))
- traceback.print_exc()
-
-if __name__ == "__main__":
-
- run()
diff --git a/pyomo/pysp/dualphmodel.py b/pyomo/pysp/dualphmodel.py
deleted file mode 100644
index f392144e293..00000000000
--- a/pyomo/pysp/dualphmodel.py
+++ /dev/null
@@ -1,176 +0,0 @@
-# ___________________________________________________________________________
-#
-# Pyomo: Python Optimization Modeling Objects
-# Copyright 2017 National Technology and Engineering Solutions of Sandia, LLC
-# Under the terms of Contract DE-NA0003525 with National Technology and
-# Engineering Solutions of Sandia, LLC, the U.S. Government retains certain
-# rights in this software.
-# This software is distributed under the 3-clause BSD License.
-# ___________________________________________________________________________
-
-import copy
-
-from pyomo.core import ConcreteModel, Suffix, Var, Block, Set, RangeSet, Objective, Constraint, NonNegativeReals, sum_product, value
-from pyomo.opt import SolverFactory
-from pyomo.core.expr.current import ExpressionBase
-from pyomo.pysp.phutils import update_all_rhos, find_active_objective
-
-from six import iteritems
-
-class DualPHModel(object):
-
- def _create_model(self):
- model = ConcreteModel()
- model.dual = Suffix(direction=Suffix.IMPORT,default=0.0)
- for stage in self._ph._scenario_tree._stages[:-1]: # all blended stages
- for tree_node in stage._tree_nodes:
- setattr(model,tree_node._name,Block())
- block = getattr(model,tree_node._name)
- block.var_to_id = {}
- block.id_to_var = []
- for cntr, (var,index) in enumerate((name,idx) for name, indices in iteritems(tree_node._variable_indices) for idx in indices):
- block.var_to_id[var,index] = cntr
- block.id_to_var.append((var,index))
- block.var_index = RangeSet(0,len(block.id_to_var)-1)
- self._model = model
-
- def __init__(self,ph):
- self._ph = ph
- self._model = None
- self._solved = False
- self._alphas = {}
- self._wprod = {}
- self._wbars = {}
- self._iter = -1
- self._history = []
- self._create_model()
-
- def add_cut(self,first=False):
- self._iter += 1
- model = self._model
-
- self._wprod[self._iter] = self._compute_weight_weight_inner_product()
- if first is True:
- self._alphas[self._iter] = -( self._compute_objective_term() + (self._ph._rho/2.0)*self._wprod[self._iter] )
- else:
- self._alphas[self._iter] = -(self._compute_objective_term()) + self._compute_xbar_weight_inner_product()
-
- if self._solved is True:
- if self._compute_convergence() is True:
- return True
-
- model.del_component('cuts')
- model.cuts = Set(initialize=sorted(self._alphas.keys()))
- model.del_component('beta')
- model.beta = Var(model.cuts,within=NonNegativeReals)
- model.del_component('beta_sum_one')
- model.beta_sum_one = Constraint(expr=sum_product(model.beta)==1)
- model.del_component('obj')
- model.obj = Objective(expr=sum(self._alphas[i]*model.beta[i] for i in model.cuts))
-
- self._wbars[self._iter] = {}
- for stage in self._ph._scenario_tree._stages[:-1]: # all blended stages
- for tree_node in stage._tree_nodes:
- self._wbars[self._iter][tree_node._name] = copy.deepcopy(tree_node._wbars)
- block = getattr(model,tree_node._name)
- def _c_rule(block,i):
- lhs = sum(model.beta[k]*self._wbars[k][tree_node._name][block.id_to_var[i][0]][block.id_to_var[i][1]] for k in model.beta.index_set())
- if not isinstance(lhs,ExpressionBase):
- return Constraint.Skip
- return lhs == 0
- block.del_component('con')
- block.con = Constraint(block.var_index, rule=_c_rule)
- return False
-
- def solve(self):
- opt = SolverFactory("cplex")
- model = self._model
- model.dual.clearValue()
- model.load(opt.solve(model))#,keepfiles=True,symbolic_solver_labels=True,tee=True))
- self._solved = True
- self._update_tree_node_xbars()
-
- def _compute_convergence(self):
- model = self._model
- #print(model.dual[model.beta_sum_one])
- #print(self._compute_xbar_wbar_inner_product())
- #print(self._alphas[self._iter])
- dual_convergence = model.dual[model.beta_sum_one]+self._compute_xbar_wbar_inner_product()-self._alphas[self._iter]
- print("**** Convergence Metric: "+str(dual_convergence))
- self._history.append(dual_convergence)
- if self._iter > 1:
- if (dual_convergence < 1e-4) or all(self._history[-1] == x for x in self._history[-5:-1]):
- rho_old = self._ph._rho
- #(RHS-k-a_old)(2/w) + 1/rold = 1/r_new
- rho_new = self._ph._rho = rho_old*1.5 # 1.0/( (1.0/rho_old) + (dual_convergence-1)*(2.0/self._wprod[self._iter]) )
- if not (raw_input("Set rho to "+str(rho_new)+" ?") == 'n'):
- update_all_rhos(self._ph._instances, self._ph._scenario_tree, rho_value=self._ph._rho)
- for i in list(self._alphas.keys()):
- self._alphas[i] = self._alphas[i] + (0.5/rho_new-0.5/rho_old)*self._wprod[i]
- return False
- return True
- return False
-
- def _compute_objective_term(self):
- total = 0.0
- for scenario in self._ph._scenario_tree._scenarios:
- instance = self._ph._instances[scenario._name]
- total += -scenario._probability*value(find_active_objective(instance))
- return total
-
- def _compute_weight_weight_inner_product(self):
- w_inner_prod = 0.0
- for stage in self._ph._scenario_tree._stages[:-1]: # all blended stages
- for tree_node in stage._tree_nodes:
- for variable_name, variable_indices in iteritems(tree_node._variable_indices):
- weight_parameter_name = "PHWEIGHT_"+variable_name
- rho_parameter_name = "PHRHO_"+variable_name
- for scenario in tree_node._scenarios:
- instance = self._ph._instances[scenario._name]
- weight_parameter = getattr(instance, weight_parameter_name)
- rho_parameter = getattr(instance, rho_parameter_name)
- for index in variable_indices:
- w_inner_prod += scenario._probability*weight_parameter[index].value*weight_parameter[index].value
- return w_inner_prod
-
- def _compute_xbar_weight_inner_product(self):
- inner_prod = 0.0
- for stage in self._ph._scenario_tree._stages[:-1]: # all blended stages
- for tree_node in stage._tree_nodes:
- tree_node_xbars = tree_node._xbars
- for variable_name, variable_indices in iteritems(tree_node._variable_indices):
- weight_parameter_name = "PHWEIGHT_"+variable_name
- var_xbar = tree_node_xbars[variable_name]
- for scenario in tree_node._scenarios:
- instance = self._ph._instances[scenario._name]
- weight_parameter = getattr(instance, weight_parameter_name)
- for index in variable_indices:
- inner_prod += scenario._probability*var_xbar[index]*weight_parameter[index].value
- return inner_prod
-
- def _compute_xbar_wbar_inner_product(self):
- inner_prod = 0.0
- for stage in self._ph._scenario_tree._stages[:-1]: # all blended stages
- for tree_node in stage._tree_nodes:
- tree_node_xbars = tree_node._xbars
- tree_node_wbars = tree_node._wbars
- for variable_name, variable_indices in iteritems(tree_node._variable_indices):
- var_xbar = tree_node_xbars[variable_name]
- var_wbar = tree_node_wbars[variable_name]
- for index in variable_indices:
- inner_prod += var_xbar[index]*var_wbar[index]
- return inner_prod
-
- # This function updates the xbars dictionary on the ph scenario tree
- # to match the duals of the associated constraints in this model
- def _update_tree_node_xbars(self):
- # update the xbars
- model = self._model
- for stage in self._ph._scenario_tree._stages[:-1]: # all blended stages
- for tree_node in stage._tree_nodes:
- block = getattr(model,tree_node._name)
- for idx, con_data in iteritems(block.con):
- var_name = block.id_to_var[idx][0]
- var_index = block.id_to_var[idx][1]
- tree_node._xbars[var_name][var_index] = model.dual[con_data]
- print(stage._tree_nodes[0]._xbars)
diff --git a/pyomo/pysp/ef.py b/pyomo/pysp/ef.py
deleted file mode 100644
index 4b264480217..00000000000
--- a/pyomo/pysp/ef.py
+++ /dev/null
@@ -1,411 +0,0 @@
-# ___________________________________________________________________________
-#
-# Pyomo: Python Optimization Modeling Objects
-# Copyright 2017 National Technology and Engineering Solutions of Sandia, LLC
-# Under the terms of Contract DE-NA0003525 with National Technology and
-# Engineering Solutions of Sandia, LLC, the U.S. Government retains certain
-# rights in this software.
-# This software is distributed under the 3-clause BSD License.
-# ___________________________________________________________________________
-
-from pyomo.core import ConcreteModel, Var, Set, Objective, Constraint, ConstraintList, NonNegativeReals, NonPositiveReals, Expression, ComponentMap, maximize, minimize
-from pyomo.opt import (ProblemFormat,
- SolverFactory,
- SolverManagerFactory,
- SolverStatus,
- TerminationCondition,
- SolutionStatus)
-from pyomo.pysp.phutils import (isVariableNameIndexed,
- extractVariableNameAndIndex,
- extractComponentIndices)
-
-#
-# a routine to create the extensive form, given an input scenario tree and instances.
-# IMPT: unlike scenario instances, the extensive form instance is *not* self-contained.
-# in particular, it has binding constraints that cross the binding instance and
-# the scenario instances. it is up to the caller to keep track of which scenario
-# instances are associated with the extensive form. this might be something we
-# encapsulate at some later time.
-
-#
-# GAH: The following comment is still true, except that the scenario tree is no longer modified
-#
-# NOTE: if cvar terms are generated, then the input scenario tree is modified accordingly,
-# i.e., with the addition of the "eta" variable at the root node and the excess
-# variables at (for lack of a better place - they are per-scenario, but are not
-# blended) the second stage.
-#
-
-def create_ef_instance(scenario_tree,
- ef_instance_name = "MASTER",
- verbose_output = False,
- generate_weighted_cvar = False,
- cvar_weight = None,
- risk_alpha = None,
- cc_indicator_var_name=None,
- cc_alpha=0.0):
-
- #
- # create the new and empty binding instance.
- #
-
- # scenario tree must be "linked" with a set of instances
- # to used this function
- scenario_instances = {}
- for scenario in scenario_tree.scenarios:
- if scenario._instance is None:
- raise ValueError(
- "Cannot construct extensive form instance. "
- "The scenario tree does not appear to be linked "
- "to any Pyomo models. Missing model for scenario "
- "with name: %s" % (scenario.name))
- scenario_instances[scenario.name] = scenario._instance
-
- binding_instance = ConcreteModel(name=ef_instance_name)
- root_node = scenario_tree.findRootNode()
-
- opt_sense = minimize \
- if (scenario_tree._scenarios[0]._instance_objective.is_minimizing()) \
- else maximize
-
- #
- # validate cvar options, if specified.
- #
- cvar_excess_vardatas = []
- if generate_weighted_cvar:
- if (cvar_weight is None) or (cvar_weight < 0.0):
- raise RuntimeError("Weight of CVaR term must be >= 0.0 - value supplied="+str(cvar_weight))
- if (risk_alpha is None) or (risk_alpha <= 0.0) or (risk_alpha >= 1.0):
- raise RuntimeError("CVaR risk alpha must be between 0 and 1, exclusive - value supplied="+str(risk_alpha))
-
- if verbose_output:
- print("Writing CVaR weighted objective")
- print("CVaR term weight="+str(cvar_weight))
- print("CVaR alpha="+str(risk_alpha))
- print("")
-
- # create the eta and excess variable on a per-scenario basis,
- # in addition to the constraint relating to the two.
-
- cvar_eta_variable_name = "CVAR_ETA_"+str(root_node._name)
- cvar_eta_variable = Var()
- binding_instance.add_component(cvar_eta_variable_name, cvar_eta_variable)
-
- excess_var_domain = NonNegativeReals if (opt_sense == minimize) else \
- NonPositiveReals
-
- compute_excess_constraint = \
- binding_instance.COMPUTE_SCENARIO_EXCESS = \
- ConstraintList()
-
- for scenario in scenario_tree._scenarios:
-
- cvar_excess_variable_name = "CVAR_EXCESS_"+scenario._name
- cvar_excess_variable = Var(domain=excess_var_domain)
- binding_instance.add_component(cvar_excess_variable_name, cvar_excess_variable)
-
- compute_excess_expression = cvar_excess_variable
- compute_excess_expression -= scenario._instance_cost_expression
- compute_excess_expression += cvar_eta_variable
- if opt_sense == maximize:
- compute_excess_expression *= -1
-
- compute_excess_constraint.add((0.0, compute_excess_expression, None))
-
- cvar_excess_vardatas.append((cvar_excess_variable, scenario._probability))
-
- # the individual scenario instances are sub-blocks of the binding instance.
- for scenario in scenario_tree._scenarios:
- scenario_instance = scenario_instances[scenario._name]
- binding_instance.add_component(str(scenario._name), scenario_instance)
- # Now deactivate the scenario instance Objective since we are creating
- # a new master objective
- scenario._instance_objective.deactivate()
-
- # walk the scenario tree - create variables representing the
- # common values for all scenarios associated with that node, along
- # with equality constraints to enforce non-anticipativity. also
- # create expected cost variables for each node, to be computed via
- # constraints/objectives defined in a subsequent pass. master
- # variables are created for all nodes but those in the last
- # stage. expected cost variables are, for no particularly good
- # reason other than easy coding, created for nodes in all stages.
- if verbose_output:
- print("Creating variables for master binding instance")
-
- _cmap = binding_instance.MASTER_CONSTRAINT_MAP = ComponentMap()
- for stage in scenario_tree._stages[:-1]: # skip the leaf stage
-
- for tree_node in stage._tree_nodes:
-
- # create the master blending variable and constraints for this node
- master_blend_variable_name = \
- "MASTER_BLEND_VAR_"+str(tree_node._name)
- master_blend_constraint_name = \
- "MASTER_BLEND_CONSTRAINT_"+str(tree_node._name)
-
- # don't create master variables for derived
- # stage variables as they will not be used in
- # the problem, and their values would likely
- # never be consistent with what is stored on the
- # scenario variables
- master_variable_index = Set(initialize=sorted(tree_node._standard_variable_ids),
- ordered=True,
- name=master_blend_variable_name+"_index")
-
- binding_instance.add_component(master_blend_variable_name+"_index",
- master_variable_index)
-
- master_variable = Var(master_variable_index,
- name=master_blend_variable_name)
-
- binding_instance.add_component(master_blend_variable_name,
- master_variable)
-
- master_constraint = ConstraintList(name=master_blend_constraint_name)
-
- binding_instance.add_component(master_blend_constraint_name,
- master_constraint)
-
- tree_node_variable_datas = tree_node._variable_datas
- for variable_id in sorted(tree_node._standard_variable_ids):
- master_vardata = master_variable[variable_id]
- vardatas = tree_node_variable_datas[variable_id]
- # Don't blend fixed variables
- if not tree_node.is_variable_fixed(variable_id):
- for scenario_vardata, scenario_probability in vardatas:
- _cmap[scenario_vardata] = master_constraint.add(
- (master_vardata-scenario_vardata,0.0))
-
- if generate_weighted_cvar:
-
- cvar_cost_expression_name = "CVAR_COST_"+str(root_node._name)
- cvar_cost_expression = Expression(name=cvar_cost_expression_name)
- binding_instance.add_component(cvar_cost_expression_name, cvar_cost_expression)
-
- # create an expression to represent the expected cost at the root node
- binding_instance.EF_EXPECTED_COST = \
- Expression(initialize=sum(scenario._probability * \
- scenario._instance_cost_expression
- for scenario in scenario_tree._scenarios))
-
- opt_expression = \
- binding_instance.MASTER_OBJECTIVE_EXPRESSION = \
- Expression(initialize=binding_instance.EF_EXPECTED_COST)
-
- if generate_weighted_cvar:
- cvar_cost_expression_name = "CVAR_COST_"+str(root_node._name)
- cvar_cost_expression = \
- binding_instance.find_component(cvar_cost_expression_name)
- if cvar_weight == 0.0:
- # if the cvar weight is 0, then we're only
- # doing cvar - no mean.
- opt_expression.set_value(cvar_cost_expression)
- else:
- opt_expression.expr += cvar_weight * cvar_cost_expression
-
- binding_instance.MASTER = Objective(sense=opt_sense,
- expr=opt_expression)
-
- # CVaR requires the addition of a variable per scenario to
- # represent the cost excess, and a constraint to compute the cost
- # excess relative to eta.
- if generate_weighted_cvar:
-
- # add the constraint to compute the master CVaR variable value. iterate
- # over scenario instances to create the expected excess component first.
- cvar_cost_expression_name = "CVAR_COST_"+str(root_node._name)
- cvar_cost_expression = binding_instance.find_component(cvar_cost_expression_name)
- cvar_eta_variable_name = "CVAR_ETA_"+str(root_node._name)
- cvar_eta_variable = binding_instance.find_component(cvar_eta_variable_name)
-
- cost_expr = 1.0
- for scenario_excess_vardata, scenario_probability in cvar_excess_vardatas:
- cost_expr += (scenario_probability * scenario_excess_vardata)
- cost_expr /= (1.0 - risk_alpha)
- cost_expr += cvar_eta_variable
-
- cvar_cost_expression.set_value(cost_expr)
-
- if cc_indicator_var_name is not None:
- if verbose_output is True:
- print("Creating chance constraint for indicator variable= "+cc_indicator_var_name)
- print( "with alpha= "+str(cc_alpha))
- if not isVariableNameIndexed(cc_indicator_var_name):
- cc_expression = 0 #??????
- for scenario in scenario_tree._scenarios:
- scenario_instance = scenario_instances[scenario._name]
- scenario_probability = scenario._probability
- cc_var = scenario_instance.find_component(cc_indicator_var_name)
-
- cc_expression += scenario_probability * cc_var
-
- def makeCCRule(expression):
- def CCrule(model):
- return(1.0 - cc_alpha, cc_expression, None)
- return CCrule
-
- cc_constraint_name = "cc_"+cc_indicator_var_name
- cc_constraint = Constraint(name=cc_constraint_name, rule=makeCCRule(cc_expression))
- binding_instance.add_component(cc_constraint_name, cc_constraint)
- else:
- print("multiple cc not yet supported.")
- variable_name, index_template = extractVariableNameAndIndex(cc_indicator_var_name)
-
- # verify that the root variable exists and grab it.
- # NOTE: we are using whatever scenario happens to laying around... it might be better to use the reference
- variable = scenario_instance.find_component(variable_name)
- if variable is None:
- raise RuntimeError("Unknown variable="+variable_name+" referenced as the CC indicator variable.")
-
- # extract all "real", i.e., fully specified, indices matching the index template.
- match_indices = extractComponentIndices(variable, index_template)
-
- # there is a possibility that no indices match the input template.
- # if so, let the user know about it.
- if len(match_indices) == 0:
- raise RuntimeError("No indices match template="+str(index_template)+" for variable="+variable_name)
-
- # add the suffix to all variable values identified.
- for index in match_indices:
- variable_value = variable[index]
-
- cc_expression = 0 #??????
- for scenario in scenario_tree._scenarios:
- scenario_instance = scenario_instances[scenario._name]
- scenario_probability = scenario._probability
- cc_var = scenario_instance.find_component(variable_name)[index]
-
- cc_expression += scenario_probability * cc_var
-
- def makeCCRule(expression):
- def CCrule(model):
- return(1.0 - cc_alpha, cc_expression, None)
- return CCrule
-
- indexasname = ''
- for c in str(index):
- if c not in ' ,':
- indexasname += c
- cc_constraint_name = "cc_"+variable_name+"_"+indexasname
-
- cc_constraint = Constraint(name=cc_constraint_name, rule=makeCCRule(cc_expression))
- binding_instance.add_component(cc_constraint_name, cc_constraint)
-
- return binding_instance
-
-#
-# write the EF binding instance and all sub-instances.
-#
-
-def write_ef(binding_instance,
- output_filename,
- symbolic_solver_labels=False,
- output_fixed_variable_bounds=False):
-
- # determine the output file type, and invoke the appropriate
- # writer.
- pieces = output_filename.rsplit(".",1)
- if len(pieces) != 2:
- raise RuntimeError("Could not determine suffix from "
- "output filename="+output_filename)
- ef_output_file_suffix = pieces[1]
-
- io_options = {}
- if symbolic_solver_labels:
- io_options['symbolic_solver_labels'] = True
- if output_fixed_variable_bounds:
- io_options['output_fixed_variable_bounds'] = True
-
- # create the output file.
- if ef_output_file_suffix == "lp":
-
- _, smap_id = binding_instance.write(
- filename=output_filename,
- format=ProblemFormat.cpxlp,
- solver_capability=lambda x: True,
- io_options=io_options)
-
- elif ef_output_file_suffix == "nl":
-
- _, smap_id = binding_instance.write(
- filename=output_filename,
- format=ProblemFormat.nl,
- solver_capability=lambda x: True,
- io_options=io_options)
-
- elif ef_output_file_suffix == "mps":
-
- _, smap_id = binding_instance.write(
- filename=output_filename,
- format=ProblemFormat.mps,
- solver_capability=lambda x: True,
- io_options=io_options)
-
- else:
- raise RuntimeError("Unknown file suffix="+ef_output_file_suffix+
- " specified when writing extensive form")
-
- return smap_id
-
-#
-# solve the EF binding instance and load the solution
-#
-
-def solve_ef(master_instance, options):
-
- with SolverFactory(options.solver_type) as ef_solver:
-
- with SolverManagerFactory(options.solver_manager_type) as ef_solver_manager:
- if ef_solver is None:
- raise ValueError("Failed to create solver manager of type="
- +options.solver_type+" for use in extensive form solve")
- if len(options.ef_solver_options) > 0:
- print("Initializing ef solver with options="+str(options.ef_solver_options))
- ef_solver.set_options("".join(options.ef_solver_options))
- if options.ef_mipgap is not None:
- if (options.ef_mipgap < 0.0) or \
- (options.ef_mipgap > 1.0):
- raise ValueError("Value of the mipgap parameter for the "
- "EF solve must be on the unit interval; "
- "value specified="+str(options.ef_mipgap))
- else:
- ef_solver.mipgap = options.ef_mipgap
-
- solve_kwds = {}
- solve_kwds['load_solutions'] = False
- if options.keep_solver_files:
- solve_kwds['keepfiles'] = True
- if options.symbolic_solver_labels:
- solve_kwds['symbolic_solver_labels'] = True
- if options.output_solver_log:
- solve_kwds['tee'] = True
- if options.write_fixed_variables:
- solve_kwds['output_fixed_variable_bounds'] = True
-
- if options.verbose:
- print("Solving extensive form.")
-
- if (not options.disable_warmstarts) and \
- (ef_solver.warm_start_capable()):
- ef_action_handle = ef_solver_manager.queue(
- master_instance,
- opt=ef_solver,
- warmstart=True,
- **solve_kwds)
- else:
- ef_action_handle = ef_solver_manager.queue(
- master_instance,
- opt=ef_solver,
- **solve_kwds)
- results = ef_solver_manager.wait_for(ef_action_handle)
-
- # check the return code - if this is anything but "have a solution", we need to bail.
- if (results.solver.status == SolverStatus.ok) and \
- ((results.solver.termination_condition == TerminationCondition.optimal) or \
- ((len(results.solution) > 0) and (results.solution(0).status == SolutionStatus.optimal))):
-
- master_instance.solutions.load_from(results)
- return results
-
- raise RuntimeError("Extensive form was infeasible!")
diff --git a/pyomo/pysp/ef_vss.py b/pyomo/pysp/ef_vss.py
deleted file mode 100644
index fc0075fb38e..00000000000
--- a/pyomo/pysp/ef_vss.py
+++ /dev/null
@@ -1,51 +0,0 @@
-# ___________________________________________________________________________
-#
-# Pyomo: Python Optimization Modeling Objects
-# Copyright 2017 National Technology and Engineering Solutions of Sandia, LLC
-# Under the terms of Contract DE-NA0003525 with National Technology and
-# Engineering Solutions of Sandia, LLC, the U.S. Government retains certain
-# rights in this software.
-# This software is distributed under the 3-clause BSD License.
-# ___________________________________________________________________________
-
-from pyomo.core import Param, value
-
-def create_expected_value_instance(average_instance,
- scenario_tree,
- scenario_instances,
- verbose=False):
-
- rootnode = scenario_tree._stages[0]._tree_nodes[0]
- ScenCnt = len(rootnode._scenarios)
-
- for p in average_instance.component_map(Param, active=True):
-
- average_parameter_object = getattr(average_instance, p)
-
- for index in average_parameter_object:
- average_value = 0.0
- for scenario in rootnode._scenarios:
- scenario_parameter_object = getattr(scenario_instances[scenario._name], p)
- average_value += value(scenario_parameter_object[index])
- average_value = average_value / float(len(scenario_instances))
- average_parameter_object[index] = average_value
-
-def fix_ef_first_stage_variables(ph, scenario_tree, expected_value_instance):
-
- if ph._verbose:
- print("Fixing first stage variables at mean instance solution values.\n")
-
- stage = ph._scenario_tree._stages[0]
- root_node = stage._tree_nodes[0] # there should be only one root node!
- for variable_name, index_template in stage._variable_templates.iteritems():
-
- variable_indices = root_node._variable_indices[variable_name]
- for index in variable_indices:
- for scen in root_node._scenarios:
- inst = ph._instances[scen._name]
- print("HEYYYY fix varstatus !!!!!xxxxxx\n")
- #if getattr(inst, variable_name)[index].status != VarStatus.unused:
- if 1 == 1:
- print("variable_name= %s\n" % variable_name)
- fix_value = getattr(expected_value_instance, variable_name)[index].value
- getattr(inst, variable_name)[index].fix(fix_value)
diff --git a/pyomo/pysp/ef_writer_script.py b/pyomo/pysp/ef_writer_script.py
deleted file mode 100644
index 72718483a72..00000000000
--- a/pyomo/pysp/ef_writer_script.py
+++ /dev/null
@@ -1,849 +0,0 @@
-# ___________________________________________________________________________
-#
-# Pyomo: Python Optimization Modeling Objects
-# Copyright 2017 National Technology and Engineering Solutions of Sandia, LLC
-# Under the terms of Contract DE-NA0003525 with National Technology and
-# Engineering Solutions of Sandia, LLC, the U.S. Government retains certain
-# rights in this software.
-# This software is distributed under the 3-clause BSD License.
-# ___________________________________________________________________________
-
-import os
-import logging
-import sys
-import time
-import argparse
-
-import pyomo.solvers
-from pyomo.common.dependencies import yaml
-from pyomo.common import pyomo_command
-from pyomo.opt import (SolverFactory,
- undefined,
- UndefinedData,
- ProblemFormat,
- UnknownSolver,
- SolutionStatus)
-from pyomo.opt.parallel import SolverManagerFactory
-from pyomo.pysp.util.configured_object import PySPConfiguredObject
-from pyomo.pysp.util.config import (PySPConfigValue,
- PySPConfigBlock,
- safe_register_common_option,
- safe_register_unique_option,
- safe_declare_common_option,
- safe_declare_unique_option,
- _domain_nonnegative,
- _domain_must_be_str,
- _domain_unit_interval,
- _domain_tuple_of_str,
- _output_options_group_title,
- _extension_options_group_title,
- _deprecated_options_group_title)
-from pyomo.pysp.util.misc import (parse_command_line,
- launch_command,
- sort_extensions_by_precedence)
-from pyomo.pysp.phutils import find_active_objective
-from pyomo.pysp.scenariotree.manager_solver import \
- (ScenarioTreeManagerClientSerial)
-from pyomo.pysp.solutionioextensions import \
- (IPySPSolutionSaverExtension,
- IPySPSolutionLoaderExtension)
-from pyomo.pysp.solutionwriter import ISolutionWriterExtension
-from pyomo.pysp.ef import write_ef, create_ef_instance
-
-logger = logging.getLogger('pyomo.pysp')
-
-_ef_group_label = "EF Options"
-
-class ExtensiveFormAlgorithm(PySPConfiguredObject):
-
- @classmethod
- def _declare_options(cls, options=None):
- if options is None:
- options = PySPConfigBlock()
-
- safe_declare_unique_option(
- options,
- "cvar_weight",
- PySPConfigValue(
- 1.0,
- domain=_domain_nonnegative,
- description=(
- "The weight associated with the CVaR term in "
- "the risk-weighted objective "
- "formulation. If the weight is 0, then "
- "*only* a non-weighted CVaR cost will appear "
- "in the EF objective - the expected cost "
- "component will be dropped. Default is 1.0."
- ),
- doc=None,
- visibility=0),
- ap_group=_ef_group_label)
- safe_declare_unique_option(
- options,
- "generate_weighted_cvar",
- PySPConfigValue(
- False,
- domain=bool,
- description=(
- "Add a weighted CVaR term to the "
- "primary objective. Default is False."
- ),
- doc=None,
- visibility=0),
- ap_group=_ef_group_label)
- safe_declare_unique_option(
- options,
- "risk_alpha",
- PySPConfigValue(
- 0.95,
- domain=_domain_unit_interval,
- description=(
- "The probability threshold associated with "
- "CVaR (or any future) risk-oriented "
- "performance metrics. Default is 0.95."
- ),
- doc=None,
- visibility=0),
- ap_group=_ef_group_label)
- safe_declare_unique_option(
- options,
- "cc_alpha",
- PySPConfigValue(
- 0.0,
- domain=_domain_unit_interval,
- description=(
- "The probability threshold associated with a "
- "chance constraint. The RHS will be one "
- "minus this value. Default is 0."
- ),
- doc=None,
- visibility=0),
- ap_group=_ef_group_label)
- safe_declare_unique_option(
- options,
- "cc_indicator_var",
- PySPConfigValue(
- None,
- domain=_domain_must_be_str,
- description=(
- "The name of the binary variable to be used "
- "to construct a chance constraint. Default "
- "is None, which indicates no chance "
- "constraint."
- ),
- doc=None,
- visibility=0),
- ap_group=_ef_group_label)
- safe_declare_unique_option(
- options,
- "mipgap",
- PySPConfigValue(
- None,
- domain=_domain_unit_interval,
- description=(
- "Specifies the mipgap for the EF solve."
- ),
- doc=None,
- visibility=0),
- ap_group=_ef_group_label)
- safe_declare_common_option(options,
- "solver")
- safe_declare_common_option(options,
- "solver_io")
- safe_declare_common_option(options,
- "solver_manager")
- safe_declare_common_option(options,
- "solver_options")
- safe_declare_common_option(options,
- "disable_warmstart")
- safe_declare_common_option(options,
- "pyro_host")
- safe_declare_common_option(options,
- "pyro_port")
- safe_declare_common_option(options,
- "pyro_shutdown")
- safe_declare_common_option(options,
- "verbose",
- ap_group=_ef_group_label)
- safe_declare_common_option(options,
- "output_times",
- ap_group=_ef_group_label)
- safe_declare_common_option(options,
- "output_solver_results",
- ap_group=_ef_group_label)
- safe_declare_common_option(options,
- "symbolic_solver_labels",
- ap_group=_ef_group_label)
- safe_declare_common_option(options,
- "output_solver_log",
- ap_group=_ef_group_label)
- safe_declare_common_option(options,
- "verbose",
- ap_group=_ef_group_label)
- safe_declare_common_option(options,
- "output_times",
- ap_group=_ef_group_label)
- safe_declare_common_option(options,
- "keep_solver_files",
- ap_group=_ef_group_label)
- safe_declare_common_option(options,
- "output_solver_results",
- ap_group=_ef_group_label)
-
- return options
-
- def __enter__(self):
- return self
-
- def __exit__(self, *args):
- self.close()
-
- def close(self):
- self.destroy_ef()
- if self._solver_manager is not None:
- if isinstance(self._solver_manager,
- pyomo.solvers.plugins.smanager.\
- pyro.SolverManager_Pyro):
- if self.get_option("pyro_shutdown_workers"):
- self._solver_manager.shutdown_workers()
- self._solver_manager = None
-
- self._manager = None
- self.objective = undefined
- self.objective_sense = undefined
- self.gap = undefined
- self.termination_condition = undefined
- self.solver_status = undefined
- self.solution_status = undefined
- self.solver_results = undefined
- self.pyomo_solve_time = undefined
- self.solve_time = undefined
-
- def __init__(self, manager, *args, **kwds):
- import pyomo.solvers.plugins.smanager.pyro
- super(ExtensiveFormAlgorithm, self).__init__(*args, **kwds)
-
- # TODO: after PH moves over to the new code
- #if not isinstance(manager, ScenarioTreeManager):
- # raise TypeError("ExtensiveFormAlgorithm requires an instance of the "
- # "ScenarioTreeManager interface as the "
- # "second argument")
- if not manager.initialized:
- raise ValueError("ExtensiveFormAlgorithm requires a scenario tree "
- "manager that has been fully initialized")
-
- self._manager = manager
- self.instance = None
- self._solver_manager = None
- self._solver = None
-
- # The following attributes will be modified by the
- # solve() method. For users that are scripting, these
- # can be accessed after the solve() method returns.
- # They will be reset each time solve() is called.
- ############################################
- self.objective = undefined
- self.gap = undefined
- self.termination_condition = undefined
- self.solver_status = undefined
- self.solution_status = undefined
- self.solver_results = undefined
- self.pyomo_solve_time = undefined
- self.solve_time = undefined
- ############################################
-
- self._solver = SolverFactory(self.get_option("solver"),
- solver_io=self.get_option("solver_io"))
- if isinstance(self._solver, UnknownSolver):
- raise ValueError("Failed to create solver of type="+
- self.get_option("solver")+
- " for use in extensive form solve")
- if len(self.get_option("solver_options")) > 0:
- if self.get_option("verbose"):
- print("Initializing ef solver with options="
- +str(list(self.get_option("solver_options"))))
- self._solver.set_options("".join(self.get_option("solver_options")))
- if self.get_option("mipgap") is not None:
- if (self.get_option("mipgap") < 0.0) or \
- (self.get_option("mipgap") > 1.0):
- raise ValueError("Value of the mipgap parameter for the EF "
- "solve must be on the unit interval; "
- "value specified="+str(self.get_option("mipgap")))
- self._solver.options.mipgap = float(self.get_option("mipgap"))
-
- solver_manager_type = self.get_option("solver_manager")
- if solver_manager_type == "phpyro":
- print("*** WARNING ***: PHPyro is not a supported solver "
- "manager type for the extensive-form solver. "
- "Falling back to serial.")
- solver_manager_type = 'serial'
-
- self._solver_manager = SolverManagerFactory(
- solver_manager_type,
- host=self.get_option("pyro_host"),
- port=self.get_option("pyro_port"))
- if self._solver_manager is None:
- raise ValueError("Failed to create solver manager of type="
- +self.get_option("solver")+
- " for use in extensive form solve")
-
- def build_ef(self):
- self.destroy_ef()
- if self.get_option("verbose"):
- print("Creating extensive form instance")
- start_time = time.time()
-
- # then validate the associated parameters.
- generate_weighted_cvar = False
- cvar_weight = None
- risk_alpha = None
- if self.get_option("generate_weighted_cvar"):
- generate_weighted_cvar = True
- cvar_weight = self.get_option("cvar_weight")
- risk_alpha = self.get_option("risk_alpha")
-
- self.instance = create_ef_instance(
- self._manager.scenario_tree,
- verbose_output=self.get_option("verbose"),
- generate_weighted_cvar=generate_weighted_cvar,
- cvar_weight=cvar_weight,
- risk_alpha=risk_alpha,
- cc_indicator_var_name=self.get_option("cc_indicator_var"),
- cc_alpha=self.get_option("cc_alpha"))
-
- if self.get_option("verbose") or self.get_option("output_times"):
- print("Time to construct extensive form instance=%.2f seconds"
- %(time.time() - start_time))
-
- def destroy_ef(self):
- if self.instance is not None:
- for scenario in self._manager.scenario_tree.scenarios:
- self.instance.del_component(scenario.name)
- scenario._instance_objective.activate()
- self.instance = None
-
- def write(self, filename):
-
- if self.instance is None:
- raise RuntimeError(
- "The extensive form instance has not been constructed."
- "Call the build_ef() method to construct it.")
-
- suf = os.path.splitext(filename)[1]
- if suf not in ['.nl','.lp','.mps']:
- if self._solver.problem_format() == ProblemFormat.cpxlp:
- filename += '.lp'
- elif self._solver.problem_format() == ProblemFormat.nl:
- filename += '.nl'
- elif self._solver.problem_format() == ProblemFormat.mps:
- filename += '.mps'
- else:
- raise ValueError("Could not determine output file format. "
- "No recognized ending suffix was provided "
- "and no format was indicated was by the "
- "--solver-io option.")
-
- start_time = time.time()
- if self.get_option("verbose"):
- print("Starting to write extensive form")
-
- smap_id = write_ef(self.instance,
- filename,
- self.get_option("symbolic_solver_labels"))
-
- print("Extensive form written to file="+filename)
- if self.get_option("verbose") or self.get_option("output_times"):
- print("Time to write output file=%.2f seconds"
- % (time.time() - start_time))
-
- return filename, smap_id
-
- def solve(self,
- check_status=True,
- exception_on_failure=True,
- io_options=None):
- # TODO: Does this import need to be delayed because
- # it is in a plugins subdirectory
- from pyomo.solvers.plugins.solvers.persistent_solver import \
- PersistentSolver
-
- if self.instance is None:
- raise RuntimeError(
- "The extensive form instance has not been constructed."
- "Call the build_ef() method to construct it.")
-
- start_time = time.time()
- if self.get_option("verbose"):
- print("Queuing extensive form solve")
-
- self.objective = undefined
- self.gap = undefined
- self.bound = undefined
- self.pyomo_solve_time = undefined
- self.solve_time = undefined
- self.termination_condition = undefined
- self.solver_status = undefined
- self.solution_status = undefined
- self.solver_results = undefined
-
- if isinstance(self._solver, PersistentSolver):
- self._solver.set_instance(self.instance,
- symbolic_solver_labels=self.get_option("symbolic_solver_labels"))
-
- solve_kwds = {}
- solve_kwds['load_solutions'] = False
- if self.get_option("keep_solver_files"):
- solve_kwds['keepfiles'] = True
- if self.get_option("symbolic_solver_labels"):
- solve_kwds['symbolic_solver_labels'] = True
- if self.get_option("output_solver_log"):
- solve_kwds['tee'] = True
-
- if io_options is not None:
- solve_kwds.update(io_options)
-
- self.objective_sense = \
- find_active_objective(self.instance).sense
-
- if (not self.get_option("disable_warmstart")) and \
- (self._solver.warm_start_capable()):
- action_handle = self._solver_manager.queue(self.instance,
- opt=self._solver,
- warmstart=True,
- **solve_kwds)
- else:
- action_handle = self._solver_manager.queue(self.instance,
- opt=self._solver,
- **solve_kwds)
-
- if self.get_option("verbose"):
- print("Waiting for extensive form solve")
- results = self._solver_manager.wait_for(action_handle)
-
- if self.get_option("verbose"):
- print("Done with extensive form solve - loading results")
-
- if self.get_option("output_solver_results"):
- print("Results for ef:")
- results.write(num=1)
-
- self.solver_results = results
- if hasattr(results.solver,"user_time") and \
- (not isinstance(results.solver.user_time,
- UndefinedData)) and \
- (results.solver.user_time is not None):
- # the solve time might be a string, or might
- # not be - we eventually would like more
- # consistency on this front from the solver
- # plugins.
- self.solve_time = \
- float(results.solver.user_time)
- elif hasattr(results.solver,"time"):
- self.solve_time = \
- float(results.solver.time)
- else:
- self.solve_time = undefined
-
- if hasattr(results,"pyomo_solve_time"):
- self.pyomo_solve_time = \
- results.pyomo_solve_time
- else:
- self.pyomo_solve_times = undefined
-
- self.termination_condition = \
- results.solver.termination_condition
- self.solver_status = \
- results.solver.status
-
- if len(results.solution) > 0:
- assert len(results.solution) == 1
-
- results_sm = results._smap
- self.instance.solutions.load_from(results)
-
- solution0 = results.solution(0)
- if hasattr(solution0, "gap") and \
- (solution0.gap is not None):
- self.gap = solution0.gap
- else:
- self.gap = undefined
-
- self.solution_status = solution0.status
-
- if self.get_option("verbose"):
- print("Storing solution in scenario tree")
-
- for scenario in self._manager.scenario_tree.scenarios:
- scenario.update_solution_from_instance()
- self._manager.scenario_tree.snapshotSolutionFromScenarios()
- self.objective = self._manager.scenario_tree.\
- findRootNode().\
- computeExpectedNodeCost()
- if self.gap is not undefined:
- if self.objective_sense == pyomo.core.base.minimize:
- self.bound = self.objective - self.gap
- else:
- self.bound = self.objective + self.gap
-
- else:
-
- self.objective = undefined
- self.gap = undefined
- self.bound = undefined
- self.solution_status = undefined
-
- failure = False
-
- if check_status:
- if not ((self.solution_status == SolutionStatus.optimal) or \
- (self.solution_status == SolutionStatus.feasible)):
- failure = True
- if self.get_option("verbose") or \
- exception_on_failure:
- msg = ("EF solve failed solution status check:\n"
- "Solver Status: %s\n"
- "Termination Condition: %s\n"
- "Solution Status: %s\n"
- % (self.solver_status,
- self.termination_condition,
- self.solution_status))
- if self.get_option("verbose"):
- print(msg)
- if exception_on_failure:
- raise RuntimeError(msg)
- else:
- if self.get_option("verbose"):
- print("EF solve completed. Skipping status check.")
-
- if self.get_option("verbose") or self.get_option("output_times"):
- print("Time to solve and load results for the "
- "extensive form=%.2f seconds"
- % (time.time()-start_time))
-
- return failure
-
-def runef_register_options(options=None):
- if options is None:
- options = PySPConfigBlock()
-
- safe_register_common_option(options,
- "verbose")
- safe_register_common_option(options,
- "disable_gc")
- safe_register_common_option(options,
- "profile")
- safe_register_common_option(options,
- "traceback")
- safe_register_common_option(options,
- "output_scenario_tree_solution")
- safe_register_common_option(options,
- "solution_saver_extension")
- safe_register_common_option(options,
- "solution_loader_extension")
- safe_register_unique_option(
- options,
- "solution_writer",
- PySPConfigValue(
- (),
- domain=_domain_tuple_of_str,
- description=(
- "The name of a python module specifying a user-defined "
- "plugin implementing the ISolutionWriterExtension "
- "interface. Invoked to save a scenario tree solution. Use "
- "this option when generating a template configuration file "
- "or invoking command-line help in order to include any "
- "plugin-specific options. This option can used multiple "
- "times from the command line to specify more than one plugin."
- ),
- doc=None,
- visibility=0),
- ap_kwds={'action': 'append'},
- ap_group=_extension_options_group_title)
- safe_register_unique_option(
- options,
- "output_file",
- PySPConfigValue(
- "efout",
- domain=_domain_must_be_str,
- description=(
- "The name of the extensive form output file "
- "(currently LP, MPS, and NL file formats are "
- "supported). If the option value does not end "
- "in '.lp', '.mps', or '.nl', then the output format "
- "will be inferred from the settings for the --solver "
- "and --solver-io options, and the appropriate suffix "
- "will be appended to the name. Default is 'efout'."
- ),
- doc=None,
- visibility=0),
- ap_group=_output_options_group_title)
- safe_register_unique_option(
- options,
- "solve",
- PySPConfigValue(
- False,
- domain=bool,
- description=(
- "Solve the extensive form model. Default is "
- "False, which implies that the EF will be "
- "saved to a file."
- ),
- doc=None,
- visibility=0))
- safe_register_unique_option(
- options,
- "output_scenario_costs",
- PySPConfigValue(
- None,
- domain=_domain_must_be_str,
- description=(
- "A file name where individual scenario costs from the solution "
- "will be stored. The format is determined from the extension used "
- "in the filename. Recognized extensions: [.csv, .json, .yaml]"
- ),
- doc=None,
- visibility=0))
- ScenarioTreeManagerClientSerial.register_options(options)
- ExtensiveFormAlgorithm.register_options(options)
-
- #
- # Deprecated
- #
-
- # this will cause the deprecated "shutdown_pyro" version
- # to appear
- safe_register_common_option(options,
- "pyro_shutdown")
- # this will cause the deprecated "shutdown_pyro_workers"
- # version to appear
- safe_register_common_option(options,
- "pyro_shutdown_workers")
-
- class _DeprecatedActivateJSONIOSolutionSaver(argparse.Action):
- def __init__(self, option_strings, dest, nargs=None, **kwargs):
- if nargs is not None:
- raise ValueError("nargs not allowed")
- super(_DeprecatedActivateJSONIOSolutionSaver, self).\
- __init__(option_strings, dest, nargs=0, **kwargs)
- def __call__(self, parser, namespace, values, option_string=None):
- logger.warning(
- "DEPRECATED: The '--activate-json-io-solution-saver "
- "command-line option has been deprecated and will "
- "be removed in the future. Please the following instead: "
- "'----solution-saver-extension=pyomo.pysp.plugins.jsonio'")
- val = getattr(namespace,
- 'CONFIGBLOCK.solution_saver_extension', [])
- setattr(namespace,
- 'CONFIGBLOCK.solution_saver_extension',
- val + ["pyomo.pysp.plugins.jsonio"])
-
- def _warn_activate_jsonio_solution_saver(val):
- # don't use logger here since users might not import
- # the pyomo logger in a scripting interface
- sys.stderr.write(
- "\tWARNING: The 'activate_jsonio_solution_saver' "
- "config item will be ignored "
- "unless it is being used as a command-line option "
- "where it can be redirected to 'solution_saver_extension'. "
- "Please use 'solution_saver_extension=pyomo.pysp.plugins.jsonio' "
- "instead.\n")
- return _domain_tuple_of_str(val)
-
- safe_declare_unique_option(
- options,
- "activate_jsonio_solution_saver",
- PySPConfigValue(
- None,
- domain=_warn_activate_jsonio_solution_saver,
- description=(
- "Deprecated alias for "
- "--solution-saver-extension=pyomo.pysp.plugins.jsonio"
- ),
- doc=None,
- visibility=1),
- ap_kwds={'action':_DeprecatedActivateJSONIOSolutionSaver},
- ap_group=_deprecated_options_group_title,
- declare_for_argparse=True)
-
- return options
-
-#
-# Construct a scenario tree manager and an
-# ExtensiveFormAlgorithm to solve it.
-#
-
-def runef(options,
- solution_loaders=(),
- solution_savers=(),
- solution_writers=()):
-
- import pyomo.environ
-
- start_time = time.time()
-
- solution_loaders = sort_extensions_by_precedence(solution_loaders)
- solution_savers = sort_extensions_by_precedence(solution_savers)
- solution_writers = sort_extensions_by_precedence(solution_writers)
-
- with ScenarioTreeManagerClientSerial(options) \
- as manager:
- manager.initialize()
-
- loaded = False
- for plugin in solution_loaders:
- ret = plugin.load(manager)
- if not ret:
- print("WARNING: Loader extension %s call did not return True. "
- "This might indicate failure to load data." % (plugin))
- else:
- loaded = True
-
- print("")
- print("Initializing extensive form algorithm for "
- "stochastic programming problems.")
- with ExtensiveFormAlgorithm(manager, options) as ef:
-
- ef.build_ef()
- # This is somewhat of a hack to get around the
- # weird semantics of this script (assumed by tests)
- if (not options.solve) or \
- (options.get("output_file")._userSet):
-
- ef.write(options.output_file)
-
- if not options.solve:
-
- if options.output_scenario_costs is not None:
- print("WARNING: output_scenario_costs option "
- "will be ignored because the extensive form "
- "has not been solved.")
- if len(solution_savers):
- print("WARNING: Solution saver extensions will "
- "not be called because the extensive form "
- "has not been solved.")
- if len(solution_writers):
- print("WARNING: Solution writer extensions will "
- "not be called because the extensive form "
- "has not been solved.")
-
- else:
- ef.solve()
-
- print("EF solve completed and solution status is %s"
- % ef.solution_status)
- print("EF solve termination condition is %s"
- % ef.termination_condition)
- print("EF objective: %12.5f" % ef.objective)
- if ef.gap is not undefined:
- print("EF gap: %12.5f" % ef.gap)
- print("EF bound: %12.5f" % ef.bound)
- else:
- assert ef.bound is undefined
- print("EF gap: ")
- print("EF bound: ")
-
- # handle output of solution from the scenario tree.
- print("")
- print("Extensive form solution:")
- manager.scenario_tree.pprintSolution()
- print("")
- print("Extensive form costs:")
- manager.scenario_tree.pprintCosts()
-
- if options.output_scenario_tree_solution:
- print("Final solution (scenario tree format):")
- manager.scenario_tree.pprintSolution()
-
- if options.output_scenario_costs is not None:
- if options.output_scenario_costs.endswith('.json'):
- import json
- result = {}
- for scenario in manager.scenario_tree.scenarios:
- result[str(scenario.name)] = scenario._cost
- with open(options.output_scenario_costs, 'w') as f:
- json.dump(result, f, indent=2, sort_keys=True)
- elif options.output_scenario_costs.endswith('.yaml'):
- result = {}
- for scenario in manager.scenario_tree.scenarios:
- result[str(scenario.name)] = scenario._cost
- with open(options.output_scenario_costs, 'w') as f:
- yaml.dump(result, f)
- else:
- if not options.output_scenario_costs.endswith('.csv'):
- print("Unrecognized file extension. Using CSV format "
- "to store scenario costs")
- with open(options.output_scenario_costs, 'w') as f:
- for scenario in manager.scenario_tree.scenarios:
- f.write("%s,%r\n" % (scenario.name,scenario._cost))
-
-
- for plugin in solution_savers:
- if not plugin.save(manager):
- print("WARNING: Saver extension %s call did not "
- "return True. This might indicate failure "
- "to save data." % (plugin))
-
- for plugin in solution_writers:
- plugin.write(manager.scenario_tree, "ef")
-
- print("")
- print("Total EF execution time=%.2f seconds"
- % (time.time() - start_time))
- print("")
-
- return 0
-
-#
-# The main driver routine for the runef script
-#
-
-def main(args=None):
- #
- # Top-level command that executes everything
- #
-
- #
- # Import plugins
- #
- import pyomo.environ
-
- #
- # Parse command-line options.
- #
- try:
- options, extensions = parse_command_line(
- args,
- runef_register_options,
- with_extensions={'solution_loader_extension':
- IPySPSolutionLoaderExtension,
- 'solution_saver_extension':
- IPySPSolutionSaverExtension,
- 'solution_writer':
- ISolutionWriterExtension},
- prog='runef',
- description=(
-"""Construct and Solve an Extensive Form for Stochastic Programs"""
- ))
-
- except SystemExit as _exc:
- # the parser throws a system exit if "-h" is specified
- # - catch it to exit gracefully.
- return _exc.code
-
- return launch_command(runef,
- options,
- cmd_kwds={'solution_loaders':
- extensions['solution_loader_extension'],
- 'solution_savers':
- extensions['solution_saver_extension'],
- 'solution_writers':
- extensions['solution_writer']},
- error_label="runef: ",
- disable_gc=options.disable_gc,
- profile_count=options.profile,
- traceback=options.traceback)
-
-@pyomo_command('runef',
- 'Convert a stochastic program to extensive form and optimize')
-def EF_main(args=None):
- return main(args=args)
diff --git a/pyomo/pysp/embeddedsp.py b/pyomo/pysp/embeddedsp.py
deleted file mode 100644
index c386266516b..00000000000
--- a/pyomo/pysp/embeddedsp.py
+++ /dev/null
@@ -1,850 +0,0 @@
-# _________________________________________________________________________
-#
-# Pyomo: Python Optimization Modeling Objects
-# Copyright (c) 2014 Sandia Corporation.
-# Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation,
-# the U.S. Government retains certain rights in this software.
-# This software is distributed under the BSD License.
-# _________________________________________________________________________
-
-__all__ = ("EmbeddedSP,")
-
-import os
-import itertools
-import random
-import math
-
-from pyomo.common.collections import ComponentMap
-from pyomo.core.expr import current as EXPR
-from pyomo.core.base import ComponentUID
-from pyomo.core.base.block import (Block,
- SortComponents)
-from pyomo.core.base.var import Var
-from pyomo.core.base.objective import (Objective,
- _ObjectiveData)
-from pyomo.core.base.constraint import (Constraint,
- _ConstraintData)
-from pyomo.core.base.sos import SOSConstraint
-from pyomo.core.base.param import _ParamData
-from pyomo.pysp.annotations import (locate_annotations,
- StageCostAnnotation,
- VariableStageAnnotation,
- StochasticDataAnnotation,
- StochasticConstraintBoundsAnnotation,
- StochasticConstraintBodyAnnotation,
- StochasticObjectiveAnnotation,
- StochasticVariableBoundsAnnotation)
-from pyomo.pysp.scenariotree import tree_structure
-from pyomo.pysp.scenariotree.tree_structure_model import \
- CreateAbstractScenarioTreeModel
-from pyomo.pysp.scenariotree.manager import \
- InvocationType
-from pyomo.pysp.scenariotree.instance_factory import \
- ScenarioTreeInstanceFactory
-from pyomo.pysp.scenariotree.manager import \
- (ScenarioTreeManagerClientSerial,
- ScenarioTreeManagerClientPyro)
-
-from six.moves import xrange, zip
-
-# TODO: generate explicit annotations
-
-# TODO: Address the fact that Pyomo variables return
-# numbers when asking for bounds, making it impossible
-# to check if a mutable Param (e.g., stochastic data)
-# appears there.
-
-# generate an absolute path to this file
-thisfile = os.path.abspath(__file__)
-def _update_data(worker, scenario, data):
- instance = scenario.instance
- assert instance is not None
- for cuid, val in data:
- cuid.find_component_on(instance).value = val
-
-#
-# These distributions are documented by the SMPS format
-# documentation found at:
-# http://myweb.dal.ca/gassmann/smps2.htm#StochIndep
-#
-
-class Distribution(object):
- __slots__ = ()
- def expectation(self, *args, **kwds):
- raise NotImplementedError
- def sample(self, *args, **kwds):
- raise NotImplementedError
-
-class TableDistribution(Distribution):
- """
- Table distribution.
-
- A probability weighted table of discrete values. If no
- weights are provided, the probability of each value is
- considered uniform.
- """
- __slots = ("values", "weights")
- def __init__(self, values, weights=None):
- if len(values) == 0:
- raise ValueError("Empty tables are not allowed")
- self.values = tuple(values)
- if weights is None:
- self.weights = [1.0/len(self.values)]*len(self.values)
- else:
- self.weights = tuple(weights)
- if len(self.values) != len(self.weights):
- raise ValueError("Different number of weights than values")
- if abs(sum(self.weights) - 1) > 1e-6:
- raise ValueError("Weights do not sum to 1")
-
- def expectation(self):
- return sum(value * weight for value, weight
- in zip(self.values, self.weights))
-
- def sample(self):
- x = random.uniform(0, 1)
- cumm = 0.0
- for value, weight in zip(self.values, self.weights):
- cumm += weight
- if x < cumm:
- break
- return value
-
-class UniformDistribution(Distribution):
- """
- Uniform distribution.
-
- A random number in the range [a, b) or [a, b] depending on rounding.
- """
- __slots__ = ("a", "b")
- def __init__(self, a, b):
- assert a <= b
- self.a = a
- self.b = b
-
- def expectation(self):
- return (self.b - self.a)/2.0
-
- def sample(self):
- return random.uniform(self.a, self.b)
-
-class NormalDistribution(Distribution):
- """
- Normal distribution.
-
- The parameters represent the mean (mu) and the standard
- deviation (sigma).
-
- The probability density function is:
-
- e^((x-mu)^2 / -2(sigma^2))
- pdf(x) = ----------------------------
- sqrt(2 * pi * sigma^2)
- """
- __slots__ = ("mu","sigma","_sampler")
- def __init__(self, mu, sigma, sampler=random.normalvariate):
- self.mu = mu
- self.sigma = sigma
- self._sampler = sampler
-
- def expectation(self):
- return self.mu
-
- def sample(self):
- return self._sampler(self.mu, self.sigma)
-
-class LogNormalDistribution(Distribution):
- """
- Log normal distribution.
-
- A variable x has a log-normal distribution if log(x) is
- normally distributed. The parameters represent the mean
- (mu) and the standard deviation (sigma > 0) of the
- underlying normal distribution.
-
- The probability density function is:
-
- e^((ln(x)-mu)^2 / -2(sigma^2))
- pdf(x) = ----------------------------
- sigma * x * sqrt(2 * pi)
- """
- __slots__ = ("mu","sigma","_sampler")
- def __init__(self, mu, sigma, sampler=random.lognormvariate):
- assert sigma > 0
- self.mu = mu
- self.sigma = sigma
- self._sampler = sampler
-
- def expectation(self):
- return math.exp(self.mu + ((self.sigma**2)/2.0))
-
- def sample(self):
- return self._sampler(self.mu, self.sigma)
-
-class GammaDistribution(Distribution):
- """
- Gamma distribution.
-
- Conditions on the parameters shape > 0 and scale > 0.
-
- The probability density function is:
-
- x^(shape-1) * e^(-x/scale)
- pdf(x) = ----------------------------
- scale^shape * GammaFn(shape)
- """
- __slots__ = ("shape","scale","_sampler")
- def __init__(self, scale, shape, sampler=random.gammavariate):
- assert scale > 0
- assert shape > 0
- self.shape = shape
- self.scale = scale
- self._sampler = sampler
-
- def expectation(self):
- return self.shape * self.scale
-
- def sample(self):
- return self._sampler(self.shape, self.scale)
-
-class BetaDistribution(Distribution):
- """
- Beta distribution.
-
- Conditions on the parameters alpha > 0 and beta > 0.
-
- The probability density function is:
-
- x^(alpha-1) * (1-x)^(beta-1)
- pdf(x) = -----------------------------
- BetaFn(alpha, beta)
- """
- __slots__ = ("alpha","beta","_sampler")
- def __init__(self, alpha, beta, sampler=random.betavariate):
- assert alpha > 0
- assert alpha > 0
- self.alpha = alpha
- self.beta = beta
- self._sampler = sampler
-
- def expectation(self):
- return self.alpha / float(self.alpha + self.beta)
-
- def sample(self):
- return self._sampler(self.alpha, self.beta)
-
-def _map_variable_stages(model):
-
- variable_stage_annotation = locate_annotations(
- model,
- VariableStageAnnotation,
- max_allowed=1)
- if len(variable_stage_annotation) == 0:
- raise ValueError(
- "Reference model is missing variable stage "
- "annotation: %s" % (VariableStageAnnotation.__name__))
- else:
- assert len(variable_stage_annotation) == 1
- variable_stage_annotation = variable_stage_annotation[0][1]
-
- variable_stage_assignments = ComponentMap(
- variable_stage_annotation.expand_entries())
- if len(variable_stage_assignments) == 0:
- raise ValueError("At least one variable stage assignment "
- "is required.")
-
- min_stagenumber = min(variable_stage_assignments.values(),
- key=lambda x: x[0])[0]
- max_stagenumber = max(variable_stage_assignments.values(),
- key=lambda x: x[0])[0]
- if max_stagenumber > 2:
- for var, (stagenum, derived) in \
- variable_stage_assignments.items():
- if stagenum > 2:
- raise ValueError(
- "Embedded stochastic programs must be two-stage "
- "(for now), but variable with name '%s' has been "
- "annotated with stage number: %s"
- % (var.name, stagenum))
-
- stage_to_variables_map = {}
- stage_to_variables_map[1] = []
- stage_to_variables_map[2] = []
- for var in model.component_data_objects(
- Var,
- active=True,
- descend_into=True,
- sort=SortComponents.alphabetizeComponentAndIndex):
- stagenumber, derived = \
- variable_stage_assignments.get(var, (2, False))
- if (stagenumber != 1) and (stagenumber != 2):
- raise ValueError("Invalid stage annotation for variable with "
- "name '%s'. Stage assignment must be 1 or 2. "
- "Current value: %s"
- % (var.name, stagenumber))
- if (stagenumber == 1):
- stage_to_variables_map[1].append((var, derived))
- else:
- assert stagenumber == 2
- stage_to_variables_map[2].append((var, derived))
-
- variable_to_stage_map = ComponentMap()
- for stagenum, stagevars in stage_to_variables_map.items():
- for var, derived in stagevars:
- variable_to_stage_map[var] = (stagenum, derived)
-
- return (stage_to_variables_map,
- variable_to_stage_map,
- variable_stage_assignments)
-
-def _extract_stochastic_data(model):
- stochastic_data_annotation = locate_annotations(
- model,
- StochasticDataAnnotation,
- max_allowed=1)
- if len(stochastic_data_annotation) == 0:
- raise ValueError(
- "Reference model is missing stochastic data "
- "annotation: %s" % (StochasticDataAnnotation.__name__))
- else:
- assert len(stochastic_data_annotation) == 1
- stochastic_data_annotation = stochastic_data_annotation[0][1]
- stochastic_data = ComponentMap(
- stochastic_data_annotation.expand_entries())
- if len(stochastic_data) == 0:
- raise ValueError("At least one stochastic data "
- "entry is required.")
- for paramdata in stochastic_data:
- assert isinstance(paramdata, _ParamData)
- if paramdata.is_constant():
- raise ValueError(
- "Stochastic data entry with name '%s' is not mutable. "
- "All stochastic data parameters must be initialized "
- "with the mutable keyword set to True."
- % (paramdata.name))
- return stochastic_data
-
-class EmbeddedSP(object):
-
- @staticmethod
- def _collect_mutable_parameters(exp):
- ans = {}
- for param in EXPR.identify_mutable_parameters(exp):
- ans[id(param)] = param
- return ans
-
- @staticmethod
- def _collect_variables(exp):
- ans = {}
- for var in EXPR.identify_variables(exp):
- ans[id(var)] = var
- return ans
-
- def __init__(self, reference_model):
-
- self.reference_model = None
- self.objective = None
- self.time_stages = None
-
- self.stage_to_variables_map = {}
- self.variable_to_stage_map = {}
-
- # the set of stochastic data objects
- # (possibly mapped to some distribution)
- self.stochastic_data = None
-
- # maps between variables and objectives
- self.variable_to_objectives_map = ComponentMap()
- self.objective_to_variables_map = ComponentMap()
-
- # maps between variables and constraints
- self.variable_to_constraints_map = ComponentMap()
- self.constraint_to_variables_map = ComponentMap()
-
- # maps between stochastic data and objectives
- self.stochastic_data_to_objectives_map = ComponentMap()
- self.objective_to_stochastic_data_map = ComponentMap()
-
- # maps between stochastic data and constraints
- self.stochastic_data_to_constraints_map = ComponentMap()
- self.constraint_to_stochastic_data_map = ComponentMap()
-
- # maps between stochastic data and variable lower and upper bounds
- self.stochastic_data_to_variables_lb_map = ComponentMap()
- self.variable_to_stochastic_data_lb_map = ComponentMap()
-
- self.stochastic_data_to_variables_ub_map = ComponentMap()
- self.variable_to_stochastic_data_ub_map = ComponentMap()
-
- self.variable_symbols = ComponentMap()
-
- if not isinstance(reference_model, Block):
- raise TypeError("reference model input must be a Pyomo model")
- self.reference_model = reference_model
-
- #
- # Extract stochastic parameters from the
- # StochasticDataAnnotation object
- #
- self.stochastic_data = \
- _extract_stochastic_data(self.reference_model)
-
- #
- # Get the variable stages from the
- # VariableStageAnnotation object
- #
- (self.stage_to_variables_map,
- self.variable_to_stage_map,
- self._variable_stage_assignments) = \
- _map_variable_stages(self.reference_model)
- self.time_stages = tuple(sorted(self.stage_to_variables_map))
- assert self.time_stages[0] == 1
- self.variable_symbols = ComponentUID.generate_cuid_string_map(
- self.reference_model, ctype=Var,
- repr_version=tree_structure.CUID_repr_version)
- # remove the parent blocks from this map
- keys_to_delete = []
- for var in self.variable_symbols:
- if var.parent_component().ctype is not Var:
- keys_to_delete.append(var)
- for key in keys_to_delete:
- del self.variable_symbols[key]
-
- #
- # Get the stage cost components from the StageCostAnnotation
- # and generate a dummy single-scenario scenario tree
- #
- stage_cost_annotation = locate_annotations(
- self.reference_model,
- StageCostAnnotation,
- max_allowed=1)
- if len(stage_cost_annotation) == 0:
- raise ValueError(
- "Reference model is missing stage cost "
- "annotation: %s" % (StageCostAnnotation.__name__))
- else:
- assert len(stage_cost_annotation) == 1
- stage_cost_annotation = stage_cost_annotation[0][1]
- stage_cost_assignments = ComponentMap(
- stage_cost_annotation.expand_entries())
-
- stage1_cost = None
- stage2_cost = None
- for cdata, stagenum in stage_cost_assignments.items():
- if stagenum == 1:
- stage1_cost = cdata
- elif stagenum == 2:
- stage2_cost = cdata
- if stage1_cost is None:
- raise ValueError("Missing stage cost annotation "
- "for time stage: 1")
- if stage2_cost is None:
- raise ValueError("Missing stage cost annotation "
- "for time stage: 2")
- assert stage1_cost is not stage2_cost
- self._stage1_cost = stage1_cost
- self._stage2_cost = stage2_cost
-
- #
- # Extract the locations of variables and stochastic data
- # within the model
- #
- sto_obj = StochasticObjectiveAnnotation()
- for objcntr, obj in enumerate(
- self.reference_model.component_data_objects(
- Objective,
- active=True,
- descend_into=True), 1):
-
- if objcntr > 1:
- raise ValueError(
- "Reference model can not contain more than one "
- "active objective")
-
- self.objective = obj
- self.objective_sense = obj.sense
-
- obj_params = tuple(
- self._collect_mutable_parameters(obj.expr).values())
- self.objective_to_stochastic_data_map[obj] = []
- for paramdata in obj_params:
- if paramdata in self.stochastic_data:
- self.stochastic_data_to_objectives_map.\
- setdefault(paramdata, []).append(obj)
- self.objective_to_stochastic_data_map[obj].\
- append(paramdata)
- if len(self.objective_to_stochastic_data_map[obj]) == 0:
- del self.objective_to_stochastic_data_map[obj]
- else:
- # TODO: Can we make this declaration sparse
- # by identifying which variables have
- # stochastic coefficients? How to handle
- # non-linear expressions?
- sto_obj.declare(obj)
-
- obj_variables = tuple(
- self._collect_variables(obj.expr).values())
- self.objective_to_variables_map[obj] = []
- for var in obj_variables:
- self.variable_to_objectives_map.\
- setdefault(var, []).append(obj)
- self.objective_to_variables_map[obj].append(var)
- if len(self.objective_to_variables_map[obj]) == 0:
- del self.objective_to_variables_map[obj]
-
- sto_conbounds = StochasticConstraintBoundsAnnotation()
- sto_conbody = StochasticConstraintBodyAnnotation()
- for con in self.reference_model.component_data_objects(
- Constraint,
- active=True,
- descend_into=True):
-
- lower_params = tuple(
- self._collect_mutable_parameters(con.lower).values())
- body_params = tuple(
- self._collect_mutable_parameters(con.body).values())
- upper_params = tuple(
- self._collect_mutable_parameters(con.upper).values())
-
- # TODO: Can we make this declaration sparse
- # by idenfifying which variables have
- # stochastic coefficients? How to handle
- # non-linear expressions? Currently, this
- # code also fails to detect that mutable
- # "constant" expressions might fall out
- # of the body and into the bounds.
- if len(body_params):
- sto_conbody.declare(con)
- if len(body_params) or \
- len(lower_params) or \
- len(upper_params):
- sto_conbounds.declare(con,
- lb=bool(len(lower_params) or len(body_params)),
- ub=bool(len(upper_params) or len(body_params)))
-
- all_stochastic_params = {}
- for param in itertools.chain(lower_params,
- body_params,
- upper_params):
- if param in self.stochastic_data:
- all_stochastic_params[id(param)] = param
-
- if len(all_stochastic_params) > 0:
- self.constraint_to_stochastic_data_map[con] = []
- # no params will appear twice in this iteration
- for param in all_stochastic_params.values():
- self.stochastic_data_to_constraints_map.\
- setdefault(param, []).append(con)
- self.constraint_to_stochastic_data_map[con].\
- append(param)
-
- body_variables = tuple(
- self._collect_variables(con.body).values())
- self.constraint_to_variables_map[con] = []
- for var in body_variables:
- self.variable_to_constraints_map.\
- setdefault(var, []).append(con)
- self.constraint_to_variables_map[con].append(var)
-
- # For now, it is okay to have SOSConstraints in the
- # representation of a problem, but the SOS
- # constraints can't have custom weights that
- # represent stochastic data
- for soscon in self.reference_model.component_data_objects(
- SOSConstraint,
- active=True,
- descend_into=True):
- for var, weight in soscon.get_items():
- weight_params = tuple(
- self._collect_mutable_parameters(weight).values())
- if param in self.stochastic_data:
- raise ValueError(
- "SOSConstraints with stochastic data are currently"
- " not supported in embedded stochastic programs. "
- "The SOSConstraint component '%s' has a weight "
- "term for variable '%s' that references stochastic"
- " parameter '%s'"
- % (soscon.name,
- var.name,
- param.name))
- self.variable_to_constraints_map.\
- setdefault(var, []).append(soscon)
- self.constraint_to_variables_map.\
- setdefault(soscon, []).append(var)
-
- sto_varbounds = StochasticVariableBoundsAnnotation()
- for var in self.reference_model.component_data_objects(
- Var,
- descend_into=True):
-
- lower_params = tuple(
- self._collect_mutable_parameters(var.lb).values())
- upper_params = tuple(
- self._collect_mutable_parameters(var.ub).values())
-
- if (len(lower_params) > 0) or \
- (len(upper_params) > 0):
- sto_varbounds.declare(var,
- lb=bool(len(lower_params) > 0),
- ub=bool(len(upper_params) > 0))
-
- self.variable_to_stochastic_data_lb_map[var] = []
- for param in lower_params:
- if param in self.stochastic_data:
- self.stochastic_data_to_variables_lb_map.\
- setdefault(param, []).append(var)
- self.variable_to_stochastic_data_lb_map[var].\
- append(param)
- if len(self.variable_to_stochastic_data_lb_map[var]) == 0:
- del self.variable_to_stochastic_data_lb_map[var]
-
- self.variable_to_stochastic_data_ub_map[var] = []
- for param in upper_params:
- if param in self.stochastic_data:
- self.stochastic_data_to_variables_ub_map.\
- setdefault(param, []).append(var)
- self.variable_to_stochastic_data_ub_map[var].\
- append(param)
- if len(self.variable_to_stochastic_data_ub_map[var]) == 0:
- del self.variable_to_stochastic_data_ub_map[var]
-
- #
- # Generate the explicit annotations
- #
-
- # first make sure these annotations do not already exist
- if len(locate_annotations(self.reference_model,
- StochasticConstraintBoundsAnnotation)) > 0:
- raise ValueError("Reference model can not contain "
- "a StochasticConstraintBoundsAnnotation declaration.")
- if len(locate_annotations(self.reference_model,
- StochasticConstraintBodyAnnotation)) > 0:
- raise ValueError("Reference model can not contain "
- "a StochasticConstraintBodyAnnotation declaration.")
- if len(locate_annotations(self.reference_model,
- StochasticObjectiveAnnotation)) > 0:
- raise ValueError("Reference model can not contain "
- "a StochasticObjectiveAnnotation declaration.")
-
- # now add any necessary annotations
- if sto_obj.has_declarations:
- assert not hasattr(self.reference_model,
- ".pyspembeddedsp_stochastic_objective_annotation")
- setattr(self.reference_model,
- ".pyspembeddedsp_stochastic_objective_annotation",
- sto_obj)
- if sto_conbody.has_declarations:
- assert not hasattr(self.reference_model,
- ".pyspembeddedsp_stochastic_constraint_body_annotation")
- setattr(self.reference_model,
- ".pyspembeddedsp_stochastic_constraint_body_annotation",
- sto_conbody)
- if sto_conbounds.has_declarations:
- assert not hasattr(self.reference_model,
- ".pyspembeddedsp_stochastic_constraint_bounds_annotation")
- setattr(self.reference_model,
- ".pyspembeddedsp_stochastic_constraint_bounds_annotation",
- sto_conbounds)
- if sto_varbounds.has_declarations:
- assert not hasattr(self.reference_model,
- ".pyspembeddedsp_stochastic_variable_bounds_annotation")
- setattr(self.reference_model,
- ".pyspembeddedsp_stochastic_variable_bounds_annotation",
- sto_varbounds)
-
- # TODO: This is a hack. Cleanup the PySP solver interface
- # to not require a scenario tree
- #stm = self._create_scenario_tree_model(1)
- #self.scenario_tree = ScenarioTree(scenariotreeinstance=stm)
- #self.scenario_tree.linkInInstances({"s1": self.reference_model})
-
- def _create_scenario_tree_model(self, size):
- assert size > 0
- stm = CreateAbstractScenarioTreeModel()
- _stages = ["t1", "t2"]
- _nodes = ["root"]
- _scenarios = []
- for i in xrange(1, size+1):
- _nodes.append('n'+str(i))
- _scenarios.append('s'+str(i))
- stm = stm.create_instance(
- data={None: {"Stages": _stages,
- "Nodes": _nodes,
- "Scenarios": _scenarios}}
- )
- stm.NodeStage['root'] = 't1'
- stm.ConditionalProbability['root'] = 1.0
- weight = 1.0/float(size)
- for i in xrange(1, size+1):
- node_name = 'n'+str(i)
- scen_name = 's'+str(i)
- stm.NodeStage[node_name] = 't2'
- stm.Children['root'].add(node_name)
- stm.Children[node_name].clear()
- stm.ConditionalProbability[node_name] = weight
- stm.ScenarioLeafNode[scen_name] = node_name
-
- stm.StageCost['t1'] = self._stage1_cost.name
- stm.StageCost['t2'] = self._stage2_cost.name
- for var, (stagenum, derived) in \
- self._variable_stage_assignments.items():
- stage_name = 't'+str(stagenum)
- if not derived:
- stm.StageVariables[stage_name].add(var.name)
- else:
- stm.StageDerivedVariables[stage_name].add(var.name)
-
- return stm
-
- @property
- def has_stochastic_objective(self):
- """Returns whether the SP has a stochastic data in the objective."""
- return len(self.objective_to_stochastic_data_map) > 0
-
- @property
- def has_stochastic_constraints(self):
- """Returns whether the SP has stochastic data in the body of any constraints."""
- return len(self.constraint_to_stochastic_data_map) > 0
-
- @property
- def has_stochastic_variable_bounds(self):
- """Returns whether the SP has stochastic data in the bounds of any variables."""
- return (len(self.variable_to_stochastic_data_lb_map) > 0) or \
- (len(self.variable_to_stochastic_data_ub_map) > 0)
-
- def compute_time_stage(self,
- obj,
- derived_last_stage=False):
- """
- Determine the time stage that an object belongs
- in. Object types recognized are variables,
- constraints, expressions, and objectives.
-
- For variables, the time stage is determined by the
- user annotations on the reference model. For
- objectives, constraints, and expressions, the time
- stage is determined by the existance of the
- variables and stochastic data that inside any
- expressions. The time stage is computed as the
- maximum time stage of any variables or stochastic
- data that are encountered. Fixed variables are treated
- as data belonging to the same time stage.
-
- Args:
- obj: The object to classify.
- derived_last_stage (bool): Indicates whether
- derived variables within a time stage should
- be treated as if they belong to the final
- time stage (where non-anticipativity is not
- enforced). When the value is True, derived
- variables will be treated like variables in
- final time stage. The default is False,
- meaning that the derived status of variables
- will not be considered in the computation.
-
- Returns:
- The implied time stage for the object. The first
- time stage starts at 1.
- """
- stage = min(self.time_stages)
- laststage = max(self.time_stages)
- # check if the constraint is associated with stochastic data
- # TODO: We need to add the concept of data stage if we
- # want to deal with the multi-stage case
- if isinstance(obj, _ConstraintData):
- if obj in self.constraint_to_stochastic_data_map:
- stage = laststage
- vars_ = self.constraint_to_variables_map[obj]
- elif isinstance(obj, _ObjectiveData):
- if obj in self.objective_to_stochastic_data_map:
- stage = laststage
- vars_ = self.objective_to_variables_map[obj]
- else:
- vars_ = tuple(self._collect_variables(obj).values())
- # there is no point in executing this check if we
- # already know that the object belongs to the final
- # time stage
- if stage < laststage:
- for var in vars_:
- varstage, derived = self.variable_to_stage_map[var]
- if derived_last_stage and derived:
- stage = laststage
- else:
- stage = max(stage, varstage)
- if stage == laststage:
- # no point in checking anything else
- break
- else: # executed when no break occurs in the for loop
- stage = 1
- return stage
-
- def pyro_sample_sp(self,
- size,
- **kwds):
- assert size > 0
- model = self.reference_model.clone()
-
- scenario_tree_model = \
- self._create_scenario_tree_model(size)
- factory = ScenarioTreeInstanceFactory(
- model=self.reference_model,
- scenario_tree=scenario_tree_model)
- options = \
- ScenarioTreeManagerClientPyro.register_options()
- for key in kwds:
- options[key] = kwds[key]
- manager = ScenarioTreeManagerClientPyro(
- options,
- factory=factory)
- try:
- init = manager.initialize(async_call=True)
- pcuids = ComponentMap()
- for param in self.stochastic_data:
- pcuids[param] = ComponentUID(param)
- init.complete()
- for scenario in manager.scenario_tree.scenarios:
- data = []
- for param, dist in self.stochastic_data.items():
- data.append((pcuids[param], dist.sample()))
- manager.invoke_function(
- "_update_data",
- thisfile,
- invocation_type=InvocationType.OnScenario(scenario.name),
- function_args=(data,),
- oneway_call=True)
- manager.reference_model = model
- except:
- manager.close()
- raise
- return manager
-
- def generate_sample_sp(self, size, **kwds):
- assert size > 0
- def model_callback(scenario_name, node_list):
- m = self.sample(return_copy=True)
- return m
- scenario_tree_model = self._create_scenario_tree_model(size)
- factory = ScenarioTreeInstanceFactory(
- model=model_callback,
- scenario_tree=scenario_tree_model)
- options = \
- ScenarioTreeManagerClientSerial.register_options()
- for key in kwds:
- options[key] = kwds[key]
- manager = ScenarioTreeManagerClientSerial(options,
- factory=factory)
- manager.initialize()
- manager.reference_model = self.reference_model.clone()
- return manager
-
- def sample(self, return_copy=False):
- for param, dist in self.stochastic_data.items():
- param.value = dist.sample()
- if return_copy:
- return self.reference_model.clone()
-
- def set_expected_value(self, return_copy=False):
- for param, dist in self.stochastic_data.items():
- param.value = dist.expectation()
- if return_copy:
- return self.reference_model.clone()
diff --git a/pyomo/pysp/evaluate_xhat.py b/pyomo/pysp/evaluate_xhat.py
deleted file mode 100644
index f479833e31e..00000000000
--- a/pyomo/pysp/evaluate_xhat.py
+++ /dev/null
@@ -1,304 +0,0 @@
-# ___________________________________________________________________________
-#
-# Pyomo: Python Optimization Modeling Objects
-# Copyright 2017 National Technology and Engineering Solutions of Sandia, LLC
-# Under the terms of Contract DE-NA0003525 with National Technology and
-# Engineering Solutions of Sandia, LLC, the U.S. Government retains certain
-# rights in this software.
-# This software is distributed under the 3-clause BSD License.
-# ___________________________________________________________________________
-
-import time
-import copy
-
-from pyomo.common import pyomo_command
-from pyomo.common.dependencies import yaml
-from pyomo.pysp.util.config import (PySPConfigValue,
- PySPConfigBlock,
- safe_register_common_option,
- safe_register_unique_option,
- _extension_options_group_title,
- _domain_must_be_str)
-from pyomo.pysp.util.misc import (parse_command_line,
- launch_command,
- sort_extensions_by_precedence)
-from pyomo.pysp.scenariotree.manager import \
- ScenarioTreeManagerFactory
-from pyomo.pysp.scenariotree.manager_solver import \
- ScenarioTreeManagerSolverFactory
-from pyomo.pysp.solutionioextensions import \
- (IPySPSolutionSaverExtension,
- IPySPSolutionLoaderExtension)
-
-#
-# Fix all non-anticiptative variables to their current solution,
-# solve, free all variables that weren't already fixed, and
-# return the extensive form objective value
-#
-def evaluate_current_node_solution(sp, sp_solver, **solve_kwds):
-
- scenario_tree = sp.scenario_tree
-
- # Save the current fixed state and fix queue, then clear the fix queue
- fixed = {}
- fix_queue = {}
- for tree_node in scenario_tree.nodes:
- fixed[tree_node.name] = copy.deepcopy(tree_node._fixed)
- fix_queue[tree_node.name] = copy.deepcopy(tree_node._fix_queue)
- tree_node.clear_fix_queue()
-
- # Fix all non-anticipative variables to their
- # current value in the node solution
- for stage in scenario_tree.stages[:-1]:
- for tree_node in stage.nodes:
- for variable_id in tree_node._standard_variable_ids:
- if variable_id in tree_node._solution:
- tree_node.fix_variable(variable_id,
- tree_node._solution[variable_id])
- else:
- from pyomo.pysp.phutils import indexToString
- name, index = tree_node._variable_ids[variable_id]
- raise ValueError(
- "Scenario tree variable with name %s (scenario_tree_id=%s) "
- "does not have a solution stored on scenario tree node %s. "
- "Unable to evaluate solution." % (name+indexToString(index),
- variable_id,
- tree_node.name))
-
- # Push fixed variable statuses on instances (or
- # transmit to the phsolverservers)
- sp.push_fix_queue_to_instances()
-
- failures = sp_solver.solve_subproblems(**solve_kwds)
-
- # Free all non-anticipative variables
- for stage in scenario_tree._stages[:-1]:
- for tree_node in stage.nodes:
- for variable_id in tree_node._standard_variable_ids:
- tree_node.free_variable(variable_id)
-
- # Refix all previously fixed variables
- for tree_node in scenario_tree.nodes:
- node_fixed = fixed[tree_node.name]
- for variable_id in node_fixed:
- tree_node.fix_variable(variable_id, node_fixed[variable_id])
-
- sp.push_fix_queue_to_instances()
-
- # Restore the fix_queue
- for tree_node in scenario_tree.nodes:
- tree_node._fix_queue.update(fix_queue[tree_node.name])
-
- return failures
-
-def run_evaluate_xhat_register_options(options=None):
- if options is None:
- options = PySPConfigBlock()
- safe_register_common_option(options,
- "disable_gc")
- safe_register_common_option(options,
- "profile")
- safe_register_common_option(options,
- "traceback")
- safe_register_common_option(options,
- "scenario_tree_manager")
- safe_register_common_option(options,
- "output_scenario_tree_solution")
- safe_register_common_option(options,
- "solution_saver_extension")
- safe_register_common_option(options,
- "solution_loader_extension")
- safe_register_unique_option(
- options,
- "disable_solution_loader_check",
- PySPConfigValue(
- False,
- domain=bool,
- description=(
- "Indicates that no solution loader extension is required to "
- "run this script, e.g., because the scenario tree manager "
- "is somehow pre-populated with a solution."
- ),
- doc=None,
- visibility=0),
- ap_group=_extension_options_group_title)
- safe_register_unique_option(
- options,
- "output_scenario_costs",
- PySPConfigValue(
- None,
- domain=_domain_must_be_str,
- description=(
- "A file name where individual scenario costs from the solution "
- "will be stored. The format is determined from the extension used "
- "in the filename. Recognized extensions: [.csv, .json, .yaml]"
- ),
- doc=None,
- visibility=0))
- ScenarioTreeManagerFactory.register_options(options)
- ScenarioTreeManagerSolverFactory.register_options(options,
- options_prefix="subproblem_")
-
- return options
-
-#
-# Convert a PySP scenario tree formulation to SMPS input files
-#
-
-def run_evaluate_xhat(options,
- solution_loaders=(),
- solution_savers=()):
-
- start_time = time.time()
- import pyomo.environ
- solution_loaders = sort_extensions_by_precedence(solution_loaders)
- solution_savers = sort_extensions_by_precedence(solution_savers)
-
- with ScenarioTreeManagerFactory(options) as sp:
- sp.initialize()
-
- loaded = False
- for plugin in solution_loaders:
- ret = plugin.load(sp)
- if not ret:
- print("WARNING: Loader extension %s call did not return True. "
- "This might indicate failure to load data." % (plugin))
- else:
- loaded = True
-
- if (not loaded) and (not options.disable_solution_loader_check):
- raise RuntimeError(
- "Either no solution loader extensions were provided or "
- "all solution loader extensions reported a bad return value. "
- "To disable this check use the disable_solution_loader_check "
- "option flag.")
-
- with ScenarioTreeManagerSolverFactory(sp, options, options_prefix="subproblem_") as sp_solver:
- evaluate_current_node_solution(sp, sp_solver)
-
- objective = sum(scenario.probability * \
- scenario.get_current_objective()
- for scenario in sp.scenario_tree.scenarios)
- sp.scenario_tree.snapshotSolutionFromScenarios()
-
- print("")
- print("***********************************************"
- "************************************************")
- print(">>>THE EXPECTED SUM OF THE STAGE COST VARIABLES="
- +str(sp.scenario_tree.findRootNode().\
- computeExpectedNodeCost())+"<<<")
- print("***********************************************"
- "************************************************")
-
- # handle output of solution from the scenario tree.
- print("")
- print("Extensive form solution:")
- sp.scenario_tree.pprintSolution()
- print("")
- print("Extensive form costs:")
- sp.scenario_tree.pprintCosts()
-
- if options.output_scenario_tree_solution:
- print("Final solution (scenario tree format):")
- sp.scenario_tree.pprintSolution()
-
- if options.output_scenario_costs is not None:
- if options.output_scenario_costs.endswith('.json'):
- import json
- result = {}
- for scenario in sp.scenario_tree.scenarios:
- result[str(scenario.name)] = scenario._cost
- with open(options.output_scenario_costs, 'w') as f:
- json.dump(result, f, indent=2, sort_keys=True)
- elif options.output_scenario_costs.endswith('.yaml'):
- result = {}
- for scenario in sp.scenario_tree.scenarios:
- result[str(scenario.name)] = scenario._cost
- with open(options.output_scenario_costs, 'w') as f:
- yaml.dump(result, f)
- else:
- if not options.output_scenario_costs.endswith('.csv'):
- print("Unrecognized file extension. Using CSV format "
- "to store scenario costs")
- with open(options.output_scenario_costs, 'w') as f:
- for scenario in sp.scenario_tree.scenarios:
- f.write("%s,%r\n" % (scenario.name, scenario._cost))
-
- for plugin in solution_savers:
- if not plugin.save(sp):
- print("WARNING: Saver extension %s call did not return True. "
- "This might indicate failure to save data." % (plugin))
-
- print("")
- print("Total execution time=%.2f seconds"
- % (time.time() - start_time))
-
- return 0
-
-#
-# the main driver routine for the evaluate_xhat script.
-#
-
-def main(args=None):
- #
- # Top-level command that executes everything
- #
-
- #
- # Import plugins
- #
- import pyomo.environ
-
- #
- # Parse command-line options.
- #
- try:
- options, extensions = parse_command_line(
- args,
- run_evaluate_xhat_register_options,
- with_extensions={'solution_loader_extension':
- IPySPSolutionLoaderExtension,
- 'solution_saver_extension':
- IPySPSolutionSaverExtension},
- prog='evaluate_xhat',
- description=(
-"""Evaluate a non-anticipative solution over the given
-scenario tree. A solution is provided by specifying one or
-more plugins implementing the IPySPSolutionLoaderExtension. E.g.,
-
-evaluate_xhat -m ReferenceModel.py -s ScenarioStructure.dat \\
- --solution-loader-extension=pyomo.pysp.plugins.jsonio \\
- --jsonloader-input-name xhat.json
-
-To include plugin specific options in the list of options
-output after this message, declare them on the command-line
-before the --help flag. E.g.,
-
-evaluate_xhat --solution-loader-extension=pyomo.pysp.plugins.jsonio \\
- --help
-
-This script will fix all non-derived, non-leaf stage
-variables to their values specified in the loaded
-solution. All other values are from the solution are
-ignored."""
- ))
-
- except SystemExit as _exc:
- # the parser throws a system exit if "-h" is specified
- # - catch it to exit gracefully.
- return _exc.code
-
- return launch_command(run_evaluate_xhat,
- options,
- cmd_kwds={'solution_loaders':
- extensions['solution_loader_extension'],
- 'solution_savers':
- extensions['solution_saver_extension']},
- error_label="evaluate_xhat: ",
- disable_gc=options.disable_gc,
- profile_count=options.profile,
- traceback=options.traceback)
-
-@pyomo_command('evaluate_xhat', 'Evaluate a non-anticipative solution on a scenario tree.')
-def EvaluateXhat_main(args=None):
- return main(args=args)
diff --git a/pyomo/pysp/generators.py b/pyomo/pysp/generators.py
deleted file mode 100644
index cdacf39ad6c..00000000000
--- a/pyomo/pysp/generators.py
+++ /dev/null
@@ -1,148 +0,0 @@
-# ___________________________________________________________________________
-#
-# Pyomo: Python Optimization Modeling Objects
-# Copyright 2017 National Technology and Engineering Solutions of Sandia, LLC
-# Under the terms of Contract DE-NA0003525 with National Technology and
-# Engineering Solutions of Sandia, LLC, the U.S. Government retains certain
-# rights in this software.
-# This software is distributed under the 3-clause BSD License.
-# ___________________________________________________________________________
-
-from six import iteritems
-
-# the intent of this file is to provide a collection of generator
-# (iterables) functions, which embody certain highly repeated patterns
-# of nested iteration in PySP. these generators should allow for
-# simplification of the code base, and should generally improve
-# maintainability.
-
-# iterates over each stage (minus possibly the last, depending on the
-# keyword arguments), each tree node in each stage, each variable in
-# each tree node, and each component of each variable. returns a
-# six-tuple, including:
-# - the stage
-# - the tree node
-# - the variable name
-# - the index of the variable
-# - a sequence of (_VarData, probability) pairs for each scenario
-# instance at this node.
-# - a boolean indicating whether the variable/index is fixed in all
-# scenario instance.
-# NOTE: We don't actually check for agreement, but we should.
-# - a boolean indicating whether the variable/index is stale in all
-# scenario instances.
-
-def scenario_tree_node_variables_generator(scenario_tree,
- includeDerivedVariables=True,
- includeLastStage=True,
- sort=False):
-
- if includeLastStage is False:
- stages_to_iterate = scenario_tree._stages[:-1]
- else:
- stages_to_iterate = scenario_tree._stages
-
- for stage in stages_to_iterate:
-
- tree_nodes = stage._tree_nodes
- if sort:
- tree_nodes = sorted(tree_nodes, key=lambda n: n.name)
-
- for tree_node in tree_nodes:
-
- variter = iteritems(tree_node._variable_datas)
- if sort:
- variter = sorted(variter, key=lambda x: x[0])
-
- for variable_id, variable_datas in variter:
-
- if (not includeDerivedVariables) and \
- (variable_id in tree_node._derived_variable_ids):
- continue
-
- # implicit assumption is that if a variable value is
- # fixed / stale in one scenario, it is fixed / stale
- # in all scenarios
- is_stale = False
- is_fixed = False
-
- instance_fixed_count = 0
-
- assert len(variable_datas)
- for var_data, scenario_probability in variable_datas:
- if var_data.stale is True:
- is_stale = True
- if var_data.fixed is True:
- instance_fixed_count += 1
- is_fixed = True
-
- assert is_fixed == tree_node.is_variable_fixed(variable_id)
- if ((instance_fixed_count > 0) and \
- (instance_fixed_count < len(tree_node._scenarios))):
- variable_name, index = tree_node._variable_ids[variable_id]
- raise RuntimeError("Variable="+variable_name+str(index)+" is "
- "fixed in "+str(instance_fixed_count)+" "
- "scenarios, which is less than the number "
- "of scenarios at tree node="+tree_node._name)
-
- yield (stage,
- tree_node,
- variable_id,
- variable_datas,
- is_fixed,
- is_stale)
-
-def scenario_tree_node_variables_generator_noinstances(scenario_tree,
- includeDerivedVariables=True,
- includeLastStage=True,
- sort=False):
-
- if includeLastStage is False:
- stages_to_iterate = scenario_tree._stages[:-1]
- else:
- stages_to_iterate = scenario_tree._stages
-
- for stage in stages_to_iterate:
-
- tree_nodes = stage._tree_nodes
- if sort:
- tree_nodes = sorted(tree_nodes, key=lambda n: n.name)
-
- for tree_node in tree_nodes:
-
- variter = tree_node._variable_ids
- if sort:
- variter = sorted(variter)
-
- for variable_id in variter:
-
- if (not includeDerivedVariables) and \
- (variable_id in tree_node._derived_variable_ids):
- continue
-
- variable_values = []
- is_fixed = tree_node.is_variable_fixed(variable_id)
- is_stale = False
- instance_fixed_count = 0
- for scenario in tree_node._scenarios:
- if scenario.is_variable_stale(tree_node, variable_id):
- is_stale = True
- if scenario.is_variable_fixed(tree_node, variable_id):
- instance_fixed_count += 1
- variable_values.append((scenario._x[tree_node._name][variable_id],
- scenario._probability))
-
- if ((instance_fixed_count > 0) and \
- (instance_fixed_count < len(tree_node._scenarios))):
- variable_name, index = tree_node._variable_ids[variable_id]
- raise RuntimeError("Variable="+variable_name+str(index)+" is "
- "fixed in "+str(instance_fixed_count)+" "
- "scenarios, which is less than the number "
- "of scenarios at tree node="+tree_node._name)
-
- yield (stage,
- tree_node,
- variable_id,
- variable_values,
- is_fixed,
- is_stale)
diff --git a/pyomo/pysp/lagrangeMorePR.py b/pyomo/pysp/lagrangeMorePR.py
deleted file mode 100755
index 3bae61f4877..00000000000
--- a/pyomo/pysp/lagrangeMorePR.py
+++ /dev/null
@@ -1,649 +0,0 @@
-#! /usr/bin/env python
-# ___________________________________________________________________________
-#
-# Pyomo: Python Optimization Modeling Objects
-# Copyright 2017 National Technology and Engineering Solutions of Sandia, LLC
-# Under the terms of Contract DE-NA0003525 with National Technology and
-# Engineering Solutions of Sandia, LLC, the U.S. Government retains certain
-# rights in this software.
-# This software is distributed under the 3-clause BSD License.
-# ___________________________________________________________________________
-
-#
-# This reads PRoptimal.csv, which contains the sequence of PR points that defines the optimal response function, F^*
-# Then, it computes more PR points and appends to PRmore.csv
-#
-
-import sys
-import time
-import datetime
-import operator
-import copy
-
-from pyomo.opt import SolverManagerFactory
-
-from pyomo.pysp.scenariotree.instance_factory import \
- ScenarioTreeInstanceFactory
-from pyomo.pysp.phinit import (construct_ph_options_parser,
- GenerateScenarioTreeForPH,
- PHFromScratch)
-from pyomo.pysp.phutils import find_active_objective
-from pyomo.pysp import lagrangeutils as lagrUtil
-
-def datetime_string():
- return "datetime = "+str(datetime.datetime.now())
-
-###################################
-def run(args=None):
-###################################
-
- # to import plugins
- import pyomo.environ
- import pyomo.solvers.plugins.smanager.phpyro
-
- def LagrangeMorePR(args=None):
- print("lagrangeMorePR begins %s" % datetime_string())
- blanks = " " # used for formatting print statements
- class Object(object): pass
- Result = Object()
-
-# options used
- betaTol = options.beta_tol # tolerance used to separate b-values
- IndVarName = options.indicator_var_name
- multName = options.lambda_parm_name
- CCStageNum = options.stage_num
- MaxMorePR = options.max_number # max PR points to be generated (above F^* with all delta fixed)
- MaxTime = options.max_time # max time before terminate
- csvPrefix = options.csvPrefix # input filename prefix (eg, case name)
- probFileName = options.probFileName # name of file containing probabilities
-##HG override
-# options.verbosity = 2
- verbosity = options.verbosity
-
- Result.status = 'starting '+datetime_string()
- STARTTIME = time.time()
-
- ph = PHFromScratch(options)
- rootnode = ph._scenario_tree._stages[0]._tree_nodes[0] # use rootnode to loop over scenarios
-
- if find_active_objective(ph._scenario_tree._scenarios[0]._instance,safety_checks=True).is_minimizing():
- print("We are solving a MINIMIZATION problem.")
- else:
- print("We are solving a MAXIMIZATION problem.")
-
-# initialize
- ScenarioList = []
- with open(csvPrefix+"ScenarioList.csv",'r') as inputFile:
- for line in inputFile.readlines():
- L = line.split(',')
- ScenarioList.append([L[0],float(L[1])])
-
- addstatus = str(len(ScenarioList))+' scenarios read from file: ' + csvPrefix+'ScenarioList.csv'
- if verbosity > 0: print(addstatus)
- Result.status = Result.status + '\n' + addstatus
-
- PRoptimal = []
- with open(csvPrefix+"PRoptimal.csv",'r') as inputFile:
- for line in inputFile.readlines():
- bzS = line.split(',')
- PRoptimal.append( [None, float(bzS[0]), float(bzS[1])] )
-
- addstatus = str(len(PRoptimal))+' PR points read from file: '+ csvPrefix+'PRoptimal.csv (envelope function)'
- if verbosity > 0:
- print(addstatus)
- Result.status = Result.status + '\n' + addstatus
-# ensure PR points on envelope function are sorted by probability
- PRoptimal.sort(key=operator.itemgetter(1))
-
- PRoptimal[0][0] = 0 # initial lambda (for b=0)
- for p in range(1,len(PRoptimal)):
- dz = PRoptimal[p][2] - PRoptimal[p-1][2]
- db = PRoptimal[p][1] - PRoptimal[p-1][1]
- PRoptimal[p][0] = dz/db
- if verbosity > 0:
- PrintPRpoints(PRoptimal)
- Result.PRoptimal = PRoptimal
-
- lambdaval = 0.
- lagrUtil.Set_ParmValue(ph, options.lambda_parm_name,lambdaval)
-
- # IMPORTANT: Preprocess the scenario instances
- # before fixing variables, otherwise they
- # will be preprocessed out of the expressions
- # and the output_fixed_variable_bounds option
- # will have no effect when we update the
- # fixed variable values (and then assume we
- # do not need to preprocess again because
- # of this option).
- ph._preprocess_scenario_instances()
-
-## read scenarios to select for each PR point on envelope function
- with open(csvPrefix+"OptimalSelections.csv",'r') as inputFile:
- OptimalSelections = []
- for line in inputFile.readlines():
- if len(line) == 0: break # eof
- selections = line.split(',')
- L = len(selections)
- Ls = len(selections[L-1])
- selections[L-1] = selections[L-1][0:Ls-1]
- if verbosity > 1:
- print(str(selections))
- OptimalSelections.append(selections)
-
- Result.OptimalSelections = OptimalSelections
-
- addstatus = str(len(OptimalSelections)) + ' Optimal selections read from file: ' \
- + csvPrefix + 'OptimalSelections.csv'
- Result.status = Result.status + '\n' + addstatus
-
- if len(OptimalSelections) == len(PRoptimal):
- if verbosity > 0:
- print(addstatus)
- else:
- addstatus = addstatus + '\n** Number of selections not equal to number of PR points'
- print(addstatus)
- Result.status = Result.status + '\n' + addstatus
- print(str(OptimalSelections))
- print((PRoptimal))
- return Result
-
-#####################################################################################
-
-# get probabilities
- if probFileName is None:
-# ...generate from widest gap regions
- PRlist = FindPRpoints(options, PRoptimal)
- else:
-# ...read probabilities
- probList = []
- with open(probFileName,'r') as inputFile:
- if verbosity > 0:
- print("reading from probList = "+probFileName)
- for line in inputFile.readlines(): # 1 probability per line
- if len(line) == 0:
- break
- prob = float(line)
- probList.append(prob)
-
- if verbosity > 0:
- print("\t "+str(len(probList))+" probabilities")
- if verbosity > 1:
- print(str(probList))
- PRlist = GetPoints(options, PRoptimal, probList)
- if verbosity > 1:
- print("PRlist:")
- for interval in PRlist:
- print(str(interval))
-
-# We now have PRlist = [[i, b], ...], where b is in PRoptimal interval (i-1,i)
- addstatus = str(len(PRlist)) + ' probabilities'
- if verbosity > 0:
- print(addstatus)
- Result.status = Result.status + '\n' + addstatus
-
-#####################################################################################
-
- lapsedTime = time.time() - STARTTIME
- addstatus = 'Initialize complete...lapsed time = ' + str(lapsedTime)
- if verbosity > 1:
- print(addstatus)
- Result.status = Result.status + '\n' + addstatus
-
-#####################################################################################
-
- if verbosity > 1:
- print("\nlooping over Intervals to generate PR points by flipping heuristic")
- Result.morePR = []
- for interval in PRlist:
- lapsedTime = time.time() - STARTTIME
- if lapsedTime > MaxTime:
- addstatus = '** lapsed time = ' + str(lapsedTime) + ' > max time = ' + str(MaxTime)
- if verbosity > 0: print(addstatus)
- Result.status = Result.status + '\n' + addstatus
- break
-
- i = interval[0] # = PR point index
- b = interval[1] # = target probability to reach by flipping from upper endpoint
- bU = PRoptimal[i][1] # = upper endpoint
- bL = PRoptimal[i-1][1] # = lower endpoint
- if verbosity > 1:
- print( "target probability = "+str(b)+" < bU = PRoptimal[" + str(i) + "][1]" \
- " and > bL = PRoptimal["+str(i-1)+"][1]")
- if b < bL or b > bU:
- addstatus = '** probability = '+str(b) + ', not in gap interval: (' \
- + str(bL) + ', ' + str(bU) + ')'
- print(addstatus)
- print(str(PRoptimal))
- print(str(PRlist))
- Result.status = Result.status + '\n' + addstatus
- return Result
-
- if verbosity > 1:
- print( "i = "+str(i)+" : Starting with bU = "+str(bU)+" having "+ \
- str(len(OptimalSelections[i]))+ " selections:")
- print(str(OptimalSelections[i]))
-
-# first fix all scenarios = 0
- for sname, sprob in ScenarioList:
- scenario = ph._scenario_tree.get_scenario(sname)
- lagrUtil.FixIndicatorVariableOneScenario(ph,
- scenario,
- IndVarName,
- 0)
-
-# now fix optimal selections = 1
- for sname in OptimalSelections[i]:
- scenario = ph._scenario_tree.get_scenario(sname)
- lagrUtil.FixIndicatorVariableOneScenario(ph,
- scenario,
- IndVarName,
- 1)
-
-# flip scenario selections from bU until we reach b (target probability)
- bNew = bU
- for sname, sprob in ScenarioList:
- scenario = ph._scenario_tree.get_scenario(sname)
- if bNew - sprob < b:
- continue
- instance = ph._instances[sname]
- if getattr(instance, IndVarName).value == 0:
- continue
- bNew = bNew - sprob
- # flipped scenario selection
- lagrUtil.FixIndicatorVariableOneScenario(ph,
- scenario,
- IndVarName,
- 0)
- if verbosity > 1:
- print("\tflipped "+sname+" with prob = "+str(sprob)+" ...bNew = "+str(bNew))
-
- if verbosity > 1:
- print("\tflipped selections reach "+str(bNew)+" >= target = "+str(b)+" (bL = "+str(bL)+")")
- if bNew <= bL + betaTol or bNew >= bU - betaTol:
- if verbosity > 0:
- print("\tNot generating PR point...flipping from bU failed")
- continue # to next interval in list
-
- # ready to solve to get cost for fixed scenario selections associated with probability = bNew
-
- if verbosity > 1:
-# check that scenarios are fixed as they should be
- totalprob = 0.
- for scenario in ScenarioList:
- sname = scenario[0]
- sprob = scenario[1]
- instance = ph._instances[sname]
- print("fix "+sname+" = "+str(getattr(instance,IndVarName).value)+\
- " is "+str(getattr(instance,IndVarName).fixed)+" probability = "+str(sprob))
- if getattr(instance,IndVarName).value == 1:
- totalprob = totalprob + sprob
- lambdaval = getattr(instance, multName).value
- print("\ttotal probability = %f" % totalprob)
-
-# solve (all delta fixed); lambda=0, so z = Lagrangian
- if verbosity > 0:
- print("solve begins %s" % datetime_string())
- print("\t- lambda = %f" % lambdaval)
- SolStat, z = lagrUtil.solve_ph_code(ph, options)
- b = Compute_ExpectationforVariable(ph, IndVarName, CCStageNum)
- if verbosity > 0:
- print("solve ends %s" % datetime_string())
- print("\t- SolStat = %s" % str(SolStat))
- print("\t- b = %s" % str(b))
- print("\t- z = %s" % str(z))
- print("(adding to more PR points)")
-
- Result.morePR.append([None,b,z])
- if verbosity > 1:
- PrintPRpoints(Result.morePR)
- ######################################################
- # end loop over target probabilities
-
- with open(csvPrefix+"PRmore.csv",'w') as outFile:
- for point in Result.morePR:
- outFile.write(str(point[1])+','+str(point[2]))
-
- addstatus = str(len(Result.morePR)) + ' PR points written to file: '+ csvPrefix + 'PRmore.csv'
- if verbosity > 0: print(addstatus)
- Result.status = Result.status + '\n' + addstatus
- addstatus = 'lapsed time = ' + putcommas(time.time() - STARTTIME)
- if verbosity > 0: print(addstatus)
- Result.status = Result.status + '\n' + addstatus
-
- return Result
-################################
-# LagrangeMorePR ends here
-################################
-
-#### start run ####
-
- AllInOne = False
-# VERYSTARTTIME=time.time()
-# print "##############VERYSTARTTIME:",str(VERYSTARTTIME-VERYSTARTTIME)
-
-##########################
-# options defined here
-##########################
- try:
- conf_options_parser = construct_ph_options_parser("lagrange [options]")
- conf_options_parser.add_argument("--beta-min",
- help="The min beta level for the chance constraint. Default is None",
- action="store",
- dest="beta_min",
- type=float,
- default=None)
- conf_options_parser.add_argument("--beta-max",
- help="The beta level for the chance constraint. Default is None",
- action="store",
- dest="beta_max",
- type=float,
- default=None)
- conf_options_parser.add_argument("--min-prob",
- help="Tolerance for testing probability > 0. Default is 1e-5",
- action="store",
- dest="min_prob",
- type=float,
- default=1e-5)
- conf_options_parser.add_argument("--beta-tol",
- help="Tolerance for testing equality to beta. Default is 10^-2",
- action="store",
- dest="beta_tol",
- type=float,
- default=1e-2)
- conf_options_parser.add_argument("--Lagrange-gap",
- help="The (relative) Lagrangian gap acceptable for the chance constraint. Default is 10^-4.",
- action="store",
- type=float,
- dest="Lagrange_gap",
- default=0.0001)
- conf_options_parser.add_argument("--max-number",
- help="The max number of PR points. Default = 10.",
- action="store",
- dest="max_number",
- type=int,
- default=10)
- conf_options_parser.add_argument("--max-time",
- help="Maximum time (seconds). Default is 3600.",
- action="store",
- dest="max_time",
- type=float,
- default=3600)
- conf_options_parser.add_argument("--csvPrefix",
- help="Input file name prefix. Default is ''",
- action="store",
- dest="csvPrefix",
- type=str,
- default="")
- conf_options_parser.add_argument("--lambda-parm-name",
- help="The name of the lambda parameter in the model. Default is lambdaMult",
- action="store",
- dest="lambda_parm_name",
- type=str,
- default="lambdaMult")
- conf_options_parser.add_argument("--indicator-var-name",
- help="The name of the indicator variable for the chance constraint. The default is delta",
- action="store",
- dest="indicator_var_name",
- type=str,
- default="delta")
- conf_options_parser.add_argument("--stage-num",
- help="The stage number of the CC indicator variable (number, not name). Default is 2",
- action="store",
- dest="stage_num",
- type=int,
- default=2)
- conf_options_parser.add_argument("--verbosity",
- help="verbosity=0 is no extra output, =1 is medium, =2 is debug, =3 super-debug. Default is 1.",
- action="store",
- dest="verbosity",
- type=int,
- default=1)
- conf_options_parser.add_argument("--prob-file",
- help="file name specifiying probabilities",
- action="store",
- dest="probFileName",
- type=str,
- default=None)
-# The following needed for solve_ph_code in lagrangeutils
- conf_options_parser.add_argument("--solve-with-ph",
- help="Perform solves via PH rather than an EF solve. Default is False",
- action="store_true",
- dest="solve_with_ph",
- default=False)
-
-################################################################
-
- options = conf_options_parser.parse_args(args=args)
- # temporary hack
- options._ef_options = conf_options_parser._ef_options
- options._ef_options.import_argparse(options)
- except SystemExit as _exc:
- # the parser throws a system exit if "-h" is specified - catch
- # it to exit gracefully.
- return _exc.code
-
- if options.verbose is True:
- print("Loading reference model and scenario tree")
-
- scenario_instance_factory = \
- ScenarioTreeInstanceFactory(options.model_directory,
- options.instance_directory)
-
- full_scenario_tree = \
- GenerateScenarioTreeForPH(options,
- scenario_instance_factory)
-
- solver_manager = SolverManagerFactory(options.solver_manager_type)
- if solver_manager is None:
- raise ValueError("Failed to create solver manager of "
- "type="+options.solver_manager_type+
- " specified in call to PH constructor")
- if isinstance(solver_manager,
- pyomo.solvers.plugins.smanager.phpyro.SolverManager_PHPyro):
- raise ValueError("PHPyro can not be used as the solver manager")
-
- try:
-
- if (scenario_instance_factory is None) or (full_scenario_tree is None):
- raise RuntimeError("***ERROR: Failed to initialize the model and/or scenario tree data.")
-
- # load_model gets called again, so lets make sure unarchived directories are used
- options.model_directory = scenario_instance_factory._model_filename
- options.instance_directory = scenario_instance_factory._scenario_tree_filename
-
- scenario_count = len(full_scenario_tree._stages[-1]._tree_nodes)
-
- # create ph objects for finding the solution. we do this even if
- # we're solving the extensive form
-
- if options.verbose is True:
- print("Loading scenario instances and initializing scenario tree for full problem.")
-
-########## Here is where multiplier search is called ############
- Result = LagrangeMorePR()
-#####################################################################################
- finally:
- # delete temporary unarchived directories
- scenario_instance_factory.close()
-
- print("\n==================== returned from LagrangeMorePR")
- print(str(Result.status))
- try:
- print("Envelope:")
- print(str(PrintPRpoints(Result.PRoptimal)))
- print("\nAdded:")
- PrintPRpoints(Result.morePR)
- except:
- print("from run: PrintPRpoints failed")
- sys.exit()
-
-# combine tables and sort by probability
- if len(Result.morePR) > 0:
- PRpoints = copy.deepcopy(Result.PRoptimal)
- for lbz in Result.morePR: PRpoints.append(lbz)
- print("Combined table of PR points (sorted):")
- PRpoints.sort(key=operator.itemgetter(1))
- print(str(PrintPRpoints(PRpoints)))
-
-########################## functions defined here #############################
-
-def FindPRpoints(options, PRoptimal):
-# Find more PR points (above F^*)
- if options.verbosity > 1:
- print("entered FindPRpoints seeking %d points" % options.max_number)
- Intervals = []
-
-# Find intervals, each with width > 2beta_tol, such that cdf[i] is near its midpoint for some i
- if options.verbosity > 1:
- print("Collecting intervals having width > %f" % 2*options.beta_tol)
- for i in range(1,len(PRoptimal)):
- width = PRoptimal[i][1] - PRoptimal[i-1][1]
- if width <= 2*options.beta_tol: continue
- midpoint = (PRoptimal[i][1] + PRoptimal[i-1][1]) / 2.
- Intervals.append( [i, width, midpoint] )
- if options.verbosity > 1:
- print("Interval: %d width = %f midpoint = %f" % (i, width, midpoint))
- Intervals.sort(key=operator.itemgetter(1),reverse=True) # sorts from max to min width
-
- if options.verbosity > 1:
- print("%d Intervals:" % len(Intervals))
- for interval in Intervals: print("\t %s" % str(interval))
-
- while len(Intervals) < options.max_number:
-# split widest interval to have another PR point
- interval = Intervals[0]
- width = interval[1] # = width of interval
- if width < 2*options.beta_tol:
- status = 'greatest width = ' + str(width) + ' < 2*beta_tol = ' + str(2*options.beta_tol)
- print(status)
- if options.verbosity > 1: print("\t** break out of while")
- break
- i = interval[0] # = index of point in envelope function
- midpoint = interval[2]
-
- if options.verbosity > 1: print("splitting interval: %s" % str(interval))
- Intervals[0][1] = width/2. # reduce width
- Intervals[0][2] = midpoint-width/4. # new midpoint of left
- Intervals = Insert([i, width/2., midpoint+width/4.], 1, Intervals) # insert at top arbitrary choice
-# new midpoint of right
- Intervals.sort(key=operator.itemgetter(1),reverse=True) # because we re-sort
- if options.verbosity > 1:
- print("Number of intervals = %d" % len(Intervals))
- if options.verbosity > 1:
- print("\n--- end while with %d intervals:" % len(Intervals))
- for interval in Intervals:
- print("\t%s" % str(interval))
-
- PRlist = []
- for interval in Intervals:
- PRlist.append( [interval[0],interval[2]] )
- # | = probability (= midpoint of Interval)
- # = envelope index
-
- if options.verbosity > 1:
- print("\treturning PRlist:")
- for p in PRlist: print( "\t %s" % str(p))
- return PRlist
-
-#################################################################################
-
-def GetPoints(options, PRoptimal, probList):
-# Find gap intervals containing probability in probList
- PRlist = []
- for prob in probList:
- for i in range(1,len(PRoptimal)):
- if PRoptimal[i][1] >= prob: break
- PRlist.append([i,prob]) # i = index of upper value (bU)
- return PRlist
-
-#################################################################################
-
-def Compute_ExpectationforVariable(ph, IndVarName, CCStageNum):
- SumSoFar = 0.0
- node_probability = 0.0
- stage = ph._scenario_tree._stages[CCStageNum-1]
- for tree_node in stage._tree_nodes:
- for scenario in tree_node._scenarios:
- instance = ph._instances[scenario._name]
- #print "scenario._probability:",scenario._probability
- node_probability += scenario._probability
- #print "node_probability:",node_probability
- #print "getattr(instance, IndVarName).value:",getattr(instance, IndVarName).value
- SumSoFar += scenario._probability * getattr(instance, IndVarName).value
- #print "SumSoFar:",SumSoFar
- return SumSoFar / node_probability
-
-#######################################
-
-def Insert(newpoint,location,List):
- newList = []
- for i in range(location): newList.append(List[i])
- newList.append(newpoint)
- for i in range(location,len(List)): newList.append(List[i])
- return newList
-
-#######################################
-
-def ismember(List,member): # designed to test 1st member of each list in List (ie, 1st column)
- for i in List:
- if len(i[0]) == 0: continue # in case list contains empty list
- if i[0] == member: return True
- return
-
-#######################################
-
-def putcommas(num):
- snum = str(num)
- decimal = snum.find('.')
- if decimal >= 0:
- frac = snum[decimal:]
- snum = snum[0:decimal]
- else: frac = ''
- if len(snum) < 4: return snum + frac
- else: return putcommas(snum[:len(snum)-3]) + "," + snum[len(snum)-3:len(snum)] + frac
-
-#######################################
-
-def PrintPRpoints(PRlist):
- if len(PRlist) == 0:
- print("No PR points")
- else:
- print("%d PR points:" % len(PRlist))
- blanks = " "
- print(" lambda beta-probability min cost ")
- for row in PRlist:
- b = float(round(row[1],4))
- z = float(round(row[2]))
-# lambda = row[0] could be float, string, or None
- sl = str(row[0])
- sl = blanks[0:20-len(sl)] + sl
- sb = str(b)
- sb = blanks[0:20-len(sb)] + sb
- sz = putcommas(z)
- sz = blanks[2:20-len(sz)] + sz
- print(sl+" "+sb+" "+sz)
- print("==================================================================")
- return
-
-if __name__ == "__main__":
-
- run()
-
-# RESTORE THE BELOW ASAP
-#try:
-# run()
-#except ValueError, str:
-# print "VALUE ERROR:"
-# print str
-#except IOError, str:
-# print "IO ERROR:"
-# print str
-#except pyomo.common.errors.ApplicationError, str:
-# print "APPLICATION ERROR:"
-# print str
-#except RuntimeError, str:
-# print "RUN-TIME ERROR:"
-## print str
-#except:
-# print "Encountered unhandled exception", sys.exc_info()[0]
-# traceback.print_exc()
diff --git a/pyomo/pysp/lagrangeParam.py b/pyomo/pysp/lagrangeParam.py
deleted file mode 100755
index d9c7bf92669..00000000000
--- a/pyomo/pysp/lagrangeParam.py
+++ /dev/null
@@ -1,741 +0,0 @@
-#! /usr/bin/env python
-# ___________________________________________________________________________
-#
-# Pyomo: Python Optimization Modeling Objects
-# Copyright 2017 National Technology and Engineering Solutions of Sandia, LLC
-# Under the terms of Contract DE-NA0003525 with National Technology and
-# Engineering Solutions of Sandia, LLC, the U.S. Government retains certain
-# rights in this software.
-# This software is distributed under the 3-clause BSD License.
-# ___________________________________________________________________________
-
-#
-# This is virgin parametric lagrange multiplier search
-# no pre-processing and no gap-closing...just testing algorithm
-#
-
-import sys
-import time
-import datetime
-import operator
-# used for debug when Result was not returning correctly
-import inspect
-
-from pyomo.pysp.scenariotree.instance_factory import \
- ScenarioTreeInstanceFactory
-from pyomo.pysp.phinit import (construct_ph_options_parser,
- GenerateScenarioTreeForPH,
- PHFromScratch)
-from pyomo.pysp.phutils import find_active_objective
-from pyomo.pysp import lagrangeutils as lagrUtil
-
-##############################################################
-
-def datetime_string():
- return "datetime = "+str(datetime.datetime.now())
-
-###################################
-def run(args=None):
-###################################
-
- print("RUNNING - run args=%s" % str(args))
-
- import pyomo.environ
-
- def LagrangeParametric(args=None):
- class Object(object): pass
- Result = Object()
- Result.status = 'LagrangeParam begins '+ datetime_string() + '...running new ph'
- ph = None
-
- blanks = " " # used for formatting print statements
-# options used
- betaMin = options.beta_min
- betaMax = options.beta_max
- betaTol = options.beta_tol
- gapTol = options.Lagrange_gap
- minProb = options.min_prob
- maxIntervals = options.max_intervals
- maxTime = options.max_time
- IndVarName = options.indicator_var_name
- multName = options.lambda_parm_name
- CCStageNum = options.stage_num
- csvPrefix = options.csvPrefix
- verbosity = options.verbosity
- verbosity = 2 # override for debug (= 3 to get super-debug)
- HGdebug = 0 # special debug (not public)
-# local...may become option
- optTol = gapTol
-####################################################################
- STARTTIME = time.time()
-
- Result.status = "options set"
- if verbosity > 1:
- print("From LagrangeParametric, status = %s\tSTARTTIME = %s" \
- % (str(getattr(Result,'status')), str(STARTTIME)))
-
- ph = PHFromScratch(options)
- Result.ph = ph
- rootnode = ph._scenario_tree._stages[0]._tree_nodes[0] # use rootnode to loop over scenarios
- ReferenceInstance = ph._instances[rootnode._scenarios[0]._name] # arbitrary scenario
-
- if find_active_objective(ph._scenario_tree._scenarios[0]._instance,safety_checks=True).is_minimizing():
- sense = 'min'
- else:
- sense = 'max'
-
- scenario_count = len(full_scenario_tree._stages[-1]._tree_nodes)
- if options.verbosity > 0: print("%s %s scenarios" % (str(sense),str(scenario_count)))
-
-# initialize
- Result.status = 'starting at '+datetime_string()
- if verbosity > 0:
- print(Result.status)
- ScenarioList = []
- lambdaval = 0.
- lagrUtil.Set_ParmValue(ph, multName,lambdaval)
-
- # IMPORTANT: Preprocess the scenario instances
- # before fixing variables, otherwise they
- # will be preprocessed out of the expressions
- # and the output_fixed_variable_bounds option
- # will have no effect when we update the
- # fixed variable values (and then assume we
- # do not need to preprocess again because
- # of this option).
- ph._preprocess_scenario_instances()
-
- sumprob = 0.
- minprob = 1.
- maxprob = 0.
- # fixed = 0 to get PR point at b=0
- lagrUtil.FixAllIndicatorVariables(ph, IndVarName, 0)
- for scenario in rootnode._scenarios:
- instance = ph._instances[scenario._name]
- sname = scenario._name
- sprob = scenario._probability
- sumprob = sumprob + sprob
- minprob = min(minprob,sprob)
- maxprob = max(maxprob,sprob)
- ScenarioList.append([sname,sprob])
-
- ScenarioList.sort(key=operator.itemgetter(1)) # sorts from min to max probability
- if verbosity > 0:
- print("probabilities sum to %f range: %f to %f" % (sumprob,minprob,maxprob))
- Result.ScenarioList = ScenarioList
-
-# Write ScenarioList = name, probability in csv file sorted by probability
- outName = csvPrefix + 'ScenarioList.csv'
- print("writing to %s" % outName)
- with open(outName,'w') as outFile:
- for scenario in ScenarioList:
- outFile.write(scenario[0]+", "+str(scenario[1])+'\n')
- Result.ScenarioList = ScenarioList
-
- addstatus = 'Scenario List written to ' + csvPrefix+'ScenarioList.csv'
- Result.status = Result.status + '\n' + addstatus
- if verbosity > 0:
- print(addstatus)
-
- if verbosity > 0:
- print("solve begins %s" % datetime_string())
- print("\t- lambda = %f" % lambdaval)
- SolStat, zL = lagrUtil.solve_ph_code(ph, options)
- if verbosity > 0:
- print("solve ends %s" % datetime_string())
- print("\t- status = %s" % str(SolStat))
- print("\t- zL = %s" % str(zL))
-
- bL = Compute_ExpectationforVariable(ph, IndVarName, CCStageNum)
- if bL > 0:
- print("** bL = %s > 0 (all %s = 0)" % (str(bL), str(IndVarName)))
- return Result
-
- if verbosity > 0: print("Initial optimal obj = %s for bL = %s" % (str(zL), str(bL)))
-
- # fixed = 1 to get PR point at b=1
- lagrUtil.FixAllIndicatorVariables(ph, IndVarName, 1)
-
- if verbosity > 0:
- print("solve begins %s" % datetime_string())
- print("\t- lambda = %s" % str(lambdaval))
- SolStat, zU = lagrUtil.solve_ph_code(ph, options)
- if verbosity > 0:
- print("solve ends %s" % datetime_string())
- print("\t- status = %s" % str(SolStat))
- print("\t- zU = %s" % str(zU))
- if not SolStat[0:2] == 'ok':
- print(str(SolStat[0:3])+" is not 'ok'")
- addstatus = "** Solution is non-optimal...aborting"
- print(addstatus)
- Result.status = Result.status + "\n" + addstatus
- return Result
-
- bU = Compute_ExpectationforVariable(ph, IndVarName, CCStageNum)
- if bU < 1.- betaTol and verbosity > 0:
- print("** Warning: bU = %s < 1" % str(bU))
-
-### enumerate points in PR space (all but one scenario)
-# Result.lbz = [ [0,bL,zL], [None,bU,zU] ]
-# for scenario in rootnode._scenarios:
-# sname = scenario._name
-# instance = ph._instances[sname]
-# print "excluding scenario",sname
-# getattr(instance,IndVarName).value = 0
-# print sname,"value =",getattr(instance,IndVarName).value,getattr(instance,IndVarName).fixed
-# SolStat, z = lagrUtil.solve_ph_code(ph, options)
-# b = Compute_ExpectationforVariable(ph, IndVarName, CCStageNum)
-# print "solve ends with status =",SolStat,"(b, z) =",b,z
-# getattr(instance,IndVarName).value = 1
-# Result.lbz.append([None,b,z])
-# for t in instance.TimePeriods:
-# print "Global at",t,"=",instance.posGlobalLoadGenerateMismatch[t].value, \
-# '-',instance.negGlobalLoadGenerateMismatch[t].value,"=",\
-# instance.GlobalLoadGenerateMismatch[t].value,\
-# "\tDemand =",instance.TotalDemand[t].value, ",",\
-# "Reserve =",instance.ReserveRequirement[t].value
-#
-# PrintPRpoints(Result.lbz)
-# return Result
-#### end enumeration
-########################################################################
-
- if verbosity > 1:
- print("We have bU = %s ...about to free all %s for %d scenarios" % \
- (str(bU), str(IndVarName), len(ScenarioList)))
-
- # free scenario selection variable
- lagrUtil.FreeAllIndicatorVariables(ph, IndVarName)
-
- if verbosity > 1:
- print("\tall %s freed; elapsed time = %f" % (str(IndVarName), time.time() - STARTTIME))
-
-# initialize with the two endpoints
- Result.lbz = [ [0.,bL,zL], [None,bU,zU] ]
- Result.selections = [[], ScenarioList]
- NumIntervals = 1
- if verbosity > 0:
- print("Initial relative Lagrangian gap = %f maxIntervals = %d" % (1-zL/zU, maxIntervals))
- if verbosity > 1:
- print("entering while loop %s" % datetime_string())
- print("\n")
-
-############ main loop to search intervals #############
-########################################################
- while NumIntervals < maxIntervals:
- lapsedTime = time.time() - STARTTIME
- if lapsedTime > maxTime:
- addstatus = '** max time reached ' + str(lapsedTime)
- print(addstatus)
- Result.status = Result.status + '\n' + addstatus
- break
- if verbosity > 1:
- print("Top of while with %d intervals elapsed time = %f" % (NumIntervals, lapsedTime))
- PrintPRpoints(Result.lbz)
-
- lambdaval = None
-### loop over PR points to find first unfathomed interval to search ###
- for PRpoint in range(1,len(Result.lbz)):
- if Result.lbz[PRpoint][0] == None:
-# multiplier = None means interval with upper endpoint at PRpoint not fathomed
- bL = Result.lbz[PRpoint-1][1]
- zL = Result.lbz[PRpoint-1][2]
- bU = Result.lbz[PRpoint][1]
- zU = Result.lbz[PRpoint][2]
- lambdaval = (zU - zL) / (bU - bL)
- break
-
-#############################
-# Exited from the for loop
- if verbosity > 1:
- print("exited for loop with PRpoint = %s ...lambdaval = %s" % (PRpoint, lambdaval))
- if lambdaval == None: break # all intervals are fathomed
-
- if verbosity > 1: PrintPRpoints(Result.lbz)
- if verbosity > 0:
- print("Searching for b in [%s, %s] with %s = %f" % (str(round(bL,4)), str(round(bU,4)), multName, lambdaval))
-
-# search interval (bL,bU)
- lagrUtil.Set_ParmValue(ph, multName,lambdaval)
- if verbosity > 0:
- print("solve begins %s" % datetime_string())
- print("\t- %s = %f" % (multName, lambdaval))
-
- #########################################################
- SolStat, Lagrangian = lagrUtil.solve_ph_code(ph, options)
- #########################################################
- if not SolStat[0:2] == 'ok':
- addstatus = "** Solution status " + SolStat + " is not optimal"
- print(addstatus)
- Result.status = Result.status + "\n" + addstatus
- return Result
-
- b = Compute_ExpectationforVariable(ph, IndVarName, CCStageNum)
- z = Lagrangian + lambdaval*b
- if verbosity > 0:
- print("solve ends %s" % datetime_string())
- print("\t- Lagrangian = %f" % Lagrangian)
- print("\t- b = %s" % str(b))
- print("\t- z = %s" % str(z))
- print("\n")
-
-# We have PR point (b,z), which may be new or one of the endpoints
-##################################################################
-
-######### Begin tolerance tests ##########
-# Test that b is in [bL,bU]
- if verbosity > 1: print("\ttesting b")
- if b < bL - betaTol or b > bU + betaTol:
- addstatus = "** fatal error: probability (= " + str(b) + \
- ") is outside interval, (" + str(bL) + ", " + str(bU) + ")"
- addstatus = addstatus + "\n\t(tolerance = " + str(betaTol) + ")"
- print(addstatus+'\n')
- Result.status = Result.status + addstatus
- return Result
-# Test that z is in [zL,zU]
- if verbosity > 1: print("\ttesting z")
-# using optTol as absolute tolerance (not relative)
-# ...if we reconsider, need to allow negative z-values
- if z < zL - optTol or z > zU + optTol:
- addstatus = "** fatal error: obj (= " + str(z) + \
- ") is outside interval, (" + str(zL) + ", " + str(zU) + ")"
- print(addstatus+'\n')
- Result.status = Result.status + addstatus
- return Result
-
-# Ok, we have (b,z) in [(bL,zL), (bU,zU)], at least within tolerances
-
- oldLagrangian = zL - lambdaval*bL
-# ensure lambdaval set such that endpoints have same Lagrangian value
-# (this is probably unnecessary, but check anyway)
- if abs(oldLagrangian - (zU - lambdaval*bU)) > optTol*abs(oldLagrangian):
- addstatus = "** fatal error: Lagrangian at (bL,zL) = " + \
- str(oldLagrangian) + " not= " + str(zU-lambdaval*bU) + \
- "\n\t(optTol = " + str(optTol) + ")"
- Result.status = Result.status + addstatus
- return Result
-
-# no more fatal error tests...need to know if (b,z) is endpoint or new
-
- if verbosity > 1: print("No anomalies...testing if b = bL or bU")
-
-# Test if endpoint is an alternative optimum of Lagrangian
-# ...using optTol as *relative* tolerance
-# (could use other reference values -- eg, avg or max of old and new Lagrangian values)
- refValue = max( min( abs(oldLagrangian), abs(Lagrangian) ), 1.)
- alternativeOpt = abs( oldLagrangian - Lagrangian ) <= optTol*refValue
-
-# alternativeOpt = True means we computed point (b,z) is alternative optimum such that:
-# case 1: (b,z) = endpoint, in which case we simply fathom [bL,bU] by setting PRpoint
-# to [lambdaval,bU,zU] (the numeric value of multiplier means fathomed)
-# case 2: (b,z) is new PR point on line segment, in which case we split into
-# [bL,b] and [b,bU], with both fathomed
-
- if verbosity > 1:
- print("oldLagrangian = %s" % str(oldLagrangian))
- if alternativeOpt: print(":= Lagrangian = %s" % str(Lagrangian ))
- else: print("> Lagrangian = %s" % str(Lagrangian))
-
- if alternativeOpt:
-# setting multiplier of (bU,zU) to a numeric fathoms the interval [bL,bU]
- Result.lbz[PRpoint][0] = lambdaval
-
-# test if (b,z) is an endpoint
- newPRpoint = abs(b-bL) > betaTol and abs(b-bU) > betaTol
- if not newPRpoint:
-# ...(b,z) is NOT an endpoint (or sufficiently close), so split and fathom
- if verbosity > 1:
- print("\tnot an endpoint\tlbz = %s" % str(Result.lbz[PRpoint]))
- if verbosity > 0:
- print("Lagangian solution is new PR point on line segment of (" \
- + str(bL) + ", " + str(bU) +")")
- print("\tsplitting (bL,bU) into (bL,b) and (b,bU), both fathomed")
-# note: else ==> b = bL or bU, so we do nothing, having already fathomed [bL,bU]
-
-# (b,z) is new PR point, so split interval (still in while loop)
-##########################################
-# alternative optimum ==> split & fathom: (bL,b), (b,bU)
- if verbosity > 1:
- print("\talternativeOpt %s newPRpoint = %s" % (alternativeOpt, newPRpoint))
- if newPRpoint:
- NumIntervals += 1
- if alternativeOpt:
- if verbosity > 1: print("\tInsert [lambdaval,b,z] at %f" % PRpoint)
- Result.lbz = Insert([lambdaval,b,z],PRpoint,Result.lbz)
- addstatus = "Added PR point on line segment of envelope"
- if verbosity > 0: print(addstatus+'\n')
- else:
- if verbosity > 1: print("\tInsert [None,b,z] at %f" % PRpoint)
- Result.lbz = Insert([None,b,z],PRpoint,Result.lbz)
- addstatus = "new envelope extreme point added (interval split, not fathomed)"
- Result.status = Result.status + "\n" + addstatus
-
- if verbosity > 1:
- print("...after insertion:")
- PrintPRpoints(Result.lbz)
-
-# get the selections of new point (ie, scenarios for which delta=1)
- Selections = []
- for scenario in ScenarioList:
- instance = ph._instances[scenario[0]]
- if getattr(instance,IndVarName).value == 1:
- Selections.append(scenario)
- Result.selections = Insert(Selections,PRpoint,Result.selections)
-
- if verbosity > 0:
- print("Interval "+str(PRpoint)+", ["+str(bL)+", "+str(bU)+ \
- "] split at ("+str(b)+", "+str(z)+")")
- print("\tnew PR point has "+str(len(Selections))+" selections")
-
- if verbosity > 1: print("test that selections list aligned with lbz")
- if not len(Result.lbz) == len(Result.selections):
- print("** fatal error: lbz not= selections")
- PrintPRpoints(Result.lbz)
- print("Result.selections:")
- for i in range(Result.selections): print("%d %f" % (i,Result.selections[i]))
- return Result
-
-# ok, we have split and/or fathomed interval
- if NumIntervals >= maxIntervals:
-# we are about to leave while loop due to...
- addstatus = "** terminating because number of intervals = " + \
- str(NumIntervals) + " >= max = " + str(maxIntervals)
- if verbosity > 0: print(addstatus+'\n')
- Result.status = Result.status + "\n" + addstatus
-
-# while loop continues
- if verbosity > 1:
- print("bottom of while loop")
- PrintPRpoints(Result.lbz)
-
-###################################################
-# end while NumIntervals < maxIntervals:
-# ^ this is indentation of while loop
-################ end while loop ###################
-
- if verbosity > 1: print("\nend while loop...setting multipliers")
- for i in range(1,len(Result.lbz)):
- db = Result.lbz[i][1] - Result.lbz[i-1][1]
- dz = Result.lbz[i][2] - Result.lbz[i-1][2]
- if dz > 0:
- Result.lbz[i][0] = dz/db
- else:
- #print "dz =",dz," at ",i,": ",Result.lbz[i]," -",Result.lbz[i-1]
- Result.lbz[i][0] = 0
- if verbosity > 0: PrintPRpoints(Result.lbz)
-
- addstatus = '\nLagrange multiplier search ends'+datetime_string()
- if verbosity > 0:
- print(addstatus+'\n')
- Result.status = Result.status + addstatus
-
- outName = csvPrefix + "PRoptimal.csv"
- with open(outName,'w') as outFile:
- if verbosity > 0:
- print("writing PR points to "+outName+'\n')
- for lbz in Result.lbz:
- outFile.write(str(lbz[1])+ ", " +str(lbz[2])+'\n')
-
- outName = csvPrefix + "OptimalSelections.csv"
- with open(outName,'w') as outFile:
- if verbosity > 0:
- print("writing optimal selections for each PR point to "+csvPrefix+'PRoptimal.csv\n')
- for selections in Result.selections:
- char = ""
- thisSelection = ""
- for slist in selections:
- if slist:
- thisSelection = thisSelection + char + slist[0]
- char = ","
- outFile.write(thisSelection+'\n')
-
- if verbosity > 0:
- print("\nReturning status:\n %s \n=======================" % Result.status)
-
-################################
- if verbosity > 2:
- print("\nAbout to return...Result attributes: %d" % len(inspect.getmembers(Result)))
- for attr in inspect.getmembers(Result): print(attr[0])
- print("\n===========================================")
-# LagrangeParametric ends here
- return Result
-################################
-
-
-####################################### start run ####################################
-
- AllInOne = False
-
-########################
-# options defined here
-########################
- try:
- conf_options_parser = construct_ph_options_parser("lagrange [options]")
- conf_options_parser.add_argument("--beta-min",
- help="The min beta level for the chance constraint. Default is 0",
- action="store",
- dest="beta_min",
- type=float,
- default=0.)
- conf_options_parser.add_argument("--beta-max",
- help="The beta level for the chance constraint. Default is 1.",
- action="store",
- dest="beta_max",
- type=float,
- default=1.)
- conf_options_parser.add_argument("--beta-tol",
- help="Tolerance for testing equality to beta. Default is 1e-5",
- action="store",
- dest="beta_tol",
- type=float,
- default=1e-5)
- conf_options_parser.add_argument("--Lagrange-gap",
- help="The (relative) Lagrangian gap acceptable for the chance constraint. Default is 10^-4",
- action="store",
- type=float,
- dest="Lagrange_gap",
- default=0.0001)
- conf_options_parser.add_argument("--min-prob",
- help="Tolerance for testing probability > 0. Default is 1e-9",
- action="store",
- dest="min_prob",
- type=float,
- default=1e-5)
- conf_options_parser.add_argument("--max-intervals",
- help="The max number of intervals generated; if causes termination, non-fathomed intervals have multiplier=None. Default = 100.",
- action="store",
- dest="max_intervals",
- type=int,
- default=100)
- conf_options_parser.add_argument("--max-time",
- help="Maximum time (seconds). Default is 3600.",
- action="store",
- dest="max_time",
- type=float,
- default=3600)
- conf_options_parser.add_argument("--lambda-parm-name",
- help="The name of the lambda parameter in the model. Default is lambdaMult",
- action="store",
- dest="lambda_parm_name",
- type=str,
- default="lambdaMult")
- conf_options_parser.add_argument("--indicator-var-name",
- help="The name of the indicator variable for the chance constraint. The default is delta",
- action="store",
- dest="indicator_var_name",
- type=str,
- default="delta")
- conf_options_parser.add_argument("--stage-num",
- help="The stage number of the CC indicator variable (number, not name). Default is 2",
- action="store",
- dest="stage_num",
- type=int,
- default=2)
- conf_options_parser.add_argument("--csvPrefix",
- help="Output file name. Default is ''",
- action="store",
- dest="csvPrefix",
- type=str,
- default='')
- conf_options_parser.add_argument("--verbosity",
- help="verbosity=0 is no extra output, =1 is medium, =2 is debug, =3 super-debug. Default is 1.",
- action="store",
- dest="verbosity",
- type=int,
- default=1)
-# The following needed for solve_ph_code in lagrangeutils
- conf_options_parser.add_argument("--solve-with-ph",
- help="Perform solves via PH rather than an EF solve. Default is False",
- action="store_true",
- dest="solve_with_ph",
- default=False)
-##HG: deleted params filed as deletedParam.py
-#######################################################################################################
-
- options = conf_options_parser.parse_args(args=args)
- # temporary hack
- options._ef_options = conf_options_parser._ef_options
- options._ef_options.import_argparse(options)
- except SystemExit as _exc:
- # the parser throws a system exit if "-h" is specified - catch
- # it to exit gracefully.
- return _exc.code
-
- # create the reference instances and the scenario tree - no
- # scenario instances yet.
- if options.verbosity > 0:
- print("Loading reference model and scenario tree")
-# Dec 18
-# scenario_instance_factory, full_scenario_tree = load_models(options)
- scenario_instance_factory = \
- ScenarioTreeInstanceFactory(options.model_directory,
- options.instance_directory)
-
- full_scenario_tree = \
- GenerateScenarioTreeForPH(options,
- scenario_instance_factory)
-
-####
- try:
- if (scenario_instance_factory is None) or (full_scenario_tree is None):
- raise RuntimeError("***ERROR: Failed to initialize the model and/or scenario tree data.")
-
- # load_model gets called again, so lets make sure unarchived directories are used
- options.model_directory = scenario_instance_factory._model_filename
- options.instance_directory = scenario_instance_factory._scenario_tree_filename
-
-########## Here is where multiplier search is called from run() ############
- Result = LagrangeParametric()
-#####################################################################################
- finally:
-
- # delete temporary unarchived directories
- scenario_instance_factory.close()
-
- if options.verbosity > 0:
- print("\n===========================================")
- print("\nreturned from LagrangeParametric")
- if options.verbosity > 2:
- print("\nFrom run, Result should have status and ph objects...")
- for attr in inspect.getmembers(Result): print(attr)
- print("\n===========================================")
-
- try:
- status = Result.status
- print("status = "+str(Result.status))
- except:
- print("status not defined")
- sys.exit()
-
- try:
- lbz = Result.lbz
- PrintPRpoints(lbz)
- with open(options.csvPrefix+"PRoptimal.csv",'w') as outFile:
- for lbz in Result.lbz:
- outFile.write(str(lbz[1])+ ", " +str(lbz[2])+'\n')
- except:
- print("Result.lbz not defined")
- sys.exit()
-
- try:
- ScenarioList = Result.ScenarioList
- ScenarioList.sort(key=operator.itemgetter(1))
- with open(options.csvPrefix+"ScenarioList.csv",'w') as outFile:
- for scenario in ScenarioList:
- outFile.write(scenario[0]+", "+str(scenario[1])+'\n')
- except:
- print("Result.ScenarioList not defined")
- sys.exit()
-
-########################### run ends here ##############################
-
-########## begin function definitions ################
-def Compute_ExpectationforVariable(ph, IndVarName, CCStageNum):
- SumSoFar = 0.0
- node_probability = 0.0
- stage = ph._scenario_tree._stages[CCStageNum-1]
- for tree_node in stage._tree_nodes:
- for scenario in tree_node._scenarios:
- instance = ph._instances[scenario._name]
- #print "scenario._probability:",scenario._probability
- node_probability += scenario._probability
- #print "node_probability:",node_probability
- #print "getattr(instance, IndVarName).value:",getattr(instance, IndVarName).value
- SumSoFar += scenario._probability * getattr(instance, IndVarName).value
- #print "SumSoFar:",SumSoFar
- return SumSoFar / node_probability
-
-#######################################
-
-def Insert(newpoint,location,List):
- newList = []
- for i in range(location): newList.append(List[i])
- newList.append(newpoint)
- for i in range(location,len(List)): newList.append(List[i])
- return newList
-
-#######################################
-
-def ismember(List,member): # designed to test 1st member of each list in List (ie, 1st column)
- for i in List:
- if len(i[0]) == 0: continue # in case list contains empty list
- if i[0] == member: return True
- return
-
-#######################################
-
-def putcommas(num):
- snum = str(num)
- decimal = snum.find('.')
- if decimal >= 0:
- frac = snum[decimal:]
- snum = snum[0:decimal]
- else: frac = ''
- if len(snum) < 4: return snum + frac
- else: return putcommas(snum[:len(snum)-3]) + "," + snum[len(snum)-3:len(snum)] + frac
-
-#######################################
-
-def HGdebugSolve(ph,options,ScenarioList):
- print("HGdebugSolve prints attributes after solving")
- SolStat, Lagrangian = lagrUtil.solve_ph_code(ph, options)
- IndVarName = options.indicator_var_name
- for scenario in ScenarioList:
- sname = scenario[0]
- instance = ph._instances[sname]
- if getattr(instance,IndVarName).fixed: stat = "fixed"
- else: stat = "free"
- lambdaval = getattr(instance, options.lambda_parm_name).value
- #print IndVarName+"("+sname+") =",getattr(instance,IndVarName).value, stat, "\tlambda =",lambdaval
- b = Compute_ExpectationforVariable(ph, IndVarName, options.stage_num)
- z = Lagrangian + lambdaval*b
- #print "L = ",z," - ",lambdaval,"x",b
- return SolStat, Lagrangian
-
-def PrintPRpoints(PRlist):
- if len(PRlist) == 0:
- print("No PR points")
- else:
- print("%d PR points:" % len(PRlist))
- blanks = " "
- print(" lambda beta-probability min cost")
- for row in PRlist:
- b = float(round(row[1],4))
- z = float(round(row[2]))
-# lambda = row[0] could be float, string, or None
- sl = str(row[0])
- sl = blanks[0:20-len(sl)] + sl
- sb = str(b)
- sb = blanks[0:20-len(sb)] + sb
- sz = putcommas(z)
- sz = blanks[2:20-len(sz)] + sz
- print(sl+" "+sb+" "+sz)
- print("==================================================================")
- return
-
-#
-# the main script routine starts here
-#
-
-if __name__ == "__main__":
-
- run()
-
-# RESTORE THE BELOW ASAP
-#try:
-# run()
-#except ValueError, str:
-# print "VALUE ERROR:"
-# print str
-#except IOError, str:
-# print "IO ERROR:"
-# print str
-#except pyomo.common.errors.ApplicationError, str:
-# print "APPLICATION ERROR:"
-# print str
-#except RuntimeError, str:
-# print "RUN-TIME ERROR:"
-## print str
-#except:
-# print "Encountered unhandled exception", sys.exc_info()[0]
-# traceback.print_exc()
diff --git a/pyomo/pysp/lagrangeutils.py b/pyomo/pysp/lagrangeutils.py
deleted file mode 100644
index 61a581e27a3..00000000000
--- a/pyomo/pysp/lagrangeutils.py
+++ /dev/null
@@ -1,443 +0,0 @@
-# ___________________________________________________________________________
-#
-# Pyomo: Python Optimization Modeling Objects
-# Copyright 2017 National Technology and Engineering Solutions of Sandia, LLC
-# Under the terms of Contract DE-NA0003525 with National Technology and
-# Engineering Solutions of Sandia, LLC, the U.S. Government retains certain
-# rights in this software.
-# This software is distributed under the 3-clause BSD License.
-# ___________________________________________________________________________
-
-import sys
-import time
-
-from pyomo.core import minimize
-from pyomo.pysp.ef_writer_script import ExtensiveFormAlgorithm
-from pyomo.pysp.phinit import run_ph
-
-# Tear the scenario instances off the ef instance when it is no longer required
-# so warnings are not generated next time scenarios instances are placed inside
-# a new ef instance
-def _tear_down_ef(ef_instance, scenario_instances):
- for name in scenario_instances:
- ef_instance.del_component(name)
-
-def solve_ph_code(ph, options):
- import pyomo.environ
- import pyomo.solvers.plugins.smanager.phpyro
-
- # consolidate the code to solve the problem for the "global" ph object
- # return a solver code (string from the solver if EF, "PH" if PH) and the objective fct val
- SolStatus = None
-
- ph._preprocess_scenario_instances()
-
- ObjectiveFctValue = \
- float('inf') if (ph._objective_sense is minimize) else float('-inf')
- SolStatus = None
- if not options.solve_with_ph:
- if options.verbose is True:
- print("Creating the extensive form.")
- print("Time="+time.asctime())
-
- with ExtensiveFormAlgorithm(ph,
- options._ef_options,
- options_prefix="ef_") as ef:
- ef.build_ef()
- failure = ef.solve(io_options=\
- {'output_fixed_variable_bounds':
- options.write_fixed_variables},
- exception_on_failure=False)
- if not failure:
- ObjectiveFctValue = ef.objective
- SolStatus = str(ef.solver_status)
-
- """
- ef = create_ef_instance(ph._scenario_tree,
- verbose_output=options.verbose)
-
- if options.verbose:
- print("Time="+time.asctime())
- print("Solving the extensive form.")
-
- ef_results = solve_ef(ef, options)
-
- SolStatus = str(ef_results.solver.status)
- print("SolStatus="+SolStatus)
- if options.verbose is True:
- print("Loading extensive form solution.")
- print("Time="+time.asctime())
- ### If the solution is infeasible, we don't want to load the results
- ### It is up to the caller to decide what to do with non-optimal
- if SolStatus != "infeasible" and SolStatus != "unknown":
-
- # IMPT: the following method populates the _solution variables on the scenario tree
- # nodes by forming an average of the corresponding variable values for all
- # instances particpating in that node. if you don't do this, the scenario tree
- # doesn't have the solution - and we need this below for variable bounding
- ph._scenario_tree.pullScenarioSolutionsFromInstances()
- ph._scenario_tree.snapshotSolutionFromScenarios()
- if options.verbose is True:
- print("SolStatus="+SolStatus)
- print("Time="+time.asctime())
-
- _tear_down_ef(ef, ph._instances)
- """
- else:
- if options.verbose:
- print("Solving via Progressive Hedging.")
-
- run_ph(options, ph)
- ph._scenario_tree.pullScenarioSolutionsFromInstances()
- root_node = ph._scenario_tree._stages[0]._tree_nodes[0]
- ObjectiveFctValue = root_node.computeExpectedNodeCost()
- SolStatus = "PH"
- """
- phretval = ph.solve()
- #print("--------->>>> "+str(phretval))
- SolStatus = "PH"
- if phretval is not None:
- print("Iteration zero solve was not successful for scenario: "+str(phretval))
- if options.verbose is True:
- print("Iteration zero solve was not successful for scenario: "+str(phretval))
- SolStatus = "PHFailAtScen"+str(phretval)
-
- # TBD - also not sure if PH calls snapshotSolutionFromAverages.
- if options.verbose is True:
- print("Done with PH solve.")
-
- ##begin copy from phinit
- solution_writer_plugins = ExtensionPoint(ISolutionWriterExtension)
- for plugin in solution_writer_plugins:
- plugin.write(ph._scenario_tree, "ph")
-
- # store the binding instance, if created, in order to load
- # the solution back into the scenario tree.
- binding_instance = None
-
- #
- # create the extensive form binding instance, so that we can either write or solve it (if specified).
- #
- if (options.write_ef) or (options.solve_ef):
-
- # The post-solve plugins may have done more variable
- # fixing. These should be pushed to the instance at this
- # point.
- print("Pushing fixed variable statuses to scenario instances")
- ph._push_all_node_fixed_to_instances()
- total_fixed_discrete_vars, total_fixed_continuous_vars = \
- ph.compute_fixed_variable_counts()
- print("Number of discrete variables fixed "
- "prior to ef creation="
- +str(total_fixed_discrete_vars)+
- " (total="+str(ph._total_discrete_vars)+")")
- print("Number of continuous variables fixed "
- "prior to ef creation="
- +str(total_fixed_continuous_vars)+
- " (total="+str(ph._total_continuous_vars)+")")
-
- print("Creating extensive form for remainder problem")
- ef_instance_start_time = time.time()
- binding_instance = create_ef_instance(ph._scenario_tree)
-
- ef_instance_end_time = time.time()
- print("Time to construct extensive form instance=%.2f seconds"
- % (ef_instance_end_time - ef_instance_start_time))
-
- ph._preprocess_scenario_instances()
- #
- # solve the extensive form and load the solution back into the PH scenario tree.
- # contents from the PH solve will obviously be over-written!
- #
- if options.write_ef:
- output_filename = os.path.expanduser(options.ef_output_file)
- # technically, we don't need the symbol map since we aren't solving it.
- print("Starting to write the extensive form")
- ef_write_start_time = time.time()
- symbol_map = write_ef(binding_instance,
- output_filename,
- symbolic_solver_labels=options.symbolic_solver_labels,
- output_fixed_variable_bounds=options.write_fixed_variables)
- ef_write_end_time = time.time()
- print("Extensive form written to file="+output_filename)
- print("Time to write output file=%.2f seconds"
- % (ef_write_end_time - ef_write_start_time))
-
- if options.solve_ef:
-
- # set the value of each non-converged, non-final-stage variable to None -
- # this will avoid infeasible warm-stats.
- reset_nonconverged_variables(ph._scenario_tree, ph._instances)
- reset_stage_cost_variables(ph._scenario_tree, ph._instances)
-
- ef_results = solve_ef(binding_instance, options)
-
- print("Storing solution in scenario tree")
- ph._scenario_tree.pullScenarioSolutionsFromInstances()
- ph._scenario_tree.snapshotSolutionFromScenarios()
-
- ef_solve_end_time = time.time()
- print("Time to solve and load results for the "
- "extensive form=%.2f seconds"
- % (ef_solve_end_time - ef_solve_start_time))
-
- # print *the* metric of interest.
- print("")
- root_node = ph._scenario_tree._stages[0]._tree_nodes[0]
- print("***********************************************************************************************")
- print(">>>THE EXPECTED SUM OF THE STAGE COST VARIABLES="+str(root_node.computeExpectedNodeCost())+"<<<")
- print("***********************************************************************************************")
- print("")
- print("Extensive form solution:")
- ph._scenario_tree.pprintSolution()
- print("")
- print("Extensive form costs:")
- ph._scenario_tree.pprintCosts()
-
- solution_writer_plugins = ExtensionPoint(ISolutionWriterExtension)
- for plugin in solution_writer_plugins:
- plugin.write(ph._scenario_tree, "postphef")
-
- if binding_instance is not None:
- _tear_down_ef(binding_instance, ph._instances)
- """
-
- print("SolStatus="+str(SolStatus))
- if options.verbose:
- print("Time="+time.asctime())
-
- ## print "(using PySP Cost vars) ObjectiveFctValue=",ObjectiveFctValue
- return SolStatus, ObjectiveFctValue
-
-###########
-def ZeroOneIndexListsforVariable(ph, IndVarName, CCStageNum):
- # return lists across scenarios of the zero value scenarios and one value scenarios
- # for unindexed variable in the ph object for a stage (one based)
- # in this routine we trust that it is binary
- ZerosList = []
- OnesList = []
-
- stage = ph._scenario_tree._stages[CCStageNum-1]
- for tree_node in stage._tree_nodes:
- for scenario in tree_node._scenarios:
- instance = ph._instances[scenario._name]
- locval = getattr(instance, IndVarName).value
- #print locval
- if locval < 0.5:
- ZerosList.append(scenario)
- else:
- OnesList.append(scenario)
- return [ZerosList,OnesList]
-
-###########
-def PrintanIndexList(IndList):
- # show some useful information about an index list (note: indexes are scenarios)
- print("Zeros:")
- for i in IndList[0]:
- print(i._name+'\n')
- print("Ones:")
- for i in IndList[1]:
- print(i._name+'\n')
-
-###########
-def ReturnIndexListNames(IndList):
- ListNames=[[],[]]
- #print "Zeros:"
- for i in IndList[0]:
- ListNames[0].append(i._name)
- #print "Ones:"
- for i in IndList[1]:
- ListNames[1].append(i._name)
- return ListNames
-
-###########
-def Set_ParmValue(ph, ParmName, NewVal):
- # set the value of the named parm in all instances (unindexed)
- rootnode = ph._scenario_tree._stages[0]._tree_nodes[0]
- for scenario in rootnode._scenarios:
- instance = ph._instances[scenario._name]
- pm = getattr(instance, ParmName)
- if pm.is_indexed():
- for index in pm:
- pm[index].value = NewVal[index]
- else:
- pm.value = NewVal ##### dlw adds value :( Jan 2014
- # required for advanced preprocessing that takes
- # place in PySP
- ph._problem_states.\
- user_constraints_updated[scenario._name] = True
-
-###########
-def Get_ParmValueOneScenario(ph, scenarioName, ParmName):
- instance = ph._instances[scenarioName]
- pm = getattr(instance, ParmName)
- values = []
- for index in pm:
- values.append(pm[index].value)
- return values
-
-def PurifyIndVar(ph, IndVarName, tolZero=1.e-6):
- rootnode = ph._scenario_tree._stages[0]._tree_nodes[0]
- for scenario in rootnode._scenarios:
- instance = ph._instances[scenario._name]
- pm = getattr(instance, IndVarName)
- for index in pm:
- delta = pm[index].value
- if abs(delta) < tolZero: delta = 0
- elif abs(delta-1.) < tolZero: delta = 1
- else:
- print("\n** delta["+str(index)+"," + scenario._name + "] = "+str(delta))
- print("\tnot within " + str(tolZero) + " of 0 or 1 ... causes sys.exit")
- print("**************************************************************\n")
- sys.exit()
- pm[index].value = delta
-
- return
-
-def FreeAllIndicatorVariables(ph, IndVarName):
- for scenario in ph._scenario_tree._scenarios:
- FreeIndicatorVariableOneScenario(ph,
- scenario,
- IndVarName)
-
-def FreeIndicatorVariableOneScenario(ph, scenario, IndVarName):
- instance = ph._instances[scenario._name]
- getattr(instance, IndVarName).free()
- # required for advanced preprocessing that takes
- # place in PySP
- ph._problem_states.\
- freed_variables[scenario._name].\
- append((IndVarName, None))
-
-def FixAllIndicatorVariables(ph, IndVarName, value):
- for scenario in ph._scenario_tree._scenarios:
- FixIndicatorVariableOneScenario(ph,
- scenario,
- IndVarName,
- value)
-
-def FixIndicatorVariableOneScenario(ph,
- scenario,
- IndVarName,
- fix_value):
-
- instance = ph._instances[scenario._name]
- getattr(instance, IndVarName).fix(fix_value)
- # required for advanced preprocessing that takes
- # place in PySP
- ph._problem_states.\
- fixed_variables[scenario._name].\
- append((IndVarName, None))
-
-def FixFromLists(Lists, ph, IndVarName, CCStageNum):
- # fix variables from the lists
- stage = ph._scenario_tree._stages[CCStageNum-1]
- for tree_node in stage._tree_nodes:
- for scenario in tree_node._scenarios:
- instance = ph._instances[scenario._name]
- fix_value = None
- if scenario in Lists[0]:
- fix_value = 0
- elif scenario in Lists[1]:
- fix_value = 1
- if fix_value is not None:
- # we are assuming no index
- FixIndicatorVariableOneVariable(ph,
- scenario,
- IndVarName,
- fix_value)
- return
-
-###########
-def UseListsVariableThenSolve(Lists, ph, IndVarName, CCStageNum):
- # use lists across scenarios of to fix the variable value
- # then solve and return some stuff
-
- FixFromLists(Lists, ph, IndVarName, CCStageNum)
- LagrangianObj = solve_ph_code(ph)
- b = Compute_ExpectationforVariable(ph, IndVarName, 2)
- print("back from compute exp")
-
- return LagrangianObj, b
-
-#==============================================
-def AlgoExpensiveFlip(TrueForZeros, List, lambdaval, ph, IndVarName, CCStageNum):
- # Flip every delta of every scenario and solve with solve_ph_code(ph)
- # to find scenarios for which we will flip the indicator variable
- # returns list of scenarios sorted by the LagrObj
- if TrueForZeros is True:
- print("ExpensiveFlipAlgo: Fix ZerosToOnes and compute: ")
- value=1
- else:
- print("ExpensiveFlipAlgo: Fix OnesToZeros and compute: ")
- value=0
- D={}
- stage = ph._scenario_tree._stages[CCStageNum-1]
- for tree_node in stage._tree_nodes:
- for scenario in tree_node._scenarios:
- instance = ph._instances[scenario._name]
- if scenario._name in ReturnIndexListNames(List)[abs(value-1)]:
- FixIndicatorVariableOneScenario(ph,
- scenario,
- IndVarName,
- value)
-
- LagrObj = solve_ph_code(ph)
- b = Compute_ExpectationforVariable(ph, IndVarName, 2)
- z = LagrObj+(b*lambdaval)
- D[z]=[scenario,b]
- print("ObjVal w/ "+str(scenario._name)+
- " delta flipped to "+str(value)+
- " (LagrObj,b,z): "+str(LagrObj)+
- " "+str(b)+" "+str(z))
- FixIndicatorVariableOneScenario(ph,
- scenario,
- IndVarName,
- abs(value-1))
-
- Dsort = []
- for key in sorted(D):
- Dsort.append(D[key])
- print("---SmallestObjValue:---> "
- +str(sorted(D)[0])+" with (LagrObj,b) = "
- +str(sorted(D)[0]-(lambdaval*Dsort[0][1]))+" "
- +str(Dsort[0][1])+" at "+str(Dsort[0][0]._name))
- if TrueForZeros is True:
- print("Back from ExpensiveFlipAlgo:Fix ZerosToOnes")
- else:
- print("Back from ExpensiveFlipAlgo:Fix OnesToZeros")
- return Dsort,sorted(D)[0],Dsort[0][1]
-
-def Compute_ExpectationforVariable(ph, IndVarName, CCname, CCStageNum):
- rootnode = ph._scenario_tree._stages[0]._tree_nodes[0]
- ReferenceInstance = ph._instances[rootnode._scenarios[0]._name] # arbitrary scenario
- CC = getattr(ReferenceInstance,CCname)
-
- SumSoFar = {}
- for cc in CC: SumSoFar[cc] = 0.0
- node_probability = 0.0
- stage = ph._scenario_tree._stages[CCStageNum-1]
- for tree_node in stage._tree_nodes:
- for scenario in tree_node._scenarios:
- instance = ph._instances[scenario._name]
- node_probability += scenario._probability
- for cc in CC:
- deltaValue = getattr(instance,IndVarName)[cc].value
- SumSoFar[cc] += scenario._probability * deltaValue
- for cc in CC:
- SumSoFar[cc] = SumSoFar[cc] / node_probability
- return SumSoFar
-
-def GetPenaltyCost(ph, IndVarName, multName):
-# E[lambda*delta] contribution to cost
- rootnode = ph._scenario_tree._stages[0]._tree_nodes[0]
- ReferenceInstance = ph._instances[rootnode._scenarios[0]._name] # arbitrary scenario
- CC = ReferenceInstance.ChanceConstraints
- cost = 0.
- for scenario in rootnode._scenarios:
- instance = ph._instances[scenario._name]
- delta = getattr(instance, IndVarName)
- mult = getattr(instance,multName)
- for index in delta:
- cost = cost + scenario._probability*delta[index].value*mult[index].value
- return cost
diff --git a/pyomo/pysp/ph.py b/pyomo/pysp/ph.py
deleted file mode 100644
index 92ed2662ec1..00000000000
--- a/pyomo/pysp/ph.py
+++ /dev/null
@@ -1,4966 +0,0 @@
-# ___________________________________________________________________________
-#
-# Pyomo: Python Optimization Modeling Objects
-# Copyright 2017 National Technology and Engineering Solutions of Sandia, LLC
-# Under the terms of Contract DE-NA0003525 with National Technology and
-# Engineering Solutions of Sandia, LLC, the U.S. Government retains certain
-# rights in this software.
-# This software is distributed under the 3-clause BSD License.
-# ___________________________________________________________________________
-
-import gc
-import logging
-import sys
-import time
-import inspect
-import uuid
-from math import fabs, sqrt
-
-from pyomo.common.errors import ApplicationError
-
-from pyomo.common.dependencies import attempt_import
-from pyomo.core import Var, Set, BooleanSet, IntegerSet, Suffix, value, minimize, maximize
-from pyomo.opt import (UndefinedData,
- undefined,
- SolverFactory,
- SolverStatus,
- TerminationCondition,
- SolutionStatus)
-
-import pyomo.pysp.convergence
-from pyomo.pysp.phboundbase import (_PHBoundBase,
- ExtractInternalNodeSolutionsforInner)
-from pyomo.pysp.dualphmodel import DualPHModel
-from pyomo.pysp.ef import create_ef_instance
-from pyomo.pysp.generators import \
- scenario_tree_node_variables_generator_noinstances
-from pyomo.pysp.phobjective import (add_ph_objective_weight_terms,
- add_ph_objective_proximal_terms,
- form_linearized_objective_constraints)
-from pyomo.pysp.phutils import (create_block_symbol_maps,
- reset_nonconverged_variables,
- reset_stage_cost_variables,
- reset_linearization_variables,
- indexToString,
- create_ph_parameters,
- create_nodal_ph_parameters,
- preprocess_scenario_instance,
- preprocess_bundle_instance,
- find_active_objective,
- preprocess_block_objectives,
- preprocess_block_constraints,
- extract_solve_times,
- _OLD_OUTPUT)
-from pyomo.pysp.util.misc import load_external_module
-from pyomo.pysp import phsolverserverutils
-
-from pyomo.opt.parallel.local import SolverManager_Serial
-
-from six import iterkeys, itervalues, iteritems
-from six.moves import xrange
-
-guppy, guppy_available = attempt_import('guppy')
-
-
-logger = logging.getLogger('pyomo.pysp')
-
-# PH iteratively solves scenario sub-problems, so we don't want to
-# waste a ton of time preprocessing unless some specific aspects of
-# the scenario instances change. for example, a variable was fixed,
-# the objective was modified, or constraints were added. and if
-# instances do change, we only want to do the minimal amount of work
-# to get the instance back to a consistent "preprocessed" state. the
-# following attributes are introduced to help perform the minimal
-# amount of work, and should be augmented in the future if we can
-# somehow do less. these attributes are initially cleared, and are
-# re-set - following preprocessing, if necessary - at the top of the
-# PH iteration loop. this gives a chance for plugins and linearization
-# to get a chance at modification, and to set the appropriate
-# attributes so that the instances can be appropriately preprocessed
-# before solves for the next iteration commence. we assume (by
-# prefixing the attribute name with "instance") that modifications of
-# the indicated type have been uniformly applied to all instances.
-class ProblemStates(object):
-
- #def __getstate__(self):
- # return dict(self.__slots__)
-
- def __init__(self, instances):
-
- # ph objects added to each model
- self.has_ph_objective_weight_terms = dict.fromkeys(instances, False)
- self.has_ph_objective_proximal_terms = dict.fromkeys(instances, False)
- self.ph_objective_proximal_expressions = dict.fromkeys(instances, None)
- self.ph_objective_weight_expressions = dict.fromkeys(instances, None)
- self.ph_constraints = dict((inst_name,[]) for inst_name in instances)
- self.ph_variables = dict((inst_name,[]) for inst_name in instances)
-
- # TODO: Reconcile this new method with the persistent solver plugin
- """
- # keeps track of instances with recently fixed or freed variables
- self.fixed_variables = dict.fromkeys(instances, False)
- self.freed_variables = dict.fromkeys(instances, False)
- """
- # maps between instance name and a list of (variable-name, index) pairs
- self.fixed_variables = dict((inst_name,[]) for inst_name in instances)
- self.freed_variables = dict((inst_name,[]) for inst_name in instances)
-
- # just coefficients modified
- self.objective_updated = dict.fromkeys(instances, False)
- self.ph_constraints_updated = dict.fromkeys(instances, False)
- self.user_constraints_updated = dict.fromkeys(instances, False)
-
- def clear_update_flags(self,name=None):
- if name is not None:
- self.objective_updated[name] = False
- self.ph_constraints_updated[name] = False
- self.user_constraints_updated[name] = False
- else:
- for key in iterkeys(self.objective_updated):
- self.objective_updated[key] = False
- for key in iterkeys(self.ph_constraints_updated):
- self.ph_constraints_updated[key] = False
- for key in iterkeys(self.user_constraints_updated):
- self.user_constraints_updated[key] = False
-
- # TODO
- """
- def has_fixed_variables(self,name=None):
- if name is None:
- for val in itervalues(self.fixed_variables):
- if val:
- return True
- return False
- else:
- return self.fixed_variables[name]
-
- def has_freed_variables(self,name=None):
- if name is None:
- for val in itervalues(self.freed_variables):
- if val:
- return True
- return False
- else:
- return self.freed_variables[name]
- """
- def has_fixed_variables(self,name=None):
- if name is None:
- for val in itervalues(self.fixed_variables):
- if len(val) > 0:
- return True
- return False
- else:
- return len(self.fixed_variables[name]) > 0
-
- def has_freed_variables(self,name=None):
- if name is None:
- for val in itervalues(self.freed_variables):
- if len(val) > 0:
- return True
- return False
- else:
- return len(self.freed_variables[name]) > 0
-
- def has_ph_constraints(self,name=None):
- if name is None:
- for val in itervalues(self.ph_constraints):
- if len(val) > 0:
- return True
- return False
- else:
- return len(self.ph_constraints[name]) > 0
-
- def has_ph_variables(self,name=None):
- if name is None:
- for val in itervalues(self.ph_variables):
- if len(val) > 0:
- return True
- return False
- else:
- return len(self.ph_variables[name]) > 0
-
- # TODO
- """
- def clear_fixed_variables(self, name=None):
- if name is None:
- for key in self.fixed_variables:
- self.fixed_variables[key] = False
- else:
- if name in self.fixed_variables:
- self.fixed_variables[name] = False
- else:
- raise KeyError("KeyError: %s" % name)
-
- def clear_freed_variables(self, name=None):
- if name is None:
- for key in self.freed_variables:
- self.freed_variables[key] = False
- else:
- if name in self.freed_variables:
- self.freed_variables[name] = False
- else:
- raise KeyError("KeyError: %s" % name)
- """
-
- def clear_fixed_variables(self, name=None):
- if name is None:
- for key in self.fixed_variables:
- self.fixed_variables[key] = []
- else:
- if name in self.fixed_variables:
- self.fixed_variables[name] = []
- else:
- raise KeyError("KeyError: %s" % name)
-
- def clear_freed_variables(self, name=None):
- if name is None:
- for key in self.freed_variables:
- self.freed_variables[key] = []
- else:
- if name in self.freed_variables:
- self.freed_variables[name] = []
- else:
- raise KeyError("KeyError: %s" % name)
-
- def clear_ph_variables(self, name=None):
- if name is None:
- for key in self.ph_variables:
- self.ph_variables[key] = []
- else:
- if name in self.ph_variables:
- self.ph_variables[name] = []
- else:
- raise KeyError("KeyError: %s" % name)
-
- def clear_ph_constraints(self, name=None):
- if name is None:
- for key in self.ph_constraints:
- self.ph_constraints[key] = []
- else:
- if name in self.ph_constraints:
- self.ph_constraints[name] = []
- else:
- raise KeyError("KeyError: %s" % name)
-
-
-def assign_aggregate_data(ph,
- scenario_tree,
- scenario_tree_object,
- aggregate_data):
- ph._aggregate_user_data = aggregate_data
-
-class _PHBase(object):
-
- def __init__(self):
-
- # PH solver information / objects.
-
- # maps object names to solver plugins for the corresponding object (scenario or bundle)
- # note that this dictionary will only be populated when running in serial.
- self._solver_map = {}
-
- # the type and I/O method for all solver plugins contained in the map
- # above - we assume, for now, homogeneity.
- self._solver_type = "cplex"
- self._solver_io = None
-
- self._comparison_tolerance_for_fixed_vars = 1e-5
-
- self._problem_states = None
- self._modules_imported = {}
-
- # a flag indicating whether we preprocess constraints in our
- # scenario instances when variables are fixed/freed, or
- # whether we simply write the bounds while presenting the
- # instances to solvers.
- self._write_fixed_variables = True
-
- # For the users to modify as they please in the aggregate
- # callback as long as the data placed on it can be serialized
- # by Pyro
- self._aggregate_user_data = {}
-
- # maps scenario name to the corresponding model instance
- self._instances = {}
-
- # the scenario instance factory, which was used to construct
- # the above instances.
- self._scenario_instance_factory = None
-
- # for various reasons (mainly hacks at this point), it's good
- # to know whether we're minimizing or maximizing.
- self._objective_sense = None
- self._objective_sense_option = None
-
- # maps scenario name (or bundle name, in the case of bundling)
- # to the last gap reported by the solver when solving the
- # associated instance. if there is no entry, then there has
- # been no solve.
- # NOTE: This dictionary could expand significantly, as we
- # identify additional solve-related information
- # associated with an instance.
- self._gaps = {}
- # ditto from above
- self._solution_status = {}
-
- # maps scenario name (or bundle name, in the case of bundling)
- # to the last wall clock solve time (as reported by the solver
- # plugin) for the corresponding sub-problem.
- self._solve_times = {}
-
- # similar to the above, but the time consumed by the invocation
- # of the solve() method on whatever solver plugin was used.
- self._pyomo_solve_times = {}
-
- # defines the stochastic program structure and links in that
- # structure with the scenario instances (e.g., _VarData
- # objects).
- self._scenario_tree = None
-
- # there are situations in which it is valuable to snapshot /
- # store the solutions associated with the scenario
- # instances. for example, when one wants to use a warm-start
- # from a particular iteration solve, following a modification
- # and re-solve of the problem instances in a user-defined
- # callback. the following nested dictionary is intended to
- # serve that purpose. The nesting is dependent on whether
- # bundling and or phpyro is in use
- self._cached_solutions = {}
- self._cached_scenariotree_solutions = {}
-
- # results objects from the most recent round of solves These
- # may hold more information than just variable values and so
- # can be useful to hold on to until the next round of solves
- # (keys are bundle name or scenario name)
- self._solver_results = {}
-
- # PH reporting parameters
-
- # do I flood the screen with status output?
- self._verbose = False
- self._output_times = False
-
- # PH configuration parameters
-
- # a default, global value for rho. 0 indicates unassigned.
- self._rho = 0.0
-
- # do I retain quadratic objective terms associated with binary
- # variables? in general, there is no good reason to not
- # linearize, but just in case, we introduced the option.
- self._retain_quadratic_binary_terms = False
-
- # do I linearize the quadratic penalty term for continuous
- # variables via a piecewise linear approximation? the default
- # should always be 0 (off), as the user should be aware when
- # they are forcing an approximation.
- self._linearize_nonbinary_penalty_terms = 0
-
- # the breakpoint distribution strategy employed when
- # linearizing. 0 implies uniform distribution between the
- # variable lower and upper bounds.
- self._breakpoint_strategy = 0
-
- # PH default tolerances - for use in fixing and testing
- # equality across scenarios, and other stuff.
- self._integer_tolerance = 0.00001
-
- # when bundling, we cache the extensive form binding instances
- # to save re-generation costs.
- # maps bundle name in a scenario tree to the binding instance
- self._bundle_binding_instance_map = {}
- # maps bundle name in a scenario tree to a name->instance map
- # of the scenario instances in the bundle
- self._bundle_scenario_instance_map = {}
- # maps scenario name to bundle name
- self._scenario_to_bundle_map = {}
-
- # reported inner and outer bounds for PH. PH does not
- # set these, except for the inner bound on termination.
- # if plugins set them, PH will report them.
- # these probably should be the "best" values, because
- # they are used for convergence criterion, among other
- # things.
- self._best_reported_inner_bound = None
- self._best_reported_outer_bound = None
-
- # a simple boolean flag indicating whether or not this ph
- # instance has received an initialization method and has
- # successfully processed it.
- self._initialized = False
-
- @property
- def scenario_tree(self):
- return self._scenario_tree
-
- @property
- def initialized(self):
- return self._initialized
-
- def initialize(self, *args, **kwds):
- raise NotImplementedError("_PHBase::initialize() is an abstract method")
-
- #
- # Creates a deterministic symbol map for variables on an
- # instance. This allows convenient transmission of information to
- # and from PHSolverServers and makes it easy to save solutions
- # using a pickleable dictionary of symbols -> values
- #
- def _create_instance_symbol_maps(self, ctypes):
-
- for instance in itervalues(self._instances):
-
- create_block_symbol_maps(instance, ctypes)
-
- def _setup_scenario_instances(self):
-
- self._problem_states = \
- ProblemStates([scen._name for scen in \
- self._scenario_tree._scenarios])
-
- for scenario in self._scenario_tree._scenarios:
-
- scenario_instance = scenario._instance
-
- assert scenario_instance.name == scenario.name
-
- if scenario_instance is None:
- raise RuntimeError("ScenarioTree has not been linked "
- "with Pyomo model instances")
-
- self._problem_states.objective_updated[scenario._name] = True
- self._problem_states.user_constraints_updated[scenario._name] = True
-
- # IMPT: disable standard representation construction
- # for solvers. this is a hack, in that we
- # need to address encodings and the like at a
- # more general level.
- # We will take care of these manually within
- # _preprocess_scenario_instance This will also
- # prevent regenerating the standard_repn when forming
- # the bundle_ef's
-
- for block in scenario_instance.block_data_objects(active=True):
- block._gen_obj_repn = False
- block._gen_con_repn = False
-
- self._instances[scenario._name] = scenario_instance
-
- def solve(self, *args, **kwds):
- raise NotImplementedError("_PHBase::solve() is an abstract method")
-
- # restores the variable values for all of the scenario instances
- # that I maintain. restoration proceeds from the
- # self._cached_solutions map. if this is not populated (via
- # setting cache_results=True when calling solve_subproblems), then
- # an exception will be thrown.
-
- def restoreCachedSolutions(self, cache_id, release_cache):
-
- cache = self._cached_scenariotree_solutions.get(cache_id,None)
- if cache is None:
- raise RuntimeError("PH scenario tree solution cache "
- "with id %s does not exist"
- % (cache_id))
- if release_cache and (cache is not None):
- del self._cached_scenariotree_solutions[cache_id]
-
- for scenario in self._scenario_tree._scenarios:
-
- scenario.set_solution(cache[scenario._name])
-
- if (not len(self._bundle_binding_instance_map)) and \
- (not len(self._instances)):
- return
-
- cache = self._cached_solutions.get(cache_id,None)
- if cache is None:
- raise RuntimeError("PH scenario tree solution cache "
- "with id %s does not exist"
- % (cache_id))
-
- if release_cache and (cache is not None):
- del self._cached_solutions[cache_id]
-
- if self._scenario_tree.contains_bundles():
-
- for bundle_name, bundle_ef_instance in iteritems(self._bundle_binding_instance_map):
-
- solver_results, fixed_results = cache[bundle_name]
-
- for scenario_name, scenario_fixed_results in iteritems(fixed_results):
- scenario_instance = self._instances[scenario_name]
- bySymbol = scenario_instance._PHInstanceSymbolMaps[Var].bySymbol
- for instance_id, varvalue, stale_flag in scenario_fixed_results:
- vardata = bySymbol[instance_id]
- vardata.fix(varvalue)
-
- if solver_results is not None:
- (results, results_sm) = solver_results
- bundle_ef_instance.solutions.add_symbol_map(results_sm)
- bundle_ef_instance.solutions.load_from(
- results,
- allow_consistent_values_for_fixed_vars=self._write_fixed_variables,
- comparison_tolerance_for_fixed_vars=self._comparison_tolerance_for_fixed_vars)
-
- for scenario_name, scenario_fixed_results in iteritems(fixed_results):
- scenario_instance = self._instances[scenario_name]
- bySymbol = scenario_instance._PHInstanceSymbolMaps[Var].bySymbol
- for instance_id, varvalue, stale_flag in scenario_fixed_results:
- vardata = bySymbol[instance_id]
- assert vardata.fixed
- vardata.stale = stale_flag
-
- else:
- for scenario_name, scenario_instance in iteritems(self._instances):
-
- solver_results, fixed_results = cache[scenario_name]
-
- bySymbol = scenario_instance._PHInstanceSymbolMaps[Var].bySymbol
- for instance_id, varvalue, stale_flag in fixed_results:
- vardata = bySymbol[instance_id]
- vardata.fix(varvalue)
-
- if solver_results is not None:
- (results, results_sm) = solver_results
- scenario_instance.solutions.add_symbol_map(results_sm)
- scenario_instance.solutions.load_from(
- results,
- allow_consistent_values_for_fixed_vars=self._write_fixed_variables,
- comparison_tolerance_for_fixed_vars=self._comparison_tolerance_for_fixed_vars)
-
- bySymbol = scenario_instance._PHInstanceSymbolMaps[Var].bySymbol
- for instance_id, varvalue, stale_flag in fixed_results:
- vardata = bySymbol[instance_id]
- assert vardata.fixed
- vardata.stale = stale_flag
-
- def cacheSolutions(self, cache_id):
-
- for scenario in self._scenario_tree._scenarios:
- self._cached_scenariotree_solutions.\
- setdefault(cache_id,{})[scenario._name] = \
- scenario.copy_solution()
-
- if self._scenario_tree.contains_bundles():
-
- for bundle_name, scenario_map in iteritems(self._bundle_scenario_instance_map):
-
- fixed_results = {}
- for scenario_name, scenario_instance in iteritems(scenario_map):
-
- fixed_results[scenario_name] = \
- tuple((instance_id, vardata.value, vardata.stale) \
- for instance_id, vardata in \
- iteritems(scenario_instance.\
- _PHInstanceSymbolMaps[Var].\
- bySymbol) \
- if vardata.fixed)
-
- self._cached_solutions.\
- setdefault(cache_id,{})[bundle_name] = \
- (self._solver_results.get(bundle_name),
- fixed_results)
-
- else:
-
- for scenario_name, scenario_instance in iteritems(self._instances):
-
- fixed_results = \
- tuple((instance_id, vardata.value, vardata.stale) \
- for instance_id, vardata in \
- iteritems(scenario_instance.\
- _PHInstanceSymbolMaps[Var].bySymbol) \
- if vardata.fixed)
-
- self._cached_solutions.\
- setdefault(cache_id,{})[scenario_name] = \
- (self._solver_results.get(scenario_name),
- fixed_results)
-
- #
- # when bundling, form the extensive form binding instances given
- # the current scenario tree specification. unless bundles are
- # dynamic, only needs to be invoked once, before PH iteration
- # 0. otherwise, needs to be invoked each time the bundle structure
- # is redefined.
- #
- # the resulting binding instances are stored in:
- # self._bundle_extensive_form_map. the scenario instances
- # associated with a bundle are stored in:
- # self._bundle_scenario_instance_map.
- #
-
- def _form_bundle_binding_instances(self):
-
- start_time = time.time()
- if self._verbose:
- print("Forming binding instances for all scenario bundles")
-
- self._bundle_binding_instance_map.clear()
- self._bundle_scenario_instance_map.clear()
-
- if not self._scenario_tree.contains_bundles():
- raise RuntimeError("Failed to create binding instances for scenario "
- "bundles - no scenario bundles are defined!")
-
- for scenario_bundle in self._scenario_tree._scenario_bundles:
-
- if self._verbose:
- print("Creating binding instance for scenario bundle=%s"
- % (scenario_bundle._name))
-
- self._bundle_scenario_instance_map[scenario_bundle._name] = {}
- for scenario_name in scenario_bundle._scenario_names:
- self._bundle_scenario_instance_map[scenario_bundle._name]\
- [scenario_name] = self._instances[scenario_name]
- self._scenario_to_bundle_map[scenario_name] = scenario_bundle._name
-
- # IMPORTANT: The bundle variable IDs must be idential to
- # those in the parent scenario tree - this is
- # critical for storing results, which occurs at
- # the full-scale scenario tree.
-
- # WARNING: THIS IS A PURE HACK - WE REALLY NEED TO CALL
- # THIS WHEN WE CONSTRUCT THE BUNDLE SCENARIO
- # TREE. AS IT STANDS, THIS MUST BE DONE BEFORE
- # CREATING THE EF INSTANCE.
-
- scenario_bundle._scenario_tree.linkInInstances(
- self._instances,
- create_variable_ids=False,
- master_scenario_tree=self._scenario_tree,
- initialize_solution_data=False)
-
- bundle_ef_instance = create_ef_instance(
- scenario_bundle._scenario_tree,
- ef_instance_name = scenario_bundle._name,
- verbose_output = self._verbose)
-
- self._bundle_binding_instance_map[scenario_bundle._name] = \
- bundle_ef_instance
-
- # Adding the ph objective terms to the bundle
- bundle_ef_objective_data = \
- find_active_objective(bundle_ef_instance, safety_checks=True)
-
- # augment the EF objective with the PH penalty terms for
- # each composite scenario.
- for scenario_name in scenario_bundle._scenario_names:
- proximal_expression_component = \
- self._problem_states.\
- ph_objective_proximal_expressions[scenario_name][0]
- weight_expression_component = \
- self._problem_states.\
- ph_objective_weight_expressions[scenario_name][0]
- scenario = self._scenario_tree._scenario_map[scenario_name]
- bundle_ef_objective_data.expr += \
- (scenario._probability / scenario_bundle._probability) * \
- proximal_expression_component
- bundle_ef_objective_data.expr += \
- (scenario._probability / scenario_bundle._probability) * \
- weight_expression_component
-
- var_id_map = {}
- preprocess_block_objectives(bundle_ef_instance,
- idMap=var_id_map)
- preprocess_block_constraints(bundle_ef_instance,
- idMap=var_id_map)
-
- end_time = time.time()
-
- if self._output_times:
- print("Scenario bundle construction time=%.2f seconds"
- % (end_time - start_time))
-
- def _destory_bundle_binding_instances(self):
-
- for scenario in self._scenario_tree._scenarios:
-
- if scenario._instance.parent_block() is not None:
-
- scenario._instance.parent_block().del_component(scenario._instance)
-
-
- self._bundle_binding_instance_map.clear()
- self._bundle_scenario_instance_map.clear()
- self._scenario_to_bundle_map.clear()
-
- def add_ph_objective_proximal_terms(self):
-
- start_time = time.time()
-
- for instance_name, instance in iteritems(self._instances):
-
- if not self._problem_states.\
- has_ph_objective_proximal_terms[instance_name]:
- expression_component, proximal_expression = \
- add_ph_objective_proximal_terms(instance_name,
- instance,
- self._scenario_tree,
- self._linearize_nonbinary_penalty_terms,
- self._retain_quadratic_binary_terms)
-
- self._problem_states.\
- ph_objective_proximal_expressions[instance_name] = \
- (expression_component, proximal_expression)
- self._problem_states.\
- has_ph_objective_proximal_terms[instance_name] = True
- # Flag the preprocessor
- self._problem_states.objective_updated[instance_name] = True
-
- end_time = time.time()
-
- if self._output_times:
- print("Add PH objective proximal terms time=%.2f seconds"
- % (end_time - start_time))
-
- def activate_ph_objective_proximal_terms(self):
-
- for instance_name, instance in iteritems(self._instances):
-
- if not self._problem_states.\
- has_ph_objective_proximal_terms[instance_name]:
- expression_component, expression = \
- self._problem_states.\
- ph_objective_proximal_expressions[instance_name]
- expression_component.set_value(expression)
- self._problem_states.\
- has_ph_objective_proximal_terms[instance_name] = True
- # Flag the preprocessor
- self._problem_states.objective_updated[instance_name] = True
-
- def deactivate_ph_objective_proximal_terms(self):
-
- for instance_name, instance in iteritems(self._instances):
-
- if self._problem_states.\
- has_ph_objective_proximal_terms[instance_name]:
- self._problem_states.\
- ph_objective_proximal_expressions[instance_name][0].set_value(0.0)
- self._problem_states.\
- has_ph_objective_proximal_terms[instance_name] = False
- # Flag the preprocessor
- self._problem_states.objective_updated[instance_name] = True
-
- def add_ph_objective_weight_terms(self):
-
- start_time = time.time()
-
- for instance_name, instance in iteritems(self._instances):
-
- if not self._problem_states.\
- has_ph_objective_weight_terms[instance_name]:
- expression_component, expression = \
- add_ph_objective_weight_terms(instance_name,
- instance,
- self._scenario_tree)
-
- self._problem_states.\
- ph_objective_weight_expressions[instance_name] = \
- (expression_component, expression)
- self._problem_states.\
- has_ph_objective_weight_terms[instance_name] = True
- # Flag the preprocessor
- self._problem_states.objective_updated[instance_name] = True
-
- end_time = time.time()
-
- if self._output_times:
- print("Add PH objective weight terms time=%.2f seconds"
- % (end_time - start_time))
-
- def activate_ph_objective_weight_terms(self):
-
- for instance_name, instance in iteritems(self._instances):
-
- if not self._problem_states.\
- has_ph_objective_weight_terms[instance_name]:
- expression_component, expression = \
- self._problem_states.\
- ph_objective_weight_expressions[instance_name]
- expression_component.set_value(expression)
- self._problem_states.\
- has_ph_objective_weight_terms[instance_name] = True
- # Flag the preprocessor
- self._problem_states.objective_updated[instance_name] = True
-
- def deactivate_ph_objective_weight_terms(self):
-
- for instance_name, instance in iteritems(self._instances):
-
- if self._problem_states.\
- has_ph_objective_weight_terms[instance_name]:
- self._problem_states.\
- ph_objective_weight_expressions[instance_name][0].set_value(0.0)
- self._problem_states.\
- has_ph_objective_weight_terms[instance_name] = False
- # Flag the preprocessor
- self._problem_states.objective_updated[instance_name] = True
-
- def _push_w_to_instances(self):
-
- for scenario in self._scenario_tree._scenarios:
- scenario.push_w_to_instance()
- # The objectives are always updated when the weight params are updated
- # and weight terms exist
- if self._problem_states.has_ph_objective_weight_terms[scenario._name]:
- # Flag the preprocessor
- self._problem_states.objective_updated[scenario._name] = True
-
- def _push_rho_to_instances(self):
-
- for scenario in self._scenario_tree._scenarios:
- scenario.push_rho_to_instance()
- # The objectives are always updated when the rho params are updated
- # and the proximal terms exist
- if self._problem_states.has_ph_objective_proximal_terms[scenario._name]:
- # Flag the preprocessor
- self._problem_states.objective_updated[scenario._name] = True
-
- def _push_xbar_to_instances(self):
-
- for stage in self._scenario_tree._stages[:-1]:
- for tree_node in stage._tree_nodes:
- tree_node.push_xbar_to_instances()
- for scenario in self._scenario_tree._scenarios:
- # The objectives are always updated when the xbar params are updated
- # and proximal terms exist
- if self._problem_states.has_ph_objective_proximal_terms[scenario._name]:
- # Flag the preprocessor
- self._problem_states.objective_updated[scenario._name] = True
-
- def _push_fix_queue_to_instances(self):
-
- for tree_node in self._scenario_tree._tree_nodes:
-
- if len(tree_node._fix_queue):
-
- """
- some_fixed = tree_node.has_fixed_in_queue()
- some_freed = tree_node.has_freed_in_queue()
- # flag the preprocessor
- if some_fixed or some_freed:
- for scenario in tree_node._scenarios:
- scenario_name = scenario._name
- self._problem_states.\
- fixed_variables[scenario_name] |= some_fixed
- self._problem_states.\
- freed_variables[scenario_name] |= some_freed
- """
- for scenario in tree_node._scenarios:
- scenario_name = scenario._name
- for variable_id, (fixed_status, new_value) in \
- iteritems(tree_node._fix_queue):
- variable_name, index = tree_node._variable_ids[variable_id]
- if fixed_status == tree_node.VARIABLE_FREED:
- self._problem_states.\
- freed_variables[scenario_name].\
- append((variable_name, index))
- elif fixed_status == tree_node.VARIABLE_FIXED:
- self._problem_states.\
- fixed_variables[scenario_name].\
- append((variable_name, index))
- tree_node.push_fix_queue_to_instances()
-
- def _push_all_node_fixed_to_instances(self):
-
- for tree_node in self._scenario_tree._tree_nodes:
-
- tree_node.push_all_fixed_to_instances()
-
- # flag the preprocessor
- for scenario in tree_node._scenarios:
-
- for variable_id in tree_node._fixed:
-
- self._problem_states.\
- fixed_variables[scenario._name].\
- append(tree_node._variable_ids[variable_id])
-
- #
- # when linearizing the PH objective, PHQUADPENALTY* variables are
- # introduced. however, the inclusion / presence of these variables
- # in warm-start files leads to infeasible MIP starts. thus, we
- # want to flag their value as None in all scenario instances prior
- # to performing scenario sub-problem solves.
- #
-
- def _reset_instance_linearization_variables(self):
-
- for scenario_name, scenario_instance in iteritems(self._instances):
- if self._problem_states.has_ph_variables(scenario_name):
- reset_linearization_variables(scenario_instance)
-
- def form_ph_linearized_objective_constraints(self):
-
- start_time = time.time()
-
- for instance_name, instance in iteritems(self._instances):
-
- if self._problem_states.has_ph_objective_proximal_terms[instance_name]:
- new_attrs = form_linearized_objective_constraints(
- instance_name,
- instance,
- self._scenario_tree,
- self._linearize_nonbinary_penalty_terms,
- self._breakpoint_strategy,
- self._integer_tolerance)
-
- self._problem_states.ph_constraints[instance_name].extend(new_attrs)
- self._problem_states.ph_constraints_updated[instance_name] = True
-
- end_time = time.time()
-
- if self._output_times:
- print("PH linearized objective constraint formation "
- "time=%.2f seconds" % (end_time - start_time))
-
- #
- # a utility to perform preprocessing on all scenario instances, on
- # an as-needed basis. queries the instance modification indicator
- # attributes on the ProgressiveHedging (self) object. intended to
- # be invoked before each iteration of PH, just before scenario
- # solves.
- #
- # TBD - this method is not named accurately, in that bundles are preprocessed as well.
- # should change the name to reflect.
-
- def _preprocess_scenario_instances(self, ignore_bundles=False, subproblems=None):
-
- start_time = time.time()
-
- if (not self._scenario_tree.contains_bundles()) or ignore_bundles:
-
- for scenario_name, scenario_instance in iteritems(self._instances):
-
- if subproblems != None and scenario_name not in subproblems:
- continue
-
- preprocess_scenario_instance(
- scenario_instance,
- self._problem_states.fixed_variables[scenario_name],
- self._problem_states.freed_variables[scenario_name],
- self._problem_states.user_constraints_updated[scenario_name],
- self._problem_states.ph_constraints_updated[scenario_name],
- self._problem_states.ph_constraints[scenario_name],
- self._problem_states.objective_updated[scenario_name],
- not self._write_fixed_variables,
- self._solver_map[scenario_name])
-
- # We've preprocessed the instance, reset the relevant flags
- self._problem_states.clear_update_flags(scenario_name)
- self._problem_states.clear_fixed_variables(scenario_name)
- self._problem_states.clear_freed_variables(scenario_name)
-
- else:
-
- for scenario_bundle_name, bundle_ef_instance in iteritems(
- self._bundle_binding_instance_map):
-
- if subproblems != None and scenario_bundle_name not in subproblems:
- continue
-
- # Until proven otherwise
- preprocess_bundle_objective = False
- preprocess_bundle_constraints = False
-
- bundle_solver = self._solver_map[scenario_bundle_name]
-
- for scenario_name in self._bundle_scenario_instance_map[scenario_bundle_name]:
-
- scenario_instance = self._instances[scenario_name]
- fixed_vars = self._problem_states.fixed_variables[scenario_name]
- freed_vars = self._problem_states.freed_variables[scenario_name]
- objective_updated = \
- self._problem_states.objective_updated[scenario_name]
-
- if objective_updated:
- preprocess_bundle_objective = True
- # TODO
- """
- if (fixed_vars or freed_vars) and \
- (not self._write_fixed_variables):
- """
- if (len(fixed_vars) > 0 or len(freed_vars) > 0) and \
- (not self._write_fixed_variables):
- preprocess_bundle_objective = True
- preprocess_bundle_constraints = True
-
- preprocess_scenario_instance(
- scenario_instance,
- fixed_vars,
- freed_vars,
- self._problem_states.\
- user_constraints_updated[scenario_name],
- self._problem_states.ph_constraints_updated[scenario_name],
- self._problem_states.ph_constraints[scenario_name],
- objective_updated,
- not self._write_fixed_variables,
- bundle_solver)
-
- # We've preprocessed the instance, reset the relevant flags
- self._problem_states.clear_update_flags(scenario_name)
- self._problem_states.clear_fixed_variables(scenario_name)
- self._problem_states.clear_freed_variables(scenario_name)
-
- # TBD - much of this can be done in preprocess_bundle_instance
- var_id_map = {}
- if preprocess_bundle_objective:
- preprocess_block_objectives(bundle_ef_instance,
- idMap=var_id_map)
- if preprocess_bundle_constraints:
- preprocess_block_constraints(bundle_ef_instance,
- idMap=var_id_map)
-
- if preprocess_bundle_objective:
- preprocess_bundle_instance(bundle_ef_instance,
- bundle_solver)
-
- end_time = time.time()
-
- if self._output_times:
- print("Scenario instance preprocessing time=%.2f seconds"
- % (end_time - start_time))
-
- #
- # create PH weight and xbar vectors, on a per-scenario basis, for
- # each variable that is not in the final stage, i.e., for all
- # variables that are being blended by PH. the parameters are
- # created in the space of each scenario instance, so that they can
- # be directly and automatically incorporated into the
- # (appropriately modified) objective function.
- #
-
- def _create_scenario_ph_parameters(self):
-
- create_nodal_ph_parameters(self._scenario_tree)
-
- for instance_name, instance in iteritems(self._instances):
- new_penalty_variable_names = create_ph_parameters(
- instance,
- self._scenario_tree,
- self._rho,
- self._linearize_nonbinary_penalty_terms)
-
- if new_penalty_variable_names != []:
- self._problem_states.ph_variables[instance_name].\
- extend(new_penalty_variable_names)
-
- #
- # a pair of utilities intended for folks who are brave enough to
- # script rho setting in a python file.
- #
-
- def _rho_check(self, tree_node, variable_id):
-
- if not variable_id in tree_node._standard_variable_ids:
- # Generate a helpful error message
- if variable_id in tree_node._derived_variable_ids:
- variable_name, index = tree_node._variable_ids[variable_id]
- raise ValueError("Cannot access rho for variable '%s' with scenario "
- "tree id '%s' on tree node '%s'. The variable is "
- "derived and therefore exclued from nonanticipativity "
- "conditions." % (variable_name+indexToString(index),
- variable_id,
- tree_node._name))
- # search the other tree nodes
- for other_tree_node in self._scenario_tree._tree_nodes:
- if variable_id in other_tree_node._variable_ids:
- variable_name, index = other_tree_node._variable_ids[variable_id]
- raise ValueError("Cannot access rho for variable '%s' with scenario "
- "tree id '%s' on tree node '%s' because the variable "
- "is tracked by a different tree node (%s)."
- % (variable_name+indexToString(index),
- variable_id,
- tree_node._name,
- other_tree_node._name))
- raise ValueError("Invalid scenario tree id '%s' for accessing rho. "
- "No tree nodes were found with an associated "
- "instance variable having that id." % (variable_id))
-
-
- # NOTE: rho_expression can be Pyomo expression, or a constant
- # float/int. either way, the underlying value will be
- # extracted via a value() call...
- def setRhoAllScenarios(self, tree_node, variable_id, rho_expression):
-
- self._rho_check(tree_node, variable_id)
-
- new_rho_value = value(rho_expression)
-
- for scenario in tree_node._scenarios:
-
- scenario._rho[tree_node._name][variable_id] = new_rho_value
-
- def setRhoOneScenario(self, tree_node, scenario, variable_id, rho_expression):
-
- self._rho_check(tree_node, variable_id)
-
- scenario._rho[tree_node._name][variable_id] = value(rho_expression)
-
- def getRhoOneScenario(self, tree_node, scenario, variable_id):
-
- self._rho_check(tree_node, variable_id)
-
- return scenario._rho[tree_node._name][variable_id]
-
- #
- # keep track of the best bounds reported - dlw May 2016 - temporary
- #
- def _update_reported_bounds(self, inner = None, outer = None):
- # see if a reported bound is good enough to be the best
- # (bear in mind that for the outer bound the worse the better)
- def isbetter(a,b):
- if self._objective_sense == minimize:
- return ab
-
- if inner is not None:
- if self._best_reported_inner_bound is None \
- or isbetter(inner, self._best_reported_inner_bound):
- self._best_reported_inner_bound = inner
- if outer is not None:
- if self._best_reported_outer_bound is None \
- or isbetter(self._best_reported_outer_bound, outer):
- self._best_reported_outer_bound = outer
-
- #
- # a utility intended for folks who are brave enough to script
- # variable bounds setting in a python file.
- #
- def setVariableBoundsAllScenarios(self,
- tree_node,
- variable_id,
- lower_bound,
- upper_bound):
-
- for scenario in tree_node._scenarios:
- vardata = scenario._instance.\
- _ScenarioTreeSymbolMap.getObject(variable_id)
- vardata.setlb(lower_bound)
- vardata.setub(upper_bound)
-
- def setVariableBoundsOneScenario(self,
- tree_node,
- scenario,
- variable_id,
- lower_bound,
- upper_bound):
-
- vardata = scenario._instance._ScenarioTreeSymbolMap.getObject(variable_id)
- vardata.setlb(lower_bound)
- vardata.setub(upper_bound)
-
- #
- # a utility intended for folks who are brave enough to script
- # variable bounds setting in a python file. same functionality as
- # above, but applied to all indices of the variable, in all
- # scenarios.
- #
- """
- def setVariableBoundsAllIndicesAllScenarios(self, variable_name, lower_bound, upper_bound):
-
- if isinstance(lower_bound, float) is False:
- raise ValueError("Lower bound supplied to PH method setVariableBoundsAllIndiciesAllScenarios for variable="+variable_name+" must be a constant; value supplied="+str(lower_bound))
-
- if isinstance(upper_bound, float) is False:
- raise ValueError("Upper bound supplied to PH method setVariableBoundsAllIndicesAllScenarios for variable="+variable_name+" must be a constant; value supplied="+str(upper_bound))
-
- for instance_name, instance in iteritems(self._instances):
-
- variable = instance.find_component(variable_name)
- for index in variable:
- variable[index].setlb(lower_bound)
- variable[index].setub(upper_bound)
- """
-
-class ProgressiveHedging(_PHBase):
-
- def get_scenario_tree(self):
- return self._scenario_tree
-
- def get_objective_sense(self):
- return self._objective_sense
-
- def is_converged(self):
- return (self._or_convergers and any(converger.isConverged(self) for converger in self._convergers)) or \
- (not self._or_convergers and all(converger.isConverged(self) for converger in self._convergers))
-
- def set_dual_mode(self):
-
- self._dual_mode = True
-
- def primal_mode(self):
-
- self._set_dual_mode = False
-
- def save_solution(self, label="ph"):
-
- if self._solution_plugins is not None:
-
- for plugin in self._solution_plugins:
-
- plugin.write(self._scenario_tree, label)
-
- def release_components(self):
-
- if not self._initialized:
-
- return
-
- if isinstance(self._solver_manager,
- pyomo.solvers.plugins.smanager.\
- phpyro.SolverManager_PHPyro):
-
- phsolverserverutils.release_phsolverservers(self)
-
- self._solver_map.clear()
-
- # cleanup the scenario instances for post-processing -
- # ideally, we want to leave them in their original state,
- # minus all the PH-specific stuff. we don't do all cleanup
- # (leaving things like rhos, etc), but we do clean up
- # constraints, as that really hoses up the ef writer.
- self._cleanup_scenario_instances()
- self._clear_bundle_instances()
-
- self._initialized = False
-
- def activate_ph_objective_proximal_terms(self):
-
- start_time = time.time()
-
- _PHBase.activate_ph_objective_proximal_terms(self)
-
- if isinstance(self._solver_manager,
- pyomo.solvers.plugins.smanager.\
- phpyro.SolverManager_PHPyro):
-
- phsolverserverutils.activate_ph_objective_proximal_terms(self)
-
- end_time = time.time()
-
- if self._output_times:
- print("Activate PH objective proximal terms time=%.2f seconds"
- % (end_time - start_time))
-
- def deactivate_ph_objective_proximal_terms(self):
-
- start_time = time.time()
-
- _PHBase.deactivate_ph_objective_proximal_terms(self)
-
- if isinstance(self._solver_manager,
- pyomo.solvers.plugins.smanager.\
- phpyro.SolverManager_PHPyro):
-
- phsolverserverutils.deactivate_ph_objective_proximal_terms(self)
-
- end_time = time.time()
-
- if self._output_times:
- print("Deactivate PH objective proximal terms time=%.2f seconds"
- % (end_time - start_time))
-
- def activate_ph_objective_weight_terms(self):
-
- start_time = time.time()
-
- _PHBase.activate_ph_objective_weight_terms(self)
-
- if isinstance(self._solver_manager,
- pyomo.solvers.plugins.smanager.\
- phpyro.SolverManager_PHPyro):
-
- phsolverserverutils.activate_ph_objective_weight_terms(self)
-
- end_time = time.time()
-
- if self._output_times:
- print("Activate PH objective weight terms time=%.2f seconds"
- % (end_time - start_time))
-
- def deactivate_ph_objective_weight_terms(self):
-
- start_time = time.time()
-
- _PHBase.deactivate_ph_objective_weight_terms(self)
-
- if isinstance(self._solver_manager,
- pyomo.solvers.plugins.smanager.\
- phpyro.SolverManager_PHPyro):
-
- phsolverserverutils.deactivate_ph_objective_weight_terms(self)
-
- end_time = time.time()
-
- if self._output_times:
- print("Deactivate PH objective weight terms time=%.2f "
- "seconds" % (end_time - start_time))
-
- def report_bundle_objectives(self):
-
- assert self._scenario_tree.contains_bundles()
-
- max_name_len = max(len(str(_scenario_bundle._name)) \
- for _scenario_bundle in \
- self._scenario_tree._scenario_bundles)
- max_name_len = max((len("Scenario Bundle"), max_name_len))
- line = ((" %-"+str(max_name_len)+"s ") % "Scenario Bundle")
- line += ("%-20s %-20s %-20s %20s"
- % ("Cost",
- "Objective",
- "Objective Gap",
- "Solution Status"))
- if self._output_times:
- line += (" %10s" % ("Solve Time"))
- line += (" %10s" % ("Pyomo Solve Time"))
- print(line)
- for scenario_bundle in self._scenario_tree._scenario_bundles:
-
- bundle_gap = self._gaps[scenario_bundle._name]
- bundle_status = self._solution_status[scenario_bundle._name]
- bundle_objective_value = 0.0
- bundle_cost_value = 0.0
- for scenario in scenario_bundle._scenario_tree._scenarios:
- # The objective must be taken from the scenario
- # objects on PH full scenario tree
- scenario_objective = \
- self._scenario_tree.get_scenario(scenario._name)._objective
- scenario_cost = \
- self._scenario_tree.get_scenario(scenario._name)._cost
- # And we need to make sure to use the
- # probabilities assigned to scenarios in the
- # compressed bundle scenario tree
- bundle_objective_value += scenario_objective * \
- scenario._probability
- bundle_cost_value += scenario_cost * \
- scenario._probability
-
- line = (" %-"+str(max_name_len)+"s ")
- line += ("%-20.4f %-20.4f")
- if (not isinstance(bundle_gap, UndefinedData)) and \
- (bundle_gap is not None):
- line += (" %-20.4f")
- else:
- bundle_gap = "None Reported"
- line += (" %-20s")
- line += (" %20s")
- line %= (scenario_bundle._name,
- bundle_cost_value,
- bundle_objective_value,
- bundle_gap,
- bundle_status)
- if self._output_times:
- solve_time = self._solve_times.get(scenario_bundle._name)
- if (not isinstance(solve_time, UndefinedData)) and \
- (solve_time is not None):
- line += (" %-10.2f"
- % (solve_time))
- else:
- line += (" %-10s" % "None Reported")
-
- pyomo_solve_time = self._pyomo_solve_times.get(scenario_bundle._name)
- if (not isinstance(pyomo_solve_time, UndefinedData)) and \
- (pyomo_solve_time is not None):
- line += (" %-10.2f"
- % (pyomo_solve_time))
- else:
- line += (" %-10s" % "None Reported")
- print(line)
- print("")
-
- def report_scenario_objectives(self):
-
- max_name_len = max(len(str(_scenario._name)) \
- for _scenario in self._scenario_tree._scenarios)
- max_name_len = max((len("Scenario"), max_name_len))
- line = ((" %-"+str(max_name_len)+"s ") % "Scenario")
- line += ("%-20s %-20s %-20s %20s"
- % ("Cost",
- "Objective",
- "Objective Gap",
- "Solution Status"))
- if self._output_times:
- line += (" %10s" % ("Solve Time"))
- line += (" %10s" % ("Pyomo Solve Time"))
- print(line)
- for scenario in self._scenario_tree._scenarios:
- objective_value = scenario._objective
- scenario_cost = scenario._cost
- gap = self._gaps.get(scenario._name)
- status = self._solution_status.get(scenario._name, "None Reported")
- line = (" %-"+str(max_name_len)+"s ")
- line += ("%-20.4f %-20.4f")
- if (not isinstance(gap, UndefinedData)) and (gap is not None):
- line += (" %-20.4f")
- else:
- gap = "None Reported"
- line += (" %-20s")
- line += (" %20s")
- line %= (scenario._name,
- scenario_cost,
- objective_value,
- gap,
- status)
- if self._output_times:
- solve_time = self._solve_times.get(scenario._name)
- if (not isinstance(solve_time, UndefinedData)) and \
- (solve_time is not None):
- line += (" %-10.2f"
- % (solve_time))
- else:
- line += (" %-10s" % "None Reported")
-
- pyomo_solve_time = self._pyomo_solve_times.get(scenario._name)
- if (not isinstance(pyomo_solve_time, UndefinedData)) and \
- (pyomo_solve_time is not None):
- line += (" %-10.2f"
- % (pyomo_solve_time))
- else:
- line += (" %-10s" % "None Reported")
- print(line)
- print("")
-
- def _push_w_to_instances(self):
-
- if isinstance(self._solver_manager,
- pyomo.solvers.plugins.smanager.\
- phpyro.SolverManager_PHPyro):
-
- phsolverserverutils.transmit_weights(self)
-
- else:
-
- _PHBase._push_w_to_instances(self)
-
- def _push_rho_to_instances(self):
-
- if isinstance(self._solver_manager,
- pyomo.solvers.plugins.smanager.\
- phpyro.SolverManager_PHPyro):
-
- phsolverserverutils.transmit_rhos(self)
-
- else:
-
- _PHBase._push_rho_to_instances(self)
-
- def _push_xbar_to_instances(self):
-
- if isinstance(self._solver_manager,
- pyomo.solvers.plugins.smanager.\
- phpyro.SolverManager_PHPyro):
-
- phsolverserverutils.transmit_xbars(self)
-
- else:
-
- _PHBase._push_xbar_to_instances(self)
-
- def _push_fix_queue_to_instances(self):
-
- if isinstance(self._solver_manager,
- pyomo.solvers.plugins.smanager.\
- phpyro.SolverManager_PHPyro):
-
- phsolverserverutils.transmit_fixed_variables(self)
- for tree_node in self._scenario_tree._tree_nodes:
- # Note: If the scenario tree doesn't not have
- # instances linked in this method will simply
- # empty the queue into the tree node fixed list
- # without trying to fix instance variables
- tree_node.push_fix_queue_to_instances()
- else:
- _PHBase._push_fix_queue_to_instances(self)
-
- #
- # restores the current solutions of all scenario instances that I maintain.
- # Additionally, if running with PHPyro, asks solver servers to do the same.
- #
-
- def restoreCachedSolutions(self, cache_id, release_cache=False):
-
- if isinstance(self._solver_manager,
- pyomo.solvers.plugins.smanager.\
- phpyro.SolverManager_PHPyro):
-
- phsolverserverutils.restore_cached_scenario_solutions(self, cache_id, release_cache)
-
- _PHBase.restoreCachedSolutions(self, cache_id, release_cache)
-
- def cacheSolutions(self, cache_id=None):
-
- if cache_id is None:
- cache_id = str(uuid.uuid4())
- while cache_id in self._cached_scenariotree_solutions:
- cache_id = str(uuid.uuid4())
-
- if isinstance(self._solver_manager,
- pyomo.solvers.plugins.smanager.\
- phpyro.SolverManager_PHPyro):
-
- phsolverserverutils.cache_scenario_solutions(self, cache_id)
-
- _PHBase.cacheSolutions(self, cache_id)
-
- return cache_id
-
- #
- # a simple utility to count the number of continuous and discrete
- # variables in a set of instances. this is based on the number of
- # active, non-stale variables in the instances. returns a pair -
- # num-discrete, num-continuous. IMPT: This should obviously only
- # be called *after* the scenario instances have been solved -
- # otherwise, everything is stale - and you'll get back (0,0).
- #
- # This method is assumed to be called ONCE immediately following
- # the iteration 0 solves. Otherwise, the fixing/freeing of
- # variables may interact with the stale flag in different and
- # unexpected ways depending on what option we choose for treating
- # fixed variable preprocessing.
- #
-
- def compute_blended_variable_counts(self):
-
- assert self._called_compute_blended_variable_counts is False
- self._called_compute_blended_variable_counts = True
-
- num_continuous_vars = 0
- num_discrete_vars = 0
-
- for stage, tree_node, variable_id, var_values, is_fixed, is_stale \
- in scenario_tree_node_variables_generator_noinstances(
- self._scenario_tree,
- includeDerivedVariables=False,
- includeLastStage=False):
-
- if not is_stale:
- if tree_node.is_variable_discrete(variable_id):
- num_discrete_vars = num_discrete_vars + 1
- else:
- num_continuous_vars = num_continuous_vars + 1
-
- return (num_discrete_vars, num_continuous_vars)
-
- #
- # ditto above, but count the number of fixed discrete and
- # continuous variables.
- #
-
- def compute_fixed_variable_counts(self):
-
- num_fixed_continuous_vars = 0
- num_fixed_discrete_vars = 0
-
- for stage, tree_node, variable_id, var_values, is_fixed, is_stale \
- in scenario_tree_node_variables_generator_noinstances(
- self._scenario_tree,
- includeDerivedVariables=False,
- includeLastStage=False):
-
- if is_fixed:
- if tree_node.is_variable_discrete(variable_id):
- num_fixed_discrete_vars = num_fixed_discrete_vars + 1
- else:
- num_fixed_continuous_vars = num_fixed_continuous_vars + 1
-
- return (num_fixed_discrete_vars, num_fixed_continuous_vars)
-
- #
- # when the quadratic penalty terms are approximated via piecewise
- # linear segments, we end up (necessarily) "littering" the
- # scenario instances with extra constraints. these need to and
- # should be cleaned up after PH, for purposes of post-PH
- # manipulation, e.g., writing the extensive form. equally
- # importantly, we need to re-establish the original instance
- # objectives.
- #
-
- def _cleanup_scenario_instances(self):
-
- for instance_name, instance in iteritems(self._instances):
-
- # Eliminate references to ph constraints
- for constraint_name in self._problem_states.ph_constraints[instance_name]:
- instance.del_component(constraint_name)
- self._problem_states.clear_ph_constraints(instance_name)
-
- # Eliminate references to ph variables
- for variable_name in self._problem_states.ph_variables[instance_name]:
- instance.del_component(variable_name)
- self._problem_states.clear_ph_variables(instance_name)
-
- for block in instance.block_data_objects(active=True):
- if hasattr(instance, "_gen_obj_repn"):
- del instance._gen_obj_repn
- if hasattr(instance, "_gen_con_repn"):
- del instance._gen_con_repn
-
- if hasattr(instance, "_PHInstanceSymbolMaps"):
- del instance._PHInstanceSymbolMaps
-
- #
- # a simple utility to extract the first-stage cost statistics, e.g., min, average, and max.
- #
-
- def _extract_first_stage_cost_statistics(self):
-
- maximum_value = 0.0
- minimum_value = 0.0
- sum_values = 0.0
- num_values = 0
- first_time = True
-
- root_node = self._scenario_tree.findRootNode()
- first_stage_name = root_node._stage._name
- for scenario in root_node._scenarios:
- this_value = scenario._stage_costs[first_stage_name]
- # None means not reported by the solver.
- if this_value is not None:
- num_values += 1
- sum_values += this_value
- if first_time:
- first_time = False
- maximum_value = this_value
- minimum_value = this_value
- else:
- if this_value > maximum_value:
- maximum_value = this_value
- if this_value < minimum_value:
- minimum_value = this_value
-
- if num_values > 0:
- sum_values = sum_values / num_values
-
- return minimum_value, sum_values, maximum_value
-
- def compute_and_report_inner_bound_using_xhat(self):
-
- # we're using the _PHBoundBase class as a utility - it will only
- # live for the duration of this function invocation. specifically,
- # we'll not be using any of the bound history methods.
- ph_bound_base = _PHBoundBase()
-
- # before messing with anything, cache the current PH solution.
- ph_bound_base.CachePHSolution(self)
- ph_bound_base.DeactivatePHObjectiveProximalTerms(self)
- ph_bound_base.DeactivatePHObjectiveWeightTerms(self)
-
- # no need to mess with PH weight caching, as we don't change them.
-
- # compute the xhat solution.
- xhat_solution = ExtractInternalNodeSolutionsforInner(self)
-
- # fix all scenario instances to the x-hat solution.
- ph_bound_base.FixScenarioTreeVariables(self, xhat_solution)
-
- # evaluate.
- failures = self.solve_subproblems(warmstart=not self._disable_warmstarts,
- exception_on_failure=False)
-
- objective_bound = None
-
- if len(failures):
- print("")
- print("Failed to compute bound at xhat due to one or more solve "
- "failures. Restoring PH to solution at final iteration.")
-
- # restore everything we tweaked if the solves failed.
- ph_bound_base.RestorePH(self)
-
- # TODO: I'm not sure what to output here. This is not really
- # a solution. Will revisit this soon.
- print("Generating scenario tree solution from scenario averages")
- self._scenario_tree.snapshotSolutionFromScenarios()
-
- print("\nScenario tree variable values:\n")
- self.pprint(False, False, True, True, False,
- output_only_statistics=self._report_only_statistics,
- output_only_nonconverged=self._report_only_nonconverged_variables,
- output_no_statistics=True)
-
- xhat_solution = None
-
- print("Scenario tree costs:")
- self._scenario_tree.pprintCosts()
-
- if self._output_scenario_tree_solution:
- print("Scenario tree solution (scenario tree format):")
- self._scenario_tree.pprintSolution()
-
- else:
-
- if isinstance(self._solver_manager,
- pyomo.solvers.plugins.smanager.\
- phpyro.SolverManager_PHPyro):
- phsolverserverutils.collect_full_results(
- self,
- phsolverserverutils.TransmitType.all_stages | \
- phsolverserverutils.TransmitType.blended | \
- phsolverserverutils.TransmitType.derived | \
- phsolverserverutils.TransmitType.fixed)
-
- # unfix
- assert ph_bound_base._stack[-1][0] == \
- ph_bound_base.TREE_VARIABLE_FIXING
- ph_bound_base.RestoreLastPHChange(self)
-
- if self._verbose or self._report_subproblem_objectives:
- print("Successfully completed xhat inner bound solves\n")
-
- if self._scenario_tree.contains_bundles():
- self.report_bundle_objectives()
- self.report_scenario_objectives()
-
- # Compute the inner bound on the objective function.
- objective_bound = 0.0
- for scenario in self._scenario_tree._scenarios:
- objective_bound += (scenario._probability * scenario._objective)
-
- print("\nComputed objective %s bound=%12.4f"
- % (("upper" if self._objective_sense == minimize else "lower"),
- objective_bound))
-
- # This ensures things like node min and max get updated
- # for everything (including derived variables), but xbar
- # does not get touched
- self._scenario_tree.updateNodeStatistics()
-
- # populate the scenario tree solution from the instances -
- # to ensure consistent state across the scenario
- # tree instance and the scenario instances.
- self._scenario_tree.snapshotSolutionFromScenarios()
-
- print("\nX-hat variable values:\n")
- self.pprint(False, False, True, True, False,
- output_only_statistics=self._report_only_statistics,
- output_only_nonconverged=self._report_only_nonconverged_variables,
- output_no_statistics=True)
-
- print("\nX-hat costs:\n")
- self._scenario_tree.pprintCosts()
-
- if self._output_scenario_tree_solution:
- print("\nX-hat solution (scenario tree format):")
- self._scenario_tree.pprintSolution()
-
- return objective_bound, xhat_solution
-
- def __init__(self, options):
-
- _PHBase.__init__(self)
-
- self._options = options
-
- self._solver_manager = None
-
- self._phpyro_worker_jobs_map = {}
- self._phpyro_job_worker_map = {}
- # Helps to gracefully exit PH when a system exit is caught.
- # Holds the set of queued solve action handles that have not
- # been collected yet.
- self._queued_solve_action_handles = set()
-
- # (ph iteration, expected cost)
- self._cost_history = {}
- # (ph iteration with non-anticipative solution, expected cost)
- self._incumbent_cost_history = {}
- # key in the above dictionary of best solution
- self._best_incumbent_key = None
- # location in cache of best incumbent solution
- self._incumbent_cache_id = 'incumbent'
-
- # the terminal solution, if any, associated with PH.
- # None means we never found a good solution.
- self._xhat = None
-
- # Make sure we don't call a method more than once
- self._called_compute_blended_variable_counts = False
- self._total_discrete_vars = None
- self._total_continuous_vars = None
- self._total_fixed_discrete_vars = None
- self._total_fixed_continuous_vars = None
-
- # Augment the code where necessary to run the dual ph algorithm
- self._dual_mode = False
-
- # Define the default configuration for what variable
- # values to include inside interation k phsolverserver
- # results. See phsolverserverutils for more information.
- # The default case sends the minimal set of information
- # needed to update ph objective parameters, which would
- # be nonleaf node ph variables that are not stale.
- # Plugins like phhistoryextension modify this flag to
- # include more information (e.g., leaf stage values)
- # ** NOTE **: If we do not preprocess fixed variables (default behavior),
- # stale=True is equivalent to extraneous variables declared
- # on the model and scenario tree that are never used (fixed or not).
- # When we do preprocess fixed variables, the stale=True applies
- # to the above case as well as fixed variables (which become stale).
- # ...just something to keep in mind
- self._phpyro_variable_transmission_flags = \
- phsolverserverutils.TransmitType.nonleaf_stages | \
- phsolverserverutils.TransmitType.derived | \
- phsolverserverutils.TransmitType.blended
-
- self._ph_warmstart_file = None
- self._ph_warmstart_index = None
- # have the ph parameters XBAR and W been populated with values
- # (if True then the iteration 0 solves are skipped)
- self._ph_warmstarted = False
-
- # use warmstart=True for iteration 0 solves?
- self._iteration_0_has_warmstart = False
-
- self._overrelax = False
- # a default, global value for nu. 0 indicates unassigned.
- self._nu = 0.0
- # filename for the modeler to set rho on a per-variable or
- # per-scenario basis.
- self._rho_setter = None
- # filename for the modeler to collect aggregate scenario data
- self._aggregate_getter = None
- # filename for the modeler to set rho on a per-variable basis,
- # after all scenarios are available.
- self._bound_setter = None
- self._max_iterations = 0
- self._async_mode = False
- self._async_buffer_length = 1
-
- # it may be the case that some plugins think they can do a
- # better job of weight updates than PH - and it might even be
- # true! if so, set this flag to False and this class will not
- # invoke the update_weights() method.
- self._ph_weight_updates_enabled = True
-
- # same as above - some plugins have a definition of xbar that
- # is different from the simple average.
- self._ph_xbar_updates_enabled = True
-
- # PH reporting parameters
- # do I report solutions after each PH iteration?
- self._report_solutions = False
- # do I report PH weights prior to each PH iteration?
- self._report_weights = False
- # do I report PH rhos prior to each PH iteration?
- self._report_rhos_each_iteration = False
- # do I report PH rhos prior to PH iteration 1?
- self._report_rhos_first_iteration = False
- # do I report PH sub-problem solve objective and related statistics?
- self._report_subproblem_objectives = False
- # do I report only variable statistics when outputting
- # solutions and weights?
- self._report_only_statistics = False
- # do I report statistics (via pprint()) for all variables,
- # including those whose values equal 0?
- self._report_for_zero_variable_values = False
- # do I report statistics (via pprint()) for only non-converged
- # variables?
- self._report_only_nonconverged_variables = False
- # when in verbose mode, do I output weights/averages for
- # continuous variables?
- self._output_continuous_variable_stats = True
- self._output_solver_results = False
- self._output_scenario_tree_solution = False
-
- #
- # PH performance diagnostic parameters and related timing
- # parameters.
- #
-
- # indicates disabled.
- self._profile_memory = 0
- self._time_since_last_garbage_collect = time.time()
- # units are seconds
- self._minimum_garbage_collection_interval = 5
-
- # PH run-time variables
- self._current_iteration = 0 # the 'k'
-
- # options for writing solver files / logging / etc.
- self._keep_solver_files = False
- self._symbolic_solver_labels = False
- self._output_solver_log = False
-
- # string to support suffix specification by callbacks
- self._extensions_suffix_list = None
-
- # PH convergence computers/updaters.
- self._convergers = []
-
- self._ph_plugins = []
- self._solution_plugins = []
-
- # PH timing statistics - relative to last invocation.
- self._init_start_time = None # for initialization() method
- self._init_end_time = None
- self._solve_start_time = None # for solve() method
- self._solve_end_time = None
- # seconds, over course of solve()
- self._cumulative_solve_time = 0.0
- # seconds, over course of update_xbars()
- self._cumulative_xbar_time = 0.0
- # seconds, over course of update_weights()
- self._cumulative_weight_time = 0.0
-
- # do I disable warm-start for scenario sub-problem solves
- # during PH iterations >= 1?
- self._disable_warmstarts = False
-
- # PH maintains a mipgap that is applied to each scenario solve
- # that is performed. this attribute can be changed by PH
- # extensions, and the change will be applied on all subsequent
- # solves - until it is modified again. the default is None,
- # indicating unassigned.
- self._mipgap = None
-
- # process the keyword options
- self._ph_warmstart_file = options.ph_warmstart_file
- self._ph_warmstart_index = options.ph_warmstart_index
- self._max_iterations = options.max_iterations
- self._overrelax = options.overrelax
- self._nu = options.nu
- self._async_mode = options.async_mode
- self._async_buffer_length = options.async_buffer_length
- self._rho = options.default_rho
- self._rho_setter_file = options.rho_cfgfile
- self._xhat_method = options.xhat_method
- self._disable_xhat_computation = options.disable_xhat_computation
- self._aggregate_getter_file = options.aggregate_cfgfile
- self._bound_setter_file = options.bounds_cfgfile
- self._solver_type = options.solver_type
- self._solver_io = options.solver_io
-
- # try to convert an option value string into (1) an integer,
- # (2) a float, and (3) a string if the former two don't work.
- # and in that order.
- def convert_value_string_to_number(s):
- try:
- return int(s)
- except ValueError:
- try:
- return float(s)
- except ValueError:
- return s
-
- self._scenario_solver_options = {}
- for this_option_string in options.scenario_solver_options:
- for this_option in this_option_string.split():
- this_option_pieces = this_option.strip().split("=")
- if len(this_option_pieces) == 2:
- option_key = this_option_pieces[0]
- option_value = convert_value_string_to_number(this_option_pieces[1])
- self._scenario_solver_options[option_key] = option_value
- elif len(this_option_pieces) == 1:
- # TBD - verify None mapping makes sense by looking at CPLEX or GUROBI plugin
- self._scenario_solver_options[this_option_pieces[0]] = None
- else:
- raise RuntimeError("Illegally formed scenario solver option=%s detected" % this_option)
-
- self._handshake_with_phpyro = options.handshake_with_phpyro
- self._mipgap = options.scenario_mipgap
- self._write_fixed_variables = options.write_fixed_variables
- self._keep_solver_files = options.keep_solver_files
- self._symbolic_solver_labels = options.symbolic_solver_labels
- self._output_solver_results = options.output_solver_results
- self._output_solver_log = options.output_solver_log
- self._verbose = options.verbose
- self._report_solutions = options.report_solutions
- self._report_weights = options.report_weights
- self._report_subproblem_objectives = options.report_subproblem_objectives
- self._report_rhos_each_iteration = options.report_rhos_each_iteration
- self._report_rhos_first_iteration = options.report_rhos_first_iteration
- self._report_only_statistics = options.report_only_statistics
- self._report_for_zero_variable_values = options.report_for_zero_variable_values
- self._report_only_nonconverged_variables = options.report_only_nonconverged_variables
- self._output_times = options.output_times
- self._output_instance_construction_time = options.output_instance_construction_time
- self._disable_warmstarts = options.disable_warmstarts
- self._retain_quadratic_binary_terms = options.retain_quadratic_binary_terms
- self._linearize_nonbinary_penalty_terms = options.linearize_nonbinary_penalty_terms
- self._breakpoint_strategy = options.breakpoint_strategy
- self._output_scenario_tree_solution = options.output_scenario_tree_solution
- self._phpyro_transmit_leaf_stage_solution = options.phpyro_transmit_leaf_stage_solution
-
- self._or_convergers = options.or_convergers
- self._termdiff_threshold = options.termdiff_threshold
- self._enable_free_discrete_count_convergence = options.enable_free_discrete_count_convergence
- self._free_discrete_count_threshold = options.free_discrete_count_threshold
- self._enable_normalized_termdiff_convergence = options.enable_normalized_termdiff_convergence
- self._enable_termdiff_convergence = options.enable_termdiff_convergence
- self._enable_outer_bound_convergence = options.enable_outer_bound_convergence
- self._enable_inner_outer_convergence = options.enable_inner_outer_convergence
- self._enable_primal_dual_residual_convergence = options.enable_primal_dual_residual_convergence
- self._outer_bound_convergence_threshold = options.outer_bound_convergence_threshold
- self._inner_outer_convergence_threshold = options.inner_outer_convergence_threshold
- self._primal_dual_residual_convergence_threshold = options.primal_dual_residual_convergence_threshold
- self._shutdown_pyro_workers = options.shutdown_pyro_workers
-
- # clutters up the screen, when we really only care about the
- # binaries.
- self._output_continuous_variable_stats = not options.suppress_continuous_variable_output
-
- self._objective_sense = options.objective_sense
- self._objective_sense_option = options.objective_sense
- if hasattr(options, "profile_memory"):
- self._profile_memory = options.profile_memory
- else:
- self._profile_memory = False
-
- if self._phpyro_transmit_leaf_stage_solution:
- self._phpyro_variable_transmission_flags |= \
- phsolverserverutils.TransmitType.all_stages
-
- # Note: Default rho has become a required ph input. At this
- # point it seems more natural to make the "-r" or
- # "--default-rho" command-line option required (as
- # contradictory as that sounds) rather than convert it
- # into a positional argument. Unfortunately, optparse
- # doesn't handle "required options", so the most natural
- # location for checking default rho is here.
- if (self._rho == ""):
- raise ValueError("PH detected an invalid value for default rho: %s. "
- "Use --default-rho=X to specify a positive number X for default rho. "
- "A value of 1.0 is no longer assumed."
- % (self._rho))
- if (self._rho == "None"):
- self._rho = None
- print("***WARNING***: PH is using a default rho value of "
- "None for all blended scenario tree variables. This "
- "will result in error during weight updates following "
- "PH iteration 0 solves unless rho is changed. This "
- "option indicates that a user intends to set rho for "
- "all blended scenario tree variables using a PH extension.")
- else:
- self._rho = float(self._rho)
- if self._rho < 0:
- raise ValueError("PH detected an invalid value for default rho: %s. "
- "Use --default-rho=X to specify a positive number X for default rho. "
- "A value of 1.0 is no longer assumed."
- % (self._rho))
- elif self._rho == 0:
- print("***WARNING***: PH is using a default rho value of "
- "0 for all blended scenario tree variables. This "
- "will effectively disable non-anticipativity "
- "for all variables unless rho is change using a "
- "PH extension")
-
- # cache stuff relating to scenario tree manipulation - the ph
- # solver servers may need it.
- self._scenario_bundle_specification = options.scenario_bundle_specification
- self._create_random_bundles = options.create_random_bundles
- self._scenario_tree_random_seed = options.scenario_tree_random_seed
-
- # validate all "atomic" options (those that can be validated independently)
- if self._max_iterations < 0:
- raise ValueError("Maximum number of PH iterations must be non-negative; value specified=" + str(self._max_iterations))
- if self._nu <= 0.0 or self._nu >= 2:
- raise ValueError("Value of the nu parameter in PH must be on the interval (0, 2); value specified=" + str(self._nu))
- if (self._mipgap is not None) and ((self._mipgap < 0.0) or (self._mipgap > 1.0)):
- raise ValueError("Value of the mipgap parameter in PH must be on the unit interval; value specified=" + str(self._mipgap))
-
- #
- # validate the linearization (number of pieces) and breakpoint
- # distribution parameters.
- #
- # if a breakpoint strategy is specified without linearization
- # enabled, halt and warn the user.
- if (self._breakpoint_strategy > 0) and \
- (self._linearize_nonbinary_penalty_terms == 0):
- raise ValueError("A breakpoint distribution strategy was "
- "specified, but linearization is not enabled!")
- if self._linearize_nonbinary_penalty_terms < 0:
- raise ValueError("Value of linearization parameter for nonbinary penalty terms must be non-negative; value specified=" + str(self._linearize_nonbinary_penalty_terms))
- if self._breakpoint_strategy < 0:
- raise ValueError("Value of the breakpoint distribution strategy parameter must be non-negative; value specified=" + str(self._breakpoint_strategy))
- if self._breakpoint_strategy > 3:
- raise ValueError("Unknown breakpoint distribution strategy specified - valid values are between 0 and 2, inclusive; value specified=" + str(self._breakpoint_strategy))
-
- # validate that callback functions exist in specified modules
- self._callback_function = {}
- self._mapped_module_name = {}
- renamed = {}
- renamed["pysp_aggregategetter_callback"] = \
- "ph_aggregategetter_callback"
- renamed["pysp_phrhosetter_callback"] = \
- "ph_rhosetter_callback"
- renamed["pysp_boundsetter_callback"] = \
- "ph_boundsetter_callback"
- for ph_attr_file, ph_attr, callback_name in (("_aggregate_getter_file",
- "_aggregate_getter",
- "pysp_aggregategetter_callback"),
- ("_rho_setter_file",
- "_rho_setter",
- "pysp_phrhosetter_callback"),
- ("_bound_setter_file",
- "_bound_setter",
- "pysp_boundsetter_callback")):
- assert callback_name in renamed.keys()
- deprecated_callback_name = renamed[callback_name]
- module_name = getattr(self, ph_attr_file)
- if module_name is not None:
- if module_name in self._modules_imported:
- module = self._modules_imported[module_name]
- sys_modules_key = module_name
- else:
- module, sys_modules_key = \
- load_external_module(module_name, clear_cache=True, verbose=True)
- self._modules_imported[module_name] = module
- callback = None
- for oname, obj in inspect.getmembers(module):
- if oname == callback_name:
- callback = obj
- break
- if callback is None:
- for oname, obj in inspect.getmembers(module):
- if oname == deprecated_callback_name:
- callback = obj
- break
- if callback is None:
- raise ImportError("PH callback with name '%s' could "
- "not be found in module file: %s"
- % (deprecated_callback_name, module_name))
- #if callback is None:
- # raise ImportError("PH callback with name '%s' could "
- # "not be found in module file: %s"
- # % (callback_name, module_name))
- #else:
- # logger.warning("DEPRECATION WARNING: Callback with name '%s' "
- # "has been renamed '%s'"
- # % (deprecated_callback_name,
- # callback_name))
- self._callback_function[sys_modules_key] = callback
- setattr(self,ph_attr,sys_modules_key)
- self._mapped_module_name[sys_modules_key] = module_name
-
-
- # a set of all valid PH iteration indices is generally useful for plug-ins, so create it here.
- self._iteration_index_set = Set(name="PHIterations")
- self._iteration_index_set.construct()
- for i in range(0,self._max_iterations + 1):
- self._iteration_index_set.add(i)
-
- # spit out parameterization if verbosity is enabled
- if self._verbose:
- print("PH solver configuration: ")
- print(" Max iterations="+str(self._max_iterations))
- print(" Async mode=" + str(self._async_mode))
- print(" Async buffer length=" + str(self._async_buffer_length))
- print(" Default global rho=" + str(self._rho))
- print(" Over-relaxation enabled="+str(self._overrelax))
- if self._overrelax:
- print(" Nu=" + self._nu)
- if self._aggregate_getter_file is not None:
- print(" Aggregate getter callback file="
- + self._aggregate_getter_file)
- if self._rho_setter_file is not None:
- print(" Rho setter callback file="
- + self._rho_setter_file)
- if self._bound_setter_file is not None:
- print(" Bound setter callback file="
- + self._bound_setter_file)
- print(" Sub-problem solver type='%s'" % str(self._solver_type))
- print(" Keep solver files? " + str(self._keep_solver_files))
- print(" Output solver results? " + str(self._output_solver_results))
- print(" Output solver log? " + str(self._output_solver_log))
- print(" Output times? " + str(self._output_times))
-
- """ Initialize PH with model and scenario data, in preparation for solve().
- Constructs and reads instances.
- """
- def initialize(self,
- scenario_tree=None,
- solver_manager=None,
- ph_plugins=None,
- solution_plugins=None):
-
- import pyomo.environ
- import pyomo.solvers.plugins.smanager.phpyro
- # TODO: Does this import need to be delayed because
- # it is in a plugins subdirectory
- from pyomo.solvers.plugins.solvers.persistent_solver import \
- PersistentSolver
-
- self._init_start_time = time.time()
-
- print("Initializing PH")
- print("")
-
- if ph_plugins is not None:
- self._ph_plugins = ph_plugins
-
- if solution_plugins is not None:
- self._solution_plugins = solution_plugins
-
- #
- # Try to prevent unnecessarily re-importing the model module
- # if other callbacks are in the same location. Doing so might
- # have serious consequences.
- #
- self._scenario_instance_factory = scenario_instance_factory = scenario_tree._scenario_instance_factory
- if scenario_instance_factory._model_module is not None:
- self._modules_imported[scenario_instance_factory.\
- _model_filename] = \
- scenario_instance_factory._model_module
- if scenario_instance_factory._scenario_tree_module is not None:
- self._modules_imported[scenario_instance_factory.\
- _scenario_tree_filename] = \
- scenario_instance_factory._scenario_tree_module
-
- # The first step in PH initialization is to impose an order on
- # the user-defined plugins. Invoking wwextensions and
- # phhistoryextensions last ensures that any any changes the
- # former makes in order to affect algorithm convergence will
- # not be seen by any other plugins until the next iteration
- # and so that the latter can properly snapshot any changes
- # made by other plugins. All remaining extensions are invoked
- # prior to these in random order. The reason is that we're
- # being lazy - ideally, this would be the user defined order
- # on the command-line.
- phboundextensions = \
- [plugin for plugin in self._ph_plugins \
- if isinstance(plugin,
- pyomo.pysp.plugins.phboundextension.\
- phboundextension)]
-
- convexhullboundextensions = \
- [plugin for plugin in self._ph_plugins \
- if isinstance(plugin,
- pyomo.pysp.plugins.convexhullboundextension.\
- convexhullboundextension)]
-
- wwextensions = \
- [plugin for plugin in self._ph_plugins \
- if isinstance(plugin,
- pyomo.pysp.plugins.wwphextension.wwphextension)]
-
- phhistoryextensions = \
- [plugin for plugin in self._ph_plugins \
- if isinstance(plugin,
- pyomo.pysp.plugins.phhistoryextension.\
- phhistoryextension)]
-
- userdefinedextensions = []
- for plugin in self._ph_plugins:
- if not (isinstance(plugin,
- pyomo.pysp.plugins.wwphextension.wwphextension) or \
- isinstance(plugin,
- pyomo.pysp.plugins.phhistoryextension.\
- phhistoryextension) or \
- isinstance(plugin,
- pyomo.pysp.plugins.phboundextension.\
- phboundextension) or \
- isinstance(plugin,
- pyomo.pysp.plugins.convexhullboundextension.\
- convexhullboundextension)):
- userdefinedextensions.append(plugin)
-
- # note that the order of plugin invocation is important. the history
- # extension goes last, to capture all modifications made by all plugins.
- # user-defined extensions should otherwise go after the built-in plugins.
- ph_plugins = []
- ph_plugins.extend(convexhullboundextensions)
- ph_plugins.extend(phboundextensions)
- ph_plugins.extend(wwextensions)
- ph_plugins.extend(userdefinedextensions)
- ph_plugins.extend(phhistoryextensions)
- self._ph_plugins = ph_plugins
-
- # let plugins know if they care.
- if self._verbose:
- print("Invoking pre-initialization PH plugins")
- for plugin in self._ph_plugins:
- plugin.pre_ph_initialization(self)
-
- if scenario_tree is None:
- raise ValueError("A scenario tree must be supplied to the "
- "PH initialize() method")
-
- if solver_manager is None:
- raise ValueError("A solver manager must be supplied to "
- "the PH initialize() method")
-
- # Eventually some of these might really become optional
- self._scenario_tree = scenario_tree
- self._solver_manager = solver_manager
-
- isPHPyro = isinstance(self._solver_manager,
- pyomo.solvers.plugins.\
- smanager.phpyro.SolverManager_PHPyro)
-
- initialization_action_handles = []
-
- if isPHPyro:
-
- if self._verbose:
- print("Broadcasting requests to initialize PH solver servers")
-
- initialization_action_handles.extend(
- phsolverserverutils.initialize_ph_solver_servers(self))
-
- if self._verbose:
- print("PH solver server initialization requests successfully transmitted")
-
- else:
-
- if self._verbose:
- print("Constructing solvers of type="+self._solver_type)
-
- # populate the solver map in the case of serial PH.
- for subproblem in self._scenario_tree.subproblems:
- object_solver = self._solver_map[subproblem.name] = SolverFactory(self._solver_type, solver_io=self._solver_io)
- if object_solver == None:
- raise ValueError("Unknown solver type=" + self._solver_type + " specified in call to PH constructor")
- if len(self._scenario_solver_options) > 0:
- if self._verbose:
- print("Initializing sub-problem solver with options="+str(self._scenario_solver_options))
- for option_key,option_value in iteritems(self._scenario_solver_options):
- self._solver_map[subproblem.name].options[option_key] = option_value
- if self._output_times:
- object_solver._report_timing = True
-
- # gather the scenario tree instances into
- # the self._instances dictionary and
- # tag appropriate preprocessing flags
- self._setup_scenario_instances()
-
- # let plugins know if they care - this callback point allows
- # users to create/modify the original scenario instances
- # and/or the scenario tree prior to creating PH-related
- # parameters, variables, and the like.
- post_instance_plugin_callback_start_time = time.time()
- for plugin in self._ph_plugins:
- plugin.post_instance_creation(self)
- post_instance_plugin_callback_end_time = time.time()
- if self._output_times:
- print("PH post-instance plugin callback time=%.2f seconds"
- % (post_instance_plugin_callback_end_time - \
- post_instance_plugin_callback_start_time))
-
- if not isPHPyro:
-
- # create ph-specific parameters (weights, xbar, etc.) for
- # each instance.
- if self._verbose:
- print("Creating weight, average, and rho parameter "
- "vectors for scenario instances")
- scenario_ph_parameters_start_time = time.time()
- self._create_scenario_ph_parameters()
- scenario_ph_parameters_end_time = time.time()
- if self._output_times:
- print("PH parameter vector construction time=%.2f seconds"
- % (scenario_ph_parameters_end_time - \
- scenario_ph_parameters_start_time))
-
- # create symbol maps for easy storage/transmission of
- # variable values
- # NOTE: Not sure of the timing overhead that comes with
- # this, but it's likely we can make this optional
- # when we are not running parallel PH.
- if self._verbose:
- print("Creating deterministic SymbolMaps for scenario instances")
- scenario_ph_symbol_maps_start_time = time.time()
- # Define for what components we generate symbols
- symbol_ctypes = (Var, Suffix)
- self._create_instance_symbol_maps(symbol_ctypes)
- scenario_ph_symbol_maps_end_time = time.time()
- if self._output_times:
- print("PH SymbolMap creation time=%.2f seconds"
- % (scenario_ph_symbol_maps_end_time - \
- scenario_ph_symbol_maps_start_time))
-
- # form the ph objective weight and proximal expressions
- # Note: The Expression objects for the weight and proximal
- # terms will be added to the instances objectives
- # but will be assigned values of 0.0, so that the
- # original objective function form is maintained.
- # The purpose is so that we can use this shared
- # Expression object in the bundle binding instance
- # objectives as well when we call
- # _form_bundle_binding_instances a few lines down
- # (so regeneration of bundle objective expressions
- # is no longer required before each iteration k
- # solve).
- self.add_ph_objective_weight_terms()
- self.deactivate_ph_objective_weight_terms()
- self.add_ph_objective_proximal_terms()
- self.deactivate_ph_objective_proximal_terms()
-
- # if we have bundles and are not running with PH Pyro, we
- # need to create the binding instances - because we are
- # responsible for farming the instances out for solution.
- if self._scenario_tree.contains_bundles():
- self._form_bundle_binding_instances()
-
- # if we are dealing with persistent solver interfaces,
- # we need to initialize the instances.
- if isinstance(self._solver_map[next(iterkeys(self._solver_map))], PersistentSolver):
- if self._scenario_tree.contains_bundles():
- for scenario_bundle in self._scenario_tree.bundles:
- self._solver_map[scenario_bundle.name].set_instance(
- self._bundle_binding_instance_map[scenario_bundle.name],
- symbolic_solver_labels=self._symbolic_solver_labels,
- output_fixed_variable_bounds=self._write_fixed_variables)
- else:
- for scenario in self._scenario_tree.scenarios:
- if self._verbose:
- print("Setting instance for scenario=%s in persistent solver interface" % scenario.name)
- self._solver_map[scenario.name].set_instance(
- scenario._instance,
- symbolic_solver_labels=self._symbolic_solver_labels,
- output_fixed_variable_bounds=self._write_fixed_variables)
-
-
-
- # If specified, run the user script to collect aggregate
- # scenario data. This can slow down PH initialization as
- # syncronization across all phsolverservers is required
- if self._aggregate_getter is not None:
-
- if isPHPyro:
-
- # Transmit invocation to phsolverservers
- print("Transmitting user aggregate callback invocations "
- "to phsolverservers")
- if self._scenario_tree.contains_bundles():
- for scenario_bundle in self._scenario_tree._scenario_bundles:
- ah = phsolverserverutils.transmit_external_function_invocation_to_worker(
- self,
- scenario_bundle._name,
- self._mapped_module_name[self._aggregate_getter],
- "ph_aggregategetter_callback",
- invocation_type=(phsolverserverutils.InvocationType.\
- PerScenarioChainedInvocation),
- return_action_handle=True,
- function_args=(self._aggregate_user_data,))
- while(1):
- action_handle = self._solver_manager.wait_any()
- if action_handle in initialization_action_handles:
- initialization_action_handles.remove(action_handle)
- self._solver_manager.get_results(action_handle)
- elif action_handle == ah:
- result = self._solver_manager.get_results(action_handle)
- break
- assert len(result) == 1
- self._aggregate_user_data = result[0]
-
- else:
- for scenario in self._scenario_tree._scenarios:
- ah = phsolverserverutils.transmit_external_function_invocation_to_worker(
- self,
- scenario._name,
- self._mapped_module_name[self._aggregate_getter],
- "ph_aggregategetter_callback",
- invocation_type=(phsolverserverutils.InvocationType.\
- SingleInvocation),
- return_action_handle=True,
- function_args=(self._aggregate_user_data,))
- while(1):
- action_handle = self._solver_manager.wait_any()
- if action_handle in initialization_action_handles:
- initialization_action_handles.remove(action_handle)
- self._solver_manager.get_results(action_handle)
- elif action_handle == ah:
- result = self._solver_manager.get_results(action_handle)
- break
- assert len(result) == 1
- self._aggregate_user_data = result[0]
-
- # Transmit final aggregate state to phsolverservers
- print("Broadcasting final aggregate data to phsolverservers")
- initialization_action_handles.extend(
- phsolverserverutils.transmit_external_function_invocation(
- self,
- "pyomo.pysp.ph",
- "assign_aggregate_data",
- invocation_type=(phsolverserverutils.InvocationType.\
- SingleInvocation),
- return_action_handles=True,
- function_args=(self._aggregate_user_data,)))
-
- else:
-
- print("Executing user aggregate getter callback function")
- for scenario in self._scenario_tree._scenarios:
- result = self._callback_function[self._aggregate_getter](
- self,
- self._scenario_tree,
- scenario,
- self._aggregate_user_data)
- assert len(result) == 1
- self._aggregate_user_data = result[0]
-
- # if specified, run the user script to initialize variable
- # rhos at their whim.
- if self._rho_setter is not None:
-
- if isPHPyro:
-
- # Transmit invocation to phsolverservers
- print("Transmitting user rho callback invocations "
- "to phsolverservers")
- if self._scenario_tree.contains_bundles():
- for scenario_bundle in self._scenario_tree._scenario_bundles:
- initialization_action_handles.append(
- phsolverserverutils.transmit_external_function_invocation_to_worker(
- self,
- scenario_bundle._name,
- self._mapped_module_name[self._rho_setter],
- "ph_rhosetter_callback",
- invocation_type=(phsolverserverutils.InvocationType.\
- PerScenarioInvocation),
- return_action_handle=True))
- else:
- for scenario in self._scenario_tree._scenarios:
- initialization_action_handles.append(
- phsolverserverutils.transmit_external_function_invocation_to_worker(
- self,
- scenario._name,
- self._mapped_module_name[self._rho_setter],
- "ph_rhosetter_callback",
- invocation_type=(phsolverserverutils.InvocationType.\
- SingleInvocation),
- return_action_handle=True))
-
- # NOTE: For the time being we rely on the
- # gather_scenario_tree_data call at the end this
- # initialize method in order to collect the
- # finalized rho values
-
- else:
-
- print("Executing user rho setter callback function")
- for scenario in self._scenario_tree._scenarios:
- self._callback_function[self._rho_setter](
- self,
- self._scenario_tree,
- scenario)
-
- # if specified, run the user script to initialize variable
- # bounds at their whim.
- if self._bound_setter is not None:
-
- if isPHPyro:
-
- # Transmit invocation to phsolverservers
- print("Transmitting user bound callback invocations to "
- "phsolverservers")
- if self._scenario_tree.contains_bundles():
- for scenario_bundle in self._scenario_tree._scenario_bundles:
- initialization_action_handles.append(
- phsolverserverutils.transmit_external_function_invocation_to_worker(
- self,
- scenario_bundle._name,
- self._mapped_module_name[self._bound_setter],
- "ph_boundsetter_callback",
- invocation_type=(phsolverserverutils.InvocationType.\
- PerScenarioInvocation),
- return_action_handle=True))
- else:
- for scenario in self._scenario_tree._scenarios:
- initialization_action_handles.append(
- phsolverserverutils.transmit_external_function_invocation_to_worker(
- self,
- scenario._name,
- self._mapped_module_name[self._bound_setter],
- "ph_boundsetter_callback",
- invocation_type=(phsolverserverutils.InvocationType.\
- SingleInvocation),
- return_action_handle=True))
-
- else:
-
- print("Executing user bound setter callback function")
- for scenario in self._scenario_tree._scenarios:
- self._callback_function[self._bound_setter](
- self,
- self._scenario_tree,
- scenario)
-
- # at this point, the instances are complete - preprocess them!
- # BUT: only if the phpyro solver manager isn't in use.
- if isPHPyro:
-
- if self._verbose:
- print("Broadcasting requests to collect scenario tree "
- "instance data from PH solver servers")
-
- phsolverserverutils.gather_scenario_tree_data(self, initialization_action_handles)
- assert len(initialization_action_handles) == 0
-
- if self._verbose:
- print("Scenario tree instance data successfully collected")
-
- self._objective_sense = \
- self._scenario_tree._scenarios[0]._objective_sense
-
- #
- # construct the convergence "computer" class.
- #
-
- # go with the non-defaults first, and then with the default
- # (normalized term-diff).
- if self._enable_free_discrete_count_convergence:
- if self._verbose:
- print("Enabling convergence based on a fixed number of discrete variables")
- converger = \
- (pyomo.pysp.convergence.\
- NumFixedDiscreteVarConvergence(
- convergence_threshold=self._free_discrete_count_threshold))
- self._convergers.append(converger)
- if self._enable_outer_bound_convergence:
- if self._verbose:
- print("Enabling convergence based on outer bound criterion")
- if self._outer_bound_convergence_threshold == None:
- raise RuntimeError("A convergence threshold must be specified when using the outer bound convergence criteron")
- converger = \
- (pyomo.pysp.convergence.OuterBoundConvergence(
- convergence_threshold=self._outer_bound_convergence_threshold,
- convergence_threshold_sense=(False if self._objective_sense == minimize else True)))
- self._convergers.append(converger)
-
- if self._enable_inner_outer_convergence:
- if self._verbose:
- print("Enabling convergence based on inner outer bound criterion")
- if self._inner_outer_convergence_threshold == None:
- raise RuntimeError("A convergence threshold must be specified when using the inner-outer bound convergence criteron")
- converger = \
- (pyomo.pysp.convergence.InnerOuterConvergence(
- convergence_threshold=self._inner_outer_convergence_threshold))
- self._convergers.append(converger)
-
- # NOTE: convergers in general are independent, and we converge when any
- # one of them converge. but it doesn't make sense in this case,
- # as you don't really want both flavors of term-diff convergence enabled.
- if self._enable_termdiff_convergence:
- if self._verbose:
- print("Enabling convergence based on non-normalized "
- "term diff criterion, as opposed to the normalized variant")
- converger = \
- (pyomo.pysp.convergence.TermDiffConvergence(
- convergence_threshold=self._termdiff_threshold))
- self._convergers.append(converger)
-
- if self._enable_normalized_termdiff_convergence and not self._enable_termdiff_convergence:
- converger = \
- (pyomo.pysp.convergence.NormalizedTermDiffConvergence(
- convergence_threshold=self._termdiff_threshold))
- self._convergers.append(converger)
-
- if self._enable_primal_dual_residual_convergence:
- if self._verbose:
- print("Enabling convergence based on primal-dual residual criterion")
- self._convergers.append(
- pyomo.pysp.convergence.PrimalDualResidualConvergence(
- convergence_threshold=self._primal_dual_residual_convergence_threshold))
-
- # indicate that we're ready to run.
- self._initialized = True
-
- if self._verbose:
- print("PH successfully created model instances for all scenarios")
-
- if self._verbose:
- print("PH is successfully initialized")
-
- if self._output_times:
- print("Cumulative initialization time=%.2f seconds"
- % (time.time() - self._init_start_time))
-
- # let plugins know if they care.
- if self._verbose:
- print("Invoking post-initialization PH plugins")
- post_ph_initialization_plugin_callback_start_time = time.time()
- for plugin in self._ph_plugins:
- plugin.post_ph_initialization(self)
- post_ph_initialization_plugin_callback_end_time = time.time()
- if self._output_times:
- print("PH post-initialization plugin callback time=%.2f seconds"
- % (post_ph_initialization_plugin_callback_end_time - \
- post_ph_initialization_plugin_callback_start_time))
-
- if self._output_times:
- print("Cumulative PH initialization time=%.2f seconds"
- % (time.time() - self._init_start_time))
-
- self._init_end_time = time.time()
- if self._output_times:
- print("Overall initialization time=%.2f seconds"
- % (self._init_end_time - self._init_start_time))
- print("")
-
- #
- #
- #
-
- def queue_subproblems(self,
- subproblems=None,
- warmstart=False,
- exception_on_failure=False):
-
- # TODO: Does this import need to be delayed because
- # it is in a plugins subdirectory
- from pyomo.solvers.plugins.solvers.persistent_solver import \
- PersistentSolver
-
- def bundle_in_subproblems(bundle_name, subproblems):
- if subproblems == None:
- return True
- else:
- return bundle_name in subproblems
-
- def scenario_in_subproblems(scenario_name, subproblems):
- if subproblems == None:
- return True
- else:
- return scenario_name in subproblems
-
- if subproblems == None:
- subproblems = []
- if self._scenario_tree.contains_bundles():
- for scenario_bundle in self._scenario_tree._scenario_bundles:
- subproblems.append(scenario_bundle._name)
- else:
- for scenario in self._scenario_tree._scenarios:
- subproblems.append(scenario._name)
-
- # Preprocess the scenario instances before solving if
- # we are not using phpyro
- if not isinstance(self._solver_manager,
- pyomo.solvers.plugins.smanager.\
- phpyro.SolverManager_PHPyro):
- self._preprocess_scenario_instances(subproblems=subproblems)
-
- # STEP -1: clear the auxilliary dictionaries (gaps, solve_times,
- # pyomo_solve_times, solution_status)
- # don't have any results yet.
- if self._scenario_tree.contains_bundles():
- for scenario_bundle in self._scenario_tree._scenario_bundles:
- if not bundle_in_subproblems(scenario_bundle._name, subproblems):
- continue
- self._gaps[scenario_bundle._name] = undefined
- self._solution_status[scenario_bundle._name] = undefined
- self._solve_times[scenario_bundle._name] = undefined
- self._pyomo_solve_times[scenario_bundle._name] = undefined
- else:
- for scenario in self._scenario_tree._scenarios:
- if not scenario_in_subproblems(scenario._name, subproblems):
- continue
- self._gaps[scenario._name] = undefined
- self._solution_status[scenario._name] = undefined
- self._solve_times[scenario._name] = undefined
- self._pyomo_solve_times[scenario._name] = undefined
-
- # STEP 0: set up the mipgap option if running with serial/local solves.
- if isinstance(self._solver_manager, SolverManager_Serial):
- if self._mipgap is not None:
- for object_solver in itervalues(self._solver_map):
- object_solver.options.mipgap = float(self._mipgap)
-
- # STEP 1: queue up the solves for all scenario sub-problems
- # we could use the same names for scenarios and bundles, but
- # we are easily confused.
- scenario_action_handle_map = {} # maps scenario names to action handles
- action_handle_scenario_map = {} # maps action handles to scenario names
-
- bundle_action_handle_map = {} # maps bundle names to action handles
- action_handle_bundle_map = {} # maps action handles to bundle names
-
- common_solve_kwds = {
- 'tee':self._output_solver_log,
- 'keepfiles':self._keep_solver_files,
- 'symbolic_solver_labels':self._symbolic_solver_labels,
- 'output_fixed_variable_bounds':self._write_fixed_variables}
-
- # if we are solving locally and not using a persistent solver plugin,
- # then add the following two options to the standard set of common
- # solve keywords
- if isinstance(self._solver_manager, SolverManager_Serial):
- # grab an arbitrary solver plugin - we are implicitly assuming
- # homogeneous solver plugin types across subproblems.
- some_solver = self._solver_map[next(iterkeys(self._solver_map))]
- if isinstance(some_solver, PersistentSolver):
- del common_solve_kwds['symbolic_solver_labels']
- del common_solve_kwds['output_fixed_variable_bounds']
-
- # TODO: suffixes are not handled equally for
- # scenario/bundles/serial/phpyro
- if isinstance(self._solver_manager,
- pyomo.solvers.plugins.smanager.phpyro.SolverManager_PHPyro):
- solver_options = self._scenario_solver_options
- if self._mipgap is not None:
- solver_options["mipgap"] = float(self._mipgap)
- common_solve_kwds['solver_options'] = solver_options
- common_solve_kwds['solver_suffixes'] = []
- common_solve_kwds['warmstart'] = warmstart
- common_solve_kwds['variable_transmission'] = \
- self._phpyro_variable_transmission_flags
-
- # we always rely on ourselves to load solutions - we control
- # the error checking and such.
- common_solve_kwds['load_solutions'] = False
-
- if isinstance(self._solver_manager,
- pyomo.solvers.plugins.smanager.\
- phpyro.SolverManager_PHPyro):
- self._solver_manager.begin_bulk()
-
- if self._scenario_tree.contains_bundles():
-
- for scenario_bundle in self._scenario_tree._scenario_bundles:
- if not bundle_in_subproblems(scenario_bundle._name, subproblems):
- continue
-
- if self._verbose:
- print("Queuing solve for scenario bundle=%s"
- % (scenario_bundle._name))
-
- # and queue it up for solution - have to worry about
- # warm-starting here.
- new_action_handle = None
- if isinstance(self._solver_manager,
- pyomo.solvers.plugins.smanager.\
- phpyro.SolverManager_PHPyro):
- new_action_handle = \
- self._solver_manager.queue(
- action="solve",
- queue_name=self._phpyro_job_worker_map[scenario_bundle._name],
- name=scenario_bundle._name,
- **common_solve_kwds)
- else:
-
- bundle_solver = self._solver_map[scenario_bundle.name]
-
- if (self._output_times is True) and (self._verbose is False):
- print("Solver manager queuing instance=%s"
- % (scenario_bundle._name))
-
- if bundle_solver.warm_start_capable():
- common_solve_kwds['warmstart'] = warmstart
-
- new_action_handle = \
- self._solver_manager.queue(
- self._bundle_binding_instance_map[scenario_bundle._name],
- opt=bundle_solver,
- **common_solve_kwds)
-
- bundle_action_handle_map[scenario_bundle._name] = new_action_handle
- action_handle_bundle_map[new_action_handle] = scenario_bundle._name
- self._queued_solve_action_handles.add(new_action_handle)
-
- else:
-
- for scenario in self._scenario_tree._scenarios:
- if not scenario_in_subproblems(scenario._name, subproblems):
- continue
-
- if self._verbose:
- print("Queuing solve for scenario=%s" % (scenario._name))
-
- # once past iteration 0, there is always a feasible
- # solution from which to warm-start. however, you
- # might want to disable warm-start when the solver is
- # behaving badly (which does happen).
- new_action_handle = None
- if isinstance(self._solver_manager,
- pyomo.solvers.plugins.smanager.\
- phpyro.SolverManager_PHPyro):
-
- new_action_handle = \
- self._solver_manager.queue(
- action="solve",
- queue_name=self._phpyro_job_worker_map[scenario._name],
- name=scenario._name,
- **common_solve_kwds)
-
- else:
-
- instance = scenario._instance
-
- scenario_solver = self._solver_map[scenario.name]
-
- if (self._output_times is True) and (self._verbose is False):
- print("Solver manager queuing instance=%s"
- % (scenario._name))
-
- if scenario_solver.warm_start_capable():
- common_solve_kwds['warmstart'] = warmstart
-
- if self._extensions_suffix_list is not None:
- new_action_handle = \
- self._solver_manager.queue(
- instance,
- opt=scenario_solver,
- suffixes=self._extensions_suffix_list,
- **common_solve_kwds)
- else:
- new_action_handle = \
- self._solver_manager.queue(instance,
- opt=scenario_solver,
- **common_solve_kwds)
-
- scenario_action_handle_map[scenario._name] = new_action_handle
- action_handle_scenario_map[new_action_handle] = scenario._name
- self._queued_solve_action_handles.add(new_action_handle)
-
- if isinstance(self._solver_manager,
- pyomo.solvers.plugins.smanager.\
- phpyro.SolverManager_PHPyro):
- self._solver_manager.end_bulk()
-
- return action_handle_scenario_map, \
- scenario_action_handle_map, \
- action_handle_bundle_map, \
- bundle_action_handle_map
-
- #
- #
- #
-
- def wait_for_and_process_subproblems(self,
- subproblem_count,
- action_handle_scenario_map,
- scenario_action_handle_map,
- action_handle_bundle_map,
- bundle_action_handle_map):
-
- failures = []
- subproblems = []
-
- result_load_times = []
-
- # loop for the solver results, reading them and
- # loading them into instances as they are available.
- if self._scenario_tree.contains_bundles():
-
- if self._verbose:
- print("Waiting for bundle sub-problem solves")
-
- num_results_so_far = 0
-
- while (num_results_so_far < subproblem_count):
-
- action_handle = self._solver_manager.wait_any()
- bundle_results = \
- self._solver_manager.get_results(action_handle)
-
- # there are cases, if the dispatchers and name servers are not
- # correctly configured, in which you may get an action handle
- # that you didn't expect. in this case, punt with a sane
- # message, as there isn't much else you can do.
- try:
- bundle_name = action_handle_bundle_map[action_handle]
- except KeyError:
- if action_handle in self._queued_solve_action_handles:
- self._queued_solve_action_handles.discard(action_handle)
- print("WARNING: Discarding uncollected solve action handle "
- "with id=%d encountered during bundle solves"
- % (action_handle.id))
- continue
- else:
- known_action_handles = \
- sorted((ah.id for ah in action_handle_scenario_map))
- raise RuntimeError("PH client received an unknown action "
- "handle=%d from the dispatcher; known "
- "action handles are: %s"
- % (action_handle.id,
- str(known_action_handles)))
-
- subproblems.append(bundle_name)
-
- num_results_so_far += 1
-
- if isinstance(self._solver_manager,
- pyomo.solvers.plugins.smanager.phpyro.\
- SolverManager_PHPyro):
-
- if len(bundle_results) == 0:
- failures.append(bundle_name)
- continue
-
- start_time = time.time()
-
- for scenario_name, scenario_solution in \
- iteritems(bundle_results[0]):
- scenario = self._scenario_tree._scenario_map[scenario_name]
- scenario.set_solution(scenario_solution)
-
- auxilliary_values = bundle_results[2]
- if "gap" in auxilliary_values:
- self._gaps[bundle_name] = auxilliary_values["gap"]
-
- self._solution_status[bundle_name] = \
- getattr(SolutionStatus, auxilliary_values["solution_status"])
-
- if auxilliary_values["solve_time"] is not None:
- self._solve_times[bundle_name] = \
- auxilliary_values["solve_time"]
-
- if auxilliary_values["pyomo_solve_time"] is not None:
- self._pyomo_solve_times[bundle_name] = \
- auxilliary_values["pyomo_solve_time"]
-
- end_time = time.time()
- if self._output_times:
- result_load_times.append(end_time-start_time)
-
- else:
-
- bundle_instance = self._bundle_binding_instance_map[bundle_name]
-
- if self._verbose:
- print("Results obtained for bundle=%s" % (bundle_name))
-
- if (len(bundle_results.solution) == 0) or \
- (bundle_results.solution(0).status ==
- SolutionStatus.infeasible) or \
- (bundle_results.solution(0).status == \
- SolutionStatus.error) or \
- (bundle_results.solution(0).status == \
- SolutionStatus.unbounded) or \
- (bundle_results.solver.status != \
- SolverStatus.ok) or \
- (bundle_results.solver.termination_condition == \
- TerminationCondition.infeasible):
-
- if self._verbose:
- bundle_results.write()
- print("Solve failed for scenario bundle=%s; no "
- "solutions generated\n%s"
- % (bundle_name, bundle_results))
- failures.append(bundle_name)
- continue
-
- if self._output_solver_results:
- print("Results for bundle=%s" % (bundle_name))
- bundle_results.write(num=1)
-
- start_time = time.time()
- bundle_results_sm = bundle_results._smap
- bundle_instance.solutions.load_from(
- bundle_results,
- allow_consistent_values_for_fixed_vars=\
- self._write_fixed_variables,
- comparison_tolerance_for_fixed_vars=\
- self._comparison_tolerance_for_fixed_vars,
- ignore_fixed_vars=not self._write_fixed_variables)
- self._solver_results[bundle_name] = \
- (bundle_results, bundle_results_sm)
-
- solution0 = bundle_results.solution(0)
- if hasattr(solution0, "gap") and \
- (solution0.gap is not None):
- self._gaps[bundle_name] = solution0.gap
-
- self._solution_status[bundle_name] = solution0.status
-
- self._solve_times[bundle_name], self._pyomo_solve_times[bundle_name] = \
- extract_solve_times(bundle_results)
-
- scenario_bundle = \
- self._scenario_tree._scenario_bundle_map[bundle_name]
- for scenario_name in scenario_bundle._scenario_names:
- scenario = self._scenario_tree._scenario_map[scenario_name]
- scenario.update_solution_from_instance()
-
- end_time = time.time()
- if self._output_times:
- result_load_times.append(end_time-start_time)
-
- if self._verbose:
- print("Successfully loaded solution for bundle=%s"
- % (bundle_name))
-
- else:
-
- if self._verbose:
- print("Waiting for scenario sub-problem solves")
-
- num_results_so_far = 0
-
- while (num_results_so_far < subproblem_count):
-
- action_handle = self._solver_manager.wait_any()
- results = self._solver_manager.get_results(action_handle)
- # there are cases, if the dispatchers and name servers are not
- # correctly configured, in which you may get an action handle
- # that you didn't expect. in this case, punt with a sane
- # message, as there isn't much else you can do.
- try:
- scenario_name = action_handle_scenario_map[action_handle]
- except KeyError:
- if action_handle in self._queued_solve_action_handles:
- self._queued_solve_action_handles.discard(action_handle)
- print("WARNING: Discarding uncollected solve action handle "
- "with id=%d encountered during scenario solves"
- % (action_handle.id))
- continue
- else:
- known_action_handles = \
- sorted((ah.id for ah in action_handle_scenario_map))
- raise RuntimeError("PH client received an unknown action "
- "handle=%d from the dispatcher; known "
- "action handles are: %s"
- % (action_handle.id,
- str(known_action_handles)))
-
- scenario = self._scenario_tree._scenario_map[scenario_name]
-
- subproblems.append(scenario_name)
-
- num_results_so_far += 1
-
- if isinstance(self._solver_manager,
- pyomo.solvers.plugins.smanager.\
- phpyro.SolverManager_PHPyro):
-
- if len(results) == 0:
- failures.append(scenario_name)
- continue
-
- start_time = time.time()
-
- # TODO: Use these keywords to perform some
- # validation of fixed variable values in the
- # results returned
- #allow_consistent_values_for_fixed_vars =\
- # self._write_fixed_variables,
- #comparison_tolerance_for_fixed_vars =\
- # self._comparison_tolerance_for_fixed_vars
- # results[0] are variable values
- # results[1] are suffix values
- # results[2] are auxilliary values
- scenario.set_solution(results[0])
-
- auxilliary_values = results[2]
- if "gap" in auxilliary_values:
- self._gaps[scenario_name] = auxilliary_values["gap"]
-
- self._solution_status[scenario_name] = \
- getattr(SolutionStatus, auxilliary_values["solution_status"])
-
- if auxilliary_values["solve_time"] is not None:
- self._solve_times[scenario_name] = \
- auxilliary_values["solve_time"]
-
- if auxilliary_values["pyomo_solve_time"] is not None:
- self._pyomo_solve_times[scenario_name] = \
- auxilliary_values["pyomo_solve_time"]
-
- end_time = time.time()
-
- if self._output_times:
- result_load_times.append(end_time-start_time)
-
- else:
-
- instance = scenario._instance
-
- if self._verbose:
- print("Results obtained for scenario=%s" % (scenario_name))
-
- if (len(results.solution) == 0) or \
- (results.solution(0).status == \
- SolutionStatus.infeasible) or \
- (results.solution(0).status == \
- SolutionStatus.error) or \
- (results.solution(0).status == \
- SolutionStatus.unbounded) or \
- (results.solver.status != \
- SolverStatus.ok) or \
- (results.solver.termination_condition == \
- TerminationCondition.infeasible):
-
- if self._verbose:
- results.write()
- print("Solve failed for scenario=%s; no "
- "solutions generated\n%s"
- % (scenario_name, results))
- failures.append(scenario_name)
- continue
-
- if self._output_solver_results:
- print("Results for scenario="+scenario_name)
- results.write(num=1)
-
- start_time = time.time()
-
- # TBD: Technically, we should validate that there
- # is only a single solution. Or at least warn
- # if there are multiple.
- results_sm = results._smap
- instance.solutions.load_from(
- results,
- allow_consistent_values_for_fixed_vars=\
- self._write_fixed_variables,
- comparison_tolerance_for_fixed_vars=\
- self._comparison_tolerance_for_fixed_vars,
- ignore_fixed_vars=not self._write_fixed_variables)
- self._solver_results[scenario._name] = (results, results_sm)
-
- scenario.update_solution_from_instance()
-
- solution0 = results.solution(0)
- if hasattr(solution0, "gap") and \
- (solution0.gap is not None):
- self._gaps[scenario_name] = solution0.gap
-
- self._solution_status[scenario_name] = solution0.status
-
- self._solve_times[scenario_name], self._pyomo_solve_times[scenario_name] = \
- extract_solve_times(results)
-
- end_time = time.time()
-
- if self._output_times:
- result_load_times.append(end_time-start_time)
-
- if self._verbose:
- print("Successfully loaded solution for scenario=%s "
- "- waiting on %d more"
- % (scenario_name,
- len(self._scenario_tree._scenarios) - num_results_so_far))
-
- if self._output_times:
- mean = sum(result_load_times) / float(len(result_load_times))
- std_dev = sqrt(sum(pow(x-mean,2.0) for x in result_load_times)) / float(len(result_load_times))
- print("Result load time statistics - Min: "
- "%0.2f Avg: %0.2f Max: %0.2f StdDev: %0.2f (seconds)"
- % (min(result_load_times),
- mean,
- max(result_load_times),
- std_dev))
-
- return subproblems, failures
-
- #
- # Transmits Solver Options, Queues Solves, and Collects/Loads
- # Results... nothing more. All subproblems are expected to be
- # fully preprocessed.
- #
- def solve_subproblems(self,
- subproblems=None,
- warmstart=False,
- exception_on_failure=False):
-
- iteration_start_time = time.time()
-
- # queue the subproblems
- queue_subproblems_start_time = time.time()
- action_handle_scenario_map, \
- scenario_action_handle_map, \
- action_handle_bundle_map, \
- bundle_action_handle_map = self.queue_subproblems(
- subproblems=subproblems,
- warmstart=warmstart,
- exception_on_failure=exception_on_failure)
- queue_subproblems_end_time = time.time()
-
- if self._output_times:
- print("Time queueing subproblems=%0.2f seconds"
- % (queue_subproblems_end_time-queue_subproblems_start_time))
-
- if subproblems is None:
- if self._scenario_tree.contains_bundles():
- subproblem_count = len(self._scenario_tree._scenario_bundles)
- else:
- subproblem_count = len(self._scenario_tree._scenarios)
- else:
- subproblem_count = len(subproblems)
-
- wait_subproblems_start_time = time.time()
- subproblems, failures = self.wait_for_and_process_subproblems(subproblem_count,
- action_handle_scenario_map,
- scenario_action_handle_map,
- action_handle_bundle_map,
- bundle_action_handle_map)
- wait_subproblems_end_time = time.time()
- if self._output_times:
- print("Time waiting for subproblems=%0.2f seconds"
- % (wait_subproblems_end_time-wait_subproblems_start_time))
-
- # do some error checking and reporting
- if len(self._solve_times) > 0:
- # if any of the solve times are of type
- # pyomo.opt.results.container.UndefinedData, then don't
- # output timing statistics.
- undefined_detected = False
- for this_time in itervalues(self._solve_times):
- if isinstance(this_time, UndefinedData):
- undefined_detected=True
- if undefined_detected:
- print("At least one sub-problem solve time was "
- "undefined - skipping timing statistics")
- else:
- mean = sum(self._solve_times.values()) / \
- float(len(self._solve_times.values()))
- std_dev = sqrt(
- sum(pow(x-mean,2.0) for x in self._solve_times.values()) /
- float(len(self._solve_times.values())))
- if self._output_times:
- print("Sub-problem solve time statistics - Min: "
- "%0.2f Avg: %0.2f Max: %0.2f StdDev: %0.2f (seconds)"
- % (min(self._solve_times.values()),
- mean,
- max(self._solve_times.values()),
- std_dev))
-
- # do some error checking and reporting
- if len(self._pyomo_solve_times) > 0:
- # if any of the solve times are of type
- # pyomo.opt.results.container.UndefinedData, then don't
- # output timing statistics.
- undefined_detected = False
- for this_time in itervalues(self._pyomo_solve_times):
- if isinstance(this_time, UndefinedData):
- undefined_detected=True
- if undefined_detected:
- print("At least one sub-problem solve time was "
- "undefined - skipping timing statistics")
- else:
- mean = sum(self._pyomo_solve_times.values()) / \
- float(len(self._pyomo_solve_times.values()))
- std_dev = sqrt(
- sum(pow(x-mean,2.0) for x in self._pyomo_solve_times.values()) /
- float(len(self._pyomo_solve_times.values())))
- if self._output_times:
- print("Sub-problem pyomo solve time statistics - Min: "
- "%0.2f Avg: %0.2f Max: %0.2f StdDev: %0.2f (seconds)"
- % (min(self._pyomo_solve_times.values()),
- mean,
- max(self._pyomo_solve_times.values()),
- std_dev))
-
-# print "**** SOLVE TIMES:",self._solve_times.values()
-# print "*** GAPS:",sorted(self._gaps.values())
-
- iteration_end_time = time.time()
- self._cumulative_solve_time += (iteration_end_time - iteration_start_time)
-
- if self._output_times:
- print("Aggregate sub-problem solve time=%.2f seconds"
- % (iteration_end_time - iteration_start_time))
-
- if len(failures):
- print(" ** At least one sub-problem failed to solve! ** ")
- print(" Failed sub-problems:")
- for failure in sorted(failures):
- print(" "+str(failure))
- if exception_on_failure:
- raise RuntimeError("Failed to obtain a solution for "
- "the following sub-problems: "+str(failures))
-
- return failures
-
- """ Perform the non-weighted scenario solves and form the initial w and xbars.
- """
- def iteration_0_solves(self):
-
- # return None unless a sub-problem failure is detected, then
- # return its name immediately
-
- if self._verbose:
- print("------------------------------------------------")
- print("Starting PH iteration 0 solves")
-
- # scan any variables fixed prior to iteration 0, set up the
- # appropriate flags for pre-processing, and - if appropriate -
- # transmit the information to the PH solver servers.
- self._push_fix_queue_to_instances()
-
- failures = self.solve_subproblems(warmstart=self._iteration_0_has_warmstart)
-
- if self._verbose or self._report_subproblem_objectives:
- print("Successfully completed PH iteration 0 solves\n"
- "- solution statistics:\n")
- if self._scenario_tree.contains_bundles():
- self.report_bundle_objectives()
- self.report_scenario_objectives()
-
- return failures
-
- #
- # recompute the averages, minimum, and maximum statistics for all
- # variables to be blended by PH, i.e., not appearing in the final
- # stage. technically speaking, the min/max aren't required by PH,
- # but they are used often enough to warrant their computation and
- # it's basically free if you're computing the average.
- #
- # **When compute_xbars is False, the xbar is not assigned the
- # calculated node averages. The instance parameters are still
- # updated to the current value of xbar as usual. The dual ph
- # algorithm uses both versions of this method
- #
-
- def update_variable_statistics(self):
-
- start_time = time.time()
- # cache the lookups - don't want to do them deep in the index loop.
- overrelax = self._overrelax
- current_iteration = self._current_iteration
-
- # skip the last stage, as there is only a single scenario there - no
- # meaningful statistics required!
- for stage in self._scenario_tree._stages[:-1]:
-
- for tree_node in stage._tree_nodes:
-
- xbars = tree_node._xbars
-
- scenario_solutions = \
- [(scenario._probability, scenario._x[tree_node._name]) \
- for scenario in tree_node._scenarios]
-
- for variable_id in tree_node._standard_variable_ids:
-
- stale = False
- values = []
- avg_value = 0.0
- for probability, var_values in scenario_solutions:
- val = var_values[variable_id]
- if val is not None:
- avg_value += probability * val
- values.append(val)
- else:
- stale = True
-
- if not stale:
-
- avg_value /= tree_node._probability
- tree_node._minimums[variable_id] = min(values)
- tree_node._maximums[variable_id] = max(values)
-
- if self._ph_xbar_updates_enabled:
- if (overrelax) and (current_iteration >= 1):
- xbars[variable_id] = self._nu*avg_value + (1-self._nu)*tree_node._averages[variable_id]
- else:
- xbars[variable_id] = avg_value
-
- tree_node._averages[variable_id] = avg_value
-
- end_time = time.time()
- self._cumulative_xbar_time += (end_time - start_time)
-
- if self._output_times:
- print("Variable statistics compute time=%.2f seconds" % (end_time - start_time))
-
- def update_weights(self):
-
- start_time = time.time()
-
- # because the weight updates rely on the xbars, and the xbars
- # are node-based, I'm looping over the tree nodes and pushing
- # weights into the corresponding scenarios.
- start_time = time.time()
-
- # NOTE: the following code has some optimizations that are not
- # normally recommended, in particular the direct access
- # and manipulation of parameters via the .value
- # attribute instead of the user-level-preferred value()
- # method. this is justifiable in this particular
- # instance because we are creating the PH parameters
- # (and therefore can manipulate them safely), and this
- # routine takes a non-trivial amount of the overall
- # run-time.
-
- # cache the lookups - don't want to do them deep in the index
- # loop.
- over_relaxing = self._overrelax
- objective_sense = self._objective_sense
-
- # no blending over the final stage, so no weights to worry
- # about.
- for stage in self._scenario_tree._stages[:-1]:
-
- for tree_node in stage._tree_nodes:
-
- tree_node_xbars = None
- if self._dual_mode is True:
- tree_node_xbars = tree_node._xbars
- else:
- tree_node_xbars = tree_node._averages
- blend_values = tree_node._blend
-
- # These will be updated inside this loop
- tree_node_wbars = tree_node._wbars = \
- dict((var_id,0) for var_id in tree_node._variable_ids)
-
- for scenario in tree_node._scenarios:
-
- instance = scenario._instance
-
- weight_values = scenario._w[tree_node._name]
- rho_values = scenario._rho[tree_node._name]
- var_values = scenario._x[tree_node._name]
-
- for variable_id in tree_node._standard_variable_ids:
-
- varval = var_values[variable_id]
-
- if varval is not None:
-
- # we are currently not updating weights if
- # blending is disabled for a variable.
- # this is done on the premise that unless
- # you are actively trying to move the
- # variable toward the mean, the weights
- # will blow up and be huge by the time
- # that blending is activated.
-
- nu_value = 1.0
- if over_relaxing:
- nu_value = self._nu
-
- if not self._dual_mode:
-
- if objective_sense == minimize:
- weight_values[variable_id] += \
- blend_values[variable_id] * \
- rho_values[variable_id] * \
- nu_value * \
- (varval - \
- tree_node_xbars[variable_id])
- else:
- weight_values[variable_id] -= \
- blend_values[variable_id] * \
- rho_values[variable_id] * \
- nu_value * \
- (varval - \
- tree_node_xbars[variable_id])
- else:
- # **Adding these asserts simply
- # **because we haven't thought about
- # **what this means for other steps in
- # **the code
- assert blend_values[variable_id] == 1.0
- assert nu_value == 1.0
- assert objective_sense == minimize
- weight_values[variable_id] = \
- blend_values[variable_id] * \
- (rho_values[variable_id]) * \
- nu_value * \
- (varval - \
- tree_node_xbars[variable_id])
-
- tree_node_wbars[variable_id] += \
- scenario._probability * \
- weight_values[variable_id] / tree_node._probability
-
- end_time = time.time()
- self._cumulative_weight_time += (end_time - start_time)
-
- if self._output_times:
- print("Weight update time=%.2f seconds" % (end_time - start_time))
-
- def update_weights_for_scenario(self, scenario):
-
- start_time = time.time()
-
- # cache the lookups - don't want to do them deep in the index
- # loop.
- over_relaxing = self._overrelax
- objective_sense = self._objective_sense
-
- for tree_node in scenario._node_list[:-1]:
-
- weight_values = scenario._w[tree_node._name]
- rho_values = scenario._rho[tree_node._name]
- var_values = scenario._x[tree_node._name]
-
- tree_node_xbars = None
- if self._dual_mode is True:
- tree_node_xbars = tree_node._xbars
- else:
- tree_node_xbars = tree_node._averages
- blend_values = tree_node._blend
-
- # Note: This does not update wbar
- for variable_id in tree_node._standard_variable_ids:
-
- varval = var_values[variable_id]
-
- if varval is not None:
-
- # we are currently not updating weights if
- # blending is disabled for a variable. this is
- # done on the premise that unless you are actively
- # trying to move the variable toward the mean, the
- # weights will blow up and be huge by the time
- # that blending is activated.
-
- nu_value = 1.0
- if over_relaxing:
- nu_value = self._nu
-
- if self._dual_mode is False:
- if objective_sense == minimize:
- weight_values[variable_id] += \
- blend_values[variable_id] * \
- rho_values[variable_id] * \
- nu_value * \
- (varval - \
- tree_node_xbars[variable_id])
- else:
- weight_values[variable_id] -= \
- blend_values[variable_id] * \
- rho_values[variable_id] * \
- nu_value * \
- (varval - \
- tree_node_xbars[variable_id])
- else:
- # **Adding these asserts simply because we
- # **haven't thought about what this means for
- # **other steps in the code
- assert blend_values[variable_id] == 1.0
- assert nu_value == 1.0
- assert objective_sense == minimize
- weight_values[variable_id] = \
- blend_values[variable_id] * \
- rho_values[variable_id] * \
- nu_value * \
- (varval - \
- tree_node_xbars[variable_id])
-
- end_time = time.time()
- self._cumulative_weight_time += (end_time - start_time)
-
- def iteration_k_solves(self):
-
- if self._verbose:
- print("------------------------------------------------")
- print("Starting PH iteration %s solves"
- % (self._current_iteration))
-
- # scan any variables fixed/freed, set up the appropriate flags
- # for pre-processing, and - if appropriate - transmit the
- # information to the PH solver servers.
- self._push_fix_queue_to_instances()
-
- # update parameters on instances (transmitting to ph solver
- # servers when appropriate)
- self._push_xbar_to_instances()
- self._push_w_to_instances()
- self._push_rho_to_instances()
-
- # STEP -1: if using a PH solver manager, propagate current
- # weights/averages to the appropriate solver servers.
- # ditto the tree node statistics, which are necessary
- # if linearizing (so an optimization could be
- # performed here).
- if isinstance(self._solver_manager,
- pyomo.solvers.plugins.smanager.phpyro.SolverManager_PHPyro):
-
- # we only transmit tree node statistics if we are
- # linearizing the PH objectives. otherwise, the
- # statistics are never referenced by the PH solver
- # servers, so don't want the time.
- if (self._linearize_nonbinary_penalty_terms > 0) or \
- (self._scenario_tree.contains_bundles()):
- phsolverserverutils.transmit_tree_node_statistics(self)
-
- else:
-
- # GAH: We may need to redefine our concept of
- # warmstart. These values could be helpful in the
- # nonlinear case (or could be better than 0.0, the
- # likely default used by the solver when these
- # initializations are not placed in the NL
- # file. **Note: Initializations go into the NL file
- # independent of the "warmstart" keyword
-
- # STEP 0.85: if linearizing the PH objective, clear the
- # values for any PHQUADPENALTY* variables -
- # otherwise, the MIP starts are likely to be
- # infeasible.
- if self._linearize_nonbinary_penalty_terms > 0:
- self._reset_instance_linearization_variables()
-
- if self._scenario_tree.contains_bundles():
- # clear non-converged variables and stage cost
- # variables, to ensure feasible warm starts.
- reset_nonconverged_variables(self._scenario_tree, self._instances)
- reset_stage_cost_variables(self._scenario_tree, self._instances)
- else:
- # clear stage cost variables, to ensure feasible warm starts.
- reset_stage_cost_variables(self._scenario_tree, self._instances)
-
- failures = self.solve_subproblems(warmstart=not self._disable_warmstarts)
-
- if self._verbose or self._report_subproblem_objectives:
- print("Successfully completed PH iteration %s solves\n"
- "- solution statistics:\n" % (self._current_iteration))
- if self._scenario_tree.contains_bundles():
- self.report_bundle_objectives()
- self.report_scenario_objectives()
-
- return failures
-
- def async_iteration_k_plus_solves(self):
-
- # note: this routine retains control until a termination
- # criterion is met modified nov 2011 by dlw to do async
- # with a window-like paramater
-
- if (self._async_buffer_length <= 0) or \
- (self._async_buffer_length > len(self._scenario_tree.subproblems)):
- raise RuntimeError("Async buffer length parameter=%d is invalid -"
- " must be less than or equal to the number of subproblems=%d"
- % (self._async_buffer_length, len(self._scenario_tree.subproblems)))
- if self._verbose:
- print("Starting PH iteration k+ solves - running async "
- "with buffer length=%s" % (self._async_buffer_length))
-
- # we are going to buffer the subproblem names
- subproblem_buffer = []
-
- # things progress at different rates - keep track of what's going on.
- total_subproblem_solve_count = 0
- # a map of scenario name to the number of sub-problems solved thus far.
- subproblem_solve_counts = {}
- for subproblem in self._scenario_tree.subproblems:
- subproblem_solve_counts[subproblem.name] = 0
-
- # keep track of action handles mapping to scenarios.
- action_handle_subproblem_map = {}
-
- # scan any variables fixed/freed, set up the appropriate flags
- # for pre-processing, and - if appropriate - transmit the
- # information to the PH solver servers.
- self._push_fix_queue_to_instances()
-
- # update parameters on instances (transmitting to ph solver
- # servers when appropriate)
- self._push_xbar_to_instances()
- self._push_w_to_instances()
-
- # NOTE: We aren't currently propagating rhos, as they
- # generally don't change - we need to have a flag,
- # though, indicating whether the rhos have changed, so
- # they can be transmitted if needed.
- self._push_rho_to_instances()
-
- self._preprocess_scenario_instances()
-
- if self._verbose or self._report_rhos_first_iteration or self._report_rhos_each_iteration:
- print("Async starting rhos:")
- self.pprint(False, False, False, False, True,
- output_only_statistics=\
- self._report_only_statistics,
- output_only_nonconverged=\
- self._report_only_nonconverged_variables,
- report_stage_costs=False)
-
- # determine what needs to be queued
- subproblems_to_queue = []
- for plugin in self._ph_plugins: # WARNING - BEING SLOPPY - WE SHOULD MAKE SURE WE HAVE ONE LIST RETURNED (MORE THAN ONE PLUGIN CAUSES ISSUES)
- subproblems_to_queue = plugin.asynchronous_subproblems_to_queue(self)
- assert(len(subproblems_to_queue)!=0)
-
- print("SUBPROBLEMS TO QUEUE=",subproblems_to_queue)
-
- # in general, we need to track the number of subproblems queued - it may not be,
- # depending on the plugin, equal to the async buffer length.
- number_subproblems_queued = len(subproblems_to_queue)
-
- # NOTE - THE FOLLOWING IS NOT BUNDLE AWARE!
- for plugin in self._ph_plugins:
- for subproblem in subproblems_to_queue:
- plugin.asynchronous_pre_scenario_queue(self, subproblem)
-
- integrated_action_handle_scenario_map = {}
- integrated_action_handle_bundle_map = {}
-
- # queue up the solves for all scenario sub-problems - iteration 0 is special.
- print("ABOUT TO QUEUE SUBPROLEMS")
- print("SUBPROBLEMS TO QUEUE=",subproblems_to_queue)
- action_handle_scenario_map, \
- scenario_action_handle_map, \
- action_handle_bundle_map, \
- bundle_action_handle_map = self.queue_subproblems(subproblems=subproblems_to_queue,
- warmstart=not self._disable_warmstarts)
-
- integrated_action_handle_scenario_map.update(action_handle_scenario_map)
- integrated_action_handle_bundle_map.update(action_handle_bundle_map)
-
- print("Entering PH asynchronous processing loop")
-
- while(True):
-
- # TBD - revisit the below - why are we doing anything one-at-a-time?
- print("CALLING WAIT FOR AND PROCESS")
- solved_subproblems, failures = self.wait_for_and_process_subproblems(1, # we're doing these one at a time
- integrated_action_handle_scenario_map,
- {},
- integrated_action_handle_bundle_map,
- {})
- print("DONE WITH CALL")
- assert(len(solved_subproblems) == 1)
-
- solved_subproblem = self._scenario_tree.get_subproblem(solved_subproblems[0])
- solved_subproblem_name = solved_subproblem.name
-
- subproblem_solve_counts[solved_subproblem_name] += 1
- total_subproblem_solve_count += 1
-
- if int(total_subproblem_solve_count / len(subproblem_solve_counts)) > \
- self._current_iteration:
- new_reportable_iteration = True
- self._current_iteration += 1
- else:
- new_reportable_iteration = False
-
- if self._verbose:
- print("Solve for subproblem=%s completed - new solve count for "
- "this subproblem=%s"
- % (solved_subproblem_name,
- subproblem_solve_counts[solved_subproblem_name]))
-
- if self._verbose:
- print("%20s %18.4f %14.4f"
- % (solved_subproblem_name,
- 0.0, # TBD - REVISIT solved_subproblem._objective,
- 0.0))
-
-
- # changed 19 Nov 2011 to support scenario buffers for async
- subproblem_buffer.append(solved_subproblem_name)
- if len(subproblem_buffer) == number_subproblems_queued:
- if self._verbose:
- print("Processing async buffer")
-
- # update variable statistics and compute new weights
- self.update_variable_statistics()
-
- for subproblem_name in subproblem_buffer:
- subproblem = self._scenario_tree.get_subproblem(subproblem_name)
- if self._ph_weight_updates_enabled:
- self.update_weights_for_scenario(subproblem)
-
- # give a user a chance to react if they want to change something.
- for plugin in self._ph_plugins:
- plugin.post_asynchronous_var_w_update(self, subproblem_buffer, subproblem_solve_counts)
-
- # we don't want to report stuff and invoke callbacks
- # after each subproblem solve - wait for when each
- # subproblem (on average) has reported back a solution.
- if new_reportable_iteration:
-
- # let plugins know if they care.
- for plugin in self._ph_plugins:
- plugin.post_iteration_k_solves(self)
-
- # update the fixed variable statistics.
- self._total_fixed_discrete_vars,\
- self._total_fixed_continuous_vars = \
- self.compute_fixed_variable_counts()
-
- if self._report_rhos_each_iteration:
- print("Async Reportable Iteration Current rhos:")
- self.pprint(False, False, False, False, True,
- output_only_statistics=\
- self._report_only_statistic,
- output_only_nonconverged=\
- self._report_only_nonconverged_variables,
- report_stage_costs=False)
-
- if self._verbose or self._report_weights:
- print("Async Reportable Iteration Current variable "
- "averages and weights:")
- self.pprint(True, True, False, False, False,
- output_only_statistics=\
- self._report_only_statistics,
- output_only_nonconverged=\
- self._report_only_nonconverged_variables)
-
- first_stage_min, first_stage_avg, first_stage_max = \
- self._extract_first_stage_cost_statistics()
- print("First stage cost avg=%12.4f Max-Min=%8.2f" % (first_stage_avg,
- first_stage_max-first_stage_min))
- # check for early termination.
- for converger in self._convergers:
- converger.update(self._current_iteration,
- self,
- self._scenario_tree,
- self._instances)
-
- self.printConvergerStatus()
-
- expected_cost = self._scenario_tree.findRootNode().computeExpectedNodeCost()
- if not _OLD_OUTPUT: print("Expected Cost=%14.4f" % (expected_cost))
- self._cost_history[self._current_iteration] = expected_cost
-
- if self.is_converged():
-
- if (len(self._incumbent_cost_history) == 0) or \
- ((self._objective_sense == minimize) and \
- (expected_cost < min(self._incumbent_cost_history))) or \
- ((self._objective_sense == maximize) and \
- (expected_cost > max(self._incumbent_cost_history))):
- if not _OLD_OUTPUT: print("Caching results for new incumbent solution")
- self.cacheSolutions(self._incumbent_cache_id)
- self._best_incumbent_key = self._current_iteration
- self._incumbent_cost_history[self._current_iteration] = expected_cost
-
- plugin_convergence = True
- for plugin in self._ph_plugins:
- if hasattr(plugin,"ph_convergence_check"):
- if not plugin.ph_convergence_check(self):
- plugin_convergence = False
-
- if plugin_convergence:
- break
-
- # see if we've exceeded our patience with the
- # iteration limit. changed to be based on the average
- # on July 10, 2011 by dlw (really, it should be some
- # combination of the min and average over the
- # scenarios)
- if total_subproblem_solve_count / len(self._scenario_tree.subproblems) >= \
- self._max_iterations:
- return
-
- # update parameters on instances
- self._push_xbar_to_instances()
- self._push_w_to_instances() # NOTE: redundant with above loop for push_w_to_instance?
-
- # now that we've processsed all subproblems, we need to queue up for
- # new work. we will ask the plugin for the subproblems to queue.
- # the plugins define the order.
- subproblems_to_queue = []
- # WARNING - BEING SLOPPY - WE SHOULD MAKE SURE WE HAVE ONE LIST RETURNED (MORE THAN ONE PLUGIN CAUSES ISSUES)
- for plugin in self._ph_plugins:
- subproblems_to_queue = plugin.asynchronous_subproblems_to_queue(self)
-
- for subproblem_name in subproblems_to_queue:
-
- # if linearizing, form the necessary terms to
- # compute the cost variables.
- # TBD - fix this for linearization - we are instance free!
- if self._linearize_nonbinary_penalty_terms > 0:
- new_attrs = \
- form_linearized_objective_constraints(
- subproblem_name,
- instance,
- self._scenario_tree,
- self._linearize_nonbinary_penalty_terms,
- self._breakpoint_strategy,
- self._integer_tolerance)
- self._problem_states.ph_constraints[subproblem_name].\
- extend(new_attrs)
- # Flag the preprocessor
- self._problem_states.\
- ph_constraints_updated[subproblem_name] = True
-
- # let plugins know if they care.
- for plugin in self._ph_plugins:
- plugin.asynchronous_pre_scenario_queue(self, subproblem_name)
-
- # queue stuff!
- action_handle_scenario_map, \
- scenario_action_handle_map, \
- action_handle_bundle_map, \
- bundle_action_handle_map = self.queue_subproblems(subproblems=[subproblem_name],
- warmstart=not self._disable_warmstarts)
- integrated_action_handle_scenario_map.update(action_handle_scenario_map)
- integrated_action_handle_bundle_map.update(action_handle_bundle_map)
-
- number_subproblems_queued = len(subproblems_to_queue)
-
- if self._verbose:
- print("Queued solve k=%s for scenario=%s"
- % (subproblem_solve_counts[subproblem_name]+1,
- solved_subproblem_name))
-
- if self._verbose:
- for sname, scenario_count in iteritems(subproblem_solve_counts):
- print("Scenario=%s was solved %s times"
- % (sname, scenario_count))
- print("Cumulative number of scenario solves=%s"
- % (total_subproblem_solve_count))
- print("PH Iteration Count (computed)=%s"
- % (self._current_iteration))
-
- if self._verbose:
- print("Variable values following scenario solves:")
- self.pprint(False, False, True, False, False,
- output_only_statistics=\
- self._report_only_statistics,
- output_only_nonconverged=\
- self._report_only_nonconverged_variables)
-
- if self._verbose is True:
- print("Emptying the asynch scenario buffer.")
-
- # this is not a speed issue, is there a memory issue?
- subproblem_buffer = []
-
- def solve(self):
- # return None unless a solve failure was detected in iter0,
- # then immediately return the iter0 solve return value (which
- # should be the name of the scenario detected)
-
- self._solve_start_time = time.time()
- self._cumulative_solve_time = 0.0
- self._cumulative_xbar_time = 0.0
- self._cumulative_weight_time = 0.0
- self._current_iteration = 0;
-
- # garbage collection noticeably slows down PH when dealing with
- # large numbers of scenarios. fortunately, there are well-defined
- # points at which garbage collection makes sense (and there isn't a
- # lot of collection to do). namely, after each PH iteration.
- re_enable_gc = gc.isenabled()
- gc.disable()
-
- print("Starting PH")
-
- if self._initialized == False:
- raise RuntimeError("PH is not initialized - cannot invoke "
- "solve() method")
-
- dual_model = None
- if self._dual_mode:
- # Note: As a first pass at our implementation, the solve method
- # on the DualPHModel actually updates the xbar dictionary
- # on the ph scenario tree.
- dual_model = DualPHModel(self)
-
- print("")
- if (not self._ph_warmstarted) and (self._ph_warmstart_file is None):
-
- print("Initiating PH iteration=" + str(self._current_iteration))
-
- iter0retval = self.iteration_0_solves()
-
- if len(iter0retval):
- if self._verbose:
- print("Iteration zero reports trouble with scenarios: "
- +str(iter0retval))
- return iter0retval
-
- # now that we have scenario solutions, compute and cache the
- # number of discrete and continuous variables. the values are
- # of general use, e.g., in the converger classes and in
- # plugins. this is only invoked once, after the iteration 0
- # solves.
- (self._total_discrete_vars,self._total_continuous_vars) = \
- self.compute_blended_variable_counts()
-
- if self._verbose:
- print("Total number of non-stale discrete instance variables="
- +str(self._total_discrete_vars))
- print("Total number of non-stale continuous instance variables="
- +str(self._total_continuous_vars))
-
- # very rare, but the following condition can actually happen...
- if (self._total_discrete_vars + self._total_continuous_vars) == 0:
- raise RuntimeError("***ERROR: The total number of non-anticipative "
- "discrete and continuous variables equals 0! "
- "Did you set the StageVariables set(s) in "
- "ScenarioStructure.dat")
-
- # update variable statistics prior to any output, and most
- # importantly, prior to any variable fixing by PH extensions.
- self.update_variable_statistics()
-
- if (self._verbose) or (self._report_solutions):
- print("Variable values following scenario solves:")
- self.pprint(False, False, True, False, False,
- output_only_statistics=\
- self._report_only_statistics,
- output_only_nonconverged=\
- self._report_only_nonconverged_variables)
-
- # let plugins know if they care.
- for plugin in self._ph_plugins:
- plugin.post_iteration_0_solves(self)
-
- # update the fixed variable statistics.
- self._total_fixed_discrete_vars, \
- self._total_fixed_continuous_vars = \
- self.compute_fixed_variable_counts()
-
- print("Number of discrete variables fixed="
- +str(self._total_fixed_discrete_vars)+
- " (total="+str(self._total_discrete_vars)+")")
- print("Number of continuous variables fixed="
- +str(self._total_fixed_continuous_vars)+
- " (total="+str(self._total_continuous_vars)+")")
-
- # always output the convergence metric and first-stage cost
- # statistics, to give a sense of progress.
-
- first_stage_min, first_stage_avg, first_stage_max = \
- self._extract_first_stage_cost_statistics()
- print("First stage cost avg=%12.4f Max-Min=%8.2f"
- % (first_stage_avg,
- first_stage_max-first_stage_min))
-
- for converger in self._convergers:
- converger.update(self._current_iteration,
- self,
- self._scenario_tree,
- self._instances)
-
- self.printConvergerStatus()
-
- expected_cost = self._scenario_tree.findRootNode().computeExpectedNodeCost()
- if not _OLD_OUTPUT: print("Expected Cost=%14.4f" % (expected_cost))
- self._cost_history[self._current_iteration] = expected_cost
-
- if self.is_converged():
-
- if not _OLD_OUTPUT: print("Caching results for new incumbent solution")
- self.cacheSolutions(self._incumbent_cache_id)
- self._best_incumbent_key = self._current_iteration
- self._incumbent_cost_history[self._current_iteration] = expected_cost
-
- # let plugins know if they care.
- for plugin in self._ph_plugins:
- plugin.post_iteration_0(self)
-
- # IMPT: update the weights after the PH iteration 0 callbacks;
- # they might compute rhos based on iteration 0
- # solutions.
- if self._ph_weight_updates_enabled:
- self.update_weights()
-
- # garbage-collect if it wasn't disabled entirely.
- if re_enable_gc:
- if (time.time() - self._time_since_last_garbage_collect) >= self._minimum_garbage_collection_interval:
- gc.collect()
- self._time_last_garbage_collect = time.time()
-
- # everybody wants to know how long they've been waiting...
- print("Cumulative run-time=%.2f seconds" % (time.time() - self._solve_start_time))
-
- else:
-
- if not self._ph_warmstarted:
- assert self._ph_warmstart_file is not None
- from pyomo.pysp.plugins.phhistoryextension import (load_ph_warmstart,
- load_history)
- print("Loading PH warmstart from file: "+self._ph_warmstart_file)
- scenario_tree_dict, history, iterations = \
- load_history(self._ph_warmstart_file)
- _index = iterations[-1]
- if self._ph_warmstart_index is not None:
- if self._ph_warmstart_index in iterations:
- _index = self._ph_warmstart_index
- else:
- raise ValueError(
- "'%s' is not a valid index in warmstart file:\n%s\n"
- "Choices are:\n%s" % (self._ph_warmstart_index,
- self._ph_warmstart_file,
- iterations))
- else:
- self._ph_warmstart_index = _index
- load_ph_warmstart(self, history[_index])
- self._ph_warmstarted = True
-
- # gather memory statistics (for leak detection purposes) if specified.
- # XXX begin debugging - commented
- #if (pympler_available) and (self._profile_memory >= 1):
- # objects_last_iteration = muppy.get_objects()
- # summary_last_iteration = summary.summarize(objects_last_iteration)
- # XXX end debugging - commented
-
- ####################################################################################################
- # major logic branch - if we are not running async, do the usual PH - otherwise, invoke the async. #
- ####################################################################################################
- if self._async_mode is False:
-
- ####################################################################################################
-
- # there is an upper bound on the number of iterations to execute -
- # the actual bound depends on the converger supplied by the user.
- for i in xrange(1, self._max_iterations+1):
-
- if i == 1:
- self.activate_ph_objective_proximal_terms()
- if not self._dual_mode:
- self.activate_ph_objective_weight_terms()
-
- # if linearizing, form the necessary terms to compute the cost
- # variables.
- if self._linearize_nonbinary_penalty_terms > 0:
- self.form_ph_linearized_objective_constraints()
-
-
- # XXX begin debugging
- #def muppetize(self):
- # if (pympler_available) and (self._profile_memory >= 1):
- # objects_this_iteration = muppy.get_objects()
- # summary_this_iteration = summary.summarize(objects_this_iteration)
- # summary.print_(summary_this_iteration)
- # del summary_this_iteration
- # XXX end debugging
-
- self._current_iteration = self._current_iteration + 1
-
- print("")
- print("Initiating PH iteration=" + str(self._current_iteration))
-
- # let plugins know if they care.
- for plugin in self._ph_plugins:
- plugin.pre_iteration_k_solves(self)
-
- if not _OLD_OUTPUT:
- if self._report_rhos_each_iteration or \
- ((self._verbose or self._report_rhos_first_iteration) and \
- (self._current_iteration == 1)):
- print("Rhos prior to scenario solves:")
- self.pprint(False, False, False, False, True,
- output_only_statistics=self._report_only_statistics,
- output_only_nonconverged=self._report_only_nonconverged_variables,
- report_stage_costs=False)
-
- if (self._verbose) or (self._report_weights):
- print("Variable averages and weights prior to scenario solves:")
- self.pprint(True, True, False, False, False,
- output_only_statistics=self._report_only_statistics,
- output_only_nonconverged=self._report_only_nonconverged_variables)
-
- # with the introduction of piecewise linearization, the form of the
- # penalty-weighted objective is no longer fixed. thus, when linearizing,
- # we need to construct (or at least modify) the constraints used to
- # compute the linearized cost terms.
- if self._linearize_nonbinary_penalty_terms > 0:
- self.form_ph_linearized_objective_constraints()
-
- try:
- self.iteration_k_solves()
- except SystemExit:
- print("")
- print(" ** Caught SystemExit exception. "
- "Attempting to gracefully exit PH")
- print(" Signal: "+str(sys.exc_info()[1]))
- print("")
- self._current_iteration -= 1
- break
- except ApplicationError:
- print("")
- print(" ** Caught ApplicationError exception. "
- "Attempting to gracefully exit PH")
- print(" Signal: "+str(sys.exc_info()[1]))
- print("")
- self._current_iteration -= 1
- break
-
- # update variable statistics prior to any output.
- if self._dual_mode is False:
- self.update_variable_statistics()
- else:
- dual_rc = dual_model.add_cut()
- dual_model.solve()
- self.update_variable_statistics(compute_xbars=False)
-
- # update weights
- if self._ph_weight_updates_enabled:
- self.update_weights()
-
- # let plugins know if they care.
- for plugin in self._ph_plugins:
- plugin.post_iteration_k_solves(self)
-
- if (self._verbose) or (self._report_solutions):
- print("Variable values following scenario solves:")
- self.pprint(False, False, True, False, False,
- output_only_statistics=self._report_only_statistics,
- output_only_nonconverged=self._report_only_nonconverged_variables)
-
- if not self._called_compute_blended_variable_counts:
- (self._total_discrete_vars,self._total_continuous_vars) = \
- self.compute_blended_variable_counts()
-
- # update the fixed variable statistics.
- self._total_fixed_discrete_vars,self._total_fixed_continuous_vars = \
- self.compute_fixed_variable_counts()
-
- print("Number of discrete variables fixed="
- +str(self._total_fixed_discrete_vars)+" "
- "(total="+str(self._total_discrete_vars)+")")
- print("Number of continuous variables fixed="
- +str(self._total_fixed_continuous_vars)+" "
- "(total="+str(self._total_continuous_vars)+")")
-
- if self._best_reported_inner_bound != None or self._best_reported_outer_bound != None:
- print("Outer bound=%20s Inner bound=%20s" % (self._best_reported_outer_bound, self._best_reported_inner_bound))
-
- # update the convergence statistic - prior to the
- # plugins callbacks; technically, computing the
- # convergence metric is part of the iteration k work
- # load.
-
- first_stage_min, first_stage_avg, first_stage_max = \
- self._extract_first_stage_cost_statistics()
- print("First stage cost avg=%12.4f Max-Min=%8.2f" % (first_stage_avg,
- first_stage_max-first_stage_min))
-
- for converger in self._convergers:
- converger.update(self._current_iteration,
- self,
- self._scenario_tree,
- self._instances)
-
- self.printConvergerStatus()
-
- expected_cost = self._scenario_tree.findRootNode().computeExpectedNodeCost()
- if not _OLD_OUTPUT: print("Expected Cost=%14.4f" % (expected_cost))
- self._cost_history[self._current_iteration] = expected_cost
-
- if self.is_converged():
-
- if (len(self._incumbent_cost_history) == 0) or \
- ((self._objective_sense == minimize) and \
- (expected_cost < min(self._incumbent_cost_history.values()))) or \
- ((self._objective_sense == maximize) and \
- (expected_cost > max(self._incumbent_cost_history.values()))):
- if not _OLD_OUTPUT: print("Caching results for new incumbent solution")
- self.cacheSolutions(self._incumbent_cache_id)
- self._best_incumbent_key = self._current_iteration
- self._incumbent_cost_history[self._current_iteration] = expected_cost
-
- # let plugins know if they care.
- for plugin in self._ph_plugins:
- plugin.post_iteration_k(self)
-
- # at this point, all the real work of an iteration is
- # complete.
-
- # everybody wants to know how long they've been waiting...
- print("Cumulative run-time=%.2f seconds"
- % (time.time() - self._solve_start_time))
-
- # check for early termination.
- if not self._dual_mode:
-
- if self.is_converged():
-
- plugin_convergence = True
- for plugin in self._ph_plugins:
- if hasattr(plugin,"ph_convergence_check"):
- if not plugin.ph_convergence_check(self):
- plugin_convergence = False
-
- if plugin_convergence:
- break
- else:
- # This is ugly. We can fix later when we figure
- # out convergence criteria for the dual ph
- # algorithm
- if dual_rc is True:
- break
-
- # if we're terminating due to exceeding the maximum
- # iteration count, print a message indicating so -
- # otherwise, you get a quiet, information-free output
- # trace.
- if i == self._max_iterations:
- print("Halting PH - reached maximal iteration count="
- +str(self._max_iterations))
-
- # garbage-collect if it wasn't disabled entirely.
- if re_enable_gc:
- if (time.time() - self._time_since_last_garbage_collect) >= \
- self._minimum_garbage_collection_interval:
- gc.collect()
- self._time_since_last_garbage_collect = time.time()
-
- # gather and report memory statistics (for leak
- # detection purposes) if specified.
- if (guppy_available) and (self._profile_memory >= 1):
- print(guppy.hpy().heap())
-
- #print "New (persistent) objects constructed during PH iteration "+str(self._current_iteration)+":"
- #memory_tracker.print_diff(summary1=summary_last_iteration,
- # summary2=summary_this_iteration)
-
- ## get ready for the next iteration.
- #objects_last_iteration = objects_this_iteration
- #summary_last_iteration = summary_this_iteration
-
- # XXX begin debugging
- #print "Current type: {0} ({1})".format(type(self), type(self).__name__)
- #print "Recognized objects in muppy:", len(muppy.get_objects())
- #print "Uncollectable objects (cycles?):", gc.garbage
-
- ##from pympler.muppy import refbrowser
- ##refbrowser.InteractiveBrowser(self).main()
-
- #print "Referents from PH solver:", gc.get_referents(self)
- #print "Interesting referent keys:", [k for k in gc.get_referents(self)[0].keys() if type(gc.get_referents(self)[0][k]).__name__ not in ['list', 'int', 'str', 'float', 'dict', 'bool']]
- #print "_ph_plugins:", gc.get_referents(self)[0]['_ph_plugins']
- #print "_converger:", gc.get_referents(self)[0]['_converger']
- # XXX end debugging
-
- ####################################################################################################
-
- else:
- # we are running asychronously
- if self._dual_mode is True:
- raise NotImplementedError(
- "The 'async' option has not been implemented for dual ph.")
-
- self.activate_ph_objective_proximal_terms()
- if not self._dual_mode:
- self.activate_ph_objective_weight_terms()
-
- # if linearizing, form the necessary terms to compute the cost
- # variables.
- if self._linearize_nonbinary_penalty_terms > 0:
- self.form_ph_linearized_objective_constraints()
-
- for plugin in self._ph_plugins:
- plugin.pre_asynchronous_solves(self)
-
- self.async_iteration_k_plus_solves()
-
- for plugin in self._ph_plugins:
- plugin.post_asynchronous_solves(self)
-
- # re-enable the normal garbage collection mode.
- if re_enable_gc:
- gc.enable()
-
- print("")
- print("Number of discrete variables fixed "
- "before final plugin calls="
- +str(self._total_fixed_discrete_vars)+" "
- "(total="+str(self._total_discrete_vars)+")")
- print("Number of continuous variables fixed "
- "before final plugin calls="
- +str(self._total_fixed_continuous_vars)+" "
- "(total="+str(self._total_continuous_vars)+")")
-
- if (self._best_incumbent_key is not None) and \
- (self._best_incumbent_key != self._current_iteration):
- if not _OLD_OUTPUT:
- print("")
- print("Restoring scenario tree solution "
- "to best incumbent solution with "
- "expected cost=%14.4f"
- % self._incumbent_cost_history[self._best_incumbent_key])
- self.restoreCachedSolutions(self._incumbent_cache_id)
-
- if isinstance(self._solver_manager,
- pyomo.solvers.plugins.smanager.\
- phpyro.SolverManager_PHPyro):
- phsolverserverutils.collect_full_results(
- self,
- phsolverserverutils.TransmitType.all_stages | \
- phsolverserverutils.TransmitType.blended | \
- phsolverserverutils.TransmitType.derived | \
- phsolverserverutils.TransmitType.fixed)
-
- # let plugins know if they care. do this before
- # the final solution / statistics output, as the plugins
- # might do some final tweaking.
- for plugin in self._ph_plugins:
- plugin.post_ph_execution(self)
-
- # update the fixed variable statistics - the plugins
- # might have done something.
- (self._total_fixed_discrete_vars,
- self._total_fixed_continuous_vars) = \
- self.compute_fixed_variable_counts()
-
- self._solve_end_time = time.time()
-
- print("PH complete")
-
- if _OLD_OUTPUT:
- print("")
- print("Convergence history:")
- for converger in self._convergers:
- print("Converger=%20s" % converger._name)
- converger.pprint()
- print("")
- else:
- print("")
- print("Algorithm History: ")
- label_string = " "
- label_string += ("%10s" % "Iteration")
- label_string += ("%14s" % "Metric Value")
- label_string += ("%17s" % "Expected Cost")
- label_string += ("%17s" % "Best Converged")
- print(label_string)
- best_incumbent_cost = None
- for i in xrange(self._current_iteration+1):
- row_string = "{0} "
- row_string += ("%10d" % i)
- metric = self._converger._metric_history[i]
- if self._converger._convergence_threshold >= 0.0001:
- row_string += ("%14.4f" % metric)
- else:
- row_string += ("%14.3e" % metric)
- expected_cost = self._cost_history[i]
- row_string += ("%17.4f" % (expected_cost))
- if i in self._incumbent_cost_history:
- row_string = row_string.format('*')
- expected_cost = self._incumbent_cost_history[i]
- updated_best = False
- if best_incumbent_cost is None:
- best_incumbent_cost = expected_cost
- updated_best = True
- else:
- if self._objective_sense == minimize:
- if expected_cost < best_incumbent_cost:
- best_incumbent_cost = expected_cost
- updated_best = True
- else:
- if expected_cost > best_incumbent_cost:
- best_incumbent_cost = expected_cost
- updated_best = False
- row_string += ('%17.4f' % (best_incumbent_cost))
- if updated_best:
- row_string += " (new incumbent)"
- else:
- row_string = row_string.format(' ')
- if best_incumbent_cost is not None:
- row_string += ('%17.4f' % (best_incumbent_cost))
- else:
- row_string += ('%17s' % ('-'))
- print(row_string)
-
- print("")
- print("Final number of discrete variables fixed="
- +str(self._total_fixed_discrete_vars)
- +" (total="+str(self._total_discrete_vars)+")")
- print("Final number of continuous variables fixed="
- +str(self._total_fixed_continuous_vars)
- +" (total="+str(self._total_continuous_vars)+")")
-
- # optionally (but by default) fix the scenario tree solutions
- # to x-hat and propagate to the sub-problem solves.
- if not self._disable_xhat_computation:
- print("")
- print("Computing objective inner bound at xhat solution")
- objective_bound, self._xhat = \
- self.compute_and_report_inner_bound_using_xhat()
- print("")
- else:
- print("")
- print("***WARNING: Computation and evaluation of xhat solution "
- "is disabled - the reported final solution may not be valid "
- "/ non-anticipative")
-
- print("\nFinal scenario solution variable values: \n")
- self.pprint(False, False, True, True, False,
- output_only_statistics=self._report_only_statistics,
- output_only_nonconverged=self._report_only_nonconverged_variables,
- output_no_statistics=False)
-
- if (self._verbose) and (self._output_times):
- print("Overall run-time=%.2f seconds"
- % (self._solve_end_time - self._solve_start_time))
-
- for tree_node in self._scenario_tree._tree_nodes:
- if tree_node.has_fixed_in_queue() or \
- tree_node.has_freed_in_queue():
- print("***WARNING***: PH exiting with fixed or freed variables "
- "in the scenario tree queue whose statuses have not been "
- "pushed to the scenario instances. This is because these "
- "requests were placed in the queue after the most recent "
- "solve. If these statuses are pushed to the scenario "
- "instances, a new solution should be obtained in order to "
- "reflect accurate solution data within the scenario tree. "
- "This warning can be safely ignored in most cases.")
- break
-
- # Activate the original objective form Don't bother
- # transmitting these deactivation signals to the ph solver
- # servers as this function is being called at the end of ph
- # (for now)
- if not isinstance(self._solver_manager,
- pyomo.solvers.plugins.smanager.\
- phpyro.SolverManager_PHPyro):
- self.deactivate_ph_objective_weight_terms()
- self.deactivate_ph_objective_proximal_terms()
-
- def _clear_bundle_instances(self):
-
- for bundle_name, bundle_instance in iteritems(self._bundle_binding_instance_map):
- for scenario_name in self._bundle_scenario_instance_map[bundle_name]:
- bundle_instance.del_component(scenario_name)
-
- self._bundle_binding_instance_map = {}
- self._bundle_scenario_instance_map = {}
- #
- # prints a summary of all collected time statistics
- #
-
- def print_time_stats(self):
-
- print("PH run-time statistics:")
-
- print("Initialization time= %.2f seconds" % (self._init_end_time - self._init_start_time))
- print("Overall solve time= %.2f seconds" % (self._solve_end_time - self._solve_start_time))
- print("Scenario solve time= %.2f seconds" % self._cumulative_solve_time)
- print("Average update time= %.2f seconds" % self._cumulative_xbar_time)
- print("Weight update time= %.2f seconds" % self._cumulative_weight_time)
-
- #
- # a utility to determine whether to output weight / average / etc. information for
- # a variable/node combination. when the printing is moved into a callback/plugin,
- # this routine will go there. for now, we don't dive down into the node resolution -
- # just the variable/stage.
- #
-
- def should_print(self, stage, variable):
-
- if self._output_continuous_variable_stats is False:
-
- variable_type = variable.domain
-
- if (isinstance(variable_type, IntegerSet) is False) and (isinstance(variable_type, BooleanSet) is False):
-
- return False
-
- return True
-
- #
- # outputs current state of all convergers that I know about.
- #
-
- def printConvergerStatus(self):
-
- for converger in self._convergers:
-
- metric_format_string = ""
- if converger._convergence_threshold >= 0.0001:
- metric_format_string += "%14.4f"
- else:
- metric_format_string += "%14.3e"
-
- print("Converger=%20s value is %12s - threshold reached=%s" % (converger._name,
- "None" if converger.lastMetric() == None else (metric_format_string % converger.lastMetric()),
- converger.isConverged(self)))
-
- #
- # pretty-prints the state of the current variable averages, weights, and values.
- # inputs are booleans indicating which components should be output.
- #
-
- def pprint(self,
- output_averages,
- output_weights,
- output_values,
- output_fixed,
- output_rhos,
- output_only_statistics=False,
- output_only_nonconverged=False,
- report_stage_costs=True,
- output_no_statistics=False ):
-
- if self._initialized is False:
- raise RuntimeError("PH is not initialized - cannot invoke "
- "pprint() method")
-
- def _print_node_var(variable_name,
- tree_node,
- num_outputs_this_variable=0):
-
- if not output_only_statistics:
- sys.stdout.write(" (Scenarios: ")
- for scenario in tree_node._scenarios:
- sys.stdout.write(str(scenario.name)+" ")
- if scenario == tree_node._scenarios[-1]:
- sys.stdout.write(")\n")
-
- variable_indices = tree_node._variable_indices[variable_name]
-
- # this is moderately redundant, but shouldn't show
- # up in profiles - printing takes more time than
- # computation. determine the maximimal index
- # string length, so we can output readable column
- # formats.
- max_index_string_length = 0
- for index in variable_indices:
- if index != None:
- this_index_length = len(indexToString(index))
- if this_index_length > max_index_string_length:
- max_index_string_length = this_index_length
-
- for index in sorted(variable_indices):
-
- # track, so we don't output the variable index
- # more than once.
- num_outputs_this_index = 0
-
- # determine if the variable/index pair is used
- # across the set of scenarios (technically, it
- # should be good enough to check one
- # scenario). ditto for "fixed" status. fixed
- # does imply unused (see note below), but we
- # care about the fixed status when outputting
- # final solutions.
-
- # should be consistent across scenarios, so
- # one "unused" flags as invalid.
- variable_id = \
- tree_node._name_index_to_id[variable_name,index]
- is_fixed = tree_node.is_variable_fixed(variable_id)
-
- is_not_stale = \
- all((not scenario.is_variable_stale(tree_node,
- variable_id)) \
- for scenario in tree_node._scenarios)
-
- # IMPT: this is far from obvious, but
- # variables that are fixed will -
- # because presolve will identify them as
- # constants and eliminate them from all
- # expressions - be flagged as "unused"
- # and therefore not output.
-
- if ((output_fixed) and (is_fixed)) or \
- ((is_not_stale) and (not is_fixed)):
-
- minimum_value = tree_node._minimums[variable_id]
- average_value = tree_node._averages[variable_id]
- maximum_value = tree_node._maximums[variable_id]
-
- # there really isn't a default need to
- # output variables whose values are equal
- # to 0 across-the-board. and there is good
- # reason not to, i.e., the volume of
- # output.
- if ((fabs(minimum_value) > self._integer_tolerance) or \
- (fabs(maximum_value) > self._integer_tolerance)) or\
- (self._report_for_zero_variable_values is True):
-
- if (fabs(maximum_value - minimum_value) <= \
- self._integer_tolerance) and \
- (output_only_nonconverged == True):
- pass
- else:
- num_outputs_this_variable += 1
- num_outputs_this_index += 1
-
- if num_outputs_this_variable == 1:
- sys.stdout.write(" Variable: "
- + variable_name+'\n')
-
- if num_outputs_this_index == 1:
- if index is not None:
- format_string = \
- (" Index: %"
- +str(max_index_string_length)+"s")
- sys.stdout.write(format_string
- % indexToString(index))
-
- if len(stage._tree_nodes) > 1:
- sys.stdout.write("\n")
- sys.stdout.write(" Tree Node: %s"
- % (tree_node.name))
-
- if output_values:
- if output_only_statistics is False:
- sys.stdout.write("\tValues: ")
- last_scenario = tree_node._scenarios[-1]
- for scenario in tree_node._scenarios:
- scenario_probability = \
- scenario._probability
- this_value = \
- scenario._x[tree_node.name]\
- [variable_id]
- # this helps eliminate -0.0 from
- # showing up in output, which makes
- # baseline testing very difficult in
- # Python 3
- if this_value == 0:
- this_value = 0
- if not output_only_statistics:
- valstr = ("%12.4f" % this_value)
- if float(valstr) == 0:
- valstr = ("%12.4f" % (0))
- sys.stdout.write(valstr)
- if scenario is last_scenario:
- if output_only_statistics:
- # there technically is not
- # any good reason not to
- # always report the min
- # and max; the only reason
- # we're not doing this
- # currently is to avoid
- # updating our regression
- # test baseline output.
- sys.stdout.write(
- " Min: %12.4f"
- % (minimum_value))
- sys.stdout.write(
- " Avg: %12.4f"
- % (average_value))
- sys.stdout.write(
- " Max: %12.4f"
- % (maximum_value))
- if output_no_statistics:
- raise RuntimeError(
- "output_only_statistics "
- "and output_no_statistics "
- "are both set in pprint")
- else:
- if not output_no_statistics:
- sys.stdout.write(
- " Max-Min: %12.4f"
- % (maximum_value - \
- minimum_value))
- sys.stdout.write(
- " Avg: %12.4f"
- % (average_value))
- sys.stdout.write("\n")
- if output_weights:
- sys.stdout.write(" Weights: ")
- for scenario in tree_node._scenarios:
- sys.stdout.write(
- "%12.4f"
- % scenario._w[tree_node.name]\
- [variable_id])
- if output_rhos:
- sys.stdout.write(" Rhos: ")
- for scenario in tree_node._scenarios:
- sys.stdout.write(
- "%12.4f"
- % scenario._rho[tree_node.name]\
- [variable_id])
-
- if output_averages:
- sys.stdout.write(" Average: %12.4f"
- % (average_value))
- if output_weights or output_rhos or output_values:
- sys.stdout.write("\n")
-
- return num_outputs_this_variable
-
- def _print_stage_var(variable_name, stage=None, node=None):
- assert (stage is None)^(node is None)
-
- # track, so we don't output the variable names unless
- # there is an entry to report.
- num_outputs_this_variable = 0
-
- for tree_node in stage._tree_nodes:
-
- num_outputs_this_variable += \
- _print_node_var(
- variable_name,
- tree_node,
- num_outputs_this_variable=num_outputs_this_variable)
-
- return num_outputs_this_variable
-
- # print tree nodes and associated variable/xbar/ph information
- # in stage-order we don't blend in the last stage, so we don't
- # current care about printing the associated information.
- for stage in self._scenario_tree._stages[:-1]:
-
- print(" Stage: %s" % (stage.name))
-
- # tracks the number of outputs on a per-index basis.
- num_outputs_this_stage = 0
-
- for variable_name in sorted(stage._variable_templates):
- num_outputs_this_stage += _print_stage_var(variable_name,
- stage)
- for tree_node in sorted(stage._tree_nodes, key=lambda x: x.name):
- if len(tree_node._variable_templates) > 0:
- print(" Node: %s" % (tree_node.name))
- for variable_name in sorted(tree_node._variable_templates):
- num_outputs_this_node = _print_node_var(variable_name,
- tree_node)
- if num_outputs_this_node == 0:
- print("\t\tNo non-converged variables in node")
- num_outputs_this_stage += num_outputs_this_node
-
- if num_outputs_this_stage == 0:
- print("\t\tNo non-converged variables in stage")
-
- if not report_stage_costs:
- continue
-
- # cost variables aren't blended, so go through the gory
- # computation of min/max/avg. we currently always print
- # these.
- # TODO: This loop needs to change to handle
- # per-node cost declarations (they may
- # have different component names across
- # the same time stage)
- cost_variable_name = stage.nodes[0]._cost_variable[0]
- cost_variable_index = stage.nodes[0]._cost_variable[1]
- print(" Cost Variable: "
- +cost_variable_name+indexToString(cost_variable_index))
- for tree_node in stage._tree_nodes:
- sys.stdout.write(" Tree Node: %s"
- % (tree_node.name))
- if output_only_statistics is False:
- sys.stdout.write(" (Scenarios: ")
- for scenario in tree_node._scenarios:
- sys.stdout.write(str(scenario.name)+" ")
- if scenario == tree_node._scenarios[-1]:
- sys.stdout.write(")\n")
- maximum_value = 0.0
- minimum_value = 0.0
- prob_sum_values = 0.0
- sum_prob = 0.0
- num_values = 0
- first_time = True
- if output_only_statistics is False:
- sys.stdout.write(" Values: ")
- else:
- sys.stdout.write(" ")
- for scenario in tree_node._scenarios:
- this_value = scenario._stage_costs[stage.name]
- # this helps eliminate -0.0 from
- # showing up in output, which makes
- # baseline testing very difficult in
- # Python 3
- if this_value == 0:
- this_value = 0
- if output_only_statistics is False:
- if this_value is not None:
- valstr = ("%12.4f" % this_value)
- if float(valstr) == 0:
- valstr = ("%12.4f" % (0))
- sys.stdout.write(valstr)
- else:
- # this is a hack, in case the stage cost
- # variables are not returned. ipopt does
- # this occasionally, for example, if stage
- # cost variables are constrained to a
- # constant value (and consequently
- # preprocessed out).
- sys.stdout.write("%12s" % "Not Reported")
- if this_value is not None:
- num_values += 1
- prob_sum_values += scenario._probability * this_value
- sum_prob += scenario._probability
- if first_time:
- first_time = False
- maximum_value = this_value
- minimum_value = this_value
- else:
- if this_value > maximum_value:
- maximum_value = this_value
- if this_value < minimum_value:
- minimum_value = this_value
- if scenario == tree_node._scenarios[-1]:
- if num_values > 0:
- if output_only_statistics:
- sys.stdout.write(" Min: %12.4f"
- % (minimum_value))
- if (sum_prob > 0.0):
- sys.stdout.write(" Avg: %12.4f"
- % (prob_sum_values/sum_prob))
- sys.stdout.write(" Max: %12.4f"
- % (maximum_value))
- else:
- sys.stdout.write(" Max-Min: %12.4f"
- % (maximum_value-minimum_value))
- if (sum_prob > 0.0):
- sys.stdout.write(" Avg: %12.4f"
- % (prob_sum_values/sum_prob))
- sys.stdout.write("\n")
diff --git a/pyomo/pysp/phboundbase.py b/pyomo/pysp/phboundbase.py
deleted file mode 100644
index 76616ce75f3..00000000000
--- a/pyomo/pysp/phboundbase.py
+++ /dev/null
@@ -1,612 +0,0 @@
-# ___________________________________________________________________________
-#
-# Pyomo: Python Optimization Modeling Objects
-# Copyright 2017 National Technology and Engineering Solutions of Sandia, LLC
-# Under the terms of Contract DE-NA0003525 with National Technology and
-# Engineering Solutions of Sandia, LLC, the U.S. Government retains certain
-# rights in this software.
-# This software is distributed under the 3-clause BSD License.
-# ___________________________________________________________________________
-
-from __future__ import division
-
-import os
-import logging
-import copy
-
-from six import iteritems
-from operator import itemgetter
-
-from pyomo.pysp.phutils import indexToString
-from pyomo.opt import UndefinedData
-
-logger = logging.getLogger('pyomo.pysp')
-
-# ===== various ways to extract xhat =======
-def ExtractInternalNodeSolutionsWithClosestScenarioNodebyNode(ph):
- # find the scenario closest to xbar at each node and return it
-
- node_solutions = {}
-
- def ScenXbarDist(scen, tree_node):
- # crude estimate of stdev to get a approx, truncated z score
-
- dist = 0
- xbars = tree_node._xbars
- mins = tree_node._minimums
- maxs = tree_node._maximums
- for variable_id in tree_node._standard_variable_ids:
- diff = scen._x[tree_node._name][variable_id] - xbars[variable_id]
- s_est = (maxs[variable_id] - mins[variable_id]) / 4.0 # close enough to stdev
- if s_est > ph._integer_tolerance:
- dist += min(3, abs(diff)/s_est) # truncated z score
- return dist
-
- ClosestScen = None
- ClosestScenDist = None
- for stage in ph._scenario_tree._stages[:-1]:
- for tree_node in stage._tree_nodes:
- this_node_sol = node_solutions[tree_node._name] = {}
- for scenario in tree_node._scenarios:
- if ClosestScenDist == 0:
- break
- thisdist = ScenXbarDist(scenario, tree_node)
- if ClosestScenDist == None or thisdist < ClostScenDist:
- ClosestScendist = thisdist
- ClosestScen = scenario
-
- for variable_id in tree_node._standard_variable_ids:
- ## print ("extracting for "+str(variable_id)+" the value "+str(ClosestScen._x[tree_node._name][variable_id]))
- this_node_sol[variable_id] = ClosestScen._x[tree_node._name][variable_id]
-
- return node_solutions
-
-def ExtractInternalNodeSolutionsWithDiscreteRounding(ph):
-
- node_solutions = {}
- for stage in ph._scenario_tree._stages[:-1]:
- for tree_node in stage._tree_nodes:
- this_node_sol = node_solutions[tree_node._name] = {}
- xbars = tree_node._xbars
- for variable_id in tree_node._standard_variable_ids:
- if not tree_node.is_variable_discrete(variable_id):
- this_node_sol[variable_id] = xbars[variable_id]
- else:
- # rounded xbar, which has a MUCH
- # better chance of being feasible
- this_node_sol[variable_id] = \
- int(round(xbars[variable_id]))
-
- return node_solutions
-
-def ExtractInternalNodeSolutionsWithDiscreteVoting(ph):
-
- node_solutions = {}
- for stage in ph._scenario_tree._stages[:-1]:
- for tree_node in stage._tree_nodes:
- this_node_sol = node_solutions[tree_node._name] = {}
- xbars = tree_node._xbars
- for variable_id in tree_node._standard_variable_ids:
- if not tree_node.is_variable_discrete(variable_id):
- this_node_sol[variable_id] = xbars[variable_id]
- else:
- # for discrete variables use a weighted vote
- # Note: for binary this can just be computed
- # by rounding the xbar (assuming it's an
- # average). However, the following
- # works for binary and general integer,
- # where rounding the average is not
- # necessarily the same as a weighted vote
- # outcome.
- vals = [int(round(scenario._x[tree_node._name][variable_id]))\
- for scenario in tree_node._scenarios]
- bins = list(set(vals))
- vote = []
- for val in bins:
- vote.append(sum(scenario._probability \
- for scenario in tree_node._scenarios \
- if int(round(scenario._x[tree_node._name][variable_id])) == val))
-
- # assign the vote outcome
- this_node_sol[variable_id] = bins[vote.index(max(vote))]
-
- return node_solutions
-
-def ExtractInternalNodeSolutionsWithSlamming(ph):
- from pyomo.pysp.plugins.wwphextension import _parse_yaml_file
- # Since it was a file,
- # assume that the argument was a json file with slamming instructions.
- # This will ignore suffixes we don't care about.
- # If there are no instructions use xbar.
- # Note: there is an implicit pecking order.
- print ("For x-hat, using slamming suffixes in",ph._xhat_method)
- slamdict = {}
- for suffix_name, suffix_value, variable_ids in \
- _parse_yaml_file(ph, ph._xhat_method):
- for node_name, node_variable_ids in iteritems(variable_ids):
- for variable_id in node_variable_ids:
- if variable_id not in slamdict:
- slamdict[variable_id] = {}
- slamdict[variable_id][suffix_name] = suffix_value
-
- verbose = ph._verbose
- node_solutions = {}
- for stage in ph._scenario_tree._stages[:-1]:
- for tree_node in stage._tree_nodes:
- this_node_sol = node_solutions[tree_node._name] = {}
- xbars = tree_node._xbars
- mins = tree_node._minimums
- maxs = tree_node._maximums
- warnb = False # did the user do something less than cool?
-
- for variable_id in tree_node._standard_variable_ids:
- if verbose:
- variable_name, index = tree_node._variable_ids[variable_id]
- full_variable_name = variable_name+indexToString(index)
- print ("Setting x-hat for",full_variable_name)
- if variable_id not in slamdict or slamdict[variable_id]['CanSlamToAnywhere']:
- if not tree_node.is_variable_discrete(variable_id):
- this_node_sol[variable_id] = xbars[variable_id]
- if verbose:
- print (" x-bar", this_node_sol[variable_id])
- else:
- this_node_sol[variable_id] = int(round(xbars[variable_id]))
- if verbose:
- print (" rounded x-bar", this_node_sol[variable_id])
- elif slamdict[variable_id]['CanSlamToMin']:
- this_node_sol[variable_id] = mins[variable_id]
- if verbose:
- print (" min over scenarios", this_node_sol[variable_id])
- elif slamdict[variable_id]['CanSlamToMax']:
- this_node_sol[variable_id] = maxs[variable_id]
- if verbose:
- print (" max over scenarios", this_node_sol[variable_id])
- elif slamdict[variable_id]['CanSlamToLB']:
- warnb = True
- this_node_sol[variable_id] = mins[variable_id]
- if verbose:
- print (" Lower Bound", this_node_sol[variable_id])
- elif slamdict[variable_id]['CanSlamToUB']:
- warnb = True
- this_node_sol[variable_id] = maxs[variable_id]
- if verbose:
- print (" Upper Bound", this_node_sol[variable_id])
- if warnb:
- print ("Warning: for xhat determination from file %s, some variables had an upper or lower bound slam but not a corresponding min or max", ph._xhat_method)
- return node_solutions
-
-
-#### call one ####
-
-def ExtractInternalNodeSolutionsforInner(ph):
- # get xhat for the inner bound (upper bound for a min problem)
- if ph._xhat_method == "closest-scenario":
- return ExtractInternalNodeSolutionsWithClosestScenarioNodebyNode(ph)
- elif ph._xhat_method == "voting":
- return ExtractInternalNodeSolutionsWithDiscreteVoting(ph)
- elif ph._xhat_method == "rounding":
- return ExtractInternalNodeSolutionsWithDiscreteRounding(ph)
- elif os.path.isfile(ph._xhat_method):
- return ExtractInternalNodeSolutionsWithSlamming(ph)
- else:
- raise RuntimeError("Unknown x-hat determination method=%s specified in PH - unable to extract candidate solution for inner bound computation" % ph._xhat_method)
-
-#============== end xhat code ==========
-
-class _PHBoundBase(object):
-
- # Nothing interesting
- STATUS_NONE = 0b0000
- # Used mipgap
- STATUS_MIPGAP = 0b0001
- # Solution gap was not reported
- STATUS_GAP_NA = 0b0010
- # Solution has nonzero
- # optimality gap
- STATUS_GAP_NONZERO = 0b0100
- # One or more subproblems were infeasible
- STATUS_SOLVE_FAILED = 0b1000
-
- WARNING_MESSAGE = {}
-
- # No mipgap detected, but a
- # nonzero solution gap was
- # found
- WARNING_MESSAGE[0b0100] = \
- "** Possibly Conservative - Mipgap Unknown, And Nonzero Solution Gap Reported **"
-
- # Used mipgap and solver did
- # report a solution gap
- WARNING_MESSAGE[0b0101] = \
- "** Possibly Conservative - Mipgap Detected, And Nonzero Solution Gap Reported **"
-
- # Used mipgap and solver did NOT
- # report a solution gap
- WARNING_MESSAGE[0b0111] = \
- "** Extreme Caution - Mipgap Detected, But No Solution Gap Information Obtained - Bound May Be Invalid **"
- WARNING_MESSAGE[0b0011] = \
- "** Extreme Caution - Mipgap Detected, But No Solution Gap Information Obtained - Bound May Be Invalid **"
-
- WARNING_MESSAGE[0b0110] = \
- "** Caution - Solver Did Not Provide Solution Gap Information - Bound May Be Invalid **"
- WARNING_MESSAGE[0b0010] = \
- "** Caution - Solver Did Not Provide Solution Gap Information - Bound May Be Invalid **"
-
- # Tags for operations for which we need to undo in order to return
- # ph to its original state
- SOLUTION_CACHING = (1,)
- VARIABLE_FREEING = (2,)
- DEACTIVATE_PROXIMAL = (3,)
- DEACTIVATE_WEIGHT = (4,)
- CACHE_WEIGHTS = (5,)
- TREE_VARIABLE_FIXING = (6,)
-
- def __init__(self):
-
- # the interval for which bound computations are performed
- # during the ph iteration k solves. A bound update is always
- # performed at iteration 0 with the (non-PH-augmented)
- # objective and the update interval starts with a bound update
- # at ph iteration 1.
- self._update_interval = 1
-
- # keys are ph iteration except for the trival bound whose key
- # is None
- self._outer_bound_history = {}
- self._outer_status_history = {}
- self._inner_bound_history = {}
- self._inner_status_history = {}
-
- self._is_minimizing = True
-
- # stack of operations modifying ph
- self._stack = []
-
- def RestoreLastPHChange(self, ph):
- if len(self._stack):
- tmp_restore_stack = [self._stack.pop()]
- real_stack = self._stack
- self._stack = tmp_restore_stack
- self.RestorePH(ph)
- self._stack = real_stack
-
- def RestorePH(self, ph):
-
- while self._stack:
-
- op, op_data = self._stack.pop()
-
- if op == self.SOLUTION_CACHING:
-
- ph.restoreCachedSolutions(op_data, release_cache=True)
-
- elif op == self.VARIABLE_FREEING:
-
- ph_fixed, ph_fix_queue = op_data
-
- # Refix all previously fixed variables
- for tree_node in ph._scenario_tree._tree_nodes:
- for variable_id, fix_value in iteritems(ph_fixed[tree_node._name]):
- tree_node.fix_variable(variable_id, fix_value)
-
- # Push fixed variable statuses to instances (or
- # transmit to the phsolverservers)
- ph._push_fix_queue_to_instances()
-
- # Restore the fix_queue
- for tree_node in ph._scenario_tree._tree_nodes:
- tree_node._fix_queue.update(
- ph_fix_queue[tree_node._name])
-
- elif op == self.TREE_VARIABLE_FIXING:
-
- ph_fixed, ph_fix_queue = op_data
-
- # Unfix all non-leaf variables that were fixed to xbar
- for stage in ph._scenario_tree._stages[:-1]:
- for tree_node in stage._tree_nodes:
- for variable_id in tree_node._standard_variable_ids:
- tree_node.free_variable(variable_id)
-
- # Refix all previously fixed variables
- for tree_node in ph._scenario_tree._tree_nodes:
- for variable_id, fix_value in iteritems(ph_fixed[tree_node._name]):
- tree_node.fix_variable(variable_id, fix_value)
-
- # Push fixed variable statuses to instances (or
- # transmit to the phsolverservers)
- ph._push_fix_queue_to_instances()
-
- # Restore the fix_queue
- for tree_node in ph._scenario_tree._tree_nodes:
- tree_node._fix_queue.update(
- ph_fix_queue[tree_node._name])
-
- elif op == self.DEACTIVATE_PROXIMAL:
-
- assert op_data == None
- ph.activate_ph_objective_proximal_terms()
-
- elif op == self.DEACTIVATE_WEIGHT:
-
- assert op_data == None
- ph.activate_ph_objective_weight_terms()
-
- elif op == self.CACHE_WEIGHTS:
-
- weights = op_data
- for scenario in ph._scenario_tree._scenarios:
- cached_weights = weights[scenario._name]
- scenario._w = copy.deepcopy(cached_weights)
-
- else:
-
- raise ValueError("Unexpected Operation Flag - "
- "This is a developer error")
-
- def CachePHSolution(self, ph):
-
- # Cache the current state of the ph instances and scenario
- # tree so we don't affect ph behavior by changing the solution
- # on the scenario tree / scenario instances prior to the next
- # solve
- cache_id = ph.cacheSolutions()
-
- self._stack.append((self.SOLUTION_CACHING, cache_id))
-
- def RelaxPHFixedVariables(self, ph):
-
- # Save the current fixed state and fix queue
- ph_fixed = dict((tree_node._name, copy.deepcopy(tree_node._fixed)) \
- for tree_node in ph._scenario_tree._tree_nodes)
-
- ph_fix_queue = \
- dict((tree_node._name, copy.deepcopy(tree_node._fix_queue)) \
- for tree_node in ph._scenario_tree._tree_nodes)
-
- # Free all currently fixed variables
- for tree_node in ph._scenario_tree._tree_nodes:
- tree_node.clear_fix_queue()
- for variable_id in ph_fixed[tree_node._name]:
- tree_node.free_variable(variable_id)
-
- # Push freed variable statuses on instances (or
- # transmit to the phsolverservers)
- ph._push_fix_queue_to_instances()
-
- self._stack.append((self.VARIABLE_FREEING,
- (ph_fixed, ph_fix_queue)))
-
- def FixScenarioTreeVariables(self, ph, fix_values):
-
- # Save the current fixed state and fix queue and clear the fix queue
- ph_fixed = {}
- ph_fix_queue = {}
- for tree_node in ph._scenario_tree._tree_nodes:
- ph_fixed[tree_node._name] = copy.deepcopy(tree_node._fixed)
- ph_fix_queue[tree_node._name] = copy.deepcopy(tree_node._fix_queue)
- tree_node.clear_fix_queue()
-
- # Fix everything in fix_values
- for node_name in fix_values:
- tree_node = ph._scenario_tree._tree_node_map[node_name]
- for variable_id, fix_val in iteritems(fix_values[node_name]):
- tree_node.fix_variable(variable_id, fix_val)
-
- # Push fixed variable statuses on instances (or
- # transmit to the phsolverservers)
- ph._push_fix_queue_to_instances()
-
- self._stack.append((self.TREE_VARIABLE_FIXING,
- (ph_fixed, ph_fix_queue)))
-
- def DeactivatePHObjectiveProximalTerms(self, ph):
-
- ph.deactivate_ph_objective_proximal_terms()
-
- self._stack.append((self.DEACTIVATE_PROXIMAL, None))
-
- def DeactivatePHObjectiveWeightTerms(self, ph):
-
- ph.deactivate_ph_objective_weight_terms()
-
- self._stack.append((self.DEACTIVATE_WEIGHT, None))
-
- def CachePHWeights(self, ph):
-
- weights = {}
- for scenario in ph._scenario_tree._scenarios:
- weights[scenario._name] = \
- copy.deepcopy(scenario._w)
-
- self._stack.append((self.CACHE_WEIGHTS,weights))
-
- #
- # Calculates the probability weighted sum of all suproblem (or
- # bundle) objective functions. This function assumes the current
- # subproblem solutions, in particular the objective values stored
- # on the scenario objects, are appropriate for computing an outer
- # bound on the true optimal objective value (e.g., lower bound for
- # minimization problem). When a nonzero optimality gap is reported
- # in a scenario/bundle solution, the reported objective value for
- # that scenario/bundle will be relaxed accordingly before
- # including it in the average calculation.
- #
- def ComputeOuterBound(self, ph, storage_key):
-
- if ph._verbose:
- print("Computing objective %s bound" %
- ("outer" if self._is_minimizing else "inner"))
-
- bound_status = self.STATUS_NONE
- if (ph._mipgap is not None) and (ph._mipgap > 0):
- logger.warning("A nonzero mipgap was detected when using "
- "the PH bound plugin. The bound "
- "computation may as a result be conservative.")
- bound_status |= self.STATUS_MIPGAP
-
- objective_bound = 0.0
-
- # If we are bundling, we compute the objective bound in a way
- # such that we can still use solution gap information if it
- # is available.
- if ph._scenario_tree.contains_bundles():
-
- for scenario_bundle in ph._scenario_tree._scenario_bundles:
-
- bundle_gap = ph._gaps[scenario_bundle._name]
- bundle_objective_value = 0.0
-
- for scenario in scenario_bundle._scenario_tree._scenarios:
- # The objective must be taken from the scenario
- # objects on PH full scenario tree
- scenario_objective = \
- ph._scenario_tree.get_scenario(scenario._name)._objective
- # And we need to make sure to use the
- # probabilities assigned to scenarios in the
- # compressed bundle scenario tree
- bundle_objective_value += scenario_objective * \
- scenario._probability
-
- if not isinstance(bundle_gap, UndefinedData):
- if bundle_gap > 0:
- bound_status |= self.STATUS_GAP_NONZERO
- if self._is_minimizing:
- bundle_objective_value -= bundle_gap
- else:
- bundle_objective_value += bundle_gap
- else:
- bound_status |= self.STATUS_GAP_NA
-
- objective_bound += bundle_objective_value * \
- scenario_bundle._probability
-
- else:
-
- for scenario in ph._scenario_tree._scenarios:
-
- this_objective_value = scenario._objective
- this_gap = ph._gaps[scenario._name]
-
- if not isinstance(this_gap, UndefinedData):
- if this_gap > 0:
- bound_status |= self.STATUS_GAP_NONZERO
- if self._is_minimizing:
- this_objective_value -= this_gap
- else:
- this_objective_value += this_gap
- else:
- bound_status |= self.STATUS_GAP_NA
-
- objective_bound += (scenario._probability * this_objective_value)
- if ph._verbose:
- print("Computed objective %s bound=%12.4f\t%s"
- % (("outer" if self._is_minimizing else "inner"),
- objective_bound,
- self.WARNING_MESSAGE.get(bound_status,"")))
-
- return objective_bound, bound_status
-
- #
- # Calculates the probability weighted sum of all suproblem (or
- # bundle) objective functions. This function assumes the current
- # subproblem solutions represent valid, non-anticpative solutions
- # are appropriate for computing an inner bound on the optimal
- # objective value (e.g., upper bound for minimization problem).
- #
- def ComputeInnerBound(self, ph, storage_key):
-
- if ph._verbose:
- print("Computing objective %s bound" %
- ("inner" if self._is_minimizing else "outer"))
-
- objective_bound = 0.0
- for scenario in ph._scenario_tree._scenarios:
- objective_bound += (scenario._probability * scenario._objective)
-
- if ph._verbose:
- print("Computed objective %s bound=%12.4f"
- % (("inner" if self._is_minimizing else "outer"),
- objective_bound))
-
- return objective_bound, self.STATUS_NONE
-
- def ReportBestBound(self):
-
- print("")
- best_inner_bound = None
- if len(self._inner_bound_history) > 0: # dlw May 2016
- if self._is_minimizing:
- best_inner_bound = min(self._inner_bound_history.values())
- else:
- best_inner_bound = max(self._inner_bound_history.values())
- print("Best Incumbent Bound: %15s"
- % (best_inner_bound))
-
- best_bound = None
- if len(self._outer_bound_history) > 0:
- if self._is_minimizing:
- best_bound_key, best_bound = max(self._outer_bound_history.items(),
- key=itemgetter(1))
- else:
- best_bound_key, best_bound = min(self._outer_bound_history.items(),
- key=itemgetter(1))
- print("Best Dual Bound: %15s\t%s"
- % (best_bound,
- self.WARNING_MESSAGE.get(self._outer_status_history[best_bound_key],"")))
-
- print("Absolute Duality Gap: %15s"
- % abs(best_inner_bound - best_bound))
- relgap = float('inf')
- if (best_inner_bound != float('inf')) and \
- (best_inner_bound != float('-inf')) and \
- (best_bound != float('-inf')) and \
- (best_bound != float('-inf')):
- relgap = abs(best_inner_bound - best_bound) / \
- (1e-10+abs(best_bound))
-
- print("Relative Gap: %15s %s" % (relgap*100.0,"%"))
- print("")
- output_filename = "phbestbound.txt"
- output_file = open(output_filename,"w")
- output_file.write("Incumbent: %.17g\n" % best_inner_bound)
- output_file.write("Dual: %.17g\n" % best_bound)
- output_file.close()
- print("Best bound written to file="+output_filename)
-
- def ReportBoundHistory(self):
- print("")
- print("Bound History")
- print("%15s %15s %15s" % ("Iteration", "Inner Bound", "Outer Bound"))
- keys = list(self._outer_bound_history.keys())
- if None in keys:
- keys.remove(None)
- print("%15s %15s %15s\t\t%s"
- % ("Trivial",
- " - ",
- self._outer_bound_history[None],
- self.WARNING_MESSAGE.get(self._outer_status_history[None],"")))
- for key in sorted(keys):
- print("%15s %15s %15s\t\t%s"
- % (key,
- self._inner_bound_history[key],
- self._outer_bound_history[key],
- self.WARNING_MESSAGE.get(self._outer_status_history[key],"")))
- print("")
- output_filename = "phbound.txt"
- with open(output_filename,"w") as output_file:
- output_file.write('Inner Bound:\n')
- for key in sorted(self._inner_bound_history.keys()):
- output_file.write(" %d: %.17g\n"
- % (key,
- self._inner_bound_history[key]))
- output_file.write('Outer Bound:\n')
- if None in self._outer_bound_history:
- output_file.write(" Trivial: %.17g\n"
- % (self._outer_bound_history[None]))
- for key in sorted(keys):
- output_file.write(" %d: %.17g\n"
- % (key,
- self._outer_bound_history[key]))
- print("Bound history written to file="+output_filename)
-
diff --git a/pyomo/pysp/phextension.py b/pyomo/pysp/phextension.py
deleted file mode 100644
index 41fb36f79ec..00000000000
--- a/pyomo/pysp/phextension.py
+++ /dev/null
@@ -1,119 +0,0 @@
-# ___________________________________________________________________________
-#
-# Pyomo: Python Optimization Modeling Objects
-# Copyright 2017 National Technology and Engineering Solutions of Sandia, LLC
-# Under the terms of Contract DE-NA0003525 with National Technology and
-# Engineering Solutions of Sandia, LLC, the U.S. Government retains certain
-# rights in this software.
-# This software is distributed under the 3-clause BSD License.
-# ___________________________________________________________________________
-
-__all__ = ['IPHExtension','IPHSolverServerExtension']
-
-from pyomo.common.plugin import Interface
-
-# IMPORTANT: No variable fixing should occur until the post-iteration solves, following variable statistic updates.
-# Otherwise, variable statistics will not be correctly maintained.
-
-class IPHExtension(Interface):
-
- def reset(self, ph):
- """Invoked to reset the state of a plugin to that of post-construction"""
- pass
-
- def pre_ph_initialization(self, ph):
- """Called before PH initialization"""
- pass
-
- def post_instance_creation(self, ph):
- """Called after the instances have been created"""
- pass
-
- def post_ph_initialization(self, ph):
- """Called after PH initialization"""
- pass
-
- ##########################################################
- # the following callbacks are specific to synchronous PH #
- ##########################################################
-
- def post_iteration_0_solves(self, ph):
- """Called after the iteration 0 solves"""
- pass
-
- def post_iteration_0(self, ph):
- """Called after the iteration 0 solves, averages computation, and weight computation"""
- pass
-
- def pre_iteration_k_solves(self, ph):
- """Called before each iteration k solve"""
- pass
-
- def post_iteration_k_solves(self, ph):
- """Called after the iteration k solves"""
- pass
-
- def post_iteration_k(self, ph):
- """Called after the iteration k is finished"""
- pass
-
- ##########################################################
-
- ###########################################################
- # the following callbacks are specific to asynchronous PH #
- ###########################################################
-
- def pre_asynchronous_solves(self, ph):
- """Called before the asynchronous solve loop is executed"""
- # IMPT: This is only called once, and after iteration 0.
- pass
-
- def asynchronous_pre_scenario_queue(self, ph, scenario_name):
- """Called before the scenario solve has been queued"""
- pass
-
- def post_asynchronous_var_w_update(self, ph, subproblem_solve_counts):
- """Called after a batch of asynchronous sub-problems are solved and corresponding statistics are updated"""
- pass
-
- def post_asynchronous_solves(self, ph):
- """Called after the asynchronous solve loop is executed"""
- # IMPT: This is only called once, after asychronous processing loop completes.
- pass
-
- ###########################################################
-
- def post_ph_execution(self, ph):
- """Called after PH has terminated"""
- pass
-
-
-class IPHSolverServerExtension(Interface):
-
- def pre_ph_initialization(self, ph):
- """Called before PH initialization."""
- pass
-
- def post_instance_creation(self, ph):
- """Called after the instances have been created."""
- pass
-
- def post_ph_initialization(self, ph):
- """Called after PH initialization"""
- pass
-
- def pre_iteration_0_solve(self, ph):
- """Called before the iteration 0 solve begins"""
- pass
-
- def post_iteration_0_solve(self, ph):
- """Called after the iteration 0 solve is finished"""
- pass
-
- def pre_iteration_k_solve(self, ph):
- """Called before the iteration k solve begins"""
- pass
-
- def post_iteration_k_solve(self, ph):
- """Called after the iteration k solve is finished"""
- pass
diff --git a/pyomo/pysp/phinit.py b/pyomo/pysp/phinit.py
deleted file mode 100644
index b88b520f333..00000000000
--- a/pyomo/pysp/phinit.py
+++ /dev/null
@@ -1,1327 +0,0 @@
-# ___________________________________________________________________________
-#
-# Pyomo: Python Optimization Modeling Objects
-# Copyright 2017 National Technology and Engineering Solutions of Sandia, LLC
-# Under the terms of Contract DE-NA0003525 with National Technology and
-# Engineering Solutions of Sandia, LLC, the U.S. Government retains certain
-# rights in this software.
-# This software is distributed under the 3-clause BSD License.
-# ___________________________________________________________________________
-
-import sys
-import time
-import contextlib
-import random
-import argparse
-
-from pyutilib.pyro import shutdown_pyro_components
-from pyutilib.misc import import_file
-
-from pyomo.common import pyomo_command
-from pyomo.common.dependencies import pympler_available, attempt_import
-from pyomo.common.plugin import ExtensionPoint, SingletonPlugin
-from pyomo.core.base import maximize, minimize, Var, Suffix
-from pyomo.opt.base import SolverFactory
-from pyomo.opt.parallel import SolverManagerFactory
-from pyomo.opt import undefined
-from pyomo.pysp.phextension import IPHExtension
-from pyomo.pysp.ef_writer_script import ExtensiveFormAlgorithm
-from pyomo.pysp.ph import ProgressiveHedging
-from pyomo.pysp.phutils import (reset_nonconverged_variables,
- reset_stage_cost_variables,
- _OLD_OUTPUT)
-from pyomo.pysp.scenariotree.instance_factory import \
- ScenarioTreeInstanceFactory
-from pyomo.pysp.solutionwriter import ISolutionWriterExtension
-from pyomo.pysp.util.misc import (launch_command,
- load_extensions)
-
-guppy, guppy_available = attempt_import('guppy')
-
-#
-# utility method to construct an option parser for ph arguments,
-# to be supplied as an argument to the runph method.
-#
-
-def construct_ph_options_parser(usage_string):
-
- solver_list = list(SolverFactory)
- solver_list = sorted( filter(lambda x: '_' != x[0], solver_list) )
- solver_help = \
- "Specify the solver with which to solve scenario sub-problems. The " \
- "following solver types are currently supported: %s; Default: cplex"
- solver_help %= ', '.join( solver_list )
-
- parser = argparse.ArgumentParser()
- parser.usage = usage_string
-
- # NOTE: these groups should eventually be queried from
- # the PH, scenario tree, etc. classes (to facilitate re-use)
- inputOpts = parser.add_argument_group('Input Options')
- scenarioTreeOpts = parser.add_argument_group('Scenario Tree Options')
- phOpts = parser.add_argument_group('PH Options')
- solverOpts = parser.add_argument_group('Solver Options')
- postprocessOpts = parser.add_argument_group('Postprocessing Options')
- outputOpts = parser.add_argument_group('Output Options')
- otherOpts = parser.add_argument_group('Other Options')
-
- inputOpts.add_argument('-m','--model-directory',
- help='The directory in which all model (reference and scenario) definitions are stored. Default is ".".',
- action="store",
- dest="model_directory",
- type=str,
- default=".")
- inputOpts.add_argument('-i','--instance-directory',
- help='The directory in which all instance (reference and scenario) definitions are stored. This option is required if no callback is found in the model file.',
- action="store",
- dest="instance_directory",
- type=str,
- default=None)
-
- def _objective_sense_type(val):
- if val in ('min','minimize',minimize):
- return minimize
- elif val in ('max','maximize',maximize):
- return maximize
- else:
- return None
- inputOpts.add_argument('-o','--objective-sense-stage-based',
- help='The objective sense to use for the auto-generated scenario instance objective, which is equal to the '
- 'sum of the scenario-tree stage costs. Default is None, indicating an Objective has been declared on the '
- 'reference model.',
- dest="objective_sense",
- type=_objective_sense_type,
- choices=[maximize,'max','maximize',minimize,'min','minimize',None],
- default=None)
- inputOpts.add_argument('--ph-warmstart-file',
- help="Disable iteration 0 solves and warmstarts rho, weight, and xbar parameters from solution file.",
- action="store",
- dest="ph_warmstart_file",
- type=str,
- default=None)
- inputOpts.add_argument('--ph-warmstart-index',
- help="Indicates the index (ph iteration) of the warmstart that should be loaded from a ph history file.",
- action="store",
- dest="ph_warmstart_index",
- type=str,
- default=None)
- inputOpts.add_argument('--bounds-cfgfile',
- help="The name of python script containing a ph_boundsetter_callback function to compute and update scenario variable bounds. Default is None.",
- action="store",
- dest="bounds_cfgfile",
- default=None)
-
- scenarioTreeOpts.add_argument('--scenario-tree-seed',
- help="The random seed associated with manipulation operations on the scenario tree (e.g., down-sampling or bundle creation). Default is None, indicating unassigned.",
- action="store",
- dest="scenario_tree_random_seed",
- type=int,
- default=random.getrandbits(100))
- scenarioTreeOpts.add_argument('--scenario-tree-downsample-fraction',
- help="The proportion of the scenarios in the scenario tree that are actually used. Specific scenarios are selected at random. Default is 1.0, indicating no down-sampling.",
- action="store",
- dest="scenario_tree_downsample_fraction",
- type=float,
- default=1.0)
- scenarioTreeOpts.add_argument('--scenario-bundle-specification',
- help="The name of the scenario bundling specification to be used when executing Progressive Hedging. Default is None, indicating no bundling is employed. If the specified name ends with a .dat suffix, the argument is interpreted as a filename. Otherwise, the name is interpreted as a file in the instance directory, constructed by adding the .dat suffix automatically",
- action="store",
- dest="scenario_bundle_specification",
- default=None)
- scenarioTreeOpts.add_argument('--create-random-bundles',
- help="Specification to create the indicated number of random, equally-sized (to the degree possible) scenario bundles. Default is 0, indicating disabled.",
- action="store",
- dest="create_random_bundles",
- type=int,
- default=None)
-
- phOpts.add_argument('-r','--default-rho',
- help="The default (global) rho for all blended variables. *** Required ***",
- action="store",
- dest="default_rho",
- type=str,
- default="")
- phOpts.add_argument("--xhat-method",
- help="Specify the method used to compute a bounding solution at PH termination. Defaults to 'closest-scenario'. Other variants are: 'voting' and 'rounding'",
- action="store",
- dest="xhat_method",
- type=str,
- default="closest-scenario")
- phOpts.add_argument("--disable-xhat-computation",
- help="Disable computation of xhat at the conclusion of a PH run. Useful *only* when diagnosing PH convergence, as disabling means the solution at converence is not a non-anticipative solution.",
- action="store_true",
- dest="disable_xhat_computation",
- default=False)
- phOpts.add_argument("--overrelax",
- help="Compute weight updates using combination of previous and current variable averages",
- action="store_true",
- dest="overrelax",
- default=False)
- phOpts.add_argument("--nu",
- action="store",
- dest="nu",
- type=float,
- default=1.5)
- phOpts.add_argument("--async",
- help="Run PH in asychronous mode after iteration 0. Default is False.",
- action="store_true",
- dest="async_mode",
- default=False)
- phOpts.add_argument("--async-buffer-length",
- help="Number of scenarios to collect, if in async mode, before doing statistics and weight updates. Default is 1.",
- action="store",
- dest="async_buffer_length",
- type=int,
- default=1)
- phOpts.add_argument('--rho-cfgfile',
- help="The name of python script containing a ph_rhosetter_callback function to compute and update PH rho values. Default is None.",
- action="store",
- dest="rho_cfgfile",
- type=str,
- default=None)
- phOpts.add_argument('--aggregate-cfgfile',
- help="The name of python script containing a ph_aggregategetter_callback function to collect and store aggregate scenario data on PH. Default is None.",
- action="store",
- dest="aggregate_cfgfile",
- type=str,
- default=None)
- phOpts.add_argument('--max-iterations',
- help="The maximum number of PH iterations. Default is 100.",
- action="store",
- dest="max_iterations",
- type=int,
- default=100)
- phOpts.add_argument('--or-convergers',
- help="Terminate when any one of the convergence criterion is satisfied. Defaults to False, i.e., and",
- action="store_true",
- dest="or_convergers",
- default=False)
- phOpts.add_argument('--termdiff-threshold',
- help="The convergence threshold used in the term-diff and normalized term-diff convergence criteria. Default is 0.0001.",
- action="store",
- dest="termdiff_threshold",
- type=float,
- default=0.0001)
- phOpts.add_argument('--enable-free-discrete-count-convergence',
- help="Terminate PH based on the free discrete variable count convergence metric. Default is False.",
- action="store_true",
- dest="enable_free_discrete_count_convergence",
- default=False)
- phOpts.add_argument('--free-discrete-count-threshold',
- help="The convergence threshold used in the criterion based on when the free discrete variable count convergence criterion. Default is 20.",
- action="store",
- dest="free_discrete_count_threshold",
- type=float,
- default=20)
- phOpts.add_argument('--enable-normalized-termdiff-convergence',
- help="Terminate PH based on the normalized termdiff convergence metric. Default is True.",
- action="store_true",
- dest="enable_normalized_termdiff_convergence",
- default=True)
- phOpts.add_argument('--enable-termdiff-convergence',
- help="Terminate PH based on the termdiff convergence metric. Default is False.",
- action="store_true",
- dest="enable_termdiff_convergence",
- default=False)
- phOpts.add_argument('--enable-outer-bound-convergence',
- help="Terminate PH based on the outer bound convergence metric. Default is False.",
- action="store_true",
- dest="enable_outer_bound_convergence",
- default=False)
- phOpts.add_argument('--enable-primal-dual-residual-convergence',
- help="Terminate PH based on the primal-dual residual convergence. Default is False.",
- action="store_true",
- dest="enable_primal_dual_residual_convergence",
- default=False)
- phOpts.add_argument('--enable-inner-outer-convergence',
- help="Terminate PH based on bounds using abs(inner-outer); i.e., *not* relative. Note: setting this does not affect bound computation options. Default is False.",
- action="store_true",
- dest="enable_inner_outer_convergence",
- default=False)
- phOpts.add_argument('--outer-bound-convergence-threshold',
- help="The convergence threshold used in the outer bound convergerence criterion. Default is None, indicating unassigned",
- action="store",
- dest="outer_bound_convergence_threshold",
- type=float,
- default=None)
- phOpts.add_argument('--primal-dual-residual-convergence-threshold',
- help="The convergence threshold used in the primal-dual residual convergerence criterion. Default is 0.0001.",
- action="store",
- dest="primal_dual_residual_convergence_threshold",
- type=float,
- default=0.0001)
- phOpts.add_argument('--inner-outer-convergence-threshold',
- help="The convergence threshold used in the inner-outer convergerence criterion. Default is 0.001.",
- action="store",
- dest="inner_outer_convergence_threshold",
- type=float,
- default=0.001)
- phOpts.add_argument('--linearize-nonbinary-penalty-terms',
- help="Approximate the PH quadratic term for non-binary variables with a piece-wise linear function, using the supplied number of equal-length pieces from each bound to the average",
- action="store",
- dest="linearize_nonbinary_penalty_terms",
- type=int,
- default=0)
- phOpts.add_argument('--breakpoint-strategy',
- help="Specify the strategy to distribute breakpoints on the [lb, ub] interval of each variable when linearizing. 0 indicates uniform distribution. 1 indicates breakpoints at the node min and max, uniformly in-between. 2 indicates more aggressive concentration of breakpoints near the observed node min/max.",
- action="store",
- dest="breakpoint_strategy",
- type=int,
- default=0)
- phOpts.add_argument('--retain-quadratic-binary-terms',
- help="Do not linearize PH objective terms involving binary decision variables",
- action="store_true",
- dest="retain_quadratic_binary_terms",
- default=False)
- phOpts.add_argument('--drop-proximal-terms',
- help="Eliminate proximal terms (i.e., the quadratic penalty terms) from the weighted PH objective. Default is False.",
- action="store_true",
- dest="drop_proximal_terms",
- default=False)
- phOpts.add_argument('--enable-ww-extensions',
- help="Enable the Watson-Woodruff PH extensions plugin. Default is False.",
- action="store_true",
- dest="enable_ww_extensions",
- default=False)
- phOpts.add_argument('--ww-extension-cfgfile',
- help="The name of a configuration file for the Watson-Woodruff PH extensions plugin.",
- action="store",
- dest="ww_extension_cfgfile",
- type=str,
- default="")
- phOpts.add_argument('--ww-extension-suffixfile',
- help="The name of a variable suffix file for the Watson-Woodruff PH extensions plugin.",
- action="store",
- dest="ww_extension_suffixfile",
- type=str,
- default="")
- phOpts.add_argument('--ww-extension-annotationfile',
- help="The name of a variable annotation file for the Watson-Woodruff PH extensions plugin.",
- action="store",
- dest="ww_extension_annotationfile",
- type=str,
- default="")
- phOpts.add_argument('--user-defined-extension',
- help="The name of a python module specifying a user-defined PH extension plugin.",
- action="append",
- dest="user_defined_extensions",
- type=str,
- default=[])
- phOpts.add_argument('--preprocess-fixed-variables',
- help="Preprocess fixed/freed variables in scenario instances, rather than write them to solver plugins. Default is False.",
- action="store_false",
- dest="write_fixed_variables",
- default=True)
-
- solverOpts.add_argument('--scenario-mipgap',
- help="Specifies the mipgap for all PH scenario sub-problems",
- action="store",
- dest="scenario_mipgap",
- type=float,
- default=None)
- solverOpts.add_argument('--scenario-solver-options',
- help="Solver options for all PH scenario sub-problems",
- action="append",
- dest="scenario_solver_options",
- default=[])
- solverOpts.add_argument('--solver',
- help=solver_help,
- action="store",
- dest="solver_type",
- type=str,
- default="cplex")
- solverOpts.add_argument('--solver-io',
- help='The type of IO used to execute the solver. Different solvers support different types of IO, but the following are common options: lp - generate LP files, nl - generate NL files, python - direct Python interface, os - generate OSiL XML files.',
- action='store',
- dest='solver_io',
- default=None)
- solverOpts.add_argument('--solver-manager',
- help="The type of solver manager used to coordinate scenario sub-problem solves. Default is serial.",
- action="store",
- dest="solver_manager_type",
- type=str,
- default="serial")
- solverOpts.add_argument('--pyro-host',
- help="The hostname to bind on when searching for a Pyro nameserver.",
- action="store",
- dest="pyro_host",
- default=None)
- solverOpts.add_argument('--pyro-port',
- help="The port to bind on when searching for a Pyro nameserver.",
- action="store",
- dest="pyro_port",
- type=int,
- default=None)
- solverOpts.add_argument('--handshake-with-phpyro',
- help="When updating weights, xbars, and rhos across the PHPyro solver manager, it is often expedient to ignore the simple acknowledgement results returned by PH solver servers. Enabling this option instead enables hand-shaking, to ensure message receipt. Clearly only makes sense if the PHPyro solver manager is selected",
- action="store_true",
- dest="handshake_with_phpyro",
- default=False)
- solverOpts.add_argument('--phpyro-required-workers',
- help="Set the number of idle phsolverserver worker processes expected to be available when the PHPyro solver manager is selected. This option should be used when the number of worker threads is less than the total number of scenarios (or bundles). When this option is not used, PH will attempt to assign each scenario (or bundle) to a single phsolverserver until the timeout indicated by the --phpyro-workers-timeout option occurs.",
- action="store",
- type=int,
- dest="phpyro_required_workers",
- default=None)
- solverOpts.add_argument('--phpyro-workers-timeout',
- help="Set the time limit (seconds) for finding idle phsolverserver worker processes to be used when the PHPyro solver manager is selected. This option is ignored when --phpyro-required-workers is set manually. Default is 30.",
- action="store",
- type=float,
- dest="phpyro_workers_timeout",
- default=30)
- solverOpts.add_argument('--phpyro-transmit-leaf-stage-variable-solution',
- help="By default, when running PH using the PHPyro solver manager, leaf-stage variable solutions are not transmitted back to the master PH instance during intermediate PH iterations. This flag will override that behavior for the rare cases where these values are needed. Using this option will possibly have a negative impact on runtime for PH iterations. When PH exits, variable values are collected from all stages whether or not this option was used. Also, note that PH extensions have the ability to override this flag at runtime.",
- action="store_true",
- dest="phpyro_transmit_leaf_stage_solution",
- default=False)
- solverOpts.add_argument('--disable-warmstarts',
- help="Disable warm-start of scenario sub-problem solves in PH iterations >= 1. Default is False.",
- action="store_true",
- dest="disable_warmstarts",
- default=False)
- solverOpts.add_argument('--shutdown-pyro',
- help="Shut down all Pyro-related components associated with the Pyro and PH Pyro solver managers (if specified), including the dispatch server, name server, and any solver servers. Default is False.",
- action="store_true",
- dest="shutdown_pyro",
- default=False)
- solverOpts.add_argument('--shutdown-pyro-workers',
- help="Shut down PH solver servers on exit, leaving dispatcher and nameserver running. Default is False.",
- action="store_true",
- dest="shutdown_pyro_workers",
- default=False)
-
- # the following does *not* work, in that the initialize_argparse fails - options conflict.
- ef_options = ExtensiveFormAlgorithm.register_options(options_prefix="ef_")
-
-
- #### Note: besides the line
- #### 'ef_options.initialize_argparse(parser)',
- #### all of the hacks below can be removed
- #### by having PH do its options registration
- #### with the PySPConfigBlock functionality.
- #### This is tedious, and I will find time to do it
- #### in the future
- # the automated registration of the deprecated version
- # of this option has a bad interaction with the PH
- # registered version
- tmp = ef_options.get("ef_shutdown_pyro")
- del ef_options.ef_shutdown_pyro
- ef_options.initialize_argparse(parser)
- # disables a warning
- ef_options.declare("ef_shutdown_pyro", tmp)
- ###################
-
- # temporary hack
- parser._ef_options = ef_options
- postprocessOpts.add_argument('--ef-output-file',
- help=("The name of the extensive form output file "
- "(currently LP, MPS, and NL file formats are "
- "supported). If the option value does not end "
- "in '.lp', '.mps', or '.nl', then the output format "
- "will be inferred from the settings for the --solver "
- "and --solver-io options, and the appropriate suffix "
- "will be appended to the name. Default is 'efout'."),
- action="store",
- dest="ef_output_file",
- type=str,
- default="efout")
- postprocessOpts.add_argument('--write-ef',
- help="Upon termination, create the extensive-form model and write it - accounting for all fixed variables. See --ef-output-file",
- action="store_true",
- dest="write_ef",
- default=False)
- postprocessOpts.add_argument('--solve-ef',
- help="Upon termination, create the extensive-form model and solve it - accounting for all fixed variables.",
- action="store_true",
- dest="solve_ef",
- default=False)
- postprocessOpts.add_argument('--ef-solution-writer',
- help="The plugin invoked to write the scenario tree solution following the EF solve. If specified, overrides the runph option of the same name; otherwise, the runph option value will be used.",
- action="append",
- dest="ef_solution_writer",
- type=str,
- default = [])
-
-
- outputOpts.add_argument('--output-scenario-tree-solution',
- help="If a feasible solution can be found, report it (even leaves) in scenario tree format upon termination. Default is False.",
- action="store_true",
- dest="output_scenario_tree_solution",
- default=False)
- outputOpts.add_argument('--output-solver-logs',
- help="Output solver logs during scenario sub-problem solves",
- action="store_true",
- dest="output_solver_log",
- default=False)
- outputOpts.add_argument('--symbolic-solver-labels',
- help='When interfacing with the solver, use symbol names derived from the model. For example, \"my_special_variable[1_2_3]\" instead of \"v1\". Useful for debugging. When using the ASL interface (--solver-io=nl), generates corresponding .row (constraints) and .col (variables) files. The ordering in these files provides a mapping from ASL index to symbolic model names.',
- action='store_true',
- dest='symbolic_solver_labels',
- default=False)
- outputOpts.add_argument('--output-solver-results',
- help="Output solutions obtained after each scenario sub-problem solve",
- action="store_true",
- dest="output_solver_results",
- default=False)
- outputOpts.add_argument('--output-times',
- help="Output timing statistics for various PH components",
- action="store_true",
- dest="output_times",
- default=False)
- outputOpts.add_argument('--output-instance-construction-time',
- help="Output timing statistics for instance construction (client-side only when using PHPyro",
- action="store_true",
- dest="output_instance_construction_time",
- default=False)
- outputOpts.add_argument('--report-only-statistics',
- help="When reporting solutions (if enabled), only output per-variable statistics - not the individual scenario values. Default is False.",
- action="store_true",
- dest="report_only_statistics",
- default=False)
- outputOpts.add_argument('--report-solutions',
- help="Always report PH solutions after each iteration. Enabled if --verbose is enabled. Default is False.",
- action="store_true",
- dest="report_solutions",
- default=False)
- outputOpts.add_argument('--report-weights',
- help="Always report PH weights prior to each iteration. Enabled if --verbose is enabled. Default is False.",
- action="store_true",
- dest="report_weights",
- default=False)
- outputOpts.add_argument('--report-rhos-all-iterations',
- help="Always report PH rhos prior to each iteration. Default is False.",
- action="store_true",
- dest="report_rhos_each_iteration",
- default=False)
- outputOpts.add_argument('--report-rhos-first-iteration',
- help="Report rhos prior to PH iteration 1. Enabled if --verbose is enabled. Default is False.",
- action="store_true",
- dest="report_rhos_first_iteration",
- default=False)
- outputOpts.add_argument('--report-subproblem-objectives',
- help="Always report PH subproblem objective and related statistics after each iteration. Enabled if --verbose is enabled. Default is False.",
- action="store_true",
- dest="report_subproblem_objectives",
- default=False)
- outputOpts.add_argument('--report-for-zero-variable-values',
- help="Report statistics (variables and weights) for all variables, not just those with values differing from 0. Default is False.",
- action="store_true",
- dest="report_for_zero_variable_values",
- default=False)
- outputOpts.add_argument('--report-only-nonconverged-variables',
- help="Report statistics (variables and weights) only for non-converged variables. Default is False.",
- action="store_true",
- dest="report_only_nonconverged_variables",
- default=False)
- outputOpts.add_argument('--solution-writer',
- help="The plugin invoked to write the scenario tree solution. Defaults to the empty list.",
- action="append",
- dest="solution_writer",
- type=str,
- default = [])
- outputOpts.add_argument('--suppress-continuous-variable-output',
- help="Eliminate PH-related output involving continuous variables.",
- action="store_true",
- dest="suppress_continuous_variable_output",
- default=False)
- outputOpts.add_argument('--verbose',
- help="Generate verbose output for both initialization and execution. Default is False.",
- action="store_true",
- dest="verbose",
- default=False)
-
- otherOpts.add_argument('--disable-gc',
- help="Disable the python garbage collecter. Default is False.",
- action="store_true",
- dest="disable_gc",
- default=False)
- if pympler_available or guppy_available:
- otherOpts.add_argument("--profile-memory",
- help="If Pympler or Guppy is available (installed), report memory usage statistics for objects created after each PH iteration. A value of 0 indicates disabled. A value of 1 forces summary output after each PH iteration >= 1. Values greater than 2 are currently not supported.",
- action="store",
- dest="profile_memory",
- type=int,
- default=0)
- otherOpts.add_argument('-k','--keep-solver-files',
- help="Retain temporary input and output files for scenario sub-problem solves",
- action="store_true",
- dest="keep_solver_files",
- default=False)
- otherOpts.add_argument('--profile',
- help="Enable profiling of Python code. The value of this option is the number of functions that are summarized.",
- action="store",
- dest="profile",
- type=int,
- default=0)
- otherOpts.add_argument('--traceback',
- help="When an exception is thrown, show the entire call stack. Ignored if profiling is enabled. Default is False.",
- action="store_true",
- dest="traceback",
- default=False)
- otherOpts.add_argument('--compile-scenario-instances',
- help="Replace all linear constraints on scenario instances with a more memory efficient sparse matrix representation. Default is False.",
- action="store_true",
- dest="compile_scenario_instances",
- default=False)
-
- #
- # Hacks to register plugin options until things move over to the
- # new scripting interface
- #
- otherOpts.add_argument('--activate-jsonio-solution-saver',
- help=("Activate the jsonio IPySPSolutionSaverExtension. Stores "
- "scenario tree node solution in form that can be reloaded "
- "for evaluation on other scenario trees"),
- action='store_true',
- dest='activate_jsonio_solution_saver',
- default=False)
- otherOpts.add_argument('--jsonsaver-output-name',
- help=("The directory or filename where the scenario tree solution "
- "should be saved to."),
- action='store',
- dest='jsonsaver_output_name',
- type=str,
- default=None)
- otherOpts.add_argument('--jsonsaver-save-stages',
- help=("The number of scenario tree stages to store for the solution. "
- "The default value of 0 indicates that all stages should be stored."),
- action='store',
- dest='jsonsaver_save_stages',
- type=int,
- default=0)
-
- return parser
-
-
-def PH_DefaultOptions():
- parser = construct_ph_options_parser("")
- options = parser.parse_args([''])
- # temporary hack
- options._ef_options = parser._ef_options
- options._ef_options.import_argparse(options)
- return options
-
-#
-# Import the scenario tree and model data using a
-# PH options dictionary
-#
-
-def GenerateScenarioTreeForPH(options,
- scenario_instance_factory,
- include_scenarios=None):
-
- scenario_tree = scenario_instance_factory.generate_scenario_tree(
- include_scenarios=include_scenarios,
- downsample_fraction=options.scenario_tree_downsample_fraction,
- bundles=options.scenario_bundle_specification,
- random_bundles=options.create_random_bundles,
- random_seed=options.scenario_tree_random_seed,
- verbose=options.verbose)
-
- #
- # print the input tree for validation/information purposes.
- #
- if options.verbose:
- scenario_tree.pprint()
-
- #
- # validate the tree prior to doing anything serious
- #
- scenario_tree.validate()
- if options.verbose:
- print("Scenario tree is valid!")
-
- if options.solver_manager_type != "phpyro":
-
- start_time = time.time()
-
- if not _OLD_OUTPUT:
- print("Constructing scenario tree instances")
- instance_dictionary = \
- scenario_instance_factory.construct_instances_for_scenario_tree(
- scenario_tree,
- output_instance_construction_time=options.output_instance_construction_time,
- compile_scenario_instances=options.compile_scenario_instances,
- verbose=options.verbose)
-
- if options.verbose or options.output_times:
- print("Time to construct scenario instances=%.2f seconds"
- % (time.time() - start_time))
-
- if not _OLD_OUTPUT:
- print("Linking instances into scenario tree")
- start_time = time.time()
-
- # with the scenario instances now available, link the
- # referenced objects directly into the scenario tree.
- scenario_tree.linkInInstances(instance_dictionary,
- objective_sense=options.objective_sense,
- create_variable_ids=True)
-
- if options.verbose or options.output_times:
- print("Time link scenario tree with instances=%.2f seconds"
- % (time.time() - start_time))
-
- return scenario_tree
-
-#
-# Create a PH object from scratch using
-# the options object.
-#
-
-def PHAlgorithmBuilder(options, scenario_tree):
-
- import pyomo.environ
- import pyomo.solvers.plugins.smanager.phpyro
- import pyomo.solvers.plugins.smanager.pyro
-
- solution_writer_plugins = ExtensionPoint(ISolutionWriterExtension)
- for plugin in solution_writer_plugins:
- plugin.disable()
-
- solution_plugins = []
- if len(options.solution_writer) > 0:
- for this_extension in options.solution_writer:
- if this_extension in sys.modules:
- print("User-defined PH solution writer module="
- +this_extension+" already imported - skipping")
- else:
- print("Trying to import user-defined PH "
- "solution writer module="+this_extension)
- # make sure "." is in the PATH.
- original_path = list(sys.path)
- sys.path.insert(0,'.')
- import_file(this_extension)
- print("Module successfully loaded")
- sys.path[:] = original_path # restore to what it was
-
- # now that we're sure the module is loaded, re-enable this
- # specific plugin. recall that all plugins are disabled
- # by default in phinit.py, for various reasons. if we want
- # them to be picked up, we need to enable them explicitly.
- import inspect
- module_to_find = this_extension
- if module_to_find.rfind(".py"):
- module_to_find = module_to_find.rstrip(".py")
- if module_to_find.find("/") != -1:
- module_to_find = module_to_find.split("/")[-1]
-
- for name, obj in inspect.getmembers(sys.modules[module_to_find],
- inspect.isclass):
- # the second condition gets around goofyness related
- # to issubclass returning True when the obj is the
- # same as the test class.
- if issubclass(obj, SingletonPlugin) and name != "SingletonPlugin":
- for plugin in solution_writer_plugins(all=True):
- if isinstance(plugin, obj):
- plugin.enable()
- solution_plugins.append(plugin)
-
- #
- # if any of the ww extension configuration options are specified
- # without the ww extension itself being enabled, halt and warn the
- # user - this has led to confusion in the past, and will save user
- # support time.
- #
- if (len(options.ww_extension_cfgfile) > 0) and \
- (options.enable_ww_extensions is False):
- raise ValueError("A configuration file was specified "
- "for the WW extension module, but the WW extensions "
- "are not enabled!")
-
- if (len(options.ww_extension_suffixfile) > 0) and \
- (options.enable_ww_extensions is False):
- raise ValueError("A suffix file was specified for the WW "
- "extension module, but the WW extensions are not "
- "enabled!")
-
- if (len(options.ww_extension_annotationfile) > 0) and \
- (options.enable_ww_extensions is False):
- raise ValueError("A annotation file was specified for the "
- "WW extension module, but the WW extensions are not "
- "enabled!")
-
- #
- # disable all plugins up-front. then, enable them on an as-needed
- # basis later in this function. the reason that plugins should be
- # disabled is that they may have been programmatically enabled in
- # a previous run of PH, and we want to start from a clean slate.
- #
- ph_extension_point = ExtensionPoint(IPHExtension)
-
- for plugin in ph_extension_point:
- plugin.disable()
-
- ph_plugins = []
- #
- # deal with any plugins. ww extension comes first currently,
- # followed by an option user-defined plugin. order only matters
- # if both are specified.
- #
- if options.enable_ww_extensions:
-
- import pyomo.pysp.plugins.wwphextension
-
- # explicitly enable the WW extension plugin - it may have been
- # previously loaded and/or enabled.
- ph_extension_point = ExtensionPoint(IPHExtension)
-
- for plugin in ph_extension_point(all=True):
- if isinstance(plugin,
- pyomo.pysp.plugins.wwphextension.wwphextension):
-
- plugin.enable()
- ph_plugins.append(plugin)
-
- # there is no reset-style method for plugins in general,
- # or the ww ph extension in plugin in particular. if no
- # configuration or suffix filename is specified, set to
- # None so that remnants from the previous use of the
- # plugin aren't picked up.
- if len(options.ww_extension_cfgfile) > 0:
- plugin._configuration_filename = options.ww_extension_cfgfile
- else:
- plugin._configuration_filename = None
- if len(options.ww_extension_suffixfile) > 0:
- plugin._suffix_filename = options.ww_extension_suffixfile
- else:
- plugin._suffix_filename = None
- if len(options.ww_extension_annotationfile) > 0:
- plugin._annotation_filename = options.ww_extension_annotationfile
- else:
- plugin._annotation_filename = None
-
- if len(options.user_defined_extensions) > 0:
- for this_extension in options.user_defined_extensions:
- if this_extension in sys.modules:
- print("User-defined PH extension module="
- +this_extension+" already imported - skipping")
- else:
- print("Trying to import user-defined PH extension module="
- +this_extension)
- # make sure "." is in the PATH.
- original_path = list(sys.path)
- sys.path.insert(0,'.')
- import_file(this_extension)
- print("Module successfully loaded")
- # restore to what it was
- sys.path[:] = original_path
-
- # now that we're sure the module is loaded, re-enable this
- # specific plugin. recall that all plugins are disabled
- # by default in phinit.py, for various reasons. if we want
- # them to be picked up, we need to enable them explicitly.
- import inspect
- module_to_find = this_extension
- if module_to_find.rfind(".py"):
- module_to_find = module_to_find.rstrip(".py")
- if module_to_find.find("/") != -1:
- module_to_find = module_to_find.split("/")[-1]
-
- for name, obj in inspect.getmembers(sys.modules[module_to_find],
- inspect.isclass):
- # the second condition gets around goofyness related
- # to issubclass returning True when the obj is the
- # same as the test class.
- if issubclass(obj, SingletonPlugin) and name != "SingletonPlugin":
- ph_extension_point = ExtensionPoint(IPHExtension)
- for plugin in ph_extension_point(all=True):
- if isinstance(plugin, obj):
- plugin.enable()
- ph_plugins.append(plugin)
-
- ph = None
- solver_manager = None
- try:
-
- # construct the solver manager.
- if options.verbose:
- print("Constructing solver manager of type="
- +options.solver_manager_type)
- solver_manager = SolverManagerFactory(
- options.solver_manager_type,
- host=options.pyro_host,
- port=options.pyro_port)
-
- if solver_manager is None:
- raise ValueError("Failed to create solver manager of "
- "type="+options.solver_manager_type+
- " specified in call to PH constructor")
-
- ph = ProgressiveHedging(options)
-
- if isinstance(solver_manager,
- pyomo.solvers.plugins.smanager.phpyro.SolverManager_PHPyro):
-
- if scenario_tree.contains_bundles():
- num_jobs = len(scenario_tree._scenario_bundles)
- if not _OLD_OUTPUT:
- print("Bundle solver jobs available: "+str(num_jobs))
- else:
- num_jobs = len(scenario_tree._scenarios)
- if not _OLD_OUTPUT:
- print("Scenario solver jobs available: "+str(num_jobs))
-
- servers_expected = options.phpyro_required_workers
- if (servers_expected is None):
- servers_expected = num_jobs
-
- timeout = options.phpyro_workers_timeout if \
- (options.phpyro_required_workers is None) else \
- None
-
- solver_manager.acquire_servers(servers_expected,
- timeout)
-
- ph.initialize(scenario_tree=scenario_tree,
- solver_manager=solver_manager,
- ph_plugins=ph_plugins,
- solution_plugins=solution_plugins)
-
- except:
-
- if ph is not None:
-
- ph.release_components()
-
- if solver_manager is not None:
-
- if isinstance(solver_manager,
- pyomo.solvers.plugins.smanager.phpyro.SolverManager_PHPyro):
- solver_manager.release_servers(shutdown=ph._shutdown_pyro_workers)
- elif isinstance(solver_manager,
- pyomo.solvers.plugins.smanager.pyro.SolverManager_Pyro):
- if ph._shutdown_pyro_workers:
- solver_manager.shutdown_workers()
-
- print("Failed to initialize progressive hedging algorithm")
- raise
-
- return ph
-
-def PHFromScratch(options):
- start_time = time.time()
- if options.verbose:
- print("Importing model and scenario tree files")
-
- scenario_instance_factory = \
- ScenarioTreeInstanceFactory(options.model_directory,
- options.instance_directory)
-
- if options.verbose or options.output_times:
- print("Time to import model and scenario tree "
- "structure files=%.2f seconds"
- %(time.time() - start_time))
-
- try:
-
- scenario_tree = \
- GenerateScenarioTreeForPH(options,
- scenario_instance_factory)
-
- except:
- print("Failed to initialize model and/or scenario tree data")
- scenario_instance_factory.close()
- raise
-
- ph = None
- try:
- ph = PHAlgorithmBuilder(options, scenario_tree)
- except:
-
- print("A failure occurred in PHAlgorithmBuilder. Cleaning up...")
- if ph is not None:
- ph.release_components()
- scenario_instance_factory.close()
- raise
-
- return ph
-
-#
-# There is alot of cleanup that should be be done before a ph object
-# goes out of scope (e.g. releasing PHPyro workers, closing file
-# archives, etc.). However, many of the objects requiring context
-# management serve a purpose beyond the lifetime of the
-# ProgressiveHedging object that references them. This function
-# assumes the user does not care about this and performs all necessary
-# cleanup when we exit the scope of the 'with' block. Example:
-#
-# with PHFromScratchManagedContext(options) as ph:
-# ph.run()
-#
-
-@contextlib.contextmanager
-def PHFromScratchManagedContext(options):
-
- ph = None
- try:
- ph = PHFromScratch(options)
- yield ph
-
- finally:
-
- PHCleanup(ph)
-
-def PHCleanup(ph):
-
- if ph is None:
-
- return
-
- ph.release_components()
-
- if ph._solver_manager is not None:
-
- import pyomo.environ
- import pyomo.solvers.plugins.smanager.phpyro
- import pyomo.solvers.plugins.smanager.pyro
-
- if isinstance(ph._solver_manager,
- pyomo.solvers.plugins.smanager.phpyro.SolverManager_PHPyro):
- ph._solver_manager.release_servers(shutdown=ph._shutdown_pyro_workers)
- elif isinstance(ph._solver_manager,
- pyomo.solvers.plugins.smanager.pyro.SolverManager_Pyro):
- if ph._shutdown_pyro_workers:
- ph._solver_manager.shutdown_workers()
-
- if ph._scenario_tree is not None:
-
- if ph._scenario_tree._scenario_instance_factory is not None:
-
- ph._scenario_tree._scenario_instance_factory.close()
-
-#
-# Given a PH object, execute it and optionally solve the EF at the
-# end.
-#
-
-def run_ph(options, ph):
-
- import pyomo.environ
- import pyomo.solvers.plugins.smanager.phpyro
- import pyomo.solvers.plugins.smanager.pyro
-
- start_time = time.time()
-
- #
- # kick off the solve
- #
- retval = ph.solve()
- if retval is not None:
- # assume something else wrote out the list of scenarios
- raise RuntimeError("Failure Encountered")
-
- end_ph_time = time.time()
-
- print("")
- print("Total PH execution time=%.2f seconds" %(end_ph_time - start_time))
- print("")
- if options.output_times:
- ph.print_time_stats()
-
- ph.save_solution()
-
- # Another hack to execute the jsonio saver plugin until
- # we move over to the new scripting interface
- if options.activate_jsonio_solution_saver:
- print("Executing jsonio solution saver extension")
- import pyomo.pysp.plugins.jsonio
- jsonsaver = pyomo.pysp.plugins.jsonio.JSONSolutionSaverExtension()
- jsonsaver_options = jsonsaver.register_options()
- jsonsaver_options.jsonsaver_output_name = \
- options.jsonsaver_output_name
- jsonsaver_options.jsonsaver_save_stages = \
- options.jsonsaver_save_stages
- jsonsaver.set_options(jsonsaver_options)
- jsonsaver.save(ph)
-
- ef_solution_writers = ()
- if len(options.ef_solution_writer) > 0:
- ef_solution_writers = load_extensions(
- options.ef_solution_writer,
- ISolutionWriterExtension)
- else:
- # inherit the PH solution writer(s)
- ef_solution_writers = ph._solution_plugins
-
- #
- # create the extensive form binding instance, so that we can
- # either write or solve it (if specified).
- #
- ef = None
- if (options.write_ef) or (options.solve_ef):
-
- if not isinstance(ph._solver_manager,
- pyomo.solvers.plugins.smanager.\
- phpyro.SolverManager_PHPyro):
-
- # The instances are about to be added as sublocks to the
- # extensive form instance. If bundles exist, we must
- # distroy them to avoid errors
- ph._destory_bundle_binding_instances()
-
- else:
-
- print("Constructing scenario instances for extensive form solve")
-
- instances = ph._scenario_tree._scenario_instance_factory.\
- construct_instances_for_scenario_tree(
- ph._scenario_tree,
- output_instance_construction_time=\
- ph._output_instance_construction_time,
- verbose=options.verbose)
-
- ph._scenario_tree.linkInInstances(
- instances,
- create_variable_ids=False,
- master_scenario_tree=ph._scenario_tree,
- initialize_solution_data=False)
-
- ph._setup_scenario_instances()
-
- if options.verbose:
- print("Creating deterministic SymbolMaps for scenario instances")
- scenario_ph_symbol_maps_start_time = time.time()
- # Define for what components we generate symbols
- symbol_ctypes = (Var, Suffix)
- ph._create_instance_symbol_maps(symbol_ctypes)
- scenario_ph_symbol_maps_end_time = time.time()
- if options.output_times:
- print("PH SymbolMap creation time=%.2f seconds"
- % (scenario_ph_symbol_maps_end_time - \
- scenario_ph_symbol_maps_start_time))
-
- # if specified, run the user script to initialize variable
- # bounds at their whim.
- if ph._bound_setter is not None:
-
- print("Executing user bound setter callback function")
- for scenario in ph._scenario_tree._scenarios:
- ph._callback_function[ph._bound_setter](
- ph,
- ph._scenario_tree,
- scenario)
-
- pyomo.pysp.phsolverserverutils.\
- warmstart_scenario_instances(ph)
-
- # no point in doing advanced preprocessing for the single
- # ef solve that is about to occur.
- for instance in ph._instances.values():
- for block in instance.block_data_objects(active=True):
- block._gen_obj_repn = True
- block._gen_con_repn = True
-
- ph_solver_manager = ph._solver_manager
- ph._solver_manager = None
- try:
- # The post-solve plugins may have done more variable
- # fixing. These should be pushed to the instance at this
- # point.
- print("Pushing fixed variable statuses to scenario instances")
- ph._push_all_node_fixed_to_instances()
- total_fixed_discrete_vars, total_fixed_continuous_vars = \
- ph.compute_fixed_variable_counts()
- print("Number of discrete variables fixed "
- "prior to ef creation="
- +str(total_fixed_discrete_vars)+
- " (total="+str(ph._total_discrete_vars)+")")
- print("Number of continuous variables fixed "
- "prior to ef creation="
- +str(total_fixed_continuous_vars)+
- " (total="+str(ph._total_continuous_vars)+")")
- finally:
- ph._solver_manager = ph_solver_manager
-
-
- ef_options = options._ef_options
-
- ### can remove these lines when the hack added to
- ### options registration is removed for this
- ### particular option
- _orig_domain = ef_options.get("ef_shutdown_pyro")._domain
- ef_options.get("ef_shutdown_pyro")._domain = bool
-
- # Have any matching ef options that are not explicitly
- # set by the user inherit from the "PH" values on the
- # argparse object. The user has the option of overriding
- # these values by setting the --ef-* versions via the
- # command-line
- ExtensiveFormAlgorithm.update_options_from_argparse(
- ef_options,
- options,
- options_prefix="ef_",
- source_options_prefix="",
- skip_userset=True,
- error_if_missing=False)
-
- ### can remove this line when the hack added to
- ### options registration is removed for this
- ### particular option
- ef_options.get("ef_shutdown_pyro")._domain = _orig_domain
-
-
- if _OLD_OUTPUT:
- print("Creating extensive form for remainder problem")
-
- ef = ExtensiveFormAlgorithm(ph, ef_options, options_prefix="ef_")
- ef.build_ef()
-
- # set the value of each non-converged, non-final-stage
- # variable to None - this will avoid infeasible warm-stats.
- reset_nonconverged_variables(ph._scenario_tree, ph._instances)
- reset_stage_cost_variables(ph._scenario_tree, ph._instances)
-
- # The EFAlgorithm will handle its own preprocessing, so
- # be sure to remove any flags that hack preprocessing
- # behavior from the instances. This also releases
- # any PHPyro workers
- ph.release_components()
-
- #
- # solve the extensive form and load the solution back into the PH
- # scenario tree. Contents from the PH solve will obviously be
- # over-written!
- #
- if options.write_ef:
-
- print("Writing extensive form")
- ef.write(options.ef_output_file)
-
- if options.solve_ef:
-
- print("Solving extensive form")
- failed = ef.solve(exception_on_failure=False)
-
- if failed:
- print("EF solve failed solution status check:\n"
- "Solver Status: %s\n"
- "Termination Condition: %s\n"
- "Solution Status: %s\n"
- % (ef.solver_status,
- ef.termination_condition,
- ef.solution_status))
- else:
-
- print("EF solve completed and solution status is %s"
- % ef.solution_status)
- print("EF solve termination condition is %s"
- % ef.termination_condition)
- print("EF objective: %12.5f" % ef.objective)
- if ef.gap is not undefined:
- print("EF gap: %12.5f" % ef.gap)
- print("EF bound: %12.5f" % ef.bound)
- else:
- assert ef.bound is undefined
- print("EF gap: ")
- print("EF bound: ")
-
- ph.update_variable_statistics()
-
- # handle output of solution from the scenario tree.
- print("")
- print("Extensive form solution:")
- ph.scenario_tree.pprintSolution()
- print("")
- print("Extensive form costs:")
- ph.scenario_tree.pprintCosts()
-
- for plugin in ef_solution_writers:
- plugin.write(ph.scenario_tree, "postphef")
-
- # Another hack to execute the jsonio saver plugin until we move over
- # to the new scripting interface
- if options.activate_jsonio_solution_saver:
- print("Executing jsonio solution saver extension")
- import pyomo.pysp.plugins.jsonio
- jsonsaver = pyomo.pysp.plugins.jsonio.JSONSolutionSaverExtension()
- jsonsaver_options = jsonsaver.register_options()
- jsonsaver_options.jsonsaver_output_name = \
- options.jsonsaver_output_name
- jsonsaver_options.jsonsaver_save_stages = \
- options.jsonsaver_save_stages
- jsonsaver.set_options(jsonsaver_options)
- jsonsaver.save(ph)
-
- if ef is not None:
- ef.close()
-
-#
-# The main PH initialization / runner routine.
-#
-
-def exec_runph(options):
-
- start_time = time.time()
- import pyomo.environ
-
- try:
-
- # This context manages releasing pyro workers and
- # closing file archives
- with PHFromScratchManagedContext(options) as ph:
- run_ph(options, ph)
-
- # This context will shutdown the pyro nameserver if requested.
- # Ideally, pyro workers can be reused without restarting the
- # nameserver
- finally:
- # if an exception is triggered, and we're running with
- # pyro, shut down everything - not doing so is
- # annoying, and leads to a lot of wasted compute
- # time. but don't do this if the shutdown-pyro option
- # is disabled => the user wanted
- if ((options.solver_manager_type == "pyro") or \
- (options.solver_manager_type == "phpyro")) and \
- options.shutdown_pyro:
- print("\n")
- print("Shutting down Pyro solver components.")
- shutdown_pyro_components(host=options.pyro_host,
- port=options.pyro_port,
- num_retries=0)
-
- print("")
- print("Total execution time=%.2f seconds"
- % (time.time() - start_time))
-
- return 0
-
-#
-# the main driver routine for the runph script.
-#
-
-def main(args=None):
- #
- # Top-level command that executes the runph command
- #
-
- #
- # Import plugins
- #
- import pyomo.environ
-
- #
- # Parse command-line options.
- #
- try:
- ph_options_parser = \
- construct_ph_options_parser("runph [options]")
- options = ph_options_parser.parse_args(args=args)
- # temporary hack
- options._ef_options = ph_options_parser._ef_options
- options._ef_options.import_argparse(options)
- except SystemExit as _exc:
- # the parser throws a system exit if "-h" is specified
- # - catch it to exit gracefully.
- return _exc.code
-
- return launch_command(exec_runph,
- options,
- error_label="runph: ",
- disable_gc=options.disable_gc,
- profile_count=options.profile,
- traceback=options.traceback)
-
-@pyomo_command('runph', 'Optimize with the PH solver (primal search)')
-def PH_main(args=None):
- return main(args=args)
diff --git a/pyomo/pysp/phobjective.py b/pyomo/pysp/phobjective.py
deleted file mode 100644
index 8f588bcf5a5..00000000000
--- a/pyomo/pysp/phobjective.py
+++ /dev/null
@@ -1,488 +0,0 @@
-# ___________________________________________________________________________
-#
-# Pyomo: Python Optimization Modeling Objects
-# Copyright 2017 National Technology and Engineering Solutions of Sandia, LLC
-# Under the terms of Contract DE-NA0003525 with National Technology and
-# Engineering Solutions of Sandia, LLC, the U.S. Government retains certain
-# rights in this software.
-# This software is distributed under the 3-clause BSD License.
-# ___________________________________________________________________________
-
-# this module contains various utilities for creating PH weighted penalty
-# objectives, e.g., through quadratic or linearized penalty terms.
-
-from math import fabs, log, exp
-from six.moves import xrange
-import sys
-
-from pyomo.core import Set, Constraint, Expression, BooleanSet, value
-from pyomo.pysp.phutils import indexToString
-
-# IMPT: In general, the breakpoint computation codes can return a
-# 2-list even if the lb equals the ub. This case happens quite
-# often in real models (although typically lb=xvag=ub). See the
-# code for constructing the pieces on how this case is handled
-# in the linearization.
-
-#
-# routine to compute linearization breakpoints uniformly between the
-# bounds and the mean.
-#
-
-def compute_uniform_breakpoints(lb, node_min, xavg, node_max, ub, num_breakpoints_per_side, tolerance):
-
- breakpoints = []
-
- # add the lower bound - the first breakpoint.
- breakpoints.append(lb)
-
- # determine the breakpoints to the left of the mean.
- left_step = (xavg - lb) / num_breakpoints_per_side
- current_x = lb
- for i in range(1,num_breakpoints_per_side+1):
- this_lb = current_x
- this_ub = current_x+left_step
- if (fabs(this_lb-lb) > tolerance) and (fabs(this_lb-xavg) > tolerance):
- breakpoints.append(this_lb)
- current_x += left_step
-
- # add the mean - it's always a breakpoint. unless!
- # the lb or ub and the avg are the same.
- if (fabs(lb-xavg) > tolerance) and (fabs(ub-xavg) > tolerance):
- breakpoints.append(xavg)
-
- # determine the breakpoints to the right of the mean.
- right_step = (ub - xavg) / num_breakpoints_per_side
- current_x = xavg
- for i in range(1,num_breakpoints_per_side+1):
- this_lb = current_x
- this_ub = current_x+right_step
- if (fabs(this_ub-xavg) > tolerance) and (fabs(this_ub-ub) > tolerance):
- breakpoints.append(this_ub)
- current_x += right_step
-
- # add the upper bound - the last breakpoint.
- # the upper bound should always be different than the lower bound (I say with some
- # hesitation - it really depends on what plugins are doing to modify the bounds dynamically).
- breakpoints.append(ub)
-
- return breakpoints
-
-#
-# routine to compute linearization breakpoints uniformly between the current node min/max bounds.
-#
-
-def compute_uniform_between_nodestat_breakpoints(lb, node_min, xavg, node_max, ub, num_breakpoints, tolerance):
-
- breakpoints = []
-
- # add the lower bound - the first breakpoint.
- breakpoints.append(lb)
-
- # add the node-min - the second breakpoint. but only if it is different than the lower bound and the mean.
- if (fabs(node_min-lb) > tolerance) and (fabs(node_min-xavg) > tolerance):
- breakpoints.append(node_min)
-
- step = (node_max - node_min) / num_breakpoints
- current_x = node_min
- for i in range(1,num_breakpoints+1):
- this_lb = current_x
- this_ub = current_x+step
- if (fabs(this_lb-node_min) > tolerance) and (fabs(this_lb-node_max) > tolerance) and (fabs(this_lb-xavg) > tolerance):
- breakpoints.append(this_lb)
- current_x += step
-
- # add the node-max - the second-to-last breakpoint. but only if it is different than the upper bound and the mean.
- if (fabs(node_max-ub) > tolerance) and (fabs(node_max-xavg) > tolerance):
- breakpoints.append(node_max)
-
- # add the upper bound - the last breakpoint.
- breakpoints.append(ub)
-
- # add the mean - it's always a breakpoint. unless! -
- # it happens to be equal to (within tolerance) the lower or upper bounds.
- # sort to insert it in the correct place.
- if (fabs(xavg - lb) > tolerance) and (fabs(xavg - ub) > tolerance):
- breakpoints.append(xavg)
- breakpoints.sort()
-
- return breakpoints
-
-#
-# routine to compute linearization breakpoints using "Woodruff" relaxation of the compute_uniform_between_nodestat_breakpoints.
-#
-
-def compute_uniform_between_woodruff_breakpoints(lb, node_min, xavg, node_max, ub, num_breakpoints, tolerance):
-
- breakpoints = []
-
- # add the lower bound - the first breakpoint.
- breakpoints.append(lb)
-
- # be either three "differences" from the mean, or else "halfway to the bound", whichever is closer to the mean.
- left = max(xavg - 3.0 * (xavg - node_min), xavg - 0.5 * (xavg - lb))
- right = min(xavg + 3.0 * (node_max - xavg), xavg + 0.5 * (ub - xavg))
-
- # add the left bound - the second breakpoint. but only if it is different than the lower bound and the mean.
- if (fabs(left-lb) > tolerance) and (fabs(left-xavg) > tolerance):
- breakpoints.append(left)
-
- step = (right - left) / num_breakpoints
- current_x = left
- for i in range(1,num_breakpoints+1):
- this_lb = current_x
- this_ub = current_x+step
- if (fabs(this_lb-left) > tolerance) and (fabs(this_lb-right) > tolerance) and (fabs(this_lb-xavg) > tolerance):
- breakpoints.append(this_lb)
- current_x += step
-
- # add the right bound - the second-to-last breakpoint. but only if it is different than the upper bound and the mean.
- if (fabs(right-ub) > tolerance) and (fabs(right-xavg) > tolerance):
- breakpoints.append(right)
-
- # add the upper bound - the last breakpoint.
- breakpoints.append(ub)
-
- # add the mean - it's always a breakpoint.
- # sort to insert it in the correct place.
- breakpoints.append(xavg)
- breakpoints.sort()
-
- return breakpoints
-
-#
-# routine to compute linearization breakpoints based on an exponential distribution from the mean in each direction.
-#
-
-def compute_exponential_from_mean_breakpoints(lb, node_min, xavg, node_max, ub, num_breakpoints_per_side, tolerance):
-
- breakpoints = []
-
- # add the lower bound - the first breakpoint.
- breakpoints.append(lb)
-
- # determine the breakpoints to the left of the mean.
- left_delta = xavg - lb
- base = exp(log(left_delta) / num_breakpoints_per_side)
- current_offset = base
- for i in range(1,num_breakpoints_per_side+1):
- current_x = xavg - current_offset
- if (fabs(current_x-lb) > tolerance) and (fabs(current_x-xavg) > tolerance):
- breakpoints.append(current_x)
- current_offset *= base
-
- # add the mean - it's always a breakpoint.
- breakpoints.append(xavg)
-
- # determine the breakpoints to the right of the mean.
- right_delta = ub - xavg
- base = exp(log(right_delta) / num_breakpoints_per_side)
- current_offset = base
- for i in range(1,num_breakpoints_per_side+1):
- current_x = xavg + current_offset
- if (fabs(current_x-xavg) > tolerance) and (fabs(current_x-ub) > tolerance):
- breakpoints.append(current_x)
- current_offset *= base
-
- # add the upper bound - the last breakpoint.
- breakpoints.append(ub)
-
- return breakpoints
-
-#
-# a utility to create piece-wise linear constraint expressions for a given variable, for
-# use in constructing the augmented (penalized) PH objective. lb and ub are the bounds
-# on this piece, variable is the actual instance variable, and average is the instance
-# parameter specifying the average of this variable across instances sharing passing
-# through a common tree node. lb and ub are floats.
-# IMPT: There are cases where lb=ub, in which case the slope is 0 and the intercept
-# is simply the penalty at the lower(or upper) bound.
-#
-
-def create_piecewise_constraint_tuple(lb, ub, instance_variable, variable_average, quad_variable, tolerance):
-
- penalty_at_lb = (lb - variable_average) * (lb - variable_average)
- penalty_at_ub = (ub - variable_average) * (ub - variable_average)
- slope = None
- if fabs(ub-lb) > tolerance:
- slope = (penalty_at_ub - penalty_at_lb) / (ub - lb)
- else:
- slope = 0.0
- intercept = penalty_at_lb - slope * lb
- expression = (0.0, quad_variable - slope * instance_variable - intercept, None)
-
- return expression
-
-#
-# Add the PH weight terms to the objective, guided by various options.
-#
-
-def add_ph_objective_weight_terms(instance_name, instance, scenario_tree):
-
- scenario = scenario_tree.get_scenario(instance.name)
-
- # cache for efficiency purposes.
- objective = scenario._instance_objective
-
- # linear weight penalty expressions.
- weight_expression = 0.0 # indicates unassigned
-
- nodeid_to_vardata_map = instance._ScenarioTreeSymbolMap.bySymbol
-
- for tree_node in scenario._node_list[:-1]:
-
- w_parameter_name = "PHWEIGHT_"+str(tree_node._name)
- w_parameter = instance.find_component(w_parameter_name)
-
- for variable_id in tree_node._variable_ids:
-
- # don't add weight terms for derived variables at the tree node.
- if variable_id in tree_node._derived_variable_ids:
- continue
-
- instance_vardata = nodeid_to_vardata_map[variable_id]
-
- if instance_vardata.fixed is False:
- # add the linear (w-weighted) term in a consistent fashion, independent of variable type.
- # don't adjust the sign of the weight here - that has already been accounted for in the main PH routine.
- # TODO: Should blend_paramter be used in this expression?
- weight_expression += w_parameter[variable_id] * instance_vardata
-
- weight_expression_component = instance.PHWEIGHT_EXPRESSION = Expression(initialize=weight_expression)
-
- # augment the original objective with the new linear terms.
- objective.expr += weight_expression_component
-
- return weight_expression_component, weight_expression
-
-#
-# Add the PH proximal terms to the objective, guided by various options.
-#
-
-def add_ph_objective_proximal_terms(instance_name,
- instance, scenario_tree,
- linearize_nonbinary_penalty_terms,
- retain_quadratic_binary_terms):
-
- scenario = scenario_tree.get_scenario(instance.name)
-
- # cache for efficiency purposes.
- objective = scenario._instance_objective
- is_minimizing = objective.is_minimizing()
-
- # proximal penalty expressions.
- proximal_expression = 0.0 # indicates unassigned
-
- nodeid_to_vardata_map = instance._ScenarioTreeSymbolMap.bySymbol
-
- for tree_node in scenario._node_list[:-1]:
-
- xbar_parameter_name = "PHXBAR_"+str(tree_node._name)
- xbar_parameter = instance.find_component(xbar_parameter_name)
-
- rho_parameter_name = "PHRHO_"+str(tree_node._name)
- rho_parameter = instance.find_component(rho_parameter_name)
-
- blend_parameter_name = "PHBLEND_"+str(tree_node._name)
- blend_parameter = instance.find_component(blend_parameter_name)
-
- quad_penalty_term_variable = None
- # if linearizing, then we have previously defined a variable
- # associated with the result of the linearized approximation
- # of the penalty term - this is simply added to the objective
- # function.
- if linearize_nonbinary_penalty_terms > 0:
- quad_penalty_term_variable_name = "PHQUADPENALTY_"+str(tree_node._name)
- quad_penalty_term_variable = instance.find_component(quad_penalty_term_variable_name)
-
- for variable_id in tree_node._variable_ids:
-
- # don't add weight terms for derived variables at the tree node.
- if variable_id in tree_node._derived_variable_ids:
- continue
-
- instance_vardata = nodeid_to_vardata_map[variable_id]
-
- if instance_vardata.fixed is False:
-
- # deal with binaries
- if isinstance(instance_vardata.domain, BooleanSet):
-
- if retain_quadratic_binary_terms is False:
- if is_minimizing:
- proximal_expression += (blend_parameter[variable_id] * rho_parameter[variable_id] / 2.0 * (instance_vardata - 2.0 * xbar_parameter[variable_id] * instance_vardata + xbar_parameter[variable_id] * xbar_parameter[variable_id]))
- else:
- proximal_expression -= (blend_parameter[variable_id] * rho_parameter[variable_id] / 2.0 * (instance_vardata - 2.0 * xbar_parameter[variable_id] * instance_vardata + xbar_parameter[variable_id] * xbar_parameter[variable_id]))
- else:
- if is_minimizing:
- proximal_expression += (blend_parameter[variable_id] * (rho_parameter[variable_id] / 2.0) * (instance_vardata - xbar_parameter[variable_id]) * (instance_vardata - xbar_parameter[variable_id]))
- else:
- proximal_expression -= (blend_parameter[variable_id] * (rho_parameter[variable_id] / 2.0) * (instance_vardata - xbar_parameter[variable_id]) * (instance_vardata - xbar_parameter[variable_id]))
-
- # deal with everything else
- else:
-
- if linearize_nonbinary_penalty_terms > 0:
-
- # the variables are easy - just a single entry.
- # GAH: Should blend_paramter be used in this expression?
- if is_minimizing:
- proximal_expression += (rho_parameter[variable_id] / 2.0 * quad_penalty_term_variable[variable_id])
- else:
- proximal_expression -= (rho_parameter[variable_id] / 2.0 * quad_penalty_term_variable[variable_id])
-
- else:
-
- # deal with the baseline quadratic case.
- if is_minimizing:
- proximal_expression += (blend_parameter[variable_id] * (rho_parameter[variable_id] / 2.0) * (instance_vardata - xbar_parameter[variable_id]) * (instance_vardata - xbar_parameter[variable_id]))
- else:
- proximal_expression -= (blend_parameter[variable_id] * (rho_parameter[variable_id] / 2.0) * (instance_vardata - xbar_parameter[variable_id]) * (instance_vardata - xbar_parameter[variable_id]))
-
- proximal_expression_component = instance.PHPROXIMAL_EXPRESSION = Expression(initialize=proximal_expression)
-
- # augment the original objective with the new proximal terms
- objective.expr += proximal_expression_component
-
- return proximal_expression_component, proximal_expression
-
-#
-# form the constraints required to compute the cost variable values
-# when linearizing PH objectives.
-#
-
-def form_linearized_objective_constraints(instance_name,
- instance,
- scenario_tree,
- linearize_nonbinary_penalty_terms,
- breakpoint_strategy,
- tolerance):
-
-
- # keep track and return what was added to the instance, so
- # it can be cleaned up if necessary.
- new_instance_attributes = []
-
- linearization_index_set_name = "PH_LINEARIZATION_INDEX_SET"
- linearization_index_set = instance.find_component(linearization_index_set_name)
- if linearization_index_set is None:
- linearization_index_set = Set(initialize=range(0, linearize_nonbinary_penalty_terms*2), dimen=1, name=linearization_index_set_name)
- instance.add_component(linearization_index_set_name, linearization_index_set)
-
- scenario = scenario_tree.get_scenario(instance_name)
-
- nodeid_to_vardata_map = instance._ScenarioTreeSymbolMap.bySymbol
-
- for tree_node in scenario._node_list[:-1]:
-
- xbar_dict = tree_node._xbars
-
- # if linearizing, then we have previously defined a variable
- # associated with the result of the linearized approximation
- # of the penalty term - this is simply added to the objective
- # function.
- linearized_cost_variable_name = "PHQUADPENALTY_"+str(tree_node._name)
- linearized_cost_variable = instance.find_component(linearized_cost_variable_name)
-
- # grab the linearization constraint associated with the
- # linearized cost variable, if it exists. otherwise, create it
- # - but an empty variety. the constraints are stage-specific -
- # we could index by constraint, but we don't know if that is
- # really worth the additional effort.
- linearization_constraint_name = "PH_LINEARIZATION_"+str(tree_node._name)
- linearization_constraint = instance.find_component(linearization_constraint_name)
- if linearization_constraint is not None:
- # clear whatever constraint components are there - there
- # may be fewer breakpoints, due to tolerances, and we
- # don't want to the old pieces laying around.
- linearization_constraint.clear()
- else:
- # this is the first time the constraint is being added -
- # add it to the list of PH-specific constraints for this
- # instance.
- new_instance_attributes.append(linearization_constraint_name)
- nodal_index_set_name = "PHINDEX_"+str(tree_node._name)
- nodal_index_set = instance.find_component(nodal_index_set_name)
- assert nodal_index_set is not None
- linearization_constraint = \
- Constraint(nodal_index_set,
- linearization_index_set,
- name=linearization_constraint_name)
- linearization_constraint.construct()
- instance.add_component(linearization_constraint_name, linearization_constraint)
-
- for variable_id in tree_node._variable_ids:
-
- # don't add weight terms for derived variables at the tree
- # node.
- if variable_id in tree_node._derived_variable_ids:
- continue
-
- if variable_id not in tree_node._minimums:
- variable_name, index = tree_node._variable_ids[variable_id]
- raise RuntimeError("No minimum value statistic found for variable=%s "
- "on tree node=%s; cannot form linearized PH objective"
- % (variable_name+indexToString(index),
- tree_node._name))
- if variable_id not in tree_node._maximums:
- variable_name, index = tree_node._variable_ids[variable_id]
- raise RuntimeError("No maximums value statistic found for "
- "variable=%s on tree node=%s; cannot "
- "form linearized PH objective"
- % (variable_name+indexToString(index),
- tree_node._name))
-
-
- xbar = xbar_dict[variable_id]
- node_min = tree_node._minimums[variable_id]
- node_max = tree_node._maximums[variable_id]
-
- instance_vardata = nodeid_to_vardata_map[variable_id]
-
- if (instance_vardata.stale is False) and (instance_vardata.fixed is False):
-
- # binaries have already been dealt with in the process of PH objective function formation.
- if isinstance(instance_vardata.domain, BooleanSet) is False:
-
- x = instance_vardata
-
- if x.lb is None or x.ub is None:
- msg = "Missing bound for variable '%s'\n" \
- 'Both lower and upper bounds required when' \
- ' piece-wise approximating quadratic ' \
- 'penalty terms'
- raise ValueError(msg % instance_vardata.name)
- lb = value(x.lb)
- ub = value(x.ub)
-
- # compute the breakpoint sequence according to the specified strategy.
- try:
- strategy = (compute_uniform_breakpoints,
- compute_uniform_between_nodestat_breakpoints,
- compute_uniform_between_woodruff_breakpoints,
- compute_exponential_from_mean_breakpoints,
- )[ breakpoint_strategy ]
- args = ( lb, node_min, xbar, node_max, ub, \
- linearize_nonbinary_penalty_terms, tolerance )
- breakpoints = strategy( *args )
- except ValueError:
- e = sys.exc_info()[1]
- msg = 'A breakpoint distribution strategy (%s) ' \
- 'is currently not supported within PH!'
- raise ValueError(msg % breakpoint_strategy)
-
- for i in xrange(len(breakpoints)-1):
-
- this_lb = breakpoints[i]
- this_ub = breakpoints[i+1]
-
- segment_tuple = create_piecewise_constraint_tuple(this_lb,
- this_ub,
- x,
- xbar,
- linearized_cost_variable[variable_id],
- tolerance)
-
- linearization_constraint.add((variable_id,i), segment_tuple)
-
- return new_instance_attributes
diff --git a/pyomo/pysp/phsolverserver.py b/pyomo/pysp/phsolverserver.py
deleted file mode 100644
index 84f1924784b..00000000000
--- a/pyomo/pysp/phsolverserver.py
+++ /dev/null
@@ -1,1420 +0,0 @@
-# ___________________________________________________________________________
-#
-# Pyomo: Python Optimization Modeling Objects
-# Copyright 2017 National Technology and Engineering Solutions of Sandia, LLC
-# Under the terms of Contract DE-NA0003525 with National Technology and
-# Engineering Solutions of Sandia, LLC, the U.S. Government retains certain
-# rights in this software.
-# This software is distributed under the 3-clause BSD License.
-# ___________________________________________________________________________
-
-import os
-import socket
-import sys
-import time
-import copy
-from optparse import OptionParser
-
-from pyomo.common.errors import ApplicationError
-from pyomo.common.collections import Bunch
-from pyutilib.misc import import_file
-from pyutilib.pyro import (TaskWorker,
- TaskWorkerServer,
- shutdown_pyro_components)
-
-from pyomo.core import Var, Suffix, Constraint
-from pyomo.opt import UndefinedData
-from pyomo.common import pyomo_command
-from pyomo.common.gc_manager import PauseGC
-from pyomo.common.plugin import ExtensionPoint, SingletonPlugin
-from pyomo.opt import (SolverFactory,
- TerminationCondition,
- SolutionStatus)
-from pyomo.pysp.phextension import IPHSolverServerExtension
-from pyomo.pysp.scenariotree.instance_factory import \
- ScenarioTreeInstanceFactory
-from pyomo.pysp.phsolverserverutils import (TransmitType,
- InvocationType)
-from pyomo.pysp.ph import _PHBase
-from pyomo.pysp.phutils import (reset_nonconverged_variables,
- reset_stage_cost_variables,
- extract_solve_times)
-from pyomo.pysp.util.misc import launch_command
-
-from six import iterkeys, iteritems
-
-class PHPyroWorker(TaskWorker):
-
- def __init__(self, **kwds):
-
- # add for purposes of diagnostic output.
- kwds["caller_name"] = "PH Pyro Server"
- kwds["name"] = ("PySPWorker_%d@%s" % (os.getpid(), socket.gethostname()))
- TaskWorker.__init__(self, **kwds)
-
- self.type = self.WORKERNAME
- self.block = True
- self.timeout = None
- self._phsolverserver_map = {}
- # phsolverserver processes all collect from different queues,
- # so we can collect as many tasks as are available in the queue
- self._bulk_task_collection = True
- self._modules_imported = {}
-
- def process(self, data):
-
- data = Bunch(**data)
- result = None
- if data.action == "release":
-
- del self._phsolverserver_map[data.object_name]
- result = True
-
- elif data.action == "initialize":
-
- self._phsolverserver_map[data.object_name] = _PHSolverServer(self._modules_imported)
- self._phsolverserver_map[data.object_name].WORKERNAME = self.WORKERNAME
- data.name = data.object_name
- result = self._phsolverserver_map[data.name].process(data)
-
- elif data.action == "shutdown":
-
- print("Received shutdown request")
- self.dispatcher.clear_queue(type=self.type)
- self._worker_shutdown = True
-
- else:
-
- with PauseGC() as pgc:
- result = self._phsolverserver_map[data.name].process(data)
-
- return result
-
-class _PHSolverServer(_PHBase):
-
- def __init__(self, modules_imported, **kwds):
-
- _PHBase.__init__(self)
-
- self._first_solve = True
-
- # So we have access to real scenario and bundle probabilities
- self._uncompressed_scenario_tree = None
-
- # global handle to ph extension plugins
- self._ph_plugins = ExtensionPoint(IPHSolverServerExtension)
- self._modules_imported = modules_imported
-
- #
- # Collect full variable warmstart information off of the scenario instance
- #
-
- def collect_warmstart(self, scenario_name):
-
- if self._verbose:
- print("Received request to collect warmstart data "
- "for scenario="+str(scenario_name))
-
- result = dict((symbol, vardata.value)
- for symbol, vardata in iteritems(
- self._instances[scenario_name].\
- _PHInstanceSymbolMaps[Var].bySymbol))
-
- return result
-
- #
- # Overloading from _PHBase to add a few extra print statements
- #
-
- def activate_ph_objective_weight_terms(self):
-
- if self._verbose:
- print("Received request to activate PH objective weight "
- "terms for scenario(s)="+str(list(iterkeys(self._instances))))
-
- if self._initialized is False:
- raise RuntimeError("PH solver server has not been initialized!")
-
- _PHBase.activate_ph_objective_weight_terms(self)
-
- if self._verbose:
- print("Activating PH objective weight terms")
-
- #
- # Overloading from _PHBase to add a few extra print statements
- #
-
- def deactivate_ph_objective_weight_terms(self):
-
- if self._verbose:
- print("Received request to deactivate PH objective weight terms for scenario(s)="+str(list(iterkeys(self._instances))))
-
- if self._initialized is False:
- raise RuntimeError("PH solver server has not been initialized!")
-
- _PHBase.deactivate_ph_objective_weight_terms(self)
-
- if self._verbose:
- print("Deactivating PH objective weight terms")
-
- #
- # Overloading from _PHBase to add a few extra print statements
- #
-
- def activate_ph_objective_proximal_terms(self):
-
- if self._verbose:
- print("Received request to activate PH objective proximal terms for scenario(s)="+str(list(iterkeys(self._instances))))
-
- if self._initialized is False:
- raise RuntimeError("PH solver server has not been initialized!")
-
- _PHBase.activate_ph_objective_proximal_terms(self)
-
- if self._verbose:
- print("Activating PH objective proximal terms")
-
- #
- # Overloading from _PHBase to add a few extra print statements
- #
-
- def deactivate_ph_objective_proximal_terms(self):
-
- if self._verbose:
- print("Received request to deactivate PH objective proximal terms for scenario(s)="+str(list(iterkeys(self._instances))))
-
- if self._initialized is False:
- raise RuntimeError("PH solver server has not been initialized!")
-
- _PHBase.deactivate_ph_objective_proximal_terms(self)
-
- if self._verbose:
- print("Deactivating PH objective proximal terms")
-
- def collect_scenario_tree_data(self, tree_object_names):
-
- data = {}
- node_data = data['nodes'] = {}
- for node_name in tree_object_names['nodes']:
- tree_node = self._scenario_tree.get_node(node_name)
- this_node_data = node_data[node_name] = {}
- this_node_data['_variable_ids'] = tree_node._variable_ids
- this_node_data['_standard_variable_ids'] = tree_node._standard_variable_ids
- this_node_data['_variable_indices'] = tree_node._variable_indices
- this_node_data['_integer'] = list(tree_node._integer)
- this_node_data['_binary'] = list(tree_node._binary)
- this_node_data['_semicontinuous'] = list(tree_node._semicontinuous)
- # master will need to reconstruct
- # _derived_variable_ids
- # _name_index_to_id
-
- scenario_data = data['scenarios'] = {}
- for scenario_name in tree_object_names['scenarios']:
- scenario = self._scenario_tree.get_scenario(scenario_name)
- this_scenario_data = scenario_data[scenario_name] = {}
- this_scenario_data['_objective_name'] = scenario._objective_name
- this_scenario_data['_objective_sense'] = scenario._objective_sense
- this_scenario_data['_rho'] = scenario._rho
-
- return data
-
-
- def initialize(self,
- model_location,
- data_location,
- object_name,
- objective_sense,
- solver_type,
- solver_io,
- scenario_bundle_specification,
- create_random_bundles,
- scenario_tree_random_seed,
- default_rho,
- linearize_nonbinary_penalty_terms,
- retain_quadratic_binary_terms,
- breakpoint_strategy,
- integer_tolerance,
- output_solver_results,
- verbose,
- compile_scenario_instances):
-
- # TODO: Does this import need to be delayed because
- # it is in a plugins subdirectory
- from pyomo.solvers.plugins.solvers.persistent_solver import \
- PersistentSolver
-
- if verbose:
- print("Received request to initialize PH solver server")
- print("")
- print("Model source: "+model_location)
- print("Scenario Tree source: "+str(data_location))
- print("Solver type: "+solver_type)
- print("Scenario or bundle name: "+object_name)
- if scenario_bundle_specification != None:
- print("Scenario tree bundle specification: "
- +scenario_bundle_specification)
- if create_random_bundles != None:
- print("Create random bundles: "+str(create_random_bundles))
- if scenario_tree_random_seed != None:
- print("Scenario tree random seed: "+ str(scenario_tree_random_seed))
- print("Linearize non-binary penalty terms: "
- + str(linearize_nonbinary_penalty_terms))
-
- if self._initialized:
- raise RuntimeError("PH solver servers cannot currently be "
- "re-initialized")
-
- # let plugins know if they care.
- if self._verbose:
- print("Invoking pre-initialization PHSolverServer plugins")
- for plugin in self._ph_plugins:
- plugin.pre_ph_initialization(self)
-
- self._objective_sense = objective_sense
- self._verbose = verbose
- self._rho = default_rho
- self._linearize_nonbinary_penalty_terms = linearize_nonbinary_penalty_terms
- self._retain_quadratic_binary_terms = retain_quadratic_binary_terms
- self._breakpoint_strategy = breakpoint_strategy
- self._integer_tolerance = integer_tolerance
- self._output_solver_results = output_solver_results
-
- # the following is applicable to *all* solver plugins managed by this
- # server. this could be relaxed in the future, if one so desired.
- self._solver_type = solver_type
- self._solver_io = solver_io
-
- if self._verbose:
- print("Constructing solver type="+solver_type)
-
- object_solver = self._solver_map[object_name] = SolverFactory(solver_type,solver_io=self._solver_io)
- if object_solver == None:
- raise ValueError("Unknown solver type=" + solver_type + " specified")
-
- # we need the base model to construct
- # the scenarios that this server is responsible for.
- # TBD - revisit the various "weird" scenario tree arguments
-
- # GAH: At this point these should never be any form of
- # compressed archive (unless I messed up the code) We
- # want to avoid multiple unarchiving of the scenario and
- # model directories. This should have been done once on
- # the master node before this point, meaning these names
- # should point to the unarchived directories.
- assert os.path.exists(model_location)
- assert (data_location is None) or os.path.exists(data_location)
- self._scenario_instance_factory = scenario_instance_factory = ScenarioTreeInstanceFactory(model_location,
- data_location)
- self._scenario_tree = scenario_instance_factory.generate_scenario_tree(
- downsample_fraction=None,
- bundles=scenario_bundle_specification,
- random_bundles=create_random_bundles,
- random_seed=scenario_tree_random_seed,
- verbose=self._verbose)
-
- if self._scenario_tree is None:
- raise RuntimeError("Unable to launch PH solver server - scenario tree construction failed.")
-
- scenarios_to_construct = []
-
- if self._scenario_tree.contains_bundles():
-
- # validate that the bundle actually exists.
- if self._scenario_tree.contains_bundle(object_name) is False:
- raise RuntimeError("Bundle="+object_name+" does not exist.")
-
- if self._verbose:
- print("Loading scenarios for bundle="+object_name)
-
- # bundling should use the local or "mini" scenario tree -
- # and then enable the flag to load all scenarios for this
- # instance.
- scenario_bundle = self._scenario_tree.get_bundle(object_name)
- scenarios_to_construct = scenario_bundle._scenario_names
-
- else:
-
- scenarios_to_construct.append(object_name)
-
- instance_factory = self._scenario_tree._scenario_instance_factory
- self._scenario_tree._scenario_instance_factory = None
- self._uncompressed_scenario_tree = copy.deepcopy(self._scenario_tree)
- self._scenario_tree._scenario_instance_factory = instance_factory
- # compact the scenario tree to reflect those instances for
- # which this ph solver server is responsible for constructing.
- self._scenario_tree.compress(scenarios_to_construct)
-
- instances = self._scenario_tree._scenario_instance_factory.\
- construct_instances_for_scenario_tree(
- self._scenario_tree,
- compile_scenario_instances=compile_scenario_instances,
- verbose=self._verbose)
-
- # with the scenario instances now available, have the scenario
- # tree compute the variable match indices at each node.
- self._scenario_tree.linkInInstances(instances,
- self._objective_sense,
- create_variable_ids=True)
-
- self._objective_sense = \
- self._scenario_tree._scenarios[0]._objective_sense
-
- self._setup_scenario_instances()
-
- # let plugins know if they care - this callback point allows
- # users to create/modify the original scenario instances
- # and/or the scenario tree prior to creating PH-related
- # parameters, variables, and the like.
- if self._verbose:
- print("Invoking post-instance-creation PHSolverServer plugins")
-
- for plugin in self._ph_plugins:
- plugin.post_instance_creation(self)
-
- # augment the instance with PH-specific parameters (weights,
- # rhos, etc). this value and the linearization parameter as a
- # command-line argument.
- self._create_scenario_ph_parameters()
-
- # create symbol maps for easy storage/transmission of variable
- # values
- symbol_ctypes = (Var, Suffix)
- self._create_instance_symbol_maps(symbol_ctypes)
-
- # form the ph objective weight and proximal expressions Note:
- # The Expression objects for the weight and proximal terms
- # will be added to the instances objectives but will be
- # assigned values of 0.0, so that the original objective
- # function form is maintained. The purpose is so that we can
- # use this shared Expression object in the bundle binding
- # instance objectives as well when we call
- # _form_bundle_binding_instances a few lines down (so
- # regeneration of bundle objective expressions is no longer
- # required before each iteration k solve.
-
- self.add_ph_objective_weight_terms()
- # Note: call this function on the base class to avoid the
- # check for whether this phsolverserver has been
- # initialized
- _PHBase.deactivate_ph_objective_weight_terms(self)
- self.add_ph_objective_proximal_terms()
- # Note: call this function on the base class to avoid the
- # check for whether this phsolverserver has been
- # initialized
- _PHBase.deactivate_ph_objective_proximal_terms(self)
-
- # create the bundle extensive form, if bundling.
- if self._scenario_tree.contains_bundles():
- self._form_bundle_binding_instances()
-
- # if we are dealing with a persisent solver plugin, go ahead
- # and compile the instance into the solver.
- # TBD - we need to pass in the symbolic solver labels to initialize()
- # when using persistent solver plugins - because this attribute
- # is set up-front.
- if self._verbose:
- print("Setting instance for persistent solver interface")
-
- # TODO: the symbolic solver label option is not propagated presently
- # from PH to ph solver servers until the solve() method is invoked.
- # making the default "False", as largely labels take memory and
- # one can debug in the interim with a non-persistent solver.
- if isinstance(object_solver, PersistentSolver):
- if self._scenario_tree.contains_bundles():
- object_solver.set_instance(
- self._bundle_binding_instance_map[object_name],
- symbolic_solver_labels=False,
- output_fixed_variable_bounds=self._write_fixed_variables)
- else:
- object_solver.set_instance(
- self._scenario_tree.get_scenario(object_name).instance,
- symbolic_solver_labels=False,
- output_fixed_variable_bounds=self._write_fixed_variables)
-
- # Delay any preprocessing of the scenario instances
- # until we are inside the solve method. This gives users a
- # chance to further modify the instances (e.g., boundsetter
- # callbacks) without having to worry about setting preprocessor
- # tags because we are going to preprocess the entire instance
- # anyway.
-
- # let plugins know if they care.
- if self._verbose:
- print("Invoking post-initialization PHSolverServer plugins")
- for plugin in self._ph_plugins:
- plugin.post_ph_initialization(self)
-
- # TBD - what does initialize() even mean - we could be dealing with more than one instance.
- # this too should probably be a map.
- # we're good to go!
- self._initialized = True
-
- def collect_results(self,
- object_name,
- results_flags):
-
- stages_to_load = None
- if not TransmitType.TransmitAllStages(results_flags):
- if TransmitType.TransmitNonLeafStages(results_flags):
- # exclude the leaf node
- stages_to_load = set(s.name for s in self._scenario_tree.stages[:-1])
- else:
- stages_to_load = set()
-
- if self._scenario_tree.contains_bundles():
- bundle = self._scenario_tree.get_bundle(object_name)
- results = {}
- for scenario_name in bundle._scenario_names:
- scenario = self._scenario_tree.get_scenario(scenario_name)
- scenario.update_solution_from_instance(stages=stages_to_load)
- results[scenario_name] = \
- scenario.copy_solution()
- else:
- scenario = self._scenario_tree.get_scenario(object_name)
- scenario.update_solution_from_instance(stages=stages_to_load)
- results = scenario.copy_solution()
-
- return results
-
- def solve(self,
- object_name,
- tee,
- keepfiles,
- symbolic_solver_labels,
- output_fixed_variable_bounds,
- solver_options,
- solver_suffixes,
- warmstart,
- variable_transmission):
- # TODO: Does this import need to be delayed because
- # it is in a plugins subdirectory
- from pyomo.solvers.plugins.solvers.persistent_solver import \
- PersistentSolver
-
- if self._initialized is False:
- raise RuntimeError("PH solver server has not been initialized!")
-
- # cache the type of the object, to avoid some if-thens that would
- # otherwise be necessary in the code below - largely with printing.
- if self._scenario_tree.contains_bundles():
- object_type = "bundle"
- else:
- object_type = "instance"
-
- if self._verbose:
- print("Received request to solve scenario %s=%s" % (object_type, object_name))
-
- # verify that this PH solver server actually knows about the
- # input object, and find the corresponding solver plugin.
- if self._scenario_tree.contains_bundles():
- if not self._scenario_tree.is_bundle(object_name):
- print("PH solver server requested to solve bundle=%s, "
- " but that bundle is not recognized." % object_name)
- return None
- else:
- if not self._scenario_tree.is_scenario(object_name):
- print("PH solver server requested to solve scenario=%s, "
- " but that scenario is not recognized." % object_name)
- return None
-
- if object_name not in self._solver_map:
- print("No solver plugin available for scenario%s=%s" % (object_type,object_name))
- object_solver = self._solver_map[object_name]
-
- self._tee = tee
- self._symbolic_solver_labels = symbolic_solver_labels
- self._write_fixed_variables = output_fixed_variable_bounds
- self._solver_options = solver_options
- self._solver_suffixes = solver_suffixes
- self._warmstart = warmstart
- self._variable_transmission = variable_transmission
-
- if self._first_solve:
- # let plugins know if they care.
- if self._verbose:
- print("Invoking pre-iteration-0-solve PHSolverServer plugins")
- for plugin in self._ph_plugins:
- plugin.pre_iteration_0_solve(self)
- else:
- # let plugins know if they care.
- if self._verbose:
- print("Invoking pre-iteration-k-solve PHSolverServer plugins")
- for plugin in self._ph_plugins:
- plugin.pre_iteration_k_solve(self)
-
- # process input solver options - they will be persistent
- # across to the next solve. TBD: we might want to re-think a
- # reset() of the options, or something.
- for key,value in iteritems(self._solver_options):
- if self._verbose:
- print("Processing solver option="+key+", value="+str(value))
- object_solver.options[key] = value
-
- # with the introduction of piecewise linearization, the form
- # of the penalty-weighted objective is no longer fixed. thus,
- # when linearizing, we need to construct (or at least modify)
- # the constraints used to compute the linearized cost terms.
- if (self._linearize_nonbinary_penalty_terms > 0):
- # These functions will do nothing if ph proximal terms are
- # not present on the model
- self.form_ph_linearized_objective_constraints()
- # if linearizing, clear the values of the PHQUADPENALTY*
- # variables. if they have values, this can intefere with
- # warm-starting due to constraint infeasibilities.
- if self._first_solve is False:
- self._reset_instance_linearization_variables()
-
- self._preprocess_scenario_instances()
-
- if not self._first_solve:
-
- # GAH: We may need to redefine our concept of
- # warmstart. These values could be helpful in the
- # nonlinear case (or could be better than 0.0, the
- # likely default used by the solver when these
- # initializations are not placed in the NL
- # file. **Note: Initializations go into the NL file
- # independent of the "warmstart" keyword
-
- if self._scenario_tree.contains_bundles() is True:
- # clear non-converged variables and stage cost
- # variables, to ensure feasible warm starts.
- reset_nonconverged_variables(self._scenario_tree, self._instances)
- reset_stage_cost_variables(self._scenario_tree, self._instances)
- else:
- # clear stage cost variables, to ensure feasible warm starts.
- reset_stage_cost_variables(self._scenario_tree, self._instances)
-
- if isinstance(object_solver, PersistentSolver):
- common_solve_kwds = {
- 'load_solutions':False,
- 'tee':self._tee,
- 'keepfiles':keepfiles,
- 'suffixes':self._solver_suffixes}
- else:
- common_solve_kwds = {
- 'load_solutions':False,
- 'tee':self._tee,
- 'keepfiles':keepfiles,
- 'symbolic_solver_labels':self._symbolic_solver_labels,
- 'output_fixed_variable_bounds':self._write_fixed_variables,
- 'suffixes':self._solver_suffixes}
- if object_solver.warm_start_capable():
- common_solve_kwds['warmstart'] = self._warmstart
-
- stages_to_load = None
- if not TransmitType.TransmitAllStages(variable_transmission):
- if TransmitType.TransmitNonLeafStages(variable_transmission):
- # exclude the leaf node
- stages_to_load = set(s.name for s in self._scenario_tree.stages[:-1])
- else:
- stages_to_load = set()
-
- failure = False
- results = None
- if self._scenario_tree.contains_bundles():
-
- bundle_ef_instance = self._bundle_binding_instance_map[object_name]
-
- solve_start_time = time.time()
-
- results = object_solver.solve(bundle_ef_instance,
- **common_solve_kwds)
-
- pyomo_solve_time = time.time() - solve_start_time
-
- if (len(results.solution) == 0) or \
- (results.solution(0).status == \
- SolutionStatus.infeasible) or \
- (results.solver.termination_condition == \
- TerminationCondition.infeasible):
-
- if self._verbose:
- results.write()
- print("Solve failed for bundle="
- +object_name+"; no solutions generated")
- failure = True
-
- else:
-
- if self._verbose:
- print("Successfully solved scenario bundle="+object_name)
-
- if self._output_solver_results:
- print("Results for scenario bundle=%s:"
- % (bundle_name))
- print(results.write(num=1))
-
- # load the results into the instances on the server
- # side. this is non-trivial in terms of computation time,
- # for a number of reasons. plus, we don't want to pickle
- # and return results - rather, just variable-value maps.
- results_sm = results._smap
- bundle_ef_instance.solutions.load_from(
- results,
- allow_consistent_values_for_fixed_vars=\
- self._write_fixed_variables,
- comparison_tolerance_for_fixed_vars=\
- self._comparison_tolerance_for_fixed_vars,
- ignore_fixed_vars=not self._write_fixed_variables)
-
- if self._verbose:
- print("Successfully loaded solution for bundle="+object_name)
-
- variable_values = {}
- for scenario in self._scenario_tree._scenarios:
- scenario.update_solution_from_instance(stages=stages_to_load)
- variable_values[scenario._name] = \
- scenario.copy_solution()
-
- suffix_values = {}
-
- # suffixes are stored on the master block.
- bundle_ef_instance = self._bundle_binding_instance_map[object_name]
-
- for scenario in self._scenario_tree._scenarios:
- # NOTE: We are only presently extracting suffix values
- # for constraints, as this whole interface is
- # experimental. And probably inefficient. But it
- # does work.
- scenario_instance = self._instances[scenario._name]
- this_scenario_suffix_values = {}
- for suffix_name in self._solver_suffixes:
- this_suffix_map = {}
- suffix = getattr(bundle_ef_instance, suffix_name)
- for constraint in scenario_instance.component_objects(Constraint, active=True):
- this_constraint_suffix_map = {}
- for index, constraint_data in iteritems(constraint):
- this_constraint_suffix_map[index] = suffix.get(constraint_data)
- this_suffix_map[constraint.name] = this_constraint_suffix_map
- this_scenario_suffix_values[suffix_name] = this_suffix_map
- suffix_values[scenario._name] = this_scenario_suffix_values
-
- else:
-
- scenario = self._scenario_tree._scenario_map[object_name]
- scenario_instance = self._instances[object_name]
-
- solve_start_time = time.time()
-
- results = object_solver.solve(scenario_instance,
- **common_solve_kwds)
-
- pyomo_solve_time = time.time() - solve_start_time
-
- if (len(results.solution) == 0) or \
- (results.solution(0).status == \
- SolutionStatus.infeasible) or \
- (results.solver.termination_condition == \
- TerminationCondition.infeasible):
-
- if self._verbose:
- results.write()
- print("Solve failed for scenario="
- +object_name+"; no solutions generated")
- failure = True
-
- else:
-
- if self._verbose:
- print("Successfully solved scenario instance="+object_name)
-
- if self._output_solver_results:
- print("Results for scenario instance=%s:"
- % (object_name))
- print(results.write(num=1))
-
- # load the results into the instances on the server
- # side. this is non-trivial in terms of computation time,
- # for a number of reasons. plus, we don't want to pickle
- # and return results - rather, just variable-value maps.
- results_sm = results._smap
- scenario_instance.solutions.load_from(
- results,
- allow_consistent_values_for_fixed_vars=\
- self._write_fixed_variables,
- comparison_tolerance_for_fixed_vars=\
- self._comparison_tolerance_for_fixed_vars,
- ignore_fixed_vars=not self._write_fixed_variables)
-
- scenario.update_solution_from_instance(stages=stages_to_load)
- variable_values = \
- scenario.copy_solution()
-
- if self._verbose:
- print("Successfully loaded solution for scenario="+object_name)
-
- # extract suffixes into a dictionary, mapping suffix names
- # to dictionaries that in turn map constraint names to
- # (index, suffix-value) pairs.
- suffix_values = {}
-
- # NOTE: We are only presently extracting suffix values for
- # constraints, as this whole interface is
- # experimental. And probably inefficient. But it
- # does work.
- for suffix_name in self._solver_suffixes:
- this_suffix_map = {}
- suffix = getattr(scenario_instance, suffix_name)
- # TODO: This needs to be over all blocks
- for constraint_name, constraint in \
- iteritems(scenario_instance.component_map(Constraint, active=True)):
- this_constraint_suffix_map = {}
- for index, constraint_data in iteritems(constraint):
- this_constraint_suffix_map[index] = \
- suffix.get(constraint_data)
- this_suffix_map[constraint_name] = this_constraint_suffix_map
- suffix_values[suffix_name] = this_suffix_map
-
- if not failure:
-
- self._solver_results[object_name] = (results, results_sm)
-
- # auxilliary values are those associated with the solve itself.
- auxilliary_values = {}
-
- solution0 = results.solution(0)
- if hasattr(solution0, "gap") and \
- (not isinstance(solution0.gap, UndefinedData)) and \
- (solution0.gap is not None):
- auxilliary_values["gap"] = solution0.gap
-
- auxilliary_values["solve_time"], auxilliary_values["pyomo_solve_time"] = \
- extract_solve_times(results, default=None)
-
- auxilliary_values['solution_status'] = solution0.status.name
-
- solve_method_result = (variable_values, suffix_values, auxilliary_values)
-
- else:
-
- solve_method_result = ()
-
- if self._first_solve is True:
- # let plugins know if they care.
- if self._verbose:
- print("Invoking post-iteration-0-solve PHSolverServer plugins")
- for plugin in self._ph_plugins:
- plugin.post_iteration_0_solve(self)
- else:
- # let plugins know if they care.
- if self._verbose:
- print("Invoking post-iteration-k-solve PHSolverServer plugins")
- for plugin in self._ph_plugins:
- plugin.post_iteration_k_solve(self)
-
- self._first_solve = False
-
- return solve_method_result
-
- def update_xbars(self, object_name, new_xbars):
-
- if self._verbose:
- if self._scenario_tree.contains_bundles() is True:
- print("Received request to update xbars for bundle="+object_name)
- else:
- print("Received request to update xbars for scenario="+object_name)
-
- if self._initialized is False:
- raise RuntimeError("PH solver server has not been initialized!")
-
- for node_name, node_xbars in iteritems(new_xbars):
- tree_node = self._scenario_tree._tree_node_map[node_name]
- tree_node._xbars.update(node_xbars)
-
- #
- # updating weights only applies to scenarios - not bundles.
- #
- def update_weights(self, scenario_name, new_weights):
-
- if self._verbose:
- print("Received request to update weights for scenario="+scenario_name)
-
- if self._initialized is False:
- raise RuntimeError("PH solver server has not been initialized!")
-
- if scenario_name not in self._instances:
- print("ERROR: Received request to update weights for instance not in PH solver server instance collection!")
- return None
-
- scenario = self._scenario_tree._scenario_map[scenario_name]
- for tree_node_name, tree_node_weights in iteritems(new_weights):
- scenario._w[tree_node_name].update(tree_node_weights)
-
- #
- # updating rhos is only applicable to scenarios.
- #
- def update_rhos(self, scenario_name, new_rhos):
-
- if self._verbose:
- print("Received request to update rhos for scenario="+scenario_name)
-
- if self._initialized is False:
- raise RuntimeError("PH solver server has not been initialized!")
-
- if scenario_name not in self._instances:
- print("ERROR: Received request to update rhos for scenario="+scenario_name+", which is not in the PH solver server instance set="+str(self._instances.keys()))
- return None
-
- scenario = self._scenario_tree._scenario_map[scenario_name]
- for tree_node_name, tree_node_rhos in iteritems(new_rhos):
- scenario._rho[tree_node_name].update(tree_node_rhos)
-
- #
- # updating tree node statistics is bundle versus scenario agnostic.
- #
-
- def update_tree_node_statistics(self,
- scenario_name,
- new_node_minimums,
- new_node_maximums):
-
- if self._verbose:
- if self._scenario_tree.contains_bundles() is True:
- print("Received request to update tree node "
- "statistics for bundle="+scenario_name)
- else:
- print("Received request to update tree node "
- "statistics for scenario="+scenario_name)
-
- if self._initialized is False:
- raise RuntimeError("PH solver server has not been initialized!")
-
- for tree_node_name, tree_node_minimums in iteritems(new_node_minimums):
- this_tree_node_minimums = \
- self._scenario_tree._tree_node_map[tree_node_name]._minimums
- this_tree_node_minimums.update(tree_node_minimums)
-
- for tree_node_name, tree_node_maximums in iteritems(new_node_maximums):
- this_tree_node_maximums = \
- self._scenario_tree._tree_node_map[tree_node_name]._maximums
- this_tree_node_maximums.update(tree_node_maximums)
-
- #
- # define the indicated suffix on my scenario instance. not dealing
- # with bundles right now.
- #
-
- def define_import_suffix(self, object_name, suffix_name):
-
- if self._verbose:
- if self._scenario_tree.contains_bundles() is True:
- print("Received request to define import suffix="
- +suffix_name+" for bundle="+object_name)
- else:
- print("Received request to define import suffix="
- +suffix_name+" for scenario="+object_name)
-
- if self._initialized is False:
- raise RuntimeError("PH solver server has not been initialized!")
-
- if self._scenario_tree.contains_bundles() is True:
-
- bundle_ef_instance = self._bundle_binding_instance_map[object_name]
-
- bundle_ef_instance.add_component(suffix_name,
- Suffix(direction=Suffix.IMPORT))
-
- else:
-
- if object_name not in self._instances:
- print("ERROR: Received request to define import suffix="
- +suffix_name+" for scenario="+object_name+
- ", which is not in the collection of PH solver "
- "server instances="+str(self._instances.keys()))
- return None
- scenario_instance = self._instances[object_name]
-
- scenario_instance.add_component(suffix_name,
- Suffix(direction=Suffix.IMPORT))
-
- #
- # Invoke the indicated function in the specified module.
- #
-
- def invoke_external_function(self,
- object_name,
- invocation_type,
- module_name,
- function_name,
- function_args,
- function_kwds):
-
- # pyutilib.Enum can not be serialized depending on the
- # serializer type used by Pyro, so we just send the
- # key name
- invocation_type = getattr(InvocationType,invocation_type)
-
- if self._verbose:
- if self._scenario_tree.contains_bundles():
- print("Received request to invoke external function"
- "="+function_name+" in module="+module_name+" "
- "for bundle="+object_name)
- else:
- print("Received request to invoke external function"
- "="+function_name+" in module="+module_name+" "
- "for scenario="+object_name)
-
- if self._initialized is False:
- raise RuntimeError("PH solver server has not been initialized!")
-
- scenario_tree_object = None
- if self._scenario_tree.contains_bundles():
- scenario_tree_object = self._scenario_tree._scenario_bundle_map[object_name]
- else:
- scenario_tree_object = self._scenario_tree._scenario_map[object_name]
-
- if module_name in self._modules_imported:
- this_module = self._modules_imported[module_name]
- elif module_name in sys.modules:
- this_module = sys.modules[module_name]
- else:
- this_module = import_file(module_name,
- clear_cache=True)
- self._modules_imported[module_name] = this_module
-
- module_attrname = function_name
- subname = None
- if not hasattr(this_module, module_attrname):
- if "." in module_attrname:
- module_attrname, subname = function_name.split(".",1)
- if not hasattr(this_module, module_attrname):
- raise RuntimeError("Function="+function_name+" is not present "
- "in module="+module_name)
-
- if function_args is None:
- function_args = ()
- if function_kwds is None:
- function_kwds = {}
-
- call_objects = None
- if invocation_type == InvocationType.SingleInvocation:
- if self._scenario_tree.contains_bundles():
- call_objects = (object_name,self._scenario_tree._scenario_bundle_map[object_name])
- else:
- call_objects = (object_name,self._scenario_tree._scenario_map[object_name])
- elif (invocation_type == InvocationType.PerBundleInvocation) or \
- (invocation_type == InvocationType.PerBundleChainedInvocation):
- if not self._scenario_tree.contains_bundles():
- raise ValueError("Received request for bundle invocation type "
- "but the scenario tree does not contain bundles.")
- call_objects = iteritems(self._scenario_tree._scenario_bundle_map)
- elif (invocation_type == InvocationType.PerScenarioInvocation) or \
- (invocation_type == InvocationType.PerScenarioChainedInvocation):
- call_objects = iteritems(self._scenario_tree._scenario_map)
- elif (invocation_type == InvocationType.PerNodeInvocation) or \
- (invocation_type == InvocationType.PerNodeChainedInvocation):
- call_objects = iteritems(self._scenario_tree._tree_node_map)
- else:
- raise ValueError("Unexpected function invocation type '%s'. "
- "Expected one of %s"
- % (invocation_type,
- [str(v) for v in InvocationType._values]))
-
- function = getattr(this_module, module_attrname)
- if subname is not None:
- function = getattr(function, subname)
-
- if invocation_type == InvocationType.SingleInvocation:
- call_name, call_object = call_objects
- return function(self,
- self._scenario_tree,
- call_object,
- *function_args,
- **function_kwds)
- elif (invocation_type == InvocationType.PerBundleChainedInvocation) or \
- (invocation_type == InvocationType.PerScenarioChainedInvocation) or \
- (invocation_type == InvocationType.PerNodeChainedInvocation):
- result = function_args
- for call_name, call_object in call_objects:
- result = function(self,
- self._scenario_tree,
- call_object,
- *result,
- **function_kwds)
- return result
- else:
- return dict((call_name,function(self,
- self._scenario_tree,
- call_object,
- *function_args,
- **function_kwds))
- for call_name, call_object in call_objects)
-
- #
- # restore solutions for all of scenario instances.
- #
-
- def restoreCachedSolutions(self, object_name, cache_id, release_cache):
-
- if self._verbose:
- if self._scenario_tree.contains_bundles() is True:
- print("Received request to restore cached solution for bundle="+object_name)
- else:
- print("Received request to restore cached solution for scenario="+object_name)
- print("Restoring from cache id: "+str(cache_id))
-
- if self._initialized is False:
- raise RuntimeError("PH solver server has not been initialized!")
-
- if self._scenario_tree.contains_bundles() is True:
- # validate that the bundle actually exists.
- if self._scenario_tree.contains_bundle(object_name) is False:
- raise RuntimeError("Bundle="+object_name+" does not exist.")
- else:
- if object_name not in self._instances:
- raise RuntimeError(object_name+" is not in the PH solver server instance collection")
-
- _PHBase.restoreCachedSolutions(self, cache_id, release_cache)
-
- #
- # restore solutions for all of scenario instances.
- #
-
- def cacheSolutions(self, object_name, cache_id):
-
- if self._verbose:
- if self._scenario_tree.contains_bundles() is True:
- print("Received request to cache solution for bundle="+object_name)
- else:
- print("Received request to cache solution for scenario="+object_name)
- print("Caching with id: "+str(cache_id))
-
- if self._initialized is False:
- raise RuntimeError("PH solver server has not been initialized!")
-
- if self._scenario_tree.contains_bundles() is True:
- # validate that the bundle actually exists.
- if self._scenario_tree.contains_bundle(object_name) is False:
- raise RuntimeError("Bundle="+object_name+" does not exist.")
- else:
- if object_name not in self._instances:
- raise RuntimeError(object_name+" is not in the PH solver server instance collection")
-
- _PHBase.cacheSolutions(self, cache_id)
-
-
- #
- # fix variables as instructed by the PH client.
- #
- def update_fixed_variables(self, object_name, fixed_variables):
-
- if self._verbose:
- if self._scenario_tree.contains_bundles() is True:
- print("Received request to update fixed variables for "
- "bundle="+object_name)
- else:
- print("Received request to update fixed variables for "
- "scenario="+object_name)
-
- if self._initialized is False:
- raise RuntimeError("PH solver server has not been initialized!")
-
- for node_name, node_fixed_vars in iteritems(fixed_variables):
- tree_node = self._scenario_tree.get_node(node_name)
- tree_node._fix_queue.update(node_fixed_vars)
-
- self._push_fix_queue_to_instances()
-
- def process(self, data):
-
- result = None
- if data.action == "initialize":
- result = self.initialize(data.model_location,
- data.data_location,
- data.object_name,
- data.objective_sense,
- data.solver_type,
- data.solver_io,
- data.scenario_bundle_specification,
- data.create_random_bundles,
- data.scenario_tree_random_seed,
- data.default_rho,
- data.linearize_nonbinary_penalty_terms,
- data.retain_quadratic_binary_terms,
- data.breakpoint_strategy,
- data.integer_tolerance,
- data.output_solver_results,
- data.verbose,
- data.compile_scenario_instances)
-
- elif data.action == "collect_results":
- result = self.collect_results(data.name,
- data.var_config)
- elif data.action == "solve":
- # we are adding the following code because some solvers, including
- # CPLEX, are not all that robust - in that they can spontaneously
- # and sporadically fail. ultimately, this should be command-line
- # option driver.
- max_num_attempts = 2
- attempts_so_far = 0
- successful_solve = False
- while (not successful_solve):
- try:
- attempts_so_far += 1
- result = self.solve(data.name,
- data.tee,
- data.keepfiles,
- data.symbolic_solver_labels,
- data.output_fixed_variable_bounds,
- data.solver_options,
- data.solver_suffixes,
- data.warmstart,
- data.variable_transmission)
- successful_solve = True
- except ApplicationError as exc:
- print("Solve failed for object=%s - this was attempt=%d"
- % (data.name, attempts_so_far))
- if (attempts_so_far == max_num_attempts):
- print("Aborting PH solver server - the maximum number "
- "of solve attempts=%d have been executed"
- % (max_num_attempts))
- raise exc
-
- if attempts_so_far > 1:
- print("Successfully recovered from failed solve for "
- "object=%s" % (data.name))
-
- elif data.action == "activate_ph_objective_proximal_terms":
- self.activate_ph_objective_proximal_terms()
- result = True
-
- elif data.action == "deactivate_ph_objective_proximal_terms":
- self.deactivate_ph_objective_proximal_terms()
- result = True
-
- elif data.action == "activate_ph_objective_weight_terms":
- self.activate_ph_objective_weight_terms()
- result = True
-
- elif data.action == "deactivate_ph_objective_weight_terms":
- self.deactivate_ph_objective_weight_terms()
- result = True
-
- elif data.action == "load_rhos":
- if self._scenario_tree.contains_bundles() is True:
- for scenario_name, scenario_instance in iteritems(self._instances):
- self.update_rhos(scenario_name,
- data.new_rhos[scenario_name])
- else:
- self.update_rhos(data.name,
- data.new_rhos)
- result = True
- self._push_rho_to_instances()
-
- elif data.action == "update_fixed_variables":
- self.update_fixed_variables(data.name,
- data.fixed_variables)
- result = True
- self._push_fix_queue_to_instances()
-
- elif data.action == "load_weights":
- if self._scenario_tree.contains_bundles() is True:
- for scenario_name, scenario_instance in iteritems(self._instances):
- self.update_weights(scenario_name,
- data.new_weights[scenario_name])
- else:
- self.update_weights(data.name,
- data.new_weights)
- result = True
- self._push_w_to_instances()
-
- elif data.action == "load_xbars":
- self.update_xbars(data.name,
- data.new_xbars)
- result = True
- self._push_xbar_to_instances()
-
- elif data.action == "load_tree_node_stats":
- self.update_tree_node_statistics(data.name,
- data.new_mins,
- data.new_maxs)
- result = True
-
- elif data.action == "define_import_suffix":
- self.define_import_suffix(data.name,
- data.suffix_name)
- result = True
-
- elif data.action == "invoke_external_function":
- result = self.invoke_external_function(data.name,
- data.invocation_type,
- data.module_name,
- data.function_name,
- data.function_args,
- data.function_kwds)
-
- elif data.action == "restore_cached_scenario_solutions":
- # don't pass the scenario argument - by default,
- # we restore solutions for all of our instances.
- self.restoreCachedSolutions(data.name,
- data.cache_id,
- data.release_cache)
- result = True
- elif data.action == "cache_scenario_solutions":
- # don't pass the scenario argument - by default,
- # we restore solutions for all of our instances.
- self.cacheSolutions(data.name,
- data.cache_id)
- result = True
- elif data.action == "collect_scenario_tree_data":
- result = self.collect_scenario_tree_data(data.tree_object_names)
- elif data.action == "collect_warmstart":
- result = self.collect_warmstart(data.scenario_name)
- else:
- raise RuntimeError("ERROR: Unknown action="+str(data.action)+" received by PH solver server")
-
- return result
-#
-# utility method to construct an option parser for ph arguments, to be
-# supplied as an argument to the runph method.
-#
-
-def construct_options_parser(usage_string):
-
- parser = OptionParser()
- parser.add_option("--verbose",
- help="Generate verbose output for both initialization and execution. Default is False.",
- action="store_true",
- dest="verbose",
- default=False)
- parser.add_option("--profile",
- help="Enable profiling of Python code. The value of this option is the number of functions that are summarized.",
- action="store",
- dest="profile",
- type="int",
- default=0)
- parser.add_option("--disable-gc",
- help="Disable the python garbage collecter. Default is False.",
- action="store_true",
- dest="disable_gc",
- default=False)
- parser.add_option('--traceback',
- help="When an exception is thrown, show the entire call stack. Ignored if profiling is enabled. Default is False.",
- action="store_true",
- dest="traceback",
- default=False)
- parser.add_option('--user-defined-extension',
- help="The name of a python module specifying a user-defined PHSolverServer extension plugin.",
- action="append",
- dest="user_defined_extensions",
- type="string",
- default=[])
- parser.add_option('--pyro-host',
- help="The hostname to bind on when searching for a Pyro nameserver.",
- action="store",
- dest="pyro_host",
- default=None)
- parser.add_option('--pyro-port',
- help="The port to bind on when searching for a Pyro nameserver.",
- action="store",
- dest="pyro_port",
- type="int",
- default=None)
-
- #parser.add_option("--shutdown-on-error",
- # help="On error, shut down all Pyro-related components connected to the current nameserver. In most cases, it is only necessary to supply this option to the runph command.",
- # action="store_true",
- # dest="shutdown_on_error",
- # default=False)
-
- parser.usage=usage_string
-
- return parser
-
-#
-# Execute the PH solver server daemon.
-#
-def exec_phsolverserver(options):
-
- # disable all plugins up-front. then, enable them on an as-needed
- # basis later in this function.
- ph_extension_point = ExtensionPoint(IPHSolverServerExtension)
-
- for plugin in ph_extension_point:
- plugin.disable()
-
- if len(options.user_defined_extensions) > 0:
- for this_extension in options.user_defined_extensions:
- if this_extension in sys.modules:
- print("User-defined PHSolverServer extension module="
- +this_extension+" already imported - skipping")
- else:
- print("Trying to import user-defined PHSolverServer "
- "extension module="+this_extension)
- # make sure "." is in the PATH.
- original_path = list(sys.path)
- sys.path.insert(0,'.')
- import_file(this_extension)
- print("Module successfully loaded")
- sys.path[:] = original_path # restore to what it was
-
- # now that we're sure the module is loaded, re-enable this
- # specific plugin. recall that all plugins are disabled
- # by default in phinit.py, for various reasons. if we want
- # them to be picked up, we need to enable them explicitly.
- import inspect
- module_to_find = this_extension
- if module_to_find.rfind(".py"):
- module_to_find = module_to_find.rstrip(".py")
- if module_to_find.find("/") != -1:
- module_to_find = module_to_find.split("/")[-1]
-
- for name, obj in inspect.getmembers(sys.modules[module_to_find], inspect.isclass):
- # the second condition gets around goofyness related to issubclass returning
- # True when the obj is the same as the test class.
- if issubclass(obj, SingletonPlugin) and name != "SingletonPlugin":
- ph_extension_point = ExtensionPoint(IPHSolverServerExtension)
- for plugin in ph_extension_point(all=True):
- if isinstance(plugin, obj):
- plugin.enable()
-
- try:
- # spawn the daemon
- TaskWorkerServer(PHPyroWorker,
- host=options.pyro_host,
- port=options.pyro_port)
- except:
- # if an exception occurred, then we probably want to shut down
- # all Pyro components. otherwise, the PH client may have
- # forever while waiting for results that will never
- # arrive. there are better ways to handle this at the PH
- # client level, but until those are implemented, this will
- # suffice for cleanup.
- #NOTE: this should perhaps be command-line driven, so it can
- # be disabled if desired.
- print("PH solver server aborted. Sending shutdown request.")
- shutdown_pyro_components(host=options.pyro_host,
- port=options.pyro_port,
- num_retries=0)
- raise
-
-@pyomo_command('phsolverserver', "Pyro-based server for PH solvers")
-def main(args=None):
- #
- # Top-level command that executes the ph solver server daemon.
- #
-
- #
- # Import plugins
- #
- import pyomo.environ
-
- #
- # Parse command-line options.
- #
- try:
- options_parser = \
- construct_options_parser("phsolverserver [options]")
- (options, args) = options_parser.parse_args(args=args)
- except SystemExit as _exc:
- # the parser throws a system exit if "-h" is specified
- # - catch it to exit gracefully.
- return _exc.code
-
- return launch_command(exec_phsolverserver,
- options,
- error_label="phsolverserver: ",
- disable_gc=options.disable_gc,
- profile_count=options.profile,
- traceback=options.traceback)
diff --git a/pyomo/pysp/phsolverserverutils.py b/pyomo/pysp/phsolverserverutils.py
deleted file mode 100644
index d1545d8c108..00000000000
--- a/pyomo/pysp/phsolverserverutils.py
+++ /dev/null
@@ -1,1189 +0,0 @@
-# ___________________________________________________________________________
-#
-# Pyomo: Python Optimization Modeling Objects
-# Copyright 2017 National Technology and Engineering Solutions of Sandia, LLC
-# Under the terms of Contract DE-NA0003525 with National Technology and
-# Engineering Solutions of Sandia, LLC, the U.S. Government retains certain
-# rights in this software.
-# This software is distributed under the 3-clause BSD License.
-# ___________________________________________________________________________
-
-# the intent of this module is to provide functions to interface from
-# a PH client to a set of PH solver servers.
-
-import time
-import itertools
-import enum
-
-from pyomo.core import Var
-
-from six import iteritems, itervalues
-
-
-class InvocationType(str, enum.Enum):
- SingleInvocation = 'SingleInvocation'
- PerBundleInvocation = 'PerBundleInvocation'
- PerBundleChainedInvocation = 'PerBundleChainedInvocation'
- PerScenarioInvocation = 'PerScenarioInvocation'
- PerScenarioChainedInvocation = 'PerScenarioChainedInvocation'
- PerNodeInvocation = 'PerNodeInvocation'
- PerNodeChainedInvocation = 'PerNodeChainedInvocation'
-
-class TransmitType(object):
-
- # Transmit stale variables
- stale = 0b0000001
- # Transmit fixed variables
- fixed = 0b0000010
- # Transmit derived variables
- derived = 0b0000100
- # Transmit blended variables
- blended = 0b0001000
-
- @classmethod
- def TransmitStale(cls, flag):
- return (flag & cls.stale) == cls.stale
- @classmethod
- def TransmitFixed(cls, flag):
- return (flag & cls.fixed) == cls.fixed
- @classmethod
- def TransmitDerived(cls, flag):
- return (flag & cls.derived) == cls.derived
-
- # Scenario tree variables
- nonleaf_stages = 0b0010000
- all_stages = 0b0110000
-
- @classmethod
- def TransmitNonLeafStages(cls, flag):
- return flag & cls.nonleaf_stages == cls.nonleaf_stages
- @classmethod
- def TransmitAllStages(cls, flag):
- return flag & cls.all_stages == cls.all_stages
-
-def collect_full_results(ph, var_config):
-
- start_time = time.time()
-
- if ph._verbose:
- print("Collecting results from PH solver servers")
-
- subproblem_action_handle_map = {} # maps subproblem names to action handles
- action_handle_subproblem_map = {} # maps action handles to subproblem names
-
- ph._solver_manager.begin_bulk()
-
- for subproblem_to_solve in ph._scenario_tree.subproblems:
-
- new_action_handle = ph._solver_manager.queue(
- action="collect_results",
- queue_name=ph._phpyro_job_worker_map[subproblem_to_solve.name],
- name=subproblem_to_solve.name,
- var_config=var_config)
-
- subproblem_action_handle_map[subproblem_to_solve.name] = new_action_handle
- action_handle_subproblem_map[new_action_handle] = subproblem_to_solve.name
-
- ph._solver_manager.end_bulk()
-
- if ph._verbose:
- print("Waiting for results extraction")
-
- num_results_so_far = 0
-
- while (num_results_so_far < len(ph._scenario_tree.subproblems)):
-
- action_handle = ph._solver_manager.wait_any()
- try:
- subproblem_name = action_handle_subproblem_map[action_handle]
- except KeyError:
- if action_handle in ph._queued_solve_action_handles:
- ph._queued_solve_action_handles.discard(action_handle)
- print("WARNING: Discarding uncollected solve action handle "
- "with id=%d encountered during results collection"
- % (action_handle.id))
- continue
- else:
- known_action_handles = \
- sorted((ah.id for ah in action_handle_subproblem_map))
- raise RuntimeError("PH client received an unknown action "
- "handle=%d from the dispatcher; known "
- "action handles are: %s"
- % (action_handle.id,
- str(known_action_handles)))
-
- subproblem_result = ph._solver_manager.get_results(action_handle)
-
- if ph._scenario_tree.is_bundle(subproblem_name):
- for scenario_name, scenario_results in iteritems(subproblem_result):
- scenario = ph._scenario_tree._scenario_map[scenario_name]
- scenario.set_solution(scenario_results)
- else:
- scenario = ph._scenario_tree._scenario_map[subproblem_name]
- scenario.set_solution(subproblem_result)
-
- if ph._verbose:
- print("Successfully loaded solution for subproblem="+subproblem_name)
-
- num_results_so_far += 1
-
- end_time = time.time()
-
- if ph._output_times:
- print("Results collection time=%.2f seconds" % (end_time - start_time))
-
-#
-# Extracts warm-starts from the solver servers.
-#
-
-def warmstart_scenario_instances(ph):
-
- start_time = time.time()
-
- if ph._verbose:
- print("Collecting warmstart from PH solver servers")
-
- scenario_action_handle_map = {} # maps scenario names to action handles
- action_handle_scenario_map = {} # maps action handles to scenario names
-
- ph._solver_manager.begin_bulk()
-
- if ph._scenario_tree.contains_bundles():
-
- for bundle in ph._scenario_tree._scenario_bundles:
-
- for scenario_name in bundle._scenario_names:
-
- new_action_handle = ph._solver_manager.queue(
- action="collect_warmstart",
- queue_name=ph._phpyro_job_worker_map[bundle.name],
- name=bundle.name,
- scenario_name=scenario_name)
-
- scenario_action_handle_map[scenario_name] = new_action_handle
- action_handle_scenario_map[new_action_handle] = scenario_name
-
- else:
-
- for scenario in ph._scenario_tree._scenarios:
-
- new_action_handle = ph._solver_manager.queue(
- action="collect_warmstart",
- queue_name=ph._phpyro_job_worker_map[scenario.name],
- name=scenario.name,
- scenario_name=scenario.name)
-
- scenario_action_handle_map[scenario.name] = new_action_handle
- action_handle_scenario_map[new_action_handle] = scenario.name
-
- ph._solver_manager.end_bulk()
-
- if ph._verbose:
- print("Waiting for warmstart results")
-
- num_results_so_far = 0
-
- while (num_results_so_far < len(ph._scenario_tree._scenarios)):
-
- action_handle = ph._solver_manager.wait_any()
- try:
- scenario_name = action_handle_scenario_map[action_handle]
- except KeyError:
- if action_handle in ph._queued_solve_action_handles:
- ph._queued_solve_action_handles.discard(action_handle)
- print("WARNING: Discarding uncollected solve action handle "
- "with id=%d encountered during scenario results collection"
- % (action_handle.id))
- continue
- else:
- known_action_handles = \
- sorted((ah.id for ah in action_handle_scenario_map))
- raise RuntimeError("PH client received an unknown action "
- "handle=%d from the dispatcher; known "
- "action handles are: %s"
- % (action_handle.id,
- str(known_action_handles)))
-
- scenario_results = ph._solver_manager.get_results(action_handle)
- scenario = ph._scenario_tree._scenario_map[scenario_name]
- var_sm_bySymbol = scenario._instance._PHInstanceSymbolMaps[Var].bySymbol
- for symbol, val in iteritems(scenario_results):
- var_sm_bySymbol[symbol].value = val
-
- if ph._verbose:
- print("Successfully loaded warmstart for scenario="+scenario_name)
-
- num_results_so_far += 1
-
- end_time = time.time()
-
- if ph._output_times:
- print("Warmstart collection time=%.2f seconds" % (end_time - start_time))
-
-def transmit_weights(ph):
-
- start_time = time.time()
-
- if ph._verbose:
- print("Transmitting instance weights to PH solver servers")
-
- action_handles = []
-
- generate_responses = ph._handshake_with_phpyro
-
- ph._solver_manager.begin_bulk()
-
- if ph._scenario_tree.contains_bundles():
-
- for bundle in ph._scenario_tree._scenario_bundles:
-
- # map from scenario name to the corresponding weight map
- weights_to_transmit = {}
-
- for scenario in bundle._scenario_tree._scenarios:
- scenario_name = scenario.name
-
- # Skip the leaf nodes (scenario._w usually doesn't
- # store a value for variables on the leaf node)
- weights_to_transmit[scenario.name] = \
- ph._scenario_tree._scenario_map[scenario_name]._w
-
- action_handles.append( ph._solver_manager.queue(
- action="load_weights",
- queue_name=ph._phpyro_job_worker_map[bundle.name],
- generateResponse=generate_responses,
- name=bundle.name,
- new_weights=weights_to_transmit) )
-
- else:
-
- for scenario in ph._scenario_tree._scenarios:
-
- # Skip the leaf nodes (scenario._w usually doesn't store a value
- # for variables on the leaf node)
- action_handles.append( ph._solver_manager.queue(
- action="load_weights",
- queue_name=ph._phpyro_job_worker_map[scenario.name],
- generateResponse=generate_responses,
- name=scenario.name,
- new_weights=scenario._w) )
-
- ph._solver_manager.end_bulk()
-
- if generate_responses:
- ph._solver_manager.wait_all(action_handles)
-
- end_time = time.time()
-
- if ph._output_times:
- print("Weight transmission time=%.2f seconds" % (end_time - start_time))
-
-#
-# a utility to transmit - across the PH solver manager - the
-# the current xbar values for each non-leaf scenario tree node
-#
-
-def transmit_xbars(ph):
-
- start_time = time.time()
-
- if ph._verbose:
- print("Transmitting instance xbars to PH solver servers")
-
- action_handles = []
-
- generate_responses = ph._handshake_with_phpyro
-
- ph._solver_manager.begin_bulk()
-
- if ph._scenario_tree.contains_bundles():
-
- for bundle in ph._scenario_tree._scenario_bundles:
-
- xbars_to_transmit = {}
- # Skip the leaf nodes
- for stage in bundle._scenario_tree._stages[:-1]:
- for bundle_tree_node in stage._tree_nodes:
- # The bundle scenariotree usually isn't populated
- # with variable value data so we need to reference
- # the original scenariotree node
- primary_tree_node = \
- ph._scenario_tree._tree_node_map[bundle_tree_node.name]
- xbars_to_transmit[primary_tree_node.name] = \
- primary_tree_node._xbars
-
- action_handles.append( ph._solver_manager.queue(
- action="load_xbars",
- queue_name=ph._phpyro_job_worker_map[bundle.name],
- generateResponse=generate_responses,
- name=bundle.name,
- new_xbars=xbars_to_transmit) )
-
- else:
-
- for scenario in ph._scenario_tree._scenarios:
-
- # Skip the leaf nodes
- xbars_to_transmit = {}
- xbars_to_transmit = dict((tree_node.name, tree_node._xbars) \
- for tree_node in scenario._node_list[:-1])
-
- action_handles.append( ph._solver_manager.queue(
- action="load_xbars",
- queue_name=ph._phpyro_job_worker_map[scenario.name],
- generateResponse=generate_responses,
- name=scenario.name,
- new_xbars=xbars_to_transmit) )
-
- ph._solver_manager.end_bulk()
-
- if generate_responses:
- ph._solver_manager.wait_all(action_handles)
-
- end_time = time.time()
-
- if ph._output_times:
- print("Xbar transmission time=%.2f seconds" % (end_time - start_time))
-
-
-def _transmit_init(ph, worker_name, object_name):
-
- # both the dispatcher queue for initialization and the action name
- # are "initialize" - might be confusing, but hopefully not so
- # much.
-
- ah = ph._solver_manager.queue(
- action="initialize",
- queue_name=worker_name,
- name=worker_name,
- model_location=ph._scenario_tree._scenario_instance_factory._model_filename,
- data_location=ph._scenario_tree._scenario_instance_factory._scenario_tree_filename,
- objective_sense=ph._objective_sense_option,
- object_name=object_name,
- solver_type=ph._solver_type,
- solver_io=ph._solver_io,
- scenario_bundle_specification=ph._scenario_bundle_specification,
- create_random_bundles=ph._create_random_bundles,
- scenario_tree_random_seed=ph._scenario_tree_random_seed,
- default_rho=ph._rho,
- linearize_nonbinary_penalty_terms=\
- ph._linearize_nonbinary_penalty_terms,
- retain_quadratic_binary_terms=ph._retain_quadratic_binary_terms,
- breakpoint_strategy=ph._breakpoint_strategy,
- integer_tolerance=ph._integer_tolerance,
- output_solver_results=ph._output_solver_results,
- verbose=ph._verbose,
- compile_scenario_instances=ph._options.compile_scenario_instances)
-
- return ah
-
-def release_phsolverservers(ph):
-
- if ph._verbose:
- print("Revoking PHPyroWorker job assignments")
-
- ph._solver_manager.begin_bulk()
-
- for job, worker in iteritems(ph._phpyro_job_worker_map):
- ph._solver_manager.queue(action="release",
- queue_name=ph._phpyro_job_worker_map[job],
- name=worker,
- object_name=job,
- generateResponse=False)
-
- ph._solver_manager.end_bulk()
-
- ph._phpyro_worker_jobs_map = {}
- ph._phpyro_job_worker_map = {}
-
-def initialize_ph_solver_servers(ph):
-
- start_time = time.time()
-
- if ph._verbose:
- print("Transmitting initialization information to PH solver servers")
-
- if len(ph._solver_manager.server_pool) == 0:
- raise RuntimeError("No PHSolverServer processes have been acquired!")
-
- if ph._scenario_tree.contains_bundles():
- worker_jobs = [bundle.name for bundle in ph._scenario_tree._scenario_bundles]
- else:
- worker_jobs = [scenario.name for scenario in ph._scenario_tree._scenarios]
-
- action_handles = []
- ph._phpyro_worker_jobs_map = {}
- ph._phpyro_job_worker_map = {}
- for worker_name in itertools.cycle(ph._solver_manager.server_pool):
- if len(worker_jobs) == 0:
- break
- job_name = worker_jobs.pop()
- action_handles.append(_transmit_init(ph, worker_name, job_name))
- ph._phpyro_worker_jobs_map.setdefault(worker_name,[]).append(job_name)
- ph._phpyro_job_worker_map[job_name] = worker_name
- end_time = time.time()
-
- if ph._output_times:
- print("Initialization transmission time=%.2f seconds"
- % (end_time - start_time))
-
- #ph._solver_manager.wait_all(action_handles)
- return action_handles
-
-#
-# a utility to transmit to each PH solver server the current rho
-# values for each problem instance.
-#
-
-def transmit_rhos(ph):
-
- start_time = time.time()
-
- if ph._verbose:
- print("Transmitting instance rhos to PH solver servers")
-
- action_handles = []
-
- generate_responses = ph._handshake_with_phpyro
-
- ph._solver_manager.begin_bulk()
-
- if ph._scenario_tree.contains_bundles():
-
- for bundle in ph._scenario_tree._scenario_bundles:
-
- # map from scenario name to the corresponding rho map
- rhos_to_transmit = {}
-
- for scenario in bundle._scenario_tree._scenarios:
- # Skip the leaf nodes (scenario._rho usually doesn't
- # store a value for variables on the leaf node)
- rhos_to_transmit[scenario.name] = \
- ph._scenario_tree._scenario_map[scenario.name]._rho
-
- action_handles.append( ph._solver_manager.queue(
- action="load_rhos",
- queue_name=ph._phpyro_job_worker_map[bundle.name],
- name=bundle.name,
- generateResponse=generate_responses,
- new_rhos=rhos_to_transmit) )
-
- else:
-
- for scenario in ph._scenario_tree._scenarios:
-
- # Skip the leaf nodes (scenario._rho usually doesn't store
- # a value for variables on the leaf node)
- action_handles.append( ph._solver_manager.queue(
- action="load_rhos",
- queue_name=ph._phpyro_job_worker_map[scenario.name],
- name=scenario.name,
- generateResponse=generate_responses,
- new_rhos=scenario._rho) )
-
- ph._solver_manager.end_bulk()
-
- if generate_responses:
- ph._solver_manager.wait_all(action_handles)
-
- end_time = time.time()
-
- if ph._output_times:
- print("Rho transmission time=%.2f seconds" % (end_time - start_time))
-
-#
-# a utility to transmit - across the PH solver manager - the current
-# scenario tree node statistics to each of my problem instances. done
-# prior to each PH iteration k.
-#
-
-def transmit_tree_node_statistics(ph):
-
- start_time = time.time()
-
- if ph._verbose:
- print("Transmitting tree node statistics to PH solver servers")
-
- action_handles = []
-
- generate_responses = ph._handshake_with_phpyro
-
- ph._solver_manager.begin_bulk()
-
- if ph._scenario_tree.contains_bundles():
-
- for bundle in ph._scenario_tree._scenario_bundles:
-
- tree_node_minimums = {}
- tree_node_maximums = {}
- # iterate over the tree nodes in the bundle scenario tree - but
- # there aren't any statistics there - be careful!
- # TBD - we need to form these statistics! right now, they are
- # beyond the bundle.
- # We ignore the leaf nodes
- for stage in bundle._scenario_tree._stages[:-1]:
- for bundle_tree_node in stage._tree_nodes:
- primary_tree_node = \
- ph._scenario_tree._tree_node_map[bundle_tree_node.name]
- tree_node_minimums[primary_tree_node.name] = \
- primary_tree_node._minimums
- tree_node_maximums[primary_tree_node.name] = \
- primary_tree_node._maximums
-
- action_handles.append( ph._solver_manager.queue(
- action="load_tree_node_stats",
- queue_name=ph._phpyro_job_worker_map[bundle.name],
- name=bundle.name,
- generateResponse=generate_responses,
- new_mins=tree_node_minimums,
- new_maxs=tree_node_maximums) )
-
- else:
-
- for scenario in ph._scenario_tree._scenarios:
-
- tree_node_minimums = {}
- tree_node_maximums = {}
-
- # Skip the leaf nodes
- for tree_node in scenario._node_list[:-1]:
- tree_node_minimums[tree_node.name] = tree_node._minimums
- tree_node_maximums[tree_node.name] = tree_node._maximums
-
- action_handles.append( ph._solver_manager.queue(
- action="load_tree_node_stats",
- queue_name=ph._phpyro_job_worker_map[scenario.name],
- name=scenario.name,
- generateResponse=generate_responses,
- new_mins=tree_node_minimums,
- new_maxs=tree_node_maximums) )
- ph._solver_manager.end_bulk()
-
- if generate_responses:
- ph._solver_manager.wait_all(action_handles)
-
- end_time = time.time()
-
- if ph._output_times:
- print("Tree node statistics transmission time="
- "%.2f seconds" % (end_time - start_time))
-
-#
-# a utility to activate - across the PH solver manager - weighted
-# penalty objective terms.
-#
-
-def activate_ph_objective_weight_terms(ph):
-
- if ph._verbose:
- print("Transmitting request to activate PH objective "
- "weight terms to PH solver servers")
-
- action_handles = []
-
- generate_responses = ph._handshake_with_phpyro
-
- ph._solver_manager.begin_bulk()
-
- for subproblem in ph._scenario_tree.subproblems:
- action_handles.append( ph._solver_manager.queue(
- action="activate_ph_objective_weight_terms",
- queue_name=ph._phpyro_job_worker_map[subproblem.name],
- generateResponse=generate_responses,
- name=subproblem.name) )
-
- ph._solver_manager.end_bulk()
-
- if generate_responses:
- ph._solver_manager.wait_all(action_handles)
-
-#
-# a utility to deactivate - across the PH solver manager - weighted
-# penalty objective terms.
-#
-
-def deactivate_ph_objective_weight_terms(ph):
-
- if ph._verbose:
- print("Transmitting request to deactivate PH objective "
- "weight terms to PH solver servers")
-
- action_handles = []
-
- generate_responses = ph._handshake_with_phpyro
-
- ph._solver_manager.begin_bulk()
-
- for subproblem in ph._scenario_tree.subproblems:
- action_handles.append( ph._solver_manager.queue(
- action="deactivate_ph_objective_weight_terms",
- queue_name=ph._phpyro_job_worker_map[subproblem.name],
- generateResponse=generate_responses,
- name=subproblem.name) )
-
- ph._solver_manager.end_bulk()
-
- if generate_responses:
- ph._solver_manager.wait_all(action_handles)
-
-
-#
-# a utility to activate - across the PH solver manager - proximal
-# penalty objective terms.
-#
-
-def activate_ph_objective_proximal_terms(ph):
-
- if ph._verbose:
- print("Transmitting request to activate PH objective "
- "proximal terms to PH solver servers")
-
- action_handles = []
-
- generate_responses = ph._handshake_with_phpyro
-
- ph._solver_manager.begin_bulk()
-
- for subproblem in ph._scenario_tree.subproblems:
- action_handles.append( ph._solver_manager.queue(
- action="activate_ph_objective_proximal_terms",
- queue_name=ph._phpyro_job_worker_map[subproblem.name],
- generateResponse=generate_responses,
- name=subproblem.name) )
-
- ph._solver_manager.end_bulk()
-
- if generate_responses:
- ph._solver_manager.wait_all(action_handles)
-
-#
-# a utility to deactivate - across the PH solver manager - proximal
-# penalty objective terms.
-#
-
-def deactivate_ph_objective_proximal_terms(ph):
-
- if ph._verbose:
- print("Transmitting request to deactivate PH objective "
- "proximal terms to PH solver servers")
-
- action_handles = []
-
- generate_responses = ph._handshake_with_phpyro
-
- ph._solver_manager.begin_bulk()
-
- for subproblem in ph._scenario_tree.subproblems:
- action_handles.append( ph._solver_manager.queue(
- action="deactivate_ph_objective_proximal_terms",
- queue_name=ph._phpyro_job_worker_map[subproblem.name],
- generateResponse=generate_responses,
- name=subproblem.name) )
-
- ph._solver_manager.end_bulk()
-
- if generate_responses:
- ph._solver_manager.wait_all(action_handles)
-
-
-def transmit_fixed_variables(ph):
-
- start_time = time.time()
-
- if ph._verbose:
- print("Synchronizing fixed variable status with PH solver servers")
-
- action_handles = []
-
- generate_responses = ph._handshake_with_phpyro
-
- ph._solver_manager.begin_bulk()
- if ph._scenario_tree.contains_bundles():
-
- for bundle in ph._scenario_tree._scenario_bundles:
-
- transmit_variables = False
- for bundle_tree_node in bundle._scenario_tree._tree_nodes:
- primary_tree_node = \
- ph._scenario_tree._tree_node_map[bundle_tree_node.name]
- if len(primary_tree_node._fix_queue):
- transmit_variables = True
- break
-
- if transmit_variables:
- # map from node name to the corresponding list of
- # fixed variables
- fixed_variables_to_transmit = {}
-
- # Just send the entire state of fixed variables
- # on each node (including leaf nodes)
- for bundle_tree_node in bundle._scenario_tree._tree_nodes:
- primary_tree_node = \
- ph._scenario_tree._tree_node_map[bundle_tree_node.name]
- fixed_variables_to_transmit[primary_tree_node.name] = \
- primary_tree_node._fix_queue
-
- action_handles.append( ph._solver_manager.queue(
- action="update_fixed_variables",
- queue_name=ph._phpyro_job_worker_map[bundle.name],
- name=bundle.name,
- generateResponse=generate_responses,
- fixed_variables=fixed_variables_to_transmit) )
- else:
- if ph._verbose:
- print("No synchronization was needed for bundle %s"
- % (bundle.name))
-
- else:
-
- for scenario in ph._scenario_tree._scenarios:
-
- transmit_variables = False
- for tree_node in scenario._node_list:
- if len(tree_node._fix_queue):
- transmit_variables = True
- break
-
- if transmit_variables:
-
- fixed_variables_to_transmit = \
- dict((tree_node.name, tree_node._fix_queue)
- for tree_node in scenario._node_list)
-
- action_handles.append( ph._solver_manager.queue(
- action="update_fixed_variables",
- queue_name=ph._phpyro_job_worker_map[scenario.name],
- name=scenario.name,
- generateResponse=generate_responses,
- fixed_variables=fixed_variables_to_transmit) )
- else:
- if ph._verbose:
- print("No synchronization was needed for scenario %s"
- % (scenario.name))
- ph._solver_manager.end_bulk()
-
- if generate_responses:
- ph._solver_manager.wait_all(action_handles)
-
- end_time = time.time()
-
- if ph._output_times:
- print("Fixed variable synchronization time="
- "%.2f seconds" % (end_time - start_time))
-
-def transmit_external_function_invocation_to_worker(
- ph,
- worker_name,
- module_name,
- function_name,
- invocation_type=InvocationType.SingleInvocation,
- return_action_handle=False,
- function_args=None,
- function_kwds=None):
-
- if ph._verbose:
- print("Transmitting external function invocation request to PH "
- "solver server with name %s" % worker_name)
-
- generate_response = ph._handshake_with_phpyro or return_action_handle
-
- if ph._scenario_tree.contains_bundles():
- if worker_name not in ph._scenario_tree._scenario_bundle_map:
- raise ValueError("PH solver server with name %s does not exist"
- % (worker_name))
- else:
- if worker_name not in ph._scenario_tree._scenario_map:
- raise ValueError("PH solver server with name %s does not exist"
- % (worker_name))
-
- action_handle = ph._solver_manager.queue(action="invoke_external_function",
- queue_name=ph._phpyro_job_worker_map[worker_name],
- name=worker_name,
- invocation_type=invocation_type.value,
- generateResponse=generate_response,
- module_name=module_name,
- function_name=function_name,
- function_kwds=function_kwds,
- function_args=function_args)
-
- if generate_response and (not return_action_handle):
- ph._solver_manager.wait_all([action_handle])
-
- return action_handle if (return_action_handle) else None
-
-def transmit_external_function_invocation(
- ph,
- module_name,
- function_name,
- invocation_type=InvocationType.SingleInvocation,
- return_action_handles=False,
- function_args=None,
- function_kwds=None):
-
- start_time = time.time()
-
- if ph._verbose:
- print("Transmitting external function invocation request "
- "to PH solver servers")
-
- action_handles = []
-
- generate_responses = ph._handshake_with_phpyro or return_action_handles
-
- ph._solver_manager.begin_bulk()
- if ph._scenario_tree.contains_bundles():
-
- for bundle in ph._scenario_tree._scenario_bundles:
-
- action_handles.append(
- ph._solver_manager.queue(
- action="invoke_external_function",
- queue_name=ph._phpyro_job_worker_map[bundle.name],
- name=bundle.name,
- invocation_type=invocation_type.value,
- generateResponse=generate_responses,
- module_name=module_name,
- function_name=function_name,
- function_kwds=function_kwds,
- function_args=function_args))
-
- else:
-
- for scenario in ph._scenario_tree._scenarios:
-
- action_handles.append(
- ph._solver_manager.queue(
- action="invoke_external_function",
- queue_name=ph._phpyro_job_worker_map[scenario.name],
- name=scenario.name,
- invocation_type=invocation_type.value,
- generateResponse=generate_responses,
- module_name=module_name,
- function_name=function_name,
- function_kwds=function_kwds,
- function_args=function_args))
- ph._solver_manager.end_bulk()
-
- if generate_responses and (not return_action_handles):
- ph._solver_manager.wait_all(action_handles)
-
- end_time = time.time()
-
- if ph._output_times:
- print("External function invocation request transmission "
- "time=%.2f seconds" % (end_time - start_time))
-
- return action_handles if (return_action_handles) else None
-
-#
-# a utility to define model-level import suffixes - across the PH
-# solver manager, on all instances.
-#
-
-def define_import_suffix(ph, suffix_name):
-
- if ph._verbose:
- print("Transmitting request to define suffix=%s to PH "
- "solver servers" % (suffix_name))
-
- action_handles = []
-
- generate_responses = ph._handshake_with_phpyro
-
- ph._solver_manager.begin_bulk()
-
- for subproblem in ph._scenario_tree.subproblems:
- action_handles.append( ph._solver_manager.queue(
- action="define_import_suffix",
- queue_name=ph._phpyro_job_worker_map[subproblem.name],
- generateResponse=generate_responses,
- name=subproblem.name,
- suffix_name = suffix_name))
-
- ph._solver_manager.end_bulk()
-
- if generate_responses:
- ph._solver_manager.wait_all(action_handles)
-
-#
-# a utility to request that each PH solver server restore cached
-# solutions to their scenario instances.
-#
-
-def restore_cached_scenario_solutions(ph, cache_id, release_cache):
-
- if ph._verbose:
- print("Transmitting request to restore cached scenario solutions "
- "to PH solver servers")
-
- action_handles = []
-
- generate_responses = ph._handshake_with_phpyro
-
- ph._solver_manager.begin_bulk()
-
- for subproblem in ph._scenario_tree.subproblems:
- action_handles.append( ph._solver_manager.queue(
- action="restore_cached_scenario_solutions",
- queue_name=ph._phpyro_job_worker_map[subproblem.name],
- cache_id=cache_id,
- release_cache=release_cache,
- generateResponse=generate_responses,
- name=subproblem.name) )
-
- ph._solver_manager.end_bulk()
-
- if generate_responses:
- ph._solver_manager.wait_all(action_handles)
-
-#
-# a utility to request that each PH solver server cache
-# solutions to their scenario instances.
-#
-
-def cache_scenario_solutions(ph, cache_id):
-
- if ph._verbose:
- print("Transmitting request to cache scenario solutions "
- "to PH solver servers")
-
- action_handles = []
-
- generate_responses = ph._handshake_with_phpyro
-
- ph._solver_manager.begin_bulk()
-
- for subproblem in ph._scenario_tree.subproblems:
- action_handles.append( ph._solver_manager.queue(
- action="cache_scenario_solutions",
- queue_name=ph._phpyro_job_worker_map[subproblem.name],
- cache_id=cache_id,
- generateResponse=generate_responses,
- name=subproblem.name) )
-
- ph._solver_manager.end_bulk()
-
- if generate_responses:
- ph._solver_manager.wait_all(action_handles)
-
-def gather_scenario_tree_data(ph, initialization_action_handles):
-
- start_time = time.time()
-
- if ph._verbose:
- print("Collecting scenario tree data from PH solver servers")
-
- # maps scenario names to action handles
- scenario_action_handle_map = {}
- # maps action handles to scenario names
- action_handle_scenario_map = {}
-
- # maps bundle names to action handles
- bundle_action_handle_map = {}
- # maps action handles to bundle names
- action_handle_bundle_map = {}
-
- need_node_data = \
- dict((tree_node.name,True) \
- for tree_node in ph._scenario_tree._tree_nodes)
- need_scenario_data = \
- dict((scenario.name,True) \
- for scenario in ph._scenario_tree._scenarios)
-
- ph._solver_manager.begin_bulk()
- if ph._scenario_tree.contains_bundles():
-
- for bundle in ph._scenario_tree._scenario_bundles:
-
- object_names = {}
- object_names['nodes'] = \
- [tree_node.name \
- for scenario in bundle._scenario_tree._scenarios \
- for tree_node in scenario._node_list \
- if need_node_data[tree_node.name]]
- object_names['scenarios'] = \
- [scenario_name \
- for scenario_name in bundle._scenario_names]
-
- new_action_handle = ph._solver_manager.queue(
- action="collect_scenario_tree_data",
- queue_name=ph._phpyro_job_worker_map[bundle.name],
- name=bundle.name,
- tree_object_names=object_names)
-
- bundle_action_handle_map[bundle.name] = new_action_handle
- action_handle_bundle_map[new_action_handle] = bundle.name
-
- for node_name in object_names['nodes']:
- need_node_data[node_name] = False
- for scenario_name in object_names['scenarios']:
- need_scenario_data[scenario_name] = False
-
- else:
-
- for scenario in ph._scenario_tree._scenarios:
-
- object_names = {}
- object_names['nodes'] = \
- [tree_node.name for tree_node in scenario._node_list \
- if need_node_data[tree_node.name]]
- object_names['scenarios'] = [scenario.name]
-
- new_action_handle = ph._solver_manager.queue(
- action="collect_scenario_tree_data",
- queue_name=ph._phpyro_job_worker_map[scenario.name],
- name=scenario.name,
- tree_object_names=object_names)
-
- scenario_action_handle_map[scenario.name] = new_action_handle
- action_handle_scenario_map[new_action_handle] = scenario.name
-
- for node_name in object_names['nodes']:
- need_node_data[node_name] = False
- for scenario_name in object_names['scenarios']:
- need_scenario_data[scenario_name] = False
- ph._solver_manager.end_bulk()
-
- assert all(not val for val in itervalues(need_node_data))
- assert all(not val for val in itervalues(need_scenario_data))
-
- have_node_data = \
- dict((tree_node.name,False) \
- for tree_node in ph._scenario_tree._tree_nodes)
- have_scenario_data = \
- dict((scenario.name,False) \
- for scenario in ph._scenario_tree._scenarios)
-
- if ph._verbose:
- print("Waiting for scenario tree data extraction")
-
- if ph._scenario_tree.contains_bundles():
-
- num_results_so_far = 0
-
- while (num_results_so_far < len(ph._scenario_tree._scenario_bundles)):
-
- action_handle = ph._solver_manager.wait_any()
-
- if action_handle in initialization_action_handles:
- initialization_action_handles.remove(action_handle)
- ph._solver_manager.get_results(action_handle)
- continue
-
- bundle_results = ph._solver_manager.get_results(action_handle)
- bundle_name = action_handle_bundle_map[action_handle]
-
- for tree_node_name, node_data in iteritems(bundle_results['nodes']):
- assert have_node_data[tree_node_name] == False
- have_node_data[tree_node_name] = True
- tree_node = ph._scenario_tree.get_node(tree_node_name)
- tree_node._variable_ids.update(node_data['_variable_ids'])
- tree_node._standard_variable_ids.update(node_data['_standard_variable_ids'])
- tree_node._variable_indices.update(node_data['_variable_indices'])
- tree_node._integer.update(node_data['_integer'])
- tree_node._binary.update(node_data['_binary'])
- tree_node._semicontinuous.update(node_data['_semicontinuous'])
- # these are implied
- tree_node._derived_variable_ids = \
- set(tree_node._variable_ids)-tree_node._standard_variable_ids
- tree_node._name_index_to_id = \
- dict((val,key) for key,val in iteritems(tree_node._variable_ids))
-
- for scenario_name, scenario_data in \
- iteritems(bundle_results['scenarios']):
- assert have_scenario_data[scenario_name] == False
- have_scenario_data[scenario_name] = True
- scenario = ph._scenario_tree.get_scenario(scenario_name)
- scenario._objective_name = scenario_data['_objective_name']
- scenario._objective_sense = scenario_data['_objective_sense']
- # rhos may have been modified with rhosetter callback
- scenario._rho.update(scenario_data['_rho'])
- # initialize _w, _rho, and _x, keys after this loop
-
- if ph._verbose:
- print("Successfully loaded scenario tree data "
- "for bundle="+bundle_name)
-
- num_results_so_far += 1
-
- else:
-
- num_results_so_far = 0
-
- while (num_results_so_far < len(ph._scenario_tree._scenarios)):
-
- action_handle = ph._solver_manager.wait_any()
-
- if action_handle in initialization_action_handles:
- initialization_action_handles.remove(action_handle)
- ph._solver_manager.get_results(action_handle)
- continue
-
- scenario_results = ph._solver_manager.get_results(action_handle)
- scenario_name = action_handle_scenario_map[action_handle]
- for tree_node_name, node_data in iteritems(scenario_results['nodes']):
- assert have_node_data[tree_node_name] == False
- have_node_data[tree_node_name] = True
- tree_node = ph._scenario_tree.get_node(tree_node_name)
- tree_node._variable_ids.update(node_data['_variable_ids'])
- tree_node._standard_variable_ids.update(node_data['_standard_variable_ids'])
- tree_node._variable_indices.update(node_data['_variable_indices'])
- tree_node._integer.update(node_data['_integer'])
- tree_node._binary.update(node_data['_binary'])
- tree_node._semicontinuous.update(node_data['_semicontinuous'])
- # these are implied
- tree_node._derived_variable_ids = \
- set(tree_node._variable_ids)-tree_node._standard_variable_ids
- tree_node._name_index_to_id = \
- dict((val,key) for key,val in iteritems(tree_node._variable_ids))
-
- for scenario_name, scenario_data in \
- iteritems(scenario_results['scenarios']):
- assert have_scenario_data[scenario_name] == False
- have_scenario_data[scenario_name] = True
- scenario = ph._scenario_tree.get_scenario(scenario_name)
- scenario._objective_name = scenario_data['_objective_name']
- scenario._objective_sense = scenario_data['_objective_sense']
- # rhos may have been modified with rhosetter callback
- scenario._rho.update(scenario_data['_rho'])
- # initialize _w and _x keys after this loop
-
- if ph._verbose:
- print("Successfully loaded scenario tree data for "
- "scenario="+scenario_name)
-
- num_results_so_far += 1
-
- assert all(have_node_data)
- assert all(have_scenario_data)
-
- for tree_node in ph._scenario_tree._tree_nodes:
- tree_node._minimums = dict.fromkeys(tree_node._variable_ids,0)
- tree_node._maximums = dict.fromkeys(tree_node._variable_ids,0)
- # this is the true variable average at the node (unmodified)
- tree_node._averages = dict.fromkeys(tree_node._variable_ids,0)
- # this is the xbar used in the PH objective.
- tree_node._xbars = dict.fromkeys(tree_node._standard_variable_ids,0.0)
- # this is the blend used in the PH objective
- tree_node._blend = dict.fromkeys(tree_node._standard_variable_ids,1)
- # For the dual ph algorithm
- tree_node._wbars = dict.fromkeys(tree_node._standard_variable_ids,None)
- for scenario in tree_node._scenarios:
- scenario._x[tree_node.name] = \
- dict.fromkeys(tree_node._variable_ids,None)
- if not tree_node.is_leaf_node():
- scenario._w[tree_node.name] = \
- dict.fromkeys(tree_node._standard_variable_ids,0.0)
-
- if len(initialization_action_handles):
- if ph._verbose:
- print("Waiting on remaining PHSolverServer initializations")
- ph._solver_manager.wait_all(initialization_action_handles)
- while len(initialization_action_handles):
- initialization_action_handles.pop()
-
- end_time = time.time()
-
- if ph._output_times:
- print("Scenario tree data collection time=%.2f seconds"
- % (end_time - start_time))
diff --git a/pyomo/pysp/phutils.py b/pyomo/pysp/phutils.py
deleted file mode 100644
index 6f0243e0a50..00000000000
--- a/pyomo/pysp/phutils.py
+++ /dev/null
@@ -1,824 +0,0 @@
-# ___________________________________________________________________________
-#
-# Pyomo: Python Optimization Modeling Objects
-# Copyright 2017 National Technology and Engineering Solutions of Sandia, LLC
-# Under the terms of Contract DE-NA0003525 with National Technology and
-# Engineering Solutions of Sandia, LLC, the U.S. Government retains certain
-# rights in this software.
-# This software is distributed under the 3-clause BSD License.
-# ___________________________________________________________________________
-
-from pyomo.core import Var, Block, Set, Objective, Constraint, SortComponents, SOSConstraint, Piecewise, BuildAction, Param, Any, Binary
-
-from pyomo.repn.standard_repn import (preprocess_block_objectives,
- preprocess_block_constraints,
- preprocess_constraint)
-from pyomo.opt import (UndefinedData,
- undefined)
-
-from six import iteritems, itervalues, string_types
-from six.moves import xrange
-
-def _preprocess(model, objective=True, constraints=True):
- objective_found = False
- if objective:
- for block in model.block_data_objects(active=True):
- for obj in block.component_data_objects(Objective,
- active=True,
- descend_into=False):
- objective_found = True
- preprocess_block_objectives(block)
- break
- if objective_found:
- break
- if constraints:
- for block in model.block_data_objects(active=True):
- preprocess_block_constraints(block)
-
-_OLD_OUTPUT = True
-
-def extract_solve_times(results, default=undefined):
- solve_time = default
- pyomo_solve_time = default
- # if the solver plugin doesn't populate the
- # user_time field, it is by default of type
- # UndefinedData - defined in pyomo.opt.results
- if hasattr(results.solver,"user_time") and \
- (not isinstance(results.solver.user_time,
- UndefinedData)) and \
- (results.solver.user_time is not None):
- # the solve time might be a string, or might
- # not be - we eventually would like more
- # consistency on this front from the solver
- # plugins.
- solve_time = float(results.solver.user_time)
- elif hasattr(results.solver,"wallclock_time") and \
- (not isinstance(results.solver.wallclock_time,
- UndefinedData))and \
- (results.solver.wallclock_time is not None):
- solve_time = float(results.solver.wallclock_time)
- elif hasattr(results.solver,"time"):
- solve_time = float(results.solver.time)
-
- if hasattr(results,"pyomo_solve_time"):
- pyomo_solve_time = results.pyomo_solve_time
-
- return solve_time, pyomo_solve_time
-
-class BasicSymbolMap(object):
-
- def __init__(self):
-
- # maps object id()s to their assigned symbol.
- self.byObject = {}
-
- # maps assigned symbols to the corresponding objects.
- self.bySymbol = {}
-
- def getByObjectDictionary(self):
- return self.byObject
-
- def updateSymbols(self, data_stream):
- # check if the input is a generator / iterator,
- # if so, we need to copy since we use it twice
- if hasattr(data_stream, '__iter__') and \
- not hasattr(data_stream, '__len__'):
- obj_symbol_tuples = list(obj_symbol_tuples)
- self.byObject.update((id(obj), label) for obj,label in data_stream)
- self.bySymbol.update((label,obj) for obj,label in data_stream)
-
- def createSymbol(self, obj ,label):
- self.byObject[id(obj)] = label
- self.bySymbol[label] = obj
-
- def addSymbol(self, obj, label):
- self.byObject[id(obj)] = label
- self.bySymbol[label] = obj
-
- def getSymbol(self, obj):
- return self.byObject[id(obj)]
-
- def getObject(self, label):
- return self.bySymbol[label]
-
- def pprint(self, **kwds):
- print("BasicSymbolMap:")
- lines = [repr(label)+" <-> "+obj.name+" (id="+str(id(obj))+")"
- for label, obj in iteritems(self.bySymbol)]
- print('\n'.join(sorted(lines)))
- print("")
-
-#
-# Creates a deterministic symbol map for ctypes on a Block. This
-# allows convenient transmission of information to and from
-# PHSolverServers and makes it easy to save solutions using a
-# pickleable list (symbol,values) tuples
-#
-def create_block_symbol_maps(owner_block,
- ctypes,
- recursive=True,
- update_new=False,
- update_all=False):
- """
- Inputs:
- - owner_block: A constructed Pyomo Block
- - ctypes: An iterable of ctypes (or single ctype) to
- include in the _PHInstanceSymbolMaps dict
- - recursive: Indicates whether to include ctypes contained on
- subblocks in the given Block's SymbolMaps
- - update_new: Update a possibly existing _PHInstanceSymbolMaps
- dict on the owner_block with new ctypes. Any ctypes
- given as inputs that already have existing SymbolMaps
- will NOT be regenerated. **See: update_all
- - update_all: Update a possibly existing _PHInstanceSymbolMaps
- dict on the owner block with new ctypes,
- regenerating any existing ctypes given as inputs.
- Outputs: A dictionary (keys are ctypes) of SymbolMaps is placed on
- the owner_block and is named _PHInstanceSymbolMaps
- """
-
- if owner_block.is_constructed() is False:
- raise ValueError("Failed to create _PHInstanceSymbolMap on Block %s. "\
- "This Block has not been fully construced." % owner_block.name)
-
- # The ctypes input may be iterable or a single type.
- # Either way turn it into a tuple of type(s)
- try:
- ctypes = tuple(ct for ct in ctypes)
- except TypeError:
- ctypes = (ctypes,)
-
- # Add the _PHInstanceSymbolMaps dict to the owner_block and
- # and warn if one already exists as it will be overwritten
- phinst_sm_dict = getattr(owner_block,"_PHInstanceSymbolMaps",None)
- if phinst_sm_dict is not None:
- if (update_new is False) and (update_all is False):
- print("***WARNING - Attribute with name _PHInstanceSymbolMaps already exists " \
- "on Block %s. This Attribute will be overwritten" % owner_block.name)
- phinst_sm_dict = owner_block._PHInstanceSymbolMaps = {}
- else:
- if type(phinst_sm_dict) is not dict:
- raise TypeError("Failed to update _PHInstanceSymbolMaps attribute "\
- "on Block %s. Expected to find object with type %s "\
- "but existing object is of type %s." % (owner_block.name,
- dict,
- type(phinst_sm_dict)))
-
- else:
- phinst_sm_dict = owner_block._PHInstanceSymbolMaps = {}
-
- ctypes_to_generate = []
- for ctype in ctypes:
- if (ctype not in phinst_sm_dict) or (update_all is True):
- ctypes_to_generate.append(ctype)
-
- # Create a SymbolMap for each ctype in the _PHInstanceSymbolMaps dict
- for ctype in ctypes_to_generate:
- phinst_sm_dict[ctype] = BasicSymbolMap()
-
- # Create the list of Blocks to iterator over. If this is recursive
- # turn the block_data_objects() generator into a list, as we need to sort by
- # keys (for indexed blocks) so this process remains deterministic,
- # and we don't want to sort more than necessary
- block_list = None
- if recursive is True:
- # FIXME: Why do you alphabetize the components by name here? It
- # would be more efficient to use SortComponents.deterministic.
- # [JDS 12/31/14]
- block_list = tuple(owner_block.block_data_objects(active=True,
- sort=SortComponents.alphabetizeComponentAndIndex))
- else:
- block_list = (owner_block,)
-
- for ctype in ctypes_to_generate:
-
- ctype_sm = phinst_sm_dict[ctype]
- bySymbol = ctype_sm.bySymbol
- cntr = 0
- for block in block_list:
- bySymbol.update(enumerate( \
- block.component_data_objects(ctype,
- descend_into=False,
- sort=SortComponents.alphabetizeComponentAndIndex),
- cntr))
- cntr += len(bySymbol)-cntr+1
-
- ctype_sm.byObject = dict((id(component_data),symbol) for symbol,component_data in iteritems(bySymbol))
-
-#
-# a utility to scan through a scenario tree and set the variable
-# values to None for each variable not in the final stage that has not
-# converged. necessary to avoid an illegal / infeasible warm-start for
-# the extensive form solve.
-#
-
-def reset_nonconverged_variables(scenario_tree, scenario_instances):
-
- for stage in scenario_tree._stages[:-1]:
-
- for tree_node in stage._tree_nodes:
-
- for variable_id, var_datas in iteritems(tree_node._variable_datas):
-
- min_var_value = tree_node._minimums[variable_id]
- max_var_value = tree_node._maximums[variable_id]
-
- # TBD: THIS IS A HACK - GET THE THRESHOLD FROM SOMEWHERE AS AN INPUT ARGUMENT
- if (max_var_value - min_var_value) > 0.00001:
-
- for var_data, probability in var_datas:
-
- if not var_data.fixed:
-
- var_data.value = None
- var_data.stale = True
-
-#
-# a utility to clear all cost variables - these are easily derived by the solvers,
-# and can/will lead to infeasibilities unless everything is perfectly blended.
-# in which case, you don't need to write the EF.
-#
-
-def reset_stage_cost_variables(scenario_tree, scenario_instances):
-
- for stage in scenario_tree._stages:
- for tree_node in stage._tree_nodes:
- for cost_var_data, scenario_probability in tree_node._cost_variable_datas:
- if cost_var_data.is_expression_type() is False:
- cost_var_data.value = None
- cost_var_data.stale = True
-
-#
-# a utility to clear the value of any PHQUADPENALTY* variables in the instance. these are
-# associated with linearization, and if they are not cleared, can interfere with warm-starting
-# due to infeasibilities.
-#
-
-def reset_linearization_variables(instance):
-
- for variable_name, variable in iteritems(instance.component_map(Var, active=True)):
- if variable_name.startswith("PHQUADPENALTY"):
- for var_value in itervalues(variable):
- var_value.value = None
- var_value.stale = True
-
-#
-# a simple utility function to pretty-print an index tuple into a [x,y] form string.
-#
-
-_nontuple = string_types + (int, float)
-def indexToString(index):
-
- if index is None:
- return ''
-
- # if the input type is a string or an int, then this isn't a tuple!
- # TODO: Why aren't we just checking for tuple?
- if isinstance(index, _nontuple):
- return "["+str(index)+"]"
-
- result = "["
- for i in range(0,len(index)):
- result += str(index[i])
- if i != len(index) - 1:
- result += ","
- result += "]"
- return result
-
-#
-# a simple utility to determine if a variable name contains an index specification.
-# in other words, is the reference to a complete variable (e.g., "foo") - which may
-# or may not be indexed - or a specific index or set of indices (e.g., "foo[1]" or
-# or "foo[1,*]".
-#
-
-def isVariableNameIndexed(variable_name):
-
- left_bracket_count = variable_name.count('[')
- right_bracket_count = variable_name.count(']')
-
- if (left_bracket_count == 1) and (right_bracket_count == 1):
- return True
- elif (left_bracket_count == 1) or (right_bracket_count == 1):
- raise ValueError("Illegally formed variable name="+variable_name+"; if indexed, variable names must contain matching left and right brackets")
- else:
- return False
-
-#
-# takes a string indexed of the form "('foo', 'bar')" and returns a proper tuple ('foo','bar')
-#
-
-def tupleizeIndexString(index_string):
-
- index_string=index_string.lstrip('(')
- index_string=index_string.rstrip(')')
- pieces = index_string.split(',')
- return_index = ()
- for piece in pieces:
- piece = piece.strip()
- piece = piece.lstrip('\'')
- piece = piece.rstrip('\'')
- transformed_component = None
- try:
- transformed_component = int(piece)
- except ValueError:
- transformed_component = piece
- return_index = return_index + (transformed_component,)
-
- # IMPT: if the tuple is a singleton, return the element itself.
- if len(return_index) == 1:
- return return_index[0]
- else:
- return return_index
-
-#
-# related to above, extract the index from the variable name.
-# will throw an exception if the variable name isn't indexed.
-# the returned variable name is a string, while the returned
-# index is a tuple. integer values are converted to integers
-# if the conversion works!
-#
-
-def extractVariableNameAndIndex(variable_name):
-
- if not isVariableNameIndexed(variable_name):
- raise ValueError(
- "Non-indexed variable name passed to "
- "function extractVariableNameAndIndex()")
-
- pieces = variable_name.split('[')
- name = pieces[0].strip()
- full_index = pieces[1].rstrip(']')
-
- # even nested tuples in pyomo are "flattened" into
- # one-dimensional tuples. to accomplish flattening
- # replace all parens in the string with commas and
- # proceed with the split.
- full_index = full_index.replace("(",",").replace(")",",")
- indices = full_index.split(',')
-
- return_index = ()
-
- for index in indices:
-
- # unlikely, but strip white-space from the string.
- index=index.strip()
-
- # if the tuple contains nested tuples, then the nested
- # tuples have single quotes - "'" characters - around
- # strings. remove these, as otherwise you have an
- # illegal index.
- index = index.replace("\'","")
-
- # if the index is an integer, make it one!
- transformed_index = None
- try:
- transformed_index = int(index)
- except ValueError:
- transformed_index = index
- return_index = return_index + (transformed_index,)
-
- # IMPT: if the tuple is a singleton, return the element itself.
- if len(return_index) == 1:
- return name, return_index[0]
- else:
- return name, return_index
-
-#
-# determine if the input index is an instance of the template,
-# which may or may not contain wildcards.
-#
-
-def indexMatchesTemplate(index, index_template):
-
- # if the input index is not a tuple, make it one.
- # ditto with the index template. one-dimensional
- # indices in pyomo are not tuples, but anything
- # else is.
-
- if type(index) != tuple:
- index = (index,)
- if type(index_template) != tuple:
- index_template = (index_template,)
-
- if len(index) != len(index_template):
- return False
-
- for i in xrange(0,len(index_template)):
- if index_template[i] == '*':
- # anything matches
- pass
- else:
- if index_template[i] != index[i]:
- return False
-
- return True
-
-#
-# given a component (the real object, not the name) and an
-# index template, "shotgun" the index and see which variable
-# indices match the template. the cardinality could be >
-# 1 if slices are specified, e.g., [*,1].
-#
-# NOTE: This logic can be expensive for scenario trees with many
-# nodes, and for variables with many indices. thus, the
-# logic behind the indexMatchesTemplate utility above
-# is in-lined in an efficient way here.
-#
-
-def extractComponentIndices(component, index_template):
-
- component_index_dimension = component.dim()
-
- # do special handling for the case where the component is
- # not indexed, i.e., of dimension 0. for scalar components,
- # the match template can be the empty string, or - more
- # commonly, given that the empty string is hard to specify
- # in the scenario tree input data - a single wildcard character.
- if component_index_dimension == 0:
- if (index_template != '') and (index_template != "*"):
- raise RuntimeError(
- "Index template=%r specified for scalar object=%s"
- % (index_template, component.name))
- return [None]
-
- # from this point on, we're dealing with an indexed component.
- if index_template == "":
- return [ndx for ndx in component]
-
- # if the input index template is not a tuple, make it one.
- # one-dimensional indices in pyomo are not tuples, but
- # everything else is.
- if type(index_template) != tuple:
- index_template = (index_template,)
-
- if component_index_dimension != len(index_template):
- raise RuntimeError(
- "The dimension of index template=%s (%s) does match "
- "the dimension of component=%s (%s)"
- % (index_template,
- len(index_template),
- component.name,
- component_index_dimension))
-
- # cache for efficiency
- iterator_range = [i for i,match_str in enumerate(index_template)
- if match_str != '*']
-
- if len(iterator_range) == 0:
- return list(component)
- elif len(iterator_range) == component_index_dimension:
- if (len(index_template) == 1) and \
- (index_template[0] in component):
- return index_template
- elif index_template in component:
- return [index_template]
- else:
- raise ValueError(
- "The index %s is not valid for component named: %s"
- % (str(tuple(index_template)), component.name))
-
- result = []
-
- for index in component:
-
- # if the input index is not a tuple, make it one for processing
- # purposes. however, return the original index always.
- if component_index_dimension == 1:
- modified_index = (index,)
- else:
- modified_index = index
-
- match_found = True # until proven otherwise
- for i in iterator_range:
- if index_template[i] != modified_index[i]:
- match_found = False
- break
-
- if match_found is True:
- result.append(index)
-
- return result
-
-#
-# method to eliminate constraints from an input instance.
-# TBD: really need to generalize the name, as we also cull
-# build actions and other stuff.
-#
-def cull_constraints_from_instance(model, constraints_to_retain):
-
- for block in model.block_data_objects(active=True):
- for constraint_name, constraint in iteritems(block.component_map(Constraint)):
- if constraint_name not in constraints_to_retain:
- block.del_component(constraint_name)
- # Piecewise is a derived Block, so we have to look for it by sub-type.
- for constraint_name, constraint in iteritems(block.component_map(Block)):
- if isinstance(constraint, Piecewise) and \
- (constraint_name not in constraints_to_retain):
- block.del_component(constraint_name)
- for constraint_name, constraint in iteritems(block.component_map(SOSConstraint)):
- if constraint_name not in constraints_to_retain:
- block.del_component(constraint_name)
- for action_name, action in iteritems(block.component_map(BuildAction)):
- if action_name not in constraints_to_retain:
- block.del_component(action_name)
- # Prevent any new constraints from being declared (e.g. during
- # construction of nested block models)
- block._suppress_ctypes.add(Constraint)
- block._suppress_ctypes.add(SOSConstraint)
- block._suppress_ctypes.add(Piecewise)
- block._suppress_ctypes.add(BuildAction)
-
-def update_all_rhos(instances, scenario_tree, rho_value=None, rho_scale=None):
-
- assert not ((rho_value is not None) and (rho_scale is not None))
-
- for stage in scenario_tree._stages[:-1]:
-
- for tree_node in stage._tree_nodes:
-
- for scenario in tree_node._scenarios:
-
- rho = scenario._rho[tree_node._name]
-
- for variable_id in tree_node._variable_ids:
-
- if rho_value is not None:
- rho[variable_id] = rho_value
- else:
- rho[variable_id] *= rho_scale
-
-
-# creates all PH parameters for a problem instance, given a scenario tree
-# (to identify the relevant variables), a default rho (simply for initialization),
-# and a boolean indicating if quadratic penalty terms are to be linearized.
-# returns a list of any created variables, specifically when linearizing -
-# this is useful to clean-up reporting.
-
-def create_ph_parameters(instance, scenario_tree, default_rho, linearizing_penalty_terms):
-
- new_penalty_variable_names = []
-
- # gather all variables, and their corresponding indices, that are referenced
- # in any tree node corresponding to this scenario - with the exception of the
- # leaf tree node (where PH doesn't blend variables).
- instance_variables = {} # map between variable names and sets of indices
-
- scenario = scenario_tree.get_scenario(instance.name)
- if scenario == None:
- raise RuntimeError("Scenario corresponding to instance name="
- +instance.name+" not present in scenario tree "
- "- could not create PH parameters for instance")
-
- for tree_node in scenario._node_list[:-1]:
-
- new_w_parameter_name = "PHWEIGHT_"+str(tree_node._name)
- new_rho_parameter_name = "PHRHO_"+str(tree_node._name)
- if linearizing_penalty_terms > 0:
- new_penalty_term_variable_name = \
- "PHQUADPENALTY_"+str(tree_node._name)
-
- nodal_index_set_name = "PHINDEX_"+str(tree_node._name)
- nodal_index_set = instance.find_component(nodal_index_set_name)
- # TODO: This function requires calling
- # create_nodal_ph_paramters first
- assert nodal_index_set is not None
-
- ### dlw Jan 2014 nochecking=True, mutable=True)
- scenario._w[tree_node._name].update(
- dict.fromkeys(scenario._w[tree_node._name],0.0))
- new_w_parameter = \
- Param(nodal_index_set,
- name=new_w_parameter_name,
- initialize=scenario._w[tree_node._name],
- mutable=True)
- ### dlw Jan 2014 nochecking=True, mutable=True)
- scenario._rho[tree_node._name].update(
- dict.fromkeys(scenario._rho[tree_node._name],default_rho))
- new_rho_parameter = \
- Param(nodal_index_set,
- name=new_rho_parameter_name,
- initialize=scenario._rho[tree_node._name],
- domain=Any,
- mutable=True)
- if linearizing_penalty_terms > 0:
- new_penalty_term_variable = \
- Var(nodal_index_set,
- name=new_penalty_term_variable_name,
- bounds=(0.0,None),
- initialize=0.0)
-
- instance.add_component(new_w_parameter_name,new_w_parameter)
- instance.add_component(new_rho_parameter_name,new_rho_parameter)
- if linearizing_penalty_terms > 0:
- instance.add_component(new_penalty_term_variable_name, new_penalty_term_variable)
- new_penalty_variable_names.append(new_penalty_term_variable_name)
-
- return new_penalty_variable_names
-
-
-# creates all PH node parameters for all instance, given a scenario
-# tree
-
-def create_nodal_ph_parameters(scenario_tree):
-
- for stage in scenario_tree._stages[:-1]:
-
- for tree_node in stage._tree_nodes:
-
- new_nodal_index_set_name = "PHINDEX_"+str(tree_node._name)
- new_xbar_parameter_name = "PHXBAR_"+str(tree_node._name)
- new_blend_parameter_name = "PHBLEND_"+str(tree_node._name)
-
- # only create nodal index sets for non-derived variables.
- new_nodal_index_set = Set(name=new_nodal_index_set_name,
- initialize=list(tree_node._standard_variable_ids))
-
- for scenario in tree_node._scenarios:
- instance = scenario._instance
-
- # avoid the warnings generated by adding Set to
- # multiple components, and learn to live with the fact
- # that these Params will point to some arbitrary
- # instance as their "parent" in the end
- new_nodal_index_set._parent = None
-
- # Add the shared parameter to the instance
- instance.add_component(new_nodal_index_set_name,
- new_nodal_index_set)
-
- ### dlw Jan 2014 nochecking=True, mutable=True)
- new_xbar_parameter = Param(new_nodal_index_set,
- name=new_xbar_parameter_name,
- default=0.0,
- mutable=True)
- ### dlw Jan 2014 nochecking=True, mutable=True)
- new_blend_parameter = Param(new_nodal_index_set,
- name=new_blend_parameter_name,
- within=Binary,
- default=False,
- mutable=True)
-
- for scenario in tree_node._scenarios:
- instance = scenario._instance
-
- # avoid the warnings generated by adding Param to
- # multiple components, and learn to live with the fact
- # that these Params will point to some arbitrary
- # instance as their "parent" in the end
- new_xbar_parameter._parent = None
- new_blend_parameter._parent = None
-
- # Add the shared parameter to the instance
- instance.add_component(new_xbar_parameter_name,
- new_xbar_parameter)
- instance.add_component(new_blend_parameter_name,
- new_blend_parameter)
-
- new_xbar_parameter.store_values(0.0)
- tree_node._xbars.update(dict.fromkeys(tree_node._xbars,0.0))
- new_blend_parameter.store_values(1)
- tree_node._blend.update(dict.fromkeys(tree_node._blend,1))
-
-#
-# Extracts an active objective from the instance (top-level only).
-# Works with index objectives that may have all but one index
-# deactivated. safety_checks=True asserts that exactly ONE active objective
-# is found on the top-level instance.
-#
-
-def find_active_objective(instance, safety_checks=False):
-
- if safety_checks is False:
- for objective_data in instance.component_data_objects(Objective,
- active=True,
- descend_into=True):
- # Return the first active objective encountered
- return objective_data
- else:
- objectives = []
- for objective_data in instance.component_data_objects(Objective,
- active=True,
- descend_into=True):
- objectives.append(objective_data)
- if len(objectives) > 1:
- names = [o.name for o in objectives]
- raise AssertionError("More than one active objective was "
- "found on instance %s: %s"
- % (instance.name, names))
- if len(objectives) > 0:
- return objectives[0]
- return None
-
-def preprocess_scenario_instance(scenario_instance,
- instance_variables_fixed,
- instance_variables_freed,
- instance_user_constraints_modified,
- instance_ph_constraints_modified,
- instance_ph_constraints,
- instance_objective_modified,
- preprocess_fixed_variables,
- solver):
-
- # TODO: Does this import need to be delayed because
- # it is in a plugins subdirectory
- from pyomo.solvers.plugins.solvers.persistent_solver import \
- PersistentSolver
-
- persistent_solver_in_use = isinstance(solver, PersistentSolver)
-
- if (not instance_objective_modified) and \
- (not instance_variables_fixed) and \
- (not instance_variables_freed) and \
- (not instance_ph_constraints_modified) and \
- (not instance_user_constraints_modified):
-
- # the condition of "nothing modified" should only be triggered
- # at PH iteration 0. instances are already preprocessed
- # following construction, and there isn't any augmentation of
- # the objective function yet.
- return
-
- if instance_objective_modified:
- # if only the objective changed, there is minimal work to do.
- _preprocess(scenario_instance,
- objective=True,
- constraints=False)
-
- if persistent_solver_in_use:
- active_objective_datas = []
- for active_objective_data in scenario_instance.component_data_objects(Objective,
- active=True,
- descend_into=True):
- active_objective_datas.append(active_objective_data)
- if len(active_objective_datas) > 1:
- raise RuntimeError("Multiple active objectives identified for scenario=%s" % scenario_instance._name)
- elif len(active_objective_datas) == 1:
- solver.set_objective(active_objective_datas[0])
-
- if (instance_variables_fixed or instance_variables_freed) and \
- (preprocess_fixed_variables):
-
- _preprocess(scenario_instance)
-
- # We've preprocessed the entire instance, no point in checking
- # anything else
- return
-
- if (instance_variables_fixed or instance_variables_freed) and \
- (persistent_solver_in_use):
- # it can be the case that the solver plugin no longer has an
- # instance compiled, depending on what state the solver plugin
- # is in relative to the instance. if this is the case, just
- # don't compile the variable bounds.
- if solver.has_instance():
- variables_to_change = \
- instance_variables_fixed + instance_variables_freed
- for var_name, var_index in variables_to_change:
- solver.update_var(scenario_instance.find_component(var_name)[var_index])
-
- if instance_user_constraints_modified:
-
- _preprocess(scenario_instance,
- objective=False,
- constraints=True)
-
- # TBD: Should this be an an if below - both user and ph constraints
- # could be modified at the same time, no?
- elif instance_ph_constraints_modified:
-
- # only pre-process the piecewise constraints
- idMap = {}
- for constraint_name in instance_ph_constraints:
- preprocess_constraint(
- scenario_instance,
- getattr(scenario_instance, constraint_name),
- idMap=idMap)
-
-
-# TBD: doesn't do much now... - SHOULD PROPAGATE FLAGS FROM _preprocess_scenario_instances...
-
-def preprocess_bundle_instance(bundle_instance,
- solver):
-
- # TODO: Does this import need to be delayed because
- # it is in a plugins subdirectory
- from pyomo.solvers.plugins.solvers.persistent_solver import \
- PersistentSolver
-
- persistent_solver_in_use = isinstance(solver, PersistentSolver)
-
- if persistent_solver_in_use:
- active_objective_datas = []
- for active_objective_data in bundle_instance.component_data_objects(Objective,
- active=True,
- descend_into=True):
- active_objective_datas.append(active_objective_data)
- if len(active_objective_datas) > 1:
- raise RuntimeError("Multiple active objectives identified for bundle=%s" % bundle_instance._name)
- elif len(active_objective_datas) == 1:
- solver.set_objective(active_objective_datas[0])
-
-def reset_ph_plugins(ph):
- for ph_plugin in ph._ph_plugins:
- ph_plugin.reset(ph)
diff --git a/pyomo/pysp/plugins/__init__.py b/pyomo/pysp/plugins/__init__.py
deleted file mode 100644
index 1e522848ea0..00000000000
--- a/pyomo/pysp/plugins/__init__.py
+++ /dev/null
@@ -1,23 +0,0 @@
-# ___________________________________________________________________________
-#
-# Pyomo: Python Optimization Modeling Objects
-# Copyright 2017 National Technology and Engineering Solutions of Sandia, LLC
-# Under the terms of Contract DE-NA0003525 with National Technology and
-# Engineering Solutions of Sandia, LLC, the U.S. Government retains certain
-# rights in this software.
-# This software is distributed under the 3-clause BSD License.
-# ___________________________________________________________________________
-
-def load():
- import pyomo.pysp.plugins.csvsolutionwriter
- import pyomo.pysp.plugins.examplephextension
- import pyomo.pysp.plugins.phboundextension
- import pyomo.pysp.plugins.convexhullboundextension
- import pyomo.pysp.plugins.schuripwriter
- import pyomo.pysp.plugins.testphextension
- import pyomo.pysp.plugins.wwphextension
- import pyomo.pysp.plugins.phhistoryextension
- import pyomo.pysp.plugins.jsonsolutionwriter
- import pyomo.pysp.plugins.ddextensionnew
- import pyomo.pysp.plugins.adaptive_rho_converger
- import pyomo.pysp.plugins.jsonio
diff --git a/pyomo/pysp/plugins/adaptive_rho_converger.py b/pyomo/pysp/plugins/adaptive_rho_converger.py
deleted file mode 100644
index d07060c759b..00000000000
--- a/pyomo/pysp/plugins/adaptive_rho_converger.py
+++ /dev/null
@@ -1,238 +0,0 @@
-# ___________________________________________________________________________
-#
-# Pyomo: Python Optimization Modeling Objects
-# Copyright 2017 National Technology and Engineering Solutions of Sandia, LLC
-# Under the terms of Contract DE-NA0003525 with National Technology and
-# Engineering Solutions of Sandia, LLC, the U.S. Government retains certain
-# rights in this software.
-# This software is distributed under the 3-clause BSD License.
-# ___________________________________________________________________________
-
-import logging
-import copy
-import math
-
-from pyomo.common.plugin import implements, alias, SingletonPlugin
-from pyomo.pysp import phextension
-from pyomo.pysp.phutils import indexToString
-
-logger = logging.getLogger('pyomo.pysp')
-
-class _AdaptiveRhoBase(object):
-
- def __init__(self):
-
- self._tol = 1e-5
- self._required_converged_before_decrease = 0
- self._rho_converged_residual_decrease = 1.1
- self._rho_feasible_decrease = 1.25
- self._rho_decrease = 2.0
- self._rho_increase = 2.0
- self._log_rho_norm_convergence_tolerance = 1.0
- self._converged_count = 0
- self._last_adjusted_iter = -1
- self._stop_iter_rho_update = None
- self._prev_avg = None
- self._primal_residual_history = []
- self._dual_residual_history = []
- self._rho_norm_history = []
-
- def _compute_rho_norm(self, ph):
- rho_norm = 0.0
- for stage in ph._scenario_tree._stages[:-1]:
- for tree_node in stage._tree_nodes:
- node_rho_norm = 0.0
- for variable_id in tree_node._standard_variable_ids:
- name, index = tree_node._variable_ids[variable_id]
- # rho is really a node parameter, so we only check
- # one scenario
- node_rho_norm += tree_node._scenarios[0].\
- _rho[tree_node._name][variable_id]
- rho_norm += node_rho_norm * tree_node._probability
- return rho_norm
-
- def _snapshot_avg(self, ph):
- self._prev_avg = {}
- for stage in ph._scenario_tree._stages[:-1]:
- for tree_node in stage._tree_nodes:
- self._prev_avg[tree_node._name] = \
- copy.deepcopy(tree_node._averages)
-
- def _compute_primal_residual_norm(self, ph):
- primal_resid = {}
- for stage in ph._scenario_tree._stages[:-1]:
- for tree_node in stage._tree_nodes:
- node_primal_resid = primal_resid[tree_node._name] = \
- dict((variable_id,0.0) for variable_id \
- in tree_node._standard_variable_ids)
- for variable_id in tree_node._standard_variable_ids:
- for scenario in tree_node._scenarios:
- node_primal_resid[variable_id] += \
- scenario._probability * \
- (scenario._x[tree_node._name][variable_id] - \
- tree_node._averages[variable_id])**2
- return primal_resid
-
- def _compute_dual_residual_norm(self, ph):
- dual_resid = {}
- for stage in ph._scenario_tree._stages[:-1]:
- for tree_node in stage._tree_nodes:
- node_prev_avg = self._prev_avg[tree_node._name]
- dual_resid[tree_node._name] = \
- dict((variable_id,
- tree_node._scenarios[0].\
- _rho[tree_node._name][variable_id]**2 * \
- (tree_node._averages[variable_id] - \
- node_prev_avg[variable_id])**2) \
- for variable_id in tree_node._standard_variable_ids)
- return dual_resid
-
- def pre_ph_initialization(self,ph):
- pass
-
- def post_instance_creation(self, ph):
- pass
-
- def post_ph_initialization(self, ph):
- self._stop_iter_rho_update = int(ph._max_iterations/2)
-
- def post_iteration_0_solves(self, ph):
- pass
-
- def post_iteration_0(self, ph):
- pass
-
- def pre_iteration_k_solves(self, ph):
-
- if (ph._current_iteration > self._stop_iter_rho_update) and \
- all(not _converger.isConverged(ph) for _converger in ph._convergers):
- return
-
- converged = any(_converger.isConverged(ph) for _converger in ph._convergers)
-
- rho_updated = False
- adjust_rho = 0
- if self._prev_avg is None:
- self._snapshot_avg(ph)
- else:
- self._primal_residual_history.append(
- self._compute_primal_residual_norm(ph))
- self._dual_residual_history.append(
- self._compute_dual_residual_norm(ph))
- self._snapshot_avg(ph)
- first_line = ("Updating Rho Values:\n%21s %25s %16s %16s %16s"
- % ("Action",
- "Variable",
- "Primal Residual",
- "Dual Residual",
- "New Rho"))
- first = True
- for stage in ph._scenario_tree._stages[:-1]:
- for tree_node in stage._tree_nodes:
- primal_resid = \
- math.sqrt(sum(self._primal_residual_history[-1]\
- [tree_node._name].values()))
- dual_resid = \
- math.sqrt(sum(self._dual_residual_history[-1]\
- [tree_node._name].values()))
- for variable_id in tree_node._standard_variable_ids:
- name, index = tree_node._variable_ids[variable_id]
- primal_resid = \
- math.sqrt(self._primal_residual_history[-1]\
- [tree_node._name][variable_id])
- dual_resid = \
- math.sqrt(self._dual_residual_history[-1]\
- [tree_node._name][variable_id])
-
- action = None
- rho = tree_node._scenarios[0]._rho[tree_node._name][variable_id]
- if (primal_resid > 10*dual_resid) and (primal_resid > self._tol):
- rho *= self._rho_increase
- action = "Increasing"
- elif ((dual_resid > 10*primal_resid) and (dual_resid > self._tol)):
- if self._converged_count >= self._required_converged_before_decrease:
- rho /= self._rho_decrease
- action = "Decreasing"
- elif converged:
- rho /= self._rho_feasible_decrease
- action = "Feasible, Decreasing"
- elif (primal_resid < self._tol) and (dual_resid < self._tol):
- rho /= self._rho_converged_residual_decrease
- action = "Converged, Decreasing"
- if action is not None:
- if first:
- first = False
- print(first_line)
- print("%21s %25s %16g %16g %16g"
- % (action, name+indexToString(index),
- primal_resid, dual_resid, rho))
- for scenario in tree_node._scenarios:
- scenario._rho[tree_node._name][variable_id] = rho
-
- self._rho_norm_history.append(self._compute_rho_norm(ph))
- if rho_updated:
- print("log(|rho|) = "+repr(math.log(self._rho_norm_history[-1])))
-
- def post_iteration_k_solves(self, ph):
- pass
-
- def post_iteration_k(self, ph):
- pass
-
- def ph_convergence_check(self, ph):
-
- self._converged_count += 1
-
- log_rho_norm = math.log(self._compute_rho_norm(ph))
- print("log(|rho|) = "+repr(log_rho_norm))
- if log_rho_norm <= self._log_rho_norm_convergence_tolerance:
- print("Adaptive Rho Convergence Check Passed")
- return True
- print("Adaptive Rho Convergence Check Failed "
- "(requires log(|rho|) < "+
- repr(self._log_rho_norm_convergence_tolerance)+")")
- print("Continuing PH with updated Rho")
- return False
-
- def post_ph_execution(self, ph):
- pass
-
-class admm(SingletonPlugin,
- _AdaptiveRhoBase):
-
- implements(phextension.IPHExtension)
-
- alias("admm")
-
- def __init__(self):
- _AdaptiveRhoBase.__init__(self)
-
- def pre_ph_initialization(self,ph):
- _AdaptiveRhoBase.pre_ph_initialization(self, ph)
-
- def post_instance_creation(self, ph):
- _AdaptiveRhoBase.post_instance_creation(self, ph)
-
- def post_ph_initialization(self, ph):
- _AdaptiveRhoBase.post_ph_initialization(self, ph)
-
- def post_iteration_0_solves(self, ph):
- _AdaptiveRhoBase.post_iteration_0_solves(self, ph)
-
- def post_iteration_0(self, ph):
- _AdaptiveRhoBase.post_iteration_0(self, ph)
-
- def pre_iteration_k_solves(self, ph):
- _AdaptiveRhoBase.pre_iteration_k_solves(self, ph)
-
- def post_iteration_k_solves(self, ph):
- _AdaptiveRhoBase.post_iteration_k_solves(self, ph)
-
- def post_iteration_k(self, ph):
- _AdaptiveRhoBase.post_iteration_k(self, ph)
-
- def ph_convergence_check(self, ph):
- return _AdaptiveRhoBase.ph_convergence_check(self, ph)
-
- def post_ph_execution(self, ph):
- _AdaptiveRhoBase.post_ph_execution(self, ph)
diff --git a/pyomo/pysp/plugins/convexhullboundextension.py b/pyomo/pysp/plugins/convexhullboundextension.py
deleted file mode 100644
index 1fdfd4ed074..00000000000
--- a/pyomo/pysp/plugins/convexhullboundextension.py
+++ /dev/null
@@ -1,469 +0,0 @@
-# ___________________________________________________________________________
-#
-# Pyomo: Python Optimization Modeling Objects
-# Copyright 2017 National Technology and Engineering Solutions of Sandia, LLC
-# Under the terms of Contract DE-NA0003525 with National Technology and
-# Engineering Solutions of Sandia, LLC, the U.S. Government retains certain
-# rights in this software.
-# This software is distributed under the 3-clause BSD License.
-# ___________________________________________________________________________
-
-import os
-import logging
-import copy
-
-import pyomo.common.plugin
-from pyomo.opt import SolverFactory
-from pyomo.core import ConcreteModel, Var, Reals, Param, Objective, ConstraintList, minimize
-from pyomo.pysp import phextension
-from pyomo.pysp.plugins.phboundextension import (_PHBoundBase,
- ExtractInternalNodeSolutionsforInner)
-
-logger = logging.getLogger('pyomo.pysp')
-
-class convexhullboundextension(pyomo.common.plugin.SingletonPlugin, _PHBoundBase):
-
- pyomo.common.plugin.implements(phextension.IPHExtension)
-
- pyomo.common.plugin.alias("convexhullboundextension")
-
- def __init__(self, *args, **kwds):
-
- _PHBoundBase.__init__(self)
-
- # the bundle dual master model
- self._master_model = None
-
- # maps (iteration, scenario_name) to objective function value
- self._past_objective_values = {}
-
- # maps (iteration, scenario_name, variable_id) to value
- # maps iteration -> copy of each scenario solution
- self._past_var_values = {}
-
- def _iteration_k_bound_solves(self, ph, storage_key):
-
- # ** Code uses the values stored in the scenario solutions
- # to perform a weighted vote in the case of discrete
- # variables, so it is important that we execute this
- # before perform any new subproblem solves.
- # candidate_sol is sometimes called xhat
- candidate_sol = ExtractInternalNodeSolutionsforInner(ph)
- # Caching the current set of ph solutions so we can restore
- # the original results. We modify the scenarios and re-solve -
- # which messes up the warm-start, which can seriously impact
- # the performance of PH. plus, we don't want lower bounding to
- # impact the primal PH in any way - it should be free of any
- # side effects.
- self.CachePHSolution(ph)
-
- # Save the current fixed state and fix queue
- self.RelaxPHFixedVariables(ph)
-
- # Assuming the weight terms are already active but proximal
- # terms need to be deactivated deactivate all proximal terms
- # and activate all weight terms
- self.DeactivatePHObjectiveProximalTerms(ph)
-
- # before we do anything, we need to cache the current PH
- # weights, so we can restore them below.
- self.CachePHWeights(ph)
-
- # for these solves, we're going to be using the convex hull
- # master problem weights.
- self._push_weights_to_ph(ph)
-
- # Weights have not been pushed to instance parameters (or
- # transmitted to the phsolverservers) at this point
- ph._push_w_to_instances()
-
- # assign rhos from ck.
- self._assign_cks(ph)
-
- failures = ph.solve_subproblems(warmstart=not ph._disable_warmstarts)
-
- if len(failures):
-
- print("Failed to compute duality-based bound due to "
- "one or more solve failures")
- self._outer_bound_history[storage_key] = \
- float('-inf') if self._is_minimizing else float('inf')
- self._outer_status_history[storage_key] = self.STATUS_SOLVE_FAILED
-
- else:
-
- if ph._verbose:
- print("Successfully completed PH bound extension "
- "iteration %s solves\n"
- "- solution statistics:\n" % (storage_key))
- if ph._scenario_tree.contains_bundles():
- ph.report_bundle_objectives()
- ph.report_scenario_objectives()
-
- # Compute the outer bound on the objective function.
- self._outer_bound_history[storage_key], \
- self._outer_status_history[storage_key] = \
- self.ComputeOuterBound(ph, storage_key)
-
- # now change over to finding a feasible incumbent.
- print("Computing objective %s bound" %
- ("inner" if self._is_minimizing else "outer"))
-
- # push the updated outer bound to PH, for reporting purposes.
- ph._update_reported_bounds(self._outer_bound_history[storage_key])
-
- # Deactivate the weight terms.
- self.DeactivatePHObjectiveWeightTerms(ph)
-
- # Fix all non-leaf stage variables involved
- # in non-anticipativity conditions to the most
- # recently computed xbar (or something like it)
- self.FixScenarioTreeVariables(ph, candidate_sol)
-
- failures = ph.solve_subproblems(warmstart=not ph._disable_warmstarts,
- exception_on_failure=False)
-
- if len(failures):
-
- print("Failed to compute bound at xbar due to "
- "one or more solve failures")
- self._inner_bound_history[storage_key] = \
- float('inf') if self._is_minimizing else float('-inf')
- self._inner_status_history[storage_key] = self.STATUS_SOLVE_FAILED
-
- else:
-
- if ph._verbose:
- print("Successfully completed PH bound extension "
- "fixed-to-xbar solves for iteration %s\n"
- "- solution statistics:\n" % (storage_key))
- if ph._scenario_tree.contains_bundles():
- ph.report_bundle_objectives()
- ph.report_scenario_objectives()
-
- # Compute the inner bound on the objective function.
- self._inner_bound_history[storage_key], \
- self._inner_status_history[storage_key] = \
- self.ComputeInnerBound(ph, storage_key)
-
- # push the updated inner bound to PH, for reporting purposes.
- ph._update_reported_bounds(inner = self._inner_bound_history[storage_key])
-
- # Restore ph to its state prior to entering this method (e.g.,
- # fixed variables, scenario solutions, proximal terms,
- # weights)
- self.RestorePH(ph)
-
- def _construct_bundle_dual_master_model(self, ph):
-
- self._master_model = ConcreteModel()
- for scenario in ph._scenario_tree._scenarios:
- for tree_node in scenario._node_list[:-1]:
- new_w_variable_name = "WVAR_"+str(tree_node._name)+"_"+str(scenario._name)
- new_w_k_parameter_name = "WDATA_"+str(tree_node._name)+"_"+str(scenario._name)+"_K"
- setattr(self._master_model,
- new_w_variable_name,
- Var(tree_node._standard_variable_ids,
- within=Reals))
- setattr(self._master_model,
- new_w_k_parameter_name,
- Param(tree_node._standard_variable_ids,
- within=Reals,
- default=0.0,
- mutable=True))
- setattr(self._master_model,
- "V_"+str(scenario._name),
- Var(within=Reals))
- # HERE - NEED TO MAKE CK VARAIBLE-DEPENDENT - PLUS WE NEED A SANE INITIAL VALUE (AND SUBSEQUENT VALUE)
- # DLW SAYS NO - THIS SHOULD BE VARIABLE-SPECIFIC
- setattr(self._master_model,
- "CK",
- Param(default=1.0, mutable=True))
-
- def obj_rule(m):
- expr = 0.0
- for scenario in ph._scenario_tree._scenarios:
- for tree_node in scenario._node_list[:-1]:
- new_w_variable_name = "WVAR_"+str(tree_node._name)+"_"+str(scenario._name)
- new_w_k_parameter_name = "WDATA_"+str(tree_node._name)+"_"+str(scenario._name)+"_K"
- w_variable = m.find_component(new_w_variable_name)
- w_k_parameter = m.find_component(new_w_k_parameter_name)
- expr += 1.0/(2.0*m.CK) * sum(w_variable[i]**2 - 2.0*w_variable[i]*w_k_parameter[i] for i in w_variable)
- expr -= getattr(m, "V_"+str(scenario._name))
- return expr
-
- self._master_model.TheObjective = Objective(sense=minimize, rule=obj_rule)
-
- self._master_model.W_Balance = ConstraintList()
-
- for stage in ph._scenario_tree._stages[:-1]:
-
- for tree_node in stage._tree_nodes:
-
- # GABE SHOULD HAVE A SERVICE FOR THIS???
- for idx in tree_node._standard_variable_ids:
-
- expr = 0.0
- for scenario in tree_node._scenarios:
- scenario_probability = scenario._probability
- new_w_variable_name = "WVAR_"+str(tree_node._name)+"_"+str(scenario._name)
- w_variable = self._master_model.find_component(new_w_variable_name)
- expr += scenario_probability * w_variable[idx]
-
- self._master_model.W_Balance.add(expr == 0.0)
-
- # we can't populate until we see data from PH....
- self._master_model.V_Bound = ConstraintList()
-
-# self._master_model.pprint()
-
- #
- # populate the master bundle model from the PH parameters
- #
- def _populate_bundle_dual_master_model(self, ph):
- # TODO: Does this import need to be delayed because
- # it is in a plugins subdirectory
- from pyomo.solvers.plugins.solvers.persistent_solver import \
- PersistentSolver
-
- current_iteration = ph._current_iteration
-
- # first step is to update the historical information from PH
-
- for scenario in ph._scenario_tree._scenarios:
- primal_objective_value = scenario._objective
- self._past_objective_values[(current_iteration, scenario._name)] = primal_objective_value
-
-# print "PAST OBJECTIVE FUNCTION VALUES=",self._past_objective_values
-
- assert current_iteration not in self._past_var_values
- iter_var_values = self._past_var_values[current_iteration] = {}
- for scenario in ph._scenario_tree._scenarios:
- iter_var_values[scenario._name] = copy.deepcopy(scenario._x)
-
-# print "PAST VAR VALUES=",self._past_var_values
-
- # propagate PH parameters to concrete model and re-preprocess.
- for scenario in ph._scenario_tree._scenarios:
- for tree_node in scenario._node_list[:-1]:
- new_w_k_parameter_name = \
- "WDATA_"+str(tree_node._name)+"_"+str(scenario._name)+"_K"
- w_k_parameter = \
- self._master_model.find_component(new_w_k_parameter_name)
- ph_weights = scenario._w[tree_node._name]
-
- for idx in w_k_parameter:
- w_k_parameter[idx] = ph_weights[idx]
-
- # V bounds are per-variable, per-iteration
- for scenario in ph._scenario_tree._scenarios:
- scenario_name = scenario._name
- v_var = getattr(self._master_model, "V_"+str(scenario_name))
- expr = self._past_objective_values[(current_iteration, scenario_name)]
- for tree_node in scenario._node_list[:-1]:
- new_w_variable_name = "WVAR_"+str(tree_node._name)+"_"+str(scenario_name)
- w_variable = self._master_model.find_component(new_w_variable_name)
- expr += sum(iter_var_values[scenario_name][tree_node._name][var_id] * w_variable[var_id] for var_id in w_variable)
-
- self._master_model.V_Bound.add(v_var <= expr)
-
-# print "V_BOUNDS CONSTRAINT:"
-# self._master_model.V_Bound.pprint()
- with SolverFactory(ph._solver_type,
- solver_io=ph._solver_io) as solver:
- # the reason we go through this trouble rather
- # than harcoding cplex as the solver is so that
- # we can test the script and not have to worry
- # about a missing solver
- if isinstance(solver, PersistentSolver):
- solver.set_instance(self._master_model)
- results = solver.solve(self._master_model)
- self._master_model.solutions.load_from(results)
-# print "MASTER MODEL WVAR FOLLOWING SOLVE:"
-# self._master_model.pprint()
-
-# self._master_model.pprint()
-
- #
- # take the weights from the current convex hull master problem
- # solution, and push them into the PH scenario instances - so we
- # can do the solves and compute a lower bound.
- #
-
- def _push_weights_to_ph(self, ph):
-
- for scenario in ph._scenario_tree._scenarios:
- for tree_node in scenario._node_list[:-1]:
-
- new_w_variable_name = "WVAR_"+str(tree_node._name)+"_"+str(scenario._name)
- w_variable = self._master_model.find_component(new_w_variable_name)
-
- ph_weights = scenario._w[tree_node._name]
-
- for idx in w_variable:
- ph_weights[idx] = w_variable[idx].value
-
- #
- # move the variable rhos from PH into the analogous CK parameter
- # in the convex hull master.
- #
- def _assign_cks(self, ph):
-
- # TBD: for now, we're just grabbing the default rho from PH - we need to
- # extract them per-variable in the very near future.
- self._master_model.CK = ph._rho
-
- ############ Begin Callback Functions ##############
-
- def reset(self, ph):
- self.__init__()
-
- def pre_ph_initialization(self,ph):
- """
- Called before PH initialization.
- """
- pass
-
- def post_instance_creation(self, ph):
- """
- Called after PH initialization has created the scenario
- instances, but before any PH-related
- weights/variables/parameters/etc are defined!
- """
- pass
-
- def post_ph_initialization(self, ph):
- """
- Called after PH initialization!
- """
-
- if ph._verbose:
- print("Invoking post initialization callback "
- "in convexhullboundextension")
-
- self._is_minimizing = True if (ph._objective_sense == minimize) else False
- # TODO: Check for ph options that may not be compatible with
- # this plugin and warn / raise exception
-
- # grab the update interval from the environment variable, if
- # it exists.
- update_interval_variable_name = "PHBOUNDINTERVAL"
- if update_interval_variable_name in os.environ:
- self._update_interval = int(os.environ[update_interval_variable_name])
- print("convexhullboundextension using update interval="
- +str(self._update_interval)+", extracted from "
- "environment variable="+update_interval_variable_name)
- else:
- print("convexhullboundextension using default update "
- "interval="+str(self._update_interval))
-
- self._construct_bundle_dual_master_model(ph)
-
- def post_iteration_0_solves(self, ph):
- """Called after the iteration 0 solves!"""
-
- if ph._verbose:
- print("Invoking post iteration 0 solve callback "
- "in convexhullboundextension")
-
- if ph._ph_warmstarted:
- print("PH warmstart detected. Bound computation requires solves "
- "after iteration 0.")
- self.pre_iteration_k_solves(ph)
- return
-
- # Always compute a lower/upper bound here because it requires
- # no work. The instances (or bundles) have already been
- # solved with the original (non-PH-augmented) objective and
- # are loaded with results.
-
- #
- # Note: We will still obtain a bound using the weights
- # computed from PH iteration 0 in the
- # pre_iteration_k_solves callback.
- #
- ph_iter = None
-
- # Note: It is important that the mipgap is not adjusted
- # between the time after the subproblem solves
- # and before now.
- self._outer_bound_history[ph_iter], \
- self._outer_status_history[ph_iter] = \
- self.ComputeOuterBound(ph, ph_iter)
- ph._update_reported_bounds(outer = self._outer_bound_history[ph_iter]) # dlw May 2016
-
- # YIKES - WHY IS THIS HERE????!!
- self._populate_bundle_dual_master_model(ph)
-
- def post_iteration_0(self, ph):
- """
- Called after the iteration 0 solves, averages computation, and
- weight computation!
- """
- pass
-
- def pre_iteration_k_solves(self, ph):
- """
- Called immediately before the iteration k solves!
- """
-
- if ph._verbose:
- print("Invoking pre iteration k solve callback "
- "in convexhullboundextension")
-
- #
- # Note: We invoke this callback pre iteration k in order to
- # obtain a PH bound using weights computed from the
- # PREVIOUS iteration's scenario solutions (including
- # those of iteration zero).
- #
- ph_iter = ph._current_iteration-1
-
- if (ph_iter % self._update_interval) != 0:
- return
-
- self._iteration_k_bound_solves(ph, ph_iter)
-
- # YIKES - WHY IS THIS HERE????!!
- self._populate_bundle_dual_master_model(ph)
-
- if ph._current_iteration > 5:
- print("WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX "
- "HULL BOUND EXTENSION FOR WEIGHT UPDATES")
- ph._ph_weight_updated_enabled = False
- self._push_weights_to_ph(ph)
-
- def post_iteration_k_solves(self, ph):
- """
- Called after the iteration k solves!
- """
- pass
-
- def post_iteration_k(self, ph):
- """
- Called after the iteration k is finished, after weights have
- been updated!
- """
- pass
-
- def post_ph_execution(self, ph):
- """
- Called after PH has terminated!
- """
-
- if ph._verbose:
- print("Invoking post execution callback in convexhullboundextension")
-
- #
- # Note: We invoke this callback in order to compute a bound
- # using the weights obtained from the final PH
- # iteration.
- #
- ph_iter = ph._current_iteration
-
- if (ph_iter % self._update_interval) == 0:
-
- self._iteration_k_bound_solves(ph, ph_iter)
-
- self.ReportBoundHistory()
- self.ReportBestBound()
diff --git a/pyomo/pysp/plugins/csvsolutionwriter.py b/pyomo/pysp/plugins/csvsolutionwriter.py
deleted file mode 100644
index d64763f8fa8..00000000000
--- a/pyomo/pysp/plugins/csvsolutionwriter.py
+++ /dev/null
@@ -1,97 +0,0 @@
-# ___________________________________________________________________________
-#
-# Pyomo: Python Optimization Modeling Objects
-# Copyright 2017 National Technology and Engineering Solutions of Sandia, LLC
-# Under the terms of Contract DE-NA0003525 with National Technology and
-# Engineering Solutions of Sandia, LLC, the U.S. Government retains certain
-# rights in this software.
-# This software is distributed under the 3-clause BSD License.
-# ___________________________________________________________________________
-
-import pyomo.common.plugin
-from pyomo.pysp import solutionwriter
-from pyomo.pysp.scenariotree.tree_structure import \
- ScenarioTree
-
-#
-# a simple utility to munge the index name into something a
-# bit more csv-friendly and in general more readable. at the
-# current time, we just eliminate any leading and trailing
-# parentheses and change commas to colons - the latter
-# because it's a csv file!
-#
-
-def index_to_string(index):
-
- result = str(index)
- result = result.lstrip('(').rstrip(')')
- result = result.replace(',',':')
- result = result.replace(' ','')
-
- return result
-
-
-def write_csv_soln(scenario_tree, output_file_prefix):
- """
- Write the csv solution to a file.
- Args: scenario_tree: a scenario tree object populated with a solution.
- output_file_prefix: a string to indicate the file names for output.
- output_file_prefix + ".csv"
- output_file_prefix + "_StageCostDetail.csv"
- """
-
- if not isinstance(scenario_tree, ScenarioTree):
- raise RuntimeError(
- "CSVSolutionWriter write method expects "
- "ScenarioTree object - type of supplied "
- "object="+str(type(scenario_tree)))
-
- solution_filename = output_file_prefix + ".csv"
- with open(solution_filename, "w") as f:
- for stage in scenario_tree.stages:
- for tree_node in sorted(stage.nodes,
- key=lambda x: x.name):
- for variable_id in sorted(tree_node._variable_ids):
- var_name, index = \
- tree_node._variable_ids[variable_id]
- f.write("%s, %s, %s, %s, %s\n"
- % (stage.name,
- tree_node.name,
- var_name,
- index_to_string(index),
- tree_node._solution[variable_id]))
-
- print("Scenario tree solution written to file="+solution_filename)
-
- cost_filename = output_file_prefix + "_StageCostDetail.csv"
- with open(cost_filename, "w") as f:
- for stage in scenario_tree.stages:
- # DLW March 2020 to pasting over a bug in handling
- # of NetworkX by tree_structure.py
- # (stage costs may be None but are OK at the node level)
- scost = stage._cost_variable # might be None
- for tree_node in sorted(stage.nodes,
- key=lambda x: x.name):
- if scost is None:
- scost = tree_node._cost_variable
- cost_name, cost_index = scost # moved into loop 3/2020 hack
- for scenario in sorted(tree_node.scenarios,
- key=lambda x: x.name):
- stage_cost = scenario._stage_costs[stage.name]
- f.write("%s, %s, %s, %s, %s, %s\n"
- % (stage.name,
- tree_node.name,
- scenario.name,
- cost_name,
- index_to_string(cost_index),
- stage_cost))
- print("Scenario stage costs written to file="+cost_filename)
-
-
-class CSVSolutionWriter(pyomo.common.plugin.SingletonPlugin):
-
- pyomo.common.plugin.implements(
- solutionwriter.ISolutionWriterExtension)
-
- def write(self, scenario_tree, output_file_prefix):
- write_csv_soln(scenario_tree, output_file_prefix)
diff --git a/pyomo/pysp/plugins/ddextensionnew.py b/pyomo/pysp/plugins/ddextensionnew.py
deleted file mode 100644
index 1abb459ea20..00000000000
--- a/pyomo/pysp/plugins/ddextensionnew.py
+++ /dev/null
@@ -1,1584 +0,0 @@
-# ___________________________________________________________________________
-#
-# Pyomo: Python Optimization Modeling Objects
-# Copyright 2017 National Technology and Engineering Solutions of Sandia, LLC
-# Under the terms of Contract DE-NA0003525 with National Technology and
-# Engineering Solutions of Sandia, LLC, the U.S. Government retains certain
-# rights in this software.
-# This software is distributed under the 3-clause BSD License.
-# ___________________________________________________________________________
-
-# dlw Dec 2014: all 'wb' now 'wt'
-# dlw Jan 2015: even more 'w' and 'wb' now 'wt'
-#
-# ph extension for dual decomposition
-#
-
-import csv
-import sys
-from operator import itemgetter
-import os
-thisfile = os.path.abspath(__file__)
-
-import pyomo.common.plugin
-from pyomo.core import TextLabeler, Var, Constraint, Piecewise, Expression, SOSConstraint
-from pyomo.core.base.var import _VarData
-from pyomo.core.base.piecewise import _PiecewiseData
-from pyomo.pysp import phextension
-from pyomo.pysp.phsolverserver import _PHSolverServer
-from pyomo.pysp.phsolverserverutils import \
- transmit_external_function_invocation_to_worker
-
-from six import iteritems
-
-# This must be in your path
-_ddsip_help = 'DDSIPhelp_x64'
-_ddsip_help_output = "rows+cols"
-_ddsip_exe = 'DDSIP_126_x64'
-_precision_string = '.17g'
-
-_disable_stoch_rhs_flagname = "DDSIP_DISABLE_STOCHASTIC_RHS"
-_disable_stoch_rhs_default = False
-
-_disable_stoch_matrix_flagname = "DDSIP_DISABLE_STOCHASTIC_MATRIX"
-_disable_stoch_matrix_default = True
-
-_disable_stoch_costs_flagname = "DDSIP_DISABLE_STOCHASTIC_COSTS"
-_disable_stoch_costs_default = True
-
-# TODO:
-# handle the case where a variable on the scenario tree does not
-# appear in the LP file
-# test with range constraints
-# test with == constraints
-# test with <= constraints
-# test with >= constraints
-# test with Piecewise
-# test that SOSConstraint throws error
-# test number of stochastic entries match
-# (this is not a necessary or sufficient condition
-# for checking that something has gone wrong, but
-# it should catch most issues)
-
-# POTENTIAL ISSUES
-# The fact that the constraint matrix is sparse presents a problem when
-# stochastic matrix coefficients are sometimes zero. In these cases, somewhere
-# in the pyomo toolchain these entries will be simplified out of the constraint
-# matrix (e.g, when generating the pyomo expression or when writing the
-# LP file lines). In such a case, the generated stochastic matrix file might be
-# garbage (but not cause an error).
-#
-# In a related case, if a constraint becomes "trivial" (due to stochastic coefficients)
-# that could cause it appear in some scenario models but not others. Again, this
-# could possibly result in garbage DDSIP inputs that don't cause an error.
-#
-# My proposed solution is choose a global reference scenario that all other scenarios
-# must compare nonzero locations against as they write their own file. This is not
-# implemented yet.
-
-def Write_DDSIP_Input(ph, scenario_tree, scenario_or_bundle,
- scenario_name,
- scenario_index,
- firststage_var_suffix,
- global_reference_scenario=False):
- dd = DDSIP_Input(ph, scenario_tree, scenario_or_bundle,
- scenario_name,
- scenario_index,
- firststage_var_suffix)
- return dd.write(ph, global_reference_scenario=global_reference_scenario)
-
-class DDSIP_Input(object):
-
- def __init__(self,
- ph, scenario_tree, scenario_or_bundle,
- scenario_name,
- scenario_index,
- firststage_var_suffix):
-
- self.input_file_name_list = []
- self._scenario_name = scenario_name
- self._scenario_index = scenario_index
- self._lpfilename = "ddlpfile.lp."+self._scenario_name
- self._rhsfilename = "rhs.sc."+self._scenario_name
- self._matfilename = "matrix.sc."+self._scenario_name
- self._objfilename = "cost.sc."+self._scenario_name
- self._firststage_var_suffix = firststage_var_suffix
- self._reference_scenario = ph._scenario_tree.get_scenario(scenario_name)
- self._reference_scenario_instance = None
-
- self._FirstStageVars = []
- self._FirstStageVarIdMap = {}
- self._FirstStageDerivedVars = []
- self._FirstStageDerivedVarIdMap = {}
- self._SecondStageVars = []
- self._SecondStageVarIdMap = {}
- self._StageCostVarStageMap = {}
-
- # If these values remain as None, it will
- # indicate the user has explicitely set
- # disable flags on the model (which
- # we will report for confirmation purposes)
- self._num_stochastic_rhs = None
- self._num_stochastic_matrix_entries = None
- self._num_stochastic_costs = None
-
- self._num_first_stage_constraints = None
- self._num_second_stage_constraints = None
-
- # If this constraint appears in the LP file it means the
- # objective included constant terms
- self._count_constraint_ONE_VAR_CONSTANT = 0
-
- self._AllVars = []
-
- # Read from siphelp output. Includes cplex row, column
- # assignments Required for stochastic matrix file
- self._ColumnMap = {}
- self._ColumnNameList = []
- self._RowMap = {}
- self._RowNameList = []
-
- self._reference_scenario_instance = self._reference_scenario._instance
-
- def write(self, ph, global_reference_scenario=False):
-
- scenario_instance = self._reference_scenario_instance
-
- # This is usuall called just prior to solving the instances,
- # however the scenariotree uses StandardRepn for determining
- # constraint stage
- ph._preprocess_scenario_instances()
-
- # Write the lp file for an arbitrary scenario, also obtain the
- # maximum row/column symbol length (in characters)
- max_name_len, symbol_map = self._write_reference_scenario_lp(ph)
-
- # variables will stored by their name in the LP file,
- # which may be different from what is stored on the
- # ph scenario tree
- StageToConstraintMap = self._Constraints_Stages(ph, symbol_map)
- self._Populate_StageVars(ph, symbol_map)
-
- if global_reference_scenario:
- assert os.path.exists(self._lpfilename)
- try:
- os.remove(os.path.join(os.getcwd(),_ddsip_help_output))
- except OSError:
- pass
- try:
- os.remove(os.path.join(os.getcwd(),_ddsip_help_output+".gz"))
- except OSError:
- pass
- assert not os.path.exists(os.path.join(os.getcwd(),_ddsip_help_output))
- assert not os.path.exists(os.path.join(os.getcwd(),_ddsip_help_output+".gz"))
- print(("COMMAND= "+str(_ddsip_help)+' '+self._lpfilename+' '+str(max_name_len)))
- os.system(_ddsip_help+' '+self._lpfilename+' '+str(max_name_len))
- assert os.path.exists(os.path.join(os.getcwd(),_ddsip_help_output+".gz"))
- os.system("gzip -df "+os.path.join(os.getcwd(),_ddsip_help_output+".gz"))
- else:
- assert os.path.exists(os.path.join(os.getcwd(),_ddsip_help_output))
-
- dashcount = 0
- varcount = 0
- concount = 0
- with open(_ddsip_help_output,'r') as f:
- for line in f.readlines():
- pieces = line.split()
- if dashcount == 3:
- break
- elif pieces[0] =='__________________________':
- dashcount = dashcount+1
- elif (dashcount == 1) and (len(pieces) == 2):
- varcount += 1
- self._ColumnMap[pieces[1]] = int(pieces[0])
- self._ColumnNameList.append(pieces[1])
- assert len(self._ColumnNameList)-1 == \
- self._ColumnMap[self._ColumnNameList[-1]]
- elif (dashcount == 2) and (len(pieces) == 2):
- concount += 1
- self._RowMap[pieces[1]] = int(pieces[0])
- self._RowNameList.append(pieces[1])
- assert len(self._RowNameList)-1 == \
- self._RowMap[self._RowNameList[-1]]
-
- (ObjObject,
- ConstraintMap,
- remaining_lpfile_rows,
- AllConstraintNames) = \
- self._read_parse_lp(self._lpfilename)
-
- os.remove(self._lpfilename)
-
- #print("@@@@@@@@@@@ COLS @@@@@@@@@@@@")
- #print(set(self._ColumnNameList)-set(self._AllVars))
- #print("@@@@@@@@@@@ ROWS @@@@@@@@@@@@")
- #print(set(self._RowNameList)-set(AllConstraintNames))
-
- # ONE_VAR_CONSTANT always appears as an extra variable in the LP file
- assert len(self._ColumnMap)-1 == len(self._AllVars)
-
- # c_e_ONE_VAR_CONSTANT only appears as an extra constraint when
- # the objective function has a constant term
- assert len(self._RowMap) == \
- len(AllConstraintNames) + \
- self._count_constraint_ONE_VAR_CONSTANT
- #print sorted(ObjObject.VarToCoeff.keys())
- #print [name for name, col in \
- # sorted(self._ColumnMap.items(),key=itemgetter(1))]
- assert set(ObjObject.VarToCoeff.keys()) == \
- set([name for name, col in \
- sorted(list(self._ColumnMap.items()),
- key=itemgetter(1))][:len(ObjObject.VarToCoeff)])
-
- if global_reference_scenario:
- (MatrixEntries_ConstrToRow_Map,
- SecondStageConstrOrder,
- self._num_first_stage_constraints,
- self._num_second_stage_constraints) = \
- self.sort_write_lp(ph,
- ObjObject,
- ConstraintMap,
- StageToConstraintMap,
- remaining_lpfile_rows)
- else:
- # for the matrix.sc file we need to know which constraint is
- # in which row:
- MatrixEntries_ConstrToRow_Map = {}
- FirstStage = StageToConstraintMap['FirstStage']
- ConstrNames = set(ConstraintMap.keys())
- FirstStageConstrOrder = sorted(ConstrNames.intersection(FirstStage))
- SecondStageConstrOrder = sorted(ConstrNames - set(FirstStage))
-
- # so that we know in which rows the constraints with
- # stochastic data are (first row has index 0)
- self._num_first_stage_constraints = 0
- self._num_second_stage_constraints = 0
- count_rows = -1
- for name in FirstStageConstrOrder:
- count_rows += 1
- MatrixEntries_ConstrToRow_Map[name] = count_rows
- self._num_first_stage_constraints += 1
- for name in SecondStageConstrOrder:
- count_rows += 1
- MatrixEntries_ConstrToRow_Map[name] = count_rows
- self._num_second_stage_constraints += 1
-
- if not getattr(self._reference_scenario_instance,
- _disable_stoch_rhs_flagname,
- _disable_stoch_rhs_default):
- self._num_stochastic_rhs = 0
- self._write_rhs_sc(ph,
- ConstraintMap,
- SecondStageConstrOrder)
-
- if not getattr(self._reference_scenario_instance,
- _disable_stoch_costs_flagname,
- _disable_stoch_costs_default):
- self._num_stochastic_costs = 0
- self._write_obj_sc(ph, ObjObject)
-
- if not getattr(self._reference_scenario_instance,
- _disable_stoch_matrix_flagname,
- _disable_stoch_matrix_default):
- self._num_stochastic_matrix_entries = 0
- self._write_matrix_sc(
- ph,
- ConstraintMap,
- SecondStageConstrOrder,
- MatrixEntries_ConstrToRow_Map,
- include_position_section=global_reference_scenario)
-
- if global_reference_scenario:
- return (self.input_file_name_list,
- self._FirstStageVars,
- self._FirstStageVarIdMap,
- self._FirstStageDerivedVars,
- self._FirstStageDerivedVarIdMap,
- self._SecondStageVars,
- self._SecondStageVarIdMap,
- self._StageCostVarStageMap,
- self._num_stochastic_rhs,
- self._num_stochastic_matrix_entries,
- self._num_stochastic_costs,
- self._num_first_stage_constraints,
- self._num_second_stage_constraints,
- self._count_constraint_ONE_VAR_CONSTANT)
-
- # Write the lp file for a scenario and return the maximum
- # character count for names in the file
- def _write_reference_scenario_lp(self, ph):
-
- # Make sure the pyomo plugins are loaded
- import pyomo.environ
- lp_file_writer = pyomo.repn.plugins.cpxlp.ProblemWriter_cpxlp()
-
- # Write the LP file
- print(("Writing LP file to %s" % (self._lpfilename,)))
- scenariotree_vars = \
- self._reference_scenario_instance.\
- _ScenarioTreeSymbolMap.bySymbol
- rootnode_vars = \
- ph._scenario_tree.findRootNode()._standard_variable_ids
- firststage_ids = \
- set(id(vardata) for scenariotree_id, vardata \
- in iteritems(scenariotree_vars) \
- if scenariotree_id in rootnode_vars)
- capabilities = lambda x: True
- text_labeler = TextLabeler()
- labeler = lambda x: text_labeler(x) + \
- (""
- if ((not isinstance(x, _VarData)) or \
- (id(x) not in firststage_ids)) else \
- self._firststage_var_suffix)
- output_filename, symbol_map = \
- lp_file_writer(self._reference_scenario_instance,
- self._lpfilename,
- capabilities,
- {'labeler' : labeler})
- # Plugins no longer need/support calls to deactivate()
- #lp_file_writer.deactivate()
- assert output_filename == self._lpfilename
- #print("\nModel written\n")
-
- # Return the max symbol length (for siphelp)
- max_name_len = max(len(symbol) for symbol in symbol_map.bySymbol)
- return max_name_len, symbol_map
-
- def sort_write_lp(self, ph, ObjObject, ConstraintMap, StageToConstraintMap, remaining_lpfile_rows):
-
- try:
- #print("\nWrite the LP file for dd in sorted_LPfile.lp\n")
- lp = open("sorted_LPfile.lp", "wt")
- except IOError:
- print("IO Error so that sorted_LPfile.lp cannot be created.")
- sys.out(1)
-
- # keep track of input file names
- self.input_file_name_list.append('sorted_LPfile.lp')
-
- # for the matrix.sc file we need to know which constraint is
- # in which row:
- MatrixEntries_ConstrToRow_Map = {}
-
- lp.write(ObjObject[0]+"\n "+ObjObject[1]+":\n")
- self.print_coeff_var_from_map(ObjObject[2], lp)
-
- # assume blank line before and after constraint indicator
- lp.write("\ns.t.\n")
-
- FirstStage = StageToConstraintMap['FirstStage']
- ConstrNames = set(ConstraintMap.keys())
- FirstStageConstrOrder = sorted(ConstrNames.intersection(FirstStage))
- SecondStageConstrOrder = sorted(ConstrNames - set(FirstStage))
-
- # so that we know in which rows the constraints with
- # stochastic data are (first row has index 0)
- count_rows = -1
-
- self._num_first_stage_constraints = 0
- self._num_second_stage_constraints = 0
- for name in FirstStageConstrOrder:
- lp.write("\n"+name+":\n")
- count_rows += 1
- MatrixEntries_ConstrToRow_Map[name] = count_rows
- lp_con = ConstraintMap[name]
- self.print_coeff_var_from_map(lp_con[0], lp)
- lp.write(lp_con[1]+" "+lp_con[2]+"\n")
- self._num_first_stage_constraints += 1
-
- for name in SecondStageConstrOrder:
- lp.write("\n"+name+":\n")
- count_rows += 1
- MatrixEntries_ConstrToRow_Map[name] = count_rows
- lp_con = ConstraintMap[name]
- self.print_coeff_var_from_map(lp_con[0], lp)
- lp.write(lp_con[1]+" "+lp_con[2]+"\n")
- self._num_second_stage_constraints += 1
-
- # print the remaining rows of the lp file
- for row in range(len(remaining_lpfile_rows)):
- lp.write("\n")
- for i in range(len(remaining_lpfile_rows[row])):
- lp.write(remaining_lpfile_rows[row][i]+" ")
-
- lp.close()
-
- return MatrixEntries_ConstrToRow_Map, SecondStageConstrOrder, self._num_first_stage_constraints, self._num_second_stage_constraints
-
- def _read_parse_lp(self, lp_filename):
-
- # read and parse the lp file which was generated by
- # lp_file_writer above in post_ph_initialization(self, ph)
-
- # This class has the OBJ sense, the OBJ name and a
- # variable-value-dictionary
- ObjObject = LPFileObjClass()
-
- # The keys are the constraint names, value is a class with a
- # variable-value-dictionary, the comparator and the RHS.
- ConstraintMap = {}
-
- try:
- #print(("\nName of the lp file which will be read: "+str(lp_filename)+"\n"))
-#dlw Dec2014 lp_file = csv.reader(open(lp_filename, 'rb'), delimiter=' ', quotechar='|', skipinitialspace=True)
- lp_file = csv.reader(open(lp_filename, 'rt'), delimiter=' ', quotechar='|', skipinitialspace=True)
- except csv.Error as e:
- print((lp_filename+" is not found!"))
- sys.exit('file %s, line %d: %s' % (filename, f.line_num, e))
-
- # increment this only after you have processed the row
- list_lp_file = list(lp_file)[0:]
-
- CurrRow = 0
- CurrRow = self.SkipLPNullLines(CurrRow, list_lp_file)
-
- # assume it is a sense
- ObjObject.AssignSense(list_lp_file[CurrRow][0])
- CurrRow += 1
-
- CurrElem = 0
- # now assume we are on to the name
- name = self.ClearName(list_lp_file[CurrRow][CurrElem])
- ObjObject.AssignName(name)
- CurrRow, CurrElem = \
- self.LocalPostionUpdate(list_lp_file, CurrRow, CurrElem, 1)
-
- # send the pairs to the obj object
- # assume the obj is followed by a blank line!!!
- while list_lp_file[CurrRow] != []:
- LastCoeff = None
- # process the pairs
- if LastCoeff is not None:
- ObjObject.AddToMap(LastCoeff, list_lp_file[CurrRow][CurrElem])
- LastCoeff = None
- CurrRow, CurrElem = self.LocalPostionUpdate(list_lp_file, CurrRow, CurrElem, 1)
- elif 1+CurrElem == len(list_lp_file[CurrRow]):
- LastCoeff = list_lp_file[CurrRow][CurrElem]
- CurrRow, CurrElem = self.LocalPostionUpdate(list_lp_file, CurrRow, CurrElem, 1)
- else:
- ObjObject.AddToMap(list_lp_file[CurrRow][CurrElem], list_lp_file[CurrRow][CurrElem+1])
- LastCoeff = None
- CurrRow, CurrElem = self.LocalPostionUpdate(list_lp_file, CurrRow, CurrElem, 2)
-
- if LastCoeff is not None:
- print("\nerror mismatched pairs in objective function")
- exit(1)
-
- #print("ObjObject = "+str(ObjObject()))
-
- CurrRow = self.SkipLPNullLines(CurrRow, list_lp_file)
- CurrElem = 0
- # check if we reached the constraints
- if (('s.t.' in list_lp_file[CurrRow][CurrElem]) or \
- ('st' in list_lp_file[CurrRow][CurrElem]) or \
- ('subject to' in list_lp_file[CurrRow][CurrElem])):
-
- CurrRow += 1
- CurrRow = self.SkipLPNullLines(CurrRow, list_lp_file)
-
- while list_lp_file[CurrRow][0].strip() != 'bounds':
-
- # If this constraint appears in the LP file it means the
- # objective included constant terms
- if "c_e_ONE_VAR_CONSTANT" in list_lp_file[CurrRow][0]:
- self._count_constraint_ONE_VAR_CONSTANT = 1
- break
-
- CurrConstraintName = self.ClearName(list_lp_file[CurrRow][CurrElem])
- ConstraintMap[CurrConstraintName] = LPFileConstraintClass()
- if len(list_lp_file[CurrRow]) > 1:
- CurrElem += 1
- else:
- CurrRow += 1
-
- LastCoeff = None
- end = ''
- while list_lp_file[CurrRow] != []:
- # process the pairs, keep track of last coefficient and
- # variable, just in case we reach the end of the
- # constraint (AssignComparator and AssignRHS need them)
- if LastCoeff is not None:
- end = ConstraintMap[CurrConstraintName].AddToMap(LastCoeff, list_lp_file[CurrRow][CurrElem])
- LastVar = list_lp_file[CurrRow][CurrElem]
- #print "in 1. IF: LastCoeff, LastVar =", LastCoeff, LastVar; sys.stdout.flush()
- if end != 'EndOfConstraint':
- LastCoeff = None
- CurrRow, CurrElem = self.LocalPostionUpdate(list_lp_file, CurrRow, CurrElem, 1)
- elif 1+CurrElem == len(list_lp_file[CurrRow]):
- LastCoeff = list_lp_file[CurrRow][CurrElem]
- CurrRow, CurrElem = self.LocalPostionUpdate(list_lp_file, CurrRow, CurrElem, 1)
- #print "in 1. ElIF: LastCoeff=", LastCoeff; sys.stdout.flush()
- elif 2+CurrElem <= len(list_lp_file[CurrRow]):
- end = ConstraintMap[CurrConstraintName].AddToMap(list_lp_file[CurrRow][CurrElem], list_lp_file[CurrRow][CurrElem+1])
- LastCoeff = list_lp_file[CurrRow][CurrElem]
- LastVar = list_lp_file[CurrRow][CurrElem+1]
- #print "in 2. ElIF: LastCoeff, LastVar =", LastCoeff, LastVar; sys.stdout.flush()
- if end != 'EndOfConstraint':
- LastCoeff = None
- CurrRow, CurrElem = self.LocalPostionUpdate(list_lp_file, CurrRow, CurrElem, 2)
- if end == 'EndOfConstraint':
- #print "\nend of constraint"
- ConstraintMap[CurrConstraintName].AssignComparator(LastCoeff)
- ConstraintMap[CurrConstraintName].AssignRHS(LastVar)
- #print "in 2. IF: LastCoeff, LastVar =", LastCoeff, LastVar; sys.stdout.flush()
- CurrRow += 2
- CurrElem = 0
- break
-
- if self._count_constraint_ONE_VAR_CONSTANT:
- # if this constraint appears make sure it appears as
- # the last constraint in the LP file and will be
- # included with the remaining_lpfile_rows
- assert "c_e_ONE_VAR_CONSTANT" in list_lp_file[CurrRow][0]
- assert CurrRow < len(list_lp_file)
-
- remaining_lpfile_rows = []
- while CurrRow < len(list_lp_file):
- remaining_lpfile_rows.append(list_lp_file[CurrRow])
- CurrRow += 1
- AllConstraintNames = list(ConstraintMap.keys())
-
- return ObjObject, ConstraintMap, remaining_lpfile_rows, AllConstraintNames
-
- def print_coeff_var_from_map(self, VarToCoeffMap, lp_file):
- keys = list(VarToCoeffMap.keys())
- #string sorting
- keys.sort()
- line_template = "%+"+_precision_string+" %s\n"
- for key in keys:
- lp_file.write(line_template % (VarToCoeffMap[key], key))
-
- def SkipLPNullLines(self, CurrRow, lp_file):
- # skip over comment lines and blank lines (assuming comment
- # character leads)
- while (lp_file[CurrRow] == [] or lp_file[CurrRow][0].startswith("\\")):
- CurrRow += 1
- if CurrRow >= len(lp_file):
- print("Error: past end of file while skipping null lines")
- sys.exit(1)
- return CurrRow
-
- def ClearName(self, name):
- if name[-1] == ':':
- name = name[:-1]
- return name
-
- def LocalPostionUpdate(self, lp_file, CurrRow, CurrElem, step):
- if ((step !=1) and (step != 2)):
- print(("unexpected step length ="+str(step)))
- CurrElem += step
- if CurrElem > len(lp_file[CurrRow])-1:
- CurrRow += 1
- CurrElem = 0
- return CurrRow, CurrElem
-
- def _Populate_StageVars(self, ph, LP_symbol_map):
-
- all_vars_cnt = 0
- piecewise_blocks = []
- for block in self._reference_scenario_instance.block_data_objects(active=True):
- all_vars_cnt += len(list(block.component_data_objects(Var, descend_into=False)))
- if isinstance(block, (Piecewise, _PiecewiseData)):
- piecewise_blocks.append(block)
-
- rootnode = ph._scenario_tree.findRootNode()
-
- stagetwo = ph._scenario_tree._stages[1]
- leafnode = self._reference_scenario._leaf_node
- LP_byObject = LP_symbol_map.byObject
- for scenario_tree_id, vardata in \
- iteritems(self._reference_scenario_instance.\
- _ScenarioTreeSymbolMap.bySymbol):
- if vardata.is_expression_type():
- continue
- try:
- LP_name = LP_byObject[id(vardata)]
- except KeyError:
- raise ValueError("Variable with name '%s' was declared "
- "on the scenario tree but did not appear "
- "in the reference scenario LP file."
- % (vardata.name))
- if scenario_tree_id in rootnode._standard_variable_ids:
- self._FirstStageVars.append(LP_name)
- self._FirstStageVarIdMap[LP_name] = scenario_tree_id
- elif (scenario_tree_id in rootnode._derived_variable_ids):
- self._FirstStageDerivedVars.append(LP_name)
- self._FirstStageDerivedVarIdMap[LP_name] = scenario_tree_id
- elif (scenario_tree_id in leafnode._variable_ids):
- self._SecondStageVars.append(LP_name)
- self._SecondStageVarIdMap[LP_name] = scenario_tree_id
- else:
- print(("%s %s" % (str(scenario_tree_id), str(vardata.name))))
- # More than two stages?
- assert False
- self._AllVars.append(LP_name)
-
- for stage in ph._scenario_tree._stages:
- cost_variable_name, cost_variable_index = \
- stage.nodes[0]._cost_variable
- stage_cost_component = \
- self._reference_scenario_instance.\
- find_component(cost_variable_name)
- if stage_cost_component.ctype is not Expression:
- LP_name = LP_byObject[id(stage_cost_component[cost_variable_index])]
- assert LP_name not in self._FirstStageVars
- if LP_name not in self._AllVars:
- assert LP_name not in self._SecondStageVars
- self._SecondStageVars.append(LP_name)
- self._StageCostVarStageMap[LP_name] = stage._name
- self._AllVars.append(LP_name)
-
- # The *ONLY* case where we allow variables to exist on the
- # model that were not declared on the scenario tree is when
- # they are autogenerated by a Piecewise component
-
- # For now we just assume all auxiliary Piecewise variables
- # are SecondStage
- for block in piecewise_blocks:
- for vardata in block.component_data_objects(Var,
- active=True,
- descend_into=False):
- LP_name = LP_byObject[id(vardata)]
- self._SecondStageVars.append(LP_name)
- self._SecondStageVarIdMap[LP_name] = scenario_tree_id
- self._AllVars.append(LP_name)
-
- # Make sure every variable on the model has been
- # declared on the scenario tree
- if len(self._AllVars) != all_vars_cnt:
- print("**** THERE IS A PROBLEM ****")
- print("Not all model variables are on the scenario tree. Investigating...")
- print("len(self._AllVars)=", len(self._AllVars), "all_vars_cnt=", all_vars_cnt)
- all_vars = set()
- tmp_buffer = {}
- for block in self._reference_scenario_instance.block_data_objects(active=True):
- all_vars.update(vardata.getname(True, tmp_buffer) \
- for vardata in block.component_data_objects(Var, descend_into=False))
- print(("Number of Variables Found on Model: "+str(len(all_vars))))
- print ("writing all_vars.dat")
- with open("allvars.dat",'w') as f:
- f.write("allvars.dat\n")
- for av in all_vars:
- f.write((str(av)+"\n"))
- tree_vars = set()
- for scenario_tree_id, vardata in \
- iteritems(self._reference_scenario_instance.\
- _ScenarioTreeSymbolMap.bySymbol):
- tree_vars.add(vardata.name)
- print(("Number of Scenario Tree Variables (found in ddsip LP file): "+str(len(tree_vars))))
- print ("writing tree_vars.dat")
- with open("tree_vars.dat",'w') as f:
- f.write("tree_vars.dat\n")
- for tv in tree_vars:
- f.write((str(tv)+"\n"))
- cost_vars = set()
- for stage in ph._scenario_tree._stages:
- cost_variable_name, cost_variable_index = \
- stage.nodes[0]._cost_variable
- stage_cost_component = \
- self._reference_scenario_instance.\
- find_component(cost_variable_name)
- if stage_cost_component.ctype is not Expression:
- cost_vars.add(stage_cost_component[cost_variable_index].name)
- print(("Number of Scenario Tree Cost Variables (found in ddsip LP file): "+str(len(cost_vars))))
- print ("writing cost_vars.dat")
- with open("cost_vars.dat","w") as f:
- f.write("cost_vars.dat\n")
- for cv in cost_vars:
- f.write((str(cv)+"\n"))
- print("Variables Missing from Scenario Tree (or LP file):")
- MissingSet = all_vars-(tree_vars+cost_vars)
- for ims in MissingSet:
- print (" ",ims)
- raise ValueError("Missing scenario tree variable declarations")
-
- # A necessary but not sufficient sanity check to make sure the
- # second stage variable sets are the same for all
- # scenarios. This is not required by pysp, but I think this
- # assumption is made in the rest of the code here
- for tree_node in stagetwo._tree_nodes:
- assert len(leafnode._variable_ids) == \
- len(tree_node._variable_ids)
-
- assert len(ph._scenario_tree._stages) == 2
-
- # we are doing string-sort
- self._FirstStageVars.sort()
- self._SecondStageVars.sort()
- self._AllVars.sort()
-
- def _Constraints_Stages(self, ph, LP_symbol_map):
-
- # save the output in a map: key is constraint name, value is a
- # constraintindex-stage-map
- #ConstraintToStageMap = {}
- # inverse map to ConstraintToStageMap: key is stage name,
- # value is constraintname (which includes the index)
- StageToConstraintMap = {}
- # auxiliary list for StageToConstraintMap
- FirstStageConstrNameToIndex = []
- # auxiliary list for StageToConstraintMap
- SecondStageConstrNameToIndex = []
-
- stage1 = ph._scenario_tree._stages[0]
- stage2 = ph._scenario_tree._stages[1]
-
- reference_instance = self._reference_scenario_instance
- LP_byObject = LP_symbol_map.byObject
- # deal with the fact that the LP writer prepends constraint
- # names with things like 'c_e_', 'c_l_', etc depending on the
- # constraint bound type and will even split a constraint into
- # two constraints if it has two bounds
-
- reference_scenario = self._reference_scenario
-
- LP_reverse_alias = dict()
- for symbol in LP_symbol_map.bySymbol:
- LP_reverse_alias[symbol] = []
- for alias, obj_weakref in iteritems(LP_symbol_map.aliases):
- LP_reverse_alias[LP_byObject[id(obj_weakref())]].append(alias)
- for block in reference_instance.block_data_objects(active=True):
- block_repn = getattr(block, "_repn", None)
- if block_repn is None:
- raise ValueError("Unable to find _repn ComponentMap "
- "on block %s" % (block.name))
- isPiecewise = False
- if isinstance(block, (Piecewise, _PiecewiseData)):
- isPiecewise = True
- for constraint_data in block.component_data_objects(
- SOSConstraint,
- active=True,
- descend_into=False):
- raise TypeError("SOSConstraints are not handled by the "
- "DDSIP interface: %s"
- % (constraint_data.name))
- for constraint_data in block.component_data_objects(
- Constraint,
- active=True,
- descend_into=False):
- LP_name = LP_byObject[id(constraint_data)]
- # if it is a range constraint this will account for
- # that fact and hold and alias for each bound
- LP_aliases = LP_reverse_alias[LP_name]
- assert len(LP_aliases) > 0
- if not isPiecewise:
- constraint_node = reference_scenario.constraintNode(
- constraint_data,
- repn=block_repn.get(constraint_data),
- instance=reference_instance)
- stage_index = reference_scenario.node_stage_index(constraint_node)
- else:
- stage_index = 1
- if stage_index == 0:
- FirstStageConstrNameToIndex.extend(LP_aliases)
- elif stage_index == 1:
- SecondStageConstrNameToIndex.extend(LP_aliases)
- else:
- # More than two stages?
- assert False
-
- StageToConstraintMap['FirstStage'] = FirstStageConstrNameToIndex
- StageToConstraintMap['SecondStage'] = SecondStageConstrNameToIndex
-
- return StageToConstraintMap
-
- def _write_rhs_sc(self, ph, ConstraintMap, SecondStageConstrOrder):
-
- with open(self._rhsfilename, 'wt') as f:
-
- if isinstance(ph, _PHSolverServer):
- probability = ph._uncompressed_scenario_tree.get_scenario(
- self._reference_scenario._name)._probability
- else:
- probability = self._reference_scenario._probability
- header = ("scenario"+str(self._scenario_index)+"\n"
- +str(probability)+"\n")
- f.write(header)
-
- self._num_stochastic_rhs = 0
- for name in SecondStageConstrOrder:
- f.write((("%"+_precision_string+"\n")
- % (float(ConstraintMap[name][2]))))
- self._num_stochastic_rhs += 1
-
- def _write_obj_sc(self, ph, ObjObject):
-
- with open(self._objfilename, 'wt') as f:
-
- f.write("scenario"+str(self._scenario_index)+"\n")
- self._num_stochastic_costs = 0
- varnames_appearing = sorted(ObjObject.VarToCoeff.keys())
- for name in self._ColumnMap:
- if name not in self._FirstStageVars:
- if name in varnames_appearing:
- f.write(("%"+_precision_string+"\n")
- % (ObjObject.VarToCoeff[name]))
- else:
- f.write("0\n")
- self._num_stochastic_costs += 1
-
- def _write_matrix_sc(self,
- ph,
- ConstraintMap,
- SecondStageConstrOrder,
- MatrixEntries_ConstrToRow_Map,
- include_position_section=False):
-
- with open(self._matfilename, 'wt') as f:
-
- if include_position_section:
- f.write('position\n')
- for conname in SecondStageConstrOrder:
- # either it follows with what ddsip help writes in
- # the rows+cols files
- row = self._RowMap[conname]
- # or it follows our ordering based off of
- # stochastic rows following first-stage rows
- ###row = MatrixEntries_ConstrToRow_Map[conname]
- # or something else entirely ?????
-
- var_coeffs = ConstraintMap[conname].VarToCoeff
- for varname in sorted(var_coeffs):
- f.write("%s\n%s\n"
- % (row,
- self._ColumnMap[varname]))
-
- self._num_stochastic_matrix_entries = 0
- f.write("scenario"+str(self._scenario_index)+"\n")
- for conname in SecondStageConstrOrder:
- # either it follows with what ddsip ddhelp writes in
- # the rows+cols files
- row = self._RowMap[conname]
- # or it follows our ordering based off of
- # stochastic rows following first-stage
- ###row = MatrixEntries_ConstrToRow_Map[conname]
- # or something else entirely ?????
-
- var_coeffs = ConstraintMap[conname].VarToCoeff
- for varname in sorted(var_coeffs):
- f.write(("%"+_precision_string+"\n")
- % (var_coeffs[varname]))
- self._num_stochastic_matrix_entries += 1
- print(("%s %s" % list(map(str,(self._reference_scenario._name, self._num_stochastic_matrix_entries)))))
-
-class ddextension(pyomo.common.plugin.SingletonPlugin):
-
- pyomo.common.plugin.implements(phextension.IPHExtension)
-
- def __init__(self):
-
- self._lpfilename = "ddlpfile.lp"
- self._firststage_var_suffix = '__DDSIP_FIRSTSTAGE'
- self._reference_scenario = None
-
- # keep track of input file names
- self.input_file_name_list = []
- self._FirstStageVars = []
- self._FirstStageVarIdMap = {}
- self._FirstStageDerivedVars = []
- self._FirstStageDerivedVarIdMap = {}
- self._SecondStageVars = []
- self._SecondStageVarIdMap = {}
- self._StageCostVarStageMap = {}
- self._num_stochastic_rhs = None
- self._num_stochastic_matrix_entries = None
- self._num_stochastic_costs = None
- self._num_first_stage_constraints = None
- self._num_second_stage_constraints = None
- self._count_constraint_ONE_VAR_CONSTANT = 0
-
- def reset(self, ph):
- self.__init__()
-
- def pre_ph_initialization(self, ph):
- pass
-
- def post_instance_creation(self, ph):
- pass
-
- def post_ph_initialization(self, ph):
-
- print("Hello from the post_ph_initialization callback in ddphextension")
-
- self._ScenarioVector = \
- sorted(ph._scenario_tree._scenario_map.keys())
-
- self._reference_scenario = \
- ph._scenario_tree._scenario_map[self._ScenarioVector[0]]
- reference_scenario_name = self._reference_scenario._name
-
- if ph._scenario_tree.contains_bundles():
- print("** The DDSIP interface is ignoring scenario bundles **")
-
- print(("\nUsing %s as reference scenario" % (reference_scenario_name)))
-
- if isinstance(ph._solver_manager,
- pyomo.solvers.plugins.smanager.phpyro.SolverManager_PHPyro):
-
- if ph._scenario_tree.contains_bundles():
-
- scenario_to_bundle_map = {}
- for scenario_index, scenario_name in enumerate(self._ScenarioVector, 1):
- for bundle in ph._scenario_tree._scenario_bundles:
- if scenario_name in bundle._scenario_names:
- scenario_to_bundle_map[scenario_name] = bundle._name
-
- ah = transmit_external_function_invocation_to_worker(
- ph,
- scenario_to_bundle_map[reference_scenario_name],
- thisfile,
- "Write_DDSIP_Input",
- function_args=(reference_scenario_name,
- self._ScenarioVector.index(reference_scenario_name)+1,
- self._firststage_var_suffix),
- function_kwds={'global_reference_scenario':True},
- return_action_handle=True)
- ph._solver_manager.wait_all([ah])
- (self.input_file_name_list,
- self._FirstStageVars,
- self._FirstStageVarIdMap,
- self._FirstStageDerivedVars,
- self._FirstStageDerivedVarIdMap,
- self._SecondStageVars,
- self._SecondStageVarIdMap,
- self._StageCostVarStageMap,
- self._num_stochastic_rhs,
- self._num_stochastic_matrix_entries,
- self._num_stochastic_costs,
- self._num_first_stage_constraints,
- self._num_second_stage_constraints,
- self._count_constraint_ONE_VAR_CONSTANT) = \
- ph._solver_manager.get_results(ah)
-
- assert os.path.exists(os.path.join(os.getcwd(),'rows+cols'))
- ahs = []
- for scenario_index, scenario_name in enumerate(self._ScenarioVector, 1):
- if scenario_name != reference_scenario_name:
- ahs.append(transmit_external_function_invocation_to_worker(
- ph,
- scenario_to_bundle_map[scenario_name],
- thisfile,
- "Write_DDSIP_Input",
- function_args=(scenario_name,
- scenario_index,
- self._firststage_var_suffix),
- function_kwds={'global_reference_scenario':False},
- return_action_handle=True))
- ph._solver_manager.wait_all(ahs)
-
- else:
-
- ah = transmit_external_function_invocation_to_worker(
- ph,
- reference_scenario_name,
- thisfile,
- "Write_DDSIP_Input",
- function_args=(reference_scenario_name,
- self._ScenarioVector.index(reference_scenario_name)+1,
- self._firststage_var_suffix),
- function_kwds={'global_reference_scenario':True},
- return_action_handle=True)
- ph._solver_manager.wait_all([ah])
- (self.input_file_name_list,
- self._FirstStageVars,
- self._FirstStageVarIdMap,
- self._FirstStageDerivedVars,
- self._FirstStageDerivedVarIdMap,
- self._SecondStageVars,
- self._SecondStageVarIdMap,
- self._StageCostVarStageMap,
- self._num_stochastic_rhs,
- self._num_stochastic_matrix_entries,
- self._num_stochastic_costs,
- self._num_first_stage_constraints,
- self._num_second_stage_constraints,
- self._count_constraint_ONE_VAR_CONSTANT) = \
- ph._solver_manager.get_results(ah)
-
- assert os.path.exists(os.path.join(os.getcwd(),'rows+cols'))
- ahs = []
- for scenario_index, scenario_name in enumerate(self._ScenarioVector, 1):
- if scenario_name != reference_scenario_name:
- ahs.append(transmit_external_function_invocation_to_worker(
- ph,
- scenario_name,
- thisfile,
- "Write_DDSIP_Input",
- function_args=(scenario_name,
- scenario_index,
- self._firststage_var_suffix),
- function_kwds={'global_reference_scenario':False},
- return_action_handle=True))
- ph._solver_manager.wait_all(ahs)
- else:
- (self.input_file_name_list,
- self._FirstStageVars,
- self._FirstStageVarIdMap,
- self._FirstStageDerivedVars,
- self._FirstStageDerivedVarIdMap,
- self._SecondStageVars,
- self._SecondStageVarIdMap,
- self._StageCostVarStageMap,
- self._num_stochastic_rhs,
- self._num_stochastic_matrix_entries,
- self._num_stochastic_costs,
- self._num_first_stage_constraints,
- self._num_second_stage_constraints,
- self._count_constraint_ONE_VAR_CONSTANT) = \
- Write_DDSIP_Input(ph, ph._scenario_tree, self._reference_scenario,
- reference_scenario_name,
- self._ScenarioVector.index(reference_scenario_name)+1,
- self._firststage_var_suffix,
- global_reference_scenario=True)
-
- for scenario_index, scenario_name in enumerate(self._ScenarioVector, 1):
- if scenario_name != reference_scenario_name:
- Write_DDSIP_Input(ph, ph._scenario_tree, ph._scenario_tree.get_scenario(scenario_name),
- scenario_name,
- scenario_index,
- self._firststage_var_suffix,
- global_reference_scenario=False)
-
- if self._num_stochastic_rhs is None:
- print("")
- print(("Detected "+_disable_stoch_rhs_flagname+"=True"))
- print("Constraint rhs entries are assumed to be deterministic.")
- else:
- assert self._num_stochastic_rhs > 0
- rhs_filename = 'rhs.sc'
- RHS_file = open(rhs_filename,'wt')
- RHS_file.close()
- assert self._ScenarioVector[0] == reference_scenario_name
- os.system('cat '+rhs_filename+"."+reference_scenario_name+" >> "+rhs_filename)
- os.remove(rhs_filename+"."+reference_scenario_name)
- for scenario_name in self._ScenarioVector[1:]:
- assert os.path.exists(rhs_filename+"."+scenario_name)
- os.system('cat '+rhs_filename+"."+scenario_name+" >> "+rhs_filename)
- os.remove(rhs_filename+"."+scenario_name)
- # keep track of input file names
- self.input_file_name_list.append(rhs_filename)
-
- if self._num_stochastic_costs is None:
- print("")
- print(("Detected "+_disable_stoch_costs_flagname+"=True"))
- print("Cost terms are assumed to be deterministic.")
- else:
- assert self._num_stochastic_costs > 0
- obj_filename = 'cost.sc'
- OBJ_file = open(obj_filename,'wt')
- OBJ_file.close()
- assert self._ScenarioVector[0] == reference_scenario_name
- os.system('cat '+obj_filename+"."+reference_scenario_name+" >> "+obj_filename)
- os.remove(obj_filename+"."+reference_scenario_name)
- for scenario_name in self._ScenarioVector[1:]:
- assert os.path.exists(obj_filename+"."+scenario_name)
- os.system('cat '+obj_filename+"."+scenario_name+" >> "+obj_filename)
- os.remove(obj_filename+"."+scenario_name)
- # keep track of input file names
- self.input_file_name_list.append(obj_filename)
-
- if self._num_stochastic_matrix_entries is None:
- print("")
- print(("Detected "+_disable_stoch_matrix_flagname+"=True"))
- print("Constraint matrix entries are assumed to be deterministic.")
- else:
- assert self._num_stochastic_matrix_entries > 0
- mat_filename = 'matrix.sc'
- MAT_file = open(mat_filename,'wt')
- MAT_file.close()
- assert self._ScenarioVector[0] == reference_scenario_name
- os.system('cat '+mat_filename+"."+reference_scenario_name+" >> "+mat_filename)
- os.remove(mat_filename+"."+reference_scenario_name)
- for scenario_name in self._ScenarioVector[1:]:
- assert os.path.exists(mat_filename+"."+scenario_name)
- os.system('cat '+mat_filename+"."+scenario_name+" >> "+mat_filename)
- os.remove(mat_filename+"."+scenario_name)
- # keep track of input file names
- self.input_file_name_list.append(mat_filename)
-
- self.write_sip_in(ph)
- self.write_input2sip(ph)
- print("ddextension post_ph_initialization callback done")
-
- def post_iteration_0_solves(self, ph):
- pass
-
- def post_iteration_0(self, ph):
- pass
-
- def pre_iteration_k_solves(self, ph):
- pass
-
- def post_iteration_k_solves(self, ph):
- pass
-
- def post_iteration_k(self, ph):
- pass
-
- def post_ph_execution(self, ph):
-
- self.write_start_in(ph)
- # Write this file again now that we have weights
- # and variable starts
- self.write_input2sip(ph)
- #sipout = 'sipout_good'
- #os.system('rm -rf '+sipout)
- #os.system(_ddsip_exe+' < 2sip')
- #assert os.path.exists(sipout) and os.path.isdir(sipout)
- #assert os.path.exists(os.path.join(sipout,'solution.out'))
- #self._load_ddsip_solution(ph, os.path.join(sipout,'solution.out'))
-
- def write_sip_in(self, ph):
- try:
- print("\n\nWrite dd input file: sip.in \n")
- sipin = open("sip.in", "wt")
- except IOError:
- print("sip.in cannot be created!")
- sys.exit(1)
-
- # keep track of input file names
- self.input_file_name_list.append('sip.in')
-
- NumberOfFirstStageVars = len(self._FirstStageVars)
- # Account for the extra ONE_VAR_CONSTANT variable that
- # shows up in every Pyomo LP file
- NumberOfSecondStageVars = (len(self._SecondStageVars) + \
- len(self._FirstStageDerivedVars) + \
- 1)
-
- NumberOfStochasticRHS = self._num_stochastic_rhs
- if NumberOfStochasticRHS is None:
- NumberOfStochasticRHS = 0
-
- NumberOfStochasticCosts = self._num_stochastic_costs
- if NumberOfStochasticCosts is None:
- NumberOfStochasticCosts = 0
-
- NumberOfStochasticMatrixEntries = self._num_stochastic_matrix_entries
- if NumberOfStochasticMatrixEntries is None:
- NumberOfStochasticMatrixEntries = 0
-
- NumberOfFirstStageConstraints = self._num_first_stage_constraints
- # Account for the c_e_ONE_VAR_CONSTANT constraint if it appeared
- # (i.e., the objective had a constant term)
- NumberOfSecondStageConstraints = (self._num_second_stage_constraints + \
- self._count_constraint_ONE_VAR_CONSTANT)
-
- NumberOfScenarios = len(self._ScenarioVector)
-
- sipin.write('BEGIN \n\n\n')
- sipin.write('FIRSTCON '+str(NumberOfFirstStageConstraints)+'\n')
- sipin.write('FIRSTVAR '+str(NumberOfFirstStageVars)+'\n')
- sipin.write('SECCON '+str(NumberOfSecondStageConstraints)+'\n')
- sipin.write('SECVAR '+str(NumberOfSecondStageVars)+'\n')
- sipin.write('POSTFIX '+self._firststage_var_suffix+'\n')
- sipin.write('SCENAR '+str(NumberOfScenarios)+'\n')
-
- sipin.write('STOCRHS '+str(NumberOfStochasticRHS)+'\n')
- sipin.write('STOCCOST '+str(NumberOfStochasticCosts)+'\n')
- sipin.write('STOCMAT '+str(NumberOfStochasticMatrixEntries)+'\n')
-
- sipin.write("\n\nCPLEXBEGIN\n")
- sipin.write('1035 0 * Output on screen indicator\n')
- sipin.write('2008 0.001 * Absolute Gap\n')
- sipin.write('2009 0.001 * Relative Gap\n')
- sipin.write('1039 1200 * Time limit\n')
- sipin.write('1016 1e-9 * simplex feasibility tolerance\n')
- sipin.write('1014 1e-9 * simplex optimality tolerance\n')
- sipin.write('1065 40000 * Memory available for working storage\n')
- sipin.write('2010 1e-20 * integrality tolerance\n')
- sipin.write('2008 0 * Absolute gap\n')
- sipin.write('2020 0 * Priority order\n')
- sipin.write('2012 4 * MIP display level\n')
- sipin.write('2053 2 * disjunctive cuts\n')
- sipin.write('2040 2 * flow cover cuts\n')
- sipin.write('2060 3 *DiveType mip strategy dive (probe=3)\n')
- sipin.write('CPLEXEND\n\n')
-
- sipin.write('MAXINHERIT 15\n')
- sipin.write('OUTLEV 5 * Debugging\n')
- sipin.write('OUTFIL 2\n')
- sipin.write('STARTI 0 * (1 to use the starting values from PH)\n')
- sipin.write('NODELI 2000 * Sipdual node limit\n')
- sipin.write('TIMELIMIT 964000 * Sipdual time limit\n')
- sipin.write('HEURISTIC 99 3 7 * Heuristics: Down, Up, Near, Common, Byaverage ...(12)\n')
- sipin.write('ABSOLUTEGAP 0.001 * Absolute duality gap allowed in DD\n')
- sipin.write('EEVPROB 1\n')
- sipin.write('RELATIVEGAP 0.01 * (0.02) Relative duality gap allowed in DD\n')
- sipin.write('BRADIRECTION -1 * Branching direction in DD\n')
- sipin.write('BRASTRATEGY 1 * Branching strategy in DD (1 = unsolved nodes first, 0 = best bound)\n')
- sipin.write('EPSILON 1e-13 * Branch epsilon for cont. var.\n')
- sipin.write('ACCURACY 5e-16 * Accuracy\n')
- sipin.write('BOUSTRATEGY 1 * Bounding strategy in DD\n')
- sipin.write('NULLDISP 1e-16\n')
- sipin.write('RELAXF 0\n')
- sipin.write('INTFIRST 1 * Branch first on integer\n')
- sipin.write('HOTSTART 4 * use previous solution as integer starting info\n')
-
- sipin.write('\n\nRISKMO 0 * Risk Model\n')
- sipin.write('RISKALG 1\n')
- sipin.write('WEIGHT 1\n')
- sipin.write('TARGET 54 * target if needed\n')
- sipin.write('PROBLEV .8 * probability level\n')
- sipin.write('RISKBM 11000000 * big M in \n')
-
- sipin.write('\n\nCBFREQ 0 * (50) Conic Bundle in every ith node\n')
- sipin.write('CBITLIM 20 * (10) Descent iteration limit for conic bundle method\n')
- sipin.write('CBTOTITLIM 50 * (1000) Total iteration limit for conic bundle method\n')
- sipin.write('NONANT 1 * Non-anticipativity representation\n')
- sipin.write('DETEQU 1 * Write Deterministic Equivalent\n')
-
- sipin.write('\n\nEND\n')
-
- sipin.close()
-
- def write_start_in(self, ph):
- ### Note: as of Dec 26, 2014, the ph object we have here does not have the
- ### scenario tree that has the solution, so this will not work
- ### I put this code in a solution writer to get what I need - DLW
- # keep track of input file names -- or not (dlw Dec 2014)
- ### self.input_file_name_list.append('start.in')
-
- # keep track of input file names
- self.input_file_name_list.append('start.in')
-
- print("\n\nWrite dd input file: start.in (** integers will be rounded ** )\n")
-
- # assume two-stage and we only want the first stage vars
- rootnode = ph._scenario_tree.findRootNode()
- """
- # note: DDSIP seems to get the names in alpha order from cplex
- VNames = []
- VVals = {}
- for variable_id in rootnode._variable_ids:
- var_name, index = rootnode._variable_ids[variable_id]
- name = str(var_name)+str(index)
- name = name.replace('.','_') # lp files are what matters here
- name = name.replace(',',':')
- name = name.replace(' ','')
- VNames.append(name)
- ### VVals[name] = rootnode._solution[variable_id]
- VVals[name] = rootnode.get_variable_value(var_name, index)
- VNames.sort()
- print ("Writing init solution:")
- with open('start.in', 'wt') as f:
- f.write("SOLUTION\n")
- for name in VNames:
- if rootnode.is_variable_discrete(variable_id):
- val = str(round(float(VVals[name])))
- else:
- val = str(float(VVals[name]))
- f.write(val+"\n")
- # aside: rounding changes slightly from Python 2.x to 3.x
- """
-
- rootnode_name = ph._scenario_tree.findRootNode()._name
- weights_vectors = []
- for scenarioname in self._ScenarioVector:
- scenario_weights = \
- ph._scenario_tree._scenario_map[scenarioname]._w[rootnode_name]
- scenario_weights_vector = []
- for varname_LP in self._FirstStageVars:
- scenario_tree_id = self._FirstStageVarIdMap[varname_LP]
- scenario_weights_vector.append(scenario_weights[scenario_tree_id])
- weights_vectors.append(scenario_weights_vector)
-
- # transpose to orient data for processing across scenarios
- weights_vectors = list(zip(*weights_vectors))
- num_scenarios = float(len(self._ScenarioVector))
-
- with open('PHWEIGHTS.csv','wt') as f:
- f.write("varname,"+(",".join(name for name in self._ScenarioVector))+"\n")
- for var_index, vector_w in enumerate(weights_vectors):
- varname = self._FirstStageVars[var_index]
- f.write(varname+","+(",".join(repr(w) for w in vector_w))+"\n")
-
- with open('start.in','wt') as f:
- f.write("SOLUTION\n")
- for name in self._FirstStageVars:
- scenario_tree_id = self._FirstStageVarIdMap[name]
- if rootnode.is_variable_discrete(scenario_tree_id):
- f.write(("%"+_precision_string+"\n")
- % (round(rootnode._xbars[scenario_tree_id])))
- else:
- f.write(("%"+_precision_string+"\n")
- % (rootnode._xbars[scenario_tree_id]))
-
- # keep track of input file names
- ###self.input_file_name_list.append('NONANT1.in')
-
- # NONANT 1 case:
- v1_transpose = []
- for vector_w in weights_vectors:
- # all but the first position
- vector_w_iter = vector_w[1:]
- tmp = [-w/num_scenarios \
- for w in vector_w_iter]
- v1_transpose.append(tmp)
- with open('NONANT1.in','wt') as fp:
- fp.write('MULTIPLIER\n')
- f.write('MULTIPLIER\n')
- # transpose and flatten
- for column in zip(*v1_transpose):
- fp.writelines(repr(x)+'\n' for x in column)
- f.writelines(repr(x)+'\n' for x in column)
-
- # NONANT 2 case:
- v2_transpose = []
- for vector_w in weights_vectors:
- w_sum = 0.0
- tmp = []
- # all but the last element
- vector_w_iter = vector_w[:-1]
- for w in vector_w_iter:
- w_sum += w
- tmp.append(w_sum/num_scenarios)
- v2_transpose.append(tmp)
- with open('NONANT2.in','wt') as f:
- f.write('MULTIPLIER\n')
- # tranpose and flatten
- for column in zip(*v2_transpose):
- f.writelines(repr(x)+'\n' for x in column)
-
- # NONANT 3 case:
- v3_transpose = []
- for vector_w in weights_vectors:
- wlast = vector_w[-1]
- # all but the last element
- vector_w_iter = vector_w[:-1]
- tmp = [(w-wlast)/num_scenarios for w in vector_w_iter]
- v3_transpose.append(tmp)
- with open('NONANT3.in','wt') as f:
- f.write('MULTIPLIER\n')
- # tranpose and flatten
- for column in zip(*v3_transpose):
- f.writelines(repr(x)+'\n' for x in column)
-
- def write_input2sip(self, ph):
- try:
- print("\n\nWrite dd input file: input2sip \n")
- f = open('2sip', 'w')
- except IOError:
- print("File input2sip cannot be created.")
- sys.exit(1)
-
- if 'sip.in' in self.input_file_name_list:
- f.write("sip.in\n")
- if 'sorted_LPfile.lp' in self.input_file_name_list:
- f.write("sorted_LPfile.lp\n")
- if 'model.ord' in self.input_file_name_list:
- f.write("model.ord\n")
- if 'rhs.sc' in self.input_file_name_list:
- f.write("rhs.sc\n")
- if 'cost.sc' in self.input_file_name_list:
- f.write("cost.sc\n")
- if 'matrix.sc' in self.input_file_name_list:
- f.write("matrix.sc\n")
- if 'order.dat' in self.input_file_name_list:
- f.write("order.dat\n")
- if 'start.in' in self.input_file_name_list:
- f.write("start.in\n")
-
- f.close()
-
- def _load_ddsip_solution(self, ph, filename):
-
- print("Loading DDSIP solution into scenario tree")
-
- # If stage costs are variables, then we will be able to
- # extract them from the DDSIP solution otherwise we will have
- # to evaludate the Expression component on the instances. If
- # this is parallel ph the instances will not be present so we
- # will not be able to determine individual stage costs. In
- # either case, set them to None now just in case we can obtain
- # values for them.
- for scenario in ph._scenario_tree._scenarios:
- for stage_name in scenario._stage_costs:
- scenario._stage_costs[stage_name] = None
-
- root_node_name = ph._scenario_tree.findRootNode()._name
- reference_leaf_node = self._reference_scenario._leaf_node
- with open(filename) as f:
- line = f.readline()
- while line:
- # Get first stage solution
- if "1. Best Solution" in line:
- first_stage_solution = {}
- assert "Variable name Value" in f.readline()
- assert "---" in f.readline()
- for i in range(len(self._FirstStageVarIdMap)):
- LP_name, sol = f.readline().strip().split()
- first_stage_solution[self._FirstStageVarIdMap[LP_name]] = float(sol)
- for scenario in ph._scenario_tree._scenarios:
- scenario._x[root_node_name].update(first_stage_solution)
- f.readline()
- elif "2. Bounds" in line:
- assert "Scenario Lower Bound (root) Upper Bound" in f.readline()
- assert "---" in f.readline()
- for i in range(len(ph._scenario_tree._scenarios)):
- scenario_id, obj_lb, obj_ub = f.readline().strip().split()
- scenario = ph._scenario_tree.get_scenario(self._ScenarioVector[int(scenario_id)-1])
- scenario._objective = float(obj_ub)
- scenario._cost = float(obj_ub)
- f.readline()
- elif "3. Quantiles" in line:
- # We don't use any information from this section
- while f.readline().strip():
- pass
- elif "4. Second-stage solutions" in line:
- for i in range(len(ph._scenario_tree._scenarios)):
- scenario_id = int(f.readline().strip().split()[1][:-1])
- scenario = ph._scenario_tree.get_scenario(self._ScenarioVector[scenario_id-1])
- scenario_firststage_solution = scenario._x[root_node_name]
- secondstage_solution = []
- # Add 1 for ONE_VAR_CONSTANT
- for j in range(len(self._SecondStageVars)+1):
- LP_name, sol = f.readline().strip().split()
- if LP_name in self._SecondStageVarIdMap:
- secondstage_solution.append((self._SecondStageVarIdMap[LP_name],float(sol)))
- elif LP_name in self._FirstStageDerivedVarIdMap:
- scenario_firststage_solution[self._FirstStageDerivedVarIdMap[LP_name]] = float(sol)
- elif LP_name in self._StageCostVarStageMap:
- scenario._stage_costs[self._StageCostVarStageMap[LP_name]._name] = float(sol)
- else:
- assert LP_name == "ONE_VAR_CONSTANT"
- leaf_node = scenario._leaf_node
- print(("%s %s" % list(map(str,(leaf_node._name, reference_leaf_node._name)))))
- scenario_secondstage_solution = scenario._x[leaf_node._name]
- for reference_node_variable_id, sol in secondstage_solution:
- this_node_variable_id = leaf_node._name_index_to_id[reference_leaf_node._variable_ids[reference_node_variable_id]]
- scenario_secondstage_solution[this_node_variable_id] = sol
-
- line = f.readline()
-
- print("Updating variable statistics after loading DDSIP solution")
- ph.update_variable_statistics()
-
- # If the scenario instances are present, push the
- # solutions from the scenario tree. Also try to
- # recover the individual stage costs if these
- # were not variables in the model (and DDSIP solution)
- for scenario in ph._scenario_tree._scenarios:
- if scenario._instance is not None:
- print(("%s %s" % list(map(str(scenario._name, scenario._instance.name)))))
- scenario.push_solution_to_instance()
- scenario.update_solution_from_instance()
- """
- for tree_node in scenario._node_list:
- stage_name = tree_node._stage._name
- if scenario._stage_costs[stage_name] is None:
- cost_variable_name, cost_variable_index = \
- tree_node._stage._cost_variable
- stage_cost_component = scenario._instance.find_component(cost_variable_name)
- scenario._stage_costs[stage_name] = \
- stage_cost_component[cost_variable_index](exception=False)
- """
- warn = False
- for scenario in ph._scenario_tree._scenarios:
- print(("%s %s" % list(map(str,(scenario._name, scenario._cost)))))
- for stage_name in scenario._stage_costs:
- if scenario._stage_costs[stage_name] is None:
- warn = True
- break
- if warn:
- print("***WARNING*** Individual stage costs could not be "
- "recovered from DDSIP solution. Try adding an artificial "
- "variable to the model for each stage cost and assign this "
- "to the stage cost in the scenario tree specification file.")
-
-#
-# Helper Classes
-#
-
-class MatrixEntriesClass(object):
- __slots__ = ('VarUniqueValueMap',)
-
- def __init__(self):
- # key is Variable name, value is unique number (keeps track of
- # stochastic data)
- self.VarUniqueValueMap = {}
-
- def __call__(self):
- return self.VarUniqueValueMap
-
- def __getitem__(self, index):
- if index == 0:
- return self.VarUniqueValueMap
-
- def AddToMap(self, file_line):
- var = file_line[2]
- uniquenumber = file_line[3]
- self.VarUniqueValueMap[var] = uniquenumber
- #print "in MatrixEntriesClass: self.VarUniqueValueMap=", self.VarUniqueValueMap
-
-class LPFileObjClass(object):
- __slots__ = ('Sense','Name','VarToCoeff')
-
- def __init__(self):
- self.Sense = None
- self.Name = None
- self.VarToCoeff = {}
-
- def __call__(self):
- return self.Sense, self.Name, self.VarToCoeff
-
- def __getitem__(self, index):
- if index == 0:
- return self.Sense
- if index == 1:
- return self.Name
- if index == 2:
- return self.VarToCoeff
-
- # store the objective information from a LP file
- def AssignSense(self, SenseIn):
- if ((SenseIn[0] == 'min') or (SenseIn[0] == 'max')):
- print(("The obj sense in the lp file does not seem to be valid: "+str(SenseIn)))
- sys.exit(1)
- self.Sense = SenseIn
-
- def AssignName(self, arg):
- self.Name = arg
-
- def AddToMap(self, Coeff, Var):
- # check to see if Coeff is a number
- self.VarToCoeff[Var] = float(Coeff)
- #print "in OBJClass: self.VarToCoeff=", self.VarToCoeff
-
-class LPFileConstraintClass(object):
-
- __slots__ = ('VarToCoeff','Comparator','RHS')
-
- def __init__(self):
- self.VarToCoeff = {}
- self.Comparator = ''
- self.RHS = None
-
- def __call__(self):
- return self.VarToCoeff, self.Comparator, self.RHS
-
- def __getitem__(self, index):
- if index == 0:
- return self.VarToCoeff
- if index == 1:
- return self.Comparator
- if index == 2:
- return self.RHS
-
- def AddToMap(self, Coeff, Var):
- # Check if Coeff is a comparator. Then we know if we reached
- # the end of the constraint.
- if Coeff in ('=', '<', '>', '<=', '>='):
- comparator = Coeff
- rhs = Var
- return "EndOfConstraint"
- else:
- self.VarToCoeff[Var] = float(Coeff)
-
- def AssignComparator(self, arg):
- self.Comparator = arg
- #print "self.Comparator=", self.Comparator
-
- def AssignRHS(self, arg):
- self.RHS = arg
- #print "self.RHS =",self.RHS
diff --git a/pyomo/pysp/plugins/ddextensionold.py b/pyomo/pysp/plugins/ddextensionold.py
deleted file mode 100644
index 27e0675bfda..00000000000
--- a/pyomo/pysp/plugins/ddextensionold.py
+++ /dev/null
@@ -1,888 +0,0 @@
-# ___________________________________________________________________________
-#
-# Pyomo: Python Optimization Modeling Objects
-# Copyright 2017 National Technology and Engineering Solutions of Sandia, LLC
-# Under the terms of Contract DE-NA0003525 with National Technology and
-# Engineering Solutions of Sandia, LLC, the U.S. Government retains certain
-# rights in this software.
-# This software is distributed under the 3-clause BSD License.
-# ___________________________________________________________________________
-
-# dlw Dec 2014: all 'wb' now 'wt'
-#
-# ph extension for dual decomposition
-#
-
-import os
-import csv
-import sys
-
-thisfile = os.path.abspath(__file__)
-
-
-from pyomo.core.base import Var, TextLabeler, Expression, Piecewise, _PiecewiseData, SOSConstraint, Constraint, components_data
-from pyomo.pysp.plugins.ddextensionnew import (MatrixEntriesClass,
- LPFileObjClass,
- LPFileConstraintClass)
-from pyomo.pysp.phutils import create_block_symbol_maps
-from pyomo.solvers.plugins.smanager.phpyro import SolverManager_PHPyro
-
-from six import iteritems
-
-# This must be in your path
-ddsip_help = 'DDSIPhelp_x64'
-
-class ddextension_base(object):
-
- def _getNumberOfStochasticRHS(self, ph):
- raise NotImplementedError
-
- def _getNumberOfStochasticMatrixEntries(self, ph):
- raise NotImplementedError
-
- def _sort_print_second_stage_constr(self,
- ph,
- RememberSecStageConstr,
- lp,
- ConstraintMap,
- count_rows,
- MatrixEntries_ConstrToRow_Map):
- raise NotImplementedError
-
- def _write_rhs_sc(self, ph):
- raise NotImplementedError
-
- def _write_matrix_sc(self, ph):
- raise NotImplementedError
-
- def __init__(self):
-
- self._lpfilename = "ddlpfile.lp"
- self._firststage_var_postfix = '__DDSIP_FIRSTSTAGE'
- self._reference_scenario = None
- self._reference_scenario_instance = None
- self._FirstStageVars = []
- self._FirstStageVarIdMap = {}
- self._SecondStageVars = []
- self._AllVars = []
-
- self._ScenarioVector = []
- # DG: This is the new column map read from the siphelp output
- # of column order
- self._ColumnMap = {}
-
- # keep track of input file names
- self.input_file_name_list = []
-
- self._precision_string = '.17g'
-
- def reset(self, ph):
- self.__init__()
-
- def pre_ph_initialization(self, ph):
- pass
-
- def post_instance_creation(self, ph):
- pass
-
- def post_ph_initialization(self, ph):
-
- print("Hello from the post_ph_initialization callback in ddphextension")
-
- self._ScenarioVector = \
- sorted(ph._scenario_tree._scenario_map.keys())
-
- self._reference_scenario = \
- ph._scenario_tree._scenario_map[self._ScenarioVector[0]]
- scenario_name = self._reference_scenario._name
-
- print(("\nUsing %s as reference scenario" % (scenario_name)))
-
- if isinstance(ph._solver_manager, SolverManager_PHPyro):
- # If this is parallel ph, the instances do not exist on
- # this process, so let's construct the one we need
- singleton_tree = ph._scenario_tree._scenario_instance_factory.generate_scenario_tree()
- singleton_tree.compress([scenario_name])
- singleton_dict = singleton_tree._scenario_instance_factory.\
- construct_instances_for_scenario_tree(
- singleton_tree,
- output_instance_construction_time=ph._output_instance_construction_time)
- # with the scenario instances now available, link the
- # referenced objects directly into the scenario tree.
- singleton_tree.linkInInstances(singleton_dict,
- create_variable_ids=True)
-
- self._reference_scenario = singleton_tree._scenarios[0]
- scenario_instance = self._reference_scenario._instance
- create_block_symbol_maps(scenario_instance, (Var,))
-
- else:
- scenario_instance = self._reference_scenario._instance
- self._reference_scenario_instance = scenario_instance
-
- print("Creating the sip.in file")
-
- # This is usuall called just prior to solving the instances,
- # however the scenariotree uses StandardRepn for determining
- # constraint stage
- ph._preprocess_scenario_instances()
-
- # Write the lp file for an arbitrary scenario, also obtain the
- # maximum row/column symbol length (in characters)
- max_name_len, symbol_map = self._write_reference_scenario_lp(ph)
-
- # variables will stored by their name in the LP file,
- # which may be different from what is stored on the
- # ph scenario tree
- StageToConstraintMap = self._Constraints_Stages(ph, symbol_map)
- self._Populate_StageVars(ph, symbol_map)
-
- # DG: some system calls to call the ddsip help utility to get
- # column orders Current working directory is ddsip_FARMER2
- # --- not sure what changes the pwd to this directory
- assert os.path.exists(self._lpfilename)
- ddsip_help_output = "rows+cols"
- os.system("rm -f "+ddsip_help_output)
- os.system("rm -f "+ddsip_help_output+".gz")
- print(("COMMAND= "+str(ddsip_help)+' '+self._lpfilename+' '+str(max_name_len)))
- os.system(ddsip_help+' '+self._lpfilename+' '+str(max_name_len))
- assert os.path.exists(ddsip_help_output+".gz")
- os.system("gzip -df "+ddsip_help_output+".gz")
-
- # DG: Now parse the rows+cols file:
- print("Opening the rows+cols file for reading")
- dashcount = 0
- varcount = 0
- with open(ddsip_help_output,'r') as f:
- for line in f.readlines():
- pieces = line.split()
- if dashcount == 2:
- break
- if pieces[0] =='__________________________':
- dashcount = dashcount+1
- if len(pieces) == 2:
- varcount = varcount + 1
- self._ColumnMap[pieces[1]] = int(pieces[0])
-
- ObjObject, ConstraintMap, remaining_lpfile_rows, AllConstraintNames = \
- self._read_parse_lp(self._lpfilename)
-
- MatrixEntries_ConstrToRow_Map = \
- self.sort_write_lp(ph,
- ObjObject,
- ConstraintMap,
- StageToConstraintMap,
- remaining_lpfile_rows)
- self._write_rhs_sc(ph)
- self._write_matrix_sc(ph,
- MatrixEntries_ConstrToRow_Map)
-
- self.write_sip_in(ph,
- StageToConstraintMap,
- AllConstraintNames)
-
- self.write_input2sip(ph)
- self.write_input2sip(ph)
-
- def post_iteration_0_solves(self, ph):
- pass
-
- def post_iteration_0(self, ph):
- pass
-
- def pre_iteration_k_solves(self, ph):
- pass
-
- def post_iteration_k_solves(self, ph):
- pass
-
- def post_iteration_k(self, ph):
- pass
-
- def post_ph_execution(self, ph):
- self.write_start_weights(ph)
- ##self.write_start_in(ph)
-
- # Write the lp file for a scenario and return the maximum
- # character count for names in the file
- def _write_reference_scenario_lp(self, ph):
-
- # Make sure the pyomo plugins are loaded
- import pyomo.environ
- lp_file_writer = pyomo.repn.plugins.cpxlp.ProblemWriter_cpxlp()
-
- # Write the LP file
- print(("Writing LP file to %s" % (self._lpfilename,)))
- scenariotree_vars = \
- self._reference_scenario_instance.\
- _ScenarioTreeSymbolMap.bySymbol
- rootnode_vars = \
- ph._scenario_tree.findRootNode()._standard_variable_ids
- firststage_ids = \
- [id(vardata) for scenariotree_id, vardata \
- in iteritems(scenariotree_vars) \
- if scenariotree_id in rootnode_vars]
- capabilities = lambda x: True
- text_labeler = TextLabeler()
- labeler = lambda x: text_labeler(x) + \
- (self._firststage_var_postfix \
- if (id(x) in firststage_ids) else \
- "")
- output_filename, symbol_map = \
- lp_file_writer(self._reference_scenario_instance,
- self._lpfilename,
- capabilities,
- {'labeler' : labeler})
- assert output_filename == self._lpfilename
- print("\nModel written\n")
-
- # Return the max symbol length (for siphelp)
- max_name_len = max(len(symbol) for symbol in symbol_map.bySymbol)
- return max_name_len, symbol_map
-
- def _Populate_StageVars(self, ph, LP_symbol_map):
-
- all_vars_cnt = 0
- for block in self._reference_scenario_instance.block_data_objects(active=True):
- all_vars_cnt += len(list(components_data(block, Var)))
-
- rootnode = ph._scenario_tree.findRootNode()
- stagetwo = ph._scenario_tree._stages[1]
- anode = stagetwo._tree_nodes[0]
- firststage_blended_variables = rootnode._standard_variable_ids
- LP_byObject = LP_symbol_map.byObject
- for scenario_tree_id, vardata in \
- iteritems(self._reference_scenario_instance.\
- _ScenarioTreeSymbolMap.bySymbol):
- try:
- LP_name = LP_byObject[id(vardata)]
- except:
- print(("FAILED ON VAR DATA= "+vardata.name))
- foobar
- if scenario_tree_id in firststage_blended_variables:
- self._FirstStageVars.append(LP_name)
- self._FirstStageVarIdMap[LP_name] = scenario_tree_id
- elif (scenario_tree_id in rootnode._derived_variable_ids) or \
- (scenario_tree_id in anode._variable_ids):
- self._SecondStageVars.append(LP_name)
- else:
- # More than two stages?
- assert False
- self._AllVars.append(LP_name)
-
- for stage in ph._scenario_tree._stages:
- cost_variable_name, cost_variable_index = \
- stage.nodes[0]._cost_variable
- stage_cost_component = \
- self._reference_scenario_instance.\
- find_component(cost_variable_name)
- if stage_cost_component.ctype is not Expression:
- LP_name = LP_byObject[id(stage_cost_component[cost_variable_index])]
- assert LP_name not in self._FirstStageVars
- if LP_name not in self._AllVars:
- assert LP_name not in self._SecondStageVars
- self._SecondStageVars.append(LP_name)
- self._AllVars.append(LP_name)
-
- # Make sure every variable on the model has been
- # declared on the scenario tree
- if len(self._AllVars) != all_vars_cnt:
- print("**** THERE IS A PROBLEM ****")
- print("Not all model variables are on the scenario tree. Investigating...")
- all_vars = set()
- for block in self._reference_scenario_instance.block_data_objects(active=True):
- all_vars.update(vardata.name \
- for vardata in components_data(block, Var))
- tree_vars = set()
- for scenario_tree_id, vardata in \
- iteritems(self._reference_scenario_instance.\
- _ScenarioTreeSymbolMap.bySymbol):
- tree_vars.add(vardata.name)
- cost_vars = set()
- for stage in ph._scenario_tree._stages:
- cost_variable_name, cost_variable_index = \
- stage.nodes[0]._cost_variable
- stage_cost_component = \
- self._reference_scenario_instance.\
- find_component(cost_variable_name)
- if stage_cost_component.ctype is not Expression:
- cost_vars.add(stage_cost_component[cost_variable_index].name)
- print(("Number of Scenario Tree Variables (found ddsip LP file): "+str(len(tree_vars))))
- print(("Number of Scenario Tree Cost Variables (found ddsip LP file): "+str(len(cost_vars))))
- print(("Number of Variables Found on Model: "+str(len(all_vars))))
- print(("Variables Missing from Scenario Tree (or LP file):"+str(all_vars-tree_vars-cost_vars)))
-
-
- # A necessary but not sufficient sanity check to make sure the
- # second stage variable sets are the same for all
- # scenarios. This is not required by pysp, but I think this
- # assumption is made in the rest of the code here
- for tree_node in stagetwo._tree_nodes:
- assert len(anode._variable_ids) == \
- len(tree_node._variable_ids)
-
- assert len(ph._scenario_tree._stages) == 2
-
- # we are doing string-sort
- self._FirstStageVars.sort()
- self._SecondStageVars.sort()
- self._AllVars.sort()
-
- def _Constraints_Stages(self, ph, LP_symbol_map):
-
- # save the output in a map: key is constraint name, value is a
- # constraintindex-stage-map
- #ConstraintToStageMap = {}
- # inverse map to ConstraintToStageMap: key is stage name,
- # value is constraintname (which includes the index)
- StageToConstraintMap = {}
- # auxiliary list for StageToConstraintMap
- FirstStageConstrNameToIndex = []
- # auxiliary list for StageToConstraintMap
- SecondStageConstrNameToIndex = []
-
- stage1 = ph._scenario_tree._stages[0]
- stage2 = ph._scenario_tree._stages[1]
-
- reference_instance = self._reference_scenario_instance
- LP_byObject = LP_symbol_map.byObject
- # deal with the fact that the LP writer prepends constraint
- # names with things like 'c_e_', 'c_l_', etc depending on the
- # constraint bound type and will even split a constraint into
- # two constraints if it has two bounds
-
- reference_scenario = self._reference_scenario
-
- LP_reverse_alias = dict()
- for symbol in LP_symbol_map.bySymbol:
- LP_reverse_alias[symbol] = []
- for alias, obj_weakref in iteritems(LP_symbol_map.aliases):
- LP_reverse_alias[LP_byObject[id(obj_weakref())]].append(alias)
- for block in reference_instance.block_data_objects(active=True):
- block_repn = getattr(block, "_repn",None)
- if block_repn is None:
- raise ValueError("Unable to find _repn ComponentMap "
- "on block %s" % (block.name))
- isPiecewise = False
- if isinstance(block, (Piecewise, _PiecewiseData)):
- isPiecewise = True
- for constraint_data in block.component_data_objects(SOSConstraint, active=True, descend_into=False):
- raise TypeError("SOSConstraints are not handled by the DDSIP interface: %s"
- % (constraint_data.name))
- for constraint_data in block.component_data_objects(Constraint, active=True, descend_into=False):
- LP_name = LP_byObject[id(constraint_data)]
- # if it is a range constraint this will account for
- # that fact and hold and alias for each bound
- LP_aliases = LP_reverse_alias[LP_name]
- assert len(LP_aliases) > 0
- if not isPiecewise:
- constraint_node = reference_scenario.constraintNode(
- constraint_data,
- repn=block_repn.get(constraint_data),
- instance=reference_instance)
- stage_index = reference_scenario.node_stage_index(constraint_node)
- else:
- stage_index = 1
- stage_index = reference_scenario.node_stage_index(constraint_node)
- if stage_index == 0:
- FirstStageConstrNameToIndex.extend(LP_aliases)
- elif stage_index == 1:
- SecondStageConstrNameToIndex.extend(LP_aliases)
- else:
- # More than two stages?
- assert False
-
- StageToConstraintMap['FirstStage'] = FirstStageConstrNameToIndex
- StageToConstraintMap['SecondStage'] = SecondStageConstrNameToIndex
-
- return StageToConstraintMap
-
- def write_sip_in(self, ph, StageToConstraintMap, AllConstraintNames):
- try:
- print("\n\nWrite dd input file: sip.in \n")
- sipin = open("sip.in", "w")
- except IOError:
- print("sip.in cannot be created!")
- sys.exit(1)
-
- # keep track of input file names
- self.input_file_name_list.append('sip.in')
-
- FirstStage = StageToConstraintMap['FirstStage']
- NumberOfFirstStageConstraints = 0
- for constr in FirstStage:
- assert constr in AllConstraintNames
- NumberOfFirstStageConstraints += 1
-
- SecondStage = StageToConstraintMap['SecondStage']
- NumberOfSecondStageConstraints = 0
- for constr in SecondStage:
- assert constr in AllConstraintNames
- NumberOfSecondStageConstraints += 1
-
- NumberOfFirstStageVars = len(self._FirstStageVars)
- NumberOfSecondStageVars = len(self._SecondStageVars)
-
- NumberOfStochasticRHS = self._getNumberOfStochasticRHS(ph)
- NumberOfStochasticMatrixEntries = self._getNumberOfStochasticMatrixEntries(ph)
-
- NumberOfScenarios = len(self._ScenarioVector)
-
- sipin.write('BEGIN \n\n\n')
- sipin.write('FIRSTCON '+str(NumberOfFirstStageConstraints)+'\n')
- sipin.write('FIRSTVAR '+str(NumberOfFirstStageVars)+'\n')
- # NOTE: The "+1" terms below are due to the ONE_VAR_CONSTANT
- # variable definition
- sipin.write('SECCON '+str(NumberOfSecondStageConstraints+1)+'\n')
- sipin.write('SECVAR '+str(NumberOfSecondStageVars+1)+'\n')
- sipin.write('POSTFIX '+self._firststage_var_postfix+'\n')
- sipin.write('SCENAR '+str(NumberOfScenarios)+'\n')
-
- sipin.write('STOCRHS '+str(NumberOfStochasticRHS)+'\n')
- sipin.write('STOCCOST '+str('0')+'\n')
- sipin.write('STOCMAT '+str(NumberOfStochasticMatrixEntries)+'\n')
-
- sipin.write("\n\nCPLEXBEGIN\n")
- sipin.write('1035 0 * Output on screen indicator\n')
- sipin.write('2008 0.001 * Absolute Gap\n')
- sipin.write('2009 0.001 * Relative Gap\n')
- sipin.write('1039 1200 * Time limit\n')
- sipin.write('1016 1e-9 * simplex feasibility tolerance\n')
- sipin.write('1014 1e-9 * simplex optimality tolerance\n')
- sipin.write('1065 40000 * Memory available for working storage\n')
- sipin.write('2010 1e-20 * integrality tolerance\n')
- sipin.write('2008 0 * Absolute gap\n')
- sipin.write('2020 0 * Priority order\n')
- sipin.write('2012 4 * MIP display level\n')
- sipin.write('2053 2 * disjunctive cuts\n')
- sipin.write('2040 2 * flow cover cuts\n')
- sipin.write('2060 3 *DiveType mip strategy dive (probe=3)\n')
- sipin.write('CPLEXEND\n\n')
-
- sipin.write('MAXINHERIT 15\n')
- sipin.write('OUTLEV 5 * Debugging\n')
- sipin.write('OUTFIL 2\n')
- sipin.write('STARTI 0 * (1 to use the starting values from PH)\n')
- sipin.write('NODELI 2000 * Sipdual node limit\n')
- sipin.write('TIMELIMIT 964000 * Sipdual time limit\n')
- sipin.write('HEURISTIC 99 3 7 * Heuristics: Down, Up, Near, Common, Byaverage ...(12)\n')
- sipin.write('ABSOLUTEGAP 0.001 * Absolute duality gap allowed in DD\n')
- sipin.write('EEVPROB 1\n')
- sipin.write('RELATIVEGAP 0.01 * (0.02) Relative duality gap allowed in DD\n')
- sipin.write('BRADIRECTION -1 * Branching direction in DD\n')
- sipin.write('BRASTRATEGY 1 * Branching strategy in DD (1 = unsolved nodes first, 0 = best bound)\n')
- sipin.write('EPSILON 1e-13 * Branch epsilon for cont. var.\n')
- sipin.write('ACCURACY 5e-16 * Accuracy\n')
- sipin.write('BOUSTRATEGY 1 * Bounding strategy in DD\n')
- sipin.write('NULLDISP 1e-16\n')
- sipin.write('RELAXF 0\n')
- sipin.write('INTFIRST 0 * Branch first on integer\n')
- sipin.write('HOTSTART 4 * use previous solution as integer starting info\n')
-
- sipin.write('\n\nRISKMO 0 * Risk Model\n')
- sipin.write('RISKALG 1\n')
- sipin.write('WEIGHT 1\n')
- sipin.write('TARGET 54 * target if needed\n')
- sipin.write('PROBLEV .8 * probability level\n')
- sipin.write('RISKBM 11000000 * big M in \n')
-
- sipin.write('\n\nCBFREQ 0 * (50) Conic Bundle in every ith node\n')
- sipin.write('CBITLIM 20 * (10) Descent iteration limit for conic bundle method\n')
- sipin.write('CBTOTITLIM 50 * (1000) Total iteration limit for conic bundle method\n')
- sipin.write('NONANT 1 * Non-anticipativity representation\n')
- sipin.write('DETEQU 1 * Write Deterministic Equivalent\n')
-
- sipin.write('\n\nEND\n')
-
- sipin.close()
-
- def _read_unique_coef(self):
- # read the files containing stochastic coefficients which are
- # given by the user
- try:
- MAT_datafile = csv.reader(open("StochDataMAT.dat", "rb"), delimiter=' ', quotechar='|', skipinitialspace=True)
- RHS_datafile = csv.reader(open("StochDataRHS.dat", "rb"), delimiter=' ', quotechar='|', skipinitialspace=True)
- except csv.Error as e:
- print("StochData is not found!")
- sys.exit('file %s, line %d: %s' % (filename, f.line_num, e))
-
- # key is constraint name, value is a class with a map od
- # variable name and unique value
- stochMAT = {}
- # key is constraintname, value is stochastic rhs
- stochRHS = {}
-
- for line in MAT_datafile:
- name = line[1]
- keys = list(stochMAT.keys())
- if name not in keys:
- stochMAT[name] = MatrixEntriesClass()
- stochMAT[name].AddToMap(line)
-
- for line in RHS_datafile:
- constr_name = line[1]
- value = line[2]
- stochRHS[constr_name] = value
-
- return stochMAT, stochRHS
-
- def _read_parse_lp(self, lp_filename):
-
- # read and parse the lp file which was generated by
- # lp_file_writer above in post_ph_initialization(self, ph)
-
- # This class has the OBJ sense, the OBJ name and a
- # variable-value-dictionary
- ObjObject = LPFileObjClass()
-
- # The keys are the constraint names, value is a class with a
- # variable-value-dictionary, the comparator and the RHS.
- ConstraintMap = {}
-
- try:
- print(("\nName of the lp file which will be read: "+str(lp_filename)+"\n"))
-#dlw Dec2014 lp_file = csv.reader(open(lp_filename, 'rb'), delimiter=' ', quotechar='|', skipinitialspace=True)
- lp_file = csv.reader(open(lp_filename, 'rt'), delimiter=' ', quotechar='|', skipinitialspace=True)
- except csv.Error as e:
- print((lp_filename+" is not found!"))
- sys.exit('file %s, line %d: %s' % (filename, f.line_num, e))
-
- # increment this only after you have processed the row
- list_lp_file = list(lp_file)[0:]
-
- CurrRow = 0
- CurrRow = self.SkipLPNullLines(CurrRow, list_lp_file)
-
- # assume it is a sense
- ObjObject.AssignSense(list_lp_file[CurrRow][0])
- CurrRow += 1
-
- CurrElem = 0
- # now assume we are on to the name
- name = self.ClearName(list_lp_file[CurrRow][CurrElem])
- ObjObject.AssignName(name)
- CurrRow, CurrElem = \
- self.LocalPostionUpdate(list_lp_file, CurrRow, CurrElem, 1)
-
- # send the pairs to the obj object
- # assume the obj is followed by a blank line!!!
- while list_lp_file[CurrRow] != []:
- LastCoeff = None
- # process the pairs
- if LastCoeff is not None:
- ObjObject.AddToMap(LastCoeff, list_lp_file[CurrRow][CurrElem])
- LastCoeff = None
- CurrRow, CurrElem = self.LocalPostionUpdate(list_lp_file, CurrRow, CurrElem, 1)
- elif 1+CurrElem == len(list_lp_file[CurrRow]):
- LastCoeff = list_lp_file[CurrRow][CurrElem]
- CurrRow, CurrElem = self.LocalPostionUpdate(list_lp_file, CurrRow, CurrElem, 1)
- else:
- ObjObject.AddToMap(list_lp_file[CurrRow][CurrElem], list_lp_file[CurrRow][CurrElem+1])
- LastCoeff = None
- CurrRow, CurrElem = self.LocalPostionUpdate(list_lp_file, CurrRow, CurrElem, 2)
-
- if LastCoeff is not None:
- print("\nerror mismatched pairs in objective function")
- exit(1)
-
- #print("ObjObject = "+str(ObjObject()))
-
- CurrRow = self.SkipLPNullLines(CurrRow, list_lp_file)
- CurrElem = 0
- # check if we reached the constraints
- if (('s.t.' in list_lp_file[CurrRow][CurrElem]) or \
- ('st' in list_lp_file[CurrRow][CurrElem]) or \
- ('subject to' in list_lp_file[CurrRow][CurrElem])):
-
- CurrRow += 1
- CurrRow = self.SkipLPNullLines(CurrRow, list_lp_file)
-
- while (('bound' not in list_lp_file[CurrRow][0]) and \
- ('c_e_ONE_VAR_CONSTANT' not in list_lp_file[CurrRow][0])):
-
- CurrConstraintName = self.ClearName(list_lp_file[CurrRow][CurrElem])
- ConstraintMap[CurrConstraintName] = LPFileConstraintClass()
- if len(list_lp_file[CurrRow]) > 1:
- CurrElem += 1
- else:
- CurrRow += 1
-
- LastCoeff = None
- end = ''
- while list_lp_file[CurrRow] != []:
- # process the pairs, keep track of last coefficient and
- # variable, just in case we reach the end of the
- # constraint (AssignComparator and AssignRHS need
- # them)
- if LastCoeff is not None:
- end = ConstraintMap[CurrConstraintName].AddToMap(LastCoeff, list_lp_file[CurrRow][CurrElem])
- LastVar = list_lp_file[CurrRow][CurrElem]
- #print "in 1. IF: LastCoeff, LastVar =", LastCoeff, LastVar; sys.stdout.flush()
- if end != 'EndOfConstraint':
- LastCoeff = None
- CurrRow, CurrElem = self.LocalPostionUpdate(list_lp_file, CurrRow, CurrElem, 1)
- elif 1+CurrElem == len(list_lp_file[CurrRow]):
- LastCoeff = list_lp_file[CurrRow][CurrElem]
- CurrRow, CurrElem = self.LocalPostionUpdate(list_lp_file, CurrRow, CurrElem, 1)
- #print "in 1. ElIF: LastCoeff=", LastCoeff; sys.stdout.flush()
- elif 2+CurrElem <= len(list_lp_file[CurrRow]):
- end = ConstraintMap[CurrConstraintName].AddToMap(list_lp_file[CurrRow][CurrElem], list_lp_file[CurrRow][CurrElem+1])
- LastCoeff = list_lp_file[CurrRow][CurrElem]
- LastVar = list_lp_file[CurrRow][CurrElem+1]
- #print "in 2. ElIF: LastCoeff, LastVar =", LastCoeff, LastVar; sys.stdout.flush()
- if end != 'EndOfConstraint':
- LastCoeff = None
- CurrRow, CurrElem = self.LocalPostionUpdate(list_lp_file, CurrRow, CurrElem, 2)
- if end == 'EndOfConstraint':
- #print "\nend of constraint"
- ConstraintMap[CurrConstraintName].AssignComparator(LastCoeff)
- ConstraintMap[CurrConstraintName].AssignRHS(LastVar)
- #print "in 2. IF: LastCoeff, LastVar =", LastCoeff, LastVar; sys.stdout.flush()
- CurrRow += 2
- CurrElem = 0
- break
-
- remaining_lpfile_rows = []
- while CurrRow < len(list_lp_file):
- remaining_lpfile_rows.append(list_lp_file[CurrRow])
- CurrRow += 1
-
- AllConstraintNames = list(ConstraintMap.keys())
-
- return ObjObject, ConstraintMap, remaining_lpfile_rows, AllConstraintNames
-
- def sort_write_lp(self, ph, ObjObject, ConstraintMap, StageToConstraintMap, remaining_lpfile_rows):
-
- try:
- print("\nWrite the LP file for dd in sorted_LPfile.lp\n")
- lp = open("sorted_LPfile.lp", "w")
- except IOError:
- print("IO Error so that sorted_LPfile.lp cannot be created.")
- sys.out(1)
-
- # keep track of input file names
- self.input_file_name_list.append('sorted_LPfile.lp')
-
- # for the matrix.sc file we need to know which constraint is
- # in which row:
- MatrixEntries_ConstrToRow_Map = {}
-
- lp.write(ObjObject[0]+"\n "+ObjObject[1]+":\n")
- self.print_coeff_var_from_map(ObjObject[2], lp)
-
- # assume blank line before and after constraint indicator
- lp.write("\ns.t.\n")
-
- FirstStage = StageToConstraintMap['FirstStage']
- ConstrNames = list(ConstraintMap.keys())
- ConstrNames.sort()
- RememberSecStageConstr = []
- # so that we know in which rows the constraints with
- # stochastic data are (first row has index 0)
- count_rows = -1
-
- for name in ConstrNames:
- # check if constraint is in first stage
- if name in FirstStage:
- lp.write("\n"+name+":\n")
- count_rows += 1
- MatrixEntries_ConstrToRow_Map[name] = count_rows
- self.print_coeff_var_from_map(ConstraintMap[name][0], lp)
- lp.write(ConstraintMap[name][1]+" "+ConstraintMap[name][2]+"\n")
- else:
- RememberSecStageConstr.append(name)
-
- MatrixEntries_ConstrToRow_Map = \
- self._sort_print_second_stage_constr(ph,
- RememberSecStageConstr,
- lp,
- ConstraintMap,
- count_rows,
- MatrixEntries_ConstrToRow_Map)
-
- # print the remaining rows of the lp file
- for row in range(len(remaining_lpfile_rows)):
- lp.write("\n")
- for i in range(len(remaining_lpfile_rows[row])):
- lp.write(remaining_lpfile_rows[row][i]+" ")
-
- lp.close()
- #print MatrixEntries_ConstrToRow_Map
- return MatrixEntries_ConstrToRow_Map
-
- def write_start_weights(self, ph):
-
- rootnode_name = ph._scenario_tree.findRootNode()._name
- weights_vectors = []
- for scenarioname in self._ScenarioVector:
- scenario_weights = \
- ph._scenario_tree._scenario_map[scenarioname]._w[rootnode_name]
- scenario_weights_vector = []
- for varname_LP in self._FirstStageVars:
- scenario_tree_id = self._FirstStageVarIdMap[varname_LP]
- scenario_weights_vector.append(scenario_weights[scenario_tree_id])
- weights_vectors.append(scenario_weights_vector)
-
- # transpose to orient data for processing across scenarios
- weights_vectors = list(zip(*weights_vectors))
-
- with open('PHWEIGHTS.csv','wt') as f:
- f.write("varname,"+(",".join(name for name in self._ScenarioVector))+"\n")
- for var_index, vector_w in enumerate(weights_vectors):
- varname = self._FirstStageVars[var_index]
- f.write(varname+","+(",".join(repr(w) for w in vector_w))+"\n")
-
- num_scenarios = float(len(self._ScenarioVector))
-
- # NONANT 1 case:
- v1_transpose = []
- for vector_w in weights_vectors:
- # all but the first position
- vector_w_iter = vector_w[1:]
- tmp = [-w/num_scenarios \
- for w in vector_w_iter]
- v1_transpose.append(tmp)
- with open('NONANT1.in','wt') as f:
- f.write('MULTIPLIER\n')
- # transpose and flatten
- for column in zip(*v1_transpose):
- f.writelines(repr(x)+'\n' for x in column)
-
- # NONANT 2 case:
- v2_transpose = []
- for vector_w in weights_vectors:
- w_sum = 0.0
- tmp = []
- # all but the last element
- vector_w_iter = vector_w[:-1]
- for w in vector_w_iter:
- w_sum += w
- tmp.append(w_sum/num_scenarios)
- v2_transpose.append(tmp)
- with open('NONANT2.in','wt') as f:
- f.write('MULTIPLIER\n')
- # tranpose and flatten
- for column in zip(*v2_transpose):
- f.writelines(repr(x)+'\n' for x in column)
-
- # NONANT 3 case:
- v3_transpose = []
- for vector_w in weights_vectors:
- wlast = vector_w[-1]
- # all but the last element
- vector_w_iter = vector_w[:-1]
- tmp = [(w-wlast)/num_scenarios for w in vector_w_iter]
- v3_transpose.append(tmp)
- with open('NONANT3.in','wt') as f:
- f.write('MULTIPLIER\n')
- # tranpose and flatten
- for column in zip(*v3_transpose):
- f.writelines(repr(x)+'\n' for x in column)
-
- def write_start_in(self, ph):
- ### Note: as of Dec 26, 2014, the ph object we have here does not have the
- ### scenario tree that has the solution, so this will not work
- ### I put this code in a solution writer to get what I need - DLW
- # keep track of input file names -- or not (dlw Dec 2014)
- ### self.input_file_name_list.append('start.in')
-
- print("\n\nWrite dd input file: solstart.in (** integers will be rounded ** )\n")
-
- # note: DDSIP seems to get the names in alpha order from cplex
- VNames = []
- VVals = {}
- # assume two-stage and we only want the first stage vars
- rootnode = ph._scenario_tree.findRootNode()
- for variable_id in rootnode._variable_ids:
- var_name, index = rootnode._variable_ids[variable_id]
- name = str(var_name)+str(index)
- name = name.replace('.','_') # lp files are what matters here
- name = name.replace(',',':')
- name = name.replace(' ','')
- VNames.append(name)
- ### VVals[name] = rootnode._solution[variable_id]
- VVals[name] = rootnode.get_variable_value(var_name, index)
- VNames.sort()
- print ("Writing init solution:")
- with open('solstart.in', 'wt') as f:
- f.write("SOLUTION\n")
- for name in VNames:
- if rootnode.is_variable_discrete(variable_id):
- val = str(round(float(VVals[name])))
- else:
- val = str(float(VVals[name]))
- f.write(val+"\n")
- # aside: rounding changes slightly from Python 2.x to 3.x
-
- def write_input2sip(self, ph):
- try:
- print("\n\nWrite dd input file: input2sip \n")
- f = open('2sip', 'w')
- except IOError:
- print("File input2sip cannot be created.")
- sys.exit(1)
-
- if 'sip.in' in self.input_file_name_list:
- f.write("sip.in\n")
- if 'sorted_LPfile.lp' in self.input_file_name_list:
- f.write("sorted_LPfile.lp\n")
- if 'model.ord' in self.input_file_name_list:
- f.write("model.ord\n")
- if 'rhs.sc' in self.input_file_name_list:
- f.write("rhs.sc\n")
- if 'cost.sc' in self.input_file_name_list:
- f.write("cost.sc\n")
- if 'matrix.sc' in self.input_file_name_list:
- f.write("matrix.sc\n")
- if 'order.dat' in self.input_file_name_list:
- f.write("order.dat\n")
- if 'start.in' in self.input_file_name_list:
- f.write("start.in\n")
-
- f.close()
-
- def SkipLPNullLines(self, CurrRow, lp_file):
- # skip over comment lines and blank lines (assuming comment
- # character leads)
- while (lp_file[CurrRow] == [] or lp_file[CurrRow][0].startswith("\\")):
- CurrRow += 1
- if CurrRow >= len(lp_file):
- print("Error: past end of file while skipping null lines")
- sys.exit(1)
- return CurrRow
-
- def LocalPostionUpdate(self, lp_file, CurrRow, CurrElem, step):
- if ((step !=1) and (step != 2)):
- print(("unexpected step length ="+str(step)))
- CurrElem += step
- if CurrElem > len(lp_file[CurrRow])-1:
- CurrRow += 1
- CurrElem = 0
- return CurrRow, CurrElem
-
- def ClearName(self, name):
- if name[-1] == ':':
- name = name[:-1]
- return name
-
- def print_coeff_var_from_map(self, VarToCoeffMap, lp_file):
- keys = list(VarToCoeffMap.keys())
- #string sorting
- keys.sort()
- line_template = "%+"+self._precision_string+" %s\n"
- for key in keys:
- lp_file.write(line_template % (VarToCoeffMap[key], key))
- """
- if ('+' not in str(VarToCoeffMap[key])) and ('-' not in str(VarToCoeffMap[key])):
- lp_file.write("+"+str(VarToCoeffMap[key])+" "+str(key)+"\n")
- else:
- lp_file.write(str(VarToCoeffMap[key])+" "+str(key)+"\n")
- """
- def print_coeff_var(self, coeff, var, lp_file):
- if coeff not in ('=', '<', '>', '<=', '>='):
- if ('+' not in str(coeff)) and ('-' not in str(coeff)):
- lp_file.write("+"+str(coeff)+" "+str(var)+"\n")
- else:
- lp_file.write(str(coeff)+" "+str(var)+"\n")
- else:
- lp_file.write(str(coeff)+" "+str(var)+"\n")
diff --git a/pyomo/pysp/plugins/ecksteincombettesextension.py b/pyomo/pysp/plugins/ecksteincombettesextension.py
deleted file mode 100644
index 5d9f4aec249..00000000000
--- a/pyomo/pysp/plugins/ecksteincombettesextension.py
+++ /dev/null
@@ -1,575 +0,0 @@
-# ___________________________________________________________________________
-#
-# Pyomo: Python Optimization Modeling Objects
-# Copyright 2017 National Technology and Engineering Solutions of Sandia, LLC
-# Under the terms of Contract DE-NA0003525 with National Technology and
-# Engineering Solutions of Sandia, LLC, the U.S. Government retains certain
-# rights in this software.
-# This software is distributed under the 3-clause BSD License.
-# ___________________________________________________________________________
-
-import pyomo.common.plugin
-
-from six import iteritems, print_
-
-import random
-
-from pyomo.pysp import phextension
-from pyomo.pysp.convergence import ConvergenceBase
-
-from pyomo.core.base import minimize
-
-import math
-
-# the converger for the class - everything (primal and dual) is
-# contained in the (u,v) vector of the Eckstein-Combettes extension.
-class EcksteinCombettesConverger(ConvergenceBase):
-
- def __init__(self, *args, **kwds):
- ConvergenceBase.__init__(self, *args, **kwds)
- self._name = "Eckstein-Combettes (u,v) norm"
-
- # the plugin computes the metric, so we'll just provide
- # it a place to stash the latest computed value.
- self._last_computed_uv_norm_value = None
-
- def computeMetric(self, ph, scenario_tree, instances):
-
- return self._last_computed_uv_norm_value
-
-# the primary Eckstein-Combettes extension class
-
-class EcksteinCombettesExtension(pyomo.common.plugin.SingletonPlugin):
-
- pyomo.common.plugin.implements(phextension.IPHExtension)
-
- pyomo.common.plugin.alias("ecksteincombettesextension")
-
- def __init__(self):
-
- import random
- random.seed(1234)
- print("Kludge warning: set random seed to 1234")
-
- self._check_output = False
- self._JName = "PhiSummary.csv"
-
- self._subproblems_to_queue = []
-
- # various configuration options.
-
- # if this is True, then the number of sub-problems
- # returned may be less than the buffer length.
- self._queue_only_negative_subphi_subproblems = False
-
- # track the total number of projection steps performed (and, implicitly,
- # the current projection step) in addition to the last projection step
- # at which a scenario sub-problem was incorporated.
- self._total_projection_steps = 0
- self._projection_step_of_last_update = {} # maps scenarios to projection step number
-
- self._converger = None
-
- def check_optimality_conditions(self, ph):
-
- print("Checking optimality conditions for Eckstein-Combettes plugin")
- for stage in ph._scenario_tree._stages[:-1]:
- for tree_node in stage._tree_nodes:
- for variable_id in tree_node._standard_variable_ids:
- expected_y = 0.0
- for scenario in tree_node._scenarios:
- expected_y += ((scenario._y[variable_id] * scenario._probability) / tree_node._probability)
- # the expected value of the y vector should be 0 if the solution is optimal
-
- def compute_updates(self, ph, subproblems, scenario_solve_counts):
-
- scale_factor = 1.0 # This should be a command-line parameter
-
- self._total_projection_steps += 1
- print("Initiating projection step: %d" % self._total_projection_steps)
-
- print("Computing updates given solutions to the following sub-problems:")
- for subproblem in subproblems:
- print("%s" % subproblem)
- print("")
-
- for subproblem in subproblems:
- self._projection_step_of_last_update[subproblem] = self._total_projection_steps
-
- ########################################
- ##### compute y values and u values ####
- ##### these are scenario-based ##
- ########################################
-
- # NOTE: z is initiaized to be xbar in the code above, but it is *not* xbar.
- # NOTE: v is essentailly y bar
- # NOTE: lambda is 1/rho xxxxxxxxxxxxx so if you see 1/lamba in a latex file, use rho in the py file
- # ASSUME W is the Eckstein W, not the PH W
-
- for stage in ph._scenario_tree._stages[:-1]:
-
- for tree_node in stage._tree_nodes:
-
- if ph._dual_mode is True:
- raise RuntimeError("***dual_mode not supported by compute_y in plugin ")
- tree_node_averages = tree_node._averages
- tree_node_zs = tree_node._z
-
- for scenario in tree_node._scenarios:
-
- weight_values = scenario._w[tree_node._name]
- rho_values = scenario._rho[tree_node._name]
- var_values = scenario._x[tree_node._name]
-
- for variable_id in tree_node._standard_variable_ids:
- varval = var_values[variable_id]
- if varval is not None:
- if scenario._objective_sense == minimize:
-
- if scenario._name in subproblems:
- # CRITICAL: Y depends on the z and weight values that were used when solving the scenario!
- z_for_solve = scenario._xbars_for_solve[tree_node._name][variable_id]
- w_for_solve = scenario._ws_for_solve[tree_node._name][variable_id]
- scenario._y[variable_id] = rho_values[variable_id] * (z_for_solve - varval) - w_for_solve
-
- # check it!
- #print("THIS %s SHOULD EQUAL THIS %s" % (varval + (1.0/rho_values[variable_id])*scenario._y[variable_id],z_for_solve-(1.0/rho_values[variable_id])*w_for_solve))
- scenario._u[variable_id] = varval - tree_node_averages[variable_id]
- else:
- raise RuntimeError("***maximize not supported by compute_y in plugin ")
-
- if self._check_output:
-
- print("Y VALUES:")
- for scenario in ph._scenario_tree._scenarios:
- print(scenario._y)
-
- print("U VALUES:")
- for scenario in ph._scenario_tree._scenarios:
- print(scenario._u)
-
-# self.check_optimality_conditions(ph)
-
- ###########################################
- # compute v values - these are node-based #
- ###########################################
-
- for stage in ph._scenario_tree._stages[:-1]:
- for tree_node in stage._tree_nodes:
- for variable_id in tree_node._standard_variable_ids:
- expected_y = 0.0
- for scenario in tree_node._scenarios:
- expected_y += ((scenario._y[variable_id] * scenario._probability) / tree_node._probability)
- tree_node._v[variable_id] = expected_y
-
- if self._check_output:
-
- print("V VALUES:")
- for stage in ph._scenario_tree._stages[:-1]:
- for tree_node in stage._tree_nodes:
- print(tree_node._v)
-
- ###########################################
- # compute norms and test for convergence #
- ###########################################
-
- p_unorm = 0.0
- p_vnorm = 0.0
-
- for stage in ph._scenario_tree._stages[:-1]:
- for tree_node in stage._tree_nodes:
- for variable_id in tree_node._standard_variable_ids:
- for scenario in tree_node._scenarios:
- this_v_val = tree_node._v[variable_id]
- p_vnorm += tree_node._probability * this_v_val * this_v_val
- this_u_val = scenario._u[variable_id]
- p_unorm += scenario._probability * this_u_val * this_u_val
-
- if self._check_output :
- print("unorm^2 = " + str(p_unorm) + " vnorm^2 = " + str(p_vnorm))
-
- p_unorm = math.sqrt(p_unorm)
- p_vnorm = math.sqrt(p_vnorm)
-
- #####################################################
- # compute phi; if greater than zero, update z and w #
- #####################################################
-
- print("")
- print("Initiating projection calculations...")
-
- with open(self._JName,"a") as f:
- f.write("%10d" % (ph._current_iteration))
-
- phi = 0.0
- sub_phi_map = {}
-
- for scenario in ph._scenario_tree._scenarios:
- cumulative_sub_phi = 0.0
- for tree_node in scenario._node_list[:-1]:
- tree_node_zs = tree_node._z
- for variable_id in tree_node._standard_variable_ids:
- var_values = scenario._x[tree_node._name]
- varval = var_values[variable_id]
- weight_values = scenario._w[tree_node._name]
- if not scenario.is_variable_stale(tree_node, variable_id):
- this_sub_phi_term = scenario._probability * ((tree_node_zs[variable_id] - varval) * (scenario._y[variable_id] + weight_values[variable_id]))
- cumulative_sub_phi += this_sub_phi_term
-
- with open(self._JName,"a") as f:
- f.write(", %10f" % (cumulative_sub_phi))
-
- sub_phi_map[scenario._name] = cumulative_sub_phi
- phi += cumulative_sub_phi
-
- with open(self._JName,"a") as f:
- for subproblem in subproblems:
- f.write(", %s" % subproblem)
- f.write("\n")
-
- print("Computed sub-phi values, by scenario:")
- for scenario_name in sorted(sub_phi_map.keys()):
- print(" %30s %16e" % (scenario_name, sub_phi_map[scenario_name]))
-
- print("")
- print("Computed phi: %16e" % phi)
- if phi > 0:
- tau = 1.0 # this is the over-relaxation parameter - we need to do something more useful
- denominator = p_unorm*p_unorm + scale_factor*p_vnorm*p_vnorm
- if self._check_output :
- print("denominator = " + str(denominator))
- theta = phi/denominator
- print("Computed theta: %16e" % theta)
- for stage in ph._scenario_tree._stages[:-1]:
- for tree_node in stage._tree_nodes:
- if self._check_output:
- print("TREE NODE ZS BEFORE: %s" % tree_node._z)
- print("TREE NODE VS BEFORE: %s" % tree_node._v)
- tree_node_zs = tree_node._z
- for variable_id in tree_node._standard_variable_ids:
- for scenario in tree_node._scenarios:
- rho_values = scenario._rho[tree_node._name]
- weight_values = scenario._w[tree_node._name]
- if self._check_output:
- print("WEIGHT VALUE PRIOR TO MODIFICATION=",weight_values[variable_id])
- print("U VALUE PRIOR TO MODIFICATION=",scenario._u[variable_id])
-# print("SUBTRACTING TERM TO Z=%s" % (tau * theta * tree_node._v[variable_id]))
- tree_node._z[variable_id] -= (tau * theta * scale_factor * tree_node._v[variable_id])
- weight_values[variable_id] += (tau * theta * scenario._u[variable_id])
- if self._check_output:
- print("NEW WEIGHT FOR VARIABLE=",variable_id,"FOR SCENARIO=",scenario._name,"EQUALS",weight_values[variable_id])
-# print("TREE NODE ZS AFTER: %s" % tree_node._z)
- elif phi == 0.0:
- print("***PHI WAS ZERO - NOT DOING ANYTHING - NO MOVES - DOING CHECK BELOW!")
- pass
- else:
- # WE MAY NOT BE SCREWED, BUT WE'LL ASSUME SO FOR NOW.
- print("***PHI IS NEGATIVE - NOT DOING ANYTHING")
-
- if self._check_output:
-
- print("Z VALUES:")
- for stage in ph._scenario_tree._stages[:-1]:
- for tree_node in stage._tree_nodes:
- print("TREE NODE=%s",tree_node._name)
- print("Zs:",tree_node._z)
-
- # CHECK HERE - PHI SHOULD BE 0 AT THIS POINT - THIS IS JUST A CHECK
- with open(self._JName,"a") as f:
- f.write("%10d" % (ph._current_iteration))
-
- # the z's have been updated - copy these to PH scenario tree xbar maps,
- # so they can be correctly transmitted to instances - this plugin is
- # responsible for xbar updates.
- for stage in ph._scenario_tree._stages[:-1]:
- for tree_node in stage._tree_nodes:
- for variable_id in tree_node._z:
- tree_node._xbars[variable_id] = tree_node._z[variable_id]
-
- #########################################################################################
- # compute the normalizers for unorm and vnorm, now that we have updated w and z values. #
- #########################################################################################
-
- unorm_normalizer = 0.0
- for stage in ph._scenario_tree._stages[:-1]:
- for tree_node in stage._tree_nodes:
- this_node_unorm_normalizer = 0.0
- for variable_id in tree_node._standard_variable_ids:
- this_z_value = tree_node._z[variable_id]
- this_node_unorm_normalizer += this_z_value**2
- unorm_normalizer += tree_node._probability * this_node_unorm_normalizer
-
- vnorm_normalizer = 0.0
- for stage in ph._scenario_tree._stages[:-1]:
- for tree_node in stage._tree_nodes:
- for scenario in tree_node._scenarios:
- this_scenario_vnorm_normalizer = 0.0
- this_scenario_ws = scenario._w[tree_node._name]
- for variable_id in tree_node._standard_variable_ids:
- this_scenario_vnorm_normalizer += this_scenario_ws[variable_id]**2
- vnorm_normalizer += scenario._probability * this_scenario_vnorm_normalizer
-
- unorm_normalizer = math.sqrt(unorm_normalizer)
- vnorm_normalizer = math.sqrt(vnorm_normalizer)
-
-# print("p_unorm=",p_unorm)
-# print("p_unorm_normalizer=",unorm_normalizer)
-# print("p_vnorm=",p_vnorm)
-# print("p_vnorm_normalizer=",vnorm_normalizer)
-
- p_unorm /= unorm_normalizer
- p_vnorm /= vnorm_normalizer
-
- scalarized_norm = math.sqrt(p_unorm*p_unorm + p_vnorm*p_vnorm)
-
- print("Computed separator norm: (%e,%e) - scalarized norm=%e" % (p_unorm, p_vnorm, scalarized_norm))
-
- self._converger._last_computed_uv_norm_value = scalarized_norm
-
-# if p_unorm < delta and p_vnorm < epsilon:
-# print("Separator norm dropped below threshold (%e,%e)" % (delta, epsilon))
-# return
-
- print("")
- print("Initiating post-projection calculations...")
-
- phi = 0.0
- sub_phi_to_scenario_map = {}
-
- for scenario in ph._scenario_tree._scenarios:
- cumulative_sub_phi = 0.0
- for tree_node in scenario._node_list[:-1]:
- tree_node_zs = tree_node._z
- for variable_id in tree_node._standard_variable_ids:
- var_values = scenario._x[tree_node._name]
- varval = var_values[variable_id]
- weight_values = scenario._w[tree_node._name]
- if not scenario.is_variable_stale(tree_node, variable_id):
- this_sub_phi_term = scenario._probability * ((tree_node_zs[variable_id] - varval) * (scenario._y[variable_id] + weight_values[variable_id]))
- cumulative_sub_phi += this_sub_phi_term
-
- with open(self._JName,"a") as f:
- f.write(", %10f" % (cumulative_sub_phi))
-
- if not cumulative_sub_phi in sub_phi_to_scenario_map:
- sub_phi_to_scenario_map[cumulative_sub_phi] = []
- sub_phi_to_scenario_map[cumulative_sub_phi].append(scenario._name)
-
- phi += cumulative_sub_phi
-
- print("Computed sub-phi values (scenario, phi, iters-since-last-incorporated):")
- for sub_phi in sorted(sub_phi_to_scenario_map.keys()):
- print_(" %16e: " % sub_phi, end="")
- for scenario_name in sub_phi_to_scenario_map[sub_phi]:
- print("%30s %4d" % (scenario_name,
- self._total_projection_steps - self._projection_step_of_last_update[scenario_name]))
-
- print("")
-
- print("Computed phi: %16e" % phi)
- with open(self._JName,"a") as f:
- f.write("\n")
-
- negative_sub_phis = [sub_phi for sub_phi in sub_phi_to_scenario_map if sub_phi < 0.0]
-
- if len(negative_sub_phis) == 0:
- print("**** YIKES! QUEUING SUBPROBLEMS AT RANDOM****")
- # TBD - THIS ASSUMES UNIQUE PHIS, WHICH IS NOT ALWAYS THE CASE.
- all_phis = sub_phi_to_scenario_map.keys()
- random.shuffle(all_phis)
- for phi in all_phis[0:ph._async_buffer_length]:
- scenario_name = sub_phi_to_scenario_map[phi][0]
-
- if ph._scenario_tree.contains_bundles():
- print("****HERE****")
- print("SCENARIO=",scenario_name)
- print("SCENARIO BUNDLE=",self._scenario_tree.get_scenario_bundle(scenario_name))
- foobar
- else:
- print("Queueing sub-problem=%s" % scenario_name)
- self._subproblems_to_queue.append(scenario_name)
-
- else:
- if self._queue_only_negative_subphi_subproblems:
- print("Queueing sub-problems whose scenarios possess the most negative phi values:")
- else:
- print("Queueing sub-problems whose scenarios possess the smallest phi values:")
- sorted_phis = sorted(sub_phi_to_scenario_map.keys())
- for phi in sorted_phis[0:ph._async_buffer_length]:
- if ((self._queue_only_negative_subphi_subproblems) and (phi < 0.0)) or (not self._queue_only_negative_subphi_subproblems):
- scenario_name = sub_phi_to_scenario_map[phi][0]
- print_("%30s %16e" % (scenario_name,phi), end="")
- self._subproblems_to_queue.append(scenario_name)
-
- print("")
-
- def reset(self, ph):
- self.__init__()
-
- def pre_ph_initialization(self, ph):
- """Called before PH initialization"""
- pass
-
- def post_instance_creation(self, ph):
- """Called after the instances have been created"""
- with open(self._JName,"w") as f:
- f.write("Phi Summary; generally two lines per iteration\n")
- f.write("Iteration ")
- for scenario in ph._scenario_tree._scenarios:
- f.write(", %10s" % (scenario._name))
- f.write(", Subproblems Returned")
- f.write("\n")
-
- def post_ph_initialization(self, ph):
- """Called after PH initialization"""
-
- # IMPORTANT: if the Eckstein-Combettes extension plugin is enabled,
- # then make sure PH is in async mode - otherwise, nothing
- # will work!
- if not ph._async_mode:
- raise RuntimeError("PH is not in async mode - this is required for the Eckstein-Combettes extension")
-
- self._total_projection_steps = 0
- for scenario in ph._scenario_tree._scenarios:
- self._projection_step_of_last_update[scenario._name] = 0
-
- # NOTE: we don't yet have a good way to get keyword options into
- # plugins - so this is mildy hack-ish. more hackish, but
- # useful, would be to extract the value from an environment
- # variable - similar to what is done in the bounds extension.
-
- # the convergence threshold should obviously be parameterized
- self._converger = EcksteinCombettesConverger(convergence_threshold=1e-5)
- ph._convergers.append(self._converger)
-
- ##########################################################
- # the following callbacks are specific to synchronous PH #
- ##########################################################
-
- def post_iteration_0_solves(self, ph):
- """Called after the iteration 0 solves"""
-
- # we want the PH estimates of the weights initially, but we'll compute them afterwards.
- ph._ph_weight_updates_enabled = False
-
- # we will also handle xbar updates (z).
- ph._ph_xbar_updates_enabled = False
-
- def post_iteration_0(self, ph):
- """Called after the iteration 0 solves, averages computation, and weight computation"""
- print("POST ITERATION 0 CALLBACK")
-
- # define y and u parameters for each non-leaf variable in each scenario.
- print("****ADDING Y, U, V, and Z PARAMETERS")
-
- for scenario in ph._scenario_tree._scenarios:
-
- scenario._y = {}
- scenario._u = {}
-
- # instance = scenario._instance
-
- for tree_node in scenario._node_list[:-1]:
-
- nodal_index_set = tree_node._standard_variable_ids
- assert nodal_index_set is not None
-
- scenario._y.update((variable_id, 0.0) for variable_id in nodal_index_set)
- scenario._u.update((variable_id, 0.0) for variable_id in nodal_index_set)
-# print "YS AFTER UPDATE:",scenario._y
-
- # define v and z parameters for each non-leaf variable in the tree.
- for stage in ph._scenario_tree._stages[:-1]:
- for tree_node in stage._tree_nodes:
-
- nodal_index_set = tree_node._standard_variable_ids
- assert nodal_index_set is not None
-
- tree_node._v = dict((i,0) for i in nodal_index_set)
- tree_node._z = dict((i,tree_node._averages[i]) for i in nodal_index_set)
-
- # copy z to xbar in the scenario tree, as we've told PH we will be taking care of it.
- for stage in ph._scenario_tree._stages[:-1]:
- for tree_node in stage._tree_nodes:
-
- nodal_index_set = tree_node._standard_variable_ids
- assert nodal_index_set is not None
-
- tree_node._xbars = dict((i,tree_node._z[i]) for i in nodal_index_set)
-
- # mainly to set up data structures.
- for subproblem in ph._scenario_tree.subproblems:
- self.asynchronous_pre_scenario_queue(ph, subproblem.name)
-
- # pick subproblems at random - we need a number equal to the async buffer length,
- # although we need all of them initially (PH does - not this particular plugin).
- async_buffer_length = ph._async_buffer_length
- all_subproblems = [subproblem.name for subproblem in ph._scenario_tree.subproblems]
- random.shuffle(all_subproblems)
- self._subproblems_to_queue = all_subproblems[0:ph._async_buffer_length]
-
- def pre_iteration_k_solves(self, ph):
- """Called before each iteration k solve"""
- pass
-
- def post_iteration_k_solves(self, ph):
- """Called after the iteration k solves"""
- pass
-
- def post_iteration_k(self, ph):
- """Called after the iteration k is finished"""
- pass
-
- ##########################################################
-
- ###########################################################
- # the following callbacks are specific to asynchronous PH #
- ###########################################################
-
- def pre_asynchronous_solves(self, ph):
- """Called before the asynchronous solve loop is executed"""
- pass
-
- def asynchronous_pre_scenario_queue(self, ph, subproblem_name):
- """Called right before each subproblem solve is been queued"""
-
- scenarios_to_process = []
-
- if ph._scenario_tree.contains_bundles():
- for scenario_name in ph._scenario_tree.get_bundle(subproblem_name).scenario_names:
- scenarios_to_process.append(ph._scenario_tree.get_scenario(scenario_name))
- else:
- scenarios_to_process.append(ph._scenario_tree.get_scenario(subproblem_name))
-
- # we need to cache the z and w that were used when solving the input scenario.
- for scenario in scenarios_to_process:
-
- scenario._xbars_for_solve = {}
- for tree_node in scenario._node_list[:-1]:
- scenario._xbars_for_solve[tree_node._name] = dict((k,v) for k,v in iteritems(tree_node._z))
-
- scenario._ws_for_solve = {}
- for tree_node in scenario._node_list[:-1]:
- scenario._ws_for_solve[tree_node._name] = dict((k,v) for k,v in iteritems(scenario._w[tree_node._name]))
-
- def post_asynchronous_var_w_update(self, ph, subproblems, scenario_solve_counts):
- """Called after a batch of asynchronous sub-problems are solved and corresponding statistics are updated"""
- print("")
- print("Computing updates in Eckstein-Combettes extension")
- self.compute_updates(ph, subproblems, scenario_solve_counts)
-
- def post_asynchronous_solves(self, ph):
- """Called after the asynchronous solve loop is executed"""
- pass
-
- def asynchronous_subproblems_to_queue(self, ph):
- """Called after subproblems within buffer length window have been processed"""
- result = self._subproblems_to_queue
- self._subproblems_to_queue = []
- return result
-
- ###########################################################
-
- def post_ph_execution(self, ph):
- """Called after PH has terminated"""
- pass
diff --git a/pyomo/pysp/plugins/examplephextension.py b/pyomo/pysp/plugins/examplephextension.py
deleted file mode 100644
index b106a7f156c..00000000000
--- a/pyomo/pysp/plugins/examplephextension.py
+++ /dev/null
@@ -1,90 +0,0 @@
-# ___________________________________________________________________________
-#
-# Pyomo: Python Optimization Modeling Objects
-# Copyright 2017 National Technology and Engineering Solutions of Sandia, LLC
-# Under the terms of Contract DE-NA0003525 with National Technology and
-# Engineering Solutions of Sandia, LLC, the U.S. Government retains certain
-# rights in this software.
-# This software is distributed under the 3-clause BSD License.
-# ___________________________________________________________________________
-
-from pyomo.common.plugin import implements, SingletonPlugin
-from pyomo.pysp import phextension
-
-
-class examplephextension(SingletonPlugin):
-
- implements (phextension.IPHExtension)
-
- def reset(self, ph):
- """Invoked to reset the state of a plugin to that of post-construction"""
- print("RESET PH CALLBACK INVOKED")
-
- def pre_ph_initialization(self,ph):
- """Called before PH initialization."""
- print("PRE INITIALIZATION PH CALLBACK INVOKED")
-
- def post_instance_creation(self, ph):
- """Called after PH initialization has created the scenario instances, but before any PH-related weights/variables/parameters/etc are defined!"""
- print("POST INSTANCE CREATION PH CALLBACK INVOKED")
-
- def post_ph_initialization(self, ph):
- """Called after PH initialization!"""
- print("POST INITIALIZATION PH CALLBACK INVOKED")
-
- def post_iteration_0_solves(self, ph):
- """Called after the iteration 0 solves!"""
- print("POST ITERATION 0 SOLVE PH CALLBACK INVOKED")
-
- def post_iteration_0(self, ph):
- """Called after the iteration 0 solves, averages computation, and weight computation"""
- print("POST ITERATION 0 PH CALLBACK INVOKED")
-
- def pre_iteration_k_solves(self, ph):
- """Called immediately before the iteration k solves!"""
- print("PRE ITERATION K SOLVE PH CALLBACK INVOKED")
-
- def post_iteration_k_solves(self, ph):
- """Called after the iteration k solves!"""
- print("POST ITERATION K SOLVE PH CALLBACK INVOKED")
-
- def post_iteration_k(self, ph):
- """Called after the iteration k is finished, after weights have been updated!"""
- print("POST ITERATION K PH CALLBACK INVOKED")
-
- def post_ph_execution(self, ph):
- """Called after PH has terminated!"""
- print("POST EXECUTION PH CALLBACK INVOKED")
-
-
-class examplephsolverserverextension(SingletonPlugin):
-
- implements (phextension.IPHSolverServerExtension)
-
- def pre_ph_initialization(self,ph):
- """Called before PH initialization."""
- print("PRE INITIALIZATION PHSOLVERSERVER CALLBACK INVOKED ON WORKER: "+ph.WORKERNAME)
-
- def post_instance_creation(self,ph):
- """Called after the instances have been created."""
- print("POST INSTANCE CREATION PHSOLVERSERVER CALLBACK INVOKED ON WORKER: "+ph.WORKERNAME)
-
- def post_ph_initialization(self, ph):
- """Called after PH initialization!"""
- print("POST INITIALIZATION PHSOLVERSERVER CALLBACK INVOKED ON WORKER: "+ph.WORKERNAME)
-
- def pre_iteration_0_solve(self, ph):
- """Called before the iteration 0 solve begins!"""
- print("PRE ITERATION 0 SOLVE PHSOLVERSERVER CALLBACK INVOKED ON WORKER: "+ph.WORKERNAME)
-
- def post_iteration_0_solve(self, ph):
- """Called after the iteration 0 solve is finished!"""
- print("POST ITERATION 0 SOLVE PHSOLVERSERVER CALLBACK INVOKED ON WORKER: "+ph.WORKERNAME)
-
- def pre_iteration_k_solve(self, ph):
- """Called before the iteration k solve begins!"""
- print("PRE ITERATION K SOLVE PHSOLVERSERVER CALLBACK INVOKED ON WORKER: "+ph.WORKERNAME)
-
- def post_iteration_k_solve(self, ph):
- """Called after the iteration k solve is finished!"""
- print("POST ITERATION K SOLVE PHSOLVERSERVER CALLBACK INVOKED ON WORKER: "+ph.WORKERNAME)
diff --git a/pyomo/pysp/plugins/interscenario.py b/pyomo/pysp/plugins/interscenario.py
deleted file mode 100644
index e06baa25d46..00000000000
--- a/pyomo/pysp/plugins/interscenario.py
+++ /dev/null
@@ -1,1290 +0,0 @@
-# ___________________________________________________________________________
-#
-# Pyomo: Python Optimization Modeling Objects
-# Copyright 2017 National Technology and Engineering Solutions of Sandia, LLC
-# Under the terms of Contract DE-NA0003525 with National Technology and
-# Engineering Solutions of Sandia, LLC, the U.S. Government retains certain
-# rights in this software.
-# This software is distributed under the 3-clause BSD License.
-# ___________________________________________________________________________
-
-import operator
-import math
-from six import iterkeys, iteritems, StringIO
-from six.moves import xrange
-import weakref
-
-from pyutilib.misc import reset_redirect, setup_redirect
-from pyomo.common.timing import toc
-
-from pyomo.core import (
- minimize, value, TransformationFactory,
- ComponentUID, Block, Constraint, ConstraintList,
- Param, Var, VarList, Set, Objective, Suffix,
- Binary, NonNegativeIntegers,
-)
-from pyomo.opt import (
- SolverFactory, SolverStatus, TerminationCondition, ProblemFormat )
-from pyomo.pysp import phextension
-from pyomo.solvers.plugins.smanager.phpyro import SolverManager_PHPyro
-from pyomo.common.plugin import SingletonPlugin, implements
-
-from pyomo.repn.standard_repn import (preprocess_block_constraints,
- preprocess_block_objectives)
-from pyomo.pysp.phsolverserverutils import InvocationType
-from pyomo.pysp.convergence import NormalizedTermDiffConvergence
-
-import logging
-logger = logging.getLogger('pyomo.pysp')
-
-import pyomo.version
-PYOMO_4_0 = pyomo.version.version_info[:2] < (4,1)
-
-FALLBACK_ON_BRUTE_FORCE_PREPROCESS = False
-
-_acceptable_termination_conditions = set([
- TerminationCondition.optimal,
- TerminationCondition.globallyOptimal,
- TerminationCondition.locallyOptimal,
-])
-_infeasible_termination_conditions = set([
- TerminationCondition.infeasible,
- TerminationCondition.invalidProblem,
-])
-
-def get_modified_instance( ph, scenario_tree, scenario_or_bundle, **options):
- # Find the model
- if scenario_tree.contains_bundles():
- model = ph._bundle_binding_instance_map[scenario_or_bundle._name]
- else:
- model = ph._instances[scenario_or_bundle._name]
- b = model.component('_interscenario_plugin')
- if b is not None:
- return model
-
- #
- # We need to add the interscenario information to this model
- #
- model._interscenario_plugin = b = Block()
-
- # Save our options
- #
- b.epsilon = options.pop('epsilon')
- b.cut_scale = options.pop('cut_scale')
- b.allow_slack = options.pop('allow_slack')
- b.enable_rho = options.pop('enable_rho')
- b.enable_cuts = options.pop('enable_cuts')
- assert( len(options) == 0 )
-
- # Information for generating cuts
- #
- b.cutlist = ConstraintList()
- b.abs_int_vars = VarList(within=NonNegativeIntegers)
- b.abs_binary_vars = VarList(within=Binary)
-
- # Note: the var_ids are on the ORIGINAL scenario models
- rootNode = scenario_tree.findRootNode()
- var_ids = list(iterkeys(rootNode._variable_datas))
-
- # Right now, this is hard-coded for 2-stage problems - so we only
- # need to worry about the variables from the root node. These
- # variables should exist on all scenarios. Set up a (trivial)
- # equality constraint for each variable:
- # var == current_value{param} + separation_variable{var, fixed=0}
- b.STAGE1VAR = _S1V = Set(initialize=var_ids)
- b.separation_variables = _sep = Var( _S1V, dense=True )
- b.fixed_variable_values = _param = Param(_S1V, mutable=True, initialize=0)
-
- b.rho = weakref.ref(model.component('PHRHO_%s' % rootNode._name))
- b.weights = weakref.ref(model.component('PHWEIGHT_%s' % rootNode._name))
-
- if b.allow_slack:
- for idx in _sep:
- _sep[idx].setlb(-b.epsilon)
- _sep[idx].setub(b.epsilon)
- else:
- _sep.fix(0)
-
- _cuidBuffer = {}
- _src = b.local_stage1_varmap = {}
- for i in _S1V:
- # Note indexing: for each 1st stage var, pick an arbitrary
- # (first) scenario and return the variable (and not it's
- # probability)
- _cuid = ComponentUID(rootNode._variable_datas[i][0][0], _cuidBuffer)
- _src[i] = weakref.ref(_cuid.find_component_on(model))
- #_base_src[i] = weakref.ref(_cuid.find_component_on(base_model))
-
- def _set_var_value(b, i):
- return _param[i] + _sep[i] - _src[i]() == 0
- b.fixed_variables_constraint \
- = _con = Constraint( _S1V, rule=_set_var_value )
-
- #
- # TODO: When we get the duals of the first-stage variables, do we
- # want the dual WRT the original objective, or the dual WRT the
- # augmented objective?
- #
- # Move the objective to a standardized place so we can easily find it later
- if PYOMO_4_0:
- _orig_objective = list( x[2] for x in model.all_component_data(
- Objective, active=True, descend_into=True ) )
- else:
- _orig_objective = list( model.component_data_objects(
- Objective, active=True, descend_into=True ) )
- assert(len(_orig_objective) == 1)
- _orig_objective = _orig_objective[0]
- b.original_obj = weakref.ref(_orig_objective)
-
- # add (and deactivate) the objective for the infeasibility
- # separation problem.
- b.separation_obj = Objective(
- expr= sum( _sep[i]**2 for i in var_ids ),
- sense = minimize )
-
- # Make sure we get dual information
- if 'dual' not in model:
- # Export and import floating point data
- model.dual = Suffix(direction=Suffix.IMPORT_EXPORT)
- #if 'rc' not in model:
- # model.rc = Suffix(direction=Suffix.IMPORT_EXPORT)
-
- if FALLBACK_ON_BRUTE_FORCE_PREPROCESS:
- model.preprocess()
- else:
- _map = {}
- preprocess_block_constraints(b, idMap=_map)
-
- # Note: we wait to deactivate the objective until after we
- # preprocess so that the obective is correctly processed.
- b.separation_obj.deactivate()
- # (temporarily) deactivate the fixed stage-1 variables
- _con.deactivate()
-
- toc("InterScenario plugin: generated modified problem instance")
- return model
-
-def get_dual_values(solver, model):
- if id(model) not in get_dual_values.discrete_stage2_vars:
- # 1st attempt to get duals: we need to see if the model has
- # discrete variables (solvers won't give duals if there are
- # still active discrete variables)
- try:
- get_dual_values.discrete_stage2_vars[id(model)] = False
- return get_dual_values(solver, model)
- except:
- get_dual_values.discrete_stage2_vars[id(model)] = True
- # Find the discrete variables to populate the list
- return get_dual_values(solver, model)
-
- duals = {}
- _con = model._interscenario_plugin.fixed_variables_constraint
-
- if get_dual_values.discrete_stage2_vars[id(model)]:
- # Fix all discrete variables
- xfrm = TransformationFactory('core.relax_discrete')
- if PYOMO_4_0:
- xfrm.apply(model, inplace=True)
- else:
- xfrm.apply_to(model)
-
- # Note: preprocessing is only necessary if we are changing a
- # fixed/freed variable.
- if FALLBACK_ON_BRUTE_FORCE_PREPROCESS:
- model.preprocess()
- else:
- _map = {}
- preprocess_block_constraints(
- model._interscenario_plugin, idMap=_map)
-
- #SOLVE
- results = solver.solve(model, warmstart=True)
- ss = results.solver.status
- tc = results.solver.termination_condition
- #self.timeInSolver += results['Solver'][0]['Time']
- if ss == SolverStatus.ok and tc in _acceptable_termination_conditions:
- state = ''
- elif tc in _infeasible_termination_conditions:
- state = 'INFEASIBLE'
- else:
- state = 'NONOPTIMAL'
- if state:
- logger.warning(
- "Resolving subproblem model with relaxed second-stage "
- "discrete variables failed (%s). "
- "Dual values not available." % (state,) )
- else:
- # Get the duals
- if PYOMO_4_0:
- model.load(results)
- else:
- model.solutions.load_from(results)
- #model.dual.pprint()
- for varid in model._interscenario_plugin.STAGE1VAR:
- duals[varid] = model.dual[_con[varid]]
- # Free the discrete second-stage variables
- if PYOMO_4_0:
- xfrm.apply(model, inplace=True, undo=True)
- else:
- xfrm.apply_to(model, undo=True)
-
- else:
- # return the duals
- for varid in model._interscenario_plugin.STAGE1VAR:
- duals[varid] = model.dual[_con[varid]]
-
- return duals
-
-get_dual_values.discrete_stage2_vars = {}
-
-
-def solve_separation_problem(solver, model, fallback):
- xfrm = TransformationFactory('core.relax_discrete')
- if PYOMO_4_0:
- xfrm.apply(model, inplace=True)
- else:
- xfrm.apply_to(model)
-
- _block = model._interscenario_plugin
-
- # Switch objectives
- _block.original_obj().deactivate()
- _block.separation_obj.activate()
-
- #_block.separation_variables.unfix()
- _par = _block.fixed_variable_values
- _sep = _block.separation_variables
- allow_slack = _block.allow_slack
- if allow_slack:
- epsilon = _block.epsilon
- for idx in _sep:
- _sep[idx].setlb(None)
- _sep[idx].setub(None)
- else:
- _sep.unfix()
-
- # Note: preprocessing is only necessary if we are changing a
- # fixed/freed variable.
- if FALLBACK_ON_BRUTE_FORCE_PREPROCESS:
- model.preprocess()
- else:
- _map = {}
- preprocess_block_objectives(_block, idMap=_map)
- preprocess_block_constraints(_block, idMap=_map)
-
- #SOLVE
- output_buffer = StringIO()
- setup_redirect(output_buffer)
- try:
- results = solver.solve(model, tee=True)
- except:
- logger.warning("Exception raised solving the interscenario "
- "evaluation subproblem")
- logger.warning("Solver log:\n%s" % output_buffer.getvalue())
- raise
- finally:
- reset_redirect()
-
- ss = results.solver.status
- tc = results.solver.termination_condition
- #self.timeInSolver += results['Solver'][0]['Time']
- if ss == SolverStatus.ok and tc in _acceptable_termination_conditions:
- state = ''
- if PYOMO_4_0:
- model.load(results)
- else:
- model.solutions.load_from(results)
- elif tc in _infeasible_termination_conditions:
- state = 'INFEASIBLE'
- ans = "!!!!"
- else:
- state = 'NONOPTIMAL'
- ans = "????"
- if state:
- if fallback:
- #logger.warning("Initial attempt to solve the interscenario cut "
- # "separation subproblem failed with the default "
- # "solver (%s)." % (state,) )
- pass
- else:
- logger.warning("Solving the interscenario cut separation "
- "subproblem failed (%s)." % (state,) )
- logger.warning("Solver log:\n%s" % output_buffer.getvalue())
- else:
- cut = dict((vid, (value(_sep[vid]), value(_par[vid])))
- for vid in _block.STAGE1VAR)
- obj = value(_block.separation_obj)
- ans = (math.sqrt(obj), cut)
-
- output_buffer.close()
-
- # Restore the objective
- _block.original_obj().activate()
- _block.separation_obj.deactivate()
-
- # Turn off the separation variables
- if allow_slack:
- for idx in _sep:
- _sep[idx].setlb(-epsilon)
- _sep[idx].setub(epsilon)
- else:
- _sep.fix(0)
-
- if PYOMO_4_0:
- xfrm.apply(model, inplace=True, undo=True)
- else:
- xfrm.apply_to(model, undo=True)
-
- if FALLBACK_ON_BRUTE_FORCE_PREPROCESS:
- pass
- else:
- _map = {}
- preprocess_block_objectives(_block, idMap=_map)
- return ans
-
-
-def add_new_cuts( ph, scenario_tree, scenario_or_bundle,
- feasibility_cuts, incumbent_cuts, resolve ):
- # Find the model
- m = get_modified_instance(ph, scenario_tree, scenario_or_bundle)
- _block = m._interscenario_plugin
- epsilon = _block.epsilon
- cut_scale = _block.cut_scale
-
- # Add the cuts to the ConstraintList on the model
- _cutlist = _block.cutlist
- _src = _block.local_stage1_varmap
- for cut_obj, cut in feasibility_cuts:
- expr = sum(
- 2 * (_sep*(1-cut_scale))
- * (_src[i]() - (_par+_sep*(1-cut_scale)))
- for i, (_sep, _par) in iteritems(cut)
- if abs(_sep) > epsilon*max(1,_par)
- )
- if expr != 0:
- _cutlist.add( expr >= 0 )
-
- for cut in incumbent_cuts:
- _int_binaries = []
- for vid, val in iteritems(cut[1]):
- # Deal with integer variables
- # b + c >= z
- # b <= M*y
- # c <= M*(1-y)
- # x - val = c - b
- # b,c >= 0
- b = _block.abs_int_vars.add()
- c = _block.abs_int_vars.add()
- z = _block.abs_binary_vars.add()
- y = _block.abs_binary_vars.add()
- _cutlist.add( b + c >= z )
- _cutlist.add( b <= _src[vid]().ub * y )
- _cutlist.add( c <= _src[vid]().ub * (1-y) )
- _cutlist.add( _src[vid]() - val == c - b )
- _int_binaries.append( z )
-
- _cutlist.add( sum(_int_binaries) + sum(
- _src[vid]() if val<0.5 else (1-_src[vid]())
- for vid,val in iteritems(cut[0]) ) >= 1 )
-
- if FALLBACK_ON_BRUTE_FORCE_PREPROCESS:
- m.preprocess()
- else:
- _map = {}
- preprocess_block_constraints(_block, idMap=_map)
-
- if resolve:
- results = ph._solver.solve(m, warmstart=True)
- ss = results.solver.status
- tc = results.solver.termination_condition
- #self.timeInSolver += results['Solver'][0]['Time']
- if ss == SolverStatus.ok and tc in _acceptable_termination_conditions:
- if PYOMO_4_0:
- m.load(results)
- else:
- m.solutions.load_from(results)
- _src = _block.local_stage1_varmap
-
- return (
- # Note: _src is {id: weakref} and original_obj is a
- # weakref; so dereference weakref before computing value
- dict((_id, value(_var())) for _id, _var in iteritems(_src)),
- value(_block.original_obj()) )
- else:
- return None
-
-
-def solve_fixed_scenario_solutions(
- ph, scenario_tree, scenario_or_bundle,
- scenario_solutions, **model_options ):
-
- model = get_modified_instance(
- ph, scenario_tree, scenario_or_bundle, **model_options )
- _block = model._interscenario_plugin
- _param = _block.fixed_variable_values
- _sep = _block.separation_variables
- _con = _block.fixed_variables_constraint
-
- # We need to know which scenarios are local to this instance ... so
- # we don't waste time repeating work.
- if scenario_tree.contains_bundles():
- local_scenarios = scenario_or_bundle._scenario_names
- else:
- local_scenarios = [ scenario_or_bundle._name ]
-
- ipopt = SolverFactory("ipopt")
-
- #
- # Turn off RHO!
- #
- _saved_rho_values = _block.rho().extract_values()
- _block.rho().store_values(0)
-
- # Enable the constraints to fix the Stage 1 variables:
- _con.activate()
-
- # Solve each solution here and cache the resulting objective
- cutlist = []
- obj_values = []
- dual_values = []
- for var_values, scenario_name_list in scenario_solutions:
- local = False
- for scenario in local_scenarios:
- if scenario in scenario_name_list:
- local = True
- break
- if local:
- # Here is where we could save some time and not repeat work
- # ... for now I am being lazy and re-solving so that we get
- # the dual values, etc for this scenario as well. If nothing
- # else, it makes averaging easier.
- pass
-
- assert( len(var_values) == len(_param) )
- for var_id, var_value in iteritems(var_values):
- _param[var_id] = var_value
-
- # TODO: We only need to update the StandardRepn for the binding
- # constraints ... so we could save a LOT of time by not
- # preprocessing the whole model.
- #
- if FALLBACK_ON_BRUTE_FORCE_PREPROCESS:
- model.preprocess()
- else:
- var_id_map = {}
- preprocess_block_constraints(_block, idMap=var_id_map)
-
- toc("preprocessed scenario %s" % ( scenario_or_bundle._name, ))
- output_buffer = StringIO()
- setup_redirect(output_buffer)
- try:
- results = ph._solver.solve(model, tee=True) # warmstart=True)
- except:
- logger.warning("Exception raised solving the interscenario "
- "evaluation subproblem")
- logger.warning("Solver log:\n%s" % output_buffer.getvalue())
- raise
- finally:
- reset_redirect()
- toc("solved solution from scenario set %s on scenario %s" %
- ( scenario_name_list, scenario_or_bundle._name, ))
-
- ss = results.solver.status
- tc = results.solver.termination_condition
- #self.timeInSolver += results['Solver'][0]['Time']
- if ss == SolverStatus.ok and tc in _acceptable_termination_conditions:
- state = 0 #'FEASIBLE'
- if PYOMO_4_0:
- model.load(results)
- else:
- model.solutions.load_from(results)
- #
- # Turn off W, recompute the objective
- #
- _saved_w_values = _block.weights().extract_values()
- _block.weights().store_values(0)
- obj_values.append(value(_block.original_obj()))
- _block.weights().store_values(_saved_w_values)
-
- # NOTE: Getting the dual values resolves the model
- # (potentially relaxing second state variables.
- if _block.enable_rho:
- dual_values.append( get_dual_values(ph._solver, model) )
- else:
- dual_values.append(None)
- cutlist.append(". ")
- elif True or tc in _infeasible_termination_conditions:
- state = 1 #'INFEASIBLE'
- obj_values.append(None)
- dual_values.append(None)
- if _block.enable_cuts:
- cut = solve_separation_problem(ph._solver, model, True)
- if cut == '????':
- if ph._solver.problem_format() != ProblemFormat.nl:
- model.preprocess()
- #preprocess_block_objectives(_block)
- #preprocess_block_constraints(_block)
- cut = solve_separation_problem(ipopt, model, False)
- else:
- cut = "X "
- cutlist.append( cut )
- toc("solved separation problem for solution from scenario set "
- "%s on scenario %s" %
- ( scenario_name_list, scenario_or_bundle._name, ))
- else:
- state = 2 #'NONOPTIMAL'
- obj_values.append(None)
- dual_values.append(None)
- cutlist.append("? ")
- logger.warning("Solving the interscenario evaluation "
- "subproblem failed (%s)." % (state,) )
- logger.warning("Solver log:\n%s" % output_buffer.getvalue())
-
-
- #
- # Turn RHO, W back on!
- #
- _block.weights().store_values(_saved_w_values)
- _block.rho().store_values(_saved_rho_values)
-
- # Disable the constraints to fix the Stage 1 variables:
- _con.deactivate()
-
- return obj_values, dual_values, cutlist
-
-
-class InterScenarioPlugin(SingletonPlugin):
-
- implements(phextension.IPHExtension)
-
- def __init__(self):
- self.enableRhoUpdates = True
- self.enableFeasibilityCuts = True
- self.enableIncumbentCuts = True
- self.epsilon = 1e-7
- self.cut_scale = 0#1e-4
- self.allow_variable_slack = False
- # Force this plugin to run every N iterations
- self.iterationInterval = 100
- # Alternative methods to trigger the plugin:
- #
- # If the convergence metric degrades by either a relative or
- # absolute amount
- self.convergenceRelativeDegredation = 10.33
- self.convergenceAbsoluteDegredation = 10.001
- # If at least recutThreshold fraction of all-to-all scenario
- # tests produced feasibility cuts
- self.recutThreshold = 0.33
- # If at least this fraction of unique solutions are preserved
- # from one iteration to the next
- self.repeated_solution_threshhold = 0.90
-
- # multiplier on computed rho values
- self.rhoScale = 0.75
- # How quickly rho moves to new values [0..1]
- # 0: no damping (jump to calculated rho)
- # 1: complete damping (do not change current value of rho)
- self.rhoDamping = 0.1
- # Minimum difference in objective to include a cut, and minimum
- # difference in variable values to include that term in a cut
- self.cutThreshold_minDiff = 0.0001
- # Fraction of the cut library to use for cross-scenario
- # (all-to-all) cuts
- self.cutThreshold_crossCut = 0
- # Force the InterScenario plugin to re-run while the improvement
- # in the Lagrangean bound is at least this much:
- self.iteration0RecutBoundImprovement = 0.0025
-
- def reset(self, ph):
- self.incumbent = None
- self.rho = None
- self.x_deviation = None
- self.lastConvergenceMetric = None
- self.feasibility_cuts = []
- self.incumbent_cuts = []
- self.lastRun = 0
- self.average_solution = None
- self.converger = NormalizedTermDiffConvergence()
- self.unique_scenario_solutions = []
-
- def pre_ph_initialization(self,ph):
- self.reset(ph)
- pass
-
- def post_instance_creation(self,ph):
- if self.enableRhoUpdates:
- rootNode = ph._scenario_tree.findRootNode()
- for v in rootNode._xbars:
- ph.setRhoAllScenarios(rootNode, v, 0)
- pass
-
- def post_ph_initialization(self, ph):
- if len(ph._scenario_tree._stages) > 2:
- raise RuntimeError(
- "InterScenario plugin only works with 2-stage problems" )
-
- self._sense_to_min = 1 if ph._objective_sense == minimize else -1
-
- # We are going to manage RHO here. So, we want to turn it off
- # until we finish the initial round of interscenario feasibility
- # cuts.
- if self.enableRhoUpdates:
- rootNode = ph._scenario_tree.findRootNode()
- for v in rootNode._xbars:
- ph.setRhoAllScenarios(rootNode, v, 0)
- #self.rho = dict((v,ph._rho) for v in ph._scenario_tree.findRootNode()._xbars)
-
- def post_iteration_0_solves(self, ph):
- self._collect_unique_scenario_solutions(ph)
- self._interscenario_plugin(ph)
- count = 0
- while self.rho is None and self.feasibility_cuts:
- count += 1
- toc( "InterScenario plugin: PH iteration 0 re-solve pass %s"
- % (count,) )
- _stale_scenarios = []
- for _id, _soln in enumerate(self.unique_scenario_solutions):
- _was_cut = sum(
- 1 for c in self.feasibility_cuts if type(c[_id]) is tuple)
- if _was_cut:
- _stale_scenarios.extend(_soln[1])
-
- self._distribute_cuts(ph, True)
- toc("InterScenario plugin: distributed cuts to scenarios")
- self._collect_unique_scenario_solutions(ph)
- self._interscenario_plugin(ph)
- self.lastRun = 0
-
- def post_iteration_0(self, ph):
- self.converger.update( ph._current_iteration,
- ph,
- ph._scenario_tree,
- ph._instances )
- self.lastConvergenceMetric = self.converger.lastMetric()
- pass
-
- def pre_iteration_k_solves(self, ph):
- if self.feasibility_cuts or self.incumbent_cuts:
- self._distribute_cuts(ph)
- pass
-
- def post_iteration_k_solves(self, ph):
- self.converger.update( ph._current_iteration,
- ph,
- ph._scenario_tree,
- ph._instances )
- curr = self.converger.lastMetric()
- last = self.lastConvergenceMetric
- delta = curr - last
- #print("InterScenario convergence:", last, curr, delta)
- run = False
-
- if ( self._collect_unique_scenario_solutions(ph) >=
- self.repeated_solution_threshhold ):
- print("InterScenario plugin: triggered by no change in "
- "scenario solutions")
- run = True
-
- if ( delta > last * self.convergenceRelativeDegredation and
- delta > self.convergenceAbsoluteDegredation ):
- print( "InterScenario plugin: triggered by convergence degredation "
- "(%0.4f; %+0.4f)" % (curr, delta) )
- run = True
-
- if ph._current_iteration-self.lastRun >= self.iterationInterval:
- print("InterScenario plugin: triggered by iteration limit")
- run = True
-
- if self.rho is None:
- print( "InterScenario plugin: triggered to initialize rho")
- run = True
- elif self.enableRhoUpdates:
- rootNode = ph._scenario_tree.findRootNode()
- for _id, rho in iteritems(self.rho):
- _max = rootNode._maximums[_id]
- _min = rootNode._minimums[_id]
- if rho < self.epsilon and _max - _min > self.epsilon:
- print( "InterScenario plugin: triggered by variable "
- "divergence with rho==0 (%s: %s; [%s, %s])"
- % (_id, rho, _max, _min))
- run = True
- break
-
- if run:
- self.lastRun = ph._current_iteration
- self._interscenario_plugin(ph)
-
- self.lastConvergenceMetric = curr
- pass
-
- def post_iteration_k(self, ph):
- pass
-
- def post_ph_execution(self, ph):
- self._collect_unique_scenario_solutions(ph)
- self._interscenario_plugin(ph)
- pass
-
-
- def _interscenario_plugin(self,ph):
- toc("InterScenario plugin: analyzing scenario dual information")
-
- # (1) Collect all scenario (first) stage variables
- #self._collect_unique_scenario_solutions(ph)
-
- # (2) Filter them to find a set we want to distribute
- pass
-
- # (3) Distribute (some) of the variable sets out to the
- # scenarios, fix, and resolve; Collect and return the
- # objectives, duals, and any cuts
- partial_obj_values, dual_values, cuts, probability \
- = self._solve_interscenario_solutions( ph )
-
- # Compute the non-anticipative objective values for each
- # scenario solution
- self.feasible_objectives = self._compute_objective(
- partial_obj_values, probability )
-
- for _id, soln in enumerate(self.unique_scenario_solutions):
- _scenarios = [ph._scenario_tree.get_scenario(x) for x in soln[1]]
- print(
- " Solution %2d: generated %2d cuts, "
- "cut by %2d other scenarios; objective %10s, "
- "scenario cost [%s], cut obj [%s] [generated by %s]" % (
- _id,
- sum(1 for c in cuts[_id] if type(c) is tuple),
- sum(1 for c in cuts if type(c[_id]) is tuple),
- "None" if self.feasible_objectives[_id] is None
- else "%10.2f" % self.feasible_objectives[_id],
- ", ".join("%10.2f" % x._cost for x in _scenarios),
- " ".join("%5.2f" % x[0] if type(x) is tuple else "%5s" % x
- for x in cuts[_id]),
- ','.join(soln[1])
- ))
-
- scenarioCosts = [ ph._scenario_tree.get_scenario(x)._cost
- for s in self.unique_scenario_solutions
- for x in s[1] ]
- scenarioProb = [ ph._scenario_tree.get_scenario(x)._probability
- for s in self.unique_scenario_solutions
- for x in s[1] ]
- _avg = sum( scenarioProb[i]*c for i,c in enumerate(scenarioCosts) )
- _max = max( scenarioCosts )
- _min = min( scenarioCosts )
- if self.average_solution is None:
- _del_avg = None
- _del_avg_str = "-----%"
- else:
- _prev = self.average_solution
- _del_avg = (_avg-_prev) / max(abs(_avg),abs(_prev))
- _del_avg_str = "%+.2f%%" % ( 100*_del_avg, )
- self.average_solution = _avg
- print(" Average scenario cost: %f (%s) Max-min: %f (%0.2f%%)" % (
- _avg, _del_avg_str, _max-_min, abs(100.*(_max-_min)/_avg) ))
-
- # (4) save any cuts for distribution before the next solve
- #self.feasibility_cuts = []
- #for c in cuts:
- # self.feasibility_cuts.extend(
- # x for x in c if type(x) is tuple and x[0] > self.cutThreshold )
- #cutCount = len(self.feasibility_cuts)
- if self.enableFeasibilityCuts:
- self.feasibility_cuts = cuts
- cutCount = sum( sum( 1 for x in c if type(x) is tuple
- and x[0]>self.cutThreshold_minDiff )
- for c in cuts )
- subProblemCount = sum(len(c) for c in cuts)
-
- # (5) compute and publish the new incumbent
- self._update_incumbent(ph)
-
- # (6a) If this is iteration 0, and we have feasibility cuts, and
- # they are (sufficiently) helping the Lagrangean bound, then
- # skip setting rho and do another round oc cuts
- if ph._current_iteration == 0:
- # Tell ph that we may have a good opter bound
- ph._update_reported_bounds(outer=self.average_solution)
-
- if ( cutCount > self.recutThreshold*(subProblemCount-len(cuts))
- and ( _del_avg is None or
- _del_avg > self.iteration0RecutBoundImprovement )):
- # Bypass RHO updates and check for more cuts
- #self.lastRun = ph._current_iteration - self.iterationInterval
- return
-
- # (6b) compute updated rho estimates
- new_rho, loginfo = self._process_dual_information(
- ph, dual_values, probability )
- _scale = self.rhoScale
- if self.rho is None:
- print("InterScenario plugin: initializing rho")
- self.rho = {}
- for v,r in iteritems(new_rho):
- self.rho[v] = _scale*r
- else:
- _damping = self.rhoDamping
- for v,r in iteritems(new_rho):
- if self.rho[v]:
- self.rho[v] += (1-_damping)*(_scale*r - self.rho[v])
- #self.rho[v] = max(_scale*r, self.rho[v]) - \
- # _damping*abs(_scale*r - self.rho[v])
- else:
- self.rho[v] = _scale*r
-
- for v,l in sorted(iteritems(loginfo)):
- if v is None:
- print(l)
- else:
- print(l % (self.rho[v],))
-
- #print("SETTING SELF.RHO", self.rho)
- rootNode = ph._scenario_tree.findRootNode()
- if self.enableRhoUpdates:
- for v, r in iteritems(self.rho):
- ph.setRhoAllScenarios(rootNode, v, r)
-
-
- def _collect_unique_scenario_solutions(self, ph):
- # list of (varmap, scenario_list) tuples
- _old_unique_scenario_solutions = self.unique_scenario_solutions
- self.unique_scenario_solutions = []
-
- # See ph.py:update_variable_statistics for a multistage version...
- rootNode = ph._scenario_tree.findRootNode()
- for scenario in rootNode._scenarios:
- _this_sol = dict(scenario._x[rootNode._name])
- for _id, _val in iteritems(scenario._x[rootNode._name]):
- #if rootNode.is_variable_fixed(_id):
- # continue
- if rootNode.is_variable_binary(_id) or \
- rootNode.is_variable_integer(_id):
- _this_sol[_id] = int(round(_val))
-
- found = False
- # Note: because we are looking for unique variable values,
- # then if the user is bundling, this will implicitly re-form
- # the bundles
- for _sol in self.unique_scenario_solutions:
- if _this_sol == _sol[0]:
- _sol[1].append(scenario._name)
- found = True
- break
- if not found:
- self.unique_scenario_solutions.append(
- ( _this_sol, [scenario._name] ) )
-
- _unchanged = 0
- for _old_soln, _old_scen in _old_unique_scenario_solutions:
- for _soln, _scen in self.unique_scenario_solutions:
- if _old_soln == _soln:
- _unchanged += 1
- break
- print( "Interscenario plugin: %s unchanged scenario solutions "
- "(out of %s)" %
- ( _unchanged, len(self.unique_scenario_solutions) ))
- return float(_unchanged) / len(self.unique_scenario_solutions)
-
- def _solve_interscenario_solutions(self, ph):
- results = ([],[],[],)
- probability = []
- #cutlist = []
- distributed = isinstance( ph._solver_manager, SolverManager_PHPyro )
- action_handles = []
-
- if ph._scenario_tree.contains_bundles():
- subproblems = ph._scenario_tree._scenario_bundles
- else:
- subproblems = ph._scenario_tree._scenarios
-
- for problem in subproblems:
- probability.append(problem._probability)
- options=( self.unique_scenario_solutions, )
- kwd_options = {
- 'epsilon': self.epsilon,
- 'cut_scale': self.cut_scale,
- 'allow_slack': self.allow_variable_slack,
- 'enable_rho': self.enableRhoUpdates,
- 'enable_cuts': self.enableFeasibilityCuts
- }
- if distributed:
- action_handles.append(
- ph._solver_manager.queue(
- action="invoke_external_function",
- name=problem._name,
- queue_name=ph._phpyro_job_worker_map[problem._name],
- invocation_type=InvocationType.SingleInvocation.key,
- generateResponse=True,
- module_name='pyomo.pysp.plugins.interscenario',
- function_name='solve_fixed_scenario_solutions',
- function_kwds=kwd_options,
- function_args=options,
- ) )
- else:
- _tmp = solve_fixed_scenario_solutions(
- ph, ph._scenario_tree, problem,
- *options, **kwd_options )
- for i,r in enumerate(results):
- r.append(_tmp[i])
- #cutlist.extend(_tmp[-1])
-
- if distributed:
- num_results_so_far = 0
- num_results = len(action_handles)
- for r in results:
- r.extend([None]*num_results)
-
- while (num_results_so_far < num_results):
- _ah = ph._solver_manager.wait_any()
- _ah_id = action_handles.index(_ah)
- _tmp = ph._solver_manager.get_results(_ah)
- for i,r in enumerate(results):
- r[_ah_id] = _tmp[i]
- #cutlist.extend(_tmp[-1])
- num_results_so_far += 1
-
- return results + (probability,) # + (cutlist,)
-
-
- def _distribute_cuts(self, ph, resolve=False):
- totalCuts = 0
- cutObj = sorted( c[0] for x in self.feasibility_cuts for c in x
- if type(c) is tuple
- and c[0] > self.cutThreshold_minDiff )
- if cutObj:
- allCutThreshold = cutObj[
- min( int((1-self.cutThreshold_crossCut)*len(cutObj)),
- len(cutObj)-1 ) ]
- else:
- allCutThreshold = 1
-
- distributed = isinstance( ph._solver_manager, SolverManager_PHPyro )
-
- if ph._scenario_tree.contains_bundles():
- subproblems = ph._scenario_tree._scenario_bundles
- get_scenarios = lambda x: x._scenario_names
- else:
- subproblems = ph._scenario_tree._scenarios
- get_scenarios = lambda x: [x]
-
- resolves = []
- for problem in subproblems:
- cuts = []
- for id, (x, s) in enumerate(self.unique_scenario_solutions):
- found = False
- for scenario in get_scenarios(problem):
- if scenario._name in s:
- found = True
- break
- if found:
- cuts.extend( c[id] for c in self.feasibility_cuts
- if type(c[id]) is tuple
- and c[id][0] > self.cutThreshold_minDiff )
- elif self.feasible_objectives[id] is None:
- # We only add cuts generated by other scenarios to
- # scenarios that are not currently feasible (as
- # these are feassibility cuts, they should not
- # impact feasible scenarios)
- cuts.extend( c[id] for c in self.feasibility_cuts
- if type(c[id]) is tuple
- and c[id][0] > allCutThreshold )
-
- if not cuts and not self.incumbent_cuts:
- resolves.append(None)
- continue
-
- totalCuts += len(cuts)
- if distributed:
- resolves.append(
- ph._solver_manager.queue(
- action="invoke_external_function",
- name=problem._name,
- queue_name=ph._phpyro_job_worker_map[problem._name],
- invocation_type=InvocationType.SingleInvocation.key,
- generateResponse=True,
- module_name='pyomo.pysp.plugins.interscenario',
- function_name='add_new_cuts',
- function_kwds=None,
- function_args=( cuts,
- self.incumbent_cuts,
- resolve ),
- ) )
- else:
- ans = add_new_cuts( ph, ph._scenario_tree, problem,
- cuts, self.incumbent_cuts, resolve )
- resolves.append(ans)
- toc("distributed cuts to scenario %s%s" %
- ( problem._name,
- ' and resolved scenario' if resolve else '' ))
-
- toc( "InterScenario plugin: added %d feasibility cuts from a "
- "library of %s cuts" % (totalCuts, len(cutObj)) )
- self.feasibility_cuts = []
-
- if self.incumbent_cuts:
- print( "InterScenario plugin: added %d incumbent cuts" %
- (len(self.incumbent_cuts), ) )
- self.incumbent_cuts = []
-
-
- if distributed:
- num_results_so_far = sum(1 for x in resolves if x is None)
- num_results = len(resolves)
-
- while (num_results_so_far < num_results):
- _ah = ph._solver_manager.wait_any()
- _ah_idx = resolves.index(_ah)
- resolves[_ah_idx] = ph._solver_manager.get_results(_ah)
- num_results_so_far += 1
-
- if resolve:
- # Transfer the first stage values and cost back to PH and
- # recompute xbar
- rootNode = ph._scenario_tree.findRootNode()
- for _id, problem in enumerate(subproblems):
- ans = resolves[_id]
- if ans is None:
- continue
- for scenario in get_scenarios(problem):
- scenario._cost = ans[1]
- assert( sorted(ans[0]) ==
- sorted(scenario._x[rootNode._name]) )
- scenario._x[rootNode._name] = ans[0] #[_vid] = _vval
- ph.update_variable_statistics()
-
- def _compute_objective(self, partial_obj_values, probability):
- obj_values = []
- for soln_id in xrange(len( self.unique_scenario_solutions )):
- obj = 0.
- for scen_or_bundle_id, p in enumerate(probability):
- if partial_obj_values[scen_or_bundle_id][soln_id] is None:
- obj = None
- break
- obj += p * partial_obj_values[scen_or_bundle_id][soln_id]
- obj_values.append(obj)
- return obj_values
-
- def _update_incumbent(self, ph):
- feasible_obj = [ o for o in enumerate(self.feasible_objectives)
- if o[1] is not None ]
- if not feasible_obj:
- print( "InterScenario plugin: No scenario solutions are "
- "globally feasible" )
- return
-
- print( "InterScenario plugin: Feasible objectives: %s" %
- ( sorted(o[1] for o in feasible_obj), ) )
-
- best_id, best_obj = min(
- ((x[0], self._sense_to_min*x[1]) for x in feasible_obj),
- key=operator.itemgetter(1) )
-
- binary_vars = []
- integer_vars = []
- continuous_vars = []
- rootNode = ph._scenario_tree.findRootNode()
- for _id in rootNode._scenarios[0]._x[rootNode._name]:
- if rootNode.is_variable_fixed(_id):
- continue
- if rootNode.is_variable_binary(_id):
- binary_vars.append(_id)
- elif rootNode.is_variable_integer(_id):
- integer_vars.append(_id)
- elif rootNode.is_variable_semicontinuous(_id):
- assert False, "FIXME"
- else:
- # we can not add incumbent cuts for continuous domains
- continuous_vars.append(_id)
-
- if self.incumbent is None or \
- self.incumbent[0] * self._sense_to_min > best_obj + self.epsilon:
- # Cut the old incumbent
- if self.enableIncumbentCuts and self.incumbent and not continuous_vars:
- _x = self.incumbent[1][0]
- self.incumbent_cuts.append(
- ( dict((vid, round(_x[vid])) for vid in binary_vars),
- dict((vid, round(_x[vid])) for vid in integer_vars),
- ) )
- # New incumbent!
- self.incumbent = ( best_obj*self._sense_to_min,
- self.unique_scenario_solutions[best_id],
- best_id )
-
- # Tell PH (that we have a good inner bound)
- ph._update_reported_bounds(inner=best_obj)
-
- msg = "InterScenario plugin: NEW incumbent: %s = %s, %s" \
- % self.incumbent
- print(msg)
- logger.info(msg)
- elif self.incumbent[0]*self._sense_to_min < best_obj - self.epsilon:
- # Keep existing incumbent... so the best thing here can be cut
- msg = "InterScenario plugin: incumbent: %s = %s, %s" \
- % self.incumbent
- print(msg)
- best_id = -1
-
- if continuous_vars or not self.enableIncumbentCuts:
- return
-
- for _id, obj in feasible_obj:
- if _id == best_id:
- continue
- _x = self.unique_scenario_solutions[_id][0]
- self.incumbent_cuts.append(
- ( dict((vid, round(_x[vid])) for vid in binary_vars),
- dict((vid, round(_x[vid])) for vid in integer_vars),
- ) )
-
-
- def _process_dual_information(self, ph, dual_values, probability):
- # Notes:
- # dual_values: [ [ { var_id: dual } ] ]
- # - list of list of maps of variable id to dual value. The
- # outer list is returned by each subproblem (corresponds to
- # a bundle or scenario). The order in this list matches
- # the order in the probability list. The inner list holds
- # the dual values for each solution the scenario/bundle was
- # asked to evaluate. This inner list is in the same order
- # as the solutions list.
- # probability: [ scenario/bundle probility ]
- # - list of the scenario or bundle probability for the
- # submodel that returned the corresponding objective/dual
- # values
- # unique_scenario_solutions: [ {var_id:var_value}, [ scenario_names ] ]
- # - list of candidate solutions holding the 1st stage
- # variable values (in a map) and the list of scenarios
- # that had that solution as the optimal solution in this
- # iteration
-
- # soln_prob: the total probability of all scenarios that have
- # this solution as their locally-optimal solution
- soln_prob = [0.] * len(self.unique_scenario_solutions)
- for soln_id, soln_info in enumerate(self.unique_scenario_solutions):
- for src_scen_name in soln_info[1]:
- src_scen = ph._scenario_tree.get_scenario(src_scen_name)
- soln_prob[soln_id] += src_scen._probability
- total_soln_prob = sum(soln_prob)
-
- # xbar: { var_id : xbar }
- # - this has the average first stage variable values. We
- # should really get this from the scenario tree, as we
- # cannot guarantee that we will see all the current values
- # here (they can be filtered)
- #xbar = dict( (
- # k,
- # sum(v*soln_prob[i] for i,v in enumerate(vv))/total_soln_prob )
- # for k, vv in iteritems(var_info) )
- xbar = ph._scenario_tree.findRootNode()._xbars
- if self.x_deviation is None:
- self.x_deviation = dict(
- ( v,
- max(s[0][v] for s in self.unique_scenario_solutions)
- - min(s[0][v] for s in self.unique_scenario_solutions) )
- for v in xbar )
-
- max_dual = dict((v,0.) for v in xbar)
- weighted_rho = dict((v,0.) for v in xbar)
- for soln_id, soln_p in enumerate(soln_prob):
- x = self.unique_scenario_solutions[soln_id][0]
- avg_dual = dict((v,0.) for v in xbar)
- p_total = 0.
- for scen_id, p in enumerate(probability):
- if dual_values[scen_id][soln_id] is None:
- continue
- for v,d in iteritems(dual_values[scen_id][soln_id]):
- avg_dual[v] += math.copysign(d, xbar[v]-x[v]) * p
- max_dual[v] = max(max_dual[v], abs(d))
- p_total += p
- if p_total:
- for v in avg_dual:
- avg_dual[v] /= p_total
- #x_deviation = dict( (v, abs(xbar[v]-self.unique_scenario_solutions[soln_id][0][v]))
- # for v in xbar )
- for v,x_dev in iteritems(self.x_deviation):
- weighted_rho[v] += soln_prob[soln_id]*avg_dual[v]/(x_dev+1.)
-
- if False: # MAX dual (not average)
- for v,x_dev in iteritems(self.x_deviation):
- weighted_rho[v] += max_dual[v]/(x_dev+1.)
-
- # var_info: { var_id : [ scenario values ] }
- # - this has the list of all values for a single 1st stage
- # variable, in the same order as the solutions list (and the
- # soln_prob list)
- var_info = {}
- for soln_id, soln_info in enumerate(self.unique_scenario_solutions):
- for k,v in iteritems(soln_info[0]):
- try:
- var_info[k].append(v)
- except:
- var_info[k] = [v]
-
- dual_info = {}
- for sid, scenario_results in enumerate(dual_values):
- for solution in scenario_results:
- if solution is None:
- continue
- for k,v in iteritems(solution):
- try:
- dual_info[k].append(v)
- except:
- dual_info[k] = [v]
-
- # (optionally) scale the weighted rho
- #for v in xbar:
- # weighted_rho[v] = weighted_rho[v] / total_soln_prob
-
- # Check for rho == 0
- _min_rho = min(_rho for _rho in weighted_rho if _rho > 0)
- for v in xbar:
- if weighted_rho[v] <= 0:
- # If there is variable disagreement, but no objective
- # pressure to price the disagreement, the best thing we
- # can do is guess and let later iterations sort it out.
- #
- #if max(var_info[v]) - min(var_info[v]) > 0:
- # weighted_rho[v] = 1.
- #
- # Actually, we will just set all 0 rho values to the
- # smallest non-zero dual
- weighted_rho[v] = _min_rho
-
-
- loginfo = {
- None:
- "%4s: %6s [%7s, %7s] %7s; "
- "%6s [%6s, %6s] %6s; RHO %7s : %7s" % (
- '---',
- 'Dual', 'min', 'max', 'stdev',
- 'Var', 'min', 'max', 'stdev',
- 'computed', 'final' )
- }
- for k, duals in iteritems(dual_info):
- # DISABLE!
- #break
-
- d_min = min(duals)
- d_max = max(duals)
- _sum = sum(abs(x) for x in duals)
- _sumsq = sum(x**2 for x in duals)
- n = float(len(duals))
- d_avg = _sum/n
- d_stdev = math.sqrt(abs(_sumsq/n - d_avg**2))
-
- x_min = min(var_info[k])
- x_max = max(var_info[k])
- _sum = sum(abs(x) for x in var_info[k])
- _sumsq = sum(x**2 for x in var_info[k])
- n = float(len(var_info[k]))
- x_avg = _sum/n
- x_stdev = math.sqrt(abs(_sumsq/n - x_avg**2 + 1e-6))
- loginfo[k] = \
- "%4d: %6.1f [%7.1f, %7.1f] %7.1f; " \
- "%6.1f [%6.1f, %6.1f] %6.1f; RHO %7.2f : %%7.2f" % (
- k,
- d_avg, d_min, d_max, d_stdev,
- x_avg, x_min, x_max, x_stdev,
- weighted_rho[k] )
-
- return weighted_rho, loginfo
diff --git a/pyomo/pysp/plugins/jsonio.py b/pyomo/pysp/plugins/jsonio.py
deleted file mode 100644
index bb3d7582343..00000000000
--- a/pyomo/pysp/plugins/jsonio.py
+++ /dev/null
@@ -1,216 +0,0 @@
-# ___________________________________________________________________________
-#
-# Pyomo: Python Optimization Modeling Objects
-# Copyright 2017 National Technology and Engineering Solutions of Sandia, LLC
-# Under the terms of Contract DE-NA0003525 with National Technology and
-# Engineering Solutions of Sandia, LLC, the U.S. Government retains certain
-# rights in this software.
-# This software is distributed under the 3-clause BSD License.
-# ___________________________________________________________________________
-
-__all__ = ()
-
-import json
-
-from pyomo.pysp.solutionioextensions import \
- (IPySPSolutionSaverExtension,
- IPySPSolutionLoaderExtension)
-from pyomo.pysp.phutils import indexToString
-from pyomo.common.plugin import implements, SingletonPlugin
-from pyomo.pysp.util.config import (PySPConfigBlock,
- safe_declare_common_option)
-from pyomo.pysp.util.configured_object import (PySPConfiguredObject,
- PySPConfiguredExtension)
-
-try:
- from six.moves import zip_longest
-except:
- zip_longest = None
-
-def load_node_solution(tree_node, solution):
- for varname in solution:
- varsol = solution[varname]
- for index, val in varsol:
- if type(index) is list:
- variable_id = \
- tree_node._name_index_to_id[(varname, tuple(index))]
- else:
- variable_id = tree_node._name_index_to_id[(varname, index)]
- tree_node._solution[variable_id] = val
-
-class JSONSolutionLoaderExtension(PySPConfiguredExtension,
- PySPConfiguredObject,
- SingletonPlugin):
-
- implements(IPySPSolutionLoaderExtension)
-
- @classmethod
- def _declare_options(cls, options=None):
- if options is None:
- options = PySPConfigBlock()
-
- safe_declare_common_option(options,
- "input_name")
- safe_declare_common_option(options,
- "load_stages")
-
- return options
-
- _default_options_prefix = "jsonloader_"
-
- #
- # Note: Do not try to user super() or access the
- # class name inside the __init__ method when
- # a class derives from a SingletonPlugin. Due to
- # how Pyutilib implements its Singleton type,
- # the __class__ cell will be empty.
- # (See: https://stackoverflow.com/questions/
- # 13126727/how-is-super-in-python-3-implemented)
- #
- def __init__(self):
- PySPConfiguredExtension.__init__(self)
-
- def load(self, manager):
-
- if self.get_option("input_name") is not None:
- stage_solutions = None
- # Do NOT open file in 'binary' mode when loading JSON
- # (produces an error in Python3)
- with open(self.get_option("input_name"), 'r') as f:
- stage_solutions = json.load(f)
- cntr = 0
- if self.get_option('load_stages') > len(manager.scenario_tree.stages):
- raise ValueError("The value of the %s option (%s) can not be greater than "
- "the number of time stages in the local scenario tree (%s)"
- % (self.get_full_option_name('load_stages'),
- self.get_option('load_stages'),
- len(manager.scenario_tree.stages)))
- if self.get_option('load_stages') > len(stage_solutions):
- raise ValueError("The value of the %s option (%s) can not be greater than "
- "the number of time stages in the scenario tree solution "
- "stored in %s (%s)"
- % (self.get_full_option_name('load_stages'),
- self.get_option('load_stages'),
- self.get_option('input_name'),
- len(stage_solutions)))
- for stage, stage_solution in zip_longest(manager.scenario_tree.stages,
- stage_solutions):
- if stage_solution is None:
- break
- if (self.get_option('load_stages') <= 0) or \
- (cntr+1 <= self.get_option('load_stages')):
- if stage is None:
- raise RuntimeError(
- "Local scenario tree has fewer stages (%s) than what is "
- "held by the solution loaded from file %s. Use the "
- "option %s to limit the number of stages that "
- "are loaded." % (cntr,
- self.get_option('input_name'),
- self.get_full_option_name('load_stages')))
- cntr += 1
- for tree_node in stage.nodes:
- try:
- node_solution = stage_solution[tree_node.name]
- except KeyError:
- raise KeyError("Local scenario tree contains a tree node "
- "that was not found in the solution at time"
- "-stage %s: %s" % (cntr, tree_node.name))
- load_node_solution(tree_node, node_solution)
- else:
- break
- print("Loaded scenario tree solution for %s time stages "
- "from file %s" % (cntr, self.get_option('input_name')))
- return True
-
- print("No value was set for %s option 'input_name'. "
- "Nothing will be saved." % (type(self).__name__))
- return False
-
-def extract_node_solution(tree_node):
- solution = {}
- for variable_id in tree_node._standard_variable_ids:
- varname, index = tree_node._variable_ids[variable_id]
- # store variable solution data as a list of (index, value)
- # tuples We avoid nesting another dictionary mapping index ->
- # value because (a) its cheaper and more lightweight as a list
- # and (b) because json serializes all dictionary keys as
- # strings (meaning an index of None is not recoverable)
- if varname not in solution:
- solution[varname] = []
- if variable_id in tree_node._solution:
- solution[varname].append((index, tree_node._solution[variable_id]))
- else:
- name, index = tree_node._variable_ids[variable_id]
- full_name = name+indexToString(index)
- print("%s: node solution missing for variable with scenario tree "
- "id %s (%s)"
- % (tree_node.name, variable_id, full_name))
- return None
- for varname in list(solution.keys()):
- solution[varname] = sorted(solution[varname], key=lambda x: x[0])
- return solution
-
-class JSONSolutionSaverExtension(PySPConfiguredExtension,
- PySPConfiguredObject,
- SingletonPlugin):
-
- implements(IPySPSolutionSaverExtension)
-
- @classmethod
- def _declare_options(cls, options=None):
- if options is None:
- options = PySPConfigBlock()
-
- safe_declare_common_option(options,
- "output_name")
- safe_declare_common_option(options,
- "save_stages")
-
- return options
-
- _default_options_prefix = "jsonsaver_"
-
- #
- # Note: Do not try to user super() or access the
- # class name inside the __init__ method when
- # a class derives from a SingletonPlugin. Due to
- # how Pyutilib implements its Singleton type,
- # the __class__ cell will be empty.
- # (See: https://stackoverflow.com/questions/
- # 13126727/how-is-super-in-python-3-implemented)
- #
- def __init__(self):
- PySPConfiguredExtension.__init__(self)
-
- def save(self, manager):
-
- if self.get_option("output_name") is not None:
- stage_solutions = []
- # Do NOT open file in 'binary' mode when dumping JSON
- # (produces an error in Python3)
- with open(self.get_option('output_name'), 'w') as f:
- cntr = 0
- for stage in manager.scenario_tree.stages:
- if (self.get_option('save_stages') <= 0) or \
- (cntr+1 <= self.get_option('save_stages')):
- cntr += 1
- node_solutions = {}
- for tree_node in stage.nodes:
- _node_solution = extract_node_solution(tree_node)
- if _node_solution is None:
- print("No solution appears to be stored in node with "
- "name %s. No solution will be saved."
- % (tree_node.name))
- return False
- node_solutions[tree_node.name] = _node_solution
- stage_solutions.append(node_solutions)
- else:
- break
- json.dump(stage_solutions, f, indent=2, sort_keys=True)
- print("Saved scenario tree solution for %s time stages "
- "to file %s" % (cntr, self.get_option('output_name')))
- return True
-
- print("No value was set for %s option 'output_name'. "
- "Nothing will be saved." % (type(self).__name__))
- return False
diff --git a/pyomo/pysp/plugins/jsonsolutionwriter.py b/pyomo/pysp/plugins/jsonsolutionwriter.py
deleted file mode 100644
index a084d1ed3f3..00000000000
--- a/pyomo/pysp/plugins/jsonsolutionwriter.py
+++ /dev/null
@@ -1,59 +0,0 @@
-# ___________________________________________________________________________
-#
-# Pyomo: Python Optimization Modeling Objects
-# Copyright 2017 National Technology and Engineering Solutions of Sandia, LLC
-# Under the terms of Contract DE-NA0003525 with National Technology and
-# Engineering Solutions of Sandia, LLC, the U.S. Government retains certain
-# rights in this software.
-# This software is distributed under the 3-clause BSD License.
-# ___________________________________________________________________________
-
-from pyomo.common.plugin import SingletonPlugin, implements
-from pyomo.pysp import solutionwriter
-from pyomo.pysp.scenariotree import ScenarioTree
-from pyomo.pysp.plugins.phhistoryextension \
- import extract_scenario_tree_structure, \
- extract_scenario_solutions, \
- extract_node_solutions
-
-import json
-
-class JSONSolutionWriter(SingletonPlugin):
-
- implements (solutionwriter.ISolutionWriterExtension)
-
- def write(self, scenario_tree, output_file_prefix):
-
- if not isinstance(scenario_tree, ScenarioTree):
- raise RuntimeError("JSONSolutionWriter write method expects ScenarioTree object - type of supplied object="+str(type(scenario_tree)))
-
- include_ph_objective_parameters = None
- include_variable_statistics = None
- if output_file_prefix == 'ph':
- include_ph_objective_parameters = True
- include_variable_statistics = True
- elif output_file_prefix == 'postphef':
- include_ph_objective_parameters = False
- include_variable_statistics = True
- elif output_file_prefix == 'ef':
- include_ph_objective_parameters = False
- include_variable_statistics = False
- else:
- raise ValueError("JSONSolutionWriter requires an output prefix of 'ef', 'ph', or 'postphef' "
- "to indicate whether ph specific parameter values should be extracted "
- "from the solution")
-
- output_filename = output_file_prefix+"_solution.json"
- results = {}
- results['scenario tree'] = extract_scenario_tree_structure(scenario_tree)
- results['scenario solutions'] \
- = extract_scenario_solutions(scenario_tree,
- include_ph_objective_parameters=include_ph_objective_parameters)
- results['node solutions'] \
- = extract_node_solutions(scenario_tree,
- include_ph_objective_parameters=include_ph_objective_parameters,
- include_variable_statistics=include_variable_statistics)
-
- with open(output_filename,'w') as f:
- json.dump(results,f,indent=2)
- print("Scenario tree solution written to file="+output_filename)
diff --git a/pyomo/pysp/plugins/konvw.py b/pyomo/pysp/plugins/konvw.py
deleted file mode 100644
index f9f03933801..00000000000
--- a/pyomo/pysp/plugins/konvw.py
+++ /dev/null
@@ -1,264 +0,0 @@
-# ___________________________________________________________________________
-#
-# Pyomo: Python Optimization Modeling Objects
-# Copyright 2017 National Technology and Engineering Solutions of Sandia, LLC
-# Under the terms of Contract DE-NA0003525 with National Technology and
-# Engineering Solutions of Sandia, LLC, the U.S. Government retains certain
-# rights in this software.
-# This software is distributed under the 3-clause BSD License.
-# ___________________________________________________________________________
-
-"""
-Tight bounds should be correlated with effective W values; that is almost a tautology.
-
-A closely related measure of quality is generated by the konvw extension that produces wonly.ssv showing the convergence of each variable when the proximal term is *not* used. A truly good W should produce convergence without the proximal term (which is zero at convergence).
-"""
-
-import logging
-from math import fabs
-
-import pyomo.common.plugin
-from pyomo.pysp import phextension
-from pyomo.pysp.generators import scenario_tree_node_variables_generator_noinstances
-from pyomo.pysp.phutils import indexToString
-
-from operator import itemgetter
-
-from pyomo.pysp.plugins.phboundextension import _PHBoundBase
-
-logger = logging.getLogger('pyomo.pysp')
-
-
-class phweightinspectextension(pyomo.common.plugin.SingletonPlugin, _PHBoundBase):
-
- pyomo.common.plugin.implements(phextension.IPHExtension)
-
- pyomo.common.plugin.alias("phweightinspectextension")
-
- def __init__(self):
-
- _PHBoundBase.__init__(self)
- self.wonly_file = "wonly.ssv"
- print ("konvw is creating W-only convergence file="+self.wonly_file)
- ofile = open(self.wonly_file, 'w')
- ofile.close()
- self._valid_weights_objective_relative_tolerance = 0.01
-
- def _inspect_variable_convergence(self, ph, ph_iter):
-
- # collect termdiff by node and variable so we can
- # report and possibly sort
- term_diff = dict((tree_node._name, {}) \
- for stage in ph._scenario_tree._stages[:-1]
- for tree_node in stage._tree_nodes)
-
- # Track these for reporting purposes
- node_fixed_cnt = dict((tree_node._name, 0) \
- for stage in ph._scenario_tree._stages[:-1]
- for tree_node in stage._tree_nodes)
- total_fixed_cnt = 0
-
- for stage, tree_node, variable_id, variable_values, is_fixed, is_stale \
- in scenario_tree_node_variables_generator_noinstances(
- ph._scenario_tree,
- includeDerivedVariables=False,
- includeLastStage=False):
-
- if is_fixed:
- node_fixed_cnt[tree_node._name] += 1
- total_fixed_cnt += 1
-
- # Depending on preprocessing options, stale may indicate
- # fixed or unused in the model, either way we can skip it
- if (not is_stale):
-
- var_node_avg = 0.0
- for var_value, scenario_probability in variable_values:
- var_node_avg += scenario_probability * var_value
-
- var_term_diff = 0.0
- for var_value, scenario_probability in variable_values:
- var_term_diff += \
- scenario_probability * \
- fabs(var_value - var_node_avg)
-
- term_diff[tree_node._name][variable_id] = var_term_diff
-
-
- # Print individual variable term diffs by node
- # and sorted highest to lowest
- # skip the leaf stage
- ofile = open(self.wonly_file, 'a')
- for stage in ph._scenario_tree._stages[:-1]:
-
- for tree_node in stage._tree_nodes:
-
- for variable_id, var_term_diff in sorted(term_diff[tree_node._name].items(),
- key=itemgetter(1),
- reverse=True):
- variable_name, index = tree_node._variable_ids[variable_id]
- ofile.write(str(ph_iter)+"; "+tree_node._name+"; "+variable_name+indexToString(index)+"; "+str(var_term_diff)+'\n')
- ofile.close()
-
- def _iteration_k_solves(self,ph, storage_key):
-
- # Extract a candidate solution to compute an upper bound
- candidate_sol = self.ExtractInternalNodeSolutionsWithDiscreteRounding(ph)
- # ** Code uses the values stored in the scenario solutions
- # to perform a weighted vote in the case of discrete
- # variables, so it is important that we execute this
- # before perform any new subproblem solves.
- #candidate_sol = self.ExtractInternalNodeSolutionsWithDiscreteVoting(ph)
-
- # Caching the current set of ph solutions so we can restore
- # the original results. We modify the scenarios and re-solve -
- # which messes up the warm-start, which can seriously impact
- # the performance of PH. plus, we don't want lower bounding to
- # impact the primal PH in any way - it should be free of any
- # side effects.
- self.CachePHSolution(ph)
-
- #
- #
- #
- #
- # **** NOTE WE ARE LEAVING VARIABLES FIXED FOR NOW ****
- # THIS IS STILL EXPERIMENTAL
- #
- #
- #
-
- # Assuming the weight terms are already active but proximal
- # terms need to be deactivated deactivate all proximal terms
- # and activate all weight terms
- self.DeactivatePHObjectiveProximalTerms(ph)
-
- # Weights have not been pushed to instance parameters (or
- # transmitted to the phsolverservers) at this point
- ph._push_w_to_instances()
-
- ph.solve_subproblems(warmstart=not ph._disable_warmstarts)
-
- print("Successfully completed PH weight inspection extension "
- "iteration %s solves\n"
- "- solution statistics:\n" % (storage_key))
- if ph._scenario_tree.contains_bundles():
- ph.report_bundle_objectives()
- ph.report_scenario_objectives()
-
- weight_only_ph_objective = {}
- for scenario in ph._scenario_tree._scenarios:
- weight_only_ph_objective[scenario._name] = scenario._objective
-
- #
- # Fix variables to XBAR (weighted vote for discrete) and solve again
- #
- self.FixScenarioTreeVariables(ph, candidate_sol)
-
- ph.solve_subproblems(warmstart=not ph._disable_warmstarts)
-
- print("Successfully completed PH weight inspection extension "
- "iteration %s solves (FIXED TO XBAR)\n"
- "- solution statistics:\n" % (storage_key))
- if ph._scenario_tree.contains_bundles():
- ph.report_bundle_objectives()
- ph.report_scenario_objectives()
-
- fixed_xbar_ph_objective = {}
- for scenario in ph._scenario_tree._scenarios:
- fixed_xbar_ph_objective[scenario._name] = scenario._objective
-
- print("")
- print("Weight Inspection Results: (Using relative tolerance: "+repr(self._valid_weights_objective_relative_tolerance)+")")
- failure = False
- for scenario in ph._scenario_tree._scenarios:
- error = fabs(fixed_xbar_ph_objective[scenario._name] - \
- weight_only_ph_objective[scenario._name]) / fabs(fixed_xbar_ph_objective[scenario._name])
- if error > self._valid_weights_objective_relative_tolerance:
- print("\t"+str(scenario._name)+": FAIL (relative error: "+repr(error)+")")
- failure = True
- else:
- print("\t"+str(scenario._name)+": OKAY (relative error: "+repr(error)+")")
- if failure:
- print("******************************")
- print(" Weight Inspection Failed! ")
- print("******************************")
- else:
- print("")
- print("Weight Inspection Okay")
- print("")
- print("")
- self._inspect_variable_convergence(ph, storage_key)
-
- # Restore ph to its state prior to entering this method
- # (e.g., fixed variables, scenario solutions, proximal terms)
- self.RestorePH(ph)
-
- ############ Begin Callback Functions ##############
-
- def reset(self, ph):
- self.__init__()
-
- def pre_ph_initialization(self,ph):
- """
- Called before PH initialization.
- """
- pass
-
- def post_instance_creation(self, ph):
- """
- Called after PH initialization has created the scenario
- instances, but before any PH-related
- weights/variables/parameters/etc are defined!
- """
- pass
-
- def post_ph_initialization(self, ph):
- """
- Called after PH initialization
- """
-
- if ph._verbose:
- print("Invoking post initialization callback in phboundextension")
-
- def post_iteration_0_solves(self, ph):
- """
- Called after the iteration 0 solves
- """
- pass
-
- def post_iteration_0(self, ph):
- """
- Called after the iteration 0 solves, averages computation, and weight computation
- """
- pass
-
- def pre_iteration_k_solves(self, ph):
- """
- Called immediately before the iteration k solves
- """
- pass
-
- def post_iteration_k_solves(self, ph):
- """
- Called after the iteration k solves!
- """
- pass
-
- def post_iteration_k(self, ph):
- """
- Called after the iteration k is finished, after weights have been updated!
- """
- if ph._verbose:
- print("Invoking post iteration k callback in phboundextension")
-
- if ph._converger.isConverged(ph):
- ph_iter = ph._current_iteration
- self._iteration_k_solves(ph, ph_iter)
-
- def post_ph_execution(self, ph):
- """
- Called after PH has terminated!
- """
- pass
-
diff --git a/pyomo/pysp/plugins/phboundextension.py b/pyomo/pysp/plugins/phboundextension.py
deleted file mode 100644
index c5e709d9f5e..00000000000
--- a/pyomo/pysp/plugins/phboundextension.py
+++ /dev/null
@@ -1,324 +0,0 @@
-# ___________________________________________________________________________
-#
-# Pyomo: Python Optimization Modeling Objects
-# Copyright 2017 National Technology and Engineering Solutions of Sandia, LLC
-# Under the terms of Contract DE-NA0003525 with National Technology and
-# Engineering Solutions of Sandia, LLC, the U.S. Government retains certain
-# rights in this software.
-# This software is distributed under the 3-clause BSD License.
-# ___________________________________________________________________________
-
-# May 2015 issue: reals really should not be *fixed* to compute an inner bound
-# It seems like a lot to change their bounds, but that is probably the way to go.
-
-from __future__ import division
-
-import os
-
-from pyomo.common.plugin import implements, alias, SingletonPlugin
-from pyomo.pysp import phextension
-from pyomo.core.base import minimize
-
-from pyomo.pysp.phboundbase import (_PHBoundBase,
- ExtractInternalNodeSolutionsforInner)
-
-class _PHBoundExtensionImpl(_PHBoundBase):
-
- def __init__(self):
-
- _PHBoundBase.__init__(self)
-
- def _iteration_k_bound_solves(self, ph, storage_key):
-
- # storage key is for results (e.g. the ph iter number)
-
- # ** Some code might use the values stored in the scenario solutions
- # to perform a weighted vote in the case of discrete
- # variables, so it is important that we execute this
- # before perform any new subproblem solves.
-
- # candidate_sol is sometimes called xhat
- try:
- candidate_sol = ExtractInternalNodeSolutionsforInner(ph)
- except:
- print("Failed to extract candiate xhat for "
- "inner bound computation using xhat_method %s. "
- "Skipping inner bound computation."
- % (ph._xhat_method))
- candidate_sol = None
-
- # Caching the current set of ph solutions so we can restore
- # the original results. We modify the scenarios and re-solve -
- # which messes up the warm-start, which can seriously impact
- # the performance of PH. plus, we don't want lower bounding to
- # impact the primal PH in any way - it should be free of any
- # side effects.
- self.CachePHSolution(ph)
-
- # Save the current fixed state and fix queue.
- self.RelaxPHFixedVariables(ph)
-
- # Assuming the weight terms are already active but proximal
- # terms need to be deactivated deactivate all proximal terms
- # and activate all weight terms.
- self.DeactivatePHObjectiveProximalTerms(ph)
-
- if candidate_sol is not None:
- # Deactivate the weight terms.
- self.DeactivatePHObjectiveWeightTerms(ph)
-
- # Fix all non-leaf stage variables involved
- # in non-anticipativity conditions to the most
- # recently computed xbar (or something like it)
- # integers should be truly fixed, but reals require special care
- self.FixScenarioTreeVariables(ph, candidate_sol)
-
- # now change over to finding a feasible incumbent.
- if ph._verbose:
- print("Computing objective %s bound" %
- ("inner" if self._is_minimizing else "outer"))
-
- failures = ph.solve_subproblems(warmstart=not ph._disable_warmstarts,
- exception_on_failure=False)
-
- if len(failures):
-
- print("Failed to compute %s bound at xhat due to "
- "one or more solve failures" %
- ("inner" if self._is_minimizing else "outer"))
- self._inner_bound_history[storage_key] = \
- float('inf') if self._is_minimizing else float('-inf')
- self._inner_status_history[storage_key] = self.STATUS_SOLVE_FAILED
-
- else:
-
- if ph._verbose:
- print("Successfully completed PH bound extension "
- "fixed-to-xhat solves for iteration %s\n"
- "- solution statistics:\n" % (storage_key))
- if ph._scenario_tree.contains_bundles():
- ph.report_bundle_objectives()
- ph.report_scenario_objectives()
-
- # Compute the inner bound on the objective function.
- IBval, IBstatus = self.ComputeInnerBound(ph, storage_key)
- self._inner_bound_history[storage_key] = IBval
- self._inner_status_history[storage_key] = IBstatus
-
- # Undo FixScenarioTreeVariables
- self.RestoreLastPHChange(ph)
-
- # Undo DeactivatePHObjectiveWeightTerms
- self.RestoreLastPHChange(ph)
-
- else:
-
- if self._is_minimizing:
- self._inner_bound_history[storage_key] = float('inf')
- else:
- self._inner_bound_history[storage_key] = float('-inf')
- self._inner_status_history[storage_key] = self.STATUS_NONE
-
- # push the updated inner bound to PH, for reporting purposes.
- ph._update_reported_bounds(inner = self._inner_bound_history[storage_key])
-
- # It is possible weights have not been pushed to instance
- # parameters (or transmitted to the phsolverservers) at this
- # point.
- ph._push_w_to_instances()
-
- failures = ph.solve_subproblems(warmstart=not ph._disable_warmstarts,
- exception_on_failure=False)
-
- if len(failures):
-
- print("Failed to compute duality-based bound due to "
- "one or more solve failures")
- self._outer_bound_history[storage_key] = \
- float('-inf') if self._is_minimizing else float('inf')
- self._outer_status_history[storage_key] = self.STATUS_SOLVE_FAILED
-
- else:
-
- if ph._verbose:
- print("Successfully completed PH bound extension "
- "weight-term only solves for iteration %s\n"
- "- solution statistics:\n" % (storage_key))
- if ph._scenario_tree.contains_bundles():
- ph.report_bundle_objectives()
- ph.report_scenario_objectives()
-
- # Compute the outer bound on the objective function.
- self._outer_bound_history[storage_key], \
- self._outer_status_history[storage_key] = \
- self.ComputeOuterBound(ph, storage_key)
-
- ph._update_reported_bounds(outer = self._outer_bound_history[storage_key])
-
- # Restore ph to its state prior to entering this method (e.g.,
- # fixed variables, scenario solutions, proximal terms)
- self.RestorePH(ph)
-
- ############ Begin Callback Functions ##############
-
- def reset(self, ph):
- """Invoked to reset the state of a plugin to that of post-construction"""
- self.__init__()
-
- def pre_ph_initialization(self,ph):
- """
- Called before PH initialization.
- """
- pass
-
- def post_instance_creation(self, ph):
- """
- Called after PH initialization has created the scenario
- instances, but before any PH-related
- weights/variables/parameters/etc are defined!
- """
- pass
-
- def post_ph_initialization(self, ph):
- """
- Called after PH initialization
- """
-
- if ph._verbose:
- print("Invoking post initialization callback "
- "in phboundextension")
-
- self._is_minimizing = True if (ph._objective_sense == minimize) else False
- # TODO: Check for ph options that may not be compatible with
- # this plugin and warn / raise exception
-
- # grab the update interval from the environment variable, if
- # it exists.
- update_interval_variable_name = "PHBOUNDINTERVAL"
- update_interval_file_name = "PHB_.DAT"
- if os.path.isfile(update_interval_file_name):
- print("phboundextension is getting the update interval from file=",
- update_interval_file_name)
- with open(update_interval_file_name) as ifile:
- ifileval = ifile.read()
- if isinstance(ifileval, int):
- print ("update interval=",ifileval)
- self._update_interval = ifileval
- else:
- raise RuntimeError("The value must be of type integer, but the value read="+str(ifileval))
-
- elif update_interval_variable_name in os.environ:
- self._update_interval = int(os.environ[update_interval_variable_name])
- print("phboundextension using update interval="
- +str(self._update_interval)+", extracted from "
- "environment variable="+update_interval_variable_name)
- else:
- print("phboundextension using default update "
- "interval="+str(self._update_interval))
-
- def post_iteration_0_solves(self, ph):
- """
- Called after the iteration 0 solves
- """
-
- if ph._verbose:
- print("Invoking post iteration 0 solve callback "
- "in phboundextension")
-
- if ph._ph_warmstarted:
- print("PH warmstart detected. Bound computation requires solves "
- "after iteration 0.")
- self.pre_iteration_k_solves(ph)
- return
-
- # Always compute a lower/upper bound here because it requires
- # no work. The instances (or bundles) have already been
- # solved with the original (non-PH-augmented) objective and
- # are loaded with results.
-
- #
- # Note: We will still obtain a bound using the weights
- # computed from PH iteration 0 in the
- # pre_iteration_k_solves callback.
- #
- ph_iter = None
-
- # Note: It is important that the mipgap is not adjusted
- # between the time after the subproblem solves
- # and before now.
- self._outer_bound_history[ph_iter], \
- self._outer_status_history[ph_iter] = \
- self.ComputeOuterBound(ph, ph_iter)
-
- # dlw May 2016: the reported bound gets set for general iterations right after
- # assignment to the history, so we do it here also
- ph._update_reported_bounds(outer = self._outer_bound_history[ph_iter])
-
- def post_iteration_0(self, ph):
- """
- Called after the iteration 0 solves, averages computation, and weight computation
- """
- pass
-
- def pre_iteration_k_solves(self, ph):
- """
- Called immediately before the iteration k solves
- """
-
- if ph._verbose:
- print("Invoking pre iteration k solve callback "
- "in phboundextension")
-
- #
- # Note: We invoke this callback pre iteration k in order to
- # obtain a PH bound using weights computed from the
- # PREVIOUS iteration's scenario solutions (including
- # those of iteration zero).
- #
- ph_iter = ph._current_iteration-1
-
- if (ph_iter % self._update_interval) != 0:
- return
-
- self._iteration_k_bound_solves(ph, ph_iter)
-
- def post_iteration_k_solves(self, ph):
- """
- Called after the iteration k solves!
- """
- pass
-
- def post_iteration_k(self, ph):
- """
- Called after the iteration k is finished, after weights have been updated!
- """
- pass
-
- def post_ph_execution(self, ph):
- """
- Called after PH has terminated!
- """
-
- if ph._verbose:
- print("Invoking post execution callback in phboundextension")
-
- #
- # Note: We invoke this callback in order to compute a bound
- # using the weights obtained from the final PH
- # iteration.
- #
- ph_iter = ph._current_iteration
- self._iteration_k_bound_solves(ph, ph_iter)
-
- self.ReportBoundHistory()
- self.ReportBestBound()
-
-class phboundextension(SingletonPlugin, _PHBoundExtensionImpl):
-
- implements(phextension.IPHExtension)
-
- alias("phboundextension")
-
- def __init__(self):
-
- _PHBoundExtensionImpl.__init__(self)
diff --git a/pyomo/pysp/plugins/phhistoryextension.py b/pyomo/pysp/plugins/phhistoryextension.py
deleted file mode 100644
index efdde8eca5c..00000000000
--- a/pyomo/pysp/plugins/phhistoryextension.py
+++ /dev/null
@@ -1,428 +0,0 @@
-# ___________________________________________________________________________
-#
-# Pyomo: Python Optimization Modeling Objects
-# Copyright 2017 National Technology and Engineering Solutions of Sandia, LLC
-# Under the terms of Contract DE-NA0003525 with National Technology and
-# Engineering Solutions of Sandia, LLC, the U.S. Government retains certain
-# rights in this software.
-# This software is distributed under the 3-clause BSD License.
-# ___________________________________________________________________________
-
-import os
-import copy
-import six
-import pickle
-import shelve
-import json
-
-from pyutilib.misc import ArchiveReaderFactory
-
-from pyomo.common.plugin import implements, alias, SingletonPlugin
-from pyomo.pysp import phextension
-from pyomo.pysp.phutils import indexToString
-from pyomo.pysp.phsolverserverutils import TransmitType
-import pyomo.solvers.plugins.smanager
-
-from six import iteritems
-
-bytes_cast = lambda x:x
-if six.PY3:
- bytes_cast = lambda x: x.encode()
-
-# TODO:
-# - snapshot node _fix_queue
-
-def extract_convergence(ph):
- metric = ph._convergers[0].lastMetric() \
- if len(ph._convergers[0]._metric_history) \
- else None
- convergence = {'metric':metric,
- 'fixed variable counts':\
- {'continuous':ph._total_fixed_continuous_vars,
- 'discrete':ph._total_fixed_discrete_vars},
- 'blended variable counts':\
- {'continuous':ph._total_continuous_vars,
- 'discrete':ph._total_discrete_vars}}
- return convergence
-
-def extract_scenario_tree_structure(scenario_tree):
- scenario_tree_structure = {}
- scenario_tree_structure['scenarios'] = {}
- for scenario in scenario_tree._scenarios:
- scenario_structure = \
- scenario_tree_structure['scenarios'][scenario._name] = {}
- scenario_structure['name'] = scenario._name
- scenario_structure['probability'] = scenario._probability
- scenario_structure['nodes'] = \
- [node._name for node in scenario._node_list]
- scenario_tree_structure['stages'] = {}
- for stage_order, stage in enumerate(scenario_tree._stages):
- stage_structure = scenario_tree_structure['stages'][stage._name] = {}
- stage_structure['name'] = stage._name
- stage_structure['nodes'] = [node._name for node in stage._tree_nodes]
- stage_structure['order'] = stage_order
- scenario_tree_structure['nodes'] = {}
- for tree_node in scenario_tree._tree_nodes:
- node_structure = \
- scenario_tree_structure['nodes'][tree_node._name] = {}
- parent = tree_node._parent
- node_structure['name'] = tree_node._name
- node_structure['parent'] = \
- parent._name if (parent is not None) else None
- node_structure['children'] = \
- [child_node._name for child_node in tree_node._children]
- node_structure['stage'] = tree_node._stage._name
- node_structure['conditional probability'] = \
- tree_node._conditional_probability
- node_structure['probability'] = tree_node._probability
- node_structure['scenarios'] = \
- [node_scenario._name for node_scenario in tree_node._scenarios]
- return scenario_tree_structure
-
-def extract_scenario_solutions(scenario_tree,
- include_ph_objective_parameters=False,
- include_leaf_stage_vars=True):
- scenario_solutions = {}
- for scenario in scenario_tree._scenarios:
- scenario_name = scenario._name
- scenario_sol = scenario_solutions[scenario_name] = {}
- variable_sol = scenario_sol['variables'] = {}
- for tree_node in scenario._node_list:
- isNotLeafNode = not tree_node.is_leaf_node()
- if isNotLeafNode or include_leaf_stage_vars:
- if isNotLeafNode and include_ph_objective_parameters:
- weight_values = scenario._w[tree_node._name]
- rho_values = scenario._rho[tree_node._name]
- x_values = scenario._x[tree_node._name]
- for variable_id, (var_name, index) in \
- iteritems(tree_node._variable_ids):
- name_label = str(var_name)+str(indexToString(index))
- varsol = variable_sol[name_label] = {}
- varsol['value'] = x_values.get(variable_id)
- varsol['fixed'] = scenario.is_variable_fixed(tree_node,
- variable_id)
- varsol['stale'] = scenario.is_variable_stale(tree_node,
- variable_id)
-
- if include_ph_objective_parameters:
- if isNotLeafNode and \
- (variable_id in tree_node._standard_variable_ids):
- varsol['rho'] = rho_values[variable_id] \
- if (isNotLeafNode) \
- else None
- varsol['weight'] = weight_values[variable_id] \
- if (isNotLeafNode) \
- else None
- else:
- varsol['rho'] = None
- varsol['weight'] = None
-
- scenario_sol['objective'] = scenario._objective
- scenario_sol['cost'] = scenario._cost
-
- if include_ph_objective_parameters:
- scenario_sol['ph weight term'] = scenario._weight_term_cost
- scenario_sol['ph proximal term'] = scenario._proximal_term_cost
-
- scenario_sol['stage costs'] = copy.deepcopy(scenario._stage_costs)
-
- return scenario_solutions
-
-def extract_node_solutions(scenario_tree,
- include_ph_objective_parameters=False,
- include_variable_statistics=False,
- include_leaf_stage_vars=True):
-
- scenario_tree.snapshotSolutionFromScenarios()
- node_solutions = {}
- stages = None
- if include_leaf_stage_vars:
- stages = scenario_tree._stages
- else:
- stages = scenario_tree._stages[:-1]
- for stage in stages:
- for tree_node in stage._tree_nodes:
- isNotLeafNode = not tree_node.is_leaf_node()
- node_sol = node_solutions[tree_node._name] = {}
- variable_sol = node_sol['variables'] = {}
- for variable_id, (var_name, index) in \
- iteritems(tree_node._variable_ids):
- name_label = str(var_name)+str(indexToString(index))
- sol = variable_sol[name_label] = {}
- sol['solution'] = tree_node._solution[variable_id]
- sol['fixed'] = tree_node.is_variable_fixed(variable_id)
- sol['derived'] = \
- bool(variable_id in tree_node._derived_variable_ids)
- if include_variable_statistics:
- if isNotLeafNode:
- sol['minimum'] = tree_node._minimums[variable_id]
- sol['average'] = tree_node._averages[variable_id]
- sol['maximum'] = tree_node._maximums[variable_id]
- else:
- sol['minimum'] = None
- sol['average'] = None
- sol['maximum'] = None
- if include_ph_objective_parameters:
- if isNotLeafNode and \
- (variable_id in tree_node._standard_variable_ids):
- sol['xbar'] = tree_node._xbars[variable_id]
- sol['wbar'] = tree_node._wbars[variable_id]
- else:
- sol['xbar'] = None
- sol['wbar'] = None
- node_sol['expected cost'] = tree_node.computeExpectedNodeCost()
- return node_solutions
-
-#
-# A PH warmstart consists of values for W and XBAR
-# (nothing more)
-#
-def load_ph_warmstart(ph,
- scenariotree_solution):
-
- scenario_tree = ph._scenario_tree
- scenario_solutions = scenariotree_solution['scenario solutions']
- for scenario in scenario_tree._scenarios:
- scenario_name = scenario._name
- scenario_sol = scenario_solutions[scenario_name]
- variable_sol = scenario_sol['variables']
- for tree_node in scenario._node_list:
- isNotLeafNode = not tree_node.is_leaf_node()
- if isNotLeafNode:
- scenario._w[tree_node.name].clear()
- scenario_w = scenario._w[tree_node._name]
- for variable_id, (var_name, index) in \
- iteritems(tree_node._variable_ids):
- name_label = str(var_name)+str(indexToString(index))
- varsol = variable_sol[name_label]
- if variable_id in tree_node._standard_variable_ids:
- if 'weight' in varsol:
- scenario_w[variable_id] = varsol['weight']
-
- node_solutions = scenariotree_solution['node solutions']
- for stage in scenario_tree._stages[:-1]:
- for tree_node in stage._tree_nodes:
- variable_sol = node_solutions[tree_node._name]['variables']
- for variable_id in tree_node._standard_variable_ids:
- var_name, index = tree_node._variable_ids[variable_id]
- sol = variable_sol[str(var_name)+str(indexToString(index))]
- tree_node._xbars[variable_id] = sol['xbar']
-
-def _dump_to_history(filename,
- data,
- key,
- last=False,
- first=False,
- use_json=False):
-
- assert not (first and last)
- if use_json:
- file_string = 'wb' if first else \
- 'ab+'
- with open(filename, file_string) as f:
- if first:
- f.write(bytes_cast('{\n'))
- else:
- # make sure we are at the end of the file
- f.seek(0,2)
- # overwrite the previous \n}\n
- f.truncate(f.tell()-3)
- f.write(bytes_cast(',\n'))
- f.write(bytes_cast(' "'+key+'":\n'))
- f.write(bytes_cast(json.dumps(data,indent=2)))
- f.write(bytes_cast('\n}\n'))
- else:
- if first:
- flag = 'n'
- else:
- flag = 'c'
- d = shelve.open(filename,
- flag=flag,
- protocol=pickle.HIGHEST_PROTOCOL)
- d[key] = data
- if first:
- d['results keys'] = []
- if key != 'scenario tree':
- d['results keys'] += [key]
- d.close()
-
-class phhistoryextension(SingletonPlugin):
-
- implements(phextension.IPHExtension)
-
- # the below is a hack to get this extension into the
- # set of IPHExtension objects, so it can be queried
- # automagically by PH.
- alias("PHHistoryExtension")
-
- def __init__(self):
- self._history_started = False
- self._ph_history_filename = "ph_history"
- self._use_json = int(os.environ.get("PHHISTORYEXTENSION_USE_JSON",0))
- if self._use_json:
- self._ph_history_filename += ".json"
- else:
- self._ph_history_filename += ".db"
- self._history_offset = 0
-
- def reset(self, ph):
- self.__init__()
-
- def pre_ph_initialization(self,ph):
- pass
-
- def post_instance_creation(self,ph):
- pass
-
- def post_ph_initialization(self, ph):
-
- # TODO: Add a print statement notifying the user of this change
- # Make sure we transmit at least all the ph variables on the
- # scenario tree (including leaf nodes). If the default
- # has already been set to transmit more, then we are fine.
- # (hence the |=)
- if isinstance(ph._solver_manager,
- pyomo.solvers.plugins.\
- smanager.phpyro.SolverManager_PHPyro):
- print("Overriding default variable transmission settings "
- "for PHPyro to transmit leaf-stage variable values "
- "at intermediate PH iterations.")
- ph._phpyro_variable_transmission_flags |= \
- TransmitType.all_stages
- ph._phpyro_variable_transmission_flags |= \
- TransmitType.blended
- ph._phpyro_variable_transmission_flags |= \
- TransmitType.derived
- ph._phpyro_variable_transmission_flags |= \
- TransmitType.fixed
- ph._phpyro_variable_transmission_flags |= \
- TransmitType.stale
-
- def post_iteration_0_solves(self, ph):
- pass
-
- def post_iteration_0(self, ph):
- pass
-
- def _prepare_history_file(self, ph):
-
- if not self._history_started:
- if (ph._ph_warmstarted) and \
- (ph._ph_warmstart_file is not None):
- assert ph._ph_warmstart_index is not None
- self._ph_history_file = ph._ph_warmstart_file
- self._history_offset = int(ph._ph_warmstart_index) + 1
- print("Detected PH warmstart file. Appending to "
- "content and storing new iterations with offset. "
- "First new iteration will be saved with index: %s\n"
- % (self._history_offset))
- self._history_started = True
- else:
- data = extract_scenario_tree_structure(ph._scenario_tree)
- _dump_to_history(self._ph_history_filename,
- data,
- 'scenario tree',
- first=True,
- use_json=self._use_json)
- self._history_started = True
-
- def _snapshot_all(self, ph):
- data = {}
- data['convergence'] = extract_convergence(ph)
- data['scenario solutions'] = \
- extract_scenario_solutions(ph._scenario_tree, True)
- data['node solutions'] = \
- extract_node_solutions(ph._scenario_tree, True, True)
- return data
-
- def pre_iteration_k_solves(self, ph):
- self._prepare_history_file(ph)
- key = str(ph._current_iteration - 1 + self._history_offset)
- data = self._snapshot_all(ph)
- _dump_to_history(self._ph_history_filename,
- data,
- key,
- use_json=self._use_json)
-
- def post_iteration_k_solves(self, ph):
- pass
-
- def post_iteration_k(self, ph):
- pass
-
- def post_ph_execution(self, ph):
- self._prepare_history_file(ph)
- key = str(ph._current_iteration + \
- self._history_offset)
- data = self._snapshot_all(ph)
- _dump_to_history(self._ph_history_filename,
- data,
- key,
- last=True,
- use_json=self._use_json)
- print("PH algorithm history written to file="
- +self._ph_history_filename)
-
-def load_history(filename):
-
- with ArchiveReaderFactory(filename) as archive:
-
- outf = archive.extract()
-
- history = None
- try:
- with open(outf) as f:
- history = json.load(f)
- except:
- history = None
- try:
- history = shelve.open(outf,
- flag='r')
- except:
- history = None
-
- if history is None:
- raise RuntimeError("Unable to open ph history file as JSON "
- "or python Shelve DB format")
-
- scenario_tree_dict = history['scenario tree']
-
- try:
- iter_keys = history['results keys']
- except KeyError:
- # we are using json format (which loads the entire file
- # anyway)
- iter_keys = list(history.keys())
- iter_keys.remove('scenario tree')
-
- iterations = sorted(int(k) for k in iter_keys)
- iterations = [str(k) for k in iterations]
-
- return scenario_tree_dict, history, iterations
-
-def load_solution(filename):
-
- with ArchiveReaderFactory(filename) as archive:
-
- outf = archive.extract()
-
- solution = None
- try:
- with open(outf) as f:
- solution = json.load(f)
- except:
- solution = None
- try:
- solution = shelve.open(outf,
- flag='r')
- except:
- solution = None
-
- if solution is None:
- raise RuntimeError("Unable to open ph solution file as JSON "
- "or python Shelve DB format")
-
- scenario_tree_dict = solution['scenario tree']
- solution.pop('scenario tree')
-
- return scenario_tree_dict, solution
diff --git a/pyomo/pysp/plugins/schuripwriter.py b/pyomo/pysp/plugins/schuripwriter.py
deleted file mode 100644
index 21c64339b8d..00000000000
--- a/pyomo/pysp/plugins/schuripwriter.py
+++ /dev/null
@@ -1,97 +0,0 @@
-# ___________________________________________________________________________
-#
-# Pyomo: Python Optimization Modeling Objects
-# Copyright 2017 National Technology and Engineering Solutions of Sandia, LLC
-# Under the terms of Contract DE-NA0003525 with National Technology and
-# Engineering Solutions of Sandia, LLC, the U.S. Government retains certain
-# rights in this software.
-# This software is distributed under the 3-clause BSD License.
-# ___________________________________________________________________________
-
-from pyomo.common.plugin import implements, SingletonPlugin
-from pyomo.pysp import phextension
-
-from pyomo.core import Suffix
-from pyomo.opt import WriterFactory
-
-import os
-import sys
-
-from six import iteritems
-
-# the purpose of this PH plugin is to write a PySP instance
-# to a directory for ingestion into the SchurIP solver.
-# this directory will contain a .nl file for each scenario,
-# and an lqm file describing the non-anticipative (binding)
-# variables.
-
-class schuripwriter(SingletonPlugin):
-
- implements (phextension.IPHExtension)
-
- def reset(self, ph):
- self.__init__()
-
- def pre_ph_initialization(self,ph):
- pass
-
- def post_instance_creation(self,ph):
- pass
-
- def post_ph_initialization(self, ph):
- print("Called after PH initialization!")
-
- print("Writing out PySP files for input to Schur IP")
-
- output_directory_name = "schurip"
-
- os.system("rm -rf "+output_directory_name)
- os.mkdir(output_directory_name)
-
- nl_writer = WriterFactory('nl')
-
- root_node = ph._scenario_tree.findRootNode()
-
- scenario_number = 1
-
- for instance_name, instance in iteritems(ph._instances):
-
- # even though they are identical, SchurIP wants a .lqm file per scenario.
- # so tag the suffix data on a per-instance basis.
-
- instance.lqm = Suffix(direction=Suffix.LOCAL)
-
- for variable_name, variable_indices in iteritems(root_node._variable_indices):
- variable = getattr(instance, variable_name)
- for index in variable_indices:
- var_value = variable[index]
- instance.lqm.set_value(var_value, 1)
-
- scenario_output_filename = output_directory_name + os.sep + "Scenario"+str(scenario_number)+".nl"
-
- result = nl_writer(instance, scenario_output_filename, lambda x: True, ph._symbolic_solver_labels)
-
- scenario_number += 1
-
- print("NL files for PySP instance written to output directory: "+output_directory_name)
-
- sys.exit(0)
-
- def post_iteration_0_solves(self, ph):
- print("Called after the iteration 0 solves!")
-
- def post_iteration_0(self, ph):
- print("Called after the iteration 0 solves, averages computation, and weight computation")
-
- def pre_iteration_k_solves(self, ph):
- # this one does not do anything
- pass
-
- def post_iteration_k_solves(self, ph):
- print("Called after the iteration k solves!")
-
- def post_iteration_k(self, ph):
- print("Called after an iteration k has finished!")
-
- def post_ph_execution(self, ph):
- print("Called after PH has terminated!")
diff --git a/pyomo/pysp/plugins/sorgw.py b/pyomo/pysp/plugins/sorgw.py
deleted file mode 100755
index 60a4258c375..00000000000
--- a/pyomo/pysp/plugins/sorgw.py
+++ /dev/null
@@ -1,274 +0,0 @@
-#
-# Pyomo: Python Optimization Modeling Objects
-# Copyright 2017 National Technology and Engineering Solutions of Sandia, LLC
-# Under the terms of Contract DE-NA0003525 with National Technology and
-# Engineering Solutions of Sandia, LLC, the U.S. Government retains certain
-# rights in this software.
-# This software is distributed under the 3-clause BSD License.
-# ___________________________________________________________________________
-
-#
-# sorg W: a plugin that cares about the W vectors
-#
-#
-# produce a report of variables sorted by "bad W behavior"
-# Major change Sept 2016: only the root node is processed if
-# flag set
-OnlyRootNode = True
-
-import sys
-
-from pyomo.common.plugin import implements, alias, SingletonPlugin
-from pyomo.pysp import phextension
-from pyomo.pysp.phutils import indexToString
-from pyomo.pysp.generators import \
- scenario_tree_node_variables_generator_noinstances
-
-#==================================================
-class sorgwextension(SingletonPlugin):
-
- implements(phextension.IPHExtension)
-
- # the below is a hack to get this extension into the
- # set of IPHExtension objects, so it can be queried
- # automagically by PH.
- alias("sorgwextension")
-
- def __init__(self, *args, **kwds):
-
- self.Tol = 1e-6
- self.wtrace_filename = 'sorgw.ssv'
- self.wsummary_filename = 'wsummary.ssv'
- self.winterest_filename = 'winterest.ssv' # only vars of interest
- ####### Thresholds for interestingness
- ####### (ored, so any zero causes all to be interesting)
- self.threshWZeroCrossings = 2
- self.threshDiffsRatio = 0.2
- self.threshDiffZeroCrossings = 3
-
-#==================================================
- def reset(self, ph):
- self.__init__()
-
- def pre_ph_initialization(self,ph):
- # we don't need to intefere with PH initialization.
- pass
-#==================================================
-
-#==================================================
- def post_instance_creation(self, ph):
- # we don't muck with the instances.
- pass
-
-#==================================================
- def post_ph_initialization(self, ph):
- pass
-
-#==================================================
- def post_iteration_0_solves(self, ph):
- pass
-
-#==================================================
- def post_iteration_0(self, ph):
-
- print("sorgw.py is writing the semi-colon separated values file "+self.wtrace_filename)
- ofile = open(self.wtrace_filename, "w")
- self._w_printing(ofile) # write the header
- self._w_printing(ofile, ph)
- ofile.close()
-
-#==================================================
-
- def pre_iteration_k_solves(self, ph):
- pass
-
-#==================================================
- def post_iteration_k_solves(self, ph):
- pass
-
-#==================================================
- def post_iteration_k(self, ph):
-
- ofile = open(self.wtrace_filename, "a")
- self._w_printing(ofile, ph)
- ofile.close()
-
-#==================================================
- def post_ph_execution(self, ph):
- # note that we could keep it all in memory and not use a file
- W_Traces = self.Read_W_Traces(self.wtrace_filename)
- self.Compute_and_Write_it_all(W_Traces, ph)
-
-#=========================
- def _w_printing(self, ofile, ph=None):
- # print the w values in a useful way to the open file ofile
- # if ph is None, just write the header
- if ph is None:
- ofile.write("iteration; tree node; scenario; variable; ID; W\n")
- else:
- root_node_name = ph._scenario_tree.findRootNode()._name
- for stage, tree_node, variable_id, variable_values, is_fixed, is_stale in \
- scenario_tree_node_variables_generator_noinstances(ph._scenario_tree,
- includeDerivedVariables=False,
- includeLastStage=False):
- if is_stale is False \
- and (OnlyRootNode is False or tree_node._name == root_node_name):
- for scenario in tree_node._scenarios:
- scen_name = scenario._name
- weight_value = scenario._w[tree_node._name][variable_id]
- variable_name, index = tree_node._variable_ids[variable_id]
- full_variable_name = variable_name+indexToString(index)
- ofile.write(str(ph._current_iteration) + ';' + tree_node._name + ';' + scen_name + ';' + full_variable_name + ';' + str(variable_id)+ ';' + str(weight_value) +'\n')
-
-
- #########
- def Read_W_Traces(self, fname):
- # read the W_Traces as written by sorgw.py
- # don't really check for input errors other than a bad iter order
-
- def num(s):
- try:
- return int(s)
- except ValueError:
- return float(s)
-
- infile = open(fname,"r")
- curriter = 0
- W_Traces = {}
- for linein in infile:
- parts = linein.split(';')
- if parts[0] == 'iteration': # hack to skip header
- continue
- iternum = int(parts[0])
- nodename = parts[1]
- scenname = parts[2]
- varname = parts[3]
- varid = parts[4]
- wval = num(parts[5])
- if iternum != curriter:
- if iternum-curriter == 1:
- curriter = iternum
- else:
- print ("HEY! the input in "+fname+" has iter "+str(iternum)+" after "+str(curriter)+'\n')
- print (linein)
- sys.exit(1)
- if varid not in W_Traces:
- W_Traces[varid] = {}
- if scenname not in W_Traces[varid]:
- W_Traces[varid][scenname] = []
- W_Traces[varid][scenname].append(wval)
- return W_Traces
-
- #####
- def Score_a_Trace(self, wtrace):
- # given a list of w values, compute and return scores
- # (lower is better)
- def dlwmean(v):
- if len(v) > 0:
- return sum(v)/len(v)
- else:
- return 0
- WZeroCrossings = 0 # a score
- WAbove = False
- WBelow = False
- # note: hitting zero does not reset Above or Below or cause a crossing
- for w in wtrace:
- if abs(w) < self.Tol:
- continue
- if w > self.Tol:
- if WBelow:
- WZeroCrossings += 1
- WBelow = False
- WAbove = True
- if w < self.Tol:
- if WAbove:
- WZeroCrossings += 1
- WAbove = False
- WBelow = True
-
- DiffsRatio = 0 # a score
- DiffZeroCrossings = 0 # a score
- absdiffs = [] # t to t+1
- DiffAbove = False
- DiffBelow = False
- wcnt = len(wtrace)
- for i in range(wcnt-1):
- diff = wtrace[i+1] - wtrace[i]
- absdiffs.append(abs(diff))
- if abs(diff) < self.Tol:
- continue
- if diff > self.Tol:
- if DiffBelow:
- DiffZeroCrossings += 1
- DiffBelow = False
- DiffAbove = True
- if diff < self.Tol:
- if DiffAbove:
- DiffZeroCrossings += 1
- DiffAbove = False
- DiffBelow = True
- frontavg = dlwmean(absdiffs[:int(wcnt/2)])
- if frontavg > self.Tol:
- DiffsRatio = dlwmean(absdiffs[int(wcnt/2):]) / frontavg # close enough
- return WZeroCrossings, DiffsRatio, DiffZeroCrossings
-
- ####
- def Of_Interest(self, WZeroCrossings, DiffsRatio, DiffZeroCrossings):
- # return true if anything is above its threshold
- return WZeroCrossings >= self.threshWZeroCrossings or \
- DiffsRatio >= self.threshDiffsRatio or \
- DiffZeroCrossings >= self.threshDiffZeroCrossings
-
- ####
- def Compute_and_Write_it_all(self, W_Traces, ph):
- VarsOfInterest = set()
- fname = self.wsummary_filename
- print ("sorgw.py is writing the semi-colon separated values file "+fname)
- ofile = open(fname, "w")
- ofile.write("var; scen; WZeroCrossing; DiffsRatio; DiffZeroCrossings; w values...\n")
- for varid in W_Traces:
- assert(OnlyRootNode)
- variable_name, index = ph._scenario_tree.findRootNode()._variable_ids[varid]
- varname = variable_name+indexToString(index)
-
- for scenname in W_Traces[varid]:
- WZeroCrossings, DiffsRatio, DiffZeroCrossings = self.Score_a_Trace(W_Traces[varid][scenname])
- if self.Of_Interest(WZeroCrossings, DiffsRatio, DiffZeroCrossings):
- VarsOfInterest.add(varid)
- ofile.write(varname+';'+scenname+';'+str(WZeroCrossings)+';'+str(DiffsRatio)+';'+str(DiffZeroCrossings))
- for w in W_Traces[varid][scenname]:
- ofile.write(';'+str(w))
- ofile.write('\n')
- ofile.close
- # now processing interesting vars
- BiggestLoser = None
- LoserRange = 0
- fname = self.winterest_filename
- print ("sorgw.py is writing the semi-colon separated values file "+fname)
- ofile = open(fname, "w")
- ofile.write("var; scen; WZeroCrossing; DiffsRatio; DiffZeroCrossings; w values...\n")
- for varid in VarsOfInterest:
- vwmax = vwmin = 0
- assert(OnlyRootNode)
- variable_name, index = ph._scenario_tree.findRootNode()._variable_ids[varid]
- varname = variable_name+indexToString(index)
-
- for scenname in W_Traces[varid]:
- WZeroCrossings, DiffsRatio, DiffZeroCrossings = self.Score_a_Trace(W_Traces[varid][scenname])
- ofile.write(varname+';'+scenname+';'+str(WZeroCrossings)+';'+str(DiffsRatio)+';'+str(DiffZeroCrossings))
- for w in W_Traces[varid][scenname]:
- ofile.write(';'+str(w))
- if w > vwmax:
- vwmax = w
- if w < vwmin:
- vwmin = w
- ofile.write('\n')
- vwrange = vwmax - vwmin
- if vwrange > LoserRange:
- LoserRange = vwrange
- BiggestLoser = varid
-
- ofile.close
- if BiggestLoser is not None:
- ph._sorgw_BiggestLoser = BiggestLoser
- print ("sorgw.py complete: RootNodeOnly="+str(OnlyRootNode)+" BiggestLoser="+str(BiggestLoser)+" with vwrange="+str(vwrange))
diff --git a/pyomo/pysp/plugins/testphextension.py b/pyomo/pysp/plugins/testphextension.py
deleted file mode 100644
index 6b767f9475e..00000000000
--- a/pyomo/pysp/plugins/testphextension.py
+++ /dev/null
@@ -1,48 +0,0 @@
-# ___________________________________________________________________________
-#
-# Pyomo: Python Optimization Modeling Objects
-# Copyright 2017 National Technology and Engineering Solutions of Sandia, LLC
-# Under the terms of Contract DE-NA0003525 with National Technology and
-# Engineering Solutions of Sandia, LLC, the U.S. Government retains certain
-# rights in this software.
-# This software is distributed under the 3-clause BSD License.
-# ___________________________________________________________________________
-
-from pyomo.common.plugin import SingletonPlugin, implements
-from pyomo.pysp import phextension
-
-
-class testphextension(SingletonPlugin):
-
- implements(phextension.IPHExtension)
-
- def reset(self, ph):
- pass
-
- def pre_ph_initialization(self, ph):
- pass
-
- def post_instance_creation(self, ph):
- pass
-
- def post_ph_initialization(self, ph):
- print("Called after PH initialization!")
-
- def post_iteration_0_solves(self, ph):
- print("Called after the iteration 0 solves!")
-
- def post_iteration_0(self, ph):
- print("Called after the iteration 0 solves, averages computation, and weight computation")
-
- def pre_iteration_k_solves(self, ph):
- # this one does not do anything
- pass
-
- def post_iteration_k_solves(self, ph):
- print("Called after the iteration k solves!")
-
- def post_iteration_k(self, ph):
- print("Called after an iteration k has finished!")
-
- def post_ph_execution(self, ph):
- print("Called after PH has terminated!")
diff --git a/pyomo/pysp/plugins/wwphextension.py b/pyomo/pysp/plugins/wwphextension.py
deleted file mode 100644
index faedc699f66..00000000000
--- a/pyomo/pysp/plugins/wwphextension.py
+++ /dev/null
@@ -1,1433 +0,0 @@
-# ___________________________________________________________________________
-#
-# Pyomo: Python Optimization Modeling Objects
-# Copyright 2017 National Technology and Engineering Solutions of Sandia, LLC
-# Under the terms of Contract DE-NA0003525 with National Technology and
-# Engineering Solutions of Sandia, LLC, the U.S. Government retains certain
-# rights in this software.
-# This software is distributed under the 3-clause BSD License.
-# ___________________________________________________________________________
-
-from __future__ import division
-
-import math
-import os
-import random
-
-from pyomo.common.dependencies import yaml, yaml_load_args
-import pyomo.common.plugin
-from pyomo.pysp import phextension
-from pyomo.pysp.phutils import isVariableNameIndexed, extractVariableNameAndIndex, indexMatchesTemplate, indexToString
-from pyomo.pysp.phsolverserverutils import \
- transmit_external_function_invocation_to_worker
-from pyomo.pysp.generators import \
- scenario_tree_node_variables_generator_noinstances
-
-import six
-from six import iteritems
-from six.moves import xrange
-
-###############
-def _parse_yaml_file(ph, filename):
-
- with open(filename) as f:
- config_data = yaml.load(f, **yaml_load_args)
-
- for node_or_stage_name, variable_dicts in iteritems(config_data):
-
- # find the node or stage object in the scenario tree
- # and convert it to a list of nodes
- node_list = None
- for stage in ph._scenario_tree._stages[:-1]:
- if node_or_stage_name == stage._name:
- node_list = stage._tree_nodes
- break
- else:
- for tree_node in stage._tree_nodes:
- if tree_node._name == node_or_stage_name:
- node_list = [tree_node]
- break
- if node_list is not None:
- break
-
- if len(node_list) == 0:
- raise RuntimeError("***WW PH Extension: %s does not name an "
- "existing non-leaf Stage or Node in the "
- "scenario tree" % node_or_stage_name)
-
- for variable_string, variable_config_data in iteritems(variable_dicts):
-
- variable_name = None
- index_template = None
- if isVariableNameIndexed(variable_string):
- variable_name, index_template = \
- extractVariableNameAndIndex(variable_string)
- else:
- variable_name = variable_string
- index_template = None
-
- match_variable_ids = {}
- for node in node_list:
- node_match_variable_ids = match_variable_ids[node._name] = []
- for variable_id, (name,index) in iteritems(node._variable_ids):
- if (variable_name == name):
- if (index_template is None) and (index != None):
- raise RuntimeError("***WW PH Extension: Illegal "
- "match template="
- +variable_string+" specified "
- "in file="+filename)
- if indexMatchesTemplate(index, index_template):
- node_match_variable_ids.append(variable_id)
- # we shouldn't have any duplicates or empties
- for node in node_list:
- assert len(set(match_variable_ids)) == len(match_variable_ids)
- if len(match_variable_ids[node._name]) == 0:
- raise RuntimeError("No variables matching string '%s' "
- "were found in scenario tree node %s"
- % (variable_string, node._name))
-
- for config_name, config_value in iteritems(variable_config_data):
-
- yield config_name, config_value, match_variable_ids
-
-####################
-
-#
-# Create a dictionary mapping scenario tree id to
-# variable bounds
-#
-def collect_node_variable_bounds(tree_node):
- assert tree_node._variable_datas is not None
- var_bounds = {}
- for variable_id, vardatas in iteritems(tree_node._variable_datas):
- vardata = vardatas[0][0]
- if not vardata.is_expression_type():
- var_bounds[variable_id] = (vardata.lb, vardata.ub)
- else:
- # Expression
- var_bounds[variable_id] = (None,None)
-
- return var_bounds
-
-# This function will be executed on a phsolverserver using
-# the transmit_external_function_invocation_to_worker utility
-def external_collect_variable_bounds(ph,
- scenario_tree,
- scenario_or_bundle,
- node_list):
-
- variable_bounds = {}
- for node_name in node_list:
- tree_node = scenario_tree._tree_node_map[node_name]
- variable_bounds[node_name] = collect_node_variable_bounds(tree_node)
-
- return variable_bounds
-
-#==================================================
-class wwphextension(pyomo.common.plugin.SingletonPlugin):
-
- pyomo.common.plugin.implements(phextension.IPHExtension)
-
- # the below is a hack to get this extension into the
- # set of IPHExtension objects, so it can be queried
- # automagically by PH.
- pyomo.common.plugin.alias("WWPHExtension")
-
- def __init__(self, *args, **kwds):
-
- # attempt to handle cases where scripting people
- # skip ph iteration 0
- self._iteration_0_called = False
-
- # TBD - migrate all of the self attributes defined on-the-fly
- # in the post-post-initialization routine here!
- self._valid_suffix_names = [\
- 'Iter0FixIfConvergedAtLB', # has default
- 'Iter0FixIfConvergedAtUB', # has default
- 'Iter0FixIfConvergedAtNB', # has default
- 'CostForRho',
- 'FixWhenItersConvergedAtLB', # has default
- 'FixWhenItersConvergedAtUB', # has default
- 'FixWhenItersConvergedAtNB', # has default
- 'CanSlamToLB', # has default
- 'CanSlamToMin', # has default
- 'CanSlamToUB', # has default
- 'CanSlamToMax', # has default
- 'CanSlamToAnywhere', # has default
- 'SlammingPriority']
- self._AnnotationTypes = {}
- # Real
- self._AnnotationTypes['going_price'] = None
- # String
- self._AnnotationTypes['obj_effect_family_name'] = None
- # Real
- self._AnnotationTypes['obj_effect_family_factor'] = None
- # non-negative int
- self._AnnotationTypes['decision_hierarchy_level'] = None
- self._AnnotationTypes['feasibility_direction'] = \
- ['down', 'up', 'either', 'None']
- # int
- self._AnnotationTypes['relax_int'] = None
- # int
- self._AnnotationTypes['reasonable_int'] = None
- # int
- self._AnnotationTypes['low_int'] = None
-
- assert len(set(self._valid_suffix_names).\
- intersection(self._AnnotationTypes.keys())) == 0
-
- self._suffixes = {}
- for name in self._valid_suffix_names:
- self._suffixes[name] = {}
- for name in self._AnnotationTypes:
- self._suffixes[name] = {}
-
- # formerly known as self._suffixes["my_stage"]
- self._variable_stage = {}
-
- self._configuration_filename = None
- self._suffix_filename = None
- self._annotation_filename = None
-
- # we track various actions performed by this extension following a
- # PH iteration - useful for reporting purposes, and for other plugins
- # to react to.
- self.variables_with_detected_cycles = []
- self.variable_fixed = False
-
-
-#==================================================
-
- def process_suffix_file(self, ph):
-
- self.slam_list = []
-
- if self._suffix_filename is None:
- return
-
- if os.path.exists(self._suffix_filename) is False:
- raise RuntimeError("***WW PH Extension: The suffix "
- "file "+self._suffix_filename+
- " either does not exist or cannot be read")
-
- print("WW PH Extension: Loading variable suffixes "
- "from file="+self._suffix_filename)
-
- for suffix_name, suffix_value, variable_ids in \
- _parse_yaml_file(ph, self._suffix_filename):
-
- if suffix_name not in self._valid_suffix_names:
- raise RuntimeError("***WW PH Extension: %s is not a valid "
- "suffix name" % (suffix_name))
-
- # decide what type of suffix value we're dealing with.
- is_int = False
- is_bool = False
- converted_value = None
- try:
- converted_value = bool(suffix_value)
- is_bool = True
- except ValueError:
- pass
- try:
- converted_value = int(suffix_value)
- is_int = True
- except ValueError:
- pass
-
- if (not is_int) and (not is_bool):
- raise RuntimeError("WW PH Extension unable to deduce type of data "
- "referenced in ww ph extension suffix file"
- "="+self._suffix_filename+"; value="
- +suffix_value)
-
- self_suffix_dict = self._suffixes[suffix_name]
- for node_name, node_variable_ids in iteritems(variable_ids):
- for variable_id in node_variable_ids:
- self_suffix_dict[variable_id] = converted_value
-
- self.slam_list = list(self._suffixes["SlammingPriority"].keys())
-
- if self.slam_list != []:
- #
- # We have been ordering this list largest slamming
- # priority to smallest (meaning a larger value for
- # slamming priority implies we're first in line to get
- # fixed). I can't decide if that is the most natural way
- # to interpret this, but I'm leaving it as it will likely
- # change solutions if changed.
- #
- self.slam_list.sort(key=self._suffixes["SlammingPriority"].get,
- reverse=True)
-
- def process_annotation_file(self, ph):
- # note: these suffixes can have a string value very similar to
- # suffixes, except for the following: annotation names are
- # from a restricted list, and annotations can have various
- # types that might depend on the name of the annotation
- # not all type checking will be done here, but some might be
-
- self._obj_family_normalized_rho = {}
-
- if self._annotation_filename is None:
- return
-
- if os.path.exists(self._annotation_filename) is False:
- raise RuntimeError("***WW PH Extension: The annotation file "
- +self._annotation_filename+" either does "
- "not exist or cannot be read")
-
- print("WW PH Extension: Loading variable annotations from "
- "file="+self._annotation_filename)
-
- for annotation_name, annotation_value, variable_ids in \
- _parse_yaml_file(ph, self._annotation_filename):
-
- # check for some input errors
- if annotation_name not in self._AnnotationTypes:
- print("Error encountered.")
- print("Here are the annotations that can be given "
- "(they are case sensitive):")
- for i in self._AnnotationTypes:
- print(i)
- raise RuntimeError("WW ph extension annotation file="
- +self._annotation_filename+"; "
- "contains unknown annotation: "+annotation_name)
-
- # check for some more input errors
- if self._AnnotationTypes[annotation_name] is not None:
- if annotation_value not in self._AnnotationTypes[annotation_name]:
- raise RuntimeError("WW ph extension annotation file="
- +self._annotation_filename+"; "
- "contains unknown annotation value="
- +annotation_value+" for: "+annotation_name)
-
- # if this is a new obj effect family, then we need new maps
- if annotation_name == 'obj_effect_family_name':
- if annotation_value not in self._obj_family_normalized_rho:
- self._obj_family_normalized_rho[annotation_value] = 0.0
-
- self_suffix_dict = self._suffixes[annotation_name]
- for node_name, node_variable_ids in iteritems(variable_ids):
- for variable_id in node_variable_ids:
- self_suffix_dict[variable_id] = converted_value
-
- #
- # Store the variable bounds on the tree node by variable id
- # If this is parallel ph, then we need to do this by transmitting
- # an external function invocation that collects the variable
- # bounds from a given list of node names. We do this in such
- # a way as to minimize the amount of data we need to transfer
- # (e.g., in the case of a two stage problem, we request information
- # about the root node from only one of the PH solver servers)
- #
-
- def _collect_variable_bounds(self,ph):
-
- if not isinstance(ph._solver_manager,
- pyomo.solvers.plugins.smanager.phpyro.SolverManager_PHPyro):
-
- for stage in ph._scenario_tree._stages[:-1]:
-
- for tree_node in stage._tree_nodes:
-
- tree_node._variable_bounds = \
- collect_node_variable_bounds(tree_node)
-
- else:
-
- nodes_needed = {}
- if ph._scenario_tree.contains_bundles():
- for tree_node in ph._scenario_tree._tree_nodes:
- if not tree_node.is_leaf_node():
- representative_scenario = tree_node._scenarios[0]._name
- representative_bundle = None
- for bundle in ph._scenario_tree._scenario_bundles:
- if representative_scenario in bundle._scenario_names:
- representative_bundle = bundle._name
- break
- assert representative_bundle != None
- if representative_bundle not in nodes_needed:
- nodes_needed[representative_bundle] = \
- [tree_node._name]
- else:
- nodes_needed[representative_bundle].\
- append(tree_node._name)
- else:
- for tree_node in ph._scenario_tree._tree_nodes:
- if not tree_node.is_leaf_node():
- representative_scenario = tree_node._scenarios[0]._name
- if representative_scenario not in nodes_needed:
- nodes_needed[representative_scenario] = \
- [tree_node._name]
- else:
- nodes_needed[representative_scenario].\
- append(tree_node._name)
-
- action_handle_map = {}
- for object_name, node_list in iteritems(nodes_needed):
- function_args = (node_list,)
- new_action_handle = \
- transmit_external_function_invocation_to_worker(
- ph,
- object_name,
- "pyomo.pysp.plugins.wwphextension",
- "external_collect_variable_bounds",
- return_action_handle=True,
- function_args=function_args)
-
- action_handle_map[new_action_handle] = object_name
-
- num_results_so_far = 0
- num_results = len(action_handle_map)
- while (num_results_so_far < num_results):
- ah = ph._solver_manager.wait_any()
- results = ph._solver_manager.get_results(ah)
- object_name = action_handle_map[ah]
- for node_name, node_bounds in iteritems(results):
- tree_node = ph._scenario_tree._tree_node_map[node_name]
- tree_node._variable_bounds = node_bounds
- num_results_so_far += 1
-
- def reset(self, ph):
- self.__init__()
-
- def pre_ph_initialization(self,ph):
- # we don't need to intefere with PH initialization.
- pass
-
- def post_instance_creation(self, ph):
- # we don't muck with the instances.
- pass
-
- def post_ph_initialization(self, ph):
-
- # Be verbose (even if ph is not)
- self.Verbose = False
-
- # set up "global" record keeping.
- self.cumulative_discrete_fixed_count = 0
- self.cumulative_continuous_fixed_count = 0
-
- # we always track convergence of continuous variables, but we
- # may not want to fix/slam them.
- self.fix_continuous_variables = False
-
- # there are occasions where we might want to fix any values at
- # the end of the run if the scenarios agree - even if the
- # normal fixing criterion (e.g., converged for N iterations)
- # don't apply. one example is when the term-diff is 0, at
- # which point you really do have a solution. currently only
- # applies to discrete variables.
- self.fix_converged_discrete_variables_at_exit = False
-
- # set up the mipgap parameters (zero means ignore)
- # note:
- # because we lag one iteration, the final will be less than
- # requested initial and final refer to PH iteration 1 and PH
- # iteration X, where X is the iteration at which the
- # convergence metric hits 0.
- self.Iteration0MipGap = 0.0
- self.InitialMipGap = 0.0
- self.FinalMipGap = 0.0
- self.MipGapExponent = 1.0 # linear by default
-
- # the comparison tolerance for two hashed weight values.
- # by default, 1e-5 should suffice. however, depending on
- # solution structure and mipgap, non-default values may
- # be necessary.
- # IMPT (and new): this value is interpreted as a percentage,
- # i.e., a value of 1 indicates a 1% difference in hash values
- # is sufficient to trigger a cycle detection claim.
- self.WHashComparisonTolerance = 1e-5
-
- # it is occasionally useful to see the W hash histories
- # when a cycle is detected, to examine patterns in support
- # of identifying an appropriate comparison tolerance.
- # defaults to False.
- self.ReportCycleWHashDetail = False
-
- # use the convergence metric value from iteration 0 as the
- # basis for scaling the mipgap in subsequent iterations. if
- # set to False, we instaed start scaling from the convergence
- # metric value following iteration 1. the latter arguably
- # makes more sense, as it accounts for weights and such, i.e.,
- # some sub-prolem interactions.
- self.StartMipGapFromIter0Metric = True
-
- # when cylcing is detected for a variable, the
- # rho will be multiplied by this factor.
- # NOTE: 1 is a no-op
- self.RhoReductionFactor = 1.0
-
- # when cycling is detected for a variable, the
- # rho on a per scenario basis will be perturbed
- # by the following factor (uniformly sampled,
- # plus/minus this factor).
- # NOTE: 0 is a no-op
- self.ScenarioRhoPerturbation = 0.0
-
- # "Read" the defaults for parameters that control fixing
- # (these defaults can be overridden at the variable level) for
- # all six of these, zero means don't do it.
- self.Iter0FixIfConvergedAtLB = 0 # 1 or 0
- self.Iter0FixIfConvergedAtUB = 0 # 1 or 0
- self.Iter0FixIfConvergedAtNB = 0 # 1 or 0 (converged to a non-bound)
- # TBD: check for range errors for all six of these
- self.FixWhenItersConvergedAtLB = 10
- self.FixWhenItersConvergedAtUB = 10
- # converged to a non-bound
- self.FixWhenItersConvergedAtNB = 12
- self.FixWhenItersConvergedContinuous = 0
-
- # "default" slamming parms:
- self.CanSlamToLB = False
- self.CanSlamToMin = False
- self.CanSlamToAnywhere = True
- self.CanSlamToMax = False
- self.CanSlamToUB = False
- # zero means "slam at will"
- self.PH_Iters_Between_Cycle_Slams = 1
- # this is a simple heuristic - and probably a bad one!
- self.SlamAfterIter = len(ph._scenario_tree._stages[-1]._tree_nodes)
- # slam only if the convergence metric is not improving. defaults to
- # false. in general, if the convergence metric is improving, then
- # we would like PH to enforce non-antipicativity on its own. that
- # said, there are counter-examples - particularly when we have
- # continuous variables.
- self.SlamOnlyIfNotConverging = False
-
- # default params associated with fixing due to weight vector oscillation.
- self.CheckWeightOscillationAfterIter = 0
- self.FixIfWeightOscillationCycleLessThan = 10
-
- # flags enabling various rho computation schemes.
- self.ComputeRhosWithpreSEP = False
- self.ComputeRhosWithSEP = False
- self.RhosSEPMult = None # the user needs an error if not set...
-
- self.CycleLengthSlamThreshold = \
- len(ph._scenario_tree._stages[-1]._tree_nodes)
- self.W_hash_history_len = max(100, self.CycleLengthSlamThreshold+1)
-
- # do I report potential cycles, i.e., those too short to base
- # slamming on?
- self.ReportPotentialCycles = False
-
- # end of parms
-
- self._last_slam_iter = -1 # dynamic
-
- # constants for W vector hashing (low cost rand() is all we need)
- # note: July 09, dlw is planning to eschew pre-computed random
- # vector (dlw April 2014: "huh?")
- # another note: the top level reset is OK, but really it should
- # done way down at the index level with a serial number (stored)
- # to avoid correlated hash errors
- # the hash seed was deleted in 1.1 and we seed with the
-
- # we will reset for dynamic rand vector generation
- self.W_hash_seed = 17
- # current rand
- self.W_hash_rand_val = self.W_hash_seed
- # a,b, and c are for a simple generator
- self.W_hash_a = 1317
- self.W_hash_b = 27699
- # that period should be usually long enough for us!
- # (assuming fewer than c scenarios)
- self.W_hash_c = 131072
-
- my_stage_suffix = self._variable_stage
-
- # set up tree storage for statistics that we care about tracking.
- for stage in ph._scenario_tree._stages[:-1]:
-
- for tree_node in stage._tree_nodes:
-
- # we're adding a lot of statistics / tracking data to
- # each tree node. these are all maps from variable
- # name to a parameter that tracks the corresponding
- # information.
- tree_node._num_iters_converged = \
- dict.fromkeys(tree_node._variable_ids,0)
- tree_node._last_converged_val = \
- dict.fromkeys(tree_node._variable_ids,0.5)
- tree_node._w_hash = \
- dict(((variable_id,ph_iter),0) \
- for variable_id in tree_node._variable_ids \
- for ph_iter in ph._iteration_index_set)
- # sign vector for weights at the last PH iteration
- tree_node._w_sign_vector = \
- dict.fromkeys(tree_node._variable_ids,[])
- # the number of iterations since the last flip in the
- # sign (TBD - of any scenario in the vector)?
- tree_node._w_last_sign_flip_iter = \
- dict.fromkeys(tree_node._variable_ids,0)
-
- my_stage_suffix.update((variable_id,stage) \
- for variable_id in tree_node._variable_ids)
-
- if self._configuration_filename is not None:
- if os.path.exists(self._configuration_filename) is True:
- print("WW PH Extension: Loading user-specified configuration "
- "from file=" + self._configuration_filename)
- try:
- if six.PY3:
- with open(self._configuration_filename,"rb") as f:
- code = compile(f.read(), self._configuration_filename, 'exec')
- exec(code) in globals(), locals()
- else:
- execfile(self._configuration_filename)
- except:
- raise RuntimeError("Failed to load WW PH configuration file="
- +self._configuration_filename)
- else:
- raise RuntimeError("***WW PH Extension: The configuration file "
- +self._configuration_filename+" either does "
- "not exist or cannot be read")
- else:
- print("WW PH Extension: No user-specified configuration file "
- "supplied - using defaults")
-
- # process any suffix and/or annotation data, if they exists.
- self.process_suffix_file(ph)
- self.process_annotation_file(ph)
-
- # set up the mip gap for iteration 0.
- if self.Iteration0MipGap > 0.0:
- print("WW PH Extension: Setting mipgap to %.7f, as specified in "
- "the configuration file" % self.Iteration0MipGap)
- ph._mipgap = self.Iteration0MipGap
-
- # search for the presence of the normalized-term-diff converger
- # (first priority) or the standard term-diff converger (second priority).
- self.converger_to_use = None
- for converger in ph._convergers:
- if converger._name == "Normalized term diff":
- self.converger_to_use = converger
- break
- elif converger._name == "Term diff":
- self.converger_to_use = converger
- break
- if self.converger_to_use == None:
- raise RuntimeError("WW PH extension plugin failed to locate a normalized term-diff or term-diff converger on the PH object")
-
-#==================================================
- def post_iteration_0_solves(self, ph):
-
- self._iteration_0_called = True
-
- self._collect_variable_bounds(ph)
-
- # Collect suffix dictionaries that we will check inside the
- # next loop
- Iter0FixIfConvergedAtLB = self._suffixes['Iter0FixIfConvergedAtLB']
- Iter0FixIfConvergedAtUB = self._suffixes['Iter0FixIfConvergedAtUB']
- Iter0FixIfConvergedAtNB = self._suffixes['Iter0FixIfConvergedAtNB']
- CostForRho = self._suffixes['CostForRho']
-
- for stage, tree_node, variable_id, variable_values, is_fixed, is_stale in \
- scenario_tree_node_variables_generator_noinstances(
- ph._scenario_tree,
- includeDerivedVariables=False,
- includeLastStage=False,
- sort=True):
-
- if (is_stale is False):
- """ preSEP is not a good idea; E[W] will not be 0
- if (self.ComputeRhosWithpreSEP) and (variable_id in CostForRho):
- # Watson and Woodruff Comp. Mgt. Sci.
- # right before the SEP expressions: a per-scenario rho
-
- node_average = tree_node._averages[variable_id]
- for scenario in tree_node._scenarios:
- var_value = scenario._x[tree_node._name][variable_id]
- # dlw: not sure that max(.,1) is the right thing...
- rhoval = CostForRho[variable_id] * self.RhosSEPMult / max(math.fabs(var_value - node_average), 1)
- if self.Verbose or ph._verbose:
- print ("wwphextension is setting rho to %f for scenario=%s, variable id=%s" % (rhoval, str(scenario) , str(variable_id)))
- ph.setRhoOneScenario(
- tree_node,
- scenario,
- variable_id,
- rhoval)
- """
- if (self.ComputeRhosWithSEP) and (variable_id in CostForRho):
-
- node_average = tree_node._averages[variable_id]
- deviation_from_average = 0.0
- sumprob = 0.0
- for scenario in tree_node._scenarios:
- scenario_probability = scenario._probability
- var_value = scenario._x[tree_node._name][variable_id]
- deviation_from_average += \
- (scenario_probability * \
- math.fabs(var_value - node_average))
- sumprob += scenario_probability
- # expected deviation
- deviation_from_average /= sumprob
-
- node_min = \
- self.Int_If_Close_Enough(ph,
- tree_node._minimums[variable_id])
- node_max = \
- self.Int_If_Close_Enough(ph,
- tree_node._maximums[variable_id])
-
- if tree_node.is_variable_discrete(variable_id):
- denominator = max(node_max - node_min + 1, 1)
- else:
- denominator = max(deviation_from_average, 1)
-
- # CostForRho are the costs to be used as the
- # numerator in the rho computation below.
- if self.Verbose or ph._verbose:
- print ("wwphextension is setting rho to %f for variable id=%s" % (CostForRho[variable_id] * self.RhosSEPMult / denominator , str(variable_id)))
- ph.setRhoAllScenarios(
- tree_node,
- variable_id,
- CostForRho[variable_id] * self.RhosSEPMult / denominator)
-
- if is_fixed is False:
-
- if tree_node.is_variable_discrete(variable_id):
- node_min = \
- self.Int_If_Close_Enough(
- ph,
- tree_node._minimums[variable_id])
- node_max = \
- self.Int_If_Close_Enough(
- ph,
- tree_node._maximums[variable_id])
-
- # update convergence prior to checking for fixing.
- self._int_convergence_tracking(ph,
- tree_node,
- variable_id,
- node_min,
- node_max)
-
- lb = self.Iter0FixIfConvergedAtLB
- if variable_id in Iter0FixIfConvergedAtLB:
- lb = Iter0FixIfConvergedAtLB[variable_id]
-
- ub = self.Iter0FixIfConvergedAtUB
- if variable_id in Iter0FixIfConvergedAtUB:
- ub = Iter0FixIfConvergedAtUB[variable_id]
-
- nb = self.Iter0FixIfConvergedAtNB
- if variable_id in Iter0FixIfConvergedAtNB:
- nb = Iter0FixIfConvergedAtNB[variable_id]
-
- if self._should_fix_discrete_due_to_conv(tree_node,
- variable_id,
- lb,
- ub,
- nb):
- self._fix_var(ph, tree_node, variable_id, node_min)
- elif self.W_hash_history_len > 0:
- # if not fixed, then hash - no slamming at iteration 0
-
- # obviously not checking for cycles at iteration 0!
- self._w_history_accounting(ph, tree_node, variable_id)
-
- else:
-
- node_min = tree_node._minimums[variable_id]
- node_max = tree_node._maximums[variable_id]
-
- self._continuous_convergence_tracking(ph,
- tree_node,
- variable_id,
- node_min,
- node_max)
-
-# jpw: not sure if we care about cycle detection in continuous variables?
-# if self.W_hash_history_len > 0:
-# self._w_history_accounting(ph, tree_node, variable_id)
-
-
-#==================================================
- def post_iteration_0(self, ph):
-
- pass
-
-#==================================================
-
- def pre_iteration_k_solves(self, ph):
-
- if (ph._current_iteration == 1) and \
- (not self._iteration_0_called):
- print("WW PH extension detected iteration 0 solves were skipped. "
- "Executing post_iteration_0_solves plugin code.")
- self.post_iteration_0_solves(ph)
- self._iteration_0_called = True
-
- # NOTE: iteration 0 mipgaps are handled during extension
- # initialization, following PH initialization.
-
- if (self.InitialMipGap > 0 and self.FinalMipGap >= 0) and \
- self.InitialMipGap > self.FinalMipGap:
-
- if ph._current_iteration == 1:
- print("WW PH Extension: Setting mipgap to %.7f, as "
- "specified in the configuration file" % self.InitialMipGap)
- ph._mipgap = self.InitialMipGap
-
- else:
-
- m0 = self.converger_to_use._metric_history[0]
- m1 = self.converger_to_use._metric_history[1]
- m = self.converger_to_use.lastMetric()
- mlast = self.converger_to_use._convergence_threshold
-
- basis_value = m0
- if self.StartMipGapFromIter0Metric == False:
- basis_value = m1
-
- x = 1.0 - (m-mlast)/(basis_value-mlast)
- y = 1.0 - x**self.MipGapExponent
-
- g0 = self.InitialMipGap
- glast = self.FinalMipGap
-
- new_gap = y * (g0-glast) + glast
-
- if new_gap > g0:
- print("WW PH Extension: ***CAUTION - setting mipgap to "
- "thresholded maximal initial value=%.7f; "
- "unthresholded value=%.7f" % (g0, new_gap))
- new_gap = g0
- else:
- print("WW PH Extension: Setting mipgap to %.7f, based "
- "on current value of the convergence metric"
- % (new_gap))
- ph._mipgap = new_gap
-
-#==================================================
- def post_iteration_k_solves(self, ph):
-
- # Collect suffix dictionaries that we will check inside the
- # next loop
- FixWhenItersConvergedAtLB = self._suffixes['FixWhenItersConvergedAtLB']
- FixWhenItersConvergedAtUB = self._suffixes['FixWhenItersConvergedAtUB']
- FixWhenItersConvergedAtNB = self._suffixes['FixWhenItersConvergedAtNB']
-
- # track all variables for which cycles have been detected -
- # other plugins may want to react to / report on this
- # information.
- self.variables_with_detected_cycles = [] # consists of tuples of variable id, name, cycle length, cycle message, and tree node
- self.variable_fixed = False
-
- print ("WW PH Extension: Analyzing variables for fixing")
-
- for stage, tree_node, variable_id, variable_values, is_fixed, is_stale in \
- scenario_tree_node_variables_generator_noinstances(
- ph._scenario_tree,
- includeDerivedVariables=False,
- includeLastStage=False,
- sort=True):
-
- (lbval, ubval) = tree_node._variable_bounds[variable_id]
- # if the variable is stale, don't waste time fixing and
- # cycle checking. for one, the code will crash :-) due to
- # None values observed during the cycle checking
- # computation.
- if (is_stale is False) and (is_fixed is False) \
- and (lbval is None or ubval is None or lbval != ubval):
-
- variable_name, index = tree_node._variable_ids[variable_id]
- full_variable_name = variable_name+indexToString(index)
- if tree_node.is_variable_discrete(variable_id):
- node_min = \
- self.Int_If_Close_Enough(ph,
- tree_node._minimums[variable_id])
- node_max = \
- self.Int_If_Close_Enough(ph,
- tree_node._maximums[variable_id])
-
- # update convergence prior to checking for fixing.
- self._int_convergence_tracking(ph,
- tree_node,
- variable_id,
- node_min,
- node_max)
-
- lb = self.FixWhenItersConvergedAtLB
- if variable_id in FixWhenItersConvergedAtLB:
- lb = FixWhenItersConvergedAtLB[variable_id]
-
- ub = self.FixWhenItersConvergedAtUB
- if variable_id in FixWhenItersConvergedAtUB:
- ub = FixWhenItersConvergedAtUB[variable_id]
-
- nb = self.FixWhenItersConvergedAtNB
- if variable_id in FixWhenItersConvergedAtNB:
- nb = FixWhenItersConvergedAtNB[variable_id]
-
- if self._should_fix_discrete_due_to_conv(tree_node,
- variable_id,
- lb,
- ub,
- nb):
-
- self._fix_var(ph, tree_node, variable_id, node_min)
-
- else:
-
- # check to see if a cycle exists for this variable,
- # and record it if it does - cycle breaking will
- # happen later, if it happens at all.
- if self.W_hash_history_len > 0:
-
- self._w_history_accounting(ph, tree_node, variable_id)
-
- computed_cycle_length, msg = \
- self.compute_cycle_length(ph,
- tree_node,
- variable_id,
- False)
-
- if computed_cycle_length > 0:
- if (computed_cycle_length >= self.CycleLengthSlamThreshold) or \
- self.ReportPotentialCycles:
- self.variables_with_detected_cycles.append(
- (variable_id, full_variable_name,
- computed_cycle_length, msg, tree_node))
-
- else:
-
- # obviously don't round in the continuous case.
- node_min = tree_node._minimums[variable_id]
- node_max = tree_node._maximums[variable_id]
-
- # update w statistics for whatever nefarious
- # purposes are enabled.
- if self.W_hash_history_len > 0:
- self._w_history_accounting(ph,
- tree_node,
- variable_id)
-
- # update convergence prior to checking for
- # fixing.
- self._continuous_convergence_tracking(ph,
- tree_node,
- variable_id,
- node_min,
- node_max)
-
- if self._should_fix_continuous_due_to_conv(tree_node,
- variable_id):
- # fixing to max value for safety (could only
- # be an issue due to tolerances).
- self._fix_var(ph, tree_node, variable_id, node_max)
- # note: we currently don't slam continuous variables!
-
- # while cycles could be broken by variable fixing, the
- # notions of cycle breaking and variable fixing are really
- # independent. in particular, cycles is indicative of bad
- # rhos and/or xbar estimates, indicating the weights
- # probably need to be adjusted in any case.
- if len(self.variables_with_detected_cycles) > 0:
- print ("WW PH Extension: Cycles were detected - initiating cycle analysis and remediation")
- if self.Verbose or ph._verbose:
- print ("WW PH Extension: Cycle information:")
- print ("Variable Cycle Length Cycle Details")
- for variable_id, full_variable_name, computed_cycle_length, cycle_msg, tree_node in self.variables_with_detected_cycles:
- if self.Verbose or ph._verbose:
- print ("%20s %4d %s" % (full_variable_name, computed_cycle_length, cycle_msg))
- if (computed_cycle_length \
- >= self.CycleLengthSlamThreshold) and \
- ((ph._current_iteration - self._last_slam_iter) \
- > self.PH_Iters_Between_Cycle_Slams):
- # TBD: we may not want to slam
- # immediately - it may disappear on
- # its own after a few iterations,
- # depending on what other variables do.
- # note: we are *not* slamming the
- # offending variable, but a selected variable
- if self.Verbose or ph._verbose:
- print(cycle_msg)
- print(" Cycle length exceeds iteration slamming "
- "threshold="
- +str(self.CycleLengthSlamThreshold)+
- "; choosing a variable to slam")
-
- self._pick_one_and_slam_it(ph)
- self._reset_w_reduce_rho(ph,
- tree_node,
- variable_id,
- full_variable_name)
- elif (computed_cycle_length > 1) and \
- (computed_cycle_length \
- < self.CycleLengthSlamThreshold):
- # there was a (potential) cycle, but
- # the slam threshold wasn't reached.
- if (self.Verbose or ph._verbose):
- print(cycle_msg)
- print(" Taking no action to break cycle - "
- "length="+str(computed_cycle_length)+
- " does not exceed slam threshold="
- +str(self.CycleLengthSlamThreshold))
- elif (computed_cycle_length \
- >= self.CycleLengthSlamThreshold) and \
- ((ph._current_iteration - self._last_slam_iter) \
- > self.PH_Iters_Between_Cycle_Slams):
- # we could have slammed, but we
- # recently did and are taking a break
- # to see if things settle down on
- # their own.
- if self.Verbose or ph._verbose:
- print(cycle_msg)
- print(" Taking no action to break cycle - "
- "length="+str(computed_cycle_length)+
- " does exceed slam threshold="
- +str(self.CycleLengthSlamThreshold)+
- ", but another variable was slammed "
- "within the past "
- +str(self.PH_Iters_Between_Cycle_Slams)+
- " iterations")
-
- #######
-
- if (ph._current_iteration > self.SlamAfterIter) and \
- ((ph._current_iteration - self._last_slam_iter) \
- > self.PH_Iters_Between_Cycle_Slams):
-
- if (self.SlamOnlyIfNotConverging and not self.converger_to_use.isImproving(self.PH_Iters_Between_Cycle_Slams)) or \
- (not self.SlamOnlyIfNotConverging):
- print("Slamming criteria are satisifed - accelerating convergence")
- self._pick_one_and_slam_it(ph)
- self._just_slammed_ = True
- else:
- self._just_slammed_ = False
- else:
- self._just_slammed_ = False
-
- ### THIS IS EXPERIMENTAL - CODE MAY BELONG SOMEWHERE ELSE ###
- for stage, tree_node, variable_id, variable_values, is_fixed, is_stale in \
- scenario_tree_node_variables_generator_noinstances(
- ph._scenario_tree,
- includeDerivedVariables=False,
- includeLastStage=False,
- sort=True):
-
- last_flip_iter = tree_node._w_last_sign_flip_iter[variable_id]
- flip_duration = ph._current_iteration - last_flip_iter
-
- if (self.CheckWeightOscillationAfterIter > 0) and \
- (ph._current_iteration >= self.CheckWeightOscillationAfterIter):
- if (last_flip_iter == 0) or \
- (flip_duration >= self.FixIfWeightOscillationCycleLessThan):
- pass
- else:
- if self._slam(ph, tree_node, variable_id) is True:
- tree_node._w_last_sign_flip_iter[variable_id] = 0
- return
-
-#==================================================
- def post_iteration_k(self, ph):
-
- pass
-
-#==================================================
- def post_ph_execution(self, ph):
-
- if self.fix_converged_discrete_variables_at_exit is True:
- print("WW PH extension: Fixing all discrete variables that "
- "are converged at termination")
- self._fix_all_converged_discrete_variables(ph)
-
-#=========================
- def Int_If_Close_Enough(self, ph, x):
- # if x is close enough to the nearest integer, return the integer
- # else return x
- if abs(round(x)-x) <= ph._integer_tolerance:
- return int(round(x))
- else:
- return x
-
-#=========================
- def _int_convergence_tracking(self,
- ph,
- tree_node,
- variable_id,
- node_min,
- node_max):
-
- # keep track of cumulative iters of convergence to the same int
- if (node_min == node_max) and (type(node_min) is int):
- if node_min == tree_node._last_converged_val[variable_id]:
- tree_node._num_iters_converged[variable_id] += 1
- else:
- tree_node._num_iters_converged[variable_id] = 1
- tree_node._last_converged_val[variable_id] = node_min
- else:
- tree_node._num_iters_converged[variable_id] = 0
- tree_node._last_converged_val[variable_id] = 0.5
-
-#=========================
- def _continuous_convergence_tracking(self,
- ph,
- tree_node,
- variable_id,
- node_min,
- node_max):
- # keep track of cumulative iters of convergence to the same
- # value within tolerance.
- if abs(node_max - node_min) <= ph._integer_tolerance:
- if abs(node_min - tree_node._last_converged_val[variable_id]) \
- <= ph._integer_tolerance:
- tree_node._num_iters_converged[variable_id] = \
- tree_node._num_iters_converged[variable_id] + 1
- else:
- tree_node._num_iters_converged[variable_id] = 1
- tree_node._last_converged_val[variable_id] = node_min
- else:
- tree_node._num_iters_converged[variable_id] = 0
- # TBD - avoid the magic constant!
- tree_node._last_converged_val[variable_id] = 0.2342343243223423
-
-#=========================
- def _w_history_accounting(self, ph, tree_node, variable_id):
- # do the w hash accounting work
- # we hash on the variable ph weights, and not the values; the
- # latter may not shift for some time, while the former should.
- self.W_hash_rand_val = self.W_hash_seed
-
- new_sign_vector = []
- old_sign_vector = tree_node._w_sign_vector[variable_id]
-
- for scenario in tree_node._scenarios:
- weight_value = scenario._w[tree_node._name][variable_id]
- weight_sign = True
- if weight_value < 0.0:
- weight_sign = False
- tree_node._w_hash[variable_id,ph._current_iteration] += \
- weight_value * self.W_hash_rand_val
-
- new_sign_vector.append(weight_sign)
- self.W_hash_rand_val = \
- (self.W_hash_b + self.W_hash_a * self.W_hash_rand_val) \
- % self.W_hash_c
-
- hash_val = tree_node._w_hash[variable_id,ph._current_iteration]
-
- num_flips = 0
- for i in xrange(0,len(old_sign_vector)):
- if new_sign_vector[i] != old_sign_vector[i]:
- num_flips += 1
-
- tree_node._w_sign_vector[variable_id] = new_sign_vector
-
- if num_flips >= 1:
- tree_node._w_last_sign_flip_iter[variable_id] = ph._current_iteration
-
- def compute_cycle_length(self,
- ph,
- tree_node,
- variable_id,
- report_possible_cycles):
-
- # return cycles back to closest hash hit for hashval or 0 if
- # no hash hit
-
- # if the values are converged, then don't report a cycle -
- # often, the weights at convergence are 0s, and even if they
- # aren't, they won't move if the values are uniform.
- if (tree_node._num_iters_converged[variable_id] == 0) and \
- (variable_id not in tree_node._fixed):
- current_hash_value = None
- current_hash_value = \
- tree_node._w_hash[variable_id,ph._current_iteration]
- # scan starting from the farthest point back in history to
- # the closest - this is required to identify the longest
- # possible cycles, which is what we want.
- for i in xrange(max(ph._current_iteration-self.W_hash_history_len-1,1),
- ph._current_iteration - 1, 1):
- this_hash_value = tree_node._w_hash[variable_id,i]
- if current_hash_value == 0.0:
- relative_diff = float("inf")
- else:
- relative_diff = math.fabs(this_hash_value - current_hash_value) / math.fabs(current_hash_value) * 100.0
- # we compare w hash values relatively, as opposed to absolutely.
- if relative_diff <= self.WHashComparisonTolerance:
- if report_possible_cycles is True:
- variable_name, index = tree_node._variable_ids[variable_id]
- print(" Possible cycle detected via PH weight hashing - "
- "variable="+variable_name+indexToString(index)+
- " node="+ tree_node._name)
- msg = (" Current hash value="+str(current_hash_value)+
- " matched (within tolerance) hash value="
- +str(this_hash_value)+" found at PH iteration="
- +str(i)+"; cycle length="
- +str(ph._current_iteration - i))
-
- if self.ReportCycleWHashDetail:
- variable_name, index = tree_node._variable_ids[variable_id]
- print("Cycle W hash history detail for variable="+variable_name+indexToString(index))
- print("Current hash value: %f" % current_hash_value)
- print("Iteration Hash Value % Diff. Relative to Current Hash Value")
- for j in xrange(max(ph._current_iteration-self.W_hash_history_len-1,1),
- ph._current_iteration - 1, 1):
- iteration_j_hash_value = tree_node._w_hash[variable_id,j]
- relative_diff = math.fabs(iteration_j_hash_value - current_hash_value)/math.fabs(current_hash_value)
- print("%4d %16.6f %10.4f" % (j, iteration_j_hash_value, relative_diff*100.0))
- return ph._current_iteration - i, msg
- return 0, ""
-
- def _fix_var(self, ph, tree_node, variable_id, fix_value):
-
- # fix the variable, account for it and maybe output some trace
- # information
- # note: whether you fix at current values or not can severly
- # impact feasibility later in the game. my original thought
- # was below - but that didn't work out. if you make integers,
- # well, integers, all appears to be well.
- # IMPT: we are leaving the values for individual variables
- # alone, at potentially smallish and heterogeneous
- # values. if we fix/round, we run the risk of
- # infeasibilities due to numerical issues. the computed
- # value below is strictly for output purposes.
- # dlw note:
- # as of aug 1 '09, node_min and node_max should be int
- # if they should be (so to speak)
-
- variable_name, index = tree_node._variable_ids[variable_id]
- if self.Verbose or ph._verbose:
- print(" Fixing variable="+variable_name+indexToString(index)+
- " at tree node="+tree_node._name+" to value="
- +str(fix_value)+"; converged for "
- +str(tree_node._num_iters_converged[variable_id])+
- " iterations")
-
- tree_node.fix_variable(variable_id, fix_value)
-
- if tree_node.is_variable_discrete(variable_id):
- self.cumulative_discrete_fixed_count += 1
- else:
- self.cumulative_continuous_fixed_count += 1
-
- # set the global state flag indicator
- self.variable_fixed = True
-
- # the last 3 input arguments are the number of iterations the
- # variable is required to be at the respective bound (or lack
- # thereof) before fixing can be initiated.
- def _should_fix_discrete_due_to_conv(self,
- tree_node,
- variable_id,
- lb_iters,
- ub_iters,
- nb_iters):
- # return True if this should be fixed due to convergence
-
- # jpw: i don't think this logic is correct - shouldn't
- # "non-bound" be moved after the lb/ub checks - this doesn't
- # check a bound!
- # dlw reply: i meant it to mean "without regard to bound" so i
- # have updated the document
- if nb_iters > 0 and tree_node._num_iters_converged[variable_id] >= nb_iters:
- return True
- else:
- # there is a possibility that the variable doesn't have a
- # bound specified, in which case we should obviously
- # ignore the corresponding lb_iters/ub_iters/nb_iters -
- # which
- # should be none as well!
- (lb, ub) = tree_node._variable_bounds[variable_id]
- conval = tree_node._last_converged_val[variable_id]
- # note: if they are converged node_max == node_min
- if (lb is not None) and (lb_iters > 0) and \
- (tree_node._num_iters_converged[variable_id] >= lb_iters) and \
- (conval == lb):
- return True
- elif (ub is not None) and (ub_iters > 0) and \
- (tree_node._num_iters_converged[variable_id] >= ub_iters) and \
- (conval == ub):
- return True
- # if we are still here, nothing triggered fixing
- return False
-
-#=========================
- def _should_fix_continuous_due_to_conv(self, tree_node, variable_id):
-
- if self.fix_continuous_variables:
- if (self.FixWhenItersConvergedContinuous > 0) and \
- (tree_node._num_iters_converged[variable_id] \
- >= self.FixWhenItersConvergedContinuous):
-
- return True
-
- # if we are still here, nothing triggered fixing
- return False
-
-#=========================
- def _slam(self, ph, tree_node, variable_id):
- # this function returns a boolean indicating if it slammed
- # TBD: in the distant future: also: slam it to somewhere it
- # sort of wants to go
- # e.g., the anywhere case could be to the mode or if more than
- # one dest is True, pick the one closest to the average as
- # of sept 09, it is written with the implicit assumption
- # that only one destination is True or that if not, then
- # min/max trumps lb/ub and anywhere trumps all
-
- variable_name, index = tree_node._variable_ids[variable_id]
- lb, ub = tree_node._variable_bounds[variable_id]
-
- if tree_node.is_variable_discrete(variable_id):
- node_min = \
- self.Int_If_Close_Enough(
- ph,
- tree_node._minimums[variable_id])
- node_max = \
- self.Int_If_Close_Enough(
- ph,
- tree_node._maximums[variable_id])
- anywhere = round(tree_node._averages[variable_id])
- else:
- node_min = tree_node._minimums[variable_id]
- node_max = tree_node._maximums[variable_id]
- anywhere = tree_node._averages[variable_id]
-
- slam_basis_string = ""
- fix_value = None
- if self._suffixes['CanSlamToLB'].get(variable_id,
- self.CanSlamToLB):
- fix_value = lb
- slam_basis_string = "lower bound"
- if self._suffixes['CanSlamToMin'].get(variable_id,
- self.CanSlamToMin):
- fix_value = node_min
- slam_basis_string = "node minimum"
- if self._suffixes['CanSlamToUB'].get(variable_id,
- self.CanSlamToUB):
- fix_value = ub
- slam_basis_string = "upper bound"
- if self._suffixes['CanSlamToMax'].get(variable_id,
- self.CanSlamToMax):
- fix_value = node_max
- slam_basis_string = "node maximum"
- if self._suffixes['CanSlamToAnywhere'].get(variable_id,
- self.CanSlamToAnywhere):
- fix_value = anywhere
- slam_basis_string = "node average (anywhere)"
- if fix_value is None:
- print(" Warning: Not allowed to slam variable="
- +variable_name+indexToString(index)+" at tree node="
- +tree_node._name)
- return False
- else:
- print(" Slamming variable="+variable_name+indexToString(index)+
- " at tree node="+tree_node._name+" to value="
- +str(fix_value)+"; value="+slam_basis_string)
- self._fix_var(ph, tree_node, variable_id, fix_value)
- return True
-
-#=========================
- def _pick_one_and_slam_it(self, ph):
-
- my_stage_suffix = self._variable_stage
-
- for variable_id in self.slam_list:
-
- # did we find at least one node to slam in?
- didone = False;
-
- # it is possible (even likely) that the slam list contains
- # variable values that reside in the final stage - which,
- # because of the initialization loops in the
- # post_ph_initialization() method, will not have a _stage
- # attribute defined. check for the presence of this
- # attribute and skip if not present, as it doesn't make
- # sense to slam variable values in the final stage anyway.
- if variable_id in my_stage_suffix:
- variable_stage = my_stage_suffix[variable_id]
- for tree_node in variable_stage._tree_nodes:
- # Find the correct tree node
- if variable_id in tree_node._variable_ids:
- # determine if the variable is already fixed (the
- # trusting version...).
- if not tree_node.is_variable_fixed(variable_id):
- didone = self._slam(ph, tree_node, variable_id)
- break
- if didone:
- self._last_slam_iter = ph._current_iteration
- return
-
- if self.Verbose or ph._verbose:
- print(" Warning: Nothing free with a non-zero slam priority - "
- "no variable will be slammed")
-
- # DLW says: Hey, look at this: if we were to start deleting
- # from the slam list this would be wrong."
- if len(self.slam_list) == 0:
- if self.Verbose or ph._verbose:
- print(" (No Slamming Priorities were specified in "
- "a suffix file.)")
-
- def _reset_w_reduce_rho(self, ph, tree_node, variable_id, variable_name):
-
- # only output the rho reduction information if the rho factor
- # will actually have an impact (i.e., it is non-unity).
- if self.Verbose or ph._verbose:
- print(" Resetting W for variable="+variable_name+" to zero"),
- if self.RhoReductionFactor != 1.0:
- print (" and multiplying rho by the RhoReductionFactor="
- +str(self.RhoReductionFactor)),
-
- # reset w to zero and reduce rho
- average_rho_value = 0.0
- for scenario in tree_node._scenarios:
- scenario._w[tree_node._name][variable_id] = 0.0
- scenario._rho[tree_node._name][variable_id] *= self.RhoReductionFactor
- average_rho_value += scenario._rho[tree_node._name][variable_id]
- average_rho_value /= float(len(tree_node._scenarios))
- if self.Verbose or ph._verbose:
- if self.RhoReductionFactor != 1.0:
- print("- new average (across all scenarios) rho value="+str(average_rho_value)),
-
- if self.ScenarioRhoPerturbation != 0.0:
- if self.Verbose or ph._verbose:
- print("; perturbing rho per-scenario")
- lb = 1.0 - self.ScenarioRhoPerturbation
- ub = 1.0 + self.ScenarioRhoPerturbation
- for scenario in tree_node._scenarios:
- scenario._rho[tree_node._name][variable_id] *= random.uniform(lb,ub)
-
- if self.Verbose or ph._verbose:
- print("")
-
- # a simple utility to fix any discrete variables to their common
- # value, assuming they are at a common value
- def _fix_all_converged_discrete_variables(self, ph):
-
- num_variables_fixed = 0
-
- for stage, tree_node, variable_id, variable_values, is_fixed, is_stale in \
- scenario_tree_node_variables_generator_noinstances(
- ph._scenario_tree,
- includeDerivedVariables=False,
- includeLastStage=False):
-
- # if the variable is stale, don't waste time fixing and
- # cycle checking. for one, the code will crash :-) due to
- # None values observed during the cycle checking
- # computation.
- if (is_stale is False) and (is_fixed is False):
-
- if tree_node.is_variable_discrete(variable_id):
- node_min = \
- self.Int_If_Close_Enough(ph,
- tree_node._minimums[variable_id])
- node_max = \
- self.Int_If_Close_Enough(ph,
- tree_node._maximums[variable_id])
-
- if node_min == node_max:
- self._fix_var(ph, tree_node, variable_id, node_min)
- num_variables_fixed += 1
-
- print("WW PH Extension: Total number of variables fixed at PH termination "
- "due to convergence="+str(num_variables_fixed))
diff --git a/pyomo/pysp/scenariotree/__init__.py b/pyomo/pysp/scenariotree/__init__.py
deleted file mode 100644
index a7ce9b2e640..00000000000
--- a/pyomo/pysp/scenariotree/__init__.py
+++ /dev/null
@@ -1,49 +0,0 @@
-# ___________________________________________________________________________
-#
-# Pyomo: Python Optimization Modeling Objects
-# Copyright 2017 National Technology and Engineering Solutions of Sandia, LLC
-# Under the terms of Contract DE-NA0003525 with National Technology and
-# Engineering Solutions of Sandia, LLC, the U.S. Government retains certain
-# rights in this software.
-# This software is distributed under the 3-clause BSD License.
-# ___________________________________________________________________________
-
-import pyomo.pysp.scenariotree.util
-from pyomo.pysp.scenariotree.tree_structure_model import (
- CreateAbstractScenarioTreeModel, CreateConcreteTwoStageScenarioTreeModel,
- ScenarioTreeModelFromNetworkX)
-from pyomo.common.collections import ComponentMap
-from pyomo.core import (value, minimize, maximize,
- Var, Expression, Block,
- Objective, SOSConstraint,
- ComponentUID)
-from pyomo.core.base.sos import _SOSConstraintData
-from pyomo.repn import generate_standard_repn
-from pyomo.pysp.phutils import (BasicSymbolMap,
- indexToString,
- isVariableNameIndexed,
- extractVariableNameAndIndex,
- extractComponentIndices,
- find_active_objective)
-from pyomo.pysp.scenariotree.tree_structure import (_CUIDLabeler,
- ScenarioTreeNode,
- ScenarioTreeStage,
- Scenario,
- ScenarioTreeBundle,
- ScenarioTree)
-from pyomo.pysp.scenariotree.instance_factory import (DataPortal, Block,
- IPyomoScriptModifyInstance,
- AbstractModel, _BlockData,
- ExtensionPoint,
- load_external_module,
- _extract_pathspec,
- _find_reference_model_or_callback,
- _find_scenariotree,
- ScenarioTreeInstanceFactory)
-
-import pyomo.pysp.scenariotree.action_manager_pyro
-import pyomo.pysp.scenariotree.server_pyro
-import pyomo.pysp.scenariotree.manager
-import pyomo.pysp.scenariotree.manager_worker_pyro
-import pyomo.pysp.scenariotree.manager_solver
-import pyomo.pysp.scenariotree.manager_solver_worker_pyro
diff --git a/pyomo/pysp/scenariotree/action_manager_pyro.py b/pyomo/pysp/scenariotree/action_manager_pyro.py
deleted file mode 100644
index a7c8d3f3435..00000000000
--- a/pyomo/pysp/scenariotree/action_manager_pyro.py
+++ /dev/null
@@ -1,314 +0,0 @@
-# ___________________________________________________________________________
-#
-# Pyomo: Python Optimization Modeling Objects
-# Copyright 2017 National Technology and Engineering Solutions of Sandia, LLC
-# Under the terms of Contract DE-NA0003525 with National Technology and
-# Engineering Solutions of Sandia, LLC, the U.S. Government retains certain
-# rights in this software.
-# This software is distributed under the 3-clause BSD License.
-# ___________________________________________________________________________
-
-__all__ = ("ScenarioTreeActionManagerPyro",)
-
-import time
-import itertools
-import logging
-from collections import defaultdict
-import base64
-try:
- import cPickle as pickle
-except:
- import pickle
-
-from pyomo.common.dependencies import attempt_import
-from pyomo.opt.parallel.manager import ActionStatus
-from pyomo.opt.parallel.pyro import PyroAsynchronousActionManager
-
-pyu_pyro = attempt_import('pyutilib.pyro', alt_names=['pyu_pyro'])[0]
-Pyro4 = attempt_import('Pyro4')[0]
-
-import six
-from six import advance_iterator, iteritems, itervalues
-
-logger = logging.getLogger('pyomo.pysp')
-
-#
-# a specialized asynchronous action manager for the scenariotreeserver
-#
-
-class ScenarioTreeActionManagerPyro(PyroAsynchronousActionManager):
-
- def __init__(self, *args, **kwds):
- super(ScenarioTreeActionManagerPyro, self).__init__(*args, **kwds)
- # the SPPyroScenarioTreeServer objects associated with
- # this manager
- self.server_pool = []
- self._server_name_to_dispatcher_name = {}
- self._dispatcher_name_to_server_names = {}
- # tells the action manager to ignore task errors
- # (it will still report them, just take no action)
- self.ignore_task_errors = False
-
- def __enter__(self):
- return self
-
- def __exit__(self, *args):
- self.close()
-
- def close(self):
- """Close the manager."""
- if len(self.server_pool):
- self.release_servers()
- super(ScenarioTreeActionManagerPyro, self).close()
-
- def acquire_servers(self, servers_requested, timeout=None):
-
- if self._verbose:
- print("Attempting to acquire %s scenario tree servers"
- % (servers_requested))
- if timeout is None:
- print("Timeout has been disabled")
- else:
- print("Automatic timeout in %s seconds" % (timeout))
-
- assert len(self.server_pool) == 0
- assert len(self._dispatcher_name_to_client) == 0
- assert len(self._server_name_to_dispatcher_name) == 0
- assert len(self._dispatcher_name_to_server_names) == 0
- assert len(self._dispatcher_proxies) == 0
- #
- # This process consists of the following steps:
- #
- # (1) Obtain the list of dispatchers from the nameserver
- # (2) Acquire all workers currently registered on each dispatcher
- # (3) Repeat (1) and (2) until we reach the timeout (if it exists)
- # or until we obtain the number of servers requested
- # (4) Release any servers we don't need on dispatchers
- #
- wait_start = time.time()
- dispatcher_registered_servers = defaultdict(list)
- dispatcher_servers_to_release = defaultdict(list)
- dispatcher_proxies = {}
- servers_acquired = 0
- while servers_acquired < servers_requested:
-
- if (timeout is not None) and \
- ((time.time()-wait_start) > timeout):
- print("Timeout reached before %s servers could be acquired. "
- "Proceeding with %s servers."
- % (servers_requested, servers_acquired))
- break
-
- try:
- dispatchers = pyu_pyro.util.get_dispatchers(
- host=self.host,
- port=self.port,
- caller_name="Client")
- except pyu_pyro.util._connection_problem:
- print("Failed to obtain one or more dispatchers from nameserver")
- continue
- for (name, uri) in dispatchers:
- dispatcher = None
- server_names = None
- if name not in dispatcher_proxies:
- # connect to the dispatcher
- if pyu_pyro.using_pyro3:
- dispatcher = pyu_pyro.Pyro.core.getProxyForURI(uri)
- else:
- dispatcher = pyu_pyro.Pyro.Proxy(uri)
- dispatcher._pyroTimeout = 10
- try:
- server_names = dispatcher.acquire_available_workers()
- except pyu_pyro.util._connection_problem:
- if pyu_pyro.using_pyro4:
- dispatcher._pyroRelease()
- else:
- dispatcher._release()
- continue
- dispatcher_proxies[name] = dispatcher
- if pyu_pyro.using_pyro4:
- dispatcher._pyroTimeout = None
- else:
- dispatcher = dispatcher_proxies[name]
- server_names = dispatcher.acquire_available_workers()
-
- # collect the list of registered PySP workers
- servers_to_release = dispatcher_servers_to_release[name]
- registered_servers = dispatcher_registered_servers[name]
- for server_name in server_names:
- if server_name.startswith("ScenarioTreeServerPyro_"):
- registered_servers.append(server_name)
- else:
- servers_to_release.append(server_name)
-
- if (timeout is not None) and \
- ((time.time()-wait_start) > timeout):
- break
-
- servers_acquired = sum(len(_serverlist) for _serverlist
- in itervalues(dispatcher_registered_servers))
- # Don't overload the nameserver while trying to
- # collect dispatchers with registered workers.
- # If you haven't found them after the first few tries,
- # it's very likely that you are not going to.
- time.sleep(0.5)
-
- for name, servers_to_release in iteritems(dispatcher_servers_to_release):
- dispatcher_proxies[name].release_acquired_workers(servers_to_release)
- del dispatcher_servers_to_release
-
- #
- # Decide which servers we will utilize and do this in such a way
- # as to balance the workload we place on each dispatcher
- #
- server_to_dispatcher_map = {}
- dispatcher_servers_utilized = defaultdict(list)
- servers_utilized = 0
- dispatcher_names = itertools.cycle(dispatcher_registered_servers.keys())
- while servers_utilized < min(servers_requested, servers_acquired):
- name = advance_iterator(dispatcher_names)
- if len(dispatcher_registered_servers[name]) > 0:
- servername = dispatcher_registered_servers[name].pop()
- server_to_dispatcher_map[servername] = name
- dispatcher_servers_utilized[name].append(servername)
- servers_utilized += 1
-
- # copy the keys as we are modifying this list
- dispatcher_proxies_byURI = {}
- for name in list(dispatcher_proxies.keys()):
- dispatcher = dispatcher_proxies[name]
- servers = dispatcher_servers_utilized[name]
- if len(dispatcher_registered_servers[name]) > 0:
- # release any servers we do not need
- dispatcher.release_acquired_workers(
- dispatcher_registered_servers[name])
- if len(servers) == 0:
- # release the proxy to this dispatcher,
- # we don't need it
- if pyu_pyro.using_pyro4:
- dispatcher._pyroRelease()
- else:
- dispatcher._release()
- del dispatcher_proxies[name]
- else:
- # when we initialize a client directly with a dispatcher
- # proxy it does not need to know the nameserver host or port
- client = self._create_client(dispatcher=dispatcher)
- self._dispatcher_name_to_server_names[client.URI] = servers
- dispatcher_proxies_byURI[client.URI] = dispatcher
- for servername in servers:
- self._server_name_to_dispatcher_name[servername] = client.URI
- self.server_pool.append(servername)
- self._dispatcher_proxies = dispatcher_proxies_byURI
-
- def release_servers(self):
-
- if self._verbose:
- print("Releasing scenario tree servers")
-
- for name in self._dispatcher_proxies:
- dispatcher = self._dispatcher_proxies[name]
- servers = self._dispatcher_name_to_server_names[name]
- # tell dispatcher that the servers we have acquired are no
- # longer needed
- dispatcher.release_acquired_workers(servers)
-
- self.server_pool = []
- self._server_name_to_dispatcher_name = {}
- self._dispatcher_name_to_server_names = {}
-
- #
- # Abstract Methods
- #
-
- def _get_dispatcher_name(self, queue_name):
- return self._server_name_to_dispatcher_name[queue_name]
-
- def _get_task_data(self, ah, **kwds):
- # Doing this serves two purposes:
- # (1) It avoids issues with transmitting user-defined
- # types over the wire that the dispatcher is not
- # aware of (and therefore unable to de-serialize)
- # (2) It improves performance on the dispatcher
- # because de-serialization (and
- # re-serialization) of raw bytes should be
- # about as trivial as you can get for any
- # serializer that Pyro/Pyro4 happens to be
- # configured with (pickle is the fastest,
- # but that is not the default in Pyro4 for
- # security reasons).
- return pickle.dumps(kwds)
-
- def _download_results(self):
-
- found_results = False
- for client in itervalues(self._dispatcher_name_to_client):
- if len(self._dispatcher_name_to_client) == 1:
- # if there is a single dispatcher then we can do
- # a more efficient blocking call
- results = client.get_results(override_type=client.CLIENTNAME,
- block=True,
- timeout=None)
- else:
- results = client.get_results(override_type=client.CLIENTNAME,
- block=False)
- if len(results) > 0:
- found_results = True
- for task in results:
- self.queued_action_counter -= 1
-
- # The only reason we are go through this much
- # effort to deal with the serpent serializer
- # is because it is the default in Pyro4.
- if pyu_pyro.using_pyro4 and \
- (Pyro4.config.SERIALIZER == 'serpent'):
- if six.PY3:
- assert type(task['result']) is dict
- assert task['result']['encoding'] == 'base64'
- task['result'] = base64.b64decode(task['result']['data'])
- else:
- assert type(task['result']) is unicode
- task['result'] = str(task['result'])
- # ** See note in _get_task_data about why we pickle
- # all communication
- task['result'] = pickle.loads(task['result'])
-
- ah = self.event_handle.get(task['id'], None)
- if ah is None:
- # if we are here, this is really bad news!
- raise RuntimeError(
- "The %s found results for task with id=%s"
- " - but no corresponding action handle "
- "could be located! Showing task result "
- "below:\n%s" % (type(self).__name__,
- task['id'],
- task.get('result', None)))
- if type(task['result']) is pyu_pyro.TaskProcessingError:
- ah.status = ActionStatus.error
- self.event_handle[ah.id].update(ah)
- msg = ("ScenarioTreeServer reported a processing "
- "error for task with id=%s. Reason: \n%s"
- % (task['id'], task['result'].args[0]))
- if not self.ignore_task_errors:
- raise RuntimeError(msg)
- elif self.ignore_task_errors == 1:
- logger.warning(msg)
- # any value other than 0 or 1 will
- # silently ignore task errors
- else:
- ah.status = ActionStatus.done
- self.event_handle[ah.id].update(ah)
- self.results[ah.id] = task['result']
-
- if not found_results:
- # If the queues are all empty, wait some time for things to
- # fill up. Constantly pinging dispatch servers wastes their
- # time, and inhibits task server communication. The good
- # thing about queues_to_check is that it simultaneously
- # grabs information for any queues with results => one
- # client query can yield many results.
-
- # TBD: We really need to parameterize the time-out value,
- # but it isn't clear how to propagate this though the
- # solver manager interface layers.
- time.sleep(0.01)
diff --git a/pyomo/pysp/scenariotree/instance_factory.py b/pyomo/pysp/scenariotree/instance_factory.py
deleted file mode 100644
index 2d76c69bbe4..00000000000
--- a/pyomo/pysp/scenariotree/instance_factory.py
+++ /dev/null
@@ -1,902 +0,0 @@
-# ___________________________________________________________________________
-#
-# Pyomo: Python Optimization Modeling Objects
-# Copyright 2017 National Technology and Engineering Solutions of Sandia, LLC
-# Under the terms of Contract DE-NA0003525 with National Technology and
-# Engineering Solutions of Sandia, LLC, the U.S. Government retains certain
-# rights in this software.
-# This software is distributed under the 3-clause BSD License.
-# ___________________________________________________________________________
-
-__all__ = ('ScenarioTreeInstanceFactory',)
-
-import os
-import posixpath
-import tempfile
-import shutil
-import copy
-import logging
-
-from pyutilib.misc import (ArchiveReaderFactory,
- ArchiveReader)
-
-from pyomo.dataportal import DataPortal
-from pyomo.core import (Block,
- IPyomoScriptModifyInstance,
- AbstractModel)
-from pyomo.core.base.block import _BlockData
-from pyomo.common.dependencies import yaml, yaml_available, yaml_load_args
-from pyomo.common.gc_manager import PauseGC
-from pyomo.common.plugin import ExtensionPoint
-from pyomo.pysp.util.misc import load_external_module
-from pyomo.pysp.scenariotree.tree_structure_model import \
- (CreateAbstractScenarioTreeModel,
- ScenarioTreeModelFromNetworkX)
-from pyomo.pysp.scenariotree.tree_structure import \
- ScenarioTree
-
-import six
-
-from pyomo.common.dependencies import (
- networkx, networkx_available as has_networkx
-)
-
-logger = logging.getLogger('pyomo.pysp')
-
-def _extract_pathspec(
- pathspec,
- default_basename,
- archives=None):
- """Obtain a file location from a pathspec.
-
- Extracts a file location from the provided input
- path specification by normalizing the name or by
- opening an archive reader.
-
- Args:
- pathspec (str): The path specification. This can
- be a standard path to a file or represent a
- file contained within an archive. In the
- case of an archived file, the input string
- consist of two parts separated by a comma,
- where the first part represents the path to
- the archive and the second part represents
- the relative path to a file or directory
- within that archive.
- default_basename (str): The default filename to
- search for when the pathspec represents a
- directory (or a directory within an
- archive). This name must have an extension,
- which is used by this function to interpret
- whether the pathspec ends in a filename or a
- directory name. If this argument is None, the
- function will attempt to extract a directory
- name instead of a file.
- archives (list): A list of currently open
- archive readers to check before opening a
- new archive. If a new archive is opened, it will
- be appended to this list.
-
- Returns:
- A tuple consisting of the normalized absolute
- path to the file followed by the current list of
- open archives that can be passed into this function
- the next time it is called.
- """
-
- logger.debug("expanding pathspec %s to %s"
- % (pathspec, os.path.expanduser(pathspec)))
- pathspec = os.path.expanduser(pathspec)
-
- if archives is None:
- archives = []
-
- filename = None
- normalized_location = None
- archive = None
- archive_subdir = None
- unarchived_dir = None
- basename = None
-
- if not os.path.exists(pathspec):
- logger.debug("pathspec does not exist, normalizing name")
- (normalized_location, _, archive_subdir) = \
- ArchiveReader.normalize_name(pathspec).rpartition(',')
- if default_basename is not None:
- extension = os.path.splitext(default_basename)[1].strip()
- assert extension != ''
- if archive_subdir.endswith(extension):
- logger.debug("recognized extension type '%s' appears "
- "after comma, treating as file" % (extension))
- basename = os.path.basename(archive_subdir)
- archive_subdir = os.path.dirname(archive_subdir).strip()
- if archive_subdir == '':
- archive_subdir = None
- else:
- logger.debug("pathspec exists, normalizing name")
- normalized_location = \
- ArchiveReader.normalize_name(pathspec)
-
- logger.debug("normalized pathspec: (%s, %s, %s)"
- % (normalized_location, archive_subdir, basename))
- if ArchiveReader.isArchivedFile(normalized_location):
- logger.debug("pathspec defines a recognized archive type")
- for prev_archive_inputs, prev_archive, prev_unarchived_dir \
- in archives:
- if (normalized_location == \
- prev_archive_inputs[0]) and \
- ((prev_archive_inputs[1] is None) or \
- ((archive_subdir is not None) and \
- (archive_subdir.startswith(prev_archive_inputs[1]+'/')))):
- logger.debug("pathspec matches previous archive")
- unarchived_dir = prev_unarchived_dir
- if archive_subdir is not None:
- if prev_archive_inputs[1] is not None:
- unarchived_dir = posixpath.join(
- unarchived_dir,
- os.path.relpath(archive_subdir,
- start=prev_archive_inputs[1]))
- else:
- unarchived_dir = posixpath.join(unarchived_dir,
- archive_subdir)
- logger.debug("unarchived directory: %s" % (unarchived_dir))
- break
- else: # if no break occurs in previous for-loop
- archive = ArchiveReaderFactory(
- normalized_location,
- subdir=archive_subdir)
- unarchived_dir = archive.normalize_name(
- tempfile.mkdtemp(prefix='pysp_unarchived'))
- archives.append(((normalized_location, archive_subdir),
- archive,
- unarchived_dir))
- logger.debug("New archive opened. Temporary archive "
- "extraction directory: %s" % (unarchived_dir))
- archive.extractall(path=unarchived_dir)
- if basename is not None:
- filename = posixpath.join(unarchived_dir, basename)
- elif default_basename is not None:
- filename = posixpath.join(unarchived_dir, default_basename)
- else:
- filename = unarchived_dir
- logger.debug("extracted filename: %s" % (filename))
- else:
- logger.debug("pathspec defines a standard path")
- if archive_subdir is not None:
- unarchived_dir = posixpath.join(normalized_location,
- archive_subdir)
- else:
- unarchived_dir = normalized_location
-
- if not os.path.isfile(unarchived_dir):
- if basename is not None:
- filename = posixpath.join(unarchived_dir, basename)
- elif default_basename is not None:
- filename = posixpath.join(unarchived_dir, default_basename)
- else:
- filename = unarchived_dir
- else:
- filename = unarchived_dir
-
- return filename, archives
-
-def _find_reference_model_or_callback(src):
- """Tries to find a single reference model or callback for
- generating scenario models."""
- module, _ = load_external_module(src, clear_cache=True)
- reference_model = None
- callback = None
- dir_module = dir(module)
- if "pysp_instance_creation_callback" in dir_module:
- callback = getattr(module, "pysp_instance_creation_callback")
- if not hasattr(callback,"__call__"):
- raise TypeError("'pysp_instance_creation_callback' "
- "object found in source '%s' is not "
- "callable" % (src))
- else:
- matching_names = []
- for attr_name in dir_module:
- obj = getattr(module, attr_name)
- if isinstance(obj, (_BlockData, Block)):
- reference_model = obj
- matching_names.append(attr_name)
- if len(matching_names) > 1:
- raise ValueError("Multiple objects found in source '%s' "
- "that could be a reference model. Make "
- "sure there is only one Pyomo model in "
- "the source file. Object names: %s"
- % (str(matching_names)))
-
- return module, reference_model, callback
-
-def _find_scenariotree(src=None, module=None):
- """Tries to find a single reference model or callback for
- generating scenario models."""
- if module is None:
- assert src is not None
- module, _ = load_external_module(src, clear_cache=True)
- else:
- assert src is None
- scenario_tree_object = None
- scenario_tree_model = None
- callback = None
- dir_module = dir(module)
- if "pysp_scenario_tree_model_callback" in dir_module:
- callback = getattr(module, "pysp_scenario_tree_model_callback")
- if not hasattr(callback,"__call__"):
- raise TypeError("'pysp_scenario_tree_model_callback' "
- "object found in source '%s' is not "
- "callable" % (src))
- attrs = [(None, callback())]
- else:
- attrs = [(attr_name,getattr(module, attr_name))
- for attr_name in dir_module]
- matching_names = []
- for attr_name, obj in attrs:
- if isinstance(obj, ScenarioTree):
- scenario_tree_object = obj
- matching_names.append(attr_name)
- elif isinstance(obj, (_BlockData, Block)):
- scenario_tree_model = obj
- matching_names.append(attr_name)
- elif has_networkx and \
- isinstance(obj, networkx.DiGraph):
- scenario_tree_model = obj
- matching_names.append(attr_name)
- if len(matching_names) > 1:
- raise ValueError("Multiple objects found in source '%s' "
- "that could act as a scenario tree "
- "specification. Make sure there is only "
- "one Pyomo model, ScenarioTree, or "
- "networkx.DiGraph object in the source "
- "file. Object names: %s"
- % (str(matching_names)))
-
- return module, scenario_tree_object, scenario_tree_model
-
-class ScenarioTreeInstanceFactory(object):
-
- def __init__(self,
- model,
- scenario_tree,
- data=None):
- """Class to help manage construction of scenario tree models.
-
- This class is designed to help manage the various input formats
- that that are accepted by PySP and provide a unified interface
- for building scenario trees that are paired with a set of
- concrete Pyomo models.
-
- Args:
- model: The reference scenario model. Can be set
- to Pyomo model or the name of a file
- containing a Pyomo model. For historical
- reasons, this argument can also be set to a
- directory name where it is assumed a file
- named ReferenceModel.py exists.
- scenario_tree: The scenario tree. Can be set to
- a Pyomo model, a file containing a Pyomo
- model, or a .dat file containing data for an
- abstract scenario tree model representation,
- which defines the structure of the scenario
- tree. It can also be a .py file that
- contains a networkx scenario tree or a
- networkx scenario tree object. For
- historical reasons, this argument can also
- be set to a directory name where it is
- assumed a file named ScenarioStructure.dat
- exists.
- data: Directory containing .dat files necessary
- for building the scenario instances
- associated with the scenario tree. This
- argument is required if no directory
- information can be extracted from the first
- two arguments and the reference model is an
- abstract Pyomo model. Otherwise, it is not
- required or the location will be inferred
- from the scenario tree location (first) or
- from the reference model location (second),
- where it is assumed the data files reside in
- the same directory.
- """
- self._closed = True
-
- self._archives = []
-
- self._model_filename = None
- self._model_module = None
- self._model_object = None
- self._model_callback = None
- self._scenario_tree_filename = None
- self._scenario_tree_module = None
- self._scenario_tree_model = None
- self._scenario_tree = None
- self._data_directory = None
- try:
- self._init(model, scenario_tree, data)
- except:
- self.close()
- raise
- self._closed = False
-
- def _init(self, model, scenario_tree, data):
-
- self._model_filename = None
- self._model_module = None
- self._model_object = None
- self._model_callback = None
- if isinstance(model, six.string_types):
- logger.debug("A model filename was provided.")
- self._model_filename, self._archives = \
- _extract_pathspec(model,
- "ReferenceModel.py",
- archives=self._archives)
- if not os.path.exists(self._model_filename):
- logger.error("Failed to extract reference model python file "
- "from path specification: %s"
- % (model))
- raise IOError("path does not exist: %s"
- % (self._model_filename))
- assert self._model_filename is not None
- assert self._model_filename.endswith(".py")
- (self._model_module,
- self._model_object,
- self._model_callback) = \
- _find_reference_model_or_callback(self._model_filename)
- if (self._model_object is None) and \
- (self._model_callback is None):
- raise AttributeError(
- "No reference Pyomo model or "
- "'pysp_instance_creation_callback' "
- "function object found in src: %s"
- % (self._model_filename))
- elif hasattr(model, "__call__"):
- logger.debug("A model callback function was provided.")
- self._model_callback = model
- else:
- if not isinstance(model, (_BlockData, Block)):
- raise TypeError(
- "model argument object has incorrect type: %s. "
- "Must be a string type, a callback, or a Pyomo model."
- % (type(model)))
- logger.debug("A model object was provided.")
- self._model_object = model
-
- self._scenario_tree_filename = None
- self._scenario_tree_model = None
- self._scenario_tree = None
- if isinstance(scenario_tree, ScenarioTree):
- for scenario in scenario_tree.scenarios:
- if scenario.instance is not None:
- raise ValueError(
- "The scenario tree can not be linked with instances")
- if hasattr(scenario_tree, "_scenario_instance_factory"):
- del scenario_tree._scenario_instance_factory
- self._scenario_tree = scenario_tree
- elif has_networkx and \
- isinstance(scenario_tree, networkx.DiGraph):
- self._scenario_tree_model = scenario_tree
- elif isinstance(scenario_tree, six.string_types):
- logger.debug("scenario tree input is a string, attempting "
- "to load file specification: %s"
- % (scenario_tree))
- self._scenario_tree_filename = None
- if not scenario_tree.endswith(".py"):
- self._scenario_tree_filename, self._archives = \
- _extract_pathspec(scenario_tree,
- "ScenarioStructure.dat",
- archives=self._archives)
- if not os.path.exists(self._scenario_tree_filename):
- logger.debug("Failed to extract scenario tree structure "
- ".dat file from path specification: %s"
- % (scenario_tree))
- self._scenario_tree_filename = None
- if self._scenario_tree_filename is None:
- self._scenario_tree_filename, self._archives = \
- _extract_pathspec(scenario_tree,
- "ScenarioStructure.py",
- archives=self._archives)
- if not os.path.exists(self._scenario_tree_filename):
- logger.debug("Failed to locate scenario tree structure "
- ".py file with path specification: %s"
- % (scenario_tree))
- self._scenario_tree_filename = None
- if self._scenario_tree_filename is None:
- raise ValueError("Failed to extract scenario tree structure "
- "file with .dat or .py extension from path "
- "specification: %s" % (scenario_tree))
- elif self._scenario_tree_filename.endswith(".py"):
- if self._scenario_tree_filename == self._model_filename:
- # try not to clobber the model import
- (self._scenario_tree_module,
- self._scenario_tree,
- self._scenario_tree_model) = \
- _find_scenariotree(module=self._model_module)
- else:
- (self._scenario_tree_module,
- self._scenario_tree,
- self._scenario_tree_model) = \
- _find_scenariotree(src=self._scenario_tree_filename)
- if (self._scenario_tree is None) and \
- (self._scenario_tree_model is None):
- raise AttributeError(
- "No scenario tree or "
- "'pysp_scenario_tree_model_callback' "
- "function found in src: %s"
- % (self._scenario_tree_filename))
- elif self._scenario_tree_filename.endswith(".dat"):
- self._scenario_tree_model = \
- CreateAbstractScenarioTreeModel().\
- create_instance(filename=self._scenario_tree_filename)
- else:
- assert False
- elif scenario_tree is None:
- if self._model_module is not None:
- self._scenario_tree_filename = self._model_filename
- (self._scenario_tree_module,
- self._scenario_tree,
- self._scenario_tree_model) = \
- _find_scenariotree(module=self._model_module)
- if (self._scenario_tree is None) and \
- (self._scenario_tree_model is None):
- raise ValueError(
- "No input was provided for the scenario tree "
- "and no callback or scenario tree object was "
- "found with the model")
- else:
- raise ValueError(
- "No input was provided for the scenario tree "
- "but there is no module to search for a "
- "'pysp_scenario_tree_model_callback' function "
- "or a ScenarioTree object.")
- else:
- self._scenario_tree_model = scenario_tree
-
- if self._scenario_tree is None:
- if (not isinstance(self._scenario_tree_model,
- (_BlockData, Block))) and \
- ((not has_networkx) or \
- (not isinstance(self._scenario_tree_model,
- networkx.DiGraph))):
- raise TypeError(
- "scenario tree model object has incorrect type: %s. "
- "Must be a string type, Pyomo model, or a "
- "networkx.DiGraph object." % (type(scenario_tree)))
- if isinstance(self._scenario_tree_model, (_BlockData, Block)):
- if not self._scenario_tree_model.is_constructed():
- raise ValueError(
- "scenario tree model is not constructed")
-
- self._data_directory = None
- if data is None:
- if self.scenario_tree_directory() is not None:
- logger.debug("data directory is set to the scenario tree "
- "directory: %s"
- % (self.scenario_tree_directory()))
- self._data_directory = self.scenario_tree_directory()
- elif self.model_directory() is not None:
- logger.debug("data directory is set to the reference model "
- "directory: %s"
- % (self.model_directory()))
- self._data_directory = self.model_directory()
- else:
- if (self._model_callback is None) and \
- isinstance(self._model_object, AbstractModel) and \
- (not self._model_object.is_constructed()):
- raise ValueError(
- "A data location is required since no model "
- "callback was provided and no other location could "
- "be inferred.")
- logger.debug("no data directory is required")
- else:
- logger.debug("data location is provided, attempting "
- "to load specification: %s"
- % (data))
- self._data_directory, self._archives = \
- _extract_pathspec(data,
- None,
- archives=self._archives)
- if not os.path.exists(self._data_directory):
- logger.error("Failed to extract data directory "
- "from path specification: %s"
- % (data))
- raise IOError("path does not exist: %s"
- % (self._data_directory))
-
- def __getstate__(self):
- self.close()
- raise NotImplementedError("Do not deepcopy or serialize this class")
-
- def __setstate__(self,d):
- self.close()
- raise NotImplementedError("Do not deepcopy or serialize this class")
-
- def close(self):
- for _,archive,tmpdir in self._archives:
- if os.path.exists(tmpdir):
- shutil.rmtree(tmpdir, True)
- archive.close()
- self._archives = []
- self._closed = True
-
- #
- # Support "with" statements. Forgetting to call close()
- # on this class can result in temporary unarchived
- # directories being left sitting around
- #
- def __enter__(self):
- return self
-
- def __exit__(self, type, value, traceback):
- self.close()
-
- def model_directory(self):
- if self._model_filename is not None:
- return os.path.dirname(self._model_filename)
- else:
- return None
-
- def scenario_tree_directory(self):
- if self._scenario_tree_filename is not None:
- return os.path.dirname(self._scenario_tree_filename)
- else:
- return None
-
- def data_directory(self):
- return self._data_directory
-
- #
- # construct a scenario instance - just like it sounds!
- #
- def construct_scenario_instance(self,
- scenario_name,
- scenario_tree,
- profile_memory=False,
- output_instance_construction_time=False,
- compile_instance=False,
- verbose=False):
- assert not self._closed
- if not scenario_tree.contains_scenario(scenario_name):
- raise ValueError("ScenarioTree does not contain scenario "
- "with name %s." % (scenario_name))
-
- scenario = scenario_tree.get_scenario(scenario_name)
- node_name_list = [n._name for n in scenario._node_list]
-
- if verbose:
- print("Creating instance for scenario=%s" % (scenario_name))
-
- scenario_instance = None
-
- try:
-
- if self._model_callback is not None:
-
- assert self._model_object is None
- try:
- _scenario_tree_arg = None
- # new callback signature
- if (self._scenario_tree_filename is not None) and \
- self._scenario_tree_filename.endswith('.dat'):
- # we started with a .dat file, so
- # send the PySP scenario tree
- _scenario_tree_arg = scenario_tree
- elif self._scenario_tree_model is not None:
- # We started from a Pyomo
- # scenario tree model instance, or a
- # networkx tree.
- _scenario_tree_arg = self._scenario_tree_model
- else:
- # send the PySP scenario tree
- _scenario_tree_arg = scenario_tree
- scenario_instance = self._model_callback(_scenario_tree_arg,
- scenario_name,
- node_name_list)
- except TypeError:
- # old callback signature
- # TODO:
- #logger.warning(
- # "DEPRECATED: The 'pysp_instance_creation_callback' function "
- # "signature has changed. An additional argument should be "
- # "added to the beginning of the arguments list that will be "
- # "set to the user provided scenario tree object when called "
- # "by PySP (e.g., a Pyomo scenario tree model instance, "
- # "a networkx tree, or a PySP ScenarioTree object.")
- scenario_instance = self._model_callback(scenario_name,
- node_name_list)
-
- elif self._model_object is not None:
-
- if (not isinstance(self._model_object, AbstractModel)) or \
- (self._model_object.is_constructed()):
- scenario_instance = self._model_object.clone()
- elif scenario_tree._scenario_based_data:
- assert self.data_directory() is not None
- scenario_data_filename = \
- os.path.join(self.data_directory(),
- str(scenario_name))
- # JPW: The following is a hack to support
- # initialization of block instances, which
- # don't work with .dat files at the
- # moment. Actually, it's not that bad of a
- # hack - it just needs to be extended a bit,
- # and expanded into the node-based data read
- # logic (where yaml is completely ignored at
- # the moment.
- if os.path.exists(scenario_data_filename+'.dat'):
- scenario_data_filename = \
- scenario_data_filename + ".dat"
- data = None
- elif os.path.exists(scenario_data_filename+'.yaml'):
- if not yaml_available:
- raise ValueError(
- "Found yaml data file for scenario '%s' "
- "but he PyYAML module is not available"
- % (scenario_name))
- scenario_data_filename = \
- scenario_data_filename+".yaml"
- with open(scenario_data_filename) as f:
- data = yaml.load(f, **yaml_load_args)
- else:
- raise RuntimeError(
- "Cannot find a data file for scenario '%s' "
- "in directory: %s\nRecognized formats: .dat, "
- ".yaml" % (scenario_name, self.data_directory()))
- if verbose:
- print("Data for scenario=%s loads from file=%s"
- % (scenario_name, scenario_data_filename))
- if data is None:
- scenario_instance = \
- self._model_object.create_instance(
- filename=scenario_data_filename,
- profile_memory=profile_memory,
- report_timing=output_instance_construction_time)
- else:
- scenario_instance = \
- self._model_object.create_instance(
- data,
- profile_memory=profile_memory,
- report_timing=output_instance_construction_time)
- else:
- assert self.data_directory() is not None
- data_files = []
- for node_name in node_name_list:
- node_data_filename = \
- os.path.join(self.data_directory(),
- str(node_name)+".dat")
- if not os.path.exists(node_data_filename):
- raise RuntimeError(
- "Cannot find a data file for scenario tree "
- "node '%s' in directory: %s\nRecognized "
- "formats: .dat" % (node_name,
- self.data_directory()))
- data_files.append(node_data_filename)
-
- scenario_data = DataPortal(model=self._model_object)
- for data_file in data_files:
- if verbose:
- print("Node data for scenario=%s partially "
- "loading from file=%s"
- % (scenario_name, data_file))
- scenario_data.load(filename=data_file)
-
- scenario_instance = self._model_object.create_instance(
- scenario_data,
- profile_memory=profile_memory,
- report_timing=output_instance_construction_time)
- else:
- raise RuntimeError("Unable to construct scenario instance. "
- "Neither a reference model or callback "
- "is defined.")
-
- # name each instance with the scenario name
- scenario_instance._name = scenario_name
-
- # apply each of the post-instance creation plugins. this
- # really shouldn't be associated (in terms of naming) with the
- # pyomo script - this should be rectified with a workflow
- # re-work. it is unclear how this interacts, or doesn't, with
- # the preprocessors.
- ep = ExtensionPoint(IPyomoScriptModifyInstance)
- for ep in ExtensionPoint(IPyomoScriptModifyInstance):
- logger.warning(
- "DEPRECATED: IPyomoScriptModifyInstance extension "
- "point callbacks will be ignored by PySP in the future")
- ep.apply(options=None,
- model=reference_model,
- instance=scenario_instance)
-
- if compile_instance:
- from pyomo.repn.beta.matrix import \
- compile_block_linear_constraints
- compile_block_linear_constraints(
- scenario_instance,
- "_PySP_compiled_linear_constraints",
- verbose=verbose)
-
- except:
- logger.error("Failed to create model instance for scenario=%s"
- % (scenario_name))
- raise
-
- return scenario_instance
-
- def construct_instances_for_scenario_tree(
- self,
- scenario_tree,
- profile_memory=False,
- output_instance_construction_time=False,
- compile_scenario_instances=False,
- verbose=False):
- assert not self._closed
-
- if scenario_tree._scenario_based_data:
- if verbose:
- print("Scenario-based instance initialization enabled")
- else:
- if verbose:
- print("Node-based instance initialization enabled")
-
- scenario_instances = {}
- for scenario in scenario_tree._scenarios:
-
- # the construction of instances takes little overhead in terms
- # of memory potentially lost in the garbage-collection sense
- # (mainly only that due to parsing and instance
- # simplification/prep-processing). to speed things along,
- # disable garbage collection if it enabled in the first place
- # through the instance construction process.
- # IDEA: If this becomes too much for truly large numbers of
- # scenarios, we could manually collect every time X
- # instances have been created.
- scenario_instance = None
- with PauseGC() as pgc:
- scenario_instance = \
- self.construct_scenario_instance(
- scenario._name,
- scenario_tree,
- profile_memory=profile_memory,
- output_instance_construction_time=output_instance_construction_time,
- compile_instance=compile_scenario_instances,
- verbose=verbose)
-
- scenario_instances[scenario._name] = scenario_instance
- assert scenario_instance.local_name == scenario.name
-
- return scenario_instances
-
- def generate_scenario_tree(self,
- downsample_fraction=1.0,
- include_scenarios=None,
- bundles=None,
- random_bundles=None,
- random_seed=None,
- verbose=True):
-
- scenario_tree_model = self._scenario_tree_model
- if scenario_tree_model is not None:
- if has_networkx and \
- isinstance(scenario_tree_model, networkx.DiGraph):
- scenario_tree_model = \
- ScenarioTreeModelFromNetworkX(scenario_tree_model)
- else:
- assert isinstance(scenario_tree_model, (_BlockData, Block)), \
- str(scenario_tree_model)+" "+str(type(scenario_tree_model))
-
- if bundles is not None:
- if isinstance(bundles, six.string_types):
- if scenario_tree_model is None:
- raise ValueError(
- "A bundles file can not be used when the "
- "scenario tree input was not a Pyomo "
- "model or ScenarioStructure.dat file.")
- logger.debug("attempting to locate bundle file for input: %s"
- % (bundles))
- # we interpret the scenario bundle specification in one of
- # two ways. if the supplied name is a file, it is used
- # directly. otherwise, it is interpreted as the root of a
- # file with a .dat suffix to be found in the instance
- # directory.
- orig_input = bundles
- if not bundles.endswith(".dat"):
- bundles = bundles+".dat"
- bundles = os.path.expanduser(bundles)
- if not os.path.exists(bundles):
- if self.data_directory() is None:
- raise ValueError(
- "Could not locate bundle .dat file from input "
- "'%s'. Path does not exist and there is no data "
- "directory to search in." % (orig_input))
- bundles = os.path.join(self.data_directory(), bundles)
- if not os.path.exists(bundles):
- raise ValueError("Could not locate bundle .dat file "
- "from input '%s' as absolute path or "
- "relative to data directory: %s"
- % (orig_input, self.data_directory()))
-
- if verbose:
- print("Scenario tree bundle specification filename=%s"
- % (bundles))
-
- scenario_tree_model = scenario_tree_model.clone()
- scenario_tree_model.Bundling = True
- scenario_tree_model.Bundling._constructed = False
- scenario_tree_model.Bundling._data.clear()
- scenario_tree_model.Bundles.clear()
- scenario_tree_model.Bundles._constructed = False
- scenario_tree_model.Bundles._data.clear()
- scenario_tree_model.BundleScenarios.clear()
- scenario_tree_model.BundleScenarios._constructed = False
- scenario_tree_model.BundleScenarios._data.clear()
- scenario_tree_model.load(bundles)
-
- #
- # construct the scenario tree
- #
- if scenario_tree_model is not None:
- scenario_tree = ScenarioTree(scenariotreeinstance=scenario_tree_model,
- scenariobundlelist=include_scenarios)
- else:
- assert self._scenario_tree is not None
- if include_scenarios is None:
- scenario_tree = copy.deepcopy(self._scenario_tree)
- else:
- # note: any bundles will be lost
- if self._scenario_tree.contains_bundles():
- raise ValueError(
- "Can not compress a scenario tree that "
- "contains bundles")
- scenario_tree = self._scenario_tree.make_compressed(
- include_scenarios,
- normalize=True)
-
- # compress/down-sample the scenario tree, if requested
- if (downsample_fraction is not None) and \
- (downsample_fraction < 1.0):
- scenario_tree.downsample(downsample_fraction,
- random_seed,
- verbose)
-
- #
- # create bundles from a dict, if requested
- #
- if bundles is not None:
- if not isinstance(bundles, six.string_types):
- if verbose:
- print("Adding bundles to scenario tree from "
- "user-specified dict")
- if scenario_tree.contains_bundles():
- if verbose:
- print("Scenario tree already contains bundles. "
- "All existing bundles will be removed.")
- for bundle in list(scenario_tree.bundles):
- scenario_tree.remove_bundle(bundle.name)
- for bundle_name in bundles:
- scenario_tree.add_bundle(bundle_name,
- bundles[bundle_name])
-
- #
- # create random bundles, if requested
- #
- if (random_bundles is not None) and \
- (random_bundles > 0):
- if bundles is not None:
- raise ValueError("Cannot specify both random "
- "bundles and a bundles specification")
-
- num_scenarios = len(scenario_tree._scenarios)
- if random_bundles > num_scenarios:
- raise ValueError("Cannot create more random bundles "
- "than there are scenarios!")
-
- if verbose:
- print("Creating "+str(random_bundles)+
- " random bundles using seed="
- +str(random_seed))
-
- scenario_tree.create_random_bundles(random_bundles,
- random_seed)
-
- scenario_tree._scenario_instance_factory = self
-
- return scenario_tree
diff --git a/pyomo/pysp/scenariotree/manager.py b/pyomo/pysp/scenariotree/manager.py
deleted file mode 100644
index 9054f848959..00000000000
--- a/pyomo/pysp/scenariotree/manager.py
+++ /dev/null
@@ -1,3878 +0,0 @@
-# ___________________________________________________________________________
-#
-# Pyomo: Python Optimization Modeling Objects
-# Copyright 2017 National Technology and Engineering Solutions of Sandia, LLC
-# Under the terms of Contract DE-NA0003525 with National Technology and
-# Engineering Solutions of Sandia, LLC, the U.S. Government retains certain
-# rights in this software.
-# This software is distributed under the 3-clause BSD License.
-# ___________________________________________________________________________
-
-__all__ = ("InvocationType",
- "ScenarioTreeManagerClientSerial",
- "ScenarioTreeManagerClientPyro",
- "ScenarioTreeManagerFactory")
-
-import math
-import sys
-import time
-import itertools
-import inspect
-import logging
-import traceback
-from collections import (defaultdict,
- namedtuple)
-
-import pyutilib.misc
-from pyutilib.pyro import (shutdown_pyro_components,
- using_pyro4)
-from pyomo.common.dependencies import dill, dill_available
-from pyomo.opt import (UndefinedData,
- undefined,
- SolverStatus,
- TerminationCondition,
- SolutionStatus)
-from pyomo.opt.parallel.manager import ActionHandle
-from pyomo.pysp.util.configured_object import PySPConfiguredObject
-from pyomo.pysp.util.config import (PySPConfigBlock,
- safe_declare_common_option,
- safe_register_common_option,
- _domain_must_be_str,
- _domain_tuple_of_str)
-from pyomo.pysp.util.misc import load_external_module
-from pyomo.pysp.scenariotree.instance_factory import \
- ScenarioTreeInstanceFactory
-from pyomo.pysp.scenariotree.action_manager_pyro \
- import ScenarioTreeActionManagerPyro
-from pyomo.pysp.scenariotree.server_pyro \
- import ScenarioTreeServerPyro
-from pyomo.pysp.ef import create_ef_instance
-
-import six
-from six import (iteritems,
- itervalues,
- StringIO,
- string_types)
-from six.moves import xrange
-
-logger = logging.getLogger('pyomo.pysp')
-
-class _InvocationTypeMeta(type):
- def __contains__(cls, obj):
- return isinstance(obj, cls._value)
- def __iter__(cls):
- return iter(
- sorted((obj for obj in cls.__dict__.values()
- if isinstance(obj, cls._value)),
- key=lambda _: _.index)
- )
-
-@six.add_metaclass(_InvocationTypeMeta)
-class InvocationType(object):
- """Controls execution of function invocations with a scenario tree manager.
-
- In all cases, the function must accept the process-local scenario
- tree worker as the first argument. Whether or not additional
- arguments are required, depends on the invocation type. For the
- 'Single' invocation type, no additional arguments are required.
- Otherwise, the function signature is required to accept a second
- argument representing the worker-local scenario or scenario
- bundle object.
-
- It is implied that the function invocation takes place on the
- scenario tree worker(s), which is(are) not necessarily the same as
- the scenario tree manager whose method is provided with the
- invocation type. For instance, Pyro-based scenario tree managers
- (e.g., ScenarioTreeManagerClientPyro) must transmit these method
- invocations to their respective scenario tree workers which live
- in separate processes. Any scenario tree worker is itself an
- instance of a ScenarioTreeManager so the same invocation rules
- apply when using this interface in a worker-local context. The
- ScenarioTreeManagerClientSerial implementation is its own scenario
- tree worker, so all function invocations take place locally and on
- the same object whose method is invoked.
-
- If the worker name is not provided (e.g., when the
- 'invoke_function' method is used), then the following behavior is
- implied for each invocation type:
-
- - Single:
- The function is executed once per scenario tree
- worker. Return value will be in the form of a dict mapping
- worker name to function return value.
-
- - PerScenario:
- The function is executed once per scenario in the scenario
- tree. Return value will be in the form of a dict mapping
- scenario name to return value.
-
- - PerScenarioChained:
- The function is executed once per scenario in the scenario
- tree in a sequential call chain. The result from each
- function call is passed into the next function call in
- *arg form after the scenario tree worker and scenario
- arguments (unless no additional function arguments were
- initially provided). Return value is in the form of a
- tuple (or None), and represents the return value from the
- final call in the chain.
-
- - PerBundle:
- Identical to the PerScenario invocation type except by
- bundle.
-
- - PerBundleChained:
- Identical to the PerScenarioChained invocation type except
- by bundle.
-
- * NOTE: The remaining invocation types listed below should
- initialized with any relevant data before being passed
- into methods that use them. This is done using the
- __call__ method, which returns a matching invocation type
- loaded with the provided data.
-
- Examples:
- InvocationType.OnScenario('Scenario1')
- InvocationType.OnScenarios(['Scenario1', 'Scenario2'])
-
- - OnScenario():
- The function is executed on the named scenario and its
- associated scenario tree worker. Return value corresponds
- exactly to the function return value.
-
- - OnScenarios([]):
- The function is executed on the named scenarios and their
- associated scenario tree worker(s). Return value will be
- in the form of a dict mapping scenario name to return
- value.
-
- - OnScenariosChained([]):
- Same as PerScenarioChained only executed over the given
- subset of scenarios named. Invocation order is guaranteed
- to correspond exactly to the iteration order of the given
- scenario names.
-
- - OnBundle():
- Identical to the OnScenario invocation type except with a
- bundle.
-
- - OnBundles([]):
- Identical to the OnScenarios invocation type except by
- bundle.
-
- - OnBundlesChained([]):
- Identical to the OnScenariosChained invocation type except
- by bundle.
-
- If the scenario tree worker name is provided (e.g., when the
- 'invoke_function_on_worker' method is used), then the following
- behaviors change:
-
- - Single:
- The return value corresponds exactly to the function
- return value (rather than a dict mapping worker_name to
- return value).
-
- - Per*:
- Function execution takes place only over the scenarios /
- bundles managed by the named scenario tree worker.
-
- - On*:
- Not necessarily designed for this context, but execution
- behavior remains the same. An exception will be raised if
- the named scenario(s) / bundles(s) are not directly
- managed by the named scenario tree worker.
-
- """
- class _value(object):
- def __init__(self, key, index):
- self._key = key
- self._index = index
- @property
- def key(self):
- return self._key
- @property
- def index(self):
- return self._index
- def __hash__(self):
- return hash((self.key, self.index))
- def __eq__(self, other):
- return (self.__class__ is other.__class__) and \
- (self.key == other.key) and (self.index == other.index)
- def __ne__(self, other):
- return not self.__eq__(other)
- def __repr__(self):
- return ("InvocationType.%s" % (self.key))
- class _value_with_data(_value):
- def __init__(self, key, id_, domain):
- super(self.__class__, self).__init__(key, id_)
- self._domain = domain
- self._data = None
- @property
- def data(self):
- return self._data
- def __call__(self, data):
- if self.data is not None:
- raise ValueError("Must create from InvocationType class")
- obj = self.__class__(self.key, self.index, self._domain)
- assert obj.data is None
- obj._data = self._domain(data)
- assert obj.data is obj._data
- return obj
- Single = _value("Single", 0)
- PerScenario = _value("PerScenario", 1)
- PerScenarioChained = _value("PerScenarioChained", 2)
- PerBundle = _value("PerBundle", 3)
- PerBundleChained = _value("PerBundleChained", 4)
- ### deprecated
- SingleInvocation = _value("SingleInvocation", 5)
- PerScenarioInvocation = _value("PerScenarioInvocation", 6)
- PerScenarioChainedInvocation = _value("PerScenarioChainedInvocation", 7)
- PerBundleInvocation = _value("PerBundleInvocation", 8)
- PerBundleChainedInvocation = _value("PerBundleChainedInvocation", 9)
- ###
- OnScenario = _value_with_data("OnScenario", 10 ,_domain_must_be_str)
- OnScenarios = _value_with_data("OnScenarios", 11, _domain_tuple_of_str)
- OnBundle = _value_with_data("OnBundle", 12, _domain_must_be_str)
- OnBundles = _value_with_data("OnBundles", 13, _domain_tuple_of_str)
- OnScenariosChained = _value_with_data("OnScenariosChained", 14, _domain_tuple_of_str)
- OnBundlesChained = _value_with_data("OnBundlesChained", 15, _domain_tuple_of_str)
- def __init__(self, *args, **kwds):
- raise NotImplementedError
-
-_deprecated_invocation_types = \
- {InvocationType.SingleInvocation: InvocationType.Single,
- InvocationType.PerScenarioInvocation: InvocationType.PerScenario,
- InvocationType.PerScenarioChainedInvocation: InvocationType.PerScenarioChained,
- InvocationType.PerBundleInvocation: InvocationType.PerBundle,
- InvocationType.PerBundleChainedInvocation: InvocationType.PerBundleChained}
-def _map_deprecated_invocation_type(invocation_type):
- if invocation_type in _deprecated_invocation_types: #pragma:nocover
- logger.warning("DEPRECATED: %s has been renamed to %s"
- % (invocation_type, _deprecated_invocation_types[invocation_type]))
- invocation_type = _deprecated_invocation_types[invocation_type]
- return invocation_type
-
-#
-# A named tuple that groups together the information required
-# to initialize a new worker on a scenario tree server:
-# - type_: "bundles" or "scenarios"
-# - names: A list of names for the scenario tree objects
-# that will be initialized on the worker. The
-# names should represent scenarios or bundles
-# depending on the choice of type_.
-# - data: The data associated with choice of type_. For
-# 'Scenarios', this should be None. For 'Bundles'
-# this should be a dictionary mapping bundle name
-# to a list of scenario names.
-#
-_WorkerInit = namedtuple('_WorkerInit',
- ['type_', 'names', 'data'])
-
-#
-# A convenience function for populating a _WorkerInit tuple
-# for scenario worker initializations. If initializing a single
-# scenario, arg should be a scenario name. If initializing a list
-# of scenarios, arg should be a list or tuple of scenario names.
-#
-def _ScenarioWorkerInit(arg):
- if isinstance(arg, string_types):
- # a single scenario
- return _WorkerInit(type_="scenarios",
- names=(arg,),
- data=None)
- else:
- # a list of scenarios
- assert type(arg) in (list, tuple)
- for name in arg:
- assert isinstance(name, string_types)
- return _WorkerInit(type_="scenarios",
- names=arg,
- data=None)
-
-#
-# A convenience function for populating a _WorkerInit tuple
-# for bundle worker initializations. If initializing a single
-# bundle, arg should be the bundle name and data should be a
-# list or tuple. If initializing a list of bundles, arg should
-# a list or tuple of bundle names, and data should be a dict
-# mapping bundle name to a list or tuple of scenarios.
-#
-def _BundleWorkerInit(arg, data):
- if isinstance(arg, string_types):
- # a single bundle
- assert type(data) in (list, tuple)
- assert len(data) > 0
- return _WorkerInit(type_="bundles",
- names=(arg,),
- data={arg: data})
- else:
- # a list of bundles
- assert type(arg) in (list, tuple)
- assert type(data) is dict
- for name in arg:
- assert isinstance(name, string_types)
- assert type(data[name]) in (list, tuple)
- assert len(data[name]) > 0
- return _WorkerInit(type_="bundles",
- names=arg,
- data=data)
-
-class ScenarioTreeSolveResults(object):
- """A container that summarizes the results of solve
- request to a ScenarioTreeManagerSolver. Results will
- be organized by scenario name or bundle name,
- depending on the solve type."""
-
- def __init__(self, solve_type):
- assert solve_type in ('scenarios','bundles')
-
- # The type of solve used to generate these results
- # Will always be one of 'scenarios' or 'bundles'
- self._solve_type = solve_type
-
- # Maps scenario name (or bundle name) to the
- # objective value reported by the corresponding
- # sub-problem.
- self._objective = {}
-
- # Similar to the above, but calculated from the
- # some of the stage costs for the object, which
- # can be different from the objective when it is
- # augmented by a PySP algorithm.
- self._cost = {}
-
- # Maps scenario name (or bundle name) to the gap
- # reported by the solver when solving the
- # associated instance. If there is no entry,
- # then there has been no solve. Values can be
- # undefined when the solver plugin does not
- # report a gap.
- self._gap = {}
-
- # Maps scenario name (or bundle name) to the
- # last solve time reported for the corresponding
- # sub-problem. Presently user time, due to
- # deficiency in solver plugins. Ultimately want
- # wall clock time for reporting purposes.
- self._solve_time = {}
-
- # Similar to the above, but the time consumed by
- # the invocation of the solve() method on
- # whatever solver plugin was used.
- self._pyomo_solve_time = {}
-
- # Maps scenario name (or bundle name) to the
- # solver status associated with the solves. If
- # there is no entry or it is undefined, then the
- # object was not solved.
- self._solver_status = {}
-
- # Maps scenario name (or bundle name) to the
- # solver termination condition associated with
- # the solves. If there is no entry or it is
- # undefined, then the object was not solved
- self._solver_message = {}
-
- # Maps scenario name (or bundle name) to the
- # solver termination condition associated with
- # the solves. If there is no entry or it is
- # undefined, then the object was not solved.
- self._termination_condition = {}
-
- # Maps scenario name (or bundle name) to the
- # solution status associated with the solves. If
- # there is no entry or it is undefined, then the
- # object was not solved.
- self._solution_status = {}
-
- @property
- def solve_type(self):
- """Return a string indicating the type of
- objects associated with these solve results
- ('scenarios' or 'bundles')."""
- return self._solve_type
-
- @property
- def objective(self):
- """Return a dictionary with the objective values
- for all objects associated with these solve
- results."""
- return self._objective
-
- @property
- def cost(self):
- """Return a dictionary with the sum of the stage
- costs for all objects associated with these
- solve results."""
- return self._cost
-
- @property
- def pyomo_solve_time(self):
- """Return a dictionary with the pyomo solve
- times for all objects associated with these
- solve results."""
- return self._pyomo_solve_time
-
- @property
- def solve_time(self):
- """Return a dictionary with solve times for all
- objects associated with these solve results."""
- return self._solve_time
-
- @property
- def gap(self):
- """Return a dictionary with solution gaps for
- all objects associated with these solve
- results."""
- return self._gap
-
- @property
- def solver_status(self):
- """Return a dictionary with solver statuses for
- all objects associated with these solve
- results."""
- return self._solver_status
-
- @property
- def solver_message(self):
- """Return a dictionary with solver messages for
- all objects associated with these solve
- results."""
- return self._solver_message
-
- @property
- def termination_condition(self):
- """Return a dictionary with solver termination
- conditions for all objects associated with these
- solve results."""
- return self._termination_condition
-
- @property
- def solution_status(self):
- """Return a dictionary with solution statuses
- for all objects associated with these solve
- results."""
- return self._solution_status
-
-
- def update(self, results):
- assert isinstance(results,
- ScenarioTreeSolveResults)
- if results.solve_type != self.solve_type:
- raise ValueError(
- "Can not update scenario tree manager solver "
- "results object with solve type '%s' from "
- "another results object with a different solve "
- "type '%s'" % (self.solve_type, results.solve_type))
- for attr_name in ("objective",
- "cost",
- "pyomo_solve_time",
- "solve_time",
- "gap",
- "solver_status",
- "solver_message",
- "termination_condition",
- "solution_status"):
- getattr(self, attr_name).update(
- getattr(results, attr_name))
-
- def results_for(self, object_name):
- """Return a dictionary that summarizes all
- results information for an individual object
- associated with these solve results."""
- if object_name not in self.objective:
- raise KeyError(
- "This results object does not hold any "
- "results for scenario tree object with "
- "name: %s" % (object_name))
- results = {}
- for attr_name in ("objective",
- "cost",
- "pyomo_solve_time",
- "solve_time",
- "gap",
- "solver_status",
- "solver_message",
- "termination_condition",
- "solution_status"):
- results[attr_name] = getattr(self, attr_name)[object_name]
- return results
-
- def pprint(self, output_times=False, filter_names=None):
- """Print a summary of the solve results included in this object."""
-
- object_names = list(filter(filter_names,
- sorted(self.objective.keys())))
- if len(object_names) == 0:
- print("No result data available")
- return
-
- max_name_len = max(len(str(_object_name)) \
- for _object_name in object_names)
- if self.solve_type == 'bundles':
- max_name_len = max((len("Bundle Name"), max_name_len))
- line = (("%-"+str(max_name_len)+"s ") % "Bundle Name")
- else:
- assert self.solve_type == 'scenarios'
- max_name_len = max((len("Scenario Name"), max_name_len))
- line = (("%-"+str(max_name_len)+"s ") % "Scenario Name")
- line += ("%-16s %-16s %-14s %-14s %-16s"
- % ("Cost",
- "Objective",
- "Objective Gap",
- "Solver Status",
- "Term. Condition"))
- if output_times:
- line += (" %-11s" % ("Solve Time"))
- line += (" %-11s" % ("Pyomo Time"))
- print(line)
- for object_name in object_names:
- objective_value = self.objective[object_name]
- cost_value = self.cost[object_name]
- gap = self.gap[object_name]
- solver_status = self.solver_status[object_name]
- term_condition = self.termination_condition[object_name]
- line = ("%-"+str(max_name_len)+"s ")
- if isinstance(objective_value, UndefinedData):
- line += "%-16s"
- else:
- line += "%-16.7e"
- if isinstance(cost_value, UndefinedData):
- line += " %-16s"
- else:
- line += " %-16.7e"
- if (not isinstance(gap, UndefinedData)) and \
- (gap is not None):
- line += (" %-14.4e")
- else:
- line += (" %-14s")
- line += (" %-14s %-16s")
- line %= (object_name,
- cost_value,
- objective_value,
- gap,
- solver_status,
- term_condition)
- if output_times:
- solve_time = self.solve_time.get(object_name)
- if (not isinstance(solve_time, UndefinedData)) and \
- (solve_time is not None):
- line += (" %-11.2f")
- else:
- line += (" %-11s")
- line %= (solve_time,)
-
- pyomo_solve_time = self.pyomo_solve_time.get(object_name)
- if (not isinstance(pyomo_solve_time, UndefinedData)) and \
- (pyomo_solve_time is not None):
- line += (" %-11.2f")
- else:
- line += (" %-11s")
- line %= (pyomo_solve_time,)
- print(line)
- print("")
-
- def pprint_status(self, filter_names=None):
- """Print a summary of the solve results included in this object."""
-
- object_names = list(filter(filter_names,
- sorted(self.objective.keys())))
- if len(object_names) == 0:
- print("No result data available")
- return
-
- max_name_len = max(len(str(_object_name)) \
- for _object_name in object_names)
- if self.solve_type == 'bundles':
- max_name_len = max((len("Bundle Name"), max_name_len))
- line = (("%-"+str(max_name_len)+"s ") % "Bundle Name")
- else:
- assert self.solve_type == 'scenarios'
- max_name_len = max((len("Scenario Name"), max_name_len))
- line = (("%-"+str(max_name_len)+"s ") % "Scenario Name")
- line += ("%-14s %-16s"
- % ("Solver Status",
- "Term. Condition"))
- print(line)
- for object_name in object_names:
- solver_status = self.solver_status[object_name]
- term_condition = self.termination_condition[object_name]
- line = ("%-"+str(max_name_len)+"s ")
- line += ("%-14s %-16s")
- line %= (object_name,
- solver_status,
- term_condition)
- print(line)
- print("")
-
- def print_timing_summary(self, filter_names=None):
-
- object_names = list(filter(filter_names,
- sorted(self.objective.keys())))
- if len(object_names) == 0:
- print("No result data available")
- return
-
- # if any of the solve times are of type
- # pyomo.opt.results.container.UndefinedData, then don't
- # output timing statistics.
- solve_times = list(self.solve_time[object_name]
- for object_name in object_names)
- if any(isinstance(x, UndefinedData)
- for x in solve_times):
- print("At least one of the %s had an undefined solve time - "
- "skipping timing statistics" % (object_type))
- else:
- solve_times = [float(x) for x in solve_times]
- mean = sum(solve_times) / float(len(solve_times))
- std_dev = math.sqrt(sum(pow(x-mean,2.0) for x in solve_times) / \
- float(len(solve_times)))
- print("Solve time statistics for %s - Min: "
- "%0.2f Avg: %0.2f Max: %0.2f StdDev: %0.2f (seconds)"
- % (self.solve_type,
- min(solve_times),
- mean,
- max(solve_times),
- std_dev))
-
- # if any of the solve times are of type
- # pyomo.opt.results.container.UndefinedData, then don't
- # output timing statistics.
- pyomo_solve_times = list(self.pyomo_solve_time[object_name]
- for object_name in object_names)
- if any(isinstance(x, UndefinedData)
- for x in pyomo_solve_times):
- print("At least one of the %s had an undefined pyomo solve time - "
- "skipping timing statistics" % (object_type))
- else:
- pyomo_solve_times = [float(x) for x in pyomo_solve_times]
- mean = sum(pyomo_solve_times) / float(len(pyomo_solve_times))
- std_dev = \
- math.sqrt(sum(pow(x-mean,2.0) for x in pyomo_solve_times) / \
- float(len(pyomo_solve_times)))
- print("Pyomo solve time statistics for %s - Min: "
- "%0.2f Avg: %0.2f Max: %0.2f StdDev: %0.2f (seconds)"
- % (self.solve_type,
- min(pyomo_solve_times),
- mean,
- max(pyomo_solve_times),
- std_dev))
-
-if using_pyro4:
- import Pyro4
- from Pyro4.util import SerializerBase
- # register hooks for ScenarioTreeSolveResults
- def ScenarioTreeSolveResults_to_dict(obj):
- data = {"__class__": ("pyomo.pysp.scenario_tree.manager_solver."
- "ScenarioTreeSolveResults")}
- data.update(obj.__dict__)
- # Convert enums to strings to avoid difficult
- # behavior related to certain Pyro serializer
- # settings
- for attr_name in ('_solver_status',
- '_termination_condition',
- '_solution_status'):
- data[attr_name] = \
- dict((key, str(val)) for key,val
- in data[attr_name].items())
- return data
- def dict_to_ScenarioTreeSolveResults(classname, d):
- obj = ScenarioTreeSolveResults(d['_solve_type'])
- assert "__class__" not in d
- obj.__dict__.update(d)
- # Convert status strings back to enums. These are
- # transmitted as strings to avoid difficult behavior
- # related to certain Pyro serializer settings
- for object_name in obj.solver_status:
- obj.solver_status[object_name] = \
- getattr(SolverStatus,
- obj.solver_status[object_name])
- for object_name in obj.termination_condition:
- obj.termination_condition[object_name] = \
- getattr(TerminationCondition,
- obj.termination_condition[object_name])
- for object_name in obj.solution_status:
- obj.solution_status[object_name] = \
- getattr(SolutionStatus,
- obj.solution_status[object_name])
- return obj
- SerializerBase.register_class_to_dict(
- ScenarioTreeSolveResults,
- ScenarioTreeSolveResults_to_dict)
- SerializerBase.register_dict_to_class(
- ("pyomo.pysp.scenario_tree.manager_solver."
- "ScenarioTreeSolveResults"),
- dict_to_ScenarioTreeSolveResults)
-
-
-#
-# A base class and interface that is common to all scenario tree
-# client and worker managers.
-#
-
-class ScenarioTreeManager(PySPConfiguredObject):
-
- @classmethod
- def _declare_options(cls, options=None):
- if options is None:
- options = PySPConfigBlock()
- return options
-
- #
- # Note: These Async objects can be cleaned up.
- # This is a first draft.
- #
- class Async(object):
- def complete(self):
- """Wait for the job request to complete and return the result."""
- raise NotImplementedError #pragma:nocover
-
- class AsyncResult(Async):
-
- __slots__ = ('_action_manager',
- '_result',
- '_action_handle_data',
- '_invocation_type',
- '_map_result')
-
- def __init__(self,
- action_manager,
- result=None,
- action_handle_data=None,
- map_result=None):
- if result is not None:
- assert action_handle_data is None
- if action_handle_data is not None:
- assert action_manager is not None
- if map_result is not None:
- assert result is None
- assert action_handle_data is not None
- self._action_manager = action_manager
- self._action_handle_data = action_handle_data
- self._result = result
- self._map_result = map_result
-
- def complete(self):
- """Wait for the job request to complete and return the result."""
- if self._result is not None:
- if isinstance(self._result,
- ScenarioTreeManager.Async):
- self._result = self._result.complete()
- return self._result
-
- if self._action_handle_data is None:
- assert self._result is None
- return None
-
- result = None
- if isinstance(self._action_handle_data, ActionHandle):
- result = self._action_manager.wait_for(
- self._action_handle_data)
- if self._map_result is not None:
- result = self._map_result(self._action_handle_data, result)
- else:
- ah_to_result = {}
- ahs = set(self._action_handle_data)
- while len(ahs) > 0:
- ah = self._action_manager.wait_any(ahs)
- ah_to_result[ah] = self._action_manager.get_results(ah)
- ahs.remove(ah)
- #self._action_manager.wait_all(self._action_handle_data)
- #ah_to_result = dict((ah, self._action_manager.get_results(ah))
- # for ah in self._action_handle_data)
- if self._map_result is not None:
- result = self._map_result(ah_to_result)
- else:
- result = dict((self._action_handle_data[ah], ah_to_result[ah])
- for ah in ah_to_result)
- self._result = result
- return self._result
-
- # This class ensures that a chain of asynchronous
- # actions are completed in order
- class AsyncResultChain(Async):
- __slots__ = ("_results", "_return_index")
-
- def __init__(self, results, return_index=-1):
- self._results = results
- self._return_index = return_index
-
- def complete(self):
- """Wait for the job request to complete and return the result."""
- for i in xrange(len(self._results)):
- assert isinstance(self._results[i],
- ScenarioTreeManager.Async)
- self._results[i] = self._results[i].complete()
- result = None
- if self._return_index is not None:
- result = self._results[self._return_index]
- return result
-
- # This class returns the result of a callback function
- # when completing an asynchronous action
- class AsyncResultCallback(Async):
- __slots__ = ("_result", "_done")
-
- def __init__(self, result):
- self._result = result
- self._done = False
-
- def complete(self):
- """Wait for the job request to complete and return the result."""
- if not self._done:
- self._result = self._result()
- self._done = True
- return self._result
-
- def __init__(self, *args, **kwds):
- if self.__class__ is ScenarioTreeManager:
- raise NotImplementedError(
- "%s is an abstract class for subclassing" % self.__class__)
-
- super(ScenarioTreeManager, self).__init__(*args, **kwds)
-
- self._error_shutdown = False
- self._scenario_tree = None
- # bundle info
- self._scenario_to_bundle_map = {}
- # For the users to modify as they please in the aggregate
- # callback as long as the data placed on it can be serialized
- # by Pyro
- self._aggregate_user_data = {}
- # set to true with the __enter__ method is called
- self._inside_with_block = False
- self._initialized = False
-
- # the objective sense of the subproblems
- self._objective_sense = None
-
-
- def _init_bundle(self, bundle_name, scenario_list):
- if self._options.verbose:
- print("Initializing scenario bundle with name %s"
- % (bundle_name))
- # make sure the bundle was already added to the scenario tree
- assert self._scenario_tree.contains_bundle(bundle_name)
- for scenario_name in scenario_list:
- if scenario_name in self._scenario_to_bundle_map:
- raise ValueError(
- "Unable to form binding instance for bundle %s. "
- "Scenario %s already belongs to bundle %s."
- % (bundle_name,
- scenario_name,
- self._scenario_to_bundle_map[scenario_name]))
- self._scenario_to_bundle_map[scenario_name] = bundle_name
-
- def _release_bundle(self, bundle_name):
- if self._options.verbose:
- print("Releasing scenario bundle with name %s"
- % (bundle_name))
-
- # make sure the bundle was already added to the scenario tree
- assert self._scenario_tree.contains_bundle(bundle_name)
- bundle = self._scenario_tree.get_bundle(bundle_name)
- for scenario_name in bundle._scenario_names:
- del self._scenario_to_bundle_map[scenario_name]
-
- #
- # Interface:
- #
-
- @property
- def objective_sense(self):
- """Return the objective sense declared for all
- subproblems."""
- return self._objective_sense
-
- @property
- def modules_imported(self):
- raise NotImplementedError #pragma:nocover
-
- @property
- def scenario_tree(self):
- return self._scenario_tree
-
- @property
- def initialized(self):
- return self._initialized
-
- def initialize(self, *args, **kwds):
- """Initialize the scenario tree manager.
-
- A scenario tree manager must be initialized before using it.
- """
-
- init_start_time = time.time()
- result = None
- self._initialized = True
- try:
- if self._options.verbose:
- print("Initializing %s with options:"
- % (type(self).__name__))
- self.display_options()
- print("")
- ############# derived method
- result = self._init(*args, **kwds)
- #############
- if self._options.verbose:
- print("%s is successfully initialized"
- % (type(self).__name__))
-
- except:
- if not self._inside_with_block:
- print("Exception encountered. Scenario tree manager "
- "attempting to shut down.")
- print("Original Exception:")
- traceback.print_exception(*sys.exc_info())
- self.close()
- raise
-
- if self._options.output_times or \
- self._options.verbose:
- print("Overall initialization time=%.2f seconds"
- % (time.time() - init_start_time))
-
- return result
-
- def __enter__(self):
- self._inside_with_block = True
- return self
-
- def __exit__(self, *args):
- if args[0] is not None:
- sys.stderr.write("Exception encountered. Scenario tree manager "
- "attempting to shut down.\n")
- tmp = StringIO()
- _args = list(args) + [None, tmp]
- traceback.print_exception(*_args)
- self._error_shutdown = True
- try:
- self.close()
- except:
- logger.error("Exception encountered during emergency scenario "
- "tree manager shutdown. Printing original exception "
- "here:\n")
- logger.error(tmp.getvalue())
- raise
- else:
- self.close()
-
- def close(self):
- """Close the scenario tree manager and any associated objects."""
- if self._options.verbose:
- print("Closing "+str(self.__class__.__name__))
- self._close_impl()
- if hasattr(self._scenario_tree, "_scenario_instance_factory"):
- self._scenario_tree._scenario_instance_factory.close()
- self._scenario_tree = None
- self._scenario_to_bundle_map = {}
- self._aggregate_user_data = {}
- self._inside_with_block = False
- self._initialized = False
- self._objective_sense = None
-
- def invoke_function(self,
- function,
- module_name=None,
- invocation_type=InvocationType.Single,
- function_args=(),
- function_kwds=None,
- async_call=False,
- oneway_call=False):
- """Invokes a function on scenario tree constructs
- managed by this scenario tree manager. The first
- argument accepted by the function must always be the
- process-local scenario tree worker object, which may
- or may not be this object.
-
- Args:
- function:
- The function or name of the function to be
- invoked. If the object is a function, then
- the manager will attempt to transmit it
- using the dill package. Otherwise, the
- argument must be a string and the
- module_name keyword is required.
- module_name:
- The name of the module containing the
- function. This can also be an absolute path
- to a file that contains the function
- definition. If this function argument is an
- actual function, this keyword must be left
- at its default value of None; otherwise, it
- is required.
- invocation_type:
- Controls how the function is invoked. Refer
- to the doc string for
- pyomo.pysp.scenariotree.manager.InvocationType
- for more information.
- function_args:
- Extra arguments passed to the function when
- it is invoked. These will always be placed
- after the initial process-local scenario
- tree worker object as well as any
- additional arguments governed by the
- invocation type.
- function_kwds:
- Additional keywords to pass to the function
- when it is invoked.
- async_call:
- When set to True, the return value will be
- an asynchronous object. Invocation results
- can be obtained at any point by calling the
- complete() method on this object, which
- will block until all associated action
- handles are collected.f
- oneway_call:
- When set to True, it will be assumed no return value
- is expected from this function (async_call is
- implied). Setting both async_call and oneway_call to
- True will result in an exception being raised.
-
- *Note: The 'oneway_call' and 'async_call' keywords are
- valid for all scenario tree manager
- implementations. However, they are
- designed for use with Pyro-based
- implementations. Their existence in other
- implementations is not meant to guarantee
- asynchronicity, but rather to provide a
- consistent interface for code to be
- written around.
-
- Returns:
- If 'oneway_call' is True, this function will always
- return None. Otherwise, the return value type is
- governed by the 'invocation_type' keyword, which
- will be nested inside an asynchronous object if
- 'async_call' is set to True.
- """
- if not self.initialized:
- raise RuntimeError(
- "The scenario tree manager is not initialized.")
- if async_call and oneway_call:
- raise ValueError("async oneway calls do not make sense")
- invocation_type = _map_deprecated_invocation_type(invocation_type)
- if (invocation_type == InvocationType.PerBundle) or \
- (invocation_type == InvocationType.PerBundleChained) or \
- (invocation_type == InvocationType.OnBundle) or \
- (invocation_type == InvocationType.OnBundles) or \
- (invocation_type == InvocationType.OnBundlesChained):
- if not self._scenario_tree.contains_bundles():
- raise ValueError(
- "Received request for bundle invocation type "
- "but the scenario tree does not contain bundles.")
- return self._invoke_function_impl(function,
- module_name=module_name,
- invocation_type=invocation_type,
- function_args=function_args,
- function_kwds=function_kwds,
- async_call=async_call,
- oneway_call=oneway_call)
-
- def invoke_method(self,
- method_name,
- method_args=(),
- method_kwds=None,
- async_call=False,
- oneway_call=False):
- """Invokes a method on a scenario tree constructs managed
- by this scenario tree manager client. This may or may not
- take place on this client itself.
-
- Args:
- method_name:
- The name of the method to be invoked.
- method_args:
- Arguments passed to the method when it is invoked.
- method_kwds:
- Keywords to pass to the method when it is invoked.
- async_call:
- When set to True, the return value will be an
- asynchronous object. Invocation results can be
- obtained at any point by calling the complete()
- method on this object, which will block until all
- associated action handles are collected.
- oneway_call:
- When set to True, it will be assumed no return value
- is expected from this method (async_call is
- implied). Setting both async_call and oneway_call to True
- will result in an exception being raised.
-
- *Note: The 'oneway_call' and 'async_call' keywords are valid
- for all scenario tree manager client
- implementations. However, they are designed for use
- with Pyro-based implementations. Their existence in
- other implementations is not meant to guarantee
- asynchronicity, but rather to provide a consistent
- interface for code to be written around.
-
- Returns:
- If 'oneway_call' is True, this function will always return
- None. Otherwise, the return corresponds exactly to the
- method's return value, which will be nested inside an
- asynchronous object if 'async_call' is set to True.
- """
- if not self.initialized:
- raise RuntimeError(
- "The scenario tree manager is not initialized.")
- if async_call and oneway_call:
- raise ValueError("async oneway calls do not make sense")
- return self._invoke_method_impl(method_name,
- method_args=method_args,
- method_kwds=method_kwds,
- async_call=async_call,
- oneway_call=oneway_call)
-
- def push_fix_queue_to_instances(self):
- """Push the fixed queue on the scenario tree nodes onto the
- actual variables on the scenario instances.
-
- * NOTE: This function is poorly named and this functionality
- will likely be changed in the near future. Ideally, fixing
- would be done through the scenario tree manager, rather
- than through the scenario tree.
- """
- if self.get_option("verbose"):
- print("Synchronizing fixed variable statuses on scenario tree nodes")
- node_count = self._push_fix_queue_to_instances_impl()
- if node_count > 0:
- if self.get_option("verbose"):
- print("Updated fixed statuses on %s scenario tree nodes"
- % (node_count))
- else:
- if self.get_option("verbose"):
- print("No synchronization was needed for scenario tree nodes")
-
- #
- # Methods defined by derived class that are not
- # part of the user interface
- #
-
- def _init(self, *args, **kwds):
- raise NotImplementedError #pragma:nocover
-
- def _close_impl(self, *args, **kwds):
- raise NotImplementedError #pragma:nocover
-
- def _invoke_function_impl(self, *args, **kwds):
- raise NotImplementedError #pragma:nocover
-
- def _invoke_method_impl(self, *args, **kwds):
- raise NotImplementedError #pragma:nocover
-
- def _process_bundle_solve_result(self, *args, **kwds):
- raise NotImplementedError #pragma:nocover
-
- def _process_scenario_solve_result(self, *args, **kwds):
- raise NotImplementedError #pragma:nocover
-
- def _push_fix_queue_to_instances_impl(self, *args, **kwds):
- raise NotImplementedError #pragma:nocover
-
-#
-# A base class and interface that is common to client-side scenario
-# tree manager implementations (e.g, both the Pyro and Serial
-# versions).
-#
-
-class ScenarioTreeManagerClient(ScenarioTreeManager,
- PySPConfiguredObject):
-
- @classmethod
- def _declare_options(cls, options=None):
- if options is None:
- options = PySPConfigBlock()
-
- #
- # scenario instance construction
- #
- safe_declare_common_option(options,
- "model_location")
- safe_declare_common_option(options,
- "scenario_tree_location")
- safe_declare_common_option(options,
- "objective_sense_stage_based")
- safe_declare_common_option(options,
- "postinit_callback_location")
- safe_declare_common_option(options,
- "aggregategetter_callback_location")
-
- #
- # scenario tree generation
- #
- safe_declare_common_option(options,
- "scenario_tree_random_seed")
- safe_declare_common_option(options,
- "scenario_tree_downsample_fraction")
- safe_declare_common_option(options,
- "scenario_bundle_specification")
- safe_declare_common_option(options,
- "create_random_bundles")
-
- #
- # various
- #
- safe_declare_common_option(options,
- "output_times")
- safe_declare_common_option(options,
- "verbose")
- safe_declare_common_option(options,
- "profile_memory")
-
- return options
-
- def __init__(self, *args, **kwds):
- if self.__class__ is ScenarioTreeManagerClient:
- raise NotImplementedError(
- "%s is an abstract class for subclassing" % self.__class__)
- factory = kwds.pop("factory", None)
- super(ScenarioTreeManagerClient, self).__init__(*args, **kwds)
-
- # callback info
- self._scenario_tree = None
- self._callback_function = {}
- self._callback_mapped_module_name = {}
- self._aggregategetter_keys = []
- self._aggregategetter_names = []
- self._postinit_keys = []
- self._postinit_names = []
- self._modules_imported = {}
- if factory is None:
- self._generate_scenario_tree()
- self._import_callbacks()
- else:
- self._scenario_tree = factory.generate_scenario_tree(
- downsample_fraction=self._options.scenario_tree_downsample_fraction,
- bundles=self._options.scenario_bundle_specification,
- random_bundles=self._options.create_random_bundles,
- random_seed=self._options.scenario_tree_random_seed,
- verbose=self._options.verbose)
-
- def _generate_scenario_tree(self):
-
- start_time = time.time()
- if self._options.verbose:
- print("Importing model and scenario tree files")
-
- scenario_instance_factory = \
- ScenarioTreeInstanceFactory(
- self._options.model_location,
- self._options.scenario_tree_location)
-
- #
- # Try to prevent unnecessarily re-importing the model module
- # if other callbacks are in the same location. Doing so might
- # have serious consequences.
- #
- if scenario_instance_factory._model_module is not None:
- self.modules_imported[scenario_instance_factory.\
- _model_filename] = \
- scenario_instance_factory._model_module
- if scenario_instance_factory._scenario_tree_module is not None:
- self.modules_imported[scenario_instance_factory.\
- _scenario_tree_filename] = \
- scenario_instance_factory._scenario_tree_module
-
- if self._options.output_times or \
- self._options.verbose:
- print("Time to import model and scenario tree "
- "structure files=%.2f seconds"
- %(time.time() - start_time))
-
- try:
-
- self._scenario_tree = \
- scenario_instance_factory.\
- generate_scenario_tree(
- downsample_fraction=\
- self._options.scenario_tree_downsample_fraction,
- bundles=self._options.scenario_bundle_specification,
- random_bundles=self._options.create_random_bundles,
- random_seed=self._options.scenario_tree_random_seed,
- verbose=self._options.verbose)
-
- # print the input tree for validation/information
- # purposes.
- if self._options.verbose:
- self._scenario_tree.pprint()
-
- # validate the tree prior to doing anything serious
- self._scenario_tree.validate()
- if self._options.verbose:
- print("Scenario tree is valid!")
-
- except:
- print("Failed to generate scenario tree")
- scenario_instance_factory.close()
- raise
-
- def _import_callbacks(self):
-
- renamed = {}
- renamed["pysp_aggregategetter_callback"] = \
- "ph_aggregategetter_callback"
- renamed["pysp_postinit_callback"] = \
- "ph_boundsetter_callback"
- for module_names, attr_name, callback_name in (
- (self._options.aggregategetter_callback_location,
- "_aggregategetter",
- "pysp_aggregategetter_callback"),
- (self._options.postinit_callback_location,
- "_postinit",
- "pysp_postinit_callback")):
-
- assert callback_name in renamed.keys()
- deprecated_callback_name = renamed[callback_name]
- for module_name in module_names:
- if module_name in self.modules_imported:
- module = self.modules_imported[module_name]
- sys_modules_key = module_name
- else:
- module, sys_modules_key = \
- load_external_module(module_name,
- clear_cache=True,
- verbose=self.get_option("verbose"))
- self.modules_imported[module_name] = module
- callback = None
- for oname, obj in inspect.getmembers(module):
- if oname == callback_name:
- callback = obj
- break
- if callback is None:
- for oname, obj in inspect.getmembers(module):
- if oname == deprecated_callback_name:
- callback = obj
- break
- if callback is None:
- raise ImportError(
- "PySP callback with name '%s' could "
- "not be found in module file: %s"
- % (deprecated_callback_name, module_name))
- if callback is None:
- raise ImportError(
- "PySP callback with name '%s' could "
- "not be found in module file: %s"
- % (callback_name, module_name))
- else:
- logger.warning(
- "DEPRECATED: Callback with name '%s' "
- "has been renamed '%s'"
- % (deprecated_callback_name,
- callback_name))
- callback_name = deprecated_callback_name
-
- self._callback_function[sys_modules_key] = callback
- getattr(self, attr_name+"_keys").append(sys_modules_key)
- getattr(self, attr_name+"_names").append(callback_name)
- self._callback_mapped_module_name\
- [sys_modules_key] = module_name
-
- #
- # Interface
- #
-
- @property
- def modules_imported(self):
- return self._modules_imported
-
- # override initialize on ScenarioTreeManager for documentation purposes
- def initialize(self, async_call=False):
- """Initialize the scenario tree manager client.
-
- Note: Calling complete() on an asynchronous result
- returned from this method will causes changes
- in the state of this object. One should avoid
- using the client until initialization is
- complete.
-
- Args:
- async_call:
- When set to True, the return value will be an
- asynchronous object. Invocation results can be
- obtained at any point by calling the complete()
- method on this object, which will block until all
- associated action handles are collected.
-
- Returns:
- A dictionary mapping scenario tree worker names to their
- initial return value (True is most cases). If 'async_call'
- is set to True, this return value will be nested inside an
- asynchronous object.
- """
- return super(ScenarioTreeManagerClient, self).initialize(async_call=async_call)
-
- def invoke_function_on_worker(self,
- worker_name,
- function,
- module_name=None,
- invocation_type=InvocationType.Single,
- function_args=(),
- function_kwds=None,
- async_call=False,
- oneway_call=False):
- """Invokes a function on a scenario tree worker
- managed by this scenario tree manager client. The
- first argument accepted by the function must always
- be the process-local scenario tree worker object,
- which may or may not be this object.
-
- Args:
- worker_name:
- The name of the scenario tree worker. The
- list of worker names can be found at
- client.worker_names.
- function:
- The function or name of the function to be
- invoked. If the object is a function, then
- the manager will attempt to transmit it
- using the dill package. Otherwise, the
- argument must be a string and the
- module_name keyword is required.
- module_name:
- The name of the module containing the
- function. This can also be an absolute path
- to a file that contains the function
- definition. If this function argument is an
- actual function, this keyword must be left
- at its default value of None; otherwise, it
- is required.
- invocation_type:
- Controls how the function is invoked. Refer
- to the doc string for
- pyomo.pysp.scenariotree.manager.InvocationType
- for more information.
- function_args:
- Extra arguments passed to the function when
- it is invoked. These will always be placed
- after the initial process-local scenario
- tree worker object as well as any
- additional arguments governed by the
- invocation type.
- function_kwds:
- Additional keywords to pass to the function
- when it is invoked.
- async_call:
- When set to True, the return value will be
- an asynchronous object. Invocation results
- can be obtained at any point by calling the
- complete() method on this object, which
- will block until all associated action
- handles are collected.
- oneway_call:
- When set to True, it will be assumed no return value
- is expected from this function (async_call is
- implied). Setting both async and oneway_call to True will
- result in an exception being raised.
-
- *Note: The 'oneway_call' and 'async_call' keywords are valid
- for all scenario tree manager
- implementations. However, they are designed for use
- with Pyro-based implementations. Their existence in
- other implementations is not meant to guarantee
- asynchronicity, but rather to provide a consistent
- interface for code to be written around.
-
- Returns:
- If 'oneway_call' is True, this function will always
- return None. Otherwise, the return value type is
- governed by the 'invocation_type' keyword, which
- will be nested inside an asynchronous object if
- 'async_call' is set to True.
- """
- if not self.initialized:
- raise RuntimeError(
- "The scenario tree manager is not initialized.")
- if async_call and oneway_call:
- raise ValueError("async oneway calls do not make sense")
- invocation_type = _map_deprecated_invocation_type(invocation_type)
- if (invocation_type == InvocationType.PerBundle) or \
- (invocation_type == InvocationType.PerBundleChained) or \
- (invocation_type == InvocationType.OnBundle) or \
- (invocation_type == InvocationType.OnBundles) or \
- (invocation_type == InvocationType.OnBundlesChained):
- if not self._scenario_tree.contains_bundles():
- raise ValueError(
- "Received request for bundle invocation type "
- "but the scenario tree does not contain bundles.")
- return self._invoke_function_on_worker_impl(worker_name,
- function,
- module_name=module_name,
- invocation_type=invocation_type,
- function_args=function_args,
- function_kwds=function_kwds,
- async_call=async_call,
- oneway_call=oneway_call)
-
- def invoke_method_on_worker(self,
- worker_name,
- method_name,
- method_args=(),
- method_kwds=None,
- async_call=False,
- oneway_call=False):
- """Invokes a method on a scenario tree worker managed
- by this scenario tree manager client. The worker
- may or may not be this client.
-
- Args:
- worker_name:
- The name of the scenario tree worker. The list of worker
- names can be found at client.worker_names.
- method_name:
- The name of the worker method to be invoked.
- method_args:
- Arguments passed to the method when it is invoked.
- method_kwds:
- Keywords to pass to the method when it is invoked.
- async_call:
- When set to True, the return value will be an
- asynchronous object. Invocation results can be
- obtained at any point by calling the complete()
- method on this object, which will block until all
- associated action handles are collected.
- oneway_call:
- When set to True, it will be assumed no return value
- is expected from this method (async_call is
- implied). Setting both async and oneway_call to True will
- result in an exception being raised.
-
- *Note: The 'oneway_call' and 'async_call' keywords are valid
- for all scenario tree manager client
- implementations. However, they are designed for use
- with Pyro-based implementations. Their existence in
- other implementations is not meant to guarantee
- asynchronicity, but rather to provide a consistent
- interface for code to be written around.
-
- Returns:
- If 'oneway_call' is True, this function will always return
- None. Otherwise, the return corresponds exactly to the
- method's return value, which will be nested inside an
- asynchronous object if 'async_call' is set to True.
- """
- if not self.initialized:
- raise RuntimeError(
- "The scenario tree manager is not initialized.")
- if async_call and oneway_call:
- raise ValueError("async oneway calls do not make sense")
- return self._invoke_method_on_worker_impl(worker_name,
- method_name,
- method_args=method_args,
- method_kwds=method_kwds,
- async_call=async_call,
- oneway_call=oneway_call)
-
- @property
- def worker_names(self):
- """The list of worker names managed by this client."""
- return self._worker_names_impl()
-
- def get_worker_for_scenario(self, scenario_name):
- """Get the worker name assigned to the scenario with the given name."""
- if not self._scenario_tree.contains_scenario(scenario_name):
- raise KeyError("Scenario with name %s does not exist "
- "in the scenario tree" % (scenario_name))
- return self._get_worker_for_scenario_impl(scenario_name)
-
- def get_worker_for_bundle(self, bundle_name):
- """Get the worker name assigned to the bundle with the given name."""
- if not self._scenario_tree.contains_bundle(bundle_name):
- raise KeyError("Bundle with name %s does not exist "
- "in the scenario tree" % (bundle_name))
- return self._get_worker_for_bundle_impl(bundle_name)
-
- def get_scenarios_for_worker(self, worker_name):
- """Get the list of scenario names assigned to the worker with
- the given name."""
- if worker_name not in self.worker_names:
- raise KeyError("Worker with name %s does not exist under "
- "in this client" % (worker_name))
- return self._get_scenarios_for_worker_impl(worker_name)
-
- def get_bundles_for_worker(self, worker_name):
- """Get the list of bundle names assigned to the worker with
- the given name."""
- if worker_name not in self.worker_names:
- raise KeyError("Worker with name %s does not exist under "
- "in this client" % (worker_name))
- return self._get_bundles_for_worker_impl(worker_name)
-
- #
- # Partially implement _init for ScenarioTreeManager
- # subclasses are now expected to generate a (possibly
- # dummy) async object during _init_client
- #
- def _init(self, async_call=False):
- async_handle = self._init_client()
- if async_call:
- result = async_handle
- else:
- result = async_handle.complete()
- return result
-
- #
- # Methods defined by derived class that are not
- # part of the user interface
- #
-
- def _init_client(self, *args, **kwds):
- raise NotImplementedError #pragma:nocover
-
- def _invoke_function_on_worker_impl(self, *args, **kwds):
- raise NotImplementedError #pragma:nocover
-
- def _invoke_method_on_worker_impl(self, *args, **kwds):
- raise NotImplementedError #pragma:nocover
-
- def _worker_names_impl(self, *args, **kwds):
- raise NotImplementedError #pragma:nocover
-
- def _get_worker_for_scenario_impl(self, *args, **kwds):
- raise NotImplementedError #pragma:nocover
-
- def _get_worker_for_bundle_impl(self, *args, **kwds):
- raise NotImplementedError #pragma:nocover
-
- def _get_scenarios_for_worker_impl(self, *args, **kwds):
- raise NotImplementedError #pragma:nocover
-
- def _get_bundles_for_worker_impl(self, *args, **kwds):
- raise NotImplementedError #pragma:nocover
-
-#
-# A partial implementation of the ScenarioTreeManager
-# interface that is common to both the Serial scenario
-# tree manager as well as the Pyro workers used by the
-# Pyro scenario tree manager.
-#
-
-class _ScenarioTreeManagerWorker(PySPConfiguredObject):
-
- @classmethod
- def _declare_options(cls, options=None):
- if options is None:
- options = PySPConfigBlock()
-
- safe_declare_common_option(options,
- "output_times")
- safe_declare_common_option(options,
- "verbose")
-
- return options
-
- def __init__(self, *args, **kwds):
- if self.__class__ is _ScenarioTreeManagerWorker:
- raise NotImplementedError(
- "%s is an abstract class for subclassing" % self.__class__)
- super(_ScenarioTreeManagerWorker, self).__init__(*args, **kwds)
-
- # scenario instance models
- self._instances = None
-
- # bundle instance models
- self._bundle_binding_instance_map = {}
-
- # results objects from the most recent call to
- # _process_*_solve_results, may hold more
- # information than just variable values and so can
- # be useful to hold on to until the next round of
- # solves (keys are bundle name or scenario name)
- self._solve_results = {}
-
- # set by advanced solver managers
- self.preprocessor = None
-
- #
- # Extension of the manager interface so code can handle
- # cases where multiple workers own a different portions of the
- # scenario tree.
- #
-
- @property
- def uncompressed_scenario_tree(self):
- raise NotImplementedError #pragma:nocover
-
- def _invoke_function_by_worker(self,
- function,
- module_name=None,
- invocation_type=InvocationType.Single,
- function_args=(),
- function_kwds=None):
-
- if function_kwds is None:
- function_kwds = {}
-
- if not isinstance(function, six.string_types):
- if module_name is not None:
- raise ValueError(
- "The module_name keyword must be None "
- "when the function argument is not a string.")
- else:
- if module_name is None:
- raise ValueError(
- "A module name is required when "
- "a function name is given")
- elif module_name in self.modules_imported:
- this_module = self.modules_imported[module_name]
- elif module_name in sys.modules:
- this_module = sys.modules[module_name]
- else:
- this_module = pyutilib.misc.import_file(module_name,
- clear_cache=True)
- self.modules_imported[module_name] = this_module
- self.modules_imported[this_module.__file__] = this_module
- if this_module.__file__.endswith(".pyc"):
- self.modules_imported[this_module.__file__[:-1]] = \
- this_module
-
- module_attrname = function
- subname = None
- if not hasattr(this_module, module_attrname):
- if "." in module_attrname:
- module_attrname, subname = function.split(".",1)
- if not hasattr(this_module, module_attrname):
- raise RuntimeError(
- "Function="+function+" is not present "
- "in module="+module_name)
-
- function = getattr(this_module, module_attrname)
- if subname is not None:
- function = getattr(function, subname)
-
- call_objects = None
- if invocation_type == InvocationType.Single:
- pass
- elif (invocation_type == InvocationType.PerScenario) or \
- (invocation_type == InvocationType.PerScenarioChained):
- call_objects = self._scenario_tree.scenarios
- elif (invocation_type == InvocationType.OnScenario):
- call_objects = [self._scenario_tree.get_scenario(invocation_type.data)]
- elif (invocation_type == InvocationType.OnScenarios) or \
- (invocation_type == InvocationType.OnScenariosChained):
- assert len(invocation_type.data) != 0
- call_objects = [self._scenario_tree.get_scenario(scenario_name)
- for scenario_name in invocation_type.data]
- elif (invocation_type == InvocationType.PerBundle) or \
- (invocation_type == InvocationType.PerBundleChained):
- assert self._scenario_tree.contains_bundles()
- call_objects = self._scenario_tree.bundles
- elif (invocation_type == InvocationType.OnBundle):
- assert self._scenario_tree.contains_bundles()
- call_objects = [self._scenario_tree.get_bundle(invocation_type.data)]
- elif (invocation_type == InvocationType.OnBundles) or \
- (invocation_type == InvocationType.OnBundlesChained):
- assert self._scenario_tree.contains_bundles()
- assert len(invocation_type.data) != 0
- call_objects = [self._scenario_tree.get_bundle(bundle_name)
- for bundle_name in invocation_type.data]
- else:
- raise ValueError("Unexpected function invocation type '%s'. "
- "Expected one of %s"
- % (invocation_type,
- [str(v) for v in InvocationType]))
-
- result = None
- if (invocation_type == InvocationType.Single):
-
- result = function(self,
- *function_args,
- **function_kwds)
-
- elif (invocation_type == InvocationType.OnScenario) or \
- (invocation_type == InvocationType.OnBundle):
-
- assert len(call_objects) == 1
- result = function(self,
- call_objects[0],
- *function_args,
- **function_kwds)
-
- elif (invocation_type == InvocationType.PerScenarioChained) or \
- (invocation_type == InvocationType.OnScenariosChained) or \
- (invocation_type == InvocationType.PerBundleChained) or \
- (invocation_type == InvocationType.OnBundlesChained):
-
- if len(function_args) > 0:
- result = function_args
- for call_object in call_objects:
- result = function(self,
- call_object,
- *result,
- **function_kwds)
- else:
- result = None
- for call_object in call_objects:
- result = function(self,
- call_object,
- **function_kwds)
- else:
-
- result = dict((call_object.name, function(self,
- call_object,
- *function_args,
- **function_kwds))
- for call_object in call_objects)
-
- return result
-
- # override what is already implemented
- def _init_bundle(self, bundle_name, scenario_list):
- super(_ScenarioTreeManagerWorker, self).\
- _init_bundle(bundle_name, scenario_list)
-
- if self._options.verbose:
- print("Forming binding instance for scenario bundle %s"
- % (bundle_name))
-
- start_time = time.time()
-
- assert self._scenario_tree.contains_bundle(bundle_name)
-
- assert bundle_name not in self._bundle_binding_instance_map
-
- bundle = self._scenario_tree.get_bundle(bundle_name)
-
- for scenario_name in bundle._scenario_names:
- scenario = self._scenario_tree.get_scenario(scenario_name)
- assert scenario_name in self._scenario_to_bundle_map
- assert self._scenario_to_bundle_map[scenario_name] == bundle_name
- assert scenario._instance is not None
- assert scenario._instance is self._instances[scenario_name]
- assert scenario._instance.parent_block() is None
-
- # IMPORTANT: The bundle variable IDs must be idential to
- # those in the parent scenario tree - this is
- # critical for storing results, which occurs at
- # the full-scale scenario tree.
-
- bundle._scenario_tree.linkInInstances(
- self._instances,
- create_variable_ids=False,
- master_scenario_tree=self._scenario_tree,
- initialize_solution_data=False)
-
- bundle_ef_instance = create_ef_instance(
- bundle._scenario_tree,
- ef_instance_name=bundle.name,
- verbose_output=self._options.verbose)
-
- self._bundle_binding_instance_map[bundle.name] = \
- bundle_ef_instance
-
- end_time = time.time()
- if self._options.output_times or \
- self._options.verbose:
- print("Time construct binding instance for scenario bundle "
- "%s=%.2f seconds" % (bundle_name, end_time - start_time))
-
- # override what is already implemented
- def _release_bundle(self, bundle_name):
-
- assert self._scenario_tree.contains_bundle(bundle_name)
- assert bundle_name in self._bundle_binding_instance_map
-
- bundle_ef_instance = \
- self._bundle_binding_instance_map[bundle_name]
-
- bundle = self._scenario_tree.get_bundle(bundle_name)
-
- for scenario_name in bundle._scenario_names:
- scenario = self._scenario_tree.get_scenario(scenario_name)
- bundle_ef_instance.del_component(scenario._instance)
- scenario._instance_objective.activate()
-
- del self._bundle_binding_instance_map[bundle_name]
-
- # call the base class method
- super(_ScenarioTreeManagerWorker, self).\
- _release_bundle(bundle_name)
-
- #
- # Abstract methods for ScenarioTreeManager:
- #
-
- def _close_impl(self):
- # copy the list of bundle names as the next loop will modify
- # the scenario_tree._scenario_bundles list
- if self._scenario_tree is not None:
- bundle_names = \
- [bundle.name for bundle in self._scenario_tree._scenario_bundles]
- for bundle_name in bundle_names:
- self._release_bundle(bundle_name)
- self._instances = None
- self._bundle_binding_instance_map = None
-
- def _process_bundle_solve_result(self,
- bundle_name,
- results,
- manager_results=None,
- **kwds):
-
- if manager_results is None:
- manager_results = ScenarioTreeSolveResults('bundles')
-
- bundle = self.scenario_tree.get_bundle(bundle_name)
- bundle_instance = self._bundle_binding_instance_map[bundle.name]
-
- # if the solver plugin doesn't populate the
- # user_time field, it is by default of type
- # UndefinedData - defined in pyomo.opt.results
- if hasattr(results.solver,"user_time") and \
- (not isinstance(results.solver.user_time,
- UndefinedData)) and \
- (results.solver.user_time is not None):
- # the solve time might be a string, or might
- # not be - we eventually would like more
- # consistency on this front from the solver
- # plugins.
- manager_results.solve_time[bundle_name] = \
- float(results.solver.user_time)
- elif hasattr(results.solver,"wallclock_time") and \
- (not isinstance(results.solver.wallclock_time,
- UndefinedData))and \
- (results.solver.wallclock_time is not None):
- manager_results.solve_time[bundle_name] = \
- float(results.solver.wallclock_time)
- elif hasattr(results.solver,"time"):
- solve_time = results.solver.time
- manager_results.solve_time[bundle_name] = \
- float(results.solver.time)
- else:
- manager_results.solve_time[bundle_name] = undefined
-
- if hasattr(results,"pyomo_solve_time"):
- manager_results.pyomo_solve_time[bundle_name] = \
- results.pyomo_solve_time
- else:
- manager_results.pyomo_solve_time[bundle_name] = undefined
-
- manager_results.solver_status[bundle_name] = \
- results.solver.status
- manager_results.solver_message[bundle_name] = \
- results.solver.message
- manager_results.termination_condition[bundle_name] = \
- results.solver.termination_condition
-
- if len(results.solution) > 0:
- assert len(results.solution) == 1
-
- results_sm = results._smap
- bundle_instance.solutions.load_from(results, **kwds)
- self._solve_results[bundle_name] = (results, results_sm)
-
- solution0 = results.solution(0)
- if hasattr(solution0, "gap") and \
- (solution0.gap is not None):
- manager_results.gap[bundle_name] = solution0.gap
- else:
- manager_results.gap[bundle_name] = undefined
-
- manager_results.solution_status[bundle_name] = solution0.status
-
- bundle_objective_value = 0.0
- bundle_cost_value = 0.0
- for bundle_scenario in bundle._scenario_tree._scenarios:
- scenario = self.scenario_tree.\
- get_scenario(bundle_scenario.name)
- scenario.update_solution_from_instance()
- # And we need to make sure to use the
- # probabilities assigned to scenarios in the
- # compressed bundle scenario tree
- bundle_objective_value += scenario._objective * \
- bundle_scenario.probability
- bundle_cost_value += scenario._cost * \
- bundle_scenario.probability
-
- manager_results.objective[bundle_name] = bundle_objective_value
- manager_results.cost[bundle_name] = bundle_cost_value
-
- else:
-
- manager_results.objective[bundle_name] = undefined
- manager_results.cost[bundle_name] = undefined
- manager_results.gap[bundle_name] = undefined
- manager_results.solution_status[bundle_name] = undefined
-
- return manager_results
-
- def _process_scenario_solve_result(self,
- scenario_name,
- results,
- manager_results=None,
- **kwds):
-
- if manager_results is None:
- manager_results = ScenarioTreeSolveResults('scenarios')
-
- scenario = self.scenario_tree.get_scenario(scenario_name)
- scenario_instance = scenario._instance
- if self.scenario_tree.contains_bundles():
- scenario._instance_objective.deactivate()
-
- # if the solver plugin doesn't populate the
- # user_time field, it is by default of type
- # UndefinedData - defined in pyomo.opt.results
- if hasattr(results.solver,"user_time") and \
- (not isinstance(results.solver.user_time,
- UndefinedData)) and \
- (results.solver.user_time is not None):
- # the solve time might be a string, or might
- # not be - we eventually would like more
- # consistency on this front from the solver
- # plugins.
- manager_results.solve_time[scenario_name] = \
- float(results.solver.user_time)
- elif hasattr(results.solver,"wallclock_time") and \
- (not isinstance(results.solver.wallclock_time,
- UndefinedData))and \
- (results.solver.wallclock_time is not None):
- manager_results.solve_time[scenario_name] = \
- float(results.solver.wallclock_time)
- elif hasattr(results.solver,"time"):
- manager_results.solve_time[scenario_name] = \
- float(results.solver.time)
- else:
- manager_results.solve_time[scenario_name] = undefined
-
- if hasattr(results,"pyomo_solve_time"):
- manager_results.pyomo_solve_time[scenario_name] = \
- results.pyomo_solve_time
- else:
- manager_results.pyomo_solve_time[scenario_name] = undefined
-
- manager_results.solver_status[scenario_name] = \
- results.solver.status
- manager_results.solver_message[scenario_name] = \
- results.solver.message
- manager_results.termination_condition[scenario_name] = \
- results.solver.termination_condition
-
- if len(results.solution) > 0:
- assert len(results.solution) == 1
-
- results_sm = results._smap
- scenario_instance.solutions.load_from(results, **kwds)
- self._solve_results[scenario.name] = (results, results_sm)
-
- scenario.update_solution_from_instance()
-
- solution0 = results.solution(0)
- if hasattr(solution0, "gap") and \
- (solution0.gap is not None):
- manager_results.gap[scenario_name] = solution0.gap
- else:
- manager_results.gap[scenario_name] = undefined
-
- manager_results.solution_status[scenario_name] = solution0.status
- manager_results.objective[scenario_name] = scenario._objective
- manager_results.cost[scenario_name] = scenario._cost
-
- else:
-
- manager_results.objective[scenario_name] = undefined
- manager_results.cost[scenario_name] = undefined
- manager_results.gap[scenario_name] = undefined
- manager_results.solution_status[scenario_name] = undefined
-
- return manager_results
-
- def _push_fix_queue_to_instances_impl(self):
-
- node_count = 0
- for tree_node in self._scenario_tree._tree_nodes:
-
- if len(tree_node._fix_queue):
- node_count += 1
- if self.preprocessor is not None:
- for scenario in tree_node._scenarios:
- scenario_name = scenario.name
- for variable_id, (fixed_status, new_value) in \
- iteritems(tree_node._fix_queue):
- variable_name, index = \
- tree_node._variable_ids[variable_id]
- if fixed_status == tree_node.VARIABLE_FREED:
- self.preprocessor.\
- freed_variables[scenario_name].\
- append((variable_name, index))
- elif fixed_status == tree_node.VARIABLE_FIXED:
- self.preprocessor.\
- fixed_variables[scenario_name].\
- append((variable_name, index))
-
- tree_node.push_fix_queue_to_instances()
-
- return node_count
-
-#
-# The Serial scenario tree manager class. This is a full
-# implementation of the ScenarioTreeManager, ScenarioTreeManagerClient
-# and _ScenarioTreeManagerWorker interfaces
-#
-
-class ScenarioTreeManagerClientSerial(_ScenarioTreeManagerWorker,
- ScenarioTreeManagerClient,
- PySPConfiguredObject):
-
- @classmethod
- def _declare_options(cls, options=None):
- if options is None:
- options = PySPConfigBlock()
-
- #
- # scenario instance construction
- #
- safe_declare_common_option(options,
- "output_instance_construction_time")
- safe_declare_common_option(options,
- "compile_scenario_instances")
-
- return options
-
- def __init__(self, *args, **kwds):
- self._worker_name = 'ScenarioTreeManagerClientSerial:MainWorker'
- # good to have to keep deterministic ordering in code
- # rather than loop over the keys of the map on the
- # scenario tree
- self._scenario_names = []
- self._bundle_names = []
- super(ScenarioTreeManagerClientSerial, self).__init__(*args, **kwds)
-
- # override what is implemented by _ScenarioTreeManagerWorker
- def _init_bundle(self, bundle_name, scenario_list):
- super(ScenarioTreeManagerClientSerial, self).\
- _init_bundle(bundle_name, scenario_list)
- assert bundle_name not in self._bundle_names
- self._bundle_names.append(bundle_name)
-
- # override what is implemented by _ScenarioTreeManagerWorker
- def _release_bundle(self, bundle_name):
- super(ScenarioTreeManagerClientSerial, self).\
- _release_bundle(bundle_name)
- assert bundle_name in self._bundle_names
- self._bundle_names.remove(bundle_name)
-
- @property
- def uncompressed_scenario_tree(self):
- return self._scenario_tree
-
- #
- # Abstract methods for ScenarioTreeManagerClient:
- #
-
- def _init_client(self):
- assert self._scenario_tree is not None
-
- #
- # Build scenario instances
- #
-
- build_start_time = time.time()
-
- if self._options.verbose:
- print("Constructing scenario tree instances")
-
- self._instances = \
- self._scenario_tree._scenario_instance_factory.\
- construct_instances_for_scenario_tree(
- self._scenario_tree,
- output_instance_construction_time=\
- self._options.output_instance_construction_time,
- profile_memory=self._options.profile_memory,
- compile_scenario_instances=\
- self._options.compile_scenario_instances,
- verbose=self._options.verbose)
-
- if self._options.output_times or \
- self._options.verbose:
- print("Time to construct scenario instances="
- "%.2f seconds"
- % (time.time() - build_start_time))
-
- if self._options.verbose:
- print("Linking instances into scenario tree")
-
- build_start_time = time.time()
-
- # with the scenario instances now available, link the
- # referenced objects directly into the scenario tree.
- self._scenario_tree.linkInInstances(
- self._instances,
- objective_sense=self._options.objective_sense_stage_based,
- create_variable_ids=True)
-
- self._objective_sense = \
- self.scenario_tree._scenarios[0]._objective_sense
- assert all(_s._objective_sense == self._objective_sense
- for _s in self.scenario_tree._scenarios)
-
- self._scenario_names = [_scenario.name for _scenario in
- self._scenario_tree._scenarios]
- if self._options.output_times or \
- self._options.verbose:
- print("Time link scenario tree with instances="
- "%.2f seconds" % (time.time() - build_start_time))
-
- #
- # Create bundle instances if needed
- #
- if self._scenario_tree.contains_bundles():
- start_time = time.time()
- if self._options.verbose:
- print("Construction extensive form instances for all bundles.")
-
- for bundle in self._scenario_tree._scenario_bundles:
- self._init_bundle(bundle.name, bundle._scenario_names)
-
- end_time = time.time()
- if self._options.output_times or \
- self._options.verbose:
- print("Scenario bundle construction time=%.2f seconds"
- % (end_time - start_time))
-
- if len(self._options.aggregategetter_callback_location):
- # Run the user script to collect aggregate scenario data
- for callback_module_key in self._aggregategetter_keys:
- if self._options.verbose:
- print("Executing user defined aggregategetter callback function "
- "defined in module: %s"
- % (self._callback_mapped_module_name[callback_module_key]))
- for scenario in self._scenario_tree._scenarios:
- result = self._callback_function[callback_module_key](
- self,
- scenario,
- self._aggregate_user_data)
- assert len(result) == 1
- self._aggregate_user_data.update(result[0])
-
- if len(self._options.postinit_callback_location):
- # run the user script to initialize variable bounds
- for callback_module_key in self._postinit_keys:
- if self._options.verbose:
- print("Executing user defined posinit callback function "
- "defined in module: %s"
- % (self._callback_mapped_module_name[callback_module_key]))
- for scenario in self._scenario_tree._scenarios:
- self._callback_function[callback_module_key](
- self,
- scenario)
-
- return self.AsyncResult(
- None, result={self._worker_name: True})
-
- def _invoke_function_on_worker_impl(self,
- worker_name,
- function,
- module_name=None,
- invocation_type=InvocationType.Single,
- function_args=(),
- function_kwds=None,
- async_call=False,
- oneway_call=False):
-
- assert worker_name == self._worker_name
- start_time = time.time()
-
- if self._options.verbose:
- print("Transmitting external function invocation request "
- "for function=%s in module=%s on worker=%s."
- % (str(function), module_name, worker_name))
-
- result = self._invoke_function_by_worker(function,
- module_name=module_name,
- invocation_type=invocation_type,
- function_args=function_args,
- function_kwds=function_kwds)
-
- if oneway_call:
- result = None
- if async_call:
- result = self.AsyncResult(None, result=result)
-
- end_time = time.time()
- if self._options.output_times or \
- self._options.verbose:
- print("Function invocation time=%.2f seconds"
- % (end_time - start_time))
-
- return result
-
- def _invoke_method_on_worker_impl(self,
- worker_name,
- method_name,
- method_args=(),
- method_kwds=None,
- async_call=False,
- oneway_call=False):
-
- assert worker_name == self._worker_name
- start_time = time.time()
-
- if self._options.verbose:
- print("Invoking method=%s on worker=%s"
- % (method_name, self._worker_name))
-
- if method_kwds is None:
- method_kwds = {}
- result = getattr(self, method_name)(*method_args, **method_kwds)
-
- if oneway_call:
- result = None
- if async_call:
- result = self.AsyncResult(None, result=result)
-
- end_time = time.time()
- if self._options.output_times or \
- self._options.verbose:
- print("Method invocation time=%.2f seconds"
- % (end_time - start_time))
-
- return result
-
- def _worker_names_impl(self):
- return (self._worker_name,)
-
- def _get_worker_for_scenario_impl(self, scenario_name):
- assert self._scenario_tree.contains_scenario(scenario_name)
- return self._worker_name
-
- def _get_worker_for_bundle_impl(self, bundle_name):
- assert self._scenario_tree.contains_bundle(bundle_name)
- return self._worker_name
-
- def _get_scenarios_for_worker_impl(self, worker_name):
- assert worker_name == self._worker_name
- return self._scenario_names
-
- def _get_bundles_for_worker_impl(self, worker_name):
- assert worker_name == self._worker_name
- return self._bundle_names
-
- #
- # Abstract methods for ScenarioTreeManager:
- #
-
- # implemented by _ScenarioTreeManagerWorker
- #def _close_impl(...)
-
- def _invoke_function_impl(self,
- function,
- module_name=None,
- invocation_type=InvocationType.Single,
- function_args=(),
- function_kwds=None,
- async_call=False,
- oneway_call=False):
- assert not (async_call and oneway_call)
-
- result = self._invoke_function_on_worker_impl(
- self._worker_name,
- function,
- module_name=module_name,
- invocation_type=invocation_type,
- function_args=function_args,
- function_kwds=function_kwds,
- async_call=False,
- oneway_call=oneway_call)
-
- if not oneway_call:
- if invocation_type == InvocationType.Single:
- result = {self._worker_name: result}
- if async_call:
- result = self.AsyncResult(None, result=result)
-
- return result
-
- def _invoke_method_impl(self,
- method_name,
- method_args=(),
- method_kwds=None,
- async_call=False,
- oneway_call=False):
- assert not (async_call and oneway_call)
-
- result = self._invoke_method_on_worker_impl(
- self._worker_name,
- method_name,
- method_args=method_args,
- method_kwds=method_kwds,
- async_call=False,
- oneway_call=oneway_call)
-
- if not oneway_call:
- result = {self._worker_name: result}
- if async_call:
- result = self.AsyncResult(None, result=result)
-
- return result
-
-#
-# A partial implementation of the ScenarioTreeManager and
-# ScenarioTreeManagerClient interfaces for Pyro that may serve some
-# future purpose where there is not a one-to-one mapping between
-# worker objects and scenarios / bundles in the scenario tree.
-#
-
-class _ScenarioTreeManagerClientPyroAdvanced(ScenarioTreeManagerClient,
- PySPConfiguredObject):
-
- @classmethod
- def _declare_options(cls, options=None):
- if options is None:
- options = PySPConfigBlock()
-
- safe_declare_common_option(options,
- "pyro_host")
- safe_declare_common_option(options,
- "pyro_port")
- safe_declare_common_option(options,
- "pyro_shutdown")
- safe_declare_common_option(options,
- "pyro_shutdown_workers")
-
- return options
-
- def __init__(self, *args, **kwds):
- # distributed worker information
- self._pyro_server_workers_map = {}
- self._pyro_worker_server_map = {}
- # the same as the .keys() of the above map
- # but won't suffer from stochastic iteration
- # order python dictionaries
- self._pyro_worker_list = []
- self._pyro_worker_scenarios_map = {}
- self._pyro_worker_bundles_map = {}
- self._action_manager = None
- self._transmission_paused = False
- super(_ScenarioTreeManagerClientPyroAdvanced, self).__init__(*args, **kwds)
-
- def _invoke_function_on_worker_pyro(self,
- worker_name,
- function,
- module_name=None,
- invocation_type=InvocationType.Single,
- function_args=(),
- function_kwds=None,
- oneway_call=False):
-
- return self._action_manager.queue(
- queue_name=self.get_server_for_worker(worker_name),
- worker_name=worker_name,
- action="_invoke_function_impl",
- generate_response=not oneway_call,
- args=(function,),
- kwds={'module_name': module_name,
- 'invocation_type': (invocation_type.key,
- getattr(invocation_type, 'data', None)),
- 'function_args': function_args,
- 'function_kwds': function_kwds})
-
- def _invoke_method_on_worker_pyro(
- self,
- worker_name,
- method_name,
- method_args=(),
- method_kwds=None,
- oneway_call=False):
-
- return self._action_manager.queue(
- queue_name=self.get_server_for_worker(worker_name),
- worker_name=worker_name,
- action="_invoke_method_impl",
- generate_response=not oneway_call,
- args=(method_name,),
- kwds={'method_args': method_args,
- 'method_kwds': method_kwds})
-
- #
- # Abstract methods for ScenarioTreeManagerClient:
- #
-
- def _init_client(self):
- assert self._scenario_tree is not None
- return self.AsyncResult(None, result=True)
-
- def _invoke_function_on_worker_impl(self,
- worker_name,
- function,
- module_name=None,
- invocation_type=InvocationType.Single,
- function_args=(),
- function_kwds=None,
- async_call=False,
- oneway_call=False):
- assert not (async_call and oneway_call)
- assert self._action_manager is not None
- assert worker_name in self._pyro_worker_list
- start_time = time.time()
-
- if self._options.verbose:
- print("Invoking external function=%s in module=%s "
- "on worker=%s"
- % (str(function), module_name, worker_name))
-
- if not isinstance(function, six.string_types):
- if not dill_available:
- raise ValueError(
- "The dill module must be available "
- "when transmitting function objects")
- if module_name is not None:
- raise ValueError(
- "The module_name keyword must be None "
- "when the function argument is not a string.")
- function = dill.dumps(function)
- else:
- if module_name is None:
- raise ValueError(
- "A module name is required when "
- "a function name is given")
-
- action_handle = self._invoke_function_on_worker_pyro(
- worker_name,
- function,
- module_name=module_name,
- invocation_type=invocation_type,
- function_args=function_args,
- function_kwds=function_kwds,
- oneway_call=oneway_call)
-
- if oneway_call:
- action_handle = None
-
- result = self.AsyncResult(
- self._action_manager, action_handle_data=action_handle)
-
- if not async_call:
- result = result.complete()
-
- end_time = time.time()
- if self._options.output_times or \
- self._options.verbose:
- print("External function invocation time=%.2f seconds"
- % (end_time - start_time))
-
- return result
-
- def _invoke_method_on_worker_impl(self,
- worker_name,
- method_name,
- method_args=(),
- method_kwds=None,
- async_call=False,
- oneway_call=False):
-
- assert self._action_manager is not None
- assert worker_name in self._pyro_worker_list
- start_time = time.time()
-
- if self._options.verbose:
- print("Invoking method=%s on worker=%s"
- % (method_name, worker_name))
-
- action_handle = self._invoke_method_on_worker_pyro(
- worker_name,
- method_name,
- method_args=method_args,
- method_kwds=method_kwds,
- oneway_call=oneway_call)
-
- if oneway_call:
- action_handle = None
-
- result = self.AsyncResult(
- self._action_manager, action_handle_data=action_handle)
-
- if not async_call:
- result = result.complete()
-
- end_time = time.time()
- if self._options.output_times or \
- self._options.verbose:
- print("Method invocation time=%.2f seconds"
- % (end_time - start_time))
-
- return result
-
- def _worker_names_impl(self, *args, **kwds):
- raise NotImplementedError #pragma:nocover
-
- def _get_worker_for_scenario_impl(self, *args, **kwds):
- raise NotImplementedError #pragma:nocover
-
- def _get_worker_for_bundle_impl(self, *args, **kwds):
- raise NotImplementedError #pragma:nocover
-
- def _get_scenarios_for_worker_impl(self, worker_name):
- assert worker_name in self._pyro_worker_list
- return self._pyro_worker_scenarios_map[worker_name]
-
- def _get_bundles_for_worker_impl(self, worker_name):
- assert worker_name in self._pyro_worker_list
- return self._pyro_worker_bundles_map[worker_name]
-
- #
- # Abstract methods for ScenarioTreeManager:
- #
-
- def _close_impl(self):
- if self._action_manager is not None:
- if self._error_shutdown:
- self.release_scenariotreeservers(ignore_errors=2)
- else:
- self.release_scenariotreeservers()
- if self._options.pyro_shutdown:
- print("Shutting down Pyro components.")
- shutdown_pyro_components(
- host=self._options.pyro_host,
- port=self._options.pyro_port,
- num_retries=0,
- caller_name=self.__class__.__name__)
-
- def _invoke_function_impl(self, *args, **kwds):
- raise NotImplementedError #pragma:nocover
-
- def _invoke_method_impl(self, *args, **kwds):
- raise NotImplementedError #pragma:nocover
-
- #
- # Extended interface for Pyro
- #
-
- def acquire_scenariotreeservers(self, num_servers, timeout=None):
- """Acquire a pool of scenario tree servers and initialize the
- action manager."""
-
- assert self._action_manager is None
- self._action_manager = ScenarioTreeActionManagerPyro(
- verbose=self._options.verbose,
- host=self._options.pyro_host,
- port=self._options.pyro_port)
- self._action_manager.acquire_servers(num_servers, timeout=timeout)
-
- scenario_instance_factory = \
- self._scenario_tree._scenario_instance_factory
- server_init = {}
- if scenario_instance_factory._model_filename is not None:
- server_init['model'] = \
- scenario_instance_factory._model_filename
- elif scenario_instance_factory._model_object is not None:
- # we are pickling a model!
- server_init['model'] = \
- scenario_instance_factory._model_object
- else:
- assert scenario_instance_factory._model_callback is not None
- if dill_available:
- server_init['model_callback'] = \
- dill.dumps(scenario_instance_factory._model_callback)
- else:
- raise ValueError(
- "The dill module is required in order to "
- "initialize the Pyro-based scenario tree "
- "manager using a model callback function")
-
- # check if we need to define an MPI subgroup
- if "MPIRank" in self._action_manager.server_pool[0]:
- # extract the MPI rank from the server names
- mpi_group = []
- for server_name in self._action_manager.server_pool:
- items = server_name.split('_')
- assert items[-2] == "MPIRank"
- mpi_group.append(int(items[-1]))
- server_init["mpi_group"] = mpi_group
-
- # transmit setup requests
- action_handles = []
- # temporarily remove this attribute so that the
- # scenario tree object can be pickled
- instance_factory = self._scenario_tree._scenario_instance_factory
- self._scenario_tree._scenario_instance_factory = None
- server_init['scenario_tree'] = self._scenario_tree
- server_init['data'] = instance_factory.data_directory()
- try:
- self.pause_transmit()
- for server_name in self._action_manager.server_pool:
- action_handles.append(
- self._action_manager.queue(
- queue_name=server_name,
- action="ScenarioTreeServerPyro_setup",
- options=server_init,
- generate_response=True))
- self._pyro_server_workers_map[server_name] = []
- self.unpause_transmit()
- finally:
- self._scenario_tree._scenario_instance_factory = instance_factory
- self._action_manager.wait_all(action_handles)
- for ah in action_handles:
- self._action_manager.get_results(ah)
-
- return len(self._action_manager.server_pool)
-
- def release_scenariotreeservers(self, ignore_errors=False):
- """Release the pool of scenario tree servers and destroy the
- action manager."""
-
- assert self._action_manager is not None
- if self._options.verbose:
- print("Releasing %s scenario tree servers"
- % (len(self._action_manager.server_pool)))
-
- if self._transmission_paused:
- print("Unpausing pyro transmissions in "
- "preparation for releasing manager workers")
- self.unpause_transmit()
-
- self._action_manager.ignore_task_errors = ignore_errors
-
- self.pause_transmit()
- # copy the keys since the remove_worker function is modifying
- # the dict
- action_handles = []
- for worker_name in list(self._pyro_worker_server_map.keys()):
- action_handles.append(self.remove_worker(worker_name))
- self.unpause_transmit()
- self._action_manager.wait_all(action_handles)
- for ah in action_handles:
- self._action_manager.get_results(ah)
- del action_handles
-
- generate_response = None
- action_name = None
- if self._options.pyro_shutdown_workers:
- action_name = 'ScenarioTreeServerPyro_shutdown'
- generate_response = False
- else:
- action_name = 'ScenarioTreeServerPyro_reset'
- generate_response = True
-
- # transmit reset or shutdown requests
- action_handles = []
- self.pause_transmit()
- for server_name in self._action_manager.server_pool:
- action_handles.append(self._action_manager.queue(
- queue_name=server_name,
- action=action_name,
- generate_response=generate_response))
- self.unpause_transmit()
- if generate_response:
- self._action_manager.wait_all(action_handles)
- for ah in action_handles:
- self._action_manager.get_results(ah)
- self._action_manager.close()
- self._action_manager = None
- self._pyro_server_workers_map = {}
- self._pyro_worker_server_map = {}
-
- def pause_transmit(self):
- """Pause transmission of action requests. Return whether
- transmission was already paused."""
- assert self._action_manager is not None
- self._action_manager.pause()
- was_paused = self._transmission_paused
- self._transmission_paused = True
- return was_paused
-
- def unpause_transmit(self):
- """Unpause transmission of action requests and bulk transmit
- anything queued."""
- assert self._action_manager is not None
- self._action_manager.unpause()
- self._transmission_paused = False
-
- def add_worker(self,
- worker_name,
- worker_init,
- worker_options,
- worker_registered_name,
- server_name=None,
- oneway_call=False):
-
- assert self._action_manager is not None
-
- if server_name is None:
- # Find a server that currently owns the fewest workers
- server_name = \
- min(self._action_manager.server_pool,
- key=lambda k: len(self._pyro_server_workers_map.get(k,[])))
-
- if self._options.verbose:
- print("Initializing worker with name %s on scenario tree server %s"
- % (worker_name, server_name))
-
- if isinstance(worker_options, PySPConfigBlock):
- worker_class = ScenarioTreeServerPyro.\
- get_registered_worker_type(worker_registered_name)
- try:
- worker_options = worker_class.\
- extract_user_options_to_dict(worker_options,
- sparse=True)
- except KeyError:
- raise KeyError(
- "Unable to serialize options for registered worker name %s "
- "(class=%s). The worker options did not seem to match the "
- "registered options on the worker class. Did you forget to "
- "register them? Message: %s" % (worker_registered_name,
- worker_type.__name__,
- str(sys.exc_info()[1])))
-
- if type(worker_init) is not _WorkerInit:
- raise TypeError("worker_init argument has invalid type %s. "
- "Must be of type %s" % (type(worker_init),
- _WorkerInit))
-
- action_handle = self._action_manager.queue(
- queue_name=server_name,
- action="ScenarioTreeServerPyro_initialize",
- worker_type=worker_registered_name,
- worker_name=worker_name,
- init_args=(worker_init,),
- init_kwds=worker_options,
- generate_response=not oneway_call)
-
- self._pyro_server_workers_map[server_name].append(worker_name)
- self._pyro_worker_server_map[worker_name] = server_name
- self._pyro_worker_list.append(worker_name)
-
- if worker_init.type_ == "scenarios":
- self._pyro_worker_scenarios_map[worker_name] = worker_init.names
- else:
- assert worker_init.type_ == "bundles"
- self._pyro_worker_bundles_map[worker_name] = worker_init.names
- self._pyro_worker_scenarios_map[worker_name] = []
- for bundle_name in worker_init.names:
- self._pyro_worker_scenarios_map[worker_name].\
- extend(worker_init.data[bundle_name])
-
- return action_handle
-
- def remove_worker(self, worker_name):
- assert self._action_manager is not None
- server_name = self.get_server_for_worker(worker_name)
- ah = self._action_manager.queue(
- queue_name=server_name,
- action="ScenarioTreeServerPyro_release",
- worker_name=worker_name,
- generate_response=True)
- self._pyro_server_workers_map[server_name].remove(worker_name)
- del self._pyro_worker_server_map[worker_name]
- self._pyro_worker_list.remove(worker_name)
- return ah
-
- def get_server_for_worker(self, worker_name):
- try:
- return self._pyro_worker_server_map[worker_name]
- except KeyError:
- raise KeyError(
- "Scenario tree worker with name %s does not exist on "
- "any scenario tree servers" % (worker_name))
-
-#
-# This class extends the initialization process of
-# _ScenarioTreeManagerClientPyroAdvanced so that scenario tree servers are
-# automatically acquired and assigned worker instantiations that
-# manage all scenarios / bundles (thereby completing everything
-# necessary to implement the ScenarioTreeManager and
-# ScenarioTreeManagerClient interfaces).
-#
-
-class ScenarioTreeManagerClientPyro(_ScenarioTreeManagerClientPyroAdvanced,
- PySPConfiguredObject):
-
- @classmethod
- def _declare_options(cls, options=None):
- if options is None:
- options = PySPConfigBlock()
-
- safe_declare_common_option(options,
- "pyro_required_scenariotreeservers")
- safe_declare_common_option(options,
- "pyro_find_scenariotreeservers_timeout")
- safe_declare_common_option(options,
- "pyro_handshake_at_startup")
-
- return options
-
- default_registered_worker_name = 'ScenarioTreeManagerWorkerPyro'
-
- #
- # Override the PySPConfiguredObject register_options implementation so
- # that the default behavior will be to register this classes default
- # worker type options along with the options for this class
- #
-
- @classmethod
- def register_options(cls, *args, **kwds):
- registered_worker_name = \
- kwds.pop('registered_worker_name',
- cls.default_registered_worker_name)
- options = super(ScenarioTreeManagerClientPyro, cls).\
- register_options(*args, **kwds)
- if registered_worker_name is not None:
- worker_type = ScenarioTreeServerPyro.\
- get_registered_worker_type(registered_worker_name)
- worker_type.register_options(options, **kwds)
-
- return options
-
- def __init__(self, *args, **kwds):
- self._scenario_to_worker_map = {}
- self._bundle_to_worker_map = {}
- self._registered_worker_name = \
- kwds.pop('registered_worker_name',
- self.default_registered_worker_name)
- super(ScenarioTreeManagerClientPyro, self).__init__(*args, **kwds)
-
- def _request_scenario_tree_data(self):
-
- start_time = time.time()
-
- if self.get_option("verbose"):
- print("Broadcasting requests to collect scenario tree "
- "data from workers")
-
- # maps scenario or bundle name to async object
- async_results = {}
-
- need_node_data = dict((tree_node.name, True)
- for tree_node in self._scenario_tree._tree_nodes)
- need_scenario_data = dict((scenario.name,True)
- for scenario in self._scenario_tree._scenarios)
-
- assert not self._transmission_paused
- self.pause_transmit()
- if self._scenario_tree.contains_bundles():
-
- for bundle in self._scenario_tree._scenario_bundles:
-
- object_names = {}
- object_names['nodes'] = \
- [tree_node.name
- for scenario in bundle._scenario_tree._scenarios
- for tree_node in scenario.node_list
- if need_node_data[tree_node.name]]
- object_names['scenarios'] = \
- [scenario_name \
- for scenario_name in bundle._scenario_names]
-
- async_results[bundle.name] = \
- self.invoke_method_on_worker(
- self.get_worker_for_bundle(bundle.name),
- "_collect_scenario_tree_data_for_client",
- method_args=(object_names,),
- async_call=True)
-
- for node_name in object_names['nodes']:
- need_node_data[node_name] = False
- for scenario_name in object_names['scenarios']:
- need_scenario_data[scenario_name] = False
-
- else:
-
- for scenario in self._scenario_tree._scenarios:
-
- object_names = {}
- object_names['nodes'] = \
- [tree_node.name for tree_node in scenario.node_list \
- if need_node_data[tree_node.name]]
- object_names['scenarios'] = [scenario.name]
-
- async_results[scenario.name] = \
- self.invoke_method_on_worker(
- self.get_worker_for_scenario(scenario.name),
- "_collect_scenario_tree_data_for_client",
- method_args=(object_names,),
- async_call=True)
-
- for node_name in object_names['nodes']:
- need_node_data[node_name] = False
- for scenario_name in object_names['scenarios']:
- need_scenario_data[scenario_name] = False
-
- self.unpause_transmit()
-
- assert all(not val for val in itervalues(need_node_data))
- assert all(not val for val in itervalues(need_scenario_data))
-
- return async_results
-
- def _gather_scenario_tree_data(self, async_results):
-
- start_time = time.time()
-
- have_node_data = dict((tree_node.name, False)
- for tree_node in self._scenario_tree._tree_nodes)
- have_scenario_data = dict((scenario.name, False)
- for scenario in self._scenario_tree._scenarios)
-
- if self.get_option("verbose"):
- print("Waiting for scenario tree data collection")
-
- if self._scenario_tree.contains_bundles():
-
- for bundle_name in async_results:
-
- results = async_results[bundle_name].complete()
-
- for tree_node_name, node_data in iteritems(results['nodes']):
- assert have_node_data[tree_node_name] == False
- have_node_data[tree_node_name] = True
- tree_node = self._scenario_tree.get_node(tree_node_name)
- tree_node._variable_ids.update(
- node_data['_variable_ids'])
- tree_node._standard_variable_ids.update(
- node_data['_standard_variable_ids'])
- tree_node._variable_indices.update(
- node_data['_variable_indices'])
- tree_node._integer.update(node_data['_integer'])
- tree_node._binary.update(node_data['_binary'])
- tree_node._semicontinuous.update(
- node_data['_semicontinuous'])
- # these are implied
- tree_node._derived_variable_ids = \
- set(tree_node._variable_ids) - \
- tree_node._standard_variable_ids
- tree_node._name_index_to_id = \
- dict((val,key)
- for key,val in iteritems(tree_node._variable_ids))
-
- for scenario_name, scenario_data in \
- iteritems(results['scenarios']):
- assert have_scenario_data[scenario_name] == False
- have_scenario_data[scenario_name] = True
- scenario = self._scenario_tree.get_scenario(scenario_name)
- scenario._objective_name = scenario_data['_objective_name']
- scenario._objective_sense = scenario_data['_objective_sense']
-
- if self.get_option("verbose"):
- print("Successfully loaded scenario tree data "
- "for bundle="+bundle_name)
-
- else:
-
- for scenario_name in async_results:
-
- results = async_results[scenario_name].complete()
-
- for tree_node_name, node_data in iteritems(results['nodes']):
- assert have_node_data[tree_node_name] == False
- have_node_data[tree_node_name] = True
- tree_node = self._scenario_tree.get_node(tree_node_name)
- tree_node._variable_ids.update(
- node_data['_variable_ids'])
- tree_node._standard_variable_ids.update(
- node_data['_standard_variable_ids'])
- tree_node._variable_indices.update(
- node_data['_variable_indices'])
- tree_node._integer.update(node_data['_integer'])
- tree_node._binary.update(node_data['_binary'])
- tree_node._semicontinuous.update(
- node_data['_semicontinuous'])
- # these are implied
- tree_node._derived_variable_ids = \
- set(tree_node._variable_ids) - \
- tree_node._standard_variable_ids
- tree_node._name_index_to_id = \
- dict((val,key)
- for key,val in iteritems(tree_node._variable_ids))
-
- for scenario_name, scenario_data in \
- iteritems(results['scenarios']):
- assert have_scenario_data[scenario_name] == False
- have_scenario_data[scenario_name] = True
- scenario = self._scenario_tree.get_scenario(scenario_name)
- scenario._objective_name = scenario_data['_objective_name']
- scenario._objective_sense = scenario_data['_objective_sense']
-
- if self.get_option("verbose"):
- print("Successfully loaded scenario tree data for "
- "scenario="+scenario_name)
-
- self._objective_sense = \
- self._scenario_tree._scenarios[0]._objective_sense
- assert all(_s._objective_sense == self._objective_sense
- for _s in self._scenario_tree._scenarios)
-
- assert all(itervalues(have_node_data))
- assert all(itervalues(have_scenario_data))
-
- if self.get_option("verbose"):
- print("Scenario tree instance data successfully "
- "collected")
-
- if self.get_option("output_times") or \
- self.get_option("verbose"):
- print("Scenario tree data collection time=%.2f seconds"
- % (time.time() - start_time))
-
- def _initialize_scenariotree_workers(self):
-
- start_time = time.time()
-
- if self._options.verbose:
- print("Transmitting scenario tree worker initializations")
-
- if len(self._action_manager.server_pool) == 0:
- raise RuntimeError(
- "No scenario tree server processes have been acquired!")
-
- if self._scenario_tree.contains_bundles():
- jobs = [_BundleWorkerInit(bundle.name,
- bundle.scenario_names)
- for bundle in reversed(self._scenario_tree.bundles)]
- else:
- jobs = [_ScenarioWorkerInit(scenario.name)
- for scenario in reversed(self._scenario_tree.scenarios)]
-
- assert len(self._pyro_server_workers_map) == \
- len(self._action_manager.server_pool)
- assert len(self._pyro_worker_server_map) == 0
- assert len(self._pyro_worker_list) == 0
-
- worker_type = ScenarioTreeServerPyro.\
- get_registered_worker_type(self._registered_worker_name)
- worker_options = None
- try:
- worker_options = worker_type.\
- extract_user_options_to_dict(self._options, sparse=True)
- except KeyError:
- raise KeyError(
- "Unable to extract options for registered worker name %s (class=%s). "
- "Did you forget to register the worker options into the options "
- "object passed into this class? Message: %s"
- % (self._registered_worker_name,
- worker_type.__name__,
- str(sys.exc_info()[1])))
-
- assert worker_options is not None
- worker_initializations = dict((server_name, []) for server_name
- in self._action_manager.server_pool)
- # The first loop it just to get the counts
- tmp = defaultdict(int)
- cnt = 0
- for server_name in itertools.cycle(self._action_manager.server_pool):
- if len(jobs) == cnt:
- break
- tmp[server_name] += 1
- cnt += 1
- # We do this in two loops so the scenario / bundle assignment looks
- # contiguous by names listed on the scenario tree
- assert len(tmp) == len(self._action_manager.server_pool)
- for server_name in tmp:
- assert tmp[server_name] > 0
- for _i in xrange(tmp[server_name]):
- worker_initializations[server_name].append(jobs.pop())
-
- assert not self._transmission_paused
- if not self._options.pyro_handshake_at_startup:
- self.pause_transmit()
- action_handle_data = {}
- for cntr, server_name in enumerate(worker_initializations):
-
- init_type = worker_initializations[server_name][0].type_
- assert all(init_type == _worker_init.type_ for _worker_init
- in worker_initializations[server_name])
- assert all(type(_worker_init.names) is tuple
- for _worker_init in worker_initializations[server_name])
- assert all(len(_worker_init.names) == 1
- for _worker_init in worker_initializations[server_name])
- worker_name = None
- if init_type == "bundles":
- worker_name = server_name+":Worker_BundleGroup"+str(cntr)
- worker_init = _BundleWorkerInit(
- [_worker_init.names[0] for _worker_init
- in worker_initializations[server_name]],
- dict((_worker_init.names[0],
- _worker_init.data[_worker_init.names[0]])
- for _worker_init in worker_initializations[server_name]))
- else:
- assert init_type == "scenarios"
- worker_name = server_name+":Worker_ScenarioGroup"+str(cntr)
- worker_init = _ScenarioWorkerInit(
- [_worker_init.names[0] for _worker_init
- in worker_initializations[server_name]])
-
- action_handle = self.add_worker(
- worker_name,
- worker_init,
- worker_options,
- self._registered_worker_name,
- server_name=server_name)
-
- if self._options.pyro_handshake_at_startup:
- action_handle_data[worker_name] = \
- self.AsyncResult(
- self._action_manager,
- action_handle_data=action_handle).complete()
- else:
- action_handle_data[action_handle] = worker_name
-
- if worker_init.type_ == "bundles":
- for bundle_name in worker_init.names:
- assert self._scenario_tree.contains_bundle(bundle_name)
- self._bundle_to_worker_map[bundle_name] = worker_name
- for scenario_name in worker_init.data[bundle_name]:
- assert self._scenario_tree.contains_scenario(scenario_name)
- self._scenario_to_worker_map[scenario_name] = worker_name
- else:
- assert worker_init.type_ == "scenarios"
- for scenario_name in worker_init.names:
- assert self._scenario_tree.contains_scenario(scenario_name)
- self._scenario_to_worker_map[scenario_name] = worker_name
-
- if not self._options.pyro_handshake_at_startup:
- self.unpause_transmit()
-
- end_time = time.time()
-
- if self._options.output_times or \
- self._options.verbose:
- print("Initialization transmission time=%.2f seconds"
- % (end_time - start_time))
-
- if self._options.pyro_handshake_at_startup:
- return self.AsyncResult(None, result=action_handle_data)
- else:
- return self.AsyncResult(
- self._action_manager, action_handle_data=action_handle_data)
-
- #
- # Abstract methods for ScenarioTreeManagerClient:
- #
-
- # Override the implementation on _ScenarioTreeManagerClientPyroAdvanced
- def _init_client(self):
- assert self._scenario_tree is not None
- if self._scenario_tree.contains_bundles():
- for bundle in self._scenario_tree._scenario_bundles:
- self._init_bundle(bundle.name, bundle._scenario_names)
- num_jobs = len(self._scenario_tree._scenario_bundles)
- if self._options.verbose:
- print("Bundle jobs available: %s"
- % (str(num_jobs)))
- else:
- num_jobs = len(self._scenario_tree._scenarios)
- if self._options.verbose:
- print("Scenario jobs available: %s"
- % (str(num_jobs)))
-
- servers_required = self._options.pyro_required_scenariotreeservers
- if servers_required == 0:
- servers_required = num_jobs
- elif servers_required > num_jobs:
- if servers_required > num_jobs:
- print("Value assigned to pyro_required_scenariotreeservers option (%s) "
- "is greater than the number of available jobs (%s). "
- "Limiting the number of servers to acquire to %s"
- % (servers_required, num_jobs, num_jobs))
- servers_required = num_jobs
-
- timeout = self._options.pyro_find_scenariotreeservers_timeout if \
- (self._options.pyro_required_scenariotreeservers == 0) else \
- None
-
- if self._options.verbose:
- if servers_required == 0:
- assert timeout is not None
- print("Using timeout of %s seconds to acquire up to "
- "%s servers" % (timeout, num_jobs))
- else:
- print("Waiting to acquire exactly %s servers to distribute "
- "work over %s jobs" % (servers_required, num_jobs))
-
- self.acquire_scenariotreeservers(servers_required, timeout=timeout)
-
- if self._options.verbose:
- print("Broadcasting requests to initialize workers "
- "on scenario tree servers")
-
- initialization_handle = self._initialize_scenariotree_workers()
-
- worker_names = sorted(self._pyro_worker_server_map)
-
- # run the user script to collect aggregate scenario data. This
- # can slow down initialization as syncronization across all
- # scenario tree servers is required following serial
- # execution
- unpause = False
- if len(self._options.aggregategetter_callback_location):
- assert not self._transmission_paused
- for callback_module_key, callback_name in zip(self._aggregategetter_keys,
- self._aggregategetter_names):
- if self._options.verbose:
- print("Transmitting invocation of user defined aggregategetter "
- "callback function defined in module: %s"
- % (self._callback_mapped_module_name[callback_module_key]))
-
- result = self.invoke_function(
- callback_name,
- self._callback_mapped_module_name[callback_module_key],
- invocation_type=InvocationType.PerScenarioChained,
- function_args=(self._aggregate_user_data,))
- self._aggregate_user_data = result[0]
-
- # Transmit aggregate state to scenario tree servers
- if self._options.verbose:
- print("Broadcasting final aggregate data "
- "to scenario tree servers")
-
- self.pause_transmit()
- unpause = True
- self.invoke_method(
- "assign_data",
- method_args=("_aggregate_user_data", self._aggregate_user_data,),
- oneway_call=True)
-
- # run the user script to initialize variable bounds
- if len(self._options.postinit_callback_location):
- # Note: we pause and unpause around the callback
- # transmission block to ensure they are
- # all sent in the same dispatcher call and
- # their execution order on the workers is
- # not determined by a race condition
- was_paused = self.pause_transmit()
- # we should not have already been paused unless
- # it happened a few lines above during the
- # aggregategetter execution
- assert (not was_paused) or \
- len(self._options.aggregategetter_callback_location)
- unpause = True
- for callback_module_key, callback_name in zip(self._postinit_keys,
- self._postinit_names):
- if self._options.verbose:
- print("Transmitting invocation of user defined postinit "
- "callback function defined in module: %s"
- % (self._callback_mapped_module_name[callback_module_key]))
-
- # Transmit invocation to scenario tree workers
- self.invoke_function(
- callback_name,
- self._callback_mapped_module_name[callback_module_key],
- invocation_type=InvocationType.PerScenario,
- oneway_call=True)
-
- if unpause:
- self.unpause_transmit()
-
- async_results = self._request_scenario_tree_data()
-
- self._initialized = False
- def _complete_init():
- self._gather_scenario_tree_data(async_results)
- self._initialized = True
- return None
-
- async_callback = self.AsyncResultCallback(_complete_init)
- return self.AsyncResultChain(
- results=[initialization_handle, async_callback],
- return_index=0)
-
- # implemented by _ScenarioTreeManagerClientPyroAdvanced
- #def _invoke_function_on_worker_impl(...)
-
- # implemented by _ScenarioTreeManagerClientPyroAdvanced
- #def _invoke_method_on_worker_impl(...)
-
- def _worker_names_impl(self):
- return self._pyro_worker_list
-
- def _get_worker_for_scenario_impl(self, scenario_name):
- return self._scenario_to_worker_map[scenario_name]
-
- def _get_worker_for_bundle_impl(self, bundle_name):
- return self._bundle_to_worker_map[bundle_name]
-
- #
- # Abstract Methods for ScenarioTreeManager:
- #
-
- # implemented by _ScenarioTreeManagerClientPyroAdvanced
- #def _close_impl(...)
-
- def _invoke_function_impl(
- self,
- function,
- module_name=None,
- invocation_type=InvocationType.Single,
- function_args=(),
- function_kwds=None,
- async_call=False,
- oneway_call=False):
- assert not (async_call and oneway_call)
- assert self._action_manager is not None
- start_time = time.time()
-
- if self._options.verbose:
- print("Transmitting external function invocation request "
- "for function=%s in module=%s."
- % (str(function), module_name))
-
- if not isinstance(function, six.string_types):
- if not dill_available:
- raise ValueError(
- "This dill module must be available "
- "when transmitting function objects")
- if module_name is not None:
- raise ValueError(
- "The module_name keyword must be None "
- "when the function argument is not a string.")
- function = dill.dumps(function)
- else:
- if module_name is None:
- raise ValueError(
- "A module name is required when "
- "a function name is given")
-
- if self._transmission_paused:
- if (not async_call) and (not oneway_call):
- raise ValueError(
- "Unable to perform external function invocations. "
- "Pyro transmissions are currently paused, but the "
- "function invocation is not one-way and not asynchronous."
- "This implies action handles be collected within "
- "this method. Pyro transmissions must be un-paused in order "
- "for this to take place.")
-
- action_handle_data = None
- map_result = None
- if (invocation_type == InvocationType.Single) or \
- (invocation_type == InvocationType.PerBundle) or \
- (invocation_type == InvocationType.PerScenario):
-
- was_paused = self.pause_transmit()
- action_handle_data = {}
-
- for worker_name in self._pyro_worker_list:
- action_handle_data[self._invoke_function_on_worker_pyro(
- worker_name,
- function,
- module_name=module_name,
- invocation_type=invocation_type,
- function_args=function_args,
- function_kwds=function_kwds,
- oneway_call=oneway_call)] = worker_name
-
- if invocation_type != InvocationType.Single:
- map_result = lambda ah_to_result: \
- dict((key, result[key])
- for result in itervalues(ah_to_result)
- for key in result)
-
- if not was_paused:
- self.unpause_transmit()
-
- elif (invocation_type == InvocationType.OnScenario):
-
- action_handle_data = self._invoke_function_on_worker_pyro(
- self.get_worker_for_scenario(invocation_type.data),
- function,
- module_name=module_name,
- invocation_type=invocation_type,
- function_args=function_args,
- function_kwds=function_kwds,
- oneway_call=oneway_call)
-
- elif (invocation_type == InvocationType.OnBundle):
-
- action_handle_data = self._invoke_function_on_worker_pyro(
- self.get_worker_for_bundle(invocation_type.data),
- function,
- module_name=module_name,
- invocation_type=invocation_type,
- function_args=function_args,
- function_kwds=function_kwds,
- oneway_call=oneway_call)
-
- elif (invocation_type == InvocationType.OnScenarios) or \
- (invocation_type == InvocationType.OnBundles):
-
- _get_worker_func = None
- _invocation_type = None
- if invocation_type == InvocationType.OnScenarios:
- _get_worker_func = self.get_worker_for_scenario
- _invocation_type = InvocationType.OnScenarios
- else:
- assert invocation_type == InvocationType.OnBundles
- _get_worker_func = self.get_worker_for_bundle
- _invocation_type = InvocationType.OnBundles
-
- worker_map = {}
- for object_name in invocation_type.data:
- worker_name = _get_worker_func(object_name)
- if worker_name not in worker_map:
- worker_map[worker_name] = []
- worker_map[worker_name].append(object_name)
-
- was_paused = self.pause_transmit()
- action_handle_data = {}
- for worker_name in worker_map:
- action_handle_data[self._invoke_function_on_worker_pyro(
- worker_name,
- function,
- module_name=module_name,
- invocation_type=_invocation_type(worker_map[worker_name]),
- function_args=function_args,
- function_kwds=function_kwds,
- oneway_call=oneway_call)] = worker_name
-
- map_result = lambda ah_to_result: \
- dict((key, result[key])
- for result in itervalues(ah_to_result)
- for key in result)
-
- if not was_paused:
- self.unpause_transmit()
-
- elif (invocation_type == InvocationType.PerScenarioChained) or \
- (invocation_type == InvocationType.PerBundleChained):
-
- if self._transmission_paused:
- raise ValueError("Chained invocation type %s cannot be executed "
- "when Pyro transmission is paused"
- % (invocation_type))
-
- result = function_args
- for i in xrange(len(self._pyro_worker_list) - 1):
- worker_name = self._pyro_worker_list[i]
- result = self.AsyncResult(
- self._action_manager,
- action_handle_data=self._invoke_function_on_worker_pyro(
- worker_name,
- function,
- module_name=module_name,
- invocation_type=invocation_type,
- function_args=result,
- function_kwds=function_kwds,
- oneway_call=False)).complete()
- if len(function_args) == 0:
- result = ()
-
- action_handle_data = self._invoke_function_on_worker_pyro(
- self._pyro_worker_list[-1],
- function,
- module_name=module_name,
- invocation_type=invocation_type,
- function_args=result,
- function_kwds=function_kwds,
- oneway_call=oneway_call)
-
- elif (invocation_type == InvocationType.OnScenariosChained) or \
- (invocation_type == InvocationType.OnBundlesChained):
-
- if self._transmission_paused:
- raise ValueError("Chained invocation type %s cannot be executed "
- "when Pyro transmission is paused"
- % (invocation_type))
-
- _get_worker_func = None
- _invocation_type = None
- if invocation_type == InvocationType.OnScenariosChained:
- _get_worker_func = self.get_worker_for_scenario
- _invocation_type = InvocationType.OnScenariosChained
- else:
- assert invocation_type == InvocationType.OnBundlesChained
- _get_worker_func = self.get_worker_for_bundle
- _invocation_type = InvocationType.OnBundlesChained
-
- #
- # We guarantee to execute the chained call in the same
- # order as the list of names on the invocation_type, but
- # we try to be as efficient about this as possible. E.g.,
- # if the order of the chain allows for more than one piece
- # of it to be executed on the worker in a single call, we
- # take advantage of that.
- #
- assert len(invocation_type.data) > 0
- object_names = list(reversed(invocation_type.data))
- object_names_for_worker = []
- result = function_args
- while len(object_names) > 0:
- object_names_for_worker.append(object_names.pop())
- worker_name = _get_worker_func(object_names_for_worker[-1])
- if (len(object_names) == 0) or \
- (worker_name != _get_worker_func(object_names[-1])):
- action_handle_data=self._invoke_function_on_worker_pyro(
- worker_name,
- function,
- module_name=module_name,
- invocation_type=_invocation_type(object_names_for_worker),
- function_args=result,
- function_kwds=function_kwds,
- oneway_call=False)
- if len(object_names) != 0:
- result = self.AsyncResult(
- self._action_manager,
- action_handle_data=action_handle_data).complete()
- if len(function_args) == 0:
- result = ()
- object_names_for_worker = []
-
- else:
- raise ValueError("Unexpected function invocation type '%s'. "
- "Expected one of %s"
- % (invocation_type,
- [str(v) for v in InvocationType]))
-
- if oneway_call:
- action_handle_data = None
- map_result = None
-
- result = self.AsyncResult(
- self._action_manager,
- action_handle_data=action_handle_data,
- map_result=map_result)
-
- if not async_call:
- result = result.complete()
-
- end_time = time.time()
-
- if self._options.output_times or \
- self._options.verbose:
- print("External function invocation request transmission "
- "time=%.2f seconds" % (end_time - start_time))
-
- return result
-
- def _invoke_method_impl(
- self,
- method_name,
- method_args=(),
- method_kwds=None,
- async_call=False,
- oneway_call=False):
- assert not (async_call and oneway_call)
- assert self._action_manager is not None
- start_time = time.time()
-
- if self._options.verbose:
- print("Transmitting method invocation request "
- "to scenario tree workers")
-
- if self._transmission_paused:
- if (not async_call) and (not oneway_call):
- raise ValueError(
- "Unable to perform method invocations. "
- "Pyro transmissions are currently paused, but the "
- "method invocation is not one-way and not asynchronous."
- "This implies action handles be collected within "
- "this method. Pyro transmissions must be un-paused in order "
- "for this to take place.")
-
- if method_kwds is None:
- method_kwds = {}
-
- was_paused = self.pause_transmit()
- action_handle_data = dict(
- (self._action_manager.queue(
- queue_name=self.get_server_for_worker(worker_name),
- worker_name=worker_name,
- action=method_name,
- generate_response=not oneway_call,
- args=method_args,
- kwds=method_kwds),
- worker_name) for worker_name in self._pyro_worker_list)
- if not was_paused:
- self.unpause_transmit()
-
- if oneway_call:
- action_handle_data = None
-
- result = self.AsyncResult(
- self._action_manager,
- action_handle_data=action_handle_data)
-
- if not async_call:
- result = result.complete()
-
- end_time = time.time()
-
- if self._options.output_times or \
- self._options.verbose:
- print("Method invocation request transmission "
- "time=%.2f seconds" % (end_time - start_time))
-
- return result
-
- def _process_bundle_solve_result(self,
- bundle_name,
- results,
- manager_results=None,
- **kwds):
-
- if manager_results is None:
- manager_results = ScenarioTreeSolveResults('bundles')
-
- assert len(results) == 2
- object_results, scenario_tree_results = results
-
- # update the manager_results object
- for key in object_results:
- getattr(manager_results, key)[bundle_name] = \
- object_results[key]
-
- # Convert status strings back to enums. These are
- # transmitted as strings to avoid difficult behavior
- # related to certain Pyro serializer settings
- if manager_results.solver_status[bundle_name] is not None:
- manager_results.solver_status[bundle_name] = \
- getattr(SolverStatus,
- str(manager_results.solver_status[bundle_name]))
- else:
- manager_results.solver_status[bundle_name] = undefined
- if manager_results.termination_condition[bundle_name] is not None:
- manager_results.termination_condition[bundle_name] = \
- getattr(TerminationCondition,
- str(manager_results.termination_condition[bundle_name]))
- else:
- manager_results.termination_condition[bundle_name] = undefined
- if manager_results.solution_status[bundle_name] is not None:
- manager_results.solution_status[bundle_name] = \
- getattr(SolutionStatus,
- str(manager_results.solution_status[bundle_name]))
- else:
- manager_results.solution_status[bundle_name] = undefined
-
- # update the scenario tree solution
- if scenario_tree_results is not None:
- bundle_scenarios = self.scenario_tree.\
- get_bundle(bundle_name).scenario_names
- assert len(bundle_scenarios) == len(scenario_tree_results)
- for scenario_name in bundle_scenarios:
- self.scenario_tree.get_scenario(scenario_name).\
- set_solution(scenario_tree_results[scenario_name])
-
- return manager_results
-
- def _process_scenario_solve_result(self,
- scenario_name,
- results,
- manager_results=None,
- **kwds):
- if manager_results is None:
- manager_results = ScenarioTreeSolveResults('scenarios')
-
- assert len(results) == 2
- object_results, scenario_tree_results = results
-
- # update the manager_results object
- for key in object_results:
- getattr(manager_results, key)[scenario_name] = \
- object_results[key]
-
- # Convert status strings back to enums. These are
- # transmitted as strings to avoid difficult behavior
- # related to certain Pyro serializer settings
- if manager_results.solver_status[scenario_name] is not None:
- manager_results.solver_status[scenario_name] = \
- getattr(SolverStatus,
- str(manager_results.solver_status[scenario_name]))
- else:
- manager_results.solver_status[scenario_name] = undefined
- if manager_results.termination_condition[scenario_name] is not None:
- manager_results.termination_condition[scenario_name] = \
- getattr(TerminationCondition,
- str(manager_results.termination_condition[scenario_name]))
- else:
- manager_results.termination_condition[scenario_name] = undefined
- if manager_results.solution_status[scenario_name] is not None:
- manager_results.solution_status[scenario_name] = \
- getattr(SolutionStatus,
- str(manager_results.solution_status[scenario_name]))
- else:
- manager_results.solution_status[scenario_name] = undefined
-
- # update the scenario tree solution
- if scenario_tree_results is not None:
- self.scenario_tree.get_scenario(scenario_name).\
- set_solution(scenario_tree_results)
-
- return manager_results
-
- def _push_fix_queue_to_instances_impl(self):
-
- worker_map = {}
- node_count = 0
- for stage in self.scenario_tree.stages:
-
- for tree_node in stage.nodes:
-
- if len(tree_node._fix_queue):
- node_count += 1
- for scenario in tree_node.scenarios:
- worker_name = self.get_worker_for_scenario(scenario.name)
- if worker_name not in worker_map:
- worker_map[worker_name] = {}
- if tree_node.name not in worker_map[worker_name]:
- worker_map[worker_name][tree_node.name] = tree_node._fix_queue
-
- if node_count > 0:
-
- assert not self._transmission_paused
- self.pause_transmit()
- action_handles = []
- for worker_name in worker_map:
- action_handles.append(self._invoke_method_on_worker_pyro(
- worker_name,
- "_update_fixed_variables_for_client",
- method_args=(worker_map[worker_name],),
- oneway_call=False))
- self.unpause_transmit()
- self._action_manager.wait_all(action_handles)
-
- return node_count
-
- #
- # Extended Interface for Pyro
- #
-
- def get_server_for_scenario(self, scenario_name):
- return self.get_server_for_worker(
- self.get_worker_for_scenario(scenario_name))
-
- def get_server_for_bundle(self, bundle_name):
- return self.get_server_for_worker(
- self.get_worker_for_bundle(bundle_name))
-
-def ScenarioTreeManagerFactory(options, *args, **kwds):
- type_ = options.scenario_tree_manager
- try:
- manager_type = ScenarioTreeManagerFactory.\
- registered_types[type_]
- except KeyError:
- raise ValueError("Unrecognized value for option '%s': %s.\n"
- "Must be one of: %s"
- % ("scenario_tree_manager",
- options.scenario_tree_manager,
- str(sorted(ScenarioTreeManagerFactory.\
- registered_types.keys()))))
- return manager_type(options, *args, **kwds)
-
-ScenarioTreeManagerFactory.registered_types = {}
-ScenarioTreeManagerFactory.registered_types['serial'] = \
- ScenarioTreeManagerClientSerial
-ScenarioTreeManagerFactory.registered_types['pyro'] = \
- ScenarioTreeManagerClientPyro
-
-def _register_scenario_tree_manager_options(*args, **kwds):
- if len(args) == 0:
- options = PySPConfigBlock()
- else:
- if len(args) != 1:
- raise TypeError(
- "register_options(...) takes at most 1 argument (%s given)"
- % (len(args)))
- options = args[0]
- if not isinstance(options, PySPConfigBlock):
- raise TypeError(
- "register_options(...) argument must be of type PySPConfigBlock, "
- "not %s" % (type(options).__name__))
- safe_register_common_option(options,
- "scenario_tree_manager",
- **kwds)
- ScenarioTreeManagerClientSerial.register_options(options,
- **kwds)
- ScenarioTreeManagerClientPyro.register_options(options,
- **kwds)
-
- return options
-
-ScenarioTreeManagerFactory.register_options = \
- _register_scenario_tree_manager_options
diff --git a/pyomo/pysp/scenariotree/manager_solver.py b/pyomo/pysp/scenariotree/manager_solver.py
deleted file mode 100644
index 574934cf1eb..00000000000
--- a/pyomo/pysp/scenariotree/manager_solver.py
+++ /dev/null
@@ -1,1028 +0,0 @@
-# ___________________________________________________________________________
-#
-# Pyomo: Python Optimization Modeling Objects
-# Copyright 2017 National Technology and Engineering Solutions of Sandia, LLC
-# Under the terms of Contract DE-NA0003525 with National Technology and
-# Engineering Solutions of Sandia, LLC, the U.S. Government retains certain
-# rights in this software.
-# This software is distributed under the 3-clause BSD License.
-# ___________________________________________________________________________
-
-__all__ = ("ScenarioTreeManagerSolverClientSerial",
- "ScenarioTreeManagerSolverClientPyro",
- "ScenarioTreeManagerSolverFactory")
-
-# TODO: handle pyro as the solver manager when even when the
-# pyro scenario tree manager is used
-
-import time
-import sys
-
-from pyutilib.pyro import shutdown_pyro_components
-from pyomo.opt import (SolverFactory,
- SolverStatus,
- SolutionStatus)
-from pyomo.opt.base.solvers import OptSolver
-from pyomo.opt.parallel import SolverManagerFactory
-from pyomo.pysp.util.config import (PySPConfigBlock,
- safe_declare_common_option)
-from pyomo.pysp.util.configured_object import \
- PySPConfiguredObject
-from pyomo.pysp.scenariotree.preprocessor import \
- ScenarioTreePreprocessor
-from pyomo.pysp.scenariotree.server_pyro \
- import ScenarioTreeServerPyro
-from pyomo.pysp.scenariotree.manager import \
- (ScenarioTreeManager,
- _ScenarioTreeManagerWorker,
- ScenarioTreeManagerClientSerial,
- ScenarioTreeManagerClientPyro,
- ScenarioTreeSolveResults)
-
-from six import itervalues
-
-#
-# The ScenarioTreeManagerSolver interface adds additional
-# functionality to the ScenarioTreeManager manager interface
-# relating to preprocessing and solving of scenarios and
-# bundles.
-#
-
-class PySPFailedSolveStatus(RuntimeError):
- """This exception gets raised when one or more
- subproblem solve statuses fail basic status checks when
- processing the results of solve requests by the
- ScenarioTreeManagerSolver."""
- def __init__(self, failures, *args, **kwds):
- super(PySPFailedSolveStatus, self).__init__(*args, **kwds)
- assert type(failures) in (list, tuple)
- self.failures = tuple(failures)
-
-class ScenarioTreeManagerSolver(PySPConfiguredObject):
-
- @classmethod
- def _declare_options(cls, options=None):
- if options is None:
- options = PySPConfigBlock()
-
- #
- # solve and I/O related
- #
- safe_declare_common_option(options,
- "symbolic_solver_labels")
- safe_declare_common_option(options,
- "solver_options")
- safe_declare_common_option(options,
- "solver")
- safe_declare_common_option(options,
- "solver_io")
- safe_declare_common_option(options,
- "solver_manager")
- safe_declare_common_option(options,
- "disable_warmstart")
- safe_declare_common_option(options,
- "disable_advanced_preprocessing")
- safe_declare_common_option(options,
- "output_solver_log")
- safe_declare_common_option(options,
- "keep_solver_files")
- safe_declare_common_option(options,
- "comparison_tolerance_for_fixed_variables")
-
- return options
-
- def __init__(self, manager, *args, **kwds):
- if self.__class__ is ScenarioTreeManagerSolver:
- raise NotImplementedError(
- "%s is an abstract class for subclassing" % self.__class__)
-
- super(ScenarioTreeManagerSolver, self).__init__(*args, **kwds)
- self._manager = manager
-
- def _solve_objects(self,
- object_type,
- objects,
- ephemeral_solver_options,
- disable_warmstart,
- check_status,
- async_call):
-
- assert object_type in ('bundles', 'scenarios')
-
- # queue the solves
- _async_solve_result = self._queue_object_solves(
- object_type,
- objects,
- ephemeral_solver_options,
- disable_warmstart)
-
- result = self.manager.AsyncResultCallback(
- lambda: self._process_solve_results(
- object_type,
- _async_solve_result.complete(),
- check_status))
- if not async_call:
- result = result.complete()
- return result
-
- #
- # Interface
- #
-
- def __enter__(self):
- return self
-
- def __exit__(self, *args):
- self.close()
-
- def close(self):
- """Close the scenario tree manager solver and any
- associated objects."""
- if self.get_option("verbose"):
- print("Closing "+str(self.__class__.__name__))
- self._close_impl()
-
- @property
- def manager(self):
- """Return the scenario tree manager that this object
- owns"""
- return self._manager
-
- def solve_subproblems(self,
- subproblems=None,
- **kwds):
- """Solve scenarios or bundles (if they exist).
-
- Args:
- subproblems (list): The list of subproblem names
- to solve. The default value of :const:`None`
- indicates that all subproblems should be
- solved. Note that if the scenario tree
- contains bundles, this should be a list of
- bundles names; otherwise it should be a list
- of scenario names.
- ephemeral_solver_options (dict): A dictionary of
- solver options to override any persistent
- solver options for this set of solves only.
- disable_warmstart (bool): Disable any warmstart
- functionality available for the selected
- subproblem solvers. Default is
- :const:`False`.
- check_status (bool): Verify that all subproblem
- solves successfully completed (optimal or
- feasible solutions are loaded). Default is
- :const:`True`. This option is meant to help
- users catch errors early on and should be
- set to :const:`False` in situations where
- more advanced status handling is necessary.
- async_call (bool): When set to :const:`True`, an
- async results object is returned that allows
- the solves to be completed
- asynchronously. Default is
- :const:`False`. Note that completing an
- asynchronous solve results in modification
- of the scenario tree state on this manager
- (i.e., solutions are loaded into the
- scenarios).
-
- Returns:
- A :class:`ScenarioTreeSolveResults` object storing \
- basic status information for each subproblem. If \
- the :attr:`async_call` keyword is set to :const:`True` \
- then an :class:`AsyncResult` object is returned.
-
- Examples:
- The following lines solve all subproblems
- (automatically validating all solutions are
- optimal or feasible) and then prints a summary
- of the results.
-
- >>> results = sp.solve_subproblems()
- >>> results.pprint()
-
- The following lines do the same by first
- initiating an asynchronous solve request.
-
- >>> job = sp.solve_subproblems(async_call=True)
- >>> # ... do other things ... #
- >>> results = job.complete()
- >>> results.pprint()
-
- Raises:
- :class:`PySPFailedSolveStatus` if the \
- :attr:`check_status` keyword is :const:`True` \
- and any solves fail.
- """
- ret = None
- if self.manager.scenario_tree.contains_bundles():
- ret = self.solve_bundles(bundles=subproblems,
- **kwds)
- else:
- ret = self.solve_scenarios(scenarios=subproblems,
- **kwds)
- return ret
-
- def solve_scenarios(self,
- scenarios=None,
- ephemeral_solver_options=None,
- disable_warmstart=False,
- check_status=True,
- async_call=False):
- """Solve scenarios (ignoring bundles even if they exists).
-
- Args:
- scenarios (list): The list of scenario names to
- solve. The default value of :const:`None`
- indicates that all scenarios should be
- solved.
- ephemeral_solver_options (dict): A dictionary of
- solver options to override any persistent
- solver options for this set of solves only.
- disable_warmstart (bool): Disable any warmstart
- functionality available for the selected
- subproblem solvers. Default is
- :const:`False`.
- check_status (bool): Verify that all subproblem
- solves successfully completed (optimal or
- feasible solutions are loaded). Default is
- :const:`True`. This option is meant to help
- users catch errors early on and should be
- set to :const:`False` in situations where
- more advanced status handling is necessary.
- async_call (bool): When set to :const:`True`, an
- async results object is returned that allows
- the solves to be completed
- asynchronously. Default is
- :const:`False`. Note that completing an
- asynchronous solve results in modification
- of the scenario tree state on this manager
- (i.e., solutions are loaded into the
- scenarios).
-
- Returns:
- A :class:`ScenarioTreeSolveResults` object storing \
- basic status information for each subproblem. If \
- the :attr:`async_call` keyword is set to :const:`True` \
- then an :class:`AsyncResult` object is returned.
-
- Examples:
- The following lines solve all scenarios
- (automatically validating all solutions are
- optimal or feasible) and then prints a summary
- of the results.
-
- >>> results = sp.solve_scenarios()
- >>> results.pprint()
-
- The following lines do the same by first
- initiating an asynchronous solve request.
-
- >>> job = sp.solve_scenarios(async_call=True)
- >>> # ... do other things ... #
- >>> results = job.complete()
- >>> results.pprint()
-
- Raises:
- :class:`PySPFailedSolveStatus` if the \
- :attr:`check_status` keyword is :const:`True` \
- and any solves fail.
- """
- return self._solve_objects('scenarios',
- scenarios,
- ephemeral_solver_options,
- disable_warmstart,
- check_status,
- async_call)
-
- def solve_bundles(self,
- bundles=None,
- ephemeral_solver_options=None,
- disable_warmstart=False,
- check_status=True,
- async_call=False):
- """Solve bundles (they must exists).
-
- Args:
- bundles (list): The list of bundle names to
- solve. The default value of :const:`None`
- indicates that all bundles should be
- solved.
- ephemeral_solver_options (dict): A dictionary of
- solver options to override any persistent
- solver options for this set of solves only.
- disable_warmstart (bool): Disable any warmstart
- functionality available for the selected
- subproblem solvers. Default is
- :const:`False`.
- check_status (bool): Verify that all subproblem
- solves successfully completed (optimal or
- feasible solutions are loaded). Default is
- :const:`True`. This option is meant to help
- users catch errors early on and should be
- set to :const:`False` in situations where
- more advanced status handling is necessary.
- async_call (bool): When set to :const:`True`, an
- async results object is returned that allows
- the solves to be completed
- asynchronously. Default is
- :const:`False`. Note that completing an
- asynchronous solve results in modification
- of the scenario tree state on this manager
- (i.e., solutions are loaded into the
- scenarios).
-
- Returns:
- A :class:`ScenarioTreeSolveResults` object storing \
- basic status information for each subproblem. If \
- the :attr:`async_call` keyword is set to :const:`True` \
- then an :class:`AsyncResult` object is returned.
-
- Examples:
- The following lines solve all bundles
- (automatically validating all solutions are
- optimal or feasible) and then prints a summary
- of the results.
-
- >>> results = sp.solve_bundles()
- >>> results.pprint()
-
- The following lines do the same by first
- initiating an asynchronous solve request.
-
- >>> job = sp.solve_bundles(async_call=True)
- >>> # ... do other things ... #
- >>> results = job.complete()
- >>> results.pprint()
-
- Raises:
- :class:`PySPFailedSolveStatus` if the \
- :attr:`check_status` keyword is :const:`True` \
- and any solves fail, or :class:`RuntimeError` if
- the scenario tree was not created with bundles.
- """
-
- if not self.manager.scenario_tree.contains_bundles():
- raise RuntimeError(
- "Unable to solve bundles. No bundles exist")
- return self._solve_objects('bundles',
- bundles,
- ephemeral_solver_options,
- disable_warmstart,
- check_status,
- async_call)
-
- def _process_solve_results(self,
- object_type,
- solve_results,
- check_status):
- """Process and load previously queued solve results."""
- assert object_type in ('bundles', 'scenarios')
- _process_function = self.manager._process_bundle_solve_result \
- if (object_type == 'bundles') else \
- self.manager._process_scenario_solve_result
-
- manager_results = ScenarioTreeSolveResults(object_type)
- failures = []
- for object_name in solve_results:
-
- results = solve_results[object_name]
-
- if self.get_option("verbose"):
- print("Processing results for %s=%s"
- % (object_type[:-1],
- object_name))
-
- start_load = time.time()
- #
- # This method is expected to:
- # - update the dictionaries on the manager_results object
- # (e.g., objective, gap, solution_status)
- # - update solutions on scenario tree objects
- _process_function(
- object_name,
- results,
- manager_results=manager_results,
- allow_consistent_values_for_fixed_vars=\
- not self.get_option("preprocess_fixed_variables"),
- comparison_tolerance_for_fixed_vars=\
- self.get_option("comparison_tolerance_for_fixed_variables"),
- ignore_fixed_vars=\
- self.get_option("preprocess_fixed_variables"))
-
- if check_status:
- if not (((manager_results.solution_status[object_name] ==
- SolutionStatus.optimal) or \
- (manager_results.solution_status[object_name] ==
- SolutionStatus.feasible)) and \
- ((manager_results.solver_status[object_name] == \
- SolverStatus.ok) or
- (manager_results.solver_status[object_name] == \
- SolverStatus.warning))):
- failures.append(object_name)
- if self.get_option("verbose"):
- print("Solve failed for %s=%s"
- % (object_type[:-1], object_name))
- else:
- if self.get_option("verbose"):
- print("Successfully completed solve for %s=%s"
- % (object_type[:-1], object_name))
- else:
- if self.get_option("verbose"):
- print("Solve for %s=%s has completed. "
- "Skipping status check."
- % (object_type[:-1], object_name))
-
- if self.get_option("output_times") or \
- self.get_option("verbose"):
- print("Time loading results for %s %s=%0.2f seconds"
- % (object_type[:-1],
- object_name,
- time.time() - start_load))
-
- if len(failures) > 0:
- print(" ** At least one of the %s failed to solve! ** "
- % (object_type))
- print("Reporting statues for failed %s:" % (object_type))
- manager_results.pprint_status(filter_names=lambda x: x in failures)
- raise PySPFailedSolveStatus(
- failures,
- "Solve status check failed for %s %s"
- % (len(failures), object_type))
-
- if self.get_option("verbose"):
- manager_results.pprint(
- output_times=self.get_option("output_times"))
-
- if self.get_option("output_times") or \
- self.get_option("verbose"):
- if len(failures) > 0:
- print("Skipping timing statistics due to one or more "
- "solve failures" % (object_type))
- else:
- manager_results.print_timing_summary()
-
- return manager_results
-
- #
- # Methods defined by derived class that are not
- # part of the user interface
- #
-
- def _close_impl(self, *args, **kwds):
- raise NotImplementedError #pragma:nocover
-
- def _queue_object_solves(self, *args, **kwds):
- raise NotImplementedError #pragma:nocover
-
-#
-# A partial implementation of the ScenarioTreeManagerSolver
-# interface that is common to both the Serial scenario
-# tree manager solver as well as the Pyro-based manager solver worker
-#
-
-class _ScenarioTreeManagerSolverWorker(ScenarioTreeManagerSolver,
- PySPConfiguredObject):
-
- @classmethod
- def _declare_options(cls, options=None):
- if options is None:
- options = PySPConfigBlock()
-
- # options for controlling the solver manager
- # (not the scenario tree manager)
- safe_declare_common_option(options,
- "solver_manager_pyro_host")
- safe_declare_common_option(options,
- "solver_manager_pyro_port")
- safe_declare_common_option(options,
- "solver_manager_pyro_shutdown")
-
- ScenarioTreePreprocessor._declare_options(options)
-
- return options
-
- @property
- def preprocessor(self):
- return self._preprocessor
-
- def __init__(self, *args, **kwds):
- if self.__class__ is _ScenarioTreeManagerSolverWorker:
- raise NotImplementedError(
- "%s is an abstract class for subclassing" % self.__class__)
-
- super(_ScenarioTreeManagerSolverWorker, self).__init__(*args, **kwds)
- # TODO: Does this import need to be delayed because
- # it is in a plugins subdirectory?
- from pyomo.solvers.plugins.solvers.persistent_solver import \
- PersistentSolver
-
- assert self.manager is not None
-
- # solver related objects
- self._scenario_solvers = {}
- self._bundle_solvers = {}
- self._preprocessor = None
- self._solver_manager = None
-
- # there are situations in which it is valuable to snapshot /
- # store the solutions associated with the scenario
- # instances. for example, when one wants to use a warm-start
- # from a particular iteration solve, following a modification
- # and re-solve of the problem instances in a user-defined
- # callback. the following nested dictionary is intended to
- # serve that purpose. The nesting is dependent on whether
- # bundling and or phpyro is in use
- self._cached_solutions = {}
- self._cached_scenariotree_solutions = {}
-
- #
- # initialize the preprocessor
- #
- self._preprocessor = None
- if not self.get_option("disable_advanced_preprocessing"):
- self._preprocessor = ScenarioTreePreprocessor(self._options,
- options_prefix=self._options_prefix)
- assert self._manager.preprocessor is None
- self._manager.preprocessor = self._preprocessor
-
- #
- # initialize the solver manager
- #
- self._solver_manager = SolverManagerFactory(
- self.get_option("solver_manager"),
- host=self.get_option('solver_manager_pyro_host'),
- port=self.get_option('solver_manager_pyro_port'))
- for scenario in self.manager.scenario_tree._scenarios:
- assert scenario._instance is not None
- solver = self._scenario_solvers[scenario.name] = \
- SolverFactory(self.get_option("solver"),
- solver_io=self.get_option("solver_io"))
- if isinstance(solver, PersistentSolver) and \
- self.get_option("disable_advanced_preprocessing"):
- raise ValueError("Advanced preprocessing can not be disabled "
- "when persistent solvers are used")
- if self._preprocessor is not None:
- self._preprocessor.add_scenario(scenario,
- scenario._instance,
- solver)
- for bundle in self.manager.scenario_tree._scenario_bundles:
- solver = self._bundle_solvers[bundle.name] = \
- SolverFactory(self.get_option("solver"),
- solver_io=self.get_option("solver_io"))
- if isinstance(solver, PersistentSolver) and \
- self.get_option("disable_advanced_preprocessing"):
- raise ValueError("Advanced preprocessing can not be disabled "
- "when persistent solvers are used")
- bundle_instance = \
- self.manager._bundle_binding_instance_map[bundle.name]
- if self._preprocessor is not None:
- self._preprocessor.add_bundle(bundle,
- bundle_instance,
- solver)
-
- #
- # Override some methods for ScenarioTreeManager that
- # were implemented by _ScenarioTreeManagerWorker:
- #
-
- def _close_impl(self):
- if (self._manager is not None) and \
- (self._manager.preprocessor is not None):
- assert self.preprocessor is self._manager.preprocessor
- for bundle in self.manager.scenario_tree._scenario_bundles:
- self._preprocessor.remove_bundle(bundle)
- for scenario in self.manager.scenario_tree._scenarios:
- assert scenario._instance is not None
- self._preprocessor.remove_scenario(scenario)
- self._manager.preprocessor = None
- self._preprocessor = None
- else:
- assert self._preprocessor is None
-
- if self._solver_manager is not None:
- #self._solver_manager.deactivate()
- self._solver_manager = None
- if self.get_option("solver_manager_pyro_shutdown"):
- print("Shutting down Pyro components for solver manager.")
- shutdown_pyro_components(
- host=self.get_option("solver_manager_pyro_host"),
- port=self.get_option("solver_manager_pyro_port"),
- num_retries=0,
- caller_name=self.__class__.__name__)
- #for solver in self._scenario_solvers.values():
- # solver.deactivate()
- self._scenario_solvers = {}
- #for solver in self._bundle_solvers.values():
- # solver.deactivate()
- self._bundle_solvers = {}
- self._preprocessor = None
- self._objective_sense = None
-
- #
- # Abstract methods for ScenarioTreeManagerSolver:
- #
-
- def _queue_object_solves(self,
- object_type,
- objects,
- ephemeral_solver_options,
- disable_warmstart):
-
- if self.get_option("verbose"):
- print("Queuing %s solves" % (object_type[:-1]))
-
- assert object_type in ('bundles', 'scenarios')
-
- solver_dict = None
- instance_dict = None
- modify_kwds_func = None
- if object_type == 'bundles':
- if objects is None:
- objects = self.manager.scenario_tree._scenario_bundle_map
- solver_dict = self._bundle_solvers
- instance_dict = self.manager._bundle_binding_instance_map
- for bundle_name in objects:
- for scenario_name in self.manager.scenario_tree.\
- get_bundle(bundle_name).\
- scenario_names:
- self.manager.scenario_tree.get_scenario(scenario_name).\
- _instance_objective.deactivate()
- if self.preprocessor is not None:
- self.preprocessor.preprocess_bundles(bundles=objects)
- modify_kwds_func = self.preprocessor.modify_bundle_solver_keywords
- else:
- if objects is None:
- objects = self.manager.scenario_tree._scenario_map
- solver_dict = self._scenario_solvers
- instance_dict = self.manager._instances
- if self.manager.scenario_tree.contains_bundles():
- for scenario_name in objects:
- self.manager.scenario_tree.get_scenario(scenario_name).\
- _instance_objective.activate()
- if self.preprocessor is not None:
- self.preprocessor.preprocess_scenarios(scenarios=objects)
- modify_kwds_func = self.preprocessor.modify_scenario_solver_keywords
- assert solver_dict is not None
- assert instance_dict is not None
-
- # setup common solve keywords
- common_kwds = {}
- common_kwds['tee'] = self.get_option("output_solver_log")
- common_kwds['keepfiles'] = self.get_option("keep_solver_files")
- common_kwds['symbolic_solver_labels'] = \
- self.get_option("symbolic_solver_labels")
- # we always manually load solutions, so we can
- # control error reporting and such
- common_kwds['load_solutions'] = False
-
- # Load solver options
- solver_options = {}
- if type(self.get_option("solver_options")) is tuple:
- solver_options.update(
- OptSolver._options_string_to_dict(
- "".join(self.get_option("solver_options"))))
- else:
- solver_options.update(self.get_option("solver_options"))
- common_kwds['options'] = solver_options
-
- #
- # override "persistent" values that are included from this
- # classes registered options
- #
- if ephemeral_solver_options is not None:
- common_kwds['options'].update(ephemeral_solver_options)
-
- # maps action handles to subproblem names
- action_handle_data = {}
- for object_name in objects:
-
- if modify_kwds_func is not None:
- # be sure to modify a copy of the kwds
- solve_kwds = modify_kwds_func(object_name, dict(common_kwds))
- else:
- solve_kwds = common_kwds
- opt = solver_dict[object_name]
- instance = instance_dict[object_name]
- if (not self.get_option("disable_warmstart")) and \
- (not disable_warmstart) and \
- opt.warm_start_capable():
- new_action_handle = \
- self._solver_manager.queue(instance,
- opt=opt,
- warmstart=True,
- **solve_kwds)
- else:
- new_action_handle = \
- self._solver_manager.queue(instance,
- opt=opt,
- **solve_kwds)
-
- action_handle_data[new_action_handle] = object_name
-
- return self.manager.AsyncResult(
- self._solver_manager,
- action_handle_data=action_handle_data)
-
-class ScenarioTreeManagerSolverClientSerial(
- _ScenarioTreeManagerSolverWorker,
- ScenarioTreeManagerSolver,
- PySPConfiguredObject):
-
- @classmethod
- def _declare_options(cls, options=None):
- if options is None:
- options = PySPConfigBlock()
- return options
-
- def __init__(self, *args, **kwds):
- super(ScenarioTreeManagerSolverClientSerial, self).\
- __init__(*args, **kwds)
-
- #
- # Override some methods for ScenarioTreeManager that
- # were implemented by _ScenarioTreeManagerWorkerSolver:
- #
-
- def _close_impl(self):
- super(ScenarioTreeManagerSolverClientSerial, self)._close_impl()
-
- #
- # Abstract methods for ScenarioTreeManagerSolver:
- #
-
- # implemented by _ScenarioTreeManagerSolverWorker
- #def _queue_object_solves(...)
-
-class ScenarioTreeManagerSolverClientPyro(ScenarioTreeManagerSolver,
- PySPConfiguredObject):
-
- @classmethod
- def _declare_options(cls, options=None):
- if options is None:
- options = PySPConfigBlock()
- return options
-
- default_registered_worker_name = 'ScenarioTreeManagerSolverWorkerPyro'
-
- #
- # Override the PySPConfiguredObject register_options implementation so
- # that the default behavior will be to register this classes default
- # worker type options along with the options for this class
- #
-
- @classmethod
- def register_options(cls, *args, **kwds):
- registered_worker_name = \
- kwds.pop('registered_worker_name',
- cls.default_registered_worker_name)
- options = super(ScenarioTreeManagerSolverClientPyro, cls).\
- register_options(*args, **kwds)
- if registered_worker_name is not None:
- worker_type = ScenarioTreeServerPyro.\
- get_registered_worker_type(registered_worker_name)
- worker_type.register_options(options, **kwds)
-
- return options
-
- def __init__(self, manager, *args, **kwds):
- worker_registered_name = \
- kwds.pop('registered_worker_name',
- self.default_registered_worker_name)
- super(ScenarioTreeManagerSolverClientPyro, self).\
- __init__(manager, *args, **kwds)
-
- assert self.manager is not None
- assert self.manager._action_manager is not None
- self._pyro_worker_map = {}
- self._pyro_base_worker_map = {}
-
- worker_class = ScenarioTreeServerPyro.\
- get_registered_worker_type(
- self.default_registered_worker_name)
- try:
- worker_options = worker_class.\
- extract_user_options_to_dict(
- self._options,
- source_options_prefix=self._options_prefix,
- sparse=True)
- except KeyError:
- raise KeyError(
- "Unable to serialize options for registered worker "
- "name %s (class=%s). The worker options did not "
- "seem to match the registered options on the worker "
- "class. Did you forget to register them? Message: %s"
- % (worker_registered_name,
- worker_class.__name__,
- str(sys.exc_info()[1])))
-
- assert not self.manager._transmission_paused
- if not self.manager.get_option("pyro_handshake_at_startup"):
- self.manager.pause_transmit()
- action_handle_data = {}
- for base_worker_name in self.manager.worker_names:
- server_name = \
- self.manager.get_server_for_worker(base_worker_name)
-
- worker_name = base_worker_name+"_solver"
- if self.manager.get_option("verbose"):
- print("Initializing worker with name %s on "
- "scenario tree server %s"
- % (worker_name, server_name))
-
- action_handle = self.manager._action_manager.queue(
- queue_name=server_name,
- action="ScenarioTreeServerPyro_initialize",
- worker_type=worker_registered_name,
- worker_name=worker_name,
- init_args=(base_worker_name,),
- init_kwds=worker_options,
- generate_response=True)
-
- if self.manager.get_option("pyro_handshake_at_startup"):
- action_handle_data[worker_name] = \
- self.manager.AsyncResult(
- self.manager._action_manager,
- action_handle_data=action_handle).complete()
- else:
- action_handle_data[action_handle] = worker_name
-
- self._pyro_worker_map[base_worker_name] = worker_name
- self._pyro_base_worker_map[worker_name] = base_worker_name
-
- if not self.manager.get_option("pyro_handshake_at_startup"):
- self.manager.unpause_transmit()
-
- if self.manager.get_option("pyro_handshake_at_startup"):
- result = self.manager.AsyncResult(
- None,
- result=action_handle_data)
- else:
- result = self.manager.AsyncResult(
- self.manager._action_manager,
- action_handle_data=action_handle_data)
- result.complete()
-
- #
- # Abstract methods for ScenarioTreeManagerSolver:
- #
-
- def _close_impl(self):
- # release the workers created by this manager solver
- if len(self._pyro_worker_map):
- assert len(self._pyro_worker_map) == \
- len(self._pyro_base_worker_map)
- if self.manager._transmission_paused:
- print("Unpausing pyro transmissions in "
- "preparation for releasing solver workers")
- self.manager.unpause_transmit()
- self.manager.pause_transmit()
- action_handles = []
- for base_worker_name in self._pyro_worker_map:
- worker_name = self._pyro_worker_map[base_worker_name]
- server_name = self.manager.\
- get_server_for_worker(base_worker_name)
- action_handles.append(
- self.manager._action_manager.queue(
- queue_name=server_name,
- action="ScenarioTreeServerPyro_release",
- worker_name=worker_name,
- generate_response=True))
- self.manager.unpause_transmit()
- self.manager._action_manager.wait_all(action_handles)
- for ah in action_handles:
- self.manager._action_manager.get_results(ah)
- self._pyro_worker_map = {}
- self._pyro_base_worker_map = {}
-
- def _queue_object_solves(self,
- object_type,
- objects,
- ephemeral_solver_options,
- disable_warmstart):
-
- assert object_type in ('bundles', 'scenarios')
-
- if self.get_option("verbose"):
- print("Transmitting solve requests for %s" % (object_type))
-
- worker_names = None
- worker_map = {}
- if objects is not None:
- if object_type == 'bundles':
- _get_worker_func = self.manager.get_worker_for_bundle
- else:
- assert object_type == 'scenarios'
- _get_worker_func = self.manager.get_worker_for_scenario
- for object_name in objects:
- worker_name = _get_worker_func(object_name)
- if worker_name not in worker_map:
- worker_map[worker_name] = []
- worker_map[worker_name].append(object_name)
- worker_names = worker_map
- else:
- worker_names = self.manager._pyro_worker_list
-
- was_paused = self.manager.pause_transmit()
- action_handle_data = {}
- for base_worker_name in worker_names:
- method_args=(object_type,
- worker_map.get(base_worker_name, None),
- ephemeral_solver_options,
- disable_warmstart)
- worker_name = self._pyro_worker_map[base_worker_name]
- server_name = \
- self.manager.get_server_for_worker(base_worker_name)
- action_handle_data[self.manager._action_manager.queue(
- queue_name=server_name,
- worker_name=worker_name,
- action="_solve_objects_for_client",
- args=method_args,
- kwds={},
- generate_response=True)] = worker_name
- if not was_paused:
- self.manager.unpause_transmit()
-
- return self.manager.AsyncResult(
- self.manager._action_manager,
- action_handle_data=action_handle_data,
- map_result=(lambda ah_to_result: \
- dict((key, result[key])
- for result in itervalues(ah_to_result)
- for key in result)))
-
-def ScenarioTreeManagerSolverFactory(sp, *args, **kwds):
- """Return a scenario tree manager solver appropriate for
- the provided argument.
-
- Args:
- sp: a serial or pyro client scenario tree manager
- *args: A single additional argument can be provided
- that is a block of registered options used to
- initialize the returned manager solver. The
- block of options can be created by calling
- :attr:`ScenarioTreeManagerSolverFactory.register_options`.
- **kwds: Additional keywords are passed to the
- manager solver that is created.
-
- Returns: A :class:`ScenarioTreeManagerSolver` object.
-
- Example:
- The preferred way to use a ScenarioTreeManagerSolver
- object is through a :const:`with` block as it
- modifies the state of the underlying scenario tree
- manager. If used outside a :const:`with` block, the
- manager solver should be shutdown by calling the
- :attr:`close` method.
-
- >>> with ScenarioTreeManagerSolverFactory(sp) as manager:
- >>> results = manager.solve_subproblems()
- >>> results.pprint()
-
- Note that asynchronous solves should be completed
- before the manager solver is closed; otherwise the
- results are undefined.
-
- >>> with ScenarioTreeManagerSolverFactory(sp) as manager:
- >>> job = manager.solve_subproblems(async_call=True)
- >>> reuslts = job.complete()
- >>> results.pprint()
- """
- if isinstance(sp, ScenarioTreeManagerClientSerial):
- manager_class = ScenarioTreeManagerSolverClientSerial
- elif isinstance(sp, ScenarioTreeManagerClientPyro):
- manager_class = ScenarioTreeManagerSolverClientPyro
- else:
- raise ValueError("Unrecognized type for first argument: %s "
- % (type(sp)))
- if len(args) == 0:
- options = manager_class.register_options()
- elif len(args) == 1:
- options = args[0]
- else:
- raise ValueError("At most 2 arguments allowed "
- "for function call")
- return manager_class(sp, options, **kwds)
-
-def _register_scenario_tree_manager_solver_options(*args, **kwds):
- if len(args) == 0:
- options = PySPConfigBlock()
- else:
- if len(args) != 1:
- raise TypeError(
- "register_options(...) takes at most 1 argument (%s given)"
- % (len(args)))
- options = args[0]
- if not isinstance(options, PySPConfigBlock):
- raise TypeError(
- "register_options(...) argument must be of type PySPConfigBlock, "
- "not %s" % (type(options).__name__))
-
- ScenarioTreeManagerSolverClientSerial.register_options(options,
- **kwds)
- ScenarioTreeManagerSolverClientPyro.register_options(options,
- **kwds)
-
- return options
-
-ScenarioTreeManagerSolverFactory.register_options = \
- _register_scenario_tree_manager_solver_options
diff --git a/pyomo/pysp/scenariotree/manager_solver_worker_pyro.py b/pyomo/pysp/scenariotree/manager_solver_worker_pyro.py
deleted file mode 100644
index 0ab810926df..00000000000
--- a/pyomo/pysp/scenariotree/manager_solver_worker_pyro.py
+++ /dev/null
@@ -1,159 +0,0 @@
-# ___________________________________________________________________________
-#
-# Pyomo: Python Optimization Modeling Objects
-# Copyright 2017 National Technology and Engineering Solutions of Sandia, LLC
-# Under the terms of Contract DE-NA0003525 with National Technology and
-# Engineering Solutions of Sandia, LLC, the U.S. Government retains certain
-# rights in this software.
-# This software is distributed under the 3-clause BSD License.
-# ___________________________________________________________________________
-
-__all__ = ("ScenarioTreeManagerSolverWorkerPyro",)
-
-from pyomo.opt import undefined
-from pyomo.pysp.util.configured_object import PySPConfiguredObject
-from pyomo.pysp.util.config import PySPConfigBlock
-from pyomo.pysp.scenariotree.manager_worker_pyro import \
- ScenarioTreeManagerWorkerPyro
-from pyomo.pysp.scenariotree.manager_solver import \
- (_ScenarioTreeManagerSolverWorker,
- ScenarioTreeManagerSolver)
-
-from six import iteritems
-
-#
-# A full implementation of the ScenarioTreeManagerSolver and
-# ScenarioTreeManager interfaces designed to be used by Pyro-based
-# client-side ScenarioTreeManagerSolver implementations.
-#
-
-class ScenarioTreeManagerSolverWorkerPyro(_ScenarioTreeManagerSolverWorker,
- ScenarioTreeManagerSolver,
- PySPConfiguredObject):
-
- @classmethod
- def _declare_options(cls, options=None):
- if options is None:
- options = PySPConfigBlock()
- return options
-
- def __init__(self,
- server,
- worker_name,
- base_worker_name,
- *args,
- **kwds):
- assert len(args) == 0
- options = self.register_options()
- for name, val in iteritems(kwds):
- options.get(name).set_value(val)
- self._server = server
- self._worker_name = worker_name
- manager = self._server._worker_map[base_worker_name]
- super(ScenarioTreeManagerSolverWorkerPyro, self).\
- __init__(manager, options)
-
- #
- # Abstract methods for ScenarioTreeManager:
- #
-
- def _solve_objects_for_client(self,
- object_type,
- objects,
- ephemeral_solver_options,
- disable_warmstart):
-
- if self.get_option("verbose"):
- print("Received request to queue solves for %s" % (object_type))
-
- # suppress any verbose output within _solve_objects
- # as it will be repeated by the client
- self_verbose = self.get_option("verbose")
- self_output_times = self.get_option("output_times")
- setattr(self._options,
- self.get_full_option_name("verbose"),
- False)
- setattr(self._options,
- self.get_full_option_name("output_times"),
- False)
- manager_results = super(ScenarioTreeManagerSolverWorkerPyro, self).\
- _solve_objects(object_type,
- objects,
- ephemeral_solver_options,
- disable_warmstart,
- False, # check_status
- False) # async
- setattr(self._options,
- self.get_full_option_name("verbose"),
- self_verbose)
- setattr(self._options,
- self.get_full_option_name("output_times"),
- self_output_times)
-
- if object_type == 'bundles':
- if objects is None:
- objects = self.manager.scenario_tree._scenario_bundle_map
- else:
- assert object_type == 'scenarios'
- if objects is None:
- objects = self.manager.scenario_tree._scenario_map
-
- results = {}
- for object_name in objects:
-
- manager_object_results = \
- manager_results.results_for(object_name)
-
- scenario_tree_results = None
- if manager_object_results['solution_status'] != undefined:
- if object_type == 'bundles':
- scenario_tree_results = {}
- for scenario_name in self.manager.scenario_tree.\
- get_bundle(object_name).scenario_names:
- scenario_tree_results[scenario_name] = \
- self.manager.scenario_tree.\
- get_scenario(scenario_name).copy_solution()
- else:
- assert object_type == 'scenarios'
- scenario_tree_results = \
- self.manager.scenario_tree.\
- get_scenario(object_name).copy_solution()
-
- # Convert enums to strings to avoid difficult
- # behavior related to certain Pyro serializer
- # settings
- if manager_object_results['solver_status'] != undefined:
- manager_object_results['solver_status'] = \
- str(manager_object_results['solver_status'])
- else:
- manager_object_results['solver_status'] = None
- if manager_object_results['termination_condition'] != undefined:
- manager_object_results['termination_condition'] = \
- str(manager_object_results['termination_condition'])
- else:
- manager_object_results['termination_condition'] = None
- if manager_object_results['solution_status'] != undefined:
- manager_object_results['solution_status'] = \
- str(manager_object_results['solution_status'])
- else:
- manager_object_results['solution_status'] = None
-
- results[object_name] = (manager_object_results, scenario_tree_results)
-
- return results
-
- def _update_fixed_variables_for_client(self, fixed_variables):
-
- print("Received request to update fixed statuses on "
- "scenario tree nodes")
-
- for node_name, node_fixed_vars in iteritems(fixed_variables):
- tree_node = self._scenario_tree.get_node(node_name)
- tree_node._fix_queue.update(node_fixed_vars)
-
- self.push_fix_queue_to_instances()
-
-# register this worker with the pyro server
-from pyomo.pysp.scenariotree.server_pyro import RegisterWorker
-RegisterWorker('ScenarioTreeManagerSolverWorkerPyro',
- ScenarioTreeManagerSolverWorkerPyro)
diff --git a/pyomo/pysp/scenariotree/manager_worker_pyro.py b/pyomo/pysp/scenariotree/manager_worker_pyro.py
deleted file mode 100644
index 9481ea8509f..00000000000
--- a/pyomo/pysp/scenariotree/manager_worker_pyro.py
+++ /dev/null
@@ -1,420 +0,0 @@
-# ___________________________________________________________________________
-#
-# Pyomo: Python Optimization Modeling Objects
-# Copyright 2017 National Technology and Engineering Solutions of Sandia, LLC
-# Under the terms of Contract DE-NA0003525 with National Technology and
-# Engineering Solutions of Sandia, LLC, the U.S. Government retains certain
-# rights in this software.
-# This software is distributed under the 3-clause BSD License.
-# ___________________________________________________________________________
-
-__all__ = ("ScenarioTreeManagerWorkerPyro",)
-
-import time
-
-from pyomo.common.dependencies import dill, dill_available
-from pyomo.pysp.util.configured_object import PySPConfiguredObject
-from pyomo.pysp.util.config import (PySPConfigBlock,
- safe_declare_common_option)
-from pyomo.pysp.scenariotree.manager \
- import (_ScenarioTreeManagerWorker,
- ScenarioTreeManager,
- InvocationType)
-
-import six
-from six import iteritems, string_types
-
-#
-# A full implementation of the ScenarioTreeManager interface
-# designed to be used by Pyro-based ScenarioTreeManagerClient
-# implementations.
-#
-
-class ScenarioTreeManagerWorkerPyro(_ScenarioTreeManagerWorker,
- ScenarioTreeManager,
- PySPConfiguredObject):
-
- @classmethod
- def _declare_options(cls, options=None):
- if options is None:
- options = PySPConfigBlock()
-
- #
- # scenario instance construction
- #
- safe_declare_common_option(options,
- "objective_sense_stage_based")
- safe_declare_common_option(options,
- "output_instance_construction_time")
- safe_declare_common_option(options,
- "compile_scenario_instances")
-
- #
- # various
- #
- safe_declare_common_option(options,
- "verbose")
- safe_declare_common_option(options,
- "profile_memory")
-
- return options
-
- @property
- def server(self):
- return self._server
-
- @property
- def modules_imported(self):
- assert self._server is not None
- return self._server._modules_imported
-
- @property
- def uncompressed_scenario_tree(self):
- assert self._server is not None
- return self._server._full_scenario_tree
-
- @property
- def MPI(self):
- assert self._server is not None
- return self._server.MPI
-
- def __init__(self,
- server,
- worker_name,
- init_args,
- *args,
- **kwds):
- assert len(args) == 0
- options = self.register_options()
- for name, val in iteritems(kwds):
- options.get(name).set_value(val)
- super(ScenarioTreeManagerWorkerPyro, self).__init__(options)
-
- # The name of the scenario tree server owning this worker
- self._server = server
- # The name of this worker on this server
- self._worker_name = worker_name
- self.mpi_comm_tree = {}
- self.initialize(*init_args)
-
- def _collect_scenario_tree_data_for_client(self, tree_object_names):
-
- data = {}
- node_data = data['nodes'] = {}
- for node_name in tree_object_names['nodes']:
- tree_node = self._scenario_tree.get_node(node_name)
- this_node_data = node_data[node_name] = {}
- this_node_data['_variable_ids'] = tree_node._variable_ids
- this_node_data['_standard_variable_ids'] = \
- tree_node._standard_variable_ids
- this_node_data['_variable_indices'] = tree_node._variable_indices
- this_node_data['_integer'] = tuple(tree_node._integer)
- this_node_data['_binary'] = tuple(tree_node._binary)
- this_node_data['_semicontinuous'] = \
- tuple(tree_node._semicontinuous)
- # master will need to reconstruct
- # _derived_variable_ids
- # _name_index_to_id
-
- scenario_data = data['scenarios'] = {}
- for scenario_name in tree_object_names['scenarios']:
- scenario = self._scenario_tree.get_scenario(scenario_name)
- this_scenario_data = scenario_data[scenario_name] = {}
- this_scenario_data['_objective_name'] = scenario._objective_name
- this_scenario_data['_objective_sense'] = \
- scenario._objective_sense
-
- return data
-
- def _update_fixed_variables_for_client(self, fixed_variables):
-
- if self.get_option("verbose"):
- print("Received request to update fixed statuses on "
- "scenario tree nodes")
-
- for node_name, node_fixed_vars in iteritems(fixed_variables):
- tree_node = self._scenario_tree.get_node(node_name)
- tree_node._fix_queue.update(node_fixed_vars)
-
- self.push_fix_queue_to_instances()
-
- #
- # Abstract methods for ScenarioTreeManager:
- #
-
- def _init(self,
- init_type,
- init_names,
- init_data):
- # check to make sure no base class has implemented _init
- try:
- super(ScenarioTreeManagerWorkerPyro, self)._init()
- except NotImplementedError:
- pass
- else:
- assert False, "developer error"
-
- scenarios_to_construct = []
- if init_type == "scenarios":
- assert type(init_names) in (list, tuple)
- assert len(init_names) > 0
- assert init_data is None
-
- if self.get_option("verbose"):
- print("Initializing worker with name %s for scenarios: %s"
- % (self._worker_name, str(init_names)))
-
- scenarios_to_construct.extend(init_names)
-
- elif init_type == "bundles":
- assert type(init_names) in (list, tuple)
- assert type(init_data) is dict
- assert len(init_names) > 0
- assert len(init_names) == len(init_data)
-
- if self.get_option("verbose"):
- print("Initializing worker with name %s for bundle list:"
- % (self._worker_name))
- for bundle_name in init_names:
- assert type(init_data[bundle_name]) in (list, tuple)
- print(" - %s: %s" % (bundle_name, init_data[bundle_name]))
-
- for bundle_name in init_names:
- assert type(init_data[bundle_name]) in (list, tuple)
- scenarios_to_construct.extend(init_data[bundle_name])
- else:
- raise ValueError("Invalid worker init type: %s" % (init_type))
-
- # compress the scenario tree to reflect those instances for
- # which this ph solver server is responsible for constructing.
- self._scenario_tree = \
- self.uncompressed_scenario_tree.make_compressed(
- scenarios_to_construct,
- normalize=False)
- self._instances = \
- self.uncompressed_scenario_tree._scenario_instance_factory.\
- construct_instances_for_scenario_tree(
- self._scenario_tree,
- output_instance_construction_time=\
- self.get_option("output_instance_construction_time"),
- profile_memory=self.get_option("profile_memory"),
- compile_scenario_instances=self.get_option("compile_scenario_instances"))
-
- # with the scenario instances now available, have the scenario
- # tree compute the variable match indices at each node.
- self._scenario_tree.linkInInstances(
- self._instances,
- objective_sense=self.get_option("objective_sense_stage_based"),
- create_variable_ids=True)
-
- self._objective_sense = \
- self._scenario_tree._scenarios[0]._objective_sense
- assert all(_s._objective_sense == self._objective_sense
- for _s in self._scenario_tree._scenarios)
-
- #
- # Create bundle if needed
- #
- if init_type == "bundles":
- for bundle_name in init_names:
- assert not self._scenario_tree.contains_bundle(bundle_name)
- self._scenario_tree.add_bundle(bundle_name,
- init_data[bundle_name])
- self._init_bundle(bundle_name,
- init_data[bundle_name])
- assert self._scenario_tree.contains_bundle(bundle_name)
-
- # now generate the process communicators
- root_comm = self.server.mpi_comm_workers
- if self.MPI is None:
- assert root_comm is None
- else:
- assert root_comm is not None
- root_node = self._scenario_tree.findRootNode()
- self.mpi_comm_tree[root_node.name] = root_comm.Dup()
- # loop over all nodes except the root and leaf
- # nodes and create a communicator between all
- # processes that reference a node
- for stage in self.uncompressed_scenario_tree.stages[1:-1]:
- for node in stage.nodes:
- if self._scenario_tree.contains_node(node.name):
- self.mpi_comm_tree[node.name] = \
- self.mpi_comm_tree[node.parent.name].\
- Split(0)
- elif node.parent.name in self.mpi_comm_tree:
- self.mpi_comm_tree[node.parent.name].\
- Split(self.MPI.UNDEFINED)
-
- # Override the implementation on _ScenarioTreeManagerWorker
- def _close_impl(self):
- super(ScenarioTreeManagerWorkerPyro, self)._close_impl()
- self._options.check_usage(error=False)
- for comm in self.mpi_comm_tree.values():
- comm.Free()
-
- def _invoke_function_impl(self,
- function,
- module_name=None,
- invocation_type=InvocationType.Single,
- function_args=(),
- function_kwds=None):
-
- start_time = time.time()
-
- if self.get_option("verbose"):
- if module_name is not None:
- print("Received request to invoke function=%s "
- "in module=%s" % (str(function), str(module_name)))
- else:
- print("Received request to invoke anonymous "
- "function serialized using the dill module")
-
- # InvocationType is transmitted as (key, data) to
- # avoid issues with Pyro, so this function accepts a
- # tuple and converts back to InvocationType
- if type(invocation_type) is tuple:
- _invocation_type_key, _invocation_type_data = invocation_type
- assert isinstance(_invocation_type_key, string_types)
- invocation_type = getattr(InvocationType,
- _invocation_type_key)
- if _invocation_type_data is not None:
- invocation_type = invocation_type(_invocation_type_data)
-
- # here we assume that if the module_name is None,
- # then a function was serialized by the fill module
- # before being transmitted
- if module_name is None:
- assert dill_available
- function = dill.loads(function)
-
- result = self._invoke_function_by_worker(
- function,
- module_name=module_name,
- invocation_type=invocation_type,
- function_args=function_args,
- function_kwds=function_kwds)
-
- end_time = time.time()
- if self.get_option("output_times") or \
- self.get_option("verbose"):
- print("External function invocation time=%.2f seconds"
- % (end_time - start_time))
-
- return result
-
- def _invoke_method_impl(self,
- method_name,
- method_args=(),
- method_kwds=None):
-
- start_time = time.time()
-
- if self.get_option("verbose"):
- print("Received request to invoke method="+method_name)
-
- if method_kwds is None:
- method_kwds = {}
- result = getattr(self, method_name)(*method_args, **method_kwds)
-
- end_time = time.time()
- if self.get_option("output_times") or \
- self.get_option("verbose"):
- print("Method invocation time=%.2f seconds"
- % (end_time - start_time))
-
- return result
-
- #
- # Override the invoke_function and invoke_method interface methods
- # on ScenarioTreeManager
- # ** NOTE **: These version are meant to be invoked locally.
- # The client-side will always invoke the *_impl
- # methods, which do not accept the async_call or
- # oneway_call keywords. When invoked here, the
- # async_call and oneway_call keywords behave like they
- # do for the Serial solver manager (they are
- # a dummy interface)
- #
-
- def invoke_function(self,
- function,
- module_name=None,
- invocation_type=InvocationType.Single,
- function_args=(),
- function_kwds=None,
- async_call=False,
- oneway_call=False):
- """This function is an override of that on the
- ScenarioTreeManager interface. It should not be invoked by a
- client, but only locally (e.g., inside a local function
- invocation transmitted by the client).
- """
- if async_call and oneway_call:
- raise ValueError("async oneway calls do not make sense")
- invocation_type = _map_deprecated_invocation_type(invocation_type)
-
- if not isinstance(function, six.string_types):
- if module_name is not None:
- raise ValueError(
- "The module_name keyword must be None "
- "when the function argument is not a string.")
- else:
- if module_name is None:
- raise ValueError(
- "A module name is required when "
- "a function name is given")
-
- self._invoke_function_impl(function,
- module_name=module_name,
- invocation_type=invocation_type,
- function_args=function_args,
- function_kwds=function_kwds)
-
- if not oneway_call:
- if invocation_type == InvocationType.Single:
- result = {self._worker_name: result}
- if async_call:
- result = self.AsyncResult(None, result=result)
-
- return result
-
- def invoke_method(self,
- method_name,
- method_args=(),
- method_kwds=None,
- async_call=False,
- oneway_call=False):
- """This function is an override of that on the
- ScenarioTreeManager interface. It should not be invoked by a
- client, but only locally (e.g., inside a local function
- invocation transmitted by the client).
-
- """
- if async_call and oneway_call:
- raise ValueError("async oneway calls do not make sense")
-
- if method_kwds is None:
- method_kwds = {}
- result = getattr(self, method_name)(*method_args, **method_kwds)
-
- if not oneway_call:
- result = {self._worker_name: result}
- if async_call:
- result = self.AsyncResult(None, result=result)
-
- return result
-
- #
- # Helper methods that can be invoked by the client
- #
-
- def assign_data(self, name, data):
- if self.get_option("verbose"):
- print("Received request to assign data to attribute name %s on "
- "scenario tree worker %s" % (name, self._worker_name))
- setattr(self, name, data)
-
-# register this worker with the pyro server
-from pyomo.pysp.scenariotree.server_pyro import RegisterWorker
-RegisterWorker('ScenarioTreeManagerWorkerPyro',
- ScenarioTreeManagerWorkerPyro)
diff --git a/pyomo/pysp/scenariotree/preprocessor.py b/pyomo/pysp/scenariotree/preprocessor.py
deleted file mode 100644
index 33137f8d539..00000000000
--- a/pyomo/pysp/scenariotree/preprocessor.py
+++ /dev/null
@@ -1,587 +0,0 @@
-# ___________________________________________________________________________
-#
-# Pyomo: Python Optimization Modeling Objects
-# Copyright 2017 National Technology and Engineering Solutions of Sandia, LLC
-# Under the terms of Contract DE-NA0003525 with National Technology and
-# Engineering Solutions of Sandia, LLC, the U.S. Government retains certain
-# rights in this software.
-# This software is distributed under the 3-clause BSD License.
-# ___________________________________________________________________________
-
-__all__ = ("ScenarioTreePreprocessor",)
-
-# TODO: Verify what needs to be done for persistent solver plugins
-# when advanced preprocessing is disabled and finish
-# implementing for that option.
-import time
-
-# these are the only two preprocessors currently invoked by the
-# simple_preprocessor, which in turn is invoked by the preprocess()
-# method of PyomoModel.
-from pyomo.core.base.objective import Objective
-from pyomo.core.base.constraint import Constraint
-from pyomo.repn.standard_repn import (preprocess_block_objectives,
- preprocess_block_constraints,
- preprocess_constraint_data)
-
-from pyomo.pysp.util.config import (PySPConfigBlock,
- safe_declare_common_option)
-from pyomo.pysp.util.configured_object import PySPConfiguredObject
-
-from six import itervalues
-
-def _preprocess(model, objective=True, constraints=True):
- objective_found = False
- if objective:
- for block in model.block_data_objects(active=True):
- for obj in block.component_data_objects(Objective,
- active=True,
- descend_into=False):
- objective_found = True
- preprocess_block_objectives(block)
- break
- if objective_found:
- break
- if constraints:
- for block in model.block_data_objects(active=True):
- preprocess_block_constraints(block)
-
-
-#
-# We only want to do the minimal amount of work to get the instance
-# back to a consistent "preprocessed" state. The following attributes
-# are introduced to help perform the minimal amount of work, and
-# should be augmented in the future if we can somehow do less. These
-# attributes are initially cleared, and are re-set - following
-# preprocessing, if necessary - before each round of model I/O.
-#
-class ScenarioTreePreprocessor(PySPConfiguredObject):
-
- @classmethod
- def _declare_options(cls, options=None):
- if options is None:
- options = PySPConfigBlock()
-
- safe_declare_common_option(options,
- "preprocess_fixed_variables")
- safe_declare_common_option(options,
- "symbolic_solver_labels")
- safe_declare_common_option(options,
- "output_times")
- safe_declare_common_option(options,
- "verbose")
-
- return options
-
- def __init__(self, *args, **kwds):
-
- super(ScenarioTreePreprocessor, self).__init__(*args, **kwds)
- self._scenario_solvers = {}
- self._scenario_instances = {}
- self._scenario_objectives = {}
- self._scenario_first_preprocess = {}
-
- #
- # Bundle related objects
- #
- self._bundle_instances = {}
- self._bundle_solvers = {}
- self._bundle_scenarios = {}
- self._scenario_to_bundle_map = {}
- self._bundle_first_preprocess = {}
-
- # maps between instance name and a list of variable (name,
- # index) pairs
- self.fixed_variables = {}
- self.freed_variables = {}
- # indicates update status of instances since the last
- # preprocessing round
- self.objective_updated = {}
- self.constraints_updated_list = {}
- self.constraints_added_list = {}
- self.constraints_removed_list = {}
-
- def add_scenario(self, scenario, scenario_instance, scenario_solver):
-
- scenario_name = scenario.name
- assert scenario_name not in self._scenario_instances
- assert scenario_name not in self._scenario_to_bundle_map
-
- self._scenario_instances[scenario_name] = scenario_instance
- self._scenario_solvers[scenario_name] = scenario_solver
- self._scenario_objectives[scenario_name] = scenario._instance_objective
- self._scenario_first_preprocess[scenario_name] = True
-
- self.fixed_variables[scenario_name] = []
- self.freed_variables[scenario_name] = []
- self.objective_updated[scenario_name] = True
- self.constraints_updated_list[scenario_name] = []
- self.constraints_added_list[scenario_name] = []
- self.constraints_removed_list[scenario_name] = []
-
- scenario_instance = self._scenario_instances[scenario_name]
- assert scenario_instance is not None
- for block in scenario_instance.block_data_objects(active=True):
- assert not hasattr(block, "_gen_obj_repn")
- assert not hasattr(block, "_gen_con_repn")
- block._gen_obj_repn = False
- block._gen_con_repn = False
-
- def remove_scenario(self, scenario):
- scenario_name = scenario.name
- assert scenario_name in self._scenario_instances
- assert scenario_name not in self._scenario_to_bundle_map
-
- scenario_instance = self._scenario_instances[scenario_name]
- assert scenario_instance is not None
- for block in scenario_instance.block_data_objects(active=True):
- assert not block._gen_obj_repn
- assert not block._gen_con_repn
- del block._gen_obj_repn
- del block._gen_con_repn
-
- del self._scenario_instances[scenario_name]
- del self._scenario_solvers[scenario_name]
- del self._scenario_objectives[scenario_name]
- del self._scenario_first_preprocess[scenario_name]
-
- del self.fixed_variables[scenario_name]
- del self.freed_variables[scenario_name]
- del self.objective_updated[scenario_name]
- del self.constraints_updated_list[scenario_name]
- del self.constraints_added_list[scenario_name]
- del self.constraints_removed_list[scenario_name]
-
- def add_bundle(self, bundle, bundle_instance, bundle_solver):
-
- bundle_name = bundle.name
- assert bundle_name not in self._bundle_instances
-
- self._bundle_instances[bundle_name] = bundle_instance
- self._bundle_solvers[bundle_name] = bundle_solver
- self._bundle_scenarios[bundle_name] = list(bundle._scenario_names)
- self._bundle_first_preprocess[bundle_name] = True
-
- for scenario_name in self._bundle_scenarios[bundle_name]:
- assert scenario_name in self._scenario_instances
- assert scenario_name not in self._scenario_to_bundle_map
- self._scenario_to_bundle_map[scenario_name] = bundle_name
-
- def remove_bundle(self, bundle):
-
- bundle_name = bundle.name
- assert bundle_name in self._bundle_instances
-
- for scenario_name in self._bundle_scenarios[bundle_name]:
- assert scenario_name in self._scenario_instances
- assert scenario_name in self._scenario_to_bundle_map
- del self._scenario_to_bundle_map[scenario_name]
-
- del self._bundle_instances[bundle_name]
- del self._bundle_solvers[bundle_name]
- del self._bundle_scenarios[bundle_name]
- del self._bundle_first_preprocess[bundle_name]
-
- def clear_update_flags(self, name=None):
- if name is not None:
- self.objective_updated[name] = False
- self.constraints_updated_list[name] = []
- self.constraints_added_list[name] = []
- self.constraints_removed_list[name] = []
- else:
- for key in self.instances:
- self.objective_updated[key] = False
- self.constraints_updated_list[key] = []
- self.constraints_added_list[key] = []
- self.constraints_removed_list[key] = []
-
- def has_fixed_variables(self, name=None):
- if name is None:
- for val in itervalues(self.fixed_variables):
- if len(val) > 0:
- return True
- return False
- else:
- return len(self.fixed_variables[name]) > 0
-
- def has_freed_variables(self, name=None):
- if name is None:
- for val in itervalues(self.freed_variables):
- if len(val) > 0:
- return True
- return False
- else:
- return len(self.freed_variables[name]) > 0
-
- def clear_fixed_variables(self, name=None):
- if name is None:
- for key in self.fixed_variables:
- self.fixed_variables[key] = []
- else:
- if name in self.fixed_variables:
- self.fixed_variables[name] = []
- else:
- raise KeyError("KeyError: %s" % name)
-
- def clear_freed_variables(self, name=None):
- if name is None:
- for key in self.freed_variables:
- self.freed_variables[key] = []
- else:
- if name in self.freed_variables:
- self.freed_variables[name] = []
- else:
- raise KeyError("KeyError: %s" % name)
-
- #
- # Preprocess scenarios (ignoring bundles even if they exists)
- #
-
- def preprocess_scenarios(self, scenarios=None):
-
- start_time = time.time()
-
- if scenarios is None:
- scenarios = self._scenario_instances.keys()
-
- if self.get_option("verbose"):
- print("Preprocessing %s scenarios" % len(scenarios))
-
- if self.get_option("verbose"):
- if len(self._bundle_instances) > 0:
- print("Preprocessing scenarios without bundles. Bundle "
- "preprocessing dependencies will be lost. Scenario "
- "preprocessing flags must be reset before preprocessing "
- "bundles.")
-
- for scenario_name in scenarios:
-
- self._preprocess_scenario(scenario_name,
- self._scenario_solvers[scenario_name])
-
- # We've preprocessed the instance, reset the relevant flags
- self._scenario_first_preprocess[scenario_name] = False
- self.clear_update_flags(scenario_name)
- self.clear_fixed_variables(scenario_name)
- self.clear_freed_variables(scenario_name)
-
- end_time = time.time()
-
- if self.get_option("output_times"):
- print("Scenario preprocessing time=%.2f seconds"
- % (end_time - start_time))
-
- #
- # Preprocess bundles (and the scenarios they depend on)
- #
-
- def preprocess_bundles(self,
- bundles=None,
- force_preprocess_bundle_objective=False,
- force_preprocess_bundle_constraints=False):
- # TODO: Does this import need to be delayed because
- # it is in a plugins subdirectory
- from pyomo.solvers.plugins.solvers.persistent_solver import \
- PersistentSolver
-
- start_time = time.time()
- if len(self._bundle_instances) == 0:
- raise RuntimeError(
- "Unable to preprocess scenario bundles. Bundling "
- "does not seem to be activated.")
-
- if bundles is None:
- bundles = self._bundle_instances.keys()
-
- if self.get_option("verbose"):
- print("Preprocessing %s bundles" % len(bundles))
-
- preprocess_bundle_objective = 0b01
- preprocess_bundle_constraints = 0b10
- for bundle_name in bundles:
-
- preprocess_bundle = 0
- solver = self._bundle_solvers[bundle_name]
- persistent_solver_in_use = isinstance(solver, PersistentSolver)
- bundle_ef_instance = self._bundle_instances[bundle_name]
- if persistent_solver_in_use and \
- (not solver.has_instance()):
- assert self._bundle_first_preprocess[bundle_name]
- solver.set_instance(bundle_ef_instance)
- self._bundle_first_preprocess[bundle_name] = False
- for scenario_name in self._bundle_scenarios[bundle_name]:
- self._scenario_solvers[scenario_name].set_instance(
- self._scenario_instances[scenario_name])
- # We've preprocessed the instance, reset the relevant flags
- self._scenario_first_preprocess[scenario_name] = False
- self.clear_update_flags(scenario_name)
- self.clear_fixed_variables(scenario_name)
- self.clear_freed_variables(scenario_name)
- else:
- if persistent_solver_in_use:
- assert not self._bundle_first_preprocess[bundle_name]
- for scenario_name in self._bundle_scenarios[bundle_name]:
- if self.objective_updated[scenario_name]:
- preprocess_bundle |= preprocess_bundle_objective
- if ((len(self.fixed_variables[scenario_name]) > 0) or \
- (len(self.freed_variables[scenario_name]) > 0)) and \
- self.get_option("preprocess_fixed_variables"):
- preprocess_bundle |= \
- preprocess_bundle_objective | \
- preprocess_bundle_constraints
- if self._bundle_first_preprocess[bundle_name]:
- preprocess_bundle |= \
- preprocess_bundle_objective | \
- preprocess_bundle_constraints
- self._bundle_first_preprocess[bundle_name] = False
-
- if persistent_solver_in_use:
- # also preprocess on the scenario solver
- scenario_solver = self._scenario_solvers[scenario_name]
- isinstance(scenario_solver, PersistentSolver)
- self._preprocess_scenario(scenario_name,
- scenario_solver)
- self._preprocess_scenario(scenario_name, solver)
-
- # We've preprocessed the instance, reset the relevant flags
- self._scenario_first_preprocess[scenario_name] = False
- self.clear_update_flags(scenario_name)
- self.clear_fixed_variables(scenario_name)
- self.clear_freed_variables(scenario_name)
-
- if force_preprocess_bundle_objective:
- preprocess_bundle |= preprocess_bundle_objective
-
- if force_preprocess_bundle_constraints:
- preprocess_bundle |= preprocess_bundle_constraints
-
- if preprocess_bundle:
-
- if persistent_solver_in_use:
- assert solver.has_instance()
- if preprocess_bundle & preprocess_bundle_objective:
- obj_count = 0
- for obj in bundle_ef_instance.component_data_objects(
- ctype=Objective,
- descend_into=False,
- active=True):
- obj_count += 1
- if obj_count > 1:
- raise RuntimeError(
- "Persistent solver interface only "
- "supports a single active objective.")
- solver.set_objective(obj)
- if preprocess_bundle & preprocess_bundle_constraints:
- # we assume the bundle constraints are just simple
- # linking constraints (e.g., no SOSConstraints)
- for con in bundle_ef_instance.component_data_objects(
- ctype=Constraint,
- descend_into=False,
- active=True):
- solver.remove_constraint(con)
- solver.add_constraint(con)
- else:
- idMap = {}
- if preprocess_bundle & preprocess_bundle_objective:
- preprocess_block_objectives(
- bundle_ef_instance,
- idMap=idMap)
- if preprocess_bundle & preprocess_bundle_constraints:
- preprocess_block_constraints(
- bundle_ef_instance,
- idMap=idMap)
-
- end_time = time.time()
-
- if self.get_option("output_times"):
- print("Bundle preprocessing time=%.2f seconds"
- % (end_time - start_time))
-
- def _preprocess_scenario(self, scenario_name, solver):
- # TODO: Does this import need to be delayed because
- # it is in a plugins subdirectory
- from pyomo.solvers.plugins.solvers.persistent_solver import \
- PersistentSolver
-
- assert scenario_name in self._scenario_instances
- scenario_objective_active = self._scenario_objectives[scenario_name].active
- # because the preprocessor will skip the scenario objective if it is
- # part of a bundle and not active
- self._scenario_objectives[scenario_name].activate()
- def _cleanup():
- if not scenario_objective_active:
- self._scenario_objectives[scenario_name].deactivate()
- scenario_instance = self._scenario_instances[scenario_name]
- instance_first_preprocess = self._scenario_first_preprocess[scenario_name]
- instance_fixed_variables = self.fixed_variables[scenario_name]
- instance_freed_variables = self.freed_variables[scenario_name]
- instance_constraints_updated_list = \
- self.constraints_updated_list[scenario_name]
- instance_constraints_added_list = \
- self.constraints_added_list[scenario_name]
- instance_constraints_removed_list = \
- self.constraints_removed_list[scenario_name]
- instance_objective_updated = self.objective_updated[scenario_name]
-
- persistent_solver_in_use = isinstance(solver, PersistentSolver)
- if (not instance_first_preprocess) and \
- (not instance_objective_updated) and \
- (not instance_fixed_variables) and \
- (not instance_freed_variables) and \
- (len(instance_constraints_updated_list) == 0) and \
- (len(instance_constraints_added_list) == 0) and \
- (len(instance_constraints_removed_list) == 0):
- if persistent_solver_in_use:
- assert solver.has_instance()
-
- # instances are already preproccessed, nothing
- # needs to be done
- if self.get_option("verbose"):
- print("No preprocessing necessary for scenario %s"
- % (scenario_name))
- _cleanup()
- return
-
- if (not instance_first_preprocess) and \
- (instance_fixed_variables or instance_freed_variables):
-
- if persistent_solver_in_use:
- if solver.has_instance():
- if self.get_option("verbose"):
- print("Compiling fixed status updates in persistent solver "
- "for scenario %s" % (scenario_name))
-
- # it can be the case that the solver plugin no longer has an
- # instance compiled, depending on what state the solver plugin
- # is in relative to the instance. if this is the case, just
- # don't compile the variable bounds.
- if solver.has_instance():
- variables_to_change = \
- instance_fixed_variables + instance_freed_variables
- for var in variables_to_change:
- solver.update_var(var)
- else:
- if self.get_option("preprocess_fixed_variables"):
- if self.get_option("verbose"):
- print("Running full preprocessing for scenario %s "
- "due to fixing of variables"
- % (scenario_name))
- _preprocess(scenario_instance)
- # We've preprocessed the entire instance, no point in checking
- # anything else
- _cleanup()
- return
-
- if (not instance_first_preprocess) and \
- instance_objective_updated:
-
- if self.get_option("verbose"):
- print("Preprocessing objective for scenario %s"
- % (scenario_name))
-
- if persistent_solver_in_use:
- if solver.has_instance():
- obj_count = 0
- for obj in scenario_instance.component_data_objects(
- ctype=Objective,
- descend_into=True,
- active=True):
- obj_count += 1
- if obj_count > 1:
- raise RuntimeError("Persistent solver interface only "
- "supports a single active objective.")
- solver.set_objective(obj)
- else:
- # if only the objective changed, there is minimal work to do.
- _preprocess(scenario_instance,
- objective=True,
- constraints=False)
-
- if (not instance_first_preprocess) and \
- ((len(instance_constraints_updated_list) > 0) or \
- (len(instance_constraints_added_list) > 0) or \
- (len(instance_constraints_removed_list) > 0)):
-
- if persistent_solver_in_use:
- if solver.has_instance():
- if self.get_option("verbose"):
- print("Compiling constraint list (size=%s) for "
- "scenario %s" % (scenario_name))
- for con in instance_constraints_updated_list:
- if (not con.has_lb()) and \
- (not con.has_ub()):
- assert not con.equality
- continue # non-binding, so skip
- solver.remove_constraint(con)
- solver.add_constraint(con)
- for con in instance_constraints_removed_list:
- if (not con.has_lb()) and \
- (not con.has_ub()):
- assert not con.equality
- continue # non-binding, so skip
- solver.remove_constraint(con)
- for con in instance_constraints_added_list:
- if (not con.has_lb()) and \
- (not con.has_ub()):
- assert not con.equality
- continue # non-binding, so skip
- solver.add_constraint(con)
- elif (len(instance_constraints_updated_list) > 0) or \
- (len(instance_constraints_added_list) > 0):
- if self.get_option("verbose"):
- print("Preprocessing constraint list (size=%s) for "
- "scenario %s" % (len(instance_constraints_updated_list),
- scenario_name))
- idMap = {}
- for list_ in (instance_constraints_updated_list,
- instance_constraints_added_list):
- for constraint_data in list_:
- if getattr(constraint_data, "_linear_canonical_form", False):
- continue
- preprocess_constraint_data(scenario_instance,
- constraint_data,
- idMap=idMap)
-
- if persistent_solver_in_use:
- if not solver.has_instance():
- solver.set_instance(
- scenario_instance,
- symbolic_solver_labels=\
- self.get_option("symbolic_solver_labels"),
- output_fixed_variable_bounds=\
- not self.get_option("preprocess_fixed_variables"))
- elif instance_first_preprocess:
- if self.get_option("verbose"):
- print("Running initial full preprocessing for scenario %s"
- % (scenario_name))
- _preprocess(scenario_instance)
- _cleanup()
-
- def modify_scenario_solver_keywords(self, scenario_name, kwds):
- # TODO: Does this import need to be delayed because
- # it is in a plugins subdirectory
- from pyomo.solvers.plugins.solvers.persistent_solver import \
- PersistentSolver
-
- solver = self._scenario_solvers[scenario_name]
- if isinstance(solver, PersistentSolver):
- # these were applied when set_instance was called
- kwds.pop("output_fixed_variable_bounds",None)
- kwds.pop("symbolic_solver_labels",None)
-
- return kwds
-
- def modify_bundle_solver_keywords(self, bundle_name, kwds):
- # TODO: Does this import need to be delayed because
- # it is in a plugins subdirectory
- from pyomo.solvers.plugins.solvers.persistent_solver import \
- PersistentSolver
-
- solver = self._bundle_solvers[bundle_name]
-
- if isinstance(solver, PersistentSolver):
- # these were applied when set_instance was called
- kwds.pop("output_fixed_variable_bounds",None)
- kwds.pop("symbolic_solver_labels",None)
-
- return kwds
diff --git a/pyomo/pysp/scenariotree/server_pyro.py b/pyomo/pysp/scenariotree/server_pyro.py
deleted file mode 100644
index 2dc191d8d88..00000000000
--- a/pyomo/pysp/scenariotree/server_pyro.py
+++ /dev/null
@@ -1,398 +0,0 @@
-# ___________________________________________________________________________
-#
-# Pyomo: Python Optimization Modeling Objects
-# Copyright 2017 National Technology and Engineering Solutions of Sandia, LLC
-# Under the terms of Contract DE-NA0003525 with National Technology and
-# Engineering Solutions of Sandia, LLC, the U.S. Government retains certain
-# rights in this software.
-# This software is distributed under the 3-clause BSD License.
-# ___________________________________________________________________________
-
-__all__ = ("ScenarioTreeServerPyro",
- "RegisterWorker")
-
-import os
-import six
-import sys
-import socket
-import logging
-import traceback
-import base64
-try:
- import cPickle as pickle
-except: #pragma:nocover
- import pickle
-
-from pyomo.common.collections import Bunch
-from pyomo.common.dependencies import attempt_import, dill, dill_available
-from pyomo.common import pyomo_command
-from pyomo.pysp.util.misc import (parse_command_line,
- launch_command,
- load_external_module)
-from pyomo.pysp.util.config import (PySPConfigValue,
- PySPConfigBlock,
- safe_register_common_option,
- safe_register_unique_option,
- _domain_tuple_of_str)
-from pyomo.pysp.scenariotree.tree_structure import \
- ScenarioTree
-from pyomo.pysp.scenariotree.instance_factory import \
- ScenarioTreeInstanceFactory
-
-pyu_pyro = attempt_import('pyutilib.pyro', alt_names=['pyu_pyro'])[0]
-Pyro4 = attempt_import('Pyro4')[0]
-
-logger = logging.getLogger('pyomo.pysp')
-
-class ScenarioTreeServerPyro(pyu_pyro.TaskWorker):
-
- # Maps name to a registered worker class to instantiate
- _registered_workers = {}
-
- @classmethod
- def get_registered_worker_type(cls, name):
- if name in cls._registered_workers:
- return cls._registered_workers[name]
- raise KeyError("No worker type has been registered under the name "
- "'%s' for ScenarioTreeServerPyro" % (name))
-
- def __init__(self, *args, **kwds):
-
- mpi = kwds.pop('mpi', None)
- # add for purposes of diagnostic output.
- kwds["name"] = ("ScenarioTreeServerPyro_%d@%s"
- % (os.getpid(), socket.gethostname()))
- if mpi is not None:
- assert len(mpi) == 2
- kwds["name"] += "_MPIRank_"+str(mpi[1].rank)
- kwds["caller_name"] = kwds["name"]
- self._modules_imported = kwds.pop('modules_imported', {})
-
- pyu_pyro.TaskWorker.__init__(self, **kwds)
- assert hasattr(self, "_bulk_task_collection")
- self._bulk_task_collection = True
- self._contiguous_task_processing = False
-
- self.type = self.WORKERNAME
- self.block = True
- self.timeout = None
- self._worker_map = {}
- self._init_verbose = self._verbose
-
- # A reference to the mpi4py.MPI namespace
- self.MPI = None
- # The communicator and group associated with all processors
- self.mpi_comm_world = None
- self.mpi_group_world = None
- # The communicator associated with the workers assigned
- # to the current current client
- self.mpi_comm_workers = None
- if mpi is not None:
- assert len(mpi) == 2
- self.MPI = mpi[0]
- self.mpi_comm_world = mpi[1]
- self.mpi_group_world = self.mpi_comm_world.Get_group()
-
- #
- # These will be used by all subsequent workers created
- # by this server. Their creation can eat up a nontrivial
- # amount of initialization time when a large number of
- # workers are created on this server, so we only create
- # them once.
- #
- self._scenario_instance_factory = None
- self._full_scenario_tree = None
-
- def reset(self):
- if self._scenario_instance_factory is not None:
- self._scenario_instance_factory.close()
- self._scenario_instance_factory = None
- self._full_scenario_tree = None
- for worker_name in list(self._worker_map):
- self.remove_worker(worker_name)
- if self.mpi_comm_workers is not None:
- self.mpi_comm_workers.Free()
- self.mpi_comm_workers = None
- self._verbose = self._init_verbose
-
- def remove_worker(self, name):
- self._worker_map[name].close()
- del self._worker_map[name]
-
- def process(self, data):
- self._worker_task_return_queue = self._current_task_client
- try:
- # The only reason we are go through this much
- # effort to deal with the serpent serializer
- # is because it is the default in Pyro4.
- if pyu_pyro.using_pyro4 and \
- (Pyro4.config.SERIALIZER == 'serpent'):
- if six.PY3:
- assert type(data) is dict
- assert data['encoding'] == 'base64'
- data = base64.b64decode(data['data'])
- else:
- assert type(data) is unicode
- data = str(data)
- return pickle.dumps(self._process(pickle.loads(data)))
- except:
- logger.error(
- "Scenario tree server %s caught an exception of type "
- "%s while processing a task. Going idle."
- % (self.WORKERNAME, sys.exc_info()[0].__name__))
- traceback.print_exception(*sys.exc_info())
- self._worker_error = True
- return pickle.dumps(pyu_pyro.TaskProcessingError(
- traceback.format_exc()))
-
- def _process(self, data):
- data = Bunch(**data)
- result = None
- if not data.action.startswith('ScenarioTreeServerPyro_'):
- result = getattr(self._worker_map[data.worker_name], data.action)\
- (*data.args, **data.kwds)
-
- elif data.action == 'ScenarioTreeServerPyro_setup':
- model_input = data.options.pop('model', None)
- if model_input is None:
- model_input = data.options.pop('model_callback')
- assert dill_available
- model_input = dill.loads(model_input)
-
- scenario_tree_input = data.options.pop('scenario_tree')
- data_input = data.options.pop('data')
- mpi_group = data.options.pop("mpi_group",None)
- verbose = data.options.pop("verbose", False)
- assert len(data.options) == 0
- self._verbose |= verbose
- assert self._scenario_instance_factory is None
- assert self._full_scenario_tree is None
- if self._verbose:
- print("Server %s received setup request."
- % (self.WORKERNAME))
-
- # Make sure these are not archives
- assert (not isinstance(model_input, six.string_types)) or \
- os.path.exists(model_input)
- assert isinstance(scenario_tree_input, ScenarioTree)
- self._scenario_instance_factory = \
- ScenarioTreeInstanceFactory(
- model_input,
- scenario_tree_input,
- data=data_input)
-
- #
- # Try to prevent unnecessarily re-importing the model module
- # if other callbacks are in the same location. Doing so might
- # have serious consequences.
- #
- if self._scenario_instance_factory._model_module is not None:
- self._modules_imported[self._scenario_instance_factory.\
- _model_filename] = \
- self._scenario_instance_factory._model_module
- assert self._scenario_instance_factory._scenario_tree_module is None
-
- self._full_scenario_tree = \
- self._scenario_instance_factory.generate_scenario_tree()
-
- assert self.mpi_comm_workers is None
- if self.mpi_comm_world is not None:
- assert self.mpi_group_world is not None
- assert mpi_group is not None
- mpi_group = self.mpi_group_world.Incl(mpi_group)
- self.mpi_comm_workers = \
- self.mpi_comm_world.Create_group(mpi_group)
- else:
- assert mpi_group is None
-
- if self._full_scenario_tree is None:
- raise RuntimeError("Unable to launch scenario tree worker - "
- "scenario tree construction failed.")
-
- result = True
-
- elif data.action == "ScenarioTreeServerPyro_initialize":
-
- worker_name = data.worker_name
- if self._verbose:
- print("Server %s received request to initialize "
- "scenario tree worker with name %s."
- % (self.WORKERNAME, worker_name))
-
- assert self._scenario_instance_factory is not None
- assert self._full_scenario_tree is not None
-
- if worker_name in self._worker_map:
- raise RuntimeError(
- "Server %s Cannot initialize worker with name '%s' "
- "because a worker already exists with that name."
- % (self.WORKERNAME, worker_name))
-
- worker_type = self._registered_workers[data.worker_type]
-
- self._worker_map[worker_name] = worker_type(
- self,
- worker_name,
- *data.init_args,
- **data.init_kwds)
- result = True
-
- elif data.action == "ScenarioTreeServerPyro_release":
-
- if self._verbose:
- print("Server %s releasing worker: %s"
- % (self.WORKERNAME, data.worker_name))
- self.remove_worker(data.worker_name)
- result = True
-
- elif data.action == "ScenarioTreeServerPyro_reset":
-
- if self._verbose:
- print("Server %s received reset request"
- % (self.WORKERNAME))
- self.reset()
- result = True
-
- elif data.action == "ScenarioTreeServerPyro_shutdown":
-
- if self._verbose:
- print("Server %s received shutdown request"
- % (self.WORKERNAME))
- self.reset()
- self._worker_shutdown = True
- result = True
-
- else:
- raise ValueError("Server %s: Invalid command: %s"
- % (self.WORKERNAME, data.action))
-
- return result
-
-def RegisterWorker(name, class_type):
- if name in ScenarioTreeServerPyro._registered_workers:
- raise ValueError("The name %s is already registered "
- "for another worker class"
- % (name))
- ScenarioTreeServerPyro._registered_workers[name] = class_type
-
-#
-# utility method fill a PySPConfigBlock with options associated
-# with the scenariotreeserver command
-#
-
-def scenariotreeserver_register_options(options=None):
- if options is None:
- options = PySPConfigBlock()
- safe_register_common_option(options, "disable_gc")
- safe_register_common_option(options, "profile")
- safe_register_common_option(options, "traceback")
- safe_register_common_option(options, "verbose")
- safe_register_common_option(options, "pyro_host")
- safe_register_common_option(options, "pyro_port")
- safe_register_unique_option(
- options,
- "mpi",
- PySPConfigValue(
- False,
- domain=bool,
- description=(
- "Activate MPI based functionality. "
- "Requires the mpi4py module."
- ),
- doc=None,
- visibility=0))
- safe_register_unique_option(
- options,
- "import_module",
- PySPConfigValue(
- (),
- domain=_domain_tuple_of_str,
- description=(
- "The name of a user-defined python module to import that, "
- "e.g., registers a user-defined scenario tree worker class."
- ),
- doc=None,
- visibility=0))
-
- return options
-#
-# Execute the scenario tree server daemon.
-#
-def exec_scenariotreeserver(options):
-
- mpi = None
- if options.mpi:
- import mpi4py
- # This import calls MPI_Init
- import mpi4py.MPI
- mpi = (mpi4py.MPI, mpi4py.MPI.COMM_WORLD)
-
- modules_imported = {}
- for module_name in options.import_module:
- if module_name in sys.modules:
- modules_imported[module_name] = sys.modules[module_name]
- else:
- modules_imported[module_name] = \
- load_external_module(module_name,
- clear_cache=True,
- verbose=True)[0]
-
- try:
- # spawn the daemon
- pyu_pyro.TaskWorkerServer(ScenarioTreeServerPyro,
- host=options.pyro_host,
- port=options.pyro_port,
- verbose=options.verbose,
- modules_imported=modules_imported,
- mpi=mpi)
- except:
- # if an exception occurred, then we probably want to shut down
- # all Pyro components. otherwise, the PH client may have
- # forever while waiting for results that will never
- # arrive. there are better ways to handle this at the PH
- # client level, but until those are implemented, this will
- # suffice for cleanup.
- #NOTE: this should perhaps be command-line driven, so it can
- # be disabled if desired.
- print("ScenarioTreeServerPyro aborted. Sending shutdown request.")
- pyu_pyro.shutdown_pyro_components(host=options.pyro_host,
- port=options.pyro_port,
- num_retries=0)
- raise
-
-@pyomo_command("scenariotreeserver",
- "Pyro-based server for scenario tree management")
-def main(args=None):
- #
- # Top-level command that executes the scenario tree server daemon.
- #
-
- #
- # Import plugins
- #
- import pyomo.environ
-
- #
- # Parse command-line options.
- #
- try:
- options = parse_command_line(
- args,
- scenariotreeserver_register_options,
- prog='scenariotreeserver',
- description=(
-"""Launches a scenariotreeserver process to manage workers in a
-distributed scenario tree."""
- ))
-
- except SystemExit as _exc:
- # the parser throws a system exit if "-h" is specified
- # - catch it to exit gracefully.
- return _exc.code
-
- return launch_command(exec_scenariotreeserver,
- options,
- error_label="scenariotreeserver: ",
- disable_gc=options.disable_gc,
- profile_count=options.profile,
- traceback=options.traceback)
diff --git a/pyomo/pysp/scenariotree/server_pyro_utils.py b/pyomo/pysp/scenariotree/server_pyro_utils.py
deleted file mode 100644
index 4194fafe7b3..00000000000
--- a/pyomo/pysp/scenariotree/server_pyro_utils.py
+++ /dev/null
@@ -1,17 +0,0 @@
-# ___________________________________________________________________________
-#
-# Pyomo: Python Optimization Modeling Objects
-# Copyright 2017 National Technology and Engineering Solutions of Sandia, LLC
-# Under the terms of Contract DE-NA0003525 with National Technology and
-# Engineering Solutions of Sandia, LLC, the U.S. Government retains certain
-# rights in this software.
-# This software is distributed under the 3-clause BSD License.
-# ___________________________________________________________________________
-
-__all__ = ("WorkerInitType",
- "WorkerInit",
- "ScenarioWorkerInit",
- "BundleWorkerInit")
-
-logger = logging.getLogger('pyomo.pysp')
-
diff --git a/pyomo/pysp/scenariotree/tree_structure.py b/pyomo/pysp/scenariotree/tree_structure.py
deleted file mode 100644
index ecd4f4be0cf..00000000000
--- a/pyomo/pysp/scenariotree/tree_structure.py
+++ /dev/null
@@ -1,2762 +0,0 @@
-# ___________________________________________________________________________
-#
-# Pyomo: Python Optimization Modeling Objects
-# Copyright 2017 National Technology and Engineering Solutions of Sandia, LLC
-# Under the terms of Contract DE-NA0003525 with National Technology and
-# Engineering Solutions of Sandia, LLC, the U.S. Government retains certain
-# rights in this software.
-# This software is distributed under the 3-clause BSD License.
-# ___________________________________________________________________________
-
-__all__ = ('ScenarioTreeNode',
- 'ScenarioTreeStage',
- 'Scenario',
- 'ScenarioTreeBundle',
- 'ScenarioTree')
-
-import sys
-import random
-import copy
-import math
-import logging
-
-from pyomo.common.collections import ComponentMap, OrderedDict
-from pyomo.core import (value, minimize, maximize,
- Var, Expression, Block,
- Objective, SOSConstraint,
- ComponentUID)
-from pyomo.core.base.sos import _SOSConstraintData
-from pyomo.repn import generate_standard_repn
-from pyomo.pysp.phutils import (BasicSymbolMap,
- indexToString,
- isVariableNameIndexed,
- extractVariableNameAndIndex,
- extractComponentIndices,
- find_active_objective)
-
-from six import iterkeys, iteritems, itervalues
-from six.moves import xrange
-
-logger = logging.getLogger('pyomo.pysp')
-
-CUID_repr_version = 1
-
-class _CUIDLabeler(object):
- def __init__(self):
- self._cuid_map = ComponentMap()
-
- def update_cache(self, block):
- self._cuid_map.update(
- ComponentUID.generate_cuid_string_map(
- block, repr_version=CUID_repr_version))
-
- def clear_cache(self):
- self._cuid_map = {}
-
- def __call__(self, obj):
- if obj in self._cuid_map:
- return self._cuid_map[obj]
- else:
- cuid = ComponentUID(obj).get_repr(version=1)
- self._cuid_map[obj] = cuid
- return cuid
-
-class ScenarioTreeNode(object):
-
- """ Constructor
- """
-
- VARIABLE_FIXED = 0
- VARIABLE_FREED = 1
-
- def __init__(self, name, conditional_probability, stage):
-
- # self-explanatory!
- self._name = name
-
- # the stage to which this tree node belongs.
- self._stage = stage
-
- # defines the tree structure
- self._parent = None
-
- # a collection of ScenarioTreeNodes
- self._children = []
-
- # conditional on parent
- self._conditional_probability = conditional_probability
-
- # a collection of all Scenario objects passing through this
- # node in the tree
- self._scenarios = []
-
- # the cumulative probability of scenarios at this node.
- # cached for efficiency.
- self._probability = 0.0
-
- # a map between a variable name and a list of original index
- # match templates, specified as strings. we want to maintain
- # these for a variety of reasons, perhaps the most important
- # being that for output purposes. specific indices that match
- # belong to the tree node, as that may be specific to a tree
- # node.
- self._variable_templates = {}
- self._derived_variable_templates = {}
-
- #
- # information relating to all variables blended at this node, whether
- # of the standard or derived varieties.
- #
- # maps id -> (name, index)
- self._variable_ids = {}
- # maps (name,index) -> id
- self._name_index_to_id = {}
- # maps id -> list of (vardata,probability) across all scenarios
- self._variable_datas = {}
-
- # keep track of the variable indices at this node, independent
- # of type. this is useful for iterating. maps variable name
- # to a list of indices.
- self._variable_indices = {}
-
- # variables are either standard or derived - but not both.
- # partition the ids into two sets, as we deal with these
- # differently in algorithmic and reporting contexts.
- self._standard_variable_ids = set()
- self._derived_variable_ids = set()
- # A temporary solution to help wwphextension and other code
- # for when pyomo instances no longer live on the master node
- # when using PHPyro
- self._integer = set()
- self._binary = set()
- self._semicontinuous = set()
-
- # a tuple consisting of (1) the name of the variable that
- # stores the stage-specific cost in all scenarios and (2) the
- # corresponding index *string* - this is converted in the tree
- # node to a real index.
- # TODO: Change the code so that this is a ComponentUID string
- self._cost_variable = None
-
- # a list of _VarData objects, representing the cost variables
- # for each scenario passing through this tree node.
- # NOTE: This list actually contains tuples of
- # (_VarData, scenario-probability) pairs.
- self._cost_variable_datas = []
-
- # general use statistics for the variables at each node.
- # each attribute is a map between the variable name and a
- # parameter (over the same index set) encoding the corresponding
- # statistic computed over all scenarios for that node. the
- # parameters are named as the source variable name suffixed
- # by one of: "NODEMIN", "NODEAVG", and "NODEMAX".
- # NOTE: the averages are probability_weighted - the min/max
- # values are not.
- # NOTE: the parameter names are basically irrelevant, and the
- # convention is assumed to be enforced by whoever populates
- # these parameters.
- self._minimums = {}
- self._averages = {}
- self._maximums = {}
- # This gets pushed into PHXBAR on the instances
- self._xbars = {}
- # This gets pushed into PHBLEND on the instances
- self._blend = {}
- self._wbars = {} # USED IN THE DUAL
- # node variables ids that are fixed (along with the value to fix)
- self._fixed = {}
- # variable ids currently out of sync with instance data
- # variable_id -> VARIABLE_FIXED | VARIABLE_FREED
- self._fix_queue = {}
-
- # solution (variable) values for this node. assumed to be distinct
- # from self._averages, as the latter are not necessarily feasible.
- # keys are variable ids.
- self._solution = {}
-
- @property
- def name(self):
- return self._name
-
- @property
- def stage(self):
- return self._stage
-
- @property
- def parent(self):
- return self._parent
-
- @property
- def children(self):
- return tuple(self._children)
-
- @property
- def scenarios(self):
- return self._scenarios
-
- @property
- def conditional_probability(self):
- return self._conditional_probability
-
- @property
- def probability(self):
- return self._probability
-
- #
- # Updates the minimum, maximum, and average for this node
- # from the solutions stored on the scenario objects
- #
- def updateNodeStatistics(self):
-
- scenario_solutions = \
- [(scenario._probability, scenario._x[self._name]) \
- for scenario in self._scenarios]
-
- for variable_id in self._variable_ids:
-
- stale = False
- values = []
- avg_value = 0.0
- for probability, var_values in scenario_solutions:
- val = var_values[variable_id]
- if val is not None:
- avg_value += probability * val
- values.append(val)
- else:
- stale = True
- break
-
- if stale:
- self._minimums[variable_id] = None
- self._maximums[variable_id] = None
- self._averages[variable_id] = None
- else:
- avg_value /= self._probability
- self._minimums[variable_id] = min(values)
- self._maximums[variable_id] = max(values)
- self._averages[variable_id] = avg_value
-
- #
- # given a set of scenario instances, compute the set of indices
- # for non-anticipative variables at this node, as defined by the
- # input match templates.
- #
-
- def updateVariableIndicesAndValues(self,
- component_name,
- match_templates,
- derived=False,
- id_labeler=None,
- name_index_to_id_map=None):
-
- # ensure that the variable exists on each scenario instance,
- # and that there is at least one index match per template.
-
- # To avoid calling extractComponentIndices more than necessary
- # we take the last scenario in the next loop as our
- # "representative" scenario from which we use the
- # new_match_indices list
- new_match_indices = None
- var_component = {}
- symbolmap = {}
- scenario = None
- isVar = False
- for scenario in self._scenarios:
-
- scenario_instance = scenario._instance
-
- if scenario_instance is None:
- continue
-
- component_object = \
- scenario_instance.find_component(component_name)
- if component_object is None:
- raise RuntimeError(
- "The component=%s associated with stage=%s "
- "is not present in instance=%s"
- % (component_name,
- self._stage._name,
- scenario_instance.name))
-
- if component_object.ctype is not Block:
- isVar = (component_object.ctype is Var)
- if not derived:
- if not isVar:
- raise RuntimeError("The component=%s "
- "associated with stage=%s "
- "is present in instance=%s "
- "but is not a variable - type=%s"
- % (component_name,
- self._stage._name,
- scenario_instance.name,
- type(component_object)))
- else:
- if (not isVar) and \
- (component_object.ctype is not Expression) and \
- (component_object.ctype is not Objective):
- raise RuntimeError("The derived component=%s "
- "associated with stage=%s "
- "is present in instance=%s "
- "but is not a Var or Expression "
- "- type=%s"
- % (component_name,
- self._stage._name,
- scenario_instance.name,
- type(component_object)))
- else:
- tmp_match_template = ("",)
- for match_template in match_templates:
- for index in extractComponentIndices(component_object,
- match_template):
- # extract all variables from this block
- if component_object[index].active:
- for variable in component_object[index].\
- component_objects(Var,
- descend_into=True):
- self.updateVariableIndicesAndValues(
- variable.name,
- tmp_match_template,
- derived=derived,
- id_labeler=id_labeler,
- name_index_to_id_map=name_index_to_id_map)
- return
-
- new_match_indices = []
-
- for match_template in match_templates:
-
- indices = extractComponentIndices(component_object,
- match_template)
-
- # validate that at least one of the indices in the
- # variable matches to the template - otherwise, the
- # template is bogus. with one exception: if the
- # variable is empty (the index set is empty), then
- # don't warn - the instance was designed this way.
- if (len(indices) == 0) and (len(component_object) > 0):
- raise ValueError("No indices match template=%s "
- "for variable=%s in scenario=%s"
- % (match_template,
- component_name,
- scenario.name))
-
- new_match_indices.extend(indices)
-
- var_component[scenario._name] = \
- scenario_instance.find_component(component_name)
-
- if (id_labeler is not None) or \
- (name_index_to_id_map is not None):
- # Tag each instance with a ScenarioTreeSymbolMap. This
- # will allow us to identify common blended variables
- # within a node across scenario instances without
- # having to do an expensive name lookup each time.
- this_symbolmap = getattr(scenario_instance,
- "_ScenarioTreeSymbolMap",
- None)
- if this_symbolmap is None:
- this_symbolmap = \
- scenario_instance._ScenarioTreeSymbolMap = \
- BasicSymbolMap()
- symbolmap[scenario._name] = this_symbolmap
-
- # find a representative scenario instance belonging to (or
- # passing through) this node in the tree. the first scenario
- # is as good as any.
- # NOTE: At some point we should check that the index sets
- # across all scenarios at a node actually match for each
- # variable.
- self._variable_indices.setdefault(
- component_name, []).extend(new_match_indices)
-
- # cache some stuff up-front - we're accessing these
- # attributes a lot in the loops below.
- if not derived:
- variable_ids_to_update = self._standard_variable_ids
- else:
- variable_ids_to_update = self._derived_variable_ids
-
- self_variable_ids = self._variable_ids
- self_variable_datas = self._variable_datas
-
- if (id_labeler is not None) or \
- (name_index_to_id_map is not None):
-
- for index in sorted(new_match_indices):
-
- # create the ScenarioTree integer id for this variable
- # across all scenario instances, or look it up if a
- # map has been provided.
- reference_object = \
- var_component[self._scenarios[0].name][index]
- scenario_tree_id = None
- if id_labeler != None:
- scenario_tree_id = id_labeler(reference_object)
- elif name_index_to_id_map != None:
- scenario_tree_id = \
- name_index_to_id_map[component_name, index]
-
- variable_ids_to_update.add(scenario_tree_id)
-
- self_variable_ids[scenario_tree_id] = (component_name,index)
- self._name_index_to_id[(component_name,index)] = \
- scenario_tree_id
- self_variable_datas[scenario_tree_id] = []
- for scenario in self._scenarios:
- vardata = var_component[scenario._name][index]
- symbolmap[scenario._name].addSymbol(vardata,
- scenario_tree_id)
- self_variable_datas[scenario_tree_id].append(
- (vardata, scenario._probability))
- # We are trusting that each instance variable has the same
- # domain (as we always do)
- if isVar:
- vardata = self_variable_datas[scenario_tree_id][0][0]
- if vardata.is_integer():
- self._integer.add(scenario_tree_id)
- if vardata.is_binary():
- self._binary.add(scenario_tree_id)
- # TODO
- #if vardata.is_semicontinuous():
- # self._semicontinuous.add(scenario_tree_id)
-
- #
- # same as the above, but specialized to cost variables.
- #
-
- def updateCostVariableIndexAndValue(self,
- cost_variable_name,
- cost_variable_index):
-
- # ensure that the cost variable exists on each scenario
- # instance, and that the index is valid. if so, add it to the
- # list of _VarDatas for scenarios at this tree node.
- for scenario in self._scenarios:
- scenario_instance = scenario._instance
- cost_variable = \
- scenario_instance.find_component(cost_variable_name)
-
- if cost_variable is None:
- raise ValueError("Cost variable=%s associated with "
- "stage=%s is not present in model=%s; "
- "scenario tree construction failed"
- % (cost_variable_name,
- self._stage._name,
- scenario_instance.name))
- if not cost_variable.ctype in [Var,Expression,Objective]:
- raise RuntimeError("The component=%s associated with stage=%s "
- "is present in model=%s but is not a "
- "variable or expression - type=%s"
- % (cost_variable_name,
- self._stage._name,
- scenario_instance.name,
- cost_variable.ctype))
- if cost_variable_index not in cost_variable:
- raise RuntimeError("The index %s is not defined for cost "
- "variable=%s on model=%s"
- % (cost_variable_index,
- cost_variable_name,
- scenario_instance.name))
- self._cost_variable_datas.append(
- (cost_variable[cost_variable_index],
- scenario._probability))
-
- #
- # given a set of scenario instances, compute the set of indices
- # being blended for each variable at this node. populates the
- # _variable_indices and _variable_values attributes of a tree
- # node.
- #
-
- def populateVariableIndicesAndValues(self,
- id_labeler=None,
- name_index_to_id_map=None,
- initialize_solution_data=True):
- self._variable_indices = {}
- self._variable_datas = {}
- self._standard_variable_ids = set()
- self._derived_variable_ids = set()
-
- stage_variables = self._stage._variable_templates
- for component_name in sorted(iterkeys(stage_variables)):
- self.updateVariableIndicesAndValues(
- component_name,
- stage_variables[component_name],
- derived=False,
- id_labeler=id_labeler,
- name_index_to_id_map=name_index_to_id_map)
- node_variables = self._variable_templates
- for component_name in sorted(iterkeys(node_variables)):
- self.updateVariableIndicesAndValues(
- component_name,
- node_variables[component_name],
- derived=False,
- id_labeler=id_labeler,
- name_index_to_id_map=name_index_to_id_map)
-
- stage_derived_variables = self._stage._derived_variable_templates
- for component_name in sorted(iterkeys(stage_derived_variables)):
- self.updateVariableIndicesAndValues(
- component_name,
- stage_derived_variables[component_name],
- derived=True,
- id_labeler=id_labeler,
- name_index_to_id_map=name_index_to_id_map)
- node_derived_variables = self._derived_variable_templates
- for component_name in sorted(iterkeys(node_derived_variables)):
- self.updateVariableIndicesAndValues(
- component_name,
- node_derived_variables[component_name],
- derived=True,
- id_labeler=id_labeler,
- name_index_to_id_map=name_index_to_id_map)
-
- self.updateCostVariableIndexAndValue(self._cost_variable[0],
- self._cost_variable[1])
-
- if not initialize_solution_data:
- return
-
- # Create a fully populated scenario tree node.
- if not self.is_leaf_node():
- self._minimums = dict.fromkeys(self._variable_ids,0)
- self._maximums = dict.fromkeys(self._variable_ids,0)
- # this is the true variable average at the node (unmodified)
- self._averages = dict.fromkeys(self._variable_ids,0)
- # this is the xbar used in the PH objective.
- self._xbars = dict.fromkeys(self._standard_variable_ids,None)
- # this is the blend used in the PH objective
- self._blend = dict.fromkeys(self._standard_variable_ids,None)
- # For the dual ph algorithm
- self._wbars = dict.fromkeys(self._standard_variable_ids,None)
-
- for scenario in self._scenarios:
-
- scenario._w[self._name] = \
- dict.fromkeys(self._standard_variable_ids,None)
- scenario._rho[self._name] = \
- dict.fromkeys(self._standard_variable_ids,None)
-
- for scenario in self._scenarios:
- scenario._x[self._name] = \
- dict.fromkeys(self._variable_ids,None)
-
- #
- # copies the parameter values values from the _averages attribute
- # into the _solution attribute - only for active variable values.
- # for leaf nodes, simply copies the values from the _VarValue objects
- # at that node - because there are no statistics maintained.
- #
-
- def snapshotSolutionFromAverages(self):
- self._solution = {}
- if self.is_leaf_node():
- self._solution.update(self._scenarios[0]._x[self._name])
- else:
- self._solution.update(self._averages)
-
- #
- # computes the solution values from the composite scenario
- # solutions at this tree node.
- #
-
- # Note: Trying to work this function out of the code. The only solution
- # we should get used to working with is that stored on the scenario
- # objects
- def XsnapshotSolutionFromInstances(self):
-
- self._solution = {}
-
- for variable_id in self._standard_variable_ids:
-
- var_datas = self._variable_datas[variable_id]
- # the following loop is just a sanity check.
- for var_data, scenario_probability in var_datas:
- # a variable that is fixed will be flagged as unused.
- if (var_data.stale) and (not var_data.fixed):
- # Note: At this point the only way to get the name
- # of the scenario for this specific vardata
- # in general is to print its full name
- # This will either be "MASTER", the bundle name,
- # or the scenario name The important thing is that
- # we always have the scenario name somewhere in
- # the variable name we print
- model_name = var_data.model().name
- full_name = model_name+"."+var_data.name
- if not self.is_leaf_node():
- print("CAUTION: Encountered variable=%s "
- "on node %s that is not in use within its "
- "respective scenario instance but the scenario tree "
- "specification indicates that non-anticipativity is to "
- "be enforced; the variable should either be eliminated "
- "from the model or from the scenario tree specification."
- % (full_name, self._name))
- else:
- print("CAUTION: Encountered variable=%s "
- "on leaf node %s that is not in use within "
- "its respective scenario instance. This can be indicative "
- "of a modeling error; the variable should either be "
- "eliminated from the model or from the scenario tree "
- "specification." % (full_name, self._name))
-
- # if a variable is stale, it could be because it is fixed,
- # in which case, we want to snapshot the average value
- avg = sum(scenario_probability * value(var_data)
- for var_data, scenario_probability in var_datas
- if (not var_data.stale) or var_data.fixed)
-
- # the node probability is allowed to be zero in the
- # scenario tree specification. this is useful in cases
- # where one wants to temporarily ignore certain scenarios.
- # in this case, just skip reporting of variables for that
- # node.
- if self._probability > 0.0:
- avg /= self._probability
-
- self._solution[variable_id] = avg
-
- for variable_id in self._derived_variable_ids:
-
- var_datas = self._variable_datas[variable_id]
-
- avg = sum(scenario_probability * value(var_data)
- for var_data, scenario_probability in var_datas)
-
- # the node probability is allowed to be zero in the
- # scenario tree specification. This is useful in cases
- # where one wants to temporarily ignore certain scenarios.
- # in this case, just skip reporting of variables for that
- # node.
- if self._probability > 0.0:
- avg /= self._probability
-
- self._solution[variable_id] = avg
-
- def snapshotSolutionFromScenarios(self):
-
- self._solution = {}
-
- for variable_id in self._variable_ids:
-
- var_values = []
- avg = 0.0
- for scenario in self._scenarios:
- val = scenario._x[self.name].get(variable_id)
- if val is not None:
- var_values.append((val, scenario._probability))
- else:
- avg = None
- break
-
- if avg is not None:
-
- # the following loop is just a sanity check.
- for scenario in self._scenarios:
- scenario_probability = scenario._probability
- var_value = scenario._x[self._name][variable_id]
- is_fixed = scenario.is_variable_fixed(self, variable_id)
- is_stale = scenario.is_variable_stale(self, variable_id)
- # a variable that is fixed will be flagged as unused.
- if is_stale and (not is_fixed):
- variable_name, index = self._variable_ids[variable_id]
- full_name = variable_name+indexToString(index)
- if not self.is_leaf_node():
- print("CAUTION: Encountered variable=%s "
- "on node %s that is not in use within its "
- "respective scenario %s but the scenario tree "
- "specification indicates that non-anticipativity is "
- "to be enforced; the variable should either be "
- "eliminated from the model or from the scenario "
- "tree specification." % (full_name,
- self._name,
- scenario._name))
- else:
- print("CAUTION: Encountered variable=%s "
- "on leaf node %s that is not in use within "
- "its respective scenario %s. This can be indicative "
- "of a modeling error; the variable should either be "
- "eliminated from the model or from the scenario "
- "tree specification." % (full_name,
- self._name,
- scenario._name))
- else:
- avg += scenario_probability * var_value
-
- # the node probability is allowed to be zero in the
- # scenario tree specification. this is useful in cases
- # where one wants to temporarily ignore certain scenarios.
- # in this case, just skip reporting of variables for that
- # node.
- if self._probability > 0.0:
- avg /= self._probability
-
- self._solution[variable_id] = avg
-
- #
- # a utility to compute the cost of the current node plus the expected costs of child nodes.
- #
-
- def computeExpectedNodeCost(self):
-
- stage_name = self._stage._name
- if any(scenario._stage_costs[stage_name] is None \
- for scenario in self._scenarios):
- return None
-
- my_cost = self._scenarios[0]._stage_costs[stage_name]
- # Don't assume the node has converged, this can
- # result in misleading output
- # UPDATE: It turns out this entire function is misleading
- # it will be removed
- """
- my_cost = sum(scenario._stage_costs[stage_name] * scenario._probability \
- for scenario in self._scenarios)
- my_cost /= sum(scenario._probability for scenario in self._scenarios)
- """
- # This version implicitly assumes convergence (which can be garbage for ph)
-
- children_cost = 0.0
- for child in self._children:
- child_cost = child.computeExpectedNodeCost()
- if child_cost is None:
- return None
- else:
- children_cost += (child._conditional_probability * child_cost)
- return my_cost + children_cost
-
- #
- # a simple predicate to check if this tree node belongs to the
- # last stage in the scenario tree.
- #
- def is_leaf_node(self):
-
- return self._stage.is_last_stage()
-
- #
- # a utility to determine if the input variable name/index pair is
- # a derived variable.
- #
- def is_derived_variable(self, variable_name, variable_index):
- return (variable_name, variable_index) in self._name_index_to_id
-
- #
- # a utility to extract the value for the input name/index pair.
- #
- def get_variable_value(self, name, index):
-
- try:
- variable_id = self._name_index_to_id[(name,index)]
- except KeyError:
- raise ValueError("No ID for variable=%s, index=%s "
- "is defined for scenario tree "
- "node=%s" % (name, index, self._name))
-
- try:
- return self._solution[variable_id]
- except KeyError:
- raise ValueError("No value for variable=%s, index=%s "
- "is defined for scenario tree "
- "node=%s" % (name, index, self._name))
-
- #
- # fix the indicated input variable / index pair to the input value.
- #
- def fix_variable(self, variable_id, fix_value):
- self._fix_queue[variable_id] = (self.VARIABLE_FIXED, fix_value)
-
- #
- # free the indicated input variable / index pair to the input value.
- #
- def free_variable(self, variable_id):
- self._fix_queue[variable_id] = (self.VARIABLE_FREED, None)
-
- def is_variable_integer(self, variable_id):
- return variable_id in self._integer
-
- def is_variable_binary(self, variable_id):
- return variable_id in self._binary
- is_variable_boolean = is_variable_binary
-
- def is_variable_semicontinuous(self, variable_id):
- return variable_id in self._semicontinuous
-
- def is_variable_discrete(self, variable_id):
- return self.is_variable_integer(variable_id) or \
- self.is_variable_binary(variable_id) or \
- self.is_variable_semicontinuous(variable_id)
-
- def is_variable_fixed(self, variable_id):
- return variable_id in self._fixed
-
- def push_xbar_to_instances(self):
- arbitrary_instance = self._scenarios[0]._instance
- assert arbitrary_instance != None
-
- # Note: the PHXBAR Param is shared amongst the
- # scenarios in a tree node, so it's only
- # necessary to grab the Param from an arbitrary
- # scenario for each node and update once
- xbar_parameter_name = "PHXBAR_"+str(self._name)
- xbar_parameter = arbitrary_instance.find_component(xbar_parameter_name)
- xbar_parameter.store_values(self._xbars)
-
- def push_fix_queue_to_instances(self):
- have_instances = (self._scenarios[0]._instance != None)
- for variable_id, (fixed_status, new_value) in iteritems(self._fix_queue):
- if fixed_status == self.VARIABLE_FREED:
- assert new_value is None
- if have_instances:
- for var_data, scenario_probability in \
- self._variable_datas[variable_id]:
- var_data.free()
- del self._fixed[variable_id]
- elif fixed_status == self.VARIABLE_FIXED:
- if have_instances:
- for var_data, scenario_probability in \
- self._variable_datas[variable_id]:
- var_data.fix(new_value)
- self._fixed[variable_id] = new_value
- else:
- raise ValueError("Unexpected fixed status %s for variable with "
- "scenario tree id %s" % (fixed_status,
- variable_id))
- self.clear_fix_queue()
-
- def push_all_fixed_to_instances(self):
- have_instances = (self._scenarios[0]._instance != None)
-
- for variable_id, fix_value in iteritems(self._fixed):
- if have_instances:
- for var_data, scenario_probability in \
- self._variable_datas[variable_id]:
- var_data.fix(fix_value)
- self._fixed[variable_id] = fix_value
-
- self.push_fix_queue_to_instances()
-
- def has_fixed_in_queue(self):
- return any((v[0] == self.VARIABLE_FIXED) \
- for v in itervalues(self._fix_queue))
-
- def has_freed_in_queue(self):
- return any((v[0] == self.VARIABLE_FREED) \
- for v in itervalues(self._fix_queue))
-
- def clear_fix_queue(self):
-
- self._fix_queue.clear()
-
-class ScenarioTreeStage(object):
-
- """ Constructor
- """
- def __init__(self):
-
- self._name = ""
-
- # a collection of ScenarioTreeNode objects associated with this stage.
- self._tree_nodes = []
-
- # the parent scenario tree for this stage.
- self._scenario_tree = None
-
- # a map between a variable name and a list of original index
- # match templates, specified as strings. we want to maintain
- # these for a variety of reasons, perhaps the most important
- # being that for output purposes. specific indices that match
- # belong to the tree node, as that may be specific to a tree
- # node.
- self._variable_templates = {}
-
- # same as above, but for derived stage variables.
- self._derived_variable_templates = {}
-
- # a tuple consisting of (1) the name of the variable that
- # stores the stage-specific cost in all scenarios and (2) the
- # corresponding index *string* - this is converted in the tree
- # node to a real index.
- self._cost_variable = None
-
- @property
- def name(self):
- return self._name
-
- @property
- def nodes(self):
- return self._tree_nodes
-
- @property
- def scenario_tree(self):
- return self._scenario_tree
-
- #
- # add a new variable to the stage, which will include updating the
- # solution maps for each associated ScenarioTreeNode.
- #
- def add_variable(self,
- variable_name,
- new_match_template,
- create_variable_ids=True):
-
- labeler = None
- if create_variable_ids is True:
- labeler = self._scenario_tree._id_labeler
-
- existing_match_templates = self._variable_templates.setdefault(variable_name, [])
- existing_match_templates.append(new_match_template)
-
- for tree_node in self._tree_nodes:
- tree_node.updateVariableIndicesAndValues(variable_name,
- new_match_template,
- derived=False,
- id_labeler=labeler)
-
- #
- # a simple predicate to check if this stage is the last stage in
- # the scenario tree.
- #
- def is_last_stage(self):
-
- return self == self._scenario_tree._stages[-1]
-
-class Scenario(object):
-
- """ Constructor
- """
- def __init__(self):
-
- self._name = None
- # allows for construction of node list
- self._leaf_node = None
- # sequence from parent to leaf of ScenarioTreeNodes
- self._node_list = []
- # the unconditional probability for this scenario, computed from the node list
- self._probability = 0.0
- # the Pyomo instance corresponding to this scenario.
- self._instance = None
- self._instance_cost_expression = None
- self._instance_objective = None
- self._instance_original_objective_object = None
- self._objective_sense = None
- self._objective_name = None
-
- # The value of the (possibly augmented) objective function
- self._objective = None
- # The value of the original objective expression
- # (which should be the sum of the stage costs)
- self._cost = None
- # The individual stage cost values
- self._stage_costs = {}
- # The value of the ph weight term piece of the objective (if it exists)
- self._weight_term_cost = None
- # The value of the ph proximal term piece of the objective (if it exists)
- self._proximal_term_cost = None
- # The value of the scenariotree variables belonging to this scenario
- # (dictionary nested by node name)
- self._x = {}
- # The value of the weight terms belonging to this scenario
- # (dictionary nested by node name)
- self._w = {}
- # The value of the rho terms belonging to this scenario
- # (dictionary nested by node name)
- self._rho = {}
-
- # This set of fixed or reported stale variables
- # in each tree node
- self._fixed = {}
- self._stale = {}
-
- @property
- def name(self):
- return self._name
-
- @property
- def leaf_node(self):
- return self._leaf_node
-
- @property
- def node_list(self):
- return tuple(self._node_list)
-
- @property
- def probability(self):
- return self._probability
-
- @property
- def instance(self):
- return self._instance
-
- def get_current_objective(self):
- return self._objective
-
- def get_current_cost(self):
- return self._cost
-
- def get_current_stagecost(self, stage_name):
- return self._stage_costs[stage_name]
-
- #
- # a utility to compute the stage index for the input tree node.
- # the returned index is 0-based.
- #
-
- def node_stage_index(self, tree_node):
- return self._node_list.index(tree_node)
-
- def is_variable_fixed(self, tree_node, variable_id):
-
- return variable_id in self._fixed[tree_node._name]
-
- def is_variable_stale(self, tree_node, variable_id):
-
- return variable_id in self._stale[tree_node._name]
-
- def update_solution_from_instance(self, stages=None):
-
- scenario_instance = self._instance
- scenariotree_sm_bySymbol = \
- scenario_instance._ScenarioTreeSymbolMap.bySymbol
- self._objective = self._instance_objective(exception=False)
- self._cost = self._instance_cost_expression(exception=False)
- for tree_node in self._node_list:
- cost_variable_name, cost_variable_index = \
- tree_node._cost_variable
- stage_cost_component = \
- self._instance.find_component(cost_variable_name)
- self._stage_costs[tree_node.stage.name] = \
- stage_cost_component[cost_variable_index](exception=False)
-# if abs(sum(self._stage_costs.values()) - self._cost) > 1e-6:
-# logger.warning("The value of the original objective on scenario "
-# "%s (%s) does not equal the sum of the stage "
-# "costs (%s) reported for that scenario."
-# % (self.name, self._cost, sum(self._stage_costs.values())))
- self._weight_term_cost = \
- scenario_instance.PHWEIGHT_EXPRESSION(exception=False) \
- if (hasattr(scenario_instance,"PHWEIGHT_EXPRESSION") and \
- (scenario_instance.PHWEIGHT_EXPRESSION is not None)) \
- else None
- self._proximal_term_cost = \
- scenario_instance.PHPROXIMAL_EXPRESSION(exception=False) \
- if (hasattr(scenario_instance,"PHPROXIMAL_EXPRESSION") and \
- (scenario_instance.PHPROXIMAL_EXPRESSION is not None)) \
- else None
-
- for tree_node in self._node_list:
- if (stages is None) or (tree_node.stage.name in stages):
- # Some of these might be Expression objects so we use the
- # __call__ method rather than directly accessing .value
- # (since we want a number)
- self._x[tree_node.name].update(
- (variable_id,
- scenariotree_sm_bySymbol[variable_id](exception=False)) \
- for variable_id in tree_node._variable_ids)
-
- scenario_fixed = self._fixed[tree_node.name]
- scenario_stale = self._stale[tree_node.name]
- scenario_fixed.clear()
- scenario_stale.clear()
- for variable_id in tree_node._variable_ids:
- vardata = scenariotree_sm_bySymbol[variable_id]
- if vardata.is_expression_type():
- continue
- if vardata.fixed:
- scenario_fixed.add(variable_id)
- if vardata.stale:
- scenario_stale.add(variable_id)
- else:
- self._x[tree_node.name].clear()
- self._fixed[tree_node.name].clear()
- self._stale[tree_node.name].clear()
-
- def push_solution_to_instance(self):
-
- scenario_instance = self._instance
- scenariotree_sm_bySymbol = \
- scenario_instance._ScenarioTreeSymbolMap.bySymbol
- for tree_node in self._node_list:
- stage_name = tree_node._stage.name
- cost_variable_name, cost_variable_index = \
- tree_node._cost_variable
- stage_cost_component = \
- self._instance.find_component(cost_variable_name)[cost_variable_index]
- # Some of these might be Expression objects so we check
- # for is_expression_type before changing.value
- if not stage_cost_component.is_expression_type():
- stage_cost_component.value = self._stage_costs[stage_name]
-
- for tree_node in self._node_list:
- # Some of these might be Expression objects so we check
- # for is_expression_type before changing.value
- for variable_id, var_value in iteritems(self._x[tree_node._name]):
- compdata = scenariotree_sm_bySymbol[variable_id]
- if not compdata.is_expression_type():
- compdata.value = var_value
-
- for variable_id in self._fixed[tree_node._name]:
- vardata = scenariotree_sm_bySymbol[variable_id]
- vardata.fix()
-
- for variable_id in self._stale[tree_node._name]:
- vardata = scenariotree_sm_bySymbol[variable_id]
- vardata.stale = True
-
- def copy_solution(self, translate_ids=None):
-
- solution = {}
- solution['objective'] = self._objective
- solution['cost'] = self._cost
- solution['stage costs'] = copy.deepcopy(self._stage_costs)
- solution['weight term cost'] = self._weight_term_cost
- solution['proximal term cost'] = self._proximal_term_cost
- if translate_ids is None:
- solution['x'] = copy.deepcopy(self._x)
- solution['fixed'] = copy.deepcopy(self._fixed)
- solution['stale'] = copy.deepcopy(self._stale)
- else:
- resx = solution['x'] = {}
- for tree_node_name, tree_node_x in iteritems(self._x):
- tree_node_translate_ids = translate_ids[tree_node_name]
- resx[tree_node_name] = \
- dict((tree_node_translate_ids[scenario_tree_id],val) \
- for scenario_tree_id, val in \
- iteritems(tree_node_x))
- resfixed = solution['fixed'] = {}
- # NOTE: This function is frequently called to generate
- # a set of results that is transmitted over the wire
- # with Pyro. Some of the serializers used by Pyro4
- # have issues with set() objects, so we convert them
- # to tuples here and then convert them back to
- # set objects in the set_solution() method.
- for tree_node_name, tree_node_fixed in iteritems(self._fixed):
- tree_node_translate_ids = translate_ids[tree_node_name]
- resfixed[tree_node_name] = \
- tuple(set(tree_node_translate_ids[scenario_tree_id] \
- for scenario_tree_id in tree_node_fixed))
- resstale = solution['stale'] = {}
- for tree_node_name, tree_node_stale in iteritems(self._stale):
- tree_node_translate_ids = translate_ids[tree_node_name]
- resstale[tree_node_name] = \
- tuple(set(tree_node_translate_ids[scenario_tree_id] \
- for scenario_tree_id in tree_node_stale))
- return solution
-
- def set_solution(self, solution):
-
- self._objective = solution['objective']
- self._cost = solution['cost']
- assert set(solution['stage costs'].keys()) == set(self._stage_costs.keys())
- self._stage_costs = copy.deepcopy(solution['stage costs'])
-# if abs(sum(self._stage_costs.values()) - self._cost) > 1e-6:
-# logger.warning("The value of the original objective on scenario "
-# "%s (%s) does not equal the sum of the stage "
-# "costs (%s) reported for that scenario."
-# % (self.name, self._cost, sum(self._stage_costs.values())))
- self._weight_term_cost = solution['weight term cost']
- self._proximal_term_cost = solution['proximal term cost']
- assert set(solution['x'].keys()) == set(self._x.keys())
- self._x = copy.deepcopy(solution['x'])
- assert set(solution['fixed'].keys()) == set(self._fixed.keys())
- assert set(solution['stale'].keys()) == set(self._stale.keys())
- # See note in copy_solution method about converting
- # these items back to set() objects
- for node_name, fixed_ids in solution['fixed'].items():
- self._fixed[node_name] = set(fixed_ids)
- for node_name, stale_ids in solution['stale'].items():
- self._stale[node_name] = set(stale_ids)
-
- def push_w_to_instance(self):
- assert self._instance != None
- for tree_node in self._node_list[:-1]:
- weight_parameter_name = "PHWEIGHT_"+str(tree_node._name)
- weight_parameter = self._instance.find_component(weight_parameter_name)
- weight_parameter.store_values(self._w[tree_node._name])
-
- def push_rho_to_instance(self):
- assert self._instance != None
-
- for tree_node in self._node_list[:-1]:
- rho_parameter_name = "PHRHO_"+str(tree_node._name)
- rho_parameter = self._instance.find_component(rho_parameter_name)
- rho_parameter.store_values(self._rho[tree_node._name])
-
- #
- # a utility to determine the stage to which the input variable belongs.
- #
-
- def variableNode(self, vardata, instance=None):
-
- if instance is None:
- instance = vardata.parent_component().model()
- assert instance is not None
-
- try:
- variable_id = instance._ScenarioTreeSymbolMap.byObject[id(vardata)]
- for this_node in self._node_list:
- if variable_id in this_node._variable_ids:
- return this_node
- except KeyError:
- for this_node in self._node_list:
- cost_variable = this_node._cost_variable
- if cost_variable[0] is not None:
- if vardata is \
- instance.find_component(
- cost_variable[0])[cost_variable[1]]:
- return this_node
-
- raise KeyError("Variable="+str(vardata.name)+" does "
- "not belong to any node in the scenario tree")
-
- def variableNode_byNameIndex(self, variable_name, index):
-
- tuple_to_check = (variable_name,index)
-
- for this_node in self._node_list:
- if tuple_to_check in this_node._name_index_to_id:
- return this_node
-
- for this_node in self._node_list:
- if tuple_to_check == this_node._cost_variable:
- return this_node
-
- raise KeyError("Variable="+str(variable_name)+", "
- "index="+indexToString(index)+" does not "
- "belong to any node in the scenario tree")
-
- #
- # a utility to determine the stage to which the input constraint "belongs".
- # a constraint belongs to the latest stage in which referenced variables
- # in the constraint appears in that stage.
- # input is a constraint is of type "Constraint", and an index of that
- # constraint - which might be None in the case of non-indexed constraints.
- # currently doesn't deal with SOS constraints, for no real good reason.
- # returns an instance of a ScenarioTreeStage object.
- # IMPT: this method works on the standard representation ("repn" attribute)
- # of a constraint. this implies that pre-processing of the instance
- # has been performed.
- # NOTE: there is still the issue of whether the contained variables really
- # belong to the same model, but that is a different issue we won't
- # address right now (e.g., what does it mean for a constraint in an
- # extensive form binding instance to belong to a stage?).
- #
-
- def constraintNode(self,
- constraintdata,
- repn=None,
- instance=None,
- assume_last_stage_if_missing=False):
-
- deepest_node_index = -1
- deepest_node = None
-
- vardata_list = None
- if isinstance(constraintdata, (SOSConstraint, _SOSConstraintData)):
- vardata_list = constraintdata.get_variables()
-
- else:
- if repn is None:
- repn = generate_standard_repn(constraintdata.body, quadratic=False)
-
- vardata_list = repn.linear_vars
- if len(repn.nonlinear_vars):
- vardata_list += repn.nonlinear_vars
-
- for var_data in vardata_list:
-
- try:
- var_node = self.variableNode(var_data, instance=instance)
- except KeyError:
- if assume_last_stage_if_missing:
- return self._leaf_node
- model_name = var_data.model().name
- full_name = model_name+"."+var_data.name
- raise RuntimeError("Method constraintNode in class "
- "ScenarioTree encountered a constraint "
- "with variable %s "
- "that does not appear to be assigned to "
- "any node in the scenario tree" % full_name)
-
- var_node_index = self._node_list.index(var_node)
-
- if var_node_index > deepest_node_index:
- deepest_node_index = var_node_index
- deepest_node = var_node
-
- return deepest_node
-
-class ScenarioTreeBundle(object):
-
- def __init__(self):
-
- self._name = None
- self._scenario_names = []
- # This is a compressed scenario tree, just for the bundle.
- self._scenario_tree = None
- # the absolute probability of scenarios associated with this
- # node in the scenario tree.
- self._probability = 0.0
-
- @property
- def name(self):
- return self._name
-
- @property
- def scenario_names(self):
- return self._scenario_names
-
- @property
- def scenario_tree(self):
- return self._scenario_tree
-
- @property
- def probability(self):
- return self._probability
-
-class ScenarioTree(object):
-
- # a utility to construct scenario bundles.
- def _construct_scenario_bundles(self, bundles):
-
- for bundle_name in bundles:
-
- scenario_list = []
- bundle_probability = 0.0
- for scenario_name in bundles[bundle_name]:
- scenario_list.append(scenario_name)
- bundle_probability += \
- self._scenario_map[scenario_name].probability
-
- scenario_tree_for_bundle = self.make_compressed(scenario_list,
- normalize=True)
-
- scenario_tree_for_bundle.validate()
-
- new_bundle = ScenarioTreeBundle()
- new_bundle._name = bundle_name
- new_bundle._scenario_names = scenario_list
- new_bundle._scenario_tree = scenario_tree_for_bundle
- new_bundle._probability = bundle_probability
-
- self._scenario_bundles.append(new_bundle)
- self._scenario_bundle_map[new_bundle.name] = new_bundle
-
- #
- # a utility to construct the stage objects for this scenario tree.
- # operates strictly by side effects, initializing the self
- # _stages and _stage_map attributes.
- #
-
- def _construct_stages(self,
- stage_names,
- stage_variable_names,
- stage_cost_variable_names,
- stage_derived_variable_names):
-
- # construct the stage objects, which will leave them
- # largely uninitialized - no variable information, in particular.
- for stage_name in stage_names:
-
- new_stage = ScenarioTreeStage()
- new_stage._name = stage_name
- new_stage._scenario_tree = self
-
- for variable_string in stage_variable_names[stage_name]:
- if isVariableNameIndexed(variable_string):
- variable_name, match_template = \
- extractVariableNameAndIndex(variable_string)
- else:
- variable_name = variable_string
- match_template = ""
- if variable_name not in new_stage._variable_templates:
- new_stage._variable_templates[variable_name] = []
- new_stage._variable_templates[variable_name].append(match_template)
-
- # not all stages have derived variables defined
- if stage_name in stage_derived_variable_names:
- for variable_string in stage_derived_variable_names[stage_name]:
- if isVariableNameIndexed(variable_string):
- variable_name, match_template = \
- extractVariableNameAndIndex(variable_string)
- else:
- variable_name = variable_string
- match_template = ""
- if variable_name not in new_stage._derived_variable_templates:
- new_stage._derived_variable_templates[variable_name] = []
- new_stage._derived_variable_templates[variable_name].append(match_template)
-
- # de-reference is required to access the parameter value
- # TBD March 2020: make it so the stages always know their cost names.
- # dlw March 2020: when coming from NetworkX, we don't know these yet!!
- cost_variable_string = stage_cost_variable_names[stage_name].value
- if cost_variable_string is not None:
- if isVariableNameIndexed(cost_variable_string):
- cost_variable_name, cost_variable_index = \
- extractVariableNameAndIndex(cost_variable_string)
- else:
- cost_variable_name = cost_variable_string
- cost_variable_index = None
- new_stage._cost_variable = (cost_variable_name, cost_variable_index)
-
- self._stages.append(new_stage)
- self._stage_map[stage_name] = new_stage
-
- """ Constructor
- Arguments:
- scenarioinstance - the reference (deterministic) scenario instance.
- scenariotreeinstance - the pyomo model specifying all scenario tree (text) data.
- scenariobundlelist - a list of scenario names to retain, i.e., cull the rest to create a reduced tree!
- """
- def __init__(self,
- scenariotreeinstance=None,
- scenariobundlelist=None):
-
- # some arbitrary identifier
- self._name = None
-
- # should be called once for each variable blended across a node
- #self._id_labeler = CounterLabeler()
- self._id_labeler = _CUIDLabeler()
-
- #
- # the core objects defining the scenario tree.
- #
-
- # collection of ScenarioTreeNodes
- self._tree_nodes = []
- # collection of ScenarioTreeStages - assumed to be in
- # time-order. the set (provided by the user) itself *must* be
- # ordered.
- self._stages = []
- # collection of Scenarios
- self._scenarios = []
- # collection of ScenarioTreeBundles
- self._scenario_bundles = []
-
- # dictionaries for the above.
- self._tree_node_map = {}
- self._stage_map = {}
- self._scenario_map = {}
- self._scenario_bundle_map = {}
-
- # a boolean indicating how data for scenario instances is specified.
- # possibly belongs elsewhere, e.g., in the PH algorithm.
- self._scenario_based_data = None
-
- if scenariotreeinstance is None:
- assert scenariobundlelist is None
- return
-
- node_ids = scenariotreeinstance.Nodes
- node_child_ids = scenariotreeinstance.Children
- node_stage_ids = scenariotreeinstance.NodeStage
- node_probability_map = scenariotreeinstance.ConditionalProbability
- stage_ids = scenariotreeinstance.Stages
- stage_variable_ids = scenariotreeinstance.StageVariables
- node_variable_ids = scenariotreeinstance.NodeVariables
- stage_cost_variable_ids = scenariotreeinstance.StageCost
- node_cost_variable_ids = scenariotreeinstance.NodeCost
- if any(scenariotreeinstance.StageCostVariable[i].value is not None
- for i in scenariotreeinstance.StageCostVariable):
- logger.warning("DEPRECATED: The 'StageCostVariable' scenario tree "
- "model parameter has been renamed to 'StageCost'. "
- "Please update your scenario tree structure model.")
- if any(stage_cost_variable_ids[i].value is not None
- for i in stage_cost_variable_ids):
- raise ValueError("The 'StageCostVariable' and 'StageCost' "
- "parameters can not both be used on a scenario "
- "tree structure model.")
- else:
- stage_cost_variable_ids = scenariotreeinstance.StageCostVariable
-
- if any(stage_cost_variable_ids[i].value is not None
- for i in stage_cost_variable_ids) and \
- any(node_cost_variable_ids[i].value is not None
- for i in node_cost_variable_ids):
- raise ValueError(
- "The 'StageCost' and 'NodeCost' parameters "
- "can not both be used on a scenario tree "
- "structure model.")
- stage_derived_variable_ids = scenariotreeinstance.StageDerivedVariables
- node_derived_variable_ids = scenariotreeinstance.NodeDerivedVariables
- scenario_ids = scenariotreeinstance.Scenarios
- scenario_leaf_ids = scenariotreeinstance.ScenarioLeafNode
- scenario_based_data = scenariotreeinstance.ScenarioBasedData
-
- # save the method for instance data storage.
- self._scenario_based_data = scenario_based_data()
-
- # the input stages must be ordered, for both output purposes
- # and knowledge of the final stage.
- if not stage_ids.isordered():
- raise ValueError(
- "An ordered set of stage IDs must be supplied in "
- "the ScenarioTree constructor")
-
- for node_id in node_ids:
- node_stage_id = node_stage_ids[node_id].value
- if node_stage_id != stage_ids.last():
- if (len(stage_variable_ids[node_stage_id]) == 0) and \
- (len(node_variable_ids[node_id]) == 0):
- raise ValueError(
- "Scenario tree node %s, belonging to stage %s, "
- "has not been declared with any variables. "
- "To fix this error, make sure that one of "
- "the sets StageVariables[%s] or NodeVariables[%s] "
- "is declared with at least one variable string "
- "template (e.g., x, x[*]) on the scenario tree "
- "or in ScenarioStructure.dat."
- % (node_id, node_stage_id, node_stage_id, node_id))
-
- #
- # construct the actual tree objects
- #
-
- # construct the stage objects w/o any linkages first; link them up
- # with tree nodes after these have been fully constructed.
- self._construct_stages(stage_ids,
- stage_variable_ids,
- stage_cost_variable_ids,
- stage_derived_variable_ids)
-
- # construct the tree node objects themselves in a first pass,
- # and then link them up in a second pass to form the tree.
- # can't do a single pass because the objects may not exist.
- for tree_node_name in node_ids:
-
- if tree_node_name not in node_stage_ids:
- raise ValueError("No stage is assigned to tree node=%s"
- % (tree_node_name))
-
- stage_name = value(node_stage_ids[tree_node_name])
- if stage_name not in self._stage_map:
- raise ValueError("Unknown stage=%s assigned to tree node=%s"
- % (stage_name, tree_node_name))
-
- node_stage = self._stage_map[stage_name]
- new_tree_node = ScenarioTreeNode(
- tree_node_name,
- value(node_probability_map[tree_node_name]),
- node_stage)
-
- # extract the node variable match templates
- for variable_string in node_variable_ids[tree_node_name]:
- if isVariableNameIndexed(variable_string):
- variable_name, match_template = \
- extractVariableNameAndIndex(variable_string)
- else:
- variable_name = variable_string
- match_template = ""
- if variable_name not in new_tree_node._variable_templates:
- new_tree_node._variable_templates[variable_name] = []
- new_tree_node._variable_templates[variable_name].append(match_template)
-
- cost_variable_string = node_cost_variable_ids[tree_node_name].value
- if cost_variable_string is not None:
- assert node_stage._cost_variable is None
- if isVariableNameIndexed(cost_variable_string):
- cost_variable_name, cost_variable_index = \
- extractVariableNameAndIndex(cost_variable_string)
- else:
- cost_variable_name = cost_variable_string
- cost_variable_index = None
- else:
- assert node_stage._cost_variable is not None
- cost_variable_name, cost_variable_index = \
- node_stage._cost_variable
- new_tree_node._cost_variable = (cost_variable_name, cost_variable_index)
-
- # extract the node derived variable match templates
- for variable_string in node_derived_variable_ids[tree_node_name]:
- if isVariableNameIndexed(variable_string):
- variable_name, match_template = \
- extractVariableNameAndIndex(variable_string)
- else:
- variable_name = variable_string
- match_template = ""
- if variable_name not in new_tree_node._derived_variable_templates:
- new_tree_node._derived_variable_templates[variable_name] = []
- new_tree_node._derived_variable_templates[variable_name].append(match_template)
-
- self._tree_nodes.append(new_tree_node)
- self._tree_node_map[tree_node_name] = new_tree_node
- self._stage_map[stage_name]._tree_nodes.append(new_tree_node)
-
- # link up the tree nodes objects based on the child id sets.
- for this_node in self._tree_nodes:
- this_node._children = []
- # otherwise, you're at a leaf and all is well.
- if this_node.name in node_child_ids:
- child_ids = node_child_ids[this_node.name]
- for child_id in child_ids:
- if child_id in self._tree_node_map:
- child_node = self._tree_node_map[child_id]
- this_node._children.append(child_node)
- if child_node._parent is None:
- child_node._parent = this_node
- else:
- raise ValueError(
- "Multiple parents specified for tree node=%s; "
- "existing parent node=%s; conflicting parent "
- "node=%s"
- % (child_id,
- child_node._parent.name,
- this_node.name))
- else:
- raise ValueError("Unknown child tree node=%s specified "
- "for tree node=%s"
- % (child_id, this_node.name))
-
- # at this point, the scenario tree nodes and the stages are set - no
- # two-pass logic necessary when constructing scenarios.
- for scenario_name in scenario_ids:
- new_scenario = Scenario()
- new_scenario._name = scenario_name
-
- if scenario_name not in scenario_leaf_ids:
- raise ValueError("No leaf tree node specified for scenario=%s"
- % (scenario_name))
- else:
- scenario_leaf_node_name = value(scenario_leaf_ids[scenario_name])
- if scenario_leaf_node_name not in self._tree_node_map:
- raise ValueError("Uknown tree node=%s specified as leaf "
- "of scenario=%s" %
- (scenario_leaf_node_name, scenario_name))
- else:
- new_scenario._leaf_node = \
- self._tree_node_map[scenario_leaf_node_name]
-
- current_node = new_scenario._leaf_node
- while current_node is not None:
- new_scenario._node_list.append(current_node)
- # links the scenarios to the nodes to enforce
- # necessary non-anticipativity
- current_node._scenarios.append(new_scenario)
- current_node = current_node._parent
- new_scenario._node_list.reverse()
- # This now loops root -> leaf
- probability = 1.0
- for current_node in new_scenario._node_list:
- probability *= current_node._conditional_probability
- # NOTE: The line placement below is a little weird, in that
- # it is embedded in a scenario loop - so the probabilities
- # for some nodes will be redundantly computed. But this works.
- current_node._probability = probability
-
- new_scenario._stage_costs[current_node.stage.name] = None
- new_scenario._x[current_node.name] = {}
- new_scenario._w[current_node.name] = {}
- new_scenario._rho[current_node.name] = {}
- new_scenario._fixed[current_node.name] = set()
- new_scenario._stale[current_node.name] = set()
-
- new_scenario._probability = probability
-
- self._scenarios.append(new_scenario)
- self._scenario_map[scenario_name] = new_scenario
-
- # for output purposes, it is useful to known the maximal
- # length of identifiers in the scenario tree for any
- # particular category. I'm building these up incrementally, as
- # they are needed. 0 indicates unassigned.
- self._max_scenario_id_length = 0
-
- # does the actual traversal to populate the members.
- self.computeIdentifierMaxLengths()
-
- # if a sub-bundle of scenarios has been specified, mark the
- # active scenario tree components and compress the tree.
- if scenariobundlelist is not None:
- self.compress(scenariobundlelist)
-
- # NEW SCENARIO BUNDLING STARTS HERE
- if value(scenariotreeinstance.Bundling[None]):
- bundles = OrderedDict()
- for bundle_name in scenariotreeinstance.Bundles:
- bundles[bundle_name] = \
- list(scenariotreeinstance.BundleScenarios[bundle_name])
- self._construct_scenario_bundles(bundles)
-
- @property
- def scenarios(self):
- return self._scenarios
-
- @property
- def bundles(self):
- return self._scenario_bundles
-
- @property
- def subproblems(self):
- if self.contains_bundles():
- return self._scenario_bundles
- else:
- return self._scenarios
-
- @property
- def stages(self):
- return self._stages
-
- @property
- def nodes(self):
- return self._tree_nodes
-
- def is_bundle(self, object_name):
- return object_name in self._scenario_bundle_map
-
- def is_scenario(self, object_name):
- return object_name in self._scenario_map
-
- #
- # Updates the minimum, maximum, and average for all nodes
- # on this tree
- #
- def updateNodeStatistics(self):
- for tree_node in self._tree_nodes:
- tree_node.updateNodeStatistics()
-
- #
- # populate those portions of the scenario tree and associated
- # stages and tree nodes that reference the scenario instances
- # associated with the tree.
- #
-
- def linkInInstances(self,
- scenario_instance_map,
- objective_sense=None,
- create_variable_ids=True,
- master_scenario_tree=None,
- initialize_solution_data=True):
-
- if objective_sense not in (minimize, maximize, None):
- raise ValueError(
- "Invalid value (%r) for objective sense given to "
- "the linkInInstances method. Choices are: "
- "[minimize, maximize, None]" % (objective_sense))
-
- if create_variable_ids and \
- (master_scenario_tree is not None):
- raise RuntimeError(
- "The linkInInstances method of ScenarioTree objects "
- "cannot be invoked with both create_variable_ids=True "
- "and master_scenario_tree!=None")
-
- # propagate the scenario instances to the scenario tree object
- # structure.
- # NOTE: The input scenario instances may be a super-set of the
- # set of Scenario objects for this ScenarioTree.
- scenario_names = sorted(scenario_instance_map)
- master_has_instance = {}
- for scenario_name in scenario_names:
- scenario_instance = scenario_instance_map[scenario_name]
- if self.contains_scenario(scenario_name):
- master_has_instance[scenario_name] = False
- if master_scenario_tree is not None:
- master_scenario = \
- master_scenario_tree.get_scenario(scenario_name)
- if master_scenario._instance is not None:
- master_has_instance[scenario_name] = True
- _scenario = self.get_scenario(scenario_name)
- _scenario._instance = scenario_instance
-
- # link the scenario tree object structures to the instance components.
- self.populateVariableIndicesAndValues(
- create_variable_ids=create_variable_ids,
- master_scenario_tree=master_scenario_tree,
- initialize_solution_data=initialize_solution_data)
-
- # create the scenario cost expression to be used for the objective
- for scenario_name in scenario_names:
-
- scenario_instance = scenario_instance_map[scenario_name]
-
- if self.contains_scenario(scenario_name):
- scenario = self.get_scenario(scenario_name)
-
- if master_has_instance[scenario_name]:
- master_scenario = \
- master_scenario_tree.get_scenario(scenario_name)
- scenario._instance_cost_expression = \
- master_scenario._instance_cost_expression
- scenario._instance_objective = \
- master_scenario._instance_objective
- scenario._objective_sense =\
- master_scenario._objective_sense
- scenario._objective_name = master_scenario
- continue
-
- user_objective = find_active_objective(scenario_instance,
- safety_checks=True)
- if objective_sense is None:
- if user_objective is None:
- raise RuntimeError(
- "An active Objective could not be found on "
- "instance for scenario %s." % (scenario_name))
- cost_expr_name = "_PySP_UserCostExpression"
- cost_expr = Expression(name=cost_expr_name,
- initialize=user_objective.expr)
- scenario_instance.add_component(cost_expr_name, cost_expr)
- scenario._instance_cost_expression = cost_expr
-
- # We have wrapped the original objective expression
- # in an Expression object so that other code can
- # augment the objective with other terms without
- # modifying the original objective expression. This
- # also allows us to easily reset the objective to its
- # original form
- user_objective.expr = cost_expr
- scenario._instance_objective = user_objective
- scenario._objective_sense = user_objective.sense
- scenario._objective_name = \
- scenario._instance_objective.name
-
- else:
-
- if user_objective is not None:
- print("*** Active Objective \'%s\' on scenario "
- "instance \'%s\' will not be used. ***"
- % (user_objective.name, scenario_name))
- user_objective.deactivate()
-
- cost = 0.0
- for node in scenario.node_list:
- stage_cost_var = \
- scenario_instance.\
- find_component(node._cost_variable[0])\
- [node._cost_variable[1]]
- cost += stage_cost_var
- cost_expr_name = "_PySP_CostExpression"
- cost_expr = Expression(name=cost_expr_name,
- initialize=cost)
- scenario_instance.add_component(cost_expr_name,cost_expr)
- scenario._instance_cost_expression = cost_expr
-
- cost_obj_name = "_PySP_CostObjective"
- cost_obj = Objective(name=cost_obj_name,
- expr=cost_expr,
- sense=objective_sense)
- scenario_instance.add_component(cost_obj_name,cost_obj)
- scenario._instance_objective = cost_obj
- scenario._instance_original_objective_object = \
- user_objective
- scenario._objective_sense = objective_sense
- scenario._objective_name = \
- scenario._instance_objective.name
-
- #
- # compute the set of variable indices being blended at each
- # node. this can't be done until all of the scenario instances are
- # available, as different scenarios can have different index sets.
- #
-
- def populateVariableIndicesAndValues(self,
- create_variable_ids=True,
- master_scenario_tree=None,
- initialize_solution_data=True):
- if (create_variable_ids == True) and \
- (master_scenario_tree != None):
- raise RuntimeError(
- "The populateVariableIndicesAndValues method of "
- "ScenarioTree objects cannot be invoked with both "
- "create_variable_ids=True and master_scenario_tree!=None")
-
- labeler = None
- if create_variable_ids:
- labeler = self._id_labeler
- for scenario in self.scenarios:
- labeler.update_cache(scenario.instance)
-
- for stage in self._stages:
- tree_node_list = sorted(stage._tree_nodes, key=lambda x: x.name)
- for tree_node in tree_node_list:
- name_index_to_id_map = None
- if master_scenario_tree is not None:
- name_index_to_id_map = master_scenario_tree.\
- get_node(tree_node.name).\
- _name_index_to_id
- tree_node.populateVariableIndicesAndValues(
- id_labeler=labeler,
- name_index_to_id_map=name_index_to_id_map,
- initialize_solution_data=initialize_solution_data)
-
- if labeler is not None:
- labeler.clear_cache()
-
- #
- # is the indicated scenario / bundle in the tree?
- #
-
- def contains_scenario(self, name):
- return name in self._scenario_map
-
- def contains_bundles(self):
- return len(self._scenario_bundle_map) > 0
-
- def contains_bundle(self, name):
- return name in self._scenario_bundle_map
-
- #
- # get the scenario / bundle object from the tree.
- #
-
- def get_scenario(self, name):
- return self._scenario_map[name]
-
- def get_bundle(self, name):
- return self._scenario_bundle_map[name]
-
- def get_subproblem(self, name):
- if self.contains_bundles():
- return self._scenario_bundle_map[name]
- else:
- return self._scenario_map[name]
-
- def get_scenario_bundle(self, name):
- if not self.contains_bundles():
- return None
- else:
- return self._scenario_bundle_map[name]
-
- # there are many contexts where manipulators of a scenario
- # tree simply need an arbitrary scenario to proceed...
- def get_arbitrary_scenario(self):
- return self._scenarios[0]
-
- def contains_node(self, name):
- return name in self._tree_node_map
-
- #
- # get the scenario tree node object from the tree
- #
- def get_node(self, name):
- return self._tree_node_map[name]
-
- #
- # utility for compressing or culling a scenario tree based on
- # a provided list of scenarios (specified by name) to retain -
- # all non-referenced components are eliminated. this particular
- # method compresses *in-place*, i.e., via direct modification
- # of the scenario tree structure. If normalize=True, all probabilities
- # (and conditional probabilities) are renormalized.
- #
-
- def compress(self,
- scenario_bundle_list,
- normalize=True):
-
- # scan for and mark all referenced scenarios and
- # tree nodes in the bundle list - all stages will
- # obviously remain.
- try:
-
- for scenario_name in scenario_bundle_list:
-
- scenario = self._scenario_map[scenario_name]
- scenario.retain = True
-
- # chase all nodes comprising this scenario,
- # marking them for retention.
- for node in scenario._node_list:
- node.retain = True
-
- except KeyError:
- raise ValueError("Scenario=%s selected for "
- "bundling not present in "
- "scenario tree"
- % (scenario_name))
-
- # scan for any non-retained scenarios and tree nodes.
- scenarios_to_delete = []
- tree_nodes_to_delete = []
- for scenario in self._scenarios:
- if hasattr(scenario, "retain"):
- delattr(scenario, "retain")
- else:
- scenarios_to_delete.append(scenario)
- del self._scenario_map[scenario.name]
-
- for tree_node in self._tree_nodes:
- if hasattr(tree_node, "retain"):
- delattr(tree_node, "retain")
- else:
- tree_nodes_to_delete.append(tree_node)
- del self._tree_node_map[tree_node.name]
-
- # JPW does not claim the following routines are
- # the most efficient. rather, they get the job
- # done while avoiding serious issues with
- # attempting to remove elements from a list that
- # you are iterating over.
-
- # delete all references to unmarked scenarios
- # and child tree nodes in the scenario tree node
- # structures.
- for tree_node in self._tree_nodes:
- for scenario in scenarios_to_delete:
- if scenario in tree_node._scenarios:
- tree_node._scenarios.remove(scenario)
- for node_to_delete in tree_nodes_to_delete:
- if node_to_delete in tree_node._children:
- tree_node._children.remove(node_to_delete)
-
- # delete all references to unmarked tree nodes
- # in the scenario tree stage structures.
- for stage in self._stages:
- for tree_node in tree_nodes_to_delete:
- if tree_node in stage._tree_nodes:
- stage._tree_nodes.remove(tree_node)
-
- # delete all unreferenced entries from the core scenario
- # tree data structures.
- for scenario in scenarios_to_delete:
- self._scenarios.remove(scenario)
- for tree_node in tree_nodes_to_delete:
- self._tree_nodes.remove(tree_node)
-
- #
- # Handle re-normalization of probabilities if requested
- #
- if normalize:
-
- # re-normalize the conditional probabilities of the
- # children at each tree node (leaf-to-root stage order).
- for stage in reversed(self._stages[:-1]):
-
- for tree_node in stage._tree_nodes:
- norm_factor = sum(child_tree_node._conditional_probability
- for child_tree_node
- in tree_node._children)
- # the user may specify that the probability of a
- # scenario is 0.0, and while odd, we should allow the
- # edge case.
- if norm_factor == 0.0:
- for child_tree_node in tree_node._children:
- child_tree_node._conditional_probability = 0.0
- else:
- for child_tree_node in tree_node._children:
- child_tree_node._conditional_probability /= norm_factor
-
- # update absolute probabilities (root-to-leaf stage order)
- for stage in self._stages[1:]:
- for tree_node in stage._tree_nodes:
- tree_node._probability = \
- tree_node._parent._probability * \
- tree_node._conditional_probability
-
- # update scenario probabilities
- for scenario in self._scenarios:
- scenario._probability = \
- scenario._leaf_node._probability
-
- # now that we've culled the scenarios, cull the bundles. do
- # this in two passes. in the first pass, we identify the names
- # of bundles to delete, by looking for bundles with deleted
- # scenarios. in the second pass, we delete the bundles from
- # the scenario tree, and normalize the probabilities of the
- # remaining bundles.
-
- # indices of the objects in the scenario tree bundle list
- bundles_to_delete = []
- for i in xrange(0,len(self._scenario_bundles)):
- scenario_bundle = self._scenario_bundles[i]
- for scenario_name in scenario_bundle._scenario_names:
- if scenario_name not in self._scenario_map:
- bundles_to_delete.append(i)
- break
- bundles_to_delete.reverse()
- for i in bundles_to_delete:
- deleted_bundle = self._scenario_bundles.pop(i)
- del self._scenario_bundle_map[deleted_bundle.name]
-
- sum_bundle_probabilities = \
- sum(bundle._probability for bundle in self._scenario_bundles)
- for bundle in self._scenario_bundles:
- bundle._probability /= sum_bundle_probabilities
-
- #
- # Returns a compressed tree using operations on the order of the
- # number of nodes in the compressed tree rather than the number of
- # nodes in the full tree (this method is more efficient than in-place
- # compression). If normalize=True, all probabilities
- # (and conditional probabilities) are renormalized.
- #
- # *** Bundles are ignored. The compressed tree will not have them ***
- #
- def make_compressed(self,
- scenario_bundle_list,
- normalize=False):
-
- compressed_tree = ScenarioTree()
- compressed_tree._scenario_based_data = self._scenario_based_data
- #
- # Copy Stage Data
- #
- for stage in self._stages:
- # copy everything but the list of tree nodes
- # and the reference to the scenario tree
- compressed_tree_stage = ScenarioTreeStage()
- compressed_tree_stage._name = stage.name
- compressed_tree_stage._variable_templates = copy.deepcopy(stage._variable_templates)
- compressed_tree_stage._derived_variable_templates = \
- copy.deepcopy(stage._derived_variable_templates)
- compressed_tree_stage._cost_variable = copy.deepcopy(stage._cost_variable)
- # add the stage object to the compressed tree
- compressed_tree._stages.append(compressed_tree_stage)
- compressed_tree._stages[-1]._scenario_tree = compressed_tree
-
- compressed_tree._stage_map = \
- dict((stage.name, stage) for stage in compressed_tree._stages)
-
- #
- # Copy Scenario and Node Data
- #
- compressed_tree_root = None
- for scenario_name in scenario_bundle_list:
- full_tree_scenario = self.get_scenario(scenario_name)
-
- compressed_tree_scenario = Scenario()
- compressed_tree_scenario._name = full_tree_scenario.name
- compressed_tree_scenario._probability = full_tree_scenario._probability
- compressed_tree._scenarios.append(compressed_tree_scenario)
-
- full_tree_node = full_tree_scenario._leaf_node
- ### copy the node
- compressed_tree_node = ScenarioTreeNode(
- full_tree_node.name,
- full_tree_node._conditional_probability,
- compressed_tree._stage_map[full_tree_node._stage.name])
- compressed_tree_node._variable_templates = \
- copy.deepcopy(full_tree_node._variable_templates)
- compressed_tree_node._derived_variable_templates = \
- copy.deepcopy(full_tree_node._derived_variable_templates)
- compressed_tree_node._scenarios.append(compressed_tree_scenario)
- compressed_tree_node._stage._tree_nodes.append(compressed_tree_node)
- compressed_tree_node._probability = full_tree_node._probability
- compressed_tree_node._cost_variable = full_tree_node._cost_variable
- ###
-
- compressed_tree_scenario._node_list.append(compressed_tree_node)
- compressed_tree_scenario._leaf_node = compressed_tree_node
- compressed_tree._tree_nodes.append(compressed_tree_node)
- compressed_tree._tree_node_map[compressed_tree_node.name] = \
- compressed_tree_node
-
- previous_compressed_tree_node = compressed_tree_node
- full_tree_node = full_tree_node._parent
- while full_tree_node.name not in compressed_tree._tree_node_map:
-
- ### copy the node
- compressed_tree_node = ScenarioTreeNode(
- full_tree_node.name,
- full_tree_node._conditional_probability,
- compressed_tree._stage_map[full_tree_node.stage.name])
- compressed_tree_node._variable_templates = \
- copy.deepcopy(full_tree_node._variable_templates)
- compressed_tree_node._derived_variable_templates = \
- copy.deepcopy(full_tree_node._derived_variable_templates)
- compressed_tree_node._probability = full_tree_node._probability
- compressed_tree_node._cost_variable = full_tree_node._cost_variable
- compressed_tree_node._scenarios.append(compressed_tree_scenario)
- compressed_tree_node._stage._tree_nodes.append(compressed_tree_node)
- ###
-
- compressed_tree_scenario._node_list.append(compressed_tree_node)
- compressed_tree._tree_nodes.append(compressed_tree_node)
- compressed_tree._tree_node_map[compressed_tree_node.name] = \
- compressed_tree_node
- previous_compressed_tree_node._parent = compressed_tree_node
- compressed_tree_node._children.append(previous_compressed_tree_node)
- previous_compressed_tree_node = compressed_tree_node
-
- full_tree_node = full_tree_node._parent
- if full_tree_node is None:
- compressed_tree_root = compressed_tree_node
- break
-
- # traverse the remaining nodes up to the root and update the
- # tree structure elements
- if full_tree_node is not None:
- compressed_tree_node = \
- compressed_tree._tree_node_map[full_tree_node.name]
- previous_compressed_tree_node._parent = compressed_tree_node
- compressed_tree_node._scenarios.append(compressed_tree_scenario)
- compressed_tree_node._children.append(previous_compressed_tree_node)
- compressed_tree_scenario._node_list.append(compressed_tree_node)
-
- compressed_tree_node = compressed_tree_node._parent
- while compressed_tree_node is not None:
- compressed_tree_scenario._node_list.append(compressed_tree_node)
- compressed_tree_node._scenarios.append(compressed_tree_scenario)
- compressed_tree_node = compressed_tree_node._parent
-
- # makes sure this list is in root to leaf order
- compressed_tree_scenario._node_list.reverse()
- assert compressed_tree_scenario._node_list[-1] is \
- compressed_tree_scenario._leaf_node
- assert compressed_tree_scenario._node_list[0] is \
- compressed_tree_root
-
- # initialize solution related dictionaries
- for compressed_tree_node in compressed_tree_scenario._node_list:
- compressed_tree_scenario._stage_costs[compressed_tree_node._stage.name] = None
- compressed_tree_scenario._x[compressed_tree_node.name] = {}
- compressed_tree_scenario._w[compressed_tree_node.name] = {}
- compressed_tree_scenario._rho[compressed_tree_node.name] = {}
- compressed_tree_scenario._fixed[compressed_tree_node.name] = set()
- compressed_tree_scenario._stale[compressed_tree_node.name] = set()
-
- compressed_tree._scenario_map = \
- dict((scenario.name, scenario) for scenario in compressed_tree._scenarios)
-
- #
- # Handle re-normalization of probabilities if requested
- #
- if normalize:
-
- # update conditional probabilities (leaf-to-root stage order)
- for compressed_tree_stage in reversed(compressed_tree._stages[:-1]):
-
- for compressed_tree_node in compressed_tree_stage._tree_nodes:
- norm_factor = \
- sum(compressed_tree_child_node._conditional_probability
- for compressed_tree_child_node
- in compressed_tree_node._children)
- # the user may specify that the probability of a
- # scenario is 0.0, and while odd, we should allow the
- # edge case.
- if norm_factor == 0.0:
- for compressed_tree_child_node in \
- compressed_tree_node._children:
- compressed_tree_child_node._conditional_probability = 0.0
-
- else:
- for compressed_tree_child_node in \
- compressed_tree_node._children:
- compressed_tree_child_node.\
- _conditional_probability /= norm_factor
-
- assert abs(compressed_tree_root._probability - 1.0) < 1e-5
- assert abs(compressed_tree_root._conditional_probability - 1.0) < 1e-5
-
- # update absolute probabilities (root-to-leaf stage order)
- for compressed_tree_stage in compressed_tree._stages[1:]:
- for compressed_tree_node in compressed_tree_stage._tree_nodes:
- compressed_tree_node._probability = \
- compressed_tree_node._parent._probability * \
- compressed_tree_node._conditional_probability
-
- # update scenario probabilities
- for compressed_tree_scenario in compressed_tree._scenarios:
- compressed_tree_scenario._probability = \
- compressed_tree_scenario._leaf_node._probability
-
- return compressed_tree
-
- #
- # Adds a bundle to this scenario tree by calling make compressed
- # with normalize=True
- # Returns a compressed tree using operations on the order of the
- # number of nodes in the compressed tree rather than the number of
- # nodes in the full tree (this method is more efficient than in-place
- # compression). If normalize=True, all probabilities
- # (and conditional probabilities) are renormalized.
- #
- #
- def add_bundle(self, name, scenario_bundle_list):
-
- if name in self._scenario_bundle_map:
- raise ValueError("Cannot add a new bundle with name '%s', a bundle "
- "with that name already exists." % (name))
-
- bundle_scenario_tree = self.make_compressed(scenario_bundle_list,
- normalize=True)
- bundle = ScenarioTreeBundle()
- bundle._name = name
- bundle._scenario_names = scenario_bundle_list
- bundle._scenario_tree = bundle_scenario_tree
- # make sure this is computed with the un-normalized bundle scenarios
- bundle._probability = sum(self._scenario_map[scenario_name]._probability
- for scenario_name in scenario_bundle_list)
-
- self._scenario_bundle_map[name] = bundle
- self._scenario_bundles.append(bundle)
-
- def remove_bundle(self, name):
-
- if name not in self._scenario_bundle_map:
- raise KeyError("Cannot remove bundle with name '%s', no bundle "
- "with that name exists." % (name))
- bundle = self._scenario_bundle_map[name]
- del self._scenario_bundle_map[name]
- self._scenario_bundles.remove(bundle)
-
- #
- # utility for automatically selecting a proportion of scenarios from the
- # tree to retain, eliminating the rest.
- #
-
- def downsample(self, fraction_to_retain, random_seed, verbose=False):
-
- random_state = random.getstate()
- random.seed(random_seed)
- try:
- number_to_retain = \
- max(int(round(float(len(self._scenarios)*fraction_to_retain))), 1)
- random_list=random.sample(range(len(self._scenarios)), number_to_retain)
-
- scenario_bundle_list = []
- for i in xrange(number_to_retain):
- scenario_bundle_list.append(self._scenarios[random_list[i]].name)
-
- if verbose:
- print("Downsampling scenario tree - retained %s "
- "scenarios: %s"
- % (len(scenario_bundle_list),
- str(scenario_bundle_list)))
-
- self.compress(scenario_bundle_list) # do the downsampling
- finally:
- random.setstate(random_state)
-
-
- #
- # returns the root node of the scenario tree
- #
-
- def findRootNode(self):
-
- for tree_node in self._tree_nodes:
- if tree_node._parent is None:
- return tree_node
- return None
-
- #
- # a utility function to compute, based on the current scenario tree content,
- # the maximal length of identifiers in various categories.
- #
-
- def computeIdentifierMaxLengths(self):
-
- self._max_scenario_id_length = 0
- for scenario in self._scenarios:
- if len(str(scenario.name)) > self._max_scenario_id_length:
- self._max_scenario_id_length = len(str(scenario.name))
-
- #
- # a utility function to (partially, at the moment) validate a scenario tree
- #
-
- def validate(self):
-
- # for any node, the sum of conditional probabilities of the children should sum to 1.
- for tree_node in self._tree_nodes:
- sum_probabilities = 0.0
- if len(tree_node._children) > 0:
- for child in tree_node._children:
- sum_probabilities += child._conditional_probability
- if abs(1.0 - sum_probabilities) > 0.000001:
- raise ValueError("ScenarioTree validation failed. "
- "Reason: child conditional "
- "probabilities for tree node=%s "
- " sum to %s"
- % (tree_node.name,
- sum_probabilities))
-
- # ensure that there is only one root node in the tree
- num_roots = 0
- root_ids = []
- for tree_node in self._tree_nodes:
- if tree_node._parent is None:
- num_roots += 1
- root_ids.append(tree_node.name)
-
- if num_roots != 1:
- raise ValueError("ScenarioTree validation failed. "
- "Reason: illegal set of root "
- "nodes detected: " + str(root_ids))
-
- # there must be at least one scenario passing through each tree node.
- for tree_node in self._tree_nodes:
- if len(tree_node._scenarios) == 0:
- raise ValueError("ScenarioTree validation failed. "
- "Reason: there are no scenarios "
- "associated with tree node=%s"
- % (tree_node.name))
- return False
-
- return True
-
- #
- # copies the parameter values stored in any tree node _averages attribute
- # into any tree node _solution attribute - only for active variable values.
- #
-
- def snapshotSolutionFromAverages(self):
-
- for tree_node in self._tree_nodes:
-
- tree_node.snapshotSolutionFromAverages()
-
- #
- # assigns the variable values at each tree node based on the input
- # instances.
- #
-
- # Note: Trying to work this function out of the code. The only
- # solution we should get used to working with is that stored
- # on the scenario objects
- def XsnapshotSolutionFromInstances(self):
-
- for tree_node in self._tree_nodes:
- tree_node.snapshotSolutionFromInstances()
-
- def pullScenarioSolutionsFromInstances(self):
-
- for scenario in self._scenarios:
- scenario.update_solution_from_instance()
-
- def snapshotSolutionFromScenarios(self):
- for tree_node in self._tree_nodes:
- tree_node.snapshotSolutionFromScenarios()
-
- def create_random_bundles(self,
- num_bundles,
- random_seed):
-
- random_state = random.getstate()
- random.seed(random_seed)
- try:
- num_scenarios = len(self._scenarios)
-
- sequence = list(range(num_scenarios))
- random.shuffle(sequence)
-
- next_scenario_index = 0
-
- # this is a hack-ish way to re-initialize the Bundles set of a
- # scenario tree instance, which should already be there
- # (because it is defined in the abstract model). however, we
- # don't have a "clear" method on a set, so...
- bundle_names = ["Bundle"+str(i)
- for i in xrange(1, num_bundles+1)]
- bundles = OrderedDict()
- for i in xrange(num_bundles):
- bundles[bundle_names[i]] = []
-
- scenario_index = 0
- while (scenario_index < num_scenarios):
- for bundle_index in xrange(num_bundles):
- if (scenario_index == num_scenarios):
- break
- bundles[bundle_names[bundle_index]].append(
- self._scenarios[sequence[scenario_index]].name)
- scenario_index += 1
-
- self._construct_scenario_bundles(bundles)
- finally:
- random.setstate(random_state)
-
- #
- # a utility function to pretty-print the static/non-cost
- # information associated with a scenario tree
- #
-
- def pprint(self):
-
- print("Scenario Tree Detail")
-
- print("----------------------------------------------------")
- print("Tree Nodes:")
- print("")
- for tree_node_name in sorted(iterkeys(self._tree_node_map)):
- tree_node = self._tree_node_map[tree_node_name]
- print("\tName=%s" % (tree_node_name))
- if tree_node._stage is not None:
- print("\tStage=%s" % (tree_node._stage._name))
- else:
- print("\t Stage=None")
- if tree_node._parent is not None:
- print("\tParent=%s" % (tree_node._parent._name))
- else:
- print("\tParent=" + "None")
- if tree_node._conditional_probability is not None:
- print("\tConditional probability=%4.4f" % tree_node._conditional_probability)
- else:
- print("\tConditional probability=" + "***Undefined***")
- print("\tChildren:")
- if len(tree_node._children) > 0:
- for child_node in sorted(tree_node._children, key=lambda x: x._name):
- print("\t\t%s" % (child_node._name))
- else:
- print("\t\tNone")
- print("\tScenarios:")
- if len(tree_node._scenarios) == 0:
- print("\t\tNone")
- else:
- for scenario in sorted(tree_node._scenarios, key=lambda x: x._name):
- print("\t\t%s" % (scenario._name))
- if len(tree_node._variable_templates) > 0:
- print("\tVariables: ")
- for variable_name in sorted(iterkeys(tree_node._variable_templates)):
- match_templates = tree_node._variable_templates[variable_name]
- sys.stdout.write("\t\t "+variable_name+" : ")
- for match_template in match_templates:
- sys.stdout.write(indexToString(match_template)+' ')
- print("")
- if len(tree_node._derived_variable_templates) > 0:
- print("\tDerived Variables: ")
- for variable_name in sorted(iterkeys(tree_node._derived_variable_templates)):
- match_templates = tree_node._derived_variable_templates[variable_name]
- sys.stdout.write("\t\t "+variable_name+" : ")
- for match_template in match_templates:
- sys.stdout.write(indexToString(match_template)+' ')
- print("")
- print("")
- print("----------------------------------------------------")
- print("Stages:")
- for stage_name in sorted(iterkeys(self._stage_map)):
- stage = self._stage_map[stage_name]
- print("\tName=%s" % (stage_name))
- print("\tTree Nodes: ")
- for tree_node in sorted(stage._tree_nodes, key=lambda x: x._name):
- print("\t\t%s" % (tree_node._name))
- if len(stage._variable_templates) > 0:
- print("\tVariables: ")
- for variable_name in sorted(iterkeys(stage._variable_templates)):
- match_templates = stage._variable_templates[variable_name]
- sys.stdout.write("\t\t "+variable_name+" : ")
- for match_template in match_templates:
- sys.stdout.write(indexToString(match_template)+' ')
- print("")
- if len(stage._derived_variable_templates) > 0:
- print("\tDerived Variables: ")
- for variable_name in sorted(iterkeys(stage._derived_variable_templates)):
- match_templates = stage._derived_variable_templates[variable_name]
- sys.stdout.write("\t\t "+variable_name+" : ")
- for match_template in match_templates:
- sys.stdout.write(indexToString(match_template)+' ')
- print("")
- print("\tCost Variable: ")
- if stage._cost_variable is not None:
- cost_variable_name, cost_variable_index = stage._cost_variable
- else:
- # kind of a hackish way to get around the fact that we are transitioning
- # away from storing the cost_variable identifier on the stages
- cost_variable_name, cost_variable_index = stage.nodes[0]._cost_variable
- if cost_variable_index is None:
- print("\t\t" + cost_variable_name)
- else:
- print("\t\t" + cost_variable_name + indexToString(cost_variable_index))
- print("")
- print("----------------------------------------------------")
- print("Scenarios:")
- for scenario_name in sorted(iterkeys(self._scenario_map)):
- scenario = self._scenario_map[scenario_name]
- print("\tName=%s" % (scenario_name))
- print("\tProbability=%4.4f" % scenario._probability)
- if scenario._leaf_node is None:
- print("\tLeaf node=None")
- else:
- print("\tLeaf node=%s" % (scenario._leaf_node._name))
- print("\tTree node sequence:")
- for tree_node in scenario._node_list:
- print("\t\t%s" % (tree_node._name))
- print("")
- print("----------------------------------------------------")
- if len(self._scenario_bundles) > 0:
- print("Scenario Bundles:")
- for bundle_name in sorted(iterkeys(self._scenario_bundle_map)):
- scenario_bundle = self._scenario_bundle_map[bundle_name]
- print("\tName=%s" % (bundle_name))
- print("\tProbability=%4.4f" % scenario_bundle._probability )
- sys.stdout.write("\tScenarios: ")
- for scenario_name in sorted(scenario_bundle._scenario_names):
- sys.stdout.write(str(scenario_name)+' ')
- sys.stdout.write("\n")
- print("")
- print("----------------------------------------------------")
-
- #
- # a utility function to pretty-print the solution associated with a scenario tree
- #
-
- def pprintSolution(self, epsilon=1.0e-5):
-
- #print("Scenario Tree Solution")
- print("----------------------------------------------------")
- print("Tree Nodes:")
- print("")
- for tree_node_name in sorted(iterkeys(self._tree_node_map)):
- tree_node = self._tree_node_map[tree_node_name]
- print("\tName=%s" % (tree_node_name))
- if tree_node._stage is not None:
- print("\tStage=%s" % (tree_node._stage._name))
- else:
- print("\t Stage=None")
- if tree_node._parent is not None:
- print("\tParent=%s" % (tree_node._parent._name))
- else:
- print("\tParent=" + "None")
- label_printed = False
- if (len(tree_node._stage._variable_templates) > 0) or \
- (len(tree_node._variable_templates) > 0):
- for name in sorted(tree_node._variable_indices):
- for index in sorted(tree_node._variable_indices[name]):
- id_ = tree_node._name_index_to_id[name,index]
- if id_ in tree_node._standard_variable_ids:
- if not label_printed:
- print("\tVariables: ")
- label_printed = True
- # if a solution has not yet been stored /
- # snapshotted, then the value won't be in the solution map
- try:
- value = tree_node._solution[id_]
- except KeyError:
- value = None
- if (value is not None) and (math.fabs(value) > epsilon):
- print("\t\t"+name+indexToString(index)+"="+str(value))
- label_printed = False
- if (len(tree_node._stage._derived_variable_templates) > 0) or \
- (len(tree_node._derived_variable_templates) > 0):
- for name in sorted(tree_node._variable_indices):
- for index in sorted(tree_node._variable_indices[name]):
- id_ = tree_node._name_index_to_id[name,index]
- if id_ in tree_node._derived_variable_ids:
- if not label_printed:
- print("\tDerived Variables: ")
- label_printed = True
- # if a solution has not yet been stored /
- # snapshotted, then the value won't be in the solution map
- try:
- value = tree_node._solution[id_]
- except KeyError:
- value = None
- if (value is not None) and (math.fabs(value) > epsilon):
- print("\t\t"+name+indexToString(index)+"="+str(value))
- print("")
-
- #
- # a utility function to pretty-print the cost information associated with a scenario tree
- #
-
- def pprintCosts(self):
-
- print("Scenario Tree Costs")
- print("----------------------------------------------------")
- print("Tree Nodes:")
- print("")
- for tree_node_name in sorted(iterkeys(self._tree_node_map)):
- tree_node = self._tree_node_map[tree_node_name]
- print("\tName=%s" % (tree_node_name))
- if tree_node._stage is not None:
- print("\tStage=%s" % (tree_node._stage._name))
- else:
- print("\t Stage=None")
- if tree_node._parent is not None:
- print("\tParent=%s" % (tree_node._parent._name))
- else:
- print("\tParent=" + "None")
- if tree_node._conditional_probability is not None:
- print("\tConditional probability=%4.4f"
- % tree_node._conditional_probability)
- else:
- print("\tConditional probability=" + "Not Rprted.")
- print("\tChildren:")
- if len(tree_node._children) > 0:
- for child_node in sorted(tree_node._children, key=lambda x: x._name):
- print("\t\t%s" % (child_node._name))
- else:
- print("\t\tNone")
- print("\tScenarios:")
- if len(tree_node._scenarios) == 0:
- print("\t\tNone")
- else:
- for scenario in sorted(tree_node._scenarios, key=lambda x: x._name):
- print("\t\t%s" % (scenario._name))
- expected_node_cost = tree_node.computeExpectedNodeCost()
- if expected_node_cost != None:
- print("\tExpected cost of (sub)tree rooted at node=%10.4f"
- % expected_node_cost)
- else:
- print("\tExpected cost of (sub)tree rooted at node=Not Rprted.")
- print("")
-
- print("----------------------------------------------------")
- print("Scenarios:")
- print("")
- for scenario_name in sorted(iterkeys(self._scenario_map)):
- scenario = self._scenario_map[scenario_name]
-
- print("\tName=%s" % (scenario_name))
- print("\tProbability=%4.4f" % scenario._probability)
-
- if scenario._leaf_node is None:
- print("\tLeaf Node=None")
- else:
- print("\tLeaf Node=%s" % (scenario._leaf_node._name))
-
- print("\tTree node sequence:")
- for tree_node in scenario._node_list:
- print("\t\t%s" % (tree_node._name))
-
- aggregate_cost = 0.0
- for stage in self._stages:
- # find the tree node for this scenario, representing this stage.
- tree_node = None
- for node in scenario._node_list:
- if node._stage == stage:
- tree_node = node
- break
-
- cost_variable_value = scenario._stage_costs[stage._name]
-
- if cost_variable_value is not None:
- print("\tStage=%20s Cost=%10.4f"
- % (stage._name, cost_variable_value))
- cost = cost_variable_value
- else:
- print("\tStage=%20s Cost=%10s"
- % (stage._name, "Not Rprted."))
- cost = 0.0
- aggregate_cost += cost
-
- print("\tTotal scenario cost=%10.4f" % aggregate_cost)
- print("")
- print("----------------------------------------------------")
-
- #
- # Save the tree structure in DOT file format
- # Nodes are labeled with absolute probabilities and
- # edges are labeled with conditional probabilities
- #
- def save_to_dot(self, filename):
-
- def _visit_node(node):
- f.write("%s%s [label=\"%s\"];\n"
- % (node.name,
- id(node),
- str(node.name)+("\n(%.6g)" % (node._probability))))
- for child_node in node._children:
- _visit_node(child_node)
- f.write("%s%s -> %s%s [label=\"%.6g\"];\n"
- % (node.name,
- id(node),
- child_node.name,
- id(child_node),
- child_node._conditional_probability))
- if len(node._children) == 0:
- assert len(node._scenarios) == 1
- scenario = node._scenarios[0]
- f.write("%s%s [label=\"%s\"];\n"
- % (scenario.name,
- id(scenario),
- "scenario\n"+str(scenario.name)))
- f.write("%s%s -> %s%s [style=dashed];\n"
- % (node.name,
- id(node),
- scenario.name,
- id(scenario)))
-
- with open(filename, 'w') as f:
-
- f.write("digraph ScenarioTree {\n")
- root_node = self.findRootNode()
- _visit_node(root_node)
- f.write("}\n")
diff --git a/pyomo/pysp/scenariotree/tree_structure_model.py b/pyomo/pysp/scenariotree/tree_structure_model.py
deleted file mode 100644
index 116943da9fd..00000000000
--- a/pyomo/pysp/scenariotree/tree_structure_model.py
+++ /dev/null
@@ -1,399 +0,0 @@
-# ___________________________________________________________________________
-#
-# Pyomo: Python Optimization Modeling Objects
-# Copyright 2017 National Technology and Engineering Solutions of Sandia, LLC
-# Under the terms of Contract DE-NA0003525 with National Technology and
-# Engineering Solutions of Sandia, LLC, the U.S. Government retains certain
-# rights in this software.
-# This software is distributed under the 3-clause BSD License.
-# ___________________________________________________________________________
-
-__all__ = ()
-
-import pyomo.core
-
-import six
-
-from pyomo.common.dependencies import attempt_import
-
-# The code below conforms to the networkx>=2.0 API
-networkx, networkx_available = attempt_import('networkx', minimum_version="2.0")
-
-def CreateAbstractScenarioTreeModel():
- from pyomo.core import (
- AbstractModel, Set, Param, Boolean, Any, UnitInterval,
- )
-
- model = AbstractModel()
-
- # all set/parameter values are strings, representing the
- # names of various entities/variables.
-
- model.Stages = Set(ordered=True)
- model.Nodes = Set(ordered=True)
-
- model.NodeStage = Param(model.Nodes,
- within=model.Stages,
- mutable=True)
- model.Children = Set(model.Nodes,
- within=model.Nodes,
- initialize=[],
- ordered=True)
- model.ConditionalProbability = Param(model.Nodes,
- within=UnitInterval,
- mutable=True)
-
- model.Scenarios = Set(ordered=True)
- model.ScenarioLeafNode = Param(model.Scenarios,
- within=model.Nodes,
- mutable=True)
-
- model.StageVariables = Set(model.Stages,
- initialize=[],
- ordered=True)
-
- model.NodeVariables = Set(model.Nodes,
- initialize=[],
- ordered=True)
-
- model.StageCost = Param(model.Stages,
- within=Any,
- mutable=True,
- default=None)
- model.NodeCost = Param(model.Nodes,
- within=Any,
- mutable=True,
- default=None)
-
- # DEPRECATED
- model.StageCostVariable = Param(model.Stages,
- within=Any,
- mutable=True)
-
- # it is often the case that a subset of the stage variables are strictly "derived"
- # variables, in that their values are computable once the values of other variables
- # in that stage are known. it generally useful to know which variables these are,
- # as it is unnecessary to post non-anticipativity constraints for these variables.
- # further, attempting to force non-anticipativity - either implicitly or explicitly -
- # on these variables can cause issues with decomposition algorithms.
- model.StageDerivedVariables = Set(model.Stages,
- initialize=[],
- ordered=True)
- model.NodeDerivedVariables = Set(model.Nodes,
- initialize=[],
- ordered=True)
-
- # scenario data can be populated in one of two ways. the first is "scenario-based",
- # in which a single .dat file contains all of the data for each scenario. the .dat
- # file prefix must correspond to the scenario name. the second is "node-based",
- # in which a single .dat file contains only the data for each node in the scenario
- # tree. the node-based method is more compact, but the scenario-based method is
- # often more natural when parameter data is generated via simulation. the default
- # is scenario-based.
- model.ScenarioBasedData = Param(within=Boolean,
- default=True,
- mutable=True)
-
- # do we bundle, and if so, how?
- model.Bundling = Param(within=Boolean,
- default=False,
- mutable=True)
-
- # bundle names
- model.Bundles = Set(ordered=True)
- model.BundleScenarios = Set(model.Bundles,
- ordered=True)
-
- return model
-
-#
-# Generates a simple two-stage scenario tree model with the requested
-# number of scenarios. It is up to the user to include the remaining
-# data for:
-# - StageVariables
-# - StageCost
-# and optionally:
-# - StageDerivedVariables
-# - ScenarioBasedData
-# - Bundling
-# - Bundles
-# - BundleScenarios
-#
-def CreateConcreteTwoStageScenarioTreeModel(num_scenarios):
- m = CreateAbstractScenarioTreeModel()
- m = m.create_instance()
- m.Stages.add('Stage1')
- m.Stages.add('Stage2')
- m.Nodes.add('RootNode')
- for i in range(1, num_scenarios+1):
- m.Nodes.add('LeafNode_Scenario'+str(i))
- m.Scenarios.add('Scenario'+str(i))
- m.NodeStage['RootNode'] = 'Stage1'
- m.ConditionalProbability['RootNode'] = 1.0
- for node in m.Nodes:
- if node != 'RootNode':
- m.NodeStage[node] = 'Stage2'
- m.Children['RootNode'].add(node)
- m.Children[node].clear()
- m.ConditionalProbability[node] = 1.0/num_scenarios
- m.ScenarioLeafNode[node.replace('LeafNode_','')] = node
-
- return m
-
-def ScenarioTreeModelFromNetworkX(
- tree,
- node_name_attribute=None,
- edge_probability_attribute='weight',
- stage_names=None,
- scenario_name_attribute=None):
- """
- Create a scenario tree model from a networkx tree. The
- height of the tree must be at least 1 (meaning at least
- 2 stages).
-
- Required node attributes:
- - cost (str): A string identifying a component on
- the model whose value indicates the cost at
- the time stage of the node for any scenario
- traveling through it.
-
- Optional node attributes:
- - variables (list): A list of variable identifiers
- that will be tracked by the node. If the node
- is not a leaf node, these indicate variables
- with non-anticipativity constraints.
- - derived_variables (list): A list of variable or
- expression identifiers that will be tracked by
- the node (but will never have
- non-anticipativity constraints enforced).
- - bundle: A bundle identifier for the scenario
- defined by a leaf-stage node. This attribute
- is ignored on non-terminal tree nodes. This
- attribute appears on at least one leaf-stage
- node (and is not set to :const:`None`), then
- it must be set on all leaf-stage nodes (to
- something other than :const:`None`);
- otherwise, an exception will be raised.
-
- Optional edge attributes:
- - weight (float): Indicates the conditional
- probability of moving from the parent node to
- the child node in the directed edge. If not
- present, it will be assumed that all edges
- leaving the parent node have equal probability
- (normalized to sum to one).
-
- Args:
- stage_names: Can define a list of stage names to use
- (assumed in time order). The length of this list
- much match the number of stages in the tree. The
- default value of :const:`None` indicates that
- stage names should be automatically generated in
- with the form ['Stage1','Stage2',...].
- node_name_attribute: By default, node names are the
- same as the node hash in the networkx tree. This
- keyword can be set to the name of some property
- of nodes in the graph that will be used for their
- name in the PySP scenario tree.
- scenario_name_attribute: By default, scenario names
- are the same as the leaf-node hash in the
- networkx tree. This keyword can be set to the
- name of some property of leaf-nodes in the graph
- that will be used for their corresponding
- scenario name in the PySP scenario tree.
- edge_probability_attribute: Can be set to the name
- of some property of edges in the graph that
- defines the conditional probability of that
- branch (default: 'weight'). If this keyword is
- set to :const:`None`, then all branches leaving a
- node are assigned equal conditional
- probabilities.
-
- Examples:
-
- A 2-stage scenario tree with 10 scenarios grouped
- into 2 bundles:
-
- >>> G = networkx.DiGraph()
- >>> G.add_node("root", variables=["x"])
- >>> N = 10
- >>> for i in range(N):
- >>> node_name = "s"+str(i)
- >>> bundle_name = "b"+str(i%2)
- >>> G.add_node(node_name, bundle=bundle)
- >>> G.add_edge("root", node_name, weight=1.0/N)
- >>> model = ScenarioTreeModelFromNetworkX(G)
-
- A 4-stage scenario tree with 125 scenarios:
-
- >>> branching_factor = 5
- >>> height = 3
- >>> G = networkx.balanced_tree(
- branching_factor,
- height,
- networkx.DiGraph())
- >>> model = ScenarioTreeModelFromNetworkX(G)
- """
-
- if not networkx.is_tree(tree):
- raise TypeError(
- "Graph object is not a tree "
- "(see networkx.is_tree)")
-
- if not networkx.is_directed(tree):
- raise TypeError(
- "Graph object is not directed "
- "(see networkx.is_directed)")
-
- if not networkx.is_branching(tree):
- raise TypeError(
- "Grapn object is not a branching "
- "(see networkx.is_branching")
-
- in_degree_items = tree.in_degree()
- # Prior to networkx ~2.0, in_degree() returned a dictionary.
- # Now it is a view on items, so only call .items() for the old case
- if hasattr(in_degree_items, 'items'):
- in_degree_items = in_degree_items.items()
- root = [u for u,d in in_degree_items if d == 0]
- assert len(root) == 1
- root = root[0]
- num_stages = networkx.eccentricity(tree, v=root) + 1
- if num_stages < 2:
- raise ValueError(
- "The number of stages must be at least 2")
- m = CreateAbstractScenarioTreeModel()
- m = m.create_instance()
- if stage_names is not None:
- unique_stage_names = set()
- for cnt, stage_name in enumerate(stage_names,1):
- m.Stages.add(stage_name)
- unique_stage_names.add(stage_name)
- if cnt != num_stages:
- raise ValueError(
- "incorrect number of stages names (%s), should be %s"
- % (cnt, num_stages))
- if len(unique_stage_names) != cnt:
- raise ValueError("all stage names were not unique")
- else:
- for i in range(num_stages):
- m.Stages.add('Stage'+str(i+1))
- node_to_name = {}
- node_to_scenario = {}
- scenario_bundle = {}
- def _setup(u, succ):
- if node_name_attribute is not None:
- if node_name_attribute not in tree.nodes[u]:
- raise KeyError(
- "node '%s' missing node name "
- "attribute: '%s'"
- % (u, node_name_attribute))
- node_name = tree.nodes[u][node_name_attribute]
- else:
- node_name = u
- node_to_name[u] = node_name
- m.Nodes.add(node_name)
- if u in succ:
- for v in succ[u]:
- _setup(v, succ)
- else:
- # a leaf node
- if scenario_name_attribute is not None:
- if scenario_name_attribute not in tree.nodes[u]:
- raise KeyError(
- "node '%s' missing scenario name "
- "attribute: '%s'"
- % (u, scenario_name_attribute))
- scenario_name = tree.nodes[u][scenario_name_attribute]
- else:
- scenario_name = u
- node_to_scenario[u] = scenario_name
- m.Scenarios.add(scenario_name)
- scenario_bundle[scenario_name] = \
- tree.nodes[u].get('bundle', None)
- _setup(root,
- networkx.dfs_successors(tree, root))
-
- def _add_node(u, stage, succ, pred):
- node_name = node_to_name[u]
- m.NodeStage[node_name] = m.Stages[stage]
- if u == root:
- m.ConditionalProbability[node_name] = 1.0
- else:
- assert u in pred
- # prior to networkx ~2.0, we used a .edge attribute on DiGraph,
- # which no longer exists.
- if hasattr(tree, 'edge'):
- edge = tree.edge[pred[u]][u]
- else:
- edge = tree.edges[pred[u],u]
- probability = None
- if edge_probability_attribute is not None:
- if edge_probability_attribute not in edge:
- raise KeyError(
- "edge '(%s, %s)' missing probability attribute: '%s'"
- % (pred[u], u, edge_probability_attribute))
- probability = edge[edge_probability_attribute]
- else:
- probability = 1.0/len(succ[pred[u]])
- m.ConditionalProbability[node_name] = probability
- # get node variables
- if "variables" in tree.nodes[u]:
- node_variables = tree.nodes[u]["variables"]
- assert type(node_variables) in [tuple, list]
- for varstring in node_variables:
- m.NodeVariables[node_name].add(varstring)
- if "derived_variables" in tree.nodes[u]:
- node_derived_variables = tree.nodes[u]["derived_variables"]
- assert type(node_derived_variables) in [tuple, list]
- for varstring in node_derived_variables:
- m.NodeDerivedVariables[node_name].add(varstring)
- if "cost" in tree.nodes[u]:
- assert isinstance(tree.nodes[u]["cost"], six.string_types)
- m.NodeCost[node_name].value = tree.nodes[u]["cost"]
- if u in succ:
- child_names = []
- for v in succ[u]:
- child_names.append(
- _add_node(v, stage+1, succ, pred))
- total_probability = 0.0
- for child_name in child_names:
- m.Children[node_name].add(child_name)
- total_probability += \
- pyomo.core.value(m.ConditionalProbability[child_name])
- if abs(total_probability - 1.0) > 1e-5:
- raise ValueError(
- "edge probabilities leaving node '%s' "
- "do not sum to 1 (total=%r)"
- % (u, total_probability))
- else:
- # a leaf node
- scenario_name = node_to_scenario[u]
- m.ScenarioLeafNode[scenario_name] = node_name
- m.Children[node_name].clear()
-
- return node_name
-
- _add_node(root,
- 1,
- networkx.dfs_successors(tree, root),
- networkx.dfs_predecessors(tree, root))
-
- if any(_b is not None for _b in scenario_bundle.values()):
- if any(_b is None for _b in scenario_bundle.values()):
- raise ValueError("Incomplete bundle specification. "
- "All scenarios require a bundle "
- "identifier.")
- m.Bundling.value = True
- bundle_scenarios = {}
- for bundle_name in sorted(set(scenario_bundle.values())):
- m.Bundles.add(bundle_name)
- bundle_scenarios[bundle_name] = []
- for scenario_name in m.Scenarios:
- bundle_scenarios[scenario_bundle[scenario_name]].\
- append(scenario_name)
- for bundle_name in m.Bundles:
- for scenario_name in sorted(bundle_scenarios[bundle_name]):
- m.BundleScenarios[bundle_name].add(scenario_name)
-
- return m
diff --git a/pyomo/pysp/scenariotree/util.py b/pyomo/pysp/scenariotree/util.py
deleted file mode 100644
index 98acc695922..00000000000
--- a/pyomo/pysp/scenariotree/util.py
+++ /dev/null
@@ -1,182 +0,0 @@
-# ___________________________________________________________________________
-#
-# Pyomo: Python Optimization Modeling Objects
-# Copyright 2017 National Technology and Engineering Solutions of Sandia, LLC
-# Under the terms of Contract DE-NA0003525 with National Technology and
-# Engineering Solutions of Sandia, LLC, the U.S. Government retains certain
-# rights in this software.
-# This software is distributed under the 3-clause BSD License.
-# ___________________________________________________________________________
-
-import hashlib
-import uuid
-
-pysp_namespace_hash = hashlib.md5('pysp'.encode())
-def _compute_namespace(node_name):
- node_namespace_hash = pysp_namespace_hash.copy()
- node_namespace_hash.update(node_name.encode())
- return uuid.UUID(bytes=node_namespace_hash.digest())
-
-#
-# 32-bit family
-#
-
-_max_int32 = 2**31 - 1
-_max_uint32 = 2**32 - 1
-
-def _convert_range_zero_to_max_int32(x):
- assert x >= 0
- # use int for py2 to eliminate long
- # types when possible
- return int(x % (_max_int32+1))
-def _convert_range_one_to_max_int32(x):
- v = _convert_range_zero_to_max_int32(x)
- # a collision happens for 0 and 1
- if v == 0:
- v += 1
- return v
-def _convert_range_zero_to_max_uint32(x):
- assert x >= 0
- # use int for py2 to eliminate long
- # types when possible
- return int(x % (_max_uint32+1))
-def _convert_range_one_to_max_uint32(x):
- v = _convert_range_zero_to_max_uint32(x)
- # a collision happens for 0 and 1
- if v == 0:
- v += 1
- return v
-
-def scenario_tree_id_to_pint32(node_name, vid):
- """
- Maps a PySP scenario tree variable id paired with a node
- name to a positive integer that can be stored in a
- 32-bit signed integer type.
-
- The mapping is unique with high probability for a set of
- scenario tree ids that is not too large.
- (see: birthday problem)
- """
- return _convert_range_one_to_max_int32(
- uuid.uuid5(_compute_namespace(node_name), vid).int)
-
-def scenario_tree_id_to_nzint32(node_name, vid):
- """
- Maps a PySP scenario tree variable id paired with a node
- name to a nonnegative integer that can be stored in a
- 32-bit signed integer type.
-
- The mapping is unique with high probability for a set of
- scenario tree ids that is not too large.
- (see: birthday problem)
- """
- return _convert_range_zero_to_max_int32(
- uuid.uuid5(_compute_namespace(node_name), vid).int)
-
-def scenario_tree_id_to_puint32(node_name, vid):
- """
- Maps a PySP scenario tree variable id paired with a node
- name to a positive integer that can be stored in a
- 32-bit signed integer type.
-
- The mapping is unique with high probability for a set of
- scenario tree ids that is not too large.
- (see: birthday problem)
- """
- return _convert_range_one_to_max_uint32(
- uuid.uuid5(_compute_namespace(node_name), vid).int)
-
-def scenario_tree_id_to_nzuint32(node_name, vid):
- """
- Maps a PySP scenario tree variable id paired with a node
- name to a nonnegative integer that can be stored in a
- 32-bit signed integer type.
-
- The mapping is unique with high probability for a set of
- scenario tree ids that is not too large.
- (see: birthday problem)
- """
- return _convert_range_zero_to_max_uint32(
- uuid.uuid5(_compute_namespace(node_name), vid).int)
-
-#
-# 64-bit family
-#
-
-_max_int64 = 2**63 - 1
-_max_uint64 = 2**64 - 1
-
-def _convert_range_zero_to_max_int64(x):
- assert x >= 0
- # use int for py2 to eliminate long
- # types when possible
- return int(x % (_max_int64+1))
-def _convert_range_one_to_max_int64(x):
- v = _convert_range_zero_to_max_int64(x)
- # a collision happens for 0 and 1
- if v == 0:
- v += 1
- return v
-def _convert_range_zero_to_max_uint64(x):
- assert x >= 0
- # use int for py2 to eliminate long
- # types when possible
- return int(x % (_max_uint64+1))
-def _convert_range_one_to_max_uint64(x):
- v = _convert_range_zero_to_max_uint64(x)
- # a collision happens for 0 and 1
- if v == 0:
- v += 1
- return v
-
-def scenario_tree_id_to_pint64(node_name, vid):
- """
- Maps a PySP scenario tree variable id paired with a node
- name to a positive integer that can be stored in a
- 64-bit signed integer type.
-
- The mapping is unique with high probability for a set of
- scenario tree ids that is not too large.
- (see: birthday problem)
- """
- return _convert_range_one_to_max_int64(
- uuid.uuid5(_compute_namespace(node_name), vid).int)
-
-def scenario_tree_id_to_nzint64(node_name, vid):
- """
- Maps a PySP scenario tree variable id paired with a node
- name to a nonnegative integer that can be stored in a
- 64-bit signed integer type.
-
- The mapping is unique with high probability for a set of
- scenario tree ids that is not too large.
- (see: birthday problem)
- """
- return _convert_range_zero_to_max_int64(
- uuid.uuid5(_compute_namespace(node_name), vid).int)
-
-def scenario_tree_id_to_puint64(node_name, vid):
- """
- Maps a PySP scenario tree variable id paired with a node
- name to a positive integer that can be stored in a
- 64-bit signed integer type.
-
- The mapping is unique with high probability for a set of
- scenario tree ids that is not too large.
- (see: birthday problem)
- """
- return _convert_range_one_to_max_uint64(
- uuid.uuid5(_compute_namespace(node_name), vid).int)
-
-def scenario_tree_id_to_nzuint64(node_name, vid):
- """
- Maps a PySP scenario tree variable id paired with a node
- name to a nonnegative integer that can be stored in a
- 64-bit signed integer type.
-
- The mapping is unique with high probability for a set of
- scenario tree ids that is not too large.
- (see: birthday problem)
- """
- return _convert_range_zero_to_max_uint64(
- uuid.uuid5(_compute_namespace(node_name), vid).int)
diff --git a/pyomo/pysp/solutionioextensions.py b/pyomo/pysp/solutionioextensions.py
deleted file mode 100644
index fdf7c4e5db1..00000000000
--- a/pyomo/pysp/solutionioextensions.py
+++ /dev/null
@@ -1,28 +0,0 @@
-# ___________________________________________________________________________
-#
-# Pyomo: Python Optimization Modeling Objects
-# Copyright 2017 National Technology and Engineering Solutions of Sandia, LLC
-# Under the terms of Contract DE-NA0003525 with National Technology and
-# Engineering Solutions of Sandia, LLC, the U.S. Government retains certain
-# rights in this software.
-# This software is distributed under the 3-clause BSD License.
-# ___________________________________________________________________________
-
-__all__ = ('IPySPSolutionSaverExtension',
- 'IPySPSolutionLoaderExtension')
-
-from pyomo.common.plugin import Interface
-
-class IPySPSolutionSaverExtension(Interface):
-
- def save(self, manager):
- """Save solution data from a scenario tree manager.
- Returns True only if data was saved."""
- return False
-
-class IPySPSolutionLoaderExtension(Interface):
-
- def load(self, manager):
- """Load solution data into a scenario tree manager.
- Returns True only if data was loaded."""
- return True
diff --git a/pyomo/pysp/solutionwriter.py b/pyomo/pysp/solutionwriter.py
deleted file mode 100644
index 36aa34399d1..00000000000
--- a/pyomo/pysp/solutionwriter.py
+++ /dev/null
@@ -1,20 +0,0 @@
-# ___________________________________________________________________________
-#
-# Pyomo: Python Optimization Modeling Objects
-# Copyright 2017 National Technology and Engineering Solutions of Sandia, LLC
-# Under the terms of Contract DE-NA0003525 with National Technology and
-# Engineering Solutions of Sandia, LLC, the U.S. Government retains certain
-# rights in this software.
-# This software is distributed under the 3-clause BSD License.
-# ___________________________________________________________________________
-
-__all__ = ['ISolutionWriterExtension']
-
-from pyomo.common.plugin import Interface
-
-
-class ISolutionWriterExtension(Interface):
-
- def write(self, scenario_tree, output_file_prefix):
- """Called with a ScenarioTree type object."""
- pass
diff --git a/pyomo/pysp/solvers/__init__.py b/pyomo/pysp/solvers/__init__.py
deleted file mode 100644
index 82afe9a8e5b..00000000000
--- a/pyomo/pysp/solvers/__init__.py
+++ /dev/null
@@ -1,20 +0,0 @@
-# ___________________________________________________________________________
-#
-# Pyomo: Python Optimization Modeling Objects
-# Copyright 2017 National Technology and Engineering Solutions of Sandia, LLC
-# Under the terms of Contract DE-NA0003525 with National Technology and
-# Engineering Solutions of Sandia, LLC, the U.S. Government retains certain
-# rights in this software.
-# This software is distributed under the 3-clause BSD License.
-# ___________________________________________________________________________
-
-import pyomo.pysp.solvers.spsolver
-from pyomo.pysp.solvers.spsolver import SPSolverFactory
-import pyomo.pysp.solvers.spsolvershellcommand
-
-import pyomo.pysp.solvers.sd
-import pyomo.pysp.solvers.admm
-import pyomo.pysp.solvers.benders
-import pyomo.pysp.solvers.ef
-import pyomo.pysp.solvers.schuripopt
-import pyomo.pysp.solvers.ddsip
diff --git a/pyomo/pysp/solvers/admm.py b/pyomo/pysp/solvers/admm.py
deleted file mode 100644
index a5c7efae9d8..00000000000
--- a/pyomo/pysp/solvers/admm.py
+++ /dev/null
@@ -1,1014 +0,0 @@
-# _________________________________________________________________________
-#
-# Pyomo: Python Optimization Modeling Objects
-# Copyright (c) 2014 Sandia Corporation.
-# Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation,
-# the U.S. Government retains certain rights in this software.
-# This software is distributed under the BSD License.
-# _________________________________________________________________________
-
-import os
-import sys
-import time
-import math
-
-# TODO: run y update on the server side so that bounds can be
-# returned efficiently if enabled
-# TODO: handle multi-stage
-# (this has to do with fixing distributed variable id
-# creation on the new scenario tree manager)
-
-from pyomo.common.collections import OrderedDict
-from pyomo.core import (Block, Set, Expression, Param, maximize)
-from pyomo.pysp.util.configured_object import PySPConfiguredObject
-from pyomo.pysp.util.config import (PySPConfigValue,
- PySPConfigBlock,
- safe_register_common_option,
- safe_register_unique_option,
- safe_declare_common_option,
- safe_declare_unique_option,
- _domain_positive,
- _domain_must_be_str)
-from pyomo.pysp.util.misc import (parse_command_line,
- launch_command)
-from pyomo.pysp.scenariotree.manager import \
- (InvocationType,
- ScenarioTreeManager,
- ScenarioTreeManagerFactory)
-from pyomo.pysp.scenariotree.manager_solver import \
- ScenarioTreeManagerSolverFactory
-from pyomo.pysp.phutils import indexToString
-from pyomo.pysp.solvers.spsolver import (SPSolver,
- SPSolverResults,
- SPSolverFactory)
-
-from six.moves import xrange
-
-thisfile = os.path.abspath(__file__)
-thisfile.replace(".pyc","").replace(".py","")
-
-_admm_group_label = "ADMM Options"
-_rho_group_label = "Rho Strategy Options"
-
-class RhoStrategy(PySPConfiguredObject):
- @classmethod
- def _declare_options(cls, options=None):
- if options is None:
- options = PySPConfigBlock()
- return options
- def __init__(self, *args, **kwds):
- super(RhoStrategy, self).__init__(*args, **kwds)
- def initialize(self, manager, x, y, z, rho):
- raise NotImplementedError
- def update_rho(self, manager, x, y, z, rho):
- raise NotImplementedError
-
-class FixedRhoStrategy(RhoStrategy, PySPConfiguredObject):
- @classmethod
- def _declare_options(cls, options=None):
- if options is None:
- options = PySPConfigBlock()
- return options
- def __init__(self, *args, **kwds):
- super(FixedRhoStrategy, self).__init__(*args, **kwds)
- def initialize(self, manager, x, y, z, rho):
- pass
- def update_rho(self, manager, x, y, z, rho):
- pass
-
-class AdaptiveRhoStrategy(RhoStrategy, PySPConfiguredObject):
- @classmethod
- def _declare_options(cls, options=None):
- if options is None:
- options = PySPConfigBlock()
- safe_declare_common_option(options, "verbose")
- return options
- def __init__(self, *args, **kwds):
- super(AdaptiveRhoStrategy, self).__init__(*args, **kwds)
- self._z_previous = None
- self._primal_residual_norm = None
- self._dual_residual_norm = None
- self._mu = 10.0
- self._tol = 1e-5
- self._rho_increase_factor = 2.0
- self._rho_decrease_factor = 0.5
-
- def snapshot_z(self, manager, z):
- for stage in manager.scenario_tree.stages[:-1]:
- for tree_node in stage.nodes:
- z_prev_node = self._z_previous[tree_node.name]
- z_node = z[tree_node.name]
- for id_ in tree_node._standard_variable_ids:
- z_prev_node[id_] = z_node[id_]
-
- def compute_primal_residual_norm(self, manager, x, z):
- for stage in manager.scenario_tree.stages[:-1]:
- for tree_node in stage.nodes:
- prnorm_node = self._primal_residual_norm[tree_node.name]
- z_node = z[tree_node.name]
- for id_ in tree_node._standard_variable_ids:
- prnorm_var = 0.0
- for scenario in tree_node._scenarios:
- prnorm_var += \
- (x[scenario.name][tree_node.name][id_] - \
- z_node[id_])**2
- prnorm_node[id_] = math.sqrt(prnorm_var)
-
- def compute_dual_residual_norm(self, manager, z, rho):
- for stage in manager.scenario_tree.stages[:-1]:
- for tree_node in stage.nodes:
- drnorm_node = self._dual_residual_norm[tree_node.name]
- z_prev_node = self._z_previous[tree_node.name]
- z_node = z[tree_node.name]
- rho_node = rho[tree_node.name]
- for id_ in tree_node._standard_variable_ids:
- drnorm_node[id_] = \
- math.sqrt(len(tree_node.scenarios)) * \
- rho_node[id_] * \
- abs(z_node[id_] - z_prev_node[id_])
-
- def initialize(self, manager, x, y, z, rho):
- self._z_previous = {}
- self._primal_residual_norm = {}
- self._dual_residual_norm = {}
- for stage in manager.scenario_tree.stages[:-1]:
- for tree_node in stage.nodes:
- self._z_previous[tree_node.name] = {}
- self._primal_residual_norm[tree_node.name] = {}
- self._dual_residual_norm[tree_node.name] = {}
- self.snapshot_z(manager, z)
-
- def update_rho(self, manager, x, y, z, rho):
-
- first_line = ("Updating Rho Values:\n%21s %25s %16s %16s %16s"
- % ("Action",
- "Variable",
- "Primal Residual",
- "Dual Residual",
- "New Rho"))
- first_print = True
- self.compute_primal_residual_norm(manager, x, z)
- self.compute_dual_residual_norm(manager, z, rho)
- verbose = self.get_option("verbose")
- for stage in manager.scenario_tree.stages[:-1]:
- for tree_node in stage.nodes:
- prnorm_node = self._primal_residual_norm[tree_node.name]
- drnorm_node = self._dual_residual_norm[tree_node.name]
- rho_node = rho[tree_node.name]
- for id_ in tree_node._standard_variable_ids:
- name, index = tree_node._variable_ids[id_]
- prnorm_var = prnorm_node[id_]
- drnorm_var = drnorm_node[id_]
- action = None
- if (prnorm_var > self._mu * drnorm_var) and \
- (prnorm_var > self._tol):
- rho_node[id_] *= self._rho_increase_factor
- action = "Increasing"
- elif (drnorm_var > self._mu * prnorm_var) and \
- (drnorm_var > self._tol):
- rho_node[id_] *= self._rho_decrease_factor
- action = "Decreasing"
- if verbose:
- if action is not None:
- if first_print:
- first_print = False
- print(first_line)
- print("%21s %25s %16g %16g %16g"
- % (action,
- name+indexToString(index),
- prnorm_var,
- drnorm_var,
- rho_node[id_]))
-
- self.snapshot_z(manager, z)
-
-def RhoStrategyFactory(name, *args, **kwds):
- if name in RhoStrategyFactory.registered_types:
- return RhoStrategyFactory.registered_types[name](*args, **kwds)
- raise ValueError("No rho strategy registered with name: %s"
- % (name))
-RhoStrategyFactory.registered_types = {}
-RhoStrategyFactory.registered_types['fixed'] = FixedRhoStrategy
-RhoStrategyFactory.registered_types['adaptive'] = AdaptiveRhoStrategy
-
-
-#
-# NOTE: A function names beginning with EXTERNAL_ indicate
-# that the function may be executed by a different
-# process, so they should not rely on any state
-# maintained on the client scenario tree manager or
-# globals in this file.
-#
-
-def EXTERNAL_cleanup_for_admm(manager,
- scenario):
- if manager.get_option("verbose"):
- print("Cleaning up admm modifications to scenario %s"
- % (scenario.name))
- instance = scenario._instance
- assert hasattr(scenario._instance, ".admm")
- scenario._instance.del_component(".admm")
-
- # The objective has changed so flag this if necessary.
- if manager.preprocessor is not None:
- manager.preprocessor.objective_updated[scenario.name] = True
-
-def EXTERNAL_initialize_for_admm(manager,
- scenario):
- if manager.get_option("verbose"):
- print("Initializing scenario %s for admm algorithm"
- % (scenario.name))
- admm_block = Block(concrete=True)
- assert not hasattr(scenario._instance, ".admm")
- scenario._instance.add_component(".admm", admm_block)
-
- # Augment the objective with lagrangian and penalty terms
- # and weight the original objective by the scenario probability.
- # The langrangian and penalty terms will be computed after
- # the parameters are created.
- user_cost_expression = scenario._instance_cost_expression
- admm_block.cost_expression = Expression(initialize=\
- scenario.probability * user_cost_expression)
- admm_block.lagrangian_expression = Expression(initialize=0.0)
- admm_block.penalty_expression = Expression(initialize=0.0)
- # these are used in the objective, they can be toggled
- # between the expression above or something else (e.g., 0.0)
- admm_block.cost_term = Expression(
- initialize=admm_block.cost_expression)
- admm_block.lagrangian_term = Expression(
- initialize=admm_block.lagrangian_expression)
- admm_block.penalty_term = Expression(
- initialize=admm_block.penalty_expression)
- objective_direction = 1
- if manager.objective_sense == maximize:
- objective_direction = -1
- scenario._instance_objective.expr = \
- admm_block.cost_term + \
- admm_block.lagrangian_term * objective_direction + \
- admm_block.penalty_term * objective_direction
-
- # add objective parameters to admm block
- for tree_node in scenario.node_list[:-1]:
- assert not tree_node.is_leaf_node()
- node_block = Block(concrete=True)
- admm_block.add_component(tree_node.name,
- node_block)
- node_block.node_index_set = Set(
- ordered=True,
- initialize=sorted(tree_node._standard_variable_ids))
- node_block.z = Param(node_block.node_index_set,
- initialize=0.0,
- mutable=True)
- node_block.y = Param(node_block.node_index_set,
- initialize=0.0,
- mutable=True)
- node_block.rho = Param(node_block.node_index_set,
- initialize=0.0,
- mutable=True)
-
- for id_ in node_block.node_index_set:
- varname, index = tree_node._variable_ids[id_]
- var = scenario._instance.find_component(varname)[index]
- admm_block.lagrangian_expression.expr += \
- node_block.y[id_] * (var - node_block.z[id_])
- admm_block.penalty_expression.expr += \
- (node_block.rho[id_] / 2.0) * (var - node_block.z[id_])**2
-
- # The objective has changed so flag this if necessary.
- if manager.preprocessor is not None:
- manager.preprocessor.objective_updated[scenario.name] = True
-
-def EXTERNAL_activate_lagrangian_term(manager,
- scenario):
- if manager.get_option("verbose"):
- print("Activating admm lagrangian term on scenario %s"
- % (scenario.name))
- assert hasattr(scenario._instance, ".admm")
- admm_block = getattr(scenario._instance, ".admm")
- admm_block.lagrangian_term.expr = \
- admm_block.lagrangian_expression
- # The objective has changed so flag this if necessary.
- if manager.preprocessor is not None:
- manager.preprocessor.objective_updated[scenario.name] = True
-
-def EXTERNAL_deactivate_lagrangian_term(manager,
- scenario):
- if manager.get_option("verbose"):
- print("Deactivating admm lagrangian term on scenario %s"
- % (scenario.name))
- assert hasattr(scenario._instance, ".admm")
- admm_block = getattr(scenario._instance, ".admm")
- admm_block.lagrangian_term.expr = 0.0
- # The objective has changed so flag this if necessary.
- if manager.preprocessor is not None:
- manager.preprocessor.objective_updated[scenario.name] = True
-
-def EXTERNAL_activate_penalty_term(manager,
- scenario):
- if manager.get_option("verbose"):
- print("Activating admm penalty term on scenario %s"
- % (scenario.name))
- assert hasattr(scenario._instance, ".admm")
- admm_block = getattr(scenario._instance, ".admm")
- admm_block.penalty_term.expr = \
- admm_block.penalty_expression
- # The objective has changed so flag this if necessary.
- if manager.preprocessor is not None:
- manager.preprocessor.objective_updated[scenario.name] = True
-
-def EXTERNAL_deactivate_penalty_term(manager,
- scenario):
- if manager.get_option("verbose"):
- print("Deactivating admm penalty term on scenario %s"
- % (scenario.name))
- assert hasattr(scenario._instance, ".admm")
- admm_block = getattr(scenario._instance, ".admm")
- admm_block.penalty_term.expr = 0.0
- # The objective has changed so flag this if necessary.
- if manager.preprocessor is not None:
- manager.preprocessor.objective_updated[scenario.name] = True
-
-def EXTERNAL_activate_probability_weighted_cost_term(manager,
- scenario):
- if manager.get_option("verbose"):
- print("Activating admm probability-weighted cost term on scenario %s"
- % (scenario.name))
- assert hasattr(scenario._instance, ".admm")
- admm_block = getattr(scenario._instance, ".admm")
- admm_block.cost_term.expr = \
- admm_block.cost_expression
- # The objective has changed so flag this if necessary.
- if manager.preprocessor is not None:
- manager.preprocessor.objective_updated[scenario.name] = True
-
-def EXTERNAL_deactivate_probability_weighted_cost_term(manager,
- scenario):
- if manager.get_option("verbose"):
- print("Deactivating admm probability-weighted cost term on scenario %s"
- % (scenario.name))
- assert hasattr(scenario._instance, ".admm")
- admm_block = getattr(scenario._instance, ".admm")
- admm_block.cost_term.expr = \
- scenario._instance_cost_expression
- # The objective has changed so flag this if necessary.
- if manager.preprocessor is not None:
- manager.preprocessor.objective_updated[scenario.name] = True
-
-def EXTERNAL_update_rho(manager,
- scenario,
- rho):
- if manager.get_option("verbose"):
- print("Updating admm rho parameter for scenario %s"
- % (scenario.name))
- assert hasattr(scenario._instance, ".admm")
- admm_block = getattr(scenario._instance, ".admm")
- for tree_node in scenario.node_list[:-1]:
- assert not tree_node.is_leaf_node()
- node_block = admm_block.find_component(tree_node.name)
- assert node_block is not None
- node_block.rho.store_values(rho[tree_node.name])
- # The objective has changed so flag this if necessary.
- if manager.preprocessor is not None:
- manager.preprocessor.objective_updated[scenario.name] = True
-
-def EXTERNAL_update_y(manager,
- scenario,
- y):
- if manager.get_option("verbose"):
- print("Updating admm y parameter for scenario %s"
- % (scenario.name))
- assert hasattr(scenario._instance, ".admm")
- admm_block = getattr(scenario._instance, ".admm")
- for tree_node in scenario.node_list[:-1]:
- assert not tree_node.is_leaf_node()
- node_block = admm_block.find_component(tree_node.name)
- assert node_block is not None
- node_block.y.store_values(y[tree_node.name])
- # The objective has changed so flag this if necessary.
- if manager.preprocessor is not None:
- manager.preprocessor.objective_updated[scenario.name] = True
-
-def EXTERNAL_update_z(manager,
- scenario,
- z):
- if manager.get_option("verbose"):
- print("Updating admm z parameter for scenario %s"
- % (scenario.name))
- assert hasattr(scenario._instance, ".admm")
- admm_block = getattr(scenario._instance, ".admm")
- for tree_node in scenario.node_list[:-1]:
- assert not tree_node.is_leaf_node()
- node_block = admm_block.find_component(tree_node.name)
- assert node_block is not None
- node_block.z.store_values(z[tree_node.name])
- # The objective has changed so flag this if necessary.
- if manager.preprocessor is not None:
- manager.preprocessor.objective_updated[scenario.name] = True
-
-class ADMMAlgorithm(PySPConfiguredObject):
-
- @classmethod
- def _declare_options(cls, options=None):
- if options is None:
- options = PySPConfigBlock()
- safe_declare_common_option(options,
- "verbose",
- ap_group=_admm_group_label)
- ScenarioTreeManagerSolverFactory.register_options(
- options,
- options_prefix="subproblem_",
- setup_argparse=False)
- return options
-
- def __enter__(self):
- return self
-
- def __exit__(self, *args):
- self.close()
-
- def close(self):
- if self._manager is not None:
- self.cleanup_subproblems()
- if self._manager_solver is not None:
- self._manager_solver.close()
- self._manager_solver = None
- self._manager = None
-
- def __init__(self, manager, *args, **kwds):
- super(ADMMAlgorithm, self).__init__(*args, **kwds)
-
- if not isinstance(manager, ScenarioTreeManager):
- raise TypeError("%s requires an instance of the "
- "ScenarioTreeManagerSolver interface as the "
- "second argument" % (self.__class__.__name__))
- if not manager.initialized:
- raise ValueError("%s requires a scenario tree "
- "manager that has been fully initialized"
- % (self.__class__.__name__))
-
- self._manager = manager
- self._manager_solver = ScenarioTreeManagerSolverFactory(
- self._manager,
- self._options,
- options_prefix="subproblem_")
-
- self.initialize_subproblems()
-
- def initialize_subproblems(self):
- if self.get_option("verbose"):
- print("Initializing subproblems for admm")
- self._manager.invoke_function(
- "EXTERNAL_initialize_for_admm",
- thisfile,
- invocation_type=InvocationType.PerScenario,
- oneway_call=True)
-
- def cleanup_subproblems(self):
- if self.get_option("verbose"):
- print("Cleaning up subproblems for admm")
- self._manager.invoke_function(
- "EXTERNAL_cleanup_for_admm",
- thisfile,
- invocation_type=InvocationType.PerScenario,
- oneway_call=True)
-
- def activate_lagrangian_term(self):
- self._manager.invoke_function(
- "EXTERNAL_activate_lagrangian_term",
- thisfile,
- invocation_type=InvocationType.PerScenario,
- oneway_call=True)
-
- def deactivate_lagrangian_term(self):
- self._manager.invoke_function(
- "EXTERNAL_deactivate_lagrangian_term",
- thisfile,
- invocation_type=InvocationType.PerScenario,
- oneway_call=True)
-
- def activate_penalty_term(self):
- self._manager.invoke_function(
- "EXTERNAL_activate_penalty_term",
- thisfile,
- invocation_type=InvocationType.PerScenario,
- oneway_call=True)
-
- def deactivate_penalty_term(self):
- self._manager.invoke_function(
- "EXTERNAL_deactivate_penalty_term",
- thisfile,
- invocation_type=InvocationType.PerScenario,
- oneway_call=True)
-
- def activate_probability_weighted_cost_term(self):
- self._manager.invoke_function(
- "EXTERNAL_activate_probability_weighted_cost_term",
- thisfile,
- invocation_type=InvocationType.PerScenario,
- oneway_call=True)
-
- def deactivate_probability_weighted_cost_term(self):
- self._manager.invoke_function(
- "EXTERNAL_deactivate_probability_weighted_cost_term",
- thisfile,
- invocation_type=InvocationType.PerScenario,
- oneway_call=True)
-
- def run_x_update(self, x, y, z, rho):
- self._manager.invoke_function(
- "EXTERNAL_update_rho",
- thisfile,
- invocation_type=InvocationType.PerScenario,
- function_args=(rho,),
- oneway_call=True)
- for scenario in self._manager.scenario_tree.scenarios:
- self._manager.invoke_function(
- "EXTERNAL_update_y",
- thisfile,
- invocation_type=InvocationType.OnScenario(scenario.name),
- function_args=(y[scenario.name],),
- oneway_call=True)
- self._manager.invoke_function(
- "EXTERNAL_update_z",
- thisfile,
- invocation_type=InvocationType.PerScenario,
- function_args=(z,),
- oneway_call=True)
-
- self._manager_solver.solve_scenarios()
-
- objective = 0.0
- for scenario in self._manager.scenario_tree.scenarios:
- x_scenario = x[scenario.name]
- x_scenario_solution = scenario._x
- objective += scenario._objective
- for tree_node in scenario.node_list[:-1]:
- assert not tree_node.is_leaf_node()
- x_node = x_scenario[tree_node.name]
- x_node_solution = x_scenario_solution[tree_node.name]
- for id_ in tree_node._standard_variable_ids:
- x_node[id_] = x_node_solution[id_]
-
- return objective
-
- def run_z_update(self, x, y, z, rho):
- primal_residual = 0.0
- dual_residual = 0.0
- x_scale = 0.0
- z_scale = 0.0
- for stage in self._manager.scenario_tree.stages[:-1]:
- for tree_node in stage.nodes:
- z_node = z[tree_node.name]
- rho_node = rho[tree_node.name]
- for id_ in tree_node._standard_variable_ids:
- z_var_prev = z_node[id_]
- rho_var = rho_node[id_]
- z_var = 0.0
- for scenario in tree_node.scenarios:
- z_var += scenario._x[tree_node.name][id_]
- z_var /= float(len(tree_node.scenarios))
- if tree_node.is_variable_binary(id_) or \
- tree_node.is_variable_integer(id_):
- z_var = int(round(z_var))
- dual_residual += len(tree_node.scenarios) * \
- rho_var**2 * \
- (z_var - z_var_prev)**2
- for scenario in tree_node.scenarios:
- x_var = scenario._x[tree_node.name][id_]
- x_scale += x_var**2
- primal_residual += (x_var - z_var)**2
- z_node[id_] = z_var
- z_scale += z_var**2
- return (math.sqrt(primal_residual),
- math.sqrt(dual_residual),
- math.sqrt(x_scale),
- math.sqrt(z_scale))
-
- def run_y_update(self, x, y, z, rho):
- y_scale = 0.0
- for scenario in self._manager.scenario_tree.scenarios:
- y_scenario = y[scenario.name]
- x_scenario = scenario._x
- for tree_node in scenario.node_list[:-1]:
- assert not tree_node.is_leaf_node()
- rho_node = rho[tree_node.name]
- z_node = z[tree_node.name]
- y_node = y_scenario[tree_node.name]
- x_node = x_scenario[tree_node.name]
- for id_ in tree_node._standard_variable_ids:
- y_node[id_] += rho_node[id_] * (x_node[id_] - z_node[id_])
- y_scale += y_node[id_]**2
- return math.sqrt(y_scale)
-
- def initialize_algorithm_data(self,
- rho_init=1.0,
- y_init=0.0,
- z_init=0.0):
-
- # used to check dual-feasibility of initial y
- y_sum = {}
- for stage in self._manager.scenario_tree.stages[:-1]:
- for tree_node in stage.nodes:
- y_sum_node = y_sum[tree_node.name] = \
- dict((id_, 0.0) for id_ in tree_node._standard_variable_ids)
-
- x = {}
- y = {}
- for scenario in self._manager.scenario_tree.scenarios:
- x_scenario = x[scenario.name] = {}
- y_scenario = y[scenario.name] = {}
- for tree_node in scenario.node_list[:-1]:
- assert not tree_node.is_leaf_node()
- x_node = x_scenario[tree_node.name] = {}
- y_node = y_scenario[tree_node.name] = {}
- y_sum_node = y_sum[tree_node.name]
- for id_ in tree_node._standard_variable_ids:
- x_node[id_] = None
- if type(y_init) is dict:
- y_node[id_] = y_init[scenario.name][tree_node.name][id_]
- else:
- y_node[id_] = y_init
- y_sum_node[id_] += y_node[id_]
-
- # check dual-feasibility of y
- for stage in self._manager.scenario_tree.stages[:-1]:
- for tree_node in stage.nodes:
- y_sum_node = y_sum[tree_node.name]
- for id_ in tree_node._standard_variable_ids:
- if abs(y_sum_node[id_]) > 1e-6:
- name, index = tree_node._variable_ids[id_]
- raise ValueError(
- "Initial lagrange multipler estimates for non-"
- "anticipative variable %s do not sum to zero: %s"
- % (name+indexToString(index), repr(y_sum_node[id_])))
-
- rho = {}
- z = {}
- for stage in self._manager.scenario_tree.stages[:-1]:
- for tree_node in stage.nodes:
- z_node = z[tree_node.name] = {}
- rho_node = rho[tree_node.name] = {}
- for id_ in tree_node._standard_variable_ids:
- if type(rho_init) is dict:
- rho_node[id_] = rho_init[tree_node.name][id_]
- else:
- rho_node[id_] = rho_init
- if type(z_init) is dict:
- z_node[id_] = z_init[tree_node.name][id_]
- else:
- z_node[id_] = z_init
-
- return rho, x, y, z
-
- def compute_nodevector_norm(self, v):
- vnorm = 0.0
- for stage in self._manager.scenario_tree.stages[:-1]:
- for tree_node in stage.nodes:
- v_node = v[tree_node.name]
- for id_ in tree_node._standard_variable_ids:
- vnorm += v_node[id_]**2
- return math.sqrt(vnorm)
-
-class ADMMSolver(SPSolver, PySPConfiguredObject):
-
- @classmethod
- def _declare_options(cls, options=None):
- if options is None:
- options = PySPConfigBlock()
- safe_declare_common_option(options,
- "max_iterations",
- ap_group=_admm_group_label)
- safe_declare_unique_option(
- options,
- "primal_residual_relative_tolerance",
- PySPConfigValue(
- 1.0e-4,
- domain=_domain_positive,
- description=(
- "Relative primal-residual tolerance. Default is 1e-4."
- ),
- doc=None,
- visibility=0),
- ap_group=_admm_group_label)
- safe_declare_unique_option(
- options,
- "dual_residual_relative_tolerance",
- PySPConfigValue(
- 1.0e-4,
- domain=_domain_positive,
- description=(
- "Relative dual-residual tolerance. Default is 1e-4."
- ),
- doc=None,
- visibility=0),
- ap_group=_admm_group_label)
- ADMMAlgorithm._declare_options(options)
- for rstype in RhoStrategyFactory.registered_types.values():
- rstype._declare_options(options)
- assert 'adaptive' in RhoStrategyFactory.registered_types
- safe_declare_unique_option(
- options,
- "rho_strategy",
- PySPConfigValue(
- 'adaptive',
- domain=_domain_must_be_str,
- description=(
- "Rho update strategy. Choices are: %s. Default is 'adaptive'."
- % (str(sorted(RhoStrategyFactory.registered_types.keys())))
- ),
- doc=None,
- visibility=0),
- ap_group=_admm_group_label)
- return options
-
- def __init__(self):
- super(ADMMSolver, self).__init__(self.register_options())
- self.set_options_to_default()
- # The following attributes will be modified by the
- # solve() method. For users that are scripting, these
- # can be accessed after the solve() method returns.
- # They will be reset each time solve() is called.
- ############################################
- self.objective_history = OrderedDict()
- self.primal_residual_history = OrderedDict()
- self.dual_residual_history = OrderedDict()
- self.iterations = None
- ############################################
-
- def set_options_to_default(self):
- self._options = self.register_options()
-
- @property
- def options(self):
- return self._options
-
- @property
- def name(self):
- return "admm"
-
- def _solve_impl(self,
- sp,
- rho=1.0,
- y_init=0.0,
- z_init=0.0,
- output_solver_log=False):
-
- if len(sp.scenario_tree.stages) > 2:
- raise ValueError(
- "ADMM solver does not yet handle more "
- "than 2 time-stages")
-
- start_time = time.time()
-
- scenario_tree = sp.scenario_tree
- num_scenarios = len(scenario_tree.scenarios)
- num_stages = len(scenario_tree.stages)
- num_na_nodes = 0
- num_na_variables = 0
- num_na_continuous_variables = 0
- num_na_binary_variables = 0
- num_na_integer_variables = 0
- for stage in sp.scenario_tree.stages[:-1]:
- for tree_node in stage.nodes:
- num_na_nodes += 1
- num_na_variables += len(tree_node._standard_variable_ids)
- for id_ in tree_node._standard_variable_ids:
- if tree_node.is_variable_binary(id_):
- num_na_binary_variables += 1
- elif tree_node.is_variable_integer(id_):
- num_na_integer_variables += 1
- else:
- num_na_continuous_variables += 1
-
-# print("-"*20)
-# print("Problem Statistics".center(20))
-# print("-"*20)
-# print("Total number of scenarios.................: %10s"
-# % (num_scenarios))
-# print("Total number of time stages...............: %10s"
-# % (num_stages))
-# print("Total number of non-anticipative nodes....: %10s"
-# % (num_na_nodes))
-# print("Total number of non-anticipative variables: %10s\n#"
-# " continuous: %10s\n#"
-# " binary: %10s\n#"
-# " integer: %10s"
-# % (num_na_variables,
-# num_na_continuous_variables,
-# num_na_binary_variables,
-# num_na_integer_variables))
-
- rel_tol_primal = \
- self.get_option("primal_residual_relative_tolerance")
- rel_tol_dual = \
- self.get_option("dual_residual_relative_tolerance")
- max_iterations = \
- self.get_option("max_iterations")
-
- self.objective_history = OrderedDict()
- self.primal_residual_history = OrderedDict()
- self.dual_residual_history = OrderedDict()
- self.iterations = 0
- if output_solver_log:
- print("")
- label_cols = ("{0:^4} {1:>16} {2:>8} {3:>8} {4:>12}".format(
- "iter","objective","pr_res","du_res","lg(||rho||)"))
- with ADMMAlgorithm(sp, self._options) as admm:
- rho, x, y, z = admm.initialize_algorithm_data(rho_init=rho,
- y_init=y_init,
- z_init=z_init)
- rho_strategy = RhoStrategyFactory(
- self.get_option("rho_strategy"),
- self._options)
- rho_strategy.initialize(sp, x, y, z, rho)
- for i in xrange(max_iterations):
-
- objective = \
- admm.run_x_update(x, y, z, rho)
- (unscaled_primal_residual,
- unscaled_dual_residual,
- x_scale,
- z_scale) = \
- admm.run_z_update(x, y, z, rho)
- y_scale = \
- admm.run_y_update(x, y, z, rho)
-
- # we've completed another iteration
- self.iterations += 1
-
- # check for convergence
- primal_rel_scale = max(1.0, x_scale, z_scale)
- dual_rel_scale = max(1.0, y_scale)
- primal_residual = unscaled_primal_residual / \
- math.sqrt(num_scenarios) / \
- primal_rel_scale
- dual_residual = unscaled_dual_residual / \
- math.sqrt(num_na_variables) / \
- dual_rel_scale
-
- self.objective_history[i] = \
- objective
- self.primal_residual_history[i] = \
- primal_residual
- self.dual_residual_history[i] = \
- dual_residual
-
- if output_solver_log:
- if (i % 10) == 0:
- print(label_cols)
- print("%4d %16.7e %8.2e %8.2e %12.2e"
- % (i,
- objective,
- primal_residual,
- dual_residual,
- math.log(admm.compute_nodevector_norm(rho))))
-
- if (primal_residual < rel_tol_primal) and \
- (dual_residual < rel_tol_dual):
- if output_solver_log:
- print("\nNumber of Iterations....: %s"
- % (self.iterations))
- break
- else:
- rho_strategy.update_rho(sp, x, y, z, rho)
-
- else:
- if output_solver_log:
- print("\nMaximum number of iterations reached: %s"
- % (max_iterations))
-
- if output_solver_log:
- print("")
- print(" {0:^24} {1:^24}".\
- format("(scaled)", "(unscaled)"))
- print("Objective..........: {0:^24} {1:^24.16e}".\
- format("-", objective))
- print("Primal residual....: {0:^24.16e} {1:^24.16e}".\
- format(primal_residual, unscaled_primal_residual))
- print("Dual residual......: {0:^24.16e} {1:^24.16e}".\
- format(dual_residual, unscaled_dual_residual))
- unscaled_err = unscaled_primal_residual + \
- unscaled_dual_residual
- err = primal_residual + dual_residual
- print("Overall error......: {0:^24.16e} {1:^24.16e}".\
- format(err, unscaled_err))
-
- results = SPSolverResults()
- results.objective = objective
- results.xhat = z
- return results
-
-def runadmm_register_options(options=None):
- if options is None:
- options = PySPConfigBlock()
- ADMMSolver.register_options(options)
- ScenarioTreeManagerFactory.register_options(options)
- safe_register_common_option(options,
- "verbose")
- safe_register_common_option(options,
- "disable_gc")
- safe_register_common_option(options,
- "profile")
- safe_register_common_option(options,
- "traceback")
- safe_register_common_option(options,
- "output_solver_log")
- safe_register_common_option(options,
- "output_scenario_tree_solution")
- safe_register_unique_option(
- options,
- "default_rho",
- PySPConfigValue(
- 1.0,
- domain=_domain_positive,
- description=(
- "The default rho value for all non-anticipative "
- "variables. Default is 1.0."
- ),
- doc=None,
- visibility=0),
- ap_args=("-r", "--default-rho"),
- ap_group=_admm_group_label)
-
- return options
-
-def runadmm(options):
- """
- Construct a senario tree manager and solve it
- with the ADMM solver.
- """
- start_time = time.time()
- with ScenarioTreeManagerFactory(options) as sp:
- sp.initialize()
-
- print("")
- print("Running ADMM solver for stochastic "
- "programming problems")
- admm = ADMMSolver()
- admm_options = admm.extract_user_options_to_dict(
- options,
- sparse=True)
- results = admm.solve(
- sp,
- options=admm_options,
- rho=options.default_rho,
- output_solver_log=options.output_solver_log)
- xhat = results.xhat
- del results.xhat
- print("")
- print(results)
-
- if options.output_scenario_tree_solution:
- print("Final solution (scenario tree format):")
- sp.scenario_tree.snapshotSolutionFromScenarios()
- sp.scenario_tree.pprintSolution()
- sp.scenario_tree.pprintCosts()
-
- print("")
- print("Total execution time=%.2f seconds"
- % (time.time() - start_time))
- return 0
-
-#
-# the main driver routine
-#
-
-def main(args=None):
- #
- # Top-level command that executes everything
- #
-
- #
- # Import plugins
- #
- import pyomo.environ
-
- #
- # Parse command-line options.
- #
- try:
- options = parse_command_line(
- args,
- runadmm_register_options,
- prog='runadmm',
- description=(
-"""Optimize a stochastic program using the Alternating Direction
-Method of Multipliers (ADMM) solver."""
- ))
-
- except SystemExit as _exc:
- # the parser throws a system exit if "-h" is specified
- # - catch it to exit gracefully.
- return _exc.code
-
- return launch_command(runadmm,
- options,
- error_label="runadmm: ",
- disable_gc=options.disable_gc,
- profile_count=options.profile,
- traceback=options.traceback)
-
-SPSolverFactory.register_solver("admm", ADMMSolver)
-
-if __name__ == "__main__":
- sys.exit(main())
diff --git a/pyomo/pysp/solvers/benders.py b/pyomo/pysp/solvers/benders.py
deleted file mode 100644
index 4e2ba386a98..00000000000
--- a/pyomo/pysp/solvers/benders.py
+++ /dev/null
@@ -1,1458 +0,0 @@
-# _________________________________________________________________________
-#
-# Pyomo: Python Optimization Modeling Objects
-# Copyright (c) 2014 Sandia Corporation.
-# Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation,
-# the U.S. Government retains certain rights in this software.
-# This software is distributed under the BSD License.
-# _________________________________________________________________________
-
-### Ideas
-# - Should be easy to warm start the benders script
-# from a history file, so one wouldn't need to start
-# from scratch
-
-### SERIOUS TODO:
-# - The ASL interface always returns duals. When the problem is a MIP,
-# they are always zero. We need to make sure that the subproblems
-# are not still MIPs after fixing the first-stage constraints;
-# otherwise, the benders cuts are invalid (because the duals are
-# artificially zero).
-
-### TODOs:
-# - feasibility cuts
-
-import os
-import sys
-import logging
-import time
-import itertools
-
-from pyomo.common.collections import OrderedDict
-from pyomo.opt import (SolverFactory,
- TerminationCondition,
- undefined)
-from pyomo.core import (value, minimize, Set,
- Objective, SOSConstraint,
- Constraint, Var, RangeSet,
- Expression, Suffix, Reals, Param)
-from pyomo.core.base.constraint import _GeneralConstraintData
-from pyomo.core.beta.list_objects import XConstraintList
-from pyomo.pysp.util.configured_object import PySPConfiguredObject
-from pyomo.pysp.util.config import (PySPConfigValue,
- PySPConfigBlock,
- safe_register_common_option,
- safe_declare_common_option,
- safe_declare_unique_option,
- _domain_percent,
- _domain_nonnegative,
- _domain_positive_integer,
- _domain_must_be_str,
- _domain_unit_interval,
- _domain_tuple_of_str,
- _domain_tuple_of_str_or_dict)
-from pyomo.pysp.util.misc import (parse_command_line,
- launch_command)
-from pyomo.pysp.scenariotree.manager import \
- (InvocationType,
- ScenarioTreeManager,
- ScenarioTreeManagerFactory)
-from pyomo.pysp.scenariotree.manager_solver import \
- ScenarioTreeManagerSolverFactory
-from pyomo.pysp.phutils import find_active_objective
-from pyomo.pysp.ef import create_ef_instance
-from pyomo.pysp.solvers.spsolver import (SPSolver,
- SPSolverResults,
- SPSolverFactory)
-
-from six.moves import xrange
-
-thisfile = os.path.abspath(__file__)
-thisfile.replace(".pyc","").replace(".py","")
-
-logger = logging.getLogger('pyomo.pysp')
-
-_benders_group_label = "Benders Options"
-
-def EXTERNAL_deactivate_rootnode_costs(manager,
- scenario):
- assert len(manager.scenario_tree.stages) == 2
- assert scenario in manager.scenario_tree.scenarios
- rootnode = manager.scenario_tree.findRootNode()
- scenario._instance.find_component(
- "PYSP_BENDERS_NODE_COST_TERM_"+rootnode.name).set_value(0.0)
- if manager.preprocessor is not None:
- manager.preprocessor.objective_updated[scenario.name] = True
-
-def EXTERNAL_activate_rootnode_costs(manager,
- scenario):
- assert len(manager.scenario_tree.stages) == 2
- assert scenario in manager.scenario_tree.scenarios
- rootnode = manager.scenario_tree.findRootNode()
- nodecost_var = scenario._instance.find_component(
- rootnode._cost_variable[0])[rootnode._cost_variable[1]]
- scenario._instance.find_component(
- "PYSP_BENDERS_NODE_COST_TERM_"+rootnode.name).set_value(nodecost_var)
- if manager.preprocessor is not None:
- manager.preprocessor.objective_updated[scenario.name] = True
-
-def EXTERNAL_activate_fix_constraints(manager,
- scenario):
- assert len(manager.scenario_tree.stages) == 2
- assert scenario in manager.scenario_tree.scenarios
- fix_constraint = scenario._instance.find_component(
- "PYSP_BENDERS_FIX_XHAT_CONSTRAINT")
- fix_constraint.activate()
- if manager.preprocessor is not None:
- preprocess_constraints_list = \
- manager.preprocessor.constraints_added_list[scenario.name]
- for constraint_data in fix_constraint.values():
- preprocess_constraints_list.append(constraint_data)
-
-def EXTERNAL_deactivate_fix_constraints(manager,
- scenario):
- assert len(manager.scenario_tree.stages) == 2
- assert scenario in manager.scenario_tree.scenarios
- fix_constraint = scenario._instance.find_component(
- "PYSP_BENDERS_FIX_XHAT_CONSTRAINT")
- fix_constraint.deactivate()
- # no need to flag the preprocessor
- if manager.preprocessor is not None:
- preprocess_constraints_list = \
- manager.preprocessor.constraints_removed_list[scenario.name]
- for constraint_data in fix_constraint.values():
- preprocess_constraints_list.append(constraint_data)
-
-def EXTERNAL_cleanup_from_benders(manager,
- scenario):
-
- instance = scenario._instance
-
- # restore node cost expressions
- for node in scenario.node_list:
- cost_term_name = "PYSP_BENDERS_NODE_COST_TERM_"+node.name
- assert hasattr(instance, cost_term_name)
- instance.del_component(cost_term_name)
- assert hasattr(scenario, "_instance_cost_expression_old")
- scenario._instance_cost_expression.set_value(
- scenario._instance_cost_expression_old)
- del scenario._instance_cost_expression_old
-
- if hasattr(scenario, "_remove_dual_at_benders_cleanup"):
- assert scenario._remove_dual_at_benders_cleanup
- del scenario._remove_dual_at_benders_cleanup
- if manager.scenario_tree.contains_bundles():
- found = 0
- for scenario_bundle in manager.scenario_tree.bundles:
- if scenario.name in scenario_bundle.scenario_names:
- found += 1
- bundle_instance = \
- manager._bundle_binding_instance_map[scenario_bundle.name]
- bundle_instance.del_component("dual")
- assert found == 1
- else:
- instance.del_component("dual")
-
- # restore cached domains
- scenario_bySymbol = instance._ScenarioTreeSymbolMap.bySymbol
- assert hasattr(instance, "PYSP_BENDERS_CACHED_DOMAINS")
- cached_domains = instance.PYSP_BENDERS_CACHED_DOMAINS
- for variable_id, domain, varbounds in cached_domains:
- vardata = scenario_bySymbol[variable_id]
- vardata.domain = domain
- vardata.setlb(varbounds[0])
- vardata.setub(varbounds[1])
- del instance.PYSP_BENDERS_CACHED_DOMAINS
-
- # remove fixing components
- nodal_index_set_name = "PYSP_BENDERS_FIX_XHAT_INDEX"
- assert hasattr(instance, nodal_index_set_name)
- instance.del_component(nodal_index_set_name)
-
- fix_param_name = "PYSP_BENDERS_FIX_XHAT_VALUE"
- assert hasattr(instance, fix_param_name)
- instance.del_component(fix_param_name)
-
- fix_constraint_name = "PYSP_BENDERS_FIX_XHAT_CONSTRAINT"
- assert hasattr(instance, fix_constraint_name)
- instance.del_component(fix_constraint_name)
-
- # The objective has changed so flag this if
- # necessary. Might as well flag the constraints as well
- # for safe measure
- if manager.preprocessor is not None:
- manager.preprocessor.objective_updated[scenario.name] = True
-
-def EXTERNAL_initialize_for_benders(manager,
- scenario):
- assert len(manager.scenario_tree.stages) == 2
- assert scenario in manager.scenario_tree.scenarios
-
- rootnode = manager.scenario_tree.findRootNode()
- leafstage = scenario._leaf_node.stage
- instance = scenario._instance
-
- # disaggregate the objective into stage costs
- cost_terms = 0.0
- for node in scenario.node_list:
- stagecost_var = instance.find_component(
- node._cost_variable[0])[node._cost_variable[1]]
- cost_term_name = "PYSP_BENDERS_NODE_COST_TERM_"+node.name
- assert not hasattr(instance, cost_term_name)
- instance.add_component(cost_term_name,
- Expression(initialize=stagecost_var))
- cost_terms += instance.find_component(cost_term_name)
- assert not hasattr(scenario, "_instance_cost_expression_old")
- scenario._instance_cost_expression_old = \
- scenario._instance_cost_expression.expr
- # we modify this component in place so that any bundle objectives
- # get updated automatically
- scenario._instance_cost_expression.set_value(cost_terms)
-
- # TODO: Remove first stage constraints?
- # NOTE: If any constraints are misidentified as
- # first-stage (e.g., because they include only
- # first-stage variables but have data that
- # changes), then these constraints would not be
- # accounted for in the overall problem if we
- # deactivate them here, so it is better leave them
- # all active by default.
- if manager.scenario_tree.contains_bundles():
- found = 0
- for scenario_bundle in manager.scenario_tree.bundles:
- if scenario.name in scenario_bundle.scenario_names:
- found += 1
- bundle_instance = \
- manager._bundle_binding_instance_map[scenario_bundle.name]
- if not hasattr(bundle_instance,"dual"):
- scenario._remove_dual_at_benders_cleanup = True
- bundle_instance.dual = Suffix(direction=Suffix.IMPORT)
- else:
- if isinstance(bundle_instance.dual, Suffix):
- if not bundle_instance.dual.import_enabled():
- print("Modifying existing dual component to import "
- "suffix data from solver.")
- bundle_instance.dual.set_direction(Suffix.IMPORT_EXPORT)
- else:
- raise TypeError(
- "Object with name 'dual' was found on model that "
- "is not of type 'Suffix'. The object must be renamed "
- "in order to use the benders algorithm.")
- assert found == 1
- else:
- if not hasattr(instance,"dual"):
- scenario._remove_dual_at_benders_cleanup = True
- instance.dual = Suffix(direction=Suffix.IMPORT)
- else:
- if isinstance(instance.dual, Suffix):
- if not instance.dual.import_enabled():
- print("Modifying existing dual component to import "
- "suffix data from solver.")
- instance.dual.set_direction(Suffix.IMPORT_EXPORT)
- else:
- raise TypeError(
- "Object with name 'dual' was found on model that "
- "is not of type 'Suffix'. The object must be renamed "
- "in order to use the benders algorithm.")
-
- # Relax all first-stage variables to be continuous, cache
- # their original bounds an domains on the instance so we
- # can restore them
- scenario_bySymbol = instance._ScenarioTreeSymbolMap.bySymbol
- assert not hasattr(instance, "PYSP_BENDERS_CACHED_DOMAINS")
- cached_domains = instance.PYSP_BENDERS_CACHED_DOMAINS = []
- # GH: Question: Is it possible that there are "derived"
- # variables that are only "derived"
- # when additional integrality conditions
- # are placed on them? If so, they would
- # need to be classified as "standard" in
- # order to run benders. That is, unless we
- # include all node variables in the
- # benders cuts and fixing constraints by
- # default. For now, we do not.
- for variable_id in rootnode._variable_ids:
- vardata = scenario_bySymbol[variable_id]
- # derived variables might be Expression objects
- if not vardata.is_expression_type():
- tight_bounds = vardata.bounds
- domain = vardata.domain
- vardata.domain = Reals
- # Collect the var bounds after setting the domain
- # to Reals. We do this so we know if the Var bounds
- # are set by the user or come from the domain
- varbounds = vardata.bounds
- cached_domains.append((variable_id, domain, varbounds))
- vardata.setlb(tight_bounds[0])
- vardata.setub(tight_bounds[1])
-
- # create index sets for fixing components
- nodal_index_set_name = "PYSP_BENDERS_FIX_XHAT_INDEX"
- assert not hasattr(instance, nodal_index_set_name)
- nodal_index_set = Set(name=nodal_index_set_name,
- ordered=True,
- initialize=sorted(rootnode._standard_variable_ids))
- instance.add_component(nodal_index_set_name, nodal_index_set)
-
- fix_param_name = "PYSP_BENDERS_FIX_XHAT_VALUE"
- assert not hasattr(instance, fix_param_name)
- instance.add_component(fix_param_name,
- Param(nodal_index_set, mutable=True, initialize=0.0))
- fix_param = instance.find_component(fix_param_name)
-
- fix_constraint_name = "PYSP_BENDERS_FIX_XHAT_CONSTRAINT"
- assert not hasattr(instance, fix_constraint_name)
- def fix_rule(m,variable_id):
- # NOTE: The ordering within the expression is important here; otherwise
- # duals will be returned with the opposite sign, which affects how
- # the cut expressions need to be generated
- return scenario_bySymbol[variable_id] - fix_param[variable_id] == 0.0
- instance.add_component(fix_constraint_name,
- Constraint(nodal_index_set, rule=fix_rule))
- instance.find_component(fix_constraint_name).deactivate()
-
- # These will flag the necessary preprocessor info
- EXTERNAL_deactivate_rootnode_costs(manager, scenario)
- EXTERNAL_activate_fix_constraints(manager, scenario)
-
-def EXTERNAL_update_fix_constraints(manager,
- scenario,
- fix_values):
- assert len(manager.scenario_tree.stages) == 2
- assert scenario in manager.scenario_tree.scenarios
- instance = scenario._instance
- fix_param_name = "PYSP_BENDERS_FIX_XHAT_VALUE"
- fix_param = instance.find_component(fix_param_name)
- fix_param.store_values(fix_values)
-
- fix_constraint = scenario._instance.find_component(
- "PYSP_BENDERS_FIX_XHAT_CONSTRAINT")
- if manager.preprocessor is not None:
- preprocess_constraints_list = \
- manager.preprocessor.constraints_updated_list[scenario.name]
- for constraint_data in fix_constraint.values():
- preprocess_constraints_list.append(constraint_data)
-
-def EXTERNAL_collect_cut_data(manager,
- scenario):
- assert len(manager.scenario_tree.stages) == 2
- assert scenario in manager.scenario_tree.scenarios
-
- dual_suffix = None
- sum_probability_bundle = None
- if manager.scenario_tree.contains_bundles():
- found = 0
- for scenario_bundle in manager.scenario_tree.bundles:
- if scenario.name in scenario_bundle.scenario_names:
- found += 1
- dual_suffix = \
- manager._bundle_binding_instance_map[scenario_bundle.name].dual
- sum_probability_bundle = scenario_bundle.probability
- assert found == 1
-
- else:
- dual_suffix = scenario._instance.dual
- sum_probability_bundle = scenario.probability
- rootnode = manager.scenario_tree.findRootNode()
- scenario_results = {}
- scenario_results['SSC'] = scenario._stage_costs[scenario.leaf_node.stage.name]
- duals = scenario_results['duals'] = {}
- benders_fix_constraint = scenario._instance.find_component(
- "PYSP_BENDERS_FIX_XHAT_CONSTRAINT")
- if len(dual_suffix) == 0:
- raise RuntimeError("No duals were returned with the solution for "
- "scenario %s. This might indicate a solve failure or "
- "that there are discrete variables in the second-stage "
- "problem." % (scenario.name))
- for variable_id in rootnode._standard_variable_ids:
- duals[variable_id] = dual_suffix[benders_fix_constraint[variable_id]] \
- * sum_probability_bundle \
- / scenario.probability
- return scenario_results
-
-class BendersOptimalityCut(object):
- __slots__ = ("xhat", "ssc", "duals")
- def __init__(self, xhat, ssc, duals):
- self.xhat = xhat
- self.ssc = ssc
- self.duals = duals
-
-class BendersAlgorithm(PySPConfiguredObject):
-
- @classmethod
- def _declare_options(cls, options=None):
- if options is None:
- options = PySPConfigBlock()
- safe_declare_common_option(options,
- "verbose")
- safe_declare_unique_option(
- options,
- "max_iterations",
- PySPConfigValue(
- 100,
- domain=_domain_positive_integer,
- description=(
- "The maximum number of iterations. Default is 100."
- ),
- doc=None,
- visibility=0),
- ap_group=_benders_group_label)
- safe_declare_unique_option(
- options,
- "percent_gap",
- PySPConfigValue(
- 0.0001,
- domain=_domain_percent,
- description=(
- "Percent optimality gap required for convergence. "
- "Default is 0.0001%%."
- ),
- doc=None,
- visibility=0),
- ap_group=_benders_group_label)
- safe_declare_unique_option(
- options,
- "multicut_level",
- PySPConfigValue(
- 1,
- domain=int,
- description=(
- "The number of cut groups added to the "
- "master benders problem each iteration. "
- "Default is 1. A number less than 1 indicates "
- "that the maximum value should be used, which "
- "is one cut group for each scenario not included "
- "in the master problem."
- ),
- doc=None,
- visibility=0),
- ap_group=_benders_group_label)
- safe_declare_unique_option(
- options,
- "optimality_gap_epsilon",
- PySPConfigValue(
- 1e-10,
- domain=_domain_nonnegative,
- description=(
- "The epsilon value used in the denominator of "
- "the optimality gap calculation. Default is 1e-10."
- ),
- doc=None,
- visibility=0),
- ap_group=_benders_group_label)
- safe_declare_unique_option(
- options,
- "master_include_scenarios",
- PySPConfigValue(
- (),
- domain=_domain_tuple_of_str,
- description=(
- "A list of names of scenarios that should be included "
- "in the master problem. This option can be used multiple "
- "times from the command line to specify more than one "
- "scenario name."
- ),
- doc=None,
- visibility=0),
- ap_kwds={'action': 'append'},
- ap_group=_benders_group_label)
- safe_declare_unique_option(
- options,
- "master_disable_warmstart",
- PySPConfigValue(
- False,
- domain=bool,
- description=(
- "Disable warm-start of the benders master "
- "problem solves. Default is False."
- ),
- doc=None,
- visibility=0),
- ap_group=_benders_group_label)
- safe_declare_unique_option(
- options,
- "master_solver",
- PySPConfigValue(
- "cplex",
- domain=_domain_must_be_str,
- description=(
- "Specify the solver with which to solve "
- "the master benders problem. Default is cplex."
- ),
- doc=None,
- visibility=0),
- ap_group=_benders_group_label)
- safe_declare_unique_option(
- options,
- "master_solver_io",
- PySPConfigValue(
- None,
- domain=_domain_must_be_str,
- description=(
- "The type of IO used to execute the master "
- "solver. Different solvers support different "
- "types of IO, but the following are common "
- "options: lp - generate LP files, nl - generate "
- "NL files, mps - generate MPS files, python - "
- "direct Python interface, os - generate OSiL XML files."
- ),
- doc=None,
- visibility=0),
- ap_group=_benders_group_label)
- safe_declare_unique_option(
- options,
- "master_mipgap",
- PySPConfigValue(
- None,
- domain=_domain_unit_interval,
- description=(
- "Specifies the mipgap for the master benders solves."
- ),
- doc=None,
- visibility=0),
- ap_group=_benders_group_label)
- safe_declare_unique_option(
- options,
- "master_solver_options",
- PySPConfigValue(
- (),
- domain=_domain_tuple_of_str_or_dict,
- description=(
- "Persistent solver options used when solving the master "
- "benders problem. This option can be used multiple times from "
- "the command line to specify more than one solver option."
- ),
- doc=None,
- visibility=0),
- ap_kwds={'action': 'append'},
- ap_group=_benders_group_label)
- safe_declare_unique_option(
- options,
- "master_output_solver_log",
- PySPConfigValue(
- False,
- domain=bool,
- description=(
- "Output solver log during solves of the master problem."
- ),
- doc=None,
- visibility=0),
- ap_group=_benders_group_label)
- safe_declare_unique_option(
- options,
- "master_keep_solver_files",
- PySPConfigValue(
- False,
- domain=bool,
- description=(
- "Retain temporary input and output files for master "
- "benders solves."
- ),
- doc=None,
- visibility=0),
- ap_group=_benders_group_label)
- safe_declare_unique_option(
- options,
- "master_symbolic_solver_labels",
- PySPConfigValue(
- False,
- domain=bool,
- description=(
- "When interfacing with the solver, use "
- "symbol names derived from the model. For "
- "example, \"my_special_variable[1_2_3]\" "
- "instead of \"v1\". Useful for "
- "debugging. When using the ASL interface "
- "(--solver-io=nl), generates corresponding "
- ".row (constraints) and .col (variables) "
- "files. The ordering in these files provides "
- "a mapping from ASL index to symbolic model "
- "names."
- ),
- doc=None,
- visibility=0),
- ap_group=_benders_group_label)
-
- ScenarioTreeManagerSolverFactory.register_options(
- options,
- options_prefix="subproblem_",
- setup_argparse=False)
-
- return options
-
- def __enter__(self):
- return self
-
- def __exit__(self, *args):
- self.close()
-
- def close(self):
- if self._manager is not None:
- self.cleanup_subproblems()
- if self._manager_solver is not None:
- self._manager_solver.close()
- self._manager = None
- self._manager_solver = None
- self._master_solver = None
-
- def __init__(self, manager, *args, **kwds):
- # TODO: Does this import need to be delayed because
- # it is in a plugins subdirectory
- from pyomo.solvers.plugins.solvers.persistent_solver import \
- PersistentSolver
-
- self._manager = None
- self._manager_solver = None
- self._master_solver = None
-
- # The following attributes will be modified by the
- # solve() method. For users that are scripting, these
- # can be accessed after the solve() method returns.
- # They will be reset each time solve() is called.
- ############################################
- # history of master bounds
- self.master_bound_history = OrderedDict()
- # history of objectives
- self.objective_history = OrderedDict()
- # best objective
- self.incumbent_objective = None
- # incumbent first-stage solution with best objective
- self.xhat = None
- # |best_bound - best_objective| / (eps + |best_objective|)
- self.optimality_gap = None
- # no. of iterations completed
- self.iterations = None
- ############################################
-
- # The following attributes will be modified by the
- # build_master_problem() method. They will be
- # reset each time it is called. Additionally,
- # cut_pool will be appended with a new cut at
- # each iteration within the solve() method.
- self.master = None
- self.cut_pool = []
- self._num_first_stage_constraints = None
-
- super(BendersAlgorithm, self).__init__(*args, **kwds)
-
- if not isinstance(manager, ScenarioTreeManager):
- raise TypeError("BendersAlgorithm requires an instance of the "
- "ScenarioTreeManager interface as the "
- "first argument")
- if not manager.initialized:
- raise ValueError("BendersAlgorithm requires a scenario tree "
- "manager that has been fully initialized")
- if len(manager.scenario_tree.stages) != 2:
- raise ValueError("BendersAlgorithm requires a two-stage scenario tree")
-
- self._manager = manager
- self._manager_solver = ScenarioTreeManagerSolverFactory(
- self._manager,
- self._options,
- options_prefix="subproblem_")
-
- self._master_solver = None
- # setup the master solver
- self._master_solver = SolverFactory(
- self.get_option("master_solver"),
- solver_io=self.get_option("master_solver_io"))
- if isinstance(self._master_solver, PersistentSolver):
- raise TypeError("BendersAlgorithm does not yet support "
- "PersistentSolver types for the master problem")
- if len(self.get_option("master_solver_options")):
- if type(self.get_option("master_solver_options")) is tuple:
- self._master_solver.set_options(
- "".join(self.get_option("master_solver_options")))
- else:
- self._master_solver.set_options(
- self.get_option("master_solver_options"))
- if self.get_option("master_mipgap") is not None:
- self._master_solver.options.mipgap = \
- self.get_option("master_mipgap")
-
- def deactivate_rootnode_costs(self):
- self._manager.invoke_function(
- "EXTERNAL_deactivate_rootnode_costs",
- thisfile,
- invocation_type=InvocationType.PerScenario,
- oneway_call=True)
-
- def activate_rootnode_costs(self):
- self._manager.invoke_function(
- "EXTERNAL_activate_rootnode_costs",
- thisfile,
- invocation_type=InvocationType.PerScenario,
- oneway_call=True)
-
- def activate_fix_constraints(self):
- self._manager.invoke_function(
- "EXTERNAL_activate_fix_constraints",
- thisfile,
- invocation_type=InvocationType.PerScenario,
- oneway_call=True)
-
- def deactivate_fix_constraints(self):
- self._manager.invoke_function(
- "EXTERNAL_deactivate_fix_constraints",
- thisfile,
- invocation_type=InvocationType.PerScenario,
- oneway_call=True)
-
- def update_fix_constraints(self, fix_values):
- self._manager.invoke_function(
- "EXTERNAL_update_fix_constraints",
- thisfile,
- invocation_type=InvocationType.PerScenario,
- function_args=(fix_values,),
- oneway_call=True)
-
- def collect_cut_data(self, async_call=False):
- return self._manager.invoke_function(
- "EXTERNAL_collect_cut_data",
- thisfile,
- invocation_type=InvocationType.PerScenario,
- async_call=async_call)
-
- def initialize_subproblems(self):
- if self.get_option("verbose"):
- print("Initializing subproblems for benders")
- self._manager.invoke_function(
- "EXTERNAL_initialize_for_benders",
- thisfile,
- invocation_type=InvocationType.PerScenario,
- oneway_call=True)
-
- def cleanup_subproblems(self):
- if self.get_option("verbose"):
- print("Cleaning up subproblems for benders")
- self._manager.invoke_function(
- "EXTERNAL_cleanup_from_benders",
- thisfile,
- invocation_type=InvocationType.PerScenario,
- oneway_call=True)
-
- def generate_cut(self,
- xhat,
- update_stages=(),
- return_solve_results=False):
- """
- Generate a cut for the first-stage solution xhat by
- solving the subproblems. By default, only the stage
- costs and objective values are updated on the local
- scenario tree. Setting update_stages to a list of
- stage names or None (indicating all stages) can be
- used to control how much solution information is
- loaded for the variables on the scenario tree.
- """
- self.update_fix_constraints(xhat)
- solve_results = \
- self._manager_solver.solve_subproblems()
-
- cut_data = self.collect_cut_data()
- benders_cut = BendersOptimalityCut(
- xhat,
- dict((name, cut_data[name]['SSC']) for name in cut_data),
- dict((name, cut_data[name]['duals']) for name in cut_data))
-
- if return_solve_results:
- return benders_cut, solve_results
- else:
- return benders_cut
-
- #
- # Any of the methods above this point can be called without
- # constructing a master problem.
- #
-
- def build_master_problem(self, **kwds):
- """
- Build a master problem to add cuts to. This method
- must called prior to calling methods like solve().
- When the optional keyword include_scenarios is used,
- it overrides the list of names of scenarios (if any)
- to include on the master that were specified on the options
- object used to initialize this class.
- """
-
- # check whether to override the
- # "master_include_scenarios" option
- if "include_scenarios" not in kwds:
- include_scenarios = self.get_option("master_include_scenarios")
- else:
- include_scenarios = kwds.pop("include_scenarios")
- assert len(kwds) == 0
-
- scenario_tree = self._manager.scenario_tree
- rootnode = scenario_tree.findRootNode()
- firststage = rootnode.stage
- objective_sense = self._manager.objective_sense
-
- # construct master problem
- if (include_scenarios is None) or \
- (len(include_scenarios) == 0):
- master_scenario_tree = scenario_tree.make_compressed(
- [scenario_tree.scenarios[0].name],
- normalize=False)
- else:
- print("Number of scenarios included in Benders master problem: %s"
- % (len(include_scenarios)))
- master_scenario_tree = scenario_tree.make_compressed(
- include_scenarios,
- normalize=False)
-
- master_rootnode = master_scenario_tree.findRootNode()
- master_firststage = master_scenario_tree.stages[0]
- assert master_firststage is master_rootnode.stage
- master_secondstage = master_scenario_tree.stages[1]
- assert len(master_scenario_tree.stages) == 2
-
- master_scenario_instances = \
- scenario_tree._scenario_instance_factory.\
- construct_instances_for_scenario_tree(master_scenario_tree)
- # with the scenario instances now available, link the
- # referenced objects directly into the scenario tree.
- master_scenario_tree.linkInInstances(master_scenario_instances,
- create_variable_ids=True)
-
- master = create_ef_instance(master_scenario_tree)
- if (include_scenarios is None) or \
- (len(include_scenarios) == 0):
- master._scenarios_included = set()
- remove_ssc = True
- else:
- master._scenarios_included = \
- set(include_scenarios)
- remove_ssc = False
-
- #
- # Deactivate second-stage constraints
- #
-
- # first count the binding constraints on the top-level ef model
- num_first_stage_constraints = len(list(itertools.chain(
- master.component_data_objects(SOSConstraint,
- active=True,
- descend_into=False),
- master.component_data_objects(Constraint,
- active=True,
- descend_into=False))))
- # now count the first-stage constraints on the scenario
- # instances included in the master ef
- for scenario in master_scenario_tree.scenarios:
- instance = scenario._instance
- for constraint_data in itertools.chain(
- instance.component_data_objects(SOSConstraint,
- active=True,
- descend_into=True),
- instance.component_data_objects(Constraint,
- active=True,
- descend_into=True)):
- # Note that it is possible that we are misidentifying
- # some constraints as belonging to the first stage. This
- # would be the case when no second-stage variables appear
- # in the expression but one or more rhs or first-stage variable
- # coefficients changes with scenarios.
- try:
- node = scenario.constraintNode(constraint_data,
- instance=instance)
- except RuntimeError:
- # TODO: Adapt this to handle the multistage case
- node = scenario.node_list[-1]
- # Not sure if we want to allow variables to not be declared on
- # some stage in the scenario tree.
- #assume_last_stage_if_missing=True)
- if node.stage is not master_firststage:
- assert node.stage is master_secondstage
- if remove_ssc:
- constraint_data.deactivate()
- else:
- num_first_stage_constraints += 1
-
- self._num_first_stage_constraints = num_first_stage_constraints
- # deactivate original objective
- find_active_objective(master, safety_checks=True).deactivate()
-
- # add cut variable(s)
- if self.get_option("multicut_level") < 1:
- print("Using maximum number of cut groups")
- cut_bundles = [[] for scenario in scenario_tree.scenarios]
- else:
- cut_bundles = [[] for i in xrange(self.get_option("multicut_level"))]
-
- # TODO: Allow users some control over these cut_bundles
- cnt = 0
- len_cut_bundles = len(cut_bundles)
- assert len_cut_bundles > 0
- for scenario in scenario_tree.scenarios:
- if scenario.name not in master._scenarios_included:
- cut_bundles[cnt % len_cut_bundles].append(scenario.name)
- cnt += 1
- nonempty_cut_bundles = []
- for bundle in cut_bundles:
- if len(bundle) > 0:
- nonempty_cut_bundles.append(bundle)
- if len(nonempty_cut_bundles) != len(cut_bundles):
- if self.get_option("multicut_level") >= 1:
- print("The number of cut groups indicated by the multicut_level "
- "option was too large. Reducing from %s to %s."
- % (len(cut_bundles), len(nonempty_cut_bundles)))
-
- alpha_varname = "PYSP_BENDERS_ALPHA_SSC"
- assert not hasattr(master, alpha_varname)
- master.add_component(alpha_varname,Var())
- master_alpha = master.find_component(alpha_varname)
-
- alpha_bundles_index_name = "PYSP_BENDERS_BUNDLE_ALPHA_SSC_INDEX"
- assert not hasattr(master, alpha_bundles_index_name)
- master.add_component(alpha_bundles_index_name,
- RangeSet(0,len(nonempty_cut_bundles)-1))
- bundle_alpha_index = master.find_component(alpha_bundles_index_name)
-
- alpha_bundles_name = "PYSP_BENDERS_BUNDLE_ALPHA_SSC"
- assert not hasattr(master, alpha_bundles_name)
- master.add_component(alpha_bundles_name,
- Var(bundle_alpha_index))
- bundle_alpha = master.find_component(alpha_bundles_name)
-
- cut_bundles_list_name = "PYSP_BENDERS_CUT_BUNDLES_SSC"
- assert not hasattr(master, cut_bundles_list_name)
- setattr(master, cut_bundles_list_name, nonempty_cut_bundles)
- alpha_cut_constraint_name = "PYSP_BUNDLE_AVERAGE_ALPHA_CUT_SSC"
- assert not hasattr(master, alpha_cut_constraint_name)
- if objective_sense == minimize:
- master.add_component(
- alpha_cut_constraint_name,
- Constraint(expr=master_alpha >= sum(bundle_alpha[i]
- for i in bundle_alpha_index)))
- else:
- master.add_component(
- alpha_cut_constraint_name,
- Constraint(expr=master_alpha <= sum(bundle_alpha[i]
- for i in bundle_alpha_index)))
-
- # add new objective
- if (include_scenarios is None) or \
- (len(include_scenarios) == 0):
- assert len(master_scenario_tree.scenarios) == 1
- master_cost_expr = master.find_component(
- master_scenario_tree.scenarios[0].name).find_component(
- master_rootnode._cost_variable[0])\
- [master_rootnode._cost_variable[1]]
- else:
- # NOTE: We include the first-stage cost expression for
- # each of the scenarios included in the master with
- # normalized probabilities. The second stage costs
- # are included without normalizing probabilities so
- # that they can simply be excluded from any cut expressions
- # without having to re-normalize anything in the cuts
- master_cost_expr = 0.0
- normalization = sum(scenario.probability
- for scenario in master_scenario_tree.scenarios)
- for scenario in master_scenario_tree.scenarios:
- scenario_rootnode = scenario.node_list[0]
- assert scenario_rootnode is master_rootnode
- rootnode_cost_expr = scenario._instance.find_component(
- scenario_rootnode._cost_variable[0])\
- [scenario_rootnode._cost_variable[1]]
- scenario_leafnode = scenario.node_list[1]
- leafnode_cost_expr = scenario._instance.find_component(
- scenario_leafnode._cost_variable[0])\
- [scenario_leafnode._cost_variable[1]]
- master_cost_expr += scenario.probability * \
- (rootnode_cost_expr / normalization + \
- leafnode_cost_expr)
- benders_objective_name = "PYSP_BENDERS_OBJECTIVE"
- assert not hasattr(master, benders_objective_name)
- master.add_component(
- benders_objective_name,
- Objective(expr=master_cost_expr + master_alpha,
- sense=objective_sense))
- master_objective = master.find_component(
- benders_objective_name)
- cutlist_constraint_name = "PYSP_BENDERS_CUTS_SSC"
- assert not hasattr(master, cutlist_constraint_name)
- # I am using the XConstraintList prototype because
- # it is zero-based, meaning the index within self.cut_pool
- # (which stores the benders cuts objects) will correspond
- # directly with the index within this constraint.
- master.add_component(cutlist_constraint_name,
- XConstraintList())
-
- self.master = master
- self.cut_pool = []
-
- def add_cut(self, benders_cut, ignore_cut_bundles=False):
- """
- Add the cut defined by the benders_cut object to the
- master problem. The optional keyword ignore_cut_bundles
- can be used generate the cut using the single master
- alpha cut variable rather than over the possibly many
- bundle cut groups.
- """
-
- if self.master is None:
- raise RuntimeError("The master problem has not been constructed."
- "Call the build_master_problem() method to "
- "construct it.")
-
- # for now, until someone figures out feasibility cuts
- assert benders_cut.__class__ is BendersOptimalityCut
-
- self.cut_pool.append(benders_cut)
-
- scenario_tree = self._manager.scenario_tree
- objective_sense = self._manager.objective_sense
- master = self.master
- rootnode = scenario_tree.findRootNode()
- master_variable = master.find_component(
- "MASTER_BLEND_VAR_"+str(rootnode.name))
- benders_cuts = master.find_component(
- "PYSP_BENDERS_CUTS_SSC")
- master_alpha = master.find_component(
- "PYSP_BENDERS_ALPHA_SSC")
- bundle_alpha = master.find_component(
- "PYSP_BENDERS_BUNDLE_ALPHA_SSC")
-
- xhat = benders_cut.xhat
- cut_expression = 0.0
- if not ignore_cut_bundles:
- for i, cut_scenarios in enumerate(
- getattr(master, "PYSP_BENDERS_CUT_BUNDLES_SSC")):
-
- for scenario_name in cut_scenarios:
- assert scenario_name not in master._scenarios_included
- scenario_duals = benders_cut.duals[scenario_name]
- scenario_ssc = benders_cut.ssc[scenario_name]
- scenario = scenario_tree.get_scenario(scenario_name)
- cut_expression += \
- scenario.probability * \
- (scenario_ssc + \
- sum(scenario_duals[variable_id] * \
- (master_variable[variable_id] - xhat[variable_id]) \
- for variable_id in xhat))
-
- cut_expression -= bundle_alpha[i]
-
- else:
- for scenario in scenario_tree.scenarios:
- if scenario.name in master._scenarios_included:
- continue
- scenario_name = scenario.name
- scenario_duals = benders_cut.duals[scenario_name]
- scenario_ssc = benders_cut.ssc[scenario_name]
- scenario = scenario_tree.get_scenario(scenario_name)
- cut_expression += \
- scenario.probability * \
- (scenario_ssc + \
- sum(scenario_duals[variable_id] * \
- (master_variable[variable_id] - xhat[variable_id]) \
- for variable_id in xhat))
-
- cut_expression -= master_alpha
-
- if objective_sense == minimize:
- benders_cuts.append(
- _GeneralConstraintData((None,cut_expression,0.0)))
- else:
- benders_cuts.append(
- _GeneralConstraintData((0.0,cut_expression,None)))
-
- def extract_master_xhat(self):
-
- if self.master is None:
- raise RuntimeError("The master problem has not been constructed."
- "Call the build_master_problem() method to "
- "construct it.")
- master = self.master
- rootnode = self._manager.scenario_tree.findRootNode()
- master_variable = master.find_component(
- "MASTER_BLEND_VAR_"+str(rootnode.name))
- return dict((variable_id, master_variable[variable_id].value)
- for variable_id in rootnode._standard_variable_ids
- if not master_variable[variable_id].stale)
-
- def solve_master(self):
-
- if self.master is None:
- raise RuntimeError("The master problem has not been constructed."
- "Call the build_master_problem() method to "
- "construct it.")
-
- common_kwds = {
- 'load_solutions':False,
- 'tee':self.get_option("master_output_solver_log"),
- 'keepfiles':self.get_option("master_keep_solver_files"),
- 'symbolic_solver_labels':self.get_option("master_symbolic_solver_labels")}
-
- if (not self.get_option("master_disable_warmstart")) and \
- (self._master_solver.warm_start_capable()):
- results = self._master_solver.solve(self.master,
- warmstart=True,
- **common_kwds)
- else:
- results = self._master_solver.solve(self.master,
- **common_kwds)
-
- return results
-
- def solve(self, **kwds):
- """
- Run the algorithm. If one or both of the keywords max_iterations and
- percent_gap are used, they will override the values on the options
- object used to initialize this class.
-
- Returns the objective value for the incumbent solution.
- """
-
- if "max_iterations" not in kwds:
- max_iterations = self.get_option("max_iterations")
- else:
- max_iterations = _domain_positive_integer(
- kwds.pop("max_iterations"))
-
- if "percent_gap" not in kwds:
- percent_gap = self.get_option("percent_gap")
- else:
- percent_gap = _domain_percent(
- kwds.pop("percent_gap"))
-
- output_solver_log = kwds.pop("output_solver_log", False)
-
- assert len(kwds) == 0
-
- start_time = time.time()
-
- master = self.master
- master_solver = self._master_solver
-
- if self.master is None:
- raise RuntimeError("The master problem has not been constructed."
- "Call the build_master_problem() method to "
- "construct it.")
-
- objective_sense = self._manager.objective_sense
- scenario_tree = self._manager.scenario_tree
-
- def print_dictionary(dictionary):
- #Find longest key
- longest_message = max(len(str(x[0])) for x in dictionary)
-
- #Find longest dictionary value
- longest_value = max(len(str(x[1])) for x in dictionary)
- for key, value in dictionary:
- print(('{0:<' + str(longest_message) + \
- '}' '{1:^3}' '{2:<' + str(longest_value) + \
- '}').format(key,":",value))
-
-# print("-"*20)
-# print("Problem Statistics")
-# print("-"*20)
-
- rootnode = scenario_tree.findRootNode()
- num_discrete_firststage = len([variable_id for variable_id
- in rootnode._variable_ids \
- if rootnode.is_variable_discrete(variable_id)])
- problem_statistics = []
-# problem_statistics.append(("Initial number of cuts in pool" ,
-# len(self.cut_pool)))
-# problem_statistics.append(("Maximum number of iterations" ,
-# max_iterations))
-# problem_statistics.append(("Relative convergence gap threshold",
-# percent_gap/100.0))
-# print_dictionary(problem_statistics)
-
-
- width_log_table = 100
- if output_solver_log:
- print("")
- print("-"*width_log_table)
- print("%6s %16s %16s %11s %30s"
- % ("Iter","Master Bound","Best Incumbent","Gap","Solution Times [s]"))
- print("%6s %16s %16s %11s %10s %10s %10s %10s"
- % ("","","","","Master","Sub Min","Sub Max","Cumm"))
- print("-"*width_log_table)
-
- master_alpha = master.find_component(
- "PYSP_BENDERS_ALPHA_SSC")
- master_bundles_alpha = master.find_component(
- "PYSP_BENDERS_BUNDLE_ALPHA_SSC")
- master_objective = master.find_component(
- "PYSP_BENDERS_OBJECTIVE")
-
- self.master_bound_history = OrderedDict()
- self.objective_history = OrderedDict()
- self.incumbent_objective = \
- float('inf') if (objective_sense is minimize) else float('-inf')
- self.xhat = None
- self.optimality_gap = float('inf')
- self.iterations = 0
-
- output_no_gap_warning = True
- for i in xrange(1, max_iterations + 1):
-
- if (i == 1) and (len(self.cut_pool) == 0):
- # Avoid an unbounded problem. We may still recover
- # an xhat at which to generate a cut, but we can not
- # use the master objective as a lower bound
- master_alpha.fix(0.0)
- master_bundles_alpha.fix(0.0)
-
- start_time_master = time.time()
- results_master = self.solve_master()
- if len(results_master.solution) == 0:
- raise RuntimeError("Solve failed for master; no solutions generated")
- if results_master.solver.termination_condition != \
- TerminationCondition.optimal:
- logger.warning(
- "Master solve did not generate an optimal solution:\n"
- "Solver Status: %s\n"
- "Solver Termination Condition: %s\n"
- "Solution Status: %s\n"
- % (str(results_master.solver.status),
- str(results_master.solver.termination_condition),
- str(results_master.solution(0).status)))
- master.solutions.load_from(results_master)
- stop_time_master = time.time()
-
- if master_alpha.fixed:
- assert i == 1
- assert master_alpha.value == 0.0
- current_master_bound = \
- float('-inf') if (objective_sense is minimize) else float('inf')
- master_alpha.free()
- master_bundles_alpha.free()
- else:
- current_master_bound = value(master_objective)
- # account for any optimality gap
- solution0 = results_master.solution(0)
- if hasattr(solution0, "gap") and \
- (solution0.gap is not None) and \
- (solution0.gap is not undefined):
- if objective_sense == minimize:
- current_master_bound -= solution0.gap
- else:
- current_master_bound += solution0.gap
- else:
- if output_no_gap_warning:
- output_no_gap_warning = False
- print("WARNING: Solver interface does not "
- "report an optimality gap. Master bound "
- "may be invalid.")
-
- self.master_bound_history[i] = current_master_bound
-
- new_xhat = self.extract_master_xhat()
- new_cut_info, solve_results = \
- self.generate_cut(new_xhat,
- return_solve_results=True)
-
- # compute the true objective at xhat by
- # replacing the current value of the master cut
- # variable with the true second stage costs of
- # any scenarios involved in the cuts
- self.objective_history[i] = \
- value(master_objective) - value(master_alpha) + \
- sum(scenario.probability * new_cut_info.ssc[scenario.name] \
- for scenario in scenario_tree.scenarios
- if scenario.name not in self.master._scenarios_included)
-
- incumbent_objective_prev = self.incumbent_objective
- best_master_bound = max(self.master_bound_history.values()) if \
- (objective_sense == minimize) else \
- min(self.master_bound_history.values())
- self.incumbent_objective = min(self.objective_history.values()) if \
- (objective_sense == minimize) else \
- max(self.objective_history.values())
-
- if objective_sense == minimize:
- if self.incumbent_objective < incumbent_objective_prev:
- self.xhat = new_xhat
- else:
- if self.incumbent_objective > incumbent_objective_prev:
- self.xhat = new_xhat
-
- self.optimality_gap = \
- abs(best_master_bound - self.incumbent_objective) / \
- (self.get_option("optimality_gap_epsilon") + \
- abs(self.incumbent_objective))
-
- if output_solver_log:
- min_time_sub = min(solve_results.pyomo_solve_time.values())
- max_time_sub = max(solve_results.pyomo_solve_time.values())
- print("%6d %16.4f %16.4f %11.3f%% %10.2f %10.2f %10.2f %10.2f"
- % (i, current_master_bound, self.incumbent_objective,
- self.optimality_gap*100, stop_time_master - start_time_master,
- min_time_sub, max_time_sub, time.time()-start_time))
-
- # Add the cut even if we exit on this iteration so
- # it ends up in the cut pool (just in case the caller
- # wants to continue the algorithm)
- self.add_cut(new_cut_info)
-
- # we've completed another iteration
- self.iterations += 1
-
- # If the optimality gap is below the convergence
- # threshold set by the user, quit the
- # loop. Otherwise, add the new cut to the master
- if self.optimality_gap*100 <= percent_gap:
- if output_solver_log:
- print("-" * width_log_table)
- print("Optimality gap threshold reached.")
- break
- else:
- if output_solver_log:
- print("-" * width_log_table)
- print("Maximum number of iterations reached.")
-
- self.bound = float('-inf') if (objective_sense is minimize) else float('inf')
- if len(self.master_bound_history):
- if objective_sense is minimize:
- self.bound = max(self.master_bound_history.values())
- else:
- self.bound = min(self.master_bound_history.values())
-
- return self.incumbent_objective
-
-class BendersSolver(SPSolver, PySPConfiguredObject):
-
- @classmethod
- def _declare_options(cls, options=None):
- if options is None:
- options = PySPConfigBlock()
- return BendersAlgorithm._declare_options(options)
-
- def __init__(self):
- super(BendersSolver, self).__init__(self.register_options())
- self.set_options_to_default()
-
- def set_options_to_default(self):
- self._options = self.register_options()
-
- @property
- def options(self):
- return self._options
-
- @property
- def name(self):
- return "benders"
-
- def _solve_impl(self,
- sp,
- output_solver_log=False):
- with BendersAlgorithm(sp, self._options) as benders:
- benders.initialize_subproblems()
- benders.build_master_problem()
- objective = benders.solve(output_solver_log=output_solver_log)
-
- results = SPSolverResults()
- results.objective = benders.incumbent_objective
- results.bound = benders.bound
- results.xhat = {sp.scenario_tree.findRootNode().name: benders.xhat}
-
- return results
-
-def runbenders_register_options(options=None):
- if options is None:
- options = PySPConfigBlock()
- BendersSolver.register_options(options)
- ScenarioTreeManagerFactory.register_options(options)
- safe_register_common_option(options,
- "verbose")
- safe_register_common_option(options,
- "disable_gc")
- safe_register_common_option(options,
- "profile")
- safe_register_common_option(options,
- "traceback")
- safe_register_common_option(options,
- "output_solver_log")
- safe_register_common_option(options,
- "output_scenario_tree_solution")
- return options
-
-#
-# Construct a senario tree manager and a BendersAlgorithm
-# object to solve it.
-#
-
-def runbenders(options):
- """
- Construct a senario tree manager and solve it
- with the Benders solver.
- """
- start_time = time.time()
- with ScenarioTreeManagerFactory(options) as sp:
- sp.initialize()
-
- print("")
- print("Running Generalized Benders solver for "
- "stochastic programming problems "
- "(i.e., the L-shaped method).")
- benders = BendersSolver()
- benders_options = benders.extract_user_options_to_dict(
- options,
- sparse=True)
- results = benders.solve(
- sp,
- options=benders_options,
- output_solver_log=options.output_solver_log)
- xhat = results.xhat
- del results.xhat
- print("")
- print(results)
-
- if options.output_scenario_tree_solution:
- print("")
- sp.scenario_tree.snapshotSolutionFromScenarios()
- sp.scenario_tree.pprintSolution()
- sp.scenario_tree.pprintCosts()
-
- print("")
- print("Total execution time=%.2f seconds"
- % (time.time() - start_time))
- return 0
-
-#
-# the main driver routine for the evaluate_xhat script.
-#
-
-def main(args=None):
- #
- # Top-level command that executes everything
- #
-
- #
- # Import plugins
- #
- import pyomo.environ
-
- #
- # Parse command-line options.
- #
- try:
- options = parse_command_line(
- args,
- runbenders_register_options,
- prog='runbenders',
- description=(
-"""Optimize a stochastic program using Generalized Benders
-(i.e., the L-shaped method)"""
- ))
-
- except SystemExit as _exc:
- # the parser throws a system exit if "-h" is specified
- # - catch it to exit gracefully.
- return _exc.code
-
- return launch_command(runbenders,
- options,
- error_label="runbenders: ",
- disable_gc=options.disable_gc,
- profile_count=options.profile,
- traceback=options.traceback)
-
-SPSolverFactory.register_solver("benders", BendersSolver)
-
-if __name__ == "__main__":
- import pyomo.pysp
- sys.exit(main())
diff --git a/pyomo/pysp/solvers/ddsip.py b/pyomo/pysp/solvers/ddsip.py
deleted file mode 100644
index 3e50a847a83..00000000000
--- a/pyomo/pysp/solvers/ddsip.py
+++ /dev/null
@@ -1,759 +0,0 @@
-# _________________________________________________________________________
-#
-# Pyomo: Python Optimization Modeling Objects
-# Copyright (c) 2014 Sandia Corporation.
-# Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation,
-# the U.S. Government retains certain rights in this software.
-# This software is distributed under the BSD License.
-# _________________________________________________________________________
-
-# TODO: have ddsip convert create symbols files for second stage
-# TODO: parse second-stage solution and load into scenario tree workers
-# TODO: objective, cost, stage_costs
-# TODO: make output_scenario_tree_solution work
-
-import io
-import os
-import sys
-import time
-import logging
-import traceback
-
-import pyutilib.subprocess
-
-from pyomo.opt import (TerminationCondition,
- SolverStatus,
- SolutionStatus)
-from pyomo.pysp.util.configured_object import PySPConfiguredObject
-from pyomo.pysp.util.config import (PySPConfigValue,
- PySPConfigBlock,
- safe_register_common_option,
- safe_register_unique_option,
- safe_declare_common_option,
- safe_declare_unique_option,
- _domain_tuple_of_str_or_dict,
- _domain_must_be_str)
-from pyomo.pysp.util.misc import (parse_command_line,
- launch_command)
-from pyomo.pysp.scenariotree.manager import ScenarioTreeManagerFactory
-import pyomo.pysp.convert.ddsip
-from pyomo.pysp.solvers.spsolver import (SPSolverResults,
- SPSolverFactory)
-from pyomo.pysp.solvers.spsolvershellcommand import \
- SPSolverShellCommand
-
-logger = logging.getLogger('pyomo.pysp')
-
-thisfile = os.path.abspath(__file__)
-
-_ddsip_group_label = "DDSIP Options"
-_firststage_var_suffix = "__DDSIP_FIRSTSTAGE"
-
-# maps the ddsip status code to tuples of the form
-# (SolutionStatus, SolverStatus, TerminationCondition, message)
-# feel free to modify if you have opinions one these
-_ddsip_status_map = {}
-# the process was terminated by the user
-_ddsip_status_map[-1] = (SolutionStatus.unknown,
- SolverStatus.aborted,
- TerminationCondition.userInterrupt,
- "Termination signal received.")
-# the node limit has been reached
-_ddsip_status_map[1] = (SolutionStatus.stoppedByLimit,
- SolverStatus.ok,
- TerminationCondition.maxEvaluations,
- "Node limit reached (total number of nodes).")
-# the gap (absolute or relative) has been reached
-_ddsip_status_map[2] = (SolutionStatus.optimal,
- SolverStatus.ok,
- TerminationCondition.optimal,
- "Gap reached.")
-# the time limit has been reached
-_ddsip_status_map[3] = (SolutionStatus.stoppedByLimit,
- SolverStatus.ok,
- TerminationCondition.maxTimeLimit,
- "Time limit reached.")
-# the maximal dispersion, i.e. the maximal difference of the
-# first-stage components within all remaining front nodes,
-# was less then the parameter NULLDISP (null dispersion)
-_ddsip_status_map[4] = (SolutionStatus.optimal,
- SolverStatus.ok,
- TerminationCondition.minStepLength,
- "Maximal dispersion equals zero.")
-# the whole branching tree was backtracked.
-_ddsip_status_map[5] = (SolutionStatus.optimal,
- SolverStatus.ok,
- TerminationCondition.minStepLength,
- ("The whole branching tree was "
- "backtracked. Probably due to MIP "
- "gaps (see below) the specified "
- "gap tolerance could not be reached."))
-# no valid lower bound
-_ddsip_status_map[6] = (SolutionStatus.unknown,
- SolverStatus.warning,
- TerminationCondition.invalidProblem,
- "No valid lower bound.")
-# problem infeasible
-_ddsip_status_map[7] = (SolutionStatus.infeasible,
- SolverStatus.warning,
- TerminationCondition.infeasible,
- "Problem infeasible.")
-# problem unbounded
-_ddsip_status_map[8] = (SolutionStatus.unbounded,
- SolverStatus.warning,
- TerminationCondition.unbounded,
- "Problem unbounded.")
-
-def _load_solution(manager,
- scenario,
- solution_filename,
- info_filename,
- firststage_symbols_filename,
- secondstage_symbols_filename,
- scenario_id):
-
- # parse the symbol map
- firststage_symbol_map = {}
- with open(firststage_symbols_filename) as f:
- for line in f:
- lp_symbol, scenario_tree_id = line.strip().split()
- firststage_symbol_map[lp_symbol] = scenario_tree_id
- secondstage_symbol_map = {}
- with open(secondstage_symbols_filename) as f:
- for line in f:
- lp_symbol, scenario_tree_id = line.strip().split()
- secondstage_symbol_map[lp_symbol] = scenario_tree_id
-
- x_firststage = scenario._x[scenario.node_list[0].name]
- assert scenario.node_list[0] is manager.scenario_tree.findRootNode()
- x_secondstage = scenario._x[scenario.node_list[1].name]
- with open(solution_filename, 'r') as f:
- line = f.readline()
- while line.strip() != "1. Best Solution":
- line = f.readline()
- line = f.readline()
- assert line.startswith("Variable name Value")
- line = f.readline()
- assert line.startswith("-----------------------------------")
- line = f.readline().strip()
- while line != "":
- varlabel, varsol = line.split()
- x_firststage[firststage_symbol_map[varlabel]] = \
- float(varsol)
- line = f.readline().strip()
- while line != "4. Second-stage solutions":
- line = f.readline().strip()
- scenario_label = ("Scenario %d:" % scenario_id)
- line = f.readline().strip()
- while line != scenario_label:
- line = f.readline().strip()
- line = f.readline().strip()
- while (line != "") and (not line.startswith("Scenario ")):
- varlabel, varsol = line.split()
- if varlabel != "ONE_VAR_CONSTANT":
- x_secondstage[secondstage_symbol_map[varlabel]] = \
- float(varsol)
- line = f.readline().strip()
- return x
-
-class DDSIPSolver(SPSolverShellCommand, PySPConfiguredObject):
-
- @classmethod
- def _declare_options(cls, options=None):
- if options is None:
- options = PySPConfigBlock()
- safe_declare_unique_option(
- options,
- "firststage_suffix",
- PySPConfigValue(
- "__DDSIP_FIRSTSTAGE",
- domain=_domain_must_be_str,
- description=(
- "The suffix used to identity first-stage "
- "variables to DDSIP. Default is "
- "'__DDSIP_FIRSTSTAGE'"
- ),
- doc=None,
- visibility=0),
- ap_group=_ddsip_group_label)
- safe_declare_unique_option(
- options,
- "config_file",
- PySPConfigValue(
- None,
- domain=_domain_must_be_str,
- description=(
- "The name of a partial DDSIP configuration file "
- "that contains option specifications unrelated to "
- "the problem structure. If specified, the contents "
- "of this file will be appended to the "
- "configuration created by this solver interface. "
- "Default is None."
- ),
- doc=None,
- visibility=0),
- ap_group=_ddsip_group_label)
- safe_declare_common_option(options,
- "verbose",
- ap_group=_ddsip_group_label)
-
- return options
-
- def __init__(self):
- super(DDSIPSolver, self).__init__(self.register_options())
- self.set_options_to_default()
- self._executable = "ddsip"
-
- def set_options_to_default(self):
- self._options = self.register_options()
- self._options._implicit_declaration = True
-
- @property
- def options(self):
- return self._options
-
- @property
- def name(self):
- return "ddsip"
-
- def _solve_impl(self,
- sp,
- output_solver_log=False,
- **kwds):
- """
- Solve a stochastic program with the DDSIP solver.
-
- See the 'solve' method on the base class for
- additional keyword documentation.
-
- Args:
- sp: The stochastic program to solve.
- output_solver_log (bool): Stream the solver
- output during the solve.
- **kwds: Passed to the DDSIP file writer as I/O
- options (e.g., symbolic_solver_labels=True).
-
- Returns: A results object with information about the solution.
- """
-
- if len(sp.scenario_tree.stages) > 2:
- raise ValueError("DDSIP solver does not handle more "
- "than 2 time-stages")
-
- #
- # Setup the DDSIP working directory
- #
-
- working_directory = self._create_tempdir("workdir")
- input_directory = os.path.join(working_directory,
- "ddsip_files")
- output_directory = os.path.join(input_directory,
- "sipout")
-
- logfile = self._files['logfile'] = \
- os.path.join(working_directory,
- "ddsip.log")
-
- os.makedirs(input_directory)
- assert os.path.exists(input_directory)
- assert not os.path.exists(output_directory)
- info_filename = os.path.join(output_directory,
- "sip.out")
- solution_filename = os.path.join(output_directory,
- "solution.out")
-
- #
- # Create the DDSIP input files
- #
-
- if self.get_option("verbose"):
- print("Writing solver files in directory: %s"
- % (working_directory))
-
- input_files = pyomo.pysp.convert.ddsip.\
- convert_external(
- input_directory,
- self.options.firststage_suffix,
- sp,
- io_options=kwds)
- for key in input_files:
- self._add_tempfile(key, input_files[key])
-
- self._update_config(input_files["config"])
-
- #
- # Launch DDSIP
- #
-
- _cmd_string = self.executable+" < "+input_files["script"]
- if self.get_option("verbose"):
- print("Launching DDSIP solver with command: %s"
- % (_cmd_string))
- ddsipstdin = None
- with open(input_files["script"]) as f:
- ddsipstdin = f.read()
- assert ddsipstdin is not None
-
- start = time.time()
- rc, log = pyutilib.subprocess.run(
- self.executable,
- cwd=input_directory,
- stdin=ddsipstdin,
- outfile=logfile,
- tee=output_solver_log)
- stop = time.time()
-
- if rc:
- if not self.available():
- raise ValueError(
- "Solver executable does not exist: '%s'. "
- "(note that the default executable generated "
- "by the DDSIP build system does not have this name)"
- % (self.executable))
- else:
- raise RuntimeError(
- "A nonzero return code (%s) was encountered after "
- "launching the command: %s. Check the solver log file "
- "for more information: %s"
- % (rc, _cmd_string, logfile))
-
- #
- # Parse the DDSIP solution
- #
-
- if self.get_option("verbose"):
- print("Reading DDSIP solution from file: %s"
- % (solution_filename))
- assert os.path.exists(output_directory)
-
- async_xhat = None
- async_responses = []
-
- # TODO: The solution symbols are not being translated
- # back to scenario tree ids. Fix this and also have
- # the first and second stage solutions be loaded into
- # the Pyomo models
- #for scenario_id, scenario in enumerate(sp.scenario_tree.scenarios, 1):
- # async_responses.append(sp.invoke_function(
- # "_load_solution",
- # thisfile,
- # invocation_type=InvocationType.OnScenario(scenario.name),
- # function_args=(solution_filename, scenario_id),
- # async_call=True))
-
- xhat, results = self._read_solution(sp,
- input_files["symbols"],
- info_filename,
- solution_filename)
-
- results.xhat = None
- if xhat is not None:
- results.xhat = {sp.scenario_tree.findRootNode().name: xhat}
-
- for res in async_responses:
- res.complete()
-
- return results
-
- def _update_config(self, config_filename):
- """ Writes a DDSIP config file """
-
- # find the byte position where
- # we start appending to the config file
- # (just before END)
- append_pos = 0
- with io.open(config_filename,
- mode='rb',
- buffering=0) as f:
- f.seek(0)
- append_pos = f.tell()
- for line in f:
- if line.strip().decode() == "END":
- break
- append_pos = f.tell()
- assert append_pos > 0
-
- config_lines = {}
- config_lines[None] = []
- config_lines['CPLEX'] = []
- config_lines['CPLEXEEV'] = []
- config_lines['CPLEXLB'] = []
- config_lines['CPLEX2LB'] = []
- config_lines['CPLEXUB'] = []
- config_lines['CPLEX2UB'] = []
- config_lines['CPLEXDUAL'] = []
- config_lines['CPLEX2DUAL'] = []
- has_cplex_opts = False
-
- # parse the user specified config file
- if self.options.config_file is not None:
- with open(self.options.config_file) as fconfig:
- section = config_lines[None]
- for line in fconfig:
- stripped = line.strip()
- if (stripped == "BEGIN") and \
- (stripped == "END"):
- continue
- if "CPLEXBEGIN" in stripped:
- section = config_lines['CPLEX']
- has_cplex_opts = True
- continue
- elif "CPLEXEEV" in stripped:
- section = config_lines['CPLEXEEV']
- has_cplex_opts = True
- continue
- elif "CPLEXLB" in stripped:
- section = config_lines['CPLEXLB']
- has_cplex_opts = True
- continue
- elif "CPLEX2LB" in stripped:
- section = config_lines['CPLEX2LB']
- has_cplex_opts = True
- continue
- elif "CPLEXUB" in stripped:
- section = config_lines['CPLEXUB']
- has_cplex_opts = True
- continue
- elif "CPLEX2UB" in stripped:
- section = config_lines['CPLEX2UB']
- has_cplex_opts = True
- continue
- elif "CPLEXDUAL" in stripped:
- section = config_lines['CPLEXDUAL']
- has_cplex_opts = True
- continue
- elif "CPLEX2DUAL" in stripped:
- section = config_lines['CPLEX2DUAL']
- has_cplex_opts = True
- continue
- elif "CPLEXEND" in stripped:
- section = config_lines[None]
- continue
- section.append(line)
-
- for key in self.options:
- if (key != "firststage_suffix") and \
- (key != "config_file") and \
- (key != "verbose"):
- if key.startswith("CPLEX_"):
- section = config_lines["CPLEX"]
- prefix = "CPLEX_"
- has_cplex_opts = True
- elif key.startswith("CPLEXEEV_"):
- section = config_lines["CPLEXEEV"]
- prefix = "CPLEXEEV_"
- has_cplex_opts = True
- elif key.startswith("CPLEXLB_"):
- section = config_lines["CPLEXLB"]
- prefix = "CPLEXLB_"
- has_cplex_opts = True
- elif key.startswith("CPLEX2LB_"):
- section = config_lines["CPLEX2LB"]
- prefix = "CPLEX2LB_"
- has_cplex_opts = True
- elif key.startswith("CPLEXUB_"):
- section = config_lines["CPLEXUB"]
- prefix = "CPLEXUB_"
- has_cplex_opts = True
- elif key.startswith("CPLEX2UB_"):
- section = config_lines["CPLEX2UB"]
- prefix = "CPLEX2UB_"
- has_cplex_opts = True
- elif key.startswith("CPLEXDUAL_"):
- section = config_lines["CPLEXDUAL"]
- prefix = "CPLEXDUAL_"
- has_cplex_opts = True
- elif key.startswith("CPLEX2DUAL_"):
- section = config_lines["CPLEX2DUAL"]
- prefix = "CPLEX2DUAL_"
- has_cplex_opts = True
- else:
- section = config_lines[None]
- prefix = ""
- val = self.options[key]
- line = "%s %s\n" % (key.replace(prefix,'',1), val)
- section.append(line)
-
- with open(config_filename, "r+") as f:
- f.seek(append_pos)
- for line in config_lines[None]:
- f.write(line)
- if has_cplex_opts:
- f.write("\nCPLEXBEGIN\n")
- for line in config_lines["CPLEX"]:
- f.write(line)
- for section_key in ('CPLEXEEV',
- 'CPLEXLB',
- 'CPLEX2LB',
- 'CPLEXUB',
- 'CPLEX2UB',
- 'CPLEXDUAL',
- 'CPLEX2DUAL'):
- section = config_lines[section_key]
- if len(section) > 0:
- f.write(section_key+"\n")
- for line in section:
- f.write(line)
- f.write("CPLEXEND\n")
-
- f.write("\n\nEND\n")
-
- def _read_solution(self,
- sp,
- symbols_filename,
- info_filename,
- solution_filename):
- """Parses a DDSIP solution file."""
-
- # parse the symbol map
- symbol_map = {}
- with open(symbols_filename) as f:
- for line in f:
- lp_symbol, scenario_tree_id = line.strip().split()
- symbol_map[lp_symbol] = scenario_tree_id
-
- #
- # Xhat
- #
- try:
- xhat = {}
- with open(solution_filename, 'r') as f:
- line = f.readline()
- while line.strip() != "1. Best Solution":
- line = f.readline()
- line = f.readline()
- assert line.startswith("Variable name Value")
- line = f.readline()
- assert line.startswith("-----------------------------------")
- line = f.readline().strip()
- while line != "":
- line = line.split()
- varlabel, varsol = line
- xhat[symbol_map[varlabel]] = float(varsol)
- line = f.readline().strip()
- except (IOError, OSError):
- logger.warn(
- "Exception encountered while parsing ddsip "
- "solution file '%s':\n%s'"
- % (solution_filename, traceback.format_exc()))
- xhat = None
-
- #
- # Objective, bound, status, etc.
- #
- results = SPSolverResults()
- results.solver.status_code = None
- results.status = None
- results.solver.status = None
- results.solver.termination_condition = None
- results.solver.message = None
- results.solver.time = None
- try:
- with open(info_filename, 'r') as f:
- line = f.readline()
- while True:
- if line.startswith("Total CPU time:"):
- break
- line = f.readline()
- if line == '':
- # Unexpected file format or the solve failed
- logger.warn(
- "Unexpected ddsip info file format. No "
- "status information will be returned")
- return xhat, results
- line = f.readline().strip()
- while (line == "") or \
- (line == "----------------------------------------------------------------------------------------"):
- line = f.readline().strip()
- if line.startswith("EEV"):
- results.eev = float(line.split()[1])
- line = f.readline().strip()
- if line.startswith("VSS"):
- results.vss = float(line.split()[1])
- line = f.readline().strip()
- assert line.startswith("EVPI")
- line = line.split()
- results.evpi = float(line[1])
- line = f.readline().strip()
- assert line == ""
- line = f.readline().strip()
- assert line == "----------------------------------------------------------------------------------------"
- line = f.readline().strip()
- line = line.split()
- assert len(line) == 4
- assert line[0] == "Status"
- results.solver.status_code = int(line[1])
- assert line[2] == "Time"
- results.solver.time = float(line[3])
- (results.status,
- results.solver.status,
- results.solver.termination_condition,
- results.solver.message) = \
- _ddsip_status_map.get(results.solver.status_code,
- (SolutionStatus.unknown,
- SolverStatus.unknown,
- TerminationCondition.unknown,
- None))
-
- line = f.readline().strip()
- line = line.split()
- assert len(line) == 6
- assert line[0] == "Upper"
- assert line[3] == "Tree"
- results.tree_depth = int(line[5])
- line = f.readline().strip()
- line = line.split()
- assert len(line) == 2
- assert line[0] == "Nodes"
- results.nodes = int(line[1])
- line = f.readline().strip()
- while line != "----------------------------------------------------------------------------------------":
- line = f.readline().strip()
- line = f.readline().strip()
- assert line.startswith("Best Value")
- results.objective = float(line.split()[2])
- # NOTE: I think DDSIP refers to the "bound" as
- # "Lower Bound", even when the objective
- # is being maximized.
- line = f.readline().strip()
- assert line.startswith("Lower Bound")
- results.bound = float(line.split()[2])
- except (IOError, OSError):
- logger.warn(
- "Exception encountered while parsing ddsip "
- "info file '%s':\n%s'"
- % (info_filename, traceback.format_exc()))
-
- return xhat, results
-
-def runddsip_register_options(options=None):
- if options is None:
- options = PySPConfigBlock()
- DDSIPSolver.register_options(options)
- ScenarioTreeManagerFactory.register_options(options)
- safe_register_common_option(options,
- "verbose")
- safe_register_common_option(options,
- "disable_gc")
- safe_register_common_option(options,
- "profile")
- safe_register_common_option(options,
- "traceback")
- safe_register_common_option(options,
- "output_scenario_tree_solution")
- safe_register_common_option(options,
- "keep_solver_files")
- safe_register_common_option(options,
- "output_solver_log")
- safe_register_common_option(options,
- "symbolic_solver_labels")
- # used to populate the implicit DDSIP options
- safe_register_unique_option(
- options,
- "solver_options",
- PySPConfigValue(
- (),
- domain=_domain_tuple_of_str_or_dict,
- description=(
- "Unregistered solver options that will be passed "
- "to DDSIP via the config file (e.g., NODELIM=4, "
- "CPLEX_1067=1). This option can be used multiple "
- "times from the command line to specify more "
- "than one DDSIP option."
- ),
- doc=None,
- visibility=0),
- ap_kwds={'action': 'append'},
- ap_group=_ddsip_group_label)
-
- return options
-
-def runddsip(options):
- """
- Construct a senario tree manager and solve it
- with the DDSIP solver.
- """
- start_time = time.time()
- with ScenarioTreeManagerFactory(options) as sp:
- sp.initialize()
- print("")
- print("Running DDSIP solver for stochastic "
- "programming problems")
- ddsip = DDSIPSolver()
- # add the implicit ddsip options
- solver_options = options.solver_options
- if len(solver_options) > 0:
- if type(solver_options) is tuple:
- for name_val in solver_options:
- assert "=" in name_val
- name, val = name_val.split("=")
- ddsip.options[name.strip()] = val.strip()
- else:
- for key, val in solver_options.items():
- ddsip.options[key] = val
- ddsip_options = ddsip.extract_user_options_to_dict(options,
- sparse=True)
- results = ddsip.solve(
- sp,
- options=ddsip_options,
- output_solver_log=options.output_solver_log,
- keep_solver_files=options.keep_solver_files,
- symbolic_solver_labels=options.symbolic_solver_labels)
- xhat = results.xhat
- del results.xhat
- print("")
- print(results)
-
- if options.output_scenario_tree_solution:
- print("")
- sp.scenario_tree.snapshotSolutionFromScenarios()
- sp.scenario_tree.pprintSolution()
- sp.scenario_tree.pprintCosts()
-
- print("")
- print("Total execution time=%.2f seconds"
- % (time.time() - start_time))
- return 0
-
-#
-# the main driver routine
-#
-
-def main(args=None):
- #
- # Top-level command that executes everything
- #
-
- #
- # Import plugins
- #
- import pyomo.environ
-
- #
- # Parse command-line options.
- #
- try:
- options = parse_command_line(
- args,
- runddsip_register_options,
- prog='runddsip',
- description=(
-"""Optimize a stochastic program using the DDSIP solver."""
- ))
-
- except SystemExit as _exc:
- # the parser throws a system exit if "-h" is specified
- # - catch it to exit gracefully.
- return _exc.code
-
- return launch_command(runddsip,
- options,
- error_label="runddsip: ",
- disable_gc=options.disable_gc,
- profile_count=options.profile,
- traceback=options.traceback)
-
-SPSolverFactory.register_solver("ddsip", DDSIPSolver)
-
-if __name__ == "__main__":
- sys.exit(main())
diff --git a/pyomo/pysp/solvers/ef.py b/pyomo/pysp/solvers/ef.py
deleted file mode 100755
index 256358a3fb5..00000000000
--- a/pyomo/pysp/solvers/ef.py
+++ /dev/null
@@ -1,895 +0,0 @@
-# _________________________________________________________________________
-#
-# Pyomo: Python Optimization Modeling Objects
-# Copyright (c) 2014 Sandia Corporation.
-# Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation,
-# the U.S. Government retains certain rights in this software.
-# This software is distributed under the BSD License.
-# _________________________________________________________________________
-
-import os
-import logging
-import sys
-import time
-import argparse
-
-import pyomo.solvers
-from pyomo.common.dependencies import yaml
-from pyomo.opt import (SolverFactory,
- UndefinedData,
- ProblemFormat,
- UnknownSolver,
- SolutionStatus)
-from pyomo.opt.parallel import SolverManagerFactory
-from pyomo.pysp.util.configured_object import PySPConfiguredObject
-from pyomo.pysp.util.config import (PySPConfigValue,
- PySPConfigBlock,
- safe_register_common_option,
- safe_register_unique_option,
- safe_declare_common_option,
- safe_declare_unique_option,
- _domain_nonnegative,
- _domain_must_be_str,
- _domain_unit_interval,
- _domain_tuple_of_str,
- _output_options_group_title,
- _extension_options_group_title,
- _deprecated_options_group_title)
-from pyomo.pysp.util.misc import (parse_command_line,
- launch_command,
- sort_extensions_by_precedence)
-from pyomo.pysp.phutils import find_active_objective
-from pyomo.pysp.scenariotree.manager_solver import ScenarioTreeManagerClientSerial
-from pyomo.pysp.solutionioextensions import \
- (IPySPSolutionSaverExtension,
- IPySPSolutionLoaderExtension)
-from pyomo.pysp.solutionwriter import ISolutionWriterExtension
-from pyomo.pysp.ef import write_ef, create_ef_instance
-from pyomo.pysp.solvers.spsolver import (SPSolver,
- SPSolverResults,
- SPSolverFactory)
-from pyomo.pysp.scenariotree.manager import \
- ScenarioTreeManagerClientPyro
-from pyomo.pysp.scenariotree.manager_solver import \
- ScenarioTreeManagerSolverClientPyro
-
-logger = logging.getLogger('pyomo.pysp')
-
-_ef_group_label = "EF Options"
-
-class ExtensiveFormAlgorithm(PySPConfiguredObject):
-
- @classmethod
- def _declare_options(cls, options=None):
- if options is None:
- options = PySPConfigBlock()
-
- safe_declare_unique_option(
- options,
- "cvar_weight",
- PySPConfigValue(
- 1.0,
- domain=_domain_nonnegative,
- description=(
- "The weight associated with the CVaR term in "
- "the risk-weighted objective "
- "formulation. If the weight is 0, then "
- "*only* a non-weighted CVaR cost will appear "
- "in the EF objective - the expected cost "
- "component will be dropped. Default is 1.0."
- ),
- doc=None,
- visibility=0),
- ap_group=_ef_group_label)
- safe_declare_unique_option(
- options,
- "generate_weighted_cvar",
- PySPConfigValue(
- False,
- domain=bool,
- description=(
- "Add a weighted CVaR term to the "
- "primary objective. Default is False."
- ),
- doc=None,
- visibility=0),
- ap_group=_ef_group_label)
- safe_declare_unique_option(
- options,
- "risk_alpha",
- PySPConfigValue(
- 0.95,
- domain=_domain_unit_interval,
- description=(
- "The probability threshold associated with "
- "CVaR (or any future) risk-oriented "
- "performance metrics. Default is 0.95."
- ),
- doc=None,
- visibility=0),
- ap_group=_ef_group_label)
- safe_declare_unique_option(
- options,
- "cc_alpha",
- PySPConfigValue(
- 0.0,
- domain=_domain_unit_interval,
- description=(
- "The probability threshold associated with a "
- "chance constraint. The RHS will be one "
- "minus this value. Default is 0."
- ),
- doc=None,
- visibility=0),
- ap_group=_ef_group_label)
- safe_declare_unique_option(
- options,
- "cc_indicator_var",
- PySPConfigValue(
- None,
- domain=_domain_must_be_str,
- description=(
- "The name of the binary variable to be used "
- "to construct a chance constraint. Default "
- "is None, which indicates no chance "
- "constraint."
- ),
- doc=None,
- visibility=0),
- ap_group=_ef_group_label)
- safe_declare_common_option(options,
- "solver")
- safe_declare_common_option(options,
- "solver_io")
- safe_declare_common_option(options,
- "solver_manager")
- safe_declare_common_option(options,
- "solver_options")
- safe_declare_common_option(options,
- "disable_warmstart")
- safe_declare_common_option(options,
- "solver_manager_pyro_host")
- safe_declare_common_option(options,
- "solver_manager_pyro_port")
- safe_declare_common_option(options,
- "solver_manager_pyro_shutdown")
- safe_declare_common_option(options,
- "verbose",
- ap_group=_ef_group_label)
- safe_declare_common_option(options,
- "output_times",
- ap_group=_ef_group_label)
- safe_declare_common_option(options,
- "output_solver_results",
- ap_group=_ef_group_label)
-
- return options
-
- def __enter__(self):
- return self
-
- def __exit__(self, *args):
- self.close()
-
- def close(self):
- self.destroy_ef()
- if self._solver_manager is not None:
- if isinstance(self._solver_manager,
- pyomo.solvers.plugins.smanager.\
- pyro.SolverManager_Pyro):
- if self.get_option("pyro_shutdown_workers"):
- self._solver_manager.shutdown_workers()
- self._solver_manager = None
- self._manager = None
-
- def __init__(self, manager, *args, **kwds):
- import pyomo.solvers.plugins.smanager.pyro
- super(ExtensiveFormAlgorithm, self).__init__(*args, **kwds)
-
- # TODO: after PH moves over to the new code
- #if not isinstance(manager, ScenarioTreeManager):
- # raise TypeError("ExtensiveFormAlgorithm requires an instance of the "
- # "ScenarioTreeManager interface as the "
- # "second argument")
- if not manager.initialized:
- raise ValueError("ExtensiveFormAlgorithm requires a scenario tree "
- "manager that has been fully initialized")
-
- self._manager = manager
- self.instance = None
- self._solver_manager = None
- self._solver = None
-
- # The following attributes will be modified by the
- # solve() method. For users that are scripting, these
- # can be accessed after the solve() method returns.
- # They will be reset each time solve() is called.
- ############################################
- self.objective = None
- self.gap = None
- self.termination_condition = None
- self.termination_message = None
- self.solver_status = None
- self.solution_status = None
- self.solver_results = None
- self.time = None
- self.pyomo_time = None
- ############################################
-
- # apparently the SolverFactory does not have sane
- # behavior when the solver name is None
- if self.get_option("solver") is None:
- raise ValueError("The 'solver' option can not be None")
- self._solver = SolverFactory(self.get_option("solver"),
- solver_io=self.get_option("solver_io"))
- if isinstance(self._solver, UnknownSolver):
- raise ValueError("Failed to create solver of type="+
- self.get_option("solver")+
- " for use in extensive form solve")
-
- solver_manager_type = self.get_option("solver_manager")
- if solver_manager_type == "phpyro":
- print("*** WARNING ***: PHPyro is not a supported solver "
- "manager type for the extensive-form solver. "
- "Falling back to serial.")
- solver_manager_type = 'serial'
-
- self._solver_manager = SolverManagerFactory(
- solver_manager_type,
- host=self.get_option("solver_manager_pyro_host"),
- port=self.get_option("solver_manager_pyro_port"))
- if self._solver_manager is None:
- raise ValueError("Failed to create solver manager of type="
- +self.get_option("solver")+
- " for use in extensive form solve")
-
- def build_ef(self):
- self.destroy_ef()
- if self.get_option("verbose"):
- print("Creating extensive form instance")
- start_time = time.time()
-
- # then validate the associated parameters.
- generate_weighted_cvar = False
- cvar_weight = None
- risk_alpha = None
- if self.get_option("generate_weighted_cvar"):
- generate_weighted_cvar = True
- cvar_weight = self.get_option("cvar_weight")
- risk_alpha = self.get_option("risk_alpha")
-
- self.instance = create_ef_instance(
- self._manager.scenario_tree,
- verbose_output=self.get_option("verbose"),
- generate_weighted_cvar=generate_weighted_cvar,
- cvar_weight=cvar_weight,
- risk_alpha=risk_alpha,
- cc_indicator_var_name=self.get_option("cc_indicator_var"),
- cc_alpha=self.get_option("cc_alpha"))
-
- if self.get_option("verbose") or self.get_option("output_times"):
- print("Time to construct extensive form instance=%.2f seconds"
- %(time.time() - start_time))
-
- def destroy_ef(self):
- if self.instance is not None:
- for scenario in self._manager.scenario_tree.scenarios:
- self.instance.del_component(scenario.name)
- scenario._instance_objective.activate()
- self.instance = None
-
- def write(self, filename):
-
- if self.instance is None:
- raise RuntimeError(
- "The extensive form instance has not been constructed."
- "Call the build_ef() method to construct it.")
-
- suf = os.path.splitext(filename)[1]
- if suf not in ['.nl','.lp','.mps']:
- if self._solver.problem_format() == ProblemFormat.cpxlp:
- filename += '.lp'
- elif self._solver.problem_format() == ProblemFormat.nl:
- filename += '.nl'
- elif self._solver.problem_format() == ProblemFormat.mps:
- filename += '.mps'
- else:
- raise ValueError("Could not determine output file format. "
- "No recognized ending suffix was provided "
- "and no format was indicated was by the "
- "--solver-io option.")
-
- start_time = time.time()
- print("Writing extensive form to file="+filename)
- smap_id = write_ef(self.instance,
- filename,
- self.get_option("symbolic_solver_labels"))
-
- if self.get_option("verbose") or self.get_option("output_times"):
- print("Time to write output file=%.2f seconds"
- % (time.time() - start_time))
-
- return filename, smap_id
-
- def solve(self,
- check_status=True,
- exception_on_failure=True,
- output_solver_log=False,
- symbolic_solver_labels=False,
- keep_solver_files=False,
- io_options=None):
- # TODO: Does this import need to be delayed because
- # it is in a plugins subdirectory
- from pyomo.solvers.plugins.solvers.persistent_solver import \
- PersistentSolver
-
- if self.instance is None:
- raise RuntimeError(
- "The extensive form instance has not been constructed."
- "Call the build_ef() method to construct it.")
-
- start_time = time.time()
- if self.get_option("verbose"):
- print("Queuing extensive form solve")
-
- self.objective = None
- self.gap = None
- self.bound = None
- self.termination_condition = None
- self.termination_message = None
- self.solver_status = None
- self.solution_status = None
- self.solver_results = None
- self.time = None
- self.pyomo_time = None
-
- if isinstance(self._solver, PersistentSolver):
- self._solver.compile_instance(
- self.instance,
- symbolic_solver_labels=symbolic_solver_labels)
-
- solve_kwds = {}
- solve_kwds['load_solutions'] = False
- if keep_solver_files:
- solve_kwds['keepfiles'] = True
- if symbolic_solver_labels:
- solve_kwds['symbolic_solver_labels'] = True
- if output_solver_log:
- solve_kwds['tee'] = True
-
- solver_options = self.get_option("solver_options")
- if len(solver_options) > 0:
- if type(solver_options) is tuple:
- solve_kwds["options"] = {}
- for name_val in solver_options:
- assert "=" in name_val
- name, val = name_val.split("=")
- solve_kwds["options"][name.strip()] = val.strip()
- else:
- solve_kwds["options"] = solver_options
-
- if io_options is not None:
- solve_kwds.update(io_options)
-
- self.objective_sense = \
- find_active_objective(self.instance).sense
-
- if (not self.get_option("disable_warmstart")) and \
- (self._solver.warm_start_capable()):
- action_handle = self._solver_manager.queue(self.instance,
- opt=self._solver,
- warmstart=True,
- **solve_kwds)
- else:
- action_handle = self._solver_manager.queue(self.instance,
- opt=self._solver,
- **solve_kwds)
-
- if self.get_option("verbose"):
- print("Waiting for extensive form solve")
- results = self._solver_manager.wait_for(action_handle)
-
- if self.get_option("verbose"):
- print("Done with extensive form solve - loading results")
-
- if self.get_option("output_solver_results"):
- print("Results for ef:")
- results.write(num=1)
-
- self.solver_results = results
- if hasattr(results.solver,"user_time") and \
- (not isinstance(results.solver.user_time,
- UndefinedData)) and \
- (results.solver.user_time is not None):
- # the solve time might be a string, or might
- # not be - we eventually would like more
- # consistency on this front from the solver
- # plugins.
- self.time = \
- float(results.solver.user_time)
- elif hasattr(results.solver,"time"):
- self.time = \
- float(results.solver.time)
- else:
- self.time = None
-
- if hasattr(results,"pyomo_solve_time"):
- self.pyomo_time = \
- results.pyomo_solve_time
- else:
- self.pyomo_time = None
-
- self.termination_condition = \
- results.solver.termination_condition
- self.termination_message = None
- if hasattr(results.solver,"termination_message"):
- self.termination_message = results.solver.termination_message
- elif hasattr(results.solver,"message"):
- self.termination_message = results.solver.message
- self.solver_status = \
- results.solver.status
-
- if len(results.solution) > 0:
- assert len(results.solution) == 1
-
- results_sm = results._smap
- self.instance.solutions.load_from(results)
-
- solution0 = results.solution(0)
- if hasattr(solution0, "gap") and \
- (solution0.gap is not None) and \
- (not isinstance(solution0.gap,
- UndefinedData)):
- self.gap = float(solution0.gap)
- else:
- self.gap = None
-
- self.solution_status = solution0.status
-
- if self.get_option("verbose"):
- print("Storing solution in scenario tree")
-
- for scenario in self._manager.scenario_tree.scenarios:
- scenario.update_solution_from_instance()
- self._manager.scenario_tree.snapshotSolutionFromScenarios()
- self.objective = self._manager.scenario_tree.\
- findRootNode().\
- computeExpectedNodeCost()
- if self.gap is not None:
- if self.objective_sense == pyomo.core.base.minimize:
- self.bound = self.objective - self.gap
- else:
- self.bound = self.objective + self.gap
-
- else:
-
- self.objective = None
- self.gap = None
- self.bound = None
- self.solution_status = None
-
- failure = False
-
- if check_status:
- if not ((self.solution_status == SolutionStatus.optimal) or \
- (self.solution_status == SolutionStatus.feasible)):
- failure = True
- if self.get_option("verbose") or \
- exception_on_failure:
- msg = ("EF solve failed solution status check:\n"
- "Solver Status: %s\n"
- "Termination Condition: %s\n"
- "Solution Status: %s\n"
- % (self.solver_status,
- self.termination_condition,
- self.solution_status))
- if self.get_option("verbose"):
- print(msg)
- if exception_on_failure:
- raise RuntimeError(msg)
- else:
- if self.get_option("verbose"):
- print("EF solve completed. Skipping status check.")
-
- if self.get_option("verbose") or self.get_option("output_times"):
- print("Time to solve and load results for the "
- "extensive form=%.2f seconds"
- % (time.time()-start_time))
-
- return failure
-
-class EFSolver(SPSolver, PySPConfiguredObject):
-
- @classmethod
- def _declare_options(cls, options=None):
- if options is None:
- options = PySPConfigBlock()
- return ExtensiveFormAlgorithm.register_options(options)
-
- def __init__(self):
- super(EFSolver, self).__init__(self.register_options())
- self.set_options_to_default()
-
- def set_options_to_default(self):
- self._options = self.register_options()
-
- @property
- def options(self):
- return self._options
-
- @property
- def name(self):
- return "ef"
-
- def _solve_impl(self,
- sp,
- output_solver_log=False,
- keep_solver_files=False,
- symbolic_solver_labels=False):
- """
- Solve a stochastic program by building the extensive
- form and calling and a Pyomo solver.
-
- See the 'solve' method on the base class for
- additional keyword documentation.
-
- Args:
- sp: The stochastic program to solve. Pyro based
- managers are not accepted. All scenario
- models must be managed locally.
- output_solver_log (bool): Stream the solver
- output during the solve.
- keep_solver_files (bool): Retain temporary solver
- input and output files after the solve completes.
- symbolic_solver_labels (bool): Generate solver
- input files using human-readable symbols
- (makes debugging easier).
-
- Returns: A results object with information about the solution.
- """
-
- if isinstance(sp,
- (ScenarioTreeManagerClientPyro,
- ScenarioTreeManagerSolverClientPyro)):
- raise TypeError("The EF solver does not handle "
- "Pyro-based scenario tree managers")
-
- orig_parents = {}
- if sp.scenario_tree.contains_bundles():
- for scenario in sp.scenario_tree.scenarios:
- if scenario._instance._parent is not None:
- orig_parents[scenario] = scenario._instance._parent
- scenario._instance._parent = None
- assert not scenario._instance_objective.active
- scenario._instance_objective.activate()
- try:
- with ExtensiveFormAlgorithm(sp, self._options) as ef:
- ef.build_ef()
- ef.solve(
- output_solver_log=output_solver_log,
- keep_solver_files=keep_solver_files,
- symbolic_solver_labels=symbolic_solver_labels,
- check_status=False)
- finally:
- for scenario, parent in orig_parents.items():
- scenario._instance._parent = parent
- assert scenario._instance_objective.active
- scenario._instance_objective.deactivate()
-
- results = SPSolverResults()
- results.objective = ef.objective
- results.bound = ef.bound
- results.status = ef.solution_status
- results.solver.status = ef.solver_status
- results.solver.termination_condition = ef.termination_condition
- results.solver.message = ef.termination_message
- results.solver.time = ef.time
- results.solver.pyomo_time = ef.pyomo_time
- results.xhat = None
- if ef.solution_status is not None:
- xhat = results.xhat = {}
- for stage in sp.scenario_tree.stages[:-1]:
- for node in stage.nodes:
- node_xhat = xhat[node.name] = {}
- reference_scenario = node.scenarios[0]
- node_x = reference_scenario._x[node.name]
- for id_ in node._variable_ids:
- node_xhat[id_] = node_x[id_]
- # TODO: stage costs
- #for stagenum, stage in enumerate(sp.scenario_tree.stages[:-1]):
- # cost_variable_name, cost_variable_index = \
- # stage._cost_variable
- # stage_cost_obj = \
- # instance.find_component(cost_variable_name)[cost_variable_index]
- # if not stage_cost_obj.is_expression_type():
- # refvar = ComponentUID(stage_cost_obj,cuid_buffer=tmp).\
- # find_component(reference_model)
- # refvar.value = stage_cost_obj.value
- # refvar.stale = stage_cost_obj.stale
-
- return results
-
-def runef_register_options(options=None):
- if options is None:
- options = PySPConfigBlock()
- EFSolver.register_options(options)
- ScenarioTreeManagerClientSerial.register_options(options)
- safe_register_common_option(options,
- "verbose")
- safe_register_common_option(options,
- "disable_gc")
- safe_register_common_option(options,
- "profile")
- safe_register_common_option(options,
- "traceback")
- safe_register_common_option(options,
- "symbolic_solver_labels")
- safe_register_common_option(options,
- "output_solver_log")
- safe_register_common_option(options,
- "keep_solver_files")
- safe_register_common_option(options,
- "output_scenario_tree_solution")
- safe_register_common_option(options,
- "solution_saver_extension")
- safe_register_common_option(options,
- "solution_loader_extension")
- safe_register_unique_option(
- options,
- "solution_writer",
- PySPConfigValue(
- (),
- domain=_domain_tuple_of_str,
- description=(
- "The name of a python module specifying a user-defined "
- "plugin implementing the ISolutionWriterExtension "
- "interface. Invoked to save a scenario tree solution. Use "
- "this option when generating a template configuration file "
- "or invoking command-line help in order to include any "
- "plugin-specific options. This option can used multiple "
- "times from the command line to specify more than one "
- "plugin."
- ),
- doc=None,
- visibility=0),
- ap_kwds={'action': 'append'},
- ap_group=_extension_options_group_title)
- safe_register_unique_option(
- options,
- "output_file",
- PySPConfigValue(
- None,
- domain=_domain_must_be_str,
- description=(
- "The name of the extensive form output file "
- "(currently LP, MPS, and NL file formats are "
- "supported). If the option value does not end "
- "in '.lp', '.mps', or '.nl', then the output format "
- "will be inferred from the settings for the chosen "
- "solver interface, and the appropriate suffix "
- "will be appended to the name. Use of this option "
- "will disable the solve."
- ),
- doc=None,
- visibility=0),
- ap_group=_output_options_group_title)
- safe_register_unique_option(
- options,
- "output_scenario_costs",
- PySPConfigValue(
- None,
- domain=_domain_must_be_str,
- description=(
- "A file name where individual scenario costs from the "
- "solution will be stored. The format is determined "
- "from the extension used in the filename. Recognized "
- "extensions: [.csv, .json, .yaml]"
- ),
- doc=None,
- visibility=0))
-
- #
- # Deprecated
- #
-
- class _DeprecatedActivateJSONIOSolutionSaver(argparse.Action):
- def __init__(self, option_strings, dest, nargs=None, **kwargs):
- if nargs is not None:
- raise ValueError("nargs not allowed")
- super(_DeprecatedActivateJSONIOSolutionSaver, self).\
- __init__(option_strings, dest, nargs=0, **kwargs)
- def __call__(self, parser, namespace, values, option_string=None):
- logger.warning(
- "DEPRECATED: The '--activate-json-io-solution-saver "
- "command-line option has been deprecated and will "
- "be removed in the future. Please the following instead: "
- "'----solution-saver-extension=pyomo.pysp.plugins.jsonio'")
- val = getattr(namespace,
- 'CONFIGBLOCK.solution_saver_extension', [])
- setattr(namespace,
- 'CONFIGBLOCK.solution_saver_extension',
- val + ["pyomo.pysp.plugins.jsonio"])
-
- def _warn_activate_jsonio_solution_saver(val):
- # don't use logger here since users might not import
- # the pyomo logger in a scripting interface
- sys.stderr.write(
- "\tWARNING: The 'activate_jsonio_solution_saver' "
- "config item will be ignored "
- "unless it is being used as a command-line option "
- "where it can be redirected to 'solution_saver_extension'. "
- "Please use 'solution_saver_extension=pyomo.pysp.plugins.jsonio' "
- "instead.\n")
- return _domain_tuple_of_str(val)
-
- safe_declare_unique_option(
- options,
- "activate_jsonio_solution_saver",
- PySPConfigValue(
- None,
- domain=_warn_activate_jsonio_solution_saver,
- description=(
- "Deprecated alias for "
- "--solution-saver-extension=pyomo.pysp.plugins.jsonio"
- ),
- doc=None,
- visibility=1),
- ap_kwds={'action':_DeprecatedActivateJSONIOSolutionSaver},
- ap_group=_deprecated_options_group_title,
- declare_for_argparse=True)
-
- return options
-
-#
-# Construct a scenario tree manager and an
-# ExtensiveFormAlgorithm to solve it.
-#
-
-def runef(options,
- solution_loaders=(),
- solution_savers=(),
- solution_writers=()):
- """
- Construct a senario tree manager and solve it
- with the Extensive Form solver.
- """
- start_time = time.time()
-
- solution_loaders = sort_extensions_by_precedence(solution_loaders)
- solution_savers = sort_extensions_by_precedence(solution_savers)
- solution_writers = sort_extensions_by_precedence(solution_writers)
-
- with ScenarioTreeManagerClientSerial(options) as sp:
- sp.initialize()
-
- for plugin in solution_loaders:
- ret = plugin.load(sp)
- if not ret:
- logger.warning(
- "Loader extension %s call did not return "
- "True. This might indicate failure to load data."
- % (plugin))
-
- if options.output_file is not None:
- with ExtensiveFormAlgorithm(sp, options) as ef:
- ef.build_ef()
- ## !!THIS SEEMS LIKE A BUG!! - mrmundt #
- ef.write(filename)
- else:
- print("")
- print("Running the EF solver for "
- "stochastic programming problems.")
- ef = EFSolver()
- ef_options = ef.extract_user_options_to_dict(options,
- sparse=True)
- results = ef.solve(
- sp,
- options=ef_options,
- output_solver_log=options.output_solver_log,
- keep_solver_files=options.keep_solver_files,
- symbolic_solver_labels=options.symbolic_solver_labels)
- xhat = results.xhat
- del results.xhat
- print("")
- print(results)
- results.xhat = xhat
-
- if options.output_scenario_tree_solution:
- print("")
- sp.scenario_tree.snapshotSolutionFromScenarios()
- sp.scenario_tree.pprintSolution()
- sp.scenario_tree.pprintCosts()
-
- if options.output_scenario_costs is not None:
- if options.output_scenario_costs.endswith('.json'):
- import json
- result = {}
- for scenario in sp.scenario_tree.scenarios:
- result[str(scenario.name)] = scenario._cost
- with open(options.output_scenario_costs, 'w') as f:
- json.dump(result, f, indent=2, sort_keys=True)
- elif options.output_scenario_costs.endswith('.yaml'):
- result = {}
- for scenario in sp.scenario_tree.scenarios:
- result[str(scenario.name)] = scenario._cost
- with open(options.output_scenario_costs, 'w') as f:
- yaml.dump(result, f)
- else:
- if not options.output_scenario_costs.endswith('.csv'):
- print("Unrecognized file extension. Using CSV "
- "format to store scenario costs")
- with open(options.output_scenario_costs, 'w') as f:
- for scenario in sp.scenario_tree.scenarios:
- f.write("%s,%r\n"
- % (scenario.name,scenario._cost))
-
- for plugin in solution_savers:
- if not plugin.save(sp):
- logger.warning("Saver extension %s call did not "
- "return True. This might indicate failure "
- "to save data." % (plugin))
-
- for plugin in solution_writers:
- plugin.write(sp.scenario_tree, "ef")
-
- print("")
- print("Total EF execution time=%.2f seconds"
- % (time.time() - start_time))
- print("")
-
- return 0
-
-#
-# The main driver routine for the runef script
-#
-
-def main(args=None):
- #
- # Top-level command that executes everything
- #
-
- #
- # Import plugins
- #
- import pyomo.environ
-
- #
- # Parse command-line options.
- #
- try:
- options, extensions = parse_command_line(
- args,
- runef_register_options,
- with_extensions={'solution_loader_extension':
- IPySPSolutionLoaderExtension,
- 'solution_saver_extension':
- IPySPSolutionSaverExtension,
- 'solution_writer':
- ISolutionWriterExtension},
- prog='runef',
- description=(
-"""Optimize a stochastic program using the Extensive Form (EF) solver."""
- ))
-
- except SystemExit as _exc:
- # the parser throws a system exit if "-h" is specified
- # - catch it to exit gracefully.
- return _exc.code
-
- return launch_command(runef,
- options,
- cmd_kwds={'solution_loaders':
- extensions['solution_loader_extension'],
- 'solution_savers':
- extensions['solution_saver_extension'],
- 'solution_writers':
- extensions['solution_writer']},
- error_label="runef: ",
- disable_gc=options.disable_gc,
- profile_count=options.profile,
- traceback=options.traceback)
-
-SPSolverFactory.register_solver("ef", EFSolver)
-
-if __name__ == "__main__":
- sys.exit(main())
diff --git a/pyomo/pysp/solvers/schuripopt.py b/pyomo/pysp/solvers/schuripopt.py
deleted file mode 100644
index 06eaf5c365a..00000000000
--- a/pyomo/pysp/solvers/schuripopt.py
+++ /dev/null
@@ -1,603 +0,0 @@
-# _________________________________________________________________________
-#
-# Pyomo: Python Optimization Modeling Objects
-# Copyright (c) 2014 Sandia Corporation.
-# Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation,
-# the U.S. Government retains certain rights in this software.
-# This software is distributed under the BSD License.
-# _________________________________________________________________________
-
-# TODO: Workaround when mpi4py is not available or COMM_WORLD is
-# TODO: Add option to launch without calling MPI_Comm_spawn
-# TODO: Figure out what to do with working_directory, logfile, and output_solver_log
-# when MPI_Comm_spawn is called.
-
-import io
-import os
-import sys
-import time
-import array
-
-import pyutilib.subprocess
-
-from pyomo.core import ComponentUID
-from pyomo.opt import (ReaderFactory,
- ResultsFormat,
- UndefinedData)
-from pyomo.pysp.util.configured_object import PySPConfiguredObject
-from pyomo.pysp.util.config import (PySPConfigValue,
- PySPConfigBlock,
- safe_register_common_option,
- safe_register_unique_option,
- _domain_tuple_of_str_or_dict)
-from pyomo.pysp.util.misc import (parse_command_line,
- launch_command)
-from pyomo.pysp.scenariotree.manager import \
- (InvocationType,
- ScenarioTreeManagerFactory,
- ScenarioTreeManagerClientPyro,
- ScenarioTreeSolveResults)
-from pyomo.pysp.scenariotree.manager_solver import \
- ScenarioTreeManagerSolverClientPyro
-from pyomo.pysp.solvers.spsolver import (SPSolverResults,
- SPSolverFactory)
-from pyomo.pysp.solvers.spsolvershellcommand import \
- SPSolverShellCommand
-from pyomo.pysp.convert.schuripopt import \
- (_write_bundle_nl,
- _write_scenario_nl,
- _write_problem_list_file)
-
-
-# generate an absolute path to this file
-thisfile = os.path.abspath(__file__)
-
-_schuripopt_group_label = "SchurIpoptSolver Options"
-
-def EXTERNAL_invoke_solve(worker,
- working_directory,
- subproblem_type,
- logfile,
- problem_list_filename,
- executable,
- output_solver_log,
- io_options,
- command_line_options,
- options_filename,
- suffixes=None):
- assert os.path.exists(working_directory)
- if suffixes is None:
- suffixes = [".*"]
-
- #
- # Write the NL files for the subproblems local to
- # this worker
- #
-
- filedata = {}
- write_time = {}
- load_function = None
- if subproblem_type == 'bundles':
- assert worker.scenario_tree.contains_bundles()
- load_function = worker._process_bundle_solve_result
- for bundle in worker.scenario_tree.bundles:
- start = time.time()
- filedata[bundle.name] = _write_bundle_nl(
- worker,
- bundle,
- working_directory,
- io_options)
- stop = time.time()
- write_time[bundle.name] = stop - start
- else:
- assert subproblem_type == 'scenarios'
- load_function = worker._process_scenario_solve_result
- for scenario in worker.scenario_tree.scenarios:
- start = time.time()
- filedata[scenario.name] = _write_scenario_nl(
- worker,
- scenario,
- working_directory,
- io_options)
- stop = time.time()
- write_time[scenario.name] = stop - start
- assert load_function is not None
- assert len(filedata) > 0
-
- args = []
- args.append(problem_list_filename)
- args.append("-AMPL")
- args.append("use_problem_file=yes")
- args.append("option_file_name="+options_filename)
- root_node = worker.scenario_tree.findRootNode()
- if hasattr(worker, "MPI"):
- args.append("mpi_spawn_mode=yes")
- if worker.mpi_comm_tree[root_node.name].rank == 0:
- args.append("output_file="+str(logfile))
-
- for key, val in command_line_options:
- key = key.strip()
- if key == "use_problem_file":
- raise ValueError(
- "Use of the 'use_problem_file' command-line "
- "option is disallowed.")
- elif key == "mpi_spawn_mode":
- raise ValueError(
- "Use of the 'mpi_spawn_mode' command-line "
- "option is disallowed.")
- elif key == "option_file_name":
- raise ValueError(
- "Use of the 'option_file_name' command-line "
- "option is disallowed.")
- elif key == "output_file":
- raise ValueError(
- "Use of the 'output_file' command-line "
- "option is disallowed.")
- elif key == '-AMPL':
- raise ValueError(
- "Use of the '-AMPL' command-line "
- "option is disallowed.")
- else:
- args.append(key+"="+str(val))
-
- start = time.time()
- if hasattr(worker, "MPI"):
- currdir = os.getcwd()
- try:
- os.chdir(working_directory)
- spawn = worker.mpi_comm_tree[root_node.name].Spawn(
- executable,
- args=args,
- maxprocs=worker.mpi_comm_tree[root_node.name].size)
- rc = None
- if worker.mpi_comm_tree[root_node.name].rank == 0:
- rc = array.array("i", [0])
- spawn.Reduce(sendbuf=None,
- recvbuf=[rc, worker.MPI.INT],
- op=worker.MPI.SUM,
- root=worker.MPI.ROOT)
- rc = worker.mpi_comm_tree[root_node.name].bcast(rc, root=0)
- spawn.Disconnect()
- assert len(rc) == 1
- rc = rc[0]
- finally:
- os.chdir(currdir)
- else:
- rc, msg = pyutilib.subprocess.run(
- [executable]+args,
- cwd=working_directory,
- outfile=logfile,
- tee=output_solver_log)
- assert rc == 0, str(msg)
-
- stop = time.time()
- solve_time = stop - start
-
- #
- # Parse the SOL files for the subproblems local to
- # this worker and load the results
- #
- worker_results = {}
- with ReaderFactory(ResultsFormat.sol) as reader:
- for object_name in filedata:
- start = time.time()
- nl_filename, symbol_map = filedata[object_name]
- assert nl_filename.endswith(".nl")
- sol_filename = nl_filename[:-2]+"sol"
- results = reader(sol_filename, suffixes=suffixes)
- stop = time.time()
- # tag the results object with the symbol_map
- results._smap = symbol_map
- results.solver.time = solve_time
- results.pyomo_solve_time = (stop - start) + \
- solve_time + \
- write_time[object_name]
- if str(results.solver.termination_condition) == "infeasible":
- if len(results.solution) > 0:
- results.solution.clear()
- # TODO: Re-architect ScenarioTreeManagerSolver
- # to better support this
- worker_results[object_name] = \
- load_function(object_name, results)
-
- return worker_results
-
-def EXTERNAL_collect_solution(worker, node_name):
- solution = {}
- tmp = {}
- node = worker.scenario_tree.get_node(node_name)
- scenario = node.scenarios[0]
- stage = node.stage
- instance = scenario.instance
- assert instance is not None
- bySymbol = instance._ScenarioTreeSymbolMap.bySymbol
- for id_ in node._variable_ids:
- # TODO
- #cost_variable_name, cost_variable_index = \
- # stage._cost_variable
- #stage_cost_obj = instance.find_component(cost_variable_name)\
- # [cost_variable_index]
- #if not stage_cost_obj.is_expression_type():
- # solution[ComponentUID(stage_cost_obj,cuid_buffer=tmp)] = \
- # (stage_cost_obj.value, stage_cost_obj.stale)
- for variable_id in node._variable_ids:
- var = bySymbol[variable_id]
- if var.is_expression_type():
- continue
- solution[ComponentUID(var, cuid_buffer=tmp)] = \
- (var.value, var.stale)
-
- return solution
-
-class SchurIpoptSolver(SPSolverShellCommand, PySPConfiguredObject):
-
- def __init__(self):
- super(SchurIpoptSolver, self).__init__(
- self.register_options())
- self.set_options_to_default()
- self._executable = "schuripopt"
-
- def set_options_to_default(self):
- self._options = self.register_options()
- self._options._implicit_declaration = True
-
- @property
- def options(self):
- return self._options
-
- @property
- def name(self):
- return "schuripopt"
-
- def _launch_solver(self,
- manager,
- output_directory,
- logfile,
- ignore_bundles=False,
- output_solver_log=False,
- verbose=False,
- io_options=None):
-
- if not os.path.exists(output_directory):
- os.makedirs(output_directory)
- problem_list_filename = os.path.join(output_directory,
- "PySP_Subproblems.txt")
-
- scenario_tree = manager.scenario_tree
-
- subproblem_type = _write_problem_list_file(
- scenario_tree,
- problem_list_filename,
- ignore_bundles=ignore_bundles)
-
- assert subproblem_type in ('scenarios','bundles')
-
- options_filename = os.path.join(output_directory,
- "schuripopt.opt")
- # just in case output_directory is not a tmpdir, make sure
- # we don't silently overwrite someone's options file
- assert not os.path.exists(options_filename)
- command_line_options = []
- with open(options_filename, "w") as f:
- for key, val in self.options.items():
- key = key.strip()
- if key.startswith("OF_"):
- if key == "OF_output_file":
- raise ValueError(
- "Use of the 'output_file' option "
- "is disallowed. Use the logfile "
- "keyword instead.")
- f.write(key[3:]+" "+str(val)+"\n")
- else:
- command_line_options.append((key,val))
-
- if verbose:
- print("Schuripopt solver problem list file: %s"
- % (problem_list_filename))
- print("Schuripopt solver options file: %s"
- % (options_filename))
- print("Schuripopt solver problem type: %s"
- % (subproblem_type))
- print("Sending solver invocation request to "
- "workers")
-
- try:
- worker_results = manager.invoke_function(
- "EXTERNAL_invoke_solve",
- thisfile,
- invocation_type=InvocationType.Single,
- function_args=(output_directory,
- subproblem_type,
- logfile,
- problem_list_filename,
- self.executable,
- output_solver_log,
- io_options,
- command_line_options,
- options_filename))
- finally:
- if isinstance(manager,
- (ScenarioTreeManagerClientPyro,
- ScenarioTreeManagerSolverClientPyro)) and \
- output_solver_log:
- # If this is Pyro the best we can do is
- # dump the log file to the screen after the
- # solve completes because subprocesses are
- # spawned on the Pyro workers.
- if os.path.exists(logfile):
- with io.open(logfile) as f:
- print(f.read())
-
- results = ScenarioTreeSolveResults(subproblem_type)
- for worker_name in worker_results:
- worker_result = worker_results[worker_name]
- for object_name in worker_result:
- results.update(worker_result[object_name])
-
- return results
-
- def _solve_impl(self,
- sp,
- output_solver_log=False,
- verbose=False,
- logfile=None,
- **kwds):
- """
- Solve a stochastic program with the SchurIpopt solver.
-
- See the 'solve' method on the base class for
- additional keyword documentation.
-
- Args:
- sp: The stochastic program to solve.
- output_solver_log (bool): Stream the solver
- output during the solve.
- logfile: The name of the logfile to save the
- solver output into.
- verbose: Report verbose status information to
- aid debugging.
- **kwds: Passed to the DDSIP file writer as I/O
- options (e.g., symbolic_solver_labels=True).
-
- Returns: A results object with information about the solution.
- """
-
- #
- # Setup the SchurIpopt working directory
- #
- problem_list_filename = "PySP_Subproblems.txt"
- working_directory = self._create_tempdir("workdir",
- dir=os.getcwd())
-
- if logfile is None:
- logfile = os.path.join(working_directory,
- "schuripopt.log")
- self._add_tempfile("logfile", logfile)
- else:
- self._files["logfile"] = logfile
-
- if verbose:
- print("Schuripopt solver working directory: %s"
- % (working_directory))
- print("Schuripopt solver logfile: %s"
- % (logfile))
-
- #
- # Launch SchurIpopt from the worker processes
- # (assumed to be launched together using mpirun)
- #
- status = self._launch_solver(
- sp,
- working_directory,
- logfile=logfile,
- output_solver_log=output_solver_log,
- verbose=verbose,
- io_options=kwds)
-
- objective = 0.0
- solver_status = set()
- solver_message = set()
- termination_condition = set()
- solution_status = set()
- if status.solve_type == "bundles":
- assert sp.scenario_tree.contains_bundles()
- assert len(status.objective) == \
- len(sp.scenario_tree.bundles)
- for bundle in sp.scenario_tree.bundles:
- if objective is not None:
- if isinstance(status.objective[bundle.name], UndefinedData):
- objective = None
- else:
- objective += bundle.probability * \
- status.objective[bundle.name]
- solver_status.add(status.solver_status[bundle.name])
- solver_message.add(status.solver_message[bundle.name])
- termination_condition.add(status.termination_condition[bundle.name])
- if isinstance(status.solution_status[bundle.name], UndefinedData):
- solution_status.add(None)
- else:
- solution_status.add(status.solution_status[bundle.name])
- else:
- assert status.solve_type == "scenarios"
- assert len(status.objective) == \
- len(sp.scenario_tree.scenarios)
- for scenario in sp.scenario_tree.scenarios:
- if objective is not None:
- if isinstance(status.objective[scenario.name], UndefinedData):
- objective = None
- else:
- objective += scenario.probability * \
- status.objective[scenario.name]
- solver_status.add(status.solver_status[scenario.name])
- solver_message.add(status.solver_message[scenario.name])
- termination_condition.add(status.termination_condition[scenario.name])
- if isinstance(status.solution_status[scenario.name], UndefinedData):
- solution_status.add(None)
- else:
- solution_status.add(status.solution_status[scenario.name])
-
- assert len(solver_status) == 1
- assert len(solver_message) == 1
- assert len(termination_condition) == 1
- assert len(solution_status) == 1
-
- results = SPSolverResults()
- results.objective = None
- results.bound = None
- results.status = solution_status.pop()
- results.solver.status = solver_status.pop()
- results.solver.termination_condition = termination_condition.pop()
- results.solver.message = solver_message.pop()
- results.solver.time = max(status.solve_time.values())
- results.solver.pyomo_time = \
- max(status.pyomo_solve_time.values())
-
- results.xhat = None
- if str(results.solver.status) == "ok" and \
- str(results.solver.termination_condition) == "optimal":
- results.objective = objective
- xhat = results.xhat = {}
- for stage in sp.scenario_tree.stages[:-1]:
- for node in stage.nodes:
- worker_name = sp.get_worker_for_scenario(
- node.scenarios[0].name)
- node_solution = sp.invoke_function_on_worker(
- worker_name,
- "EXTERNAL_collect_solution",
- thisfile,
- invocation_type=InvocationType.Single,
- function_args=(node.name,))
- node_xhat = xhat[node.name] = {}
- for id_ in node_solution:
- node_xhat[repr(id_)] = node_solution[id_][0]
-
- return results
-
-def runschuripopt_register_options(options=None):
- if options is None:
- options = PySPConfigBlock()
- safe_register_common_option(options,
- "verbose")
- safe_register_common_option(options,
- "disable_gc")
- safe_register_common_option(options,
- "profile")
- safe_register_common_option(options,
- "traceback")
- safe_register_common_option(options,
- "output_scenario_tree_solution")
- safe_register_common_option(options,
- "output_solver_log")
- safe_register_common_option(options,
- "keep_solver_files")
- safe_register_common_option(options,
- "symbolic_solver_labels")
- ScenarioTreeManagerFactory.register_options(options)
- SchurIpoptSolver.register_options(options)
- # used to populate the implicit SchurIpopt options
- safe_register_unique_option(
- options,
- "solver_options",
- PySPConfigValue(
- (),
- domain=_domain_tuple_of_str_or_dict,
- description=(
- "Solver options to pass to SchurIpopt "
- "(e.g., relax_integrality=yes). This "
- "option can be used multiple times "
- "from the command line to specify more "
- "than one SchurIpopt option."
- ),
- doc=None,
- visibility=0),
- ap_kwds={'action': 'append'},
- ap_group=_schuripopt_group_label)
-
- return options
-
-def runschuripopt(options):
- """
- Construct a senario tree manager and solve it
- with the SD solver.
- """
- start_time = time.time()
- with ScenarioTreeManagerFactory(options) as manager:
- manager.initialize()
- print("")
- print("Running SchurIpopt solver for stochastic "
- "programming problems")
- schuripopt = SchurIpoptSolver()
- # add the implicit schuripopt options
- solver_options = options.solver_options
- if len(solver_options) > 0:
- if type(solver_options) is tuple:
- for name_val in solver_options:
- assert "=" in name_val
- name, val = name_val.split("=")
- schuripopt.options[name.strip()] = val.strip()
- else:
- for key, val in solver_options.items():
- schuripopt.options[key] = val
- results = schuripopt.solve(
- manager,
- output_solver_log=options.output_solver_log,
- keep_solver_files=options.keep_solver_files,
- symbolic_solver_labels=options.symbolic_solver_labels)
- xhat = results.xhat
- del results.xhat
- print("")
- print(results)
-
- if options.output_scenario_tree_solution:
- print("Final solution (scenario tree format):")
- manager.scenario_tree.snapshotSolutionFromScenarios()
- manager.scenario_tree.pprintSolution()
-
- print("")
- print("Total execution time=%.2f seconds"
- % (time.time() - start_time))
-
- return 0
-
-#
-# the main driver routine
-#
-
-def main(args=None):
- #
- # Top-level command that executes everything
- #
-
- #
- # Import plugins
- #
- import pyomo.environ
-
- #
- # Parse command-line options.
- #
- try:
- options = parse_command_line(
- args,
- runschuripopt_register_options,
- prog='runschuripopt',
- description=(
-"""Optimize a stochastic program using the SchurIpopt solver."""
- ))
-
- except SystemExit as _exc:
- # the parser throws a system exit if "-h" is specified
- # - catch it to exit gracefully.
- return _exc.code
-
- return launch_command(runschuripopt,
- options,
- error_label="runschuripopt: ",
- disable_gc=options.disable_gc,
- profile_count=options.profile,
- traceback=options.traceback)
-
-SPSolverFactory.register_solver("schuripopt", SchurIpoptSolver)
-
-if __name__ == "__main__":
- sys.exit(main())
diff --git a/pyomo/pysp/solvers/sd.py b/pyomo/pysp/solvers/sd.py
deleted file mode 100644
index 631f6cce438..00000000000
--- a/pyomo/pysp/solvers/sd.py
+++ /dev/null
@@ -1,762 +0,0 @@
-# ___________________________________________________________________________
-#
-# Pyomo: Python Optimization Modeling Objects
-# Copyright 2017 National Technology and Engineering Solutions of Sandia, LLC
-# Under the terms of Contract DE-NA0003525 with National Technology and
-# Engineering Solutions of Sandia, LLC, the U.S. Government retains certain
-# rights in this software.
-# This software is distributed under the 3-clause BSD License.
-# ___________________________________________________________________________
-
-# TODO: have smps convert create symbols files for second stage
-# TODO: parse second-stage solution and load into scenario tree workers
-# TODO: objective, cost, stage_costs
-# TODO: make output_scenario_tree_solution work
-# TODO: results object statuses
-
-# TODO Fix the seed defaults. The I think the default
-# behavior should be to provide no needs and enable
-# AUTO_SEED. There are so many seeds to provide that
-# I'm not sure where to start on this. Perhaps, the
-# SD developers can updates these defaults. It would be
-# nice if a single seed could be provided and the rest
-# generated from this by SD, when deterministic behavior
-# is required.
-
-import os
-import sys
-import time
-import traceback
-import logging
-
-import pyutilib.subprocess
-
-from pyomo.core import maximize
-from pyomo.opt import (TerminationCondition,
- SolverStatus,
- SolutionStatus)
-from pyomo.pysp.util.configured_object import PySPConfiguredObject
-from pyomo.pysp.util.config import (PySPConfigValue,
- PySPConfigBlock,
- safe_register_common_option,
- safe_declare_common_option,
- safe_declare_unique_option,
- _domain_positive,
- _domain_positive_integer,
- _domain_nonnegative_integer)
-from pyomo.pysp.util.misc import (parse_command_line,
- launch_command)
-from pyomo.pysp.scenariotree.manager import \
- ScenarioTreeManagerFactory
-import pyomo.pysp.convert.smps
-from pyomo.pysp.embeddedsp import EmbeddedSP
-from pyomo.pysp.solvers.spsolver import (SPSolverResults,
- SPSolverFactory)
-from pyomo.pysp.solvers.spsolvershellcommand import \
- SPSolverShellCommand
-
-logger = logging.getLogger('pyomo.pysp')
-
-_sd_group_label = "SD Options"
-
-# maps the sd status message to tuples of the form
-# (SolutionStatus, SolverStatus, TerminationCondition)
-# feel free to modify if you have opinions one these
-_sd_status_map = {}
-_sd_status_map["COMPROMISE SOLUTION"] = (SolutionStatus.optimal,
- SolverStatus.ok,
- TerminationCondition.optimal)
-_sd_status_map["MEAN SOLUTION"] = (SolutionStatus.optimal,
- SolverStatus.ok,
- TerminationCondition.optimal)
-_sd_status_map["REPLICATION SOLUTION"] = (SolutionStatus.optimal,
- SolverStatus.ok,
- TerminationCondition.optimal)
-_sd_status_map["NO SOLUTION"] = (SolutionStatus.unknown,
- SolverStatus.warning,
- TerminationCondition.noSolution)
-_sd_status_map["???"] = (SolutionStatus.unknown,
- SolverStatus.error,
- TerminationCondition.unknown)
-
-sd_advanced_config_section = \
-"""
-// ---------------Changes made below here are not recommended-----------------
-
-
-// 0 for LP master, 1 for QP master
-MASTER_TYPE 1
-
-// 0 for zero lower bound, 1 for mean value lower bound
-LB_TYPE 1
-
-// Amount of improvement which must be observed in order to update incumbent X.
-R 0.2
-
-// For updating the scaling factor. zl
-R2 0.95
-
-// For updating the scaling factor. zl
-R3 2.0
-
-// The Minimum value of the cell->quad_scalar. zl
-MIN_QUAD_SCALAR 0.001
-
-// The Maximum value of the cell->quad_scalar. zl
-MAX_QUAD_SCALAR 10000.0
-
-// Number of iterations after which incumbent cut is reevaluated.
-TAU 2
-
-// Ratio used in pre_test for optimality: (Sm - Lm) / Fk < PRE_EPSILON.
-PRE_EPSILON 0.01
-
-// MIN_ITER will be max(ITER_FACT*xdim, MIN_ITER) JH 3/13/98
-ITER_FACT 0
-
-// Percent of resampled solutions which must meet test for optimality.
-PERCENT_PASS 0.95
-
-// Number of resampling to take when checking optimality.
-M 50
-
-// Multiplier for the number of cuts; with QP, SD sets this to 1
-CUT_MULT 5
-
-// Level of confidence when choosing the set of cuts, T, for optimality test.
-CONFID_HI 1.0
-
-// Level of confidence when conducting the optimality pre-test.
-CONFID_LO 1.45
-
-// Percent of the number by which two "equal" numbers may differ.
-TOLERANCE 0.001
-
-// number by which two "equal" numbers may differ (used in judging feasibility).
-FEA_TOLER 0.05
-
-// Like tolerance, but used when trying to thin omegas.
-THIN_TOLER 0.001
-
-// Number of iterations before SD tries to thin the data structures.
-START_THIN 9001
-
-// Number of iterations between successive thinning of structures.
-THIN_CYCLE 200
-
-
-// Number of consecutive iterations a cut must be slack before its dropped.
-DROP_TIME 16300
-
-// 0 for pre-tests only, 1 for full_test
-TEST_TYPE 1
-
-// Number of iterations before checking new pi's impact
-PI_EVAL_START 1
-
-// Print out detailed solutions, set this to 1
-DETAILED_SOLN 1
-
-// Number of iterations between evaluation of the impact of new dual vertex
-PI_CYCLE 1
-
-// The flag for subproblem lower bound checker.
-// 0 -- no subproblem LB checking.
-// 1 -- check subproblem LB.
-SUB_LB_CHECK 0
-
-// The flag for seed generation method
-// 0 -- user provide seeds manually
-// 1 -- SD generates seeds automatically
-AUTO_SEED 0
-
-// 16 digits are recommended for the seed
-// Random number seed for generating observations of omega.
-// RUN_SEED1 9495518635394380
-RUN_SEED1 9495518635394380
-RUN_SEED2 4650175399072632
-RUN_SEED3 6070772756632709
-RUN_SEED4 5451675876709589
-RUN_SEED5 5285327724846206
-RUN_SEED6 5588857889468088
-RUN_SEED7 1098833779416153
-RUN_SEED8 6192593982049265
-RUN_SEED9 4756774140130874
-RUN_SEED10 6784592265109609
-RUN_SEED11 9728429908537680
-RUN_SEED12 1163479388309571
-RUN_SEED13 3279282318700126
-RUN_SEED14 8773753208032360
-RUN_SEED15 9337302665697748
-RUN_SEED16 4415169667296773
-RUN_SEED17 4220432037464045
-RUN_SEED18 3554548844580680
-RUN_SEED19 1814300451929103
-RUN_SEED20 5339672949292608
-RUN_SEED21 5638710736762732
-RUN_SEED22 3154245808720589
-RUN_SEED23 2414929536171258
-RUN_SEED24 7998609999427572
-RUN_SEED25 7080145164625719
-RUN_SEED26 3648862740490586
-RUN_SEED27 7772725003305823
-RUN_SEED28 5982768791029230
-RUN_SEED29 1395182510837913
-RUN_SEED30 3735836402047426
-"""
-
-def _domain_sd_tolerance(val):
- val = str(val)
- if val not in _domain_sd_tolerance._values:
- raise ValueError(
- "Value %s is not one of %s."
- % (val, str(_domain_sd_tolerance._values)))
- return val
-_domain_sd_tolerance._values = ('loose','nominal','tight')
-_domain_sd_tolerance.doc = \
- "" % (str(_domain_sd_tolerance._values))
-
-class SDSolver(SPSolverShellCommand, PySPConfiguredObject):
-
- @classmethod
- def _declare_options(cls, options=None):
- if options is None:
- options = PySPConfigBlock()
- safe_declare_unique_option(
- options,
- "stopping_rule_tolerance",
- PySPConfigValue(
- "nominal",
- domain=_domain_sd_tolerance,
- description=(
- "Stopping rule tolerance used by the SD solver. "
- "Must be one of: %s. Default is 'nominal'."
- % (str(_domain_sd_tolerance._values))
- ),
- doc=None,
- visibility=0),
- ap_group=_sd_group_label)
- safe_declare_unique_option(
- options,
- "single_replication",
- PySPConfigValue(
- False,
- domain=bool,
- description=(
- "Disables multiple replication procedure in "
- "SD and uses a single replication."
- ),
- doc=None,
- visibility=0),
- ap_group=_sd_group_label)
- safe_declare_unique_option(
- options,
- "print_cycle",
- PySPConfigValue(
- 100,
- domain=_domain_positive_integer,
- description=(
- "Number of iterations between output of "
- "solution data to screen and file."
- ),
- doc=None,
- visibility=0),
- ap_group=_sd_group_label)
- safe_declare_unique_option(
- options,
- "eval_run_flag",
- PySPConfigValue(
- False,
- domain=bool,
- description=(
- "Set to evaluate on the run. This should be "
- "only used for instances with relatively complete "
- "recourse. This flag is not recommended because "
- "accurate function evaluations are unnecessarily "
- "time consuming. It is best to use a large print "
- "cycle when this option is activated."
- ),
- doc=None,
- visibility=0),
- ap_group=_sd_group_label)
- safe_declare_unique_option(
- options,
- "eval_flag",
- PySPConfigValue(
- False,
- domain=bool,
- description=(
- "Set to get an estimated objective function value "
- "for the final incumbent of each replication."
- ),
- doc=None,
- visibility=0),
- ap_group=_sd_group_label)
- safe_declare_unique_option(
- options,
- "eval_seed1",
- PySPConfigValue(
- 2668655841019641,
- domain=int,
- description=(
- "Random number seed for re-sampling omegas during "
- "optimality test. Default is None, meaning no "
- "seed will be provided."
- ),
- doc=None,
- visibility=0),
- ap_group=_sd_group_label)
- safe_declare_unique_option(
- options,
- "eval_error",
- PySPConfigValue(
- 0.01,
- domain=_domain_positive,
- description=(
- "Objective evaluation is accurate to within "
- "this much, with 95%% confidence. Default is 0.01."
- ),
- doc=None,
- visibility=0),
- ap_group=_sd_group_label)
- safe_declare_unique_option(
- options,
- "mean_dev",
- PySPConfigValue(
- 0.05,
- domain=_domain_positive,
- description=(
- "Solution tolerance for deciding the usage of "
- "mean solution. Default is 0.05."
- ),
- doc=None,
- visibility=0),
- ap_group=_sd_group_label)
- safe_declare_unique_option(
- options,
- "min_iterations",
- PySPConfigValue(
- None,
- domain=_domain_nonnegative_integer,
- description=(
- "Number of iterations which must pass before "
- "optimality is checked. Default is None, meaning "
- "no minimum is given."
- ),
- doc=None,
- visibility=0),
- ap_group=_sd_group_label)
- safe_declare_unique_option(
- options,
- "max_iterations",
- PySPConfigValue(
- 5000,
- domain=_domain_positive_integer,
- description=(
- "Maximum number of iterations for any given "
- "problem. Default is 5000."
- ),
- doc=None,
- visibility=0),
- ap_group=_sd_group_label)
- safe_declare_common_option(options,
- "verbose",
- ap_group=_sd_group_label)
-
- return options
-
- def __init__(self):
- super(SDSolver, self).__init__(self.register_options())
- self.set_options_to_default()
- self._executable = "sd"
-
- def set_options_to_default(self):
- self._options = self.register_options()
-
- @property
- def options(self):
- return self._options
-
- @property
- def name(self):
- return "sd"
-
- def _solve_impl(self,
- sp,
- output_solver_log=False,
- **kwds):
- """
- Solve a stochastic program with the SD solver.
-
- See the 'solve' method on the base class for
- additional keyword documentation.
-
- Args:
- sp: The stochastic program to solve.
- output_solver_log (bool): Stream the solver
- output during the solve.
- **kwds: Passed to the SMPS file writer as I/O
- options (e.g., symbolic_solver_labels=True).
-
- Returns: A results object with information about the solution.
- """
-
- if sp.objective_sense == maximize:
- raise ValueError("SD solver does not yet handle "
- "maximization problems")
-
- #
- # Setup the SD working directory
- #
-
- working_directory = self._create_tempdir("workdir")
- config_filename = self._files["config"] = \
- os.path.join(working_directory,
- "config.sd")
- self._add_tempfile("config", config_filename)
- sdinput_directory = os.path.join(working_directory,
- "sdinput",
- "pysp_model")
- self._add_tempfile("stdinput", sdinput_directory)
- sdoutput_directory = os.path.join(working_directory,
- "sdoutput",
- "pysp_model")
- self._add_tempfile("sdoutput", sdoutput_directory)
- logfile = os.path.join(working_directory, "sd.log")
- self._add_tempfile("log", logfile)
-
- if self.get_option("verbose"):
- print("Writing solver files in directory: %s"
- % (working_directory))
-
- os.makedirs(sdinput_directory)
- assert os.path.exists(sdinput_directory)
- assert not os.path.exists(sdoutput_directory)
- self._write_config(config_filename)
-
- if self.get_option('single_replication'):
- solution_filename = os.path.join(
- sdoutput_directory,
- "pysp_model.detailed_rep_soln.out")
- else:
- solution_filename = os.path.join(
- sdoutput_directory,
- "pysp_model.detailed_soln.out")
- self._add_tempfile("solution", solution_filename)
-
- #
- # Create the SD input files
- #
-
- if isinstance(sp, EmbeddedSP):
- input_files, _ = pyomo.pysp.convert.smps.\
- convert_embedded(
- sdinput_directory,
- "pysp_model",
- sp,
- core_format='mps',
- io_options=kwds)
- else:
- input_files = pyomo.pysp.convert.smps.\
- convert_external(
- sdinput_directory,
- "pysp_model",
- sp,
- core_format='mps',
- io_options=kwds)
- for key in input_files:
- self._add_tempfile(key, input_files[key])
-
- #
- # Launch SD
- #
-
- _cmd_string = self.executable+" < pysp_model"
- if self.get_option("verbose"):
- print("Launching SD solver with command: %s"
- % (_cmd_string))
-
- start = time.time()
- rc, log = pyutilib.subprocess.run(
- self.executable,
- cwd=working_directory,
- stdin="pysp_model",
- outfile=logfile,
- tee=output_solver_log)
- stop = time.time()
- assert os.path.exists(sdoutput_directory)
-
- #
- # Parse the SD solution
- #
-
- if self.get_option("verbose"):
- print("Reading SD solution from file: %s"
- % (solution_filename))
-
- xhat, results = self._read_solution(input_files["symbols"],
- solution_filename)
- results.solver.time = stop - start
-
- results.xhat = None
- if xhat is not None:
- if isinstance(sp, EmbeddedSP):
- results.xhat = {sp.time_stages[0]: xhat}
- else:
- results.xhat = {sp.scenario_tree.findRootNode().name: xhat}
-
- return results
-
- def _write_config(self, filename):
- """ Writes an SD config file """
- with open(filename, "w") as f:
- if self.get_option("stopping_rule_tolerance") == "loose":
- f.write("// nominal tolerance\n")
- f.write("EPSILON 0.01\n")
- f.write("SCAN_LEN 64\n")
- elif self.get_option("stopping_rule_tolerance") == "nominal":
- f.write("// nominal tolerance\n")
- f.write("EPSILON 0.001\n")
- f.write("SCAN_LEN 256\n")
- elif self.get_option("stopping_rule_tolerance") == "tight":
- f.write("// nominal tolerance\n")
- f.write("EPSILON 0.00001\n")
- f.write("SCAN_LEN 512\n")
- else:
- assert False
- f.write("MULTIPLE_REP %d\n"
- % (0 if self.get_option("single_replication") else 1))
- f.write("PRINT_CYCLE %d\n" % (self.get_option("print_cycle")))
- f.write("EVAL_RUN_FLAG %d\n"
- % (1 if self.get_option("eval_run_flag") else 0))
- f.write("EVAL_FLAG %d\n"
- % (1 if self.get_option("eval_flag") else 0))
- f.write("EVAL_SEED1 %d\n" % (self.get_option("eval_seed1")))
- f.write("EVAL_ERROR %r\n" % (self.get_option("eval_error")))
- f.write("MEAN_DEV %r\n" % (self.get_option("mean_dev")))
- if self.get_option("min_iterations") is not None:
- f.write("MIN_ITER %d\n" % (self.get_option("min_iterations")))
- f.write("MAX_ITER %d\n" % (self.get_option("max_iterations")))
- f.write(sd_advanced_config_section)
-
- def _read_solution(self,
- symbols_filename,
- solution_filename):
- """ Parses an SD solution file """
-
- # parse the symbol map
- symbol_map = {}
- with open(symbols_filename) as f:
- for line in f:
- lp_symbol, scenario_tree_id = line.strip().split()
- symbol_map[lp_symbol] = scenario_tree_id
-
- results = SPSolverResults()
- results.status = None
- results.solver.status = None
- results.solver.termination_condition = None
- results.solver.message = None
- xhat = {}
- try:
- with open(solution_filename, 'r') as f:
- line = f.readline()
- assert line.startswith("Problem:")
- assert line.split()[1].strip() == "pysp_model"
- line = f.readline()
- assert line.startswith("First Stage Rows:")
- line = f.readline()
- assert line.startswith("First Stage Columns:")
- line = f.readline()
- assert line.startswith("First Stage Non-zeros:")
- line = f.readline()
- assert line.startswith("Replication No.") or \
- line.startswith("Number of replications:")
- line = f.readline()
- assert line.startswith("Status:")
- results.solver.message = line.split(":")[1].strip()
- (results.status,
- results.solver.status,
- results.solver.termination_condition) = \
- _sd_status_map.get(results.solver.message,
- (SolutionStatus.unknown,
- SolverStatus.unknown,
- TerminationCondition.unknown))
-
- #
- # Objective and Bound
- #
-
- line = f.readline()
- assert line.startswith("Total Objective Function Upper Bound:")
- line = line.split(':')
- if line[1].strip() == '':
- pass
- else:
- assert len(line) == 4
- line = line[1]
- if "half-width" in line:
- # we are given confidence intervals on the objective
- line = line.split(',')
- assert len(line) == 4
- results.objective = float(line[0])
- assert line[1].startswith('[')
- assert line[2].endswith(']')
- results.objective_interval = (float(line[1][1:]),
- float(line[2][:-1]))
- else:
- results.objective = float(line[1])
- line = f.readline()
- assert line.startswith("Total Objective Function Lower Bound:")
- line = line.split(':')
- if line[1].strip() == '':
- pass
- else:
- if "half-width" in line[1]:
- # we are given confidence intervals on the bound
- line = line[1].split(',')
- assert len(line) == 4
- results.bound = float(line[0])
- assert line[1].startswith('[')
- assert line[2].endswith(']')
- results.bound_interval = (float(line[1][1:]),
- float(line[2][:-1]))
- else:
- results.bound = float(line[1].strip())
-
- #
- # Xhat
- #
-
- line = f.readline()
- assert line.strip() == ''
- line = f.readline()
- assert line.startswith('First Stage Solutions:')
- line = f.readline()
- assert line.startswith(' No. Row name Activity Lower bound Upper bound Dual Dual STDEV')
- line = f.readline()
- assert line.startswith('------ ------------ ------------- ------------- ------------- ------------- -------------')
-
- xhat_start_line = ' No. Column name Activity Lower bound Upper bound Reduced Cost RC STDEV'
- line = f.readline()
- while not line.startswith(xhat_start_line):
- line = f.readline()
- line = f.readline()
- assert line.startswith('------ ------------ ------------- ------------- ------------- ------------- -------------')
- line = f.readline().strip().split()
- while line:
- varlabel, varvalue = line[1:3]
- varlabel = varlabel.strip()
- varvalue = float(varvalue)
- xhat[symbol_map[varlabel]] = varvalue
- line = f.readline().strip().split()
-
- except (IOError, OSError):
- logger.warn(
- "Exception encountered while parsing sd "
- "solution file '%s':\n%s'"
- % (solution_filename, traceback.format_exc()))
- xhat = None
-
- return xhat, results
-
-def runsd_register_options(options=None):
- if options is None:
- options = PySPConfigBlock()
- SDSolver.register_options(options)
- ScenarioTreeManagerFactory.register_options(options)
- safe_register_common_option(options,
- "verbose")
- safe_register_common_option(options,
- "disable_gc")
- safe_register_common_option(options,
- "profile")
- safe_register_common_option(options,
- "traceback")
- safe_register_common_option(options,
- "output_scenario_tree_solution")
- safe_register_common_option(options,
- "keep_solver_files")
- safe_register_common_option(options,
- "output_solver_log")
- safe_register_common_option(options,
- "symbolic_solver_labels")
- return options
-
-def runsd(options):
- """
- Construct a senario tree manager and solve it
- with the SD solver.
- """
- start_time = time.time()
- with ScenarioTreeManagerFactory(options) as sp:
- sp.initialize()
- print("")
- print("Running SD solver for stochastic "
- "programming problems")
- sd = SDSolver()
- sd_options = sd.extract_user_options_to_dict(options,
- sparse=True)
- results = sd.solve(
- sp,
- options=sd_options,
- output_solver_log=options.output_solver_log,
- keep_solver_files=options.keep_solver_files,
- symbolic_solver_labels=options.symbolic_solver_labels)
- xhat = results.xhat
- del results.xhat
- print("")
- print(results)
-
- if options.output_scenario_tree_solution:
- print("")
- sp.scenario_tree.snapshotSolutionFromScenarios()
- sp.scenario_tree.pprintSolution()
- sp.scenario_tree.pprintCosts()
-
- print("")
- print("Total execution time=%.2f seconds"
- % (time.time() - start_time))
- return 0
-
-#
-# the main driver routine
-#
-
-def main(args=None):
- #
- # Top-level command that executes everything
- #
-
- #
- # Import plugins
- #
- import pyomo.environ
-
- #
- # Parse command-line options.
- #
- try:
- options = parse_command_line(
- args,
- runsd_register_options,
- prog='runsd',
- description=(
-"""Optimize a stochastic program using the SD solver."""
- ))
-
- except SystemExit as _exc:
- # the parser throws a system exit if "-h" is specified
- # - catch it to exit gracefully.
- return _exc.code
-
- return launch_command(runsd,
- options,
- error_label="runsd: ",
- disable_gc=options.disable_gc,
- profile_count=options.profile,
- traceback=options.traceback)
-
-SPSolverFactory.register_solver("sd", SDSolver)
-
-if __name__ == "__main__":
- sys.exit(main())
diff --git a/pyomo/pysp/solvers/spsolver.py b/pyomo/pysp/solvers/spsolver.py
deleted file mode 100644
index 592899c8512..00000000000
--- a/pyomo/pysp/solvers/spsolver.py
+++ /dev/null
@@ -1,270 +0,0 @@
-# ___________________________________________________________________________
-#
-# Pyomo: Python Optimization Modeling Objects
-# Copyright 2017 National Technology and Engineering Solutions of Sandia, LLC
-# Under the terms of Contract DE-NA0003525 with National Technology and
-# Engineering Solutions of Sandia, LLC, the U.S. Government retains certain
-# rights in this software.
-# This software is distributed under the 3-clause BSD License.
-# ___________________________________________________________________________
-
-__all__ = ("SPSolverResults",
- "SPSolver",
- "SPSolverFactory")
-
-import sys
-import time
-import logging
-
-from pyomo.opt import UndefinedData
-from pyomo.core import ComponentUID
-from pyomo.pysp.embeddedsp import EmbeddedSP
-
-from six import StringIO
-
-logger = logging.getLogger('pyomo.pysp')
-
-# TODO:
-# Things to test for particular solvers:
-# - serial vs pyro scenario tree manager
-# - behavior on multi-stage
-# - access to xhat
-# - access to derived variables in xhat
-# - solve status (need an enum?)
-# - solutions loaded into scenario instances
-# - solution loaded into reference model
-# - results.objective
-# - results.bound
-# - ddsip validate problem (like in smpsutils)
-
-class SPSolverStatus(object):
- def __init__(self):
- self.name = None
- self.status = None
- self.termination_condition = None
-
- def pprint(self, ostream=sys.stdout):
- attrs = vars(self)
- names = sorted(list(attrs.keys()))
- first = ('name','status','termination_condition')
- for cnt, name in enumerate(first):
- names.remove(name)
- if cnt > 0:
- ostream.write('\n')
- ostream.write('%s: %s'
- % (name, getattr(self, name)))
- for name in names:
- ostream.write('\n%s: %s'
- % (name, getattr(self, name)))
-
- def __str__(self):
- tmp = StringIO()
- self.pprint(ostream=tmp)
- return tmp.getvalue()
-
-class SPSolverResults(object):
-
- def __init__(self):
- self.objective = None
- self.bound = None
- self.status = None
- self.xhat_loaded = False
- self.xhat = None
- self.solver = SPSolverStatus()
-
- def pprint(self, ostream=sys.stdout):
- attrs = vars(self)
- names = sorted(list(attrs.keys()))
- first = ('status','objective','bound','xhat_loaded')
- for name in first:
- names.remove(name)
- ostream.write('%s: %s\n'
- % (name, getattr(self, name)))
- names.remove('solver')
- for name in names:
- ostream.write('%s: %s\n'
- % (name, getattr(self, name)))
- tmp = StringIO()
- self.solver.pprint(ostream=tmp)
- ostream.write("solver:")
- for line in tmp.getvalue().splitlines():
- ostream.write("\n "+line)
-
- def __str__(self):
- tmp = StringIO()
- self.pprint(ostream=tmp)
- return tmp.getvalue()
-
-class SPSolver(object):
-
- @property
- def set_options_to_default(self):
- """Reset all options on the solver object to their
- default value"""
- raise NotImplementedError #pragma:nocover
-
- @property
- def options(self):
- """Access the solver options"""
- raise NotImplementedError #pragma:nocover
-
- def _solve_impl(self, *args, **kwds):
- raise NotImplementedError #pragma:nocover
-
- @property
- def name(self):
- """The registered solver name"""
- raise NotImplementedError #pragma:nocover
-
- def solve(self, sp, *args, **kwds):
- """
- Solve a stochastic program.
-
- Args:
- sp: The stochastic program to solve.
- reference_model: A pyomo model with at least the
- set of non-anticipative variable objects
- that were declared on th e scenario tree of
- the stochastic program. If this keyword is
- changed from its default value of None, the
- non leaf-stage variable values in the
- solution will be stored into the variable
- objects on the reference model. Otherwise,
- the results object that is returned will
- contain a solution dictionary called 'xhat'
- that stores the solution nested by tree node
- name.
- options: Ephemeral solver options that will
- temporarily overwrite any matching options
- currently set for the solver.
- output_solver_log (bool): Stream the solver
- output during the solve.
- *args: Passed to the derived solver class
- (see the _solve_impl method).
- **kwds: Passed to the derived solver class
- (see the _solve_impl method).
-
- Returns: A results object with information about the solution.
- """
-
- start = time.time()
-
- reference_model = kwds.pop('reference_model', None)
-
- tmp_options = kwds.pop('options', None)
- orig_options = self.options
- if tmp_options is not None:
- self.set_options_to_default()
- for opt in orig_options.user_values():
- self.options[opt.name()] = opt.value(accessValue=False)
- for key, val in tmp_options.items():
- self.options[key] = val
-
- # reset the _userAccessed flag on all options
- # so we can verify that all set options are used
- # each time
- for key in self.options:
- self.options.get(key)._userAccessed = False
-
- try:
- if isinstance(sp, EmbeddedSP):
- num_scenarios = ""
- num_stages = len(sp.time_stages)
- num_na_variables = 0
- num_na_continuous_variables = 0
- for stage in sp.time_stages[:-1]:
- for var,derived in sp.stage_to_variables_map[stage]:
- if not derived:
- num_na_variables += 1
- if var.is_continuous():
- num_na_continuous_variables += 1
- else:
- scenario_tree = sp.scenario_tree
-
- num_scenarios = len(scenario_tree.scenarios)
- num_stages = len(scenario_tree.stages)
- num_na_variables = 0
- num_na_continuous_variables = 0
- for stage in scenario_tree.stages[:-1]:
- for tree_node in stage.nodes:
- num_na_variables += len(tree_node._standard_variable_ids)
- for id_ in tree_node._standard_variable_ids:
- if not tree_node.is_variable_discrete(id_):
- num_na_continuous_variables += 1
-
- if kwds.get('output_solver_log', False):
- print("\n")
- print("-"*20)
- print("Problem Statistics".center(20))
- print("-"*20)
- print("Total number of scenarios.................: %10s"
- % (num_scenarios))
- if scenario_tree.contains_bundles():
- print("Total number of scenario bundles..........: %10s"
- % (len(scenario_tree.bundles)))
- print("Total number of time stages...............: %10s"
- % (num_stages))
- print("Total number of non-anticipative variables: %10s\n"
- " continuous: %10s\n"
- " discrete: %10s"
- % (num_na_variables,
- num_na_continuous_variables,
- num_na_variables - num_na_continuous_variables))
-
- results = self._solve_impl(sp, *args, **kwds)
-
- stop = time.time()
- results.solver.pysp_time = stop - start
- results.solver.name = self.name
- if (results.status is None) or \
- isinstance(results.status, UndefinedData):
- results.status = results.solver.termination_condition
- results.xhat_loaded = False
- if (reference_model is not None):
- # TODO: node/stage costs
- if results.xhat is not None:
- xhat = results.xhat
- for tree_obj_name in xhat:
- tree_obj_solution = xhat[tree_obj_name]
- for id_ in tree_obj_solution:
- var = ComponentUID(id_).\
- find_component(reference_model)
- if not var.is_expression_type():
- var.value = tree_obj_solution[id_]
- var.stale = False
- results.xhat_loaded = True
- del results.xhat
-
- finally:
-
- # warn about ignored options
- self.options.check_usage(error=False)
-
- # reset options (if temporary ones were provided)
- if tmp_options is not None:
- current_options = self.options
- self.set_options_to_default()
- for opt in orig_options.user_values():
- current = current_options.get(opt.name())
- self.options[opt.name()] = \
- opt.value(accessValue=current._userAccessed)
-
- return results
-
-def SPSolverFactory(solver_name, *args, **kwds):
- if solver_name in SPSolverFactory._registered_solvers:
- type_ = SPSolverFactory._registered_solvers[solver_name]
- return type_(*args, **kwds)
- else:
- raise ValueError(
- "No SPSolver object has been registered with name: %s"
- % (solver_name))
-SPSolverFactory._registered_solvers = {}
-
-def _register_solver(name, type_):
- if not issubclass(type_, SPSolver):
- raise TypeError("Can not register SP solver type '%s' "
- "because it is not derived from type '%s'"
- % (type_, SPSolver))
- SPSolverFactory._registered_solvers[name] = type_
-SPSolverFactory.register_solver = _register_solver
diff --git a/pyomo/pysp/solvers/spsolvershellcommand.py b/pyomo/pysp/solvers/spsolvershellcommand.py
deleted file mode 100644
index 1e97f5ec456..00000000000
--- a/pyomo/pysp/solvers/spsolvershellcommand.py
+++ /dev/null
@@ -1,142 +0,0 @@
-# _________________________________________________________________________
-#
-# Pyomo: Python Optimization Modeling Objects
-# Copyright (c) 2014 Sandia Corporation.
-# Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation,
-# the U.S. Government retains certain rights in this software.
-# This software is distributed under the BSD License.
-# _________________________________________________________________________
-
-__all__ = ("SPSolverShellCommand",)
-
-import logging
-import pprint
-
-import pyomo.common
-from pyomo.common.tempfiles import TempfileManager
-from pyomo.pysp.solvers.spsolver import SPSolver
-
-logger = logging.getLogger('pyomo.pysp')
-
-class SPSolverShellCommand(SPSolver):
-
- def __init__(self, *args, **kwds):
- super(SPSolverShellCommand, self).__init__(*args, **kwds)
- self._executable = None
- self._files = {}
-
- def _create_tempdir(self, label, *args, **kwds):
- dirname = TempfileManager.create_tempdir(*args, **kwds)
- self._files[label] = dirname
- return dirname
-
- def _create_tempfile(self, label, *args, **kwds):
- filename = TempfileManager.create_tempfile(*args, **kwds)
- self._files[label] = filename
- return filename
-
- def _add_tempfile(self, label, filename):
- TempfileManager.add_tempfile(filename,
- exists=False)
- self._files[label] = filename
-
- @property
- def executable(self):
- """The executable used by this solver."""
- return self._executable
-
- @property
- def files(self):
- """A dictionary maintaining the location of various
- solvers files generated during the most recent
- solve. All files will be removed before a solve
- completes unless the keep_solver_files keyword was
- set to True."""
- return self._files
-
- def set_executable(self, name, validate=True):
- """
- Set the executable for this solver.
-
- Args:
- name (str): A relative, absolute, or base
- executable name.
- validate (bool): When set to True (default)
- extra checks take place that ensure an
- executable file with that name exists, and
- then 'name' is converted to an absolute
- path. On Windows platforms, a '.exe'
- extension will be appended if necessary when
- validating 'name'. If a file named 'name'
- does not appear to be a relative or absolute
- path, the search will be performed within
- the directories assigned to the PATH
- environment variable.
- """
- if not validate:
- self._executable = name
- else:
- exe = pyomo.common.Executable(name)
- # This is a bit awkward, but we want Executable to re-check
- # the PATH, so we will explicitly call rehash(). In the
- # future, we should move to have the solver directly use the
- # Executable() singleton to manage getting / setting /
- # overriding paths to various executables. Setting the
- # executable through the Executable() singleton will
- # automatically re-check the PATH.
- exe.rehash()
- exe = exe.path()
- if exe is None:
- raise ValueError(
- "Failed to set executable for solver %s. File "
- "with name=%s either does not exist or it is "
- "not executable. To skip this validation, "
- "call set_executable with validate=False."
- % (self.name, name))
- self._executable = exe
-
- def available(self):
- """Returns whether this solver is available by checking
- if the currently assigned executable exists."""
- exe = self._executable
- try:
- self.set_executable(exe, validate=True)
- except ValueError:
- return False
- else:
- return True
- finally:
- self._executable = exe
-
- def solve(self, sp, *args, **kwds):
- """
- Solve a stochastic program.
-
- See the 'solve' method on the base class for
- additional keyword documentation.
-
- Args:
- sp: The stochastic program to solve.
- keep_solver_files (bool): Retain temporary solver
- input and output files after the solve completes.
- *args: Passed to the derived solver class
- (see the _solve_impl method).
- **kwds: Passed to the derived solver class
- (see the _solve_impl method).
-
- Returns: A results object with information about the solution.
- """
-
- self._files.clear()
- assert self.executable is not None
-
- keep_solver_files = kwds.pop("keep_solver_files", False)
- TempfileManager.push()
- try:
- return super(SPSolverShellCommand, self).solve(sp, *args, **kwds)
- finally:
- # cleanup
- TempfileManager.pop(remove=not keep_solver_files)
- if keep_solver_files:
- logger.info("Retaining the following solver files:\n"
- +pprint.pformat(self.files))
diff --git a/pyomo/pysp/tests/__init__.py b/pyomo/pysp/tests/__init__.py
deleted file mode 100644
index 6077ab5c86f..00000000000
--- a/pyomo/pysp/tests/__init__.py
+++ /dev/null
@@ -1,12 +0,0 @@
-# ___________________________________________________________________________
-#
-# Pyomo: Python Optimization Modeling Objects
-# Copyright 2017 National Technology and Engineering Solutions of Sandia, LLC
-# Under the terms of Contract DE-NA0003525 with National Technology and
-# Engineering Solutions of Sandia, LLC, the U.S. Government retains certain
-# rights in this software.
-# This software is distributed under the 3-clause BSD License.
-# ___________________________________________________________________________
-#
-# PySP tests
-#
diff --git a/pyomo/pysp/tests/benders/__init__.py b/pyomo/pysp/tests/benders/__init__.py
deleted file mode 100644
index 29c5a7dc105..00000000000
--- a/pyomo/pysp/tests/benders/__init__.py
+++ /dev/null
@@ -1,12 +0,0 @@
-# ___________________________________________________________________________
-#
-# Pyomo: Python Optimization Modeling Objects
-# Copyright 2017 National Technology and Engineering Solutions of Sandia, LLC
-# Under the terms of Contract DE-NA0003525 with National Technology and
-# Engineering Solutions of Sandia, LLC, the U.S. Government retains certain
-# rights in this software.
-# This software is distributed under the 3-clause BSD License.
-# ___________________________________________________________________________
-#
-# Unit tests for PySP benders solver
-#
diff --git a/pyomo/pysp/tests/benders/test_benders.py b/pyomo/pysp/tests/benders/test_benders.py
deleted file mode 100644
index 5b7c8f39830..00000000000
--- a/pyomo/pysp/tests/benders/test_benders.py
+++ /dev/null
@@ -1,302 +0,0 @@
-# ___________________________________________________________________________
-#
-# Pyomo: Python Optimization Modeling Objects
-# Copyright 2017 National Technology and Engineering Solutions of Sandia, LLC
-# Under the terms of Contract DE-NA0003525 with National Technology and
-# Engineering Solutions of Sandia, LLC, the U.S. Government retains certain
-# rights in this software.
-# This software is distributed under the 3-clause BSD License.
-# ___________________________________________________________________________
-
-import os
-from os.path import join, dirname, abspath
-import time
-import subprocess
-
-import pyutilib.th as unittest
-from pyutilib.pyro import using_pyro3, using_pyro4
-from pyomo.pysp.util.misc import (_get_test_nameserver,
- _get_test_dispatcher,
- _poll,
- _kill)
-
-thisdir = dirname(abspath(__file__))
-baselineDir = join(thisdir, "baselines")
-pysp_examples_dir = \
- join(dirname(dirname(dirname(dirname(thisdir)))), "examples", "pysp")
-
-_run_verbose = True
-_json_exact_comparison = True
-_diff_tolerance = 1e-4
-
-testing_solvers = {}
-testing_solvers['cplex','nl'] = False
-testing_solvers['cplex','lp'] = False
-testing_solvers['cplex','mps'] = False
-testing_solvers['cplex','python'] = False
-testing_solvers['_cplex_persistent','python'] = False
-testing_solvers['ipopt','nl'] = False
-def setUpModule():
- global testing_solvers
- import pyomo.environ
- from pyomo.solvers.tests.solvers import test_solver_cases
- for _solver, _io in test_solver_cases():
- if (_solver, _io) in testing_solvers and \
- test_solver_cases(_solver, _io).available:
- testing_solvers[_solver, _io] = True
-
-
-class _RunBendersTesterBase(object):
-
- basename = None
- model_location = None
- scenario_tree_location = None
- solver_name = None
- solver_io = None
-
- def setUp(self):
- self._tempfiles = []
- self.options = {}
- self.options['--scenario-tree-manager'] = 'serial'
-
- def _run_cmd(self, cmd):
- class_name, test_name = self.id().split('.')[-2:]
- outname = os.path.join(thisdir,
- class_name+"."+test_name+".out")
- self._tempfiles.append(outname)
- with open(outname, "w") as f:
- subprocess.check_call(cmd,
- stdout=f,
- stderr=subprocess.STDOUT)
-
- def _cleanup(self):
- for fname in self._tempfiles:
- try:
- os.remove(fname)
- except OSError:
- pass
- self._tempfiles = []
-
- def _setup(self, options):
- assert self.basename is not None
- assert self.model_location is not None
- assert self.solver_name is not None
- assert self.solver_io is not None
- if not testing_solvers[self.solver_name, self.solver_io]:
- self.skipTest("%s (interface=%s) is not available"
- % (self.solver_name, self.solver_io))
- options['--subproblem-solver'] = self.solver_name
- options['--master-solver'] = self.solver_name
- options['--subproblem-solver-io'] = self.solver_io
- options['--master-solver-io'] = self.solver_io
- options['--model-location'] = self.model_location
- if self.scenario_tree_location is not None:
- options['--scenario-tree-location'] = self.scenario_tree_location
- if _run_verbose:
- options['--verbose'] = None
- options['--output-times'] = None
- options['--traceback'] = None
-
- def _get_cmd(self):
- cmd = ['runbenders']
- for name, val in self.options.items():
- cmd.append(name)
- if val is not None:
- cmd.append(str(val))
- class_name, test_name = self.id().split('.')[-2:]
- print("%s.%s: Testing command: %s" % (class_name,
- test_name,
- str(' '.join(cmd))))
- return cmd
-
- def test_scenarios(self):
- self._setup(self.options)
- cmd = self._get_cmd()
- self._run_cmd(cmd)
- self._cleanup()
-
-_pyomo_ns_host = '127.0.0.1'
-_pyomo_ns_port = None
-_pyomo_ns_process = None
-_dispatch_srvr_port = None
-_dispatch_srvr_process = None
-_taskworker_processes = []
-def tearDownModule():
- global _pyomo_ns_port
- global _pyomo_ns_process
- global _dispatch_srvr_port
- global _dispatch_srvr_process
- global _taskworker_processes
- _kill(_pyomo_ns_process)
- _pyomo_ns_port = None
- _pyomo_ns_process = None
- _kill(_dispatch_srvr_process)
- _dispatch_srvr_port = None
- _dispatch_srvr_process = None
- [_kill(proc) for proc in _taskworker_processes]
- _taskworker_processes = []
- if os.path.exists(join(thisdir, "Pyro_NS_URI")):
- try:
- os.remove(join(thisdir, "Pyro_NS_URI"))
- except OSError:
- pass
-
-class _RunBendersPyroTesterBase(_RunBendersTesterBase):
-
- def _setUpPyro(self):
- global _pyomo_ns_port
- global _pyomo_ns_process
- global _dispatch_srvr_port
- global _dispatch_srvr_process
- global _taskworker_processes
- if _pyomo_ns_process is None:
- _pyomo_ns_process, _pyomo_ns_port = \
- _get_test_nameserver(ns_host=_pyomo_ns_host)
- assert _pyomo_ns_process is not None
- if _dispatch_srvr_process is None:
- _dispatch_srvr_process, _dispatch_srvr_port = \
- _get_test_dispatcher(ns_host=_pyomo_ns_host,
- ns_port=_pyomo_ns_port)
- assert _dispatch_srvr_process is not None
- class_name, test_name = self.id().split('.')[-2:]
- if len(_taskworker_processes) == 0:
- for i in range(3):
- outname = os.path.join(thisdir,
- class_name+"."+test_name+".scenariotreeserver_"+str(i+1)+".out")
- self._tempfiles.append(outname)
- with open(outname, "w") as f:
- _taskworker_processes.append(
- subprocess.Popen(["scenariotreeserver", "--traceback"] + \
- (["--verbose"] if _run_verbose else []) + \
- ["--pyro-host="+str(_pyomo_ns_host)] + \
- ["--pyro-port="+str(_pyomo_ns_port)],
- stdout=f,
- stderr=subprocess.STDOUT))
- time.sleep(2)
- [_poll(proc) for proc in _taskworker_processes]
-
- def setUp(self):
- self._tempfiles = []
- self._setUpPyro()
- [_poll(proc) for proc in _taskworker_processes]
- self.options = {}
- self.options['--scenario-tree-manager'] = 'pyro'
- self.options['--pyro-host'] = 'localhost'
- self.options['--pyro-port'] = _pyomo_ns_port
- self.options['--pyro-required-scenariotreeservers'] = 3
-
- def _setup(self, options, servers=None):
- _RunBendersTesterBase._setup(self, options)
- if servers is not None:
- options['--pyro-required-scenariotreeservers'] = servers
-
- def test_scenarios_1server(self):
- self._setup(self.options, servers=1)
- cmd = self._get_cmd()
- self._run_cmd(cmd)
- self._cleanup()
-
-@unittest.nottest
-def create_test_classes(basename,
- model_location,
- scenario_tree_location,
- solver_name,
- solver_io,
- categories):
- assert basename is not None
-
- class _base(object):
- pass
- _base.basename = basename
- _base.model_location = model_location
- _base.scenario_tree_location = scenario_tree_location
- _base.solver_name = solver_name
- _base.solver_io = solver_io
-
- class_append_name = basename + "_" + solver_name + "_" + solver_io
- class_names = []
-
- @unittest.category(*categories)
- class TestRunBenders_Serial(_base,
- _RunBendersTesterBase):
- pass
- class_names.append(TestRunBenders_Serial.__name__ + "_"+class_append_name)
- globals()[class_names[-1]] = type(
- class_names[-1], (TestRunBenders_Serial, unittest.TestCase), {})
-
- @unittest.skipIf(not (using_pyro3 or using_pyro4),
- "Pyro or Pyro4 is not available")
- @unittest.category('parallel')
- class TestRunBenders_Pyro(_base,
- _RunBendersPyroTesterBase):
- def setUp(self):
- _RunBendersPyroTesterBase.setUp(self)
- def _setup(self, options, servers=None):
- _RunBendersPyroTesterBase._setup(self, options, servers=servers)
- class_names.append(TestRunBenders_Pyro.__name__ + "_"+class_append_name)
- globals()[class_names[-1]] = type(
- class_names[-1], (TestRunBenders_Pyro, unittest.TestCase), {})
-
- @unittest.skipIf(not (using_pyro3 or using_pyro4),
- "Pyro or Pyro4 is not available")
- @unittest.category('parallel')
- class TestRunBenders_Pyro_HandshakeAtStartup(_base,
- _RunBendersPyroTesterBase):
- def setUp(self):
- _RunBendersPyroTesterBase.setUp(self)
- def _setup(self, options, servers=None):
- _RunBendersPyroTesterBase._setup(self, options, servers=servers)
- options['--pyro-handshake-at-startup'] = None
- class_names.append(TestRunBenders_Pyro_HandshakeAtStartup.__name__ + "_"+class_append_name)
- globals()[class_names[-1]] = type(
- class_names[-1], (TestRunBenders_Pyro_HandshakeAtStartup, unittest.TestCase), {})
-
- return tuple(globals()[name] for name in class_names)
-
-#
-# create the actual testing classes
-#
-
-for solver_name, solver_io in [('cplex','lp'),
- ('cplex','mps'),
- ('cplex','nl'),
- ('cplex','python')]:
- #('_cplex_persistent','python')]:
-
- farmer_examples_dir = join(pysp_examples_dir, "farmer")
- farmer_model_dir = join(farmer_examples_dir, "models")
- farmer_data_dir = join(farmer_examples_dir, "scenariodata")
- create_test_classes('farmer',
- farmer_model_dir,
- farmer_data_dir,
- solver_name,
- solver_io,
- ('nightly','expensive'))
-
- simple_quadratic_examples_dir = join(pysp_examples_dir, "simple_quadratic")
- simple_quadratic_model_dir = join(simple_quadratic_examples_dir, "ReferenceModel.py")
- simple_quadratic_data_dir = None
- create_test_classes('simple_quadratic',
- simple_quadratic_model_dir,
- simple_quadratic_data_dir,
- solver_name,
- solver_io,
- ('nightly','expensive'))
-
-"""
-# this example is big
-for solver_name, solver_io in [('cplex','lp')]:
-
- baa99_examples_dir = join(pysp_examples_dir, "baa99")
- baa99_model_dir = join(baa99_examples_dir, "ReferenceModel.py")
- baa99_data_dir = None
- create_test_classes('baa99',
- baa99_model_dir,
- baa99_data_dir,
- solver_name,
- solver_io,
- ('nightly','expensive'))
-"""
-
-if __name__ == "__main__":
- unittest.main()
diff --git a/pyomo/pysp/tests/benders_cplex.baseline b/pyomo/pysp/tests/benders_cplex.baseline
deleted file mode 100644
index 6f1800bdfbe..00000000000
--- a/pyomo/pysp/tests/benders_cplex.baseline
+++ /dev/null
@@ -1,63 +0,0 @@
-
-Iteration= 1
-Profit for scenario=Base Sub-Problem is 179523.0
-Profit for scenario=Low Sub-Problem is 125839.0
-Profit for scenario=High Sub-Problem is 93830.0
-
-Expected Stage2 Profit= 399192.0
-
-New gap= inf
-
-Master expected profit=506826.0
-
-Iteration= 2
-Profit for scenario=Base Sub-Problem is 242426.7
-Profit for scenario=Low Sub-Problem is 170557.1
-Profit for scenario=High Sub-Problem is 120072.0
-
-Expected Stage2 Profit= 533055.8
-
-New gap= 5568.2
-
-Master expected profit=506482.283951
-
-Iteration= 3
-Profit for scenario=Base Sub-Problem is 206962.3333
-Profit for scenario=Low Sub-Problem is 145379.716
-Profit for scenario=High Sub-Problem is 105356.321
-
-Expected Stage2 Profit= 457698.3704
-
-New gap= 1183.506173
-
-Master expected profit=505707.714286
-
-Iteration= 4
-Profit for scenario=Base Sub-Problem is 199697.1429
-Profit for scenario=Low Sub-Problem is 140323.0
-Profit for scenario=High Sub-Problem is 102623.9714
-
-Expected Stage2 Profit= 442644.1143
-
-New gap= 517.171429
-
-Master expected profit=505640.257143
-
-Iteration= 5
-Profit for scenario=Base Sub-Problem is 198533.5071
-Profit for scenario=Low Sub-Problem is 139417.95
-Profit for scenario=High Sub-Problem is 102106.8
-
-Expected Stage2 Profit= 440058.2571
-
-New gap= 0
-
-Benders converged!
-
-Converged master solution values:
-Make1[bands]=2590.0
-Sell1[bands]=2000.0
-Inv1[bands]=600.0
-Make1[coils]=3787.0
-Sell1[coils]=3000.0
-Inv1[coils]=787.0
diff --git a/pyomo/pysp/tests/convert/__init__.py b/pyomo/pysp/tests/convert/__init__.py
deleted file mode 100644
index ca6b7740a60..00000000000
--- a/pyomo/pysp/tests/convert/__init__.py
+++ /dev/null
@@ -1,12 +0,0 @@
-# ___________________________________________________________________________
-#
-# Pyomo: Python Optimization Modeling Objects
-# Copyright 2017 National Technology and Engineering Solutions of Sandia, LLC
-# Under the terms of Contract DE-NA0003525 with National Technology and
-# Engineering Solutions of Sandia, LLC, the U.S. Government retains certain
-# rights in this software.
-# This software is distributed under the 3-clause BSD License.
-# ___________________________________________________________________________
-#
-# Tests for SMPS related PySP code
-#
diff --git a/pyomo/pysp/tests/convert/ddsip_baselines/farmer_baseline/core.lp b/pyomo/pysp/tests/convert/ddsip_baselines/farmer_baseline/core.lp
deleted file mode 100644
index f4b9f998408..00000000000
--- a/pyomo/pysp/tests/convert/ddsip_baselines/farmer_baseline/core.lp
+++ /dev/null
@@ -1,120 +0,0 @@
-\* Source Pyomo model name=BelowAverageScenario *\
-
-min
-Total_Cost_Objective:
-+1 FirstStageCost
-+1 SecondStageCost
-+0 ONE_VAR_CONSTANT
-
-s.t.
-
-c_u_ConstrainTotalAcreage_:
-+1 DevotedAcreage(CORN)__DDSIP_FIRSTSTAGE
-+1 DevotedAcreage(SUGAR_BEETS)__DDSIP_FIRSTSTAGE
-+1 DevotedAcreage(WHEAT)__DDSIP_FIRSTSTAGE
-<= 500
-
-c_e_ComputeFirstStageCost_:
--230 DevotedAcreage(CORN)__DDSIP_FIRSTSTAGE
--260 DevotedAcreage(SUGAR_BEETS)__DDSIP_FIRSTSTAGE
--150 DevotedAcreage(WHEAT)__DDSIP_FIRSTSTAGE
-+1 FirstStageCost
-= 0
-
-c_e_ComputeSecondStageCost_:
--210 QuantityPurchased(CORN)
--100000 QuantityPurchased(SUGAR_BEETS)
--238 QuantityPurchased(WHEAT)
-+150 QuantitySubQuotaSold(CORN)
-+36 QuantitySubQuotaSold(SUGAR_BEETS)
-+170 QuantitySubQuotaSold(WHEAT)
-+10 QuantitySuperQuotaSold(SUGAR_BEETS)
-+1 SecondStageCost
-= 0
-
-c_l_EnforceCattleFeedRequirement(CORN)_:
-+2.3999999999999999 DevotedAcreage(CORN)__DDSIP_FIRSTSTAGE
-+1 QuantityPurchased(CORN)
--1 QuantitySubQuotaSold(CORN)
--1 QuantitySuperQuotaSold(CORN)
->= 240
-
-c_l_EnforceCattleFeedRequirement(SUGAR_BEETS)_:
-+16 DevotedAcreage(SUGAR_BEETS)__DDSIP_FIRSTSTAGE
-+1 QuantityPurchased(SUGAR_BEETS)
--1 QuantitySubQuotaSold(SUGAR_BEETS)
--1 QuantitySuperQuotaSold(SUGAR_BEETS)
->= 0
-
-c_l_EnforceCattleFeedRequirement(WHEAT)_:
-+2 DevotedAcreage(WHEAT)__DDSIP_FIRSTSTAGE
-+1 QuantityPurchased(WHEAT)
--1 QuantitySubQuotaSold(WHEAT)
--1 QuantitySuperQuotaSold(WHEAT)
->= 200
-
-c_u_LimitAmountSold(CORN)_:
--2.3999999999999999 DevotedAcreage(CORN)__DDSIP_FIRSTSTAGE
-+1 QuantitySubQuotaSold(CORN)
-+1 QuantitySuperQuotaSold(CORN)
-<= 0
-
-c_u_LimitAmountSold(SUGAR_BEETS)_:
--16 DevotedAcreage(SUGAR_BEETS)__DDSIP_FIRSTSTAGE
-+1 QuantitySubQuotaSold(SUGAR_BEETS)
-+1 QuantitySuperQuotaSold(SUGAR_BEETS)
-<= 0
-
-c_u_LimitAmountSold(WHEAT)_:
--2 DevotedAcreage(WHEAT)__DDSIP_FIRSTSTAGE
-+1 QuantitySubQuotaSold(WHEAT)
-+1 QuantitySuperQuotaSold(WHEAT)
-<= 0
-
-r_l_EnforceQuotas(CORN)_:
-+1 QuantitySubQuotaSold(CORN)
->= 0
-
-r_u_EnforceQuotas(CORN)_:
-+1 QuantitySubQuotaSold(CORN)
-<= 100000
-
-r_l_EnforceQuotas(SUGAR_BEETS)_:
-+1 QuantitySubQuotaSold(SUGAR_BEETS)
->= 0
-
-r_u_EnforceQuotas(SUGAR_BEETS)_:
-+1 QuantitySubQuotaSold(SUGAR_BEETS)
-<= 6000
-
-r_l_EnforceQuotas(WHEAT)_:
-+1 QuantitySubQuotaSold(WHEAT)
->= 0
-
-r_u_EnforceQuotas(WHEAT)_:
-+1 QuantitySubQuotaSold(WHEAT)
-<= 100000
-
-c_e_ONE_VAR_CONSTANT:
-ONE_VAR_CONSTANT = 1.0
-
-bounds
- 0 <= DevotedAcreage(CORN)__DDSIP_FIRSTSTAGE <= 500
- 0 <= DevotedAcreage(SUGAR_BEETS)__DDSIP_FIRSTSTAGE <= 500
- 0 <= DevotedAcreage(WHEAT)__DDSIP_FIRSTSTAGE <= 500
- 0 <= QuantitySubQuotaSold(CORN) <= +inf
- 0 <= QuantitySubQuotaSold(SUGAR_BEETS) <= +inf
- 0 <= QuantitySubQuotaSold(WHEAT) <= +inf
- 0 <= QuantitySuperQuotaSold(CORN) <= +inf
- 0 <= QuantitySuperQuotaSold(SUGAR_BEETS) <= +inf
- 0 <= QuantitySuperQuotaSold(WHEAT) <= +inf
- 0 <= QuantityPurchased(CORN) <= +inf
- 0 <= QuantityPurchased(SUGAR_BEETS) <= +inf
- 0 <= QuantityPurchased(WHEAT) <= +inf
- -inf <= FirstStageCost <= +inf
- -inf <= SecondStageCost <= +inf
-general
- DevotedAcreage(CORN)__DDSIP_FIRSTSTAGE
- DevotedAcreage(SUGAR_BEETS)__DDSIP_FIRSTSTAGE
- DevotedAcreage(WHEAT)__DDSIP_FIRSTSTAGE
-end
diff --git a/pyomo/pysp/tests/convert/ddsip_baselines/farmer_baseline/core.lp.symbols b/pyomo/pysp/tests/convert/ddsip_baselines/farmer_baseline/core.lp.symbols
deleted file mode 100644
index 38d17b48c19..00000000000
--- a/pyomo/pysp/tests/convert/ddsip_baselines/farmer_baseline/core.lp.symbols
+++ /dev/null
@@ -1,3 +0,0 @@
-DevotedAcreage(CORN)__DDSIP_FIRSTSTAGE DevotedAcreage:$CORN
-DevotedAcreage(SUGAR_BEETS)__DDSIP_FIRSTSTAGE DevotedAcreage:$SUGAR_BEETS
-DevotedAcreage(WHEAT)__DDSIP_FIRSTSTAGE DevotedAcreage:$WHEAT
diff --git a/pyomo/pysp/tests/convert/ddsip_baselines/farmer_baseline/ddsip.config b/pyomo/pysp/tests/convert/ddsip_baselines/farmer_baseline/ddsip.config
deleted file mode 100644
index 46b71319aa4..00000000000
--- a/pyomo/pysp/tests/convert/ddsip_baselines/farmer_baseline/ddsip.config
+++ /dev/null
@@ -1,15 +0,0 @@
-BEGIN
-
-
-FIRSTCON 1
-FIRSTVAR 3
-SECCON 15
-SECVAR 12
-POSTFIX __DDSIP_FIRSTSTAGE
-SCENAR 3
-STOCRHS 0
-STOCCOST 0
-STOCMAT 6
-
-
-END
diff --git a/pyomo/pysp/tests/convert/ddsip_baselines/farmer_baseline/ddsip.stdin b/pyomo/pysp/tests/convert/ddsip_baselines/farmer_baseline/ddsip.stdin
deleted file mode 100644
index a424b904c19..00000000000
--- a/pyomo/pysp/tests/convert/ddsip_baselines/farmer_baseline/ddsip.stdin
+++ /dev/null
@@ -1,4 +0,0 @@
-core.lp
-ddsip.config
-rhs.sc
-matrix.sc
diff --git a/pyomo/pysp/tests/convert/ddsip_baselines/farmer_baseline/matrix.sc b/pyomo/pysp/tests/convert/ddsip_baselines/farmer_baseline/matrix.sc
deleted file mode 100644
index 41431084883..00000000000
--- a/pyomo/pysp/tests/convert/ddsip_baselines/farmer_baseline/matrix.sc
+++ /dev/null
@@ -1,28 +0,0 @@
-Names
- c_l_EnforceCattleFeedRequirement(CORN)_ DevotedAcreage(CORN)__DDSIP_FIRSTSTAGE
- c_l_EnforceCattleFeedRequirement(SUGAR_BEETS)_ DevotedAcreage(SUGAR_BEETS)__DDSIP_FIRSTSTAGE
- c_l_EnforceCattleFeedRequirement(WHEAT)_ DevotedAcreage(WHEAT)__DDSIP_FIRSTSTAGE
- c_u_LimitAmountSold(CORN)_ DevotedAcreage(CORN)__DDSIP_FIRSTSTAGE
- c_u_LimitAmountSold(SUGAR_BEETS)_ DevotedAcreage(SUGAR_BEETS)__DDSIP_FIRSTSTAGE
- c_u_LimitAmountSold(WHEAT)_ DevotedAcreage(WHEAT)__DDSIP_FIRSTSTAGE
-scen
- 2.3999999999999999
- 16
- 2
- -2.3999999999999999
- -16
- -2
-scen
- 3
- 20
- 2.5
- -3
- -20
- -2.5
-scen
- 3.6000000000000001
- 24
- 3
- -3.6000000000000001
- -24
- -3
diff --git a/pyomo/pysp/tests/convert/ddsip_baselines/farmer_baseline/rhs.sc b/pyomo/pysp/tests/convert/ddsip_baselines/farmer_baseline/rhs.sc
deleted file mode 100644
index 7ee4e5896a0..00000000000
--- a/pyomo/pysp/tests/convert/ddsip_baselines/farmer_baseline/rhs.sc
+++ /dev/null
@@ -1,6 +0,0 @@
-scen
-0.33333332999999998
-scen
-0.33333333999999998
-scen
-0.33333332999999998
diff --git a/pyomo/pysp/tests/convert/ddsip_baselines/piecewise_baseline/core.lp b/pyomo/pysp/tests/convert/ddsip_baselines/piecewise_baseline/core.lp
deleted file mode 100644
index e77e7a7867f..00000000000
--- a/pyomo/pysp/tests/convert/ddsip_baselines/piecewise_baseline/core.lp
+++ /dev/null
@@ -1,148 +0,0 @@
-\* Source Pyomo model name=Scenario1 *\
-
-min
-o:
-+1 fx
--1 fz
-+1 r
-+0 ONE_VAR_CONSTANT
-
-s.t.
-
-c_l_c_first_stage_:
-+1 x__DDSIP_FIRSTSTAGE
->= 0
-
-c_e_p_first_stage_INC_constraint1_:
-+1 x__DDSIP_FIRSTSTAGE
--2 p_first_stage_INC_delta(1)
--3 p_first_stage_INC_delta(2)
--2 p_first_stage_INC_delta(3)
--3 p_first_stage_INC_delta(4)
-= 0
-
-c_e_p_first_stage_INC_constraint2_:
-+1 fx
-+1 p_first_stage_INC_delta(2)
--1 p_first_stage_INC_delta(3)
-= 10
-
-c_e_p_second_stage(1)_INC_constraint1_:
--5 p_second_stage(1)_INC_delta(1)
--5 p_second_stage(1)_INC_delta(2)
--5 p_second_stage(1)_INC_delta(3)
--5 p_second_stage(1)_INC_delta(4)
-+1 z
-= -10
-
-c_e_p_second_stage(1)_INC_constraint2_:
-+1 fz
-+1 p_second_stage(1)_INC_delta(2)
--3 p_second_stage(1)_INC_delta(3)
-+1 p_second_stage(1)_INC_delta(4)
-= 0
-
-c_l_c_second_stage_:
-+1 x__DDSIP_FIRSTSTAGE
-+0 r
->= -100
-
-c_u_p_first_stage_INC_constraint3(1)_:
--1 p_first_stage_INC_bin_y(1)
-+1 p_first_stage_INC_delta(2)
-<= 0
-
-c_u_p_first_stage_INC_constraint3(2)_:
--1 p_first_stage_INC_bin_y(2)
-+1 p_first_stage_INC_delta(3)
-<= 0
-
-c_u_p_first_stage_INC_constraint3(3)_:
--1 p_first_stage_INC_bin_y(3)
-+1 p_first_stage_INC_delta(4)
-<= 0
-
-c_u_p_first_stage_INC_constraint4(1)_:
-+1 p_first_stage_INC_bin_y(1)
--1 p_first_stage_INC_delta(1)
-<= 0
-
-c_u_p_first_stage_INC_constraint4(2)_:
-+1 p_first_stage_INC_bin_y(2)
--1 p_first_stage_INC_delta(2)
-<= 0
-
-c_u_p_first_stage_INC_constraint4(3)_:
-+1 p_first_stage_INC_bin_y(3)
--1 p_first_stage_INC_delta(3)
-<= 0
-
-c_u_p_second_stage(1)_INC_constraint3(1)_:
--1 p_second_stage(1)_INC_bin_y(1)
-+1 p_second_stage(1)_INC_delta(2)
-<= 0
-
-c_u_p_second_stage(1)_INC_constraint3(2)_:
--1 p_second_stage(1)_INC_bin_y(2)
-+1 p_second_stage(1)_INC_delta(3)
-<= 0
-
-c_u_p_second_stage(1)_INC_constraint3(3)_:
--1 p_second_stage(1)_INC_bin_y(3)
-+1 p_second_stage(1)_INC_delta(4)
-<= 0
-
-c_u_p_second_stage(1)_INC_constraint4(1)_:
-+1 p_second_stage(1)_INC_bin_y(1)
--1 p_second_stage(1)_INC_delta(1)
-<= 0
-
-c_u_p_second_stage(1)_INC_constraint4(2)_:
-+1 p_second_stage(1)_INC_bin_y(2)
--1 p_second_stage(1)_INC_delta(2)
-<= 0
-
-c_u_p_second_stage(1)_INC_constraint4(3)_:
-+1 p_second_stage(1)_INC_bin_y(3)
--1 p_second_stage(1)_INC_delta(3)
-<= 0
-
-r_l_r_second_stage_:
-+1 r
->= 0
-
-r_u_r_second_stage_:
-+1 r
-<= 0
-
-c_e_ONE_VAR_CONSTANT:
-ONE_VAR_CONSTANT = 1.0
-
-bounds
- 0 <= x__DDSIP_FIRSTSTAGE <= 10
- -inf <= fx <= +inf
- -10 <= z <= 10
- -inf <= fz <= +inf
- -inf <= r <= +inf
- -inf <= p_first_stage_INC_delta(1) <= 1
- -inf <= p_first_stage_INC_delta(2) <= +inf
- -inf <= p_first_stage_INC_delta(3) <= +inf
- 0 <= p_first_stage_INC_delta(4) <= +inf
- 0 <= p_first_stage_INC_bin_y(1) <= 1
- 0 <= p_first_stage_INC_bin_y(2) <= 1
- 0 <= p_first_stage_INC_bin_y(3) <= 1
- -inf <= p_second_stage(1)_INC_delta(1) <= 1
- -inf <= p_second_stage(1)_INC_delta(2) <= +inf
- -inf <= p_second_stage(1)_INC_delta(3) <= +inf
- 0 <= p_second_stage(1)_INC_delta(4) <= +inf
- 0 <= p_second_stage(1)_INC_bin_y(1) <= 1
- 0 <= p_second_stage(1)_INC_bin_y(2) <= 1
- 0 <= p_second_stage(1)_INC_bin_y(3) <= 1
-binary
- p_first_stage_INC_bin_y(1)
- p_first_stage_INC_bin_y(2)
- p_first_stage_INC_bin_y(3)
- p_second_stage(1)_INC_bin_y(1)
- p_second_stage(1)_INC_bin_y(2)
- p_second_stage(1)_INC_bin_y(3)
-end
diff --git a/pyomo/pysp/tests/convert/ddsip_baselines/piecewise_baseline/core.lp.symbols b/pyomo/pysp/tests/convert/ddsip_baselines/piecewise_baseline/core.lp.symbols
deleted file mode 100644
index 4a5cfb79b7e..00000000000
--- a/pyomo/pysp/tests/convert/ddsip_baselines/piecewise_baseline/core.lp.symbols
+++ /dev/null
@@ -1,9 +0,0 @@
-fx fx
-p_first_stage_INC_bin_y(1) p_first_stage.INC_bin_y:#1
-p_first_stage_INC_bin_y(2) p_first_stage.INC_bin_y:#2
-p_first_stage_INC_bin_y(3) p_first_stage.INC_bin_y:#3
-p_first_stage_INC_delta(1) p_first_stage.INC_delta:#1
-p_first_stage_INC_delta(2) p_first_stage.INC_delta:#2
-p_first_stage_INC_delta(3) p_first_stage.INC_delta:#3
-p_first_stage_INC_delta(4) p_first_stage.INC_delta:#4
-x__DDSIP_FIRSTSTAGE x
diff --git a/pyomo/pysp/tests/convert/ddsip_baselines/piecewise_baseline/cost.sc b/pyomo/pysp/tests/convert/ddsip_baselines/piecewise_baseline/cost.sc
deleted file mode 100644
index f1de8090c28..00000000000
--- a/pyomo/pysp/tests/convert/ddsip_baselines/piecewise_baseline/cost.sc
+++ /dev/null
@@ -1,20 +0,0 @@
-Names
- fx
- fz
- r
- ONE_VAR_CONSTANT
-scen
- 1
- -1
- 1
- 0
-scen
- 1
- -1
- 1
- -1
-scen
- 1
- -1
- 1
- -2
diff --git a/pyomo/pysp/tests/convert/ddsip_baselines/piecewise_baseline/ddsip.config b/pyomo/pysp/tests/convert/ddsip_baselines/piecewise_baseline/ddsip.config
deleted file mode 100644
index 07572e6b22c..00000000000
--- a/pyomo/pysp/tests/convert/ddsip_baselines/piecewise_baseline/ddsip.config
+++ /dev/null
@@ -1,15 +0,0 @@
-BEGIN
-
-
-FIRSTCON 1
-FIRSTVAR 1
-SECCON 20
-SECVAR 19
-POSTFIX __DDSIP_FIRSTSTAGE
-SCENAR 3
-STOCRHS 10
-STOCCOST 4
-STOCMAT 22
-
-
-END
diff --git a/pyomo/pysp/tests/convert/ddsip_baselines/piecewise_baseline/ddsip.stdin b/pyomo/pysp/tests/convert/ddsip_baselines/piecewise_baseline/ddsip.stdin
deleted file mode 100644
index c9091688018..00000000000
--- a/pyomo/pysp/tests/convert/ddsip_baselines/piecewise_baseline/ddsip.stdin
+++ /dev/null
@@ -1,5 +0,0 @@
-core.lp
-ddsip.config
-rhs.sc
-cost.sc
-matrix.sc
diff --git a/pyomo/pysp/tests/convert/ddsip_baselines/piecewise_baseline/matrix.sc b/pyomo/pysp/tests/convert/ddsip_baselines/piecewise_baseline/matrix.sc
deleted file mode 100644
index 16f9d13ff49..00000000000
--- a/pyomo/pysp/tests/convert/ddsip_baselines/piecewise_baseline/matrix.sc
+++ /dev/null
@@ -1,92 +0,0 @@
-Names
- c_l_c_second_stage_ r
- c_e_p_second_stage(1)_INC_constraint1_ p_second_stage(1)_INC_delta(1)
- c_e_p_second_stage(1)_INC_constraint1_ p_second_stage(1)_INC_delta(2)
- c_e_p_second_stage(1)_INC_constraint1_ p_second_stage(1)_INC_delta(3)
- c_e_p_second_stage(1)_INC_constraint1_ p_second_stage(1)_INC_delta(4)
- c_e_p_second_stage(1)_INC_constraint1_ z
- c_e_p_second_stage(1)_INC_constraint2_ fz
- c_e_p_second_stage(1)_INC_constraint2_ p_second_stage(1)_INC_delta(2)
- c_e_p_second_stage(1)_INC_constraint2_ p_second_stage(1)_INC_delta(3)
- c_e_p_second_stage(1)_INC_constraint2_ p_second_stage(1)_INC_delta(4)
- c_u_p_second_stage(1)_INC_constraint3(1)_ p_second_stage(1)_INC_bin_y(1)
- c_u_p_second_stage(1)_INC_constraint3(1)_ p_second_stage(1)_INC_delta(2)
- c_u_p_second_stage(1)_INC_constraint3(2)_ p_second_stage(1)_INC_bin_y(2)
- c_u_p_second_stage(1)_INC_constraint3(2)_ p_second_stage(1)_INC_delta(3)
- c_u_p_second_stage(1)_INC_constraint3(3)_ p_second_stage(1)_INC_bin_y(3)
- c_u_p_second_stage(1)_INC_constraint3(3)_ p_second_stage(1)_INC_delta(4)
- c_u_p_second_stage(1)_INC_constraint4(1)_ p_second_stage(1)_INC_bin_y(1)
- c_u_p_second_stage(1)_INC_constraint4(1)_ p_second_stage(1)_INC_delta(1)
- c_u_p_second_stage(1)_INC_constraint4(2)_ p_second_stage(1)_INC_bin_y(2)
- c_u_p_second_stage(1)_INC_constraint4(2)_ p_second_stage(1)_INC_delta(2)
- c_u_p_second_stage(1)_INC_constraint4(3)_ p_second_stage(1)_INC_bin_y(3)
- c_u_p_second_stage(1)_INC_constraint4(3)_ p_second_stage(1)_INC_delta(3)
-scen
- 0
- -5
- -5
- -5
- -5
- 1
- 1
- 1
- -3
- 1
- -1
- 1
- -1
- 1
- -1
- 1
- 1
- -1
- 1
- -1
- 1
- -1
-scen
- 1
- -5
- -5
- -5
- -5
- 1
- 1
- 1
- -4
- 2
- -1
- 1
- -1
- 1
- -1
- 1
- 1
- -1
- 1
- -1
- 1
- -1
-scen
- 2
- -5
- -5
- -5
- -5
- 1
- 1
- 1
- -5
- 3
- -1
- 1
- -1
- 1
- -1
- 1
- 1
- -1
- 1
- -1
- 1
- -1
diff --git a/pyomo/pysp/tests/convert/ddsip_baselines/piecewise_baseline/rhs.sc b/pyomo/pysp/tests/convert/ddsip_baselines/piecewise_baseline/rhs.sc
deleted file mode 100644
index e1c69bc8527..00000000000
--- a/pyomo/pysp/tests/convert/ddsip_baselines/piecewise_baseline/rhs.sc
+++ /dev/null
@@ -1,47 +0,0 @@
-Names
- c_e_p_second_stage(1)_INC_constraint1_
- c_e_p_second_stage(1)_INC_constraint2_
- c_u_p_second_stage(1)_INC_constraint3(1)_
- c_u_p_second_stage(1)_INC_constraint3(2)_
- c_u_p_second_stage(1)_INC_constraint3(3)_
- c_u_p_second_stage(1)_INC_constraint4(1)_
- c_u_p_second_stage(1)_INC_constraint4(2)_
- c_u_p_second_stage(1)_INC_constraint4(3)_
- r_l_r_second_stage_
- r_u_r_second_stage_
-scen
-0.33333333329999998
- -10
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
-scen
-0.33333333329999998
- -10
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- -1
- 0
-scen
-0.33333333329999998
- -10
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- -2
- 0
diff --git a/pyomo/pysp/tests/convert/model_bad_component_type.py b/pyomo/pysp/tests/convert/model_bad_component_type.py
deleted file mode 100644
index a2b0151f197..00000000000
--- a/pyomo/pysp/tests/convert/model_bad_component_type.py
+++ /dev/null
@@ -1,17 +0,0 @@
-#
-# a model that declares the wrong component type
-# within an annotation
-#
-from pyomo.pysp.tests.convert.utils import *
-
-pysp_scenario_tree_model_callback = \
- simple_twostage_scenario_tree
-
-def pysp_instance_creation_callback(scenario_name, node_names):
- model = simple_twostage_model()
- assert model.find_component("b") is None
- model.b = Block()
- model.b.c = Constraint(expr=model.y == 1)
- model.smat = StochasticConstraintBodyAnnotation()
- model.smat.declare(model.o)
- return model
diff --git a/pyomo/pysp/tests/convert/model_bad_constraint_rhs.py b/pyomo/pysp/tests/convert/model_bad_constraint_rhs.py
deleted file mode 100644
index d459ae9f099..00000000000
--- a/pyomo/pysp/tests/convert/model_bad_constraint_rhs.py
+++ /dev/null
@@ -1,20 +0,0 @@
-#
-# a model that is missing a declaration of
-# a stochastic constraint rhs
-#
-from pyomo.pysp.tests.convert.utils import *
-
-pysp_scenario_tree_model_callback = \
- simple_twostage_scenario_tree
-
-def pysp_instance_creation_callback(scenario_name, node_names):
- model = simple_twostage_model()
- if scenario_name == "Scenario1":
- model.cc = Constraint(expr=inequality(0, model.x + model.y, 1))
- elif scenario_name == "Scenario2":
- model.cc = Constraint(expr=inequality(0, model.x + model.y, 2))
- else:
- assert False
- model.smat = StochasticConstraintBoundsAnnotation()
- model.smat.declare(model.cc, lb=True, ub=False)
- return model
diff --git a/pyomo/pysp/tests/convert/model_bad_constraint_var.py b/pyomo/pysp/tests/convert/model_bad_constraint_var.py
deleted file mode 100644
index f7069f55b21..00000000000
--- a/pyomo/pysp/tests/convert/model_bad_constraint_var.py
+++ /dev/null
@@ -1,21 +0,0 @@
-#
-# a model that is missing a declaration of
-# a stochastic constraint variable
-#
-from pyomo.pysp.tests.convert.utils import *
-
-pysp_scenario_tree_model_callback = \
- simple_twostage_scenario_tree
-
-def pysp_instance_creation_callback(scenario_name, node_names):
- model = simple_twostage_model()
- if scenario_name == "Scenario1":
- model.cc = Constraint(expr=model.x + 2*model.y >= 1)
- elif scenario_name == "Scenario2":
- model.cc = Constraint(expr=model.x + 3*model.y >= 1)
- else:
- assert False
- model.smat = StochasticConstraintBodyAnnotation()
- model.smat.declare(model.cc,
- variables=(model.x,))
- return model
diff --git a/pyomo/pysp/tests/convert/model_bad_objective_constant.py b/pyomo/pysp/tests/convert/model_bad_objective_constant.py
deleted file mode 100644
index 8a32d9ddeed..00000000000
--- a/pyomo/pysp/tests/convert/model_bad_objective_constant.py
+++ /dev/null
@@ -1,20 +0,0 @@
-#
-# a model that is missing a declaration of
-# a stochastic objective constant
-#
-from pyomo.pysp.tests.convert.utils import *
-
-pysp_scenario_tree_model_callback = \
- simple_twostage_scenario_tree
-
-def pysp_instance_creation_callback(scenario_name, node_names):
- model = simple_twostage_model()
- model.sobj = StochasticObjectiveAnnotation()
- model.sobj.declare(model.o, include_constant=False)
- if scenario_name == "Scenario1":
- model.o.expr = model.o.expr + 0
- elif scenario_name == "Scenario2":
- model.o.expr = model.o.expr + 1
- else:
- assert False
- return model
diff --git a/pyomo/pysp/tests/convert/model_bad_objective_var.py b/pyomo/pysp/tests/convert/model_bad_objective_var.py
deleted file mode 100644
index 23f70b2aeb9..00000000000
--- a/pyomo/pysp/tests/convert/model_bad_objective_var.py
+++ /dev/null
@@ -1,21 +0,0 @@
-#
-# a model that is missing a declaration of
-# a stochastic objective variable
-#
-from pyomo.pysp.tests.convert.utils import *
-
-pysp_scenario_tree_model_callback = \
- simple_twostage_scenario_tree
-
-def pysp_instance_creation_callback(scenario_name, node_names):
- model = simple_twostage_model()
- model.sobj = StochasticObjectiveAnnotation()
- model.sobj.declare(model.o,
- variables=(model.y,))
- if scenario_name == "Scenario1":
- model.StageCost[1].set_value(model.x * 1)
- elif scenario_name == "Scenario2":
- model.StageCost[1].set_value(model.x * 2)
- else:
- assert False
- return model
diff --git a/pyomo/pysp/tests/convert/model_bad_variable_bounds.py b/pyomo/pysp/tests/convert/model_bad_variable_bounds.py
deleted file mode 100644
index ed661212904..00000000000
--- a/pyomo/pysp/tests/convert/model_bad_variable_bounds.py
+++ /dev/null
@@ -1,23 +0,0 @@
-#
-# a model with stochastic variable bounds
-#
-# these can not be annotated so they must be
-# moved to a constraint
-#
-from pyomo.pysp.tests.convert.utils import *
-
-pysp_scenario_tree_model_callback = \
- simple_twostage_scenario_tree
-
-def pysp_instance_creation_callback(scenario_name, node_names):
- model = simple_twostage_model()
- model.srhs = StochasticConstraintBoundsAnnotation()
- model.smat = StochasticConstraintBodyAnnotation()
- model.sobj = StochasticObjectiveAnnotation()
- if scenario_name == "Scenario1":
- model.x.setlb(0)
- elif scenario_name == "Scenario2":
- model.x.setlb(1)
- else:
- assert False
- return model
diff --git a/pyomo/pysp/tests/convert/model_too_many_declarations.py b/pyomo/pysp/tests/convert/model_too_many_declarations.py
deleted file mode 100644
index 8688eebf6a9..00000000000
--- a/pyomo/pysp/tests/convert/model_too_many_declarations.py
+++ /dev/null
@@ -1,18 +0,0 @@
-#
-# a model that declares a component within an annotation
-# too many times
-#
-from pyomo.pysp.tests.convert.utils import *
-
-pysp_scenario_tree_model_callback = \
- simple_twostage_scenario_tree
-
-def pysp_instance_creation_callback(scenario_name, node_names):
- model = simple_twostage_model()
- assert model.find_component("b") is None
- model.b = Block()
- model.b.c = Constraint(expr=model.y == 1)
- model.smat = StochasticConstraintBodyAnnotation()
- model.smat.declare(model.b)
- model.smat.declare(model.b.c)
- return model
diff --git a/pyomo/pysp/tests/convert/model_unsupported_variable_bounds.py b/pyomo/pysp/tests/convert/model_unsupported_variable_bounds.py
deleted file mode 100644
index cf6a66ae35c..00000000000
--- a/pyomo/pysp/tests/convert/model_unsupported_variable_bounds.py
+++ /dev/null
@@ -1,13 +0,0 @@
-#
-# a model that declares the wrong component type
-# within an annotation
-#
-from pyomo.pysp.tests.convert.utils import *
-
-pysp_scenario_tree_model_callback = \
- simple_twostage_scenario_tree
-
-def pysp_instance_creation_callback(scenario_name, node_names):
- model = simple_twostage_model()
- model.svb = StochasticVariableBoundsAnnotation()
- return model
diff --git a/pyomo/pysp/tests/convert/piecewise_model.py b/pyomo/pysp/tests/convert/piecewise_model.py
deleted file mode 100644
index 15612776f02..00000000000
--- a/pyomo/pysp/tests/convert/piecewise_model.py
+++ /dev/null
@@ -1,90 +0,0 @@
-# ___________________________________________________________________________
-#
-# Pyomo: Python Optimization Modeling Objects
-# Copyright 2017 National Technology and Engineering Solutions of Sandia, LLC
-# Under the terms of Contract DE-NA0003525 with National Technology and
-# Engineering Solutions of Sandia, LLC, the U.S. Government retains certain
-# rights in this software.
-# This software is distributed under the 3-clause BSD License.
-# ___________________________________________________________________________
-
-from pyomo.core import ConcreteModel, Var, Param, Expression, Objective, Constraint, Piecewise, sum_product, inequality
-from pyomo.pysp.annotations import (StochasticConstraintBoundsAnnotation,
- StochasticConstraintBodyAnnotation,
- StochasticObjectiveAnnotation)
-
-d = {}
-d['Scenario1'] = 0
-d['Scenario2'] = 1
-d['Scenario3'] = 2
-def create_instance(scenario_name):
- cnt = d[scenario_name]
-
- model = ConcreteModel()
- # first stage
- model.x = Var(bounds=(0,10))
- # first stage derived
- model.y = Expression(expr=model.x + 1)
- model.fx = Var()
- # second stage
- model.z = Var(bounds=(-10, 10))
- # second stage derived
- model.q = Expression(expr=model.z**2)
- model.fz = Var()
- model.r = Var()
- # stage costs
- model.StageCost = Expression([1,2])
- model.StageCost.add(1, model.fx)
- model.StageCost.add(2, -model.fz + model.r - cnt)
- model.o = Objective(expr=sum_product(model.StageCost))
-
- model.ZERO = Param(initialize=0, mutable=True)
- if cnt == 0:
- cnt = model.ZERO
-
- model.c_first_stage = Constraint(expr= model.x >= 0)
-
- # test our handling of intermediate variables that
- # are created by Piecewise but can not necessarily
- # be declared on the scenario tree
- model.p_first_stage = Piecewise(model.fx, model.x,
- pw_pts=[0.,2.,5.,7.,10.],
- pw_constr_type='EQ',
- pw_repn='INC',
- f_rule=[10.,10.,9.,10.,10.],
- force_pw=True)
-
- model.c_second_stage = Constraint(expr= model.x + model.r * cnt >= -100)
- model.r_second_stage = Constraint(expr= inequality(-cnt, model.r, 0))
- # exercise more of the code by making this an indexed
- # block
- model.p_second_stage = Piecewise([1], model.fz, model.z,
- pw_pts=[-10,-5.,0.,5.,10.],
- pw_constr_type='EQ',
- pw_repn='INC',
- f_rule=[0.,0.,-1.,2.+cnt,1.],
- force_pw=True)
-
- return model
-
-def pysp_instance_creation_callback(scenario_name, node_names):
-
- model = create_instance(scenario_name)
-
- #
- # SMPS Related Annotations
- #
- model.stoch_rhs = StochasticConstraintBoundsAnnotation()
- # declarations can be blocks to imply that all
- # components (Constraints in this case) should be
- # considered on that block
- model.stoch_rhs.declare(model.p_second_stage)
- model.stoch_rhs.declare(model.r_second_stage)
- model.stoch_matrix = StochasticConstraintBodyAnnotation()
- # exercise more of the code by testing this with an
- # indexed block and a single block
- model.stoch_matrix.declare(model.c_second_stage, variables=[model.r])
- model.stoch_matrix.declare(model.p_second_stage[1])
- model.stoch_objective = StochasticObjectiveAnnotation()
-
- return model
diff --git a/pyomo/pysp/tests/convert/piecewise_model_alt.py b/pyomo/pysp/tests/convert/piecewise_model_alt.py
deleted file mode 100644
index 115d4710b78..00000000000
--- a/pyomo/pysp/tests/convert/piecewise_model_alt.py
+++ /dev/null
@@ -1,40 +0,0 @@
-# ___________________________________________________________________________
-#
-# Pyomo: Python Optimization Modeling Objects
-# Copyright 2017 National Technology and Engineering Solutions of Sandia, LLC
-# Under the terms of Contract DE-NA0003525 with National Technology and
-# Engineering Solutions of Sandia, LLC, the U.S. Government retains certain
-# rights in this software.
-# This software is distributed under the 3-clause BSD License.
-# ___________________________________________________________________________
-
-from pyomo.core import Constraint
-from pyomo.pysp.annotations import (StochasticConstraintBoundsAnnotation,
- StochasticConstraintBodyAnnotation,
- StochasticObjectiveAnnotation)
-
-from piecewise_model import create_instance
-
-def pysp_instance_creation_callback(scenario_name, node_names):
-
- model = create_instance(scenario_name)
-
- #
- # SMPS Related Annotations
- #
- model.stoch_rhs = StochasticConstraintBoundsAnnotation()
- for con in model.p_second_stage[1].component_data_objects(
- Constraint,
- active=True):
- model.stoch_rhs.declare(con)
- model.stoch_rhs.declare(model.r_second_stage)
- model.stoch_matrix = StochasticConstraintBodyAnnotation()
- # exercise more of the code by testing this with an
- # indexed block and a single block
- model.stoch_matrix.declare(model.c_second_stage, variables=[model.r])
- model.stoch_matrix.declare(model.p_second_stage[1])
-
- model.stoch_objective = StochasticObjectiveAnnotation()
- model.stoch_objective.declare(model.o)
-
- return model
diff --git a/pyomo/pysp/tests/convert/piecewise_model_embedded.py b/pyomo/pysp/tests/convert/piecewise_model_embedded.py
deleted file mode 100644
index ae3fc4f6266..00000000000
--- a/pyomo/pysp/tests/convert/piecewise_model_embedded.py
+++ /dev/null
@@ -1,99 +0,0 @@
-# ___________________________________________________________________________
-#
-# Pyomo: Python Optimization Modeling Objects
-# Copyright 2017 National Technology and Engineering Solutions of Sandia, LLC
-# Under the terms of Contract DE-NA0003525 with National Technology and
-# Engineering Solutions of Sandia, LLC, the U.S. Government retains certain
-# rights in this software.
-# This software is distributed under the 3-clause BSD License.
-# ___________________________________________________________________________
-
-import pyomo.environ as pyo
-from pyomo.pysp.embeddedsp import (EmbeddedSP,
- StochasticDataAnnotation,
- TableDistribution,
- StageCostAnnotation,
- VariableStageAnnotation)
-
-def create_embedded():
-
- model = pyo.ConcreteModel()
- model.d1 = pyo.Param(mutable=True, initialize=0)
- model.d2 = pyo.Param(mutable=True, initialize=0)
- model.d3 = pyo.Param(mutable=True, initialize=0)
- model.d4 = pyo.Param(mutable=True, initialize=0)
- # first stage
- model.x = pyo.Var(bounds=(0,10))
- # first stage derived
- model.y = pyo.Expression(expr=model.x + 1)
- model.fx = pyo.Var()
- # second stage
- model.z = pyo.Var(bounds=(-10, 10))
- # second stage derived
- model.q = pyo.Expression(expr=model.z**2)
- model.fz = pyo.Var()
- model.r = pyo.Var()
- # stage costs
- model.StageCost = pyo.Expression([1,2])
- model.StageCost.add(1, model.fx)
- model.StageCost.add(2, -model.fz + model.r + model.d1)
- model.o = pyo.Objective(expr=pyo.sum_product(model.StageCost))
-
- model.c_first_stage = pyo.Constraint(expr= model.x >= 0)
-
- # test our handling of intermediate variables that
- # are created by Piecewise but can not necessarily
- # be declared on the scenario tree
- model.p_first_stage = pyo.Piecewise(model.fx, model.x,
- pw_pts=[0.,2.,5.,7.,10.],
- pw_constr_type='EQ',
- pw_repn='INC',
- f_rule=[10.,10.,9.,10.,10.],
- force_pw=True)
-
- model.c_second_stage = pyo.Constraint(expr= model.x + model.r * model.d2 >= -100)
- model.cL_second_stage = pyo.Constraint(expr= model.d3 >= -model.r)
- model.cU_second_stage = pyo.Constraint(expr= model.r <= 0)
-
- # exercise more of the code by making this an indexed
- # block
- model.p_second_stage = pyo.Piecewise([1], model.fz, model.z,
- pw_pts=[-10,-5.,0.,5.,10.],
- pw_constr_type='EQ',
- pw_repn='INC',
- f_rule=[0.,0.,-1.,model.d4,1.],
- force_pw=True)
-
- # annotate the model
- model.varstage = VariableStageAnnotation()
- # first stage
- model.varstage.declare(model.x, 1)
- model.varstage.declare(model.y, 1, derived=True)
- model.varstage.declare(model.fx, 1, derived=True)
- model.varstage.declare(model.p_first_stage, 1, derived=True)
- # second stage
- model.varstage.declare(model.z, 2)
- model.varstage.declare(model.q, 2, derived=True)
- model.varstage.declare(model.fz, 2, derived=True)
- model.varstage.declare(model.r, 2, derived=True)
- model.varstage.declare(model.p_second_stage, 2, derived=True)
-
- model.stagecost = StageCostAnnotation()
- for i in [1,2]:
- model.stagecost.declare(model.StageCost[i], i)
-
- model.stochdata = StochasticDataAnnotation()
- model.stochdata.declare(
- model.d1,
- distribution=TableDistribution([0.0,1.0,2.0]))
- model.stochdata.declare(
- model.d2,
- distribution=TableDistribution([0.0,1.0,2.0]))
- model.stochdata.declare(
- model.d3,
- distribution=TableDistribution([0.0,1.0,2.0]))
- model.stochdata.declare(
- model.d4,
- distribution=TableDistribution([0.0,1.0,2.0]))
-
- return EmbeddedSP(model)
diff --git a/pyomo/pysp/tests/convert/piecewise_scenario_tree.py b/pyomo/pysp/tests/convert/piecewise_scenario_tree.py
deleted file mode 100644
index 21183814d5f..00000000000
--- a/pyomo/pysp/tests/convert/piecewise_scenario_tree.py
+++ /dev/null
@@ -1,28 +0,0 @@
-from pyomo.pysp.scenariotree.tree_structure_model import \
- CreateConcreteTwoStageScenarioTreeModel
-
-model = CreateConcreteTwoStageScenarioTreeModel(3)
-
-#### helps with testing across python versions
-for key in model.ConditionalProbability:
- if key != "RootNode":
- model.ConditionalProbability[key] = 0.3333333333
-#####
-
-first_stage = model.Stages.first()
-second_stage = model.Stages.last()
-
-# First Stage
-model.StageCost[first_stage] = 'StageCost[1]'
-model.StageVariables[first_stage].add('x')
-model.StageDerivedVariables[first_stage].add('y')
-model.StageDerivedVariables[first_stage].add('fx')
-model.StageDerivedVariables[first_stage].add('p_first_stage')
-
-# Second Stage
-model.StageCost[second_stage] = 'StageCost[2]'
-model.StageVariables[second_stage].add('z')
-model.StageDerivedVariables[second_stage].add('q')
-model.StageDerivedVariables[second_stage].add('fz')
-model.StageDerivedVariables[second_stage].add('r')
-model.StageDerivedVariables[second_stage].add('p_second_stage')
diff --git a/pyomo/pysp/tests/convert/piecewise_scenario_tree_bundles.py b/pyomo/pysp/tests/convert/piecewise_scenario_tree_bundles.py
deleted file mode 100644
index 8b27ea08735..00000000000
--- a/pyomo/pysp/tests/convert/piecewise_scenario_tree_bundles.py
+++ /dev/null
@@ -1,9 +0,0 @@
-import piecewise_scenario_tree
-
-model = piecewise_scenario_tree.model.clone()
-model.Scenarios.pprint()
-model.Bundling = True
-model.Bundles.add("B1")
-model.BundleScenarios["B1"] = ["Scenario1", "Scenario2"]
-model.Bundles.add("B2")
-model.BundleScenarios["B2"] = ["Scenario3"]
diff --git a/pyomo/pysp/tests/convert/schuripopt_baselines/farmer_baseline/AboveAverageScenario.col b/pyomo/pysp/tests/convert/schuripopt_baselines/farmer_baseline/AboveAverageScenario.col
deleted file mode 100644
index c50b447b969..00000000000
--- a/pyomo/pysp/tests/convert/schuripopt_baselines/farmer_baseline/AboveAverageScenario.col
+++ /dev/null
@@ -1,12 +0,0 @@
-DevotedAcreage[CORN]
-DevotedAcreage[SUGAR_BEETS]
-DevotedAcreage[WHEAT]
-QuantitySubQuotaSold[CORN]
-QuantitySubQuotaSold[SUGAR_BEETS]
-QuantitySubQuotaSold[WHEAT]
-QuantitySuperQuotaSold[CORN]
-QuantitySuperQuotaSold[SUGAR_BEETS]
-QuantitySuperQuotaSold[WHEAT]
-QuantityPurchased[CORN]
-QuantityPurchased[SUGAR_BEETS]
-QuantityPurchased[WHEAT]
diff --git a/pyomo/pysp/tests/convert/schuripopt_baselines/farmer_baseline/AboveAverageScenario.nl b/pyomo/pysp/tests/convert/schuripopt_baselines/farmer_baseline/AboveAverageScenario.nl
deleted file mode 100644
index f1589edab7e..00000000000
--- a/pyomo/pysp/tests/convert/schuripopt_baselines/farmer_baseline/AboveAverageScenario.nl
+++ /dev/null
@@ -1,123 +0,0 @@
-g3 1 1 0 # problem AboveAverageScenario
- 12 10 1 3 0 # vars, constraints, objectives, ranges, eqns
- 0 0 0 0 0 0 # nonlinear constrs, objs; ccons: lin, nonlin, nd, nzlb
- 0 0 # network constraints: nonlinear, linear
- 0 0 0 # nonlinear vars in constraints, objectives, both
- 0 0 0 1 # linear network variables; functions; arith, flags
- 0 0 0 0 0 # discrete variables: binary, integer, nonlinear (b,c,o)
- 27 10 # nonzeros in Jacobian, obj. gradient
- 41 35 # max name lengths: constraints, variables
- 0 0 0 0 0 # common exprs: b,c,o,c1,o1
-S7 1 schurip_objective_weight
-0 0.33333333
-S0 3 schurip_variable_id
-0 2021786751
-1 1561833761
-2 1002958202
-C0 #ConstrainTotalAcreage
-n0
-C1 #EnforceCattleFeedRequirement[CORN]
-n0
-C2 #EnforceCattleFeedRequirement[SUGAR_BEETS]
-n0
-C3 #EnforceCattleFeedRequirement[WHEAT]
-n0
-C4 #LimitAmountSold[CORN]
-n0
-C5 #LimitAmountSold[SUGAR_BEETS]
-n0
-C6 #LimitAmountSold[WHEAT]
-n0
-C7 #EnforceQuotas[CORN]
-n0
-C8 #EnforceQuotas[SUGAR_BEETS]
-n0
-C9 #EnforceQuotas[WHEAT]
-n0
-O0 0 #Total_Cost_Objective
-n0
-x0 # initial guess
-r #10 ranges (rhs's)
-1 500
-2 240.0
-2 0.0
-2 200.0
-1 0.0
-1 0.0
-1 0.0
-0 0.0 100000.0
-0 0.0 6000.0
-0 0.0 100000.0
-b #12 bounds (on variables)
-0 0.0 500
-0 0.0 500
-0 0.0 500
-2 0.0
-2 0.0
-2 0.0
-2 0.0
-2 0.0
-2 0.0
-2 0.0
-2 0.0
-2 0.0
-k11 #intermediate Jacobian column lengths
-3
-6
-9
-12
-15
-18
-20
-22
-24
-25
-26
-J0 3
-0 1
-1 1
-2 1
-J1 4
-0 3.6
-3 -1
-6 -1
-9 1
-J2 4
-1 24
-4 -1
-7 -1
-10 1
-J3 4
-2 3.0
-5 -1
-8 -1
-11 1
-J4 3
-0 -3.6
-3 1
-6 1
-J5 3
-1 -24
-4 1
-7 1
-J6 3
-2 -3.0
-5 1
-8 1
-J7 1
-3 1
-J8 1
-4 1
-J9 1
-5 1
-G0 10
-0 230
-1 260
-2 150
-3 -150
-4 -36
-5 -170
-7 -10
-9 210
-10 100000
-11 238
diff --git a/pyomo/pysp/tests/convert/schuripopt_baselines/farmer_baseline/AboveAverageScenario.row b/pyomo/pysp/tests/convert/schuripopt_baselines/farmer_baseline/AboveAverageScenario.row
deleted file mode 100644
index ac818449b4c..00000000000
--- a/pyomo/pysp/tests/convert/schuripopt_baselines/farmer_baseline/AboveAverageScenario.row
+++ /dev/null
@@ -1,11 +0,0 @@
-ConstrainTotalAcreage
-EnforceCattleFeedRequirement[CORN]
-EnforceCattleFeedRequirement[SUGAR_BEETS]
-EnforceCattleFeedRequirement[WHEAT]
-LimitAmountSold[CORN]
-LimitAmountSold[SUGAR_BEETS]
-LimitAmountSold[WHEAT]
-EnforceQuotas[CORN]
-EnforceQuotas[SUGAR_BEETS]
-EnforceQuotas[WHEAT]
-Total_Cost_Objective
diff --git a/pyomo/pysp/tests/convert/schuripopt_baselines/farmer_baseline/AverageScenario.col b/pyomo/pysp/tests/convert/schuripopt_baselines/farmer_baseline/AverageScenario.col
deleted file mode 100644
index c50b447b969..00000000000
--- a/pyomo/pysp/tests/convert/schuripopt_baselines/farmer_baseline/AverageScenario.col
+++ /dev/null
@@ -1,12 +0,0 @@
-DevotedAcreage[CORN]
-DevotedAcreage[SUGAR_BEETS]
-DevotedAcreage[WHEAT]
-QuantitySubQuotaSold[CORN]
-QuantitySubQuotaSold[SUGAR_BEETS]
-QuantitySubQuotaSold[WHEAT]
-QuantitySuperQuotaSold[CORN]
-QuantitySuperQuotaSold[SUGAR_BEETS]
-QuantitySuperQuotaSold[WHEAT]
-QuantityPurchased[CORN]
-QuantityPurchased[SUGAR_BEETS]
-QuantityPurchased[WHEAT]
diff --git a/pyomo/pysp/tests/convert/schuripopt_baselines/farmer_baseline/AverageScenario.nl b/pyomo/pysp/tests/convert/schuripopt_baselines/farmer_baseline/AverageScenario.nl
deleted file mode 100644
index b4cc88ba33a..00000000000
--- a/pyomo/pysp/tests/convert/schuripopt_baselines/farmer_baseline/AverageScenario.nl
+++ /dev/null
@@ -1,123 +0,0 @@
-g3 1 1 0 # problem AverageScenario
- 12 10 1 3 0 # vars, constraints, objectives, ranges, eqns
- 0 0 0 0 0 0 # nonlinear constrs, objs; ccons: lin, nonlin, nd, nzlb
- 0 0 # network constraints: nonlinear, linear
- 0 0 0 # nonlinear vars in constraints, objectives, both
- 0 0 0 1 # linear network variables; functions; arith, flags
- 0 0 0 0 0 # discrete variables: binary, integer, nonlinear (b,c,o)
- 27 10 # nonzeros in Jacobian, obj. gradient
- 41 35 # max name lengths: constraints, variables
- 0 0 0 0 0 # common exprs: b,c,o,c1,o1
-S7 1 schurip_objective_weight
-0 0.33333334
-S0 3 schurip_variable_id
-0 2021786751
-1 1561833761
-2 1002958202
-C0 #ConstrainTotalAcreage
-n0
-C1 #EnforceCattleFeedRequirement[CORN]
-n0
-C2 #EnforceCattleFeedRequirement[SUGAR_BEETS]
-n0
-C3 #EnforceCattleFeedRequirement[WHEAT]
-n0
-C4 #LimitAmountSold[CORN]
-n0
-C5 #LimitAmountSold[SUGAR_BEETS]
-n0
-C6 #LimitAmountSold[WHEAT]
-n0
-C7 #EnforceQuotas[CORN]
-n0
-C8 #EnforceQuotas[SUGAR_BEETS]
-n0
-C9 #EnforceQuotas[WHEAT]
-n0
-O0 0 #Total_Cost_Objective
-n0
-x0 # initial guess
-r #10 ranges (rhs's)
-1 500
-2 240.0
-2 0.0
-2 200.0
-1 0.0
-1 0.0
-1 0.0
-0 0.0 100000.0
-0 0.0 6000.0
-0 0.0 100000.0
-b #12 bounds (on variables)
-0 0.0 500
-0 0.0 500
-0 0.0 500
-2 0.0
-2 0.0
-2 0.0
-2 0.0
-2 0.0
-2 0.0
-2 0.0
-2 0.0
-2 0.0
-k11 #intermediate Jacobian column lengths
-3
-6
-9
-12
-15
-18
-20
-22
-24
-25
-26
-J0 3
-0 1
-1 1
-2 1
-J1 4
-0 3
-3 -1
-6 -1
-9 1
-J2 4
-1 20
-4 -1
-7 -1
-10 1
-J3 4
-2 2.5
-5 -1
-8 -1
-11 1
-J4 3
-0 -3
-3 1
-6 1
-J5 3
-1 -20
-4 1
-7 1
-J6 3
-2 -2.5
-5 1
-8 1
-J7 1
-3 1
-J8 1
-4 1
-J9 1
-5 1
-G0 10
-0 230
-1 260
-2 150
-3 -150
-4 -36
-5 -170
-7 -10
-9 210
-10 100000
-11 238
diff --git a/pyomo/pysp/tests/convert/schuripopt_baselines/farmer_baseline/AverageScenario.row b/pyomo/pysp/tests/convert/schuripopt_baselines/farmer_baseline/AverageScenario.row
deleted file mode 100644
index ac818449b4c..00000000000
--- a/pyomo/pysp/tests/convert/schuripopt_baselines/farmer_baseline/AverageScenario.row
+++ /dev/null
@@ -1,11 +0,0 @@
-ConstrainTotalAcreage
-EnforceCattleFeedRequirement[CORN]
-EnforceCattleFeedRequirement[SUGAR_BEETS]
-EnforceCattleFeedRequirement[WHEAT]
-LimitAmountSold[CORN]
-LimitAmountSold[SUGAR_BEETS]
-LimitAmountSold[WHEAT]
-EnforceQuotas[CORN]
-EnforceQuotas[SUGAR_BEETS]
-EnforceQuotas[WHEAT]
-Total_Cost_Objective
diff --git a/pyomo/pysp/tests/convert/schuripopt_baselines/farmer_baseline/BelowAverageScenario.col b/pyomo/pysp/tests/convert/schuripopt_baselines/farmer_baseline/BelowAverageScenario.col
deleted file mode 100644
index c50b447b969..00000000000
--- a/pyomo/pysp/tests/convert/schuripopt_baselines/farmer_baseline/BelowAverageScenario.col
+++ /dev/null
@@ -1,12 +0,0 @@
-DevotedAcreage[CORN]
-DevotedAcreage[SUGAR_BEETS]
-DevotedAcreage[WHEAT]
-QuantitySubQuotaSold[CORN]
-QuantitySubQuotaSold[SUGAR_BEETS]
-QuantitySubQuotaSold[WHEAT]
-QuantitySuperQuotaSold[CORN]
-QuantitySuperQuotaSold[SUGAR_BEETS]
-QuantitySuperQuotaSold[WHEAT]
-QuantityPurchased[CORN]
-QuantityPurchased[SUGAR_BEETS]
-QuantityPurchased[WHEAT]
diff --git a/pyomo/pysp/tests/convert/schuripopt_baselines/farmer_baseline/BelowAverageScenario.nl b/pyomo/pysp/tests/convert/schuripopt_baselines/farmer_baseline/BelowAverageScenario.nl
deleted file mode 100644
index 5d4b6560b1a..00000000000
--- a/pyomo/pysp/tests/convert/schuripopt_baselines/farmer_baseline/BelowAverageScenario.nl
+++ /dev/null
@@ -1,123 +0,0 @@
-g3 1 1 0 # problem BelowAverageScenario
- 12 10 1 3 0 # vars, constraints, objectives, ranges, eqns
- 0 0 0 0 0 0 # nonlinear constrs, objs; ccons: lin, nonlin, nd, nzlb
- 0 0 # network constraints: nonlinear, linear
- 0 0 0 # nonlinear vars in constraints, objectives, both
- 0 0 0 1 # linear network variables; functions; arith, flags
- 0 0 0 0 0 # discrete variables: binary, integer, nonlinear (b,c,o)
- 27 10 # nonzeros in Jacobian, obj. gradient
- 41 35 # max name lengths: constraints, variables
- 0 0 0 0 0 # common exprs: b,c,o,c1,o1
-S7 1 schurip_objective_weight
-0 0.33333333
-S0 3 schurip_variable_id
-0 2021786751
-1 1561833761
-2 1002958202
-C0 #ConstrainTotalAcreage
-n0
-C1 #EnforceCattleFeedRequirement[CORN]
-n0
-C2 #EnforceCattleFeedRequirement[SUGAR_BEETS]
-n0
-C3 #EnforceCattleFeedRequirement[WHEAT]
-n0
-C4 #LimitAmountSold[CORN]
-n0
-C5 #LimitAmountSold[SUGAR_BEETS]
-n0
-C6 #LimitAmountSold[WHEAT]
-n0
-C7 #EnforceQuotas[CORN]
-n0
-C8 #EnforceQuotas[SUGAR_BEETS]
-n0
-C9 #EnforceQuotas[WHEAT]
-n0
-O0 0 #Total_Cost_Objective
-n0
-x0 # initial guess
-r #10 ranges (rhs's)
-1 500
-2 240.0
-2 0.0
-2 200.0
-1 0.0
-1 0.0
-1 0.0
-0 0.0 100000.0
-0 0.0 6000.0
-0 0.0 100000.0
-b #12 bounds (on variables)
-0 0.0 500
-0 0.0 500
-0 0.0 500
-2 0.0
-2 0.0
-2 0.0
-2 0.0
-2 0.0
-2 0.0
-2 0.0
-2 0.0
-2 0.0
-k11 #intermediate Jacobian column lengths
-3
-6
-9
-12
-15
-18
-20
-22
-24
-25
-26
-J0 3
-0 1
-1 1
-2 1
-J1 4
-0 2.4
-3 -1
-6 -1
-9 1
-J2 4
-1 16
-4 -1
-7 -1
-10 1
-J3 4
-2 2.0
-5 -1
-8 -1
-11 1
-J4 3
-0 -2.4
-3 1
-6 1
-J5 3
-1 -16
-4 1
-7 1
-J6 3
-2 -2.0
-5 1
-8 1
-J7 1
-3 1
-J8 1
-4 1
-J9 1
-5 1
-G0 10
-0 230
-1 260
-2 150
-3 -150
-4 -36
-5 -170
-7 -10
-9 210
-10 100000
-11 238
diff --git a/pyomo/pysp/tests/convert/schuripopt_baselines/farmer_baseline/BelowAverageScenario.row b/pyomo/pysp/tests/convert/schuripopt_baselines/farmer_baseline/BelowAverageScenario.row
deleted file mode 100644
index ac818449b4c..00000000000
--- a/pyomo/pysp/tests/convert/schuripopt_baselines/farmer_baseline/BelowAverageScenario.row
+++ /dev/null
@@ -1,11 +0,0 @@
-ConstrainTotalAcreage
-EnforceCattleFeedRequirement[CORN]
-EnforceCattleFeedRequirement[SUGAR_BEETS]
-EnforceCattleFeedRequirement[WHEAT]
-LimitAmountSold[CORN]
-LimitAmountSold[SUGAR_BEETS]
-LimitAmountSold[WHEAT]
-EnforceQuotas[CORN]
-EnforceQuotas[SUGAR_BEETS]
-EnforceQuotas[WHEAT]
-Total_Cost_Objective
diff --git a/pyomo/pysp/tests/convert/schuripopt_baselines/farmer_baseline/PySP_Subproblems.txt b/pyomo/pysp/tests/convert/schuripopt_baselines/farmer_baseline/PySP_Subproblems.txt
deleted file mode 100644
index eb5cb28994c..00000000000
--- a/pyomo/pysp/tests/convert/schuripopt_baselines/farmer_baseline/PySP_Subproblems.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-BelowAverageScenario.nl
-AverageScenario.nl
-AboveAverageScenario.nl
diff --git a/pyomo/pysp/tests/convert/schuripopt_baselines/piecewise_baseline/PySP_Subproblems.txt b/pyomo/pysp/tests/convert/schuripopt_baselines/piecewise_baseline/PySP_Subproblems.txt
deleted file mode 100644
index 828a473c513..00000000000
--- a/pyomo/pysp/tests/convert/schuripopt_baselines/piecewise_baseline/PySP_Subproblems.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-Scenario1.nl
-Scenario2.nl
-Scenario3.nl
diff --git a/pyomo/pysp/tests/convert/schuripopt_baselines/piecewise_baseline/Scenario1.col b/pyomo/pysp/tests/convert/schuripopt_baselines/piecewise_baseline/Scenario1.col
deleted file mode 100644
index 0fb7acd21bc..00000000000
--- a/pyomo/pysp/tests/convert/schuripopt_baselines/piecewise_baseline/Scenario1.col
+++ /dev/null
@@ -1,19 +0,0 @@
-x
-fx
-z
-fz
-r
-p_first_stage.INC_delta[1]
-p_first_stage.INC_delta[2]
-p_first_stage.INC_delta[3]
-p_first_stage.INC_delta[4]
-p_second_stage[1].INC_delta[1]
-p_second_stage[1].INC_delta[2]
-p_second_stage[1].INC_delta[3]
-p_second_stage[1].INC_delta[4]
-p_first_stage.INC_bin_y[1]
-p_first_stage.INC_bin_y[2]
-p_first_stage.INC_bin_y[3]
-p_second_stage[1].INC_bin_y[1]
-p_second_stage[1].INC_bin_y[2]
-p_second_stage[1].INC_bin_y[3]
diff --git a/pyomo/pysp/tests/convert/schuripopt_baselines/piecewise_baseline/Scenario1.nl b/pyomo/pysp/tests/convert/schuripopt_baselines/piecewise_baseline/Scenario1.nl
deleted file mode 100644
index bde6767285a..00000000000
--- a/pyomo/pysp/tests/convert/schuripopt_baselines/piecewise_baseline/Scenario1.nl
+++ /dev/null
@@ -1,181 +0,0 @@
-g3 1 1 0 # problem Scenario1
- 19 19 1 0 5 # vars, constraints, objectives, ranges, eqns
- 0 0 0 0 0 0 # nonlinear constrs, objs; ccons: lin, nonlin, nd, nzlb
- 0 0 # network constraints: nonlinear, linear
- 0 0 0 # nonlinear vars in constraints, objectives, both
- 0 0 0 1 # linear network variables; functions; arith, flags
- 6 0 0 0 0 # discrete variables: binary, integer, nonlinear (b,c,o)
- 44 3 # nonzeros in Jacobian, obj. gradient
- 36 30 # max name lengths: constraints, variables
- 0 0 0 0 0 # common exprs: b,c,o,c1,o1
-S7 1 schurip_objective_weight
-0 0.3333333333
-S0 1 schurip_variable_id
-0 368493142
-C0 #c_first_stage
-n0
-C1 #c_second_stage
-n0
-C2 #r_second_stage
-n0
-C3 #p_first_stage.INC_constraint1
-n0
-C4 #p_first_stage.INC_constraint2
-n0
-C5 #p_first_stage.INC_constraint3[1]
-n0
-C6 #p_first_stage.INC_constraint3[2]
-n0
-C7 #p_first_stage.INC_constraint3[3]
-n0
-C8 #p_first_stage.INC_constraint4[1]
-n0
-C9 #p_first_stage.INC_constraint4[2]
-n0
-C10 #p_first_stage.INC_constraint4[3]
-n0
-C11 #p_second_stage[1].INC_constraint1
-n0
-C12 #p_second_stage[1].INC_constraint2
-n0
-C13 #p_second_stage[1].INC_constraint3[1]
-n0
-C14 #p_second_stage[1].INC_constraint3[2]
-n0
-C15 #p_second_stage[1].INC_constraint3[3]
-n0
-C16 #p_second_stage[1].INC_constraint4[1]
-n0
-C17 #p_second_stage[1].INC_constraint4[2]
-n0
-C18 #p_second_stage[1].INC_constraint4[3]
-n0
-O0 0 #o
-n0
-x0 # initial guess
-r #19 ranges (rhs's)
-2 0.0
-2 -100.0
-4 0
-4 0.0
-4 10.0
-1 0.0
-1 0.0
-1 0.0
-1 0.0
-1 0.0
-1 0.0
-4 -10.0
-4 0.0
-1 0.0
-1 0.0
-1 0.0
-1 0.0
-1 0.0
-1 0.0
-b #19 bounds (on variables)
-0 0 10
-3
-0 -10 10
-3
-3
-1 1
-3
-3
-2 0
-1 1
-3
-3
-2 0
-0 0 1
-0 0 1
-0 0 1
-0 0 1
-0 0 1
-0 0 1
-k18 #intermediate Jacobian column lengths
-3
-4
-5
-6
-7
-9
-13
-17
-19
-21
-25
-29
-32
-34
-36
-38
-40
-42
-J0 1
-0 1
-J1 1
-0 1
-J2 1
-4 1
-J3 5
-0 1
-5 -2.0
-6 -3.0
-7 -2.0
-8 -3.0
-J4 3
-1 1
-6 1.0
-7 -1
-J5 2
-6 1
-13 -1
-J6 2
-7 1
-14 -1
-J7 2
-8 1
-15 -1
-J8 2
-5 -1
-13 1
-J9 2
-6 -1
-14 1
-J10 2
-7 -1
-15 1
-J11 5
-2 1
-9 -5.0
-10 -5.0
-11 -5.0
-12 -5.0
-J12 4
-3 1
-10 1.0
-11 -3.0
-12 1.0
-J13 2
-10 1
-16 -1
-J14 2
-11 1
-17 -1
-J15 2
-12 1
-18 -1
-J16 2
-9 -1
-16 1
-J17 2
-10 -1
-17 1
-J18 2
-11 -1
-18 1
-G0 3
-1 1
-3 -1
-4 1
diff --git a/pyomo/pysp/tests/convert/schuripopt_baselines/piecewise_baseline/Scenario1.row b/pyomo/pysp/tests/convert/schuripopt_baselines/piecewise_baseline/Scenario1.row
deleted file mode 100644
index dca87057865..00000000000
--- a/pyomo/pysp/tests/convert/schuripopt_baselines/piecewise_baseline/Scenario1.row
+++ /dev/null
@@ -1,20 +0,0 @@
-c_first_stage
-c_second_stage
-r_second_stage
-p_first_stage.INC_constraint1
-p_first_stage.INC_constraint2
-p_first_stage.INC_constraint3[1]
-p_first_stage.INC_constraint3[2]
-p_first_stage.INC_constraint3[3]
-p_first_stage.INC_constraint4[1]
-p_first_stage.INC_constraint4[2]
-p_first_stage.INC_constraint4[3]
-p_second_stage[1].INC_constraint1
-p_second_stage[1].INC_constraint2
-p_second_stage[1].INC_constraint3[1]
-p_second_stage[1].INC_constraint3[2]
-p_second_stage[1].INC_constraint3[3]
-p_second_stage[1].INC_constraint4[1]
-p_second_stage[1].INC_constraint4[2]
-p_second_stage[1].INC_constraint4[3]
-o
diff --git a/pyomo/pysp/tests/convert/schuripopt_baselines/piecewise_baseline/Scenario2.col b/pyomo/pysp/tests/convert/schuripopt_baselines/piecewise_baseline/Scenario2.col
deleted file mode 100644
index 0fb7acd21bc..00000000000
--- a/pyomo/pysp/tests/convert/schuripopt_baselines/piecewise_baseline/Scenario2.col
+++ /dev/null
@@ -1,19 +0,0 @@
-x
-fx
-z
-fz
-r
-p_first_stage.INC_delta[1]
-p_first_stage.INC_delta[2]
-p_first_stage.INC_delta[3]
-p_first_stage.INC_delta[4]
-p_second_stage[1].INC_delta[1]
-p_second_stage[1].INC_delta[2]
-p_second_stage[1].INC_delta[3]
-p_second_stage[1].INC_delta[4]
-p_first_stage.INC_bin_y[1]
-p_first_stage.INC_bin_y[2]
-p_first_stage.INC_bin_y[3]
-p_second_stage[1].INC_bin_y[1]
-p_second_stage[1].INC_bin_y[2]
-p_second_stage[1].INC_bin_y[3]
diff --git a/pyomo/pysp/tests/convert/schuripopt_baselines/piecewise_baseline/Scenario2.nl b/pyomo/pysp/tests/convert/schuripopt_baselines/piecewise_baseline/Scenario2.nl
deleted file mode 100644
index a9b34d58236..00000000000
--- a/pyomo/pysp/tests/convert/schuripopt_baselines/piecewise_baseline/Scenario2.nl
+++ /dev/null
@@ -1,182 +0,0 @@
-g3 1 1 0 # problem Scenario2
- 19 19 1 1 4 # vars, constraints, objectives, ranges, eqns
- 0 0 0 0 0 0 # nonlinear constrs, objs; ccons: lin, nonlin, nd, nzlb
- 0 0 # network constraints: nonlinear, linear
- 0 0 0 # nonlinear vars in constraints, objectives, both
- 0 0 0 1 # linear network variables; functions; arith, flags
- 6 0 0 0 0 # discrete variables: binary, integer, nonlinear (b,c,o)
- 45 3 # nonzeros in Jacobian, obj. gradient
- 36 30 # max name lengths: constraints, variables
- 0 0 0 0 0 # common exprs: b,c,o,c1,o1
-S7 1 schurip_objective_weight
-0 0.3333333333
-S0 1 schurip_variable_id
-0 368493142
-C0 #c_first_stage
-n0
-C1 #c_second_stage
-n0
-C2 #r_second_stage
-n0
-C3 #p_first_stage.INC_constraint1
-n0
-C4 #p_first_stage.INC_constraint2
-n0
-C5 #p_first_stage.INC_constraint3[1]
-n0
-C6 #p_first_stage.INC_constraint3[2]
-n0
-C7 #p_first_stage.INC_constraint3[3]
-n0
-C8 #p_first_stage.INC_constraint4[1]
-n0
-C9 #p_first_stage.INC_constraint4[2]
-n0
-C10 #p_first_stage.INC_constraint4[3]
-n0
-C11 #p_second_stage[1].INC_constraint1
-n0
-C12 #p_second_stage[1].INC_constraint2
-n0
-C13 #p_second_stage[1].INC_constraint3[1]
-n0
-C14 #p_second_stage[1].INC_constraint3[2]
-n0
-C15 #p_second_stage[1].INC_constraint3[3]
-n0
-C16 #p_second_stage[1].INC_constraint4[1]
-n0
-C17 #p_second_stage[1].INC_constraint4[2]
-n0
-C18 #p_second_stage[1].INC_constraint4[3]
-n0
-O0 0 #o
-n-1
-x0 # initial guess
-r #19 ranges (rhs's)
-2 0.0
-2 -100.0
-0 -1.0 0.0
-4 0.0
-4 10.0
-1 0.0
-1 0.0
-1 0.0
-1 0.0
-1 0.0
-1 0.0
-4 -10.0
-4 0.0
-1 0.0
-1 0.0
-1 0.0
-1 0.0
-1 0.0
-1 0.0
-b #19 bounds (on variables)
-0 0 10
-3
-0 -10 10
-3
-3
-1 1
-3
-3
-2 0
-1 1
-3
-3
-2 0
-0 0 1
-0 0 1
-0 0 1
-0 0 1
-0 0 1
-0 0 1
-k18 #intermediate Jacobian column lengths
-3
-4
-5
-6
-8
-10
-14
-18
-20
-22
-26
-30
-33
-35
-37
-39
-41
-43
-J0 1
-0 1
-J1 2
-0 1
-4 1
-J2 1
-4 1
-J3 5
-0 1
-5 -2.0
-6 -3.0
-7 -2.0
-8 -3.0
-J4 3
-1 1
-6 1.0
-7 -1
-J5 2
-6 1
-13 -1
-J6 2
-7 1
-14 -1
-J7 2
-8 1
-15 -1
-J8 2
-5 -1
-13 1
-J9 2
-6 -1
-14 1
-J10 2
-7 -1
-15 1
-J11 5
-2 1
-9 -5.0
-10 -5.0
-11 -5.0
-12 -5.0
-J12 4
-3 1
-10 1.0
-11 -4.0
-12 2.0
-J13 2
-10 1
-16 -1
-J14 2
-11 1
-17 -1
-J15 2
-12 1
-18 -1
-J16 2
-9 -1
-16 1
-J17 2
-10 -1
-17 1
-J18 2
-11 -1
-18 1
-G0 3
-1 1
-3 -1
-4 1
diff --git a/pyomo/pysp/tests/convert/schuripopt_baselines/piecewise_baseline/Scenario2.row b/pyomo/pysp/tests/convert/schuripopt_baselines/piecewise_baseline/Scenario2.row
deleted file mode 100644
index dca87057865..00000000000
--- a/pyomo/pysp/tests/convert/schuripopt_baselines/piecewise_baseline/Scenario2.row
+++ /dev/null
@@ -1,20 +0,0 @@
-c_first_stage
-c_second_stage
-r_second_stage
-p_first_stage.INC_constraint1
-p_first_stage.INC_constraint2
-p_first_stage.INC_constraint3[1]
-p_first_stage.INC_constraint3[2]
-p_first_stage.INC_constraint3[3]
-p_first_stage.INC_constraint4[1]
-p_first_stage.INC_constraint4[2]
-p_first_stage.INC_constraint4[3]
-p_second_stage[1].INC_constraint1
-p_second_stage[1].INC_constraint2
-p_second_stage[1].INC_constraint3[1]
-p_second_stage[1].INC_constraint3[2]
-p_second_stage[1].INC_constraint3[3]
-p_second_stage[1].INC_constraint4[1]
-p_second_stage[1].INC_constraint4[2]
-p_second_stage[1].INC_constraint4[3]
-o
diff --git a/pyomo/pysp/tests/convert/schuripopt_baselines/piecewise_baseline/Scenario3.col b/pyomo/pysp/tests/convert/schuripopt_baselines/piecewise_baseline/Scenario3.col
deleted file mode 100644
index 0fb7acd21bc..00000000000
--- a/pyomo/pysp/tests/convert/schuripopt_baselines/piecewise_baseline/Scenario3.col
+++ /dev/null
@@ -1,19 +0,0 @@
-x
-fx
-z
-fz
-r
-p_first_stage.INC_delta[1]
-p_first_stage.INC_delta[2]
-p_first_stage.INC_delta[3]
-p_first_stage.INC_delta[4]
-p_second_stage[1].INC_delta[1]
-p_second_stage[1].INC_delta[2]
-p_second_stage[1].INC_delta[3]
-p_second_stage[1].INC_delta[4]
-p_first_stage.INC_bin_y[1]
-p_first_stage.INC_bin_y[2]
-p_first_stage.INC_bin_y[3]
-p_second_stage[1].INC_bin_y[1]
-p_second_stage[1].INC_bin_y[2]
-p_second_stage[1].INC_bin_y[3]
diff --git a/pyomo/pysp/tests/convert/schuripopt_baselines/piecewise_baseline/Scenario3.nl b/pyomo/pysp/tests/convert/schuripopt_baselines/piecewise_baseline/Scenario3.nl
deleted file mode 100644
index 5395eeef4d4..00000000000
--- a/pyomo/pysp/tests/convert/schuripopt_baselines/piecewise_baseline/Scenario3.nl
+++ /dev/null
@@ -1,182 +0,0 @@
-g3 1 1 0 # problem Scenario3
- 19 19 1 1 4 # vars, constraints, objectives, ranges, eqns
- 0 0 0 0 0 0 # nonlinear constrs, objs; ccons: lin, nonlin, nd, nzlb
- 0 0 # network constraints: nonlinear, linear
- 0 0 0 # nonlinear vars in constraints, objectives, both
- 0 0 0 1 # linear network variables; functions; arith, flags
- 6 0 0 0 0 # discrete variables: binary, integer, nonlinear (b,c,o)
- 45 3 # nonzeros in Jacobian, obj. gradient
- 36 30 # max name lengths: constraints, variables
- 0 0 0 0 0 # common exprs: b,c,o,c1,o1
-S7 1 schurip_objective_weight
-0 0.3333333333
-S0 1 schurip_variable_id
-0 368493142
-C0 #c_first_stage
-n0
-C1 #c_second_stage
-n0
-C2 #r_second_stage
-n0
-C3 #p_first_stage.INC_constraint1
-n0
-C4 #p_first_stage.INC_constraint2
-n0
-C5 #p_first_stage.INC_constraint3[1]
-n0
-C6 #p_first_stage.INC_constraint3[2]
-n0
-C7 #p_first_stage.INC_constraint3[3]
-n0
-C8 #p_first_stage.INC_constraint4[1]
-n0
-C9 #p_first_stage.INC_constraint4[2]
-n0
-C10 #p_first_stage.INC_constraint4[3]
-n0
-C11 #p_second_stage[1].INC_constraint1
-n0
-C12 #p_second_stage[1].INC_constraint2
-n0
-C13 #p_second_stage[1].INC_constraint3[1]
-n0
-C14 #p_second_stage[1].INC_constraint3[2]
-n0
-C15 #p_second_stage[1].INC_constraint3[3]
-n0
-C16 #p_second_stage[1].INC_constraint4[1]
-n0
-C17 #p_second_stage[1].INC_constraint4[2]
-n0
-C18 #p_second_stage[1].INC_constraint4[3]
-n0
-O0 0 #o
-n-2
-x0 # initial guess
-r #19 ranges (rhs's)
-2 0.0
-2 -100.0
-0 -2.0 0.0
-4 0.0
-4 10.0
-1 0.0
-1 0.0
-1 0.0
-1 0.0
-1 0.0
-1 0.0
-4 -10.0
-4 0.0
-1 0.0
-1 0.0
-1 0.0
-1 0.0
-1 0.0
-1 0.0
-b #19 bounds (on variables)
-0 0 10
-3
-0 -10 10
-3
-3
-1 1
-3
-3
-2 0
-1 1
-3
-3
-2 0
-0 0 1
-0 0 1
-0 0 1
-0 0 1
-0 0 1
-0 0 1
-k18 #intermediate Jacobian column lengths
-3
-4
-5
-6
-8
-10
-14
-18
-20
-22
-26
-30
-33
-35
-37
-39
-41
-43
-J0 1
-0 1
-J1 2
-0 1
-4 2
-J2 1
-4 1
-J3 5
-0 1
-5 -2.0
-6 -3.0
-7 -2.0
-8 -3.0
-J4 3
-1 1
-6 1.0
-7 -1
-J5 2
-6 1
-13 -1
-J6 2
-7 1
-14 -1
-J7 2
-8 1
-15 -1
-J8 2
-5 -1
-13 1
-J9 2
-6 -1
-14 1
-J10 2
-7 -1
-15 1
-J11 5
-2 1
-9 -5.0
-10 -5.0
-11 -5.0
-12 -5.0
-J12 4
-3 1
-10 1.0
-11 -5.0
-12 3.0
-J13 2
-10 1
-16 -1
-J14 2
-11 1
-17 -1
-J15 2
-12 1
-18 -1
-J16 2
-9 -1
-16 1
-J17 2
-10 -1
-17 1
-J18 2
-11 -1
-18 1
-G0 3
-1 1
-3 -1
-4 1
diff --git a/pyomo/pysp/tests/convert/schuripopt_baselines/piecewise_baseline/Scenario3.row b/pyomo/pysp/tests/convert/schuripopt_baselines/piecewise_baseline/Scenario3.row
deleted file mode 100644
index dca87057865..00000000000
--- a/pyomo/pysp/tests/convert/schuripopt_baselines/piecewise_baseline/Scenario3.row
+++ /dev/null
@@ -1,20 +0,0 @@
-c_first_stage
-c_second_stage
-r_second_stage
-p_first_stage.INC_constraint1
-p_first_stage.INC_constraint2
-p_first_stage.INC_constraint3[1]
-p_first_stage.INC_constraint3[2]
-p_first_stage.INC_constraint3[3]
-p_first_stage.INC_constraint4[1]
-p_first_stage.INC_constraint4[2]
-p_first_stage.INC_constraint4[3]
-p_second_stage[1].INC_constraint1
-p_second_stage[1].INC_constraint2
-p_second_stage[1].INC_constraint3[1]
-p_second_stage[1].INC_constraint3[2]
-p_second_stage[1].INC_constraint3[3]
-p_second_stage[1].INC_constraint4[1]
-p_second_stage[1].INC_constraint4[2]
-p_second_stage[1].INC_constraint4[3]
-o
diff --git a/pyomo/pysp/tests/convert/schuripopt_baselines/piecewise_bundles_baseline/B1.col b/pyomo/pysp/tests/convert/schuripopt_baselines/piecewise_bundles_baseline/B1.col
deleted file mode 100644
index ee6705cfa1c..00000000000
--- a/pyomo/pysp/tests/convert/schuripopt_baselines/piecewise_bundles_baseline/B1.col
+++ /dev/null
@@ -1,39 +0,0 @@
-MASTER_BLEND_VAR_RootNode[x]
-Scenario1.x
-Scenario1.fx
-Scenario1.z
-Scenario1.fz
-Scenario1.r
-Scenario1.p_first_stage.INC_delta[1]
-Scenario1.p_first_stage.INC_delta[2]
-Scenario1.p_first_stage.INC_delta[3]
-Scenario1.p_first_stage.INC_delta[4]
-Scenario1.p_second_stage[1].INC_delta[1]
-Scenario1.p_second_stage[1].INC_delta[2]
-Scenario1.p_second_stage[1].INC_delta[3]
-Scenario1.p_second_stage[1].INC_delta[4]
-Scenario2.x
-Scenario2.fx
-Scenario2.z
-Scenario2.fz
-Scenario2.r
-Scenario2.p_first_stage.INC_delta[1]
-Scenario2.p_first_stage.INC_delta[2]
-Scenario2.p_first_stage.INC_delta[3]
-Scenario2.p_first_stage.INC_delta[4]
-Scenario2.p_second_stage[1].INC_delta[1]
-Scenario2.p_second_stage[1].INC_delta[2]
-Scenario2.p_second_stage[1].INC_delta[3]
-Scenario2.p_second_stage[1].INC_delta[4]
-Scenario1.p_first_stage.INC_bin_y[1]
-Scenario1.p_first_stage.INC_bin_y[2]
-Scenario1.p_first_stage.INC_bin_y[3]
-Scenario1.p_second_stage[1].INC_bin_y[1]
-Scenario1.p_second_stage[1].INC_bin_y[2]
-Scenario1.p_second_stage[1].INC_bin_y[3]
-Scenario2.p_first_stage.INC_bin_y[1]
-Scenario2.p_first_stage.INC_bin_y[2]
-Scenario2.p_first_stage.INC_bin_y[3]
-Scenario2.p_second_stage[1].INC_bin_y[1]
-Scenario2.p_second_stage[1].INC_bin_y[2]
-Scenario2.p_second_stage[1].INC_bin_y[3]
diff --git a/pyomo/pysp/tests/convert/schuripopt_baselines/piecewise_bundles_baseline/B1.nl b/pyomo/pysp/tests/convert/schuripopt_baselines/piecewise_bundles_baseline/B1.nl
deleted file mode 100644
index c2bb17eda76..00000000000
--- a/pyomo/pysp/tests/convert/schuripopt_baselines/piecewise_bundles_baseline/B1.nl
+++ /dev/null
@@ -1,357 +0,0 @@
-g3 1 1 0 # problem B1
- 39 40 1 1 11 # vars, constraints, objectives, ranges, eqns
- 0 0 0 0 0 0 # nonlinear constrs, objs; ccons: lin, nonlin, nd, nzlb
- 0 0 # network constraints: nonlinear, linear
- 0 0 0 # nonlinear vars in constraints, objectives, both
- 0 0 0 1 # linear network variables; functions; arith, flags
- 12 0 0 0 0 # discrete variables: binary, integer, nonlinear (b,c,o)
- 93 6 # nonzeros in Jacobian, obj. gradient
- 46 40 # max name lengths: constraints, variables
- 0 0 0 0 0 # common exprs: b,c,o,c1,o1
-S7 1 schurip_objective_weight
-0 0.6666666666
-S0 1 schurip_variable_id
-0 368493142
-C0 #MASTER_BLEND_CONSTRAINT_RootNode[1]
-n0
-C1 #MASTER_BLEND_CONSTRAINT_RootNode[2]
-n0
-C2 #Scenario1.c_first_stage
-n0
-C3 #Scenario1.c_second_stage
-n0
-C4 #Scenario1.r_second_stage
-n0
-C5 #Scenario1.p_first_stage.INC_constraint1
-n0
-C6 #Scenario1.p_first_stage.INC_constraint2
-n0
-C7 #Scenario1.p_first_stage.INC_constraint3[1]
-n0
-C8 #Scenario1.p_first_stage.INC_constraint3[2]
-n0
-C9 #Scenario1.p_first_stage.INC_constraint3[3]
-n0
-C10 #Scenario1.p_first_stage.INC_constraint4[1]
-n0
-C11 #Scenario1.p_first_stage.INC_constraint4[2]
-n0
-C12 #Scenario1.p_first_stage.INC_constraint4[3]
-n0
-C13 #Scenario1.p_second_stage[1].INC_constraint1
-n0
-C14 #Scenario1.p_second_stage[1].INC_constraint2
-n0
-C15 #Scenario1.p_second_stage[1].INC_constraint3[1]
-n0
-C16 #Scenario1.p_second_stage[1].INC_constraint3[2]
-n0
-C17 #Scenario1.p_second_stage[1].INC_constraint3[3]
-n0
-C18 #Scenario1.p_second_stage[1].INC_constraint4[1]
-n0
-C19 #Scenario1.p_second_stage[1].INC_constraint4[2]
-n0
-C20 #Scenario1.p_second_stage[1].INC_constraint4[3]
-n0
-C21 #Scenario2.c_first_stage
-n0
-C22 #Scenario2.c_second_stage
-n0
-C23 #Scenario2.r_second_stage
-n0
-C24 #Scenario2.p_first_stage.INC_constraint1
-n0
-C25 #Scenario2.p_first_stage.INC_constraint2
-n0
-C26 #Scenario2.p_first_stage.INC_constraint3[1]
-n0
-C27 #Scenario2.p_first_stage.INC_constraint3[2]
-n0
-C28 #Scenario2.p_first_stage.INC_constraint3[3]
-n0
-C29 #Scenario2.p_first_stage.INC_constraint4[1]
-n0
-C30 #Scenario2.p_first_stage.INC_constraint4[2]
-n0
-C31 #Scenario2.p_first_stage.INC_constraint4[3]
-n0
-C32 #Scenario2.p_second_stage[1].INC_constraint1
-n0
-C33 #Scenario2.p_second_stage[1].INC_constraint2
-n0
-C34 #Scenario2.p_second_stage[1].INC_constraint3[1]
-n0
-C35 #Scenario2.p_second_stage[1].INC_constraint3[2]
-n0
-C36 #Scenario2.p_second_stage[1].INC_constraint3[3]
-n0
-C37 #Scenario2.p_second_stage[1].INC_constraint4[1]
-n0
-C38 #Scenario2.p_second_stage[1].INC_constraint4[2]
-n0
-C39 #Scenario2.p_second_stage[1].INC_constraint4[3]
-n0
-O0 0 #MASTER
-n-0.5
-x0 # initial guess
-r #40 ranges (rhs's)
-4 0.0
-4 0.0
-2 0.0
-2 -100.0
-4 0
-4 0.0
-4 10.0
-1 0.0
-1 0.0
-1 0.0
-1 0.0
-1 0.0
-1 0.0
-4 -10.0
-4 0.0
-1 0.0
-1 0.0
-1 0.0
-1 0.0
-1 0.0
-1 0.0
-2 0.0
-2 -100.0
-0 -1.0 0.0
-4 0.0
-4 10.0
-1 0.0
-1 0.0
-1 0.0
-1 0.0
-1 0.0
-1 0.0
-4 -10.0
-4 0.0
-1 0.0
-1 0.0
-1 0.0
-1 0.0
-1 0.0
-1 0.0
-b #39 bounds (on variables)
-3
-0 0 10
-3
-0 -10 10
-3
-3
-1 1
-3
-3
-2 0
-1 1
-3
-3
-2 0
-0 0 10
-3
-0 -10 10
-3
-3
-1 1
-3
-3
-2 0
-1 1
-3
-3
-2 0
-0 0 1
-0 0 1
-0 0 1
-0 0 1
-0 0 1
-0 0 1
-0 0 1
-0 0 1
-0 0 1
-0 0 1
-0 0 1
-0 0 1
-k38 #intermediate Jacobian column lengths
-2
-6
-7
-8
-9
-10
-12
-16
-20
-22
-24
-28
-32
-35
-39
-40
-41
-42
-44
-46
-50
-54
-56
-58
-62
-66
-69
-71
-73
-75
-77
-79
-81
-83
-85
-87
-89
-91
-J0 2
-0 1
-1 -1
-J1 2
-0 1
-14 -1
-J2 1
-1 1
-J3 1
-1 1
-J4 1
-5 1
-J5 5
-1 1
-6 -2.0
-7 -3.0
-8 -2.0
-9 -3.0
-J6 3
-2 1
-7 1.0
-8 -1
-J7 2
-7 1
-27 -1
-J8 2
-8 1
-28 -1
-J9 2
-9 1
-29 -1
-J10 2
-6 -1
-27 1
-J11 2
-7 -1
-28 1
-J12 2
-8 -1
-29 1
-J13 5
-3 1
-10 -5.0
-11 -5.0
-12 -5.0
-13 -5.0
-J14 4
-4 1
-11 1.0
-12 -3.0
-13 1.0
-J15 2
-11 1
-30 -1
-J16 2
-12 1
-31 -1
-J17 2
-13 1
-32 -1
-J18 2
-10 -1
-30 1
-J19 2
-11 -1
-31 1
-J20 2
-12 -1
-32 1
-J21 1
-14 1
-J22 2
-14 1
-18 1
-J23 1
-18 1
-J24 5
-14 1
-19 -2.0
-20 -3.0
-21 -2.0
-22 -3.0
-J25 3
-15 1
-20 1.0
-21 -1
-J26 2
-20 1
-33 -1
-J27 2
-21 1
-34 -1
-J28 2
-22 1
-35 -1
-J29 2
-19 -1
-33 1
-J30 2
-20 -1
-34 1
-J31 2
-21 -1
-35 1
-J32 5
-16 1
-23 -5.0
-24 -5.0
-25 -5.0
-26 -5.0
-J33 4
-17 1
-24 1.0
-25 -4.0
-26 2.0
-J34 2
-24 1
-36 -1
-J35 2
-25 1
-37 -1
-J36 2
-26 1
-38 -1
-J37 2
-23 -1
-36 1
-J38 2
-24 -1
-37 1
-J39 2
-25 -1
-38 1
-G0 6
-2 0.5
-4 -0.5
-5 0.5
-15 0.5
-17 -0.5
-18 0.5
diff --git a/pyomo/pysp/tests/convert/schuripopt_baselines/piecewise_bundles_baseline/B1.row b/pyomo/pysp/tests/convert/schuripopt_baselines/piecewise_bundles_baseline/B1.row
deleted file mode 100644
index 91ef9781e00..00000000000
--- a/pyomo/pysp/tests/convert/schuripopt_baselines/piecewise_bundles_baseline/B1.row
+++ /dev/null
@@ -1,41 +0,0 @@
-MASTER_BLEND_CONSTRAINT_RootNode[1]
-MASTER_BLEND_CONSTRAINT_RootNode[2]
-Scenario1.c_first_stage
-Scenario1.c_second_stage
-Scenario1.r_second_stage
-Scenario1.p_first_stage.INC_constraint1
-Scenario1.p_first_stage.INC_constraint2
-Scenario1.p_first_stage.INC_constraint3[1]
-Scenario1.p_first_stage.INC_constraint3[2]
-Scenario1.p_first_stage.INC_constraint3[3]
-Scenario1.p_first_stage.INC_constraint4[1]
-Scenario1.p_first_stage.INC_constraint4[2]
-Scenario1.p_first_stage.INC_constraint4[3]
-Scenario1.p_second_stage[1].INC_constraint1
-Scenario1.p_second_stage[1].INC_constraint2
-Scenario1.p_second_stage[1].INC_constraint3[1]
-Scenario1.p_second_stage[1].INC_constraint3[2]
-Scenario1.p_second_stage[1].INC_constraint3[3]
-Scenario1.p_second_stage[1].INC_constraint4[1]
-Scenario1.p_second_stage[1].INC_constraint4[2]
-Scenario1.p_second_stage[1].INC_constraint4[3]
-Scenario2.c_first_stage
-Scenario2.c_second_stage
-Scenario2.r_second_stage
-Scenario2.p_first_stage.INC_constraint1
-Scenario2.p_first_stage.INC_constraint2
-Scenario2.p_first_stage.INC_constraint3[1]
-Scenario2.p_first_stage.INC_constraint3[2]
-Scenario2.p_first_stage.INC_constraint3[3]
-Scenario2.p_first_stage.INC_constraint4[1]
-Scenario2.p_first_stage.INC_constraint4[2]
-Scenario2.p_first_stage.INC_constraint4[3]
-Scenario2.p_second_stage[1].INC_constraint1
-Scenario2.p_second_stage[1].INC_constraint2
-Scenario2.p_second_stage[1].INC_constraint3[1]
-Scenario2.p_second_stage[1].INC_constraint3[2]
-Scenario2.p_second_stage[1].INC_constraint3[3]
-Scenario2.p_second_stage[1].INC_constraint4[1]
-Scenario2.p_second_stage[1].INC_constraint4[2]
-Scenario2.p_second_stage[1].INC_constraint4[3]
-MASTER
diff --git a/pyomo/pysp/tests/convert/schuripopt_baselines/piecewise_bundles_baseline/B2.col b/pyomo/pysp/tests/convert/schuripopt_baselines/piecewise_bundles_baseline/B2.col
deleted file mode 100644
index ab7432c4c79..00000000000
--- a/pyomo/pysp/tests/convert/schuripopt_baselines/piecewise_bundles_baseline/B2.col
+++ /dev/null
@@ -1,20 +0,0 @@
-MASTER_BLEND_VAR_RootNode[x]
-Scenario3.x
-Scenario3.fx
-Scenario3.z
-Scenario3.fz
-Scenario3.r
-Scenario3.p_first_stage.INC_delta[1]
-Scenario3.p_first_stage.INC_delta[2]
-Scenario3.p_first_stage.INC_delta[3]
-Scenario3.p_first_stage.INC_delta[4]
-Scenario3.p_second_stage[1].INC_delta[1]
-Scenario3.p_second_stage[1].INC_delta[2]
-Scenario3.p_second_stage[1].INC_delta[3]
-Scenario3.p_second_stage[1].INC_delta[4]
-Scenario3.p_first_stage.INC_bin_y[1]
-Scenario3.p_first_stage.INC_bin_y[2]
-Scenario3.p_first_stage.INC_bin_y[3]
-Scenario3.p_second_stage[1].INC_bin_y[1]
-Scenario3.p_second_stage[1].INC_bin_y[2]
-Scenario3.p_second_stage[1].INC_bin_y[3]
diff --git a/pyomo/pysp/tests/convert/schuripopt_baselines/piecewise_bundles_baseline/B2.nl b/pyomo/pysp/tests/convert/schuripopt_baselines/piecewise_bundles_baseline/B2.nl
deleted file mode 100644
index 0b50123e93b..00000000000
--- a/pyomo/pysp/tests/convert/schuripopt_baselines/piecewise_bundles_baseline/B2.nl
+++ /dev/null
@@ -1,190 +0,0 @@
-g3 1 1 0 # problem B2
- 20 20 1 1 5 # vars, constraints, objectives, ranges, eqns
- 0 0 0 0 0 0 # nonlinear constrs, objs; ccons: lin, nonlin, nd, nzlb
- 0 0 # network constraints: nonlinear, linear
- 0 0 0 # nonlinear vars in constraints, objectives, both
- 0 0 0 1 # linear network variables; functions; arith, flags
- 6 0 0 0 0 # discrete variables: binary, integer, nonlinear (b,c,o)
- 47 3 # nonzeros in Jacobian, obj. gradient
- 46 40 # max name lengths: constraints, variables
- 0 0 0 0 0 # common exprs: b,c,o,c1,o1
-S7 1 schurip_objective_weight
-0 0.3333333333
-S0 1 schurip_variable_id
-0 368493142
-C0 #MASTER_BLEND_CONSTRAINT_RootNode[1]
-n0
-C1 #Scenario3.c_first_stage
-n0
-C2 #Scenario3.c_second_stage
-n0
-C3 #Scenario3.r_second_stage
-n0
-C4 #Scenario3.p_first_stage.INC_constraint1
-n0
-C5 #Scenario3.p_first_stage.INC_constraint2
-n0
-C6 #Scenario3.p_first_stage.INC_constraint3[1]
-n0
-C7 #Scenario3.p_first_stage.INC_constraint3[2]
-n0
-C8 #Scenario3.p_first_stage.INC_constraint3[3]
-n0
-C9 #Scenario3.p_first_stage.INC_constraint4[1]
-n0
-C10 #Scenario3.p_first_stage.INC_constraint4[2]
-n0
-C11 #Scenario3.p_first_stage.INC_constraint4[3]
-n0
-C12 #Scenario3.p_second_stage[1].INC_constraint1
-n0
-C13 #Scenario3.p_second_stage[1].INC_constraint2
-n0
-C14 #Scenario3.p_second_stage[1].INC_constraint3[1]
-n0
-C15 #Scenario3.p_second_stage[1].INC_constraint3[2]
-n0
-C16 #Scenario3.p_second_stage[1].INC_constraint3[3]
-n0
-C17 #Scenario3.p_second_stage[1].INC_constraint4[1]
-n0
-C18 #Scenario3.p_second_stage[1].INC_constraint4[2]
-n0
-C19 #Scenario3.p_second_stage[1].INC_constraint4[3]
-n0
-O0 0 #MASTER
-n-2
-x0 # initial guess
-r #20 ranges (rhs's)
-4 0.0
-2 0.0
-2 -100.0
-0 -2.0 0.0
-4 0.0
-4 10.0
-1 0.0
-1 0.0
-1 0.0
-1 0.0
-1 0.0
-1 0.0
-4 -10.0
-4 0.0
-1 0.0
-1 0.0
-1 0.0
-1 0.0
-1 0.0
-1 0.0
-b #20 bounds (on variables)
-3
-0 0 10
-3
-0 -10 10
-3
-3
-1 1
-3
-3
-2 0
-1 1
-3
-3
-2 0
-0 0 1
-0 0 1
-0 0 1
-0 0 1
-0 0 1
-0 0 1
-k19 #intermediate Jacobian column lengths
-1
-5
-6
-7
-8
-10
-12
-16
-20
-22
-24
-28
-32
-35
-37
-39
-41
-43
-45
-J0 2
-0 1
-1 -1
-J1 1
-1 1
-J2 2
-1 1
-5 2
-J3 1
-5 1
-J4 5
-1 1
-6 -2.0
-7 -3.0
-8 -2.0
-9 -3.0
-J5 3
-2 1
-7 1.0
-8 -1
-J6 2
-7 1
-14 -1
-J7 2
-8 1
-15 -1
-J8 2
-9 1
-16 -1
-J9 2
-6 -1
-14 1
-J10 2
-7 -1
-15 1
-J11 2
-8 -1
-16 1
-J12 5
-3 1
-10 -5.0
-11 -5.0
-12 -5.0
-13 -5.0
-J13 4
-4 1
-11 1.0
-12 -5.0
-13 3.0
-J14 2
-11 1
-17 -1
-J15 2
-12 1
-18 -1
-J16 2
-13 1
-19 -1
-J17 2
-10 -1
-17 1
-J18 2
-11 -1
-18 1
-J19 2
-12 -1
-19 1
-G0 3
-2 1
-4 -1
-5 1
diff --git a/pyomo/pysp/tests/convert/schuripopt_baselines/piecewise_bundles_baseline/B2.row b/pyomo/pysp/tests/convert/schuripopt_baselines/piecewise_bundles_baseline/B2.row
deleted file mode 100644
index da0b19fde00..00000000000
--- a/pyomo/pysp/tests/convert/schuripopt_baselines/piecewise_bundles_baseline/B2.row
+++ /dev/null
@@ -1,21 +0,0 @@
-MASTER_BLEND_CONSTRAINT_RootNode[1]
-Scenario3.c_first_stage
-Scenario3.c_second_stage
-Scenario3.r_second_stage
-Scenario3.p_first_stage.INC_constraint1
-Scenario3.p_first_stage.INC_constraint2
-Scenario3.p_first_stage.INC_constraint3[1]
-Scenario3.p_first_stage.INC_constraint3[2]
-Scenario3.p_first_stage.INC_constraint3[3]
-Scenario3.p_first_stage.INC_constraint4[1]
-Scenario3.p_first_stage.INC_constraint4[2]
-Scenario3.p_first_stage.INC_constraint4[3]
-Scenario3.p_second_stage[1].INC_constraint1
-Scenario3.p_second_stage[1].INC_constraint2
-Scenario3.p_second_stage[1].INC_constraint3[1]
-Scenario3.p_second_stage[1].INC_constraint3[2]
-Scenario3.p_second_stage[1].INC_constraint3[3]
-Scenario3.p_second_stage[1].INC_constraint4[1]
-Scenario3.p_second_stage[1].INC_constraint4[2]
-Scenario3.p_second_stage[1].INC_constraint4[3]
-MASTER
diff --git a/pyomo/pysp/tests/convert/schuripopt_baselines/piecewise_bundles_baseline/PySP_Subproblems.txt b/pyomo/pysp/tests/convert/schuripopt_baselines/piecewise_bundles_baseline/PySP_Subproblems.txt
deleted file mode 100644
index 10e122d3e84..00000000000
--- a/pyomo/pysp/tests/convert/schuripopt_baselines/piecewise_bundles_baseline/PySP_Subproblems.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-B1.nl
-B2.nl
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_baseline/farmer.col b/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_baseline/farmer.col
deleted file mode 100644
index d8d77c489b1..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_baseline/farmer.col
+++ /dev/null
@@ -1,13 +0,0 @@
-x1
-x2
-x3
-x10
-x11
-x12
-x4
-x5
-x6
-x7
-x8
-x9
-ONE_VAR_CONSTANT
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_baseline/farmer.cor b/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_baseline/farmer.cor
deleted file mode 100644
index 93f32120d86..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_baseline/farmer.cor
+++ /dev/null
@@ -1,104 +0,0 @@
-\* Source Pyomo model name=BelowAverageScenario *\
-
-min
-x13:
-+230 x1
-+260 x2
-+150 x3
-+210 x10
-+100000 x11
-+238 x12
--150 x4
--36 x5
--170 x6
--10 x8
-+0 ONE_VAR_CONSTANT
-
-s.t.
-
-c_u_x14_:
-+1 x1
-+1 x2
-+1 x3
-<= 500
-
-c_l_x15_:
-+2.3999999999999999 x1
-+1 x10
--1 x4
--1 x7
->= 240
-
-c_l_x16_:
-+16 x2
-+1 x11
--1 x5
--1 x8
->= 0
-
-c_l_x17_:
-+2 x3
-+1 x12
--1 x6
--1 x9
->= 200
-
-c_u_x18_:
--2.3999999999999999 x1
-+1 x4
-+1 x7
-<= 0
-
-c_u_x19_:
--16 x2
-+1 x5
-+1 x8
-<= 0
-
-c_u_x20_:
--2 x3
-+1 x6
-+1 x9
-<= 0
-
-r_l_x21_:
-+1 x4
->= 0
-
-r_u_x21_:
-+1 x4
-<= 100000
-
-r_l_x22_:
-+1 x5
->= 0
-
-r_u_x22_:
-+1 x5
-<= 6000
-
-r_l_x23_:
-+1 x6
->= 0
-
-r_u_x23_:
-+1 x6
-<= 100000
-
-c_e_ONE_VAR_CONSTANT:
-ONE_VAR_CONSTANT = 1.0
-
-bounds
- 0 <= x1 <= 500
- 0 <= x2 <= 500
- 0 <= x3 <= 500
- 0 <= x4 <= +inf
- 0 <= x5 <= +inf
- 0 <= x6 <= +inf
- 0 <= x7 <= +inf
- 0 <= x8 <= +inf
- 0 <= x9 <= +inf
- 0 <= x10 <= +inf
- 0 <= x11 <= +inf
- 0 <= x12 <= +inf
-end
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_baseline/farmer.cor.symbols b/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_baseline/farmer.cor.symbols
deleted file mode 100644
index 6950b396127..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_baseline/farmer.cor.symbols
+++ /dev/null
@@ -1,3 +0,0 @@
-x1 DevotedAcreage:$CORN
-x2 DevotedAcreage:$SUGAR_BEETS
-x3 DevotedAcreage:$WHEAT
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_baseline/farmer.lp.det b/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_baseline/farmer.lp.det
deleted file mode 100644
index 1a33abdfb81..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_baseline/farmer.lp.det
+++ /dev/null
@@ -1,104 +0,0 @@
-\* Source Pyomo model name=ZeroStochasticData *\
-
-min
-x13:
-+230 x1
-+260 x2
-+150 x3
-+210 x10
-+100000 x11
-+238 x12
--150 x4
--36 x5
--170 x6
--10 x8
-+0 ONE_VAR_CONSTANT
-
-s.t.
-
-c_u_x14_:
-+1 x1
-+1 x2
-+1 x3
-<= 500
-
-c_l_x15_:
--9876543210 x1
-+1 x10
--1 x4
--1 x7
->= 240
-
-c_l_x16_:
--9876543210 x2
-+1 x11
--1 x5
--1 x8
->= 0
-
-c_l_x17_:
--9876543210 x3
-+1 x12
--1 x6
--1 x9
->= 200
-
-c_u_x18_:
--9876543210 x1
-+1 x4
-+1 x7
-<= 0
-
-c_u_x19_:
--9876543210 x2
-+1 x5
-+1 x8
-<= 0
-
-c_u_x20_:
--9876543210 x3
-+1 x6
-+1 x9
-<= 0
-
-r_l_x21_:
-+1 x4
->= 0
-
-r_u_x21_:
-+1 x4
-<= 100000
-
-r_l_x22_:
-+1 x5
->= 0
-
-r_u_x22_:
-+1 x5
-<= 6000
-
-r_l_x23_:
-+1 x6
->= 0
-
-r_u_x23_:
-+1 x6
-<= 100000
-
-c_e_ONE_VAR_CONSTANT:
-ONE_VAR_CONSTANT = 1.0
-
-bounds
- 0 <= x1 <= 500
- 0 <= x2 <= 500
- 0 <= x3 <= 500
- 0 <= x4 <= +inf
- 0 <= x5 <= +inf
- 0 <= x6 <= +inf
- 0 <= x7 <= +inf
- 0 <= x8 <= +inf
- 0 <= x9 <= +inf
- 0 <= x10 <= +inf
- 0 <= x11 <= +inf
- 0 <= x12 <= +inf
-end
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_baseline/farmer.row b/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_baseline/farmer.row
deleted file mode 100644
index b0d1db6bcfb..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_baseline/farmer.row
+++ /dev/null
@@ -1,15 +0,0 @@
-x13
-c_u_x14_
-c_l_x15_
-c_l_x16_
-c_l_x17_
-c_u_x18_
-c_u_x19_
-c_u_x20_
-r_l_x21_
-r_u_x21_
-r_l_x22_
-r_u_x22_
-r_l_x23_
-r_u_x23_
-c_e_ONE_VAR_CONSTANT
\ No newline at end of file
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_baseline/farmer.sto b/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_baseline/farmer.sto
deleted file mode 100644
index 585ffe37033..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_baseline/farmer.sto
+++ /dev/null
@@ -1,24 +0,0 @@
-STOCH farmer
-BLOCKS DISCRETE REPLACE
- BL BLOCK1 PERIOD2 0.33333332999999998
- x1 c_l_x15_ 2.3999999999999999
- x2 c_l_x16_ 16
- x3 c_l_x17_ 2
- x1 c_u_x18_ -2.3999999999999999
- x2 c_u_x19_ -16
- x3 c_u_x20_ -2
- BL BLOCK1 PERIOD2 0.33333333999999998
- x1 c_l_x15_ 3
- x2 c_l_x16_ 20
- x3 c_l_x17_ 2.5
- x1 c_u_x18_ -3
- x2 c_u_x19_ -20
- x3 c_u_x20_ -2.5
- BL BLOCK1 PERIOD2 0.33333332999999998
- x1 c_l_x15_ 3.6000000000000001
- x2 c_l_x16_ 24
- x3 c_l_x17_ 3
- x1 c_u_x18_ -3.6000000000000001
- x2 c_u_x19_ -24
- x3 c_u_x20_ -3
-ENDATA
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_baseline/farmer.sto.struct b/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_baseline/farmer.sto.struct
deleted file mode 100644
index 9f5db81cafe..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_baseline/farmer.sto.struct
+++ /dev/null
@@ -1,6 +0,0 @@
-x1 c_l_x15_
-x2 c_l_x16_
-x3 c_l_x17_
-x1 c_u_x18_
-x2 c_u_x19_
-x3 c_u_x20_
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_baseline/farmer.tim b/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_baseline/farmer.tim
deleted file mode 100644
index e708f6364a5..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_baseline/farmer.tim
+++ /dev/null
@@ -1,35 +0,0 @@
-TIME farmer
-PERIODS EXPLICIT
- TIME1
- TIME2
-ROWS
- x13 TIME1
- c_u_x14_ TIME1
- c_l_x15_ TIME2
- c_l_x16_ TIME2
- c_l_x17_ TIME2
- c_u_x18_ TIME2
- c_u_x19_ TIME2
- c_u_x20_ TIME2
- r_l_x21_ TIME2
- r_u_x21_ TIME2
- r_l_x22_ TIME2
- r_u_x22_ TIME2
- r_l_x23_ TIME2
- r_u_x23_ TIME2
- c_e_ONE_VAR_CONSTANT TIME2
-COLS
- x1 TIME1
- x2 TIME1
- x3 TIME1
- x10 TIME2
- x11 TIME2
- x12 TIME2
- x4 TIME2
- x5 TIME2
- x6 TIME2
- x7 TIME2
- x8 TIME2
- x9 TIME2
- ONE_VAR_CONSTANT TIME2
-ENDATA
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_baseline/scenario_files/farmer.col.AboveAverageScenario b/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_baseline/scenario_files/farmer.col.AboveAverageScenario
deleted file mode 100644
index d8d77c489b1..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_baseline/scenario_files/farmer.col.AboveAverageScenario
+++ /dev/null
@@ -1,13 +0,0 @@
-x1
-x2
-x3
-x10
-x11
-x12
-x4
-x5
-x6
-x7
-x8
-x9
-ONE_VAR_CONSTANT
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_baseline/scenario_files/farmer.col.AverageScenario b/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_baseline/scenario_files/farmer.col.AverageScenario
deleted file mode 100644
index d8d77c489b1..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_baseline/scenario_files/farmer.col.AverageScenario
+++ /dev/null
@@ -1,13 +0,0 @@
-x1
-x2
-x3
-x10
-x11
-x12
-x4
-x5
-x6
-x7
-x8
-x9
-ONE_VAR_CONSTANT
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_baseline/scenario_files/farmer.col.BelowAverageScenario b/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_baseline/scenario_files/farmer.col.BelowAverageScenario
deleted file mode 100644
index d8d77c489b1..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_baseline/scenario_files/farmer.col.BelowAverageScenario
+++ /dev/null
@@ -1,13 +0,0 @@
-x1
-x2
-x3
-x10
-x11
-x12
-x4
-x5
-x6
-x7
-x8
-x9
-ONE_VAR_CONSTANT
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_baseline/scenario_files/farmer.lp.AboveAverageScenario b/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_baseline/scenario_files/farmer.lp.AboveAverageScenario
deleted file mode 100644
index 941b83a5e48..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_baseline/scenario_files/farmer.lp.AboveAverageScenario
+++ /dev/null
@@ -1,104 +0,0 @@
-\* Source Pyomo model name=AboveAverageScenario *\
-
-min
-x13:
-+230 x1
-+260 x2
-+150 x3
-+210 x10
-+100000 x11
-+238 x12
--150 x4
--36 x5
--170 x6
--10 x8
-+0 ONE_VAR_CONSTANT
-
-s.t.
-
-c_u_x14_:
-+1 x1
-+1 x2
-+1 x3
-<= 500
-
-c_l_x15_:
-+3.6000000000000001 x1
-+1 x10
--1 x4
--1 x7
->= 240
-
-c_l_x16_:
-+24 x2
-+1 x11
--1 x5
--1 x8
->= 0
-
-c_l_x17_:
-+3 x3
-+1 x12
--1 x6
--1 x9
->= 200
-
-c_u_x18_:
--3.6000000000000001 x1
-+1 x4
-+1 x7
-<= 0
-
-c_u_x19_:
--24 x2
-+1 x5
-+1 x8
-<= 0
-
-c_u_x20_:
--3 x3
-+1 x6
-+1 x9
-<= 0
-
-r_l_x21_:
-+1 x4
->= 0
-
-r_u_x21_:
-+1 x4
-<= 100000
-
-r_l_x22_:
-+1 x5
->= 0
-
-r_u_x22_:
-+1 x5
-<= 6000
-
-r_l_x23_:
-+1 x6
->= 0
-
-r_u_x23_:
-+1 x6
-<= 100000
-
-c_e_ONE_VAR_CONSTANT:
-ONE_VAR_CONSTANT = 1.0
-
-bounds
- 0 <= x1 <= 500
- 0 <= x2 <= 500
- 0 <= x3 <= 500
- 0 <= x4 <= +inf
- 0 <= x5 <= +inf
- 0 <= x6 <= +inf
- 0 <= x7 <= +inf
- 0 <= x8 <= +inf
- 0 <= x9 <= +inf
- 0 <= x10 <= +inf
- 0 <= x11 <= +inf
- 0 <= x12 <= +inf
-end
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_baseline/scenario_files/farmer.lp.AverageScenario b/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_baseline/scenario_files/farmer.lp.AverageScenario
deleted file mode 100644
index fec79121b71..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_baseline/scenario_files/farmer.lp.AverageScenario
+++ /dev/null
@@ -1,104 +0,0 @@
-\* Source Pyomo model name=AverageScenario *\
-
-min
-x13:
-+230 x1
-+260 x2
-+150 x3
-+210 x10
-+100000 x11
-+238 x12
--150 x4
--36 x5
--170 x6
--10 x8
-+0 ONE_VAR_CONSTANT
-
-s.t.
-
-c_u_x14_:
-+1 x1
-+1 x2
-+1 x3
-<= 500
-
-c_l_x15_:
-+3 x1
-+1 x10
--1 x4
--1 x7
->= 240
-
-c_l_x16_:
-+20 x2
-+1 x11
--1 x5
--1 x8
->= 0
-
-c_l_x17_:
-+2.5 x3
-+1 x12
--1 x6
--1 x9
->= 200
-
-c_u_x18_:
--3 x1
-+1 x4
-+1 x7
-<= 0
-
-c_u_x19_:
--20 x2
-+1 x5
-+1 x8
-<= 0
-
-c_u_x20_:
--2.5 x3
-+1 x6
-+1 x9
-<= 0
-
-r_l_x21_:
-+1 x4
->= 0
-
-r_u_x21_:
-+1 x4
-<= 100000
-
-r_l_x22_:
-+1 x5
->= 0
-
-r_u_x22_:
-+1 x5
-<= 6000
-
-r_l_x23_:
-+1 x6
->= 0
-
-r_u_x23_:
-+1 x6
-<= 100000
-
-c_e_ONE_VAR_CONSTANT:
-ONE_VAR_CONSTANT = 1.0
-
-bounds
- 0 <= x1 <= 500
- 0 <= x2 <= 500
- 0 <= x3 <= 500
- 0 <= x4 <= +inf
- 0 <= x5 <= +inf
- 0 <= x6 <= +inf
- 0 <= x7 <= +inf
- 0 <= x8 <= +inf
- 0 <= x9 <= +inf
- 0 <= x10 <= +inf
- 0 <= x11 <= +inf
- 0 <= x12 <= +inf
-end
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_baseline/scenario_files/farmer.lp.BelowAverageScenario b/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_baseline/scenario_files/farmer.lp.BelowAverageScenario
deleted file mode 100644
index 93f32120d86..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_baseline/scenario_files/farmer.lp.BelowAverageScenario
+++ /dev/null
@@ -1,104 +0,0 @@
-\* Source Pyomo model name=BelowAverageScenario *\
-
-min
-x13:
-+230 x1
-+260 x2
-+150 x3
-+210 x10
-+100000 x11
-+238 x12
--150 x4
--36 x5
--170 x6
--10 x8
-+0 ONE_VAR_CONSTANT
-
-s.t.
-
-c_u_x14_:
-+1 x1
-+1 x2
-+1 x3
-<= 500
-
-c_l_x15_:
-+2.3999999999999999 x1
-+1 x10
--1 x4
--1 x7
->= 240
-
-c_l_x16_:
-+16 x2
-+1 x11
--1 x5
--1 x8
->= 0
-
-c_l_x17_:
-+2 x3
-+1 x12
--1 x6
--1 x9
->= 200
-
-c_u_x18_:
--2.3999999999999999 x1
-+1 x4
-+1 x7
-<= 0
-
-c_u_x19_:
--16 x2
-+1 x5
-+1 x8
-<= 0
-
-c_u_x20_:
--2 x3
-+1 x6
-+1 x9
-<= 0
-
-r_l_x21_:
-+1 x4
->= 0
-
-r_u_x21_:
-+1 x4
-<= 100000
-
-r_l_x22_:
-+1 x5
->= 0
-
-r_u_x22_:
-+1 x5
-<= 6000
-
-r_l_x23_:
-+1 x6
->= 0
-
-r_u_x23_:
-+1 x6
-<= 100000
-
-c_e_ONE_VAR_CONSTANT:
-ONE_VAR_CONSTANT = 1.0
-
-bounds
- 0 <= x1 <= 500
- 0 <= x2 <= 500
- 0 <= x3 <= 500
- 0 <= x4 <= +inf
- 0 <= x5 <= +inf
- 0 <= x6 <= +inf
- 0 <= x7 <= +inf
- 0 <= x8 <= +inf
- 0 <= x9 <= +inf
- 0 <= x10 <= +inf
- 0 <= x11 <= +inf
- 0 <= x12 <= +inf
-end
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_baseline/scenario_files/farmer.lp.det.AboveAverageScenario b/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_baseline/scenario_files/farmer.lp.det.AboveAverageScenario
deleted file mode 100644
index 1a33abdfb81..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_baseline/scenario_files/farmer.lp.det.AboveAverageScenario
+++ /dev/null
@@ -1,104 +0,0 @@
-\* Source Pyomo model name=ZeroStochasticData *\
-
-min
-x13:
-+230 x1
-+260 x2
-+150 x3
-+210 x10
-+100000 x11
-+238 x12
--150 x4
--36 x5
--170 x6
--10 x8
-+0 ONE_VAR_CONSTANT
-
-s.t.
-
-c_u_x14_:
-+1 x1
-+1 x2
-+1 x3
-<= 500
-
-c_l_x15_:
--9876543210 x1
-+1 x10
--1 x4
--1 x7
->= 240
-
-c_l_x16_:
--9876543210 x2
-+1 x11
--1 x5
--1 x8
->= 0
-
-c_l_x17_:
--9876543210 x3
-+1 x12
--1 x6
--1 x9
->= 200
-
-c_u_x18_:
--9876543210 x1
-+1 x4
-+1 x7
-<= 0
-
-c_u_x19_:
--9876543210 x2
-+1 x5
-+1 x8
-<= 0
-
-c_u_x20_:
--9876543210 x3
-+1 x6
-+1 x9
-<= 0
-
-r_l_x21_:
-+1 x4
->= 0
-
-r_u_x21_:
-+1 x4
-<= 100000
-
-r_l_x22_:
-+1 x5
->= 0
-
-r_u_x22_:
-+1 x5
-<= 6000
-
-r_l_x23_:
-+1 x6
->= 0
-
-r_u_x23_:
-+1 x6
-<= 100000
-
-c_e_ONE_VAR_CONSTANT:
-ONE_VAR_CONSTANT = 1.0
-
-bounds
- 0 <= x1 <= 500
- 0 <= x2 <= 500
- 0 <= x3 <= 500
- 0 <= x4 <= +inf
- 0 <= x5 <= +inf
- 0 <= x6 <= +inf
- 0 <= x7 <= +inf
- 0 <= x8 <= +inf
- 0 <= x9 <= +inf
- 0 <= x10 <= +inf
- 0 <= x11 <= +inf
- 0 <= x12 <= +inf
-end
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_baseline/scenario_files/farmer.lp.det.AverageScenario b/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_baseline/scenario_files/farmer.lp.det.AverageScenario
deleted file mode 100644
index 1a33abdfb81..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_baseline/scenario_files/farmer.lp.det.AverageScenario
+++ /dev/null
@@ -1,104 +0,0 @@
-\* Source Pyomo model name=ZeroStochasticData *\
-
-min
-x13:
-+230 x1
-+260 x2
-+150 x3
-+210 x10
-+100000 x11
-+238 x12
--150 x4
--36 x5
--170 x6
--10 x8
-+0 ONE_VAR_CONSTANT
-
-s.t.
-
-c_u_x14_:
-+1 x1
-+1 x2
-+1 x3
-<= 500
-
-c_l_x15_:
--9876543210 x1
-+1 x10
--1 x4
--1 x7
->= 240
-
-c_l_x16_:
--9876543210 x2
-+1 x11
--1 x5
--1 x8
->= 0
-
-c_l_x17_:
--9876543210 x3
-+1 x12
--1 x6
--1 x9
->= 200
-
-c_u_x18_:
--9876543210 x1
-+1 x4
-+1 x7
-<= 0
-
-c_u_x19_:
--9876543210 x2
-+1 x5
-+1 x8
-<= 0
-
-c_u_x20_:
--9876543210 x3
-+1 x6
-+1 x9
-<= 0
-
-r_l_x21_:
-+1 x4
->= 0
-
-r_u_x21_:
-+1 x4
-<= 100000
-
-r_l_x22_:
-+1 x5
->= 0
-
-r_u_x22_:
-+1 x5
-<= 6000
-
-r_l_x23_:
-+1 x6
->= 0
-
-r_u_x23_:
-+1 x6
-<= 100000
-
-c_e_ONE_VAR_CONSTANT:
-ONE_VAR_CONSTANT = 1.0
-
-bounds
- 0 <= x1 <= 500
- 0 <= x2 <= 500
- 0 <= x3 <= 500
- 0 <= x4 <= +inf
- 0 <= x5 <= +inf
- 0 <= x6 <= +inf
- 0 <= x7 <= +inf
- 0 <= x8 <= +inf
- 0 <= x9 <= +inf
- 0 <= x10 <= +inf
- 0 <= x11 <= +inf
- 0 <= x12 <= +inf
-end
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_baseline/scenario_files/farmer.lp.det.BelowAverageScenario b/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_baseline/scenario_files/farmer.lp.det.BelowAverageScenario
deleted file mode 100644
index 1a33abdfb81..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_baseline/scenario_files/farmer.lp.det.BelowAverageScenario
+++ /dev/null
@@ -1,104 +0,0 @@
-\* Source Pyomo model name=ZeroStochasticData *\
-
-min
-x13:
-+230 x1
-+260 x2
-+150 x3
-+210 x10
-+100000 x11
-+238 x12
--150 x4
--36 x5
--170 x6
--10 x8
-+0 ONE_VAR_CONSTANT
-
-s.t.
-
-c_u_x14_:
-+1 x1
-+1 x2
-+1 x3
-<= 500
-
-c_l_x15_:
--9876543210 x1
-+1 x10
--1 x4
--1 x7
->= 240
-
-c_l_x16_:
--9876543210 x2
-+1 x11
--1 x5
--1 x8
->= 0
-
-c_l_x17_:
--9876543210 x3
-+1 x12
--1 x6
--1 x9
->= 200
-
-c_u_x18_:
--9876543210 x1
-+1 x4
-+1 x7
-<= 0
-
-c_u_x19_:
--9876543210 x2
-+1 x5
-+1 x8
-<= 0
-
-c_u_x20_:
--9876543210 x3
-+1 x6
-+1 x9
-<= 0
-
-r_l_x21_:
-+1 x4
->= 0
-
-r_u_x21_:
-+1 x4
-<= 100000
-
-r_l_x22_:
-+1 x5
->= 0
-
-r_u_x22_:
-+1 x5
-<= 6000
-
-r_l_x23_:
-+1 x6
->= 0
-
-r_u_x23_:
-+1 x6
-<= 100000
-
-c_e_ONE_VAR_CONSTANT:
-ONE_VAR_CONSTANT = 1.0
-
-bounds
- 0 <= x1 <= 500
- 0 <= x2 <= 500
- 0 <= x3 <= 500
- 0 <= x4 <= +inf
- 0 <= x5 <= +inf
- 0 <= x6 <= +inf
- 0 <= x7 <= +inf
- 0 <= x8 <= +inf
- 0 <= x9 <= +inf
- 0 <= x10 <= +inf
- 0 <= x11 <= +inf
- 0 <= x12 <= +inf
-end
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_baseline/scenario_files/farmer.lp.symbols.AboveAverageScenario b/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_baseline/scenario_files/farmer.lp.symbols.AboveAverageScenario
deleted file mode 100644
index 6950b396127..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_baseline/scenario_files/farmer.lp.symbols.AboveAverageScenario
+++ /dev/null
@@ -1,3 +0,0 @@
-x1 DevotedAcreage:$CORN
-x2 DevotedAcreage:$SUGAR_BEETS
-x3 DevotedAcreage:$WHEAT
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_baseline/scenario_files/farmer.lp.symbols.AverageScenario b/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_baseline/scenario_files/farmer.lp.symbols.AverageScenario
deleted file mode 100644
index 6950b396127..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_baseline/scenario_files/farmer.lp.symbols.AverageScenario
+++ /dev/null
@@ -1,3 +0,0 @@
-x1 DevotedAcreage:$CORN
-x2 DevotedAcreage:$SUGAR_BEETS
-x3 DevotedAcreage:$WHEAT
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_baseline/scenario_files/farmer.lp.symbols.BelowAverageScenario b/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_baseline/scenario_files/farmer.lp.symbols.BelowAverageScenario
deleted file mode 100644
index 6950b396127..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_baseline/scenario_files/farmer.lp.symbols.BelowAverageScenario
+++ /dev/null
@@ -1,3 +0,0 @@
-x1 DevotedAcreage:$CORN
-x2 DevotedAcreage:$SUGAR_BEETS
-x3 DevotedAcreage:$WHEAT
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_baseline/scenario_files/farmer.row.AboveAverageScenario b/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_baseline/scenario_files/farmer.row.AboveAverageScenario
deleted file mode 100644
index b0d1db6bcfb..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_baseline/scenario_files/farmer.row.AboveAverageScenario
+++ /dev/null
@@ -1,15 +0,0 @@
-x13
-c_u_x14_
-c_l_x15_
-c_l_x16_
-c_l_x17_
-c_u_x18_
-c_u_x19_
-c_u_x20_
-r_l_x21_
-r_u_x21_
-r_l_x22_
-r_u_x22_
-r_l_x23_
-r_u_x23_
-c_e_ONE_VAR_CONSTANT
\ No newline at end of file
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_baseline/scenario_files/farmer.row.AverageScenario b/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_baseline/scenario_files/farmer.row.AverageScenario
deleted file mode 100644
index b0d1db6bcfb..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_baseline/scenario_files/farmer.row.AverageScenario
+++ /dev/null
@@ -1,15 +0,0 @@
-x13
-c_u_x14_
-c_l_x15_
-c_l_x16_
-c_l_x17_
-c_u_x18_
-c_u_x19_
-c_u_x20_
-r_l_x21_
-r_u_x21_
-r_l_x22_
-r_u_x22_
-r_l_x23_
-r_u_x23_
-c_e_ONE_VAR_CONSTANT
\ No newline at end of file
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_baseline/scenario_files/farmer.row.BelowAverageScenario b/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_baseline/scenario_files/farmer.row.BelowAverageScenario
deleted file mode 100644
index b0d1db6bcfb..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_baseline/scenario_files/farmer.row.BelowAverageScenario
+++ /dev/null
@@ -1,15 +0,0 @@
-x13
-c_u_x14_
-c_l_x15_
-c_l_x16_
-c_l_x17_
-c_u_x18_
-c_u_x19_
-c_u_x20_
-r_l_x21_
-r_u_x21_
-r_l_x22_
-r_u_x22_
-r_l_x23_
-r_u_x23_
-c_e_ONE_VAR_CONSTANT
\ No newline at end of file
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_baseline/scenario_files/farmer.setup.lp.AboveAverageScenario b/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_baseline/scenario_files/farmer.setup.lp.AboveAverageScenario
deleted file mode 100644
index 913cb055e95..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_baseline/scenario_files/farmer.setup.lp.AboveAverageScenario
+++ /dev/null
@@ -1,103 +0,0 @@
-\* Source Pyomo model name=AboveAverageScenario *\
-
-min
-x13:
-+230 x1
-+210 x10
-+100000 x11
-+238 x12
-+260 x2
-+150 x3
--150 x4
--36 x5
--170 x6
--10 x8
-
-s.t.
-
-c_u_x14_:
-+1 x1
-+1 x2
-+1 x3
-<= 500
-
-r_l_x15_:
-+1 x4
->= 0
-
-r_u_x15_:
-+1 x4
-<= 100000
-
-r_l_x16_:
-+1 x5
->= 0
-
-r_u_x16_:
-+1 x5
-<= 6000
-
-r_l_x17_:
-+1 x6
->= 0
-
-r_u_x17_:
-+1 x6
-<= 100000
-
-c_l_x18_:
-+3.6000000000000001 x1
-+1 x10
--1 x4
--1 x7
->= 240
-
-c_l_x19_:
-+1 x11
-+24 x2
--1 x5
--1 x8
->= 0
-
-c_l_x20_:
-+1 x12
-+3 x3
--1 x6
--1 x9
->= 200
-
-c_u_x21_:
--3.6000000000000001 x1
-+1 x4
-+1 x7
-<= 0
-
-c_u_x22_:
--24 x2
-+1 x5
-+1 x8
-<= 0
-
-c_u_x23_:
--3 x3
-+1 x6
-+1 x9
-<= 0
-
-c_e_ONE_VAR_CONSTANT:
-ONE_VAR_CONSTANT = 1.0
-
-bounds
- 0 <= x1 <= 500
- 0 <= x2 <= 500
- 0 <= x3 <= 500
- 0 <= x4 <= +inf
- 0 <= x5 <= +inf
- 0 <= x6 <= +inf
- 0 <= x7 <= +inf
- 0 <= x8 <= +inf
- 0 <= x9 <= +inf
- 0 <= x10 <= +inf
- 0 <= x11 <= +inf
- 0 <= x12 <= +inf
-end
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_baseline/scenario_files/farmer.setup.lp.AverageScenario b/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_baseline/scenario_files/farmer.setup.lp.AverageScenario
deleted file mode 100644
index d4da2dd8c29..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_baseline/scenario_files/farmer.setup.lp.AverageScenario
+++ /dev/null
@@ -1,103 +0,0 @@
-\* Source Pyomo model name=AverageScenario *\
-
-min
-x13:
-+230 x1
-+210 x10
-+100000 x11
-+238 x12
-+260 x2
-+150 x3
--150 x4
--36 x5
--170 x6
--10 x8
-
-s.t.
-
-c_u_x14_:
-+1 x1
-+1 x2
-+1 x3
-<= 500
-
-r_l_x15_:
-+1 x4
->= 0
-
-r_u_x15_:
-+1 x4
-<= 100000
-
-r_l_x16_:
-+1 x5
->= 0
-
-r_u_x16_:
-+1 x5
-<= 6000
-
-r_l_x17_:
-+1 x6
->= 0
-
-r_u_x17_:
-+1 x6
-<= 100000
-
-c_l_x18_:
-+3 x1
-+1 x10
--1 x4
--1 x7
->= 240
-
-c_l_x19_:
-+1 x11
-+20 x2
--1 x5
--1 x8
->= 0
-
-c_l_x20_:
-+1 x12
-+2.5 x3
--1 x6
--1 x9
->= 200
-
-c_u_x21_:
--3 x1
-+1 x4
-+1 x7
-<= 0
-
-c_u_x22_:
--20 x2
-+1 x5
-+1 x8
-<= 0
-
-c_u_x23_:
--2.5 x3
-+1 x6
-+1 x9
-<= 0
-
-c_e_ONE_VAR_CONSTANT:
-ONE_VAR_CONSTANT = 1.0
-
-bounds
- 0 <= x1 <= 500
- 0 <= x2 <= 500
- 0 <= x3 <= 500
- 0 <= x4 <= +inf
- 0 <= x5 <= +inf
- 0 <= x6 <= +inf
- 0 <= x7 <= +inf
- 0 <= x8 <= +inf
- 0 <= x9 <= +inf
- 0 <= x10 <= +inf
- 0 <= x11 <= +inf
- 0 <= x12 <= +inf
-end
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_baseline/scenario_files/farmer.setup.lp.BelowAverageScenario b/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_baseline/scenario_files/farmer.setup.lp.BelowAverageScenario
deleted file mode 100644
index 71fc2bcd1eb..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_baseline/scenario_files/farmer.setup.lp.BelowAverageScenario
+++ /dev/null
@@ -1,103 +0,0 @@
-\* Source Pyomo model name=BelowAverageScenario *\
-
-min
-x13:
-+230 x1
-+210 x10
-+100000 x11
-+238 x12
-+260 x2
-+150 x3
--150 x4
--36 x5
--170 x6
--10 x8
-
-s.t.
-
-c_u_x14_:
-+1 x1
-+1 x2
-+1 x3
-<= 500
-
-r_l_x15_:
-+1 x4
->= 0
-
-r_u_x15_:
-+1 x4
-<= 100000
-
-r_l_x16_:
-+1 x5
->= 0
-
-r_u_x16_:
-+1 x5
-<= 6000
-
-r_l_x17_:
-+1 x6
->= 0
-
-r_u_x17_:
-+1 x6
-<= 100000
-
-c_l_x18_:
-+2.3999999999999999 x1
-+1 x10
--1 x4
--1 x7
->= 240
-
-c_l_x19_:
-+1 x11
-+16 x2
--1 x5
--1 x8
->= 0
-
-c_l_x20_:
-+1 x12
-+2 x3
--1 x6
--1 x9
->= 200
-
-c_u_x21_:
--2.3999999999999999 x1
-+1 x4
-+1 x7
-<= 0
-
-c_u_x22_:
--16 x2
-+1 x5
-+1 x8
-<= 0
-
-c_u_x23_:
--2 x3
-+1 x6
-+1 x9
-<= 0
-
-c_e_ONE_VAR_CONSTANT:
-ONE_VAR_CONSTANT = 1.0
-
-bounds
- 0 <= x1 <= 500
- 0 <= x2 <= 500
- 0 <= x3 <= 500
- 0 <= x4 <= +inf
- 0 <= x5 <= +inf
- 0 <= x6 <= +inf
- 0 <= x7 <= +inf
- 0 <= x8 <= +inf
- 0 <= x9 <= +inf
- 0 <= x10 <= +inf
- 0 <= x11 <= +inf
- 0 <= x12 <= +inf
-end
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_baseline/scenario_files/farmer.sto.AboveAverageScenario b/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_baseline/scenario_files/farmer.sto.AboveAverageScenario
deleted file mode 100644
index a5da65fc4f0..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_baseline/scenario_files/farmer.sto.AboveAverageScenario
+++ /dev/null
@@ -1,7 +0,0 @@
- BL BLOCK1 PERIOD2 0.33333332999999998
- x1 c_l_x15_ 3.6000000000000001
- x2 c_l_x16_ 24
- x3 c_l_x17_ 3
- x1 c_u_x18_ -3.6000000000000001
- x2 c_u_x19_ -24
- x3 c_u_x20_ -3
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_baseline/scenario_files/farmer.sto.AverageScenario b/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_baseline/scenario_files/farmer.sto.AverageScenario
deleted file mode 100644
index 28661ca96b2..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_baseline/scenario_files/farmer.sto.AverageScenario
+++ /dev/null
@@ -1,7 +0,0 @@
- BL BLOCK1 PERIOD2 0.33333333999999998
- x1 c_l_x15_ 3
- x2 c_l_x16_ 20
- x3 c_l_x17_ 2.5
- x1 c_u_x18_ -3
- x2 c_u_x19_ -20
- x3 c_u_x20_ -2.5
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_baseline/scenario_files/farmer.sto.BelowAverageScenario b/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_baseline/scenario_files/farmer.sto.BelowAverageScenario
deleted file mode 100644
index 05c2eb7d5d3..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_baseline/scenario_files/farmer.sto.BelowAverageScenario
+++ /dev/null
@@ -1,7 +0,0 @@
- BL BLOCK1 PERIOD2 0.33333332999999998
- x1 c_l_x15_ 2.3999999999999999
- x2 c_l_x16_ 16
- x3 c_l_x17_ 2
- x1 c_u_x18_ -2.3999999999999999
- x2 c_u_x19_ -16
- x3 c_u_x20_ -2
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_baseline/scenario_files/farmer.sto.struct.AboveAverageScenario b/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_baseline/scenario_files/farmer.sto.struct.AboveAverageScenario
deleted file mode 100644
index 9f5db81cafe..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_baseline/scenario_files/farmer.sto.struct.AboveAverageScenario
+++ /dev/null
@@ -1,6 +0,0 @@
-x1 c_l_x15_
-x2 c_l_x16_
-x3 c_l_x17_
-x1 c_u_x18_
-x2 c_u_x19_
-x3 c_u_x20_
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_baseline/scenario_files/farmer.sto.struct.AverageScenario b/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_baseline/scenario_files/farmer.sto.struct.AverageScenario
deleted file mode 100644
index 9f5db81cafe..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_baseline/scenario_files/farmer.sto.struct.AverageScenario
+++ /dev/null
@@ -1,6 +0,0 @@
-x1 c_l_x15_
-x2 c_l_x16_
-x3 c_l_x17_
-x1 c_u_x18_
-x2 c_u_x19_
-x3 c_u_x20_
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_baseline/scenario_files/farmer.sto.struct.BelowAverageScenario b/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_baseline/scenario_files/farmer.sto.struct.BelowAverageScenario
deleted file mode 100644
index 9f5db81cafe..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_baseline/scenario_files/farmer.sto.struct.BelowAverageScenario
+++ /dev/null
@@ -1,6 +0,0 @@
-x1 c_l_x15_
-x2 c_l_x16_
-x3 c_l_x17_
-x1 c_u_x18_
-x2 c_u_x19_
-x3 c_u_x20_
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_baseline/scenario_files/farmer.tim.AboveAverageScenario b/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_baseline/scenario_files/farmer.tim.AboveAverageScenario
deleted file mode 100644
index e708f6364a5..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_baseline/scenario_files/farmer.tim.AboveAverageScenario
+++ /dev/null
@@ -1,35 +0,0 @@
-TIME farmer
-PERIODS EXPLICIT
- TIME1
- TIME2
-ROWS
- x13 TIME1
- c_u_x14_ TIME1
- c_l_x15_ TIME2
- c_l_x16_ TIME2
- c_l_x17_ TIME2
- c_u_x18_ TIME2
- c_u_x19_ TIME2
- c_u_x20_ TIME2
- r_l_x21_ TIME2
- r_u_x21_ TIME2
- r_l_x22_ TIME2
- r_u_x22_ TIME2
- r_l_x23_ TIME2
- r_u_x23_ TIME2
- c_e_ONE_VAR_CONSTANT TIME2
-COLS
- x1 TIME1
- x2 TIME1
- x3 TIME1
- x10 TIME2
- x11 TIME2
- x12 TIME2
- x4 TIME2
- x5 TIME2
- x6 TIME2
- x7 TIME2
- x8 TIME2
- x9 TIME2
- ONE_VAR_CONSTANT TIME2
-ENDATA
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_baseline/scenario_files/farmer.tim.AverageScenario b/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_baseline/scenario_files/farmer.tim.AverageScenario
deleted file mode 100644
index e708f6364a5..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_baseline/scenario_files/farmer.tim.AverageScenario
+++ /dev/null
@@ -1,35 +0,0 @@
-TIME farmer
-PERIODS EXPLICIT
- TIME1
- TIME2
-ROWS
- x13 TIME1
- c_u_x14_ TIME1
- c_l_x15_ TIME2
- c_l_x16_ TIME2
- c_l_x17_ TIME2
- c_u_x18_ TIME2
- c_u_x19_ TIME2
- c_u_x20_ TIME2
- r_l_x21_ TIME2
- r_u_x21_ TIME2
- r_l_x22_ TIME2
- r_u_x22_ TIME2
- r_l_x23_ TIME2
- r_u_x23_ TIME2
- c_e_ONE_VAR_CONSTANT TIME2
-COLS
- x1 TIME1
- x2 TIME1
- x3 TIME1
- x10 TIME2
- x11 TIME2
- x12 TIME2
- x4 TIME2
- x5 TIME2
- x6 TIME2
- x7 TIME2
- x8 TIME2
- x9 TIME2
- ONE_VAR_CONSTANT TIME2
-ENDATA
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_baseline/scenario_files/farmer.tim.BelowAverageScenario b/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_baseline/scenario_files/farmer.tim.BelowAverageScenario
deleted file mode 100644
index e708f6364a5..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_baseline/scenario_files/farmer.tim.BelowAverageScenario
+++ /dev/null
@@ -1,35 +0,0 @@
-TIME farmer
-PERIODS EXPLICIT
- TIME1
- TIME2
-ROWS
- x13 TIME1
- c_u_x14_ TIME1
- c_l_x15_ TIME2
- c_l_x16_ TIME2
- c_l_x17_ TIME2
- c_u_x18_ TIME2
- c_u_x19_ TIME2
- c_u_x20_ TIME2
- r_l_x21_ TIME2
- r_u_x21_ TIME2
- r_l_x22_ TIME2
- r_u_x22_ TIME2
- r_l_x23_ TIME2
- r_u_x23_ TIME2
- c_e_ONE_VAR_CONSTANT TIME2
-COLS
- x1 TIME1
- x2 TIME1
- x3 TIME1
- x10 TIME2
- x11 TIME2
- x12 TIME2
- x4 TIME2
- x5 TIME2
- x6 TIME2
- x7 TIME2
- x8 TIME2
- x9 TIME2
- ONE_VAR_CONSTANT TIME2
-ENDATA
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_ignore_derived_baseline/farmer.col b/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_ignore_derived_baseline/farmer.col
deleted file mode 100644
index d8d77c489b1..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_ignore_derived_baseline/farmer.col
+++ /dev/null
@@ -1,13 +0,0 @@
-x1
-x2
-x3
-x10
-x11
-x12
-x4
-x5
-x6
-x7
-x8
-x9
-ONE_VAR_CONSTANT
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_ignore_derived_baseline/farmer.cor b/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_ignore_derived_baseline/farmer.cor
deleted file mode 100644
index 93f32120d86..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_ignore_derived_baseline/farmer.cor
+++ /dev/null
@@ -1,104 +0,0 @@
-\* Source Pyomo model name=BelowAverageScenario *\
-
-min
-x13:
-+230 x1
-+260 x2
-+150 x3
-+210 x10
-+100000 x11
-+238 x12
--150 x4
--36 x5
--170 x6
--10 x8
-+0 ONE_VAR_CONSTANT
-
-s.t.
-
-c_u_x14_:
-+1 x1
-+1 x2
-+1 x3
-<= 500
-
-c_l_x15_:
-+2.3999999999999999 x1
-+1 x10
--1 x4
--1 x7
->= 240
-
-c_l_x16_:
-+16 x2
-+1 x11
--1 x5
--1 x8
->= 0
-
-c_l_x17_:
-+2 x3
-+1 x12
--1 x6
--1 x9
->= 200
-
-c_u_x18_:
--2.3999999999999999 x1
-+1 x4
-+1 x7
-<= 0
-
-c_u_x19_:
--16 x2
-+1 x5
-+1 x8
-<= 0
-
-c_u_x20_:
--2 x3
-+1 x6
-+1 x9
-<= 0
-
-r_l_x21_:
-+1 x4
->= 0
-
-r_u_x21_:
-+1 x4
-<= 100000
-
-r_l_x22_:
-+1 x5
->= 0
-
-r_u_x22_:
-+1 x5
-<= 6000
-
-r_l_x23_:
-+1 x6
->= 0
-
-r_u_x23_:
-+1 x6
-<= 100000
-
-c_e_ONE_VAR_CONSTANT:
-ONE_VAR_CONSTANT = 1.0
-
-bounds
- 0 <= x1 <= 500
- 0 <= x2 <= 500
- 0 <= x3 <= 500
- 0 <= x4 <= +inf
- 0 <= x5 <= +inf
- 0 <= x6 <= +inf
- 0 <= x7 <= +inf
- 0 <= x8 <= +inf
- 0 <= x9 <= +inf
- 0 <= x10 <= +inf
- 0 <= x11 <= +inf
- 0 <= x12 <= +inf
-end
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_ignore_derived_baseline/farmer.cor.symbols b/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_ignore_derived_baseline/farmer.cor.symbols
deleted file mode 100644
index 6950b396127..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_ignore_derived_baseline/farmer.cor.symbols
+++ /dev/null
@@ -1,3 +0,0 @@
-x1 DevotedAcreage:$CORN
-x2 DevotedAcreage:$SUGAR_BEETS
-x3 DevotedAcreage:$WHEAT
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_ignore_derived_baseline/farmer.lp.det b/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_ignore_derived_baseline/farmer.lp.det
deleted file mode 100644
index 1a33abdfb81..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_ignore_derived_baseline/farmer.lp.det
+++ /dev/null
@@ -1,104 +0,0 @@
-\* Source Pyomo model name=ZeroStochasticData *\
-
-min
-x13:
-+230 x1
-+260 x2
-+150 x3
-+210 x10
-+100000 x11
-+238 x12
--150 x4
--36 x5
--170 x6
--10 x8
-+0 ONE_VAR_CONSTANT
-
-s.t.
-
-c_u_x14_:
-+1 x1
-+1 x2
-+1 x3
-<= 500
-
-c_l_x15_:
--9876543210 x1
-+1 x10
--1 x4
--1 x7
->= 240
-
-c_l_x16_:
--9876543210 x2
-+1 x11
--1 x5
--1 x8
->= 0
-
-c_l_x17_:
--9876543210 x3
-+1 x12
--1 x6
--1 x9
->= 200
-
-c_u_x18_:
--9876543210 x1
-+1 x4
-+1 x7
-<= 0
-
-c_u_x19_:
--9876543210 x2
-+1 x5
-+1 x8
-<= 0
-
-c_u_x20_:
--9876543210 x3
-+1 x6
-+1 x9
-<= 0
-
-r_l_x21_:
-+1 x4
->= 0
-
-r_u_x21_:
-+1 x4
-<= 100000
-
-r_l_x22_:
-+1 x5
->= 0
-
-r_u_x22_:
-+1 x5
-<= 6000
-
-r_l_x23_:
-+1 x6
->= 0
-
-r_u_x23_:
-+1 x6
-<= 100000
-
-c_e_ONE_VAR_CONSTANT:
-ONE_VAR_CONSTANT = 1.0
-
-bounds
- 0 <= x1 <= 500
- 0 <= x2 <= 500
- 0 <= x3 <= 500
- 0 <= x4 <= +inf
- 0 <= x5 <= +inf
- 0 <= x6 <= +inf
- 0 <= x7 <= +inf
- 0 <= x8 <= +inf
- 0 <= x9 <= +inf
- 0 <= x10 <= +inf
- 0 <= x11 <= +inf
- 0 <= x12 <= +inf
-end
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_ignore_derived_baseline/farmer.row b/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_ignore_derived_baseline/farmer.row
deleted file mode 100644
index b0d1db6bcfb..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_ignore_derived_baseline/farmer.row
+++ /dev/null
@@ -1,15 +0,0 @@
-x13
-c_u_x14_
-c_l_x15_
-c_l_x16_
-c_l_x17_
-c_u_x18_
-c_u_x19_
-c_u_x20_
-r_l_x21_
-r_u_x21_
-r_l_x22_
-r_u_x22_
-r_l_x23_
-r_u_x23_
-c_e_ONE_VAR_CONSTANT
\ No newline at end of file
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_ignore_derived_baseline/farmer.sto b/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_ignore_derived_baseline/farmer.sto
deleted file mode 100644
index 585ffe37033..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_ignore_derived_baseline/farmer.sto
+++ /dev/null
@@ -1,24 +0,0 @@
-STOCH farmer
-BLOCKS DISCRETE REPLACE
- BL BLOCK1 PERIOD2 0.33333332999999998
- x1 c_l_x15_ 2.3999999999999999
- x2 c_l_x16_ 16
- x3 c_l_x17_ 2
- x1 c_u_x18_ -2.3999999999999999
- x2 c_u_x19_ -16
- x3 c_u_x20_ -2
- BL BLOCK1 PERIOD2 0.33333333999999998
- x1 c_l_x15_ 3
- x2 c_l_x16_ 20
- x3 c_l_x17_ 2.5
- x1 c_u_x18_ -3
- x2 c_u_x19_ -20
- x3 c_u_x20_ -2.5
- BL BLOCK1 PERIOD2 0.33333332999999998
- x1 c_l_x15_ 3.6000000000000001
- x2 c_l_x16_ 24
- x3 c_l_x17_ 3
- x1 c_u_x18_ -3.6000000000000001
- x2 c_u_x19_ -24
- x3 c_u_x20_ -3
-ENDATA
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_ignore_derived_baseline/farmer.sto.struct b/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_ignore_derived_baseline/farmer.sto.struct
deleted file mode 100644
index 9f5db81cafe..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_ignore_derived_baseline/farmer.sto.struct
+++ /dev/null
@@ -1,6 +0,0 @@
-x1 c_l_x15_
-x2 c_l_x16_
-x3 c_l_x17_
-x1 c_u_x18_
-x2 c_u_x19_
-x3 c_u_x20_
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_ignore_derived_baseline/farmer.tim b/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_ignore_derived_baseline/farmer.tim
deleted file mode 100644
index e708f6364a5..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_ignore_derived_baseline/farmer.tim
+++ /dev/null
@@ -1,35 +0,0 @@
-TIME farmer
-PERIODS EXPLICIT
- TIME1
- TIME2
-ROWS
- x13 TIME1
- c_u_x14_ TIME1
- c_l_x15_ TIME2
- c_l_x16_ TIME2
- c_l_x17_ TIME2
- c_u_x18_ TIME2
- c_u_x19_ TIME2
- c_u_x20_ TIME2
- r_l_x21_ TIME2
- r_u_x21_ TIME2
- r_l_x22_ TIME2
- r_u_x22_ TIME2
- r_l_x23_ TIME2
- r_u_x23_ TIME2
- c_e_ONE_VAR_CONSTANT TIME2
-COLS
- x1 TIME1
- x2 TIME1
- x3 TIME1
- x10 TIME2
- x11 TIME2
- x12 TIME2
- x4 TIME2
- x5 TIME2
- x6 TIME2
- x7 TIME2
- x8 TIME2
- x9 TIME2
- ONE_VAR_CONSTANT TIME2
-ENDATA
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_ignore_derived_baseline/scenario_files/farmer.col.AboveAverageScenario b/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_ignore_derived_baseline/scenario_files/farmer.col.AboveAverageScenario
deleted file mode 100644
index d8d77c489b1..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_ignore_derived_baseline/scenario_files/farmer.col.AboveAverageScenario
+++ /dev/null
@@ -1,13 +0,0 @@
-x1
-x2
-x3
-x10
-x11
-x12
-x4
-x5
-x6
-x7
-x8
-x9
-ONE_VAR_CONSTANT
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_ignore_derived_baseline/scenario_files/farmer.col.AverageScenario b/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_ignore_derived_baseline/scenario_files/farmer.col.AverageScenario
deleted file mode 100644
index d8d77c489b1..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_ignore_derived_baseline/scenario_files/farmer.col.AverageScenario
+++ /dev/null
@@ -1,13 +0,0 @@
-x1
-x2
-x3
-x10
-x11
-x12
-x4
-x5
-x6
-x7
-x8
-x9
-ONE_VAR_CONSTANT
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_ignore_derived_baseline/scenario_files/farmer.col.BelowAverageScenario b/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_ignore_derived_baseline/scenario_files/farmer.col.BelowAverageScenario
deleted file mode 100644
index d8d77c489b1..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_ignore_derived_baseline/scenario_files/farmer.col.BelowAverageScenario
+++ /dev/null
@@ -1,13 +0,0 @@
-x1
-x2
-x3
-x10
-x11
-x12
-x4
-x5
-x6
-x7
-x8
-x9
-ONE_VAR_CONSTANT
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_ignore_derived_baseline/scenario_files/farmer.lp.AboveAverageScenario b/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_ignore_derived_baseline/scenario_files/farmer.lp.AboveAverageScenario
deleted file mode 100644
index 941b83a5e48..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_ignore_derived_baseline/scenario_files/farmer.lp.AboveAverageScenario
+++ /dev/null
@@ -1,104 +0,0 @@
-\* Source Pyomo model name=AboveAverageScenario *\
-
-min
-x13:
-+230 x1
-+260 x2
-+150 x3
-+210 x10
-+100000 x11
-+238 x12
--150 x4
--36 x5
--170 x6
--10 x8
-+0 ONE_VAR_CONSTANT
-
-s.t.
-
-c_u_x14_:
-+1 x1
-+1 x2
-+1 x3
-<= 500
-
-c_l_x15_:
-+3.6000000000000001 x1
-+1 x10
--1 x4
--1 x7
->= 240
-
-c_l_x16_:
-+24 x2
-+1 x11
--1 x5
--1 x8
->= 0
-
-c_l_x17_:
-+3 x3
-+1 x12
--1 x6
--1 x9
->= 200
-
-c_u_x18_:
--3.6000000000000001 x1
-+1 x4
-+1 x7
-<= 0
-
-c_u_x19_:
--24 x2
-+1 x5
-+1 x8
-<= 0
-
-c_u_x20_:
--3 x3
-+1 x6
-+1 x9
-<= 0
-
-r_l_x21_:
-+1 x4
->= 0
-
-r_u_x21_:
-+1 x4
-<= 100000
-
-r_l_x22_:
-+1 x5
->= 0
-
-r_u_x22_:
-+1 x5
-<= 6000
-
-r_l_x23_:
-+1 x6
->= 0
-
-r_u_x23_:
-+1 x6
-<= 100000
-
-c_e_ONE_VAR_CONSTANT:
-ONE_VAR_CONSTANT = 1.0
-
-bounds
- 0 <= x1 <= 500
- 0 <= x2 <= 500
- 0 <= x3 <= 500
- 0 <= x4 <= +inf
- 0 <= x5 <= +inf
- 0 <= x6 <= +inf
- 0 <= x7 <= +inf
- 0 <= x8 <= +inf
- 0 <= x9 <= +inf
- 0 <= x10 <= +inf
- 0 <= x11 <= +inf
- 0 <= x12 <= +inf
-end
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_ignore_derived_baseline/scenario_files/farmer.lp.AverageScenario b/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_ignore_derived_baseline/scenario_files/farmer.lp.AverageScenario
deleted file mode 100644
index fec79121b71..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_ignore_derived_baseline/scenario_files/farmer.lp.AverageScenario
+++ /dev/null
@@ -1,104 +0,0 @@
-\* Source Pyomo model name=AverageScenario *\
-
-min
-x13:
-+230 x1
-+260 x2
-+150 x3
-+210 x10
-+100000 x11
-+238 x12
--150 x4
--36 x5
--170 x6
--10 x8
-+0 ONE_VAR_CONSTANT
-
-s.t.
-
-c_u_x14_:
-+1 x1
-+1 x2
-+1 x3
-<= 500
-
-c_l_x15_:
-+3 x1
-+1 x10
--1 x4
--1 x7
->= 240
-
-c_l_x16_:
-+20 x2
-+1 x11
--1 x5
--1 x8
->= 0
-
-c_l_x17_:
-+2.5 x3
-+1 x12
--1 x6
--1 x9
->= 200
-
-c_u_x18_:
--3 x1
-+1 x4
-+1 x7
-<= 0
-
-c_u_x19_:
--20 x2
-+1 x5
-+1 x8
-<= 0
-
-c_u_x20_:
--2.5 x3
-+1 x6
-+1 x9
-<= 0
-
-r_l_x21_:
-+1 x4
->= 0
-
-r_u_x21_:
-+1 x4
-<= 100000
-
-r_l_x22_:
-+1 x5
->= 0
-
-r_u_x22_:
-+1 x5
-<= 6000
-
-r_l_x23_:
-+1 x6
->= 0
-
-r_u_x23_:
-+1 x6
-<= 100000
-
-c_e_ONE_VAR_CONSTANT:
-ONE_VAR_CONSTANT = 1.0
-
-bounds
- 0 <= x1 <= 500
- 0 <= x2 <= 500
- 0 <= x3 <= 500
- 0 <= x4 <= +inf
- 0 <= x5 <= +inf
- 0 <= x6 <= +inf
- 0 <= x7 <= +inf
- 0 <= x8 <= +inf
- 0 <= x9 <= +inf
- 0 <= x10 <= +inf
- 0 <= x11 <= +inf
- 0 <= x12 <= +inf
-end
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_ignore_derived_baseline/scenario_files/farmer.lp.BelowAverageScenario b/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_ignore_derived_baseline/scenario_files/farmer.lp.BelowAverageScenario
deleted file mode 100644
index 93f32120d86..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_ignore_derived_baseline/scenario_files/farmer.lp.BelowAverageScenario
+++ /dev/null
@@ -1,104 +0,0 @@
-\* Source Pyomo model name=BelowAverageScenario *\
-
-min
-x13:
-+230 x1
-+260 x2
-+150 x3
-+210 x10
-+100000 x11
-+238 x12
--150 x4
--36 x5
--170 x6
--10 x8
-+0 ONE_VAR_CONSTANT
-
-s.t.
-
-c_u_x14_:
-+1 x1
-+1 x2
-+1 x3
-<= 500
-
-c_l_x15_:
-+2.3999999999999999 x1
-+1 x10
--1 x4
--1 x7
->= 240
-
-c_l_x16_:
-+16 x2
-+1 x11
--1 x5
--1 x8
->= 0
-
-c_l_x17_:
-+2 x3
-+1 x12
--1 x6
--1 x9
->= 200
-
-c_u_x18_:
--2.3999999999999999 x1
-+1 x4
-+1 x7
-<= 0
-
-c_u_x19_:
--16 x2
-+1 x5
-+1 x8
-<= 0
-
-c_u_x20_:
--2 x3
-+1 x6
-+1 x9
-<= 0
-
-r_l_x21_:
-+1 x4
->= 0
-
-r_u_x21_:
-+1 x4
-<= 100000
-
-r_l_x22_:
-+1 x5
->= 0
-
-r_u_x22_:
-+1 x5
-<= 6000
-
-r_l_x23_:
-+1 x6
->= 0
-
-r_u_x23_:
-+1 x6
-<= 100000
-
-c_e_ONE_VAR_CONSTANT:
-ONE_VAR_CONSTANT = 1.0
-
-bounds
- 0 <= x1 <= 500
- 0 <= x2 <= 500
- 0 <= x3 <= 500
- 0 <= x4 <= +inf
- 0 <= x5 <= +inf
- 0 <= x6 <= +inf
- 0 <= x7 <= +inf
- 0 <= x8 <= +inf
- 0 <= x9 <= +inf
- 0 <= x10 <= +inf
- 0 <= x11 <= +inf
- 0 <= x12 <= +inf
-end
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_ignore_derived_baseline/scenario_files/farmer.lp.det.AboveAverageScenario b/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_ignore_derived_baseline/scenario_files/farmer.lp.det.AboveAverageScenario
deleted file mode 100644
index 1a33abdfb81..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_ignore_derived_baseline/scenario_files/farmer.lp.det.AboveAverageScenario
+++ /dev/null
@@ -1,104 +0,0 @@
-\* Source Pyomo model name=ZeroStochasticData *\
-
-min
-x13:
-+230 x1
-+260 x2
-+150 x3
-+210 x10
-+100000 x11
-+238 x12
--150 x4
--36 x5
--170 x6
--10 x8
-+0 ONE_VAR_CONSTANT
-
-s.t.
-
-c_u_x14_:
-+1 x1
-+1 x2
-+1 x3
-<= 500
-
-c_l_x15_:
--9876543210 x1
-+1 x10
--1 x4
--1 x7
->= 240
-
-c_l_x16_:
--9876543210 x2
-+1 x11
--1 x5
--1 x8
->= 0
-
-c_l_x17_:
--9876543210 x3
-+1 x12
--1 x6
--1 x9
->= 200
-
-c_u_x18_:
--9876543210 x1
-+1 x4
-+1 x7
-<= 0
-
-c_u_x19_:
--9876543210 x2
-+1 x5
-+1 x8
-<= 0
-
-c_u_x20_:
--9876543210 x3
-+1 x6
-+1 x9
-<= 0
-
-r_l_x21_:
-+1 x4
->= 0
-
-r_u_x21_:
-+1 x4
-<= 100000
-
-r_l_x22_:
-+1 x5
->= 0
-
-r_u_x22_:
-+1 x5
-<= 6000
-
-r_l_x23_:
-+1 x6
->= 0
-
-r_u_x23_:
-+1 x6
-<= 100000
-
-c_e_ONE_VAR_CONSTANT:
-ONE_VAR_CONSTANT = 1.0
-
-bounds
- 0 <= x1 <= 500
- 0 <= x2 <= 500
- 0 <= x3 <= 500
- 0 <= x4 <= +inf
- 0 <= x5 <= +inf
- 0 <= x6 <= +inf
- 0 <= x7 <= +inf
- 0 <= x8 <= +inf
- 0 <= x9 <= +inf
- 0 <= x10 <= +inf
- 0 <= x11 <= +inf
- 0 <= x12 <= +inf
-end
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_ignore_derived_baseline/scenario_files/farmer.lp.det.AverageScenario b/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_ignore_derived_baseline/scenario_files/farmer.lp.det.AverageScenario
deleted file mode 100644
index 1a33abdfb81..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_ignore_derived_baseline/scenario_files/farmer.lp.det.AverageScenario
+++ /dev/null
@@ -1,104 +0,0 @@
-\* Source Pyomo model name=ZeroStochasticData *\
-
-min
-x13:
-+230 x1
-+260 x2
-+150 x3
-+210 x10
-+100000 x11
-+238 x12
--150 x4
--36 x5
--170 x6
--10 x8
-+0 ONE_VAR_CONSTANT
-
-s.t.
-
-c_u_x14_:
-+1 x1
-+1 x2
-+1 x3
-<= 500
-
-c_l_x15_:
--9876543210 x1
-+1 x10
--1 x4
--1 x7
->= 240
-
-c_l_x16_:
--9876543210 x2
-+1 x11
--1 x5
--1 x8
->= 0
-
-c_l_x17_:
--9876543210 x3
-+1 x12
--1 x6
--1 x9
->= 200
-
-c_u_x18_:
--9876543210 x1
-+1 x4
-+1 x7
-<= 0
-
-c_u_x19_:
--9876543210 x2
-+1 x5
-+1 x8
-<= 0
-
-c_u_x20_:
--9876543210 x3
-+1 x6
-+1 x9
-<= 0
-
-r_l_x21_:
-+1 x4
->= 0
-
-r_u_x21_:
-+1 x4
-<= 100000
-
-r_l_x22_:
-+1 x5
->= 0
-
-r_u_x22_:
-+1 x5
-<= 6000
-
-r_l_x23_:
-+1 x6
->= 0
-
-r_u_x23_:
-+1 x6
-<= 100000
-
-c_e_ONE_VAR_CONSTANT:
-ONE_VAR_CONSTANT = 1.0
-
-bounds
- 0 <= x1 <= 500
- 0 <= x2 <= 500
- 0 <= x3 <= 500
- 0 <= x4 <= +inf
- 0 <= x5 <= +inf
- 0 <= x6 <= +inf
- 0 <= x7 <= +inf
- 0 <= x8 <= +inf
- 0 <= x9 <= +inf
- 0 <= x10 <= +inf
- 0 <= x11 <= +inf
- 0 <= x12 <= +inf
-end
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_ignore_derived_baseline/scenario_files/farmer.lp.det.BelowAverageScenario b/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_ignore_derived_baseline/scenario_files/farmer.lp.det.BelowAverageScenario
deleted file mode 100644
index 1a33abdfb81..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_ignore_derived_baseline/scenario_files/farmer.lp.det.BelowAverageScenario
+++ /dev/null
@@ -1,104 +0,0 @@
-\* Source Pyomo model name=ZeroStochasticData *\
-
-min
-x13:
-+230 x1
-+260 x2
-+150 x3
-+210 x10
-+100000 x11
-+238 x12
--150 x4
--36 x5
--170 x6
--10 x8
-+0 ONE_VAR_CONSTANT
-
-s.t.
-
-c_u_x14_:
-+1 x1
-+1 x2
-+1 x3
-<= 500
-
-c_l_x15_:
--9876543210 x1
-+1 x10
--1 x4
--1 x7
->= 240
-
-c_l_x16_:
--9876543210 x2
-+1 x11
--1 x5
--1 x8
->= 0
-
-c_l_x17_:
--9876543210 x3
-+1 x12
--1 x6
--1 x9
->= 200
-
-c_u_x18_:
--9876543210 x1
-+1 x4
-+1 x7
-<= 0
-
-c_u_x19_:
--9876543210 x2
-+1 x5
-+1 x8
-<= 0
-
-c_u_x20_:
--9876543210 x3
-+1 x6
-+1 x9
-<= 0
-
-r_l_x21_:
-+1 x4
->= 0
-
-r_u_x21_:
-+1 x4
-<= 100000
-
-r_l_x22_:
-+1 x5
->= 0
-
-r_u_x22_:
-+1 x5
-<= 6000
-
-r_l_x23_:
-+1 x6
->= 0
-
-r_u_x23_:
-+1 x6
-<= 100000
-
-c_e_ONE_VAR_CONSTANT:
-ONE_VAR_CONSTANT = 1.0
-
-bounds
- 0 <= x1 <= 500
- 0 <= x2 <= 500
- 0 <= x3 <= 500
- 0 <= x4 <= +inf
- 0 <= x5 <= +inf
- 0 <= x6 <= +inf
- 0 <= x7 <= +inf
- 0 <= x8 <= +inf
- 0 <= x9 <= +inf
- 0 <= x10 <= +inf
- 0 <= x11 <= +inf
- 0 <= x12 <= +inf
-end
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_ignore_derived_baseline/scenario_files/farmer.lp.symbols.AboveAverageScenario b/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_ignore_derived_baseline/scenario_files/farmer.lp.symbols.AboveAverageScenario
deleted file mode 100644
index 6950b396127..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_ignore_derived_baseline/scenario_files/farmer.lp.symbols.AboveAverageScenario
+++ /dev/null
@@ -1,3 +0,0 @@
-x1 DevotedAcreage:$CORN
-x2 DevotedAcreage:$SUGAR_BEETS
-x3 DevotedAcreage:$WHEAT
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_ignore_derived_baseline/scenario_files/farmer.lp.symbols.AverageScenario b/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_ignore_derived_baseline/scenario_files/farmer.lp.symbols.AverageScenario
deleted file mode 100644
index 6950b396127..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_ignore_derived_baseline/scenario_files/farmer.lp.symbols.AverageScenario
+++ /dev/null
@@ -1,3 +0,0 @@
-x1 DevotedAcreage:$CORN
-x2 DevotedAcreage:$SUGAR_BEETS
-x3 DevotedAcreage:$WHEAT
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_ignore_derived_baseline/scenario_files/farmer.lp.symbols.BelowAverageScenario b/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_ignore_derived_baseline/scenario_files/farmer.lp.symbols.BelowAverageScenario
deleted file mode 100644
index 6950b396127..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_ignore_derived_baseline/scenario_files/farmer.lp.symbols.BelowAverageScenario
+++ /dev/null
@@ -1,3 +0,0 @@
-x1 DevotedAcreage:$CORN
-x2 DevotedAcreage:$SUGAR_BEETS
-x3 DevotedAcreage:$WHEAT
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_ignore_derived_baseline/scenario_files/farmer.row.AboveAverageScenario b/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_ignore_derived_baseline/scenario_files/farmer.row.AboveAverageScenario
deleted file mode 100644
index b0d1db6bcfb..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_ignore_derived_baseline/scenario_files/farmer.row.AboveAverageScenario
+++ /dev/null
@@ -1,15 +0,0 @@
-x13
-c_u_x14_
-c_l_x15_
-c_l_x16_
-c_l_x17_
-c_u_x18_
-c_u_x19_
-c_u_x20_
-r_l_x21_
-r_u_x21_
-r_l_x22_
-r_u_x22_
-r_l_x23_
-r_u_x23_
-c_e_ONE_VAR_CONSTANT
\ No newline at end of file
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_ignore_derived_baseline/scenario_files/farmer.row.AverageScenario b/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_ignore_derived_baseline/scenario_files/farmer.row.AverageScenario
deleted file mode 100644
index b0d1db6bcfb..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_ignore_derived_baseline/scenario_files/farmer.row.AverageScenario
+++ /dev/null
@@ -1,15 +0,0 @@
-x13
-c_u_x14_
-c_l_x15_
-c_l_x16_
-c_l_x17_
-c_u_x18_
-c_u_x19_
-c_u_x20_
-r_l_x21_
-r_u_x21_
-r_l_x22_
-r_u_x22_
-r_l_x23_
-r_u_x23_
-c_e_ONE_VAR_CONSTANT
\ No newline at end of file
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_ignore_derived_baseline/scenario_files/farmer.row.BelowAverageScenario b/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_ignore_derived_baseline/scenario_files/farmer.row.BelowAverageScenario
deleted file mode 100644
index b0d1db6bcfb..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_ignore_derived_baseline/scenario_files/farmer.row.BelowAverageScenario
+++ /dev/null
@@ -1,15 +0,0 @@
-x13
-c_u_x14_
-c_l_x15_
-c_l_x16_
-c_l_x17_
-c_u_x18_
-c_u_x19_
-c_u_x20_
-r_l_x21_
-r_u_x21_
-r_l_x22_
-r_u_x22_
-r_l_x23_
-r_u_x23_
-c_e_ONE_VAR_CONSTANT
\ No newline at end of file
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_ignore_derived_baseline/scenario_files/farmer.setup.lp.AboveAverageScenario b/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_ignore_derived_baseline/scenario_files/farmer.setup.lp.AboveAverageScenario
deleted file mode 100644
index 913cb055e95..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_ignore_derived_baseline/scenario_files/farmer.setup.lp.AboveAverageScenario
+++ /dev/null
@@ -1,103 +0,0 @@
-\* Source Pyomo model name=AboveAverageScenario *\
-
-min
-x13:
-+230 x1
-+210 x10
-+100000 x11
-+238 x12
-+260 x2
-+150 x3
--150 x4
--36 x5
--170 x6
--10 x8
-
-s.t.
-
-c_u_x14_:
-+1 x1
-+1 x2
-+1 x3
-<= 500
-
-r_l_x15_:
-+1 x4
->= 0
-
-r_u_x15_:
-+1 x4
-<= 100000
-
-r_l_x16_:
-+1 x5
->= 0
-
-r_u_x16_:
-+1 x5
-<= 6000
-
-r_l_x17_:
-+1 x6
->= 0
-
-r_u_x17_:
-+1 x6
-<= 100000
-
-c_l_x18_:
-+3.6000000000000001 x1
-+1 x10
--1 x4
--1 x7
->= 240
-
-c_l_x19_:
-+1 x11
-+24 x2
--1 x5
--1 x8
->= 0
-
-c_l_x20_:
-+1 x12
-+3 x3
--1 x6
--1 x9
->= 200
-
-c_u_x21_:
--3.6000000000000001 x1
-+1 x4
-+1 x7
-<= 0
-
-c_u_x22_:
--24 x2
-+1 x5
-+1 x8
-<= 0
-
-c_u_x23_:
--3 x3
-+1 x6
-+1 x9
-<= 0
-
-c_e_ONE_VAR_CONSTANT:
-ONE_VAR_CONSTANT = 1.0
-
-bounds
- 0 <= x1 <= 500
- 0 <= x2 <= 500
- 0 <= x3 <= 500
- 0 <= x4 <= +inf
- 0 <= x5 <= +inf
- 0 <= x6 <= +inf
- 0 <= x7 <= +inf
- 0 <= x8 <= +inf
- 0 <= x9 <= +inf
- 0 <= x10 <= +inf
- 0 <= x11 <= +inf
- 0 <= x12 <= +inf
-end
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_ignore_derived_baseline/scenario_files/farmer.setup.lp.AverageScenario b/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_ignore_derived_baseline/scenario_files/farmer.setup.lp.AverageScenario
deleted file mode 100644
index d4da2dd8c29..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_ignore_derived_baseline/scenario_files/farmer.setup.lp.AverageScenario
+++ /dev/null
@@ -1,103 +0,0 @@
-\* Source Pyomo model name=AverageScenario *\
-
-min
-x13:
-+230 x1
-+210 x10
-+100000 x11
-+238 x12
-+260 x2
-+150 x3
--150 x4
--36 x5
--170 x6
--10 x8
-
-s.t.
-
-c_u_x14_:
-+1 x1
-+1 x2
-+1 x3
-<= 500
-
-r_l_x15_:
-+1 x4
->= 0
-
-r_u_x15_:
-+1 x4
-<= 100000
-
-r_l_x16_:
-+1 x5
->= 0
-
-r_u_x16_:
-+1 x5
-<= 6000
-
-r_l_x17_:
-+1 x6
->= 0
-
-r_u_x17_:
-+1 x6
-<= 100000
-
-c_l_x18_:
-+3 x1
-+1 x10
--1 x4
--1 x7
->= 240
-
-c_l_x19_:
-+1 x11
-+20 x2
--1 x5
--1 x8
->= 0
-
-c_l_x20_:
-+1 x12
-+2.5 x3
--1 x6
--1 x9
->= 200
-
-c_u_x21_:
--3 x1
-+1 x4
-+1 x7
-<= 0
-
-c_u_x22_:
--20 x2
-+1 x5
-+1 x8
-<= 0
-
-c_u_x23_:
--2.5 x3
-+1 x6
-+1 x9
-<= 0
-
-c_e_ONE_VAR_CONSTANT:
-ONE_VAR_CONSTANT = 1.0
-
-bounds
- 0 <= x1 <= 500
- 0 <= x2 <= 500
- 0 <= x3 <= 500
- 0 <= x4 <= +inf
- 0 <= x5 <= +inf
- 0 <= x6 <= +inf
- 0 <= x7 <= +inf
- 0 <= x8 <= +inf
- 0 <= x9 <= +inf
- 0 <= x10 <= +inf
- 0 <= x11 <= +inf
- 0 <= x12 <= +inf
-end
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_ignore_derived_baseline/scenario_files/farmer.setup.lp.BelowAverageScenario b/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_ignore_derived_baseline/scenario_files/farmer.setup.lp.BelowAverageScenario
deleted file mode 100644
index 71fc2bcd1eb..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_ignore_derived_baseline/scenario_files/farmer.setup.lp.BelowAverageScenario
+++ /dev/null
@@ -1,103 +0,0 @@
-\* Source Pyomo model name=BelowAverageScenario *\
-
-min
-x13:
-+230 x1
-+210 x10
-+100000 x11
-+238 x12
-+260 x2
-+150 x3
--150 x4
--36 x5
--170 x6
--10 x8
-
-s.t.
-
-c_u_x14_:
-+1 x1
-+1 x2
-+1 x3
-<= 500
-
-r_l_x15_:
-+1 x4
->= 0
-
-r_u_x15_:
-+1 x4
-<= 100000
-
-r_l_x16_:
-+1 x5
->= 0
-
-r_u_x16_:
-+1 x5
-<= 6000
-
-r_l_x17_:
-+1 x6
->= 0
-
-r_u_x17_:
-+1 x6
-<= 100000
-
-c_l_x18_:
-+2.3999999999999999 x1
-+1 x10
--1 x4
--1 x7
->= 240
-
-c_l_x19_:
-+1 x11
-+16 x2
--1 x5
--1 x8
->= 0
-
-c_l_x20_:
-+1 x12
-+2 x3
--1 x6
--1 x9
->= 200
-
-c_u_x21_:
--2.3999999999999999 x1
-+1 x4
-+1 x7
-<= 0
-
-c_u_x22_:
--16 x2
-+1 x5
-+1 x8
-<= 0
-
-c_u_x23_:
--2 x3
-+1 x6
-+1 x9
-<= 0
-
-c_e_ONE_VAR_CONSTANT:
-ONE_VAR_CONSTANT = 1.0
-
-bounds
- 0 <= x1 <= 500
- 0 <= x2 <= 500
- 0 <= x3 <= 500
- 0 <= x4 <= +inf
- 0 <= x5 <= +inf
- 0 <= x6 <= +inf
- 0 <= x7 <= +inf
- 0 <= x8 <= +inf
- 0 <= x9 <= +inf
- 0 <= x10 <= +inf
- 0 <= x11 <= +inf
- 0 <= x12 <= +inf
-end
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_ignore_derived_baseline/scenario_files/farmer.sto.AboveAverageScenario b/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_ignore_derived_baseline/scenario_files/farmer.sto.AboveAverageScenario
deleted file mode 100644
index a5da65fc4f0..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_ignore_derived_baseline/scenario_files/farmer.sto.AboveAverageScenario
+++ /dev/null
@@ -1,7 +0,0 @@
- BL BLOCK1 PERIOD2 0.33333332999999998
- x1 c_l_x15_ 3.6000000000000001
- x2 c_l_x16_ 24
- x3 c_l_x17_ 3
- x1 c_u_x18_ -3.6000000000000001
- x2 c_u_x19_ -24
- x3 c_u_x20_ -3
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_ignore_derived_baseline/scenario_files/farmer.sto.AverageScenario b/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_ignore_derived_baseline/scenario_files/farmer.sto.AverageScenario
deleted file mode 100644
index 28661ca96b2..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_ignore_derived_baseline/scenario_files/farmer.sto.AverageScenario
+++ /dev/null
@@ -1,7 +0,0 @@
- BL BLOCK1 PERIOD2 0.33333333999999998
- x1 c_l_x15_ 3
- x2 c_l_x16_ 20
- x3 c_l_x17_ 2.5
- x1 c_u_x18_ -3
- x2 c_u_x19_ -20
- x3 c_u_x20_ -2.5
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_ignore_derived_baseline/scenario_files/farmer.sto.BelowAverageScenario b/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_ignore_derived_baseline/scenario_files/farmer.sto.BelowAverageScenario
deleted file mode 100644
index 05c2eb7d5d3..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_ignore_derived_baseline/scenario_files/farmer.sto.BelowAverageScenario
+++ /dev/null
@@ -1,7 +0,0 @@
- BL BLOCK1 PERIOD2 0.33333332999999998
- x1 c_l_x15_ 2.3999999999999999
- x2 c_l_x16_ 16
- x3 c_l_x17_ 2
- x1 c_u_x18_ -2.3999999999999999
- x2 c_u_x19_ -16
- x3 c_u_x20_ -2
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_ignore_derived_baseline/scenario_files/farmer.sto.struct.AboveAverageScenario b/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_ignore_derived_baseline/scenario_files/farmer.sto.struct.AboveAverageScenario
deleted file mode 100644
index 9f5db81cafe..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_ignore_derived_baseline/scenario_files/farmer.sto.struct.AboveAverageScenario
+++ /dev/null
@@ -1,6 +0,0 @@
-x1 c_l_x15_
-x2 c_l_x16_
-x3 c_l_x17_
-x1 c_u_x18_
-x2 c_u_x19_
-x3 c_u_x20_
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_ignore_derived_baseline/scenario_files/farmer.sto.struct.AverageScenario b/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_ignore_derived_baseline/scenario_files/farmer.sto.struct.AverageScenario
deleted file mode 100644
index 9f5db81cafe..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_ignore_derived_baseline/scenario_files/farmer.sto.struct.AverageScenario
+++ /dev/null
@@ -1,6 +0,0 @@
-x1 c_l_x15_
-x2 c_l_x16_
-x3 c_l_x17_
-x1 c_u_x18_
-x2 c_u_x19_
-x3 c_u_x20_
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_ignore_derived_baseline/scenario_files/farmer.sto.struct.BelowAverageScenario b/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_ignore_derived_baseline/scenario_files/farmer.sto.struct.BelowAverageScenario
deleted file mode 100644
index 9f5db81cafe..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_ignore_derived_baseline/scenario_files/farmer.sto.struct.BelowAverageScenario
+++ /dev/null
@@ -1,6 +0,0 @@
-x1 c_l_x15_
-x2 c_l_x16_
-x3 c_l_x17_
-x1 c_u_x18_
-x2 c_u_x19_
-x3 c_u_x20_
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_ignore_derived_baseline/scenario_files/farmer.tim.AboveAverageScenario b/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_ignore_derived_baseline/scenario_files/farmer.tim.AboveAverageScenario
deleted file mode 100644
index e708f6364a5..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_ignore_derived_baseline/scenario_files/farmer.tim.AboveAverageScenario
+++ /dev/null
@@ -1,35 +0,0 @@
-TIME farmer
-PERIODS EXPLICIT
- TIME1
- TIME2
-ROWS
- x13 TIME1
- c_u_x14_ TIME1
- c_l_x15_ TIME2
- c_l_x16_ TIME2
- c_l_x17_ TIME2
- c_u_x18_ TIME2
- c_u_x19_ TIME2
- c_u_x20_ TIME2
- r_l_x21_ TIME2
- r_u_x21_ TIME2
- r_l_x22_ TIME2
- r_u_x22_ TIME2
- r_l_x23_ TIME2
- r_u_x23_ TIME2
- c_e_ONE_VAR_CONSTANT TIME2
-COLS
- x1 TIME1
- x2 TIME1
- x3 TIME1
- x10 TIME2
- x11 TIME2
- x12 TIME2
- x4 TIME2
- x5 TIME2
- x6 TIME2
- x7 TIME2
- x8 TIME2
- x9 TIME2
- ONE_VAR_CONSTANT TIME2
-ENDATA
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_ignore_derived_baseline/scenario_files/farmer.tim.AverageScenario b/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_ignore_derived_baseline/scenario_files/farmer.tim.AverageScenario
deleted file mode 100644
index e708f6364a5..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_ignore_derived_baseline/scenario_files/farmer.tim.AverageScenario
+++ /dev/null
@@ -1,35 +0,0 @@
-TIME farmer
-PERIODS EXPLICIT
- TIME1
- TIME2
-ROWS
- x13 TIME1
- c_u_x14_ TIME1
- c_l_x15_ TIME2
- c_l_x16_ TIME2
- c_l_x17_ TIME2
- c_u_x18_ TIME2
- c_u_x19_ TIME2
- c_u_x20_ TIME2
- r_l_x21_ TIME2
- r_u_x21_ TIME2
- r_l_x22_ TIME2
- r_u_x22_ TIME2
- r_l_x23_ TIME2
- r_u_x23_ TIME2
- c_e_ONE_VAR_CONSTANT TIME2
-COLS
- x1 TIME1
- x2 TIME1
- x3 TIME1
- x10 TIME2
- x11 TIME2
- x12 TIME2
- x4 TIME2
- x5 TIME2
- x6 TIME2
- x7 TIME2
- x8 TIME2
- x9 TIME2
- ONE_VAR_CONSTANT TIME2
-ENDATA
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_ignore_derived_baseline/scenario_files/farmer.tim.BelowAverageScenario b/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_ignore_derived_baseline/scenario_files/farmer.tim.BelowAverageScenario
deleted file mode 100644
index e708f6364a5..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_ignore_derived_baseline/scenario_files/farmer.tim.BelowAverageScenario
+++ /dev/null
@@ -1,35 +0,0 @@
-TIME farmer
-PERIODS EXPLICIT
- TIME1
- TIME2
-ROWS
- x13 TIME1
- c_u_x14_ TIME1
- c_l_x15_ TIME2
- c_l_x16_ TIME2
- c_l_x17_ TIME2
- c_u_x18_ TIME2
- c_u_x19_ TIME2
- c_u_x20_ TIME2
- r_l_x21_ TIME2
- r_u_x21_ TIME2
- r_l_x22_ TIME2
- r_u_x22_ TIME2
- r_l_x23_ TIME2
- r_u_x23_ TIME2
- c_e_ONE_VAR_CONSTANT TIME2
-COLS
- x1 TIME1
- x2 TIME1
- x3 TIME1
- x10 TIME2
- x11 TIME2
- x12 TIME2
- x4 TIME2
- x5 TIME2
- x6 TIME2
- x7 TIME2
- x8 TIME2
- x9 TIME2
- ONE_VAR_CONSTANT TIME2
-ENDATA
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_symbolic_names_baseline/farmer.col b/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_symbolic_names_baseline/farmer.col
deleted file mode 100644
index 3493097936d..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_symbolic_names_baseline/farmer.col
+++ /dev/null
@@ -1,13 +0,0 @@
-DevotedAcreage(CORN)
-DevotedAcreage(SUGAR_BEETS)
-DevotedAcreage(WHEAT)
-QuantityPurchased(CORN)
-QuantityPurchased(SUGAR_BEETS)
-QuantityPurchased(WHEAT)
-QuantitySubQuotaSold(CORN)
-QuantitySubQuotaSold(SUGAR_BEETS)
-QuantitySubQuotaSold(WHEAT)
-QuantitySuperQuotaSold(CORN)
-QuantitySuperQuotaSold(SUGAR_BEETS)
-QuantitySuperQuotaSold(WHEAT)
-ONE_VAR_CONSTANT
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_symbolic_names_baseline/farmer.cor b/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_symbolic_names_baseline/farmer.cor
deleted file mode 100644
index 8b276c7ba7f..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_symbolic_names_baseline/farmer.cor
+++ /dev/null
@@ -1,104 +0,0 @@
-\* Source Pyomo model name=BelowAverageScenario *\
-
-min
-Total_Cost_Objective:
-+230 DevotedAcreage(CORN)
-+260 DevotedAcreage(SUGAR_BEETS)
-+150 DevotedAcreage(WHEAT)
-+210 QuantityPurchased(CORN)
-+100000 QuantityPurchased(SUGAR_BEETS)
-+238 QuantityPurchased(WHEAT)
--150 QuantitySubQuotaSold(CORN)
--36 QuantitySubQuotaSold(SUGAR_BEETS)
--170 QuantitySubQuotaSold(WHEAT)
--10 QuantitySuperQuotaSold(SUGAR_BEETS)
-+0 ONE_VAR_CONSTANT
-
-s.t.
-
-c_u_ConstrainTotalAcreage_:
-+1 DevotedAcreage(CORN)
-+1 DevotedAcreage(SUGAR_BEETS)
-+1 DevotedAcreage(WHEAT)
-<= 500
-
-c_l_EnforceCattleFeedRequirement(CORN)_:
-+2.3999999999999999 DevotedAcreage(CORN)
-+1 QuantityPurchased(CORN)
--1 QuantitySubQuotaSold(CORN)
--1 QuantitySuperQuotaSold(CORN)
->= 240
-
-c_l_EnforceCattleFeedRequirement(SUGAR_BEETS)_:
-+16 DevotedAcreage(SUGAR_BEETS)
-+1 QuantityPurchased(SUGAR_BEETS)
--1 QuantitySubQuotaSold(SUGAR_BEETS)
--1 QuantitySuperQuotaSold(SUGAR_BEETS)
->= 0
-
-c_l_EnforceCattleFeedRequirement(WHEAT)_:
-+2 DevotedAcreage(WHEAT)
-+1 QuantityPurchased(WHEAT)
--1 QuantitySubQuotaSold(WHEAT)
--1 QuantitySuperQuotaSold(WHEAT)
->= 200
-
-c_u_LimitAmountSold(CORN)_:
--2.3999999999999999 DevotedAcreage(CORN)
-+1 QuantitySubQuotaSold(CORN)
-+1 QuantitySuperQuotaSold(CORN)
-<= 0
-
-c_u_LimitAmountSold(SUGAR_BEETS)_:
--16 DevotedAcreage(SUGAR_BEETS)
-+1 QuantitySubQuotaSold(SUGAR_BEETS)
-+1 QuantitySuperQuotaSold(SUGAR_BEETS)
-<= 0
-
-c_u_LimitAmountSold(WHEAT)_:
--2 DevotedAcreage(WHEAT)
-+1 QuantitySubQuotaSold(WHEAT)
-+1 QuantitySuperQuotaSold(WHEAT)
-<= 0
-
-r_l_EnforceQuotas(CORN)_:
-+1 QuantitySubQuotaSold(CORN)
->= 0
-
-r_u_EnforceQuotas(CORN)_:
-+1 QuantitySubQuotaSold(CORN)
-<= 100000
-
-r_l_EnforceQuotas(SUGAR_BEETS)_:
-+1 QuantitySubQuotaSold(SUGAR_BEETS)
->= 0
-
-r_u_EnforceQuotas(SUGAR_BEETS)_:
-+1 QuantitySubQuotaSold(SUGAR_BEETS)
-<= 6000
-
-r_l_EnforceQuotas(WHEAT)_:
-+1 QuantitySubQuotaSold(WHEAT)
->= 0
-
-r_u_EnforceQuotas(WHEAT)_:
-+1 QuantitySubQuotaSold(WHEAT)
-<= 100000
-
-c_e_ONE_VAR_CONSTANT:
-ONE_VAR_CONSTANT = 1.0
-
-bounds
- 0 <= DevotedAcreage(CORN) <= 500
- 0 <= DevotedAcreage(SUGAR_BEETS) <= 500
- 0 <= DevotedAcreage(WHEAT) <= 500
- 0 <= QuantitySubQuotaSold(CORN) <= +inf
- 0 <= QuantitySubQuotaSold(SUGAR_BEETS) <= +inf
- 0 <= QuantitySubQuotaSold(WHEAT) <= +inf
- 0 <= QuantitySuperQuotaSold(CORN) <= +inf
- 0 <= QuantitySuperQuotaSold(SUGAR_BEETS) <= +inf
- 0 <= QuantitySuperQuotaSold(WHEAT) <= +inf
- 0 <= QuantityPurchased(CORN) <= +inf
- 0 <= QuantityPurchased(SUGAR_BEETS) <= +inf
- 0 <= QuantityPurchased(WHEAT) <= +inf
-end
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_symbolic_names_baseline/farmer.cor.symbols b/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_symbolic_names_baseline/farmer.cor.symbols
deleted file mode 100644
index e973348847d..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_symbolic_names_baseline/farmer.cor.symbols
+++ /dev/null
@@ -1,3 +0,0 @@
-DevotedAcreage(CORN) DevotedAcreage:$CORN
-DevotedAcreage(SUGAR_BEETS) DevotedAcreage:$SUGAR_BEETS
-DevotedAcreage(WHEAT) DevotedAcreage:$WHEAT
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_symbolic_names_baseline/farmer.lp.det b/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_symbolic_names_baseline/farmer.lp.det
deleted file mode 100644
index 44652810384..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_symbolic_names_baseline/farmer.lp.det
+++ /dev/null
@@ -1,104 +0,0 @@
-\* Source Pyomo model name=ZeroStochasticData *\
-
-min
-Total_Cost_Objective:
-+230 DevotedAcreage(CORN)
-+260 DevotedAcreage(SUGAR_BEETS)
-+150 DevotedAcreage(WHEAT)
-+210 QuantityPurchased(CORN)
-+100000 QuantityPurchased(SUGAR_BEETS)
-+238 QuantityPurchased(WHEAT)
--150 QuantitySubQuotaSold(CORN)
--36 QuantitySubQuotaSold(SUGAR_BEETS)
--170 QuantitySubQuotaSold(WHEAT)
--10 QuantitySuperQuotaSold(SUGAR_BEETS)
-+0 ONE_VAR_CONSTANT
-
-s.t.
-
-c_u_ConstrainTotalAcreage_:
-+1 DevotedAcreage(CORN)
-+1 DevotedAcreage(SUGAR_BEETS)
-+1 DevotedAcreage(WHEAT)
-<= 500
-
-c_l_EnforceCattleFeedRequirement(CORN)_:
--9876543210 DevotedAcreage(CORN)
-+1 QuantityPurchased(CORN)
--1 QuantitySubQuotaSold(CORN)
--1 QuantitySuperQuotaSold(CORN)
->= 240
-
-c_l_EnforceCattleFeedRequirement(SUGAR_BEETS)_:
--9876543210 DevotedAcreage(SUGAR_BEETS)
-+1 QuantityPurchased(SUGAR_BEETS)
--1 QuantitySubQuotaSold(SUGAR_BEETS)
--1 QuantitySuperQuotaSold(SUGAR_BEETS)
->= 0
-
-c_l_EnforceCattleFeedRequirement(WHEAT)_:
--9876543210 DevotedAcreage(WHEAT)
-+1 QuantityPurchased(WHEAT)
--1 QuantitySubQuotaSold(WHEAT)
--1 QuantitySuperQuotaSold(WHEAT)
->= 200
-
-c_u_LimitAmountSold(CORN)_:
--9876543210 DevotedAcreage(CORN)
-+1 QuantitySubQuotaSold(CORN)
-+1 QuantitySuperQuotaSold(CORN)
-<= 0
-
-c_u_LimitAmountSold(SUGAR_BEETS)_:
--9876543210 DevotedAcreage(SUGAR_BEETS)
-+1 QuantitySubQuotaSold(SUGAR_BEETS)
-+1 QuantitySuperQuotaSold(SUGAR_BEETS)
-<= 0
-
-c_u_LimitAmountSold(WHEAT)_:
--9876543210 DevotedAcreage(WHEAT)
-+1 QuantitySubQuotaSold(WHEAT)
-+1 QuantitySuperQuotaSold(WHEAT)
-<= 0
-
-r_l_EnforceQuotas(CORN)_:
-+1 QuantitySubQuotaSold(CORN)
->= 0
-
-r_u_EnforceQuotas(CORN)_:
-+1 QuantitySubQuotaSold(CORN)
-<= 100000
-
-r_l_EnforceQuotas(SUGAR_BEETS)_:
-+1 QuantitySubQuotaSold(SUGAR_BEETS)
->= 0
-
-r_u_EnforceQuotas(SUGAR_BEETS)_:
-+1 QuantitySubQuotaSold(SUGAR_BEETS)
-<= 6000
-
-r_l_EnforceQuotas(WHEAT)_:
-+1 QuantitySubQuotaSold(WHEAT)
->= 0
-
-r_u_EnforceQuotas(WHEAT)_:
-+1 QuantitySubQuotaSold(WHEAT)
-<= 100000
-
-c_e_ONE_VAR_CONSTANT:
-ONE_VAR_CONSTANT = 1.0
-
-bounds
- 0 <= DevotedAcreage(CORN) <= 500
- 0 <= DevotedAcreage(SUGAR_BEETS) <= 500
- 0 <= DevotedAcreage(WHEAT) <= 500
- 0 <= QuantitySubQuotaSold(CORN) <= +inf
- 0 <= QuantitySubQuotaSold(SUGAR_BEETS) <= +inf
- 0 <= QuantitySubQuotaSold(WHEAT) <= +inf
- 0 <= QuantitySuperQuotaSold(CORN) <= +inf
- 0 <= QuantitySuperQuotaSold(SUGAR_BEETS) <= +inf
- 0 <= QuantitySuperQuotaSold(WHEAT) <= +inf
- 0 <= QuantityPurchased(CORN) <= +inf
- 0 <= QuantityPurchased(SUGAR_BEETS) <= +inf
- 0 <= QuantityPurchased(WHEAT) <= +inf
-end
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_symbolic_names_baseline/farmer.row b/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_symbolic_names_baseline/farmer.row
deleted file mode 100644
index 0bf2f5edad0..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_symbolic_names_baseline/farmer.row
+++ /dev/null
@@ -1,15 +0,0 @@
-Total_Cost_Objective
-c_u_ConstrainTotalAcreage_
-c_l_EnforceCattleFeedRequirement(CORN)_
-c_l_EnforceCattleFeedRequirement(SUGAR_BEETS)_
-c_l_EnforceCattleFeedRequirement(WHEAT)_
-c_u_LimitAmountSold(CORN)_
-c_u_LimitAmountSold(SUGAR_BEETS)_
-c_u_LimitAmountSold(WHEAT)_
-r_l_EnforceQuotas(CORN)_
-r_u_EnforceQuotas(CORN)_
-r_l_EnforceQuotas(SUGAR_BEETS)_
-r_u_EnforceQuotas(SUGAR_BEETS)_
-r_l_EnforceQuotas(WHEAT)_
-r_u_EnforceQuotas(WHEAT)_
-c_e_ONE_VAR_CONSTANT
\ No newline at end of file
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_symbolic_names_baseline/farmer.sto b/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_symbolic_names_baseline/farmer.sto
deleted file mode 100644
index 6772f4e3157..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_symbolic_names_baseline/farmer.sto
+++ /dev/null
@@ -1,24 +0,0 @@
-STOCH farmer
-BLOCKS DISCRETE REPLACE
- BL BLOCK1 PERIOD2 0.33333332999999998
- DevotedAcreage(CORN) c_l_EnforceCattleFeedRequirement(CORN)_ 2.3999999999999999
- DevotedAcreage(SUGAR_BEETS) c_l_EnforceCattleFeedRequirement(SUGAR_BEETS)_ 16
- DevotedAcreage(WHEAT) c_l_EnforceCattleFeedRequirement(WHEAT)_ 2
- DevotedAcreage(CORN) c_u_LimitAmountSold(CORN)_ -2.3999999999999999
- DevotedAcreage(SUGAR_BEETS) c_u_LimitAmountSold(SUGAR_BEETS)_ -16
- DevotedAcreage(WHEAT) c_u_LimitAmountSold(WHEAT)_ -2
- BL BLOCK1 PERIOD2 0.33333333999999998
- DevotedAcreage(CORN) c_l_EnforceCattleFeedRequirement(CORN)_ 3
- DevotedAcreage(SUGAR_BEETS) c_l_EnforceCattleFeedRequirement(SUGAR_BEETS)_ 20
- DevotedAcreage(WHEAT) c_l_EnforceCattleFeedRequirement(WHEAT)_ 2.5
- DevotedAcreage(CORN) c_u_LimitAmountSold(CORN)_ -3
- DevotedAcreage(SUGAR_BEETS) c_u_LimitAmountSold(SUGAR_BEETS)_ -20
- DevotedAcreage(WHEAT) c_u_LimitAmountSold(WHEAT)_ -2.5
- BL BLOCK1 PERIOD2 0.33333332999999998
- DevotedAcreage(CORN) c_l_EnforceCattleFeedRequirement(CORN)_ 3.6000000000000001
- DevotedAcreage(SUGAR_BEETS) c_l_EnforceCattleFeedRequirement(SUGAR_BEETS)_ 24
- DevotedAcreage(WHEAT) c_l_EnforceCattleFeedRequirement(WHEAT)_ 3
- DevotedAcreage(CORN) c_u_LimitAmountSold(CORN)_ -3.6000000000000001
- DevotedAcreage(SUGAR_BEETS) c_u_LimitAmountSold(SUGAR_BEETS)_ -24
- DevotedAcreage(WHEAT) c_u_LimitAmountSold(WHEAT)_ -3
-ENDATA
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_symbolic_names_baseline/farmer.sto.struct b/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_symbolic_names_baseline/farmer.sto.struct
deleted file mode 100644
index 65fbc4b8d79..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_symbolic_names_baseline/farmer.sto.struct
+++ /dev/null
@@ -1,6 +0,0 @@
-DevotedAcreage(CORN) c_l_EnforceCattleFeedRequirement(CORN)_
-DevotedAcreage(SUGAR_BEETS) c_l_EnforceCattleFeedRequirement(SUGAR_BEETS)_
-DevotedAcreage(WHEAT) c_l_EnforceCattleFeedRequirement(WHEAT)_
-DevotedAcreage(CORN) c_u_LimitAmountSold(CORN)_
-DevotedAcreage(SUGAR_BEETS) c_u_LimitAmountSold(SUGAR_BEETS)_
-DevotedAcreage(WHEAT) c_u_LimitAmountSold(WHEAT)_
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_symbolic_names_baseline/farmer.tim b/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_symbolic_names_baseline/farmer.tim
deleted file mode 100644
index 0886a749af5..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_symbolic_names_baseline/farmer.tim
+++ /dev/null
@@ -1,35 +0,0 @@
-TIME farmer
-PERIODS EXPLICIT
- TIME1
- TIME2
-ROWS
- Total_Cost_Objective TIME1
- c_u_ConstrainTotalAcreage_ TIME1
- c_l_EnforceCattleFeedRequirement(CORN)_ TIME2
- c_l_EnforceCattleFeedRequirement(SUGAR_BEETS)_ TIME2
- c_l_EnforceCattleFeedRequirement(WHEAT)_ TIME2
- c_u_LimitAmountSold(CORN)_ TIME2
- c_u_LimitAmountSold(SUGAR_BEETS)_ TIME2
- c_u_LimitAmountSold(WHEAT)_ TIME2
- r_l_EnforceQuotas(CORN)_ TIME2
- r_u_EnforceQuotas(CORN)_ TIME2
- r_l_EnforceQuotas(SUGAR_BEETS)_ TIME2
- r_u_EnforceQuotas(SUGAR_BEETS)_ TIME2
- r_l_EnforceQuotas(WHEAT)_ TIME2
- r_u_EnforceQuotas(WHEAT)_ TIME2
- c_e_ONE_VAR_CONSTANT TIME2
-COLS
- DevotedAcreage(CORN) TIME1
- DevotedAcreage(SUGAR_BEETS) TIME1
- DevotedAcreage(WHEAT) TIME1
- QuantityPurchased(CORN) TIME2
- QuantityPurchased(SUGAR_BEETS) TIME2
- QuantityPurchased(WHEAT) TIME2
- QuantitySubQuotaSold(CORN) TIME2
- QuantitySubQuotaSold(SUGAR_BEETS) TIME2
- QuantitySubQuotaSold(WHEAT) TIME2
- QuantitySuperQuotaSold(CORN) TIME2
- QuantitySuperQuotaSold(SUGAR_BEETS) TIME2
- QuantitySuperQuotaSold(WHEAT) TIME2
- ONE_VAR_CONSTANT TIME2
-ENDATA
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_symbolic_names_baseline/scenario_files/farmer.col.AboveAverageScenario b/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_symbolic_names_baseline/scenario_files/farmer.col.AboveAverageScenario
deleted file mode 100644
index 3493097936d..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_symbolic_names_baseline/scenario_files/farmer.col.AboveAverageScenario
+++ /dev/null
@@ -1,13 +0,0 @@
-DevotedAcreage(CORN)
-DevotedAcreage(SUGAR_BEETS)
-DevotedAcreage(WHEAT)
-QuantityPurchased(CORN)
-QuantityPurchased(SUGAR_BEETS)
-QuantityPurchased(WHEAT)
-QuantitySubQuotaSold(CORN)
-QuantitySubQuotaSold(SUGAR_BEETS)
-QuantitySubQuotaSold(WHEAT)
-QuantitySuperQuotaSold(CORN)
-QuantitySuperQuotaSold(SUGAR_BEETS)
-QuantitySuperQuotaSold(WHEAT)
-ONE_VAR_CONSTANT
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_symbolic_names_baseline/scenario_files/farmer.col.AverageScenario b/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_symbolic_names_baseline/scenario_files/farmer.col.AverageScenario
deleted file mode 100644
index 3493097936d..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_symbolic_names_baseline/scenario_files/farmer.col.AverageScenario
+++ /dev/null
@@ -1,13 +0,0 @@
-DevotedAcreage(CORN)
-DevotedAcreage(SUGAR_BEETS)
-DevotedAcreage(WHEAT)
-QuantityPurchased(CORN)
-QuantityPurchased(SUGAR_BEETS)
-QuantityPurchased(WHEAT)
-QuantitySubQuotaSold(CORN)
-QuantitySubQuotaSold(SUGAR_BEETS)
-QuantitySubQuotaSold(WHEAT)
-QuantitySuperQuotaSold(CORN)
-QuantitySuperQuotaSold(SUGAR_BEETS)
-QuantitySuperQuotaSold(WHEAT)
-ONE_VAR_CONSTANT
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_symbolic_names_baseline/scenario_files/farmer.col.BelowAverageScenario b/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_symbolic_names_baseline/scenario_files/farmer.col.BelowAverageScenario
deleted file mode 100644
index 3493097936d..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_symbolic_names_baseline/scenario_files/farmer.col.BelowAverageScenario
+++ /dev/null
@@ -1,13 +0,0 @@
-DevotedAcreage(CORN)
-DevotedAcreage(SUGAR_BEETS)
-DevotedAcreage(WHEAT)
-QuantityPurchased(CORN)
-QuantityPurchased(SUGAR_BEETS)
-QuantityPurchased(WHEAT)
-QuantitySubQuotaSold(CORN)
-QuantitySubQuotaSold(SUGAR_BEETS)
-QuantitySubQuotaSold(WHEAT)
-QuantitySuperQuotaSold(CORN)
-QuantitySuperQuotaSold(SUGAR_BEETS)
-QuantitySuperQuotaSold(WHEAT)
-ONE_VAR_CONSTANT
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_symbolic_names_baseline/scenario_files/farmer.lp.AboveAverageScenario b/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_symbolic_names_baseline/scenario_files/farmer.lp.AboveAverageScenario
deleted file mode 100644
index 69a21dc1634..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_symbolic_names_baseline/scenario_files/farmer.lp.AboveAverageScenario
+++ /dev/null
@@ -1,104 +0,0 @@
-\* Source Pyomo model name=AboveAverageScenario *\
-
-min
-Total_Cost_Objective:
-+230 DevotedAcreage(CORN)
-+260 DevotedAcreage(SUGAR_BEETS)
-+150 DevotedAcreage(WHEAT)
-+210 QuantityPurchased(CORN)
-+100000 QuantityPurchased(SUGAR_BEETS)
-+238 QuantityPurchased(WHEAT)
--150 QuantitySubQuotaSold(CORN)
--36 QuantitySubQuotaSold(SUGAR_BEETS)
--170 QuantitySubQuotaSold(WHEAT)
--10 QuantitySuperQuotaSold(SUGAR_BEETS)
-+0 ONE_VAR_CONSTANT
-
-s.t.
-
-c_u_ConstrainTotalAcreage_:
-+1 DevotedAcreage(CORN)
-+1 DevotedAcreage(SUGAR_BEETS)
-+1 DevotedAcreage(WHEAT)
-<= 500
-
-c_l_EnforceCattleFeedRequirement(CORN)_:
-+3.6000000000000001 DevotedAcreage(CORN)
-+1 QuantityPurchased(CORN)
--1 QuantitySubQuotaSold(CORN)
--1 QuantitySuperQuotaSold(CORN)
->= 240
-
-c_l_EnforceCattleFeedRequirement(SUGAR_BEETS)_:
-+24 DevotedAcreage(SUGAR_BEETS)
-+1 QuantityPurchased(SUGAR_BEETS)
--1 QuantitySubQuotaSold(SUGAR_BEETS)
--1 QuantitySuperQuotaSold(SUGAR_BEETS)
->= 0
-
-c_l_EnforceCattleFeedRequirement(WHEAT)_:
-+3 DevotedAcreage(WHEAT)
-+1 QuantityPurchased(WHEAT)
--1 QuantitySubQuotaSold(WHEAT)
--1 QuantitySuperQuotaSold(WHEAT)
->= 200
-
-c_u_LimitAmountSold(CORN)_:
--3.6000000000000001 DevotedAcreage(CORN)
-+1 QuantitySubQuotaSold(CORN)
-+1 QuantitySuperQuotaSold(CORN)
-<= 0
-
-c_u_LimitAmountSold(SUGAR_BEETS)_:
--24 DevotedAcreage(SUGAR_BEETS)
-+1 QuantitySubQuotaSold(SUGAR_BEETS)
-+1 QuantitySuperQuotaSold(SUGAR_BEETS)
-<= 0
-
-c_u_LimitAmountSold(WHEAT)_:
--3 DevotedAcreage(WHEAT)
-+1 QuantitySubQuotaSold(WHEAT)
-+1 QuantitySuperQuotaSold(WHEAT)
-<= 0
-
-r_l_EnforceQuotas(CORN)_:
-+1 QuantitySubQuotaSold(CORN)
->= 0
-
-r_u_EnforceQuotas(CORN)_:
-+1 QuantitySubQuotaSold(CORN)
-<= 100000
-
-r_l_EnforceQuotas(SUGAR_BEETS)_:
-+1 QuantitySubQuotaSold(SUGAR_BEETS)
->= 0
-
-r_u_EnforceQuotas(SUGAR_BEETS)_:
-+1 QuantitySubQuotaSold(SUGAR_BEETS)
-<= 6000
-
-r_l_EnforceQuotas(WHEAT)_:
-+1 QuantitySubQuotaSold(WHEAT)
->= 0
-
-r_u_EnforceQuotas(WHEAT)_:
-+1 QuantitySubQuotaSold(WHEAT)
-<= 100000
-
-c_e_ONE_VAR_CONSTANT:
-ONE_VAR_CONSTANT = 1.0
-
-bounds
- 0 <= DevotedAcreage(CORN) <= 500
- 0 <= DevotedAcreage(SUGAR_BEETS) <= 500
- 0 <= DevotedAcreage(WHEAT) <= 500
- 0 <= QuantitySubQuotaSold(CORN) <= +inf
- 0 <= QuantitySubQuotaSold(SUGAR_BEETS) <= +inf
- 0 <= QuantitySubQuotaSold(WHEAT) <= +inf
- 0 <= QuantitySuperQuotaSold(CORN) <= +inf
- 0 <= QuantitySuperQuotaSold(SUGAR_BEETS) <= +inf
- 0 <= QuantitySuperQuotaSold(WHEAT) <= +inf
- 0 <= QuantityPurchased(CORN) <= +inf
- 0 <= QuantityPurchased(SUGAR_BEETS) <= +inf
- 0 <= QuantityPurchased(WHEAT) <= +inf
-end
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_symbolic_names_baseline/scenario_files/farmer.lp.AverageScenario b/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_symbolic_names_baseline/scenario_files/farmer.lp.AverageScenario
deleted file mode 100644
index ecd36604109..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_symbolic_names_baseline/scenario_files/farmer.lp.AverageScenario
+++ /dev/null
@@ -1,104 +0,0 @@
-\* Source Pyomo model name=AverageScenario *\
-
-min
-Total_Cost_Objective:
-+230 DevotedAcreage(CORN)
-+260 DevotedAcreage(SUGAR_BEETS)
-+150 DevotedAcreage(WHEAT)
-+210 QuantityPurchased(CORN)
-+100000 QuantityPurchased(SUGAR_BEETS)
-+238 QuantityPurchased(WHEAT)
--150 QuantitySubQuotaSold(CORN)
--36 QuantitySubQuotaSold(SUGAR_BEETS)
--170 QuantitySubQuotaSold(WHEAT)
--10 QuantitySuperQuotaSold(SUGAR_BEETS)
-+0 ONE_VAR_CONSTANT
-
-s.t.
-
-c_u_ConstrainTotalAcreage_:
-+1 DevotedAcreage(CORN)
-+1 DevotedAcreage(SUGAR_BEETS)
-+1 DevotedAcreage(WHEAT)
-<= 500
-
-c_l_EnforceCattleFeedRequirement(CORN)_:
-+3 DevotedAcreage(CORN)
-+1 QuantityPurchased(CORN)
--1 QuantitySubQuotaSold(CORN)
--1 QuantitySuperQuotaSold(CORN)
->= 240
-
-c_l_EnforceCattleFeedRequirement(SUGAR_BEETS)_:
-+20 DevotedAcreage(SUGAR_BEETS)
-+1 QuantityPurchased(SUGAR_BEETS)
--1 QuantitySubQuotaSold(SUGAR_BEETS)
--1 QuantitySuperQuotaSold(SUGAR_BEETS)
->= 0
-
-c_l_EnforceCattleFeedRequirement(WHEAT)_:
-+2.5 DevotedAcreage(WHEAT)
-+1 QuantityPurchased(WHEAT)
--1 QuantitySubQuotaSold(WHEAT)
--1 QuantitySuperQuotaSold(WHEAT)
->= 200
-
-c_u_LimitAmountSold(CORN)_:
--3 DevotedAcreage(CORN)
-+1 QuantitySubQuotaSold(CORN)
-+1 QuantitySuperQuotaSold(CORN)
-<= 0
-
-c_u_LimitAmountSold(SUGAR_BEETS)_:
--20 DevotedAcreage(SUGAR_BEETS)
-+1 QuantitySubQuotaSold(SUGAR_BEETS)
-+1 QuantitySuperQuotaSold(SUGAR_BEETS)
-<= 0
-
-c_u_LimitAmountSold(WHEAT)_:
--2.5 DevotedAcreage(WHEAT)
-+1 QuantitySubQuotaSold(WHEAT)
-+1 QuantitySuperQuotaSold(WHEAT)
-<= 0
-
-r_l_EnforceQuotas(CORN)_:
-+1 QuantitySubQuotaSold(CORN)
->= 0
-
-r_u_EnforceQuotas(CORN)_:
-+1 QuantitySubQuotaSold(CORN)
-<= 100000
-
-r_l_EnforceQuotas(SUGAR_BEETS)_:
-+1 QuantitySubQuotaSold(SUGAR_BEETS)
->= 0
-
-r_u_EnforceQuotas(SUGAR_BEETS)_:
-+1 QuantitySubQuotaSold(SUGAR_BEETS)
-<= 6000
-
-r_l_EnforceQuotas(WHEAT)_:
-+1 QuantitySubQuotaSold(WHEAT)
->= 0
-
-r_u_EnforceQuotas(WHEAT)_:
-+1 QuantitySubQuotaSold(WHEAT)
-<= 100000
-
-c_e_ONE_VAR_CONSTANT:
-ONE_VAR_CONSTANT = 1.0
-
-bounds
- 0 <= DevotedAcreage(CORN) <= 500
- 0 <= DevotedAcreage(SUGAR_BEETS) <= 500
- 0 <= DevotedAcreage(WHEAT) <= 500
- 0 <= QuantitySubQuotaSold(CORN) <= +inf
- 0 <= QuantitySubQuotaSold(SUGAR_BEETS) <= +inf
- 0 <= QuantitySubQuotaSold(WHEAT) <= +inf
- 0 <= QuantitySuperQuotaSold(CORN) <= +inf
- 0 <= QuantitySuperQuotaSold(SUGAR_BEETS) <= +inf
- 0 <= QuantitySuperQuotaSold(WHEAT) <= +inf
- 0 <= QuantityPurchased(CORN) <= +inf
- 0 <= QuantityPurchased(SUGAR_BEETS) <= +inf
- 0 <= QuantityPurchased(WHEAT) <= +inf
-end
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_symbolic_names_baseline/scenario_files/farmer.lp.BelowAverageScenario b/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_symbolic_names_baseline/scenario_files/farmer.lp.BelowAverageScenario
deleted file mode 100644
index 8b276c7ba7f..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_symbolic_names_baseline/scenario_files/farmer.lp.BelowAverageScenario
+++ /dev/null
@@ -1,104 +0,0 @@
-\* Source Pyomo model name=BelowAverageScenario *\
-
-min
-Total_Cost_Objective:
-+230 DevotedAcreage(CORN)
-+260 DevotedAcreage(SUGAR_BEETS)
-+150 DevotedAcreage(WHEAT)
-+210 QuantityPurchased(CORN)
-+100000 QuantityPurchased(SUGAR_BEETS)
-+238 QuantityPurchased(WHEAT)
--150 QuantitySubQuotaSold(CORN)
--36 QuantitySubQuotaSold(SUGAR_BEETS)
--170 QuantitySubQuotaSold(WHEAT)
--10 QuantitySuperQuotaSold(SUGAR_BEETS)
-+0 ONE_VAR_CONSTANT
-
-s.t.
-
-c_u_ConstrainTotalAcreage_:
-+1 DevotedAcreage(CORN)
-+1 DevotedAcreage(SUGAR_BEETS)
-+1 DevotedAcreage(WHEAT)
-<= 500
-
-c_l_EnforceCattleFeedRequirement(CORN)_:
-+2.3999999999999999 DevotedAcreage(CORN)
-+1 QuantityPurchased(CORN)
--1 QuantitySubQuotaSold(CORN)
--1 QuantitySuperQuotaSold(CORN)
->= 240
-
-c_l_EnforceCattleFeedRequirement(SUGAR_BEETS)_:
-+16 DevotedAcreage(SUGAR_BEETS)
-+1 QuantityPurchased(SUGAR_BEETS)
--1 QuantitySubQuotaSold(SUGAR_BEETS)
--1 QuantitySuperQuotaSold(SUGAR_BEETS)
->= 0
-
-c_l_EnforceCattleFeedRequirement(WHEAT)_:
-+2 DevotedAcreage(WHEAT)
-+1 QuantityPurchased(WHEAT)
--1 QuantitySubQuotaSold(WHEAT)
--1 QuantitySuperQuotaSold(WHEAT)
->= 200
-
-c_u_LimitAmountSold(CORN)_:
--2.3999999999999999 DevotedAcreage(CORN)
-+1 QuantitySubQuotaSold(CORN)
-+1 QuantitySuperQuotaSold(CORN)
-<= 0
-
-c_u_LimitAmountSold(SUGAR_BEETS)_:
--16 DevotedAcreage(SUGAR_BEETS)
-+1 QuantitySubQuotaSold(SUGAR_BEETS)
-+1 QuantitySuperQuotaSold(SUGAR_BEETS)
-<= 0
-
-c_u_LimitAmountSold(WHEAT)_:
--2 DevotedAcreage(WHEAT)
-+1 QuantitySubQuotaSold(WHEAT)
-+1 QuantitySuperQuotaSold(WHEAT)
-<= 0
-
-r_l_EnforceQuotas(CORN)_:
-+1 QuantitySubQuotaSold(CORN)
->= 0
-
-r_u_EnforceQuotas(CORN)_:
-+1 QuantitySubQuotaSold(CORN)
-<= 100000
-
-r_l_EnforceQuotas(SUGAR_BEETS)_:
-+1 QuantitySubQuotaSold(SUGAR_BEETS)
->= 0
-
-r_u_EnforceQuotas(SUGAR_BEETS)_:
-+1 QuantitySubQuotaSold(SUGAR_BEETS)
-<= 6000
-
-r_l_EnforceQuotas(WHEAT)_:
-+1 QuantitySubQuotaSold(WHEAT)
->= 0
-
-r_u_EnforceQuotas(WHEAT)_:
-+1 QuantitySubQuotaSold(WHEAT)
-<= 100000
-
-c_e_ONE_VAR_CONSTANT:
-ONE_VAR_CONSTANT = 1.0
-
-bounds
- 0 <= DevotedAcreage(CORN) <= 500
- 0 <= DevotedAcreage(SUGAR_BEETS) <= 500
- 0 <= DevotedAcreage(WHEAT) <= 500
- 0 <= QuantitySubQuotaSold(CORN) <= +inf
- 0 <= QuantitySubQuotaSold(SUGAR_BEETS) <= +inf
- 0 <= QuantitySubQuotaSold(WHEAT) <= +inf
- 0 <= QuantitySuperQuotaSold(CORN) <= +inf
- 0 <= QuantitySuperQuotaSold(SUGAR_BEETS) <= +inf
- 0 <= QuantitySuperQuotaSold(WHEAT) <= +inf
- 0 <= QuantityPurchased(CORN) <= +inf
- 0 <= QuantityPurchased(SUGAR_BEETS) <= +inf
- 0 <= QuantityPurchased(WHEAT) <= +inf
-end
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_symbolic_names_baseline/scenario_files/farmer.lp.det.AboveAverageScenario b/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_symbolic_names_baseline/scenario_files/farmer.lp.det.AboveAverageScenario
deleted file mode 100644
index 44652810384..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_symbolic_names_baseline/scenario_files/farmer.lp.det.AboveAverageScenario
+++ /dev/null
@@ -1,104 +0,0 @@
-\* Source Pyomo model name=ZeroStochasticData *\
-
-min
-Total_Cost_Objective:
-+230 DevotedAcreage(CORN)
-+260 DevotedAcreage(SUGAR_BEETS)
-+150 DevotedAcreage(WHEAT)
-+210 QuantityPurchased(CORN)
-+100000 QuantityPurchased(SUGAR_BEETS)
-+238 QuantityPurchased(WHEAT)
--150 QuantitySubQuotaSold(CORN)
--36 QuantitySubQuotaSold(SUGAR_BEETS)
--170 QuantitySubQuotaSold(WHEAT)
--10 QuantitySuperQuotaSold(SUGAR_BEETS)
-+0 ONE_VAR_CONSTANT
-
-s.t.
-
-c_u_ConstrainTotalAcreage_:
-+1 DevotedAcreage(CORN)
-+1 DevotedAcreage(SUGAR_BEETS)
-+1 DevotedAcreage(WHEAT)
-<= 500
-
-c_l_EnforceCattleFeedRequirement(CORN)_:
--9876543210 DevotedAcreage(CORN)
-+1 QuantityPurchased(CORN)
--1 QuantitySubQuotaSold(CORN)
--1 QuantitySuperQuotaSold(CORN)
->= 240
-
-c_l_EnforceCattleFeedRequirement(SUGAR_BEETS)_:
--9876543210 DevotedAcreage(SUGAR_BEETS)
-+1 QuantityPurchased(SUGAR_BEETS)
--1 QuantitySubQuotaSold(SUGAR_BEETS)
--1 QuantitySuperQuotaSold(SUGAR_BEETS)
->= 0
-
-c_l_EnforceCattleFeedRequirement(WHEAT)_:
--9876543210 DevotedAcreage(WHEAT)
-+1 QuantityPurchased(WHEAT)
--1 QuantitySubQuotaSold(WHEAT)
--1 QuantitySuperQuotaSold(WHEAT)
->= 200
-
-c_u_LimitAmountSold(CORN)_:
--9876543210 DevotedAcreage(CORN)
-+1 QuantitySubQuotaSold(CORN)
-+1 QuantitySuperQuotaSold(CORN)
-<= 0
-
-c_u_LimitAmountSold(SUGAR_BEETS)_:
--9876543210 DevotedAcreage(SUGAR_BEETS)
-+1 QuantitySubQuotaSold(SUGAR_BEETS)
-+1 QuantitySuperQuotaSold(SUGAR_BEETS)
-<= 0
-
-c_u_LimitAmountSold(WHEAT)_:
--9876543210 DevotedAcreage(WHEAT)
-+1 QuantitySubQuotaSold(WHEAT)
-+1 QuantitySuperQuotaSold(WHEAT)
-<= 0
-
-r_l_EnforceQuotas(CORN)_:
-+1 QuantitySubQuotaSold(CORN)
->= 0
-
-r_u_EnforceQuotas(CORN)_:
-+1 QuantitySubQuotaSold(CORN)
-<= 100000
-
-r_l_EnforceQuotas(SUGAR_BEETS)_:
-+1 QuantitySubQuotaSold(SUGAR_BEETS)
->= 0
-
-r_u_EnforceQuotas(SUGAR_BEETS)_:
-+1 QuantitySubQuotaSold(SUGAR_BEETS)
-<= 6000
-
-r_l_EnforceQuotas(WHEAT)_:
-+1 QuantitySubQuotaSold(WHEAT)
->= 0
-
-r_u_EnforceQuotas(WHEAT)_:
-+1 QuantitySubQuotaSold(WHEAT)
-<= 100000
-
-c_e_ONE_VAR_CONSTANT:
-ONE_VAR_CONSTANT = 1.0
-
-bounds
- 0 <= DevotedAcreage(CORN) <= 500
- 0 <= DevotedAcreage(SUGAR_BEETS) <= 500
- 0 <= DevotedAcreage(WHEAT) <= 500
- 0 <= QuantitySubQuotaSold(CORN) <= +inf
- 0 <= QuantitySubQuotaSold(SUGAR_BEETS) <= +inf
- 0 <= QuantitySubQuotaSold(WHEAT) <= +inf
- 0 <= QuantitySuperQuotaSold(CORN) <= +inf
- 0 <= QuantitySuperQuotaSold(SUGAR_BEETS) <= +inf
- 0 <= QuantitySuperQuotaSold(WHEAT) <= +inf
- 0 <= QuantityPurchased(CORN) <= +inf
- 0 <= QuantityPurchased(SUGAR_BEETS) <= +inf
- 0 <= QuantityPurchased(WHEAT) <= +inf
-end
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_symbolic_names_baseline/scenario_files/farmer.lp.det.AverageScenario b/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_symbolic_names_baseline/scenario_files/farmer.lp.det.AverageScenario
deleted file mode 100644
index 44652810384..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_symbolic_names_baseline/scenario_files/farmer.lp.det.AverageScenario
+++ /dev/null
@@ -1,104 +0,0 @@
-\* Source Pyomo model name=ZeroStochasticData *\
-
-min
-Total_Cost_Objective:
-+230 DevotedAcreage(CORN)
-+260 DevotedAcreage(SUGAR_BEETS)
-+150 DevotedAcreage(WHEAT)
-+210 QuantityPurchased(CORN)
-+100000 QuantityPurchased(SUGAR_BEETS)
-+238 QuantityPurchased(WHEAT)
--150 QuantitySubQuotaSold(CORN)
--36 QuantitySubQuotaSold(SUGAR_BEETS)
--170 QuantitySubQuotaSold(WHEAT)
--10 QuantitySuperQuotaSold(SUGAR_BEETS)
-+0 ONE_VAR_CONSTANT
-
-s.t.
-
-c_u_ConstrainTotalAcreage_:
-+1 DevotedAcreage(CORN)
-+1 DevotedAcreage(SUGAR_BEETS)
-+1 DevotedAcreage(WHEAT)
-<= 500
-
-c_l_EnforceCattleFeedRequirement(CORN)_:
--9876543210 DevotedAcreage(CORN)
-+1 QuantityPurchased(CORN)
--1 QuantitySubQuotaSold(CORN)
--1 QuantitySuperQuotaSold(CORN)
->= 240
-
-c_l_EnforceCattleFeedRequirement(SUGAR_BEETS)_:
--9876543210 DevotedAcreage(SUGAR_BEETS)
-+1 QuantityPurchased(SUGAR_BEETS)
--1 QuantitySubQuotaSold(SUGAR_BEETS)
--1 QuantitySuperQuotaSold(SUGAR_BEETS)
->= 0
-
-c_l_EnforceCattleFeedRequirement(WHEAT)_:
--9876543210 DevotedAcreage(WHEAT)
-+1 QuantityPurchased(WHEAT)
--1 QuantitySubQuotaSold(WHEAT)
--1 QuantitySuperQuotaSold(WHEAT)
->= 200
-
-c_u_LimitAmountSold(CORN)_:
--9876543210 DevotedAcreage(CORN)
-+1 QuantitySubQuotaSold(CORN)
-+1 QuantitySuperQuotaSold(CORN)
-<= 0
-
-c_u_LimitAmountSold(SUGAR_BEETS)_:
--9876543210 DevotedAcreage(SUGAR_BEETS)
-+1 QuantitySubQuotaSold(SUGAR_BEETS)
-+1 QuantitySuperQuotaSold(SUGAR_BEETS)
-<= 0
-
-c_u_LimitAmountSold(WHEAT)_:
--9876543210 DevotedAcreage(WHEAT)
-+1 QuantitySubQuotaSold(WHEAT)
-+1 QuantitySuperQuotaSold(WHEAT)
-<= 0
-
-r_l_EnforceQuotas(CORN)_:
-+1 QuantitySubQuotaSold(CORN)
->= 0
-
-r_u_EnforceQuotas(CORN)_:
-+1 QuantitySubQuotaSold(CORN)
-<= 100000
-
-r_l_EnforceQuotas(SUGAR_BEETS)_:
-+1 QuantitySubQuotaSold(SUGAR_BEETS)
->= 0
-
-r_u_EnforceQuotas(SUGAR_BEETS)_:
-+1 QuantitySubQuotaSold(SUGAR_BEETS)
-<= 6000
-
-r_l_EnforceQuotas(WHEAT)_:
-+1 QuantitySubQuotaSold(WHEAT)
->= 0
-
-r_u_EnforceQuotas(WHEAT)_:
-+1 QuantitySubQuotaSold(WHEAT)
-<= 100000
-
-c_e_ONE_VAR_CONSTANT:
-ONE_VAR_CONSTANT = 1.0
-
-bounds
- 0 <= DevotedAcreage(CORN) <= 500
- 0 <= DevotedAcreage(SUGAR_BEETS) <= 500
- 0 <= DevotedAcreage(WHEAT) <= 500
- 0 <= QuantitySubQuotaSold(CORN) <= +inf
- 0 <= QuantitySubQuotaSold(SUGAR_BEETS) <= +inf
- 0 <= QuantitySubQuotaSold(WHEAT) <= +inf
- 0 <= QuantitySuperQuotaSold(CORN) <= +inf
- 0 <= QuantitySuperQuotaSold(SUGAR_BEETS) <= +inf
- 0 <= QuantitySuperQuotaSold(WHEAT) <= +inf
- 0 <= QuantityPurchased(CORN) <= +inf
- 0 <= QuantityPurchased(SUGAR_BEETS) <= +inf
- 0 <= QuantityPurchased(WHEAT) <= +inf
-end
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_symbolic_names_baseline/scenario_files/farmer.lp.det.BelowAverageScenario b/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_symbolic_names_baseline/scenario_files/farmer.lp.det.BelowAverageScenario
deleted file mode 100644
index 44652810384..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_symbolic_names_baseline/scenario_files/farmer.lp.det.BelowAverageScenario
+++ /dev/null
@@ -1,104 +0,0 @@
-\* Source Pyomo model name=ZeroStochasticData *\
-
-min
-Total_Cost_Objective:
-+230 DevotedAcreage(CORN)
-+260 DevotedAcreage(SUGAR_BEETS)
-+150 DevotedAcreage(WHEAT)
-+210 QuantityPurchased(CORN)
-+100000 QuantityPurchased(SUGAR_BEETS)
-+238 QuantityPurchased(WHEAT)
--150 QuantitySubQuotaSold(CORN)
--36 QuantitySubQuotaSold(SUGAR_BEETS)
--170 QuantitySubQuotaSold(WHEAT)
--10 QuantitySuperQuotaSold(SUGAR_BEETS)
-+0 ONE_VAR_CONSTANT
-
-s.t.
-
-c_u_ConstrainTotalAcreage_:
-+1 DevotedAcreage(CORN)
-+1 DevotedAcreage(SUGAR_BEETS)
-+1 DevotedAcreage(WHEAT)
-<= 500
-
-c_l_EnforceCattleFeedRequirement(CORN)_:
--9876543210 DevotedAcreage(CORN)
-+1 QuantityPurchased(CORN)
--1 QuantitySubQuotaSold(CORN)
--1 QuantitySuperQuotaSold(CORN)
->= 240
-
-c_l_EnforceCattleFeedRequirement(SUGAR_BEETS)_:
--9876543210 DevotedAcreage(SUGAR_BEETS)
-+1 QuantityPurchased(SUGAR_BEETS)
--1 QuantitySubQuotaSold(SUGAR_BEETS)
--1 QuantitySuperQuotaSold(SUGAR_BEETS)
->= 0
-
-c_l_EnforceCattleFeedRequirement(WHEAT)_:
--9876543210 DevotedAcreage(WHEAT)
-+1 QuantityPurchased(WHEAT)
--1 QuantitySubQuotaSold(WHEAT)
--1 QuantitySuperQuotaSold(WHEAT)
->= 200
-
-c_u_LimitAmountSold(CORN)_:
--9876543210 DevotedAcreage(CORN)
-+1 QuantitySubQuotaSold(CORN)
-+1 QuantitySuperQuotaSold(CORN)
-<= 0
-
-c_u_LimitAmountSold(SUGAR_BEETS)_:
--9876543210 DevotedAcreage(SUGAR_BEETS)
-+1 QuantitySubQuotaSold(SUGAR_BEETS)
-+1 QuantitySuperQuotaSold(SUGAR_BEETS)
-<= 0
-
-c_u_LimitAmountSold(WHEAT)_:
--9876543210 DevotedAcreage(WHEAT)
-+1 QuantitySubQuotaSold(WHEAT)
-+1 QuantitySuperQuotaSold(WHEAT)
-<= 0
-
-r_l_EnforceQuotas(CORN)_:
-+1 QuantitySubQuotaSold(CORN)
->= 0
-
-r_u_EnforceQuotas(CORN)_:
-+1 QuantitySubQuotaSold(CORN)
-<= 100000
-
-r_l_EnforceQuotas(SUGAR_BEETS)_:
-+1 QuantitySubQuotaSold(SUGAR_BEETS)
->= 0
-
-r_u_EnforceQuotas(SUGAR_BEETS)_:
-+1 QuantitySubQuotaSold(SUGAR_BEETS)
-<= 6000
-
-r_l_EnforceQuotas(WHEAT)_:
-+1 QuantitySubQuotaSold(WHEAT)
->= 0
-
-r_u_EnforceQuotas(WHEAT)_:
-+1 QuantitySubQuotaSold(WHEAT)
-<= 100000
-
-c_e_ONE_VAR_CONSTANT:
-ONE_VAR_CONSTANT = 1.0
-
-bounds
- 0 <= DevotedAcreage(CORN) <= 500
- 0 <= DevotedAcreage(SUGAR_BEETS) <= 500
- 0 <= DevotedAcreage(WHEAT) <= 500
- 0 <= QuantitySubQuotaSold(CORN) <= +inf
- 0 <= QuantitySubQuotaSold(SUGAR_BEETS) <= +inf
- 0 <= QuantitySubQuotaSold(WHEAT) <= +inf
- 0 <= QuantitySuperQuotaSold(CORN) <= +inf
- 0 <= QuantitySuperQuotaSold(SUGAR_BEETS) <= +inf
- 0 <= QuantitySuperQuotaSold(WHEAT) <= +inf
- 0 <= QuantityPurchased(CORN) <= +inf
- 0 <= QuantityPurchased(SUGAR_BEETS) <= +inf
- 0 <= QuantityPurchased(WHEAT) <= +inf
-end
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_symbolic_names_baseline/scenario_files/farmer.lp.symbols.AboveAverageScenario b/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_symbolic_names_baseline/scenario_files/farmer.lp.symbols.AboveAverageScenario
deleted file mode 100644
index e973348847d..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_symbolic_names_baseline/scenario_files/farmer.lp.symbols.AboveAverageScenario
+++ /dev/null
@@ -1,3 +0,0 @@
-DevotedAcreage(CORN) DevotedAcreage:$CORN
-DevotedAcreage(SUGAR_BEETS) DevotedAcreage:$SUGAR_BEETS
-DevotedAcreage(WHEAT) DevotedAcreage:$WHEAT
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_symbolic_names_baseline/scenario_files/farmer.lp.symbols.AverageScenario b/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_symbolic_names_baseline/scenario_files/farmer.lp.symbols.AverageScenario
deleted file mode 100644
index e973348847d..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_symbolic_names_baseline/scenario_files/farmer.lp.symbols.AverageScenario
+++ /dev/null
@@ -1,3 +0,0 @@
-DevotedAcreage(CORN) DevotedAcreage:$CORN
-DevotedAcreage(SUGAR_BEETS) DevotedAcreage:$SUGAR_BEETS
-DevotedAcreage(WHEAT) DevotedAcreage:$WHEAT
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_symbolic_names_baseline/scenario_files/farmer.lp.symbols.BelowAverageScenario b/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_symbolic_names_baseline/scenario_files/farmer.lp.symbols.BelowAverageScenario
deleted file mode 100644
index e973348847d..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_symbolic_names_baseline/scenario_files/farmer.lp.symbols.BelowAverageScenario
+++ /dev/null
@@ -1,3 +0,0 @@
-DevotedAcreage(CORN) DevotedAcreage:$CORN
-DevotedAcreage(SUGAR_BEETS) DevotedAcreage:$SUGAR_BEETS
-DevotedAcreage(WHEAT) DevotedAcreage:$WHEAT
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_symbolic_names_baseline/scenario_files/farmer.row.AboveAverageScenario b/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_symbolic_names_baseline/scenario_files/farmer.row.AboveAverageScenario
deleted file mode 100644
index 0bf2f5edad0..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_symbolic_names_baseline/scenario_files/farmer.row.AboveAverageScenario
+++ /dev/null
@@ -1,15 +0,0 @@
-Total_Cost_Objective
-c_u_ConstrainTotalAcreage_
-c_l_EnforceCattleFeedRequirement(CORN)_
-c_l_EnforceCattleFeedRequirement(SUGAR_BEETS)_
-c_l_EnforceCattleFeedRequirement(WHEAT)_
-c_u_LimitAmountSold(CORN)_
-c_u_LimitAmountSold(SUGAR_BEETS)_
-c_u_LimitAmountSold(WHEAT)_
-r_l_EnforceQuotas(CORN)_
-r_u_EnforceQuotas(CORN)_
-r_l_EnforceQuotas(SUGAR_BEETS)_
-r_u_EnforceQuotas(SUGAR_BEETS)_
-r_l_EnforceQuotas(WHEAT)_
-r_u_EnforceQuotas(WHEAT)_
-c_e_ONE_VAR_CONSTANT
\ No newline at end of file
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_symbolic_names_baseline/scenario_files/farmer.row.AverageScenario b/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_symbolic_names_baseline/scenario_files/farmer.row.AverageScenario
deleted file mode 100644
index 0bf2f5edad0..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_symbolic_names_baseline/scenario_files/farmer.row.AverageScenario
+++ /dev/null
@@ -1,15 +0,0 @@
-Total_Cost_Objective
-c_u_ConstrainTotalAcreage_
-c_l_EnforceCattleFeedRequirement(CORN)_
-c_l_EnforceCattleFeedRequirement(SUGAR_BEETS)_
-c_l_EnforceCattleFeedRequirement(WHEAT)_
-c_u_LimitAmountSold(CORN)_
-c_u_LimitAmountSold(SUGAR_BEETS)_
-c_u_LimitAmountSold(WHEAT)_
-r_l_EnforceQuotas(CORN)_
-r_u_EnforceQuotas(CORN)_
-r_l_EnforceQuotas(SUGAR_BEETS)_
-r_u_EnforceQuotas(SUGAR_BEETS)_
-r_l_EnforceQuotas(WHEAT)_
-r_u_EnforceQuotas(WHEAT)_
-c_e_ONE_VAR_CONSTANT
\ No newline at end of file
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_symbolic_names_baseline/scenario_files/farmer.row.BelowAverageScenario b/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_symbolic_names_baseline/scenario_files/farmer.row.BelowAverageScenario
deleted file mode 100644
index 0bf2f5edad0..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_symbolic_names_baseline/scenario_files/farmer.row.BelowAverageScenario
+++ /dev/null
@@ -1,15 +0,0 @@
-Total_Cost_Objective
-c_u_ConstrainTotalAcreage_
-c_l_EnforceCattleFeedRequirement(CORN)_
-c_l_EnforceCattleFeedRequirement(SUGAR_BEETS)_
-c_l_EnforceCattleFeedRequirement(WHEAT)_
-c_u_LimitAmountSold(CORN)_
-c_u_LimitAmountSold(SUGAR_BEETS)_
-c_u_LimitAmountSold(WHEAT)_
-r_l_EnforceQuotas(CORN)_
-r_u_EnforceQuotas(CORN)_
-r_l_EnforceQuotas(SUGAR_BEETS)_
-r_u_EnforceQuotas(SUGAR_BEETS)_
-r_l_EnforceQuotas(WHEAT)_
-r_u_EnforceQuotas(WHEAT)_
-c_e_ONE_VAR_CONSTANT
\ No newline at end of file
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_symbolic_names_baseline/scenario_files/farmer.setup.lp.AboveAverageScenario b/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_symbolic_names_baseline/scenario_files/farmer.setup.lp.AboveAverageScenario
deleted file mode 100644
index 1e60d5830e8..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_symbolic_names_baseline/scenario_files/farmer.setup.lp.AboveAverageScenario
+++ /dev/null
@@ -1,103 +0,0 @@
-\* Source Pyomo model name=AboveAverageScenario *\
-
-min
-Total_Cost_Objective:
-+230 DevotedAcreage(CORN)
-+260 DevotedAcreage(SUGAR_BEETS)
-+150 DevotedAcreage(WHEAT)
-+210 QuantityPurchased(CORN)
-+100000 QuantityPurchased(SUGAR_BEETS)
-+238 QuantityPurchased(WHEAT)
--150 QuantitySubQuotaSold(CORN)
--36 QuantitySubQuotaSold(SUGAR_BEETS)
--170 QuantitySubQuotaSold(WHEAT)
--10 QuantitySuperQuotaSold(SUGAR_BEETS)
-
-s.t.
-
-c_u_ConstrainTotalAcreage_:
-+1 DevotedAcreage(CORN)
-+1 DevotedAcreage(SUGAR_BEETS)
-+1 DevotedAcreage(WHEAT)
-<= 500
-
-r_l_EnforceQuotas(CORN)_:
-+1 QuantitySubQuotaSold(CORN)
->= 0
-
-r_u_EnforceQuotas(CORN)_:
-+1 QuantitySubQuotaSold(CORN)
-<= 100000
-
-r_l_EnforceQuotas(SUGAR_BEETS)_:
-+1 QuantitySubQuotaSold(SUGAR_BEETS)
->= 0
-
-r_u_EnforceQuotas(SUGAR_BEETS)_:
-+1 QuantitySubQuotaSold(SUGAR_BEETS)
-<= 6000
-
-r_l_EnforceQuotas(WHEAT)_:
-+1 QuantitySubQuotaSold(WHEAT)
->= 0
-
-r_u_EnforceQuotas(WHEAT)_:
-+1 QuantitySubQuotaSold(WHEAT)
-<= 100000
-
-c_l_EnforceCattleFeedRequirement(CORN)_:
-+3.6000000000000001 DevotedAcreage(CORN)
-+1 QuantityPurchased(CORN)
--1 QuantitySubQuotaSold(CORN)
--1 QuantitySuperQuotaSold(CORN)
->= 240
-
-c_l_EnforceCattleFeedRequirement(SUGAR_BEETS)_:
-+24 DevotedAcreage(SUGAR_BEETS)
-+1 QuantityPurchased(SUGAR_BEETS)
--1 QuantitySubQuotaSold(SUGAR_BEETS)
--1 QuantitySuperQuotaSold(SUGAR_BEETS)
->= 0
-
-c_l_EnforceCattleFeedRequirement(WHEAT)_:
-+3 DevotedAcreage(WHEAT)
-+1 QuantityPurchased(WHEAT)
--1 QuantitySubQuotaSold(WHEAT)
--1 QuantitySuperQuotaSold(WHEAT)
->= 200
-
-c_u_LimitAmountSold(CORN)_:
--3.6000000000000001 DevotedAcreage(CORN)
-+1 QuantitySubQuotaSold(CORN)
-+1 QuantitySuperQuotaSold(CORN)
-<= 0
-
-c_u_LimitAmountSold(SUGAR_BEETS)_:
--24 DevotedAcreage(SUGAR_BEETS)
-+1 QuantitySubQuotaSold(SUGAR_BEETS)
-+1 QuantitySuperQuotaSold(SUGAR_BEETS)
-<= 0
-
-c_u_LimitAmountSold(WHEAT)_:
--3 DevotedAcreage(WHEAT)
-+1 QuantitySubQuotaSold(WHEAT)
-+1 QuantitySuperQuotaSold(WHEAT)
-<= 0
-
-c_e_ONE_VAR_CONSTANT:
-ONE_VAR_CONSTANT = 1.0
-
-bounds
- 0 <= DevotedAcreage(CORN) <= 500
- 0 <= DevotedAcreage(SUGAR_BEETS) <= 500
- 0 <= DevotedAcreage(WHEAT) <= 500
- 0 <= QuantitySubQuotaSold(CORN) <= +inf
- 0 <= QuantitySubQuotaSold(SUGAR_BEETS) <= +inf
- 0 <= QuantitySubQuotaSold(WHEAT) <= +inf
- 0 <= QuantitySuperQuotaSold(CORN) <= +inf
- 0 <= QuantitySuperQuotaSold(SUGAR_BEETS) <= +inf
- 0 <= QuantitySuperQuotaSold(WHEAT) <= +inf
- 0 <= QuantityPurchased(CORN) <= +inf
- 0 <= QuantityPurchased(SUGAR_BEETS) <= +inf
- 0 <= QuantityPurchased(WHEAT) <= +inf
-end
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_symbolic_names_baseline/scenario_files/farmer.setup.lp.AverageScenario b/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_symbolic_names_baseline/scenario_files/farmer.setup.lp.AverageScenario
deleted file mode 100644
index 0d4751fb6ff..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_symbolic_names_baseline/scenario_files/farmer.setup.lp.AverageScenario
+++ /dev/null
@@ -1,103 +0,0 @@
-\* Source Pyomo model name=AverageScenario *\
-
-min
-Total_Cost_Objective:
-+230 DevotedAcreage(CORN)
-+260 DevotedAcreage(SUGAR_BEETS)
-+150 DevotedAcreage(WHEAT)
-+210 QuantityPurchased(CORN)
-+100000 QuantityPurchased(SUGAR_BEETS)
-+238 QuantityPurchased(WHEAT)
--150 QuantitySubQuotaSold(CORN)
--36 QuantitySubQuotaSold(SUGAR_BEETS)
--170 QuantitySubQuotaSold(WHEAT)
--10 QuantitySuperQuotaSold(SUGAR_BEETS)
-
-s.t.
-
-c_u_ConstrainTotalAcreage_:
-+1 DevotedAcreage(CORN)
-+1 DevotedAcreage(SUGAR_BEETS)
-+1 DevotedAcreage(WHEAT)
-<= 500
-
-r_l_EnforceQuotas(CORN)_:
-+1 QuantitySubQuotaSold(CORN)
->= 0
-
-r_u_EnforceQuotas(CORN)_:
-+1 QuantitySubQuotaSold(CORN)
-<= 100000
-
-r_l_EnforceQuotas(SUGAR_BEETS)_:
-+1 QuantitySubQuotaSold(SUGAR_BEETS)
->= 0
-
-r_u_EnforceQuotas(SUGAR_BEETS)_:
-+1 QuantitySubQuotaSold(SUGAR_BEETS)
-<= 6000
-
-r_l_EnforceQuotas(WHEAT)_:
-+1 QuantitySubQuotaSold(WHEAT)
->= 0
-
-r_u_EnforceQuotas(WHEAT)_:
-+1 QuantitySubQuotaSold(WHEAT)
-<= 100000
-
-c_l_EnforceCattleFeedRequirement(CORN)_:
-+3 DevotedAcreage(CORN)
-+1 QuantityPurchased(CORN)
--1 QuantitySubQuotaSold(CORN)
--1 QuantitySuperQuotaSold(CORN)
->= 240
-
-c_l_EnforceCattleFeedRequirement(SUGAR_BEETS)_:
-+20 DevotedAcreage(SUGAR_BEETS)
-+1 QuantityPurchased(SUGAR_BEETS)
--1 QuantitySubQuotaSold(SUGAR_BEETS)
--1 QuantitySuperQuotaSold(SUGAR_BEETS)
->= 0
-
-c_l_EnforceCattleFeedRequirement(WHEAT)_:
-+2.5 DevotedAcreage(WHEAT)
-+1 QuantityPurchased(WHEAT)
--1 QuantitySubQuotaSold(WHEAT)
--1 QuantitySuperQuotaSold(WHEAT)
->= 200
-
-c_u_LimitAmountSold(CORN)_:
--3 DevotedAcreage(CORN)
-+1 QuantitySubQuotaSold(CORN)
-+1 QuantitySuperQuotaSold(CORN)
-<= 0
-
-c_u_LimitAmountSold(SUGAR_BEETS)_:
--20 DevotedAcreage(SUGAR_BEETS)
-+1 QuantitySubQuotaSold(SUGAR_BEETS)
-+1 QuantitySuperQuotaSold(SUGAR_BEETS)
-<= 0
-
-c_u_LimitAmountSold(WHEAT)_:
--2.5 DevotedAcreage(WHEAT)
-+1 QuantitySubQuotaSold(WHEAT)
-+1 QuantitySuperQuotaSold(WHEAT)
-<= 0
-
-c_e_ONE_VAR_CONSTANT:
-ONE_VAR_CONSTANT = 1.0
-
-bounds
- 0 <= DevotedAcreage(CORN) <= 500
- 0 <= DevotedAcreage(SUGAR_BEETS) <= 500
- 0 <= DevotedAcreage(WHEAT) <= 500
- 0 <= QuantitySubQuotaSold(CORN) <= +inf
- 0 <= QuantitySubQuotaSold(SUGAR_BEETS) <= +inf
- 0 <= QuantitySubQuotaSold(WHEAT) <= +inf
- 0 <= QuantitySuperQuotaSold(CORN) <= +inf
- 0 <= QuantitySuperQuotaSold(SUGAR_BEETS) <= +inf
- 0 <= QuantitySuperQuotaSold(WHEAT) <= +inf
- 0 <= QuantityPurchased(CORN) <= +inf
- 0 <= QuantityPurchased(SUGAR_BEETS) <= +inf
- 0 <= QuantityPurchased(WHEAT) <= +inf
-end
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_symbolic_names_baseline/scenario_files/farmer.setup.lp.BelowAverageScenario b/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_symbolic_names_baseline/scenario_files/farmer.setup.lp.BelowAverageScenario
deleted file mode 100644
index c85f5462747..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_symbolic_names_baseline/scenario_files/farmer.setup.lp.BelowAverageScenario
+++ /dev/null
@@ -1,103 +0,0 @@
-\* Source Pyomo model name=BelowAverageScenario *\
-
-min
-Total_Cost_Objective:
-+230 DevotedAcreage(CORN)
-+260 DevotedAcreage(SUGAR_BEETS)
-+150 DevotedAcreage(WHEAT)
-+210 QuantityPurchased(CORN)
-+100000 QuantityPurchased(SUGAR_BEETS)
-+238 QuantityPurchased(WHEAT)
--150 QuantitySubQuotaSold(CORN)
--36 QuantitySubQuotaSold(SUGAR_BEETS)
--170 QuantitySubQuotaSold(WHEAT)
--10 QuantitySuperQuotaSold(SUGAR_BEETS)
-
-s.t.
-
-c_u_ConstrainTotalAcreage_:
-+1 DevotedAcreage(CORN)
-+1 DevotedAcreage(SUGAR_BEETS)
-+1 DevotedAcreage(WHEAT)
-<= 500
-
-r_l_EnforceQuotas(CORN)_:
-+1 QuantitySubQuotaSold(CORN)
->= 0
-
-r_u_EnforceQuotas(CORN)_:
-+1 QuantitySubQuotaSold(CORN)
-<= 100000
-
-r_l_EnforceQuotas(SUGAR_BEETS)_:
-+1 QuantitySubQuotaSold(SUGAR_BEETS)
->= 0
-
-r_u_EnforceQuotas(SUGAR_BEETS)_:
-+1 QuantitySubQuotaSold(SUGAR_BEETS)
-<= 6000
-
-r_l_EnforceQuotas(WHEAT)_:
-+1 QuantitySubQuotaSold(WHEAT)
->= 0
-
-r_u_EnforceQuotas(WHEAT)_:
-+1 QuantitySubQuotaSold(WHEAT)
-<= 100000
-
-c_l_EnforceCattleFeedRequirement(CORN)_:
-+2.3999999999999999 DevotedAcreage(CORN)
-+1 QuantityPurchased(CORN)
--1 QuantitySubQuotaSold(CORN)
--1 QuantitySuperQuotaSold(CORN)
->= 240
-
-c_l_EnforceCattleFeedRequirement(SUGAR_BEETS)_:
-+16 DevotedAcreage(SUGAR_BEETS)
-+1 QuantityPurchased(SUGAR_BEETS)
--1 QuantitySubQuotaSold(SUGAR_BEETS)
--1 QuantitySuperQuotaSold(SUGAR_BEETS)
->= 0
-
-c_l_EnforceCattleFeedRequirement(WHEAT)_:
-+2 DevotedAcreage(WHEAT)
-+1 QuantityPurchased(WHEAT)
--1 QuantitySubQuotaSold(WHEAT)
--1 QuantitySuperQuotaSold(WHEAT)
->= 200
-
-c_u_LimitAmountSold(CORN)_:
--2.3999999999999999 DevotedAcreage(CORN)
-+1 QuantitySubQuotaSold(CORN)
-+1 QuantitySuperQuotaSold(CORN)
-<= 0
-
-c_u_LimitAmountSold(SUGAR_BEETS)_:
--16 DevotedAcreage(SUGAR_BEETS)
-+1 QuantitySubQuotaSold(SUGAR_BEETS)
-+1 QuantitySuperQuotaSold(SUGAR_BEETS)
-<= 0
-
-c_u_LimitAmountSold(WHEAT)_:
--2 DevotedAcreage(WHEAT)
-+1 QuantitySubQuotaSold(WHEAT)
-+1 QuantitySuperQuotaSold(WHEAT)
-<= 0
-
-c_e_ONE_VAR_CONSTANT:
-ONE_VAR_CONSTANT = 1.0
-
-bounds
- 0 <= DevotedAcreage(CORN) <= 500
- 0 <= DevotedAcreage(SUGAR_BEETS) <= 500
- 0 <= DevotedAcreage(WHEAT) <= 500
- 0 <= QuantitySubQuotaSold(CORN) <= +inf
- 0 <= QuantitySubQuotaSold(SUGAR_BEETS) <= +inf
- 0 <= QuantitySubQuotaSold(WHEAT) <= +inf
- 0 <= QuantitySuperQuotaSold(CORN) <= +inf
- 0 <= QuantitySuperQuotaSold(SUGAR_BEETS) <= +inf
- 0 <= QuantitySuperQuotaSold(WHEAT) <= +inf
- 0 <= QuantityPurchased(CORN) <= +inf
- 0 <= QuantityPurchased(SUGAR_BEETS) <= +inf
- 0 <= QuantityPurchased(WHEAT) <= +inf
-end
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_symbolic_names_baseline/scenario_files/farmer.sto.AboveAverageScenario b/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_symbolic_names_baseline/scenario_files/farmer.sto.AboveAverageScenario
deleted file mode 100644
index 11764e8d6fd..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_symbolic_names_baseline/scenario_files/farmer.sto.AboveAverageScenario
+++ /dev/null
@@ -1,7 +0,0 @@
- BL BLOCK1 PERIOD2 0.33333332999999998
- DevotedAcreage(CORN) c_l_EnforceCattleFeedRequirement(CORN)_ 3.6000000000000001
- DevotedAcreage(SUGAR_BEETS) c_l_EnforceCattleFeedRequirement(SUGAR_BEETS)_ 24
- DevotedAcreage(WHEAT) c_l_EnforceCattleFeedRequirement(WHEAT)_ 3
- DevotedAcreage(CORN) c_u_LimitAmountSold(CORN)_ -3.6000000000000001
- DevotedAcreage(SUGAR_BEETS) c_u_LimitAmountSold(SUGAR_BEETS)_ -24
- DevotedAcreage(WHEAT) c_u_LimitAmountSold(WHEAT)_ -3
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_symbolic_names_baseline/scenario_files/farmer.sto.AverageScenario b/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_symbolic_names_baseline/scenario_files/farmer.sto.AverageScenario
deleted file mode 100644
index 9a1dbbdfb5c..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_symbolic_names_baseline/scenario_files/farmer.sto.AverageScenario
+++ /dev/null
@@ -1,7 +0,0 @@
- BL BLOCK1 PERIOD2 0.33333333999999998
- DevotedAcreage(CORN) c_l_EnforceCattleFeedRequirement(CORN)_ 3
- DevotedAcreage(SUGAR_BEETS) c_l_EnforceCattleFeedRequirement(SUGAR_BEETS)_ 20
- DevotedAcreage(WHEAT) c_l_EnforceCattleFeedRequirement(WHEAT)_ 2.5
- DevotedAcreage(CORN) c_u_LimitAmountSold(CORN)_ -3
- DevotedAcreage(SUGAR_BEETS) c_u_LimitAmountSold(SUGAR_BEETS)_ -20
- DevotedAcreage(WHEAT) c_u_LimitAmountSold(WHEAT)_ -2.5
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_symbolic_names_baseline/scenario_files/farmer.sto.BelowAverageScenario b/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_symbolic_names_baseline/scenario_files/farmer.sto.BelowAverageScenario
deleted file mode 100644
index 002b173fa98..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_symbolic_names_baseline/scenario_files/farmer.sto.BelowAverageScenario
+++ /dev/null
@@ -1,7 +0,0 @@
- BL BLOCK1 PERIOD2 0.33333332999999998
- DevotedAcreage(CORN) c_l_EnforceCattleFeedRequirement(CORN)_ 2.3999999999999999
- DevotedAcreage(SUGAR_BEETS) c_l_EnforceCattleFeedRequirement(SUGAR_BEETS)_ 16
- DevotedAcreage(WHEAT) c_l_EnforceCattleFeedRequirement(WHEAT)_ 2
- DevotedAcreage(CORN) c_u_LimitAmountSold(CORN)_ -2.3999999999999999
- DevotedAcreage(SUGAR_BEETS) c_u_LimitAmountSold(SUGAR_BEETS)_ -16
- DevotedAcreage(WHEAT) c_u_LimitAmountSold(WHEAT)_ -2
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_symbolic_names_baseline/scenario_files/farmer.sto.struct.AboveAverageScenario b/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_symbolic_names_baseline/scenario_files/farmer.sto.struct.AboveAverageScenario
deleted file mode 100644
index 65fbc4b8d79..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_symbolic_names_baseline/scenario_files/farmer.sto.struct.AboveAverageScenario
+++ /dev/null
@@ -1,6 +0,0 @@
-DevotedAcreage(CORN) c_l_EnforceCattleFeedRequirement(CORN)_
-DevotedAcreage(SUGAR_BEETS) c_l_EnforceCattleFeedRequirement(SUGAR_BEETS)_
-DevotedAcreage(WHEAT) c_l_EnforceCattleFeedRequirement(WHEAT)_
-DevotedAcreage(CORN) c_u_LimitAmountSold(CORN)_
-DevotedAcreage(SUGAR_BEETS) c_u_LimitAmountSold(SUGAR_BEETS)_
-DevotedAcreage(WHEAT) c_u_LimitAmountSold(WHEAT)_
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_symbolic_names_baseline/scenario_files/farmer.sto.struct.AverageScenario b/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_symbolic_names_baseline/scenario_files/farmer.sto.struct.AverageScenario
deleted file mode 100644
index 65fbc4b8d79..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_symbolic_names_baseline/scenario_files/farmer.sto.struct.AverageScenario
+++ /dev/null
@@ -1,6 +0,0 @@
-DevotedAcreage(CORN) c_l_EnforceCattleFeedRequirement(CORN)_
-DevotedAcreage(SUGAR_BEETS) c_l_EnforceCattleFeedRequirement(SUGAR_BEETS)_
-DevotedAcreage(WHEAT) c_l_EnforceCattleFeedRequirement(WHEAT)_
-DevotedAcreage(CORN) c_u_LimitAmountSold(CORN)_
-DevotedAcreage(SUGAR_BEETS) c_u_LimitAmountSold(SUGAR_BEETS)_
-DevotedAcreage(WHEAT) c_u_LimitAmountSold(WHEAT)_
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_symbolic_names_baseline/scenario_files/farmer.sto.struct.BelowAverageScenario b/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_symbolic_names_baseline/scenario_files/farmer.sto.struct.BelowAverageScenario
deleted file mode 100644
index 65fbc4b8d79..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_symbolic_names_baseline/scenario_files/farmer.sto.struct.BelowAverageScenario
+++ /dev/null
@@ -1,6 +0,0 @@
-DevotedAcreage(CORN) c_l_EnforceCattleFeedRequirement(CORN)_
-DevotedAcreage(SUGAR_BEETS) c_l_EnforceCattleFeedRequirement(SUGAR_BEETS)_
-DevotedAcreage(WHEAT) c_l_EnforceCattleFeedRequirement(WHEAT)_
-DevotedAcreage(CORN) c_u_LimitAmountSold(CORN)_
-DevotedAcreage(SUGAR_BEETS) c_u_LimitAmountSold(SUGAR_BEETS)_
-DevotedAcreage(WHEAT) c_u_LimitAmountSold(WHEAT)_
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_symbolic_names_baseline/scenario_files/farmer.tim.AboveAverageScenario b/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_symbolic_names_baseline/scenario_files/farmer.tim.AboveAverageScenario
deleted file mode 100644
index 0886a749af5..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_symbolic_names_baseline/scenario_files/farmer.tim.AboveAverageScenario
+++ /dev/null
@@ -1,35 +0,0 @@
-TIME farmer
-PERIODS EXPLICIT
- TIME1
- TIME2
-ROWS
- Total_Cost_Objective TIME1
- c_u_ConstrainTotalAcreage_ TIME1
- c_l_EnforceCattleFeedRequirement(CORN)_ TIME2
- c_l_EnforceCattleFeedRequirement(SUGAR_BEETS)_ TIME2
- c_l_EnforceCattleFeedRequirement(WHEAT)_ TIME2
- c_u_LimitAmountSold(CORN)_ TIME2
- c_u_LimitAmountSold(SUGAR_BEETS)_ TIME2
- c_u_LimitAmountSold(WHEAT)_ TIME2
- r_l_EnforceQuotas(CORN)_ TIME2
- r_u_EnforceQuotas(CORN)_ TIME2
- r_l_EnforceQuotas(SUGAR_BEETS)_ TIME2
- r_u_EnforceQuotas(SUGAR_BEETS)_ TIME2
- r_l_EnforceQuotas(WHEAT)_ TIME2
- r_u_EnforceQuotas(WHEAT)_ TIME2
- c_e_ONE_VAR_CONSTANT TIME2
-COLS
- DevotedAcreage(CORN) TIME1
- DevotedAcreage(SUGAR_BEETS) TIME1
- DevotedAcreage(WHEAT) TIME1
- QuantityPurchased(CORN) TIME2
- QuantityPurchased(SUGAR_BEETS) TIME2
- QuantityPurchased(WHEAT) TIME2
- QuantitySubQuotaSold(CORN) TIME2
- QuantitySubQuotaSold(SUGAR_BEETS) TIME2
- QuantitySubQuotaSold(WHEAT) TIME2
- QuantitySuperQuotaSold(CORN) TIME2
- QuantitySuperQuotaSold(SUGAR_BEETS) TIME2
- QuantitySuperQuotaSold(WHEAT) TIME2
- ONE_VAR_CONSTANT TIME2
-ENDATA
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_symbolic_names_baseline/scenario_files/farmer.tim.AverageScenario b/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_symbolic_names_baseline/scenario_files/farmer.tim.AverageScenario
deleted file mode 100644
index 0886a749af5..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_symbolic_names_baseline/scenario_files/farmer.tim.AverageScenario
+++ /dev/null
@@ -1,35 +0,0 @@
-TIME farmer
-PERIODS EXPLICIT
- TIME1
- TIME2
-ROWS
- Total_Cost_Objective TIME1
- c_u_ConstrainTotalAcreage_ TIME1
- c_l_EnforceCattleFeedRequirement(CORN)_ TIME2
- c_l_EnforceCattleFeedRequirement(SUGAR_BEETS)_ TIME2
- c_l_EnforceCattleFeedRequirement(WHEAT)_ TIME2
- c_u_LimitAmountSold(CORN)_ TIME2
- c_u_LimitAmountSold(SUGAR_BEETS)_ TIME2
- c_u_LimitAmountSold(WHEAT)_ TIME2
- r_l_EnforceQuotas(CORN)_ TIME2
- r_u_EnforceQuotas(CORN)_ TIME2
- r_l_EnforceQuotas(SUGAR_BEETS)_ TIME2
- r_u_EnforceQuotas(SUGAR_BEETS)_ TIME2
- r_l_EnforceQuotas(WHEAT)_ TIME2
- r_u_EnforceQuotas(WHEAT)_ TIME2
- c_e_ONE_VAR_CONSTANT TIME2
-COLS
- DevotedAcreage(CORN) TIME1
- DevotedAcreage(SUGAR_BEETS) TIME1
- DevotedAcreage(WHEAT) TIME1
- QuantityPurchased(CORN) TIME2
- QuantityPurchased(SUGAR_BEETS) TIME2
- QuantityPurchased(WHEAT) TIME2
- QuantitySubQuotaSold(CORN) TIME2
- QuantitySubQuotaSold(SUGAR_BEETS) TIME2
- QuantitySubQuotaSold(WHEAT) TIME2
- QuantitySuperQuotaSold(CORN) TIME2
- QuantitySuperQuotaSold(SUGAR_BEETS) TIME2
- QuantitySuperQuotaSold(WHEAT) TIME2
- ONE_VAR_CONSTANT TIME2
-ENDATA
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_symbolic_names_baseline/scenario_files/farmer.tim.BelowAverageScenario b/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_symbolic_names_baseline/scenario_files/farmer.tim.BelowAverageScenario
deleted file mode 100644
index 0886a749af5..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_symbolic_names_baseline/scenario_files/farmer.tim.BelowAverageScenario
+++ /dev/null
@@ -1,35 +0,0 @@
-TIME farmer
-PERIODS EXPLICIT
- TIME1
- TIME2
-ROWS
- Total_Cost_Objective TIME1
- c_u_ConstrainTotalAcreage_ TIME1
- c_l_EnforceCattleFeedRequirement(CORN)_ TIME2
- c_l_EnforceCattleFeedRequirement(SUGAR_BEETS)_ TIME2
- c_l_EnforceCattleFeedRequirement(WHEAT)_ TIME2
- c_u_LimitAmountSold(CORN)_ TIME2
- c_u_LimitAmountSold(SUGAR_BEETS)_ TIME2
- c_u_LimitAmountSold(WHEAT)_ TIME2
- r_l_EnforceQuotas(CORN)_ TIME2
- r_u_EnforceQuotas(CORN)_ TIME2
- r_l_EnforceQuotas(SUGAR_BEETS)_ TIME2
- r_u_EnforceQuotas(SUGAR_BEETS)_ TIME2
- r_l_EnforceQuotas(WHEAT)_ TIME2
- r_u_EnforceQuotas(WHEAT)_ TIME2
- c_e_ONE_VAR_CONSTANT TIME2
-COLS
- DevotedAcreage(CORN) TIME1
- DevotedAcreage(SUGAR_BEETS) TIME1
- DevotedAcreage(WHEAT) TIME1
- QuantityPurchased(CORN) TIME2
- QuantityPurchased(SUGAR_BEETS) TIME2
- QuantityPurchased(WHEAT) TIME2
- QuantitySubQuotaSold(CORN) TIME2
- QuantitySubQuotaSold(SUGAR_BEETS) TIME2
- QuantitySubQuotaSold(WHEAT) TIME2
- QuantitySuperQuotaSold(CORN) TIME2
- QuantitySuperQuotaSold(SUGAR_BEETS) TIME2
- QuantitySuperQuotaSold(WHEAT) TIME2
- ONE_VAR_CONSTANT TIME2
-ENDATA
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_symbolic_names_ignore_derived_baseline/farmer.col b/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_symbolic_names_ignore_derived_baseline/farmer.col
deleted file mode 100644
index 3493097936d..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_symbolic_names_ignore_derived_baseline/farmer.col
+++ /dev/null
@@ -1,13 +0,0 @@
-DevotedAcreage(CORN)
-DevotedAcreage(SUGAR_BEETS)
-DevotedAcreage(WHEAT)
-QuantityPurchased(CORN)
-QuantityPurchased(SUGAR_BEETS)
-QuantityPurchased(WHEAT)
-QuantitySubQuotaSold(CORN)
-QuantitySubQuotaSold(SUGAR_BEETS)
-QuantitySubQuotaSold(WHEAT)
-QuantitySuperQuotaSold(CORN)
-QuantitySuperQuotaSold(SUGAR_BEETS)
-QuantitySuperQuotaSold(WHEAT)
-ONE_VAR_CONSTANT
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_symbolic_names_ignore_derived_baseline/farmer.cor b/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_symbolic_names_ignore_derived_baseline/farmer.cor
deleted file mode 100644
index 8b276c7ba7f..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_symbolic_names_ignore_derived_baseline/farmer.cor
+++ /dev/null
@@ -1,104 +0,0 @@
-\* Source Pyomo model name=BelowAverageScenario *\
-
-min
-Total_Cost_Objective:
-+230 DevotedAcreage(CORN)
-+260 DevotedAcreage(SUGAR_BEETS)
-+150 DevotedAcreage(WHEAT)
-+210 QuantityPurchased(CORN)
-+100000 QuantityPurchased(SUGAR_BEETS)
-+238 QuantityPurchased(WHEAT)
--150 QuantitySubQuotaSold(CORN)
--36 QuantitySubQuotaSold(SUGAR_BEETS)
--170 QuantitySubQuotaSold(WHEAT)
--10 QuantitySuperQuotaSold(SUGAR_BEETS)
-+0 ONE_VAR_CONSTANT
-
-s.t.
-
-c_u_ConstrainTotalAcreage_:
-+1 DevotedAcreage(CORN)
-+1 DevotedAcreage(SUGAR_BEETS)
-+1 DevotedAcreage(WHEAT)
-<= 500
-
-c_l_EnforceCattleFeedRequirement(CORN)_:
-+2.3999999999999999 DevotedAcreage(CORN)
-+1 QuantityPurchased(CORN)
--1 QuantitySubQuotaSold(CORN)
--1 QuantitySuperQuotaSold(CORN)
->= 240
-
-c_l_EnforceCattleFeedRequirement(SUGAR_BEETS)_:
-+16 DevotedAcreage(SUGAR_BEETS)
-+1 QuantityPurchased(SUGAR_BEETS)
--1 QuantitySubQuotaSold(SUGAR_BEETS)
--1 QuantitySuperQuotaSold(SUGAR_BEETS)
->= 0
-
-c_l_EnforceCattleFeedRequirement(WHEAT)_:
-+2 DevotedAcreage(WHEAT)
-+1 QuantityPurchased(WHEAT)
--1 QuantitySubQuotaSold(WHEAT)
--1 QuantitySuperQuotaSold(WHEAT)
->= 200
-
-c_u_LimitAmountSold(CORN)_:
--2.3999999999999999 DevotedAcreage(CORN)
-+1 QuantitySubQuotaSold(CORN)
-+1 QuantitySuperQuotaSold(CORN)
-<= 0
-
-c_u_LimitAmountSold(SUGAR_BEETS)_:
--16 DevotedAcreage(SUGAR_BEETS)
-+1 QuantitySubQuotaSold(SUGAR_BEETS)
-+1 QuantitySuperQuotaSold(SUGAR_BEETS)
-<= 0
-
-c_u_LimitAmountSold(WHEAT)_:
--2 DevotedAcreage(WHEAT)
-+1 QuantitySubQuotaSold(WHEAT)
-+1 QuantitySuperQuotaSold(WHEAT)
-<= 0
-
-r_l_EnforceQuotas(CORN)_:
-+1 QuantitySubQuotaSold(CORN)
->= 0
-
-r_u_EnforceQuotas(CORN)_:
-+1 QuantitySubQuotaSold(CORN)
-<= 100000
-
-r_l_EnforceQuotas(SUGAR_BEETS)_:
-+1 QuantitySubQuotaSold(SUGAR_BEETS)
->= 0
-
-r_u_EnforceQuotas(SUGAR_BEETS)_:
-+1 QuantitySubQuotaSold(SUGAR_BEETS)
-<= 6000
-
-r_l_EnforceQuotas(WHEAT)_:
-+1 QuantitySubQuotaSold(WHEAT)
->= 0
-
-r_u_EnforceQuotas(WHEAT)_:
-+1 QuantitySubQuotaSold(WHEAT)
-<= 100000
-
-c_e_ONE_VAR_CONSTANT:
-ONE_VAR_CONSTANT = 1.0
-
-bounds
- 0 <= DevotedAcreage(CORN) <= 500
- 0 <= DevotedAcreage(SUGAR_BEETS) <= 500
- 0 <= DevotedAcreage(WHEAT) <= 500
- 0 <= QuantitySubQuotaSold(CORN) <= +inf
- 0 <= QuantitySubQuotaSold(SUGAR_BEETS) <= +inf
- 0 <= QuantitySubQuotaSold(WHEAT) <= +inf
- 0 <= QuantitySuperQuotaSold(CORN) <= +inf
- 0 <= QuantitySuperQuotaSold(SUGAR_BEETS) <= +inf
- 0 <= QuantitySuperQuotaSold(WHEAT) <= +inf
- 0 <= QuantityPurchased(CORN) <= +inf
- 0 <= QuantityPurchased(SUGAR_BEETS) <= +inf
- 0 <= QuantityPurchased(WHEAT) <= +inf
-end
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_symbolic_names_ignore_derived_baseline/farmer.cor.symbols b/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_symbolic_names_ignore_derived_baseline/farmer.cor.symbols
deleted file mode 100644
index e973348847d..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_symbolic_names_ignore_derived_baseline/farmer.cor.symbols
+++ /dev/null
@@ -1,3 +0,0 @@
-DevotedAcreage(CORN) DevotedAcreage:$CORN
-DevotedAcreage(SUGAR_BEETS) DevotedAcreage:$SUGAR_BEETS
-DevotedAcreage(WHEAT) DevotedAcreage:$WHEAT
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_symbolic_names_ignore_derived_baseline/farmer.lp.det b/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_symbolic_names_ignore_derived_baseline/farmer.lp.det
deleted file mode 100644
index 44652810384..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_symbolic_names_ignore_derived_baseline/farmer.lp.det
+++ /dev/null
@@ -1,104 +0,0 @@
-\* Source Pyomo model name=ZeroStochasticData *\
-
-min
-Total_Cost_Objective:
-+230 DevotedAcreage(CORN)
-+260 DevotedAcreage(SUGAR_BEETS)
-+150 DevotedAcreage(WHEAT)
-+210 QuantityPurchased(CORN)
-+100000 QuantityPurchased(SUGAR_BEETS)
-+238 QuantityPurchased(WHEAT)
--150 QuantitySubQuotaSold(CORN)
--36 QuantitySubQuotaSold(SUGAR_BEETS)
--170 QuantitySubQuotaSold(WHEAT)
--10 QuantitySuperQuotaSold(SUGAR_BEETS)
-+0 ONE_VAR_CONSTANT
-
-s.t.
-
-c_u_ConstrainTotalAcreage_:
-+1 DevotedAcreage(CORN)
-+1 DevotedAcreage(SUGAR_BEETS)
-+1 DevotedAcreage(WHEAT)
-<= 500
-
-c_l_EnforceCattleFeedRequirement(CORN)_:
--9876543210 DevotedAcreage(CORN)
-+1 QuantityPurchased(CORN)
--1 QuantitySubQuotaSold(CORN)
--1 QuantitySuperQuotaSold(CORN)
->= 240
-
-c_l_EnforceCattleFeedRequirement(SUGAR_BEETS)_:
--9876543210 DevotedAcreage(SUGAR_BEETS)
-+1 QuantityPurchased(SUGAR_BEETS)
--1 QuantitySubQuotaSold(SUGAR_BEETS)
--1 QuantitySuperQuotaSold(SUGAR_BEETS)
->= 0
-
-c_l_EnforceCattleFeedRequirement(WHEAT)_:
--9876543210 DevotedAcreage(WHEAT)
-+1 QuantityPurchased(WHEAT)
--1 QuantitySubQuotaSold(WHEAT)
--1 QuantitySuperQuotaSold(WHEAT)
->= 200
-
-c_u_LimitAmountSold(CORN)_:
--9876543210 DevotedAcreage(CORN)
-+1 QuantitySubQuotaSold(CORN)
-+1 QuantitySuperQuotaSold(CORN)
-<= 0
-
-c_u_LimitAmountSold(SUGAR_BEETS)_:
--9876543210 DevotedAcreage(SUGAR_BEETS)
-+1 QuantitySubQuotaSold(SUGAR_BEETS)
-+1 QuantitySuperQuotaSold(SUGAR_BEETS)
-<= 0
-
-c_u_LimitAmountSold(WHEAT)_:
--9876543210 DevotedAcreage(WHEAT)
-+1 QuantitySubQuotaSold(WHEAT)
-+1 QuantitySuperQuotaSold(WHEAT)
-<= 0
-
-r_l_EnforceQuotas(CORN)_:
-+1 QuantitySubQuotaSold(CORN)
->= 0
-
-r_u_EnforceQuotas(CORN)_:
-+1 QuantitySubQuotaSold(CORN)
-<= 100000
-
-r_l_EnforceQuotas(SUGAR_BEETS)_:
-+1 QuantitySubQuotaSold(SUGAR_BEETS)
->= 0
-
-r_u_EnforceQuotas(SUGAR_BEETS)_:
-+1 QuantitySubQuotaSold(SUGAR_BEETS)
-<= 6000
-
-r_l_EnforceQuotas(WHEAT)_:
-+1 QuantitySubQuotaSold(WHEAT)
->= 0
-
-r_u_EnforceQuotas(WHEAT)_:
-+1 QuantitySubQuotaSold(WHEAT)
-<= 100000
-
-c_e_ONE_VAR_CONSTANT:
-ONE_VAR_CONSTANT = 1.0
-
-bounds
- 0 <= DevotedAcreage(CORN) <= 500
- 0 <= DevotedAcreage(SUGAR_BEETS) <= 500
- 0 <= DevotedAcreage(WHEAT) <= 500
- 0 <= QuantitySubQuotaSold(CORN) <= +inf
- 0 <= QuantitySubQuotaSold(SUGAR_BEETS) <= +inf
- 0 <= QuantitySubQuotaSold(WHEAT) <= +inf
- 0 <= QuantitySuperQuotaSold(CORN) <= +inf
- 0 <= QuantitySuperQuotaSold(SUGAR_BEETS) <= +inf
- 0 <= QuantitySuperQuotaSold(WHEAT) <= +inf
- 0 <= QuantityPurchased(CORN) <= +inf
- 0 <= QuantityPurchased(SUGAR_BEETS) <= +inf
- 0 <= QuantityPurchased(WHEAT) <= +inf
-end
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_symbolic_names_ignore_derived_baseline/farmer.row b/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_symbolic_names_ignore_derived_baseline/farmer.row
deleted file mode 100644
index 0bf2f5edad0..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_symbolic_names_ignore_derived_baseline/farmer.row
+++ /dev/null
@@ -1,15 +0,0 @@
-Total_Cost_Objective
-c_u_ConstrainTotalAcreage_
-c_l_EnforceCattleFeedRequirement(CORN)_
-c_l_EnforceCattleFeedRequirement(SUGAR_BEETS)_
-c_l_EnforceCattleFeedRequirement(WHEAT)_
-c_u_LimitAmountSold(CORN)_
-c_u_LimitAmountSold(SUGAR_BEETS)_
-c_u_LimitAmountSold(WHEAT)_
-r_l_EnforceQuotas(CORN)_
-r_u_EnforceQuotas(CORN)_
-r_l_EnforceQuotas(SUGAR_BEETS)_
-r_u_EnforceQuotas(SUGAR_BEETS)_
-r_l_EnforceQuotas(WHEAT)_
-r_u_EnforceQuotas(WHEAT)_
-c_e_ONE_VAR_CONSTANT
\ No newline at end of file
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_symbolic_names_ignore_derived_baseline/farmer.sto b/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_symbolic_names_ignore_derived_baseline/farmer.sto
deleted file mode 100644
index 6772f4e3157..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_symbolic_names_ignore_derived_baseline/farmer.sto
+++ /dev/null
@@ -1,24 +0,0 @@
-STOCH farmer
-BLOCKS DISCRETE REPLACE
- BL BLOCK1 PERIOD2 0.33333332999999998
- DevotedAcreage(CORN) c_l_EnforceCattleFeedRequirement(CORN)_ 2.3999999999999999
- DevotedAcreage(SUGAR_BEETS) c_l_EnforceCattleFeedRequirement(SUGAR_BEETS)_ 16
- DevotedAcreage(WHEAT) c_l_EnforceCattleFeedRequirement(WHEAT)_ 2
- DevotedAcreage(CORN) c_u_LimitAmountSold(CORN)_ -2.3999999999999999
- DevotedAcreage(SUGAR_BEETS) c_u_LimitAmountSold(SUGAR_BEETS)_ -16
- DevotedAcreage(WHEAT) c_u_LimitAmountSold(WHEAT)_ -2
- BL BLOCK1 PERIOD2 0.33333333999999998
- DevotedAcreage(CORN) c_l_EnforceCattleFeedRequirement(CORN)_ 3
- DevotedAcreage(SUGAR_BEETS) c_l_EnforceCattleFeedRequirement(SUGAR_BEETS)_ 20
- DevotedAcreage(WHEAT) c_l_EnforceCattleFeedRequirement(WHEAT)_ 2.5
- DevotedAcreage(CORN) c_u_LimitAmountSold(CORN)_ -3
- DevotedAcreage(SUGAR_BEETS) c_u_LimitAmountSold(SUGAR_BEETS)_ -20
- DevotedAcreage(WHEAT) c_u_LimitAmountSold(WHEAT)_ -2.5
- BL BLOCK1 PERIOD2 0.33333332999999998
- DevotedAcreage(CORN) c_l_EnforceCattleFeedRequirement(CORN)_ 3.6000000000000001
- DevotedAcreage(SUGAR_BEETS) c_l_EnforceCattleFeedRequirement(SUGAR_BEETS)_ 24
- DevotedAcreage(WHEAT) c_l_EnforceCattleFeedRequirement(WHEAT)_ 3
- DevotedAcreage(CORN) c_u_LimitAmountSold(CORN)_ -3.6000000000000001
- DevotedAcreage(SUGAR_BEETS) c_u_LimitAmountSold(SUGAR_BEETS)_ -24
- DevotedAcreage(WHEAT) c_u_LimitAmountSold(WHEAT)_ -3
-ENDATA
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_symbolic_names_ignore_derived_baseline/farmer.sto.struct b/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_symbolic_names_ignore_derived_baseline/farmer.sto.struct
deleted file mode 100644
index 65fbc4b8d79..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_symbolic_names_ignore_derived_baseline/farmer.sto.struct
+++ /dev/null
@@ -1,6 +0,0 @@
-DevotedAcreage(CORN) c_l_EnforceCattleFeedRequirement(CORN)_
-DevotedAcreage(SUGAR_BEETS) c_l_EnforceCattleFeedRequirement(SUGAR_BEETS)_
-DevotedAcreage(WHEAT) c_l_EnforceCattleFeedRequirement(WHEAT)_
-DevotedAcreage(CORN) c_u_LimitAmountSold(CORN)_
-DevotedAcreage(SUGAR_BEETS) c_u_LimitAmountSold(SUGAR_BEETS)_
-DevotedAcreage(WHEAT) c_u_LimitAmountSold(WHEAT)_
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_symbolic_names_ignore_derived_baseline/farmer.tim b/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_symbolic_names_ignore_derived_baseline/farmer.tim
deleted file mode 100644
index 0886a749af5..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_symbolic_names_ignore_derived_baseline/farmer.tim
+++ /dev/null
@@ -1,35 +0,0 @@
-TIME farmer
-PERIODS EXPLICIT
- TIME1
- TIME2
-ROWS
- Total_Cost_Objective TIME1
- c_u_ConstrainTotalAcreage_ TIME1
- c_l_EnforceCattleFeedRequirement(CORN)_ TIME2
- c_l_EnforceCattleFeedRequirement(SUGAR_BEETS)_ TIME2
- c_l_EnforceCattleFeedRequirement(WHEAT)_ TIME2
- c_u_LimitAmountSold(CORN)_ TIME2
- c_u_LimitAmountSold(SUGAR_BEETS)_ TIME2
- c_u_LimitAmountSold(WHEAT)_ TIME2
- r_l_EnforceQuotas(CORN)_ TIME2
- r_u_EnforceQuotas(CORN)_ TIME2
- r_l_EnforceQuotas(SUGAR_BEETS)_ TIME2
- r_u_EnforceQuotas(SUGAR_BEETS)_ TIME2
- r_l_EnforceQuotas(WHEAT)_ TIME2
- r_u_EnforceQuotas(WHEAT)_ TIME2
- c_e_ONE_VAR_CONSTANT TIME2
-COLS
- DevotedAcreage(CORN) TIME1
- DevotedAcreage(SUGAR_BEETS) TIME1
- DevotedAcreage(WHEAT) TIME1
- QuantityPurchased(CORN) TIME2
- QuantityPurchased(SUGAR_BEETS) TIME2
- QuantityPurchased(WHEAT) TIME2
- QuantitySubQuotaSold(CORN) TIME2
- QuantitySubQuotaSold(SUGAR_BEETS) TIME2
- QuantitySubQuotaSold(WHEAT) TIME2
- QuantitySuperQuotaSold(CORN) TIME2
- QuantitySuperQuotaSold(SUGAR_BEETS) TIME2
- QuantitySuperQuotaSold(WHEAT) TIME2
- ONE_VAR_CONSTANT TIME2
-ENDATA
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_symbolic_names_ignore_derived_baseline/scenario_files/farmer.col.AboveAverageScenario b/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_symbolic_names_ignore_derived_baseline/scenario_files/farmer.col.AboveAverageScenario
deleted file mode 100644
index 3493097936d..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_symbolic_names_ignore_derived_baseline/scenario_files/farmer.col.AboveAverageScenario
+++ /dev/null
@@ -1,13 +0,0 @@
-DevotedAcreage(CORN)
-DevotedAcreage(SUGAR_BEETS)
-DevotedAcreage(WHEAT)
-QuantityPurchased(CORN)
-QuantityPurchased(SUGAR_BEETS)
-QuantityPurchased(WHEAT)
-QuantitySubQuotaSold(CORN)
-QuantitySubQuotaSold(SUGAR_BEETS)
-QuantitySubQuotaSold(WHEAT)
-QuantitySuperQuotaSold(CORN)
-QuantitySuperQuotaSold(SUGAR_BEETS)
-QuantitySuperQuotaSold(WHEAT)
-ONE_VAR_CONSTANT
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_symbolic_names_ignore_derived_baseline/scenario_files/farmer.col.AverageScenario b/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_symbolic_names_ignore_derived_baseline/scenario_files/farmer.col.AverageScenario
deleted file mode 100644
index 3493097936d..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_symbolic_names_ignore_derived_baseline/scenario_files/farmer.col.AverageScenario
+++ /dev/null
@@ -1,13 +0,0 @@
-DevotedAcreage(CORN)
-DevotedAcreage(SUGAR_BEETS)
-DevotedAcreage(WHEAT)
-QuantityPurchased(CORN)
-QuantityPurchased(SUGAR_BEETS)
-QuantityPurchased(WHEAT)
-QuantitySubQuotaSold(CORN)
-QuantitySubQuotaSold(SUGAR_BEETS)
-QuantitySubQuotaSold(WHEAT)
-QuantitySuperQuotaSold(CORN)
-QuantitySuperQuotaSold(SUGAR_BEETS)
-QuantitySuperQuotaSold(WHEAT)
-ONE_VAR_CONSTANT
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_symbolic_names_ignore_derived_baseline/scenario_files/farmer.col.BelowAverageScenario b/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_symbolic_names_ignore_derived_baseline/scenario_files/farmer.col.BelowAverageScenario
deleted file mode 100644
index 3493097936d..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_symbolic_names_ignore_derived_baseline/scenario_files/farmer.col.BelowAverageScenario
+++ /dev/null
@@ -1,13 +0,0 @@
-DevotedAcreage(CORN)
-DevotedAcreage(SUGAR_BEETS)
-DevotedAcreage(WHEAT)
-QuantityPurchased(CORN)
-QuantityPurchased(SUGAR_BEETS)
-QuantityPurchased(WHEAT)
-QuantitySubQuotaSold(CORN)
-QuantitySubQuotaSold(SUGAR_BEETS)
-QuantitySubQuotaSold(WHEAT)
-QuantitySuperQuotaSold(CORN)
-QuantitySuperQuotaSold(SUGAR_BEETS)
-QuantitySuperQuotaSold(WHEAT)
-ONE_VAR_CONSTANT
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_symbolic_names_ignore_derived_baseline/scenario_files/farmer.lp.AboveAverageScenario b/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_symbolic_names_ignore_derived_baseline/scenario_files/farmer.lp.AboveAverageScenario
deleted file mode 100644
index 69a21dc1634..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_symbolic_names_ignore_derived_baseline/scenario_files/farmer.lp.AboveAverageScenario
+++ /dev/null
@@ -1,104 +0,0 @@
-\* Source Pyomo model name=AboveAverageScenario *\
-
-min
-Total_Cost_Objective:
-+230 DevotedAcreage(CORN)
-+260 DevotedAcreage(SUGAR_BEETS)
-+150 DevotedAcreage(WHEAT)
-+210 QuantityPurchased(CORN)
-+100000 QuantityPurchased(SUGAR_BEETS)
-+238 QuantityPurchased(WHEAT)
--150 QuantitySubQuotaSold(CORN)
--36 QuantitySubQuotaSold(SUGAR_BEETS)
--170 QuantitySubQuotaSold(WHEAT)
--10 QuantitySuperQuotaSold(SUGAR_BEETS)
-+0 ONE_VAR_CONSTANT
-
-s.t.
-
-c_u_ConstrainTotalAcreage_:
-+1 DevotedAcreage(CORN)
-+1 DevotedAcreage(SUGAR_BEETS)
-+1 DevotedAcreage(WHEAT)
-<= 500
-
-c_l_EnforceCattleFeedRequirement(CORN)_:
-+3.6000000000000001 DevotedAcreage(CORN)
-+1 QuantityPurchased(CORN)
--1 QuantitySubQuotaSold(CORN)
--1 QuantitySuperQuotaSold(CORN)
->= 240
-
-c_l_EnforceCattleFeedRequirement(SUGAR_BEETS)_:
-+24 DevotedAcreage(SUGAR_BEETS)
-+1 QuantityPurchased(SUGAR_BEETS)
--1 QuantitySubQuotaSold(SUGAR_BEETS)
--1 QuantitySuperQuotaSold(SUGAR_BEETS)
->= 0
-
-c_l_EnforceCattleFeedRequirement(WHEAT)_:
-+3 DevotedAcreage(WHEAT)
-+1 QuantityPurchased(WHEAT)
--1 QuantitySubQuotaSold(WHEAT)
--1 QuantitySuperQuotaSold(WHEAT)
->= 200
-
-c_u_LimitAmountSold(CORN)_:
--3.6000000000000001 DevotedAcreage(CORN)
-+1 QuantitySubQuotaSold(CORN)
-+1 QuantitySuperQuotaSold(CORN)
-<= 0
-
-c_u_LimitAmountSold(SUGAR_BEETS)_:
--24 DevotedAcreage(SUGAR_BEETS)
-+1 QuantitySubQuotaSold(SUGAR_BEETS)
-+1 QuantitySuperQuotaSold(SUGAR_BEETS)
-<= 0
-
-c_u_LimitAmountSold(WHEAT)_:
--3 DevotedAcreage(WHEAT)
-+1 QuantitySubQuotaSold(WHEAT)
-+1 QuantitySuperQuotaSold(WHEAT)
-<= 0
-
-r_l_EnforceQuotas(CORN)_:
-+1 QuantitySubQuotaSold(CORN)
->= 0
-
-r_u_EnforceQuotas(CORN)_:
-+1 QuantitySubQuotaSold(CORN)
-<= 100000
-
-r_l_EnforceQuotas(SUGAR_BEETS)_:
-+1 QuantitySubQuotaSold(SUGAR_BEETS)
->= 0
-
-r_u_EnforceQuotas(SUGAR_BEETS)_:
-+1 QuantitySubQuotaSold(SUGAR_BEETS)
-<= 6000
-
-r_l_EnforceQuotas(WHEAT)_:
-+1 QuantitySubQuotaSold(WHEAT)
->= 0
-
-r_u_EnforceQuotas(WHEAT)_:
-+1 QuantitySubQuotaSold(WHEAT)
-<= 100000
-
-c_e_ONE_VAR_CONSTANT:
-ONE_VAR_CONSTANT = 1.0
-
-bounds
- 0 <= DevotedAcreage(CORN) <= 500
- 0 <= DevotedAcreage(SUGAR_BEETS) <= 500
- 0 <= DevotedAcreage(WHEAT) <= 500
- 0 <= QuantitySubQuotaSold(CORN) <= +inf
- 0 <= QuantitySubQuotaSold(SUGAR_BEETS) <= +inf
- 0 <= QuantitySubQuotaSold(WHEAT) <= +inf
- 0 <= QuantitySuperQuotaSold(CORN) <= +inf
- 0 <= QuantitySuperQuotaSold(SUGAR_BEETS) <= +inf
- 0 <= QuantitySuperQuotaSold(WHEAT) <= +inf
- 0 <= QuantityPurchased(CORN) <= +inf
- 0 <= QuantityPurchased(SUGAR_BEETS) <= +inf
- 0 <= QuantityPurchased(WHEAT) <= +inf
-end
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_symbolic_names_ignore_derived_baseline/scenario_files/farmer.lp.AverageScenario b/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_symbolic_names_ignore_derived_baseline/scenario_files/farmer.lp.AverageScenario
deleted file mode 100644
index ecd36604109..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_symbolic_names_ignore_derived_baseline/scenario_files/farmer.lp.AverageScenario
+++ /dev/null
@@ -1,104 +0,0 @@
-\* Source Pyomo model name=AverageScenario *\
-
-min
-Total_Cost_Objective:
-+230 DevotedAcreage(CORN)
-+260 DevotedAcreage(SUGAR_BEETS)
-+150 DevotedAcreage(WHEAT)
-+210 QuantityPurchased(CORN)
-+100000 QuantityPurchased(SUGAR_BEETS)
-+238 QuantityPurchased(WHEAT)
--150 QuantitySubQuotaSold(CORN)
--36 QuantitySubQuotaSold(SUGAR_BEETS)
--170 QuantitySubQuotaSold(WHEAT)
--10 QuantitySuperQuotaSold(SUGAR_BEETS)
-+0 ONE_VAR_CONSTANT
-
-s.t.
-
-c_u_ConstrainTotalAcreage_:
-+1 DevotedAcreage(CORN)
-+1 DevotedAcreage(SUGAR_BEETS)
-+1 DevotedAcreage(WHEAT)
-<= 500
-
-c_l_EnforceCattleFeedRequirement(CORN)_:
-+3 DevotedAcreage(CORN)
-+1 QuantityPurchased(CORN)
--1 QuantitySubQuotaSold(CORN)
--1 QuantitySuperQuotaSold(CORN)
->= 240
-
-c_l_EnforceCattleFeedRequirement(SUGAR_BEETS)_:
-+20 DevotedAcreage(SUGAR_BEETS)
-+1 QuantityPurchased(SUGAR_BEETS)
--1 QuantitySubQuotaSold(SUGAR_BEETS)
--1 QuantitySuperQuotaSold(SUGAR_BEETS)
->= 0
-
-c_l_EnforceCattleFeedRequirement(WHEAT)_:
-+2.5 DevotedAcreage(WHEAT)
-+1 QuantityPurchased(WHEAT)
--1 QuantitySubQuotaSold(WHEAT)
--1 QuantitySuperQuotaSold(WHEAT)
->= 200
-
-c_u_LimitAmountSold(CORN)_:
--3 DevotedAcreage(CORN)
-+1 QuantitySubQuotaSold(CORN)
-+1 QuantitySuperQuotaSold(CORN)
-<= 0
-
-c_u_LimitAmountSold(SUGAR_BEETS)_:
--20 DevotedAcreage(SUGAR_BEETS)
-+1 QuantitySubQuotaSold(SUGAR_BEETS)
-+1 QuantitySuperQuotaSold(SUGAR_BEETS)
-<= 0
-
-c_u_LimitAmountSold(WHEAT)_:
--2.5 DevotedAcreage(WHEAT)
-+1 QuantitySubQuotaSold(WHEAT)
-+1 QuantitySuperQuotaSold(WHEAT)
-<= 0
-
-r_l_EnforceQuotas(CORN)_:
-+1 QuantitySubQuotaSold(CORN)
->= 0
-
-r_u_EnforceQuotas(CORN)_:
-+1 QuantitySubQuotaSold(CORN)
-<= 100000
-
-r_l_EnforceQuotas(SUGAR_BEETS)_:
-+1 QuantitySubQuotaSold(SUGAR_BEETS)
->= 0
-
-r_u_EnforceQuotas(SUGAR_BEETS)_:
-+1 QuantitySubQuotaSold(SUGAR_BEETS)
-<= 6000
-
-r_l_EnforceQuotas(WHEAT)_:
-+1 QuantitySubQuotaSold(WHEAT)
->= 0
-
-r_u_EnforceQuotas(WHEAT)_:
-+1 QuantitySubQuotaSold(WHEAT)
-<= 100000
-
-c_e_ONE_VAR_CONSTANT:
-ONE_VAR_CONSTANT = 1.0
-
-bounds
- 0 <= DevotedAcreage(CORN) <= 500
- 0 <= DevotedAcreage(SUGAR_BEETS) <= 500
- 0 <= DevotedAcreage(WHEAT) <= 500
- 0 <= QuantitySubQuotaSold(CORN) <= +inf
- 0 <= QuantitySubQuotaSold(SUGAR_BEETS) <= +inf
- 0 <= QuantitySubQuotaSold(WHEAT) <= +inf
- 0 <= QuantitySuperQuotaSold(CORN) <= +inf
- 0 <= QuantitySuperQuotaSold(SUGAR_BEETS) <= +inf
- 0 <= QuantitySuperQuotaSold(WHEAT) <= +inf
- 0 <= QuantityPurchased(CORN) <= +inf
- 0 <= QuantityPurchased(SUGAR_BEETS) <= +inf
- 0 <= QuantityPurchased(WHEAT) <= +inf
-end
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_symbolic_names_ignore_derived_baseline/scenario_files/farmer.lp.BelowAverageScenario b/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_symbolic_names_ignore_derived_baseline/scenario_files/farmer.lp.BelowAverageScenario
deleted file mode 100644
index 8b276c7ba7f..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_symbolic_names_ignore_derived_baseline/scenario_files/farmer.lp.BelowAverageScenario
+++ /dev/null
@@ -1,104 +0,0 @@
-\* Source Pyomo model name=BelowAverageScenario *\
-
-min
-Total_Cost_Objective:
-+230 DevotedAcreage(CORN)
-+260 DevotedAcreage(SUGAR_BEETS)
-+150 DevotedAcreage(WHEAT)
-+210 QuantityPurchased(CORN)
-+100000 QuantityPurchased(SUGAR_BEETS)
-+238 QuantityPurchased(WHEAT)
--150 QuantitySubQuotaSold(CORN)
--36 QuantitySubQuotaSold(SUGAR_BEETS)
--170 QuantitySubQuotaSold(WHEAT)
--10 QuantitySuperQuotaSold(SUGAR_BEETS)
-+0 ONE_VAR_CONSTANT
-
-s.t.
-
-c_u_ConstrainTotalAcreage_:
-+1 DevotedAcreage(CORN)
-+1 DevotedAcreage(SUGAR_BEETS)
-+1 DevotedAcreage(WHEAT)
-<= 500
-
-c_l_EnforceCattleFeedRequirement(CORN)_:
-+2.3999999999999999 DevotedAcreage(CORN)
-+1 QuantityPurchased(CORN)
--1 QuantitySubQuotaSold(CORN)
--1 QuantitySuperQuotaSold(CORN)
->= 240
-
-c_l_EnforceCattleFeedRequirement(SUGAR_BEETS)_:
-+16 DevotedAcreage(SUGAR_BEETS)
-+1 QuantityPurchased(SUGAR_BEETS)
--1 QuantitySubQuotaSold(SUGAR_BEETS)
--1 QuantitySuperQuotaSold(SUGAR_BEETS)
->= 0
-
-c_l_EnforceCattleFeedRequirement(WHEAT)_:
-+2 DevotedAcreage(WHEAT)
-+1 QuantityPurchased(WHEAT)
--1 QuantitySubQuotaSold(WHEAT)
--1 QuantitySuperQuotaSold(WHEAT)
->= 200
-
-c_u_LimitAmountSold(CORN)_:
--2.3999999999999999 DevotedAcreage(CORN)
-+1 QuantitySubQuotaSold(CORN)
-+1 QuantitySuperQuotaSold(CORN)
-<= 0
-
-c_u_LimitAmountSold(SUGAR_BEETS)_:
--16 DevotedAcreage(SUGAR_BEETS)
-+1 QuantitySubQuotaSold(SUGAR_BEETS)
-+1 QuantitySuperQuotaSold(SUGAR_BEETS)
-<= 0
-
-c_u_LimitAmountSold(WHEAT)_:
--2 DevotedAcreage(WHEAT)
-+1 QuantitySubQuotaSold(WHEAT)
-+1 QuantitySuperQuotaSold(WHEAT)
-<= 0
-
-r_l_EnforceQuotas(CORN)_:
-+1 QuantitySubQuotaSold(CORN)
->= 0
-
-r_u_EnforceQuotas(CORN)_:
-+1 QuantitySubQuotaSold(CORN)
-<= 100000
-
-r_l_EnforceQuotas(SUGAR_BEETS)_:
-+1 QuantitySubQuotaSold(SUGAR_BEETS)
->= 0
-
-r_u_EnforceQuotas(SUGAR_BEETS)_:
-+1 QuantitySubQuotaSold(SUGAR_BEETS)
-<= 6000
-
-r_l_EnforceQuotas(WHEAT)_:
-+1 QuantitySubQuotaSold(WHEAT)
->= 0
-
-r_u_EnforceQuotas(WHEAT)_:
-+1 QuantitySubQuotaSold(WHEAT)
-<= 100000
-
-c_e_ONE_VAR_CONSTANT:
-ONE_VAR_CONSTANT = 1.0
-
-bounds
- 0 <= DevotedAcreage(CORN) <= 500
- 0 <= DevotedAcreage(SUGAR_BEETS) <= 500
- 0 <= DevotedAcreage(WHEAT) <= 500
- 0 <= QuantitySubQuotaSold(CORN) <= +inf
- 0 <= QuantitySubQuotaSold(SUGAR_BEETS) <= +inf
- 0 <= QuantitySubQuotaSold(WHEAT) <= +inf
- 0 <= QuantitySuperQuotaSold(CORN) <= +inf
- 0 <= QuantitySuperQuotaSold(SUGAR_BEETS) <= +inf
- 0 <= QuantitySuperQuotaSold(WHEAT) <= +inf
- 0 <= QuantityPurchased(CORN) <= +inf
- 0 <= QuantityPurchased(SUGAR_BEETS) <= +inf
- 0 <= QuantityPurchased(WHEAT) <= +inf
-end
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_symbolic_names_ignore_derived_baseline/scenario_files/farmer.lp.det.AboveAverageScenario b/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_symbolic_names_ignore_derived_baseline/scenario_files/farmer.lp.det.AboveAverageScenario
deleted file mode 100644
index 44652810384..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_symbolic_names_ignore_derived_baseline/scenario_files/farmer.lp.det.AboveAverageScenario
+++ /dev/null
@@ -1,104 +0,0 @@
-\* Source Pyomo model name=ZeroStochasticData *\
-
-min
-Total_Cost_Objective:
-+230 DevotedAcreage(CORN)
-+260 DevotedAcreage(SUGAR_BEETS)
-+150 DevotedAcreage(WHEAT)
-+210 QuantityPurchased(CORN)
-+100000 QuantityPurchased(SUGAR_BEETS)
-+238 QuantityPurchased(WHEAT)
--150 QuantitySubQuotaSold(CORN)
--36 QuantitySubQuotaSold(SUGAR_BEETS)
--170 QuantitySubQuotaSold(WHEAT)
--10 QuantitySuperQuotaSold(SUGAR_BEETS)
-+0 ONE_VAR_CONSTANT
-
-s.t.
-
-c_u_ConstrainTotalAcreage_:
-+1 DevotedAcreage(CORN)
-+1 DevotedAcreage(SUGAR_BEETS)
-+1 DevotedAcreage(WHEAT)
-<= 500
-
-c_l_EnforceCattleFeedRequirement(CORN)_:
--9876543210 DevotedAcreage(CORN)
-+1 QuantityPurchased(CORN)
--1 QuantitySubQuotaSold(CORN)
--1 QuantitySuperQuotaSold(CORN)
->= 240
-
-c_l_EnforceCattleFeedRequirement(SUGAR_BEETS)_:
--9876543210 DevotedAcreage(SUGAR_BEETS)
-+1 QuantityPurchased(SUGAR_BEETS)
--1 QuantitySubQuotaSold(SUGAR_BEETS)
--1 QuantitySuperQuotaSold(SUGAR_BEETS)
->= 0
-
-c_l_EnforceCattleFeedRequirement(WHEAT)_:
--9876543210 DevotedAcreage(WHEAT)
-+1 QuantityPurchased(WHEAT)
--1 QuantitySubQuotaSold(WHEAT)
--1 QuantitySuperQuotaSold(WHEAT)
->= 200
-
-c_u_LimitAmountSold(CORN)_:
--9876543210 DevotedAcreage(CORN)
-+1 QuantitySubQuotaSold(CORN)
-+1 QuantitySuperQuotaSold(CORN)
-<= 0
-
-c_u_LimitAmountSold(SUGAR_BEETS)_:
--9876543210 DevotedAcreage(SUGAR_BEETS)
-+1 QuantitySubQuotaSold(SUGAR_BEETS)
-+1 QuantitySuperQuotaSold(SUGAR_BEETS)
-<= 0
-
-c_u_LimitAmountSold(WHEAT)_:
--9876543210 DevotedAcreage(WHEAT)
-+1 QuantitySubQuotaSold(WHEAT)
-+1 QuantitySuperQuotaSold(WHEAT)
-<= 0
-
-r_l_EnforceQuotas(CORN)_:
-+1 QuantitySubQuotaSold(CORN)
->= 0
-
-r_u_EnforceQuotas(CORN)_:
-+1 QuantitySubQuotaSold(CORN)
-<= 100000
-
-r_l_EnforceQuotas(SUGAR_BEETS)_:
-+1 QuantitySubQuotaSold(SUGAR_BEETS)
->= 0
-
-r_u_EnforceQuotas(SUGAR_BEETS)_:
-+1 QuantitySubQuotaSold(SUGAR_BEETS)
-<= 6000
-
-r_l_EnforceQuotas(WHEAT)_:
-+1 QuantitySubQuotaSold(WHEAT)
->= 0
-
-r_u_EnforceQuotas(WHEAT)_:
-+1 QuantitySubQuotaSold(WHEAT)
-<= 100000
-
-c_e_ONE_VAR_CONSTANT:
-ONE_VAR_CONSTANT = 1.0
-
-bounds
- 0 <= DevotedAcreage(CORN) <= 500
- 0 <= DevotedAcreage(SUGAR_BEETS) <= 500
- 0 <= DevotedAcreage(WHEAT) <= 500
- 0 <= QuantitySubQuotaSold(CORN) <= +inf
- 0 <= QuantitySubQuotaSold(SUGAR_BEETS) <= +inf
- 0 <= QuantitySubQuotaSold(WHEAT) <= +inf
- 0 <= QuantitySuperQuotaSold(CORN) <= +inf
- 0 <= QuantitySuperQuotaSold(SUGAR_BEETS) <= +inf
- 0 <= QuantitySuperQuotaSold(WHEAT) <= +inf
- 0 <= QuantityPurchased(CORN) <= +inf
- 0 <= QuantityPurchased(SUGAR_BEETS) <= +inf
- 0 <= QuantityPurchased(WHEAT) <= +inf
-end
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_symbolic_names_ignore_derived_baseline/scenario_files/farmer.lp.det.AverageScenario b/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_symbolic_names_ignore_derived_baseline/scenario_files/farmer.lp.det.AverageScenario
deleted file mode 100644
index 44652810384..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_symbolic_names_ignore_derived_baseline/scenario_files/farmer.lp.det.AverageScenario
+++ /dev/null
@@ -1,104 +0,0 @@
-\* Source Pyomo model name=ZeroStochasticData *\
-
-min
-Total_Cost_Objective:
-+230 DevotedAcreage(CORN)
-+260 DevotedAcreage(SUGAR_BEETS)
-+150 DevotedAcreage(WHEAT)
-+210 QuantityPurchased(CORN)
-+100000 QuantityPurchased(SUGAR_BEETS)
-+238 QuantityPurchased(WHEAT)
--150 QuantitySubQuotaSold(CORN)
--36 QuantitySubQuotaSold(SUGAR_BEETS)
--170 QuantitySubQuotaSold(WHEAT)
--10 QuantitySuperQuotaSold(SUGAR_BEETS)
-+0 ONE_VAR_CONSTANT
-
-s.t.
-
-c_u_ConstrainTotalAcreage_:
-+1 DevotedAcreage(CORN)
-+1 DevotedAcreage(SUGAR_BEETS)
-+1 DevotedAcreage(WHEAT)
-<= 500
-
-c_l_EnforceCattleFeedRequirement(CORN)_:
--9876543210 DevotedAcreage(CORN)
-+1 QuantityPurchased(CORN)
--1 QuantitySubQuotaSold(CORN)
--1 QuantitySuperQuotaSold(CORN)
->= 240
-
-c_l_EnforceCattleFeedRequirement(SUGAR_BEETS)_:
--9876543210 DevotedAcreage(SUGAR_BEETS)
-+1 QuantityPurchased(SUGAR_BEETS)
--1 QuantitySubQuotaSold(SUGAR_BEETS)
--1 QuantitySuperQuotaSold(SUGAR_BEETS)
->= 0
-
-c_l_EnforceCattleFeedRequirement(WHEAT)_:
--9876543210 DevotedAcreage(WHEAT)
-+1 QuantityPurchased(WHEAT)
--1 QuantitySubQuotaSold(WHEAT)
--1 QuantitySuperQuotaSold(WHEAT)
->= 200
-
-c_u_LimitAmountSold(CORN)_:
--9876543210 DevotedAcreage(CORN)
-+1 QuantitySubQuotaSold(CORN)
-+1 QuantitySuperQuotaSold(CORN)
-<= 0
-
-c_u_LimitAmountSold(SUGAR_BEETS)_:
--9876543210 DevotedAcreage(SUGAR_BEETS)
-+1 QuantitySubQuotaSold(SUGAR_BEETS)
-+1 QuantitySuperQuotaSold(SUGAR_BEETS)
-<= 0
-
-c_u_LimitAmountSold(WHEAT)_:
--9876543210 DevotedAcreage(WHEAT)
-+1 QuantitySubQuotaSold(WHEAT)
-+1 QuantitySuperQuotaSold(WHEAT)
-<= 0
-
-r_l_EnforceQuotas(CORN)_:
-+1 QuantitySubQuotaSold(CORN)
->= 0
-
-r_u_EnforceQuotas(CORN)_:
-+1 QuantitySubQuotaSold(CORN)
-<= 100000
-
-r_l_EnforceQuotas(SUGAR_BEETS)_:
-+1 QuantitySubQuotaSold(SUGAR_BEETS)
->= 0
-
-r_u_EnforceQuotas(SUGAR_BEETS)_:
-+1 QuantitySubQuotaSold(SUGAR_BEETS)
-<= 6000
-
-r_l_EnforceQuotas(WHEAT)_:
-+1 QuantitySubQuotaSold(WHEAT)
->= 0
-
-r_u_EnforceQuotas(WHEAT)_:
-+1 QuantitySubQuotaSold(WHEAT)
-<= 100000
-
-c_e_ONE_VAR_CONSTANT:
-ONE_VAR_CONSTANT = 1.0
-
-bounds
- 0 <= DevotedAcreage(CORN) <= 500
- 0 <= DevotedAcreage(SUGAR_BEETS) <= 500
- 0 <= DevotedAcreage(WHEAT) <= 500
- 0 <= QuantitySubQuotaSold(CORN) <= +inf
- 0 <= QuantitySubQuotaSold(SUGAR_BEETS) <= +inf
- 0 <= QuantitySubQuotaSold(WHEAT) <= +inf
- 0 <= QuantitySuperQuotaSold(CORN) <= +inf
- 0 <= QuantitySuperQuotaSold(SUGAR_BEETS) <= +inf
- 0 <= QuantitySuperQuotaSold(WHEAT) <= +inf
- 0 <= QuantityPurchased(CORN) <= +inf
- 0 <= QuantityPurchased(SUGAR_BEETS) <= +inf
- 0 <= QuantityPurchased(WHEAT) <= +inf
-end
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_symbolic_names_ignore_derived_baseline/scenario_files/farmer.lp.det.BelowAverageScenario b/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_symbolic_names_ignore_derived_baseline/scenario_files/farmer.lp.det.BelowAverageScenario
deleted file mode 100644
index 44652810384..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_symbolic_names_ignore_derived_baseline/scenario_files/farmer.lp.det.BelowAverageScenario
+++ /dev/null
@@ -1,104 +0,0 @@
-\* Source Pyomo model name=ZeroStochasticData *\
-
-min
-Total_Cost_Objective:
-+230 DevotedAcreage(CORN)
-+260 DevotedAcreage(SUGAR_BEETS)
-+150 DevotedAcreage(WHEAT)
-+210 QuantityPurchased(CORN)
-+100000 QuantityPurchased(SUGAR_BEETS)
-+238 QuantityPurchased(WHEAT)
--150 QuantitySubQuotaSold(CORN)
--36 QuantitySubQuotaSold(SUGAR_BEETS)
--170 QuantitySubQuotaSold(WHEAT)
--10 QuantitySuperQuotaSold(SUGAR_BEETS)
-+0 ONE_VAR_CONSTANT
-
-s.t.
-
-c_u_ConstrainTotalAcreage_:
-+1 DevotedAcreage(CORN)
-+1 DevotedAcreage(SUGAR_BEETS)
-+1 DevotedAcreage(WHEAT)
-<= 500
-
-c_l_EnforceCattleFeedRequirement(CORN)_:
--9876543210 DevotedAcreage(CORN)
-+1 QuantityPurchased(CORN)
--1 QuantitySubQuotaSold(CORN)
--1 QuantitySuperQuotaSold(CORN)
->= 240
-
-c_l_EnforceCattleFeedRequirement(SUGAR_BEETS)_:
--9876543210 DevotedAcreage(SUGAR_BEETS)
-+1 QuantityPurchased(SUGAR_BEETS)
--1 QuantitySubQuotaSold(SUGAR_BEETS)
--1 QuantitySuperQuotaSold(SUGAR_BEETS)
->= 0
-
-c_l_EnforceCattleFeedRequirement(WHEAT)_:
--9876543210 DevotedAcreage(WHEAT)
-+1 QuantityPurchased(WHEAT)
--1 QuantitySubQuotaSold(WHEAT)
--1 QuantitySuperQuotaSold(WHEAT)
->= 200
-
-c_u_LimitAmountSold(CORN)_:
--9876543210 DevotedAcreage(CORN)
-+1 QuantitySubQuotaSold(CORN)
-+1 QuantitySuperQuotaSold(CORN)
-<= 0
-
-c_u_LimitAmountSold(SUGAR_BEETS)_:
--9876543210 DevotedAcreage(SUGAR_BEETS)
-+1 QuantitySubQuotaSold(SUGAR_BEETS)
-+1 QuantitySuperQuotaSold(SUGAR_BEETS)
-<= 0
-
-c_u_LimitAmountSold(WHEAT)_:
--9876543210 DevotedAcreage(WHEAT)
-+1 QuantitySubQuotaSold(WHEAT)
-+1 QuantitySuperQuotaSold(WHEAT)
-<= 0
-
-r_l_EnforceQuotas(CORN)_:
-+1 QuantitySubQuotaSold(CORN)
->= 0
-
-r_u_EnforceQuotas(CORN)_:
-+1 QuantitySubQuotaSold(CORN)
-<= 100000
-
-r_l_EnforceQuotas(SUGAR_BEETS)_:
-+1 QuantitySubQuotaSold(SUGAR_BEETS)
->= 0
-
-r_u_EnforceQuotas(SUGAR_BEETS)_:
-+1 QuantitySubQuotaSold(SUGAR_BEETS)
-<= 6000
-
-r_l_EnforceQuotas(WHEAT)_:
-+1 QuantitySubQuotaSold(WHEAT)
->= 0
-
-r_u_EnforceQuotas(WHEAT)_:
-+1 QuantitySubQuotaSold(WHEAT)
-<= 100000
-
-c_e_ONE_VAR_CONSTANT:
-ONE_VAR_CONSTANT = 1.0
-
-bounds
- 0 <= DevotedAcreage(CORN) <= 500
- 0 <= DevotedAcreage(SUGAR_BEETS) <= 500
- 0 <= DevotedAcreage(WHEAT) <= 500
- 0 <= QuantitySubQuotaSold(CORN) <= +inf
- 0 <= QuantitySubQuotaSold(SUGAR_BEETS) <= +inf
- 0 <= QuantitySubQuotaSold(WHEAT) <= +inf
- 0 <= QuantitySuperQuotaSold(CORN) <= +inf
- 0 <= QuantitySuperQuotaSold(SUGAR_BEETS) <= +inf
- 0 <= QuantitySuperQuotaSold(WHEAT) <= +inf
- 0 <= QuantityPurchased(CORN) <= +inf
- 0 <= QuantityPurchased(SUGAR_BEETS) <= +inf
- 0 <= QuantityPurchased(WHEAT) <= +inf
-end
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_symbolic_names_ignore_derived_baseline/scenario_files/farmer.lp.symbols.AboveAverageScenario b/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_symbolic_names_ignore_derived_baseline/scenario_files/farmer.lp.symbols.AboveAverageScenario
deleted file mode 100644
index e973348847d..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_symbolic_names_ignore_derived_baseline/scenario_files/farmer.lp.symbols.AboveAverageScenario
+++ /dev/null
@@ -1,3 +0,0 @@
-DevotedAcreage(CORN) DevotedAcreage:$CORN
-DevotedAcreage(SUGAR_BEETS) DevotedAcreage:$SUGAR_BEETS
-DevotedAcreage(WHEAT) DevotedAcreage:$WHEAT
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_symbolic_names_ignore_derived_baseline/scenario_files/farmer.lp.symbols.AverageScenario b/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_symbolic_names_ignore_derived_baseline/scenario_files/farmer.lp.symbols.AverageScenario
deleted file mode 100644
index e973348847d..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_symbolic_names_ignore_derived_baseline/scenario_files/farmer.lp.symbols.AverageScenario
+++ /dev/null
@@ -1,3 +0,0 @@
-DevotedAcreage(CORN) DevotedAcreage:$CORN
-DevotedAcreage(SUGAR_BEETS) DevotedAcreage:$SUGAR_BEETS
-DevotedAcreage(WHEAT) DevotedAcreage:$WHEAT
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_symbolic_names_ignore_derived_baseline/scenario_files/farmer.lp.symbols.BelowAverageScenario b/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_symbolic_names_ignore_derived_baseline/scenario_files/farmer.lp.symbols.BelowAverageScenario
deleted file mode 100644
index e973348847d..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_symbolic_names_ignore_derived_baseline/scenario_files/farmer.lp.symbols.BelowAverageScenario
+++ /dev/null
@@ -1,3 +0,0 @@
-DevotedAcreage(CORN) DevotedAcreage:$CORN
-DevotedAcreage(SUGAR_BEETS) DevotedAcreage:$SUGAR_BEETS
-DevotedAcreage(WHEAT) DevotedAcreage:$WHEAT
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_symbolic_names_ignore_derived_baseline/scenario_files/farmer.row.AboveAverageScenario b/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_symbolic_names_ignore_derived_baseline/scenario_files/farmer.row.AboveAverageScenario
deleted file mode 100644
index 0bf2f5edad0..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_symbolic_names_ignore_derived_baseline/scenario_files/farmer.row.AboveAverageScenario
+++ /dev/null
@@ -1,15 +0,0 @@
-Total_Cost_Objective
-c_u_ConstrainTotalAcreage_
-c_l_EnforceCattleFeedRequirement(CORN)_
-c_l_EnforceCattleFeedRequirement(SUGAR_BEETS)_
-c_l_EnforceCattleFeedRequirement(WHEAT)_
-c_u_LimitAmountSold(CORN)_
-c_u_LimitAmountSold(SUGAR_BEETS)_
-c_u_LimitAmountSold(WHEAT)_
-r_l_EnforceQuotas(CORN)_
-r_u_EnforceQuotas(CORN)_
-r_l_EnforceQuotas(SUGAR_BEETS)_
-r_u_EnforceQuotas(SUGAR_BEETS)_
-r_l_EnforceQuotas(WHEAT)_
-r_u_EnforceQuotas(WHEAT)_
-c_e_ONE_VAR_CONSTANT
\ No newline at end of file
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_symbolic_names_ignore_derived_baseline/scenario_files/farmer.row.AverageScenario b/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_symbolic_names_ignore_derived_baseline/scenario_files/farmer.row.AverageScenario
deleted file mode 100644
index 0bf2f5edad0..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_symbolic_names_ignore_derived_baseline/scenario_files/farmer.row.AverageScenario
+++ /dev/null
@@ -1,15 +0,0 @@
-Total_Cost_Objective
-c_u_ConstrainTotalAcreage_
-c_l_EnforceCattleFeedRequirement(CORN)_
-c_l_EnforceCattleFeedRequirement(SUGAR_BEETS)_
-c_l_EnforceCattleFeedRequirement(WHEAT)_
-c_u_LimitAmountSold(CORN)_
-c_u_LimitAmountSold(SUGAR_BEETS)_
-c_u_LimitAmountSold(WHEAT)_
-r_l_EnforceQuotas(CORN)_
-r_u_EnforceQuotas(CORN)_
-r_l_EnforceQuotas(SUGAR_BEETS)_
-r_u_EnforceQuotas(SUGAR_BEETS)_
-r_l_EnforceQuotas(WHEAT)_
-r_u_EnforceQuotas(WHEAT)_
-c_e_ONE_VAR_CONSTANT
\ No newline at end of file
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_symbolic_names_ignore_derived_baseline/scenario_files/farmer.row.BelowAverageScenario b/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_symbolic_names_ignore_derived_baseline/scenario_files/farmer.row.BelowAverageScenario
deleted file mode 100644
index 0bf2f5edad0..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_symbolic_names_ignore_derived_baseline/scenario_files/farmer.row.BelowAverageScenario
+++ /dev/null
@@ -1,15 +0,0 @@
-Total_Cost_Objective
-c_u_ConstrainTotalAcreage_
-c_l_EnforceCattleFeedRequirement(CORN)_
-c_l_EnforceCattleFeedRequirement(SUGAR_BEETS)_
-c_l_EnforceCattleFeedRequirement(WHEAT)_
-c_u_LimitAmountSold(CORN)_
-c_u_LimitAmountSold(SUGAR_BEETS)_
-c_u_LimitAmountSold(WHEAT)_
-r_l_EnforceQuotas(CORN)_
-r_u_EnforceQuotas(CORN)_
-r_l_EnforceQuotas(SUGAR_BEETS)_
-r_u_EnforceQuotas(SUGAR_BEETS)_
-r_l_EnforceQuotas(WHEAT)_
-r_u_EnforceQuotas(WHEAT)_
-c_e_ONE_VAR_CONSTANT
\ No newline at end of file
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_symbolic_names_ignore_derived_baseline/scenario_files/farmer.setup.lp.AboveAverageScenario b/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_symbolic_names_ignore_derived_baseline/scenario_files/farmer.setup.lp.AboveAverageScenario
deleted file mode 100644
index 1e60d5830e8..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_symbolic_names_ignore_derived_baseline/scenario_files/farmer.setup.lp.AboveAverageScenario
+++ /dev/null
@@ -1,103 +0,0 @@
-\* Source Pyomo model name=AboveAverageScenario *\
-
-min
-Total_Cost_Objective:
-+230 DevotedAcreage(CORN)
-+260 DevotedAcreage(SUGAR_BEETS)
-+150 DevotedAcreage(WHEAT)
-+210 QuantityPurchased(CORN)
-+100000 QuantityPurchased(SUGAR_BEETS)
-+238 QuantityPurchased(WHEAT)
--150 QuantitySubQuotaSold(CORN)
--36 QuantitySubQuotaSold(SUGAR_BEETS)
--170 QuantitySubQuotaSold(WHEAT)
--10 QuantitySuperQuotaSold(SUGAR_BEETS)
-
-s.t.
-
-c_u_ConstrainTotalAcreage_:
-+1 DevotedAcreage(CORN)
-+1 DevotedAcreage(SUGAR_BEETS)
-+1 DevotedAcreage(WHEAT)
-<= 500
-
-r_l_EnforceQuotas(CORN)_:
-+1 QuantitySubQuotaSold(CORN)
->= 0
-
-r_u_EnforceQuotas(CORN)_:
-+1 QuantitySubQuotaSold(CORN)
-<= 100000
-
-r_l_EnforceQuotas(SUGAR_BEETS)_:
-+1 QuantitySubQuotaSold(SUGAR_BEETS)
->= 0
-
-r_u_EnforceQuotas(SUGAR_BEETS)_:
-+1 QuantitySubQuotaSold(SUGAR_BEETS)
-<= 6000
-
-r_l_EnforceQuotas(WHEAT)_:
-+1 QuantitySubQuotaSold(WHEAT)
->= 0
-
-r_u_EnforceQuotas(WHEAT)_:
-+1 QuantitySubQuotaSold(WHEAT)
-<= 100000
-
-c_l_EnforceCattleFeedRequirement(CORN)_:
-+3.6000000000000001 DevotedAcreage(CORN)
-+1 QuantityPurchased(CORN)
--1 QuantitySubQuotaSold(CORN)
--1 QuantitySuperQuotaSold(CORN)
->= 240
-
-c_l_EnforceCattleFeedRequirement(SUGAR_BEETS)_:
-+24 DevotedAcreage(SUGAR_BEETS)
-+1 QuantityPurchased(SUGAR_BEETS)
--1 QuantitySubQuotaSold(SUGAR_BEETS)
--1 QuantitySuperQuotaSold(SUGAR_BEETS)
->= 0
-
-c_l_EnforceCattleFeedRequirement(WHEAT)_:
-+3 DevotedAcreage(WHEAT)
-+1 QuantityPurchased(WHEAT)
--1 QuantitySubQuotaSold(WHEAT)
--1 QuantitySuperQuotaSold(WHEAT)
->= 200
-
-c_u_LimitAmountSold(CORN)_:
--3.6000000000000001 DevotedAcreage(CORN)
-+1 QuantitySubQuotaSold(CORN)
-+1 QuantitySuperQuotaSold(CORN)
-<= 0
-
-c_u_LimitAmountSold(SUGAR_BEETS)_:
--24 DevotedAcreage(SUGAR_BEETS)
-+1 QuantitySubQuotaSold(SUGAR_BEETS)
-+1 QuantitySuperQuotaSold(SUGAR_BEETS)
-<= 0
-
-c_u_LimitAmountSold(WHEAT)_:
--3 DevotedAcreage(WHEAT)
-+1 QuantitySubQuotaSold(WHEAT)
-+1 QuantitySuperQuotaSold(WHEAT)
-<= 0
-
-c_e_ONE_VAR_CONSTANT:
-ONE_VAR_CONSTANT = 1.0
-
-bounds
- 0 <= DevotedAcreage(CORN) <= 500
- 0 <= DevotedAcreage(SUGAR_BEETS) <= 500
- 0 <= DevotedAcreage(WHEAT) <= 500
- 0 <= QuantitySubQuotaSold(CORN) <= +inf
- 0 <= QuantitySubQuotaSold(SUGAR_BEETS) <= +inf
- 0 <= QuantitySubQuotaSold(WHEAT) <= +inf
- 0 <= QuantitySuperQuotaSold(CORN) <= +inf
- 0 <= QuantitySuperQuotaSold(SUGAR_BEETS) <= +inf
- 0 <= QuantitySuperQuotaSold(WHEAT) <= +inf
- 0 <= QuantityPurchased(CORN) <= +inf
- 0 <= QuantityPurchased(SUGAR_BEETS) <= +inf
- 0 <= QuantityPurchased(WHEAT) <= +inf
-end
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_symbolic_names_ignore_derived_baseline/scenario_files/farmer.setup.lp.AverageScenario b/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_symbolic_names_ignore_derived_baseline/scenario_files/farmer.setup.lp.AverageScenario
deleted file mode 100644
index 0d4751fb6ff..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_symbolic_names_ignore_derived_baseline/scenario_files/farmer.setup.lp.AverageScenario
+++ /dev/null
@@ -1,103 +0,0 @@
-\* Source Pyomo model name=AverageScenario *\
-
-min
-Total_Cost_Objective:
-+230 DevotedAcreage(CORN)
-+260 DevotedAcreage(SUGAR_BEETS)
-+150 DevotedAcreage(WHEAT)
-+210 QuantityPurchased(CORN)
-+100000 QuantityPurchased(SUGAR_BEETS)
-+238 QuantityPurchased(WHEAT)
--150 QuantitySubQuotaSold(CORN)
--36 QuantitySubQuotaSold(SUGAR_BEETS)
--170 QuantitySubQuotaSold(WHEAT)
--10 QuantitySuperQuotaSold(SUGAR_BEETS)
-
-s.t.
-
-c_u_ConstrainTotalAcreage_:
-+1 DevotedAcreage(CORN)
-+1 DevotedAcreage(SUGAR_BEETS)
-+1 DevotedAcreage(WHEAT)
-<= 500
-
-r_l_EnforceQuotas(CORN)_:
-+1 QuantitySubQuotaSold(CORN)
->= 0
-
-r_u_EnforceQuotas(CORN)_:
-+1 QuantitySubQuotaSold(CORN)
-<= 100000
-
-r_l_EnforceQuotas(SUGAR_BEETS)_:
-+1 QuantitySubQuotaSold(SUGAR_BEETS)
->= 0
-
-r_u_EnforceQuotas(SUGAR_BEETS)_:
-+1 QuantitySubQuotaSold(SUGAR_BEETS)
-<= 6000
-
-r_l_EnforceQuotas(WHEAT)_:
-+1 QuantitySubQuotaSold(WHEAT)
->= 0
-
-r_u_EnforceQuotas(WHEAT)_:
-+1 QuantitySubQuotaSold(WHEAT)
-<= 100000
-
-c_l_EnforceCattleFeedRequirement(CORN)_:
-+3 DevotedAcreage(CORN)
-+1 QuantityPurchased(CORN)
--1 QuantitySubQuotaSold(CORN)
--1 QuantitySuperQuotaSold(CORN)
->= 240
-
-c_l_EnforceCattleFeedRequirement(SUGAR_BEETS)_:
-+20 DevotedAcreage(SUGAR_BEETS)
-+1 QuantityPurchased(SUGAR_BEETS)
--1 QuantitySubQuotaSold(SUGAR_BEETS)
--1 QuantitySuperQuotaSold(SUGAR_BEETS)
->= 0
-
-c_l_EnforceCattleFeedRequirement(WHEAT)_:
-+2.5 DevotedAcreage(WHEAT)
-+1 QuantityPurchased(WHEAT)
--1 QuantitySubQuotaSold(WHEAT)
--1 QuantitySuperQuotaSold(WHEAT)
->= 200
-
-c_u_LimitAmountSold(CORN)_:
--3 DevotedAcreage(CORN)
-+1 QuantitySubQuotaSold(CORN)
-+1 QuantitySuperQuotaSold(CORN)
-<= 0
-
-c_u_LimitAmountSold(SUGAR_BEETS)_:
--20 DevotedAcreage(SUGAR_BEETS)
-+1 QuantitySubQuotaSold(SUGAR_BEETS)
-+1 QuantitySuperQuotaSold(SUGAR_BEETS)
-<= 0
-
-c_u_LimitAmountSold(WHEAT)_:
--2.5 DevotedAcreage(WHEAT)
-+1 QuantitySubQuotaSold(WHEAT)
-+1 QuantitySuperQuotaSold(WHEAT)
-<= 0
-
-c_e_ONE_VAR_CONSTANT:
-ONE_VAR_CONSTANT = 1.0
-
-bounds
- 0 <= DevotedAcreage(CORN) <= 500
- 0 <= DevotedAcreage(SUGAR_BEETS) <= 500
- 0 <= DevotedAcreage(WHEAT) <= 500
- 0 <= QuantitySubQuotaSold(CORN) <= +inf
- 0 <= QuantitySubQuotaSold(SUGAR_BEETS) <= +inf
- 0 <= QuantitySubQuotaSold(WHEAT) <= +inf
- 0 <= QuantitySuperQuotaSold(CORN) <= +inf
- 0 <= QuantitySuperQuotaSold(SUGAR_BEETS) <= +inf
- 0 <= QuantitySuperQuotaSold(WHEAT) <= +inf
- 0 <= QuantityPurchased(CORN) <= +inf
- 0 <= QuantityPurchased(SUGAR_BEETS) <= +inf
- 0 <= QuantityPurchased(WHEAT) <= +inf
-end
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_symbolic_names_ignore_derived_baseline/scenario_files/farmer.setup.lp.BelowAverageScenario b/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_symbolic_names_ignore_derived_baseline/scenario_files/farmer.setup.lp.BelowAverageScenario
deleted file mode 100644
index c85f5462747..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_symbolic_names_ignore_derived_baseline/scenario_files/farmer.setup.lp.BelowAverageScenario
+++ /dev/null
@@ -1,103 +0,0 @@
-\* Source Pyomo model name=BelowAverageScenario *\
-
-min
-Total_Cost_Objective:
-+230 DevotedAcreage(CORN)
-+260 DevotedAcreage(SUGAR_BEETS)
-+150 DevotedAcreage(WHEAT)
-+210 QuantityPurchased(CORN)
-+100000 QuantityPurchased(SUGAR_BEETS)
-+238 QuantityPurchased(WHEAT)
--150 QuantitySubQuotaSold(CORN)
--36 QuantitySubQuotaSold(SUGAR_BEETS)
--170 QuantitySubQuotaSold(WHEAT)
--10 QuantitySuperQuotaSold(SUGAR_BEETS)
-
-s.t.
-
-c_u_ConstrainTotalAcreage_:
-+1 DevotedAcreage(CORN)
-+1 DevotedAcreage(SUGAR_BEETS)
-+1 DevotedAcreage(WHEAT)
-<= 500
-
-r_l_EnforceQuotas(CORN)_:
-+1 QuantitySubQuotaSold(CORN)
->= 0
-
-r_u_EnforceQuotas(CORN)_:
-+1 QuantitySubQuotaSold(CORN)
-<= 100000
-
-r_l_EnforceQuotas(SUGAR_BEETS)_:
-+1 QuantitySubQuotaSold(SUGAR_BEETS)
->= 0
-
-r_u_EnforceQuotas(SUGAR_BEETS)_:
-+1 QuantitySubQuotaSold(SUGAR_BEETS)
-<= 6000
-
-r_l_EnforceQuotas(WHEAT)_:
-+1 QuantitySubQuotaSold(WHEAT)
->= 0
-
-r_u_EnforceQuotas(WHEAT)_:
-+1 QuantitySubQuotaSold(WHEAT)
-<= 100000
-
-c_l_EnforceCattleFeedRequirement(CORN)_:
-+2.3999999999999999 DevotedAcreage(CORN)
-+1 QuantityPurchased(CORN)
--1 QuantitySubQuotaSold(CORN)
--1 QuantitySuperQuotaSold(CORN)
->= 240
-
-c_l_EnforceCattleFeedRequirement(SUGAR_BEETS)_:
-+16 DevotedAcreage(SUGAR_BEETS)
-+1 QuantityPurchased(SUGAR_BEETS)
--1 QuantitySubQuotaSold(SUGAR_BEETS)
--1 QuantitySuperQuotaSold(SUGAR_BEETS)
->= 0
-
-c_l_EnforceCattleFeedRequirement(WHEAT)_:
-+2 DevotedAcreage(WHEAT)
-+1 QuantityPurchased(WHEAT)
--1 QuantitySubQuotaSold(WHEAT)
--1 QuantitySuperQuotaSold(WHEAT)
->= 200
-
-c_u_LimitAmountSold(CORN)_:
--2.3999999999999999 DevotedAcreage(CORN)
-+1 QuantitySubQuotaSold(CORN)
-+1 QuantitySuperQuotaSold(CORN)
-<= 0
-
-c_u_LimitAmountSold(SUGAR_BEETS)_:
--16 DevotedAcreage(SUGAR_BEETS)
-+1 QuantitySubQuotaSold(SUGAR_BEETS)
-+1 QuantitySuperQuotaSold(SUGAR_BEETS)
-<= 0
-
-c_u_LimitAmountSold(WHEAT)_:
--2 DevotedAcreage(WHEAT)
-+1 QuantitySubQuotaSold(WHEAT)
-+1 QuantitySuperQuotaSold(WHEAT)
-<= 0
-
-c_e_ONE_VAR_CONSTANT:
-ONE_VAR_CONSTANT = 1.0
-
-bounds
- 0 <= DevotedAcreage(CORN) <= 500
- 0 <= DevotedAcreage(SUGAR_BEETS) <= 500
- 0 <= DevotedAcreage(WHEAT) <= 500
- 0 <= QuantitySubQuotaSold(CORN) <= +inf
- 0 <= QuantitySubQuotaSold(SUGAR_BEETS) <= +inf
- 0 <= QuantitySubQuotaSold(WHEAT) <= +inf
- 0 <= QuantitySuperQuotaSold(CORN) <= +inf
- 0 <= QuantitySuperQuotaSold(SUGAR_BEETS) <= +inf
- 0 <= QuantitySuperQuotaSold(WHEAT) <= +inf
- 0 <= QuantityPurchased(CORN) <= +inf
- 0 <= QuantityPurchased(SUGAR_BEETS) <= +inf
- 0 <= QuantityPurchased(WHEAT) <= +inf
-end
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_symbolic_names_ignore_derived_baseline/scenario_files/farmer.sto.AboveAverageScenario b/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_symbolic_names_ignore_derived_baseline/scenario_files/farmer.sto.AboveAverageScenario
deleted file mode 100644
index 11764e8d6fd..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_symbolic_names_ignore_derived_baseline/scenario_files/farmer.sto.AboveAverageScenario
+++ /dev/null
@@ -1,7 +0,0 @@
- BL BLOCK1 PERIOD2 0.33333332999999998
- DevotedAcreage(CORN) c_l_EnforceCattleFeedRequirement(CORN)_ 3.6000000000000001
- DevotedAcreage(SUGAR_BEETS) c_l_EnforceCattleFeedRequirement(SUGAR_BEETS)_ 24
- DevotedAcreage(WHEAT) c_l_EnforceCattleFeedRequirement(WHEAT)_ 3
- DevotedAcreage(CORN) c_u_LimitAmountSold(CORN)_ -3.6000000000000001
- DevotedAcreage(SUGAR_BEETS) c_u_LimitAmountSold(SUGAR_BEETS)_ -24
- DevotedAcreage(WHEAT) c_u_LimitAmountSold(WHEAT)_ -3
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_symbolic_names_ignore_derived_baseline/scenario_files/farmer.sto.AverageScenario b/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_symbolic_names_ignore_derived_baseline/scenario_files/farmer.sto.AverageScenario
deleted file mode 100644
index 9a1dbbdfb5c..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_symbolic_names_ignore_derived_baseline/scenario_files/farmer.sto.AverageScenario
+++ /dev/null
@@ -1,7 +0,0 @@
- BL BLOCK1 PERIOD2 0.33333333999999998
- DevotedAcreage(CORN) c_l_EnforceCattleFeedRequirement(CORN)_ 3
- DevotedAcreage(SUGAR_BEETS) c_l_EnforceCattleFeedRequirement(SUGAR_BEETS)_ 20
- DevotedAcreage(WHEAT) c_l_EnforceCattleFeedRequirement(WHEAT)_ 2.5
- DevotedAcreage(CORN) c_u_LimitAmountSold(CORN)_ -3
- DevotedAcreage(SUGAR_BEETS) c_u_LimitAmountSold(SUGAR_BEETS)_ -20
- DevotedAcreage(WHEAT) c_u_LimitAmountSold(WHEAT)_ -2.5
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_symbolic_names_ignore_derived_baseline/scenario_files/farmer.sto.BelowAverageScenario b/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_symbolic_names_ignore_derived_baseline/scenario_files/farmer.sto.BelowAverageScenario
deleted file mode 100644
index 002b173fa98..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_symbolic_names_ignore_derived_baseline/scenario_files/farmer.sto.BelowAverageScenario
+++ /dev/null
@@ -1,7 +0,0 @@
- BL BLOCK1 PERIOD2 0.33333332999999998
- DevotedAcreage(CORN) c_l_EnforceCattleFeedRequirement(CORN)_ 2.3999999999999999
- DevotedAcreage(SUGAR_BEETS) c_l_EnforceCattleFeedRequirement(SUGAR_BEETS)_ 16
- DevotedAcreage(WHEAT) c_l_EnforceCattleFeedRequirement(WHEAT)_ 2
- DevotedAcreage(CORN) c_u_LimitAmountSold(CORN)_ -2.3999999999999999
- DevotedAcreage(SUGAR_BEETS) c_u_LimitAmountSold(SUGAR_BEETS)_ -16
- DevotedAcreage(WHEAT) c_u_LimitAmountSold(WHEAT)_ -2
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_symbolic_names_ignore_derived_baseline/scenario_files/farmer.sto.struct.AboveAverageScenario b/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_symbolic_names_ignore_derived_baseline/scenario_files/farmer.sto.struct.AboveAverageScenario
deleted file mode 100644
index 65fbc4b8d79..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_symbolic_names_ignore_derived_baseline/scenario_files/farmer.sto.struct.AboveAverageScenario
+++ /dev/null
@@ -1,6 +0,0 @@
-DevotedAcreage(CORN) c_l_EnforceCattleFeedRequirement(CORN)_
-DevotedAcreage(SUGAR_BEETS) c_l_EnforceCattleFeedRequirement(SUGAR_BEETS)_
-DevotedAcreage(WHEAT) c_l_EnforceCattleFeedRequirement(WHEAT)_
-DevotedAcreage(CORN) c_u_LimitAmountSold(CORN)_
-DevotedAcreage(SUGAR_BEETS) c_u_LimitAmountSold(SUGAR_BEETS)_
-DevotedAcreage(WHEAT) c_u_LimitAmountSold(WHEAT)_
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_symbolic_names_ignore_derived_baseline/scenario_files/farmer.sto.struct.AverageScenario b/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_symbolic_names_ignore_derived_baseline/scenario_files/farmer.sto.struct.AverageScenario
deleted file mode 100644
index 65fbc4b8d79..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_symbolic_names_ignore_derived_baseline/scenario_files/farmer.sto.struct.AverageScenario
+++ /dev/null
@@ -1,6 +0,0 @@
-DevotedAcreage(CORN) c_l_EnforceCattleFeedRequirement(CORN)_
-DevotedAcreage(SUGAR_BEETS) c_l_EnforceCattleFeedRequirement(SUGAR_BEETS)_
-DevotedAcreage(WHEAT) c_l_EnforceCattleFeedRequirement(WHEAT)_
-DevotedAcreage(CORN) c_u_LimitAmountSold(CORN)_
-DevotedAcreage(SUGAR_BEETS) c_u_LimitAmountSold(SUGAR_BEETS)_
-DevotedAcreage(WHEAT) c_u_LimitAmountSold(WHEAT)_
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_symbolic_names_ignore_derived_baseline/scenario_files/farmer.sto.struct.BelowAverageScenario b/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_symbolic_names_ignore_derived_baseline/scenario_files/farmer.sto.struct.BelowAverageScenario
deleted file mode 100644
index 65fbc4b8d79..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_symbolic_names_ignore_derived_baseline/scenario_files/farmer.sto.struct.BelowAverageScenario
+++ /dev/null
@@ -1,6 +0,0 @@
-DevotedAcreage(CORN) c_l_EnforceCattleFeedRequirement(CORN)_
-DevotedAcreage(SUGAR_BEETS) c_l_EnforceCattleFeedRequirement(SUGAR_BEETS)_
-DevotedAcreage(WHEAT) c_l_EnforceCattleFeedRequirement(WHEAT)_
-DevotedAcreage(CORN) c_u_LimitAmountSold(CORN)_
-DevotedAcreage(SUGAR_BEETS) c_u_LimitAmountSold(SUGAR_BEETS)_
-DevotedAcreage(WHEAT) c_u_LimitAmountSold(WHEAT)_
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_symbolic_names_ignore_derived_baseline/scenario_files/farmer.tim.AboveAverageScenario b/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_symbolic_names_ignore_derived_baseline/scenario_files/farmer.tim.AboveAverageScenario
deleted file mode 100644
index 0886a749af5..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_symbolic_names_ignore_derived_baseline/scenario_files/farmer.tim.AboveAverageScenario
+++ /dev/null
@@ -1,35 +0,0 @@
-TIME farmer
-PERIODS EXPLICIT
- TIME1
- TIME2
-ROWS
- Total_Cost_Objective TIME1
- c_u_ConstrainTotalAcreage_ TIME1
- c_l_EnforceCattleFeedRequirement(CORN)_ TIME2
- c_l_EnforceCattleFeedRequirement(SUGAR_BEETS)_ TIME2
- c_l_EnforceCattleFeedRequirement(WHEAT)_ TIME2
- c_u_LimitAmountSold(CORN)_ TIME2
- c_u_LimitAmountSold(SUGAR_BEETS)_ TIME2
- c_u_LimitAmountSold(WHEAT)_ TIME2
- r_l_EnforceQuotas(CORN)_ TIME2
- r_u_EnforceQuotas(CORN)_ TIME2
- r_l_EnforceQuotas(SUGAR_BEETS)_ TIME2
- r_u_EnforceQuotas(SUGAR_BEETS)_ TIME2
- r_l_EnforceQuotas(WHEAT)_ TIME2
- r_u_EnforceQuotas(WHEAT)_ TIME2
- c_e_ONE_VAR_CONSTANT TIME2
-COLS
- DevotedAcreage(CORN) TIME1
- DevotedAcreage(SUGAR_BEETS) TIME1
- DevotedAcreage(WHEAT) TIME1
- QuantityPurchased(CORN) TIME2
- QuantityPurchased(SUGAR_BEETS) TIME2
- QuantityPurchased(WHEAT) TIME2
- QuantitySubQuotaSold(CORN) TIME2
- QuantitySubQuotaSold(SUGAR_BEETS) TIME2
- QuantitySubQuotaSold(WHEAT) TIME2
- QuantitySuperQuotaSold(CORN) TIME2
- QuantitySuperQuotaSold(SUGAR_BEETS) TIME2
- QuantitySuperQuotaSold(WHEAT) TIME2
- ONE_VAR_CONSTANT TIME2
-ENDATA
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_symbolic_names_ignore_derived_baseline/scenario_files/farmer.tim.AverageScenario b/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_symbolic_names_ignore_derived_baseline/scenario_files/farmer.tim.AverageScenario
deleted file mode 100644
index 0886a749af5..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_symbolic_names_ignore_derived_baseline/scenario_files/farmer.tim.AverageScenario
+++ /dev/null
@@ -1,35 +0,0 @@
-TIME farmer
-PERIODS EXPLICIT
- TIME1
- TIME2
-ROWS
- Total_Cost_Objective TIME1
- c_u_ConstrainTotalAcreage_ TIME1
- c_l_EnforceCattleFeedRequirement(CORN)_ TIME2
- c_l_EnforceCattleFeedRequirement(SUGAR_BEETS)_ TIME2
- c_l_EnforceCattleFeedRequirement(WHEAT)_ TIME2
- c_u_LimitAmountSold(CORN)_ TIME2
- c_u_LimitAmountSold(SUGAR_BEETS)_ TIME2
- c_u_LimitAmountSold(WHEAT)_ TIME2
- r_l_EnforceQuotas(CORN)_ TIME2
- r_u_EnforceQuotas(CORN)_ TIME2
- r_l_EnforceQuotas(SUGAR_BEETS)_ TIME2
- r_u_EnforceQuotas(SUGAR_BEETS)_ TIME2
- r_l_EnforceQuotas(WHEAT)_ TIME2
- r_u_EnforceQuotas(WHEAT)_ TIME2
- c_e_ONE_VAR_CONSTANT TIME2
-COLS
- DevotedAcreage(CORN) TIME1
- DevotedAcreage(SUGAR_BEETS) TIME1
- DevotedAcreage(WHEAT) TIME1
- QuantityPurchased(CORN) TIME2
- QuantityPurchased(SUGAR_BEETS) TIME2
- QuantityPurchased(WHEAT) TIME2
- QuantitySubQuotaSold(CORN) TIME2
- QuantitySubQuotaSold(SUGAR_BEETS) TIME2
- QuantitySubQuotaSold(WHEAT) TIME2
- QuantitySuperQuotaSold(CORN) TIME2
- QuantitySuperQuotaSold(SUGAR_BEETS) TIME2
- QuantitySuperQuotaSold(WHEAT) TIME2
- ONE_VAR_CONSTANT TIME2
-ENDATA
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_symbolic_names_ignore_derived_baseline/scenario_files/farmer.tim.BelowAverageScenario b/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_symbolic_names_ignore_derived_baseline/scenario_files/farmer.tim.BelowAverageScenario
deleted file mode 100644
index 0886a749af5..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_LP_symbolic_names_ignore_derived_baseline/scenario_files/farmer.tim.BelowAverageScenario
+++ /dev/null
@@ -1,35 +0,0 @@
-TIME farmer
-PERIODS EXPLICIT
- TIME1
- TIME2
-ROWS
- Total_Cost_Objective TIME1
- c_u_ConstrainTotalAcreage_ TIME1
- c_l_EnforceCattleFeedRequirement(CORN)_ TIME2
- c_l_EnforceCattleFeedRequirement(SUGAR_BEETS)_ TIME2
- c_l_EnforceCattleFeedRequirement(WHEAT)_ TIME2
- c_u_LimitAmountSold(CORN)_ TIME2
- c_u_LimitAmountSold(SUGAR_BEETS)_ TIME2
- c_u_LimitAmountSold(WHEAT)_ TIME2
- r_l_EnforceQuotas(CORN)_ TIME2
- r_u_EnforceQuotas(CORN)_ TIME2
- r_l_EnforceQuotas(SUGAR_BEETS)_ TIME2
- r_u_EnforceQuotas(SUGAR_BEETS)_ TIME2
- r_l_EnforceQuotas(WHEAT)_ TIME2
- r_u_EnforceQuotas(WHEAT)_ TIME2
- c_e_ONE_VAR_CONSTANT TIME2
-COLS
- DevotedAcreage(CORN) TIME1
- DevotedAcreage(SUGAR_BEETS) TIME1
- DevotedAcreage(WHEAT) TIME1
- QuantityPurchased(CORN) TIME2
- QuantityPurchased(SUGAR_BEETS) TIME2
- QuantityPurchased(WHEAT) TIME2
- QuantitySubQuotaSold(CORN) TIME2
- QuantitySubQuotaSold(SUGAR_BEETS) TIME2
- QuantitySubQuotaSold(WHEAT) TIME2
- QuantitySuperQuotaSold(CORN) TIME2
- QuantitySuperQuotaSold(SUGAR_BEETS) TIME2
- QuantitySuperQuotaSold(WHEAT) TIME2
- ONE_VAR_CONSTANT TIME2
-ENDATA
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_baseline/farmer.col b/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_baseline/farmer.col
deleted file mode 100644
index d8d77c489b1..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_baseline/farmer.col
+++ /dev/null
@@ -1,13 +0,0 @@
-x1
-x2
-x3
-x10
-x11
-x12
-x4
-x5
-x6
-x7
-x8
-x9
-ONE_VAR_CONSTANT
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_baseline/farmer.cor b/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_baseline/farmer.cor
deleted file mode 100644
index e3139b5f5cf..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_baseline/farmer.cor
+++ /dev/null
@@ -1,97 +0,0 @@
-* Source: Pyomo MPS Writer
-* Format: Free MPS
-*
-NAME BelowAverageScenario
-OBJSENSE
- MIN
-ROWS
- N x13
- L c_u_x14_
- G c_l_x15_
- G c_l_x16_
- G c_l_x17_
- L c_u_x18_
- L c_u_x19_
- L c_u_x20_
- G r_l_x21_
- L r_u_x21_
- G r_l_x22_
- L r_u_x22_
- G r_l_x23_
- L r_u_x23_
- E c_e_ONE_VAR_CONSTANT
-COLUMNS
- x1 x13 230
- x1 c_u_x14_ 1
- x1 c_l_x15_ 2.3999999999999999
- x1 c_u_x18_ -2.3999999999999999
- x2 x13 260
- x2 c_u_x14_ 1
- x2 c_l_x16_ 16
- x2 c_u_x19_ -16
- x3 x13 150
- x3 c_u_x14_ 1
- x3 c_l_x17_ 2
- x3 c_u_x20_ -2
- x10 x13 210
- x10 c_l_x15_ 1
- x11 x13 100000
- x11 c_l_x16_ 1
- x12 x13 238
- x12 c_l_x17_ 1
- x4 x13 -150
- x4 c_l_x15_ -1
- x4 c_u_x18_ 1
- x4 r_l_x21_ 1
- x4 r_u_x21_ 1
- x5 x13 -36
- x5 c_l_x16_ -1
- x5 c_u_x19_ 1
- x5 r_l_x22_ 1
- x5 r_u_x22_ 1
- x6 x13 -170
- x6 c_l_x17_ -1
- x6 c_u_x20_ 1
- x6 r_l_x23_ 1
- x6 r_u_x23_ 1
- x7 c_l_x15_ -1
- x7 c_u_x18_ 1
- x8 x13 -10
- x8 c_l_x16_ -1
- x8 c_u_x19_ 1
- x9 c_l_x17_ -1
- x9 c_u_x20_ 1
- ONE_VAR_CONSTANT x13 0
- ONE_VAR_CONSTANT c_e_ONE_VAR_CONSTANT 1
-RHS
- RHS c_u_x14_ 500
- RHS c_l_x15_ 240
- RHS c_l_x16_ 0
- RHS c_l_x17_ 200
- RHS c_u_x18_ 0
- RHS c_u_x19_ 0
- RHS c_u_x20_ 0
- RHS r_l_x21_ 0
- RHS r_u_x21_ 100000
- RHS r_l_x22_ 0
- RHS r_u_x22_ 6000
- RHS r_l_x23_ 0
- RHS r_u_x23_ 100000
- RHS c_e_ONE_VAR_CONSTANT 1
-BOUNDS
- LO BOUND x1 0
- UP BOUND x1 500
- LO BOUND x2 0
- UP BOUND x2 500
- LO BOUND x3 0
- UP BOUND x3 500
- LO BOUND x10 0
- LO BOUND x11 0
- LO BOUND x12 0
- LO BOUND x4 0
- LO BOUND x5 0
- LO BOUND x6 0
- LO BOUND x7 0
- LO BOUND x8 0
- LO BOUND x9 0
-ENDATA
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_baseline/farmer.cor.symbols b/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_baseline/farmer.cor.symbols
deleted file mode 100644
index 6950b396127..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_baseline/farmer.cor.symbols
+++ /dev/null
@@ -1,3 +0,0 @@
-x1 DevotedAcreage:$CORN
-x2 DevotedAcreage:$SUGAR_BEETS
-x3 DevotedAcreage:$WHEAT
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_baseline/farmer.mps.det b/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_baseline/farmer.mps.det
deleted file mode 100644
index 4b6b05a5f30..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_baseline/farmer.mps.det
+++ /dev/null
@@ -1,97 +0,0 @@
-* Source: Pyomo MPS Writer
-* Format: Free MPS
-*
-NAME ZeroStochasticData
-OBJSENSE
- MIN
-ROWS
- N x13
- L c_u_x14_
- G c_l_x15_
- G c_l_x16_
- G c_l_x17_
- L c_u_x18_
- L c_u_x19_
- L c_u_x20_
- G r_l_x21_
- L r_u_x21_
- G r_l_x22_
- L r_u_x22_
- G r_l_x23_
- L r_u_x23_
- E c_e_ONE_VAR_CONSTANT
-COLUMNS
- x1 x13 230
- x1 c_u_x14_ 1
- x1 c_l_x15_ -9876543210
- x1 c_u_x18_ -9876543210
- x2 x13 260
- x2 c_u_x14_ 1
- x2 c_l_x16_ -9876543210
- x2 c_u_x19_ -9876543210
- x3 x13 150
- x3 c_u_x14_ 1
- x3 c_l_x17_ -9876543210
- x3 c_u_x20_ -9876543210
- x10 x13 210
- x10 c_l_x15_ 1
- x11 x13 100000
- x11 c_l_x16_ 1
- x12 x13 238
- x12 c_l_x17_ 1
- x4 x13 -150
- x4 c_l_x15_ -1
- x4 c_u_x18_ 1
- x4 r_l_x21_ 1
- x4 r_u_x21_ 1
- x5 x13 -36
- x5 c_l_x16_ -1
- x5 c_u_x19_ 1
- x5 r_l_x22_ 1
- x5 r_u_x22_ 1
- x6 x13 -170
- x6 c_l_x17_ -1
- x6 c_u_x20_ 1
- x6 r_l_x23_ 1
- x6 r_u_x23_ 1
- x7 c_l_x15_ -1
- x7 c_u_x18_ 1
- x8 x13 -10
- x8 c_l_x16_ -1
- x8 c_u_x19_ 1
- x9 c_l_x17_ -1
- x9 c_u_x20_ 1
- ONE_VAR_CONSTANT x13 0
- ONE_VAR_CONSTANT c_e_ONE_VAR_CONSTANT 1
-RHS
- RHS c_u_x14_ 500
- RHS c_l_x15_ 240
- RHS c_l_x16_ 0
- RHS c_l_x17_ 200
- RHS c_u_x18_ 0
- RHS c_u_x19_ 0
- RHS c_u_x20_ 0
- RHS r_l_x21_ 0
- RHS r_u_x21_ 100000
- RHS r_l_x22_ 0
- RHS r_u_x22_ 6000
- RHS r_l_x23_ 0
- RHS r_u_x23_ 100000
- RHS c_e_ONE_VAR_CONSTANT 1
-BOUNDS
- LO BOUND x1 0
- UP BOUND x1 500
- LO BOUND x2 0
- UP BOUND x2 500
- LO BOUND x3 0
- UP BOUND x3 500
- LO BOUND x10 0
- LO BOUND x11 0
- LO BOUND x12 0
- LO BOUND x4 0
- LO BOUND x5 0
- LO BOUND x6 0
- LO BOUND x7 0
- LO BOUND x8 0
- LO BOUND x9 0
-ENDATA
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_baseline/farmer.row b/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_baseline/farmer.row
deleted file mode 100644
index b0d1db6bcfb..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_baseline/farmer.row
+++ /dev/null
@@ -1,15 +0,0 @@
-x13
-c_u_x14_
-c_l_x15_
-c_l_x16_
-c_l_x17_
-c_u_x18_
-c_u_x19_
-c_u_x20_
-r_l_x21_
-r_u_x21_
-r_l_x22_
-r_u_x22_
-r_l_x23_
-r_u_x23_
-c_e_ONE_VAR_CONSTANT
\ No newline at end of file
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_baseline/farmer.sto b/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_baseline/farmer.sto
deleted file mode 100644
index 585ffe37033..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_baseline/farmer.sto
+++ /dev/null
@@ -1,24 +0,0 @@
-STOCH farmer
-BLOCKS DISCRETE REPLACE
- BL BLOCK1 PERIOD2 0.33333332999999998
- x1 c_l_x15_ 2.3999999999999999
- x2 c_l_x16_ 16
- x3 c_l_x17_ 2
- x1 c_u_x18_ -2.3999999999999999
- x2 c_u_x19_ -16
- x3 c_u_x20_ -2
- BL BLOCK1 PERIOD2 0.33333333999999998
- x1 c_l_x15_ 3
- x2 c_l_x16_ 20
- x3 c_l_x17_ 2.5
- x1 c_u_x18_ -3
- x2 c_u_x19_ -20
- x3 c_u_x20_ -2.5
- BL BLOCK1 PERIOD2 0.33333332999999998
- x1 c_l_x15_ 3.6000000000000001
- x2 c_l_x16_ 24
- x3 c_l_x17_ 3
- x1 c_u_x18_ -3.6000000000000001
- x2 c_u_x19_ -24
- x3 c_u_x20_ -3
-ENDATA
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_baseline/farmer.sto.struct b/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_baseline/farmer.sto.struct
deleted file mode 100644
index 9f5db81cafe..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_baseline/farmer.sto.struct
+++ /dev/null
@@ -1,6 +0,0 @@
-x1 c_l_x15_
-x2 c_l_x16_
-x3 c_l_x17_
-x1 c_u_x18_
-x2 c_u_x19_
-x3 c_u_x20_
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_baseline/farmer.tim b/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_baseline/farmer.tim
deleted file mode 100644
index 596068a53d4..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_baseline/farmer.tim
+++ /dev/null
@@ -1,5 +0,0 @@
-TIME farmer
-PERIODS IMPLICIT
- x1 x13 TIME1
- x10 c_l_x15_ TIME2
-ENDATA
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_baseline/scenario_files/farmer.col.AboveAverageScenario b/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_baseline/scenario_files/farmer.col.AboveAverageScenario
deleted file mode 100644
index d8d77c489b1..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_baseline/scenario_files/farmer.col.AboveAverageScenario
+++ /dev/null
@@ -1,13 +0,0 @@
-x1
-x2
-x3
-x10
-x11
-x12
-x4
-x5
-x6
-x7
-x8
-x9
-ONE_VAR_CONSTANT
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_baseline/scenario_files/farmer.col.AverageScenario b/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_baseline/scenario_files/farmer.col.AverageScenario
deleted file mode 100644
index d8d77c489b1..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_baseline/scenario_files/farmer.col.AverageScenario
+++ /dev/null
@@ -1,13 +0,0 @@
-x1
-x2
-x3
-x10
-x11
-x12
-x4
-x5
-x6
-x7
-x8
-x9
-ONE_VAR_CONSTANT
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_baseline/scenario_files/farmer.col.BelowAverageScenario b/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_baseline/scenario_files/farmer.col.BelowAverageScenario
deleted file mode 100644
index d8d77c489b1..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_baseline/scenario_files/farmer.col.BelowAverageScenario
+++ /dev/null
@@ -1,13 +0,0 @@
-x1
-x2
-x3
-x10
-x11
-x12
-x4
-x5
-x6
-x7
-x8
-x9
-ONE_VAR_CONSTANT
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_baseline/scenario_files/farmer.mps.AboveAverageScenario b/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_baseline/scenario_files/farmer.mps.AboveAverageScenario
deleted file mode 100644
index 6f3b94f6da9..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_baseline/scenario_files/farmer.mps.AboveAverageScenario
+++ /dev/null
@@ -1,97 +0,0 @@
-* Source: Pyomo MPS Writer
-* Format: Free MPS
-*
-NAME AboveAverageScenario
-OBJSENSE
- MIN
-ROWS
- N x13
- L c_u_x14_
- G c_l_x15_
- G c_l_x16_
- G c_l_x17_
- L c_u_x18_
- L c_u_x19_
- L c_u_x20_
- G r_l_x21_
- L r_u_x21_
- G r_l_x22_
- L r_u_x22_
- G r_l_x23_
- L r_u_x23_
- E c_e_ONE_VAR_CONSTANT
-COLUMNS
- x1 x13 230
- x1 c_u_x14_ 1
- x1 c_l_x15_ 3.6000000000000001
- x1 c_u_x18_ -3.6000000000000001
- x2 x13 260
- x2 c_u_x14_ 1
- x2 c_l_x16_ 24
- x2 c_u_x19_ -24
- x3 x13 150
- x3 c_u_x14_ 1
- x3 c_l_x17_ 3
- x3 c_u_x20_ -3
- x10 x13 210
- x10 c_l_x15_ 1
- x11 x13 100000
- x11 c_l_x16_ 1
- x12 x13 238
- x12 c_l_x17_ 1
- x4 x13 -150
- x4 c_l_x15_ -1
- x4 c_u_x18_ 1
- x4 r_l_x21_ 1
- x4 r_u_x21_ 1
- x5 x13 -36
- x5 c_l_x16_ -1
- x5 c_u_x19_ 1
- x5 r_l_x22_ 1
- x5 r_u_x22_ 1
- x6 x13 -170
- x6 c_l_x17_ -1
- x6 c_u_x20_ 1
- x6 r_l_x23_ 1
- x6 r_u_x23_ 1
- x7 c_l_x15_ -1
- x7 c_u_x18_ 1
- x8 x13 -10
- x8 c_l_x16_ -1
- x8 c_u_x19_ 1
- x9 c_l_x17_ -1
- x9 c_u_x20_ 1
- ONE_VAR_CONSTANT x13 0
- ONE_VAR_CONSTANT c_e_ONE_VAR_CONSTANT 1
-RHS
- RHS c_u_x14_ 500
- RHS c_l_x15_ 240
- RHS c_l_x16_ 0
- RHS c_l_x17_ 200
- RHS c_u_x18_ 0
- RHS c_u_x19_ 0
- RHS c_u_x20_ 0
- RHS r_l_x21_ 0
- RHS r_u_x21_ 100000
- RHS r_l_x22_ 0
- RHS r_u_x22_ 6000
- RHS r_l_x23_ 0
- RHS r_u_x23_ 100000
- RHS c_e_ONE_VAR_CONSTANT 1
-BOUNDS
- LO BOUND x1 0
- UP BOUND x1 500
- LO BOUND x2 0
- UP BOUND x2 500
- LO BOUND x3 0
- UP BOUND x3 500
- LO BOUND x10 0
- LO BOUND x11 0
- LO BOUND x12 0
- LO BOUND x4 0
- LO BOUND x5 0
- LO BOUND x6 0
- LO BOUND x7 0
- LO BOUND x8 0
- LO BOUND x9 0
-ENDATA
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_baseline/scenario_files/farmer.mps.AverageScenario b/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_baseline/scenario_files/farmer.mps.AverageScenario
deleted file mode 100644
index 173a521244c..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_baseline/scenario_files/farmer.mps.AverageScenario
+++ /dev/null
@@ -1,97 +0,0 @@
-* Source: Pyomo MPS Writer
-* Format: Free MPS
-*
-NAME AverageScenario
-OBJSENSE
- MIN
-ROWS
- N x13
- L c_u_x14_
- G c_l_x15_
- G c_l_x16_
- G c_l_x17_
- L c_u_x18_
- L c_u_x19_
- L c_u_x20_
- G r_l_x21_
- L r_u_x21_
- G r_l_x22_
- L r_u_x22_
- G r_l_x23_
- L r_u_x23_
- E c_e_ONE_VAR_CONSTANT
-COLUMNS
- x1 x13 230
- x1 c_u_x14_ 1
- x1 c_l_x15_ 3
- x1 c_u_x18_ -3
- x2 x13 260
- x2 c_u_x14_ 1
- x2 c_l_x16_ 20
- x2 c_u_x19_ -20
- x3 x13 150
- x3 c_u_x14_ 1
- x3 c_l_x17_ 2.5
- x3 c_u_x20_ -2.5
- x10 x13 210
- x10 c_l_x15_ 1
- x11 x13 100000
- x11 c_l_x16_ 1
- x12 x13 238
- x12 c_l_x17_ 1
- x4 x13 -150
- x4 c_l_x15_ -1
- x4 c_u_x18_ 1
- x4 r_l_x21_ 1
- x4 r_u_x21_ 1
- x5 x13 -36
- x5 c_l_x16_ -1
- x5 c_u_x19_ 1
- x5 r_l_x22_ 1
- x5 r_u_x22_ 1
- x6 x13 -170
- x6 c_l_x17_ -1
- x6 c_u_x20_ 1
- x6 r_l_x23_ 1
- x6 r_u_x23_ 1
- x7 c_l_x15_ -1
- x7 c_u_x18_ 1
- x8 x13 -10
- x8 c_l_x16_ -1
- x8 c_u_x19_ 1
- x9 c_l_x17_ -1
- x9 c_u_x20_ 1
- ONE_VAR_CONSTANT x13 0
- ONE_VAR_CONSTANT c_e_ONE_VAR_CONSTANT 1
-RHS
- RHS c_u_x14_ 500
- RHS c_l_x15_ 240
- RHS c_l_x16_ 0
- RHS c_l_x17_ 200
- RHS c_u_x18_ 0
- RHS c_u_x19_ 0
- RHS c_u_x20_ 0
- RHS r_l_x21_ 0
- RHS r_u_x21_ 100000
- RHS r_l_x22_ 0
- RHS r_u_x22_ 6000
- RHS r_l_x23_ 0
- RHS r_u_x23_ 100000
- RHS c_e_ONE_VAR_CONSTANT 1
-BOUNDS
- LO BOUND x1 0
- UP BOUND x1 500
- LO BOUND x2 0
- UP BOUND x2 500
- LO BOUND x3 0
- UP BOUND x3 500
- LO BOUND x10 0
- LO BOUND x11 0
- LO BOUND x12 0
- LO BOUND x4 0
- LO BOUND x5 0
- LO BOUND x6 0
- LO BOUND x7 0
- LO BOUND x8 0
- LO BOUND x9 0
-ENDATA
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_baseline/scenario_files/farmer.mps.BelowAverageScenario b/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_baseline/scenario_files/farmer.mps.BelowAverageScenario
deleted file mode 100644
index e3139b5f5cf..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_baseline/scenario_files/farmer.mps.BelowAverageScenario
+++ /dev/null
@@ -1,97 +0,0 @@
-* Source: Pyomo MPS Writer
-* Format: Free MPS
-*
-NAME BelowAverageScenario
-OBJSENSE
- MIN
-ROWS
- N x13
- L c_u_x14_
- G c_l_x15_
- G c_l_x16_
- G c_l_x17_
- L c_u_x18_
- L c_u_x19_
- L c_u_x20_
- G r_l_x21_
- L r_u_x21_
- G r_l_x22_
- L r_u_x22_
- G r_l_x23_
- L r_u_x23_
- E c_e_ONE_VAR_CONSTANT
-COLUMNS
- x1 x13 230
- x1 c_u_x14_ 1
- x1 c_l_x15_ 2.3999999999999999
- x1 c_u_x18_ -2.3999999999999999
- x2 x13 260
- x2 c_u_x14_ 1
- x2 c_l_x16_ 16
- x2 c_u_x19_ -16
- x3 x13 150
- x3 c_u_x14_ 1
- x3 c_l_x17_ 2
- x3 c_u_x20_ -2
- x10 x13 210
- x10 c_l_x15_ 1
- x11 x13 100000
- x11 c_l_x16_ 1
- x12 x13 238
- x12 c_l_x17_ 1
- x4 x13 -150
- x4 c_l_x15_ -1
- x4 c_u_x18_ 1
- x4 r_l_x21_ 1
- x4 r_u_x21_ 1
- x5 x13 -36
- x5 c_l_x16_ -1
- x5 c_u_x19_ 1
- x5 r_l_x22_ 1
- x5 r_u_x22_ 1
- x6 x13 -170
- x6 c_l_x17_ -1
- x6 c_u_x20_ 1
- x6 r_l_x23_ 1
- x6 r_u_x23_ 1
- x7 c_l_x15_ -1
- x7 c_u_x18_ 1
- x8 x13 -10
- x8 c_l_x16_ -1
- x8 c_u_x19_ 1
- x9 c_l_x17_ -1
- x9 c_u_x20_ 1
- ONE_VAR_CONSTANT x13 0
- ONE_VAR_CONSTANT c_e_ONE_VAR_CONSTANT 1
-RHS
- RHS c_u_x14_ 500
- RHS c_l_x15_ 240
- RHS c_l_x16_ 0
- RHS c_l_x17_ 200
- RHS c_u_x18_ 0
- RHS c_u_x19_ 0
- RHS c_u_x20_ 0
- RHS r_l_x21_ 0
- RHS r_u_x21_ 100000
- RHS r_l_x22_ 0
- RHS r_u_x22_ 6000
- RHS r_l_x23_ 0
- RHS r_u_x23_ 100000
- RHS c_e_ONE_VAR_CONSTANT 1
-BOUNDS
- LO BOUND x1 0
- UP BOUND x1 500
- LO BOUND x2 0
- UP BOUND x2 500
- LO BOUND x3 0
- UP BOUND x3 500
- LO BOUND x10 0
- LO BOUND x11 0
- LO BOUND x12 0
- LO BOUND x4 0
- LO BOUND x5 0
- LO BOUND x6 0
- LO BOUND x7 0
- LO BOUND x8 0
- LO BOUND x9 0
-ENDATA
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_baseline/scenario_files/farmer.mps.det.AboveAverageScenario b/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_baseline/scenario_files/farmer.mps.det.AboveAverageScenario
deleted file mode 100644
index 4b6b05a5f30..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_baseline/scenario_files/farmer.mps.det.AboveAverageScenario
+++ /dev/null
@@ -1,97 +0,0 @@
-* Source: Pyomo MPS Writer
-* Format: Free MPS
-*
-NAME ZeroStochasticData
-OBJSENSE
- MIN
-ROWS
- N x13
- L c_u_x14_
- G c_l_x15_
- G c_l_x16_
- G c_l_x17_
- L c_u_x18_
- L c_u_x19_
- L c_u_x20_
- G r_l_x21_
- L r_u_x21_
- G r_l_x22_
- L r_u_x22_
- G r_l_x23_
- L r_u_x23_
- E c_e_ONE_VAR_CONSTANT
-COLUMNS
- x1 x13 230
- x1 c_u_x14_ 1
- x1 c_l_x15_ -9876543210
- x1 c_u_x18_ -9876543210
- x2 x13 260
- x2 c_u_x14_ 1
- x2 c_l_x16_ -9876543210
- x2 c_u_x19_ -9876543210
- x3 x13 150
- x3 c_u_x14_ 1
- x3 c_l_x17_ -9876543210
- x3 c_u_x20_ -9876543210
- x10 x13 210
- x10 c_l_x15_ 1
- x11 x13 100000
- x11 c_l_x16_ 1
- x12 x13 238
- x12 c_l_x17_ 1
- x4 x13 -150
- x4 c_l_x15_ -1
- x4 c_u_x18_ 1
- x4 r_l_x21_ 1
- x4 r_u_x21_ 1
- x5 x13 -36
- x5 c_l_x16_ -1
- x5 c_u_x19_ 1
- x5 r_l_x22_ 1
- x5 r_u_x22_ 1
- x6 x13 -170
- x6 c_l_x17_ -1
- x6 c_u_x20_ 1
- x6 r_l_x23_ 1
- x6 r_u_x23_ 1
- x7 c_l_x15_ -1
- x7 c_u_x18_ 1
- x8 x13 -10
- x8 c_l_x16_ -1
- x8 c_u_x19_ 1
- x9 c_l_x17_ -1
- x9 c_u_x20_ 1
- ONE_VAR_CONSTANT x13 0
- ONE_VAR_CONSTANT c_e_ONE_VAR_CONSTANT 1
-RHS
- RHS c_u_x14_ 500
- RHS c_l_x15_ 240
- RHS c_l_x16_ 0
- RHS c_l_x17_ 200
- RHS c_u_x18_ 0
- RHS c_u_x19_ 0
- RHS c_u_x20_ 0
- RHS r_l_x21_ 0
- RHS r_u_x21_ 100000
- RHS r_l_x22_ 0
- RHS r_u_x22_ 6000
- RHS r_l_x23_ 0
- RHS r_u_x23_ 100000
- RHS c_e_ONE_VAR_CONSTANT 1
-BOUNDS
- LO BOUND x1 0
- UP BOUND x1 500
- LO BOUND x2 0
- UP BOUND x2 500
- LO BOUND x3 0
- UP BOUND x3 500
- LO BOUND x10 0
- LO BOUND x11 0
- LO BOUND x12 0
- LO BOUND x4 0
- LO BOUND x5 0
- LO BOUND x6 0
- LO BOUND x7 0
- LO BOUND x8 0
- LO BOUND x9 0
-ENDATA
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_baseline/scenario_files/farmer.mps.det.AverageScenario b/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_baseline/scenario_files/farmer.mps.det.AverageScenario
deleted file mode 100644
index 4b6b05a5f30..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_baseline/scenario_files/farmer.mps.det.AverageScenario
+++ /dev/null
@@ -1,97 +0,0 @@
-* Source: Pyomo MPS Writer
-* Format: Free MPS
-*
-NAME ZeroStochasticData
-OBJSENSE
- MIN
-ROWS
- N x13
- L c_u_x14_
- G c_l_x15_
- G c_l_x16_
- G c_l_x17_
- L c_u_x18_
- L c_u_x19_
- L c_u_x20_
- G r_l_x21_
- L r_u_x21_
- G r_l_x22_
- L r_u_x22_
- G r_l_x23_
- L r_u_x23_
- E c_e_ONE_VAR_CONSTANT
-COLUMNS
- x1 x13 230
- x1 c_u_x14_ 1
- x1 c_l_x15_ -9876543210
- x1 c_u_x18_ -9876543210
- x2 x13 260
- x2 c_u_x14_ 1
- x2 c_l_x16_ -9876543210
- x2 c_u_x19_ -9876543210
- x3 x13 150
- x3 c_u_x14_ 1
- x3 c_l_x17_ -9876543210
- x3 c_u_x20_ -9876543210
- x10 x13 210
- x10 c_l_x15_ 1
- x11 x13 100000
- x11 c_l_x16_ 1
- x12 x13 238
- x12 c_l_x17_ 1
- x4 x13 -150
- x4 c_l_x15_ -1
- x4 c_u_x18_ 1
- x4 r_l_x21_ 1
- x4 r_u_x21_ 1
- x5 x13 -36
- x5 c_l_x16_ -1
- x5 c_u_x19_ 1
- x5 r_l_x22_ 1
- x5 r_u_x22_ 1
- x6 x13 -170
- x6 c_l_x17_ -1
- x6 c_u_x20_ 1
- x6 r_l_x23_ 1
- x6 r_u_x23_ 1
- x7 c_l_x15_ -1
- x7 c_u_x18_ 1
- x8 x13 -10
- x8 c_l_x16_ -1
- x8 c_u_x19_ 1
- x9 c_l_x17_ -1
- x9 c_u_x20_ 1
- ONE_VAR_CONSTANT x13 0
- ONE_VAR_CONSTANT c_e_ONE_VAR_CONSTANT 1
-RHS
- RHS c_u_x14_ 500
- RHS c_l_x15_ 240
- RHS c_l_x16_ 0
- RHS c_l_x17_ 200
- RHS c_u_x18_ 0
- RHS c_u_x19_ 0
- RHS c_u_x20_ 0
- RHS r_l_x21_ 0
- RHS r_u_x21_ 100000
- RHS r_l_x22_ 0
- RHS r_u_x22_ 6000
- RHS r_l_x23_ 0
- RHS r_u_x23_ 100000
- RHS c_e_ONE_VAR_CONSTANT 1
-BOUNDS
- LO BOUND x1 0
- UP BOUND x1 500
- LO BOUND x2 0
- UP BOUND x2 500
- LO BOUND x3 0
- UP BOUND x3 500
- LO BOUND x10 0
- LO BOUND x11 0
- LO BOUND x12 0
- LO BOUND x4 0
- LO BOUND x5 0
- LO BOUND x6 0
- LO BOUND x7 0
- LO BOUND x8 0
- LO BOUND x9 0
-ENDATA
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_baseline/scenario_files/farmer.mps.det.BelowAverageScenario b/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_baseline/scenario_files/farmer.mps.det.BelowAverageScenario
deleted file mode 100644
index 4b6b05a5f30..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_baseline/scenario_files/farmer.mps.det.BelowAverageScenario
+++ /dev/null
@@ -1,97 +0,0 @@
-* Source: Pyomo MPS Writer
-* Format: Free MPS
-*
-NAME ZeroStochasticData
-OBJSENSE
- MIN
-ROWS
- N x13
- L c_u_x14_
- G c_l_x15_
- G c_l_x16_
- G c_l_x17_
- L c_u_x18_
- L c_u_x19_
- L c_u_x20_
- G r_l_x21_
- L r_u_x21_
- G r_l_x22_
- L r_u_x22_
- G r_l_x23_
- L r_u_x23_
- E c_e_ONE_VAR_CONSTANT
-COLUMNS
- x1 x13 230
- x1 c_u_x14_ 1
- x1 c_l_x15_ -9876543210
- x1 c_u_x18_ -9876543210
- x2 x13 260
- x2 c_u_x14_ 1
- x2 c_l_x16_ -9876543210
- x2 c_u_x19_ -9876543210
- x3 x13 150
- x3 c_u_x14_ 1
- x3 c_l_x17_ -9876543210
- x3 c_u_x20_ -9876543210
- x10 x13 210
- x10 c_l_x15_ 1
- x11 x13 100000
- x11 c_l_x16_ 1
- x12 x13 238
- x12 c_l_x17_ 1
- x4 x13 -150
- x4 c_l_x15_ -1
- x4 c_u_x18_ 1
- x4 r_l_x21_ 1
- x4 r_u_x21_ 1
- x5 x13 -36
- x5 c_l_x16_ -1
- x5 c_u_x19_ 1
- x5 r_l_x22_ 1
- x5 r_u_x22_ 1
- x6 x13 -170
- x6 c_l_x17_ -1
- x6 c_u_x20_ 1
- x6 r_l_x23_ 1
- x6 r_u_x23_ 1
- x7 c_l_x15_ -1
- x7 c_u_x18_ 1
- x8 x13 -10
- x8 c_l_x16_ -1
- x8 c_u_x19_ 1
- x9 c_l_x17_ -1
- x9 c_u_x20_ 1
- ONE_VAR_CONSTANT x13 0
- ONE_VAR_CONSTANT c_e_ONE_VAR_CONSTANT 1
-RHS
- RHS c_u_x14_ 500
- RHS c_l_x15_ 240
- RHS c_l_x16_ 0
- RHS c_l_x17_ 200
- RHS c_u_x18_ 0
- RHS c_u_x19_ 0
- RHS c_u_x20_ 0
- RHS r_l_x21_ 0
- RHS r_u_x21_ 100000
- RHS r_l_x22_ 0
- RHS r_u_x22_ 6000
- RHS r_l_x23_ 0
- RHS r_u_x23_ 100000
- RHS c_e_ONE_VAR_CONSTANT 1
-BOUNDS
- LO BOUND x1 0
- UP BOUND x1 500
- LO BOUND x2 0
- UP BOUND x2 500
- LO BOUND x3 0
- UP BOUND x3 500
- LO BOUND x10 0
- LO BOUND x11 0
- LO BOUND x12 0
- LO BOUND x4 0
- LO BOUND x5 0
- LO BOUND x6 0
- LO BOUND x7 0
- LO BOUND x8 0
- LO BOUND x9 0
-ENDATA
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_baseline/scenario_files/farmer.mps.symbols.AboveAverageScenario b/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_baseline/scenario_files/farmer.mps.symbols.AboveAverageScenario
deleted file mode 100644
index 6950b396127..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_baseline/scenario_files/farmer.mps.symbols.AboveAverageScenario
+++ /dev/null
@@ -1,3 +0,0 @@
-x1 DevotedAcreage:$CORN
-x2 DevotedAcreage:$SUGAR_BEETS
-x3 DevotedAcreage:$WHEAT
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_baseline/scenario_files/farmer.mps.symbols.AverageScenario b/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_baseline/scenario_files/farmer.mps.symbols.AverageScenario
deleted file mode 100644
index 6950b396127..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_baseline/scenario_files/farmer.mps.symbols.AverageScenario
+++ /dev/null
@@ -1,3 +0,0 @@
-x1 DevotedAcreage:$CORN
-x2 DevotedAcreage:$SUGAR_BEETS
-x3 DevotedAcreage:$WHEAT
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_baseline/scenario_files/farmer.mps.symbols.BelowAverageScenario b/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_baseline/scenario_files/farmer.mps.symbols.BelowAverageScenario
deleted file mode 100644
index 6950b396127..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_baseline/scenario_files/farmer.mps.symbols.BelowAverageScenario
+++ /dev/null
@@ -1,3 +0,0 @@
-x1 DevotedAcreage:$CORN
-x2 DevotedAcreage:$SUGAR_BEETS
-x3 DevotedAcreage:$WHEAT
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_baseline/scenario_files/farmer.row.AboveAverageScenario b/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_baseline/scenario_files/farmer.row.AboveAverageScenario
deleted file mode 100644
index b0d1db6bcfb..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_baseline/scenario_files/farmer.row.AboveAverageScenario
+++ /dev/null
@@ -1,15 +0,0 @@
-x13
-c_u_x14_
-c_l_x15_
-c_l_x16_
-c_l_x17_
-c_u_x18_
-c_u_x19_
-c_u_x20_
-r_l_x21_
-r_u_x21_
-r_l_x22_
-r_u_x22_
-r_l_x23_
-r_u_x23_
-c_e_ONE_VAR_CONSTANT
\ No newline at end of file
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_baseline/scenario_files/farmer.row.AverageScenario b/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_baseline/scenario_files/farmer.row.AverageScenario
deleted file mode 100644
index b0d1db6bcfb..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_baseline/scenario_files/farmer.row.AverageScenario
+++ /dev/null
@@ -1,15 +0,0 @@
-x13
-c_u_x14_
-c_l_x15_
-c_l_x16_
-c_l_x17_
-c_u_x18_
-c_u_x19_
-c_u_x20_
-r_l_x21_
-r_u_x21_
-r_l_x22_
-r_u_x22_
-r_l_x23_
-r_u_x23_
-c_e_ONE_VAR_CONSTANT
\ No newline at end of file
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_baseline/scenario_files/farmer.row.BelowAverageScenario b/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_baseline/scenario_files/farmer.row.BelowAverageScenario
deleted file mode 100644
index b0d1db6bcfb..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_baseline/scenario_files/farmer.row.BelowAverageScenario
+++ /dev/null
@@ -1,15 +0,0 @@
-x13
-c_u_x14_
-c_l_x15_
-c_l_x16_
-c_l_x17_
-c_u_x18_
-c_u_x19_
-c_u_x20_
-r_l_x21_
-r_u_x21_
-r_l_x22_
-r_u_x22_
-r_l_x23_
-r_u_x23_
-c_e_ONE_VAR_CONSTANT
\ No newline at end of file
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_baseline/scenario_files/farmer.setup.mps.AboveAverageScenario b/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_baseline/scenario_files/farmer.setup.mps.AboveAverageScenario
deleted file mode 100644
index eb7f4c1d4b4..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_baseline/scenario_files/farmer.setup.mps.AboveAverageScenario
+++ /dev/null
@@ -1,93 +0,0 @@
-* Source: Pyomo MPS Writer
-* Format: Free MPS
-*
-NAME AboveAverageScenario
-OBJSENSE
- MIN
-ROWS
- N x13
- L c_u_x14_
- G r_l_x15_
- L r_u_x15_
- G r_l_x16_
- L r_u_x16_
- G r_l_x17_
- L r_u_x17_
- G c_l_x18_
- G c_l_x19_
- G c_l_x20_
- L c_u_x21_
- L c_u_x22_
- L c_u_x23_
-COLUMNS
- x1 x13 230
- x1 c_u_x14_ 1
- x1 c_l_x18_ 3.6000000000000001
- x1 c_u_x21_ -3.6000000000000001
- x2 x13 260
- x2 c_u_x14_ 1
- x2 c_l_x19_ 24
- x2 c_u_x22_ -24
- x3 x13 150
- x3 c_u_x14_ 1
- x3 c_l_x20_ 3
- x3 c_u_x23_ -3
- x4 x13 -150
- x4 r_l_x15_ 1
- x4 r_u_x15_ 1
- x4 c_l_x18_ -1
- x4 c_u_x21_ 1
- x5 x13 -36
- x5 r_l_x16_ 1
- x5 r_u_x16_ 1
- x5 c_l_x19_ -1
- x5 c_u_x22_ 1
- x6 x13 -170
- x6 r_l_x17_ 1
- x6 r_u_x17_ 1
- x6 c_l_x20_ -1
- x6 c_u_x23_ 1
- x7 c_l_x18_ -1
- x7 c_u_x21_ 1
- x8 x13 -10
- x8 c_l_x19_ -1
- x8 c_u_x22_ 1
- x9 c_l_x20_ -1
- x9 c_u_x23_ 1
- x10 x13 210
- x10 c_l_x18_ 1
- x11 x13 100000
- x11 c_l_x19_ 1
- x12 x13 238
- x12 c_l_x20_ 1
-RHS
- RHS c_u_x14_ 500
- RHS r_l_x15_ 0
- RHS r_u_x15_ 100000
- RHS r_l_x16_ 0
- RHS r_u_x16_ 6000
- RHS r_l_x17_ 0
- RHS r_u_x17_ 100000
- RHS c_l_x18_ 240
- RHS c_l_x19_ 0
- RHS c_l_x20_ 200
- RHS c_u_x21_ 0
- RHS c_u_x22_ 0
- RHS c_u_x23_ 0
-BOUNDS
- LO BOUND x1 0
- UP BOUND x1 500
- LO BOUND x2 0
- UP BOUND x2 500
- LO BOUND x3 0
- UP BOUND x3 500
- LO BOUND x4 0
- LO BOUND x5 0
- LO BOUND x6 0
- LO BOUND x7 0
- LO BOUND x8 0
- LO BOUND x9 0
- LO BOUND x10 0
- LO BOUND x11 0
- LO BOUND x12 0
-ENDATA
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_baseline/scenario_files/farmer.setup.mps.AverageScenario b/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_baseline/scenario_files/farmer.setup.mps.AverageScenario
deleted file mode 100644
index 0b51eeb3dd0..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_baseline/scenario_files/farmer.setup.mps.AverageScenario
+++ /dev/null
@@ -1,93 +0,0 @@
-* Source: Pyomo MPS Writer
-* Format: Free MPS
-*
-NAME AverageScenario
-OBJSENSE
- MIN
-ROWS
- N x13
- L c_u_x14_
- G r_l_x15_
- L r_u_x15_
- G r_l_x16_
- L r_u_x16_
- G r_l_x17_
- L r_u_x17_
- G c_l_x18_
- G c_l_x19_
- G c_l_x20_
- L c_u_x21_
- L c_u_x22_
- L c_u_x23_
-COLUMNS
- x1 x13 230
- x1 c_u_x14_ 1
- x1 c_l_x18_ 3
- x1 c_u_x21_ -3
- x2 x13 260
- x2 c_u_x14_ 1
- x2 c_l_x19_ 20
- x2 c_u_x22_ -20
- x3 x13 150
- x3 c_u_x14_ 1
- x3 c_l_x20_ 2.5
- x3 c_u_x23_ -2.5
- x4 x13 -150
- x4 r_l_x15_ 1
- x4 r_u_x15_ 1
- x4 c_l_x18_ -1
- x4 c_u_x21_ 1
- x5 x13 -36
- x5 r_l_x16_ 1
- x5 r_u_x16_ 1
- x5 c_l_x19_ -1
- x5 c_u_x22_ 1
- x6 x13 -170
- x6 r_l_x17_ 1
- x6 r_u_x17_ 1
- x6 c_l_x20_ -1
- x6 c_u_x23_ 1
- x7 c_l_x18_ -1
- x7 c_u_x21_ 1
- x8 x13 -10
- x8 c_l_x19_ -1
- x8 c_u_x22_ 1
- x9 c_l_x20_ -1
- x9 c_u_x23_ 1
- x10 x13 210
- x10 c_l_x18_ 1
- x11 x13 100000
- x11 c_l_x19_ 1
- x12 x13 238
- x12 c_l_x20_ 1
-RHS
- RHS c_u_x14_ 500
- RHS r_l_x15_ 0
- RHS r_u_x15_ 100000
- RHS r_l_x16_ 0
- RHS r_u_x16_ 6000
- RHS r_l_x17_ 0
- RHS r_u_x17_ 100000
- RHS c_l_x18_ 240
- RHS c_l_x19_ 0
- RHS c_l_x20_ 200
- RHS c_u_x21_ 0
- RHS c_u_x22_ 0
- RHS c_u_x23_ 0
-BOUNDS
- LO BOUND x1 0
- UP BOUND x1 500
- LO BOUND x2 0
- UP BOUND x2 500
- LO BOUND x3 0
- UP BOUND x3 500
- LO BOUND x4 0
- LO BOUND x5 0
- LO BOUND x6 0
- LO BOUND x7 0
- LO BOUND x8 0
- LO BOUND x9 0
- LO BOUND x10 0
- LO BOUND x11 0
- LO BOUND x12 0
-ENDATA
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_baseline/scenario_files/farmer.setup.mps.BelowAverageScenario b/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_baseline/scenario_files/farmer.setup.mps.BelowAverageScenario
deleted file mode 100644
index 93cba4e098e..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_baseline/scenario_files/farmer.setup.mps.BelowAverageScenario
+++ /dev/null
@@ -1,93 +0,0 @@
-* Source: Pyomo MPS Writer
-* Format: Free MPS
-*
-NAME BelowAverageScenario
-OBJSENSE
- MIN
-ROWS
- N x13
- L c_u_x14_
- G r_l_x15_
- L r_u_x15_
- G r_l_x16_
- L r_u_x16_
- G r_l_x17_
- L r_u_x17_
- G c_l_x18_
- G c_l_x19_
- G c_l_x20_
- L c_u_x21_
- L c_u_x22_
- L c_u_x23_
-COLUMNS
- x1 x13 230
- x1 c_u_x14_ 1
- x1 c_l_x18_ 2.3999999999999999
- x1 c_u_x21_ -2.3999999999999999
- x2 x13 260
- x2 c_u_x14_ 1
- x2 c_l_x19_ 16
- x2 c_u_x22_ -16
- x3 x13 150
- x3 c_u_x14_ 1
- x3 c_l_x20_ 2
- x3 c_u_x23_ -2
- x4 x13 -150
- x4 r_l_x15_ 1
- x4 r_u_x15_ 1
- x4 c_l_x18_ -1
- x4 c_u_x21_ 1
- x5 x13 -36
- x5 r_l_x16_ 1
- x5 r_u_x16_ 1
- x5 c_l_x19_ -1
- x5 c_u_x22_ 1
- x6 x13 -170
- x6 r_l_x17_ 1
- x6 r_u_x17_ 1
- x6 c_l_x20_ -1
- x6 c_u_x23_ 1
- x7 c_l_x18_ -1
- x7 c_u_x21_ 1
- x8 x13 -10
- x8 c_l_x19_ -1
- x8 c_u_x22_ 1
- x9 c_l_x20_ -1
- x9 c_u_x23_ 1
- x10 x13 210
- x10 c_l_x18_ 1
- x11 x13 100000
- x11 c_l_x19_ 1
- x12 x13 238
- x12 c_l_x20_ 1
-RHS
- RHS c_u_x14_ 500
- RHS r_l_x15_ 0
- RHS r_u_x15_ 100000
- RHS r_l_x16_ 0
- RHS r_u_x16_ 6000
- RHS r_l_x17_ 0
- RHS r_u_x17_ 100000
- RHS c_l_x18_ 240
- RHS c_l_x19_ 0
- RHS c_l_x20_ 200
- RHS c_u_x21_ 0
- RHS c_u_x22_ 0
- RHS c_u_x23_ 0
-BOUNDS
- LO BOUND x1 0
- UP BOUND x1 500
- LO BOUND x2 0
- UP BOUND x2 500
- LO BOUND x3 0
- UP BOUND x3 500
- LO BOUND x4 0
- LO BOUND x5 0
- LO BOUND x6 0
- LO BOUND x7 0
- LO BOUND x8 0
- LO BOUND x9 0
- LO BOUND x10 0
- LO BOUND x11 0
- LO BOUND x12 0
-ENDATA
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_baseline/scenario_files/farmer.sto.AboveAverageScenario b/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_baseline/scenario_files/farmer.sto.AboveAverageScenario
deleted file mode 100644
index a5da65fc4f0..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_baseline/scenario_files/farmer.sto.AboveAverageScenario
+++ /dev/null
@@ -1,7 +0,0 @@
- BL BLOCK1 PERIOD2 0.33333332999999998
- x1 c_l_x15_ 3.6000000000000001
- x2 c_l_x16_ 24
- x3 c_l_x17_ 3
- x1 c_u_x18_ -3.6000000000000001
- x2 c_u_x19_ -24
- x3 c_u_x20_ -3
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_baseline/scenario_files/farmer.sto.AverageScenario b/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_baseline/scenario_files/farmer.sto.AverageScenario
deleted file mode 100644
index 28661ca96b2..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_baseline/scenario_files/farmer.sto.AverageScenario
+++ /dev/null
@@ -1,7 +0,0 @@
- BL BLOCK1 PERIOD2 0.33333333999999998
- x1 c_l_x15_ 3
- x2 c_l_x16_ 20
- x3 c_l_x17_ 2.5
- x1 c_u_x18_ -3
- x2 c_u_x19_ -20
- x3 c_u_x20_ -2.5
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_baseline/scenario_files/farmer.sto.BelowAverageScenario b/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_baseline/scenario_files/farmer.sto.BelowAverageScenario
deleted file mode 100644
index 05c2eb7d5d3..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_baseline/scenario_files/farmer.sto.BelowAverageScenario
+++ /dev/null
@@ -1,7 +0,0 @@
- BL BLOCK1 PERIOD2 0.33333332999999998
- x1 c_l_x15_ 2.3999999999999999
- x2 c_l_x16_ 16
- x3 c_l_x17_ 2
- x1 c_u_x18_ -2.3999999999999999
- x2 c_u_x19_ -16
- x3 c_u_x20_ -2
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_baseline/scenario_files/farmer.sto.struct.AboveAverageScenario b/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_baseline/scenario_files/farmer.sto.struct.AboveAverageScenario
deleted file mode 100644
index 9f5db81cafe..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_baseline/scenario_files/farmer.sto.struct.AboveAverageScenario
+++ /dev/null
@@ -1,6 +0,0 @@
-x1 c_l_x15_
-x2 c_l_x16_
-x3 c_l_x17_
-x1 c_u_x18_
-x2 c_u_x19_
-x3 c_u_x20_
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_baseline/scenario_files/farmer.sto.struct.AverageScenario b/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_baseline/scenario_files/farmer.sto.struct.AverageScenario
deleted file mode 100644
index 9f5db81cafe..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_baseline/scenario_files/farmer.sto.struct.AverageScenario
+++ /dev/null
@@ -1,6 +0,0 @@
-x1 c_l_x15_
-x2 c_l_x16_
-x3 c_l_x17_
-x1 c_u_x18_
-x2 c_u_x19_
-x3 c_u_x20_
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_baseline/scenario_files/farmer.sto.struct.BelowAverageScenario b/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_baseline/scenario_files/farmer.sto.struct.BelowAverageScenario
deleted file mode 100644
index 9f5db81cafe..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_baseline/scenario_files/farmer.sto.struct.BelowAverageScenario
+++ /dev/null
@@ -1,6 +0,0 @@
-x1 c_l_x15_
-x2 c_l_x16_
-x3 c_l_x17_
-x1 c_u_x18_
-x2 c_u_x19_
-x3 c_u_x20_
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_baseline/scenario_files/farmer.tim.AboveAverageScenario b/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_baseline/scenario_files/farmer.tim.AboveAverageScenario
deleted file mode 100644
index 596068a53d4..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_baseline/scenario_files/farmer.tim.AboveAverageScenario
+++ /dev/null
@@ -1,5 +0,0 @@
-TIME farmer
-PERIODS IMPLICIT
- x1 x13 TIME1
- x10 c_l_x15_ TIME2
-ENDATA
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_baseline/scenario_files/farmer.tim.AverageScenario b/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_baseline/scenario_files/farmer.tim.AverageScenario
deleted file mode 100644
index 596068a53d4..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_baseline/scenario_files/farmer.tim.AverageScenario
+++ /dev/null
@@ -1,5 +0,0 @@
-TIME farmer
-PERIODS IMPLICIT
- x1 x13 TIME1
- x10 c_l_x15_ TIME2
-ENDATA
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_baseline/scenario_files/farmer.tim.BelowAverageScenario b/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_baseline/scenario_files/farmer.tim.BelowAverageScenario
deleted file mode 100644
index 596068a53d4..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_baseline/scenario_files/farmer.tim.BelowAverageScenario
+++ /dev/null
@@ -1,5 +0,0 @@
-TIME farmer
-PERIODS IMPLICIT
- x1 x13 TIME1
- x10 c_l_x15_ TIME2
-ENDATA
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_ignore_derived_baseline/farmer.col b/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_ignore_derived_baseline/farmer.col
deleted file mode 100644
index d8d77c489b1..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_ignore_derived_baseline/farmer.col
+++ /dev/null
@@ -1,13 +0,0 @@
-x1
-x2
-x3
-x10
-x11
-x12
-x4
-x5
-x6
-x7
-x8
-x9
-ONE_VAR_CONSTANT
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_ignore_derived_baseline/farmer.cor b/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_ignore_derived_baseline/farmer.cor
deleted file mode 100644
index e3139b5f5cf..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_ignore_derived_baseline/farmer.cor
+++ /dev/null
@@ -1,97 +0,0 @@
-* Source: Pyomo MPS Writer
-* Format: Free MPS
-*
-NAME BelowAverageScenario
-OBJSENSE
- MIN
-ROWS
- N x13
- L c_u_x14_
- G c_l_x15_
- G c_l_x16_
- G c_l_x17_
- L c_u_x18_
- L c_u_x19_
- L c_u_x20_
- G r_l_x21_
- L r_u_x21_
- G r_l_x22_
- L r_u_x22_
- G r_l_x23_
- L r_u_x23_
- E c_e_ONE_VAR_CONSTANT
-COLUMNS
- x1 x13 230
- x1 c_u_x14_ 1
- x1 c_l_x15_ 2.3999999999999999
- x1 c_u_x18_ -2.3999999999999999
- x2 x13 260
- x2 c_u_x14_ 1
- x2 c_l_x16_ 16
- x2 c_u_x19_ -16
- x3 x13 150
- x3 c_u_x14_ 1
- x3 c_l_x17_ 2
- x3 c_u_x20_ -2
- x10 x13 210
- x10 c_l_x15_ 1
- x11 x13 100000
- x11 c_l_x16_ 1
- x12 x13 238
- x12 c_l_x17_ 1
- x4 x13 -150
- x4 c_l_x15_ -1
- x4 c_u_x18_ 1
- x4 r_l_x21_ 1
- x4 r_u_x21_ 1
- x5 x13 -36
- x5 c_l_x16_ -1
- x5 c_u_x19_ 1
- x5 r_l_x22_ 1
- x5 r_u_x22_ 1
- x6 x13 -170
- x6 c_l_x17_ -1
- x6 c_u_x20_ 1
- x6 r_l_x23_ 1
- x6 r_u_x23_ 1
- x7 c_l_x15_ -1
- x7 c_u_x18_ 1
- x8 x13 -10
- x8 c_l_x16_ -1
- x8 c_u_x19_ 1
- x9 c_l_x17_ -1
- x9 c_u_x20_ 1
- ONE_VAR_CONSTANT x13 0
- ONE_VAR_CONSTANT c_e_ONE_VAR_CONSTANT 1
-RHS
- RHS c_u_x14_ 500
- RHS c_l_x15_ 240
- RHS c_l_x16_ 0
- RHS c_l_x17_ 200
- RHS c_u_x18_ 0
- RHS c_u_x19_ 0
- RHS c_u_x20_ 0
- RHS r_l_x21_ 0
- RHS r_u_x21_ 100000
- RHS r_l_x22_ 0
- RHS r_u_x22_ 6000
- RHS r_l_x23_ 0
- RHS r_u_x23_ 100000
- RHS c_e_ONE_VAR_CONSTANT 1
-BOUNDS
- LO BOUND x1 0
- UP BOUND x1 500
- LO BOUND x2 0
- UP BOUND x2 500
- LO BOUND x3 0
- UP BOUND x3 500
- LO BOUND x10 0
- LO BOUND x11 0
- LO BOUND x12 0
- LO BOUND x4 0
- LO BOUND x5 0
- LO BOUND x6 0
- LO BOUND x7 0
- LO BOUND x8 0
- LO BOUND x9 0
-ENDATA
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_ignore_derived_baseline/farmer.cor.symbols b/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_ignore_derived_baseline/farmer.cor.symbols
deleted file mode 100644
index 6950b396127..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_ignore_derived_baseline/farmer.cor.symbols
+++ /dev/null
@@ -1,3 +0,0 @@
-x1 DevotedAcreage:$CORN
-x2 DevotedAcreage:$SUGAR_BEETS
-x3 DevotedAcreage:$WHEAT
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_ignore_derived_baseline/farmer.mps.det b/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_ignore_derived_baseline/farmer.mps.det
deleted file mode 100644
index 4b6b05a5f30..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_ignore_derived_baseline/farmer.mps.det
+++ /dev/null
@@ -1,97 +0,0 @@
-* Source: Pyomo MPS Writer
-* Format: Free MPS
-*
-NAME ZeroStochasticData
-OBJSENSE
- MIN
-ROWS
- N x13
- L c_u_x14_
- G c_l_x15_
- G c_l_x16_
- G c_l_x17_
- L c_u_x18_
- L c_u_x19_
- L c_u_x20_
- G r_l_x21_
- L r_u_x21_
- G r_l_x22_
- L r_u_x22_
- G r_l_x23_
- L r_u_x23_
- E c_e_ONE_VAR_CONSTANT
-COLUMNS
- x1 x13 230
- x1 c_u_x14_ 1
- x1 c_l_x15_ -9876543210
- x1 c_u_x18_ -9876543210
- x2 x13 260
- x2 c_u_x14_ 1
- x2 c_l_x16_ -9876543210
- x2 c_u_x19_ -9876543210
- x3 x13 150
- x3 c_u_x14_ 1
- x3 c_l_x17_ -9876543210
- x3 c_u_x20_ -9876543210
- x10 x13 210
- x10 c_l_x15_ 1
- x11 x13 100000
- x11 c_l_x16_ 1
- x12 x13 238
- x12 c_l_x17_ 1
- x4 x13 -150
- x4 c_l_x15_ -1
- x4 c_u_x18_ 1
- x4 r_l_x21_ 1
- x4 r_u_x21_ 1
- x5 x13 -36
- x5 c_l_x16_ -1
- x5 c_u_x19_ 1
- x5 r_l_x22_ 1
- x5 r_u_x22_ 1
- x6 x13 -170
- x6 c_l_x17_ -1
- x6 c_u_x20_ 1
- x6 r_l_x23_ 1
- x6 r_u_x23_ 1
- x7 c_l_x15_ -1
- x7 c_u_x18_ 1
- x8 x13 -10
- x8 c_l_x16_ -1
- x8 c_u_x19_ 1
- x9 c_l_x17_ -1
- x9 c_u_x20_ 1
- ONE_VAR_CONSTANT x13 0
- ONE_VAR_CONSTANT c_e_ONE_VAR_CONSTANT 1
-RHS
- RHS c_u_x14_ 500
- RHS c_l_x15_ 240
- RHS c_l_x16_ 0
- RHS c_l_x17_ 200
- RHS c_u_x18_ 0
- RHS c_u_x19_ 0
- RHS c_u_x20_ 0
- RHS r_l_x21_ 0
- RHS r_u_x21_ 100000
- RHS r_l_x22_ 0
- RHS r_u_x22_ 6000
- RHS r_l_x23_ 0
- RHS r_u_x23_ 100000
- RHS c_e_ONE_VAR_CONSTANT 1
-BOUNDS
- LO BOUND x1 0
- UP BOUND x1 500
- LO BOUND x2 0
- UP BOUND x2 500
- LO BOUND x3 0
- UP BOUND x3 500
- LO BOUND x10 0
- LO BOUND x11 0
- LO BOUND x12 0
- LO BOUND x4 0
- LO BOUND x5 0
- LO BOUND x6 0
- LO BOUND x7 0
- LO BOUND x8 0
- LO BOUND x9 0
-ENDATA
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_ignore_derived_baseline/farmer.row b/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_ignore_derived_baseline/farmer.row
deleted file mode 100644
index b0d1db6bcfb..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_ignore_derived_baseline/farmer.row
+++ /dev/null
@@ -1,15 +0,0 @@
-x13
-c_u_x14_
-c_l_x15_
-c_l_x16_
-c_l_x17_
-c_u_x18_
-c_u_x19_
-c_u_x20_
-r_l_x21_
-r_u_x21_
-r_l_x22_
-r_u_x22_
-r_l_x23_
-r_u_x23_
-c_e_ONE_VAR_CONSTANT
\ No newline at end of file
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_ignore_derived_baseline/farmer.sto b/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_ignore_derived_baseline/farmer.sto
deleted file mode 100644
index 585ffe37033..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_ignore_derived_baseline/farmer.sto
+++ /dev/null
@@ -1,24 +0,0 @@
-STOCH farmer
-BLOCKS DISCRETE REPLACE
- BL BLOCK1 PERIOD2 0.33333332999999998
- x1 c_l_x15_ 2.3999999999999999
- x2 c_l_x16_ 16
- x3 c_l_x17_ 2
- x1 c_u_x18_ -2.3999999999999999
- x2 c_u_x19_ -16
- x3 c_u_x20_ -2
- BL BLOCK1 PERIOD2 0.33333333999999998
- x1 c_l_x15_ 3
- x2 c_l_x16_ 20
- x3 c_l_x17_ 2.5
- x1 c_u_x18_ -3
- x2 c_u_x19_ -20
- x3 c_u_x20_ -2.5
- BL BLOCK1 PERIOD2 0.33333332999999998
- x1 c_l_x15_ 3.6000000000000001
- x2 c_l_x16_ 24
- x3 c_l_x17_ 3
- x1 c_u_x18_ -3.6000000000000001
- x2 c_u_x19_ -24
- x3 c_u_x20_ -3
-ENDATA
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_ignore_derived_baseline/farmer.sto.struct b/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_ignore_derived_baseline/farmer.sto.struct
deleted file mode 100644
index 9f5db81cafe..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_ignore_derived_baseline/farmer.sto.struct
+++ /dev/null
@@ -1,6 +0,0 @@
-x1 c_l_x15_
-x2 c_l_x16_
-x3 c_l_x17_
-x1 c_u_x18_
-x2 c_u_x19_
-x3 c_u_x20_
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_ignore_derived_baseline/farmer.tim b/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_ignore_derived_baseline/farmer.tim
deleted file mode 100644
index 596068a53d4..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_ignore_derived_baseline/farmer.tim
+++ /dev/null
@@ -1,5 +0,0 @@
-TIME farmer
-PERIODS IMPLICIT
- x1 x13 TIME1
- x10 c_l_x15_ TIME2
-ENDATA
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_ignore_derived_baseline/scenario_files/farmer.col.AboveAverageScenario b/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_ignore_derived_baseline/scenario_files/farmer.col.AboveAverageScenario
deleted file mode 100644
index d8d77c489b1..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_ignore_derived_baseline/scenario_files/farmer.col.AboveAverageScenario
+++ /dev/null
@@ -1,13 +0,0 @@
-x1
-x2
-x3
-x10
-x11
-x12
-x4
-x5
-x6
-x7
-x8
-x9
-ONE_VAR_CONSTANT
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_ignore_derived_baseline/scenario_files/farmer.col.AverageScenario b/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_ignore_derived_baseline/scenario_files/farmer.col.AverageScenario
deleted file mode 100644
index d8d77c489b1..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_ignore_derived_baseline/scenario_files/farmer.col.AverageScenario
+++ /dev/null
@@ -1,13 +0,0 @@
-x1
-x2
-x3
-x10
-x11
-x12
-x4
-x5
-x6
-x7
-x8
-x9
-ONE_VAR_CONSTANT
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_ignore_derived_baseline/scenario_files/farmer.col.BelowAverageScenario b/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_ignore_derived_baseline/scenario_files/farmer.col.BelowAverageScenario
deleted file mode 100644
index d8d77c489b1..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_ignore_derived_baseline/scenario_files/farmer.col.BelowAverageScenario
+++ /dev/null
@@ -1,13 +0,0 @@
-x1
-x2
-x3
-x10
-x11
-x12
-x4
-x5
-x6
-x7
-x8
-x9
-ONE_VAR_CONSTANT
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_ignore_derived_baseline/scenario_files/farmer.mps.AboveAverageScenario b/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_ignore_derived_baseline/scenario_files/farmer.mps.AboveAverageScenario
deleted file mode 100644
index 6f3b94f6da9..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_ignore_derived_baseline/scenario_files/farmer.mps.AboveAverageScenario
+++ /dev/null
@@ -1,97 +0,0 @@
-* Source: Pyomo MPS Writer
-* Format: Free MPS
-*
-NAME AboveAverageScenario
-OBJSENSE
- MIN
-ROWS
- N x13
- L c_u_x14_
- G c_l_x15_
- G c_l_x16_
- G c_l_x17_
- L c_u_x18_
- L c_u_x19_
- L c_u_x20_
- G r_l_x21_
- L r_u_x21_
- G r_l_x22_
- L r_u_x22_
- G r_l_x23_
- L r_u_x23_
- E c_e_ONE_VAR_CONSTANT
-COLUMNS
- x1 x13 230
- x1 c_u_x14_ 1
- x1 c_l_x15_ 3.6000000000000001
- x1 c_u_x18_ -3.6000000000000001
- x2 x13 260
- x2 c_u_x14_ 1
- x2 c_l_x16_ 24
- x2 c_u_x19_ -24
- x3 x13 150
- x3 c_u_x14_ 1
- x3 c_l_x17_ 3
- x3 c_u_x20_ -3
- x10 x13 210
- x10 c_l_x15_ 1
- x11 x13 100000
- x11 c_l_x16_ 1
- x12 x13 238
- x12 c_l_x17_ 1
- x4 x13 -150
- x4 c_l_x15_ -1
- x4 c_u_x18_ 1
- x4 r_l_x21_ 1
- x4 r_u_x21_ 1
- x5 x13 -36
- x5 c_l_x16_ -1
- x5 c_u_x19_ 1
- x5 r_l_x22_ 1
- x5 r_u_x22_ 1
- x6 x13 -170
- x6 c_l_x17_ -1
- x6 c_u_x20_ 1
- x6 r_l_x23_ 1
- x6 r_u_x23_ 1
- x7 c_l_x15_ -1
- x7 c_u_x18_ 1
- x8 x13 -10
- x8 c_l_x16_ -1
- x8 c_u_x19_ 1
- x9 c_l_x17_ -1
- x9 c_u_x20_ 1
- ONE_VAR_CONSTANT x13 0
- ONE_VAR_CONSTANT c_e_ONE_VAR_CONSTANT 1
-RHS
- RHS c_u_x14_ 500
- RHS c_l_x15_ 240
- RHS c_l_x16_ 0
- RHS c_l_x17_ 200
- RHS c_u_x18_ 0
- RHS c_u_x19_ 0
- RHS c_u_x20_ 0
- RHS r_l_x21_ 0
- RHS r_u_x21_ 100000
- RHS r_l_x22_ 0
- RHS r_u_x22_ 6000
- RHS r_l_x23_ 0
- RHS r_u_x23_ 100000
- RHS c_e_ONE_VAR_CONSTANT 1
-BOUNDS
- LO BOUND x1 0
- UP BOUND x1 500
- LO BOUND x2 0
- UP BOUND x2 500
- LO BOUND x3 0
- UP BOUND x3 500
- LO BOUND x10 0
- LO BOUND x11 0
- LO BOUND x12 0
- LO BOUND x4 0
- LO BOUND x5 0
- LO BOUND x6 0
- LO BOUND x7 0
- LO BOUND x8 0
- LO BOUND x9 0
-ENDATA
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_ignore_derived_baseline/scenario_files/farmer.mps.AverageScenario b/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_ignore_derived_baseline/scenario_files/farmer.mps.AverageScenario
deleted file mode 100644
index 173a521244c..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_ignore_derived_baseline/scenario_files/farmer.mps.AverageScenario
+++ /dev/null
@@ -1,97 +0,0 @@
-* Source: Pyomo MPS Writer
-* Format: Free MPS
-*
-NAME AverageScenario
-OBJSENSE
- MIN
-ROWS
- N x13
- L c_u_x14_
- G c_l_x15_
- G c_l_x16_
- G c_l_x17_
- L c_u_x18_
- L c_u_x19_
- L c_u_x20_
- G r_l_x21_
- L r_u_x21_
- G r_l_x22_
- L r_u_x22_
- G r_l_x23_
- L r_u_x23_
- E c_e_ONE_VAR_CONSTANT
-COLUMNS
- x1 x13 230
- x1 c_u_x14_ 1
- x1 c_l_x15_ 3
- x1 c_u_x18_ -3
- x2 x13 260
- x2 c_u_x14_ 1
- x2 c_l_x16_ 20
- x2 c_u_x19_ -20
- x3 x13 150
- x3 c_u_x14_ 1
- x3 c_l_x17_ 2.5
- x3 c_u_x20_ -2.5
- x10 x13 210
- x10 c_l_x15_ 1
- x11 x13 100000
- x11 c_l_x16_ 1
- x12 x13 238
- x12 c_l_x17_ 1
- x4 x13 -150
- x4 c_l_x15_ -1
- x4 c_u_x18_ 1
- x4 r_l_x21_ 1
- x4 r_u_x21_ 1
- x5 x13 -36
- x5 c_l_x16_ -1
- x5 c_u_x19_ 1
- x5 r_l_x22_ 1
- x5 r_u_x22_ 1
- x6 x13 -170
- x6 c_l_x17_ -1
- x6 c_u_x20_ 1
- x6 r_l_x23_ 1
- x6 r_u_x23_ 1
- x7 c_l_x15_ -1
- x7 c_u_x18_ 1
- x8 x13 -10
- x8 c_l_x16_ -1
- x8 c_u_x19_ 1
- x9 c_l_x17_ -1
- x9 c_u_x20_ 1
- ONE_VAR_CONSTANT x13 0
- ONE_VAR_CONSTANT c_e_ONE_VAR_CONSTANT 1
-RHS
- RHS c_u_x14_ 500
- RHS c_l_x15_ 240
- RHS c_l_x16_ 0
- RHS c_l_x17_ 200
- RHS c_u_x18_ 0
- RHS c_u_x19_ 0
- RHS c_u_x20_ 0
- RHS r_l_x21_ 0
- RHS r_u_x21_ 100000
- RHS r_l_x22_ 0
- RHS r_u_x22_ 6000
- RHS r_l_x23_ 0
- RHS r_u_x23_ 100000
- RHS c_e_ONE_VAR_CONSTANT 1
-BOUNDS
- LO BOUND x1 0
- UP BOUND x1 500
- LO BOUND x2 0
- UP BOUND x2 500
- LO BOUND x3 0
- UP BOUND x3 500
- LO BOUND x10 0
- LO BOUND x11 0
- LO BOUND x12 0
- LO BOUND x4 0
- LO BOUND x5 0
- LO BOUND x6 0
- LO BOUND x7 0
- LO BOUND x8 0
- LO BOUND x9 0
-ENDATA
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_ignore_derived_baseline/scenario_files/farmer.mps.BelowAverageScenario b/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_ignore_derived_baseline/scenario_files/farmer.mps.BelowAverageScenario
deleted file mode 100644
index e3139b5f5cf..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_ignore_derived_baseline/scenario_files/farmer.mps.BelowAverageScenario
+++ /dev/null
@@ -1,97 +0,0 @@
-* Source: Pyomo MPS Writer
-* Format: Free MPS
-*
-NAME BelowAverageScenario
-OBJSENSE
- MIN
-ROWS
- N x13
- L c_u_x14_
- G c_l_x15_
- G c_l_x16_
- G c_l_x17_
- L c_u_x18_
- L c_u_x19_
- L c_u_x20_
- G r_l_x21_
- L r_u_x21_
- G r_l_x22_
- L r_u_x22_
- G r_l_x23_
- L r_u_x23_
- E c_e_ONE_VAR_CONSTANT
-COLUMNS
- x1 x13 230
- x1 c_u_x14_ 1
- x1 c_l_x15_ 2.3999999999999999
- x1 c_u_x18_ -2.3999999999999999
- x2 x13 260
- x2 c_u_x14_ 1
- x2 c_l_x16_ 16
- x2 c_u_x19_ -16
- x3 x13 150
- x3 c_u_x14_ 1
- x3 c_l_x17_ 2
- x3 c_u_x20_ -2
- x10 x13 210
- x10 c_l_x15_ 1
- x11 x13 100000
- x11 c_l_x16_ 1
- x12 x13 238
- x12 c_l_x17_ 1
- x4 x13 -150
- x4 c_l_x15_ -1
- x4 c_u_x18_ 1
- x4 r_l_x21_ 1
- x4 r_u_x21_ 1
- x5 x13 -36
- x5 c_l_x16_ -1
- x5 c_u_x19_ 1
- x5 r_l_x22_ 1
- x5 r_u_x22_ 1
- x6 x13 -170
- x6 c_l_x17_ -1
- x6 c_u_x20_ 1
- x6 r_l_x23_ 1
- x6 r_u_x23_ 1
- x7 c_l_x15_ -1
- x7 c_u_x18_ 1
- x8 x13 -10
- x8 c_l_x16_ -1
- x8 c_u_x19_ 1
- x9 c_l_x17_ -1
- x9 c_u_x20_ 1
- ONE_VAR_CONSTANT x13 0
- ONE_VAR_CONSTANT c_e_ONE_VAR_CONSTANT 1
-RHS
- RHS c_u_x14_ 500
- RHS c_l_x15_ 240
- RHS c_l_x16_ 0
- RHS c_l_x17_ 200
- RHS c_u_x18_ 0
- RHS c_u_x19_ 0
- RHS c_u_x20_ 0
- RHS r_l_x21_ 0
- RHS r_u_x21_ 100000
- RHS r_l_x22_ 0
- RHS r_u_x22_ 6000
- RHS r_l_x23_ 0
- RHS r_u_x23_ 100000
- RHS c_e_ONE_VAR_CONSTANT 1
-BOUNDS
- LO BOUND x1 0
- UP BOUND x1 500
- LO BOUND x2 0
- UP BOUND x2 500
- LO BOUND x3 0
- UP BOUND x3 500
- LO BOUND x10 0
- LO BOUND x11 0
- LO BOUND x12 0
- LO BOUND x4 0
- LO BOUND x5 0
- LO BOUND x6 0
- LO BOUND x7 0
- LO BOUND x8 0
- LO BOUND x9 0
-ENDATA
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_ignore_derived_baseline/scenario_files/farmer.mps.det.AboveAverageScenario b/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_ignore_derived_baseline/scenario_files/farmer.mps.det.AboveAverageScenario
deleted file mode 100644
index 4b6b05a5f30..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_ignore_derived_baseline/scenario_files/farmer.mps.det.AboveAverageScenario
+++ /dev/null
@@ -1,97 +0,0 @@
-* Source: Pyomo MPS Writer
-* Format: Free MPS
-*
-NAME ZeroStochasticData
-OBJSENSE
- MIN
-ROWS
- N x13
- L c_u_x14_
- G c_l_x15_
- G c_l_x16_
- G c_l_x17_
- L c_u_x18_
- L c_u_x19_
- L c_u_x20_
- G r_l_x21_
- L r_u_x21_
- G r_l_x22_
- L r_u_x22_
- G r_l_x23_
- L r_u_x23_
- E c_e_ONE_VAR_CONSTANT
-COLUMNS
- x1 x13 230
- x1 c_u_x14_ 1
- x1 c_l_x15_ -9876543210
- x1 c_u_x18_ -9876543210
- x2 x13 260
- x2 c_u_x14_ 1
- x2 c_l_x16_ -9876543210
- x2 c_u_x19_ -9876543210
- x3 x13 150
- x3 c_u_x14_ 1
- x3 c_l_x17_ -9876543210
- x3 c_u_x20_ -9876543210
- x10 x13 210
- x10 c_l_x15_ 1
- x11 x13 100000
- x11 c_l_x16_ 1
- x12 x13 238
- x12 c_l_x17_ 1
- x4 x13 -150
- x4 c_l_x15_ -1
- x4 c_u_x18_ 1
- x4 r_l_x21_ 1
- x4 r_u_x21_ 1
- x5 x13 -36
- x5 c_l_x16_ -1
- x5 c_u_x19_ 1
- x5 r_l_x22_ 1
- x5 r_u_x22_ 1
- x6 x13 -170
- x6 c_l_x17_ -1
- x6 c_u_x20_ 1
- x6 r_l_x23_ 1
- x6 r_u_x23_ 1
- x7 c_l_x15_ -1
- x7 c_u_x18_ 1
- x8 x13 -10
- x8 c_l_x16_ -1
- x8 c_u_x19_ 1
- x9 c_l_x17_ -1
- x9 c_u_x20_ 1
- ONE_VAR_CONSTANT x13 0
- ONE_VAR_CONSTANT c_e_ONE_VAR_CONSTANT 1
-RHS
- RHS c_u_x14_ 500
- RHS c_l_x15_ 240
- RHS c_l_x16_ 0
- RHS c_l_x17_ 200
- RHS c_u_x18_ 0
- RHS c_u_x19_ 0
- RHS c_u_x20_ 0
- RHS r_l_x21_ 0
- RHS r_u_x21_ 100000
- RHS r_l_x22_ 0
- RHS r_u_x22_ 6000
- RHS r_l_x23_ 0
- RHS r_u_x23_ 100000
- RHS c_e_ONE_VAR_CONSTANT 1
-BOUNDS
- LO BOUND x1 0
- UP BOUND x1 500
- LO BOUND x2 0
- UP BOUND x2 500
- LO BOUND x3 0
- UP BOUND x3 500
- LO BOUND x10 0
- LO BOUND x11 0
- LO BOUND x12 0
- LO BOUND x4 0
- LO BOUND x5 0
- LO BOUND x6 0
- LO BOUND x7 0
- LO BOUND x8 0
- LO BOUND x9 0
-ENDATA
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_ignore_derived_baseline/scenario_files/farmer.mps.det.AverageScenario b/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_ignore_derived_baseline/scenario_files/farmer.mps.det.AverageScenario
deleted file mode 100644
index 4b6b05a5f30..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_ignore_derived_baseline/scenario_files/farmer.mps.det.AverageScenario
+++ /dev/null
@@ -1,97 +0,0 @@
-* Source: Pyomo MPS Writer
-* Format: Free MPS
-*
-NAME ZeroStochasticData
-OBJSENSE
- MIN
-ROWS
- N x13
- L c_u_x14_
- G c_l_x15_
- G c_l_x16_
- G c_l_x17_
- L c_u_x18_
- L c_u_x19_
- L c_u_x20_
- G r_l_x21_
- L r_u_x21_
- G r_l_x22_
- L r_u_x22_
- G r_l_x23_
- L r_u_x23_
- E c_e_ONE_VAR_CONSTANT
-COLUMNS
- x1 x13 230
- x1 c_u_x14_ 1
- x1 c_l_x15_ -9876543210
- x1 c_u_x18_ -9876543210
- x2 x13 260
- x2 c_u_x14_ 1
- x2 c_l_x16_ -9876543210
- x2 c_u_x19_ -9876543210
- x3 x13 150
- x3 c_u_x14_ 1
- x3 c_l_x17_ -9876543210
- x3 c_u_x20_ -9876543210
- x10 x13 210
- x10 c_l_x15_ 1
- x11 x13 100000
- x11 c_l_x16_ 1
- x12 x13 238
- x12 c_l_x17_ 1
- x4 x13 -150
- x4 c_l_x15_ -1
- x4 c_u_x18_ 1
- x4 r_l_x21_ 1
- x4 r_u_x21_ 1
- x5 x13 -36
- x5 c_l_x16_ -1
- x5 c_u_x19_ 1
- x5 r_l_x22_ 1
- x5 r_u_x22_ 1
- x6 x13 -170
- x6 c_l_x17_ -1
- x6 c_u_x20_ 1
- x6 r_l_x23_ 1
- x6 r_u_x23_ 1
- x7 c_l_x15_ -1
- x7 c_u_x18_ 1
- x8 x13 -10
- x8 c_l_x16_ -1
- x8 c_u_x19_ 1
- x9 c_l_x17_ -1
- x9 c_u_x20_ 1
- ONE_VAR_CONSTANT x13 0
- ONE_VAR_CONSTANT c_e_ONE_VAR_CONSTANT 1
-RHS
- RHS c_u_x14_ 500
- RHS c_l_x15_ 240
- RHS c_l_x16_ 0
- RHS c_l_x17_ 200
- RHS c_u_x18_ 0
- RHS c_u_x19_ 0
- RHS c_u_x20_ 0
- RHS r_l_x21_ 0
- RHS r_u_x21_ 100000
- RHS r_l_x22_ 0
- RHS r_u_x22_ 6000
- RHS r_l_x23_ 0
- RHS r_u_x23_ 100000
- RHS c_e_ONE_VAR_CONSTANT 1
-BOUNDS
- LO BOUND x1 0
- UP BOUND x1 500
- LO BOUND x2 0
- UP BOUND x2 500
- LO BOUND x3 0
- UP BOUND x3 500
- LO BOUND x10 0
- LO BOUND x11 0
- LO BOUND x12 0
- LO BOUND x4 0
- LO BOUND x5 0
- LO BOUND x6 0
- LO BOUND x7 0
- LO BOUND x8 0
- LO BOUND x9 0
-ENDATA
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_ignore_derived_baseline/scenario_files/farmer.mps.det.BelowAverageScenario b/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_ignore_derived_baseline/scenario_files/farmer.mps.det.BelowAverageScenario
deleted file mode 100644
index 4b6b05a5f30..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_ignore_derived_baseline/scenario_files/farmer.mps.det.BelowAverageScenario
+++ /dev/null
@@ -1,97 +0,0 @@
-* Source: Pyomo MPS Writer
-* Format: Free MPS
-*
-NAME ZeroStochasticData
-OBJSENSE
- MIN
-ROWS
- N x13
- L c_u_x14_
- G c_l_x15_
- G c_l_x16_
- G c_l_x17_
- L c_u_x18_
- L c_u_x19_
- L c_u_x20_
- G r_l_x21_
- L r_u_x21_
- G r_l_x22_
- L r_u_x22_
- G r_l_x23_
- L r_u_x23_
- E c_e_ONE_VAR_CONSTANT
-COLUMNS
- x1 x13 230
- x1 c_u_x14_ 1
- x1 c_l_x15_ -9876543210
- x1 c_u_x18_ -9876543210
- x2 x13 260
- x2 c_u_x14_ 1
- x2 c_l_x16_ -9876543210
- x2 c_u_x19_ -9876543210
- x3 x13 150
- x3 c_u_x14_ 1
- x3 c_l_x17_ -9876543210
- x3 c_u_x20_ -9876543210
- x10 x13 210
- x10 c_l_x15_ 1
- x11 x13 100000
- x11 c_l_x16_ 1
- x12 x13 238
- x12 c_l_x17_ 1
- x4 x13 -150
- x4 c_l_x15_ -1
- x4 c_u_x18_ 1
- x4 r_l_x21_ 1
- x4 r_u_x21_ 1
- x5 x13 -36
- x5 c_l_x16_ -1
- x5 c_u_x19_ 1
- x5 r_l_x22_ 1
- x5 r_u_x22_ 1
- x6 x13 -170
- x6 c_l_x17_ -1
- x6 c_u_x20_ 1
- x6 r_l_x23_ 1
- x6 r_u_x23_ 1
- x7 c_l_x15_ -1
- x7 c_u_x18_ 1
- x8 x13 -10
- x8 c_l_x16_ -1
- x8 c_u_x19_ 1
- x9 c_l_x17_ -1
- x9 c_u_x20_ 1
- ONE_VAR_CONSTANT x13 0
- ONE_VAR_CONSTANT c_e_ONE_VAR_CONSTANT 1
-RHS
- RHS c_u_x14_ 500
- RHS c_l_x15_ 240
- RHS c_l_x16_ 0
- RHS c_l_x17_ 200
- RHS c_u_x18_ 0
- RHS c_u_x19_ 0
- RHS c_u_x20_ 0
- RHS r_l_x21_ 0
- RHS r_u_x21_ 100000
- RHS r_l_x22_ 0
- RHS r_u_x22_ 6000
- RHS r_l_x23_ 0
- RHS r_u_x23_ 100000
- RHS c_e_ONE_VAR_CONSTANT 1
-BOUNDS
- LO BOUND x1 0
- UP BOUND x1 500
- LO BOUND x2 0
- UP BOUND x2 500
- LO BOUND x3 0
- UP BOUND x3 500
- LO BOUND x10 0
- LO BOUND x11 0
- LO BOUND x12 0
- LO BOUND x4 0
- LO BOUND x5 0
- LO BOUND x6 0
- LO BOUND x7 0
- LO BOUND x8 0
- LO BOUND x9 0
-ENDATA
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_ignore_derived_baseline/scenario_files/farmer.mps.symbols.AboveAverageScenario b/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_ignore_derived_baseline/scenario_files/farmer.mps.symbols.AboveAverageScenario
deleted file mode 100644
index 6950b396127..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_ignore_derived_baseline/scenario_files/farmer.mps.symbols.AboveAverageScenario
+++ /dev/null
@@ -1,3 +0,0 @@
-x1 DevotedAcreage:$CORN
-x2 DevotedAcreage:$SUGAR_BEETS
-x3 DevotedAcreage:$WHEAT
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_ignore_derived_baseline/scenario_files/farmer.mps.symbols.AverageScenario b/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_ignore_derived_baseline/scenario_files/farmer.mps.symbols.AverageScenario
deleted file mode 100644
index 6950b396127..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_ignore_derived_baseline/scenario_files/farmer.mps.symbols.AverageScenario
+++ /dev/null
@@ -1,3 +0,0 @@
-x1 DevotedAcreage:$CORN
-x2 DevotedAcreage:$SUGAR_BEETS
-x3 DevotedAcreage:$WHEAT
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_ignore_derived_baseline/scenario_files/farmer.mps.symbols.BelowAverageScenario b/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_ignore_derived_baseline/scenario_files/farmer.mps.symbols.BelowAverageScenario
deleted file mode 100644
index 6950b396127..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_ignore_derived_baseline/scenario_files/farmer.mps.symbols.BelowAverageScenario
+++ /dev/null
@@ -1,3 +0,0 @@
-x1 DevotedAcreage:$CORN
-x2 DevotedAcreage:$SUGAR_BEETS
-x3 DevotedAcreage:$WHEAT
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_ignore_derived_baseline/scenario_files/farmer.row.AboveAverageScenario b/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_ignore_derived_baseline/scenario_files/farmer.row.AboveAverageScenario
deleted file mode 100644
index b0d1db6bcfb..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_ignore_derived_baseline/scenario_files/farmer.row.AboveAverageScenario
+++ /dev/null
@@ -1,15 +0,0 @@
-x13
-c_u_x14_
-c_l_x15_
-c_l_x16_
-c_l_x17_
-c_u_x18_
-c_u_x19_
-c_u_x20_
-r_l_x21_
-r_u_x21_
-r_l_x22_
-r_u_x22_
-r_l_x23_
-r_u_x23_
-c_e_ONE_VAR_CONSTANT
\ No newline at end of file
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_ignore_derived_baseline/scenario_files/farmer.row.AverageScenario b/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_ignore_derived_baseline/scenario_files/farmer.row.AverageScenario
deleted file mode 100644
index b0d1db6bcfb..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_ignore_derived_baseline/scenario_files/farmer.row.AverageScenario
+++ /dev/null
@@ -1,15 +0,0 @@
-x13
-c_u_x14_
-c_l_x15_
-c_l_x16_
-c_l_x17_
-c_u_x18_
-c_u_x19_
-c_u_x20_
-r_l_x21_
-r_u_x21_
-r_l_x22_
-r_u_x22_
-r_l_x23_
-r_u_x23_
-c_e_ONE_VAR_CONSTANT
\ No newline at end of file
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_ignore_derived_baseline/scenario_files/farmer.row.BelowAverageScenario b/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_ignore_derived_baseline/scenario_files/farmer.row.BelowAverageScenario
deleted file mode 100644
index b0d1db6bcfb..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_ignore_derived_baseline/scenario_files/farmer.row.BelowAverageScenario
+++ /dev/null
@@ -1,15 +0,0 @@
-x13
-c_u_x14_
-c_l_x15_
-c_l_x16_
-c_l_x17_
-c_u_x18_
-c_u_x19_
-c_u_x20_
-r_l_x21_
-r_u_x21_
-r_l_x22_
-r_u_x22_
-r_l_x23_
-r_u_x23_
-c_e_ONE_VAR_CONSTANT
\ No newline at end of file
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_ignore_derived_baseline/scenario_files/farmer.setup.mps.AboveAverageScenario b/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_ignore_derived_baseline/scenario_files/farmer.setup.mps.AboveAverageScenario
deleted file mode 100644
index eb7f4c1d4b4..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_ignore_derived_baseline/scenario_files/farmer.setup.mps.AboveAverageScenario
+++ /dev/null
@@ -1,93 +0,0 @@
-* Source: Pyomo MPS Writer
-* Format: Free MPS
-*
-NAME AboveAverageScenario
-OBJSENSE
- MIN
-ROWS
- N x13
- L c_u_x14_
- G r_l_x15_
- L r_u_x15_
- G r_l_x16_
- L r_u_x16_
- G r_l_x17_
- L r_u_x17_
- G c_l_x18_
- G c_l_x19_
- G c_l_x20_
- L c_u_x21_
- L c_u_x22_
- L c_u_x23_
-COLUMNS
- x1 x13 230
- x1 c_u_x14_ 1
- x1 c_l_x18_ 3.6000000000000001
- x1 c_u_x21_ -3.6000000000000001
- x2 x13 260
- x2 c_u_x14_ 1
- x2 c_l_x19_ 24
- x2 c_u_x22_ -24
- x3 x13 150
- x3 c_u_x14_ 1
- x3 c_l_x20_ 3
- x3 c_u_x23_ -3
- x4 x13 -150
- x4 r_l_x15_ 1
- x4 r_u_x15_ 1
- x4 c_l_x18_ -1
- x4 c_u_x21_ 1
- x5 x13 -36
- x5 r_l_x16_ 1
- x5 r_u_x16_ 1
- x5 c_l_x19_ -1
- x5 c_u_x22_ 1
- x6 x13 -170
- x6 r_l_x17_ 1
- x6 r_u_x17_ 1
- x6 c_l_x20_ -1
- x6 c_u_x23_ 1
- x7 c_l_x18_ -1
- x7 c_u_x21_ 1
- x8 x13 -10
- x8 c_l_x19_ -1
- x8 c_u_x22_ 1
- x9 c_l_x20_ -1
- x9 c_u_x23_ 1
- x10 x13 210
- x10 c_l_x18_ 1
- x11 x13 100000
- x11 c_l_x19_ 1
- x12 x13 238
- x12 c_l_x20_ 1
-RHS
- RHS c_u_x14_ 500
- RHS r_l_x15_ 0
- RHS r_u_x15_ 100000
- RHS r_l_x16_ 0
- RHS r_u_x16_ 6000
- RHS r_l_x17_ 0
- RHS r_u_x17_ 100000
- RHS c_l_x18_ 240
- RHS c_l_x19_ 0
- RHS c_l_x20_ 200
- RHS c_u_x21_ 0
- RHS c_u_x22_ 0
- RHS c_u_x23_ 0
-BOUNDS
- LO BOUND x1 0
- UP BOUND x1 500
- LO BOUND x2 0
- UP BOUND x2 500
- LO BOUND x3 0
- UP BOUND x3 500
- LO BOUND x4 0
- LO BOUND x5 0
- LO BOUND x6 0
- LO BOUND x7 0
- LO BOUND x8 0
- LO BOUND x9 0
- LO BOUND x10 0
- LO BOUND x11 0
- LO BOUND x12 0
-ENDATA
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_ignore_derived_baseline/scenario_files/farmer.setup.mps.AverageScenario b/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_ignore_derived_baseline/scenario_files/farmer.setup.mps.AverageScenario
deleted file mode 100644
index 0b51eeb3dd0..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_ignore_derived_baseline/scenario_files/farmer.setup.mps.AverageScenario
+++ /dev/null
@@ -1,93 +0,0 @@
-* Source: Pyomo MPS Writer
-* Format: Free MPS
-*
-NAME AverageScenario
-OBJSENSE
- MIN
-ROWS
- N x13
- L c_u_x14_
- G r_l_x15_
- L r_u_x15_
- G r_l_x16_
- L r_u_x16_
- G r_l_x17_
- L r_u_x17_
- G c_l_x18_
- G c_l_x19_
- G c_l_x20_
- L c_u_x21_
- L c_u_x22_
- L c_u_x23_
-COLUMNS
- x1 x13 230
- x1 c_u_x14_ 1
- x1 c_l_x18_ 3
- x1 c_u_x21_ -3
- x2 x13 260
- x2 c_u_x14_ 1
- x2 c_l_x19_ 20
- x2 c_u_x22_ -20
- x3 x13 150
- x3 c_u_x14_ 1
- x3 c_l_x20_ 2.5
- x3 c_u_x23_ -2.5
- x4 x13 -150
- x4 r_l_x15_ 1
- x4 r_u_x15_ 1
- x4 c_l_x18_ -1
- x4 c_u_x21_ 1
- x5 x13 -36
- x5 r_l_x16_ 1
- x5 r_u_x16_ 1
- x5 c_l_x19_ -1
- x5 c_u_x22_ 1
- x6 x13 -170
- x6 r_l_x17_ 1
- x6 r_u_x17_ 1
- x6 c_l_x20_ -1
- x6 c_u_x23_ 1
- x7 c_l_x18_ -1
- x7 c_u_x21_ 1
- x8 x13 -10
- x8 c_l_x19_ -1
- x8 c_u_x22_ 1
- x9 c_l_x20_ -1
- x9 c_u_x23_ 1
- x10 x13 210
- x10 c_l_x18_ 1
- x11 x13 100000
- x11 c_l_x19_ 1
- x12 x13 238
- x12 c_l_x20_ 1
-RHS
- RHS c_u_x14_ 500
- RHS r_l_x15_ 0
- RHS r_u_x15_ 100000
- RHS r_l_x16_ 0
- RHS r_u_x16_ 6000
- RHS r_l_x17_ 0
- RHS r_u_x17_ 100000
- RHS c_l_x18_ 240
- RHS c_l_x19_ 0
- RHS c_l_x20_ 200
- RHS c_u_x21_ 0
- RHS c_u_x22_ 0
- RHS c_u_x23_ 0
-BOUNDS
- LO BOUND x1 0
- UP BOUND x1 500
- LO BOUND x2 0
- UP BOUND x2 500
- LO BOUND x3 0
- UP BOUND x3 500
- LO BOUND x4 0
- LO BOUND x5 0
- LO BOUND x6 0
- LO BOUND x7 0
- LO BOUND x8 0
- LO BOUND x9 0
- LO BOUND x10 0
- LO BOUND x11 0
- LO BOUND x12 0
-ENDATA
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_ignore_derived_baseline/scenario_files/farmer.setup.mps.BelowAverageScenario b/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_ignore_derived_baseline/scenario_files/farmer.setup.mps.BelowAverageScenario
deleted file mode 100644
index 93cba4e098e..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_ignore_derived_baseline/scenario_files/farmer.setup.mps.BelowAverageScenario
+++ /dev/null
@@ -1,93 +0,0 @@
-* Source: Pyomo MPS Writer
-* Format: Free MPS
-*
-NAME BelowAverageScenario
-OBJSENSE
- MIN
-ROWS
- N x13
- L c_u_x14_
- G r_l_x15_
- L r_u_x15_
- G r_l_x16_
- L r_u_x16_
- G r_l_x17_
- L r_u_x17_
- G c_l_x18_
- G c_l_x19_
- G c_l_x20_
- L c_u_x21_
- L c_u_x22_
- L c_u_x23_
-COLUMNS
- x1 x13 230
- x1 c_u_x14_ 1
- x1 c_l_x18_ 2.3999999999999999
- x1 c_u_x21_ -2.3999999999999999
- x2 x13 260
- x2 c_u_x14_ 1
- x2 c_l_x19_ 16
- x2 c_u_x22_ -16
- x3 x13 150
- x3 c_u_x14_ 1
- x3 c_l_x20_ 2
- x3 c_u_x23_ -2
- x4 x13 -150
- x4 r_l_x15_ 1
- x4 r_u_x15_ 1
- x4 c_l_x18_ -1
- x4 c_u_x21_ 1
- x5 x13 -36
- x5 r_l_x16_ 1
- x5 r_u_x16_ 1
- x5 c_l_x19_ -1
- x5 c_u_x22_ 1
- x6 x13 -170
- x6 r_l_x17_ 1
- x6 r_u_x17_ 1
- x6 c_l_x20_ -1
- x6 c_u_x23_ 1
- x7 c_l_x18_ -1
- x7 c_u_x21_ 1
- x8 x13 -10
- x8 c_l_x19_ -1
- x8 c_u_x22_ 1
- x9 c_l_x20_ -1
- x9 c_u_x23_ 1
- x10 x13 210
- x10 c_l_x18_ 1
- x11 x13 100000
- x11 c_l_x19_ 1
- x12 x13 238
- x12 c_l_x20_ 1
-RHS
- RHS c_u_x14_ 500
- RHS r_l_x15_ 0
- RHS r_u_x15_ 100000
- RHS r_l_x16_ 0
- RHS r_u_x16_ 6000
- RHS r_l_x17_ 0
- RHS r_u_x17_ 100000
- RHS c_l_x18_ 240
- RHS c_l_x19_ 0
- RHS c_l_x20_ 200
- RHS c_u_x21_ 0
- RHS c_u_x22_ 0
- RHS c_u_x23_ 0
-BOUNDS
- LO BOUND x1 0
- UP BOUND x1 500
- LO BOUND x2 0
- UP BOUND x2 500
- LO BOUND x3 0
- UP BOUND x3 500
- LO BOUND x4 0
- LO BOUND x5 0
- LO BOUND x6 0
- LO BOUND x7 0
- LO BOUND x8 0
- LO BOUND x9 0
- LO BOUND x10 0
- LO BOUND x11 0
- LO BOUND x12 0
-ENDATA
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_ignore_derived_baseline/scenario_files/farmer.sto.AboveAverageScenario b/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_ignore_derived_baseline/scenario_files/farmer.sto.AboveAverageScenario
deleted file mode 100644
index a5da65fc4f0..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_ignore_derived_baseline/scenario_files/farmer.sto.AboveAverageScenario
+++ /dev/null
@@ -1,7 +0,0 @@
- BL BLOCK1 PERIOD2 0.33333332999999998
- x1 c_l_x15_ 3.6000000000000001
- x2 c_l_x16_ 24
- x3 c_l_x17_ 3
- x1 c_u_x18_ -3.6000000000000001
- x2 c_u_x19_ -24
- x3 c_u_x20_ -3
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_ignore_derived_baseline/scenario_files/farmer.sto.AverageScenario b/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_ignore_derived_baseline/scenario_files/farmer.sto.AverageScenario
deleted file mode 100644
index 28661ca96b2..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_ignore_derived_baseline/scenario_files/farmer.sto.AverageScenario
+++ /dev/null
@@ -1,7 +0,0 @@
- BL BLOCK1 PERIOD2 0.33333333999999998
- x1 c_l_x15_ 3
- x2 c_l_x16_ 20
- x3 c_l_x17_ 2.5
- x1 c_u_x18_ -3
- x2 c_u_x19_ -20
- x3 c_u_x20_ -2.5
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_ignore_derived_baseline/scenario_files/farmer.sto.BelowAverageScenario b/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_ignore_derived_baseline/scenario_files/farmer.sto.BelowAverageScenario
deleted file mode 100644
index 05c2eb7d5d3..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_ignore_derived_baseline/scenario_files/farmer.sto.BelowAverageScenario
+++ /dev/null
@@ -1,7 +0,0 @@
- BL BLOCK1 PERIOD2 0.33333332999999998
- x1 c_l_x15_ 2.3999999999999999
- x2 c_l_x16_ 16
- x3 c_l_x17_ 2
- x1 c_u_x18_ -2.3999999999999999
- x2 c_u_x19_ -16
- x3 c_u_x20_ -2
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_ignore_derived_baseline/scenario_files/farmer.sto.struct.AboveAverageScenario b/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_ignore_derived_baseline/scenario_files/farmer.sto.struct.AboveAverageScenario
deleted file mode 100644
index 9f5db81cafe..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_ignore_derived_baseline/scenario_files/farmer.sto.struct.AboveAverageScenario
+++ /dev/null
@@ -1,6 +0,0 @@
-x1 c_l_x15_
-x2 c_l_x16_
-x3 c_l_x17_
-x1 c_u_x18_
-x2 c_u_x19_
-x3 c_u_x20_
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_ignore_derived_baseline/scenario_files/farmer.sto.struct.AverageScenario b/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_ignore_derived_baseline/scenario_files/farmer.sto.struct.AverageScenario
deleted file mode 100644
index 9f5db81cafe..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_ignore_derived_baseline/scenario_files/farmer.sto.struct.AverageScenario
+++ /dev/null
@@ -1,6 +0,0 @@
-x1 c_l_x15_
-x2 c_l_x16_
-x3 c_l_x17_
-x1 c_u_x18_
-x2 c_u_x19_
-x3 c_u_x20_
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_ignore_derived_baseline/scenario_files/farmer.sto.struct.BelowAverageScenario b/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_ignore_derived_baseline/scenario_files/farmer.sto.struct.BelowAverageScenario
deleted file mode 100644
index 9f5db81cafe..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_ignore_derived_baseline/scenario_files/farmer.sto.struct.BelowAverageScenario
+++ /dev/null
@@ -1,6 +0,0 @@
-x1 c_l_x15_
-x2 c_l_x16_
-x3 c_l_x17_
-x1 c_u_x18_
-x2 c_u_x19_
-x3 c_u_x20_
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_ignore_derived_baseline/scenario_files/farmer.tim.AboveAverageScenario b/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_ignore_derived_baseline/scenario_files/farmer.tim.AboveAverageScenario
deleted file mode 100644
index 596068a53d4..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_ignore_derived_baseline/scenario_files/farmer.tim.AboveAverageScenario
+++ /dev/null
@@ -1,5 +0,0 @@
-TIME farmer
-PERIODS IMPLICIT
- x1 x13 TIME1
- x10 c_l_x15_ TIME2
-ENDATA
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_ignore_derived_baseline/scenario_files/farmer.tim.AverageScenario b/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_ignore_derived_baseline/scenario_files/farmer.tim.AverageScenario
deleted file mode 100644
index 596068a53d4..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_ignore_derived_baseline/scenario_files/farmer.tim.AverageScenario
+++ /dev/null
@@ -1,5 +0,0 @@
-TIME farmer
-PERIODS IMPLICIT
- x1 x13 TIME1
- x10 c_l_x15_ TIME2
-ENDATA
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_ignore_derived_baseline/scenario_files/farmer.tim.BelowAverageScenario b/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_ignore_derived_baseline/scenario_files/farmer.tim.BelowAverageScenario
deleted file mode 100644
index 596068a53d4..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_ignore_derived_baseline/scenario_files/farmer.tim.BelowAverageScenario
+++ /dev/null
@@ -1,5 +0,0 @@
-TIME farmer
-PERIODS IMPLICIT
- x1 x13 TIME1
- x10 c_l_x15_ TIME2
-ENDATA
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_symbolic_names_baseline/farmer.col b/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_symbolic_names_baseline/farmer.col
deleted file mode 100644
index 3493097936d..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_symbolic_names_baseline/farmer.col
+++ /dev/null
@@ -1,13 +0,0 @@
-DevotedAcreage(CORN)
-DevotedAcreage(SUGAR_BEETS)
-DevotedAcreage(WHEAT)
-QuantityPurchased(CORN)
-QuantityPurchased(SUGAR_BEETS)
-QuantityPurchased(WHEAT)
-QuantitySubQuotaSold(CORN)
-QuantitySubQuotaSold(SUGAR_BEETS)
-QuantitySubQuotaSold(WHEAT)
-QuantitySuperQuotaSold(CORN)
-QuantitySuperQuotaSold(SUGAR_BEETS)
-QuantitySuperQuotaSold(WHEAT)
-ONE_VAR_CONSTANT
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_symbolic_names_baseline/farmer.cor b/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_symbolic_names_baseline/farmer.cor
deleted file mode 100644
index c4a24680786..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_symbolic_names_baseline/farmer.cor
+++ /dev/null
@@ -1,97 +0,0 @@
-* Source: Pyomo MPS Writer
-* Format: Free MPS
-*
-NAME BelowAverageScenario
-OBJSENSE
- MIN
-ROWS
- N Total_Cost_Objective
- L c_u_ConstrainTotalAcreage_
- G c_l_EnforceCattleFeedRequirement(CORN)_
- G c_l_EnforceCattleFeedRequirement(SUGAR_BEETS)_
- G c_l_EnforceCattleFeedRequirement(WHEAT)_
- L c_u_LimitAmountSold(CORN)_
- L c_u_LimitAmountSold(SUGAR_BEETS)_
- L c_u_LimitAmountSold(WHEAT)_
- G r_l_EnforceQuotas(CORN)_
- L r_u_EnforceQuotas(CORN)_
- G r_l_EnforceQuotas(SUGAR_BEETS)_
- L r_u_EnforceQuotas(SUGAR_BEETS)_
- G r_l_EnforceQuotas(WHEAT)_
- L r_u_EnforceQuotas(WHEAT)_
- E c_e_ONE_VAR_CONSTANT
-COLUMNS
- DevotedAcreage(CORN) Total_Cost_Objective 230
- DevotedAcreage(CORN) c_u_ConstrainTotalAcreage_ 1
- DevotedAcreage(CORN) c_l_EnforceCattleFeedRequirement(CORN)_ 2.3999999999999999
- DevotedAcreage(CORN) c_u_LimitAmountSold(CORN)_ -2.3999999999999999
- DevotedAcreage(SUGAR_BEETS) Total_Cost_Objective 260
- DevotedAcreage(SUGAR_BEETS) c_u_ConstrainTotalAcreage_ 1
- DevotedAcreage(SUGAR_BEETS) c_l_EnforceCattleFeedRequirement(SUGAR_BEETS)_ 16
- DevotedAcreage(SUGAR_BEETS) c_u_LimitAmountSold(SUGAR_BEETS)_ -16
- DevotedAcreage(WHEAT) Total_Cost_Objective 150
- DevotedAcreage(WHEAT) c_u_ConstrainTotalAcreage_ 1
- DevotedAcreage(WHEAT) c_l_EnforceCattleFeedRequirement(WHEAT)_ 2
- DevotedAcreage(WHEAT) c_u_LimitAmountSold(WHEAT)_ -2
- QuantityPurchased(CORN) Total_Cost_Objective 210
- QuantityPurchased(CORN) c_l_EnforceCattleFeedRequirement(CORN)_ 1
- QuantityPurchased(SUGAR_BEETS) Total_Cost_Objective 100000
- QuantityPurchased(SUGAR_BEETS) c_l_EnforceCattleFeedRequirement(SUGAR_BEETS)_ 1
- QuantityPurchased(WHEAT) Total_Cost_Objective 238
- QuantityPurchased(WHEAT) c_l_EnforceCattleFeedRequirement(WHEAT)_ 1
- QuantitySubQuotaSold(CORN) Total_Cost_Objective -150
- QuantitySubQuotaSold(CORN) c_l_EnforceCattleFeedRequirement(CORN)_ -1
- QuantitySubQuotaSold(CORN) c_u_LimitAmountSold(CORN)_ 1
- QuantitySubQuotaSold(CORN) r_l_EnforceQuotas(CORN)_ 1
- QuantitySubQuotaSold(CORN) r_u_EnforceQuotas(CORN)_ 1
- QuantitySubQuotaSold(SUGAR_BEETS) Total_Cost_Objective -36
- QuantitySubQuotaSold(SUGAR_BEETS) c_l_EnforceCattleFeedRequirement(SUGAR_BEETS)_ -1
- QuantitySubQuotaSold(SUGAR_BEETS) c_u_LimitAmountSold(SUGAR_BEETS)_ 1
- QuantitySubQuotaSold(SUGAR_BEETS) r_l_EnforceQuotas(SUGAR_BEETS)_ 1
- QuantitySubQuotaSold(SUGAR_BEETS) r_u_EnforceQuotas(SUGAR_BEETS)_ 1
- QuantitySubQuotaSold(WHEAT) Total_Cost_Objective -170
- QuantitySubQuotaSold(WHEAT) c_l_EnforceCattleFeedRequirement(WHEAT)_ -1
- QuantitySubQuotaSold(WHEAT) c_u_LimitAmountSold(WHEAT)_ 1
- QuantitySubQuotaSold(WHEAT) r_l_EnforceQuotas(WHEAT)_ 1
- QuantitySubQuotaSold(WHEAT) r_u_EnforceQuotas(WHEAT)_ 1
- QuantitySuperQuotaSold(CORN) c_l_EnforceCattleFeedRequirement(CORN)_ -1
- QuantitySuperQuotaSold(CORN) c_u_LimitAmountSold(CORN)_ 1
- QuantitySuperQuotaSold(SUGAR_BEETS) Total_Cost_Objective -10
- QuantitySuperQuotaSold(SUGAR_BEETS) c_l_EnforceCattleFeedRequirement(SUGAR_BEETS)_ -1
- QuantitySuperQuotaSold(SUGAR_BEETS) c_u_LimitAmountSold(SUGAR_BEETS)_ 1
- QuantitySuperQuotaSold(WHEAT) c_l_EnforceCattleFeedRequirement(WHEAT)_ -1
- QuantitySuperQuotaSold(WHEAT) c_u_LimitAmountSold(WHEAT)_ 1
- ONE_VAR_CONSTANT Total_Cost_Objective 0
- ONE_VAR_CONSTANT c_e_ONE_VAR_CONSTANT 1
-RHS
- RHS c_u_ConstrainTotalAcreage_ 500
- RHS c_l_EnforceCattleFeedRequirement(CORN)_ 240
- RHS c_l_EnforceCattleFeedRequirement(SUGAR_BEETS)_ 0
- RHS c_l_EnforceCattleFeedRequirement(WHEAT)_ 200
- RHS c_u_LimitAmountSold(CORN)_ 0
- RHS c_u_LimitAmountSold(SUGAR_BEETS)_ 0
- RHS c_u_LimitAmountSold(WHEAT)_ 0
- RHS r_l_EnforceQuotas(CORN)_ 0
- RHS r_u_EnforceQuotas(CORN)_ 100000
- RHS r_l_EnforceQuotas(SUGAR_BEETS)_ 0
- RHS r_u_EnforceQuotas(SUGAR_BEETS)_ 6000
- RHS r_l_EnforceQuotas(WHEAT)_ 0
- RHS r_u_EnforceQuotas(WHEAT)_ 100000
- RHS c_e_ONE_VAR_CONSTANT 1
-BOUNDS
- LO BOUND DevotedAcreage(CORN) 0
- UP BOUND DevotedAcreage(CORN) 500
- LO BOUND DevotedAcreage(SUGAR_BEETS) 0
- UP BOUND DevotedAcreage(SUGAR_BEETS) 500
- LO BOUND DevotedAcreage(WHEAT) 0
- UP BOUND DevotedAcreage(WHEAT) 500
- LO BOUND QuantityPurchased(CORN) 0
- LO BOUND QuantityPurchased(SUGAR_BEETS) 0
- LO BOUND QuantityPurchased(WHEAT) 0
- LO BOUND QuantitySubQuotaSold(CORN) 0
- LO BOUND QuantitySubQuotaSold(SUGAR_BEETS) 0
- LO BOUND QuantitySubQuotaSold(WHEAT) 0
- LO BOUND QuantitySuperQuotaSold(CORN) 0
- LO BOUND QuantitySuperQuotaSold(SUGAR_BEETS) 0
- LO BOUND QuantitySuperQuotaSold(WHEAT) 0
-ENDATA
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_symbolic_names_baseline/farmer.cor.symbols b/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_symbolic_names_baseline/farmer.cor.symbols
deleted file mode 100644
index e973348847d..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_symbolic_names_baseline/farmer.cor.symbols
+++ /dev/null
@@ -1,3 +0,0 @@
-DevotedAcreage(CORN) DevotedAcreage:$CORN
-DevotedAcreage(SUGAR_BEETS) DevotedAcreage:$SUGAR_BEETS
-DevotedAcreage(WHEAT) DevotedAcreage:$WHEAT
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_symbolic_names_baseline/farmer.mps.det b/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_symbolic_names_baseline/farmer.mps.det
deleted file mode 100644
index cc1b5a64131..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_symbolic_names_baseline/farmer.mps.det
+++ /dev/null
@@ -1,97 +0,0 @@
-* Source: Pyomo MPS Writer
-* Format: Free MPS
-*
-NAME ZeroStochasticData
-OBJSENSE
- MIN
-ROWS
- N Total_Cost_Objective
- L c_u_ConstrainTotalAcreage_
- G c_l_EnforceCattleFeedRequirement(CORN)_
- G c_l_EnforceCattleFeedRequirement(SUGAR_BEETS)_
- G c_l_EnforceCattleFeedRequirement(WHEAT)_
- L c_u_LimitAmountSold(CORN)_
- L c_u_LimitAmountSold(SUGAR_BEETS)_
- L c_u_LimitAmountSold(WHEAT)_
- G r_l_EnforceQuotas(CORN)_
- L r_u_EnforceQuotas(CORN)_
- G r_l_EnforceQuotas(SUGAR_BEETS)_
- L r_u_EnforceQuotas(SUGAR_BEETS)_
- G r_l_EnforceQuotas(WHEAT)_
- L r_u_EnforceQuotas(WHEAT)_
- E c_e_ONE_VAR_CONSTANT
-COLUMNS
- DevotedAcreage(CORN) Total_Cost_Objective 230
- DevotedAcreage(CORN) c_u_ConstrainTotalAcreage_ 1
- DevotedAcreage(CORN) c_l_EnforceCattleFeedRequirement(CORN)_ -9876543210
- DevotedAcreage(CORN) c_u_LimitAmountSold(CORN)_ -9876543210
- DevotedAcreage(SUGAR_BEETS) Total_Cost_Objective 260
- DevotedAcreage(SUGAR_BEETS) c_u_ConstrainTotalAcreage_ 1
- DevotedAcreage(SUGAR_BEETS) c_l_EnforceCattleFeedRequirement(SUGAR_BEETS)_ -9876543210
- DevotedAcreage(SUGAR_BEETS) c_u_LimitAmountSold(SUGAR_BEETS)_ -9876543210
- DevotedAcreage(WHEAT) Total_Cost_Objective 150
- DevotedAcreage(WHEAT) c_u_ConstrainTotalAcreage_ 1
- DevotedAcreage(WHEAT) c_l_EnforceCattleFeedRequirement(WHEAT)_ -9876543210
- DevotedAcreage(WHEAT) c_u_LimitAmountSold(WHEAT)_ -9876543210
- QuantityPurchased(CORN) Total_Cost_Objective 210
- QuantityPurchased(CORN) c_l_EnforceCattleFeedRequirement(CORN)_ 1
- QuantityPurchased(SUGAR_BEETS) Total_Cost_Objective 100000
- QuantityPurchased(SUGAR_BEETS) c_l_EnforceCattleFeedRequirement(SUGAR_BEETS)_ 1
- QuantityPurchased(WHEAT) Total_Cost_Objective 238
- QuantityPurchased(WHEAT) c_l_EnforceCattleFeedRequirement(WHEAT)_ 1
- QuantitySubQuotaSold(CORN) Total_Cost_Objective -150
- QuantitySubQuotaSold(CORN) c_l_EnforceCattleFeedRequirement(CORN)_ -1
- QuantitySubQuotaSold(CORN) c_u_LimitAmountSold(CORN)_ 1
- QuantitySubQuotaSold(CORN) r_l_EnforceQuotas(CORN)_ 1
- QuantitySubQuotaSold(CORN) r_u_EnforceQuotas(CORN)_ 1
- QuantitySubQuotaSold(SUGAR_BEETS) Total_Cost_Objective -36
- QuantitySubQuotaSold(SUGAR_BEETS) c_l_EnforceCattleFeedRequirement(SUGAR_BEETS)_ -1
- QuantitySubQuotaSold(SUGAR_BEETS) c_u_LimitAmountSold(SUGAR_BEETS)_ 1
- QuantitySubQuotaSold(SUGAR_BEETS) r_l_EnforceQuotas(SUGAR_BEETS)_ 1
- QuantitySubQuotaSold(SUGAR_BEETS) r_u_EnforceQuotas(SUGAR_BEETS)_ 1
- QuantitySubQuotaSold(WHEAT) Total_Cost_Objective -170
- QuantitySubQuotaSold(WHEAT) c_l_EnforceCattleFeedRequirement(WHEAT)_ -1
- QuantitySubQuotaSold(WHEAT) c_u_LimitAmountSold(WHEAT)_ 1
- QuantitySubQuotaSold(WHEAT) r_l_EnforceQuotas(WHEAT)_ 1
- QuantitySubQuotaSold(WHEAT) r_u_EnforceQuotas(WHEAT)_ 1
- QuantitySuperQuotaSold(CORN) c_l_EnforceCattleFeedRequirement(CORN)_ -1
- QuantitySuperQuotaSold(CORN) c_u_LimitAmountSold(CORN)_ 1
- QuantitySuperQuotaSold(SUGAR_BEETS) Total_Cost_Objective -10
- QuantitySuperQuotaSold(SUGAR_BEETS) c_l_EnforceCattleFeedRequirement(SUGAR_BEETS)_ -1
- QuantitySuperQuotaSold(SUGAR_BEETS) c_u_LimitAmountSold(SUGAR_BEETS)_ 1
- QuantitySuperQuotaSold(WHEAT) c_l_EnforceCattleFeedRequirement(WHEAT)_ -1
- QuantitySuperQuotaSold(WHEAT) c_u_LimitAmountSold(WHEAT)_ 1
- ONE_VAR_CONSTANT Total_Cost_Objective 0
- ONE_VAR_CONSTANT c_e_ONE_VAR_CONSTANT 1
-RHS
- RHS c_u_ConstrainTotalAcreage_ 500
- RHS c_l_EnforceCattleFeedRequirement(CORN)_ 240
- RHS c_l_EnforceCattleFeedRequirement(SUGAR_BEETS)_ 0
- RHS c_l_EnforceCattleFeedRequirement(WHEAT)_ 200
- RHS c_u_LimitAmountSold(CORN)_ 0
- RHS c_u_LimitAmountSold(SUGAR_BEETS)_ 0
- RHS c_u_LimitAmountSold(WHEAT)_ 0
- RHS r_l_EnforceQuotas(CORN)_ 0
- RHS r_u_EnforceQuotas(CORN)_ 100000
- RHS r_l_EnforceQuotas(SUGAR_BEETS)_ 0
- RHS r_u_EnforceQuotas(SUGAR_BEETS)_ 6000
- RHS r_l_EnforceQuotas(WHEAT)_ 0
- RHS r_u_EnforceQuotas(WHEAT)_ 100000
- RHS c_e_ONE_VAR_CONSTANT 1
-BOUNDS
- LO BOUND DevotedAcreage(CORN) 0
- UP BOUND DevotedAcreage(CORN) 500
- LO BOUND DevotedAcreage(SUGAR_BEETS) 0
- UP BOUND DevotedAcreage(SUGAR_BEETS) 500
- LO BOUND DevotedAcreage(WHEAT) 0
- UP BOUND DevotedAcreage(WHEAT) 500
- LO BOUND QuantityPurchased(CORN) 0
- LO BOUND QuantityPurchased(SUGAR_BEETS) 0
- LO BOUND QuantityPurchased(WHEAT) 0
- LO BOUND QuantitySubQuotaSold(CORN) 0
- LO BOUND QuantitySubQuotaSold(SUGAR_BEETS) 0
- LO BOUND QuantitySubQuotaSold(WHEAT) 0
- LO BOUND QuantitySuperQuotaSold(CORN) 0
- LO BOUND QuantitySuperQuotaSold(SUGAR_BEETS) 0
- LO BOUND QuantitySuperQuotaSold(WHEAT) 0
-ENDATA
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_symbolic_names_baseline/farmer.row b/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_symbolic_names_baseline/farmer.row
deleted file mode 100644
index 0bf2f5edad0..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_symbolic_names_baseline/farmer.row
+++ /dev/null
@@ -1,15 +0,0 @@
-Total_Cost_Objective
-c_u_ConstrainTotalAcreage_
-c_l_EnforceCattleFeedRequirement(CORN)_
-c_l_EnforceCattleFeedRequirement(SUGAR_BEETS)_
-c_l_EnforceCattleFeedRequirement(WHEAT)_
-c_u_LimitAmountSold(CORN)_
-c_u_LimitAmountSold(SUGAR_BEETS)_
-c_u_LimitAmountSold(WHEAT)_
-r_l_EnforceQuotas(CORN)_
-r_u_EnforceQuotas(CORN)_
-r_l_EnforceQuotas(SUGAR_BEETS)_
-r_u_EnforceQuotas(SUGAR_BEETS)_
-r_l_EnforceQuotas(WHEAT)_
-r_u_EnforceQuotas(WHEAT)_
-c_e_ONE_VAR_CONSTANT
\ No newline at end of file
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_symbolic_names_baseline/farmer.sto b/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_symbolic_names_baseline/farmer.sto
deleted file mode 100644
index 6772f4e3157..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_symbolic_names_baseline/farmer.sto
+++ /dev/null
@@ -1,24 +0,0 @@
-STOCH farmer
-BLOCKS DISCRETE REPLACE
- BL BLOCK1 PERIOD2 0.33333332999999998
- DevotedAcreage(CORN) c_l_EnforceCattleFeedRequirement(CORN)_ 2.3999999999999999
- DevotedAcreage(SUGAR_BEETS) c_l_EnforceCattleFeedRequirement(SUGAR_BEETS)_ 16
- DevotedAcreage(WHEAT) c_l_EnforceCattleFeedRequirement(WHEAT)_ 2
- DevotedAcreage(CORN) c_u_LimitAmountSold(CORN)_ -2.3999999999999999
- DevotedAcreage(SUGAR_BEETS) c_u_LimitAmountSold(SUGAR_BEETS)_ -16
- DevotedAcreage(WHEAT) c_u_LimitAmountSold(WHEAT)_ -2
- BL BLOCK1 PERIOD2 0.33333333999999998
- DevotedAcreage(CORN) c_l_EnforceCattleFeedRequirement(CORN)_ 3
- DevotedAcreage(SUGAR_BEETS) c_l_EnforceCattleFeedRequirement(SUGAR_BEETS)_ 20
- DevotedAcreage(WHEAT) c_l_EnforceCattleFeedRequirement(WHEAT)_ 2.5
- DevotedAcreage(CORN) c_u_LimitAmountSold(CORN)_ -3
- DevotedAcreage(SUGAR_BEETS) c_u_LimitAmountSold(SUGAR_BEETS)_ -20
- DevotedAcreage(WHEAT) c_u_LimitAmountSold(WHEAT)_ -2.5
- BL BLOCK1 PERIOD2 0.33333332999999998
- DevotedAcreage(CORN) c_l_EnforceCattleFeedRequirement(CORN)_ 3.6000000000000001
- DevotedAcreage(SUGAR_BEETS) c_l_EnforceCattleFeedRequirement(SUGAR_BEETS)_ 24
- DevotedAcreage(WHEAT) c_l_EnforceCattleFeedRequirement(WHEAT)_ 3
- DevotedAcreage(CORN) c_u_LimitAmountSold(CORN)_ -3.6000000000000001
- DevotedAcreage(SUGAR_BEETS) c_u_LimitAmountSold(SUGAR_BEETS)_ -24
- DevotedAcreage(WHEAT) c_u_LimitAmountSold(WHEAT)_ -3
-ENDATA
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_symbolic_names_baseline/farmer.sto.struct b/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_symbolic_names_baseline/farmer.sto.struct
deleted file mode 100644
index 65fbc4b8d79..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_symbolic_names_baseline/farmer.sto.struct
+++ /dev/null
@@ -1,6 +0,0 @@
-DevotedAcreage(CORN) c_l_EnforceCattleFeedRequirement(CORN)_
-DevotedAcreage(SUGAR_BEETS) c_l_EnforceCattleFeedRequirement(SUGAR_BEETS)_
-DevotedAcreage(WHEAT) c_l_EnforceCattleFeedRequirement(WHEAT)_
-DevotedAcreage(CORN) c_u_LimitAmountSold(CORN)_
-DevotedAcreage(SUGAR_BEETS) c_u_LimitAmountSold(SUGAR_BEETS)_
-DevotedAcreage(WHEAT) c_u_LimitAmountSold(WHEAT)_
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_symbolic_names_baseline/farmer.tim b/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_symbolic_names_baseline/farmer.tim
deleted file mode 100644
index c8a6e910fb2..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_symbolic_names_baseline/farmer.tim
+++ /dev/null
@@ -1,5 +0,0 @@
-TIME farmer
-PERIODS IMPLICIT
- DevotedAcreage(CORN) Total_Cost_Objective TIME1
- QuantityPurchased(CORN) c_l_EnforceCattleFeedRequirement(CORN)_ TIME2
-ENDATA
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_symbolic_names_baseline/scenario_files/farmer.col.AboveAverageScenario b/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_symbolic_names_baseline/scenario_files/farmer.col.AboveAverageScenario
deleted file mode 100644
index 3493097936d..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_symbolic_names_baseline/scenario_files/farmer.col.AboveAverageScenario
+++ /dev/null
@@ -1,13 +0,0 @@
-DevotedAcreage(CORN)
-DevotedAcreage(SUGAR_BEETS)
-DevotedAcreage(WHEAT)
-QuantityPurchased(CORN)
-QuantityPurchased(SUGAR_BEETS)
-QuantityPurchased(WHEAT)
-QuantitySubQuotaSold(CORN)
-QuantitySubQuotaSold(SUGAR_BEETS)
-QuantitySubQuotaSold(WHEAT)
-QuantitySuperQuotaSold(CORN)
-QuantitySuperQuotaSold(SUGAR_BEETS)
-QuantitySuperQuotaSold(WHEAT)
-ONE_VAR_CONSTANT
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_symbolic_names_baseline/scenario_files/farmer.col.AverageScenario b/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_symbolic_names_baseline/scenario_files/farmer.col.AverageScenario
deleted file mode 100644
index 3493097936d..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_symbolic_names_baseline/scenario_files/farmer.col.AverageScenario
+++ /dev/null
@@ -1,13 +0,0 @@
-DevotedAcreage(CORN)
-DevotedAcreage(SUGAR_BEETS)
-DevotedAcreage(WHEAT)
-QuantityPurchased(CORN)
-QuantityPurchased(SUGAR_BEETS)
-QuantityPurchased(WHEAT)
-QuantitySubQuotaSold(CORN)
-QuantitySubQuotaSold(SUGAR_BEETS)
-QuantitySubQuotaSold(WHEAT)
-QuantitySuperQuotaSold(CORN)
-QuantitySuperQuotaSold(SUGAR_BEETS)
-QuantitySuperQuotaSold(WHEAT)
-ONE_VAR_CONSTANT
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_symbolic_names_baseline/scenario_files/farmer.col.BelowAverageScenario b/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_symbolic_names_baseline/scenario_files/farmer.col.BelowAverageScenario
deleted file mode 100644
index 3493097936d..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_symbolic_names_baseline/scenario_files/farmer.col.BelowAverageScenario
+++ /dev/null
@@ -1,13 +0,0 @@
-DevotedAcreage(CORN)
-DevotedAcreage(SUGAR_BEETS)
-DevotedAcreage(WHEAT)
-QuantityPurchased(CORN)
-QuantityPurchased(SUGAR_BEETS)
-QuantityPurchased(WHEAT)
-QuantitySubQuotaSold(CORN)
-QuantitySubQuotaSold(SUGAR_BEETS)
-QuantitySubQuotaSold(WHEAT)
-QuantitySuperQuotaSold(CORN)
-QuantitySuperQuotaSold(SUGAR_BEETS)
-QuantitySuperQuotaSold(WHEAT)
-ONE_VAR_CONSTANT
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_symbolic_names_baseline/scenario_files/farmer.mps.AboveAverageScenario b/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_symbolic_names_baseline/scenario_files/farmer.mps.AboveAverageScenario
deleted file mode 100644
index b5a858504b2..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_symbolic_names_baseline/scenario_files/farmer.mps.AboveAverageScenario
+++ /dev/null
@@ -1,97 +0,0 @@
-* Source: Pyomo MPS Writer
-* Format: Free MPS
-*
-NAME AboveAverageScenario
-OBJSENSE
- MIN
-ROWS
- N Total_Cost_Objective
- L c_u_ConstrainTotalAcreage_
- G c_l_EnforceCattleFeedRequirement(CORN)_
- G c_l_EnforceCattleFeedRequirement(SUGAR_BEETS)_
- G c_l_EnforceCattleFeedRequirement(WHEAT)_
- L c_u_LimitAmountSold(CORN)_
- L c_u_LimitAmountSold(SUGAR_BEETS)_
- L c_u_LimitAmountSold(WHEAT)_
- G r_l_EnforceQuotas(CORN)_
- L r_u_EnforceQuotas(CORN)_
- G r_l_EnforceQuotas(SUGAR_BEETS)_
- L r_u_EnforceQuotas(SUGAR_BEETS)_
- G r_l_EnforceQuotas(WHEAT)_
- L r_u_EnforceQuotas(WHEAT)_
- E c_e_ONE_VAR_CONSTANT
-COLUMNS
- DevotedAcreage(CORN) Total_Cost_Objective 230
- DevotedAcreage(CORN) c_u_ConstrainTotalAcreage_ 1
- DevotedAcreage(CORN) c_l_EnforceCattleFeedRequirement(CORN)_ 3.6000000000000001
- DevotedAcreage(CORN) c_u_LimitAmountSold(CORN)_ -3.6000000000000001
- DevotedAcreage(SUGAR_BEETS) Total_Cost_Objective 260
- DevotedAcreage(SUGAR_BEETS) c_u_ConstrainTotalAcreage_ 1
- DevotedAcreage(SUGAR_BEETS) c_l_EnforceCattleFeedRequirement(SUGAR_BEETS)_ 24
- DevotedAcreage(SUGAR_BEETS) c_u_LimitAmountSold(SUGAR_BEETS)_ -24
- DevotedAcreage(WHEAT) Total_Cost_Objective 150
- DevotedAcreage(WHEAT) c_u_ConstrainTotalAcreage_ 1
- DevotedAcreage(WHEAT) c_l_EnforceCattleFeedRequirement(WHEAT)_ 3
- DevotedAcreage(WHEAT) c_u_LimitAmountSold(WHEAT)_ -3
- QuantityPurchased(CORN) Total_Cost_Objective 210
- QuantityPurchased(CORN) c_l_EnforceCattleFeedRequirement(CORN)_ 1
- QuantityPurchased(SUGAR_BEETS) Total_Cost_Objective 100000
- QuantityPurchased(SUGAR_BEETS) c_l_EnforceCattleFeedRequirement(SUGAR_BEETS)_ 1
- QuantityPurchased(WHEAT) Total_Cost_Objective 238
- QuantityPurchased(WHEAT) c_l_EnforceCattleFeedRequirement(WHEAT)_ 1
- QuantitySubQuotaSold(CORN) Total_Cost_Objective -150
- QuantitySubQuotaSold(CORN) c_l_EnforceCattleFeedRequirement(CORN)_ -1
- QuantitySubQuotaSold(CORN) c_u_LimitAmountSold(CORN)_ 1
- QuantitySubQuotaSold(CORN) r_l_EnforceQuotas(CORN)_ 1
- QuantitySubQuotaSold(CORN) r_u_EnforceQuotas(CORN)_ 1
- QuantitySubQuotaSold(SUGAR_BEETS) Total_Cost_Objective -36
- QuantitySubQuotaSold(SUGAR_BEETS) c_l_EnforceCattleFeedRequirement(SUGAR_BEETS)_ -1
- QuantitySubQuotaSold(SUGAR_BEETS) c_u_LimitAmountSold(SUGAR_BEETS)_ 1
- QuantitySubQuotaSold(SUGAR_BEETS) r_l_EnforceQuotas(SUGAR_BEETS)_ 1
- QuantitySubQuotaSold(SUGAR_BEETS) r_u_EnforceQuotas(SUGAR_BEETS)_ 1
- QuantitySubQuotaSold(WHEAT) Total_Cost_Objective -170
- QuantitySubQuotaSold(WHEAT) c_l_EnforceCattleFeedRequirement(WHEAT)_ -1
- QuantitySubQuotaSold(WHEAT) c_u_LimitAmountSold(WHEAT)_ 1
- QuantitySubQuotaSold(WHEAT) r_l_EnforceQuotas(WHEAT)_ 1
- QuantitySubQuotaSold(WHEAT) r_u_EnforceQuotas(WHEAT)_ 1
- QuantitySuperQuotaSold(CORN) c_l_EnforceCattleFeedRequirement(CORN)_ -1
- QuantitySuperQuotaSold(CORN) c_u_LimitAmountSold(CORN)_ 1
- QuantitySuperQuotaSold(SUGAR_BEETS) Total_Cost_Objective -10
- QuantitySuperQuotaSold(SUGAR_BEETS) c_l_EnforceCattleFeedRequirement(SUGAR_BEETS)_ -1
- QuantitySuperQuotaSold(SUGAR_BEETS) c_u_LimitAmountSold(SUGAR_BEETS)_ 1
- QuantitySuperQuotaSold(WHEAT) c_l_EnforceCattleFeedRequirement(WHEAT)_ -1
- QuantitySuperQuotaSold(WHEAT) c_u_LimitAmountSold(WHEAT)_ 1
- ONE_VAR_CONSTANT Total_Cost_Objective 0
- ONE_VAR_CONSTANT c_e_ONE_VAR_CONSTANT 1
-RHS
- RHS c_u_ConstrainTotalAcreage_ 500
- RHS c_l_EnforceCattleFeedRequirement(CORN)_ 240
- RHS c_l_EnforceCattleFeedRequirement(SUGAR_BEETS)_ 0
- RHS c_l_EnforceCattleFeedRequirement(WHEAT)_ 200
- RHS c_u_LimitAmountSold(CORN)_ 0
- RHS c_u_LimitAmountSold(SUGAR_BEETS)_ 0
- RHS c_u_LimitAmountSold(WHEAT)_ 0
- RHS r_l_EnforceQuotas(CORN)_ 0
- RHS r_u_EnforceQuotas(CORN)_ 100000
- RHS r_l_EnforceQuotas(SUGAR_BEETS)_ 0
- RHS r_u_EnforceQuotas(SUGAR_BEETS)_ 6000
- RHS r_l_EnforceQuotas(WHEAT)_ 0
- RHS r_u_EnforceQuotas(WHEAT)_ 100000
- RHS c_e_ONE_VAR_CONSTANT 1
-BOUNDS
- LO BOUND DevotedAcreage(CORN) 0
- UP BOUND DevotedAcreage(CORN) 500
- LO BOUND DevotedAcreage(SUGAR_BEETS) 0
- UP BOUND DevotedAcreage(SUGAR_BEETS) 500
- LO BOUND DevotedAcreage(WHEAT) 0
- UP BOUND DevotedAcreage(WHEAT) 500
- LO BOUND QuantityPurchased(CORN) 0
- LO BOUND QuantityPurchased(SUGAR_BEETS) 0
- LO BOUND QuantityPurchased(WHEAT) 0
- LO BOUND QuantitySubQuotaSold(CORN) 0
- LO BOUND QuantitySubQuotaSold(SUGAR_BEETS) 0
- LO BOUND QuantitySubQuotaSold(WHEAT) 0
- LO BOUND QuantitySuperQuotaSold(CORN) 0
- LO BOUND QuantitySuperQuotaSold(SUGAR_BEETS) 0
- LO BOUND QuantitySuperQuotaSold(WHEAT) 0
-ENDATA
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_symbolic_names_baseline/scenario_files/farmer.mps.AverageScenario b/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_symbolic_names_baseline/scenario_files/farmer.mps.AverageScenario
deleted file mode 100644
index 75e85e8f1eb..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_symbolic_names_baseline/scenario_files/farmer.mps.AverageScenario
+++ /dev/null
@@ -1,97 +0,0 @@
-* Source: Pyomo MPS Writer
-* Format: Free MPS
-*
-NAME AverageScenario
-OBJSENSE
- MIN
-ROWS
- N Total_Cost_Objective
- L c_u_ConstrainTotalAcreage_
- G c_l_EnforceCattleFeedRequirement(CORN)_
- G c_l_EnforceCattleFeedRequirement(SUGAR_BEETS)_
- G c_l_EnforceCattleFeedRequirement(WHEAT)_
- L c_u_LimitAmountSold(CORN)_
- L c_u_LimitAmountSold(SUGAR_BEETS)_
- L c_u_LimitAmountSold(WHEAT)_
- G r_l_EnforceQuotas(CORN)_
- L r_u_EnforceQuotas(CORN)_
- G r_l_EnforceQuotas(SUGAR_BEETS)_
- L r_u_EnforceQuotas(SUGAR_BEETS)_
- G r_l_EnforceQuotas(WHEAT)_
- L r_u_EnforceQuotas(WHEAT)_
- E c_e_ONE_VAR_CONSTANT
-COLUMNS
- DevotedAcreage(CORN) Total_Cost_Objective 230
- DevotedAcreage(CORN) c_u_ConstrainTotalAcreage_ 1
- DevotedAcreage(CORN) c_l_EnforceCattleFeedRequirement(CORN)_ 3
- DevotedAcreage(CORN) c_u_LimitAmountSold(CORN)_ -3
- DevotedAcreage(SUGAR_BEETS) Total_Cost_Objective 260
- DevotedAcreage(SUGAR_BEETS) c_u_ConstrainTotalAcreage_ 1
- DevotedAcreage(SUGAR_BEETS) c_l_EnforceCattleFeedRequirement(SUGAR_BEETS)_ 20
- DevotedAcreage(SUGAR_BEETS) c_u_LimitAmountSold(SUGAR_BEETS)_ -20
- DevotedAcreage(WHEAT) Total_Cost_Objective 150
- DevotedAcreage(WHEAT) c_u_ConstrainTotalAcreage_ 1
- DevotedAcreage(WHEAT) c_l_EnforceCattleFeedRequirement(WHEAT)_ 2.5
- DevotedAcreage(WHEAT) c_u_LimitAmountSold(WHEAT)_ -2.5
- QuantityPurchased(CORN) Total_Cost_Objective 210
- QuantityPurchased(CORN) c_l_EnforceCattleFeedRequirement(CORN)_ 1
- QuantityPurchased(SUGAR_BEETS) Total_Cost_Objective 100000
- QuantityPurchased(SUGAR_BEETS) c_l_EnforceCattleFeedRequirement(SUGAR_BEETS)_ 1
- QuantityPurchased(WHEAT) Total_Cost_Objective 238
- QuantityPurchased(WHEAT) c_l_EnforceCattleFeedRequirement(WHEAT)_ 1
- QuantitySubQuotaSold(CORN) Total_Cost_Objective -150
- QuantitySubQuotaSold(CORN) c_l_EnforceCattleFeedRequirement(CORN)_ -1
- QuantitySubQuotaSold(CORN) c_u_LimitAmountSold(CORN)_ 1
- QuantitySubQuotaSold(CORN) r_l_EnforceQuotas(CORN)_ 1
- QuantitySubQuotaSold(CORN) r_u_EnforceQuotas(CORN)_ 1
- QuantitySubQuotaSold(SUGAR_BEETS) Total_Cost_Objective -36
- QuantitySubQuotaSold(SUGAR_BEETS) c_l_EnforceCattleFeedRequirement(SUGAR_BEETS)_ -1
- QuantitySubQuotaSold(SUGAR_BEETS) c_u_LimitAmountSold(SUGAR_BEETS)_ 1
- QuantitySubQuotaSold(SUGAR_BEETS) r_l_EnforceQuotas(SUGAR_BEETS)_ 1
- QuantitySubQuotaSold(SUGAR_BEETS) r_u_EnforceQuotas(SUGAR_BEETS)_ 1
- QuantitySubQuotaSold(WHEAT) Total_Cost_Objective -170
- QuantitySubQuotaSold(WHEAT) c_l_EnforceCattleFeedRequirement(WHEAT)_ -1
- QuantitySubQuotaSold(WHEAT) c_u_LimitAmountSold(WHEAT)_ 1
- QuantitySubQuotaSold(WHEAT) r_l_EnforceQuotas(WHEAT)_ 1
- QuantitySubQuotaSold(WHEAT) r_u_EnforceQuotas(WHEAT)_ 1
- QuantitySuperQuotaSold(CORN) c_l_EnforceCattleFeedRequirement(CORN)_ -1
- QuantitySuperQuotaSold(CORN) c_u_LimitAmountSold(CORN)_ 1
- QuantitySuperQuotaSold(SUGAR_BEETS) Total_Cost_Objective -10
- QuantitySuperQuotaSold(SUGAR_BEETS) c_l_EnforceCattleFeedRequirement(SUGAR_BEETS)_ -1
- QuantitySuperQuotaSold(SUGAR_BEETS) c_u_LimitAmountSold(SUGAR_BEETS)_ 1
- QuantitySuperQuotaSold(WHEAT) c_l_EnforceCattleFeedRequirement(WHEAT)_ -1
- QuantitySuperQuotaSold(WHEAT) c_u_LimitAmountSold(WHEAT)_ 1
- ONE_VAR_CONSTANT Total_Cost_Objective 0
- ONE_VAR_CONSTANT c_e_ONE_VAR_CONSTANT 1
-RHS
- RHS c_u_ConstrainTotalAcreage_ 500
- RHS c_l_EnforceCattleFeedRequirement(CORN)_ 240
- RHS c_l_EnforceCattleFeedRequirement(SUGAR_BEETS)_ 0
- RHS c_l_EnforceCattleFeedRequirement(WHEAT)_ 200
- RHS c_u_LimitAmountSold(CORN)_ 0
- RHS c_u_LimitAmountSold(SUGAR_BEETS)_ 0
- RHS c_u_LimitAmountSold(WHEAT)_ 0
- RHS r_l_EnforceQuotas(CORN)_ 0
- RHS r_u_EnforceQuotas(CORN)_ 100000
- RHS r_l_EnforceQuotas(SUGAR_BEETS)_ 0
- RHS r_u_EnforceQuotas(SUGAR_BEETS)_ 6000
- RHS r_l_EnforceQuotas(WHEAT)_ 0
- RHS r_u_EnforceQuotas(WHEAT)_ 100000
- RHS c_e_ONE_VAR_CONSTANT 1
-BOUNDS
- LO BOUND DevotedAcreage(CORN) 0
- UP BOUND DevotedAcreage(CORN) 500
- LO BOUND DevotedAcreage(SUGAR_BEETS) 0
- UP BOUND DevotedAcreage(SUGAR_BEETS) 500
- LO BOUND DevotedAcreage(WHEAT) 0
- UP BOUND DevotedAcreage(WHEAT) 500
- LO BOUND QuantityPurchased(CORN) 0
- LO BOUND QuantityPurchased(SUGAR_BEETS) 0
- LO BOUND QuantityPurchased(WHEAT) 0
- LO BOUND QuantitySubQuotaSold(CORN) 0
- LO BOUND QuantitySubQuotaSold(SUGAR_BEETS) 0
- LO BOUND QuantitySubQuotaSold(WHEAT) 0
- LO BOUND QuantitySuperQuotaSold(CORN) 0
- LO BOUND QuantitySuperQuotaSold(SUGAR_BEETS) 0
- LO BOUND QuantitySuperQuotaSold(WHEAT) 0
-ENDATA
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_symbolic_names_baseline/scenario_files/farmer.mps.BelowAverageScenario b/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_symbolic_names_baseline/scenario_files/farmer.mps.BelowAverageScenario
deleted file mode 100644
index c4a24680786..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_symbolic_names_baseline/scenario_files/farmer.mps.BelowAverageScenario
+++ /dev/null
@@ -1,97 +0,0 @@
-* Source: Pyomo MPS Writer
-* Format: Free MPS
-*
-NAME BelowAverageScenario
-OBJSENSE
- MIN
-ROWS
- N Total_Cost_Objective
- L c_u_ConstrainTotalAcreage_
- G c_l_EnforceCattleFeedRequirement(CORN)_
- G c_l_EnforceCattleFeedRequirement(SUGAR_BEETS)_
- G c_l_EnforceCattleFeedRequirement(WHEAT)_
- L c_u_LimitAmountSold(CORN)_
- L c_u_LimitAmountSold(SUGAR_BEETS)_
- L c_u_LimitAmountSold(WHEAT)_
- G r_l_EnforceQuotas(CORN)_
- L r_u_EnforceQuotas(CORN)_
- G r_l_EnforceQuotas(SUGAR_BEETS)_
- L r_u_EnforceQuotas(SUGAR_BEETS)_
- G r_l_EnforceQuotas(WHEAT)_
- L r_u_EnforceQuotas(WHEAT)_
- E c_e_ONE_VAR_CONSTANT
-COLUMNS
- DevotedAcreage(CORN) Total_Cost_Objective 230
- DevotedAcreage(CORN) c_u_ConstrainTotalAcreage_ 1
- DevotedAcreage(CORN) c_l_EnforceCattleFeedRequirement(CORN)_ 2.3999999999999999
- DevotedAcreage(CORN) c_u_LimitAmountSold(CORN)_ -2.3999999999999999
- DevotedAcreage(SUGAR_BEETS) Total_Cost_Objective 260
- DevotedAcreage(SUGAR_BEETS) c_u_ConstrainTotalAcreage_ 1
- DevotedAcreage(SUGAR_BEETS) c_l_EnforceCattleFeedRequirement(SUGAR_BEETS)_ 16
- DevotedAcreage(SUGAR_BEETS) c_u_LimitAmountSold(SUGAR_BEETS)_ -16
- DevotedAcreage(WHEAT) Total_Cost_Objective 150
- DevotedAcreage(WHEAT) c_u_ConstrainTotalAcreage_ 1
- DevotedAcreage(WHEAT) c_l_EnforceCattleFeedRequirement(WHEAT)_ 2
- DevotedAcreage(WHEAT) c_u_LimitAmountSold(WHEAT)_ -2
- QuantityPurchased(CORN) Total_Cost_Objective 210
- QuantityPurchased(CORN) c_l_EnforceCattleFeedRequirement(CORN)_ 1
- QuantityPurchased(SUGAR_BEETS) Total_Cost_Objective 100000
- QuantityPurchased(SUGAR_BEETS) c_l_EnforceCattleFeedRequirement(SUGAR_BEETS)_ 1
- QuantityPurchased(WHEAT) Total_Cost_Objective 238
- QuantityPurchased(WHEAT) c_l_EnforceCattleFeedRequirement(WHEAT)_ 1
- QuantitySubQuotaSold(CORN) Total_Cost_Objective -150
- QuantitySubQuotaSold(CORN) c_l_EnforceCattleFeedRequirement(CORN)_ -1
- QuantitySubQuotaSold(CORN) c_u_LimitAmountSold(CORN)_ 1
- QuantitySubQuotaSold(CORN) r_l_EnforceQuotas(CORN)_ 1
- QuantitySubQuotaSold(CORN) r_u_EnforceQuotas(CORN)_ 1
- QuantitySubQuotaSold(SUGAR_BEETS) Total_Cost_Objective -36
- QuantitySubQuotaSold(SUGAR_BEETS) c_l_EnforceCattleFeedRequirement(SUGAR_BEETS)_ -1
- QuantitySubQuotaSold(SUGAR_BEETS) c_u_LimitAmountSold(SUGAR_BEETS)_ 1
- QuantitySubQuotaSold(SUGAR_BEETS) r_l_EnforceQuotas(SUGAR_BEETS)_ 1
- QuantitySubQuotaSold(SUGAR_BEETS) r_u_EnforceQuotas(SUGAR_BEETS)_ 1
- QuantitySubQuotaSold(WHEAT) Total_Cost_Objective -170
- QuantitySubQuotaSold(WHEAT) c_l_EnforceCattleFeedRequirement(WHEAT)_ -1
- QuantitySubQuotaSold(WHEAT) c_u_LimitAmountSold(WHEAT)_ 1
- QuantitySubQuotaSold(WHEAT) r_l_EnforceQuotas(WHEAT)_ 1
- QuantitySubQuotaSold(WHEAT) r_u_EnforceQuotas(WHEAT)_ 1
- QuantitySuperQuotaSold(CORN) c_l_EnforceCattleFeedRequirement(CORN)_ -1
- QuantitySuperQuotaSold(CORN) c_u_LimitAmountSold(CORN)_ 1
- QuantitySuperQuotaSold(SUGAR_BEETS) Total_Cost_Objective -10
- QuantitySuperQuotaSold(SUGAR_BEETS) c_l_EnforceCattleFeedRequirement(SUGAR_BEETS)_ -1
- QuantitySuperQuotaSold(SUGAR_BEETS) c_u_LimitAmountSold(SUGAR_BEETS)_ 1
- QuantitySuperQuotaSold(WHEAT) c_l_EnforceCattleFeedRequirement(WHEAT)_ -1
- QuantitySuperQuotaSold(WHEAT) c_u_LimitAmountSold(WHEAT)_ 1
- ONE_VAR_CONSTANT Total_Cost_Objective 0
- ONE_VAR_CONSTANT c_e_ONE_VAR_CONSTANT 1
-RHS
- RHS c_u_ConstrainTotalAcreage_ 500
- RHS c_l_EnforceCattleFeedRequirement(CORN)_ 240
- RHS c_l_EnforceCattleFeedRequirement(SUGAR_BEETS)_ 0
- RHS c_l_EnforceCattleFeedRequirement(WHEAT)_ 200
- RHS c_u_LimitAmountSold(CORN)_ 0
- RHS c_u_LimitAmountSold(SUGAR_BEETS)_ 0
- RHS c_u_LimitAmountSold(WHEAT)_ 0
- RHS r_l_EnforceQuotas(CORN)_ 0
- RHS r_u_EnforceQuotas(CORN)_ 100000
- RHS r_l_EnforceQuotas(SUGAR_BEETS)_ 0
- RHS r_u_EnforceQuotas(SUGAR_BEETS)_ 6000
- RHS r_l_EnforceQuotas(WHEAT)_ 0
- RHS r_u_EnforceQuotas(WHEAT)_ 100000
- RHS c_e_ONE_VAR_CONSTANT 1
-BOUNDS
- LO BOUND DevotedAcreage(CORN) 0
- UP BOUND DevotedAcreage(CORN) 500
- LO BOUND DevotedAcreage(SUGAR_BEETS) 0
- UP BOUND DevotedAcreage(SUGAR_BEETS) 500
- LO BOUND DevotedAcreage(WHEAT) 0
- UP BOUND DevotedAcreage(WHEAT) 500
- LO BOUND QuantityPurchased(CORN) 0
- LO BOUND QuantityPurchased(SUGAR_BEETS) 0
- LO BOUND QuantityPurchased(WHEAT) 0
- LO BOUND QuantitySubQuotaSold(CORN) 0
- LO BOUND QuantitySubQuotaSold(SUGAR_BEETS) 0
- LO BOUND QuantitySubQuotaSold(WHEAT) 0
- LO BOUND QuantitySuperQuotaSold(CORN) 0
- LO BOUND QuantitySuperQuotaSold(SUGAR_BEETS) 0
- LO BOUND QuantitySuperQuotaSold(WHEAT) 0
-ENDATA
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_symbolic_names_baseline/scenario_files/farmer.mps.det.AboveAverageScenario b/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_symbolic_names_baseline/scenario_files/farmer.mps.det.AboveAverageScenario
deleted file mode 100644
index cc1b5a64131..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_symbolic_names_baseline/scenario_files/farmer.mps.det.AboveAverageScenario
+++ /dev/null
@@ -1,97 +0,0 @@
-* Source: Pyomo MPS Writer
-* Format: Free MPS
-*
-NAME ZeroStochasticData
-OBJSENSE
- MIN
-ROWS
- N Total_Cost_Objective
- L c_u_ConstrainTotalAcreage_
- G c_l_EnforceCattleFeedRequirement(CORN)_
- G c_l_EnforceCattleFeedRequirement(SUGAR_BEETS)_
- G c_l_EnforceCattleFeedRequirement(WHEAT)_
- L c_u_LimitAmountSold(CORN)_
- L c_u_LimitAmountSold(SUGAR_BEETS)_
- L c_u_LimitAmountSold(WHEAT)_
- G r_l_EnforceQuotas(CORN)_
- L r_u_EnforceQuotas(CORN)_
- G r_l_EnforceQuotas(SUGAR_BEETS)_
- L r_u_EnforceQuotas(SUGAR_BEETS)_
- G r_l_EnforceQuotas(WHEAT)_
- L r_u_EnforceQuotas(WHEAT)_
- E c_e_ONE_VAR_CONSTANT
-COLUMNS
- DevotedAcreage(CORN) Total_Cost_Objective 230
- DevotedAcreage(CORN) c_u_ConstrainTotalAcreage_ 1
- DevotedAcreage(CORN) c_l_EnforceCattleFeedRequirement(CORN)_ -9876543210
- DevotedAcreage(CORN) c_u_LimitAmountSold(CORN)_ -9876543210
- DevotedAcreage(SUGAR_BEETS) Total_Cost_Objective 260
- DevotedAcreage(SUGAR_BEETS) c_u_ConstrainTotalAcreage_ 1
- DevotedAcreage(SUGAR_BEETS) c_l_EnforceCattleFeedRequirement(SUGAR_BEETS)_ -9876543210
- DevotedAcreage(SUGAR_BEETS) c_u_LimitAmountSold(SUGAR_BEETS)_ -9876543210
- DevotedAcreage(WHEAT) Total_Cost_Objective 150
- DevotedAcreage(WHEAT) c_u_ConstrainTotalAcreage_ 1
- DevotedAcreage(WHEAT) c_l_EnforceCattleFeedRequirement(WHEAT)_ -9876543210
- DevotedAcreage(WHEAT) c_u_LimitAmountSold(WHEAT)_ -9876543210
- QuantityPurchased(CORN) Total_Cost_Objective 210
- QuantityPurchased(CORN) c_l_EnforceCattleFeedRequirement(CORN)_ 1
- QuantityPurchased(SUGAR_BEETS) Total_Cost_Objective 100000
- QuantityPurchased(SUGAR_BEETS) c_l_EnforceCattleFeedRequirement(SUGAR_BEETS)_ 1
- QuantityPurchased(WHEAT) Total_Cost_Objective 238
- QuantityPurchased(WHEAT) c_l_EnforceCattleFeedRequirement(WHEAT)_ 1
- QuantitySubQuotaSold(CORN) Total_Cost_Objective -150
- QuantitySubQuotaSold(CORN) c_l_EnforceCattleFeedRequirement(CORN)_ -1
- QuantitySubQuotaSold(CORN) c_u_LimitAmountSold(CORN)_ 1
- QuantitySubQuotaSold(CORN) r_l_EnforceQuotas(CORN)_ 1
- QuantitySubQuotaSold(CORN) r_u_EnforceQuotas(CORN)_ 1
- QuantitySubQuotaSold(SUGAR_BEETS) Total_Cost_Objective -36
- QuantitySubQuotaSold(SUGAR_BEETS) c_l_EnforceCattleFeedRequirement(SUGAR_BEETS)_ -1
- QuantitySubQuotaSold(SUGAR_BEETS) c_u_LimitAmountSold(SUGAR_BEETS)_ 1
- QuantitySubQuotaSold(SUGAR_BEETS) r_l_EnforceQuotas(SUGAR_BEETS)_ 1
- QuantitySubQuotaSold(SUGAR_BEETS) r_u_EnforceQuotas(SUGAR_BEETS)_ 1
- QuantitySubQuotaSold(WHEAT) Total_Cost_Objective -170
- QuantitySubQuotaSold(WHEAT) c_l_EnforceCattleFeedRequirement(WHEAT)_ -1
- QuantitySubQuotaSold(WHEAT) c_u_LimitAmountSold(WHEAT)_ 1
- QuantitySubQuotaSold(WHEAT) r_l_EnforceQuotas(WHEAT)_ 1
- QuantitySubQuotaSold(WHEAT) r_u_EnforceQuotas(WHEAT)_ 1
- QuantitySuperQuotaSold(CORN) c_l_EnforceCattleFeedRequirement(CORN)_ -1
- QuantitySuperQuotaSold(CORN) c_u_LimitAmountSold(CORN)_ 1
- QuantitySuperQuotaSold(SUGAR_BEETS) Total_Cost_Objective -10
- QuantitySuperQuotaSold(SUGAR_BEETS) c_l_EnforceCattleFeedRequirement(SUGAR_BEETS)_ -1
- QuantitySuperQuotaSold(SUGAR_BEETS) c_u_LimitAmountSold(SUGAR_BEETS)_ 1
- QuantitySuperQuotaSold(WHEAT) c_l_EnforceCattleFeedRequirement(WHEAT)_ -1
- QuantitySuperQuotaSold(WHEAT) c_u_LimitAmountSold(WHEAT)_ 1
- ONE_VAR_CONSTANT Total_Cost_Objective 0
- ONE_VAR_CONSTANT c_e_ONE_VAR_CONSTANT 1
-RHS
- RHS c_u_ConstrainTotalAcreage_ 500
- RHS c_l_EnforceCattleFeedRequirement(CORN)_ 240
- RHS c_l_EnforceCattleFeedRequirement(SUGAR_BEETS)_ 0
- RHS c_l_EnforceCattleFeedRequirement(WHEAT)_ 200
- RHS c_u_LimitAmountSold(CORN)_ 0
- RHS c_u_LimitAmountSold(SUGAR_BEETS)_ 0
- RHS c_u_LimitAmountSold(WHEAT)_ 0
- RHS r_l_EnforceQuotas(CORN)_ 0
- RHS r_u_EnforceQuotas(CORN)_ 100000
- RHS r_l_EnforceQuotas(SUGAR_BEETS)_ 0
- RHS r_u_EnforceQuotas(SUGAR_BEETS)_ 6000
- RHS r_l_EnforceQuotas(WHEAT)_ 0
- RHS r_u_EnforceQuotas(WHEAT)_ 100000
- RHS c_e_ONE_VAR_CONSTANT 1
-BOUNDS
- LO BOUND DevotedAcreage(CORN) 0
- UP BOUND DevotedAcreage(CORN) 500
- LO BOUND DevotedAcreage(SUGAR_BEETS) 0
- UP BOUND DevotedAcreage(SUGAR_BEETS) 500
- LO BOUND DevotedAcreage(WHEAT) 0
- UP BOUND DevotedAcreage(WHEAT) 500
- LO BOUND QuantityPurchased(CORN) 0
- LO BOUND QuantityPurchased(SUGAR_BEETS) 0
- LO BOUND QuantityPurchased(WHEAT) 0
- LO BOUND QuantitySubQuotaSold(CORN) 0
- LO BOUND QuantitySubQuotaSold(SUGAR_BEETS) 0
- LO BOUND QuantitySubQuotaSold(WHEAT) 0
- LO BOUND QuantitySuperQuotaSold(CORN) 0
- LO BOUND QuantitySuperQuotaSold(SUGAR_BEETS) 0
- LO BOUND QuantitySuperQuotaSold(WHEAT) 0
-ENDATA
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_symbolic_names_baseline/scenario_files/farmer.mps.det.AverageScenario b/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_symbolic_names_baseline/scenario_files/farmer.mps.det.AverageScenario
deleted file mode 100644
index cc1b5a64131..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_symbolic_names_baseline/scenario_files/farmer.mps.det.AverageScenario
+++ /dev/null
@@ -1,97 +0,0 @@
-* Source: Pyomo MPS Writer
-* Format: Free MPS
-*
-NAME ZeroStochasticData
-OBJSENSE
- MIN
-ROWS
- N Total_Cost_Objective
- L c_u_ConstrainTotalAcreage_
- G c_l_EnforceCattleFeedRequirement(CORN)_
- G c_l_EnforceCattleFeedRequirement(SUGAR_BEETS)_
- G c_l_EnforceCattleFeedRequirement(WHEAT)_
- L c_u_LimitAmountSold(CORN)_
- L c_u_LimitAmountSold(SUGAR_BEETS)_
- L c_u_LimitAmountSold(WHEAT)_
- G r_l_EnforceQuotas(CORN)_
- L r_u_EnforceQuotas(CORN)_
- G r_l_EnforceQuotas(SUGAR_BEETS)_
- L r_u_EnforceQuotas(SUGAR_BEETS)_
- G r_l_EnforceQuotas(WHEAT)_
- L r_u_EnforceQuotas(WHEAT)_
- E c_e_ONE_VAR_CONSTANT
-COLUMNS
- DevotedAcreage(CORN) Total_Cost_Objective 230
- DevotedAcreage(CORN) c_u_ConstrainTotalAcreage_ 1
- DevotedAcreage(CORN) c_l_EnforceCattleFeedRequirement(CORN)_ -9876543210
- DevotedAcreage(CORN) c_u_LimitAmountSold(CORN)_ -9876543210
- DevotedAcreage(SUGAR_BEETS) Total_Cost_Objective 260
- DevotedAcreage(SUGAR_BEETS) c_u_ConstrainTotalAcreage_ 1
- DevotedAcreage(SUGAR_BEETS) c_l_EnforceCattleFeedRequirement(SUGAR_BEETS)_ -9876543210
- DevotedAcreage(SUGAR_BEETS) c_u_LimitAmountSold(SUGAR_BEETS)_ -9876543210
- DevotedAcreage(WHEAT) Total_Cost_Objective 150
- DevotedAcreage(WHEAT) c_u_ConstrainTotalAcreage_ 1
- DevotedAcreage(WHEAT) c_l_EnforceCattleFeedRequirement(WHEAT)_ -9876543210
- DevotedAcreage(WHEAT) c_u_LimitAmountSold(WHEAT)_ -9876543210
- QuantityPurchased(CORN) Total_Cost_Objective 210
- QuantityPurchased(CORN) c_l_EnforceCattleFeedRequirement(CORN)_ 1
- QuantityPurchased(SUGAR_BEETS) Total_Cost_Objective 100000
- QuantityPurchased(SUGAR_BEETS) c_l_EnforceCattleFeedRequirement(SUGAR_BEETS)_ 1
- QuantityPurchased(WHEAT) Total_Cost_Objective 238
- QuantityPurchased(WHEAT) c_l_EnforceCattleFeedRequirement(WHEAT)_ 1
- QuantitySubQuotaSold(CORN) Total_Cost_Objective -150
- QuantitySubQuotaSold(CORN) c_l_EnforceCattleFeedRequirement(CORN)_ -1
- QuantitySubQuotaSold(CORN) c_u_LimitAmountSold(CORN)_ 1
- QuantitySubQuotaSold(CORN) r_l_EnforceQuotas(CORN)_ 1
- QuantitySubQuotaSold(CORN) r_u_EnforceQuotas(CORN)_ 1
- QuantitySubQuotaSold(SUGAR_BEETS) Total_Cost_Objective -36
- QuantitySubQuotaSold(SUGAR_BEETS) c_l_EnforceCattleFeedRequirement(SUGAR_BEETS)_ -1
- QuantitySubQuotaSold(SUGAR_BEETS) c_u_LimitAmountSold(SUGAR_BEETS)_ 1
- QuantitySubQuotaSold(SUGAR_BEETS) r_l_EnforceQuotas(SUGAR_BEETS)_ 1
- QuantitySubQuotaSold(SUGAR_BEETS) r_u_EnforceQuotas(SUGAR_BEETS)_ 1
- QuantitySubQuotaSold(WHEAT) Total_Cost_Objective -170
- QuantitySubQuotaSold(WHEAT) c_l_EnforceCattleFeedRequirement(WHEAT)_ -1
- QuantitySubQuotaSold(WHEAT) c_u_LimitAmountSold(WHEAT)_ 1
- QuantitySubQuotaSold(WHEAT) r_l_EnforceQuotas(WHEAT)_ 1
- QuantitySubQuotaSold(WHEAT) r_u_EnforceQuotas(WHEAT)_ 1
- QuantitySuperQuotaSold(CORN) c_l_EnforceCattleFeedRequirement(CORN)_ -1
- QuantitySuperQuotaSold(CORN) c_u_LimitAmountSold(CORN)_ 1
- QuantitySuperQuotaSold(SUGAR_BEETS) Total_Cost_Objective -10
- QuantitySuperQuotaSold(SUGAR_BEETS) c_l_EnforceCattleFeedRequirement(SUGAR_BEETS)_ -1
- QuantitySuperQuotaSold(SUGAR_BEETS) c_u_LimitAmountSold(SUGAR_BEETS)_ 1
- QuantitySuperQuotaSold(WHEAT) c_l_EnforceCattleFeedRequirement(WHEAT)_ -1
- QuantitySuperQuotaSold(WHEAT) c_u_LimitAmountSold(WHEAT)_ 1
- ONE_VAR_CONSTANT Total_Cost_Objective 0
- ONE_VAR_CONSTANT c_e_ONE_VAR_CONSTANT 1
-RHS
- RHS c_u_ConstrainTotalAcreage_ 500
- RHS c_l_EnforceCattleFeedRequirement(CORN)_ 240
- RHS c_l_EnforceCattleFeedRequirement(SUGAR_BEETS)_ 0
- RHS c_l_EnforceCattleFeedRequirement(WHEAT)_ 200
- RHS c_u_LimitAmountSold(CORN)_ 0
- RHS c_u_LimitAmountSold(SUGAR_BEETS)_ 0
- RHS c_u_LimitAmountSold(WHEAT)_ 0
- RHS r_l_EnforceQuotas(CORN)_ 0
- RHS r_u_EnforceQuotas(CORN)_ 100000
- RHS r_l_EnforceQuotas(SUGAR_BEETS)_ 0
- RHS r_u_EnforceQuotas(SUGAR_BEETS)_ 6000
- RHS r_l_EnforceQuotas(WHEAT)_ 0
- RHS r_u_EnforceQuotas(WHEAT)_ 100000
- RHS c_e_ONE_VAR_CONSTANT 1
-BOUNDS
- LO BOUND DevotedAcreage(CORN) 0
- UP BOUND DevotedAcreage(CORN) 500
- LO BOUND DevotedAcreage(SUGAR_BEETS) 0
- UP BOUND DevotedAcreage(SUGAR_BEETS) 500
- LO BOUND DevotedAcreage(WHEAT) 0
- UP BOUND DevotedAcreage(WHEAT) 500
- LO BOUND QuantityPurchased(CORN) 0
- LO BOUND QuantityPurchased(SUGAR_BEETS) 0
- LO BOUND QuantityPurchased(WHEAT) 0
- LO BOUND QuantitySubQuotaSold(CORN) 0
- LO BOUND QuantitySubQuotaSold(SUGAR_BEETS) 0
- LO BOUND QuantitySubQuotaSold(WHEAT) 0
- LO BOUND QuantitySuperQuotaSold(CORN) 0
- LO BOUND QuantitySuperQuotaSold(SUGAR_BEETS) 0
- LO BOUND QuantitySuperQuotaSold(WHEAT) 0
-ENDATA
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_symbolic_names_baseline/scenario_files/farmer.mps.det.BelowAverageScenario b/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_symbolic_names_baseline/scenario_files/farmer.mps.det.BelowAverageScenario
deleted file mode 100644
index cc1b5a64131..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_symbolic_names_baseline/scenario_files/farmer.mps.det.BelowAverageScenario
+++ /dev/null
@@ -1,97 +0,0 @@
-* Source: Pyomo MPS Writer
-* Format: Free MPS
-*
-NAME ZeroStochasticData
-OBJSENSE
- MIN
-ROWS
- N Total_Cost_Objective
- L c_u_ConstrainTotalAcreage_
- G c_l_EnforceCattleFeedRequirement(CORN)_
- G c_l_EnforceCattleFeedRequirement(SUGAR_BEETS)_
- G c_l_EnforceCattleFeedRequirement(WHEAT)_
- L c_u_LimitAmountSold(CORN)_
- L c_u_LimitAmountSold(SUGAR_BEETS)_
- L c_u_LimitAmountSold(WHEAT)_
- G r_l_EnforceQuotas(CORN)_
- L r_u_EnforceQuotas(CORN)_
- G r_l_EnforceQuotas(SUGAR_BEETS)_
- L r_u_EnforceQuotas(SUGAR_BEETS)_
- G r_l_EnforceQuotas(WHEAT)_
- L r_u_EnforceQuotas(WHEAT)_
- E c_e_ONE_VAR_CONSTANT
-COLUMNS
- DevotedAcreage(CORN) Total_Cost_Objective 230
- DevotedAcreage(CORN) c_u_ConstrainTotalAcreage_ 1
- DevotedAcreage(CORN) c_l_EnforceCattleFeedRequirement(CORN)_ -9876543210
- DevotedAcreage(CORN) c_u_LimitAmountSold(CORN)_ -9876543210
- DevotedAcreage(SUGAR_BEETS) Total_Cost_Objective 260
- DevotedAcreage(SUGAR_BEETS) c_u_ConstrainTotalAcreage_ 1
- DevotedAcreage(SUGAR_BEETS) c_l_EnforceCattleFeedRequirement(SUGAR_BEETS)_ -9876543210
- DevotedAcreage(SUGAR_BEETS) c_u_LimitAmountSold(SUGAR_BEETS)_ -9876543210
- DevotedAcreage(WHEAT) Total_Cost_Objective 150
- DevotedAcreage(WHEAT) c_u_ConstrainTotalAcreage_ 1
- DevotedAcreage(WHEAT) c_l_EnforceCattleFeedRequirement(WHEAT)_ -9876543210
- DevotedAcreage(WHEAT) c_u_LimitAmountSold(WHEAT)_ -9876543210
- QuantityPurchased(CORN) Total_Cost_Objective 210
- QuantityPurchased(CORN) c_l_EnforceCattleFeedRequirement(CORN)_ 1
- QuantityPurchased(SUGAR_BEETS) Total_Cost_Objective 100000
- QuantityPurchased(SUGAR_BEETS) c_l_EnforceCattleFeedRequirement(SUGAR_BEETS)_ 1
- QuantityPurchased(WHEAT) Total_Cost_Objective 238
- QuantityPurchased(WHEAT) c_l_EnforceCattleFeedRequirement(WHEAT)_ 1
- QuantitySubQuotaSold(CORN) Total_Cost_Objective -150
- QuantitySubQuotaSold(CORN) c_l_EnforceCattleFeedRequirement(CORN)_ -1
- QuantitySubQuotaSold(CORN) c_u_LimitAmountSold(CORN)_ 1
- QuantitySubQuotaSold(CORN) r_l_EnforceQuotas(CORN)_ 1
- QuantitySubQuotaSold(CORN) r_u_EnforceQuotas(CORN)_ 1
- QuantitySubQuotaSold(SUGAR_BEETS) Total_Cost_Objective -36
- QuantitySubQuotaSold(SUGAR_BEETS) c_l_EnforceCattleFeedRequirement(SUGAR_BEETS)_ -1
- QuantitySubQuotaSold(SUGAR_BEETS) c_u_LimitAmountSold(SUGAR_BEETS)_ 1
- QuantitySubQuotaSold(SUGAR_BEETS) r_l_EnforceQuotas(SUGAR_BEETS)_ 1
- QuantitySubQuotaSold(SUGAR_BEETS) r_u_EnforceQuotas(SUGAR_BEETS)_ 1
- QuantitySubQuotaSold(WHEAT) Total_Cost_Objective -170
- QuantitySubQuotaSold(WHEAT) c_l_EnforceCattleFeedRequirement(WHEAT)_ -1
- QuantitySubQuotaSold(WHEAT) c_u_LimitAmountSold(WHEAT)_ 1
- QuantitySubQuotaSold(WHEAT) r_l_EnforceQuotas(WHEAT)_ 1
- QuantitySubQuotaSold(WHEAT) r_u_EnforceQuotas(WHEAT)_ 1
- QuantitySuperQuotaSold(CORN) c_l_EnforceCattleFeedRequirement(CORN)_ -1
- QuantitySuperQuotaSold(CORN) c_u_LimitAmountSold(CORN)_ 1
- QuantitySuperQuotaSold(SUGAR_BEETS) Total_Cost_Objective -10
- QuantitySuperQuotaSold(SUGAR_BEETS) c_l_EnforceCattleFeedRequirement(SUGAR_BEETS)_ -1
- QuantitySuperQuotaSold(SUGAR_BEETS) c_u_LimitAmountSold(SUGAR_BEETS)_ 1
- QuantitySuperQuotaSold(WHEAT) c_l_EnforceCattleFeedRequirement(WHEAT)_ -1
- QuantitySuperQuotaSold(WHEAT) c_u_LimitAmountSold(WHEAT)_ 1
- ONE_VAR_CONSTANT Total_Cost_Objective 0
- ONE_VAR_CONSTANT c_e_ONE_VAR_CONSTANT 1
-RHS
- RHS c_u_ConstrainTotalAcreage_ 500
- RHS c_l_EnforceCattleFeedRequirement(CORN)_ 240
- RHS c_l_EnforceCattleFeedRequirement(SUGAR_BEETS)_ 0
- RHS c_l_EnforceCattleFeedRequirement(WHEAT)_ 200
- RHS c_u_LimitAmountSold(CORN)_ 0
- RHS c_u_LimitAmountSold(SUGAR_BEETS)_ 0
- RHS c_u_LimitAmountSold(WHEAT)_ 0
- RHS r_l_EnforceQuotas(CORN)_ 0
- RHS r_u_EnforceQuotas(CORN)_ 100000
- RHS r_l_EnforceQuotas(SUGAR_BEETS)_ 0
- RHS r_u_EnforceQuotas(SUGAR_BEETS)_ 6000
- RHS r_l_EnforceQuotas(WHEAT)_ 0
- RHS r_u_EnforceQuotas(WHEAT)_ 100000
- RHS c_e_ONE_VAR_CONSTANT 1
-BOUNDS
- LO BOUND DevotedAcreage(CORN) 0
- UP BOUND DevotedAcreage(CORN) 500
- LO BOUND DevotedAcreage(SUGAR_BEETS) 0
- UP BOUND DevotedAcreage(SUGAR_BEETS) 500
- LO BOUND DevotedAcreage(WHEAT) 0
- UP BOUND DevotedAcreage(WHEAT) 500
- LO BOUND QuantityPurchased(CORN) 0
- LO BOUND QuantityPurchased(SUGAR_BEETS) 0
- LO BOUND QuantityPurchased(WHEAT) 0
- LO BOUND QuantitySubQuotaSold(CORN) 0
- LO BOUND QuantitySubQuotaSold(SUGAR_BEETS) 0
- LO BOUND QuantitySubQuotaSold(WHEAT) 0
- LO BOUND QuantitySuperQuotaSold(CORN) 0
- LO BOUND QuantitySuperQuotaSold(SUGAR_BEETS) 0
- LO BOUND QuantitySuperQuotaSold(WHEAT) 0
-ENDATA
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_symbolic_names_baseline/scenario_files/farmer.mps.symbols.AboveAverageScenario b/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_symbolic_names_baseline/scenario_files/farmer.mps.symbols.AboveAverageScenario
deleted file mode 100644
index e973348847d..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_symbolic_names_baseline/scenario_files/farmer.mps.symbols.AboveAverageScenario
+++ /dev/null
@@ -1,3 +0,0 @@
-DevotedAcreage(CORN) DevotedAcreage:$CORN
-DevotedAcreage(SUGAR_BEETS) DevotedAcreage:$SUGAR_BEETS
-DevotedAcreage(WHEAT) DevotedAcreage:$WHEAT
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_symbolic_names_baseline/scenario_files/farmer.mps.symbols.AverageScenario b/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_symbolic_names_baseline/scenario_files/farmer.mps.symbols.AverageScenario
deleted file mode 100644
index e973348847d..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_symbolic_names_baseline/scenario_files/farmer.mps.symbols.AverageScenario
+++ /dev/null
@@ -1,3 +0,0 @@
-DevotedAcreage(CORN) DevotedAcreage:$CORN
-DevotedAcreage(SUGAR_BEETS) DevotedAcreage:$SUGAR_BEETS
-DevotedAcreage(WHEAT) DevotedAcreage:$WHEAT
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_symbolic_names_baseline/scenario_files/farmer.mps.symbols.BelowAverageScenario b/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_symbolic_names_baseline/scenario_files/farmer.mps.symbols.BelowAverageScenario
deleted file mode 100644
index e973348847d..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_symbolic_names_baseline/scenario_files/farmer.mps.symbols.BelowAverageScenario
+++ /dev/null
@@ -1,3 +0,0 @@
-DevotedAcreage(CORN) DevotedAcreage:$CORN
-DevotedAcreage(SUGAR_BEETS) DevotedAcreage:$SUGAR_BEETS
-DevotedAcreage(WHEAT) DevotedAcreage:$WHEAT
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_symbolic_names_baseline/scenario_files/farmer.row.AboveAverageScenario b/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_symbolic_names_baseline/scenario_files/farmer.row.AboveAverageScenario
deleted file mode 100644
index 0bf2f5edad0..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_symbolic_names_baseline/scenario_files/farmer.row.AboveAverageScenario
+++ /dev/null
@@ -1,15 +0,0 @@
-Total_Cost_Objective
-c_u_ConstrainTotalAcreage_
-c_l_EnforceCattleFeedRequirement(CORN)_
-c_l_EnforceCattleFeedRequirement(SUGAR_BEETS)_
-c_l_EnforceCattleFeedRequirement(WHEAT)_
-c_u_LimitAmountSold(CORN)_
-c_u_LimitAmountSold(SUGAR_BEETS)_
-c_u_LimitAmountSold(WHEAT)_
-r_l_EnforceQuotas(CORN)_
-r_u_EnforceQuotas(CORN)_
-r_l_EnforceQuotas(SUGAR_BEETS)_
-r_u_EnforceQuotas(SUGAR_BEETS)_
-r_l_EnforceQuotas(WHEAT)_
-r_u_EnforceQuotas(WHEAT)_
-c_e_ONE_VAR_CONSTANT
\ No newline at end of file
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_symbolic_names_baseline/scenario_files/farmer.row.AverageScenario b/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_symbolic_names_baseline/scenario_files/farmer.row.AverageScenario
deleted file mode 100644
index 0bf2f5edad0..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_symbolic_names_baseline/scenario_files/farmer.row.AverageScenario
+++ /dev/null
@@ -1,15 +0,0 @@
-Total_Cost_Objective
-c_u_ConstrainTotalAcreage_
-c_l_EnforceCattleFeedRequirement(CORN)_
-c_l_EnforceCattleFeedRequirement(SUGAR_BEETS)_
-c_l_EnforceCattleFeedRequirement(WHEAT)_
-c_u_LimitAmountSold(CORN)_
-c_u_LimitAmountSold(SUGAR_BEETS)_
-c_u_LimitAmountSold(WHEAT)_
-r_l_EnforceQuotas(CORN)_
-r_u_EnforceQuotas(CORN)_
-r_l_EnforceQuotas(SUGAR_BEETS)_
-r_u_EnforceQuotas(SUGAR_BEETS)_
-r_l_EnforceQuotas(WHEAT)_
-r_u_EnforceQuotas(WHEAT)_
-c_e_ONE_VAR_CONSTANT
\ No newline at end of file
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_symbolic_names_baseline/scenario_files/farmer.row.BelowAverageScenario b/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_symbolic_names_baseline/scenario_files/farmer.row.BelowAverageScenario
deleted file mode 100644
index 0bf2f5edad0..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_symbolic_names_baseline/scenario_files/farmer.row.BelowAverageScenario
+++ /dev/null
@@ -1,15 +0,0 @@
-Total_Cost_Objective
-c_u_ConstrainTotalAcreage_
-c_l_EnforceCattleFeedRequirement(CORN)_
-c_l_EnforceCattleFeedRequirement(SUGAR_BEETS)_
-c_l_EnforceCattleFeedRequirement(WHEAT)_
-c_u_LimitAmountSold(CORN)_
-c_u_LimitAmountSold(SUGAR_BEETS)_
-c_u_LimitAmountSold(WHEAT)_
-r_l_EnforceQuotas(CORN)_
-r_u_EnforceQuotas(CORN)_
-r_l_EnforceQuotas(SUGAR_BEETS)_
-r_u_EnforceQuotas(SUGAR_BEETS)_
-r_l_EnforceQuotas(WHEAT)_
-r_u_EnforceQuotas(WHEAT)_
-c_e_ONE_VAR_CONSTANT
\ No newline at end of file
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_symbolic_names_baseline/scenario_files/farmer.setup.mps.AboveAverageScenario b/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_symbolic_names_baseline/scenario_files/farmer.setup.mps.AboveAverageScenario
deleted file mode 100644
index 1e177d4635f..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_symbolic_names_baseline/scenario_files/farmer.setup.mps.AboveAverageScenario
+++ /dev/null
@@ -1,93 +0,0 @@
-* Source: Pyomo MPS Writer
-* Format: Free MPS
-*
-NAME AboveAverageScenario
-OBJSENSE
- MIN
-ROWS
- N Total_Cost_Objective
- L c_u_ConstrainTotalAcreage_
- G r_l_EnforceQuotas(CORN)_
- L r_u_EnforceQuotas(CORN)_
- G r_l_EnforceQuotas(SUGAR_BEETS)_
- L r_u_EnforceQuotas(SUGAR_BEETS)_
- G r_l_EnforceQuotas(WHEAT)_
- L r_u_EnforceQuotas(WHEAT)_
- G c_l_EnforceCattleFeedRequirement(CORN)_
- G c_l_EnforceCattleFeedRequirement(SUGAR_BEETS)_
- G c_l_EnforceCattleFeedRequirement(WHEAT)_
- L c_u_LimitAmountSold(CORN)_
- L c_u_LimitAmountSold(SUGAR_BEETS)_
- L c_u_LimitAmountSold(WHEAT)_
-COLUMNS
- DevotedAcreage(CORN) Total_Cost_Objective 230
- DevotedAcreage(CORN) c_u_ConstrainTotalAcreage_ 1
- DevotedAcreage(CORN) c_l_EnforceCattleFeedRequirement(CORN)_ 3.6000000000000001
- DevotedAcreage(CORN) c_u_LimitAmountSold(CORN)_ -3.6000000000000001
- DevotedAcreage(SUGAR_BEETS) Total_Cost_Objective 260
- DevotedAcreage(SUGAR_BEETS) c_u_ConstrainTotalAcreage_ 1
- DevotedAcreage(SUGAR_BEETS) c_l_EnforceCattleFeedRequirement(SUGAR_BEETS)_ 24
- DevotedAcreage(SUGAR_BEETS) c_u_LimitAmountSold(SUGAR_BEETS)_ -24
- DevotedAcreage(WHEAT) Total_Cost_Objective 150
- DevotedAcreage(WHEAT) c_u_ConstrainTotalAcreage_ 1
- DevotedAcreage(WHEAT) c_l_EnforceCattleFeedRequirement(WHEAT)_ 3
- DevotedAcreage(WHEAT) c_u_LimitAmountSold(WHEAT)_ -3
- QuantitySubQuotaSold(CORN) Total_Cost_Objective -150
- QuantitySubQuotaSold(CORN) r_l_EnforceQuotas(CORN)_ 1
- QuantitySubQuotaSold(CORN) r_u_EnforceQuotas(CORN)_ 1
- QuantitySubQuotaSold(CORN) c_l_EnforceCattleFeedRequirement(CORN)_ -1
- QuantitySubQuotaSold(CORN) c_u_LimitAmountSold(CORN)_ 1
- QuantitySubQuotaSold(SUGAR_BEETS) Total_Cost_Objective -36
- QuantitySubQuotaSold(SUGAR_BEETS) r_l_EnforceQuotas(SUGAR_BEETS)_ 1
- QuantitySubQuotaSold(SUGAR_BEETS) r_u_EnforceQuotas(SUGAR_BEETS)_ 1
- QuantitySubQuotaSold(SUGAR_BEETS) c_l_EnforceCattleFeedRequirement(SUGAR_BEETS)_ -1
- QuantitySubQuotaSold(SUGAR_BEETS) c_u_LimitAmountSold(SUGAR_BEETS)_ 1
- QuantitySubQuotaSold(WHEAT) Total_Cost_Objective -170
- QuantitySubQuotaSold(WHEAT) r_l_EnforceQuotas(WHEAT)_ 1
- QuantitySubQuotaSold(WHEAT) r_u_EnforceQuotas(WHEAT)_ 1
- QuantitySubQuotaSold(WHEAT) c_l_EnforceCattleFeedRequirement(WHEAT)_ -1
- QuantitySubQuotaSold(WHEAT) c_u_LimitAmountSold(WHEAT)_ 1
- QuantitySuperQuotaSold(CORN) c_l_EnforceCattleFeedRequirement(CORN)_ -1
- QuantitySuperQuotaSold(CORN) c_u_LimitAmountSold(CORN)_ 1
- QuantitySuperQuotaSold(SUGAR_BEETS) Total_Cost_Objective -10
- QuantitySuperQuotaSold(SUGAR_BEETS) c_l_EnforceCattleFeedRequirement(SUGAR_BEETS)_ -1
- QuantitySuperQuotaSold(SUGAR_BEETS) c_u_LimitAmountSold(SUGAR_BEETS)_ 1
- QuantitySuperQuotaSold(WHEAT) c_l_EnforceCattleFeedRequirement(WHEAT)_ -1
- QuantitySuperQuotaSold(WHEAT) c_u_LimitAmountSold(WHEAT)_ 1
- QuantityPurchased(CORN) Total_Cost_Objective 210
- QuantityPurchased(CORN) c_l_EnforceCattleFeedRequirement(CORN)_ 1
- QuantityPurchased(SUGAR_BEETS) Total_Cost_Objective 100000
- QuantityPurchased(SUGAR_BEETS) c_l_EnforceCattleFeedRequirement(SUGAR_BEETS)_ 1
- QuantityPurchased(WHEAT) Total_Cost_Objective 238
- QuantityPurchased(WHEAT) c_l_EnforceCattleFeedRequirement(WHEAT)_ 1
-RHS
- RHS c_u_ConstrainTotalAcreage_ 500
- RHS r_l_EnforceQuotas(CORN)_ 0
- RHS r_u_EnforceQuotas(CORN)_ 100000
- RHS r_l_EnforceQuotas(SUGAR_BEETS)_ 0
- RHS r_u_EnforceQuotas(SUGAR_BEETS)_ 6000
- RHS r_l_EnforceQuotas(WHEAT)_ 0
- RHS r_u_EnforceQuotas(WHEAT)_ 100000
- RHS c_l_EnforceCattleFeedRequirement(CORN)_ 240
- RHS c_l_EnforceCattleFeedRequirement(SUGAR_BEETS)_ 0
- RHS c_l_EnforceCattleFeedRequirement(WHEAT)_ 200
- RHS c_u_LimitAmountSold(CORN)_ 0
- RHS c_u_LimitAmountSold(SUGAR_BEETS)_ 0
- RHS c_u_LimitAmountSold(WHEAT)_ 0
-BOUNDS
- LO BOUND DevotedAcreage(CORN) 0
- UP BOUND DevotedAcreage(CORN) 500
- LO BOUND DevotedAcreage(SUGAR_BEETS) 0
- UP BOUND DevotedAcreage(SUGAR_BEETS) 500
- LO BOUND DevotedAcreage(WHEAT) 0
- UP BOUND DevotedAcreage(WHEAT) 500
- LO BOUND QuantitySubQuotaSold(CORN) 0
- LO BOUND QuantitySubQuotaSold(SUGAR_BEETS) 0
- LO BOUND QuantitySubQuotaSold(WHEAT) 0
- LO BOUND QuantitySuperQuotaSold(CORN) 0
- LO BOUND QuantitySuperQuotaSold(SUGAR_BEETS) 0
- LO BOUND QuantitySuperQuotaSold(WHEAT) 0
- LO BOUND QuantityPurchased(CORN) 0
- LO BOUND QuantityPurchased(SUGAR_BEETS) 0
- LO BOUND QuantityPurchased(WHEAT) 0
-ENDATA
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_symbolic_names_baseline/scenario_files/farmer.setup.mps.AverageScenario b/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_symbolic_names_baseline/scenario_files/farmer.setup.mps.AverageScenario
deleted file mode 100644
index b825caa3401..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_symbolic_names_baseline/scenario_files/farmer.setup.mps.AverageScenario
+++ /dev/null
@@ -1,93 +0,0 @@
-* Source: Pyomo MPS Writer
-* Format: Free MPS
-*
-NAME AverageScenario
-OBJSENSE
- MIN
-ROWS
- N Total_Cost_Objective
- L c_u_ConstrainTotalAcreage_
- G r_l_EnforceQuotas(CORN)_
- L r_u_EnforceQuotas(CORN)_
- G r_l_EnforceQuotas(SUGAR_BEETS)_
- L r_u_EnforceQuotas(SUGAR_BEETS)_
- G r_l_EnforceQuotas(WHEAT)_
- L r_u_EnforceQuotas(WHEAT)_
- G c_l_EnforceCattleFeedRequirement(CORN)_
- G c_l_EnforceCattleFeedRequirement(SUGAR_BEETS)_
- G c_l_EnforceCattleFeedRequirement(WHEAT)_
- L c_u_LimitAmountSold(CORN)_
- L c_u_LimitAmountSold(SUGAR_BEETS)_
- L c_u_LimitAmountSold(WHEAT)_
-COLUMNS
- DevotedAcreage(CORN) Total_Cost_Objective 230
- DevotedAcreage(CORN) c_u_ConstrainTotalAcreage_ 1
- DevotedAcreage(CORN) c_l_EnforceCattleFeedRequirement(CORN)_ 3
- DevotedAcreage(CORN) c_u_LimitAmountSold(CORN)_ -3
- DevotedAcreage(SUGAR_BEETS) Total_Cost_Objective 260
- DevotedAcreage(SUGAR_BEETS) c_u_ConstrainTotalAcreage_ 1
- DevotedAcreage(SUGAR_BEETS) c_l_EnforceCattleFeedRequirement(SUGAR_BEETS)_ 20
- DevotedAcreage(SUGAR_BEETS) c_u_LimitAmountSold(SUGAR_BEETS)_ -20
- DevotedAcreage(WHEAT) Total_Cost_Objective 150
- DevotedAcreage(WHEAT) c_u_ConstrainTotalAcreage_ 1
- DevotedAcreage(WHEAT) c_l_EnforceCattleFeedRequirement(WHEAT)_ 2.5
- DevotedAcreage(WHEAT) c_u_LimitAmountSold(WHEAT)_ -2.5
- QuantitySubQuotaSold(CORN) Total_Cost_Objective -150
- QuantitySubQuotaSold(CORN) r_l_EnforceQuotas(CORN)_ 1
- QuantitySubQuotaSold(CORN) r_u_EnforceQuotas(CORN)_ 1
- QuantitySubQuotaSold(CORN) c_l_EnforceCattleFeedRequirement(CORN)_ -1
- QuantitySubQuotaSold(CORN) c_u_LimitAmountSold(CORN)_ 1
- QuantitySubQuotaSold(SUGAR_BEETS) Total_Cost_Objective -36
- QuantitySubQuotaSold(SUGAR_BEETS) r_l_EnforceQuotas(SUGAR_BEETS)_ 1
- QuantitySubQuotaSold(SUGAR_BEETS) r_u_EnforceQuotas(SUGAR_BEETS)_ 1
- QuantitySubQuotaSold(SUGAR_BEETS) c_l_EnforceCattleFeedRequirement(SUGAR_BEETS)_ -1
- QuantitySubQuotaSold(SUGAR_BEETS) c_u_LimitAmountSold(SUGAR_BEETS)_ 1
- QuantitySubQuotaSold(WHEAT) Total_Cost_Objective -170
- QuantitySubQuotaSold(WHEAT) r_l_EnforceQuotas(WHEAT)_ 1
- QuantitySubQuotaSold(WHEAT) r_u_EnforceQuotas(WHEAT)_ 1
- QuantitySubQuotaSold(WHEAT) c_l_EnforceCattleFeedRequirement(WHEAT)_ -1
- QuantitySubQuotaSold(WHEAT) c_u_LimitAmountSold(WHEAT)_ 1
- QuantitySuperQuotaSold(CORN) c_l_EnforceCattleFeedRequirement(CORN)_ -1
- QuantitySuperQuotaSold(CORN) c_u_LimitAmountSold(CORN)_ 1
- QuantitySuperQuotaSold(SUGAR_BEETS) Total_Cost_Objective -10
- QuantitySuperQuotaSold(SUGAR_BEETS) c_l_EnforceCattleFeedRequirement(SUGAR_BEETS)_ -1
- QuantitySuperQuotaSold(SUGAR_BEETS) c_u_LimitAmountSold(SUGAR_BEETS)_ 1
- QuantitySuperQuotaSold(WHEAT) c_l_EnforceCattleFeedRequirement(WHEAT)_ -1
- QuantitySuperQuotaSold(WHEAT) c_u_LimitAmountSold(WHEAT)_ 1
- QuantityPurchased(CORN) Total_Cost_Objective 210
- QuantityPurchased(CORN) c_l_EnforceCattleFeedRequirement(CORN)_ 1
- QuantityPurchased(SUGAR_BEETS) Total_Cost_Objective 100000
- QuantityPurchased(SUGAR_BEETS) c_l_EnforceCattleFeedRequirement(SUGAR_BEETS)_ 1
- QuantityPurchased(WHEAT) Total_Cost_Objective 238
- QuantityPurchased(WHEAT) c_l_EnforceCattleFeedRequirement(WHEAT)_ 1
-RHS
- RHS c_u_ConstrainTotalAcreage_ 500
- RHS r_l_EnforceQuotas(CORN)_ 0
- RHS r_u_EnforceQuotas(CORN)_ 100000
- RHS r_l_EnforceQuotas(SUGAR_BEETS)_ 0
- RHS r_u_EnforceQuotas(SUGAR_BEETS)_ 6000
- RHS r_l_EnforceQuotas(WHEAT)_ 0
- RHS r_u_EnforceQuotas(WHEAT)_ 100000
- RHS c_l_EnforceCattleFeedRequirement(CORN)_ 240
- RHS c_l_EnforceCattleFeedRequirement(SUGAR_BEETS)_ 0
- RHS c_l_EnforceCattleFeedRequirement(WHEAT)_ 200
- RHS c_u_LimitAmountSold(CORN)_ 0
- RHS c_u_LimitAmountSold(SUGAR_BEETS)_ 0
- RHS c_u_LimitAmountSold(WHEAT)_ 0
-BOUNDS
- LO BOUND DevotedAcreage(CORN) 0
- UP BOUND DevotedAcreage(CORN) 500
- LO BOUND DevotedAcreage(SUGAR_BEETS) 0
- UP BOUND DevotedAcreage(SUGAR_BEETS) 500
- LO BOUND DevotedAcreage(WHEAT) 0
- UP BOUND DevotedAcreage(WHEAT) 500
- LO BOUND QuantitySubQuotaSold(CORN) 0
- LO BOUND QuantitySubQuotaSold(SUGAR_BEETS) 0
- LO BOUND QuantitySubQuotaSold(WHEAT) 0
- LO BOUND QuantitySuperQuotaSold(CORN) 0
- LO BOUND QuantitySuperQuotaSold(SUGAR_BEETS) 0
- LO BOUND QuantitySuperQuotaSold(WHEAT) 0
- LO BOUND QuantityPurchased(CORN) 0
- LO BOUND QuantityPurchased(SUGAR_BEETS) 0
- LO BOUND QuantityPurchased(WHEAT) 0
-ENDATA
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_symbolic_names_baseline/scenario_files/farmer.setup.mps.BelowAverageScenario b/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_symbolic_names_baseline/scenario_files/farmer.setup.mps.BelowAverageScenario
deleted file mode 100644
index 46d653bd5da..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_symbolic_names_baseline/scenario_files/farmer.setup.mps.BelowAverageScenario
+++ /dev/null
@@ -1,93 +0,0 @@
-* Source: Pyomo MPS Writer
-* Format: Free MPS
-*
-NAME BelowAverageScenario
-OBJSENSE
- MIN
-ROWS
- N Total_Cost_Objective
- L c_u_ConstrainTotalAcreage_
- G r_l_EnforceQuotas(CORN)_
- L r_u_EnforceQuotas(CORN)_
- G r_l_EnforceQuotas(SUGAR_BEETS)_
- L r_u_EnforceQuotas(SUGAR_BEETS)_
- G r_l_EnforceQuotas(WHEAT)_
- L r_u_EnforceQuotas(WHEAT)_
- G c_l_EnforceCattleFeedRequirement(CORN)_
- G c_l_EnforceCattleFeedRequirement(SUGAR_BEETS)_
- G c_l_EnforceCattleFeedRequirement(WHEAT)_
- L c_u_LimitAmountSold(CORN)_
- L c_u_LimitAmountSold(SUGAR_BEETS)_
- L c_u_LimitAmountSold(WHEAT)_
-COLUMNS
- DevotedAcreage(CORN) Total_Cost_Objective 230
- DevotedAcreage(CORN) c_u_ConstrainTotalAcreage_ 1
- DevotedAcreage(CORN) c_l_EnforceCattleFeedRequirement(CORN)_ 2.3999999999999999
- DevotedAcreage(CORN) c_u_LimitAmountSold(CORN)_ -2.3999999999999999
- DevotedAcreage(SUGAR_BEETS) Total_Cost_Objective 260
- DevotedAcreage(SUGAR_BEETS) c_u_ConstrainTotalAcreage_ 1
- DevotedAcreage(SUGAR_BEETS) c_l_EnforceCattleFeedRequirement(SUGAR_BEETS)_ 16
- DevotedAcreage(SUGAR_BEETS) c_u_LimitAmountSold(SUGAR_BEETS)_ -16
- DevotedAcreage(WHEAT) Total_Cost_Objective 150
- DevotedAcreage(WHEAT) c_u_ConstrainTotalAcreage_ 1
- DevotedAcreage(WHEAT) c_l_EnforceCattleFeedRequirement(WHEAT)_ 2
- DevotedAcreage(WHEAT) c_u_LimitAmountSold(WHEAT)_ -2
- QuantitySubQuotaSold(CORN) Total_Cost_Objective -150
- QuantitySubQuotaSold(CORN) r_l_EnforceQuotas(CORN)_ 1
- QuantitySubQuotaSold(CORN) r_u_EnforceQuotas(CORN)_ 1
- QuantitySubQuotaSold(CORN) c_l_EnforceCattleFeedRequirement(CORN)_ -1
- QuantitySubQuotaSold(CORN) c_u_LimitAmountSold(CORN)_ 1
- QuantitySubQuotaSold(SUGAR_BEETS) Total_Cost_Objective -36
- QuantitySubQuotaSold(SUGAR_BEETS) r_l_EnforceQuotas(SUGAR_BEETS)_ 1
- QuantitySubQuotaSold(SUGAR_BEETS) r_u_EnforceQuotas(SUGAR_BEETS)_ 1
- QuantitySubQuotaSold(SUGAR_BEETS) c_l_EnforceCattleFeedRequirement(SUGAR_BEETS)_ -1
- QuantitySubQuotaSold(SUGAR_BEETS) c_u_LimitAmountSold(SUGAR_BEETS)_ 1
- QuantitySubQuotaSold(WHEAT) Total_Cost_Objective -170
- QuantitySubQuotaSold(WHEAT) r_l_EnforceQuotas(WHEAT)_ 1
- QuantitySubQuotaSold(WHEAT) r_u_EnforceQuotas(WHEAT)_ 1
- QuantitySubQuotaSold(WHEAT) c_l_EnforceCattleFeedRequirement(WHEAT)_ -1
- QuantitySubQuotaSold(WHEAT) c_u_LimitAmountSold(WHEAT)_ 1
- QuantitySuperQuotaSold(CORN) c_l_EnforceCattleFeedRequirement(CORN)_ -1
- QuantitySuperQuotaSold(CORN) c_u_LimitAmountSold(CORN)_ 1
- QuantitySuperQuotaSold(SUGAR_BEETS) Total_Cost_Objective -10
- QuantitySuperQuotaSold(SUGAR_BEETS) c_l_EnforceCattleFeedRequirement(SUGAR_BEETS)_ -1
- QuantitySuperQuotaSold(SUGAR_BEETS) c_u_LimitAmountSold(SUGAR_BEETS)_ 1
- QuantitySuperQuotaSold(WHEAT) c_l_EnforceCattleFeedRequirement(WHEAT)_ -1
- QuantitySuperQuotaSold(WHEAT) c_u_LimitAmountSold(WHEAT)_ 1
- QuantityPurchased(CORN) Total_Cost_Objective 210
- QuantityPurchased(CORN) c_l_EnforceCattleFeedRequirement(CORN)_ 1
- QuantityPurchased(SUGAR_BEETS) Total_Cost_Objective 100000
- QuantityPurchased(SUGAR_BEETS) c_l_EnforceCattleFeedRequirement(SUGAR_BEETS)_ 1
- QuantityPurchased(WHEAT) Total_Cost_Objective 238
- QuantityPurchased(WHEAT) c_l_EnforceCattleFeedRequirement(WHEAT)_ 1
-RHS
- RHS c_u_ConstrainTotalAcreage_ 500
- RHS r_l_EnforceQuotas(CORN)_ 0
- RHS r_u_EnforceQuotas(CORN)_ 100000
- RHS r_l_EnforceQuotas(SUGAR_BEETS)_ 0
- RHS r_u_EnforceQuotas(SUGAR_BEETS)_ 6000
- RHS r_l_EnforceQuotas(WHEAT)_ 0
- RHS r_u_EnforceQuotas(WHEAT)_ 100000
- RHS c_l_EnforceCattleFeedRequirement(CORN)_ 240
- RHS c_l_EnforceCattleFeedRequirement(SUGAR_BEETS)_ 0
- RHS c_l_EnforceCattleFeedRequirement(WHEAT)_ 200
- RHS c_u_LimitAmountSold(CORN)_ 0
- RHS c_u_LimitAmountSold(SUGAR_BEETS)_ 0
- RHS c_u_LimitAmountSold(WHEAT)_ 0
-BOUNDS
- LO BOUND DevotedAcreage(CORN) 0
- UP BOUND DevotedAcreage(CORN) 500
- LO BOUND DevotedAcreage(SUGAR_BEETS) 0
- UP BOUND DevotedAcreage(SUGAR_BEETS) 500
- LO BOUND DevotedAcreage(WHEAT) 0
- UP BOUND DevotedAcreage(WHEAT) 500
- LO BOUND QuantitySubQuotaSold(CORN) 0
- LO BOUND QuantitySubQuotaSold(SUGAR_BEETS) 0
- LO BOUND QuantitySubQuotaSold(WHEAT) 0
- LO BOUND QuantitySuperQuotaSold(CORN) 0
- LO BOUND QuantitySuperQuotaSold(SUGAR_BEETS) 0
- LO BOUND QuantitySuperQuotaSold(WHEAT) 0
- LO BOUND QuantityPurchased(CORN) 0
- LO BOUND QuantityPurchased(SUGAR_BEETS) 0
- LO BOUND QuantityPurchased(WHEAT) 0
-ENDATA
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_symbolic_names_baseline/scenario_files/farmer.sto.AboveAverageScenario b/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_symbolic_names_baseline/scenario_files/farmer.sto.AboveAverageScenario
deleted file mode 100644
index 11764e8d6fd..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_symbolic_names_baseline/scenario_files/farmer.sto.AboveAverageScenario
+++ /dev/null
@@ -1,7 +0,0 @@
- BL BLOCK1 PERIOD2 0.33333332999999998
- DevotedAcreage(CORN) c_l_EnforceCattleFeedRequirement(CORN)_ 3.6000000000000001
- DevotedAcreage(SUGAR_BEETS) c_l_EnforceCattleFeedRequirement(SUGAR_BEETS)_ 24
- DevotedAcreage(WHEAT) c_l_EnforceCattleFeedRequirement(WHEAT)_ 3
- DevotedAcreage(CORN) c_u_LimitAmountSold(CORN)_ -3.6000000000000001
- DevotedAcreage(SUGAR_BEETS) c_u_LimitAmountSold(SUGAR_BEETS)_ -24
- DevotedAcreage(WHEAT) c_u_LimitAmountSold(WHEAT)_ -3
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_symbolic_names_baseline/scenario_files/farmer.sto.AverageScenario b/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_symbolic_names_baseline/scenario_files/farmer.sto.AverageScenario
deleted file mode 100644
index 9a1dbbdfb5c..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_symbolic_names_baseline/scenario_files/farmer.sto.AverageScenario
+++ /dev/null
@@ -1,7 +0,0 @@
- BL BLOCK1 PERIOD2 0.33333333999999998
- DevotedAcreage(CORN) c_l_EnforceCattleFeedRequirement(CORN)_ 3
- DevotedAcreage(SUGAR_BEETS) c_l_EnforceCattleFeedRequirement(SUGAR_BEETS)_ 20
- DevotedAcreage(WHEAT) c_l_EnforceCattleFeedRequirement(WHEAT)_ 2.5
- DevotedAcreage(CORN) c_u_LimitAmountSold(CORN)_ -3
- DevotedAcreage(SUGAR_BEETS) c_u_LimitAmountSold(SUGAR_BEETS)_ -20
- DevotedAcreage(WHEAT) c_u_LimitAmountSold(WHEAT)_ -2.5
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_symbolic_names_baseline/scenario_files/farmer.sto.BelowAverageScenario b/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_symbolic_names_baseline/scenario_files/farmer.sto.BelowAverageScenario
deleted file mode 100644
index 002b173fa98..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_symbolic_names_baseline/scenario_files/farmer.sto.BelowAverageScenario
+++ /dev/null
@@ -1,7 +0,0 @@
- BL BLOCK1 PERIOD2 0.33333332999999998
- DevotedAcreage(CORN) c_l_EnforceCattleFeedRequirement(CORN)_ 2.3999999999999999
- DevotedAcreage(SUGAR_BEETS) c_l_EnforceCattleFeedRequirement(SUGAR_BEETS)_ 16
- DevotedAcreage(WHEAT) c_l_EnforceCattleFeedRequirement(WHEAT)_ 2
- DevotedAcreage(CORN) c_u_LimitAmountSold(CORN)_ -2.3999999999999999
- DevotedAcreage(SUGAR_BEETS) c_u_LimitAmountSold(SUGAR_BEETS)_ -16
- DevotedAcreage(WHEAT) c_u_LimitAmountSold(WHEAT)_ -2
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_symbolic_names_baseline/scenario_files/farmer.sto.struct.AboveAverageScenario b/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_symbolic_names_baseline/scenario_files/farmer.sto.struct.AboveAverageScenario
deleted file mode 100644
index 65fbc4b8d79..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_symbolic_names_baseline/scenario_files/farmer.sto.struct.AboveAverageScenario
+++ /dev/null
@@ -1,6 +0,0 @@
-DevotedAcreage(CORN) c_l_EnforceCattleFeedRequirement(CORN)_
-DevotedAcreage(SUGAR_BEETS) c_l_EnforceCattleFeedRequirement(SUGAR_BEETS)_
-DevotedAcreage(WHEAT) c_l_EnforceCattleFeedRequirement(WHEAT)_
-DevotedAcreage(CORN) c_u_LimitAmountSold(CORN)_
-DevotedAcreage(SUGAR_BEETS) c_u_LimitAmountSold(SUGAR_BEETS)_
-DevotedAcreage(WHEAT) c_u_LimitAmountSold(WHEAT)_
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_symbolic_names_baseline/scenario_files/farmer.sto.struct.AverageScenario b/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_symbolic_names_baseline/scenario_files/farmer.sto.struct.AverageScenario
deleted file mode 100644
index 65fbc4b8d79..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_symbolic_names_baseline/scenario_files/farmer.sto.struct.AverageScenario
+++ /dev/null
@@ -1,6 +0,0 @@
-DevotedAcreage(CORN) c_l_EnforceCattleFeedRequirement(CORN)_
-DevotedAcreage(SUGAR_BEETS) c_l_EnforceCattleFeedRequirement(SUGAR_BEETS)_
-DevotedAcreage(WHEAT) c_l_EnforceCattleFeedRequirement(WHEAT)_
-DevotedAcreage(CORN) c_u_LimitAmountSold(CORN)_
-DevotedAcreage(SUGAR_BEETS) c_u_LimitAmountSold(SUGAR_BEETS)_
-DevotedAcreage(WHEAT) c_u_LimitAmountSold(WHEAT)_
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_symbolic_names_baseline/scenario_files/farmer.sto.struct.BelowAverageScenario b/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_symbolic_names_baseline/scenario_files/farmer.sto.struct.BelowAverageScenario
deleted file mode 100644
index 65fbc4b8d79..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_symbolic_names_baseline/scenario_files/farmer.sto.struct.BelowAverageScenario
+++ /dev/null
@@ -1,6 +0,0 @@
-DevotedAcreage(CORN) c_l_EnforceCattleFeedRequirement(CORN)_
-DevotedAcreage(SUGAR_BEETS) c_l_EnforceCattleFeedRequirement(SUGAR_BEETS)_
-DevotedAcreage(WHEAT) c_l_EnforceCattleFeedRequirement(WHEAT)_
-DevotedAcreage(CORN) c_u_LimitAmountSold(CORN)_
-DevotedAcreage(SUGAR_BEETS) c_u_LimitAmountSold(SUGAR_BEETS)_
-DevotedAcreage(WHEAT) c_u_LimitAmountSold(WHEAT)_
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_symbolic_names_baseline/scenario_files/farmer.tim.AboveAverageScenario b/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_symbolic_names_baseline/scenario_files/farmer.tim.AboveAverageScenario
deleted file mode 100644
index c8a6e910fb2..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_symbolic_names_baseline/scenario_files/farmer.tim.AboveAverageScenario
+++ /dev/null
@@ -1,5 +0,0 @@
-TIME farmer
-PERIODS IMPLICIT
- DevotedAcreage(CORN) Total_Cost_Objective TIME1
- QuantityPurchased(CORN) c_l_EnforceCattleFeedRequirement(CORN)_ TIME2
-ENDATA
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_symbolic_names_baseline/scenario_files/farmer.tim.AverageScenario b/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_symbolic_names_baseline/scenario_files/farmer.tim.AverageScenario
deleted file mode 100644
index c8a6e910fb2..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_symbolic_names_baseline/scenario_files/farmer.tim.AverageScenario
+++ /dev/null
@@ -1,5 +0,0 @@
-TIME farmer
-PERIODS IMPLICIT
- DevotedAcreage(CORN) Total_Cost_Objective TIME1
- QuantityPurchased(CORN) c_l_EnforceCattleFeedRequirement(CORN)_ TIME2
-ENDATA
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_symbolic_names_baseline/scenario_files/farmer.tim.BelowAverageScenario b/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_symbolic_names_baseline/scenario_files/farmer.tim.BelowAverageScenario
deleted file mode 100644
index c8a6e910fb2..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_symbolic_names_baseline/scenario_files/farmer.tim.BelowAverageScenario
+++ /dev/null
@@ -1,5 +0,0 @@
-TIME farmer
-PERIODS IMPLICIT
- DevotedAcreage(CORN) Total_Cost_Objective TIME1
- QuantityPurchased(CORN) c_l_EnforceCattleFeedRequirement(CORN)_ TIME2
-ENDATA
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_symbolic_names_ignore_derived_baseline/farmer.col b/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_symbolic_names_ignore_derived_baseline/farmer.col
deleted file mode 100644
index 3493097936d..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_symbolic_names_ignore_derived_baseline/farmer.col
+++ /dev/null
@@ -1,13 +0,0 @@
-DevotedAcreage(CORN)
-DevotedAcreage(SUGAR_BEETS)
-DevotedAcreage(WHEAT)
-QuantityPurchased(CORN)
-QuantityPurchased(SUGAR_BEETS)
-QuantityPurchased(WHEAT)
-QuantitySubQuotaSold(CORN)
-QuantitySubQuotaSold(SUGAR_BEETS)
-QuantitySubQuotaSold(WHEAT)
-QuantitySuperQuotaSold(CORN)
-QuantitySuperQuotaSold(SUGAR_BEETS)
-QuantitySuperQuotaSold(WHEAT)
-ONE_VAR_CONSTANT
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_symbolic_names_ignore_derived_baseline/farmer.cor b/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_symbolic_names_ignore_derived_baseline/farmer.cor
deleted file mode 100644
index c4a24680786..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_symbolic_names_ignore_derived_baseline/farmer.cor
+++ /dev/null
@@ -1,97 +0,0 @@
-* Source: Pyomo MPS Writer
-* Format: Free MPS
-*
-NAME BelowAverageScenario
-OBJSENSE
- MIN
-ROWS
- N Total_Cost_Objective
- L c_u_ConstrainTotalAcreage_
- G c_l_EnforceCattleFeedRequirement(CORN)_
- G c_l_EnforceCattleFeedRequirement(SUGAR_BEETS)_
- G c_l_EnforceCattleFeedRequirement(WHEAT)_
- L c_u_LimitAmountSold(CORN)_
- L c_u_LimitAmountSold(SUGAR_BEETS)_
- L c_u_LimitAmountSold(WHEAT)_
- G r_l_EnforceQuotas(CORN)_
- L r_u_EnforceQuotas(CORN)_
- G r_l_EnforceQuotas(SUGAR_BEETS)_
- L r_u_EnforceQuotas(SUGAR_BEETS)_
- G r_l_EnforceQuotas(WHEAT)_
- L r_u_EnforceQuotas(WHEAT)_
- E c_e_ONE_VAR_CONSTANT
-COLUMNS
- DevotedAcreage(CORN) Total_Cost_Objective 230
- DevotedAcreage(CORN) c_u_ConstrainTotalAcreage_ 1
- DevotedAcreage(CORN) c_l_EnforceCattleFeedRequirement(CORN)_ 2.3999999999999999
- DevotedAcreage(CORN) c_u_LimitAmountSold(CORN)_ -2.3999999999999999
- DevotedAcreage(SUGAR_BEETS) Total_Cost_Objective 260
- DevotedAcreage(SUGAR_BEETS) c_u_ConstrainTotalAcreage_ 1
- DevotedAcreage(SUGAR_BEETS) c_l_EnforceCattleFeedRequirement(SUGAR_BEETS)_ 16
- DevotedAcreage(SUGAR_BEETS) c_u_LimitAmountSold(SUGAR_BEETS)_ -16
- DevotedAcreage(WHEAT) Total_Cost_Objective 150
- DevotedAcreage(WHEAT) c_u_ConstrainTotalAcreage_ 1
- DevotedAcreage(WHEAT) c_l_EnforceCattleFeedRequirement(WHEAT)_ 2
- DevotedAcreage(WHEAT) c_u_LimitAmountSold(WHEAT)_ -2
- QuantityPurchased(CORN) Total_Cost_Objective 210
- QuantityPurchased(CORN) c_l_EnforceCattleFeedRequirement(CORN)_ 1
- QuantityPurchased(SUGAR_BEETS) Total_Cost_Objective 100000
- QuantityPurchased(SUGAR_BEETS) c_l_EnforceCattleFeedRequirement(SUGAR_BEETS)_ 1
- QuantityPurchased(WHEAT) Total_Cost_Objective 238
- QuantityPurchased(WHEAT) c_l_EnforceCattleFeedRequirement(WHEAT)_ 1
- QuantitySubQuotaSold(CORN) Total_Cost_Objective -150
- QuantitySubQuotaSold(CORN) c_l_EnforceCattleFeedRequirement(CORN)_ -1
- QuantitySubQuotaSold(CORN) c_u_LimitAmountSold(CORN)_ 1
- QuantitySubQuotaSold(CORN) r_l_EnforceQuotas(CORN)_ 1
- QuantitySubQuotaSold(CORN) r_u_EnforceQuotas(CORN)_ 1
- QuantitySubQuotaSold(SUGAR_BEETS) Total_Cost_Objective -36
- QuantitySubQuotaSold(SUGAR_BEETS) c_l_EnforceCattleFeedRequirement(SUGAR_BEETS)_ -1
- QuantitySubQuotaSold(SUGAR_BEETS) c_u_LimitAmountSold(SUGAR_BEETS)_ 1
- QuantitySubQuotaSold(SUGAR_BEETS) r_l_EnforceQuotas(SUGAR_BEETS)_ 1
- QuantitySubQuotaSold(SUGAR_BEETS) r_u_EnforceQuotas(SUGAR_BEETS)_ 1
- QuantitySubQuotaSold(WHEAT) Total_Cost_Objective -170
- QuantitySubQuotaSold(WHEAT) c_l_EnforceCattleFeedRequirement(WHEAT)_ -1
- QuantitySubQuotaSold(WHEAT) c_u_LimitAmountSold(WHEAT)_ 1
- QuantitySubQuotaSold(WHEAT) r_l_EnforceQuotas(WHEAT)_ 1
- QuantitySubQuotaSold(WHEAT) r_u_EnforceQuotas(WHEAT)_ 1
- QuantitySuperQuotaSold(CORN) c_l_EnforceCattleFeedRequirement(CORN)_ -1
- QuantitySuperQuotaSold(CORN) c_u_LimitAmountSold(CORN)_ 1
- QuantitySuperQuotaSold(SUGAR_BEETS) Total_Cost_Objective -10
- QuantitySuperQuotaSold(SUGAR_BEETS) c_l_EnforceCattleFeedRequirement(SUGAR_BEETS)_ -1
- QuantitySuperQuotaSold(SUGAR_BEETS) c_u_LimitAmountSold(SUGAR_BEETS)_ 1
- QuantitySuperQuotaSold(WHEAT) c_l_EnforceCattleFeedRequirement(WHEAT)_ -1
- QuantitySuperQuotaSold(WHEAT) c_u_LimitAmountSold(WHEAT)_ 1
- ONE_VAR_CONSTANT Total_Cost_Objective 0
- ONE_VAR_CONSTANT c_e_ONE_VAR_CONSTANT 1
-RHS
- RHS c_u_ConstrainTotalAcreage_ 500
- RHS c_l_EnforceCattleFeedRequirement(CORN)_ 240
- RHS c_l_EnforceCattleFeedRequirement(SUGAR_BEETS)_ 0
- RHS c_l_EnforceCattleFeedRequirement(WHEAT)_ 200
- RHS c_u_LimitAmountSold(CORN)_ 0
- RHS c_u_LimitAmountSold(SUGAR_BEETS)_ 0
- RHS c_u_LimitAmountSold(WHEAT)_ 0
- RHS r_l_EnforceQuotas(CORN)_ 0
- RHS r_u_EnforceQuotas(CORN)_ 100000
- RHS r_l_EnforceQuotas(SUGAR_BEETS)_ 0
- RHS r_u_EnforceQuotas(SUGAR_BEETS)_ 6000
- RHS r_l_EnforceQuotas(WHEAT)_ 0
- RHS r_u_EnforceQuotas(WHEAT)_ 100000
- RHS c_e_ONE_VAR_CONSTANT 1
-BOUNDS
- LO BOUND DevotedAcreage(CORN) 0
- UP BOUND DevotedAcreage(CORN) 500
- LO BOUND DevotedAcreage(SUGAR_BEETS) 0
- UP BOUND DevotedAcreage(SUGAR_BEETS) 500
- LO BOUND DevotedAcreage(WHEAT) 0
- UP BOUND DevotedAcreage(WHEAT) 500
- LO BOUND QuantityPurchased(CORN) 0
- LO BOUND QuantityPurchased(SUGAR_BEETS) 0
- LO BOUND QuantityPurchased(WHEAT) 0
- LO BOUND QuantitySubQuotaSold(CORN) 0
- LO BOUND QuantitySubQuotaSold(SUGAR_BEETS) 0
- LO BOUND QuantitySubQuotaSold(WHEAT) 0
- LO BOUND QuantitySuperQuotaSold(CORN) 0
- LO BOUND QuantitySuperQuotaSold(SUGAR_BEETS) 0
- LO BOUND QuantitySuperQuotaSold(WHEAT) 0
-ENDATA
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_symbolic_names_ignore_derived_baseline/farmer.cor.symbols b/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_symbolic_names_ignore_derived_baseline/farmer.cor.symbols
deleted file mode 100644
index e973348847d..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_symbolic_names_ignore_derived_baseline/farmer.cor.symbols
+++ /dev/null
@@ -1,3 +0,0 @@
-DevotedAcreage(CORN) DevotedAcreage:$CORN
-DevotedAcreage(SUGAR_BEETS) DevotedAcreage:$SUGAR_BEETS
-DevotedAcreage(WHEAT) DevotedAcreage:$WHEAT
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_symbolic_names_ignore_derived_baseline/farmer.mps.det b/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_symbolic_names_ignore_derived_baseline/farmer.mps.det
deleted file mode 100644
index cc1b5a64131..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_symbolic_names_ignore_derived_baseline/farmer.mps.det
+++ /dev/null
@@ -1,97 +0,0 @@
-* Source: Pyomo MPS Writer
-* Format: Free MPS
-*
-NAME ZeroStochasticData
-OBJSENSE
- MIN
-ROWS
- N Total_Cost_Objective
- L c_u_ConstrainTotalAcreage_
- G c_l_EnforceCattleFeedRequirement(CORN)_
- G c_l_EnforceCattleFeedRequirement(SUGAR_BEETS)_
- G c_l_EnforceCattleFeedRequirement(WHEAT)_
- L c_u_LimitAmountSold(CORN)_
- L c_u_LimitAmountSold(SUGAR_BEETS)_
- L c_u_LimitAmountSold(WHEAT)_
- G r_l_EnforceQuotas(CORN)_
- L r_u_EnforceQuotas(CORN)_
- G r_l_EnforceQuotas(SUGAR_BEETS)_
- L r_u_EnforceQuotas(SUGAR_BEETS)_
- G r_l_EnforceQuotas(WHEAT)_
- L r_u_EnforceQuotas(WHEAT)_
- E c_e_ONE_VAR_CONSTANT
-COLUMNS
- DevotedAcreage(CORN) Total_Cost_Objective 230
- DevotedAcreage(CORN) c_u_ConstrainTotalAcreage_ 1
- DevotedAcreage(CORN) c_l_EnforceCattleFeedRequirement(CORN)_ -9876543210
- DevotedAcreage(CORN) c_u_LimitAmountSold(CORN)_ -9876543210
- DevotedAcreage(SUGAR_BEETS) Total_Cost_Objective 260
- DevotedAcreage(SUGAR_BEETS) c_u_ConstrainTotalAcreage_ 1
- DevotedAcreage(SUGAR_BEETS) c_l_EnforceCattleFeedRequirement(SUGAR_BEETS)_ -9876543210
- DevotedAcreage(SUGAR_BEETS) c_u_LimitAmountSold(SUGAR_BEETS)_ -9876543210
- DevotedAcreage(WHEAT) Total_Cost_Objective 150
- DevotedAcreage(WHEAT) c_u_ConstrainTotalAcreage_ 1
- DevotedAcreage(WHEAT) c_l_EnforceCattleFeedRequirement(WHEAT)_ -9876543210
- DevotedAcreage(WHEAT) c_u_LimitAmountSold(WHEAT)_ -9876543210
- QuantityPurchased(CORN) Total_Cost_Objective 210
- QuantityPurchased(CORN) c_l_EnforceCattleFeedRequirement(CORN)_ 1
- QuantityPurchased(SUGAR_BEETS) Total_Cost_Objective 100000
- QuantityPurchased(SUGAR_BEETS) c_l_EnforceCattleFeedRequirement(SUGAR_BEETS)_ 1
- QuantityPurchased(WHEAT) Total_Cost_Objective 238
- QuantityPurchased(WHEAT) c_l_EnforceCattleFeedRequirement(WHEAT)_ 1
- QuantitySubQuotaSold(CORN) Total_Cost_Objective -150
- QuantitySubQuotaSold(CORN) c_l_EnforceCattleFeedRequirement(CORN)_ -1
- QuantitySubQuotaSold(CORN) c_u_LimitAmountSold(CORN)_ 1
- QuantitySubQuotaSold(CORN) r_l_EnforceQuotas(CORN)_ 1
- QuantitySubQuotaSold(CORN) r_u_EnforceQuotas(CORN)_ 1
- QuantitySubQuotaSold(SUGAR_BEETS) Total_Cost_Objective -36
- QuantitySubQuotaSold(SUGAR_BEETS) c_l_EnforceCattleFeedRequirement(SUGAR_BEETS)_ -1
- QuantitySubQuotaSold(SUGAR_BEETS) c_u_LimitAmountSold(SUGAR_BEETS)_ 1
- QuantitySubQuotaSold(SUGAR_BEETS) r_l_EnforceQuotas(SUGAR_BEETS)_ 1
- QuantitySubQuotaSold(SUGAR_BEETS) r_u_EnforceQuotas(SUGAR_BEETS)_ 1
- QuantitySubQuotaSold(WHEAT) Total_Cost_Objective -170
- QuantitySubQuotaSold(WHEAT) c_l_EnforceCattleFeedRequirement(WHEAT)_ -1
- QuantitySubQuotaSold(WHEAT) c_u_LimitAmountSold(WHEAT)_ 1
- QuantitySubQuotaSold(WHEAT) r_l_EnforceQuotas(WHEAT)_ 1
- QuantitySubQuotaSold(WHEAT) r_u_EnforceQuotas(WHEAT)_ 1
- QuantitySuperQuotaSold(CORN) c_l_EnforceCattleFeedRequirement(CORN)_ -1
- QuantitySuperQuotaSold(CORN) c_u_LimitAmountSold(CORN)_ 1
- QuantitySuperQuotaSold(SUGAR_BEETS) Total_Cost_Objective -10
- QuantitySuperQuotaSold(SUGAR_BEETS) c_l_EnforceCattleFeedRequirement(SUGAR_BEETS)_ -1
- QuantitySuperQuotaSold(SUGAR_BEETS) c_u_LimitAmountSold(SUGAR_BEETS)_ 1
- QuantitySuperQuotaSold(WHEAT) c_l_EnforceCattleFeedRequirement(WHEAT)_ -1
- QuantitySuperQuotaSold(WHEAT) c_u_LimitAmountSold(WHEAT)_ 1
- ONE_VAR_CONSTANT Total_Cost_Objective 0
- ONE_VAR_CONSTANT c_e_ONE_VAR_CONSTANT 1
-RHS
- RHS c_u_ConstrainTotalAcreage_ 500
- RHS c_l_EnforceCattleFeedRequirement(CORN)_ 240
- RHS c_l_EnforceCattleFeedRequirement(SUGAR_BEETS)_ 0
- RHS c_l_EnforceCattleFeedRequirement(WHEAT)_ 200
- RHS c_u_LimitAmountSold(CORN)_ 0
- RHS c_u_LimitAmountSold(SUGAR_BEETS)_ 0
- RHS c_u_LimitAmountSold(WHEAT)_ 0
- RHS r_l_EnforceQuotas(CORN)_ 0
- RHS r_u_EnforceQuotas(CORN)_ 100000
- RHS r_l_EnforceQuotas(SUGAR_BEETS)_ 0
- RHS r_u_EnforceQuotas(SUGAR_BEETS)_ 6000
- RHS r_l_EnforceQuotas(WHEAT)_ 0
- RHS r_u_EnforceQuotas(WHEAT)_ 100000
- RHS c_e_ONE_VAR_CONSTANT 1
-BOUNDS
- LO BOUND DevotedAcreage(CORN) 0
- UP BOUND DevotedAcreage(CORN) 500
- LO BOUND DevotedAcreage(SUGAR_BEETS) 0
- UP BOUND DevotedAcreage(SUGAR_BEETS) 500
- LO BOUND DevotedAcreage(WHEAT) 0
- UP BOUND DevotedAcreage(WHEAT) 500
- LO BOUND QuantityPurchased(CORN) 0
- LO BOUND QuantityPurchased(SUGAR_BEETS) 0
- LO BOUND QuantityPurchased(WHEAT) 0
- LO BOUND QuantitySubQuotaSold(CORN) 0
- LO BOUND QuantitySubQuotaSold(SUGAR_BEETS) 0
- LO BOUND QuantitySubQuotaSold(WHEAT) 0
- LO BOUND QuantitySuperQuotaSold(CORN) 0
- LO BOUND QuantitySuperQuotaSold(SUGAR_BEETS) 0
- LO BOUND QuantitySuperQuotaSold(WHEAT) 0
-ENDATA
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_symbolic_names_ignore_derived_baseline/farmer.row b/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_symbolic_names_ignore_derived_baseline/farmer.row
deleted file mode 100644
index 0bf2f5edad0..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_symbolic_names_ignore_derived_baseline/farmer.row
+++ /dev/null
@@ -1,15 +0,0 @@
-Total_Cost_Objective
-c_u_ConstrainTotalAcreage_
-c_l_EnforceCattleFeedRequirement(CORN)_
-c_l_EnforceCattleFeedRequirement(SUGAR_BEETS)_
-c_l_EnforceCattleFeedRequirement(WHEAT)_
-c_u_LimitAmountSold(CORN)_
-c_u_LimitAmountSold(SUGAR_BEETS)_
-c_u_LimitAmountSold(WHEAT)_
-r_l_EnforceQuotas(CORN)_
-r_u_EnforceQuotas(CORN)_
-r_l_EnforceQuotas(SUGAR_BEETS)_
-r_u_EnforceQuotas(SUGAR_BEETS)_
-r_l_EnforceQuotas(WHEAT)_
-r_u_EnforceQuotas(WHEAT)_
-c_e_ONE_VAR_CONSTANT
\ No newline at end of file
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_symbolic_names_ignore_derived_baseline/farmer.sto b/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_symbolic_names_ignore_derived_baseline/farmer.sto
deleted file mode 100644
index 6772f4e3157..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_symbolic_names_ignore_derived_baseline/farmer.sto
+++ /dev/null
@@ -1,24 +0,0 @@
-STOCH farmer
-BLOCKS DISCRETE REPLACE
- BL BLOCK1 PERIOD2 0.33333332999999998
- DevotedAcreage(CORN) c_l_EnforceCattleFeedRequirement(CORN)_ 2.3999999999999999
- DevotedAcreage(SUGAR_BEETS) c_l_EnforceCattleFeedRequirement(SUGAR_BEETS)_ 16
- DevotedAcreage(WHEAT) c_l_EnforceCattleFeedRequirement(WHEAT)_ 2
- DevotedAcreage(CORN) c_u_LimitAmountSold(CORN)_ -2.3999999999999999
- DevotedAcreage(SUGAR_BEETS) c_u_LimitAmountSold(SUGAR_BEETS)_ -16
- DevotedAcreage(WHEAT) c_u_LimitAmountSold(WHEAT)_ -2
- BL BLOCK1 PERIOD2 0.33333333999999998
- DevotedAcreage(CORN) c_l_EnforceCattleFeedRequirement(CORN)_ 3
- DevotedAcreage(SUGAR_BEETS) c_l_EnforceCattleFeedRequirement(SUGAR_BEETS)_ 20
- DevotedAcreage(WHEAT) c_l_EnforceCattleFeedRequirement(WHEAT)_ 2.5
- DevotedAcreage(CORN) c_u_LimitAmountSold(CORN)_ -3
- DevotedAcreage(SUGAR_BEETS) c_u_LimitAmountSold(SUGAR_BEETS)_ -20
- DevotedAcreage(WHEAT) c_u_LimitAmountSold(WHEAT)_ -2.5
- BL BLOCK1 PERIOD2 0.33333332999999998
- DevotedAcreage(CORN) c_l_EnforceCattleFeedRequirement(CORN)_ 3.6000000000000001
- DevotedAcreage(SUGAR_BEETS) c_l_EnforceCattleFeedRequirement(SUGAR_BEETS)_ 24
- DevotedAcreage(WHEAT) c_l_EnforceCattleFeedRequirement(WHEAT)_ 3
- DevotedAcreage(CORN) c_u_LimitAmountSold(CORN)_ -3.6000000000000001
- DevotedAcreage(SUGAR_BEETS) c_u_LimitAmountSold(SUGAR_BEETS)_ -24
- DevotedAcreage(WHEAT) c_u_LimitAmountSold(WHEAT)_ -3
-ENDATA
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_symbolic_names_ignore_derived_baseline/farmer.sto.struct b/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_symbolic_names_ignore_derived_baseline/farmer.sto.struct
deleted file mode 100644
index 65fbc4b8d79..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_symbolic_names_ignore_derived_baseline/farmer.sto.struct
+++ /dev/null
@@ -1,6 +0,0 @@
-DevotedAcreage(CORN) c_l_EnforceCattleFeedRequirement(CORN)_
-DevotedAcreage(SUGAR_BEETS) c_l_EnforceCattleFeedRequirement(SUGAR_BEETS)_
-DevotedAcreage(WHEAT) c_l_EnforceCattleFeedRequirement(WHEAT)_
-DevotedAcreage(CORN) c_u_LimitAmountSold(CORN)_
-DevotedAcreage(SUGAR_BEETS) c_u_LimitAmountSold(SUGAR_BEETS)_
-DevotedAcreage(WHEAT) c_u_LimitAmountSold(WHEAT)_
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_symbolic_names_ignore_derived_baseline/farmer.tim b/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_symbolic_names_ignore_derived_baseline/farmer.tim
deleted file mode 100644
index c8a6e910fb2..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_symbolic_names_ignore_derived_baseline/farmer.tim
+++ /dev/null
@@ -1,5 +0,0 @@
-TIME farmer
-PERIODS IMPLICIT
- DevotedAcreage(CORN) Total_Cost_Objective TIME1
- QuantityPurchased(CORN) c_l_EnforceCattleFeedRequirement(CORN)_ TIME2
-ENDATA
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_symbolic_names_ignore_derived_baseline/scenario_files/farmer.col.AboveAverageScenario b/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_symbolic_names_ignore_derived_baseline/scenario_files/farmer.col.AboveAverageScenario
deleted file mode 100644
index 3493097936d..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_symbolic_names_ignore_derived_baseline/scenario_files/farmer.col.AboveAverageScenario
+++ /dev/null
@@ -1,13 +0,0 @@
-DevotedAcreage(CORN)
-DevotedAcreage(SUGAR_BEETS)
-DevotedAcreage(WHEAT)
-QuantityPurchased(CORN)
-QuantityPurchased(SUGAR_BEETS)
-QuantityPurchased(WHEAT)
-QuantitySubQuotaSold(CORN)
-QuantitySubQuotaSold(SUGAR_BEETS)
-QuantitySubQuotaSold(WHEAT)
-QuantitySuperQuotaSold(CORN)
-QuantitySuperQuotaSold(SUGAR_BEETS)
-QuantitySuperQuotaSold(WHEAT)
-ONE_VAR_CONSTANT
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_symbolic_names_ignore_derived_baseline/scenario_files/farmer.col.AverageScenario b/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_symbolic_names_ignore_derived_baseline/scenario_files/farmer.col.AverageScenario
deleted file mode 100644
index 3493097936d..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_symbolic_names_ignore_derived_baseline/scenario_files/farmer.col.AverageScenario
+++ /dev/null
@@ -1,13 +0,0 @@
-DevotedAcreage(CORN)
-DevotedAcreage(SUGAR_BEETS)
-DevotedAcreage(WHEAT)
-QuantityPurchased(CORN)
-QuantityPurchased(SUGAR_BEETS)
-QuantityPurchased(WHEAT)
-QuantitySubQuotaSold(CORN)
-QuantitySubQuotaSold(SUGAR_BEETS)
-QuantitySubQuotaSold(WHEAT)
-QuantitySuperQuotaSold(CORN)
-QuantitySuperQuotaSold(SUGAR_BEETS)
-QuantitySuperQuotaSold(WHEAT)
-ONE_VAR_CONSTANT
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_symbolic_names_ignore_derived_baseline/scenario_files/farmer.col.BelowAverageScenario b/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_symbolic_names_ignore_derived_baseline/scenario_files/farmer.col.BelowAverageScenario
deleted file mode 100644
index 3493097936d..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_symbolic_names_ignore_derived_baseline/scenario_files/farmer.col.BelowAverageScenario
+++ /dev/null
@@ -1,13 +0,0 @@
-DevotedAcreage(CORN)
-DevotedAcreage(SUGAR_BEETS)
-DevotedAcreage(WHEAT)
-QuantityPurchased(CORN)
-QuantityPurchased(SUGAR_BEETS)
-QuantityPurchased(WHEAT)
-QuantitySubQuotaSold(CORN)
-QuantitySubQuotaSold(SUGAR_BEETS)
-QuantitySubQuotaSold(WHEAT)
-QuantitySuperQuotaSold(CORN)
-QuantitySuperQuotaSold(SUGAR_BEETS)
-QuantitySuperQuotaSold(WHEAT)
-ONE_VAR_CONSTANT
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_symbolic_names_ignore_derived_baseline/scenario_files/farmer.mps.AboveAverageScenario b/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_symbolic_names_ignore_derived_baseline/scenario_files/farmer.mps.AboveAverageScenario
deleted file mode 100644
index b5a858504b2..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_symbolic_names_ignore_derived_baseline/scenario_files/farmer.mps.AboveAverageScenario
+++ /dev/null
@@ -1,97 +0,0 @@
-* Source: Pyomo MPS Writer
-* Format: Free MPS
-*
-NAME AboveAverageScenario
-OBJSENSE
- MIN
-ROWS
- N Total_Cost_Objective
- L c_u_ConstrainTotalAcreage_
- G c_l_EnforceCattleFeedRequirement(CORN)_
- G c_l_EnforceCattleFeedRequirement(SUGAR_BEETS)_
- G c_l_EnforceCattleFeedRequirement(WHEAT)_
- L c_u_LimitAmountSold(CORN)_
- L c_u_LimitAmountSold(SUGAR_BEETS)_
- L c_u_LimitAmountSold(WHEAT)_
- G r_l_EnforceQuotas(CORN)_
- L r_u_EnforceQuotas(CORN)_
- G r_l_EnforceQuotas(SUGAR_BEETS)_
- L r_u_EnforceQuotas(SUGAR_BEETS)_
- G r_l_EnforceQuotas(WHEAT)_
- L r_u_EnforceQuotas(WHEAT)_
- E c_e_ONE_VAR_CONSTANT
-COLUMNS
- DevotedAcreage(CORN) Total_Cost_Objective 230
- DevotedAcreage(CORN) c_u_ConstrainTotalAcreage_ 1
- DevotedAcreage(CORN) c_l_EnforceCattleFeedRequirement(CORN)_ 3.6000000000000001
- DevotedAcreage(CORN) c_u_LimitAmountSold(CORN)_ -3.6000000000000001
- DevotedAcreage(SUGAR_BEETS) Total_Cost_Objective 260
- DevotedAcreage(SUGAR_BEETS) c_u_ConstrainTotalAcreage_ 1
- DevotedAcreage(SUGAR_BEETS) c_l_EnforceCattleFeedRequirement(SUGAR_BEETS)_ 24
- DevotedAcreage(SUGAR_BEETS) c_u_LimitAmountSold(SUGAR_BEETS)_ -24
- DevotedAcreage(WHEAT) Total_Cost_Objective 150
- DevotedAcreage(WHEAT) c_u_ConstrainTotalAcreage_ 1
- DevotedAcreage(WHEAT) c_l_EnforceCattleFeedRequirement(WHEAT)_ 3
- DevotedAcreage(WHEAT) c_u_LimitAmountSold(WHEAT)_ -3
- QuantityPurchased(CORN) Total_Cost_Objective 210
- QuantityPurchased(CORN) c_l_EnforceCattleFeedRequirement(CORN)_ 1
- QuantityPurchased(SUGAR_BEETS) Total_Cost_Objective 100000
- QuantityPurchased(SUGAR_BEETS) c_l_EnforceCattleFeedRequirement(SUGAR_BEETS)_ 1
- QuantityPurchased(WHEAT) Total_Cost_Objective 238
- QuantityPurchased(WHEAT) c_l_EnforceCattleFeedRequirement(WHEAT)_ 1
- QuantitySubQuotaSold(CORN) Total_Cost_Objective -150
- QuantitySubQuotaSold(CORN) c_l_EnforceCattleFeedRequirement(CORN)_ -1
- QuantitySubQuotaSold(CORN) c_u_LimitAmountSold(CORN)_ 1
- QuantitySubQuotaSold(CORN) r_l_EnforceQuotas(CORN)_ 1
- QuantitySubQuotaSold(CORN) r_u_EnforceQuotas(CORN)_ 1
- QuantitySubQuotaSold(SUGAR_BEETS) Total_Cost_Objective -36
- QuantitySubQuotaSold(SUGAR_BEETS) c_l_EnforceCattleFeedRequirement(SUGAR_BEETS)_ -1
- QuantitySubQuotaSold(SUGAR_BEETS) c_u_LimitAmountSold(SUGAR_BEETS)_ 1
- QuantitySubQuotaSold(SUGAR_BEETS) r_l_EnforceQuotas(SUGAR_BEETS)_ 1
- QuantitySubQuotaSold(SUGAR_BEETS) r_u_EnforceQuotas(SUGAR_BEETS)_ 1
- QuantitySubQuotaSold(WHEAT) Total_Cost_Objective -170
- QuantitySubQuotaSold(WHEAT) c_l_EnforceCattleFeedRequirement(WHEAT)_ -1
- QuantitySubQuotaSold(WHEAT) c_u_LimitAmountSold(WHEAT)_ 1
- QuantitySubQuotaSold(WHEAT) r_l_EnforceQuotas(WHEAT)_ 1
- QuantitySubQuotaSold(WHEAT) r_u_EnforceQuotas(WHEAT)_ 1
- QuantitySuperQuotaSold(CORN) c_l_EnforceCattleFeedRequirement(CORN)_ -1
- QuantitySuperQuotaSold(CORN) c_u_LimitAmountSold(CORN)_ 1
- QuantitySuperQuotaSold(SUGAR_BEETS) Total_Cost_Objective -10
- QuantitySuperQuotaSold(SUGAR_BEETS) c_l_EnforceCattleFeedRequirement(SUGAR_BEETS)_ -1
- QuantitySuperQuotaSold(SUGAR_BEETS) c_u_LimitAmountSold(SUGAR_BEETS)_ 1
- QuantitySuperQuotaSold(WHEAT) c_l_EnforceCattleFeedRequirement(WHEAT)_ -1
- QuantitySuperQuotaSold(WHEAT) c_u_LimitAmountSold(WHEAT)_ 1
- ONE_VAR_CONSTANT Total_Cost_Objective 0
- ONE_VAR_CONSTANT c_e_ONE_VAR_CONSTANT 1
-RHS
- RHS c_u_ConstrainTotalAcreage_ 500
- RHS c_l_EnforceCattleFeedRequirement(CORN)_ 240
- RHS c_l_EnforceCattleFeedRequirement(SUGAR_BEETS)_ 0
- RHS c_l_EnforceCattleFeedRequirement(WHEAT)_ 200
- RHS c_u_LimitAmountSold(CORN)_ 0
- RHS c_u_LimitAmountSold(SUGAR_BEETS)_ 0
- RHS c_u_LimitAmountSold(WHEAT)_ 0
- RHS r_l_EnforceQuotas(CORN)_ 0
- RHS r_u_EnforceQuotas(CORN)_ 100000
- RHS r_l_EnforceQuotas(SUGAR_BEETS)_ 0
- RHS r_u_EnforceQuotas(SUGAR_BEETS)_ 6000
- RHS r_l_EnforceQuotas(WHEAT)_ 0
- RHS r_u_EnforceQuotas(WHEAT)_ 100000
- RHS c_e_ONE_VAR_CONSTANT 1
-BOUNDS
- LO BOUND DevotedAcreage(CORN) 0
- UP BOUND DevotedAcreage(CORN) 500
- LO BOUND DevotedAcreage(SUGAR_BEETS) 0
- UP BOUND DevotedAcreage(SUGAR_BEETS) 500
- LO BOUND DevotedAcreage(WHEAT) 0
- UP BOUND DevotedAcreage(WHEAT) 500
- LO BOUND QuantityPurchased(CORN) 0
- LO BOUND QuantityPurchased(SUGAR_BEETS) 0
- LO BOUND QuantityPurchased(WHEAT) 0
- LO BOUND QuantitySubQuotaSold(CORN) 0
- LO BOUND QuantitySubQuotaSold(SUGAR_BEETS) 0
- LO BOUND QuantitySubQuotaSold(WHEAT) 0
- LO BOUND QuantitySuperQuotaSold(CORN) 0
- LO BOUND QuantitySuperQuotaSold(SUGAR_BEETS) 0
- LO BOUND QuantitySuperQuotaSold(WHEAT) 0
-ENDATA
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_symbolic_names_ignore_derived_baseline/scenario_files/farmer.mps.AverageScenario b/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_symbolic_names_ignore_derived_baseline/scenario_files/farmer.mps.AverageScenario
deleted file mode 100644
index 75e85e8f1eb..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_symbolic_names_ignore_derived_baseline/scenario_files/farmer.mps.AverageScenario
+++ /dev/null
@@ -1,97 +0,0 @@
-* Source: Pyomo MPS Writer
-* Format: Free MPS
-*
-NAME AverageScenario
-OBJSENSE
- MIN
-ROWS
- N Total_Cost_Objective
- L c_u_ConstrainTotalAcreage_
- G c_l_EnforceCattleFeedRequirement(CORN)_
- G c_l_EnforceCattleFeedRequirement(SUGAR_BEETS)_
- G c_l_EnforceCattleFeedRequirement(WHEAT)_
- L c_u_LimitAmountSold(CORN)_
- L c_u_LimitAmountSold(SUGAR_BEETS)_
- L c_u_LimitAmountSold(WHEAT)_
- G r_l_EnforceQuotas(CORN)_
- L r_u_EnforceQuotas(CORN)_
- G r_l_EnforceQuotas(SUGAR_BEETS)_
- L r_u_EnforceQuotas(SUGAR_BEETS)_
- G r_l_EnforceQuotas(WHEAT)_
- L r_u_EnforceQuotas(WHEAT)_
- E c_e_ONE_VAR_CONSTANT
-COLUMNS
- DevotedAcreage(CORN) Total_Cost_Objective 230
- DevotedAcreage(CORN) c_u_ConstrainTotalAcreage_ 1
- DevotedAcreage(CORN) c_l_EnforceCattleFeedRequirement(CORN)_ 3
- DevotedAcreage(CORN) c_u_LimitAmountSold(CORN)_ -3
- DevotedAcreage(SUGAR_BEETS) Total_Cost_Objective 260
- DevotedAcreage(SUGAR_BEETS) c_u_ConstrainTotalAcreage_ 1
- DevotedAcreage(SUGAR_BEETS) c_l_EnforceCattleFeedRequirement(SUGAR_BEETS)_ 20
- DevotedAcreage(SUGAR_BEETS) c_u_LimitAmountSold(SUGAR_BEETS)_ -20
- DevotedAcreage(WHEAT) Total_Cost_Objective 150
- DevotedAcreage(WHEAT) c_u_ConstrainTotalAcreage_ 1
- DevotedAcreage(WHEAT) c_l_EnforceCattleFeedRequirement(WHEAT)_ 2.5
- DevotedAcreage(WHEAT) c_u_LimitAmountSold(WHEAT)_ -2.5
- QuantityPurchased(CORN) Total_Cost_Objective 210
- QuantityPurchased(CORN) c_l_EnforceCattleFeedRequirement(CORN)_ 1
- QuantityPurchased(SUGAR_BEETS) Total_Cost_Objective 100000
- QuantityPurchased(SUGAR_BEETS) c_l_EnforceCattleFeedRequirement(SUGAR_BEETS)_ 1
- QuantityPurchased(WHEAT) Total_Cost_Objective 238
- QuantityPurchased(WHEAT) c_l_EnforceCattleFeedRequirement(WHEAT)_ 1
- QuantitySubQuotaSold(CORN) Total_Cost_Objective -150
- QuantitySubQuotaSold(CORN) c_l_EnforceCattleFeedRequirement(CORN)_ -1
- QuantitySubQuotaSold(CORN) c_u_LimitAmountSold(CORN)_ 1
- QuantitySubQuotaSold(CORN) r_l_EnforceQuotas(CORN)_ 1
- QuantitySubQuotaSold(CORN) r_u_EnforceQuotas(CORN)_ 1
- QuantitySubQuotaSold(SUGAR_BEETS) Total_Cost_Objective -36
- QuantitySubQuotaSold(SUGAR_BEETS) c_l_EnforceCattleFeedRequirement(SUGAR_BEETS)_ -1
- QuantitySubQuotaSold(SUGAR_BEETS) c_u_LimitAmountSold(SUGAR_BEETS)_ 1
- QuantitySubQuotaSold(SUGAR_BEETS) r_l_EnforceQuotas(SUGAR_BEETS)_ 1
- QuantitySubQuotaSold(SUGAR_BEETS) r_u_EnforceQuotas(SUGAR_BEETS)_ 1
- QuantitySubQuotaSold(WHEAT) Total_Cost_Objective -170
- QuantitySubQuotaSold(WHEAT) c_l_EnforceCattleFeedRequirement(WHEAT)_ -1
- QuantitySubQuotaSold(WHEAT) c_u_LimitAmountSold(WHEAT)_ 1
- QuantitySubQuotaSold(WHEAT) r_l_EnforceQuotas(WHEAT)_ 1
- QuantitySubQuotaSold(WHEAT) r_u_EnforceQuotas(WHEAT)_ 1
- QuantitySuperQuotaSold(CORN) c_l_EnforceCattleFeedRequirement(CORN)_ -1
- QuantitySuperQuotaSold(CORN) c_u_LimitAmountSold(CORN)_ 1
- QuantitySuperQuotaSold(SUGAR_BEETS) Total_Cost_Objective -10
- QuantitySuperQuotaSold(SUGAR_BEETS) c_l_EnforceCattleFeedRequirement(SUGAR_BEETS)_ -1
- QuantitySuperQuotaSold(SUGAR_BEETS) c_u_LimitAmountSold(SUGAR_BEETS)_ 1
- QuantitySuperQuotaSold(WHEAT) c_l_EnforceCattleFeedRequirement(WHEAT)_ -1
- QuantitySuperQuotaSold(WHEAT) c_u_LimitAmountSold(WHEAT)_ 1
- ONE_VAR_CONSTANT Total_Cost_Objective 0
- ONE_VAR_CONSTANT c_e_ONE_VAR_CONSTANT 1
-RHS
- RHS c_u_ConstrainTotalAcreage_ 500
- RHS c_l_EnforceCattleFeedRequirement(CORN)_ 240
- RHS c_l_EnforceCattleFeedRequirement(SUGAR_BEETS)_ 0
- RHS c_l_EnforceCattleFeedRequirement(WHEAT)_ 200
- RHS c_u_LimitAmountSold(CORN)_ 0
- RHS c_u_LimitAmountSold(SUGAR_BEETS)_ 0
- RHS c_u_LimitAmountSold(WHEAT)_ 0
- RHS r_l_EnforceQuotas(CORN)_ 0
- RHS r_u_EnforceQuotas(CORN)_ 100000
- RHS r_l_EnforceQuotas(SUGAR_BEETS)_ 0
- RHS r_u_EnforceQuotas(SUGAR_BEETS)_ 6000
- RHS r_l_EnforceQuotas(WHEAT)_ 0
- RHS r_u_EnforceQuotas(WHEAT)_ 100000
- RHS c_e_ONE_VAR_CONSTANT 1
-BOUNDS
- LO BOUND DevotedAcreage(CORN) 0
- UP BOUND DevotedAcreage(CORN) 500
- LO BOUND DevotedAcreage(SUGAR_BEETS) 0
- UP BOUND DevotedAcreage(SUGAR_BEETS) 500
- LO BOUND DevotedAcreage(WHEAT) 0
- UP BOUND DevotedAcreage(WHEAT) 500
- LO BOUND QuantityPurchased(CORN) 0
- LO BOUND QuantityPurchased(SUGAR_BEETS) 0
- LO BOUND QuantityPurchased(WHEAT) 0
- LO BOUND QuantitySubQuotaSold(CORN) 0
- LO BOUND QuantitySubQuotaSold(SUGAR_BEETS) 0
- LO BOUND QuantitySubQuotaSold(WHEAT) 0
- LO BOUND QuantitySuperQuotaSold(CORN) 0
- LO BOUND QuantitySuperQuotaSold(SUGAR_BEETS) 0
- LO BOUND QuantitySuperQuotaSold(WHEAT) 0
-ENDATA
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_symbolic_names_ignore_derived_baseline/scenario_files/farmer.mps.BelowAverageScenario b/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_symbolic_names_ignore_derived_baseline/scenario_files/farmer.mps.BelowAverageScenario
deleted file mode 100644
index c4a24680786..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_symbolic_names_ignore_derived_baseline/scenario_files/farmer.mps.BelowAverageScenario
+++ /dev/null
@@ -1,97 +0,0 @@
-* Source: Pyomo MPS Writer
-* Format: Free MPS
-*
-NAME BelowAverageScenario
-OBJSENSE
- MIN
-ROWS
- N Total_Cost_Objective
- L c_u_ConstrainTotalAcreage_
- G c_l_EnforceCattleFeedRequirement(CORN)_
- G c_l_EnforceCattleFeedRequirement(SUGAR_BEETS)_
- G c_l_EnforceCattleFeedRequirement(WHEAT)_
- L c_u_LimitAmountSold(CORN)_
- L c_u_LimitAmountSold(SUGAR_BEETS)_
- L c_u_LimitAmountSold(WHEAT)_
- G r_l_EnforceQuotas(CORN)_
- L r_u_EnforceQuotas(CORN)_
- G r_l_EnforceQuotas(SUGAR_BEETS)_
- L r_u_EnforceQuotas(SUGAR_BEETS)_
- G r_l_EnforceQuotas(WHEAT)_
- L r_u_EnforceQuotas(WHEAT)_
- E c_e_ONE_VAR_CONSTANT
-COLUMNS
- DevotedAcreage(CORN) Total_Cost_Objective 230
- DevotedAcreage(CORN) c_u_ConstrainTotalAcreage_ 1
- DevotedAcreage(CORN) c_l_EnforceCattleFeedRequirement(CORN)_ 2.3999999999999999
- DevotedAcreage(CORN) c_u_LimitAmountSold(CORN)_ -2.3999999999999999
- DevotedAcreage(SUGAR_BEETS) Total_Cost_Objective 260
- DevotedAcreage(SUGAR_BEETS) c_u_ConstrainTotalAcreage_ 1
- DevotedAcreage(SUGAR_BEETS) c_l_EnforceCattleFeedRequirement(SUGAR_BEETS)_ 16
- DevotedAcreage(SUGAR_BEETS) c_u_LimitAmountSold(SUGAR_BEETS)_ -16
- DevotedAcreage(WHEAT) Total_Cost_Objective 150
- DevotedAcreage(WHEAT) c_u_ConstrainTotalAcreage_ 1
- DevotedAcreage(WHEAT) c_l_EnforceCattleFeedRequirement(WHEAT)_ 2
- DevotedAcreage(WHEAT) c_u_LimitAmountSold(WHEAT)_ -2
- QuantityPurchased(CORN) Total_Cost_Objective 210
- QuantityPurchased(CORN) c_l_EnforceCattleFeedRequirement(CORN)_ 1
- QuantityPurchased(SUGAR_BEETS) Total_Cost_Objective 100000
- QuantityPurchased(SUGAR_BEETS) c_l_EnforceCattleFeedRequirement(SUGAR_BEETS)_ 1
- QuantityPurchased(WHEAT) Total_Cost_Objective 238
- QuantityPurchased(WHEAT) c_l_EnforceCattleFeedRequirement(WHEAT)_ 1
- QuantitySubQuotaSold(CORN) Total_Cost_Objective -150
- QuantitySubQuotaSold(CORN) c_l_EnforceCattleFeedRequirement(CORN)_ -1
- QuantitySubQuotaSold(CORN) c_u_LimitAmountSold(CORN)_ 1
- QuantitySubQuotaSold(CORN) r_l_EnforceQuotas(CORN)_ 1
- QuantitySubQuotaSold(CORN) r_u_EnforceQuotas(CORN)_ 1
- QuantitySubQuotaSold(SUGAR_BEETS) Total_Cost_Objective -36
- QuantitySubQuotaSold(SUGAR_BEETS) c_l_EnforceCattleFeedRequirement(SUGAR_BEETS)_ -1
- QuantitySubQuotaSold(SUGAR_BEETS) c_u_LimitAmountSold(SUGAR_BEETS)_ 1
- QuantitySubQuotaSold(SUGAR_BEETS) r_l_EnforceQuotas(SUGAR_BEETS)_ 1
- QuantitySubQuotaSold(SUGAR_BEETS) r_u_EnforceQuotas(SUGAR_BEETS)_ 1
- QuantitySubQuotaSold(WHEAT) Total_Cost_Objective -170
- QuantitySubQuotaSold(WHEAT) c_l_EnforceCattleFeedRequirement(WHEAT)_ -1
- QuantitySubQuotaSold(WHEAT) c_u_LimitAmountSold(WHEAT)_ 1
- QuantitySubQuotaSold(WHEAT) r_l_EnforceQuotas(WHEAT)_ 1
- QuantitySubQuotaSold(WHEAT) r_u_EnforceQuotas(WHEAT)_ 1
- QuantitySuperQuotaSold(CORN) c_l_EnforceCattleFeedRequirement(CORN)_ -1
- QuantitySuperQuotaSold(CORN) c_u_LimitAmountSold(CORN)_ 1
- QuantitySuperQuotaSold(SUGAR_BEETS) Total_Cost_Objective -10
- QuantitySuperQuotaSold(SUGAR_BEETS) c_l_EnforceCattleFeedRequirement(SUGAR_BEETS)_ -1
- QuantitySuperQuotaSold(SUGAR_BEETS) c_u_LimitAmountSold(SUGAR_BEETS)_ 1
- QuantitySuperQuotaSold(WHEAT) c_l_EnforceCattleFeedRequirement(WHEAT)_ -1
- QuantitySuperQuotaSold(WHEAT) c_u_LimitAmountSold(WHEAT)_ 1
- ONE_VAR_CONSTANT Total_Cost_Objective 0
- ONE_VAR_CONSTANT c_e_ONE_VAR_CONSTANT 1
-RHS
- RHS c_u_ConstrainTotalAcreage_ 500
- RHS c_l_EnforceCattleFeedRequirement(CORN)_ 240
- RHS c_l_EnforceCattleFeedRequirement(SUGAR_BEETS)_ 0
- RHS c_l_EnforceCattleFeedRequirement(WHEAT)_ 200
- RHS c_u_LimitAmountSold(CORN)_ 0
- RHS c_u_LimitAmountSold(SUGAR_BEETS)_ 0
- RHS c_u_LimitAmountSold(WHEAT)_ 0
- RHS r_l_EnforceQuotas(CORN)_ 0
- RHS r_u_EnforceQuotas(CORN)_ 100000
- RHS r_l_EnforceQuotas(SUGAR_BEETS)_ 0
- RHS r_u_EnforceQuotas(SUGAR_BEETS)_ 6000
- RHS r_l_EnforceQuotas(WHEAT)_ 0
- RHS r_u_EnforceQuotas(WHEAT)_ 100000
- RHS c_e_ONE_VAR_CONSTANT 1
-BOUNDS
- LO BOUND DevotedAcreage(CORN) 0
- UP BOUND DevotedAcreage(CORN) 500
- LO BOUND DevotedAcreage(SUGAR_BEETS) 0
- UP BOUND DevotedAcreage(SUGAR_BEETS) 500
- LO BOUND DevotedAcreage(WHEAT) 0
- UP BOUND DevotedAcreage(WHEAT) 500
- LO BOUND QuantityPurchased(CORN) 0
- LO BOUND QuantityPurchased(SUGAR_BEETS) 0
- LO BOUND QuantityPurchased(WHEAT) 0
- LO BOUND QuantitySubQuotaSold(CORN) 0
- LO BOUND QuantitySubQuotaSold(SUGAR_BEETS) 0
- LO BOUND QuantitySubQuotaSold(WHEAT) 0
- LO BOUND QuantitySuperQuotaSold(CORN) 0
- LO BOUND QuantitySuperQuotaSold(SUGAR_BEETS) 0
- LO BOUND QuantitySuperQuotaSold(WHEAT) 0
-ENDATA
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_symbolic_names_ignore_derived_baseline/scenario_files/farmer.mps.det.AboveAverageScenario b/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_symbolic_names_ignore_derived_baseline/scenario_files/farmer.mps.det.AboveAverageScenario
deleted file mode 100644
index cc1b5a64131..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_symbolic_names_ignore_derived_baseline/scenario_files/farmer.mps.det.AboveAverageScenario
+++ /dev/null
@@ -1,97 +0,0 @@
-* Source: Pyomo MPS Writer
-* Format: Free MPS
-*
-NAME ZeroStochasticData
-OBJSENSE
- MIN
-ROWS
- N Total_Cost_Objective
- L c_u_ConstrainTotalAcreage_
- G c_l_EnforceCattleFeedRequirement(CORN)_
- G c_l_EnforceCattleFeedRequirement(SUGAR_BEETS)_
- G c_l_EnforceCattleFeedRequirement(WHEAT)_
- L c_u_LimitAmountSold(CORN)_
- L c_u_LimitAmountSold(SUGAR_BEETS)_
- L c_u_LimitAmountSold(WHEAT)_
- G r_l_EnforceQuotas(CORN)_
- L r_u_EnforceQuotas(CORN)_
- G r_l_EnforceQuotas(SUGAR_BEETS)_
- L r_u_EnforceQuotas(SUGAR_BEETS)_
- G r_l_EnforceQuotas(WHEAT)_
- L r_u_EnforceQuotas(WHEAT)_
- E c_e_ONE_VAR_CONSTANT
-COLUMNS
- DevotedAcreage(CORN) Total_Cost_Objective 230
- DevotedAcreage(CORN) c_u_ConstrainTotalAcreage_ 1
- DevotedAcreage(CORN) c_l_EnforceCattleFeedRequirement(CORN)_ -9876543210
- DevotedAcreage(CORN) c_u_LimitAmountSold(CORN)_ -9876543210
- DevotedAcreage(SUGAR_BEETS) Total_Cost_Objective 260
- DevotedAcreage(SUGAR_BEETS) c_u_ConstrainTotalAcreage_ 1
- DevotedAcreage(SUGAR_BEETS) c_l_EnforceCattleFeedRequirement(SUGAR_BEETS)_ -9876543210
- DevotedAcreage(SUGAR_BEETS) c_u_LimitAmountSold(SUGAR_BEETS)_ -9876543210
- DevotedAcreage(WHEAT) Total_Cost_Objective 150
- DevotedAcreage(WHEAT) c_u_ConstrainTotalAcreage_ 1
- DevotedAcreage(WHEAT) c_l_EnforceCattleFeedRequirement(WHEAT)_ -9876543210
- DevotedAcreage(WHEAT) c_u_LimitAmountSold(WHEAT)_ -9876543210
- QuantityPurchased(CORN) Total_Cost_Objective 210
- QuantityPurchased(CORN) c_l_EnforceCattleFeedRequirement(CORN)_ 1
- QuantityPurchased(SUGAR_BEETS) Total_Cost_Objective 100000
- QuantityPurchased(SUGAR_BEETS) c_l_EnforceCattleFeedRequirement(SUGAR_BEETS)_ 1
- QuantityPurchased(WHEAT) Total_Cost_Objective 238
- QuantityPurchased(WHEAT) c_l_EnforceCattleFeedRequirement(WHEAT)_ 1
- QuantitySubQuotaSold(CORN) Total_Cost_Objective -150
- QuantitySubQuotaSold(CORN) c_l_EnforceCattleFeedRequirement(CORN)_ -1
- QuantitySubQuotaSold(CORN) c_u_LimitAmountSold(CORN)_ 1
- QuantitySubQuotaSold(CORN) r_l_EnforceQuotas(CORN)_ 1
- QuantitySubQuotaSold(CORN) r_u_EnforceQuotas(CORN)_ 1
- QuantitySubQuotaSold(SUGAR_BEETS) Total_Cost_Objective -36
- QuantitySubQuotaSold(SUGAR_BEETS) c_l_EnforceCattleFeedRequirement(SUGAR_BEETS)_ -1
- QuantitySubQuotaSold(SUGAR_BEETS) c_u_LimitAmountSold(SUGAR_BEETS)_ 1
- QuantitySubQuotaSold(SUGAR_BEETS) r_l_EnforceQuotas(SUGAR_BEETS)_ 1
- QuantitySubQuotaSold(SUGAR_BEETS) r_u_EnforceQuotas(SUGAR_BEETS)_ 1
- QuantitySubQuotaSold(WHEAT) Total_Cost_Objective -170
- QuantitySubQuotaSold(WHEAT) c_l_EnforceCattleFeedRequirement(WHEAT)_ -1
- QuantitySubQuotaSold(WHEAT) c_u_LimitAmountSold(WHEAT)_ 1
- QuantitySubQuotaSold(WHEAT) r_l_EnforceQuotas(WHEAT)_ 1
- QuantitySubQuotaSold(WHEAT) r_u_EnforceQuotas(WHEAT)_ 1
- QuantitySuperQuotaSold(CORN) c_l_EnforceCattleFeedRequirement(CORN)_ -1
- QuantitySuperQuotaSold(CORN) c_u_LimitAmountSold(CORN)_ 1
- QuantitySuperQuotaSold(SUGAR_BEETS) Total_Cost_Objective -10
- QuantitySuperQuotaSold(SUGAR_BEETS) c_l_EnforceCattleFeedRequirement(SUGAR_BEETS)_ -1
- QuantitySuperQuotaSold(SUGAR_BEETS) c_u_LimitAmountSold(SUGAR_BEETS)_ 1
- QuantitySuperQuotaSold(WHEAT) c_l_EnforceCattleFeedRequirement(WHEAT)_ -1
- QuantitySuperQuotaSold(WHEAT) c_u_LimitAmountSold(WHEAT)_ 1
- ONE_VAR_CONSTANT Total_Cost_Objective 0
- ONE_VAR_CONSTANT c_e_ONE_VAR_CONSTANT 1
-RHS
- RHS c_u_ConstrainTotalAcreage_ 500
- RHS c_l_EnforceCattleFeedRequirement(CORN)_ 240
- RHS c_l_EnforceCattleFeedRequirement(SUGAR_BEETS)_ 0
- RHS c_l_EnforceCattleFeedRequirement(WHEAT)_ 200
- RHS c_u_LimitAmountSold(CORN)_ 0
- RHS c_u_LimitAmountSold(SUGAR_BEETS)_ 0
- RHS c_u_LimitAmountSold(WHEAT)_ 0
- RHS r_l_EnforceQuotas(CORN)_ 0
- RHS r_u_EnforceQuotas(CORN)_ 100000
- RHS r_l_EnforceQuotas(SUGAR_BEETS)_ 0
- RHS r_u_EnforceQuotas(SUGAR_BEETS)_ 6000
- RHS r_l_EnforceQuotas(WHEAT)_ 0
- RHS r_u_EnforceQuotas(WHEAT)_ 100000
- RHS c_e_ONE_VAR_CONSTANT 1
-BOUNDS
- LO BOUND DevotedAcreage(CORN) 0
- UP BOUND DevotedAcreage(CORN) 500
- LO BOUND DevotedAcreage(SUGAR_BEETS) 0
- UP BOUND DevotedAcreage(SUGAR_BEETS) 500
- LO BOUND DevotedAcreage(WHEAT) 0
- UP BOUND DevotedAcreage(WHEAT) 500
- LO BOUND QuantityPurchased(CORN) 0
- LO BOUND QuantityPurchased(SUGAR_BEETS) 0
- LO BOUND QuantityPurchased(WHEAT) 0
- LO BOUND QuantitySubQuotaSold(CORN) 0
- LO BOUND QuantitySubQuotaSold(SUGAR_BEETS) 0
- LO BOUND QuantitySubQuotaSold(WHEAT) 0
- LO BOUND QuantitySuperQuotaSold(CORN) 0
- LO BOUND QuantitySuperQuotaSold(SUGAR_BEETS) 0
- LO BOUND QuantitySuperQuotaSold(WHEAT) 0
-ENDATA
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_symbolic_names_ignore_derived_baseline/scenario_files/farmer.mps.det.AverageScenario b/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_symbolic_names_ignore_derived_baseline/scenario_files/farmer.mps.det.AverageScenario
deleted file mode 100644
index cc1b5a64131..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_symbolic_names_ignore_derived_baseline/scenario_files/farmer.mps.det.AverageScenario
+++ /dev/null
@@ -1,97 +0,0 @@
-* Source: Pyomo MPS Writer
-* Format: Free MPS
-*
-NAME ZeroStochasticData
-OBJSENSE
- MIN
-ROWS
- N Total_Cost_Objective
- L c_u_ConstrainTotalAcreage_
- G c_l_EnforceCattleFeedRequirement(CORN)_
- G c_l_EnforceCattleFeedRequirement(SUGAR_BEETS)_
- G c_l_EnforceCattleFeedRequirement(WHEAT)_
- L c_u_LimitAmountSold(CORN)_
- L c_u_LimitAmountSold(SUGAR_BEETS)_
- L c_u_LimitAmountSold(WHEAT)_
- G r_l_EnforceQuotas(CORN)_
- L r_u_EnforceQuotas(CORN)_
- G r_l_EnforceQuotas(SUGAR_BEETS)_
- L r_u_EnforceQuotas(SUGAR_BEETS)_
- G r_l_EnforceQuotas(WHEAT)_
- L r_u_EnforceQuotas(WHEAT)_
- E c_e_ONE_VAR_CONSTANT
-COLUMNS
- DevotedAcreage(CORN) Total_Cost_Objective 230
- DevotedAcreage(CORN) c_u_ConstrainTotalAcreage_ 1
- DevotedAcreage(CORN) c_l_EnforceCattleFeedRequirement(CORN)_ -9876543210
- DevotedAcreage(CORN) c_u_LimitAmountSold(CORN)_ -9876543210
- DevotedAcreage(SUGAR_BEETS) Total_Cost_Objective 260
- DevotedAcreage(SUGAR_BEETS) c_u_ConstrainTotalAcreage_ 1
- DevotedAcreage(SUGAR_BEETS) c_l_EnforceCattleFeedRequirement(SUGAR_BEETS)_ -9876543210
- DevotedAcreage(SUGAR_BEETS) c_u_LimitAmountSold(SUGAR_BEETS)_ -9876543210
- DevotedAcreage(WHEAT) Total_Cost_Objective 150
- DevotedAcreage(WHEAT) c_u_ConstrainTotalAcreage_ 1
- DevotedAcreage(WHEAT) c_l_EnforceCattleFeedRequirement(WHEAT)_ -9876543210
- DevotedAcreage(WHEAT) c_u_LimitAmountSold(WHEAT)_ -9876543210
- QuantityPurchased(CORN) Total_Cost_Objective 210
- QuantityPurchased(CORN) c_l_EnforceCattleFeedRequirement(CORN)_ 1
- QuantityPurchased(SUGAR_BEETS) Total_Cost_Objective 100000
- QuantityPurchased(SUGAR_BEETS) c_l_EnforceCattleFeedRequirement(SUGAR_BEETS)_ 1
- QuantityPurchased(WHEAT) Total_Cost_Objective 238
- QuantityPurchased(WHEAT) c_l_EnforceCattleFeedRequirement(WHEAT)_ 1
- QuantitySubQuotaSold(CORN) Total_Cost_Objective -150
- QuantitySubQuotaSold(CORN) c_l_EnforceCattleFeedRequirement(CORN)_ -1
- QuantitySubQuotaSold(CORN) c_u_LimitAmountSold(CORN)_ 1
- QuantitySubQuotaSold(CORN) r_l_EnforceQuotas(CORN)_ 1
- QuantitySubQuotaSold(CORN) r_u_EnforceQuotas(CORN)_ 1
- QuantitySubQuotaSold(SUGAR_BEETS) Total_Cost_Objective -36
- QuantitySubQuotaSold(SUGAR_BEETS) c_l_EnforceCattleFeedRequirement(SUGAR_BEETS)_ -1
- QuantitySubQuotaSold(SUGAR_BEETS) c_u_LimitAmountSold(SUGAR_BEETS)_ 1
- QuantitySubQuotaSold(SUGAR_BEETS) r_l_EnforceQuotas(SUGAR_BEETS)_ 1
- QuantitySubQuotaSold(SUGAR_BEETS) r_u_EnforceQuotas(SUGAR_BEETS)_ 1
- QuantitySubQuotaSold(WHEAT) Total_Cost_Objective -170
- QuantitySubQuotaSold(WHEAT) c_l_EnforceCattleFeedRequirement(WHEAT)_ -1
- QuantitySubQuotaSold(WHEAT) c_u_LimitAmountSold(WHEAT)_ 1
- QuantitySubQuotaSold(WHEAT) r_l_EnforceQuotas(WHEAT)_ 1
- QuantitySubQuotaSold(WHEAT) r_u_EnforceQuotas(WHEAT)_ 1
- QuantitySuperQuotaSold(CORN) c_l_EnforceCattleFeedRequirement(CORN)_ -1
- QuantitySuperQuotaSold(CORN) c_u_LimitAmountSold(CORN)_ 1
- QuantitySuperQuotaSold(SUGAR_BEETS) Total_Cost_Objective -10
- QuantitySuperQuotaSold(SUGAR_BEETS) c_l_EnforceCattleFeedRequirement(SUGAR_BEETS)_ -1
- QuantitySuperQuotaSold(SUGAR_BEETS) c_u_LimitAmountSold(SUGAR_BEETS)_ 1
- QuantitySuperQuotaSold(WHEAT) c_l_EnforceCattleFeedRequirement(WHEAT)_ -1
- QuantitySuperQuotaSold(WHEAT) c_u_LimitAmountSold(WHEAT)_ 1
- ONE_VAR_CONSTANT Total_Cost_Objective 0
- ONE_VAR_CONSTANT c_e_ONE_VAR_CONSTANT 1
-RHS
- RHS c_u_ConstrainTotalAcreage_ 500
- RHS c_l_EnforceCattleFeedRequirement(CORN)_ 240
- RHS c_l_EnforceCattleFeedRequirement(SUGAR_BEETS)_ 0
- RHS c_l_EnforceCattleFeedRequirement(WHEAT)_ 200
- RHS c_u_LimitAmountSold(CORN)_ 0
- RHS c_u_LimitAmountSold(SUGAR_BEETS)_ 0
- RHS c_u_LimitAmountSold(WHEAT)_ 0
- RHS r_l_EnforceQuotas(CORN)_ 0
- RHS r_u_EnforceQuotas(CORN)_ 100000
- RHS r_l_EnforceQuotas(SUGAR_BEETS)_ 0
- RHS r_u_EnforceQuotas(SUGAR_BEETS)_ 6000
- RHS r_l_EnforceQuotas(WHEAT)_ 0
- RHS r_u_EnforceQuotas(WHEAT)_ 100000
- RHS c_e_ONE_VAR_CONSTANT 1
-BOUNDS
- LO BOUND DevotedAcreage(CORN) 0
- UP BOUND DevotedAcreage(CORN) 500
- LO BOUND DevotedAcreage(SUGAR_BEETS) 0
- UP BOUND DevotedAcreage(SUGAR_BEETS) 500
- LO BOUND DevotedAcreage(WHEAT) 0
- UP BOUND DevotedAcreage(WHEAT) 500
- LO BOUND QuantityPurchased(CORN) 0
- LO BOUND QuantityPurchased(SUGAR_BEETS) 0
- LO BOUND QuantityPurchased(WHEAT) 0
- LO BOUND QuantitySubQuotaSold(CORN) 0
- LO BOUND QuantitySubQuotaSold(SUGAR_BEETS) 0
- LO BOUND QuantitySubQuotaSold(WHEAT) 0
- LO BOUND QuantitySuperQuotaSold(CORN) 0
- LO BOUND QuantitySuperQuotaSold(SUGAR_BEETS) 0
- LO BOUND QuantitySuperQuotaSold(WHEAT) 0
-ENDATA
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_symbolic_names_ignore_derived_baseline/scenario_files/farmer.mps.det.BelowAverageScenario b/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_symbolic_names_ignore_derived_baseline/scenario_files/farmer.mps.det.BelowAverageScenario
deleted file mode 100644
index cc1b5a64131..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_symbolic_names_ignore_derived_baseline/scenario_files/farmer.mps.det.BelowAverageScenario
+++ /dev/null
@@ -1,97 +0,0 @@
-* Source: Pyomo MPS Writer
-* Format: Free MPS
-*
-NAME ZeroStochasticData
-OBJSENSE
- MIN
-ROWS
- N Total_Cost_Objective
- L c_u_ConstrainTotalAcreage_
- G c_l_EnforceCattleFeedRequirement(CORN)_
- G c_l_EnforceCattleFeedRequirement(SUGAR_BEETS)_
- G c_l_EnforceCattleFeedRequirement(WHEAT)_
- L c_u_LimitAmountSold(CORN)_
- L c_u_LimitAmountSold(SUGAR_BEETS)_
- L c_u_LimitAmountSold(WHEAT)_
- G r_l_EnforceQuotas(CORN)_
- L r_u_EnforceQuotas(CORN)_
- G r_l_EnforceQuotas(SUGAR_BEETS)_
- L r_u_EnforceQuotas(SUGAR_BEETS)_
- G r_l_EnforceQuotas(WHEAT)_
- L r_u_EnforceQuotas(WHEAT)_
- E c_e_ONE_VAR_CONSTANT
-COLUMNS
- DevotedAcreage(CORN) Total_Cost_Objective 230
- DevotedAcreage(CORN) c_u_ConstrainTotalAcreage_ 1
- DevotedAcreage(CORN) c_l_EnforceCattleFeedRequirement(CORN)_ -9876543210
- DevotedAcreage(CORN) c_u_LimitAmountSold(CORN)_ -9876543210
- DevotedAcreage(SUGAR_BEETS) Total_Cost_Objective 260
- DevotedAcreage(SUGAR_BEETS) c_u_ConstrainTotalAcreage_ 1
- DevotedAcreage(SUGAR_BEETS) c_l_EnforceCattleFeedRequirement(SUGAR_BEETS)_ -9876543210
- DevotedAcreage(SUGAR_BEETS) c_u_LimitAmountSold(SUGAR_BEETS)_ -9876543210
- DevotedAcreage(WHEAT) Total_Cost_Objective 150
- DevotedAcreage(WHEAT) c_u_ConstrainTotalAcreage_ 1
- DevotedAcreage(WHEAT) c_l_EnforceCattleFeedRequirement(WHEAT)_ -9876543210
- DevotedAcreage(WHEAT) c_u_LimitAmountSold(WHEAT)_ -9876543210
- QuantityPurchased(CORN) Total_Cost_Objective 210
- QuantityPurchased(CORN) c_l_EnforceCattleFeedRequirement(CORN)_ 1
- QuantityPurchased(SUGAR_BEETS) Total_Cost_Objective 100000
- QuantityPurchased(SUGAR_BEETS) c_l_EnforceCattleFeedRequirement(SUGAR_BEETS)_ 1
- QuantityPurchased(WHEAT) Total_Cost_Objective 238
- QuantityPurchased(WHEAT) c_l_EnforceCattleFeedRequirement(WHEAT)_ 1
- QuantitySubQuotaSold(CORN) Total_Cost_Objective -150
- QuantitySubQuotaSold(CORN) c_l_EnforceCattleFeedRequirement(CORN)_ -1
- QuantitySubQuotaSold(CORN) c_u_LimitAmountSold(CORN)_ 1
- QuantitySubQuotaSold(CORN) r_l_EnforceQuotas(CORN)_ 1
- QuantitySubQuotaSold(CORN) r_u_EnforceQuotas(CORN)_ 1
- QuantitySubQuotaSold(SUGAR_BEETS) Total_Cost_Objective -36
- QuantitySubQuotaSold(SUGAR_BEETS) c_l_EnforceCattleFeedRequirement(SUGAR_BEETS)_ -1
- QuantitySubQuotaSold(SUGAR_BEETS) c_u_LimitAmountSold(SUGAR_BEETS)_ 1
- QuantitySubQuotaSold(SUGAR_BEETS) r_l_EnforceQuotas(SUGAR_BEETS)_ 1
- QuantitySubQuotaSold(SUGAR_BEETS) r_u_EnforceQuotas(SUGAR_BEETS)_ 1
- QuantitySubQuotaSold(WHEAT) Total_Cost_Objective -170
- QuantitySubQuotaSold(WHEAT) c_l_EnforceCattleFeedRequirement(WHEAT)_ -1
- QuantitySubQuotaSold(WHEAT) c_u_LimitAmountSold(WHEAT)_ 1
- QuantitySubQuotaSold(WHEAT) r_l_EnforceQuotas(WHEAT)_ 1
- QuantitySubQuotaSold(WHEAT) r_u_EnforceQuotas(WHEAT)_ 1
- QuantitySuperQuotaSold(CORN) c_l_EnforceCattleFeedRequirement(CORN)_ -1
- QuantitySuperQuotaSold(CORN) c_u_LimitAmountSold(CORN)_ 1
- QuantitySuperQuotaSold(SUGAR_BEETS) Total_Cost_Objective -10
- QuantitySuperQuotaSold(SUGAR_BEETS) c_l_EnforceCattleFeedRequirement(SUGAR_BEETS)_ -1
- QuantitySuperQuotaSold(SUGAR_BEETS) c_u_LimitAmountSold(SUGAR_BEETS)_ 1
- QuantitySuperQuotaSold(WHEAT) c_l_EnforceCattleFeedRequirement(WHEAT)_ -1
- QuantitySuperQuotaSold(WHEAT) c_u_LimitAmountSold(WHEAT)_ 1
- ONE_VAR_CONSTANT Total_Cost_Objective 0
- ONE_VAR_CONSTANT c_e_ONE_VAR_CONSTANT 1
-RHS
- RHS c_u_ConstrainTotalAcreage_ 500
- RHS c_l_EnforceCattleFeedRequirement(CORN)_ 240
- RHS c_l_EnforceCattleFeedRequirement(SUGAR_BEETS)_ 0
- RHS c_l_EnforceCattleFeedRequirement(WHEAT)_ 200
- RHS c_u_LimitAmountSold(CORN)_ 0
- RHS c_u_LimitAmountSold(SUGAR_BEETS)_ 0
- RHS c_u_LimitAmountSold(WHEAT)_ 0
- RHS r_l_EnforceQuotas(CORN)_ 0
- RHS r_u_EnforceQuotas(CORN)_ 100000
- RHS r_l_EnforceQuotas(SUGAR_BEETS)_ 0
- RHS r_u_EnforceQuotas(SUGAR_BEETS)_ 6000
- RHS r_l_EnforceQuotas(WHEAT)_ 0
- RHS r_u_EnforceQuotas(WHEAT)_ 100000
- RHS c_e_ONE_VAR_CONSTANT 1
-BOUNDS
- LO BOUND DevotedAcreage(CORN) 0
- UP BOUND DevotedAcreage(CORN) 500
- LO BOUND DevotedAcreage(SUGAR_BEETS) 0
- UP BOUND DevotedAcreage(SUGAR_BEETS) 500
- LO BOUND DevotedAcreage(WHEAT) 0
- UP BOUND DevotedAcreage(WHEAT) 500
- LO BOUND QuantityPurchased(CORN) 0
- LO BOUND QuantityPurchased(SUGAR_BEETS) 0
- LO BOUND QuantityPurchased(WHEAT) 0
- LO BOUND QuantitySubQuotaSold(CORN) 0
- LO BOUND QuantitySubQuotaSold(SUGAR_BEETS) 0
- LO BOUND QuantitySubQuotaSold(WHEAT) 0
- LO BOUND QuantitySuperQuotaSold(CORN) 0
- LO BOUND QuantitySuperQuotaSold(SUGAR_BEETS) 0
- LO BOUND QuantitySuperQuotaSold(WHEAT) 0
-ENDATA
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_symbolic_names_ignore_derived_baseline/scenario_files/farmer.mps.symbols.AboveAverageScenario b/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_symbolic_names_ignore_derived_baseline/scenario_files/farmer.mps.symbols.AboveAverageScenario
deleted file mode 100644
index e973348847d..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_symbolic_names_ignore_derived_baseline/scenario_files/farmer.mps.symbols.AboveAverageScenario
+++ /dev/null
@@ -1,3 +0,0 @@
-DevotedAcreage(CORN) DevotedAcreage:$CORN
-DevotedAcreage(SUGAR_BEETS) DevotedAcreage:$SUGAR_BEETS
-DevotedAcreage(WHEAT) DevotedAcreage:$WHEAT
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_symbolic_names_ignore_derived_baseline/scenario_files/farmer.mps.symbols.AverageScenario b/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_symbolic_names_ignore_derived_baseline/scenario_files/farmer.mps.symbols.AverageScenario
deleted file mode 100644
index e973348847d..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_symbolic_names_ignore_derived_baseline/scenario_files/farmer.mps.symbols.AverageScenario
+++ /dev/null
@@ -1,3 +0,0 @@
-DevotedAcreage(CORN) DevotedAcreage:$CORN
-DevotedAcreage(SUGAR_BEETS) DevotedAcreage:$SUGAR_BEETS
-DevotedAcreage(WHEAT) DevotedAcreage:$WHEAT
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_symbolic_names_ignore_derived_baseline/scenario_files/farmer.mps.symbols.BelowAverageScenario b/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_symbolic_names_ignore_derived_baseline/scenario_files/farmer.mps.symbols.BelowAverageScenario
deleted file mode 100644
index e973348847d..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_symbolic_names_ignore_derived_baseline/scenario_files/farmer.mps.symbols.BelowAverageScenario
+++ /dev/null
@@ -1,3 +0,0 @@
-DevotedAcreage(CORN) DevotedAcreage:$CORN
-DevotedAcreage(SUGAR_BEETS) DevotedAcreage:$SUGAR_BEETS
-DevotedAcreage(WHEAT) DevotedAcreage:$WHEAT
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_symbolic_names_ignore_derived_baseline/scenario_files/farmer.row.AboveAverageScenario b/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_symbolic_names_ignore_derived_baseline/scenario_files/farmer.row.AboveAverageScenario
deleted file mode 100644
index 0bf2f5edad0..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_symbolic_names_ignore_derived_baseline/scenario_files/farmer.row.AboveAverageScenario
+++ /dev/null
@@ -1,15 +0,0 @@
-Total_Cost_Objective
-c_u_ConstrainTotalAcreage_
-c_l_EnforceCattleFeedRequirement(CORN)_
-c_l_EnforceCattleFeedRequirement(SUGAR_BEETS)_
-c_l_EnforceCattleFeedRequirement(WHEAT)_
-c_u_LimitAmountSold(CORN)_
-c_u_LimitAmountSold(SUGAR_BEETS)_
-c_u_LimitAmountSold(WHEAT)_
-r_l_EnforceQuotas(CORN)_
-r_u_EnforceQuotas(CORN)_
-r_l_EnforceQuotas(SUGAR_BEETS)_
-r_u_EnforceQuotas(SUGAR_BEETS)_
-r_l_EnforceQuotas(WHEAT)_
-r_u_EnforceQuotas(WHEAT)_
-c_e_ONE_VAR_CONSTANT
\ No newline at end of file
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_symbolic_names_ignore_derived_baseline/scenario_files/farmer.row.AverageScenario b/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_symbolic_names_ignore_derived_baseline/scenario_files/farmer.row.AverageScenario
deleted file mode 100644
index 0bf2f5edad0..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_symbolic_names_ignore_derived_baseline/scenario_files/farmer.row.AverageScenario
+++ /dev/null
@@ -1,15 +0,0 @@
-Total_Cost_Objective
-c_u_ConstrainTotalAcreage_
-c_l_EnforceCattleFeedRequirement(CORN)_
-c_l_EnforceCattleFeedRequirement(SUGAR_BEETS)_
-c_l_EnforceCattleFeedRequirement(WHEAT)_
-c_u_LimitAmountSold(CORN)_
-c_u_LimitAmountSold(SUGAR_BEETS)_
-c_u_LimitAmountSold(WHEAT)_
-r_l_EnforceQuotas(CORN)_
-r_u_EnforceQuotas(CORN)_
-r_l_EnforceQuotas(SUGAR_BEETS)_
-r_u_EnforceQuotas(SUGAR_BEETS)_
-r_l_EnforceQuotas(WHEAT)_
-r_u_EnforceQuotas(WHEAT)_
-c_e_ONE_VAR_CONSTANT
\ No newline at end of file
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_symbolic_names_ignore_derived_baseline/scenario_files/farmer.row.BelowAverageScenario b/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_symbolic_names_ignore_derived_baseline/scenario_files/farmer.row.BelowAverageScenario
deleted file mode 100644
index 0bf2f5edad0..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_symbolic_names_ignore_derived_baseline/scenario_files/farmer.row.BelowAverageScenario
+++ /dev/null
@@ -1,15 +0,0 @@
-Total_Cost_Objective
-c_u_ConstrainTotalAcreage_
-c_l_EnforceCattleFeedRequirement(CORN)_
-c_l_EnforceCattleFeedRequirement(SUGAR_BEETS)_
-c_l_EnforceCattleFeedRequirement(WHEAT)_
-c_u_LimitAmountSold(CORN)_
-c_u_LimitAmountSold(SUGAR_BEETS)_
-c_u_LimitAmountSold(WHEAT)_
-r_l_EnforceQuotas(CORN)_
-r_u_EnforceQuotas(CORN)_
-r_l_EnforceQuotas(SUGAR_BEETS)_
-r_u_EnforceQuotas(SUGAR_BEETS)_
-r_l_EnforceQuotas(WHEAT)_
-r_u_EnforceQuotas(WHEAT)_
-c_e_ONE_VAR_CONSTANT
\ No newline at end of file
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_symbolic_names_ignore_derived_baseline/scenario_files/farmer.setup.mps.AboveAverageScenario b/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_symbolic_names_ignore_derived_baseline/scenario_files/farmer.setup.mps.AboveAverageScenario
deleted file mode 100644
index 1e177d4635f..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_symbolic_names_ignore_derived_baseline/scenario_files/farmer.setup.mps.AboveAverageScenario
+++ /dev/null
@@ -1,93 +0,0 @@
-* Source: Pyomo MPS Writer
-* Format: Free MPS
-*
-NAME AboveAverageScenario
-OBJSENSE
- MIN
-ROWS
- N Total_Cost_Objective
- L c_u_ConstrainTotalAcreage_
- G r_l_EnforceQuotas(CORN)_
- L r_u_EnforceQuotas(CORN)_
- G r_l_EnforceQuotas(SUGAR_BEETS)_
- L r_u_EnforceQuotas(SUGAR_BEETS)_
- G r_l_EnforceQuotas(WHEAT)_
- L r_u_EnforceQuotas(WHEAT)_
- G c_l_EnforceCattleFeedRequirement(CORN)_
- G c_l_EnforceCattleFeedRequirement(SUGAR_BEETS)_
- G c_l_EnforceCattleFeedRequirement(WHEAT)_
- L c_u_LimitAmountSold(CORN)_
- L c_u_LimitAmountSold(SUGAR_BEETS)_
- L c_u_LimitAmountSold(WHEAT)_
-COLUMNS
- DevotedAcreage(CORN) Total_Cost_Objective 230
- DevotedAcreage(CORN) c_u_ConstrainTotalAcreage_ 1
- DevotedAcreage(CORN) c_l_EnforceCattleFeedRequirement(CORN)_ 3.6000000000000001
- DevotedAcreage(CORN) c_u_LimitAmountSold(CORN)_ -3.6000000000000001
- DevotedAcreage(SUGAR_BEETS) Total_Cost_Objective 260
- DevotedAcreage(SUGAR_BEETS) c_u_ConstrainTotalAcreage_ 1
- DevotedAcreage(SUGAR_BEETS) c_l_EnforceCattleFeedRequirement(SUGAR_BEETS)_ 24
- DevotedAcreage(SUGAR_BEETS) c_u_LimitAmountSold(SUGAR_BEETS)_ -24
- DevotedAcreage(WHEAT) Total_Cost_Objective 150
- DevotedAcreage(WHEAT) c_u_ConstrainTotalAcreage_ 1
- DevotedAcreage(WHEAT) c_l_EnforceCattleFeedRequirement(WHEAT)_ 3
- DevotedAcreage(WHEAT) c_u_LimitAmountSold(WHEAT)_ -3
- QuantitySubQuotaSold(CORN) Total_Cost_Objective -150
- QuantitySubQuotaSold(CORN) r_l_EnforceQuotas(CORN)_ 1
- QuantitySubQuotaSold(CORN) r_u_EnforceQuotas(CORN)_ 1
- QuantitySubQuotaSold(CORN) c_l_EnforceCattleFeedRequirement(CORN)_ -1
- QuantitySubQuotaSold(CORN) c_u_LimitAmountSold(CORN)_ 1
- QuantitySubQuotaSold(SUGAR_BEETS) Total_Cost_Objective -36
- QuantitySubQuotaSold(SUGAR_BEETS) r_l_EnforceQuotas(SUGAR_BEETS)_ 1
- QuantitySubQuotaSold(SUGAR_BEETS) r_u_EnforceQuotas(SUGAR_BEETS)_ 1
- QuantitySubQuotaSold(SUGAR_BEETS) c_l_EnforceCattleFeedRequirement(SUGAR_BEETS)_ -1
- QuantitySubQuotaSold(SUGAR_BEETS) c_u_LimitAmountSold(SUGAR_BEETS)_ 1
- QuantitySubQuotaSold(WHEAT) Total_Cost_Objective -170
- QuantitySubQuotaSold(WHEAT) r_l_EnforceQuotas(WHEAT)_ 1
- QuantitySubQuotaSold(WHEAT) r_u_EnforceQuotas(WHEAT)_ 1
- QuantitySubQuotaSold(WHEAT) c_l_EnforceCattleFeedRequirement(WHEAT)_ -1
- QuantitySubQuotaSold(WHEAT) c_u_LimitAmountSold(WHEAT)_ 1
- QuantitySuperQuotaSold(CORN) c_l_EnforceCattleFeedRequirement(CORN)_ -1
- QuantitySuperQuotaSold(CORN) c_u_LimitAmountSold(CORN)_ 1
- QuantitySuperQuotaSold(SUGAR_BEETS) Total_Cost_Objective -10
- QuantitySuperQuotaSold(SUGAR_BEETS) c_l_EnforceCattleFeedRequirement(SUGAR_BEETS)_ -1
- QuantitySuperQuotaSold(SUGAR_BEETS) c_u_LimitAmountSold(SUGAR_BEETS)_ 1
- QuantitySuperQuotaSold(WHEAT) c_l_EnforceCattleFeedRequirement(WHEAT)_ -1
- QuantitySuperQuotaSold(WHEAT) c_u_LimitAmountSold(WHEAT)_ 1
- QuantityPurchased(CORN) Total_Cost_Objective 210
- QuantityPurchased(CORN) c_l_EnforceCattleFeedRequirement(CORN)_ 1
- QuantityPurchased(SUGAR_BEETS) Total_Cost_Objective 100000
- QuantityPurchased(SUGAR_BEETS) c_l_EnforceCattleFeedRequirement(SUGAR_BEETS)_ 1
- QuantityPurchased(WHEAT) Total_Cost_Objective 238
- QuantityPurchased(WHEAT) c_l_EnforceCattleFeedRequirement(WHEAT)_ 1
-RHS
- RHS c_u_ConstrainTotalAcreage_ 500
- RHS r_l_EnforceQuotas(CORN)_ 0
- RHS r_u_EnforceQuotas(CORN)_ 100000
- RHS r_l_EnforceQuotas(SUGAR_BEETS)_ 0
- RHS r_u_EnforceQuotas(SUGAR_BEETS)_ 6000
- RHS r_l_EnforceQuotas(WHEAT)_ 0
- RHS r_u_EnforceQuotas(WHEAT)_ 100000
- RHS c_l_EnforceCattleFeedRequirement(CORN)_ 240
- RHS c_l_EnforceCattleFeedRequirement(SUGAR_BEETS)_ 0
- RHS c_l_EnforceCattleFeedRequirement(WHEAT)_ 200
- RHS c_u_LimitAmountSold(CORN)_ 0
- RHS c_u_LimitAmountSold(SUGAR_BEETS)_ 0
- RHS c_u_LimitAmountSold(WHEAT)_ 0
-BOUNDS
- LO BOUND DevotedAcreage(CORN) 0
- UP BOUND DevotedAcreage(CORN) 500
- LO BOUND DevotedAcreage(SUGAR_BEETS) 0
- UP BOUND DevotedAcreage(SUGAR_BEETS) 500
- LO BOUND DevotedAcreage(WHEAT) 0
- UP BOUND DevotedAcreage(WHEAT) 500
- LO BOUND QuantitySubQuotaSold(CORN) 0
- LO BOUND QuantitySubQuotaSold(SUGAR_BEETS) 0
- LO BOUND QuantitySubQuotaSold(WHEAT) 0
- LO BOUND QuantitySuperQuotaSold(CORN) 0
- LO BOUND QuantitySuperQuotaSold(SUGAR_BEETS) 0
- LO BOUND QuantitySuperQuotaSold(WHEAT) 0
- LO BOUND QuantityPurchased(CORN) 0
- LO BOUND QuantityPurchased(SUGAR_BEETS) 0
- LO BOUND QuantityPurchased(WHEAT) 0
-ENDATA
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_symbolic_names_ignore_derived_baseline/scenario_files/farmer.setup.mps.AverageScenario b/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_symbolic_names_ignore_derived_baseline/scenario_files/farmer.setup.mps.AverageScenario
deleted file mode 100644
index b825caa3401..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_symbolic_names_ignore_derived_baseline/scenario_files/farmer.setup.mps.AverageScenario
+++ /dev/null
@@ -1,93 +0,0 @@
-* Source: Pyomo MPS Writer
-* Format: Free MPS
-*
-NAME AverageScenario
-OBJSENSE
- MIN
-ROWS
- N Total_Cost_Objective
- L c_u_ConstrainTotalAcreage_
- G r_l_EnforceQuotas(CORN)_
- L r_u_EnforceQuotas(CORN)_
- G r_l_EnforceQuotas(SUGAR_BEETS)_
- L r_u_EnforceQuotas(SUGAR_BEETS)_
- G r_l_EnforceQuotas(WHEAT)_
- L r_u_EnforceQuotas(WHEAT)_
- G c_l_EnforceCattleFeedRequirement(CORN)_
- G c_l_EnforceCattleFeedRequirement(SUGAR_BEETS)_
- G c_l_EnforceCattleFeedRequirement(WHEAT)_
- L c_u_LimitAmountSold(CORN)_
- L c_u_LimitAmountSold(SUGAR_BEETS)_
- L c_u_LimitAmountSold(WHEAT)_
-COLUMNS
- DevotedAcreage(CORN) Total_Cost_Objective 230
- DevotedAcreage(CORN) c_u_ConstrainTotalAcreage_ 1
- DevotedAcreage(CORN) c_l_EnforceCattleFeedRequirement(CORN)_ 3
- DevotedAcreage(CORN) c_u_LimitAmountSold(CORN)_ -3
- DevotedAcreage(SUGAR_BEETS) Total_Cost_Objective 260
- DevotedAcreage(SUGAR_BEETS) c_u_ConstrainTotalAcreage_ 1
- DevotedAcreage(SUGAR_BEETS) c_l_EnforceCattleFeedRequirement(SUGAR_BEETS)_ 20
- DevotedAcreage(SUGAR_BEETS) c_u_LimitAmountSold(SUGAR_BEETS)_ -20
- DevotedAcreage(WHEAT) Total_Cost_Objective 150
- DevotedAcreage(WHEAT) c_u_ConstrainTotalAcreage_ 1
- DevotedAcreage(WHEAT) c_l_EnforceCattleFeedRequirement(WHEAT)_ 2.5
- DevotedAcreage(WHEAT) c_u_LimitAmountSold(WHEAT)_ -2.5
- QuantitySubQuotaSold(CORN) Total_Cost_Objective -150
- QuantitySubQuotaSold(CORN) r_l_EnforceQuotas(CORN)_ 1
- QuantitySubQuotaSold(CORN) r_u_EnforceQuotas(CORN)_ 1
- QuantitySubQuotaSold(CORN) c_l_EnforceCattleFeedRequirement(CORN)_ -1
- QuantitySubQuotaSold(CORN) c_u_LimitAmountSold(CORN)_ 1
- QuantitySubQuotaSold(SUGAR_BEETS) Total_Cost_Objective -36
- QuantitySubQuotaSold(SUGAR_BEETS) r_l_EnforceQuotas(SUGAR_BEETS)_ 1
- QuantitySubQuotaSold(SUGAR_BEETS) r_u_EnforceQuotas(SUGAR_BEETS)_ 1
- QuantitySubQuotaSold(SUGAR_BEETS) c_l_EnforceCattleFeedRequirement(SUGAR_BEETS)_ -1
- QuantitySubQuotaSold(SUGAR_BEETS) c_u_LimitAmountSold(SUGAR_BEETS)_ 1
- QuantitySubQuotaSold(WHEAT) Total_Cost_Objective -170
- QuantitySubQuotaSold(WHEAT) r_l_EnforceQuotas(WHEAT)_ 1
- QuantitySubQuotaSold(WHEAT) r_u_EnforceQuotas(WHEAT)_ 1
- QuantitySubQuotaSold(WHEAT) c_l_EnforceCattleFeedRequirement(WHEAT)_ -1
- QuantitySubQuotaSold(WHEAT) c_u_LimitAmountSold(WHEAT)_ 1
- QuantitySuperQuotaSold(CORN) c_l_EnforceCattleFeedRequirement(CORN)_ -1
- QuantitySuperQuotaSold(CORN) c_u_LimitAmountSold(CORN)_ 1
- QuantitySuperQuotaSold(SUGAR_BEETS) Total_Cost_Objective -10
- QuantitySuperQuotaSold(SUGAR_BEETS) c_l_EnforceCattleFeedRequirement(SUGAR_BEETS)_ -1
- QuantitySuperQuotaSold(SUGAR_BEETS) c_u_LimitAmountSold(SUGAR_BEETS)_ 1
- QuantitySuperQuotaSold(WHEAT) c_l_EnforceCattleFeedRequirement(WHEAT)_ -1
- QuantitySuperQuotaSold(WHEAT) c_u_LimitAmountSold(WHEAT)_ 1
- QuantityPurchased(CORN) Total_Cost_Objective 210
- QuantityPurchased(CORN) c_l_EnforceCattleFeedRequirement(CORN)_ 1
- QuantityPurchased(SUGAR_BEETS) Total_Cost_Objective 100000
- QuantityPurchased(SUGAR_BEETS) c_l_EnforceCattleFeedRequirement(SUGAR_BEETS)_ 1
- QuantityPurchased(WHEAT) Total_Cost_Objective 238
- QuantityPurchased(WHEAT) c_l_EnforceCattleFeedRequirement(WHEAT)_ 1
-RHS
- RHS c_u_ConstrainTotalAcreage_ 500
- RHS r_l_EnforceQuotas(CORN)_ 0
- RHS r_u_EnforceQuotas(CORN)_ 100000
- RHS r_l_EnforceQuotas(SUGAR_BEETS)_ 0
- RHS r_u_EnforceQuotas(SUGAR_BEETS)_ 6000
- RHS r_l_EnforceQuotas(WHEAT)_ 0
- RHS r_u_EnforceQuotas(WHEAT)_ 100000
- RHS c_l_EnforceCattleFeedRequirement(CORN)_ 240
- RHS c_l_EnforceCattleFeedRequirement(SUGAR_BEETS)_ 0
- RHS c_l_EnforceCattleFeedRequirement(WHEAT)_ 200
- RHS c_u_LimitAmountSold(CORN)_ 0
- RHS c_u_LimitAmountSold(SUGAR_BEETS)_ 0
- RHS c_u_LimitAmountSold(WHEAT)_ 0
-BOUNDS
- LO BOUND DevotedAcreage(CORN) 0
- UP BOUND DevotedAcreage(CORN) 500
- LO BOUND DevotedAcreage(SUGAR_BEETS) 0
- UP BOUND DevotedAcreage(SUGAR_BEETS) 500
- LO BOUND DevotedAcreage(WHEAT) 0
- UP BOUND DevotedAcreage(WHEAT) 500
- LO BOUND QuantitySubQuotaSold(CORN) 0
- LO BOUND QuantitySubQuotaSold(SUGAR_BEETS) 0
- LO BOUND QuantitySubQuotaSold(WHEAT) 0
- LO BOUND QuantitySuperQuotaSold(CORN) 0
- LO BOUND QuantitySuperQuotaSold(SUGAR_BEETS) 0
- LO BOUND QuantitySuperQuotaSold(WHEAT) 0
- LO BOUND QuantityPurchased(CORN) 0
- LO BOUND QuantityPurchased(SUGAR_BEETS) 0
- LO BOUND QuantityPurchased(WHEAT) 0
-ENDATA
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_symbolic_names_ignore_derived_baseline/scenario_files/farmer.setup.mps.BelowAverageScenario b/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_symbolic_names_ignore_derived_baseline/scenario_files/farmer.setup.mps.BelowAverageScenario
deleted file mode 100644
index 46d653bd5da..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_symbolic_names_ignore_derived_baseline/scenario_files/farmer.setup.mps.BelowAverageScenario
+++ /dev/null
@@ -1,93 +0,0 @@
-* Source: Pyomo MPS Writer
-* Format: Free MPS
-*
-NAME BelowAverageScenario
-OBJSENSE
- MIN
-ROWS
- N Total_Cost_Objective
- L c_u_ConstrainTotalAcreage_
- G r_l_EnforceQuotas(CORN)_
- L r_u_EnforceQuotas(CORN)_
- G r_l_EnforceQuotas(SUGAR_BEETS)_
- L r_u_EnforceQuotas(SUGAR_BEETS)_
- G r_l_EnforceQuotas(WHEAT)_
- L r_u_EnforceQuotas(WHEAT)_
- G c_l_EnforceCattleFeedRequirement(CORN)_
- G c_l_EnforceCattleFeedRequirement(SUGAR_BEETS)_
- G c_l_EnforceCattleFeedRequirement(WHEAT)_
- L c_u_LimitAmountSold(CORN)_
- L c_u_LimitAmountSold(SUGAR_BEETS)_
- L c_u_LimitAmountSold(WHEAT)_
-COLUMNS
- DevotedAcreage(CORN) Total_Cost_Objective 230
- DevotedAcreage(CORN) c_u_ConstrainTotalAcreage_ 1
- DevotedAcreage(CORN) c_l_EnforceCattleFeedRequirement(CORN)_ 2.3999999999999999
- DevotedAcreage(CORN) c_u_LimitAmountSold(CORN)_ -2.3999999999999999
- DevotedAcreage(SUGAR_BEETS) Total_Cost_Objective 260
- DevotedAcreage(SUGAR_BEETS) c_u_ConstrainTotalAcreage_ 1
- DevotedAcreage(SUGAR_BEETS) c_l_EnforceCattleFeedRequirement(SUGAR_BEETS)_ 16
- DevotedAcreage(SUGAR_BEETS) c_u_LimitAmountSold(SUGAR_BEETS)_ -16
- DevotedAcreage(WHEAT) Total_Cost_Objective 150
- DevotedAcreage(WHEAT) c_u_ConstrainTotalAcreage_ 1
- DevotedAcreage(WHEAT) c_l_EnforceCattleFeedRequirement(WHEAT)_ 2
- DevotedAcreage(WHEAT) c_u_LimitAmountSold(WHEAT)_ -2
- QuantitySubQuotaSold(CORN) Total_Cost_Objective -150
- QuantitySubQuotaSold(CORN) r_l_EnforceQuotas(CORN)_ 1
- QuantitySubQuotaSold(CORN) r_u_EnforceQuotas(CORN)_ 1
- QuantitySubQuotaSold(CORN) c_l_EnforceCattleFeedRequirement(CORN)_ -1
- QuantitySubQuotaSold(CORN) c_u_LimitAmountSold(CORN)_ 1
- QuantitySubQuotaSold(SUGAR_BEETS) Total_Cost_Objective -36
- QuantitySubQuotaSold(SUGAR_BEETS) r_l_EnforceQuotas(SUGAR_BEETS)_ 1
- QuantitySubQuotaSold(SUGAR_BEETS) r_u_EnforceQuotas(SUGAR_BEETS)_ 1
- QuantitySubQuotaSold(SUGAR_BEETS) c_l_EnforceCattleFeedRequirement(SUGAR_BEETS)_ -1
- QuantitySubQuotaSold(SUGAR_BEETS) c_u_LimitAmountSold(SUGAR_BEETS)_ 1
- QuantitySubQuotaSold(WHEAT) Total_Cost_Objective -170
- QuantitySubQuotaSold(WHEAT) r_l_EnforceQuotas(WHEAT)_ 1
- QuantitySubQuotaSold(WHEAT) r_u_EnforceQuotas(WHEAT)_ 1
- QuantitySubQuotaSold(WHEAT) c_l_EnforceCattleFeedRequirement(WHEAT)_ -1
- QuantitySubQuotaSold(WHEAT) c_u_LimitAmountSold(WHEAT)_ 1
- QuantitySuperQuotaSold(CORN) c_l_EnforceCattleFeedRequirement(CORN)_ -1
- QuantitySuperQuotaSold(CORN) c_u_LimitAmountSold(CORN)_ 1
- QuantitySuperQuotaSold(SUGAR_BEETS) Total_Cost_Objective -10
- QuantitySuperQuotaSold(SUGAR_BEETS) c_l_EnforceCattleFeedRequirement(SUGAR_BEETS)_ -1
- QuantitySuperQuotaSold(SUGAR_BEETS) c_u_LimitAmountSold(SUGAR_BEETS)_ 1
- QuantitySuperQuotaSold(WHEAT) c_l_EnforceCattleFeedRequirement(WHEAT)_ -1
- QuantitySuperQuotaSold(WHEAT) c_u_LimitAmountSold(WHEAT)_ 1
- QuantityPurchased(CORN) Total_Cost_Objective 210
- QuantityPurchased(CORN) c_l_EnforceCattleFeedRequirement(CORN)_ 1
- QuantityPurchased(SUGAR_BEETS) Total_Cost_Objective 100000
- QuantityPurchased(SUGAR_BEETS) c_l_EnforceCattleFeedRequirement(SUGAR_BEETS)_ 1
- QuantityPurchased(WHEAT) Total_Cost_Objective 238
- QuantityPurchased(WHEAT) c_l_EnforceCattleFeedRequirement(WHEAT)_ 1
-RHS
- RHS c_u_ConstrainTotalAcreage_ 500
- RHS r_l_EnforceQuotas(CORN)_ 0
- RHS r_u_EnforceQuotas(CORN)_ 100000
- RHS r_l_EnforceQuotas(SUGAR_BEETS)_ 0
- RHS r_u_EnforceQuotas(SUGAR_BEETS)_ 6000
- RHS r_l_EnforceQuotas(WHEAT)_ 0
- RHS r_u_EnforceQuotas(WHEAT)_ 100000
- RHS c_l_EnforceCattleFeedRequirement(CORN)_ 240
- RHS c_l_EnforceCattleFeedRequirement(SUGAR_BEETS)_ 0
- RHS c_l_EnforceCattleFeedRequirement(WHEAT)_ 200
- RHS c_u_LimitAmountSold(CORN)_ 0
- RHS c_u_LimitAmountSold(SUGAR_BEETS)_ 0
- RHS c_u_LimitAmountSold(WHEAT)_ 0
-BOUNDS
- LO BOUND DevotedAcreage(CORN) 0
- UP BOUND DevotedAcreage(CORN) 500
- LO BOUND DevotedAcreage(SUGAR_BEETS) 0
- UP BOUND DevotedAcreage(SUGAR_BEETS) 500
- LO BOUND DevotedAcreage(WHEAT) 0
- UP BOUND DevotedAcreage(WHEAT) 500
- LO BOUND QuantitySubQuotaSold(CORN) 0
- LO BOUND QuantitySubQuotaSold(SUGAR_BEETS) 0
- LO BOUND QuantitySubQuotaSold(WHEAT) 0
- LO BOUND QuantitySuperQuotaSold(CORN) 0
- LO BOUND QuantitySuperQuotaSold(SUGAR_BEETS) 0
- LO BOUND QuantitySuperQuotaSold(WHEAT) 0
- LO BOUND QuantityPurchased(CORN) 0
- LO BOUND QuantityPurchased(SUGAR_BEETS) 0
- LO BOUND QuantityPurchased(WHEAT) 0
-ENDATA
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_symbolic_names_ignore_derived_baseline/scenario_files/farmer.sto.AboveAverageScenario b/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_symbolic_names_ignore_derived_baseline/scenario_files/farmer.sto.AboveAverageScenario
deleted file mode 100644
index 11764e8d6fd..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_symbolic_names_ignore_derived_baseline/scenario_files/farmer.sto.AboveAverageScenario
+++ /dev/null
@@ -1,7 +0,0 @@
- BL BLOCK1 PERIOD2 0.33333332999999998
- DevotedAcreage(CORN) c_l_EnforceCattleFeedRequirement(CORN)_ 3.6000000000000001
- DevotedAcreage(SUGAR_BEETS) c_l_EnforceCattleFeedRequirement(SUGAR_BEETS)_ 24
- DevotedAcreage(WHEAT) c_l_EnforceCattleFeedRequirement(WHEAT)_ 3
- DevotedAcreage(CORN) c_u_LimitAmountSold(CORN)_ -3.6000000000000001
- DevotedAcreage(SUGAR_BEETS) c_u_LimitAmountSold(SUGAR_BEETS)_ -24
- DevotedAcreage(WHEAT) c_u_LimitAmountSold(WHEAT)_ -3
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_symbolic_names_ignore_derived_baseline/scenario_files/farmer.sto.AverageScenario b/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_symbolic_names_ignore_derived_baseline/scenario_files/farmer.sto.AverageScenario
deleted file mode 100644
index 9a1dbbdfb5c..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_symbolic_names_ignore_derived_baseline/scenario_files/farmer.sto.AverageScenario
+++ /dev/null
@@ -1,7 +0,0 @@
- BL BLOCK1 PERIOD2 0.33333333999999998
- DevotedAcreage(CORN) c_l_EnforceCattleFeedRequirement(CORN)_ 3
- DevotedAcreage(SUGAR_BEETS) c_l_EnforceCattleFeedRequirement(SUGAR_BEETS)_ 20
- DevotedAcreage(WHEAT) c_l_EnforceCattleFeedRequirement(WHEAT)_ 2.5
- DevotedAcreage(CORN) c_u_LimitAmountSold(CORN)_ -3
- DevotedAcreage(SUGAR_BEETS) c_u_LimitAmountSold(SUGAR_BEETS)_ -20
- DevotedAcreage(WHEAT) c_u_LimitAmountSold(WHEAT)_ -2.5
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_symbolic_names_ignore_derived_baseline/scenario_files/farmer.sto.BelowAverageScenario b/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_symbolic_names_ignore_derived_baseline/scenario_files/farmer.sto.BelowAverageScenario
deleted file mode 100644
index 002b173fa98..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_symbolic_names_ignore_derived_baseline/scenario_files/farmer.sto.BelowAverageScenario
+++ /dev/null
@@ -1,7 +0,0 @@
- BL BLOCK1 PERIOD2 0.33333332999999998
- DevotedAcreage(CORN) c_l_EnforceCattleFeedRequirement(CORN)_ 2.3999999999999999
- DevotedAcreage(SUGAR_BEETS) c_l_EnforceCattleFeedRequirement(SUGAR_BEETS)_ 16
- DevotedAcreage(WHEAT) c_l_EnforceCattleFeedRequirement(WHEAT)_ 2
- DevotedAcreage(CORN) c_u_LimitAmountSold(CORN)_ -2.3999999999999999
- DevotedAcreage(SUGAR_BEETS) c_u_LimitAmountSold(SUGAR_BEETS)_ -16
- DevotedAcreage(WHEAT) c_u_LimitAmountSold(WHEAT)_ -2
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_symbolic_names_ignore_derived_baseline/scenario_files/farmer.sto.struct.AboveAverageScenario b/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_symbolic_names_ignore_derived_baseline/scenario_files/farmer.sto.struct.AboveAverageScenario
deleted file mode 100644
index 65fbc4b8d79..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_symbolic_names_ignore_derived_baseline/scenario_files/farmer.sto.struct.AboveAverageScenario
+++ /dev/null
@@ -1,6 +0,0 @@
-DevotedAcreage(CORN) c_l_EnforceCattleFeedRequirement(CORN)_
-DevotedAcreage(SUGAR_BEETS) c_l_EnforceCattleFeedRequirement(SUGAR_BEETS)_
-DevotedAcreage(WHEAT) c_l_EnforceCattleFeedRequirement(WHEAT)_
-DevotedAcreage(CORN) c_u_LimitAmountSold(CORN)_
-DevotedAcreage(SUGAR_BEETS) c_u_LimitAmountSold(SUGAR_BEETS)_
-DevotedAcreage(WHEAT) c_u_LimitAmountSold(WHEAT)_
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_symbolic_names_ignore_derived_baseline/scenario_files/farmer.sto.struct.AverageScenario b/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_symbolic_names_ignore_derived_baseline/scenario_files/farmer.sto.struct.AverageScenario
deleted file mode 100644
index 65fbc4b8d79..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_symbolic_names_ignore_derived_baseline/scenario_files/farmer.sto.struct.AverageScenario
+++ /dev/null
@@ -1,6 +0,0 @@
-DevotedAcreage(CORN) c_l_EnforceCattleFeedRequirement(CORN)_
-DevotedAcreage(SUGAR_BEETS) c_l_EnforceCattleFeedRequirement(SUGAR_BEETS)_
-DevotedAcreage(WHEAT) c_l_EnforceCattleFeedRequirement(WHEAT)_
-DevotedAcreage(CORN) c_u_LimitAmountSold(CORN)_
-DevotedAcreage(SUGAR_BEETS) c_u_LimitAmountSold(SUGAR_BEETS)_
-DevotedAcreage(WHEAT) c_u_LimitAmountSold(WHEAT)_
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_symbolic_names_ignore_derived_baseline/scenario_files/farmer.sto.struct.BelowAverageScenario b/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_symbolic_names_ignore_derived_baseline/scenario_files/farmer.sto.struct.BelowAverageScenario
deleted file mode 100644
index 65fbc4b8d79..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_symbolic_names_ignore_derived_baseline/scenario_files/farmer.sto.struct.BelowAverageScenario
+++ /dev/null
@@ -1,6 +0,0 @@
-DevotedAcreage(CORN) c_l_EnforceCattleFeedRequirement(CORN)_
-DevotedAcreage(SUGAR_BEETS) c_l_EnforceCattleFeedRequirement(SUGAR_BEETS)_
-DevotedAcreage(WHEAT) c_l_EnforceCattleFeedRequirement(WHEAT)_
-DevotedAcreage(CORN) c_u_LimitAmountSold(CORN)_
-DevotedAcreage(SUGAR_BEETS) c_u_LimitAmountSold(SUGAR_BEETS)_
-DevotedAcreage(WHEAT) c_u_LimitAmountSold(WHEAT)_
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_symbolic_names_ignore_derived_baseline/scenario_files/farmer.tim.AboveAverageScenario b/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_symbolic_names_ignore_derived_baseline/scenario_files/farmer.tim.AboveAverageScenario
deleted file mode 100644
index c8a6e910fb2..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_symbolic_names_ignore_derived_baseline/scenario_files/farmer.tim.AboveAverageScenario
+++ /dev/null
@@ -1,5 +0,0 @@
-TIME farmer
-PERIODS IMPLICIT
- DevotedAcreage(CORN) Total_Cost_Objective TIME1
- QuantityPurchased(CORN) c_l_EnforceCattleFeedRequirement(CORN)_ TIME2
-ENDATA
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_symbolic_names_ignore_derived_baseline/scenario_files/farmer.tim.AverageScenario b/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_symbolic_names_ignore_derived_baseline/scenario_files/farmer.tim.AverageScenario
deleted file mode 100644
index c8a6e910fb2..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_symbolic_names_ignore_derived_baseline/scenario_files/farmer.tim.AverageScenario
+++ /dev/null
@@ -1,5 +0,0 @@
-TIME farmer
-PERIODS IMPLICIT
- DevotedAcreage(CORN) Total_Cost_Objective TIME1
- QuantityPurchased(CORN) c_l_EnforceCattleFeedRequirement(CORN)_ TIME2
-ENDATA
diff --git a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_symbolic_names_ignore_derived_baseline/scenario_files/farmer.tim.BelowAverageScenario b/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_symbolic_names_ignore_derived_baseline/scenario_files/farmer.tim.BelowAverageScenario
deleted file mode 100644
index c8a6e910fb2..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/farmer_MPS_symbolic_names_ignore_derived_baseline/scenario_files/farmer.tim.BelowAverageScenario
+++ /dev/null
@@ -1,5 +0,0 @@
-TIME farmer
-PERIODS IMPLICIT
- DevotedAcreage(CORN) Total_Cost_Objective TIME1
- QuantityPurchased(CORN) c_l_EnforceCattleFeedRequirement(CORN)_ TIME2
-ENDATA
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_baseline/piecewise.col b/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_baseline/piecewise.col
deleted file mode 100644
index a2b99137e76..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_baseline/piecewise.col
+++ /dev/null
@@ -1,20 +0,0 @@
-x1
-x10
-x11
-x12
-x13
-x14
-x15
-x16
-x17
-x18
-x19
-x2
-x3
-x4
-x5
-x6
-x7
-x8
-x9
-ONE_VAR_CONSTANT
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_baseline/piecewise.cor b/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_baseline/piecewise.cor
deleted file mode 100644
index aa1ea3f8879..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_baseline/piecewise.cor
+++ /dev/null
@@ -1,148 +0,0 @@
-\* Source Pyomo model name=Scenario1 *\
-
-min
-x20:
-+1 x2
--1 x4
-+1 x5
-+0 ONE_VAR_CONSTANT
-
-s.t.
-
-c_l_x21_:
-+1 x1
->= 0
-
-c_e_x22_:
-+1 x1
--2 x6
--3 x7
--2 x8
--3 x9
-= 0
-
-c_e_x23_:
-+1 x2
-+1 x7
--1 x8
-= 10
-
-c_e_x24_:
--5 x13
--5 x14
--5 x15
--5 x16
-+1 x3
-= -10
-
-c_e_x25_:
-+1 x14
--3 x15
-+1 x16
-+1 x4
-= 0
-
-c_l_x26_:
-+1 x1
-+0 x5
->= -100
-
-c_u_x27_:
--1 x10
-+1 x7
-<= 0
-
-c_u_x28_:
--1 x11
-+1 x8
-<= 0
-
-c_u_x29_:
--1 x12
-+1 x9
-<= 0
-
-c_u_x30_:
-+1 x10
--1 x6
-<= 0
-
-c_u_x31_:
-+1 x11
--1 x7
-<= 0
-
-c_u_x32_:
-+1 x12
--1 x8
-<= 0
-
-c_u_x33_:
-+1 x14
--1 x17
-<= 0
-
-c_u_x34_:
-+1 x15
--1 x18
-<= 0
-
-c_u_x35_:
-+1 x16
--1 x19
-<= 0
-
-c_u_x36_:
--1 x13
-+1 x17
-<= 0
-
-c_u_x37_:
--1 x14
-+1 x18
-<= 0
-
-c_u_x38_:
--1 x15
-+1 x19
-<= 0
-
-r_l_x39_:
-+1 x5
->= 0
-
-r_u_x39_:
-+1 x5
-<= 0
-
-c_e_ONE_VAR_CONSTANT:
-ONE_VAR_CONSTANT = 1.0
-
-bounds
- 0 <= x1 <= 10
- -inf <= x2 <= +inf
- -10 <= x3 <= 10
- -inf <= x4 <= +inf
- -inf <= x5 <= +inf
- -inf <= x6 <= 1
- -inf <= x7 <= +inf
- -inf <= x8 <= +inf
- 0 <= x9 <= +inf
- 0 <= x10 <= 1
- 0 <= x11 <= 1
- 0 <= x12 <= 1
- -inf <= x13 <= 1
- -inf <= x14 <= +inf
- -inf <= x15 <= +inf
- 0 <= x16 <= +inf
- 0 <= x17 <= 1
- 0 <= x18 <= 1
- 0 <= x19 <= 1
-binary
- x10
- x11
- x12
- x17
- x18
- x19
-end
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_baseline/piecewise.cor.symbols b/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_baseline/piecewise.cor.symbols
deleted file mode 100644
index e9ae01d4c9f..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_baseline/piecewise.cor.symbols
+++ /dev/null
@@ -1,9 +0,0 @@
-x2 fx
-x10 p_first_stage.INC_bin_y:#1
-x11 p_first_stage.INC_bin_y:#2
-x12 p_first_stage.INC_bin_y:#3
-x6 p_first_stage.INC_delta:#1
-x7 p_first_stage.INC_delta:#2
-x8 p_first_stage.INC_delta:#3
-x9 p_first_stage.INC_delta:#4
-x1 x
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_baseline/piecewise.lp.det b/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_baseline/piecewise.lp.det
deleted file mode 100644
index 147a0934e46..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_baseline/piecewise.lp.det
+++ /dev/null
@@ -1,148 +0,0 @@
-\* Source Pyomo model name=ZeroStochasticData *\
-
-min
-x20:
--9876543210 x2
--9876543210 x4
--9876543210 x5
-+0 ONE_VAR_CONSTANT
-
-s.t.
-
-c_l_x21_:
-+1 x1
->= 0
-
-c_e_x22_:
-+1 x1
--2 x6
--3 x7
--2 x8
--3 x9
-= 0
-
-c_e_x23_:
-+1 x2
-+1 x7
--1 x8
-= 10
-
-c_e_x24_:
--9876543210 x13
--9876543210 x14
--9876543210 x15
--9876543210 x16
--9876543210 x3
-= -9876543210
-
-c_e_x25_:
--9876543210 x14
--9876543210 x15
--9876543210 x16
--9876543210 x4
-= -9876543210
-
-c_l_x26_:
-+1 x1
--9876543210 x5
->= -100
-
-c_u_x27_:
--1 x10
-+1 x7
-<= 0
-
-c_u_x28_:
--1 x11
-+1 x8
-<= 0
-
-c_u_x29_:
--1 x12
-+1 x9
-<= 0
-
-c_u_x30_:
-+1 x10
--1 x6
-<= 0
-
-c_u_x31_:
-+1 x11
--1 x7
-<= 0
-
-c_u_x32_:
-+1 x12
--1 x8
-<= 0
-
-c_u_x33_:
--9876543210 x14
--9876543210 x17
-<= -9876543210
-
-c_u_x34_:
--9876543210 x15
--9876543210 x18
-<= -9876543210
-
-c_u_x35_:
--9876543210 x16
--9876543210 x19
-<= -9876543210
-
-c_u_x36_:
--9876543210 x13
--9876543210 x17
-<= -9876543210
-
-c_u_x37_:
--9876543210 x14
--9876543210 x18
-<= -9876543210
-
-c_u_x38_:
--9876543210 x15
--9876543210 x19
-<= -9876543210
-
-r_l_x39_:
-+1 x5
->= -9876543210
-
-r_u_x39_:
-+1 x5
-<= -9876543210
-
-c_e_ONE_VAR_CONSTANT:
-ONE_VAR_CONSTANT = 1.0
-
-bounds
- 0 <= x1 <= 10
- -inf <= x2 <= +inf
- -10 <= x3 <= 10
- -inf <= x4 <= +inf
- -inf <= x5 <= +inf
- -inf <= x6 <= 1
- -inf <= x7 <= +inf
- -inf <= x8 <= +inf
- 0 <= x9 <= +inf
- 0 <= x10 <= 1
- 0 <= x11 <= 1
- 0 <= x12 <= 1
- -inf <= x13 <= 1
- -inf <= x14 <= +inf
- -inf <= x15 <= +inf
- 0 <= x16 <= +inf
- 0 <= x17 <= 1
- 0 <= x18 <= 1
- 0 <= x19 <= 1
-binary
- x10
- x11
- x12
- x17
- x18
- x19
-end
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_baseline/piecewise.row b/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_baseline/piecewise.row
deleted file mode 100644
index c7d817c6fed..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_baseline/piecewise.row
+++ /dev/null
@@ -1,22 +0,0 @@
-x20
-c_l_x21_
-c_e_x22_
-c_e_x23_
-c_e_x24_
-c_e_x25_
-c_l_x26_
-c_u_x27_
-c_u_x28_
-c_u_x29_
-c_u_x30_
-c_u_x31_
-c_u_x32_
-c_u_x33_
-c_u_x34_
-c_u_x35_
-c_u_x36_
-c_u_x37_
-c_u_x38_
-r_l_x39_
-r_u_x39_
-c_e_ONE_VAR_CONSTANT
\ No newline at end of file
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_baseline/piecewise.sto b/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_baseline/piecewise.sto
deleted file mode 100644
index e01f9360f88..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_baseline/piecewise.sto
+++ /dev/null
@@ -1,114 +0,0 @@
-STOCH piecewise
-BLOCKS DISCRETE REPLACE
- BL BLOCK1 PERIOD2 0.33333333329999998
- RHS c_e_x24_ -10
- RHS c_e_x25_ 0
- RHS c_u_x33_ 0
- RHS c_u_x34_ 0
- RHS c_u_x35_ 0
- RHS c_u_x36_ 0
- RHS c_u_x37_ 0
- RHS c_u_x38_ 0
- RHS r_l_x39_ 0
- RHS r_u_x39_ 0
- x5 c_l_x26_ 0
- x13 c_e_x24_ -5
- x14 c_e_x24_ -5
- x15 c_e_x24_ -5
- x16 c_e_x24_ -5
- x3 c_e_x24_ 1
- x14 c_e_x25_ 1
- x15 c_e_x25_ -3
- x16 c_e_x25_ 1
- x4 c_e_x25_ 1
- x14 c_u_x33_ 1
- x17 c_u_x33_ -1
- x15 c_u_x34_ 1
- x18 c_u_x34_ -1
- x16 c_u_x35_ 1
- x19 c_u_x35_ -1
- x13 c_u_x36_ -1
- x17 c_u_x36_ 1
- x14 c_u_x37_ -1
- x18 c_u_x37_ 1
- x15 c_u_x38_ -1
- x19 c_u_x38_ 1
- x2 x20 1
- x4 x20 -1
- x5 x20 1
- ONE_VAR_CONSTANT x20 0
- BL BLOCK1 PERIOD2 0.33333333329999998
- RHS c_e_x24_ -10
- RHS c_e_x25_ 0
- RHS c_u_x33_ 0
- RHS c_u_x34_ 0
- RHS c_u_x35_ 0
- RHS c_u_x36_ 0
- RHS c_u_x37_ 0
- RHS c_u_x38_ 0
- RHS r_l_x39_ -1
- RHS r_u_x39_ 0
- x5 c_l_x26_ 1
- x13 c_e_x24_ -5
- x14 c_e_x24_ -5
- x15 c_e_x24_ -5
- x16 c_e_x24_ -5
- x3 c_e_x24_ 1
- x14 c_e_x25_ 1
- x15 c_e_x25_ -4
- x16 c_e_x25_ 2
- x4 c_e_x25_ 1
- x14 c_u_x33_ 1
- x17 c_u_x33_ -1
- x15 c_u_x34_ 1
- x18 c_u_x34_ -1
- x16 c_u_x35_ 1
- x19 c_u_x35_ -1
- x13 c_u_x36_ -1
- x17 c_u_x36_ 1
- x14 c_u_x37_ -1
- x18 c_u_x37_ 1
- x15 c_u_x38_ -1
- x19 c_u_x38_ 1
- x2 x20 1
- x4 x20 -1
- x5 x20 1
- ONE_VAR_CONSTANT x20 -1
- BL BLOCK1 PERIOD2 0.33333333329999998
- RHS c_e_x24_ -10
- RHS c_e_x25_ 0
- RHS c_u_x33_ 0
- RHS c_u_x34_ 0
- RHS c_u_x35_ 0
- RHS c_u_x36_ 0
- RHS c_u_x37_ 0
- RHS c_u_x38_ 0
- RHS r_l_x39_ -2
- RHS r_u_x39_ 0
- x5 c_l_x26_ 2
- x13 c_e_x24_ -5
- x14 c_e_x24_ -5
- x15 c_e_x24_ -5
- x16 c_e_x24_ -5
- x3 c_e_x24_ 1
- x14 c_e_x25_ 1
- x15 c_e_x25_ -5
- x16 c_e_x25_ 3
- x4 c_e_x25_ 1
- x14 c_u_x33_ 1
- x17 c_u_x33_ -1
- x15 c_u_x34_ 1
- x18 c_u_x34_ -1
- x16 c_u_x35_ 1
- x19 c_u_x35_ -1
- x13 c_u_x36_ -1
- x17 c_u_x36_ 1
- x14 c_u_x37_ -1
- x18 c_u_x37_ 1
- x15 c_u_x38_ -1
- x19 c_u_x38_ 1
- x2 x20 1
- x4 x20 -1
- x5 x20 1
- ONE_VAR_CONSTANT x20 -2
-ENDATA
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_baseline/piecewise.sto.struct b/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_baseline/piecewise.sto.struct
deleted file mode 100644
index d4306d642fc..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_baseline/piecewise.sto.struct
+++ /dev/null
@@ -1,36 +0,0 @@
-RHS c_e_x24_
-RHS c_e_x25_
-RHS c_u_x33_
-RHS c_u_x34_
-RHS c_u_x35_
-RHS c_u_x36_
-RHS c_u_x37_
-RHS c_u_x38_
-RHS r_l_x39_
-RHS r_u_x39_
-x5 c_l_x26_
-x13 c_e_x24_
-x14 c_e_x24_
-x15 c_e_x24_
-x16 c_e_x24_
-x3 c_e_x24_
-x14 c_e_x25_
-x15 c_e_x25_
-x16 c_e_x25_
-x4 c_e_x25_
-x14 c_u_x33_
-x17 c_u_x33_
-x15 c_u_x34_
-x18 c_u_x34_
-x16 c_u_x35_
-x19 c_u_x35_
-x13 c_u_x36_
-x17 c_u_x36_
-x14 c_u_x37_
-x18 c_u_x37_
-x15 c_u_x38_
-x19 c_u_x38_
-x2 x20
-x4 x20
-x5 x20
-ONE_VAR_CONSTANT x20
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_baseline/piecewise.tim b/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_baseline/piecewise.tim
deleted file mode 100644
index 0cf19ff22c3..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_baseline/piecewise.tim
+++ /dev/null
@@ -1,49 +0,0 @@
-TIME piecewise
-PERIODS EXPLICIT
- TIME1
- TIME2
-ROWS
- x20 TIME1
- c_l_x21_ TIME1
- c_e_x22_ TIME2
- c_e_x23_ TIME2
- c_e_x24_ TIME2
- c_e_x25_ TIME2
- c_l_x26_ TIME2
- c_u_x27_ TIME2
- c_u_x28_ TIME2
- c_u_x29_ TIME2
- c_u_x30_ TIME2
- c_u_x31_ TIME2
- c_u_x32_ TIME2
- c_u_x33_ TIME2
- c_u_x34_ TIME2
- c_u_x35_ TIME2
- c_u_x36_ TIME2
- c_u_x37_ TIME2
- c_u_x38_ TIME2
- r_l_x39_ TIME2
- r_u_x39_ TIME2
- c_e_ONE_VAR_CONSTANT TIME2
-COLS
- x1 TIME1
- x10 TIME2
- x11 TIME2
- x12 TIME2
- x13 TIME2
- x14 TIME2
- x15 TIME2
- x16 TIME2
- x17 TIME2
- x18 TIME2
- x19 TIME2
- x2 TIME2
- x3 TIME2
- x4 TIME2
- x5 TIME2
- x6 TIME2
- x7 TIME2
- x8 TIME2
- x9 TIME2
- ONE_VAR_CONSTANT TIME2
-ENDATA
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_baseline/scenario_files/piecewise.col.Scenario1 b/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_baseline/scenario_files/piecewise.col.Scenario1
deleted file mode 100644
index a2b99137e76..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_baseline/scenario_files/piecewise.col.Scenario1
+++ /dev/null
@@ -1,20 +0,0 @@
-x1
-x10
-x11
-x12
-x13
-x14
-x15
-x16
-x17
-x18
-x19
-x2
-x3
-x4
-x5
-x6
-x7
-x8
-x9
-ONE_VAR_CONSTANT
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_baseline/scenario_files/piecewise.col.Scenario2 b/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_baseline/scenario_files/piecewise.col.Scenario2
deleted file mode 100644
index a2b99137e76..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_baseline/scenario_files/piecewise.col.Scenario2
+++ /dev/null
@@ -1,20 +0,0 @@
-x1
-x10
-x11
-x12
-x13
-x14
-x15
-x16
-x17
-x18
-x19
-x2
-x3
-x4
-x5
-x6
-x7
-x8
-x9
-ONE_VAR_CONSTANT
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_baseline/scenario_files/piecewise.col.Scenario3 b/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_baseline/scenario_files/piecewise.col.Scenario3
deleted file mode 100644
index a2b99137e76..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_baseline/scenario_files/piecewise.col.Scenario3
+++ /dev/null
@@ -1,20 +0,0 @@
-x1
-x10
-x11
-x12
-x13
-x14
-x15
-x16
-x17
-x18
-x19
-x2
-x3
-x4
-x5
-x6
-x7
-x8
-x9
-ONE_VAR_CONSTANT
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_baseline/scenario_files/piecewise.lp.Scenario1 b/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_baseline/scenario_files/piecewise.lp.Scenario1
deleted file mode 100644
index aa1ea3f8879..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_baseline/scenario_files/piecewise.lp.Scenario1
+++ /dev/null
@@ -1,148 +0,0 @@
-\* Source Pyomo model name=Scenario1 *\
-
-min
-x20:
-+1 x2
--1 x4
-+1 x5
-+0 ONE_VAR_CONSTANT
-
-s.t.
-
-c_l_x21_:
-+1 x1
->= 0
-
-c_e_x22_:
-+1 x1
--2 x6
--3 x7
--2 x8
--3 x9
-= 0
-
-c_e_x23_:
-+1 x2
-+1 x7
--1 x8
-= 10
-
-c_e_x24_:
--5 x13
--5 x14
--5 x15
--5 x16
-+1 x3
-= -10
-
-c_e_x25_:
-+1 x14
--3 x15
-+1 x16
-+1 x4
-= 0
-
-c_l_x26_:
-+1 x1
-+0 x5
->= -100
-
-c_u_x27_:
--1 x10
-+1 x7
-<= 0
-
-c_u_x28_:
--1 x11
-+1 x8
-<= 0
-
-c_u_x29_:
--1 x12
-+1 x9
-<= 0
-
-c_u_x30_:
-+1 x10
--1 x6
-<= 0
-
-c_u_x31_:
-+1 x11
--1 x7
-<= 0
-
-c_u_x32_:
-+1 x12
--1 x8
-<= 0
-
-c_u_x33_:
-+1 x14
--1 x17
-<= 0
-
-c_u_x34_:
-+1 x15
--1 x18
-<= 0
-
-c_u_x35_:
-+1 x16
--1 x19
-<= 0
-
-c_u_x36_:
--1 x13
-+1 x17
-<= 0
-
-c_u_x37_:
--1 x14
-+1 x18
-<= 0
-
-c_u_x38_:
--1 x15
-+1 x19
-<= 0
-
-r_l_x39_:
-+1 x5
->= 0
-
-r_u_x39_:
-+1 x5
-<= 0
-
-c_e_ONE_VAR_CONSTANT:
-ONE_VAR_CONSTANT = 1.0
-
-bounds
- 0 <= x1 <= 10
- -inf <= x2 <= +inf
- -10 <= x3 <= 10
- -inf <= x4 <= +inf
- -inf <= x5 <= +inf
- -inf <= x6 <= 1
- -inf <= x7 <= +inf
- -inf <= x8 <= +inf
- 0 <= x9 <= +inf
- 0 <= x10 <= 1
- 0 <= x11 <= 1
- 0 <= x12 <= 1
- -inf <= x13 <= 1
- -inf <= x14 <= +inf
- -inf <= x15 <= +inf
- 0 <= x16 <= +inf
- 0 <= x17 <= 1
- 0 <= x18 <= 1
- 0 <= x19 <= 1
-binary
- x10
- x11
- x12
- x17
- x18
- x19
-end
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_baseline/scenario_files/piecewise.lp.Scenario2 b/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_baseline/scenario_files/piecewise.lp.Scenario2
deleted file mode 100644
index 5ab119bade0..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_baseline/scenario_files/piecewise.lp.Scenario2
+++ /dev/null
@@ -1,148 +0,0 @@
-\* Source Pyomo model name=Scenario2 *\
-
-min
-x20:
-+1 x2
--1 x4
-+1 x5
--1 ONE_VAR_CONSTANT
-
-s.t.
-
-c_l_x21_:
-+1 x1
->= 0
-
-c_e_x22_:
-+1 x1
--2 x6
--3 x7
--2 x8
--3 x9
-= 0
-
-c_e_x23_:
-+1 x2
-+1 x7
--1 x8
-= 10
-
-c_e_x24_:
--5 x13
--5 x14
--5 x15
--5 x16
-+1 x3
-= -10
-
-c_e_x25_:
-+1 x14
--4 x15
-+2 x16
-+1 x4
-= 0
-
-c_l_x26_:
-+1 x1
-+1 x5
->= -100
-
-c_u_x27_:
--1 x10
-+1 x7
-<= 0
-
-c_u_x28_:
--1 x11
-+1 x8
-<= 0
-
-c_u_x29_:
--1 x12
-+1 x9
-<= 0
-
-c_u_x30_:
-+1 x10
--1 x6
-<= 0
-
-c_u_x31_:
-+1 x11
--1 x7
-<= 0
-
-c_u_x32_:
-+1 x12
--1 x8
-<= 0
-
-c_u_x33_:
-+1 x14
--1 x17
-<= 0
-
-c_u_x34_:
-+1 x15
--1 x18
-<= 0
-
-c_u_x35_:
-+1 x16
--1 x19
-<= 0
-
-c_u_x36_:
--1 x13
-+1 x17
-<= 0
-
-c_u_x37_:
--1 x14
-+1 x18
-<= 0
-
-c_u_x38_:
--1 x15
-+1 x19
-<= 0
-
-r_l_x39_:
-+1 x5
->= -1
-
-r_u_x39_:
-+1 x5
-<= 0
-
-c_e_ONE_VAR_CONSTANT:
-ONE_VAR_CONSTANT = 1.0
-
-bounds
- 0 <= x1 <= 10
- -inf <= x2 <= +inf
- -10 <= x3 <= 10
- -inf <= x4 <= +inf
- -inf <= x5 <= +inf
- -inf <= x6 <= 1
- -inf <= x7 <= +inf
- -inf <= x8 <= +inf
- 0 <= x9 <= +inf
- 0 <= x10 <= 1
- 0 <= x11 <= 1
- 0 <= x12 <= 1
- -inf <= x13 <= 1
- -inf <= x14 <= +inf
- -inf <= x15 <= +inf
- 0 <= x16 <= +inf
- 0 <= x17 <= 1
- 0 <= x18 <= 1
- 0 <= x19 <= 1
-binary
- x10
- x11
- x12
- x17
- x18
- x19
-end
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_baseline/scenario_files/piecewise.lp.Scenario3 b/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_baseline/scenario_files/piecewise.lp.Scenario3
deleted file mode 100644
index d7f4a7cf047..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_baseline/scenario_files/piecewise.lp.Scenario3
+++ /dev/null
@@ -1,148 +0,0 @@
-\* Source Pyomo model name=Scenario3 *\
-
-min
-x20:
-+1 x2
--1 x4
-+1 x5
--2 ONE_VAR_CONSTANT
-
-s.t.
-
-c_l_x21_:
-+1 x1
->= 0
-
-c_e_x22_:
-+1 x1
--2 x6
--3 x7
--2 x8
--3 x9
-= 0
-
-c_e_x23_:
-+1 x2
-+1 x7
--1 x8
-= 10
-
-c_e_x24_:
--5 x13
--5 x14
--5 x15
--5 x16
-+1 x3
-= -10
-
-c_e_x25_:
-+1 x14
--5 x15
-+3 x16
-+1 x4
-= 0
-
-c_l_x26_:
-+1 x1
-+2 x5
->= -100
-
-c_u_x27_:
--1 x10
-+1 x7
-<= 0
-
-c_u_x28_:
--1 x11
-+1 x8
-<= 0
-
-c_u_x29_:
--1 x12
-+1 x9
-<= 0
-
-c_u_x30_:
-+1 x10
--1 x6
-<= 0
-
-c_u_x31_:
-+1 x11
--1 x7
-<= 0
-
-c_u_x32_:
-+1 x12
--1 x8
-<= 0
-
-c_u_x33_:
-+1 x14
--1 x17
-<= 0
-
-c_u_x34_:
-+1 x15
--1 x18
-<= 0
-
-c_u_x35_:
-+1 x16
--1 x19
-<= 0
-
-c_u_x36_:
--1 x13
-+1 x17
-<= 0
-
-c_u_x37_:
--1 x14
-+1 x18
-<= 0
-
-c_u_x38_:
--1 x15
-+1 x19
-<= 0
-
-r_l_x39_:
-+1 x5
->= -2
-
-r_u_x39_:
-+1 x5
-<= 0
-
-c_e_ONE_VAR_CONSTANT:
-ONE_VAR_CONSTANT = 1.0
-
-bounds
- 0 <= x1 <= 10
- -inf <= x2 <= +inf
- -10 <= x3 <= 10
- -inf <= x4 <= +inf
- -inf <= x5 <= +inf
- -inf <= x6 <= 1
- -inf <= x7 <= +inf
- -inf <= x8 <= +inf
- 0 <= x9 <= +inf
- 0 <= x10 <= 1
- 0 <= x11 <= 1
- 0 <= x12 <= 1
- -inf <= x13 <= 1
- -inf <= x14 <= +inf
- -inf <= x15 <= +inf
- 0 <= x16 <= +inf
- 0 <= x17 <= 1
- 0 <= x18 <= 1
- 0 <= x19 <= 1
-binary
- x10
- x11
- x12
- x17
- x18
- x19
-end
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_baseline/scenario_files/piecewise.lp.det.Scenario1 b/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_baseline/scenario_files/piecewise.lp.det.Scenario1
deleted file mode 100644
index 147a0934e46..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_baseline/scenario_files/piecewise.lp.det.Scenario1
+++ /dev/null
@@ -1,148 +0,0 @@
-\* Source Pyomo model name=ZeroStochasticData *\
-
-min
-x20:
--9876543210 x2
--9876543210 x4
--9876543210 x5
-+0 ONE_VAR_CONSTANT
-
-s.t.
-
-c_l_x21_:
-+1 x1
->= 0
-
-c_e_x22_:
-+1 x1
--2 x6
--3 x7
--2 x8
--3 x9
-= 0
-
-c_e_x23_:
-+1 x2
-+1 x7
--1 x8
-= 10
-
-c_e_x24_:
--9876543210 x13
--9876543210 x14
--9876543210 x15
--9876543210 x16
--9876543210 x3
-= -9876543210
-
-c_e_x25_:
--9876543210 x14
--9876543210 x15
--9876543210 x16
--9876543210 x4
-= -9876543210
-
-c_l_x26_:
-+1 x1
--9876543210 x5
->= -100
-
-c_u_x27_:
--1 x10
-+1 x7
-<= 0
-
-c_u_x28_:
--1 x11
-+1 x8
-<= 0
-
-c_u_x29_:
--1 x12
-+1 x9
-<= 0
-
-c_u_x30_:
-+1 x10
--1 x6
-<= 0
-
-c_u_x31_:
-+1 x11
--1 x7
-<= 0
-
-c_u_x32_:
-+1 x12
--1 x8
-<= 0
-
-c_u_x33_:
--9876543210 x14
--9876543210 x17
-<= -9876543210
-
-c_u_x34_:
--9876543210 x15
--9876543210 x18
-<= -9876543210
-
-c_u_x35_:
--9876543210 x16
--9876543210 x19
-<= -9876543210
-
-c_u_x36_:
--9876543210 x13
--9876543210 x17
-<= -9876543210
-
-c_u_x37_:
--9876543210 x14
--9876543210 x18
-<= -9876543210
-
-c_u_x38_:
--9876543210 x15
--9876543210 x19
-<= -9876543210
-
-r_l_x39_:
-+1 x5
->= -9876543210
-
-r_u_x39_:
-+1 x5
-<= -9876543210
-
-c_e_ONE_VAR_CONSTANT:
-ONE_VAR_CONSTANT = 1.0
-
-bounds
- 0 <= x1 <= 10
- -inf <= x2 <= +inf
- -10 <= x3 <= 10
- -inf <= x4 <= +inf
- -inf <= x5 <= +inf
- -inf <= x6 <= 1
- -inf <= x7 <= +inf
- -inf <= x8 <= +inf
- 0 <= x9 <= +inf
- 0 <= x10 <= 1
- 0 <= x11 <= 1
- 0 <= x12 <= 1
- -inf <= x13 <= 1
- -inf <= x14 <= +inf
- -inf <= x15 <= +inf
- 0 <= x16 <= +inf
- 0 <= x17 <= 1
- 0 <= x18 <= 1
- 0 <= x19 <= 1
-binary
- x10
- x11
- x12
- x17
- x18
- x19
-end
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_baseline/scenario_files/piecewise.lp.det.Scenario2 b/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_baseline/scenario_files/piecewise.lp.det.Scenario2
deleted file mode 100644
index 147a0934e46..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_baseline/scenario_files/piecewise.lp.det.Scenario2
+++ /dev/null
@@ -1,148 +0,0 @@
-\* Source Pyomo model name=ZeroStochasticData *\
-
-min
-x20:
--9876543210 x2
--9876543210 x4
--9876543210 x5
-+0 ONE_VAR_CONSTANT
-
-s.t.
-
-c_l_x21_:
-+1 x1
->= 0
-
-c_e_x22_:
-+1 x1
--2 x6
--3 x7
--2 x8
--3 x9
-= 0
-
-c_e_x23_:
-+1 x2
-+1 x7
--1 x8
-= 10
-
-c_e_x24_:
--9876543210 x13
--9876543210 x14
--9876543210 x15
--9876543210 x16
--9876543210 x3
-= -9876543210
-
-c_e_x25_:
--9876543210 x14
--9876543210 x15
--9876543210 x16
--9876543210 x4
-= -9876543210
-
-c_l_x26_:
-+1 x1
--9876543210 x5
->= -100
-
-c_u_x27_:
--1 x10
-+1 x7
-<= 0
-
-c_u_x28_:
--1 x11
-+1 x8
-<= 0
-
-c_u_x29_:
--1 x12
-+1 x9
-<= 0
-
-c_u_x30_:
-+1 x10
--1 x6
-<= 0
-
-c_u_x31_:
-+1 x11
--1 x7
-<= 0
-
-c_u_x32_:
-+1 x12
--1 x8
-<= 0
-
-c_u_x33_:
--9876543210 x14
--9876543210 x17
-<= -9876543210
-
-c_u_x34_:
--9876543210 x15
--9876543210 x18
-<= -9876543210
-
-c_u_x35_:
--9876543210 x16
--9876543210 x19
-<= -9876543210
-
-c_u_x36_:
--9876543210 x13
--9876543210 x17
-<= -9876543210
-
-c_u_x37_:
--9876543210 x14
--9876543210 x18
-<= -9876543210
-
-c_u_x38_:
--9876543210 x15
--9876543210 x19
-<= -9876543210
-
-r_l_x39_:
-+1 x5
->= -9876543210
-
-r_u_x39_:
-+1 x5
-<= -9876543210
-
-c_e_ONE_VAR_CONSTANT:
-ONE_VAR_CONSTANT = 1.0
-
-bounds
- 0 <= x1 <= 10
- -inf <= x2 <= +inf
- -10 <= x3 <= 10
- -inf <= x4 <= +inf
- -inf <= x5 <= +inf
- -inf <= x6 <= 1
- -inf <= x7 <= +inf
- -inf <= x8 <= +inf
- 0 <= x9 <= +inf
- 0 <= x10 <= 1
- 0 <= x11 <= 1
- 0 <= x12 <= 1
- -inf <= x13 <= 1
- -inf <= x14 <= +inf
- -inf <= x15 <= +inf
- 0 <= x16 <= +inf
- 0 <= x17 <= 1
- 0 <= x18 <= 1
- 0 <= x19 <= 1
-binary
- x10
- x11
- x12
- x17
- x18
- x19
-end
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_baseline/scenario_files/piecewise.lp.det.Scenario3 b/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_baseline/scenario_files/piecewise.lp.det.Scenario3
deleted file mode 100644
index 147a0934e46..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_baseline/scenario_files/piecewise.lp.det.Scenario3
+++ /dev/null
@@ -1,148 +0,0 @@
-\* Source Pyomo model name=ZeroStochasticData *\
-
-min
-x20:
--9876543210 x2
--9876543210 x4
--9876543210 x5
-+0 ONE_VAR_CONSTANT
-
-s.t.
-
-c_l_x21_:
-+1 x1
->= 0
-
-c_e_x22_:
-+1 x1
--2 x6
--3 x7
--2 x8
--3 x9
-= 0
-
-c_e_x23_:
-+1 x2
-+1 x7
--1 x8
-= 10
-
-c_e_x24_:
--9876543210 x13
--9876543210 x14
--9876543210 x15
--9876543210 x16
--9876543210 x3
-= -9876543210
-
-c_e_x25_:
--9876543210 x14
--9876543210 x15
--9876543210 x16
--9876543210 x4
-= -9876543210
-
-c_l_x26_:
-+1 x1
--9876543210 x5
->= -100
-
-c_u_x27_:
--1 x10
-+1 x7
-<= 0
-
-c_u_x28_:
--1 x11
-+1 x8
-<= 0
-
-c_u_x29_:
--1 x12
-+1 x9
-<= 0
-
-c_u_x30_:
-+1 x10
--1 x6
-<= 0
-
-c_u_x31_:
-+1 x11
--1 x7
-<= 0
-
-c_u_x32_:
-+1 x12
--1 x8
-<= 0
-
-c_u_x33_:
--9876543210 x14
--9876543210 x17
-<= -9876543210
-
-c_u_x34_:
--9876543210 x15
--9876543210 x18
-<= -9876543210
-
-c_u_x35_:
--9876543210 x16
--9876543210 x19
-<= -9876543210
-
-c_u_x36_:
--9876543210 x13
--9876543210 x17
-<= -9876543210
-
-c_u_x37_:
--9876543210 x14
--9876543210 x18
-<= -9876543210
-
-c_u_x38_:
--9876543210 x15
--9876543210 x19
-<= -9876543210
-
-r_l_x39_:
-+1 x5
->= -9876543210
-
-r_u_x39_:
-+1 x5
-<= -9876543210
-
-c_e_ONE_VAR_CONSTANT:
-ONE_VAR_CONSTANT = 1.0
-
-bounds
- 0 <= x1 <= 10
- -inf <= x2 <= +inf
- -10 <= x3 <= 10
- -inf <= x4 <= +inf
- -inf <= x5 <= +inf
- -inf <= x6 <= 1
- -inf <= x7 <= +inf
- -inf <= x8 <= +inf
- 0 <= x9 <= +inf
- 0 <= x10 <= 1
- 0 <= x11 <= 1
- 0 <= x12 <= 1
- -inf <= x13 <= 1
- -inf <= x14 <= +inf
- -inf <= x15 <= +inf
- 0 <= x16 <= +inf
- 0 <= x17 <= 1
- 0 <= x18 <= 1
- 0 <= x19 <= 1
-binary
- x10
- x11
- x12
- x17
- x18
- x19
-end
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_baseline/scenario_files/piecewise.lp.symbols.Scenario1 b/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_baseline/scenario_files/piecewise.lp.symbols.Scenario1
deleted file mode 100644
index e9ae01d4c9f..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_baseline/scenario_files/piecewise.lp.symbols.Scenario1
+++ /dev/null
@@ -1,9 +0,0 @@
-x2 fx
-x10 p_first_stage.INC_bin_y:#1
-x11 p_first_stage.INC_bin_y:#2
-x12 p_first_stage.INC_bin_y:#3
-x6 p_first_stage.INC_delta:#1
-x7 p_first_stage.INC_delta:#2
-x8 p_first_stage.INC_delta:#3
-x9 p_first_stage.INC_delta:#4
-x1 x
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_baseline/scenario_files/piecewise.lp.symbols.Scenario2 b/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_baseline/scenario_files/piecewise.lp.symbols.Scenario2
deleted file mode 100644
index e9ae01d4c9f..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_baseline/scenario_files/piecewise.lp.symbols.Scenario2
+++ /dev/null
@@ -1,9 +0,0 @@
-x2 fx
-x10 p_first_stage.INC_bin_y:#1
-x11 p_first_stage.INC_bin_y:#2
-x12 p_first_stage.INC_bin_y:#3
-x6 p_first_stage.INC_delta:#1
-x7 p_first_stage.INC_delta:#2
-x8 p_first_stage.INC_delta:#3
-x9 p_first_stage.INC_delta:#4
-x1 x
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_baseline/scenario_files/piecewise.lp.symbols.Scenario3 b/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_baseline/scenario_files/piecewise.lp.symbols.Scenario3
deleted file mode 100644
index e9ae01d4c9f..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_baseline/scenario_files/piecewise.lp.symbols.Scenario3
+++ /dev/null
@@ -1,9 +0,0 @@
-x2 fx
-x10 p_first_stage.INC_bin_y:#1
-x11 p_first_stage.INC_bin_y:#2
-x12 p_first_stage.INC_bin_y:#3
-x6 p_first_stage.INC_delta:#1
-x7 p_first_stage.INC_delta:#2
-x8 p_first_stage.INC_delta:#3
-x9 p_first_stage.INC_delta:#4
-x1 x
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_baseline/scenario_files/piecewise.row.Scenario1 b/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_baseline/scenario_files/piecewise.row.Scenario1
deleted file mode 100644
index c7d817c6fed..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_baseline/scenario_files/piecewise.row.Scenario1
+++ /dev/null
@@ -1,22 +0,0 @@
-x20
-c_l_x21_
-c_e_x22_
-c_e_x23_
-c_e_x24_
-c_e_x25_
-c_l_x26_
-c_u_x27_
-c_u_x28_
-c_u_x29_
-c_u_x30_
-c_u_x31_
-c_u_x32_
-c_u_x33_
-c_u_x34_
-c_u_x35_
-c_u_x36_
-c_u_x37_
-c_u_x38_
-r_l_x39_
-r_u_x39_
-c_e_ONE_VAR_CONSTANT
\ No newline at end of file
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_baseline/scenario_files/piecewise.row.Scenario2 b/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_baseline/scenario_files/piecewise.row.Scenario2
deleted file mode 100644
index c7d817c6fed..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_baseline/scenario_files/piecewise.row.Scenario2
+++ /dev/null
@@ -1,22 +0,0 @@
-x20
-c_l_x21_
-c_e_x22_
-c_e_x23_
-c_e_x24_
-c_e_x25_
-c_l_x26_
-c_u_x27_
-c_u_x28_
-c_u_x29_
-c_u_x30_
-c_u_x31_
-c_u_x32_
-c_u_x33_
-c_u_x34_
-c_u_x35_
-c_u_x36_
-c_u_x37_
-c_u_x38_
-r_l_x39_
-r_u_x39_
-c_e_ONE_VAR_CONSTANT
\ No newline at end of file
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_baseline/scenario_files/piecewise.row.Scenario3 b/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_baseline/scenario_files/piecewise.row.Scenario3
deleted file mode 100644
index c7d817c6fed..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_baseline/scenario_files/piecewise.row.Scenario3
+++ /dev/null
@@ -1,22 +0,0 @@
-x20
-c_l_x21_
-c_e_x22_
-c_e_x23_
-c_e_x24_
-c_e_x25_
-c_l_x26_
-c_u_x27_
-c_u_x28_
-c_u_x29_
-c_u_x30_
-c_u_x31_
-c_u_x32_
-c_u_x33_
-c_u_x34_
-c_u_x35_
-c_u_x36_
-c_u_x37_
-c_u_x38_
-r_l_x39_
-r_u_x39_
-c_e_ONE_VAR_CONSTANT
\ No newline at end of file
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_baseline/scenario_files/piecewise.setup.lp.Scenario1 b/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_baseline/scenario_files/piecewise.setup.lp.Scenario1
deleted file mode 100644
index 65cb7bf3a3c..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_baseline/scenario_files/piecewise.setup.lp.Scenario1
+++ /dev/null
@@ -1,147 +0,0 @@
-\* Source Pyomo model name=Scenario1 *\
-
-min
-x20:
-+1 x2
--1 x4
-+1 x5
-
-s.t.
-
-c_l_x21_:
-+1 x1
->= 0
-
-c_l_x22_:
-+1 x1
-+0 x5
->= -100
-
-r_l_x23_:
-+1 x5
->= 0
-
-r_u_x23_:
-+1 x5
-<= 0
-
-c_e_x24_:
-+1 x1
--2 x6
--3 x7
--2 x8
--3 x9
-= 0
-
-c_e_x25_:
-+1 x2
-+1 x7
--1 x8
-= 10
-
-c_u_x26_:
--1 x10
-+1 x7
-<= 0
-
-c_u_x27_:
--1 x11
-+1 x8
-<= 0
-
-c_u_x28_:
--1 x12
-+1 x9
-<= 0
-
-c_u_x29_:
-+1 x10
--1 x6
-<= 0
-
-c_u_x30_:
-+1 x11
--1 x7
-<= 0
-
-c_u_x31_:
-+1 x12
--1 x8
-<= 0
-
-c_e_x32_:
--5 x13
--5 x14
--5 x15
--5 x16
-+1 x3
-= -10
-
-c_e_x33_:
-+1 x14
--3 x15
-+1 x16
-+1 x4
-= 0
-
-c_u_x34_:
-+1 x14
--1 x17
-<= 0
-
-c_u_x35_:
-+1 x15
--1 x18
-<= 0
-
-c_u_x36_:
-+1 x16
--1 x19
-<= 0
-
-c_u_x37_:
--1 x13
-+1 x17
-<= 0
-
-c_u_x38_:
--1 x14
-+1 x18
-<= 0
-
-c_u_x39_:
--1 x15
-+1 x19
-<= 0
-
-c_e_ONE_VAR_CONSTANT:
-ONE_VAR_CONSTANT = 1.0
-
-bounds
- 0 <= x1 <= 10
- -inf <= x2 <= +inf
- -10 <= x3 <= 10
- -inf <= x4 <= +inf
- -inf <= x5 <= +inf
- -inf <= x6 <= 1
- -inf <= x7 <= +inf
- -inf <= x8 <= +inf
- 0 <= x9 <= +inf
- 0 <= x10 <= 1
- 0 <= x11 <= 1
- 0 <= x12 <= 1
- -inf <= x13 <= 1
- -inf <= x14 <= +inf
- -inf <= x15 <= +inf
- 0 <= x16 <= +inf
- 0 <= x17 <= 1
- 0 <= x18 <= 1
- 0 <= x19 <= 1
-binary
- x10
- x11
- x12
- x17
- x18
- x19
-end
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_baseline/scenario_files/piecewise.setup.lp.Scenario2 b/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_baseline/scenario_files/piecewise.setup.lp.Scenario2
deleted file mode 100644
index 3b530f3c356..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_baseline/scenario_files/piecewise.setup.lp.Scenario2
+++ /dev/null
@@ -1,148 +0,0 @@
-\* Source Pyomo model name=Scenario2 *\
-
-min
-x20:
-+1 x2
--1 x4
-+1 x5
--1 ONE_VAR_CONSTANT
-
-s.t.
-
-c_l_x21_:
-+1 x1
->= 0
-
-c_l_x22_:
-+1 x1
-+1 x5
->= -100
-
-r_l_x23_:
-+1 x5
->= -1
-
-r_u_x23_:
-+1 x5
-<= 0
-
-c_e_x24_:
-+1 x1
--2 x6
--3 x7
--2 x8
--3 x9
-= 0
-
-c_e_x25_:
-+1 x2
-+1 x7
--1 x8
-= 10
-
-c_u_x26_:
--1 x10
-+1 x7
-<= 0
-
-c_u_x27_:
--1 x11
-+1 x8
-<= 0
-
-c_u_x28_:
--1 x12
-+1 x9
-<= 0
-
-c_u_x29_:
-+1 x10
--1 x6
-<= 0
-
-c_u_x30_:
-+1 x11
--1 x7
-<= 0
-
-c_u_x31_:
-+1 x12
--1 x8
-<= 0
-
-c_e_x32_:
--5 x13
--5 x14
--5 x15
--5 x16
-+1 x3
-= -10
-
-c_e_x33_:
-+1 x14
--4 x15
-+2 x16
-+1 x4
-= 0
-
-c_u_x34_:
-+1 x14
--1 x17
-<= 0
-
-c_u_x35_:
-+1 x15
--1 x18
-<= 0
-
-c_u_x36_:
-+1 x16
--1 x19
-<= 0
-
-c_u_x37_:
--1 x13
-+1 x17
-<= 0
-
-c_u_x38_:
--1 x14
-+1 x18
-<= 0
-
-c_u_x39_:
--1 x15
-+1 x19
-<= 0
-
-c_e_ONE_VAR_CONSTANT:
-ONE_VAR_CONSTANT = 1.0
-
-bounds
- 0 <= x1 <= 10
- -inf <= x2 <= +inf
- -10 <= x3 <= 10
- -inf <= x4 <= +inf
- -inf <= x5 <= +inf
- -inf <= x6 <= 1
- -inf <= x7 <= +inf
- -inf <= x8 <= +inf
- 0 <= x9 <= +inf
- 0 <= x10 <= 1
- 0 <= x11 <= 1
- 0 <= x12 <= 1
- -inf <= x13 <= 1
- -inf <= x14 <= +inf
- -inf <= x15 <= +inf
- 0 <= x16 <= +inf
- 0 <= x17 <= 1
- 0 <= x18 <= 1
- 0 <= x19 <= 1
-binary
- x10
- x11
- x12
- x17
- x18
- x19
-end
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_baseline/scenario_files/piecewise.setup.lp.Scenario3 b/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_baseline/scenario_files/piecewise.setup.lp.Scenario3
deleted file mode 100644
index 79852c73075..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_baseline/scenario_files/piecewise.setup.lp.Scenario3
+++ /dev/null
@@ -1,148 +0,0 @@
-\* Source Pyomo model name=Scenario3 *\
-
-min
-x20:
-+1 x2
--1 x4
-+1 x5
--2 ONE_VAR_CONSTANT
-
-s.t.
-
-c_l_x21_:
-+1 x1
->= 0
-
-c_l_x22_:
-+1 x1
-+2 x5
->= -100
-
-r_l_x23_:
-+1 x5
->= -2
-
-r_u_x23_:
-+1 x5
-<= 0
-
-c_e_x24_:
-+1 x1
--2 x6
--3 x7
--2 x8
--3 x9
-= 0
-
-c_e_x25_:
-+1 x2
-+1 x7
--1 x8
-= 10
-
-c_u_x26_:
--1 x10
-+1 x7
-<= 0
-
-c_u_x27_:
--1 x11
-+1 x8
-<= 0
-
-c_u_x28_:
--1 x12
-+1 x9
-<= 0
-
-c_u_x29_:
-+1 x10
--1 x6
-<= 0
-
-c_u_x30_:
-+1 x11
--1 x7
-<= 0
-
-c_u_x31_:
-+1 x12
--1 x8
-<= 0
-
-c_e_x32_:
--5 x13
--5 x14
--5 x15
--5 x16
-+1 x3
-= -10
-
-c_e_x33_:
-+1 x14
--5 x15
-+3 x16
-+1 x4
-= 0
-
-c_u_x34_:
-+1 x14
--1 x17
-<= 0
-
-c_u_x35_:
-+1 x15
--1 x18
-<= 0
-
-c_u_x36_:
-+1 x16
--1 x19
-<= 0
-
-c_u_x37_:
--1 x13
-+1 x17
-<= 0
-
-c_u_x38_:
--1 x14
-+1 x18
-<= 0
-
-c_u_x39_:
--1 x15
-+1 x19
-<= 0
-
-c_e_ONE_VAR_CONSTANT:
-ONE_VAR_CONSTANT = 1.0
-
-bounds
- 0 <= x1 <= 10
- -inf <= x2 <= +inf
- -10 <= x3 <= 10
- -inf <= x4 <= +inf
- -inf <= x5 <= +inf
- -inf <= x6 <= 1
- -inf <= x7 <= +inf
- -inf <= x8 <= +inf
- 0 <= x9 <= +inf
- 0 <= x10 <= 1
- 0 <= x11 <= 1
- 0 <= x12 <= 1
- -inf <= x13 <= 1
- -inf <= x14 <= +inf
- -inf <= x15 <= +inf
- 0 <= x16 <= +inf
- 0 <= x17 <= 1
- 0 <= x18 <= 1
- 0 <= x19 <= 1
-binary
- x10
- x11
- x12
- x17
- x18
- x19
-end
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_baseline/scenario_files/piecewise.sto.Scenario1 b/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_baseline/scenario_files/piecewise.sto.Scenario1
deleted file mode 100644
index a7597054d7b..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_baseline/scenario_files/piecewise.sto.Scenario1
+++ /dev/null
@@ -1,37 +0,0 @@
- BL BLOCK1 PERIOD2 0.33333333329999998
- RHS c_e_x24_ -10
- RHS c_e_x25_ 0
- RHS c_u_x33_ 0
- RHS c_u_x34_ 0
- RHS c_u_x35_ 0
- RHS c_u_x36_ 0
- RHS c_u_x37_ 0
- RHS c_u_x38_ 0
- RHS r_l_x39_ 0
- RHS r_u_x39_ 0
- x5 c_l_x26_ 0
- x13 c_e_x24_ -5
- x14 c_e_x24_ -5
- x15 c_e_x24_ -5
- x16 c_e_x24_ -5
- x3 c_e_x24_ 1
- x14 c_e_x25_ 1
- x15 c_e_x25_ -3
- x16 c_e_x25_ 1
- x4 c_e_x25_ 1
- x14 c_u_x33_ 1
- x17 c_u_x33_ -1
- x15 c_u_x34_ 1
- x18 c_u_x34_ -1
- x16 c_u_x35_ 1
- x19 c_u_x35_ -1
- x13 c_u_x36_ -1
- x17 c_u_x36_ 1
- x14 c_u_x37_ -1
- x18 c_u_x37_ 1
- x15 c_u_x38_ -1
- x19 c_u_x38_ 1
- x2 x20 1
- x4 x20 -1
- x5 x20 1
- ONE_VAR_CONSTANT x20 0
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_baseline/scenario_files/piecewise.sto.Scenario2 b/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_baseline/scenario_files/piecewise.sto.Scenario2
deleted file mode 100644
index 545a9f30c32..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_baseline/scenario_files/piecewise.sto.Scenario2
+++ /dev/null
@@ -1,37 +0,0 @@
- BL BLOCK1 PERIOD2 0.33333333329999998
- RHS c_e_x24_ -10
- RHS c_e_x25_ 0
- RHS c_u_x33_ 0
- RHS c_u_x34_ 0
- RHS c_u_x35_ 0
- RHS c_u_x36_ 0
- RHS c_u_x37_ 0
- RHS c_u_x38_ 0
- RHS r_l_x39_ -1
- RHS r_u_x39_ 0
- x5 c_l_x26_ 1
- x13 c_e_x24_ -5
- x14 c_e_x24_ -5
- x15 c_e_x24_ -5
- x16 c_e_x24_ -5
- x3 c_e_x24_ 1
- x14 c_e_x25_ 1
- x15 c_e_x25_ -4
- x16 c_e_x25_ 2
- x4 c_e_x25_ 1
- x14 c_u_x33_ 1
- x17 c_u_x33_ -1
- x15 c_u_x34_ 1
- x18 c_u_x34_ -1
- x16 c_u_x35_ 1
- x19 c_u_x35_ -1
- x13 c_u_x36_ -1
- x17 c_u_x36_ 1
- x14 c_u_x37_ -1
- x18 c_u_x37_ 1
- x15 c_u_x38_ -1
- x19 c_u_x38_ 1
- x2 x20 1
- x4 x20 -1
- x5 x20 1
- ONE_VAR_CONSTANT x20 -1
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_baseline/scenario_files/piecewise.sto.Scenario3 b/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_baseline/scenario_files/piecewise.sto.Scenario3
deleted file mode 100644
index f7202184733..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_baseline/scenario_files/piecewise.sto.Scenario3
+++ /dev/null
@@ -1,37 +0,0 @@
- BL BLOCK1 PERIOD2 0.33333333329999998
- RHS c_e_x24_ -10
- RHS c_e_x25_ 0
- RHS c_u_x33_ 0
- RHS c_u_x34_ 0
- RHS c_u_x35_ 0
- RHS c_u_x36_ 0
- RHS c_u_x37_ 0
- RHS c_u_x38_ 0
- RHS r_l_x39_ -2
- RHS r_u_x39_ 0
- x5 c_l_x26_ 2
- x13 c_e_x24_ -5
- x14 c_e_x24_ -5
- x15 c_e_x24_ -5
- x16 c_e_x24_ -5
- x3 c_e_x24_ 1
- x14 c_e_x25_ 1
- x15 c_e_x25_ -5
- x16 c_e_x25_ 3
- x4 c_e_x25_ 1
- x14 c_u_x33_ 1
- x17 c_u_x33_ -1
- x15 c_u_x34_ 1
- x18 c_u_x34_ -1
- x16 c_u_x35_ 1
- x19 c_u_x35_ -1
- x13 c_u_x36_ -1
- x17 c_u_x36_ 1
- x14 c_u_x37_ -1
- x18 c_u_x37_ 1
- x15 c_u_x38_ -1
- x19 c_u_x38_ 1
- x2 x20 1
- x4 x20 -1
- x5 x20 1
- ONE_VAR_CONSTANT x20 -2
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_baseline/scenario_files/piecewise.sto.struct.Scenario1 b/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_baseline/scenario_files/piecewise.sto.struct.Scenario1
deleted file mode 100644
index d4306d642fc..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_baseline/scenario_files/piecewise.sto.struct.Scenario1
+++ /dev/null
@@ -1,36 +0,0 @@
-RHS c_e_x24_
-RHS c_e_x25_
-RHS c_u_x33_
-RHS c_u_x34_
-RHS c_u_x35_
-RHS c_u_x36_
-RHS c_u_x37_
-RHS c_u_x38_
-RHS r_l_x39_
-RHS r_u_x39_
-x5 c_l_x26_
-x13 c_e_x24_
-x14 c_e_x24_
-x15 c_e_x24_
-x16 c_e_x24_
-x3 c_e_x24_
-x14 c_e_x25_
-x15 c_e_x25_
-x16 c_e_x25_
-x4 c_e_x25_
-x14 c_u_x33_
-x17 c_u_x33_
-x15 c_u_x34_
-x18 c_u_x34_
-x16 c_u_x35_
-x19 c_u_x35_
-x13 c_u_x36_
-x17 c_u_x36_
-x14 c_u_x37_
-x18 c_u_x37_
-x15 c_u_x38_
-x19 c_u_x38_
-x2 x20
-x4 x20
-x5 x20
-ONE_VAR_CONSTANT x20
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_baseline/scenario_files/piecewise.sto.struct.Scenario2 b/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_baseline/scenario_files/piecewise.sto.struct.Scenario2
deleted file mode 100644
index d4306d642fc..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_baseline/scenario_files/piecewise.sto.struct.Scenario2
+++ /dev/null
@@ -1,36 +0,0 @@
-RHS c_e_x24_
-RHS c_e_x25_
-RHS c_u_x33_
-RHS c_u_x34_
-RHS c_u_x35_
-RHS c_u_x36_
-RHS c_u_x37_
-RHS c_u_x38_
-RHS r_l_x39_
-RHS r_u_x39_
-x5 c_l_x26_
-x13 c_e_x24_
-x14 c_e_x24_
-x15 c_e_x24_
-x16 c_e_x24_
-x3 c_e_x24_
-x14 c_e_x25_
-x15 c_e_x25_
-x16 c_e_x25_
-x4 c_e_x25_
-x14 c_u_x33_
-x17 c_u_x33_
-x15 c_u_x34_
-x18 c_u_x34_
-x16 c_u_x35_
-x19 c_u_x35_
-x13 c_u_x36_
-x17 c_u_x36_
-x14 c_u_x37_
-x18 c_u_x37_
-x15 c_u_x38_
-x19 c_u_x38_
-x2 x20
-x4 x20
-x5 x20
-ONE_VAR_CONSTANT x20
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_baseline/scenario_files/piecewise.sto.struct.Scenario3 b/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_baseline/scenario_files/piecewise.sto.struct.Scenario3
deleted file mode 100644
index d4306d642fc..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_baseline/scenario_files/piecewise.sto.struct.Scenario3
+++ /dev/null
@@ -1,36 +0,0 @@
-RHS c_e_x24_
-RHS c_e_x25_
-RHS c_u_x33_
-RHS c_u_x34_
-RHS c_u_x35_
-RHS c_u_x36_
-RHS c_u_x37_
-RHS c_u_x38_
-RHS r_l_x39_
-RHS r_u_x39_
-x5 c_l_x26_
-x13 c_e_x24_
-x14 c_e_x24_
-x15 c_e_x24_
-x16 c_e_x24_
-x3 c_e_x24_
-x14 c_e_x25_
-x15 c_e_x25_
-x16 c_e_x25_
-x4 c_e_x25_
-x14 c_u_x33_
-x17 c_u_x33_
-x15 c_u_x34_
-x18 c_u_x34_
-x16 c_u_x35_
-x19 c_u_x35_
-x13 c_u_x36_
-x17 c_u_x36_
-x14 c_u_x37_
-x18 c_u_x37_
-x15 c_u_x38_
-x19 c_u_x38_
-x2 x20
-x4 x20
-x5 x20
-ONE_VAR_CONSTANT x20
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_baseline/scenario_files/piecewise.tim.Scenario1 b/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_baseline/scenario_files/piecewise.tim.Scenario1
deleted file mode 100644
index 0cf19ff22c3..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_baseline/scenario_files/piecewise.tim.Scenario1
+++ /dev/null
@@ -1,49 +0,0 @@
-TIME piecewise
-PERIODS EXPLICIT
- TIME1
- TIME2
-ROWS
- x20 TIME1
- c_l_x21_ TIME1
- c_e_x22_ TIME2
- c_e_x23_ TIME2
- c_e_x24_ TIME2
- c_e_x25_ TIME2
- c_l_x26_ TIME2
- c_u_x27_ TIME2
- c_u_x28_ TIME2
- c_u_x29_ TIME2
- c_u_x30_ TIME2
- c_u_x31_ TIME2
- c_u_x32_ TIME2
- c_u_x33_ TIME2
- c_u_x34_ TIME2
- c_u_x35_ TIME2
- c_u_x36_ TIME2
- c_u_x37_ TIME2
- c_u_x38_ TIME2
- r_l_x39_ TIME2
- r_u_x39_ TIME2
- c_e_ONE_VAR_CONSTANT TIME2
-COLS
- x1 TIME1
- x10 TIME2
- x11 TIME2
- x12 TIME2
- x13 TIME2
- x14 TIME2
- x15 TIME2
- x16 TIME2
- x17 TIME2
- x18 TIME2
- x19 TIME2
- x2 TIME2
- x3 TIME2
- x4 TIME2
- x5 TIME2
- x6 TIME2
- x7 TIME2
- x8 TIME2
- x9 TIME2
- ONE_VAR_CONSTANT TIME2
-ENDATA
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_baseline/scenario_files/piecewise.tim.Scenario2 b/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_baseline/scenario_files/piecewise.tim.Scenario2
deleted file mode 100644
index 0cf19ff22c3..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_baseline/scenario_files/piecewise.tim.Scenario2
+++ /dev/null
@@ -1,49 +0,0 @@
-TIME piecewise
-PERIODS EXPLICIT
- TIME1
- TIME2
-ROWS
- x20 TIME1
- c_l_x21_ TIME1
- c_e_x22_ TIME2
- c_e_x23_ TIME2
- c_e_x24_ TIME2
- c_e_x25_ TIME2
- c_l_x26_ TIME2
- c_u_x27_ TIME2
- c_u_x28_ TIME2
- c_u_x29_ TIME2
- c_u_x30_ TIME2
- c_u_x31_ TIME2
- c_u_x32_ TIME2
- c_u_x33_ TIME2
- c_u_x34_ TIME2
- c_u_x35_ TIME2
- c_u_x36_ TIME2
- c_u_x37_ TIME2
- c_u_x38_ TIME2
- r_l_x39_ TIME2
- r_u_x39_ TIME2
- c_e_ONE_VAR_CONSTANT TIME2
-COLS
- x1 TIME1
- x10 TIME2
- x11 TIME2
- x12 TIME2
- x13 TIME2
- x14 TIME2
- x15 TIME2
- x16 TIME2
- x17 TIME2
- x18 TIME2
- x19 TIME2
- x2 TIME2
- x3 TIME2
- x4 TIME2
- x5 TIME2
- x6 TIME2
- x7 TIME2
- x8 TIME2
- x9 TIME2
- ONE_VAR_CONSTANT TIME2
-ENDATA
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_baseline/scenario_files/piecewise.tim.Scenario3 b/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_baseline/scenario_files/piecewise.tim.Scenario3
deleted file mode 100644
index 0cf19ff22c3..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_baseline/scenario_files/piecewise.tim.Scenario3
+++ /dev/null
@@ -1,49 +0,0 @@
-TIME piecewise
-PERIODS EXPLICIT
- TIME1
- TIME2
-ROWS
- x20 TIME1
- c_l_x21_ TIME1
- c_e_x22_ TIME2
- c_e_x23_ TIME2
- c_e_x24_ TIME2
- c_e_x25_ TIME2
- c_l_x26_ TIME2
- c_u_x27_ TIME2
- c_u_x28_ TIME2
- c_u_x29_ TIME2
- c_u_x30_ TIME2
- c_u_x31_ TIME2
- c_u_x32_ TIME2
- c_u_x33_ TIME2
- c_u_x34_ TIME2
- c_u_x35_ TIME2
- c_u_x36_ TIME2
- c_u_x37_ TIME2
- c_u_x38_ TIME2
- r_l_x39_ TIME2
- r_u_x39_ TIME2
- c_e_ONE_VAR_CONSTANT TIME2
-COLS
- x1 TIME1
- x10 TIME2
- x11 TIME2
- x12 TIME2
- x13 TIME2
- x14 TIME2
- x15 TIME2
- x16 TIME2
- x17 TIME2
- x18 TIME2
- x19 TIME2
- x2 TIME2
- x3 TIME2
- x4 TIME2
- x5 TIME2
- x6 TIME2
- x7 TIME2
- x8 TIME2
- x9 TIME2
- ONE_VAR_CONSTANT TIME2
-ENDATA
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_ignore_derived_baseline/piecewise.col b/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_ignore_derived_baseline/piecewise.col
deleted file mode 100644
index 6e745ad57a7..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_ignore_derived_baseline/piecewise.col
+++ /dev/null
@@ -1,20 +0,0 @@
-x1
-x10
-x11
-x12
-x2
-x6
-x7
-x8
-x9
-x13
-x14
-x15
-x16
-x17
-x18
-x19
-x3
-x4
-x5
-ONE_VAR_CONSTANT
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_ignore_derived_baseline/piecewise.cor b/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_ignore_derived_baseline/piecewise.cor
deleted file mode 100644
index e9018248877..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_ignore_derived_baseline/piecewise.cor
+++ /dev/null
@@ -1,148 +0,0 @@
-\* Source Pyomo model name=Scenario1 *\
-
-min
-x20:
-+1 x2
--1 x4
-+1 x5
-+0 ONE_VAR_CONSTANT
-
-s.t.
-
-c_e_x21_:
-+1 x1
--2 x6
--3 x7
--2 x8
--3 x9
-= 0
-
-c_e_x22_:
-+1 x2
-+1 x7
--1 x8
-= 10
-
-c_l_x23_:
-+1 x1
->= 0
-
-c_u_x24_:
--1 x10
-+1 x7
-<= 0
-
-c_u_x25_:
--1 x11
-+1 x8
-<= 0
-
-c_u_x26_:
--1 x12
-+1 x9
-<= 0
-
-c_u_x27_:
-+1 x10
--1 x6
-<= 0
-
-c_u_x28_:
-+1 x11
--1 x7
-<= 0
-
-c_u_x29_:
-+1 x12
--1 x8
-<= 0
-
-c_e_x30_:
--5 x13
--5 x14
--5 x15
--5 x16
-+1 x3
-= -10
-
-c_e_x31_:
-+1 x14
--3 x15
-+1 x16
-+1 x4
-= 0
-
-c_l_x32_:
-+1 x1
-+0 x5
->= -100
-
-c_u_x33_:
-+1 x14
--1 x17
-<= 0
-
-c_u_x34_:
-+1 x15
--1 x18
-<= 0
-
-c_u_x35_:
-+1 x16
--1 x19
-<= 0
-
-c_u_x36_:
--1 x13
-+1 x17
-<= 0
-
-c_u_x37_:
--1 x14
-+1 x18
-<= 0
-
-c_u_x38_:
--1 x15
-+1 x19
-<= 0
-
-r_l_x39_:
-+1 x5
->= 0
-
-r_u_x39_:
-+1 x5
-<= 0
-
-c_e_ONE_VAR_CONSTANT:
-ONE_VAR_CONSTANT = 1.0
-
-bounds
- 0 <= x1 <= 10
- -inf <= x2 <= +inf
- -10 <= x3 <= 10
- -inf <= x4 <= +inf
- -inf <= x5 <= +inf
- -inf <= x6 <= 1
- -inf <= x7 <= +inf
- -inf <= x8 <= +inf
- 0 <= x9 <= +inf
- 0 <= x10 <= 1
- 0 <= x11 <= 1
- 0 <= x12 <= 1
- -inf <= x13 <= 1
- -inf <= x14 <= +inf
- -inf <= x15 <= +inf
- 0 <= x16 <= +inf
- 0 <= x17 <= 1
- 0 <= x18 <= 1
- 0 <= x19 <= 1
-binary
- x10
- x11
- x12
- x17
- x18
- x19
-end
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_ignore_derived_baseline/piecewise.cor.symbols b/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_ignore_derived_baseline/piecewise.cor.symbols
deleted file mode 100644
index e9ae01d4c9f..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_ignore_derived_baseline/piecewise.cor.symbols
+++ /dev/null
@@ -1,9 +0,0 @@
-x2 fx
-x10 p_first_stage.INC_bin_y:#1
-x11 p_first_stage.INC_bin_y:#2
-x12 p_first_stage.INC_bin_y:#3
-x6 p_first_stage.INC_delta:#1
-x7 p_first_stage.INC_delta:#2
-x8 p_first_stage.INC_delta:#3
-x9 p_first_stage.INC_delta:#4
-x1 x
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_ignore_derived_baseline/piecewise.lp.det b/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_ignore_derived_baseline/piecewise.lp.det
deleted file mode 100644
index 2cb7efafcb8..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_ignore_derived_baseline/piecewise.lp.det
+++ /dev/null
@@ -1,148 +0,0 @@
-\* Source Pyomo model name=ZeroStochasticData *\
-
-min
-x20:
--9876543210 x2
--9876543210 x4
--9876543210 x5
-+0 ONE_VAR_CONSTANT
-
-s.t.
-
-c_e_x21_:
-+1 x1
--2 x6
--3 x7
--2 x8
--3 x9
-= 0
-
-c_e_x22_:
-+1 x2
-+1 x7
--1 x8
-= 10
-
-c_l_x23_:
-+1 x1
->= 0
-
-c_u_x24_:
--1 x10
-+1 x7
-<= 0
-
-c_u_x25_:
--1 x11
-+1 x8
-<= 0
-
-c_u_x26_:
--1 x12
-+1 x9
-<= 0
-
-c_u_x27_:
-+1 x10
--1 x6
-<= 0
-
-c_u_x28_:
-+1 x11
--1 x7
-<= 0
-
-c_u_x29_:
-+1 x12
--1 x8
-<= 0
-
-c_e_x30_:
--9876543210 x13
--9876543210 x14
--9876543210 x15
--9876543210 x16
--9876543210 x3
-= -9876543210
-
-c_e_x31_:
--9876543210 x14
--9876543210 x15
--9876543210 x16
--9876543210 x4
-= -9876543210
-
-c_l_x32_:
-+1 x1
--9876543210 x5
->= -100
-
-c_u_x33_:
--9876543210 x14
--9876543210 x17
-<= -9876543210
-
-c_u_x34_:
--9876543210 x15
--9876543210 x18
-<= -9876543210
-
-c_u_x35_:
--9876543210 x16
--9876543210 x19
-<= -9876543210
-
-c_u_x36_:
--9876543210 x13
--9876543210 x17
-<= -9876543210
-
-c_u_x37_:
--9876543210 x14
--9876543210 x18
-<= -9876543210
-
-c_u_x38_:
--9876543210 x15
--9876543210 x19
-<= -9876543210
-
-r_l_x39_:
-+1 x5
->= -9876543210
-
-r_u_x39_:
-+1 x5
-<= -9876543210
-
-c_e_ONE_VAR_CONSTANT:
-ONE_VAR_CONSTANT = 1.0
-
-bounds
- 0 <= x1 <= 10
- -inf <= x2 <= +inf
- -10 <= x3 <= 10
- -inf <= x4 <= +inf
- -inf <= x5 <= +inf
- -inf <= x6 <= 1
- -inf <= x7 <= +inf
- -inf <= x8 <= +inf
- 0 <= x9 <= +inf
- 0 <= x10 <= 1
- 0 <= x11 <= 1
- 0 <= x12 <= 1
- -inf <= x13 <= 1
- -inf <= x14 <= +inf
- -inf <= x15 <= +inf
- 0 <= x16 <= +inf
- 0 <= x17 <= 1
- 0 <= x18 <= 1
- 0 <= x19 <= 1
-binary
- x10
- x11
- x12
- x17
- x18
- x19
-end
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_ignore_derived_baseline/piecewise.row b/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_ignore_derived_baseline/piecewise.row
deleted file mode 100644
index 5140335c5b4..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_ignore_derived_baseline/piecewise.row
+++ /dev/null
@@ -1,22 +0,0 @@
-x20
-c_e_x21_
-c_e_x22_
-c_l_x23_
-c_u_x24_
-c_u_x25_
-c_u_x26_
-c_u_x27_
-c_u_x28_
-c_u_x29_
-c_e_x30_
-c_e_x31_
-c_l_x32_
-c_u_x33_
-c_u_x34_
-c_u_x35_
-c_u_x36_
-c_u_x37_
-c_u_x38_
-r_l_x39_
-r_u_x39_
-c_e_ONE_VAR_CONSTANT
\ No newline at end of file
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_ignore_derived_baseline/piecewise.sto b/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_ignore_derived_baseline/piecewise.sto
deleted file mode 100644
index e090297e91e..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_ignore_derived_baseline/piecewise.sto
+++ /dev/null
@@ -1,114 +0,0 @@
-STOCH piecewise
-BLOCKS DISCRETE REPLACE
- BL BLOCK1 PERIOD2 0.33333333329999998
- RHS c_e_x30_ -10
- RHS c_e_x31_ 0
- RHS c_u_x33_ 0
- RHS c_u_x34_ 0
- RHS c_u_x35_ 0
- RHS c_u_x36_ 0
- RHS c_u_x37_ 0
- RHS c_u_x38_ 0
- RHS r_l_x39_ 0
- RHS r_u_x39_ 0
- x5 c_l_x32_ 0
- x13 c_e_x30_ -5
- x14 c_e_x30_ -5
- x15 c_e_x30_ -5
- x16 c_e_x30_ -5
- x3 c_e_x30_ 1
- x14 c_e_x31_ 1
- x15 c_e_x31_ -3
- x16 c_e_x31_ 1
- x4 c_e_x31_ 1
- x14 c_u_x33_ 1
- x17 c_u_x33_ -1
- x15 c_u_x34_ 1
- x18 c_u_x34_ -1
- x16 c_u_x35_ 1
- x19 c_u_x35_ -1
- x13 c_u_x36_ -1
- x17 c_u_x36_ 1
- x14 c_u_x37_ -1
- x18 c_u_x37_ 1
- x15 c_u_x38_ -1
- x19 c_u_x38_ 1
- x2 x20 1
- x4 x20 -1
- x5 x20 1
- ONE_VAR_CONSTANT x20 0
- BL BLOCK1 PERIOD2 0.33333333329999998
- RHS c_e_x30_ -10
- RHS c_e_x31_ 0
- RHS c_u_x33_ 0
- RHS c_u_x34_ 0
- RHS c_u_x35_ 0
- RHS c_u_x36_ 0
- RHS c_u_x37_ 0
- RHS c_u_x38_ 0
- RHS r_l_x39_ -1
- RHS r_u_x39_ 0
- x5 c_l_x32_ 1
- x13 c_e_x30_ -5
- x14 c_e_x30_ -5
- x15 c_e_x30_ -5
- x16 c_e_x30_ -5
- x3 c_e_x30_ 1
- x14 c_e_x31_ 1
- x15 c_e_x31_ -4
- x16 c_e_x31_ 2
- x4 c_e_x31_ 1
- x14 c_u_x33_ 1
- x17 c_u_x33_ -1
- x15 c_u_x34_ 1
- x18 c_u_x34_ -1
- x16 c_u_x35_ 1
- x19 c_u_x35_ -1
- x13 c_u_x36_ -1
- x17 c_u_x36_ 1
- x14 c_u_x37_ -1
- x18 c_u_x37_ 1
- x15 c_u_x38_ -1
- x19 c_u_x38_ 1
- x2 x20 1
- x4 x20 -1
- x5 x20 1
- ONE_VAR_CONSTANT x20 -1
- BL BLOCK1 PERIOD2 0.33333333329999998
- RHS c_e_x30_ -10
- RHS c_e_x31_ 0
- RHS c_u_x33_ 0
- RHS c_u_x34_ 0
- RHS c_u_x35_ 0
- RHS c_u_x36_ 0
- RHS c_u_x37_ 0
- RHS c_u_x38_ 0
- RHS r_l_x39_ -2
- RHS r_u_x39_ 0
- x5 c_l_x32_ 2
- x13 c_e_x30_ -5
- x14 c_e_x30_ -5
- x15 c_e_x30_ -5
- x16 c_e_x30_ -5
- x3 c_e_x30_ 1
- x14 c_e_x31_ 1
- x15 c_e_x31_ -5
- x16 c_e_x31_ 3
- x4 c_e_x31_ 1
- x14 c_u_x33_ 1
- x17 c_u_x33_ -1
- x15 c_u_x34_ 1
- x18 c_u_x34_ -1
- x16 c_u_x35_ 1
- x19 c_u_x35_ -1
- x13 c_u_x36_ -1
- x17 c_u_x36_ 1
- x14 c_u_x37_ -1
- x18 c_u_x37_ 1
- x15 c_u_x38_ -1
- x19 c_u_x38_ 1
- x2 x20 1
- x4 x20 -1
- x5 x20 1
- ONE_VAR_CONSTANT x20 -2
-ENDATA
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_ignore_derived_baseline/piecewise.sto.struct b/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_ignore_derived_baseline/piecewise.sto.struct
deleted file mode 100644
index 868098c0d16..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_ignore_derived_baseline/piecewise.sto.struct
+++ /dev/null
@@ -1,36 +0,0 @@
-RHS c_e_x30_
-RHS c_e_x31_
-RHS c_u_x33_
-RHS c_u_x34_
-RHS c_u_x35_
-RHS c_u_x36_
-RHS c_u_x37_
-RHS c_u_x38_
-RHS r_l_x39_
-RHS r_u_x39_
-x5 c_l_x32_
-x13 c_e_x30_
-x14 c_e_x30_
-x15 c_e_x30_
-x16 c_e_x30_
-x3 c_e_x30_
-x14 c_e_x31_
-x15 c_e_x31_
-x16 c_e_x31_
-x4 c_e_x31_
-x14 c_u_x33_
-x17 c_u_x33_
-x15 c_u_x34_
-x18 c_u_x34_
-x16 c_u_x35_
-x19 c_u_x35_
-x13 c_u_x36_
-x17 c_u_x36_
-x14 c_u_x37_
-x18 c_u_x37_
-x15 c_u_x38_
-x19 c_u_x38_
-x2 x20
-x4 x20
-x5 x20
-ONE_VAR_CONSTANT x20
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_ignore_derived_baseline/piecewise.tim b/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_ignore_derived_baseline/piecewise.tim
deleted file mode 100644
index ab42bc43726..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_ignore_derived_baseline/piecewise.tim
+++ /dev/null
@@ -1,49 +0,0 @@
-TIME piecewise
-PERIODS EXPLICIT
- TIME1
- TIME2
-ROWS
- x20 TIME1
- c_e_x21_ TIME1
- c_e_x22_ TIME1
- c_l_x23_ TIME1
- c_u_x24_ TIME1
- c_u_x25_ TIME1
- c_u_x26_ TIME1
- c_u_x27_ TIME1
- c_u_x28_ TIME1
- c_u_x29_ TIME1
- c_e_x30_ TIME2
- c_e_x31_ TIME2
- c_l_x32_ TIME2
- c_u_x33_ TIME2
- c_u_x34_ TIME2
- c_u_x35_ TIME2
- c_u_x36_ TIME2
- c_u_x37_ TIME2
- c_u_x38_ TIME2
- r_l_x39_ TIME2
- r_u_x39_ TIME2
- c_e_ONE_VAR_CONSTANT TIME2
-COLS
- x1 TIME1
- x10 TIME1
- x11 TIME1
- x12 TIME1
- x2 TIME1
- x6 TIME1
- x7 TIME1
- x8 TIME1
- x9 TIME1
- x13 TIME2
- x14 TIME2
- x15 TIME2
- x16 TIME2
- x17 TIME2
- x18 TIME2
- x19 TIME2
- x3 TIME2
- x4 TIME2
- x5 TIME2
- ONE_VAR_CONSTANT TIME2
-ENDATA
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_ignore_derived_baseline/scenario_files/piecewise.col.Scenario1 b/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_ignore_derived_baseline/scenario_files/piecewise.col.Scenario1
deleted file mode 100644
index 6e745ad57a7..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_ignore_derived_baseline/scenario_files/piecewise.col.Scenario1
+++ /dev/null
@@ -1,20 +0,0 @@
-x1
-x10
-x11
-x12
-x2
-x6
-x7
-x8
-x9
-x13
-x14
-x15
-x16
-x17
-x18
-x19
-x3
-x4
-x5
-ONE_VAR_CONSTANT
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_ignore_derived_baseline/scenario_files/piecewise.col.Scenario2 b/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_ignore_derived_baseline/scenario_files/piecewise.col.Scenario2
deleted file mode 100644
index 6e745ad57a7..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_ignore_derived_baseline/scenario_files/piecewise.col.Scenario2
+++ /dev/null
@@ -1,20 +0,0 @@
-x1
-x10
-x11
-x12
-x2
-x6
-x7
-x8
-x9
-x13
-x14
-x15
-x16
-x17
-x18
-x19
-x3
-x4
-x5
-ONE_VAR_CONSTANT
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_ignore_derived_baseline/scenario_files/piecewise.col.Scenario3 b/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_ignore_derived_baseline/scenario_files/piecewise.col.Scenario3
deleted file mode 100644
index 6e745ad57a7..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_ignore_derived_baseline/scenario_files/piecewise.col.Scenario3
+++ /dev/null
@@ -1,20 +0,0 @@
-x1
-x10
-x11
-x12
-x2
-x6
-x7
-x8
-x9
-x13
-x14
-x15
-x16
-x17
-x18
-x19
-x3
-x4
-x5
-ONE_VAR_CONSTANT
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_ignore_derived_baseline/scenario_files/piecewise.lp.Scenario1 b/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_ignore_derived_baseline/scenario_files/piecewise.lp.Scenario1
deleted file mode 100644
index e9018248877..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_ignore_derived_baseline/scenario_files/piecewise.lp.Scenario1
+++ /dev/null
@@ -1,148 +0,0 @@
-\* Source Pyomo model name=Scenario1 *\
-
-min
-x20:
-+1 x2
--1 x4
-+1 x5
-+0 ONE_VAR_CONSTANT
-
-s.t.
-
-c_e_x21_:
-+1 x1
--2 x6
--3 x7
--2 x8
--3 x9
-= 0
-
-c_e_x22_:
-+1 x2
-+1 x7
--1 x8
-= 10
-
-c_l_x23_:
-+1 x1
->= 0
-
-c_u_x24_:
--1 x10
-+1 x7
-<= 0
-
-c_u_x25_:
--1 x11
-+1 x8
-<= 0
-
-c_u_x26_:
--1 x12
-+1 x9
-<= 0
-
-c_u_x27_:
-+1 x10
--1 x6
-<= 0
-
-c_u_x28_:
-+1 x11
--1 x7
-<= 0
-
-c_u_x29_:
-+1 x12
--1 x8
-<= 0
-
-c_e_x30_:
--5 x13
--5 x14
--5 x15
--5 x16
-+1 x3
-= -10
-
-c_e_x31_:
-+1 x14
--3 x15
-+1 x16
-+1 x4
-= 0
-
-c_l_x32_:
-+1 x1
-+0 x5
->= -100
-
-c_u_x33_:
-+1 x14
--1 x17
-<= 0
-
-c_u_x34_:
-+1 x15
--1 x18
-<= 0
-
-c_u_x35_:
-+1 x16
--1 x19
-<= 0
-
-c_u_x36_:
--1 x13
-+1 x17
-<= 0
-
-c_u_x37_:
--1 x14
-+1 x18
-<= 0
-
-c_u_x38_:
--1 x15
-+1 x19
-<= 0
-
-r_l_x39_:
-+1 x5
->= 0
-
-r_u_x39_:
-+1 x5
-<= 0
-
-c_e_ONE_VAR_CONSTANT:
-ONE_VAR_CONSTANT = 1.0
-
-bounds
- 0 <= x1 <= 10
- -inf <= x2 <= +inf
- -10 <= x3 <= 10
- -inf <= x4 <= +inf
- -inf <= x5 <= +inf
- -inf <= x6 <= 1
- -inf <= x7 <= +inf
- -inf <= x8 <= +inf
- 0 <= x9 <= +inf
- 0 <= x10 <= 1
- 0 <= x11 <= 1
- 0 <= x12 <= 1
- -inf <= x13 <= 1
- -inf <= x14 <= +inf
- -inf <= x15 <= +inf
- 0 <= x16 <= +inf
- 0 <= x17 <= 1
- 0 <= x18 <= 1
- 0 <= x19 <= 1
-binary
- x10
- x11
- x12
- x17
- x18
- x19
-end
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_ignore_derived_baseline/scenario_files/piecewise.lp.Scenario2 b/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_ignore_derived_baseline/scenario_files/piecewise.lp.Scenario2
deleted file mode 100644
index 283fca6cd25..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_ignore_derived_baseline/scenario_files/piecewise.lp.Scenario2
+++ /dev/null
@@ -1,148 +0,0 @@
-\* Source Pyomo model name=Scenario2 *\
-
-min
-x20:
-+1 x2
--1 x4
-+1 x5
--1 ONE_VAR_CONSTANT
-
-s.t.
-
-c_e_x21_:
-+1 x1
--2 x6
--3 x7
--2 x8
--3 x9
-= 0
-
-c_e_x22_:
-+1 x2
-+1 x7
--1 x8
-= 10
-
-c_l_x23_:
-+1 x1
->= 0
-
-c_u_x24_:
--1 x10
-+1 x7
-<= 0
-
-c_u_x25_:
--1 x11
-+1 x8
-<= 0
-
-c_u_x26_:
--1 x12
-+1 x9
-<= 0
-
-c_u_x27_:
-+1 x10
--1 x6
-<= 0
-
-c_u_x28_:
-+1 x11
--1 x7
-<= 0
-
-c_u_x29_:
-+1 x12
--1 x8
-<= 0
-
-c_e_x30_:
--5 x13
--5 x14
--5 x15
--5 x16
-+1 x3
-= -10
-
-c_e_x31_:
-+1 x14
--4 x15
-+2 x16
-+1 x4
-= 0
-
-c_l_x32_:
-+1 x1
-+1 x5
->= -100
-
-c_u_x33_:
-+1 x14
--1 x17
-<= 0
-
-c_u_x34_:
-+1 x15
--1 x18
-<= 0
-
-c_u_x35_:
-+1 x16
--1 x19
-<= 0
-
-c_u_x36_:
--1 x13
-+1 x17
-<= 0
-
-c_u_x37_:
--1 x14
-+1 x18
-<= 0
-
-c_u_x38_:
--1 x15
-+1 x19
-<= 0
-
-r_l_x39_:
-+1 x5
->= -1
-
-r_u_x39_:
-+1 x5
-<= 0
-
-c_e_ONE_VAR_CONSTANT:
-ONE_VAR_CONSTANT = 1.0
-
-bounds
- 0 <= x1 <= 10
- -inf <= x2 <= +inf
- -10 <= x3 <= 10
- -inf <= x4 <= +inf
- -inf <= x5 <= +inf
- -inf <= x6 <= 1
- -inf <= x7 <= +inf
- -inf <= x8 <= +inf
- 0 <= x9 <= +inf
- 0 <= x10 <= 1
- 0 <= x11 <= 1
- 0 <= x12 <= 1
- -inf <= x13 <= 1
- -inf <= x14 <= +inf
- -inf <= x15 <= +inf
- 0 <= x16 <= +inf
- 0 <= x17 <= 1
- 0 <= x18 <= 1
- 0 <= x19 <= 1
-binary
- x10
- x11
- x12
- x17
- x18
- x19
-end
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_ignore_derived_baseline/scenario_files/piecewise.lp.Scenario3 b/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_ignore_derived_baseline/scenario_files/piecewise.lp.Scenario3
deleted file mode 100644
index c6d15a3b850..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_ignore_derived_baseline/scenario_files/piecewise.lp.Scenario3
+++ /dev/null
@@ -1,148 +0,0 @@
-\* Source Pyomo model name=Scenario3 *\
-
-min
-x20:
-+1 x2
--1 x4
-+1 x5
--2 ONE_VAR_CONSTANT
-
-s.t.
-
-c_e_x21_:
-+1 x1
--2 x6
--3 x7
--2 x8
--3 x9
-= 0
-
-c_e_x22_:
-+1 x2
-+1 x7
--1 x8
-= 10
-
-c_l_x23_:
-+1 x1
->= 0
-
-c_u_x24_:
--1 x10
-+1 x7
-<= 0
-
-c_u_x25_:
--1 x11
-+1 x8
-<= 0
-
-c_u_x26_:
--1 x12
-+1 x9
-<= 0
-
-c_u_x27_:
-+1 x10
--1 x6
-<= 0
-
-c_u_x28_:
-+1 x11
--1 x7
-<= 0
-
-c_u_x29_:
-+1 x12
--1 x8
-<= 0
-
-c_e_x30_:
--5 x13
--5 x14
--5 x15
--5 x16
-+1 x3
-= -10
-
-c_e_x31_:
-+1 x14
--5 x15
-+3 x16
-+1 x4
-= 0
-
-c_l_x32_:
-+1 x1
-+2 x5
->= -100
-
-c_u_x33_:
-+1 x14
--1 x17
-<= 0
-
-c_u_x34_:
-+1 x15
--1 x18
-<= 0
-
-c_u_x35_:
-+1 x16
--1 x19
-<= 0
-
-c_u_x36_:
--1 x13
-+1 x17
-<= 0
-
-c_u_x37_:
--1 x14
-+1 x18
-<= 0
-
-c_u_x38_:
--1 x15
-+1 x19
-<= 0
-
-r_l_x39_:
-+1 x5
->= -2
-
-r_u_x39_:
-+1 x5
-<= 0
-
-c_e_ONE_VAR_CONSTANT:
-ONE_VAR_CONSTANT = 1.0
-
-bounds
- 0 <= x1 <= 10
- -inf <= x2 <= +inf
- -10 <= x3 <= 10
- -inf <= x4 <= +inf
- -inf <= x5 <= +inf
- -inf <= x6 <= 1
- -inf <= x7 <= +inf
- -inf <= x8 <= +inf
- 0 <= x9 <= +inf
- 0 <= x10 <= 1
- 0 <= x11 <= 1
- 0 <= x12 <= 1
- -inf <= x13 <= 1
- -inf <= x14 <= +inf
- -inf <= x15 <= +inf
- 0 <= x16 <= +inf
- 0 <= x17 <= 1
- 0 <= x18 <= 1
- 0 <= x19 <= 1
-binary
- x10
- x11
- x12
- x17
- x18
- x19
-end
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_ignore_derived_baseline/scenario_files/piecewise.lp.det.Scenario1 b/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_ignore_derived_baseline/scenario_files/piecewise.lp.det.Scenario1
deleted file mode 100644
index 2cb7efafcb8..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_ignore_derived_baseline/scenario_files/piecewise.lp.det.Scenario1
+++ /dev/null
@@ -1,148 +0,0 @@
-\* Source Pyomo model name=ZeroStochasticData *\
-
-min
-x20:
--9876543210 x2
--9876543210 x4
--9876543210 x5
-+0 ONE_VAR_CONSTANT
-
-s.t.
-
-c_e_x21_:
-+1 x1
--2 x6
--3 x7
--2 x8
--3 x9
-= 0
-
-c_e_x22_:
-+1 x2
-+1 x7
--1 x8
-= 10
-
-c_l_x23_:
-+1 x1
->= 0
-
-c_u_x24_:
--1 x10
-+1 x7
-<= 0
-
-c_u_x25_:
--1 x11
-+1 x8
-<= 0
-
-c_u_x26_:
--1 x12
-+1 x9
-<= 0
-
-c_u_x27_:
-+1 x10
--1 x6
-<= 0
-
-c_u_x28_:
-+1 x11
--1 x7
-<= 0
-
-c_u_x29_:
-+1 x12
--1 x8
-<= 0
-
-c_e_x30_:
--9876543210 x13
--9876543210 x14
--9876543210 x15
--9876543210 x16
--9876543210 x3
-= -9876543210
-
-c_e_x31_:
--9876543210 x14
--9876543210 x15
--9876543210 x16
--9876543210 x4
-= -9876543210
-
-c_l_x32_:
-+1 x1
--9876543210 x5
->= -100
-
-c_u_x33_:
--9876543210 x14
--9876543210 x17
-<= -9876543210
-
-c_u_x34_:
--9876543210 x15
--9876543210 x18
-<= -9876543210
-
-c_u_x35_:
--9876543210 x16
--9876543210 x19
-<= -9876543210
-
-c_u_x36_:
--9876543210 x13
--9876543210 x17
-<= -9876543210
-
-c_u_x37_:
--9876543210 x14
--9876543210 x18
-<= -9876543210
-
-c_u_x38_:
--9876543210 x15
--9876543210 x19
-<= -9876543210
-
-r_l_x39_:
-+1 x5
->= -9876543210
-
-r_u_x39_:
-+1 x5
-<= -9876543210
-
-c_e_ONE_VAR_CONSTANT:
-ONE_VAR_CONSTANT = 1.0
-
-bounds
- 0 <= x1 <= 10
- -inf <= x2 <= +inf
- -10 <= x3 <= 10
- -inf <= x4 <= +inf
- -inf <= x5 <= +inf
- -inf <= x6 <= 1
- -inf <= x7 <= +inf
- -inf <= x8 <= +inf
- 0 <= x9 <= +inf
- 0 <= x10 <= 1
- 0 <= x11 <= 1
- 0 <= x12 <= 1
- -inf <= x13 <= 1
- -inf <= x14 <= +inf
- -inf <= x15 <= +inf
- 0 <= x16 <= +inf
- 0 <= x17 <= 1
- 0 <= x18 <= 1
- 0 <= x19 <= 1
-binary
- x10
- x11
- x12
- x17
- x18
- x19
-end
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_ignore_derived_baseline/scenario_files/piecewise.lp.det.Scenario2 b/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_ignore_derived_baseline/scenario_files/piecewise.lp.det.Scenario2
deleted file mode 100644
index 2cb7efafcb8..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_ignore_derived_baseline/scenario_files/piecewise.lp.det.Scenario2
+++ /dev/null
@@ -1,148 +0,0 @@
-\* Source Pyomo model name=ZeroStochasticData *\
-
-min
-x20:
--9876543210 x2
--9876543210 x4
--9876543210 x5
-+0 ONE_VAR_CONSTANT
-
-s.t.
-
-c_e_x21_:
-+1 x1
--2 x6
--3 x7
--2 x8
--3 x9
-= 0
-
-c_e_x22_:
-+1 x2
-+1 x7
--1 x8
-= 10
-
-c_l_x23_:
-+1 x1
->= 0
-
-c_u_x24_:
--1 x10
-+1 x7
-<= 0
-
-c_u_x25_:
--1 x11
-+1 x8
-<= 0
-
-c_u_x26_:
--1 x12
-+1 x9
-<= 0
-
-c_u_x27_:
-+1 x10
--1 x6
-<= 0
-
-c_u_x28_:
-+1 x11
--1 x7
-<= 0
-
-c_u_x29_:
-+1 x12
--1 x8
-<= 0
-
-c_e_x30_:
--9876543210 x13
--9876543210 x14
--9876543210 x15
--9876543210 x16
--9876543210 x3
-= -9876543210
-
-c_e_x31_:
--9876543210 x14
--9876543210 x15
--9876543210 x16
--9876543210 x4
-= -9876543210
-
-c_l_x32_:
-+1 x1
--9876543210 x5
->= -100
-
-c_u_x33_:
--9876543210 x14
--9876543210 x17
-<= -9876543210
-
-c_u_x34_:
--9876543210 x15
--9876543210 x18
-<= -9876543210
-
-c_u_x35_:
--9876543210 x16
--9876543210 x19
-<= -9876543210
-
-c_u_x36_:
--9876543210 x13
--9876543210 x17
-<= -9876543210
-
-c_u_x37_:
--9876543210 x14
--9876543210 x18
-<= -9876543210
-
-c_u_x38_:
--9876543210 x15
--9876543210 x19
-<= -9876543210
-
-r_l_x39_:
-+1 x5
->= -9876543210
-
-r_u_x39_:
-+1 x5
-<= -9876543210
-
-c_e_ONE_VAR_CONSTANT:
-ONE_VAR_CONSTANT = 1.0
-
-bounds
- 0 <= x1 <= 10
- -inf <= x2 <= +inf
- -10 <= x3 <= 10
- -inf <= x4 <= +inf
- -inf <= x5 <= +inf
- -inf <= x6 <= 1
- -inf <= x7 <= +inf
- -inf <= x8 <= +inf
- 0 <= x9 <= +inf
- 0 <= x10 <= 1
- 0 <= x11 <= 1
- 0 <= x12 <= 1
- -inf <= x13 <= 1
- -inf <= x14 <= +inf
- -inf <= x15 <= +inf
- 0 <= x16 <= +inf
- 0 <= x17 <= 1
- 0 <= x18 <= 1
- 0 <= x19 <= 1
-binary
- x10
- x11
- x12
- x17
- x18
- x19
-end
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_ignore_derived_baseline/scenario_files/piecewise.lp.det.Scenario3 b/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_ignore_derived_baseline/scenario_files/piecewise.lp.det.Scenario3
deleted file mode 100644
index 2cb7efafcb8..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_ignore_derived_baseline/scenario_files/piecewise.lp.det.Scenario3
+++ /dev/null
@@ -1,148 +0,0 @@
-\* Source Pyomo model name=ZeroStochasticData *\
-
-min
-x20:
--9876543210 x2
--9876543210 x4
--9876543210 x5
-+0 ONE_VAR_CONSTANT
-
-s.t.
-
-c_e_x21_:
-+1 x1
--2 x6
--3 x7
--2 x8
--3 x9
-= 0
-
-c_e_x22_:
-+1 x2
-+1 x7
--1 x8
-= 10
-
-c_l_x23_:
-+1 x1
->= 0
-
-c_u_x24_:
--1 x10
-+1 x7
-<= 0
-
-c_u_x25_:
--1 x11
-+1 x8
-<= 0
-
-c_u_x26_:
--1 x12
-+1 x9
-<= 0
-
-c_u_x27_:
-+1 x10
--1 x6
-<= 0
-
-c_u_x28_:
-+1 x11
--1 x7
-<= 0
-
-c_u_x29_:
-+1 x12
--1 x8
-<= 0
-
-c_e_x30_:
--9876543210 x13
--9876543210 x14
--9876543210 x15
--9876543210 x16
--9876543210 x3
-= -9876543210
-
-c_e_x31_:
--9876543210 x14
--9876543210 x15
--9876543210 x16
--9876543210 x4
-= -9876543210
-
-c_l_x32_:
-+1 x1
--9876543210 x5
->= -100
-
-c_u_x33_:
--9876543210 x14
--9876543210 x17
-<= -9876543210
-
-c_u_x34_:
--9876543210 x15
--9876543210 x18
-<= -9876543210
-
-c_u_x35_:
--9876543210 x16
--9876543210 x19
-<= -9876543210
-
-c_u_x36_:
--9876543210 x13
--9876543210 x17
-<= -9876543210
-
-c_u_x37_:
--9876543210 x14
--9876543210 x18
-<= -9876543210
-
-c_u_x38_:
--9876543210 x15
--9876543210 x19
-<= -9876543210
-
-r_l_x39_:
-+1 x5
->= -9876543210
-
-r_u_x39_:
-+1 x5
-<= -9876543210
-
-c_e_ONE_VAR_CONSTANT:
-ONE_VAR_CONSTANT = 1.0
-
-bounds
- 0 <= x1 <= 10
- -inf <= x2 <= +inf
- -10 <= x3 <= 10
- -inf <= x4 <= +inf
- -inf <= x5 <= +inf
- -inf <= x6 <= 1
- -inf <= x7 <= +inf
- -inf <= x8 <= +inf
- 0 <= x9 <= +inf
- 0 <= x10 <= 1
- 0 <= x11 <= 1
- 0 <= x12 <= 1
- -inf <= x13 <= 1
- -inf <= x14 <= +inf
- -inf <= x15 <= +inf
- 0 <= x16 <= +inf
- 0 <= x17 <= 1
- 0 <= x18 <= 1
- 0 <= x19 <= 1
-binary
- x10
- x11
- x12
- x17
- x18
- x19
-end
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_ignore_derived_baseline/scenario_files/piecewise.lp.symbols.Scenario1 b/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_ignore_derived_baseline/scenario_files/piecewise.lp.symbols.Scenario1
deleted file mode 100644
index e9ae01d4c9f..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_ignore_derived_baseline/scenario_files/piecewise.lp.symbols.Scenario1
+++ /dev/null
@@ -1,9 +0,0 @@
-x2 fx
-x10 p_first_stage.INC_bin_y:#1
-x11 p_first_stage.INC_bin_y:#2
-x12 p_first_stage.INC_bin_y:#3
-x6 p_first_stage.INC_delta:#1
-x7 p_first_stage.INC_delta:#2
-x8 p_first_stage.INC_delta:#3
-x9 p_first_stage.INC_delta:#4
-x1 x
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_ignore_derived_baseline/scenario_files/piecewise.lp.symbols.Scenario2 b/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_ignore_derived_baseline/scenario_files/piecewise.lp.symbols.Scenario2
deleted file mode 100644
index e9ae01d4c9f..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_ignore_derived_baseline/scenario_files/piecewise.lp.symbols.Scenario2
+++ /dev/null
@@ -1,9 +0,0 @@
-x2 fx
-x10 p_first_stage.INC_bin_y:#1
-x11 p_first_stage.INC_bin_y:#2
-x12 p_first_stage.INC_bin_y:#3
-x6 p_first_stage.INC_delta:#1
-x7 p_first_stage.INC_delta:#2
-x8 p_first_stage.INC_delta:#3
-x9 p_first_stage.INC_delta:#4
-x1 x
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_ignore_derived_baseline/scenario_files/piecewise.lp.symbols.Scenario3 b/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_ignore_derived_baseline/scenario_files/piecewise.lp.symbols.Scenario3
deleted file mode 100644
index e9ae01d4c9f..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_ignore_derived_baseline/scenario_files/piecewise.lp.symbols.Scenario3
+++ /dev/null
@@ -1,9 +0,0 @@
-x2 fx
-x10 p_first_stage.INC_bin_y:#1
-x11 p_first_stage.INC_bin_y:#2
-x12 p_first_stage.INC_bin_y:#3
-x6 p_first_stage.INC_delta:#1
-x7 p_first_stage.INC_delta:#2
-x8 p_first_stage.INC_delta:#3
-x9 p_first_stage.INC_delta:#4
-x1 x
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_ignore_derived_baseline/scenario_files/piecewise.row.Scenario1 b/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_ignore_derived_baseline/scenario_files/piecewise.row.Scenario1
deleted file mode 100644
index 5140335c5b4..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_ignore_derived_baseline/scenario_files/piecewise.row.Scenario1
+++ /dev/null
@@ -1,22 +0,0 @@
-x20
-c_e_x21_
-c_e_x22_
-c_l_x23_
-c_u_x24_
-c_u_x25_
-c_u_x26_
-c_u_x27_
-c_u_x28_
-c_u_x29_
-c_e_x30_
-c_e_x31_
-c_l_x32_
-c_u_x33_
-c_u_x34_
-c_u_x35_
-c_u_x36_
-c_u_x37_
-c_u_x38_
-r_l_x39_
-r_u_x39_
-c_e_ONE_VAR_CONSTANT
\ No newline at end of file
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_ignore_derived_baseline/scenario_files/piecewise.row.Scenario2 b/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_ignore_derived_baseline/scenario_files/piecewise.row.Scenario2
deleted file mode 100644
index 5140335c5b4..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_ignore_derived_baseline/scenario_files/piecewise.row.Scenario2
+++ /dev/null
@@ -1,22 +0,0 @@
-x20
-c_e_x21_
-c_e_x22_
-c_l_x23_
-c_u_x24_
-c_u_x25_
-c_u_x26_
-c_u_x27_
-c_u_x28_
-c_u_x29_
-c_e_x30_
-c_e_x31_
-c_l_x32_
-c_u_x33_
-c_u_x34_
-c_u_x35_
-c_u_x36_
-c_u_x37_
-c_u_x38_
-r_l_x39_
-r_u_x39_
-c_e_ONE_VAR_CONSTANT
\ No newline at end of file
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_ignore_derived_baseline/scenario_files/piecewise.row.Scenario3 b/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_ignore_derived_baseline/scenario_files/piecewise.row.Scenario3
deleted file mode 100644
index 5140335c5b4..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_ignore_derived_baseline/scenario_files/piecewise.row.Scenario3
+++ /dev/null
@@ -1,22 +0,0 @@
-x20
-c_e_x21_
-c_e_x22_
-c_l_x23_
-c_u_x24_
-c_u_x25_
-c_u_x26_
-c_u_x27_
-c_u_x28_
-c_u_x29_
-c_e_x30_
-c_e_x31_
-c_l_x32_
-c_u_x33_
-c_u_x34_
-c_u_x35_
-c_u_x36_
-c_u_x37_
-c_u_x38_
-r_l_x39_
-r_u_x39_
-c_e_ONE_VAR_CONSTANT
\ No newline at end of file
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_ignore_derived_baseline/scenario_files/piecewise.setup.lp.Scenario1 b/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_ignore_derived_baseline/scenario_files/piecewise.setup.lp.Scenario1
deleted file mode 100644
index 65cb7bf3a3c..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_ignore_derived_baseline/scenario_files/piecewise.setup.lp.Scenario1
+++ /dev/null
@@ -1,147 +0,0 @@
-\* Source Pyomo model name=Scenario1 *\
-
-min
-x20:
-+1 x2
--1 x4
-+1 x5
-
-s.t.
-
-c_l_x21_:
-+1 x1
->= 0
-
-c_l_x22_:
-+1 x1
-+0 x5
->= -100
-
-r_l_x23_:
-+1 x5
->= 0
-
-r_u_x23_:
-+1 x5
-<= 0
-
-c_e_x24_:
-+1 x1
--2 x6
--3 x7
--2 x8
--3 x9
-= 0
-
-c_e_x25_:
-+1 x2
-+1 x7
--1 x8
-= 10
-
-c_u_x26_:
--1 x10
-+1 x7
-<= 0
-
-c_u_x27_:
--1 x11
-+1 x8
-<= 0
-
-c_u_x28_:
--1 x12
-+1 x9
-<= 0
-
-c_u_x29_:
-+1 x10
--1 x6
-<= 0
-
-c_u_x30_:
-+1 x11
--1 x7
-<= 0
-
-c_u_x31_:
-+1 x12
--1 x8
-<= 0
-
-c_e_x32_:
--5 x13
--5 x14
--5 x15
--5 x16
-+1 x3
-= -10
-
-c_e_x33_:
-+1 x14
--3 x15
-+1 x16
-+1 x4
-= 0
-
-c_u_x34_:
-+1 x14
--1 x17
-<= 0
-
-c_u_x35_:
-+1 x15
--1 x18
-<= 0
-
-c_u_x36_:
-+1 x16
--1 x19
-<= 0
-
-c_u_x37_:
--1 x13
-+1 x17
-<= 0
-
-c_u_x38_:
--1 x14
-+1 x18
-<= 0
-
-c_u_x39_:
--1 x15
-+1 x19
-<= 0
-
-c_e_ONE_VAR_CONSTANT:
-ONE_VAR_CONSTANT = 1.0
-
-bounds
- 0 <= x1 <= 10
- -inf <= x2 <= +inf
- -10 <= x3 <= 10
- -inf <= x4 <= +inf
- -inf <= x5 <= +inf
- -inf <= x6 <= 1
- -inf <= x7 <= +inf
- -inf <= x8 <= +inf
- 0 <= x9 <= +inf
- 0 <= x10 <= 1
- 0 <= x11 <= 1
- 0 <= x12 <= 1
- -inf <= x13 <= 1
- -inf <= x14 <= +inf
- -inf <= x15 <= +inf
- 0 <= x16 <= +inf
- 0 <= x17 <= 1
- 0 <= x18 <= 1
- 0 <= x19 <= 1
-binary
- x10
- x11
- x12
- x17
- x18
- x19
-end
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_ignore_derived_baseline/scenario_files/piecewise.setup.lp.Scenario2 b/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_ignore_derived_baseline/scenario_files/piecewise.setup.lp.Scenario2
deleted file mode 100644
index 3b530f3c356..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_ignore_derived_baseline/scenario_files/piecewise.setup.lp.Scenario2
+++ /dev/null
@@ -1,148 +0,0 @@
-\* Source Pyomo model name=Scenario2 *\
-
-min
-x20:
-+1 x2
--1 x4
-+1 x5
--1 ONE_VAR_CONSTANT
-
-s.t.
-
-c_l_x21_:
-+1 x1
->= 0
-
-c_l_x22_:
-+1 x1
-+1 x5
->= -100
-
-r_l_x23_:
-+1 x5
->= -1
-
-r_u_x23_:
-+1 x5
-<= 0
-
-c_e_x24_:
-+1 x1
--2 x6
--3 x7
--2 x8
--3 x9
-= 0
-
-c_e_x25_:
-+1 x2
-+1 x7
--1 x8
-= 10
-
-c_u_x26_:
--1 x10
-+1 x7
-<= 0
-
-c_u_x27_:
--1 x11
-+1 x8
-<= 0
-
-c_u_x28_:
--1 x12
-+1 x9
-<= 0
-
-c_u_x29_:
-+1 x10
--1 x6
-<= 0
-
-c_u_x30_:
-+1 x11
--1 x7
-<= 0
-
-c_u_x31_:
-+1 x12
--1 x8
-<= 0
-
-c_e_x32_:
--5 x13
--5 x14
--5 x15
--5 x16
-+1 x3
-= -10
-
-c_e_x33_:
-+1 x14
--4 x15
-+2 x16
-+1 x4
-= 0
-
-c_u_x34_:
-+1 x14
--1 x17
-<= 0
-
-c_u_x35_:
-+1 x15
--1 x18
-<= 0
-
-c_u_x36_:
-+1 x16
--1 x19
-<= 0
-
-c_u_x37_:
--1 x13
-+1 x17
-<= 0
-
-c_u_x38_:
--1 x14
-+1 x18
-<= 0
-
-c_u_x39_:
--1 x15
-+1 x19
-<= 0
-
-c_e_ONE_VAR_CONSTANT:
-ONE_VAR_CONSTANT = 1.0
-
-bounds
- 0 <= x1 <= 10
- -inf <= x2 <= +inf
- -10 <= x3 <= 10
- -inf <= x4 <= +inf
- -inf <= x5 <= +inf
- -inf <= x6 <= 1
- -inf <= x7 <= +inf
- -inf <= x8 <= +inf
- 0 <= x9 <= +inf
- 0 <= x10 <= 1
- 0 <= x11 <= 1
- 0 <= x12 <= 1
- -inf <= x13 <= 1
- -inf <= x14 <= +inf
- -inf <= x15 <= +inf
- 0 <= x16 <= +inf
- 0 <= x17 <= 1
- 0 <= x18 <= 1
- 0 <= x19 <= 1
-binary
- x10
- x11
- x12
- x17
- x18
- x19
-end
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_ignore_derived_baseline/scenario_files/piecewise.setup.lp.Scenario3 b/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_ignore_derived_baseline/scenario_files/piecewise.setup.lp.Scenario3
deleted file mode 100644
index 79852c73075..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_ignore_derived_baseline/scenario_files/piecewise.setup.lp.Scenario3
+++ /dev/null
@@ -1,148 +0,0 @@
-\* Source Pyomo model name=Scenario3 *\
-
-min
-x20:
-+1 x2
--1 x4
-+1 x5
--2 ONE_VAR_CONSTANT
-
-s.t.
-
-c_l_x21_:
-+1 x1
->= 0
-
-c_l_x22_:
-+1 x1
-+2 x5
->= -100
-
-r_l_x23_:
-+1 x5
->= -2
-
-r_u_x23_:
-+1 x5
-<= 0
-
-c_e_x24_:
-+1 x1
--2 x6
--3 x7
--2 x8
--3 x9
-= 0
-
-c_e_x25_:
-+1 x2
-+1 x7
--1 x8
-= 10
-
-c_u_x26_:
--1 x10
-+1 x7
-<= 0
-
-c_u_x27_:
--1 x11
-+1 x8
-<= 0
-
-c_u_x28_:
--1 x12
-+1 x9
-<= 0
-
-c_u_x29_:
-+1 x10
--1 x6
-<= 0
-
-c_u_x30_:
-+1 x11
--1 x7
-<= 0
-
-c_u_x31_:
-+1 x12
--1 x8
-<= 0
-
-c_e_x32_:
--5 x13
--5 x14
--5 x15
--5 x16
-+1 x3
-= -10
-
-c_e_x33_:
-+1 x14
--5 x15
-+3 x16
-+1 x4
-= 0
-
-c_u_x34_:
-+1 x14
--1 x17
-<= 0
-
-c_u_x35_:
-+1 x15
--1 x18
-<= 0
-
-c_u_x36_:
-+1 x16
--1 x19
-<= 0
-
-c_u_x37_:
--1 x13
-+1 x17
-<= 0
-
-c_u_x38_:
--1 x14
-+1 x18
-<= 0
-
-c_u_x39_:
--1 x15
-+1 x19
-<= 0
-
-c_e_ONE_VAR_CONSTANT:
-ONE_VAR_CONSTANT = 1.0
-
-bounds
- 0 <= x1 <= 10
- -inf <= x2 <= +inf
- -10 <= x3 <= 10
- -inf <= x4 <= +inf
- -inf <= x5 <= +inf
- -inf <= x6 <= 1
- -inf <= x7 <= +inf
- -inf <= x8 <= +inf
- 0 <= x9 <= +inf
- 0 <= x10 <= 1
- 0 <= x11 <= 1
- 0 <= x12 <= 1
- -inf <= x13 <= 1
- -inf <= x14 <= +inf
- -inf <= x15 <= +inf
- 0 <= x16 <= +inf
- 0 <= x17 <= 1
- 0 <= x18 <= 1
- 0 <= x19 <= 1
-binary
- x10
- x11
- x12
- x17
- x18
- x19
-end
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_ignore_derived_baseline/scenario_files/piecewise.sto.Scenario1 b/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_ignore_derived_baseline/scenario_files/piecewise.sto.Scenario1
deleted file mode 100644
index 9147eb04a8a..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_ignore_derived_baseline/scenario_files/piecewise.sto.Scenario1
+++ /dev/null
@@ -1,37 +0,0 @@
- BL BLOCK1 PERIOD2 0.33333333329999998
- RHS c_e_x30_ -10
- RHS c_e_x31_ 0
- RHS c_u_x33_ 0
- RHS c_u_x34_ 0
- RHS c_u_x35_ 0
- RHS c_u_x36_ 0
- RHS c_u_x37_ 0
- RHS c_u_x38_ 0
- RHS r_l_x39_ 0
- RHS r_u_x39_ 0
- x5 c_l_x32_ 0
- x13 c_e_x30_ -5
- x14 c_e_x30_ -5
- x15 c_e_x30_ -5
- x16 c_e_x30_ -5
- x3 c_e_x30_ 1
- x14 c_e_x31_ 1
- x15 c_e_x31_ -3
- x16 c_e_x31_ 1
- x4 c_e_x31_ 1
- x14 c_u_x33_ 1
- x17 c_u_x33_ -1
- x15 c_u_x34_ 1
- x18 c_u_x34_ -1
- x16 c_u_x35_ 1
- x19 c_u_x35_ -1
- x13 c_u_x36_ -1
- x17 c_u_x36_ 1
- x14 c_u_x37_ -1
- x18 c_u_x37_ 1
- x15 c_u_x38_ -1
- x19 c_u_x38_ 1
- x2 x20 1
- x4 x20 -1
- x5 x20 1
- ONE_VAR_CONSTANT x20 0
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_ignore_derived_baseline/scenario_files/piecewise.sto.Scenario2 b/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_ignore_derived_baseline/scenario_files/piecewise.sto.Scenario2
deleted file mode 100644
index dbaa9265c96..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_ignore_derived_baseline/scenario_files/piecewise.sto.Scenario2
+++ /dev/null
@@ -1,37 +0,0 @@
- BL BLOCK1 PERIOD2 0.33333333329999998
- RHS c_e_x30_ -10
- RHS c_e_x31_ 0
- RHS c_u_x33_ 0
- RHS c_u_x34_ 0
- RHS c_u_x35_ 0
- RHS c_u_x36_ 0
- RHS c_u_x37_ 0
- RHS c_u_x38_ 0
- RHS r_l_x39_ -1
- RHS r_u_x39_ 0
- x5 c_l_x32_ 1
- x13 c_e_x30_ -5
- x14 c_e_x30_ -5
- x15 c_e_x30_ -5
- x16 c_e_x30_ -5
- x3 c_e_x30_ 1
- x14 c_e_x31_ 1
- x15 c_e_x31_ -4
- x16 c_e_x31_ 2
- x4 c_e_x31_ 1
- x14 c_u_x33_ 1
- x17 c_u_x33_ -1
- x15 c_u_x34_ 1
- x18 c_u_x34_ -1
- x16 c_u_x35_ 1
- x19 c_u_x35_ -1
- x13 c_u_x36_ -1
- x17 c_u_x36_ 1
- x14 c_u_x37_ -1
- x18 c_u_x37_ 1
- x15 c_u_x38_ -1
- x19 c_u_x38_ 1
- x2 x20 1
- x4 x20 -1
- x5 x20 1
- ONE_VAR_CONSTANT x20 -1
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_ignore_derived_baseline/scenario_files/piecewise.sto.Scenario3 b/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_ignore_derived_baseline/scenario_files/piecewise.sto.Scenario3
deleted file mode 100644
index 0bcc25c2577..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_ignore_derived_baseline/scenario_files/piecewise.sto.Scenario3
+++ /dev/null
@@ -1,37 +0,0 @@
- BL BLOCK1 PERIOD2 0.33333333329999998
- RHS c_e_x30_ -10
- RHS c_e_x31_ 0
- RHS c_u_x33_ 0
- RHS c_u_x34_ 0
- RHS c_u_x35_ 0
- RHS c_u_x36_ 0
- RHS c_u_x37_ 0
- RHS c_u_x38_ 0
- RHS r_l_x39_ -2
- RHS r_u_x39_ 0
- x5 c_l_x32_ 2
- x13 c_e_x30_ -5
- x14 c_e_x30_ -5
- x15 c_e_x30_ -5
- x16 c_e_x30_ -5
- x3 c_e_x30_ 1
- x14 c_e_x31_ 1
- x15 c_e_x31_ -5
- x16 c_e_x31_ 3
- x4 c_e_x31_ 1
- x14 c_u_x33_ 1
- x17 c_u_x33_ -1
- x15 c_u_x34_ 1
- x18 c_u_x34_ -1
- x16 c_u_x35_ 1
- x19 c_u_x35_ -1
- x13 c_u_x36_ -1
- x17 c_u_x36_ 1
- x14 c_u_x37_ -1
- x18 c_u_x37_ 1
- x15 c_u_x38_ -1
- x19 c_u_x38_ 1
- x2 x20 1
- x4 x20 -1
- x5 x20 1
- ONE_VAR_CONSTANT x20 -2
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_ignore_derived_baseline/scenario_files/piecewise.sto.struct.Scenario1 b/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_ignore_derived_baseline/scenario_files/piecewise.sto.struct.Scenario1
deleted file mode 100644
index 868098c0d16..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_ignore_derived_baseline/scenario_files/piecewise.sto.struct.Scenario1
+++ /dev/null
@@ -1,36 +0,0 @@
-RHS c_e_x30_
-RHS c_e_x31_
-RHS c_u_x33_
-RHS c_u_x34_
-RHS c_u_x35_
-RHS c_u_x36_
-RHS c_u_x37_
-RHS c_u_x38_
-RHS r_l_x39_
-RHS r_u_x39_
-x5 c_l_x32_
-x13 c_e_x30_
-x14 c_e_x30_
-x15 c_e_x30_
-x16 c_e_x30_
-x3 c_e_x30_
-x14 c_e_x31_
-x15 c_e_x31_
-x16 c_e_x31_
-x4 c_e_x31_
-x14 c_u_x33_
-x17 c_u_x33_
-x15 c_u_x34_
-x18 c_u_x34_
-x16 c_u_x35_
-x19 c_u_x35_
-x13 c_u_x36_
-x17 c_u_x36_
-x14 c_u_x37_
-x18 c_u_x37_
-x15 c_u_x38_
-x19 c_u_x38_
-x2 x20
-x4 x20
-x5 x20
-ONE_VAR_CONSTANT x20
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_ignore_derived_baseline/scenario_files/piecewise.sto.struct.Scenario2 b/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_ignore_derived_baseline/scenario_files/piecewise.sto.struct.Scenario2
deleted file mode 100644
index 868098c0d16..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_ignore_derived_baseline/scenario_files/piecewise.sto.struct.Scenario2
+++ /dev/null
@@ -1,36 +0,0 @@
-RHS c_e_x30_
-RHS c_e_x31_
-RHS c_u_x33_
-RHS c_u_x34_
-RHS c_u_x35_
-RHS c_u_x36_
-RHS c_u_x37_
-RHS c_u_x38_
-RHS r_l_x39_
-RHS r_u_x39_
-x5 c_l_x32_
-x13 c_e_x30_
-x14 c_e_x30_
-x15 c_e_x30_
-x16 c_e_x30_
-x3 c_e_x30_
-x14 c_e_x31_
-x15 c_e_x31_
-x16 c_e_x31_
-x4 c_e_x31_
-x14 c_u_x33_
-x17 c_u_x33_
-x15 c_u_x34_
-x18 c_u_x34_
-x16 c_u_x35_
-x19 c_u_x35_
-x13 c_u_x36_
-x17 c_u_x36_
-x14 c_u_x37_
-x18 c_u_x37_
-x15 c_u_x38_
-x19 c_u_x38_
-x2 x20
-x4 x20
-x5 x20
-ONE_VAR_CONSTANT x20
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_ignore_derived_baseline/scenario_files/piecewise.sto.struct.Scenario3 b/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_ignore_derived_baseline/scenario_files/piecewise.sto.struct.Scenario3
deleted file mode 100644
index 868098c0d16..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_ignore_derived_baseline/scenario_files/piecewise.sto.struct.Scenario3
+++ /dev/null
@@ -1,36 +0,0 @@
-RHS c_e_x30_
-RHS c_e_x31_
-RHS c_u_x33_
-RHS c_u_x34_
-RHS c_u_x35_
-RHS c_u_x36_
-RHS c_u_x37_
-RHS c_u_x38_
-RHS r_l_x39_
-RHS r_u_x39_
-x5 c_l_x32_
-x13 c_e_x30_
-x14 c_e_x30_
-x15 c_e_x30_
-x16 c_e_x30_
-x3 c_e_x30_
-x14 c_e_x31_
-x15 c_e_x31_
-x16 c_e_x31_
-x4 c_e_x31_
-x14 c_u_x33_
-x17 c_u_x33_
-x15 c_u_x34_
-x18 c_u_x34_
-x16 c_u_x35_
-x19 c_u_x35_
-x13 c_u_x36_
-x17 c_u_x36_
-x14 c_u_x37_
-x18 c_u_x37_
-x15 c_u_x38_
-x19 c_u_x38_
-x2 x20
-x4 x20
-x5 x20
-ONE_VAR_CONSTANT x20
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_ignore_derived_baseline/scenario_files/piecewise.tim.Scenario1 b/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_ignore_derived_baseline/scenario_files/piecewise.tim.Scenario1
deleted file mode 100644
index ab42bc43726..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_ignore_derived_baseline/scenario_files/piecewise.tim.Scenario1
+++ /dev/null
@@ -1,49 +0,0 @@
-TIME piecewise
-PERIODS EXPLICIT
- TIME1
- TIME2
-ROWS
- x20 TIME1
- c_e_x21_ TIME1
- c_e_x22_ TIME1
- c_l_x23_ TIME1
- c_u_x24_ TIME1
- c_u_x25_ TIME1
- c_u_x26_ TIME1
- c_u_x27_ TIME1
- c_u_x28_ TIME1
- c_u_x29_ TIME1
- c_e_x30_ TIME2
- c_e_x31_ TIME2
- c_l_x32_ TIME2
- c_u_x33_ TIME2
- c_u_x34_ TIME2
- c_u_x35_ TIME2
- c_u_x36_ TIME2
- c_u_x37_ TIME2
- c_u_x38_ TIME2
- r_l_x39_ TIME2
- r_u_x39_ TIME2
- c_e_ONE_VAR_CONSTANT TIME2
-COLS
- x1 TIME1
- x10 TIME1
- x11 TIME1
- x12 TIME1
- x2 TIME1
- x6 TIME1
- x7 TIME1
- x8 TIME1
- x9 TIME1
- x13 TIME2
- x14 TIME2
- x15 TIME2
- x16 TIME2
- x17 TIME2
- x18 TIME2
- x19 TIME2
- x3 TIME2
- x4 TIME2
- x5 TIME2
- ONE_VAR_CONSTANT TIME2
-ENDATA
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_ignore_derived_baseline/scenario_files/piecewise.tim.Scenario2 b/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_ignore_derived_baseline/scenario_files/piecewise.tim.Scenario2
deleted file mode 100644
index ab42bc43726..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_ignore_derived_baseline/scenario_files/piecewise.tim.Scenario2
+++ /dev/null
@@ -1,49 +0,0 @@
-TIME piecewise
-PERIODS EXPLICIT
- TIME1
- TIME2
-ROWS
- x20 TIME1
- c_e_x21_ TIME1
- c_e_x22_ TIME1
- c_l_x23_ TIME1
- c_u_x24_ TIME1
- c_u_x25_ TIME1
- c_u_x26_ TIME1
- c_u_x27_ TIME1
- c_u_x28_ TIME1
- c_u_x29_ TIME1
- c_e_x30_ TIME2
- c_e_x31_ TIME2
- c_l_x32_ TIME2
- c_u_x33_ TIME2
- c_u_x34_ TIME2
- c_u_x35_ TIME2
- c_u_x36_ TIME2
- c_u_x37_ TIME2
- c_u_x38_ TIME2
- r_l_x39_ TIME2
- r_u_x39_ TIME2
- c_e_ONE_VAR_CONSTANT TIME2
-COLS
- x1 TIME1
- x10 TIME1
- x11 TIME1
- x12 TIME1
- x2 TIME1
- x6 TIME1
- x7 TIME1
- x8 TIME1
- x9 TIME1
- x13 TIME2
- x14 TIME2
- x15 TIME2
- x16 TIME2
- x17 TIME2
- x18 TIME2
- x19 TIME2
- x3 TIME2
- x4 TIME2
- x5 TIME2
- ONE_VAR_CONSTANT TIME2
-ENDATA
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_ignore_derived_baseline/scenario_files/piecewise.tim.Scenario3 b/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_ignore_derived_baseline/scenario_files/piecewise.tim.Scenario3
deleted file mode 100644
index ab42bc43726..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_ignore_derived_baseline/scenario_files/piecewise.tim.Scenario3
+++ /dev/null
@@ -1,49 +0,0 @@
-TIME piecewise
-PERIODS EXPLICIT
- TIME1
- TIME2
-ROWS
- x20 TIME1
- c_e_x21_ TIME1
- c_e_x22_ TIME1
- c_l_x23_ TIME1
- c_u_x24_ TIME1
- c_u_x25_ TIME1
- c_u_x26_ TIME1
- c_u_x27_ TIME1
- c_u_x28_ TIME1
- c_u_x29_ TIME1
- c_e_x30_ TIME2
- c_e_x31_ TIME2
- c_l_x32_ TIME2
- c_u_x33_ TIME2
- c_u_x34_ TIME2
- c_u_x35_ TIME2
- c_u_x36_ TIME2
- c_u_x37_ TIME2
- c_u_x38_ TIME2
- r_l_x39_ TIME2
- r_u_x39_ TIME2
- c_e_ONE_VAR_CONSTANT TIME2
-COLS
- x1 TIME1
- x10 TIME1
- x11 TIME1
- x12 TIME1
- x2 TIME1
- x6 TIME1
- x7 TIME1
- x8 TIME1
- x9 TIME1
- x13 TIME2
- x14 TIME2
- x15 TIME2
- x16 TIME2
- x17 TIME2
- x18 TIME2
- x19 TIME2
- x3 TIME2
- x4 TIME2
- x5 TIME2
- ONE_VAR_CONSTANT TIME2
-ENDATA
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_symbolic_names_baseline/piecewise.col b/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_symbolic_names_baseline/piecewise.col
deleted file mode 100644
index ddc4c751581..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_symbolic_names_baseline/piecewise.col
+++ /dev/null
@@ -1,20 +0,0 @@
-x
-fx
-fz
-p_first_stage_INC_bin_y(1)
-p_first_stage_INC_bin_y(2)
-p_first_stage_INC_bin_y(3)
-p_first_stage_INC_delta(1)
-p_first_stage_INC_delta(2)
-p_first_stage_INC_delta(3)
-p_first_stage_INC_delta(4)
-p_second_stage(1)_INC_bin_y(1)
-p_second_stage(1)_INC_bin_y(2)
-p_second_stage(1)_INC_bin_y(3)
-p_second_stage(1)_INC_delta(1)
-p_second_stage(1)_INC_delta(2)
-p_second_stage(1)_INC_delta(3)
-p_second_stage(1)_INC_delta(4)
-r
-z
-ONE_VAR_CONSTANT
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_symbolic_names_baseline/piecewise.cor b/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_symbolic_names_baseline/piecewise.cor
deleted file mode 100644
index f7593d8259e..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_symbolic_names_baseline/piecewise.cor
+++ /dev/null
@@ -1,148 +0,0 @@
-\* Source Pyomo model name=Scenario1 *\
-
-min
-o:
-+1 fx
--1 fz
-+1 r
-+0 ONE_VAR_CONSTANT
-
-s.t.
-
-c_l_c_first_stage_:
-+1 x
->= 0
-
-c_e_p_first_stage_INC_constraint1_:
-+1 x
--2 p_first_stage_INC_delta(1)
--3 p_first_stage_INC_delta(2)
--2 p_first_stage_INC_delta(3)
--3 p_first_stage_INC_delta(4)
-= 0
-
-c_e_p_first_stage_INC_constraint2_:
-+1 fx
-+1 p_first_stage_INC_delta(2)
--1 p_first_stage_INC_delta(3)
-= 10
-
-c_e_p_second_stage(1)_INC_constraint1_:
--5 p_second_stage(1)_INC_delta(1)
--5 p_second_stage(1)_INC_delta(2)
--5 p_second_stage(1)_INC_delta(3)
--5 p_second_stage(1)_INC_delta(4)
-+1 z
-= -10
-
-c_e_p_second_stage(1)_INC_constraint2_:
-+1 fz
-+1 p_second_stage(1)_INC_delta(2)
--3 p_second_stage(1)_INC_delta(3)
-+1 p_second_stage(1)_INC_delta(4)
-= 0
-
-c_l_c_second_stage_:
-+1 x
-+0 r
->= -100
-
-c_u_p_first_stage_INC_constraint3(1)_:
--1 p_first_stage_INC_bin_y(1)
-+1 p_first_stage_INC_delta(2)
-<= 0
-
-c_u_p_first_stage_INC_constraint3(2)_:
--1 p_first_stage_INC_bin_y(2)
-+1 p_first_stage_INC_delta(3)
-<= 0
-
-c_u_p_first_stage_INC_constraint3(3)_:
--1 p_first_stage_INC_bin_y(3)
-+1 p_first_stage_INC_delta(4)
-<= 0
-
-c_u_p_first_stage_INC_constraint4(1)_:
-+1 p_first_stage_INC_bin_y(1)
--1 p_first_stage_INC_delta(1)
-<= 0
-
-c_u_p_first_stage_INC_constraint4(2)_:
-+1 p_first_stage_INC_bin_y(2)
--1 p_first_stage_INC_delta(2)
-<= 0
-
-c_u_p_first_stage_INC_constraint4(3)_:
-+1 p_first_stage_INC_bin_y(3)
--1 p_first_stage_INC_delta(3)
-<= 0
-
-c_u_p_second_stage(1)_INC_constraint3(1)_:
--1 p_second_stage(1)_INC_bin_y(1)
-+1 p_second_stage(1)_INC_delta(2)
-<= 0
-
-c_u_p_second_stage(1)_INC_constraint3(2)_:
--1 p_second_stage(1)_INC_bin_y(2)
-+1 p_second_stage(1)_INC_delta(3)
-<= 0
-
-c_u_p_second_stage(1)_INC_constraint3(3)_:
--1 p_second_stage(1)_INC_bin_y(3)
-+1 p_second_stage(1)_INC_delta(4)
-<= 0
-
-c_u_p_second_stage(1)_INC_constraint4(1)_:
-+1 p_second_stage(1)_INC_bin_y(1)
--1 p_second_stage(1)_INC_delta(1)
-<= 0
-
-c_u_p_second_stage(1)_INC_constraint4(2)_:
-+1 p_second_stage(1)_INC_bin_y(2)
--1 p_second_stage(1)_INC_delta(2)
-<= 0
-
-c_u_p_second_stage(1)_INC_constraint4(3)_:
-+1 p_second_stage(1)_INC_bin_y(3)
--1 p_second_stage(1)_INC_delta(3)
-<= 0
-
-r_l_r_second_stage_:
-+1 r
->= 0
-
-r_u_r_second_stage_:
-+1 r
-<= 0
-
-c_e_ONE_VAR_CONSTANT:
-ONE_VAR_CONSTANT = 1.0
-
-bounds
- 0 <= x <= 10
- -inf <= fx <= +inf
- -10 <= z <= 10
- -inf <= fz <= +inf
- -inf <= r <= +inf
- -inf <= p_first_stage_INC_delta(1) <= 1
- -inf <= p_first_stage_INC_delta(2) <= +inf
- -inf <= p_first_stage_INC_delta(3) <= +inf
- 0 <= p_first_stage_INC_delta(4) <= +inf
- 0 <= p_first_stage_INC_bin_y(1) <= 1
- 0 <= p_first_stage_INC_bin_y(2) <= 1
- 0 <= p_first_stage_INC_bin_y(3) <= 1
- -inf <= p_second_stage(1)_INC_delta(1) <= 1
- -inf <= p_second_stage(1)_INC_delta(2) <= +inf
- -inf <= p_second_stage(1)_INC_delta(3) <= +inf
- 0 <= p_second_stage(1)_INC_delta(4) <= +inf
- 0 <= p_second_stage(1)_INC_bin_y(1) <= 1
- 0 <= p_second_stage(1)_INC_bin_y(2) <= 1
- 0 <= p_second_stage(1)_INC_bin_y(3) <= 1
-binary
- p_first_stage_INC_bin_y(1)
- p_first_stage_INC_bin_y(2)
- p_first_stage_INC_bin_y(3)
- p_second_stage(1)_INC_bin_y(1)
- p_second_stage(1)_INC_bin_y(2)
- p_second_stage(1)_INC_bin_y(3)
-end
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_symbolic_names_baseline/piecewise.cor.symbols b/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_symbolic_names_baseline/piecewise.cor.symbols
deleted file mode 100644
index 3ea722dd807..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_symbolic_names_baseline/piecewise.cor.symbols
+++ /dev/null
@@ -1,9 +0,0 @@
-fx fx
-p_first_stage_INC_bin_y(1) p_first_stage.INC_bin_y:#1
-p_first_stage_INC_bin_y(2) p_first_stage.INC_bin_y:#2
-p_first_stage_INC_bin_y(3) p_first_stage.INC_bin_y:#3
-p_first_stage_INC_delta(1) p_first_stage.INC_delta:#1
-p_first_stage_INC_delta(2) p_first_stage.INC_delta:#2
-p_first_stage_INC_delta(3) p_first_stage.INC_delta:#3
-p_first_stage_INC_delta(4) p_first_stage.INC_delta:#4
-x x
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_symbolic_names_baseline/piecewise.lp.det b/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_symbolic_names_baseline/piecewise.lp.det
deleted file mode 100644
index 2d690b929f6..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_symbolic_names_baseline/piecewise.lp.det
+++ /dev/null
@@ -1,148 +0,0 @@
-\* Source Pyomo model name=ZeroStochasticData *\
-
-min
-o:
--9876543210 fx
--9876543210 fz
--9876543210 r
-+0 ONE_VAR_CONSTANT
-
-s.t.
-
-c_l_c_first_stage_:
-+1 x
->= 0
-
-c_e_p_first_stage_INC_constraint1_:
-+1 x
--2 p_first_stage_INC_delta(1)
--3 p_first_stage_INC_delta(2)
--2 p_first_stage_INC_delta(3)
--3 p_first_stage_INC_delta(4)
-= 0
-
-c_e_p_first_stage_INC_constraint2_:
-+1 fx
-+1 p_first_stage_INC_delta(2)
--1 p_first_stage_INC_delta(3)
-= 10
-
-c_e_p_second_stage(1)_INC_constraint1_:
--9876543210 p_second_stage(1)_INC_delta(1)
--9876543210 p_second_stage(1)_INC_delta(2)
--9876543210 p_second_stage(1)_INC_delta(3)
--9876543210 p_second_stage(1)_INC_delta(4)
--9876543210 z
-= -9876543210
-
-c_e_p_second_stage(1)_INC_constraint2_:
--9876543210 fz
--9876543210 p_second_stage(1)_INC_delta(2)
--9876543210 p_second_stage(1)_INC_delta(3)
--9876543210 p_second_stage(1)_INC_delta(4)
-= -9876543210
-
-c_l_c_second_stage_:
-+1 x
--9876543210 r
->= -100
-
-c_u_p_first_stage_INC_constraint3(1)_:
--1 p_first_stage_INC_bin_y(1)
-+1 p_first_stage_INC_delta(2)
-<= 0
-
-c_u_p_first_stage_INC_constraint3(2)_:
--1 p_first_stage_INC_bin_y(2)
-+1 p_first_stage_INC_delta(3)
-<= 0
-
-c_u_p_first_stage_INC_constraint3(3)_:
--1 p_first_stage_INC_bin_y(3)
-+1 p_first_stage_INC_delta(4)
-<= 0
-
-c_u_p_first_stage_INC_constraint4(1)_:
-+1 p_first_stage_INC_bin_y(1)
--1 p_first_stage_INC_delta(1)
-<= 0
-
-c_u_p_first_stage_INC_constraint4(2)_:
-+1 p_first_stage_INC_bin_y(2)
--1 p_first_stage_INC_delta(2)
-<= 0
-
-c_u_p_first_stage_INC_constraint4(3)_:
-+1 p_first_stage_INC_bin_y(3)
--1 p_first_stage_INC_delta(3)
-<= 0
-
-c_u_p_second_stage(1)_INC_constraint3(1)_:
--9876543210 p_second_stage(1)_INC_bin_y(1)
--9876543210 p_second_stage(1)_INC_delta(2)
-<= -9876543210
-
-c_u_p_second_stage(1)_INC_constraint3(2)_:
--9876543210 p_second_stage(1)_INC_bin_y(2)
--9876543210 p_second_stage(1)_INC_delta(3)
-<= -9876543210
-
-c_u_p_second_stage(1)_INC_constraint3(3)_:
--9876543210 p_second_stage(1)_INC_bin_y(3)
--9876543210 p_second_stage(1)_INC_delta(4)
-<= -9876543210
-
-c_u_p_second_stage(1)_INC_constraint4(1)_:
--9876543210 p_second_stage(1)_INC_bin_y(1)
--9876543210 p_second_stage(1)_INC_delta(1)
-<= -9876543210
-
-c_u_p_second_stage(1)_INC_constraint4(2)_:
--9876543210 p_second_stage(1)_INC_bin_y(2)
--9876543210 p_second_stage(1)_INC_delta(2)
-<= -9876543210
-
-c_u_p_second_stage(1)_INC_constraint4(3)_:
--9876543210 p_second_stage(1)_INC_bin_y(3)
--9876543210 p_second_stage(1)_INC_delta(3)
-<= -9876543210
-
-r_l_r_second_stage_:
-+1 r
->= -9876543210
-
-r_u_r_second_stage_:
-+1 r
-<= -9876543210
-
-c_e_ONE_VAR_CONSTANT:
-ONE_VAR_CONSTANT = 1.0
-
-bounds
- 0 <= x <= 10
- -inf <= fx <= +inf
- -10 <= z <= 10
- -inf <= fz <= +inf
- -inf <= r <= +inf
- -inf <= p_first_stage_INC_delta(1) <= 1
- -inf <= p_first_stage_INC_delta(2) <= +inf
- -inf <= p_first_stage_INC_delta(3) <= +inf
- 0 <= p_first_stage_INC_delta(4) <= +inf
- 0 <= p_first_stage_INC_bin_y(1) <= 1
- 0 <= p_first_stage_INC_bin_y(2) <= 1
- 0 <= p_first_stage_INC_bin_y(3) <= 1
- -inf <= p_second_stage(1)_INC_delta(1) <= 1
- -inf <= p_second_stage(1)_INC_delta(2) <= +inf
- -inf <= p_second_stage(1)_INC_delta(3) <= +inf
- 0 <= p_second_stage(1)_INC_delta(4) <= +inf
- 0 <= p_second_stage(1)_INC_bin_y(1) <= 1
- 0 <= p_second_stage(1)_INC_bin_y(2) <= 1
- 0 <= p_second_stage(1)_INC_bin_y(3) <= 1
-binary
- p_first_stage_INC_bin_y(1)
- p_first_stage_INC_bin_y(2)
- p_first_stage_INC_bin_y(3)
- p_second_stage(1)_INC_bin_y(1)
- p_second_stage(1)_INC_bin_y(2)
- p_second_stage(1)_INC_bin_y(3)
-end
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_symbolic_names_baseline/piecewise.row b/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_symbolic_names_baseline/piecewise.row
deleted file mode 100644
index 7722adaec3a..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_symbolic_names_baseline/piecewise.row
+++ /dev/null
@@ -1,22 +0,0 @@
-o
-c_l_c_first_stage_
-c_e_p_first_stage_INC_constraint1_
-c_e_p_first_stage_INC_constraint2_
-c_e_p_second_stage(1)_INC_constraint1_
-c_e_p_second_stage(1)_INC_constraint2_
-c_l_c_second_stage_
-c_u_p_first_stage_INC_constraint3(1)_
-c_u_p_first_stage_INC_constraint3(2)_
-c_u_p_first_stage_INC_constraint3(3)_
-c_u_p_first_stage_INC_constraint4(1)_
-c_u_p_first_stage_INC_constraint4(2)_
-c_u_p_first_stage_INC_constraint4(3)_
-c_u_p_second_stage(1)_INC_constraint3(1)_
-c_u_p_second_stage(1)_INC_constraint3(2)_
-c_u_p_second_stage(1)_INC_constraint3(3)_
-c_u_p_second_stage(1)_INC_constraint4(1)_
-c_u_p_second_stage(1)_INC_constraint4(2)_
-c_u_p_second_stage(1)_INC_constraint4(3)_
-r_l_r_second_stage_
-r_u_r_second_stage_
-c_e_ONE_VAR_CONSTANT
\ No newline at end of file
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_symbolic_names_baseline/piecewise.sto b/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_symbolic_names_baseline/piecewise.sto
deleted file mode 100644
index 4658be0cad2..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_symbolic_names_baseline/piecewise.sto
+++ /dev/null
@@ -1,114 +0,0 @@
-STOCH piecewise
-BLOCKS DISCRETE REPLACE
- BL BLOCK1 PERIOD2 0.33333333329999998
- RHS c_e_p_second_stage(1)_INC_constraint1_ -10
- RHS c_e_p_second_stage(1)_INC_constraint2_ 0
- RHS c_u_p_second_stage(1)_INC_constraint3(1)_ 0
- RHS c_u_p_second_stage(1)_INC_constraint3(2)_ 0
- RHS c_u_p_second_stage(1)_INC_constraint3(3)_ 0
- RHS c_u_p_second_stage(1)_INC_constraint4(1)_ 0
- RHS c_u_p_second_stage(1)_INC_constraint4(2)_ 0
- RHS c_u_p_second_stage(1)_INC_constraint4(3)_ 0
- RHS r_l_r_second_stage_ 0
- RHS r_u_r_second_stage_ 0
- r c_l_c_second_stage_ 0
- p_second_stage(1)_INC_delta(1) c_e_p_second_stage(1)_INC_constraint1_ -5
- p_second_stage(1)_INC_delta(2) c_e_p_second_stage(1)_INC_constraint1_ -5
- p_second_stage(1)_INC_delta(3) c_e_p_second_stage(1)_INC_constraint1_ -5
- p_second_stage(1)_INC_delta(4) c_e_p_second_stage(1)_INC_constraint1_ -5
- z c_e_p_second_stage(1)_INC_constraint1_ 1
- fz c_e_p_second_stage(1)_INC_constraint2_ 1
- p_second_stage(1)_INC_delta(2) c_e_p_second_stage(1)_INC_constraint2_ 1
- p_second_stage(1)_INC_delta(3) c_e_p_second_stage(1)_INC_constraint2_ -3
- p_second_stage(1)_INC_delta(4) c_e_p_second_stage(1)_INC_constraint2_ 1
- p_second_stage(1)_INC_bin_y(1) c_u_p_second_stage(1)_INC_constraint3(1)_ -1
- p_second_stage(1)_INC_delta(2) c_u_p_second_stage(1)_INC_constraint3(1)_ 1
- p_second_stage(1)_INC_bin_y(2) c_u_p_second_stage(1)_INC_constraint3(2)_ -1
- p_second_stage(1)_INC_delta(3) c_u_p_second_stage(1)_INC_constraint3(2)_ 1
- p_second_stage(1)_INC_bin_y(3) c_u_p_second_stage(1)_INC_constraint3(3)_ -1
- p_second_stage(1)_INC_delta(4) c_u_p_second_stage(1)_INC_constraint3(3)_ 1
- p_second_stage(1)_INC_bin_y(1) c_u_p_second_stage(1)_INC_constraint4(1)_ 1
- p_second_stage(1)_INC_delta(1) c_u_p_second_stage(1)_INC_constraint4(1)_ -1
- p_second_stage(1)_INC_bin_y(2) c_u_p_second_stage(1)_INC_constraint4(2)_ 1
- p_second_stage(1)_INC_delta(2) c_u_p_second_stage(1)_INC_constraint4(2)_ -1
- p_second_stage(1)_INC_bin_y(3) c_u_p_second_stage(1)_INC_constraint4(3)_ 1
- p_second_stage(1)_INC_delta(3) c_u_p_second_stage(1)_INC_constraint4(3)_ -1
- fx o 1
- fz o -1
- r o 1
- ONE_VAR_CONSTANT o 0
- BL BLOCK1 PERIOD2 0.33333333329999998
- RHS c_e_p_second_stage(1)_INC_constraint1_ -10
- RHS c_e_p_second_stage(1)_INC_constraint2_ 0
- RHS c_u_p_second_stage(1)_INC_constraint3(1)_ 0
- RHS c_u_p_second_stage(1)_INC_constraint3(2)_ 0
- RHS c_u_p_second_stage(1)_INC_constraint3(3)_ 0
- RHS c_u_p_second_stage(1)_INC_constraint4(1)_ 0
- RHS c_u_p_second_stage(1)_INC_constraint4(2)_ 0
- RHS c_u_p_second_stage(1)_INC_constraint4(3)_ 0
- RHS r_l_r_second_stage_ -1
- RHS r_u_r_second_stage_ 0
- r c_l_c_second_stage_ 1
- p_second_stage(1)_INC_delta(1) c_e_p_second_stage(1)_INC_constraint1_ -5
- p_second_stage(1)_INC_delta(2) c_e_p_second_stage(1)_INC_constraint1_ -5
- p_second_stage(1)_INC_delta(3) c_e_p_second_stage(1)_INC_constraint1_ -5
- p_second_stage(1)_INC_delta(4) c_e_p_second_stage(1)_INC_constraint1_ -5
- z c_e_p_second_stage(1)_INC_constraint1_ 1
- fz c_e_p_second_stage(1)_INC_constraint2_ 1
- p_second_stage(1)_INC_delta(2) c_e_p_second_stage(1)_INC_constraint2_ 1
- p_second_stage(1)_INC_delta(3) c_e_p_second_stage(1)_INC_constraint2_ -4
- p_second_stage(1)_INC_delta(4) c_e_p_second_stage(1)_INC_constraint2_ 2
- p_second_stage(1)_INC_bin_y(1) c_u_p_second_stage(1)_INC_constraint3(1)_ -1
- p_second_stage(1)_INC_delta(2) c_u_p_second_stage(1)_INC_constraint3(1)_ 1
- p_second_stage(1)_INC_bin_y(2) c_u_p_second_stage(1)_INC_constraint3(2)_ -1
- p_second_stage(1)_INC_delta(3) c_u_p_second_stage(1)_INC_constraint3(2)_ 1
- p_second_stage(1)_INC_bin_y(3) c_u_p_second_stage(1)_INC_constraint3(3)_ -1
- p_second_stage(1)_INC_delta(4) c_u_p_second_stage(1)_INC_constraint3(3)_ 1
- p_second_stage(1)_INC_bin_y(1) c_u_p_second_stage(1)_INC_constraint4(1)_ 1
- p_second_stage(1)_INC_delta(1) c_u_p_second_stage(1)_INC_constraint4(1)_ -1
- p_second_stage(1)_INC_bin_y(2) c_u_p_second_stage(1)_INC_constraint4(2)_ 1
- p_second_stage(1)_INC_delta(2) c_u_p_second_stage(1)_INC_constraint4(2)_ -1
- p_second_stage(1)_INC_bin_y(3) c_u_p_second_stage(1)_INC_constraint4(3)_ 1
- p_second_stage(1)_INC_delta(3) c_u_p_second_stage(1)_INC_constraint4(3)_ -1
- fx o 1
- fz o -1
- r o 1
- ONE_VAR_CONSTANT o -1
- BL BLOCK1 PERIOD2 0.33333333329999998
- RHS c_e_p_second_stage(1)_INC_constraint1_ -10
- RHS c_e_p_second_stage(1)_INC_constraint2_ 0
- RHS c_u_p_second_stage(1)_INC_constraint3(1)_ 0
- RHS c_u_p_second_stage(1)_INC_constraint3(2)_ 0
- RHS c_u_p_second_stage(1)_INC_constraint3(3)_ 0
- RHS c_u_p_second_stage(1)_INC_constraint4(1)_ 0
- RHS c_u_p_second_stage(1)_INC_constraint4(2)_ 0
- RHS c_u_p_second_stage(1)_INC_constraint4(3)_ 0
- RHS r_l_r_second_stage_ -2
- RHS r_u_r_second_stage_ 0
- r c_l_c_second_stage_ 2
- p_second_stage(1)_INC_delta(1) c_e_p_second_stage(1)_INC_constraint1_ -5
- p_second_stage(1)_INC_delta(2) c_e_p_second_stage(1)_INC_constraint1_ -5
- p_second_stage(1)_INC_delta(3) c_e_p_second_stage(1)_INC_constraint1_ -5
- p_second_stage(1)_INC_delta(4) c_e_p_second_stage(1)_INC_constraint1_ -5
- z c_e_p_second_stage(1)_INC_constraint1_ 1
- fz c_e_p_second_stage(1)_INC_constraint2_ 1
- p_second_stage(1)_INC_delta(2) c_e_p_second_stage(1)_INC_constraint2_ 1
- p_second_stage(1)_INC_delta(3) c_e_p_second_stage(1)_INC_constraint2_ -5
- p_second_stage(1)_INC_delta(4) c_e_p_second_stage(1)_INC_constraint2_ 3
- p_second_stage(1)_INC_bin_y(1) c_u_p_second_stage(1)_INC_constraint3(1)_ -1
- p_second_stage(1)_INC_delta(2) c_u_p_second_stage(1)_INC_constraint3(1)_ 1
- p_second_stage(1)_INC_bin_y(2) c_u_p_second_stage(1)_INC_constraint3(2)_ -1
- p_second_stage(1)_INC_delta(3) c_u_p_second_stage(1)_INC_constraint3(2)_ 1
- p_second_stage(1)_INC_bin_y(3) c_u_p_second_stage(1)_INC_constraint3(3)_ -1
- p_second_stage(1)_INC_delta(4) c_u_p_second_stage(1)_INC_constraint3(3)_ 1
- p_second_stage(1)_INC_bin_y(1) c_u_p_second_stage(1)_INC_constraint4(1)_ 1
- p_second_stage(1)_INC_delta(1) c_u_p_second_stage(1)_INC_constraint4(1)_ -1
- p_second_stage(1)_INC_bin_y(2) c_u_p_second_stage(1)_INC_constraint4(2)_ 1
- p_second_stage(1)_INC_delta(2) c_u_p_second_stage(1)_INC_constraint4(2)_ -1
- p_second_stage(1)_INC_bin_y(3) c_u_p_second_stage(1)_INC_constraint4(3)_ 1
- p_second_stage(1)_INC_delta(3) c_u_p_second_stage(1)_INC_constraint4(3)_ -1
- fx o 1
- fz o -1
- r o 1
- ONE_VAR_CONSTANT o -2
-ENDATA
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_symbolic_names_baseline/piecewise.sto.struct b/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_symbolic_names_baseline/piecewise.sto.struct
deleted file mode 100644
index 92b231fef93..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_symbolic_names_baseline/piecewise.sto.struct
+++ /dev/null
@@ -1,36 +0,0 @@
-RHS c_e_p_second_stage(1)_INC_constraint1_
-RHS c_e_p_second_stage(1)_INC_constraint2_
-RHS c_u_p_second_stage(1)_INC_constraint3(1)_
-RHS c_u_p_second_stage(1)_INC_constraint3(2)_
-RHS c_u_p_second_stage(1)_INC_constraint3(3)_
-RHS c_u_p_second_stage(1)_INC_constraint4(1)_
-RHS c_u_p_second_stage(1)_INC_constraint4(2)_
-RHS c_u_p_second_stage(1)_INC_constraint4(3)_
-RHS r_l_r_second_stage_
-RHS r_u_r_second_stage_
-r c_l_c_second_stage_
-p_second_stage(1)_INC_delta(1) c_e_p_second_stage(1)_INC_constraint1_
-p_second_stage(1)_INC_delta(2) c_e_p_second_stage(1)_INC_constraint1_
-p_second_stage(1)_INC_delta(3) c_e_p_second_stage(1)_INC_constraint1_
-p_second_stage(1)_INC_delta(4) c_e_p_second_stage(1)_INC_constraint1_
-z c_e_p_second_stage(1)_INC_constraint1_
-fz c_e_p_second_stage(1)_INC_constraint2_
-p_second_stage(1)_INC_delta(2) c_e_p_second_stage(1)_INC_constraint2_
-p_second_stage(1)_INC_delta(3) c_e_p_second_stage(1)_INC_constraint2_
-p_second_stage(1)_INC_delta(4) c_e_p_second_stage(1)_INC_constraint2_
-p_second_stage(1)_INC_bin_y(1) c_u_p_second_stage(1)_INC_constraint3(1)_
-p_second_stage(1)_INC_delta(2) c_u_p_second_stage(1)_INC_constraint3(1)_
-p_second_stage(1)_INC_bin_y(2) c_u_p_second_stage(1)_INC_constraint3(2)_
-p_second_stage(1)_INC_delta(3) c_u_p_second_stage(1)_INC_constraint3(2)_
-p_second_stage(1)_INC_bin_y(3) c_u_p_second_stage(1)_INC_constraint3(3)_
-p_second_stage(1)_INC_delta(4) c_u_p_second_stage(1)_INC_constraint3(3)_
-p_second_stage(1)_INC_bin_y(1) c_u_p_second_stage(1)_INC_constraint4(1)_
-p_second_stage(1)_INC_delta(1) c_u_p_second_stage(1)_INC_constraint4(1)_
-p_second_stage(1)_INC_bin_y(2) c_u_p_second_stage(1)_INC_constraint4(2)_
-p_second_stage(1)_INC_delta(2) c_u_p_second_stage(1)_INC_constraint4(2)_
-p_second_stage(1)_INC_bin_y(3) c_u_p_second_stage(1)_INC_constraint4(3)_
-p_second_stage(1)_INC_delta(3) c_u_p_second_stage(1)_INC_constraint4(3)_
-fx o
-fz o
-r o
-ONE_VAR_CONSTANT o
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_symbolic_names_baseline/piecewise.tim b/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_symbolic_names_baseline/piecewise.tim
deleted file mode 100644
index 1dd12b57f9b..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_symbolic_names_baseline/piecewise.tim
+++ /dev/null
@@ -1,49 +0,0 @@
-TIME piecewise
-PERIODS EXPLICIT
- TIME1
- TIME2
-ROWS
- o TIME1
- c_l_c_first_stage_ TIME1
- c_e_p_first_stage_INC_constraint1_ TIME2
- c_e_p_first_stage_INC_constraint2_ TIME2
- c_e_p_second_stage(1)_INC_constraint1_ TIME2
- c_e_p_second_stage(1)_INC_constraint2_ TIME2
- c_l_c_second_stage_ TIME2
- c_u_p_first_stage_INC_constraint3(1)_ TIME2
- c_u_p_first_stage_INC_constraint3(2)_ TIME2
- c_u_p_first_stage_INC_constraint3(3)_ TIME2
- c_u_p_first_stage_INC_constraint4(1)_ TIME2
- c_u_p_first_stage_INC_constraint4(2)_ TIME2
- c_u_p_first_stage_INC_constraint4(3)_ TIME2
- c_u_p_second_stage(1)_INC_constraint3(1)_ TIME2
- c_u_p_second_stage(1)_INC_constraint3(2)_ TIME2
- c_u_p_second_stage(1)_INC_constraint3(3)_ TIME2
- c_u_p_second_stage(1)_INC_constraint4(1)_ TIME2
- c_u_p_second_stage(1)_INC_constraint4(2)_ TIME2
- c_u_p_second_stage(1)_INC_constraint4(3)_ TIME2
- r_l_r_second_stage_ TIME2
- r_u_r_second_stage_ TIME2
- c_e_ONE_VAR_CONSTANT TIME2
-COLS
- x TIME1
- fx TIME2
- fz TIME2
- p_first_stage_INC_bin_y(1) TIME2
- p_first_stage_INC_bin_y(2) TIME2
- p_first_stage_INC_bin_y(3) TIME2
- p_first_stage_INC_delta(1) TIME2
- p_first_stage_INC_delta(2) TIME2
- p_first_stage_INC_delta(3) TIME2
- p_first_stage_INC_delta(4) TIME2
- p_second_stage(1)_INC_bin_y(1) TIME2
- p_second_stage(1)_INC_bin_y(2) TIME2
- p_second_stage(1)_INC_bin_y(3) TIME2
- p_second_stage(1)_INC_delta(1) TIME2
- p_second_stage(1)_INC_delta(2) TIME2
- p_second_stage(1)_INC_delta(3) TIME2
- p_second_stage(1)_INC_delta(4) TIME2
- r TIME2
- z TIME2
- ONE_VAR_CONSTANT TIME2
-ENDATA
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_symbolic_names_baseline/scenario_files/piecewise.col.Scenario1 b/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_symbolic_names_baseline/scenario_files/piecewise.col.Scenario1
deleted file mode 100644
index ddc4c751581..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_symbolic_names_baseline/scenario_files/piecewise.col.Scenario1
+++ /dev/null
@@ -1,20 +0,0 @@
-x
-fx
-fz
-p_first_stage_INC_bin_y(1)
-p_first_stage_INC_bin_y(2)
-p_first_stage_INC_bin_y(3)
-p_first_stage_INC_delta(1)
-p_first_stage_INC_delta(2)
-p_first_stage_INC_delta(3)
-p_first_stage_INC_delta(4)
-p_second_stage(1)_INC_bin_y(1)
-p_second_stage(1)_INC_bin_y(2)
-p_second_stage(1)_INC_bin_y(3)
-p_second_stage(1)_INC_delta(1)
-p_second_stage(1)_INC_delta(2)
-p_second_stage(1)_INC_delta(3)
-p_second_stage(1)_INC_delta(4)
-r
-z
-ONE_VAR_CONSTANT
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_symbolic_names_baseline/scenario_files/piecewise.col.Scenario2 b/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_symbolic_names_baseline/scenario_files/piecewise.col.Scenario2
deleted file mode 100644
index ddc4c751581..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_symbolic_names_baseline/scenario_files/piecewise.col.Scenario2
+++ /dev/null
@@ -1,20 +0,0 @@
-x
-fx
-fz
-p_first_stage_INC_bin_y(1)
-p_first_stage_INC_bin_y(2)
-p_first_stage_INC_bin_y(3)
-p_first_stage_INC_delta(1)
-p_first_stage_INC_delta(2)
-p_first_stage_INC_delta(3)
-p_first_stage_INC_delta(4)
-p_second_stage(1)_INC_bin_y(1)
-p_second_stage(1)_INC_bin_y(2)
-p_second_stage(1)_INC_bin_y(3)
-p_second_stage(1)_INC_delta(1)
-p_second_stage(1)_INC_delta(2)
-p_second_stage(1)_INC_delta(3)
-p_second_stage(1)_INC_delta(4)
-r
-z
-ONE_VAR_CONSTANT
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_symbolic_names_baseline/scenario_files/piecewise.col.Scenario3 b/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_symbolic_names_baseline/scenario_files/piecewise.col.Scenario3
deleted file mode 100644
index ddc4c751581..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_symbolic_names_baseline/scenario_files/piecewise.col.Scenario3
+++ /dev/null
@@ -1,20 +0,0 @@
-x
-fx
-fz
-p_first_stage_INC_bin_y(1)
-p_first_stage_INC_bin_y(2)
-p_first_stage_INC_bin_y(3)
-p_first_stage_INC_delta(1)
-p_first_stage_INC_delta(2)
-p_first_stage_INC_delta(3)
-p_first_stage_INC_delta(4)
-p_second_stage(1)_INC_bin_y(1)
-p_second_stage(1)_INC_bin_y(2)
-p_second_stage(1)_INC_bin_y(3)
-p_second_stage(1)_INC_delta(1)
-p_second_stage(1)_INC_delta(2)
-p_second_stage(1)_INC_delta(3)
-p_second_stage(1)_INC_delta(4)
-r
-z
-ONE_VAR_CONSTANT
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_symbolic_names_baseline/scenario_files/piecewise.lp.Scenario1 b/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_symbolic_names_baseline/scenario_files/piecewise.lp.Scenario1
deleted file mode 100644
index f7593d8259e..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_symbolic_names_baseline/scenario_files/piecewise.lp.Scenario1
+++ /dev/null
@@ -1,148 +0,0 @@
-\* Source Pyomo model name=Scenario1 *\
-
-min
-o:
-+1 fx
--1 fz
-+1 r
-+0 ONE_VAR_CONSTANT
-
-s.t.
-
-c_l_c_first_stage_:
-+1 x
->= 0
-
-c_e_p_first_stage_INC_constraint1_:
-+1 x
--2 p_first_stage_INC_delta(1)
--3 p_first_stage_INC_delta(2)
--2 p_first_stage_INC_delta(3)
--3 p_first_stage_INC_delta(4)
-= 0
-
-c_e_p_first_stage_INC_constraint2_:
-+1 fx
-+1 p_first_stage_INC_delta(2)
--1 p_first_stage_INC_delta(3)
-= 10
-
-c_e_p_second_stage(1)_INC_constraint1_:
--5 p_second_stage(1)_INC_delta(1)
--5 p_second_stage(1)_INC_delta(2)
--5 p_second_stage(1)_INC_delta(3)
--5 p_second_stage(1)_INC_delta(4)
-+1 z
-= -10
-
-c_e_p_second_stage(1)_INC_constraint2_:
-+1 fz
-+1 p_second_stage(1)_INC_delta(2)
--3 p_second_stage(1)_INC_delta(3)
-+1 p_second_stage(1)_INC_delta(4)
-= 0
-
-c_l_c_second_stage_:
-+1 x
-+0 r
->= -100
-
-c_u_p_first_stage_INC_constraint3(1)_:
--1 p_first_stage_INC_bin_y(1)
-+1 p_first_stage_INC_delta(2)
-<= 0
-
-c_u_p_first_stage_INC_constraint3(2)_:
--1 p_first_stage_INC_bin_y(2)
-+1 p_first_stage_INC_delta(3)
-<= 0
-
-c_u_p_first_stage_INC_constraint3(3)_:
--1 p_first_stage_INC_bin_y(3)
-+1 p_first_stage_INC_delta(4)
-<= 0
-
-c_u_p_first_stage_INC_constraint4(1)_:
-+1 p_first_stage_INC_bin_y(1)
--1 p_first_stage_INC_delta(1)
-<= 0
-
-c_u_p_first_stage_INC_constraint4(2)_:
-+1 p_first_stage_INC_bin_y(2)
--1 p_first_stage_INC_delta(2)
-<= 0
-
-c_u_p_first_stage_INC_constraint4(3)_:
-+1 p_first_stage_INC_bin_y(3)
--1 p_first_stage_INC_delta(3)
-<= 0
-
-c_u_p_second_stage(1)_INC_constraint3(1)_:
--1 p_second_stage(1)_INC_bin_y(1)
-+1 p_second_stage(1)_INC_delta(2)
-<= 0
-
-c_u_p_second_stage(1)_INC_constraint3(2)_:
--1 p_second_stage(1)_INC_bin_y(2)
-+1 p_second_stage(1)_INC_delta(3)
-<= 0
-
-c_u_p_second_stage(1)_INC_constraint3(3)_:
--1 p_second_stage(1)_INC_bin_y(3)
-+1 p_second_stage(1)_INC_delta(4)
-<= 0
-
-c_u_p_second_stage(1)_INC_constraint4(1)_:
-+1 p_second_stage(1)_INC_bin_y(1)
--1 p_second_stage(1)_INC_delta(1)
-<= 0
-
-c_u_p_second_stage(1)_INC_constraint4(2)_:
-+1 p_second_stage(1)_INC_bin_y(2)
--1 p_second_stage(1)_INC_delta(2)
-<= 0
-
-c_u_p_second_stage(1)_INC_constraint4(3)_:
-+1 p_second_stage(1)_INC_bin_y(3)
--1 p_second_stage(1)_INC_delta(3)
-<= 0
-
-r_l_r_second_stage_:
-+1 r
->= 0
-
-r_u_r_second_stage_:
-+1 r
-<= 0
-
-c_e_ONE_VAR_CONSTANT:
-ONE_VAR_CONSTANT = 1.0
-
-bounds
- 0 <= x <= 10
- -inf <= fx <= +inf
- -10 <= z <= 10
- -inf <= fz <= +inf
- -inf <= r <= +inf
- -inf <= p_first_stage_INC_delta(1) <= 1
- -inf <= p_first_stage_INC_delta(2) <= +inf
- -inf <= p_first_stage_INC_delta(3) <= +inf
- 0 <= p_first_stage_INC_delta(4) <= +inf
- 0 <= p_first_stage_INC_bin_y(1) <= 1
- 0 <= p_first_stage_INC_bin_y(2) <= 1
- 0 <= p_first_stage_INC_bin_y(3) <= 1
- -inf <= p_second_stage(1)_INC_delta(1) <= 1
- -inf <= p_second_stage(1)_INC_delta(2) <= +inf
- -inf <= p_second_stage(1)_INC_delta(3) <= +inf
- 0 <= p_second_stage(1)_INC_delta(4) <= +inf
- 0 <= p_second_stage(1)_INC_bin_y(1) <= 1
- 0 <= p_second_stage(1)_INC_bin_y(2) <= 1
- 0 <= p_second_stage(1)_INC_bin_y(3) <= 1
-binary
- p_first_stage_INC_bin_y(1)
- p_first_stage_INC_bin_y(2)
- p_first_stage_INC_bin_y(3)
- p_second_stage(1)_INC_bin_y(1)
- p_second_stage(1)_INC_bin_y(2)
- p_second_stage(1)_INC_bin_y(3)
-end
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_symbolic_names_baseline/scenario_files/piecewise.lp.Scenario2 b/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_symbolic_names_baseline/scenario_files/piecewise.lp.Scenario2
deleted file mode 100644
index 6174c24b760..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_symbolic_names_baseline/scenario_files/piecewise.lp.Scenario2
+++ /dev/null
@@ -1,148 +0,0 @@
-\* Source Pyomo model name=Scenario2 *\
-
-min
-o:
-+1 fx
--1 fz
-+1 r
--1 ONE_VAR_CONSTANT
-
-s.t.
-
-c_l_c_first_stage_:
-+1 x
->= 0
-
-c_e_p_first_stage_INC_constraint1_:
-+1 x
--2 p_first_stage_INC_delta(1)
--3 p_first_stage_INC_delta(2)
--2 p_first_stage_INC_delta(3)
--3 p_first_stage_INC_delta(4)
-= 0
-
-c_e_p_first_stage_INC_constraint2_:
-+1 fx
-+1 p_first_stage_INC_delta(2)
--1 p_first_stage_INC_delta(3)
-= 10
-
-c_e_p_second_stage(1)_INC_constraint1_:
--5 p_second_stage(1)_INC_delta(1)
--5 p_second_stage(1)_INC_delta(2)
--5 p_second_stage(1)_INC_delta(3)
--5 p_second_stage(1)_INC_delta(4)
-+1 z
-= -10
-
-c_e_p_second_stage(1)_INC_constraint2_:
-+1 fz
-+1 p_second_stage(1)_INC_delta(2)
--4 p_second_stage(1)_INC_delta(3)
-+2 p_second_stage(1)_INC_delta(4)
-= 0
-
-c_l_c_second_stage_:
-+1 x
-+1 r
->= -100
-
-c_u_p_first_stage_INC_constraint3(1)_:
--1 p_first_stage_INC_bin_y(1)
-+1 p_first_stage_INC_delta(2)
-<= 0
-
-c_u_p_first_stage_INC_constraint3(2)_:
--1 p_first_stage_INC_bin_y(2)
-+1 p_first_stage_INC_delta(3)
-<= 0
-
-c_u_p_first_stage_INC_constraint3(3)_:
--1 p_first_stage_INC_bin_y(3)
-+1 p_first_stage_INC_delta(4)
-<= 0
-
-c_u_p_first_stage_INC_constraint4(1)_:
-+1 p_first_stage_INC_bin_y(1)
--1 p_first_stage_INC_delta(1)
-<= 0
-
-c_u_p_first_stage_INC_constraint4(2)_:
-+1 p_first_stage_INC_bin_y(2)
--1 p_first_stage_INC_delta(2)
-<= 0
-
-c_u_p_first_stage_INC_constraint4(3)_:
-+1 p_first_stage_INC_bin_y(3)
--1 p_first_stage_INC_delta(3)
-<= 0
-
-c_u_p_second_stage(1)_INC_constraint3(1)_:
--1 p_second_stage(1)_INC_bin_y(1)
-+1 p_second_stage(1)_INC_delta(2)
-<= 0
-
-c_u_p_second_stage(1)_INC_constraint3(2)_:
--1 p_second_stage(1)_INC_bin_y(2)
-+1 p_second_stage(1)_INC_delta(3)
-<= 0
-
-c_u_p_second_stage(1)_INC_constraint3(3)_:
--1 p_second_stage(1)_INC_bin_y(3)
-+1 p_second_stage(1)_INC_delta(4)
-<= 0
-
-c_u_p_second_stage(1)_INC_constraint4(1)_:
-+1 p_second_stage(1)_INC_bin_y(1)
--1 p_second_stage(1)_INC_delta(1)
-<= 0
-
-c_u_p_second_stage(1)_INC_constraint4(2)_:
-+1 p_second_stage(1)_INC_bin_y(2)
--1 p_second_stage(1)_INC_delta(2)
-<= 0
-
-c_u_p_second_stage(1)_INC_constraint4(3)_:
-+1 p_second_stage(1)_INC_bin_y(3)
--1 p_second_stage(1)_INC_delta(3)
-<= 0
-
-r_l_r_second_stage_:
-+1 r
->= -1
-
-r_u_r_second_stage_:
-+1 r
-<= 0
-
-c_e_ONE_VAR_CONSTANT:
-ONE_VAR_CONSTANT = 1.0
-
-bounds
- 0 <= x <= 10
- -inf <= fx <= +inf
- -10 <= z <= 10
- -inf <= fz <= +inf
- -inf <= r <= +inf
- -inf <= p_first_stage_INC_delta(1) <= 1
- -inf <= p_first_stage_INC_delta(2) <= +inf
- -inf <= p_first_stage_INC_delta(3) <= +inf
- 0 <= p_first_stage_INC_delta(4) <= +inf
- 0 <= p_first_stage_INC_bin_y(1) <= 1
- 0 <= p_first_stage_INC_bin_y(2) <= 1
- 0 <= p_first_stage_INC_bin_y(3) <= 1
- -inf <= p_second_stage(1)_INC_delta(1) <= 1
- -inf <= p_second_stage(1)_INC_delta(2) <= +inf
- -inf <= p_second_stage(1)_INC_delta(3) <= +inf
- 0 <= p_second_stage(1)_INC_delta(4) <= +inf
- 0 <= p_second_stage(1)_INC_bin_y(1) <= 1
- 0 <= p_second_stage(1)_INC_bin_y(2) <= 1
- 0 <= p_second_stage(1)_INC_bin_y(3) <= 1
-binary
- p_first_stage_INC_bin_y(1)
- p_first_stage_INC_bin_y(2)
- p_first_stage_INC_bin_y(3)
- p_second_stage(1)_INC_bin_y(1)
- p_second_stage(1)_INC_bin_y(2)
- p_second_stage(1)_INC_bin_y(3)
-end
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_symbolic_names_baseline/scenario_files/piecewise.lp.Scenario3 b/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_symbolic_names_baseline/scenario_files/piecewise.lp.Scenario3
deleted file mode 100644
index 38989fa997d..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_symbolic_names_baseline/scenario_files/piecewise.lp.Scenario3
+++ /dev/null
@@ -1,148 +0,0 @@
-\* Source Pyomo model name=Scenario3 *\
-
-min
-o:
-+1 fx
--1 fz
-+1 r
--2 ONE_VAR_CONSTANT
-
-s.t.
-
-c_l_c_first_stage_:
-+1 x
->= 0
-
-c_e_p_first_stage_INC_constraint1_:
-+1 x
--2 p_first_stage_INC_delta(1)
--3 p_first_stage_INC_delta(2)
--2 p_first_stage_INC_delta(3)
--3 p_first_stage_INC_delta(4)
-= 0
-
-c_e_p_first_stage_INC_constraint2_:
-+1 fx
-+1 p_first_stage_INC_delta(2)
--1 p_first_stage_INC_delta(3)
-= 10
-
-c_e_p_second_stage(1)_INC_constraint1_:
--5 p_second_stage(1)_INC_delta(1)
--5 p_second_stage(1)_INC_delta(2)
--5 p_second_stage(1)_INC_delta(3)
--5 p_second_stage(1)_INC_delta(4)
-+1 z
-= -10
-
-c_e_p_second_stage(1)_INC_constraint2_:
-+1 fz
-+1 p_second_stage(1)_INC_delta(2)
--5 p_second_stage(1)_INC_delta(3)
-+3 p_second_stage(1)_INC_delta(4)
-= 0
-
-c_l_c_second_stage_:
-+1 x
-+2 r
->= -100
-
-c_u_p_first_stage_INC_constraint3(1)_:
--1 p_first_stage_INC_bin_y(1)
-+1 p_first_stage_INC_delta(2)
-<= 0
-
-c_u_p_first_stage_INC_constraint3(2)_:
--1 p_first_stage_INC_bin_y(2)
-+1 p_first_stage_INC_delta(3)
-<= 0
-
-c_u_p_first_stage_INC_constraint3(3)_:
--1 p_first_stage_INC_bin_y(3)
-+1 p_first_stage_INC_delta(4)
-<= 0
-
-c_u_p_first_stage_INC_constraint4(1)_:
-+1 p_first_stage_INC_bin_y(1)
--1 p_first_stage_INC_delta(1)
-<= 0
-
-c_u_p_first_stage_INC_constraint4(2)_:
-+1 p_first_stage_INC_bin_y(2)
--1 p_first_stage_INC_delta(2)
-<= 0
-
-c_u_p_first_stage_INC_constraint4(3)_:
-+1 p_first_stage_INC_bin_y(3)
--1 p_first_stage_INC_delta(3)
-<= 0
-
-c_u_p_second_stage(1)_INC_constraint3(1)_:
--1 p_second_stage(1)_INC_bin_y(1)
-+1 p_second_stage(1)_INC_delta(2)
-<= 0
-
-c_u_p_second_stage(1)_INC_constraint3(2)_:
--1 p_second_stage(1)_INC_bin_y(2)
-+1 p_second_stage(1)_INC_delta(3)
-<= 0
-
-c_u_p_second_stage(1)_INC_constraint3(3)_:
--1 p_second_stage(1)_INC_bin_y(3)
-+1 p_second_stage(1)_INC_delta(4)
-<= 0
-
-c_u_p_second_stage(1)_INC_constraint4(1)_:
-+1 p_second_stage(1)_INC_bin_y(1)
--1 p_second_stage(1)_INC_delta(1)
-<= 0
-
-c_u_p_second_stage(1)_INC_constraint4(2)_:
-+1 p_second_stage(1)_INC_bin_y(2)
--1 p_second_stage(1)_INC_delta(2)
-<= 0
-
-c_u_p_second_stage(1)_INC_constraint4(3)_:
-+1 p_second_stage(1)_INC_bin_y(3)
--1 p_second_stage(1)_INC_delta(3)
-<= 0
-
-r_l_r_second_stage_:
-+1 r
->= -2
-
-r_u_r_second_stage_:
-+1 r
-<= 0
-
-c_e_ONE_VAR_CONSTANT:
-ONE_VAR_CONSTANT = 1.0
-
-bounds
- 0 <= x <= 10
- -inf <= fx <= +inf
- -10 <= z <= 10
- -inf <= fz <= +inf
- -inf <= r <= +inf
- -inf <= p_first_stage_INC_delta(1) <= 1
- -inf <= p_first_stage_INC_delta(2) <= +inf
- -inf <= p_first_stage_INC_delta(3) <= +inf
- 0 <= p_first_stage_INC_delta(4) <= +inf
- 0 <= p_first_stage_INC_bin_y(1) <= 1
- 0 <= p_first_stage_INC_bin_y(2) <= 1
- 0 <= p_first_stage_INC_bin_y(3) <= 1
- -inf <= p_second_stage(1)_INC_delta(1) <= 1
- -inf <= p_second_stage(1)_INC_delta(2) <= +inf
- -inf <= p_second_stage(1)_INC_delta(3) <= +inf
- 0 <= p_second_stage(1)_INC_delta(4) <= +inf
- 0 <= p_second_stage(1)_INC_bin_y(1) <= 1
- 0 <= p_second_stage(1)_INC_bin_y(2) <= 1
- 0 <= p_second_stage(1)_INC_bin_y(3) <= 1
-binary
- p_first_stage_INC_bin_y(1)
- p_first_stage_INC_bin_y(2)
- p_first_stage_INC_bin_y(3)
- p_second_stage(1)_INC_bin_y(1)
- p_second_stage(1)_INC_bin_y(2)
- p_second_stage(1)_INC_bin_y(3)
-end
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_symbolic_names_baseline/scenario_files/piecewise.lp.det.Scenario1 b/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_symbolic_names_baseline/scenario_files/piecewise.lp.det.Scenario1
deleted file mode 100644
index 2d690b929f6..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_symbolic_names_baseline/scenario_files/piecewise.lp.det.Scenario1
+++ /dev/null
@@ -1,148 +0,0 @@
-\* Source Pyomo model name=ZeroStochasticData *\
-
-min
-o:
--9876543210 fx
--9876543210 fz
--9876543210 r
-+0 ONE_VAR_CONSTANT
-
-s.t.
-
-c_l_c_first_stage_:
-+1 x
->= 0
-
-c_e_p_first_stage_INC_constraint1_:
-+1 x
--2 p_first_stage_INC_delta(1)
--3 p_first_stage_INC_delta(2)
--2 p_first_stage_INC_delta(3)
--3 p_first_stage_INC_delta(4)
-= 0
-
-c_e_p_first_stage_INC_constraint2_:
-+1 fx
-+1 p_first_stage_INC_delta(2)
--1 p_first_stage_INC_delta(3)
-= 10
-
-c_e_p_second_stage(1)_INC_constraint1_:
--9876543210 p_second_stage(1)_INC_delta(1)
--9876543210 p_second_stage(1)_INC_delta(2)
--9876543210 p_second_stage(1)_INC_delta(3)
--9876543210 p_second_stage(1)_INC_delta(4)
--9876543210 z
-= -9876543210
-
-c_e_p_second_stage(1)_INC_constraint2_:
--9876543210 fz
--9876543210 p_second_stage(1)_INC_delta(2)
--9876543210 p_second_stage(1)_INC_delta(3)
--9876543210 p_second_stage(1)_INC_delta(4)
-= -9876543210
-
-c_l_c_second_stage_:
-+1 x
--9876543210 r
->= -100
-
-c_u_p_first_stage_INC_constraint3(1)_:
--1 p_first_stage_INC_bin_y(1)
-+1 p_first_stage_INC_delta(2)
-<= 0
-
-c_u_p_first_stage_INC_constraint3(2)_:
--1 p_first_stage_INC_bin_y(2)
-+1 p_first_stage_INC_delta(3)
-<= 0
-
-c_u_p_first_stage_INC_constraint3(3)_:
--1 p_first_stage_INC_bin_y(3)
-+1 p_first_stage_INC_delta(4)
-<= 0
-
-c_u_p_first_stage_INC_constraint4(1)_:
-+1 p_first_stage_INC_bin_y(1)
--1 p_first_stage_INC_delta(1)
-<= 0
-
-c_u_p_first_stage_INC_constraint4(2)_:
-+1 p_first_stage_INC_bin_y(2)
--1 p_first_stage_INC_delta(2)
-<= 0
-
-c_u_p_first_stage_INC_constraint4(3)_:
-+1 p_first_stage_INC_bin_y(3)
--1 p_first_stage_INC_delta(3)
-<= 0
-
-c_u_p_second_stage(1)_INC_constraint3(1)_:
--9876543210 p_second_stage(1)_INC_bin_y(1)
--9876543210 p_second_stage(1)_INC_delta(2)
-<= -9876543210
-
-c_u_p_second_stage(1)_INC_constraint3(2)_:
--9876543210 p_second_stage(1)_INC_bin_y(2)
--9876543210 p_second_stage(1)_INC_delta(3)
-<= -9876543210
-
-c_u_p_second_stage(1)_INC_constraint3(3)_:
--9876543210 p_second_stage(1)_INC_bin_y(3)
--9876543210 p_second_stage(1)_INC_delta(4)
-<= -9876543210
-
-c_u_p_second_stage(1)_INC_constraint4(1)_:
--9876543210 p_second_stage(1)_INC_bin_y(1)
--9876543210 p_second_stage(1)_INC_delta(1)
-<= -9876543210
-
-c_u_p_second_stage(1)_INC_constraint4(2)_:
--9876543210 p_second_stage(1)_INC_bin_y(2)
--9876543210 p_second_stage(1)_INC_delta(2)
-<= -9876543210
-
-c_u_p_second_stage(1)_INC_constraint4(3)_:
--9876543210 p_second_stage(1)_INC_bin_y(3)
--9876543210 p_second_stage(1)_INC_delta(3)
-<= -9876543210
-
-r_l_r_second_stage_:
-+1 r
->= -9876543210
-
-r_u_r_second_stage_:
-+1 r
-<= -9876543210
-
-c_e_ONE_VAR_CONSTANT:
-ONE_VAR_CONSTANT = 1.0
-
-bounds
- 0 <= x <= 10
- -inf <= fx <= +inf
- -10 <= z <= 10
- -inf <= fz <= +inf
- -inf <= r <= +inf
- -inf <= p_first_stage_INC_delta(1) <= 1
- -inf <= p_first_stage_INC_delta(2) <= +inf
- -inf <= p_first_stage_INC_delta(3) <= +inf
- 0 <= p_first_stage_INC_delta(4) <= +inf
- 0 <= p_first_stage_INC_bin_y(1) <= 1
- 0 <= p_first_stage_INC_bin_y(2) <= 1
- 0 <= p_first_stage_INC_bin_y(3) <= 1
- -inf <= p_second_stage(1)_INC_delta(1) <= 1
- -inf <= p_second_stage(1)_INC_delta(2) <= +inf
- -inf <= p_second_stage(1)_INC_delta(3) <= +inf
- 0 <= p_second_stage(1)_INC_delta(4) <= +inf
- 0 <= p_second_stage(1)_INC_bin_y(1) <= 1
- 0 <= p_second_stage(1)_INC_bin_y(2) <= 1
- 0 <= p_second_stage(1)_INC_bin_y(3) <= 1
-binary
- p_first_stage_INC_bin_y(1)
- p_first_stage_INC_bin_y(2)
- p_first_stage_INC_bin_y(3)
- p_second_stage(1)_INC_bin_y(1)
- p_second_stage(1)_INC_bin_y(2)
- p_second_stage(1)_INC_bin_y(3)
-end
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_symbolic_names_baseline/scenario_files/piecewise.lp.det.Scenario2 b/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_symbolic_names_baseline/scenario_files/piecewise.lp.det.Scenario2
deleted file mode 100644
index 2d690b929f6..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_symbolic_names_baseline/scenario_files/piecewise.lp.det.Scenario2
+++ /dev/null
@@ -1,148 +0,0 @@
-\* Source Pyomo model name=ZeroStochasticData *\
-
-min
-o:
--9876543210 fx
--9876543210 fz
--9876543210 r
-+0 ONE_VAR_CONSTANT
-
-s.t.
-
-c_l_c_first_stage_:
-+1 x
->= 0
-
-c_e_p_first_stage_INC_constraint1_:
-+1 x
--2 p_first_stage_INC_delta(1)
--3 p_first_stage_INC_delta(2)
--2 p_first_stage_INC_delta(3)
--3 p_first_stage_INC_delta(4)
-= 0
-
-c_e_p_first_stage_INC_constraint2_:
-+1 fx
-+1 p_first_stage_INC_delta(2)
--1 p_first_stage_INC_delta(3)
-= 10
-
-c_e_p_second_stage(1)_INC_constraint1_:
--9876543210 p_second_stage(1)_INC_delta(1)
--9876543210 p_second_stage(1)_INC_delta(2)
--9876543210 p_second_stage(1)_INC_delta(3)
--9876543210 p_second_stage(1)_INC_delta(4)
--9876543210 z
-= -9876543210
-
-c_e_p_second_stage(1)_INC_constraint2_:
--9876543210 fz
--9876543210 p_second_stage(1)_INC_delta(2)
--9876543210 p_second_stage(1)_INC_delta(3)
--9876543210 p_second_stage(1)_INC_delta(4)
-= -9876543210
-
-c_l_c_second_stage_:
-+1 x
--9876543210 r
->= -100
-
-c_u_p_first_stage_INC_constraint3(1)_:
--1 p_first_stage_INC_bin_y(1)
-+1 p_first_stage_INC_delta(2)
-<= 0
-
-c_u_p_first_stage_INC_constraint3(2)_:
--1 p_first_stage_INC_bin_y(2)
-+1 p_first_stage_INC_delta(3)
-<= 0
-
-c_u_p_first_stage_INC_constraint3(3)_:
--1 p_first_stage_INC_bin_y(3)
-+1 p_first_stage_INC_delta(4)
-<= 0
-
-c_u_p_first_stage_INC_constraint4(1)_:
-+1 p_first_stage_INC_bin_y(1)
--1 p_first_stage_INC_delta(1)
-<= 0
-
-c_u_p_first_stage_INC_constraint4(2)_:
-+1 p_first_stage_INC_bin_y(2)
--1 p_first_stage_INC_delta(2)
-<= 0
-
-c_u_p_first_stage_INC_constraint4(3)_:
-+1 p_first_stage_INC_bin_y(3)
--1 p_first_stage_INC_delta(3)
-<= 0
-
-c_u_p_second_stage(1)_INC_constraint3(1)_:
--9876543210 p_second_stage(1)_INC_bin_y(1)
--9876543210 p_second_stage(1)_INC_delta(2)
-<= -9876543210
-
-c_u_p_second_stage(1)_INC_constraint3(2)_:
--9876543210 p_second_stage(1)_INC_bin_y(2)
--9876543210 p_second_stage(1)_INC_delta(3)
-<= -9876543210
-
-c_u_p_second_stage(1)_INC_constraint3(3)_:
--9876543210 p_second_stage(1)_INC_bin_y(3)
--9876543210 p_second_stage(1)_INC_delta(4)
-<= -9876543210
-
-c_u_p_second_stage(1)_INC_constraint4(1)_:
--9876543210 p_second_stage(1)_INC_bin_y(1)
--9876543210 p_second_stage(1)_INC_delta(1)
-<= -9876543210
-
-c_u_p_second_stage(1)_INC_constraint4(2)_:
--9876543210 p_second_stage(1)_INC_bin_y(2)
--9876543210 p_second_stage(1)_INC_delta(2)
-<= -9876543210
-
-c_u_p_second_stage(1)_INC_constraint4(3)_:
--9876543210 p_second_stage(1)_INC_bin_y(3)
--9876543210 p_second_stage(1)_INC_delta(3)
-<= -9876543210
-
-r_l_r_second_stage_:
-+1 r
->= -9876543210
-
-r_u_r_second_stage_:
-+1 r
-<= -9876543210
-
-c_e_ONE_VAR_CONSTANT:
-ONE_VAR_CONSTANT = 1.0
-
-bounds
- 0 <= x <= 10
- -inf <= fx <= +inf
- -10 <= z <= 10
- -inf <= fz <= +inf
- -inf <= r <= +inf
- -inf <= p_first_stage_INC_delta(1) <= 1
- -inf <= p_first_stage_INC_delta(2) <= +inf
- -inf <= p_first_stage_INC_delta(3) <= +inf
- 0 <= p_first_stage_INC_delta(4) <= +inf
- 0 <= p_first_stage_INC_bin_y(1) <= 1
- 0 <= p_first_stage_INC_bin_y(2) <= 1
- 0 <= p_first_stage_INC_bin_y(3) <= 1
- -inf <= p_second_stage(1)_INC_delta(1) <= 1
- -inf <= p_second_stage(1)_INC_delta(2) <= +inf
- -inf <= p_second_stage(1)_INC_delta(3) <= +inf
- 0 <= p_second_stage(1)_INC_delta(4) <= +inf
- 0 <= p_second_stage(1)_INC_bin_y(1) <= 1
- 0 <= p_second_stage(1)_INC_bin_y(2) <= 1
- 0 <= p_second_stage(1)_INC_bin_y(3) <= 1
-binary
- p_first_stage_INC_bin_y(1)
- p_first_stage_INC_bin_y(2)
- p_first_stage_INC_bin_y(3)
- p_second_stage(1)_INC_bin_y(1)
- p_second_stage(1)_INC_bin_y(2)
- p_second_stage(1)_INC_bin_y(3)
-end
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_symbolic_names_baseline/scenario_files/piecewise.lp.det.Scenario3 b/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_symbolic_names_baseline/scenario_files/piecewise.lp.det.Scenario3
deleted file mode 100644
index 2d690b929f6..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_symbolic_names_baseline/scenario_files/piecewise.lp.det.Scenario3
+++ /dev/null
@@ -1,148 +0,0 @@
-\* Source Pyomo model name=ZeroStochasticData *\
-
-min
-o:
--9876543210 fx
--9876543210 fz
--9876543210 r
-+0 ONE_VAR_CONSTANT
-
-s.t.
-
-c_l_c_first_stage_:
-+1 x
->= 0
-
-c_e_p_first_stage_INC_constraint1_:
-+1 x
--2 p_first_stage_INC_delta(1)
--3 p_first_stage_INC_delta(2)
--2 p_first_stage_INC_delta(3)
--3 p_first_stage_INC_delta(4)
-= 0
-
-c_e_p_first_stage_INC_constraint2_:
-+1 fx
-+1 p_first_stage_INC_delta(2)
--1 p_first_stage_INC_delta(3)
-= 10
-
-c_e_p_second_stage(1)_INC_constraint1_:
--9876543210 p_second_stage(1)_INC_delta(1)
--9876543210 p_second_stage(1)_INC_delta(2)
--9876543210 p_second_stage(1)_INC_delta(3)
--9876543210 p_second_stage(1)_INC_delta(4)
--9876543210 z
-= -9876543210
-
-c_e_p_second_stage(1)_INC_constraint2_:
--9876543210 fz
--9876543210 p_second_stage(1)_INC_delta(2)
--9876543210 p_second_stage(1)_INC_delta(3)
--9876543210 p_second_stage(1)_INC_delta(4)
-= -9876543210
-
-c_l_c_second_stage_:
-+1 x
--9876543210 r
->= -100
-
-c_u_p_first_stage_INC_constraint3(1)_:
--1 p_first_stage_INC_bin_y(1)
-+1 p_first_stage_INC_delta(2)
-<= 0
-
-c_u_p_first_stage_INC_constraint3(2)_:
--1 p_first_stage_INC_bin_y(2)
-+1 p_first_stage_INC_delta(3)
-<= 0
-
-c_u_p_first_stage_INC_constraint3(3)_:
--1 p_first_stage_INC_bin_y(3)
-+1 p_first_stage_INC_delta(4)
-<= 0
-
-c_u_p_first_stage_INC_constraint4(1)_:
-+1 p_first_stage_INC_bin_y(1)
--1 p_first_stage_INC_delta(1)
-<= 0
-
-c_u_p_first_stage_INC_constraint4(2)_:
-+1 p_first_stage_INC_bin_y(2)
--1 p_first_stage_INC_delta(2)
-<= 0
-
-c_u_p_first_stage_INC_constraint4(3)_:
-+1 p_first_stage_INC_bin_y(3)
--1 p_first_stage_INC_delta(3)
-<= 0
-
-c_u_p_second_stage(1)_INC_constraint3(1)_:
--9876543210 p_second_stage(1)_INC_bin_y(1)
--9876543210 p_second_stage(1)_INC_delta(2)
-<= -9876543210
-
-c_u_p_second_stage(1)_INC_constraint3(2)_:
--9876543210 p_second_stage(1)_INC_bin_y(2)
--9876543210 p_second_stage(1)_INC_delta(3)
-<= -9876543210
-
-c_u_p_second_stage(1)_INC_constraint3(3)_:
--9876543210 p_second_stage(1)_INC_bin_y(3)
--9876543210 p_second_stage(1)_INC_delta(4)
-<= -9876543210
-
-c_u_p_second_stage(1)_INC_constraint4(1)_:
--9876543210 p_second_stage(1)_INC_bin_y(1)
--9876543210 p_second_stage(1)_INC_delta(1)
-<= -9876543210
-
-c_u_p_second_stage(1)_INC_constraint4(2)_:
--9876543210 p_second_stage(1)_INC_bin_y(2)
--9876543210 p_second_stage(1)_INC_delta(2)
-<= -9876543210
-
-c_u_p_second_stage(1)_INC_constraint4(3)_:
--9876543210 p_second_stage(1)_INC_bin_y(3)
--9876543210 p_second_stage(1)_INC_delta(3)
-<= -9876543210
-
-r_l_r_second_stage_:
-+1 r
->= -9876543210
-
-r_u_r_second_stage_:
-+1 r
-<= -9876543210
-
-c_e_ONE_VAR_CONSTANT:
-ONE_VAR_CONSTANT = 1.0
-
-bounds
- 0 <= x <= 10
- -inf <= fx <= +inf
- -10 <= z <= 10
- -inf <= fz <= +inf
- -inf <= r <= +inf
- -inf <= p_first_stage_INC_delta(1) <= 1
- -inf <= p_first_stage_INC_delta(2) <= +inf
- -inf <= p_first_stage_INC_delta(3) <= +inf
- 0 <= p_first_stage_INC_delta(4) <= +inf
- 0 <= p_first_stage_INC_bin_y(1) <= 1
- 0 <= p_first_stage_INC_bin_y(2) <= 1
- 0 <= p_first_stage_INC_bin_y(3) <= 1
- -inf <= p_second_stage(1)_INC_delta(1) <= 1
- -inf <= p_second_stage(1)_INC_delta(2) <= +inf
- -inf <= p_second_stage(1)_INC_delta(3) <= +inf
- 0 <= p_second_stage(1)_INC_delta(4) <= +inf
- 0 <= p_second_stage(1)_INC_bin_y(1) <= 1
- 0 <= p_second_stage(1)_INC_bin_y(2) <= 1
- 0 <= p_second_stage(1)_INC_bin_y(3) <= 1
-binary
- p_first_stage_INC_bin_y(1)
- p_first_stage_INC_bin_y(2)
- p_first_stage_INC_bin_y(3)
- p_second_stage(1)_INC_bin_y(1)
- p_second_stage(1)_INC_bin_y(2)
- p_second_stage(1)_INC_bin_y(3)
-end
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_symbolic_names_baseline/scenario_files/piecewise.lp.symbols.Scenario1 b/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_symbolic_names_baseline/scenario_files/piecewise.lp.symbols.Scenario1
deleted file mode 100644
index 3ea722dd807..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_symbolic_names_baseline/scenario_files/piecewise.lp.symbols.Scenario1
+++ /dev/null
@@ -1,9 +0,0 @@
-fx fx
-p_first_stage_INC_bin_y(1) p_first_stage.INC_bin_y:#1
-p_first_stage_INC_bin_y(2) p_first_stage.INC_bin_y:#2
-p_first_stage_INC_bin_y(3) p_first_stage.INC_bin_y:#3
-p_first_stage_INC_delta(1) p_first_stage.INC_delta:#1
-p_first_stage_INC_delta(2) p_first_stage.INC_delta:#2
-p_first_stage_INC_delta(3) p_first_stage.INC_delta:#3
-p_first_stage_INC_delta(4) p_first_stage.INC_delta:#4
-x x
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_symbolic_names_baseline/scenario_files/piecewise.lp.symbols.Scenario2 b/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_symbolic_names_baseline/scenario_files/piecewise.lp.symbols.Scenario2
deleted file mode 100644
index 3ea722dd807..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_symbolic_names_baseline/scenario_files/piecewise.lp.symbols.Scenario2
+++ /dev/null
@@ -1,9 +0,0 @@
-fx fx
-p_first_stage_INC_bin_y(1) p_first_stage.INC_bin_y:#1
-p_first_stage_INC_bin_y(2) p_first_stage.INC_bin_y:#2
-p_first_stage_INC_bin_y(3) p_first_stage.INC_bin_y:#3
-p_first_stage_INC_delta(1) p_first_stage.INC_delta:#1
-p_first_stage_INC_delta(2) p_first_stage.INC_delta:#2
-p_first_stage_INC_delta(3) p_first_stage.INC_delta:#3
-p_first_stage_INC_delta(4) p_first_stage.INC_delta:#4
-x x
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_symbolic_names_baseline/scenario_files/piecewise.lp.symbols.Scenario3 b/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_symbolic_names_baseline/scenario_files/piecewise.lp.symbols.Scenario3
deleted file mode 100644
index 3ea722dd807..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_symbolic_names_baseline/scenario_files/piecewise.lp.symbols.Scenario3
+++ /dev/null
@@ -1,9 +0,0 @@
-fx fx
-p_first_stage_INC_bin_y(1) p_first_stage.INC_bin_y:#1
-p_first_stage_INC_bin_y(2) p_first_stage.INC_bin_y:#2
-p_first_stage_INC_bin_y(3) p_first_stage.INC_bin_y:#3
-p_first_stage_INC_delta(1) p_first_stage.INC_delta:#1
-p_first_stage_INC_delta(2) p_first_stage.INC_delta:#2
-p_first_stage_INC_delta(3) p_first_stage.INC_delta:#3
-p_first_stage_INC_delta(4) p_first_stage.INC_delta:#4
-x x
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_symbolic_names_baseline/scenario_files/piecewise.row.Scenario1 b/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_symbolic_names_baseline/scenario_files/piecewise.row.Scenario1
deleted file mode 100644
index 7722adaec3a..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_symbolic_names_baseline/scenario_files/piecewise.row.Scenario1
+++ /dev/null
@@ -1,22 +0,0 @@
-o
-c_l_c_first_stage_
-c_e_p_first_stage_INC_constraint1_
-c_e_p_first_stage_INC_constraint2_
-c_e_p_second_stage(1)_INC_constraint1_
-c_e_p_second_stage(1)_INC_constraint2_
-c_l_c_second_stage_
-c_u_p_first_stage_INC_constraint3(1)_
-c_u_p_first_stage_INC_constraint3(2)_
-c_u_p_first_stage_INC_constraint3(3)_
-c_u_p_first_stage_INC_constraint4(1)_
-c_u_p_first_stage_INC_constraint4(2)_
-c_u_p_first_stage_INC_constraint4(3)_
-c_u_p_second_stage(1)_INC_constraint3(1)_
-c_u_p_second_stage(1)_INC_constraint3(2)_
-c_u_p_second_stage(1)_INC_constraint3(3)_
-c_u_p_second_stage(1)_INC_constraint4(1)_
-c_u_p_second_stage(1)_INC_constraint4(2)_
-c_u_p_second_stage(1)_INC_constraint4(3)_
-r_l_r_second_stage_
-r_u_r_second_stage_
-c_e_ONE_VAR_CONSTANT
\ No newline at end of file
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_symbolic_names_baseline/scenario_files/piecewise.row.Scenario2 b/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_symbolic_names_baseline/scenario_files/piecewise.row.Scenario2
deleted file mode 100644
index 7722adaec3a..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_symbolic_names_baseline/scenario_files/piecewise.row.Scenario2
+++ /dev/null
@@ -1,22 +0,0 @@
-o
-c_l_c_first_stage_
-c_e_p_first_stage_INC_constraint1_
-c_e_p_first_stage_INC_constraint2_
-c_e_p_second_stage(1)_INC_constraint1_
-c_e_p_second_stage(1)_INC_constraint2_
-c_l_c_second_stage_
-c_u_p_first_stage_INC_constraint3(1)_
-c_u_p_first_stage_INC_constraint3(2)_
-c_u_p_first_stage_INC_constraint3(3)_
-c_u_p_first_stage_INC_constraint4(1)_
-c_u_p_first_stage_INC_constraint4(2)_
-c_u_p_first_stage_INC_constraint4(3)_
-c_u_p_second_stage(1)_INC_constraint3(1)_
-c_u_p_second_stage(1)_INC_constraint3(2)_
-c_u_p_second_stage(1)_INC_constraint3(3)_
-c_u_p_second_stage(1)_INC_constraint4(1)_
-c_u_p_second_stage(1)_INC_constraint4(2)_
-c_u_p_second_stage(1)_INC_constraint4(3)_
-r_l_r_second_stage_
-r_u_r_second_stage_
-c_e_ONE_VAR_CONSTANT
\ No newline at end of file
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_symbolic_names_baseline/scenario_files/piecewise.row.Scenario3 b/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_symbolic_names_baseline/scenario_files/piecewise.row.Scenario3
deleted file mode 100644
index 7722adaec3a..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_symbolic_names_baseline/scenario_files/piecewise.row.Scenario3
+++ /dev/null
@@ -1,22 +0,0 @@
-o
-c_l_c_first_stage_
-c_e_p_first_stage_INC_constraint1_
-c_e_p_first_stage_INC_constraint2_
-c_e_p_second_stage(1)_INC_constraint1_
-c_e_p_second_stage(1)_INC_constraint2_
-c_l_c_second_stage_
-c_u_p_first_stage_INC_constraint3(1)_
-c_u_p_first_stage_INC_constraint3(2)_
-c_u_p_first_stage_INC_constraint3(3)_
-c_u_p_first_stage_INC_constraint4(1)_
-c_u_p_first_stage_INC_constraint4(2)_
-c_u_p_first_stage_INC_constraint4(3)_
-c_u_p_second_stage(1)_INC_constraint3(1)_
-c_u_p_second_stage(1)_INC_constraint3(2)_
-c_u_p_second_stage(1)_INC_constraint3(3)_
-c_u_p_second_stage(1)_INC_constraint4(1)_
-c_u_p_second_stage(1)_INC_constraint4(2)_
-c_u_p_second_stage(1)_INC_constraint4(3)_
-r_l_r_second_stage_
-r_u_r_second_stage_
-c_e_ONE_VAR_CONSTANT
\ No newline at end of file
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_symbolic_names_baseline/scenario_files/piecewise.setup.lp.Scenario1 b/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_symbolic_names_baseline/scenario_files/piecewise.setup.lp.Scenario1
deleted file mode 100644
index 92aae935348..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_symbolic_names_baseline/scenario_files/piecewise.setup.lp.Scenario1
+++ /dev/null
@@ -1,147 +0,0 @@
-\* Source Pyomo model name=Scenario1 *\
-
-min
-o:
-+1 fx
--1 fz
-+1 r
-
-s.t.
-
-c_l_c_first_stage_:
-+1 x
->= 0
-
-c_l_c_second_stage_:
-+0 r
-+1 x
->= -100
-
-r_l_r_second_stage_:
-+1 r
->= 0
-
-r_u_r_second_stage_:
-+1 r
-<= 0
-
-c_e_p_first_stage_INC_constraint1_:
--2 p_first_stage_INC_delta(1)
--3 p_first_stage_INC_delta(2)
--2 p_first_stage_INC_delta(3)
--3 p_first_stage_INC_delta(4)
-+1 x
-= 0
-
-c_e_p_first_stage_INC_constraint2_:
-+1 fx
-+1 p_first_stage_INC_delta(2)
--1 p_first_stage_INC_delta(3)
-= 10
-
-c_u_p_first_stage_INC_constraint3(1)_:
--1 p_first_stage_INC_bin_y(1)
-+1 p_first_stage_INC_delta(2)
-<= 0
-
-c_u_p_first_stage_INC_constraint3(2)_:
--1 p_first_stage_INC_bin_y(2)
-+1 p_first_stage_INC_delta(3)
-<= 0
-
-c_u_p_first_stage_INC_constraint3(3)_:
--1 p_first_stage_INC_bin_y(3)
-+1 p_first_stage_INC_delta(4)
-<= 0
-
-c_u_p_first_stage_INC_constraint4(1)_:
-+1 p_first_stage_INC_bin_y(1)
--1 p_first_stage_INC_delta(1)
-<= 0
-
-c_u_p_first_stage_INC_constraint4(2)_:
-+1 p_first_stage_INC_bin_y(2)
--1 p_first_stage_INC_delta(2)
-<= 0
-
-c_u_p_first_stage_INC_constraint4(3)_:
-+1 p_first_stage_INC_bin_y(3)
--1 p_first_stage_INC_delta(3)
-<= 0
-
-c_e_p_second_stage(1)_INC_constraint1_:
--5 p_second_stage(1)_INC_delta(1)
--5 p_second_stage(1)_INC_delta(2)
--5 p_second_stage(1)_INC_delta(3)
--5 p_second_stage(1)_INC_delta(4)
-+1 z
-= -10
-
-c_e_p_second_stage(1)_INC_constraint2_:
-+1 fz
-+1 p_second_stage(1)_INC_delta(2)
--3 p_second_stage(1)_INC_delta(3)
-+1 p_second_stage(1)_INC_delta(4)
-= 0
-
-c_u_p_second_stage(1)_INC_constraint3(1)_:
--1 p_second_stage(1)_INC_bin_y(1)
-+1 p_second_stage(1)_INC_delta(2)
-<= 0
-
-c_u_p_second_stage(1)_INC_constraint3(2)_:
--1 p_second_stage(1)_INC_bin_y(2)
-+1 p_second_stage(1)_INC_delta(3)
-<= 0
-
-c_u_p_second_stage(1)_INC_constraint3(3)_:
--1 p_second_stage(1)_INC_bin_y(3)
-+1 p_second_stage(1)_INC_delta(4)
-<= 0
-
-c_u_p_second_stage(1)_INC_constraint4(1)_:
-+1 p_second_stage(1)_INC_bin_y(1)
--1 p_second_stage(1)_INC_delta(1)
-<= 0
-
-c_u_p_second_stage(1)_INC_constraint4(2)_:
-+1 p_second_stage(1)_INC_bin_y(2)
--1 p_second_stage(1)_INC_delta(2)
-<= 0
-
-c_u_p_second_stage(1)_INC_constraint4(3)_:
-+1 p_second_stage(1)_INC_bin_y(3)
--1 p_second_stage(1)_INC_delta(3)
-<= 0
-
-c_e_ONE_VAR_CONSTANT:
-ONE_VAR_CONSTANT = 1.0
-
-bounds
- 0 <= x <= 10
- -inf <= fx <= +inf
- -10 <= z <= 10
- -inf <= fz <= +inf
- -inf <= r <= +inf
- -inf <= p_first_stage_INC_delta(1) <= 1
- -inf <= p_first_stage_INC_delta(2) <= +inf
- -inf <= p_first_stage_INC_delta(3) <= +inf
- 0 <= p_first_stage_INC_delta(4) <= +inf
- 0 <= p_first_stage_INC_bin_y(1) <= 1
- 0 <= p_first_stage_INC_bin_y(2) <= 1
- 0 <= p_first_stage_INC_bin_y(3) <= 1
- -inf <= p_second_stage(1)_INC_delta(1) <= 1
- -inf <= p_second_stage(1)_INC_delta(2) <= +inf
- -inf <= p_second_stage(1)_INC_delta(3) <= +inf
- 0 <= p_second_stage(1)_INC_delta(4) <= +inf
- 0 <= p_second_stage(1)_INC_bin_y(1) <= 1
- 0 <= p_second_stage(1)_INC_bin_y(2) <= 1
- 0 <= p_second_stage(1)_INC_bin_y(3) <= 1
-binary
- p_first_stage_INC_bin_y(1)
- p_first_stage_INC_bin_y(2)
- p_first_stage_INC_bin_y(3)
- p_second_stage(1)_INC_bin_y(1)
- p_second_stage(1)_INC_bin_y(2)
- p_second_stage(1)_INC_bin_y(3)
-end
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_symbolic_names_baseline/scenario_files/piecewise.setup.lp.Scenario2 b/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_symbolic_names_baseline/scenario_files/piecewise.setup.lp.Scenario2
deleted file mode 100644
index 6e56cb45728..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_symbolic_names_baseline/scenario_files/piecewise.setup.lp.Scenario2
+++ /dev/null
@@ -1,148 +0,0 @@
-\* Source Pyomo model name=Scenario2 *\
-
-min
-o:
-+1 fx
--1 fz
-+1 r
--1 ONE_VAR_CONSTANT
-
-s.t.
-
-c_l_c_first_stage_:
-+1 x
->= 0
-
-c_l_c_second_stage_:
-+1 r
-+1 x
->= -100
-
-r_l_r_second_stage_:
-+1 r
->= -1
-
-r_u_r_second_stage_:
-+1 r
-<= 0
-
-c_e_p_first_stage_INC_constraint1_:
--2 p_first_stage_INC_delta(1)
--3 p_first_stage_INC_delta(2)
--2 p_first_stage_INC_delta(3)
--3 p_first_stage_INC_delta(4)
-+1 x
-= 0
-
-c_e_p_first_stage_INC_constraint2_:
-+1 fx
-+1 p_first_stage_INC_delta(2)
--1 p_first_stage_INC_delta(3)
-= 10
-
-c_u_p_first_stage_INC_constraint3(1)_:
--1 p_first_stage_INC_bin_y(1)
-+1 p_first_stage_INC_delta(2)
-<= 0
-
-c_u_p_first_stage_INC_constraint3(2)_:
--1 p_first_stage_INC_bin_y(2)
-+1 p_first_stage_INC_delta(3)
-<= 0
-
-c_u_p_first_stage_INC_constraint3(3)_:
--1 p_first_stage_INC_bin_y(3)
-+1 p_first_stage_INC_delta(4)
-<= 0
-
-c_u_p_first_stage_INC_constraint4(1)_:
-+1 p_first_stage_INC_bin_y(1)
--1 p_first_stage_INC_delta(1)
-<= 0
-
-c_u_p_first_stage_INC_constraint4(2)_:
-+1 p_first_stage_INC_bin_y(2)
--1 p_first_stage_INC_delta(2)
-<= 0
-
-c_u_p_first_stage_INC_constraint4(3)_:
-+1 p_first_stage_INC_bin_y(3)
--1 p_first_stage_INC_delta(3)
-<= 0
-
-c_e_p_second_stage(1)_INC_constraint1_:
--5 p_second_stage(1)_INC_delta(1)
--5 p_second_stage(1)_INC_delta(2)
--5 p_second_stage(1)_INC_delta(3)
--5 p_second_stage(1)_INC_delta(4)
-+1 z
-= -10
-
-c_e_p_second_stage(1)_INC_constraint2_:
-+1 fz
-+1 p_second_stage(1)_INC_delta(2)
--4 p_second_stage(1)_INC_delta(3)
-+2 p_second_stage(1)_INC_delta(4)
-= 0
-
-c_u_p_second_stage(1)_INC_constraint3(1)_:
--1 p_second_stage(1)_INC_bin_y(1)
-+1 p_second_stage(1)_INC_delta(2)
-<= 0
-
-c_u_p_second_stage(1)_INC_constraint3(2)_:
--1 p_second_stage(1)_INC_bin_y(2)
-+1 p_second_stage(1)_INC_delta(3)
-<= 0
-
-c_u_p_second_stage(1)_INC_constraint3(3)_:
--1 p_second_stage(1)_INC_bin_y(3)
-+1 p_second_stage(1)_INC_delta(4)
-<= 0
-
-c_u_p_second_stage(1)_INC_constraint4(1)_:
-+1 p_second_stage(1)_INC_bin_y(1)
--1 p_second_stage(1)_INC_delta(1)
-<= 0
-
-c_u_p_second_stage(1)_INC_constraint4(2)_:
-+1 p_second_stage(1)_INC_bin_y(2)
--1 p_second_stage(1)_INC_delta(2)
-<= 0
-
-c_u_p_second_stage(1)_INC_constraint4(3)_:
-+1 p_second_stage(1)_INC_bin_y(3)
--1 p_second_stage(1)_INC_delta(3)
-<= 0
-
-c_e_ONE_VAR_CONSTANT:
-ONE_VAR_CONSTANT = 1.0
-
-bounds
- 0 <= x <= 10
- -inf <= fx <= +inf
- -10 <= z <= 10
- -inf <= fz <= +inf
- -inf <= r <= +inf
- -inf <= p_first_stage_INC_delta(1) <= 1
- -inf <= p_first_stage_INC_delta(2) <= +inf
- -inf <= p_first_stage_INC_delta(3) <= +inf
- 0 <= p_first_stage_INC_delta(4) <= +inf
- 0 <= p_first_stage_INC_bin_y(1) <= 1
- 0 <= p_first_stage_INC_bin_y(2) <= 1
- 0 <= p_first_stage_INC_bin_y(3) <= 1
- -inf <= p_second_stage(1)_INC_delta(1) <= 1
- -inf <= p_second_stage(1)_INC_delta(2) <= +inf
- -inf <= p_second_stage(1)_INC_delta(3) <= +inf
- 0 <= p_second_stage(1)_INC_delta(4) <= +inf
- 0 <= p_second_stage(1)_INC_bin_y(1) <= 1
- 0 <= p_second_stage(1)_INC_bin_y(2) <= 1
- 0 <= p_second_stage(1)_INC_bin_y(3) <= 1
-binary
- p_first_stage_INC_bin_y(1)
- p_first_stage_INC_bin_y(2)
- p_first_stage_INC_bin_y(3)
- p_second_stage(1)_INC_bin_y(1)
- p_second_stage(1)_INC_bin_y(2)
- p_second_stage(1)_INC_bin_y(3)
-end
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_symbolic_names_baseline/scenario_files/piecewise.setup.lp.Scenario3 b/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_symbolic_names_baseline/scenario_files/piecewise.setup.lp.Scenario3
deleted file mode 100644
index 4e4e4bf0219..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_symbolic_names_baseline/scenario_files/piecewise.setup.lp.Scenario3
+++ /dev/null
@@ -1,148 +0,0 @@
-\* Source Pyomo model name=Scenario3 *\
-
-min
-o:
-+1 fx
--1 fz
-+1 r
--2 ONE_VAR_CONSTANT
-
-s.t.
-
-c_l_c_first_stage_:
-+1 x
->= 0
-
-c_l_c_second_stage_:
-+2 r
-+1 x
->= -100
-
-r_l_r_second_stage_:
-+1 r
->= -2
-
-r_u_r_second_stage_:
-+1 r
-<= 0
-
-c_e_p_first_stage_INC_constraint1_:
--2 p_first_stage_INC_delta(1)
--3 p_first_stage_INC_delta(2)
--2 p_first_stage_INC_delta(3)
--3 p_first_stage_INC_delta(4)
-+1 x
-= 0
-
-c_e_p_first_stage_INC_constraint2_:
-+1 fx
-+1 p_first_stage_INC_delta(2)
--1 p_first_stage_INC_delta(3)
-= 10
-
-c_u_p_first_stage_INC_constraint3(1)_:
--1 p_first_stage_INC_bin_y(1)
-+1 p_first_stage_INC_delta(2)
-<= 0
-
-c_u_p_first_stage_INC_constraint3(2)_:
--1 p_first_stage_INC_bin_y(2)
-+1 p_first_stage_INC_delta(3)
-<= 0
-
-c_u_p_first_stage_INC_constraint3(3)_:
--1 p_first_stage_INC_bin_y(3)
-+1 p_first_stage_INC_delta(4)
-<= 0
-
-c_u_p_first_stage_INC_constraint4(1)_:
-+1 p_first_stage_INC_bin_y(1)
--1 p_first_stage_INC_delta(1)
-<= 0
-
-c_u_p_first_stage_INC_constraint4(2)_:
-+1 p_first_stage_INC_bin_y(2)
--1 p_first_stage_INC_delta(2)
-<= 0
-
-c_u_p_first_stage_INC_constraint4(3)_:
-+1 p_first_stage_INC_bin_y(3)
--1 p_first_stage_INC_delta(3)
-<= 0
-
-c_e_p_second_stage(1)_INC_constraint1_:
--5 p_second_stage(1)_INC_delta(1)
--5 p_second_stage(1)_INC_delta(2)
--5 p_second_stage(1)_INC_delta(3)
--5 p_second_stage(1)_INC_delta(4)
-+1 z
-= -10
-
-c_e_p_second_stage(1)_INC_constraint2_:
-+1 fz
-+1 p_second_stage(1)_INC_delta(2)
--5 p_second_stage(1)_INC_delta(3)
-+3 p_second_stage(1)_INC_delta(4)
-= 0
-
-c_u_p_second_stage(1)_INC_constraint3(1)_:
--1 p_second_stage(1)_INC_bin_y(1)
-+1 p_second_stage(1)_INC_delta(2)
-<= 0
-
-c_u_p_second_stage(1)_INC_constraint3(2)_:
--1 p_second_stage(1)_INC_bin_y(2)
-+1 p_second_stage(1)_INC_delta(3)
-<= 0
-
-c_u_p_second_stage(1)_INC_constraint3(3)_:
--1 p_second_stage(1)_INC_bin_y(3)
-+1 p_second_stage(1)_INC_delta(4)
-<= 0
-
-c_u_p_second_stage(1)_INC_constraint4(1)_:
-+1 p_second_stage(1)_INC_bin_y(1)
--1 p_second_stage(1)_INC_delta(1)
-<= 0
-
-c_u_p_second_stage(1)_INC_constraint4(2)_:
-+1 p_second_stage(1)_INC_bin_y(2)
--1 p_second_stage(1)_INC_delta(2)
-<= 0
-
-c_u_p_second_stage(1)_INC_constraint4(3)_:
-+1 p_second_stage(1)_INC_bin_y(3)
--1 p_second_stage(1)_INC_delta(3)
-<= 0
-
-c_e_ONE_VAR_CONSTANT:
-ONE_VAR_CONSTANT = 1.0
-
-bounds
- 0 <= x <= 10
- -inf <= fx <= +inf
- -10 <= z <= 10
- -inf <= fz <= +inf
- -inf <= r <= +inf
- -inf <= p_first_stage_INC_delta(1) <= 1
- -inf <= p_first_stage_INC_delta(2) <= +inf
- -inf <= p_first_stage_INC_delta(3) <= +inf
- 0 <= p_first_stage_INC_delta(4) <= +inf
- 0 <= p_first_stage_INC_bin_y(1) <= 1
- 0 <= p_first_stage_INC_bin_y(2) <= 1
- 0 <= p_first_stage_INC_bin_y(3) <= 1
- -inf <= p_second_stage(1)_INC_delta(1) <= 1
- -inf <= p_second_stage(1)_INC_delta(2) <= +inf
- -inf <= p_second_stage(1)_INC_delta(3) <= +inf
- 0 <= p_second_stage(1)_INC_delta(4) <= +inf
- 0 <= p_second_stage(1)_INC_bin_y(1) <= 1
- 0 <= p_second_stage(1)_INC_bin_y(2) <= 1
- 0 <= p_second_stage(1)_INC_bin_y(3) <= 1
-binary
- p_first_stage_INC_bin_y(1)
- p_first_stage_INC_bin_y(2)
- p_first_stage_INC_bin_y(3)
- p_second_stage(1)_INC_bin_y(1)
- p_second_stage(1)_INC_bin_y(2)
- p_second_stage(1)_INC_bin_y(3)
-end
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_symbolic_names_baseline/scenario_files/piecewise.sto.Scenario1 b/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_symbolic_names_baseline/scenario_files/piecewise.sto.Scenario1
deleted file mode 100644
index dde7bcea07e..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_symbolic_names_baseline/scenario_files/piecewise.sto.Scenario1
+++ /dev/null
@@ -1,37 +0,0 @@
- BL BLOCK1 PERIOD2 0.33333333329999998
- RHS c_e_p_second_stage(1)_INC_constraint1_ -10
- RHS c_e_p_second_stage(1)_INC_constraint2_ 0
- RHS c_u_p_second_stage(1)_INC_constraint3(1)_ 0
- RHS c_u_p_second_stage(1)_INC_constraint3(2)_ 0
- RHS c_u_p_second_stage(1)_INC_constraint3(3)_ 0
- RHS c_u_p_second_stage(1)_INC_constraint4(1)_ 0
- RHS c_u_p_second_stage(1)_INC_constraint4(2)_ 0
- RHS c_u_p_second_stage(1)_INC_constraint4(3)_ 0
- RHS r_l_r_second_stage_ 0
- RHS r_u_r_second_stage_ 0
- r c_l_c_second_stage_ 0
- p_second_stage(1)_INC_delta(1) c_e_p_second_stage(1)_INC_constraint1_ -5
- p_second_stage(1)_INC_delta(2) c_e_p_second_stage(1)_INC_constraint1_ -5
- p_second_stage(1)_INC_delta(3) c_e_p_second_stage(1)_INC_constraint1_ -5
- p_second_stage(1)_INC_delta(4) c_e_p_second_stage(1)_INC_constraint1_ -5
- z c_e_p_second_stage(1)_INC_constraint1_ 1
- fz c_e_p_second_stage(1)_INC_constraint2_ 1
- p_second_stage(1)_INC_delta(2) c_e_p_second_stage(1)_INC_constraint2_ 1
- p_second_stage(1)_INC_delta(3) c_e_p_second_stage(1)_INC_constraint2_ -3
- p_second_stage(1)_INC_delta(4) c_e_p_second_stage(1)_INC_constraint2_ 1
- p_second_stage(1)_INC_bin_y(1) c_u_p_second_stage(1)_INC_constraint3(1)_ -1
- p_second_stage(1)_INC_delta(2) c_u_p_second_stage(1)_INC_constraint3(1)_ 1
- p_second_stage(1)_INC_bin_y(2) c_u_p_second_stage(1)_INC_constraint3(2)_ -1
- p_second_stage(1)_INC_delta(3) c_u_p_second_stage(1)_INC_constraint3(2)_ 1
- p_second_stage(1)_INC_bin_y(3) c_u_p_second_stage(1)_INC_constraint3(3)_ -1
- p_second_stage(1)_INC_delta(4) c_u_p_second_stage(1)_INC_constraint3(3)_ 1
- p_second_stage(1)_INC_bin_y(1) c_u_p_second_stage(1)_INC_constraint4(1)_ 1
- p_second_stage(1)_INC_delta(1) c_u_p_second_stage(1)_INC_constraint4(1)_ -1
- p_second_stage(1)_INC_bin_y(2) c_u_p_second_stage(1)_INC_constraint4(2)_ 1
- p_second_stage(1)_INC_delta(2) c_u_p_second_stage(1)_INC_constraint4(2)_ -1
- p_second_stage(1)_INC_bin_y(3) c_u_p_second_stage(1)_INC_constraint4(3)_ 1
- p_second_stage(1)_INC_delta(3) c_u_p_second_stage(1)_INC_constraint4(3)_ -1
- fx o 1
- fz o -1
- r o 1
- ONE_VAR_CONSTANT o 0
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_symbolic_names_baseline/scenario_files/piecewise.sto.Scenario2 b/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_symbolic_names_baseline/scenario_files/piecewise.sto.Scenario2
deleted file mode 100644
index 4cf43964b4b..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_symbolic_names_baseline/scenario_files/piecewise.sto.Scenario2
+++ /dev/null
@@ -1,37 +0,0 @@
- BL BLOCK1 PERIOD2 0.33333333329999998
- RHS c_e_p_second_stage(1)_INC_constraint1_ -10
- RHS c_e_p_second_stage(1)_INC_constraint2_ 0
- RHS c_u_p_second_stage(1)_INC_constraint3(1)_ 0
- RHS c_u_p_second_stage(1)_INC_constraint3(2)_ 0
- RHS c_u_p_second_stage(1)_INC_constraint3(3)_ 0
- RHS c_u_p_second_stage(1)_INC_constraint4(1)_ 0
- RHS c_u_p_second_stage(1)_INC_constraint4(2)_ 0
- RHS c_u_p_second_stage(1)_INC_constraint4(3)_ 0
- RHS r_l_r_second_stage_ -1
- RHS r_u_r_second_stage_ 0
- r c_l_c_second_stage_ 1
- p_second_stage(1)_INC_delta(1) c_e_p_second_stage(1)_INC_constraint1_ -5
- p_second_stage(1)_INC_delta(2) c_e_p_second_stage(1)_INC_constraint1_ -5
- p_second_stage(1)_INC_delta(3) c_e_p_second_stage(1)_INC_constraint1_ -5
- p_second_stage(1)_INC_delta(4) c_e_p_second_stage(1)_INC_constraint1_ -5
- z c_e_p_second_stage(1)_INC_constraint1_ 1
- fz c_e_p_second_stage(1)_INC_constraint2_ 1
- p_second_stage(1)_INC_delta(2) c_e_p_second_stage(1)_INC_constraint2_ 1
- p_second_stage(1)_INC_delta(3) c_e_p_second_stage(1)_INC_constraint2_ -4
- p_second_stage(1)_INC_delta(4) c_e_p_second_stage(1)_INC_constraint2_ 2
- p_second_stage(1)_INC_bin_y(1) c_u_p_second_stage(1)_INC_constraint3(1)_ -1
- p_second_stage(1)_INC_delta(2) c_u_p_second_stage(1)_INC_constraint3(1)_ 1
- p_second_stage(1)_INC_bin_y(2) c_u_p_second_stage(1)_INC_constraint3(2)_ -1
- p_second_stage(1)_INC_delta(3) c_u_p_second_stage(1)_INC_constraint3(2)_ 1
- p_second_stage(1)_INC_bin_y(3) c_u_p_second_stage(1)_INC_constraint3(3)_ -1
- p_second_stage(1)_INC_delta(4) c_u_p_second_stage(1)_INC_constraint3(3)_ 1
- p_second_stage(1)_INC_bin_y(1) c_u_p_second_stage(1)_INC_constraint4(1)_ 1
- p_second_stage(1)_INC_delta(1) c_u_p_second_stage(1)_INC_constraint4(1)_ -1
- p_second_stage(1)_INC_bin_y(2) c_u_p_second_stage(1)_INC_constraint4(2)_ 1
- p_second_stage(1)_INC_delta(2) c_u_p_second_stage(1)_INC_constraint4(2)_ -1
- p_second_stage(1)_INC_bin_y(3) c_u_p_second_stage(1)_INC_constraint4(3)_ 1
- p_second_stage(1)_INC_delta(3) c_u_p_second_stage(1)_INC_constraint4(3)_ -1
- fx o 1
- fz o -1
- r o 1
- ONE_VAR_CONSTANT o -1
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_symbolic_names_baseline/scenario_files/piecewise.sto.Scenario3 b/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_symbolic_names_baseline/scenario_files/piecewise.sto.Scenario3
deleted file mode 100644
index b2f6b9f65ae..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_symbolic_names_baseline/scenario_files/piecewise.sto.Scenario3
+++ /dev/null
@@ -1,37 +0,0 @@
- BL BLOCK1 PERIOD2 0.33333333329999998
- RHS c_e_p_second_stage(1)_INC_constraint1_ -10
- RHS c_e_p_second_stage(1)_INC_constraint2_ 0
- RHS c_u_p_second_stage(1)_INC_constraint3(1)_ 0
- RHS c_u_p_second_stage(1)_INC_constraint3(2)_ 0
- RHS c_u_p_second_stage(1)_INC_constraint3(3)_ 0
- RHS c_u_p_second_stage(1)_INC_constraint4(1)_ 0
- RHS c_u_p_second_stage(1)_INC_constraint4(2)_ 0
- RHS c_u_p_second_stage(1)_INC_constraint4(3)_ 0
- RHS r_l_r_second_stage_ -2
- RHS r_u_r_second_stage_ 0
- r c_l_c_second_stage_ 2
- p_second_stage(1)_INC_delta(1) c_e_p_second_stage(1)_INC_constraint1_ -5
- p_second_stage(1)_INC_delta(2) c_e_p_second_stage(1)_INC_constraint1_ -5
- p_second_stage(1)_INC_delta(3) c_e_p_second_stage(1)_INC_constraint1_ -5
- p_second_stage(1)_INC_delta(4) c_e_p_second_stage(1)_INC_constraint1_ -5
- z c_e_p_second_stage(1)_INC_constraint1_ 1
- fz c_e_p_second_stage(1)_INC_constraint2_ 1
- p_second_stage(1)_INC_delta(2) c_e_p_second_stage(1)_INC_constraint2_ 1
- p_second_stage(1)_INC_delta(3) c_e_p_second_stage(1)_INC_constraint2_ -5
- p_second_stage(1)_INC_delta(4) c_e_p_second_stage(1)_INC_constraint2_ 3
- p_second_stage(1)_INC_bin_y(1) c_u_p_second_stage(1)_INC_constraint3(1)_ -1
- p_second_stage(1)_INC_delta(2) c_u_p_second_stage(1)_INC_constraint3(1)_ 1
- p_second_stage(1)_INC_bin_y(2) c_u_p_second_stage(1)_INC_constraint3(2)_ -1
- p_second_stage(1)_INC_delta(3) c_u_p_second_stage(1)_INC_constraint3(2)_ 1
- p_second_stage(1)_INC_bin_y(3) c_u_p_second_stage(1)_INC_constraint3(3)_ -1
- p_second_stage(1)_INC_delta(4) c_u_p_second_stage(1)_INC_constraint3(3)_ 1
- p_second_stage(1)_INC_bin_y(1) c_u_p_second_stage(1)_INC_constraint4(1)_ 1
- p_second_stage(1)_INC_delta(1) c_u_p_second_stage(1)_INC_constraint4(1)_ -1
- p_second_stage(1)_INC_bin_y(2) c_u_p_second_stage(1)_INC_constraint4(2)_ 1
- p_second_stage(1)_INC_delta(2) c_u_p_second_stage(1)_INC_constraint4(2)_ -1
- p_second_stage(1)_INC_bin_y(3) c_u_p_second_stage(1)_INC_constraint4(3)_ 1
- p_second_stage(1)_INC_delta(3) c_u_p_second_stage(1)_INC_constraint4(3)_ -1
- fx o 1
- fz o -1
- r o 1
- ONE_VAR_CONSTANT o -2
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_symbolic_names_baseline/scenario_files/piecewise.sto.struct.Scenario1 b/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_symbolic_names_baseline/scenario_files/piecewise.sto.struct.Scenario1
deleted file mode 100644
index 92b231fef93..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_symbolic_names_baseline/scenario_files/piecewise.sto.struct.Scenario1
+++ /dev/null
@@ -1,36 +0,0 @@
-RHS c_e_p_second_stage(1)_INC_constraint1_
-RHS c_e_p_second_stage(1)_INC_constraint2_
-RHS c_u_p_second_stage(1)_INC_constraint3(1)_
-RHS c_u_p_second_stage(1)_INC_constraint3(2)_
-RHS c_u_p_second_stage(1)_INC_constraint3(3)_
-RHS c_u_p_second_stage(1)_INC_constraint4(1)_
-RHS c_u_p_second_stage(1)_INC_constraint4(2)_
-RHS c_u_p_second_stage(1)_INC_constraint4(3)_
-RHS r_l_r_second_stage_
-RHS r_u_r_second_stage_
-r c_l_c_second_stage_
-p_second_stage(1)_INC_delta(1) c_e_p_second_stage(1)_INC_constraint1_
-p_second_stage(1)_INC_delta(2) c_e_p_second_stage(1)_INC_constraint1_
-p_second_stage(1)_INC_delta(3) c_e_p_second_stage(1)_INC_constraint1_
-p_second_stage(1)_INC_delta(4) c_e_p_second_stage(1)_INC_constraint1_
-z c_e_p_second_stage(1)_INC_constraint1_
-fz c_e_p_second_stage(1)_INC_constraint2_
-p_second_stage(1)_INC_delta(2) c_e_p_second_stage(1)_INC_constraint2_
-p_second_stage(1)_INC_delta(3) c_e_p_second_stage(1)_INC_constraint2_
-p_second_stage(1)_INC_delta(4) c_e_p_second_stage(1)_INC_constraint2_
-p_second_stage(1)_INC_bin_y(1) c_u_p_second_stage(1)_INC_constraint3(1)_
-p_second_stage(1)_INC_delta(2) c_u_p_second_stage(1)_INC_constraint3(1)_
-p_second_stage(1)_INC_bin_y(2) c_u_p_second_stage(1)_INC_constraint3(2)_
-p_second_stage(1)_INC_delta(3) c_u_p_second_stage(1)_INC_constraint3(2)_
-p_second_stage(1)_INC_bin_y(3) c_u_p_second_stage(1)_INC_constraint3(3)_
-p_second_stage(1)_INC_delta(4) c_u_p_second_stage(1)_INC_constraint3(3)_
-p_second_stage(1)_INC_bin_y(1) c_u_p_second_stage(1)_INC_constraint4(1)_
-p_second_stage(1)_INC_delta(1) c_u_p_second_stage(1)_INC_constraint4(1)_
-p_second_stage(1)_INC_bin_y(2) c_u_p_second_stage(1)_INC_constraint4(2)_
-p_second_stage(1)_INC_delta(2) c_u_p_second_stage(1)_INC_constraint4(2)_
-p_second_stage(1)_INC_bin_y(3) c_u_p_second_stage(1)_INC_constraint4(3)_
-p_second_stage(1)_INC_delta(3) c_u_p_second_stage(1)_INC_constraint4(3)_
-fx o
-fz o
-r o
-ONE_VAR_CONSTANT o
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_symbolic_names_baseline/scenario_files/piecewise.sto.struct.Scenario2 b/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_symbolic_names_baseline/scenario_files/piecewise.sto.struct.Scenario2
deleted file mode 100644
index 92b231fef93..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_symbolic_names_baseline/scenario_files/piecewise.sto.struct.Scenario2
+++ /dev/null
@@ -1,36 +0,0 @@
-RHS c_e_p_second_stage(1)_INC_constraint1_
-RHS c_e_p_second_stage(1)_INC_constraint2_
-RHS c_u_p_second_stage(1)_INC_constraint3(1)_
-RHS c_u_p_second_stage(1)_INC_constraint3(2)_
-RHS c_u_p_second_stage(1)_INC_constraint3(3)_
-RHS c_u_p_second_stage(1)_INC_constraint4(1)_
-RHS c_u_p_second_stage(1)_INC_constraint4(2)_
-RHS c_u_p_second_stage(1)_INC_constraint4(3)_
-RHS r_l_r_second_stage_
-RHS r_u_r_second_stage_
-r c_l_c_second_stage_
-p_second_stage(1)_INC_delta(1) c_e_p_second_stage(1)_INC_constraint1_
-p_second_stage(1)_INC_delta(2) c_e_p_second_stage(1)_INC_constraint1_
-p_second_stage(1)_INC_delta(3) c_e_p_second_stage(1)_INC_constraint1_
-p_second_stage(1)_INC_delta(4) c_e_p_second_stage(1)_INC_constraint1_
-z c_e_p_second_stage(1)_INC_constraint1_
-fz c_e_p_second_stage(1)_INC_constraint2_
-p_second_stage(1)_INC_delta(2) c_e_p_second_stage(1)_INC_constraint2_
-p_second_stage(1)_INC_delta(3) c_e_p_second_stage(1)_INC_constraint2_
-p_second_stage(1)_INC_delta(4) c_e_p_second_stage(1)_INC_constraint2_
-p_second_stage(1)_INC_bin_y(1) c_u_p_second_stage(1)_INC_constraint3(1)_
-p_second_stage(1)_INC_delta(2) c_u_p_second_stage(1)_INC_constraint3(1)_
-p_second_stage(1)_INC_bin_y(2) c_u_p_second_stage(1)_INC_constraint3(2)_
-p_second_stage(1)_INC_delta(3) c_u_p_second_stage(1)_INC_constraint3(2)_
-p_second_stage(1)_INC_bin_y(3) c_u_p_second_stage(1)_INC_constraint3(3)_
-p_second_stage(1)_INC_delta(4) c_u_p_second_stage(1)_INC_constraint3(3)_
-p_second_stage(1)_INC_bin_y(1) c_u_p_second_stage(1)_INC_constraint4(1)_
-p_second_stage(1)_INC_delta(1) c_u_p_second_stage(1)_INC_constraint4(1)_
-p_second_stage(1)_INC_bin_y(2) c_u_p_second_stage(1)_INC_constraint4(2)_
-p_second_stage(1)_INC_delta(2) c_u_p_second_stage(1)_INC_constraint4(2)_
-p_second_stage(1)_INC_bin_y(3) c_u_p_second_stage(1)_INC_constraint4(3)_
-p_second_stage(1)_INC_delta(3) c_u_p_second_stage(1)_INC_constraint4(3)_
-fx o
-fz o
-r o
-ONE_VAR_CONSTANT o
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_symbolic_names_baseline/scenario_files/piecewise.sto.struct.Scenario3 b/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_symbolic_names_baseline/scenario_files/piecewise.sto.struct.Scenario3
deleted file mode 100644
index 92b231fef93..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_symbolic_names_baseline/scenario_files/piecewise.sto.struct.Scenario3
+++ /dev/null
@@ -1,36 +0,0 @@
-RHS c_e_p_second_stage(1)_INC_constraint1_
-RHS c_e_p_second_stage(1)_INC_constraint2_
-RHS c_u_p_second_stage(1)_INC_constraint3(1)_
-RHS c_u_p_second_stage(1)_INC_constraint3(2)_
-RHS c_u_p_second_stage(1)_INC_constraint3(3)_
-RHS c_u_p_second_stage(1)_INC_constraint4(1)_
-RHS c_u_p_second_stage(1)_INC_constraint4(2)_
-RHS c_u_p_second_stage(1)_INC_constraint4(3)_
-RHS r_l_r_second_stage_
-RHS r_u_r_second_stage_
-r c_l_c_second_stage_
-p_second_stage(1)_INC_delta(1) c_e_p_second_stage(1)_INC_constraint1_
-p_second_stage(1)_INC_delta(2) c_e_p_second_stage(1)_INC_constraint1_
-p_second_stage(1)_INC_delta(3) c_e_p_second_stage(1)_INC_constraint1_
-p_second_stage(1)_INC_delta(4) c_e_p_second_stage(1)_INC_constraint1_
-z c_e_p_second_stage(1)_INC_constraint1_
-fz c_e_p_second_stage(1)_INC_constraint2_
-p_second_stage(1)_INC_delta(2) c_e_p_second_stage(1)_INC_constraint2_
-p_second_stage(1)_INC_delta(3) c_e_p_second_stage(1)_INC_constraint2_
-p_second_stage(1)_INC_delta(4) c_e_p_second_stage(1)_INC_constraint2_
-p_second_stage(1)_INC_bin_y(1) c_u_p_second_stage(1)_INC_constraint3(1)_
-p_second_stage(1)_INC_delta(2) c_u_p_second_stage(1)_INC_constraint3(1)_
-p_second_stage(1)_INC_bin_y(2) c_u_p_second_stage(1)_INC_constraint3(2)_
-p_second_stage(1)_INC_delta(3) c_u_p_second_stage(1)_INC_constraint3(2)_
-p_second_stage(1)_INC_bin_y(3) c_u_p_second_stage(1)_INC_constraint3(3)_
-p_second_stage(1)_INC_delta(4) c_u_p_second_stage(1)_INC_constraint3(3)_
-p_second_stage(1)_INC_bin_y(1) c_u_p_second_stage(1)_INC_constraint4(1)_
-p_second_stage(1)_INC_delta(1) c_u_p_second_stage(1)_INC_constraint4(1)_
-p_second_stage(1)_INC_bin_y(2) c_u_p_second_stage(1)_INC_constraint4(2)_
-p_second_stage(1)_INC_delta(2) c_u_p_second_stage(1)_INC_constraint4(2)_
-p_second_stage(1)_INC_bin_y(3) c_u_p_second_stage(1)_INC_constraint4(3)_
-p_second_stage(1)_INC_delta(3) c_u_p_second_stage(1)_INC_constraint4(3)_
-fx o
-fz o
-r o
-ONE_VAR_CONSTANT o
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_symbolic_names_baseline/scenario_files/piecewise.tim.Scenario1 b/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_symbolic_names_baseline/scenario_files/piecewise.tim.Scenario1
deleted file mode 100644
index 1dd12b57f9b..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_symbolic_names_baseline/scenario_files/piecewise.tim.Scenario1
+++ /dev/null
@@ -1,49 +0,0 @@
-TIME piecewise
-PERIODS EXPLICIT
- TIME1
- TIME2
-ROWS
- o TIME1
- c_l_c_first_stage_ TIME1
- c_e_p_first_stage_INC_constraint1_ TIME2
- c_e_p_first_stage_INC_constraint2_ TIME2
- c_e_p_second_stage(1)_INC_constraint1_ TIME2
- c_e_p_second_stage(1)_INC_constraint2_ TIME2
- c_l_c_second_stage_ TIME2
- c_u_p_first_stage_INC_constraint3(1)_ TIME2
- c_u_p_first_stage_INC_constraint3(2)_ TIME2
- c_u_p_first_stage_INC_constraint3(3)_ TIME2
- c_u_p_first_stage_INC_constraint4(1)_ TIME2
- c_u_p_first_stage_INC_constraint4(2)_ TIME2
- c_u_p_first_stage_INC_constraint4(3)_ TIME2
- c_u_p_second_stage(1)_INC_constraint3(1)_ TIME2
- c_u_p_second_stage(1)_INC_constraint3(2)_ TIME2
- c_u_p_second_stage(1)_INC_constraint3(3)_ TIME2
- c_u_p_second_stage(1)_INC_constraint4(1)_ TIME2
- c_u_p_second_stage(1)_INC_constraint4(2)_ TIME2
- c_u_p_second_stage(1)_INC_constraint4(3)_ TIME2
- r_l_r_second_stage_ TIME2
- r_u_r_second_stage_ TIME2
- c_e_ONE_VAR_CONSTANT TIME2
-COLS
- x TIME1
- fx TIME2
- fz TIME2
- p_first_stage_INC_bin_y(1) TIME2
- p_first_stage_INC_bin_y(2) TIME2
- p_first_stage_INC_bin_y(3) TIME2
- p_first_stage_INC_delta(1) TIME2
- p_first_stage_INC_delta(2) TIME2
- p_first_stage_INC_delta(3) TIME2
- p_first_stage_INC_delta(4) TIME2
- p_second_stage(1)_INC_bin_y(1) TIME2
- p_second_stage(1)_INC_bin_y(2) TIME2
- p_second_stage(1)_INC_bin_y(3) TIME2
- p_second_stage(1)_INC_delta(1) TIME2
- p_second_stage(1)_INC_delta(2) TIME2
- p_second_stage(1)_INC_delta(3) TIME2
- p_second_stage(1)_INC_delta(4) TIME2
- r TIME2
- z TIME2
- ONE_VAR_CONSTANT TIME2
-ENDATA
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_symbolic_names_baseline/scenario_files/piecewise.tim.Scenario2 b/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_symbolic_names_baseline/scenario_files/piecewise.tim.Scenario2
deleted file mode 100644
index 1dd12b57f9b..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_symbolic_names_baseline/scenario_files/piecewise.tim.Scenario2
+++ /dev/null
@@ -1,49 +0,0 @@
-TIME piecewise
-PERIODS EXPLICIT
- TIME1
- TIME2
-ROWS
- o TIME1
- c_l_c_first_stage_ TIME1
- c_e_p_first_stage_INC_constraint1_ TIME2
- c_e_p_first_stage_INC_constraint2_ TIME2
- c_e_p_second_stage(1)_INC_constraint1_ TIME2
- c_e_p_second_stage(1)_INC_constraint2_ TIME2
- c_l_c_second_stage_ TIME2
- c_u_p_first_stage_INC_constraint3(1)_ TIME2
- c_u_p_first_stage_INC_constraint3(2)_ TIME2
- c_u_p_first_stage_INC_constraint3(3)_ TIME2
- c_u_p_first_stage_INC_constraint4(1)_ TIME2
- c_u_p_first_stage_INC_constraint4(2)_ TIME2
- c_u_p_first_stage_INC_constraint4(3)_ TIME2
- c_u_p_second_stage(1)_INC_constraint3(1)_ TIME2
- c_u_p_second_stage(1)_INC_constraint3(2)_ TIME2
- c_u_p_second_stage(1)_INC_constraint3(3)_ TIME2
- c_u_p_second_stage(1)_INC_constraint4(1)_ TIME2
- c_u_p_second_stage(1)_INC_constraint4(2)_ TIME2
- c_u_p_second_stage(1)_INC_constraint4(3)_ TIME2
- r_l_r_second_stage_ TIME2
- r_u_r_second_stage_ TIME2
- c_e_ONE_VAR_CONSTANT TIME2
-COLS
- x TIME1
- fx TIME2
- fz TIME2
- p_first_stage_INC_bin_y(1) TIME2
- p_first_stage_INC_bin_y(2) TIME2
- p_first_stage_INC_bin_y(3) TIME2
- p_first_stage_INC_delta(1) TIME2
- p_first_stage_INC_delta(2) TIME2
- p_first_stage_INC_delta(3) TIME2
- p_first_stage_INC_delta(4) TIME2
- p_second_stage(1)_INC_bin_y(1) TIME2
- p_second_stage(1)_INC_bin_y(2) TIME2
- p_second_stage(1)_INC_bin_y(3) TIME2
- p_second_stage(1)_INC_delta(1) TIME2
- p_second_stage(1)_INC_delta(2) TIME2
- p_second_stage(1)_INC_delta(3) TIME2
- p_second_stage(1)_INC_delta(4) TIME2
- r TIME2
- z TIME2
- ONE_VAR_CONSTANT TIME2
-ENDATA
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_symbolic_names_baseline/scenario_files/piecewise.tim.Scenario3 b/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_symbolic_names_baseline/scenario_files/piecewise.tim.Scenario3
deleted file mode 100644
index 1dd12b57f9b..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_symbolic_names_baseline/scenario_files/piecewise.tim.Scenario3
+++ /dev/null
@@ -1,49 +0,0 @@
-TIME piecewise
-PERIODS EXPLICIT
- TIME1
- TIME2
-ROWS
- o TIME1
- c_l_c_first_stage_ TIME1
- c_e_p_first_stage_INC_constraint1_ TIME2
- c_e_p_first_stage_INC_constraint2_ TIME2
- c_e_p_second_stage(1)_INC_constraint1_ TIME2
- c_e_p_second_stage(1)_INC_constraint2_ TIME2
- c_l_c_second_stage_ TIME2
- c_u_p_first_stage_INC_constraint3(1)_ TIME2
- c_u_p_first_stage_INC_constraint3(2)_ TIME2
- c_u_p_first_stage_INC_constraint3(3)_ TIME2
- c_u_p_first_stage_INC_constraint4(1)_ TIME2
- c_u_p_first_stage_INC_constraint4(2)_ TIME2
- c_u_p_first_stage_INC_constraint4(3)_ TIME2
- c_u_p_second_stage(1)_INC_constraint3(1)_ TIME2
- c_u_p_second_stage(1)_INC_constraint3(2)_ TIME2
- c_u_p_second_stage(1)_INC_constraint3(3)_ TIME2
- c_u_p_second_stage(1)_INC_constraint4(1)_ TIME2
- c_u_p_second_stage(1)_INC_constraint4(2)_ TIME2
- c_u_p_second_stage(1)_INC_constraint4(3)_ TIME2
- r_l_r_second_stage_ TIME2
- r_u_r_second_stage_ TIME2
- c_e_ONE_VAR_CONSTANT TIME2
-COLS
- x TIME1
- fx TIME2
- fz TIME2
- p_first_stage_INC_bin_y(1) TIME2
- p_first_stage_INC_bin_y(2) TIME2
- p_first_stage_INC_bin_y(3) TIME2
- p_first_stage_INC_delta(1) TIME2
- p_first_stage_INC_delta(2) TIME2
- p_first_stage_INC_delta(3) TIME2
- p_first_stage_INC_delta(4) TIME2
- p_second_stage(1)_INC_bin_y(1) TIME2
- p_second_stage(1)_INC_bin_y(2) TIME2
- p_second_stage(1)_INC_bin_y(3) TIME2
- p_second_stage(1)_INC_delta(1) TIME2
- p_second_stage(1)_INC_delta(2) TIME2
- p_second_stage(1)_INC_delta(3) TIME2
- p_second_stage(1)_INC_delta(4) TIME2
- r TIME2
- z TIME2
- ONE_VAR_CONSTANT TIME2
-ENDATA
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_symbolic_names_ignore_derived_baseline/piecewise.col b/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_symbolic_names_ignore_derived_baseline/piecewise.col
deleted file mode 100644
index 6e2c4d0e629..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_symbolic_names_ignore_derived_baseline/piecewise.col
+++ /dev/null
@@ -1,20 +0,0 @@
-fx
-p_first_stage_INC_bin_y(1)
-p_first_stage_INC_bin_y(2)
-p_first_stage_INC_bin_y(3)
-p_first_stage_INC_delta(1)
-p_first_stage_INC_delta(2)
-p_first_stage_INC_delta(3)
-p_first_stage_INC_delta(4)
-x
-fz
-p_second_stage(1)_INC_bin_y(1)
-p_second_stage(1)_INC_bin_y(2)
-p_second_stage(1)_INC_bin_y(3)
-p_second_stage(1)_INC_delta(1)
-p_second_stage(1)_INC_delta(2)
-p_second_stage(1)_INC_delta(3)
-p_second_stage(1)_INC_delta(4)
-r
-z
-ONE_VAR_CONSTANT
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_symbolic_names_ignore_derived_baseline/piecewise.cor b/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_symbolic_names_ignore_derived_baseline/piecewise.cor
deleted file mode 100644
index 2f56dbe03da..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_symbolic_names_ignore_derived_baseline/piecewise.cor
+++ /dev/null
@@ -1,148 +0,0 @@
-\* Source Pyomo model name=Scenario1 *\
-
-min
-o:
-+1 fx
--1 fz
-+1 r
-+0 ONE_VAR_CONSTANT
-
-s.t.
-
-c_e_p_first_stage_INC_constraint1_:
--2 p_first_stage_INC_delta(1)
--3 p_first_stage_INC_delta(2)
--2 p_first_stage_INC_delta(3)
--3 p_first_stage_INC_delta(4)
-+1 x
-= 0
-
-c_e_p_first_stage_INC_constraint2_:
-+1 fx
-+1 p_first_stage_INC_delta(2)
--1 p_first_stage_INC_delta(3)
-= 10
-
-c_l_c_first_stage_:
-+1 x
->= 0
-
-c_u_p_first_stage_INC_constraint3(1)_:
--1 p_first_stage_INC_bin_y(1)
-+1 p_first_stage_INC_delta(2)
-<= 0
-
-c_u_p_first_stage_INC_constraint3(2)_:
--1 p_first_stage_INC_bin_y(2)
-+1 p_first_stage_INC_delta(3)
-<= 0
-
-c_u_p_first_stage_INC_constraint3(3)_:
--1 p_first_stage_INC_bin_y(3)
-+1 p_first_stage_INC_delta(4)
-<= 0
-
-c_u_p_first_stage_INC_constraint4(1)_:
-+1 p_first_stage_INC_bin_y(1)
--1 p_first_stage_INC_delta(1)
-<= 0
-
-c_u_p_first_stage_INC_constraint4(2)_:
-+1 p_first_stage_INC_bin_y(2)
--1 p_first_stage_INC_delta(2)
-<= 0
-
-c_u_p_first_stage_INC_constraint4(3)_:
-+1 p_first_stage_INC_bin_y(3)
--1 p_first_stage_INC_delta(3)
-<= 0
-
-c_e_p_second_stage(1)_INC_constraint1_:
--5 p_second_stage(1)_INC_delta(1)
--5 p_second_stage(1)_INC_delta(2)
--5 p_second_stage(1)_INC_delta(3)
--5 p_second_stage(1)_INC_delta(4)
-+1 z
-= -10
-
-c_e_p_second_stage(1)_INC_constraint2_:
-+1 fz
-+1 p_second_stage(1)_INC_delta(2)
--3 p_second_stage(1)_INC_delta(3)
-+1 p_second_stage(1)_INC_delta(4)
-= 0
-
-c_l_c_second_stage_:
-+1 x
-+0 r
->= -100
-
-c_u_p_second_stage(1)_INC_constraint3(1)_:
--1 p_second_stage(1)_INC_bin_y(1)
-+1 p_second_stage(1)_INC_delta(2)
-<= 0
-
-c_u_p_second_stage(1)_INC_constraint3(2)_:
--1 p_second_stage(1)_INC_bin_y(2)
-+1 p_second_stage(1)_INC_delta(3)
-<= 0
-
-c_u_p_second_stage(1)_INC_constraint3(3)_:
--1 p_second_stage(1)_INC_bin_y(3)
-+1 p_second_stage(1)_INC_delta(4)
-<= 0
-
-c_u_p_second_stage(1)_INC_constraint4(1)_:
-+1 p_second_stage(1)_INC_bin_y(1)
--1 p_second_stage(1)_INC_delta(1)
-<= 0
-
-c_u_p_second_stage(1)_INC_constraint4(2)_:
-+1 p_second_stage(1)_INC_bin_y(2)
--1 p_second_stage(1)_INC_delta(2)
-<= 0
-
-c_u_p_second_stage(1)_INC_constraint4(3)_:
-+1 p_second_stage(1)_INC_bin_y(3)
--1 p_second_stage(1)_INC_delta(3)
-<= 0
-
-r_l_r_second_stage_:
-+1 r
->= 0
-
-r_u_r_second_stage_:
-+1 r
-<= 0
-
-c_e_ONE_VAR_CONSTANT:
-ONE_VAR_CONSTANT = 1.0
-
-bounds
- 0 <= x <= 10
- -inf <= fx <= +inf
- -10 <= z <= 10
- -inf <= fz <= +inf
- -inf <= r <= +inf
- -inf <= p_first_stage_INC_delta(1) <= 1
- -inf <= p_first_stage_INC_delta(2) <= +inf
- -inf <= p_first_stage_INC_delta(3) <= +inf
- 0 <= p_first_stage_INC_delta(4) <= +inf
- 0 <= p_first_stage_INC_bin_y(1) <= 1
- 0 <= p_first_stage_INC_bin_y(2) <= 1
- 0 <= p_first_stage_INC_bin_y(3) <= 1
- -inf <= p_second_stage(1)_INC_delta(1) <= 1
- -inf <= p_second_stage(1)_INC_delta(2) <= +inf
- -inf <= p_second_stage(1)_INC_delta(3) <= +inf
- 0 <= p_second_stage(1)_INC_delta(4) <= +inf
- 0 <= p_second_stage(1)_INC_bin_y(1) <= 1
- 0 <= p_second_stage(1)_INC_bin_y(2) <= 1
- 0 <= p_second_stage(1)_INC_bin_y(3) <= 1
-binary
- p_first_stage_INC_bin_y(1)
- p_first_stage_INC_bin_y(2)
- p_first_stage_INC_bin_y(3)
- p_second_stage(1)_INC_bin_y(1)
- p_second_stage(1)_INC_bin_y(2)
- p_second_stage(1)_INC_bin_y(3)
-end
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_symbolic_names_ignore_derived_baseline/piecewise.cor.symbols b/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_symbolic_names_ignore_derived_baseline/piecewise.cor.symbols
deleted file mode 100644
index 3ea722dd807..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_symbolic_names_ignore_derived_baseline/piecewise.cor.symbols
+++ /dev/null
@@ -1,9 +0,0 @@
-fx fx
-p_first_stage_INC_bin_y(1) p_first_stage.INC_bin_y:#1
-p_first_stage_INC_bin_y(2) p_first_stage.INC_bin_y:#2
-p_first_stage_INC_bin_y(3) p_first_stage.INC_bin_y:#3
-p_first_stage_INC_delta(1) p_first_stage.INC_delta:#1
-p_first_stage_INC_delta(2) p_first_stage.INC_delta:#2
-p_first_stage_INC_delta(3) p_first_stage.INC_delta:#3
-p_first_stage_INC_delta(4) p_first_stage.INC_delta:#4
-x x
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_symbolic_names_ignore_derived_baseline/piecewise.lp.det b/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_symbolic_names_ignore_derived_baseline/piecewise.lp.det
deleted file mode 100644
index 578d9d6ecc0..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_symbolic_names_ignore_derived_baseline/piecewise.lp.det
+++ /dev/null
@@ -1,148 +0,0 @@
-\* Source Pyomo model name=ZeroStochasticData *\
-
-min
-o:
--9876543210 fx
--9876543210 fz
--9876543210 r
-+0 ONE_VAR_CONSTANT
-
-s.t.
-
-c_e_p_first_stage_INC_constraint1_:
--2 p_first_stage_INC_delta(1)
--3 p_first_stage_INC_delta(2)
--2 p_first_stage_INC_delta(3)
--3 p_first_stage_INC_delta(4)
-+1 x
-= 0
-
-c_e_p_first_stage_INC_constraint2_:
-+1 fx
-+1 p_first_stage_INC_delta(2)
--1 p_first_stage_INC_delta(3)
-= 10
-
-c_l_c_first_stage_:
-+1 x
->= 0
-
-c_u_p_first_stage_INC_constraint3(1)_:
--1 p_first_stage_INC_bin_y(1)
-+1 p_first_stage_INC_delta(2)
-<= 0
-
-c_u_p_first_stage_INC_constraint3(2)_:
--1 p_first_stage_INC_bin_y(2)
-+1 p_first_stage_INC_delta(3)
-<= 0
-
-c_u_p_first_stage_INC_constraint3(3)_:
--1 p_first_stage_INC_bin_y(3)
-+1 p_first_stage_INC_delta(4)
-<= 0
-
-c_u_p_first_stage_INC_constraint4(1)_:
-+1 p_first_stage_INC_bin_y(1)
--1 p_first_stage_INC_delta(1)
-<= 0
-
-c_u_p_first_stage_INC_constraint4(2)_:
-+1 p_first_stage_INC_bin_y(2)
--1 p_first_stage_INC_delta(2)
-<= 0
-
-c_u_p_first_stage_INC_constraint4(3)_:
-+1 p_first_stage_INC_bin_y(3)
--1 p_first_stage_INC_delta(3)
-<= 0
-
-c_e_p_second_stage(1)_INC_constraint1_:
--9876543210 p_second_stage(1)_INC_delta(1)
--9876543210 p_second_stage(1)_INC_delta(2)
--9876543210 p_second_stage(1)_INC_delta(3)
--9876543210 p_second_stage(1)_INC_delta(4)
--9876543210 z
-= -9876543210
-
-c_e_p_second_stage(1)_INC_constraint2_:
--9876543210 fz
--9876543210 p_second_stage(1)_INC_delta(2)
--9876543210 p_second_stage(1)_INC_delta(3)
--9876543210 p_second_stage(1)_INC_delta(4)
-= -9876543210
-
-c_l_c_second_stage_:
-+1 x
--9876543210 r
->= -100
-
-c_u_p_second_stage(1)_INC_constraint3(1)_:
--9876543210 p_second_stage(1)_INC_bin_y(1)
--9876543210 p_second_stage(1)_INC_delta(2)
-<= -9876543210
-
-c_u_p_second_stage(1)_INC_constraint3(2)_:
--9876543210 p_second_stage(1)_INC_bin_y(2)
--9876543210 p_second_stage(1)_INC_delta(3)
-<= -9876543210
-
-c_u_p_second_stage(1)_INC_constraint3(3)_:
--9876543210 p_second_stage(1)_INC_bin_y(3)
--9876543210 p_second_stage(1)_INC_delta(4)
-<= -9876543210
-
-c_u_p_second_stage(1)_INC_constraint4(1)_:
--9876543210 p_second_stage(1)_INC_bin_y(1)
--9876543210 p_second_stage(1)_INC_delta(1)
-<= -9876543210
-
-c_u_p_second_stage(1)_INC_constraint4(2)_:
--9876543210 p_second_stage(1)_INC_bin_y(2)
--9876543210 p_second_stage(1)_INC_delta(2)
-<= -9876543210
-
-c_u_p_second_stage(1)_INC_constraint4(3)_:
--9876543210 p_second_stage(1)_INC_bin_y(3)
--9876543210 p_second_stage(1)_INC_delta(3)
-<= -9876543210
-
-r_l_r_second_stage_:
-+1 r
->= -9876543210
-
-r_u_r_second_stage_:
-+1 r
-<= -9876543210
-
-c_e_ONE_VAR_CONSTANT:
-ONE_VAR_CONSTANT = 1.0
-
-bounds
- 0 <= x <= 10
- -inf <= fx <= +inf
- -10 <= z <= 10
- -inf <= fz <= +inf
- -inf <= r <= +inf
- -inf <= p_first_stage_INC_delta(1) <= 1
- -inf <= p_first_stage_INC_delta(2) <= +inf
- -inf <= p_first_stage_INC_delta(3) <= +inf
- 0 <= p_first_stage_INC_delta(4) <= +inf
- 0 <= p_first_stage_INC_bin_y(1) <= 1
- 0 <= p_first_stage_INC_bin_y(2) <= 1
- 0 <= p_first_stage_INC_bin_y(3) <= 1
- -inf <= p_second_stage(1)_INC_delta(1) <= 1
- -inf <= p_second_stage(1)_INC_delta(2) <= +inf
- -inf <= p_second_stage(1)_INC_delta(3) <= +inf
- 0 <= p_second_stage(1)_INC_delta(4) <= +inf
- 0 <= p_second_stage(1)_INC_bin_y(1) <= 1
- 0 <= p_second_stage(1)_INC_bin_y(2) <= 1
- 0 <= p_second_stage(1)_INC_bin_y(3) <= 1
-binary
- p_first_stage_INC_bin_y(1)
- p_first_stage_INC_bin_y(2)
- p_first_stage_INC_bin_y(3)
- p_second_stage(1)_INC_bin_y(1)
- p_second_stage(1)_INC_bin_y(2)
- p_second_stage(1)_INC_bin_y(3)
-end
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_symbolic_names_ignore_derived_baseline/piecewise.row b/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_symbolic_names_ignore_derived_baseline/piecewise.row
deleted file mode 100644
index 12384c6692a..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_symbolic_names_ignore_derived_baseline/piecewise.row
+++ /dev/null
@@ -1,22 +0,0 @@
-o
-c_e_p_first_stage_INC_constraint1_
-c_e_p_first_stage_INC_constraint2_
-c_l_c_first_stage_
-c_u_p_first_stage_INC_constraint3(1)_
-c_u_p_first_stage_INC_constraint3(2)_
-c_u_p_first_stage_INC_constraint3(3)_
-c_u_p_first_stage_INC_constraint4(1)_
-c_u_p_first_stage_INC_constraint4(2)_
-c_u_p_first_stage_INC_constraint4(3)_
-c_e_p_second_stage(1)_INC_constraint1_
-c_e_p_second_stage(1)_INC_constraint2_
-c_l_c_second_stage_
-c_u_p_second_stage(1)_INC_constraint3(1)_
-c_u_p_second_stage(1)_INC_constraint3(2)_
-c_u_p_second_stage(1)_INC_constraint3(3)_
-c_u_p_second_stage(1)_INC_constraint4(1)_
-c_u_p_second_stage(1)_INC_constraint4(2)_
-c_u_p_second_stage(1)_INC_constraint4(3)_
-r_l_r_second_stage_
-r_u_r_second_stage_
-c_e_ONE_VAR_CONSTANT
\ No newline at end of file
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_symbolic_names_ignore_derived_baseline/piecewise.sto b/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_symbolic_names_ignore_derived_baseline/piecewise.sto
deleted file mode 100644
index 4658be0cad2..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_symbolic_names_ignore_derived_baseline/piecewise.sto
+++ /dev/null
@@ -1,114 +0,0 @@
-STOCH piecewise
-BLOCKS DISCRETE REPLACE
- BL BLOCK1 PERIOD2 0.33333333329999998
- RHS c_e_p_second_stage(1)_INC_constraint1_ -10
- RHS c_e_p_second_stage(1)_INC_constraint2_ 0
- RHS c_u_p_second_stage(1)_INC_constraint3(1)_ 0
- RHS c_u_p_second_stage(1)_INC_constraint3(2)_ 0
- RHS c_u_p_second_stage(1)_INC_constraint3(3)_ 0
- RHS c_u_p_second_stage(1)_INC_constraint4(1)_ 0
- RHS c_u_p_second_stage(1)_INC_constraint4(2)_ 0
- RHS c_u_p_second_stage(1)_INC_constraint4(3)_ 0
- RHS r_l_r_second_stage_ 0
- RHS r_u_r_second_stage_ 0
- r c_l_c_second_stage_ 0
- p_second_stage(1)_INC_delta(1) c_e_p_second_stage(1)_INC_constraint1_ -5
- p_second_stage(1)_INC_delta(2) c_e_p_second_stage(1)_INC_constraint1_ -5
- p_second_stage(1)_INC_delta(3) c_e_p_second_stage(1)_INC_constraint1_ -5
- p_second_stage(1)_INC_delta(4) c_e_p_second_stage(1)_INC_constraint1_ -5
- z c_e_p_second_stage(1)_INC_constraint1_ 1
- fz c_e_p_second_stage(1)_INC_constraint2_ 1
- p_second_stage(1)_INC_delta(2) c_e_p_second_stage(1)_INC_constraint2_ 1
- p_second_stage(1)_INC_delta(3) c_e_p_second_stage(1)_INC_constraint2_ -3
- p_second_stage(1)_INC_delta(4) c_e_p_second_stage(1)_INC_constraint2_ 1
- p_second_stage(1)_INC_bin_y(1) c_u_p_second_stage(1)_INC_constraint3(1)_ -1
- p_second_stage(1)_INC_delta(2) c_u_p_second_stage(1)_INC_constraint3(1)_ 1
- p_second_stage(1)_INC_bin_y(2) c_u_p_second_stage(1)_INC_constraint3(2)_ -1
- p_second_stage(1)_INC_delta(3) c_u_p_second_stage(1)_INC_constraint3(2)_ 1
- p_second_stage(1)_INC_bin_y(3) c_u_p_second_stage(1)_INC_constraint3(3)_ -1
- p_second_stage(1)_INC_delta(4) c_u_p_second_stage(1)_INC_constraint3(3)_ 1
- p_second_stage(1)_INC_bin_y(1) c_u_p_second_stage(1)_INC_constraint4(1)_ 1
- p_second_stage(1)_INC_delta(1) c_u_p_second_stage(1)_INC_constraint4(1)_ -1
- p_second_stage(1)_INC_bin_y(2) c_u_p_second_stage(1)_INC_constraint4(2)_ 1
- p_second_stage(1)_INC_delta(2) c_u_p_second_stage(1)_INC_constraint4(2)_ -1
- p_second_stage(1)_INC_bin_y(3) c_u_p_second_stage(1)_INC_constraint4(3)_ 1
- p_second_stage(1)_INC_delta(3) c_u_p_second_stage(1)_INC_constraint4(3)_ -1
- fx o 1
- fz o -1
- r o 1
- ONE_VAR_CONSTANT o 0
- BL BLOCK1 PERIOD2 0.33333333329999998
- RHS c_e_p_second_stage(1)_INC_constraint1_ -10
- RHS c_e_p_second_stage(1)_INC_constraint2_ 0
- RHS c_u_p_second_stage(1)_INC_constraint3(1)_ 0
- RHS c_u_p_second_stage(1)_INC_constraint3(2)_ 0
- RHS c_u_p_second_stage(1)_INC_constraint3(3)_ 0
- RHS c_u_p_second_stage(1)_INC_constraint4(1)_ 0
- RHS c_u_p_second_stage(1)_INC_constraint4(2)_ 0
- RHS c_u_p_second_stage(1)_INC_constraint4(3)_ 0
- RHS r_l_r_second_stage_ -1
- RHS r_u_r_second_stage_ 0
- r c_l_c_second_stage_ 1
- p_second_stage(1)_INC_delta(1) c_e_p_second_stage(1)_INC_constraint1_ -5
- p_second_stage(1)_INC_delta(2) c_e_p_second_stage(1)_INC_constraint1_ -5
- p_second_stage(1)_INC_delta(3) c_e_p_second_stage(1)_INC_constraint1_ -5
- p_second_stage(1)_INC_delta(4) c_e_p_second_stage(1)_INC_constraint1_ -5
- z c_e_p_second_stage(1)_INC_constraint1_ 1
- fz c_e_p_second_stage(1)_INC_constraint2_ 1
- p_second_stage(1)_INC_delta(2) c_e_p_second_stage(1)_INC_constraint2_ 1
- p_second_stage(1)_INC_delta(3) c_e_p_second_stage(1)_INC_constraint2_ -4
- p_second_stage(1)_INC_delta(4) c_e_p_second_stage(1)_INC_constraint2_ 2
- p_second_stage(1)_INC_bin_y(1) c_u_p_second_stage(1)_INC_constraint3(1)_ -1
- p_second_stage(1)_INC_delta(2) c_u_p_second_stage(1)_INC_constraint3(1)_ 1
- p_second_stage(1)_INC_bin_y(2) c_u_p_second_stage(1)_INC_constraint3(2)_ -1
- p_second_stage(1)_INC_delta(3) c_u_p_second_stage(1)_INC_constraint3(2)_ 1
- p_second_stage(1)_INC_bin_y(3) c_u_p_second_stage(1)_INC_constraint3(3)_ -1
- p_second_stage(1)_INC_delta(4) c_u_p_second_stage(1)_INC_constraint3(3)_ 1
- p_second_stage(1)_INC_bin_y(1) c_u_p_second_stage(1)_INC_constraint4(1)_ 1
- p_second_stage(1)_INC_delta(1) c_u_p_second_stage(1)_INC_constraint4(1)_ -1
- p_second_stage(1)_INC_bin_y(2) c_u_p_second_stage(1)_INC_constraint4(2)_ 1
- p_second_stage(1)_INC_delta(2) c_u_p_second_stage(1)_INC_constraint4(2)_ -1
- p_second_stage(1)_INC_bin_y(3) c_u_p_second_stage(1)_INC_constraint4(3)_ 1
- p_second_stage(1)_INC_delta(3) c_u_p_second_stage(1)_INC_constraint4(3)_ -1
- fx o 1
- fz o -1
- r o 1
- ONE_VAR_CONSTANT o -1
- BL BLOCK1 PERIOD2 0.33333333329999998
- RHS c_e_p_second_stage(1)_INC_constraint1_ -10
- RHS c_e_p_second_stage(1)_INC_constraint2_ 0
- RHS c_u_p_second_stage(1)_INC_constraint3(1)_ 0
- RHS c_u_p_second_stage(1)_INC_constraint3(2)_ 0
- RHS c_u_p_second_stage(1)_INC_constraint3(3)_ 0
- RHS c_u_p_second_stage(1)_INC_constraint4(1)_ 0
- RHS c_u_p_second_stage(1)_INC_constraint4(2)_ 0
- RHS c_u_p_second_stage(1)_INC_constraint4(3)_ 0
- RHS r_l_r_second_stage_ -2
- RHS r_u_r_second_stage_ 0
- r c_l_c_second_stage_ 2
- p_second_stage(1)_INC_delta(1) c_e_p_second_stage(1)_INC_constraint1_ -5
- p_second_stage(1)_INC_delta(2) c_e_p_second_stage(1)_INC_constraint1_ -5
- p_second_stage(1)_INC_delta(3) c_e_p_second_stage(1)_INC_constraint1_ -5
- p_second_stage(1)_INC_delta(4) c_e_p_second_stage(1)_INC_constraint1_ -5
- z c_e_p_second_stage(1)_INC_constraint1_ 1
- fz c_e_p_second_stage(1)_INC_constraint2_ 1
- p_second_stage(1)_INC_delta(2) c_e_p_second_stage(1)_INC_constraint2_ 1
- p_second_stage(1)_INC_delta(3) c_e_p_second_stage(1)_INC_constraint2_ -5
- p_second_stage(1)_INC_delta(4) c_e_p_second_stage(1)_INC_constraint2_ 3
- p_second_stage(1)_INC_bin_y(1) c_u_p_second_stage(1)_INC_constraint3(1)_ -1
- p_second_stage(1)_INC_delta(2) c_u_p_second_stage(1)_INC_constraint3(1)_ 1
- p_second_stage(1)_INC_bin_y(2) c_u_p_second_stage(1)_INC_constraint3(2)_ -1
- p_second_stage(1)_INC_delta(3) c_u_p_second_stage(1)_INC_constraint3(2)_ 1
- p_second_stage(1)_INC_bin_y(3) c_u_p_second_stage(1)_INC_constraint3(3)_ -1
- p_second_stage(1)_INC_delta(4) c_u_p_second_stage(1)_INC_constraint3(3)_ 1
- p_second_stage(1)_INC_bin_y(1) c_u_p_second_stage(1)_INC_constraint4(1)_ 1
- p_second_stage(1)_INC_delta(1) c_u_p_second_stage(1)_INC_constraint4(1)_ -1
- p_second_stage(1)_INC_bin_y(2) c_u_p_second_stage(1)_INC_constraint4(2)_ 1
- p_second_stage(1)_INC_delta(2) c_u_p_second_stage(1)_INC_constraint4(2)_ -1
- p_second_stage(1)_INC_bin_y(3) c_u_p_second_stage(1)_INC_constraint4(3)_ 1
- p_second_stage(1)_INC_delta(3) c_u_p_second_stage(1)_INC_constraint4(3)_ -1
- fx o 1
- fz o -1
- r o 1
- ONE_VAR_CONSTANT o -2
-ENDATA
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_symbolic_names_ignore_derived_baseline/piecewise.sto.struct b/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_symbolic_names_ignore_derived_baseline/piecewise.sto.struct
deleted file mode 100644
index 92b231fef93..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_symbolic_names_ignore_derived_baseline/piecewise.sto.struct
+++ /dev/null
@@ -1,36 +0,0 @@
-RHS c_e_p_second_stage(1)_INC_constraint1_
-RHS c_e_p_second_stage(1)_INC_constraint2_
-RHS c_u_p_second_stage(1)_INC_constraint3(1)_
-RHS c_u_p_second_stage(1)_INC_constraint3(2)_
-RHS c_u_p_second_stage(1)_INC_constraint3(3)_
-RHS c_u_p_second_stage(1)_INC_constraint4(1)_
-RHS c_u_p_second_stage(1)_INC_constraint4(2)_
-RHS c_u_p_second_stage(1)_INC_constraint4(3)_
-RHS r_l_r_second_stage_
-RHS r_u_r_second_stage_
-r c_l_c_second_stage_
-p_second_stage(1)_INC_delta(1) c_e_p_second_stage(1)_INC_constraint1_
-p_second_stage(1)_INC_delta(2) c_e_p_second_stage(1)_INC_constraint1_
-p_second_stage(1)_INC_delta(3) c_e_p_second_stage(1)_INC_constraint1_
-p_second_stage(1)_INC_delta(4) c_e_p_second_stage(1)_INC_constraint1_
-z c_e_p_second_stage(1)_INC_constraint1_
-fz c_e_p_second_stage(1)_INC_constraint2_
-p_second_stage(1)_INC_delta(2) c_e_p_second_stage(1)_INC_constraint2_
-p_second_stage(1)_INC_delta(3) c_e_p_second_stage(1)_INC_constraint2_
-p_second_stage(1)_INC_delta(4) c_e_p_second_stage(1)_INC_constraint2_
-p_second_stage(1)_INC_bin_y(1) c_u_p_second_stage(1)_INC_constraint3(1)_
-p_second_stage(1)_INC_delta(2) c_u_p_second_stage(1)_INC_constraint3(1)_
-p_second_stage(1)_INC_bin_y(2) c_u_p_second_stage(1)_INC_constraint3(2)_
-p_second_stage(1)_INC_delta(3) c_u_p_second_stage(1)_INC_constraint3(2)_
-p_second_stage(1)_INC_bin_y(3) c_u_p_second_stage(1)_INC_constraint3(3)_
-p_second_stage(1)_INC_delta(4) c_u_p_second_stage(1)_INC_constraint3(3)_
-p_second_stage(1)_INC_bin_y(1) c_u_p_second_stage(1)_INC_constraint4(1)_
-p_second_stage(1)_INC_delta(1) c_u_p_second_stage(1)_INC_constraint4(1)_
-p_second_stage(1)_INC_bin_y(2) c_u_p_second_stage(1)_INC_constraint4(2)_
-p_second_stage(1)_INC_delta(2) c_u_p_second_stage(1)_INC_constraint4(2)_
-p_second_stage(1)_INC_bin_y(3) c_u_p_second_stage(1)_INC_constraint4(3)_
-p_second_stage(1)_INC_delta(3) c_u_p_second_stage(1)_INC_constraint4(3)_
-fx o
-fz o
-r o
-ONE_VAR_CONSTANT o
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_symbolic_names_ignore_derived_baseline/piecewise.tim b/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_symbolic_names_ignore_derived_baseline/piecewise.tim
deleted file mode 100644
index aa860b22c5a..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_symbolic_names_ignore_derived_baseline/piecewise.tim
+++ /dev/null
@@ -1,49 +0,0 @@
-TIME piecewise
-PERIODS EXPLICIT
- TIME1
- TIME2
-ROWS
- o TIME1
- c_e_p_first_stage_INC_constraint1_ TIME1
- c_e_p_first_stage_INC_constraint2_ TIME1
- c_l_c_first_stage_ TIME1
- c_u_p_first_stage_INC_constraint3(1)_ TIME1
- c_u_p_first_stage_INC_constraint3(2)_ TIME1
- c_u_p_first_stage_INC_constraint3(3)_ TIME1
- c_u_p_first_stage_INC_constraint4(1)_ TIME1
- c_u_p_first_stage_INC_constraint4(2)_ TIME1
- c_u_p_first_stage_INC_constraint4(3)_ TIME1
- c_e_p_second_stage(1)_INC_constraint1_ TIME2
- c_e_p_second_stage(1)_INC_constraint2_ TIME2
- c_l_c_second_stage_ TIME2
- c_u_p_second_stage(1)_INC_constraint3(1)_ TIME2
- c_u_p_second_stage(1)_INC_constraint3(2)_ TIME2
- c_u_p_second_stage(1)_INC_constraint3(3)_ TIME2
- c_u_p_second_stage(1)_INC_constraint4(1)_ TIME2
- c_u_p_second_stage(1)_INC_constraint4(2)_ TIME2
- c_u_p_second_stage(1)_INC_constraint4(3)_ TIME2
- r_l_r_second_stage_ TIME2
- r_u_r_second_stage_ TIME2
- c_e_ONE_VAR_CONSTANT TIME2
-COLS
- fx TIME1
- p_first_stage_INC_bin_y(1) TIME1
- p_first_stage_INC_bin_y(2) TIME1
- p_first_stage_INC_bin_y(3) TIME1
- p_first_stage_INC_delta(1) TIME1
- p_first_stage_INC_delta(2) TIME1
- p_first_stage_INC_delta(3) TIME1
- p_first_stage_INC_delta(4) TIME1
- x TIME1
- fz TIME2
- p_second_stage(1)_INC_bin_y(1) TIME2
- p_second_stage(1)_INC_bin_y(2) TIME2
- p_second_stage(1)_INC_bin_y(3) TIME2
- p_second_stage(1)_INC_delta(1) TIME2
- p_second_stage(1)_INC_delta(2) TIME2
- p_second_stage(1)_INC_delta(3) TIME2
- p_second_stage(1)_INC_delta(4) TIME2
- r TIME2
- z TIME2
- ONE_VAR_CONSTANT TIME2
-ENDATA
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_symbolic_names_ignore_derived_baseline/scenario_files/piecewise.col.Scenario1 b/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_symbolic_names_ignore_derived_baseline/scenario_files/piecewise.col.Scenario1
deleted file mode 100644
index 6e2c4d0e629..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_symbolic_names_ignore_derived_baseline/scenario_files/piecewise.col.Scenario1
+++ /dev/null
@@ -1,20 +0,0 @@
-fx
-p_first_stage_INC_bin_y(1)
-p_first_stage_INC_bin_y(2)
-p_first_stage_INC_bin_y(3)
-p_first_stage_INC_delta(1)
-p_first_stage_INC_delta(2)
-p_first_stage_INC_delta(3)
-p_first_stage_INC_delta(4)
-x
-fz
-p_second_stage(1)_INC_bin_y(1)
-p_second_stage(1)_INC_bin_y(2)
-p_second_stage(1)_INC_bin_y(3)
-p_second_stage(1)_INC_delta(1)
-p_second_stage(1)_INC_delta(2)
-p_second_stage(1)_INC_delta(3)
-p_second_stage(1)_INC_delta(4)
-r
-z
-ONE_VAR_CONSTANT
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_symbolic_names_ignore_derived_baseline/scenario_files/piecewise.col.Scenario2 b/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_symbolic_names_ignore_derived_baseline/scenario_files/piecewise.col.Scenario2
deleted file mode 100644
index 6e2c4d0e629..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_symbolic_names_ignore_derived_baseline/scenario_files/piecewise.col.Scenario2
+++ /dev/null
@@ -1,20 +0,0 @@
-fx
-p_first_stage_INC_bin_y(1)
-p_first_stage_INC_bin_y(2)
-p_first_stage_INC_bin_y(3)
-p_first_stage_INC_delta(1)
-p_first_stage_INC_delta(2)
-p_first_stage_INC_delta(3)
-p_first_stage_INC_delta(4)
-x
-fz
-p_second_stage(1)_INC_bin_y(1)
-p_second_stage(1)_INC_bin_y(2)
-p_second_stage(1)_INC_bin_y(3)
-p_second_stage(1)_INC_delta(1)
-p_second_stage(1)_INC_delta(2)
-p_second_stage(1)_INC_delta(3)
-p_second_stage(1)_INC_delta(4)
-r
-z
-ONE_VAR_CONSTANT
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_symbolic_names_ignore_derived_baseline/scenario_files/piecewise.col.Scenario3 b/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_symbolic_names_ignore_derived_baseline/scenario_files/piecewise.col.Scenario3
deleted file mode 100644
index 6e2c4d0e629..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_symbolic_names_ignore_derived_baseline/scenario_files/piecewise.col.Scenario3
+++ /dev/null
@@ -1,20 +0,0 @@
-fx
-p_first_stage_INC_bin_y(1)
-p_first_stage_INC_bin_y(2)
-p_first_stage_INC_bin_y(3)
-p_first_stage_INC_delta(1)
-p_first_stage_INC_delta(2)
-p_first_stage_INC_delta(3)
-p_first_stage_INC_delta(4)
-x
-fz
-p_second_stage(1)_INC_bin_y(1)
-p_second_stage(1)_INC_bin_y(2)
-p_second_stage(1)_INC_bin_y(3)
-p_second_stage(1)_INC_delta(1)
-p_second_stage(1)_INC_delta(2)
-p_second_stage(1)_INC_delta(3)
-p_second_stage(1)_INC_delta(4)
-r
-z
-ONE_VAR_CONSTANT
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_symbolic_names_ignore_derived_baseline/scenario_files/piecewise.lp.Scenario1 b/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_symbolic_names_ignore_derived_baseline/scenario_files/piecewise.lp.Scenario1
deleted file mode 100644
index 2f56dbe03da..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_symbolic_names_ignore_derived_baseline/scenario_files/piecewise.lp.Scenario1
+++ /dev/null
@@ -1,148 +0,0 @@
-\* Source Pyomo model name=Scenario1 *\
-
-min
-o:
-+1 fx
--1 fz
-+1 r
-+0 ONE_VAR_CONSTANT
-
-s.t.
-
-c_e_p_first_stage_INC_constraint1_:
--2 p_first_stage_INC_delta(1)
--3 p_first_stage_INC_delta(2)
--2 p_first_stage_INC_delta(3)
--3 p_first_stage_INC_delta(4)
-+1 x
-= 0
-
-c_e_p_first_stage_INC_constraint2_:
-+1 fx
-+1 p_first_stage_INC_delta(2)
--1 p_first_stage_INC_delta(3)
-= 10
-
-c_l_c_first_stage_:
-+1 x
->= 0
-
-c_u_p_first_stage_INC_constraint3(1)_:
--1 p_first_stage_INC_bin_y(1)
-+1 p_first_stage_INC_delta(2)
-<= 0
-
-c_u_p_first_stage_INC_constraint3(2)_:
--1 p_first_stage_INC_bin_y(2)
-+1 p_first_stage_INC_delta(3)
-<= 0
-
-c_u_p_first_stage_INC_constraint3(3)_:
--1 p_first_stage_INC_bin_y(3)
-+1 p_first_stage_INC_delta(4)
-<= 0
-
-c_u_p_first_stage_INC_constraint4(1)_:
-+1 p_first_stage_INC_bin_y(1)
--1 p_first_stage_INC_delta(1)
-<= 0
-
-c_u_p_first_stage_INC_constraint4(2)_:
-+1 p_first_stage_INC_bin_y(2)
--1 p_first_stage_INC_delta(2)
-<= 0
-
-c_u_p_first_stage_INC_constraint4(3)_:
-+1 p_first_stage_INC_bin_y(3)
--1 p_first_stage_INC_delta(3)
-<= 0
-
-c_e_p_second_stage(1)_INC_constraint1_:
--5 p_second_stage(1)_INC_delta(1)
--5 p_second_stage(1)_INC_delta(2)
--5 p_second_stage(1)_INC_delta(3)
--5 p_second_stage(1)_INC_delta(4)
-+1 z
-= -10
-
-c_e_p_second_stage(1)_INC_constraint2_:
-+1 fz
-+1 p_second_stage(1)_INC_delta(2)
--3 p_second_stage(1)_INC_delta(3)
-+1 p_second_stage(1)_INC_delta(4)
-= 0
-
-c_l_c_second_stage_:
-+1 x
-+0 r
->= -100
-
-c_u_p_second_stage(1)_INC_constraint3(1)_:
--1 p_second_stage(1)_INC_bin_y(1)
-+1 p_second_stage(1)_INC_delta(2)
-<= 0
-
-c_u_p_second_stage(1)_INC_constraint3(2)_:
--1 p_second_stage(1)_INC_bin_y(2)
-+1 p_second_stage(1)_INC_delta(3)
-<= 0
-
-c_u_p_second_stage(1)_INC_constraint3(3)_:
--1 p_second_stage(1)_INC_bin_y(3)
-+1 p_second_stage(1)_INC_delta(4)
-<= 0
-
-c_u_p_second_stage(1)_INC_constraint4(1)_:
-+1 p_second_stage(1)_INC_bin_y(1)
--1 p_second_stage(1)_INC_delta(1)
-<= 0
-
-c_u_p_second_stage(1)_INC_constraint4(2)_:
-+1 p_second_stage(1)_INC_bin_y(2)
--1 p_second_stage(1)_INC_delta(2)
-<= 0
-
-c_u_p_second_stage(1)_INC_constraint4(3)_:
-+1 p_second_stage(1)_INC_bin_y(3)
--1 p_second_stage(1)_INC_delta(3)
-<= 0
-
-r_l_r_second_stage_:
-+1 r
->= 0
-
-r_u_r_second_stage_:
-+1 r
-<= 0
-
-c_e_ONE_VAR_CONSTANT:
-ONE_VAR_CONSTANT = 1.0
-
-bounds
- 0 <= x <= 10
- -inf <= fx <= +inf
- -10 <= z <= 10
- -inf <= fz <= +inf
- -inf <= r <= +inf
- -inf <= p_first_stage_INC_delta(1) <= 1
- -inf <= p_first_stage_INC_delta(2) <= +inf
- -inf <= p_first_stage_INC_delta(3) <= +inf
- 0 <= p_first_stage_INC_delta(4) <= +inf
- 0 <= p_first_stage_INC_bin_y(1) <= 1
- 0 <= p_first_stage_INC_bin_y(2) <= 1
- 0 <= p_first_stage_INC_bin_y(3) <= 1
- -inf <= p_second_stage(1)_INC_delta(1) <= 1
- -inf <= p_second_stage(1)_INC_delta(2) <= +inf
- -inf <= p_second_stage(1)_INC_delta(3) <= +inf
- 0 <= p_second_stage(1)_INC_delta(4) <= +inf
- 0 <= p_second_stage(1)_INC_bin_y(1) <= 1
- 0 <= p_second_stage(1)_INC_bin_y(2) <= 1
- 0 <= p_second_stage(1)_INC_bin_y(3) <= 1
-binary
- p_first_stage_INC_bin_y(1)
- p_first_stage_INC_bin_y(2)
- p_first_stage_INC_bin_y(3)
- p_second_stage(1)_INC_bin_y(1)
- p_second_stage(1)_INC_bin_y(2)
- p_second_stage(1)_INC_bin_y(3)
-end
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_symbolic_names_ignore_derived_baseline/scenario_files/piecewise.lp.Scenario2 b/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_symbolic_names_ignore_derived_baseline/scenario_files/piecewise.lp.Scenario2
deleted file mode 100644
index 05fbbab9369..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_symbolic_names_ignore_derived_baseline/scenario_files/piecewise.lp.Scenario2
+++ /dev/null
@@ -1,148 +0,0 @@
-\* Source Pyomo model name=Scenario2 *\
-
-min
-o:
-+1 fx
--1 fz
-+1 r
--1 ONE_VAR_CONSTANT
-
-s.t.
-
-c_e_p_first_stage_INC_constraint1_:
--2 p_first_stage_INC_delta(1)
--3 p_first_stage_INC_delta(2)
--2 p_first_stage_INC_delta(3)
--3 p_first_stage_INC_delta(4)
-+1 x
-= 0
-
-c_e_p_first_stage_INC_constraint2_:
-+1 fx
-+1 p_first_stage_INC_delta(2)
--1 p_first_stage_INC_delta(3)
-= 10
-
-c_l_c_first_stage_:
-+1 x
->= 0
-
-c_u_p_first_stage_INC_constraint3(1)_:
--1 p_first_stage_INC_bin_y(1)
-+1 p_first_stage_INC_delta(2)
-<= 0
-
-c_u_p_first_stage_INC_constraint3(2)_:
--1 p_first_stage_INC_bin_y(2)
-+1 p_first_stage_INC_delta(3)
-<= 0
-
-c_u_p_first_stage_INC_constraint3(3)_:
--1 p_first_stage_INC_bin_y(3)
-+1 p_first_stage_INC_delta(4)
-<= 0
-
-c_u_p_first_stage_INC_constraint4(1)_:
-+1 p_first_stage_INC_bin_y(1)
--1 p_first_stage_INC_delta(1)
-<= 0
-
-c_u_p_first_stage_INC_constraint4(2)_:
-+1 p_first_stage_INC_bin_y(2)
--1 p_first_stage_INC_delta(2)
-<= 0
-
-c_u_p_first_stage_INC_constraint4(3)_:
-+1 p_first_stage_INC_bin_y(3)
--1 p_first_stage_INC_delta(3)
-<= 0
-
-c_e_p_second_stage(1)_INC_constraint1_:
--5 p_second_stage(1)_INC_delta(1)
--5 p_second_stage(1)_INC_delta(2)
--5 p_second_stage(1)_INC_delta(3)
--5 p_second_stage(1)_INC_delta(4)
-+1 z
-= -10
-
-c_e_p_second_stage(1)_INC_constraint2_:
-+1 fz
-+1 p_second_stage(1)_INC_delta(2)
--4 p_second_stage(1)_INC_delta(3)
-+2 p_second_stage(1)_INC_delta(4)
-= 0
-
-c_l_c_second_stage_:
-+1 x
-+1 r
->= -100
-
-c_u_p_second_stage(1)_INC_constraint3(1)_:
--1 p_second_stage(1)_INC_bin_y(1)
-+1 p_second_stage(1)_INC_delta(2)
-<= 0
-
-c_u_p_second_stage(1)_INC_constraint3(2)_:
--1 p_second_stage(1)_INC_bin_y(2)
-+1 p_second_stage(1)_INC_delta(3)
-<= 0
-
-c_u_p_second_stage(1)_INC_constraint3(3)_:
--1 p_second_stage(1)_INC_bin_y(3)
-+1 p_second_stage(1)_INC_delta(4)
-<= 0
-
-c_u_p_second_stage(1)_INC_constraint4(1)_:
-+1 p_second_stage(1)_INC_bin_y(1)
--1 p_second_stage(1)_INC_delta(1)
-<= 0
-
-c_u_p_second_stage(1)_INC_constraint4(2)_:
-+1 p_second_stage(1)_INC_bin_y(2)
--1 p_second_stage(1)_INC_delta(2)
-<= 0
-
-c_u_p_second_stage(1)_INC_constraint4(3)_:
-+1 p_second_stage(1)_INC_bin_y(3)
--1 p_second_stage(1)_INC_delta(3)
-<= 0
-
-r_l_r_second_stage_:
-+1 r
->= -1
-
-r_u_r_second_stage_:
-+1 r
-<= 0
-
-c_e_ONE_VAR_CONSTANT:
-ONE_VAR_CONSTANT = 1.0
-
-bounds
- 0 <= x <= 10
- -inf <= fx <= +inf
- -10 <= z <= 10
- -inf <= fz <= +inf
- -inf <= r <= +inf
- -inf <= p_first_stage_INC_delta(1) <= 1
- -inf <= p_first_stage_INC_delta(2) <= +inf
- -inf <= p_first_stage_INC_delta(3) <= +inf
- 0 <= p_first_stage_INC_delta(4) <= +inf
- 0 <= p_first_stage_INC_bin_y(1) <= 1
- 0 <= p_first_stage_INC_bin_y(2) <= 1
- 0 <= p_first_stage_INC_bin_y(3) <= 1
- -inf <= p_second_stage(1)_INC_delta(1) <= 1
- -inf <= p_second_stage(1)_INC_delta(2) <= +inf
- -inf <= p_second_stage(1)_INC_delta(3) <= +inf
- 0 <= p_second_stage(1)_INC_delta(4) <= +inf
- 0 <= p_second_stage(1)_INC_bin_y(1) <= 1
- 0 <= p_second_stage(1)_INC_bin_y(2) <= 1
- 0 <= p_second_stage(1)_INC_bin_y(3) <= 1
-binary
- p_first_stage_INC_bin_y(1)
- p_first_stage_INC_bin_y(2)
- p_first_stage_INC_bin_y(3)
- p_second_stage(1)_INC_bin_y(1)
- p_second_stage(1)_INC_bin_y(2)
- p_second_stage(1)_INC_bin_y(3)
-end
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_symbolic_names_ignore_derived_baseline/scenario_files/piecewise.lp.Scenario3 b/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_symbolic_names_ignore_derived_baseline/scenario_files/piecewise.lp.Scenario3
deleted file mode 100644
index e7f9a65b7c1..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_symbolic_names_ignore_derived_baseline/scenario_files/piecewise.lp.Scenario3
+++ /dev/null
@@ -1,148 +0,0 @@
-\* Source Pyomo model name=Scenario3 *\
-
-min
-o:
-+1 fx
--1 fz
-+1 r
--2 ONE_VAR_CONSTANT
-
-s.t.
-
-c_e_p_first_stage_INC_constraint1_:
--2 p_first_stage_INC_delta(1)
--3 p_first_stage_INC_delta(2)
--2 p_first_stage_INC_delta(3)
--3 p_first_stage_INC_delta(4)
-+1 x
-= 0
-
-c_e_p_first_stage_INC_constraint2_:
-+1 fx
-+1 p_first_stage_INC_delta(2)
--1 p_first_stage_INC_delta(3)
-= 10
-
-c_l_c_first_stage_:
-+1 x
->= 0
-
-c_u_p_first_stage_INC_constraint3(1)_:
--1 p_first_stage_INC_bin_y(1)
-+1 p_first_stage_INC_delta(2)
-<= 0
-
-c_u_p_first_stage_INC_constraint3(2)_:
--1 p_first_stage_INC_bin_y(2)
-+1 p_first_stage_INC_delta(3)
-<= 0
-
-c_u_p_first_stage_INC_constraint3(3)_:
--1 p_first_stage_INC_bin_y(3)
-+1 p_first_stage_INC_delta(4)
-<= 0
-
-c_u_p_first_stage_INC_constraint4(1)_:
-+1 p_first_stage_INC_bin_y(1)
--1 p_first_stage_INC_delta(1)
-<= 0
-
-c_u_p_first_stage_INC_constraint4(2)_:
-+1 p_first_stage_INC_bin_y(2)
--1 p_first_stage_INC_delta(2)
-<= 0
-
-c_u_p_first_stage_INC_constraint4(3)_:
-+1 p_first_stage_INC_bin_y(3)
--1 p_first_stage_INC_delta(3)
-<= 0
-
-c_e_p_second_stage(1)_INC_constraint1_:
--5 p_second_stage(1)_INC_delta(1)
--5 p_second_stage(1)_INC_delta(2)
--5 p_second_stage(1)_INC_delta(3)
--5 p_second_stage(1)_INC_delta(4)
-+1 z
-= -10
-
-c_e_p_second_stage(1)_INC_constraint2_:
-+1 fz
-+1 p_second_stage(1)_INC_delta(2)
--5 p_second_stage(1)_INC_delta(3)
-+3 p_second_stage(1)_INC_delta(4)
-= 0
-
-c_l_c_second_stage_:
-+1 x
-+2 r
->= -100
-
-c_u_p_second_stage(1)_INC_constraint3(1)_:
--1 p_second_stage(1)_INC_bin_y(1)
-+1 p_second_stage(1)_INC_delta(2)
-<= 0
-
-c_u_p_second_stage(1)_INC_constraint3(2)_:
--1 p_second_stage(1)_INC_bin_y(2)
-+1 p_second_stage(1)_INC_delta(3)
-<= 0
-
-c_u_p_second_stage(1)_INC_constraint3(3)_:
--1 p_second_stage(1)_INC_bin_y(3)
-+1 p_second_stage(1)_INC_delta(4)
-<= 0
-
-c_u_p_second_stage(1)_INC_constraint4(1)_:
-+1 p_second_stage(1)_INC_bin_y(1)
--1 p_second_stage(1)_INC_delta(1)
-<= 0
-
-c_u_p_second_stage(1)_INC_constraint4(2)_:
-+1 p_second_stage(1)_INC_bin_y(2)
--1 p_second_stage(1)_INC_delta(2)
-<= 0
-
-c_u_p_second_stage(1)_INC_constraint4(3)_:
-+1 p_second_stage(1)_INC_bin_y(3)
--1 p_second_stage(1)_INC_delta(3)
-<= 0
-
-r_l_r_second_stage_:
-+1 r
->= -2
-
-r_u_r_second_stage_:
-+1 r
-<= 0
-
-c_e_ONE_VAR_CONSTANT:
-ONE_VAR_CONSTANT = 1.0
-
-bounds
- 0 <= x <= 10
- -inf <= fx <= +inf
- -10 <= z <= 10
- -inf <= fz <= +inf
- -inf <= r <= +inf
- -inf <= p_first_stage_INC_delta(1) <= 1
- -inf <= p_first_stage_INC_delta(2) <= +inf
- -inf <= p_first_stage_INC_delta(3) <= +inf
- 0 <= p_first_stage_INC_delta(4) <= +inf
- 0 <= p_first_stage_INC_bin_y(1) <= 1
- 0 <= p_first_stage_INC_bin_y(2) <= 1
- 0 <= p_first_stage_INC_bin_y(3) <= 1
- -inf <= p_second_stage(1)_INC_delta(1) <= 1
- -inf <= p_second_stage(1)_INC_delta(2) <= +inf
- -inf <= p_second_stage(1)_INC_delta(3) <= +inf
- 0 <= p_second_stage(1)_INC_delta(4) <= +inf
- 0 <= p_second_stage(1)_INC_bin_y(1) <= 1
- 0 <= p_second_stage(1)_INC_bin_y(2) <= 1
- 0 <= p_second_stage(1)_INC_bin_y(3) <= 1
-binary
- p_first_stage_INC_bin_y(1)
- p_first_stage_INC_bin_y(2)
- p_first_stage_INC_bin_y(3)
- p_second_stage(1)_INC_bin_y(1)
- p_second_stage(1)_INC_bin_y(2)
- p_second_stage(1)_INC_bin_y(3)
-end
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_symbolic_names_ignore_derived_baseline/scenario_files/piecewise.lp.det.Scenario1 b/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_symbolic_names_ignore_derived_baseline/scenario_files/piecewise.lp.det.Scenario1
deleted file mode 100644
index 578d9d6ecc0..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_symbolic_names_ignore_derived_baseline/scenario_files/piecewise.lp.det.Scenario1
+++ /dev/null
@@ -1,148 +0,0 @@
-\* Source Pyomo model name=ZeroStochasticData *\
-
-min
-o:
--9876543210 fx
--9876543210 fz
--9876543210 r
-+0 ONE_VAR_CONSTANT
-
-s.t.
-
-c_e_p_first_stage_INC_constraint1_:
--2 p_first_stage_INC_delta(1)
--3 p_first_stage_INC_delta(2)
--2 p_first_stage_INC_delta(3)
--3 p_first_stage_INC_delta(4)
-+1 x
-= 0
-
-c_e_p_first_stage_INC_constraint2_:
-+1 fx
-+1 p_first_stage_INC_delta(2)
--1 p_first_stage_INC_delta(3)
-= 10
-
-c_l_c_first_stage_:
-+1 x
->= 0
-
-c_u_p_first_stage_INC_constraint3(1)_:
--1 p_first_stage_INC_bin_y(1)
-+1 p_first_stage_INC_delta(2)
-<= 0
-
-c_u_p_first_stage_INC_constraint3(2)_:
--1 p_first_stage_INC_bin_y(2)
-+1 p_first_stage_INC_delta(3)
-<= 0
-
-c_u_p_first_stage_INC_constraint3(3)_:
--1 p_first_stage_INC_bin_y(3)
-+1 p_first_stage_INC_delta(4)
-<= 0
-
-c_u_p_first_stage_INC_constraint4(1)_:
-+1 p_first_stage_INC_bin_y(1)
--1 p_first_stage_INC_delta(1)
-<= 0
-
-c_u_p_first_stage_INC_constraint4(2)_:
-+1 p_first_stage_INC_bin_y(2)
--1 p_first_stage_INC_delta(2)
-<= 0
-
-c_u_p_first_stage_INC_constraint4(3)_:
-+1 p_first_stage_INC_bin_y(3)
--1 p_first_stage_INC_delta(3)
-<= 0
-
-c_e_p_second_stage(1)_INC_constraint1_:
--9876543210 p_second_stage(1)_INC_delta(1)
--9876543210 p_second_stage(1)_INC_delta(2)
--9876543210 p_second_stage(1)_INC_delta(3)
--9876543210 p_second_stage(1)_INC_delta(4)
--9876543210 z
-= -9876543210
-
-c_e_p_second_stage(1)_INC_constraint2_:
--9876543210 fz
--9876543210 p_second_stage(1)_INC_delta(2)
--9876543210 p_second_stage(1)_INC_delta(3)
--9876543210 p_second_stage(1)_INC_delta(4)
-= -9876543210
-
-c_l_c_second_stage_:
-+1 x
--9876543210 r
->= -100
-
-c_u_p_second_stage(1)_INC_constraint3(1)_:
--9876543210 p_second_stage(1)_INC_bin_y(1)
--9876543210 p_second_stage(1)_INC_delta(2)
-<= -9876543210
-
-c_u_p_second_stage(1)_INC_constraint3(2)_:
--9876543210 p_second_stage(1)_INC_bin_y(2)
--9876543210 p_second_stage(1)_INC_delta(3)
-<= -9876543210
-
-c_u_p_second_stage(1)_INC_constraint3(3)_:
--9876543210 p_second_stage(1)_INC_bin_y(3)
--9876543210 p_second_stage(1)_INC_delta(4)
-<= -9876543210
-
-c_u_p_second_stage(1)_INC_constraint4(1)_:
--9876543210 p_second_stage(1)_INC_bin_y(1)
--9876543210 p_second_stage(1)_INC_delta(1)
-<= -9876543210
-
-c_u_p_second_stage(1)_INC_constraint4(2)_:
--9876543210 p_second_stage(1)_INC_bin_y(2)
--9876543210 p_second_stage(1)_INC_delta(2)
-<= -9876543210
-
-c_u_p_second_stage(1)_INC_constraint4(3)_:
--9876543210 p_second_stage(1)_INC_bin_y(3)
--9876543210 p_second_stage(1)_INC_delta(3)
-<= -9876543210
-
-r_l_r_second_stage_:
-+1 r
->= -9876543210
-
-r_u_r_second_stage_:
-+1 r
-<= -9876543210
-
-c_e_ONE_VAR_CONSTANT:
-ONE_VAR_CONSTANT = 1.0
-
-bounds
- 0 <= x <= 10
- -inf <= fx <= +inf
- -10 <= z <= 10
- -inf <= fz <= +inf
- -inf <= r <= +inf
- -inf <= p_first_stage_INC_delta(1) <= 1
- -inf <= p_first_stage_INC_delta(2) <= +inf
- -inf <= p_first_stage_INC_delta(3) <= +inf
- 0 <= p_first_stage_INC_delta(4) <= +inf
- 0 <= p_first_stage_INC_bin_y(1) <= 1
- 0 <= p_first_stage_INC_bin_y(2) <= 1
- 0 <= p_first_stage_INC_bin_y(3) <= 1
- -inf <= p_second_stage(1)_INC_delta(1) <= 1
- -inf <= p_second_stage(1)_INC_delta(2) <= +inf
- -inf <= p_second_stage(1)_INC_delta(3) <= +inf
- 0 <= p_second_stage(1)_INC_delta(4) <= +inf
- 0 <= p_second_stage(1)_INC_bin_y(1) <= 1
- 0 <= p_second_stage(1)_INC_bin_y(2) <= 1
- 0 <= p_second_stage(1)_INC_bin_y(3) <= 1
-binary
- p_first_stage_INC_bin_y(1)
- p_first_stage_INC_bin_y(2)
- p_first_stage_INC_bin_y(3)
- p_second_stage(1)_INC_bin_y(1)
- p_second_stage(1)_INC_bin_y(2)
- p_second_stage(1)_INC_bin_y(3)
-end
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_symbolic_names_ignore_derived_baseline/scenario_files/piecewise.lp.det.Scenario2 b/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_symbolic_names_ignore_derived_baseline/scenario_files/piecewise.lp.det.Scenario2
deleted file mode 100644
index 578d9d6ecc0..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_symbolic_names_ignore_derived_baseline/scenario_files/piecewise.lp.det.Scenario2
+++ /dev/null
@@ -1,148 +0,0 @@
-\* Source Pyomo model name=ZeroStochasticData *\
-
-min
-o:
--9876543210 fx
--9876543210 fz
--9876543210 r
-+0 ONE_VAR_CONSTANT
-
-s.t.
-
-c_e_p_first_stage_INC_constraint1_:
--2 p_first_stage_INC_delta(1)
--3 p_first_stage_INC_delta(2)
--2 p_first_stage_INC_delta(3)
--3 p_first_stage_INC_delta(4)
-+1 x
-= 0
-
-c_e_p_first_stage_INC_constraint2_:
-+1 fx
-+1 p_first_stage_INC_delta(2)
--1 p_first_stage_INC_delta(3)
-= 10
-
-c_l_c_first_stage_:
-+1 x
->= 0
-
-c_u_p_first_stage_INC_constraint3(1)_:
--1 p_first_stage_INC_bin_y(1)
-+1 p_first_stage_INC_delta(2)
-<= 0
-
-c_u_p_first_stage_INC_constraint3(2)_:
--1 p_first_stage_INC_bin_y(2)
-+1 p_first_stage_INC_delta(3)
-<= 0
-
-c_u_p_first_stage_INC_constraint3(3)_:
--1 p_first_stage_INC_bin_y(3)
-+1 p_first_stage_INC_delta(4)
-<= 0
-
-c_u_p_first_stage_INC_constraint4(1)_:
-+1 p_first_stage_INC_bin_y(1)
--1 p_first_stage_INC_delta(1)
-<= 0
-
-c_u_p_first_stage_INC_constraint4(2)_:
-+1 p_first_stage_INC_bin_y(2)
--1 p_first_stage_INC_delta(2)
-<= 0
-
-c_u_p_first_stage_INC_constraint4(3)_:
-+1 p_first_stage_INC_bin_y(3)
--1 p_first_stage_INC_delta(3)
-<= 0
-
-c_e_p_second_stage(1)_INC_constraint1_:
--9876543210 p_second_stage(1)_INC_delta(1)
--9876543210 p_second_stage(1)_INC_delta(2)
--9876543210 p_second_stage(1)_INC_delta(3)
--9876543210 p_second_stage(1)_INC_delta(4)
--9876543210 z
-= -9876543210
-
-c_e_p_second_stage(1)_INC_constraint2_:
--9876543210 fz
--9876543210 p_second_stage(1)_INC_delta(2)
--9876543210 p_second_stage(1)_INC_delta(3)
--9876543210 p_second_stage(1)_INC_delta(4)
-= -9876543210
-
-c_l_c_second_stage_:
-+1 x
--9876543210 r
->= -100
-
-c_u_p_second_stage(1)_INC_constraint3(1)_:
--9876543210 p_second_stage(1)_INC_bin_y(1)
--9876543210 p_second_stage(1)_INC_delta(2)
-<= -9876543210
-
-c_u_p_second_stage(1)_INC_constraint3(2)_:
--9876543210 p_second_stage(1)_INC_bin_y(2)
--9876543210 p_second_stage(1)_INC_delta(3)
-<= -9876543210
-
-c_u_p_second_stage(1)_INC_constraint3(3)_:
--9876543210 p_second_stage(1)_INC_bin_y(3)
--9876543210 p_second_stage(1)_INC_delta(4)
-<= -9876543210
-
-c_u_p_second_stage(1)_INC_constraint4(1)_:
--9876543210 p_second_stage(1)_INC_bin_y(1)
--9876543210 p_second_stage(1)_INC_delta(1)
-<= -9876543210
-
-c_u_p_second_stage(1)_INC_constraint4(2)_:
--9876543210 p_second_stage(1)_INC_bin_y(2)
--9876543210 p_second_stage(1)_INC_delta(2)
-<= -9876543210
-
-c_u_p_second_stage(1)_INC_constraint4(3)_:
--9876543210 p_second_stage(1)_INC_bin_y(3)
--9876543210 p_second_stage(1)_INC_delta(3)
-<= -9876543210
-
-r_l_r_second_stage_:
-+1 r
->= -9876543210
-
-r_u_r_second_stage_:
-+1 r
-<= -9876543210
-
-c_e_ONE_VAR_CONSTANT:
-ONE_VAR_CONSTANT = 1.0
-
-bounds
- 0 <= x <= 10
- -inf <= fx <= +inf
- -10 <= z <= 10
- -inf <= fz <= +inf
- -inf <= r <= +inf
- -inf <= p_first_stage_INC_delta(1) <= 1
- -inf <= p_first_stage_INC_delta(2) <= +inf
- -inf <= p_first_stage_INC_delta(3) <= +inf
- 0 <= p_first_stage_INC_delta(4) <= +inf
- 0 <= p_first_stage_INC_bin_y(1) <= 1
- 0 <= p_first_stage_INC_bin_y(2) <= 1
- 0 <= p_first_stage_INC_bin_y(3) <= 1
- -inf <= p_second_stage(1)_INC_delta(1) <= 1
- -inf <= p_second_stage(1)_INC_delta(2) <= +inf
- -inf <= p_second_stage(1)_INC_delta(3) <= +inf
- 0 <= p_second_stage(1)_INC_delta(4) <= +inf
- 0 <= p_second_stage(1)_INC_bin_y(1) <= 1
- 0 <= p_second_stage(1)_INC_bin_y(2) <= 1
- 0 <= p_second_stage(1)_INC_bin_y(3) <= 1
-binary
- p_first_stage_INC_bin_y(1)
- p_first_stage_INC_bin_y(2)
- p_first_stage_INC_bin_y(3)
- p_second_stage(1)_INC_bin_y(1)
- p_second_stage(1)_INC_bin_y(2)
- p_second_stage(1)_INC_bin_y(3)
-end
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_symbolic_names_ignore_derived_baseline/scenario_files/piecewise.lp.det.Scenario3 b/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_symbolic_names_ignore_derived_baseline/scenario_files/piecewise.lp.det.Scenario3
deleted file mode 100644
index 578d9d6ecc0..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_symbolic_names_ignore_derived_baseline/scenario_files/piecewise.lp.det.Scenario3
+++ /dev/null
@@ -1,148 +0,0 @@
-\* Source Pyomo model name=ZeroStochasticData *\
-
-min
-o:
--9876543210 fx
--9876543210 fz
--9876543210 r
-+0 ONE_VAR_CONSTANT
-
-s.t.
-
-c_e_p_first_stage_INC_constraint1_:
--2 p_first_stage_INC_delta(1)
--3 p_first_stage_INC_delta(2)
--2 p_first_stage_INC_delta(3)
--3 p_first_stage_INC_delta(4)
-+1 x
-= 0
-
-c_e_p_first_stage_INC_constraint2_:
-+1 fx
-+1 p_first_stage_INC_delta(2)
--1 p_first_stage_INC_delta(3)
-= 10
-
-c_l_c_first_stage_:
-+1 x
->= 0
-
-c_u_p_first_stage_INC_constraint3(1)_:
--1 p_first_stage_INC_bin_y(1)
-+1 p_first_stage_INC_delta(2)
-<= 0
-
-c_u_p_first_stage_INC_constraint3(2)_:
--1 p_first_stage_INC_bin_y(2)
-+1 p_first_stage_INC_delta(3)
-<= 0
-
-c_u_p_first_stage_INC_constraint3(3)_:
--1 p_first_stage_INC_bin_y(3)
-+1 p_first_stage_INC_delta(4)
-<= 0
-
-c_u_p_first_stage_INC_constraint4(1)_:
-+1 p_first_stage_INC_bin_y(1)
--1 p_first_stage_INC_delta(1)
-<= 0
-
-c_u_p_first_stage_INC_constraint4(2)_:
-+1 p_first_stage_INC_bin_y(2)
--1 p_first_stage_INC_delta(2)
-<= 0
-
-c_u_p_first_stage_INC_constraint4(3)_:
-+1 p_first_stage_INC_bin_y(3)
--1 p_first_stage_INC_delta(3)
-<= 0
-
-c_e_p_second_stage(1)_INC_constraint1_:
--9876543210 p_second_stage(1)_INC_delta(1)
--9876543210 p_second_stage(1)_INC_delta(2)
--9876543210 p_second_stage(1)_INC_delta(3)
--9876543210 p_second_stage(1)_INC_delta(4)
--9876543210 z
-= -9876543210
-
-c_e_p_second_stage(1)_INC_constraint2_:
--9876543210 fz
--9876543210 p_second_stage(1)_INC_delta(2)
--9876543210 p_second_stage(1)_INC_delta(3)
--9876543210 p_second_stage(1)_INC_delta(4)
-= -9876543210
-
-c_l_c_second_stage_:
-+1 x
--9876543210 r
->= -100
-
-c_u_p_second_stage(1)_INC_constraint3(1)_:
--9876543210 p_second_stage(1)_INC_bin_y(1)
--9876543210 p_second_stage(1)_INC_delta(2)
-<= -9876543210
-
-c_u_p_second_stage(1)_INC_constraint3(2)_:
--9876543210 p_second_stage(1)_INC_bin_y(2)
--9876543210 p_second_stage(1)_INC_delta(3)
-<= -9876543210
-
-c_u_p_second_stage(1)_INC_constraint3(3)_:
--9876543210 p_second_stage(1)_INC_bin_y(3)
--9876543210 p_second_stage(1)_INC_delta(4)
-<= -9876543210
-
-c_u_p_second_stage(1)_INC_constraint4(1)_:
--9876543210 p_second_stage(1)_INC_bin_y(1)
--9876543210 p_second_stage(1)_INC_delta(1)
-<= -9876543210
-
-c_u_p_second_stage(1)_INC_constraint4(2)_:
--9876543210 p_second_stage(1)_INC_bin_y(2)
--9876543210 p_second_stage(1)_INC_delta(2)
-<= -9876543210
-
-c_u_p_second_stage(1)_INC_constraint4(3)_:
--9876543210 p_second_stage(1)_INC_bin_y(3)
--9876543210 p_second_stage(1)_INC_delta(3)
-<= -9876543210
-
-r_l_r_second_stage_:
-+1 r
->= -9876543210
-
-r_u_r_second_stage_:
-+1 r
-<= -9876543210
-
-c_e_ONE_VAR_CONSTANT:
-ONE_VAR_CONSTANT = 1.0
-
-bounds
- 0 <= x <= 10
- -inf <= fx <= +inf
- -10 <= z <= 10
- -inf <= fz <= +inf
- -inf <= r <= +inf
- -inf <= p_first_stage_INC_delta(1) <= 1
- -inf <= p_first_stage_INC_delta(2) <= +inf
- -inf <= p_first_stage_INC_delta(3) <= +inf
- 0 <= p_first_stage_INC_delta(4) <= +inf
- 0 <= p_first_stage_INC_bin_y(1) <= 1
- 0 <= p_first_stage_INC_bin_y(2) <= 1
- 0 <= p_first_stage_INC_bin_y(3) <= 1
- -inf <= p_second_stage(1)_INC_delta(1) <= 1
- -inf <= p_second_stage(1)_INC_delta(2) <= +inf
- -inf <= p_second_stage(1)_INC_delta(3) <= +inf
- 0 <= p_second_stage(1)_INC_delta(4) <= +inf
- 0 <= p_second_stage(1)_INC_bin_y(1) <= 1
- 0 <= p_second_stage(1)_INC_bin_y(2) <= 1
- 0 <= p_second_stage(1)_INC_bin_y(3) <= 1
-binary
- p_first_stage_INC_bin_y(1)
- p_first_stage_INC_bin_y(2)
- p_first_stage_INC_bin_y(3)
- p_second_stage(1)_INC_bin_y(1)
- p_second_stage(1)_INC_bin_y(2)
- p_second_stage(1)_INC_bin_y(3)
-end
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_symbolic_names_ignore_derived_baseline/scenario_files/piecewise.lp.symbols.Scenario1 b/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_symbolic_names_ignore_derived_baseline/scenario_files/piecewise.lp.symbols.Scenario1
deleted file mode 100644
index 3ea722dd807..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_symbolic_names_ignore_derived_baseline/scenario_files/piecewise.lp.symbols.Scenario1
+++ /dev/null
@@ -1,9 +0,0 @@
-fx fx
-p_first_stage_INC_bin_y(1) p_first_stage.INC_bin_y:#1
-p_first_stage_INC_bin_y(2) p_first_stage.INC_bin_y:#2
-p_first_stage_INC_bin_y(3) p_first_stage.INC_bin_y:#3
-p_first_stage_INC_delta(1) p_first_stage.INC_delta:#1
-p_first_stage_INC_delta(2) p_first_stage.INC_delta:#2
-p_first_stage_INC_delta(3) p_first_stage.INC_delta:#3
-p_first_stage_INC_delta(4) p_first_stage.INC_delta:#4
-x x
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_symbolic_names_ignore_derived_baseline/scenario_files/piecewise.lp.symbols.Scenario2 b/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_symbolic_names_ignore_derived_baseline/scenario_files/piecewise.lp.symbols.Scenario2
deleted file mode 100644
index 3ea722dd807..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_symbolic_names_ignore_derived_baseline/scenario_files/piecewise.lp.symbols.Scenario2
+++ /dev/null
@@ -1,9 +0,0 @@
-fx fx
-p_first_stage_INC_bin_y(1) p_first_stage.INC_bin_y:#1
-p_first_stage_INC_bin_y(2) p_first_stage.INC_bin_y:#2
-p_first_stage_INC_bin_y(3) p_first_stage.INC_bin_y:#3
-p_first_stage_INC_delta(1) p_first_stage.INC_delta:#1
-p_first_stage_INC_delta(2) p_first_stage.INC_delta:#2
-p_first_stage_INC_delta(3) p_first_stage.INC_delta:#3
-p_first_stage_INC_delta(4) p_first_stage.INC_delta:#4
-x x
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_symbolic_names_ignore_derived_baseline/scenario_files/piecewise.lp.symbols.Scenario3 b/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_symbolic_names_ignore_derived_baseline/scenario_files/piecewise.lp.symbols.Scenario3
deleted file mode 100644
index 3ea722dd807..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_symbolic_names_ignore_derived_baseline/scenario_files/piecewise.lp.symbols.Scenario3
+++ /dev/null
@@ -1,9 +0,0 @@
-fx fx
-p_first_stage_INC_bin_y(1) p_first_stage.INC_bin_y:#1
-p_first_stage_INC_bin_y(2) p_first_stage.INC_bin_y:#2
-p_first_stage_INC_bin_y(3) p_first_stage.INC_bin_y:#3
-p_first_stage_INC_delta(1) p_first_stage.INC_delta:#1
-p_first_stage_INC_delta(2) p_first_stage.INC_delta:#2
-p_first_stage_INC_delta(3) p_first_stage.INC_delta:#3
-p_first_stage_INC_delta(4) p_first_stage.INC_delta:#4
-x x
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_symbolic_names_ignore_derived_baseline/scenario_files/piecewise.row.Scenario1 b/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_symbolic_names_ignore_derived_baseline/scenario_files/piecewise.row.Scenario1
deleted file mode 100644
index 12384c6692a..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_symbolic_names_ignore_derived_baseline/scenario_files/piecewise.row.Scenario1
+++ /dev/null
@@ -1,22 +0,0 @@
-o
-c_e_p_first_stage_INC_constraint1_
-c_e_p_first_stage_INC_constraint2_
-c_l_c_first_stage_
-c_u_p_first_stage_INC_constraint3(1)_
-c_u_p_first_stage_INC_constraint3(2)_
-c_u_p_first_stage_INC_constraint3(3)_
-c_u_p_first_stage_INC_constraint4(1)_
-c_u_p_first_stage_INC_constraint4(2)_
-c_u_p_first_stage_INC_constraint4(3)_
-c_e_p_second_stage(1)_INC_constraint1_
-c_e_p_second_stage(1)_INC_constraint2_
-c_l_c_second_stage_
-c_u_p_second_stage(1)_INC_constraint3(1)_
-c_u_p_second_stage(1)_INC_constraint3(2)_
-c_u_p_second_stage(1)_INC_constraint3(3)_
-c_u_p_second_stage(1)_INC_constraint4(1)_
-c_u_p_second_stage(1)_INC_constraint4(2)_
-c_u_p_second_stage(1)_INC_constraint4(3)_
-r_l_r_second_stage_
-r_u_r_second_stage_
-c_e_ONE_VAR_CONSTANT
\ No newline at end of file
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_symbolic_names_ignore_derived_baseline/scenario_files/piecewise.row.Scenario2 b/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_symbolic_names_ignore_derived_baseline/scenario_files/piecewise.row.Scenario2
deleted file mode 100644
index 12384c6692a..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_symbolic_names_ignore_derived_baseline/scenario_files/piecewise.row.Scenario2
+++ /dev/null
@@ -1,22 +0,0 @@
-o
-c_e_p_first_stage_INC_constraint1_
-c_e_p_first_stage_INC_constraint2_
-c_l_c_first_stage_
-c_u_p_first_stage_INC_constraint3(1)_
-c_u_p_first_stage_INC_constraint3(2)_
-c_u_p_first_stage_INC_constraint3(3)_
-c_u_p_first_stage_INC_constraint4(1)_
-c_u_p_first_stage_INC_constraint4(2)_
-c_u_p_first_stage_INC_constraint4(3)_
-c_e_p_second_stage(1)_INC_constraint1_
-c_e_p_second_stage(1)_INC_constraint2_
-c_l_c_second_stage_
-c_u_p_second_stage(1)_INC_constraint3(1)_
-c_u_p_second_stage(1)_INC_constraint3(2)_
-c_u_p_second_stage(1)_INC_constraint3(3)_
-c_u_p_second_stage(1)_INC_constraint4(1)_
-c_u_p_second_stage(1)_INC_constraint4(2)_
-c_u_p_second_stage(1)_INC_constraint4(3)_
-r_l_r_second_stage_
-r_u_r_second_stage_
-c_e_ONE_VAR_CONSTANT
\ No newline at end of file
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_symbolic_names_ignore_derived_baseline/scenario_files/piecewise.row.Scenario3 b/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_symbolic_names_ignore_derived_baseline/scenario_files/piecewise.row.Scenario3
deleted file mode 100644
index 12384c6692a..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_symbolic_names_ignore_derived_baseline/scenario_files/piecewise.row.Scenario3
+++ /dev/null
@@ -1,22 +0,0 @@
-o
-c_e_p_first_stage_INC_constraint1_
-c_e_p_first_stage_INC_constraint2_
-c_l_c_first_stage_
-c_u_p_first_stage_INC_constraint3(1)_
-c_u_p_first_stage_INC_constraint3(2)_
-c_u_p_first_stage_INC_constraint3(3)_
-c_u_p_first_stage_INC_constraint4(1)_
-c_u_p_first_stage_INC_constraint4(2)_
-c_u_p_first_stage_INC_constraint4(3)_
-c_e_p_second_stage(1)_INC_constraint1_
-c_e_p_second_stage(1)_INC_constraint2_
-c_l_c_second_stage_
-c_u_p_second_stage(1)_INC_constraint3(1)_
-c_u_p_second_stage(1)_INC_constraint3(2)_
-c_u_p_second_stage(1)_INC_constraint3(3)_
-c_u_p_second_stage(1)_INC_constraint4(1)_
-c_u_p_second_stage(1)_INC_constraint4(2)_
-c_u_p_second_stage(1)_INC_constraint4(3)_
-r_l_r_second_stage_
-r_u_r_second_stage_
-c_e_ONE_VAR_CONSTANT
\ No newline at end of file
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_symbolic_names_ignore_derived_baseline/scenario_files/piecewise.setup.lp.Scenario1 b/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_symbolic_names_ignore_derived_baseline/scenario_files/piecewise.setup.lp.Scenario1
deleted file mode 100644
index 92aae935348..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_symbolic_names_ignore_derived_baseline/scenario_files/piecewise.setup.lp.Scenario1
+++ /dev/null
@@ -1,147 +0,0 @@
-\* Source Pyomo model name=Scenario1 *\
-
-min
-o:
-+1 fx
--1 fz
-+1 r
-
-s.t.
-
-c_l_c_first_stage_:
-+1 x
->= 0
-
-c_l_c_second_stage_:
-+0 r
-+1 x
->= -100
-
-r_l_r_second_stage_:
-+1 r
->= 0
-
-r_u_r_second_stage_:
-+1 r
-<= 0
-
-c_e_p_first_stage_INC_constraint1_:
--2 p_first_stage_INC_delta(1)
--3 p_first_stage_INC_delta(2)
--2 p_first_stage_INC_delta(3)
--3 p_first_stage_INC_delta(4)
-+1 x
-= 0
-
-c_e_p_first_stage_INC_constraint2_:
-+1 fx
-+1 p_first_stage_INC_delta(2)
--1 p_first_stage_INC_delta(3)
-= 10
-
-c_u_p_first_stage_INC_constraint3(1)_:
--1 p_first_stage_INC_bin_y(1)
-+1 p_first_stage_INC_delta(2)
-<= 0
-
-c_u_p_first_stage_INC_constraint3(2)_:
--1 p_first_stage_INC_bin_y(2)
-+1 p_first_stage_INC_delta(3)
-<= 0
-
-c_u_p_first_stage_INC_constraint3(3)_:
--1 p_first_stage_INC_bin_y(3)
-+1 p_first_stage_INC_delta(4)
-<= 0
-
-c_u_p_first_stage_INC_constraint4(1)_:
-+1 p_first_stage_INC_bin_y(1)
--1 p_first_stage_INC_delta(1)
-<= 0
-
-c_u_p_first_stage_INC_constraint4(2)_:
-+1 p_first_stage_INC_bin_y(2)
--1 p_first_stage_INC_delta(2)
-<= 0
-
-c_u_p_first_stage_INC_constraint4(3)_:
-+1 p_first_stage_INC_bin_y(3)
--1 p_first_stage_INC_delta(3)
-<= 0
-
-c_e_p_second_stage(1)_INC_constraint1_:
--5 p_second_stage(1)_INC_delta(1)
--5 p_second_stage(1)_INC_delta(2)
--5 p_second_stage(1)_INC_delta(3)
--5 p_second_stage(1)_INC_delta(4)
-+1 z
-= -10
-
-c_e_p_second_stage(1)_INC_constraint2_:
-+1 fz
-+1 p_second_stage(1)_INC_delta(2)
--3 p_second_stage(1)_INC_delta(3)
-+1 p_second_stage(1)_INC_delta(4)
-= 0
-
-c_u_p_second_stage(1)_INC_constraint3(1)_:
--1 p_second_stage(1)_INC_bin_y(1)
-+1 p_second_stage(1)_INC_delta(2)
-<= 0
-
-c_u_p_second_stage(1)_INC_constraint3(2)_:
--1 p_second_stage(1)_INC_bin_y(2)
-+1 p_second_stage(1)_INC_delta(3)
-<= 0
-
-c_u_p_second_stage(1)_INC_constraint3(3)_:
--1 p_second_stage(1)_INC_bin_y(3)
-+1 p_second_stage(1)_INC_delta(4)
-<= 0
-
-c_u_p_second_stage(1)_INC_constraint4(1)_:
-+1 p_second_stage(1)_INC_bin_y(1)
--1 p_second_stage(1)_INC_delta(1)
-<= 0
-
-c_u_p_second_stage(1)_INC_constraint4(2)_:
-+1 p_second_stage(1)_INC_bin_y(2)
--1 p_second_stage(1)_INC_delta(2)
-<= 0
-
-c_u_p_second_stage(1)_INC_constraint4(3)_:
-+1 p_second_stage(1)_INC_bin_y(3)
--1 p_second_stage(1)_INC_delta(3)
-<= 0
-
-c_e_ONE_VAR_CONSTANT:
-ONE_VAR_CONSTANT = 1.0
-
-bounds
- 0 <= x <= 10
- -inf <= fx <= +inf
- -10 <= z <= 10
- -inf <= fz <= +inf
- -inf <= r <= +inf
- -inf <= p_first_stage_INC_delta(1) <= 1
- -inf <= p_first_stage_INC_delta(2) <= +inf
- -inf <= p_first_stage_INC_delta(3) <= +inf
- 0 <= p_first_stage_INC_delta(4) <= +inf
- 0 <= p_first_stage_INC_bin_y(1) <= 1
- 0 <= p_first_stage_INC_bin_y(2) <= 1
- 0 <= p_first_stage_INC_bin_y(3) <= 1
- -inf <= p_second_stage(1)_INC_delta(1) <= 1
- -inf <= p_second_stage(1)_INC_delta(2) <= +inf
- -inf <= p_second_stage(1)_INC_delta(3) <= +inf
- 0 <= p_second_stage(1)_INC_delta(4) <= +inf
- 0 <= p_second_stage(1)_INC_bin_y(1) <= 1
- 0 <= p_second_stage(1)_INC_bin_y(2) <= 1
- 0 <= p_second_stage(1)_INC_bin_y(3) <= 1
-binary
- p_first_stage_INC_bin_y(1)
- p_first_stage_INC_bin_y(2)
- p_first_stage_INC_bin_y(3)
- p_second_stage(1)_INC_bin_y(1)
- p_second_stage(1)_INC_bin_y(2)
- p_second_stage(1)_INC_bin_y(3)
-end
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_symbolic_names_ignore_derived_baseline/scenario_files/piecewise.setup.lp.Scenario2 b/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_symbolic_names_ignore_derived_baseline/scenario_files/piecewise.setup.lp.Scenario2
deleted file mode 100644
index 6e56cb45728..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_symbolic_names_ignore_derived_baseline/scenario_files/piecewise.setup.lp.Scenario2
+++ /dev/null
@@ -1,148 +0,0 @@
-\* Source Pyomo model name=Scenario2 *\
-
-min
-o:
-+1 fx
--1 fz
-+1 r
--1 ONE_VAR_CONSTANT
-
-s.t.
-
-c_l_c_first_stage_:
-+1 x
->= 0
-
-c_l_c_second_stage_:
-+1 r
-+1 x
->= -100
-
-r_l_r_second_stage_:
-+1 r
->= -1
-
-r_u_r_second_stage_:
-+1 r
-<= 0
-
-c_e_p_first_stage_INC_constraint1_:
--2 p_first_stage_INC_delta(1)
--3 p_first_stage_INC_delta(2)
--2 p_first_stage_INC_delta(3)
--3 p_first_stage_INC_delta(4)
-+1 x
-= 0
-
-c_e_p_first_stage_INC_constraint2_:
-+1 fx
-+1 p_first_stage_INC_delta(2)
--1 p_first_stage_INC_delta(3)
-= 10
-
-c_u_p_first_stage_INC_constraint3(1)_:
--1 p_first_stage_INC_bin_y(1)
-+1 p_first_stage_INC_delta(2)
-<= 0
-
-c_u_p_first_stage_INC_constraint3(2)_:
--1 p_first_stage_INC_bin_y(2)
-+1 p_first_stage_INC_delta(3)
-<= 0
-
-c_u_p_first_stage_INC_constraint3(3)_:
--1 p_first_stage_INC_bin_y(3)
-+1 p_first_stage_INC_delta(4)
-<= 0
-
-c_u_p_first_stage_INC_constraint4(1)_:
-+1 p_first_stage_INC_bin_y(1)
--1 p_first_stage_INC_delta(1)
-<= 0
-
-c_u_p_first_stage_INC_constraint4(2)_:
-+1 p_first_stage_INC_bin_y(2)
--1 p_first_stage_INC_delta(2)
-<= 0
-
-c_u_p_first_stage_INC_constraint4(3)_:
-+1 p_first_stage_INC_bin_y(3)
--1 p_first_stage_INC_delta(3)
-<= 0
-
-c_e_p_second_stage(1)_INC_constraint1_:
--5 p_second_stage(1)_INC_delta(1)
--5 p_second_stage(1)_INC_delta(2)
--5 p_second_stage(1)_INC_delta(3)
--5 p_second_stage(1)_INC_delta(4)
-+1 z
-= -10
-
-c_e_p_second_stage(1)_INC_constraint2_:
-+1 fz
-+1 p_second_stage(1)_INC_delta(2)
--4 p_second_stage(1)_INC_delta(3)
-+2 p_second_stage(1)_INC_delta(4)
-= 0
-
-c_u_p_second_stage(1)_INC_constraint3(1)_:
--1 p_second_stage(1)_INC_bin_y(1)
-+1 p_second_stage(1)_INC_delta(2)
-<= 0
-
-c_u_p_second_stage(1)_INC_constraint3(2)_:
--1 p_second_stage(1)_INC_bin_y(2)
-+1 p_second_stage(1)_INC_delta(3)
-<= 0
-
-c_u_p_second_stage(1)_INC_constraint3(3)_:
--1 p_second_stage(1)_INC_bin_y(3)
-+1 p_second_stage(1)_INC_delta(4)
-<= 0
-
-c_u_p_second_stage(1)_INC_constraint4(1)_:
-+1 p_second_stage(1)_INC_bin_y(1)
--1 p_second_stage(1)_INC_delta(1)
-<= 0
-
-c_u_p_second_stage(1)_INC_constraint4(2)_:
-+1 p_second_stage(1)_INC_bin_y(2)
--1 p_second_stage(1)_INC_delta(2)
-<= 0
-
-c_u_p_second_stage(1)_INC_constraint4(3)_:
-+1 p_second_stage(1)_INC_bin_y(3)
--1 p_second_stage(1)_INC_delta(3)
-<= 0
-
-c_e_ONE_VAR_CONSTANT:
-ONE_VAR_CONSTANT = 1.0
-
-bounds
- 0 <= x <= 10
- -inf <= fx <= +inf
- -10 <= z <= 10
- -inf <= fz <= +inf
- -inf <= r <= +inf
- -inf <= p_first_stage_INC_delta(1) <= 1
- -inf <= p_first_stage_INC_delta(2) <= +inf
- -inf <= p_first_stage_INC_delta(3) <= +inf
- 0 <= p_first_stage_INC_delta(4) <= +inf
- 0 <= p_first_stage_INC_bin_y(1) <= 1
- 0 <= p_first_stage_INC_bin_y(2) <= 1
- 0 <= p_first_stage_INC_bin_y(3) <= 1
- -inf <= p_second_stage(1)_INC_delta(1) <= 1
- -inf <= p_second_stage(1)_INC_delta(2) <= +inf
- -inf <= p_second_stage(1)_INC_delta(3) <= +inf
- 0 <= p_second_stage(1)_INC_delta(4) <= +inf
- 0 <= p_second_stage(1)_INC_bin_y(1) <= 1
- 0 <= p_second_stage(1)_INC_bin_y(2) <= 1
- 0 <= p_second_stage(1)_INC_bin_y(3) <= 1
-binary
- p_first_stage_INC_bin_y(1)
- p_first_stage_INC_bin_y(2)
- p_first_stage_INC_bin_y(3)
- p_second_stage(1)_INC_bin_y(1)
- p_second_stage(1)_INC_bin_y(2)
- p_second_stage(1)_INC_bin_y(3)
-end
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_symbolic_names_ignore_derived_baseline/scenario_files/piecewise.setup.lp.Scenario3 b/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_symbolic_names_ignore_derived_baseline/scenario_files/piecewise.setup.lp.Scenario3
deleted file mode 100644
index 4e4e4bf0219..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_symbolic_names_ignore_derived_baseline/scenario_files/piecewise.setup.lp.Scenario3
+++ /dev/null
@@ -1,148 +0,0 @@
-\* Source Pyomo model name=Scenario3 *\
-
-min
-o:
-+1 fx
--1 fz
-+1 r
--2 ONE_VAR_CONSTANT
-
-s.t.
-
-c_l_c_first_stage_:
-+1 x
->= 0
-
-c_l_c_second_stage_:
-+2 r
-+1 x
->= -100
-
-r_l_r_second_stage_:
-+1 r
->= -2
-
-r_u_r_second_stage_:
-+1 r
-<= 0
-
-c_e_p_first_stage_INC_constraint1_:
--2 p_first_stage_INC_delta(1)
--3 p_first_stage_INC_delta(2)
--2 p_first_stage_INC_delta(3)
--3 p_first_stage_INC_delta(4)
-+1 x
-= 0
-
-c_e_p_first_stage_INC_constraint2_:
-+1 fx
-+1 p_first_stage_INC_delta(2)
--1 p_first_stage_INC_delta(3)
-= 10
-
-c_u_p_first_stage_INC_constraint3(1)_:
--1 p_first_stage_INC_bin_y(1)
-+1 p_first_stage_INC_delta(2)
-<= 0
-
-c_u_p_first_stage_INC_constraint3(2)_:
--1 p_first_stage_INC_bin_y(2)
-+1 p_first_stage_INC_delta(3)
-<= 0
-
-c_u_p_first_stage_INC_constraint3(3)_:
--1 p_first_stage_INC_bin_y(3)
-+1 p_first_stage_INC_delta(4)
-<= 0
-
-c_u_p_first_stage_INC_constraint4(1)_:
-+1 p_first_stage_INC_bin_y(1)
--1 p_first_stage_INC_delta(1)
-<= 0
-
-c_u_p_first_stage_INC_constraint4(2)_:
-+1 p_first_stage_INC_bin_y(2)
--1 p_first_stage_INC_delta(2)
-<= 0
-
-c_u_p_first_stage_INC_constraint4(3)_:
-+1 p_first_stage_INC_bin_y(3)
--1 p_first_stage_INC_delta(3)
-<= 0
-
-c_e_p_second_stage(1)_INC_constraint1_:
--5 p_second_stage(1)_INC_delta(1)
--5 p_second_stage(1)_INC_delta(2)
--5 p_second_stage(1)_INC_delta(3)
--5 p_second_stage(1)_INC_delta(4)
-+1 z
-= -10
-
-c_e_p_second_stage(1)_INC_constraint2_:
-+1 fz
-+1 p_second_stage(1)_INC_delta(2)
--5 p_second_stage(1)_INC_delta(3)
-+3 p_second_stage(1)_INC_delta(4)
-= 0
-
-c_u_p_second_stage(1)_INC_constraint3(1)_:
--1 p_second_stage(1)_INC_bin_y(1)
-+1 p_second_stage(1)_INC_delta(2)
-<= 0
-
-c_u_p_second_stage(1)_INC_constraint3(2)_:
--1 p_second_stage(1)_INC_bin_y(2)
-+1 p_second_stage(1)_INC_delta(3)
-<= 0
-
-c_u_p_second_stage(1)_INC_constraint3(3)_:
--1 p_second_stage(1)_INC_bin_y(3)
-+1 p_second_stage(1)_INC_delta(4)
-<= 0
-
-c_u_p_second_stage(1)_INC_constraint4(1)_:
-+1 p_second_stage(1)_INC_bin_y(1)
--1 p_second_stage(1)_INC_delta(1)
-<= 0
-
-c_u_p_second_stage(1)_INC_constraint4(2)_:
-+1 p_second_stage(1)_INC_bin_y(2)
--1 p_second_stage(1)_INC_delta(2)
-<= 0
-
-c_u_p_second_stage(1)_INC_constraint4(3)_:
-+1 p_second_stage(1)_INC_bin_y(3)
--1 p_second_stage(1)_INC_delta(3)
-<= 0
-
-c_e_ONE_VAR_CONSTANT:
-ONE_VAR_CONSTANT = 1.0
-
-bounds
- 0 <= x <= 10
- -inf <= fx <= +inf
- -10 <= z <= 10
- -inf <= fz <= +inf
- -inf <= r <= +inf
- -inf <= p_first_stage_INC_delta(1) <= 1
- -inf <= p_first_stage_INC_delta(2) <= +inf
- -inf <= p_first_stage_INC_delta(3) <= +inf
- 0 <= p_first_stage_INC_delta(4) <= +inf
- 0 <= p_first_stage_INC_bin_y(1) <= 1
- 0 <= p_first_stage_INC_bin_y(2) <= 1
- 0 <= p_first_stage_INC_bin_y(3) <= 1
- -inf <= p_second_stage(1)_INC_delta(1) <= 1
- -inf <= p_second_stage(1)_INC_delta(2) <= +inf
- -inf <= p_second_stage(1)_INC_delta(3) <= +inf
- 0 <= p_second_stage(1)_INC_delta(4) <= +inf
- 0 <= p_second_stage(1)_INC_bin_y(1) <= 1
- 0 <= p_second_stage(1)_INC_bin_y(2) <= 1
- 0 <= p_second_stage(1)_INC_bin_y(3) <= 1
-binary
- p_first_stage_INC_bin_y(1)
- p_first_stage_INC_bin_y(2)
- p_first_stage_INC_bin_y(3)
- p_second_stage(1)_INC_bin_y(1)
- p_second_stage(1)_INC_bin_y(2)
- p_second_stage(1)_INC_bin_y(3)
-end
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_symbolic_names_ignore_derived_baseline/scenario_files/piecewise.sto.Scenario1 b/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_symbolic_names_ignore_derived_baseline/scenario_files/piecewise.sto.Scenario1
deleted file mode 100644
index dde7bcea07e..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_symbolic_names_ignore_derived_baseline/scenario_files/piecewise.sto.Scenario1
+++ /dev/null
@@ -1,37 +0,0 @@
- BL BLOCK1 PERIOD2 0.33333333329999998
- RHS c_e_p_second_stage(1)_INC_constraint1_ -10
- RHS c_e_p_second_stage(1)_INC_constraint2_ 0
- RHS c_u_p_second_stage(1)_INC_constraint3(1)_ 0
- RHS c_u_p_second_stage(1)_INC_constraint3(2)_ 0
- RHS c_u_p_second_stage(1)_INC_constraint3(3)_ 0
- RHS c_u_p_second_stage(1)_INC_constraint4(1)_ 0
- RHS c_u_p_second_stage(1)_INC_constraint4(2)_ 0
- RHS c_u_p_second_stage(1)_INC_constraint4(3)_ 0
- RHS r_l_r_second_stage_ 0
- RHS r_u_r_second_stage_ 0
- r c_l_c_second_stage_ 0
- p_second_stage(1)_INC_delta(1) c_e_p_second_stage(1)_INC_constraint1_ -5
- p_second_stage(1)_INC_delta(2) c_e_p_second_stage(1)_INC_constraint1_ -5
- p_second_stage(1)_INC_delta(3) c_e_p_second_stage(1)_INC_constraint1_ -5
- p_second_stage(1)_INC_delta(4) c_e_p_second_stage(1)_INC_constraint1_ -5
- z c_e_p_second_stage(1)_INC_constraint1_ 1
- fz c_e_p_second_stage(1)_INC_constraint2_ 1
- p_second_stage(1)_INC_delta(2) c_e_p_second_stage(1)_INC_constraint2_ 1
- p_second_stage(1)_INC_delta(3) c_e_p_second_stage(1)_INC_constraint2_ -3
- p_second_stage(1)_INC_delta(4) c_e_p_second_stage(1)_INC_constraint2_ 1
- p_second_stage(1)_INC_bin_y(1) c_u_p_second_stage(1)_INC_constraint3(1)_ -1
- p_second_stage(1)_INC_delta(2) c_u_p_second_stage(1)_INC_constraint3(1)_ 1
- p_second_stage(1)_INC_bin_y(2) c_u_p_second_stage(1)_INC_constraint3(2)_ -1
- p_second_stage(1)_INC_delta(3) c_u_p_second_stage(1)_INC_constraint3(2)_ 1
- p_second_stage(1)_INC_bin_y(3) c_u_p_second_stage(1)_INC_constraint3(3)_ -1
- p_second_stage(1)_INC_delta(4) c_u_p_second_stage(1)_INC_constraint3(3)_ 1
- p_second_stage(1)_INC_bin_y(1) c_u_p_second_stage(1)_INC_constraint4(1)_ 1
- p_second_stage(1)_INC_delta(1) c_u_p_second_stage(1)_INC_constraint4(1)_ -1
- p_second_stage(1)_INC_bin_y(2) c_u_p_second_stage(1)_INC_constraint4(2)_ 1
- p_second_stage(1)_INC_delta(2) c_u_p_second_stage(1)_INC_constraint4(2)_ -1
- p_second_stage(1)_INC_bin_y(3) c_u_p_second_stage(1)_INC_constraint4(3)_ 1
- p_second_stage(1)_INC_delta(3) c_u_p_second_stage(1)_INC_constraint4(3)_ -1
- fx o 1
- fz o -1
- r o 1
- ONE_VAR_CONSTANT o 0
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_symbolic_names_ignore_derived_baseline/scenario_files/piecewise.sto.Scenario2 b/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_symbolic_names_ignore_derived_baseline/scenario_files/piecewise.sto.Scenario2
deleted file mode 100644
index 4cf43964b4b..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_symbolic_names_ignore_derived_baseline/scenario_files/piecewise.sto.Scenario2
+++ /dev/null
@@ -1,37 +0,0 @@
- BL BLOCK1 PERIOD2 0.33333333329999998
- RHS c_e_p_second_stage(1)_INC_constraint1_ -10
- RHS c_e_p_second_stage(1)_INC_constraint2_ 0
- RHS c_u_p_second_stage(1)_INC_constraint3(1)_ 0
- RHS c_u_p_second_stage(1)_INC_constraint3(2)_ 0
- RHS c_u_p_second_stage(1)_INC_constraint3(3)_ 0
- RHS c_u_p_second_stage(1)_INC_constraint4(1)_ 0
- RHS c_u_p_second_stage(1)_INC_constraint4(2)_ 0
- RHS c_u_p_second_stage(1)_INC_constraint4(3)_ 0
- RHS r_l_r_second_stage_ -1
- RHS r_u_r_second_stage_ 0
- r c_l_c_second_stage_ 1
- p_second_stage(1)_INC_delta(1) c_e_p_second_stage(1)_INC_constraint1_ -5
- p_second_stage(1)_INC_delta(2) c_e_p_second_stage(1)_INC_constraint1_ -5
- p_second_stage(1)_INC_delta(3) c_e_p_second_stage(1)_INC_constraint1_ -5
- p_second_stage(1)_INC_delta(4) c_e_p_second_stage(1)_INC_constraint1_ -5
- z c_e_p_second_stage(1)_INC_constraint1_ 1
- fz c_e_p_second_stage(1)_INC_constraint2_ 1
- p_second_stage(1)_INC_delta(2) c_e_p_second_stage(1)_INC_constraint2_ 1
- p_second_stage(1)_INC_delta(3) c_e_p_second_stage(1)_INC_constraint2_ -4
- p_second_stage(1)_INC_delta(4) c_e_p_second_stage(1)_INC_constraint2_ 2
- p_second_stage(1)_INC_bin_y(1) c_u_p_second_stage(1)_INC_constraint3(1)_ -1
- p_second_stage(1)_INC_delta(2) c_u_p_second_stage(1)_INC_constraint3(1)_ 1
- p_second_stage(1)_INC_bin_y(2) c_u_p_second_stage(1)_INC_constraint3(2)_ -1
- p_second_stage(1)_INC_delta(3) c_u_p_second_stage(1)_INC_constraint3(2)_ 1
- p_second_stage(1)_INC_bin_y(3) c_u_p_second_stage(1)_INC_constraint3(3)_ -1
- p_second_stage(1)_INC_delta(4) c_u_p_second_stage(1)_INC_constraint3(3)_ 1
- p_second_stage(1)_INC_bin_y(1) c_u_p_second_stage(1)_INC_constraint4(1)_ 1
- p_second_stage(1)_INC_delta(1) c_u_p_second_stage(1)_INC_constraint4(1)_ -1
- p_second_stage(1)_INC_bin_y(2) c_u_p_second_stage(1)_INC_constraint4(2)_ 1
- p_second_stage(1)_INC_delta(2) c_u_p_second_stage(1)_INC_constraint4(2)_ -1
- p_second_stage(1)_INC_bin_y(3) c_u_p_second_stage(1)_INC_constraint4(3)_ 1
- p_second_stage(1)_INC_delta(3) c_u_p_second_stage(1)_INC_constraint4(3)_ -1
- fx o 1
- fz o -1
- r o 1
- ONE_VAR_CONSTANT o -1
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_symbolic_names_ignore_derived_baseline/scenario_files/piecewise.sto.Scenario3 b/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_symbolic_names_ignore_derived_baseline/scenario_files/piecewise.sto.Scenario3
deleted file mode 100644
index b2f6b9f65ae..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_symbolic_names_ignore_derived_baseline/scenario_files/piecewise.sto.Scenario3
+++ /dev/null
@@ -1,37 +0,0 @@
- BL BLOCK1 PERIOD2 0.33333333329999998
- RHS c_e_p_second_stage(1)_INC_constraint1_ -10
- RHS c_e_p_second_stage(1)_INC_constraint2_ 0
- RHS c_u_p_second_stage(1)_INC_constraint3(1)_ 0
- RHS c_u_p_second_stage(1)_INC_constraint3(2)_ 0
- RHS c_u_p_second_stage(1)_INC_constraint3(3)_ 0
- RHS c_u_p_second_stage(1)_INC_constraint4(1)_ 0
- RHS c_u_p_second_stage(1)_INC_constraint4(2)_ 0
- RHS c_u_p_second_stage(1)_INC_constraint4(3)_ 0
- RHS r_l_r_second_stage_ -2
- RHS r_u_r_second_stage_ 0
- r c_l_c_second_stage_ 2
- p_second_stage(1)_INC_delta(1) c_e_p_second_stage(1)_INC_constraint1_ -5
- p_second_stage(1)_INC_delta(2) c_e_p_second_stage(1)_INC_constraint1_ -5
- p_second_stage(1)_INC_delta(3) c_e_p_second_stage(1)_INC_constraint1_ -5
- p_second_stage(1)_INC_delta(4) c_e_p_second_stage(1)_INC_constraint1_ -5
- z c_e_p_second_stage(1)_INC_constraint1_ 1
- fz c_e_p_second_stage(1)_INC_constraint2_ 1
- p_second_stage(1)_INC_delta(2) c_e_p_second_stage(1)_INC_constraint2_ 1
- p_second_stage(1)_INC_delta(3) c_e_p_second_stage(1)_INC_constraint2_ -5
- p_second_stage(1)_INC_delta(4) c_e_p_second_stage(1)_INC_constraint2_ 3
- p_second_stage(1)_INC_bin_y(1) c_u_p_second_stage(1)_INC_constraint3(1)_ -1
- p_second_stage(1)_INC_delta(2) c_u_p_second_stage(1)_INC_constraint3(1)_ 1
- p_second_stage(1)_INC_bin_y(2) c_u_p_second_stage(1)_INC_constraint3(2)_ -1
- p_second_stage(1)_INC_delta(3) c_u_p_second_stage(1)_INC_constraint3(2)_ 1
- p_second_stage(1)_INC_bin_y(3) c_u_p_second_stage(1)_INC_constraint3(3)_ -1
- p_second_stage(1)_INC_delta(4) c_u_p_second_stage(1)_INC_constraint3(3)_ 1
- p_second_stage(1)_INC_bin_y(1) c_u_p_second_stage(1)_INC_constraint4(1)_ 1
- p_second_stage(1)_INC_delta(1) c_u_p_second_stage(1)_INC_constraint4(1)_ -1
- p_second_stage(1)_INC_bin_y(2) c_u_p_second_stage(1)_INC_constraint4(2)_ 1
- p_second_stage(1)_INC_delta(2) c_u_p_second_stage(1)_INC_constraint4(2)_ -1
- p_second_stage(1)_INC_bin_y(3) c_u_p_second_stage(1)_INC_constraint4(3)_ 1
- p_second_stage(1)_INC_delta(3) c_u_p_second_stage(1)_INC_constraint4(3)_ -1
- fx o 1
- fz o -1
- r o 1
- ONE_VAR_CONSTANT o -2
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_symbolic_names_ignore_derived_baseline/scenario_files/piecewise.sto.struct.Scenario1 b/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_symbolic_names_ignore_derived_baseline/scenario_files/piecewise.sto.struct.Scenario1
deleted file mode 100644
index 92b231fef93..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_symbolic_names_ignore_derived_baseline/scenario_files/piecewise.sto.struct.Scenario1
+++ /dev/null
@@ -1,36 +0,0 @@
-RHS c_e_p_second_stage(1)_INC_constraint1_
-RHS c_e_p_second_stage(1)_INC_constraint2_
-RHS c_u_p_second_stage(1)_INC_constraint3(1)_
-RHS c_u_p_second_stage(1)_INC_constraint3(2)_
-RHS c_u_p_second_stage(1)_INC_constraint3(3)_
-RHS c_u_p_second_stage(1)_INC_constraint4(1)_
-RHS c_u_p_second_stage(1)_INC_constraint4(2)_
-RHS c_u_p_second_stage(1)_INC_constraint4(3)_
-RHS r_l_r_second_stage_
-RHS r_u_r_second_stage_
-r c_l_c_second_stage_
-p_second_stage(1)_INC_delta(1) c_e_p_second_stage(1)_INC_constraint1_
-p_second_stage(1)_INC_delta(2) c_e_p_second_stage(1)_INC_constraint1_
-p_second_stage(1)_INC_delta(3) c_e_p_second_stage(1)_INC_constraint1_
-p_second_stage(1)_INC_delta(4) c_e_p_second_stage(1)_INC_constraint1_
-z c_e_p_second_stage(1)_INC_constraint1_
-fz c_e_p_second_stage(1)_INC_constraint2_
-p_second_stage(1)_INC_delta(2) c_e_p_second_stage(1)_INC_constraint2_
-p_second_stage(1)_INC_delta(3) c_e_p_second_stage(1)_INC_constraint2_
-p_second_stage(1)_INC_delta(4) c_e_p_second_stage(1)_INC_constraint2_
-p_second_stage(1)_INC_bin_y(1) c_u_p_second_stage(1)_INC_constraint3(1)_
-p_second_stage(1)_INC_delta(2) c_u_p_second_stage(1)_INC_constraint3(1)_
-p_second_stage(1)_INC_bin_y(2) c_u_p_second_stage(1)_INC_constraint3(2)_
-p_second_stage(1)_INC_delta(3) c_u_p_second_stage(1)_INC_constraint3(2)_
-p_second_stage(1)_INC_bin_y(3) c_u_p_second_stage(1)_INC_constraint3(3)_
-p_second_stage(1)_INC_delta(4) c_u_p_second_stage(1)_INC_constraint3(3)_
-p_second_stage(1)_INC_bin_y(1) c_u_p_second_stage(1)_INC_constraint4(1)_
-p_second_stage(1)_INC_delta(1) c_u_p_second_stage(1)_INC_constraint4(1)_
-p_second_stage(1)_INC_bin_y(2) c_u_p_second_stage(1)_INC_constraint4(2)_
-p_second_stage(1)_INC_delta(2) c_u_p_second_stage(1)_INC_constraint4(2)_
-p_second_stage(1)_INC_bin_y(3) c_u_p_second_stage(1)_INC_constraint4(3)_
-p_second_stage(1)_INC_delta(3) c_u_p_second_stage(1)_INC_constraint4(3)_
-fx o
-fz o
-r o
-ONE_VAR_CONSTANT o
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_symbolic_names_ignore_derived_baseline/scenario_files/piecewise.sto.struct.Scenario2 b/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_symbolic_names_ignore_derived_baseline/scenario_files/piecewise.sto.struct.Scenario2
deleted file mode 100644
index 92b231fef93..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_symbolic_names_ignore_derived_baseline/scenario_files/piecewise.sto.struct.Scenario2
+++ /dev/null
@@ -1,36 +0,0 @@
-RHS c_e_p_second_stage(1)_INC_constraint1_
-RHS c_e_p_second_stage(1)_INC_constraint2_
-RHS c_u_p_second_stage(1)_INC_constraint3(1)_
-RHS c_u_p_second_stage(1)_INC_constraint3(2)_
-RHS c_u_p_second_stage(1)_INC_constraint3(3)_
-RHS c_u_p_second_stage(1)_INC_constraint4(1)_
-RHS c_u_p_second_stage(1)_INC_constraint4(2)_
-RHS c_u_p_second_stage(1)_INC_constraint4(3)_
-RHS r_l_r_second_stage_
-RHS r_u_r_second_stage_
-r c_l_c_second_stage_
-p_second_stage(1)_INC_delta(1) c_e_p_second_stage(1)_INC_constraint1_
-p_second_stage(1)_INC_delta(2) c_e_p_second_stage(1)_INC_constraint1_
-p_second_stage(1)_INC_delta(3) c_e_p_second_stage(1)_INC_constraint1_
-p_second_stage(1)_INC_delta(4) c_e_p_second_stage(1)_INC_constraint1_
-z c_e_p_second_stage(1)_INC_constraint1_
-fz c_e_p_second_stage(1)_INC_constraint2_
-p_second_stage(1)_INC_delta(2) c_e_p_second_stage(1)_INC_constraint2_
-p_second_stage(1)_INC_delta(3) c_e_p_second_stage(1)_INC_constraint2_
-p_second_stage(1)_INC_delta(4) c_e_p_second_stage(1)_INC_constraint2_
-p_second_stage(1)_INC_bin_y(1) c_u_p_second_stage(1)_INC_constraint3(1)_
-p_second_stage(1)_INC_delta(2) c_u_p_second_stage(1)_INC_constraint3(1)_
-p_second_stage(1)_INC_bin_y(2) c_u_p_second_stage(1)_INC_constraint3(2)_
-p_second_stage(1)_INC_delta(3) c_u_p_second_stage(1)_INC_constraint3(2)_
-p_second_stage(1)_INC_bin_y(3) c_u_p_second_stage(1)_INC_constraint3(3)_
-p_second_stage(1)_INC_delta(4) c_u_p_second_stage(1)_INC_constraint3(3)_
-p_second_stage(1)_INC_bin_y(1) c_u_p_second_stage(1)_INC_constraint4(1)_
-p_second_stage(1)_INC_delta(1) c_u_p_second_stage(1)_INC_constraint4(1)_
-p_second_stage(1)_INC_bin_y(2) c_u_p_second_stage(1)_INC_constraint4(2)_
-p_second_stage(1)_INC_delta(2) c_u_p_second_stage(1)_INC_constraint4(2)_
-p_second_stage(1)_INC_bin_y(3) c_u_p_second_stage(1)_INC_constraint4(3)_
-p_second_stage(1)_INC_delta(3) c_u_p_second_stage(1)_INC_constraint4(3)_
-fx o
-fz o
-r o
-ONE_VAR_CONSTANT o
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_symbolic_names_ignore_derived_baseline/scenario_files/piecewise.sto.struct.Scenario3 b/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_symbolic_names_ignore_derived_baseline/scenario_files/piecewise.sto.struct.Scenario3
deleted file mode 100644
index 92b231fef93..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_symbolic_names_ignore_derived_baseline/scenario_files/piecewise.sto.struct.Scenario3
+++ /dev/null
@@ -1,36 +0,0 @@
-RHS c_e_p_second_stage(1)_INC_constraint1_
-RHS c_e_p_second_stage(1)_INC_constraint2_
-RHS c_u_p_second_stage(1)_INC_constraint3(1)_
-RHS c_u_p_second_stage(1)_INC_constraint3(2)_
-RHS c_u_p_second_stage(1)_INC_constraint3(3)_
-RHS c_u_p_second_stage(1)_INC_constraint4(1)_
-RHS c_u_p_second_stage(1)_INC_constraint4(2)_
-RHS c_u_p_second_stage(1)_INC_constraint4(3)_
-RHS r_l_r_second_stage_
-RHS r_u_r_second_stage_
-r c_l_c_second_stage_
-p_second_stage(1)_INC_delta(1) c_e_p_second_stage(1)_INC_constraint1_
-p_second_stage(1)_INC_delta(2) c_e_p_second_stage(1)_INC_constraint1_
-p_second_stage(1)_INC_delta(3) c_e_p_second_stage(1)_INC_constraint1_
-p_second_stage(1)_INC_delta(4) c_e_p_second_stage(1)_INC_constraint1_
-z c_e_p_second_stage(1)_INC_constraint1_
-fz c_e_p_second_stage(1)_INC_constraint2_
-p_second_stage(1)_INC_delta(2) c_e_p_second_stage(1)_INC_constraint2_
-p_second_stage(1)_INC_delta(3) c_e_p_second_stage(1)_INC_constraint2_
-p_second_stage(1)_INC_delta(4) c_e_p_second_stage(1)_INC_constraint2_
-p_second_stage(1)_INC_bin_y(1) c_u_p_second_stage(1)_INC_constraint3(1)_
-p_second_stage(1)_INC_delta(2) c_u_p_second_stage(1)_INC_constraint3(1)_
-p_second_stage(1)_INC_bin_y(2) c_u_p_second_stage(1)_INC_constraint3(2)_
-p_second_stage(1)_INC_delta(3) c_u_p_second_stage(1)_INC_constraint3(2)_
-p_second_stage(1)_INC_bin_y(3) c_u_p_second_stage(1)_INC_constraint3(3)_
-p_second_stage(1)_INC_delta(4) c_u_p_second_stage(1)_INC_constraint3(3)_
-p_second_stage(1)_INC_bin_y(1) c_u_p_second_stage(1)_INC_constraint4(1)_
-p_second_stage(1)_INC_delta(1) c_u_p_second_stage(1)_INC_constraint4(1)_
-p_second_stage(1)_INC_bin_y(2) c_u_p_second_stage(1)_INC_constraint4(2)_
-p_second_stage(1)_INC_delta(2) c_u_p_second_stage(1)_INC_constraint4(2)_
-p_second_stage(1)_INC_bin_y(3) c_u_p_second_stage(1)_INC_constraint4(3)_
-p_second_stage(1)_INC_delta(3) c_u_p_second_stage(1)_INC_constraint4(3)_
-fx o
-fz o
-r o
-ONE_VAR_CONSTANT o
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_symbolic_names_ignore_derived_baseline/scenario_files/piecewise.tim.Scenario1 b/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_symbolic_names_ignore_derived_baseline/scenario_files/piecewise.tim.Scenario1
deleted file mode 100644
index aa860b22c5a..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_symbolic_names_ignore_derived_baseline/scenario_files/piecewise.tim.Scenario1
+++ /dev/null
@@ -1,49 +0,0 @@
-TIME piecewise
-PERIODS EXPLICIT
- TIME1
- TIME2
-ROWS
- o TIME1
- c_e_p_first_stage_INC_constraint1_ TIME1
- c_e_p_first_stage_INC_constraint2_ TIME1
- c_l_c_first_stage_ TIME1
- c_u_p_first_stage_INC_constraint3(1)_ TIME1
- c_u_p_first_stage_INC_constraint3(2)_ TIME1
- c_u_p_first_stage_INC_constraint3(3)_ TIME1
- c_u_p_first_stage_INC_constraint4(1)_ TIME1
- c_u_p_first_stage_INC_constraint4(2)_ TIME1
- c_u_p_first_stage_INC_constraint4(3)_ TIME1
- c_e_p_second_stage(1)_INC_constraint1_ TIME2
- c_e_p_second_stage(1)_INC_constraint2_ TIME2
- c_l_c_second_stage_ TIME2
- c_u_p_second_stage(1)_INC_constraint3(1)_ TIME2
- c_u_p_second_stage(1)_INC_constraint3(2)_ TIME2
- c_u_p_second_stage(1)_INC_constraint3(3)_ TIME2
- c_u_p_second_stage(1)_INC_constraint4(1)_ TIME2
- c_u_p_second_stage(1)_INC_constraint4(2)_ TIME2
- c_u_p_second_stage(1)_INC_constraint4(3)_ TIME2
- r_l_r_second_stage_ TIME2
- r_u_r_second_stage_ TIME2
- c_e_ONE_VAR_CONSTANT TIME2
-COLS
- fx TIME1
- p_first_stage_INC_bin_y(1) TIME1
- p_first_stage_INC_bin_y(2) TIME1
- p_first_stage_INC_bin_y(3) TIME1
- p_first_stage_INC_delta(1) TIME1
- p_first_stage_INC_delta(2) TIME1
- p_first_stage_INC_delta(3) TIME1
- p_first_stage_INC_delta(4) TIME1
- x TIME1
- fz TIME2
- p_second_stage(1)_INC_bin_y(1) TIME2
- p_second_stage(1)_INC_bin_y(2) TIME2
- p_second_stage(1)_INC_bin_y(3) TIME2
- p_second_stage(1)_INC_delta(1) TIME2
- p_second_stage(1)_INC_delta(2) TIME2
- p_second_stage(1)_INC_delta(3) TIME2
- p_second_stage(1)_INC_delta(4) TIME2
- r TIME2
- z TIME2
- ONE_VAR_CONSTANT TIME2
-ENDATA
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_symbolic_names_ignore_derived_baseline/scenario_files/piecewise.tim.Scenario2 b/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_symbolic_names_ignore_derived_baseline/scenario_files/piecewise.tim.Scenario2
deleted file mode 100644
index aa860b22c5a..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_symbolic_names_ignore_derived_baseline/scenario_files/piecewise.tim.Scenario2
+++ /dev/null
@@ -1,49 +0,0 @@
-TIME piecewise
-PERIODS EXPLICIT
- TIME1
- TIME2
-ROWS
- o TIME1
- c_e_p_first_stage_INC_constraint1_ TIME1
- c_e_p_first_stage_INC_constraint2_ TIME1
- c_l_c_first_stage_ TIME1
- c_u_p_first_stage_INC_constraint3(1)_ TIME1
- c_u_p_first_stage_INC_constraint3(2)_ TIME1
- c_u_p_first_stage_INC_constraint3(3)_ TIME1
- c_u_p_first_stage_INC_constraint4(1)_ TIME1
- c_u_p_first_stage_INC_constraint4(2)_ TIME1
- c_u_p_first_stage_INC_constraint4(3)_ TIME1
- c_e_p_second_stage(1)_INC_constraint1_ TIME2
- c_e_p_second_stage(1)_INC_constraint2_ TIME2
- c_l_c_second_stage_ TIME2
- c_u_p_second_stage(1)_INC_constraint3(1)_ TIME2
- c_u_p_second_stage(1)_INC_constraint3(2)_ TIME2
- c_u_p_second_stage(1)_INC_constraint3(3)_ TIME2
- c_u_p_second_stage(1)_INC_constraint4(1)_ TIME2
- c_u_p_second_stage(1)_INC_constraint4(2)_ TIME2
- c_u_p_second_stage(1)_INC_constraint4(3)_ TIME2
- r_l_r_second_stage_ TIME2
- r_u_r_second_stage_ TIME2
- c_e_ONE_VAR_CONSTANT TIME2
-COLS
- fx TIME1
- p_first_stage_INC_bin_y(1) TIME1
- p_first_stage_INC_bin_y(2) TIME1
- p_first_stage_INC_bin_y(3) TIME1
- p_first_stage_INC_delta(1) TIME1
- p_first_stage_INC_delta(2) TIME1
- p_first_stage_INC_delta(3) TIME1
- p_first_stage_INC_delta(4) TIME1
- x TIME1
- fz TIME2
- p_second_stage(1)_INC_bin_y(1) TIME2
- p_second_stage(1)_INC_bin_y(2) TIME2
- p_second_stage(1)_INC_bin_y(3) TIME2
- p_second_stage(1)_INC_delta(1) TIME2
- p_second_stage(1)_INC_delta(2) TIME2
- p_second_stage(1)_INC_delta(3) TIME2
- p_second_stage(1)_INC_delta(4) TIME2
- r TIME2
- z TIME2
- ONE_VAR_CONSTANT TIME2
-ENDATA
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_symbolic_names_ignore_derived_baseline/scenario_files/piecewise.tim.Scenario3 b/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_symbolic_names_ignore_derived_baseline/scenario_files/piecewise.tim.Scenario3
deleted file mode 100644
index aa860b22c5a..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_LP_symbolic_names_ignore_derived_baseline/scenario_files/piecewise.tim.Scenario3
+++ /dev/null
@@ -1,49 +0,0 @@
-TIME piecewise
-PERIODS EXPLICIT
- TIME1
- TIME2
-ROWS
- o TIME1
- c_e_p_first_stage_INC_constraint1_ TIME1
- c_e_p_first_stage_INC_constraint2_ TIME1
- c_l_c_first_stage_ TIME1
- c_u_p_first_stage_INC_constraint3(1)_ TIME1
- c_u_p_first_stage_INC_constraint3(2)_ TIME1
- c_u_p_first_stage_INC_constraint3(3)_ TIME1
- c_u_p_first_stage_INC_constraint4(1)_ TIME1
- c_u_p_first_stage_INC_constraint4(2)_ TIME1
- c_u_p_first_stage_INC_constraint4(3)_ TIME1
- c_e_p_second_stage(1)_INC_constraint1_ TIME2
- c_e_p_second_stage(1)_INC_constraint2_ TIME2
- c_l_c_second_stage_ TIME2
- c_u_p_second_stage(1)_INC_constraint3(1)_ TIME2
- c_u_p_second_stage(1)_INC_constraint3(2)_ TIME2
- c_u_p_second_stage(1)_INC_constraint3(3)_ TIME2
- c_u_p_second_stage(1)_INC_constraint4(1)_ TIME2
- c_u_p_second_stage(1)_INC_constraint4(2)_ TIME2
- c_u_p_second_stage(1)_INC_constraint4(3)_ TIME2
- r_l_r_second_stage_ TIME2
- r_u_r_second_stage_ TIME2
- c_e_ONE_VAR_CONSTANT TIME2
-COLS
- fx TIME1
- p_first_stage_INC_bin_y(1) TIME1
- p_first_stage_INC_bin_y(2) TIME1
- p_first_stage_INC_bin_y(3) TIME1
- p_first_stage_INC_delta(1) TIME1
- p_first_stage_INC_delta(2) TIME1
- p_first_stage_INC_delta(3) TIME1
- p_first_stage_INC_delta(4) TIME1
- x TIME1
- fz TIME2
- p_second_stage(1)_INC_bin_y(1) TIME2
- p_second_stage(1)_INC_bin_y(2) TIME2
- p_second_stage(1)_INC_bin_y(3) TIME2
- p_second_stage(1)_INC_delta(1) TIME2
- p_second_stage(1)_INC_delta(2) TIME2
- p_second_stage(1)_INC_delta(3) TIME2
- p_second_stage(1)_INC_delta(4) TIME2
- r TIME2
- z TIME2
- ONE_VAR_CONSTANT TIME2
-ENDATA
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_baseline/piecewise.col b/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_baseline/piecewise.col
deleted file mode 100644
index a2b99137e76..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_baseline/piecewise.col
+++ /dev/null
@@ -1,20 +0,0 @@
-x1
-x10
-x11
-x12
-x13
-x14
-x15
-x16
-x17
-x18
-x19
-x2
-x3
-x4
-x5
-x6
-x7
-x8
-x9
-ONE_VAR_CONSTANT
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_baseline/piecewise.cor b/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_baseline/piecewise.cor
deleted file mode 100644
index 781062f4125..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_baseline/piecewise.cor
+++ /dev/null
@@ -1,128 +0,0 @@
-* Source: Pyomo MPS Writer
-* Format: Free MPS
-*
-NAME Scenario1
-OBJSENSE
- MIN
-ROWS
- N x20
- G c_l_x21_
- E c_e_x22_
- E c_e_x23_
- E c_e_x24_
- E c_e_x25_
- G c_l_x26_
- L c_u_x27_
- L c_u_x28_
- L c_u_x29_
- L c_u_x30_
- L c_u_x31_
- L c_u_x32_
- L c_u_x33_
- L c_u_x34_
- L c_u_x35_
- L c_u_x36_
- L c_u_x37_
- L c_u_x38_
- G r_l_x39_
- L r_u_x39_
- E c_e_ONE_VAR_CONSTANT
-COLUMNS
- x1 c_l_x21_ 1
- x1 c_e_x22_ 1
- x1 c_l_x26_ 1
- x10 c_u_x27_ -1
- x10 c_u_x30_ 1
- x11 c_u_x28_ -1
- x11 c_u_x31_ 1
- x12 c_u_x29_ -1
- x12 c_u_x32_ 1
- x13 c_e_x24_ -5
- x13 c_u_x36_ -1
- x14 c_e_x24_ -5
- x14 c_e_x25_ 1
- x14 c_u_x33_ 1
- x14 c_u_x37_ -1
- x15 c_e_x24_ -5
- x15 c_e_x25_ -3
- x15 c_u_x34_ 1
- x15 c_u_x38_ -1
- x16 c_e_x24_ -5
- x16 c_e_x25_ 1
- x16 c_u_x35_ 1
- x17 c_u_x33_ -1
- x17 c_u_x36_ 1
- x18 c_u_x34_ -1
- x18 c_u_x37_ 1
- x19 c_u_x35_ -1
- x19 c_u_x38_ 1
- x2 x20 1
- x2 c_e_x23_ 1
- x3 c_e_x24_ 1
- x4 x20 -1
- x4 c_e_x25_ 1
- x5 x20 1
- x5 c_l_x26_ 0
- x5 r_l_x39_ 1
- x5 r_u_x39_ 1
- x6 c_e_x22_ -2
- x6 c_u_x30_ -1
- x7 c_e_x22_ -3
- x7 c_e_x23_ 1
- x7 c_u_x27_ 1
- x7 c_u_x31_ -1
- x8 c_e_x22_ -2
- x8 c_e_x23_ -1
- x8 c_u_x28_ 1
- x8 c_u_x32_ -1
- x9 c_e_x22_ -3
- x9 c_u_x29_ 1
- ONE_VAR_CONSTANT x20 0
- ONE_VAR_CONSTANT c_e_ONE_VAR_CONSTANT 1
-RHS
- RHS c_l_x21_ 0
- RHS c_e_x22_ 0
- RHS c_e_x23_ 10
- RHS c_e_x24_ -10
- RHS c_e_x25_ 0
- RHS c_l_x26_ -100
- RHS c_u_x27_ 0
- RHS c_u_x28_ 0
- RHS c_u_x29_ 0
- RHS c_u_x30_ 0
- RHS c_u_x31_ 0
- RHS c_u_x32_ 0
- RHS c_u_x33_ 0
- RHS c_u_x34_ 0
- RHS c_u_x35_ 0
- RHS c_u_x36_ 0
- RHS c_u_x37_ 0
- RHS c_u_x38_ 0
- RHS r_l_x39_ 0
- RHS r_u_x39_ 0
- RHS c_e_ONE_VAR_CONSTANT 1
-BOUNDS
- LO BOUND x1 0
- UP BOUND x1 10
- BV BOUND x10
- BV BOUND x11
- BV BOUND x12
- MI BOUND x13
- UP BOUND x13 1
- FR BOUND x14
- FR BOUND x15
- LO BOUND x16 0
- BV BOUND x17
- BV BOUND x18
- BV BOUND x19
- FR BOUND x2
- LO BOUND x3 -10
- UP BOUND x3 10
- FR BOUND x4
- FR BOUND x5
- MI BOUND x6
- UP BOUND x6 1
- FR BOUND x7
- FR BOUND x8
- LO BOUND x9 0
-ENDATA
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_baseline/piecewise.cor.symbols b/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_baseline/piecewise.cor.symbols
deleted file mode 100644
index e9ae01d4c9f..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_baseline/piecewise.cor.symbols
+++ /dev/null
@@ -1,9 +0,0 @@
-x2 fx
-x10 p_first_stage.INC_bin_y:#1
-x11 p_first_stage.INC_bin_y:#2
-x12 p_first_stage.INC_bin_y:#3
-x6 p_first_stage.INC_delta:#1
-x7 p_first_stage.INC_delta:#2
-x8 p_first_stage.INC_delta:#3
-x9 p_first_stage.INC_delta:#4
-x1 x
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_baseline/piecewise.mps.det b/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_baseline/piecewise.mps.det
deleted file mode 100644
index d71441d73c3..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_baseline/piecewise.mps.det
+++ /dev/null
@@ -1,128 +0,0 @@
-* Source: Pyomo MPS Writer
-* Format: Free MPS
-*
-NAME ZeroStochasticData
-OBJSENSE
- MIN
-ROWS
- N x20
- G c_l_x21_
- E c_e_x22_
- E c_e_x23_
- E c_e_x24_
- E c_e_x25_
- G c_l_x26_
- L c_u_x27_
- L c_u_x28_
- L c_u_x29_
- L c_u_x30_
- L c_u_x31_
- L c_u_x32_
- L c_u_x33_
- L c_u_x34_
- L c_u_x35_
- L c_u_x36_
- L c_u_x37_
- L c_u_x38_
- G r_l_x39_
- L r_u_x39_
- E c_e_ONE_VAR_CONSTANT
-COLUMNS
- x1 c_l_x21_ 1
- x1 c_e_x22_ 1
- x1 c_l_x26_ 1
- x10 c_u_x27_ -1
- x10 c_u_x30_ 1
- x11 c_u_x28_ -1
- x11 c_u_x31_ 1
- x12 c_u_x29_ -1
- x12 c_u_x32_ 1
- x13 c_e_x24_ -9876543210
- x13 c_u_x36_ -9876543210
- x14 c_e_x24_ -9876543210
- x14 c_e_x25_ -9876543210
- x14 c_u_x33_ -9876543210
- x14 c_u_x37_ -9876543210
- x15 c_e_x24_ -9876543210
- x15 c_e_x25_ -9876543210
- x15 c_u_x34_ -9876543210
- x15 c_u_x38_ -9876543210
- x16 c_e_x24_ -9876543210
- x16 c_e_x25_ -9876543210
- x16 c_u_x35_ -9876543210
- x17 c_u_x33_ -9876543210
- x17 c_u_x36_ -9876543210
- x18 c_u_x34_ -9876543210
- x18 c_u_x37_ -9876543210
- x19 c_u_x35_ -9876543210
- x19 c_u_x38_ -9876543210
- x2 x20 -9876543210
- x2 c_e_x23_ 1
- x3 c_e_x24_ -9876543210
- x4 x20 -9876543210
- x4 c_e_x25_ -9876543210
- x5 x20 -9876543210
- x5 c_l_x26_ -9876543210
- x5 r_l_x39_ 1
- x5 r_u_x39_ 1
- x6 c_e_x22_ -2
- x6 c_u_x30_ -1
- x7 c_e_x22_ -3
- x7 c_e_x23_ 1
- x7 c_u_x27_ 1
- x7 c_u_x31_ -1
- x8 c_e_x22_ -2
- x8 c_e_x23_ -1
- x8 c_u_x28_ 1
- x8 c_u_x32_ -1
- x9 c_e_x22_ -3
- x9 c_u_x29_ 1
- ONE_VAR_CONSTANT x20 0
- ONE_VAR_CONSTANT c_e_ONE_VAR_CONSTANT 1
-RHS
- RHS c_l_x21_ 0
- RHS c_e_x22_ 0
- RHS c_e_x23_ 10
- RHS c_e_x24_ -9876543210
- RHS c_e_x25_ -9876543210
- RHS c_l_x26_ -100
- RHS c_u_x27_ 0
- RHS c_u_x28_ 0
- RHS c_u_x29_ 0
- RHS c_u_x30_ 0
- RHS c_u_x31_ 0
- RHS c_u_x32_ 0
- RHS c_u_x33_ -9876543210
- RHS c_u_x34_ -9876543210
- RHS c_u_x35_ -9876543210
- RHS c_u_x36_ -9876543210
- RHS c_u_x37_ -9876543210
- RHS c_u_x38_ -9876543210
- RHS r_l_x39_ -9876543210
- RHS r_u_x39_ -9876543210
- RHS c_e_ONE_VAR_CONSTANT 1
-BOUNDS
- LO BOUND x1 0
- UP BOUND x1 10
- BV BOUND x10
- BV BOUND x11
- BV BOUND x12
- MI BOUND x13
- UP BOUND x13 1
- FR BOUND x14
- FR BOUND x15
- LO BOUND x16 0
- BV BOUND x17
- BV BOUND x18
- BV BOUND x19
- FR BOUND x2
- LO BOUND x3 -10
- UP BOUND x3 10
- FR BOUND x4
- FR BOUND x5
- MI BOUND x6
- UP BOUND x6 1
- FR BOUND x7
- FR BOUND x8
- LO BOUND x9 0
-ENDATA
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_baseline/piecewise.row b/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_baseline/piecewise.row
deleted file mode 100644
index c7d817c6fed..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_baseline/piecewise.row
+++ /dev/null
@@ -1,22 +0,0 @@
-x20
-c_l_x21_
-c_e_x22_
-c_e_x23_
-c_e_x24_
-c_e_x25_
-c_l_x26_
-c_u_x27_
-c_u_x28_
-c_u_x29_
-c_u_x30_
-c_u_x31_
-c_u_x32_
-c_u_x33_
-c_u_x34_
-c_u_x35_
-c_u_x36_
-c_u_x37_
-c_u_x38_
-r_l_x39_
-r_u_x39_
-c_e_ONE_VAR_CONSTANT
\ No newline at end of file
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_baseline/piecewise.sto b/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_baseline/piecewise.sto
deleted file mode 100644
index e01f9360f88..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_baseline/piecewise.sto
+++ /dev/null
@@ -1,114 +0,0 @@
-STOCH piecewise
-BLOCKS DISCRETE REPLACE
- BL BLOCK1 PERIOD2 0.33333333329999998
- RHS c_e_x24_ -10
- RHS c_e_x25_ 0
- RHS c_u_x33_ 0
- RHS c_u_x34_ 0
- RHS c_u_x35_ 0
- RHS c_u_x36_ 0
- RHS c_u_x37_ 0
- RHS c_u_x38_ 0
- RHS r_l_x39_ 0
- RHS r_u_x39_ 0
- x5 c_l_x26_ 0
- x13 c_e_x24_ -5
- x14 c_e_x24_ -5
- x15 c_e_x24_ -5
- x16 c_e_x24_ -5
- x3 c_e_x24_ 1
- x14 c_e_x25_ 1
- x15 c_e_x25_ -3
- x16 c_e_x25_ 1
- x4 c_e_x25_ 1
- x14 c_u_x33_ 1
- x17 c_u_x33_ -1
- x15 c_u_x34_ 1
- x18 c_u_x34_ -1
- x16 c_u_x35_ 1
- x19 c_u_x35_ -1
- x13 c_u_x36_ -1
- x17 c_u_x36_ 1
- x14 c_u_x37_ -1
- x18 c_u_x37_ 1
- x15 c_u_x38_ -1
- x19 c_u_x38_ 1
- x2 x20 1
- x4 x20 -1
- x5 x20 1
- ONE_VAR_CONSTANT x20 0
- BL BLOCK1 PERIOD2 0.33333333329999998
- RHS c_e_x24_ -10
- RHS c_e_x25_ 0
- RHS c_u_x33_ 0
- RHS c_u_x34_ 0
- RHS c_u_x35_ 0
- RHS c_u_x36_ 0
- RHS c_u_x37_ 0
- RHS c_u_x38_ 0
- RHS r_l_x39_ -1
- RHS r_u_x39_ 0
- x5 c_l_x26_ 1
- x13 c_e_x24_ -5
- x14 c_e_x24_ -5
- x15 c_e_x24_ -5
- x16 c_e_x24_ -5
- x3 c_e_x24_ 1
- x14 c_e_x25_ 1
- x15 c_e_x25_ -4
- x16 c_e_x25_ 2
- x4 c_e_x25_ 1
- x14 c_u_x33_ 1
- x17 c_u_x33_ -1
- x15 c_u_x34_ 1
- x18 c_u_x34_ -1
- x16 c_u_x35_ 1
- x19 c_u_x35_ -1
- x13 c_u_x36_ -1
- x17 c_u_x36_ 1
- x14 c_u_x37_ -1
- x18 c_u_x37_ 1
- x15 c_u_x38_ -1
- x19 c_u_x38_ 1
- x2 x20 1
- x4 x20 -1
- x5 x20 1
- ONE_VAR_CONSTANT x20 -1
- BL BLOCK1 PERIOD2 0.33333333329999998
- RHS c_e_x24_ -10
- RHS c_e_x25_ 0
- RHS c_u_x33_ 0
- RHS c_u_x34_ 0
- RHS c_u_x35_ 0
- RHS c_u_x36_ 0
- RHS c_u_x37_ 0
- RHS c_u_x38_ 0
- RHS r_l_x39_ -2
- RHS r_u_x39_ 0
- x5 c_l_x26_ 2
- x13 c_e_x24_ -5
- x14 c_e_x24_ -5
- x15 c_e_x24_ -5
- x16 c_e_x24_ -5
- x3 c_e_x24_ 1
- x14 c_e_x25_ 1
- x15 c_e_x25_ -5
- x16 c_e_x25_ 3
- x4 c_e_x25_ 1
- x14 c_u_x33_ 1
- x17 c_u_x33_ -1
- x15 c_u_x34_ 1
- x18 c_u_x34_ -1
- x16 c_u_x35_ 1
- x19 c_u_x35_ -1
- x13 c_u_x36_ -1
- x17 c_u_x36_ 1
- x14 c_u_x37_ -1
- x18 c_u_x37_ 1
- x15 c_u_x38_ -1
- x19 c_u_x38_ 1
- x2 x20 1
- x4 x20 -1
- x5 x20 1
- ONE_VAR_CONSTANT x20 -2
-ENDATA
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_baseline/piecewise.sto.struct b/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_baseline/piecewise.sto.struct
deleted file mode 100644
index d4306d642fc..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_baseline/piecewise.sto.struct
+++ /dev/null
@@ -1,36 +0,0 @@
-RHS c_e_x24_
-RHS c_e_x25_
-RHS c_u_x33_
-RHS c_u_x34_
-RHS c_u_x35_
-RHS c_u_x36_
-RHS c_u_x37_
-RHS c_u_x38_
-RHS r_l_x39_
-RHS r_u_x39_
-x5 c_l_x26_
-x13 c_e_x24_
-x14 c_e_x24_
-x15 c_e_x24_
-x16 c_e_x24_
-x3 c_e_x24_
-x14 c_e_x25_
-x15 c_e_x25_
-x16 c_e_x25_
-x4 c_e_x25_
-x14 c_u_x33_
-x17 c_u_x33_
-x15 c_u_x34_
-x18 c_u_x34_
-x16 c_u_x35_
-x19 c_u_x35_
-x13 c_u_x36_
-x17 c_u_x36_
-x14 c_u_x37_
-x18 c_u_x37_
-x15 c_u_x38_
-x19 c_u_x38_
-x2 x20
-x4 x20
-x5 x20
-ONE_VAR_CONSTANT x20
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_baseline/piecewise.tim b/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_baseline/piecewise.tim
deleted file mode 100644
index c2b95da7e10..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_baseline/piecewise.tim
+++ /dev/null
@@ -1,5 +0,0 @@
-TIME piecewise
-PERIODS IMPLICIT
- x1 x20 TIME1
- x10 c_e_x22_ TIME2
-ENDATA
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_baseline/scenario_files/piecewise.col.Scenario1 b/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_baseline/scenario_files/piecewise.col.Scenario1
deleted file mode 100644
index a2b99137e76..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_baseline/scenario_files/piecewise.col.Scenario1
+++ /dev/null
@@ -1,20 +0,0 @@
-x1
-x10
-x11
-x12
-x13
-x14
-x15
-x16
-x17
-x18
-x19
-x2
-x3
-x4
-x5
-x6
-x7
-x8
-x9
-ONE_VAR_CONSTANT
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_baseline/scenario_files/piecewise.col.Scenario2 b/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_baseline/scenario_files/piecewise.col.Scenario2
deleted file mode 100644
index a2b99137e76..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_baseline/scenario_files/piecewise.col.Scenario2
+++ /dev/null
@@ -1,20 +0,0 @@
-x1
-x10
-x11
-x12
-x13
-x14
-x15
-x16
-x17
-x18
-x19
-x2
-x3
-x4
-x5
-x6
-x7
-x8
-x9
-ONE_VAR_CONSTANT
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_baseline/scenario_files/piecewise.col.Scenario3 b/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_baseline/scenario_files/piecewise.col.Scenario3
deleted file mode 100644
index a2b99137e76..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_baseline/scenario_files/piecewise.col.Scenario3
+++ /dev/null
@@ -1,20 +0,0 @@
-x1
-x10
-x11
-x12
-x13
-x14
-x15
-x16
-x17
-x18
-x19
-x2
-x3
-x4
-x5
-x6
-x7
-x8
-x9
-ONE_VAR_CONSTANT
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_baseline/scenario_files/piecewise.mps.Scenario1 b/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_baseline/scenario_files/piecewise.mps.Scenario1
deleted file mode 100644
index 781062f4125..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_baseline/scenario_files/piecewise.mps.Scenario1
+++ /dev/null
@@ -1,128 +0,0 @@
-* Source: Pyomo MPS Writer
-* Format: Free MPS
-*
-NAME Scenario1
-OBJSENSE
- MIN
-ROWS
- N x20
- G c_l_x21_
- E c_e_x22_
- E c_e_x23_
- E c_e_x24_
- E c_e_x25_
- G c_l_x26_
- L c_u_x27_
- L c_u_x28_
- L c_u_x29_
- L c_u_x30_
- L c_u_x31_
- L c_u_x32_
- L c_u_x33_
- L c_u_x34_
- L c_u_x35_
- L c_u_x36_
- L c_u_x37_
- L c_u_x38_
- G r_l_x39_
- L r_u_x39_
- E c_e_ONE_VAR_CONSTANT
-COLUMNS
- x1 c_l_x21_ 1
- x1 c_e_x22_ 1
- x1 c_l_x26_ 1
- x10 c_u_x27_ -1
- x10 c_u_x30_ 1
- x11 c_u_x28_ -1
- x11 c_u_x31_ 1
- x12 c_u_x29_ -1
- x12 c_u_x32_ 1
- x13 c_e_x24_ -5
- x13 c_u_x36_ -1
- x14 c_e_x24_ -5
- x14 c_e_x25_ 1
- x14 c_u_x33_ 1
- x14 c_u_x37_ -1
- x15 c_e_x24_ -5
- x15 c_e_x25_ -3
- x15 c_u_x34_ 1
- x15 c_u_x38_ -1
- x16 c_e_x24_ -5
- x16 c_e_x25_ 1
- x16 c_u_x35_ 1
- x17 c_u_x33_ -1
- x17 c_u_x36_ 1
- x18 c_u_x34_ -1
- x18 c_u_x37_ 1
- x19 c_u_x35_ -1
- x19 c_u_x38_ 1
- x2 x20 1
- x2 c_e_x23_ 1
- x3 c_e_x24_ 1
- x4 x20 -1
- x4 c_e_x25_ 1
- x5 x20 1
- x5 c_l_x26_ 0
- x5 r_l_x39_ 1
- x5 r_u_x39_ 1
- x6 c_e_x22_ -2
- x6 c_u_x30_ -1
- x7 c_e_x22_ -3
- x7 c_e_x23_ 1
- x7 c_u_x27_ 1
- x7 c_u_x31_ -1
- x8 c_e_x22_ -2
- x8 c_e_x23_ -1
- x8 c_u_x28_ 1
- x8 c_u_x32_ -1
- x9 c_e_x22_ -3
- x9 c_u_x29_ 1
- ONE_VAR_CONSTANT x20 0
- ONE_VAR_CONSTANT c_e_ONE_VAR_CONSTANT 1
-RHS
- RHS c_l_x21_ 0
- RHS c_e_x22_ 0
- RHS c_e_x23_ 10
- RHS c_e_x24_ -10
- RHS c_e_x25_ 0
- RHS c_l_x26_ -100
- RHS c_u_x27_ 0
- RHS c_u_x28_ 0
- RHS c_u_x29_ 0
- RHS c_u_x30_ 0
- RHS c_u_x31_ 0
- RHS c_u_x32_ 0
- RHS c_u_x33_ 0
- RHS c_u_x34_ 0
- RHS c_u_x35_ 0
- RHS c_u_x36_ 0
- RHS c_u_x37_ 0
- RHS c_u_x38_ 0
- RHS r_l_x39_ 0
- RHS r_u_x39_ 0
- RHS c_e_ONE_VAR_CONSTANT 1
-BOUNDS
- LO BOUND x1 0
- UP BOUND x1 10
- BV BOUND x10
- BV BOUND x11
- BV BOUND x12
- MI BOUND x13
- UP BOUND x13 1
- FR BOUND x14
- FR BOUND x15
- LO BOUND x16 0
- BV BOUND x17
- BV BOUND x18
- BV BOUND x19
- FR BOUND x2
- LO BOUND x3 -10
- UP BOUND x3 10
- FR BOUND x4
- FR BOUND x5
- MI BOUND x6
- UP BOUND x6 1
- FR BOUND x7
- FR BOUND x8
- LO BOUND x9 0
-ENDATA
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_baseline/scenario_files/piecewise.mps.Scenario2 b/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_baseline/scenario_files/piecewise.mps.Scenario2
deleted file mode 100644
index 6bcf8f89806..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_baseline/scenario_files/piecewise.mps.Scenario2
+++ /dev/null
@@ -1,128 +0,0 @@
-* Source: Pyomo MPS Writer
-* Format: Free MPS
-*
-NAME Scenario2
-OBJSENSE
- MIN
-ROWS
- N x20
- G c_l_x21_
- E c_e_x22_
- E c_e_x23_
- E c_e_x24_
- E c_e_x25_
- G c_l_x26_
- L c_u_x27_
- L c_u_x28_
- L c_u_x29_
- L c_u_x30_
- L c_u_x31_
- L c_u_x32_
- L c_u_x33_
- L c_u_x34_
- L c_u_x35_
- L c_u_x36_
- L c_u_x37_
- L c_u_x38_
- G r_l_x39_
- L r_u_x39_
- E c_e_ONE_VAR_CONSTANT
-COLUMNS
- x1 c_l_x21_ 1
- x1 c_e_x22_ 1
- x1 c_l_x26_ 1
- x10 c_u_x27_ -1
- x10 c_u_x30_ 1
- x11 c_u_x28_ -1
- x11 c_u_x31_ 1
- x12 c_u_x29_ -1
- x12 c_u_x32_ 1
- x13 c_e_x24_ -5
- x13 c_u_x36_ -1
- x14 c_e_x24_ -5
- x14 c_e_x25_ 1
- x14 c_u_x33_ 1
- x14 c_u_x37_ -1
- x15 c_e_x24_ -5
- x15 c_e_x25_ -4
- x15 c_u_x34_ 1
- x15 c_u_x38_ -1
- x16 c_e_x24_ -5
- x16 c_e_x25_ 2
- x16 c_u_x35_ 1
- x17 c_u_x33_ -1
- x17 c_u_x36_ 1
- x18 c_u_x34_ -1
- x18 c_u_x37_ 1
- x19 c_u_x35_ -1
- x19 c_u_x38_ 1
- x2 x20 1
- x2 c_e_x23_ 1
- x3 c_e_x24_ 1
- x4 x20 -1
- x4 c_e_x25_ 1
- x5 x20 1
- x5 c_l_x26_ 1
- x5 r_l_x39_ 1
- x5 r_u_x39_ 1
- x6 c_e_x22_ -2
- x6 c_u_x30_ -1
- x7 c_e_x22_ -3
- x7 c_e_x23_ 1
- x7 c_u_x27_ 1
- x7 c_u_x31_ -1
- x8 c_e_x22_ -2
- x8 c_e_x23_ -1
- x8 c_u_x28_ 1
- x8 c_u_x32_ -1
- x9 c_e_x22_ -3
- x9 c_u_x29_ 1
- ONE_VAR_CONSTANT x20 -1
- ONE_VAR_CONSTANT c_e_ONE_VAR_CONSTANT 1
-RHS
- RHS c_l_x21_ 0
- RHS c_e_x22_ 0
- RHS c_e_x23_ 10
- RHS c_e_x24_ -10
- RHS c_e_x25_ 0
- RHS c_l_x26_ -100
- RHS c_u_x27_ 0
- RHS c_u_x28_ 0
- RHS c_u_x29_ 0
- RHS c_u_x30_ 0
- RHS c_u_x31_ 0
- RHS c_u_x32_ 0
- RHS c_u_x33_ 0
- RHS c_u_x34_ 0
- RHS c_u_x35_ 0
- RHS c_u_x36_ 0
- RHS c_u_x37_ 0
- RHS c_u_x38_ 0
- RHS r_l_x39_ -1
- RHS r_u_x39_ 0
- RHS c_e_ONE_VAR_CONSTANT 1
-BOUNDS
- LO BOUND x1 0
- UP BOUND x1 10
- BV BOUND x10
- BV BOUND x11
- BV BOUND x12
- MI BOUND x13
- UP BOUND x13 1
- FR BOUND x14
- FR BOUND x15
- LO BOUND x16 0
- BV BOUND x17
- BV BOUND x18
- BV BOUND x19
- FR BOUND x2
- LO BOUND x3 -10
- UP BOUND x3 10
- FR BOUND x4
- FR BOUND x5
- MI BOUND x6
- UP BOUND x6 1
- FR BOUND x7
- FR BOUND x8
- LO BOUND x9 0
-ENDATA
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_baseline/scenario_files/piecewise.mps.Scenario3 b/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_baseline/scenario_files/piecewise.mps.Scenario3
deleted file mode 100644
index 4ae2de5bd0b..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_baseline/scenario_files/piecewise.mps.Scenario3
+++ /dev/null
@@ -1,128 +0,0 @@
-* Source: Pyomo MPS Writer
-* Format: Free MPS
-*
-NAME Scenario3
-OBJSENSE
- MIN
-ROWS
- N x20
- G c_l_x21_
- E c_e_x22_
- E c_e_x23_
- E c_e_x24_
- E c_e_x25_
- G c_l_x26_
- L c_u_x27_
- L c_u_x28_
- L c_u_x29_
- L c_u_x30_
- L c_u_x31_
- L c_u_x32_
- L c_u_x33_
- L c_u_x34_
- L c_u_x35_
- L c_u_x36_
- L c_u_x37_
- L c_u_x38_
- G r_l_x39_
- L r_u_x39_
- E c_e_ONE_VAR_CONSTANT
-COLUMNS
- x1 c_l_x21_ 1
- x1 c_e_x22_ 1
- x1 c_l_x26_ 1
- x10 c_u_x27_ -1
- x10 c_u_x30_ 1
- x11 c_u_x28_ -1
- x11 c_u_x31_ 1
- x12 c_u_x29_ -1
- x12 c_u_x32_ 1
- x13 c_e_x24_ -5
- x13 c_u_x36_ -1
- x14 c_e_x24_ -5
- x14 c_e_x25_ 1
- x14 c_u_x33_ 1
- x14 c_u_x37_ -1
- x15 c_e_x24_ -5
- x15 c_e_x25_ -5
- x15 c_u_x34_ 1
- x15 c_u_x38_ -1
- x16 c_e_x24_ -5
- x16 c_e_x25_ 3
- x16 c_u_x35_ 1
- x17 c_u_x33_ -1
- x17 c_u_x36_ 1
- x18 c_u_x34_ -1
- x18 c_u_x37_ 1
- x19 c_u_x35_ -1
- x19 c_u_x38_ 1
- x2 x20 1
- x2 c_e_x23_ 1
- x3 c_e_x24_ 1
- x4 x20 -1
- x4 c_e_x25_ 1
- x5 x20 1
- x5 c_l_x26_ 2
- x5 r_l_x39_ 1
- x5 r_u_x39_ 1
- x6 c_e_x22_ -2
- x6 c_u_x30_ -1
- x7 c_e_x22_ -3
- x7 c_e_x23_ 1
- x7 c_u_x27_ 1
- x7 c_u_x31_ -1
- x8 c_e_x22_ -2
- x8 c_e_x23_ -1
- x8 c_u_x28_ 1
- x8 c_u_x32_ -1
- x9 c_e_x22_ -3
- x9 c_u_x29_ 1
- ONE_VAR_CONSTANT x20 -2
- ONE_VAR_CONSTANT c_e_ONE_VAR_CONSTANT 1
-RHS
- RHS c_l_x21_ 0
- RHS c_e_x22_ 0
- RHS c_e_x23_ 10
- RHS c_e_x24_ -10
- RHS c_e_x25_ 0
- RHS c_l_x26_ -100
- RHS c_u_x27_ 0
- RHS c_u_x28_ 0
- RHS c_u_x29_ 0
- RHS c_u_x30_ 0
- RHS c_u_x31_ 0
- RHS c_u_x32_ 0
- RHS c_u_x33_ 0
- RHS c_u_x34_ 0
- RHS c_u_x35_ 0
- RHS c_u_x36_ 0
- RHS c_u_x37_ 0
- RHS c_u_x38_ 0
- RHS r_l_x39_ -2
- RHS r_u_x39_ 0
- RHS c_e_ONE_VAR_CONSTANT 1
-BOUNDS
- LO BOUND x1 0
- UP BOUND x1 10
- BV BOUND x10
- BV BOUND x11
- BV BOUND x12
- MI BOUND x13
- UP BOUND x13 1
- FR BOUND x14
- FR BOUND x15
- LO BOUND x16 0
- BV BOUND x17
- BV BOUND x18
- BV BOUND x19
- FR BOUND x2
- LO BOUND x3 -10
- UP BOUND x3 10
- FR BOUND x4
- FR BOUND x5
- MI BOUND x6
- UP BOUND x6 1
- FR BOUND x7
- FR BOUND x8
- LO BOUND x9 0
-ENDATA
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_baseline/scenario_files/piecewise.mps.det.Scenario1 b/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_baseline/scenario_files/piecewise.mps.det.Scenario1
deleted file mode 100644
index d71441d73c3..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_baseline/scenario_files/piecewise.mps.det.Scenario1
+++ /dev/null
@@ -1,128 +0,0 @@
-* Source: Pyomo MPS Writer
-* Format: Free MPS
-*
-NAME ZeroStochasticData
-OBJSENSE
- MIN
-ROWS
- N x20
- G c_l_x21_
- E c_e_x22_
- E c_e_x23_
- E c_e_x24_
- E c_e_x25_
- G c_l_x26_
- L c_u_x27_
- L c_u_x28_
- L c_u_x29_
- L c_u_x30_
- L c_u_x31_
- L c_u_x32_
- L c_u_x33_
- L c_u_x34_
- L c_u_x35_
- L c_u_x36_
- L c_u_x37_
- L c_u_x38_
- G r_l_x39_
- L r_u_x39_
- E c_e_ONE_VAR_CONSTANT
-COLUMNS
- x1 c_l_x21_ 1
- x1 c_e_x22_ 1
- x1 c_l_x26_ 1
- x10 c_u_x27_ -1
- x10 c_u_x30_ 1
- x11 c_u_x28_ -1
- x11 c_u_x31_ 1
- x12 c_u_x29_ -1
- x12 c_u_x32_ 1
- x13 c_e_x24_ -9876543210
- x13 c_u_x36_ -9876543210
- x14 c_e_x24_ -9876543210
- x14 c_e_x25_ -9876543210
- x14 c_u_x33_ -9876543210
- x14 c_u_x37_ -9876543210
- x15 c_e_x24_ -9876543210
- x15 c_e_x25_ -9876543210
- x15 c_u_x34_ -9876543210
- x15 c_u_x38_ -9876543210
- x16 c_e_x24_ -9876543210
- x16 c_e_x25_ -9876543210
- x16 c_u_x35_ -9876543210
- x17 c_u_x33_ -9876543210
- x17 c_u_x36_ -9876543210
- x18 c_u_x34_ -9876543210
- x18 c_u_x37_ -9876543210
- x19 c_u_x35_ -9876543210
- x19 c_u_x38_ -9876543210
- x2 x20 -9876543210
- x2 c_e_x23_ 1
- x3 c_e_x24_ -9876543210
- x4 x20 -9876543210
- x4 c_e_x25_ -9876543210
- x5 x20 -9876543210
- x5 c_l_x26_ -9876543210
- x5 r_l_x39_ 1
- x5 r_u_x39_ 1
- x6 c_e_x22_ -2
- x6 c_u_x30_ -1
- x7 c_e_x22_ -3
- x7 c_e_x23_ 1
- x7 c_u_x27_ 1
- x7 c_u_x31_ -1
- x8 c_e_x22_ -2
- x8 c_e_x23_ -1
- x8 c_u_x28_ 1
- x8 c_u_x32_ -1
- x9 c_e_x22_ -3
- x9 c_u_x29_ 1
- ONE_VAR_CONSTANT x20 0
- ONE_VAR_CONSTANT c_e_ONE_VAR_CONSTANT 1
-RHS
- RHS c_l_x21_ 0
- RHS c_e_x22_ 0
- RHS c_e_x23_ 10
- RHS c_e_x24_ -9876543210
- RHS c_e_x25_ -9876543210
- RHS c_l_x26_ -100
- RHS c_u_x27_ 0
- RHS c_u_x28_ 0
- RHS c_u_x29_ 0
- RHS c_u_x30_ 0
- RHS c_u_x31_ 0
- RHS c_u_x32_ 0
- RHS c_u_x33_ -9876543210
- RHS c_u_x34_ -9876543210
- RHS c_u_x35_ -9876543210
- RHS c_u_x36_ -9876543210
- RHS c_u_x37_ -9876543210
- RHS c_u_x38_ -9876543210
- RHS r_l_x39_ -9876543210
- RHS r_u_x39_ -9876543210
- RHS c_e_ONE_VAR_CONSTANT 1
-BOUNDS
- LO BOUND x1 0
- UP BOUND x1 10
- BV BOUND x10
- BV BOUND x11
- BV BOUND x12
- MI BOUND x13
- UP BOUND x13 1
- FR BOUND x14
- FR BOUND x15
- LO BOUND x16 0
- BV BOUND x17
- BV BOUND x18
- BV BOUND x19
- FR BOUND x2
- LO BOUND x3 -10
- UP BOUND x3 10
- FR BOUND x4
- FR BOUND x5
- MI BOUND x6
- UP BOUND x6 1
- FR BOUND x7
- FR BOUND x8
- LO BOUND x9 0
-ENDATA
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_baseline/scenario_files/piecewise.mps.det.Scenario2 b/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_baseline/scenario_files/piecewise.mps.det.Scenario2
deleted file mode 100644
index d71441d73c3..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_baseline/scenario_files/piecewise.mps.det.Scenario2
+++ /dev/null
@@ -1,128 +0,0 @@
-* Source: Pyomo MPS Writer
-* Format: Free MPS
-*
-NAME ZeroStochasticData
-OBJSENSE
- MIN
-ROWS
- N x20
- G c_l_x21_
- E c_e_x22_
- E c_e_x23_
- E c_e_x24_
- E c_e_x25_
- G c_l_x26_
- L c_u_x27_
- L c_u_x28_
- L c_u_x29_
- L c_u_x30_
- L c_u_x31_
- L c_u_x32_
- L c_u_x33_
- L c_u_x34_
- L c_u_x35_
- L c_u_x36_
- L c_u_x37_
- L c_u_x38_
- G r_l_x39_
- L r_u_x39_
- E c_e_ONE_VAR_CONSTANT
-COLUMNS
- x1 c_l_x21_ 1
- x1 c_e_x22_ 1
- x1 c_l_x26_ 1
- x10 c_u_x27_ -1
- x10 c_u_x30_ 1
- x11 c_u_x28_ -1
- x11 c_u_x31_ 1
- x12 c_u_x29_ -1
- x12 c_u_x32_ 1
- x13 c_e_x24_ -9876543210
- x13 c_u_x36_ -9876543210
- x14 c_e_x24_ -9876543210
- x14 c_e_x25_ -9876543210
- x14 c_u_x33_ -9876543210
- x14 c_u_x37_ -9876543210
- x15 c_e_x24_ -9876543210
- x15 c_e_x25_ -9876543210
- x15 c_u_x34_ -9876543210
- x15 c_u_x38_ -9876543210
- x16 c_e_x24_ -9876543210
- x16 c_e_x25_ -9876543210
- x16 c_u_x35_ -9876543210
- x17 c_u_x33_ -9876543210
- x17 c_u_x36_ -9876543210
- x18 c_u_x34_ -9876543210
- x18 c_u_x37_ -9876543210
- x19 c_u_x35_ -9876543210
- x19 c_u_x38_ -9876543210
- x2 x20 -9876543210
- x2 c_e_x23_ 1
- x3 c_e_x24_ -9876543210
- x4 x20 -9876543210
- x4 c_e_x25_ -9876543210
- x5 x20 -9876543210
- x5 c_l_x26_ -9876543210
- x5 r_l_x39_ 1
- x5 r_u_x39_ 1
- x6 c_e_x22_ -2
- x6 c_u_x30_ -1
- x7 c_e_x22_ -3
- x7 c_e_x23_ 1
- x7 c_u_x27_ 1
- x7 c_u_x31_ -1
- x8 c_e_x22_ -2
- x8 c_e_x23_ -1
- x8 c_u_x28_ 1
- x8 c_u_x32_ -1
- x9 c_e_x22_ -3
- x9 c_u_x29_ 1
- ONE_VAR_CONSTANT x20 0
- ONE_VAR_CONSTANT c_e_ONE_VAR_CONSTANT 1
-RHS
- RHS c_l_x21_ 0
- RHS c_e_x22_ 0
- RHS c_e_x23_ 10
- RHS c_e_x24_ -9876543210
- RHS c_e_x25_ -9876543210
- RHS c_l_x26_ -100
- RHS c_u_x27_ 0
- RHS c_u_x28_ 0
- RHS c_u_x29_ 0
- RHS c_u_x30_ 0
- RHS c_u_x31_ 0
- RHS c_u_x32_ 0
- RHS c_u_x33_ -9876543210
- RHS c_u_x34_ -9876543210
- RHS c_u_x35_ -9876543210
- RHS c_u_x36_ -9876543210
- RHS c_u_x37_ -9876543210
- RHS c_u_x38_ -9876543210
- RHS r_l_x39_ -9876543210
- RHS r_u_x39_ -9876543210
- RHS c_e_ONE_VAR_CONSTANT 1
-BOUNDS
- LO BOUND x1 0
- UP BOUND x1 10
- BV BOUND x10
- BV BOUND x11
- BV BOUND x12
- MI BOUND x13
- UP BOUND x13 1
- FR BOUND x14
- FR BOUND x15
- LO BOUND x16 0
- BV BOUND x17
- BV BOUND x18
- BV BOUND x19
- FR BOUND x2
- LO BOUND x3 -10
- UP BOUND x3 10
- FR BOUND x4
- FR BOUND x5
- MI BOUND x6
- UP BOUND x6 1
- FR BOUND x7
- FR BOUND x8
- LO BOUND x9 0
-ENDATA
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_baseline/scenario_files/piecewise.mps.det.Scenario3 b/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_baseline/scenario_files/piecewise.mps.det.Scenario3
deleted file mode 100644
index d71441d73c3..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_baseline/scenario_files/piecewise.mps.det.Scenario3
+++ /dev/null
@@ -1,128 +0,0 @@
-* Source: Pyomo MPS Writer
-* Format: Free MPS
-*
-NAME ZeroStochasticData
-OBJSENSE
- MIN
-ROWS
- N x20
- G c_l_x21_
- E c_e_x22_
- E c_e_x23_
- E c_e_x24_
- E c_e_x25_
- G c_l_x26_
- L c_u_x27_
- L c_u_x28_
- L c_u_x29_
- L c_u_x30_
- L c_u_x31_
- L c_u_x32_
- L c_u_x33_
- L c_u_x34_
- L c_u_x35_
- L c_u_x36_
- L c_u_x37_
- L c_u_x38_
- G r_l_x39_
- L r_u_x39_
- E c_e_ONE_VAR_CONSTANT
-COLUMNS
- x1 c_l_x21_ 1
- x1 c_e_x22_ 1
- x1 c_l_x26_ 1
- x10 c_u_x27_ -1
- x10 c_u_x30_ 1
- x11 c_u_x28_ -1
- x11 c_u_x31_ 1
- x12 c_u_x29_ -1
- x12 c_u_x32_ 1
- x13 c_e_x24_ -9876543210
- x13 c_u_x36_ -9876543210
- x14 c_e_x24_ -9876543210
- x14 c_e_x25_ -9876543210
- x14 c_u_x33_ -9876543210
- x14 c_u_x37_ -9876543210
- x15 c_e_x24_ -9876543210
- x15 c_e_x25_ -9876543210
- x15 c_u_x34_ -9876543210
- x15 c_u_x38_ -9876543210
- x16 c_e_x24_ -9876543210
- x16 c_e_x25_ -9876543210
- x16 c_u_x35_ -9876543210
- x17 c_u_x33_ -9876543210
- x17 c_u_x36_ -9876543210
- x18 c_u_x34_ -9876543210
- x18 c_u_x37_ -9876543210
- x19 c_u_x35_ -9876543210
- x19 c_u_x38_ -9876543210
- x2 x20 -9876543210
- x2 c_e_x23_ 1
- x3 c_e_x24_ -9876543210
- x4 x20 -9876543210
- x4 c_e_x25_ -9876543210
- x5 x20 -9876543210
- x5 c_l_x26_ -9876543210
- x5 r_l_x39_ 1
- x5 r_u_x39_ 1
- x6 c_e_x22_ -2
- x6 c_u_x30_ -1
- x7 c_e_x22_ -3
- x7 c_e_x23_ 1
- x7 c_u_x27_ 1
- x7 c_u_x31_ -1
- x8 c_e_x22_ -2
- x8 c_e_x23_ -1
- x8 c_u_x28_ 1
- x8 c_u_x32_ -1
- x9 c_e_x22_ -3
- x9 c_u_x29_ 1
- ONE_VAR_CONSTANT x20 0
- ONE_VAR_CONSTANT c_e_ONE_VAR_CONSTANT 1
-RHS
- RHS c_l_x21_ 0
- RHS c_e_x22_ 0
- RHS c_e_x23_ 10
- RHS c_e_x24_ -9876543210
- RHS c_e_x25_ -9876543210
- RHS c_l_x26_ -100
- RHS c_u_x27_ 0
- RHS c_u_x28_ 0
- RHS c_u_x29_ 0
- RHS c_u_x30_ 0
- RHS c_u_x31_ 0
- RHS c_u_x32_ 0
- RHS c_u_x33_ -9876543210
- RHS c_u_x34_ -9876543210
- RHS c_u_x35_ -9876543210
- RHS c_u_x36_ -9876543210
- RHS c_u_x37_ -9876543210
- RHS c_u_x38_ -9876543210
- RHS r_l_x39_ -9876543210
- RHS r_u_x39_ -9876543210
- RHS c_e_ONE_VAR_CONSTANT 1
-BOUNDS
- LO BOUND x1 0
- UP BOUND x1 10
- BV BOUND x10
- BV BOUND x11
- BV BOUND x12
- MI BOUND x13
- UP BOUND x13 1
- FR BOUND x14
- FR BOUND x15
- LO BOUND x16 0
- BV BOUND x17
- BV BOUND x18
- BV BOUND x19
- FR BOUND x2
- LO BOUND x3 -10
- UP BOUND x3 10
- FR BOUND x4
- FR BOUND x5
- MI BOUND x6
- UP BOUND x6 1
- FR BOUND x7
- FR BOUND x8
- LO BOUND x9 0
-ENDATA
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_baseline/scenario_files/piecewise.mps.symbols.Scenario1 b/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_baseline/scenario_files/piecewise.mps.symbols.Scenario1
deleted file mode 100644
index e9ae01d4c9f..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_baseline/scenario_files/piecewise.mps.symbols.Scenario1
+++ /dev/null
@@ -1,9 +0,0 @@
-x2 fx
-x10 p_first_stage.INC_bin_y:#1
-x11 p_first_stage.INC_bin_y:#2
-x12 p_first_stage.INC_bin_y:#3
-x6 p_first_stage.INC_delta:#1
-x7 p_first_stage.INC_delta:#2
-x8 p_first_stage.INC_delta:#3
-x9 p_first_stage.INC_delta:#4
-x1 x
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_baseline/scenario_files/piecewise.mps.symbols.Scenario2 b/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_baseline/scenario_files/piecewise.mps.symbols.Scenario2
deleted file mode 100644
index e9ae01d4c9f..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_baseline/scenario_files/piecewise.mps.symbols.Scenario2
+++ /dev/null
@@ -1,9 +0,0 @@
-x2 fx
-x10 p_first_stage.INC_bin_y:#1
-x11 p_first_stage.INC_bin_y:#2
-x12 p_first_stage.INC_bin_y:#3
-x6 p_first_stage.INC_delta:#1
-x7 p_first_stage.INC_delta:#2
-x8 p_first_stage.INC_delta:#3
-x9 p_first_stage.INC_delta:#4
-x1 x
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_baseline/scenario_files/piecewise.mps.symbols.Scenario3 b/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_baseline/scenario_files/piecewise.mps.symbols.Scenario3
deleted file mode 100644
index e9ae01d4c9f..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_baseline/scenario_files/piecewise.mps.symbols.Scenario3
+++ /dev/null
@@ -1,9 +0,0 @@
-x2 fx
-x10 p_first_stage.INC_bin_y:#1
-x11 p_first_stage.INC_bin_y:#2
-x12 p_first_stage.INC_bin_y:#3
-x6 p_first_stage.INC_delta:#1
-x7 p_first_stage.INC_delta:#2
-x8 p_first_stage.INC_delta:#3
-x9 p_first_stage.INC_delta:#4
-x1 x
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_baseline/scenario_files/piecewise.row.Scenario1 b/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_baseline/scenario_files/piecewise.row.Scenario1
deleted file mode 100644
index c7d817c6fed..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_baseline/scenario_files/piecewise.row.Scenario1
+++ /dev/null
@@ -1,22 +0,0 @@
-x20
-c_l_x21_
-c_e_x22_
-c_e_x23_
-c_e_x24_
-c_e_x25_
-c_l_x26_
-c_u_x27_
-c_u_x28_
-c_u_x29_
-c_u_x30_
-c_u_x31_
-c_u_x32_
-c_u_x33_
-c_u_x34_
-c_u_x35_
-c_u_x36_
-c_u_x37_
-c_u_x38_
-r_l_x39_
-r_u_x39_
-c_e_ONE_VAR_CONSTANT
\ No newline at end of file
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_baseline/scenario_files/piecewise.row.Scenario2 b/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_baseline/scenario_files/piecewise.row.Scenario2
deleted file mode 100644
index c7d817c6fed..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_baseline/scenario_files/piecewise.row.Scenario2
+++ /dev/null
@@ -1,22 +0,0 @@
-x20
-c_l_x21_
-c_e_x22_
-c_e_x23_
-c_e_x24_
-c_e_x25_
-c_l_x26_
-c_u_x27_
-c_u_x28_
-c_u_x29_
-c_u_x30_
-c_u_x31_
-c_u_x32_
-c_u_x33_
-c_u_x34_
-c_u_x35_
-c_u_x36_
-c_u_x37_
-c_u_x38_
-r_l_x39_
-r_u_x39_
-c_e_ONE_VAR_CONSTANT
\ No newline at end of file
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_baseline/scenario_files/piecewise.row.Scenario3 b/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_baseline/scenario_files/piecewise.row.Scenario3
deleted file mode 100644
index c7d817c6fed..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_baseline/scenario_files/piecewise.row.Scenario3
+++ /dev/null
@@ -1,22 +0,0 @@
-x20
-c_l_x21_
-c_e_x22_
-c_e_x23_
-c_e_x24_
-c_e_x25_
-c_l_x26_
-c_u_x27_
-c_u_x28_
-c_u_x29_
-c_u_x30_
-c_u_x31_
-c_u_x32_
-c_u_x33_
-c_u_x34_
-c_u_x35_
-c_u_x36_
-c_u_x37_
-c_u_x38_
-r_l_x39_
-r_u_x39_
-c_e_ONE_VAR_CONSTANT
\ No newline at end of file
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_baseline/scenario_files/piecewise.setup.mps.Scenario1 b/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_baseline/scenario_files/piecewise.setup.mps.Scenario1
deleted file mode 100644
index 033b1fe5445..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_baseline/scenario_files/piecewise.setup.mps.Scenario1
+++ /dev/null
@@ -1,124 +0,0 @@
-* Source: Pyomo MPS Writer
-* Format: Free MPS
-*
-NAME Scenario1
-OBJSENSE
- MIN
-ROWS
- N x20
- G c_l_x21_
- G c_l_x22_
- G r_l_x23_
- L r_u_x23_
- E c_e_x24_
- E c_e_x25_
- L c_u_x26_
- L c_u_x27_
- L c_u_x28_
- L c_u_x29_
- L c_u_x30_
- L c_u_x31_
- E c_e_x32_
- E c_e_x33_
- L c_u_x34_
- L c_u_x35_
- L c_u_x36_
- L c_u_x37_
- L c_u_x38_
- L c_u_x39_
-COLUMNS
- x1 c_l_x21_ 1
- x1 c_l_x22_ 1
- x1 c_e_x24_ 1
- x2 x20 1
- x2 c_e_x25_ 1
- x3 c_e_x32_ 1
- x4 x20 -1
- x4 c_e_x33_ 1
- x5 x20 1
- x5 c_l_x22_ 0
- x5 r_l_x23_ 1
- x5 r_u_x23_ 1
- x6 c_e_x24_ -2
- x6 c_u_x29_ -1
- x7 c_e_x24_ -3
- x7 c_e_x25_ 1
- x7 c_u_x26_ 1
- x7 c_u_x30_ -1
- x8 c_e_x24_ -2
- x8 c_e_x25_ -1
- x8 c_u_x27_ 1
- x8 c_u_x31_ -1
- x9 c_e_x24_ -3
- x9 c_u_x28_ 1
- x10 c_u_x26_ -1
- x10 c_u_x29_ 1
- x11 c_u_x27_ -1
- x11 c_u_x30_ 1
- x12 c_u_x28_ -1
- x12 c_u_x31_ 1
- x13 c_e_x32_ -5
- x13 c_u_x37_ -1
- x14 c_e_x32_ -5
- x14 c_e_x33_ 1
- x14 c_u_x34_ 1
- x14 c_u_x38_ -1
- x15 c_e_x32_ -5
- x15 c_e_x33_ -3
- x15 c_u_x35_ 1
- x15 c_u_x39_ -1
- x16 c_e_x32_ -5
- x16 c_e_x33_ 1
- x16 c_u_x36_ 1
- x17 c_u_x34_ -1
- x17 c_u_x37_ 1
- x18 c_u_x35_ -1
- x18 c_u_x38_ 1
- x19 c_u_x36_ -1
- x19 c_u_x39_ 1
-RHS
- RHS c_l_x21_ 0
- RHS c_l_x22_ -100
- RHS r_l_x23_ 0
- RHS r_u_x23_ 0
- RHS c_e_x24_ 0
- RHS c_e_x25_ 10
- RHS c_u_x26_ 0
- RHS c_u_x27_ 0
- RHS c_u_x28_ 0
- RHS c_u_x29_ 0
- RHS c_u_x30_ 0
- RHS c_u_x31_ 0
- RHS c_e_x32_ -10
- RHS c_e_x33_ 0
- RHS c_u_x34_ 0
- RHS c_u_x35_ 0
- RHS c_u_x36_ 0
- RHS c_u_x37_ 0
- RHS c_u_x38_ 0
- RHS c_u_x39_ 0
-BOUNDS
- LO BOUND x1 0
- UP BOUND x1 10
- FR BOUND x2
- LO BOUND x3 -10
- UP BOUND x3 10
- FR BOUND x4
- FR BOUND x5
- MI BOUND x6
- UP BOUND x6 1
- FR BOUND x7
- FR BOUND x8
- LO BOUND x9 0
- BV BOUND x10
- BV BOUND x11
- BV BOUND x12
- MI BOUND x13
- UP BOUND x13 1
- FR BOUND x14
- FR BOUND x15
- LO BOUND x16 0
- BV BOUND x17
- BV BOUND x18
- BV BOUND x19
-ENDATA
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_baseline/scenario_files/piecewise.setup.mps.Scenario2 b/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_baseline/scenario_files/piecewise.setup.mps.Scenario2
deleted file mode 100644
index cee9ee8abb9..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_baseline/scenario_files/piecewise.setup.mps.Scenario2
+++ /dev/null
@@ -1,128 +0,0 @@
-* Source: Pyomo MPS Writer
-* Format: Free MPS
-*
-NAME Scenario2
-OBJSENSE
- MIN
-ROWS
- N x20
- G c_l_x21_
- G c_l_x22_
- G r_l_x23_
- L r_u_x23_
- E c_e_x24_
- E c_e_x25_
- L c_u_x26_
- L c_u_x27_
- L c_u_x28_
- L c_u_x29_
- L c_u_x30_
- L c_u_x31_
- E c_e_x32_
- E c_e_x33_
- L c_u_x34_
- L c_u_x35_
- L c_u_x36_
- L c_u_x37_
- L c_u_x38_
- L c_u_x39_
- E c_e_ONE_VAR_CONSTANT
-COLUMNS
- x1 c_l_x21_ 1
- x1 c_l_x22_ 1
- x1 c_e_x24_ 1
- x2 x20 1
- x2 c_e_x25_ 1
- x3 c_e_x32_ 1
- x4 x20 -1
- x4 c_e_x33_ 1
- x5 x20 1
- x5 c_l_x22_ 1
- x5 r_l_x23_ 1
- x5 r_u_x23_ 1
- x6 c_e_x24_ -2
- x6 c_u_x29_ -1
- x7 c_e_x24_ -3
- x7 c_e_x25_ 1
- x7 c_u_x26_ 1
- x7 c_u_x30_ -1
- x8 c_e_x24_ -2
- x8 c_e_x25_ -1
- x8 c_u_x27_ 1
- x8 c_u_x31_ -1
- x9 c_e_x24_ -3
- x9 c_u_x28_ 1
- x10 c_u_x26_ -1
- x10 c_u_x29_ 1
- x11 c_u_x27_ -1
- x11 c_u_x30_ 1
- x12 c_u_x28_ -1
- x12 c_u_x31_ 1
- x13 c_e_x32_ -5
- x13 c_u_x37_ -1
- x14 c_e_x32_ -5
- x14 c_e_x33_ 1
- x14 c_u_x34_ 1
- x14 c_u_x38_ -1
- x15 c_e_x32_ -5
- x15 c_e_x33_ -4
- x15 c_u_x35_ 1
- x15 c_u_x39_ -1
- x16 c_e_x32_ -5
- x16 c_e_x33_ 2
- x16 c_u_x36_ 1
- x17 c_u_x34_ -1
- x17 c_u_x37_ 1
- x18 c_u_x35_ -1
- x18 c_u_x38_ 1
- x19 c_u_x36_ -1
- x19 c_u_x39_ 1
- ONE_VAR_CONSTANT x20 -1
- ONE_VAR_CONSTANT c_e_ONE_VAR_CONSTANT 1
-RHS
- RHS c_l_x21_ 0
- RHS c_l_x22_ -100
- RHS r_l_x23_ -1
- RHS r_u_x23_ 0
- RHS c_e_x24_ 0
- RHS c_e_x25_ 10
- RHS c_u_x26_ 0
- RHS c_u_x27_ 0
- RHS c_u_x28_ 0
- RHS c_u_x29_ 0
- RHS c_u_x30_ 0
- RHS c_u_x31_ 0
- RHS c_e_x32_ -10
- RHS c_e_x33_ 0
- RHS c_u_x34_ 0
- RHS c_u_x35_ 0
- RHS c_u_x36_ 0
- RHS c_u_x37_ 0
- RHS c_u_x38_ 0
- RHS c_u_x39_ 0
- RHS c_e_ONE_VAR_CONSTANT 1
-BOUNDS
- LO BOUND x1 0
- UP BOUND x1 10
- FR BOUND x2
- LO BOUND x3 -10
- UP BOUND x3 10
- FR BOUND x4
- FR BOUND x5
- MI BOUND x6
- UP BOUND x6 1
- FR BOUND x7
- FR BOUND x8
- LO BOUND x9 0
- BV BOUND x10
- BV BOUND x11
- BV BOUND x12
- MI BOUND x13
- UP BOUND x13 1
- FR BOUND x14
- FR BOUND x15
- LO BOUND x16 0
- BV BOUND x17
- BV BOUND x18
- BV BOUND x19
-ENDATA
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_baseline/scenario_files/piecewise.setup.mps.Scenario3 b/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_baseline/scenario_files/piecewise.setup.mps.Scenario3
deleted file mode 100644
index a3b9daa2af7..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_baseline/scenario_files/piecewise.setup.mps.Scenario3
+++ /dev/null
@@ -1,128 +0,0 @@
-* Source: Pyomo MPS Writer
-* Format: Free MPS
-*
-NAME Scenario3
-OBJSENSE
- MIN
-ROWS
- N x20
- G c_l_x21_
- G c_l_x22_
- G r_l_x23_
- L r_u_x23_
- E c_e_x24_
- E c_e_x25_
- L c_u_x26_
- L c_u_x27_
- L c_u_x28_
- L c_u_x29_
- L c_u_x30_
- L c_u_x31_
- E c_e_x32_
- E c_e_x33_
- L c_u_x34_
- L c_u_x35_
- L c_u_x36_
- L c_u_x37_
- L c_u_x38_
- L c_u_x39_
- E c_e_ONE_VAR_CONSTANT
-COLUMNS
- x1 c_l_x21_ 1
- x1 c_l_x22_ 1
- x1 c_e_x24_ 1
- x2 x20 1
- x2 c_e_x25_ 1
- x3 c_e_x32_ 1
- x4 x20 -1
- x4 c_e_x33_ 1
- x5 x20 1
- x5 c_l_x22_ 2
- x5 r_l_x23_ 1
- x5 r_u_x23_ 1
- x6 c_e_x24_ -2
- x6 c_u_x29_ -1
- x7 c_e_x24_ -3
- x7 c_e_x25_ 1
- x7 c_u_x26_ 1
- x7 c_u_x30_ -1
- x8 c_e_x24_ -2
- x8 c_e_x25_ -1
- x8 c_u_x27_ 1
- x8 c_u_x31_ -1
- x9 c_e_x24_ -3
- x9 c_u_x28_ 1
- x10 c_u_x26_ -1
- x10 c_u_x29_ 1
- x11 c_u_x27_ -1
- x11 c_u_x30_ 1
- x12 c_u_x28_ -1
- x12 c_u_x31_ 1
- x13 c_e_x32_ -5
- x13 c_u_x37_ -1
- x14 c_e_x32_ -5
- x14 c_e_x33_ 1
- x14 c_u_x34_ 1
- x14 c_u_x38_ -1
- x15 c_e_x32_ -5
- x15 c_e_x33_ -5
- x15 c_u_x35_ 1
- x15 c_u_x39_ -1
- x16 c_e_x32_ -5
- x16 c_e_x33_ 3
- x16 c_u_x36_ 1
- x17 c_u_x34_ -1
- x17 c_u_x37_ 1
- x18 c_u_x35_ -1
- x18 c_u_x38_ 1
- x19 c_u_x36_ -1
- x19 c_u_x39_ 1
- ONE_VAR_CONSTANT x20 -2
- ONE_VAR_CONSTANT c_e_ONE_VAR_CONSTANT 1
-RHS
- RHS c_l_x21_ 0
- RHS c_l_x22_ -100
- RHS r_l_x23_ -2
- RHS r_u_x23_ 0
- RHS c_e_x24_ 0
- RHS c_e_x25_ 10
- RHS c_u_x26_ 0
- RHS c_u_x27_ 0
- RHS c_u_x28_ 0
- RHS c_u_x29_ 0
- RHS c_u_x30_ 0
- RHS c_u_x31_ 0
- RHS c_e_x32_ -10
- RHS c_e_x33_ 0
- RHS c_u_x34_ 0
- RHS c_u_x35_ 0
- RHS c_u_x36_ 0
- RHS c_u_x37_ 0
- RHS c_u_x38_ 0
- RHS c_u_x39_ 0
- RHS c_e_ONE_VAR_CONSTANT 1
-BOUNDS
- LO BOUND x1 0
- UP BOUND x1 10
- FR BOUND x2
- LO BOUND x3 -10
- UP BOUND x3 10
- FR BOUND x4
- FR BOUND x5
- MI BOUND x6
- UP BOUND x6 1
- FR BOUND x7
- FR BOUND x8
- LO BOUND x9 0
- BV BOUND x10
- BV BOUND x11
- BV BOUND x12
- MI BOUND x13
- UP BOUND x13 1
- FR BOUND x14
- FR BOUND x15
- LO BOUND x16 0
- BV BOUND x17
- BV BOUND x18
- BV BOUND x19
-ENDATA
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_baseline/scenario_files/piecewise.sto.Scenario1 b/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_baseline/scenario_files/piecewise.sto.Scenario1
deleted file mode 100644
index a7597054d7b..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_baseline/scenario_files/piecewise.sto.Scenario1
+++ /dev/null
@@ -1,37 +0,0 @@
- BL BLOCK1 PERIOD2 0.33333333329999998
- RHS c_e_x24_ -10
- RHS c_e_x25_ 0
- RHS c_u_x33_ 0
- RHS c_u_x34_ 0
- RHS c_u_x35_ 0
- RHS c_u_x36_ 0
- RHS c_u_x37_ 0
- RHS c_u_x38_ 0
- RHS r_l_x39_ 0
- RHS r_u_x39_ 0
- x5 c_l_x26_ 0
- x13 c_e_x24_ -5
- x14 c_e_x24_ -5
- x15 c_e_x24_ -5
- x16 c_e_x24_ -5
- x3 c_e_x24_ 1
- x14 c_e_x25_ 1
- x15 c_e_x25_ -3
- x16 c_e_x25_ 1
- x4 c_e_x25_ 1
- x14 c_u_x33_ 1
- x17 c_u_x33_ -1
- x15 c_u_x34_ 1
- x18 c_u_x34_ -1
- x16 c_u_x35_ 1
- x19 c_u_x35_ -1
- x13 c_u_x36_ -1
- x17 c_u_x36_ 1
- x14 c_u_x37_ -1
- x18 c_u_x37_ 1
- x15 c_u_x38_ -1
- x19 c_u_x38_ 1
- x2 x20 1
- x4 x20 -1
- x5 x20 1
- ONE_VAR_CONSTANT x20 0
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_baseline/scenario_files/piecewise.sto.Scenario2 b/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_baseline/scenario_files/piecewise.sto.Scenario2
deleted file mode 100644
index 545a9f30c32..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_baseline/scenario_files/piecewise.sto.Scenario2
+++ /dev/null
@@ -1,37 +0,0 @@
- BL BLOCK1 PERIOD2 0.33333333329999998
- RHS c_e_x24_ -10
- RHS c_e_x25_ 0
- RHS c_u_x33_ 0
- RHS c_u_x34_ 0
- RHS c_u_x35_ 0
- RHS c_u_x36_ 0
- RHS c_u_x37_ 0
- RHS c_u_x38_ 0
- RHS r_l_x39_ -1
- RHS r_u_x39_ 0
- x5 c_l_x26_ 1
- x13 c_e_x24_ -5
- x14 c_e_x24_ -5
- x15 c_e_x24_ -5
- x16 c_e_x24_ -5
- x3 c_e_x24_ 1
- x14 c_e_x25_ 1
- x15 c_e_x25_ -4
- x16 c_e_x25_ 2
- x4 c_e_x25_ 1
- x14 c_u_x33_ 1
- x17 c_u_x33_ -1
- x15 c_u_x34_ 1
- x18 c_u_x34_ -1
- x16 c_u_x35_ 1
- x19 c_u_x35_ -1
- x13 c_u_x36_ -1
- x17 c_u_x36_ 1
- x14 c_u_x37_ -1
- x18 c_u_x37_ 1
- x15 c_u_x38_ -1
- x19 c_u_x38_ 1
- x2 x20 1
- x4 x20 -1
- x5 x20 1
- ONE_VAR_CONSTANT x20 -1
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_baseline/scenario_files/piecewise.sto.Scenario3 b/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_baseline/scenario_files/piecewise.sto.Scenario3
deleted file mode 100644
index f7202184733..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_baseline/scenario_files/piecewise.sto.Scenario3
+++ /dev/null
@@ -1,37 +0,0 @@
- BL BLOCK1 PERIOD2 0.33333333329999998
- RHS c_e_x24_ -10
- RHS c_e_x25_ 0
- RHS c_u_x33_ 0
- RHS c_u_x34_ 0
- RHS c_u_x35_ 0
- RHS c_u_x36_ 0
- RHS c_u_x37_ 0
- RHS c_u_x38_ 0
- RHS r_l_x39_ -2
- RHS r_u_x39_ 0
- x5 c_l_x26_ 2
- x13 c_e_x24_ -5
- x14 c_e_x24_ -5
- x15 c_e_x24_ -5
- x16 c_e_x24_ -5
- x3 c_e_x24_ 1
- x14 c_e_x25_ 1
- x15 c_e_x25_ -5
- x16 c_e_x25_ 3
- x4 c_e_x25_ 1
- x14 c_u_x33_ 1
- x17 c_u_x33_ -1
- x15 c_u_x34_ 1
- x18 c_u_x34_ -1
- x16 c_u_x35_ 1
- x19 c_u_x35_ -1
- x13 c_u_x36_ -1
- x17 c_u_x36_ 1
- x14 c_u_x37_ -1
- x18 c_u_x37_ 1
- x15 c_u_x38_ -1
- x19 c_u_x38_ 1
- x2 x20 1
- x4 x20 -1
- x5 x20 1
- ONE_VAR_CONSTANT x20 -2
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_baseline/scenario_files/piecewise.sto.struct.Scenario1 b/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_baseline/scenario_files/piecewise.sto.struct.Scenario1
deleted file mode 100644
index d4306d642fc..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_baseline/scenario_files/piecewise.sto.struct.Scenario1
+++ /dev/null
@@ -1,36 +0,0 @@
-RHS c_e_x24_
-RHS c_e_x25_
-RHS c_u_x33_
-RHS c_u_x34_
-RHS c_u_x35_
-RHS c_u_x36_
-RHS c_u_x37_
-RHS c_u_x38_
-RHS r_l_x39_
-RHS r_u_x39_
-x5 c_l_x26_
-x13 c_e_x24_
-x14 c_e_x24_
-x15 c_e_x24_
-x16 c_e_x24_
-x3 c_e_x24_
-x14 c_e_x25_
-x15 c_e_x25_
-x16 c_e_x25_
-x4 c_e_x25_
-x14 c_u_x33_
-x17 c_u_x33_
-x15 c_u_x34_
-x18 c_u_x34_
-x16 c_u_x35_
-x19 c_u_x35_
-x13 c_u_x36_
-x17 c_u_x36_
-x14 c_u_x37_
-x18 c_u_x37_
-x15 c_u_x38_
-x19 c_u_x38_
-x2 x20
-x4 x20
-x5 x20
-ONE_VAR_CONSTANT x20
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_baseline/scenario_files/piecewise.sto.struct.Scenario2 b/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_baseline/scenario_files/piecewise.sto.struct.Scenario2
deleted file mode 100644
index d4306d642fc..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_baseline/scenario_files/piecewise.sto.struct.Scenario2
+++ /dev/null
@@ -1,36 +0,0 @@
-RHS c_e_x24_
-RHS c_e_x25_
-RHS c_u_x33_
-RHS c_u_x34_
-RHS c_u_x35_
-RHS c_u_x36_
-RHS c_u_x37_
-RHS c_u_x38_
-RHS r_l_x39_
-RHS r_u_x39_
-x5 c_l_x26_
-x13 c_e_x24_
-x14 c_e_x24_
-x15 c_e_x24_
-x16 c_e_x24_
-x3 c_e_x24_
-x14 c_e_x25_
-x15 c_e_x25_
-x16 c_e_x25_
-x4 c_e_x25_
-x14 c_u_x33_
-x17 c_u_x33_
-x15 c_u_x34_
-x18 c_u_x34_
-x16 c_u_x35_
-x19 c_u_x35_
-x13 c_u_x36_
-x17 c_u_x36_
-x14 c_u_x37_
-x18 c_u_x37_
-x15 c_u_x38_
-x19 c_u_x38_
-x2 x20
-x4 x20
-x5 x20
-ONE_VAR_CONSTANT x20
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_baseline/scenario_files/piecewise.sto.struct.Scenario3 b/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_baseline/scenario_files/piecewise.sto.struct.Scenario3
deleted file mode 100644
index d4306d642fc..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_baseline/scenario_files/piecewise.sto.struct.Scenario3
+++ /dev/null
@@ -1,36 +0,0 @@
-RHS c_e_x24_
-RHS c_e_x25_
-RHS c_u_x33_
-RHS c_u_x34_
-RHS c_u_x35_
-RHS c_u_x36_
-RHS c_u_x37_
-RHS c_u_x38_
-RHS r_l_x39_
-RHS r_u_x39_
-x5 c_l_x26_
-x13 c_e_x24_
-x14 c_e_x24_
-x15 c_e_x24_
-x16 c_e_x24_
-x3 c_e_x24_
-x14 c_e_x25_
-x15 c_e_x25_
-x16 c_e_x25_
-x4 c_e_x25_
-x14 c_u_x33_
-x17 c_u_x33_
-x15 c_u_x34_
-x18 c_u_x34_
-x16 c_u_x35_
-x19 c_u_x35_
-x13 c_u_x36_
-x17 c_u_x36_
-x14 c_u_x37_
-x18 c_u_x37_
-x15 c_u_x38_
-x19 c_u_x38_
-x2 x20
-x4 x20
-x5 x20
-ONE_VAR_CONSTANT x20
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_baseline/scenario_files/piecewise.tim.Scenario1 b/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_baseline/scenario_files/piecewise.tim.Scenario1
deleted file mode 100644
index c2b95da7e10..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_baseline/scenario_files/piecewise.tim.Scenario1
+++ /dev/null
@@ -1,5 +0,0 @@
-TIME piecewise
-PERIODS IMPLICIT
- x1 x20 TIME1
- x10 c_e_x22_ TIME2
-ENDATA
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_baseline/scenario_files/piecewise.tim.Scenario2 b/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_baseline/scenario_files/piecewise.tim.Scenario2
deleted file mode 100644
index c2b95da7e10..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_baseline/scenario_files/piecewise.tim.Scenario2
+++ /dev/null
@@ -1,5 +0,0 @@
-TIME piecewise
-PERIODS IMPLICIT
- x1 x20 TIME1
- x10 c_e_x22_ TIME2
-ENDATA
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_baseline/scenario_files/piecewise.tim.Scenario3 b/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_baseline/scenario_files/piecewise.tim.Scenario3
deleted file mode 100644
index c2b95da7e10..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_baseline/scenario_files/piecewise.tim.Scenario3
+++ /dev/null
@@ -1,5 +0,0 @@
-TIME piecewise
-PERIODS IMPLICIT
- x1 x20 TIME1
- x10 c_e_x22_ TIME2
-ENDATA
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_ignore_derived_baseline/piecewise.col b/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_ignore_derived_baseline/piecewise.col
deleted file mode 100644
index 6e745ad57a7..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_ignore_derived_baseline/piecewise.col
+++ /dev/null
@@ -1,20 +0,0 @@
-x1
-x10
-x11
-x12
-x2
-x6
-x7
-x8
-x9
-x13
-x14
-x15
-x16
-x17
-x18
-x19
-x3
-x4
-x5
-ONE_VAR_CONSTANT
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_ignore_derived_baseline/piecewise.cor b/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_ignore_derived_baseline/piecewise.cor
deleted file mode 100644
index c14fdd3fc25..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_ignore_derived_baseline/piecewise.cor
+++ /dev/null
@@ -1,128 +0,0 @@
-* Source: Pyomo MPS Writer
-* Format: Free MPS
-*
-NAME Scenario1
-OBJSENSE
- MIN
-ROWS
- N x20
- E c_e_x21_
- E c_e_x22_
- G c_l_x23_
- L c_u_x24_
- L c_u_x25_
- L c_u_x26_
- L c_u_x27_
- L c_u_x28_
- L c_u_x29_
- E c_e_x30_
- E c_e_x31_
- G c_l_x32_
- L c_u_x33_
- L c_u_x34_
- L c_u_x35_
- L c_u_x36_
- L c_u_x37_
- L c_u_x38_
- G r_l_x39_
- L r_u_x39_
- E c_e_ONE_VAR_CONSTANT
-COLUMNS
- x1 c_e_x21_ 1
- x1 c_l_x23_ 1
- x1 c_l_x32_ 1
- x10 c_u_x24_ -1
- x10 c_u_x27_ 1
- x11 c_u_x25_ -1
- x11 c_u_x28_ 1
- x12 c_u_x26_ -1
- x12 c_u_x29_ 1
- x2 x20 1
- x2 c_e_x22_ 1
- x6 c_e_x21_ -2
- x6 c_u_x27_ -1
- x7 c_e_x21_ -3
- x7 c_e_x22_ 1
- x7 c_u_x24_ 1
- x7 c_u_x28_ -1
- x8 c_e_x21_ -2
- x8 c_e_x22_ -1
- x8 c_u_x25_ 1
- x8 c_u_x29_ -1
- x9 c_e_x21_ -3
- x9 c_u_x26_ 1
- x13 c_e_x30_ -5
- x13 c_u_x36_ -1
- x14 c_e_x30_ -5
- x14 c_e_x31_ 1
- x14 c_u_x33_ 1
- x14 c_u_x37_ -1
- x15 c_e_x30_ -5
- x15 c_e_x31_ -3
- x15 c_u_x34_ 1
- x15 c_u_x38_ -1
- x16 c_e_x30_ -5
- x16 c_e_x31_ 1
- x16 c_u_x35_ 1
- x17 c_u_x33_ -1
- x17 c_u_x36_ 1
- x18 c_u_x34_ -1
- x18 c_u_x37_ 1
- x19 c_u_x35_ -1
- x19 c_u_x38_ 1
- x3 c_e_x30_ 1
- x4 x20 -1
- x4 c_e_x31_ 1
- x5 x20 1
- x5 c_l_x32_ 0
- x5 r_l_x39_ 1
- x5 r_u_x39_ 1
- ONE_VAR_CONSTANT x20 0
- ONE_VAR_CONSTANT c_e_ONE_VAR_CONSTANT 1
-RHS
- RHS c_e_x21_ 0
- RHS c_e_x22_ 10
- RHS c_l_x23_ 0
- RHS c_u_x24_ 0
- RHS c_u_x25_ 0
- RHS c_u_x26_ 0
- RHS c_u_x27_ 0
- RHS c_u_x28_ 0
- RHS c_u_x29_ 0
- RHS c_e_x30_ -10
- RHS c_e_x31_ 0
- RHS c_l_x32_ -100
- RHS c_u_x33_ 0
- RHS c_u_x34_ 0
- RHS c_u_x35_ 0
- RHS c_u_x36_ 0
- RHS c_u_x37_ 0
- RHS c_u_x38_ 0
- RHS r_l_x39_ 0
- RHS r_u_x39_ 0
- RHS c_e_ONE_VAR_CONSTANT 1
-BOUNDS
- LO BOUND x1 0
- UP BOUND x1 10
- BV BOUND x10
- BV BOUND x11
- BV BOUND x12
- FR BOUND x2
- MI BOUND x6
- UP BOUND x6 1
- FR BOUND x7
- FR BOUND x8
- LO BOUND x9 0
- MI BOUND x13
- UP BOUND x13 1
- FR BOUND x14
- FR BOUND x15
- LO BOUND x16 0
- BV BOUND x17
- BV BOUND x18
- BV BOUND x19
- LO BOUND x3 -10
- UP BOUND x3 10
- FR BOUND x4
- FR BOUND x5
-ENDATA
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_ignore_derived_baseline/piecewise.cor.symbols b/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_ignore_derived_baseline/piecewise.cor.symbols
deleted file mode 100644
index e9ae01d4c9f..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_ignore_derived_baseline/piecewise.cor.symbols
+++ /dev/null
@@ -1,9 +0,0 @@
-x2 fx
-x10 p_first_stage.INC_bin_y:#1
-x11 p_first_stage.INC_bin_y:#2
-x12 p_first_stage.INC_bin_y:#3
-x6 p_first_stage.INC_delta:#1
-x7 p_first_stage.INC_delta:#2
-x8 p_first_stage.INC_delta:#3
-x9 p_first_stage.INC_delta:#4
-x1 x
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_ignore_derived_baseline/piecewise.mps.det b/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_ignore_derived_baseline/piecewise.mps.det
deleted file mode 100644
index c2d9ce7270e..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_ignore_derived_baseline/piecewise.mps.det
+++ /dev/null
@@ -1,128 +0,0 @@
-* Source: Pyomo MPS Writer
-* Format: Free MPS
-*
-NAME ZeroStochasticData
-OBJSENSE
- MIN
-ROWS
- N x20
- E c_e_x21_
- E c_e_x22_
- G c_l_x23_
- L c_u_x24_
- L c_u_x25_
- L c_u_x26_
- L c_u_x27_
- L c_u_x28_
- L c_u_x29_
- E c_e_x30_
- E c_e_x31_
- G c_l_x32_
- L c_u_x33_
- L c_u_x34_
- L c_u_x35_
- L c_u_x36_
- L c_u_x37_
- L c_u_x38_
- G r_l_x39_
- L r_u_x39_
- E c_e_ONE_VAR_CONSTANT
-COLUMNS
- x1 c_e_x21_ 1
- x1 c_l_x23_ 1
- x1 c_l_x32_ 1
- x10 c_u_x24_ -1
- x10 c_u_x27_ 1
- x11 c_u_x25_ -1
- x11 c_u_x28_ 1
- x12 c_u_x26_ -1
- x12 c_u_x29_ 1
- x2 x20 -9876543210
- x2 c_e_x22_ 1
- x6 c_e_x21_ -2
- x6 c_u_x27_ -1
- x7 c_e_x21_ -3
- x7 c_e_x22_ 1
- x7 c_u_x24_ 1
- x7 c_u_x28_ -1
- x8 c_e_x21_ -2
- x8 c_e_x22_ -1
- x8 c_u_x25_ 1
- x8 c_u_x29_ -1
- x9 c_e_x21_ -3
- x9 c_u_x26_ 1
- x13 c_e_x30_ -9876543210
- x13 c_u_x36_ -9876543210
- x14 c_e_x30_ -9876543210
- x14 c_e_x31_ -9876543210
- x14 c_u_x33_ -9876543210
- x14 c_u_x37_ -9876543210
- x15 c_e_x30_ -9876543210
- x15 c_e_x31_ -9876543210
- x15 c_u_x34_ -9876543210
- x15 c_u_x38_ -9876543210
- x16 c_e_x30_ -9876543210
- x16 c_e_x31_ -9876543210
- x16 c_u_x35_ -9876543210
- x17 c_u_x33_ -9876543210
- x17 c_u_x36_ -9876543210
- x18 c_u_x34_ -9876543210
- x18 c_u_x37_ -9876543210
- x19 c_u_x35_ -9876543210
- x19 c_u_x38_ -9876543210
- x3 c_e_x30_ -9876543210
- x4 x20 -9876543210
- x4 c_e_x31_ -9876543210
- x5 x20 -9876543210
- x5 c_l_x32_ -9876543210
- x5 r_l_x39_ 1
- x5 r_u_x39_ 1
- ONE_VAR_CONSTANT x20 0
- ONE_VAR_CONSTANT c_e_ONE_VAR_CONSTANT 1
-RHS
- RHS c_e_x21_ 0
- RHS c_e_x22_ 10
- RHS c_l_x23_ 0
- RHS c_u_x24_ 0
- RHS c_u_x25_ 0
- RHS c_u_x26_ 0
- RHS c_u_x27_ 0
- RHS c_u_x28_ 0
- RHS c_u_x29_ 0
- RHS c_e_x30_ -9876543210
- RHS c_e_x31_ -9876543210
- RHS c_l_x32_ -100
- RHS c_u_x33_ -9876543210
- RHS c_u_x34_ -9876543210
- RHS c_u_x35_ -9876543210
- RHS c_u_x36_ -9876543210
- RHS c_u_x37_ -9876543210
- RHS c_u_x38_ -9876543210
- RHS r_l_x39_ -9876543210
- RHS r_u_x39_ -9876543210
- RHS c_e_ONE_VAR_CONSTANT 1
-BOUNDS
- LO BOUND x1 0
- UP BOUND x1 10
- BV BOUND x10
- BV BOUND x11
- BV BOUND x12
- FR BOUND x2
- MI BOUND x6
- UP BOUND x6 1
- FR BOUND x7
- FR BOUND x8
- LO BOUND x9 0
- MI BOUND x13
- UP BOUND x13 1
- FR BOUND x14
- FR BOUND x15
- LO BOUND x16 0
- BV BOUND x17
- BV BOUND x18
- BV BOUND x19
- LO BOUND x3 -10
- UP BOUND x3 10
- FR BOUND x4
- FR BOUND x5
-ENDATA
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_ignore_derived_baseline/piecewise.row b/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_ignore_derived_baseline/piecewise.row
deleted file mode 100644
index 5140335c5b4..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_ignore_derived_baseline/piecewise.row
+++ /dev/null
@@ -1,22 +0,0 @@
-x20
-c_e_x21_
-c_e_x22_
-c_l_x23_
-c_u_x24_
-c_u_x25_
-c_u_x26_
-c_u_x27_
-c_u_x28_
-c_u_x29_
-c_e_x30_
-c_e_x31_
-c_l_x32_
-c_u_x33_
-c_u_x34_
-c_u_x35_
-c_u_x36_
-c_u_x37_
-c_u_x38_
-r_l_x39_
-r_u_x39_
-c_e_ONE_VAR_CONSTANT
\ No newline at end of file
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_ignore_derived_baseline/piecewise.sto b/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_ignore_derived_baseline/piecewise.sto
deleted file mode 100644
index e090297e91e..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_ignore_derived_baseline/piecewise.sto
+++ /dev/null
@@ -1,114 +0,0 @@
-STOCH piecewise
-BLOCKS DISCRETE REPLACE
- BL BLOCK1 PERIOD2 0.33333333329999998
- RHS c_e_x30_ -10
- RHS c_e_x31_ 0
- RHS c_u_x33_ 0
- RHS c_u_x34_ 0
- RHS c_u_x35_ 0
- RHS c_u_x36_ 0
- RHS c_u_x37_ 0
- RHS c_u_x38_ 0
- RHS r_l_x39_ 0
- RHS r_u_x39_ 0
- x5 c_l_x32_ 0
- x13 c_e_x30_ -5
- x14 c_e_x30_ -5
- x15 c_e_x30_ -5
- x16 c_e_x30_ -5
- x3 c_e_x30_ 1
- x14 c_e_x31_ 1
- x15 c_e_x31_ -3
- x16 c_e_x31_ 1
- x4 c_e_x31_ 1
- x14 c_u_x33_ 1
- x17 c_u_x33_ -1
- x15 c_u_x34_ 1
- x18 c_u_x34_ -1
- x16 c_u_x35_ 1
- x19 c_u_x35_ -1
- x13 c_u_x36_ -1
- x17 c_u_x36_ 1
- x14 c_u_x37_ -1
- x18 c_u_x37_ 1
- x15 c_u_x38_ -1
- x19 c_u_x38_ 1
- x2 x20 1
- x4 x20 -1
- x5 x20 1
- ONE_VAR_CONSTANT x20 0
- BL BLOCK1 PERIOD2 0.33333333329999998
- RHS c_e_x30_ -10
- RHS c_e_x31_ 0
- RHS c_u_x33_ 0
- RHS c_u_x34_ 0
- RHS c_u_x35_ 0
- RHS c_u_x36_ 0
- RHS c_u_x37_ 0
- RHS c_u_x38_ 0
- RHS r_l_x39_ -1
- RHS r_u_x39_ 0
- x5 c_l_x32_ 1
- x13 c_e_x30_ -5
- x14 c_e_x30_ -5
- x15 c_e_x30_ -5
- x16 c_e_x30_ -5
- x3 c_e_x30_ 1
- x14 c_e_x31_ 1
- x15 c_e_x31_ -4
- x16 c_e_x31_ 2
- x4 c_e_x31_ 1
- x14 c_u_x33_ 1
- x17 c_u_x33_ -1
- x15 c_u_x34_ 1
- x18 c_u_x34_ -1
- x16 c_u_x35_ 1
- x19 c_u_x35_ -1
- x13 c_u_x36_ -1
- x17 c_u_x36_ 1
- x14 c_u_x37_ -1
- x18 c_u_x37_ 1
- x15 c_u_x38_ -1
- x19 c_u_x38_ 1
- x2 x20 1
- x4 x20 -1
- x5 x20 1
- ONE_VAR_CONSTANT x20 -1
- BL BLOCK1 PERIOD2 0.33333333329999998
- RHS c_e_x30_ -10
- RHS c_e_x31_ 0
- RHS c_u_x33_ 0
- RHS c_u_x34_ 0
- RHS c_u_x35_ 0
- RHS c_u_x36_ 0
- RHS c_u_x37_ 0
- RHS c_u_x38_ 0
- RHS r_l_x39_ -2
- RHS r_u_x39_ 0
- x5 c_l_x32_ 2
- x13 c_e_x30_ -5
- x14 c_e_x30_ -5
- x15 c_e_x30_ -5
- x16 c_e_x30_ -5
- x3 c_e_x30_ 1
- x14 c_e_x31_ 1
- x15 c_e_x31_ -5
- x16 c_e_x31_ 3
- x4 c_e_x31_ 1
- x14 c_u_x33_ 1
- x17 c_u_x33_ -1
- x15 c_u_x34_ 1
- x18 c_u_x34_ -1
- x16 c_u_x35_ 1
- x19 c_u_x35_ -1
- x13 c_u_x36_ -1
- x17 c_u_x36_ 1
- x14 c_u_x37_ -1
- x18 c_u_x37_ 1
- x15 c_u_x38_ -1
- x19 c_u_x38_ 1
- x2 x20 1
- x4 x20 -1
- x5 x20 1
- ONE_VAR_CONSTANT x20 -2
-ENDATA
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_ignore_derived_baseline/piecewise.sto.struct b/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_ignore_derived_baseline/piecewise.sto.struct
deleted file mode 100644
index 868098c0d16..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_ignore_derived_baseline/piecewise.sto.struct
+++ /dev/null
@@ -1,36 +0,0 @@
-RHS c_e_x30_
-RHS c_e_x31_
-RHS c_u_x33_
-RHS c_u_x34_
-RHS c_u_x35_
-RHS c_u_x36_
-RHS c_u_x37_
-RHS c_u_x38_
-RHS r_l_x39_
-RHS r_u_x39_
-x5 c_l_x32_
-x13 c_e_x30_
-x14 c_e_x30_
-x15 c_e_x30_
-x16 c_e_x30_
-x3 c_e_x30_
-x14 c_e_x31_
-x15 c_e_x31_
-x16 c_e_x31_
-x4 c_e_x31_
-x14 c_u_x33_
-x17 c_u_x33_
-x15 c_u_x34_
-x18 c_u_x34_
-x16 c_u_x35_
-x19 c_u_x35_
-x13 c_u_x36_
-x17 c_u_x36_
-x14 c_u_x37_
-x18 c_u_x37_
-x15 c_u_x38_
-x19 c_u_x38_
-x2 x20
-x4 x20
-x5 x20
-ONE_VAR_CONSTANT x20
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_ignore_derived_baseline/piecewise.tim b/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_ignore_derived_baseline/piecewise.tim
deleted file mode 100644
index 07db755e357..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_ignore_derived_baseline/piecewise.tim
+++ /dev/null
@@ -1,5 +0,0 @@
-TIME piecewise
-PERIODS IMPLICIT
- x1 x20 TIME1
- x13 c_e_x30_ TIME2
-ENDATA
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_ignore_derived_baseline/scenario_files/piecewise.col.Scenario1 b/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_ignore_derived_baseline/scenario_files/piecewise.col.Scenario1
deleted file mode 100644
index 6e745ad57a7..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_ignore_derived_baseline/scenario_files/piecewise.col.Scenario1
+++ /dev/null
@@ -1,20 +0,0 @@
-x1
-x10
-x11
-x12
-x2
-x6
-x7
-x8
-x9
-x13
-x14
-x15
-x16
-x17
-x18
-x19
-x3
-x4
-x5
-ONE_VAR_CONSTANT
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_ignore_derived_baseline/scenario_files/piecewise.col.Scenario2 b/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_ignore_derived_baseline/scenario_files/piecewise.col.Scenario2
deleted file mode 100644
index 6e745ad57a7..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_ignore_derived_baseline/scenario_files/piecewise.col.Scenario2
+++ /dev/null
@@ -1,20 +0,0 @@
-x1
-x10
-x11
-x12
-x2
-x6
-x7
-x8
-x9
-x13
-x14
-x15
-x16
-x17
-x18
-x19
-x3
-x4
-x5
-ONE_VAR_CONSTANT
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_ignore_derived_baseline/scenario_files/piecewise.col.Scenario3 b/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_ignore_derived_baseline/scenario_files/piecewise.col.Scenario3
deleted file mode 100644
index 6e745ad57a7..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_ignore_derived_baseline/scenario_files/piecewise.col.Scenario3
+++ /dev/null
@@ -1,20 +0,0 @@
-x1
-x10
-x11
-x12
-x2
-x6
-x7
-x8
-x9
-x13
-x14
-x15
-x16
-x17
-x18
-x19
-x3
-x4
-x5
-ONE_VAR_CONSTANT
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_ignore_derived_baseline/scenario_files/piecewise.mps.Scenario1 b/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_ignore_derived_baseline/scenario_files/piecewise.mps.Scenario1
deleted file mode 100644
index c14fdd3fc25..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_ignore_derived_baseline/scenario_files/piecewise.mps.Scenario1
+++ /dev/null
@@ -1,128 +0,0 @@
-* Source: Pyomo MPS Writer
-* Format: Free MPS
-*
-NAME Scenario1
-OBJSENSE
- MIN
-ROWS
- N x20
- E c_e_x21_
- E c_e_x22_
- G c_l_x23_
- L c_u_x24_
- L c_u_x25_
- L c_u_x26_
- L c_u_x27_
- L c_u_x28_
- L c_u_x29_
- E c_e_x30_
- E c_e_x31_
- G c_l_x32_
- L c_u_x33_
- L c_u_x34_
- L c_u_x35_
- L c_u_x36_
- L c_u_x37_
- L c_u_x38_
- G r_l_x39_
- L r_u_x39_
- E c_e_ONE_VAR_CONSTANT
-COLUMNS
- x1 c_e_x21_ 1
- x1 c_l_x23_ 1
- x1 c_l_x32_ 1
- x10 c_u_x24_ -1
- x10 c_u_x27_ 1
- x11 c_u_x25_ -1
- x11 c_u_x28_ 1
- x12 c_u_x26_ -1
- x12 c_u_x29_ 1
- x2 x20 1
- x2 c_e_x22_ 1
- x6 c_e_x21_ -2
- x6 c_u_x27_ -1
- x7 c_e_x21_ -3
- x7 c_e_x22_ 1
- x7 c_u_x24_ 1
- x7 c_u_x28_ -1
- x8 c_e_x21_ -2
- x8 c_e_x22_ -1
- x8 c_u_x25_ 1
- x8 c_u_x29_ -1
- x9 c_e_x21_ -3
- x9 c_u_x26_ 1
- x13 c_e_x30_ -5
- x13 c_u_x36_ -1
- x14 c_e_x30_ -5
- x14 c_e_x31_ 1
- x14 c_u_x33_ 1
- x14 c_u_x37_ -1
- x15 c_e_x30_ -5
- x15 c_e_x31_ -3
- x15 c_u_x34_ 1
- x15 c_u_x38_ -1
- x16 c_e_x30_ -5
- x16 c_e_x31_ 1
- x16 c_u_x35_ 1
- x17 c_u_x33_ -1
- x17 c_u_x36_ 1
- x18 c_u_x34_ -1
- x18 c_u_x37_ 1
- x19 c_u_x35_ -1
- x19 c_u_x38_ 1
- x3 c_e_x30_ 1
- x4 x20 -1
- x4 c_e_x31_ 1
- x5 x20 1
- x5 c_l_x32_ 0
- x5 r_l_x39_ 1
- x5 r_u_x39_ 1
- ONE_VAR_CONSTANT x20 0
- ONE_VAR_CONSTANT c_e_ONE_VAR_CONSTANT 1
-RHS
- RHS c_e_x21_ 0
- RHS c_e_x22_ 10
- RHS c_l_x23_ 0
- RHS c_u_x24_ 0
- RHS c_u_x25_ 0
- RHS c_u_x26_ 0
- RHS c_u_x27_ 0
- RHS c_u_x28_ 0
- RHS c_u_x29_ 0
- RHS c_e_x30_ -10
- RHS c_e_x31_ 0
- RHS c_l_x32_ -100
- RHS c_u_x33_ 0
- RHS c_u_x34_ 0
- RHS c_u_x35_ 0
- RHS c_u_x36_ 0
- RHS c_u_x37_ 0
- RHS c_u_x38_ 0
- RHS r_l_x39_ 0
- RHS r_u_x39_ 0
- RHS c_e_ONE_VAR_CONSTANT 1
-BOUNDS
- LO BOUND x1 0
- UP BOUND x1 10
- BV BOUND x10
- BV BOUND x11
- BV BOUND x12
- FR BOUND x2
- MI BOUND x6
- UP BOUND x6 1
- FR BOUND x7
- FR BOUND x8
- LO BOUND x9 0
- MI BOUND x13
- UP BOUND x13 1
- FR BOUND x14
- FR BOUND x15
- LO BOUND x16 0
- BV BOUND x17
- BV BOUND x18
- BV BOUND x19
- LO BOUND x3 -10
- UP BOUND x3 10
- FR BOUND x4
- FR BOUND x5
-ENDATA
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_ignore_derived_baseline/scenario_files/piecewise.mps.Scenario2 b/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_ignore_derived_baseline/scenario_files/piecewise.mps.Scenario2
deleted file mode 100644
index f5cf6a662b4..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_ignore_derived_baseline/scenario_files/piecewise.mps.Scenario2
+++ /dev/null
@@ -1,128 +0,0 @@
-* Source: Pyomo MPS Writer
-* Format: Free MPS
-*
-NAME Scenario2
-OBJSENSE
- MIN
-ROWS
- N x20
- E c_e_x21_
- E c_e_x22_
- G c_l_x23_
- L c_u_x24_
- L c_u_x25_
- L c_u_x26_
- L c_u_x27_
- L c_u_x28_
- L c_u_x29_
- E c_e_x30_
- E c_e_x31_
- G c_l_x32_
- L c_u_x33_
- L c_u_x34_
- L c_u_x35_
- L c_u_x36_
- L c_u_x37_
- L c_u_x38_
- G r_l_x39_
- L r_u_x39_
- E c_e_ONE_VAR_CONSTANT
-COLUMNS
- x1 c_e_x21_ 1
- x1 c_l_x23_ 1
- x1 c_l_x32_ 1
- x10 c_u_x24_ -1
- x10 c_u_x27_ 1
- x11 c_u_x25_ -1
- x11 c_u_x28_ 1
- x12 c_u_x26_ -1
- x12 c_u_x29_ 1
- x2 x20 1
- x2 c_e_x22_ 1
- x6 c_e_x21_ -2
- x6 c_u_x27_ -1
- x7 c_e_x21_ -3
- x7 c_e_x22_ 1
- x7 c_u_x24_ 1
- x7 c_u_x28_ -1
- x8 c_e_x21_ -2
- x8 c_e_x22_ -1
- x8 c_u_x25_ 1
- x8 c_u_x29_ -1
- x9 c_e_x21_ -3
- x9 c_u_x26_ 1
- x13 c_e_x30_ -5
- x13 c_u_x36_ -1
- x14 c_e_x30_ -5
- x14 c_e_x31_ 1
- x14 c_u_x33_ 1
- x14 c_u_x37_ -1
- x15 c_e_x30_ -5
- x15 c_e_x31_ -4
- x15 c_u_x34_ 1
- x15 c_u_x38_ -1
- x16 c_e_x30_ -5
- x16 c_e_x31_ 2
- x16 c_u_x35_ 1
- x17 c_u_x33_ -1
- x17 c_u_x36_ 1
- x18 c_u_x34_ -1
- x18 c_u_x37_ 1
- x19 c_u_x35_ -1
- x19 c_u_x38_ 1
- x3 c_e_x30_ 1
- x4 x20 -1
- x4 c_e_x31_ 1
- x5 x20 1
- x5 c_l_x32_ 1
- x5 r_l_x39_ 1
- x5 r_u_x39_ 1
- ONE_VAR_CONSTANT x20 -1
- ONE_VAR_CONSTANT c_e_ONE_VAR_CONSTANT 1
-RHS
- RHS c_e_x21_ 0
- RHS c_e_x22_ 10
- RHS c_l_x23_ 0
- RHS c_u_x24_ 0
- RHS c_u_x25_ 0
- RHS c_u_x26_ 0
- RHS c_u_x27_ 0
- RHS c_u_x28_ 0
- RHS c_u_x29_ 0
- RHS c_e_x30_ -10
- RHS c_e_x31_ 0
- RHS c_l_x32_ -100
- RHS c_u_x33_ 0
- RHS c_u_x34_ 0
- RHS c_u_x35_ 0
- RHS c_u_x36_ 0
- RHS c_u_x37_ 0
- RHS c_u_x38_ 0
- RHS r_l_x39_ -1
- RHS r_u_x39_ 0
- RHS c_e_ONE_VAR_CONSTANT 1
-BOUNDS
- LO BOUND x1 0
- UP BOUND x1 10
- BV BOUND x10
- BV BOUND x11
- BV BOUND x12
- FR BOUND x2
- MI BOUND x6
- UP BOUND x6 1
- FR BOUND x7
- FR BOUND x8
- LO BOUND x9 0
- MI BOUND x13
- UP BOUND x13 1
- FR BOUND x14
- FR BOUND x15
- LO BOUND x16 0
- BV BOUND x17
- BV BOUND x18
- BV BOUND x19
- LO BOUND x3 -10
- UP BOUND x3 10
- FR BOUND x4
- FR BOUND x5
-ENDATA
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_ignore_derived_baseline/scenario_files/piecewise.mps.Scenario3 b/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_ignore_derived_baseline/scenario_files/piecewise.mps.Scenario3
deleted file mode 100644
index 32a9cd4df5e..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_ignore_derived_baseline/scenario_files/piecewise.mps.Scenario3
+++ /dev/null
@@ -1,128 +0,0 @@
-* Source: Pyomo MPS Writer
-* Format: Free MPS
-*
-NAME Scenario3
-OBJSENSE
- MIN
-ROWS
- N x20
- E c_e_x21_
- E c_e_x22_
- G c_l_x23_
- L c_u_x24_
- L c_u_x25_
- L c_u_x26_
- L c_u_x27_
- L c_u_x28_
- L c_u_x29_
- E c_e_x30_
- E c_e_x31_
- G c_l_x32_
- L c_u_x33_
- L c_u_x34_
- L c_u_x35_
- L c_u_x36_
- L c_u_x37_
- L c_u_x38_
- G r_l_x39_
- L r_u_x39_
- E c_e_ONE_VAR_CONSTANT
-COLUMNS
- x1 c_e_x21_ 1
- x1 c_l_x23_ 1
- x1 c_l_x32_ 1
- x10 c_u_x24_ -1
- x10 c_u_x27_ 1
- x11 c_u_x25_ -1
- x11 c_u_x28_ 1
- x12 c_u_x26_ -1
- x12 c_u_x29_ 1
- x2 x20 1
- x2 c_e_x22_ 1
- x6 c_e_x21_ -2
- x6 c_u_x27_ -1
- x7 c_e_x21_ -3
- x7 c_e_x22_ 1
- x7 c_u_x24_ 1
- x7 c_u_x28_ -1
- x8 c_e_x21_ -2
- x8 c_e_x22_ -1
- x8 c_u_x25_ 1
- x8 c_u_x29_ -1
- x9 c_e_x21_ -3
- x9 c_u_x26_ 1
- x13 c_e_x30_ -5
- x13 c_u_x36_ -1
- x14 c_e_x30_ -5
- x14 c_e_x31_ 1
- x14 c_u_x33_ 1
- x14 c_u_x37_ -1
- x15 c_e_x30_ -5
- x15 c_e_x31_ -5
- x15 c_u_x34_ 1
- x15 c_u_x38_ -1
- x16 c_e_x30_ -5
- x16 c_e_x31_ 3
- x16 c_u_x35_ 1
- x17 c_u_x33_ -1
- x17 c_u_x36_ 1
- x18 c_u_x34_ -1
- x18 c_u_x37_ 1
- x19 c_u_x35_ -1
- x19 c_u_x38_ 1
- x3 c_e_x30_ 1
- x4 x20 -1
- x4 c_e_x31_ 1
- x5 x20 1
- x5 c_l_x32_ 2
- x5 r_l_x39_ 1
- x5 r_u_x39_ 1
- ONE_VAR_CONSTANT x20 -2
- ONE_VAR_CONSTANT c_e_ONE_VAR_CONSTANT 1
-RHS
- RHS c_e_x21_ 0
- RHS c_e_x22_ 10
- RHS c_l_x23_ 0
- RHS c_u_x24_ 0
- RHS c_u_x25_ 0
- RHS c_u_x26_ 0
- RHS c_u_x27_ 0
- RHS c_u_x28_ 0
- RHS c_u_x29_ 0
- RHS c_e_x30_ -10
- RHS c_e_x31_ 0
- RHS c_l_x32_ -100
- RHS c_u_x33_ 0
- RHS c_u_x34_ 0
- RHS c_u_x35_ 0
- RHS c_u_x36_ 0
- RHS c_u_x37_ 0
- RHS c_u_x38_ 0
- RHS r_l_x39_ -2
- RHS r_u_x39_ 0
- RHS c_e_ONE_VAR_CONSTANT 1
-BOUNDS
- LO BOUND x1 0
- UP BOUND x1 10
- BV BOUND x10
- BV BOUND x11
- BV BOUND x12
- FR BOUND x2
- MI BOUND x6
- UP BOUND x6 1
- FR BOUND x7
- FR BOUND x8
- LO BOUND x9 0
- MI BOUND x13
- UP BOUND x13 1
- FR BOUND x14
- FR BOUND x15
- LO BOUND x16 0
- BV BOUND x17
- BV BOUND x18
- BV BOUND x19
- LO BOUND x3 -10
- UP BOUND x3 10
- FR BOUND x4
- FR BOUND x5
-ENDATA
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_ignore_derived_baseline/scenario_files/piecewise.mps.det.Scenario1 b/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_ignore_derived_baseline/scenario_files/piecewise.mps.det.Scenario1
deleted file mode 100644
index c2d9ce7270e..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_ignore_derived_baseline/scenario_files/piecewise.mps.det.Scenario1
+++ /dev/null
@@ -1,128 +0,0 @@
-* Source: Pyomo MPS Writer
-* Format: Free MPS
-*
-NAME ZeroStochasticData
-OBJSENSE
- MIN
-ROWS
- N x20
- E c_e_x21_
- E c_e_x22_
- G c_l_x23_
- L c_u_x24_
- L c_u_x25_
- L c_u_x26_
- L c_u_x27_
- L c_u_x28_
- L c_u_x29_
- E c_e_x30_
- E c_e_x31_
- G c_l_x32_
- L c_u_x33_
- L c_u_x34_
- L c_u_x35_
- L c_u_x36_
- L c_u_x37_
- L c_u_x38_
- G r_l_x39_
- L r_u_x39_
- E c_e_ONE_VAR_CONSTANT
-COLUMNS
- x1 c_e_x21_ 1
- x1 c_l_x23_ 1
- x1 c_l_x32_ 1
- x10 c_u_x24_ -1
- x10 c_u_x27_ 1
- x11 c_u_x25_ -1
- x11 c_u_x28_ 1
- x12 c_u_x26_ -1
- x12 c_u_x29_ 1
- x2 x20 -9876543210
- x2 c_e_x22_ 1
- x6 c_e_x21_ -2
- x6 c_u_x27_ -1
- x7 c_e_x21_ -3
- x7 c_e_x22_ 1
- x7 c_u_x24_ 1
- x7 c_u_x28_ -1
- x8 c_e_x21_ -2
- x8 c_e_x22_ -1
- x8 c_u_x25_ 1
- x8 c_u_x29_ -1
- x9 c_e_x21_ -3
- x9 c_u_x26_ 1
- x13 c_e_x30_ -9876543210
- x13 c_u_x36_ -9876543210
- x14 c_e_x30_ -9876543210
- x14 c_e_x31_ -9876543210
- x14 c_u_x33_ -9876543210
- x14 c_u_x37_ -9876543210
- x15 c_e_x30_ -9876543210
- x15 c_e_x31_ -9876543210
- x15 c_u_x34_ -9876543210
- x15 c_u_x38_ -9876543210
- x16 c_e_x30_ -9876543210
- x16 c_e_x31_ -9876543210
- x16 c_u_x35_ -9876543210
- x17 c_u_x33_ -9876543210
- x17 c_u_x36_ -9876543210
- x18 c_u_x34_ -9876543210
- x18 c_u_x37_ -9876543210
- x19 c_u_x35_ -9876543210
- x19 c_u_x38_ -9876543210
- x3 c_e_x30_ -9876543210
- x4 x20 -9876543210
- x4 c_e_x31_ -9876543210
- x5 x20 -9876543210
- x5 c_l_x32_ -9876543210
- x5 r_l_x39_ 1
- x5 r_u_x39_ 1
- ONE_VAR_CONSTANT x20 0
- ONE_VAR_CONSTANT c_e_ONE_VAR_CONSTANT 1
-RHS
- RHS c_e_x21_ 0
- RHS c_e_x22_ 10
- RHS c_l_x23_ 0
- RHS c_u_x24_ 0
- RHS c_u_x25_ 0
- RHS c_u_x26_ 0
- RHS c_u_x27_ 0
- RHS c_u_x28_ 0
- RHS c_u_x29_ 0
- RHS c_e_x30_ -9876543210
- RHS c_e_x31_ -9876543210
- RHS c_l_x32_ -100
- RHS c_u_x33_ -9876543210
- RHS c_u_x34_ -9876543210
- RHS c_u_x35_ -9876543210
- RHS c_u_x36_ -9876543210
- RHS c_u_x37_ -9876543210
- RHS c_u_x38_ -9876543210
- RHS r_l_x39_ -9876543210
- RHS r_u_x39_ -9876543210
- RHS c_e_ONE_VAR_CONSTANT 1
-BOUNDS
- LO BOUND x1 0
- UP BOUND x1 10
- BV BOUND x10
- BV BOUND x11
- BV BOUND x12
- FR BOUND x2
- MI BOUND x6
- UP BOUND x6 1
- FR BOUND x7
- FR BOUND x8
- LO BOUND x9 0
- MI BOUND x13
- UP BOUND x13 1
- FR BOUND x14
- FR BOUND x15
- LO BOUND x16 0
- BV BOUND x17
- BV BOUND x18
- BV BOUND x19
- LO BOUND x3 -10
- UP BOUND x3 10
- FR BOUND x4
- FR BOUND x5
-ENDATA
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_ignore_derived_baseline/scenario_files/piecewise.mps.det.Scenario2 b/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_ignore_derived_baseline/scenario_files/piecewise.mps.det.Scenario2
deleted file mode 100644
index c2d9ce7270e..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_ignore_derived_baseline/scenario_files/piecewise.mps.det.Scenario2
+++ /dev/null
@@ -1,128 +0,0 @@
-* Source: Pyomo MPS Writer
-* Format: Free MPS
-*
-NAME ZeroStochasticData
-OBJSENSE
- MIN
-ROWS
- N x20
- E c_e_x21_
- E c_e_x22_
- G c_l_x23_
- L c_u_x24_
- L c_u_x25_
- L c_u_x26_
- L c_u_x27_
- L c_u_x28_
- L c_u_x29_
- E c_e_x30_
- E c_e_x31_
- G c_l_x32_
- L c_u_x33_
- L c_u_x34_
- L c_u_x35_
- L c_u_x36_
- L c_u_x37_
- L c_u_x38_
- G r_l_x39_
- L r_u_x39_
- E c_e_ONE_VAR_CONSTANT
-COLUMNS
- x1 c_e_x21_ 1
- x1 c_l_x23_ 1
- x1 c_l_x32_ 1
- x10 c_u_x24_ -1
- x10 c_u_x27_ 1
- x11 c_u_x25_ -1
- x11 c_u_x28_ 1
- x12 c_u_x26_ -1
- x12 c_u_x29_ 1
- x2 x20 -9876543210
- x2 c_e_x22_ 1
- x6 c_e_x21_ -2
- x6 c_u_x27_ -1
- x7 c_e_x21_ -3
- x7 c_e_x22_ 1
- x7 c_u_x24_ 1
- x7 c_u_x28_ -1
- x8 c_e_x21_ -2
- x8 c_e_x22_ -1
- x8 c_u_x25_ 1
- x8 c_u_x29_ -1
- x9 c_e_x21_ -3
- x9 c_u_x26_ 1
- x13 c_e_x30_ -9876543210
- x13 c_u_x36_ -9876543210
- x14 c_e_x30_ -9876543210
- x14 c_e_x31_ -9876543210
- x14 c_u_x33_ -9876543210
- x14 c_u_x37_ -9876543210
- x15 c_e_x30_ -9876543210
- x15 c_e_x31_ -9876543210
- x15 c_u_x34_ -9876543210
- x15 c_u_x38_ -9876543210
- x16 c_e_x30_ -9876543210
- x16 c_e_x31_ -9876543210
- x16 c_u_x35_ -9876543210
- x17 c_u_x33_ -9876543210
- x17 c_u_x36_ -9876543210
- x18 c_u_x34_ -9876543210
- x18 c_u_x37_ -9876543210
- x19 c_u_x35_ -9876543210
- x19 c_u_x38_ -9876543210
- x3 c_e_x30_ -9876543210
- x4 x20 -9876543210
- x4 c_e_x31_ -9876543210
- x5 x20 -9876543210
- x5 c_l_x32_ -9876543210
- x5 r_l_x39_ 1
- x5 r_u_x39_ 1
- ONE_VAR_CONSTANT x20 0
- ONE_VAR_CONSTANT c_e_ONE_VAR_CONSTANT 1
-RHS
- RHS c_e_x21_ 0
- RHS c_e_x22_ 10
- RHS c_l_x23_ 0
- RHS c_u_x24_ 0
- RHS c_u_x25_ 0
- RHS c_u_x26_ 0
- RHS c_u_x27_ 0
- RHS c_u_x28_ 0
- RHS c_u_x29_ 0
- RHS c_e_x30_ -9876543210
- RHS c_e_x31_ -9876543210
- RHS c_l_x32_ -100
- RHS c_u_x33_ -9876543210
- RHS c_u_x34_ -9876543210
- RHS c_u_x35_ -9876543210
- RHS c_u_x36_ -9876543210
- RHS c_u_x37_ -9876543210
- RHS c_u_x38_ -9876543210
- RHS r_l_x39_ -9876543210
- RHS r_u_x39_ -9876543210
- RHS c_e_ONE_VAR_CONSTANT 1
-BOUNDS
- LO BOUND x1 0
- UP BOUND x1 10
- BV BOUND x10
- BV BOUND x11
- BV BOUND x12
- FR BOUND x2
- MI BOUND x6
- UP BOUND x6 1
- FR BOUND x7
- FR BOUND x8
- LO BOUND x9 0
- MI BOUND x13
- UP BOUND x13 1
- FR BOUND x14
- FR BOUND x15
- LO BOUND x16 0
- BV BOUND x17
- BV BOUND x18
- BV BOUND x19
- LO BOUND x3 -10
- UP BOUND x3 10
- FR BOUND x4
- FR BOUND x5
-ENDATA
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_ignore_derived_baseline/scenario_files/piecewise.mps.det.Scenario3 b/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_ignore_derived_baseline/scenario_files/piecewise.mps.det.Scenario3
deleted file mode 100644
index c2d9ce7270e..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_ignore_derived_baseline/scenario_files/piecewise.mps.det.Scenario3
+++ /dev/null
@@ -1,128 +0,0 @@
-* Source: Pyomo MPS Writer
-* Format: Free MPS
-*
-NAME ZeroStochasticData
-OBJSENSE
- MIN
-ROWS
- N x20
- E c_e_x21_
- E c_e_x22_
- G c_l_x23_
- L c_u_x24_
- L c_u_x25_
- L c_u_x26_
- L c_u_x27_
- L c_u_x28_
- L c_u_x29_
- E c_e_x30_
- E c_e_x31_
- G c_l_x32_
- L c_u_x33_
- L c_u_x34_
- L c_u_x35_
- L c_u_x36_
- L c_u_x37_
- L c_u_x38_
- G r_l_x39_
- L r_u_x39_
- E c_e_ONE_VAR_CONSTANT
-COLUMNS
- x1 c_e_x21_ 1
- x1 c_l_x23_ 1
- x1 c_l_x32_ 1
- x10 c_u_x24_ -1
- x10 c_u_x27_ 1
- x11 c_u_x25_ -1
- x11 c_u_x28_ 1
- x12 c_u_x26_ -1
- x12 c_u_x29_ 1
- x2 x20 -9876543210
- x2 c_e_x22_ 1
- x6 c_e_x21_ -2
- x6 c_u_x27_ -1
- x7 c_e_x21_ -3
- x7 c_e_x22_ 1
- x7 c_u_x24_ 1
- x7 c_u_x28_ -1
- x8 c_e_x21_ -2
- x8 c_e_x22_ -1
- x8 c_u_x25_ 1
- x8 c_u_x29_ -1
- x9 c_e_x21_ -3
- x9 c_u_x26_ 1
- x13 c_e_x30_ -9876543210
- x13 c_u_x36_ -9876543210
- x14 c_e_x30_ -9876543210
- x14 c_e_x31_ -9876543210
- x14 c_u_x33_ -9876543210
- x14 c_u_x37_ -9876543210
- x15 c_e_x30_ -9876543210
- x15 c_e_x31_ -9876543210
- x15 c_u_x34_ -9876543210
- x15 c_u_x38_ -9876543210
- x16 c_e_x30_ -9876543210
- x16 c_e_x31_ -9876543210
- x16 c_u_x35_ -9876543210
- x17 c_u_x33_ -9876543210
- x17 c_u_x36_ -9876543210
- x18 c_u_x34_ -9876543210
- x18 c_u_x37_ -9876543210
- x19 c_u_x35_ -9876543210
- x19 c_u_x38_ -9876543210
- x3 c_e_x30_ -9876543210
- x4 x20 -9876543210
- x4 c_e_x31_ -9876543210
- x5 x20 -9876543210
- x5 c_l_x32_ -9876543210
- x5 r_l_x39_ 1
- x5 r_u_x39_ 1
- ONE_VAR_CONSTANT x20 0
- ONE_VAR_CONSTANT c_e_ONE_VAR_CONSTANT 1
-RHS
- RHS c_e_x21_ 0
- RHS c_e_x22_ 10
- RHS c_l_x23_ 0
- RHS c_u_x24_ 0
- RHS c_u_x25_ 0
- RHS c_u_x26_ 0
- RHS c_u_x27_ 0
- RHS c_u_x28_ 0
- RHS c_u_x29_ 0
- RHS c_e_x30_ -9876543210
- RHS c_e_x31_ -9876543210
- RHS c_l_x32_ -100
- RHS c_u_x33_ -9876543210
- RHS c_u_x34_ -9876543210
- RHS c_u_x35_ -9876543210
- RHS c_u_x36_ -9876543210
- RHS c_u_x37_ -9876543210
- RHS c_u_x38_ -9876543210
- RHS r_l_x39_ -9876543210
- RHS r_u_x39_ -9876543210
- RHS c_e_ONE_VAR_CONSTANT 1
-BOUNDS
- LO BOUND x1 0
- UP BOUND x1 10
- BV BOUND x10
- BV BOUND x11
- BV BOUND x12
- FR BOUND x2
- MI BOUND x6
- UP BOUND x6 1
- FR BOUND x7
- FR BOUND x8
- LO BOUND x9 0
- MI BOUND x13
- UP BOUND x13 1
- FR BOUND x14
- FR BOUND x15
- LO BOUND x16 0
- BV BOUND x17
- BV BOUND x18
- BV BOUND x19
- LO BOUND x3 -10
- UP BOUND x3 10
- FR BOUND x4
- FR BOUND x5
-ENDATA
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_ignore_derived_baseline/scenario_files/piecewise.mps.symbols.Scenario1 b/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_ignore_derived_baseline/scenario_files/piecewise.mps.symbols.Scenario1
deleted file mode 100644
index e9ae01d4c9f..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_ignore_derived_baseline/scenario_files/piecewise.mps.symbols.Scenario1
+++ /dev/null
@@ -1,9 +0,0 @@
-x2 fx
-x10 p_first_stage.INC_bin_y:#1
-x11 p_first_stage.INC_bin_y:#2
-x12 p_first_stage.INC_bin_y:#3
-x6 p_first_stage.INC_delta:#1
-x7 p_first_stage.INC_delta:#2
-x8 p_first_stage.INC_delta:#3
-x9 p_first_stage.INC_delta:#4
-x1 x
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_ignore_derived_baseline/scenario_files/piecewise.mps.symbols.Scenario2 b/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_ignore_derived_baseline/scenario_files/piecewise.mps.symbols.Scenario2
deleted file mode 100644
index e9ae01d4c9f..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_ignore_derived_baseline/scenario_files/piecewise.mps.symbols.Scenario2
+++ /dev/null
@@ -1,9 +0,0 @@
-x2 fx
-x10 p_first_stage.INC_bin_y:#1
-x11 p_first_stage.INC_bin_y:#2
-x12 p_first_stage.INC_bin_y:#3
-x6 p_first_stage.INC_delta:#1
-x7 p_first_stage.INC_delta:#2
-x8 p_first_stage.INC_delta:#3
-x9 p_first_stage.INC_delta:#4
-x1 x
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_ignore_derived_baseline/scenario_files/piecewise.mps.symbols.Scenario3 b/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_ignore_derived_baseline/scenario_files/piecewise.mps.symbols.Scenario3
deleted file mode 100644
index e9ae01d4c9f..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_ignore_derived_baseline/scenario_files/piecewise.mps.symbols.Scenario3
+++ /dev/null
@@ -1,9 +0,0 @@
-x2 fx
-x10 p_first_stage.INC_bin_y:#1
-x11 p_first_stage.INC_bin_y:#2
-x12 p_first_stage.INC_bin_y:#3
-x6 p_first_stage.INC_delta:#1
-x7 p_first_stage.INC_delta:#2
-x8 p_first_stage.INC_delta:#3
-x9 p_first_stage.INC_delta:#4
-x1 x
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_ignore_derived_baseline/scenario_files/piecewise.row.Scenario1 b/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_ignore_derived_baseline/scenario_files/piecewise.row.Scenario1
deleted file mode 100644
index 5140335c5b4..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_ignore_derived_baseline/scenario_files/piecewise.row.Scenario1
+++ /dev/null
@@ -1,22 +0,0 @@
-x20
-c_e_x21_
-c_e_x22_
-c_l_x23_
-c_u_x24_
-c_u_x25_
-c_u_x26_
-c_u_x27_
-c_u_x28_
-c_u_x29_
-c_e_x30_
-c_e_x31_
-c_l_x32_
-c_u_x33_
-c_u_x34_
-c_u_x35_
-c_u_x36_
-c_u_x37_
-c_u_x38_
-r_l_x39_
-r_u_x39_
-c_e_ONE_VAR_CONSTANT
\ No newline at end of file
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_ignore_derived_baseline/scenario_files/piecewise.row.Scenario2 b/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_ignore_derived_baseline/scenario_files/piecewise.row.Scenario2
deleted file mode 100644
index 5140335c5b4..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_ignore_derived_baseline/scenario_files/piecewise.row.Scenario2
+++ /dev/null
@@ -1,22 +0,0 @@
-x20
-c_e_x21_
-c_e_x22_
-c_l_x23_
-c_u_x24_
-c_u_x25_
-c_u_x26_
-c_u_x27_
-c_u_x28_
-c_u_x29_
-c_e_x30_
-c_e_x31_
-c_l_x32_
-c_u_x33_
-c_u_x34_
-c_u_x35_
-c_u_x36_
-c_u_x37_
-c_u_x38_
-r_l_x39_
-r_u_x39_
-c_e_ONE_VAR_CONSTANT
\ No newline at end of file
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_ignore_derived_baseline/scenario_files/piecewise.row.Scenario3 b/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_ignore_derived_baseline/scenario_files/piecewise.row.Scenario3
deleted file mode 100644
index 5140335c5b4..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_ignore_derived_baseline/scenario_files/piecewise.row.Scenario3
+++ /dev/null
@@ -1,22 +0,0 @@
-x20
-c_e_x21_
-c_e_x22_
-c_l_x23_
-c_u_x24_
-c_u_x25_
-c_u_x26_
-c_u_x27_
-c_u_x28_
-c_u_x29_
-c_e_x30_
-c_e_x31_
-c_l_x32_
-c_u_x33_
-c_u_x34_
-c_u_x35_
-c_u_x36_
-c_u_x37_
-c_u_x38_
-r_l_x39_
-r_u_x39_
-c_e_ONE_VAR_CONSTANT
\ No newline at end of file
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_ignore_derived_baseline/scenario_files/piecewise.setup.mps.Scenario1 b/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_ignore_derived_baseline/scenario_files/piecewise.setup.mps.Scenario1
deleted file mode 100644
index 033b1fe5445..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_ignore_derived_baseline/scenario_files/piecewise.setup.mps.Scenario1
+++ /dev/null
@@ -1,124 +0,0 @@
-* Source: Pyomo MPS Writer
-* Format: Free MPS
-*
-NAME Scenario1
-OBJSENSE
- MIN
-ROWS
- N x20
- G c_l_x21_
- G c_l_x22_
- G r_l_x23_
- L r_u_x23_
- E c_e_x24_
- E c_e_x25_
- L c_u_x26_
- L c_u_x27_
- L c_u_x28_
- L c_u_x29_
- L c_u_x30_
- L c_u_x31_
- E c_e_x32_
- E c_e_x33_
- L c_u_x34_
- L c_u_x35_
- L c_u_x36_
- L c_u_x37_
- L c_u_x38_
- L c_u_x39_
-COLUMNS
- x1 c_l_x21_ 1
- x1 c_l_x22_ 1
- x1 c_e_x24_ 1
- x2 x20 1
- x2 c_e_x25_ 1
- x3 c_e_x32_ 1
- x4 x20 -1
- x4 c_e_x33_ 1
- x5 x20 1
- x5 c_l_x22_ 0
- x5 r_l_x23_ 1
- x5 r_u_x23_ 1
- x6 c_e_x24_ -2
- x6 c_u_x29_ -1
- x7 c_e_x24_ -3
- x7 c_e_x25_ 1
- x7 c_u_x26_ 1
- x7 c_u_x30_ -1
- x8 c_e_x24_ -2
- x8 c_e_x25_ -1
- x8 c_u_x27_ 1
- x8 c_u_x31_ -1
- x9 c_e_x24_ -3
- x9 c_u_x28_ 1
- x10 c_u_x26_ -1
- x10 c_u_x29_ 1
- x11 c_u_x27_ -1
- x11 c_u_x30_ 1
- x12 c_u_x28_ -1
- x12 c_u_x31_ 1
- x13 c_e_x32_ -5
- x13 c_u_x37_ -1
- x14 c_e_x32_ -5
- x14 c_e_x33_ 1
- x14 c_u_x34_ 1
- x14 c_u_x38_ -1
- x15 c_e_x32_ -5
- x15 c_e_x33_ -3
- x15 c_u_x35_ 1
- x15 c_u_x39_ -1
- x16 c_e_x32_ -5
- x16 c_e_x33_ 1
- x16 c_u_x36_ 1
- x17 c_u_x34_ -1
- x17 c_u_x37_ 1
- x18 c_u_x35_ -1
- x18 c_u_x38_ 1
- x19 c_u_x36_ -1
- x19 c_u_x39_ 1
-RHS
- RHS c_l_x21_ 0
- RHS c_l_x22_ -100
- RHS r_l_x23_ 0
- RHS r_u_x23_ 0
- RHS c_e_x24_ 0
- RHS c_e_x25_ 10
- RHS c_u_x26_ 0
- RHS c_u_x27_ 0
- RHS c_u_x28_ 0
- RHS c_u_x29_ 0
- RHS c_u_x30_ 0
- RHS c_u_x31_ 0
- RHS c_e_x32_ -10
- RHS c_e_x33_ 0
- RHS c_u_x34_ 0
- RHS c_u_x35_ 0
- RHS c_u_x36_ 0
- RHS c_u_x37_ 0
- RHS c_u_x38_ 0
- RHS c_u_x39_ 0
-BOUNDS
- LO BOUND x1 0
- UP BOUND x1 10
- FR BOUND x2
- LO BOUND x3 -10
- UP BOUND x3 10
- FR BOUND x4
- FR BOUND x5
- MI BOUND x6
- UP BOUND x6 1
- FR BOUND x7
- FR BOUND x8
- LO BOUND x9 0
- BV BOUND x10
- BV BOUND x11
- BV BOUND x12
- MI BOUND x13
- UP BOUND x13 1
- FR BOUND x14
- FR BOUND x15
- LO BOUND x16 0
- BV BOUND x17
- BV BOUND x18
- BV BOUND x19
-ENDATA
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_ignore_derived_baseline/scenario_files/piecewise.setup.mps.Scenario2 b/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_ignore_derived_baseline/scenario_files/piecewise.setup.mps.Scenario2
deleted file mode 100644
index cee9ee8abb9..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_ignore_derived_baseline/scenario_files/piecewise.setup.mps.Scenario2
+++ /dev/null
@@ -1,128 +0,0 @@
-* Source: Pyomo MPS Writer
-* Format: Free MPS
-*
-NAME Scenario2
-OBJSENSE
- MIN
-ROWS
- N x20
- G c_l_x21_
- G c_l_x22_
- G r_l_x23_
- L r_u_x23_
- E c_e_x24_
- E c_e_x25_
- L c_u_x26_
- L c_u_x27_
- L c_u_x28_
- L c_u_x29_
- L c_u_x30_
- L c_u_x31_
- E c_e_x32_
- E c_e_x33_
- L c_u_x34_
- L c_u_x35_
- L c_u_x36_
- L c_u_x37_
- L c_u_x38_
- L c_u_x39_
- E c_e_ONE_VAR_CONSTANT
-COLUMNS
- x1 c_l_x21_ 1
- x1 c_l_x22_ 1
- x1 c_e_x24_ 1
- x2 x20 1
- x2 c_e_x25_ 1
- x3 c_e_x32_ 1
- x4 x20 -1
- x4 c_e_x33_ 1
- x5 x20 1
- x5 c_l_x22_ 1
- x5 r_l_x23_ 1
- x5 r_u_x23_ 1
- x6 c_e_x24_ -2
- x6 c_u_x29_ -1
- x7 c_e_x24_ -3
- x7 c_e_x25_ 1
- x7 c_u_x26_ 1
- x7 c_u_x30_ -1
- x8 c_e_x24_ -2
- x8 c_e_x25_ -1
- x8 c_u_x27_ 1
- x8 c_u_x31_ -1
- x9 c_e_x24_ -3
- x9 c_u_x28_ 1
- x10 c_u_x26_ -1
- x10 c_u_x29_ 1
- x11 c_u_x27_ -1
- x11 c_u_x30_ 1
- x12 c_u_x28_ -1
- x12 c_u_x31_ 1
- x13 c_e_x32_ -5
- x13 c_u_x37_ -1
- x14 c_e_x32_ -5
- x14 c_e_x33_ 1
- x14 c_u_x34_ 1
- x14 c_u_x38_ -1
- x15 c_e_x32_ -5
- x15 c_e_x33_ -4
- x15 c_u_x35_ 1
- x15 c_u_x39_ -1
- x16 c_e_x32_ -5
- x16 c_e_x33_ 2
- x16 c_u_x36_ 1
- x17 c_u_x34_ -1
- x17 c_u_x37_ 1
- x18 c_u_x35_ -1
- x18 c_u_x38_ 1
- x19 c_u_x36_ -1
- x19 c_u_x39_ 1
- ONE_VAR_CONSTANT x20 -1
- ONE_VAR_CONSTANT c_e_ONE_VAR_CONSTANT 1
-RHS
- RHS c_l_x21_ 0
- RHS c_l_x22_ -100
- RHS r_l_x23_ -1
- RHS r_u_x23_ 0
- RHS c_e_x24_ 0
- RHS c_e_x25_ 10
- RHS c_u_x26_ 0
- RHS c_u_x27_ 0
- RHS c_u_x28_ 0
- RHS c_u_x29_ 0
- RHS c_u_x30_ 0
- RHS c_u_x31_ 0
- RHS c_e_x32_ -10
- RHS c_e_x33_ 0
- RHS c_u_x34_ 0
- RHS c_u_x35_ 0
- RHS c_u_x36_ 0
- RHS c_u_x37_ 0
- RHS c_u_x38_ 0
- RHS c_u_x39_ 0
- RHS c_e_ONE_VAR_CONSTANT 1
-BOUNDS
- LO BOUND x1 0
- UP BOUND x1 10
- FR BOUND x2
- LO BOUND x3 -10
- UP BOUND x3 10
- FR BOUND x4
- FR BOUND x5
- MI BOUND x6
- UP BOUND x6 1
- FR BOUND x7
- FR BOUND x8
- LO BOUND x9 0
- BV BOUND x10
- BV BOUND x11
- BV BOUND x12
- MI BOUND x13
- UP BOUND x13 1
- FR BOUND x14
- FR BOUND x15
- LO BOUND x16 0
- BV BOUND x17
- BV BOUND x18
- BV BOUND x19
-ENDATA
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_ignore_derived_baseline/scenario_files/piecewise.setup.mps.Scenario3 b/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_ignore_derived_baseline/scenario_files/piecewise.setup.mps.Scenario3
deleted file mode 100644
index a3b9daa2af7..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_ignore_derived_baseline/scenario_files/piecewise.setup.mps.Scenario3
+++ /dev/null
@@ -1,128 +0,0 @@
-* Source: Pyomo MPS Writer
-* Format: Free MPS
-*
-NAME Scenario3
-OBJSENSE
- MIN
-ROWS
- N x20
- G c_l_x21_
- G c_l_x22_
- G r_l_x23_
- L r_u_x23_
- E c_e_x24_
- E c_e_x25_
- L c_u_x26_
- L c_u_x27_
- L c_u_x28_
- L c_u_x29_
- L c_u_x30_
- L c_u_x31_
- E c_e_x32_
- E c_e_x33_
- L c_u_x34_
- L c_u_x35_
- L c_u_x36_
- L c_u_x37_
- L c_u_x38_
- L c_u_x39_
- E c_e_ONE_VAR_CONSTANT
-COLUMNS
- x1 c_l_x21_ 1
- x1 c_l_x22_ 1
- x1 c_e_x24_ 1
- x2 x20 1
- x2 c_e_x25_ 1
- x3 c_e_x32_ 1
- x4 x20 -1
- x4 c_e_x33_ 1
- x5 x20 1
- x5 c_l_x22_ 2
- x5 r_l_x23_ 1
- x5 r_u_x23_ 1
- x6 c_e_x24_ -2
- x6 c_u_x29_ -1
- x7 c_e_x24_ -3
- x7 c_e_x25_ 1
- x7 c_u_x26_ 1
- x7 c_u_x30_ -1
- x8 c_e_x24_ -2
- x8 c_e_x25_ -1
- x8 c_u_x27_ 1
- x8 c_u_x31_ -1
- x9 c_e_x24_ -3
- x9 c_u_x28_ 1
- x10 c_u_x26_ -1
- x10 c_u_x29_ 1
- x11 c_u_x27_ -1
- x11 c_u_x30_ 1
- x12 c_u_x28_ -1
- x12 c_u_x31_ 1
- x13 c_e_x32_ -5
- x13 c_u_x37_ -1
- x14 c_e_x32_ -5
- x14 c_e_x33_ 1
- x14 c_u_x34_ 1
- x14 c_u_x38_ -1
- x15 c_e_x32_ -5
- x15 c_e_x33_ -5
- x15 c_u_x35_ 1
- x15 c_u_x39_ -1
- x16 c_e_x32_ -5
- x16 c_e_x33_ 3
- x16 c_u_x36_ 1
- x17 c_u_x34_ -1
- x17 c_u_x37_ 1
- x18 c_u_x35_ -1
- x18 c_u_x38_ 1
- x19 c_u_x36_ -1
- x19 c_u_x39_ 1
- ONE_VAR_CONSTANT x20 -2
- ONE_VAR_CONSTANT c_e_ONE_VAR_CONSTANT 1
-RHS
- RHS c_l_x21_ 0
- RHS c_l_x22_ -100
- RHS r_l_x23_ -2
- RHS r_u_x23_ 0
- RHS c_e_x24_ 0
- RHS c_e_x25_ 10
- RHS c_u_x26_ 0
- RHS c_u_x27_ 0
- RHS c_u_x28_ 0
- RHS c_u_x29_ 0
- RHS c_u_x30_ 0
- RHS c_u_x31_ 0
- RHS c_e_x32_ -10
- RHS c_e_x33_ 0
- RHS c_u_x34_ 0
- RHS c_u_x35_ 0
- RHS c_u_x36_ 0
- RHS c_u_x37_ 0
- RHS c_u_x38_ 0
- RHS c_u_x39_ 0
- RHS c_e_ONE_VAR_CONSTANT 1
-BOUNDS
- LO BOUND x1 0
- UP BOUND x1 10
- FR BOUND x2
- LO BOUND x3 -10
- UP BOUND x3 10
- FR BOUND x4
- FR BOUND x5
- MI BOUND x6
- UP BOUND x6 1
- FR BOUND x7
- FR BOUND x8
- LO BOUND x9 0
- BV BOUND x10
- BV BOUND x11
- BV BOUND x12
- MI BOUND x13
- UP BOUND x13 1
- FR BOUND x14
- FR BOUND x15
- LO BOUND x16 0
- BV BOUND x17
- BV BOUND x18
- BV BOUND x19
-ENDATA
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_ignore_derived_baseline/scenario_files/piecewise.sto.Scenario1 b/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_ignore_derived_baseline/scenario_files/piecewise.sto.Scenario1
deleted file mode 100644
index 9147eb04a8a..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_ignore_derived_baseline/scenario_files/piecewise.sto.Scenario1
+++ /dev/null
@@ -1,37 +0,0 @@
- BL BLOCK1 PERIOD2 0.33333333329999998
- RHS c_e_x30_ -10
- RHS c_e_x31_ 0
- RHS c_u_x33_ 0
- RHS c_u_x34_ 0
- RHS c_u_x35_ 0
- RHS c_u_x36_ 0
- RHS c_u_x37_ 0
- RHS c_u_x38_ 0
- RHS r_l_x39_ 0
- RHS r_u_x39_ 0
- x5 c_l_x32_ 0
- x13 c_e_x30_ -5
- x14 c_e_x30_ -5
- x15 c_e_x30_ -5
- x16 c_e_x30_ -5
- x3 c_e_x30_ 1
- x14 c_e_x31_ 1
- x15 c_e_x31_ -3
- x16 c_e_x31_ 1
- x4 c_e_x31_ 1
- x14 c_u_x33_ 1
- x17 c_u_x33_ -1
- x15 c_u_x34_ 1
- x18 c_u_x34_ -1
- x16 c_u_x35_ 1
- x19 c_u_x35_ -1
- x13 c_u_x36_ -1
- x17 c_u_x36_ 1
- x14 c_u_x37_ -1
- x18 c_u_x37_ 1
- x15 c_u_x38_ -1
- x19 c_u_x38_ 1
- x2 x20 1
- x4 x20 -1
- x5 x20 1
- ONE_VAR_CONSTANT x20 0
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_ignore_derived_baseline/scenario_files/piecewise.sto.Scenario2 b/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_ignore_derived_baseline/scenario_files/piecewise.sto.Scenario2
deleted file mode 100644
index dbaa9265c96..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_ignore_derived_baseline/scenario_files/piecewise.sto.Scenario2
+++ /dev/null
@@ -1,37 +0,0 @@
- BL BLOCK1 PERIOD2 0.33333333329999998
- RHS c_e_x30_ -10
- RHS c_e_x31_ 0
- RHS c_u_x33_ 0
- RHS c_u_x34_ 0
- RHS c_u_x35_ 0
- RHS c_u_x36_ 0
- RHS c_u_x37_ 0
- RHS c_u_x38_ 0
- RHS r_l_x39_ -1
- RHS r_u_x39_ 0
- x5 c_l_x32_ 1
- x13 c_e_x30_ -5
- x14 c_e_x30_ -5
- x15 c_e_x30_ -5
- x16 c_e_x30_ -5
- x3 c_e_x30_ 1
- x14 c_e_x31_ 1
- x15 c_e_x31_ -4
- x16 c_e_x31_ 2
- x4 c_e_x31_ 1
- x14 c_u_x33_ 1
- x17 c_u_x33_ -1
- x15 c_u_x34_ 1
- x18 c_u_x34_ -1
- x16 c_u_x35_ 1
- x19 c_u_x35_ -1
- x13 c_u_x36_ -1
- x17 c_u_x36_ 1
- x14 c_u_x37_ -1
- x18 c_u_x37_ 1
- x15 c_u_x38_ -1
- x19 c_u_x38_ 1
- x2 x20 1
- x4 x20 -1
- x5 x20 1
- ONE_VAR_CONSTANT x20 -1
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_ignore_derived_baseline/scenario_files/piecewise.sto.Scenario3 b/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_ignore_derived_baseline/scenario_files/piecewise.sto.Scenario3
deleted file mode 100644
index 0bcc25c2577..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_ignore_derived_baseline/scenario_files/piecewise.sto.Scenario3
+++ /dev/null
@@ -1,37 +0,0 @@
- BL BLOCK1 PERIOD2 0.33333333329999998
- RHS c_e_x30_ -10
- RHS c_e_x31_ 0
- RHS c_u_x33_ 0
- RHS c_u_x34_ 0
- RHS c_u_x35_ 0
- RHS c_u_x36_ 0
- RHS c_u_x37_ 0
- RHS c_u_x38_ 0
- RHS r_l_x39_ -2
- RHS r_u_x39_ 0
- x5 c_l_x32_ 2
- x13 c_e_x30_ -5
- x14 c_e_x30_ -5
- x15 c_e_x30_ -5
- x16 c_e_x30_ -5
- x3 c_e_x30_ 1
- x14 c_e_x31_ 1
- x15 c_e_x31_ -5
- x16 c_e_x31_ 3
- x4 c_e_x31_ 1
- x14 c_u_x33_ 1
- x17 c_u_x33_ -1
- x15 c_u_x34_ 1
- x18 c_u_x34_ -1
- x16 c_u_x35_ 1
- x19 c_u_x35_ -1
- x13 c_u_x36_ -1
- x17 c_u_x36_ 1
- x14 c_u_x37_ -1
- x18 c_u_x37_ 1
- x15 c_u_x38_ -1
- x19 c_u_x38_ 1
- x2 x20 1
- x4 x20 -1
- x5 x20 1
- ONE_VAR_CONSTANT x20 -2
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_ignore_derived_baseline/scenario_files/piecewise.sto.struct.Scenario1 b/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_ignore_derived_baseline/scenario_files/piecewise.sto.struct.Scenario1
deleted file mode 100644
index 868098c0d16..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_ignore_derived_baseline/scenario_files/piecewise.sto.struct.Scenario1
+++ /dev/null
@@ -1,36 +0,0 @@
-RHS c_e_x30_
-RHS c_e_x31_
-RHS c_u_x33_
-RHS c_u_x34_
-RHS c_u_x35_
-RHS c_u_x36_
-RHS c_u_x37_
-RHS c_u_x38_
-RHS r_l_x39_
-RHS r_u_x39_
-x5 c_l_x32_
-x13 c_e_x30_
-x14 c_e_x30_
-x15 c_e_x30_
-x16 c_e_x30_
-x3 c_e_x30_
-x14 c_e_x31_
-x15 c_e_x31_
-x16 c_e_x31_
-x4 c_e_x31_
-x14 c_u_x33_
-x17 c_u_x33_
-x15 c_u_x34_
-x18 c_u_x34_
-x16 c_u_x35_
-x19 c_u_x35_
-x13 c_u_x36_
-x17 c_u_x36_
-x14 c_u_x37_
-x18 c_u_x37_
-x15 c_u_x38_
-x19 c_u_x38_
-x2 x20
-x4 x20
-x5 x20
-ONE_VAR_CONSTANT x20
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_ignore_derived_baseline/scenario_files/piecewise.sto.struct.Scenario2 b/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_ignore_derived_baseline/scenario_files/piecewise.sto.struct.Scenario2
deleted file mode 100644
index 868098c0d16..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_ignore_derived_baseline/scenario_files/piecewise.sto.struct.Scenario2
+++ /dev/null
@@ -1,36 +0,0 @@
-RHS c_e_x30_
-RHS c_e_x31_
-RHS c_u_x33_
-RHS c_u_x34_
-RHS c_u_x35_
-RHS c_u_x36_
-RHS c_u_x37_
-RHS c_u_x38_
-RHS r_l_x39_
-RHS r_u_x39_
-x5 c_l_x32_
-x13 c_e_x30_
-x14 c_e_x30_
-x15 c_e_x30_
-x16 c_e_x30_
-x3 c_e_x30_
-x14 c_e_x31_
-x15 c_e_x31_
-x16 c_e_x31_
-x4 c_e_x31_
-x14 c_u_x33_
-x17 c_u_x33_
-x15 c_u_x34_
-x18 c_u_x34_
-x16 c_u_x35_
-x19 c_u_x35_
-x13 c_u_x36_
-x17 c_u_x36_
-x14 c_u_x37_
-x18 c_u_x37_
-x15 c_u_x38_
-x19 c_u_x38_
-x2 x20
-x4 x20
-x5 x20
-ONE_VAR_CONSTANT x20
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_ignore_derived_baseline/scenario_files/piecewise.sto.struct.Scenario3 b/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_ignore_derived_baseline/scenario_files/piecewise.sto.struct.Scenario3
deleted file mode 100644
index 868098c0d16..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_ignore_derived_baseline/scenario_files/piecewise.sto.struct.Scenario3
+++ /dev/null
@@ -1,36 +0,0 @@
-RHS c_e_x30_
-RHS c_e_x31_
-RHS c_u_x33_
-RHS c_u_x34_
-RHS c_u_x35_
-RHS c_u_x36_
-RHS c_u_x37_
-RHS c_u_x38_
-RHS r_l_x39_
-RHS r_u_x39_
-x5 c_l_x32_
-x13 c_e_x30_
-x14 c_e_x30_
-x15 c_e_x30_
-x16 c_e_x30_
-x3 c_e_x30_
-x14 c_e_x31_
-x15 c_e_x31_
-x16 c_e_x31_
-x4 c_e_x31_
-x14 c_u_x33_
-x17 c_u_x33_
-x15 c_u_x34_
-x18 c_u_x34_
-x16 c_u_x35_
-x19 c_u_x35_
-x13 c_u_x36_
-x17 c_u_x36_
-x14 c_u_x37_
-x18 c_u_x37_
-x15 c_u_x38_
-x19 c_u_x38_
-x2 x20
-x4 x20
-x5 x20
-ONE_VAR_CONSTANT x20
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_ignore_derived_baseline/scenario_files/piecewise.tim.Scenario1 b/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_ignore_derived_baseline/scenario_files/piecewise.tim.Scenario1
deleted file mode 100644
index 07db755e357..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_ignore_derived_baseline/scenario_files/piecewise.tim.Scenario1
+++ /dev/null
@@ -1,5 +0,0 @@
-TIME piecewise
-PERIODS IMPLICIT
- x1 x20 TIME1
- x13 c_e_x30_ TIME2
-ENDATA
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_ignore_derived_baseline/scenario_files/piecewise.tim.Scenario2 b/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_ignore_derived_baseline/scenario_files/piecewise.tim.Scenario2
deleted file mode 100644
index 07db755e357..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_ignore_derived_baseline/scenario_files/piecewise.tim.Scenario2
+++ /dev/null
@@ -1,5 +0,0 @@
-TIME piecewise
-PERIODS IMPLICIT
- x1 x20 TIME1
- x13 c_e_x30_ TIME2
-ENDATA
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_ignore_derived_baseline/scenario_files/piecewise.tim.Scenario3 b/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_ignore_derived_baseline/scenario_files/piecewise.tim.Scenario3
deleted file mode 100644
index 07db755e357..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_ignore_derived_baseline/scenario_files/piecewise.tim.Scenario3
+++ /dev/null
@@ -1,5 +0,0 @@
-TIME piecewise
-PERIODS IMPLICIT
- x1 x20 TIME1
- x13 c_e_x30_ TIME2
-ENDATA
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_symbolic_names_baseline/piecewise.col b/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_symbolic_names_baseline/piecewise.col
deleted file mode 100644
index ddc4c751581..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_symbolic_names_baseline/piecewise.col
+++ /dev/null
@@ -1,20 +0,0 @@
-x
-fx
-fz
-p_first_stage_INC_bin_y(1)
-p_first_stage_INC_bin_y(2)
-p_first_stage_INC_bin_y(3)
-p_first_stage_INC_delta(1)
-p_first_stage_INC_delta(2)
-p_first_stage_INC_delta(3)
-p_first_stage_INC_delta(4)
-p_second_stage(1)_INC_bin_y(1)
-p_second_stage(1)_INC_bin_y(2)
-p_second_stage(1)_INC_bin_y(3)
-p_second_stage(1)_INC_delta(1)
-p_second_stage(1)_INC_delta(2)
-p_second_stage(1)_INC_delta(3)
-p_second_stage(1)_INC_delta(4)
-r
-z
-ONE_VAR_CONSTANT
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_symbolic_names_baseline/piecewise.cor b/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_symbolic_names_baseline/piecewise.cor
deleted file mode 100644
index 23fafc1fb87..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_symbolic_names_baseline/piecewise.cor
+++ /dev/null
@@ -1,128 +0,0 @@
-* Source: Pyomo MPS Writer
-* Format: Free MPS
-*
-NAME Scenario1
-OBJSENSE
- MIN
-ROWS
- N o
- G c_l_c_first_stage_
- E c_e_p_first_stage_INC_constraint1_
- E c_e_p_first_stage_INC_constraint2_
- E c_e_p_second_stage(1)_INC_constraint1_
- E c_e_p_second_stage(1)_INC_constraint2_
- G c_l_c_second_stage_
- L c_u_p_first_stage_INC_constraint3(1)_
- L c_u_p_first_stage_INC_constraint3(2)_
- L c_u_p_first_stage_INC_constraint3(3)_
- L c_u_p_first_stage_INC_constraint4(1)_
- L c_u_p_first_stage_INC_constraint4(2)_
- L c_u_p_first_stage_INC_constraint4(3)_
- L c_u_p_second_stage(1)_INC_constraint3(1)_
- L c_u_p_second_stage(1)_INC_constraint3(2)_
- L c_u_p_second_stage(1)_INC_constraint3(3)_
- L c_u_p_second_stage(1)_INC_constraint4(1)_
- L c_u_p_second_stage(1)_INC_constraint4(2)_
- L c_u_p_second_stage(1)_INC_constraint4(3)_
- G r_l_r_second_stage_
- L r_u_r_second_stage_
- E c_e_ONE_VAR_CONSTANT
-COLUMNS
- x c_l_c_first_stage_ 1
- x c_e_p_first_stage_INC_constraint1_ 1
- x c_l_c_second_stage_ 1
- fx o 1
- fx c_e_p_first_stage_INC_constraint2_ 1
- fz o -1
- fz c_e_p_second_stage(1)_INC_constraint2_ 1
- p_first_stage_INC_bin_y(1) c_u_p_first_stage_INC_constraint3(1)_ -1
- p_first_stage_INC_bin_y(1) c_u_p_first_stage_INC_constraint4(1)_ 1
- p_first_stage_INC_bin_y(2) c_u_p_first_stage_INC_constraint3(2)_ -1
- p_first_stage_INC_bin_y(2) c_u_p_first_stage_INC_constraint4(2)_ 1
- p_first_stage_INC_bin_y(3) c_u_p_first_stage_INC_constraint3(3)_ -1
- p_first_stage_INC_bin_y(3) c_u_p_first_stage_INC_constraint4(3)_ 1
- p_first_stage_INC_delta(1) c_e_p_first_stage_INC_constraint1_ -2
- p_first_stage_INC_delta(1) c_u_p_first_stage_INC_constraint4(1)_ -1
- p_first_stage_INC_delta(2) c_e_p_first_stage_INC_constraint1_ -3
- p_first_stage_INC_delta(2) c_e_p_first_stage_INC_constraint2_ 1
- p_first_stage_INC_delta(2) c_u_p_first_stage_INC_constraint3(1)_ 1
- p_first_stage_INC_delta(2) c_u_p_first_stage_INC_constraint4(2)_ -1
- p_first_stage_INC_delta(3) c_e_p_first_stage_INC_constraint1_ -2
- p_first_stage_INC_delta(3) c_e_p_first_stage_INC_constraint2_ -1
- p_first_stage_INC_delta(3) c_u_p_first_stage_INC_constraint3(2)_ 1
- p_first_stage_INC_delta(3) c_u_p_first_stage_INC_constraint4(3)_ -1
- p_first_stage_INC_delta(4) c_e_p_first_stage_INC_constraint1_ -3
- p_first_stage_INC_delta(4) c_u_p_first_stage_INC_constraint3(3)_ 1
- p_second_stage(1)_INC_bin_y(1) c_u_p_second_stage(1)_INC_constraint3(1)_ -1
- p_second_stage(1)_INC_bin_y(1) c_u_p_second_stage(1)_INC_constraint4(1)_ 1
- p_second_stage(1)_INC_bin_y(2) c_u_p_second_stage(1)_INC_constraint3(2)_ -1
- p_second_stage(1)_INC_bin_y(2) c_u_p_second_stage(1)_INC_constraint4(2)_ 1
- p_second_stage(1)_INC_bin_y(3) c_u_p_second_stage(1)_INC_constraint3(3)_ -1
- p_second_stage(1)_INC_bin_y(3) c_u_p_second_stage(1)_INC_constraint4(3)_ 1
- p_second_stage(1)_INC_delta(1) c_e_p_second_stage(1)_INC_constraint1_ -5
- p_second_stage(1)_INC_delta(1) c_u_p_second_stage(1)_INC_constraint4(1)_ -1
- p_second_stage(1)_INC_delta(2) c_e_p_second_stage(1)_INC_constraint1_ -5
- p_second_stage(1)_INC_delta(2) c_e_p_second_stage(1)_INC_constraint2_ 1
- p_second_stage(1)_INC_delta(2) c_u_p_second_stage(1)_INC_constraint3(1)_ 1
- p_second_stage(1)_INC_delta(2) c_u_p_second_stage(1)_INC_constraint4(2)_ -1
- p_second_stage(1)_INC_delta(3) c_e_p_second_stage(1)_INC_constraint1_ -5
- p_second_stage(1)_INC_delta(3) c_e_p_second_stage(1)_INC_constraint2_ -3
- p_second_stage(1)_INC_delta(3) c_u_p_second_stage(1)_INC_constraint3(2)_ 1
- p_second_stage(1)_INC_delta(3) c_u_p_second_stage(1)_INC_constraint4(3)_ -1
- p_second_stage(1)_INC_delta(4) c_e_p_second_stage(1)_INC_constraint1_ -5
- p_second_stage(1)_INC_delta(4) c_e_p_second_stage(1)_INC_constraint2_ 1
- p_second_stage(1)_INC_delta(4) c_u_p_second_stage(1)_INC_constraint3(3)_ 1
- r o 1
- r c_l_c_second_stage_ 0
- r r_l_r_second_stage_ 1
- r r_u_r_second_stage_ 1
- z c_e_p_second_stage(1)_INC_constraint1_ 1
- ONE_VAR_CONSTANT o 0
- ONE_VAR_CONSTANT c_e_ONE_VAR_CONSTANT 1
-RHS
- RHS c_l_c_first_stage_ 0
- RHS c_e_p_first_stage_INC_constraint1_ 0
- RHS c_e_p_first_stage_INC_constraint2_ 10
- RHS c_e_p_second_stage(1)_INC_constraint1_ -10
- RHS c_e_p_second_stage(1)_INC_constraint2_ 0
- RHS c_l_c_second_stage_ -100
- RHS c_u_p_first_stage_INC_constraint3(1)_ 0
- RHS c_u_p_first_stage_INC_constraint3(2)_ 0
- RHS c_u_p_first_stage_INC_constraint3(3)_ 0
- RHS c_u_p_first_stage_INC_constraint4(1)_ 0
- RHS c_u_p_first_stage_INC_constraint4(2)_ 0
- RHS c_u_p_first_stage_INC_constraint4(3)_ 0
- RHS c_u_p_second_stage(1)_INC_constraint3(1)_ 0
- RHS c_u_p_second_stage(1)_INC_constraint3(2)_ 0
- RHS c_u_p_second_stage(1)_INC_constraint3(3)_ 0
- RHS c_u_p_second_stage(1)_INC_constraint4(1)_ 0
- RHS c_u_p_second_stage(1)_INC_constraint4(2)_ 0
- RHS c_u_p_second_stage(1)_INC_constraint4(3)_ 0
- RHS r_l_r_second_stage_ 0
- RHS r_u_r_second_stage_ 0
- RHS c_e_ONE_VAR_CONSTANT 1
-BOUNDS
- LO BOUND x 0
- UP BOUND x 10
- FR BOUND fx
- FR BOUND fz
- BV BOUND p_first_stage_INC_bin_y(1)
- BV BOUND p_first_stage_INC_bin_y(2)
- BV BOUND p_first_stage_INC_bin_y(3)
- MI BOUND p_first_stage_INC_delta(1)
- UP BOUND p_first_stage_INC_delta(1) 1
- FR BOUND p_first_stage_INC_delta(2)
- FR BOUND p_first_stage_INC_delta(3)
- LO BOUND p_first_stage_INC_delta(4) 0
- BV BOUND p_second_stage(1)_INC_bin_y(1)
- BV BOUND p_second_stage(1)_INC_bin_y(2)
- BV BOUND p_second_stage(1)_INC_bin_y(3)
- MI BOUND p_second_stage(1)_INC_delta(1)
- UP BOUND p_second_stage(1)_INC_delta(1) 1
- FR BOUND p_second_stage(1)_INC_delta(2)
- FR BOUND p_second_stage(1)_INC_delta(3)
- LO BOUND p_second_stage(1)_INC_delta(4) 0
- FR BOUND r
- LO BOUND z -10
- UP BOUND z 10
-ENDATA
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_symbolic_names_baseline/piecewise.cor.symbols b/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_symbolic_names_baseline/piecewise.cor.symbols
deleted file mode 100644
index 3ea722dd807..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_symbolic_names_baseline/piecewise.cor.symbols
+++ /dev/null
@@ -1,9 +0,0 @@
-fx fx
-p_first_stage_INC_bin_y(1) p_first_stage.INC_bin_y:#1
-p_first_stage_INC_bin_y(2) p_first_stage.INC_bin_y:#2
-p_first_stage_INC_bin_y(3) p_first_stage.INC_bin_y:#3
-p_first_stage_INC_delta(1) p_first_stage.INC_delta:#1
-p_first_stage_INC_delta(2) p_first_stage.INC_delta:#2
-p_first_stage_INC_delta(3) p_first_stage.INC_delta:#3
-p_first_stage_INC_delta(4) p_first_stage.INC_delta:#4
-x x
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_symbolic_names_baseline/piecewise.mps.det b/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_symbolic_names_baseline/piecewise.mps.det
deleted file mode 100644
index 1be13847f4a..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_symbolic_names_baseline/piecewise.mps.det
+++ /dev/null
@@ -1,128 +0,0 @@
-* Source: Pyomo MPS Writer
-* Format: Free MPS
-*
-NAME ZeroStochasticData
-OBJSENSE
- MIN
-ROWS
- N o
- G c_l_c_first_stage_
- E c_e_p_first_stage_INC_constraint1_
- E c_e_p_first_stage_INC_constraint2_
- E c_e_p_second_stage(1)_INC_constraint1_
- E c_e_p_second_stage(1)_INC_constraint2_
- G c_l_c_second_stage_
- L c_u_p_first_stage_INC_constraint3(1)_
- L c_u_p_first_stage_INC_constraint3(2)_
- L c_u_p_first_stage_INC_constraint3(3)_
- L c_u_p_first_stage_INC_constraint4(1)_
- L c_u_p_first_stage_INC_constraint4(2)_
- L c_u_p_first_stage_INC_constraint4(3)_
- L c_u_p_second_stage(1)_INC_constraint3(1)_
- L c_u_p_second_stage(1)_INC_constraint3(2)_
- L c_u_p_second_stage(1)_INC_constraint3(3)_
- L c_u_p_second_stage(1)_INC_constraint4(1)_
- L c_u_p_second_stage(1)_INC_constraint4(2)_
- L c_u_p_second_stage(1)_INC_constraint4(3)_
- G r_l_r_second_stage_
- L r_u_r_second_stage_
- E c_e_ONE_VAR_CONSTANT
-COLUMNS
- x c_l_c_first_stage_ 1
- x c_e_p_first_stage_INC_constraint1_ 1
- x c_l_c_second_stage_ 1
- fx o -9876543210
- fx c_e_p_first_stage_INC_constraint2_ 1
- fz o -9876543210
- fz c_e_p_second_stage(1)_INC_constraint2_ -9876543210
- p_first_stage_INC_bin_y(1) c_u_p_first_stage_INC_constraint3(1)_ -1
- p_first_stage_INC_bin_y(1) c_u_p_first_stage_INC_constraint4(1)_ 1
- p_first_stage_INC_bin_y(2) c_u_p_first_stage_INC_constraint3(2)_ -1
- p_first_stage_INC_bin_y(2) c_u_p_first_stage_INC_constraint4(2)_ 1
- p_first_stage_INC_bin_y(3) c_u_p_first_stage_INC_constraint3(3)_ -1
- p_first_stage_INC_bin_y(3) c_u_p_first_stage_INC_constraint4(3)_ 1
- p_first_stage_INC_delta(1) c_e_p_first_stage_INC_constraint1_ -2
- p_first_stage_INC_delta(1) c_u_p_first_stage_INC_constraint4(1)_ -1
- p_first_stage_INC_delta(2) c_e_p_first_stage_INC_constraint1_ -3
- p_first_stage_INC_delta(2) c_e_p_first_stage_INC_constraint2_ 1
- p_first_stage_INC_delta(2) c_u_p_first_stage_INC_constraint3(1)_ 1
- p_first_stage_INC_delta(2) c_u_p_first_stage_INC_constraint4(2)_ -1
- p_first_stage_INC_delta(3) c_e_p_first_stage_INC_constraint1_ -2
- p_first_stage_INC_delta(3) c_e_p_first_stage_INC_constraint2_ -1
- p_first_stage_INC_delta(3) c_u_p_first_stage_INC_constraint3(2)_ 1
- p_first_stage_INC_delta(3) c_u_p_first_stage_INC_constraint4(3)_ -1
- p_first_stage_INC_delta(4) c_e_p_first_stage_INC_constraint1_ -3
- p_first_stage_INC_delta(4) c_u_p_first_stage_INC_constraint3(3)_ 1
- p_second_stage(1)_INC_bin_y(1) c_u_p_second_stage(1)_INC_constraint3(1)_ -9876543210
- p_second_stage(1)_INC_bin_y(1) c_u_p_second_stage(1)_INC_constraint4(1)_ -9876543210
- p_second_stage(1)_INC_bin_y(2) c_u_p_second_stage(1)_INC_constraint3(2)_ -9876543210
- p_second_stage(1)_INC_bin_y(2) c_u_p_second_stage(1)_INC_constraint4(2)_ -9876543210
- p_second_stage(1)_INC_bin_y(3) c_u_p_second_stage(1)_INC_constraint3(3)_ -9876543210
- p_second_stage(1)_INC_bin_y(3) c_u_p_second_stage(1)_INC_constraint4(3)_ -9876543210
- p_second_stage(1)_INC_delta(1) c_e_p_second_stage(1)_INC_constraint1_ -9876543210
- p_second_stage(1)_INC_delta(1) c_u_p_second_stage(1)_INC_constraint4(1)_ -9876543210
- p_second_stage(1)_INC_delta(2) c_e_p_second_stage(1)_INC_constraint1_ -9876543210
- p_second_stage(1)_INC_delta(2) c_e_p_second_stage(1)_INC_constraint2_ -9876543210
- p_second_stage(1)_INC_delta(2) c_u_p_second_stage(1)_INC_constraint3(1)_ -9876543210
- p_second_stage(1)_INC_delta(2) c_u_p_second_stage(1)_INC_constraint4(2)_ -9876543210
- p_second_stage(1)_INC_delta(3) c_e_p_second_stage(1)_INC_constraint1_ -9876543210
- p_second_stage(1)_INC_delta(3) c_e_p_second_stage(1)_INC_constraint2_ -9876543210
- p_second_stage(1)_INC_delta(3) c_u_p_second_stage(1)_INC_constraint3(2)_ -9876543210
- p_second_stage(1)_INC_delta(3) c_u_p_second_stage(1)_INC_constraint4(3)_ -9876543210
- p_second_stage(1)_INC_delta(4) c_e_p_second_stage(1)_INC_constraint1_ -9876543210
- p_second_stage(1)_INC_delta(4) c_e_p_second_stage(1)_INC_constraint2_ -9876543210
- p_second_stage(1)_INC_delta(4) c_u_p_second_stage(1)_INC_constraint3(3)_ -9876543210
- r o -9876543210
- r c_l_c_second_stage_ -9876543210
- r r_l_r_second_stage_ 1
- r r_u_r_second_stage_ 1
- z c_e_p_second_stage(1)_INC_constraint1_ -9876543210
- ONE_VAR_CONSTANT o 0
- ONE_VAR_CONSTANT c_e_ONE_VAR_CONSTANT 1
-RHS
- RHS c_l_c_first_stage_ 0
- RHS c_e_p_first_stage_INC_constraint1_ 0
- RHS c_e_p_first_stage_INC_constraint2_ 10
- RHS c_e_p_second_stage(1)_INC_constraint1_ -9876543210
- RHS c_e_p_second_stage(1)_INC_constraint2_ -9876543210
- RHS c_l_c_second_stage_ -100
- RHS c_u_p_first_stage_INC_constraint3(1)_ 0
- RHS c_u_p_first_stage_INC_constraint3(2)_ 0
- RHS c_u_p_first_stage_INC_constraint3(3)_ 0
- RHS c_u_p_first_stage_INC_constraint4(1)_ 0
- RHS c_u_p_first_stage_INC_constraint4(2)_ 0
- RHS c_u_p_first_stage_INC_constraint4(3)_ 0
- RHS c_u_p_second_stage(1)_INC_constraint3(1)_ -9876543210
- RHS c_u_p_second_stage(1)_INC_constraint3(2)_ -9876543210
- RHS c_u_p_second_stage(1)_INC_constraint3(3)_ -9876543210
- RHS c_u_p_second_stage(1)_INC_constraint4(1)_ -9876543210
- RHS c_u_p_second_stage(1)_INC_constraint4(2)_ -9876543210
- RHS c_u_p_second_stage(1)_INC_constraint4(3)_ -9876543210
- RHS r_l_r_second_stage_ -9876543210
- RHS r_u_r_second_stage_ -9876543210
- RHS c_e_ONE_VAR_CONSTANT 1
-BOUNDS
- LO BOUND x 0
- UP BOUND x 10
- FR BOUND fx
- FR BOUND fz
- BV BOUND p_first_stage_INC_bin_y(1)
- BV BOUND p_first_stage_INC_bin_y(2)
- BV BOUND p_first_stage_INC_bin_y(3)
- MI BOUND p_first_stage_INC_delta(1)
- UP BOUND p_first_stage_INC_delta(1) 1
- FR BOUND p_first_stage_INC_delta(2)
- FR BOUND p_first_stage_INC_delta(3)
- LO BOUND p_first_stage_INC_delta(4) 0
- BV BOUND p_second_stage(1)_INC_bin_y(1)
- BV BOUND p_second_stage(1)_INC_bin_y(2)
- BV BOUND p_second_stage(1)_INC_bin_y(3)
- MI BOUND p_second_stage(1)_INC_delta(1)
- UP BOUND p_second_stage(1)_INC_delta(1) 1
- FR BOUND p_second_stage(1)_INC_delta(2)
- FR BOUND p_second_stage(1)_INC_delta(3)
- LO BOUND p_second_stage(1)_INC_delta(4) 0
- FR BOUND r
- LO BOUND z -10
- UP BOUND z 10
-ENDATA
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_symbolic_names_baseline/piecewise.row b/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_symbolic_names_baseline/piecewise.row
deleted file mode 100644
index 7722adaec3a..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_symbolic_names_baseline/piecewise.row
+++ /dev/null
@@ -1,22 +0,0 @@
-o
-c_l_c_first_stage_
-c_e_p_first_stage_INC_constraint1_
-c_e_p_first_stage_INC_constraint2_
-c_e_p_second_stage(1)_INC_constraint1_
-c_e_p_second_stage(1)_INC_constraint2_
-c_l_c_second_stage_
-c_u_p_first_stage_INC_constraint3(1)_
-c_u_p_first_stage_INC_constraint3(2)_
-c_u_p_first_stage_INC_constraint3(3)_
-c_u_p_first_stage_INC_constraint4(1)_
-c_u_p_first_stage_INC_constraint4(2)_
-c_u_p_first_stage_INC_constraint4(3)_
-c_u_p_second_stage(1)_INC_constraint3(1)_
-c_u_p_second_stage(1)_INC_constraint3(2)_
-c_u_p_second_stage(1)_INC_constraint3(3)_
-c_u_p_second_stage(1)_INC_constraint4(1)_
-c_u_p_second_stage(1)_INC_constraint4(2)_
-c_u_p_second_stage(1)_INC_constraint4(3)_
-r_l_r_second_stage_
-r_u_r_second_stage_
-c_e_ONE_VAR_CONSTANT
\ No newline at end of file
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_symbolic_names_baseline/piecewise.sto b/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_symbolic_names_baseline/piecewise.sto
deleted file mode 100644
index 4658be0cad2..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_symbolic_names_baseline/piecewise.sto
+++ /dev/null
@@ -1,114 +0,0 @@
-STOCH piecewise
-BLOCKS DISCRETE REPLACE
- BL BLOCK1 PERIOD2 0.33333333329999998
- RHS c_e_p_second_stage(1)_INC_constraint1_ -10
- RHS c_e_p_second_stage(1)_INC_constraint2_ 0
- RHS c_u_p_second_stage(1)_INC_constraint3(1)_ 0
- RHS c_u_p_second_stage(1)_INC_constraint3(2)_ 0
- RHS c_u_p_second_stage(1)_INC_constraint3(3)_ 0
- RHS c_u_p_second_stage(1)_INC_constraint4(1)_ 0
- RHS c_u_p_second_stage(1)_INC_constraint4(2)_ 0
- RHS c_u_p_second_stage(1)_INC_constraint4(3)_ 0
- RHS r_l_r_second_stage_ 0
- RHS r_u_r_second_stage_ 0
- r c_l_c_second_stage_ 0
- p_second_stage(1)_INC_delta(1) c_e_p_second_stage(1)_INC_constraint1_ -5
- p_second_stage(1)_INC_delta(2) c_e_p_second_stage(1)_INC_constraint1_ -5
- p_second_stage(1)_INC_delta(3) c_e_p_second_stage(1)_INC_constraint1_ -5
- p_second_stage(1)_INC_delta(4) c_e_p_second_stage(1)_INC_constraint1_ -5
- z c_e_p_second_stage(1)_INC_constraint1_ 1
- fz c_e_p_second_stage(1)_INC_constraint2_ 1
- p_second_stage(1)_INC_delta(2) c_e_p_second_stage(1)_INC_constraint2_ 1
- p_second_stage(1)_INC_delta(3) c_e_p_second_stage(1)_INC_constraint2_ -3
- p_second_stage(1)_INC_delta(4) c_e_p_second_stage(1)_INC_constraint2_ 1
- p_second_stage(1)_INC_bin_y(1) c_u_p_second_stage(1)_INC_constraint3(1)_ -1
- p_second_stage(1)_INC_delta(2) c_u_p_second_stage(1)_INC_constraint3(1)_ 1
- p_second_stage(1)_INC_bin_y(2) c_u_p_second_stage(1)_INC_constraint3(2)_ -1
- p_second_stage(1)_INC_delta(3) c_u_p_second_stage(1)_INC_constraint3(2)_ 1
- p_second_stage(1)_INC_bin_y(3) c_u_p_second_stage(1)_INC_constraint3(3)_ -1
- p_second_stage(1)_INC_delta(4) c_u_p_second_stage(1)_INC_constraint3(3)_ 1
- p_second_stage(1)_INC_bin_y(1) c_u_p_second_stage(1)_INC_constraint4(1)_ 1
- p_second_stage(1)_INC_delta(1) c_u_p_second_stage(1)_INC_constraint4(1)_ -1
- p_second_stage(1)_INC_bin_y(2) c_u_p_second_stage(1)_INC_constraint4(2)_ 1
- p_second_stage(1)_INC_delta(2) c_u_p_second_stage(1)_INC_constraint4(2)_ -1
- p_second_stage(1)_INC_bin_y(3) c_u_p_second_stage(1)_INC_constraint4(3)_ 1
- p_second_stage(1)_INC_delta(3) c_u_p_second_stage(1)_INC_constraint4(3)_ -1
- fx o 1
- fz o -1
- r o 1
- ONE_VAR_CONSTANT o 0
- BL BLOCK1 PERIOD2 0.33333333329999998
- RHS c_e_p_second_stage(1)_INC_constraint1_ -10
- RHS c_e_p_second_stage(1)_INC_constraint2_ 0
- RHS c_u_p_second_stage(1)_INC_constraint3(1)_ 0
- RHS c_u_p_second_stage(1)_INC_constraint3(2)_ 0
- RHS c_u_p_second_stage(1)_INC_constraint3(3)_ 0
- RHS c_u_p_second_stage(1)_INC_constraint4(1)_ 0
- RHS c_u_p_second_stage(1)_INC_constraint4(2)_ 0
- RHS c_u_p_second_stage(1)_INC_constraint4(3)_ 0
- RHS r_l_r_second_stage_ -1
- RHS r_u_r_second_stage_ 0
- r c_l_c_second_stage_ 1
- p_second_stage(1)_INC_delta(1) c_e_p_second_stage(1)_INC_constraint1_ -5
- p_second_stage(1)_INC_delta(2) c_e_p_second_stage(1)_INC_constraint1_ -5
- p_second_stage(1)_INC_delta(3) c_e_p_second_stage(1)_INC_constraint1_ -5
- p_second_stage(1)_INC_delta(4) c_e_p_second_stage(1)_INC_constraint1_ -5
- z c_e_p_second_stage(1)_INC_constraint1_ 1
- fz c_e_p_second_stage(1)_INC_constraint2_ 1
- p_second_stage(1)_INC_delta(2) c_e_p_second_stage(1)_INC_constraint2_ 1
- p_second_stage(1)_INC_delta(3) c_e_p_second_stage(1)_INC_constraint2_ -4
- p_second_stage(1)_INC_delta(4) c_e_p_second_stage(1)_INC_constraint2_ 2
- p_second_stage(1)_INC_bin_y(1) c_u_p_second_stage(1)_INC_constraint3(1)_ -1
- p_second_stage(1)_INC_delta(2) c_u_p_second_stage(1)_INC_constraint3(1)_ 1
- p_second_stage(1)_INC_bin_y(2) c_u_p_second_stage(1)_INC_constraint3(2)_ -1
- p_second_stage(1)_INC_delta(3) c_u_p_second_stage(1)_INC_constraint3(2)_ 1
- p_second_stage(1)_INC_bin_y(3) c_u_p_second_stage(1)_INC_constraint3(3)_ -1
- p_second_stage(1)_INC_delta(4) c_u_p_second_stage(1)_INC_constraint3(3)_ 1
- p_second_stage(1)_INC_bin_y(1) c_u_p_second_stage(1)_INC_constraint4(1)_ 1
- p_second_stage(1)_INC_delta(1) c_u_p_second_stage(1)_INC_constraint4(1)_ -1
- p_second_stage(1)_INC_bin_y(2) c_u_p_second_stage(1)_INC_constraint4(2)_ 1
- p_second_stage(1)_INC_delta(2) c_u_p_second_stage(1)_INC_constraint4(2)_ -1
- p_second_stage(1)_INC_bin_y(3) c_u_p_second_stage(1)_INC_constraint4(3)_ 1
- p_second_stage(1)_INC_delta(3) c_u_p_second_stage(1)_INC_constraint4(3)_ -1
- fx o 1
- fz o -1
- r o 1
- ONE_VAR_CONSTANT o -1
- BL BLOCK1 PERIOD2 0.33333333329999998
- RHS c_e_p_second_stage(1)_INC_constraint1_ -10
- RHS c_e_p_second_stage(1)_INC_constraint2_ 0
- RHS c_u_p_second_stage(1)_INC_constraint3(1)_ 0
- RHS c_u_p_second_stage(1)_INC_constraint3(2)_ 0
- RHS c_u_p_second_stage(1)_INC_constraint3(3)_ 0
- RHS c_u_p_second_stage(1)_INC_constraint4(1)_ 0
- RHS c_u_p_second_stage(1)_INC_constraint4(2)_ 0
- RHS c_u_p_second_stage(1)_INC_constraint4(3)_ 0
- RHS r_l_r_second_stage_ -2
- RHS r_u_r_second_stage_ 0
- r c_l_c_second_stage_ 2
- p_second_stage(1)_INC_delta(1) c_e_p_second_stage(1)_INC_constraint1_ -5
- p_second_stage(1)_INC_delta(2) c_e_p_second_stage(1)_INC_constraint1_ -5
- p_second_stage(1)_INC_delta(3) c_e_p_second_stage(1)_INC_constraint1_ -5
- p_second_stage(1)_INC_delta(4) c_e_p_second_stage(1)_INC_constraint1_ -5
- z c_e_p_second_stage(1)_INC_constraint1_ 1
- fz c_e_p_second_stage(1)_INC_constraint2_ 1
- p_second_stage(1)_INC_delta(2) c_e_p_second_stage(1)_INC_constraint2_ 1
- p_second_stage(1)_INC_delta(3) c_e_p_second_stage(1)_INC_constraint2_ -5
- p_second_stage(1)_INC_delta(4) c_e_p_second_stage(1)_INC_constraint2_ 3
- p_second_stage(1)_INC_bin_y(1) c_u_p_second_stage(1)_INC_constraint3(1)_ -1
- p_second_stage(1)_INC_delta(2) c_u_p_second_stage(1)_INC_constraint3(1)_ 1
- p_second_stage(1)_INC_bin_y(2) c_u_p_second_stage(1)_INC_constraint3(2)_ -1
- p_second_stage(1)_INC_delta(3) c_u_p_second_stage(1)_INC_constraint3(2)_ 1
- p_second_stage(1)_INC_bin_y(3) c_u_p_second_stage(1)_INC_constraint3(3)_ -1
- p_second_stage(1)_INC_delta(4) c_u_p_second_stage(1)_INC_constraint3(3)_ 1
- p_second_stage(1)_INC_bin_y(1) c_u_p_second_stage(1)_INC_constraint4(1)_ 1
- p_second_stage(1)_INC_delta(1) c_u_p_second_stage(1)_INC_constraint4(1)_ -1
- p_second_stage(1)_INC_bin_y(2) c_u_p_second_stage(1)_INC_constraint4(2)_ 1
- p_second_stage(1)_INC_delta(2) c_u_p_second_stage(1)_INC_constraint4(2)_ -1
- p_second_stage(1)_INC_bin_y(3) c_u_p_second_stage(1)_INC_constraint4(3)_ 1
- p_second_stage(1)_INC_delta(3) c_u_p_second_stage(1)_INC_constraint4(3)_ -1
- fx o 1
- fz o -1
- r o 1
- ONE_VAR_CONSTANT o -2
-ENDATA
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_symbolic_names_baseline/piecewise.sto.struct b/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_symbolic_names_baseline/piecewise.sto.struct
deleted file mode 100644
index 92b231fef93..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_symbolic_names_baseline/piecewise.sto.struct
+++ /dev/null
@@ -1,36 +0,0 @@
-RHS c_e_p_second_stage(1)_INC_constraint1_
-RHS c_e_p_second_stage(1)_INC_constraint2_
-RHS c_u_p_second_stage(1)_INC_constraint3(1)_
-RHS c_u_p_second_stage(1)_INC_constraint3(2)_
-RHS c_u_p_second_stage(1)_INC_constraint3(3)_
-RHS c_u_p_second_stage(1)_INC_constraint4(1)_
-RHS c_u_p_second_stage(1)_INC_constraint4(2)_
-RHS c_u_p_second_stage(1)_INC_constraint4(3)_
-RHS r_l_r_second_stage_
-RHS r_u_r_second_stage_
-r c_l_c_second_stage_
-p_second_stage(1)_INC_delta(1) c_e_p_second_stage(1)_INC_constraint1_
-p_second_stage(1)_INC_delta(2) c_e_p_second_stage(1)_INC_constraint1_
-p_second_stage(1)_INC_delta(3) c_e_p_second_stage(1)_INC_constraint1_
-p_second_stage(1)_INC_delta(4) c_e_p_second_stage(1)_INC_constraint1_
-z c_e_p_second_stage(1)_INC_constraint1_
-fz c_e_p_second_stage(1)_INC_constraint2_
-p_second_stage(1)_INC_delta(2) c_e_p_second_stage(1)_INC_constraint2_
-p_second_stage(1)_INC_delta(3) c_e_p_second_stage(1)_INC_constraint2_
-p_second_stage(1)_INC_delta(4) c_e_p_second_stage(1)_INC_constraint2_
-p_second_stage(1)_INC_bin_y(1) c_u_p_second_stage(1)_INC_constraint3(1)_
-p_second_stage(1)_INC_delta(2) c_u_p_second_stage(1)_INC_constraint3(1)_
-p_second_stage(1)_INC_bin_y(2) c_u_p_second_stage(1)_INC_constraint3(2)_
-p_second_stage(1)_INC_delta(3) c_u_p_second_stage(1)_INC_constraint3(2)_
-p_second_stage(1)_INC_bin_y(3) c_u_p_second_stage(1)_INC_constraint3(3)_
-p_second_stage(1)_INC_delta(4) c_u_p_second_stage(1)_INC_constraint3(3)_
-p_second_stage(1)_INC_bin_y(1) c_u_p_second_stage(1)_INC_constraint4(1)_
-p_second_stage(1)_INC_delta(1) c_u_p_second_stage(1)_INC_constraint4(1)_
-p_second_stage(1)_INC_bin_y(2) c_u_p_second_stage(1)_INC_constraint4(2)_
-p_second_stage(1)_INC_delta(2) c_u_p_second_stage(1)_INC_constraint4(2)_
-p_second_stage(1)_INC_bin_y(3) c_u_p_second_stage(1)_INC_constraint4(3)_
-p_second_stage(1)_INC_delta(3) c_u_p_second_stage(1)_INC_constraint4(3)_
-fx o
-fz o
-r o
-ONE_VAR_CONSTANT o
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_symbolic_names_baseline/piecewise.tim b/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_symbolic_names_baseline/piecewise.tim
deleted file mode 100644
index 4f8757d24bf..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_symbolic_names_baseline/piecewise.tim
+++ /dev/null
@@ -1,5 +0,0 @@
-TIME piecewise
-PERIODS IMPLICIT
- x o TIME1
- fx c_e_p_first_stage_INC_constraint1_ TIME2
-ENDATA
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_symbolic_names_baseline/scenario_files/piecewise.col.Scenario1 b/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_symbolic_names_baseline/scenario_files/piecewise.col.Scenario1
deleted file mode 100644
index ddc4c751581..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_symbolic_names_baseline/scenario_files/piecewise.col.Scenario1
+++ /dev/null
@@ -1,20 +0,0 @@
-x
-fx
-fz
-p_first_stage_INC_bin_y(1)
-p_first_stage_INC_bin_y(2)
-p_first_stage_INC_bin_y(3)
-p_first_stage_INC_delta(1)
-p_first_stage_INC_delta(2)
-p_first_stage_INC_delta(3)
-p_first_stage_INC_delta(4)
-p_second_stage(1)_INC_bin_y(1)
-p_second_stage(1)_INC_bin_y(2)
-p_second_stage(1)_INC_bin_y(3)
-p_second_stage(1)_INC_delta(1)
-p_second_stage(1)_INC_delta(2)
-p_second_stage(1)_INC_delta(3)
-p_second_stage(1)_INC_delta(4)
-r
-z
-ONE_VAR_CONSTANT
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_symbolic_names_baseline/scenario_files/piecewise.col.Scenario2 b/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_symbolic_names_baseline/scenario_files/piecewise.col.Scenario2
deleted file mode 100644
index ddc4c751581..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_symbolic_names_baseline/scenario_files/piecewise.col.Scenario2
+++ /dev/null
@@ -1,20 +0,0 @@
-x
-fx
-fz
-p_first_stage_INC_bin_y(1)
-p_first_stage_INC_bin_y(2)
-p_first_stage_INC_bin_y(3)
-p_first_stage_INC_delta(1)
-p_first_stage_INC_delta(2)
-p_first_stage_INC_delta(3)
-p_first_stage_INC_delta(4)
-p_second_stage(1)_INC_bin_y(1)
-p_second_stage(1)_INC_bin_y(2)
-p_second_stage(1)_INC_bin_y(3)
-p_second_stage(1)_INC_delta(1)
-p_second_stage(1)_INC_delta(2)
-p_second_stage(1)_INC_delta(3)
-p_second_stage(1)_INC_delta(4)
-r
-z
-ONE_VAR_CONSTANT
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_symbolic_names_baseline/scenario_files/piecewise.col.Scenario3 b/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_symbolic_names_baseline/scenario_files/piecewise.col.Scenario3
deleted file mode 100644
index ddc4c751581..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_symbolic_names_baseline/scenario_files/piecewise.col.Scenario3
+++ /dev/null
@@ -1,20 +0,0 @@
-x
-fx
-fz
-p_first_stage_INC_bin_y(1)
-p_first_stage_INC_bin_y(2)
-p_first_stage_INC_bin_y(3)
-p_first_stage_INC_delta(1)
-p_first_stage_INC_delta(2)
-p_first_stage_INC_delta(3)
-p_first_stage_INC_delta(4)
-p_second_stage(1)_INC_bin_y(1)
-p_second_stage(1)_INC_bin_y(2)
-p_second_stage(1)_INC_bin_y(3)
-p_second_stage(1)_INC_delta(1)
-p_second_stage(1)_INC_delta(2)
-p_second_stage(1)_INC_delta(3)
-p_second_stage(1)_INC_delta(4)
-r
-z
-ONE_VAR_CONSTANT
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_symbolic_names_baseline/scenario_files/piecewise.mps.Scenario1 b/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_symbolic_names_baseline/scenario_files/piecewise.mps.Scenario1
deleted file mode 100644
index 23fafc1fb87..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_symbolic_names_baseline/scenario_files/piecewise.mps.Scenario1
+++ /dev/null
@@ -1,128 +0,0 @@
-* Source: Pyomo MPS Writer
-* Format: Free MPS
-*
-NAME Scenario1
-OBJSENSE
- MIN
-ROWS
- N o
- G c_l_c_first_stage_
- E c_e_p_first_stage_INC_constraint1_
- E c_e_p_first_stage_INC_constraint2_
- E c_e_p_second_stage(1)_INC_constraint1_
- E c_e_p_second_stage(1)_INC_constraint2_
- G c_l_c_second_stage_
- L c_u_p_first_stage_INC_constraint3(1)_
- L c_u_p_first_stage_INC_constraint3(2)_
- L c_u_p_first_stage_INC_constraint3(3)_
- L c_u_p_first_stage_INC_constraint4(1)_
- L c_u_p_first_stage_INC_constraint4(2)_
- L c_u_p_first_stage_INC_constraint4(3)_
- L c_u_p_second_stage(1)_INC_constraint3(1)_
- L c_u_p_second_stage(1)_INC_constraint3(2)_
- L c_u_p_second_stage(1)_INC_constraint3(3)_
- L c_u_p_second_stage(1)_INC_constraint4(1)_
- L c_u_p_second_stage(1)_INC_constraint4(2)_
- L c_u_p_second_stage(1)_INC_constraint4(3)_
- G r_l_r_second_stage_
- L r_u_r_second_stage_
- E c_e_ONE_VAR_CONSTANT
-COLUMNS
- x c_l_c_first_stage_ 1
- x c_e_p_first_stage_INC_constraint1_ 1
- x c_l_c_second_stage_ 1
- fx o 1
- fx c_e_p_first_stage_INC_constraint2_ 1
- fz o -1
- fz c_e_p_second_stage(1)_INC_constraint2_ 1
- p_first_stage_INC_bin_y(1) c_u_p_first_stage_INC_constraint3(1)_ -1
- p_first_stage_INC_bin_y(1) c_u_p_first_stage_INC_constraint4(1)_ 1
- p_first_stage_INC_bin_y(2) c_u_p_first_stage_INC_constraint3(2)_ -1
- p_first_stage_INC_bin_y(2) c_u_p_first_stage_INC_constraint4(2)_ 1
- p_first_stage_INC_bin_y(3) c_u_p_first_stage_INC_constraint3(3)_ -1
- p_first_stage_INC_bin_y(3) c_u_p_first_stage_INC_constraint4(3)_ 1
- p_first_stage_INC_delta(1) c_e_p_first_stage_INC_constraint1_ -2
- p_first_stage_INC_delta(1) c_u_p_first_stage_INC_constraint4(1)_ -1
- p_first_stage_INC_delta(2) c_e_p_first_stage_INC_constraint1_ -3
- p_first_stage_INC_delta(2) c_e_p_first_stage_INC_constraint2_ 1
- p_first_stage_INC_delta(2) c_u_p_first_stage_INC_constraint3(1)_ 1
- p_first_stage_INC_delta(2) c_u_p_first_stage_INC_constraint4(2)_ -1
- p_first_stage_INC_delta(3) c_e_p_first_stage_INC_constraint1_ -2
- p_first_stage_INC_delta(3) c_e_p_first_stage_INC_constraint2_ -1
- p_first_stage_INC_delta(3) c_u_p_first_stage_INC_constraint3(2)_ 1
- p_first_stage_INC_delta(3) c_u_p_first_stage_INC_constraint4(3)_ -1
- p_first_stage_INC_delta(4) c_e_p_first_stage_INC_constraint1_ -3
- p_first_stage_INC_delta(4) c_u_p_first_stage_INC_constraint3(3)_ 1
- p_second_stage(1)_INC_bin_y(1) c_u_p_second_stage(1)_INC_constraint3(1)_ -1
- p_second_stage(1)_INC_bin_y(1) c_u_p_second_stage(1)_INC_constraint4(1)_ 1
- p_second_stage(1)_INC_bin_y(2) c_u_p_second_stage(1)_INC_constraint3(2)_ -1
- p_second_stage(1)_INC_bin_y(2) c_u_p_second_stage(1)_INC_constraint4(2)_ 1
- p_second_stage(1)_INC_bin_y(3) c_u_p_second_stage(1)_INC_constraint3(3)_ -1
- p_second_stage(1)_INC_bin_y(3) c_u_p_second_stage(1)_INC_constraint4(3)_ 1
- p_second_stage(1)_INC_delta(1) c_e_p_second_stage(1)_INC_constraint1_ -5
- p_second_stage(1)_INC_delta(1) c_u_p_second_stage(1)_INC_constraint4(1)_ -1
- p_second_stage(1)_INC_delta(2) c_e_p_second_stage(1)_INC_constraint1_ -5
- p_second_stage(1)_INC_delta(2) c_e_p_second_stage(1)_INC_constraint2_ 1
- p_second_stage(1)_INC_delta(2) c_u_p_second_stage(1)_INC_constraint3(1)_ 1
- p_second_stage(1)_INC_delta(2) c_u_p_second_stage(1)_INC_constraint4(2)_ -1
- p_second_stage(1)_INC_delta(3) c_e_p_second_stage(1)_INC_constraint1_ -5
- p_second_stage(1)_INC_delta(3) c_e_p_second_stage(1)_INC_constraint2_ -3
- p_second_stage(1)_INC_delta(3) c_u_p_second_stage(1)_INC_constraint3(2)_ 1
- p_second_stage(1)_INC_delta(3) c_u_p_second_stage(1)_INC_constraint4(3)_ -1
- p_second_stage(1)_INC_delta(4) c_e_p_second_stage(1)_INC_constraint1_ -5
- p_second_stage(1)_INC_delta(4) c_e_p_second_stage(1)_INC_constraint2_ 1
- p_second_stage(1)_INC_delta(4) c_u_p_second_stage(1)_INC_constraint3(3)_ 1
- r o 1
- r c_l_c_second_stage_ 0
- r r_l_r_second_stage_ 1
- r r_u_r_second_stage_ 1
- z c_e_p_second_stage(1)_INC_constraint1_ 1
- ONE_VAR_CONSTANT o 0
- ONE_VAR_CONSTANT c_e_ONE_VAR_CONSTANT 1
-RHS
- RHS c_l_c_first_stage_ 0
- RHS c_e_p_first_stage_INC_constraint1_ 0
- RHS c_e_p_first_stage_INC_constraint2_ 10
- RHS c_e_p_second_stage(1)_INC_constraint1_ -10
- RHS c_e_p_second_stage(1)_INC_constraint2_ 0
- RHS c_l_c_second_stage_ -100
- RHS c_u_p_first_stage_INC_constraint3(1)_ 0
- RHS c_u_p_first_stage_INC_constraint3(2)_ 0
- RHS c_u_p_first_stage_INC_constraint3(3)_ 0
- RHS c_u_p_first_stage_INC_constraint4(1)_ 0
- RHS c_u_p_first_stage_INC_constraint4(2)_ 0
- RHS c_u_p_first_stage_INC_constraint4(3)_ 0
- RHS c_u_p_second_stage(1)_INC_constraint3(1)_ 0
- RHS c_u_p_second_stage(1)_INC_constraint3(2)_ 0
- RHS c_u_p_second_stage(1)_INC_constraint3(3)_ 0
- RHS c_u_p_second_stage(1)_INC_constraint4(1)_ 0
- RHS c_u_p_second_stage(1)_INC_constraint4(2)_ 0
- RHS c_u_p_second_stage(1)_INC_constraint4(3)_ 0
- RHS r_l_r_second_stage_ 0
- RHS r_u_r_second_stage_ 0
- RHS c_e_ONE_VAR_CONSTANT 1
-BOUNDS
- LO BOUND x 0
- UP BOUND x 10
- FR BOUND fx
- FR BOUND fz
- BV BOUND p_first_stage_INC_bin_y(1)
- BV BOUND p_first_stage_INC_bin_y(2)
- BV BOUND p_first_stage_INC_bin_y(3)
- MI BOUND p_first_stage_INC_delta(1)
- UP BOUND p_first_stage_INC_delta(1) 1
- FR BOUND p_first_stage_INC_delta(2)
- FR BOUND p_first_stage_INC_delta(3)
- LO BOUND p_first_stage_INC_delta(4) 0
- BV BOUND p_second_stage(1)_INC_bin_y(1)
- BV BOUND p_second_stage(1)_INC_bin_y(2)
- BV BOUND p_second_stage(1)_INC_bin_y(3)
- MI BOUND p_second_stage(1)_INC_delta(1)
- UP BOUND p_second_stage(1)_INC_delta(1) 1
- FR BOUND p_second_stage(1)_INC_delta(2)
- FR BOUND p_second_stage(1)_INC_delta(3)
- LO BOUND p_second_stage(1)_INC_delta(4) 0
- FR BOUND r
- LO BOUND z -10
- UP BOUND z 10
-ENDATA
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_symbolic_names_baseline/scenario_files/piecewise.mps.Scenario2 b/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_symbolic_names_baseline/scenario_files/piecewise.mps.Scenario2
deleted file mode 100644
index ef2a1cabb28..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_symbolic_names_baseline/scenario_files/piecewise.mps.Scenario2
+++ /dev/null
@@ -1,128 +0,0 @@
-* Source: Pyomo MPS Writer
-* Format: Free MPS
-*
-NAME Scenario2
-OBJSENSE
- MIN
-ROWS
- N o
- G c_l_c_first_stage_
- E c_e_p_first_stage_INC_constraint1_
- E c_e_p_first_stage_INC_constraint2_
- E c_e_p_second_stage(1)_INC_constraint1_
- E c_e_p_second_stage(1)_INC_constraint2_
- G c_l_c_second_stage_
- L c_u_p_first_stage_INC_constraint3(1)_
- L c_u_p_first_stage_INC_constraint3(2)_
- L c_u_p_first_stage_INC_constraint3(3)_
- L c_u_p_first_stage_INC_constraint4(1)_
- L c_u_p_first_stage_INC_constraint4(2)_
- L c_u_p_first_stage_INC_constraint4(3)_
- L c_u_p_second_stage(1)_INC_constraint3(1)_
- L c_u_p_second_stage(1)_INC_constraint3(2)_
- L c_u_p_second_stage(1)_INC_constraint3(3)_
- L c_u_p_second_stage(1)_INC_constraint4(1)_
- L c_u_p_second_stage(1)_INC_constraint4(2)_
- L c_u_p_second_stage(1)_INC_constraint4(3)_
- G r_l_r_second_stage_
- L r_u_r_second_stage_
- E c_e_ONE_VAR_CONSTANT
-COLUMNS
- x c_l_c_first_stage_ 1
- x c_e_p_first_stage_INC_constraint1_ 1
- x c_l_c_second_stage_ 1
- fx o 1
- fx c_e_p_first_stage_INC_constraint2_ 1
- fz o -1
- fz c_e_p_second_stage(1)_INC_constraint2_ 1
- p_first_stage_INC_bin_y(1) c_u_p_first_stage_INC_constraint3(1)_ -1
- p_first_stage_INC_bin_y(1) c_u_p_first_stage_INC_constraint4(1)_ 1
- p_first_stage_INC_bin_y(2) c_u_p_first_stage_INC_constraint3(2)_ -1
- p_first_stage_INC_bin_y(2) c_u_p_first_stage_INC_constraint4(2)_ 1
- p_first_stage_INC_bin_y(3) c_u_p_first_stage_INC_constraint3(3)_ -1
- p_first_stage_INC_bin_y(3) c_u_p_first_stage_INC_constraint4(3)_ 1
- p_first_stage_INC_delta(1) c_e_p_first_stage_INC_constraint1_ -2
- p_first_stage_INC_delta(1) c_u_p_first_stage_INC_constraint4(1)_ -1
- p_first_stage_INC_delta(2) c_e_p_first_stage_INC_constraint1_ -3
- p_first_stage_INC_delta(2) c_e_p_first_stage_INC_constraint2_ 1
- p_first_stage_INC_delta(2) c_u_p_first_stage_INC_constraint3(1)_ 1
- p_first_stage_INC_delta(2) c_u_p_first_stage_INC_constraint4(2)_ -1
- p_first_stage_INC_delta(3) c_e_p_first_stage_INC_constraint1_ -2
- p_first_stage_INC_delta(3) c_e_p_first_stage_INC_constraint2_ -1
- p_first_stage_INC_delta(3) c_u_p_first_stage_INC_constraint3(2)_ 1
- p_first_stage_INC_delta(3) c_u_p_first_stage_INC_constraint4(3)_ -1
- p_first_stage_INC_delta(4) c_e_p_first_stage_INC_constraint1_ -3
- p_first_stage_INC_delta(4) c_u_p_first_stage_INC_constraint3(3)_ 1
- p_second_stage(1)_INC_bin_y(1) c_u_p_second_stage(1)_INC_constraint3(1)_ -1
- p_second_stage(1)_INC_bin_y(1) c_u_p_second_stage(1)_INC_constraint4(1)_ 1
- p_second_stage(1)_INC_bin_y(2) c_u_p_second_stage(1)_INC_constraint3(2)_ -1
- p_second_stage(1)_INC_bin_y(2) c_u_p_second_stage(1)_INC_constraint4(2)_ 1
- p_second_stage(1)_INC_bin_y(3) c_u_p_second_stage(1)_INC_constraint3(3)_ -1
- p_second_stage(1)_INC_bin_y(3) c_u_p_second_stage(1)_INC_constraint4(3)_ 1
- p_second_stage(1)_INC_delta(1) c_e_p_second_stage(1)_INC_constraint1_ -5
- p_second_stage(1)_INC_delta(1) c_u_p_second_stage(1)_INC_constraint4(1)_ -1
- p_second_stage(1)_INC_delta(2) c_e_p_second_stage(1)_INC_constraint1_ -5
- p_second_stage(1)_INC_delta(2) c_e_p_second_stage(1)_INC_constraint2_ 1
- p_second_stage(1)_INC_delta(2) c_u_p_second_stage(1)_INC_constraint3(1)_ 1
- p_second_stage(1)_INC_delta(2) c_u_p_second_stage(1)_INC_constraint4(2)_ -1
- p_second_stage(1)_INC_delta(3) c_e_p_second_stage(1)_INC_constraint1_ -5
- p_second_stage(1)_INC_delta(3) c_e_p_second_stage(1)_INC_constraint2_ -4
- p_second_stage(1)_INC_delta(3) c_u_p_second_stage(1)_INC_constraint3(2)_ 1
- p_second_stage(1)_INC_delta(3) c_u_p_second_stage(1)_INC_constraint4(3)_ -1
- p_second_stage(1)_INC_delta(4) c_e_p_second_stage(1)_INC_constraint1_ -5
- p_second_stage(1)_INC_delta(4) c_e_p_second_stage(1)_INC_constraint2_ 2
- p_second_stage(1)_INC_delta(4) c_u_p_second_stage(1)_INC_constraint3(3)_ 1
- r o 1
- r c_l_c_second_stage_ 1
- r r_l_r_second_stage_ 1
- r r_u_r_second_stage_ 1
- z c_e_p_second_stage(1)_INC_constraint1_ 1
- ONE_VAR_CONSTANT o -1
- ONE_VAR_CONSTANT c_e_ONE_VAR_CONSTANT 1
-RHS
- RHS c_l_c_first_stage_ 0
- RHS c_e_p_first_stage_INC_constraint1_ 0
- RHS c_e_p_first_stage_INC_constraint2_ 10
- RHS c_e_p_second_stage(1)_INC_constraint1_ -10
- RHS c_e_p_second_stage(1)_INC_constraint2_ 0
- RHS c_l_c_second_stage_ -100
- RHS c_u_p_first_stage_INC_constraint3(1)_ 0
- RHS c_u_p_first_stage_INC_constraint3(2)_ 0
- RHS c_u_p_first_stage_INC_constraint3(3)_ 0
- RHS c_u_p_first_stage_INC_constraint4(1)_ 0
- RHS c_u_p_first_stage_INC_constraint4(2)_ 0
- RHS c_u_p_first_stage_INC_constraint4(3)_ 0
- RHS c_u_p_second_stage(1)_INC_constraint3(1)_ 0
- RHS c_u_p_second_stage(1)_INC_constraint3(2)_ 0
- RHS c_u_p_second_stage(1)_INC_constraint3(3)_ 0
- RHS c_u_p_second_stage(1)_INC_constraint4(1)_ 0
- RHS c_u_p_second_stage(1)_INC_constraint4(2)_ 0
- RHS c_u_p_second_stage(1)_INC_constraint4(3)_ 0
- RHS r_l_r_second_stage_ -1
- RHS r_u_r_second_stage_ 0
- RHS c_e_ONE_VAR_CONSTANT 1
-BOUNDS
- LO BOUND x 0
- UP BOUND x 10
- FR BOUND fx
- FR BOUND fz
- BV BOUND p_first_stage_INC_bin_y(1)
- BV BOUND p_first_stage_INC_bin_y(2)
- BV BOUND p_first_stage_INC_bin_y(3)
- MI BOUND p_first_stage_INC_delta(1)
- UP BOUND p_first_stage_INC_delta(1) 1
- FR BOUND p_first_stage_INC_delta(2)
- FR BOUND p_first_stage_INC_delta(3)
- LO BOUND p_first_stage_INC_delta(4) 0
- BV BOUND p_second_stage(1)_INC_bin_y(1)
- BV BOUND p_second_stage(1)_INC_bin_y(2)
- BV BOUND p_second_stage(1)_INC_bin_y(3)
- MI BOUND p_second_stage(1)_INC_delta(1)
- UP BOUND p_second_stage(1)_INC_delta(1) 1
- FR BOUND p_second_stage(1)_INC_delta(2)
- FR BOUND p_second_stage(1)_INC_delta(3)
- LO BOUND p_second_stage(1)_INC_delta(4) 0
- FR BOUND r
- LO BOUND z -10
- UP BOUND z 10
-ENDATA
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_symbolic_names_baseline/scenario_files/piecewise.mps.Scenario3 b/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_symbolic_names_baseline/scenario_files/piecewise.mps.Scenario3
deleted file mode 100644
index 74d09f9a90e..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_symbolic_names_baseline/scenario_files/piecewise.mps.Scenario3
+++ /dev/null
@@ -1,128 +0,0 @@
-* Source: Pyomo MPS Writer
-* Format: Free MPS
-*
-NAME Scenario3
-OBJSENSE
- MIN
-ROWS
- N o
- G c_l_c_first_stage_
- E c_e_p_first_stage_INC_constraint1_
- E c_e_p_first_stage_INC_constraint2_
- E c_e_p_second_stage(1)_INC_constraint1_
- E c_e_p_second_stage(1)_INC_constraint2_
- G c_l_c_second_stage_
- L c_u_p_first_stage_INC_constraint3(1)_
- L c_u_p_first_stage_INC_constraint3(2)_
- L c_u_p_first_stage_INC_constraint3(3)_
- L c_u_p_first_stage_INC_constraint4(1)_
- L c_u_p_first_stage_INC_constraint4(2)_
- L c_u_p_first_stage_INC_constraint4(3)_
- L c_u_p_second_stage(1)_INC_constraint3(1)_
- L c_u_p_second_stage(1)_INC_constraint3(2)_
- L c_u_p_second_stage(1)_INC_constraint3(3)_
- L c_u_p_second_stage(1)_INC_constraint4(1)_
- L c_u_p_second_stage(1)_INC_constraint4(2)_
- L c_u_p_second_stage(1)_INC_constraint4(3)_
- G r_l_r_second_stage_
- L r_u_r_second_stage_
- E c_e_ONE_VAR_CONSTANT
-COLUMNS
- x c_l_c_first_stage_ 1
- x c_e_p_first_stage_INC_constraint1_ 1
- x c_l_c_second_stage_ 1
- fx o 1
- fx c_e_p_first_stage_INC_constraint2_ 1
- fz o -1
- fz c_e_p_second_stage(1)_INC_constraint2_ 1
- p_first_stage_INC_bin_y(1) c_u_p_first_stage_INC_constraint3(1)_ -1
- p_first_stage_INC_bin_y(1) c_u_p_first_stage_INC_constraint4(1)_ 1
- p_first_stage_INC_bin_y(2) c_u_p_first_stage_INC_constraint3(2)_ -1
- p_first_stage_INC_bin_y(2) c_u_p_first_stage_INC_constraint4(2)_ 1
- p_first_stage_INC_bin_y(3) c_u_p_first_stage_INC_constraint3(3)_ -1
- p_first_stage_INC_bin_y(3) c_u_p_first_stage_INC_constraint4(3)_ 1
- p_first_stage_INC_delta(1) c_e_p_first_stage_INC_constraint1_ -2
- p_first_stage_INC_delta(1) c_u_p_first_stage_INC_constraint4(1)_ -1
- p_first_stage_INC_delta(2) c_e_p_first_stage_INC_constraint1_ -3
- p_first_stage_INC_delta(2) c_e_p_first_stage_INC_constraint2_ 1
- p_first_stage_INC_delta(2) c_u_p_first_stage_INC_constraint3(1)_ 1
- p_first_stage_INC_delta(2) c_u_p_first_stage_INC_constraint4(2)_ -1
- p_first_stage_INC_delta(3) c_e_p_first_stage_INC_constraint1_ -2
- p_first_stage_INC_delta(3) c_e_p_first_stage_INC_constraint2_ -1
- p_first_stage_INC_delta(3) c_u_p_first_stage_INC_constraint3(2)_ 1
- p_first_stage_INC_delta(3) c_u_p_first_stage_INC_constraint4(3)_ -1
- p_first_stage_INC_delta(4) c_e_p_first_stage_INC_constraint1_ -3
- p_first_stage_INC_delta(4) c_u_p_first_stage_INC_constraint3(3)_ 1
- p_second_stage(1)_INC_bin_y(1) c_u_p_second_stage(1)_INC_constraint3(1)_ -1
- p_second_stage(1)_INC_bin_y(1) c_u_p_second_stage(1)_INC_constraint4(1)_ 1
- p_second_stage(1)_INC_bin_y(2) c_u_p_second_stage(1)_INC_constraint3(2)_ -1
- p_second_stage(1)_INC_bin_y(2) c_u_p_second_stage(1)_INC_constraint4(2)_ 1
- p_second_stage(1)_INC_bin_y(3) c_u_p_second_stage(1)_INC_constraint3(3)_ -1
- p_second_stage(1)_INC_bin_y(3) c_u_p_second_stage(1)_INC_constraint4(3)_ 1
- p_second_stage(1)_INC_delta(1) c_e_p_second_stage(1)_INC_constraint1_ -5
- p_second_stage(1)_INC_delta(1) c_u_p_second_stage(1)_INC_constraint4(1)_ -1
- p_second_stage(1)_INC_delta(2) c_e_p_second_stage(1)_INC_constraint1_ -5
- p_second_stage(1)_INC_delta(2) c_e_p_second_stage(1)_INC_constraint2_ 1
- p_second_stage(1)_INC_delta(2) c_u_p_second_stage(1)_INC_constraint3(1)_ 1
- p_second_stage(1)_INC_delta(2) c_u_p_second_stage(1)_INC_constraint4(2)_ -1
- p_second_stage(1)_INC_delta(3) c_e_p_second_stage(1)_INC_constraint1_ -5
- p_second_stage(1)_INC_delta(3) c_e_p_second_stage(1)_INC_constraint2_ -5
- p_second_stage(1)_INC_delta(3) c_u_p_second_stage(1)_INC_constraint3(2)_ 1
- p_second_stage(1)_INC_delta(3) c_u_p_second_stage(1)_INC_constraint4(3)_ -1
- p_second_stage(1)_INC_delta(4) c_e_p_second_stage(1)_INC_constraint1_ -5
- p_second_stage(1)_INC_delta(4) c_e_p_second_stage(1)_INC_constraint2_ 3
- p_second_stage(1)_INC_delta(4) c_u_p_second_stage(1)_INC_constraint3(3)_ 1
- r o 1
- r c_l_c_second_stage_ 2
- r r_l_r_second_stage_ 1
- r r_u_r_second_stage_ 1
- z c_e_p_second_stage(1)_INC_constraint1_ 1
- ONE_VAR_CONSTANT o -2
- ONE_VAR_CONSTANT c_e_ONE_VAR_CONSTANT 1
-RHS
- RHS c_l_c_first_stage_ 0
- RHS c_e_p_first_stage_INC_constraint1_ 0
- RHS c_e_p_first_stage_INC_constraint2_ 10
- RHS c_e_p_second_stage(1)_INC_constraint1_ -10
- RHS c_e_p_second_stage(1)_INC_constraint2_ 0
- RHS c_l_c_second_stage_ -100
- RHS c_u_p_first_stage_INC_constraint3(1)_ 0
- RHS c_u_p_first_stage_INC_constraint3(2)_ 0
- RHS c_u_p_first_stage_INC_constraint3(3)_ 0
- RHS c_u_p_first_stage_INC_constraint4(1)_ 0
- RHS c_u_p_first_stage_INC_constraint4(2)_ 0
- RHS c_u_p_first_stage_INC_constraint4(3)_ 0
- RHS c_u_p_second_stage(1)_INC_constraint3(1)_ 0
- RHS c_u_p_second_stage(1)_INC_constraint3(2)_ 0
- RHS c_u_p_second_stage(1)_INC_constraint3(3)_ 0
- RHS c_u_p_second_stage(1)_INC_constraint4(1)_ 0
- RHS c_u_p_second_stage(1)_INC_constraint4(2)_ 0
- RHS c_u_p_second_stage(1)_INC_constraint4(3)_ 0
- RHS r_l_r_second_stage_ -2
- RHS r_u_r_second_stage_ 0
- RHS c_e_ONE_VAR_CONSTANT 1
-BOUNDS
- LO BOUND x 0
- UP BOUND x 10
- FR BOUND fx
- FR BOUND fz
- BV BOUND p_first_stage_INC_bin_y(1)
- BV BOUND p_first_stage_INC_bin_y(2)
- BV BOUND p_first_stage_INC_bin_y(3)
- MI BOUND p_first_stage_INC_delta(1)
- UP BOUND p_first_stage_INC_delta(1) 1
- FR BOUND p_first_stage_INC_delta(2)
- FR BOUND p_first_stage_INC_delta(3)
- LO BOUND p_first_stage_INC_delta(4) 0
- BV BOUND p_second_stage(1)_INC_bin_y(1)
- BV BOUND p_second_stage(1)_INC_bin_y(2)
- BV BOUND p_second_stage(1)_INC_bin_y(3)
- MI BOUND p_second_stage(1)_INC_delta(1)
- UP BOUND p_second_stage(1)_INC_delta(1) 1
- FR BOUND p_second_stage(1)_INC_delta(2)
- FR BOUND p_second_stage(1)_INC_delta(3)
- LO BOUND p_second_stage(1)_INC_delta(4) 0
- FR BOUND r
- LO BOUND z -10
- UP BOUND z 10
-ENDATA
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_symbolic_names_baseline/scenario_files/piecewise.mps.det.Scenario1 b/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_symbolic_names_baseline/scenario_files/piecewise.mps.det.Scenario1
deleted file mode 100644
index 1be13847f4a..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_symbolic_names_baseline/scenario_files/piecewise.mps.det.Scenario1
+++ /dev/null
@@ -1,128 +0,0 @@
-* Source: Pyomo MPS Writer
-* Format: Free MPS
-*
-NAME ZeroStochasticData
-OBJSENSE
- MIN
-ROWS
- N o
- G c_l_c_first_stage_
- E c_e_p_first_stage_INC_constraint1_
- E c_e_p_first_stage_INC_constraint2_
- E c_e_p_second_stage(1)_INC_constraint1_
- E c_e_p_second_stage(1)_INC_constraint2_
- G c_l_c_second_stage_
- L c_u_p_first_stage_INC_constraint3(1)_
- L c_u_p_first_stage_INC_constraint3(2)_
- L c_u_p_first_stage_INC_constraint3(3)_
- L c_u_p_first_stage_INC_constraint4(1)_
- L c_u_p_first_stage_INC_constraint4(2)_
- L c_u_p_first_stage_INC_constraint4(3)_
- L c_u_p_second_stage(1)_INC_constraint3(1)_
- L c_u_p_second_stage(1)_INC_constraint3(2)_
- L c_u_p_second_stage(1)_INC_constraint3(3)_
- L c_u_p_second_stage(1)_INC_constraint4(1)_
- L c_u_p_second_stage(1)_INC_constraint4(2)_
- L c_u_p_second_stage(1)_INC_constraint4(3)_
- G r_l_r_second_stage_
- L r_u_r_second_stage_
- E c_e_ONE_VAR_CONSTANT
-COLUMNS
- x c_l_c_first_stage_ 1
- x c_e_p_first_stage_INC_constraint1_ 1
- x c_l_c_second_stage_ 1
- fx o -9876543210
- fx c_e_p_first_stage_INC_constraint2_ 1
- fz o -9876543210
- fz c_e_p_second_stage(1)_INC_constraint2_ -9876543210
- p_first_stage_INC_bin_y(1) c_u_p_first_stage_INC_constraint3(1)_ -1
- p_first_stage_INC_bin_y(1) c_u_p_first_stage_INC_constraint4(1)_ 1
- p_first_stage_INC_bin_y(2) c_u_p_first_stage_INC_constraint3(2)_ -1
- p_first_stage_INC_bin_y(2) c_u_p_first_stage_INC_constraint4(2)_ 1
- p_first_stage_INC_bin_y(3) c_u_p_first_stage_INC_constraint3(3)_ -1
- p_first_stage_INC_bin_y(3) c_u_p_first_stage_INC_constraint4(3)_ 1
- p_first_stage_INC_delta(1) c_e_p_first_stage_INC_constraint1_ -2
- p_first_stage_INC_delta(1) c_u_p_first_stage_INC_constraint4(1)_ -1
- p_first_stage_INC_delta(2) c_e_p_first_stage_INC_constraint1_ -3
- p_first_stage_INC_delta(2) c_e_p_first_stage_INC_constraint2_ 1
- p_first_stage_INC_delta(2) c_u_p_first_stage_INC_constraint3(1)_ 1
- p_first_stage_INC_delta(2) c_u_p_first_stage_INC_constraint4(2)_ -1
- p_first_stage_INC_delta(3) c_e_p_first_stage_INC_constraint1_ -2
- p_first_stage_INC_delta(3) c_e_p_first_stage_INC_constraint2_ -1
- p_first_stage_INC_delta(3) c_u_p_first_stage_INC_constraint3(2)_ 1
- p_first_stage_INC_delta(3) c_u_p_first_stage_INC_constraint4(3)_ -1
- p_first_stage_INC_delta(4) c_e_p_first_stage_INC_constraint1_ -3
- p_first_stage_INC_delta(4) c_u_p_first_stage_INC_constraint3(3)_ 1
- p_second_stage(1)_INC_bin_y(1) c_u_p_second_stage(1)_INC_constraint3(1)_ -9876543210
- p_second_stage(1)_INC_bin_y(1) c_u_p_second_stage(1)_INC_constraint4(1)_ -9876543210
- p_second_stage(1)_INC_bin_y(2) c_u_p_second_stage(1)_INC_constraint3(2)_ -9876543210
- p_second_stage(1)_INC_bin_y(2) c_u_p_second_stage(1)_INC_constraint4(2)_ -9876543210
- p_second_stage(1)_INC_bin_y(3) c_u_p_second_stage(1)_INC_constraint3(3)_ -9876543210
- p_second_stage(1)_INC_bin_y(3) c_u_p_second_stage(1)_INC_constraint4(3)_ -9876543210
- p_second_stage(1)_INC_delta(1) c_e_p_second_stage(1)_INC_constraint1_ -9876543210
- p_second_stage(1)_INC_delta(1) c_u_p_second_stage(1)_INC_constraint4(1)_ -9876543210
- p_second_stage(1)_INC_delta(2) c_e_p_second_stage(1)_INC_constraint1_ -9876543210
- p_second_stage(1)_INC_delta(2) c_e_p_second_stage(1)_INC_constraint2_ -9876543210
- p_second_stage(1)_INC_delta(2) c_u_p_second_stage(1)_INC_constraint3(1)_ -9876543210
- p_second_stage(1)_INC_delta(2) c_u_p_second_stage(1)_INC_constraint4(2)_ -9876543210
- p_second_stage(1)_INC_delta(3) c_e_p_second_stage(1)_INC_constraint1_ -9876543210
- p_second_stage(1)_INC_delta(3) c_e_p_second_stage(1)_INC_constraint2_ -9876543210
- p_second_stage(1)_INC_delta(3) c_u_p_second_stage(1)_INC_constraint3(2)_ -9876543210
- p_second_stage(1)_INC_delta(3) c_u_p_second_stage(1)_INC_constraint4(3)_ -9876543210
- p_second_stage(1)_INC_delta(4) c_e_p_second_stage(1)_INC_constraint1_ -9876543210
- p_second_stage(1)_INC_delta(4) c_e_p_second_stage(1)_INC_constraint2_ -9876543210
- p_second_stage(1)_INC_delta(4) c_u_p_second_stage(1)_INC_constraint3(3)_ -9876543210
- r o -9876543210
- r c_l_c_second_stage_ -9876543210
- r r_l_r_second_stage_ 1
- r r_u_r_second_stage_ 1
- z c_e_p_second_stage(1)_INC_constraint1_ -9876543210
- ONE_VAR_CONSTANT o 0
- ONE_VAR_CONSTANT c_e_ONE_VAR_CONSTANT 1
-RHS
- RHS c_l_c_first_stage_ 0
- RHS c_e_p_first_stage_INC_constraint1_ 0
- RHS c_e_p_first_stage_INC_constraint2_ 10
- RHS c_e_p_second_stage(1)_INC_constraint1_ -9876543210
- RHS c_e_p_second_stage(1)_INC_constraint2_ -9876543210
- RHS c_l_c_second_stage_ -100
- RHS c_u_p_first_stage_INC_constraint3(1)_ 0
- RHS c_u_p_first_stage_INC_constraint3(2)_ 0
- RHS c_u_p_first_stage_INC_constraint3(3)_ 0
- RHS c_u_p_first_stage_INC_constraint4(1)_ 0
- RHS c_u_p_first_stage_INC_constraint4(2)_ 0
- RHS c_u_p_first_stage_INC_constraint4(3)_ 0
- RHS c_u_p_second_stage(1)_INC_constraint3(1)_ -9876543210
- RHS c_u_p_second_stage(1)_INC_constraint3(2)_ -9876543210
- RHS c_u_p_second_stage(1)_INC_constraint3(3)_ -9876543210
- RHS c_u_p_second_stage(1)_INC_constraint4(1)_ -9876543210
- RHS c_u_p_second_stage(1)_INC_constraint4(2)_ -9876543210
- RHS c_u_p_second_stage(1)_INC_constraint4(3)_ -9876543210
- RHS r_l_r_second_stage_ -9876543210
- RHS r_u_r_second_stage_ -9876543210
- RHS c_e_ONE_VAR_CONSTANT 1
-BOUNDS
- LO BOUND x 0
- UP BOUND x 10
- FR BOUND fx
- FR BOUND fz
- BV BOUND p_first_stage_INC_bin_y(1)
- BV BOUND p_first_stage_INC_bin_y(2)
- BV BOUND p_first_stage_INC_bin_y(3)
- MI BOUND p_first_stage_INC_delta(1)
- UP BOUND p_first_stage_INC_delta(1) 1
- FR BOUND p_first_stage_INC_delta(2)
- FR BOUND p_first_stage_INC_delta(3)
- LO BOUND p_first_stage_INC_delta(4) 0
- BV BOUND p_second_stage(1)_INC_bin_y(1)
- BV BOUND p_second_stage(1)_INC_bin_y(2)
- BV BOUND p_second_stage(1)_INC_bin_y(3)
- MI BOUND p_second_stage(1)_INC_delta(1)
- UP BOUND p_second_stage(1)_INC_delta(1) 1
- FR BOUND p_second_stage(1)_INC_delta(2)
- FR BOUND p_second_stage(1)_INC_delta(3)
- LO BOUND p_second_stage(1)_INC_delta(4) 0
- FR BOUND r
- LO BOUND z -10
- UP BOUND z 10
-ENDATA
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_symbolic_names_baseline/scenario_files/piecewise.mps.det.Scenario2 b/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_symbolic_names_baseline/scenario_files/piecewise.mps.det.Scenario2
deleted file mode 100644
index 1be13847f4a..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_symbolic_names_baseline/scenario_files/piecewise.mps.det.Scenario2
+++ /dev/null
@@ -1,128 +0,0 @@
-* Source: Pyomo MPS Writer
-* Format: Free MPS
-*
-NAME ZeroStochasticData
-OBJSENSE
- MIN
-ROWS
- N o
- G c_l_c_first_stage_
- E c_e_p_first_stage_INC_constraint1_
- E c_e_p_first_stage_INC_constraint2_
- E c_e_p_second_stage(1)_INC_constraint1_
- E c_e_p_second_stage(1)_INC_constraint2_
- G c_l_c_second_stage_
- L c_u_p_first_stage_INC_constraint3(1)_
- L c_u_p_first_stage_INC_constraint3(2)_
- L c_u_p_first_stage_INC_constraint3(3)_
- L c_u_p_first_stage_INC_constraint4(1)_
- L c_u_p_first_stage_INC_constraint4(2)_
- L c_u_p_first_stage_INC_constraint4(3)_
- L c_u_p_second_stage(1)_INC_constraint3(1)_
- L c_u_p_second_stage(1)_INC_constraint3(2)_
- L c_u_p_second_stage(1)_INC_constraint3(3)_
- L c_u_p_second_stage(1)_INC_constraint4(1)_
- L c_u_p_second_stage(1)_INC_constraint4(2)_
- L c_u_p_second_stage(1)_INC_constraint4(3)_
- G r_l_r_second_stage_
- L r_u_r_second_stage_
- E c_e_ONE_VAR_CONSTANT
-COLUMNS
- x c_l_c_first_stage_ 1
- x c_e_p_first_stage_INC_constraint1_ 1
- x c_l_c_second_stage_ 1
- fx o -9876543210
- fx c_e_p_first_stage_INC_constraint2_ 1
- fz o -9876543210
- fz c_e_p_second_stage(1)_INC_constraint2_ -9876543210
- p_first_stage_INC_bin_y(1) c_u_p_first_stage_INC_constraint3(1)_ -1
- p_first_stage_INC_bin_y(1) c_u_p_first_stage_INC_constraint4(1)_ 1
- p_first_stage_INC_bin_y(2) c_u_p_first_stage_INC_constraint3(2)_ -1
- p_first_stage_INC_bin_y(2) c_u_p_first_stage_INC_constraint4(2)_ 1
- p_first_stage_INC_bin_y(3) c_u_p_first_stage_INC_constraint3(3)_ -1
- p_first_stage_INC_bin_y(3) c_u_p_first_stage_INC_constraint4(3)_ 1
- p_first_stage_INC_delta(1) c_e_p_first_stage_INC_constraint1_ -2
- p_first_stage_INC_delta(1) c_u_p_first_stage_INC_constraint4(1)_ -1
- p_first_stage_INC_delta(2) c_e_p_first_stage_INC_constraint1_ -3
- p_first_stage_INC_delta(2) c_e_p_first_stage_INC_constraint2_ 1
- p_first_stage_INC_delta(2) c_u_p_first_stage_INC_constraint3(1)_ 1
- p_first_stage_INC_delta(2) c_u_p_first_stage_INC_constraint4(2)_ -1
- p_first_stage_INC_delta(3) c_e_p_first_stage_INC_constraint1_ -2
- p_first_stage_INC_delta(3) c_e_p_first_stage_INC_constraint2_ -1
- p_first_stage_INC_delta(3) c_u_p_first_stage_INC_constraint3(2)_ 1
- p_first_stage_INC_delta(3) c_u_p_first_stage_INC_constraint4(3)_ -1
- p_first_stage_INC_delta(4) c_e_p_first_stage_INC_constraint1_ -3
- p_first_stage_INC_delta(4) c_u_p_first_stage_INC_constraint3(3)_ 1
- p_second_stage(1)_INC_bin_y(1) c_u_p_second_stage(1)_INC_constraint3(1)_ -9876543210
- p_second_stage(1)_INC_bin_y(1) c_u_p_second_stage(1)_INC_constraint4(1)_ -9876543210
- p_second_stage(1)_INC_bin_y(2) c_u_p_second_stage(1)_INC_constraint3(2)_ -9876543210
- p_second_stage(1)_INC_bin_y(2) c_u_p_second_stage(1)_INC_constraint4(2)_ -9876543210
- p_second_stage(1)_INC_bin_y(3) c_u_p_second_stage(1)_INC_constraint3(3)_ -9876543210
- p_second_stage(1)_INC_bin_y(3) c_u_p_second_stage(1)_INC_constraint4(3)_ -9876543210
- p_second_stage(1)_INC_delta(1) c_e_p_second_stage(1)_INC_constraint1_ -9876543210
- p_second_stage(1)_INC_delta(1) c_u_p_second_stage(1)_INC_constraint4(1)_ -9876543210
- p_second_stage(1)_INC_delta(2) c_e_p_second_stage(1)_INC_constraint1_ -9876543210
- p_second_stage(1)_INC_delta(2) c_e_p_second_stage(1)_INC_constraint2_ -9876543210
- p_second_stage(1)_INC_delta(2) c_u_p_second_stage(1)_INC_constraint3(1)_ -9876543210
- p_second_stage(1)_INC_delta(2) c_u_p_second_stage(1)_INC_constraint4(2)_ -9876543210
- p_second_stage(1)_INC_delta(3) c_e_p_second_stage(1)_INC_constraint1_ -9876543210
- p_second_stage(1)_INC_delta(3) c_e_p_second_stage(1)_INC_constraint2_ -9876543210
- p_second_stage(1)_INC_delta(3) c_u_p_second_stage(1)_INC_constraint3(2)_ -9876543210
- p_second_stage(1)_INC_delta(3) c_u_p_second_stage(1)_INC_constraint4(3)_ -9876543210
- p_second_stage(1)_INC_delta(4) c_e_p_second_stage(1)_INC_constraint1_ -9876543210
- p_second_stage(1)_INC_delta(4) c_e_p_second_stage(1)_INC_constraint2_ -9876543210
- p_second_stage(1)_INC_delta(4) c_u_p_second_stage(1)_INC_constraint3(3)_ -9876543210
- r o -9876543210
- r c_l_c_second_stage_ -9876543210
- r r_l_r_second_stage_ 1
- r r_u_r_second_stage_ 1
- z c_e_p_second_stage(1)_INC_constraint1_ -9876543210
- ONE_VAR_CONSTANT o 0
- ONE_VAR_CONSTANT c_e_ONE_VAR_CONSTANT 1
-RHS
- RHS c_l_c_first_stage_ 0
- RHS c_e_p_first_stage_INC_constraint1_ 0
- RHS c_e_p_first_stage_INC_constraint2_ 10
- RHS c_e_p_second_stage(1)_INC_constraint1_ -9876543210
- RHS c_e_p_second_stage(1)_INC_constraint2_ -9876543210
- RHS c_l_c_second_stage_ -100
- RHS c_u_p_first_stage_INC_constraint3(1)_ 0
- RHS c_u_p_first_stage_INC_constraint3(2)_ 0
- RHS c_u_p_first_stage_INC_constraint3(3)_ 0
- RHS c_u_p_first_stage_INC_constraint4(1)_ 0
- RHS c_u_p_first_stage_INC_constraint4(2)_ 0
- RHS c_u_p_first_stage_INC_constraint4(3)_ 0
- RHS c_u_p_second_stage(1)_INC_constraint3(1)_ -9876543210
- RHS c_u_p_second_stage(1)_INC_constraint3(2)_ -9876543210
- RHS c_u_p_second_stage(1)_INC_constraint3(3)_ -9876543210
- RHS c_u_p_second_stage(1)_INC_constraint4(1)_ -9876543210
- RHS c_u_p_second_stage(1)_INC_constraint4(2)_ -9876543210
- RHS c_u_p_second_stage(1)_INC_constraint4(3)_ -9876543210
- RHS r_l_r_second_stage_ -9876543210
- RHS r_u_r_second_stage_ -9876543210
- RHS c_e_ONE_VAR_CONSTANT 1
-BOUNDS
- LO BOUND x 0
- UP BOUND x 10
- FR BOUND fx
- FR BOUND fz
- BV BOUND p_first_stage_INC_bin_y(1)
- BV BOUND p_first_stage_INC_bin_y(2)
- BV BOUND p_first_stage_INC_bin_y(3)
- MI BOUND p_first_stage_INC_delta(1)
- UP BOUND p_first_stage_INC_delta(1) 1
- FR BOUND p_first_stage_INC_delta(2)
- FR BOUND p_first_stage_INC_delta(3)
- LO BOUND p_first_stage_INC_delta(4) 0
- BV BOUND p_second_stage(1)_INC_bin_y(1)
- BV BOUND p_second_stage(1)_INC_bin_y(2)
- BV BOUND p_second_stage(1)_INC_bin_y(3)
- MI BOUND p_second_stage(1)_INC_delta(1)
- UP BOUND p_second_stage(1)_INC_delta(1) 1
- FR BOUND p_second_stage(1)_INC_delta(2)
- FR BOUND p_second_stage(1)_INC_delta(3)
- LO BOUND p_second_stage(1)_INC_delta(4) 0
- FR BOUND r
- LO BOUND z -10
- UP BOUND z 10
-ENDATA
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_symbolic_names_baseline/scenario_files/piecewise.mps.det.Scenario3 b/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_symbolic_names_baseline/scenario_files/piecewise.mps.det.Scenario3
deleted file mode 100644
index 1be13847f4a..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_symbolic_names_baseline/scenario_files/piecewise.mps.det.Scenario3
+++ /dev/null
@@ -1,128 +0,0 @@
-* Source: Pyomo MPS Writer
-* Format: Free MPS
-*
-NAME ZeroStochasticData
-OBJSENSE
- MIN
-ROWS
- N o
- G c_l_c_first_stage_
- E c_e_p_first_stage_INC_constraint1_
- E c_e_p_first_stage_INC_constraint2_
- E c_e_p_second_stage(1)_INC_constraint1_
- E c_e_p_second_stage(1)_INC_constraint2_
- G c_l_c_second_stage_
- L c_u_p_first_stage_INC_constraint3(1)_
- L c_u_p_first_stage_INC_constraint3(2)_
- L c_u_p_first_stage_INC_constraint3(3)_
- L c_u_p_first_stage_INC_constraint4(1)_
- L c_u_p_first_stage_INC_constraint4(2)_
- L c_u_p_first_stage_INC_constraint4(3)_
- L c_u_p_second_stage(1)_INC_constraint3(1)_
- L c_u_p_second_stage(1)_INC_constraint3(2)_
- L c_u_p_second_stage(1)_INC_constraint3(3)_
- L c_u_p_second_stage(1)_INC_constraint4(1)_
- L c_u_p_second_stage(1)_INC_constraint4(2)_
- L c_u_p_second_stage(1)_INC_constraint4(3)_
- G r_l_r_second_stage_
- L r_u_r_second_stage_
- E c_e_ONE_VAR_CONSTANT
-COLUMNS
- x c_l_c_first_stage_ 1
- x c_e_p_first_stage_INC_constraint1_ 1
- x c_l_c_second_stage_ 1
- fx o -9876543210
- fx c_e_p_first_stage_INC_constraint2_ 1
- fz o -9876543210
- fz c_e_p_second_stage(1)_INC_constraint2_ -9876543210
- p_first_stage_INC_bin_y(1) c_u_p_first_stage_INC_constraint3(1)_ -1
- p_first_stage_INC_bin_y(1) c_u_p_first_stage_INC_constraint4(1)_ 1
- p_first_stage_INC_bin_y(2) c_u_p_first_stage_INC_constraint3(2)_ -1
- p_first_stage_INC_bin_y(2) c_u_p_first_stage_INC_constraint4(2)_ 1
- p_first_stage_INC_bin_y(3) c_u_p_first_stage_INC_constraint3(3)_ -1
- p_first_stage_INC_bin_y(3) c_u_p_first_stage_INC_constraint4(3)_ 1
- p_first_stage_INC_delta(1) c_e_p_first_stage_INC_constraint1_ -2
- p_first_stage_INC_delta(1) c_u_p_first_stage_INC_constraint4(1)_ -1
- p_first_stage_INC_delta(2) c_e_p_first_stage_INC_constraint1_ -3
- p_first_stage_INC_delta(2) c_e_p_first_stage_INC_constraint2_ 1
- p_first_stage_INC_delta(2) c_u_p_first_stage_INC_constraint3(1)_ 1
- p_first_stage_INC_delta(2) c_u_p_first_stage_INC_constraint4(2)_ -1
- p_first_stage_INC_delta(3) c_e_p_first_stage_INC_constraint1_ -2
- p_first_stage_INC_delta(3) c_e_p_first_stage_INC_constraint2_ -1
- p_first_stage_INC_delta(3) c_u_p_first_stage_INC_constraint3(2)_ 1
- p_first_stage_INC_delta(3) c_u_p_first_stage_INC_constraint4(3)_ -1
- p_first_stage_INC_delta(4) c_e_p_first_stage_INC_constraint1_ -3
- p_first_stage_INC_delta(4) c_u_p_first_stage_INC_constraint3(3)_ 1
- p_second_stage(1)_INC_bin_y(1) c_u_p_second_stage(1)_INC_constraint3(1)_ -9876543210
- p_second_stage(1)_INC_bin_y(1) c_u_p_second_stage(1)_INC_constraint4(1)_ -9876543210
- p_second_stage(1)_INC_bin_y(2) c_u_p_second_stage(1)_INC_constraint3(2)_ -9876543210
- p_second_stage(1)_INC_bin_y(2) c_u_p_second_stage(1)_INC_constraint4(2)_ -9876543210
- p_second_stage(1)_INC_bin_y(3) c_u_p_second_stage(1)_INC_constraint3(3)_ -9876543210
- p_second_stage(1)_INC_bin_y(3) c_u_p_second_stage(1)_INC_constraint4(3)_ -9876543210
- p_second_stage(1)_INC_delta(1) c_e_p_second_stage(1)_INC_constraint1_ -9876543210
- p_second_stage(1)_INC_delta(1) c_u_p_second_stage(1)_INC_constraint4(1)_ -9876543210
- p_second_stage(1)_INC_delta(2) c_e_p_second_stage(1)_INC_constraint1_ -9876543210
- p_second_stage(1)_INC_delta(2) c_e_p_second_stage(1)_INC_constraint2_ -9876543210
- p_second_stage(1)_INC_delta(2) c_u_p_second_stage(1)_INC_constraint3(1)_ -9876543210
- p_second_stage(1)_INC_delta(2) c_u_p_second_stage(1)_INC_constraint4(2)_ -9876543210
- p_second_stage(1)_INC_delta(3) c_e_p_second_stage(1)_INC_constraint1_ -9876543210
- p_second_stage(1)_INC_delta(3) c_e_p_second_stage(1)_INC_constraint2_ -9876543210
- p_second_stage(1)_INC_delta(3) c_u_p_second_stage(1)_INC_constraint3(2)_ -9876543210
- p_second_stage(1)_INC_delta(3) c_u_p_second_stage(1)_INC_constraint4(3)_ -9876543210
- p_second_stage(1)_INC_delta(4) c_e_p_second_stage(1)_INC_constraint1_ -9876543210
- p_second_stage(1)_INC_delta(4) c_e_p_second_stage(1)_INC_constraint2_ -9876543210
- p_second_stage(1)_INC_delta(4) c_u_p_second_stage(1)_INC_constraint3(3)_ -9876543210
- r o -9876543210
- r c_l_c_second_stage_ -9876543210
- r r_l_r_second_stage_ 1
- r r_u_r_second_stage_ 1
- z c_e_p_second_stage(1)_INC_constraint1_ -9876543210
- ONE_VAR_CONSTANT o 0
- ONE_VAR_CONSTANT c_e_ONE_VAR_CONSTANT 1
-RHS
- RHS c_l_c_first_stage_ 0
- RHS c_e_p_first_stage_INC_constraint1_ 0
- RHS c_e_p_first_stage_INC_constraint2_ 10
- RHS c_e_p_second_stage(1)_INC_constraint1_ -9876543210
- RHS c_e_p_second_stage(1)_INC_constraint2_ -9876543210
- RHS c_l_c_second_stage_ -100
- RHS c_u_p_first_stage_INC_constraint3(1)_ 0
- RHS c_u_p_first_stage_INC_constraint3(2)_ 0
- RHS c_u_p_first_stage_INC_constraint3(3)_ 0
- RHS c_u_p_first_stage_INC_constraint4(1)_ 0
- RHS c_u_p_first_stage_INC_constraint4(2)_ 0
- RHS c_u_p_first_stage_INC_constraint4(3)_ 0
- RHS c_u_p_second_stage(1)_INC_constraint3(1)_ -9876543210
- RHS c_u_p_second_stage(1)_INC_constraint3(2)_ -9876543210
- RHS c_u_p_second_stage(1)_INC_constraint3(3)_ -9876543210
- RHS c_u_p_second_stage(1)_INC_constraint4(1)_ -9876543210
- RHS c_u_p_second_stage(1)_INC_constraint4(2)_ -9876543210
- RHS c_u_p_second_stage(1)_INC_constraint4(3)_ -9876543210
- RHS r_l_r_second_stage_ -9876543210
- RHS r_u_r_second_stage_ -9876543210
- RHS c_e_ONE_VAR_CONSTANT 1
-BOUNDS
- LO BOUND x 0
- UP BOUND x 10
- FR BOUND fx
- FR BOUND fz
- BV BOUND p_first_stage_INC_bin_y(1)
- BV BOUND p_first_stage_INC_bin_y(2)
- BV BOUND p_first_stage_INC_bin_y(3)
- MI BOUND p_first_stage_INC_delta(1)
- UP BOUND p_first_stage_INC_delta(1) 1
- FR BOUND p_first_stage_INC_delta(2)
- FR BOUND p_first_stage_INC_delta(3)
- LO BOUND p_first_stage_INC_delta(4) 0
- BV BOUND p_second_stage(1)_INC_bin_y(1)
- BV BOUND p_second_stage(1)_INC_bin_y(2)
- BV BOUND p_second_stage(1)_INC_bin_y(3)
- MI BOUND p_second_stage(1)_INC_delta(1)
- UP BOUND p_second_stage(1)_INC_delta(1) 1
- FR BOUND p_second_stage(1)_INC_delta(2)
- FR BOUND p_second_stage(1)_INC_delta(3)
- LO BOUND p_second_stage(1)_INC_delta(4) 0
- FR BOUND r
- LO BOUND z -10
- UP BOUND z 10
-ENDATA
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_symbolic_names_baseline/scenario_files/piecewise.mps.symbols.Scenario1 b/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_symbolic_names_baseline/scenario_files/piecewise.mps.symbols.Scenario1
deleted file mode 100644
index 3ea722dd807..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_symbolic_names_baseline/scenario_files/piecewise.mps.symbols.Scenario1
+++ /dev/null
@@ -1,9 +0,0 @@
-fx fx
-p_first_stage_INC_bin_y(1) p_first_stage.INC_bin_y:#1
-p_first_stage_INC_bin_y(2) p_first_stage.INC_bin_y:#2
-p_first_stage_INC_bin_y(3) p_first_stage.INC_bin_y:#3
-p_first_stage_INC_delta(1) p_first_stage.INC_delta:#1
-p_first_stage_INC_delta(2) p_first_stage.INC_delta:#2
-p_first_stage_INC_delta(3) p_first_stage.INC_delta:#3
-p_first_stage_INC_delta(4) p_first_stage.INC_delta:#4
-x x
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_symbolic_names_baseline/scenario_files/piecewise.mps.symbols.Scenario2 b/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_symbolic_names_baseline/scenario_files/piecewise.mps.symbols.Scenario2
deleted file mode 100644
index 3ea722dd807..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_symbolic_names_baseline/scenario_files/piecewise.mps.symbols.Scenario2
+++ /dev/null
@@ -1,9 +0,0 @@
-fx fx
-p_first_stage_INC_bin_y(1) p_first_stage.INC_bin_y:#1
-p_first_stage_INC_bin_y(2) p_first_stage.INC_bin_y:#2
-p_first_stage_INC_bin_y(3) p_first_stage.INC_bin_y:#3
-p_first_stage_INC_delta(1) p_first_stage.INC_delta:#1
-p_first_stage_INC_delta(2) p_first_stage.INC_delta:#2
-p_first_stage_INC_delta(3) p_first_stage.INC_delta:#3
-p_first_stage_INC_delta(4) p_first_stage.INC_delta:#4
-x x
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_symbolic_names_baseline/scenario_files/piecewise.mps.symbols.Scenario3 b/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_symbolic_names_baseline/scenario_files/piecewise.mps.symbols.Scenario3
deleted file mode 100644
index 3ea722dd807..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_symbolic_names_baseline/scenario_files/piecewise.mps.symbols.Scenario3
+++ /dev/null
@@ -1,9 +0,0 @@
-fx fx
-p_first_stage_INC_bin_y(1) p_first_stage.INC_bin_y:#1
-p_first_stage_INC_bin_y(2) p_first_stage.INC_bin_y:#2
-p_first_stage_INC_bin_y(3) p_first_stage.INC_bin_y:#3
-p_first_stage_INC_delta(1) p_first_stage.INC_delta:#1
-p_first_stage_INC_delta(2) p_first_stage.INC_delta:#2
-p_first_stage_INC_delta(3) p_first_stage.INC_delta:#3
-p_first_stage_INC_delta(4) p_first_stage.INC_delta:#4
-x x
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_symbolic_names_baseline/scenario_files/piecewise.row.Scenario1 b/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_symbolic_names_baseline/scenario_files/piecewise.row.Scenario1
deleted file mode 100644
index 7722adaec3a..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_symbolic_names_baseline/scenario_files/piecewise.row.Scenario1
+++ /dev/null
@@ -1,22 +0,0 @@
-o
-c_l_c_first_stage_
-c_e_p_first_stage_INC_constraint1_
-c_e_p_first_stage_INC_constraint2_
-c_e_p_second_stage(1)_INC_constraint1_
-c_e_p_second_stage(1)_INC_constraint2_
-c_l_c_second_stage_
-c_u_p_first_stage_INC_constraint3(1)_
-c_u_p_first_stage_INC_constraint3(2)_
-c_u_p_first_stage_INC_constraint3(3)_
-c_u_p_first_stage_INC_constraint4(1)_
-c_u_p_first_stage_INC_constraint4(2)_
-c_u_p_first_stage_INC_constraint4(3)_
-c_u_p_second_stage(1)_INC_constraint3(1)_
-c_u_p_second_stage(1)_INC_constraint3(2)_
-c_u_p_second_stage(1)_INC_constraint3(3)_
-c_u_p_second_stage(1)_INC_constraint4(1)_
-c_u_p_second_stage(1)_INC_constraint4(2)_
-c_u_p_second_stage(1)_INC_constraint4(3)_
-r_l_r_second_stage_
-r_u_r_second_stage_
-c_e_ONE_VAR_CONSTANT
\ No newline at end of file
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_symbolic_names_baseline/scenario_files/piecewise.row.Scenario2 b/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_symbolic_names_baseline/scenario_files/piecewise.row.Scenario2
deleted file mode 100644
index 7722adaec3a..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_symbolic_names_baseline/scenario_files/piecewise.row.Scenario2
+++ /dev/null
@@ -1,22 +0,0 @@
-o
-c_l_c_first_stage_
-c_e_p_first_stage_INC_constraint1_
-c_e_p_first_stage_INC_constraint2_
-c_e_p_second_stage(1)_INC_constraint1_
-c_e_p_second_stage(1)_INC_constraint2_
-c_l_c_second_stage_
-c_u_p_first_stage_INC_constraint3(1)_
-c_u_p_first_stage_INC_constraint3(2)_
-c_u_p_first_stage_INC_constraint3(3)_
-c_u_p_first_stage_INC_constraint4(1)_
-c_u_p_first_stage_INC_constraint4(2)_
-c_u_p_first_stage_INC_constraint4(3)_
-c_u_p_second_stage(1)_INC_constraint3(1)_
-c_u_p_second_stage(1)_INC_constraint3(2)_
-c_u_p_second_stage(1)_INC_constraint3(3)_
-c_u_p_second_stage(1)_INC_constraint4(1)_
-c_u_p_second_stage(1)_INC_constraint4(2)_
-c_u_p_second_stage(1)_INC_constraint4(3)_
-r_l_r_second_stage_
-r_u_r_second_stage_
-c_e_ONE_VAR_CONSTANT
\ No newline at end of file
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_symbolic_names_baseline/scenario_files/piecewise.row.Scenario3 b/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_symbolic_names_baseline/scenario_files/piecewise.row.Scenario3
deleted file mode 100644
index 7722adaec3a..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_symbolic_names_baseline/scenario_files/piecewise.row.Scenario3
+++ /dev/null
@@ -1,22 +0,0 @@
-o
-c_l_c_first_stage_
-c_e_p_first_stage_INC_constraint1_
-c_e_p_first_stage_INC_constraint2_
-c_e_p_second_stage(1)_INC_constraint1_
-c_e_p_second_stage(1)_INC_constraint2_
-c_l_c_second_stage_
-c_u_p_first_stage_INC_constraint3(1)_
-c_u_p_first_stage_INC_constraint3(2)_
-c_u_p_first_stage_INC_constraint3(3)_
-c_u_p_first_stage_INC_constraint4(1)_
-c_u_p_first_stage_INC_constraint4(2)_
-c_u_p_first_stage_INC_constraint4(3)_
-c_u_p_second_stage(1)_INC_constraint3(1)_
-c_u_p_second_stage(1)_INC_constraint3(2)_
-c_u_p_second_stage(1)_INC_constraint3(3)_
-c_u_p_second_stage(1)_INC_constraint4(1)_
-c_u_p_second_stage(1)_INC_constraint4(2)_
-c_u_p_second_stage(1)_INC_constraint4(3)_
-r_l_r_second_stage_
-r_u_r_second_stage_
-c_e_ONE_VAR_CONSTANT
\ No newline at end of file
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_symbolic_names_baseline/scenario_files/piecewise.setup.mps.Scenario1 b/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_symbolic_names_baseline/scenario_files/piecewise.setup.mps.Scenario1
deleted file mode 100644
index b8b9e27aabf..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_symbolic_names_baseline/scenario_files/piecewise.setup.mps.Scenario1
+++ /dev/null
@@ -1,124 +0,0 @@
-* Source: Pyomo MPS Writer
-* Format: Free MPS
-*
-NAME Scenario1
-OBJSENSE
- MIN
-ROWS
- N o
- G c_l_c_first_stage_
- G c_l_c_second_stage_
- G r_l_r_second_stage_
- L r_u_r_second_stage_
- E c_e_p_first_stage_INC_constraint1_
- E c_e_p_first_stage_INC_constraint2_
- L c_u_p_first_stage_INC_constraint3(1)_
- L c_u_p_first_stage_INC_constraint3(2)_
- L c_u_p_first_stage_INC_constraint3(3)_
- L c_u_p_first_stage_INC_constraint4(1)_
- L c_u_p_first_stage_INC_constraint4(2)_
- L c_u_p_first_stage_INC_constraint4(3)_
- E c_e_p_second_stage(1)_INC_constraint1_
- E c_e_p_second_stage(1)_INC_constraint2_
- L c_u_p_second_stage(1)_INC_constraint3(1)_
- L c_u_p_second_stage(1)_INC_constraint3(2)_
- L c_u_p_second_stage(1)_INC_constraint3(3)_
- L c_u_p_second_stage(1)_INC_constraint4(1)_
- L c_u_p_second_stage(1)_INC_constraint4(2)_
- L c_u_p_second_stage(1)_INC_constraint4(3)_
-COLUMNS
- x c_l_c_first_stage_ 1
- x c_l_c_second_stage_ 1
- x c_e_p_first_stage_INC_constraint1_ 1
- fx o 1
- fx c_e_p_first_stage_INC_constraint2_ 1
- z c_e_p_second_stage(1)_INC_constraint1_ 1
- fz o -1
- fz c_e_p_second_stage(1)_INC_constraint2_ 1
- r o 1
- r c_l_c_second_stage_ 0
- r r_l_r_second_stage_ 1
- r r_u_r_second_stage_ 1
- p_first_stage_INC_delta(1) c_e_p_first_stage_INC_constraint1_ -2
- p_first_stage_INC_delta(1) c_u_p_first_stage_INC_constraint4(1)_ -1
- p_first_stage_INC_delta(2) c_e_p_first_stage_INC_constraint1_ -3
- p_first_stage_INC_delta(2) c_e_p_first_stage_INC_constraint2_ 1
- p_first_stage_INC_delta(2) c_u_p_first_stage_INC_constraint3(1)_ 1
- p_first_stage_INC_delta(2) c_u_p_first_stage_INC_constraint4(2)_ -1
- p_first_stage_INC_delta(3) c_e_p_first_stage_INC_constraint1_ -2
- p_first_stage_INC_delta(3) c_e_p_first_stage_INC_constraint2_ -1
- p_first_stage_INC_delta(3) c_u_p_first_stage_INC_constraint3(2)_ 1
- p_first_stage_INC_delta(3) c_u_p_first_stage_INC_constraint4(3)_ -1
- p_first_stage_INC_delta(4) c_e_p_first_stage_INC_constraint1_ -3
- p_first_stage_INC_delta(4) c_u_p_first_stage_INC_constraint3(3)_ 1
- p_first_stage_INC_bin_y(1) c_u_p_first_stage_INC_constraint3(1)_ -1
- p_first_stage_INC_bin_y(1) c_u_p_first_stage_INC_constraint4(1)_ 1
- p_first_stage_INC_bin_y(2) c_u_p_first_stage_INC_constraint3(2)_ -1
- p_first_stage_INC_bin_y(2) c_u_p_first_stage_INC_constraint4(2)_ 1
- p_first_stage_INC_bin_y(3) c_u_p_first_stage_INC_constraint3(3)_ -1
- p_first_stage_INC_bin_y(3) c_u_p_first_stage_INC_constraint4(3)_ 1
- p_second_stage(1)_INC_delta(1) c_e_p_second_stage(1)_INC_constraint1_ -5
- p_second_stage(1)_INC_delta(1) c_u_p_second_stage(1)_INC_constraint4(1)_ -1
- p_second_stage(1)_INC_delta(2) c_e_p_second_stage(1)_INC_constraint1_ -5
- p_second_stage(1)_INC_delta(2) c_e_p_second_stage(1)_INC_constraint2_ 1
- p_second_stage(1)_INC_delta(2) c_u_p_second_stage(1)_INC_constraint3(1)_ 1
- p_second_stage(1)_INC_delta(2) c_u_p_second_stage(1)_INC_constraint4(2)_ -1
- p_second_stage(1)_INC_delta(3) c_e_p_second_stage(1)_INC_constraint1_ -5
- p_second_stage(1)_INC_delta(3) c_e_p_second_stage(1)_INC_constraint2_ -3
- p_second_stage(1)_INC_delta(3) c_u_p_second_stage(1)_INC_constraint3(2)_ 1
- p_second_stage(1)_INC_delta(3) c_u_p_second_stage(1)_INC_constraint4(3)_ -1
- p_second_stage(1)_INC_delta(4) c_e_p_second_stage(1)_INC_constraint1_ -5
- p_second_stage(1)_INC_delta(4) c_e_p_second_stage(1)_INC_constraint2_ 1
- p_second_stage(1)_INC_delta(4) c_u_p_second_stage(1)_INC_constraint3(3)_ 1
- p_second_stage(1)_INC_bin_y(1) c_u_p_second_stage(1)_INC_constraint3(1)_ -1
- p_second_stage(1)_INC_bin_y(1) c_u_p_second_stage(1)_INC_constraint4(1)_ 1
- p_second_stage(1)_INC_bin_y(2) c_u_p_second_stage(1)_INC_constraint3(2)_ -1
- p_second_stage(1)_INC_bin_y(2) c_u_p_second_stage(1)_INC_constraint4(2)_ 1
- p_second_stage(1)_INC_bin_y(3) c_u_p_second_stage(1)_INC_constraint3(3)_ -1
- p_second_stage(1)_INC_bin_y(3) c_u_p_second_stage(1)_INC_constraint4(3)_ 1
-RHS
- RHS c_l_c_first_stage_ 0
- RHS c_l_c_second_stage_ -100
- RHS r_l_r_second_stage_ 0
- RHS r_u_r_second_stage_ 0
- RHS c_e_p_first_stage_INC_constraint1_ 0
- RHS c_e_p_first_stage_INC_constraint2_ 10
- RHS c_u_p_first_stage_INC_constraint3(1)_ 0
- RHS c_u_p_first_stage_INC_constraint3(2)_ 0
- RHS c_u_p_first_stage_INC_constraint3(3)_ 0
- RHS c_u_p_first_stage_INC_constraint4(1)_ 0
- RHS c_u_p_first_stage_INC_constraint4(2)_ 0
- RHS c_u_p_first_stage_INC_constraint4(3)_ 0
- RHS c_e_p_second_stage(1)_INC_constraint1_ -10
- RHS c_e_p_second_stage(1)_INC_constraint2_ 0
- RHS c_u_p_second_stage(1)_INC_constraint3(1)_ 0
- RHS c_u_p_second_stage(1)_INC_constraint3(2)_ 0
- RHS c_u_p_second_stage(1)_INC_constraint3(3)_ 0
- RHS c_u_p_second_stage(1)_INC_constraint4(1)_ 0
- RHS c_u_p_second_stage(1)_INC_constraint4(2)_ 0
- RHS c_u_p_second_stage(1)_INC_constraint4(3)_ 0
-BOUNDS
- LO BOUND x 0
- UP BOUND x 10
- FR BOUND fx
- LO BOUND z -10
- UP BOUND z 10
- FR BOUND fz
- FR BOUND r
- MI BOUND p_first_stage_INC_delta(1)
- UP BOUND p_first_stage_INC_delta(1) 1
- FR BOUND p_first_stage_INC_delta(2)
- FR BOUND p_first_stage_INC_delta(3)
- LO BOUND p_first_stage_INC_delta(4) 0
- BV BOUND p_first_stage_INC_bin_y(1)
- BV BOUND p_first_stage_INC_bin_y(2)
- BV BOUND p_first_stage_INC_bin_y(3)
- MI BOUND p_second_stage(1)_INC_delta(1)
- UP BOUND p_second_stage(1)_INC_delta(1) 1
- FR BOUND p_second_stage(1)_INC_delta(2)
- FR BOUND p_second_stage(1)_INC_delta(3)
- LO BOUND p_second_stage(1)_INC_delta(4) 0
- BV BOUND p_second_stage(1)_INC_bin_y(1)
- BV BOUND p_second_stage(1)_INC_bin_y(2)
- BV BOUND p_second_stage(1)_INC_bin_y(3)
-ENDATA
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_symbolic_names_baseline/scenario_files/piecewise.setup.mps.Scenario2 b/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_symbolic_names_baseline/scenario_files/piecewise.setup.mps.Scenario2
deleted file mode 100644
index 3b6ca255a25..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_symbolic_names_baseline/scenario_files/piecewise.setup.mps.Scenario2
+++ /dev/null
@@ -1,128 +0,0 @@
-* Source: Pyomo MPS Writer
-* Format: Free MPS
-*
-NAME Scenario2
-OBJSENSE
- MIN
-ROWS
- N o
- G c_l_c_first_stage_
- G c_l_c_second_stage_
- G r_l_r_second_stage_
- L r_u_r_second_stage_
- E c_e_p_first_stage_INC_constraint1_
- E c_e_p_first_stage_INC_constraint2_
- L c_u_p_first_stage_INC_constraint3(1)_
- L c_u_p_first_stage_INC_constraint3(2)_
- L c_u_p_first_stage_INC_constraint3(3)_
- L c_u_p_first_stage_INC_constraint4(1)_
- L c_u_p_first_stage_INC_constraint4(2)_
- L c_u_p_first_stage_INC_constraint4(3)_
- E c_e_p_second_stage(1)_INC_constraint1_
- E c_e_p_second_stage(1)_INC_constraint2_
- L c_u_p_second_stage(1)_INC_constraint3(1)_
- L c_u_p_second_stage(1)_INC_constraint3(2)_
- L c_u_p_second_stage(1)_INC_constraint3(3)_
- L c_u_p_second_stage(1)_INC_constraint4(1)_
- L c_u_p_second_stage(1)_INC_constraint4(2)_
- L c_u_p_second_stage(1)_INC_constraint4(3)_
- E c_e_ONE_VAR_CONSTANT
-COLUMNS
- x c_l_c_first_stage_ 1
- x c_l_c_second_stage_ 1
- x c_e_p_first_stage_INC_constraint1_ 1
- fx o 1
- fx c_e_p_first_stage_INC_constraint2_ 1
- z c_e_p_second_stage(1)_INC_constraint1_ 1
- fz o -1
- fz c_e_p_second_stage(1)_INC_constraint2_ 1
- r o 1
- r c_l_c_second_stage_ 1
- r r_l_r_second_stage_ 1
- r r_u_r_second_stage_ 1
- p_first_stage_INC_delta(1) c_e_p_first_stage_INC_constraint1_ -2
- p_first_stage_INC_delta(1) c_u_p_first_stage_INC_constraint4(1)_ -1
- p_first_stage_INC_delta(2) c_e_p_first_stage_INC_constraint1_ -3
- p_first_stage_INC_delta(2) c_e_p_first_stage_INC_constraint2_ 1
- p_first_stage_INC_delta(2) c_u_p_first_stage_INC_constraint3(1)_ 1
- p_first_stage_INC_delta(2) c_u_p_first_stage_INC_constraint4(2)_ -1
- p_first_stage_INC_delta(3) c_e_p_first_stage_INC_constraint1_ -2
- p_first_stage_INC_delta(3) c_e_p_first_stage_INC_constraint2_ -1
- p_first_stage_INC_delta(3) c_u_p_first_stage_INC_constraint3(2)_ 1
- p_first_stage_INC_delta(3) c_u_p_first_stage_INC_constraint4(3)_ -1
- p_first_stage_INC_delta(4) c_e_p_first_stage_INC_constraint1_ -3
- p_first_stage_INC_delta(4) c_u_p_first_stage_INC_constraint3(3)_ 1
- p_first_stage_INC_bin_y(1) c_u_p_first_stage_INC_constraint3(1)_ -1
- p_first_stage_INC_bin_y(1) c_u_p_first_stage_INC_constraint4(1)_ 1
- p_first_stage_INC_bin_y(2) c_u_p_first_stage_INC_constraint3(2)_ -1
- p_first_stage_INC_bin_y(2) c_u_p_first_stage_INC_constraint4(2)_ 1
- p_first_stage_INC_bin_y(3) c_u_p_first_stage_INC_constraint3(3)_ -1
- p_first_stage_INC_bin_y(3) c_u_p_first_stage_INC_constraint4(3)_ 1
- p_second_stage(1)_INC_delta(1) c_e_p_second_stage(1)_INC_constraint1_ -5
- p_second_stage(1)_INC_delta(1) c_u_p_second_stage(1)_INC_constraint4(1)_ -1
- p_second_stage(1)_INC_delta(2) c_e_p_second_stage(1)_INC_constraint1_ -5
- p_second_stage(1)_INC_delta(2) c_e_p_second_stage(1)_INC_constraint2_ 1
- p_second_stage(1)_INC_delta(2) c_u_p_second_stage(1)_INC_constraint3(1)_ 1
- p_second_stage(1)_INC_delta(2) c_u_p_second_stage(1)_INC_constraint4(2)_ -1
- p_second_stage(1)_INC_delta(3) c_e_p_second_stage(1)_INC_constraint1_ -5
- p_second_stage(1)_INC_delta(3) c_e_p_second_stage(1)_INC_constraint2_ -4
- p_second_stage(1)_INC_delta(3) c_u_p_second_stage(1)_INC_constraint3(2)_ 1
- p_second_stage(1)_INC_delta(3) c_u_p_second_stage(1)_INC_constraint4(3)_ -1
- p_second_stage(1)_INC_delta(4) c_e_p_second_stage(1)_INC_constraint1_ -5
- p_second_stage(1)_INC_delta(4) c_e_p_second_stage(1)_INC_constraint2_ 2
- p_second_stage(1)_INC_delta(4) c_u_p_second_stage(1)_INC_constraint3(3)_ 1
- p_second_stage(1)_INC_bin_y(1) c_u_p_second_stage(1)_INC_constraint3(1)_ -1
- p_second_stage(1)_INC_bin_y(1) c_u_p_second_stage(1)_INC_constraint4(1)_ 1
- p_second_stage(1)_INC_bin_y(2) c_u_p_second_stage(1)_INC_constraint3(2)_ -1
- p_second_stage(1)_INC_bin_y(2) c_u_p_second_stage(1)_INC_constraint4(2)_ 1
- p_second_stage(1)_INC_bin_y(3) c_u_p_second_stage(1)_INC_constraint3(3)_ -1
- p_second_stage(1)_INC_bin_y(3) c_u_p_second_stage(1)_INC_constraint4(3)_ 1
- ONE_VAR_CONSTANT o -1
- ONE_VAR_CONSTANT c_e_ONE_VAR_CONSTANT 1
-RHS
- RHS c_l_c_first_stage_ 0
- RHS c_l_c_second_stage_ -100
- RHS r_l_r_second_stage_ -1
- RHS r_u_r_second_stage_ 0
- RHS c_e_p_first_stage_INC_constraint1_ 0
- RHS c_e_p_first_stage_INC_constraint2_ 10
- RHS c_u_p_first_stage_INC_constraint3(1)_ 0
- RHS c_u_p_first_stage_INC_constraint3(2)_ 0
- RHS c_u_p_first_stage_INC_constraint3(3)_ 0
- RHS c_u_p_first_stage_INC_constraint4(1)_ 0
- RHS c_u_p_first_stage_INC_constraint4(2)_ 0
- RHS c_u_p_first_stage_INC_constraint4(3)_ 0
- RHS c_e_p_second_stage(1)_INC_constraint1_ -10
- RHS c_e_p_second_stage(1)_INC_constraint2_ 0
- RHS c_u_p_second_stage(1)_INC_constraint3(1)_ 0
- RHS c_u_p_second_stage(1)_INC_constraint3(2)_ 0
- RHS c_u_p_second_stage(1)_INC_constraint3(3)_ 0
- RHS c_u_p_second_stage(1)_INC_constraint4(1)_ 0
- RHS c_u_p_second_stage(1)_INC_constraint4(2)_ 0
- RHS c_u_p_second_stage(1)_INC_constraint4(3)_ 0
- RHS c_e_ONE_VAR_CONSTANT 1
-BOUNDS
- LO BOUND x 0
- UP BOUND x 10
- FR BOUND fx
- LO BOUND z -10
- UP BOUND z 10
- FR BOUND fz
- FR BOUND r
- MI BOUND p_first_stage_INC_delta(1)
- UP BOUND p_first_stage_INC_delta(1) 1
- FR BOUND p_first_stage_INC_delta(2)
- FR BOUND p_first_stage_INC_delta(3)
- LO BOUND p_first_stage_INC_delta(4) 0
- BV BOUND p_first_stage_INC_bin_y(1)
- BV BOUND p_first_stage_INC_bin_y(2)
- BV BOUND p_first_stage_INC_bin_y(3)
- MI BOUND p_second_stage(1)_INC_delta(1)
- UP BOUND p_second_stage(1)_INC_delta(1) 1
- FR BOUND p_second_stage(1)_INC_delta(2)
- FR BOUND p_second_stage(1)_INC_delta(3)
- LO BOUND p_second_stage(1)_INC_delta(4) 0
- BV BOUND p_second_stage(1)_INC_bin_y(1)
- BV BOUND p_second_stage(1)_INC_bin_y(2)
- BV BOUND p_second_stage(1)_INC_bin_y(3)
-ENDATA
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_symbolic_names_baseline/scenario_files/piecewise.setup.mps.Scenario3 b/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_symbolic_names_baseline/scenario_files/piecewise.setup.mps.Scenario3
deleted file mode 100644
index 29bae3b5286..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_symbolic_names_baseline/scenario_files/piecewise.setup.mps.Scenario3
+++ /dev/null
@@ -1,128 +0,0 @@
-* Source: Pyomo MPS Writer
-* Format: Free MPS
-*
-NAME Scenario3
-OBJSENSE
- MIN
-ROWS
- N o
- G c_l_c_first_stage_
- G c_l_c_second_stage_
- G r_l_r_second_stage_
- L r_u_r_second_stage_
- E c_e_p_first_stage_INC_constraint1_
- E c_e_p_first_stage_INC_constraint2_
- L c_u_p_first_stage_INC_constraint3(1)_
- L c_u_p_first_stage_INC_constraint3(2)_
- L c_u_p_first_stage_INC_constraint3(3)_
- L c_u_p_first_stage_INC_constraint4(1)_
- L c_u_p_first_stage_INC_constraint4(2)_
- L c_u_p_first_stage_INC_constraint4(3)_
- E c_e_p_second_stage(1)_INC_constraint1_
- E c_e_p_second_stage(1)_INC_constraint2_
- L c_u_p_second_stage(1)_INC_constraint3(1)_
- L c_u_p_second_stage(1)_INC_constraint3(2)_
- L c_u_p_second_stage(1)_INC_constraint3(3)_
- L c_u_p_second_stage(1)_INC_constraint4(1)_
- L c_u_p_second_stage(1)_INC_constraint4(2)_
- L c_u_p_second_stage(1)_INC_constraint4(3)_
- E c_e_ONE_VAR_CONSTANT
-COLUMNS
- x c_l_c_first_stage_ 1
- x c_l_c_second_stage_ 1
- x c_e_p_first_stage_INC_constraint1_ 1
- fx o 1
- fx c_e_p_first_stage_INC_constraint2_ 1
- z c_e_p_second_stage(1)_INC_constraint1_ 1
- fz o -1
- fz c_e_p_second_stage(1)_INC_constraint2_ 1
- r o 1
- r c_l_c_second_stage_ 2
- r r_l_r_second_stage_ 1
- r r_u_r_second_stage_ 1
- p_first_stage_INC_delta(1) c_e_p_first_stage_INC_constraint1_ -2
- p_first_stage_INC_delta(1) c_u_p_first_stage_INC_constraint4(1)_ -1
- p_first_stage_INC_delta(2) c_e_p_first_stage_INC_constraint1_ -3
- p_first_stage_INC_delta(2) c_e_p_first_stage_INC_constraint2_ 1
- p_first_stage_INC_delta(2) c_u_p_first_stage_INC_constraint3(1)_ 1
- p_first_stage_INC_delta(2) c_u_p_first_stage_INC_constraint4(2)_ -1
- p_first_stage_INC_delta(3) c_e_p_first_stage_INC_constraint1_ -2
- p_first_stage_INC_delta(3) c_e_p_first_stage_INC_constraint2_ -1
- p_first_stage_INC_delta(3) c_u_p_first_stage_INC_constraint3(2)_ 1
- p_first_stage_INC_delta(3) c_u_p_first_stage_INC_constraint4(3)_ -1
- p_first_stage_INC_delta(4) c_e_p_first_stage_INC_constraint1_ -3
- p_first_stage_INC_delta(4) c_u_p_first_stage_INC_constraint3(3)_ 1
- p_first_stage_INC_bin_y(1) c_u_p_first_stage_INC_constraint3(1)_ -1
- p_first_stage_INC_bin_y(1) c_u_p_first_stage_INC_constraint4(1)_ 1
- p_first_stage_INC_bin_y(2) c_u_p_first_stage_INC_constraint3(2)_ -1
- p_first_stage_INC_bin_y(2) c_u_p_first_stage_INC_constraint4(2)_ 1
- p_first_stage_INC_bin_y(3) c_u_p_first_stage_INC_constraint3(3)_ -1
- p_first_stage_INC_bin_y(3) c_u_p_first_stage_INC_constraint4(3)_ 1
- p_second_stage(1)_INC_delta(1) c_e_p_second_stage(1)_INC_constraint1_ -5
- p_second_stage(1)_INC_delta(1) c_u_p_second_stage(1)_INC_constraint4(1)_ -1
- p_second_stage(1)_INC_delta(2) c_e_p_second_stage(1)_INC_constraint1_ -5
- p_second_stage(1)_INC_delta(2) c_e_p_second_stage(1)_INC_constraint2_ 1
- p_second_stage(1)_INC_delta(2) c_u_p_second_stage(1)_INC_constraint3(1)_ 1
- p_second_stage(1)_INC_delta(2) c_u_p_second_stage(1)_INC_constraint4(2)_ -1
- p_second_stage(1)_INC_delta(3) c_e_p_second_stage(1)_INC_constraint1_ -5
- p_second_stage(1)_INC_delta(3) c_e_p_second_stage(1)_INC_constraint2_ -5
- p_second_stage(1)_INC_delta(3) c_u_p_second_stage(1)_INC_constraint3(2)_ 1
- p_second_stage(1)_INC_delta(3) c_u_p_second_stage(1)_INC_constraint4(3)_ -1
- p_second_stage(1)_INC_delta(4) c_e_p_second_stage(1)_INC_constraint1_ -5
- p_second_stage(1)_INC_delta(4) c_e_p_second_stage(1)_INC_constraint2_ 3
- p_second_stage(1)_INC_delta(4) c_u_p_second_stage(1)_INC_constraint3(3)_ 1
- p_second_stage(1)_INC_bin_y(1) c_u_p_second_stage(1)_INC_constraint3(1)_ -1
- p_second_stage(1)_INC_bin_y(1) c_u_p_second_stage(1)_INC_constraint4(1)_ 1
- p_second_stage(1)_INC_bin_y(2) c_u_p_second_stage(1)_INC_constraint3(2)_ -1
- p_second_stage(1)_INC_bin_y(2) c_u_p_second_stage(1)_INC_constraint4(2)_ 1
- p_second_stage(1)_INC_bin_y(3) c_u_p_second_stage(1)_INC_constraint3(3)_ -1
- p_second_stage(1)_INC_bin_y(3) c_u_p_second_stage(1)_INC_constraint4(3)_ 1
- ONE_VAR_CONSTANT o -2
- ONE_VAR_CONSTANT c_e_ONE_VAR_CONSTANT 1
-RHS
- RHS c_l_c_first_stage_ 0
- RHS c_l_c_second_stage_ -100
- RHS r_l_r_second_stage_ -2
- RHS r_u_r_second_stage_ 0
- RHS c_e_p_first_stage_INC_constraint1_ 0
- RHS c_e_p_first_stage_INC_constraint2_ 10
- RHS c_u_p_first_stage_INC_constraint3(1)_ 0
- RHS c_u_p_first_stage_INC_constraint3(2)_ 0
- RHS c_u_p_first_stage_INC_constraint3(3)_ 0
- RHS c_u_p_first_stage_INC_constraint4(1)_ 0
- RHS c_u_p_first_stage_INC_constraint4(2)_ 0
- RHS c_u_p_first_stage_INC_constraint4(3)_ 0
- RHS c_e_p_second_stage(1)_INC_constraint1_ -10
- RHS c_e_p_second_stage(1)_INC_constraint2_ 0
- RHS c_u_p_second_stage(1)_INC_constraint3(1)_ 0
- RHS c_u_p_second_stage(1)_INC_constraint3(2)_ 0
- RHS c_u_p_second_stage(1)_INC_constraint3(3)_ 0
- RHS c_u_p_second_stage(1)_INC_constraint4(1)_ 0
- RHS c_u_p_second_stage(1)_INC_constraint4(2)_ 0
- RHS c_u_p_second_stage(1)_INC_constraint4(3)_ 0
- RHS c_e_ONE_VAR_CONSTANT 1
-BOUNDS
- LO BOUND x 0
- UP BOUND x 10
- FR BOUND fx
- LO BOUND z -10
- UP BOUND z 10
- FR BOUND fz
- FR BOUND r
- MI BOUND p_first_stage_INC_delta(1)
- UP BOUND p_first_stage_INC_delta(1) 1
- FR BOUND p_first_stage_INC_delta(2)
- FR BOUND p_first_stage_INC_delta(3)
- LO BOUND p_first_stage_INC_delta(4) 0
- BV BOUND p_first_stage_INC_bin_y(1)
- BV BOUND p_first_stage_INC_bin_y(2)
- BV BOUND p_first_stage_INC_bin_y(3)
- MI BOUND p_second_stage(1)_INC_delta(1)
- UP BOUND p_second_stage(1)_INC_delta(1) 1
- FR BOUND p_second_stage(1)_INC_delta(2)
- FR BOUND p_second_stage(1)_INC_delta(3)
- LO BOUND p_second_stage(1)_INC_delta(4) 0
- BV BOUND p_second_stage(1)_INC_bin_y(1)
- BV BOUND p_second_stage(1)_INC_bin_y(2)
- BV BOUND p_second_stage(1)_INC_bin_y(3)
-ENDATA
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_symbolic_names_baseline/scenario_files/piecewise.sto.Scenario1 b/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_symbolic_names_baseline/scenario_files/piecewise.sto.Scenario1
deleted file mode 100644
index dde7bcea07e..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_symbolic_names_baseline/scenario_files/piecewise.sto.Scenario1
+++ /dev/null
@@ -1,37 +0,0 @@
- BL BLOCK1 PERIOD2 0.33333333329999998
- RHS c_e_p_second_stage(1)_INC_constraint1_ -10
- RHS c_e_p_second_stage(1)_INC_constraint2_ 0
- RHS c_u_p_second_stage(1)_INC_constraint3(1)_ 0
- RHS c_u_p_second_stage(1)_INC_constraint3(2)_ 0
- RHS c_u_p_second_stage(1)_INC_constraint3(3)_ 0
- RHS c_u_p_second_stage(1)_INC_constraint4(1)_ 0
- RHS c_u_p_second_stage(1)_INC_constraint4(2)_ 0
- RHS c_u_p_second_stage(1)_INC_constraint4(3)_ 0
- RHS r_l_r_second_stage_ 0
- RHS r_u_r_second_stage_ 0
- r c_l_c_second_stage_ 0
- p_second_stage(1)_INC_delta(1) c_e_p_second_stage(1)_INC_constraint1_ -5
- p_second_stage(1)_INC_delta(2) c_e_p_second_stage(1)_INC_constraint1_ -5
- p_second_stage(1)_INC_delta(3) c_e_p_second_stage(1)_INC_constraint1_ -5
- p_second_stage(1)_INC_delta(4) c_e_p_second_stage(1)_INC_constraint1_ -5
- z c_e_p_second_stage(1)_INC_constraint1_ 1
- fz c_e_p_second_stage(1)_INC_constraint2_ 1
- p_second_stage(1)_INC_delta(2) c_e_p_second_stage(1)_INC_constraint2_ 1
- p_second_stage(1)_INC_delta(3) c_e_p_second_stage(1)_INC_constraint2_ -3
- p_second_stage(1)_INC_delta(4) c_e_p_second_stage(1)_INC_constraint2_ 1
- p_second_stage(1)_INC_bin_y(1) c_u_p_second_stage(1)_INC_constraint3(1)_ -1
- p_second_stage(1)_INC_delta(2) c_u_p_second_stage(1)_INC_constraint3(1)_ 1
- p_second_stage(1)_INC_bin_y(2) c_u_p_second_stage(1)_INC_constraint3(2)_ -1
- p_second_stage(1)_INC_delta(3) c_u_p_second_stage(1)_INC_constraint3(2)_ 1
- p_second_stage(1)_INC_bin_y(3) c_u_p_second_stage(1)_INC_constraint3(3)_ -1
- p_second_stage(1)_INC_delta(4) c_u_p_second_stage(1)_INC_constraint3(3)_ 1
- p_second_stage(1)_INC_bin_y(1) c_u_p_second_stage(1)_INC_constraint4(1)_ 1
- p_second_stage(1)_INC_delta(1) c_u_p_second_stage(1)_INC_constraint4(1)_ -1
- p_second_stage(1)_INC_bin_y(2) c_u_p_second_stage(1)_INC_constraint4(2)_ 1
- p_second_stage(1)_INC_delta(2) c_u_p_second_stage(1)_INC_constraint4(2)_ -1
- p_second_stage(1)_INC_bin_y(3) c_u_p_second_stage(1)_INC_constraint4(3)_ 1
- p_second_stage(1)_INC_delta(3) c_u_p_second_stage(1)_INC_constraint4(3)_ -1
- fx o 1
- fz o -1
- r o 1
- ONE_VAR_CONSTANT o 0
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_symbolic_names_baseline/scenario_files/piecewise.sto.Scenario2 b/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_symbolic_names_baseline/scenario_files/piecewise.sto.Scenario2
deleted file mode 100644
index 4cf43964b4b..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_symbolic_names_baseline/scenario_files/piecewise.sto.Scenario2
+++ /dev/null
@@ -1,37 +0,0 @@
- BL BLOCK1 PERIOD2 0.33333333329999998
- RHS c_e_p_second_stage(1)_INC_constraint1_ -10
- RHS c_e_p_second_stage(1)_INC_constraint2_ 0
- RHS c_u_p_second_stage(1)_INC_constraint3(1)_ 0
- RHS c_u_p_second_stage(1)_INC_constraint3(2)_ 0
- RHS c_u_p_second_stage(1)_INC_constraint3(3)_ 0
- RHS c_u_p_second_stage(1)_INC_constraint4(1)_ 0
- RHS c_u_p_second_stage(1)_INC_constraint4(2)_ 0
- RHS c_u_p_second_stage(1)_INC_constraint4(3)_ 0
- RHS r_l_r_second_stage_ -1
- RHS r_u_r_second_stage_ 0
- r c_l_c_second_stage_ 1
- p_second_stage(1)_INC_delta(1) c_e_p_second_stage(1)_INC_constraint1_ -5
- p_second_stage(1)_INC_delta(2) c_e_p_second_stage(1)_INC_constraint1_ -5
- p_second_stage(1)_INC_delta(3) c_e_p_second_stage(1)_INC_constraint1_ -5
- p_second_stage(1)_INC_delta(4) c_e_p_second_stage(1)_INC_constraint1_ -5
- z c_e_p_second_stage(1)_INC_constraint1_ 1
- fz c_e_p_second_stage(1)_INC_constraint2_ 1
- p_second_stage(1)_INC_delta(2) c_e_p_second_stage(1)_INC_constraint2_ 1
- p_second_stage(1)_INC_delta(3) c_e_p_second_stage(1)_INC_constraint2_ -4
- p_second_stage(1)_INC_delta(4) c_e_p_second_stage(1)_INC_constraint2_ 2
- p_second_stage(1)_INC_bin_y(1) c_u_p_second_stage(1)_INC_constraint3(1)_ -1
- p_second_stage(1)_INC_delta(2) c_u_p_second_stage(1)_INC_constraint3(1)_ 1
- p_second_stage(1)_INC_bin_y(2) c_u_p_second_stage(1)_INC_constraint3(2)_ -1
- p_second_stage(1)_INC_delta(3) c_u_p_second_stage(1)_INC_constraint3(2)_ 1
- p_second_stage(1)_INC_bin_y(3) c_u_p_second_stage(1)_INC_constraint3(3)_ -1
- p_second_stage(1)_INC_delta(4) c_u_p_second_stage(1)_INC_constraint3(3)_ 1
- p_second_stage(1)_INC_bin_y(1) c_u_p_second_stage(1)_INC_constraint4(1)_ 1
- p_second_stage(1)_INC_delta(1) c_u_p_second_stage(1)_INC_constraint4(1)_ -1
- p_second_stage(1)_INC_bin_y(2) c_u_p_second_stage(1)_INC_constraint4(2)_ 1
- p_second_stage(1)_INC_delta(2) c_u_p_second_stage(1)_INC_constraint4(2)_ -1
- p_second_stage(1)_INC_bin_y(3) c_u_p_second_stage(1)_INC_constraint4(3)_ 1
- p_second_stage(1)_INC_delta(3) c_u_p_second_stage(1)_INC_constraint4(3)_ -1
- fx o 1
- fz o -1
- r o 1
- ONE_VAR_CONSTANT o -1
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_symbolic_names_baseline/scenario_files/piecewise.sto.Scenario3 b/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_symbolic_names_baseline/scenario_files/piecewise.sto.Scenario3
deleted file mode 100644
index b2f6b9f65ae..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_symbolic_names_baseline/scenario_files/piecewise.sto.Scenario3
+++ /dev/null
@@ -1,37 +0,0 @@
- BL BLOCK1 PERIOD2 0.33333333329999998
- RHS c_e_p_second_stage(1)_INC_constraint1_ -10
- RHS c_e_p_second_stage(1)_INC_constraint2_ 0
- RHS c_u_p_second_stage(1)_INC_constraint3(1)_ 0
- RHS c_u_p_second_stage(1)_INC_constraint3(2)_ 0
- RHS c_u_p_second_stage(1)_INC_constraint3(3)_ 0
- RHS c_u_p_second_stage(1)_INC_constraint4(1)_ 0
- RHS c_u_p_second_stage(1)_INC_constraint4(2)_ 0
- RHS c_u_p_second_stage(1)_INC_constraint4(3)_ 0
- RHS r_l_r_second_stage_ -2
- RHS r_u_r_second_stage_ 0
- r c_l_c_second_stage_ 2
- p_second_stage(1)_INC_delta(1) c_e_p_second_stage(1)_INC_constraint1_ -5
- p_second_stage(1)_INC_delta(2) c_e_p_second_stage(1)_INC_constraint1_ -5
- p_second_stage(1)_INC_delta(3) c_e_p_second_stage(1)_INC_constraint1_ -5
- p_second_stage(1)_INC_delta(4) c_e_p_second_stage(1)_INC_constraint1_ -5
- z c_e_p_second_stage(1)_INC_constraint1_ 1
- fz c_e_p_second_stage(1)_INC_constraint2_ 1
- p_second_stage(1)_INC_delta(2) c_e_p_second_stage(1)_INC_constraint2_ 1
- p_second_stage(1)_INC_delta(3) c_e_p_second_stage(1)_INC_constraint2_ -5
- p_second_stage(1)_INC_delta(4) c_e_p_second_stage(1)_INC_constraint2_ 3
- p_second_stage(1)_INC_bin_y(1) c_u_p_second_stage(1)_INC_constraint3(1)_ -1
- p_second_stage(1)_INC_delta(2) c_u_p_second_stage(1)_INC_constraint3(1)_ 1
- p_second_stage(1)_INC_bin_y(2) c_u_p_second_stage(1)_INC_constraint3(2)_ -1
- p_second_stage(1)_INC_delta(3) c_u_p_second_stage(1)_INC_constraint3(2)_ 1
- p_second_stage(1)_INC_bin_y(3) c_u_p_second_stage(1)_INC_constraint3(3)_ -1
- p_second_stage(1)_INC_delta(4) c_u_p_second_stage(1)_INC_constraint3(3)_ 1
- p_second_stage(1)_INC_bin_y(1) c_u_p_second_stage(1)_INC_constraint4(1)_ 1
- p_second_stage(1)_INC_delta(1) c_u_p_second_stage(1)_INC_constraint4(1)_ -1
- p_second_stage(1)_INC_bin_y(2) c_u_p_second_stage(1)_INC_constraint4(2)_ 1
- p_second_stage(1)_INC_delta(2) c_u_p_second_stage(1)_INC_constraint4(2)_ -1
- p_second_stage(1)_INC_bin_y(3) c_u_p_second_stage(1)_INC_constraint4(3)_ 1
- p_second_stage(1)_INC_delta(3) c_u_p_second_stage(1)_INC_constraint4(3)_ -1
- fx o 1
- fz o -1
- r o 1
- ONE_VAR_CONSTANT o -2
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_symbolic_names_baseline/scenario_files/piecewise.sto.struct.Scenario1 b/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_symbolic_names_baseline/scenario_files/piecewise.sto.struct.Scenario1
deleted file mode 100644
index 92b231fef93..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_symbolic_names_baseline/scenario_files/piecewise.sto.struct.Scenario1
+++ /dev/null
@@ -1,36 +0,0 @@
-RHS c_e_p_second_stage(1)_INC_constraint1_
-RHS c_e_p_second_stage(1)_INC_constraint2_
-RHS c_u_p_second_stage(1)_INC_constraint3(1)_
-RHS c_u_p_second_stage(1)_INC_constraint3(2)_
-RHS c_u_p_second_stage(1)_INC_constraint3(3)_
-RHS c_u_p_second_stage(1)_INC_constraint4(1)_
-RHS c_u_p_second_stage(1)_INC_constraint4(2)_
-RHS c_u_p_second_stage(1)_INC_constraint4(3)_
-RHS r_l_r_second_stage_
-RHS r_u_r_second_stage_
-r c_l_c_second_stage_
-p_second_stage(1)_INC_delta(1) c_e_p_second_stage(1)_INC_constraint1_
-p_second_stage(1)_INC_delta(2) c_e_p_second_stage(1)_INC_constraint1_
-p_second_stage(1)_INC_delta(3) c_e_p_second_stage(1)_INC_constraint1_
-p_second_stage(1)_INC_delta(4) c_e_p_second_stage(1)_INC_constraint1_
-z c_e_p_second_stage(1)_INC_constraint1_
-fz c_e_p_second_stage(1)_INC_constraint2_
-p_second_stage(1)_INC_delta(2) c_e_p_second_stage(1)_INC_constraint2_
-p_second_stage(1)_INC_delta(3) c_e_p_second_stage(1)_INC_constraint2_
-p_second_stage(1)_INC_delta(4) c_e_p_second_stage(1)_INC_constraint2_
-p_second_stage(1)_INC_bin_y(1) c_u_p_second_stage(1)_INC_constraint3(1)_
-p_second_stage(1)_INC_delta(2) c_u_p_second_stage(1)_INC_constraint3(1)_
-p_second_stage(1)_INC_bin_y(2) c_u_p_second_stage(1)_INC_constraint3(2)_
-p_second_stage(1)_INC_delta(3) c_u_p_second_stage(1)_INC_constraint3(2)_
-p_second_stage(1)_INC_bin_y(3) c_u_p_second_stage(1)_INC_constraint3(3)_
-p_second_stage(1)_INC_delta(4) c_u_p_second_stage(1)_INC_constraint3(3)_
-p_second_stage(1)_INC_bin_y(1) c_u_p_second_stage(1)_INC_constraint4(1)_
-p_second_stage(1)_INC_delta(1) c_u_p_second_stage(1)_INC_constraint4(1)_
-p_second_stage(1)_INC_bin_y(2) c_u_p_second_stage(1)_INC_constraint4(2)_
-p_second_stage(1)_INC_delta(2) c_u_p_second_stage(1)_INC_constraint4(2)_
-p_second_stage(1)_INC_bin_y(3) c_u_p_second_stage(1)_INC_constraint4(3)_
-p_second_stage(1)_INC_delta(3) c_u_p_second_stage(1)_INC_constraint4(3)_
-fx o
-fz o
-r o
-ONE_VAR_CONSTANT o
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_symbolic_names_baseline/scenario_files/piecewise.sto.struct.Scenario2 b/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_symbolic_names_baseline/scenario_files/piecewise.sto.struct.Scenario2
deleted file mode 100644
index 92b231fef93..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_symbolic_names_baseline/scenario_files/piecewise.sto.struct.Scenario2
+++ /dev/null
@@ -1,36 +0,0 @@
-RHS c_e_p_second_stage(1)_INC_constraint1_
-RHS c_e_p_second_stage(1)_INC_constraint2_
-RHS c_u_p_second_stage(1)_INC_constraint3(1)_
-RHS c_u_p_second_stage(1)_INC_constraint3(2)_
-RHS c_u_p_second_stage(1)_INC_constraint3(3)_
-RHS c_u_p_second_stage(1)_INC_constraint4(1)_
-RHS c_u_p_second_stage(1)_INC_constraint4(2)_
-RHS c_u_p_second_stage(1)_INC_constraint4(3)_
-RHS r_l_r_second_stage_
-RHS r_u_r_second_stage_
-r c_l_c_second_stage_
-p_second_stage(1)_INC_delta(1) c_e_p_second_stage(1)_INC_constraint1_
-p_second_stage(1)_INC_delta(2) c_e_p_second_stage(1)_INC_constraint1_
-p_second_stage(1)_INC_delta(3) c_e_p_second_stage(1)_INC_constraint1_
-p_second_stage(1)_INC_delta(4) c_e_p_second_stage(1)_INC_constraint1_
-z c_e_p_second_stage(1)_INC_constraint1_
-fz c_e_p_second_stage(1)_INC_constraint2_
-p_second_stage(1)_INC_delta(2) c_e_p_second_stage(1)_INC_constraint2_
-p_second_stage(1)_INC_delta(3) c_e_p_second_stage(1)_INC_constraint2_
-p_second_stage(1)_INC_delta(4) c_e_p_second_stage(1)_INC_constraint2_
-p_second_stage(1)_INC_bin_y(1) c_u_p_second_stage(1)_INC_constraint3(1)_
-p_second_stage(1)_INC_delta(2) c_u_p_second_stage(1)_INC_constraint3(1)_
-p_second_stage(1)_INC_bin_y(2) c_u_p_second_stage(1)_INC_constraint3(2)_
-p_second_stage(1)_INC_delta(3) c_u_p_second_stage(1)_INC_constraint3(2)_
-p_second_stage(1)_INC_bin_y(3) c_u_p_second_stage(1)_INC_constraint3(3)_
-p_second_stage(1)_INC_delta(4) c_u_p_second_stage(1)_INC_constraint3(3)_
-p_second_stage(1)_INC_bin_y(1) c_u_p_second_stage(1)_INC_constraint4(1)_
-p_second_stage(1)_INC_delta(1) c_u_p_second_stage(1)_INC_constraint4(1)_
-p_second_stage(1)_INC_bin_y(2) c_u_p_second_stage(1)_INC_constraint4(2)_
-p_second_stage(1)_INC_delta(2) c_u_p_second_stage(1)_INC_constraint4(2)_
-p_second_stage(1)_INC_bin_y(3) c_u_p_second_stage(1)_INC_constraint4(3)_
-p_second_stage(1)_INC_delta(3) c_u_p_second_stage(1)_INC_constraint4(3)_
-fx o
-fz o
-r o
-ONE_VAR_CONSTANT o
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_symbolic_names_baseline/scenario_files/piecewise.sto.struct.Scenario3 b/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_symbolic_names_baseline/scenario_files/piecewise.sto.struct.Scenario3
deleted file mode 100644
index 92b231fef93..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_symbolic_names_baseline/scenario_files/piecewise.sto.struct.Scenario3
+++ /dev/null
@@ -1,36 +0,0 @@
-RHS c_e_p_second_stage(1)_INC_constraint1_
-RHS c_e_p_second_stage(1)_INC_constraint2_
-RHS c_u_p_second_stage(1)_INC_constraint3(1)_
-RHS c_u_p_second_stage(1)_INC_constraint3(2)_
-RHS c_u_p_second_stage(1)_INC_constraint3(3)_
-RHS c_u_p_second_stage(1)_INC_constraint4(1)_
-RHS c_u_p_second_stage(1)_INC_constraint4(2)_
-RHS c_u_p_second_stage(1)_INC_constraint4(3)_
-RHS r_l_r_second_stage_
-RHS r_u_r_second_stage_
-r c_l_c_second_stage_
-p_second_stage(1)_INC_delta(1) c_e_p_second_stage(1)_INC_constraint1_
-p_second_stage(1)_INC_delta(2) c_e_p_second_stage(1)_INC_constraint1_
-p_second_stage(1)_INC_delta(3) c_e_p_second_stage(1)_INC_constraint1_
-p_second_stage(1)_INC_delta(4) c_e_p_second_stage(1)_INC_constraint1_
-z c_e_p_second_stage(1)_INC_constraint1_
-fz c_e_p_second_stage(1)_INC_constraint2_
-p_second_stage(1)_INC_delta(2) c_e_p_second_stage(1)_INC_constraint2_
-p_second_stage(1)_INC_delta(3) c_e_p_second_stage(1)_INC_constraint2_
-p_second_stage(1)_INC_delta(4) c_e_p_second_stage(1)_INC_constraint2_
-p_second_stage(1)_INC_bin_y(1) c_u_p_second_stage(1)_INC_constraint3(1)_
-p_second_stage(1)_INC_delta(2) c_u_p_second_stage(1)_INC_constraint3(1)_
-p_second_stage(1)_INC_bin_y(2) c_u_p_second_stage(1)_INC_constraint3(2)_
-p_second_stage(1)_INC_delta(3) c_u_p_second_stage(1)_INC_constraint3(2)_
-p_second_stage(1)_INC_bin_y(3) c_u_p_second_stage(1)_INC_constraint3(3)_
-p_second_stage(1)_INC_delta(4) c_u_p_second_stage(1)_INC_constraint3(3)_
-p_second_stage(1)_INC_bin_y(1) c_u_p_second_stage(1)_INC_constraint4(1)_
-p_second_stage(1)_INC_delta(1) c_u_p_second_stage(1)_INC_constraint4(1)_
-p_second_stage(1)_INC_bin_y(2) c_u_p_second_stage(1)_INC_constraint4(2)_
-p_second_stage(1)_INC_delta(2) c_u_p_second_stage(1)_INC_constraint4(2)_
-p_second_stage(1)_INC_bin_y(3) c_u_p_second_stage(1)_INC_constraint4(3)_
-p_second_stage(1)_INC_delta(3) c_u_p_second_stage(1)_INC_constraint4(3)_
-fx o
-fz o
-r o
-ONE_VAR_CONSTANT o
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_symbolic_names_baseline/scenario_files/piecewise.tim.Scenario1 b/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_symbolic_names_baseline/scenario_files/piecewise.tim.Scenario1
deleted file mode 100644
index 4f8757d24bf..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_symbolic_names_baseline/scenario_files/piecewise.tim.Scenario1
+++ /dev/null
@@ -1,5 +0,0 @@
-TIME piecewise
-PERIODS IMPLICIT
- x o TIME1
- fx c_e_p_first_stage_INC_constraint1_ TIME2
-ENDATA
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_symbolic_names_baseline/scenario_files/piecewise.tim.Scenario2 b/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_symbolic_names_baseline/scenario_files/piecewise.tim.Scenario2
deleted file mode 100644
index 4f8757d24bf..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_symbolic_names_baseline/scenario_files/piecewise.tim.Scenario2
+++ /dev/null
@@ -1,5 +0,0 @@
-TIME piecewise
-PERIODS IMPLICIT
- x o TIME1
- fx c_e_p_first_stage_INC_constraint1_ TIME2
-ENDATA
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_symbolic_names_baseline/scenario_files/piecewise.tim.Scenario3 b/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_symbolic_names_baseline/scenario_files/piecewise.tim.Scenario3
deleted file mode 100644
index 4f8757d24bf..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_symbolic_names_baseline/scenario_files/piecewise.tim.Scenario3
+++ /dev/null
@@ -1,5 +0,0 @@
-TIME piecewise
-PERIODS IMPLICIT
- x o TIME1
- fx c_e_p_first_stage_INC_constraint1_ TIME2
-ENDATA
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_symbolic_names_ignore_derived_baseline/piecewise.col b/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_symbolic_names_ignore_derived_baseline/piecewise.col
deleted file mode 100644
index 6e2c4d0e629..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_symbolic_names_ignore_derived_baseline/piecewise.col
+++ /dev/null
@@ -1,20 +0,0 @@
-fx
-p_first_stage_INC_bin_y(1)
-p_first_stage_INC_bin_y(2)
-p_first_stage_INC_bin_y(3)
-p_first_stage_INC_delta(1)
-p_first_stage_INC_delta(2)
-p_first_stage_INC_delta(3)
-p_first_stage_INC_delta(4)
-x
-fz
-p_second_stage(1)_INC_bin_y(1)
-p_second_stage(1)_INC_bin_y(2)
-p_second_stage(1)_INC_bin_y(3)
-p_second_stage(1)_INC_delta(1)
-p_second_stage(1)_INC_delta(2)
-p_second_stage(1)_INC_delta(3)
-p_second_stage(1)_INC_delta(4)
-r
-z
-ONE_VAR_CONSTANT
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_symbolic_names_ignore_derived_baseline/piecewise.cor b/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_symbolic_names_ignore_derived_baseline/piecewise.cor
deleted file mode 100644
index bb5ddf70c35..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_symbolic_names_ignore_derived_baseline/piecewise.cor
+++ /dev/null
@@ -1,128 +0,0 @@
-* Source: Pyomo MPS Writer
-* Format: Free MPS
-*
-NAME Scenario1
-OBJSENSE
- MIN
-ROWS
- N o
- E c_e_p_first_stage_INC_constraint1_
- E c_e_p_first_stage_INC_constraint2_
- G c_l_c_first_stage_
- L c_u_p_first_stage_INC_constraint3(1)_
- L c_u_p_first_stage_INC_constraint3(2)_
- L c_u_p_first_stage_INC_constraint3(3)_
- L c_u_p_first_stage_INC_constraint4(1)_
- L c_u_p_first_stage_INC_constraint4(2)_
- L c_u_p_first_stage_INC_constraint4(3)_
- E c_e_p_second_stage(1)_INC_constraint1_
- E c_e_p_second_stage(1)_INC_constraint2_
- G c_l_c_second_stage_
- L c_u_p_second_stage(1)_INC_constraint3(1)_
- L c_u_p_second_stage(1)_INC_constraint3(2)_
- L c_u_p_second_stage(1)_INC_constraint3(3)_
- L c_u_p_second_stage(1)_INC_constraint4(1)_
- L c_u_p_second_stage(1)_INC_constraint4(2)_
- L c_u_p_second_stage(1)_INC_constraint4(3)_
- G r_l_r_second_stage_
- L r_u_r_second_stage_
- E c_e_ONE_VAR_CONSTANT
-COLUMNS
- fx o 1
- fx c_e_p_first_stage_INC_constraint2_ 1
- p_first_stage_INC_bin_y(1) c_u_p_first_stage_INC_constraint3(1)_ -1
- p_first_stage_INC_bin_y(1) c_u_p_first_stage_INC_constraint4(1)_ 1
- p_first_stage_INC_bin_y(2) c_u_p_first_stage_INC_constraint3(2)_ -1
- p_first_stage_INC_bin_y(2) c_u_p_first_stage_INC_constraint4(2)_ 1
- p_first_stage_INC_bin_y(3) c_u_p_first_stage_INC_constraint3(3)_ -1
- p_first_stage_INC_bin_y(3) c_u_p_first_stage_INC_constraint4(3)_ 1
- p_first_stage_INC_delta(1) c_e_p_first_stage_INC_constraint1_ -2
- p_first_stage_INC_delta(1) c_u_p_first_stage_INC_constraint4(1)_ -1
- p_first_stage_INC_delta(2) c_e_p_first_stage_INC_constraint1_ -3
- p_first_stage_INC_delta(2) c_e_p_first_stage_INC_constraint2_ 1
- p_first_stage_INC_delta(2) c_u_p_first_stage_INC_constraint3(1)_ 1
- p_first_stage_INC_delta(2) c_u_p_first_stage_INC_constraint4(2)_ -1
- p_first_stage_INC_delta(3) c_e_p_first_stage_INC_constraint1_ -2
- p_first_stage_INC_delta(3) c_e_p_first_stage_INC_constraint2_ -1
- p_first_stage_INC_delta(3) c_u_p_first_stage_INC_constraint3(2)_ 1
- p_first_stage_INC_delta(3) c_u_p_first_stage_INC_constraint4(3)_ -1
- p_first_stage_INC_delta(4) c_e_p_first_stage_INC_constraint1_ -3
- p_first_stage_INC_delta(4) c_u_p_first_stage_INC_constraint3(3)_ 1
- x c_e_p_first_stage_INC_constraint1_ 1
- x c_l_c_first_stage_ 1
- x c_l_c_second_stage_ 1
- fz o -1
- fz c_e_p_second_stage(1)_INC_constraint2_ 1
- p_second_stage(1)_INC_bin_y(1) c_u_p_second_stage(1)_INC_constraint3(1)_ -1
- p_second_stage(1)_INC_bin_y(1) c_u_p_second_stage(1)_INC_constraint4(1)_ 1
- p_second_stage(1)_INC_bin_y(2) c_u_p_second_stage(1)_INC_constraint3(2)_ -1
- p_second_stage(1)_INC_bin_y(2) c_u_p_second_stage(1)_INC_constraint4(2)_ 1
- p_second_stage(1)_INC_bin_y(3) c_u_p_second_stage(1)_INC_constraint3(3)_ -1
- p_second_stage(1)_INC_bin_y(3) c_u_p_second_stage(1)_INC_constraint4(3)_ 1
- p_second_stage(1)_INC_delta(1) c_e_p_second_stage(1)_INC_constraint1_ -5
- p_second_stage(1)_INC_delta(1) c_u_p_second_stage(1)_INC_constraint4(1)_ -1
- p_second_stage(1)_INC_delta(2) c_e_p_second_stage(1)_INC_constraint1_ -5
- p_second_stage(1)_INC_delta(2) c_e_p_second_stage(1)_INC_constraint2_ 1
- p_second_stage(1)_INC_delta(2) c_u_p_second_stage(1)_INC_constraint3(1)_ 1
- p_second_stage(1)_INC_delta(2) c_u_p_second_stage(1)_INC_constraint4(2)_ -1
- p_second_stage(1)_INC_delta(3) c_e_p_second_stage(1)_INC_constraint1_ -5
- p_second_stage(1)_INC_delta(3) c_e_p_second_stage(1)_INC_constraint2_ -3
- p_second_stage(1)_INC_delta(3) c_u_p_second_stage(1)_INC_constraint3(2)_ 1
- p_second_stage(1)_INC_delta(3) c_u_p_second_stage(1)_INC_constraint4(3)_ -1
- p_second_stage(1)_INC_delta(4) c_e_p_second_stage(1)_INC_constraint1_ -5
- p_second_stage(1)_INC_delta(4) c_e_p_second_stage(1)_INC_constraint2_ 1
- p_second_stage(1)_INC_delta(4) c_u_p_second_stage(1)_INC_constraint3(3)_ 1
- r o 1
- r c_l_c_second_stage_ 0
- r r_l_r_second_stage_ 1
- r r_u_r_second_stage_ 1
- z c_e_p_second_stage(1)_INC_constraint1_ 1
- ONE_VAR_CONSTANT o 0
- ONE_VAR_CONSTANT c_e_ONE_VAR_CONSTANT 1
-RHS
- RHS c_e_p_first_stage_INC_constraint1_ 0
- RHS c_e_p_first_stage_INC_constraint2_ 10
- RHS c_l_c_first_stage_ 0
- RHS c_u_p_first_stage_INC_constraint3(1)_ 0
- RHS c_u_p_first_stage_INC_constraint3(2)_ 0
- RHS c_u_p_first_stage_INC_constraint3(3)_ 0
- RHS c_u_p_first_stage_INC_constraint4(1)_ 0
- RHS c_u_p_first_stage_INC_constraint4(2)_ 0
- RHS c_u_p_first_stage_INC_constraint4(3)_ 0
- RHS c_e_p_second_stage(1)_INC_constraint1_ -10
- RHS c_e_p_second_stage(1)_INC_constraint2_ 0
- RHS c_l_c_second_stage_ -100
- RHS c_u_p_second_stage(1)_INC_constraint3(1)_ 0
- RHS c_u_p_second_stage(1)_INC_constraint3(2)_ 0
- RHS c_u_p_second_stage(1)_INC_constraint3(3)_ 0
- RHS c_u_p_second_stage(1)_INC_constraint4(1)_ 0
- RHS c_u_p_second_stage(1)_INC_constraint4(2)_ 0
- RHS c_u_p_second_stage(1)_INC_constraint4(3)_ 0
- RHS r_l_r_second_stage_ 0
- RHS r_u_r_second_stage_ 0
- RHS c_e_ONE_VAR_CONSTANT 1
-BOUNDS
- FR BOUND fx
- BV BOUND p_first_stage_INC_bin_y(1)
- BV BOUND p_first_stage_INC_bin_y(2)
- BV BOUND p_first_stage_INC_bin_y(3)
- MI BOUND p_first_stage_INC_delta(1)
- UP BOUND p_first_stage_INC_delta(1) 1
- FR BOUND p_first_stage_INC_delta(2)
- FR BOUND p_first_stage_INC_delta(3)
- LO BOUND p_first_stage_INC_delta(4) 0
- LO BOUND x 0
- UP BOUND x 10
- FR BOUND fz
- BV BOUND p_second_stage(1)_INC_bin_y(1)
- BV BOUND p_second_stage(1)_INC_bin_y(2)
- BV BOUND p_second_stage(1)_INC_bin_y(3)
- MI BOUND p_second_stage(1)_INC_delta(1)
- UP BOUND p_second_stage(1)_INC_delta(1) 1
- FR BOUND p_second_stage(1)_INC_delta(2)
- FR BOUND p_second_stage(1)_INC_delta(3)
- LO BOUND p_second_stage(1)_INC_delta(4) 0
- FR BOUND r
- LO BOUND z -10
- UP BOUND z 10
-ENDATA
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_symbolic_names_ignore_derived_baseline/piecewise.cor.symbols b/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_symbolic_names_ignore_derived_baseline/piecewise.cor.symbols
deleted file mode 100644
index 3ea722dd807..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_symbolic_names_ignore_derived_baseline/piecewise.cor.symbols
+++ /dev/null
@@ -1,9 +0,0 @@
-fx fx
-p_first_stage_INC_bin_y(1) p_first_stage.INC_bin_y:#1
-p_first_stage_INC_bin_y(2) p_first_stage.INC_bin_y:#2
-p_first_stage_INC_bin_y(3) p_first_stage.INC_bin_y:#3
-p_first_stage_INC_delta(1) p_first_stage.INC_delta:#1
-p_first_stage_INC_delta(2) p_first_stage.INC_delta:#2
-p_first_stage_INC_delta(3) p_first_stage.INC_delta:#3
-p_first_stage_INC_delta(4) p_first_stage.INC_delta:#4
-x x
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_symbolic_names_ignore_derived_baseline/piecewise.mps.det b/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_symbolic_names_ignore_derived_baseline/piecewise.mps.det
deleted file mode 100644
index 9f167dfde11..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_symbolic_names_ignore_derived_baseline/piecewise.mps.det
+++ /dev/null
@@ -1,128 +0,0 @@
-* Source: Pyomo MPS Writer
-* Format: Free MPS
-*
-NAME ZeroStochasticData
-OBJSENSE
- MIN
-ROWS
- N o
- E c_e_p_first_stage_INC_constraint1_
- E c_e_p_first_stage_INC_constraint2_
- G c_l_c_first_stage_
- L c_u_p_first_stage_INC_constraint3(1)_
- L c_u_p_first_stage_INC_constraint3(2)_
- L c_u_p_first_stage_INC_constraint3(3)_
- L c_u_p_first_stage_INC_constraint4(1)_
- L c_u_p_first_stage_INC_constraint4(2)_
- L c_u_p_first_stage_INC_constraint4(3)_
- E c_e_p_second_stage(1)_INC_constraint1_
- E c_e_p_second_stage(1)_INC_constraint2_
- G c_l_c_second_stage_
- L c_u_p_second_stage(1)_INC_constraint3(1)_
- L c_u_p_second_stage(1)_INC_constraint3(2)_
- L c_u_p_second_stage(1)_INC_constraint3(3)_
- L c_u_p_second_stage(1)_INC_constraint4(1)_
- L c_u_p_second_stage(1)_INC_constraint4(2)_
- L c_u_p_second_stage(1)_INC_constraint4(3)_
- G r_l_r_second_stage_
- L r_u_r_second_stage_
- E c_e_ONE_VAR_CONSTANT
-COLUMNS
- fx o -9876543210
- fx c_e_p_first_stage_INC_constraint2_ 1
- p_first_stage_INC_bin_y(1) c_u_p_first_stage_INC_constraint3(1)_ -1
- p_first_stage_INC_bin_y(1) c_u_p_first_stage_INC_constraint4(1)_ 1
- p_first_stage_INC_bin_y(2) c_u_p_first_stage_INC_constraint3(2)_ -1
- p_first_stage_INC_bin_y(2) c_u_p_first_stage_INC_constraint4(2)_ 1
- p_first_stage_INC_bin_y(3) c_u_p_first_stage_INC_constraint3(3)_ -1
- p_first_stage_INC_bin_y(3) c_u_p_first_stage_INC_constraint4(3)_ 1
- p_first_stage_INC_delta(1) c_e_p_first_stage_INC_constraint1_ -2
- p_first_stage_INC_delta(1) c_u_p_first_stage_INC_constraint4(1)_ -1
- p_first_stage_INC_delta(2) c_e_p_first_stage_INC_constraint1_ -3
- p_first_stage_INC_delta(2) c_e_p_first_stage_INC_constraint2_ 1
- p_first_stage_INC_delta(2) c_u_p_first_stage_INC_constraint3(1)_ 1
- p_first_stage_INC_delta(2) c_u_p_first_stage_INC_constraint4(2)_ -1
- p_first_stage_INC_delta(3) c_e_p_first_stage_INC_constraint1_ -2
- p_first_stage_INC_delta(3) c_e_p_first_stage_INC_constraint2_ -1
- p_first_stage_INC_delta(3) c_u_p_first_stage_INC_constraint3(2)_ 1
- p_first_stage_INC_delta(3) c_u_p_first_stage_INC_constraint4(3)_ -1
- p_first_stage_INC_delta(4) c_e_p_first_stage_INC_constraint1_ -3
- p_first_stage_INC_delta(4) c_u_p_first_stage_INC_constraint3(3)_ 1
- x c_e_p_first_stage_INC_constraint1_ 1
- x c_l_c_first_stage_ 1
- x c_l_c_second_stage_ 1
- fz o -9876543210
- fz c_e_p_second_stage(1)_INC_constraint2_ -9876543210
- p_second_stage(1)_INC_bin_y(1) c_u_p_second_stage(1)_INC_constraint3(1)_ -9876543210
- p_second_stage(1)_INC_bin_y(1) c_u_p_second_stage(1)_INC_constraint4(1)_ -9876543210
- p_second_stage(1)_INC_bin_y(2) c_u_p_second_stage(1)_INC_constraint3(2)_ -9876543210
- p_second_stage(1)_INC_bin_y(2) c_u_p_second_stage(1)_INC_constraint4(2)_ -9876543210
- p_second_stage(1)_INC_bin_y(3) c_u_p_second_stage(1)_INC_constraint3(3)_ -9876543210
- p_second_stage(1)_INC_bin_y(3) c_u_p_second_stage(1)_INC_constraint4(3)_ -9876543210
- p_second_stage(1)_INC_delta(1) c_e_p_second_stage(1)_INC_constraint1_ -9876543210
- p_second_stage(1)_INC_delta(1) c_u_p_second_stage(1)_INC_constraint4(1)_ -9876543210
- p_second_stage(1)_INC_delta(2) c_e_p_second_stage(1)_INC_constraint1_ -9876543210
- p_second_stage(1)_INC_delta(2) c_e_p_second_stage(1)_INC_constraint2_ -9876543210
- p_second_stage(1)_INC_delta(2) c_u_p_second_stage(1)_INC_constraint3(1)_ -9876543210
- p_second_stage(1)_INC_delta(2) c_u_p_second_stage(1)_INC_constraint4(2)_ -9876543210
- p_second_stage(1)_INC_delta(3) c_e_p_second_stage(1)_INC_constraint1_ -9876543210
- p_second_stage(1)_INC_delta(3) c_e_p_second_stage(1)_INC_constraint2_ -9876543210
- p_second_stage(1)_INC_delta(3) c_u_p_second_stage(1)_INC_constraint3(2)_ -9876543210
- p_second_stage(1)_INC_delta(3) c_u_p_second_stage(1)_INC_constraint4(3)_ -9876543210
- p_second_stage(1)_INC_delta(4) c_e_p_second_stage(1)_INC_constraint1_ -9876543210
- p_second_stage(1)_INC_delta(4) c_e_p_second_stage(1)_INC_constraint2_ -9876543210
- p_second_stage(1)_INC_delta(4) c_u_p_second_stage(1)_INC_constraint3(3)_ -9876543210
- r o -9876543210
- r c_l_c_second_stage_ -9876543210
- r r_l_r_second_stage_ 1
- r r_u_r_second_stage_ 1
- z c_e_p_second_stage(1)_INC_constraint1_ -9876543210
- ONE_VAR_CONSTANT o 0
- ONE_VAR_CONSTANT c_e_ONE_VAR_CONSTANT 1
-RHS
- RHS c_e_p_first_stage_INC_constraint1_ 0
- RHS c_e_p_first_stage_INC_constraint2_ 10
- RHS c_l_c_first_stage_ 0
- RHS c_u_p_first_stage_INC_constraint3(1)_ 0
- RHS c_u_p_first_stage_INC_constraint3(2)_ 0
- RHS c_u_p_first_stage_INC_constraint3(3)_ 0
- RHS c_u_p_first_stage_INC_constraint4(1)_ 0
- RHS c_u_p_first_stage_INC_constraint4(2)_ 0
- RHS c_u_p_first_stage_INC_constraint4(3)_ 0
- RHS c_e_p_second_stage(1)_INC_constraint1_ -9876543210
- RHS c_e_p_second_stage(1)_INC_constraint2_ -9876543210
- RHS c_l_c_second_stage_ -100
- RHS c_u_p_second_stage(1)_INC_constraint3(1)_ -9876543210
- RHS c_u_p_second_stage(1)_INC_constraint3(2)_ -9876543210
- RHS c_u_p_second_stage(1)_INC_constraint3(3)_ -9876543210
- RHS c_u_p_second_stage(1)_INC_constraint4(1)_ -9876543210
- RHS c_u_p_second_stage(1)_INC_constraint4(2)_ -9876543210
- RHS c_u_p_second_stage(1)_INC_constraint4(3)_ -9876543210
- RHS r_l_r_second_stage_ -9876543210
- RHS r_u_r_second_stage_ -9876543210
- RHS c_e_ONE_VAR_CONSTANT 1
-BOUNDS
- FR BOUND fx
- BV BOUND p_first_stage_INC_bin_y(1)
- BV BOUND p_first_stage_INC_bin_y(2)
- BV BOUND p_first_stage_INC_bin_y(3)
- MI BOUND p_first_stage_INC_delta(1)
- UP BOUND p_first_stage_INC_delta(1) 1
- FR BOUND p_first_stage_INC_delta(2)
- FR BOUND p_first_stage_INC_delta(3)
- LO BOUND p_first_stage_INC_delta(4) 0
- LO BOUND x 0
- UP BOUND x 10
- FR BOUND fz
- BV BOUND p_second_stage(1)_INC_bin_y(1)
- BV BOUND p_second_stage(1)_INC_bin_y(2)
- BV BOUND p_second_stage(1)_INC_bin_y(3)
- MI BOUND p_second_stage(1)_INC_delta(1)
- UP BOUND p_second_stage(1)_INC_delta(1) 1
- FR BOUND p_second_stage(1)_INC_delta(2)
- FR BOUND p_second_stage(1)_INC_delta(3)
- LO BOUND p_second_stage(1)_INC_delta(4) 0
- FR BOUND r
- LO BOUND z -10
- UP BOUND z 10
-ENDATA
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_symbolic_names_ignore_derived_baseline/piecewise.row b/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_symbolic_names_ignore_derived_baseline/piecewise.row
deleted file mode 100644
index 12384c6692a..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_symbolic_names_ignore_derived_baseline/piecewise.row
+++ /dev/null
@@ -1,22 +0,0 @@
-o
-c_e_p_first_stage_INC_constraint1_
-c_e_p_first_stage_INC_constraint2_
-c_l_c_first_stage_
-c_u_p_first_stage_INC_constraint3(1)_
-c_u_p_first_stage_INC_constraint3(2)_
-c_u_p_first_stage_INC_constraint3(3)_
-c_u_p_first_stage_INC_constraint4(1)_
-c_u_p_first_stage_INC_constraint4(2)_
-c_u_p_first_stage_INC_constraint4(3)_
-c_e_p_second_stage(1)_INC_constraint1_
-c_e_p_second_stage(1)_INC_constraint2_
-c_l_c_second_stage_
-c_u_p_second_stage(1)_INC_constraint3(1)_
-c_u_p_second_stage(1)_INC_constraint3(2)_
-c_u_p_second_stage(1)_INC_constraint3(3)_
-c_u_p_second_stage(1)_INC_constraint4(1)_
-c_u_p_second_stage(1)_INC_constraint4(2)_
-c_u_p_second_stage(1)_INC_constraint4(3)_
-r_l_r_second_stage_
-r_u_r_second_stage_
-c_e_ONE_VAR_CONSTANT
\ No newline at end of file
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_symbolic_names_ignore_derived_baseline/piecewise.sto b/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_symbolic_names_ignore_derived_baseline/piecewise.sto
deleted file mode 100644
index 4658be0cad2..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_symbolic_names_ignore_derived_baseline/piecewise.sto
+++ /dev/null
@@ -1,114 +0,0 @@
-STOCH piecewise
-BLOCKS DISCRETE REPLACE
- BL BLOCK1 PERIOD2 0.33333333329999998
- RHS c_e_p_second_stage(1)_INC_constraint1_ -10
- RHS c_e_p_second_stage(1)_INC_constraint2_ 0
- RHS c_u_p_second_stage(1)_INC_constraint3(1)_ 0
- RHS c_u_p_second_stage(1)_INC_constraint3(2)_ 0
- RHS c_u_p_second_stage(1)_INC_constraint3(3)_ 0
- RHS c_u_p_second_stage(1)_INC_constraint4(1)_ 0
- RHS c_u_p_second_stage(1)_INC_constraint4(2)_ 0
- RHS c_u_p_second_stage(1)_INC_constraint4(3)_ 0
- RHS r_l_r_second_stage_ 0
- RHS r_u_r_second_stage_ 0
- r c_l_c_second_stage_ 0
- p_second_stage(1)_INC_delta(1) c_e_p_second_stage(1)_INC_constraint1_ -5
- p_second_stage(1)_INC_delta(2) c_e_p_second_stage(1)_INC_constraint1_ -5
- p_second_stage(1)_INC_delta(3) c_e_p_second_stage(1)_INC_constraint1_ -5
- p_second_stage(1)_INC_delta(4) c_e_p_second_stage(1)_INC_constraint1_ -5
- z c_e_p_second_stage(1)_INC_constraint1_ 1
- fz c_e_p_second_stage(1)_INC_constraint2_ 1
- p_second_stage(1)_INC_delta(2) c_e_p_second_stage(1)_INC_constraint2_ 1
- p_second_stage(1)_INC_delta(3) c_e_p_second_stage(1)_INC_constraint2_ -3
- p_second_stage(1)_INC_delta(4) c_e_p_second_stage(1)_INC_constraint2_ 1
- p_second_stage(1)_INC_bin_y(1) c_u_p_second_stage(1)_INC_constraint3(1)_ -1
- p_second_stage(1)_INC_delta(2) c_u_p_second_stage(1)_INC_constraint3(1)_ 1
- p_second_stage(1)_INC_bin_y(2) c_u_p_second_stage(1)_INC_constraint3(2)_ -1
- p_second_stage(1)_INC_delta(3) c_u_p_second_stage(1)_INC_constraint3(2)_ 1
- p_second_stage(1)_INC_bin_y(3) c_u_p_second_stage(1)_INC_constraint3(3)_ -1
- p_second_stage(1)_INC_delta(4) c_u_p_second_stage(1)_INC_constraint3(3)_ 1
- p_second_stage(1)_INC_bin_y(1) c_u_p_second_stage(1)_INC_constraint4(1)_ 1
- p_second_stage(1)_INC_delta(1) c_u_p_second_stage(1)_INC_constraint4(1)_ -1
- p_second_stage(1)_INC_bin_y(2) c_u_p_second_stage(1)_INC_constraint4(2)_ 1
- p_second_stage(1)_INC_delta(2) c_u_p_second_stage(1)_INC_constraint4(2)_ -1
- p_second_stage(1)_INC_bin_y(3) c_u_p_second_stage(1)_INC_constraint4(3)_ 1
- p_second_stage(1)_INC_delta(3) c_u_p_second_stage(1)_INC_constraint4(3)_ -1
- fx o 1
- fz o -1
- r o 1
- ONE_VAR_CONSTANT o 0
- BL BLOCK1 PERIOD2 0.33333333329999998
- RHS c_e_p_second_stage(1)_INC_constraint1_ -10
- RHS c_e_p_second_stage(1)_INC_constraint2_ 0
- RHS c_u_p_second_stage(1)_INC_constraint3(1)_ 0
- RHS c_u_p_second_stage(1)_INC_constraint3(2)_ 0
- RHS c_u_p_second_stage(1)_INC_constraint3(3)_ 0
- RHS c_u_p_second_stage(1)_INC_constraint4(1)_ 0
- RHS c_u_p_second_stage(1)_INC_constraint4(2)_ 0
- RHS c_u_p_second_stage(1)_INC_constraint4(3)_ 0
- RHS r_l_r_second_stage_ -1
- RHS r_u_r_second_stage_ 0
- r c_l_c_second_stage_ 1
- p_second_stage(1)_INC_delta(1) c_e_p_second_stage(1)_INC_constraint1_ -5
- p_second_stage(1)_INC_delta(2) c_e_p_second_stage(1)_INC_constraint1_ -5
- p_second_stage(1)_INC_delta(3) c_e_p_second_stage(1)_INC_constraint1_ -5
- p_second_stage(1)_INC_delta(4) c_e_p_second_stage(1)_INC_constraint1_ -5
- z c_e_p_second_stage(1)_INC_constraint1_ 1
- fz c_e_p_second_stage(1)_INC_constraint2_ 1
- p_second_stage(1)_INC_delta(2) c_e_p_second_stage(1)_INC_constraint2_ 1
- p_second_stage(1)_INC_delta(3) c_e_p_second_stage(1)_INC_constraint2_ -4
- p_second_stage(1)_INC_delta(4) c_e_p_second_stage(1)_INC_constraint2_ 2
- p_second_stage(1)_INC_bin_y(1) c_u_p_second_stage(1)_INC_constraint3(1)_ -1
- p_second_stage(1)_INC_delta(2) c_u_p_second_stage(1)_INC_constraint3(1)_ 1
- p_second_stage(1)_INC_bin_y(2) c_u_p_second_stage(1)_INC_constraint3(2)_ -1
- p_second_stage(1)_INC_delta(3) c_u_p_second_stage(1)_INC_constraint3(2)_ 1
- p_second_stage(1)_INC_bin_y(3) c_u_p_second_stage(1)_INC_constraint3(3)_ -1
- p_second_stage(1)_INC_delta(4) c_u_p_second_stage(1)_INC_constraint3(3)_ 1
- p_second_stage(1)_INC_bin_y(1) c_u_p_second_stage(1)_INC_constraint4(1)_ 1
- p_second_stage(1)_INC_delta(1) c_u_p_second_stage(1)_INC_constraint4(1)_ -1
- p_second_stage(1)_INC_bin_y(2) c_u_p_second_stage(1)_INC_constraint4(2)_ 1
- p_second_stage(1)_INC_delta(2) c_u_p_second_stage(1)_INC_constraint4(2)_ -1
- p_second_stage(1)_INC_bin_y(3) c_u_p_second_stage(1)_INC_constraint4(3)_ 1
- p_second_stage(1)_INC_delta(3) c_u_p_second_stage(1)_INC_constraint4(3)_ -1
- fx o 1
- fz o -1
- r o 1
- ONE_VAR_CONSTANT o -1
- BL BLOCK1 PERIOD2 0.33333333329999998
- RHS c_e_p_second_stage(1)_INC_constraint1_ -10
- RHS c_e_p_second_stage(1)_INC_constraint2_ 0
- RHS c_u_p_second_stage(1)_INC_constraint3(1)_ 0
- RHS c_u_p_second_stage(1)_INC_constraint3(2)_ 0
- RHS c_u_p_second_stage(1)_INC_constraint3(3)_ 0
- RHS c_u_p_second_stage(1)_INC_constraint4(1)_ 0
- RHS c_u_p_second_stage(1)_INC_constraint4(2)_ 0
- RHS c_u_p_second_stage(1)_INC_constraint4(3)_ 0
- RHS r_l_r_second_stage_ -2
- RHS r_u_r_second_stage_ 0
- r c_l_c_second_stage_ 2
- p_second_stage(1)_INC_delta(1) c_e_p_second_stage(1)_INC_constraint1_ -5
- p_second_stage(1)_INC_delta(2) c_e_p_second_stage(1)_INC_constraint1_ -5
- p_second_stage(1)_INC_delta(3) c_e_p_second_stage(1)_INC_constraint1_ -5
- p_second_stage(1)_INC_delta(4) c_e_p_second_stage(1)_INC_constraint1_ -5
- z c_e_p_second_stage(1)_INC_constraint1_ 1
- fz c_e_p_second_stage(1)_INC_constraint2_ 1
- p_second_stage(1)_INC_delta(2) c_e_p_second_stage(1)_INC_constraint2_ 1
- p_second_stage(1)_INC_delta(3) c_e_p_second_stage(1)_INC_constraint2_ -5
- p_second_stage(1)_INC_delta(4) c_e_p_second_stage(1)_INC_constraint2_ 3
- p_second_stage(1)_INC_bin_y(1) c_u_p_second_stage(1)_INC_constraint3(1)_ -1
- p_second_stage(1)_INC_delta(2) c_u_p_second_stage(1)_INC_constraint3(1)_ 1
- p_second_stage(1)_INC_bin_y(2) c_u_p_second_stage(1)_INC_constraint3(2)_ -1
- p_second_stage(1)_INC_delta(3) c_u_p_second_stage(1)_INC_constraint3(2)_ 1
- p_second_stage(1)_INC_bin_y(3) c_u_p_second_stage(1)_INC_constraint3(3)_ -1
- p_second_stage(1)_INC_delta(4) c_u_p_second_stage(1)_INC_constraint3(3)_ 1
- p_second_stage(1)_INC_bin_y(1) c_u_p_second_stage(1)_INC_constraint4(1)_ 1
- p_second_stage(1)_INC_delta(1) c_u_p_second_stage(1)_INC_constraint4(1)_ -1
- p_second_stage(1)_INC_bin_y(2) c_u_p_second_stage(1)_INC_constraint4(2)_ 1
- p_second_stage(1)_INC_delta(2) c_u_p_second_stage(1)_INC_constraint4(2)_ -1
- p_second_stage(1)_INC_bin_y(3) c_u_p_second_stage(1)_INC_constraint4(3)_ 1
- p_second_stage(1)_INC_delta(3) c_u_p_second_stage(1)_INC_constraint4(3)_ -1
- fx o 1
- fz o -1
- r o 1
- ONE_VAR_CONSTANT o -2
-ENDATA
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_symbolic_names_ignore_derived_baseline/piecewise.sto.struct b/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_symbolic_names_ignore_derived_baseline/piecewise.sto.struct
deleted file mode 100644
index 92b231fef93..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_symbolic_names_ignore_derived_baseline/piecewise.sto.struct
+++ /dev/null
@@ -1,36 +0,0 @@
-RHS c_e_p_second_stage(1)_INC_constraint1_
-RHS c_e_p_second_stage(1)_INC_constraint2_
-RHS c_u_p_second_stage(1)_INC_constraint3(1)_
-RHS c_u_p_second_stage(1)_INC_constraint3(2)_
-RHS c_u_p_second_stage(1)_INC_constraint3(3)_
-RHS c_u_p_second_stage(1)_INC_constraint4(1)_
-RHS c_u_p_second_stage(1)_INC_constraint4(2)_
-RHS c_u_p_second_stage(1)_INC_constraint4(3)_
-RHS r_l_r_second_stage_
-RHS r_u_r_second_stage_
-r c_l_c_second_stage_
-p_second_stage(1)_INC_delta(1) c_e_p_second_stage(1)_INC_constraint1_
-p_second_stage(1)_INC_delta(2) c_e_p_second_stage(1)_INC_constraint1_
-p_second_stage(1)_INC_delta(3) c_e_p_second_stage(1)_INC_constraint1_
-p_second_stage(1)_INC_delta(4) c_e_p_second_stage(1)_INC_constraint1_
-z c_e_p_second_stage(1)_INC_constraint1_
-fz c_e_p_second_stage(1)_INC_constraint2_
-p_second_stage(1)_INC_delta(2) c_e_p_second_stage(1)_INC_constraint2_
-p_second_stage(1)_INC_delta(3) c_e_p_second_stage(1)_INC_constraint2_
-p_second_stage(1)_INC_delta(4) c_e_p_second_stage(1)_INC_constraint2_
-p_second_stage(1)_INC_bin_y(1) c_u_p_second_stage(1)_INC_constraint3(1)_
-p_second_stage(1)_INC_delta(2) c_u_p_second_stage(1)_INC_constraint3(1)_
-p_second_stage(1)_INC_bin_y(2) c_u_p_second_stage(1)_INC_constraint3(2)_
-p_second_stage(1)_INC_delta(3) c_u_p_second_stage(1)_INC_constraint3(2)_
-p_second_stage(1)_INC_bin_y(3) c_u_p_second_stage(1)_INC_constraint3(3)_
-p_second_stage(1)_INC_delta(4) c_u_p_second_stage(1)_INC_constraint3(3)_
-p_second_stage(1)_INC_bin_y(1) c_u_p_second_stage(1)_INC_constraint4(1)_
-p_second_stage(1)_INC_delta(1) c_u_p_second_stage(1)_INC_constraint4(1)_
-p_second_stage(1)_INC_bin_y(2) c_u_p_second_stage(1)_INC_constraint4(2)_
-p_second_stage(1)_INC_delta(2) c_u_p_second_stage(1)_INC_constraint4(2)_
-p_second_stage(1)_INC_bin_y(3) c_u_p_second_stage(1)_INC_constraint4(3)_
-p_second_stage(1)_INC_delta(3) c_u_p_second_stage(1)_INC_constraint4(3)_
-fx o
-fz o
-r o
-ONE_VAR_CONSTANT o
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_symbolic_names_ignore_derived_baseline/piecewise.tim b/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_symbolic_names_ignore_derived_baseline/piecewise.tim
deleted file mode 100644
index ab31d2b527f..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_symbolic_names_ignore_derived_baseline/piecewise.tim
+++ /dev/null
@@ -1,5 +0,0 @@
-TIME piecewise
-PERIODS IMPLICIT
- fx o TIME1
- fz c_e_p_second_stage(1)_INC_constraint1_ TIME2
-ENDATA
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_symbolic_names_ignore_derived_baseline/scenario_files/piecewise.col.Scenario1 b/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_symbolic_names_ignore_derived_baseline/scenario_files/piecewise.col.Scenario1
deleted file mode 100644
index 6e2c4d0e629..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_symbolic_names_ignore_derived_baseline/scenario_files/piecewise.col.Scenario1
+++ /dev/null
@@ -1,20 +0,0 @@
-fx
-p_first_stage_INC_bin_y(1)
-p_first_stage_INC_bin_y(2)
-p_first_stage_INC_bin_y(3)
-p_first_stage_INC_delta(1)
-p_first_stage_INC_delta(2)
-p_first_stage_INC_delta(3)
-p_first_stage_INC_delta(4)
-x
-fz
-p_second_stage(1)_INC_bin_y(1)
-p_second_stage(1)_INC_bin_y(2)
-p_second_stage(1)_INC_bin_y(3)
-p_second_stage(1)_INC_delta(1)
-p_second_stage(1)_INC_delta(2)
-p_second_stage(1)_INC_delta(3)
-p_second_stage(1)_INC_delta(4)
-r
-z
-ONE_VAR_CONSTANT
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_symbolic_names_ignore_derived_baseline/scenario_files/piecewise.col.Scenario2 b/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_symbolic_names_ignore_derived_baseline/scenario_files/piecewise.col.Scenario2
deleted file mode 100644
index 6e2c4d0e629..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_symbolic_names_ignore_derived_baseline/scenario_files/piecewise.col.Scenario2
+++ /dev/null
@@ -1,20 +0,0 @@
-fx
-p_first_stage_INC_bin_y(1)
-p_first_stage_INC_bin_y(2)
-p_first_stage_INC_bin_y(3)
-p_first_stage_INC_delta(1)
-p_first_stage_INC_delta(2)
-p_first_stage_INC_delta(3)
-p_first_stage_INC_delta(4)
-x
-fz
-p_second_stage(1)_INC_bin_y(1)
-p_second_stage(1)_INC_bin_y(2)
-p_second_stage(1)_INC_bin_y(3)
-p_second_stage(1)_INC_delta(1)
-p_second_stage(1)_INC_delta(2)
-p_second_stage(1)_INC_delta(3)
-p_second_stage(1)_INC_delta(4)
-r
-z
-ONE_VAR_CONSTANT
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_symbolic_names_ignore_derived_baseline/scenario_files/piecewise.col.Scenario3 b/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_symbolic_names_ignore_derived_baseline/scenario_files/piecewise.col.Scenario3
deleted file mode 100644
index 6e2c4d0e629..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_symbolic_names_ignore_derived_baseline/scenario_files/piecewise.col.Scenario3
+++ /dev/null
@@ -1,20 +0,0 @@
-fx
-p_first_stage_INC_bin_y(1)
-p_first_stage_INC_bin_y(2)
-p_first_stage_INC_bin_y(3)
-p_first_stage_INC_delta(1)
-p_first_stage_INC_delta(2)
-p_first_stage_INC_delta(3)
-p_first_stage_INC_delta(4)
-x
-fz
-p_second_stage(1)_INC_bin_y(1)
-p_second_stage(1)_INC_bin_y(2)
-p_second_stage(1)_INC_bin_y(3)
-p_second_stage(1)_INC_delta(1)
-p_second_stage(1)_INC_delta(2)
-p_second_stage(1)_INC_delta(3)
-p_second_stage(1)_INC_delta(4)
-r
-z
-ONE_VAR_CONSTANT
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_symbolic_names_ignore_derived_baseline/scenario_files/piecewise.mps.Scenario1 b/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_symbolic_names_ignore_derived_baseline/scenario_files/piecewise.mps.Scenario1
deleted file mode 100644
index bb5ddf70c35..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_symbolic_names_ignore_derived_baseline/scenario_files/piecewise.mps.Scenario1
+++ /dev/null
@@ -1,128 +0,0 @@
-* Source: Pyomo MPS Writer
-* Format: Free MPS
-*
-NAME Scenario1
-OBJSENSE
- MIN
-ROWS
- N o
- E c_e_p_first_stage_INC_constraint1_
- E c_e_p_first_stage_INC_constraint2_
- G c_l_c_first_stage_
- L c_u_p_first_stage_INC_constraint3(1)_
- L c_u_p_first_stage_INC_constraint3(2)_
- L c_u_p_first_stage_INC_constraint3(3)_
- L c_u_p_first_stage_INC_constraint4(1)_
- L c_u_p_first_stage_INC_constraint4(2)_
- L c_u_p_first_stage_INC_constraint4(3)_
- E c_e_p_second_stage(1)_INC_constraint1_
- E c_e_p_second_stage(1)_INC_constraint2_
- G c_l_c_second_stage_
- L c_u_p_second_stage(1)_INC_constraint3(1)_
- L c_u_p_second_stage(1)_INC_constraint3(2)_
- L c_u_p_second_stage(1)_INC_constraint3(3)_
- L c_u_p_second_stage(1)_INC_constraint4(1)_
- L c_u_p_second_stage(1)_INC_constraint4(2)_
- L c_u_p_second_stage(1)_INC_constraint4(3)_
- G r_l_r_second_stage_
- L r_u_r_second_stage_
- E c_e_ONE_VAR_CONSTANT
-COLUMNS
- fx o 1
- fx c_e_p_first_stage_INC_constraint2_ 1
- p_first_stage_INC_bin_y(1) c_u_p_first_stage_INC_constraint3(1)_ -1
- p_first_stage_INC_bin_y(1) c_u_p_first_stage_INC_constraint4(1)_ 1
- p_first_stage_INC_bin_y(2) c_u_p_first_stage_INC_constraint3(2)_ -1
- p_first_stage_INC_bin_y(2) c_u_p_first_stage_INC_constraint4(2)_ 1
- p_first_stage_INC_bin_y(3) c_u_p_first_stage_INC_constraint3(3)_ -1
- p_first_stage_INC_bin_y(3) c_u_p_first_stage_INC_constraint4(3)_ 1
- p_first_stage_INC_delta(1) c_e_p_first_stage_INC_constraint1_ -2
- p_first_stage_INC_delta(1) c_u_p_first_stage_INC_constraint4(1)_ -1
- p_first_stage_INC_delta(2) c_e_p_first_stage_INC_constraint1_ -3
- p_first_stage_INC_delta(2) c_e_p_first_stage_INC_constraint2_ 1
- p_first_stage_INC_delta(2) c_u_p_first_stage_INC_constraint3(1)_ 1
- p_first_stage_INC_delta(2) c_u_p_first_stage_INC_constraint4(2)_ -1
- p_first_stage_INC_delta(3) c_e_p_first_stage_INC_constraint1_ -2
- p_first_stage_INC_delta(3) c_e_p_first_stage_INC_constraint2_ -1
- p_first_stage_INC_delta(3) c_u_p_first_stage_INC_constraint3(2)_ 1
- p_first_stage_INC_delta(3) c_u_p_first_stage_INC_constraint4(3)_ -1
- p_first_stage_INC_delta(4) c_e_p_first_stage_INC_constraint1_ -3
- p_first_stage_INC_delta(4) c_u_p_first_stage_INC_constraint3(3)_ 1
- x c_e_p_first_stage_INC_constraint1_ 1
- x c_l_c_first_stage_ 1
- x c_l_c_second_stage_ 1
- fz o -1
- fz c_e_p_second_stage(1)_INC_constraint2_ 1
- p_second_stage(1)_INC_bin_y(1) c_u_p_second_stage(1)_INC_constraint3(1)_ -1
- p_second_stage(1)_INC_bin_y(1) c_u_p_second_stage(1)_INC_constraint4(1)_ 1
- p_second_stage(1)_INC_bin_y(2) c_u_p_second_stage(1)_INC_constraint3(2)_ -1
- p_second_stage(1)_INC_bin_y(2) c_u_p_second_stage(1)_INC_constraint4(2)_ 1
- p_second_stage(1)_INC_bin_y(3) c_u_p_second_stage(1)_INC_constraint3(3)_ -1
- p_second_stage(1)_INC_bin_y(3) c_u_p_second_stage(1)_INC_constraint4(3)_ 1
- p_second_stage(1)_INC_delta(1) c_e_p_second_stage(1)_INC_constraint1_ -5
- p_second_stage(1)_INC_delta(1) c_u_p_second_stage(1)_INC_constraint4(1)_ -1
- p_second_stage(1)_INC_delta(2) c_e_p_second_stage(1)_INC_constraint1_ -5
- p_second_stage(1)_INC_delta(2) c_e_p_second_stage(1)_INC_constraint2_ 1
- p_second_stage(1)_INC_delta(2) c_u_p_second_stage(1)_INC_constraint3(1)_ 1
- p_second_stage(1)_INC_delta(2) c_u_p_second_stage(1)_INC_constraint4(2)_ -1
- p_second_stage(1)_INC_delta(3) c_e_p_second_stage(1)_INC_constraint1_ -5
- p_second_stage(1)_INC_delta(3) c_e_p_second_stage(1)_INC_constraint2_ -3
- p_second_stage(1)_INC_delta(3) c_u_p_second_stage(1)_INC_constraint3(2)_ 1
- p_second_stage(1)_INC_delta(3) c_u_p_second_stage(1)_INC_constraint4(3)_ -1
- p_second_stage(1)_INC_delta(4) c_e_p_second_stage(1)_INC_constraint1_ -5
- p_second_stage(1)_INC_delta(4) c_e_p_second_stage(1)_INC_constraint2_ 1
- p_second_stage(1)_INC_delta(4) c_u_p_second_stage(1)_INC_constraint3(3)_ 1
- r o 1
- r c_l_c_second_stage_ 0
- r r_l_r_second_stage_ 1
- r r_u_r_second_stage_ 1
- z c_e_p_second_stage(1)_INC_constraint1_ 1
- ONE_VAR_CONSTANT o 0
- ONE_VAR_CONSTANT c_e_ONE_VAR_CONSTANT 1
-RHS
- RHS c_e_p_first_stage_INC_constraint1_ 0
- RHS c_e_p_first_stage_INC_constraint2_ 10
- RHS c_l_c_first_stage_ 0
- RHS c_u_p_first_stage_INC_constraint3(1)_ 0
- RHS c_u_p_first_stage_INC_constraint3(2)_ 0
- RHS c_u_p_first_stage_INC_constraint3(3)_ 0
- RHS c_u_p_first_stage_INC_constraint4(1)_ 0
- RHS c_u_p_first_stage_INC_constraint4(2)_ 0
- RHS c_u_p_first_stage_INC_constraint4(3)_ 0
- RHS c_e_p_second_stage(1)_INC_constraint1_ -10
- RHS c_e_p_second_stage(1)_INC_constraint2_ 0
- RHS c_l_c_second_stage_ -100
- RHS c_u_p_second_stage(1)_INC_constraint3(1)_ 0
- RHS c_u_p_second_stage(1)_INC_constraint3(2)_ 0
- RHS c_u_p_second_stage(1)_INC_constraint3(3)_ 0
- RHS c_u_p_second_stage(1)_INC_constraint4(1)_ 0
- RHS c_u_p_second_stage(1)_INC_constraint4(2)_ 0
- RHS c_u_p_second_stage(1)_INC_constraint4(3)_ 0
- RHS r_l_r_second_stage_ 0
- RHS r_u_r_second_stage_ 0
- RHS c_e_ONE_VAR_CONSTANT 1
-BOUNDS
- FR BOUND fx
- BV BOUND p_first_stage_INC_bin_y(1)
- BV BOUND p_first_stage_INC_bin_y(2)
- BV BOUND p_first_stage_INC_bin_y(3)
- MI BOUND p_first_stage_INC_delta(1)
- UP BOUND p_first_stage_INC_delta(1) 1
- FR BOUND p_first_stage_INC_delta(2)
- FR BOUND p_first_stage_INC_delta(3)
- LO BOUND p_first_stage_INC_delta(4) 0
- LO BOUND x 0
- UP BOUND x 10
- FR BOUND fz
- BV BOUND p_second_stage(1)_INC_bin_y(1)
- BV BOUND p_second_stage(1)_INC_bin_y(2)
- BV BOUND p_second_stage(1)_INC_bin_y(3)
- MI BOUND p_second_stage(1)_INC_delta(1)
- UP BOUND p_second_stage(1)_INC_delta(1) 1
- FR BOUND p_second_stage(1)_INC_delta(2)
- FR BOUND p_second_stage(1)_INC_delta(3)
- LO BOUND p_second_stage(1)_INC_delta(4) 0
- FR BOUND r
- LO BOUND z -10
- UP BOUND z 10
-ENDATA
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_symbolic_names_ignore_derived_baseline/scenario_files/piecewise.mps.Scenario2 b/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_symbolic_names_ignore_derived_baseline/scenario_files/piecewise.mps.Scenario2
deleted file mode 100644
index 60363a541db..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_symbolic_names_ignore_derived_baseline/scenario_files/piecewise.mps.Scenario2
+++ /dev/null
@@ -1,128 +0,0 @@
-* Source: Pyomo MPS Writer
-* Format: Free MPS
-*
-NAME Scenario2
-OBJSENSE
- MIN
-ROWS
- N o
- E c_e_p_first_stage_INC_constraint1_
- E c_e_p_first_stage_INC_constraint2_
- G c_l_c_first_stage_
- L c_u_p_first_stage_INC_constraint3(1)_
- L c_u_p_first_stage_INC_constraint3(2)_
- L c_u_p_first_stage_INC_constraint3(3)_
- L c_u_p_first_stage_INC_constraint4(1)_
- L c_u_p_first_stage_INC_constraint4(2)_
- L c_u_p_first_stage_INC_constraint4(3)_
- E c_e_p_second_stage(1)_INC_constraint1_
- E c_e_p_second_stage(1)_INC_constraint2_
- G c_l_c_second_stage_
- L c_u_p_second_stage(1)_INC_constraint3(1)_
- L c_u_p_second_stage(1)_INC_constraint3(2)_
- L c_u_p_second_stage(1)_INC_constraint3(3)_
- L c_u_p_second_stage(1)_INC_constraint4(1)_
- L c_u_p_second_stage(1)_INC_constraint4(2)_
- L c_u_p_second_stage(1)_INC_constraint4(3)_
- G r_l_r_second_stage_
- L r_u_r_second_stage_
- E c_e_ONE_VAR_CONSTANT
-COLUMNS
- fx o 1
- fx c_e_p_first_stage_INC_constraint2_ 1
- p_first_stage_INC_bin_y(1) c_u_p_first_stage_INC_constraint3(1)_ -1
- p_first_stage_INC_bin_y(1) c_u_p_first_stage_INC_constraint4(1)_ 1
- p_first_stage_INC_bin_y(2) c_u_p_first_stage_INC_constraint3(2)_ -1
- p_first_stage_INC_bin_y(2) c_u_p_first_stage_INC_constraint4(2)_ 1
- p_first_stage_INC_bin_y(3) c_u_p_first_stage_INC_constraint3(3)_ -1
- p_first_stage_INC_bin_y(3) c_u_p_first_stage_INC_constraint4(3)_ 1
- p_first_stage_INC_delta(1) c_e_p_first_stage_INC_constraint1_ -2
- p_first_stage_INC_delta(1) c_u_p_first_stage_INC_constraint4(1)_ -1
- p_first_stage_INC_delta(2) c_e_p_first_stage_INC_constraint1_ -3
- p_first_stage_INC_delta(2) c_e_p_first_stage_INC_constraint2_ 1
- p_first_stage_INC_delta(2) c_u_p_first_stage_INC_constraint3(1)_ 1
- p_first_stage_INC_delta(2) c_u_p_first_stage_INC_constraint4(2)_ -1
- p_first_stage_INC_delta(3) c_e_p_first_stage_INC_constraint1_ -2
- p_first_stage_INC_delta(3) c_e_p_first_stage_INC_constraint2_ -1
- p_first_stage_INC_delta(3) c_u_p_first_stage_INC_constraint3(2)_ 1
- p_first_stage_INC_delta(3) c_u_p_first_stage_INC_constraint4(3)_ -1
- p_first_stage_INC_delta(4) c_e_p_first_stage_INC_constraint1_ -3
- p_first_stage_INC_delta(4) c_u_p_first_stage_INC_constraint3(3)_ 1
- x c_e_p_first_stage_INC_constraint1_ 1
- x c_l_c_first_stage_ 1
- x c_l_c_second_stage_ 1
- fz o -1
- fz c_e_p_second_stage(1)_INC_constraint2_ 1
- p_second_stage(1)_INC_bin_y(1) c_u_p_second_stage(1)_INC_constraint3(1)_ -1
- p_second_stage(1)_INC_bin_y(1) c_u_p_second_stage(1)_INC_constraint4(1)_ 1
- p_second_stage(1)_INC_bin_y(2) c_u_p_second_stage(1)_INC_constraint3(2)_ -1
- p_second_stage(1)_INC_bin_y(2) c_u_p_second_stage(1)_INC_constraint4(2)_ 1
- p_second_stage(1)_INC_bin_y(3) c_u_p_second_stage(1)_INC_constraint3(3)_ -1
- p_second_stage(1)_INC_bin_y(3) c_u_p_second_stage(1)_INC_constraint4(3)_ 1
- p_second_stage(1)_INC_delta(1) c_e_p_second_stage(1)_INC_constraint1_ -5
- p_second_stage(1)_INC_delta(1) c_u_p_second_stage(1)_INC_constraint4(1)_ -1
- p_second_stage(1)_INC_delta(2) c_e_p_second_stage(1)_INC_constraint1_ -5
- p_second_stage(1)_INC_delta(2) c_e_p_second_stage(1)_INC_constraint2_ 1
- p_second_stage(1)_INC_delta(2) c_u_p_second_stage(1)_INC_constraint3(1)_ 1
- p_second_stage(1)_INC_delta(2) c_u_p_second_stage(1)_INC_constraint4(2)_ -1
- p_second_stage(1)_INC_delta(3) c_e_p_second_stage(1)_INC_constraint1_ -5
- p_second_stage(1)_INC_delta(3) c_e_p_second_stage(1)_INC_constraint2_ -4
- p_second_stage(1)_INC_delta(3) c_u_p_second_stage(1)_INC_constraint3(2)_ 1
- p_second_stage(1)_INC_delta(3) c_u_p_second_stage(1)_INC_constraint4(3)_ -1
- p_second_stage(1)_INC_delta(4) c_e_p_second_stage(1)_INC_constraint1_ -5
- p_second_stage(1)_INC_delta(4) c_e_p_second_stage(1)_INC_constraint2_ 2
- p_second_stage(1)_INC_delta(4) c_u_p_second_stage(1)_INC_constraint3(3)_ 1
- r o 1
- r c_l_c_second_stage_ 1
- r r_l_r_second_stage_ 1
- r r_u_r_second_stage_ 1
- z c_e_p_second_stage(1)_INC_constraint1_ 1
- ONE_VAR_CONSTANT o -1
- ONE_VAR_CONSTANT c_e_ONE_VAR_CONSTANT 1
-RHS
- RHS c_e_p_first_stage_INC_constraint1_ 0
- RHS c_e_p_first_stage_INC_constraint2_ 10
- RHS c_l_c_first_stage_ 0
- RHS c_u_p_first_stage_INC_constraint3(1)_ 0
- RHS c_u_p_first_stage_INC_constraint3(2)_ 0
- RHS c_u_p_first_stage_INC_constraint3(3)_ 0
- RHS c_u_p_first_stage_INC_constraint4(1)_ 0
- RHS c_u_p_first_stage_INC_constraint4(2)_ 0
- RHS c_u_p_first_stage_INC_constraint4(3)_ 0
- RHS c_e_p_second_stage(1)_INC_constraint1_ -10
- RHS c_e_p_second_stage(1)_INC_constraint2_ 0
- RHS c_l_c_second_stage_ -100
- RHS c_u_p_second_stage(1)_INC_constraint3(1)_ 0
- RHS c_u_p_second_stage(1)_INC_constraint3(2)_ 0
- RHS c_u_p_second_stage(1)_INC_constraint3(3)_ 0
- RHS c_u_p_second_stage(1)_INC_constraint4(1)_ 0
- RHS c_u_p_second_stage(1)_INC_constraint4(2)_ 0
- RHS c_u_p_second_stage(1)_INC_constraint4(3)_ 0
- RHS r_l_r_second_stage_ -1
- RHS r_u_r_second_stage_ 0
- RHS c_e_ONE_VAR_CONSTANT 1
-BOUNDS
- FR BOUND fx
- BV BOUND p_first_stage_INC_bin_y(1)
- BV BOUND p_first_stage_INC_bin_y(2)
- BV BOUND p_first_stage_INC_bin_y(3)
- MI BOUND p_first_stage_INC_delta(1)
- UP BOUND p_first_stage_INC_delta(1) 1
- FR BOUND p_first_stage_INC_delta(2)
- FR BOUND p_first_stage_INC_delta(3)
- LO BOUND p_first_stage_INC_delta(4) 0
- LO BOUND x 0
- UP BOUND x 10
- FR BOUND fz
- BV BOUND p_second_stage(1)_INC_bin_y(1)
- BV BOUND p_second_stage(1)_INC_bin_y(2)
- BV BOUND p_second_stage(1)_INC_bin_y(3)
- MI BOUND p_second_stage(1)_INC_delta(1)
- UP BOUND p_second_stage(1)_INC_delta(1) 1
- FR BOUND p_second_stage(1)_INC_delta(2)
- FR BOUND p_second_stage(1)_INC_delta(3)
- LO BOUND p_second_stage(1)_INC_delta(4) 0
- FR BOUND r
- LO BOUND z -10
- UP BOUND z 10
-ENDATA
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_symbolic_names_ignore_derived_baseline/scenario_files/piecewise.mps.Scenario3 b/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_symbolic_names_ignore_derived_baseline/scenario_files/piecewise.mps.Scenario3
deleted file mode 100644
index 09bdfae0add..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_symbolic_names_ignore_derived_baseline/scenario_files/piecewise.mps.Scenario3
+++ /dev/null
@@ -1,128 +0,0 @@
-* Source: Pyomo MPS Writer
-* Format: Free MPS
-*
-NAME Scenario3
-OBJSENSE
- MIN
-ROWS
- N o
- E c_e_p_first_stage_INC_constraint1_
- E c_e_p_first_stage_INC_constraint2_
- G c_l_c_first_stage_
- L c_u_p_first_stage_INC_constraint3(1)_
- L c_u_p_first_stage_INC_constraint3(2)_
- L c_u_p_first_stage_INC_constraint3(3)_
- L c_u_p_first_stage_INC_constraint4(1)_
- L c_u_p_first_stage_INC_constraint4(2)_
- L c_u_p_first_stage_INC_constraint4(3)_
- E c_e_p_second_stage(1)_INC_constraint1_
- E c_e_p_second_stage(1)_INC_constraint2_
- G c_l_c_second_stage_
- L c_u_p_second_stage(1)_INC_constraint3(1)_
- L c_u_p_second_stage(1)_INC_constraint3(2)_
- L c_u_p_second_stage(1)_INC_constraint3(3)_
- L c_u_p_second_stage(1)_INC_constraint4(1)_
- L c_u_p_second_stage(1)_INC_constraint4(2)_
- L c_u_p_second_stage(1)_INC_constraint4(3)_
- G r_l_r_second_stage_
- L r_u_r_second_stage_
- E c_e_ONE_VAR_CONSTANT
-COLUMNS
- fx o 1
- fx c_e_p_first_stage_INC_constraint2_ 1
- p_first_stage_INC_bin_y(1) c_u_p_first_stage_INC_constraint3(1)_ -1
- p_first_stage_INC_bin_y(1) c_u_p_first_stage_INC_constraint4(1)_ 1
- p_first_stage_INC_bin_y(2) c_u_p_first_stage_INC_constraint3(2)_ -1
- p_first_stage_INC_bin_y(2) c_u_p_first_stage_INC_constraint4(2)_ 1
- p_first_stage_INC_bin_y(3) c_u_p_first_stage_INC_constraint3(3)_ -1
- p_first_stage_INC_bin_y(3) c_u_p_first_stage_INC_constraint4(3)_ 1
- p_first_stage_INC_delta(1) c_e_p_first_stage_INC_constraint1_ -2
- p_first_stage_INC_delta(1) c_u_p_first_stage_INC_constraint4(1)_ -1
- p_first_stage_INC_delta(2) c_e_p_first_stage_INC_constraint1_ -3
- p_first_stage_INC_delta(2) c_e_p_first_stage_INC_constraint2_ 1
- p_first_stage_INC_delta(2) c_u_p_first_stage_INC_constraint3(1)_ 1
- p_first_stage_INC_delta(2) c_u_p_first_stage_INC_constraint4(2)_ -1
- p_first_stage_INC_delta(3) c_e_p_first_stage_INC_constraint1_ -2
- p_first_stage_INC_delta(3) c_e_p_first_stage_INC_constraint2_ -1
- p_first_stage_INC_delta(3) c_u_p_first_stage_INC_constraint3(2)_ 1
- p_first_stage_INC_delta(3) c_u_p_first_stage_INC_constraint4(3)_ -1
- p_first_stage_INC_delta(4) c_e_p_first_stage_INC_constraint1_ -3
- p_first_stage_INC_delta(4) c_u_p_first_stage_INC_constraint3(3)_ 1
- x c_e_p_first_stage_INC_constraint1_ 1
- x c_l_c_first_stage_ 1
- x c_l_c_second_stage_ 1
- fz o -1
- fz c_e_p_second_stage(1)_INC_constraint2_ 1
- p_second_stage(1)_INC_bin_y(1) c_u_p_second_stage(1)_INC_constraint3(1)_ -1
- p_second_stage(1)_INC_bin_y(1) c_u_p_second_stage(1)_INC_constraint4(1)_ 1
- p_second_stage(1)_INC_bin_y(2) c_u_p_second_stage(1)_INC_constraint3(2)_ -1
- p_second_stage(1)_INC_bin_y(2) c_u_p_second_stage(1)_INC_constraint4(2)_ 1
- p_second_stage(1)_INC_bin_y(3) c_u_p_second_stage(1)_INC_constraint3(3)_ -1
- p_second_stage(1)_INC_bin_y(3) c_u_p_second_stage(1)_INC_constraint4(3)_ 1
- p_second_stage(1)_INC_delta(1) c_e_p_second_stage(1)_INC_constraint1_ -5
- p_second_stage(1)_INC_delta(1) c_u_p_second_stage(1)_INC_constraint4(1)_ -1
- p_second_stage(1)_INC_delta(2) c_e_p_second_stage(1)_INC_constraint1_ -5
- p_second_stage(1)_INC_delta(2) c_e_p_second_stage(1)_INC_constraint2_ 1
- p_second_stage(1)_INC_delta(2) c_u_p_second_stage(1)_INC_constraint3(1)_ 1
- p_second_stage(1)_INC_delta(2) c_u_p_second_stage(1)_INC_constraint4(2)_ -1
- p_second_stage(1)_INC_delta(3) c_e_p_second_stage(1)_INC_constraint1_ -5
- p_second_stage(1)_INC_delta(3) c_e_p_second_stage(1)_INC_constraint2_ -5
- p_second_stage(1)_INC_delta(3) c_u_p_second_stage(1)_INC_constraint3(2)_ 1
- p_second_stage(1)_INC_delta(3) c_u_p_second_stage(1)_INC_constraint4(3)_ -1
- p_second_stage(1)_INC_delta(4) c_e_p_second_stage(1)_INC_constraint1_ -5
- p_second_stage(1)_INC_delta(4) c_e_p_second_stage(1)_INC_constraint2_ 3
- p_second_stage(1)_INC_delta(4) c_u_p_second_stage(1)_INC_constraint3(3)_ 1
- r o 1
- r c_l_c_second_stage_ 2
- r r_l_r_second_stage_ 1
- r r_u_r_second_stage_ 1
- z c_e_p_second_stage(1)_INC_constraint1_ 1
- ONE_VAR_CONSTANT o -2
- ONE_VAR_CONSTANT c_e_ONE_VAR_CONSTANT 1
-RHS
- RHS c_e_p_first_stage_INC_constraint1_ 0
- RHS c_e_p_first_stage_INC_constraint2_ 10
- RHS c_l_c_first_stage_ 0
- RHS c_u_p_first_stage_INC_constraint3(1)_ 0
- RHS c_u_p_first_stage_INC_constraint3(2)_ 0
- RHS c_u_p_first_stage_INC_constraint3(3)_ 0
- RHS c_u_p_first_stage_INC_constraint4(1)_ 0
- RHS c_u_p_first_stage_INC_constraint4(2)_ 0
- RHS c_u_p_first_stage_INC_constraint4(3)_ 0
- RHS c_e_p_second_stage(1)_INC_constraint1_ -10
- RHS c_e_p_second_stage(1)_INC_constraint2_ 0
- RHS c_l_c_second_stage_ -100
- RHS c_u_p_second_stage(1)_INC_constraint3(1)_ 0
- RHS c_u_p_second_stage(1)_INC_constraint3(2)_ 0
- RHS c_u_p_second_stage(1)_INC_constraint3(3)_ 0
- RHS c_u_p_second_stage(1)_INC_constraint4(1)_ 0
- RHS c_u_p_second_stage(1)_INC_constraint4(2)_ 0
- RHS c_u_p_second_stage(1)_INC_constraint4(3)_ 0
- RHS r_l_r_second_stage_ -2
- RHS r_u_r_second_stage_ 0
- RHS c_e_ONE_VAR_CONSTANT 1
-BOUNDS
- FR BOUND fx
- BV BOUND p_first_stage_INC_bin_y(1)
- BV BOUND p_first_stage_INC_bin_y(2)
- BV BOUND p_first_stage_INC_bin_y(3)
- MI BOUND p_first_stage_INC_delta(1)
- UP BOUND p_first_stage_INC_delta(1) 1
- FR BOUND p_first_stage_INC_delta(2)
- FR BOUND p_first_stage_INC_delta(3)
- LO BOUND p_first_stage_INC_delta(4) 0
- LO BOUND x 0
- UP BOUND x 10
- FR BOUND fz
- BV BOUND p_second_stage(1)_INC_bin_y(1)
- BV BOUND p_second_stage(1)_INC_bin_y(2)
- BV BOUND p_second_stage(1)_INC_bin_y(3)
- MI BOUND p_second_stage(1)_INC_delta(1)
- UP BOUND p_second_stage(1)_INC_delta(1) 1
- FR BOUND p_second_stage(1)_INC_delta(2)
- FR BOUND p_second_stage(1)_INC_delta(3)
- LO BOUND p_second_stage(1)_INC_delta(4) 0
- FR BOUND r
- LO BOUND z -10
- UP BOUND z 10
-ENDATA
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_symbolic_names_ignore_derived_baseline/scenario_files/piecewise.mps.det.Scenario1 b/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_symbolic_names_ignore_derived_baseline/scenario_files/piecewise.mps.det.Scenario1
deleted file mode 100644
index 9f167dfde11..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_symbolic_names_ignore_derived_baseline/scenario_files/piecewise.mps.det.Scenario1
+++ /dev/null
@@ -1,128 +0,0 @@
-* Source: Pyomo MPS Writer
-* Format: Free MPS
-*
-NAME ZeroStochasticData
-OBJSENSE
- MIN
-ROWS
- N o
- E c_e_p_first_stage_INC_constraint1_
- E c_e_p_first_stage_INC_constraint2_
- G c_l_c_first_stage_
- L c_u_p_first_stage_INC_constraint3(1)_
- L c_u_p_first_stage_INC_constraint3(2)_
- L c_u_p_first_stage_INC_constraint3(3)_
- L c_u_p_first_stage_INC_constraint4(1)_
- L c_u_p_first_stage_INC_constraint4(2)_
- L c_u_p_first_stage_INC_constraint4(3)_
- E c_e_p_second_stage(1)_INC_constraint1_
- E c_e_p_second_stage(1)_INC_constraint2_
- G c_l_c_second_stage_
- L c_u_p_second_stage(1)_INC_constraint3(1)_
- L c_u_p_second_stage(1)_INC_constraint3(2)_
- L c_u_p_second_stage(1)_INC_constraint3(3)_
- L c_u_p_second_stage(1)_INC_constraint4(1)_
- L c_u_p_second_stage(1)_INC_constraint4(2)_
- L c_u_p_second_stage(1)_INC_constraint4(3)_
- G r_l_r_second_stage_
- L r_u_r_second_stage_
- E c_e_ONE_VAR_CONSTANT
-COLUMNS
- fx o -9876543210
- fx c_e_p_first_stage_INC_constraint2_ 1
- p_first_stage_INC_bin_y(1) c_u_p_first_stage_INC_constraint3(1)_ -1
- p_first_stage_INC_bin_y(1) c_u_p_first_stage_INC_constraint4(1)_ 1
- p_first_stage_INC_bin_y(2) c_u_p_first_stage_INC_constraint3(2)_ -1
- p_first_stage_INC_bin_y(2) c_u_p_first_stage_INC_constraint4(2)_ 1
- p_first_stage_INC_bin_y(3) c_u_p_first_stage_INC_constraint3(3)_ -1
- p_first_stage_INC_bin_y(3) c_u_p_first_stage_INC_constraint4(3)_ 1
- p_first_stage_INC_delta(1) c_e_p_first_stage_INC_constraint1_ -2
- p_first_stage_INC_delta(1) c_u_p_first_stage_INC_constraint4(1)_ -1
- p_first_stage_INC_delta(2) c_e_p_first_stage_INC_constraint1_ -3
- p_first_stage_INC_delta(2) c_e_p_first_stage_INC_constraint2_ 1
- p_first_stage_INC_delta(2) c_u_p_first_stage_INC_constraint3(1)_ 1
- p_first_stage_INC_delta(2) c_u_p_first_stage_INC_constraint4(2)_ -1
- p_first_stage_INC_delta(3) c_e_p_first_stage_INC_constraint1_ -2
- p_first_stage_INC_delta(3) c_e_p_first_stage_INC_constraint2_ -1
- p_first_stage_INC_delta(3) c_u_p_first_stage_INC_constraint3(2)_ 1
- p_first_stage_INC_delta(3) c_u_p_first_stage_INC_constraint4(3)_ -1
- p_first_stage_INC_delta(4) c_e_p_first_stage_INC_constraint1_ -3
- p_first_stage_INC_delta(4) c_u_p_first_stage_INC_constraint3(3)_ 1
- x c_e_p_first_stage_INC_constraint1_ 1
- x c_l_c_first_stage_ 1
- x c_l_c_second_stage_ 1
- fz o -9876543210
- fz c_e_p_second_stage(1)_INC_constraint2_ -9876543210
- p_second_stage(1)_INC_bin_y(1) c_u_p_second_stage(1)_INC_constraint3(1)_ -9876543210
- p_second_stage(1)_INC_bin_y(1) c_u_p_second_stage(1)_INC_constraint4(1)_ -9876543210
- p_second_stage(1)_INC_bin_y(2) c_u_p_second_stage(1)_INC_constraint3(2)_ -9876543210
- p_second_stage(1)_INC_bin_y(2) c_u_p_second_stage(1)_INC_constraint4(2)_ -9876543210
- p_second_stage(1)_INC_bin_y(3) c_u_p_second_stage(1)_INC_constraint3(3)_ -9876543210
- p_second_stage(1)_INC_bin_y(3) c_u_p_second_stage(1)_INC_constraint4(3)_ -9876543210
- p_second_stage(1)_INC_delta(1) c_e_p_second_stage(1)_INC_constraint1_ -9876543210
- p_second_stage(1)_INC_delta(1) c_u_p_second_stage(1)_INC_constraint4(1)_ -9876543210
- p_second_stage(1)_INC_delta(2) c_e_p_second_stage(1)_INC_constraint1_ -9876543210
- p_second_stage(1)_INC_delta(2) c_e_p_second_stage(1)_INC_constraint2_ -9876543210
- p_second_stage(1)_INC_delta(2) c_u_p_second_stage(1)_INC_constraint3(1)_ -9876543210
- p_second_stage(1)_INC_delta(2) c_u_p_second_stage(1)_INC_constraint4(2)_ -9876543210
- p_second_stage(1)_INC_delta(3) c_e_p_second_stage(1)_INC_constraint1_ -9876543210
- p_second_stage(1)_INC_delta(3) c_e_p_second_stage(1)_INC_constraint2_ -9876543210
- p_second_stage(1)_INC_delta(3) c_u_p_second_stage(1)_INC_constraint3(2)_ -9876543210
- p_second_stage(1)_INC_delta(3) c_u_p_second_stage(1)_INC_constraint4(3)_ -9876543210
- p_second_stage(1)_INC_delta(4) c_e_p_second_stage(1)_INC_constraint1_ -9876543210
- p_second_stage(1)_INC_delta(4) c_e_p_second_stage(1)_INC_constraint2_ -9876543210
- p_second_stage(1)_INC_delta(4) c_u_p_second_stage(1)_INC_constraint3(3)_ -9876543210
- r o -9876543210
- r c_l_c_second_stage_ -9876543210
- r r_l_r_second_stage_ 1
- r r_u_r_second_stage_ 1
- z c_e_p_second_stage(1)_INC_constraint1_ -9876543210
- ONE_VAR_CONSTANT o 0
- ONE_VAR_CONSTANT c_e_ONE_VAR_CONSTANT 1
-RHS
- RHS c_e_p_first_stage_INC_constraint1_ 0
- RHS c_e_p_first_stage_INC_constraint2_ 10
- RHS c_l_c_first_stage_ 0
- RHS c_u_p_first_stage_INC_constraint3(1)_ 0
- RHS c_u_p_first_stage_INC_constraint3(2)_ 0
- RHS c_u_p_first_stage_INC_constraint3(3)_ 0
- RHS c_u_p_first_stage_INC_constraint4(1)_ 0
- RHS c_u_p_first_stage_INC_constraint4(2)_ 0
- RHS c_u_p_first_stage_INC_constraint4(3)_ 0
- RHS c_e_p_second_stage(1)_INC_constraint1_ -9876543210
- RHS c_e_p_second_stage(1)_INC_constraint2_ -9876543210
- RHS c_l_c_second_stage_ -100
- RHS c_u_p_second_stage(1)_INC_constraint3(1)_ -9876543210
- RHS c_u_p_second_stage(1)_INC_constraint3(2)_ -9876543210
- RHS c_u_p_second_stage(1)_INC_constraint3(3)_ -9876543210
- RHS c_u_p_second_stage(1)_INC_constraint4(1)_ -9876543210
- RHS c_u_p_second_stage(1)_INC_constraint4(2)_ -9876543210
- RHS c_u_p_second_stage(1)_INC_constraint4(3)_ -9876543210
- RHS r_l_r_second_stage_ -9876543210
- RHS r_u_r_second_stage_ -9876543210
- RHS c_e_ONE_VAR_CONSTANT 1
-BOUNDS
- FR BOUND fx
- BV BOUND p_first_stage_INC_bin_y(1)
- BV BOUND p_first_stage_INC_bin_y(2)
- BV BOUND p_first_stage_INC_bin_y(3)
- MI BOUND p_first_stage_INC_delta(1)
- UP BOUND p_first_stage_INC_delta(1) 1
- FR BOUND p_first_stage_INC_delta(2)
- FR BOUND p_first_stage_INC_delta(3)
- LO BOUND p_first_stage_INC_delta(4) 0
- LO BOUND x 0
- UP BOUND x 10
- FR BOUND fz
- BV BOUND p_second_stage(1)_INC_bin_y(1)
- BV BOUND p_second_stage(1)_INC_bin_y(2)
- BV BOUND p_second_stage(1)_INC_bin_y(3)
- MI BOUND p_second_stage(1)_INC_delta(1)
- UP BOUND p_second_stage(1)_INC_delta(1) 1
- FR BOUND p_second_stage(1)_INC_delta(2)
- FR BOUND p_second_stage(1)_INC_delta(3)
- LO BOUND p_second_stage(1)_INC_delta(4) 0
- FR BOUND r
- LO BOUND z -10
- UP BOUND z 10
-ENDATA
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_symbolic_names_ignore_derived_baseline/scenario_files/piecewise.mps.det.Scenario2 b/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_symbolic_names_ignore_derived_baseline/scenario_files/piecewise.mps.det.Scenario2
deleted file mode 100644
index 9f167dfde11..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_symbolic_names_ignore_derived_baseline/scenario_files/piecewise.mps.det.Scenario2
+++ /dev/null
@@ -1,128 +0,0 @@
-* Source: Pyomo MPS Writer
-* Format: Free MPS
-*
-NAME ZeroStochasticData
-OBJSENSE
- MIN
-ROWS
- N o
- E c_e_p_first_stage_INC_constraint1_
- E c_e_p_first_stage_INC_constraint2_
- G c_l_c_first_stage_
- L c_u_p_first_stage_INC_constraint3(1)_
- L c_u_p_first_stage_INC_constraint3(2)_
- L c_u_p_first_stage_INC_constraint3(3)_
- L c_u_p_first_stage_INC_constraint4(1)_
- L c_u_p_first_stage_INC_constraint4(2)_
- L c_u_p_first_stage_INC_constraint4(3)_
- E c_e_p_second_stage(1)_INC_constraint1_
- E c_e_p_second_stage(1)_INC_constraint2_
- G c_l_c_second_stage_
- L c_u_p_second_stage(1)_INC_constraint3(1)_
- L c_u_p_second_stage(1)_INC_constraint3(2)_
- L c_u_p_second_stage(1)_INC_constraint3(3)_
- L c_u_p_second_stage(1)_INC_constraint4(1)_
- L c_u_p_second_stage(1)_INC_constraint4(2)_
- L c_u_p_second_stage(1)_INC_constraint4(3)_
- G r_l_r_second_stage_
- L r_u_r_second_stage_
- E c_e_ONE_VAR_CONSTANT
-COLUMNS
- fx o -9876543210
- fx c_e_p_first_stage_INC_constraint2_ 1
- p_first_stage_INC_bin_y(1) c_u_p_first_stage_INC_constraint3(1)_ -1
- p_first_stage_INC_bin_y(1) c_u_p_first_stage_INC_constraint4(1)_ 1
- p_first_stage_INC_bin_y(2) c_u_p_first_stage_INC_constraint3(2)_ -1
- p_first_stage_INC_bin_y(2) c_u_p_first_stage_INC_constraint4(2)_ 1
- p_first_stage_INC_bin_y(3) c_u_p_first_stage_INC_constraint3(3)_ -1
- p_first_stage_INC_bin_y(3) c_u_p_first_stage_INC_constraint4(3)_ 1
- p_first_stage_INC_delta(1) c_e_p_first_stage_INC_constraint1_ -2
- p_first_stage_INC_delta(1) c_u_p_first_stage_INC_constraint4(1)_ -1
- p_first_stage_INC_delta(2) c_e_p_first_stage_INC_constraint1_ -3
- p_first_stage_INC_delta(2) c_e_p_first_stage_INC_constraint2_ 1
- p_first_stage_INC_delta(2) c_u_p_first_stage_INC_constraint3(1)_ 1
- p_first_stage_INC_delta(2) c_u_p_first_stage_INC_constraint4(2)_ -1
- p_first_stage_INC_delta(3) c_e_p_first_stage_INC_constraint1_ -2
- p_first_stage_INC_delta(3) c_e_p_first_stage_INC_constraint2_ -1
- p_first_stage_INC_delta(3) c_u_p_first_stage_INC_constraint3(2)_ 1
- p_first_stage_INC_delta(3) c_u_p_first_stage_INC_constraint4(3)_ -1
- p_first_stage_INC_delta(4) c_e_p_first_stage_INC_constraint1_ -3
- p_first_stage_INC_delta(4) c_u_p_first_stage_INC_constraint3(3)_ 1
- x c_e_p_first_stage_INC_constraint1_ 1
- x c_l_c_first_stage_ 1
- x c_l_c_second_stage_ 1
- fz o -9876543210
- fz c_e_p_second_stage(1)_INC_constraint2_ -9876543210
- p_second_stage(1)_INC_bin_y(1) c_u_p_second_stage(1)_INC_constraint3(1)_ -9876543210
- p_second_stage(1)_INC_bin_y(1) c_u_p_second_stage(1)_INC_constraint4(1)_ -9876543210
- p_second_stage(1)_INC_bin_y(2) c_u_p_second_stage(1)_INC_constraint3(2)_ -9876543210
- p_second_stage(1)_INC_bin_y(2) c_u_p_second_stage(1)_INC_constraint4(2)_ -9876543210
- p_second_stage(1)_INC_bin_y(3) c_u_p_second_stage(1)_INC_constraint3(3)_ -9876543210
- p_second_stage(1)_INC_bin_y(3) c_u_p_second_stage(1)_INC_constraint4(3)_ -9876543210
- p_second_stage(1)_INC_delta(1) c_e_p_second_stage(1)_INC_constraint1_ -9876543210
- p_second_stage(1)_INC_delta(1) c_u_p_second_stage(1)_INC_constraint4(1)_ -9876543210
- p_second_stage(1)_INC_delta(2) c_e_p_second_stage(1)_INC_constraint1_ -9876543210
- p_second_stage(1)_INC_delta(2) c_e_p_second_stage(1)_INC_constraint2_ -9876543210
- p_second_stage(1)_INC_delta(2) c_u_p_second_stage(1)_INC_constraint3(1)_ -9876543210
- p_second_stage(1)_INC_delta(2) c_u_p_second_stage(1)_INC_constraint4(2)_ -9876543210
- p_second_stage(1)_INC_delta(3) c_e_p_second_stage(1)_INC_constraint1_ -9876543210
- p_second_stage(1)_INC_delta(3) c_e_p_second_stage(1)_INC_constraint2_ -9876543210
- p_second_stage(1)_INC_delta(3) c_u_p_second_stage(1)_INC_constraint3(2)_ -9876543210
- p_second_stage(1)_INC_delta(3) c_u_p_second_stage(1)_INC_constraint4(3)_ -9876543210
- p_second_stage(1)_INC_delta(4) c_e_p_second_stage(1)_INC_constraint1_ -9876543210
- p_second_stage(1)_INC_delta(4) c_e_p_second_stage(1)_INC_constraint2_ -9876543210
- p_second_stage(1)_INC_delta(4) c_u_p_second_stage(1)_INC_constraint3(3)_ -9876543210
- r o -9876543210
- r c_l_c_second_stage_ -9876543210
- r r_l_r_second_stage_ 1
- r r_u_r_second_stage_ 1
- z c_e_p_second_stage(1)_INC_constraint1_ -9876543210
- ONE_VAR_CONSTANT o 0
- ONE_VAR_CONSTANT c_e_ONE_VAR_CONSTANT 1
-RHS
- RHS c_e_p_first_stage_INC_constraint1_ 0
- RHS c_e_p_first_stage_INC_constraint2_ 10
- RHS c_l_c_first_stage_ 0
- RHS c_u_p_first_stage_INC_constraint3(1)_ 0
- RHS c_u_p_first_stage_INC_constraint3(2)_ 0
- RHS c_u_p_first_stage_INC_constraint3(3)_ 0
- RHS c_u_p_first_stage_INC_constraint4(1)_ 0
- RHS c_u_p_first_stage_INC_constraint4(2)_ 0
- RHS c_u_p_first_stage_INC_constraint4(3)_ 0
- RHS c_e_p_second_stage(1)_INC_constraint1_ -9876543210
- RHS c_e_p_second_stage(1)_INC_constraint2_ -9876543210
- RHS c_l_c_second_stage_ -100
- RHS c_u_p_second_stage(1)_INC_constraint3(1)_ -9876543210
- RHS c_u_p_second_stage(1)_INC_constraint3(2)_ -9876543210
- RHS c_u_p_second_stage(1)_INC_constraint3(3)_ -9876543210
- RHS c_u_p_second_stage(1)_INC_constraint4(1)_ -9876543210
- RHS c_u_p_second_stage(1)_INC_constraint4(2)_ -9876543210
- RHS c_u_p_second_stage(1)_INC_constraint4(3)_ -9876543210
- RHS r_l_r_second_stage_ -9876543210
- RHS r_u_r_second_stage_ -9876543210
- RHS c_e_ONE_VAR_CONSTANT 1
-BOUNDS
- FR BOUND fx
- BV BOUND p_first_stage_INC_bin_y(1)
- BV BOUND p_first_stage_INC_bin_y(2)
- BV BOUND p_first_stage_INC_bin_y(3)
- MI BOUND p_first_stage_INC_delta(1)
- UP BOUND p_first_stage_INC_delta(1) 1
- FR BOUND p_first_stage_INC_delta(2)
- FR BOUND p_first_stage_INC_delta(3)
- LO BOUND p_first_stage_INC_delta(4) 0
- LO BOUND x 0
- UP BOUND x 10
- FR BOUND fz
- BV BOUND p_second_stage(1)_INC_bin_y(1)
- BV BOUND p_second_stage(1)_INC_bin_y(2)
- BV BOUND p_second_stage(1)_INC_bin_y(3)
- MI BOUND p_second_stage(1)_INC_delta(1)
- UP BOUND p_second_stage(1)_INC_delta(1) 1
- FR BOUND p_second_stage(1)_INC_delta(2)
- FR BOUND p_second_stage(1)_INC_delta(3)
- LO BOUND p_second_stage(1)_INC_delta(4) 0
- FR BOUND r
- LO BOUND z -10
- UP BOUND z 10
-ENDATA
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_symbolic_names_ignore_derived_baseline/scenario_files/piecewise.mps.det.Scenario3 b/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_symbolic_names_ignore_derived_baseline/scenario_files/piecewise.mps.det.Scenario3
deleted file mode 100644
index 9f167dfde11..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_symbolic_names_ignore_derived_baseline/scenario_files/piecewise.mps.det.Scenario3
+++ /dev/null
@@ -1,128 +0,0 @@
-* Source: Pyomo MPS Writer
-* Format: Free MPS
-*
-NAME ZeroStochasticData
-OBJSENSE
- MIN
-ROWS
- N o
- E c_e_p_first_stage_INC_constraint1_
- E c_e_p_first_stage_INC_constraint2_
- G c_l_c_first_stage_
- L c_u_p_first_stage_INC_constraint3(1)_
- L c_u_p_first_stage_INC_constraint3(2)_
- L c_u_p_first_stage_INC_constraint3(3)_
- L c_u_p_first_stage_INC_constraint4(1)_
- L c_u_p_first_stage_INC_constraint4(2)_
- L c_u_p_first_stage_INC_constraint4(3)_
- E c_e_p_second_stage(1)_INC_constraint1_
- E c_e_p_second_stage(1)_INC_constraint2_
- G c_l_c_second_stage_
- L c_u_p_second_stage(1)_INC_constraint3(1)_
- L c_u_p_second_stage(1)_INC_constraint3(2)_
- L c_u_p_second_stage(1)_INC_constraint3(3)_
- L c_u_p_second_stage(1)_INC_constraint4(1)_
- L c_u_p_second_stage(1)_INC_constraint4(2)_
- L c_u_p_second_stage(1)_INC_constraint4(3)_
- G r_l_r_second_stage_
- L r_u_r_second_stage_
- E c_e_ONE_VAR_CONSTANT
-COLUMNS
- fx o -9876543210
- fx c_e_p_first_stage_INC_constraint2_ 1
- p_first_stage_INC_bin_y(1) c_u_p_first_stage_INC_constraint3(1)_ -1
- p_first_stage_INC_bin_y(1) c_u_p_first_stage_INC_constraint4(1)_ 1
- p_first_stage_INC_bin_y(2) c_u_p_first_stage_INC_constraint3(2)_ -1
- p_first_stage_INC_bin_y(2) c_u_p_first_stage_INC_constraint4(2)_ 1
- p_first_stage_INC_bin_y(3) c_u_p_first_stage_INC_constraint3(3)_ -1
- p_first_stage_INC_bin_y(3) c_u_p_first_stage_INC_constraint4(3)_ 1
- p_first_stage_INC_delta(1) c_e_p_first_stage_INC_constraint1_ -2
- p_first_stage_INC_delta(1) c_u_p_first_stage_INC_constraint4(1)_ -1
- p_first_stage_INC_delta(2) c_e_p_first_stage_INC_constraint1_ -3
- p_first_stage_INC_delta(2) c_e_p_first_stage_INC_constraint2_ 1
- p_first_stage_INC_delta(2) c_u_p_first_stage_INC_constraint3(1)_ 1
- p_first_stage_INC_delta(2) c_u_p_first_stage_INC_constraint4(2)_ -1
- p_first_stage_INC_delta(3) c_e_p_first_stage_INC_constraint1_ -2
- p_first_stage_INC_delta(3) c_e_p_first_stage_INC_constraint2_ -1
- p_first_stage_INC_delta(3) c_u_p_first_stage_INC_constraint3(2)_ 1
- p_first_stage_INC_delta(3) c_u_p_first_stage_INC_constraint4(3)_ -1
- p_first_stage_INC_delta(4) c_e_p_first_stage_INC_constraint1_ -3
- p_first_stage_INC_delta(4) c_u_p_first_stage_INC_constraint3(3)_ 1
- x c_e_p_first_stage_INC_constraint1_ 1
- x c_l_c_first_stage_ 1
- x c_l_c_second_stage_ 1
- fz o -9876543210
- fz c_e_p_second_stage(1)_INC_constraint2_ -9876543210
- p_second_stage(1)_INC_bin_y(1) c_u_p_second_stage(1)_INC_constraint3(1)_ -9876543210
- p_second_stage(1)_INC_bin_y(1) c_u_p_second_stage(1)_INC_constraint4(1)_ -9876543210
- p_second_stage(1)_INC_bin_y(2) c_u_p_second_stage(1)_INC_constraint3(2)_ -9876543210
- p_second_stage(1)_INC_bin_y(2) c_u_p_second_stage(1)_INC_constraint4(2)_ -9876543210
- p_second_stage(1)_INC_bin_y(3) c_u_p_second_stage(1)_INC_constraint3(3)_ -9876543210
- p_second_stage(1)_INC_bin_y(3) c_u_p_second_stage(1)_INC_constraint4(3)_ -9876543210
- p_second_stage(1)_INC_delta(1) c_e_p_second_stage(1)_INC_constraint1_ -9876543210
- p_second_stage(1)_INC_delta(1) c_u_p_second_stage(1)_INC_constraint4(1)_ -9876543210
- p_second_stage(1)_INC_delta(2) c_e_p_second_stage(1)_INC_constraint1_ -9876543210
- p_second_stage(1)_INC_delta(2) c_e_p_second_stage(1)_INC_constraint2_ -9876543210
- p_second_stage(1)_INC_delta(2) c_u_p_second_stage(1)_INC_constraint3(1)_ -9876543210
- p_second_stage(1)_INC_delta(2) c_u_p_second_stage(1)_INC_constraint4(2)_ -9876543210
- p_second_stage(1)_INC_delta(3) c_e_p_second_stage(1)_INC_constraint1_ -9876543210
- p_second_stage(1)_INC_delta(3) c_e_p_second_stage(1)_INC_constraint2_ -9876543210
- p_second_stage(1)_INC_delta(3) c_u_p_second_stage(1)_INC_constraint3(2)_ -9876543210
- p_second_stage(1)_INC_delta(3) c_u_p_second_stage(1)_INC_constraint4(3)_ -9876543210
- p_second_stage(1)_INC_delta(4) c_e_p_second_stage(1)_INC_constraint1_ -9876543210
- p_second_stage(1)_INC_delta(4) c_e_p_second_stage(1)_INC_constraint2_ -9876543210
- p_second_stage(1)_INC_delta(4) c_u_p_second_stage(1)_INC_constraint3(3)_ -9876543210
- r o -9876543210
- r c_l_c_second_stage_ -9876543210
- r r_l_r_second_stage_ 1
- r r_u_r_second_stage_ 1
- z c_e_p_second_stage(1)_INC_constraint1_ -9876543210
- ONE_VAR_CONSTANT o 0
- ONE_VAR_CONSTANT c_e_ONE_VAR_CONSTANT 1
-RHS
- RHS c_e_p_first_stage_INC_constraint1_ 0
- RHS c_e_p_first_stage_INC_constraint2_ 10
- RHS c_l_c_first_stage_ 0
- RHS c_u_p_first_stage_INC_constraint3(1)_ 0
- RHS c_u_p_first_stage_INC_constraint3(2)_ 0
- RHS c_u_p_first_stage_INC_constraint3(3)_ 0
- RHS c_u_p_first_stage_INC_constraint4(1)_ 0
- RHS c_u_p_first_stage_INC_constraint4(2)_ 0
- RHS c_u_p_first_stage_INC_constraint4(3)_ 0
- RHS c_e_p_second_stage(1)_INC_constraint1_ -9876543210
- RHS c_e_p_second_stage(1)_INC_constraint2_ -9876543210
- RHS c_l_c_second_stage_ -100
- RHS c_u_p_second_stage(1)_INC_constraint3(1)_ -9876543210
- RHS c_u_p_second_stage(1)_INC_constraint3(2)_ -9876543210
- RHS c_u_p_second_stage(1)_INC_constraint3(3)_ -9876543210
- RHS c_u_p_second_stage(1)_INC_constraint4(1)_ -9876543210
- RHS c_u_p_second_stage(1)_INC_constraint4(2)_ -9876543210
- RHS c_u_p_second_stage(1)_INC_constraint4(3)_ -9876543210
- RHS r_l_r_second_stage_ -9876543210
- RHS r_u_r_second_stage_ -9876543210
- RHS c_e_ONE_VAR_CONSTANT 1
-BOUNDS
- FR BOUND fx
- BV BOUND p_first_stage_INC_bin_y(1)
- BV BOUND p_first_stage_INC_bin_y(2)
- BV BOUND p_first_stage_INC_bin_y(3)
- MI BOUND p_first_stage_INC_delta(1)
- UP BOUND p_first_stage_INC_delta(1) 1
- FR BOUND p_first_stage_INC_delta(2)
- FR BOUND p_first_stage_INC_delta(3)
- LO BOUND p_first_stage_INC_delta(4) 0
- LO BOUND x 0
- UP BOUND x 10
- FR BOUND fz
- BV BOUND p_second_stage(1)_INC_bin_y(1)
- BV BOUND p_second_stage(1)_INC_bin_y(2)
- BV BOUND p_second_stage(1)_INC_bin_y(3)
- MI BOUND p_second_stage(1)_INC_delta(1)
- UP BOUND p_second_stage(1)_INC_delta(1) 1
- FR BOUND p_second_stage(1)_INC_delta(2)
- FR BOUND p_second_stage(1)_INC_delta(3)
- LO BOUND p_second_stage(1)_INC_delta(4) 0
- FR BOUND r
- LO BOUND z -10
- UP BOUND z 10
-ENDATA
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_symbolic_names_ignore_derived_baseline/scenario_files/piecewise.mps.symbols.Scenario1 b/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_symbolic_names_ignore_derived_baseline/scenario_files/piecewise.mps.symbols.Scenario1
deleted file mode 100644
index 3ea722dd807..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_symbolic_names_ignore_derived_baseline/scenario_files/piecewise.mps.symbols.Scenario1
+++ /dev/null
@@ -1,9 +0,0 @@
-fx fx
-p_first_stage_INC_bin_y(1) p_first_stage.INC_bin_y:#1
-p_first_stage_INC_bin_y(2) p_first_stage.INC_bin_y:#2
-p_first_stage_INC_bin_y(3) p_first_stage.INC_bin_y:#3
-p_first_stage_INC_delta(1) p_first_stage.INC_delta:#1
-p_first_stage_INC_delta(2) p_first_stage.INC_delta:#2
-p_first_stage_INC_delta(3) p_first_stage.INC_delta:#3
-p_first_stage_INC_delta(4) p_first_stage.INC_delta:#4
-x x
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_symbolic_names_ignore_derived_baseline/scenario_files/piecewise.mps.symbols.Scenario2 b/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_symbolic_names_ignore_derived_baseline/scenario_files/piecewise.mps.symbols.Scenario2
deleted file mode 100644
index 3ea722dd807..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_symbolic_names_ignore_derived_baseline/scenario_files/piecewise.mps.symbols.Scenario2
+++ /dev/null
@@ -1,9 +0,0 @@
-fx fx
-p_first_stage_INC_bin_y(1) p_first_stage.INC_bin_y:#1
-p_first_stage_INC_bin_y(2) p_first_stage.INC_bin_y:#2
-p_first_stage_INC_bin_y(3) p_first_stage.INC_bin_y:#3
-p_first_stage_INC_delta(1) p_first_stage.INC_delta:#1
-p_first_stage_INC_delta(2) p_first_stage.INC_delta:#2
-p_first_stage_INC_delta(3) p_first_stage.INC_delta:#3
-p_first_stage_INC_delta(4) p_first_stage.INC_delta:#4
-x x
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_symbolic_names_ignore_derived_baseline/scenario_files/piecewise.mps.symbols.Scenario3 b/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_symbolic_names_ignore_derived_baseline/scenario_files/piecewise.mps.symbols.Scenario3
deleted file mode 100644
index 3ea722dd807..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_symbolic_names_ignore_derived_baseline/scenario_files/piecewise.mps.symbols.Scenario3
+++ /dev/null
@@ -1,9 +0,0 @@
-fx fx
-p_first_stage_INC_bin_y(1) p_first_stage.INC_bin_y:#1
-p_first_stage_INC_bin_y(2) p_first_stage.INC_bin_y:#2
-p_first_stage_INC_bin_y(3) p_first_stage.INC_bin_y:#3
-p_first_stage_INC_delta(1) p_first_stage.INC_delta:#1
-p_first_stage_INC_delta(2) p_first_stage.INC_delta:#2
-p_first_stage_INC_delta(3) p_first_stage.INC_delta:#3
-p_first_stage_INC_delta(4) p_first_stage.INC_delta:#4
-x x
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_symbolic_names_ignore_derived_baseline/scenario_files/piecewise.row.Scenario1 b/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_symbolic_names_ignore_derived_baseline/scenario_files/piecewise.row.Scenario1
deleted file mode 100644
index 12384c6692a..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_symbolic_names_ignore_derived_baseline/scenario_files/piecewise.row.Scenario1
+++ /dev/null
@@ -1,22 +0,0 @@
-o
-c_e_p_first_stage_INC_constraint1_
-c_e_p_first_stage_INC_constraint2_
-c_l_c_first_stage_
-c_u_p_first_stage_INC_constraint3(1)_
-c_u_p_first_stage_INC_constraint3(2)_
-c_u_p_first_stage_INC_constraint3(3)_
-c_u_p_first_stage_INC_constraint4(1)_
-c_u_p_first_stage_INC_constraint4(2)_
-c_u_p_first_stage_INC_constraint4(3)_
-c_e_p_second_stage(1)_INC_constraint1_
-c_e_p_second_stage(1)_INC_constraint2_
-c_l_c_second_stage_
-c_u_p_second_stage(1)_INC_constraint3(1)_
-c_u_p_second_stage(1)_INC_constraint3(2)_
-c_u_p_second_stage(1)_INC_constraint3(3)_
-c_u_p_second_stage(1)_INC_constraint4(1)_
-c_u_p_second_stage(1)_INC_constraint4(2)_
-c_u_p_second_stage(1)_INC_constraint4(3)_
-r_l_r_second_stage_
-r_u_r_second_stage_
-c_e_ONE_VAR_CONSTANT
\ No newline at end of file
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_symbolic_names_ignore_derived_baseline/scenario_files/piecewise.row.Scenario2 b/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_symbolic_names_ignore_derived_baseline/scenario_files/piecewise.row.Scenario2
deleted file mode 100644
index 12384c6692a..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_symbolic_names_ignore_derived_baseline/scenario_files/piecewise.row.Scenario2
+++ /dev/null
@@ -1,22 +0,0 @@
-o
-c_e_p_first_stage_INC_constraint1_
-c_e_p_first_stage_INC_constraint2_
-c_l_c_first_stage_
-c_u_p_first_stage_INC_constraint3(1)_
-c_u_p_first_stage_INC_constraint3(2)_
-c_u_p_first_stage_INC_constraint3(3)_
-c_u_p_first_stage_INC_constraint4(1)_
-c_u_p_first_stage_INC_constraint4(2)_
-c_u_p_first_stage_INC_constraint4(3)_
-c_e_p_second_stage(1)_INC_constraint1_
-c_e_p_second_stage(1)_INC_constraint2_
-c_l_c_second_stage_
-c_u_p_second_stage(1)_INC_constraint3(1)_
-c_u_p_second_stage(1)_INC_constraint3(2)_
-c_u_p_second_stage(1)_INC_constraint3(3)_
-c_u_p_second_stage(1)_INC_constraint4(1)_
-c_u_p_second_stage(1)_INC_constraint4(2)_
-c_u_p_second_stage(1)_INC_constraint4(3)_
-r_l_r_second_stage_
-r_u_r_second_stage_
-c_e_ONE_VAR_CONSTANT
\ No newline at end of file
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_symbolic_names_ignore_derived_baseline/scenario_files/piecewise.row.Scenario3 b/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_symbolic_names_ignore_derived_baseline/scenario_files/piecewise.row.Scenario3
deleted file mode 100644
index 12384c6692a..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_symbolic_names_ignore_derived_baseline/scenario_files/piecewise.row.Scenario3
+++ /dev/null
@@ -1,22 +0,0 @@
-o
-c_e_p_first_stage_INC_constraint1_
-c_e_p_first_stage_INC_constraint2_
-c_l_c_first_stage_
-c_u_p_first_stage_INC_constraint3(1)_
-c_u_p_first_stage_INC_constraint3(2)_
-c_u_p_first_stage_INC_constraint3(3)_
-c_u_p_first_stage_INC_constraint4(1)_
-c_u_p_first_stage_INC_constraint4(2)_
-c_u_p_first_stage_INC_constraint4(3)_
-c_e_p_second_stage(1)_INC_constraint1_
-c_e_p_second_stage(1)_INC_constraint2_
-c_l_c_second_stage_
-c_u_p_second_stage(1)_INC_constraint3(1)_
-c_u_p_second_stage(1)_INC_constraint3(2)_
-c_u_p_second_stage(1)_INC_constraint3(3)_
-c_u_p_second_stage(1)_INC_constraint4(1)_
-c_u_p_second_stage(1)_INC_constraint4(2)_
-c_u_p_second_stage(1)_INC_constraint4(3)_
-r_l_r_second_stage_
-r_u_r_second_stage_
-c_e_ONE_VAR_CONSTANT
\ No newline at end of file
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_symbolic_names_ignore_derived_baseline/scenario_files/piecewise.setup.mps.Scenario1 b/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_symbolic_names_ignore_derived_baseline/scenario_files/piecewise.setup.mps.Scenario1
deleted file mode 100644
index b8b9e27aabf..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_symbolic_names_ignore_derived_baseline/scenario_files/piecewise.setup.mps.Scenario1
+++ /dev/null
@@ -1,124 +0,0 @@
-* Source: Pyomo MPS Writer
-* Format: Free MPS
-*
-NAME Scenario1
-OBJSENSE
- MIN
-ROWS
- N o
- G c_l_c_first_stage_
- G c_l_c_second_stage_
- G r_l_r_second_stage_
- L r_u_r_second_stage_
- E c_e_p_first_stage_INC_constraint1_
- E c_e_p_first_stage_INC_constraint2_
- L c_u_p_first_stage_INC_constraint3(1)_
- L c_u_p_first_stage_INC_constraint3(2)_
- L c_u_p_first_stage_INC_constraint3(3)_
- L c_u_p_first_stage_INC_constraint4(1)_
- L c_u_p_first_stage_INC_constraint4(2)_
- L c_u_p_first_stage_INC_constraint4(3)_
- E c_e_p_second_stage(1)_INC_constraint1_
- E c_e_p_second_stage(1)_INC_constraint2_
- L c_u_p_second_stage(1)_INC_constraint3(1)_
- L c_u_p_second_stage(1)_INC_constraint3(2)_
- L c_u_p_second_stage(1)_INC_constraint3(3)_
- L c_u_p_second_stage(1)_INC_constraint4(1)_
- L c_u_p_second_stage(1)_INC_constraint4(2)_
- L c_u_p_second_stage(1)_INC_constraint4(3)_
-COLUMNS
- x c_l_c_first_stage_ 1
- x c_l_c_second_stage_ 1
- x c_e_p_first_stage_INC_constraint1_ 1
- fx o 1
- fx c_e_p_first_stage_INC_constraint2_ 1
- z c_e_p_second_stage(1)_INC_constraint1_ 1
- fz o -1
- fz c_e_p_second_stage(1)_INC_constraint2_ 1
- r o 1
- r c_l_c_second_stage_ 0
- r r_l_r_second_stage_ 1
- r r_u_r_second_stage_ 1
- p_first_stage_INC_delta(1) c_e_p_first_stage_INC_constraint1_ -2
- p_first_stage_INC_delta(1) c_u_p_first_stage_INC_constraint4(1)_ -1
- p_first_stage_INC_delta(2) c_e_p_first_stage_INC_constraint1_ -3
- p_first_stage_INC_delta(2) c_e_p_first_stage_INC_constraint2_ 1
- p_first_stage_INC_delta(2) c_u_p_first_stage_INC_constraint3(1)_ 1
- p_first_stage_INC_delta(2) c_u_p_first_stage_INC_constraint4(2)_ -1
- p_first_stage_INC_delta(3) c_e_p_first_stage_INC_constraint1_ -2
- p_first_stage_INC_delta(3) c_e_p_first_stage_INC_constraint2_ -1
- p_first_stage_INC_delta(3) c_u_p_first_stage_INC_constraint3(2)_ 1
- p_first_stage_INC_delta(3) c_u_p_first_stage_INC_constraint4(3)_ -1
- p_first_stage_INC_delta(4) c_e_p_first_stage_INC_constraint1_ -3
- p_first_stage_INC_delta(4) c_u_p_first_stage_INC_constraint3(3)_ 1
- p_first_stage_INC_bin_y(1) c_u_p_first_stage_INC_constraint3(1)_ -1
- p_first_stage_INC_bin_y(1) c_u_p_first_stage_INC_constraint4(1)_ 1
- p_first_stage_INC_bin_y(2) c_u_p_first_stage_INC_constraint3(2)_ -1
- p_first_stage_INC_bin_y(2) c_u_p_first_stage_INC_constraint4(2)_ 1
- p_first_stage_INC_bin_y(3) c_u_p_first_stage_INC_constraint3(3)_ -1
- p_first_stage_INC_bin_y(3) c_u_p_first_stage_INC_constraint4(3)_ 1
- p_second_stage(1)_INC_delta(1) c_e_p_second_stage(1)_INC_constraint1_ -5
- p_second_stage(1)_INC_delta(1) c_u_p_second_stage(1)_INC_constraint4(1)_ -1
- p_second_stage(1)_INC_delta(2) c_e_p_second_stage(1)_INC_constraint1_ -5
- p_second_stage(1)_INC_delta(2) c_e_p_second_stage(1)_INC_constraint2_ 1
- p_second_stage(1)_INC_delta(2) c_u_p_second_stage(1)_INC_constraint3(1)_ 1
- p_second_stage(1)_INC_delta(2) c_u_p_second_stage(1)_INC_constraint4(2)_ -1
- p_second_stage(1)_INC_delta(3) c_e_p_second_stage(1)_INC_constraint1_ -5
- p_second_stage(1)_INC_delta(3) c_e_p_second_stage(1)_INC_constraint2_ -3
- p_second_stage(1)_INC_delta(3) c_u_p_second_stage(1)_INC_constraint3(2)_ 1
- p_second_stage(1)_INC_delta(3) c_u_p_second_stage(1)_INC_constraint4(3)_ -1
- p_second_stage(1)_INC_delta(4) c_e_p_second_stage(1)_INC_constraint1_ -5
- p_second_stage(1)_INC_delta(4) c_e_p_second_stage(1)_INC_constraint2_ 1
- p_second_stage(1)_INC_delta(4) c_u_p_second_stage(1)_INC_constraint3(3)_ 1
- p_second_stage(1)_INC_bin_y(1) c_u_p_second_stage(1)_INC_constraint3(1)_ -1
- p_second_stage(1)_INC_bin_y(1) c_u_p_second_stage(1)_INC_constraint4(1)_ 1
- p_second_stage(1)_INC_bin_y(2) c_u_p_second_stage(1)_INC_constraint3(2)_ -1
- p_second_stage(1)_INC_bin_y(2) c_u_p_second_stage(1)_INC_constraint4(2)_ 1
- p_second_stage(1)_INC_bin_y(3) c_u_p_second_stage(1)_INC_constraint3(3)_ -1
- p_second_stage(1)_INC_bin_y(3) c_u_p_second_stage(1)_INC_constraint4(3)_ 1
-RHS
- RHS c_l_c_first_stage_ 0
- RHS c_l_c_second_stage_ -100
- RHS r_l_r_second_stage_ 0
- RHS r_u_r_second_stage_ 0
- RHS c_e_p_first_stage_INC_constraint1_ 0
- RHS c_e_p_first_stage_INC_constraint2_ 10
- RHS c_u_p_first_stage_INC_constraint3(1)_ 0
- RHS c_u_p_first_stage_INC_constraint3(2)_ 0
- RHS c_u_p_first_stage_INC_constraint3(3)_ 0
- RHS c_u_p_first_stage_INC_constraint4(1)_ 0
- RHS c_u_p_first_stage_INC_constraint4(2)_ 0
- RHS c_u_p_first_stage_INC_constraint4(3)_ 0
- RHS c_e_p_second_stage(1)_INC_constraint1_ -10
- RHS c_e_p_second_stage(1)_INC_constraint2_ 0
- RHS c_u_p_second_stage(1)_INC_constraint3(1)_ 0
- RHS c_u_p_second_stage(1)_INC_constraint3(2)_ 0
- RHS c_u_p_second_stage(1)_INC_constraint3(3)_ 0
- RHS c_u_p_second_stage(1)_INC_constraint4(1)_ 0
- RHS c_u_p_second_stage(1)_INC_constraint4(2)_ 0
- RHS c_u_p_second_stage(1)_INC_constraint4(3)_ 0
-BOUNDS
- LO BOUND x 0
- UP BOUND x 10
- FR BOUND fx
- LO BOUND z -10
- UP BOUND z 10
- FR BOUND fz
- FR BOUND r
- MI BOUND p_first_stage_INC_delta(1)
- UP BOUND p_first_stage_INC_delta(1) 1
- FR BOUND p_first_stage_INC_delta(2)
- FR BOUND p_first_stage_INC_delta(3)
- LO BOUND p_first_stage_INC_delta(4) 0
- BV BOUND p_first_stage_INC_bin_y(1)
- BV BOUND p_first_stage_INC_bin_y(2)
- BV BOUND p_first_stage_INC_bin_y(3)
- MI BOUND p_second_stage(1)_INC_delta(1)
- UP BOUND p_second_stage(1)_INC_delta(1) 1
- FR BOUND p_second_stage(1)_INC_delta(2)
- FR BOUND p_second_stage(1)_INC_delta(3)
- LO BOUND p_second_stage(1)_INC_delta(4) 0
- BV BOUND p_second_stage(1)_INC_bin_y(1)
- BV BOUND p_second_stage(1)_INC_bin_y(2)
- BV BOUND p_second_stage(1)_INC_bin_y(3)
-ENDATA
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_symbolic_names_ignore_derived_baseline/scenario_files/piecewise.setup.mps.Scenario2 b/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_symbolic_names_ignore_derived_baseline/scenario_files/piecewise.setup.mps.Scenario2
deleted file mode 100644
index 3b6ca255a25..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_symbolic_names_ignore_derived_baseline/scenario_files/piecewise.setup.mps.Scenario2
+++ /dev/null
@@ -1,128 +0,0 @@
-* Source: Pyomo MPS Writer
-* Format: Free MPS
-*
-NAME Scenario2
-OBJSENSE
- MIN
-ROWS
- N o
- G c_l_c_first_stage_
- G c_l_c_second_stage_
- G r_l_r_second_stage_
- L r_u_r_second_stage_
- E c_e_p_first_stage_INC_constraint1_
- E c_e_p_first_stage_INC_constraint2_
- L c_u_p_first_stage_INC_constraint3(1)_
- L c_u_p_first_stage_INC_constraint3(2)_
- L c_u_p_first_stage_INC_constraint3(3)_
- L c_u_p_first_stage_INC_constraint4(1)_
- L c_u_p_first_stage_INC_constraint4(2)_
- L c_u_p_first_stage_INC_constraint4(3)_
- E c_e_p_second_stage(1)_INC_constraint1_
- E c_e_p_second_stage(1)_INC_constraint2_
- L c_u_p_second_stage(1)_INC_constraint3(1)_
- L c_u_p_second_stage(1)_INC_constraint3(2)_
- L c_u_p_second_stage(1)_INC_constraint3(3)_
- L c_u_p_second_stage(1)_INC_constraint4(1)_
- L c_u_p_second_stage(1)_INC_constraint4(2)_
- L c_u_p_second_stage(1)_INC_constraint4(3)_
- E c_e_ONE_VAR_CONSTANT
-COLUMNS
- x c_l_c_first_stage_ 1
- x c_l_c_second_stage_ 1
- x c_e_p_first_stage_INC_constraint1_ 1
- fx o 1
- fx c_e_p_first_stage_INC_constraint2_ 1
- z c_e_p_second_stage(1)_INC_constraint1_ 1
- fz o -1
- fz c_e_p_second_stage(1)_INC_constraint2_ 1
- r o 1
- r c_l_c_second_stage_ 1
- r r_l_r_second_stage_ 1
- r r_u_r_second_stage_ 1
- p_first_stage_INC_delta(1) c_e_p_first_stage_INC_constraint1_ -2
- p_first_stage_INC_delta(1) c_u_p_first_stage_INC_constraint4(1)_ -1
- p_first_stage_INC_delta(2) c_e_p_first_stage_INC_constraint1_ -3
- p_first_stage_INC_delta(2) c_e_p_first_stage_INC_constraint2_ 1
- p_first_stage_INC_delta(2) c_u_p_first_stage_INC_constraint3(1)_ 1
- p_first_stage_INC_delta(2) c_u_p_first_stage_INC_constraint4(2)_ -1
- p_first_stage_INC_delta(3) c_e_p_first_stage_INC_constraint1_ -2
- p_first_stage_INC_delta(3) c_e_p_first_stage_INC_constraint2_ -1
- p_first_stage_INC_delta(3) c_u_p_first_stage_INC_constraint3(2)_ 1
- p_first_stage_INC_delta(3) c_u_p_first_stage_INC_constraint4(3)_ -1
- p_first_stage_INC_delta(4) c_e_p_first_stage_INC_constraint1_ -3
- p_first_stage_INC_delta(4) c_u_p_first_stage_INC_constraint3(3)_ 1
- p_first_stage_INC_bin_y(1) c_u_p_first_stage_INC_constraint3(1)_ -1
- p_first_stage_INC_bin_y(1) c_u_p_first_stage_INC_constraint4(1)_ 1
- p_first_stage_INC_bin_y(2) c_u_p_first_stage_INC_constraint3(2)_ -1
- p_first_stage_INC_bin_y(2) c_u_p_first_stage_INC_constraint4(2)_ 1
- p_first_stage_INC_bin_y(3) c_u_p_first_stage_INC_constraint3(3)_ -1
- p_first_stage_INC_bin_y(3) c_u_p_first_stage_INC_constraint4(3)_ 1
- p_second_stage(1)_INC_delta(1) c_e_p_second_stage(1)_INC_constraint1_ -5
- p_second_stage(1)_INC_delta(1) c_u_p_second_stage(1)_INC_constraint4(1)_ -1
- p_second_stage(1)_INC_delta(2) c_e_p_second_stage(1)_INC_constraint1_ -5
- p_second_stage(1)_INC_delta(2) c_e_p_second_stage(1)_INC_constraint2_ 1
- p_second_stage(1)_INC_delta(2) c_u_p_second_stage(1)_INC_constraint3(1)_ 1
- p_second_stage(1)_INC_delta(2) c_u_p_second_stage(1)_INC_constraint4(2)_ -1
- p_second_stage(1)_INC_delta(3) c_e_p_second_stage(1)_INC_constraint1_ -5
- p_second_stage(1)_INC_delta(3) c_e_p_second_stage(1)_INC_constraint2_ -4
- p_second_stage(1)_INC_delta(3) c_u_p_second_stage(1)_INC_constraint3(2)_ 1
- p_second_stage(1)_INC_delta(3) c_u_p_second_stage(1)_INC_constraint4(3)_ -1
- p_second_stage(1)_INC_delta(4) c_e_p_second_stage(1)_INC_constraint1_ -5
- p_second_stage(1)_INC_delta(4) c_e_p_second_stage(1)_INC_constraint2_ 2
- p_second_stage(1)_INC_delta(4) c_u_p_second_stage(1)_INC_constraint3(3)_ 1
- p_second_stage(1)_INC_bin_y(1) c_u_p_second_stage(1)_INC_constraint3(1)_ -1
- p_second_stage(1)_INC_bin_y(1) c_u_p_second_stage(1)_INC_constraint4(1)_ 1
- p_second_stage(1)_INC_bin_y(2) c_u_p_second_stage(1)_INC_constraint3(2)_ -1
- p_second_stage(1)_INC_bin_y(2) c_u_p_second_stage(1)_INC_constraint4(2)_ 1
- p_second_stage(1)_INC_bin_y(3) c_u_p_second_stage(1)_INC_constraint3(3)_ -1
- p_second_stage(1)_INC_bin_y(3) c_u_p_second_stage(1)_INC_constraint4(3)_ 1
- ONE_VAR_CONSTANT o -1
- ONE_VAR_CONSTANT c_e_ONE_VAR_CONSTANT 1
-RHS
- RHS c_l_c_first_stage_ 0
- RHS c_l_c_second_stage_ -100
- RHS r_l_r_second_stage_ -1
- RHS r_u_r_second_stage_ 0
- RHS c_e_p_first_stage_INC_constraint1_ 0
- RHS c_e_p_first_stage_INC_constraint2_ 10
- RHS c_u_p_first_stage_INC_constraint3(1)_ 0
- RHS c_u_p_first_stage_INC_constraint3(2)_ 0
- RHS c_u_p_first_stage_INC_constraint3(3)_ 0
- RHS c_u_p_first_stage_INC_constraint4(1)_ 0
- RHS c_u_p_first_stage_INC_constraint4(2)_ 0
- RHS c_u_p_first_stage_INC_constraint4(3)_ 0
- RHS c_e_p_second_stage(1)_INC_constraint1_ -10
- RHS c_e_p_second_stage(1)_INC_constraint2_ 0
- RHS c_u_p_second_stage(1)_INC_constraint3(1)_ 0
- RHS c_u_p_second_stage(1)_INC_constraint3(2)_ 0
- RHS c_u_p_second_stage(1)_INC_constraint3(3)_ 0
- RHS c_u_p_second_stage(1)_INC_constraint4(1)_ 0
- RHS c_u_p_second_stage(1)_INC_constraint4(2)_ 0
- RHS c_u_p_second_stage(1)_INC_constraint4(3)_ 0
- RHS c_e_ONE_VAR_CONSTANT 1
-BOUNDS
- LO BOUND x 0
- UP BOUND x 10
- FR BOUND fx
- LO BOUND z -10
- UP BOUND z 10
- FR BOUND fz
- FR BOUND r
- MI BOUND p_first_stage_INC_delta(1)
- UP BOUND p_first_stage_INC_delta(1) 1
- FR BOUND p_first_stage_INC_delta(2)
- FR BOUND p_first_stage_INC_delta(3)
- LO BOUND p_first_stage_INC_delta(4) 0
- BV BOUND p_first_stage_INC_bin_y(1)
- BV BOUND p_first_stage_INC_bin_y(2)
- BV BOUND p_first_stage_INC_bin_y(3)
- MI BOUND p_second_stage(1)_INC_delta(1)
- UP BOUND p_second_stage(1)_INC_delta(1) 1
- FR BOUND p_second_stage(1)_INC_delta(2)
- FR BOUND p_second_stage(1)_INC_delta(3)
- LO BOUND p_second_stage(1)_INC_delta(4) 0
- BV BOUND p_second_stage(1)_INC_bin_y(1)
- BV BOUND p_second_stage(1)_INC_bin_y(2)
- BV BOUND p_second_stage(1)_INC_bin_y(3)
-ENDATA
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_symbolic_names_ignore_derived_baseline/scenario_files/piecewise.setup.mps.Scenario3 b/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_symbolic_names_ignore_derived_baseline/scenario_files/piecewise.setup.mps.Scenario3
deleted file mode 100644
index 29bae3b5286..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_symbolic_names_ignore_derived_baseline/scenario_files/piecewise.setup.mps.Scenario3
+++ /dev/null
@@ -1,128 +0,0 @@
-* Source: Pyomo MPS Writer
-* Format: Free MPS
-*
-NAME Scenario3
-OBJSENSE
- MIN
-ROWS
- N o
- G c_l_c_first_stage_
- G c_l_c_second_stage_
- G r_l_r_second_stage_
- L r_u_r_second_stage_
- E c_e_p_first_stage_INC_constraint1_
- E c_e_p_first_stage_INC_constraint2_
- L c_u_p_first_stage_INC_constraint3(1)_
- L c_u_p_first_stage_INC_constraint3(2)_
- L c_u_p_first_stage_INC_constraint3(3)_
- L c_u_p_first_stage_INC_constraint4(1)_
- L c_u_p_first_stage_INC_constraint4(2)_
- L c_u_p_first_stage_INC_constraint4(3)_
- E c_e_p_second_stage(1)_INC_constraint1_
- E c_e_p_second_stage(1)_INC_constraint2_
- L c_u_p_second_stage(1)_INC_constraint3(1)_
- L c_u_p_second_stage(1)_INC_constraint3(2)_
- L c_u_p_second_stage(1)_INC_constraint3(3)_
- L c_u_p_second_stage(1)_INC_constraint4(1)_
- L c_u_p_second_stage(1)_INC_constraint4(2)_
- L c_u_p_second_stage(1)_INC_constraint4(3)_
- E c_e_ONE_VAR_CONSTANT
-COLUMNS
- x c_l_c_first_stage_ 1
- x c_l_c_second_stage_ 1
- x c_e_p_first_stage_INC_constraint1_ 1
- fx o 1
- fx c_e_p_first_stage_INC_constraint2_ 1
- z c_e_p_second_stage(1)_INC_constraint1_ 1
- fz o -1
- fz c_e_p_second_stage(1)_INC_constraint2_ 1
- r o 1
- r c_l_c_second_stage_ 2
- r r_l_r_second_stage_ 1
- r r_u_r_second_stage_ 1
- p_first_stage_INC_delta(1) c_e_p_first_stage_INC_constraint1_ -2
- p_first_stage_INC_delta(1) c_u_p_first_stage_INC_constraint4(1)_ -1
- p_first_stage_INC_delta(2) c_e_p_first_stage_INC_constraint1_ -3
- p_first_stage_INC_delta(2) c_e_p_first_stage_INC_constraint2_ 1
- p_first_stage_INC_delta(2) c_u_p_first_stage_INC_constraint3(1)_ 1
- p_first_stage_INC_delta(2) c_u_p_first_stage_INC_constraint4(2)_ -1
- p_first_stage_INC_delta(3) c_e_p_first_stage_INC_constraint1_ -2
- p_first_stage_INC_delta(3) c_e_p_first_stage_INC_constraint2_ -1
- p_first_stage_INC_delta(3) c_u_p_first_stage_INC_constraint3(2)_ 1
- p_first_stage_INC_delta(3) c_u_p_first_stage_INC_constraint4(3)_ -1
- p_first_stage_INC_delta(4) c_e_p_first_stage_INC_constraint1_ -3
- p_first_stage_INC_delta(4) c_u_p_first_stage_INC_constraint3(3)_ 1
- p_first_stage_INC_bin_y(1) c_u_p_first_stage_INC_constraint3(1)_ -1
- p_first_stage_INC_bin_y(1) c_u_p_first_stage_INC_constraint4(1)_ 1
- p_first_stage_INC_bin_y(2) c_u_p_first_stage_INC_constraint3(2)_ -1
- p_first_stage_INC_bin_y(2) c_u_p_first_stage_INC_constraint4(2)_ 1
- p_first_stage_INC_bin_y(3) c_u_p_first_stage_INC_constraint3(3)_ -1
- p_first_stage_INC_bin_y(3) c_u_p_first_stage_INC_constraint4(3)_ 1
- p_second_stage(1)_INC_delta(1) c_e_p_second_stage(1)_INC_constraint1_ -5
- p_second_stage(1)_INC_delta(1) c_u_p_second_stage(1)_INC_constraint4(1)_ -1
- p_second_stage(1)_INC_delta(2) c_e_p_second_stage(1)_INC_constraint1_ -5
- p_second_stage(1)_INC_delta(2) c_e_p_second_stage(1)_INC_constraint2_ 1
- p_second_stage(1)_INC_delta(2) c_u_p_second_stage(1)_INC_constraint3(1)_ 1
- p_second_stage(1)_INC_delta(2) c_u_p_second_stage(1)_INC_constraint4(2)_ -1
- p_second_stage(1)_INC_delta(3) c_e_p_second_stage(1)_INC_constraint1_ -5
- p_second_stage(1)_INC_delta(3) c_e_p_second_stage(1)_INC_constraint2_ -5
- p_second_stage(1)_INC_delta(3) c_u_p_second_stage(1)_INC_constraint3(2)_ 1
- p_second_stage(1)_INC_delta(3) c_u_p_second_stage(1)_INC_constraint4(3)_ -1
- p_second_stage(1)_INC_delta(4) c_e_p_second_stage(1)_INC_constraint1_ -5
- p_second_stage(1)_INC_delta(4) c_e_p_second_stage(1)_INC_constraint2_ 3
- p_second_stage(1)_INC_delta(4) c_u_p_second_stage(1)_INC_constraint3(3)_ 1
- p_second_stage(1)_INC_bin_y(1) c_u_p_second_stage(1)_INC_constraint3(1)_ -1
- p_second_stage(1)_INC_bin_y(1) c_u_p_second_stage(1)_INC_constraint4(1)_ 1
- p_second_stage(1)_INC_bin_y(2) c_u_p_second_stage(1)_INC_constraint3(2)_ -1
- p_second_stage(1)_INC_bin_y(2) c_u_p_second_stage(1)_INC_constraint4(2)_ 1
- p_second_stage(1)_INC_bin_y(3) c_u_p_second_stage(1)_INC_constraint3(3)_ -1
- p_second_stage(1)_INC_bin_y(3) c_u_p_second_stage(1)_INC_constraint4(3)_ 1
- ONE_VAR_CONSTANT o -2
- ONE_VAR_CONSTANT c_e_ONE_VAR_CONSTANT 1
-RHS
- RHS c_l_c_first_stage_ 0
- RHS c_l_c_second_stage_ -100
- RHS r_l_r_second_stage_ -2
- RHS r_u_r_second_stage_ 0
- RHS c_e_p_first_stage_INC_constraint1_ 0
- RHS c_e_p_first_stage_INC_constraint2_ 10
- RHS c_u_p_first_stage_INC_constraint3(1)_ 0
- RHS c_u_p_first_stage_INC_constraint3(2)_ 0
- RHS c_u_p_first_stage_INC_constraint3(3)_ 0
- RHS c_u_p_first_stage_INC_constraint4(1)_ 0
- RHS c_u_p_first_stage_INC_constraint4(2)_ 0
- RHS c_u_p_first_stage_INC_constraint4(3)_ 0
- RHS c_e_p_second_stage(1)_INC_constraint1_ -10
- RHS c_e_p_second_stage(1)_INC_constraint2_ 0
- RHS c_u_p_second_stage(1)_INC_constraint3(1)_ 0
- RHS c_u_p_second_stage(1)_INC_constraint3(2)_ 0
- RHS c_u_p_second_stage(1)_INC_constraint3(3)_ 0
- RHS c_u_p_second_stage(1)_INC_constraint4(1)_ 0
- RHS c_u_p_second_stage(1)_INC_constraint4(2)_ 0
- RHS c_u_p_second_stage(1)_INC_constraint4(3)_ 0
- RHS c_e_ONE_VAR_CONSTANT 1
-BOUNDS
- LO BOUND x 0
- UP BOUND x 10
- FR BOUND fx
- LO BOUND z -10
- UP BOUND z 10
- FR BOUND fz
- FR BOUND r
- MI BOUND p_first_stage_INC_delta(1)
- UP BOUND p_first_stage_INC_delta(1) 1
- FR BOUND p_first_stage_INC_delta(2)
- FR BOUND p_first_stage_INC_delta(3)
- LO BOUND p_first_stage_INC_delta(4) 0
- BV BOUND p_first_stage_INC_bin_y(1)
- BV BOUND p_first_stage_INC_bin_y(2)
- BV BOUND p_first_stage_INC_bin_y(3)
- MI BOUND p_second_stage(1)_INC_delta(1)
- UP BOUND p_second_stage(1)_INC_delta(1) 1
- FR BOUND p_second_stage(1)_INC_delta(2)
- FR BOUND p_second_stage(1)_INC_delta(3)
- LO BOUND p_second_stage(1)_INC_delta(4) 0
- BV BOUND p_second_stage(1)_INC_bin_y(1)
- BV BOUND p_second_stage(1)_INC_bin_y(2)
- BV BOUND p_second_stage(1)_INC_bin_y(3)
-ENDATA
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_symbolic_names_ignore_derived_baseline/scenario_files/piecewise.sto.Scenario1 b/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_symbolic_names_ignore_derived_baseline/scenario_files/piecewise.sto.Scenario1
deleted file mode 100644
index dde7bcea07e..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_symbolic_names_ignore_derived_baseline/scenario_files/piecewise.sto.Scenario1
+++ /dev/null
@@ -1,37 +0,0 @@
- BL BLOCK1 PERIOD2 0.33333333329999998
- RHS c_e_p_second_stage(1)_INC_constraint1_ -10
- RHS c_e_p_second_stage(1)_INC_constraint2_ 0
- RHS c_u_p_second_stage(1)_INC_constraint3(1)_ 0
- RHS c_u_p_second_stage(1)_INC_constraint3(2)_ 0
- RHS c_u_p_second_stage(1)_INC_constraint3(3)_ 0
- RHS c_u_p_second_stage(1)_INC_constraint4(1)_ 0
- RHS c_u_p_second_stage(1)_INC_constraint4(2)_ 0
- RHS c_u_p_second_stage(1)_INC_constraint4(3)_ 0
- RHS r_l_r_second_stage_ 0
- RHS r_u_r_second_stage_ 0
- r c_l_c_second_stage_ 0
- p_second_stage(1)_INC_delta(1) c_e_p_second_stage(1)_INC_constraint1_ -5
- p_second_stage(1)_INC_delta(2) c_e_p_second_stage(1)_INC_constraint1_ -5
- p_second_stage(1)_INC_delta(3) c_e_p_second_stage(1)_INC_constraint1_ -5
- p_second_stage(1)_INC_delta(4) c_e_p_second_stage(1)_INC_constraint1_ -5
- z c_e_p_second_stage(1)_INC_constraint1_ 1
- fz c_e_p_second_stage(1)_INC_constraint2_ 1
- p_second_stage(1)_INC_delta(2) c_e_p_second_stage(1)_INC_constraint2_ 1
- p_second_stage(1)_INC_delta(3) c_e_p_second_stage(1)_INC_constraint2_ -3
- p_second_stage(1)_INC_delta(4) c_e_p_second_stage(1)_INC_constraint2_ 1
- p_second_stage(1)_INC_bin_y(1) c_u_p_second_stage(1)_INC_constraint3(1)_ -1
- p_second_stage(1)_INC_delta(2) c_u_p_second_stage(1)_INC_constraint3(1)_ 1
- p_second_stage(1)_INC_bin_y(2) c_u_p_second_stage(1)_INC_constraint3(2)_ -1
- p_second_stage(1)_INC_delta(3) c_u_p_second_stage(1)_INC_constraint3(2)_ 1
- p_second_stage(1)_INC_bin_y(3) c_u_p_second_stage(1)_INC_constraint3(3)_ -1
- p_second_stage(1)_INC_delta(4) c_u_p_second_stage(1)_INC_constraint3(3)_ 1
- p_second_stage(1)_INC_bin_y(1) c_u_p_second_stage(1)_INC_constraint4(1)_ 1
- p_second_stage(1)_INC_delta(1) c_u_p_second_stage(1)_INC_constraint4(1)_ -1
- p_second_stage(1)_INC_bin_y(2) c_u_p_second_stage(1)_INC_constraint4(2)_ 1
- p_second_stage(1)_INC_delta(2) c_u_p_second_stage(1)_INC_constraint4(2)_ -1
- p_second_stage(1)_INC_bin_y(3) c_u_p_second_stage(1)_INC_constraint4(3)_ 1
- p_second_stage(1)_INC_delta(3) c_u_p_second_stage(1)_INC_constraint4(3)_ -1
- fx o 1
- fz o -1
- r o 1
- ONE_VAR_CONSTANT o 0
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_symbolic_names_ignore_derived_baseline/scenario_files/piecewise.sto.Scenario2 b/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_symbolic_names_ignore_derived_baseline/scenario_files/piecewise.sto.Scenario2
deleted file mode 100644
index 4cf43964b4b..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_symbolic_names_ignore_derived_baseline/scenario_files/piecewise.sto.Scenario2
+++ /dev/null
@@ -1,37 +0,0 @@
- BL BLOCK1 PERIOD2 0.33333333329999998
- RHS c_e_p_second_stage(1)_INC_constraint1_ -10
- RHS c_e_p_second_stage(1)_INC_constraint2_ 0
- RHS c_u_p_second_stage(1)_INC_constraint3(1)_ 0
- RHS c_u_p_second_stage(1)_INC_constraint3(2)_ 0
- RHS c_u_p_second_stage(1)_INC_constraint3(3)_ 0
- RHS c_u_p_second_stage(1)_INC_constraint4(1)_ 0
- RHS c_u_p_second_stage(1)_INC_constraint4(2)_ 0
- RHS c_u_p_second_stage(1)_INC_constraint4(3)_ 0
- RHS r_l_r_second_stage_ -1
- RHS r_u_r_second_stage_ 0
- r c_l_c_second_stage_ 1
- p_second_stage(1)_INC_delta(1) c_e_p_second_stage(1)_INC_constraint1_ -5
- p_second_stage(1)_INC_delta(2) c_e_p_second_stage(1)_INC_constraint1_ -5
- p_second_stage(1)_INC_delta(3) c_e_p_second_stage(1)_INC_constraint1_ -5
- p_second_stage(1)_INC_delta(4) c_e_p_second_stage(1)_INC_constraint1_ -5
- z c_e_p_second_stage(1)_INC_constraint1_ 1
- fz c_e_p_second_stage(1)_INC_constraint2_ 1
- p_second_stage(1)_INC_delta(2) c_e_p_second_stage(1)_INC_constraint2_ 1
- p_second_stage(1)_INC_delta(3) c_e_p_second_stage(1)_INC_constraint2_ -4
- p_second_stage(1)_INC_delta(4) c_e_p_second_stage(1)_INC_constraint2_ 2
- p_second_stage(1)_INC_bin_y(1) c_u_p_second_stage(1)_INC_constraint3(1)_ -1
- p_second_stage(1)_INC_delta(2) c_u_p_second_stage(1)_INC_constraint3(1)_ 1
- p_second_stage(1)_INC_bin_y(2) c_u_p_second_stage(1)_INC_constraint3(2)_ -1
- p_second_stage(1)_INC_delta(3) c_u_p_second_stage(1)_INC_constraint3(2)_ 1
- p_second_stage(1)_INC_bin_y(3) c_u_p_second_stage(1)_INC_constraint3(3)_ -1
- p_second_stage(1)_INC_delta(4) c_u_p_second_stage(1)_INC_constraint3(3)_ 1
- p_second_stage(1)_INC_bin_y(1) c_u_p_second_stage(1)_INC_constraint4(1)_ 1
- p_second_stage(1)_INC_delta(1) c_u_p_second_stage(1)_INC_constraint4(1)_ -1
- p_second_stage(1)_INC_bin_y(2) c_u_p_second_stage(1)_INC_constraint4(2)_ 1
- p_second_stage(1)_INC_delta(2) c_u_p_second_stage(1)_INC_constraint4(2)_ -1
- p_second_stage(1)_INC_bin_y(3) c_u_p_second_stage(1)_INC_constraint4(3)_ 1
- p_second_stage(1)_INC_delta(3) c_u_p_second_stage(1)_INC_constraint4(3)_ -1
- fx o 1
- fz o -1
- r o 1
- ONE_VAR_CONSTANT o -1
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_symbolic_names_ignore_derived_baseline/scenario_files/piecewise.sto.Scenario3 b/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_symbolic_names_ignore_derived_baseline/scenario_files/piecewise.sto.Scenario3
deleted file mode 100644
index b2f6b9f65ae..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_symbolic_names_ignore_derived_baseline/scenario_files/piecewise.sto.Scenario3
+++ /dev/null
@@ -1,37 +0,0 @@
- BL BLOCK1 PERIOD2 0.33333333329999998
- RHS c_e_p_second_stage(1)_INC_constraint1_ -10
- RHS c_e_p_second_stage(1)_INC_constraint2_ 0
- RHS c_u_p_second_stage(1)_INC_constraint3(1)_ 0
- RHS c_u_p_second_stage(1)_INC_constraint3(2)_ 0
- RHS c_u_p_second_stage(1)_INC_constraint3(3)_ 0
- RHS c_u_p_second_stage(1)_INC_constraint4(1)_ 0
- RHS c_u_p_second_stage(1)_INC_constraint4(2)_ 0
- RHS c_u_p_second_stage(1)_INC_constraint4(3)_ 0
- RHS r_l_r_second_stage_ -2
- RHS r_u_r_second_stage_ 0
- r c_l_c_second_stage_ 2
- p_second_stage(1)_INC_delta(1) c_e_p_second_stage(1)_INC_constraint1_ -5
- p_second_stage(1)_INC_delta(2) c_e_p_second_stage(1)_INC_constraint1_ -5
- p_second_stage(1)_INC_delta(3) c_e_p_second_stage(1)_INC_constraint1_ -5
- p_second_stage(1)_INC_delta(4) c_e_p_second_stage(1)_INC_constraint1_ -5
- z c_e_p_second_stage(1)_INC_constraint1_ 1
- fz c_e_p_second_stage(1)_INC_constraint2_ 1
- p_second_stage(1)_INC_delta(2) c_e_p_second_stage(1)_INC_constraint2_ 1
- p_second_stage(1)_INC_delta(3) c_e_p_second_stage(1)_INC_constraint2_ -5
- p_second_stage(1)_INC_delta(4) c_e_p_second_stage(1)_INC_constraint2_ 3
- p_second_stage(1)_INC_bin_y(1) c_u_p_second_stage(1)_INC_constraint3(1)_ -1
- p_second_stage(1)_INC_delta(2) c_u_p_second_stage(1)_INC_constraint3(1)_ 1
- p_second_stage(1)_INC_bin_y(2) c_u_p_second_stage(1)_INC_constraint3(2)_ -1
- p_second_stage(1)_INC_delta(3) c_u_p_second_stage(1)_INC_constraint3(2)_ 1
- p_second_stage(1)_INC_bin_y(3) c_u_p_second_stage(1)_INC_constraint3(3)_ -1
- p_second_stage(1)_INC_delta(4) c_u_p_second_stage(1)_INC_constraint3(3)_ 1
- p_second_stage(1)_INC_bin_y(1) c_u_p_second_stage(1)_INC_constraint4(1)_ 1
- p_second_stage(1)_INC_delta(1) c_u_p_second_stage(1)_INC_constraint4(1)_ -1
- p_second_stage(1)_INC_bin_y(2) c_u_p_second_stage(1)_INC_constraint4(2)_ 1
- p_second_stage(1)_INC_delta(2) c_u_p_second_stage(1)_INC_constraint4(2)_ -1
- p_second_stage(1)_INC_bin_y(3) c_u_p_second_stage(1)_INC_constraint4(3)_ 1
- p_second_stage(1)_INC_delta(3) c_u_p_second_stage(1)_INC_constraint4(3)_ -1
- fx o 1
- fz o -1
- r o 1
- ONE_VAR_CONSTANT o -2
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_symbolic_names_ignore_derived_baseline/scenario_files/piecewise.sto.struct.Scenario1 b/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_symbolic_names_ignore_derived_baseline/scenario_files/piecewise.sto.struct.Scenario1
deleted file mode 100644
index 92b231fef93..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_symbolic_names_ignore_derived_baseline/scenario_files/piecewise.sto.struct.Scenario1
+++ /dev/null
@@ -1,36 +0,0 @@
-RHS c_e_p_second_stage(1)_INC_constraint1_
-RHS c_e_p_second_stage(1)_INC_constraint2_
-RHS c_u_p_second_stage(1)_INC_constraint3(1)_
-RHS c_u_p_second_stage(1)_INC_constraint3(2)_
-RHS c_u_p_second_stage(1)_INC_constraint3(3)_
-RHS c_u_p_second_stage(1)_INC_constraint4(1)_
-RHS c_u_p_second_stage(1)_INC_constraint4(2)_
-RHS c_u_p_second_stage(1)_INC_constraint4(3)_
-RHS r_l_r_second_stage_
-RHS r_u_r_second_stage_
-r c_l_c_second_stage_
-p_second_stage(1)_INC_delta(1) c_e_p_second_stage(1)_INC_constraint1_
-p_second_stage(1)_INC_delta(2) c_e_p_second_stage(1)_INC_constraint1_
-p_second_stage(1)_INC_delta(3) c_e_p_second_stage(1)_INC_constraint1_
-p_second_stage(1)_INC_delta(4) c_e_p_second_stage(1)_INC_constraint1_
-z c_e_p_second_stage(1)_INC_constraint1_
-fz c_e_p_second_stage(1)_INC_constraint2_
-p_second_stage(1)_INC_delta(2) c_e_p_second_stage(1)_INC_constraint2_
-p_second_stage(1)_INC_delta(3) c_e_p_second_stage(1)_INC_constraint2_
-p_second_stage(1)_INC_delta(4) c_e_p_second_stage(1)_INC_constraint2_
-p_second_stage(1)_INC_bin_y(1) c_u_p_second_stage(1)_INC_constraint3(1)_
-p_second_stage(1)_INC_delta(2) c_u_p_second_stage(1)_INC_constraint3(1)_
-p_second_stage(1)_INC_bin_y(2) c_u_p_second_stage(1)_INC_constraint3(2)_
-p_second_stage(1)_INC_delta(3) c_u_p_second_stage(1)_INC_constraint3(2)_
-p_second_stage(1)_INC_bin_y(3) c_u_p_second_stage(1)_INC_constraint3(3)_
-p_second_stage(1)_INC_delta(4) c_u_p_second_stage(1)_INC_constraint3(3)_
-p_second_stage(1)_INC_bin_y(1) c_u_p_second_stage(1)_INC_constraint4(1)_
-p_second_stage(1)_INC_delta(1) c_u_p_second_stage(1)_INC_constraint4(1)_
-p_second_stage(1)_INC_bin_y(2) c_u_p_second_stage(1)_INC_constraint4(2)_
-p_second_stage(1)_INC_delta(2) c_u_p_second_stage(1)_INC_constraint4(2)_
-p_second_stage(1)_INC_bin_y(3) c_u_p_second_stage(1)_INC_constraint4(3)_
-p_second_stage(1)_INC_delta(3) c_u_p_second_stage(1)_INC_constraint4(3)_
-fx o
-fz o
-r o
-ONE_VAR_CONSTANT o
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_symbolic_names_ignore_derived_baseline/scenario_files/piecewise.sto.struct.Scenario2 b/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_symbolic_names_ignore_derived_baseline/scenario_files/piecewise.sto.struct.Scenario2
deleted file mode 100644
index 92b231fef93..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_symbolic_names_ignore_derived_baseline/scenario_files/piecewise.sto.struct.Scenario2
+++ /dev/null
@@ -1,36 +0,0 @@
-RHS c_e_p_second_stage(1)_INC_constraint1_
-RHS c_e_p_second_stage(1)_INC_constraint2_
-RHS c_u_p_second_stage(1)_INC_constraint3(1)_
-RHS c_u_p_second_stage(1)_INC_constraint3(2)_
-RHS c_u_p_second_stage(1)_INC_constraint3(3)_
-RHS c_u_p_second_stage(1)_INC_constraint4(1)_
-RHS c_u_p_second_stage(1)_INC_constraint4(2)_
-RHS c_u_p_second_stage(1)_INC_constraint4(3)_
-RHS r_l_r_second_stage_
-RHS r_u_r_second_stage_
-r c_l_c_second_stage_
-p_second_stage(1)_INC_delta(1) c_e_p_second_stage(1)_INC_constraint1_
-p_second_stage(1)_INC_delta(2) c_e_p_second_stage(1)_INC_constraint1_
-p_second_stage(1)_INC_delta(3) c_e_p_second_stage(1)_INC_constraint1_
-p_second_stage(1)_INC_delta(4) c_e_p_second_stage(1)_INC_constraint1_
-z c_e_p_second_stage(1)_INC_constraint1_
-fz c_e_p_second_stage(1)_INC_constraint2_
-p_second_stage(1)_INC_delta(2) c_e_p_second_stage(1)_INC_constraint2_
-p_second_stage(1)_INC_delta(3) c_e_p_second_stage(1)_INC_constraint2_
-p_second_stage(1)_INC_delta(4) c_e_p_second_stage(1)_INC_constraint2_
-p_second_stage(1)_INC_bin_y(1) c_u_p_second_stage(1)_INC_constraint3(1)_
-p_second_stage(1)_INC_delta(2) c_u_p_second_stage(1)_INC_constraint3(1)_
-p_second_stage(1)_INC_bin_y(2) c_u_p_second_stage(1)_INC_constraint3(2)_
-p_second_stage(1)_INC_delta(3) c_u_p_second_stage(1)_INC_constraint3(2)_
-p_second_stage(1)_INC_bin_y(3) c_u_p_second_stage(1)_INC_constraint3(3)_
-p_second_stage(1)_INC_delta(4) c_u_p_second_stage(1)_INC_constraint3(3)_
-p_second_stage(1)_INC_bin_y(1) c_u_p_second_stage(1)_INC_constraint4(1)_
-p_second_stage(1)_INC_delta(1) c_u_p_second_stage(1)_INC_constraint4(1)_
-p_second_stage(1)_INC_bin_y(2) c_u_p_second_stage(1)_INC_constraint4(2)_
-p_second_stage(1)_INC_delta(2) c_u_p_second_stage(1)_INC_constraint4(2)_
-p_second_stage(1)_INC_bin_y(3) c_u_p_second_stage(1)_INC_constraint4(3)_
-p_second_stage(1)_INC_delta(3) c_u_p_second_stage(1)_INC_constraint4(3)_
-fx o
-fz o
-r o
-ONE_VAR_CONSTANT o
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_symbolic_names_ignore_derived_baseline/scenario_files/piecewise.sto.struct.Scenario3 b/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_symbolic_names_ignore_derived_baseline/scenario_files/piecewise.sto.struct.Scenario3
deleted file mode 100644
index 92b231fef93..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_symbolic_names_ignore_derived_baseline/scenario_files/piecewise.sto.struct.Scenario3
+++ /dev/null
@@ -1,36 +0,0 @@
-RHS c_e_p_second_stage(1)_INC_constraint1_
-RHS c_e_p_second_stage(1)_INC_constraint2_
-RHS c_u_p_second_stage(1)_INC_constraint3(1)_
-RHS c_u_p_second_stage(1)_INC_constraint3(2)_
-RHS c_u_p_second_stage(1)_INC_constraint3(3)_
-RHS c_u_p_second_stage(1)_INC_constraint4(1)_
-RHS c_u_p_second_stage(1)_INC_constraint4(2)_
-RHS c_u_p_second_stage(1)_INC_constraint4(3)_
-RHS r_l_r_second_stage_
-RHS r_u_r_second_stage_
-r c_l_c_second_stage_
-p_second_stage(1)_INC_delta(1) c_e_p_second_stage(1)_INC_constraint1_
-p_second_stage(1)_INC_delta(2) c_e_p_second_stage(1)_INC_constraint1_
-p_second_stage(1)_INC_delta(3) c_e_p_second_stage(1)_INC_constraint1_
-p_second_stage(1)_INC_delta(4) c_e_p_second_stage(1)_INC_constraint1_
-z c_e_p_second_stage(1)_INC_constraint1_
-fz c_e_p_second_stage(1)_INC_constraint2_
-p_second_stage(1)_INC_delta(2) c_e_p_second_stage(1)_INC_constraint2_
-p_second_stage(1)_INC_delta(3) c_e_p_second_stage(1)_INC_constraint2_
-p_second_stage(1)_INC_delta(4) c_e_p_second_stage(1)_INC_constraint2_
-p_second_stage(1)_INC_bin_y(1) c_u_p_second_stage(1)_INC_constraint3(1)_
-p_second_stage(1)_INC_delta(2) c_u_p_second_stage(1)_INC_constraint3(1)_
-p_second_stage(1)_INC_bin_y(2) c_u_p_second_stage(1)_INC_constraint3(2)_
-p_second_stage(1)_INC_delta(3) c_u_p_second_stage(1)_INC_constraint3(2)_
-p_second_stage(1)_INC_bin_y(3) c_u_p_second_stage(1)_INC_constraint3(3)_
-p_second_stage(1)_INC_delta(4) c_u_p_second_stage(1)_INC_constraint3(3)_
-p_second_stage(1)_INC_bin_y(1) c_u_p_second_stage(1)_INC_constraint4(1)_
-p_second_stage(1)_INC_delta(1) c_u_p_second_stage(1)_INC_constraint4(1)_
-p_second_stage(1)_INC_bin_y(2) c_u_p_second_stage(1)_INC_constraint4(2)_
-p_second_stage(1)_INC_delta(2) c_u_p_second_stage(1)_INC_constraint4(2)_
-p_second_stage(1)_INC_bin_y(3) c_u_p_second_stage(1)_INC_constraint4(3)_
-p_second_stage(1)_INC_delta(3) c_u_p_second_stage(1)_INC_constraint4(3)_
-fx o
-fz o
-r o
-ONE_VAR_CONSTANT o
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_symbolic_names_ignore_derived_baseline/scenario_files/piecewise.tim.Scenario1 b/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_symbolic_names_ignore_derived_baseline/scenario_files/piecewise.tim.Scenario1
deleted file mode 100644
index ab31d2b527f..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_symbolic_names_ignore_derived_baseline/scenario_files/piecewise.tim.Scenario1
+++ /dev/null
@@ -1,5 +0,0 @@
-TIME piecewise
-PERIODS IMPLICIT
- fx o TIME1
- fz c_e_p_second_stage(1)_INC_constraint1_ TIME2
-ENDATA
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_symbolic_names_ignore_derived_baseline/scenario_files/piecewise.tim.Scenario2 b/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_symbolic_names_ignore_derived_baseline/scenario_files/piecewise.tim.Scenario2
deleted file mode 100644
index ab31d2b527f..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_symbolic_names_ignore_derived_baseline/scenario_files/piecewise.tim.Scenario2
+++ /dev/null
@@ -1,5 +0,0 @@
-TIME piecewise
-PERIODS IMPLICIT
- fx o TIME1
- fz c_e_p_second_stage(1)_INC_constraint1_ TIME2
-ENDATA
diff --git a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_symbolic_names_ignore_derived_baseline/scenario_files/piecewise.tim.Scenario3 b/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_symbolic_names_ignore_derived_baseline/scenario_files/piecewise.tim.Scenario3
deleted file mode 100644
index ab31d2b527f..00000000000
--- a/pyomo/pysp/tests/convert/smps_baselines/piecewise_MPS_symbolic_names_ignore_derived_baseline/scenario_files/piecewise.tim.Scenario3
+++ /dev/null
@@ -1,5 +0,0 @@
-TIME piecewise
-PERIODS IMPLICIT
- fx o TIME1
- fz c_e_p_second_stage(1)_INC_constraint1_ TIME2
-ENDATA
diff --git a/pyomo/pysp/tests/convert/smps_embedded_baselines/baa99_embedded_LP_symbolic_names_baseline/baa99.cor b/pyomo/pysp/tests/convert/smps_embedded_baselines/baa99_embedded_LP_symbolic_names_baseline/baa99.cor
deleted file mode 100644
index 60d24dab55a..00000000000
--- a/pyomo/pysp/tests/convert/smps_embedded_baselines/baa99_embedded_LP_symbolic_names_baseline/baa99.cor
+++ /dev/null
@@ -1,55 +0,0 @@
-\* Source Pyomo model name=unknown *\
-
-min
-obj:
-+4 x1
-+2 x2
-+10 u1
-+10 u2
-+0.20000000000000001 v1
-+0.20000000000000001 v2
--8 w11
--4 w12
--4 w22
-+0 ONE_VAR_CONSTANT
-
-s.t.
-
-c_e_d1_:
-+1 u1
-+1 w11
-= 0
-
-c_e_d2_:
-+1 u2
-+1 w12
-+1 w22
-= 0
-
-c_e_s1_:
--1 x1
-+1 v1
-+1 w11
-+1 w12
-= 0
-
-c_e_s2_:
--1 x2
-+1 v2
-+1 w22
-= 0
-
-c_e_ONE_VAR_CONSTANT:
-ONE_VAR_CONSTANT = 1.0
-
-bounds
- 0 <= x1 <= 217
- 0 <= x2 <= 217
- 0 <= v1 <= +inf
- 0 <= v2 <= +inf
- 0 <= u1 <= +inf
- 0 <= u2 <= +inf
- 0 <= w11 <= +inf
- 0 <= w12 <= +inf
- 0 <= w22 <= +inf
-end
diff --git a/pyomo/pysp/tests/convert/smps_embedded_baselines/baa99_embedded_LP_symbolic_names_baseline/baa99.cor.symbols b/pyomo/pysp/tests/convert/smps_embedded_baselines/baa99_embedded_LP_symbolic_names_baseline/baa99.cor.symbols
deleted file mode 100644
index 366853d8af6..00000000000
--- a/pyomo/pysp/tests/convert/smps_embedded_baselines/baa99_embedded_LP_symbolic_names_baseline/baa99.cor.symbols
+++ /dev/null
@@ -1,2 +0,0 @@
-x1 x1
-x2 x2
diff --git a/pyomo/pysp/tests/convert/smps_embedded_baselines/baa99_embedded_LP_symbolic_names_baseline/baa99.sto b/pyomo/pysp/tests/convert/smps_embedded_baselines/baa99_embedded_LP_symbolic_names_baseline/baa99.sto
deleted file mode 100644
index e0abad2211e..00000000000
--- a/pyomo/pysp/tests/convert/smps_embedded_baselines/baa99_embedded_LP_symbolic_names_baseline/baa99.sto
+++ /dev/null
@@ -1,53 +0,0 @@
-STOCH baa99
-INDEP DISCRETE
- RHS c_e_d1_ 17.757318649999998 0.040000000000000001
- RHS c_e_d1_ 32.96224832 0.040000000000000001
- RHS c_e_d1_ 43.68044355 0.040000000000000001
- RHS c_e_d1_ 52.291737339999997 0.040000000000000001
- RHS c_e_d1_ 59.678937650000002 0.040000000000000001
- RHS c_e_d1_ 66.275512489999997 0.040000000000000001
- RHS c_e_d1_ 72.330764020000004 0.040000000000000001
- RHS c_e_d1_ 78.004341719999999 0.040000000000000001
- RHS c_e_d1_ 83.407332679999996 0.040000000000000001
- RHS c_e_d1_ 88.622751170000001 0.040000000000000001
- RHS c_e_d1_ 93.716932659999998 0.040000000000000001
- RHS c_e_d1_ 98.746554590000002 0.040000000000000001
- RHS c_e_d1_ 103.76349310000001 0.040000000000000001
- RHS c_e_d1_ 108.8187082 0.040000000000000001
- RHS c_e_d1_ 113.96595170000001 0.040000000000000001
- RHS c_e_d1_ 119.2660233 0.040000000000000001
- RHS c_e_d1_ 124.79251739999999 0.040000000000000001
- RHS c_e_d1_ 130.64064959999999 0.040000000000000001
- RHS c_e_d1_ 136.9423425 0.040000000000000001
- RHS c_e_d1_ 143.89481480000001 0.040000000000000001
- RHS c_e_d1_ 151.82166950000001 0.040000000000000001
- RHS c_e_d1_ 161.32640599999999 0.040000000000000001
- RHS c_e_d1_ 173.78955139999999 0.040000000000000001
- RHS c_e_d1_ 194.03968040000001 0.040000000000000001
- RHS c_e_d1_ 216.3173937 0.040000000000000001
- RHS c_e_d2_ 5.9603195920000003 0.040000000000000001
- RHS c_e_d2_ 26.210448589999999 0.040000000000000001
- RHS c_e_d2_ 38.673594000000001 0.040000000000000001
- RHS c_e_d2_ 48.178330529999997 0.040000000000000001
- RHS c_e_d2_ 56.105185249999998 0.040000000000000001
- RHS c_e_d2_ 63.057657540000001 0.040000000000000001
- RHS c_e_d2_ 69.359350449999994 0.040000000000000001
- RHS c_e_d2_ 75.207482630000001 0.040000000000000001
- RHS c_e_d2_ 80.733976679999998 0.040000000000000001
- RHS c_e_d2_ 86.034048279999993 0.040000000000000001
- RHS c_e_d2_ 91.181291759999993 0.040000000000000001
- RHS c_e_d2_ 96.236506899999995 0.040000000000000001
- RHS c_e_d2_ 101.2534454 0.040000000000000001
- RHS c_e_d2_ 106.2830673 0.040000000000000001
- RHS c_e_d2_ 111.3772488 0.040000000000000001
- RHS c_e_d2_ 116.5926673 0.040000000000000001
- RHS c_e_d2_ 121.9956583 0.040000000000000001
- RHS c_e_d2_ 127.669236 0.040000000000000001
- RHS c_e_d2_ 133.72448750000001 0.040000000000000001
- RHS c_e_d2_ 140.32106239999999 0.040000000000000001
- RHS c_e_d2_ 147.70826270000001 0.040000000000000001
- RHS c_e_d2_ 156.3195565 0.040000000000000001
- RHS c_e_d2_ 167.0377517 0.040000000000000001
- RHS c_e_d2_ 182.24268129999999 0.040000000000000001
- RHS c_e_d2_ 216.3173937 0.040000000000000001
-ENDATA
diff --git a/pyomo/pysp/tests/convert/smps_embedded_baselines/baa99_embedded_LP_symbolic_names_baseline/baa99.tim b/pyomo/pysp/tests/convert/smps_embedded_baselines/baa99_embedded_LP_symbolic_names_baseline/baa99.tim
deleted file mode 100644
index e3b5a61ae94..00000000000
--- a/pyomo/pysp/tests/convert/smps_embedded_baselines/baa99_embedded_LP_symbolic_names_baseline/baa99.tim
+++ /dev/null
@@ -1,23 +0,0 @@
-TIME baa99
-PERIODS EXPLICIT
- TIME1
- TIME2
-ROWS
- obj TIME1
- c_e_d1_ TIME2
- c_e_d2_ TIME2
- c_e_s1_ TIME2
- c_e_s2_ TIME2
- c_e_ONE_VAR_CONSTANT TIME2
-COLS
- x1 TIME1
- x2 TIME1
- u1 TIME2
- u2 TIME2
- v1 TIME2
- v2 TIME2
- w11 TIME2
- w12 TIME2
- w22 TIME2
- ONE_VAR_CONSTANT TIME2
-ENDATA
diff --git a/pyomo/pysp/tests/convert/smps_embedded_baselines/baa99_embedded_MPS_symbolic_names_baseline/baa99.cor b/pyomo/pysp/tests/convert/smps_embedded_baselines/baa99_embedded_MPS_symbolic_names_baseline/baa99.cor
deleted file mode 100644
index 69596a03ed6..00000000000
--- a/pyomo/pysp/tests/convert/smps_embedded_baselines/baa99_embedded_MPS_symbolic_names_baseline/baa99.cor
+++ /dev/null
@@ -1,56 +0,0 @@
-* Source: Pyomo MPS Writer
-* Format: Free MPS
-*
-NAME unknown
-OBJSENSE
- MIN
-ROWS
- N obj
- E c_e_d1_
- E c_e_d2_
- E c_e_s1_
- E c_e_s2_
- E c_e_ONE_VAR_CONSTANT
-COLUMNS
- x1 obj 4
- x1 c_e_s1_ -1
- x2 obj 2
- x2 c_e_s2_ -1
- u1 obj 10
- u1 c_e_d1_ 1
- u2 obj 10
- u2 c_e_d2_ 1
- v1 obj 0.20000000000000001
- v1 c_e_s1_ 1
- v2 obj 0.20000000000000001
- v2 c_e_s2_ 1
- w11 obj -8
- w11 c_e_d1_ 1
- w11 c_e_s1_ 1
- w12 obj -4
- w12 c_e_d2_ 1
- w12 c_e_s1_ 1
- w22 obj -4
- w22 c_e_d2_ 1
- w22 c_e_s2_ 1
- ONE_VAR_CONSTANT obj 0
- ONE_VAR_CONSTANT c_e_ONE_VAR_CONSTANT 1
-RHS
- RHS c_e_d1_ 0
- RHS c_e_d2_ 0
- RHS c_e_s1_ 0
- RHS c_e_s2_ 0
- RHS c_e_ONE_VAR_CONSTANT 1
-BOUNDS
- LO BOUND x1 0
- UP BOUND x1 217
- LO BOUND x2 0
- UP BOUND x2 217
- LO BOUND u1 0
- LO BOUND u2 0
- LO BOUND v1 0
- LO BOUND v2 0
- LO BOUND w11 0
- LO BOUND w12 0
- LO BOUND w22 0
-ENDATA
diff --git a/pyomo/pysp/tests/convert/smps_embedded_baselines/baa99_embedded_MPS_symbolic_names_baseline/baa99.cor.symbols b/pyomo/pysp/tests/convert/smps_embedded_baselines/baa99_embedded_MPS_symbolic_names_baseline/baa99.cor.symbols
deleted file mode 100644
index 366853d8af6..00000000000
--- a/pyomo/pysp/tests/convert/smps_embedded_baselines/baa99_embedded_MPS_symbolic_names_baseline/baa99.cor.symbols
+++ /dev/null
@@ -1,2 +0,0 @@
-x1 x1
-x2 x2
diff --git a/pyomo/pysp/tests/convert/smps_embedded_baselines/baa99_embedded_MPS_symbolic_names_baseline/baa99.sto b/pyomo/pysp/tests/convert/smps_embedded_baselines/baa99_embedded_MPS_symbolic_names_baseline/baa99.sto
deleted file mode 100644
index e0abad2211e..00000000000
--- a/pyomo/pysp/tests/convert/smps_embedded_baselines/baa99_embedded_MPS_symbolic_names_baseline/baa99.sto
+++ /dev/null
@@ -1,53 +0,0 @@
-STOCH baa99
-INDEP DISCRETE
- RHS c_e_d1_ 17.757318649999998 0.040000000000000001
- RHS c_e_d1_ 32.96224832 0.040000000000000001
- RHS c_e_d1_ 43.68044355 0.040000000000000001
- RHS c_e_d1_ 52.291737339999997 0.040000000000000001
- RHS c_e_d1_ 59.678937650000002 0.040000000000000001
- RHS c_e_d1_ 66.275512489999997 0.040000000000000001
- RHS c_e_d1_ 72.330764020000004 0.040000000000000001
- RHS c_e_d1_ 78.004341719999999 0.040000000000000001
- RHS c_e_d1_ 83.407332679999996 0.040000000000000001
- RHS c_e_d1_ 88.622751170000001 0.040000000000000001
- RHS c_e_d1_ 93.716932659999998 0.040000000000000001
- RHS c_e_d1_ 98.746554590000002 0.040000000000000001
- RHS c_e_d1_ 103.76349310000001 0.040000000000000001
- RHS c_e_d1_ 108.8187082 0.040000000000000001
- RHS c_e_d1_ 113.96595170000001 0.040000000000000001
- RHS c_e_d1_ 119.2660233 0.040000000000000001
- RHS c_e_d1_ 124.79251739999999 0.040000000000000001
- RHS c_e_d1_ 130.64064959999999 0.040000000000000001
- RHS c_e_d1_ 136.9423425 0.040000000000000001
- RHS c_e_d1_ 143.89481480000001 0.040000000000000001
- RHS c_e_d1_ 151.82166950000001 0.040000000000000001
- RHS c_e_d1_ 161.32640599999999 0.040000000000000001
- RHS c_e_d1_ 173.78955139999999 0.040000000000000001
- RHS c_e_d1_ 194.03968040000001 0.040000000000000001
- RHS c_e_d1_ 216.3173937 0.040000000000000001
- RHS c_e_d2_ 5.9603195920000003 0.040000000000000001
- RHS c_e_d2_ 26.210448589999999 0.040000000000000001
- RHS c_e_d2_ 38.673594000000001 0.040000000000000001
- RHS c_e_d2_ 48.178330529999997 0.040000000000000001
- RHS c_e_d2_ 56.105185249999998 0.040000000000000001
- RHS c_e_d2_ 63.057657540000001 0.040000000000000001
- RHS c_e_d2_ 69.359350449999994 0.040000000000000001
- RHS c_e_d2_ 75.207482630000001 0.040000000000000001
- RHS c_e_d2_ 80.733976679999998 0.040000000000000001
- RHS c_e_d2_ 86.034048279999993 0.040000000000000001
- RHS c_e_d2_ 91.181291759999993 0.040000000000000001
- RHS c_e_d2_ 96.236506899999995 0.040000000000000001
- RHS c_e_d2_ 101.2534454 0.040000000000000001
- RHS c_e_d2_ 106.2830673 0.040000000000000001
- RHS c_e_d2_ 111.3772488 0.040000000000000001
- RHS c_e_d2_ 116.5926673 0.040000000000000001
- RHS c_e_d2_ 121.9956583 0.040000000000000001
- RHS c_e_d2_ 127.669236 0.040000000000000001
- RHS c_e_d2_ 133.72448750000001 0.040000000000000001
- RHS c_e_d2_ 140.32106239999999 0.040000000000000001
- RHS c_e_d2_ 147.70826270000001 0.040000000000000001
- RHS c_e_d2_ 156.3195565 0.040000000000000001
- RHS c_e_d2_ 167.0377517 0.040000000000000001
- RHS c_e_d2_ 182.24268129999999 0.040000000000000001
- RHS c_e_d2_ 216.3173937 0.040000000000000001
-ENDATA
diff --git a/pyomo/pysp/tests/convert/smps_embedded_baselines/baa99_embedded_MPS_symbolic_names_baseline/baa99.tim b/pyomo/pysp/tests/convert/smps_embedded_baselines/baa99_embedded_MPS_symbolic_names_baseline/baa99.tim
deleted file mode 100644
index abc8e833b23..00000000000
--- a/pyomo/pysp/tests/convert/smps_embedded_baselines/baa99_embedded_MPS_symbolic_names_baseline/baa99.tim
+++ /dev/null
@@ -1,5 +0,0 @@
-TIME baa99
-PERIODS IMPLICIT
- x1 obj TIME1
- u1 c_e_d1_ TIME2
-ENDATA
diff --git a/pyomo/pysp/tests/convert/smps_embedded_baselines/piecewise_embedded_LP_symbolic_names_baseline/piecewise.cor b/pyomo/pysp/tests/convert/smps_embedded_baselines/piecewise_embedded_LP_symbolic_names_baseline/piecewise.cor
deleted file mode 100644
index b1de50de5e2..00000000000
--- a/pyomo/pysp/tests/convert/smps_embedded_baselines/piecewise_embedded_LP_symbolic_names_baseline/piecewise.cor
+++ /dev/null
@@ -1,148 +0,0 @@
-\* Source Pyomo model name=unknown *\
-
-min
-o:
-+1 fx
--1 fz
-+1 r
-+0 ONE_VAR_CONSTANT
-
-s.t.
-
-c_l_c_first_stage_:
-+1 x
->= 0
-
-c_u_cL_second_stage_:
--1 r
-<= 0
-
-c_u_cU_second_stage_:
-+1 r
-<= 0
-
-c_l_c_second_stage_:
-+1 x
-+0 r
->= -100
-
-c_e_p_first_stage_INC_constraint1_:
-+1 x
--2 p_first_stage_INC_delta(1)
--3 p_first_stage_INC_delta(2)
--2 p_first_stage_INC_delta(3)
--3 p_first_stage_INC_delta(4)
-= 0
-
-c_e_p_first_stage_INC_constraint2_:
-+1 fx
-+1 p_first_stage_INC_delta(2)
--1 p_first_stage_INC_delta(3)
-= 10
-
-c_u_p_first_stage_INC_constraint3(1)_:
--1 p_first_stage_INC_bin_y(1)
-+1 p_first_stage_INC_delta(2)
-<= 0
-
-c_u_p_first_stage_INC_constraint3(2)_:
--1 p_first_stage_INC_bin_y(2)
-+1 p_first_stage_INC_delta(3)
-<= 0
-
-c_u_p_first_stage_INC_constraint3(3)_:
--1 p_first_stage_INC_bin_y(3)
-+1 p_first_stage_INC_delta(4)
-<= 0
-
-c_u_p_first_stage_INC_constraint4(1)_:
-+1 p_first_stage_INC_bin_y(1)
--1 p_first_stage_INC_delta(1)
-<= 0
-
-c_u_p_first_stage_INC_constraint4(2)_:
-+1 p_first_stage_INC_bin_y(2)
--1 p_first_stage_INC_delta(2)
-<= 0
-
-c_u_p_first_stage_INC_constraint4(3)_:
-+1 p_first_stage_INC_bin_y(3)
--1 p_first_stage_INC_delta(3)
-<= 0
-
-c_e_p_second_stage(1)_INC_constraint1_:
--5 p_second_stage(1)_INC_delta(1)
--5 p_second_stage(1)_INC_delta(2)
--5 p_second_stage(1)_INC_delta(3)
--5 p_second_stage(1)_INC_delta(4)
-+1 z
-= -10
-
-c_e_p_second_stage(1)_INC_constraint2_:
-+1 fz
-+1 p_second_stage(1)_INC_delta(2)
--1 p_second_stage(1)_INC_delta(3)
--1 p_second_stage(1)_INC_delta(4)
-= 0
-
-c_u_p_second_stage(1)_INC_constraint3(1)_:
--1 p_second_stage(1)_INC_bin_y(1)
-+1 p_second_stage(1)_INC_delta(2)
-<= 0
-
-c_u_p_second_stage(1)_INC_constraint3(2)_:
--1 p_second_stage(1)_INC_bin_y(2)
-+1 p_second_stage(1)_INC_delta(3)
-<= 0
-
-c_u_p_second_stage(1)_INC_constraint3(3)_:
--1 p_second_stage(1)_INC_bin_y(3)
-+1 p_second_stage(1)_INC_delta(4)
-<= 0
-
-c_u_p_second_stage(1)_INC_constraint4(1)_:
-+1 p_second_stage(1)_INC_bin_y(1)
--1 p_second_stage(1)_INC_delta(1)
-<= 0
-
-c_u_p_second_stage(1)_INC_constraint4(2)_:
-+1 p_second_stage(1)_INC_bin_y(2)
--1 p_second_stage(1)_INC_delta(2)
-<= 0
-
-c_u_p_second_stage(1)_INC_constraint4(3)_:
-+1 p_second_stage(1)_INC_bin_y(3)
--1 p_second_stage(1)_INC_delta(3)
-<= 0
-
-c_e_ONE_VAR_CONSTANT:
-ONE_VAR_CONSTANT = 1.0
-
-bounds
- 0 <= x <= 10
- -inf <= fx <= +inf
- -10 <= z <= 10
- -inf <= fz <= +inf
- -inf <= r <= +inf
- -inf <= p_first_stage_INC_delta(1) <= 1
- -inf <= p_first_stage_INC_delta(2) <= +inf
- -inf <= p_first_stage_INC_delta(3) <= +inf
- 0 <= p_first_stage_INC_delta(4) <= +inf
- 0 <= p_first_stage_INC_bin_y(1) <= 1
- 0 <= p_first_stage_INC_bin_y(2) <= 1
- 0 <= p_first_stage_INC_bin_y(3) <= 1
- -inf <= p_second_stage(1)_INC_delta(1) <= 1
- -inf <= p_second_stage(1)_INC_delta(2) <= +inf
- -inf <= p_second_stage(1)_INC_delta(3) <= +inf
- 0 <= p_second_stage(1)_INC_delta(4) <= +inf
- 0 <= p_second_stage(1)_INC_bin_y(1) <= 1
- 0 <= p_second_stage(1)_INC_bin_y(2) <= 1
- 0 <= p_second_stage(1)_INC_bin_y(3) <= 1
-binary
- p_first_stage_INC_bin_y(1)
- p_first_stage_INC_bin_y(2)
- p_first_stage_INC_bin_y(3)
- p_second_stage(1)_INC_bin_y(1)
- p_second_stage(1)_INC_bin_y(2)
- p_second_stage(1)_INC_bin_y(3)
-end
diff --git a/pyomo/pysp/tests/convert/smps_embedded_baselines/piecewise_embedded_LP_symbolic_names_baseline/piecewise.cor.symbols b/pyomo/pysp/tests/convert/smps_embedded_baselines/piecewise_embedded_LP_symbolic_names_baseline/piecewise.cor.symbols
deleted file mode 100644
index 3ea722dd807..00000000000
--- a/pyomo/pysp/tests/convert/smps_embedded_baselines/piecewise_embedded_LP_symbolic_names_baseline/piecewise.cor.symbols
+++ /dev/null
@@ -1,9 +0,0 @@
-fx fx
-p_first_stage_INC_bin_y(1) p_first_stage.INC_bin_y:#1
-p_first_stage_INC_bin_y(2) p_first_stage.INC_bin_y:#2
-p_first_stage_INC_bin_y(3) p_first_stage.INC_bin_y:#3
-p_first_stage_INC_delta(1) p_first_stage.INC_delta:#1
-p_first_stage_INC_delta(2) p_first_stage.INC_delta:#2
-p_first_stage_INC_delta(3) p_first_stage.INC_delta:#3
-p_first_stage_INC_delta(4) p_first_stage.INC_delta:#4
-x x
diff --git a/pyomo/pysp/tests/convert/smps_embedded_baselines/piecewise_embedded_LP_symbolic_names_baseline/piecewise.sto b/pyomo/pysp/tests/convert/smps_embedded_baselines/piecewise_embedded_LP_symbolic_names_baseline/piecewise.sto
deleted file mode 100644
index 04e151c5f43..00000000000
--- a/pyomo/pysp/tests/convert/smps_embedded_baselines/piecewise_embedded_LP_symbolic_names_baseline/piecewise.sto
+++ /dev/null
@@ -1,12 +0,0 @@
-STOCH piecewise
-INDEP DISCRETE
- ONE_VAR_CONSTANT o 0 0.33333333333333331
- ONE_VAR_CONSTANT o 1 0.33333333333333331
- ONE_VAR_CONSTANT o 2 0.33333333333333331
- RHS c_u_cL_second_stage_ 0 0.33333333333333331
- RHS c_u_cL_second_stage_ 1 0.33333333333333331
- RHS c_u_cL_second_stage_ 2 0.33333333333333331
- r c_l_c_second_stage_ 0 0.33333333333333331
- r c_l_c_second_stage_ 1 0.33333333333333331
- r c_l_c_second_stage_ 2 0.33333333333333331
-ENDATA
diff --git a/pyomo/pysp/tests/convert/smps_embedded_baselines/piecewise_embedded_LP_symbolic_names_baseline/piecewise.tim b/pyomo/pysp/tests/convert/smps_embedded_baselines/piecewise_embedded_LP_symbolic_names_baseline/piecewise.tim
deleted file mode 100644
index c9552993265..00000000000
--- a/pyomo/pysp/tests/convert/smps_embedded_baselines/piecewise_embedded_LP_symbolic_names_baseline/piecewise.tim
+++ /dev/null
@@ -1,49 +0,0 @@
-TIME piecewise
-PERIODS EXPLICIT
- TIME1
- TIME2
-ROWS
- o TIME1
- c_l_c_first_stage_ TIME1
- c_u_cL_second_stage_ TIME2
- c_u_cU_second_stage_ TIME2
- c_l_c_second_stage_ TIME2
- c_e_p_first_stage_INC_constraint1_ TIME2
- c_e_p_first_stage_INC_constraint2_ TIME2
- c_u_p_first_stage_INC_constraint3(1)_ TIME2
- c_u_p_first_stage_INC_constraint3(2)_ TIME2
- c_u_p_first_stage_INC_constraint3(3)_ TIME2
- c_u_p_first_stage_INC_constraint4(1)_ TIME2
- c_u_p_first_stage_INC_constraint4(2)_ TIME2
- c_u_p_first_stage_INC_constraint4(3)_ TIME2
- c_e_p_second_stage(1)_INC_constraint1_ TIME2
- c_e_p_second_stage(1)_INC_constraint2_ TIME2
- c_u_p_second_stage(1)_INC_constraint3(1)_ TIME2
- c_u_p_second_stage(1)_INC_constraint3(2)_ TIME2
- c_u_p_second_stage(1)_INC_constraint3(3)_ TIME2
- c_u_p_second_stage(1)_INC_constraint4(1)_ TIME2
- c_u_p_second_stage(1)_INC_constraint4(2)_ TIME2
- c_u_p_second_stage(1)_INC_constraint4(3)_ TIME2
- c_e_ONE_VAR_CONSTANT TIME2
-COLS
- x TIME1
- fx TIME2
- fz TIME2
- p_first_stage_INC_bin_y(1) TIME2
- p_first_stage_INC_bin_y(2) TIME2
- p_first_stage_INC_bin_y(3) TIME2
- p_first_stage_INC_delta(1) TIME2
- p_first_stage_INC_delta(2) TIME2
- p_first_stage_INC_delta(3) TIME2
- p_first_stage_INC_delta(4) TIME2
- p_second_stage(1)_INC_bin_y(1) TIME2
- p_second_stage(1)_INC_bin_y(2) TIME2
- p_second_stage(1)_INC_bin_y(3) TIME2
- p_second_stage(1)_INC_delta(1) TIME2
- p_second_stage(1)_INC_delta(2) TIME2
- p_second_stage(1)_INC_delta(3) TIME2
- p_second_stage(1)_INC_delta(4) TIME2
- r TIME2
- z TIME2
- ONE_VAR_CONSTANT TIME2
-ENDATA
diff --git a/pyomo/pysp/tests/convert/smps_embedded_baselines/piecewise_embedded_MPS_symbolic_names_baseline/piecewise.cor b/pyomo/pysp/tests/convert/smps_embedded_baselines/piecewise_embedded_MPS_symbolic_names_baseline/piecewise.cor
deleted file mode 100644
index c22a63a2808..00000000000
--- a/pyomo/pysp/tests/convert/smps_embedded_baselines/piecewise_embedded_MPS_symbolic_names_baseline/piecewise.cor
+++ /dev/null
@@ -1,128 +0,0 @@
-* Source: Pyomo MPS Writer
-* Format: Free MPS
-*
-NAME unknown
-OBJSENSE
- MIN
-ROWS
- N o
- G c_l_c_first_stage_
- L c_u_cL_second_stage_
- L c_u_cU_second_stage_
- G c_l_c_second_stage_
- E c_e_p_first_stage_INC_constraint1_
- E c_e_p_first_stage_INC_constraint2_
- L c_u_p_first_stage_INC_constraint3(1)_
- L c_u_p_first_stage_INC_constraint3(2)_
- L c_u_p_first_stage_INC_constraint3(3)_
- L c_u_p_first_stage_INC_constraint4(1)_
- L c_u_p_first_stage_INC_constraint4(2)_
- L c_u_p_first_stage_INC_constraint4(3)_
- E c_e_p_second_stage(1)_INC_constraint1_
- E c_e_p_second_stage(1)_INC_constraint2_
- L c_u_p_second_stage(1)_INC_constraint3(1)_
- L c_u_p_second_stage(1)_INC_constraint3(2)_
- L c_u_p_second_stage(1)_INC_constraint3(3)_
- L c_u_p_second_stage(1)_INC_constraint4(1)_
- L c_u_p_second_stage(1)_INC_constraint4(2)_
- L c_u_p_second_stage(1)_INC_constraint4(3)_
- E c_e_ONE_VAR_CONSTANT
-COLUMNS
- x c_l_c_first_stage_ 1
- x c_l_c_second_stage_ 1
- x c_e_p_first_stage_INC_constraint1_ 1
- fx o 1
- fx c_e_p_first_stage_INC_constraint2_ 1
- fz o -1
- fz c_e_p_second_stage(1)_INC_constraint2_ 1
- p_first_stage_INC_bin_y(1) c_u_p_first_stage_INC_constraint3(1)_ -1
- p_first_stage_INC_bin_y(1) c_u_p_first_stage_INC_constraint4(1)_ 1
- p_first_stage_INC_bin_y(2) c_u_p_first_stage_INC_constraint3(2)_ -1
- p_first_stage_INC_bin_y(2) c_u_p_first_stage_INC_constraint4(2)_ 1
- p_first_stage_INC_bin_y(3) c_u_p_first_stage_INC_constraint3(3)_ -1
- p_first_stage_INC_bin_y(3) c_u_p_first_stage_INC_constraint4(3)_ 1
- p_first_stage_INC_delta(1) c_e_p_first_stage_INC_constraint1_ -2
- p_first_stage_INC_delta(1) c_u_p_first_stage_INC_constraint4(1)_ -1
- p_first_stage_INC_delta(2) c_e_p_first_stage_INC_constraint1_ -3
- p_first_stage_INC_delta(2) c_e_p_first_stage_INC_constraint2_ 1
- p_first_stage_INC_delta(2) c_u_p_first_stage_INC_constraint3(1)_ 1
- p_first_stage_INC_delta(2) c_u_p_first_stage_INC_constraint4(2)_ -1
- p_first_stage_INC_delta(3) c_e_p_first_stage_INC_constraint1_ -2
- p_first_stage_INC_delta(3) c_e_p_first_stage_INC_constraint2_ -1
- p_first_stage_INC_delta(3) c_u_p_first_stage_INC_constraint3(2)_ 1
- p_first_stage_INC_delta(3) c_u_p_first_stage_INC_constraint4(3)_ -1
- p_first_stage_INC_delta(4) c_e_p_first_stage_INC_constraint1_ -3
- p_first_stage_INC_delta(4) c_u_p_first_stage_INC_constraint3(3)_ 1
- p_second_stage(1)_INC_bin_y(1) c_u_p_second_stage(1)_INC_constraint3(1)_ -1
- p_second_stage(1)_INC_bin_y(1) c_u_p_second_stage(1)_INC_constraint4(1)_ 1
- p_second_stage(1)_INC_bin_y(2) c_u_p_second_stage(1)_INC_constraint3(2)_ -1
- p_second_stage(1)_INC_bin_y(2) c_u_p_second_stage(1)_INC_constraint4(2)_ 1
- p_second_stage(1)_INC_bin_y(3) c_u_p_second_stage(1)_INC_constraint3(3)_ -1
- p_second_stage(1)_INC_bin_y(3) c_u_p_second_stage(1)_INC_constraint4(3)_ 1
- p_second_stage(1)_INC_delta(1) c_e_p_second_stage(1)_INC_constraint1_ -5
- p_second_stage(1)_INC_delta(1) c_u_p_second_stage(1)_INC_constraint4(1)_ -1
- p_second_stage(1)_INC_delta(2) c_e_p_second_stage(1)_INC_constraint1_ -5
- p_second_stage(1)_INC_delta(2) c_e_p_second_stage(1)_INC_constraint2_ 1
- p_second_stage(1)_INC_delta(2) c_u_p_second_stage(1)_INC_constraint3(1)_ 1
- p_second_stage(1)_INC_delta(2) c_u_p_second_stage(1)_INC_constraint4(2)_ -1
- p_second_stage(1)_INC_delta(3) c_e_p_second_stage(1)_INC_constraint1_ -5
- p_second_stage(1)_INC_delta(3) c_e_p_second_stage(1)_INC_constraint2_ -1
- p_second_stage(1)_INC_delta(3) c_u_p_second_stage(1)_INC_constraint3(2)_ 1
- p_second_stage(1)_INC_delta(3) c_u_p_second_stage(1)_INC_constraint4(3)_ -1
- p_second_stage(1)_INC_delta(4) c_e_p_second_stage(1)_INC_constraint1_ -5
- p_second_stage(1)_INC_delta(4) c_e_p_second_stage(1)_INC_constraint2_ -1
- p_second_stage(1)_INC_delta(4) c_u_p_second_stage(1)_INC_constraint3(3)_ 1
- r o 1
- r c_u_cL_second_stage_ -1
- r c_u_cU_second_stage_ 1
- r c_l_c_second_stage_ 0
- z c_e_p_second_stage(1)_INC_constraint1_ 1
- ONE_VAR_CONSTANT o 0
- ONE_VAR_CONSTANT c_e_ONE_VAR_CONSTANT 1
-RHS
- RHS c_l_c_first_stage_ 0
- RHS c_u_cL_second_stage_ 0
- RHS c_u_cU_second_stage_ 0
- RHS c_l_c_second_stage_ -100
- RHS c_e_p_first_stage_INC_constraint1_ 0
- RHS c_e_p_first_stage_INC_constraint2_ 10
- RHS c_u_p_first_stage_INC_constraint3(1)_ 0
- RHS c_u_p_first_stage_INC_constraint3(2)_ 0
- RHS c_u_p_first_stage_INC_constraint3(3)_ 0
- RHS c_u_p_first_stage_INC_constraint4(1)_ 0
- RHS c_u_p_first_stage_INC_constraint4(2)_ 0
- RHS c_u_p_first_stage_INC_constraint4(3)_ 0
- RHS c_e_p_second_stage(1)_INC_constraint1_ -10
- RHS c_e_p_second_stage(1)_INC_constraint2_ 0
- RHS c_u_p_second_stage(1)_INC_constraint3(1)_ 0
- RHS c_u_p_second_stage(1)_INC_constraint3(2)_ 0
- RHS c_u_p_second_stage(1)_INC_constraint3(3)_ 0
- RHS c_u_p_second_stage(1)_INC_constraint4(1)_ 0
- RHS c_u_p_second_stage(1)_INC_constraint4(2)_ 0
- RHS c_u_p_second_stage(1)_INC_constraint4(3)_ 0
- RHS c_e_ONE_VAR_CONSTANT 1
-BOUNDS
- LO BOUND x 0
- UP BOUND x 10
- FR BOUND fx
- FR BOUND fz
- BV BOUND p_first_stage_INC_bin_y(1)
- BV BOUND p_first_stage_INC_bin_y(2)
- BV BOUND p_first_stage_INC_bin_y(3)
- MI BOUND p_first_stage_INC_delta(1)
- UP BOUND p_first_stage_INC_delta(1) 1
- FR BOUND p_first_stage_INC_delta(2)
- FR BOUND p_first_stage_INC_delta(3)
- LO BOUND p_first_stage_INC_delta(4) 0
- BV BOUND p_second_stage(1)_INC_bin_y(1)
- BV BOUND p_second_stage(1)_INC_bin_y(2)
- BV BOUND p_second_stage(1)_INC_bin_y(3)
- MI BOUND p_second_stage(1)_INC_delta(1)
- UP BOUND p_second_stage(1)_INC_delta(1) 1
- FR BOUND p_second_stage(1)_INC_delta(2)
- FR BOUND p_second_stage(1)_INC_delta(3)
- LO BOUND p_second_stage(1)_INC_delta(4) 0
- FR BOUND r
- LO BOUND z -10
- UP BOUND z 10
-ENDATA
diff --git a/pyomo/pysp/tests/convert/smps_embedded_baselines/piecewise_embedded_MPS_symbolic_names_baseline/piecewise.cor.symbols b/pyomo/pysp/tests/convert/smps_embedded_baselines/piecewise_embedded_MPS_symbolic_names_baseline/piecewise.cor.symbols
deleted file mode 100644
index 3ea722dd807..00000000000
--- a/pyomo/pysp/tests/convert/smps_embedded_baselines/piecewise_embedded_MPS_symbolic_names_baseline/piecewise.cor.symbols
+++ /dev/null
@@ -1,9 +0,0 @@
-fx fx
-p_first_stage_INC_bin_y(1) p_first_stage.INC_bin_y:#1
-p_first_stage_INC_bin_y(2) p_first_stage.INC_bin_y:#2
-p_first_stage_INC_bin_y(3) p_first_stage.INC_bin_y:#3
-p_first_stage_INC_delta(1) p_first_stage.INC_delta:#1
-p_first_stage_INC_delta(2) p_first_stage.INC_delta:#2
-p_first_stage_INC_delta(3) p_first_stage.INC_delta:#3
-p_first_stage_INC_delta(4) p_first_stage.INC_delta:#4
-x x
diff --git a/pyomo/pysp/tests/convert/smps_embedded_baselines/piecewise_embedded_MPS_symbolic_names_baseline/piecewise.sto b/pyomo/pysp/tests/convert/smps_embedded_baselines/piecewise_embedded_MPS_symbolic_names_baseline/piecewise.sto
deleted file mode 100644
index 04e151c5f43..00000000000
--- a/pyomo/pysp/tests/convert/smps_embedded_baselines/piecewise_embedded_MPS_symbolic_names_baseline/piecewise.sto
+++ /dev/null
@@ -1,12 +0,0 @@
-STOCH piecewise
-INDEP DISCRETE
- ONE_VAR_CONSTANT o 0 0.33333333333333331
- ONE_VAR_CONSTANT o 1 0.33333333333333331
- ONE_VAR_CONSTANT o 2 0.33333333333333331
- RHS c_u_cL_second_stage_ 0 0.33333333333333331
- RHS c_u_cL_second_stage_ 1 0.33333333333333331
- RHS c_u_cL_second_stage_ 2 0.33333333333333331
- r c_l_c_second_stage_ 0 0.33333333333333331
- r c_l_c_second_stage_ 1 0.33333333333333331
- r c_l_c_second_stage_ 2 0.33333333333333331
-ENDATA
diff --git a/pyomo/pysp/tests/convert/smps_embedded_baselines/piecewise_embedded_MPS_symbolic_names_baseline/piecewise.tim b/pyomo/pysp/tests/convert/smps_embedded_baselines/piecewise_embedded_MPS_symbolic_names_baseline/piecewise.tim
deleted file mode 100644
index f4f16a6767f..00000000000
--- a/pyomo/pysp/tests/convert/smps_embedded_baselines/piecewise_embedded_MPS_symbolic_names_baseline/piecewise.tim
+++ /dev/null
@@ -1,5 +0,0 @@
-TIME piecewise
-PERIODS IMPLICIT
- x o TIME1
- fx c_u_cL_second_stage_ TIME2
-ENDATA
diff --git a/pyomo/pysp/tests/convert/test_ddsip.py b/pyomo/pysp/tests/convert/test_ddsip.py
deleted file mode 100644
index 4377419f011..00000000000
--- a/pyomo/pysp/tests/convert/test_ddsip.py
+++ /dev/null
@@ -1,434 +0,0 @@
-# _________________________________________________________________________
-#
-# Pyomo: Python Optimization Modeling Objects
-# Copyright (c) 2014 Sandia Corporation.
-# Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation,
-# the U.S. Government retains certain rights in this software.
-# This software is distributed under the BSD License.
-# _________________________________________________________________________
-
-import re
-import os
-from os.path import join, dirname, abspath
-import time
-import difflib
-import filecmp
-import shutil
-import subprocess
-import sys
-import pyutilib.subprocess
-import pyutilib.th as unittest
-from pyutilib.pyro import using_pyro3, using_pyro4
-from pyomo.pysp.util.misc import (_get_test_nameserver,
- _get_test_dispatcher,
- _poll,
- _kill)
-import pyomo.environ
-
-from six import StringIO
-
-thisdir = dirname(abspath(__file__))
-baselinedir = os.path.join(thisdir, "ddsip_baselines")
-pysp_examples_dir = \
- join(dirname(dirname(dirname(dirname(thisdir)))), "examples", "pysp")
-
-_run_verbose = True
-
-@unittest.category('nightly')
-class TestConvertDDSIPSimple(unittest.TestCase):
-
- @unittest.nottest
- def _assert_contains(self, filename, *checkstrs):
- with open(filename, 'rb') as f:
- fdata = f.read()
- for checkstr in checkstrs:
- if re.search(checkstr, fdata) is None:
- self.fail("File %s does not contain test string:\n%s\n"
- "------------------------------------------\n"
- "File data:\n%s\n"
- % (filename, checkstr, fdata))
-
- @unittest.nottest
- def _get_cmd(self,
- model_location,
- scenario_tree_location=None,
- options=None):
- if options is None:
- options = {}
- options['--model-location'] = model_location
- if scenario_tree_location is not None:
- options['--scenario-tree-location'] = \
- scenario_tree_location
- if _run_verbose:
- options['--verbose'] = None
- options['--output-times'] = None
- options['--traceback'] = None
- options['--keep-scenario-files'] = None
- class_name, test_name = self.id().split('.')[-2:]
- options['--output-directory'] = \
- join(thisdir, class_name+"."+test_name)
- if os.path.exists(options['--output-directory']):
- shutil.rmtree(options['--output-directory'],
- ignore_errors=True)
-
- cmd = [sys.executable,'-m','pyomo.pysp.convert.ddsip']
- for name, val in options.items():
- cmd.append(name)
- if val is not None:
- cmd.append(str(val))
- class_name, test_name = self.id().split('.')[-2:]
- print("%s.%s: Testing command: %s" % (class_name,
- test_name,
- str(' '.join(cmd))))
- return cmd, options['--output-directory']
-
- @unittest.nottest
- def _run_bad_conversion_test(self, *args, **kwds):
- cmd, output_dir = self._get_cmd(*args, **kwds)
- outfile = output_dir+".out"
- rc = pyutilib.subprocess.run(cmd, outfile=outfile)
- self.assertNotEqual(rc[0], 0)
- self._assert_contains(
- outfile,
- b"ValueError: One or more deterministic parts of the problem found in file")
- shutil.rmtree(output_dir,
- ignore_errors=True)
- os.remove(outfile)
-
- def test_bad_variable_bounds(self):
- self._run_bad_conversion_test(
- join(thisdir, "model_bad_variable_bounds.py"))
-
- def test_bad_objective_constant(self):
- self._run_bad_conversion_test(
- join(thisdir, "model_bad_objective_constant.py"))
-
- def test_bad_objective_var(self):
- self._run_bad_conversion_test(
- join(thisdir, "model_bad_objective_var.py"))
-
- def test_bad_constraint_var(self):
- self._run_bad_conversion_test(
- join(thisdir, "model_bad_constraint_var.py"))
-
- def test_bad_constraint_rhs(self):
- self._run_bad_conversion_test(
- join(thisdir, "model_bad_constraint_rhs.py"))
-
- def test_too_many_declarations(self):
- cmd, output_dir = self._get_cmd(
- join(thisdir, "model_too_many_declarations.py"))
- outfile = output_dir+".out"
- rc = pyutilib.subprocess.run(cmd, outfile=outfile)
- self.assertNotEqual(rc[0], 0)
- self._assert_contains(
- outfile,
- b"RuntimeError: Component b.c was "
- b"assigned multiple declarations in annotation type "
- b"StochasticConstraintBodyAnnotation. To correct this "
- b"issue, ensure that multiple container components under "
- b"which the component might be stored \(such as a Block "
- b"and an indexed Constraint\) are not simultaneously set in "
- b"this annotation.")
- shutil.rmtree(output_dir,
- ignore_errors=True)
- os.remove(outfile)
-
- def test_bad_component_type(self):
- cmd, output_dir = self._get_cmd(
- join(thisdir, "model_bad_component_type.py"))
- outfile = output_dir+".out"
- rc = pyutilib.subprocess.run(cmd, outfile=outfile)
- self.assertNotEqual(rc[0], 0)
- self._assert_contains(
- outfile,
- b"TypeError: Declarations "
- b"in annotation type StochasticConstraintBodyAnnotation "
- b"must be of types Constraint or Block. Invalid type: "
- b"")
- shutil.rmtree(output_dir,
- ignore_errors=True)
- os.remove(outfile)
-
- def test_unsupported_variable_bounds(self):
- cmd, output_dir = self._get_cmd(
- join(thisdir, "model_unsupported_variable_bounds.py"))
- outfile = output_dir+".out"
- rc = pyutilib.subprocess.run(cmd, outfile=outfile)
- self.assertNotEqual(rc[0], 0)
- self._assert_contains(
- outfile,
- b"ValueError: The DDSIP writer does not currently support "
- b"stochastic variable bounds. Invalid annotation type: "
- b"StochasticVariableBoundsAnnotation")
- shutil.rmtree(output_dir,
- ignore_errors=True)
- os.remove(outfile)
-
-class _DDSIPTesterBase(object):
-
- baseline_basename = None
- model_location = None
- scenario_tree_location = None
- extra_options = None
-
- def setUp(self):
- self._tempfiles = []
- self.options = {}
- self.options['--scenario-tree-manager'] = 'serial'
- if self.extra_options is not None:
- self.options.update(self.extra_options)
-
- def _run_cmd(self, cmd):
- class_name, test_name = self.id().split('.')[-2:]
- outname = os.path.join(thisdir,
- class_name+"."+test_name+".out")
- self._tempfiles.append(outname)
- with open(outname, "w") as f:
- subprocess.check_call(cmd,
- stdout=f,
- stderr=subprocess.STDOUT)
-
- def _cleanup(self):
- for fname in self._tempfiles:
- try:
- os.remove(fname)
- except OSError:
- pass
- self._tempfiles = []
-
- def _setup(self, options):
- assert self.baseline_basename is not None
- assert self.model_location is not None
- options['--model-location'] = self.model_location
- options['--symbolic-solver-labels'] = None
- if self.scenario_tree_location is not None:
- options['--scenario-tree-location'] = self.scenario_tree_location
- if _run_verbose:
- options['--verbose'] = None
- options['--output-times'] = None
- options['--traceback'] = None
- class_name, test_name = self.id().split('.')[-2:]
- options['--output-directory'] = \
- join(thisdir, class_name+"."+test_name)
- if os.path.exists(options['--output-directory']):
- shutil.rmtree(options['--output-directory'], ignore_errors=True)
-
- def _get_cmd(self):
- cmd = [sys.executable,'-m','pyomo.pysp.convert.ddsip']
- for name, val in self.options.items():
- cmd.append(name)
- if val is not None:
- cmd.append(str(val))
- class_name, test_name = self.id().split('.')[-2:]
- print("%s.%s: Testing command: %s" % (class_name,
- test_name,
- str(' '.join(cmd))))
- return cmd
-
- def _diff(self, baselinedir, outputdir, dc=None):
- if dc is None:
- dc = filecmp.dircmp(baselinedir,
- outputdir,
- ['.svn'])
- if dc.left_only:
- self.fail("Files or subdirectories missing from output: "
- +str(dc.left_only))
- if dc.right_only:
- self.fail("Files or subdirectories missing from baseline: "
- +str(dc.right_only))
- for name in dc.diff_files:
- fromfile = join(dc.left, name)
- tofile = join(dc.right, name)
- with open(fromfile, 'r') as f_from:
- fromlines = f_from.readlines()
- with open(tofile, 'r') as f_to:
- tolines = f_to.readlines()
- diff = difflib.context_diff(fromlines, tolines,
- fromfile+" (baseline)",
- tofile+" (output)")
- diff = list(diff)
- # The filecmp.dircmp function does a weaker
- # comparison that can sometimes lead to false
- # positives. Make sure the true diff is not empty
- # before we call this a failure.
- if len(diff) > 0:
- out = StringIO()
- out.write("Output file does not match baseline:\n")
- for line in diff:
- out.write(line)
- self.fail(out.getvalue())
- for subdir in dc.subdirs:
- self._diff(join(baselinedir, subdir),
- join(outputdir, subdir),
- dc=dc.subdirs[subdir])
- shutil.rmtree(outputdir, ignore_errors=True)
-
- def test_scenarios(self):
- self._setup(self.options)
- cmd = self._get_cmd()
- self._run_cmd(cmd)
- self._diff(os.path.join(baselinedir, self.baseline_basename+'_baseline'),
- self.options['--output-directory'])
- self._cleanup()
-
-_pyomo_ns_host = '127.0.0.1'
-_pyomo_ns_port = None
-_pyomo_ns_process = None
-_dispatch_srvr_port = None
-_dispatch_srvr_process = None
-_taskworker_processes = []
-
-def tearDownModule():
- global _pyomo_ns_port
- global _pyomo_ns_process
- global _dispatch_srvr_port
- global _dispatch_srvr_process
- global _taskworker_processes
- _kill(_pyomo_ns_process)
- _pyomo_ns_port = None
- _pyomo_ns_process = None
- _kill(_dispatch_srvr_process)
- _dispatch_srvr_port = None
- _dispatch_srvr_process = None
- [_kill(proc) for proc in _taskworker_processes]
- _taskworker_processes = []
- if os.path.exists(join(thisdir, "Pyro_NS_URI")):
- try:
- os.remove(join(thisdir, "Pyro_NS_URI"))
- except OSError:
- pass
-
-class _DDSIPPyroTesterBase(_DDSIPTesterBase):
-
- def _setUpPyro(self):
- global _pyomo_ns_port
- global _pyomo_ns_process
- global _dispatch_srvr_port
- global _dispatch_srvr_process
- global _taskworker_processes
- if _pyomo_ns_process is None:
- _pyomo_ns_process, _pyomo_ns_port = \
- _get_test_nameserver(ns_host=_pyomo_ns_host)
- assert _pyomo_ns_process is not None
- if _dispatch_srvr_process is None:
- _dispatch_srvr_process, _dispatch_srvr_port = \
- _get_test_dispatcher(ns_host=_pyomo_ns_host,
- ns_port=_pyomo_ns_port)
- assert _dispatch_srvr_process is not None
- class_name, test_name = self.id().split('.')[-2:]
- if len(_taskworker_processes) == 0:
- for i in range(3):
- outname = os.path.join(thisdir,
- class_name+"."+test_name+".scenariotreeserver_"+str(i+1)+".out")
- self._tempfiles.append(outname)
- with open(outname, "w") as f:
- _taskworker_processes.append(
- subprocess.Popen(["scenariotreeserver", "--traceback"] + \
- (["--verbose"] if _run_verbose else []) + \
- ["--pyro-host="+str(_pyomo_ns_host)] + \
- ["--pyro-port="+str(_pyomo_ns_port)],
- stdout=f,
- stderr=subprocess.STDOUT))
-
- time.sleep(2)
- [_poll(proc) for proc in _taskworker_processes]
-
- def setUp(self):
- self._tempfiles = []
- self._setUpPyro()
- [_poll(proc) for proc in _taskworker_processes]
- self.options = {}
- self.options['--scenario-tree-manager'] = 'pyro'
- self.options['--pyro-host'] = 'localhost'
- self.options['--pyro-port'] = _pyomo_ns_port
- self.options['--pyro-required-scenariotreeservers'] = 3
- if self.extra_options is not None:
- self.options.update(self.extra_options)
-
- def _setup(self, options, servers=None):
- _DDSIPTesterBase._setup(self, options)
- if servers is not None:
- options['--pyro-required-scenariotreeservers'] = servers
-
- def test_scenarios_LP_1server(self):
- self._setup(self.options, servers=1)
- cmd = self._get_cmd()
- self._run_cmd(cmd)
- self._diff(os.path.join(baselinedir, self.baseline_basename+'_baseline'),
- self.options['--output-directory'])
- self._cleanup()
-
-@unittest.nottest
-def create_test_classes(test_class_suffix,
- baseline_basename,
- model_location,
- scenario_tree_location,
- categories,
- extra_options=None):
- assert test_class_suffix is not None
- assert baseline_basename is not None
-
- class _base(object):
- pass
- _base.baseline_basename = baseline_basename
- _base.model_location = model_location
- _base.scenario_tree_location = scenario_tree_location
- _base.extra_options = extra_options
-
- class_names = []
-
- @unittest.category(*categories)
- class TestConvertDDSIP_Serial(_base,
- _DDSIPTesterBase):
- pass
- class_names.append(TestConvertDDSIP_Serial.__name__ + "_"+test_class_suffix)
- globals()[class_names[-1]] = type(
- class_names[-1], (TestConvertDDSIP_Serial, unittest.TestCase), {})
-
- @unittest.skipIf(not (using_pyro3 or using_pyro4),
- "Pyro or Pyro4 is not available")
- @unittest.category('parallel')
- class TestConvertDDSIP_Pyro(_base,
- unittest.TestCase,
- _DDSIPPyroTesterBase):
- def setUp(self):
- _DDSIPPyroTesterBase.setUp(self)
- def _setup(self, options, servers=None):
- _DDSIPPyroTesterBase._setup(self, options, servers=servers)
- class_names.append(TestConvertDDSIP_Pyro.__name__ + "_"+test_class_suffix)
- globals()[class_names[-1]] = type(
- class_names[-1], (TestConvertDDSIP_Pyro, unittest.TestCase), {})
-
- return tuple(globals()[name] for name in class_names)
-
-#
-# create the actual testing classes
-#
-
-farmer_examples_dir = join(pysp_examples_dir, "farmerWintegers")
-farmer_model_dir = join(farmer_examples_dir, "smps_model")
-farmer_data_dir = join(farmer_examples_dir, "scenariodata")
-create_test_classes('farmer',
- 'farmer',
- farmer_model_dir,
- farmer_data_dir,
- ('nightly',))
-
-piecewise_model = join(thisdir, "piecewise_model.py")
-piecewise_scenario_tree = join(thisdir, "piecewise_scenario_tree.py")
-create_test_classes('piecewise',
- 'piecewise',
- piecewise_model,
- piecewise_scenario_tree,
- ('nightly',))
-
-piecewise_model = join(thisdir, "piecewise_model_alt.py")
-create_test_classes('piecewise_alt',
- 'piecewise',
- piecewise_model,
- piecewise_scenario_tree,
- ('nightly',))
-
-if __name__ == "__main__":
- unittest.main()
diff --git a/pyomo/pysp/tests/convert/test_schuripopt.py b/pyomo/pysp/tests/convert/test_schuripopt.py
deleted file mode 100644
index 09ff3bf7b68..00000000000
--- a/pyomo/pysp/tests/convert/test_schuripopt.py
+++ /dev/null
@@ -1,312 +0,0 @@
-# ___________________________________________________________________________
-#
-# Pyomo: Python Optimization Modeling Objects
-# Copyright 2017 National Technology and Engineering Solutions of Sandia, LLC
-# Under the terms of Contract DE-NA0003525 with National Technology and
-# Engineering Solutions of Sandia, LLC, the U.S. Government retains certain
-# rights in this software.
-# This software is distributed under the 3-clause BSD License.
-# ___________________________________________________________________________
-
-import os
-from os.path import join, dirname, abspath
-import time
-import filecmp
-import shutil
-import subprocess
-import sys
-import pyutilib.th as unittest
-from pyutilib.pyro import using_pyro3, using_pyro4
-from pyomo.pysp.util.misc import (_get_test_nameserver,
- _get_test_dispatcher,
- _poll,
- _kill)
-
-thisdir = dirname(abspath(__file__))
-baselinedir = os.path.join(thisdir, "schuripopt_baselines")
-pysp_examples_dir = \
- join(dirname(dirname(dirname(dirname(thisdir)))), "examples", "pysp")
-
-_run_verbose = True
-_diff_tolerance = 1e-6
-
-class _SchurIpoptTesterBase(object):
-
- baseline_basename = None
- model_location = None
- scenario_tree_location = None
- extra_options = None
-
- def setUp(self):
- self._tempfiles = []
- self.options = {}
- self.options['--scenario-tree-manager'] = 'serial'
- if self.extra_options is not None:
- self.options.update(self.extra_options)
-
- def _run_cmd(self, cmd):
- class_name, test_name = self.id().split('.')[-2:]
- outname = os.path.join(thisdir,
- class_name+"."+test_name+".out")
- self._tempfiles.append(outname)
- with open(outname, "w") as f:
- subprocess.check_call(cmd,
- stdout=f,
- stderr=subprocess.STDOUT)
-
- def _cleanup(self):
- for fname in self._tempfiles:
- try:
- os.remove(fname)
- except OSError:
- pass
- self._tempfiles = []
-
- def _setup(self, options):
- assert self.baseline_basename is not None
- assert self.model_location is not None
- options['--model-location'] = self.model_location
- options['--symbolic-solver-labels'] = None
- if self.scenario_tree_location is not None:
- options['--scenario-tree-location'] = self.scenario_tree_location
- if _run_verbose:
- options['--verbose'] = None
- options['--output-times'] = None
- options['--traceback'] = None
- class_name, test_name = self.id().split('.')[-2:]
- options['--output-directory'] = \
- join(thisdir, class_name+"."+test_name)
- if os.path.exists(options['--output-directory']):
- shutil.rmtree(options['--output-directory'], ignore_errors=True)
-
- def _get_cmd(self):
- cmd = [sys.executable,'-m','pyomo.pysp.convert.schuripopt']
- for name, val in self.options.items():
- cmd.append(name)
- if val is not None:
- cmd.append(str(val))
- class_name, test_name = self.id().split('.')[-2:]
- print("%s.%s: Testing command: %s" % (class_name,
- test_name,
- str(' '.join(cmd))))
- return cmd
-
- def _diff(self, baselinedir, outputdir, dc=None):
- if dc is None:
- dc = filecmp.dircmp(baselinedir,
- outputdir,
- ['.svn'])
- if dc.left_only:
- self.fail("Files or subdirectories missing from output: "
- +str(dc.left_only))
- if dc.right_only:
- self.fail("Files or subdirectories missing from baseline: "
- +str(dc.right_only))
- for name in dc.diff_files:
- fromfile = join(dc.left, name)
- tofile = join(dc.right, name)
- self.assertFileEqualsBaseline(
- tofile, fromfile,
- tolerance=_diff_tolerance,
- delete=False)
- """
- with open(fromfile, 'r') as f_from:
- fromlines = f_from.readlines()
- with open(tofile, 'r') as f_to:
- tolines = f_to.readlines()
- diff = difflib.context_diff(fromlines, tolines,
- fromfile+" (baseline)",
- tofile+" (output)")
- diff = list(diff)
- # The filecmp.dircmp function does a weaker
- # comparison that can sometimes lead to false
- # positives. Make sure the true diff is not empty
- # before we call this a failure.
- if len(diff) > 0:
- out = StringIO()
- out.write("Output file does not match baseline:\n")
- for line in diff:
- out.write(line)
- self.fail(out.getvalue())
- """
- for subdir in dc.subdirs:
- self._diff(join(baselinedir, subdir),
- join(outputdir, subdir),
- dc=dc.subdirs[subdir])
- shutil.rmtree(outputdir, ignore_errors=True)
-
- def test_scenarios(self):
- self._setup(self.options)
- cmd = self._get_cmd()
- self._run_cmd(cmd)
- self._diff(os.path.join(baselinedir, self.baseline_basename+'_baseline'),
- self.options['--output-directory'])
- self._cleanup()
-
-_pyomo_ns_host = '127.0.0.1'
-_pyomo_ns_port = None
-_pyomo_ns_process = None
-_dispatch_srvr_port = None
-_dispatch_srvr_process = None
-_taskworker_processes = []
-
-def tearDownModule():
- global _pyomo_ns_port
- global _pyomo_ns_process
- global _dispatch_srvr_port
- global _dispatch_srvr_process
- global _taskworker_processes
- _kill(_pyomo_ns_process)
- _pyomo_ns_port = None
- _pyomo_ns_process = None
- _kill(_dispatch_srvr_process)
- _dispatch_srvr_port = None
- _dispatch_srvr_process = None
- [_kill(proc) for proc in _taskworker_processes]
- _taskworker_processes = []
- if os.path.exists(join(thisdir, "Pyro_NS_URI")):
- try:
- os.remove(join(thisdir, "Pyro_NS_URI"))
- except OSError:
- pass
-
-class _SchurIpoptPyroTesterBase(_SchurIpoptTesterBase):
-
- def _setUpPyro(self):
- global _pyomo_ns_port
- global _pyomo_ns_process
- global _dispatch_srvr_port
- global _dispatch_srvr_process
- global _taskworker_processes
- if _pyomo_ns_process is None:
- _pyomo_ns_process, _pyomo_ns_port = \
- _get_test_nameserver(ns_host=_pyomo_ns_host)
- assert _pyomo_ns_process is not None
- if _dispatch_srvr_process is None:
- _dispatch_srvr_process, _dispatch_srvr_port = \
- _get_test_dispatcher(ns_host=_pyomo_ns_host,
- ns_port=_pyomo_ns_port)
- assert _dispatch_srvr_process is not None
- class_name, test_name = self.id().split('.')[-2:]
- if len(_taskworker_processes) == 0:
- for i in range(3):
- outname = os.path.join(thisdir,
- class_name+"."+test_name+".scenariotreeserver_"+str(i+1)+".out")
- self._tempfiles.append(outname)
- with open(outname, "w") as f:
- _taskworker_processes.append(
- subprocess.Popen(["scenariotreeserver", "--traceback"] + \
- (["--verbose"] if _run_verbose else []) + \
- ["--pyro-host="+str(_pyomo_ns_host)] + \
- ["--pyro-port="+str(_pyomo_ns_port)],
- stdout=f,
- stderr=subprocess.STDOUT))
-
- time.sleep(2)
- [_poll(proc) for proc in _taskworker_processes]
-
- def setUp(self):
- self._tempfiles = []
- self._setUpPyro()
- [_poll(proc) for proc in _taskworker_processes]
- self.options = {}
- self.options['--scenario-tree-manager'] = 'pyro'
- self.options['--pyro-host'] = 'localhost'
- self.options['--pyro-port'] = _pyomo_ns_port
- self.options['--pyro-required-scenariotreeservers'] = 3
- if self.extra_options is not None:
- self.options.update(self.extra_options)
-
- def _setup(self, options, servers=None):
- _SchurIpoptTesterBase._setup(self, options)
- if servers is not None:
- options['--pyro-required-scenariotreeservers'] = servers
-
- def test_scenarios_1server(self):
- self._setup(self.options, servers=1)
- cmd = self._get_cmd()
- self._run_cmd(cmd)
- self._diff(os.path.join(baselinedir, self.baseline_basename+'_baseline'),
- self.options['--output-directory'])
- self._cleanup()
-
-@unittest.nottest
-def create_test_classes(test_class_suffix,
- baseline_basename,
- model_location,
- scenario_tree_location,
- categories,
- extra_options=None):
- assert test_class_suffix is not None
- assert baseline_basename is not None
-
- class _base(object):
- pass
- _base.baseline_basename = baseline_basename
- _base.model_location = model_location
- _base.scenario_tree_location = scenario_tree_location
- _base.extra_options = extra_options
-
- class_names = []
-
- @unittest.category(*categories)
- class TestConvertSchurIpopt_Serial(_base,
- _SchurIpoptTesterBase):
- pass
- class_names.append(TestConvertSchurIpopt_Serial.__name__ + "_"+test_class_suffix)
- globals()[class_names[-1]] = type(
- class_names[-1], (TestConvertSchurIpopt_Serial, unittest.TestCase), {})
-
- @unittest.skipIf(not (using_pyro3 or using_pyro4),
- "Pyro or Pyro4 is not available")
- @unittest.category('parallel')
- class TestConvertSchurIpopt_Pyro(_base,
- unittest.TestCase,
- _SchurIpoptPyroTesterBase):
- def setUp(self):
- _SchurIpoptPyroTesterBase.setUp(self)
- def _setup(self, options, servers=None):
- _SchurIpoptPyroTesterBase._setup(self, options, servers=servers)
- class_names.append(TestConvertSchurIpopt_Pyro.__name__ + "_"+test_class_suffix)
- globals()[class_names[-1]] = type(
- class_names[-1], (TestConvertSchurIpopt_Pyro, unittest.TestCase), {})
-
- return tuple(globals()[name] for name in class_names)
-
-#
-# create the actual testing classes
-#
-
-farmer_examples_dir = join(pysp_examples_dir, "farmer")
-farmer_model_dir = join(farmer_examples_dir, "expr_models")
-farmer_data_dir = join(farmer_examples_dir, "scenariodata")
-create_test_classes('farmer',
- 'farmer',
- farmer_model_dir,
- farmer_data_dir,
- ('nightly','expensive'))
-
-piecewise_model = join(thisdir, "piecewise_model.py")
-piecewise_scenario_tree = join(thisdir, "piecewise_scenario_tree.py")
-create_test_classes('piecewise',
- 'piecewise',
- piecewise_model,
- piecewise_scenario_tree,
- ('nightly','expensive'))
-
-piecewise_scenario_tree_bundles = join(thisdir, "piecewise_scenario_tree_bundles.py")
-create_test_classes('piecewise_bundles',
- 'piecewise_bundles',
- piecewise_model,
- piecewise_scenario_tree_bundles,
- ('nightly','expensive'))
-
-create_test_classes('piecewise_ignore_bundles',
- 'piecewise',
- piecewise_model,
- piecewise_scenario_tree_bundles,
- ('nightly','expensive'),
- extra_options={'--ignore-bundles': None})
-
-if __name__ == "__main__":
- unittest.main()
diff --git a/pyomo/pysp/tests/convert/test_smps.py b/pyomo/pysp/tests/convert/test_smps.py
deleted file mode 100644
index b29c3ac463d..00000000000
--- a/pyomo/pysp/tests/convert/test_smps.py
+++ /dev/null
@@ -1,608 +0,0 @@
-# ___________________________________________________________________________
-#
-# Pyomo: Python Optimization Modeling Objects
-# Copyright 2017 National Technology and Engineering Solutions of Sandia, LLC
-# Under the terms of Contract DE-NA0003525 with National Technology and
-# Engineering Solutions of Sandia, LLC, the U.S. Government retains certain
-# rights in this software.
-# This software is distributed under the 3-clause BSD License.
-# ___________________________________________________________________________
-
-import re
-import os
-from os.path import join, dirname, abspath
-import time
-import difflib
-import filecmp
-import shutil
-import subprocess
-import sys
-from pyutilib.subprocess import run
-import pyutilib.th as unittest
-from pyutilib.pyro import using_pyro3, using_pyro4
-from pyomo.pysp.util.misc import (_get_test_nameserver,
- _get_test_dispatcher,
- _poll,
- _kill)
-
-from six import StringIO
-
-thisdir = dirname(abspath(__file__))
-baselinedir = os.path.join(thisdir, "smps_baselines")
-pysp_examples_dir = \
- join(dirname(dirname(dirname(dirname(thisdir)))), "examples", "pysp")
-
-_run_verbose = True
-
-@unittest.category('nightly')
-class TestConvertSMPSSimple(unittest.TestCase):
-
- @unittest.nottest
- def _assert_contains(self, filename, *checkstrs):
- with open(filename, 'rb') as f:
- fdata = f.read()
- for checkstr in checkstrs:
- if re.search(checkstr, fdata) is None:
- self.fail("File %s does not contain test string:\n%s\n"
- "------------------------------------------\n"
- "File data:\n%s\n"
- % (filename, checkstr, fdata))
-
- @unittest.nottest
- def _get_cmd(self,
- model_location,
- scenario_tree_location=None,
- options=None):
- if options is None:
- options = {}
- options['--basename'] = 'test'
- options['--model-location'] = model_location
- if scenario_tree_location is not None:
- options['--scenario-tree-location'] = \
- scenario_tree_location
- if _run_verbose:
- options['--verbose'] = None
- options['--output-times'] = None
- options['--traceback'] = None
- options['--keep-scenario-files'] = None
- options['--keep-auxiliary-files'] = None
- class_name, test_name = self.id().split('.')[-2:]
- options['--output-directory'] = \
- join(thisdir, class_name+"."+test_name)
- if os.path.exists(options['--output-directory']):
- shutil.rmtree(options['--output-directory'],
- ignore_errors=True)
-
- cmd = [sys.executable,'-m','pyomo.pysp.convert.smps']
- for name, val in options.items():
- cmd.append(name)
- if val is not None:
- cmd.append(str(val))
- class_name, test_name = self.id().split('.')[-2:]
- print("%s.%s: Testing command: %s" % (class_name,
- test_name,
- str(' '.join(cmd))))
- return cmd, options['--output-directory']
-
- @unittest.nottest
- def _run_bad_conversion_test(self, *args, **kwds):
- cmd, output_dir = self._get_cmd(*args, **kwds)
- outfile = output_dir+".out"
- rc = run(cmd, outfile=outfile)
- self.assertNotEqual(rc[0], 0)
- self._assert_contains(
- outfile,
- b"ValueError: One or more deterministic parts of the problem found in file")
- shutil.rmtree(output_dir,
- ignore_errors=True)
- os.remove(outfile)
-
- def test_bad_variable_bounds_MPS(self):
- self._run_bad_conversion_test(
- join(thisdir, "model_bad_variable_bounds.py"),
- options={'--core-format': 'mps'})
-
- def test_bad_variable_bounds_LP(self):
- self._run_bad_conversion_test(
- join(thisdir, "model_bad_variable_bounds.py"),
- options={'--core-format': 'lp'})
-
- def test_bad_objective_constant_MPS(self):
- self._run_bad_conversion_test(
- join(thisdir, "model_bad_objective_constant.py"),
- options={'--core-format': 'mps'})
-
- def test_bad_objective_constant_LP(self):
- self._run_bad_conversion_test(
- join(thisdir, "model_bad_objective_constant.py"),
- options={'--core-format': 'lp'})
-
- def test_bad_objective_var_MPS(self):
- self._run_bad_conversion_test(
- join(thisdir, "model_bad_objective_var.py"),
- options={'--core-format': 'mps'})
-
- def test_bad_objective_var_LP(self):
- self._run_bad_conversion_test(
- join(thisdir, "model_bad_objective_var.py"),
- options={'--core-format': 'lp'})
-
- def test_bad_constraint_var_MPS(self):
- self._run_bad_conversion_test(
- join(thisdir, "model_bad_constraint_var.py"),
- options={'--core-format': 'mps'})
-
- def test_bad_constraint_var_LP(self):
- self._run_bad_conversion_test(
- join(thisdir, "model_bad_constraint_var.py"),
- options={'--core-format': 'lp'})
-
- def test_bad_constraint_rhs_MPS(self):
- self._run_bad_conversion_test(
- join(thisdir, "model_bad_constraint_rhs.py"),
- options={'--core-format': 'mps'})
-
- def test_bad_constraint_rhs_LP(self):
- self._run_bad_conversion_test(
- join(thisdir, "model_bad_constraint_rhs.py"),
- options={'--core-format': 'lp'})
-
- def test_too_many_declarations(self):
- cmd, output_dir = self._get_cmd(
- join(thisdir, "model_too_many_declarations.py"))
- outfile = output_dir+".out"
- rc = run(cmd, outfile=outfile)
- self.assertNotEqual(rc[0], 0)
- self._assert_contains(
- outfile,
- b"RuntimeError: Component b.c was "
- b"assigned multiple declarations in annotation type "
- b"StochasticConstraintBodyAnnotation. To correct this "
- b"issue, ensure that multiple container components under "
- b"which the component might be stored \(such as a Block "
- b"and an indexed Constraint\) are not simultaneously set in "
- b"this annotation.")
- shutil.rmtree(output_dir,
- ignore_errors=True)
- os.remove(outfile)
-
- def test_bad_component_type(self):
- cmd, output_dir = self._get_cmd(
- join(thisdir, "model_bad_component_type.py"))
- outfile = output_dir+".out"
- rc = run(cmd, outfile=outfile)
- self.assertNotEqual(rc[0], 0)
- self._assert_contains(
- outfile,
- b"TypeError: Declarations "
- b"in annotation type StochasticConstraintBodyAnnotation "
- b"must be of types Constraint or Block. Invalid type: "
- b"")
- shutil.rmtree(output_dir,
- ignore_errors=True)
- os.remove(outfile)
-
- def test_unsupported_variable_bounds(self):
- cmd, output_dir = self._get_cmd(
- join(thisdir, "model_unsupported_variable_bounds.py"))
- outfile = output_dir+".out"
- rc = run(cmd, outfile=outfile)
- self.assertNotEqual(rc[0], 0)
- self._assert_contains(
- outfile,
- b"ValueError: The SMPS writer does not currently support "
- b"stochastic variable bounds. Invalid annotation type: "
- b"StochasticVariableBoundsAnnotation")
- shutil.rmtree(output_dir,
- ignore_errors=True)
- os.remove(outfile)
-
-class _SMPSTesterBase(object):
-
- baseline_basename = None
- model_location = None
- scenario_tree_location = None
-
- def setUp(self):
- self._tempfiles = []
- self.options = {}
- self.options['--scenario-tree-manager'] = 'serial'
-
- def _run_cmd(self, cmd):
- class_name, test_name = self.id().split('.')[-2:]
- outname = os.path.join(thisdir,
- class_name+"."+test_name+".out")
- self._tempfiles.append(outname)
- with open(outname, "w") as f:
- subprocess.check_call(cmd,
- stdout=f,
- stderr=subprocess.STDOUT)
-
- def _cleanup(self):
- for fname in self._tempfiles:
- try:
- os.remove(fname)
- except OSError:
- pass
- self._tempfiles = []
-
- def _setup(self, options):
- assert self.baseline_basename is not None
- assert self.model_location is not None
- options['--basename'] = self.baseline_basename
- options['--model-location'] = self.model_location
- if self.scenario_tree_location is not None:
- options['--scenario-tree-location'] = self.scenario_tree_location
- if _run_verbose:
- options['--verbose'] = None
- options['--output-times'] = None
- options['--traceback'] = None
- options['--keep-scenario-files'] = None
- options['--keep-auxiliary-files'] = None
- class_name, test_name = self.id().split('.')[-2:]
- options['--output-directory'] = \
- join(thisdir, class_name+"."+test_name)
- if os.path.exists(options['--output-directory']):
- shutil.rmtree(options['--output-directory'], ignore_errors=True)
-
- def _get_cmd(self):
- cmd = [sys.executable,'-m','pyomo.pysp.convert.smps']
- for name, val in self.options.items():
- cmd.append(name)
- if val is not None:
- cmd.append(str(val))
- class_name, test_name = self.id().split('.')[-2:]
- print("%s.%s: Testing command: %s" % (class_name,
- test_name,
- str(' '.join(cmd))))
- return cmd
-
- def _diff(self, baselinedir, outputdir, dc=None):
- if dc is None:
- dc = filecmp.dircmp(baselinedir,
- outputdir,
- ['.svn'])
- if dc.left_only:
- self.fail("Files or subdirectories missing from output: "
- +str(dc.left_only))
- if dc.right_only:
- self.fail("Files or subdirectories missing from baseline: "
- +str(dc.right_only))
- for name in dc.diff_files:
- fromfile = join(dc.left, name)
- tofile = join(dc.right, name)
- with open(fromfile, 'r') as f_from:
- fromlines = f_from.readlines()
- with open(tofile, 'r') as f_to:
- tolines = f_to.readlines()
- diff = difflib.context_diff(fromlines, tolines,
- fromfile+" (baseline)",
- tofile+" (output)")
- diff = list(diff)
- # The filecmp.dircmp function does a weaker
- # comparison that can sometimes lead to false
- # positives. Make sure the true diff is not empty
- # before we call this a failure.
- if len(diff) > 0:
- out = StringIO()
- out.write("Output file does not match baseline:\n")
- for line in diff:
- out.write(line)
- self.fail(out.getvalue())
- for subdir in dc.subdirs:
- self._diff(join(baselinedir, subdir),
- join(outputdir, subdir),
- dc=dc.subdirs[subdir])
- shutil.rmtree(outputdir, ignore_errors=True)
-
- def test_scenarios_LP(self):
- self._setup(self.options)
- self.options['--core-format'] = 'lp'
- cmd = self._get_cmd()
- self._run_cmd(cmd)
- self._diff(os.path.join(baselinedir, self.baseline_basename+'_LP_baseline'),
- self.options['--output-directory'])
- self._cleanup()
-
- def test_scenarios_LP_ignore_derived(self):
- self._setup(self.options)
- self.options['--core-format'] = 'lp'
- self.options['--enforce-derived-nonanticipativity'] = None
- cmd = self._get_cmd()
- self._run_cmd(cmd)
- self._diff(os.path.join(baselinedir, self.baseline_basename+'_LP_ignore_derived_baseline'),
- self.options['--output-directory'])
- self._cleanup()
-
- def test_scenarios_MPS(self):
- self._setup(self.options)
- self.options['--core-format'] = 'mps'
- cmd = self._get_cmd()
- self._run_cmd(cmd)
- self._diff(os.path.join(baselinedir, self.baseline_basename+'_MPS_baseline'),
- self.options['--output-directory'])
- self._cleanup()
-
- def test_scenarios_MPS_ignore_derived(self):
- self._setup(self.options)
- self.options['--core-format'] = 'mps'
- self.options['--enforce-derived-nonanticipativity'] = None
- cmd = self._get_cmd()
- self._run_cmd(cmd)
- self._diff(os.path.join(baselinedir, self.baseline_basename+'_MPS_ignore_derived_baseline'),
- self.options['--output-directory'])
- self._cleanup()
-
- def test_scenarios_LP_symbolic_names(self):
- self._setup(self.options)
- self.options['--core-format'] = 'lp'
- self.options['--symbolic-solver-labels'] = None
- cmd = self._get_cmd()
- self._run_cmd(cmd)
- self._diff(os.path.join(baselinedir, self.baseline_basename+'_LP_symbolic_names_baseline'),
- self.options['--output-directory'])
- self._cleanup()
-
- def test_scenarios_LP_symbolic_names_ignore_derived(self):
- self._setup(self.options)
- self.options['--core-format'] = 'lp'
- self.options['--symbolic-solver-labels'] = None
- self.options['--enforce-derived-nonanticipativity'] = None
- cmd = self._get_cmd()
- self._run_cmd(cmd)
- self._diff(os.path.join(baselinedir, self.baseline_basename+'_LP_symbolic_names_ignore_derived_baseline'),
- self.options['--output-directory'])
- self._cleanup()
-
- def test_scenarios_MPS_symbolic_names(self):
- self._setup(self.options)
- self.options['--core-format'] = 'mps'
- self.options['--symbolic-solver-labels'] = None
- cmd = self._get_cmd()
- self._run_cmd(cmd)
- self._diff(os.path.join(baselinedir, self.baseline_basename+'_MPS_symbolic_names_baseline'),
- self.options['--output-directory'])
- self._cleanup()
-
- def test_scenarios_MPS_symbolic_names_ignore_derived(self):
- self._setup(self.options)
- self.options['--core-format'] = 'mps'
- self.options['--symbolic-solver-labels'] = None
- self.options['--enforce-derived-nonanticipativity'] = None
- cmd = self._get_cmd()
- self._run_cmd(cmd)
- self._diff(os.path.join(baselinedir, self.baseline_basename+'_MPS_symbolic_names_ignore_derived_baseline'),
- self.options['--output-directory'])
- self._cleanup()
-
-_pyomo_ns_host = '127.0.0.1'
-_pyomo_ns_port = None
-_pyomo_ns_process = None
-_dispatch_srvr_port = None
-_dispatch_srvr_process = None
-_taskworker_processes = []
-
-def tearDownModule():
- global _pyomo_ns_port
- global _pyomo_ns_process
- global _dispatch_srvr_port
- global _dispatch_srvr_process
- global _taskworker_processes
- _kill(_pyomo_ns_process)
- _pyomo_ns_port = None
- _pyomo_ns_process = None
- _kill(_dispatch_srvr_process)
- _dispatch_srvr_port = None
- _dispatch_srvr_process = None
- [_kill(proc) for proc in _taskworker_processes]
- _taskworker_processes = []
- if os.path.exists(join(thisdir, "Pyro_NS_URI")):
- try:
- os.remove(join(thisdir, "Pyro_NS_URI"))
- except OSError:
- pass
-
-class _SMPSPyroTesterBase(_SMPSTesterBase):
-
- def _setUpPyro(self):
- global _pyomo_ns_port
- global _pyomo_ns_process
- global _dispatch_srvr_port
- global _dispatch_srvr_process
- global _taskworker_processes
- if _pyomo_ns_process is None:
- _pyomo_ns_process, _pyomo_ns_port = \
- _get_test_nameserver(ns_host=_pyomo_ns_host)
- assert _pyomo_ns_process is not None
- if _dispatch_srvr_process is None:
- _dispatch_srvr_process, _dispatch_srvr_port = \
- _get_test_dispatcher(ns_host=_pyomo_ns_host,
- ns_port=_pyomo_ns_port)
- assert _dispatch_srvr_process is not None
- class_name, test_name = self.id().split('.')[-2:]
- if len(_taskworker_processes) == 0:
- for i in range(3):
- outname = os.path.join(thisdir,
- class_name+"."+test_name+".scenariotreeserver_"+str(i+1)+".out")
- self._tempfiles.append(outname)
- with open(outname, "w") as f:
- _taskworker_processes.append(
- subprocess.Popen(["scenariotreeserver", "--traceback"] + \
- (["--verbose"] if _run_verbose else []) + \
- ["--pyro-host="+str(_pyomo_ns_host)] + \
- ["--pyro-port="+str(_pyomo_ns_port)],
- stdout=f,
- stderr=subprocess.STDOUT))
-
- time.sleep(2)
- [_poll(proc) for proc in _taskworker_processes]
-
- def setUp(self):
- self._tempfiles = []
- self._setUpPyro()
- [_poll(proc) for proc in _taskworker_processes]
- self.options = {}
- self.options['--scenario-tree-manager'] = 'pyro'
- self.options['--pyro-host'] = 'localhost'
- self.options['--pyro-port'] = _pyomo_ns_port
- self.options['--pyro-required-scenariotreeservers'] = 3
-
- def _setup(self, options, servers=None):
- _SMPSTesterBase._setup(self, options)
- if servers is not None:
- options['--pyro-required-scenariotreeservers'] = servers
-
- def test_scenarios_LP_1server(self):
- self._setup(self.options, servers=1)
- self.options['--core-format'] = 'lp'
- cmd = self._get_cmd()
- self._run_cmd(cmd)
- self._diff(os.path.join(baselinedir, self.baseline_basename+'_LP_baseline'),
- self.options['--output-directory'])
- self._cleanup()
-
- def test_scenarios_LP_1server_ignore_derived(self):
- self._setup(self.options, servers=1)
- self.options['--core-format'] = 'lp'
- self.options['--enforce-derived-nonanticipativity'] = None
- cmd = self._get_cmd()
- self._run_cmd(cmd)
- self._diff(os.path.join(baselinedir, self.baseline_basename+'_LP_ignore_derived_baseline'),
- self.options['--output-directory'])
- self._cleanup()
-
- def test_scenarios_MPS_1server(self):
- self._setup(self.options, servers=1)
- self.options['--core-format'] = 'mps'
- cmd = self._get_cmd()
- self._run_cmd(cmd)
- self._diff(os.path.join(baselinedir, self.baseline_basename+'_MPS_baseline'),
- self.options['--output-directory'])
- self._cleanup()
-
- def test_scenarios_MPS_1server_ignore_derived(self):
- self._setup(self.options, servers=1)
- self.options['--core-format'] = 'mps'
- self.options['--enforce-derived-nonanticipativity'] = None
- cmd = self._get_cmd()
- self._run_cmd(cmd)
- self._diff(os.path.join(baselinedir, self.baseline_basename+'_MPS_ignore_derived_baseline'),
- self.options['--output-directory'])
- self._cleanup()
-
- def test_scenarios_LP_symbolic_names_1server(self):
- self._setup(self.options, servers=1)
- self.options['--core-format'] = 'lp'
- self.options['--symbolic-solver-labels'] = None
- cmd = self._get_cmd()
- self._run_cmd(cmd)
- self._diff(os.path.join(baselinedir, self.baseline_basename+'_LP_symbolic_names_baseline'),
- self.options['--output-directory'])
- self._cleanup()
-
- def test_scenarios_LP_symbolic_names_ignore_derived_1server(self):
- self._setup(self.options, servers=1)
- self.options['--core-format'] = 'lp'
- self.options['--symbolic-solver-labels'] = None
- self.options['--enforce-derived-nonanticipativity'] = None
- cmd = self._get_cmd()
- self._run_cmd(cmd)
- self._diff(os.path.join(baselinedir, self.baseline_basename+'_LP_symbolic_names_ignore_derived_baseline'),
- self.options['--output-directory'])
- self._cleanup()
-
- def test_scenarios_MPS_symbolic_names_1server(self):
- self._setup(self.options, servers=1)
- self.options['--core-format'] = 'mps'
- self.options['--symbolic-solver-labels'] = None
- cmd = self._get_cmd()
- self._run_cmd(cmd)
- self._diff(os.path.join(baselinedir, self.baseline_basename+'_MPS_symbolic_names_baseline'),
- self.options['--output-directory'])
- self._cleanup()
-
- def test_scenarios_MPS_symbolic_names_ignore_derived_1server(self):
- self._setup(self.options, servers=1)
- self.options['--core-format'] = 'mps'
- self.options['--symbolic-solver-labels'] = None
- self.options['--enforce-derived-nonanticipativity'] = None
- cmd = self._get_cmd()
- self._run_cmd(cmd)
- self._diff(os.path.join(baselinedir, self.baseline_basename+'_MPS_symbolic_names_ignore_derived_baseline'),
- self.options['--output-directory'])
- self._cleanup()
-
-@unittest.nottest
-def create_test_classes(test_class_suffix,
- baseline_basename,
- model_location,
- scenario_tree_location,
- categories):
- assert test_class_suffix is not None
- assert baseline_basename is not None
-
- class _base(object):
- pass
- _base.baseline_basename = baseline_basename
- _base.model_location = model_location
- _base.scenario_tree_location = scenario_tree_location
-
- class_names = []
-
- @unittest.category(*categories)
- class TestConvertSMPS_Serial(_base,
- _SMPSTesterBase):
- pass
- class_names.append(TestConvertSMPS_Serial.__name__ + "_"+test_class_suffix)
- globals()[class_names[-1]] = type(
- class_names[-1], (TestConvertSMPS_Serial, unittest.TestCase), {})
-
- @unittest.skipIf(not (using_pyro3 or using_pyro4),
- "Pyro or Pyro4 is not available")
- @unittest.category('parallel')
- class TestConvertSMPS_Pyro(_base,
- unittest.TestCase,
- _SMPSPyroTesterBase):
- def setUp(self):
- _SMPSPyroTesterBase.setUp(self)
- def _setup(self, options, servers=None):
- _SMPSPyroTesterBase._setup(self, options, servers=servers)
- class_names.append(TestConvertSMPS_Pyro.__name__ + "_"+test_class_suffix)
- globals()[class_names[-1]] = type(
- class_names[-1], (TestConvertSMPS_Pyro, unittest.TestCase), {})
-
- return tuple(globals()[name] for name in class_names)
-
-#
-# create the actual testing classes
-#
-
-farmer_examples_dir = join(pysp_examples_dir, "farmer")
-farmer_model_dir = join(farmer_examples_dir, "smps_model")
-farmer_data_dir = join(farmer_examples_dir, "scenariodata")
-
-create_test_classes('farmer',
- 'farmer',
- farmer_model_dir,
- farmer_data_dir,
- ('nightly',))
-
-piecewise_model = join(thisdir, "piecewise_model.py")
-piecewise_scenario_tree = join(thisdir, "piecewise_scenario_tree.py")
-create_test_classes('piecewise',
- 'piecewise',
- piecewise_model,
- piecewise_scenario_tree,
- ('nightly',))
-
-# uses the same baselines as 'piecewise',
-# except annotations are declared differently
-piecewise_model = join(thisdir, "piecewise_model_alt.py")
-create_test_classes('piecewise_alt',
- 'piecewise',
- piecewise_model,
- piecewise_scenario_tree,
- ('nightly',))
-
-if __name__ == "__main__":
- unittest.main()
diff --git a/pyomo/pysp/tests/convert/test_smps_embedded.py b/pyomo/pysp/tests/convert/test_smps_embedded.py
deleted file mode 100644
index f28151c5d6c..00000000000
--- a/pyomo/pysp/tests/convert/test_smps_embedded.py
+++ /dev/null
@@ -1,463 +0,0 @@
-# ___________________________________________________________________________
-#
-# Pyomo: Python Optimization Modeling Objects
-# Copyright 2017 National Technology and Engineering Solutions of Sandia, LLC
-# Under the terms of Contract DE-NA0003525 with National Technology and
-# Engineering Solutions of Sandia, LLC, the U.S. Government retains certain
-# rights in this software.
-# This software is distributed under the 3-clause BSD License.
-# ___________________________________________________________________________
-
-import sys
-import os
-import tempfile
-from os.path import join, dirname, abspath
-import difflib
-import filecmp
-import shutil
-
-from pyutilib.misc import import_file
-import pyutilib.th as unittest
-
-from six import StringIO
-
-thisdir = dirname(abspath(__file__))
-baselinedir = os.path.join(thisdir, "smps_embedded_baselines")
-pysp_examples_dir = \
- join(dirname(dirname(dirname(dirname(thisdir)))), "examples", "pysp")
-
-import pyomo.environ as pyo
-from pyomo.pysp.embeddedsp import (EmbeddedSP,
- StochasticDataAnnotation,
- TableDistribution,
- UniformDistribution,
- StageCostAnnotation,
- VariableStageAnnotation)
-from pyomo.pysp.convert.smps import convert_embedded
-
-baa99_basemodel = None
-piecewise_model_embedded = None
-def setUpModule():
- global baa99_basemodel
- global piecewise_model_embedded
- if "baa99_basemodel" in sys.modules:
- del sys.modules["baa99_basemodel"]
- fname = os.path.join(pysp_examples_dir, "baa99", "baa99_basemodel.py")
- if os.path.exists(fname+"c"):
- os.remove(fname+"c")
- baa99_basemodel = import_file(fname)
- if "piecewise_model_embedded" in sys.modules:
- del sys.modules["piecewise_model_embedded"]
- fname = os.path.join(thisdir, "piecewise_model_embedded.py")
- if os.path.exists(fname+"c"):
- os.remove(fname+"c")
- piecewise_model_embedded = import_file(fname)
-
-def tearDownModule():
- global baa99_basemodel
- global piecewise_model_embedded
- if "baa99_basemodel" in sys.modules:
- del sys.modules["baa99_basemodel"]
- baa99_basemodel = None
- if "piecewise_model_embedded" in sys.modules:
- del sys.modules["piecewise_model_embedded"]
- piecewise_model_embedded = None
-
-@unittest.category('nightly')
-class TestSMPSEmbeddedBad(unittest.TestCase):
-
- @classmethod
- def setUpClass(cls):
- cls.tmpdir = tempfile.mkdtemp(dir=thisdir)
-
- @classmethod
- def tearDownClass(cls):
- shutil.rmtree(cls.tmpdir,
- ignore_errors=True)
- cls.tmpdir = None
-
- def _get_base_model(self):
- model = pyo.ConcreteModel()
- model.x = pyo.Var()
- model.y = pyo.Var()
- model.d1 = pyo.Param(mutable=True, initialize=0.0)
- model.d2 = pyo.Param(mutable=True, initialize=0.0)
- model.d3 = pyo.Param(mutable=True, initialize=0.0)
- model.cost = pyo.Expression([1,2])
- model.cost[1].expr = model.x
- model.cost[2].expr = model.d1*model.y
- model.o = pyo.Objective(expr= model.cost[1]+model.cost[2])
- model.c1 = pyo.Constraint(expr= model.x >= 0)
- model.c2 = pyo.Constraint(expr= model.y*model.d2 >= model.d3)
- model.varstage = VariableStageAnnotation()
- model.varstage.declare(model.x, 1)
- model.varstage.declare(model.y, 2)
- model.stagecost = StageCostAnnotation()
- model.stagecost.declare(model.cost[1], 1)
- model.stagecost.declare(model.cost[2], 2)
- model.stochdata = StochasticDataAnnotation()
- model.stochdata.declare(
- model.d1,
- distribution=TableDistribution([0.0,1.0]))
- model.stochdata.declare(
- model.d2,
- distribution=TableDistribution([0.0,1.0]))
- model.stochdata.declare(
- model.d3,
- distribution=TableDistribution([0.0,1.0]))
-
- return model
-
- def test_makes_directory(self):
- tmpdir = tempfile.mkdtemp(dir=thisdir)
- self.assertTrue(os.path.exists(tmpdir))
- shutil.rmtree(tmpdir, ignore_errors=True)
- self.assertFalse(os.path.exists(tmpdir))
- sp = EmbeddedSP(self._get_base_model())
- convert_embedded(tmpdir, 'test', sp)
- self.assertTrue(os.path.exists(tmpdir))
- shutil.rmtree(tmpdir, ignore_errors=True)
-
- def test_too_many_stages(self):
- sp = EmbeddedSP(self._get_base_model())
- sp.time_stages = [1,2,3]
- with self.assertRaises(ValueError) as cm:
- convert_embedded(self.tmpdir, 'test', sp)
- self.assertEqual(str(cm.exception),
- ("SMPS conversion does not yet handle more "
- "than 2 time-stages"))
-
- def test_stoch_variable_bounds(self):
- # Note there is no way to test this starting from a real model
- # because the Pyomo AML does not return what is assigned
- # to the bounds without converting it to a raw value (e.g.,
- # we can't detect if a mutable Param was used in a bound)
- class _Junk(object):
- pass
- sp = _Junk()
- sp.time_stages = [1,2]
- sp.has_stochastic_variable_bounds = True
- self.assertEqual(sp.has_stochastic_variable_bounds, True)
- with self.assertRaises(ValueError) as cm:
- convert_embedded(self.tmpdir, 'test', sp)
- self.assertEqual(str(cm.exception),
- ("Problems with stochastic variables bounds "
- "can not be converted into an embedded "
- "SMPS representation"))
-
- def test_nonlinear_stoch_objective(self):
- model = self._get_base_model()
- model.cost[2].expr = model.y**2 + model.d1
- sp = EmbeddedSP(model)
- with self.assertRaises(ValueError) as cm:
- convert_embedded(self.tmpdir, 'test', sp)
- self.assertTrue(str(cm.exception).startswith(
- "Cannot output embedded SP representation for component "
- "'o'. The embedded SMPS writer does not yet handle "
- "stochastic nonlinear expressions. Invalid expression: "))
-
- def test_stoch_data_too_many_uses_objective(self):
- model = self._get_base_model()
- model.cost[2].expr = model.d1*model.y + model.d1
- sp = EmbeddedSP(model)
- with self.assertRaises(ValueError) as cm:
- convert_embedded(self.tmpdir, 'test', sp)
- self.assertEqual(
- str(cm.exception),
- ("Cannot output embedded SP representation for component "
- "'o'. The embedded SMPS writer does not yet handle the "
- "case where a stochastic data component appears in "
- "multiple expressions or locations within a single "
- "expression (e.g., multiple constraints, or multiple "
- "variable coefficients within a constraint). The "
- "parameter 'd1' appearing in component 'o' was "
- "previously encountered in another location in "
- "component 'o'."))
-
- def test_stoch_data_nontrivial_expression_objective1(self):
- model = self._get_base_model()
- model.cost[2].expr = -model.d1*model.y
- sp = EmbeddedSP(model)
- with self.assertRaises(ValueError) as cm:
- convert_embedded(self.tmpdir, 'test', sp)
- self.assertTrue(str(cm.exception).startswith(
- "Cannot output embedded SP representation for component "
- "'o'. The embedded SMPS writer does not yet handle the "
- "case where a stochastic data component appears "
- "in an expression that defines a single variable's "
- "coefficient. The coefficient for variable 'y' must be "
- "exactly set to parameter 'd1' in the expression. Invalid "
- "expression: "))
-
- def test_stoch_data_nontrivial_expression_objective2(self):
- model = self._get_base_model()
- model.q = pyo.Param(mutable=True, initialize=0.0)
- model.stochdata.declare(
- model.q,
- distribution=TableDistribution([0.0,1.0]))
- model.cost[2].expr = (model.d1+model.q)*model.y
- sp = EmbeddedSP(model)
- with self.assertRaises(ValueError) as cm:
- convert_embedded(self.tmpdir, 'test', sp)
- self.assertEqual(
- str(cm.exception),
- ("Cannot output embedded SP representation for component "
- "'o'. The embedded SMPS writer does not yet handle the "
- "case where multiple stochastic data components appear "
- "in an expression that defines a single variable's "
- "coefficient. The coefficient for variable 'y' involves "
- "stochastic parameters: ['d1', 'q']"))
-
- def test_bad_distribution_objective(self):
- model = self._get_base_model()
- del model.stochdata
- model.stochdata = StochasticDataAnnotation()
- model.stochdata.declare(
- model.d1,
- distribution=UniformDistribution(0.0,1.0))
- sp = EmbeddedSP(model)
- with self.assertRaises(ValueError) as cm:
- convert_embedded(self.tmpdir, 'test', sp)
- self.assertEqual(
- str(cm.exception),
- ("Invalid distribution type 'UniformDistribution' for stochastic "
- "parameter 'd1'. The embedded SMPS writer currently "
- "only supports discrete table distributions of type "
- "pyomo.pysp.embeddedsp.TableDistribution."))
-
- def test_nonlinear_stoch_constraint(self):
- model = self._get_base_model()
- model.c2._body = model.d2*model.y**2
- sp = EmbeddedSP(model)
- with self.assertRaises(ValueError) as cm:
- convert_embedded(self.tmpdir, 'test', sp)
- self.assertTrue(str(cm.exception).startswith(
- "Cannot output embedded SP representation for component "
- "'c2'. The embedded SMPS writer does not yet handle "
- "stochastic nonlinear expressions. Invalid expression: "))
-
- def test_stoch_constraint_body_constant(self):
- model = self._get_base_model()
- model.q = pyo.Param(mutable=True, initialize=0.0)
- model.stochdata.declare(
- model.q,
- distribution=TableDistribution([0.0,1.0]))
- model.c2._body = model.d2*model.y + model.q
- sp = EmbeddedSP(model)
- with self.assertRaises(ValueError) as cm:
- convert_embedded(self.tmpdir, 'test', sp)
- self.assertEqual(
- str(cm.exception),
- ("Cannot output embedded SP representation for component "
- "'c2'. The embedded SMPS writer does not yet handle the "
- "case where a stochastic data appears in the body of a "
- "constraint expression that must be moved to the bounds. "
- "The constraint must be written so that the stochastic "
- "element 'q' is a simple bound or a simple variable "
- "coefficient."))
-
- def test_stoch_range_constraint(self):
- model = self._get_base_model()
- model.q = pyo.Param(mutable=True, initialize=0.0)
- model.stochdata.declare(
- model.q,
- distribution=TableDistribution([0.0,1.0]))
- model.c3 = pyo.Constraint(expr=pyo.inequality(model.q, model.y, 0))
- sp = EmbeddedSP(model)
- with self.assertRaises(ValueError) as cm:
- convert_embedded(self.tmpdir, 'test', sp)
- self.assertEqual(
- str(cm.exception),
- ("Cannot output embedded SP representation for component "
- "'c3'. The embedded SMPS writer does not yet handle range "
- "constraints that have stochastic data."))
-
- def test_stoch_data_too_many_uses_constraint(self):
- model = self._get_base_model()
- model.c2._lower = model.d2
- sp = EmbeddedSP(model)
- with self.assertRaises(ValueError) as cm:
- convert_embedded(self.tmpdir, 'test', sp)
- self.assertEqual(
- str(cm.exception),
- ("Cannot output embedded SP representation for component "
- "'c2'. The embedded SMPS writer does not yet handle the "
- "case where a stochastic data component appears in "
- "multiple expressions or locations within a single "
- "expression (e.g., multiple constraints, or multiple "
- "variable coefficients within a constraint). The "
- "parameter 'd2' appearing in component 'c2' was "
- "previously encountered in another location in "
- "component 'c2'."))
-
- def test_stoch_data_nontrivial_expression_constraint1(self):
- model = self._get_base_model()
- model.c2._body = -model.d2*model.y
- sp = EmbeddedSP(model)
- with self.assertRaises(ValueError) as cm:
- convert_embedded(self.tmpdir, 'test', sp)
- self.assertTrue(str(cm.exception).startswith(
- "Cannot output embedded SP representation for component "
- "'c2'. The embedded SMPS writer does not yet handle the "
- "case where a stochastic data component appears "
- "in an expression that defines a single variable's "
- "coefficient. The coefficient for variable 'y' must be "
- "exactly set to parameter 'd2' in the expression. Invalid "
- "expression: "))
-
- def test_stoch_data_nontrivial_expression_constraint2(self):
- model = self._get_base_model()
- model.q = pyo.Param(mutable=True, initialize=0.0)
- model.stochdata.declare(
- model.q,
- distribution=TableDistribution([0.0,1.0]))
- model.c2._body = (model.d2+model.q)*model.y
- sp = EmbeddedSP(model)
- with self.assertRaises(ValueError) as cm:
- convert_embedded(self.tmpdir, 'test', sp)
- self.assertEqual(
- str(cm.exception),
- ("Cannot output embedded SP representation for component "
- "'c2'. The embedded SMPS writer does not yet handle the "
- "case where multiple stochastic data components appear "
- "in an expression that defines a single variable's "
- "coefficient. The coefficient for variable 'y' involves "
- "stochastic parameters: ['d2', 'q']"))
-
- def test_bad_distribution_constraint(self):
- model = self._get_base_model()
- del model.stochdata
- model.stochdata = StochasticDataAnnotation()
- model.stochdata.declare(
- model.d2,
- distribution=UniformDistribution(0.0,1.0))
- sp = EmbeddedSP(model)
- with self.assertRaises(ValueError) as cm:
- convert_embedded(self.tmpdir, 'test', sp)
- self.assertEqual(
- str(cm.exception),
- ("Invalid distribution type 'UniformDistribution' for stochastic "
- "parameter 'd2'. The embedded SMPS writer currently "
- "only supports discrete table distributions of type "
- "pyomo.pysp.embeddedsp.TableDistribution."))
-
-@unittest.category('nightly')
-class TestSMPSEmbedded(unittest.TestCase):
-
- def _diff(self, baselinedir, outputdir, dc=None):
- if dc is None:
- dc = filecmp.dircmp(baselinedir,
- outputdir,
- ['.svn'])
- if dc.left_only:
- self.fail("Files or subdirectories missing from output: "
- +str(dc.left_only))
- if dc.right_only:
- self.fail("Files or subdirectories missing from baseline: "
- +str(dc.right_only))
- for name in dc.diff_files:
- fromfile = join(dc.left, name)
- tofile = join(dc.right, name)
- with open(fromfile, 'r') as f_from:
- fromlines = f_from.readlines()
- with open(tofile, 'r') as f_to:
- tolines = f_to.readlines()
- diff = difflib.context_diff(fromlines, tolines,
- fromfile+" (baseline)",
- tofile+" (output)")
- diff = list(diff)
- # The filecmp.dircmp function does a weaker
- # comparison that can sometimes lead to false
- # positives. Make sure the true diff is not empty
- # before we call this a failure.
- if len(diff) > 0:
- out = StringIO()
- out.write("Output file does not match baseline:\n")
- for line in diff:
- out.write(line)
- self.fail(out.getvalue())
- for subdir in dc.subdirs:
- self._diff(join(baselinedir, subdir),
- join(outputdir, subdir),
- dc=dc.subdirs[subdir])
- shutil.rmtree(outputdir, ignore_errors=True)
-
- def _run(self, sp, basename, **kwds):
- class_name, test_name = self.id().split('.')[-2:]
- output_directory = join(thisdir, class_name+"."+test_name)
- shutil.rmtree(output_directory,
- ignore_errors=True)
- os.makedirs(output_directory)
- convert_embedded(output_directory, basename, sp, **kwds)
- return output_directory
-
- def _get_baa99_sp(self):
- model = baa99_basemodel.model.clone()
- model.varstage = VariableStageAnnotation()
- model.varstage.declare(model.x1, 1)
- model.varstage.declare(model.x2, 1)
-
- model.stagecost = StageCostAnnotation()
- model.stagecost.declare(model.FirstStageCost, 1)
- model.stagecost.declare(model.SecondStageCost, 2)
-
- model.stochdata = StochasticDataAnnotation()
- model.stochdata.declare(
- model.d1_rhs,
- distribution=TableDistribution(model.d1_rhs_table))
- model.stochdata.declare(
- model.d2_rhs,
- distribution=TableDistribution(model.d2_rhs_table))
-
- return EmbeddedSP(model)
-
- def test_baa99_embedded_LP_symbolic_labels(self):
- baseline_directory = os.path.join(
- baselinedir,
- 'baa99_embedded_LP_symbolic_names_baseline')
- output_directory = self._run(
- self._get_baa99_sp(),
- 'baa99',
- core_format='lp',
- io_options={'symbolic_solver_labels':True})
- self._diff(baseline_directory,
- output_directory)
-
- def test_baa99_embedded_MPS_symbolic_labels(self):
- baseline_directory = os.path.join(
- baselinedir,
- 'baa99_embedded_MPS_symbolic_names_baseline')
- output_directory = self._run(
- self._get_baa99_sp(),
- 'baa99',
- core_format='mps',
- io_options={'symbolic_solver_labels':True})
- self._diff(baseline_directory,
- output_directory)
-
- def test_piecewise_embedded_LP_symbolic_labels(self):
- baseline_directory = os.path.join(
- baselinedir,
- 'piecewise_embedded_LP_symbolic_names_baseline')
- output_directory = self._run(
- piecewise_model_embedded.create_embedded(),
- 'piecewise',
- core_format='lp',
- io_options={'symbolic_solver_labels':True})
- self._diff(baseline_directory,
- output_directory)
-
- def test_piecewise_embedded_MPS_symbolic_labels(self):
- baseline_directory = os.path.join(
- baselinedir,
- 'piecewise_embedded_MPS_symbolic_names_baseline')
- output_directory = self._run(
- piecewise_model_embedded.create_embedded(),
- 'piecewise',
- core_format='mps',
- io_options={'symbolic_solver_labels':True})
- self._diff(baseline_directory,
- output_directory)
-
-if __name__ == "__main__":
- unittest.main()
diff --git a/pyomo/pysp/tests/convert/utils.py b/pyomo/pysp/tests/convert/utils.py
deleted file mode 100644
index b5e7d17435c..00000000000
--- a/pyomo/pysp/tests/convert/utils.py
+++ /dev/null
@@ -1,83 +0,0 @@
-# ___________________________________________________________________________
-#
-# Pyomo: Python Optimization Modeling Objects
-# Copyright 2017 National Technology and Engineering Solutions of Sandia, LLC
-# Under the terms of Contract DE-NA0003525 with National Technology and
-# Engineering Solutions of Sandia, LLC, the U.S. Government retains certain
-# rights in this software.
-# This software is distributed under the 3-clause BSD License.
-# ___________________________________________________________________________
-
-from pyomo.core import *
-from pyomo.pysp.scenariotree.tree_structure_model import \
- ScenarioTreeModelFromNetworkX
-from pyomo.pysp.annotations import (ConstraintStageAnnotation,
- StochasticConstraintBoundsAnnotation,
- StochasticConstraintBodyAnnotation,
- StochasticObjectiveAnnotation,
- StochasticVariableBoundsAnnotation)
-
-def simple_twostage_scenario_tree():
- from pyomo.pysp.scenariotree.tree_structure_model \
- import CreateConcreteTwoStageScenarioTreeModel
- st_model = CreateConcreteTwoStageScenarioTreeModel(2)
- first_stage = st_model.Stages.first()
- second_stage = st_model.Stages.last()
- # First Stage
- st_model.StageCost[first_stage] = 'StageCost[1]'
- st_model.StageVariables[first_stage].add('x')
- # Second Stage
- st_model.StageCost[second_stage] = 'StageCost[2]'
- st_model.StageVariables[second_stage].add('y')
- return st_model
-
-def simple_twostage_model():
- model = ConcreteModel()
- model.x = Var()
- model.y = Var()
- model.StageCost = Expression([1,2])
- model.StageCost.add(1, model.x)
- model.StageCost.add(2, model.y)
- model.c = ConstraintList()
- model.c.add(model.x >= 10)
- model.c.add(model.y >= 10)
- model.o = Objective(expr=sum_product(model.StageCost))
- return model
-
-def simple_threestage_scenario_tree():
- from pyomo.pysp.scenariotree.tree_structure_model \
- import CreateConcreteTwoStageScenarioTreeModel
- import networkx
- G = networkx.balanced_tree(2,2,networkx.DiGraph())
- st_model = ScenarioTreeModelFromNetworkX(
- G,
- edge_probability_attribute=None)
- first_stage = st_model.Stages.first()
- second_stage = st_model.Stages.next(first_stage)
- third_stage = st_model.Stages.last()
- # First Stage
- st_model.StageCost[first_stage] = 'StageCost[1]'
- st_model.StageVariables[first_stage].add('x')
- # Second Stage
- st_model.StageCost[second_stage] = 'StageCost[2]'
- st_model.StageVariables[second_stage].add('y')
- # Third Stage
- st_model.StageCost[third_stage] = 'StageCost[3]'
- st_model.StageVariables[second_stage].add('z')
- return st_model
-
-def simple_threestage_model():
- model = ConcreteModel()
- model.x = Var()
- model.y = Var()
- model.z = Var()
- model.StageCost = Expression([1,2,3])
- model.StageCost(1, model.x)
- model.StageCost(2, model.y)
- model.StageCost(3, model.z)
- model.c = ConstraintList()
- model.c.add(model.x >= 10)
- model.c.add(model.y >= 10)
- model.c.add(model.z >= 10)
- model.o = Objective(expr=sum_product(model.StageCost))
- return model
diff --git a/pyomo/pysp/tests/evalxhat/__init__.py b/pyomo/pysp/tests/evalxhat/__init__.py
deleted file mode 100644
index f070f0e2400..00000000000
--- a/pyomo/pysp/tests/evalxhat/__init__.py
+++ /dev/null
@@ -1,12 +0,0 @@
-# ___________________________________________________________________________
-#
-# Pyomo: Python Optimization Modeling Objects
-# Copyright 2017 National Technology and Engineering Solutions of Sandia, LLC
-# Under the terms of Contract DE-NA0003525 with National Technology and
-# Engineering Solutions of Sandia, LLC, the U.S. Government retains certain
-# rights in this software.
-# This software is distributed under the 3-clause BSD License.
-# ___________________________________________________________________________
-#
-# Unit tests for PySP evalxhat script
-#
diff --git a/pyomo/pysp/tests/evalxhat/baa99_ef_costs.json b/pyomo/pysp/tests/evalxhat/baa99_ef_costs.json
deleted file mode 100644
index 7d3d5f95a0a..00000000000
--- a/pyomo/pysp/tests/evalxhat/baa99_ef_costs.json
+++ /dev/null
@@ -1,627 +0,0 @@
-{
- "Scenario1": 744.2369635576001,
- "Scenario10": 407.9273030680001,
- "Scenario100": -422.444980954,
- "Scenario101": 400.47968775760006,
- "Scenario102": 315.4291459660002,
- "Scenario103": 263.08393524400014,
- "Scenario104": 223.1640418180001,
- "Scenario105": 189.8712519940001,
- "Scenario106": 160.67086837600016,
- "Scenario107": 134.20375815400007,
- "Scenario108": 109.64160299800005,
- "Scenario109": 86.43032798800016,
- "Scenario11": 386.3088804520001,
- "Scenario110": 64.17002726800013,
- "Scenario111": 42.55160465200004,
- "Scenario112": 21.319701064000128,
- "Scenario113": 0.2485593640000161,
- "Scenario114": -20.875852615999975,
- "Scenario115": -42.27141491599991,
- "Scenario116": -64.17617261599992,
- "Scenario117": -86.86873481599991,
- "Scenario118": -110.69776115599996,
- "Scenario119": -136.12981745599996,
- "Scenario12": 365.0769768640001,
- "Scenario120": -163.83543203600004,
- "Scenario121": -194.86167329600005,
- "Scenario122": -231.02910725599997,
- "Scenario123": -276.0455270959998,
- "Scenario124": -339.90623141599997,
- "Scenario125": -410.16125939999995,
- "Scenario126": 346.38777406960014,
- "Scenario127": 261.3372322780001,
- "Scenario128": 208.99202155600005,
- "Scenario129": 169.07212813,
- "Scenario13": 344.005835164,
- "Scenario130": 135.779338306,
- "Scenario131": 106.57895468800007,
- "Scenario132": 80.1118444660001,
- "Scenario133": 55.549689310000076,
- "Scenario134": 32.33841430000018,
- "Scenario135": 10.078113580000036,
- "Scenario136": -11.54030903599994,
- "Scenario137": -32.77221262399996,
- "Scenario138": -53.84335432399996,
- "Scenario139": -74.96776630399995,
- "Scenario14": 322.881423184,
- "Scenario140": -96.36332860399989,
- "Scenario141": -118.2680863039999,
- "Scenario142": -140.960648504,
- "Scenario143": -164.78967484399993,
- "Scenario144": -190.22173114399982,
- "Scenario145": -217.9273457239998,
- "Scenario146": -248.95358698400003,
- "Scenario147": -285.12102094399995,
- "Scenario148": -330.137440784,
- "Scenario149": -393.99814510399995,
- "Scenario15": 301.4858608840001,
- "Scenario150": -370.58181035999985,
- "Scenario151": 296.73471152360014,
- "Scenario152": 211.6841697320001,
- "Scenario153": 159.33895901000005,
- "Scenario154": 119.41906558400012,
- "Scenario155": 86.12627576,
- "Scenario156": 56.925892142000066,
- "Scenario157": 30.458781920000092,
- "Scenario158": 5.896626763999961,
- "Scenario159": -17.314648245999933,
- "Scenario16": 279.5811031840001,
- "Scenario160": -39.57494896599985,
- "Scenario161": -61.19337158199994,
- "Scenario162": -82.42527516999996,
- "Scenario163": -103.49641686999996,
- "Scenario164": -124.62082884999995,
- "Scenario165": -146.01639115,
- "Scenario166": -167.92114885000012,
- "Scenario167": -190.61371105,
- "Scenario168": -214.44273738999993,
- "Scenario169": -239.87479369000005,
- "Scenario17": 256.8885409840001,
- "Scenario170": -267.58040827,
- "Scenario171": -298.60664953,
- "Scenario172": -334.7740834900002,
- "Scenario173": -379.79050333,
- "Scenario174": -443.65120764999995,
- "Scenario175": -334.25030118000006,
- "Scenario176": 250.21137438360017,
- "Scenario177": 165.16083259200013,
- "Scenario178": 112.81562187000009,
- "Scenario179": 72.89572844400004,
- "Scenario18": 233.05951464400005,
- "Scenario180": 39.60293862000003,
- "Scenario181": 10.4025550020001,
- "Scenario182": -16.064555219999875,
- "Scenario183": -40.62671037599989,
- "Scenario184": -63.83798538599979,
- "Scenario185": -86.09828610599993,
- "Scenario186": -107.71670872199991,
- "Scenario187": -128.94861230999993,
- "Scenario188": -150.01975400999993,
- "Scenario189": -171.14416599000003,
- "Scenario19": 207.62745834400005,
- "Scenario190": -192.53972828999997,
- "Scenario191": -214.44448598999986,
- "Scenario192": -237.13704818999997,
- "Scenario193": -260.9660745299999,
- "Scenario194": -286.3981308299998,
- "Scenario195": -314.10374540999976,
- "Scenario196": -345.12998667,
- "Scenario197": -381.2974206299999,
- "Scenario198": -426.31384046999995,
- "Scenario199": -490.1745447899999,
- "Scenario2": 659.1864217660001,
- "Scenario20": 179.92184376399996,
- "Scenario200": -300.2088349799998,
- "Scenario201": 205.90684851160017,
- "Scenario202": 120.85630672000013,
- "Scenario203": 68.51109599800009,
- "Scenario204": 28.591202572000157,
- "Scenario205": -4.7015872519999675,
- "Scenario206": -33.9019708699999,
- "Scenario207": -60.369081091999874,
- "Scenario208": -84.931236248,
- "Scenario209": -108.1425112579999,
- "Scenario21": 148.89560250400018,
- "Scenario210": -130.40281197799982,
- "Scenario211": -152.0212345939998,
- "Scenario212": -173.25313818199982,
- "Scenario213": -194.3242798819996,
- "Scenario214": -215.44869186199992,
- "Scenario215": -236.84425416199986,
- "Scenario216": -258.749011862,
- "Scenario217": -281.44157406199986,
- "Scenario218": -305.270600402,
- "Scenario219": -330.7026567019999,
- "Scenario22": 112.72816854400014,
- "Scenario220": -358.4082712819999,
- "Scenario221": -389.4345125420001,
- "Scenario222": -425.60194650200003,
- "Scenario223": -470.61836634199983,
- "Scenario224": -534.479070662,
- "Scenario225": -267.79088921999994,
- "Scenario226": 163.1404168936001,
- "Scenario227": 78.08987510200006,
- "Scenario228": 25.744664380000017,
- "Scenario229": -14.175229046000027,
- "Scenario23": 67.71174870400012,
- "Scenario230": -47.46801887000004,
- "Scenario231": -76.66840248799997,
- "Scenario232": -103.13551270999994,
- "Scenario233": -127.69766786599996,
- "Scenario234": -150.90894287599986,
- "Scenario235": -173.169243596,
- "Scenario236": -194.78766621199986,
- "Scenario237": -216.0195698000001,
- "Scenario238": -237.09071149999988,
- "Scenario239": -258.21512348,
- "Scenario24": 3.8510443840000335,
- "Scenario240": -279.6106857799999,
- "Scenario241": -301.5154434799998,
- "Scenario242": -324.20800568000016,
- "Scenario243": -348.03703201999986,
- "Scenario244": -373.46908831999974,
- "Scenario245": -401.17470289999994,
- "Scenario246": -432.20094415999995,
- "Scenario247": -468.3683781199999,
- "Scenario248": -513.3847979600001,
- "Scenario249": -577.2455022799999,
- "Scenario25": -139.26274769600002,
- "Scenario250": -236.49837827999988,
- "Scenario251": 121.36812867560013,
- "Scenario252": 36.31758688400009,
- "Scenario253": -16.027623837999954,
- "Scenario254": -55.947517263999885,
- "Scenario255": -89.24030708800001,
- "Scenario256": -118.44069070599994,
- "Scenario257": -144.9078009279998,
- "Scenario258": -169.46995608400005,
- "Scenario259": -192.68123109400005,
- "Scenario26": 619.5565402636,
- "Scenario260": -214.94153181399986,
- "Scenario261": -236.55995442999995,
- "Scenario262": -257.79185801799997,
- "Scenario263": -278.86299971799997,
- "Scenario264": -299.98741169799985,
- "Scenario265": -321.382973998,
- "Scenario266": -343.2877316979999,
- "Scenario267": -365.980293898,
- "Scenario268": -389.80932023799994,
- "Scenario269": -415.2413765379998,
- "Scenario27": 534.5059984720001,
- "Scenario270": -442.946991118,
- "Scenario271": -473.97323237800003,
- "Scenario272": -510.14066633799996,
- "Scenario273": -555.157086178,
- "Scenario274": -546.68041334,
- "Scenario275": -205.93328934,
- "Scenario276": 80.12522884960015,
- "Scenario277": -4.925312941999891,
- "Scenario278": -57.27052366399994,
- "Scenario279": -97.19041708999998,
- "Scenario28": 482.16078775000005,
- "Scenario280": -130.483206914,
- "Scenario281": -159.68359053200004,
- "Scenario282": -186.150700754,
- "Scenario283": -210.71285591000003,
- "Scenario284": -233.92413092000004,
- "Scenario285": -256.18443164000007,
- "Scenario286": -277.80285425599993,
- "Scenario287": -299.0347578440002,
- "Scenario288": -320.10589954399995,
- "Scenario289": -341.23031152400006,
- "Scenario29": 442.24089432400007,
- "Scenario290": -362.625873824,
- "Scenario291": -384.5306315239999,
- "Scenario292": -407.223193724,
- "Scenario293": -431.0522200639999,
- "Scenario294": -456.4842763639998,
- "Scenario295": -484.1898909439998,
- "Scenario296": -515.216132204,
- "Scenario297": -551.383566164,
- "Scenario298": -596.399986004,
- "Scenario299": -516.5026817600002,
- "Scenario3": 606.841211044,
- "Scenario30": 408.94810450000006,
- "Scenario300": -175.75555776,
- "Scenario301": 38.98633306760007,
- "Scenario302": -46.06420872399997,
- "Scenario303": -98.40941944600002,
- "Scenario304": -138.32931287199995,
- "Scenario305": -171.62210269599984,
- "Scenario306": -200.82248631399978,
- "Scenario307": -227.28959653599975,
- "Scenario308": -251.851751692,
- "Scenario309": -275.063026702,
- "Scenario31": 379.74772088200007,
- "Scenario310": -297.3233274219998,
- "Scenario311": -318.9417500379999,
- "Scenario312": -340.1736536259999,
- "Scenario313": -361.2447953259999,
- "Scenario314": -382.3692073059998,
- "Scenario315": -403.76476960599996,
- "Scenario316": -425.6695273060001,
- "Scenario317": -448.36208950599996,
- "Scenario318": -472.1911158460001,
- "Scenario319": -497.623172146,
- "Scenario32": 353.2806106600001,
- "Scenario320": -525.328786726,
- "Scenario321": -556.355027986,
- "Scenario322": -592.5224619460001,
- "Scenario323": -637.5388817859999,
- "Scenario324": -486.40105070000016,
- "Scenario325": -145.65392670000006,
- "Scenario326": -2.4664307523999014,
- "Scenario327": -87.51697254399994,
- "Scenario328": -139.86218326599987,
- "Scenario329": -179.7820766919998,
- "Scenario33": 328.7184555040001,
- "Scenario330": -213.07486651599982,
- "Scenario331": -242.27525013399975,
- "Scenario332": -268.7423603559997,
- "Scenario333": -293.30451551199997,
- "Scenario334": -316.515790522,
- "Scenario335": -338.7760912419998,
- "Scenario336": -360.39451385799987,
- "Scenario337": -381.6264174459999,
- "Scenario338": -402.6975591459999,
- "Scenario339": -423.82197112599977,
- "Scenario34": 305.5071804940002,
- "Scenario340": -445.21753342599993,
- "Scenario341": -467.12229112600005,
- "Scenario342": -489.81485332599993,
- "Scenario343": -513.6438796660001,
- "Scenario344": -539.075935966,
- "Scenario345": -566.781550546,
- "Scenario346": -597.8077918060002,
- "Scenario347": -633.9752257660001,
- "Scenario348": -608.1190560999997,
- "Scenario349": -456.06976010000005,
- "Scenario35": 283.24687977400004,
- "Scenario350": -115.32263610000007,
- "Scenario351": -44.673827452399905,
- "Scenario352": -129.72436924399994,
- "Scenario353": -182.06957996599988,
- "Scenario354": -221.98947339199992,
- "Scenario355": -255.28226321599993,
- "Scenario356": -284.48264683399987,
- "Scenario357": -310.94975705599984,
- "Scenario358": -335.5119122120001,
- "Scenario359": -358.7231872220001,
- "Scenario36": 261.62845715800006,
- "Scenario360": -380.9834879419999,
- "Scenario361": -402.601910558,
- "Scenario362": -423.833814146,
- "Scenario363": -444.904955846,
- "Scenario364": -466.0293678259999,
- "Scenario365": -487.42493012600005,
- "Scenario366": -509.32968782599994,
- "Scenario367": -532.022250026,
- "Scenario368": -555.851276366,
- "Scenario369": -581.2833326660001,
- "Scenario37": 240.39655357000004,
- "Scenario370": -608.9889472460001,
- "Scenario371": -640.0151885060001,
- "Scenario372": -676.182622466,
- "Scenario373": -577.2355951000001,
- "Scenario374": -425.18629910000016,
- "Scenario375": -84.43917510000006,
- "Scenario376": -88.1344145723998,
- "Scenario377": -173.18495636399996,
- "Scenario378": -225.53016708599978,
- "Scenario379": -265.4500605119998,
- "Scenario38": 219.32541187000004,
- "Scenario380": -298.74285033599983,
- "Scenario381": -327.94323395399977,
- "Scenario382": -354.41034417599997,
- "Scenario383": -378.972499332,
- "Scenario384": -402.183774342,
- "Scenario385": -424.4440750619998,
- "Scenario386": -446.06249767799966,
- "Scenario387": -467.2944012659999,
- "Scenario388": -488.3655429659997,
- "Scenario389": -509.489954946,
- "Scenario39": 198.20099989000005,
- "Scenario390": -530.885517246,
- "Scenario391": -552.7902749460001,
- "Scenario392": -575.482837146,
- "Scenario393": -599.3118634859999,
- "Scenario394": -624.743919786,
- "Scenario395": -652.449534366,
- "Scenario396": -683.475775626,
- "Scenario397": -652.6171174999998,
- "Scenario398": -545.4351654999999,
- "Scenario399": -393.3858694999998,
- "Scenario4": 566.9213176180001,
- "Scenario40": 176.8054375900001,
- "Scenario400": -52.63874550000003,
- "Scenario401": -133.45166619239978,
- "Scenario402": -218.50220798399994,
- "Scenario403": -270.847418706,
- "Scenario404": -310.76731213200003,
- "Scenario405": -344.06010195600004,
- "Scenario406": -373.260485574,
- "Scenario407": -399.72759579599995,
- "Scenario408": -424.28975095199996,
- "Scenario409": -447.50102596199997,
- "Scenario41": 154.9006798900001,
- "Scenario410": -469.761326682,
- "Scenario411": -491.37974929799987,
- "Scenario412": -512.6116528860001,
- "Scenario413": -533.6827945859999,
- "Scenario414": -554.807206566,
- "Scenario415": -576.2027688659999,
- "Scenario416": -598.1075265659998,
- "Scenario417": -620.8000887659999,
- "Scenario418": -644.6291151060001,
- "Scenario419": -670.061171406,
- "Scenario42": 132.2081176900001,
- "Scenario420": -697.766785986,
- "Scenario421": -705.5710908999998,
- "Scenario422": -619.4581528999998,
- "Scenario423": -512.2762008999997,
- "Scenario424": -360.2269048999998,
- "Scenario425": -19.47978089999981,
- "Scenario426": -181.4063502324001,
- "Scenario427": -266.456892024,
- "Scenario428": -318.80210274599983,
- "Scenario429": -358.7219961719999,
- "Scenario43": 108.37909135000018,
- "Scenario430": -392.0147859959999,
- "Scenario431": -421.2151696139998,
- "Scenario432": -447.682279836,
- "Scenario433": -472.24443499200004,
- "Scenario434": -495.45571000200005,
- "Scenario435": -517.7160107219999,
- "Scenario436": -539.3344333379997,
- "Scenario437": -560.566336926,
- "Scenario438": -581.6374786259997,
- "Scenario439": -602.7618906060001,
- "Scenario44": 82.94703505000018,
- "Scenario440": -624.157452906,
- "Scenario441": -646.0622106059999,
- "Scenario442": -668.7547728059998,
- "Scenario443": -692.5837991459999,
- "Scenario444": -718.0158554459998,
- "Scenario445": -744.3543007,
- "Scenario446": -670.4822976999998,
- "Scenario447": -584.3693597,
- "Scenario448": -477.1874076999999,
- "Scenario449": -325.13811169999997,
- "Scenario45": 55.241420470000094,
- "Scenario450": 15.609012300000131,
- "Scenario451": -233.08023201239996,
- "Scenario452": -318.1307738039999,
- "Scenario453": -370.4759845259997,
- "Scenario454": -410.39587795199975,
- "Scenario455": -443.68866777599976,
- "Scenario456": -472.8890513939997,
- "Scenario457": -499.35616161599967,
- "Scenario458": -523.9183167719999,
- "Scenario459": -547.1295917819999,
- "Scenario46": 24.215179210000088,
- "Scenario460": -569.3898925019997,
- "Scenario461": -591.0083151179998,
- "Scenario462": -612.2402187059998,
- "Scenario463": -633.3113604059998,
- "Scenario464": -654.4357723859997,
- "Scenario465": -675.8313346859999,
- "Scenario466": -697.736092386,
- "Scenario467": -720.4286545859999,
- "Scenario468": -744.257680926,
- "Scenario469": -769.6897372259999,
- "Scenario47": -11.952254749999952,
- "Scenario470": -706.5441433,
- "Scenario471": -632.6721403,
- "Scenario472": -546.5592023,
- "Scenario473": -439.3772502999999,
- "Scenario474": -287.3279543,
- "Scenario475": 53.4191697,
- "Scenario476": -290.0905048724002,
- "Scenario477": -375.1410466640001,
- "Scenario478": -427.4862573859999,
- "Scenario479": -467.40615081199996,
- "Scenario48": -56.96867458999998,
- "Scenario480": -500.698940636,
- "Scenario481": -529.8993242539999,
- "Scenario482": -556.3664344759999,
- "Scenario483": -580.9285896320001,
- "Scenario484": -604.1398646420001,
- "Scenario485": -626.4001653619999,
- "Scenario486": -648.018587978,
- "Scenario487": -669.250491566,
- "Scenario488": -690.321633266,
- "Scenario489": -711.4460452459999,
- "Scenario49": -120.82937890999983,
- "Scenario490": -732.8416075460001,
- "Scenario491": -754.746365246,
- "Scenario492": -777.4389274459999,
- "Scenario493": -791.3475734999998,
- "Scenario494": -730.7950584999998,
- "Scenario495": -664.8293095,
- "Scenario496": -590.9573065000001,
- "Scenario497": -504.8443685000001,
- "Scenario498": -397.6624165000002,
- "Scenario499": -245.61312050000004,
- "Scenario5": 533.6285277940001,
- "Scenario50": -263.9431709899999,
- "Scenario500": 95.13400349999995,
- "Scenario501": -355.0907134124001,
- "Scenario502": -440.141255204,
- "Scenario503": -492.4864659259998,
- "Scenario504": -532.4063593519999,
- "Scenario505": -565.6991491759999,
- "Scenario506": -594.8995327939998,
- "Scenario507": -621.366643016,
- "Scenario508": -645.928798172,
- "Scenario509": -669.140073182,
- "Scenario51": 531.6673393776,
- "Scenario510": -691.4003739019998,
- "Scenario511": -713.0187965179997,
- "Scenario512": -734.250700106,
- "Scenario513": -755.3218418059997,
- "Scenario514": -776.446253786,
- "Scenario515": -797.841816086,
- "Scenario516": -819.7465737860001,
- "Scenario517": -800.5222222999997,
- "Scenario518": -743.7864452999999,
- "Scenario519": -683.2339303,
- "Scenario52": 446.61679758600013,
- "Scenario520": -617.2681813,
- "Scenario521": -543.3961782999999,
- "Scenario522": -457.2832403000001,
- "Scenario523": -350.10128829999996,
- "Scenario524": -198.05199230000005,
- "Scenario525": 142.69513169999993,
- "Scenario526": -399.5739063064001,
- "Scenario527": -484.624448098,
- "Scenario528": -536.9696588199998,
- "Scenario529": -576.8895522459999,
- "Scenario53": 394.27158686400014,
- "Scenario530": -610.1823420699999,
- "Scenario531": -639.3827256879998,
- "Scenario532": -665.8498359099998,
- "Scenario533": -690.411991066,
- "Scenario534": -713.623266076,
- "Scenario535": -735.8835667959999,
- "Scenario536": -757.501989412,
- "Scenario537": -778.733893,
- "Scenario538": -799.8050347,
- "Scenario539": -820.9294466799998,
- "Scenario54": 354.3516934380001,
- "Scenario540": -842.32500898,
- "Scenario541": -790.1708239799999,
- "Scenario542": -736.1409139799999,
- "Scenario543": -679.4051369800001,
- "Scenario544": -618.85262198,
- "Scenario545": -552.88687298,
- "Scenario546": -479.01486998000007,
- "Scenario547": -392.90193197999986,
- "Scenario548": -285.71997997999995,
- "Scenario549": -133.67068398000004,
- "Scenario55": 321.0589036140001,
- "Scenario550": 207.07644001999995,
- "Scenario551": -274.94245230640024,
- "Scenario552": -359.99299409800017,
- "Scenario553": -412.33820482,
- "Scenario554": -452.25809824600003,
- "Scenario555": -485.55088807000004,
- "Scenario556": -514.751271688,
- "Scenario557": -541.21838191,
- "Scenario558": -565.7805370660002,
- "Scenario559": -588.9918120760002,
- "Scenario56": 291.85851999600015,
- "Scenario560": -611.252112796,
- "Scenario561": -632.8705354120001,
- "Scenario562": -654.1024390000001,
- "Scenario563": -675.1735807000001,
- "Scenario564": -696.29799268,
- "Scenario565": -717.6935549800002,
- "Scenario566": -665.5393699800001,
- "Scenario567": -611.5094599800001,
- "Scenario568": -554.7736829800002,
- "Scenario569": -494.22116798000013,
- "Scenario57": 265.3914097740002,
- "Scenario570": -428.2554189800002,
- "Scenario571": -354.3834159800002,
- "Scenario572": -268.27047798,
- "Scenario573": -161.0885259800002,
- "Scenario574": -9.039229980000187,
- "Scenario575": 331.7078940199998,
- "Scenario576": -72.4411623064002,
- "Scenario577": -157.49170409800013,
- "Scenario578": -209.83691481999983,
- "Scenario579": -249.7568082460001,
- "Scenario58": 240.82925461800005,
- "Scenario580": -283.0495980700001,
- "Scenario581": -312.2499816879998,
- "Scenario582": -338.7170919099998,
- "Scenario583": -363.27924706600004,
- "Scenario584": -386.49052207600005,
- "Scenario585": -408.7508227960001,
- "Scenario586": -430.36924541199994,
- "Scenario587": -451.60114899999996,
- "Scenario588": -472.6722907000002,
- "Scenario589": -493.79670268000007,
- "Scenario59": 217.61797960800016,
- "Scenario590": -515.1922649800002,
- "Scenario591": -463.03807998000013,
- "Scenario592": -409.00816998000016,
- "Scenario593": -352.2723929800003,
- "Scenario594": -291.7198779800002,
- "Scenario595": -225.75412898000025,
- "Scenario596": -151.88212598000018,
- "Scenario597": -65.7691879800002,
- "Scenario598": 41.41276401999971,
- "Scenario599": 193.46206001999974,
- "Scenario6": 504.42814417600005,
- "Scenario60": 195.35767888800012,
- "Scenario600": 534.2091840199997,
- "Scenario601": 150.33597069359985,
- "Scenario602": 65.28542890199992,
- "Scenario603": 12.940218180000102,
- "Scenario604": -26.979675245999942,
- "Scenario605": -60.27246506999995,
- "Scenario606": -89.47284868799989,
- "Scenario607": -115.93995890999986,
- "Scenario608": -140.5021140660001,
- "Scenario609": -163.713389076,
- "Scenario61": 173.73925627200015,
- "Scenario610": -185.97368979600003,
- "Scenario611": -207.5921124119999,
- "Scenario612": -228.82401599999992,
- "Scenario613": -249.89515770000014,
- "Scenario614": -271.01956968,
- "Scenario615": -292.4151319800002,
- "Scenario616": -240.26094698000009,
- "Scenario617": -186.2310369800001,
- "Scenario618": -129.49525998000024,
- "Scenario619": -68.94274498000016,
- "Scenario62": 152.507352684,
- "Scenario620": -2.976995980000197,
- "Scenario621": 70.89500701999987,
- "Scenario622": 157.00794501999985,
- "Scenario623": 264.18989701999976,
- "Scenario624": 416.2391930199998,
- "Scenario625": 756.9863170199998,
- "Scenario63": 131.43621098400013,
- "Scenario64": 110.31179900400014,
- "Scenario65": 88.91623670400008,
- "Scenario66": 67.01147900400008,
- "Scenario67": 44.31891680399997,
- "Scenario68": 20.48989046400004,
- "Scenario69": -4.942165835999958,
- "Scenario7": 477.9610339540001,
- "Scenario70": -32.64778041599993,
- "Scenario71": -63.674021675999825,
- "Scenario72": -99.84145563599986,
- "Scenario73": -144.857875476,
- "Scenario74": -208.71857979599997,
- "Scenario75": -351.83237187600014,
- "Scenario76": 461.05473029960007,
- "Scenario77": 376.00418850800014,
- "Scenario78": 323.65897778600004,
- "Scenario79": 283.7390843600002,
- "Scenario8": 453.3988787980001,
- "Scenario80": 250.44629453599998,
- "Scenario81": 221.24591091800005,
- "Scenario82": 194.77880069600008,
- "Scenario83": 170.21664554000006,
- "Scenario84": 147.00537053000016,
- "Scenario85": 124.74506981000025,
- "Scenario86": 103.12664719400004,
- "Scenario87": 81.89474360600013,
- "Scenario88": 60.82360190600002,
- "Scenario89": 39.69918992600003,
- "Scenario9": 430.1876037880001,
- "Scenario90": 18.303627626000093,
- "Scenario91": -3.6011300739999115,
- "Scenario92": -26.29369227399991,
- "Scenario93": -50.12271861399995,
- "Scenario94": -75.55477491399995,
- "Scenario95": -103.26038949399992,
- "Scenario96": -134.28663075400004,
- "Scenario97": -170.45406471400008,
- "Scenario98": -215.47048455399988,
- "Scenario99": -279.33118887399985
-}
\ No newline at end of file
diff --git a/pyomo/pysp/tests/evalxhat/baa99_ef_solution.json b/pyomo/pysp/tests/evalxhat/baa99_ef_solution.json
deleted file mode 100644
index 8465d3143db..00000000000
--- a/pyomo/pysp/tests/evalxhat/baa99_ef_solution.json
+++ /dev/null
@@ -1,27520 +0,0 @@
-[
- {
- "RootNode": {
- "x1": [
- [
- null,
- 159.48818367000015
- ]
- ],
- "x2": [
- [
- null,
- 111.37724880000137
- ]
- ]
- }
- },
- {
- "LeafNode_Scenario1": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 141.73086502
- ]
- ],
- "v2": [
- [
- null,
- 105.416929208
- ]
- ],
- "w11": [
- [
- null,
- 17.75731865
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 5.960319592
- ]
- ]
- },
- "LeafNode_Scenario10": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 141.73086502
- ]
- ],
- "v2": [
- [
- null,
- 25.34320052
- ]
- ],
- "w11": [
- [
- null,
- 17.75731865
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 86.03404828
- ]
- ]
- },
- "LeafNode_Scenario100": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 2.25630142999998
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 52.29173734
- ]
- ],
- "w12": [
- [
- null,
- 104.9401449
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario101": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 99.80924602
- ]
- ],
- "v2": [
- [
- null,
- 105.416929208
- ]
- ],
- "w11": [
- [
- null,
- 59.67893765
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 5.960319592
- ]
- ]
- },
- "LeafNode_Scenario102": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 99.80924602
- ]
- ],
- "v2": [
- [
- null,
- 85.16680021
- ]
- ],
- "w11": [
- [
- null,
- 59.67893765
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 26.21044859
- ]
- ]
- },
- "LeafNode_Scenario103": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 99.80924602
- ]
- ],
- "v2": [
- [
- null,
- 72.7036548
- ]
- ],
- "w11": [
- [
- null,
- 59.67893765
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 38.673594
- ]
- ]
- },
- "LeafNode_Scenario104": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 99.80924602
- ]
- ],
- "v2": [
- [
- null,
- 63.19891827
- ]
- ],
- "w11": [
- [
- null,
- 59.67893765
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 48.17833053
- ]
- ]
- },
- "LeafNode_Scenario105": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 99.80924602
- ]
- ],
- "v2": [
- [
- null,
- 55.272063550000006
- ]
- ],
- "w11": [
- [
- null,
- 59.67893765
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 56.10518525
- ]
- ]
- },
- "LeafNode_Scenario106": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 99.80924602
- ]
- ],
- "v2": [
- [
- null,
- 48.31959126
- ]
- ],
- "w11": [
- [
- null,
- 59.67893765
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 63.05765754
- ]
- ]
- },
- "LeafNode_Scenario107": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 99.80924602
- ]
- ],
- "v2": [
- [
- null,
- 42.01789835
- ]
- ],
- "w11": [
- [
- null,
- 59.67893765
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 69.35935045
- ]
- ]
- },
- "LeafNode_Scenario108": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 99.80924602
- ]
- ],
- "v2": [
- [
- null,
- 36.16976617
- ]
- ],
- "w11": [
- [
- null,
- 59.67893765
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 75.20748263
- ]
- ]
- },
- "LeafNode_Scenario109": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 99.80924602
- ]
- ],
- "v2": [
- [
- null,
- 30.64327212
- ]
- ],
- "w11": [
- [
- null,
- 59.67893765
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 80.73397668
- ]
- ]
- },
- "LeafNode_Scenario11": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 141.73086502
- ]
- ],
- "v2": [
- [
- null,
- 20.19595704
- ]
- ],
- "w11": [
- [
- null,
- 17.75731865
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 91.18129176
- ]
- ]
- },
- "LeafNode_Scenario110": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 99.80924602
- ]
- ],
- "v2": [
- [
- null,
- 25.34320052
- ]
- ],
- "w11": [
- [
- null,
- 59.67893765
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 86.03404828
- ]
- ]
- },
- "LeafNode_Scenario111": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 99.80924602
- ]
- ],
- "v2": [
- [
- null,
- 20.19595704
- ]
- ],
- "w11": [
- [
- null,
- 59.67893765
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 91.18129176
- ]
- ]
- },
- "LeafNode_Scenario112": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 99.80924602
- ]
- ],
- "v2": [
- [
- null,
- 15.1407419
- ]
- ],
- "w11": [
- [
- null,
- 59.67893765
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 96.23650690000001
- ]
- ]
- },
- "LeafNode_Scenario113": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 99.80924602
- ]
- ],
- "v2": [
- [
- null,
- 10.1238034
- ]
- ],
- "w11": [
- [
- null,
- 59.67893765
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 101.2534454
- ]
- ]
- },
- "LeafNode_Scenario114": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 99.80924602
- ]
- ],
- "v2": [
- [
- null,
- 5.0941815
- ]
- ],
- "w11": [
- [
- null,
- 59.67893765
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 106.2830673
- ]
- ]
- },
- "LeafNode_Scenario115": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 99.80924602
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 59.67893765
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario116": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 94.59382752
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 59.67893765
- ]
- ],
- "w12": [
- [
- null,
- 5.2154185
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario117": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 89.19083652
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 59.67893765
- ]
- ],
- "w12": [
- [
- null,
- 10.618409499999999
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario118": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 83.51725882
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 59.67893765
- ]
- ],
- "w12": [
- [
- null,
- 16.2919872
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario119": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 77.46200732
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 59.67893765
- ]
- ],
- "w12": [
- [
- null,
- 22.3472387
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario12": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 141.73086502
- ]
- ],
- "v2": [
- [
- null,
- 15.1407419
- ]
- ],
- "w11": [
- [
- null,
- 17.75731865
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 96.23650690000001
- ]
- ]
- },
- "LeafNode_Scenario120": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 70.86543242
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 59.67893765
- ]
- ],
- "w12": [
- [
- null,
- 28.9438136
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario121": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 63.47823212
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 59.67893765
- ]
- ],
- "w12": [
- [
- null,
- 36.3310139
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario122": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 54.86693832000001
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 59.67893765
- ]
- ],
- "w12": [
- [
- null,
- 44.9423077
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario123": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 44.14874311999999
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 59.67893765
- ]
- ],
- "w12": [
- [
- null,
- 55.6605029
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario124": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 28.94381352
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 59.67893765
- ]
- ],
- "w12": [
- [
- null,
- 70.8654325
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario125": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 5.13089888
- ]
- ],
- "v1": [
- [
- null,
- 0.0
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 59.67893765
- ]
- ],
- "w12": [
- [
- null,
- 99.80924602
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario126": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 93.21267117999999
- ]
- ],
- "v2": [
- [
- null,
- 105.416929208
- ]
- ],
- "w11": [
- [
- null,
- 66.27551249
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 5.960319592
- ]
- ]
- },
- "LeafNode_Scenario127": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 93.21267117999999
- ]
- ],
- "v2": [
- [
- null,
- 85.16680021
- ]
- ],
- "w11": [
- [
- null,
- 66.27551249
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 26.21044859
- ]
- ]
- },
- "LeafNode_Scenario128": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 93.21267117999999
- ]
- ],
- "v2": [
- [
- null,
- 72.7036548
- ]
- ],
- "w11": [
- [
- null,
- 66.27551249
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 38.673594
- ]
- ]
- },
- "LeafNode_Scenario129": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 93.21267117999999
- ]
- ],
- "v2": [
- [
- null,
- 63.19891827
- ]
- ],
- "w11": [
- [
- null,
- 66.27551249
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 48.17833053
- ]
- ]
- },
- "LeafNode_Scenario13": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 141.73086502
- ]
- ],
- "v2": [
- [
- null,
- 10.1238034
- ]
- ],
- "w11": [
- [
- null,
- 17.75731865
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 101.2534454
- ]
- ]
- },
- "LeafNode_Scenario130": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 93.21267117999999
- ]
- ],
- "v2": [
- [
- null,
- 55.272063550000006
- ]
- ],
- "w11": [
- [
- null,
- 66.27551249
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 56.10518525
- ]
- ]
- },
- "LeafNode_Scenario131": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 93.21267117999999
- ]
- ],
- "v2": [
- [
- null,
- 48.31959126
- ]
- ],
- "w11": [
- [
- null,
- 66.27551249
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 63.05765754
- ]
- ]
- },
- "LeafNode_Scenario132": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 93.21267117999999
- ]
- ],
- "v2": [
- [
- null,
- 42.01789835
- ]
- ],
- "w11": [
- [
- null,
- 66.27551249
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 69.35935045
- ]
- ]
- },
- "LeafNode_Scenario133": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 93.21267117999999
- ]
- ],
- "v2": [
- [
- null,
- 36.16976617
- ]
- ],
- "w11": [
- [
- null,
- 66.27551249
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 75.20748263
- ]
- ]
- },
- "LeafNode_Scenario134": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 93.21267117999999
- ]
- ],
- "v2": [
- [
- null,
- 30.64327212
- ]
- ],
- "w11": [
- [
- null,
- 66.27551249
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 80.73397668
- ]
- ]
- },
- "LeafNode_Scenario135": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 93.21267117999999
- ]
- ],
- "v2": [
- [
- null,
- 25.34320052
- ]
- ],
- "w11": [
- [
- null,
- 66.27551249
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 86.03404828
- ]
- ]
- },
- "LeafNode_Scenario136": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 93.21267117999999
- ]
- ],
- "v2": [
- [
- null,
- 20.19595704
- ]
- ],
- "w11": [
- [
- null,
- 66.27551249
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 91.18129176
- ]
- ]
- },
- "LeafNode_Scenario137": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 93.21267117999999
- ]
- ],
- "v2": [
- [
- null,
- 15.1407419
- ]
- ],
- "w11": [
- [
- null,
- 66.27551249
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 96.23650690000001
- ]
- ]
- },
- "LeafNode_Scenario138": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 93.21267117999999
- ]
- ],
- "v2": [
- [
- null,
- 10.1238034
- ]
- ],
- "w11": [
- [
- null,
- 66.27551249
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 101.2534454
- ]
- ]
- },
- "LeafNode_Scenario139": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 93.21267117999999
- ]
- ],
- "v2": [
- [
- null,
- 5.0941815
- ]
- ],
- "w11": [
- [
- null,
- 66.27551249
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 106.2830673
- ]
- ]
- },
- "LeafNode_Scenario14": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 141.73086502
- ]
- ],
- "v2": [
- [
- null,
- 5.0941815
- ]
- ],
- "w11": [
- [
- null,
- 17.75731865
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 106.2830673
- ]
- ]
- },
- "LeafNode_Scenario140": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 93.21267117999999
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 66.27551249
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario141": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 87.99725268
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 66.27551249
- ]
- ],
- "w12": [
- [
- null,
- 5.2154185
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario142": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 82.59426168
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 66.27551249
- ]
- ],
- "w12": [
- [
- null,
- 10.618409499999999
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario143": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 76.92068398
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 66.27551249
- ]
- ],
- "w12": [
- [
- null,
- 16.2919872
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario144": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 70.86543248
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 66.27551249
- ]
- ],
- "w12": [
- [
- null,
- 22.3472387
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario145": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 64.26885758
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 66.27551249
- ]
- ],
- "w12": [
- [
- null,
- 28.9438136
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario146": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 56.88165728
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 66.27551249
- ]
- ],
- "w12": [
- [
- null,
- 36.3310139
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario147": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 48.27036348
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 66.27551249
- ]
- ],
- "w12": [
- [
- null,
- 44.9423077
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario148": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 37.55216828
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 66.27551249
- ]
- ],
- "w12": [
- [
- null,
- 55.6605029
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario149": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 22.34723868
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 66.27551249
- ]
- ],
- "w12": [
- [
- null,
- 70.8654325
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario15": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 141.73086502
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 17.75731865
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario150": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 11.72747372
- ]
- ],
- "v1": [
- [
- null,
- 0.0
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 66.27551249
- ]
- ],
- "w12": [
- [
- null,
- 93.21267117999999
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario151": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 87.15741964999998
- ]
- ],
- "v2": [
- [
- null,
- 105.416929208
- ]
- ],
- "w11": [
- [
- null,
- 72.33076402
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 5.960319592
- ]
- ]
- },
- "LeafNode_Scenario152": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 87.15741964999998
- ]
- ],
- "v2": [
- [
- null,
- 85.16680021
- ]
- ],
- "w11": [
- [
- null,
- 72.33076402
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 26.21044859
- ]
- ]
- },
- "LeafNode_Scenario153": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 87.15741964999998
- ]
- ],
- "v2": [
- [
- null,
- 72.7036548
- ]
- ],
- "w11": [
- [
- null,
- 72.33076402
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 38.673594
- ]
- ]
- },
- "LeafNode_Scenario154": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 87.15741964999998
- ]
- ],
- "v2": [
- [
- null,
- 63.19891827
- ]
- ],
- "w11": [
- [
- null,
- 72.33076402
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 48.17833053
- ]
- ]
- },
- "LeafNode_Scenario155": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 87.15741964999998
- ]
- ],
- "v2": [
- [
- null,
- 55.272063550000006
- ]
- ],
- "w11": [
- [
- null,
- 72.33076402
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 56.10518525
- ]
- ]
- },
- "LeafNode_Scenario156": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 87.15741964999998
- ]
- ],
- "v2": [
- [
- null,
- 48.31959126
- ]
- ],
- "w11": [
- [
- null,
- 72.33076402
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 63.05765754
- ]
- ]
- },
- "LeafNode_Scenario157": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 87.15741964999998
- ]
- ],
- "v2": [
- [
- null,
- 42.01789835
- ]
- ],
- "w11": [
- [
- null,
- 72.33076402
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 69.35935045
- ]
- ]
- },
- "LeafNode_Scenario158": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 87.15741964999998
- ]
- ],
- "v2": [
- [
- null,
- 36.16976617
- ]
- ],
- "w11": [
- [
- null,
- 72.33076402
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 75.20748263
- ]
- ]
- },
- "LeafNode_Scenario159": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 87.15741964999998
- ]
- ],
- "v2": [
- [
- null,
- 30.64327212
- ]
- ],
- "w11": [
- [
- null,
- 72.33076402
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 80.73397668
- ]
- ]
- },
- "LeafNode_Scenario16": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 136.51544652
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 17.75731865
- ]
- ],
- "w12": [
- [
- null,
- 5.2154185
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario160": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 87.15741964999998
- ]
- ],
- "v2": [
- [
- null,
- 25.34320052
- ]
- ],
- "w11": [
- [
- null,
- 72.33076402
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 86.03404828
- ]
- ]
- },
- "LeafNode_Scenario161": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 87.15741964999998
- ]
- ],
- "v2": [
- [
- null,
- 20.19595704
- ]
- ],
- "w11": [
- [
- null,
- 72.33076402
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 91.18129176
- ]
- ]
- },
- "LeafNode_Scenario162": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 87.15741964999998
- ]
- ],
- "v2": [
- [
- null,
- 15.1407419
- ]
- ],
- "w11": [
- [
- null,
- 72.33076402
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 96.23650690000001
- ]
- ]
- },
- "LeafNode_Scenario163": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 87.15741964999998
- ]
- ],
- "v2": [
- [
- null,
- 10.1238034
- ]
- ],
- "w11": [
- [
- null,
- 72.33076402
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 101.2534454
- ]
- ]
- },
- "LeafNode_Scenario164": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 87.15741964999998
- ]
- ],
- "v2": [
- [
- null,
- 5.0941815
- ]
- ],
- "w11": [
- [
- null,
- 72.33076402
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 106.2830673
- ]
- ]
- },
- "LeafNode_Scenario165": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 87.15741964999998
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 72.33076402
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario166": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 81.94200115
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 72.33076402
- ]
- ],
- "w12": [
- [
- null,
- 5.2154185
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario167": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 76.53901015
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 72.33076402
- ]
- ],
- "w12": [
- [
- null,
- 10.618409499999999
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario168": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 70.86543245
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 72.33076402
- ]
- ],
- "w12": [
- [
- null,
- 16.2919872
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario169": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 64.81018095
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 72.33076402
- ]
- ],
- "w12": [
- [
- null,
- 22.3472387
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario17": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 131.11245552
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 17.75731865
- ]
- ],
- "w12": [
- [
- null,
- 10.618409499999999
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario170": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 58.21360605
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 72.33076402
- ]
- ],
- "w12": [
- [
- null,
- 28.9438136
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario171": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 50.82640575
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 72.33076402
- ]
- ],
- "w12": [
- [
- null,
- 36.3310139
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario172": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 42.21511195
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 72.33076402
- ]
- ],
- "w12": [
- [
- null,
- 44.9423077
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario173": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 31.49691675
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 72.33076402
- ]
- ],
- "w12": [
- [
- null,
- 55.6605029
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario174": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 16.29198715
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 72.33076402
- ]
- ],
- "w12": [
- [
- null,
- 70.8654325
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario175": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 17.78272525
- ]
- ],
- "v1": [
- [
- null,
- 0.0
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 72.33076402
- ]
- ],
- "w12": [
- [
- null,
- 87.15741964999998
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario176": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 81.48384195
- ]
- ],
- "v2": [
- [
- null,
- 105.416929208
- ]
- ],
- "w11": [
- [
- null,
- 78.00434172
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 5.960319592
- ]
- ]
- },
- "LeafNode_Scenario177": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 81.48384195
- ]
- ],
- "v2": [
- [
- null,
- 85.16680021
- ]
- ],
- "w11": [
- [
- null,
- 78.00434172
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 26.21044859
- ]
- ]
- },
- "LeafNode_Scenario178": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 81.48384195
- ]
- ],
- "v2": [
- [
- null,
- 72.7036548
- ]
- ],
- "w11": [
- [
- null,
- 78.00434172
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 38.673594
- ]
- ]
- },
- "LeafNode_Scenario179": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 81.48384195
- ]
- ],
- "v2": [
- [
- null,
- 63.19891827
- ]
- ],
- "w11": [
- [
- null,
- 78.00434172
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 48.17833053
- ]
- ]
- },
- "LeafNode_Scenario18": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 125.43887782
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 17.75731865
- ]
- ],
- "w12": [
- [
- null,
- 16.2919872
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario180": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 81.48384195
- ]
- ],
- "v2": [
- [
- null,
- 55.272063550000006
- ]
- ],
- "w11": [
- [
- null,
- 78.00434172
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 56.10518525
- ]
- ]
- },
- "LeafNode_Scenario181": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 81.48384195
- ]
- ],
- "v2": [
- [
- null,
- 48.31959126
- ]
- ],
- "w11": [
- [
- null,
- 78.00434172
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 63.05765754
- ]
- ]
- },
- "LeafNode_Scenario182": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 81.48384195
- ]
- ],
- "v2": [
- [
- null,
- 42.01789835
- ]
- ],
- "w11": [
- [
- null,
- 78.00434172
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 69.35935045
- ]
- ]
- },
- "LeafNode_Scenario183": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 81.48384195
- ]
- ],
- "v2": [
- [
- null,
- 36.16976617
- ]
- ],
- "w11": [
- [
- null,
- 78.00434172
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 75.20748263
- ]
- ]
- },
- "LeafNode_Scenario184": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 81.48384195
- ]
- ],
- "v2": [
- [
- null,
- 30.64327212
- ]
- ],
- "w11": [
- [
- null,
- 78.00434172
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 80.73397668
- ]
- ]
- },
- "LeafNode_Scenario185": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 81.48384195
- ]
- ],
- "v2": [
- [
- null,
- 25.34320052
- ]
- ],
- "w11": [
- [
- null,
- 78.00434172
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 86.03404828
- ]
- ]
- },
- "LeafNode_Scenario186": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 81.48384195
- ]
- ],
- "v2": [
- [
- null,
- 20.19595704
- ]
- ],
- "w11": [
- [
- null,
- 78.00434172
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 91.18129176
- ]
- ]
- },
- "LeafNode_Scenario187": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 81.48384195
- ]
- ],
- "v2": [
- [
- null,
- 15.1407419
- ]
- ],
- "w11": [
- [
- null,
- 78.00434172
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 96.23650690000001
- ]
- ]
- },
- "LeafNode_Scenario188": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 81.48384195
- ]
- ],
- "v2": [
- [
- null,
- 10.1238034
- ]
- ],
- "w11": [
- [
- null,
- 78.00434172
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 101.2534454
- ]
- ]
- },
- "LeafNode_Scenario189": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 81.48384195
- ]
- ],
- "v2": [
- [
- null,
- 5.0941815
- ]
- ],
- "w11": [
- [
- null,
- 78.00434172
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 106.2830673
- ]
- ]
- },
- "LeafNode_Scenario19": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 119.38362631999999
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 17.75731865
- ]
- ],
- "w12": [
- [
- null,
- 22.3472387
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario190": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 81.48384195
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 78.00434172
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario191": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 76.26842345
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 78.00434172
- ]
- ],
- "w12": [
- [
- null,
- 5.2154185
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario192": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 70.86543245
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 78.00434172
- ]
- ],
- "w12": [
- [
- null,
- 10.618409499999999
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario193": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 65.19185475
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 78.00434172
- ]
- ],
- "w12": [
- [
- null,
- 16.2919872
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario194": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 59.13660325
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 78.00434172
- ]
- ],
- "w12": [
- [
- null,
- 22.3472387
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario195": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 52.54002835
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 78.00434172
- ]
- ],
- "w12": [
- [
- null,
- 28.9438136
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario196": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 45.15282805
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 78.00434172
- ]
- ],
- "w12": [
- [
- null,
- 36.3310139
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario197": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 36.54153425
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 78.00434172
- ]
- ],
- "w12": [
- [
- null,
- 44.9423077
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario198": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 25.82333905
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 78.00434172
- ]
- ],
- "w12": [
- [
- null,
- 55.6605029
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario199": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 10.61840945
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 78.00434172
- ]
- ],
- "w12": [
- [
- null,
- 70.8654325
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario2": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 141.73086502
- ]
- ],
- "v2": [
- [
- null,
- 85.16680021
- ]
- ],
- "w11": [
- [
- null,
- 17.75731865
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 26.21044859
- ]
- ]
- },
- "LeafNode_Scenario20": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 112.78705142
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 17.75731865
- ]
- ],
- "w12": [
- [
- null,
- 28.9438136
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario200": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 23.45630295
- ]
- ],
- "v1": [
- [
- null,
- 0.0
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 78.00434172
- ]
- ],
- "w12": [
- [
- null,
- 81.48384195
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario201": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 76.08085099
- ]
- ],
- "v2": [
- [
- null,
- 105.416929208
- ]
- ],
- "w11": [
- [
- null,
- 83.40733268
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 5.960319592
- ]
- ]
- },
- "LeafNode_Scenario202": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 76.08085099
- ]
- ],
- "v2": [
- [
- null,
- 85.16680021
- ]
- ],
- "w11": [
- [
- null,
- 83.40733268
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 26.21044859
- ]
- ]
- },
- "LeafNode_Scenario203": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 76.08085099
- ]
- ],
- "v2": [
- [
- null,
- 72.7036548
- ]
- ],
- "w11": [
- [
- null,
- 83.40733268
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 38.673594
- ]
- ]
- },
- "LeafNode_Scenario204": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 76.08085099
- ]
- ],
- "v2": [
- [
- null,
- 63.19891827
- ]
- ],
- "w11": [
- [
- null,
- 83.40733268
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 48.17833053
- ]
- ]
- },
- "LeafNode_Scenario205": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 76.08085099
- ]
- ],
- "v2": [
- [
- null,
- 55.272063550000006
- ]
- ],
- "w11": [
- [
- null,
- 83.40733268
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 56.10518525
- ]
- ]
- },
- "LeafNode_Scenario206": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 76.08085099
- ]
- ],
- "v2": [
- [
- null,
- 48.31959126
- ]
- ],
- "w11": [
- [
- null,
- 83.40733268
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 63.05765754
- ]
- ]
- },
- "LeafNode_Scenario207": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 76.08085099
- ]
- ],
- "v2": [
- [
- null,
- 42.01789835
- ]
- ],
- "w11": [
- [
- null,
- 83.40733268
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 69.35935045
- ]
- ]
- },
- "LeafNode_Scenario208": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 76.08085099
- ]
- ],
- "v2": [
- [
- null,
- 36.16976617
- ]
- ],
- "w11": [
- [
- null,
- 83.40733268
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 75.20748263
- ]
- ]
- },
- "LeafNode_Scenario209": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 76.08085099
- ]
- ],
- "v2": [
- [
- null,
- 30.64327212
- ]
- ],
- "w11": [
- [
- null,
- 83.40733268
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 80.73397668
- ]
- ]
- },
- "LeafNode_Scenario21": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 105.39985112
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 17.75731865
- ]
- ],
- "w12": [
- [
- null,
- 36.3310139
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario210": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 76.08085099
- ]
- ],
- "v2": [
- [
- null,
- 25.34320052
- ]
- ],
- "w11": [
- [
- null,
- 83.40733268
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 86.03404828
- ]
- ]
- },
- "LeafNode_Scenario211": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 76.08085099
- ]
- ],
- "v2": [
- [
- null,
- 20.19595704
- ]
- ],
- "w11": [
- [
- null,
- 83.40733268
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 91.18129176
- ]
- ]
- },
- "LeafNode_Scenario212": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 76.08085099
- ]
- ],
- "v2": [
- [
- null,
- 15.1407419
- ]
- ],
- "w11": [
- [
- null,
- 83.40733268
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 96.23650690000001
- ]
- ]
- },
- "LeafNode_Scenario213": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 76.08085099
- ]
- ],
- "v2": [
- [
- null,
- 10.1238034
- ]
- ],
- "w11": [
- [
- null,
- 83.40733268
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 101.2534454
- ]
- ]
- },
- "LeafNode_Scenario214": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 76.08085099
- ]
- ],
- "v2": [
- [
- null,
- 5.0941815
- ]
- ],
- "w11": [
- [
- null,
- 83.40733268
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 106.2830673
- ]
- ]
- },
- "LeafNode_Scenario215": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 76.08085099
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 83.40733268
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario216": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 70.86543249
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 83.40733268
- ]
- ],
- "w12": [
- [
- null,
- 5.2154185
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario217": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 65.46244149
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 83.40733268
- ]
- ],
- "w12": [
- [
- null,
- 10.618409499999999
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario218": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 59.78886379000001
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 83.40733268
- ]
- ],
- "w12": [
- [
- null,
- 16.2919872
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario219": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 53.73361229
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 83.40733268
- ]
- ],
- "w12": [
- [
- null,
- 22.3472387
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario22": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 96.78855732
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 17.75731865
- ]
- ],
- "w12": [
- [
- null,
- 44.9423077
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario220": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 47.13703739
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 83.40733268
- ]
- ],
- "w12": [
- [
- null,
- 28.9438136
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario221": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 39.74983709
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 83.40733268
- ]
- ],
- "w12": [
- [
- null,
- 36.3310139
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario222": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 31.138543289999998
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 83.40733268
- ]
- ],
- "w12": [
- [
- null,
- 44.9423077
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario223": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 20.42034809
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 83.40733268
- ]
- ],
- "w12": [
- [
- null,
- 55.6605029
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario224": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 5.21541849000002
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 83.40733268
- ]
- ],
- "w12": [
- [
- null,
- 70.8654325
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario225": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 28.85929391
- ]
- ],
- "v1": [
- [
- null,
- 0.0
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 83.40733268
- ]
- ],
- "w12": [
- [
- null,
- 76.08085099
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario226": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 70.8654325
- ]
- ],
- "v2": [
- [
- null,
- 105.416929208
- ]
- ],
- "w11": [
- [
- null,
- 88.62275117
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 5.960319592
- ]
- ]
- },
- "LeafNode_Scenario227": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 70.8654325
- ]
- ],
- "v2": [
- [
- null,
- 85.16680021
- ]
- ],
- "w11": [
- [
- null,
- 88.62275117
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 26.21044859
- ]
- ]
- },
- "LeafNode_Scenario228": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 70.8654325
- ]
- ],
- "v2": [
- [
- null,
- 72.7036548
- ]
- ],
- "w11": [
- [
- null,
- 88.62275117
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 38.673594
- ]
- ]
- },
- "LeafNode_Scenario229": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 70.8654325
- ]
- ],
- "v2": [
- [
- null,
- 63.19891827
- ]
- ],
- "w11": [
- [
- null,
- 88.62275117
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 48.17833053
- ]
- ]
- },
- "LeafNode_Scenario23": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 86.07036212000001
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 17.75731865
- ]
- ],
- "w12": [
- [
- null,
- 55.6605029
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario230": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 70.8654325
- ]
- ],
- "v2": [
- [
- null,
- 55.272063550000006
- ]
- ],
- "w11": [
- [
- null,
- 88.62275117
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 56.10518525
- ]
- ]
- },
- "LeafNode_Scenario231": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 70.8654325
- ]
- ],
- "v2": [
- [
- null,
- 48.31959126
- ]
- ],
- "w11": [
- [
- null,
- 88.62275117
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 63.05765754
- ]
- ]
- },
- "LeafNode_Scenario232": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 70.8654325
- ]
- ],
- "v2": [
- [
- null,
- 42.01789835
- ]
- ],
- "w11": [
- [
- null,
- 88.62275117
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 69.35935045
- ]
- ]
- },
- "LeafNode_Scenario233": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 70.8654325
- ]
- ],
- "v2": [
- [
- null,
- 36.16976617
- ]
- ],
- "w11": [
- [
- null,
- 88.62275117
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 75.20748263
- ]
- ]
- },
- "LeafNode_Scenario234": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 70.8654325
- ]
- ],
- "v2": [
- [
- null,
- 30.64327212
- ]
- ],
- "w11": [
- [
- null,
- 88.62275117
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 80.73397668
- ]
- ]
- },
- "LeafNode_Scenario235": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 70.8654325
- ]
- ],
- "v2": [
- [
- null,
- 25.34320052
- ]
- ],
- "w11": [
- [
- null,
- 88.62275117
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 86.03404828
- ]
- ]
- },
- "LeafNode_Scenario236": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 70.8654325
- ]
- ],
- "v2": [
- [
- null,
- 20.19595704
- ]
- ],
- "w11": [
- [
- null,
- 88.62275117
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 91.18129176
- ]
- ]
- },
- "LeafNode_Scenario237": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 70.8654325
- ]
- ],
- "v2": [
- [
- null,
- 15.1407419
- ]
- ],
- "w11": [
- [
- null,
- 88.62275117
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 96.23650690000001
- ]
- ]
- },
- "LeafNode_Scenario238": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 70.8654325
- ]
- ],
- "v2": [
- [
- null,
- 10.1238034
- ]
- ],
- "w11": [
- [
- null,
- 88.62275117
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 101.2534454
- ]
- ]
- },
- "LeafNode_Scenario239": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 70.8654325
- ]
- ],
- "v2": [
- [
- null,
- 5.0941815
- ]
- ],
- "w11": [
- [
- null,
- 88.62275117
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 106.2830673
- ]
- ]
- },
- "LeafNode_Scenario24": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 70.86543252
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 17.75731865
- ]
- ],
- "w12": [
- [
- null,
- 70.8654325
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario240": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 70.8654325
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 88.62275117
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario241": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 65.650014
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 88.62275117
- ]
- ],
- "w12": [
- [
- null,
- 5.2154185
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario242": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 60.247023
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 88.62275117
- ]
- ],
- "w12": [
- [
- null,
- 10.618409499999999
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario243": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 54.5734453
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 88.62275117
- ]
- ],
- "w12": [
- [
- null,
- 16.2919872
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario244": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 48.518193800000006
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 88.62275117
- ]
- ],
- "w12": [
- [
- null,
- 22.3472387
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario245": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 41.9216189
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 88.62275117
- ]
- ],
- "w12": [
- [
- null,
- 28.9438136
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario246": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 34.5344186
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 88.62275117
- ]
- ],
- "w12": [
- [
- null,
- 36.3310139
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario247": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 25.9231248
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 88.62275117
- ]
- ],
- "w12": [
- [
- null,
- 44.9423077
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario248": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 15.2049296
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 88.62275117
- ]
- ],
- "w12": [
- [
- null,
- 55.6605029
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario249": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 0.0
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 88.62275117
- ]
- ],
- "w12": [
- [
- null,
- 70.8654325
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario25": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 36.79072012
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 17.75731865
- ]
- ],
- "w12": [
- [
- null,
- 104.9401449
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario250": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 34.0747124
- ]
- ],
- "v1": [
- [
- null,
- 0.0
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 88.62275117
- ]
- ],
- "w12": [
- [
- null,
- 70.8654325
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario251": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 65.77125101
- ]
- ],
- "v2": [
- [
- null,
- 105.416929208
- ]
- ],
- "w11": [
- [
- null,
- 93.71693266
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 5.960319592
- ]
- ]
- },
- "LeafNode_Scenario252": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 65.77125101
- ]
- ],
- "v2": [
- [
- null,
- 85.16680021
- ]
- ],
- "w11": [
- [
- null,
- 93.71693266
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 26.21044859
- ]
- ]
- },
- "LeafNode_Scenario253": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 65.77125101
- ]
- ],
- "v2": [
- [
- null,
- 72.7036548
- ]
- ],
- "w11": [
- [
- null,
- 93.71693266
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 38.673594
- ]
- ]
- },
- "LeafNode_Scenario254": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 65.77125101
- ]
- ],
- "v2": [
- [
- null,
- 63.19891827
- ]
- ],
- "w11": [
- [
- null,
- 93.71693266
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 48.17833053
- ]
- ]
- },
- "LeafNode_Scenario255": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 65.77125101
- ]
- ],
- "v2": [
- [
- null,
- 55.272063550000006
- ]
- ],
- "w11": [
- [
- null,
- 93.71693266
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 56.10518525
- ]
- ]
- },
- "LeafNode_Scenario256": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 65.77125101
- ]
- ],
- "v2": [
- [
- null,
- 48.31959126
- ]
- ],
- "w11": [
- [
- null,
- 93.71693266
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 63.05765754
- ]
- ]
- },
- "LeafNode_Scenario257": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 65.77125101
- ]
- ],
- "v2": [
- [
- null,
- 42.01789835
- ]
- ],
- "w11": [
- [
- null,
- 93.71693266
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 69.35935045
- ]
- ]
- },
- "LeafNode_Scenario258": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 65.77125101
- ]
- ],
- "v2": [
- [
- null,
- 36.16976617
- ]
- ],
- "w11": [
- [
- null,
- 93.71693266
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 75.20748263
- ]
- ]
- },
- "LeafNode_Scenario259": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 65.77125101
- ]
- ],
- "v2": [
- [
- null,
- 30.64327212
- ]
- ],
- "w11": [
- [
- null,
- 93.71693266
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 80.73397668
- ]
- ]
- },
- "LeafNode_Scenario26": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 126.52593535000001
- ]
- ],
- "v2": [
- [
- null,
- 105.416929208
- ]
- ],
- "w11": [
- [
- null,
- 32.96224832
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 5.960319592
- ]
- ]
- },
- "LeafNode_Scenario260": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 65.77125101
- ]
- ],
- "v2": [
- [
- null,
- 25.34320052
- ]
- ],
- "w11": [
- [
- null,
- 93.71693266
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 86.03404828
- ]
- ]
- },
- "LeafNode_Scenario261": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 65.77125101
- ]
- ],
- "v2": [
- [
- null,
- 20.19595704
- ]
- ],
- "w11": [
- [
- null,
- 93.71693266
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 91.18129176
- ]
- ]
- },
- "LeafNode_Scenario262": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 65.77125101
- ]
- ],
- "v2": [
- [
- null,
- 15.1407419
- ]
- ],
- "w11": [
- [
- null,
- 93.71693266
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 96.23650690000001
- ]
- ]
- },
- "LeafNode_Scenario263": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 65.77125101
- ]
- ],
- "v2": [
- [
- null,
- 10.1238034
- ]
- ],
- "w11": [
- [
- null,
- 93.71693266
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 101.2534454
- ]
- ]
- },
- "LeafNode_Scenario264": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 65.77125101
- ]
- ],
- "v2": [
- [
- null,
- 5.0941815
- ]
- ],
- "w11": [
- [
- null,
- 93.71693266
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 106.2830673
- ]
- ]
- },
- "LeafNode_Scenario265": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 65.77125101
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 93.71693266
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario266": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 60.555832509999995
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 93.71693266
- ]
- ],
- "w12": [
- [
- null,
- 5.2154185
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario267": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 55.15284151
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 93.71693266
- ]
- ],
- "w12": [
- [
- null,
- 10.618409499999999
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario268": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 49.47926381
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 93.71693266
- ]
- ],
- "w12": [
- [
- null,
- 16.2919872
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario269": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 43.42401231
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 93.71693266
- ]
- ],
- "w12": [
- [
- null,
- 22.3472387
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario27": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 126.52593535000001
- ]
- ],
- "v2": [
- [
- null,
- 85.16680021
- ]
- ],
- "w11": [
- [
- null,
- 32.96224832
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 26.21044859
- ]
- ]
- },
- "LeafNode_Scenario270": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 36.82743741
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 93.71693266
- ]
- ],
- "w12": [
- [
- null,
- 28.9438136
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario271": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 29.44023711
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 93.71693266
- ]
- ],
- "w12": [
- [
- null,
- 36.3310139
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario272": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 20.82894331
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 93.71693266
- ]
- ],
- "w12": [
- [
- null,
- 44.9423077
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario273": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 10.11074811
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 93.71693266
- ]
- ],
- "w12": [
- [
- null,
- 55.6605029
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario274": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 5.09418149
- ]
- ],
- "v1": [
- [
- null,
- 0.0
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 93.71693266
- ]
- ],
- "w12": [
- [
- null,
- 65.77125101
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario275": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 39.16889389
- ]
- ],
- "v1": [
- [
- null,
- 0.0
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 93.71693266
- ]
- ],
- "w12": [
- [
- null,
- 65.77125101
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario276": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 60.74162908
- ]
- ],
- "v2": [
- [
- null,
- 105.416929208
- ]
- ],
- "w11": [
- [
- null,
- 98.74655459
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 5.960319592
- ]
- ]
- },
- "LeafNode_Scenario277": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 60.74162908
- ]
- ],
- "v2": [
- [
- null,
- 85.16680021
- ]
- ],
- "w11": [
- [
- null,
- 98.74655459
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 26.21044859
- ]
- ]
- },
- "LeafNode_Scenario278": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 60.74162908
- ]
- ],
- "v2": [
- [
- null,
- 72.7036548
- ]
- ],
- "w11": [
- [
- null,
- 98.74655459
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 38.673594
- ]
- ]
- },
- "LeafNode_Scenario279": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 60.74162908
- ]
- ],
- "v2": [
- [
- null,
- 63.19891827
- ]
- ],
- "w11": [
- [
- null,
- 98.74655459
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 48.17833053
- ]
- ]
- },
- "LeafNode_Scenario28": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 126.52593535000001
- ]
- ],
- "v2": [
- [
- null,
- 72.7036548
- ]
- ],
- "w11": [
- [
- null,
- 32.96224832
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 38.673594
- ]
- ]
- },
- "LeafNode_Scenario280": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 60.74162908
- ]
- ],
- "v2": [
- [
- null,
- 55.272063550000006
- ]
- ],
- "w11": [
- [
- null,
- 98.74655459
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 56.10518525
- ]
- ]
- },
- "LeafNode_Scenario281": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 60.74162908
- ]
- ],
- "v2": [
- [
- null,
- 48.31959126
- ]
- ],
- "w11": [
- [
- null,
- 98.74655459
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 63.05765754
- ]
- ]
- },
- "LeafNode_Scenario282": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 60.74162908
- ]
- ],
- "v2": [
- [
- null,
- 42.01789835
- ]
- ],
- "w11": [
- [
- null,
- 98.74655459
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 69.35935045
- ]
- ]
- },
- "LeafNode_Scenario283": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 60.74162908
- ]
- ],
- "v2": [
- [
- null,
- 36.16976617
- ]
- ],
- "w11": [
- [
- null,
- 98.74655459
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 75.20748263
- ]
- ]
- },
- "LeafNode_Scenario284": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 60.74162908
- ]
- ],
- "v2": [
- [
- null,
- 30.64327212
- ]
- ],
- "w11": [
- [
- null,
- 98.74655459
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 80.73397668
- ]
- ]
- },
- "LeafNode_Scenario285": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 60.74162908
- ]
- ],
- "v2": [
- [
- null,
- 25.34320052
- ]
- ],
- "w11": [
- [
- null,
- 98.74655459
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 86.03404828
- ]
- ]
- },
- "LeafNode_Scenario286": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 60.74162908
- ]
- ],
- "v2": [
- [
- null,
- 20.19595704
- ]
- ],
- "w11": [
- [
- null,
- 98.74655459
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 91.18129176
- ]
- ]
- },
- "LeafNode_Scenario287": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 60.74162908
- ]
- ],
- "v2": [
- [
- null,
- 15.1407419
- ]
- ],
- "w11": [
- [
- null,
- 98.74655459
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 96.23650690000001
- ]
- ]
- },
- "LeafNode_Scenario288": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 60.74162908
- ]
- ],
- "v2": [
- [
- null,
- 10.1238034
- ]
- ],
- "w11": [
- [
- null,
- 98.74655459
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 101.2534454
- ]
- ]
- },
- "LeafNode_Scenario289": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 60.74162908
- ]
- ],
- "v2": [
- [
- null,
- 5.0941815
- ]
- ],
- "w11": [
- [
- null,
- 98.74655459
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 106.2830673
- ]
- ]
- },
- "LeafNode_Scenario29": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 126.52593535000001
- ]
- ],
- "v2": [
- [
- null,
- 63.19891827
- ]
- ],
- "w11": [
- [
- null,
- 32.96224832
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 48.17833053
- ]
- ]
- },
- "LeafNode_Scenario290": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 60.74162908
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 98.74655459
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario291": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 55.526210580000004
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 98.74655459
- ]
- ],
- "w12": [
- [
- null,
- 5.2154185
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario292": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 50.12321958
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 98.74655459
- ]
- ],
- "w12": [
- [
- null,
- 10.618409499999999
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario293": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 44.44964188
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 98.74655459
- ]
- ],
- "w12": [
- [
- null,
- 16.2919872
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario294": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 38.39439038
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 98.74655459
- ]
- ],
- "w12": [
- [
- null,
- 22.3472387
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario295": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 31.797815480000004
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 98.74655459
- ]
- ],
- "w12": [
- [
- null,
- 28.9438136
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario296": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 24.41061518
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 98.74655459
- ]
- ],
- "w12": [
- [
- null,
- 36.3310139
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario297": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 15.79932138
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 98.74655459
- ]
- ],
- "w12": [
- [
- null,
- 44.9423077
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario298": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 5.08112617999998
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 98.74655459
- ]
- ],
- "w12": [
- [
- null,
- 55.6605029
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario299": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 10.12380342
- ]
- ],
- "v1": [
- [
- null,
- 0.0
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 98.74655459
- ]
- ],
- "w12": [
- [
- null,
- 60.74162908
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario3": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 141.73086502
- ]
- ],
- "v2": [
- [
- null,
- 72.7036548
- ]
- ],
- "w11": [
- [
- null,
- 17.75731865
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 38.673594
- ]
- ]
- },
- "LeafNode_Scenario30": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 126.52593535000001
- ]
- ],
- "v2": [
- [
- null,
- 55.272063550000006
- ]
- ],
- "w11": [
- [
- null,
- 32.96224832
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 56.10518525
- ]
- ]
- },
- "LeafNode_Scenario300": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 44.19851582
- ]
- ],
- "v1": [
- [
- null,
- 0.0
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 98.74655459
- ]
- ],
- "w12": [
- [
- null,
- 60.74162908
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario301": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 55.72469057
- ]
- ],
- "v2": [
- [
- null,
- 105.416929208
- ]
- ],
- "w11": [
- [
- null,
- 103.7634931
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 5.960319592
- ]
- ]
- },
- "LeafNode_Scenario302": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 55.72469057
- ]
- ],
- "v2": [
- [
- null,
- 85.16680021
- ]
- ],
- "w11": [
- [
- null,
- 103.7634931
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 26.21044859
- ]
- ]
- },
- "LeafNode_Scenario303": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 55.72469057
- ]
- ],
- "v2": [
- [
- null,
- 72.7036548
- ]
- ],
- "w11": [
- [
- null,
- 103.7634931
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 38.673594
- ]
- ]
- },
- "LeafNode_Scenario304": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 55.72469057
- ]
- ],
- "v2": [
- [
- null,
- 63.19891827
- ]
- ],
- "w11": [
- [
- null,
- 103.7634931
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 48.17833053
- ]
- ]
- },
- "LeafNode_Scenario305": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 55.72469057
- ]
- ],
- "v2": [
- [
- null,
- 55.272063550000006
- ]
- ],
- "w11": [
- [
- null,
- 103.7634931
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 56.10518525
- ]
- ]
- },
- "LeafNode_Scenario306": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 55.72469057
- ]
- ],
- "v2": [
- [
- null,
- 48.31959126
- ]
- ],
- "w11": [
- [
- null,
- 103.7634931
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 63.05765754
- ]
- ]
- },
- "LeafNode_Scenario307": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 55.72469057
- ]
- ],
- "v2": [
- [
- null,
- 42.01789835
- ]
- ],
- "w11": [
- [
- null,
- 103.7634931
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 69.35935045
- ]
- ]
- },
- "LeafNode_Scenario308": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 55.72469057
- ]
- ],
- "v2": [
- [
- null,
- 36.16976617
- ]
- ],
- "w11": [
- [
- null,
- 103.7634931
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 75.20748263
- ]
- ]
- },
- "LeafNode_Scenario309": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 55.72469057
- ]
- ],
- "v2": [
- [
- null,
- 30.64327212
- ]
- ],
- "w11": [
- [
- null,
- 103.7634931
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 80.73397668
- ]
- ]
- },
- "LeafNode_Scenario31": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 126.52593535000001
- ]
- ],
- "v2": [
- [
- null,
- 48.31959126
- ]
- ],
- "w11": [
- [
- null,
- 32.96224832
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 63.05765754
- ]
- ]
- },
- "LeafNode_Scenario310": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 55.72469057
- ]
- ],
- "v2": [
- [
- null,
- 25.34320052
- ]
- ],
- "w11": [
- [
- null,
- 103.7634931
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 86.03404828
- ]
- ]
- },
- "LeafNode_Scenario311": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 55.72469057
- ]
- ],
- "v2": [
- [
- null,
- 20.19595704
- ]
- ],
- "w11": [
- [
- null,
- 103.7634931
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 91.18129176
- ]
- ]
- },
- "LeafNode_Scenario312": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 55.72469057
- ]
- ],
- "v2": [
- [
- null,
- 15.1407419
- ]
- ],
- "w11": [
- [
- null,
- 103.7634931
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 96.23650690000001
- ]
- ]
- },
- "LeafNode_Scenario313": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 55.72469057
- ]
- ],
- "v2": [
- [
- null,
- 10.1238034
- ]
- ],
- "w11": [
- [
- null,
- 103.7634931
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 101.2534454
- ]
- ]
- },
- "LeafNode_Scenario314": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 55.72469057
- ]
- ],
- "v2": [
- [
- null,
- 5.0941815
- ]
- ],
- "w11": [
- [
- null,
- 103.7634931
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 106.2830673
- ]
- ]
- },
- "LeafNode_Scenario315": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 55.72469057
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 103.7634931
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario316": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 50.50927207
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 103.7634931
- ]
- ],
- "w12": [
- [
- null,
- 5.2154185
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario317": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 45.10628107
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 103.7634931
- ]
- ],
- "w12": [
- [
- null,
- 10.618409499999999
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario318": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 39.43270337
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 103.7634931
- ]
- ],
- "w12": [
- [
- null,
- 16.2919872
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario319": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 33.37745187
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 103.7634931
- ]
- ],
- "w12": [
- [
- null,
- 22.3472387
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario32": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 126.52593535000001
- ]
- ],
- "v2": [
- [
- null,
- 42.01789835
- ]
- ],
- "w11": [
- [
- null,
- 32.96224832
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 69.35935045
- ]
- ]
- },
- "LeafNode_Scenario320": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 26.78087697
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 103.7634931
- ]
- ],
- "w12": [
- [
- null,
- 28.9438136
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario321": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 19.39367667
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 103.7634931
- ]
- ],
- "w12": [
- [
- null,
- 36.3310139
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario322": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 10.78238287
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 103.7634931
- ]
- ],
- "w12": [
- [
- null,
- 44.9423077
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario323": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 0.0641876699999955
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 103.7634931
- ]
- ],
- "w12": [
- [
- null,
- 55.6605029
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario324": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 15.14074193
- ]
- ],
- "v1": [
- [
- null,
- 0.0
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 103.7634931
- ]
- ],
- "w12": [
- [
- null,
- 55.72469057
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario325": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 49.21545432999999
- ]
- ],
- "v1": [
- [
- null,
- 0.0
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 103.7634931
- ]
- ],
- "w12": [
- [
- null,
- 55.72469057
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario326": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 50.66947547
- ]
- ],
- "v2": [
- [
- null,
- 105.416929208
- ]
- ],
- "w11": [
- [
- null,
- 108.8187082
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 5.960319592
- ]
- ]
- },
- "LeafNode_Scenario327": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 50.66947547
- ]
- ],
- "v2": [
- [
- null,
- 85.16680021
- ]
- ],
- "w11": [
- [
- null,
- 108.8187082
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 26.21044859
- ]
- ]
- },
- "LeafNode_Scenario328": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 50.66947547
- ]
- ],
- "v2": [
- [
- null,
- 72.7036548
- ]
- ],
- "w11": [
- [
- null,
- 108.8187082
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 38.673594
- ]
- ]
- },
- "LeafNode_Scenario329": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 50.66947547
- ]
- ],
- "v2": [
- [
- null,
- 63.19891827
- ]
- ],
- "w11": [
- [
- null,
- 108.8187082
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 48.17833053
- ]
- ]
- },
- "LeafNode_Scenario33": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 126.52593535000001
- ]
- ],
- "v2": [
- [
- null,
- 36.16976617
- ]
- ],
- "w11": [
- [
- null,
- 32.96224832
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 75.20748263
- ]
- ]
- },
- "LeafNode_Scenario330": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 50.66947547
- ]
- ],
- "v2": [
- [
- null,
- 55.272063550000006
- ]
- ],
- "w11": [
- [
- null,
- 108.8187082
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 56.10518525
- ]
- ]
- },
- "LeafNode_Scenario331": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 50.66947547
- ]
- ],
- "v2": [
- [
- null,
- 48.31959126
- ]
- ],
- "w11": [
- [
- null,
- 108.8187082
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 63.05765754
- ]
- ]
- },
- "LeafNode_Scenario332": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 50.66947547
- ]
- ],
- "v2": [
- [
- null,
- 42.01789835
- ]
- ],
- "w11": [
- [
- null,
- 108.8187082
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 69.35935045
- ]
- ]
- },
- "LeafNode_Scenario333": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 50.66947547
- ]
- ],
- "v2": [
- [
- null,
- 36.16976617
- ]
- ],
- "w11": [
- [
- null,
- 108.8187082
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 75.20748263
- ]
- ]
- },
- "LeafNode_Scenario334": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 50.66947547
- ]
- ],
- "v2": [
- [
- null,
- 30.64327212
- ]
- ],
- "w11": [
- [
- null,
- 108.8187082
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 80.73397668
- ]
- ]
- },
- "LeafNode_Scenario335": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 50.66947547
- ]
- ],
- "v2": [
- [
- null,
- 25.34320052
- ]
- ],
- "w11": [
- [
- null,
- 108.8187082
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 86.03404828
- ]
- ]
- },
- "LeafNode_Scenario336": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 50.66947547
- ]
- ],
- "v2": [
- [
- null,
- 20.19595704
- ]
- ],
- "w11": [
- [
- null,
- 108.8187082
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 91.18129176
- ]
- ]
- },
- "LeafNode_Scenario337": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 50.66947547
- ]
- ],
- "v2": [
- [
- null,
- 15.1407419
- ]
- ],
- "w11": [
- [
- null,
- 108.8187082
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 96.23650690000001
- ]
- ]
- },
- "LeafNode_Scenario338": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 50.66947547
- ]
- ],
- "v2": [
- [
- null,
- 10.1238034
- ]
- ],
- "w11": [
- [
- null,
- 108.8187082
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 101.2534454
- ]
- ]
- },
- "LeafNode_Scenario339": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 50.66947547
- ]
- ],
- "v2": [
- [
- null,
- 5.0941815
- ]
- ],
- "w11": [
- [
- null,
- 108.8187082
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 106.2830673
- ]
- ]
- },
- "LeafNode_Scenario34": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 126.52593535000001
- ]
- ],
- "v2": [
- [
- null,
- 30.64327212
- ]
- ],
- "w11": [
- [
- null,
- 32.96224832
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 80.73397668
- ]
- ]
- },
- "LeafNode_Scenario340": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 50.66947547
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 108.8187082
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario341": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 45.45405697
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 108.8187082
- ]
- ],
- "w12": [
- [
- null,
- 5.2154185
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario342": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 40.05106597
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 108.8187082
- ]
- ],
- "w12": [
- [
- null,
- 10.618409499999999
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario343": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 34.37748827
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 108.8187082
- ]
- ],
- "w12": [
- [
- null,
- 16.2919872
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario344": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 28.322236769999996
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 108.8187082
- ]
- ],
- "w12": [
- [
- null,
- 22.3472387
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario345": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 21.72566187
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 108.8187082
- ]
- ],
- "w12": [
- [
- null,
- 28.9438136
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario346": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 14.338461570000002
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 108.8187082
- ]
- ],
- "w12": [
- [
- null,
- 36.3310139
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario347": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 5.72716776999997
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 108.8187082
- ]
- ],
- "w12": [
- [
- null,
- 44.9423077
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario348": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 4.99102743000002
- ]
- ],
- "v1": [
- [
- null,
- 0.0
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 108.8187082
- ]
- ],
- "w12": [
- [
- null,
- 50.66947547
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario349": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 20.19595703
- ]
- ],
- "v1": [
- [
- null,
- 0.0
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 108.8187082
- ]
- ],
- "w12": [
- [
- null,
- 50.66947547
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario35": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 126.52593535000001
- ]
- ],
- "v2": [
- [
- null,
- 25.34320052
- ]
- ],
- "w11": [
- [
- null,
- 32.96224832
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 86.03404828
- ]
- ]
- },
- "LeafNode_Scenario350": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 54.270669430000005
- ]
- ],
- "v1": [
- [
- null,
- 0.0
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 108.8187082
- ]
- ],
- "w12": [
- [
- null,
- 50.66947547
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario351": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 45.52223196999999
- ]
- ],
- "v2": [
- [
- null,
- 105.416929208
- ]
- ],
- "w11": [
- [
- null,
- 113.9659517
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 5.960319592
- ]
- ]
- },
- "LeafNode_Scenario352": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 45.52223196999999
- ]
- ],
- "v2": [
- [
- null,
- 85.16680021
- ]
- ],
- "w11": [
- [
- null,
- 113.9659517
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 26.21044859
- ]
- ]
- },
- "LeafNode_Scenario353": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 45.52223196999999
- ]
- ],
- "v2": [
- [
- null,
- 72.7036548
- ]
- ],
- "w11": [
- [
- null,
- 113.9659517
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 38.673594
- ]
- ]
- },
- "LeafNode_Scenario354": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 45.52223196999999
- ]
- ],
- "v2": [
- [
- null,
- 63.19891827
- ]
- ],
- "w11": [
- [
- null,
- 113.9659517
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 48.17833053
- ]
- ]
- },
- "LeafNode_Scenario355": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 45.52223196999999
- ]
- ],
- "v2": [
- [
- null,
- 55.272063550000006
- ]
- ],
- "w11": [
- [
- null,
- 113.9659517
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 56.10518525
- ]
- ]
- },
- "LeafNode_Scenario356": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 45.52223196999999
- ]
- ],
- "v2": [
- [
- null,
- 48.31959126
- ]
- ],
- "w11": [
- [
- null,
- 113.9659517
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 63.05765754
- ]
- ]
- },
- "LeafNode_Scenario357": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 45.52223196999999
- ]
- ],
- "v2": [
- [
- null,
- 42.01789835
- ]
- ],
- "w11": [
- [
- null,
- 113.9659517
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 69.35935045
- ]
- ]
- },
- "LeafNode_Scenario358": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 45.52223196999999
- ]
- ],
- "v2": [
- [
- null,
- 36.16976617
- ]
- ],
- "w11": [
- [
- null,
- 113.9659517
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 75.20748263
- ]
- ]
- },
- "LeafNode_Scenario359": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 45.52223196999999
- ]
- ],
- "v2": [
- [
- null,
- 30.64327212
- ]
- ],
- "w11": [
- [
- null,
- 113.9659517
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 80.73397668
- ]
- ]
- },
- "LeafNode_Scenario36": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 126.52593535000001
- ]
- ],
- "v2": [
- [
- null,
- 20.19595704
- ]
- ],
- "w11": [
- [
- null,
- 32.96224832
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 91.18129176
- ]
- ]
- },
- "LeafNode_Scenario360": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 45.52223196999999
- ]
- ],
- "v2": [
- [
- null,
- 25.34320052
- ]
- ],
- "w11": [
- [
- null,
- 113.9659517
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 86.03404828
- ]
- ]
- },
- "LeafNode_Scenario361": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 45.52223196999999
- ]
- ],
- "v2": [
- [
- null,
- 20.19595704
- ]
- ],
- "w11": [
- [
- null,
- 113.9659517
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 91.18129176
- ]
- ]
- },
- "LeafNode_Scenario362": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 45.52223196999999
- ]
- ],
- "v2": [
- [
- null,
- 15.1407419
- ]
- ],
- "w11": [
- [
- null,
- 113.9659517
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 96.23650690000001
- ]
- ]
- },
- "LeafNode_Scenario363": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 45.52223196999999
- ]
- ],
- "v2": [
- [
- null,
- 10.1238034
- ]
- ],
- "w11": [
- [
- null,
- 113.9659517
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 101.2534454
- ]
- ]
- },
- "LeafNode_Scenario364": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 45.52223196999999
- ]
- ],
- "v2": [
- [
- null,
- 5.0941815
- ]
- ],
- "w11": [
- [
- null,
- 113.9659517
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 106.2830673
- ]
- ]
- },
- "LeafNode_Scenario365": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 45.52223196999999
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 113.9659517
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario366": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 40.30681347
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 113.9659517
- ]
- ],
- "w12": [
- [
- null,
- 5.2154185
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario367": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 34.90382247
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 113.9659517
- ]
- ],
- "w12": [
- [
- null,
- 10.618409499999999
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario368": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 29.23024477
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 113.9659517
- ]
- ],
- "w12": [
- [
- null,
- 16.2919872
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario369": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 23.17499327
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 113.9659517
- ]
- ],
- "w12": [
- [
- null,
- 22.3472387
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario37": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 126.52593535000001
- ]
- ],
- "v2": [
- [
- null,
- 15.1407419
- ]
- ],
- "w11": [
- [
- null,
- 32.96224832
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 96.23650690000001
- ]
- ]
- },
- "LeafNode_Scenario370": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 16.57841837
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 113.9659517
- ]
- ],
- "w12": [
- [
- null,
- 28.9438136
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario371": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 9.19121806999996
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 113.9659517
- ]
- ],
- "w12": [
- [
- null,
- 36.3310139
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario372": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 0.579924269999964
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 113.9659517
- ]
- ],
- "w12": [
- [
- null,
- 44.9423077
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario373": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 10.13827093
- ]
- ],
- "v1": [
- [
- null,
- 0.0
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 113.9659517
- ]
- ],
- "w12": [
- [
- null,
- 45.52223196999999
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario374": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 25.34320053
- ]
- ],
- "v1": [
- [
- null,
- 0.0
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 113.9659517
- ]
- ],
- "w12": [
- [
- null,
- 45.52223196999999
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario375": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 59.41791293
- ]
- ],
- "v1": [
- [
- null,
- 0.0
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 113.9659517
- ]
- ],
- "w12": [
- [
- null,
- 45.52223196999999
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario376": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 40.22216037
- ]
- ],
- "v2": [
- [
- null,
- 105.416929208
- ]
- ],
- "w11": [
- [
- null,
- 119.2660233
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 5.960319592
- ]
- ]
- },
- "LeafNode_Scenario377": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 40.22216037
- ]
- ],
- "v2": [
- [
- null,
- 85.16680021
- ]
- ],
- "w11": [
- [
- null,
- 119.2660233
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 26.21044859
- ]
- ]
- },
- "LeafNode_Scenario378": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 40.22216037
- ]
- ],
- "v2": [
- [
- null,
- 72.7036548
- ]
- ],
- "w11": [
- [
- null,
- 119.2660233
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 38.673594
- ]
- ]
- },
- "LeafNode_Scenario379": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 40.22216037
- ]
- ],
- "v2": [
- [
- null,
- 63.19891827
- ]
- ],
- "w11": [
- [
- null,
- 119.2660233
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 48.17833053
- ]
- ]
- },
- "LeafNode_Scenario38": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 126.52593535000001
- ]
- ],
- "v2": [
- [
- null,
- 10.1238034
- ]
- ],
- "w11": [
- [
- null,
- 32.96224832
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 101.2534454
- ]
- ]
- },
- "LeafNode_Scenario380": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 40.22216037
- ]
- ],
- "v2": [
- [
- null,
- 55.272063550000006
- ]
- ],
- "w11": [
- [
- null,
- 119.2660233
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 56.10518525
- ]
- ]
- },
- "LeafNode_Scenario381": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 40.22216037
- ]
- ],
- "v2": [
- [
- null,
- 48.31959126
- ]
- ],
- "w11": [
- [
- null,
- 119.2660233
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 63.05765754
- ]
- ]
- },
- "LeafNode_Scenario382": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 40.22216037
- ]
- ],
- "v2": [
- [
- null,
- 42.01789835
- ]
- ],
- "w11": [
- [
- null,
- 119.2660233
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 69.35935045
- ]
- ]
- },
- "LeafNode_Scenario383": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 40.22216037
- ]
- ],
- "v2": [
- [
- null,
- 36.16976617
- ]
- ],
- "w11": [
- [
- null,
- 119.2660233
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 75.20748263
- ]
- ]
- },
- "LeafNode_Scenario384": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 40.22216037
- ]
- ],
- "v2": [
- [
- null,
- 30.64327212
- ]
- ],
- "w11": [
- [
- null,
- 119.2660233
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 80.73397668
- ]
- ]
- },
- "LeafNode_Scenario385": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 40.22216037
- ]
- ],
- "v2": [
- [
- null,
- 25.34320052
- ]
- ],
- "w11": [
- [
- null,
- 119.2660233
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 86.03404828
- ]
- ]
- },
- "LeafNode_Scenario386": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 40.22216037
- ]
- ],
- "v2": [
- [
- null,
- 20.19595704
- ]
- ],
- "w11": [
- [
- null,
- 119.2660233
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 91.18129176
- ]
- ]
- },
- "LeafNode_Scenario387": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 40.22216037
- ]
- ],
- "v2": [
- [
- null,
- 15.1407419
- ]
- ],
- "w11": [
- [
- null,
- 119.2660233
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 96.23650690000001
- ]
- ]
- },
- "LeafNode_Scenario388": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 40.22216037
- ]
- ],
- "v2": [
- [
- null,
- 10.1238034
- ]
- ],
- "w11": [
- [
- null,
- 119.2660233
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 101.2534454
- ]
- ]
- },
- "LeafNode_Scenario389": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 40.22216037
- ]
- ],
- "v2": [
- [
- null,
- 5.0941815
- ]
- ],
- "w11": [
- [
- null,
- 119.2660233
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 106.2830673
- ]
- ]
- },
- "LeafNode_Scenario39": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 126.52593535000001
- ]
- ],
- "v2": [
- [
- null,
- 5.0941815
- ]
- ],
- "w11": [
- [
- null,
- 32.96224832
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 106.2830673
- ]
- ]
- },
- "LeafNode_Scenario390": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 40.22216037
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 119.2660233
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario391": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 35.00674187
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 119.2660233
- ]
- ],
- "w12": [
- [
- null,
- 5.2154185
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario392": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 29.60375087
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 119.2660233
- ]
- ],
- "w12": [
- [
- null,
- 10.618409499999999
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario393": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 23.93017317
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 119.2660233
- ]
- ],
- "w12": [
- [
- null,
- 16.2919872
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario394": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 17.87492167
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 119.2660233
- ]
- ],
- "w12": [
- [
- null,
- 22.3472387
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario395": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 11.27834677
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 119.2660233
- ]
- ],
- "w12": [
- [
- null,
- 28.9438136
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario396": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 3.89114647
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 119.2660233
- ]
- ],
- "w12": [
- [
- null,
- 36.3310139
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario397": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 4.72014733000002
- ]
- ],
- "v1": [
- [
- null,
- 0.0
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 119.2660233
- ]
- ],
- "w12": [
- [
- null,
- 40.22216037
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario398": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 15.43834253
- ]
- ],
- "v1": [
- [
- null,
- 0.0
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 119.2660233
- ]
- ],
- "w12": [
- [
- null,
- 40.22216037
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario399": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 30.64327213
- ]
- ],
- "v1": [
- [
- null,
- 0.0
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 119.2660233
- ]
- ],
- "w12": [
- [
- null,
- 40.22216037
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario4": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 141.73086502
- ]
- ],
- "v2": [
- [
- null,
- 63.19891827
- ]
- ],
- "w11": [
- [
- null,
- 17.75731865
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 48.17833053
- ]
- ]
- },
- "LeafNode_Scenario40": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 126.52593535000001
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 32.96224832
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario400": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 64.71798453
- ]
- ],
- "v1": [
- [
- null,
- 0.0
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 119.2660233
- ]
- ],
- "w12": [
- [
- null,
- 40.22216037
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario401": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 34.69566627
- ]
- ],
- "v2": [
- [
- null,
- 105.416929208
- ]
- ],
- "w11": [
- [
- null,
- 124.79251740000001
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 5.960319592
- ]
- ]
- },
- "LeafNode_Scenario402": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 34.69566627
- ]
- ],
- "v2": [
- [
- null,
- 85.16680021
- ]
- ],
- "w11": [
- [
- null,
- 124.79251740000001
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 26.21044859
- ]
- ]
- },
- "LeafNode_Scenario403": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 34.69566627
- ]
- ],
- "v2": [
- [
- null,
- 72.7036548
- ]
- ],
- "w11": [
- [
- null,
- 124.79251740000001
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 38.673594
- ]
- ]
- },
- "LeafNode_Scenario404": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 34.69566627
- ]
- ],
- "v2": [
- [
- null,
- 63.19891827
- ]
- ],
- "w11": [
- [
- null,
- 124.79251740000001
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 48.17833053
- ]
- ]
- },
- "LeafNode_Scenario405": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 34.69566627
- ]
- ],
- "v2": [
- [
- null,
- 55.272063550000006
- ]
- ],
- "w11": [
- [
- null,
- 124.79251740000001
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 56.10518525
- ]
- ]
- },
- "LeafNode_Scenario406": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 34.69566627
- ]
- ],
- "v2": [
- [
- null,
- 48.31959126
- ]
- ],
- "w11": [
- [
- null,
- 124.79251740000001
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 63.05765754
- ]
- ]
- },
- "LeafNode_Scenario407": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 34.69566627
- ]
- ],
- "v2": [
- [
- null,
- 42.01789835
- ]
- ],
- "w11": [
- [
- null,
- 124.79251740000001
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 69.35935045
- ]
- ]
- },
- "LeafNode_Scenario408": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 34.69566627
- ]
- ],
- "v2": [
- [
- null,
- 36.16976617
- ]
- ],
- "w11": [
- [
- null,
- 124.79251740000001
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 75.20748263
- ]
- ]
- },
- "LeafNode_Scenario409": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 34.69566627
- ]
- ],
- "v2": [
- [
- null,
- 30.64327212
- ]
- ],
- "w11": [
- [
- null,
- 124.79251740000001
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 80.73397668
- ]
- ]
- },
- "LeafNode_Scenario41": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 121.31051684999998
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 32.96224832
- ]
- ],
- "w12": [
- [
- null,
- 5.2154185
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario410": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 34.69566627
- ]
- ],
- "v2": [
- [
- null,
- 25.34320052
- ]
- ],
- "w11": [
- [
- null,
- 124.79251740000001
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 86.03404828
- ]
- ]
- },
- "LeafNode_Scenario411": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 34.69566627
- ]
- ],
- "v2": [
- [
- null,
- 20.19595704
- ]
- ],
- "w11": [
- [
- null,
- 124.79251740000001
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 91.18129176
- ]
- ]
- },
- "LeafNode_Scenario412": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 34.69566627
- ]
- ],
- "v2": [
- [
- null,
- 15.1407419
- ]
- ],
- "w11": [
- [
- null,
- 124.79251740000001
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 96.23650690000001
- ]
- ]
- },
- "LeafNode_Scenario413": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 34.69566627
- ]
- ],
- "v2": [
- [
- null,
- 10.1238034
- ]
- ],
- "w11": [
- [
- null,
- 124.79251740000001
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 101.2534454
- ]
- ]
- },
- "LeafNode_Scenario414": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 34.69566627
- ]
- ],
- "v2": [
- [
- null,
- 5.0941815
- ]
- ],
- "w11": [
- [
- null,
- 124.79251740000001
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 106.2830673
- ]
- ]
- },
- "LeafNode_Scenario415": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 34.69566627
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 124.79251740000001
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario416": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 29.48024777
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 124.79251740000001
- ]
- ],
- "w12": [
- [
- null,
- 5.2154185
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario417": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 24.07725677
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 124.79251740000001
- ]
- ],
- "w12": [
- [
- null,
- 10.618409499999999
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario418": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 18.40367907
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 124.79251740000001
- ]
- ],
- "w12": [
- [
- null,
- 16.2919872
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario419": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 12.34842757
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 124.79251740000001
- ]
- ],
- "w12": [
- [
- null,
- 22.3472387
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario42": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 115.90752585
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 32.96224832
- ]
- ],
- "w12": [
- [
- null,
- 10.618409499999999
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario420": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 5.75185267000001
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 124.79251740000001
- ]
- ],
- "w12": [
- [
- null,
- 28.9438136
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario421": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 1.6353476300000098
- ]
- ],
- "v1": [
- [
- null,
- 0.0
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 124.79251740000001
- ]
- ],
- "w12": [
- [
- null,
- 34.69566627
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario422": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 10.24664143
- ]
- ],
- "v1": [
- [
- null,
- 0.0
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 124.79251740000001
- ]
- ],
- "w12": [
- [
- null,
- 34.69566627
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario423": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 20.96483663
- ]
- ],
- "v1": [
- [
- null,
- 0.0
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 124.79251740000001
- ]
- ],
- "w12": [
- [
- null,
- 34.69566627
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario424": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 36.16976623
- ]
- ],
- "v1": [
- [
- null,
- 0.0
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 124.79251740000001
- ]
- ],
- "w12": [
- [
- null,
- 34.69566627
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario425": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 70.24447863
- ]
- ],
- "v1": [
- [
- null,
- 0.0
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 124.79251740000001
- ]
- ],
- "w12": [
- [
- null,
- 34.69566627
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario426": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 28.84753407
- ]
- ],
- "v2": [
- [
- null,
- 105.416929208
- ]
- ],
- "w11": [
- [
- null,
- 130.6406496
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 5.960319592
- ]
- ]
- },
- "LeafNode_Scenario427": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 28.84753407
- ]
- ],
- "v2": [
- [
- null,
- 85.16680021
- ]
- ],
- "w11": [
- [
- null,
- 130.6406496
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 26.21044859
- ]
- ]
- },
- "LeafNode_Scenario428": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 28.84753407
- ]
- ],
- "v2": [
- [
- null,
- 72.7036548
- ]
- ],
- "w11": [
- [
- null,
- 130.6406496
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 38.673594
- ]
- ]
- },
- "LeafNode_Scenario429": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 28.84753407
- ]
- ],
- "v2": [
- [
- null,
- 63.19891827
- ]
- ],
- "w11": [
- [
- null,
- 130.6406496
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 48.17833053
- ]
- ]
- },
- "LeafNode_Scenario43": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 110.23394815
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 32.96224832
- ]
- ],
- "w12": [
- [
- null,
- 16.2919872
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario430": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 28.84753407
- ]
- ],
- "v2": [
- [
- null,
- 55.272063550000006
- ]
- ],
- "w11": [
- [
- null,
- 130.6406496
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 56.10518525
- ]
- ]
- },
- "LeafNode_Scenario431": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 28.84753407
- ]
- ],
- "v2": [
- [
- null,
- 48.31959126
- ]
- ],
- "w11": [
- [
- null,
- 130.6406496
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 63.05765754
- ]
- ]
- },
- "LeafNode_Scenario432": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 28.84753407
- ]
- ],
- "v2": [
- [
- null,
- 42.01789835
- ]
- ],
- "w11": [
- [
- null,
- 130.6406496
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 69.35935045
- ]
- ]
- },
- "LeafNode_Scenario433": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 28.84753407
- ]
- ],
- "v2": [
- [
- null,
- 36.16976617
- ]
- ],
- "w11": [
- [
- null,
- 130.6406496
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 75.20748263
- ]
- ]
- },
- "LeafNode_Scenario434": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 28.84753407
- ]
- ],
- "v2": [
- [
- null,
- 30.64327212
- ]
- ],
- "w11": [
- [
- null,
- 130.6406496
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 80.73397668
- ]
- ]
- },
- "LeafNode_Scenario435": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 28.84753407
- ]
- ],
- "v2": [
- [
- null,
- 25.34320052
- ]
- ],
- "w11": [
- [
- null,
- 130.6406496
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 86.03404828
- ]
- ]
- },
- "LeafNode_Scenario436": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 28.84753407
- ]
- ],
- "v2": [
- [
- null,
- 20.19595704
- ]
- ],
- "w11": [
- [
- null,
- 130.6406496
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 91.18129176
- ]
- ]
- },
- "LeafNode_Scenario437": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 28.84753407
- ]
- ],
- "v2": [
- [
- null,
- 15.1407419
- ]
- ],
- "w11": [
- [
- null,
- 130.6406496
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 96.23650690000001
- ]
- ]
- },
- "LeafNode_Scenario438": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 28.84753407
- ]
- ],
- "v2": [
- [
- null,
- 10.1238034
- ]
- ],
- "w11": [
- [
- null,
- 130.6406496
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 101.2534454
- ]
- ]
- },
- "LeafNode_Scenario439": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 28.84753407
- ]
- ],
- "v2": [
- [
- null,
- 5.0941815
- ]
- ],
- "w11": [
- [
- null,
- 130.6406496
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 106.2830673
- ]
- ]
- },
- "LeafNode_Scenario44": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 104.17869665
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 32.96224832
- ]
- ],
- "w12": [
- [
- null,
- 22.3472387
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario440": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 28.84753407
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 130.6406496
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario441": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 23.63211557
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 130.6406496
- ]
- ],
- "w12": [
- [
- null,
- 5.2154185
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario442": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 18.22912457
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 130.6406496
- ]
- ],
- "w12": [
- [
- null,
- 10.618409499999999
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario443": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 12.55554687
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 130.6406496
- ]
- ],
- "w12": [
- [
- null,
- 16.2919872
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario444": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 6.50029536999998
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 130.6406496
- ]
- ],
- "w12": [
- [
- null,
- 22.3472387
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario445": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0962795299999897
- ]
- ],
- "v1": [
- [
- null,
- 0.0
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 130.6406496
- ]
- ],
- "w12": [
- [
- null,
- 28.84753407
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario446": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 7.48347983000001
- ]
- ],
- "v1": [
- [
- null,
- 0.0
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 130.6406496
- ]
- ],
- "w12": [
- [
- null,
- 28.84753407
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario447": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 16.09477363
- ]
- ],
- "v1": [
- [
- null,
- 0.0
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 130.6406496
- ]
- ],
- "w12": [
- [
- null,
- 28.84753407
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario448": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 26.81296883
- ]
- ],
- "v1": [
- [
- null,
- 0.0
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 130.6406496
- ]
- ],
- "w12": [
- [
- null,
- 28.84753407
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario449": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 42.01789843
- ]
- ],
- "v1": [
- [
- null,
- 0.0
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 130.6406496
- ]
- ],
- "w12": [
- [
- null,
- 28.84753407
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario45": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 97.58212175000001
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 32.96224832
- ]
- ],
- "w12": [
- [
- null,
- 28.9438136
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario450": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 76.09261083
- ]
- ],
- "v1": [
- [
- null,
- 0.0
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 130.6406496
- ]
- ],
- "w12": [
- [
- null,
- 28.84753407
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario451": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 22.54584117
- ]
- ],
- "v2": [
- [
- null,
- 105.416929208
- ]
- ],
- "w11": [
- [
- null,
- 136.9423425
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 5.960319592
- ]
- ]
- },
- "LeafNode_Scenario452": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 22.54584117
- ]
- ],
- "v2": [
- [
- null,
- 85.16680021
- ]
- ],
- "w11": [
- [
- null,
- 136.9423425
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 26.21044859
- ]
- ]
- },
- "LeafNode_Scenario453": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 22.54584117
- ]
- ],
- "v2": [
- [
- null,
- 72.7036548
- ]
- ],
- "w11": [
- [
- null,
- 136.9423425
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 38.673594
- ]
- ]
- },
- "LeafNode_Scenario454": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 22.54584117
- ]
- ],
- "v2": [
- [
- null,
- 63.19891827
- ]
- ],
- "w11": [
- [
- null,
- 136.9423425
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 48.17833053
- ]
- ]
- },
- "LeafNode_Scenario455": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 22.54584117
- ]
- ],
- "v2": [
- [
- null,
- 55.272063550000006
- ]
- ],
- "w11": [
- [
- null,
- 136.9423425
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 56.10518525
- ]
- ]
- },
- "LeafNode_Scenario456": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 22.54584117
- ]
- ],
- "v2": [
- [
- null,
- 48.31959126
- ]
- ],
- "w11": [
- [
- null,
- 136.9423425
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 63.05765754
- ]
- ]
- },
- "LeafNode_Scenario457": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 22.54584117
- ]
- ],
- "v2": [
- [
- null,
- 42.01789835
- ]
- ],
- "w11": [
- [
- null,
- 136.9423425
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 69.35935045
- ]
- ]
- },
- "LeafNode_Scenario458": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 22.54584117
- ]
- ],
- "v2": [
- [
- null,
- 36.16976617
- ]
- ],
- "w11": [
- [
- null,
- 136.9423425
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 75.20748263
- ]
- ]
- },
- "LeafNode_Scenario459": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 22.54584117
- ]
- ],
- "v2": [
- [
- null,
- 30.64327212
- ]
- ],
- "w11": [
- [
- null,
- 136.9423425
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 80.73397668
- ]
- ]
- },
- "LeafNode_Scenario46": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 90.19492145
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 32.96224832
- ]
- ],
- "w12": [
- [
- null,
- 36.3310139
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario460": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 22.54584117
- ]
- ],
- "v2": [
- [
- null,
- 25.34320052
- ]
- ],
- "w11": [
- [
- null,
- 136.9423425
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 86.03404828
- ]
- ]
- },
- "LeafNode_Scenario461": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 22.54584117
- ]
- ],
- "v2": [
- [
- null,
- 20.19595704
- ]
- ],
- "w11": [
- [
- null,
- 136.9423425
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 91.18129176
- ]
- ]
- },
- "LeafNode_Scenario462": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 22.54584117
- ]
- ],
- "v2": [
- [
- null,
- 15.1407419
- ]
- ],
- "w11": [
- [
- null,
- 136.9423425
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 96.23650690000001
- ]
- ]
- },
- "LeafNode_Scenario463": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 22.54584117
- ]
- ],
- "v2": [
- [
- null,
- 10.1238034
- ]
- ],
- "w11": [
- [
- null,
- 136.9423425
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 101.2534454
- ]
- ]
- },
- "LeafNode_Scenario464": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 22.54584117
- ]
- ],
- "v2": [
- [
- null,
- 5.0941815
- ]
- ],
- "w11": [
- [
- null,
- 136.9423425
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 106.2830673
- ]
- ]
- },
- "LeafNode_Scenario465": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 22.54584117
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 136.9423425
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario466": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 17.33042267
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 136.9423425
- ]
- ],
- "w12": [
- [
- null,
- 5.2154185
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario467": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 11.92743167
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 136.9423425
- ]
- ],
- "w12": [
- [
- null,
- 10.618409499999999
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario468": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 6.25385396999999
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 136.9423425
- ]
- ],
- "w12": [
- [
- null,
- 16.2919872
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario469": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 0.198602469999997
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 136.9423425
- ]
- ],
- "w12": [
- [
- null,
- 22.3472387
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario47": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 81.58362765
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 32.96224832
- ]
- ],
- "w12": [
- [
- null,
- 44.9423077
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario470": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 6.397972429999999
- ]
- ],
- "v1": [
- [
- null,
- 0.0
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 136.9423425
- ]
- ],
- "w12": [
- [
- null,
- 22.54584117
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario471": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 13.785172730000001
- ]
- ],
- "v1": [
- [
- null,
- 0.0
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 136.9423425
- ]
- ],
- "w12": [
- [
- null,
- 22.54584117
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario472": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 22.39646653
- ]
- ],
- "v1": [
- [
- null,
- 0.0
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 136.9423425
- ]
- ],
- "w12": [
- [
- null,
- 22.54584117
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario473": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 33.11466173
- ]
- ],
- "v1": [
- [
- null,
- 0.0
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 136.9423425
- ]
- ],
- "w12": [
- [
- null,
- 22.54584117
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario474": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 48.31959133
- ]
- ],
- "v1": [
- [
- null,
- 0.0
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 136.9423425
- ]
- ],
- "w12": [
- [
- null,
- 22.54584117
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario475": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 82.39430373
- ]
- ],
- "v1": [
- [
- null,
- 0.0
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 136.9423425
- ]
- ],
- "w12": [
- [
- null,
- 22.54584117
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario476": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 15.593368869999999
- ]
- ],
- "v2": [
- [
- null,
- 105.416929208
- ]
- ],
- "w11": [
- [
- null,
- 143.8948148
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 5.960319592
- ]
- ]
- },
- "LeafNode_Scenario477": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 15.593368869999999
- ]
- ],
- "v2": [
- [
- null,
- 85.16680021
- ]
- ],
- "w11": [
- [
- null,
- 143.8948148
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 26.21044859
- ]
- ]
- },
- "LeafNode_Scenario478": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 15.593368869999999
- ]
- ],
- "v2": [
- [
- null,
- 72.7036548
- ]
- ],
- "w11": [
- [
- null,
- 143.8948148
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 38.673594
- ]
- ]
- },
- "LeafNode_Scenario479": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 15.593368869999999
- ]
- ],
- "v2": [
- [
- null,
- 63.19891827
- ]
- ],
- "w11": [
- [
- null,
- 143.8948148
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 48.17833053
- ]
- ]
- },
- "LeafNode_Scenario48": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 70.86543245
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 32.96224832
- ]
- ],
- "w12": [
- [
- null,
- 55.6605029
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario480": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 15.593368869999999
- ]
- ],
- "v2": [
- [
- null,
- 55.272063550000006
- ]
- ],
- "w11": [
- [
- null,
- 143.8948148
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 56.10518525
- ]
- ]
- },
- "LeafNode_Scenario481": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 15.593368869999999
- ]
- ],
- "v2": [
- [
- null,
- 48.31959126
- ]
- ],
- "w11": [
- [
- null,
- 143.8948148
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 63.05765754
- ]
- ]
- },
- "LeafNode_Scenario482": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 15.593368869999999
- ]
- ],
- "v2": [
- [
- null,
- 42.01789835
- ]
- ],
- "w11": [
- [
- null,
- 143.8948148
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 69.35935045
- ]
- ]
- },
- "LeafNode_Scenario483": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 15.593368869999999
- ]
- ],
- "v2": [
- [
- null,
- 36.16976617
- ]
- ],
- "w11": [
- [
- null,
- 143.8948148
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 75.20748263
- ]
- ]
- },
- "LeafNode_Scenario484": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 15.593368869999999
- ]
- ],
- "v2": [
- [
- null,
- 30.64327212
- ]
- ],
- "w11": [
- [
- null,
- 143.8948148
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 80.73397668
- ]
- ]
- },
- "LeafNode_Scenario485": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 15.593368869999999
- ]
- ],
- "v2": [
- [
- null,
- 25.34320052
- ]
- ],
- "w11": [
- [
- null,
- 143.8948148
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 86.03404828
- ]
- ]
- },
- "LeafNode_Scenario486": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 15.593368869999999
- ]
- ],
- "v2": [
- [
- null,
- 20.19595704
- ]
- ],
- "w11": [
- [
- null,
- 143.8948148
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 91.18129176
- ]
- ]
- },
- "LeafNode_Scenario487": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 15.593368869999999
- ]
- ],
- "v2": [
- [
- null,
- 15.1407419
- ]
- ],
- "w11": [
- [
- null,
- 143.8948148
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 96.23650690000001
- ]
- ]
- },
- "LeafNode_Scenario488": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 15.593368869999999
- ]
- ],
- "v2": [
- [
- null,
- 10.1238034
- ]
- ],
- "w11": [
- [
- null,
- 143.8948148
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 101.2534454
- ]
- ]
- },
- "LeafNode_Scenario489": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 15.593368869999999
- ]
- ],
- "v2": [
- [
- null,
- 5.0941815
- ]
- ],
- "w11": [
- [
- null,
- 143.8948148
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 106.2830673
- ]
- ]
- },
- "LeafNode_Scenario49": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 55.66050285
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 32.96224832
- ]
- ],
- "w12": [
- [
- null,
- 70.8654325
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario490": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 15.593368869999999
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 143.8948148
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario491": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 10.37795037
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 143.8948148
- ]
- ],
- "w12": [
- [
- null,
- 5.2154185
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario492": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 4.97495936999999
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 143.8948148
- ]
- ],
- "w12": [
- [
- null,
- 10.618409499999999
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario493": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.698618330000016
- ]
- ],
- "v1": [
- [
- null,
- 0.0
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 143.8948148
- ]
- ],
- "w12": [
- [
- null,
- 15.593368869999999
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario494": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 6.75386983000003
- ]
- ],
- "v1": [
- [
- null,
- 0.0
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 143.8948148
- ]
- ],
- "w12": [
- [
- null,
- 15.593368869999999
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario495": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 13.350444729999998
- ]
- ],
- "v1": [
- [
- null,
- 0.0
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 143.8948148
- ]
- ],
- "w12": [
- [
- null,
- 15.593368869999999
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario496": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 20.737645030000003
- ]
- ],
- "v1": [
- [
- null,
- 0.0
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 143.8948148
- ]
- ],
- "w12": [
- [
- null,
- 15.593368869999999
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario497": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 29.34893883
- ]
- ],
- "v1": [
- [
- null,
- 0.0
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 143.8948148
- ]
- ],
- "w12": [
- [
- null,
- 15.593368869999999
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario498": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 40.06713403
- ]
- ],
- "v1": [
- [
- null,
- 0.0
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 143.8948148
- ]
- ],
- "w12": [
- [
- null,
- 15.593368869999999
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario499": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 55.272063630000005
- ]
- ],
- "v1": [
- [
- null,
- 0.0
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 143.8948148
- ]
- ],
- "w12": [
- [
- null,
- 15.593368869999999
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario5": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 141.73086502
- ]
- ],
- "v2": [
- [
- null,
- 55.272063550000006
- ]
- ],
- "w11": [
- [
- null,
- 17.75731865
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 56.10518525
- ]
- ]
- },
- "LeafNode_Scenario50": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 21.58579045
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 32.96224832
- ]
- ],
- "w12": [
- [
- null,
- 104.9401449
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario500": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 89.34677603
- ]
- ],
- "v1": [
- [
- null,
- 0.0
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 143.8948148
- ]
- ],
- "w12": [
- [
- null,
- 15.593368869999999
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario501": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 7.66651416999997
- ]
- ],
- "v2": [
- [
- null,
- 105.416929208
- ]
- ],
- "w11": [
- [
- null,
- 151.8216695
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 5.960319592
- ]
- ]
- },
- "LeafNode_Scenario502": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 7.66651416999997
- ]
- ],
- "v2": [
- [
- null,
- 85.16680021
- ]
- ],
- "w11": [
- [
- null,
- 151.8216695
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 26.21044859
- ]
- ]
- },
- "LeafNode_Scenario503": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 7.66651416999997
- ]
- ],
- "v2": [
- [
- null,
- 72.7036548
- ]
- ],
- "w11": [
- [
- null,
- 151.8216695
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 38.673594
- ]
- ]
- },
- "LeafNode_Scenario504": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 7.66651416999997
- ]
- ],
- "v2": [
- [
- null,
- 63.19891827
- ]
- ],
- "w11": [
- [
- null,
- 151.8216695
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 48.17833053
- ]
- ]
- },
- "LeafNode_Scenario505": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 7.66651416999997
- ]
- ],
- "v2": [
- [
- null,
- 55.272063550000006
- ]
- ],
- "w11": [
- [
- null,
- 151.8216695
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 56.10518525
- ]
- ]
- },
- "LeafNode_Scenario506": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 7.66651416999997
- ]
- ],
- "v2": [
- [
- null,
- 48.31959126
- ]
- ],
- "w11": [
- [
- null,
- 151.8216695
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 63.05765754
- ]
- ]
- },
- "LeafNode_Scenario507": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 7.66651416999997
- ]
- ],
- "v2": [
- [
- null,
- 42.01789835
- ]
- ],
- "w11": [
- [
- null,
- 151.8216695
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 69.35935045
- ]
- ]
- },
- "LeafNode_Scenario508": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 7.66651416999997
- ]
- ],
- "v2": [
- [
- null,
- 36.16976617
- ]
- ],
- "w11": [
- [
- null,
- 151.8216695
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 75.20748263
- ]
- ]
- },
- "LeafNode_Scenario509": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 7.66651416999997
- ]
- ],
- "v2": [
- [
- null,
- 30.64327212
- ]
- ],
- "w11": [
- [
- null,
- 151.8216695
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 80.73397668
- ]
- ]
- },
- "LeafNode_Scenario51": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 115.80774011999999
- ]
- ],
- "v2": [
- [
- null,
- 105.416929208
- ]
- ],
- "w11": [
- [
- null,
- 43.68044355
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 5.960319592
- ]
- ]
- },
- "LeafNode_Scenario510": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 7.66651416999997
- ]
- ],
- "v2": [
- [
- null,
- 25.34320052
- ]
- ],
- "w11": [
- [
- null,
- 151.8216695
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 86.03404828
- ]
- ]
- },
- "LeafNode_Scenario511": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 7.66651416999997
- ]
- ],
- "v2": [
- [
- null,
- 20.19595704
- ]
- ],
- "w11": [
- [
- null,
- 151.8216695
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 91.18129176
- ]
- ]
- },
- "LeafNode_Scenario512": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 7.66651416999997
- ]
- ],
- "v2": [
- [
- null,
- 15.1407419
- ]
- ],
- "w11": [
- [
- null,
- 151.8216695
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 96.23650690000001
- ]
- ]
- },
- "LeafNode_Scenario513": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 7.66651416999997
- ]
- ],
- "v2": [
- [
- null,
- 10.1238034
- ]
- ],
- "w11": [
- [
- null,
- 151.8216695
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 101.2534454
- ]
- ]
- },
- "LeafNode_Scenario514": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 7.66651416999997
- ]
- ],
- "v2": [
- [
- null,
- 5.0941815
- ]
- ],
- "w11": [
- [
- null,
- 151.8216695
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 106.2830673
- ]
- ]
- },
- "LeafNode_Scenario515": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 7.66651416999997
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 151.8216695
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario516": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 2.4510956699999706
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 151.8216695
- ]
- ],
- "w12": [
- [
- null,
- 5.2154185
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario517": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 2.9518953300000303
- ]
- ],
- "v1": [
- [
- null,
- 0.0
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 151.8216695
- ]
- ],
- "w12": [
- [
- null,
- 7.66651416999997
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario518": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 8.62547303000002
- ]
- ],
- "v1": [
- [
- null,
- 0.0
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 151.8216695
- ]
- ],
- "w12": [
- [
- null,
- 7.66651416999997
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario519": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 14.68072453
- ]
- ],
- "v1": [
- [
- null,
- 0.0
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 151.8216695
- ]
- ],
- "w12": [
- [
- null,
- 7.66651416999997
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario52": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 115.80774011999999
- ]
- ],
- "v2": [
- [
- null,
- 85.16680021
- ]
- ],
- "w11": [
- [
- null,
- 43.68044355
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 26.21044859
- ]
- ]
- },
- "LeafNode_Scenario520": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 21.27729943
- ]
- ],
- "v1": [
- [
- null,
- 0.0
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 151.8216695
- ]
- ],
- "w12": [
- [
- null,
- 7.66651416999997
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario521": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 28.66449973
- ]
- ],
- "v1": [
- [
- null,
- 0.0
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 151.8216695
- ]
- ],
- "w12": [
- [
- null,
- 7.66651416999997
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario522": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 37.27579353
- ]
- ],
- "v1": [
- [
- null,
- 0.0
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 151.8216695
- ]
- ],
- "w12": [
- [
- null,
- 7.66651416999997
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario523": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 47.99398873
- ]
- ],
- "v1": [
- [
- null,
- 0.0
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 151.8216695
- ]
- ],
- "w12": [
- [
- null,
- 7.66651416999997
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario524": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 63.19891833
- ]
- ],
- "v1": [
- [
- null,
- 0.0
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 151.8216695
- ]
- ],
- "w12": [
- [
- null,
- 7.66651416999997
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario525": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 97.27363073
- ]
- ],
- "v1": [
- [
- null,
- 0.0
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 151.8216695
- ]
- ],
- "w12": [
- [
- null,
- 7.66651416999997
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario526": {
- "u1": [
- [
- null,
- 1.83822233000001
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 0.0
- ]
- ],
- "v2": [
- [
- null,
- 105.416929208
- ]
- ],
- "w11": [
- [
- null,
- 159.48818367
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 5.960319592
- ]
- ]
- },
- "LeafNode_Scenario527": {
- "u1": [
- [
- null,
- 1.83822233000001
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 0.0
- ]
- ],
- "v2": [
- [
- null,
- 85.16680021
- ]
- ],
- "w11": [
- [
- null,
- 159.48818367
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 26.21044859
- ]
- ]
- },
- "LeafNode_Scenario528": {
- "u1": [
- [
- null,
- 1.83822233000001
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 0.0
- ]
- ],
- "v2": [
- [
- null,
- 72.7036548
- ]
- ],
- "w11": [
- [
- null,
- 159.48818367
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 38.673594
- ]
- ]
- },
- "LeafNode_Scenario529": {
- "u1": [
- [
- null,
- 1.83822233000001
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 0.0
- ]
- ],
- "v2": [
- [
- null,
- 63.19891827
- ]
- ],
- "w11": [
- [
- null,
- 159.48818367
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 48.17833053
- ]
- ]
- },
- "LeafNode_Scenario53": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 115.80774011999999
- ]
- ],
- "v2": [
- [
- null,
- 72.7036548
- ]
- ],
- "w11": [
- [
- null,
- 43.68044355
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 38.673594
- ]
- ]
- },
- "LeafNode_Scenario530": {
- "u1": [
- [
- null,
- 1.83822233000001
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 0.0
- ]
- ],
- "v2": [
- [
- null,
- 55.272063550000006
- ]
- ],
- "w11": [
- [
- null,
- 159.48818367
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 56.10518525
- ]
- ]
- },
- "LeafNode_Scenario531": {
- "u1": [
- [
- null,
- 1.83822233000001
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 0.0
- ]
- ],
- "v2": [
- [
- null,
- 48.31959126
- ]
- ],
- "w11": [
- [
- null,
- 159.48818367
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 63.05765754
- ]
- ]
- },
- "LeafNode_Scenario532": {
- "u1": [
- [
- null,
- 1.83822233000001
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 0.0
- ]
- ],
- "v2": [
- [
- null,
- 42.01789835
- ]
- ],
- "w11": [
- [
- null,
- 159.48818367
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 69.35935045
- ]
- ]
- },
- "LeafNode_Scenario533": {
- "u1": [
- [
- null,
- 1.83822233000001
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 0.0
- ]
- ],
- "v2": [
- [
- null,
- 36.16976617
- ]
- ],
- "w11": [
- [
- null,
- 159.48818367
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 75.20748263
- ]
- ]
- },
- "LeafNode_Scenario534": {
- "u1": [
- [
- null,
- 1.83822233000001
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 0.0
- ]
- ],
- "v2": [
- [
- null,
- 30.64327212
- ]
- ],
- "w11": [
- [
- null,
- 159.48818367
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 80.73397668
- ]
- ]
- },
- "LeafNode_Scenario535": {
- "u1": [
- [
- null,
- 1.83822233000001
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 0.0
- ]
- ],
- "v2": [
- [
- null,
- 25.34320052
- ]
- ],
- "w11": [
- [
- null,
- 159.48818367
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 86.03404828
- ]
- ]
- },
- "LeafNode_Scenario536": {
- "u1": [
- [
- null,
- 1.83822233000001
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 0.0
- ]
- ],
- "v2": [
- [
- null,
- 20.19595704
- ]
- ],
- "w11": [
- [
- null,
- 159.48818367
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 91.18129176
- ]
- ]
- },
- "LeafNode_Scenario537": {
- "u1": [
- [
- null,
- 1.83822233000001
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 0.0
- ]
- ],
- "v2": [
- [
- null,
- 15.1407419
- ]
- ],
- "w11": [
- [
- null,
- 159.48818367
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 96.23650690000001
- ]
- ]
- },
- "LeafNode_Scenario538": {
- "u1": [
- [
- null,
- 1.83822233000001
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 0.0
- ]
- ],
- "v2": [
- [
- null,
- 10.1238034
- ]
- ],
- "w11": [
- [
- null,
- 159.48818367
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 101.2534454
- ]
- ]
- },
- "LeafNode_Scenario539": {
- "u1": [
- [
- null,
- 1.83822233000001
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 0.0
- ]
- ],
- "v2": [
- [
- null,
- 5.0941815
- ]
- ],
- "w11": [
- [
- null,
- 159.48818367
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 106.2830673
- ]
- ]
- },
- "LeafNode_Scenario54": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 115.80774011999999
- ]
- ],
- "v2": [
- [
- null,
- 63.19891827
- ]
- ],
- "w11": [
- [
- null,
- 43.68044355
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 48.17833053
- ]
- ]
- },
- "LeafNode_Scenario540": {
- "u1": [
- [
- null,
- 1.83822233000001
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 0.0
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 159.48818367
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario541": {
- "u1": [
- [
- null,
- 1.83822233000001
- ]
- ],
- "u2": [
- [
- null,
- 5.2154185
- ]
- ],
- "v1": [
- [
- null,
- 0.0
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 159.48818367
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario542": {
- "u1": [
- [
- null,
- 1.83822233000001
- ]
- ],
- "u2": [
- [
- null,
- 10.618409499999999
- ]
- ],
- "v1": [
- [
- null,
- 0.0
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 159.48818367
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario543": {
- "u1": [
- [
- null,
- 1.83822233000001
- ]
- ],
- "u2": [
- [
- null,
- 16.2919872
- ]
- ],
- "v1": [
- [
- null,
- 0.0
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 159.48818367
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario544": {
- "u1": [
- [
- null,
- 1.83822233000001
- ]
- ],
- "u2": [
- [
- null,
- 22.3472387
- ]
- ],
- "v1": [
- [
- null,
- 0.0
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 159.48818367
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario545": {
- "u1": [
- [
- null,
- 1.83822233000001
- ]
- ],
- "u2": [
- [
- null,
- 28.9438136
- ]
- ],
- "v1": [
- [
- null,
- 0.0
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 159.48818367
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario546": {
- "u1": [
- [
- null,
- 1.83822233000001
- ]
- ],
- "u2": [
- [
- null,
- 36.3310139
- ]
- ],
- "v1": [
- [
- null,
- 0.0
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 159.48818367
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario547": {
- "u1": [
- [
- null,
- 1.83822233000001
- ]
- ],
- "u2": [
- [
- null,
- 44.9423077
- ]
- ],
- "v1": [
- [
- null,
- 0.0
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 159.48818367
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario548": {
- "u1": [
- [
- null,
- 1.83822233000001
- ]
- ],
- "u2": [
- [
- null,
- 55.6605029
- ]
- ],
- "v1": [
- [
- null,
- 0.0
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 159.48818367
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario549": {
- "u1": [
- [
- null,
- 1.83822233000001
- ]
- ],
- "u2": [
- [
- null,
- 70.8654325
- ]
- ],
- "v1": [
- [
- null,
- 0.0
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 159.48818367
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario55": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 115.80774011999999
- ]
- ],
- "v2": [
- [
- null,
- 55.272063550000006
- ]
- ],
- "w11": [
- [
- null,
- 43.68044355
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 56.10518525
- ]
- ]
- },
- "LeafNode_Scenario550": {
- "u1": [
- [
- null,
- 1.83822233000001
- ]
- ],
- "u2": [
- [
- null,
- 104.9401449
- ]
- ],
- "v1": [
- [
- null,
- 0.0
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 159.48818367
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario551": {
- "u1": [
- [
- null,
- 14.30136773
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 0.0
- ]
- ],
- "v2": [
- [
- null,
- 105.416929208
- ]
- ],
- "w11": [
- [
- null,
- 159.48818367
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 5.960319592
- ]
- ]
- },
- "LeafNode_Scenario552": {
- "u1": [
- [
- null,
- 14.30136773
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 0.0
- ]
- ],
- "v2": [
- [
- null,
- 85.16680021
- ]
- ],
- "w11": [
- [
- null,
- 159.48818367
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 26.21044859
- ]
- ]
- },
- "LeafNode_Scenario553": {
- "u1": [
- [
- null,
- 14.30136773
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 0.0
- ]
- ],
- "v2": [
- [
- null,
- 72.7036548
- ]
- ],
- "w11": [
- [
- null,
- 159.48818367
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 38.673594
- ]
- ]
- },
- "LeafNode_Scenario554": {
- "u1": [
- [
- null,
- 14.30136773
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 0.0
- ]
- ],
- "v2": [
- [
- null,
- 63.19891827
- ]
- ],
- "w11": [
- [
- null,
- 159.48818367
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 48.17833053
- ]
- ]
- },
- "LeafNode_Scenario555": {
- "u1": [
- [
- null,
- 14.30136773
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 0.0
- ]
- ],
- "v2": [
- [
- null,
- 55.272063550000006
- ]
- ],
- "w11": [
- [
- null,
- 159.48818367
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 56.10518525
- ]
- ]
- },
- "LeafNode_Scenario556": {
- "u1": [
- [
- null,
- 14.30136773
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 0.0
- ]
- ],
- "v2": [
- [
- null,
- 48.31959126
- ]
- ],
- "w11": [
- [
- null,
- 159.48818367
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 63.05765754
- ]
- ]
- },
- "LeafNode_Scenario557": {
- "u1": [
- [
- null,
- 14.30136773
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 0.0
- ]
- ],
- "v2": [
- [
- null,
- 42.01789835
- ]
- ],
- "w11": [
- [
- null,
- 159.48818367
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 69.35935045
- ]
- ]
- },
- "LeafNode_Scenario558": {
- "u1": [
- [
- null,
- 14.30136773
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 0.0
- ]
- ],
- "v2": [
- [
- null,
- 36.16976617
- ]
- ],
- "w11": [
- [
- null,
- 159.48818367
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 75.20748263
- ]
- ]
- },
- "LeafNode_Scenario559": {
- "u1": [
- [
- null,
- 14.30136773
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 0.0
- ]
- ],
- "v2": [
- [
- null,
- 30.64327212
- ]
- ],
- "w11": [
- [
- null,
- 159.48818367
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 80.73397668
- ]
- ]
- },
- "LeafNode_Scenario56": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 115.80774011999999
- ]
- ],
- "v2": [
- [
- null,
- 48.31959126
- ]
- ],
- "w11": [
- [
- null,
- 43.68044355
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 63.05765754
- ]
- ]
- },
- "LeafNode_Scenario560": {
- "u1": [
- [
- null,
- 14.30136773
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 0.0
- ]
- ],
- "v2": [
- [
- null,
- 25.34320052
- ]
- ],
- "w11": [
- [
- null,
- 159.48818367
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 86.03404828
- ]
- ]
- },
- "LeafNode_Scenario561": {
- "u1": [
- [
- null,
- 14.30136773
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 0.0
- ]
- ],
- "v2": [
- [
- null,
- 20.19595704
- ]
- ],
- "w11": [
- [
- null,
- 159.48818367
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 91.18129176
- ]
- ]
- },
- "LeafNode_Scenario562": {
- "u1": [
- [
- null,
- 14.30136773
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 0.0
- ]
- ],
- "v2": [
- [
- null,
- 15.1407419
- ]
- ],
- "w11": [
- [
- null,
- 159.48818367
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 96.23650690000001
- ]
- ]
- },
- "LeafNode_Scenario563": {
- "u1": [
- [
- null,
- 14.30136773
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 0.0
- ]
- ],
- "v2": [
- [
- null,
- 10.1238034
- ]
- ],
- "w11": [
- [
- null,
- 159.48818367
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 101.2534454
- ]
- ]
- },
- "LeafNode_Scenario564": {
- "u1": [
- [
- null,
- 14.30136773
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 0.0
- ]
- ],
- "v2": [
- [
- null,
- 5.0941815
- ]
- ],
- "w11": [
- [
- null,
- 159.48818367
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 106.2830673
- ]
- ]
- },
- "LeafNode_Scenario565": {
- "u1": [
- [
- null,
- 14.30136773
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 0.0
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 159.48818367
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario566": {
- "u1": [
- [
- null,
- 14.30136773
- ]
- ],
- "u2": [
- [
- null,
- 5.2154185
- ]
- ],
- "v1": [
- [
- null,
- 0.0
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 159.48818367
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario567": {
- "u1": [
- [
- null,
- 14.30136773
- ]
- ],
- "u2": [
- [
- null,
- 10.618409499999999
- ]
- ],
- "v1": [
- [
- null,
- 0.0
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 159.48818367
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario568": {
- "u1": [
- [
- null,
- 14.30136773
- ]
- ],
- "u2": [
- [
- null,
- 16.2919872
- ]
- ],
- "v1": [
- [
- null,
- 0.0
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 159.48818367
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario569": {
- "u1": [
- [
- null,
- 14.30136773
- ]
- ],
- "u2": [
- [
- null,
- 22.3472387
- ]
- ],
- "v1": [
- [
- null,
- 0.0
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 159.48818367
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario57": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 115.80774011999999
- ]
- ],
- "v2": [
- [
- null,
- 42.01789835
- ]
- ],
- "w11": [
- [
- null,
- 43.68044355
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 69.35935045
- ]
- ]
- },
- "LeafNode_Scenario570": {
- "u1": [
- [
- null,
- 14.30136773
- ]
- ],
- "u2": [
- [
- null,
- 28.9438136
- ]
- ],
- "v1": [
- [
- null,
- 0.0
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 159.48818367
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario571": {
- "u1": [
- [
- null,
- 14.30136773
- ]
- ],
- "u2": [
- [
- null,
- 36.3310139
- ]
- ],
- "v1": [
- [
- null,
- 0.0
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 159.48818367
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario572": {
- "u1": [
- [
- null,
- 14.30136773
- ]
- ],
- "u2": [
- [
- null,
- 44.9423077
- ]
- ],
- "v1": [
- [
- null,
- 0.0
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 159.48818367
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario573": {
- "u1": [
- [
- null,
- 14.30136773
- ]
- ],
- "u2": [
- [
- null,
- 55.6605029
- ]
- ],
- "v1": [
- [
- null,
- 0.0
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 159.48818367
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario574": {
- "u1": [
- [
- null,
- 14.30136773
- ]
- ],
- "u2": [
- [
- null,
- 70.8654325
- ]
- ],
- "v1": [
- [
- null,
- 0.0
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 159.48818367
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario575": {
- "u1": [
- [
- null,
- 14.30136773
- ]
- ],
- "u2": [
- [
- null,
- 104.9401449
- ]
- ],
- "v1": [
- [
- null,
- 0.0
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 159.48818367
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario576": {
- "u1": [
- [
- null,
- 34.55149673
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 0.0
- ]
- ],
- "v2": [
- [
- null,
- 105.416929208
- ]
- ],
- "w11": [
- [
- null,
- 159.48818367
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 5.960319592
- ]
- ]
- },
- "LeafNode_Scenario577": {
- "u1": [
- [
- null,
- 34.55149673
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 0.0
- ]
- ],
- "v2": [
- [
- null,
- 85.16680021
- ]
- ],
- "w11": [
- [
- null,
- 159.48818367
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 26.21044859
- ]
- ]
- },
- "LeafNode_Scenario578": {
- "u1": [
- [
- null,
- 34.55149673
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 0.0
- ]
- ],
- "v2": [
- [
- null,
- 72.7036548
- ]
- ],
- "w11": [
- [
- null,
- 159.48818367
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 38.673594
- ]
- ]
- },
- "LeafNode_Scenario579": {
- "u1": [
- [
- null,
- 34.55149673
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 0.0
- ]
- ],
- "v2": [
- [
- null,
- 63.19891827
- ]
- ],
- "w11": [
- [
- null,
- 159.48818367
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 48.17833053
- ]
- ]
- },
- "LeafNode_Scenario58": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 115.80774011999999
- ]
- ],
- "v2": [
- [
- null,
- 36.16976617
- ]
- ],
- "w11": [
- [
- null,
- 43.68044355
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 75.20748263
- ]
- ]
- },
- "LeafNode_Scenario580": {
- "u1": [
- [
- null,
- 34.55149673
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 0.0
- ]
- ],
- "v2": [
- [
- null,
- 55.272063550000006
- ]
- ],
- "w11": [
- [
- null,
- 159.48818367
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 56.10518525
- ]
- ]
- },
- "LeafNode_Scenario581": {
- "u1": [
- [
- null,
- 34.55149673
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 0.0
- ]
- ],
- "v2": [
- [
- null,
- 48.31959126
- ]
- ],
- "w11": [
- [
- null,
- 159.48818367
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 63.05765754
- ]
- ]
- },
- "LeafNode_Scenario582": {
- "u1": [
- [
- null,
- 34.55149673
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 0.0
- ]
- ],
- "v2": [
- [
- null,
- 42.01789835
- ]
- ],
- "w11": [
- [
- null,
- 159.48818367
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 69.35935045
- ]
- ]
- },
- "LeafNode_Scenario583": {
- "u1": [
- [
- null,
- 34.55149673
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 0.0
- ]
- ],
- "v2": [
- [
- null,
- 36.16976617
- ]
- ],
- "w11": [
- [
- null,
- 159.48818367
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 75.20748263
- ]
- ]
- },
- "LeafNode_Scenario584": {
- "u1": [
- [
- null,
- 34.55149673
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 0.0
- ]
- ],
- "v2": [
- [
- null,
- 30.64327212
- ]
- ],
- "w11": [
- [
- null,
- 159.48818367
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 80.73397668
- ]
- ]
- },
- "LeafNode_Scenario585": {
- "u1": [
- [
- null,
- 34.55149673
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 0.0
- ]
- ],
- "v2": [
- [
- null,
- 25.34320052
- ]
- ],
- "w11": [
- [
- null,
- 159.48818367
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 86.03404828
- ]
- ]
- },
- "LeafNode_Scenario586": {
- "u1": [
- [
- null,
- 34.55149673
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 0.0
- ]
- ],
- "v2": [
- [
- null,
- 20.19595704
- ]
- ],
- "w11": [
- [
- null,
- 159.48818367
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 91.18129176
- ]
- ]
- },
- "LeafNode_Scenario587": {
- "u1": [
- [
- null,
- 34.55149673
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 0.0
- ]
- ],
- "v2": [
- [
- null,
- 15.1407419
- ]
- ],
- "w11": [
- [
- null,
- 159.48818367
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 96.23650690000001
- ]
- ]
- },
- "LeafNode_Scenario588": {
- "u1": [
- [
- null,
- 34.55149673
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 0.0
- ]
- ],
- "v2": [
- [
- null,
- 10.1238034
- ]
- ],
- "w11": [
- [
- null,
- 159.48818367
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 101.2534454
- ]
- ]
- },
- "LeafNode_Scenario589": {
- "u1": [
- [
- null,
- 34.55149673
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 0.0
- ]
- ],
- "v2": [
- [
- null,
- 5.0941815
- ]
- ],
- "w11": [
- [
- null,
- 159.48818367
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 106.2830673
- ]
- ]
- },
- "LeafNode_Scenario59": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 115.80774011999999
- ]
- ],
- "v2": [
- [
- null,
- 30.64327212
- ]
- ],
- "w11": [
- [
- null,
- 43.68044355
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 80.73397668
- ]
- ]
- },
- "LeafNode_Scenario590": {
- "u1": [
- [
- null,
- 34.55149673
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 0.0
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 159.48818367
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario591": {
- "u1": [
- [
- null,
- 34.55149673
- ]
- ],
- "u2": [
- [
- null,
- 5.2154185
- ]
- ],
- "v1": [
- [
- null,
- 0.0
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 159.48818367
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario592": {
- "u1": [
- [
- null,
- 34.55149673
- ]
- ],
- "u2": [
- [
- null,
- 10.618409499999999
- ]
- ],
- "v1": [
- [
- null,
- 0.0
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 159.48818367
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario593": {
- "u1": [
- [
- null,
- 34.55149673
- ]
- ],
- "u2": [
- [
- null,
- 16.2919872
- ]
- ],
- "v1": [
- [
- null,
- 0.0
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 159.48818367
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario594": {
- "u1": [
- [
- null,
- 34.55149673
- ]
- ],
- "u2": [
- [
- null,
- 22.3472387
- ]
- ],
- "v1": [
- [
- null,
- 0.0
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 159.48818367
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario595": {
- "u1": [
- [
- null,
- 34.55149673
- ]
- ],
- "u2": [
- [
- null,
- 28.9438136
- ]
- ],
- "v1": [
- [
- null,
- 0.0
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 159.48818367
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario596": {
- "u1": [
- [
- null,
- 34.55149673
- ]
- ],
- "u2": [
- [
- null,
- 36.3310139
- ]
- ],
- "v1": [
- [
- null,
- 0.0
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 159.48818367
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario597": {
- "u1": [
- [
- null,
- 34.55149673
- ]
- ],
- "u2": [
- [
- null,
- 44.9423077
- ]
- ],
- "v1": [
- [
- null,
- 0.0
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 159.48818367
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario598": {
- "u1": [
- [
- null,
- 34.55149673
- ]
- ],
- "u2": [
- [
- null,
- 55.6605029
- ]
- ],
- "v1": [
- [
- null,
- 0.0
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 159.48818367
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario599": {
- "u1": [
- [
- null,
- 34.55149673
- ]
- ],
- "u2": [
- [
- null,
- 70.8654325
- ]
- ],
- "v1": [
- [
- null,
- 0.0
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 159.48818367
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario6": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 141.73086502
- ]
- ],
- "v2": [
- [
- null,
- 48.31959126
- ]
- ],
- "w11": [
- [
- null,
- 17.75731865
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 63.05765754
- ]
- ]
- },
- "LeafNode_Scenario60": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 115.80774011999999
- ]
- ],
- "v2": [
- [
- null,
- 25.34320052
- ]
- ],
- "w11": [
- [
- null,
- 43.68044355
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 86.03404828
- ]
- ]
- },
- "LeafNode_Scenario600": {
- "u1": [
- [
- null,
- 34.55149673
- ]
- ],
- "u2": [
- [
- null,
- 104.9401449
- ]
- ],
- "v1": [
- [
- null,
- 0.0
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 159.48818367
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario601": {
- "u1": [
- [
- null,
- 56.82921003
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 0.0
- ]
- ],
- "v2": [
- [
- null,
- 105.416929208
- ]
- ],
- "w11": [
- [
- null,
- 159.48818367
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 5.960319592
- ]
- ]
- },
- "LeafNode_Scenario602": {
- "u1": [
- [
- null,
- 56.82921003
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 0.0
- ]
- ],
- "v2": [
- [
- null,
- 85.16680021
- ]
- ],
- "w11": [
- [
- null,
- 159.48818367
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 26.21044859
- ]
- ]
- },
- "LeafNode_Scenario603": {
- "u1": [
- [
- null,
- 56.82921003
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 0.0
- ]
- ],
- "v2": [
- [
- null,
- 72.7036548
- ]
- ],
- "w11": [
- [
- null,
- 159.48818367
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 38.673594
- ]
- ]
- },
- "LeafNode_Scenario604": {
- "u1": [
- [
- null,
- 56.82921003
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 0.0
- ]
- ],
- "v2": [
- [
- null,
- 63.19891827
- ]
- ],
- "w11": [
- [
- null,
- 159.48818367
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 48.17833053
- ]
- ]
- },
- "LeafNode_Scenario605": {
- "u1": [
- [
- null,
- 56.82921003
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 0.0
- ]
- ],
- "v2": [
- [
- null,
- 55.272063550000006
- ]
- ],
- "w11": [
- [
- null,
- 159.48818367
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 56.10518525
- ]
- ]
- },
- "LeafNode_Scenario606": {
- "u1": [
- [
- null,
- 56.82921003
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 0.0
- ]
- ],
- "v2": [
- [
- null,
- 48.31959126
- ]
- ],
- "w11": [
- [
- null,
- 159.48818367
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 63.05765754
- ]
- ]
- },
- "LeafNode_Scenario607": {
- "u1": [
- [
- null,
- 56.82921003
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 0.0
- ]
- ],
- "v2": [
- [
- null,
- 42.01789835
- ]
- ],
- "w11": [
- [
- null,
- 159.48818367
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 69.35935045
- ]
- ]
- },
- "LeafNode_Scenario608": {
- "u1": [
- [
- null,
- 56.82921003
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 0.0
- ]
- ],
- "v2": [
- [
- null,
- 36.16976617
- ]
- ],
- "w11": [
- [
- null,
- 159.48818367
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 75.20748263
- ]
- ]
- },
- "LeafNode_Scenario609": {
- "u1": [
- [
- null,
- 56.82921003
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 0.0
- ]
- ],
- "v2": [
- [
- null,
- 30.64327212
- ]
- ],
- "w11": [
- [
- null,
- 159.48818367
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 80.73397668
- ]
- ]
- },
- "LeafNode_Scenario61": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 115.80774011999999
- ]
- ],
- "v2": [
- [
- null,
- 20.19595704
- ]
- ],
- "w11": [
- [
- null,
- 43.68044355
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 91.18129176
- ]
- ]
- },
- "LeafNode_Scenario610": {
- "u1": [
- [
- null,
- 56.82921003
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 0.0
- ]
- ],
- "v2": [
- [
- null,
- 25.34320052
- ]
- ],
- "w11": [
- [
- null,
- 159.48818367
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 86.03404828
- ]
- ]
- },
- "LeafNode_Scenario611": {
- "u1": [
- [
- null,
- 56.82921003
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 0.0
- ]
- ],
- "v2": [
- [
- null,
- 20.19595704
- ]
- ],
- "w11": [
- [
- null,
- 159.48818367
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 91.18129176
- ]
- ]
- },
- "LeafNode_Scenario612": {
- "u1": [
- [
- null,
- 56.82921003
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 0.0
- ]
- ],
- "v2": [
- [
- null,
- 15.1407419
- ]
- ],
- "w11": [
- [
- null,
- 159.48818367
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 96.23650690000001
- ]
- ]
- },
- "LeafNode_Scenario613": {
- "u1": [
- [
- null,
- 56.82921003
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 0.0
- ]
- ],
- "v2": [
- [
- null,
- 10.1238034
- ]
- ],
- "w11": [
- [
- null,
- 159.48818367
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 101.2534454
- ]
- ]
- },
- "LeafNode_Scenario614": {
- "u1": [
- [
- null,
- 56.82921003
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 0.0
- ]
- ],
- "v2": [
- [
- null,
- 5.0941815
- ]
- ],
- "w11": [
- [
- null,
- 159.48818367
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 106.2830673
- ]
- ]
- },
- "LeafNode_Scenario615": {
- "u1": [
- [
- null,
- 56.82921003
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 0.0
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 159.48818367
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario616": {
- "u1": [
- [
- null,
- 56.82921003
- ]
- ],
- "u2": [
- [
- null,
- 5.2154185
- ]
- ],
- "v1": [
- [
- null,
- 0.0
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 159.48818367
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario617": {
- "u1": [
- [
- null,
- 56.82921003
- ]
- ],
- "u2": [
- [
- null,
- 10.618409499999999
- ]
- ],
- "v1": [
- [
- null,
- 0.0
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 159.48818367
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario618": {
- "u1": [
- [
- null,
- 56.82921003
- ]
- ],
- "u2": [
- [
- null,
- 16.2919872
- ]
- ],
- "v1": [
- [
- null,
- 0.0
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 159.48818367
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario619": {
- "u1": [
- [
- null,
- 56.82921003
- ]
- ],
- "u2": [
- [
- null,
- 22.3472387
- ]
- ],
- "v1": [
- [
- null,
- 0.0
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 159.48818367
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario62": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 115.80774011999999
- ]
- ],
- "v2": [
- [
- null,
- 15.1407419
- ]
- ],
- "w11": [
- [
- null,
- 43.68044355
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 96.23650690000001
- ]
- ]
- },
- "LeafNode_Scenario620": {
- "u1": [
- [
- null,
- 56.82921003
- ]
- ],
- "u2": [
- [
- null,
- 28.9438136
- ]
- ],
- "v1": [
- [
- null,
- 0.0
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 159.48818367
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario621": {
- "u1": [
- [
- null,
- 56.82921003
- ]
- ],
- "u2": [
- [
- null,
- 36.3310139
- ]
- ],
- "v1": [
- [
- null,
- 0.0
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 159.48818367
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario622": {
- "u1": [
- [
- null,
- 56.82921003
- ]
- ],
- "u2": [
- [
- null,
- 44.9423077
- ]
- ],
- "v1": [
- [
- null,
- 0.0
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 159.48818367
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario623": {
- "u1": [
- [
- null,
- 56.82921003
- ]
- ],
- "u2": [
- [
- null,
- 55.6605029
- ]
- ],
- "v1": [
- [
- null,
- 0.0
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 159.48818367
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario624": {
- "u1": [
- [
- null,
- 56.82921003
- ]
- ],
- "u2": [
- [
- null,
- 70.8654325
- ]
- ],
- "v1": [
- [
- null,
- 0.0
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 159.48818367
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario625": {
- "u1": [
- [
- null,
- 56.82921003
- ]
- ],
- "u2": [
- [
- null,
- 104.9401449
- ]
- ],
- "v1": [
- [
- null,
- 0.0
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 159.48818367
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario63": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 115.80774011999999
- ]
- ],
- "v2": [
- [
- null,
- 10.1238034
- ]
- ],
- "w11": [
- [
- null,
- 43.68044355
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 101.2534454
- ]
- ]
- },
- "LeafNode_Scenario64": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 115.80774011999999
- ]
- ],
- "v2": [
- [
- null,
- 5.0941815
- ]
- ],
- "w11": [
- [
- null,
- 43.68044355
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 106.2830673
- ]
- ]
- },
- "LeafNode_Scenario65": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 115.80774011999999
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 43.68044355
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario66": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 110.59232162
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 43.68044355
- ]
- ],
- "w12": [
- [
- null,
- 5.2154185
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario67": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 105.18933062
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 43.68044355
- ]
- ],
- "w12": [
- [
- null,
- 10.618409499999999
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario68": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 99.51575292
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 43.68044355
- ]
- ],
- "w12": [
- [
- null,
- 16.2919872
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario69": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 93.46050142
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 43.68044355
- ]
- ],
- "w12": [
- [
- null,
- 22.3472387
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario7": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 141.73086502
- ]
- ],
- "v2": [
- [
- null,
- 42.01789835
- ]
- ],
- "w11": [
- [
- null,
- 17.75731865
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 69.35935045
- ]
- ]
- },
- "LeafNode_Scenario70": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 86.86392651999999
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 43.68044355
- ]
- ],
- "w12": [
- [
- null,
- 28.9438136
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario71": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 79.47672622
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 43.68044355
- ]
- ],
- "w12": [
- [
- null,
- 36.3310139
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario72": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 70.86543242
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 43.68044355
- ]
- ],
- "w12": [
- [
- null,
- 44.9423077
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario73": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 60.14723722
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 43.68044355
- ]
- ],
- "w12": [
- [
- null,
- 55.6605029
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario74": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 44.94230762
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 43.68044355
- ]
- ],
- "w12": [
- [
- null,
- 70.8654325
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario75": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 10.867595220000002
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 43.68044355
- ]
- ],
- "w12": [
- [
- null,
- 104.9401449
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario76": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 107.19644633
- ]
- ],
- "v2": [
- [
- null,
- 105.416929208
- ]
- ],
- "w11": [
- [
- null,
- 52.29173734
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 5.960319592
- ]
- ]
- },
- "LeafNode_Scenario77": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 107.19644633
- ]
- ],
- "v2": [
- [
- null,
- 85.16680021
- ]
- ],
- "w11": [
- [
- null,
- 52.29173734
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 26.21044859
- ]
- ]
- },
- "LeafNode_Scenario78": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 107.19644633
- ]
- ],
- "v2": [
- [
- null,
- 72.7036548
- ]
- ],
- "w11": [
- [
- null,
- 52.29173734
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 38.673594
- ]
- ]
- },
- "LeafNode_Scenario79": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 107.19644633
- ]
- ],
- "v2": [
- [
- null,
- 63.19891827
- ]
- ],
- "w11": [
- [
- null,
- 52.29173734
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 48.17833053
- ]
- ]
- },
- "LeafNode_Scenario8": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 141.73086502
- ]
- ],
- "v2": [
- [
- null,
- 36.16976617
- ]
- ],
- "w11": [
- [
- null,
- 17.75731865
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 75.20748263
- ]
- ]
- },
- "LeafNode_Scenario80": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 107.19644633
- ]
- ],
- "v2": [
- [
- null,
- 55.272063550000006
- ]
- ],
- "w11": [
- [
- null,
- 52.29173734
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 56.10518525
- ]
- ]
- },
- "LeafNode_Scenario81": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 107.19644633
- ]
- ],
- "v2": [
- [
- null,
- 48.31959126
- ]
- ],
- "w11": [
- [
- null,
- 52.29173734
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 63.05765754
- ]
- ]
- },
- "LeafNode_Scenario82": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 107.19644633
- ]
- ],
- "v2": [
- [
- null,
- 42.01789835
- ]
- ],
- "w11": [
- [
- null,
- 52.29173734
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 69.35935045
- ]
- ]
- },
- "LeafNode_Scenario83": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 107.19644633
- ]
- ],
- "v2": [
- [
- null,
- 36.16976617
- ]
- ],
- "w11": [
- [
- null,
- 52.29173734
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 75.20748263
- ]
- ]
- },
- "LeafNode_Scenario84": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 107.19644633
- ]
- ],
- "v2": [
- [
- null,
- 30.64327212
- ]
- ],
- "w11": [
- [
- null,
- 52.29173734
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 80.73397668
- ]
- ]
- },
- "LeafNode_Scenario85": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 107.19644633
- ]
- ],
- "v2": [
- [
- null,
- 25.34320052
- ]
- ],
- "w11": [
- [
- null,
- 52.29173734
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 86.03404828
- ]
- ]
- },
- "LeafNode_Scenario86": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 107.19644633
- ]
- ],
- "v2": [
- [
- null,
- 20.19595704
- ]
- ],
- "w11": [
- [
- null,
- 52.29173734
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 91.18129176
- ]
- ]
- },
- "LeafNode_Scenario87": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 107.19644633
- ]
- ],
- "v2": [
- [
- null,
- 15.1407419
- ]
- ],
- "w11": [
- [
- null,
- 52.29173734
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 96.23650690000001
- ]
- ]
- },
- "LeafNode_Scenario88": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 107.19644633
- ]
- ],
- "v2": [
- [
- null,
- 10.1238034
- ]
- ],
- "w11": [
- [
- null,
- 52.29173734
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 101.2534454
- ]
- ]
- },
- "LeafNode_Scenario89": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 107.19644633
- ]
- ],
- "v2": [
- [
- null,
- 5.0941815
- ]
- ],
- "w11": [
- [
- null,
- 52.29173734
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 106.2830673
- ]
- ]
- },
- "LeafNode_Scenario9": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 141.73086502
- ]
- ],
- "v2": [
- [
- null,
- 30.64327212
- ]
- ],
- "w11": [
- [
- null,
- 17.75731865
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 80.73397668
- ]
- ]
- },
- "LeafNode_Scenario90": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 107.19644633
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 52.29173734
- ]
- ],
- "w12": [
- [
- null,
- 0.0
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario91": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 101.98102783
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 52.29173734
- ]
- ],
- "w12": [
- [
- null,
- 5.2154185
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario92": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 96.57803682999999
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 52.29173734
- ]
- ],
- "w12": [
- [
- null,
- 10.618409499999999
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario93": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 90.90445913
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 52.29173734
- ]
- ],
- "w12": [
- [
- null,
- 16.2919872
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario94": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 84.84920763
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 52.29173734
- ]
- ],
- "w12": [
- [
- null,
- 22.3472387
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario95": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 78.25263273
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 52.29173734
- ]
- ],
- "w12": [
- [
- null,
- 28.9438136
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario96": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 70.86543243
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 52.29173734
- ]
- ],
- "w12": [
- [
- null,
- 36.3310139
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario97": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 62.25413863
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 52.29173734
- ]
- ],
- "w12": [
- [
- null,
- 44.9423077
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario98": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 51.53594343
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 52.29173734
- ]
- ],
- "w12": [
- [
- null,
- 55.6605029
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- },
- "LeafNode_Scenario99": {
- "u1": [
- [
- null,
- 0.0
- ]
- ],
- "u2": [
- [
- null,
- 0.0
- ]
- ],
- "v1": [
- [
- null,
- 36.33101383
- ]
- ],
- "v2": [
- [
- null,
- 0.0
- ]
- ],
- "w11": [
- [
- null,
- 52.29173734
- ]
- ],
- "w12": [
- [
- null,
- 70.8654325
- ]
- ],
- "w22": [
- [
- null,
- 111.3772488
- ]
- ]
- }
- }
-]
\ No newline at end of file
diff --git a/pyomo/pysp/tests/evalxhat/farmer_ef_costs.json b/pyomo/pysp/tests/evalxhat/farmer_ef_costs.json
deleted file mode 100644
index c0ea42944fa..00000000000
--- a/pyomo/pysp/tests/evalxhat/farmer_ef_costs.json
+++ /dev/null
@@ -1 +0,0 @@
-{"AverageScenario": -109350.0, "BelowAverageScenario": -48820.0, "AboveAverageScenario": -167000.0}
\ No newline at end of file
diff --git a/pyomo/pysp/tests/evalxhat/farmer_ef_solution.json b/pyomo/pysp/tests/evalxhat/farmer_ef_solution.json
deleted file mode 100644
index a7233a34bc0..00000000000
--- a/pyomo/pysp/tests/evalxhat/farmer_ef_solution.json
+++ /dev/null
@@ -1,154 +0,0 @@
-[
- {
- "RootNode": {
- "DevotedAcreage": [
- [
- "CORN",
- 80.0
- ],
- [
- "SUGAR_BEETS",
- 250.0
- ],
- [
- "WHEAT",
- 170.0
- ]
- ]
- }
- },
- {
- "AboveAverageNode": {
- "QuantityPurchased": [
- [
- "CORN",
- 0.0
- ],
- [
- "SUGAR_BEETS",
- 0.0
- ],
- [
- "WHEAT",
- 0.0
- ]
- ],
- "QuantitySubQuotaSold": [
- [
- "CORN",
- 48.0
- ],
- [
- "SUGAR_BEETS",
- 6000.0
- ],
- [
- "WHEAT",
- 310.0
- ]
- ],
- "QuantitySuperQuotaSold": [
- [
- "CORN",
- 0.0
- ],
- [
- "SUGAR_BEETS",
- 0.0
- ],
- [
- "WHEAT",
- 0.0
- ]
- ]
- },
- "AverageNode": {
- "QuantityPurchased": [
- [
- "CORN",
- 0.0
- ],
- [
- "SUGAR_BEETS",
- 0.0
- ],
- [
- "WHEAT",
- 0.0
- ]
- ],
- "QuantitySubQuotaSold": [
- [
- "CORN",
- 0.0
- ],
- [
- "SUGAR_BEETS",
- 5000.0
- ],
- [
- "WHEAT",
- 225.0
- ]
- ],
- "QuantitySuperQuotaSold": [
- [
- "CORN",
- 0.0
- ],
- [
- "SUGAR_BEETS",
- 0.0
- ],
- [
- "WHEAT",
- 0.0
- ]
- ]
- },
- "BelowAverageNode": {
- "QuantityPurchased": [
- [
- "CORN",
- 48.0
- ],
- [
- "SUGAR_BEETS",
- 0.0
- ],
- [
- "WHEAT",
- 0.0
- ]
- ],
- "QuantitySubQuotaSold": [
- [
- "CORN",
- 0.0
- ],
- [
- "SUGAR_BEETS",
- 4000.0
- ],
- [
- "WHEAT",
- 140.0
- ]
- ],
- "QuantitySuperQuotaSold": [
- [
- "CORN",
- 0.0
- ],
- [
- "SUGAR_BEETS",
- 0.0
- ],
- [
- "WHEAT",
- 0.0
- ]
- ]
- }
- }
-]
\ No newline at end of file
diff --git a/pyomo/pysp/tests/evalxhat/finance_ef_costs.json b/pyomo/pysp/tests/evalxhat/finance_ef_costs.json
deleted file mode 100644
index 73524764e79..00000000000
--- a/pyomo/pysp/tests/evalxhat/finance_ef_costs.json
+++ /dev/null
@@ -1 +0,0 @@
-{"StockBondStockScenario": 1428.57142857141, "BondStockBondScenario": 0.0, "BondBondBondScenario": -48640.0, "BondStockStockScenario": 1428.57142857141, "StockStockBondScenario": 8870.2990476191, "StockBondBondScenario": 0.0, "StockStockStockScenario": 24799.880952381, "BondBondStockScenario": 0.0}
\ No newline at end of file
diff --git a/pyomo/pysp/tests/evalxhat/finance_ef_solution.json b/pyomo/pysp/tests/evalxhat/finance_ef_solution.json
deleted file mode 100644
index 955233b231c..00000000000
--- a/pyomo/pysp/tests/evalxhat/finance_ef_solution.json
+++ /dev/null
@@ -1,296 +0,0 @@
-[
- {
- "RootNode": {
- "AmountInvested": [
- [
- [
- "BONDS",
- 1
- ],
- 13520.7277065314
- ],
- [
- [
- "STOCKS",
- 1
- ],
- 41479.272293468595
- ]
- ]
- }
- },
- {
- "BondNode": {
- "AmountInvested": [
- [
- [
- "BONDS",
- 2
- ],
- 22368.0286310767
- ],
- [
- [
- "STOCKS",
- 2
- ],
- 36743.2150313152
- ]
- ]
- },
- "StockNode": {
- "AmountInvested": [
- [
- [
- "BONDS",
- 2
- ],
- 2168.1379858829323
- ],
- [
- [
- "STOCKS",
- 2
- ],
- 65094.5819663986
- ]
- ]
- }
- },
- {
- "BondBondNode": {
- "AmountInvested": [
- [
- [
- "BONDS",
- 3
- ],
- 0.0
- ],
- [
- [
- "STOCKS",
- 3
- ],
- 64000.0
- ]
- ]
- },
- "BondStockNode": {
- "AmountInvested": [
- [
- [
- "BONDS",
- 3
- ],
- 71428.5714285714
- ],
- [
- [
- "STOCKS",
- 3
- ],
- 0.0
- ]
- ]
- },
- "StockBondNode": {
- "AmountInvested": [
- [
- [
- "BONDS",
- 3
- ],
- 71428.5714285714
- ],
- [
- [
- "STOCKS",
- 3
- ],
- 0.0
- ]
- ]
- },
- "StockStockNode": {
- "AmountInvested": [
- [
- [
- "BONDS",
- 3
- ],
- 0.0
- ],
- [
- [
- "STOCKS",
- 3
- ],
- 83839.9047619048
- ]
- ]
- }
- },
- {
- "BondBondBondNode": {
- "FinalWealth": [
- [
- null,
- -48640.0
- ]
- ],
- "TargetDeficit": [
- [
- null,
- 12160.0
- ]
- ],
- "TargetSurplus": [
- [
- null,
- 0.0
- ]
- ]
- },
- "BondBondStockNode": {
- "FinalWealth": [
- [
- null,
- 0.0
- ]
- ],
- "TargetDeficit": [
- [
- null,
- 0.0
- ]
- ],
- "TargetSurplus": [
- [
- null,
- 0.0
- ]
- ]
- },
- "BondStockBondNode": {
- "FinalWealth": [
- [
- null,
- 0.0
- ]
- ],
- "TargetDeficit": [
- [
- null,
- 0.0
- ]
- ],
- "TargetSurplus": [
- [
- null,
- 0.0
- ]
- ]
- },
- "BondStockStockNode": {
- "FinalWealth": [
- [
- null,
- 1428.57142857141
- ]
- ],
- "TargetDeficit": [
- [
- null,
- 0.0
- ]
- ],
- "TargetSurplus": [
- [
- null,
- 1428.57142857141
- ]
- ]
- },
- "StockBondBondNode": {
- "FinalWealth": [
- [
- null,
- 0.0
- ]
- ],
- "TargetDeficit": [
- [
- null,
- 0.0
- ]
- ],
- "TargetSurplus": [
- [
- null,
- 0.0
- ]
- ]
- },
- "StockBondStockNode": {
- "FinalWealth": [
- [
- null,
- 1428.57142857141
- ]
- ],
- "TargetDeficit": [
- [
- null,
- 0.0
- ]
- ],
- "TargetSurplus": [
- [
- null,
- 1428.57142857141
- ]
- ]
- },
- "StockStockBondNode": {
- "FinalWealth": [
- [
- null,
- 8870.2990476191
- ]
- ],
- "TargetDeficit": [
- [
- null,
- 0.0
- ]
- ],
- "TargetSurplus": [
- [
- null,
- 8870.2990476191
- ]
- ]
- },
- "StockStockStockNode": {
- "FinalWealth": [
- [
- null,
- 24799.880952381
- ]
- ],
- "TargetDeficit": [
- [
- null,
- 0.0
- ]
- ],
- "TargetSurplus": [
- [
- null,
- 24799.880952381
- ]
- ]
- }
- }
-]
\ No newline at end of file
diff --git a/pyomo/pysp/tests/evalxhat/hydro_ef_costs.json b/pyomo/pysp/tests/evalxhat/hydro_ef_costs.json
deleted file mode 100644
index d1282007ac8..00000000000
--- a/pyomo/pysp/tests/evalxhat/hydro_ef_costs.json
+++ /dev/null
@@ -1 +0,0 @@
-{"Scen8": 159.5802081554258, "Scen9": 149.6166987441031, "Scen1": 229.39768851213472, "Scen2": 219.434179100812, "Scen3": 209.47066968948923, "Scen4": 189.470736389394, "Scen5": 179.5072269780713, "Scen6": 169.5437175667485, "Scen7": 169.5437175667485}
\ No newline at end of file
diff --git a/pyomo/pysp/tests/evalxhat/hydro_ef_solution.json b/pyomo/pysp/tests/evalxhat/hydro_ef_solution.json
deleted file mode 100644
index 7254f200854..00000000000
--- a/pyomo/pysp/tests/evalxhat/hydro_ef_solution.json
+++ /dev/null
@@ -1,400 +0,0 @@
-[
- {
- "RootNode": {
- "PDns": [
- [
- 1,
- 0.0
- ]
- ],
- "Pgh": [
- [
- 1,
- 60.000000000000014
- ]
- ],
- "Pgt": [
- [
- 1,
- 30.000000000000007
- ]
- ],
- "Vol": [
- [
- 1,
- 54.43200000000001
- ]
- ]
- }
- },
- {
- "Node2_1": {
- "PDns": [
- [
- 2,
- 0.0
- ]
- ],
- "Pgh": [
- [
- 2,
- 60.00000000000001
- ]
- ],
- "Pgt": [
- [
- 2,
- 100.00000000000001
- ]
- ],
- "Vol": [
- [
- 2,
- 24.192
- ]
- ]
- },
- "Node2_2": {
- "PDns": [
- [
- 2,
- 0.0
- ]
- ],
- "Pgh": [
- [
- 2,
- 100.00000000000001
- ]
- ],
- "Pgt": [
- [
- 2,
- 60.00000000000001
- ]
- ],
- "Vol": [
- [
- 2,
- 24.192
- ]
- ]
- },
- "Node2_3": {
- "PDns": [
- [
- 2,
- 0.0
- ]
- ],
- "Pgh": [
- [
- 2,
- 100.00000000000001
- ]
- ],
- "Pgt": [
- [
- 2,
- 60.00000000000001
- ]
- ],
- "Vol": [
- [
- 2,
- 48.38400000000001
- ]
- ]
- }
- },
- {
- "Node3_1_1": {
- "PDns": [
- [
- 3,
- 0.0
- ]
- ],
- "Pgh": [
- [
- 3,
- 10.0
- ]
- ],
- "Pgt": [
- [
- 3,
- 100.00000000000001
- ]
- ],
- "Vol": [
- [
- 3,
- 60.48
- ]
- ],
- "sl": [
- [
- null,
- 0.0
- ]
- ]
- },
- "Node3_1_2": {
- "PDns": [
- [
- 3,
- 0.0
- ]
- ],
- "Pgh": [
- [
- 3,
- 20.0
- ]
- ],
- "Pgt": [
- [
- 3,
- 90.0
- ]
- ],
- "Vol": [
- [
- 3,
- 60.48
- ]
- ],
- "sl": [
- [
- null,
- 0.0
- ]
- ]
- },
- "Node3_1_3": {
- "PDns": [
- [
- 3,
- 0.0
- ]
- ],
- "Pgh": [
- [
- 3,
- 30.0
- ]
- ],
- "Pgt": [
- [
- 3,
- 80.0
- ]
- ],
- "Vol": [
- [
- 3,
- 60.48
- ]
- ],
- "sl": [
- [
- null,
- 0.0
- ]
- ]
- },
- "Node3_2_1": {
- "PDns": [
- [
- 3,
- 0.0
- ]
- ],
- "Pgh": [
- [
- 3,
- 10.0
- ]
- ],
- "Pgt": [
- [
- 3,
- 100.00000000000001
- ]
- ],
- "Vol": [
- [
- 3,
- 60.48
- ]
- ],
- "sl": [
- [
- null,
- 0.0
- ]
- ]
- },
- "Node3_2_2": {
- "PDns": [
- [
- 3,
- 0.0
- ]
- ],
- "Pgh": [
- [
- 3,
- 20.0
- ]
- ],
- "Pgt": [
- [
- 3,
- 90.0
- ]
- ],
- "Vol": [
- [
- 3,
- 60.48
- ]
- ],
- "sl": [
- [
- null,
- 0.0
- ]
- ]
- },
- "Node3_2_3": {
- "PDns": [
- [
- 3,
- 0.0
- ]
- ],
- "Pgh": [
- [
- 3,
- 30.0
- ]
- ],
- "Pgt": [
- [
- 3,
- 80.0
- ]
- ],
- "Vol": [
- [
- 3,
- 60.48
- ]
- ],
- "sl": [
- [
- null,
- 0.0
- ]
- ]
- },
- "Node3_3_1": {
- "PDns": [
- [
- 3,
- 0.0
- ]
- ],
- "Pgh": [
- [
- 3,
- 30.0
- ]
- ],
- "Pgt": [
- [
- 3,
- 80.0
- ]
- ],
- "Vol": [
- [
- 3,
- 60.48
- ]
- ],
- "sl": [
- [
- null,
- 0.0
- ]
- ]
- },
- "Node3_3_2": {
- "PDns": [
- [
- 3,
- 0.0
- ]
- ],
- "Pgh": [
- [
- 3,
- 40.0
- ]
- ],
- "Pgt": [
- [
- 3,
- 70.0
- ]
- ],
- "Vol": [
- [
- 3,
- 60.48
- ]
- ],
- "sl": [
- [
- null,
- 0.0
- ]
- ]
- },
- "Node3_3_3": {
- "PDns": [
- [
- 3,
- 0.0
- ]
- ],
- "Pgh": [
- [
- 3,
- 50.0
- ]
- ],
- "Pgt": [
- [
- 3,
- 60.0
- ]
- ],
- "Vol": [
- [
- 3,
- 60.48
- ]
- ],
- "sl": [
- [
- null,
- 0.0
- ]
- ]
- }
- }
-]
\ No newline at end of file
diff --git a/pyomo/pysp/tests/evalxhat/networkx_ef_costs.json b/pyomo/pysp/tests/evalxhat/networkx_ef_costs.json
deleted file mode 100644
index 3d6f687e9a7..00000000000
--- a/pyomo/pysp/tests/evalxhat/networkx_ef_costs.json
+++ /dev/null
@@ -1,7 +0,0 @@
-{
- "u00": 9.256727537365752,
- "u01": 4.35826150485726,
- "u10": 4.28629769771911,
- "u11": 5.3861787913091055,
- "u20": 9.071818194603951
-}
\ No newline at end of file
diff --git a/pyomo/pysp/tests/evalxhat/networkx_ef_solution.json b/pyomo/pysp/tests/evalxhat/networkx_ef_solution.json
deleted file mode 100644
index 6b162a5ab24..00000000000
--- a/pyomo/pysp/tests/evalxhat/networkx_ef_solution.json
+++ /dev/null
@@ -1,80 +0,0 @@
-[
- {
- "R": {
- "x": [
- [
- null,
- 0.48181818181818187
- ]
- ]
- }
- },
- {
- "u0": {
- "y0": [
- [
- null,
- 1.4324324322302875
- ]
- ]
- },
- "u1": {
- "y1": [
- [
- null,
- 1.7241379297809765
- ]
- ]
- },
- "u2": {
- "y2": [
- [
- null,
- 9.999999968035578
- ]
- ]
- }
- },
- {
- "u00": {
- "yu00": [
- [
- null,
- 1.4324324322302875
- ]
- ]
- },
- "u01": {
- "yu01": [
- [
- null,
- 1.4324324322302873
- ]
- ]
- },
- "u10": {
- "yu10": [
- [
- null,
- 1.724137929780976
- ]
- ]
- },
- "u11": {
- "yu11": [
- [
- null,
- 1.724137929780976
- ]
- ]
- },
- "u20": {
- "yu20": [
- [
- null,
- 9.99999996803558
- ]
- ]
- }
- }
-]
\ No newline at end of file
diff --git a/pyomo/pysp/tests/evalxhat/simple_quadratic_ef_costs.json b/pyomo/pysp/tests/evalxhat/simple_quadratic_ef_costs.json
deleted file mode 100644
index b10a989d499..00000000000
--- a/pyomo/pysp/tests/evalxhat/simple_quadratic_ef_costs.json
+++ /dev/null
@@ -1,6 +0,0 @@
-{
- "Scenario1": 699.3605485985422,
- "Scenario2": 32.65567687762041,
- "Scenario3": 50.876552499900214,
- "Scenario4": 143.90370952640333
-}
\ No newline at end of file
diff --git a/pyomo/pysp/tests/evalxhat/simple_quadratic_ef_solution.json b/pyomo/pysp/tests/evalxhat/simple_quadratic_ef_solution.json
deleted file mode 100644
index 93b192f1321..00000000000
--- a/pyomo/pysp/tests/evalxhat/simple_quadratic_ef_solution.json
+++ /dev/null
@@ -1,46 +0,0 @@
-[
- {
- "RootNode": {
- "x": [
- [
- null,
- 5.676249999998458
- ]
- ]
- }
- },
- {
- "LeafNode_Scenario1": {
- "y": [
- [
- null,
- 5.67624999992454
- ]
- ]
- },
- "LeafNode_Scenario2": {
- "y": [
- [
- null,
- 5.67625000021941
- ]
- ]
- },
- "LeafNode_Scenario3": {
- "y": [
- [
- null,
- 5.67624999999447
- ]
- ]
- },
- "LeafNode_Scenario4": {
- "y": [
- [
- null,
- 5.67624999985541
- ]
- ]
- }
- }
-]
\ No newline at end of file
diff --git a/pyomo/pysp/tests/evalxhat/test_evaluate_xhat.py b/pyomo/pysp/tests/evalxhat/test_evaluate_xhat.py
deleted file mode 100644
index b2660d1c87b..00000000000
--- a/pyomo/pysp/tests/evalxhat/test_evaluate_xhat.py
+++ /dev/null
@@ -1,387 +0,0 @@
-# ___________________________________________________________________________
-#
-# Pyomo: Python Optimization Modeling Objects
-# Copyright 2017 National Technology and Engineering Solutions of Sandia, LLC
-# Under the terms of Contract DE-NA0003525 with National Technology and
-# Engineering Solutions of Sandia, LLC, the U.S. Government retains certain
-# rights in this software.
-# This software is distributed under the 3-clause BSD License.
-# ___________________________________________________________________________
-
-import os
-from os.path import join, dirname, abspath
-import time
-import subprocess
-import shutil
-
-import pyutilib.th as unittest
-from pyutilib.pyro import using_pyro3, using_pyro4
-from pyomo.pysp.util.misc import (_get_test_nameserver,
- _get_test_dispatcher,
- _poll,
- _kill)
-
-networkx_available = False
-try:
- import networkx
- networkx_available = True
-except:
- networkx_available = False
-
-thisdir = dirname(abspath(__file__))
-baselineDir = join(thisdir, "baselines")
-pysp_examples_dir = \
- join(dirname(dirname(dirname(dirname(thisdir)))), "examples", "pysp")
-
-_run_verbose = True
-_json_exact_comparison = True
-_diff_tolerance = 1e-4
-
-testing_solvers = {}
-testing_solvers['cplex','nl'] = False
-testing_solvers['cplex','lp'] = False
-testing_solvers['cplex','mps'] = False
-testing_solvers['cplex','python'] = False
-testing_solvers['_cplex_persistent','python'] = False
-testing_solvers['ipopt','nl'] = False
-def setUpModule():
- global testing_solvers
- import pyomo.environ
- from pyomo.solvers.tests.solvers import test_solver_cases
- for _solver, _io in test_solver_cases():
- if (_solver, _io) in testing_solvers and \
- test_solver_cases(_solver, _io).available:
- testing_solvers[_solver, _io] = True
-
-
-class _EvalXHATTesterBase(object):
-
- basename = None
- model_location = None
- scenario_tree_location = None
- solver_name = None
- solver_io = None
-
- def setUp(self):
- self._tempfiles = []
- self.options = {}
- self.options['--scenario-tree-manager'] = 'serial'
-
- def _run_cmd(self, cmd):
- class_name, test_name = self.id().split('.')[-2:]
- outname = os.path.join(thisdir,
- class_name+"."+test_name+".out")
- self._tempfiles.append(outname)
- with open(outname, "w") as f:
- subprocess.check_call(cmd,
- stdout=f,
- stderr=subprocess.STDOUT)
-
- def _cleanup(self):
- for fname in self._tempfiles:
- try:
- os.remove(fname)
- except OSError:
- pass
- self._tempfiles = []
-
- def _setup(self, options):
- assert self.basename is not None
- assert self.model_location is not None
- assert self.solver_name is not None
- assert self.solver_io is not None
- if not testing_solvers[self.solver_name, self.solver_io]:
- self.skipTest("%s (interface=%s) is not available"
- % (self.solver_name, self.solver_io))
- options['--subproblem-solver'] = self.solver_name
- options['--subproblem-solver-io'] = self.solver_io
- options['--model-location'] = self.model_location
- if self.scenario_tree_location is not None:
- options['--scenario-tree-location'] = self.scenario_tree_location
- if _run_verbose:
- options['--verbose'] = None
- options['--output-times'] = None
- options['--traceback'] = None
- options['--solution-loader-extension'] = 'pyomo.pysp.plugins.jsonio'
- options['--jsonloader-input-name'] = \
- join(thisdir, self.basename+'_ef_solution.json')
- options['--solution-saver-extension'] = 'pyomo.pysp.plugins.jsonio'
-
- class_name, test_name = self.id().split('.')[-2:]
- options['--jsonsaver-output-name'] = \
- join(thisdir, class_name+"."+test_name+'_solution.json')
- options['--output-scenario-costs'] = \
- join(thisdir, class_name+"."+test_name+'_costs.json')
- if os.path.exists(options['--jsonsaver-output-name']):
- shutil.rmtree(options['--jsonsaver-output-name'],
- ignore_errors=True)
- if os.path.exists(options['--output-scenario-costs']):
- shutil.rmtree(options['--output-scenario-costs'],
- ignore_errors=True)
-
- def _get_cmd(self):
- cmd = ['evaluate_xhat']
- for name, val in self.options.items():
- cmd.append(name)
- if val is not None:
- cmd.append(str(val))
- class_name, test_name = self.id().split('.')[-2:]
- print("%s.%s: Testing command: %s" % (class_name,
- test_name,
- str(' '.join(cmd))))
- return cmd
-
- def test_scenarios(self):
- self._setup(self.options)
- cmd = self._get_cmd()
- self._run_cmd(cmd)
- self.assertMatchesJsonBaseline(
- self.options['--jsonsaver-output-name'],
- join(thisdir, self.basename+'_ef_solution.json'),
- tolerance=_diff_tolerance,
- delete=True,
- exact=_json_exact_comparison)
- self.assertMatchesJsonBaseline(
- self.options['--output-scenario-costs'],
- join(thisdir, self.basename+'_ef_costs.json'),
- tolerance=_diff_tolerance,
- delete=True,
- exact=_json_exact_comparison)
- self._cleanup()
-
-_pyomo_ns_host = '127.0.0.1'
-_pyomo_ns_port = None
-_pyomo_ns_process = None
-_dispatch_srvr_port = None
-_dispatch_srvr_process = None
-_taskworker_processes = []
-def tearDownModule():
- global _pyomo_ns_port
- global _pyomo_ns_process
- global _dispatch_srvr_port
- global _dispatch_srvr_process
- global _taskworker_processes
- _kill(_pyomo_ns_process)
- _pyomo_ns_port = None
- _pyomo_ns_process = None
- _kill(_dispatch_srvr_process)
- _dispatch_srvr_port = None
- _dispatch_srvr_process = None
- [_kill(proc) for proc in _taskworker_processes]
- _taskworker_processes = []
- if os.path.exists(join(thisdir, "Pyro_NS_URI")):
- try:
- os.remove(join(thisdir, "Pyro_NS_URI"))
- except OSError:
- pass
-
-class _EvalXHATPyroTesterBase(_EvalXHATTesterBase):
-
- def _setUpPyro(self):
- global _pyomo_ns_port
- global _pyomo_ns_process
- global _dispatch_srvr_port
- global _dispatch_srvr_process
- global _taskworker_processes
- if _pyomo_ns_process is None:
- _pyomo_ns_process, _pyomo_ns_port = \
- _get_test_nameserver(ns_host=_pyomo_ns_host)
- assert _pyomo_ns_process is not None
- if _dispatch_srvr_process is None:
- _dispatch_srvr_process, _dispatch_srvr_port = \
- _get_test_dispatcher(ns_host=_pyomo_ns_host,
- ns_port=_pyomo_ns_port)
- assert _dispatch_srvr_process is not None
- class_name, test_name = self.id().split('.')[-2:]
- if len(_taskworker_processes) == 0:
- for i in range(3):
- outname = os.path.join(thisdir,
- class_name+"."+test_name+".scenariotreeserver_"+str(i+1)+".out")
- self._tempfiles.append(outname)
- with open(outname, "w") as f:
- _taskworker_processes.append(
- subprocess.Popen(["scenariotreeserver", "--traceback"] + \
- (["--verbose"] if _run_verbose else []) + \
- ["--pyro-host="+str(_pyomo_ns_host)] + \
- ["--pyro-port="+str(_pyomo_ns_port)],
- stdout=f,
- stderr=subprocess.STDOUT))
-
- time.sleep(2)
- [_poll(proc) for proc in _taskworker_processes]
-
- def setUp(self):
- self._tempfiles = []
- self._setUpPyro()
- [_poll(proc) for proc in _taskworker_processes]
- self.options = {}
- self.options['--scenario-tree-manager'] = 'pyro'
- self.options['--pyro-host'] = 'localhost'
- self.options['--pyro-port'] = _pyomo_ns_port
- self.options['--pyro-required-scenariotreeservers'] = 3
-
- def _setup(self, options, servers=None):
- _EvalXHATTesterBase._setup(self, options)
- if servers is not None:
- options['--pyro-required-scenariotreeservers'] = servers
-
- def test_scenarios_1server(self):
- self._setup(self.options, servers=1)
- cmd = self._get_cmd()
- self._run_cmd(cmd)
- self.assertMatchesJsonBaseline(
- self.options['--jsonsaver-output-name'],
- join(thisdir, self.basename+'_ef_solution.json'),
- tolerance=_diff_tolerance,
- delete=True,
- exact=_json_exact_comparison)
- self.assertMatchesJsonBaseline(
- self.options['--output-scenario-costs'],
- join(thisdir, self.basename+'_ef_costs.json'),
- tolerance=_diff_tolerance,
- delete=True,
- exact=_json_exact_comparison)
- self._cleanup()
-
-@unittest.nottest
-def create_test_classes(basename,
- model_location,
- scenario_tree_location,
- solver_name,
- solver_io,
- categories):
- assert basename is not None
-
- class _base(object):
- pass
- _base.basename = basename
- _base.model_location = model_location
- _base.scenario_tree_location = scenario_tree_location
- _base.solver_name = solver_name
- _base.solver_io = solver_io
-
- class_append_name = basename + "_" + solver_name + "_" + solver_io
- class_names = []
-
- @unittest.category(*categories)
- class TestEvalXHAT_Serial(_base,
- _EvalXHATTesterBase):
- pass
- class_names.append(TestEvalXHAT_Serial.__name__ + "_"+class_append_name)
- globals()[class_names[-1]] = type(
- class_names[-1], (TestEvalXHAT_Serial, unittest.TestCase), {})
-
- @unittest.skipIf(not (using_pyro3 or using_pyro4),
- "Pyro or Pyro4 is not available")
- @unittest.category('parallel')
- class TestEvalXHAT_Pyro(_base,
- _EvalXHATPyroTesterBase):
- def setUp(self):
- _EvalXHATPyroTesterBase.setUp(self)
- def _setup(self, options, servers=None):
- _EvalXHATPyroTesterBase._setup(self, options, servers=servers)
- class_names.append(TestEvalXHAT_Pyro.__name__ + "_"+class_append_name)
- globals()[class_names[-1]] = type(
- class_names[-1], (TestEvalXHAT_Pyro, unittest.TestCase), {})
-
- @unittest.skipIf(not (using_pyro3 or using_pyro4),
- "Pyro or Pyro4 is not available")
- @unittest.category('parallel')
- class TestEvalXHAT_Pyro_HandshakeAtStartup(_base,
- _EvalXHATPyroTesterBase):
- def setUp(self):
- _EvalXHATPyroTesterBase.setUp(self)
- def _setup(self, options, servers=None):
- _EvalXHATPyroTesterBase._setup(self, options, servers=servers)
- options['--pyro-handshake-at-startup'] = None
- class_names.append(TestEvalXHAT_Pyro_HandshakeAtStartup.__name__ + "_"+class_append_name)
- globals()[class_names[-1]] = type(
- class_names[-1], (TestEvalXHAT_Pyro_HandshakeAtStartup, unittest.TestCase), {})
-
- return class_names
-
-#
-# create the actual testing classes
-#
-
-for solver_name, solver_io in [('cplex','lp'),
- ('cplex','mps'),
- ('cplex','nl'),
- ('cplex','python'),
- ('_cplex_persistent','python')]:
-
- simple_quadratic_examples_dir = join(pysp_examples_dir, "simple_quadratic")
- simple_quadratic_model_dir = join(simple_quadratic_examples_dir, "ReferenceModel.py")
- simple_quadratic_data_dir = None
- create_test_classes('simple_quadratic',
- simple_quadratic_model_dir,
- simple_quadratic_data_dir,
- solver_name,
- solver_io,
- ('nightly','expensive'))
-
- farmer_examples_dir = join(pysp_examples_dir, "farmer")
- farmer_model_dir = join(farmer_examples_dir, "models")
- farmer_data_dir = join(farmer_examples_dir, "scenariodata")
- create_test_classes('farmer',
- farmer_model_dir,
- farmer_data_dir,
- solver_name,
- solver_io,
- ('nightly','expensive'))
-
- finance_examples_dir = join(pysp_examples_dir, "finance")
- finance_model_dir = join(finance_examples_dir, "models")
- finance_data_dir = join(finance_examples_dir, "scenariodata")
- finance_cat = ('nightly','expensive')
- if solver_name == 'cplex' and solver_io == 'nl':
- # On some versions of cplex (including 12.6.0), the NL test
- # fails with seg fault.
- finance_cat = finance_cat + ('fragile',)
- create_test_classes('finance',
- finance_model_dir,
- finance_data_dir,
- solver_name,
- solver_io,
- finance_cat)
-
- hydro_examples_dir = join(pysp_examples_dir, "hydro")
- hydro_model_dir = join(hydro_examples_dir, "models")
- hydro_data_dir = join(hydro_examples_dir, "scenariodata")
- create_test_classes('hydro',
- hydro_model_dir,
- hydro_data_dir,
- solver_name,
- solver_io,
- ('nightly','expensive'))
-
-for solver_name, solver_io in [('ipopt','nl')]:
-
- networkx_examples_dir = join(pysp_examples_dir, "networkx_scenariotree")
- networkx_model_dir = join(networkx_examples_dir, "ReferenceModel.py")
- networkx_data_dir = join(networkx_examples_dir, "ScenarioTree.py")
- class_names = create_test_classes('networkx',
- networkx_model_dir,
- networkx_data_dir,
- solver_name,
- solver_io,
- ('nightly','expensive'))
- for name in class_names:
- globals()[name] = unittest.skipIf(not networkx_available,
- "networkx module is not available")(globals()[name])
-
-# this example is big
-for solver_name, solver_io in [('cplex','lp')]:
-
- baa99_examples_dir = join(pysp_examples_dir, "baa99")
- baa99_model_dir = join(baa99_examples_dir, "ReferenceModel.py")
- baa99_data_dir = None
- create_test_classes('baa99',
- baa99_model_dir,
- baa99_data_dir,
- solver_name,
- solver_io,
- ('nightly','expensive'))
-
-if __name__ == "__main__":
- unittest.main()
diff --git a/pyomo/pysp/tests/examples/baselines/TestEFFarmer.test1.ef_solution.json.baseline.gz b/pyomo/pysp/tests/examples/baselines/TestEFFarmer.test1.ef_solution.json.baseline.gz
deleted file mode 100644
index bc642103878..00000000000
Binary files a/pyomo/pysp/tests/examples/baselines/TestEFFarmer.test1.ef_solution.json.baseline.gz and /dev/null differ
diff --git a/pyomo/pysp/tests/examples/baselines/TestEFFarmer.test2.ef_solution.json.baseline.gz b/pyomo/pysp/tests/examples/baselines/TestEFFarmer.test2.ef_solution.json.baseline.gz
deleted file mode 100644
index 01ceea14473..00000000000
Binary files a/pyomo/pysp/tests/examples/baselines/TestEFFarmer.test2.ef_solution.json.baseline.gz and /dev/null differ
diff --git a/pyomo/pysp/tests/examples/baselines/TestEFFarmer.test3.ef_solution.json.baseline.gz b/pyomo/pysp/tests/examples/baselines/TestEFFarmer.test3.ef_solution.json.baseline.gz
deleted file mode 100644
index 8e7357d6809..00000000000
Binary files a/pyomo/pysp/tests/examples/baselines/TestEFFarmer.test3.ef_solution.json.baseline.gz and /dev/null differ
diff --git a/pyomo/pysp/tests/examples/baselines/TestEFFarmer.test4.ef_solution.json.baseline.gz b/pyomo/pysp/tests/examples/baselines/TestEFFarmer.test4.ef_solution.json.baseline.gz
deleted file mode 100644
index 1fd723faa60..00000000000
Binary files a/pyomo/pysp/tests/examples/baselines/TestEFFarmer.test4.ef_solution.json.baseline.gz and /dev/null differ
diff --git a/pyomo/pysp/tests/examples/baselines/TestEFFarmer.test5.ef_solution.json.baseline.gz b/pyomo/pysp/tests/examples/baselines/TestEFFarmer.test5.ef_solution.json.baseline.gz
deleted file mode 100644
index a6854a9f4d2..00000000000
Binary files a/pyomo/pysp/tests/examples/baselines/TestEFFarmer.test5.ef_solution.json.baseline.gz and /dev/null differ
diff --git a/pyomo/pysp/tests/examples/baselines/TestEFFarmerMax.test1.ef_solution.json.baseline.gz b/pyomo/pysp/tests/examples/baselines/TestEFFarmerMax.test1.ef_solution.json.baseline.gz
deleted file mode 100644
index ac9ed9407f5..00000000000
Binary files a/pyomo/pysp/tests/examples/baselines/TestEFFarmerMax.test1.ef_solution.json.baseline.gz and /dev/null differ
diff --git a/pyomo/pysp/tests/examples/baselines/TestEFFarmerMax.test2.ef_solution.json.baseline.gz b/pyomo/pysp/tests/examples/baselines/TestEFFarmerMax.test2.ef_solution.json.baseline.gz
deleted file mode 100644
index 73d3846c3c1..00000000000
Binary files a/pyomo/pysp/tests/examples/baselines/TestEFFarmerMax.test2.ef_solution.json.baseline.gz and /dev/null differ
diff --git a/pyomo/pysp/tests/examples/baselines/TestEFFarmerMax.test3.ef_solution.json.baseline.gz b/pyomo/pysp/tests/examples/baselines/TestEFFarmerMax.test3.ef_solution.json.baseline.gz
deleted file mode 100644
index 2779dde1683..00000000000
Binary files a/pyomo/pysp/tests/examples/baselines/TestEFFarmerMax.test3.ef_solution.json.baseline.gz and /dev/null differ
diff --git a/pyomo/pysp/tests/examples/baselines/TestEFFarmerMax.test4.ef_solution.json.baseline.gz b/pyomo/pysp/tests/examples/baselines/TestEFFarmerMax.test4.ef_solution.json.baseline.gz
deleted file mode 100644
index 0f7a219172d..00000000000
Binary files a/pyomo/pysp/tests/examples/baselines/TestEFFarmerMax.test4.ef_solution.json.baseline.gz and /dev/null differ
diff --git a/pyomo/pysp/tests/examples/baselines/TestEFFarmerMax.test5.ef_solution.json.baseline.gz b/pyomo/pysp/tests/examples/baselines/TestEFFarmerMax.test5.ef_solution.json.baseline.gz
deleted file mode 100644
index 55e4430d063..00000000000
Binary files a/pyomo/pysp/tests/examples/baselines/TestEFFarmerMax.test5.ef_solution.json.baseline.gz and /dev/null differ
diff --git a/pyomo/pysp/tests/examples/baselines/TestPHFarmer.test1.ph_history.json.baseline.gz b/pyomo/pysp/tests/examples/baselines/TestPHFarmer.test1.ph_history.json.baseline.gz
deleted file mode 100644
index d4e28c548c0..00000000000
Binary files a/pyomo/pysp/tests/examples/baselines/TestPHFarmer.test1.ph_history.json.baseline.gz and /dev/null differ
diff --git a/pyomo/pysp/tests/examples/baselines/TestPHFarmer.test1.ph_solution.json.baseline.gz b/pyomo/pysp/tests/examples/baselines/TestPHFarmer.test1.ph_solution.json.baseline.gz
deleted file mode 100644
index 75e7726c4bf..00000000000
Binary files a/pyomo/pysp/tests/examples/baselines/TestPHFarmer.test1.ph_solution.json.baseline.gz and /dev/null differ
diff --git a/pyomo/pysp/tests/examples/baselines/TestPHFarmer.test10.ph_history.json.baseline.gz b/pyomo/pysp/tests/examples/baselines/TestPHFarmer.test10.ph_history.json.baseline.gz
deleted file mode 100644
index 61ae6f10909..00000000000
Binary files a/pyomo/pysp/tests/examples/baselines/TestPHFarmer.test10.ph_history.json.baseline.gz and /dev/null differ
diff --git a/pyomo/pysp/tests/examples/baselines/TestPHFarmer.test10.ph_solution.json.baseline.gz b/pyomo/pysp/tests/examples/baselines/TestPHFarmer.test10.ph_solution.json.baseline.gz
deleted file mode 100644
index e634e25f78b..00000000000
Binary files a/pyomo/pysp/tests/examples/baselines/TestPHFarmer.test10.ph_solution.json.baseline.gz and /dev/null differ
diff --git a/pyomo/pysp/tests/examples/baselines/TestPHFarmer.test10.phbestbound.txt.baseline b/pyomo/pysp/tests/examples/baselines/TestPHFarmer.test10.phbestbound.txt.baseline
deleted file mode 100644
index d643ce7da07..00000000000
--- a/pyomo/pysp/tests/examples/baselines/TestPHFarmer.test10.phbestbound.txt.baseline
+++ /dev/null
@@ -1,2 +0,0 @@
-Incumbent: -107983.30393982964
-Dual: -112378.39515445073
diff --git a/pyomo/pysp/tests/examples/baselines/TestPHFarmer.test10.phbound.txt.baseline b/pyomo/pysp/tests/examples/baselines/TestPHFarmer.test10.phbound.txt.baseline
deleted file mode 100644
index 5a43e83a17f..00000000000
--- a/pyomo/pysp/tests/examples/baselines/TestPHFarmer.test10.phbound.txt.baseline
+++ /dev/null
@@ -1,19 +0,0 @@
-Inner Bound:
- 0: -103716.66680394445
- 1: -107578.75934248784
- 2: -107726.3642673346
- 3: -107731.95166269652
- 4: -107714.63925977261
- 5: -107718.80397395398
- 6: -107983.30393982964
- 7: -107983.30393217297
-Outer Bound:
- Trivial: -115405.5555875001
- 0: -112378.39515445073
- 1: -119146.91382574063
- 2: -122839.93727591721
- 3: -115850.2282624498
- 4: -114662.42776263482
- 5: -114508.93639083163
- 6: -115786.77660536775
- 7: -114931.23960528412
diff --git a/pyomo/pysp/tests/examples/baselines/TestPHFarmer.test11.ph_history.json.baseline.gz b/pyomo/pysp/tests/examples/baselines/TestPHFarmer.test11.ph_history.json.baseline.gz
deleted file mode 100644
index b73411182cc..00000000000
Binary files a/pyomo/pysp/tests/examples/baselines/TestPHFarmer.test11.ph_history.json.baseline.gz and /dev/null differ
diff --git a/pyomo/pysp/tests/examples/baselines/TestPHFarmer.test11.ph_solution.json.baseline.gz b/pyomo/pysp/tests/examples/baselines/TestPHFarmer.test11.ph_solution.json.baseline.gz
deleted file mode 100644
index 2ac20435218..00000000000
Binary files a/pyomo/pysp/tests/examples/baselines/TestPHFarmer.test11.ph_solution.json.baseline.gz and /dev/null differ
diff --git a/pyomo/pysp/tests/examples/baselines/TestPHFarmer.test11.phbestbound.txt.baseline b/pyomo/pysp/tests/examples/baselines/TestPHFarmer.test11.phbestbound.txt.baseline
deleted file mode 100644
index 44b47f97ee5..00000000000
--- a/pyomo/pysp/tests/examples/baselines/TestPHFarmer.test11.phbestbound.txt.baseline
+++ /dev/null
@@ -1,2 +0,0 @@
-Incumbent: -107905.90888195252
-Dual: -109440.78054174306
diff --git a/pyomo/pysp/tests/examples/baselines/TestPHFarmer.test11.phbound.txt.baseline b/pyomo/pysp/tests/examples/baselines/TestPHFarmer.test11.phbound.txt.baseline
deleted file mode 100644
index e5341e9a86f..00000000000
--- a/pyomo/pysp/tests/examples/baselines/TestPHFarmer.test11.phbound.txt.baseline
+++ /dev/null
@@ -1,19 +0,0 @@
-Inner Bound:
- 0: -103716.66680394445
- 1: -107578.75934248784
- 2: -107726.3642673346
- 3: -107731.95166269652
- 4: -107714.63925977261
- 5: -107718.80397395398
- 6: -107905.90885381353
- 7: -107905.90888195252
-Outer Bound:
- Trivial: -115405.5555875001
- 0: -112378.39512375317
- 1: -114092.20090015297
- 2: -111905.77474431759
- 3: -110093.78835351864
- 4: -109499.51614511295
- 5: -109440.78054174306
- 6: -112587.00169935689
- 7: -112587.00170103386
diff --git a/pyomo/pysp/tests/examples/baselines/TestPHFarmer.test12.ph_history.json.baseline.gz b/pyomo/pysp/tests/examples/baselines/TestPHFarmer.test12.ph_history.json.baseline.gz
deleted file mode 100644
index 50113de10dc..00000000000
Binary files a/pyomo/pysp/tests/examples/baselines/TestPHFarmer.test12.ph_history.json.baseline.gz and /dev/null differ
diff --git a/pyomo/pysp/tests/examples/baselines/TestPHFarmer.test12.ph_solution.json.baseline.gz b/pyomo/pysp/tests/examples/baselines/TestPHFarmer.test12.ph_solution.json.baseline.gz
deleted file mode 100644
index 91b2e8273a0..00000000000
Binary files a/pyomo/pysp/tests/examples/baselines/TestPHFarmer.test12.ph_solution.json.baseline.gz and /dev/null differ
diff --git a/pyomo/pysp/tests/examples/baselines/TestPHFarmer.test12.phbestbound.txt.baseline b/pyomo/pysp/tests/examples/baselines/TestPHFarmer.test12.phbestbound.txt.baseline
deleted file mode 100644
index d643ce7da07..00000000000
--- a/pyomo/pysp/tests/examples/baselines/TestPHFarmer.test12.phbestbound.txt.baseline
+++ /dev/null
@@ -1,2 +0,0 @@
-Incumbent: -107983.30393982964
-Dual: -112378.39515445073
diff --git a/pyomo/pysp/tests/examples/baselines/TestPHFarmer.test12.phbound.txt.baseline b/pyomo/pysp/tests/examples/baselines/TestPHFarmer.test12.phbound.txt.baseline
deleted file mode 100644
index a99e8b95d84..00000000000
--- a/pyomo/pysp/tests/examples/baselines/TestPHFarmer.test12.phbound.txt.baseline
+++ /dev/null
@@ -1,19 +0,0 @@
-Inner Bound:
- 0: -103716.66680394445
- 1: -107578.75934248784
- 2: -107726.3642673346
- 3: -107731.95166269652
- 4: -107714.63925977261
- 5: -107718.80397395398
- 6: -107983.30393982964
- 7: -107983.30393217297
-Outer Bound:
- Trivial: -115405.5555875001
- 0: -112378.39515445073
- 1: -119146.91382574063
- 2: -122839.93727591721
- 3: -115850.2282624498
- 4: -114662.42776263482
- 5: -114508.93639083163
- 6: -115786.77660536784
- 7: -114931.23960528415
diff --git a/pyomo/pysp/tests/examples/baselines/TestPHFarmer.test13.ph_history.json.baseline.gz b/pyomo/pysp/tests/examples/baselines/TestPHFarmer.test13.ph_history.json.baseline.gz
deleted file mode 100644
index d92a2a502b3..00000000000
Binary files a/pyomo/pysp/tests/examples/baselines/TestPHFarmer.test13.ph_history.json.baseline.gz and /dev/null differ
diff --git a/pyomo/pysp/tests/examples/baselines/TestPHFarmer.test13.ph_solution.json.baseline.gz b/pyomo/pysp/tests/examples/baselines/TestPHFarmer.test13.ph_solution.json.baseline.gz
deleted file mode 100644
index fafd9db5130..00000000000
Binary files a/pyomo/pysp/tests/examples/baselines/TestPHFarmer.test13.ph_solution.json.baseline.gz and /dev/null differ
diff --git a/pyomo/pysp/tests/examples/baselines/TestPHFarmer.test14.ph_history.json.baseline.gz b/pyomo/pysp/tests/examples/baselines/TestPHFarmer.test14.ph_history.json.baseline.gz
deleted file mode 100644
index c2d2005bb28..00000000000
Binary files a/pyomo/pysp/tests/examples/baselines/TestPHFarmer.test14.ph_history.json.baseline.gz and /dev/null differ
diff --git a/pyomo/pysp/tests/examples/baselines/TestPHFarmer.test14.ph_solution.json.baseline.gz b/pyomo/pysp/tests/examples/baselines/TestPHFarmer.test14.ph_solution.json.baseline.gz
deleted file mode 100644
index 04bff6c5206..00000000000
Binary files a/pyomo/pysp/tests/examples/baselines/TestPHFarmer.test14.ph_solution.json.baseline.gz and /dev/null differ
diff --git a/pyomo/pysp/tests/examples/baselines/TestPHFarmer.test14_withef.ph_history.json.baseline.gz b/pyomo/pysp/tests/examples/baselines/TestPHFarmer.test14_withef.ph_history.json.baseline.gz
deleted file mode 100644
index e29216e9204..00000000000
Binary files a/pyomo/pysp/tests/examples/baselines/TestPHFarmer.test14_withef.ph_history.json.baseline.gz and /dev/null differ
diff --git a/pyomo/pysp/tests/examples/baselines/TestPHFarmer.test14_withef.ph_solution.json.baseline.gz b/pyomo/pysp/tests/examples/baselines/TestPHFarmer.test14_withef.ph_solution.json.baseline.gz
deleted file mode 100644
index 54462884981..00000000000
Binary files a/pyomo/pysp/tests/examples/baselines/TestPHFarmer.test14_withef.ph_solution.json.baseline.gz and /dev/null differ
diff --git a/pyomo/pysp/tests/examples/baselines/TestPHFarmer.test14_withef.postphef_solution.json.baseline.gz b/pyomo/pysp/tests/examples/baselines/TestPHFarmer.test14_withef.postphef_solution.json.baseline.gz
deleted file mode 100644
index f25d615ebd7..00000000000
Binary files a/pyomo/pysp/tests/examples/baselines/TestPHFarmer.test14_withef.postphef_solution.json.baseline.gz and /dev/null differ
diff --git a/pyomo/pysp/tests/examples/baselines/TestPHFarmer.test1_withef.ph_history.json.baseline.gz b/pyomo/pysp/tests/examples/baselines/TestPHFarmer.test1_withef.ph_history.json.baseline.gz
deleted file mode 100644
index c35f6b53203..00000000000
Binary files a/pyomo/pysp/tests/examples/baselines/TestPHFarmer.test1_withef.ph_history.json.baseline.gz and /dev/null differ
diff --git a/pyomo/pysp/tests/examples/baselines/TestPHFarmer.test1_withef.ph_solution.json.baseline.gz b/pyomo/pysp/tests/examples/baselines/TestPHFarmer.test1_withef.ph_solution.json.baseline.gz
deleted file mode 100644
index 1c0631e5fa4..00000000000
Binary files a/pyomo/pysp/tests/examples/baselines/TestPHFarmer.test1_withef.ph_solution.json.baseline.gz and /dev/null differ
diff --git a/pyomo/pysp/tests/examples/baselines/TestPHFarmer.test1_withef.postphef_solution.json.baseline.gz b/pyomo/pysp/tests/examples/baselines/TestPHFarmer.test1_withef.postphef_solution.json.baseline.gz
deleted file mode 100644
index fa4953def5d..00000000000
Binary files a/pyomo/pysp/tests/examples/baselines/TestPHFarmer.test1_withef.postphef_solution.json.baseline.gz and /dev/null differ
diff --git a/pyomo/pysp/tests/examples/baselines/TestPHFarmer.test2.ph_history.json.baseline.gz b/pyomo/pysp/tests/examples/baselines/TestPHFarmer.test2.ph_history.json.baseline.gz
deleted file mode 100644
index 6edbf95abb8..00000000000
Binary files a/pyomo/pysp/tests/examples/baselines/TestPHFarmer.test2.ph_history.json.baseline.gz and /dev/null differ
diff --git a/pyomo/pysp/tests/examples/baselines/TestPHFarmer.test2.ph_solution.json.baseline.gz b/pyomo/pysp/tests/examples/baselines/TestPHFarmer.test2.ph_solution.json.baseline.gz
deleted file mode 100644
index 458cb1219a8..00000000000
Binary files a/pyomo/pysp/tests/examples/baselines/TestPHFarmer.test2.ph_solution.json.baseline.gz and /dev/null differ
diff --git a/pyomo/pysp/tests/examples/baselines/TestPHFarmer.test3.ph_history.json.baseline.gz b/pyomo/pysp/tests/examples/baselines/TestPHFarmer.test3.ph_history.json.baseline.gz
deleted file mode 100644
index 317f3fe7d10..00000000000
Binary files a/pyomo/pysp/tests/examples/baselines/TestPHFarmer.test3.ph_history.json.baseline.gz and /dev/null differ
diff --git a/pyomo/pysp/tests/examples/baselines/TestPHFarmer.test3.ph_solution.json.baseline.gz b/pyomo/pysp/tests/examples/baselines/TestPHFarmer.test3.ph_solution.json.baseline.gz
deleted file mode 100644
index e24138620a6..00000000000
Binary files a/pyomo/pysp/tests/examples/baselines/TestPHFarmer.test3.ph_solution.json.baseline.gz and /dev/null differ
diff --git a/pyomo/pysp/tests/examples/baselines/TestPHFarmer.test4.ph_history.json.baseline.gz b/pyomo/pysp/tests/examples/baselines/TestPHFarmer.test4.ph_history.json.baseline.gz
deleted file mode 100644
index 4ce98985d1c..00000000000
Binary files a/pyomo/pysp/tests/examples/baselines/TestPHFarmer.test4.ph_history.json.baseline.gz and /dev/null differ
diff --git a/pyomo/pysp/tests/examples/baselines/TestPHFarmer.test4.ph_solution.json.baseline.gz b/pyomo/pysp/tests/examples/baselines/TestPHFarmer.test4.ph_solution.json.baseline.gz
deleted file mode 100644
index 1fb68260b4c..00000000000
Binary files a/pyomo/pysp/tests/examples/baselines/TestPHFarmer.test4.ph_solution.json.baseline.gz and /dev/null differ
diff --git a/pyomo/pysp/tests/examples/baselines/TestPHFarmer.test5.ph_history.json.baseline.gz b/pyomo/pysp/tests/examples/baselines/TestPHFarmer.test5.ph_history.json.baseline.gz
deleted file mode 100644
index 3bb24b38c30..00000000000
Binary files a/pyomo/pysp/tests/examples/baselines/TestPHFarmer.test5.ph_history.json.baseline.gz and /dev/null differ
diff --git a/pyomo/pysp/tests/examples/baselines/TestPHFarmer.test5.ph_solution.json.baseline.gz b/pyomo/pysp/tests/examples/baselines/TestPHFarmer.test5.ph_solution.json.baseline.gz
deleted file mode 100644
index d6b7fe2c37d..00000000000
Binary files a/pyomo/pysp/tests/examples/baselines/TestPHFarmer.test5.ph_solution.json.baseline.gz and /dev/null differ
diff --git a/pyomo/pysp/tests/examples/baselines/TestPHFarmer.test6.ph_history.json.baseline.gz b/pyomo/pysp/tests/examples/baselines/TestPHFarmer.test6.ph_history.json.baseline.gz
deleted file mode 100644
index 1b0f4410b72..00000000000
Binary files a/pyomo/pysp/tests/examples/baselines/TestPHFarmer.test6.ph_history.json.baseline.gz and /dev/null differ
diff --git a/pyomo/pysp/tests/examples/baselines/TestPHFarmer.test6.ph_solution.json.baseline.gz b/pyomo/pysp/tests/examples/baselines/TestPHFarmer.test6.ph_solution.json.baseline.gz
deleted file mode 100644
index 8db5e7ab7af..00000000000
Binary files a/pyomo/pysp/tests/examples/baselines/TestPHFarmer.test6.ph_solution.json.baseline.gz and /dev/null differ
diff --git a/pyomo/pysp/tests/examples/baselines/TestPHFarmer.test6_withef.ph_history.json.baseline.gz b/pyomo/pysp/tests/examples/baselines/TestPHFarmer.test6_withef.ph_history.json.baseline.gz
deleted file mode 100644
index 4877377ae32..00000000000
Binary files a/pyomo/pysp/tests/examples/baselines/TestPHFarmer.test6_withef.ph_history.json.baseline.gz and /dev/null differ
diff --git a/pyomo/pysp/tests/examples/baselines/TestPHFarmer.test6_withef.ph_solution.json.baseline.gz b/pyomo/pysp/tests/examples/baselines/TestPHFarmer.test6_withef.ph_solution.json.baseline.gz
deleted file mode 100644
index 34932f36ad0..00000000000
Binary files a/pyomo/pysp/tests/examples/baselines/TestPHFarmer.test6_withef.ph_solution.json.baseline.gz and /dev/null differ
diff --git a/pyomo/pysp/tests/examples/baselines/TestPHFarmer.test6_withef.postphef_solution.json.baseline.gz b/pyomo/pysp/tests/examples/baselines/TestPHFarmer.test6_withef.postphef_solution.json.baseline.gz
deleted file mode 100644
index cbaedf4007b..00000000000
Binary files a/pyomo/pysp/tests/examples/baselines/TestPHFarmer.test6_withef.postphef_solution.json.baseline.gz and /dev/null differ
diff --git a/pyomo/pysp/tests/examples/baselines/TestPHFarmer.test7.ph_history.json.baseline.gz b/pyomo/pysp/tests/examples/baselines/TestPHFarmer.test7.ph_history.json.baseline.gz
deleted file mode 100644
index 8e65e927ed9..00000000000
Binary files a/pyomo/pysp/tests/examples/baselines/TestPHFarmer.test7.ph_history.json.baseline.gz and /dev/null differ
diff --git a/pyomo/pysp/tests/examples/baselines/TestPHFarmer.test7.ph_solution.json.baseline.gz b/pyomo/pysp/tests/examples/baselines/TestPHFarmer.test7.ph_solution.json.baseline.gz
deleted file mode 100644
index 3484a151d79..00000000000
Binary files a/pyomo/pysp/tests/examples/baselines/TestPHFarmer.test7.ph_solution.json.baseline.gz and /dev/null differ
diff --git a/pyomo/pysp/tests/examples/baselines/TestPHFarmer.test7.phbestbound.txt.baseline b/pyomo/pysp/tests/examples/baselines/TestPHFarmer.test7.phbestbound.txt.baseline
deleted file mode 100644
index ea4ba840cbe..00000000000
--- a/pyomo/pysp/tests/examples/baselines/TestPHFarmer.test7.phbestbound.txt.baseline
+++ /dev/null
@@ -1,2 +0,0 @@
-Incumbent: -108386.96183374702
-Dual: -108399.96406612769
diff --git a/pyomo/pysp/tests/examples/baselines/TestPHFarmer.test7.phbound.txt.baseline b/pyomo/pysp/tests/examples/baselines/TestPHFarmer.test7.phbound.txt.baseline
deleted file mode 100644
index b2832262093..00000000000
--- a/pyomo/pysp/tests/examples/baselines/TestPHFarmer.test7.phbound.txt.baseline
+++ /dev/null
@@ -1,71 +0,0 @@
-Inner Bound:
- 0: -103716.66680394445
- 1: -107578.75934248784
- 2: -107726.3642673346
- 3: -107731.95166269652
- 4: -107714.63925977261
- 5: -107721.63783942195
- 6: -107826.52110707492
- 7: -108014.25771911355
- 8: -108223.6667639933
- 9: -107377.5058877221
- 10: -106634.37686085676
- 11: -106715.77382071185
- 12: -107327.88938497967
- 13: -107915.7271651015
- 14: -108159.17797635947
- 15: -108174.545392442
- 16: -108199.41225812715
- 17: -108214.82140990574
- 18: -108276.39069930816
- 19: -108374.9242410837
- 20: -108368.15187699429
- 21: -108358.53064249727
- 22: -108357.12049470526
- 23: -108362.81848943426
- 24: -108372.80895378574
- 25: -108384.01478589332
- 26: -108358.02643929367
- 27: -108300.00945528195
- 28: -108268.12868530766
- 29: -108261.90480886554
- 30: -108277.36475073796
- 31: -108308.3022628857
- 32: -108347.33287925561
- 33: -108386.96183374702
-Outer Bound:
- Trivial: -115405.5555875001
- 0: -112378.39512375317
- 1: -114092.20090015297
- 2: -111905.77474431759
- 3: -110093.78835351864
- 4: -109499.51614511295
- 5: -108931.80463453759
- 6: -110122.00189725877
- 7: -111334.70181746993
- 8: -111609.81433810157
- 9: -111298.11966974731
- 10: -110209.18668454391
- 11: -109115.65064967255
- 12: -108676.37696942026
- 13: -108716.2951572232
- 14: -108567.82807859627
- 15: -108440.15762189649
- 16: -108508.393308001
- 17: -108542.01611690226
- 18: -108541.93057266767
- 19: -108516.47813078747
- 20: -108488.28781997392
- 21: -108441.53899514643
- 22: -108399.96406612769
- 23: -108503.21202525277
- 24: -108576.03498611433
- 25: -108599.81308425825
- 26: -108581.64394485498
- 27: -108534.4974262812
- 28: -108472.56880864821
- 29: -108408.67559984564
- 30: -108403.8261937708
- 31: -108419.01640960305
- 32: -108427.15079097611
- 33: -108427.72394361845
diff --git a/pyomo/pysp/tests/examples/baselines/TestPHFarmer.test8.ph_history.json.baseline.gz b/pyomo/pysp/tests/examples/baselines/TestPHFarmer.test8.ph_history.json.baseline.gz
deleted file mode 100644
index c93e2c5d68d..00000000000
Binary files a/pyomo/pysp/tests/examples/baselines/TestPHFarmer.test8.ph_history.json.baseline.gz and /dev/null differ
diff --git a/pyomo/pysp/tests/examples/baselines/TestPHFarmer.test8.ph_solution.json.baseline.gz b/pyomo/pysp/tests/examples/baselines/TestPHFarmer.test8.ph_solution.json.baseline.gz
deleted file mode 100644
index f9317bc3789..00000000000
Binary files a/pyomo/pysp/tests/examples/baselines/TestPHFarmer.test8.ph_solution.json.baseline.gz and /dev/null differ
diff --git a/pyomo/pysp/tests/examples/baselines/TestPHFarmer.test8.phbestbound.txt.baseline b/pyomo/pysp/tests/examples/baselines/TestPHFarmer.test8.phbestbound.txt.baseline
deleted file mode 100644
index 7c0f14e75e1..00000000000
--- a/pyomo/pysp/tests/examples/baselines/TestPHFarmer.test8.phbestbound.txt.baseline
+++ /dev/null
@@ -1,2 +0,0 @@
-Incumbent: -108198.4550757941
-Dual: -110290.35571684661
diff --git a/pyomo/pysp/tests/examples/baselines/TestPHFarmer.test8.phbound.txt.baseline b/pyomo/pysp/tests/examples/baselines/TestPHFarmer.test8.phbound.txt.baseline
deleted file mode 100644
index 2502a0e8d52..00000000000
--- a/pyomo/pysp/tests/examples/baselines/TestPHFarmer.test8.phbound.txt.baseline
+++ /dev/null
@@ -1,105 +0,0 @@
-Inner Bound:
- 0: -103716.66680394445
- 1: -107578.75934248761
- 2: -107726.36426733424
- 3: -107731.95166269684
- 4: -107714.63925977229
- 5: -107721.63783942163
- 6: -107961.87767096702
- 7: -108198.45507579421
- 8: -107468.02373971557
- 9: -105229.56275781099
- 10: -104191.51341696936
- 11: -104048.39393578452
- 12: -104334.43102862737
- 13: -104814.50740548968
- 14: -105353.42892269164
- 15: -105858.72207533481
- 16: -106258.0551164284
- 17: -106517.2798925449
- 18: -106640.87666126646
- 19: -106657.06536435815
- 20: -106602.11832757629
- 21: -106510.2135704426
- 22: -106408.50213983913
- 23: -106315.50619886356
- 24: -106241.4857794737
- 25: -106189.93686774294
- 26: -106159.59422852867
- 27: -106146.44130555101
- 28: -106145.39571802218
- 29: -106151.51702114126
- 30: -106160.72476936835
- 31: -106170.10155633118
- 32: -106177.89397545425
- 33: -106183.32881238527
- 34: -106186.34564260405
- 35: -106187.32104383846
- 36: -106186.83172366294
- 37: -106185.47920003036
- 38: -106183.77996581457
- 39: -106182.11302775407
- 40: -106180.7106763419
- 41: -106179.67694165985
- 42: -106179.01983461935
- 43: -106178.68671297145
- 44: -106178.59578657302
- 45: -106178.66015411823
- 46: -106178.80338308998
- 47: -106178.96740178243
- 48: -106179.11441796296
- 49: -106179.22478740268
- 50: -106179.29314450669
-Outer Bound:
- Trivial: -115405.5555875
- 0: -112378.39515445061
- 1: -119146.91382574072
- 2: -122839.93727591724
- 3: -115850.22826244924
- 4: -114662.42776263466
- 5: -114508.93639083138
- 6: -114392.62247593619
- 7: -116760.9509904072
- 8: -115713.77041067116
- 9: -114886.97738071374
- 10: -114142.67447384528
- 11: -112524.04307981003
- 12: -111354.3497144162
- 13: -110712.38848747565
- 14: -110412.32327028361
- 15: -110290.35571684633
- 16: -110300.16690424705
- 17: -110407.57822750648
- 18: -110633.35182421902
- 19: -110837.3427897708
- 20: -110971.63265976129
- 21: -111036.84650353348
- 22: -111046.0536897756
- 23: -111045.3416750303
- 24: -111047.71221049232
- 25: -111034.96727684294
- 26: -111015.07858857064
- 27: -110994.05889797331
- 28: -110975.75307857461
- 29: -110962.06142794262
- 30: -110953.39371893949
- 31: -110949.18745381357
- 32: -110948.37977259398
- 33: -110949.77487271011
- 34: -110952.28891828351
- 35: -110955.0810778155
- 36: -110957.59413436076
- 37: -110959.53347067803
- 38: -110960.8119186807
- 39: -110961.48272107053
- 40: -110961.67606890696
- 41: -110961.54805077227
- 42: -110961.24539235764
- 43: -110960.88548544448
- 44: -110960.54896709265
- 45: -110960.2811111451
- 46: -110960.09837276943
- 47: -110959.99701877544
- 48: -110959.96163418583
- 49: -110959.97245158383
- 50: -110960.00937925163
diff --git a/pyomo/pysp/tests/examples/baselines/TestPHFarmer.test9.ph_history.json.baseline.gz b/pyomo/pysp/tests/examples/baselines/TestPHFarmer.test9.ph_history.json.baseline.gz
deleted file mode 100644
index fbcad8ec646..00000000000
Binary files a/pyomo/pysp/tests/examples/baselines/TestPHFarmer.test9.ph_history.json.baseline.gz and /dev/null differ
diff --git a/pyomo/pysp/tests/examples/baselines/TestPHFarmer.test9.ph_solution.json.baseline.gz b/pyomo/pysp/tests/examples/baselines/TestPHFarmer.test9.ph_solution.json.baseline.gz
deleted file mode 100644
index 220d2db09c1..00000000000
Binary files a/pyomo/pysp/tests/examples/baselines/TestPHFarmer.test9.ph_solution.json.baseline.gz and /dev/null differ
diff --git a/pyomo/pysp/tests/examples/baselines/TestPHFarmer.test9.phbestbound.txt.baseline b/pyomo/pysp/tests/examples/baselines/TestPHFarmer.test9.phbestbound.txt.baseline
deleted file mode 100644
index 415a9bc58cd..00000000000
--- a/pyomo/pysp/tests/examples/baselines/TestPHFarmer.test9.phbestbound.txt.baseline
+++ /dev/null
@@ -1,2 +0,0 @@
-Incumbent: -107905.90888195153
-Dual: -109440.78054174306
diff --git a/pyomo/pysp/tests/examples/baselines/TestPHFarmer.test9.phbound.txt.baseline b/pyomo/pysp/tests/examples/baselines/TestPHFarmer.test9.phbound.txt.baseline
deleted file mode 100644
index 1e232e0955b..00000000000
--- a/pyomo/pysp/tests/examples/baselines/TestPHFarmer.test9.phbound.txt.baseline
+++ /dev/null
@@ -1,19 +0,0 @@
-Inner Bound:
- 0: -103716.66680394445
- 1: -107578.75934248784
- 2: -107726.3642673346
- 3: -107731.95166269652
- 4: -107714.63925977261
- 5: -107718.80397395398
- 6: -107905.90885381353
- 7: -107905.90888195153
-Outer Bound:
- Trivial: -115405.5555875001
- 0: -112378.39512375317
- 1: -114092.20090015297
- 2: -111905.77474431759
- 3: -110093.78835351864
- 4: -109499.51614511295
- 5: -109440.78054174306
- 6: -112587.00169935689
- 7: -112587.00170103385
diff --git a/pyomo/pysp/tests/examples/baselines/TestPHFarmerPHPyro.test1.baseline b/pyomo/pysp/tests/examples/baselines/TestPHFarmerPHPyro.test1.baseline
deleted file mode 100644
index 9ddf3eee46e..00000000000
--- a/pyomo/pysp/tests/examples/baselines/TestPHFarmerPHPyro.test1.baseline
+++ /dev/null
@@ -1,419 +0,0 @@
-*** Pyro Name Server ***
-Name server listening on: ('0.0.0.0', 9090)
-Broadcast server listening on: ('0.0.0.0', 9090)
-URI is: PYRO://10.0.0.15:9090/0a00000f12d320a08b8c30ce1da11ba340
-URI written to: /Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/pyomo/pysp/tests/examples/Pyro_NS_URI
-Name Server started.
-User-defined PH extension module=pyomo.pysp.plugins.phhistoryextension already imported - skipping
-Dispatcher is ready.
-Attempting to find Pyro dispatcher object...
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI:PYRO://10.0.0.15:7766/0a00000f12d420a08b8d52191e87ae7f57
-This is worker Worker_4822@Ozymandias.local
-Listening for work from dispatcher...
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI:PYRO://10.0.0.15:7766/0a00000f12d420a08b8d52191e87ae7f57
-This is worker Worker_4823@Ozymandias.local
-Listening for work from dispatcher...
-Dispatcher Object URI:PYRO://10.0.0.15:7766/0a00000f12d420a08b8d52191e87ae7f57
-This is worker Worker_4821@Ozymandias.local
-Listening for work from dispatcher...
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI: PYRO://10.0.0.15:7766/0a00000f12d420a08b8d52191e87ae7f57
-This is client 4824@Ozymandias.local
-Initializing PH
-
-User-defined PH solution writer module=pyomo.pysp.plugins.jsonsolutionwriter already imported - skipping
-Starting PH
-
-Initiating PH iteration=0
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.2540 First stage cost avg= 113494.4444 Max-Min=10416.67
-Cumulative run-time=0.05 seconds
-
-Initiating PH iteration=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.1259 First stage cost avg= 113107.2221 Max-Min= 6943.89
-Cumulative run-time=0.13 seconds
-
-Initiating PH iteration=2
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0816 First stage cost avg= 112954.6296 Max-Min= 2234.82
-Cumulative run-time=0.19 seconds
-
-Initiating PH iteration=3
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0796 First stage cost avg= 112963.0248 Max-Min= 2375.31
-Cumulative run-time=0.26 seconds
-
-Initiating PH iteration=4
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0776 First stage cost avg= 112915.6071 Max-Min= 3047.08
-Cumulative run-time=0.32 seconds
-
-Initiating PH iteration=5
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0794 First stage cost avg= 112825.3926 Max-Min= 3339.81
-Cumulative run-time=0.39 seconds
-
-Initiating PH iteration=6
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0668 First stage cost avg= 112317.9502 Max-Min= 2019.60
-Cumulative run-time=0.45 seconds
-
-Initiating PH iteration=7
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0542 First stage cost avg= 111364.4660 Max-Min= 1181.85
-Cumulative run-time=0.51 seconds
-
-Initiating PH iteration=8
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0360 First stage cost avg= 110283.4074 Max-Min= 463.23
-Cumulative run-time=0.58 seconds
-
-Initiating PH iteration=9
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.01 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0243 First stage cost avg= 109399.2542 Max-Min= 363.90
-Cumulative run-time=0.64 seconds
-
-Initiating PH iteration=10
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0256 First stage cost avg= 108834.1930 Max-Min= 933.90
-Cumulative run-time=0.70 seconds
-
-Initiating PH iteration=11
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0248 First stage cost avg= 108575.3219 Max-Min= 918.57
-Cumulative run-time=0.76 seconds
-
-Initiating PH iteration=12
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0163 First stage cost avg= 108513.5347 Max-Min= 591.25
-Cumulative run-time=0.82 seconds
-
-Initiating PH iteration=13
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0081 First stage cost avg= 108528.2899 Max-Min= 175.95
-Cumulative run-time=0.88 seconds
-
-Initiating PH iteration=14
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0168 First stage cost avg= 108561.6577 Max-Min= 274.77
-Cumulative run-time=0.95 seconds
-
-Initiating PH iteration=15
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0163 First stage cost avg= 108604.0579 Max-Min= 295.14
-Cumulative run-time=1.01 seconds
-
-Initiating PH iteration=16
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0098 First stage cost avg= 108667.3583 Max-Min= 127.67
-Cumulative run-time=1.08 seconds
-
-Initiating PH iteration=17
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0032 First stage cost avg= 108758.4237 Max-Min= 59.69
-Cumulative run-time=1.14 seconds
-
-Initiating PH iteration=18
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0026 First stage cost avg= 108868.1277 Max-Min= 101.79
-Cumulative run-time=1.20 seconds
-
-Initiating PH iteration=19
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0039 First stage cost avg= 108975.3089 Max-Min= 73.41
-Cumulative run-time=1.26 seconds
-
-Initiating PH iteration=20
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0043 First stage cost avg= 109057.4144 Max-Min= 39.47
-Cumulative run-time=1.33 seconds
-
-Initiating PH iteration=21
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0044 First stage cost avg= 109099.7145 Max-Min= 87.57
-Cumulative run-time=1.39 seconds
-
-Initiating PH iteration=22
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0040 First stage cost avg= 109099.1239 Max-Min= 104.22
-Cumulative run-time=1.45 seconds
-
-Initiating PH iteration=23
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0032 First stage cost avg= 109062.8322 Max-Min= 88.54
-Cumulative run-time=1.51 seconds
-
-Initiating PH iteration=24
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0021 First stage cost avg= 109004.1156 Max-Min= 54.49
-Cumulative run-time=1.58 seconds
-
-Initiating PH iteration=25
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0008 First stage cost avg= 108937.8039 Max-Min= 16.89
-Cumulative run-time=1.64 seconds
-
-Initiating PH iteration=26
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0005 First stage cost avg= 108876.8822 Max-Min= 14.27
-Cumulative run-time=1.70 seconds
-
-Initiating PH iteration=27
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0015 First stage cost avg= 108830.6201 Max-Min= 34.81
-Cumulative run-time=1.79 seconds
-
-Initiating PH iteration=28
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0021 First stage cost avg= 108803.9655 Max-Min= 44.57
-Cumulative run-time=1.86 seconds
-
-Initiating PH iteration=29
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0023 First stage cost avg= 108797.7661 Max-Min= 45.24
-Cumulative run-time=1.92 seconds
-
-Initiating PH iteration=30
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0020 First stage cost avg= 108809.4793 Max-Min= 39.01
-Cumulative run-time=1.98 seconds
-
-Initiating PH iteration=31
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0015 First stage cost avg= 108834.1639 Max-Min= 28.07
-Cumulative run-time=2.05 seconds
-
-Initiating PH iteration=32
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0008 First stage cost avg= 108865.6237 Max-Min= 14.67
-Cumulative run-time=2.11 seconds
-
-Initiating PH iteration=33
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0001 First stage cost avg= 108897.5679 Max-Min= 1.06
-Cumulative run-time=2.17 seconds
-PH converged - convergence metric is below threshold=0.0001
-Number of discrete variables fixed before final plugin calls=0 (total=0)
-Number of continuous variables fixed before final plugin calls=0 (total=3)
-PH algorithm history written to file=ph_history.json
-PH complete
-Convergence history:
-Iteration Metric Value
- 0 0.2540
- 1 0.1259
- 2 0.0816
- 3 0.0796
- 4 0.0776
- 5 0.0794
- 6 0.0668
- 7 0.0542
- 8 0.0360
- 9 0.0243
- 10 0.0256
- 11 0.0248
- 12 0.0163
- 13 0.0081
- 14 0.0168
- 15 0.0163
- 16 0.0098
- 17 0.0032
- 18 0.0026
- 19 0.0039
- 20 0.0043
- 21 0.0044
- 22 0.0040
- 23 0.0032
- 24 0.0021
- 25 0.0008
- 26 0.0005
- 27 0.0015
- 28 0.0021
- 29 0.0023
- 30 0.0020
- 31 0.0015
- 32 0.0008
- 33 0.0001
-
-***********************************************************************************************
->>>THE EXPECTED SUM OF THE STAGE COST VARIABLES=-108388.378639<<<
->>>***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise<<<
-***********************************************************************************************
-Final number of discrete variables fixed=0 (total=0)
-Final number of continuous variables fixed=0 (total=3)
-Final variable values:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 79.9844 80.0000 79.9768 Max-Min: 0.0232 Avg: 79.9871
- Index: [SUGAR_BEETS] Values: 249.9848 249.9770 250.0000 Max-Min: 0.0230 Avg: 249.9873
- Index: [WHEAT] Values: 170.0308 170.0230 170.0232 Max-Min: 0.0078 Avg: 170.0256
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108897.0836 108897.4725 108898.1476 Max-Min: 1.0640 Avg: 108897.5679
-Final costs:
-Scenario Tree Costs
-***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise
-----------------------------------------------------
-Tree Nodes:
-
- Name=AboveAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AboveAverageScenario
- Expected cost of (sub)tree rooted at node=-275899.3041
-
- Name=AverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AverageScenario
- Expected cost of (sub)tree rooted at node=-218243.2209
-
- Name=BelowAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-157713.8615
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- AboveAverageNode
- AverageNode
- BelowAverageNode
- Scenarios:
- AboveAverageScenario
- AverageScenario
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-108388.3786
-
-----------------------------------------------------
-Scenarios:
-
- Name=AboveAverageScenario
- Probability=0.3333
- Leaf Node=AboveAverageNode
- Tree node sequence:
- RootNode
- AboveAverageNode
- Stage= FirstStage Cost=108898.1476
- Stage= SecondStage Cost=-275899.3041
- Total scenario cost=-167001.1565
-
- Name=AverageScenario
- Probability=0.3333
- Leaf Node=AverageNode
- Tree node sequence:
- RootNode
- AverageNode
- Stage= FirstStage Cost=108897.4725
- Stage= SecondStage Cost=-218243.2209
- Total scenario cost=-109345.7484
-
- Name=BelowAverageScenario
- Probability=0.3333
- Leaf Node=BelowAverageNode
- Tree node sequence:
- RootNode
- BelowAverageNode
- Stage= FirstStage Cost=108897.0836
- Stage= SecondStage Cost=-157713.8615
- Total scenario cost=-48816.7780
-
-----------------------------------------------------
-
-Total PH execution time=2.18 seconds
-
-Scenario tree solution written to file=ph_solution.json
-Shutting down Pyro solver components
-Dispatcher received request to shut down - initiating...
-
-Total execution time=5.52 seconds
-Name Server gracefully stopped.
-Lost connection to dispatch server - shutting down...
-Lost connection to dispatch server - shutting down...
-Lost connection to dispatch server - shutting down...
diff --git a/pyomo/pysp/tests/examples/baselines/TestPHFarmerPHPyro.test10.baseline b/pyomo/pysp/tests/examples/baselines/TestPHFarmerPHPyro.test10.baseline
deleted file mode 100644
index 7d0088c26d3..00000000000
--- a/pyomo/pysp/tests/examples/baselines/TestPHFarmerPHPyro.test10.baseline
+++ /dev/null
@@ -1,282 +0,0 @@
-*** Pyro Name Server ***
-Name server listening on: ('0.0.0.0', 9090)
-Broadcast server listening on: ('0.0.0.0', 9090)
-URI is: PYRO://10.0.0.11:9090/0a00000bff1a20a833d2d7a287c85acbca
-URI written to: /Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/pyomo/pysp/tests/examples/Pyro_NS_URI
-Name Server started.
-User-defined PH extension module=pyomo.pysp.plugins.phhistoryextension already imported - skipping
-User-defined PH extension module=pyomo.pysp.plugins.convexhullboundextension already imported - skipping
-Dispatcher is ready.
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI:PYRO://10.0.0.11:7766/0a00000bff1b20a833d3f7fbc769a825db
-This is worker Worker_65309@Ozymandias.local
-Listening for work from dispatcher...
-Attempting to find Pyro dispatcher object...
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI:PYRO://10.0.0.11:7766/0a00000bff1b20a833d3f7fbc769a825db
-Dispatcher Object URI: PYRO://10.0.0.11:7766/0a00000bff1b20a833d3f7fbc769a825db
-This is client 65311@Ozymandias.local
-This is worker Worker_65308@Ozymandias.local
-Listening for work from dispatcher...
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI:PYRO://10.0.0.11:7766/0a00000bff1b20a833d3f7fbc769a825db
-This is worker Worker_65310@Ozymandias.local
-Listening for work from dispatcher...
-Initializing PH
-
-convexhullboundextension using default update interval=1
-WARNING: No construction rule or expression specified for constraint 'W_Balance'
-WARNING: No construction rule or expression specified for constraint 'V_Bound'
-WW PH Extension: Loading user-specified configuration from file=/Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/examples/pysp/farmer/config/wwph.cfg
-WW PH Extension: Loading variable suffixes from file=/Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/examples/pysp/farmer/config/wwph.suffixes
-User-defined PH solution writer module=pyomo.pysp.plugins.jsonsolutionwriter already imported - skipping
-Starting PH
-
-Initiating PH iteration=0
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-115405.5556
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.2540 First stage cost avg= 113494.4444 Max-Min=10416.67
-Cumulative run-time=0.08 seconds
-
-Initiating PH iteration=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-112378.3952
-WW PH Extension: Setting mipgap to 0.1000000, as specified in the configuration file
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.1259 First stage cost avg= 113107.2221 Max-Min= 6943.89
-Cumulative run-time=0.28 seconds
-
-Initiating PH iteration=2
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-WARNING: "[base]/pyomo.pysp/pyomo/pysp/plugins/phboundextension.py", 75, _compute_bound
- A nonzero mipgap was detected when using the PH bound plugin. The bound computation may as a result be conservative.
-Computed objective lower bound=-119146.9138
-WW PH Extension: Setting mipgap to 0.0500717, based on current value of the convergence metric
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0816 First stage cost avg= 112954.6296 Max-Min= 2234.82
-Cumulative run-time=0.42 seconds
-
-Initiating PH iteration=3
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-WARNING: "[base]/pyomo.pysp/pyomo/pysp/plugins/phboundextension.py", 75, _compute_bound
- A nonzero mipgap was detected when using the PH bound plugin. The bound computation may as a result be conservative.
-Computed objective lower bound=-122839.9373
-WW PH Extension: Setting mipgap to 0.0327607, based on current value of the convergence metric
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0796 First stage cost avg= 112963.0248 Max-Min= 2375.31
-Cumulative run-time=0.59 seconds
-
-Initiating PH iteration=4
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-WARNING: "[base]/pyomo.pysp/pyomo/pysp/plugins/phboundextension.py", 75, _compute_bound
- A nonzero mipgap was detected when using the PH bound plugin. The bound computation may as a result be conservative.
-Computed objective lower bound=-115850.2283
-WW PH Extension: Setting mipgap to 0.0319973, based on current value of the convergence metric
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Slamming criteria are satisifed - accelerating convergence
-Slamming variable=DevotedAcreage[CORN] at tree node=RootNode to value=96.8871743104; value=node average (anywhere)
-Fixing variable=DevotedAcreage[CORN] at tree node=RootNode to value=96.8871743104; converged for 0 iterations
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0776 First stage cost avg= 112915.6071 Max-Min= 3047.08
-Cumulative run-time=0.74 seconds
-
-Initiating PH iteration=5
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-WARNING: "[base]/pyomo.pysp/pyomo/pysp/plugins/phboundextension.py", 75, _compute_bound
- A nonzero mipgap was detected when using the PH bound plugin. The bound computation may as a result be conservative.
-Computed objective lower bound=-114662.4278
-WW PH Extension: Setting mipgap to 0.0312342, based on current value of the convergence metric
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=1 (total=3)
-Convergence metric= 0.0609 First stage cost avg= 112895.6887 Max-Min= 5246.95
-Cumulative run-time=0.93 seconds
-
-Initiating PH iteration=6
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-WARNING: "[base]/pyomo.pysp/pyomo/pysp/plugins/phboundextension.py", 75, _compute_bound
- A nonzero mipgap was detected when using the PH bound plugin. The bound computation may as a result be conservative.
-Computed objective lower bound=-114508.9364
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-WW PH Extension: Setting mipgap to 0.0247045, based on current value of the convergence metric
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Slamming criteria are satisifed - accelerating convergence
-Slamming variable=DevotedAcreage[WHEAT] at tree node=RootNode to value=140.569962554; value=node average (anywhere)
-Fixing variable=DevotedAcreage[WHEAT] at tree node=RootNode to value=140.569962554; converged for 0 iterations
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=1 (total=3)
-Convergence metric= 0.0514 First stage cost avg= 111630.6889 Max-Min= 3912.48
-Cumulative run-time=1.09 seconds
-
-Initiating PH iteration=7
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-WARNING: "[base]/pyomo.pysp/pyomo/pysp/plugins/phboundextension.py", 75, _compute_bound
- A nonzero mipgap was detected when using the PH bound plugin. The bound computation may as a result be conservative.
-Computed objective lower bound=-115786.7766
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-WW PH Extension: Setting mipgap to 0.0210062, based on current value of the convergence metric
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=2 (total=3)
-Convergence metric= 0.0000 First stage cost avg= 111630.6889 Max-Min= 0.00
-Cumulative run-time=1.26 seconds
-PH converged - convergence metric is below threshold=0.0001
-Number of discrete variables fixed before final plugin calls=0 (total=0)
-Number of continuous variables fixed before final plugin calls=2 (total=3)
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-WARNING: "[base]/pyomo.pysp/pyomo/pysp/plugins/phboundextension.py", 75, _compute_bound
- A nonzero mipgap was detected when using the PH bound plugin. The bound computation may as a result be conservative.
-Computed objective lower bound=-114931.2396
-
- Iteration Bound
- Trivial -115405.555588
- 0 -112378.395154
- 1 -119146.913826
- 2 -122839.937276
- 3 -115850.228262
- 4 -114662.427763
- 5 -114508.936391
- 6 -115786.776605
- 7 -114931.239605
-
-Lower bound history written to file=phbound.txt
-
-Best Objective Bound: -112378.395154
-
-Best Lower Bound written to file=phbestbound.txt
-WW PH extension: Fixing all discrete variables that are converged at termination
-Total number of variables fixed at PH termination due to convergence=0
-PH algorithm history written to file=ph_history.json
-PH complete
-Convergence history:
-Iteration Metric Value
- 0 0.2540
- 1 0.1259
- 2 0.0816
- 3 0.0796
- 4 0.0776
- 5 0.0609
- 6 0.0514
- 7 0.0000
-
-***********************************************************************************************
->>>THE EXPECTED SUM OF THE STAGE COST VARIABLES=-107983.303737<<<
->>>***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise<<<
-***********************************************************************************************
-Final number of discrete variables fixed=0 (total=0)
-Final number of continuous variables fixed=2 (total=3)
-Final variable values:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 96.8872 96.8872 96.8872 Max-Min: 0.0000 Avg: 96.8872
- Index: [SUGAR_BEETS] Values: 262.5429 262.5429 262.5429 Max-Min: 0.0000 Avg: 262.5429
- Index: [WHEAT] Values: 140.5700 140.5700 140.5700 Max-Min: 0.0000 Avg: 140.5700
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 111630.6889 111630.6888 111630.6889 Max-Min: 0.0000 Avg: 111630.6889
-Final costs:
-Scenario Tree Costs
-***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise
-----------------------------------------------------
-Tree Nodes:
-
- Name=AboveAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AboveAverageScenario
- Expected cost of (sub)tree rooted at node=-273020.0421
-
- Name=AverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AverageScenario
- Expected cost of (sub)tree rooted at node=-222372.3235
-
- Name=BelowAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-163449.6122
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- AboveAverageNode
- AverageNode
- BelowAverageNode
- Scenarios:
- AboveAverageScenario
- AverageScenario
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-107983.3037
-
-----------------------------------------------------
-Scenarios:
-
- Name=AboveAverageScenario
- Probability=0.3333
- Leaf Node=AboveAverageNode
- Tree node sequence:
- RootNode
- AboveAverageNode
- Stage= FirstStage Cost=111630.6889
- Stage= SecondStage Cost=-273020.0421
- Total scenario cost=-161389.3532
-
- Name=AverageScenario
- Probability=0.3333
- Leaf Node=AverageNode
- Tree node sequence:
- RootNode
- AverageNode
- Stage= FirstStage Cost=111630.6888
- Stage= SecondStage Cost=-222372.3235
- Total scenario cost=-110741.6346
-
- Name=BelowAverageScenario
- Probability=0.3333
- Leaf Node=BelowAverageNode
- Tree node sequence:
- RootNode
- BelowAverageNode
- Stage= FirstStage Cost=111630.6889
- Stage= SecondStage Cost=-163449.6122
- Total scenario cost=-51818.9233
-
-----------------------------------------------------
-
-Total PH execution time=1.36 seconds
-
-Scenario tree solution written to file=ph_solution.json
-Shutting down Pyro solver components
-Dispatcher received request to shut down - initiating...
-
-Total execution time=4.67 seconds
-Lost connection to dispatch server - shutting down...
-Lost connection to dispatch server - shutting down...
-Lost connection to dispatch server - shutting down...
-Name Server gracefully stopped.
diff --git a/pyomo/pysp/tests/examples/baselines/TestPHFarmerPHPyro.test11.baseline b/pyomo/pysp/tests/examples/baselines/TestPHFarmerPHPyro.test11.baseline
deleted file mode 100644
index 92230bd22d6..00000000000
--- a/pyomo/pysp/tests/examples/baselines/TestPHFarmerPHPyro.test11.baseline
+++ /dev/null
@@ -1,278 +0,0 @@
-*** Pyro Name Server ***
-Name server listening on: ('0.0.0.0', 9090)
-Broadcast server listening on: ('0.0.0.0', 9090)
-URI is: PYRO://10.0.0.11:9090/0a00000bff7420a833ebcd2a5ce86c3841
-URI written to: /Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/pyomo/pysp/tests/examples/Pyro_NS_URI
-Name Server started.
-User-defined PH extension module=pyomo.pysp.plugins.phhistoryextension already imported - skipping
-User-defined PH extension module=pyomo.pysp.plugins.phboundextension already imported - skipping
-Dispatcher is ready.
-Attempting to find Pyro dispatcher object...
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI:PYRO://10.0.0.11:7766/0a00000bff7520a833ecefd6730b4a5588
-This is worker Worker_65400@Ozymandias.local
-Listening for work from dispatcher...
-Dispatcher Object URI:PYRO://10.0.0.11:7766/0a00000bff7520a833ecefd6730b4a5588
-This is worker Worker_65398@Ozymandias.local
-Listening for work from dispatcher...
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI:PYRO://10.0.0.11:7766/0a00000bff7520a833ecefd6730b4a5588
-This is worker Worker_65399@Ozymandias.local
-Listening for work from dispatcher...
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI: PYRO://10.0.0.11:7766/0a00000bff7520a833ecefd6730b4a5588
-This is client 65401@Ozymandias.local
-Initializing PH
-
-phboundextension using default update interval=1
-WW PH Extension: Loading user-specified configuration from file=/Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/examples/pysp/farmer/config/wwph.cfg
-WW PH Extension: Loading variable suffixes from file=/Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/examples/pysp/farmer/config/wwph.suffixes
-User-defined PH solution writer module=pyomo.pysp.plugins.jsonsolutionwriter already imported - skipping
-Starting PH
-
-Initiating PH iteration=0
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-115405.5556
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.2540 First stage cost avg= 113494.4444 Max-Min=10416.67
-Cumulative run-time=0.06 seconds
-
-Initiating PH iteration=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-112378.3951
-WW PH Extension: Setting mipgap to 0.1000000, as specified in the configuration file
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.1259 First stage cost avg= 113107.2221 Max-Min= 6943.89
-Cumulative run-time=0.25 seconds
-
-Initiating PH iteration=2
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-WARNING: "[base]/pyomo.pysp/pyomo/pysp/plugins/phboundextension.py", 75, _compute_bound
- A nonzero mipgap was detected when using the PH bound plugin. The bound computation may as a result be conservative.
-Computed objective lower bound=-114092.2009
-WW PH Extension: Setting mipgap to 0.0500717, based on current value of the convergence metric
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0816 First stage cost avg= 112954.6296 Max-Min= 2234.82
-Cumulative run-time=0.39 seconds
-
-Initiating PH iteration=3
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-WARNING: "[base]/pyomo.pysp/pyomo/pysp/plugins/phboundextension.py", 75, _compute_bound
- A nonzero mipgap was detected when using the PH bound plugin. The bound computation may as a result be conservative.
-Computed objective lower bound=-111905.7747
-WW PH Extension: Setting mipgap to 0.0327607, based on current value of the convergence metric
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0796 First stage cost avg= 112963.0248 Max-Min= 2375.31
-Cumulative run-time=0.54 seconds
-
-Initiating PH iteration=4
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-WARNING: "[base]/pyomo.pysp/pyomo/pysp/plugins/phboundextension.py", 75, _compute_bound
- A nonzero mipgap was detected when using the PH bound plugin. The bound computation may as a result be conservative.
-Computed objective lower bound=-110093.7884
-WW PH Extension: Setting mipgap to 0.0319973, based on current value of the convergence metric
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Slamming criteria are satisifed - accelerating convergence
-Slamming variable=DevotedAcreage[CORN] at tree node=RootNode to value=96.8871743104; value=node average (anywhere)
-Fixing variable=DevotedAcreage[CORN] at tree node=RootNode to value=96.8871743104; converged for 0 iterations
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0776 First stage cost avg= 112915.6071 Max-Min= 3047.08
-Cumulative run-time=0.68 seconds
-
-Initiating PH iteration=5
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-WARNING: "[base]/pyomo.pysp/pyomo/pysp/plugins/phboundextension.py", 75, _compute_bound
- A nonzero mipgap was detected when using the PH bound plugin. The bound computation may as a result be conservative.
-Computed objective lower bound=-109499.5161
-WW PH Extension: Setting mipgap to 0.0312342, based on current value of the convergence metric
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=1 (total=3)
-Convergence metric= 0.0609 First stage cost avg= 112895.6887 Max-Min= 5246.95
-Cumulative run-time=0.84 seconds
-
-Initiating PH iteration=6
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-WARNING: "[base]/pyomo.pysp/pyomo/pysp/plugins/phboundextension.py", 75, _compute_bound
- A nonzero mipgap was detected when using the PH bound plugin. The bound computation may as a result be conservative.
-Computed objective lower bound=-109440.7805
-WW PH Extension: Setting mipgap to 0.0247045, based on current value of the convergence metric
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Slamming criteria are satisifed - accelerating convergence
-Slamming variable=DevotedAcreage[WHEAT] at tree node=RootNode to value=137.204959966; value=node average (anywhere)
-Fixing variable=DevotedAcreage[WHEAT] at tree node=RootNode to value=137.204959966; converged for 0 iterations
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=1 (total=3)
-Convergence metric= 0.0391 First stage cost avg= 112000.8391 Max-Min= 2624.80
-Cumulative run-time=1.01 seconds
-
-Initiating PH iteration=7
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-WARNING: "[base]/pyomo.pysp/pyomo/pysp/plugins/phboundextension.py", 75, _compute_bound
- A nonzero mipgap was detected when using the PH bound plugin. The bound computation may as a result be conservative.
-Computed objective lower bound=-112587.0017
-WW PH Extension: Setting mipgap to 0.0161915, based on current value of the convergence metric
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=2 (total=3)
-Convergence metric= 0.0000 First stage cost avg= 112000.8392 Max-Min= 0.00
-Cumulative run-time=1.19 seconds
-PH converged - convergence metric is below threshold=0.0001
-Number of discrete variables fixed before final plugin calls=0 (total=0)
-Number of continuous variables fixed before final plugin calls=2 (total=3)
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-WARNING: "[base]/pyomo.pysp/pyomo/pysp/plugins/phboundextension.py", 75, _compute_bound
- A nonzero mipgap was detected when using the PH bound plugin. The bound computation may as a result be conservative.
-Computed objective lower bound=-112587.0017
-
- Iteration Bound
- Trivial -115405.555588
- 0 -112378.395124
- 1 -114092.2009
- 2 -111905.774744
- 3 -110093.788354
- 4 -109499.516145
- 5 -109440.780542
- 6 -112587.001699
- 7 -112587.001701
-
-Lower bound history written to file=phbound.txt
-
-Best Objective Bound: -109440.780542
-
-Best Lower Bound written to file=phbestbound.txt
-WW PH extension: Fixing all discrete variables that are converged at termination
-Total number of variables fixed at PH termination due to convergence=0
-PH algorithm history written to file=ph_history.json
-PH complete
-Convergence history:
-Iteration Metric Value
- 0 0.2540
- 1 0.1259
- 2 0.0816
- 3 0.0796
- 4 0.0776
- 5 0.0609
- 6 0.0391
- 7 0.0000
-
-***********************************************************************************************
->>>THE EXPECTED SUM OF THE STAGE COST VARIABLES=-107905.908751<<<
->>>***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise<<<
-***********************************************************************************************
-Final number of discrete variables fixed=0 (total=0)
-Final number of continuous variables fixed=2 (total=3)
-Final variable values:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 96.8872 96.8872 96.8872 Max-Min: 0.0000 Avg: 96.8872
- Index: [SUGAR_BEETS] Values: 265.9079 265.9079 265.9079 Max-Min: 0.0000 Avg: 265.9079
- Index: [WHEAT] Values: 137.2050 137.2050 137.2050 Max-Min: 0.0000 Avg: 137.2050
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 112000.8392 112000.8392 112000.8391 Max-Min: 0.0000 Avg: 112000.8392
-Final costs:
-Scenario Tree Costs
-***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise
-----------------------------------------------------
-Tree Nodes:
-
- Name=AboveAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AboveAverageScenario
- Expected cost of (sub)tree rooted at node=-272111.4913
-
- Name=AverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AverageScenario
- Expected cost of (sub)tree rooted at node=-223364.9995
-
- Name=BelowAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-164243.7528
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- AboveAverageNode
- AverageNode
- BelowAverageNode
- Scenarios:
- AboveAverageScenario
- AverageScenario
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-107905.9088
-
-----------------------------------------------------
-Scenarios:
-
- Name=AboveAverageScenario
- Probability=0.3333
- Leaf Node=AboveAverageNode
- Tree node sequence:
- RootNode
- AboveAverageNode
- Stage= FirstStage Cost=112000.8391
- Stage= SecondStage Cost=-272111.4913
- Total scenario cost=-160110.6522
-
- Name=AverageScenario
- Probability=0.3333
- Leaf Node=AverageNode
- Tree node sequence:
- RootNode
- AverageNode
- Stage= FirstStage Cost=112000.8392
- Stage= SecondStage Cost=-223364.9995
- Total scenario cost=-111364.1604
-
- Name=BelowAverageScenario
- Probability=0.3333
- Leaf Node=BelowAverageNode
- Tree node sequence:
- RootNode
- BelowAverageNode
- Stage= FirstStage Cost=112000.8392
- Stage= SecondStage Cost=-164243.7528
- Total scenario cost=-52242.9136
-
-----------------------------------------------------
-
-Total PH execution time=1.28 seconds
-
-Scenario tree solution written to file=ph_solution.json
-Shutting down Pyro solver components
-Dispatcher received request to shut down - initiating...
-
-Total execution time=4.60 seconds
-Lost connection to dispatch server - shutting down...
-Lost connection to dispatch server - shutting down...
-Lost connection to dispatch server - shutting down...
-Name Server gracefully stopped.
diff --git a/pyomo/pysp/tests/examples/baselines/TestPHFarmerPHPyro.test12.baseline b/pyomo/pysp/tests/examples/baselines/TestPHFarmerPHPyro.test12.baseline
deleted file mode 100644
index 35fda849f5c..00000000000
--- a/pyomo/pysp/tests/examples/baselines/TestPHFarmerPHPyro.test12.baseline
+++ /dev/null
@@ -1,282 +0,0 @@
-*** Pyro Name Server ***
-Name server listening on: ('0.0.0.0', 9090)
-Broadcast server listening on: ('0.0.0.0', 9090)
-URI is: PYRO://10.0.0.11:9090/0a00000bffc420a83404b09ed509967ab9
-URI written to: /Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/pyomo/pysp/tests/examples/Pyro_NS_URI
-Name Server started.
-User-defined PH extension module=pyomo.pysp.plugins.phhistoryextension already imported - skipping
-User-defined PH extension module=pyomo.pysp.plugins.convexhullboundextension already imported - skipping
-Dispatcher is ready.
-Attempting to find Pyro dispatcher object...
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI:PYRO://10.0.0.11:7766/0a00000bffc520a83405af514dad2886df
-This is worker Worker_65479@Ozymandias.local
-Listening for work from dispatcher...
-Dispatcher Object URI:PYRO://10.0.0.11:7766/0a00000bffc520a83405af514dad2886df
-This is worker Worker_65480@Ozymandias.local
-Listening for work from dispatcher...
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI:PYRO://10.0.0.11:7766/0a00000bffc520a83405af514dad2886df
-This is worker Worker_65478@Ozymandias.local
-Listening for work from dispatcher...
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI: PYRO://10.0.0.11:7766/0a00000bffc520a83405af514dad2886df
-This is client 65481@Ozymandias.local
-Initializing PH
-
-convexhullboundextension using default update interval=1
-WARNING: No construction rule or expression specified for constraint 'W_Balance'
-WARNING: No construction rule or expression specified for constraint 'V_Bound'
-WW PH Extension: Loading user-specified configuration from file=/Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/examples/pysp/farmer/config/wwph.cfg
-WW PH Extension: Loading variable suffixes from file=/Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/examples/pysp/farmer/config/wwph.suffixes
-User-defined PH solution writer module=pyomo.pysp.plugins.jsonsolutionwriter already imported - skipping
-Starting PH
-
-Initiating PH iteration=0
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-115405.5556
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.2540 First stage cost avg= 113494.4444 Max-Min=10416.67
-Cumulative run-time=0.07 seconds
-
-Initiating PH iteration=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-112378.3952
-WW PH Extension: Setting mipgap to 0.1000000, as specified in the configuration file
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.1259 First stage cost avg= 113107.2221 Max-Min= 6943.89
-Cumulative run-time=0.25 seconds
-
-Initiating PH iteration=2
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-WARNING: "[base]/pyomo.pysp/pyomo/pysp/plugins/phboundextension.py", 75, _compute_bound
- A nonzero mipgap was detected when using the PH bound plugin. The bound computation may as a result be conservative.
-Computed objective lower bound=-119146.9138
-WW PH Extension: Setting mipgap to 0.0500717, based on current value of the convergence metric
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0816 First stage cost avg= 112954.6296 Max-Min= 2234.82
-Cumulative run-time=0.40 seconds
-
-Initiating PH iteration=3
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-WARNING: "[base]/pyomo.pysp/pyomo/pysp/plugins/phboundextension.py", 75, _compute_bound
- A nonzero mipgap was detected when using the PH bound plugin. The bound computation may as a result be conservative.
-Computed objective lower bound=-122839.9373
-WW PH Extension: Setting mipgap to 0.0327607, based on current value of the convergence metric
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0796 First stage cost avg= 112963.0248 Max-Min= 2375.31
-Cumulative run-time=0.55 seconds
-
-Initiating PH iteration=4
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-WARNING: "[base]/pyomo.pysp/pyomo/pysp/plugins/phboundextension.py", 75, _compute_bound
- A nonzero mipgap was detected when using the PH bound plugin. The bound computation may as a result be conservative.
-Computed objective lower bound=-115850.2283
-WW PH Extension: Setting mipgap to 0.0319973, based on current value of the convergence metric
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Slamming criteria are satisifed - accelerating convergence
-Slamming variable=DevotedAcreage[CORN] at tree node=RootNode to value=96.8871743104; value=node average (anywhere)
-Fixing variable=DevotedAcreage[CORN] at tree node=RootNode to value=96.8871743104; converged for 0 iterations
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0776 First stage cost avg= 112915.6071 Max-Min= 3047.08
-Cumulative run-time=0.70 seconds
-
-Initiating PH iteration=5
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-WARNING: "[base]/pyomo.pysp/pyomo/pysp/plugins/phboundextension.py", 75, _compute_bound
- A nonzero mipgap was detected when using the PH bound plugin. The bound computation may as a result be conservative.
-Computed objective lower bound=-114662.4278
-WW PH Extension: Setting mipgap to 0.0312342, based on current value of the convergence metric
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=1 (total=3)
-Convergence metric= 0.0609 First stage cost avg= 112895.6887 Max-Min= 5246.95
-Cumulative run-time=0.87 seconds
-
-Initiating PH iteration=6
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-WARNING: "[base]/pyomo.pysp/pyomo/pysp/plugins/phboundextension.py", 75, _compute_bound
- A nonzero mipgap was detected when using the PH bound plugin. The bound computation may as a result be conservative.
-Computed objective lower bound=-114508.9364
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-WW PH Extension: Setting mipgap to 0.0247045, based on current value of the convergence metric
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Slamming criteria are satisifed - accelerating convergence
-Slamming variable=DevotedAcreage[WHEAT] at tree node=RootNode to value=140.569962554; value=node average (anywhere)
-Fixing variable=DevotedAcreage[WHEAT] at tree node=RootNode to value=140.569962554; converged for 0 iterations
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=1 (total=3)
-Convergence metric= 0.0514 First stage cost avg= 111630.6889 Max-Min= 3912.48
-Cumulative run-time=1.03 seconds
-
-Initiating PH iteration=7
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-WARNING: "[base]/pyomo.pysp/pyomo/pysp/plugins/phboundextension.py", 75, _compute_bound
- A nonzero mipgap was detected when using the PH bound plugin. The bound computation may as a result be conservative.
-Computed objective lower bound=-115786.7766
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-WW PH Extension: Setting mipgap to 0.0210062, based on current value of the convergence metric
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=2 (total=3)
-Convergence metric= 0.0000 First stage cost avg= 111630.6889 Max-Min= 0.00
-Cumulative run-time=1.22 seconds
-PH converged - convergence metric is below threshold=0.0001
-Number of discrete variables fixed before final plugin calls=0 (total=0)
-Number of continuous variables fixed before final plugin calls=2 (total=3)
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-WARNING: "[base]/pyomo.pysp/pyomo/pysp/plugins/phboundextension.py", 75, _compute_bound
- A nonzero mipgap was detected when using the PH bound plugin. The bound computation may as a result be conservative.
-Computed objective lower bound=-114931.2396
-
- Iteration Bound
- Trivial -115405.555588
- 0 -112378.395154
- 1 -119146.913826
- 2 -122839.937276
- 3 -115850.228262
- 4 -114662.427763
- 5 -114508.936391
- 6 -115786.776605
- 7 -114931.239605
-
-Lower bound history written to file=phbound.txt
-
-Best Objective Bound: -112378.395154
-
-Best Lower Bound written to file=phbestbound.txt
-WW PH extension: Fixing all discrete variables that are converged at termination
-Total number of variables fixed at PH termination due to convergence=0
-PH algorithm history written to file=ph_history.json
-PH complete
-Convergence history:
-Iteration Metric Value
- 0 0.2540
- 1 0.1259
- 2 0.0816
- 3 0.0796
- 4 0.0776
- 5 0.0609
- 6 0.0514
- 7 0.0000
-
-***********************************************************************************************
->>>THE EXPECTED SUM OF THE STAGE COST VARIABLES=-107983.303737<<<
->>>***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise<<<
-***********************************************************************************************
-Final number of discrete variables fixed=0 (total=0)
-Final number of continuous variables fixed=2 (total=3)
-Final variable values:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 96.8872 96.8872 96.8872 Max-Min: 0.0000 Avg: 96.8872
- Index: [SUGAR_BEETS] Values: 262.5429 262.5429 262.5429 Max-Min: 0.0000 Avg: 262.5429
- Index: [WHEAT] Values: 140.5700 140.5700 140.5700 Max-Min: 0.0000 Avg: 140.5700
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 111630.6889 111630.6888 111630.6889 Max-Min: 0.0000 Avg: 111630.6889
-Final costs:
-Scenario Tree Costs
-***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise
-----------------------------------------------------
-Tree Nodes:
-
- Name=AboveAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AboveAverageScenario
- Expected cost of (sub)tree rooted at node=-273020.0421
-
- Name=AverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AverageScenario
- Expected cost of (sub)tree rooted at node=-222372.3235
-
- Name=BelowAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-163449.6122
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- AboveAverageNode
- AverageNode
- BelowAverageNode
- Scenarios:
- AboveAverageScenario
- AverageScenario
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-107983.3037
-
-----------------------------------------------------
-Scenarios:
-
- Name=AboveAverageScenario
- Probability=0.3333
- Leaf Node=AboveAverageNode
- Tree node sequence:
- RootNode
- AboveAverageNode
- Stage= FirstStage Cost=111630.6889
- Stage= SecondStage Cost=-273020.0421
- Total scenario cost=-161389.3532
-
- Name=AverageScenario
- Probability=0.3333
- Leaf Node=AverageNode
- Tree node sequence:
- RootNode
- AverageNode
- Stage= FirstStage Cost=111630.6888
- Stage= SecondStage Cost=-222372.3235
- Total scenario cost=-110741.6346
-
- Name=BelowAverageScenario
- Probability=0.3333
- Leaf Node=BelowAverageNode
- Tree node sequence:
- RootNode
- BelowAverageNode
- Stage= FirstStage Cost=111630.6889
- Stage= SecondStage Cost=-163449.6122
- Total scenario cost=-51818.9233
-
-----------------------------------------------------
-
-Total PH execution time=1.31 seconds
-
-Scenario tree solution written to file=ph_solution.json
-Shutting down Pyro solver components
-Dispatcher received request to shut down - initiating...
-
-Total execution time=4.64 seconds
-Lost connection to dispatch server - shutting down...
-Lost connection to dispatch server - shutting down...
-Lost connection to dispatch server - shutting down...
-Name Server gracefully stopped.
diff --git a/pyomo/pysp/tests/examples/baselines/TestPHFarmerPHPyro.test13.baseline b/pyomo/pysp/tests/examples/baselines/TestPHFarmerPHPyro.test13.baseline
deleted file mode 100644
index 346eef726bb..00000000000
--- a/pyomo/pysp/tests/examples/baselines/TestPHFarmerPHPyro.test13.baseline
+++ /dev/null
@@ -1,228 +0,0 @@
-*** Pyro Name Server ***
-Name server listening on: ('0.0.0.0', 9090)
-Broadcast server listening on: ('0.0.0.0', 9090)
-URI is: PYRO://10.0.0.15:9090/0a00000f146720a08bda4ca328449a480a
-URI written to: /Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/pyomo/pysp/tests/examples/Pyro_NS_URI
-Name Server started.
-User-defined PH extension module=pyomo.pysp.plugins.phhistoryextension already imported - skipping
-Dispatcher is ready.
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI:PYRO://10.0.0.15:7766/0a00000f146820a08bdb68074653db792e
-This is worker Worker_5227@Ozymandias.local
-Listening for work from dispatcher...
-Attempting to find Pyro dispatcher object...
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI:PYRO://10.0.0.15:7766/0a00000f146820a08bdb68074653db792e
-This is worker Worker_5225@Ozymandias.local
-Listening for work from dispatcher...
-Dispatcher Object URI:PYRO://10.0.0.15:7766/0a00000f146820a08bdb68074653db792e
-This is worker Worker_5226@Ozymandias.local
-Listening for work from dispatcher...
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI: PYRO://10.0.0.15:7766/0a00000f146820a08bdb68074653db792e
-This is client 5228@Ozymandias.local
-Initializing PH
-
-WW PH Extension: Loading user-specified configuration from file=/Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/examples/pysp/farmer/config/wwph.cfg
-WW PH Extension: Loading variable suffixes from file=/Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/examples/pysp/farmer/config/wwph.suffixes
-User-defined PH solution writer module=pyomo.pysp.plugins.jsonsolutionwriter already imported - skipping
-Starting PH
-
-Initiating PH iteration=0
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.2540 First stage cost avg= 113494.4444 Max-Min=10416.67
-Cumulative run-time=0.06 seconds
-
-Initiating PH iteration=1
-WW PH Extension: Setting mipgap to 0.1000000, as specified in the configuration file
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.1259 First stage cost avg= 113107.2221 Max-Min= 6943.89
-Cumulative run-time=0.15 seconds
-
-Initiating PH iteration=2
-WW PH Extension: Setting mipgap to 0.0500717, based on current value of the convergence metric
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0816 First stage cost avg= 112954.6296 Max-Min= 2234.82
-Cumulative run-time=0.21 seconds
-
-Initiating PH iteration=3
-WW PH Extension: Setting mipgap to 0.0327607, based on current value of the convergence metric
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0796 First stage cost avg= 112963.0248 Max-Min= 2375.31
-Cumulative run-time=0.28 seconds
-
-Initiating PH iteration=4
-WW PH Extension: Setting mipgap to 0.0319973, based on current value of the convergence metric
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Slamming criteria are satisifed - accelerating convergence
-Slamming variable=DevotedAcreage[CORN] at tree node=RootNode to value=96.8871743104; value=node average (anywhere)
-Fixing variable=DevotedAcreage[CORN] at tree node=RootNode to value=96.8871743104; converged for 0 iterations
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0776 First stage cost avg= 112915.6071 Max-Min= 3047.08
-Cumulative run-time=0.34 seconds
-
-Initiating PH iteration=5
-WW PH Extension: Setting mipgap to 0.0312342, based on current value of the convergence metric
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=1 (total=3)
-Convergence metric= 0.0609 First stage cost avg= 112895.6887 Max-Min= 5246.95
-Cumulative run-time=0.42 seconds
-
-Initiating PH iteration=6
-WW PH Extension: Setting mipgap to 0.0247045, based on current value of the convergence metric
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Slamming criteria are satisifed - accelerating convergence
-Slamming variable=DevotedAcreage[WHEAT] at tree node=RootNode to value=137.204959966; value=node average (anywhere)
-Fixing variable=DevotedAcreage[WHEAT] at tree node=RootNode to value=137.204959966; converged for 0 iterations
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=1 (total=3)
-Convergence metric= 0.0391 First stage cost avg= 112000.8391 Max-Min= 2624.80
-Cumulative run-time=0.47 seconds
-
-Initiating PH iteration=7
-WW PH Extension: Setting mipgap to 0.0161915, based on current value of the convergence metric
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=2 (total=3)
-Convergence metric= 0.0000 First stage cost avg= 112000.8392 Max-Min= 0.00
-Cumulative run-time=0.54 seconds
-PH converged - convergence metric is below threshold=0.0001
-Number of discrete variables fixed before final plugin calls=0 (total=0)
-Number of continuous variables fixed before final plugin calls=2 (total=3)
-WW PH extension: Fixing all discrete variables that are converged at termination
-Total number of variables fixed at PH termination due to convergence=0
-PH algorithm history written to file=ph_history.json
-PH complete
-Convergence history:
-Iteration Metric Value
- 0 0.2540
- 1 0.1259
- 2 0.0816
- 3 0.0796
- 4 0.0776
- 5 0.0609
- 6 0.0391
- 7 0.0000
-
-***********************************************************************************************
->>>THE EXPECTED SUM OF THE STAGE COST VARIABLES=-107905.908751<<<
->>>***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise<<<
-***********************************************************************************************
-Final number of discrete variables fixed=0 (total=0)
-Final number of continuous variables fixed=2 (total=3)
-Final variable values:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 96.8872 96.8872 96.8872 Max-Min: 0.0000 Avg: 96.8872
- Index: [SUGAR_BEETS] Values: 265.9079 265.9079 265.9079 Max-Min: 0.0000 Avg: 265.9079
- Index: [WHEAT] Values: 137.2050 137.2050 137.2050 Max-Min: 0.0000 Avg: 137.2050
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 112000.8392 112000.8392 112000.8391 Max-Min: 0.0000 Avg: 112000.8392
-Final costs:
-Scenario Tree Costs
-***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise
-----------------------------------------------------
-Tree Nodes:
-
- Name=AboveAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AboveAverageScenario
- Expected cost of (sub)tree rooted at node=-272111.4913
-
- Name=AverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AverageScenario
- Expected cost of (sub)tree rooted at node=-223364.9995
-
- Name=BelowAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-164243.7528
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- AboveAverageNode
- AverageNode
- BelowAverageNode
- Scenarios:
- AboveAverageScenario
- AverageScenario
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-107905.9088
-
-----------------------------------------------------
-Scenarios:
-
- Name=AboveAverageScenario
- Probability=0.3333
- Leaf Node=AboveAverageNode
- Tree node sequence:
- RootNode
- AboveAverageNode
- Stage= FirstStage Cost=112000.8391
- Stage= SecondStage Cost=-272111.4913
- Total scenario cost=-160110.6522
-
- Name=AverageScenario
- Probability=0.3333
- Leaf Node=AverageNode
- Tree node sequence:
- RootNode
- AverageNode
- Stage= FirstStage Cost=112000.8392
- Stage= SecondStage Cost=-223364.9995
- Total scenario cost=-111364.1604
-
- Name=BelowAverageScenario
- Probability=0.3333
- Leaf Node=BelowAverageNode
- Tree node sequence:
- RootNode
- BelowAverageNode
- Stage= FirstStage Cost=112000.8392
- Stage= SecondStage Cost=-164243.7528
- Total scenario cost=-52242.9136
-
-----------------------------------------------------
-
-Total PH execution time=0.56 seconds
-
-Scenario tree solution written to file=ph_solution.json
-Shutting down Pyro solver components
-Dispatcher received request to shut down - initiating...
-
-Total execution time=3.89 seconds
-Name Server gracefully stopped.
-Lost connection to dispatch server - shutting down...
-Lost connection to dispatch server - shutting down...
-Lost connection to dispatch server - shutting down...
diff --git a/pyomo/pysp/tests/examples/baselines/TestPHFarmerPHPyro.test14.baseline b/pyomo/pysp/tests/examples/baselines/TestPHFarmerPHPyro.test14.baseline
deleted file mode 100644
index c04fa3c4a4a..00000000000
--- a/pyomo/pysp/tests/examples/baselines/TestPHFarmerPHPyro.test14.baseline
+++ /dev/null
@@ -1,245 +0,0 @@
-*** Pyro Name Server ***
-Name server listening on: ('0.0.0.0', 9090)
-Broadcast server listening on: ('0.0.0.0', 9090)
-URI is: PYRO://10.0.0.15:9090/0a00000f149d20a08bdd88f78162bad6bc
-URI written to: /Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/pyomo/pysp/tests/examples/Pyro_NS_URI
-Name Server started.
-User-defined PH extension module=pyomo.pysp.plugins.phhistoryextension already imported - skipping
-Trying to import module=/Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/examples/pysp/farmer/config/aggregategetter.py
-Module successfully loaded
-Trying to import module=/Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/examples/pysp/farmer/config/rhosetter.py
-Module successfully loaded
-Trying to import module=/Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/examples/pysp/farmer/config/boundsetter.py
-Module successfully loaded
-Dispatcher is ready.
-Attempting to find Pyro dispatcher object...
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI:PYRO://10.0.0.15:7766/0a00000f149e20a08bdea72126091ee31c
-Attempting to find Pyro dispatcher object...
-This is worker Worker_5280@Ozymandias.local
-Listening for work from dispatcher...
-Dispatcher Object URI:PYRO://10.0.0.15:7766/0a00000f149e20a08bdea72126091ee31c
-This is worker Worker_5279@Ozymandias.local
-Listening for work from dispatcher...
-Dispatcher Object URI:PYRO://10.0.0.15:7766/0a00000f149e20a08bdea72126091ee31c
-This is worker Worker_5281@Ozymandias.local
-Listening for work from dispatcher...
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI: PYRO://10.0.0.15:7766/0a00000f149e20a08bdea72126091ee31c
-This is client 5282@Ozymandias.local
-Initializing PH
-
-Transmitting user aggregate callback invocations to phsolverservers
-Broadcasting final aggregate data to phsolverservers
-Transmitting user rho callback invocations to phsolverservers
-Transmitting user bound callback invocations to phsolverservers
-User-defined PH solution writer module=pyomo.pysp.plugins.jsonsolutionwriter already imported - skipping
-Starting PH
-
-Initiating PH iteration=0
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.2540 First stage cost avg= 113494.4444 Max-Min=10416.67
-Cumulative run-time=0.03 seconds
-
-Initiating PH iteration=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.2540 First stage cost avg= 113494.4444 Max-Min=10416.67
-Cumulative run-time=0.14 seconds
-
-Initiating PH iteration=2
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.2540 First stage cost avg= 113494.4445 Max-Min=10416.67
-Cumulative run-time=0.20 seconds
-
-Initiating PH iteration=3
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.1991 First stage cost avg= 113545.3418 Max-Min= 9341.08
-Cumulative run-time=0.26 seconds
-
-Initiating PH iteration=4
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.1166 First stage cost avg= 113837.6523 Max-Min= 6301.86
-Cumulative run-time=0.33 seconds
-
-Initiating PH iteration=5
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.1032 First stage cost avg= 114197.8075 Max-Min= 3806.58
-Cumulative run-time=0.39 seconds
-
-Initiating PH iteration=6
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.1094 First stage cost avg= 114422.4887 Max-Min= 3132.53
-Cumulative run-time=0.46 seconds
-
-Initiating PH iteration=7
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.1055 First stage cost avg= 114278.3496 Max-Min= 3564.95
-Cumulative run-time=0.52 seconds
-
-Initiating PH iteration=8
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.1022 First stage cost avg= 114107.3631 Max-Min= 4077.91
-Cumulative run-time=0.59 seconds
-
-Initiating PH iteration=9
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.1020 First stage cost avg= 114041.4185 Max-Min= 4275.74
-Cumulative run-time=0.65 seconds
-
-Initiating PH iteration=10
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.1021 First stage cost avg= 114054.4509 Max-Min= 4236.65
-Cumulative run-time=0.71 seconds
-Halting PH - reached maximal iteration count=10
-Number of discrete variables fixed before final plugin calls=0 (total=0)
-Number of continuous variables fixed before final plugin calls=0 (total=3)
-PH algorithm history written to file=ph_history.json
-PH complete
-Convergence history:
-Iteration Metric Value
- 0 0.2540
- 1 0.2540
- 2 0.2540
- 3 0.1991
- 4 0.1166
- 5 0.1032
- 6 0.1094
- 7 0.1055
- 8 0.1022
- 9 0.1020
- 10 0.1021
-
-***********************************************************************************************
->>>THE EXPECTED SUM OF THE STAGE COST VARIABLES=-111591.252155<<<
->>>***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise<<<
-***********************************************************************************************
-Final number of discrete variables fixed=0 (total=0)
-Final number of continuous variables fixed=0 (total=3)
-Final variable values:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 100.0000 80.0000 115.7919 Max-Min: 35.7919 Avg: 98.5973
- Index: [SUGAR_BEETS] Values: 300.0000 300.0000 250.0000 Max-Min: 50.0000 Avg: 283.3333
- Index: [WHEAT] Values: 100.0000 120.0000 134.2081 Max-Min: 34.2081 Avg: 118.0694
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 116000.0000 114400.0000 111763.3526 Max-Min: 4236.6473 Avg: 114054.4509
-Final costs:
-Scenario Tree Costs
-***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise
-----------------------------------------------------
-Tree Nodes:
-
- Name=AboveAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AboveAverageScenario
- Expected cost of (sub)tree rooted at node=-276973.7569
-
- Name=AverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AverageScenario
- Expected cost of (sub)tree rooted at node=-232999.9995
-
- Name=BelowAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-172799.9999
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- AboveAverageNode
- AverageNode
- BelowAverageNode
- Scenarios:
- AboveAverageScenario
- AverageScenario
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-111591.2522
-
-----------------------------------------------------
-Scenarios:
-
- Name=AboveAverageScenario
- Probability=0.3333
- Leaf Node=AboveAverageNode
- Tree node sequence:
- RootNode
- AboveAverageNode
- Stage= FirstStage Cost=111763.3526
- Stage= SecondStage Cost=-276973.7569
- Total scenario cost=-165210.4042
-
- Name=AverageScenario
- Probability=0.3333
- Leaf Node=AverageNode
- Tree node sequence:
- RootNode
- AverageNode
- Stage= FirstStage Cost=114400.0000
- Stage= SecondStage Cost=-232999.9995
- Total scenario cost=-118599.9994
-
- Name=BelowAverageScenario
- Probability=0.3333
- Leaf Node=BelowAverageNode
- Tree node sequence:
- RootNode
- BelowAverageNode
- Stage= FirstStage Cost=116000.0000
- Stage= SecondStage Cost=-172799.9999
- Total scenario cost=-56799.9999
-
-----------------------------------------------------
-
-Total PH execution time=0.72 seconds
-
-Scenario tree solution written to file=ph_solution.json
-Shutting down Pyro solver components
-Dispatcher received request to shut down - initiating...
-
-Total execution time=4.29 seconds
-Name Server gracefully stopped.
-Lost connection to dispatch server - shutting down...
-Lost connection to dispatch server - shutting down...
-Lost connection to dispatch server - shutting down...
diff --git a/pyomo/pysp/tests/examples/baselines/TestPHFarmerPHPyro.test14_withef.baseline b/pyomo/pysp/tests/examples/baselines/TestPHFarmerPHPyro.test14_withef.baseline
deleted file mode 100644
index 508cf482908..00000000000
--- a/pyomo/pysp/tests/examples/baselines/TestPHFarmerPHPyro.test14_withef.baseline
+++ /dev/null
@@ -1,383 +0,0 @@
-*** Pyro Name Server ***
-Name server listening on: ('0.0.0.0', 9090)
-Broadcast server listening on: ('0.0.0.0', 9090)
-URI is: PYRO://10.0.0.253:9090/0a0000fddebd20b9dcbd17915eee724019
-URI written to: /Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/pyomo/pysp/tests/examples/Pyro_NS_URI
-Name Server started.
-User-defined PH extension module=pyomo.pysp.plugins.phhistoryextension already imported - skipping
-Trying to import module=/Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/examples/pysp/farmer/config/aggregategetter.py
-Module successfully loaded
-Trying to import module=/Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/examples/pysp/farmer/config/rhosetter.py
-Module successfully loaded
-Trying to import module=/Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/examples/pysp/farmer/config/boundsetter.py
-Module successfully loaded
-Dispatcher is ready.
-Attempting to find Pyro dispatcher object...
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI:PYRO://10.0.0.253:7766/0a0000fddebe20b9dcbe1b8450dab4a3f7
-Dispatcher Object URI:PYRO://10.0.0.253:7766/0a0000fddebe20b9dcbe1b8450dab4a3f7
-This is worker Worker_57025@Ozymandias.local
-This is worker Worker_57023@Ozymandias.local
-Listening for work from dispatcher...
-Listening for work from dispatcher...
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI:PYRO://10.0.0.253:7766/0a0000fddebe20b9dcbe1b8450dab4a3f7
-This is worker Worker_57024@Ozymandias.local
-Listening for work from dispatcher...
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI: PYRO://10.0.0.253:7766/0a0000fddebe20b9dcbe1b8450dab4a3f7
-This is client 57026@Ozymandias.local
-Initializing PH
-
-Transmitting user aggregate callback invocations to phsolverservers
-Broadcasting final aggregate data to phsolverservers
-Transmitting user rho callback invocations to phsolverservers
-Transmitting user bound callback invocations to phsolverservers
-User-defined PH solution writer module=pyomo.pysp.plugins.jsonsolutionwriter already imported - skipping
-Starting PH
-
-Initiating PH iteration=0
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.2540 First stage cost avg= 113494.4444 Max-Min=10416.67
-Cumulative run-time=0.04 seconds
-
-Initiating PH iteration=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.2540 First stage cost avg= 113494.4444 Max-Min=10416.67
-Cumulative run-time=0.13 seconds
-
-Initiating PH iteration=2
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.2540 First stage cost avg= 113494.4445 Max-Min=10416.67
-Cumulative run-time=0.20 seconds
-
-Initiating PH iteration=3
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.1991 First stage cost avg= 113545.3418 Max-Min= 9341.08
-Cumulative run-time=0.25 seconds
-
-Initiating PH iteration=4
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.1166 First stage cost avg= 113837.6523 Max-Min= 6301.86
-Cumulative run-time=0.31 seconds
-
-Initiating PH iteration=5
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.1032 First stage cost avg= 114197.8075 Max-Min= 3806.58
-Cumulative run-time=0.38 seconds
-
-Initiating PH iteration=6
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.1094 First stage cost avg= 114422.4887 Max-Min= 3132.53
-Cumulative run-time=0.43 seconds
-
-Initiating PH iteration=7
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.1055 First stage cost avg= 114278.3496 Max-Min= 3564.95
-Cumulative run-time=0.49 seconds
-
-Initiating PH iteration=8
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.1022 First stage cost avg= 114107.3631 Max-Min= 4077.91
-Cumulative run-time=0.56 seconds
-
-Initiating PH iteration=9
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.1020 First stage cost avg= 114041.4185 Max-Min= 4275.74
-Cumulative run-time=0.61 seconds
-
-Initiating PH iteration=10
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.1021 First stage cost avg= 114054.4509 Max-Min= 4236.65
-Cumulative run-time=0.67 seconds
-Halting PH - reached maximal iteration count=10
-Number of discrete variables fixed before final plugin calls=0 (total=0)
-Number of continuous variables fixed before final plugin calls=0 (total=3)
-PH algorithm history written to file=ph_history.json
-PH complete
-Convergence history:
-Iteration Metric Value
- 0 0.2540
- 1 0.2540
- 2 0.2540
- 3 0.1991
- 4 0.1166
- 5 0.1032
- 6 0.1094
- 7 0.1055
- 8 0.1022
- 9 0.1020
- 10 0.1021
-
-***********************************************************************************************
->>>THE EXPECTED SUM OF THE STAGE COST VARIABLES=-111591.252155<<<
->>>***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise<<<
-***********************************************************************************************
-Final number of discrete variables fixed=0 (total=0)
-Final number of continuous variables fixed=0 (total=3)
-Final variable values:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 100.0000 80.0000 115.7919 Max-Min: 35.7919 Avg: 98.5973
- Index: [SUGAR_BEETS] Values: 300.0000 300.0000 250.0000 Max-Min: 50.0000 Avg: 283.3333
- Index: [WHEAT] Values: 100.0000 120.0000 134.2081 Max-Min: 34.2081 Avg: 118.0694
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 116000.0000 114400.0000 111763.3526 Max-Min: 4236.6473 Avg: 114054.4509
-Final costs:
-Scenario Tree Costs
-***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise
-----------------------------------------------------
-Tree Nodes:
-
- Name=AboveAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AboveAverageScenario
- Expected cost of (sub)tree rooted at node=-276973.7569
-
- Name=AverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AverageScenario
- Expected cost of (sub)tree rooted at node=-232999.9995
-
- Name=BelowAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-172799.9999
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- AboveAverageNode
- AverageNode
- BelowAverageNode
- Scenarios:
- AboveAverageScenario
- AverageScenario
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-111591.2522
-
-----------------------------------------------------
-Scenarios:
-
- Name=AboveAverageScenario
- Probability=0.3333
- Leaf Node=AboveAverageNode
- Tree node sequence:
- RootNode
- AboveAverageNode
- Stage= FirstStage Cost=111763.3526
- Stage= SecondStage Cost=-276973.7569
- Total scenario cost=-165210.4042
-
- Name=AverageScenario
- Probability=0.3333
- Leaf Node=AverageNode
- Tree node sequence:
- RootNode
- AverageNode
- Stage= FirstStage Cost=114400.0000
- Stage= SecondStage Cost=-232999.9995
- Total scenario cost=-118599.9994
-
- Name=BelowAverageScenario
- Probability=0.3333
- Leaf Node=BelowAverageNode
- Tree node sequence:
- RootNode
- BelowAverageNode
- Stage= FirstStage Cost=116000.0000
- Stage= SecondStage Cost=-172799.9999
- Total scenario cost=-56799.9999
-
-----------------------------------------------------
-
-Total PH execution time=0.69 seconds
-
-Scenario tree solution written to file=ph_solution.json
-Constructing scenario instances for extensive form solve
-Executing user bound setter callback function
-Pushing fixed variable statuses to scenario instances
-Number of discrete variables fixed prior to ef creation=0 (total=0)
-Number of continuous variables fixed prior to ef creation=0 (total=3)
-Creating extensive form for remainder problem
-Time to construct extensive form instance=0.00 seconds
-Queuing extensive form solve
-Waiting for extensive form solve
-Done with extensive form solve - loading results
-Storing solution in scenario tree
-Time to solve and load results for the extensive form=0.02 seconds
-
-***********************************************************************************************
->>>THE EXPECTED SUM OF THE STAGE COST VARIABLES=-108390.00001<<<
-***********************************************************************************************
-
-Extensive form solution:
-----------------------------------------------------
-Tree Nodes:
-
- Name=AboveAverageNode
- Stage=SecondStage
- Parent=RootNode
- Variables:
- QuantitySubQuotaSold[CORN]=48.0
- QuantitySubQuotaSold[SUGAR_BEETS]=6000.0
- QuantitySubQuotaSold[WHEAT]=310.0
-
- Name=AverageNode
- Stage=SecondStage
- Parent=RootNode
- Variables:
- QuantitySubQuotaSold[SUGAR_BEETS]=5000.0
- QuantitySubQuotaSold[WHEAT]=225.0
-
- Name=BelowAverageNode
- Stage=SecondStage
- Parent=RootNode
- Variables:
- QuantityPurchased[CORN]=48.0
- QuantitySubQuotaSold[SUGAR_BEETS]=4000.0
- QuantitySubQuotaSold[WHEAT]=140.0
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Variables:
- DevotedAcreage[CORN]=80.0
- DevotedAcreage[SUGAR_BEETS]=250.0
- DevotedAcreage[WHEAT]=170.0
-
-
-Extensive form costs:
-Scenario Tree Costs
-***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise
-----------------------------------------------------
-Tree Nodes:
-
- Name=AboveAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AboveAverageScenario
- Expected cost of (sub)tree rooted at node=-275900.0000
-
- Name=AverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AverageScenario
- Expected cost of (sub)tree rooted at node=-218250.0000
-
- Name=BelowAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-157720.0000
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- AboveAverageNode
- AverageNode
- BelowAverageNode
- Scenarios:
- AboveAverageScenario
- AverageScenario
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-108390.0000
-
-----------------------------------------------------
-Scenarios:
-
- Name=AboveAverageScenario
- Probability=0.3333
- Leaf Node=AboveAverageNode
- Tree node sequence:
- RootNode
- AboveAverageNode
- Stage= FirstStage Cost=108900.0000
- Stage= SecondStage Cost=-275900.0000
- Total scenario cost=-167000.0000
-
- Name=AverageScenario
- Probability=0.3333
- Leaf Node=AverageNode
- Tree node sequence:
- RootNode
- AverageNode
- Stage= FirstStage Cost=108900.0000
- Stage= SecondStage Cost=-218250.0000
- Total scenario cost=-109350.0000
-
- Name=BelowAverageScenario
- Probability=0.3333
- Leaf Node=BelowAverageNode
- Tree node sequence:
- RootNode
- BelowAverageNode
- Stage= FirstStage Cost=108900.0000
- Stage= SecondStage Cost=-157720.0000
- Total scenario cost=-48820.0000
-
-----------------------------------------------------
-Scenario tree solution written to file=postphef_solution.json
-Shutting down Pyro solver components
-Dispatcher received request to shut down - initiating...
-
-Total execution time=4.39 seconds
-Name Server gracefully stopped.
-Lost connection to dispatch server - shutting down...
-Lost connection to dispatch server - shutting down...
-Lost connection to dispatch server - shutting down...
diff --git a/pyomo/pysp/tests/examples/baselines/TestPHFarmerPHPyro.test1_withef.baseline b/pyomo/pysp/tests/examples/baselines/TestPHFarmerPHPyro.test1_withef.baseline
deleted file mode 100644
index 38c9022b8ca..00000000000
--- a/pyomo/pysp/tests/examples/baselines/TestPHFarmerPHPyro.test1_withef.baseline
+++ /dev/null
@@ -1,556 +0,0 @@
-*** Pyro Name Server ***
-Name server listening on: ('0.0.0.0', 9090)
-Broadcast server listening on: ('0.0.0.0', 9090)
-URI is: PYRO://10.0.0.253:9090/0a0000fd96bf20b9d1ce8022f15f6698a3
-URI written to: /Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/pyomo/pysp/tests/examples/Pyro_NS_URI
-Name Server started.
-User-defined PH extension module=pyomo.pysp.plugins.phhistoryextension already imported - skipping
-Dispatcher is ready.
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI:PYRO://10.0.0.253:7766/0a0000fd96c020b9d1cf8118c557180703
-This is worker Worker_38595@Ozymandias.local
-Listening for work from dispatcher...
-Attempting to find Pyro dispatcher object...
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI:PYRO://10.0.0.253:7766/0a0000fd96c020b9d1cf8118c557180703
-This is worker Worker_38594@Ozymandias.local
-Listening for work from dispatcher...
-Dispatcher Object URI:PYRO://10.0.0.253:7766/0a0000fd96c020b9d1cf8118c557180703
-This is worker Worker_38593@Ozymandias.local
-Listening for work from dispatcher...
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI: PYRO://10.0.0.253:7766/0a0000fd96c020b9d1cf8118c557180703
-This is client 38596@Ozymandias.local
-Initializing PH
-
-User-defined PH solution writer module=pyomo.pysp.plugins.jsonsolutionwriter already imported - skipping
-Starting PH
-
-Initiating PH iteration=0
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.2540 First stage cost avg= 113494.4444 Max-Min=10416.67
-Cumulative run-time=0.03 seconds
-
-Initiating PH iteration=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.1259 First stage cost avg= 113107.2221 Max-Min= 6943.89
-Cumulative run-time=0.13 seconds
-
-Initiating PH iteration=2
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0816 First stage cost avg= 112954.6296 Max-Min= 2234.82
-Cumulative run-time=0.19 seconds
-
-Initiating PH iteration=3
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0796 First stage cost avg= 112963.0248 Max-Min= 2375.31
-Cumulative run-time=0.26 seconds
-
-Initiating PH iteration=4
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0776 First stage cost avg= 112915.6071 Max-Min= 3047.08
-Cumulative run-time=0.32 seconds
-
-Initiating PH iteration=5
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0794 First stage cost avg= 112825.3926 Max-Min= 3339.81
-Cumulative run-time=0.39 seconds
-
-Initiating PH iteration=6
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0668 First stage cost avg= 112317.9502 Max-Min= 2019.60
-Cumulative run-time=0.45 seconds
-
-Initiating PH iteration=7
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0542 First stage cost avg= 111364.4660 Max-Min= 1181.85
-Cumulative run-time=0.51 seconds
-
-Initiating PH iteration=8
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0360 First stage cost avg= 110283.4074 Max-Min= 463.23
-Cumulative run-time=0.58 seconds
-
-Initiating PH iteration=9
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0243 First stage cost avg= 109399.2542 Max-Min= 363.90
-Cumulative run-time=0.64 seconds
-
-Initiating PH iteration=10
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0256 First stage cost avg= 108834.1930 Max-Min= 933.90
-Cumulative run-time=0.70 seconds
-
-Initiating PH iteration=11
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0248 First stage cost avg= 108575.3219 Max-Min= 918.57
-Cumulative run-time=0.77 seconds
-
-Initiating PH iteration=12
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0163 First stage cost avg= 108513.5347 Max-Min= 591.25
-Cumulative run-time=0.82 seconds
-
-Initiating PH iteration=13
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0081 First stage cost avg= 108528.2899 Max-Min= 175.95
-Cumulative run-time=0.88 seconds
-
-Initiating PH iteration=14
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0168 First stage cost avg= 108561.6577 Max-Min= 274.77
-Cumulative run-time=0.94 seconds
-
-Initiating PH iteration=15
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0163 First stage cost avg= 108604.0579 Max-Min= 295.14
-Cumulative run-time=1.00 seconds
-
-Initiating PH iteration=16
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0098 First stage cost avg= 108667.3583 Max-Min= 127.67
-Cumulative run-time=1.05 seconds
-
-Initiating PH iteration=17
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0032 First stage cost avg= 108758.4237 Max-Min= 59.69
-Cumulative run-time=1.11 seconds
-
-Initiating PH iteration=18
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0026 First stage cost avg= 108868.1277 Max-Min= 101.79
-Cumulative run-time=1.16 seconds
-
-Initiating PH iteration=19
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0039 First stage cost avg= 108975.3089 Max-Min= 73.41
-Cumulative run-time=1.22 seconds
-
-Initiating PH iteration=20
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0043 First stage cost avg= 109057.4144 Max-Min= 39.47
-Cumulative run-time=1.29 seconds
-
-Initiating PH iteration=21
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0044 First stage cost avg= 109099.7145 Max-Min= 87.57
-Cumulative run-time=1.35 seconds
-
-Initiating PH iteration=22
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0040 First stage cost avg= 109099.1239 Max-Min= 104.22
-Cumulative run-time=1.42 seconds
-
-Initiating PH iteration=23
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0032 First stage cost avg= 109062.8322 Max-Min= 88.54
-Cumulative run-time=1.48 seconds
-
-Initiating PH iteration=24
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0021 First stage cost avg= 109004.1156 Max-Min= 54.49
-Cumulative run-time=1.55 seconds
-
-Initiating PH iteration=25
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0008 First stage cost avg= 108937.8039 Max-Min= 16.89
-Cumulative run-time=1.61 seconds
-
-Initiating PH iteration=26
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0005 First stage cost avg= 108876.8822 Max-Min= 14.27
-Cumulative run-time=1.67 seconds
-
-Initiating PH iteration=27
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0015 First stage cost avg= 108830.6201 Max-Min= 34.81
-Cumulative run-time=1.74 seconds
-
-Initiating PH iteration=28
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0021 First stage cost avg= 108803.9655 Max-Min= 44.57
-Cumulative run-time=1.83 seconds
-
-Initiating PH iteration=29
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0023 First stage cost avg= 108797.7661 Max-Min= 45.24
-Cumulative run-time=1.89 seconds
-
-Initiating PH iteration=30
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0020 First stage cost avg= 108809.4793 Max-Min= 39.01
-Cumulative run-time=1.96 seconds
-
-Initiating PH iteration=31
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0015 First stage cost avg= 108834.1639 Max-Min= 28.07
-Cumulative run-time=2.02 seconds
-
-Initiating PH iteration=32
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0008 First stage cost avg= 108865.6237 Max-Min= 14.67
-Cumulative run-time=2.09 seconds
-
-Initiating PH iteration=33
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0001 First stage cost avg= 108897.5679 Max-Min= 1.06
-Cumulative run-time=2.15 seconds
-PH converged - convergence metric is below threshold=0.0001
-Number of discrete variables fixed before final plugin calls=0 (total=0)
-Number of continuous variables fixed before final plugin calls=0 (total=3)
-PH algorithm history written to file=ph_history.json
-PH complete
-Convergence history:
-Iteration Metric Value
- 0 0.2540
- 1 0.1259
- 2 0.0816
- 3 0.0796
- 4 0.0776
- 5 0.0794
- 6 0.0668
- 7 0.0542
- 8 0.0360
- 9 0.0243
- 10 0.0256
- 11 0.0248
- 12 0.0163
- 13 0.0081
- 14 0.0168
- 15 0.0163
- 16 0.0098
- 17 0.0032
- 18 0.0026
- 19 0.0039
- 20 0.0043
- 21 0.0044
- 22 0.0040
- 23 0.0032
- 24 0.0021
- 25 0.0008
- 26 0.0005
- 27 0.0015
- 28 0.0021
- 29 0.0023
- 30 0.0020
- 31 0.0015
- 32 0.0008
- 33 0.0001
-
-***********************************************************************************************
->>>THE EXPECTED SUM OF THE STAGE COST VARIABLES=-108388.378639<<<
->>>***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise<<<
-***********************************************************************************************
-Final number of discrete variables fixed=0 (total=0)
-Final number of continuous variables fixed=0 (total=3)
-Final variable values:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 79.9844 80.0000 79.9768 Max-Min: 0.0232 Avg: 79.9871
- Index: [SUGAR_BEETS] Values: 249.9848 249.9770 250.0000 Max-Min: 0.0230 Avg: 249.9873
- Index: [WHEAT] Values: 170.0308 170.0230 170.0232 Max-Min: 0.0078 Avg: 170.0256
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108897.0836 108897.4725 108898.1476 Max-Min: 1.0640 Avg: 108897.5679
-Final costs:
-Scenario Tree Costs
-***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise
-----------------------------------------------------
-Tree Nodes:
-
- Name=AboveAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AboveAverageScenario
- Expected cost of (sub)tree rooted at node=-275899.3041
-
- Name=AverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AverageScenario
- Expected cost of (sub)tree rooted at node=-218243.2209
-
- Name=BelowAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-157713.8615
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- AboveAverageNode
- AverageNode
- BelowAverageNode
- Scenarios:
- AboveAverageScenario
- AverageScenario
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-108388.3786
-
-----------------------------------------------------
-Scenarios:
-
- Name=AboveAverageScenario
- Probability=0.3333
- Leaf Node=AboveAverageNode
- Tree node sequence:
- RootNode
- AboveAverageNode
- Stage= FirstStage Cost=108898.1476
- Stage= SecondStage Cost=-275899.3041
- Total scenario cost=-167001.1565
-
- Name=AverageScenario
- Probability=0.3333
- Leaf Node=AverageNode
- Tree node sequence:
- RootNode
- AverageNode
- Stage= FirstStage Cost=108897.4725
- Stage= SecondStage Cost=-218243.2209
- Total scenario cost=-109345.7484
-
- Name=BelowAverageScenario
- Probability=0.3333
- Leaf Node=BelowAverageNode
- Tree node sequence:
- RootNode
- BelowAverageNode
- Stage= FirstStage Cost=108897.0836
- Stage= SecondStage Cost=-157713.8615
- Total scenario cost=-48816.7780
-
-----------------------------------------------------
-
-Total PH execution time=2.17 seconds
-
-Scenario tree solution written to file=ph_solution.json
-Constructing scenario instances for extensive form solve
-Pushing fixed variable statuses to scenario instances
-Number of discrete variables fixed prior to ef creation=0 (total=0)
-Number of continuous variables fixed prior to ef creation=0 (total=3)
-Creating extensive form for remainder problem
-Time to construct extensive form instance=0.00 seconds
-Queuing extensive form solve
-Waiting for extensive form solve
-Done with extensive form solve - loading results
-Storing solution in scenario tree
-Time to solve and load results for the extensive form=0.02 seconds
-
-***********************************************************************************************
->>>THE EXPECTED SUM OF THE STAGE COST VARIABLES=-108390.00001<<<
-***********************************************************************************************
-
-Extensive form solution:
-----------------------------------------------------
-Tree Nodes:
-
- Name=AboveAverageNode
- Stage=SecondStage
- Parent=RootNode
- Variables:
- QuantitySubQuotaSold[CORN]=48.0
- QuantitySubQuotaSold[SUGAR_BEETS]=6000.0
- QuantitySubQuotaSold[WHEAT]=310.0
-
- Name=AverageNode
- Stage=SecondStage
- Parent=RootNode
- Variables:
- QuantitySubQuotaSold[SUGAR_BEETS]=5000.0
- QuantitySubQuotaSold[WHEAT]=225.0
-
- Name=BelowAverageNode
- Stage=SecondStage
- Parent=RootNode
- Variables:
- QuantityPurchased[CORN]=48.0
- QuantitySubQuotaSold[SUGAR_BEETS]=4000.0
- QuantitySubQuotaSold[WHEAT]=140.0
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Variables:
- DevotedAcreage[CORN]=80.0
- DevotedAcreage[SUGAR_BEETS]=250.0
- DevotedAcreage[WHEAT]=170.0
-
-
-Extensive form costs:
-Scenario Tree Costs
-***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise
-----------------------------------------------------
-Tree Nodes:
-
- Name=AboveAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AboveAverageScenario
- Expected cost of (sub)tree rooted at node=-275900.0000
-
- Name=AverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AverageScenario
- Expected cost of (sub)tree rooted at node=-218250.0000
-
- Name=BelowAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-157720.0000
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- AboveAverageNode
- AverageNode
- BelowAverageNode
- Scenarios:
- AboveAverageScenario
- AverageScenario
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-108390.0000
-
-----------------------------------------------------
-Scenarios:
-
- Name=AboveAverageScenario
- Probability=0.3333
- Leaf Node=AboveAverageNode
- Tree node sequence:
- RootNode
- AboveAverageNode
- Stage= FirstStage Cost=108900.0000
- Stage= SecondStage Cost=-275900.0000
- Total scenario cost=-167000.0000
-
- Name=AverageScenario
- Probability=0.3333
- Leaf Node=AverageNode
- Tree node sequence:
- RootNode
- AverageNode
- Stage= FirstStage Cost=108900.0000
- Stage= SecondStage Cost=-218250.0000
- Total scenario cost=-109350.0000
-
- Name=BelowAverageScenario
- Probability=0.3333
- Leaf Node=BelowAverageNode
- Tree node sequence:
- RootNode
- BelowAverageNode
- Stage= FirstStage Cost=108900.0000
- Stage= SecondStage Cost=-157720.0000
- Total scenario cost=-48820.0000
-
-----------------------------------------------------
-Scenario tree solution written to file=postphef_solution.json
-Shutting down Pyro solver components
-Dispatcher received request to shut down - initiating...
-
-Total execution time=5.53 seconds
-Name Server gracefully stopped.
-Lost connection to dispatch server - shutting down...
-Lost connection to dispatch server - shutting down...
-Lost connection to dispatch server - shutting down...
diff --git a/pyomo/pysp/tests/examples/baselines/TestPHFarmerPHPyro.test2.baseline b/pyomo/pysp/tests/examples/baselines/TestPHFarmerPHPyro.test2.baseline
deleted file mode 100644
index 50af03ff779..00000000000
--- a/pyomo/pysp/tests/examples/baselines/TestPHFarmerPHPyro.test2.baseline
+++ /dev/null
@@ -1,539 +0,0 @@
-*** Pyro Name Server ***
-Name server listening on: ('0.0.0.0', 9090)
-Broadcast server listening on: ('0.0.0.0', 9090)
-URI is: PYRO://10.0.0.15:9090/0a00000f14df20a08be0de0da0a2686174
-URI written to: /Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/pyomo/pysp/tests/examples/Pyro_NS_URI
-Name Server started.
-User-defined PH extension module=pyomo.pysp.plugins.phhistoryextension already imported - skipping
-Dispatcher is ready.
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI:PYRO://10.0.0.15:7766/0a00000f14e020a08be1fdcae0230fbd94
-This is worker Worker_5346@Ozymandias.local
-Listening for work from dispatcher...
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI:PYRO://10.0.0.15:7766/0a00000f14e020a08be1fdcae0230fbd94
-This is worker Worker_5345@Ozymandias.local
-Listening for work from dispatcher...
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI:PYRO://10.0.0.15:7766/0a00000f14e020a08be1fdcae0230fbd94
-This is worker Worker_5347@Ozymandias.local
-Listening for work from dispatcher...
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI: PYRO://10.0.0.15:7766/0a00000f14e020a08be1fdcae0230fbd94
-This is client 5348@Ozymandias.local
-Initializing PH
-
-User-defined PH solution writer module=pyomo.pysp.plugins.jsonsolutionwriter already imported - skipping
-Starting PH
-
-Initiating PH iteration=0
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 98.5185 First stage cost avg= 113494.4444 Max-Min=10416.67
-Cumulative run-time=0.05 seconds
-
-Initiating PH iteration=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 56.7654 First stage cost avg= 113107.2221 Max-Min= 6943.89
-Cumulative run-time=0.15 seconds
-
-Initiating PH iteration=2
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 37.3580 First stage cost avg= 112954.6296 Max-Min= 2234.82
-Cumulative run-time=0.21 seconds
-
-Initiating PH iteration=3
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 36.5075 First stage cost avg= 112963.0248 Max-Min= 2375.31
-Cumulative run-time=0.27 seconds
-
-Initiating PH iteration=4
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 35.4086 First stage cost avg= 112915.6071 Max-Min= 3047.08
-Cumulative run-time=0.34 seconds
-
-Initiating PH iteration=5
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 36.2217 First stage cost avg= 112825.3926 Max-Min= 3339.81
-Cumulative run-time=0.40 seconds
-
-Initiating PH iteration=6
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 29.3303 First stage cost avg= 112317.9502 Max-Min= 2019.60
-Cumulative run-time=0.46 seconds
-
-Initiating PH iteration=7
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 21.9702 First stage cost avg= 111364.4660 Max-Min= 1181.85
-Cumulative run-time=0.53 seconds
-
-Initiating PH iteration=8
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 13.8077 First stage cost avg= 110283.4074 Max-Min= 463.23
-Cumulative run-time=0.59 seconds
-
-Initiating PH iteration=9
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 9.5141 First stage cost avg= 109399.2542 Max-Min= 363.90
-Cumulative run-time=0.65 seconds
-
-Initiating PH iteration=10
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 12.0668 First stage cost avg= 108834.1930 Max-Min= 933.90
-Cumulative run-time=0.72 seconds
-
-Initiating PH iteration=11
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 11.6644 First stage cost avg= 108575.3219 Max-Min= 918.57
-Cumulative run-time=0.78 seconds
-
-Initiating PH iteration=12
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 7.5080 First stage cost avg= 108513.5347 Max-Min= 591.25
-Cumulative run-time=0.85 seconds
-
-Initiating PH iteration=13
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 3.1070 First stage cost avg= 108528.2899 Max-Min= 175.95
-Cumulative run-time=0.91 seconds
-
-Initiating PH iteration=14
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 5.5300 First stage cost avg= 108561.6577 Max-Min= 274.77
-Cumulative run-time=0.97 seconds
-
-Initiating PH iteration=15
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 5.4381 First stage cost avg= 108604.0579 Max-Min= 295.14
-Cumulative run-time=1.04 seconds
-
-Initiating PH iteration=16
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 3.2812 First stage cost avg= 108667.3583 Max-Min= 127.67
-Cumulative run-time=1.10 seconds
-
-Initiating PH iteration=17
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 1.1980 First stage cost avg= 108758.4237 Max-Min= 59.69
-Cumulative run-time=1.17 seconds
-
-Initiating PH iteration=18
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 1.0800 First stage cost avg= 108868.1277 Max-Min= 101.79
-Cumulative run-time=1.23 seconds
-
-Initiating PH iteration=19
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 1.3642 First stage cost avg= 108975.3089 Max-Min= 73.41
-Cumulative run-time=1.29 seconds
-
-Initiating PH iteration=20
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 1.5168 First stage cost avg= 109057.4144 Max-Min= 39.47
-Cumulative run-time=1.36 seconds
-
-Initiating PH iteration=21
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 1.6833 First stage cost avg= 109099.7145 Max-Min= 87.57
-Cumulative run-time=1.42 seconds
-
-Initiating PH iteration=22
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 1.6446 First stage cost avg= 109099.1239 Max-Min= 104.22
-Cumulative run-time=1.48 seconds
-
-Initiating PH iteration=23
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 1.3382 First stage cost avg= 109062.8322 Max-Min= 88.54
-Cumulative run-time=1.55 seconds
-
-Initiating PH iteration=24
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.8599 First stage cost avg= 109004.1156 Max-Min= 54.49
-Cumulative run-time=1.62 seconds
-
-Initiating PH iteration=25
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.3180 First stage cost avg= 108937.8039 Max-Min= 16.89
-Cumulative run-time=1.68 seconds
-
-Initiating PH iteration=26
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.1981 First stage cost avg= 108876.8822 Max-Min= 14.27
-Cumulative run-time=1.74 seconds
-
-Initiating PH iteration=27
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.5760 First stage cost avg= 108830.6201 Max-Min= 34.81
-Cumulative run-time=1.81 seconds
-
-Initiating PH iteration=28
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.8045 First stage cost avg= 108803.9655 Max-Min= 44.57
-Cumulative run-time=1.90 seconds
-
-Initiating PH iteration=29
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.8608 First stage cost avg= 108797.7661 Max-Min= 45.24
-Cumulative run-time=1.97 seconds
-
-Initiating PH iteration=30
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.7643 First stage cost avg= 108809.4793 Max-Min= 39.01
-Cumulative run-time=2.04 seconds
-
-Initiating PH iteration=31
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.5565 First stage cost avg= 108834.1639 Max-Min= 28.07
-Cumulative run-time=2.10 seconds
-
-Initiating PH iteration=32
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.2905 First stage cost avg= 108865.6237 Max-Min= 14.67
-Cumulative run-time=2.16 seconds
-
-Initiating PH iteration=33
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0205 First stage cost avg= 108897.5679 Max-Min= 1.06
-Cumulative run-time=2.23 seconds
-
-Initiating PH iteration=34
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.2079 First stage cost avg= 108924.6334 Max-Min= 10.64
-Cumulative run-time=2.30 seconds
-
-Initiating PH iteration=35
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.3637 First stage cost avg= 108943.1232 Max-Min= 18.81
-Cumulative run-time=2.36 seconds
-
-Initiating PH iteration=36
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.4328 First stage cost avg= 108951.3651 Max-Min= 22.58
-Cumulative run-time=2.42 seconds
-
-Initiating PH iteration=37
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.4183 First stage cost avg= 108949.6731 Max-Min= 21.96
-Cumulative run-time=2.48 seconds
-
-Initiating PH iteration=38
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.3365 First stage cost avg= 108939.9742 Max-Min= 17.74
-Cumulative run-time=2.55 seconds
-
-Initiating PH iteration=39
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.2122 First stage cost avg= 108925.2193 Max-Min= 11.21
-Cumulative run-time=2.61 seconds
-
-Initiating PH iteration=40
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0733 First stage cost avg= 108908.7151 Max-Min= 3.89
-Cumulative run-time=2.68 seconds
-
-Initiating PH iteration=41
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0547 First stage cost avg= 108893.5090 Max-Min= 2.87
-Cumulative run-time=2.74 seconds
-
-Initiating PH iteration=42
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.1522 First stage cost avg= 108881.9216 Max-Min= 8.01
-Cumulative run-time=2.80 seconds
-
-Initiating PH iteration=43
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.2081 First stage cost avg= 108875.2811 Max-Min= 10.94
-Cumulative run-time=2.87 seconds
-
-Initiating PH iteration=44
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.2200 First stage cost avg= 108873.8685 Max-Min= 11.56
-Cumulative run-time=2.93 seconds
-
-Initiating PH iteration=45
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.1933 First stage cost avg= 108877.0466 Max-Min= 10.15
-Cumulative run-time=3.00 seconds
-
-Initiating PH iteration=46
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.1388 First stage cost avg= 108883.5201 Max-Min= 7.28
-Cumulative run-time=3.06 seconds
-
-Initiating PH iteration=47
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0702 First stage cost avg= 108891.6607 Max-Min= 3.68
-Cumulative run-time=3.11 seconds
-
-Initiating PH iteration=48
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0014 First stage cost avg= 108899.8341 Max-Min= 0.07
-Cumulative run-time=3.18 seconds
-PH converged - convergence metric is below threshold=0.01
-Number of discrete variables fixed before final plugin calls=0 (total=0)
-Number of continuous variables fixed before final plugin calls=0 (total=3)
-PH algorithm history written to file=ph_history.json
-PH complete
-Convergence history:
-Iteration Metric Value
- 0 98.5185
- 1 56.7654
- 2 37.3580
- 3 36.5075
- 4 35.4086
- 5 36.2217
- 6 29.3303
- 7 21.9702
- 8 13.8077
- 9 9.5141
- 10 12.0668
- 11 11.6644
- 12 7.5080
- 13 3.1070
- 14 5.5300
- 15 5.4381
- 16 3.2812
- 17 1.1980
- 18 1.0800
- 19 1.3642
- 20 1.5168
- 21 1.6833
- 22 1.6446
- 23 1.3382
- 24 0.8599
- 25 0.3180
- 26 0.1981
- 27 0.5760
- 28 0.8045
- 29 0.8608
- 30 0.7643
- 31 0.5565
- 32 0.2905
- 33 0.0205
- 34 0.2079
- 35 0.3637
- 36 0.4328
- 37 0.4183
- 38 0.3365
- 39 0.2122
- 40 0.0733
- 41 0.0547
- 42 0.1522
- 43 0.2081
- 44 0.2200
- 45 0.1933
- 46 0.1388
- 47 0.0702
- 48 0.0014
-
-***********************************************************************************************
->>>THE EXPECTED SUM OF THE STAGE COST VARIABLES=-108389.889265<<<
->>>***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise<<<
-***********************************************************************************************
-Final number of discrete variables fixed=0 (total=0)
-Final number of continuous variables fixed=0 (total=3)
-Final variable values:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 79.9989 80.0000 79.9984 Max-Min: 0.0016 Avg: 79.9991
- Index: [SUGAR_BEETS] Values: 249.9990 249.9984 250.0000 Max-Min: 0.0016 Avg: 249.9991
- Index: [WHEAT] Values: 170.0021 170.0016 170.0016 Max-Min: 0.0005 Avg: 170.0018
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108899.8013 108899.8284 108899.8727 Max-Min: 0.0714 Avg: 108899.8341
-Final costs:
-Scenario Tree Costs
-***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise
-----------------------------------------------------
-Tree Nodes:
-
- Name=AboveAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AboveAverageScenario
- Expected cost of (sub)tree rooted at node=-275899.9510
-
- Name=AverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AverageScenario
- Expected cost of (sub)tree rooted at node=-218249.5388
-
- Name=BelowAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-157719.5818
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- AboveAverageNode
- AverageNode
- BelowAverageNode
- Scenarios:
- AboveAverageScenario
- AverageScenario
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-108389.8893
-
-----------------------------------------------------
-Scenarios:
-
- Name=AboveAverageScenario
- Probability=0.3333
- Leaf Node=AboveAverageNode
- Tree node sequence:
- RootNode
- AboveAverageNode
- Stage= FirstStage Cost=108899.8727
- Stage= SecondStage Cost=-275899.9510
- Total scenario cost=-167000.0783
-
- Name=AverageScenario
- Probability=0.3333
- Leaf Node=AverageNode
- Tree node sequence:
- RootNode
- AverageNode
- Stage= FirstStage Cost=108899.8284
- Stage= SecondStage Cost=-218249.5388
- Total scenario cost=-109349.7104
-
- Name=BelowAverageScenario
- Probability=0.3333
- Leaf Node=BelowAverageNode
- Tree node sequence:
- RootNode
- BelowAverageNode
- Stage= FirstStage Cost=108899.8013
- Stage= SecondStage Cost=-157719.5818
- Total scenario cost=-48819.7805
-
-----------------------------------------------------
-
-Total PH execution time=3.19 seconds
-
-Scenario tree solution written to file=ph_solution.json
-Shutting down Pyro solver components
-Dispatcher received request to shut down - initiating...
-
-Total execution time=6.47 seconds
-Name Server gracefully stopped.
-Lost connection to dispatch server - shutting down...
-Lost connection to dispatch server - shutting down...
-Lost connection to dispatch server - shutting down...
diff --git a/pyomo/pysp/tests/examples/baselines/TestPHFarmerPHPyro.test3.baseline b/pyomo/pysp/tests/examples/baselines/TestPHFarmerPHPyro.test3.baseline
deleted file mode 100644
index 7ccce87e1d9..00000000000
--- a/pyomo/pysp/tests/examples/baselines/TestPHFarmerPHPyro.test3.baseline
+++ /dev/null
@@ -1,227 +0,0 @@
-*** Pyro Name Server ***
-Name server listening on: ('0.0.0.0', 9090)
-Broadcast server listening on: ('0.0.0.0', 9090)
-URI is: PYRO://10.0.0.15:9090/0a00000f159120a08be53c5582a3d48131
-URI written to: /Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/pyomo/pysp/tests/examples/Pyro_NS_URI
-Name Server started.
-User-defined PH extension module=pyomo.pysp.plugins.phhistoryextension already imported - skipping
-Dispatcher is ready.
-Attempting to find Pyro dispatcher object...
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI:PYRO://10.0.0.15:7766/0a00000f159220a08be65b9e132083d8d8
-This is worker Worker_5523@Ozymandias.local
-Listening for work from dispatcher...
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI:PYRO://10.0.0.15:7766/0a00000f159220a08be65b9e132083d8d8
-This is worker Worker_5524@Ozymandias.local
-Listening for work from dispatcher...
-Dispatcher Object URI:PYRO://10.0.0.15:7766/0a00000f159220a08be65b9e132083d8d8
-This is worker Worker_5525@Ozymandias.local
-Listening for work from dispatcher...
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI: PYRO://10.0.0.15:7766/0a00000f159220a08be65b9e132083d8d8
-This is client 5526@Ozymandias.local
-Initializing PH
-
-User-defined PH solution writer module=pyomo.pysp.plugins.jsonsolutionwriter already imported - skipping
-Starting PH
-
-Initiating PH iteration=0
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.2540 First stage cost avg= 113494.4444 Max-Min=10416.67
-Cumulative run-time=0.03 seconds
-
-Initiating PH iteration=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.1307 First stage cost avg= 113073.3333 Max-Min= 7180.00
-Cumulative run-time=0.14 seconds
-
-Initiating PH iteration=2
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0872 First stage cost avg= 113259.7778 Max-Min= 1736.67
-Cumulative run-time=0.22 seconds
-
-Initiating PH iteration=3
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0793 First stage cost avg= 113339.1852 Max-Min= 1836.89
-Cumulative run-time=0.29 seconds
-
-Initiating PH iteration=4
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0820 First stage cost avg= 112746.3951 Max-Min= 3745.63
-Cumulative run-time=0.37 seconds
-
-Initiating PH iteration=5
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0828 First stage cost avg= 112327.9383 Max-Min= 4381.88
-Cumulative run-time=0.45 seconds
-
-Initiating PH iteration=6
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0561 First stage cost avg= 112125.1852 Max-Min= 1027.56
-Cumulative run-time=0.52 seconds
-
-Initiating PH iteration=7
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0625 First stage cost avg= 111694.0412 Max-Min= 2320.99
-Cumulative run-time=0.59 seconds
-
-Initiating PH iteration=8
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0342 First stage cost avg= 111355.5172 Max-Min= 1015.57
-Cumulative run-time=0.67 seconds
-
-Initiating PH iteration=9
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0000 First stage cost avg= 111355.5172 Max-Min= 0.00
-Cumulative run-time=0.74 seconds
-PH converged - convergence metric is below threshold=0.0001
-Number of discrete variables fixed before final plugin calls=0 (total=0)
-Number of continuous variables fixed before final plugin calls=0 (total=3)
-PH algorithm history written to file=ph_history.json
-PH complete
-Convergence history:
-Iteration Metric Value
- 0 0.2540
- 1 0.1307
- 2 0.0872
- 3 0.0793
- 4 0.0820
- 5 0.0828
- 6 0.0561
- 7 0.0625
- 8 0.0342
- 9 0.0000
-
-***********************************************************************************************
->>>THE EXPECTED SUM OF THE STAGE COST VARIABLES=-107958.896605<<<
->>>***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise<<<
-***********************************************************************************************
-Final number of discrete variables fixed=0 (total=0)
-Final number of continuous variables fixed=0 (total=3)
-Final variable values:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 88.4631 88.4631 88.4631 Max-Min: 0.0000 Avg: 88.4631
- Index: [SUGAR_BEETS] Values: 266.1679 266.1679 266.1679 Max-Min: 0.0000 Avg: 266.1679
- Index: [WHEAT] Values: 145.3690 145.3690 145.3690 Max-Min: 0.0000 Avg: 145.3690
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 111355.5172 111355.5172 111355.5172 Max-Min: 0.0000 Avg: 111355.5172
-Final costs:
-Scenario Tree Costs
-***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise
-----------------------------------------------------
-Tree Nodes:
-
- Name=AboveAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AboveAverageScenario
- Expected cost of (sub)tree rooted at node=-271788.5596
-
- Name=AverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AverageScenario
- Expected cost of (sub)tree rooted at node=-223231.1084
-
- Name=BelowAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-162923.5731
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- AboveAverageNode
- AverageNode
- BelowAverageNode
- Scenarios:
- AboveAverageScenario
- AverageScenario
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-107958.8966
-
-----------------------------------------------------
-Scenarios:
-
- Name=AboveAverageScenario
- Probability=0.3333
- Leaf Node=AboveAverageNode
- Tree node sequence:
- RootNode
- AboveAverageNode
- Stage= FirstStage Cost=111355.5172
- Stage= SecondStage Cost=-271788.5596
- Total scenario cost=-160433.0424
-
- Name=AverageScenario
- Probability=0.3333
- Leaf Node=AverageNode
- Tree node sequence:
- RootNode
- AverageNode
- Stage= FirstStage Cost=111355.5172
- Stage= SecondStage Cost=-223231.1084
- Total scenario cost=-111875.5913
-
- Name=BelowAverageScenario
- Probability=0.3333
- Leaf Node=BelowAverageNode
- Tree node sequence:
- RootNode
- BelowAverageNode
- Stage= FirstStage Cost=111355.5172
- Stage= SecondStage Cost=-162923.5731
- Total scenario cost=-51568.0560
-
-----------------------------------------------------
-
-Total PH execution time=0.76 seconds
-
-Scenario tree solution written to file=ph_solution.json
-Shutting down Pyro solver components
-Dispatcher received request to shut down - initiating...
-
-Total execution time=4.09 seconds
-Name Server gracefully stopped.
-Lost connection to dispatch server - shutting down...
-Lost connection to dispatch server - shutting down...
-Lost connection to dispatch server - shutting down...
diff --git a/pyomo/pysp/tests/examples/baselines/TestPHFarmerPHPyro.test4.baseline b/pyomo/pysp/tests/examples/baselines/TestPHFarmerPHPyro.test4.baseline
deleted file mode 100644
index 15f051b654f..00000000000
--- a/pyomo/pysp/tests/examples/baselines/TestPHFarmerPHPyro.test4.baseline
+++ /dev/null
@@ -1,419 +0,0 @@
-*** Pyro Name Server ***
-Name server listening on: ('0.0.0.0', 9090)
-Broadcast server listening on: ('0.0.0.0', 9090)
-URI is: PYRO://10.0.0.15:9090/0a00000f15cd20a08be8744d6d95b8bb43
-URI written to: /Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/pyomo/pysp/tests/examples/Pyro_NS_URI
-Name Server started.
-User-defined PH extension module=pyomo.pysp.plugins.phhistoryextension already imported - skipping
-Dispatcher is ready.
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI:PYRO://10.0.0.15:7766/0a00000f15ce20a08be9959ea1e7bd4246
-This is worker Worker_5584@Ozymandias.local
-Listening for work from dispatcher...
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI:PYRO://10.0.0.15:7766/0a00000f15ce20a08be9959ea1e7bd4246
-This is worker Worker_5585@Ozymandias.local
-Listening for work from dispatcher...
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI:PYRO://10.0.0.15:7766/0a00000f15ce20a08be9959ea1e7bd4246
-This is worker Worker_5583@Ozymandias.local
-Listening for work from dispatcher...
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI: PYRO://10.0.0.15:7766/0a00000f15ce20a08be9959ea1e7bd4246
-This is client 5586@Ozymandias.local
-Initializing PH
-
-User-defined PH solution writer module=pyomo.pysp.plugins.jsonsolutionwriter already imported - skipping
-Starting PH
-
-Initiating PH iteration=0
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.2540 First stage cost avg= 113494.4444 Max-Min=10416.67
-Cumulative run-time=0.03 seconds
-
-Initiating PH iteration=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.1259 First stage cost avg= 113107.2221 Max-Min= 6943.89
-Cumulative run-time=0.14 seconds
-
-Initiating PH iteration=2
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0816 First stage cost avg= 112954.6296 Max-Min= 2234.82
-Cumulative run-time=0.20 seconds
-
-Initiating PH iteration=3
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0796 First stage cost avg= 112963.0248 Max-Min= 2375.31
-Cumulative run-time=0.26 seconds
-
-Initiating PH iteration=4
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0776 First stage cost avg= 112915.6071 Max-Min= 3047.08
-Cumulative run-time=0.33 seconds
-
-Initiating PH iteration=5
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0794 First stage cost avg= 112825.3926 Max-Min= 3339.81
-Cumulative run-time=0.39 seconds
-
-Initiating PH iteration=6
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0668 First stage cost avg= 112317.9502 Max-Min= 2019.60
-Cumulative run-time=0.45 seconds
-
-Initiating PH iteration=7
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0542 First stage cost avg= 111364.4660 Max-Min= 1181.85
-Cumulative run-time=0.52 seconds
-
-Initiating PH iteration=8
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0360 First stage cost avg= 110283.4074 Max-Min= 463.23
-Cumulative run-time=0.59 seconds
-
-Initiating PH iteration=9
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0243 First stage cost avg= 109399.2542 Max-Min= 363.90
-Cumulative run-time=0.65 seconds
-
-Initiating PH iteration=10
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0256 First stage cost avg= 108834.1930 Max-Min= 933.90
-Cumulative run-time=0.71 seconds
-
-Initiating PH iteration=11
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0248 First stage cost avg= 108575.3219 Max-Min= 918.57
-Cumulative run-time=0.77 seconds
-
-Initiating PH iteration=12
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0163 First stage cost avg= 108513.5347 Max-Min= 591.25
-Cumulative run-time=0.84 seconds
-
-Initiating PH iteration=13
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0081 First stage cost avg= 108528.2899 Max-Min= 175.95
-Cumulative run-time=0.90 seconds
-
-Initiating PH iteration=14
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0168 First stage cost avg= 108561.6577 Max-Min= 274.77
-Cumulative run-time=0.96 seconds
-
-Initiating PH iteration=15
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0163 First stage cost avg= 108604.0579 Max-Min= 295.14
-Cumulative run-time=1.03 seconds
-
-Initiating PH iteration=16
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0098 First stage cost avg= 108667.3583 Max-Min= 127.67
-Cumulative run-time=1.09 seconds
-
-Initiating PH iteration=17
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0032 First stage cost avg= 108758.4237 Max-Min= 59.69
-Cumulative run-time=1.16 seconds
-
-Initiating PH iteration=18
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0026 First stage cost avg= 108868.1277 Max-Min= 101.79
-Cumulative run-time=1.22 seconds
-
-Initiating PH iteration=19
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0039 First stage cost avg= 108975.3089 Max-Min= 73.41
-Cumulative run-time=1.28 seconds
-
-Initiating PH iteration=20
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0043 First stage cost avg= 109057.4144 Max-Min= 39.47
-Cumulative run-time=1.34 seconds
-
-Initiating PH iteration=21
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0044 First stage cost avg= 109099.7145 Max-Min= 87.57
-Cumulative run-time=1.41 seconds
-
-Initiating PH iteration=22
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0040 First stage cost avg= 109099.1239 Max-Min= 104.22
-Cumulative run-time=1.47 seconds
-
-Initiating PH iteration=23
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0032 First stage cost avg= 109062.8322 Max-Min= 88.54
-Cumulative run-time=1.53 seconds
-
-Initiating PH iteration=24
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0021 First stage cost avg= 109004.1156 Max-Min= 54.49
-Cumulative run-time=1.60 seconds
-
-Initiating PH iteration=25
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0008 First stage cost avg= 108937.8039 Max-Min= 16.89
-Cumulative run-time=1.66 seconds
-
-Initiating PH iteration=26
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0005 First stage cost avg= 108876.8822 Max-Min= 14.27
-Cumulative run-time=1.73 seconds
-
-Initiating PH iteration=27
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0015 First stage cost avg= 108830.6201 Max-Min= 34.81
-Cumulative run-time=1.81 seconds
-
-Initiating PH iteration=28
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0021 First stage cost avg= 108803.9655 Max-Min= 44.57
-Cumulative run-time=1.87 seconds
-
-Initiating PH iteration=29
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0023 First stage cost avg= 108797.7661 Max-Min= 45.24
-Cumulative run-time=1.94 seconds
-
-Initiating PH iteration=30
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0020 First stage cost avg= 108809.4793 Max-Min= 39.01
-Cumulative run-time=2.00 seconds
-
-Initiating PH iteration=31
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0015 First stage cost avg= 108834.1639 Max-Min= 28.07
-Cumulative run-time=2.07 seconds
-
-Initiating PH iteration=32
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0008 First stage cost avg= 108865.6237 Max-Min= 14.67
-Cumulative run-time=2.13 seconds
-
-Initiating PH iteration=33
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0001 First stage cost avg= 108897.5679 Max-Min= 1.06
-Cumulative run-time=2.19 seconds
-PH converged - convergence metric is below threshold=0.0001
-Number of discrete variables fixed before final plugin calls=0 (total=0)
-Number of continuous variables fixed before final plugin calls=0 (total=3)
-PH algorithm history written to file=ph_history.json
-PH complete
-Convergence history:
-Iteration Metric Value
- 0 0.2540
- 1 0.1259
- 2 0.0816
- 3 0.0796
- 4 0.0776
- 5 0.0794
- 6 0.0668
- 7 0.0542
- 8 0.0360
- 9 0.0243
- 10 0.0256
- 11 0.0248
- 12 0.0163
- 13 0.0081
- 14 0.0168
- 15 0.0163
- 16 0.0098
- 17 0.0032
- 18 0.0026
- 19 0.0039
- 20 0.0043
- 21 0.0044
- 22 0.0040
- 23 0.0032
- 24 0.0021
- 25 0.0008
- 26 0.0005
- 27 0.0015
- 28 0.0021
- 29 0.0023
- 30 0.0020
- 31 0.0015
- 32 0.0008
- 33 0.0001
-
-***********************************************************************************************
->>>THE EXPECTED SUM OF THE STAGE COST VARIABLES=-108388.378639<<<
->>>***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise<<<
-***********************************************************************************************
-Final number of discrete variables fixed=0 (total=0)
-Final number of continuous variables fixed=0 (total=3)
-Final variable values:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 79.9844 80.0000 79.9768 Max-Min: 0.0232 Avg: 79.9871
- Index: [SUGAR_BEETS] Values: 249.9848 249.9770 250.0000 Max-Min: 0.0230 Avg: 249.9873
- Index: [WHEAT] Values: 170.0308 170.0230 170.0232 Max-Min: 0.0078 Avg: 170.0256
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108897.0836 108897.4725 108898.1476 Max-Min: 1.0640 Avg: 108897.5679
-Final costs:
-Scenario Tree Costs
-***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise
-----------------------------------------------------
-Tree Nodes:
-
- Name=AboveAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AboveAverageScenario
- Expected cost of (sub)tree rooted at node=-275899.3041
-
- Name=AverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AverageScenario
- Expected cost of (sub)tree rooted at node=-218243.2209
-
- Name=BelowAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-157713.8615
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- AboveAverageNode
- AverageNode
- BelowAverageNode
- Scenarios:
- AboveAverageScenario
- AverageScenario
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-108388.3786
-
-----------------------------------------------------
-Scenarios:
-
- Name=AboveAverageScenario
- Probability=0.3333
- Leaf Node=AboveAverageNode
- Tree node sequence:
- RootNode
- AboveAverageNode
- Stage= FirstStage Cost=108898.1476
- Stage= SecondStage Cost=-275899.3041
- Total scenario cost=-167001.1565
-
- Name=AverageScenario
- Probability=0.3333
- Leaf Node=AverageNode
- Tree node sequence:
- RootNode
- AverageNode
- Stage= FirstStage Cost=108897.4725
- Stage= SecondStage Cost=-218243.2209
- Total scenario cost=-109345.7484
-
- Name=BelowAverageScenario
- Probability=0.3333
- Leaf Node=BelowAverageNode
- Tree node sequence:
- RootNode
- BelowAverageNode
- Stage= FirstStage Cost=108897.0836
- Stage= SecondStage Cost=-157713.8615
- Total scenario cost=-48816.7780
-
-----------------------------------------------------
-
-Total PH execution time=2.21 seconds
-
-Scenario tree solution written to file=ph_solution.json
-Shutting down Pyro solver components
-Dispatcher received request to shut down - initiating...
-
-Total execution time=5.55 seconds
-Name Server gracefully stopped.
-Lost connection to dispatch server - shutting down...
-Lost connection to dispatch server - shutting down...
-Lost connection to dispatch server - shutting down...
diff --git a/pyomo/pysp/tests/examples/baselines/TestPHFarmerPHPyro.test5.baseline b/pyomo/pysp/tests/examples/baselines/TestPHFarmerPHPyro.test5.baseline
deleted file mode 100644
index 31b18eb5dce..00000000000
--- a/pyomo/pysp/tests/examples/baselines/TestPHFarmerPHPyro.test5.baseline
+++ /dev/null
@@ -1,419 +0,0 @@
-*** Pyro Name Server ***
-Name server listening on: ('0.0.0.0', 9090)
-Broadcast server listening on: ('0.0.0.0', 9090)
-URI is: PYRO://10.0.0.15:9090/0a00000f165320a08bec59be77bf6e11a5
-URI written to: /Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/pyomo/pysp/tests/examples/Pyro_NS_URI
-Name Server started.
-User-defined PH extension module=pyomo.pysp.plugins.phhistoryextension already imported - skipping
-Dispatcher is ready.
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI:PYRO://10.0.0.15:7766/0a00000f165420a08bed7719f9cdd57a65
-This is worker Worker_5719@Ozymandias.local
-Listening for work from dispatcher...
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI:PYRO://10.0.0.15:7766/0a00000f165420a08bed7719f9cdd57a65
-This is worker Worker_5718@Ozymandias.local
-Listening for work from dispatcher...
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI: PYRO://10.0.0.15:7766/0a00000f165420a08bed7719f9cdd57a65
-This is client 5720@Ozymandias.local
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI:PYRO://10.0.0.15:7766/0a00000f165420a08bed7719f9cdd57a65
-This is worker Worker_5717@Ozymandias.local
-Listening for work from dispatcher...
-Initializing PH
-
-User-defined PH solution writer module=pyomo.pysp.plugins.jsonsolutionwriter already imported - skipping
-Starting PH
-
-Initiating PH iteration=0
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.2540 First stage cost avg= 113494.4444 Max-Min=10416.67
-Cumulative run-time=0.03 seconds
-
-Initiating PH iteration=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.1259 First stage cost avg= 113107.2221 Max-Min= 6943.89
-Cumulative run-time=0.14 seconds
-
-Initiating PH iteration=2
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0816 First stage cost avg= 112954.6296 Max-Min= 2234.82
-Cumulative run-time=0.20 seconds
-
-Initiating PH iteration=3
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0796 First stage cost avg= 112963.0248 Max-Min= 2375.31
-Cumulative run-time=0.27 seconds
-
-Initiating PH iteration=4
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0776 First stage cost avg= 112915.6071 Max-Min= 3047.08
-Cumulative run-time=0.33 seconds
-
-Initiating PH iteration=5
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0794 First stage cost avg= 112825.3926 Max-Min= 3339.81
-Cumulative run-time=0.40 seconds
-
-Initiating PH iteration=6
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0668 First stage cost avg= 112317.9502 Max-Min= 2019.60
-Cumulative run-time=0.46 seconds
-
-Initiating PH iteration=7
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0542 First stage cost avg= 111364.4660 Max-Min= 1181.85
-Cumulative run-time=0.52 seconds
-
-Initiating PH iteration=8
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0360 First stage cost avg= 110283.4074 Max-Min= 463.23
-Cumulative run-time=0.58 seconds
-
-Initiating PH iteration=9
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0243 First stage cost avg= 109399.2542 Max-Min= 363.90
-Cumulative run-time=0.65 seconds
-
-Initiating PH iteration=10
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0256 First stage cost avg= 108834.1930 Max-Min= 933.90
-Cumulative run-time=0.71 seconds
-
-Initiating PH iteration=11
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0248 First stage cost avg= 108575.3219 Max-Min= 918.57
-Cumulative run-time=0.77 seconds
-
-Initiating PH iteration=12
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0163 First stage cost avg= 108513.5347 Max-Min= 591.25
-Cumulative run-time=0.84 seconds
-
-Initiating PH iteration=13
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0081 First stage cost avg= 108528.2899 Max-Min= 175.95
-Cumulative run-time=0.90 seconds
-
-Initiating PH iteration=14
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0168 First stage cost avg= 108561.6577 Max-Min= 274.77
-Cumulative run-time=0.96 seconds
-
-Initiating PH iteration=15
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0163 First stage cost avg= 108604.0579 Max-Min= 295.14
-Cumulative run-time=1.03 seconds
-
-Initiating PH iteration=16
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0098 First stage cost avg= 108667.3583 Max-Min= 127.67
-Cumulative run-time=1.09 seconds
-
-Initiating PH iteration=17
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0032 First stage cost avg= 108758.4237 Max-Min= 59.69
-Cumulative run-time=1.14 seconds
-
-Initiating PH iteration=18
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0026 First stage cost avg= 108868.1277 Max-Min= 101.79
-Cumulative run-time=1.21 seconds
-
-Initiating PH iteration=19
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0039 First stage cost avg= 108975.3089 Max-Min= 73.41
-Cumulative run-time=1.27 seconds
-
-Initiating PH iteration=20
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0043 First stage cost avg= 109057.4144 Max-Min= 39.47
-Cumulative run-time=1.33 seconds
-
-Initiating PH iteration=21
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0044 First stage cost avg= 109099.7145 Max-Min= 87.57
-Cumulative run-time=1.39 seconds
-
-Initiating PH iteration=22
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0040 First stage cost avg= 109099.1239 Max-Min= 104.22
-Cumulative run-time=1.46 seconds
-
-Initiating PH iteration=23
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0032 First stage cost avg= 109062.8322 Max-Min= 88.54
-Cumulative run-time=1.52 seconds
-
-Initiating PH iteration=24
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0021 First stage cost avg= 109004.1156 Max-Min= 54.49
-Cumulative run-time=1.59 seconds
-
-Initiating PH iteration=25
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0008 First stage cost avg= 108937.8039 Max-Min= 16.89
-Cumulative run-time=1.65 seconds
-
-Initiating PH iteration=26
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0005 First stage cost avg= 108876.8822 Max-Min= 14.27
-Cumulative run-time=1.71 seconds
-
-Initiating PH iteration=27
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0015 First stage cost avg= 108830.6201 Max-Min= 34.81
-Cumulative run-time=1.79 seconds
-
-Initiating PH iteration=28
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0021 First stage cost avg= 108803.9655 Max-Min= 44.57
-Cumulative run-time=1.85 seconds
-
-Initiating PH iteration=29
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0023 First stage cost avg= 108797.7661 Max-Min= 45.24
-Cumulative run-time=1.91 seconds
-
-Initiating PH iteration=30
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0020 First stage cost avg= 108809.4793 Max-Min= 39.01
-Cumulative run-time=1.98 seconds
-
-Initiating PH iteration=31
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0015 First stage cost avg= 108834.1639 Max-Min= 28.07
-Cumulative run-time=2.04 seconds
-
-Initiating PH iteration=32
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0008 First stage cost avg= 108865.6237 Max-Min= 14.67
-Cumulative run-time=2.10 seconds
-
-Initiating PH iteration=33
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0001 First stage cost avg= 108897.5679 Max-Min= 1.06
-Cumulative run-time=2.17 seconds
-PH converged - convergence metric is below threshold=0.0001
-Number of discrete variables fixed before final plugin calls=0 (total=0)
-Number of continuous variables fixed before final plugin calls=0 (total=3)
-PH algorithm history written to file=ph_history.json
-PH complete
-Convergence history:
-Iteration Metric Value
- 0 0.2540
- 1 0.1259
- 2 0.0816
- 3 0.0796
- 4 0.0776
- 5 0.0794
- 6 0.0668
- 7 0.0542
- 8 0.0360
- 9 0.0243
- 10 0.0256
- 11 0.0248
- 12 0.0163
- 13 0.0081
- 14 0.0168
- 15 0.0163
- 16 0.0098
- 17 0.0032
- 18 0.0026
- 19 0.0039
- 20 0.0043
- 21 0.0044
- 22 0.0040
- 23 0.0032
- 24 0.0021
- 25 0.0008
- 26 0.0005
- 27 0.0015
- 28 0.0021
- 29 0.0023
- 30 0.0020
- 31 0.0015
- 32 0.0008
- 33 0.0001
-
-***********************************************************************************************
->>>THE EXPECTED SUM OF THE STAGE COST VARIABLES=-108388.378639<<<
->>>***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise<<<
-***********************************************************************************************
-Final number of discrete variables fixed=0 (total=0)
-Final number of continuous variables fixed=0 (total=3)
-Final variable values:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 79.9844 80.0000 79.9768 Max-Min: 0.0232 Avg: 79.9871
- Index: [SUGAR_BEETS] Values: 249.9848 249.9770 250.0000 Max-Min: 0.0230 Avg: 249.9873
- Index: [WHEAT] Values: 170.0308 170.0230 170.0232 Max-Min: 0.0078 Avg: 170.0256
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108897.0836 108897.4725 108898.1476 Max-Min: 1.0640 Avg: 108897.5679
-Final costs:
-Scenario Tree Costs
-***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise
-----------------------------------------------------
-Tree Nodes:
-
- Name=AboveAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AboveAverageScenario
- Expected cost of (sub)tree rooted at node=-275899.3041
-
- Name=AverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AverageScenario
- Expected cost of (sub)tree rooted at node=-218243.2209
-
- Name=BelowAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-157713.8615
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- AboveAverageNode
- AverageNode
- BelowAverageNode
- Scenarios:
- AboveAverageScenario
- AverageScenario
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-108388.3786
-
-----------------------------------------------------
-Scenarios:
-
- Name=AboveAverageScenario
- Probability=0.3333
- Leaf Node=AboveAverageNode
- Tree node sequence:
- RootNode
- AboveAverageNode
- Stage= FirstStage Cost=108898.1476
- Stage= SecondStage Cost=-275899.3041
- Total scenario cost=-167001.1565
-
- Name=AverageScenario
- Probability=0.3333
- Leaf Node=AverageNode
- Tree node sequence:
- RootNode
- AverageNode
- Stage= FirstStage Cost=108897.4725
- Stage= SecondStage Cost=-218243.2209
- Total scenario cost=-109345.7484
-
- Name=BelowAverageScenario
- Probability=0.3333
- Leaf Node=BelowAverageNode
- Tree node sequence:
- RootNode
- BelowAverageNode
- Stage= FirstStage Cost=108897.0836
- Stage= SecondStage Cost=-157713.8615
- Total scenario cost=-48816.7780
-
-----------------------------------------------------
-
-Total PH execution time=2.18 seconds
-
-Scenario tree solution written to file=ph_solution.json
-Shutting down Pyro solver components
-Dispatcher received request to shut down - initiating...
-
-Total execution time=5.52 seconds
-Name Server gracefully stopped.
-Lost connection to dispatch server - shutting down...
-Lost connection to dispatch server - shutting down...
-Lost connection to dispatch server - shutting down...
diff --git a/pyomo/pysp/tests/examples/baselines/TestPHFarmerPHPyro.test6.baseline b/pyomo/pysp/tests/examples/baselines/TestPHFarmerPHPyro.test6.baseline
deleted file mode 100644
index 99884442099..00000000000
--- a/pyomo/pysp/tests/examples/baselines/TestPHFarmerPHPyro.test6.baseline
+++ /dev/null
@@ -1,228 +0,0 @@
-*** Pyro Name Server ***
-Name server listening on: ('0.0.0.0', 9090)
-Broadcast server listening on: ('0.0.0.0', 9090)
-URI is: PYRO://10.0.0.15:9090/0a00000f16dc20a08bf03718d9f0ca9113
-URI written to: /Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/pyomo/pysp/tests/examples/Pyro_NS_URI
-Name Server started.
-User-defined PH extension module=pyomo.pysp.plugins.phhistoryextension already imported - skipping
-Dispatcher is ready.
-Attempting to find Pyro dispatcher object...
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI:PYRO://10.0.0.15:7766/0a00000f16dd20a08bf15772b509d93441
-Dispatcher Object URI:PYRO://10.0.0.15:7766/0a00000f16dd20a08bf15772b509d93441
-This is worker Worker_5855@Ozymandias.local
-This is worker Worker_5856@Ozymandias.local
-Listening for work from dispatcher...
-Listening for work from dispatcher...
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI:PYRO://10.0.0.15:7766/0a00000f16dd20a08bf15772b509d93441
-This is worker Worker_5854@Ozymandias.local
-Listening for work from dispatcher...
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI: PYRO://10.0.0.15:7766/0a00000f16dd20a08bf15772b509d93441
-This is client 5857@Ozymandias.local
-Initializing PH
-
-WW PH Extension: Loading user-specified configuration from file=/Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/examples/pysp/farmer/config/wwph.cfg
-WW PH Extension: Loading variable suffixes from file=/Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/examples/pysp/farmer/config/wwph.suffixes
-User-defined PH solution writer module=pyomo.pysp.plugins.jsonsolutionwriter already imported - skipping
-Starting PH
-
-Initiating PH iteration=0
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.2540 First stage cost avg= 113494.4444 Max-Min=10416.67
-Cumulative run-time=0.06 seconds
-
-Initiating PH iteration=1
-WW PH Extension: Setting mipgap to 0.1000000, as specified in the configuration file
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.1259 First stage cost avg= 113107.2221 Max-Min= 6943.89
-Cumulative run-time=0.14 seconds
-
-Initiating PH iteration=2
-WW PH Extension: Setting mipgap to 0.0500717, based on current value of the convergence metric
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0816 First stage cost avg= 112954.6296 Max-Min= 2234.82
-Cumulative run-time=0.20 seconds
-
-Initiating PH iteration=3
-WW PH Extension: Setting mipgap to 0.0327607, based on current value of the convergence metric
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0796 First stage cost avg= 112963.0248 Max-Min= 2375.31
-Cumulative run-time=0.27 seconds
-
-Initiating PH iteration=4
-WW PH Extension: Setting mipgap to 0.0319973, based on current value of the convergence metric
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Slamming criteria are satisifed - accelerating convergence
-Slamming variable=DevotedAcreage[CORN] at tree node=RootNode to value=96.8871743104; value=node average (anywhere)
-Fixing variable=DevotedAcreage[CORN] at tree node=RootNode to value=96.8871743104; converged for 0 iterations
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0776 First stage cost avg= 112915.6071 Max-Min= 3047.08
-Cumulative run-time=0.33 seconds
-
-Initiating PH iteration=5
-WW PH Extension: Setting mipgap to 0.0312342, based on current value of the convergence metric
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=1 (total=3)
-Convergence metric= 0.0609 First stage cost avg= 112895.6887 Max-Min= 5246.95
-Cumulative run-time=0.40 seconds
-
-Initiating PH iteration=6
-WW PH Extension: Setting mipgap to 0.0247045, based on current value of the convergence metric
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Slamming criteria are satisifed - accelerating convergence
-Slamming variable=DevotedAcreage[WHEAT] at tree node=RootNode to value=137.204959966; value=node average (anywhere)
-Fixing variable=DevotedAcreage[WHEAT] at tree node=RootNode to value=137.204959966; converged for 0 iterations
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=1 (total=3)
-Convergence metric= 0.0391 First stage cost avg= 112000.8391 Max-Min= 2624.80
-Cumulative run-time=0.47 seconds
-
-Initiating PH iteration=7
-WW PH Extension: Setting mipgap to 0.0161915, based on current value of the convergence metric
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=2 (total=3)
-Convergence metric= 0.0000 First stage cost avg= 112000.8392 Max-Min= 0.00
-Cumulative run-time=0.54 seconds
-PH converged - convergence metric is below threshold=0.0001
-Number of discrete variables fixed before final plugin calls=0 (total=0)
-Number of continuous variables fixed before final plugin calls=2 (total=3)
-WW PH extension: Fixing all discrete variables that are converged at termination
-Total number of variables fixed at PH termination due to convergence=0
-PH algorithm history written to file=ph_history.json
-PH complete
-Convergence history:
-Iteration Metric Value
- 0 0.2540
- 1 0.1259
- 2 0.0816
- 3 0.0796
- 4 0.0776
- 5 0.0609
- 6 0.0391
- 7 0.0000
-
-***********************************************************************************************
->>>THE EXPECTED SUM OF THE STAGE COST VARIABLES=-107905.908751<<<
->>>***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise<<<
-***********************************************************************************************
-Final number of discrete variables fixed=0 (total=0)
-Final number of continuous variables fixed=2 (total=3)
-Final variable values:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 96.8872 96.8872 96.8872 Max-Min: 0.0000 Avg: 96.8872
- Index: [SUGAR_BEETS] Values: 265.9079 265.9079 265.9079 Max-Min: 0.0000 Avg: 265.9079
- Index: [WHEAT] Values: 137.2050 137.2050 137.2050 Max-Min: 0.0000 Avg: 137.2050
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 112000.8392 112000.8392 112000.8391 Max-Min: 0.0000 Avg: 112000.8392
-Final costs:
-Scenario Tree Costs
-***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise
-----------------------------------------------------
-Tree Nodes:
-
- Name=AboveAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AboveAverageScenario
- Expected cost of (sub)tree rooted at node=-272111.4913
-
- Name=AverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AverageScenario
- Expected cost of (sub)tree rooted at node=-223364.9995
-
- Name=BelowAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-164243.7528
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- AboveAverageNode
- AverageNode
- BelowAverageNode
- Scenarios:
- AboveAverageScenario
- AverageScenario
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-107905.9088
-
-----------------------------------------------------
-Scenarios:
-
- Name=AboveAverageScenario
- Probability=0.3333
- Leaf Node=AboveAverageNode
- Tree node sequence:
- RootNode
- AboveAverageNode
- Stage= FirstStage Cost=112000.8391
- Stage= SecondStage Cost=-272111.4913
- Total scenario cost=-160110.6522
-
- Name=AverageScenario
- Probability=0.3333
- Leaf Node=AverageNode
- Tree node sequence:
- RootNode
- AverageNode
- Stage= FirstStage Cost=112000.8392
- Stage= SecondStage Cost=-223364.9995
- Total scenario cost=-111364.1604
-
- Name=BelowAverageScenario
- Probability=0.3333
- Leaf Node=BelowAverageNode
- Tree node sequence:
- RootNode
- BelowAverageNode
- Stage= FirstStage Cost=112000.8392
- Stage= SecondStage Cost=-164243.7528
- Total scenario cost=-52242.9136
-
-----------------------------------------------------
-
-Total PH execution time=0.56 seconds
-
-Scenario tree solution written to file=ph_solution.json
-Shutting down Pyro solver components
-Dispatcher received request to shut down - initiating...
-
-Total execution time=3.85 seconds
-Name Server gracefully stopped.
-Lost connection to dispatch server - shutting down...
-Lost connection to dispatch server - shutting down...
-Lost connection to dispatch server - shutting down...
diff --git a/pyomo/pysp/tests/examples/baselines/TestPHFarmerPHPyro.test6_withef.baseline b/pyomo/pysp/tests/examples/baselines/TestPHFarmerPHPyro.test6_withef.baseline
deleted file mode 100644
index ea61e38af9f..00000000000
--- a/pyomo/pysp/tests/examples/baselines/TestPHFarmerPHPyro.test6_withef.baseline
+++ /dev/null
@@ -1,367 +0,0 @@
-*** Pyro Name Server ***
-Name server listening on: ('0.0.0.0', 9090)
-Broadcast server listening on: ('0.0.0.0', 9090)
-URI is: PYRO://10.0.0.253:9090/0a0000fda81f20b9d8ed2f95c2ec31ccc9
-URI written to: /Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/pyomo/pysp/tests/examples/Pyro_NS_URI
-Name Server started.
-User-defined PH extension module=pyomo.pysp.plugins.phhistoryextension already imported - skipping
-Dispatcher is ready.
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI:PYRO://10.0.0.253:7766/0a0000fda82020b9d8ee34c3407563775d
-This is worker Worker_43041@Ozymandias.local
-Listening for work from dispatcher...
-Attempting to find Pyro dispatcher object...
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI:PYRO://10.0.0.253:7766/0a0000fda82020b9d8ee34c3407563775d
-Dispatcher Object URI:PYRO://10.0.0.253:7766/0a0000fda82020b9d8ee34c3407563775d
-This is worker Worker_43043@Ozymandias.local
-This is worker Worker_43042@Ozymandias.local
-Listening for work from dispatcher...
-Listening for work from dispatcher...
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI: PYRO://10.0.0.253:7766/0a0000fda82020b9d8ee34c3407563775d
-This is client 43044@Ozymandias.local
-Initializing PH
-
-WW PH Extension: Loading user-specified configuration from file=/Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/examples/pysp/farmer/config/wwph.cfg
-WW PH Extension: Loading variable suffixes from file=/Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/examples/pysp/farmer/config/wwph.suffixes
-User-defined PH solution writer module=pyomo.pysp.plugins.jsonsolutionwriter already imported - skipping
-Starting PH
-
-Initiating PH iteration=0
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.2540 First stage cost avg= 113494.4444 Max-Min=10416.67
-Cumulative run-time=0.05 seconds
-
-Initiating PH iteration=1
-WW PH Extension: Setting mipgap to 0.1000000, as specified in the configuration file
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.1259 First stage cost avg= 113107.2221 Max-Min= 6943.89
-Cumulative run-time=0.15 seconds
-
-Initiating PH iteration=2
-WW PH Extension: Setting mipgap to 0.0500717, based on current value of the convergence metric
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0816 First stage cost avg= 112954.6296 Max-Min= 2234.82
-Cumulative run-time=0.21 seconds
-
-Initiating PH iteration=3
-WW PH Extension: Setting mipgap to 0.0327607, based on current value of the convergence metric
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0796 First stage cost avg= 112963.0248 Max-Min= 2375.31
-Cumulative run-time=0.28 seconds
-
-Initiating PH iteration=4
-WW PH Extension: Setting mipgap to 0.0319973, based on current value of the convergence metric
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Slamming criteria are satisifed - accelerating convergence
-Slamming variable=DevotedAcreage[CORN] at tree node=RootNode to value=96.8871743104; value=node average (anywhere)
-Fixing variable=DevotedAcreage[CORN] at tree node=RootNode to value=96.8871743104; converged for 0 iterations
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0776 First stage cost avg= 112915.6071 Max-Min= 3047.08
-Cumulative run-time=0.34 seconds
-
-Initiating PH iteration=5
-WW PH Extension: Setting mipgap to 0.0312342, based on current value of the convergence metric
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=1 (total=3)
-Convergence metric= 0.0609 First stage cost avg= 112895.6887 Max-Min= 5246.95
-Cumulative run-time=0.42 seconds
-
-Initiating PH iteration=6
-WW PH Extension: Setting mipgap to 0.0247045, based on current value of the convergence metric
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Slamming criteria are satisifed - accelerating convergence
-Slamming variable=DevotedAcreage[WHEAT] at tree node=RootNode to value=137.204959966; value=node average (anywhere)
-Fixing variable=DevotedAcreage[WHEAT] at tree node=RootNode to value=137.204959966; converged for 0 iterations
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=1 (total=3)
-Convergence metric= 0.0391 First stage cost avg= 112000.8391 Max-Min= 2624.80
-Cumulative run-time=0.48 seconds
-
-Initiating PH iteration=7
-WW PH Extension: Setting mipgap to 0.0161915, based on current value of the convergence metric
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=2 (total=3)
-Convergence metric= 0.0000 First stage cost avg= 112000.8392 Max-Min= 0.00
-Cumulative run-time=0.56 seconds
-PH converged - convergence metric is below threshold=0.0001
-Number of discrete variables fixed before final plugin calls=0 (total=0)
-Number of continuous variables fixed before final plugin calls=2 (total=3)
-WW PH extension: Fixing all discrete variables that are converged at termination
-Total number of variables fixed at PH termination due to convergence=0
-PH algorithm history written to file=ph_history.json
-PH complete
-Convergence history:
-Iteration Metric Value
- 0 0.2540
- 1 0.1259
- 2 0.0816
- 3 0.0796
- 4 0.0776
- 5 0.0609
- 6 0.0391
- 7 0.0000
-
-***********************************************************************************************
->>>THE EXPECTED SUM OF THE STAGE COST VARIABLES=-107905.908751<<<
->>>***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise<<<
-***********************************************************************************************
-Final number of discrete variables fixed=0 (total=0)
-Final number of continuous variables fixed=2 (total=3)
-Final variable values:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 96.8872 96.8872 96.8872 Max-Min: 0.0000 Avg: 96.8872
- Index: [SUGAR_BEETS] Values: 265.9079 265.9079 265.9079 Max-Min: 0.0000 Avg: 265.9079
- Index: [WHEAT] Values: 137.2050 137.2050 137.2050 Max-Min: 0.0000 Avg: 137.2050
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 112000.8392 112000.8392 112000.8391 Max-Min: 0.0000 Avg: 112000.8392
-Final costs:
-Scenario Tree Costs
-***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise
-----------------------------------------------------
-Tree Nodes:
-
- Name=AboveAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AboveAverageScenario
- Expected cost of (sub)tree rooted at node=-272111.4913
-
- Name=AverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AverageScenario
- Expected cost of (sub)tree rooted at node=-223364.9995
-
- Name=BelowAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-164243.7528
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- AboveAverageNode
- AverageNode
- BelowAverageNode
- Scenarios:
- AboveAverageScenario
- AverageScenario
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-107905.9088
-
-----------------------------------------------------
-Scenarios:
-
- Name=AboveAverageScenario
- Probability=0.3333
- Leaf Node=AboveAverageNode
- Tree node sequence:
- RootNode
- AboveAverageNode
- Stage= FirstStage Cost=112000.8391
- Stage= SecondStage Cost=-272111.4913
- Total scenario cost=-160110.6522
-
- Name=AverageScenario
- Probability=0.3333
- Leaf Node=AverageNode
- Tree node sequence:
- RootNode
- AverageNode
- Stage= FirstStage Cost=112000.8392
- Stage= SecondStage Cost=-223364.9995
- Total scenario cost=-111364.1604
-
- Name=BelowAverageScenario
- Probability=0.3333
- Leaf Node=BelowAverageNode
- Tree node sequence:
- RootNode
- BelowAverageNode
- Stage= FirstStage Cost=112000.8392
- Stage= SecondStage Cost=-164243.7528
- Total scenario cost=-52242.9136
-
-----------------------------------------------------
-
-Total PH execution time=0.58 seconds
-
-Scenario tree solution written to file=ph_solution.json
-Constructing scenario instances for extensive form solve
-Pushing fixed variable statuses to scenario instances
-Number of discrete variables fixed prior to ef creation=0 (total=0)
-Number of continuous variables fixed prior to ef creation=2 (total=3)
-Creating extensive form for remainder problem
-Time to construct extensive form instance=0.00 seconds
-Queuing extensive form solve
-Waiting for extensive form solve
-Done with extensive form solve - loading results
-Storing solution in scenario tree
-Time to solve and load results for the extensive form=0.02 seconds
-
-***********************************************************************************************
->>>THE EXPECTED SUM OF THE STAGE COST VARIABLES=-107905.908903<<<
-***********************************************************************************************
-
-Extensive form solution:
-----------------------------------------------------
-Tree Nodes:
-
- Name=AboveAverageNode
- Stage=SecondStage
- Parent=RootNode
- Variables:
- QuantitySubQuotaSold[CORN]=108.793827517
- QuantitySubQuotaSold[SUGAR_BEETS]=6000.0
- QuantitySubQuotaSold[WHEAT]=211.614879899
- QuantitySuperQuotaSold[SUGAR_BEETS]=381.788777359
-
- Name=AverageNode
- Stage=SecondStage
- Parent=RootNode
- Variables:
- QuantitySubQuotaSold[CORN]=50.6615229312
- QuantitySubQuotaSold[SUGAR_BEETS]=5318.15731447
- QuantitySubQuotaSold[WHEAT]=143.012399916
-
- Name=BelowAverageNode
- Stage=SecondStage
- Parent=RootNode
- Variables:
- QuantityPurchased[CORN]=7.47078165504
- QuantitySubQuotaSold[SUGAR_BEETS]=4254.52585157
- QuantitySubQuotaSold[WHEAT]=74.4099199326
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Variables:
- DevotedAcreage[CORN]=96.8871743104
- DevotedAcreage[SUGAR_BEETS]=265.907865723
- DevotedAcreage[WHEAT]=137.204959966
-
-
-Extensive form costs:
-Scenario Tree Costs
-***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise
-----------------------------------------------------
-Tree Nodes:
-
- Name=AboveAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AboveAverageScenario
- Expected cost of (sub)tree rooted at node=-272111.4915
-
- Name=AverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AverageScenario
- Expected cost of (sub)tree rooted at node=-223364.9997
-
- Name=BelowAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-164243.7529
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- AboveAverageNode
- AverageNode
- BelowAverageNode
- Scenarios:
- AboveAverageScenario
- AverageScenario
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-107905.9089
-
-----------------------------------------------------
-Scenarios:
-
- Name=AboveAverageScenario
- Probability=0.3333
- Leaf Node=AboveAverageNode
- Tree node sequence:
- RootNode
- AboveAverageNode
- Stage= FirstStage Cost=112000.8392
- Stage= SecondStage Cost=-272111.4915
- Total scenario cost=-160110.6523
-
- Name=AverageScenario
- Probability=0.3333
- Leaf Node=AverageNode
- Tree node sequence:
- RootNode
- AverageNode
- Stage= FirstStage Cost=112000.8392
- Stage= SecondStage Cost=-223364.9997
- Total scenario cost=-111364.1606
-
- Name=BelowAverageScenario
- Probability=0.3333
- Leaf Node=BelowAverageNode
- Tree node sequence:
- RootNode
- BelowAverageNode
- Stage= FirstStage Cost=112000.8392
- Stage= SecondStage Cost=-164243.7529
- Total scenario cost=-52242.9137
-
-----------------------------------------------------
-Scenario tree solution written to file=postphef_solution.json
-Shutting down Pyro solver components
-Dispatcher received request to shut down - initiating...
-
-Total execution time=3.95 seconds
-Name Server gracefully stopped.
-Lost connection to dispatch server - shutting down...
-Lost connection to dispatch server - shutting down...
-Lost connection to dispatch server - shutting down...
diff --git a/pyomo/pysp/tests/examples/baselines/TestPHFarmerPHPyro.test7.baseline b/pyomo/pysp/tests/examples/baselines/TestPHFarmerPHPyro.test7.baseline
deleted file mode 100644
index 71e1fdb59c6..00000000000
--- a/pyomo/pysp/tests/examples/baselines/TestPHFarmerPHPyro.test7.baseline
+++ /dev/null
@@ -1,533 +0,0 @@
-*** Pyro Name Server ***
-Name server listening on: ('0.0.0.0', 9090)
-Broadcast server listening on: ('0.0.0.0', 9090)
-URI is: PYRO://10.0.0.11:9090/0a00000b102cf20a83436a8e169b281531d
-URI written to: /Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/pyomo/pysp/tests/examples/Pyro_NS_URI
-Name Server started.
-User-defined PH extension module=pyomo.pysp.plugins.phhistoryextension already imported - skipping
-User-defined PH extension module=pyomo.pysp.plugins.phboundextension already imported - skipping
-Dispatcher is ready.
-Attempting to find Pyro dispatcher object...
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI:PYRO://10.0.0.11:7766/0a00000b102d020a83437c72d1a965e5baf
-This is worker Worker_66259@Ozymandias.local
-Listening for work from dispatcher...
-Dispatcher Object URI:PYRO://10.0.0.11:7766/0a00000b102d020a83437c72d1a965e5baf
-This is worker Worker_66258@Ozymandias.local
-Listening for work from dispatcher...
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI:PYRO://10.0.0.11:7766/0a00000b102d020a83437c72d1a965e5baf
-This is worker Worker_66257@Ozymandias.local
-Listening for work from dispatcher...
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI: PYRO://10.0.0.11:7766/0a00000b102d020a83437c72d1a965e5baf
-This is client 66260@Ozymandias.local
-Initializing PH
-
-phboundextension using default update interval=1
-User-defined PH solution writer module=pyomo.pysp.plugins.jsonsolutionwriter already imported - skipping
-Starting PH
-
-Initiating PH iteration=0
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-115405.5556
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.2540 First stage cost avg= 113494.4444 Max-Min=10416.67
-Cumulative run-time=0.05 seconds
-
-Initiating PH iteration=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-112378.3951
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.1259 First stage cost avg= 113107.2221 Max-Min= 6943.89
-Cumulative run-time=0.23 seconds
-
-Initiating PH iteration=2
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-114092.2009
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0816 First stage cost avg= 112954.6296 Max-Min= 2234.82
-Cumulative run-time=0.38 seconds
-
-Initiating PH iteration=3
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-111905.7747
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0796 First stage cost avg= 112963.0248 Max-Min= 2375.31
-Cumulative run-time=0.52 seconds
-
-Initiating PH iteration=4
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110093.7884
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0776 First stage cost avg= 112915.6071 Max-Min= 3047.08
-Cumulative run-time=0.67 seconds
-
-Initiating PH iteration=5
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-109499.5161
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0794 First stage cost avg= 112825.3926 Max-Min= 3339.81
-Cumulative run-time=0.82 seconds
-
-Initiating PH iteration=6
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-108931.8046
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0668 First stage cost avg= 112317.9502 Max-Min= 2019.60
-Cumulative run-time=0.96 seconds
-
-Initiating PH iteration=7
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110122.0019
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0542 First stage cost avg= 111364.4660 Max-Min= 1181.85
-Cumulative run-time=1.11 seconds
-
-Initiating PH iteration=8
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-111334.7018
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0360 First stage cost avg= 110283.4074 Max-Min= 463.23
-Cumulative run-time=1.25 seconds
-
-Initiating PH iteration=9
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-111609.8143
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0243 First stage cost avg= 109399.2542 Max-Min= 363.90
-Cumulative run-time=1.40 seconds
-
-Initiating PH iteration=10
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-111298.1197
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0256 First stage cost avg= 108834.1930 Max-Min= 933.90
-Cumulative run-time=1.54 seconds
-
-Initiating PH iteration=11
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110209.1867
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0248 First stage cost avg= 108575.3219 Max-Min= 918.57
-Cumulative run-time=1.69 seconds
-
-Initiating PH iteration=12
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-109115.6506
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0163 First stage cost avg= 108513.5347 Max-Min= 591.25
-Cumulative run-time=1.84 seconds
-
-Initiating PH iteration=13
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-108676.3770
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0081 First stage cost avg= 108528.2899 Max-Min= 175.95
-Cumulative run-time=1.99 seconds
-
-Initiating PH iteration=14
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-108716.2952
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0168 First stage cost avg= 108561.6577 Max-Min= 274.77
-Cumulative run-time=2.14 seconds
-
-Initiating PH iteration=15
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-108567.8281
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0163 First stage cost avg= 108604.0579 Max-Min= 295.14
-Cumulative run-time=2.29 seconds
-
-Initiating PH iteration=16
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-108440.1576
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0098 First stage cost avg= 108667.3583 Max-Min= 127.67
-Cumulative run-time=2.44 seconds
-
-Initiating PH iteration=17
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-108508.3933
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0032 First stage cost avg= 108758.4237 Max-Min= 59.69
-Cumulative run-time=2.58 seconds
-
-Initiating PH iteration=18
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-108542.0161
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0026 First stage cost avg= 108868.1277 Max-Min= 101.79
-Cumulative run-time=2.72 seconds
-
-Initiating PH iteration=19
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-108541.9306
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0039 First stage cost avg= 108975.3089 Max-Min= 73.41
-Cumulative run-time=2.87 seconds
-
-Initiating PH iteration=20
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-108516.4781
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0043 First stage cost avg= 109057.4144 Max-Min= 39.47
-Cumulative run-time=3.01 seconds
-
-Initiating PH iteration=21
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-108488.2878
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0044 First stage cost avg= 109099.7145 Max-Min= 87.57
-Cumulative run-time=3.17 seconds
-
-Initiating PH iteration=22
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-108441.5390
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0040 First stage cost avg= 109099.1239 Max-Min= 104.22
-Cumulative run-time=3.32 seconds
-
-Initiating PH iteration=23
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-108399.9641
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0032 First stage cost avg= 109062.8322 Max-Min= 88.54
-Cumulative run-time=3.46 seconds
-
-Initiating PH iteration=24
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-108503.2120
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0021 First stage cost avg= 109004.1156 Max-Min= 54.49
-Cumulative run-time=3.61 seconds
-
-Initiating PH iteration=25
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-108576.0350
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0008 First stage cost avg= 108937.8039 Max-Min= 16.89
-Cumulative run-time=3.75 seconds
-
-Initiating PH iteration=26
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-108599.8131
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0005 First stage cost avg= 108876.8822 Max-Min= 14.27
-Cumulative run-time=3.90 seconds
-
-Initiating PH iteration=27
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-108581.6439
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0015 First stage cost avg= 108830.6201 Max-Min= 34.81
-Cumulative run-time=4.04 seconds
-
-Initiating PH iteration=28
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-108534.4974
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0021 First stage cost avg= 108803.9655 Max-Min= 44.57
-Cumulative run-time=4.19 seconds
-
-Initiating PH iteration=29
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-108472.5688
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0023 First stage cost avg= 108797.7661 Max-Min= 45.24
-Cumulative run-time=4.33 seconds
-
-Initiating PH iteration=30
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-108408.6756
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0020 First stage cost avg= 108809.4793 Max-Min= 39.01
-Cumulative run-time=4.48 seconds
-
-Initiating PH iteration=31
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-108403.8262
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0015 First stage cost avg= 108834.1639 Max-Min= 28.07
-Cumulative run-time=4.63 seconds
-
-Initiating PH iteration=32
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-108419.0164
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0008 First stage cost avg= 108865.6237 Max-Min= 14.67
-Cumulative run-time=4.76 seconds
-
-Initiating PH iteration=33
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-108427.1508
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0001 First stage cost avg= 108897.5679 Max-Min= 1.06
-Cumulative run-time=4.92 seconds
-PH converged - convergence metric is below threshold=0.0001
-Number of discrete variables fixed before final plugin calls=0 (total=0)
-Number of continuous variables fixed before final plugin calls=0 (total=3)
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-108427.7239
-
- Iteration Bound
- Trivial -115405.555588
- 0 -112378.395124
- 1 -114092.2009
- 2 -111905.774744
- 3 -110093.788354
- 4 -109499.516145
- 5 -108931.804635
- 6 -110122.001897
- 7 -111334.701817
- 8 -111609.814338
- 9 -111298.11967
- 10 -110209.186685
- 11 -109115.65065
- 12 -108676.376969
- 13 -108716.295157
- 14 -108567.828079
- 15 -108440.157622
- 16 -108508.393308
- 17 -108542.016117
- 18 -108541.930573
- 19 -108516.478131
- 20 -108488.28782
- 21 -108441.538995
- 22 -108399.964066
- 23 -108503.212025
- 24 -108576.034986
- 25 -108599.813084
- 26 -108581.643945
- 27 -108534.497426
- 28 -108472.568809
- 29 -108408.6756
- 30 -108403.826194
- 31 -108419.01641
- 32 -108427.150791
- 33 -108427.723944
-
-Lower bound history written to file=phbound.txt
-
-Best Objective Bound: -108399.964066
-
-Best Lower Bound written to file=phbestbound.txt
-PH algorithm history written to file=ph_history.json
-PH complete
-Convergence history:
-Iteration Metric Value
- 0 0.2540
- 1 0.1259
- 2 0.0816
- 3 0.0796
- 4 0.0776
- 5 0.0794
- 6 0.0668
- 7 0.0542
- 8 0.0360
- 9 0.0243
- 10 0.0256
- 11 0.0248
- 12 0.0163
- 13 0.0081
- 14 0.0168
- 15 0.0163
- 16 0.0098
- 17 0.0032
- 18 0.0026
- 19 0.0039
- 20 0.0043
- 21 0.0044
- 22 0.0040
- 23 0.0032
- 24 0.0021
- 25 0.0008
- 26 0.0005
- 27 0.0015
- 28 0.0021
- 29 0.0023
- 30 0.0020
- 31 0.0015
- 32 0.0008
- 33 0.0001
-
-***********************************************************************************************
->>>THE EXPECTED SUM OF THE STAGE COST VARIABLES=-108388.378639<<<
->>>***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise<<<
-***********************************************************************************************
-Final number of discrete variables fixed=0 (total=0)
-Final number of continuous variables fixed=0 (total=3)
-Final variable values:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 79.9844 80.0000 79.9768 Max-Min: 0.0232 Avg: 79.9871
- Index: [SUGAR_BEETS] Values: 249.9848 249.9770 250.0000 Max-Min: 0.0230 Avg: 249.9873
- Index: [WHEAT] Values: 170.0308 170.0230 170.0232 Max-Min: 0.0078 Avg: 170.0256
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108897.0836 108897.4725 108898.1476 Max-Min: 1.0640 Avg: 108897.5679
-Final costs:
-Scenario Tree Costs
-***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise
-----------------------------------------------------
-Tree Nodes:
-
- Name=AboveAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AboveAverageScenario
- Expected cost of (sub)tree rooted at node=-275899.3041
-
- Name=AverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AverageScenario
- Expected cost of (sub)tree rooted at node=-218243.2209
-
- Name=BelowAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-157713.8615
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- AboveAverageNode
- AverageNode
- BelowAverageNode
- Scenarios:
- AboveAverageScenario
- AverageScenario
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-108388.3786
-
-----------------------------------------------------
-Scenarios:
-
- Name=AboveAverageScenario
- Probability=0.3333
- Leaf Node=AboveAverageNode
- Tree node sequence:
- RootNode
- AboveAverageNode
- Stage= FirstStage Cost=108898.1476
- Stage= SecondStage Cost=-275899.3041
- Total scenario cost=-167001.1565
-
- Name=AverageScenario
- Probability=0.3333
- Leaf Node=AverageNode
- Tree node sequence:
- RootNode
- AverageNode
- Stage= FirstStage Cost=108897.4725
- Stage= SecondStage Cost=-218243.2209
- Total scenario cost=-109345.7484
-
- Name=BelowAverageScenario
- Probability=0.3333
- Leaf Node=BelowAverageNode
- Tree node sequence:
- RootNode
- BelowAverageNode
- Stage= FirstStage Cost=108897.0836
- Stage= SecondStage Cost=-157713.8615
- Total scenario cost=-48816.7780
-
-----------------------------------------------------
-
-Total PH execution time=5.00 seconds
-
-Scenario tree solution written to file=ph_solution.json
-Shutting down Pyro solver components
-Dispatcher received request to shut down - initiating...
-
-Total execution time=8.31 seconds
-Lost connection to dispatch server - shutting down...
-Name Server gracefully stopped.
-Lost connection to dispatch server - shutting down...
-Lost connection to dispatch server - shutting down...
diff --git a/pyomo/pysp/tests/examples/baselines/TestPHFarmerPHPyro.test8.baseline b/pyomo/pysp/tests/examples/baselines/TestPHFarmerPHPyro.test8.baseline
deleted file mode 100644
index 1ee4b9370f6..00000000000
--- a/pyomo/pysp/tests/examples/baselines/TestPHFarmerPHPyro.test8.baseline
+++ /dev/null
@@ -1,1367 +0,0 @@
-*** Pyro Name Server ***
-Name server listening on: ('0.0.0.0', 9090)
-Broadcast server listening on: ('0.0.0.0', 9090)
-URI is: PYRO://10.0.0.11:9090/0a00000b103b920a8343bb29421d4cf1f8f
-URI written to: /Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/pyomo/pysp/tests/examples/Pyro_NS_URI
-Name Server started.
-User-defined PH extension module=pyomo.pysp.plugins.phhistoryextension already imported - skipping
-User-defined PH extension module=pyomo.pysp.plugins.convexhullboundextension already imported - skipping
-Dispatcher is ready.
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI:PYRO://10.0.0.11:7766/0a00000b103ba20a8343cd2993879e179fc
-This is worker Worker_66491@Ozymandias.local
-Listening for work from dispatcher...
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI:PYRO://10.0.0.11:7766/0a00000b103ba20a8343cd2993879e179fc
-This is worker Worker_66492@Ozymandias.local
-Listening for work from dispatcher...
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI:PYRO://10.0.0.11:7766/0a00000b103ba20a8343cd2993879e179fc
-This is worker Worker_66493@Ozymandias.local
-Listening for work from dispatcher...
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI: PYRO://10.0.0.11:7766/0a00000b103ba20a8343cd2993879e179fc
-This is client 66494@Ozymandias.local
-Initializing PH
-
-convexhullboundextension using default update interval=1
-WARNING: No construction rule or expression specified for constraint 'W_Balance'
-WARNING: No construction rule or expression specified for constraint 'V_Bound'
-User-defined PH solution writer module=pyomo.pysp.plugins.jsonsolutionwriter already imported - skipping
-Starting PH
-
-Initiating PH iteration=0
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-115405.5556
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.2540 First stage cost avg= 113494.4444 Max-Min=10416.67
-Cumulative run-time=0.07 seconds
-
-Initiating PH iteration=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-112378.3952
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.1259 First stage cost avg= 113107.2221 Max-Min= 6943.89
-Cumulative run-time=0.26 seconds
-
-Initiating PH iteration=2
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-119146.9138
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0816 First stage cost avg= 112954.6296 Max-Min= 2234.82
-Cumulative run-time=0.42 seconds
-
-Initiating PH iteration=3
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-122839.9373
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0796 First stage cost avg= 112963.0248 Max-Min= 2375.31
-Cumulative run-time=0.56 seconds
-
-Initiating PH iteration=4
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-115850.2283
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0776 First stage cost avg= 112915.6071 Max-Min= 3047.08
-Cumulative run-time=0.71 seconds
-
-Initiating PH iteration=5
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-114662.4278
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0794 First stage cost avg= 112825.3926 Max-Min= 3339.81
-Cumulative run-time=0.86 seconds
-
-Initiating PH iteration=6
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-114508.9364
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0726 First stage cost avg= 111425.6142 Max-Min= 3493.67
-Cumulative run-time=1.01 seconds
-
-Initiating PH iteration=7
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-114392.6225
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0844 First stage cost avg= 110005.4890 Max-Min= 3402.43
-Cumulative run-time=1.16 seconds
-
-Initiating PH iteration=8
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-116760.9510
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0727 First stage cost avg= 108759.9444 Max-Min= 2312.53
-Cumulative run-time=1.31 seconds
-
-Initiating PH iteration=9
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-115713.7704
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0636 First stage cost avg= 107649.1713 Max-Min= 2611.98
-Cumulative run-time=1.48 seconds
-
-Initiating PH iteration=10
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-114886.9774
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0786 First stage cost avg= 106975.2119 Max-Min= 3852.20
-Cumulative run-time=1.63 seconds
-
-Initiating PH iteration=11
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-114142.6745
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0822 First stage cost avg= 106779.6625 Max-Min= 3679.63
-Cumulative run-time=1.78 seconds
-
-Initiating PH iteration=12
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-112524.0431
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0773 First stage cost avg= 106949.8534 Max-Min= 3195.33
-Cumulative run-time=1.96 seconds
-
-Initiating PH iteration=13
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-111354.3497
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0690 First stage cost avg= 107328.8057 Max-Min= 2823.03
-Cumulative run-time=2.12 seconds
-
-Initiating PH iteration=14
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110712.3885
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0608 First stage cost avg= 107764.6036 Max-Min= 2533.82
-Cumulative run-time=2.27 seconds
-
-Initiating PH iteration=15
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110412.3233
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0550 First stage cost avg= 108156.8751 Max-Min= 2354.98
-Cumulative run-time=2.42 seconds
-
-Initiating PH iteration=16
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110290.3557
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0518 First stage cost avg= 108452.7004 Max-Min= 2257.08
-Cumulative run-time=2.59 seconds
-
-Initiating PH iteration=17
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110300.1669
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0512 First stage cost avg= 108636.8058 Max-Min= 2233.49
-Cumulative run-time=2.76 seconds
-
-Initiating PH iteration=18
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110407.5782
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0519 First stage cost avg= 108719.1582 Max-Min= 2264.78
-Cumulative run-time=2.92 seconds
-
-Initiating PH iteration=19
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110633.3518
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0526 First stage cost avg= 108723.1781 Max-Min= 2324.13
-Cumulative run-time=3.07 seconds
-
-Initiating PH iteration=20
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110837.3428
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0533 First stage cost avg= 108676.4444 Max-Min= 2388.98
-Cumulative run-time=3.23 seconds
-
-Initiating PH iteration=21
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110971.6327
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0546 First stage cost avg= 108604.4548 Max-Min= 2445.40
-Cumulative run-time=3.38 seconds
-
-Initiating PH iteration=22
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-111036.8465
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0556 First stage cost avg= 108527.2174 Max-Min= 2487.05
-Cumulative run-time=3.53 seconds
-
-Initiating PH iteration=23
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-111046.0537
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0564 First stage cost avg= 108458.0853 Max-Min= 2512.69
-Cumulative run-time=3.68 seconds
-
-Initiating PH iteration=24
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-111045.3417
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0569 First stage cost avg= 108404.1369 Max-Min= 2524.20
-Cumulative run-time=3.83 seconds
-
-Initiating PH iteration=25
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-111047.7122
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0570 First stage cost avg= 108367.4323 Max-Min= 2525.00
-Cumulative run-time=3.99 seconds
-
-Initiating PH iteration=26
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-111034.9673
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0570 First stage cost avg= 108346.6000 Max-Min= 2518.95
-Cumulative run-time=4.15 seconds
-
-Initiating PH iteration=27
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-111015.0786
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0569 First stage cost avg= 108338.3666 Max-Min= 2509.55
-Cumulative run-time=4.32 seconds
-
-Initiating PH iteration=28
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110994.0589
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0568 First stage cost avg= 108338.8015 Max-Min= 2499.51
-Cumulative run-time=4.47 seconds
-
-Initiating PH iteration=29
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110975.7531
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0566 First stage cost avg= 108344.1874 Max-Min= 2490.61
-Cumulative run-time=4.64 seconds
-
-Initiating PH iteration=30
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110962.0614
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0564 First stage cost avg= 108351.5198 Max-Min= 2483.77
-Cumulative run-time=4.79 seconds
-
-Initiating PH iteration=31
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110953.3937
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108358.6998 Max-Min= 2479.23
-Cumulative run-time=4.95 seconds
-
-Initiating PH iteration=32
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110949.1875
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0562 First stage cost avg= 108364.5087 Max-Min= 2476.77
-Cumulative run-time=5.10 seconds
-
-Initiating PH iteration=33
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110948.3798
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0562 First stage cost avg= 108368.4521 Max-Min= 2475.96
-Cumulative run-time=5.26 seconds
-
-Initiating PH iteration=34
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110949.7749
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0562 First stage cost avg= 108370.5509 Max-Min= 2476.24
-Cumulative run-time=5.41 seconds
-
-Initiating PH iteration=35
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110952.2889
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0562 First stage cost avg= 108371.1311 Max-Min= 2477.13
-Cumulative run-time=5.58 seconds
-
-Initiating PH iteration=36
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110955.0811
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0562 First stage cost avg= 108370.6488 Max-Min= 2478.22
-Cumulative run-time=5.74 seconds
-
-Initiating PH iteration=37
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110957.5941
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108369.5627 Max-Min= 2479.26
-Cumulative run-time=5.91 seconds
-
-Initiating PH iteration=38
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110959.5335
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108368.2571 Max-Min= 2480.08
-Cumulative run-time=6.07 seconds
-
-Initiating PH iteration=39
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110960.8119
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108367.0073 Max-Min= 2480.63
-Cumulative run-time=6.24 seconds
-
-Initiating PH iteration=40
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110961.4827
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108365.9766 Max-Min= 2480.92
-Cumulative run-time=6.40 seconds
-
-Initiating PH iteration=41
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110961.6761
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108365.2327 Max-Min= 2481.01
-Cumulative run-time=6.56 seconds
-
-Initiating PH iteration=42
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110961.5481
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.7733 Max-Min= 2480.94
-Cumulative run-time=6.71 seconds
-
-Initiating PH iteration=43
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110961.2454
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.5535 Max-Min= 2480.80
-Cumulative run-time=6.88 seconds
-
-Initiating PH iteration=44
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110960.8855
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.5090 Max-Min= 2480.63
-Cumulative run-time=7.08 seconds
-
-Initiating PH iteration=45
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110960.5490
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.5736 Max-Min= 2480.47
-Cumulative run-time=7.24 seconds
-
-Initiating PH iteration=46
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110960.2811
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.6907 Max-Min= 2480.34
-Cumulative run-time=7.40 seconds
-
-Initiating PH iteration=47
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110960.0984
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.8179 Max-Min= 2480.24
-Cumulative run-time=7.56 seconds
-
-Initiating PH iteration=48
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110959.9970
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9287 Max-Min= 2480.19
-Cumulative run-time=7.71 seconds
-
-Initiating PH iteration=49
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110959.9616
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108365.0097 Max-Min= 2480.16
-Cumulative run-time=7.87 seconds
-
-Initiating PH iteration=50
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110959.9725
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108365.0582 Max-Min= 2480.16
-Cumulative run-time=8.04 seconds
-
-Initiating PH iteration=51
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110960.0094
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108365.0782 Max-Min= 2480.17
-Cumulative run-time=8.19 seconds
-
-Initiating PH iteration=52
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110960.0563
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108365.0767 Max-Min= 2480.19
-Cumulative run-time=8.35 seconds
-
-Initiating PH iteration=53
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110960.1019
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108365.0617 Max-Min= 2480.21
-Cumulative run-time=8.53 seconds
-
-Initiating PH iteration=54
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110960.1392
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108365.0405 Max-Min= 2480.23
-Cumulative run-time=8.69 seconds
-
-Initiating PH iteration=55
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110960.1656
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108365.0185 Max-Min= 2480.24
-Cumulative run-time=8.84 seconds
-
-Initiating PH iteration=56
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110960.1811
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9993 Max-Min= 2480.24
-Cumulative run-time=9.00 seconds
-
-Initiating PH iteration=57
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110960.1874
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9846 Max-Min= 2480.25
-Cumulative run-time=9.16 seconds
-
-Initiating PH iteration=58
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110960.1871
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9749 Max-Min= 2480.25
-Cumulative run-time=9.32 seconds
-
-Initiating PH iteration=59
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110960.1829
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9697 Max-Min= 2480.25
-Cumulative run-time=9.48 seconds
-
-Initiating PH iteration=60
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110960.1770
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9679 Max-Min= 2480.24
-Cumulative run-time=9.65 seconds
-
-Initiating PH iteration=61
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110960.1710
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9684 Max-Min= 2480.24
-Cumulative run-time=9.81 seconds
-
-Initiating PH iteration=62
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110960.1659
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9701 Max-Min= 2480.24
-Cumulative run-time=9.97 seconds
-
-Initiating PH iteration=63
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110960.1622
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9723 Max-Min= 2480.24
-Cumulative run-time=10.13 seconds
-
-Initiating PH iteration=64
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110960.1599
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9743 Max-Min= 2480.23
-Cumulative run-time=10.31 seconds
-
-Initiating PH iteration=65
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110960.1589
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9759 Max-Min= 2480.23
-Cumulative run-time=10.48 seconds
-
-Initiating PH iteration=66
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110960.1588
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9770 Max-Min= 2480.23
-Cumulative run-time=10.64 seconds
-
-Initiating PH iteration=67
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110960.1593
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9775 Max-Min= 2480.23
-Cumulative run-time=10.82 seconds
-
-Initiating PH iteration=68
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110960.1600
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9776 Max-Min= 2480.23
-Cumulative run-time=11.00 seconds
-
-Initiating PH iteration=69
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110960.1608
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9775 Max-Min= 2480.23
-Cumulative run-time=11.18 seconds
-
-Initiating PH iteration=70
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110960.1615
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9771 Max-Min= 2480.23
-Cumulative run-time=11.35 seconds
-
-Initiating PH iteration=71
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110960.1620
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9768 Max-Min= 2480.23
-Cumulative run-time=11.52 seconds
-
-Initiating PH iteration=72
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110960.1624
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9764 Max-Min= 2480.23
-Cumulative run-time=11.69 seconds
-
-Initiating PH iteration=73
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110960.1626
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9761 Max-Min= 2480.23
-Cumulative run-time=11.88 seconds
-
-Initiating PH iteration=74
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110960.1626
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9759 Max-Min= 2480.23
-Cumulative run-time=12.04 seconds
-
-Initiating PH iteration=75
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110960.1625
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9758 Max-Min= 2480.23
-Cumulative run-time=12.25 seconds
-
-Initiating PH iteration=76
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110960.1624
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9758 Max-Min= 2480.23
-Cumulative run-time=12.41 seconds
-
-Initiating PH iteration=77
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110960.1623
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9758 Max-Min= 2480.23
-Cumulative run-time=12.59 seconds
-
-Initiating PH iteration=78
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110960.1622
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9758 Max-Min= 2480.23
-Cumulative run-time=12.77 seconds
-
-Initiating PH iteration=79
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110960.1622
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9758 Max-Min= 2480.23
-Cumulative run-time=12.94 seconds
-
-Initiating PH iteration=80
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110960.1621
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9759 Max-Min= 2480.23
-Cumulative run-time=13.12 seconds
-
-Initiating PH iteration=81
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110960.1619
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9760 Max-Min= 2480.23
-Cumulative run-time=13.30 seconds
-
-Initiating PH iteration=82
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110960.1618
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9760 Max-Min= 2480.23
-Cumulative run-time=13.47 seconds
-
-Initiating PH iteration=83
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110960.1619
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9761 Max-Min= 2480.23
-Cumulative run-time=13.65 seconds
-
-Initiating PH iteration=84
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110960.1620
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9760 Max-Min= 2480.23
-Cumulative run-time=13.83 seconds
-
-Initiating PH iteration=85
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110960.1621
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9760 Max-Min= 2480.23
-Cumulative run-time=13.99 seconds
-
-Initiating PH iteration=86
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110960.1622
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9759 Max-Min= 2480.23
-Cumulative run-time=14.17 seconds
-
-Initiating PH iteration=87
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110960.1622
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9759 Max-Min= 2480.23
-Cumulative run-time=14.34 seconds
-
-Initiating PH iteration=88
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110960.1623
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9758 Max-Min= 2480.23
-Cumulative run-time=14.52 seconds
-
-Initiating PH iteration=89
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110960.1623
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9758 Max-Min= 2480.23
-Cumulative run-time=14.70 seconds
-
-Initiating PH iteration=90
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110960.1623
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9757 Max-Min= 2480.23
-Cumulative run-time=14.88 seconds
-
-Initiating PH iteration=91
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110960.1623
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9757 Max-Min= 2480.23
-Cumulative run-time=15.05 seconds
-
-Initiating PH iteration=92
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110960.1623
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9757 Max-Min= 2480.23
-Cumulative run-time=15.23 seconds
-
-Initiating PH iteration=93
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110960.1623
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9757 Max-Min= 2480.23
-Cumulative run-time=15.41 seconds
-
-Initiating PH iteration=94
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110960.1622
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9757 Max-Min= 2480.23
-Cumulative run-time=15.58 seconds
-
-Initiating PH iteration=95
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110960.1622
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9757 Max-Min= 2480.23
-Cumulative run-time=15.76 seconds
-
-Initiating PH iteration=96
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110960.1622
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9757 Max-Min= 2480.23
-Cumulative run-time=15.94 seconds
-
-Initiating PH iteration=97
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110960.1622
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9758 Max-Min= 2480.23
-Cumulative run-time=16.12 seconds
-
-Initiating PH iteration=98
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110960.1622
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9758 Max-Min= 2480.23
-Cumulative run-time=16.30 seconds
-
-Initiating PH iteration=99
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110960.1622
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9758 Max-Min= 2480.23
-Cumulative run-time=16.48 seconds
-
-Initiating PH iteration=100
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110960.1622
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9758 Max-Min= 2480.23
-Cumulative run-time=16.66 seconds
-Halting PH - reached maximal iteration count=100
-Number of discrete variables fixed before final plugin calls=0 (total=0)
-Number of continuous variables fixed before final plugin calls=0 (total=3)
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110960.1622
-
- Iteration Bound
- Trivial -115405.555588
- 0 -112378.395154
- 1 -119146.913826
- 2 -122839.937276
- 3 -115850.228262
- 4 -114662.427763
- 5 -114508.936391
- 6 -114392.622476
- 7 -116760.95099
- 8 -115713.770411
- 9 -114886.977381
- 10 -114142.674474
- 11 -112524.04308
- 12 -111354.349714
- 13 -110712.388487
- 14 -110412.32327
- 15 -110290.355717
- 16 -110300.166904
- 17 -110407.578228
- 18 -110633.351824
- 19 -110837.34279
- 20 -110971.63266
- 21 -111036.846504
- 22 -111046.05369
- 23 -111045.341675
- 24 -111047.71221
- 25 -111034.967277
- 26 -111015.078589
- 27 -110994.058898
- 28 -110975.753079
- 29 -110962.061428
- 30 -110953.393719
- 31 -110949.187454
- 32 -110948.379773
- 33 -110949.774873
- 34 -110952.288918
- 35 -110955.081078
- 36 -110957.594134
- 37 -110959.533471
- 38 -110960.811919
- 39 -110961.482721
- 40 -110961.676069
- 41 -110961.548051
- 42 -110961.245392
- 43 -110960.885485
- 44 -110960.548967
- 45 -110960.281111
- 46 -110960.098373
- 47 -110959.997019
- 48 -110959.961634
- 49 -110959.972452
- 50 -110960.009379
- 51 -110960.056336
- 52 -110960.101879
- 53 -110960.139245
- 54 -110960.165621
- 55 -110960.181069
- 56 -110960.187384
- 57 -110960.18713
- 58 -110960.182925
- 59 -110960.176997
- 60 -110960.17098
- 61 -110960.165883
- 62 -110960.162169
- 63 -110960.159897
- 64 -110960.158872
- 65 -110960.158773
- 66 -110960.159253
- 67 -110960.16001
- 68 -110960.160813
- 69 -110960.161517
- 70 -110960.162046
- 71 -110960.162383
- 72 -110960.162551
- 73 -110960.162587
- 74 -110960.162539
- 75 -110960.162446
- 76 -110960.162341
- 77 -110960.162247
- 78 -110960.162173
- 79 -110960.162124
- 80 -110960.161856
- 81 -110960.161822
- 82 -110960.161887
- 83 -110960.161981
- 84 -110960.162077
- 85 -110960.162164
- 86 -110960.162218
- 87 -110960.16226
- 88 -110960.162284
- 89 -110960.162289
- 90 -110960.162282
- 91 -110960.162268
- 92 -110960.16225
- 93 -110960.162233
- 94 -110960.162218
- 95 -110960.162206
- 96 -110960.162196
- 97 -110960.162189
- 98 -110960.162184
- 99 -110960.16218
- 100 -110960.162232
-
-Lower bound history written to file=phbound.txt
-
-Best Objective Bound: -110290.355717
-
-Best Lower Bound written to file=phbestbound.txt
-PH algorithm history written to file=ph_history.json
-PH complete
-Convergence history:
-Iteration Metric Value
- 0 0.2540
- 1 0.1259
- 2 0.0816
- 3 0.0796
- 4 0.0776
- 5 0.0794
- 6 0.0726
- 7 0.0844
- 8 0.0727
- 9 0.0636
- 10 0.0786
- 11 0.0822
- 12 0.0773
- 13 0.0690
- 14 0.0608
- 15 0.0550
- 16 0.0518
- 17 0.0512
- 18 0.0519
- 19 0.0526
- 20 0.0533
- 21 0.0546
- 22 0.0556
- 23 0.0564
- 24 0.0569
- 25 0.0570
- 26 0.0570
- 27 0.0569
- 28 0.0568
- 29 0.0566
- 30 0.0564
- 31 0.0563
- 32 0.0562
- 33 0.0562
- 34 0.0562
- 35 0.0562
- 36 0.0562
- 37 0.0563
- 38 0.0563
- 39 0.0563
- 40 0.0563
- 41 0.0563
- 42 0.0563
- 43 0.0563
- 44 0.0563
- 45 0.0563
- 46 0.0563
- 47 0.0563
- 48 0.0563
- 49 0.0563
- 50 0.0563
- 51 0.0563
- 52 0.0563
- 53 0.0563
- 54 0.0563
- 55 0.0563
- 56 0.0563
- 57 0.0563
- 58 0.0563
- 59 0.0563
- 60 0.0563
- 61 0.0563
- 62 0.0563
- 63 0.0563
- 64 0.0563
- 65 0.0563
- 66 0.0563
- 67 0.0563
- 68 0.0563
- 69 0.0563
- 70 0.0563
- 71 0.0563
- 72 0.0563
- 73 0.0563
- 74 0.0563
- 75 0.0563
- 76 0.0563
- 77 0.0563
- 78 0.0563
- 79 0.0563
- 80 0.0563
- 81 0.0563
- 82 0.0563
- 83 0.0563
- 84 0.0563
- 85 0.0563
- 86 0.0563
- 87 0.0563
- 88 0.0563
- 89 0.0563
- 90 0.0563
- 91 0.0563
- 92 0.0563
- 93 0.0563
- 94 0.0563
- 95 0.0563
- 96 0.0563
- 97 0.0563
- 98 0.0563
- 99 0.0563
- 100 0.0563
-
-***********************************************************************************************
->>>THE EXPECTED SUM OF THE STAGE COST VARIABLES=-106862.160636<<<
->>>***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise<<<
-***********************************************************************************************
-Final number of discrete variables fixed=0 (total=0)
-Final number of continuous variables fixed=0 (total=3)
-Final variable values:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 100.0000 80.0000 87.7861 Max-Min: 20.0000 Avg: 89.2620
- Index: [SUGAR_BEETS] Values: 232.0854 233.1150 250.0000 Max-Min: 17.9146 Avg: 238.4001
- Index: [WHEAT] Values: 167.9146 186.8850 162.2139 Max-Min: 24.6711 Avg: 172.3379
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108529.3918 107042.6505 109522.8850 Max-Min: 2480.2345 Avg: 108364.9758
-Final costs:
-Scenario Tree Costs
-***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise
-----------------------------------------------------
-Tree Nodes:
-
- Name=AboveAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AboveAverageScenario
- Expected cost of (sub)tree rooted at node=-276133.5814
-
- Name=AverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AverageScenario
- Expected cost of (sub)tree rooted at node=-213268.9263
-
- Name=BelowAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-156772.1496
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- AboveAverageNode
- AverageNode
- BelowAverageNode
- Scenarios:
- AboveAverageScenario
- AverageScenario
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-106862.1606
-
-----------------------------------------------------
-Scenarios:
-
- Name=AboveAverageScenario
- Probability=0.3333
- Leaf Node=AboveAverageNode
- Tree node sequence:
- RootNode
- AboveAverageNode
- Stage= FirstStage Cost=109522.8850
- Stage= SecondStage Cost=-276133.5814
- Total scenario cost=-166610.6964
-
- Name=AverageScenario
- Probability=0.3333
- Leaf Node=AverageNode
- Tree node sequence:
- RootNode
- AverageNode
- Stage= FirstStage Cost=107042.6505
- Stage= SecondStage Cost=-213268.9263
- Total scenario cost=-106226.2758
-
- Name=BelowAverageScenario
- Probability=0.3333
- Leaf Node=BelowAverageNode
- Tree node sequence:
- RootNode
- BelowAverageNode
- Stage= FirstStage Cost=108529.3918
- Stage= SecondStage Cost=-156772.1496
- Total scenario cost=-48242.7578
-
-----------------------------------------------------
-
-Total PH execution time=16.74 seconds
-
-Scenario tree solution written to file=ph_solution.json
-Shutting down Pyro solver components
-Dispatcher received request to shut down - initiating...
-
-Total execution time=20.03 seconds
-Lost connection to dispatch server - shutting down...
-Name Server gracefully stopped.
-Lost connection to dispatch server - shutting down...
-Lost connection to dispatch server - shutting down...
diff --git a/pyomo/pysp/tests/examples/baselines/TestPHFarmerPHPyro.test9.baseline b/pyomo/pysp/tests/examples/baselines/TestPHFarmerPHPyro.test9.baseline
deleted file mode 100644
index 6d418fa16c2..00000000000
--- a/pyomo/pysp/tests/examples/baselines/TestPHFarmerPHPyro.test9.baseline
+++ /dev/null
@@ -1,278 +0,0 @@
-*** Pyro Name Server ***
-Name server listening on: ('0.0.0.0', 9090)
-Broadcast server listening on: ('0.0.0.0', 9090)
-URI is: PYRO://10.0.0.11:9090/0a00000b1069a20a8344572516e0c460c53
-URI written to: /Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/pyomo/pysp/tests/examples/Pyro_NS_URI
-Name Server started.
-User-defined PH extension module=pyomo.pysp.plugins.phhistoryextension already imported - skipping
-User-defined PH extension module=pyomo.pysp.plugins.phboundextension already imported - skipping
-Dispatcher is ready.
-Attempting to find Pyro dispatcher object...
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI:PYRO://10.0.0.11:7766/0a00000b1069b20a8344693867c9932c832
-This is worker Worker_67228@Ozymandias.local
-Listening for work from dispatcher...
-Dispatcher Object URI:PYRO://10.0.0.11:7766/0a00000b1069b20a8344693867c9932c832
-This is worker Worker_67230@Ozymandias.local
-Listening for work from dispatcher...
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI:PYRO://10.0.0.11:7766/0a00000b1069b20a8344693867c9932c832
-This is worker Worker_67229@Ozymandias.local
-Listening for work from dispatcher...
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI: PYRO://10.0.0.11:7766/0a00000b1069b20a8344693867c9932c832
-This is client 67231@Ozymandias.local
-Initializing PH
-
-phboundextension using default update interval=1
-WW PH Extension: Loading user-specified configuration from file=/Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/examples/pysp/farmer/config/wwph.cfg
-WW PH Extension: Loading variable suffixes from file=/Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/examples/pysp/farmer/config/wwph.suffixes
-User-defined PH solution writer module=pyomo.pysp.plugins.jsonsolutionwriter already imported - skipping
-Starting PH
-
-Initiating PH iteration=0
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-115405.5556
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.2540 First stage cost avg= 113494.4444 Max-Min=10416.67
-Cumulative run-time=0.06 seconds
-
-Initiating PH iteration=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-112378.3951
-WW PH Extension: Setting mipgap to 0.1000000, as specified in the configuration file
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.1259 First stage cost avg= 113107.2221 Max-Min= 6943.89
-Cumulative run-time=0.24 seconds
-
-Initiating PH iteration=2
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-WARNING: "[base]/pyomo.pysp/pyomo/pysp/plugins/phboundextension.py", 75, _compute_bound
- A nonzero mipgap was detected when using the PH bound plugin. The bound computation may as a result be conservative.
-Computed objective lower bound=-114092.2009
-WW PH Extension: Setting mipgap to 0.0500717, based on current value of the convergence metric
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0816 First stage cost avg= 112954.6296 Max-Min= 2234.82
-Cumulative run-time=0.39 seconds
-
-Initiating PH iteration=3
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-WARNING: "[base]/pyomo.pysp/pyomo/pysp/plugins/phboundextension.py", 75, _compute_bound
- A nonzero mipgap was detected when using the PH bound plugin. The bound computation may as a result be conservative.
-Computed objective lower bound=-111905.7747
-WW PH Extension: Setting mipgap to 0.0327607, based on current value of the convergence metric
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0796 First stage cost avg= 112963.0248 Max-Min= 2375.31
-Cumulative run-time=0.54 seconds
-
-Initiating PH iteration=4
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-WARNING: "[base]/pyomo.pysp/pyomo/pysp/plugins/phboundextension.py", 75, _compute_bound
- A nonzero mipgap was detected when using the PH bound plugin. The bound computation may as a result be conservative.
-Computed objective lower bound=-110093.7884
-WW PH Extension: Setting mipgap to 0.0319973, based on current value of the convergence metric
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Slamming criteria are satisifed - accelerating convergence
-Slamming variable=DevotedAcreage[CORN] at tree node=RootNode to value=96.8871743104; value=node average (anywhere)
-Fixing variable=DevotedAcreage[CORN] at tree node=RootNode to value=96.8871743104; converged for 0 iterations
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0776 First stage cost avg= 112915.6071 Max-Min= 3047.08
-Cumulative run-time=0.68 seconds
-
-Initiating PH iteration=5
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-WARNING: "[base]/pyomo.pysp/pyomo/pysp/plugins/phboundextension.py", 75, _compute_bound
- A nonzero mipgap was detected when using the PH bound plugin. The bound computation may as a result be conservative.
-Computed objective lower bound=-109499.5161
-WW PH Extension: Setting mipgap to 0.0312342, based on current value of the convergence metric
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=1 (total=3)
-Convergence metric= 0.0609 First stage cost avg= 112895.6887 Max-Min= 5246.95
-Cumulative run-time=0.84 seconds
-
-Initiating PH iteration=6
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-WARNING: "[base]/pyomo.pysp/pyomo/pysp/plugins/phboundextension.py", 75, _compute_bound
- A nonzero mipgap was detected when using the PH bound plugin. The bound computation may as a result be conservative.
-Computed objective lower bound=-109440.7805
-WW PH Extension: Setting mipgap to 0.0247045, based on current value of the convergence metric
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Slamming criteria are satisifed - accelerating convergence
-Slamming variable=DevotedAcreage[WHEAT] at tree node=RootNode to value=137.204959966; value=node average (anywhere)
-Fixing variable=DevotedAcreage[WHEAT] at tree node=RootNode to value=137.204959966; converged for 0 iterations
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=1 (total=3)
-Convergence metric= 0.0391 First stage cost avg= 112000.8391 Max-Min= 2624.80
-Cumulative run-time=1.00 seconds
-
-Initiating PH iteration=7
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-WARNING: "[base]/pyomo.pysp/pyomo/pysp/plugins/phboundextension.py", 75, _compute_bound
- A nonzero mipgap was detected when using the PH bound plugin. The bound computation may as a result be conservative.
-Computed objective lower bound=-112587.0017
-WW PH Extension: Setting mipgap to 0.0161915, based on current value of the convergence metric
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=2 (total=3)
-Convergence metric= 0.0000 First stage cost avg= 112000.8392 Max-Min= 0.00
-Cumulative run-time=1.19 seconds
-PH converged - convergence metric is below threshold=0.0001
-Number of discrete variables fixed before final plugin calls=0 (total=0)
-Number of continuous variables fixed before final plugin calls=2 (total=3)
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-WARNING: "[base]/pyomo.pysp/pyomo/pysp/plugins/phboundextension.py", 75, _compute_bound
- A nonzero mipgap was detected when using the PH bound plugin. The bound computation may as a result be conservative.
-Computed objective lower bound=-112587.0017
-
- Iteration Bound
- Trivial -115405.555588
- 0 -112378.395124
- 1 -114092.2009
- 2 -111905.774744
- 3 -110093.788354
- 4 -109499.516145
- 5 -109440.780542
- 6 -112587.001699
- 7 -112587.001701
-
-Lower bound history written to file=phbound.txt
-
-Best Objective Bound: -109440.780542
-
-Best Lower Bound written to file=phbestbound.txt
-WW PH extension: Fixing all discrete variables that are converged at termination
-Total number of variables fixed at PH termination due to convergence=0
-PH algorithm history written to file=ph_history.json
-PH complete
-Convergence history:
-Iteration Metric Value
- 0 0.2540
- 1 0.1259
- 2 0.0816
- 3 0.0796
- 4 0.0776
- 5 0.0609
- 6 0.0391
- 7 0.0000
-
-***********************************************************************************************
->>>THE EXPECTED SUM OF THE STAGE COST VARIABLES=-107905.908751<<<
->>>***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise<<<
-***********************************************************************************************
-Final number of discrete variables fixed=0 (total=0)
-Final number of continuous variables fixed=2 (total=3)
-Final variable values:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 96.8872 96.8872 96.8872 Max-Min: 0.0000 Avg: 96.8872
- Index: [SUGAR_BEETS] Values: 265.9079 265.9079 265.9079 Max-Min: 0.0000 Avg: 265.9079
- Index: [WHEAT] Values: 137.2050 137.2050 137.2050 Max-Min: 0.0000 Avg: 137.2050
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 112000.8392 112000.8392 112000.8391 Max-Min: 0.0000 Avg: 112000.8392
-Final costs:
-Scenario Tree Costs
-***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise
-----------------------------------------------------
-Tree Nodes:
-
- Name=AboveAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AboveAverageScenario
- Expected cost of (sub)tree rooted at node=-272111.4913
-
- Name=AverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AverageScenario
- Expected cost of (sub)tree rooted at node=-223364.9995
-
- Name=BelowAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-164243.7528
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- AboveAverageNode
- AverageNode
- BelowAverageNode
- Scenarios:
- AboveAverageScenario
- AverageScenario
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-107905.9088
-
-----------------------------------------------------
-Scenarios:
-
- Name=AboveAverageScenario
- Probability=0.3333
- Leaf Node=AboveAverageNode
- Tree node sequence:
- RootNode
- AboveAverageNode
- Stage= FirstStage Cost=112000.8391
- Stage= SecondStage Cost=-272111.4913
- Total scenario cost=-160110.6522
-
- Name=AverageScenario
- Probability=0.3333
- Leaf Node=AverageNode
- Tree node sequence:
- RootNode
- AverageNode
- Stage= FirstStage Cost=112000.8392
- Stage= SecondStage Cost=-223364.9995
- Total scenario cost=-111364.1604
-
- Name=BelowAverageScenario
- Probability=0.3333
- Leaf Node=BelowAverageNode
- Tree node sequence:
- RootNode
- BelowAverageNode
- Stage= FirstStage Cost=112000.8392
- Stage= SecondStage Cost=-164243.7528
- Total scenario cost=-52242.9136
-
-----------------------------------------------------
-
-Total PH execution time=1.28 seconds
-
-Scenario tree solution written to file=ph_solution.json
-Shutting down Pyro solver components
-Dispatcher received request to shut down - initiating...
-
-Total execution time=4.62 seconds
-Lost connection to dispatch server - shutting down...
-Lost connection to dispatch server - shutting down...
-Lost connection to dispatch server - shutting down...
-Name Server gracefully stopped.
diff --git a/pyomo/pysp/tests/examples/baselines/TestPHFarmerPyro.test1.baseline b/pyomo/pysp/tests/examples/baselines/TestPHFarmerPyro.test1.baseline
deleted file mode 100644
index 110c71b4fb5..00000000000
--- a/pyomo/pysp/tests/examples/baselines/TestPHFarmerPyro.test1.baseline
+++ /dev/null
@@ -1,613 +0,0 @@
-*** Pyro Name Server ***
-Name server listening on: ('0.0.0.0', 9090)
-Broadcast server listening on: ('0.0.0.0', 9090)
-URI is: PYRO://10.0.0.15:9090/0a00000f1b2f20a08c1aa0b502b30a0446
-URI written to: /Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/pyomo/pysp/tests/examples/Pyro_NS_URI
-Name Server started.
-User-defined PH extension module=pyomo.pysp.plugins.phhistoryextension already imported - skipping
-Dispatcher is ready.
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI:PYRO://10.0.0.15:7766/0a00000f1b3020a08c1b9d9f46fa27f690
-This is worker Worker_6961@Ozymandias.local
-Listening for work from dispatcher...
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI: PYRO://10.0.0.15:7766/0a00000f1b3020a08c1b9d9f46fa27f690
-This is client 6962@Ozymandias.local
-Initializing PH
-
-User-defined PH solution writer module=pyomo.pysp.plugins.jsonsolutionwriter already imported - skipping
-Starting PH
-
-Initiating PH iteration=0
-2014-05-28 17:55:02.202366: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp1d8yyq.tmpgq_PFD.pyomo.lp
-2014-05-28 17:55:02.218832: Solve completed - number of solutions=1
-2014-05-28 17:55:02.231527: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp7P0tB4.tmpbBb8OR.pyomo.lp
-2014-05-28 17:55:02.247150: Solve completed - number of solutions=1
-2014-05-28 17:55:02.259533: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp9g1Rrv.tmpBcI0_U.pyomo.lp
-2014-05-28 17:55:02.275324: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.2540 First stage cost avg= 113494.4444 Max-Min=10416.67
-Cumulative run-time=0.18 seconds
-
-Initiating PH iteration=1
-2014-05-28 17:55:02.289591: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpJzGkn6.tmproezn_.pyomo.lp
-2014-05-28 17:55:02.307313: Solve completed - number of solutions=1
-2014-05-28 17:55:02.319671: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpMDRPiI.tmpvEQHc_.pyomo.lp
-2014-05-28 17:55:02.336029: Solve completed - number of solutions=1
-2014-05-28 17:55:02.348980: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp2znmrh.tmpVLfLOv.pyomo.lp
-2014-05-28 17:55:02.365971: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.1259 First stage cost avg= 113107.2221 Max-Min= 6943.89
-Cumulative run-time=0.27 seconds
-
-Initiating PH iteration=2
-2014-05-28 17:55:02.379318: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpnTzPjc.tmplNtj6D.pyomo.lp
-2014-05-28 17:55:02.398059: Solve completed - number of solutions=1
-2014-05-28 17:55:02.411513: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpjRlOdN.tmp3F0BV8.pyomo.lp
-2014-05-28 17:55:02.428931: Solve completed - number of solutions=1
-2014-05-28 17:55:02.441311: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpNyia3a.tmp5Pie9W.pyomo.lp
-2014-05-28 17:55:02.459422: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0816 First stage cost avg= 112954.6296 Max-Min= 2234.82
-Cumulative run-time=0.36 seconds
-
-Initiating PH iteration=3
-2014-05-28 17:55:02.472841: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmputcrzV.tmpnURZlH.pyomo.lp
-2014-05-28 17:55:02.490369: Solve completed - number of solutions=1
-2014-05-28 17:55:02.502893: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpA0mtqi.tmpdBgiDt.pyomo.lp
-2014-05-28 17:55:02.520176: Solve completed - number of solutions=1
-2014-05-28 17:55:02.532784: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpMsvgaO.tmpYUoERX.pyomo.lp
-2014-05-28 17:55:02.550823: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0796 First stage cost avg= 112963.0248 Max-Min= 2375.31
-Cumulative run-time=0.45 seconds
-
-Initiating PH iteration=4
-2014-05-28 17:55:02.564500: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpkxLkYm.tmpZQXoX0.pyomo.lp
-2014-05-28 17:55:02.582347: Solve completed - number of solutions=1
-2014-05-28 17:55:02.594966: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpSH_IY1.tmpHe82Ko.pyomo.lp
-2014-05-28 17:55:02.612749: Solve completed - number of solutions=1
-2014-05-28 17:55:02.625168: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmphiSufl.tmpojO8kB.pyomo.lp
-2014-05-28 17:55:02.644396: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0776 First stage cost avg= 112915.6071 Max-Min= 3047.08
-Cumulative run-time=0.54 seconds
-
-Initiating PH iteration=5
-2014-05-28 17:55:02.657750: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpbohR0S.tmpGKxWvX.pyomo.lp
-2014-05-28 17:55:02.676250: Solve completed - number of solutions=1
-2014-05-28 17:55:02.688878: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpukwE1q.tmpzjLV0A.pyomo.lp
-2014-05-28 17:55:02.706666: Solve completed - number of solutions=1
-2014-05-28 17:55:02.719948: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpV5fQmv.tmpVXE1Xx.pyomo.lp
-2014-05-28 17:55:02.736516: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0794 First stage cost avg= 112825.3926 Max-Min= 3339.81
-Cumulative run-time=0.64 seconds
-
-Initiating PH iteration=6
-2014-05-28 17:55:02.750244: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpgMQJSf.tmpI5awvo.pyomo.lp
-2014-05-28 17:55:02.768091: Solve completed - number of solutions=1
-2014-05-28 17:55:02.780745: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpVRcjQD.tmppLncoG.pyomo.lp
-2014-05-28 17:55:02.798912: Solve completed - number of solutions=1
-2014-05-28 17:55:02.811346: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpbGfvb9.tmp_Qmzc4.pyomo.lp
-2014-05-28 17:55:02.828538: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0668 First stage cost avg= 112317.9502 Max-Min= 2019.60
-Cumulative run-time=0.73 seconds
-
-Initiating PH iteration=7
-2014-05-28 17:55:02.841927: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpeB3hq_.tmphpUdEK.pyomo.lp
-2014-05-28 17:55:02.859327: Solve completed - number of solutions=1
-2014-05-28 17:55:02.872625: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp0YHpMp.tmpUtsFO_.pyomo.lp
-2014-05-28 17:55:02.889395: Solve completed - number of solutions=1
-2014-05-28 17:55:02.901875: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmplzcQ2t.tmpQqJcsj.pyomo.lp
-2014-05-28 17:55:02.920015: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0542 First stage cost avg= 111364.4660 Max-Min= 1181.85
-Cumulative run-time=0.82 seconds
-
-Initiating PH iteration=8
-2014-05-28 17:55:02.933589: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpbWvYxy.tmpe_5YHy.pyomo.lp
-2014-05-28 17:55:02.951905: Solve completed - number of solutions=1
-2014-05-28 17:55:02.965404: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpLHGv5B.tmp5oM70h.pyomo.lp
-2014-05-28 17:55:02.984040: Solve completed - number of solutions=1
-2014-05-28 17:55:02.996505: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp9DcHjZ.tmpxS4NC7.pyomo.lp
-2014-05-28 17:55:03.013837: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0360 First stage cost avg= 110283.4074 Max-Min= 463.23
-Cumulative run-time=0.91 seconds
-
-Initiating PH iteration=9
-2014-05-28 17:55:03.027358: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp5xK4_4.tmpXEz5F6.pyomo.lp
-2014-05-28 17:55:03.047291: Solve completed - number of solutions=1
-2014-05-28 17:55:03.059819: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpIypfl3.tmpqS_Rpd.pyomo.lp
-2014-05-28 17:55:03.078343: Solve completed - number of solutions=1
-2014-05-28 17:55:03.091832: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpcV0a6q.tmp4b2q8N.pyomo.lp
-2014-05-28 17:55:03.110336: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0243 First stage cost avg= 109399.2542 Max-Min= 363.90
-Cumulative run-time=1.01 seconds
-
-Initiating PH iteration=10
-2014-05-28 17:55:03.123390: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpKV2iLa.tmprFi38Q.pyomo.lp
-2014-05-28 17:55:03.140741: Solve completed - number of solutions=1
-2014-05-28 17:55:03.154256: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmplLB_Xi.tmpBzsMhr.pyomo.lp
-2014-05-28 17:55:03.172290: Solve completed - number of solutions=1
-2014-05-28 17:55:03.185591: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmppDejob.tmpArd0tX.pyomo.lp
-2014-05-28 17:55:03.203012: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0256 First stage cost avg= 108834.1930 Max-Min= 933.90
-Cumulative run-time=1.10 seconds
-
-Initiating PH iteration=11
-2014-05-28 17:55:03.216511: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpMSxluL.tmpftxKcD.pyomo.lp
-2014-05-28 17:55:03.236462: Solve completed - number of solutions=1
-2014-05-28 17:55:03.249107: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpoPLZB_.tmpe7agQ9.pyomo.lp
-2014-05-28 17:55:03.267211: Solve completed - number of solutions=1
-2014-05-28 17:55:03.280216: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpht8ADp.tmpomFZyy.pyomo.lp
-2014-05-28 17:55:03.297497: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0248 First stage cost avg= 108575.3219 Max-Min= 918.57
-Cumulative run-time=1.20 seconds
-
-Initiating PH iteration=12
-2014-05-28 17:55:03.311420: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp0uuaIj.tmpfG5kWA.pyomo.lp
-2014-05-28 17:55:03.330743: Solve completed - number of solutions=1
-2014-05-28 17:55:03.343869: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpFCb4Rq.tmphxXZDf.pyomo.lp
-2014-05-28 17:55:03.361848: Solve completed - number of solutions=1
-2014-05-28 17:55:03.374335: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpEX_4Av.tmpejh2y3.pyomo.lp
-2014-05-28 17:55:03.391833: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0163 First stage cost avg= 108513.5347 Max-Min= 591.25
-Cumulative run-time=1.29 seconds
-
-Initiating PH iteration=13
-2014-05-28 17:55:03.405676: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp4XkwXe.tmpblFN_L.pyomo.lp
-2014-05-28 17:55:03.423091: Solve completed - number of solutions=1
-2014-05-28 17:55:03.435679: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp7AnYtR.tmpfM8Zei.pyomo.lp
-2014-05-28 17:55:03.453798: Solve completed - number of solutions=1
-2014-05-28 17:55:03.467051: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpVZyp_5.tmpNCckS1.pyomo.lp
-2014-05-28 17:55:03.483719: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0081 First stage cost avg= 108528.2899 Max-Min= 175.95
-Cumulative run-time=1.38 seconds
-
-Initiating PH iteration=14
-2014-05-28 17:55:03.497278: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpHWYCW5.tmpvUdWMX.pyomo.lp
-2014-05-28 17:55:03.516147: Solve completed - number of solutions=1
-2014-05-28 17:55:03.528784: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpLslPd1.tmplfUkiR.pyomo.lp
-2014-05-28 17:55:03.546129: Solve completed - number of solutions=1
-2014-05-28 17:55:03.558630: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpcg4q9k.tmpcHhndg.pyomo.lp
-2014-05-28 17:55:03.577367: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0168 First stage cost avg= 108561.6577 Max-Min= 274.77
-Cumulative run-time=1.48 seconds
-
-Initiating PH iteration=15
-2014-05-28 17:55:03.590069: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpEcY0dA.tmp9wwnAu.pyomo.lp
-2014-05-28 17:55:03.607715: Solve completed - number of solutions=1
-2014-05-28 17:55:03.620925: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpMaxOlt.tmpuGyQ1C.pyomo.lp
-2014-05-28 17:55:03.638065: Solve completed - number of solutions=1
-2014-05-28 17:55:03.650503: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpam3SI0.tmpV69zvp.pyomo.lp
-2014-05-28 17:55:03.668205: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0163 First stage cost avg= 108604.0579 Max-Min= 295.14
-Cumulative run-time=1.57 seconds
-
-Initiating PH iteration=16
-2014-05-28 17:55:03.681623: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpz4ktwj.tmpnF4H0B.pyomo.lp
-2014-05-28 17:55:03.699566: Solve completed - number of solutions=1
-2014-05-28 17:55:03.711925: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpAgpPRq.tmpAFkPWV.pyomo.lp
-2014-05-28 17:55:03.730117: Solve completed - number of solutions=1
-2014-05-28 17:55:03.743606: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpoSB2Kj.tmpDBQGc5.pyomo.lp
-2014-05-28 17:55:03.762593: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0098 First stage cost avg= 108667.3583 Max-Min= 127.67
-Cumulative run-time=1.66 seconds
-
-Initiating PH iteration=17
-2014-05-28 17:55:03.776957: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmppHlvav.tmpJWXhVp.pyomo.lp
-2014-05-28 17:55:03.794837: Solve completed - number of solutions=1
-2014-05-28 17:55:03.807265: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpLB001s.tmp4zYkUV.pyomo.lp
-2014-05-28 17:55:03.825186: Solve completed - number of solutions=1
-2014-05-28 17:55:03.837575: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpkgqr7J.tmp5nuMtM.pyomo.lp
-2014-05-28 17:55:03.854961: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0032 First stage cost avg= 108758.4237 Max-Min= 59.69
-Cumulative run-time=1.76 seconds
-
-Initiating PH iteration=18
-2014-05-28 17:55:03.868618: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmptij3V1.tmpBfzEpS.pyomo.lp
-2014-05-28 17:55:03.885659: Solve completed - number of solutions=1
-2014-05-28 17:55:03.899067: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp6jWCI_.tmpzGCyw6.pyomo.lp
-2014-05-28 17:55:03.916350: Solve completed - number of solutions=1
-2014-05-28 17:55:03.929886: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpmQy3fD.tmpipeBF2.pyomo.lp
-2014-05-28 17:55:03.946960: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0026 First stage cost avg= 108868.1277 Max-Min= 101.79
-Cumulative run-time=1.85 seconds
-
-Initiating PH iteration=19
-2014-05-28 17:55:03.960258: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpBIxACC.tmpPsZ4Kh.pyomo.lp
-2014-05-28 17:55:03.978607: Solve completed - number of solutions=1
-2014-05-28 17:55:03.991117: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp20H44J.tmpBONGVt.pyomo.lp
-2014-05-28 17:55:04.009372: Solve completed - number of solutions=1
-2014-05-28 17:55:04.021825: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmphLyyzA.tmpw8pcwW.pyomo.lp
-2014-05-28 17:55:04.039417: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0039 First stage cost avg= 108975.3089 Max-Min= 73.41
-Cumulative run-time=1.94 seconds
-
-Initiating PH iteration=20
-2014-05-28 17:55:04.052501: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp0JyKVg.tmpagh1xJ.pyomo.lp
-2014-05-28 17:55:04.071905: Solve completed - number of solutions=1
-2014-05-28 17:55:04.084419: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp08iYZT.tmp9zJ3q8.pyomo.lp
-2014-05-28 17:55:04.101876: Solve completed - number of solutions=1
-2014-05-28 17:55:04.115150: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpb15bMe.tmpqOQ7oC.pyomo.lp
-2014-05-28 17:55:04.131990: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0043 First stage cost avg= 109057.4144 Max-Min= 39.47
-Cumulative run-time=2.03 seconds
-
-Initiating PH iteration=21
-2014-05-28 17:55:04.162139: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmplTxJtg.tmplpY4pW.pyomo.lp
-2014-05-28 17:55:04.180542: Solve completed - number of solutions=1
-2014-05-28 17:55:04.193001: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpX7R_lm.tmpEdvU_H.pyomo.lp
-2014-05-28 17:55:04.210560: Solve completed - number of solutions=1
-2014-05-28 17:55:04.222997: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp41AUXN.tmptBTSTI.pyomo.lp
-2014-05-28 17:55:04.240315: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0044 First stage cost avg= 109099.7145 Max-Min= 87.57
-Cumulative run-time=2.14 seconds
-
-Initiating PH iteration=22
-2014-05-28 17:55:04.253882: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpLY_ZGS.tmpgovvOh.pyomo.lp
-2014-05-28 17:55:04.273822: Solve completed - number of solutions=1
-2014-05-28 17:55:04.287248: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpJjnEpp.tmppuFDd6.pyomo.lp
-2014-05-28 17:55:04.304667: Solve completed - number of solutions=1
-2014-05-28 17:55:04.318759: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpMiwaJH.tmp7yUyNm.pyomo.lp
-2014-05-28 17:55:04.335486: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0040 First stage cost avg= 109099.1239 Max-Min= 104.22
-Cumulative run-time=2.23 seconds
-
-Initiating PH iteration=23
-2014-05-28 17:55:04.349116: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpv9TTfW.tmpuaDJ9U.pyomo.lp
-2014-05-28 17:55:04.367851: Solve completed - number of solutions=1
-2014-05-28 17:55:04.380333: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp196DJx.tmpfsigeH.pyomo.lp
-2014-05-28 17:55:04.398511: Solve completed - number of solutions=1
-2014-05-28 17:55:04.410941: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpcjEVRf.tmpoik6hA.pyomo.lp
-2014-05-28 17:55:04.428030: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0032 First stage cost avg= 109062.8322 Max-Min= 88.54
-Cumulative run-time=2.33 seconds
-
-Initiating PH iteration=24
-2014-05-28 17:55:04.441296: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpZ2ywI0.tmpSx2Ug5.pyomo.lp
-2014-05-28 17:55:04.460208: Solve completed - number of solutions=1
-2014-05-28 17:55:04.472733: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpMwwn11.tmpGEOKFr.pyomo.lp
-2014-05-28 17:55:04.489200: Solve completed - number of solutions=1
-2014-05-28 17:55:04.501728: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp1QEqEN.tmpAo03ch.pyomo.lp
-2014-05-28 17:55:04.519175: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0021 First stage cost avg= 109004.1156 Max-Min= 54.49
-Cumulative run-time=2.42 seconds
-
-Initiating PH iteration=25
-2014-05-28 17:55:04.532826: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpVc6iRJ.tmp9Lb3o1.pyomo.lp
-2014-05-28 17:55:04.551740: Solve completed - number of solutions=1
-2014-05-28 17:55:04.564821: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpPMAk_i.tmpEyUI7E.pyomo.lp
-2014-05-28 17:55:04.582058: Solve completed - number of solutions=1
-2014-05-28 17:55:04.594507: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp1pNv_z.tmpPFePQM.pyomo.lp
-2014-05-28 17:55:04.614150: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0008 First stage cost avg= 108937.8039 Max-Min= 16.89
-Cumulative run-time=2.51 seconds
-
-Initiating PH iteration=26
-2014-05-28 17:55:04.626712: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmphLnttu.tmpUx5X4i.pyomo.lp
-2014-05-28 17:55:04.645501: Solve completed - number of solutions=1
-2014-05-28 17:55:04.658946: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpxkTZsx.tmpMEdYUz.pyomo.lp
-2014-05-28 17:55:04.676467: Solve completed - number of solutions=1
-2014-05-28 17:55:04.688956: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpmf4W0Q.tmpEkisZ7.pyomo.lp
-2014-05-28 17:55:04.706927: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0005 First stage cost avg= 108876.8822 Max-Min= 14.27
-Cumulative run-time=2.61 seconds
-
-Initiating PH iteration=27
-2014-05-28 17:55:04.720526: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpIngMIr.tmpAAMivK.pyomo.lp
-2014-05-28 17:55:04.738592: Solve completed - number of solutions=1
-2014-05-28 17:55:04.752290: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpU8IyYy.tmpfKoNEy.pyomo.lp
-2014-05-28 17:55:04.769454: Solve completed - number of solutions=1
-2014-05-28 17:55:04.781879: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpdpwX_z.tmp1lw8hW.pyomo.lp
-2014-05-28 17:55:04.799394: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0015 First stage cost avg= 108830.6201 Max-Min= 34.81
-Cumulative run-time=2.70 seconds
-
-Initiating PH iteration=28
-2014-05-28 17:55:04.811907: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp3MfGwL.tmpEGs6e9.pyomo.lp
-2014-05-28 17:55:04.830126: Solve completed - number of solutions=1
-2014-05-28 17:55:04.842899: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpNJG_E2.tmp8UgcQL.pyomo.lp
-2014-05-28 17:55:04.860992: Solve completed - number of solutions=1
-2014-05-28 17:55:04.873720: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpTe27LB.tmp9BLFBO.pyomo.lp
-2014-05-28 17:55:04.890183: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0021 First stage cost avg= 108803.9655 Max-Min= 44.57
-Cumulative run-time=2.79 seconds
-
-Initiating PH iteration=29
-2014-05-28 17:55:04.903384: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpTiksoE.tmplo25Yx.pyomo.lp
-2014-05-28 17:55:04.922075: Solve completed - number of solutions=1
-2014-05-28 17:55:04.934556: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpDOgPZM.tmpPM20uz.pyomo.lp
-2014-05-28 17:55:04.952402: Solve completed - number of solutions=1
-2014-05-28 17:55:04.964940: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp3CK9lU.tmpw8z40I.pyomo.lp
-2014-05-28 17:55:04.982207: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0023 First stage cost avg= 108797.7661 Max-Min= 45.24
-Cumulative run-time=2.88 seconds
-
-Initiating PH iteration=30
-2014-05-28 17:55:04.995981: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp_wM9so.tmp5hCB9w.pyomo.lp
-2014-05-28 17:55:05.014172: Solve completed - number of solutions=1
-2014-05-28 17:55:05.026656: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmphI4Ipq.tmpnuUP6Z.pyomo.lp
-2014-05-28 17:55:05.044179: Solve completed - number of solutions=1
-2014-05-28 17:55:05.056648: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpunVFm5.tmp6mMZ3b.pyomo.lp
-2014-05-28 17:55:05.074918: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0020 First stage cost avg= 108809.4793 Max-Min= 39.01
-Cumulative run-time=2.97 seconds
-
-Initiating PH iteration=31
-2014-05-28 17:55:05.089101: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpe4fnKh.tmp914ABx.pyomo.lp
-2014-05-28 17:55:05.107596: Solve completed - number of solutions=1
-2014-05-28 17:55:05.120146: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpu4E08C.tmppZf6Br.pyomo.lp
-2014-05-28 17:55:05.137523: Solve completed - number of solutions=1
-2014-05-28 17:55:05.151642: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpPJPZjp.tmp22b2pG.pyomo.lp
-2014-05-28 17:55:05.169341: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0015 First stage cost avg= 108834.1639 Max-Min= 28.07
-Cumulative run-time=3.07 seconds
-
-Initiating PH iteration=32
-2014-05-28 17:55:05.183177: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp3ctzNC.tmpWJzZGL.pyomo.lp
-2014-05-28 17:55:05.201080: Solve completed - number of solutions=1
-2014-05-28 17:55:05.214608: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpErvRAP.tmpoQdvFc.pyomo.lp
-2014-05-28 17:55:05.232338: Solve completed - number of solutions=1
-2014-05-28 17:55:05.245053: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpOL5OC5.tmpccNb7v.pyomo.lp
-2014-05-28 17:55:05.262319: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0008 First stage cost avg= 108865.6237 Max-Min= 14.67
-Cumulative run-time=3.16 seconds
-
-Initiating PH iteration=33
-2014-05-28 17:55:05.275317: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpq3g66f.tmpMOHgG3.pyomo.lp
-2014-05-28 17:55:05.294230: Solve completed - number of solutions=1
-2014-05-28 17:55:05.306744: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpMnK6qF.tmpskYobJ.pyomo.lp
-2014-05-28 17:55:05.324150: Solve completed - number of solutions=1
-2014-05-28 17:55:05.336657: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpklyf5c.tmpOMOmY0.pyomo.lp
-2014-05-28 17:55:05.354657: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0001 First stage cost avg= 108897.5679 Max-Min= 1.06
-Cumulative run-time=3.25 seconds
-PH converged - convergence metric is below threshold=0.0001
-Number of discrete variables fixed before final plugin calls=0 (total=0)
-Number of continuous variables fixed before final plugin calls=0 (total=3)
-PH algorithm history written to file=ph_history.json
-PH complete
-Convergence history:
-Iteration Metric Value
- 0 0.2540
- 1 0.1259
- 2 0.0816
- 3 0.0796
- 4 0.0776
- 5 0.0794
- 6 0.0668
- 7 0.0542
- 8 0.0360
- 9 0.0243
- 10 0.0256
- 11 0.0248
- 12 0.0163
- 13 0.0081
- 14 0.0168
- 15 0.0163
- 16 0.0098
- 17 0.0032
- 18 0.0026
- 19 0.0039
- 20 0.0043
- 21 0.0044
- 22 0.0040
- 23 0.0032
- 24 0.0021
- 25 0.0008
- 26 0.0005
- 27 0.0015
- 28 0.0021
- 29 0.0023
- 30 0.0020
- 31 0.0015
- 32 0.0008
- 33 0.0001
-
-***********************************************************************************************
->>>THE EXPECTED SUM OF THE STAGE COST VARIABLES=-108388.378639<<<
->>>***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise<<<
-***********************************************************************************************
-Final number of discrete variables fixed=0 (total=0)
-Final number of continuous variables fixed=0 (total=3)
-Final variable values:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 79.9844 80.0000 79.9768 Max-Min: 0.0232 Avg: 79.9871
- Index: [SUGAR_BEETS] Values: 249.9848 249.9770 250.0000 Max-Min: 0.0230 Avg: 249.9873
- Index: [WHEAT] Values: 170.0308 170.0230 170.0232 Max-Min: 0.0078 Avg: 170.0256
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108897.0836 108897.4725 108898.1476 Max-Min: 1.0640 Avg: 108897.5679
-Final costs:
-Scenario Tree Costs
-***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise
-----------------------------------------------------
-Tree Nodes:
-
- Name=AboveAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AboveAverageScenario
- Expected cost of (sub)tree rooted at node=-275899.3041
-
- Name=AverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AverageScenario
- Expected cost of (sub)tree rooted at node=-218243.2209
-
- Name=BelowAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-157713.8615
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- AboveAverageNode
- AverageNode
- BelowAverageNode
- Scenarios:
- AboveAverageScenario
- AverageScenario
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-108388.3786
-
-----------------------------------------------------
-Scenarios:
-
- Name=AboveAverageScenario
- Probability=0.3333
- Leaf Node=AboveAverageNode
- Tree node sequence:
- RootNode
- AboveAverageNode
- Stage= FirstStage Cost=108898.1476
- Stage= SecondStage Cost=-275899.3041
- Total scenario cost=-167001.1565
-
- Name=AverageScenario
- Probability=0.3333
- Leaf Node=AverageNode
- Tree node sequence:
- RootNode
- AverageNode
- Stage= FirstStage Cost=108897.4725
- Stage= SecondStage Cost=-218243.2209
- Total scenario cost=-109345.7484
-
- Name=BelowAverageScenario
- Probability=0.3333
- Leaf Node=BelowAverageNode
- Tree node sequence:
- RootNode
- BelowAverageNode
- Stage= FirstStage Cost=108897.0836
- Stage= SecondStage Cost=-157713.8615
- Total scenario cost=-48816.7780
-
-----------------------------------------------------
-
-Total PH execution time=3.26 seconds
-
-Scenario tree solution written to file=ph_solution.json
-Shutting down Pyro solver components
-Dispatcher received request to shut down - initiating...
-
-Total execution time=6.31 seconds
-Name Server gracefully stopped.
-Lost connection to dispatch server - shutting down...
diff --git a/pyomo/pysp/tests/examples/baselines/TestPHFarmerPyro.test10.baseline b/pyomo/pysp/tests/examples/baselines/TestPHFarmerPyro.test10.baseline
deleted file mode 100644
index 39b6ce1730f..00000000000
--- a/pyomo/pysp/tests/examples/baselines/TestPHFarmerPyro.test10.baseline
+++ /dev/null
@@ -1,368 +0,0 @@
-*** Pyro Name Server ***
-Name server listening on: ('0.0.0.0', 9090)
-Broadcast server listening on: ('0.0.0.0', 9090)
-URI is: PYRO://10.0.0.11:9090/0a00000b1076820a83462e0d09c57ec858f
-URI written to: /Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/pyomo/pysp/tests/examples/Pyro_NS_URI
-Name Server started.
-User-defined PH extension module=pyomo.pysp.plugins.phhistoryextension already imported - skipping
-User-defined PH extension module=pyomo.pysp.plugins.convexhullboundextension already imported - skipping
-Dispatcher is ready.
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI:PYRO://10.0.0.11:7766/0a00000b1076920a83464039a7bfc1f37da
-This is worker Worker_67434@Ozymandias.local
-Listening for work from dispatcher...
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI: PYRO://10.0.0.11:7766/0a00000b1076920a83464039a7bfc1f37da
-This is client 67435@Ozymandias.local
-Initializing PH
-
-convexhullboundextension using default update interval=1
-WARNING: No construction rule or expression specified for constraint 'W_Balance'
-WARNING: No construction rule or expression specified for constraint 'V_Bound'
-WW PH Extension: Loading user-specified configuration from file=/Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/examples/pysp/farmer/config/wwph.cfg
-WW PH Extension: Loading variable suffixes from file=/Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/examples/pysp/farmer/config/wwph.suffixes
-User-defined PH solution writer module=pyomo.pysp.plugins.jsonsolutionwriter already imported - skipping
-Starting PH
-
-Initiating PH iteration=0
-2014-06-12 14:46:33.100604: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpsP87EL.tmpw4gzGv.pyomo.lp
-2014-06-12 14:46:33.120244: Solve completed - number of solutions=1
-2014-06-12 14:46:33.134068: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp25O_DK.tmp_jjQn1.pyomo.lp
-2014-06-12 14:46:33.151330: Solve completed - number of solutions=1
-2014-06-12 14:46:33.164983: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpDhgENL.tmpK5wlZv.pyomo.lp
-2014-06-12 14:46:33.182777: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-115405.5556
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.2540 First stage cost avg= 113494.4444 Max-Min=10416.67
-Cumulative run-time=0.20 seconds
-
-Initiating PH iteration=1
-2014-06-12 14:46:33.229326: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpTXA6in.tmpGs2yjj.pyomo.lp
-2014-06-12 14:46:33.246666: Solve completed - number of solutions=1
-2014-06-12 14:46:33.260813: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpC0kMKQ.tmpxL2b08.pyomo.lp
-2014-06-12 14:46:33.277952: Solve completed - number of solutions=1
-2014-06-12 14:46:33.292667: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp3WSx6E.tmpZ0nzNW.pyomo.lp
-2014-06-12 14:46:33.309651: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-112378.3952
-WW PH Extension: Setting mipgap to 0.1000000, as specified in the configuration file
-2014-06-12 14:46:33.356221: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpImVBZw.tmpCJlWnu.pyomo.lp
-2014-06-12 14:46:33.377120: Solve completed - number of solutions=1
-2014-06-12 14:46:33.391485: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpSXAFIJ.tmpr9SiPx.pyomo.lp
-2014-06-12 14:46:33.411374: Solve completed - number of solutions=1
-2014-06-12 14:46:33.425050: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpYGjk7G.tmp2NnLZo.pyomo.lp
-2014-06-12 14:46:33.444995: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.1259 First stage cost avg= 113107.2221 Max-Min= 6943.89
-Cumulative run-time=0.43 seconds
-
-Initiating PH iteration=2
-2014-06-12 14:46:33.457578: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpqYIZy1.tmpczhmEw.pyomo.lp
-2014-06-12 14:46:33.476560: Solve completed - number of solutions=1
-2014-06-12 14:46:33.490824: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpsiLM7r.tmprdgfDg.pyomo.lp
-2014-06-12 14:46:33.509612: Solve completed - number of solutions=1
-2014-06-12 14:46:33.524057: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpuVFdAt.tmpz2q9gY.pyomo.lp
-2014-06-12 14:46:33.542349: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-WARNING: "[base]/pyomo.pysp/pyomo/pysp/plugins/phboundextension.py", 75, _compute_bound
- A nonzero mipgap was detected when using the PH bound plugin. The bound computation may as a result be conservative.
-Computed objective lower bound=-119146.9138
-WW PH Extension: Setting mipgap to 0.0500717, based on current value of the convergence metric
-2014-06-12 14:46:33.589194: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpV3TWN7.tmpGycTKu.pyomo.lp
-2014-06-12 14:46:33.609544: Solve completed - number of solutions=1
-2014-06-12 14:46:33.623357: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpL5tmEF.tmpyxVGp3.pyomo.lp
-2014-06-12 14:46:33.643539: Solve completed - number of solutions=1
-2014-06-12 14:46:33.657209: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpSGMP7U.tmpKrIU97.pyomo.lp
-2014-06-12 14:46:33.677029: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0816 First stage cost avg= 112954.6296 Max-Min= 2234.82
-Cumulative run-time=0.67 seconds
-
-Initiating PH iteration=3
-2014-06-12 14:46:33.689950: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpmAwSLC.tmpDzDnD9.pyomo.lp
-2014-06-12 14:46:33.709063: Solve completed - number of solutions=1
-2014-06-12 14:46:33.724263: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpliXdNx.tmp7qgBGF.pyomo.lp
-2014-06-12 14:46:33.741285: Solve completed - number of solutions=1
-2014-06-12 14:46:33.755138: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp75XwGT.tmphCOhio.pyomo.lp
-2014-06-12 14:46:33.772082: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-WARNING: "[base]/pyomo.pysp/pyomo/pysp/plugins/phboundextension.py", 75, _compute_bound
- A nonzero mipgap was detected when using the PH bound plugin. The bound computation may as a result be conservative.
-Computed objective lower bound=-122839.9373
-WW PH Extension: Setting mipgap to 0.0327607, based on current value of the convergence metric
-2014-06-12 14:46:33.817742: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpSSuunQ.tmpAXJCRN.pyomo.lp
-2014-06-12 14:46:33.838555: Solve completed - number of solutions=1
-2014-06-12 14:46:33.853270: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpglqKCJ.tmphPzaui.pyomo.lp
-2014-06-12 14:46:33.872605: Solve completed - number of solutions=1
-2014-06-12 14:46:33.886313: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpbEX6Et.tmpm7VYbY.pyomo.lp
-2014-06-12 14:46:33.906204: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0796 First stage cost avg= 112963.0248 Max-Min= 2375.31
-Cumulative run-time=0.90 seconds
-
-Initiating PH iteration=4
-2014-06-12 14:46:33.919305: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmppkf7fK.tmpM3L2S2.pyomo.lp
-2014-06-12 14:46:33.936605: Solve completed - number of solutions=1
-2014-06-12 14:46:33.950285: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmphppDsd.tmprQo5sl.pyomo.lp
-2014-06-12 14:46:33.969914: Solve completed - number of solutions=1
-2014-06-12 14:46:33.984309: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp6cE7MN.tmpwcHgmM.pyomo.lp
-2014-06-12 14:46:34.001380: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-WARNING: "[base]/pyomo.pysp/pyomo/pysp/plugins/phboundextension.py", 75, _compute_bound
- A nonzero mipgap was detected when using the PH bound plugin. The bound computation may as a result be conservative.
-Computed objective lower bound=-115850.2283
-WW PH Extension: Setting mipgap to 0.0319973, based on current value of the convergence metric
-2014-06-12 14:46:34.047578: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpM_w0bD.tmpwuHiz5.pyomo.lp
-2014-06-12 14:46:34.067432: Solve completed - number of solutions=1
-2014-06-12 14:46:34.082081: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpPgA8uC.tmpPmn2TR.pyomo.lp
-2014-06-12 14:46:34.101958: Solve completed - number of solutions=1
-2014-06-12 14:46:34.115712: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpOOmKtS.tmpZ4x07c.pyomo.lp
-2014-06-12 14:46:34.135513: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Slamming criteria are satisifed - accelerating convergence
-Slamming variable=DevotedAcreage[CORN] at tree node=RootNode to value=96.8871743104; value=node average (anywhere)
-Fixing variable=DevotedAcreage[CORN] at tree node=RootNode to value=96.8871743104; converged for 0 iterations
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0776 First stage cost avg= 112915.6071 Max-Min= 3047.08
-Cumulative run-time=1.13 seconds
-
-Initiating PH iteration=5
-2014-06-12 14:46:34.148271: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpg39XPW.tmpxNeP8r.pyomo.lp
-2014-06-12 14:46:34.165450: Solve completed - number of solutions=1
-2014-06-12 14:46:34.179647: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpN63ywA.tmpk0dpF8.pyomo.lp
-2014-06-12 14:46:34.196338: Solve completed - number of solutions=1
-2014-06-12 14:46:34.210560: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpy4Wheb.tmpW5YVkn.pyomo.lp
-2014-06-12 14:46:34.227465: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-WARNING: "[base]/pyomo.pysp/pyomo/pysp/plugins/phboundextension.py", 75, _compute_bound
- A nonzero mipgap was detected when using the PH bound plugin. The bound computation may as a result be conservative.
-Computed objective lower bound=-114662.4278
-WW PH Extension: Setting mipgap to 0.0312342, based on current value of the convergence metric
-2014-06-12 14:46:34.272911: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp3NFCJw.tmp1pgNXi.pyomo.lp
-2014-06-12 14:46:34.292688: Solve completed - number of solutions=1
-2014-06-12 14:46:34.307445: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpPktM7k.tmpvfmV62.pyomo.lp
-2014-06-12 14:46:34.326932: Solve completed - number of solutions=1
-2014-06-12 14:46:34.340747: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpLojhac.tmp9ACMtJ.pyomo.lp
-2014-06-12 14:46:34.362750: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=1 (total=3)
-Convergence metric= 0.0609 First stage cost avg= 112895.6887 Max-Min= 5246.95
-Cumulative run-time=1.35 seconds
-
-Initiating PH iteration=6
-2014-06-12 14:46:34.376452: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpG48Hoj.tmp2hqT8K.pyomo.lp
-2014-06-12 14:46:34.393241: Solve completed - number of solutions=1
-2014-06-12 14:46:34.407909: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpQ44qLl.tmplNaaxG.pyomo.lp
-2014-06-12 14:46:34.424682: Solve completed - number of solutions=1
-2014-06-12 14:46:34.438394: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp0yWJlk.tmpac8i70.pyomo.lp
-2014-06-12 14:46:34.455567: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-WARNING: "[base]/pyomo.pysp/pyomo/pysp/plugins/phboundextension.py", 75, _compute_bound
- A nonzero mipgap was detected when using the PH bound plugin. The bound computation may as a result be conservative.
-Computed objective lower bound=-114508.9364
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-WW PH Extension: Setting mipgap to 0.0247045, based on current value of the convergence metric
-2014-06-12 14:46:34.501073: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpayOjoj.tmpPQY3uQ.pyomo.lp
-2014-06-12 14:46:34.521172: Solve completed - number of solutions=1
-2014-06-12 14:46:34.534850: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpE1iWtp.tmpIEsdSN.pyomo.lp
-2014-06-12 14:46:34.555072: Solve completed - number of solutions=1
-2014-06-12 14:46:34.569794: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpdWDbLL.tmpe_PHsq.pyomo.lp
-2014-06-12 14:46:34.590677: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Slamming criteria are satisifed - accelerating convergence
-Slamming variable=DevotedAcreage[WHEAT] at tree node=RootNode to value=140.569962554; value=node average (anywhere)
-Fixing variable=DevotedAcreage[WHEAT] at tree node=RootNode to value=140.569962554; converged for 0 iterations
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=1 (total=3)
-Convergence metric= 0.0514 First stage cost avg= 111630.6889 Max-Min= 3912.48
-Cumulative run-time=1.58 seconds
-
-Initiating PH iteration=7
-2014-06-12 14:46:34.603326: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpsTJp1v.tmpyPYy8W.pyomo.lp
-2014-06-12 14:46:34.621009: Solve completed - number of solutions=1
-2014-06-12 14:46:34.635037: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpxYSGMh.tmp8yO6IW.pyomo.lp
-2014-06-12 14:46:34.652352: Solve completed - number of solutions=1
-2014-06-12 14:46:34.665965: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpnlX4aA.tmptsHl2z.pyomo.lp
-2014-06-12 14:46:34.684137: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-WARNING: "[base]/pyomo.pysp/pyomo/pysp/plugins/phboundextension.py", 75, _compute_bound
- A nonzero mipgap was detected when using the PH bound plugin. The bound computation may as a result be conservative.
-Computed objective lower bound=-115786.7766
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-WW PH Extension: Setting mipgap to 0.0210062, based on current value of the convergence metric
-2014-06-12 14:46:34.730381: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpUi4RSb.tmprQm1rS.pyomo.lp
-2014-06-12 14:46:34.750092: Solve completed - number of solutions=1
-2014-06-12 14:46:34.764025: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpx9Poz7.tmpkEMAg6.pyomo.lp
-2014-06-12 14:46:34.784440: Solve completed - number of solutions=1
-2014-06-12 14:46:34.798870: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpYGfRYA.tmpyKfKui.pyomo.lp
-2014-06-12 14:46:34.819912: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=2 (total=3)
-Convergence metric= 0.0000 First stage cost avg= 111630.6889 Max-Min= 0.00
-Cumulative run-time=1.81 seconds
-PH converged - convergence metric is below threshold=0.0001
-Number of discrete variables fixed before final plugin calls=0 (total=0)
-Number of continuous variables fixed before final plugin calls=2 (total=3)
-2014-06-12 14:46:34.833682: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpagL8dp.tmpl5SLlw.pyomo.lp
-2014-06-12 14:46:34.852813: Solve completed - number of solutions=1
-2014-06-12 14:46:34.867147: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpcJj_HQ.tmp69u5og.pyomo.lp
-2014-06-12 14:46:34.885876: Solve completed - number of solutions=1
-2014-06-12 14:46:34.900148: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmptjrlU2.tmp06hEiV.pyomo.lp
-2014-06-12 14:46:34.918302: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-WARNING: "[base]/pyomo.pysp/pyomo/pysp/plugins/phboundextension.py", 75, _compute_bound
- A nonzero mipgap was detected when using the PH bound plugin. The bound computation may as a result be conservative.
-Computed objective lower bound=-114931.2396
-
- Iteration Bound
- Trivial -115405.555588
- 0 -112378.395154
- 1 -119146.913826
- 2 -122839.937276
- 3 -115850.228262
- 4 -114662.427763
- 5 -114508.936391
- 6 -115786.776605
- 7 -114931.239605
-
-Lower bound history written to file=phbound.txt
-
-Best Objective Bound: -112378.395154
-
-Best Lower Bound written to file=phbestbound.txt
-WW PH extension: Fixing all discrete variables that are converged at termination
-Total number of variables fixed at PH termination due to convergence=0
-PH algorithm history written to file=ph_history.json
-PH complete
-Convergence history:
-Iteration Metric Value
- 0 0.2540
- 1 0.1259
- 2 0.0816
- 3 0.0796
- 4 0.0776
- 5 0.0609
- 6 0.0514
- 7 0.0000
-
-***********************************************************************************************
->>>THE EXPECTED SUM OF THE STAGE COST VARIABLES=-107983.303737<<<
->>>***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise<<<
-***********************************************************************************************
-Final number of discrete variables fixed=0 (total=0)
-Final number of continuous variables fixed=2 (total=3)
-Final variable values:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 96.8872 96.8872 96.8872 Max-Min: 0.0000 Avg: 96.8872
- Index: [SUGAR_BEETS] Values: 262.5429 262.5429 262.5429 Max-Min: 0.0000 Avg: 262.5429
- Index: [WHEAT] Values: 140.5700 140.5700 140.5700 Max-Min: 0.0000 Avg: 140.5700
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 111630.6889 111630.6888 111630.6889 Max-Min: 0.0000 Avg: 111630.6889
-Final costs:
-Scenario Tree Costs
-***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise
-----------------------------------------------------
-Tree Nodes:
-
- Name=AboveAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AboveAverageScenario
- Expected cost of (sub)tree rooted at node=-273020.0421
-
- Name=AverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AverageScenario
- Expected cost of (sub)tree rooted at node=-222372.3235
-
- Name=BelowAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-163449.6122
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- AboveAverageNode
- AverageNode
- BelowAverageNode
- Scenarios:
- AboveAverageScenario
- AverageScenario
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-107983.3037
-
-----------------------------------------------------
-Scenarios:
-
- Name=AboveAverageScenario
- Probability=0.3333
- Leaf Node=AboveAverageNode
- Tree node sequence:
- RootNode
- AboveAverageNode
- Stage= FirstStage Cost=111630.6889
- Stage= SecondStage Cost=-273020.0421
- Total scenario cost=-161389.3532
-
- Name=AverageScenario
- Probability=0.3333
- Leaf Node=AverageNode
- Tree node sequence:
- RootNode
- AverageNode
- Stage= FirstStage Cost=111630.6888
- Stage= SecondStage Cost=-222372.3235
- Total scenario cost=-110741.6346
-
- Name=BelowAverageScenario
- Probability=0.3333
- Leaf Node=BelowAverageNode
- Tree node sequence:
- RootNode
- BelowAverageNode
- Stage= FirstStage Cost=111630.6889
- Stage= SecondStage Cost=-163449.6122
- Total scenario cost=-51818.9233
-
-----------------------------------------------------
-
-Total PH execution time=1.91 seconds
-
-Scenario tree solution written to file=ph_solution.json
-Shutting down Pyro solver components
-Dispatcher received request to shut down - initiating...
-
-Total execution time=4.97 seconds
-Name Server gracefully stopped.
-Lost connection to dispatch server - shutting down...
diff --git a/pyomo/pysp/tests/examples/baselines/TestPHFarmerPyro.test11.baseline b/pyomo/pysp/tests/examples/baselines/TestPHFarmerPyro.test11.baseline
deleted file mode 100644
index f8fdeeb5e8c..00000000000
--- a/pyomo/pysp/tests/examples/baselines/TestPHFarmerPyro.test11.baseline
+++ /dev/null
@@ -1,364 +0,0 @@
-*** Pyro Name Server ***
-Name server listening on: ('0.0.0.0', 9090)
-Broadcast server listening on: ('0.0.0.0', 9090)
-URI is: PYRO://10.0.0.11:9090/0a00000b107b320a83466718f8556b67a15
-URI written to: /Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/pyomo/pysp/tests/examples/Pyro_NS_URI
-Name Server started.
-User-defined PH extension module=pyomo.pysp.plugins.phhistoryextension already imported - skipping
-User-defined PH extension module=pyomo.pysp.plugins.phboundextension already imported - skipping
-Dispatcher is ready.
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI:PYRO://10.0.0.11:7766/0a00000b107b420a83467928a09b251c3dd
-This is worker Worker_67509@Ozymandias.local
-Listening for work from dispatcher...
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI: PYRO://10.0.0.11:7766/0a00000b107b420a83467928a09b251c3dd
-This is client 67510@Ozymandias.local
-Initializing PH
-
-phboundextension using default update interval=1
-WW PH Extension: Loading user-specified configuration from file=/Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/examples/pysp/farmer/config/wwph.cfg
-WW PH Extension: Loading variable suffixes from file=/Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/examples/pysp/farmer/config/wwph.suffixes
-User-defined PH solution writer module=pyomo.pysp.plugins.jsonsolutionwriter already imported - skipping
-Starting PH
-
-Initiating PH iteration=0
-2014-06-12 14:46:42.216915: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpWT603A.tmpWiHePY.pyomo.lp
-2014-06-12 14:46:42.234795: Solve completed - number of solutions=1
-2014-06-12 14:46:42.248424: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpyXENng.tmpbUBIGn.pyomo.lp
-2014-06-12 14:46:42.265937: Solve completed - number of solutions=1
-2014-06-12 14:46:42.280041: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpo5UFAl.tmpcPY0Zp.pyomo.lp
-2014-06-12 14:46:42.297432: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-115405.5556
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.2540 First stage cost avg= 113494.4444 Max-Min=10416.67
-Cumulative run-time=0.16 seconds
-
-Initiating PH iteration=1
-2014-06-12 14:46:42.310323: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmprnW3Mj.tmpv0WBCY.pyomo.lp
-2014-06-12 14:46:42.327112: Solve completed - number of solutions=1
-2014-06-12 14:46:42.341391: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp_8Hq53.tmpuLpsjc.pyomo.lp
-2014-06-12 14:46:42.358427: Solve completed - number of solutions=1
-2014-06-12 14:46:42.372072: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpHJkO6x.tmppWzxd7.pyomo.lp
-2014-06-12 14:46:42.391537: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-112378.3951
-WW PH Extension: Setting mipgap to 0.1000000, as specified in the configuration file
-2014-06-12 14:46:42.404694: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpvNRGoa.tmpjSGTIB.pyomo.lp
-2014-06-12 14:46:42.425515: Solve completed - number of solutions=1
-2014-06-12 14:46:42.439497: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpmo5bq3.tmpsApHdD.pyomo.lp
-2014-06-12 14:46:42.459426: Solve completed - number of solutions=1
-2014-06-12 14:46:42.473072: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp8sI3Bh.tmp5DXWKu.pyomo.lp
-2014-06-12 14:46:42.492894: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.1259 First stage cost avg= 113107.2221 Max-Min= 6943.89
-Cumulative run-time=0.36 seconds
-
-Initiating PH iteration=2
-2014-06-12 14:46:42.506268: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpYUPBOs.tmpr0YSsY.pyomo.lp
-2014-06-12 14:46:42.524666: Solve completed - number of solutions=1
-2014-06-12 14:46:42.538339: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpFRvWZ4.tmpBwP5q2.pyomo.lp
-2014-06-12 14:46:42.554914: Solve completed - number of solutions=1
-2014-06-12 14:46:42.568864: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpwlYtEp.tmpuDEXYq.pyomo.lp
-2014-06-12 14:46:42.585647: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-WARNING: "[base]/pyomo.pysp/pyomo/pysp/plugins/phboundextension.py", 75, _compute_bound
- A nonzero mipgap was detected when using the PH bound plugin. The bound computation may as a result be conservative.
-Computed objective lower bound=-114092.2009
-WW PH Extension: Setting mipgap to 0.0500717, based on current value of the convergence metric
-2014-06-12 14:46:42.598577: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpkJZzHY.tmpNyPonn.pyomo.lp
-2014-06-12 14:46:42.619680: Solve completed - number of solutions=1
-2014-06-12 14:46:42.633342: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpVrmred.tmpu_BfMz.pyomo.lp
-2014-06-12 14:46:42.653103: Solve completed - number of solutions=1
-2014-06-12 14:46:42.666788: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp1K44t6.tmpn39RZG.pyomo.lp
-2014-06-12 14:46:42.686333: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0816 First stage cost avg= 112954.6296 Max-Min= 2234.82
-Cumulative run-time=0.55 seconds
-
-Initiating PH iteration=3
-2014-06-12 14:46:42.699122: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpj2NMqB.tmpSwWivW.pyomo.lp
-2014-06-12 14:46:42.715918: Solve completed - number of solutions=1
-2014-06-12 14:46:42.730018: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp8_0slU.tmpp8WJh7.pyomo.lp
-2014-06-12 14:46:42.747097: Solve completed - number of solutions=1
-2014-06-12 14:46:42.761818: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpqQ4qEt.tmpxSq05I.pyomo.lp
-2014-06-12 14:46:42.778607: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-WARNING: "[base]/pyomo.pysp/pyomo/pysp/plugins/phboundextension.py", 75, _compute_bound
- A nonzero mipgap was detected when using the PH bound plugin. The bound computation may as a result be conservative.
-Computed objective lower bound=-111905.7747
-WW PH Extension: Setting mipgap to 0.0327607, based on current value of the convergence metric
-2014-06-12 14:46:42.791541: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp2CbAWn.tmpLRy73w.pyomo.lp
-2014-06-12 14:46:42.812774: Solve completed - number of solutions=1
-2014-06-12 14:46:42.826499: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpnFY06r.tmpOM389N.pyomo.lp
-2014-06-12 14:46:42.845995: Solve completed - number of solutions=1
-2014-06-12 14:46:42.859624: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmprQLIKb.tmpLOeJlJ.pyomo.lp
-2014-06-12 14:46:42.878903: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0796 First stage cost avg= 112963.0248 Max-Min= 2375.31
-Cumulative run-time=0.74 seconds
-
-Initiating PH iteration=4
-2014-06-12 14:46:42.891840: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpJioViY.tmpIJqMH3.pyomo.lp
-2014-06-12 14:46:42.909092: Solve completed - number of solutions=1
-2014-06-12 14:46:42.922814: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp0GLkT7.tmpLyavVf.pyomo.lp
-2014-06-12 14:46:42.942802: Solve completed - number of solutions=1
-2014-06-12 14:46:42.957425: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpevEbEC.tmpYeEGLO.pyomo.lp
-2014-06-12 14:46:42.974150: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-WARNING: "[base]/pyomo.pysp/pyomo/pysp/plugins/phboundextension.py", 75, _compute_bound
- A nonzero mipgap was detected when using the PH bound plugin. The bound computation may as a result be conservative.
-Computed objective lower bound=-110093.7884
-WW PH Extension: Setting mipgap to 0.0319973, based on current value of the convergence metric
-2014-06-12 14:46:42.986954: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmppIOuNn.tmp08z8qb.pyomo.lp
-2014-06-12 14:46:43.011343: Solve completed - number of solutions=1
-2014-06-12 14:46:43.025539: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpEeyxN3.tmpmchp5S.pyomo.lp
-2014-06-12 14:46:43.047063: Solve completed - number of solutions=1
-2014-06-12 14:46:43.061347: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpKL6AON.tmp2viJQ2.pyomo.lp
-2014-06-12 14:46:43.081073: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Slamming criteria are satisifed - accelerating convergence
-Slamming variable=DevotedAcreage[CORN] at tree node=RootNode to value=96.8871743104; value=node average (anywhere)
-Fixing variable=DevotedAcreage[CORN] at tree node=RootNode to value=96.8871743104; converged for 0 iterations
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0776 First stage cost avg= 112915.6071 Max-Min= 3047.08
-Cumulative run-time=0.95 seconds
-
-Initiating PH iteration=5
-2014-06-12 14:46:43.093721: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpvQTdiw.tmpDhDxkL.pyomo.lp
-2014-06-12 14:46:43.110894: Solve completed - number of solutions=1
-2014-06-12 14:46:43.124620: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp1_f8ug.tmph6higJ.pyomo.lp
-2014-06-12 14:46:43.141812: Solve completed - number of solutions=1
-2014-06-12 14:46:43.155435: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpuWhfkw.tmpWmsvAP.pyomo.lp
-2014-06-12 14:46:43.172312: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-WARNING: "[base]/pyomo.pysp/pyomo/pysp/plugins/phboundextension.py", 75, _compute_bound
- A nonzero mipgap was detected when using the PH bound plugin. The bound computation may as a result be conservative.
-Computed objective lower bound=-109499.5161
-WW PH Extension: Setting mipgap to 0.0312342, based on current value of the convergence metric
-2014-06-12 14:46:43.185894: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpXoizPx.tmpHe_H9D.pyomo.lp
-2014-06-12 14:46:43.206458: Solve completed - number of solutions=1
-2014-06-12 14:46:43.220249: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpBLOIIo.tmpQTuVgm.pyomo.lp
-2014-06-12 14:46:43.240075: Solve completed - number of solutions=1
-2014-06-12 14:46:43.253832: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpvWfkFR.tmphP9SS3.pyomo.lp
-2014-06-12 14:46:43.274061: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=1 (total=3)
-Convergence metric= 0.0609 First stage cost avg= 112895.6887 Max-Min= 5246.95
-Cumulative run-time=1.14 seconds
-
-Initiating PH iteration=6
-2014-06-12 14:46:43.287032: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp9sMZ2v.tmpGv1dyf.pyomo.lp
-2014-06-12 14:46:43.305456: Solve completed - number of solutions=1
-2014-06-12 14:46:43.320162: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpgi_43r.tmpc6hikN.pyomo.lp
-2014-06-12 14:46:43.338186: Solve completed - number of solutions=1
-2014-06-12 14:46:43.351846: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpOdE__p.tmpATcgxQ.pyomo.lp
-2014-06-12 14:46:43.369599: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-WARNING: "[base]/pyomo.pysp/pyomo/pysp/plugins/phboundextension.py", 75, _compute_bound
- A nonzero mipgap was detected when using the PH bound plugin. The bound computation may as a result be conservative.
-Computed objective lower bound=-109440.7805
-WW PH Extension: Setting mipgap to 0.0247045, based on current value of the convergence metric
-2014-06-12 14:46:43.383732: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpxtcc0s.tmpOB3Cvu.pyomo.lp
-2014-06-12 14:46:43.403761: Solve completed - number of solutions=1
-2014-06-12 14:46:43.417599: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpKozDCe.tmpYA5F0F.pyomo.lp
-2014-06-12 14:46:43.436900: Solve completed - number of solutions=1
-2014-06-12 14:46:43.451146: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpBhmZM6.tmp9LjgMr.pyomo.lp
-2014-06-12 14:46:43.471913: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Slamming criteria are satisifed - accelerating convergence
-Slamming variable=DevotedAcreage[WHEAT] at tree node=RootNode to value=137.204959966; value=node average (anywhere)
-Fixing variable=DevotedAcreage[WHEAT] at tree node=RootNode to value=137.204959966; converged for 0 iterations
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=1 (total=3)
-Convergence metric= 0.0391 First stage cost avg= 112000.8391 Max-Min= 2624.80
-Cumulative run-time=1.34 seconds
-
-Initiating PH iteration=7
-2014-06-12 14:46:43.485047: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpcpXQ4F.tmpE2L03c.pyomo.lp
-2014-06-12 14:46:43.502122: Solve completed - number of solutions=1
-2014-06-12 14:46:43.515918: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpL44ulb.tmpfgL_Yp.pyomo.lp
-2014-06-12 14:46:43.533188: Solve completed - number of solutions=1
-2014-06-12 14:46:43.546918: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpY6WXMj.tmpwemW2c.pyomo.lp
-2014-06-12 14:46:43.564031: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-WARNING: "[base]/pyomo.pysp/pyomo/pysp/plugins/phboundextension.py", 75, _compute_bound
- A nonzero mipgap was detected when using the PH bound plugin. The bound computation may as a result be conservative.
-Computed objective lower bound=-112587.0017
-WW PH Extension: Setting mipgap to 0.0161915, based on current value of the convergence metric
-2014-06-12 14:46:43.578376: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpWHGMKi.tmp5MdBR9.pyomo.lp
-2014-06-12 14:46:43.598875: Solve completed - number of solutions=1
-2014-06-12 14:46:43.613114: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpKP3cGm.tmpgTeN3a.pyomo.lp
-2014-06-12 14:46:43.632397: Solve completed - number of solutions=1
-2014-06-12 14:46:43.646108: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp1ZcpWs.tmpmuN1VL.pyomo.lp
-2014-06-12 14:46:43.665647: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=2 (total=3)
-Convergence metric= 0.0000 First stage cost avg= 112000.8392 Max-Min= 0.00
-Cumulative run-time=1.53 seconds
-PH converged - convergence metric is below threshold=0.0001
-Number of discrete variables fixed before final plugin calls=0 (total=0)
-Number of continuous variables fixed before final plugin calls=2 (total=3)
-2014-06-12 14:46:43.679632: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp27MLQ8.tmpo7s2cq.pyomo.lp
-2014-06-12 14:46:43.698575: Solve completed - number of solutions=1
-2014-06-12 14:46:43.712623: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpIIJeSZ.tmpuA4e_d.pyomo.lp
-2014-06-12 14:46:43.730311: Solve completed - number of solutions=1
-2014-06-12 14:46:43.744153: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpp8I2gd.tmpxXMKNZ.pyomo.lp
-2014-06-12 14:46:43.761494: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-WARNING: "[base]/pyomo.pysp/pyomo/pysp/plugins/phboundextension.py", 75, _compute_bound
- A nonzero mipgap was detected when using the PH bound plugin. The bound computation may as a result be conservative.
-Computed objective lower bound=-112587.0017
-
- Iteration Bound
- Trivial -115405.555588
- 0 -112378.395124
- 1 -114092.2009
- 2 -111905.774744
- 3 -110093.788354
- 4 -109499.516145
- 5 -109440.780542
- 6 -112587.001699
- 7 -112587.001701
-
-Lower bound history written to file=phbound.txt
-
-Best Objective Bound: -109440.780542
-
-Best Lower Bound written to file=phbestbound.txt
-WW PH extension: Fixing all discrete variables that are converged at termination
-Total number of variables fixed at PH termination due to convergence=0
-PH algorithm history written to file=ph_history.json
-PH complete
-Convergence history:
-Iteration Metric Value
- 0 0.2540
- 1 0.1259
- 2 0.0816
- 3 0.0796
- 4 0.0776
- 5 0.0609
- 6 0.0391
- 7 0.0000
-
-***********************************************************************************************
->>>THE EXPECTED SUM OF THE STAGE COST VARIABLES=-107905.908751<<<
->>>***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise<<<
-***********************************************************************************************
-Final number of discrete variables fixed=0 (total=0)
-Final number of continuous variables fixed=2 (total=3)
-Final variable values:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 96.8872 96.8872 96.8872 Max-Min: 0.0000 Avg: 96.8872
- Index: [SUGAR_BEETS] Values: 265.9079 265.9079 265.9079 Max-Min: 0.0000 Avg: 265.9079
- Index: [WHEAT] Values: 137.2050 137.2050 137.2050 Max-Min: 0.0000 Avg: 137.2050
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 112000.8392 112000.8392 112000.8391 Max-Min: 0.0000 Avg: 112000.8392
-Final costs:
-Scenario Tree Costs
-***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise
-----------------------------------------------------
-Tree Nodes:
-
- Name=AboveAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AboveAverageScenario
- Expected cost of (sub)tree rooted at node=-272111.4913
-
- Name=AverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AverageScenario
- Expected cost of (sub)tree rooted at node=-223364.9995
-
- Name=BelowAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-164243.7528
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- AboveAverageNode
- AverageNode
- BelowAverageNode
- Scenarios:
- AboveAverageScenario
- AverageScenario
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-107905.9088
-
-----------------------------------------------------
-Scenarios:
-
- Name=AboveAverageScenario
- Probability=0.3333
- Leaf Node=AboveAverageNode
- Tree node sequence:
- RootNode
- AboveAverageNode
- Stage= FirstStage Cost=112000.8391
- Stage= SecondStage Cost=-272111.4913
- Total scenario cost=-160110.6522
-
- Name=AverageScenario
- Probability=0.3333
- Leaf Node=AverageNode
- Tree node sequence:
- RootNode
- AverageNode
- Stage= FirstStage Cost=112000.8392
- Stage= SecondStage Cost=-223364.9995
- Total scenario cost=-111364.1604
-
- Name=BelowAverageScenario
- Probability=0.3333
- Leaf Node=BelowAverageNode
- Tree node sequence:
- RootNode
- BelowAverageNode
- Stage= FirstStage Cost=112000.8392
- Stage= SecondStage Cost=-164243.7528
- Total scenario cost=-52242.9136
-
-----------------------------------------------------
-
-Total PH execution time=1.63 seconds
-
-Scenario tree solution written to file=ph_solution.json
-Shutting down Pyro solver components
-Dispatcher received request to shut down - initiating...
-
-Total execution time=4.69 seconds
-Name Server gracefully stopped.
-Lost connection to dispatch server - shutting down...
diff --git a/pyomo/pysp/tests/examples/baselines/TestPHFarmerPyro.test12.baseline b/pyomo/pysp/tests/examples/baselines/TestPHFarmerPyro.test12.baseline
deleted file mode 100644
index b6129bda4db..00000000000
--- a/pyomo/pysp/tests/examples/baselines/TestPHFarmerPyro.test12.baseline
+++ /dev/null
@@ -1,368 +0,0 @@
-*** Pyro Name Server ***
-Name server listening on: ('0.0.0.0', 9090)
-Broadcast server listening on: ('0.0.0.0', 9090)
-URI is: PYRO://10.0.0.11:9090/0a00000b107f520a83469eb833c280e3ae9
-URI written to: /Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/pyomo/pysp/tests/examples/Pyro_NS_URI
-Name Server started.
-User-defined PH extension module=pyomo.pysp.plugins.phhistoryextension already imported - skipping
-User-defined PH extension module=pyomo.pysp.plugins.convexhullboundextension already imported - skipping
-Dispatcher is ready.
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI:PYRO://10.0.0.11:7766/0a00000b107f620a8346b0d9842348bfa24
-This is worker Worker_67575@Ozymandias.local
-Listening for work from dispatcher...
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI: PYRO://10.0.0.11:7766/0a00000b107f620a8346b0d9842348bfa24
-This is client 67576@Ozymandias.local
-Initializing PH
-
-convexhullboundextension using default update interval=1
-WARNING: No construction rule or expression specified for constraint 'W_Balance'
-WARNING: No construction rule or expression specified for constraint 'V_Bound'
-WW PH Extension: Loading user-specified configuration from file=/Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/examples/pysp/farmer/config/wwph.cfg
-WW PH Extension: Loading variable suffixes from file=/Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/examples/pysp/farmer/config/wwph.suffixes
-User-defined PH solution writer module=pyomo.pysp.plugins.jsonsolutionwriter already imported - skipping
-Starting PH
-
-Initiating PH iteration=0
-2014-06-12 14:46:51.126688: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpqXtNyL.tmpYT3wjI.pyomo.lp
-2014-06-12 14:46:51.145894: Solve completed - number of solutions=1
-2014-06-12 14:46:51.160826: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpuP5Byt.tmpzaoI7A.pyomo.lp
-2014-06-12 14:46:51.179688: Solve completed - number of solutions=1
-2014-06-12 14:46:51.193681: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmphb94KJ.tmppCvAf9.pyomo.lp
-2014-06-12 14:46:51.211481: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-115405.5556
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.2540 First stage cost avg= 113494.4444 Max-Min=10416.67
-Cumulative run-time=0.19 seconds
-
-Initiating PH iteration=1
-2014-06-12 14:46:51.257736: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp5jjLEQ.tmpINcjtO.pyomo.lp
-2014-06-12 14:46:51.275573: Solve completed - number of solutions=1
-2014-06-12 14:46:51.290680: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpsWalYu.tmpdI1h_W.pyomo.lp
-2014-06-12 14:46:51.307977: Solve completed - number of solutions=1
-2014-06-12 14:46:51.322121: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpFNC_Bd.tmpcS8lh3.pyomo.lp
-2014-06-12 14:46:51.339058: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-112378.3952
-WW PH Extension: Setting mipgap to 0.1000000, as specified in the configuration file
-2014-06-12 14:46:51.385569: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpaO1sel.tmpMe4EZF.pyomo.lp
-2014-06-12 14:46:51.405309: Solve completed - number of solutions=1
-2014-06-12 14:46:51.419340: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpQNjoSS.tmpzq1z18.pyomo.lp
-2014-06-12 14:46:51.439657: Solve completed - number of solutions=1
-2014-06-12 14:46:51.453410: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpgKNODF.tmpqwUmQU.pyomo.lp
-2014-06-12 14:46:51.474002: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.1259 First stage cost avg= 113107.2221 Max-Min= 6943.89
-Cumulative run-time=0.43 seconds
-
-Initiating PH iteration=2
-2014-06-12 14:46:51.487434: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpeLJNHP.tmplZ_PR1.pyomo.lp
-2014-06-12 14:46:51.505130: Solve completed - number of solutions=1
-2014-06-12 14:46:51.519624: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpv1loSf.tmptmNPKa.pyomo.lp
-2014-06-12 14:46:51.537228: Solve completed - number of solutions=1
-2014-06-12 14:46:51.551390: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpyW0Iv7.tmpyFkB4K.pyomo.lp
-2014-06-12 14:46:51.568121: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-WARNING: "[base]/pyomo.pysp/pyomo/pysp/plugins/phboundextension.py", 75, _compute_bound
- A nonzero mipgap was detected when using the PH bound plugin. The bound computation may as a result be conservative.
-Computed objective lower bound=-119146.9138
-WW PH Extension: Setting mipgap to 0.0500717, based on current value of the convergence metric
-2014-06-12 14:46:51.614357: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpgngNDn.tmp2ol7Qf.pyomo.lp
-2014-06-12 14:46:51.634364: Solve completed - number of solutions=1
-2014-06-12 14:46:51.648035: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpbAutmc.tmpnPlPWb.pyomo.lp
-2014-06-12 14:46:51.667493: Solve completed - number of solutions=1
-2014-06-12 14:46:51.681215: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpnF1zTa.tmpXP4cSx.pyomo.lp
-2014-06-12 14:46:51.700945: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0816 First stage cost avg= 112954.6296 Max-Min= 2234.82
-Cumulative run-time=0.66 seconds
-
-Initiating PH iteration=3
-2014-06-12 14:46:51.713964: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpn811Bn.tmpkgxdap.pyomo.lp
-2014-06-12 14:46:51.731730: Solve completed - number of solutions=1
-2014-06-12 14:46:51.746220: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmplDyiE1.tmpJgvnt9.pyomo.lp
-2014-06-12 14:46:51.763031: Solve completed - number of solutions=1
-2014-06-12 14:46:51.777422: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpJ0DcfT.tmp5YmwiB.pyomo.lp
-2014-06-12 14:46:51.795009: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-WARNING: "[base]/pyomo.pysp/pyomo/pysp/plugins/phboundextension.py", 75, _compute_bound
- A nonzero mipgap was detected when using the PH bound plugin. The bound computation may as a result be conservative.
-Computed objective lower bound=-122839.9373
-WW PH Extension: Setting mipgap to 0.0327607, based on current value of the convergence metric
-2014-06-12 14:46:51.842284: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpdys6zw.tmpC4LLOF.pyomo.lp
-2014-06-12 14:46:51.861913: Solve completed - number of solutions=1
-2014-06-12 14:46:51.876561: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp0uLe5f.tmp4SONIm.pyomo.lp
-2014-06-12 14:46:51.896061: Solve completed - number of solutions=1
-2014-06-12 14:46:51.909718: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpBrXWet.tmpvIB_LU.pyomo.lp
-2014-06-12 14:46:51.929421: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0796 First stage cost avg= 112963.0248 Max-Min= 2375.31
-Cumulative run-time=0.89 seconds
-
-Initiating PH iteration=4
-2014-06-12 14:46:51.942301: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpE1ObZO.tmpUxlbmr.pyomo.lp
-2014-06-12 14:46:51.960361: Solve completed - number of solutions=1
-2014-06-12 14:46:51.975538: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpV_ligq.tmpWkFc4_.pyomo.lp
-2014-06-12 14:46:51.992764: Solve completed - number of solutions=1
-2014-06-12 14:46:52.006579: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpbua2Ct.tmpY5k7JY.pyomo.lp
-2014-06-12 14:46:52.023440: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-WARNING: "[base]/pyomo.pysp/pyomo/pysp/plugins/phboundextension.py", 75, _compute_bound
- A nonzero mipgap was detected when using the PH bound plugin. The bound computation may as a result be conservative.
-Computed objective lower bound=-115850.2283
-WW PH Extension: Setting mipgap to 0.0319973, based on current value of the convergence metric
-2014-06-12 14:46:52.069026: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp2_WI4d.tmpm1rGjg.pyomo.lp
-2014-06-12 14:46:52.088706: Solve completed - number of solutions=1
-2014-06-12 14:46:52.102580: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpmHadtE.tmppOcU3o.pyomo.lp
-2014-06-12 14:46:52.122813: Solve completed - number of solutions=1
-2014-06-12 14:46:52.136750: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpe14AAS.tmp96tawd.pyomo.lp
-2014-06-12 14:46:52.156958: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Slamming criteria are satisifed - accelerating convergence
-Slamming variable=DevotedAcreage[CORN] at tree node=RootNode to value=96.8871743104; value=node average (anywhere)
-Fixing variable=DevotedAcreage[CORN] at tree node=RootNode to value=96.8871743104; converged for 0 iterations
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0776 First stage cost avg= 112915.6071 Max-Min= 3047.08
-Cumulative run-time=1.11 seconds
-
-Initiating PH iteration=5
-2014-06-12 14:46:52.170234: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmprmsg4l.tmpBwQQpi.pyomo.lp
-2014-06-12 14:46:52.188060: Solve completed - number of solutions=1
-2014-06-12 14:46:52.202656: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpnpyYnG.tmpSAKcC8.pyomo.lp
-2014-06-12 14:46:52.219551: Solve completed - number of solutions=1
-2014-06-12 14:46:52.233579: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpAnUUou.tmp1kBF9Y.pyomo.lp
-2014-06-12 14:46:52.252119: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-WARNING: "[base]/pyomo.pysp/pyomo/pysp/plugins/phboundextension.py", 75, _compute_bound
- A nonzero mipgap was detected when using the PH bound plugin. The bound computation may as a result be conservative.
-Computed objective lower bound=-114662.4278
-WW PH Extension: Setting mipgap to 0.0312342, based on current value of the convergence metric
-2014-06-12 14:46:52.298374: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpAYB_TN.tmpRfZH_P.pyomo.lp
-2014-06-12 14:46:52.318974: Solve completed - number of solutions=1
-2014-06-12 14:46:52.333404: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmphyGusd.tmp2ufBmo.pyomo.lp
-2014-06-12 14:46:52.352843: Solve completed - number of solutions=1
-2014-06-12 14:46:52.366540: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpd82OQI.tmpLOWtDO.pyomo.lp
-2014-06-12 14:46:52.386237: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=1 (total=3)
-Convergence metric= 0.0609 First stage cost avg= 112895.6887 Max-Min= 5246.95
-Cumulative run-time=1.34 seconds
-
-Initiating PH iteration=6
-2014-06-12 14:46:52.399122: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpVbFKTr.tmpsqPkl4.pyomo.lp
-2014-06-12 14:46:52.416592: Solve completed - number of solutions=1
-2014-06-12 14:46:52.430353: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp4Ct3yy.tmppPey5M.pyomo.lp
-2014-06-12 14:46:52.447031: Solve completed - number of solutions=1
-2014-06-12 14:46:52.460659: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpw7ZbDu.tmpWPWeMr.pyomo.lp
-2014-06-12 14:46:52.477658: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-WARNING: "[base]/pyomo.pysp/pyomo/pysp/plugins/phboundextension.py", 75, _compute_bound
- A nonzero mipgap was detected when using the PH bound plugin. The bound computation may as a result be conservative.
-Computed objective lower bound=-114508.9364
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-WW PH Extension: Setting mipgap to 0.0247045, based on current value of the convergence metric
-2014-06-12 14:46:52.523150: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpffLVLS.tmpZFAlud.pyomo.lp
-2014-06-12 14:46:52.543099: Solve completed - number of solutions=1
-2014-06-12 14:46:52.556788: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp737FOv.tmp36bCGQ.pyomo.lp
-2014-06-12 14:46:52.577155: Solve completed - number of solutions=1
-2014-06-12 14:46:52.591381: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpNcIqDC.tmpWXVaIx.pyomo.lp
-2014-06-12 14:46:52.612127: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Slamming criteria are satisifed - accelerating convergence
-Slamming variable=DevotedAcreage[WHEAT] at tree node=RootNode to value=140.569962554; value=node average (anywhere)
-Fixing variable=DevotedAcreage[WHEAT] at tree node=RootNode to value=140.569962554; converged for 0 iterations
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=1 (total=3)
-Convergence metric= 0.0514 First stage cost avg= 111630.6889 Max-Min= 3912.48
-Cumulative run-time=1.57 seconds
-
-Initiating PH iteration=7
-2014-06-12 14:46:52.625121: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpyWRr_t.tmphUWwF8.pyomo.lp
-2014-06-12 14:46:52.642167: Solve completed - number of solutions=1
-2014-06-12 14:46:52.655807: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpvHZpy3.tmpLG0D3A.pyomo.lp
-2014-06-12 14:46:52.674308: Solve completed - number of solutions=1
-2014-06-12 14:46:52.688563: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp8xsHUn.tmppR3DNB.pyomo.lp
-2014-06-12 14:46:52.706126: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-WARNING: "[base]/pyomo.pysp/pyomo/pysp/plugins/phboundextension.py", 75, _compute_bound
- A nonzero mipgap was detected when using the PH bound plugin. The bound computation may as a result be conservative.
-Computed objective lower bound=-115786.7766
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-WW PH Extension: Setting mipgap to 0.0210062, based on current value of the convergence metric
-2014-06-12 14:46:52.751876: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpQWlbNv.tmpjPdiEt.pyomo.lp
-2014-06-12 14:46:52.772686: Solve completed - number of solutions=1
-2014-06-12 14:46:52.786627: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpDqsltp.tmpbPQGwi.pyomo.lp
-2014-06-12 14:46:52.805772: Solve completed - number of solutions=1
-2014-06-12 14:46:52.819418: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpAPqkUo.tmpkzzBM8.pyomo.lp
-2014-06-12 14:46:52.839150: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=2 (total=3)
-Convergence metric= 0.0000 First stage cost avg= 111630.6889 Max-Min= 0.00
-Cumulative run-time=1.79 seconds
-PH converged - convergence metric is below threshold=0.0001
-Number of discrete variables fixed before final plugin calls=0 (total=0)
-Number of continuous variables fixed before final plugin calls=2 (total=3)
-2014-06-12 14:46:52.851974: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpU1EVvt.tmpH20dfe.pyomo.lp
-2014-06-12 14:46:52.870906: Solve completed - number of solutions=1
-2014-06-12 14:46:52.885017: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpMTPKMm.tmpipNcgd.pyomo.lp
-2014-06-12 14:46:52.903193: Solve completed - number of solutions=1
-2014-06-12 14:46:52.917663: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpIWsJyJ.tmpOGJBVj.pyomo.lp
-2014-06-12 14:46:52.934686: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-WARNING: "[base]/pyomo.pysp/pyomo/pysp/plugins/phboundextension.py", 75, _compute_bound
- A nonzero mipgap was detected when using the PH bound plugin. The bound computation may as a result be conservative.
-Computed objective lower bound=-114931.2396
-
- Iteration Bound
- Trivial -115405.555588
- 0 -112378.395154
- 1 -119146.913826
- 2 -122839.937276
- 3 -115850.228262
- 4 -114662.427763
- 5 -114508.936391
- 6 -115786.776605
- 7 -114931.239605
-
-Lower bound history written to file=phbound.txt
-
-Best Objective Bound: -112378.395154
-
-Best Lower Bound written to file=phbestbound.txt
-WW PH extension: Fixing all discrete variables that are converged at termination
-Total number of variables fixed at PH termination due to convergence=0
-PH algorithm history written to file=ph_history.json
-PH complete
-Convergence history:
-Iteration Metric Value
- 0 0.2540
- 1 0.1259
- 2 0.0816
- 3 0.0796
- 4 0.0776
- 5 0.0609
- 6 0.0514
- 7 0.0000
-
-***********************************************************************************************
->>>THE EXPECTED SUM OF THE STAGE COST VARIABLES=-107983.303737<<<
->>>***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise<<<
-***********************************************************************************************
-Final number of discrete variables fixed=0 (total=0)
-Final number of continuous variables fixed=2 (total=3)
-Final variable values:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 96.8872 96.8872 96.8872 Max-Min: 0.0000 Avg: 96.8872
- Index: [SUGAR_BEETS] Values: 262.5429 262.5429 262.5429 Max-Min: 0.0000 Avg: 262.5429
- Index: [WHEAT] Values: 140.5700 140.5700 140.5700 Max-Min: 0.0000 Avg: 140.5700
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 111630.6889 111630.6888 111630.6889 Max-Min: 0.0000 Avg: 111630.6889
-Final costs:
-Scenario Tree Costs
-***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise
-----------------------------------------------------
-Tree Nodes:
-
- Name=AboveAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AboveAverageScenario
- Expected cost of (sub)tree rooted at node=-273020.0421
-
- Name=AverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AverageScenario
- Expected cost of (sub)tree rooted at node=-222372.3235
-
- Name=BelowAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-163449.6122
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- AboveAverageNode
- AverageNode
- BelowAverageNode
- Scenarios:
- AboveAverageScenario
- AverageScenario
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-107983.3037
-
-----------------------------------------------------
-Scenarios:
-
- Name=AboveAverageScenario
- Probability=0.3333
- Leaf Node=AboveAverageNode
- Tree node sequence:
- RootNode
- AboveAverageNode
- Stage= FirstStage Cost=111630.6889
- Stage= SecondStage Cost=-273020.0421
- Total scenario cost=-161389.3532
-
- Name=AverageScenario
- Probability=0.3333
- Leaf Node=AverageNode
- Tree node sequence:
- RootNode
- AverageNode
- Stage= FirstStage Cost=111630.6888
- Stage= SecondStage Cost=-222372.3235
- Total scenario cost=-110741.6346
-
- Name=BelowAverageScenario
- Probability=0.3333
- Leaf Node=BelowAverageNode
- Tree node sequence:
- RootNode
- BelowAverageNode
- Stage= FirstStage Cost=111630.6889
- Stage= SecondStage Cost=-163449.6122
- Total scenario cost=-51818.9233
-
-----------------------------------------------------
-
-Total PH execution time=1.90 seconds
-
-Scenario tree solution written to file=ph_solution.json
-Shutting down Pyro solver components
-Dispatcher received request to shut down - initiating...
-
-Total execution time=4.95 seconds
-Name Server gracefully stopped.
-Lost connection to dispatch server - shutting down...
diff --git a/pyomo/pysp/tests/examples/baselines/TestPHFarmerPyro.test13.baseline b/pyomo/pysp/tests/examples/baselines/TestPHFarmerPyro.test13.baseline
deleted file mode 100644
index c8cb3374806..00000000000
--- a/pyomo/pysp/tests/examples/baselines/TestPHFarmerPyro.test13.baseline
+++ /dev/null
@@ -1,266 +0,0 @@
-*** Pyro Name Server ***
-Name server listening on: ('0.0.0.0', 9090)
-Broadcast server listening on: ('0.0.0.0', 9090)
-URI is: PYRO://10.0.0.15:9090/0a00000f1c7e20a08c291cf08d2d84adaf
-URI written to: /Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/pyomo/pysp/tests/examples/Pyro_NS_URI
-Name Server started.
-User-defined PH extension module=pyomo.pysp.plugins.phhistoryextension already imported - skipping
-Dispatcher is ready.
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI:PYRO://10.0.0.15:7766/0a00000f1c7f20a08c2a3d87ddf320a1fb
-This is worker Worker_7296@Ozymandias.local
-Listening for work from dispatcher...
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI: PYRO://10.0.0.15:7766/0a00000f1c7f20a08c2a3d87ddf320a1fb
-This is client 7297@Ozymandias.local
-Initializing PH
-
-WW PH Extension: Loading user-specified configuration from file=/Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/examples/pysp/farmer/config/wwph.cfg
-WW PH Extension: Loading variable suffixes from file=/Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/examples/pysp/farmer/config/wwph.suffixes
-User-defined PH solution writer module=pyomo.pysp.plugins.jsonsolutionwriter already imported - skipping
-Starting PH
-
-Initiating PH iteration=0
-2014-05-28 17:55:39.604519: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpM3uDCX.tmpVCQzAC.pyomo.lp
-2014-05-28 17:55:39.619746: Solve completed - number of solutions=1
-2014-05-28 17:55:39.632293: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpHge_Em.tmpxcRbCn.pyomo.lp
-2014-05-28 17:55:39.648628: Solve completed - number of solutions=1
-2014-05-28 17:55:39.661773: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpmI0f3u.tmp1tTWZk.pyomo.lp
-2014-05-28 17:55:39.676399: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.2540 First stage cost avg= 113494.4444 Max-Min=10416.67
-Cumulative run-time=0.16 seconds
-
-Initiating PH iteration=1
-WW PH Extension: Setting mipgap to 0.1000000, as specified in the configuration file
-2014-05-28 17:55:39.690604: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpLnjP8s.tmpb8i6wM.pyomo.lp
-2014-05-28 17:55:39.708263: Solve completed - number of solutions=1
-2014-05-28 17:55:39.722325: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpTdDVSu.tmpBKTK2S.pyomo.lp
-2014-05-28 17:55:39.739130: Solve completed - number of solutions=1
-2014-05-28 17:55:39.751455: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp3ANNLM.tmpy6HtIU.pyomo.lp
-2014-05-28 17:55:39.769681: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.1259 First stage cost avg= 113107.2221 Max-Min= 6943.89
-Cumulative run-time=0.25 seconds
-
-Initiating PH iteration=2
-WW PH Extension: Setting mipgap to 0.0500717, based on current value of the convergence metric
-2014-05-28 17:55:39.782966: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmph8lNq8.tmp1zJCMP.pyomo.lp
-2014-05-28 17:55:39.801554: Solve completed - number of solutions=1
-2014-05-28 17:55:39.814459: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpjgS9F4.tmpngdr46.pyomo.lp
-2014-05-28 17:55:39.832183: Solve completed - number of solutions=1
-2014-05-28 17:55:39.845275: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpmCkwH5.tmpnYRvRE.pyomo.lp
-2014-05-28 17:55:39.861843: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0816 First stage cost avg= 112954.6296 Max-Min= 2234.82
-Cumulative run-time=0.34 seconds
-
-Initiating PH iteration=3
-WW PH Extension: Setting mipgap to 0.0327607, based on current value of the convergence metric
-2014-05-28 17:55:39.875246: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpB630or.tmpHDztoa.pyomo.lp
-2014-05-28 17:55:39.893358: Solve completed - number of solutions=1
-2014-05-28 17:55:39.906194: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp1GR0jK.tmpmuNi2g.pyomo.lp
-2014-05-28 17:55:39.924074: Solve completed - number of solutions=1
-2014-05-28 17:55:39.936504: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpE6XQhX.tmpIQG9c7.pyomo.lp
-2014-05-28 17:55:39.953285: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0796 First stage cost avg= 112963.0248 Max-Min= 2375.31
-Cumulative run-time=0.43 seconds
-
-Initiating PH iteration=4
-WW PH Extension: Setting mipgap to 0.0319973, based on current value of the convergence metric
-2014-05-28 17:55:39.966333: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpqKdc76.tmpLaB7ND.pyomo.lp
-2014-05-28 17:55:39.984134: Solve completed - number of solutions=1
-2014-05-28 17:55:39.996607: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpw1K3Qc.tmpeWtWCQ.pyomo.lp
-2014-05-28 17:55:40.014674: Solve completed - number of solutions=1
-2014-05-28 17:55:40.028246: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp7WMopY.tmptTrrPM.pyomo.lp
-2014-05-28 17:55:40.047021: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Slamming criteria are satisifed - accelerating convergence
-Slamming variable=DevotedAcreage[CORN] at tree node=RootNode to value=96.8871743104; value=node average (anywhere)
-Fixing variable=DevotedAcreage[CORN] at tree node=RootNode to value=96.8871743104; converged for 0 iterations
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0776 First stage cost avg= 112915.6071 Max-Min= 3047.08
-Cumulative run-time=0.53 seconds
-
-Initiating PH iteration=5
-WW PH Extension: Setting mipgap to 0.0312342, based on current value of the convergence metric
-2014-05-28 17:55:40.060654: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpRrmhJR.tmpoizw6o.pyomo.lp
-2014-05-28 17:55:40.081819: Solve completed - number of solutions=1
-2014-05-28 17:55:40.094139: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpe3Nt74.tmppdChto.pyomo.lp
-2014-05-28 17:55:40.110942: Solve completed - number of solutions=1
-2014-05-28 17:55:40.123394: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpUFvV3x.tmpojls5E.pyomo.lp
-2014-05-28 17:55:40.142282: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=1 (total=3)
-Convergence metric= 0.0609 First stage cost avg= 112895.6887 Max-Min= 5246.95
-Cumulative run-time=0.62 seconds
-
-Initiating PH iteration=6
-WW PH Extension: Setting mipgap to 0.0247045, based on current value of the convergence metric
-2014-05-28 17:55:40.156326: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp1BY1a0.tmpLGRA9M.pyomo.lp
-2014-05-28 17:55:40.175205: Solve completed - number of solutions=1
-2014-05-28 17:55:40.188646: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp7nEuj2.tmpNsTabX.pyomo.lp
-2014-05-28 17:55:40.207644: Solve completed - number of solutions=1
-2014-05-28 17:55:40.220535: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpcUcAxB.tmpz72f5C.pyomo.lp
-2014-05-28 17:55:40.238364: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Slamming criteria are satisifed - accelerating convergence
-Slamming variable=DevotedAcreage[WHEAT] at tree node=RootNode to value=137.204959966; value=node average (anywhere)
-Fixing variable=DevotedAcreage[WHEAT] at tree node=RootNode to value=137.204959966; converged for 0 iterations
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=1 (total=3)
-Convergence metric= 0.0391 First stage cost avg= 112000.8391 Max-Min= 2624.80
-Cumulative run-time=0.72 seconds
-
-Initiating PH iteration=7
-WW PH Extension: Setting mipgap to 0.0161915, based on current value of the convergence metric
-2014-05-28 17:55:40.250938: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmptifMgd.tmp57otnm.pyomo.lp
-2014-05-28 17:55:40.268967: Solve completed - number of solutions=1
-2014-05-28 17:55:40.282070: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpiy0DQ1.tmpWqTMae.pyomo.lp
-2014-05-28 17:55:40.300304: Solve completed - number of solutions=1
-2014-05-28 17:55:40.313557: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpdL1iBu.tmpUj8MM4.pyomo.lp
-2014-05-28 17:55:40.330649: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=2 (total=3)
-Convergence metric= 0.0000 First stage cost avg= 112000.8392 Max-Min= 0.00
-Cumulative run-time=0.81 seconds
-PH converged - convergence metric is below threshold=0.0001
-Number of discrete variables fixed before final plugin calls=0 (total=0)
-Number of continuous variables fixed before final plugin calls=2 (total=3)
-WW PH extension: Fixing all discrete variables that are converged at termination
-Total number of variables fixed at PH termination due to convergence=0
-PH algorithm history written to file=ph_history.json
-PH complete
-Convergence history:
-Iteration Metric Value
- 0 0.2540
- 1 0.1259
- 2 0.0816
- 3 0.0796
- 4 0.0776
- 5 0.0609
- 6 0.0391
- 7 0.0000
-
-***********************************************************************************************
->>>THE EXPECTED SUM OF THE STAGE COST VARIABLES=-107905.908751<<<
->>>***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise<<<
-***********************************************************************************************
-Final number of discrete variables fixed=0 (total=0)
-Final number of continuous variables fixed=2 (total=3)
-Final variable values:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 96.8872 96.8872 96.8872 Max-Min: 0.0000 Avg: 96.8872
- Index: [SUGAR_BEETS] Values: 265.9079 265.9079 265.9079 Max-Min: 0.0000 Avg: 265.9079
- Index: [WHEAT] Values: 137.2050 137.2050 137.2050 Max-Min: 0.0000 Avg: 137.2050
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 112000.8392 112000.8392 112000.8391 Max-Min: 0.0000 Avg: 112000.8392
-Final costs:
-Scenario Tree Costs
-***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise
-----------------------------------------------------
-Tree Nodes:
-
- Name=AboveAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AboveAverageScenario
- Expected cost of (sub)tree rooted at node=-272111.4913
-
- Name=AverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AverageScenario
- Expected cost of (sub)tree rooted at node=-223364.9995
-
- Name=BelowAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-164243.7528
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- AboveAverageNode
- AverageNode
- BelowAverageNode
- Scenarios:
- AboveAverageScenario
- AverageScenario
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-107905.9088
-
-----------------------------------------------------
-Scenarios:
-
- Name=AboveAverageScenario
- Probability=0.3333
- Leaf Node=AboveAverageNode
- Tree node sequence:
- RootNode
- AboveAverageNode
- Stage= FirstStage Cost=112000.8391
- Stage= SecondStage Cost=-272111.4913
- Total scenario cost=-160110.6522
-
- Name=AverageScenario
- Probability=0.3333
- Leaf Node=AverageNode
- Tree node sequence:
- RootNode
- AverageNode
- Stage= FirstStage Cost=112000.8392
- Stage= SecondStage Cost=-223364.9995
- Total scenario cost=-111364.1604
-
- Name=BelowAverageScenario
- Probability=0.3333
- Leaf Node=BelowAverageNode
- Tree node sequence:
- RootNode
- BelowAverageNode
- Stage= FirstStage Cost=112000.8392
- Stage= SecondStage Cost=-164243.7528
- Total scenario cost=-52242.9136
-
-----------------------------------------------------
-
-Total PH execution time=0.81 seconds
-
-Scenario tree solution written to file=ph_solution.json
-Shutting down Pyro solver components
-Dispatcher received request to shut down - initiating...
-
-Total execution time=3.87 seconds
-Name Server gracefully stopped.
-Lost connection to dispatch server - shutting down...
diff --git a/pyomo/pysp/tests/examples/baselines/TestPHFarmerPyro.test14.baseline b/pyomo/pysp/tests/examples/baselines/TestPHFarmerPyro.test14.baseline
deleted file mode 100644
index 061c79b8b45..00000000000
--- a/pyomo/pysp/tests/examples/baselines/TestPHFarmerPyro.test14.baseline
+++ /dev/null
@@ -1,300 +0,0 @@
-*** Pyro Name Server ***
-Name server listening on: ('0.0.0.0', 9090)
-Broadcast server listening on: ('0.0.0.0', 9090)
-URI is: PYRO://10.0.0.15:9090/0a00000f1ca820a08c2c3b0b23237a20b9
-URI written to: /Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/pyomo/pysp/tests/examples/Pyro_NS_URI
-Name Server started.
-User-defined PH extension module=pyomo.pysp.plugins.phhistoryextension already imported - skipping
-Trying to import module=/Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/examples/pysp/farmer/config/aggregategetter.py
-Module successfully loaded
-Trying to import module=/Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/examples/pysp/farmer/config/rhosetter.py
-Module successfully loaded
-Trying to import module=/Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/examples/pysp/farmer/config/boundsetter.py
-Module successfully loaded
-Dispatcher is ready.
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI:PYRO://10.0.0.15:7766/0a00000f1ca920a08c2d5e83dee2cbeaf1
-This is worker Worker_7338@Ozymandias.local
-Listening for work from dispatcher...
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI: PYRO://10.0.0.15:7766/0a00000f1ca920a08c2d5e83dee2cbeaf1
-This is client 7339@Ozymandias.local
-Initializing PH
-
-Executing user aggregate getter callback function
-Executing user rho setter callback function
-Executing user bound setter callback function
-User-defined PH solution writer module=pyomo.pysp.plugins.jsonsolutionwriter already imported - skipping
-Starting PH
-
-Initiating PH iteration=0
-2014-05-28 17:55:47.610755: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp90Qjlj.tmpdIjYmS.pyomo.lp
-2014-05-28 17:55:47.625722: Solve completed - number of solutions=1
-2014-05-28 17:55:47.639043: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpmjLzmK.tmpIinu7D.pyomo.lp
-2014-05-28 17:55:47.653654: Solve completed - number of solutions=1
-2014-05-28 17:55:47.666827: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp13GpF9.tmplyHNs2.pyomo.lp
-2014-05-28 17:55:47.683136: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.2540 First stage cost avg= 113494.4444 Max-Min=10416.67
-Cumulative run-time=0.16 seconds
-
-Initiating PH iteration=1
-2014-05-28 17:55:47.696302: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp4o_Pw0.tmpseNPcu.pyomo.lp
-2014-05-28 17:55:47.714972: Solve completed - number of solutions=1
-2014-05-28 17:55:47.728593: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp4dOW4I.tmpPjlYyz.pyomo.lp
-2014-05-28 17:55:47.744915: Solve completed - number of solutions=1
-2014-05-28 17:55:47.758503: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpUQbcIj.tmp96qvEV.pyomo.lp
-2014-05-28 17:55:47.777539: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.2540 First stage cost avg= 113494.4444 Max-Min=10416.67
-Cumulative run-time=0.25 seconds
-
-Initiating PH iteration=2
-2014-05-28 17:55:47.789934: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpe1ps4s.tmphzlbkN.pyomo.lp
-2014-05-28 17:55:47.812095: Solve completed - number of solutions=1
-2014-05-28 17:55:47.824990: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpmB356g.tmpUEwA5g.pyomo.lp
-2014-05-28 17:55:47.843300: Solve completed - number of solutions=1
-2014-05-28 17:55:47.855924: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp5yn1fD.tmpQEC82S.pyomo.lp
-2014-05-28 17:55:47.874200: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.2540 First stage cost avg= 113494.4445 Max-Min=10416.67
-Cumulative run-time=0.35 seconds
-
-Initiating PH iteration=3
-2014-05-28 17:55:47.888204: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpAvR9Km.tmp_sq39h.pyomo.lp
-2014-05-28 17:55:47.905133: Solve completed - number of solutions=1
-2014-05-28 17:55:47.917970: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpHAYIJI.tmpLPEMhd.pyomo.lp
-2014-05-28 17:55:47.935924: Solve completed - number of solutions=1
-2014-05-28 17:55:47.948360: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmphBd7S7.tmpDkRymS.pyomo.lp
-2014-05-28 17:55:47.966721: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.1991 First stage cost avg= 113545.3418 Max-Min= 9341.08
-Cumulative run-time=0.44 seconds
-
-Initiating PH iteration=4
-2014-05-28 17:55:47.980122: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpYhQDR4.tmpFhR0JJ.pyomo.lp
-2014-05-28 17:55:47.999416: Solve completed - number of solutions=1
-2014-05-28 17:55:48.011699: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpHuiTXk.tmp9LKICp.pyomo.lp
-2014-05-28 17:55:48.027331: Solve completed - number of solutions=1
-2014-05-28 17:55:48.039661: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp00o4wj.tmpVFmOZH.pyomo.lp
-2014-05-28 17:55:48.056532: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.1166 First stage cost avg= 113837.6523 Max-Min= 6301.86
-Cumulative run-time=0.53 seconds
-
-Initiating PH iteration=5
-2014-05-28 17:55:48.069325: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpolaBIj.tmpqNPYiV.pyomo.lp
-2014-05-28 17:55:48.087464: Solve completed - number of solutions=1
-2014-05-28 17:55:48.099712: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp99zI8K.tmp1cytjn.pyomo.lp
-2014-05-28 17:55:48.116785: Solve completed - number of solutions=1
-2014-05-28 17:55:48.130344: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmph0r2vy.tmpgTwOzl.pyomo.lp
-2014-05-28 17:55:48.145983: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.1032 First stage cost avg= 114197.8075 Max-Min= 3806.58
-Cumulative run-time=0.62 seconds
-
-Initiating PH iteration=6
-2014-05-28 17:55:48.159591: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpyIThR2.tmpU5F45w.pyomo.lp
-2014-05-28 17:55:48.176993: Solve completed - number of solutions=1
-2014-05-28 17:55:48.189318: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpHoFAo1.tmprompMp.pyomo.lp
-2014-05-28 17:55:48.207058: Solve completed - number of solutions=1
-2014-05-28 17:55:48.219518: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpXSx7T5.tmp3AhTqT.pyomo.lp
-2014-05-28 17:55:48.237232: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.1094 First stage cost avg= 114422.4887 Max-Min= 3132.53
-Cumulative run-time=0.71 seconds
-
-Initiating PH iteration=7
-2014-05-28 17:55:48.250420: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp_l8v9L.tmpUmOm3K.pyomo.lp
-2014-05-28 17:55:48.267560: Solve completed - number of solutions=1
-2014-05-28 17:55:48.280940: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpkA2rRD.tmpCAO1sY.pyomo.lp
-2014-05-28 17:55:48.296809: Solve completed - number of solutions=1
-2014-05-28 17:55:48.309277: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpfhtmHt.tmpkQ12sQ.pyomo.lp
-2014-05-28 17:55:48.326367: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.1055 First stage cost avg= 114278.3496 Max-Min= 3564.95
-Cumulative run-time=0.80 seconds
-
-Initiating PH iteration=8
-2014-05-28 17:55:48.339070: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpGleY4K.tmpC1tj7F.pyomo.lp
-2014-05-28 17:55:48.357135: Solve completed - number of solutions=1
-2014-05-28 17:55:48.369530: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpEx1CY9.tmpO5KDk7.pyomo.lp
-2014-05-28 17:55:48.385533: Solve completed - number of solutions=1
-2014-05-28 17:55:48.398076: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpiNy3rl.tmp5UFRIq.pyomo.lp
-2014-05-28 17:55:48.414237: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.1022 First stage cost avg= 114107.3631 Max-Min= 4077.91
-Cumulative run-time=0.89 seconds
-
-Initiating PH iteration=9
-2014-05-28 17:55:48.427381: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpa4BajW.tmpqa8p2M.pyomo.lp
-2014-05-28 17:55:48.445772: Solve completed - number of solutions=1
-2014-05-28 17:55:48.458342: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpnFm4Wj.tmpF3ROOK.pyomo.lp
-2014-05-28 17:55:48.474677: Solve completed - number of solutions=1
-2014-05-28 17:55:48.487472: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp0WXH_1.tmpNRJrIv.pyomo.lp
-2014-05-28 17:55:48.503477: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.1020 First stage cost avg= 114041.4185 Max-Min= 4275.74
-Cumulative run-time=0.98 seconds
-
-Initiating PH iteration=10
-2014-05-28 17:55:48.516237: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpcl7hin.tmp4ELxQu.pyomo.lp
-2014-05-28 17:55:48.534243: Solve completed - number of solutions=1
-2014-05-28 17:55:48.546747: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpzO7loG.tmpQ0HzLl.pyomo.lp
-2014-05-28 17:55:48.564475: Solve completed - number of solutions=1
-2014-05-28 17:55:48.576939: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpofETTV.tmpSOGxAQ.pyomo.lp
-2014-05-28 17:55:48.593058: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.1021 First stage cost avg= 114054.4509 Max-Min= 4236.65
-Cumulative run-time=1.07 seconds
-Halting PH - reached maximal iteration count=10
-Number of discrete variables fixed before final plugin calls=0 (total=0)
-Number of continuous variables fixed before final plugin calls=0 (total=3)
-PH algorithm history written to file=ph_history.json
-PH complete
-Convergence history:
-Iteration Metric Value
- 0 0.2540
- 1 0.2540
- 2 0.2540
- 3 0.1991
- 4 0.1166
- 5 0.1032
- 6 0.1094
- 7 0.1055
- 8 0.1022
- 9 0.1020
- 10 0.1021
-
-***********************************************************************************************
->>>THE EXPECTED SUM OF THE STAGE COST VARIABLES=-111591.252155<<<
->>>***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise<<<
-***********************************************************************************************
-Final number of discrete variables fixed=0 (total=0)
-Final number of continuous variables fixed=0 (total=3)
-Final variable values:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 100.0000 80.0000 115.7919 Max-Min: 35.7919 Avg: 98.5973
- Index: [SUGAR_BEETS] Values: 300.0000 300.0000 250.0000 Max-Min: 50.0000 Avg: 283.3333
- Index: [WHEAT] Values: 100.0000 120.0000 134.2081 Max-Min: 34.2081 Avg: 118.0694
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 116000.0000 114400.0000 111763.3526 Max-Min: 4236.6473 Avg: 114054.4509
-Final costs:
-Scenario Tree Costs
-***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise
-----------------------------------------------------
-Tree Nodes:
-
- Name=AboveAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AboveAverageScenario
- Expected cost of (sub)tree rooted at node=-276973.7569
-
- Name=AverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AverageScenario
- Expected cost of (sub)tree rooted at node=-232999.9995
-
- Name=BelowAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-172799.9999
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- AboveAverageNode
- AverageNode
- BelowAverageNode
- Scenarios:
- AboveAverageScenario
- AverageScenario
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-111591.2522
-
-----------------------------------------------------
-Scenarios:
-
- Name=AboveAverageScenario
- Probability=0.3333
- Leaf Node=AboveAverageNode
- Tree node sequence:
- RootNode
- AboveAverageNode
- Stage= FirstStage Cost=111763.3526
- Stage= SecondStage Cost=-276973.7569
- Total scenario cost=-165210.4042
-
- Name=AverageScenario
- Probability=0.3333
- Leaf Node=AverageNode
- Tree node sequence:
- RootNode
- AverageNode
- Stage= FirstStage Cost=114400.0000
- Stage= SecondStage Cost=-232999.9995
- Total scenario cost=-118599.9994
-
- Name=BelowAverageScenario
- Probability=0.3333
- Leaf Node=BelowAverageNode
- Tree node sequence:
- RootNode
- BelowAverageNode
- Stage= FirstStage Cost=116000.0000
- Stage= SecondStage Cost=-172799.9999
- Total scenario cost=-56799.9999
-
-----------------------------------------------------
-
-Total PH execution time=1.07 seconds
-
-Scenario tree solution written to file=ph_solution.json
-Shutting down Pyro solver components
-Dispatcher received request to shut down - initiating...
-
-Total execution time=4.13 seconds
-Name Server gracefully stopped.
-Lost connection to dispatch server - shutting down...
diff --git a/pyomo/pysp/tests/examples/baselines/TestPHFarmerPyro.test14_withef.baseline b/pyomo/pysp/tests/examples/baselines/TestPHFarmerPyro.test14_withef.baseline
deleted file mode 100644
index 20247f9b883..00000000000
--- a/pyomo/pysp/tests/examples/baselines/TestPHFarmerPyro.test14_withef.baseline
+++ /dev/null
@@ -1,436 +0,0 @@
-*** Pyro Name Server ***
-Name server listening on: ('0.0.0.0', 9090)
-Broadcast server listening on: ('0.0.0.0', 9090)
-URI is: PYRO://10.0.0.253:9090/0a0000fddeff20b9dcc059b2aa12f29ef9
-URI written to: /Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/pyomo/pysp/tests/examples/Pyro_NS_URI
-Name Server started.
-User-defined PH extension module=pyomo.pysp.plugins.phhistoryextension already imported - skipping
-Trying to import module=/Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/examples/pysp/farmer/config/aggregategetter.py
-Module successfully loaded
-Trying to import module=/Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/examples/pysp/farmer/config/rhosetter.py
-Module successfully loaded
-Trying to import module=/Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/examples/pysp/farmer/config/boundsetter.py
-Module successfully loaded
-Dispatcher is ready.
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI:PYRO://10.0.0.253:7766/0a0000fddf0020b9dcc17b0a9b617b60e8
-This is worker Worker_57089@Ozymandias.local
-Listening for work from dispatcher...
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI: PYRO://10.0.0.253:7766/0a0000fddf0020b9dcc17b0a9b617b60e8
-This is client 57090@Ozymandias.local
-Initializing PH
-
-Executing user aggregate getter callback function
-Executing user rho setter callback function
-Executing user bound setter callback function
-User-defined PH solution writer module=pyomo.pysp.plugins.jsonsolutionwriter already imported - skipping
-Starting PH
-
-Initiating PH iteration=0
-2014-07-16 21:40:59.596775: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp6tnK67.tmpqgJPQy.pyomo.lp
-2014-07-16 21:40:59.610414: Solve completed - number of solutions=1
-2014-07-16 21:40:59.623875: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpS2UqBl.tmp4MoR1p.pyomo.lp
-2014-07-16 21:40:59.636275: Solve completed - number of solutions=1
-2014-07-16 21:40:59.649462: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpw_C_w6.tmpCdyc8c.pyomo.lp
-2014-07-16 21:40:59.662069: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.2540 First stage cost avg= 113494.4444 Max-Min=10416.67
-Cumulative run-time=0.15 seconds
-
-Initiating PH iteration=1
-2014-07-16 21:40:59.675618: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpTQV0vO.tmpNKTbDT.pyomo.lp
-2014-07-16 21:40:59.691940: Solve completed - number of solutions=1
-2014-07-16 21:40:59.705477: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpjJd0eg.tmp_jerF_.pyomo.lp
-2014-07-16 21:40:59.720206: Solve completed - number of solutions=1
-2014-07-16 21:40:59.733681: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpiW2mup.tmp4tsGOX.pyomo.lp
-2014-07-16 21:40:59.748712: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.2540 First stage cost avg= 113494.4444 Max-Min=10416.67
-Cumulative run-time=0.24 seconds
-
-Initiating PH iteration=2
-2014-07-16 21:40:59.761769: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpeq8xVc.tmpC5RS43.pyomo.lp
-2014-07-16 21:40:59.777048: Solve completed - number of solutions=1
-2014-07-16 21:40:59.790531: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpMrCgWM.tmp_HbH8w.pyomo.lp
-2014-07-16 21:40:59.806172: Solve completed - number of solutions=1
-2014-07-16 21:40:59.821405: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpitY4XY.tmp5q40IE.pyomo.lp
-2014-07-16 21:40:59.837567: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.2540 First stage cost avg= 113494.4445 Max-Min=10416.67
-Cumulative run-time=0.33 seconds
-
-Initiating PH iteration=3
-2014-07-16 21:40:59.851589: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpX3v2lx.tmpEShO2b.pyomo.lp
-2014-07-16 21:40:59.867122: Solve completed - number of solutions=1
-2014-07-16 21:40:59.880519: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpK3swfs.tmpDKfNKr.pyomo.lp
-2014-07-16 21:40:59.895705: Solve completed - number of solutions=1
-2014-07-16 21:40:59.910077: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpKgMumR.tmp8GgXWH.pyomo.lp
-2014-07-16 21:40:59.925309: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.1991 First stage cost avg= 113545.3418 Max-Min= 9341.08
-Cumulative run-time=0.41 seconds
-
-Initiating PH iteration=4
-2014-07-16 21:40:59.938392: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpi460oZ.tmpkXb7Pg.pyomo.lp
-2014-07-16 21:40:59.954821: Solve completed - number of solutions=1
-2014-07-16 21:40:59.969144: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpbgi9uu.tmp3YBCo4.pyomo.lp
-2014-07-16 21:40:59.984713: Solve completed - number of solutions=1
-2014-07-16 21:40:59.998923: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpwxX33Y.tmpCekM0f.pyomo.lp
-2014-07-16 21:41:00.014208: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.1166 First stage cost avg= 113837.6523 Max-Min= 6301.86
-Cumulative run-time=0.50 seconds
-
-Initiating PH iteration=5
-2014-07-16 21:41:00.026965: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpBLxd1l.tmpSWbUwE.pyomo.lp
-2014-07-16 21:41:00.043397: Solve completed - number of solutions=1
-2014-07-16 21:41:00.057281: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpiGuhVn.tmpsWaIgQ.pyomo.lp
-2014-07-16 21:41:00.072577: Solve completed - number of solutions=1
-2014-07-16 21:41:00.085963: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpTulAx_.tmpfbuzAs.pyomo.lp
-2014-07-16 21:41:00.101302: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.1032 First stage cost avg= 114197.8075 Max-Min= 3806.58
-Cumulative run-time=0.59 seconds
-
-Initiating PH iteration=6
-2014-07-16 21:41:00.115599: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpH82zML.tmpSyJp1P.pyomo.lp
-2014-07-16 21:41:00.130560: Solve completed - number of solutions=1
-2014-07-16 21:41:00.144741: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpqpzuAP.tmpBmbn2q.pyomo.lp
-2014-07-16 21:41:00.160817: Solve completed - number of solutions=1
-2014-07-16 21:41:00.174465: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpkGj0eP.tmp8x5kVG.pyomo.lp
-2014-07-16 21:41:00.189199: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.1094 First stage cost avg= 114422.4887 Max-Min= 3132.53
-Cumulative run-time=0.68 seconds
-
-Initiating PH iteration=7
-2014-07-16 21:41:00.202830: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpi3q0mx.tmpIOD_16.pyomo.lp
-2014-07-16 21:41:00.219169: Solve completed - number of solutions=1
-2014-07-16 21:41:00.232605: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpXWXaJe.tmpxCbHo1.pyomo.lp
-2014-07-16 21:41:00.247138: Solve completed - number of solutions=1
-2014-07-16 21:41:00.261069: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpfZ3FkQ.tmpYEBZS_.pyomo.lp
-2014-07-16 21:41:00.276550: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.1055 First stage cost avg= 114278.3496 Max-Min= 3564.95
-Cumulative run-time=0.76 seconds
-
-Initiating PH iteration=8
-2014-07-16 21:41:00.289601: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpenx7F2.tmp34U4bD.pyomo.lp
-2014-07-16 21:41:00.306171: Solve completed - number of solutions=1
-2014-07-16 21:41:00.319573: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpvZomKR.tmpQGqGjN.pyomo.lp
-2014-07-16 21:41:00.334096: Solve completed - number of solutions=1
-2014-07-16 21:41:00.347459: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpTcIL2_.tmpfuYQDH.pyomo.lp
-2014-07-16 21:41:00.362811: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.1022 First stage cost avg= 114107.3631 Max-Min= 4077.91
-Cumulative run-time=0.85 seconds
-
-Initiating PH iteration=9
-2014-07-16 21:41:00.376704: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpmOEIvC.tmpAWL7ab.pyomo.lp
-2014-07-16 21:41:00.393512: Solve completed - number of solutions=1
-2014-07-16 21:41:00.406995: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp3lhSCp.tmpovdmdO.pyomo.lp
-2014-07-16 21:41:00.421458: Solve completed - number of solutions=1
-2014-07-16 21:41:00.434817: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpamZGPn.tmpSjkziJ.pyomo.lp
-2014-07-16 21:41:00.449813: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.1020 First stage cost avg= 114041.4185 Max-Min= 4275.74
-Cumulative run-time=0.94 seconds
-
-Initiating PH iteration=10
-2014-07-16 21:41:00.462523: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp_vSNTZ.tmpuOzz2u.pyomo.lp
-2014-07-16 21:41:00.479571: Solve completed - number of solutions=1
-2014-07-16 21:41:00.493651: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpzl5_08.tmpqonNRI.pyomo.lp
-2014-07-16 21:41:00.508469: Solve completed - number of solutions=1
-2014-07-16 21:41:00.522000: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpTqfx_w.tmp1StYiM.pyomo.lp
-2014-07-16 21:41:00.536705: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.1021 First stage cost avg= 114054.4509 Max-Min= 4236.65
-Cumulative run-time=1.02 seconds
-Halting PH - reached maximal iteration count=10
-Number of discrete variables fixed before final plugin calls=0 (total=0)
-Number of continuous variables fixed before final plugin calls=0 (total=3)
-PH algorithm history written to file=ph_history.json
-PH complete
-Convergence history:
-Iteration Metric Value
- 0 0.2540
- 1 0.2540
- 2 0.2540
- 3 0.1991
- 4 0.1166
- 5 0.1032
- 6 0.1094
- 7 0.1055
- 8 0.1022
- 9 0.1020
- 10 0.1021
-
-***********************************************************************************************
->>>THE EXPECTED SUM OF THE STAGE COST VARIABLES=-111591.252155<<<
->>>***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise<<<
-***********************************************************************************************
-Final number of discrete variables fixed=0 (total=0)
-Final number of continuous variables fixed=0 (total=3)
-Final variable values:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 100.0000 80.0000 115.7919 Max-Min: 35.7919 Avg: 98.5973
- Index: [SUGAR_BEETS] Values: 300.0000 300.0000 250.0000 Max-Min: 50.0000 Avg: 283.3333
- Index: [WHEAT] Values: 100.0000 120.0000 134.2081 Max-Min: 34.2081 Avg: 118.0694
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 116000.0000 114400.0000 111763.3526 Max-Min: 4236.6473 Avg: 114054.4509
-Final costs:
-Scenario Tree Costs
-***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise
-----------------------------------------------------
-Tree Nodes:
-
- Name=AboveAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AboveAverageScenario
- Expected cost of (sub)tree rooted at node=-276973.7569
-
- Name=AverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AverageScenario
- Expected cost of (sub)tree rooted at node=-232999.9995
-
- Name=BelowAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-172799.9999
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- AboveAverageNode
- AverageNode
- BelowAverageNode
- Scenarios:
- AboveAverageScenario
- AverageScenario
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-111591.2522
-
-----------------------------------------------------
-Scenarios:
-
- Name=AboveAverageScenario
- Probability=0.3333
- Leaf Node=AboveAverageNode
- Tree node sequence:
- RootNode
- AboveAverageNode
- Stage= FirstStage Cost=111763.3526
- Stage= SecondStage Cost=-276973.7569
- Total scenario cost=-165210.4042
-
- Name=AverageScenario
- Probability=0.3333
- Leaf Node=AverageNode
- Tree node sequence:
- RootNode
- AverageNode
- Stage= FirstStage Cost=114400.0000
- Stage= SecondStage Cost=-232999.9995
- Total scenario cost=-118599.9994
-
- Name=BelowAverageScenario
- Probability=0.3333
- Leaf Node=BelowAverageNode
- Tree node sequence:
- RootNode
- BelowAverageNode
- Stage= FirstStage Cost=116000.0000
- Stage= SecondStage Cost=-172799.9999
- Total scenario cost=-56799.9999
-
-----------------------------------------------------
-
-Total PH execution time=1.03 seconds
-
-Scenario tree solution written to file=ph_solution.json
-Pushing fixed variable statuses to scenario instances
-Number of discrete variables fixed prior to ef creation=0 (total=0)
-Number of continuous variables fixed prior to ef creation=0 (total=3)
-Creating extensive form for remainder problem
-Time to construct extensive form instance=0.00 seconds
-Queuing extensive form solve
-Waiting for extensive form solve
-Done with extensive form solve - loading results
-Storing solution in scenario tree
-Time to solve and load results for the extensive form=0.02 seconds
-
-***********************************************************************************************
->>>THE EXPECTED SUM OF THE STAGE COST VARIABLES=-108390.00001<<<
-***********************************************************************************************
-
-Extensive form solution:
-----------------------------------------------------
-Tree Nodes:
-
- Name=AboveAverageNode
- Stage=SecondStage
- Parent=RootNode
- Variables:
- QuantitySubQuotaSold[CORN]=48.0
- QuantitySubQuotaSold[SUGAR_BEETS]=6000.0
- QuantitySubQuotaSold[WHEAT]=310.0
-
- Name=AverageNode
- Stage=SecondStage
- Parent=RootNode
- Variables:
- QuantitySubQuotaSold[SUGAR_BEETS]=5000.0
- QuantitySubQuotaSold[WHEAT]=225.0
-
- Name=BelowAverageNode
- Stage=SecondStage
- Parent=RootNode
- Variables:
- QuantityPurchased[CORN]=48.0
- QuantitySubQuotaSold[SUGAR_BEETS]=4000.0
- QuantitySubQuotaSold[WHEAT]=140.0
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Variables:
- DevotedAcreage[CORN]=80.0
- DevotedAcreage[SUGAR_BEETS]=250.0
- DevotedAcreage[WHEAT]=170.0
-
-
-Extensive form costs:
-Scenario Tree Costs
-***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise
-----------------------------------------------------
-Tree Nodes:
-
- Name=AboveAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AboveAverageScenario
- Expected cost of (sub)tree rooted at node=-275900.0000
-
- Name=AverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AverageScenario
- Expected cost of (sub)tree rooted at node=-218250.0000
-
- Name=BelowAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-157720.0000
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- AboveAverageNode
- AverageNode
- BelowAverageNode
- Scenarios:
- AboveAverageScenario
- AverageScenario
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-108390.0000
-
-----------------------------------------------------
-Scenarios:
-
- Name=AboveAverageScenario
- Probability=0.3333
- Leaf Node=AboveAverageNode
- Tree node sequence:
- RootNode
- AboveAverageNode
- Stage= FirstStage Cost=108900.0000
- Stage= SecondStage Cost=-275900.0000
- Total scenario cost=-167000.0000
-
- Name=AverageScenario
- Probability=0.3333
- Leaf Node=AverageNode
- Tree node sequence:
- RootNode
- AverageNode
- Stage= FirstStage Cost=108900.0000
- Stage= SecondStage Cost=-218250.0000
- Total scenario cost=-109350.0000
-
- Name=BelowAverageScenario
- Probability=0.3333
- Leaf Node=BelowAverageNode
- Tree node sequence:
- RootNode
- BelowAverageNode
- Stage= FirstStage Cost=108900.0000
- Stage= SecondStage Cost=-157720.0000
- Total scenario cost=-48820.0000
-
-----------------------------------------------------
-Scenario tree solution written to file=postphef_solution.json
-Shutting down Pyro solver components
-Dispatcher received request to shut down - initiating...
-
-Total execution time=4.10 seconds
-Name Server gracefully stopped.
-Lost connection to dispatch server - shutting down...
diff --git a/pyomo/pysp/tests/examples/baselines/TestPHFarmerPyro.test1_withef.baseline b/pyomo/pysp/tests/examples/baselines/TestPHFarmerPyro.test1_withef.baseline
deleted file mode 100644
index 41fb6064fdc..00000000000
--- a/pyomo/pysp/tests/examples/baselines/TestPHFarmerPyro.test1_withef.baseline
+++ /dev/null
@@ -1,749 +0,0 @@
-*** Pyro Name Server ***
-Name server listening on: ('0.0.0.0', 9090)
-Broadcast server listening on: ('0.0.0.0', 9090)
-URI is: PYRO://10.0.0.253:9090/0a0000fd19be20b9bb3d56b1509570c43a
-URI written to: /Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/pyomo/pysp/tests/examples/Pyro_NS_URI
-Name Server started.
-User-defined PH extension module=pyomo.pysp.plugins.phhistoryextension already imported - skipping
-Dispatcher is ready.
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI:PYRO://10.0.0.253:7766/0a0000fd19bf20b9bb3e5b6c4f91913b0d
-This is worker Worker_6592@Ozymandias.local
-Listening for work from dispatcher...
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI: PYRO://10.0.0.253:7766/0a0000fd19bf20b9bb3e5b6c4f91913b0d
-This is client 6593@Ozymandias.local
-Initializing PH
-
-User-defined PH solution writer module=pyomo.pysp.plugins.jsonsolutionwriter already imported - skipping
-Starting PH
-
-Initiating PH iteration=0
-2014-07-16 15:34:57.035865: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpf_f5Vp.tmpD1YoNO.pyomo.lp
-2014-07-16 15:34:57.048519: Solve completed - number of solutions=1
-2014-07-16 15:34:57.061200: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmprkMghq.tmp1suFuG.pyomo.lp
-2014-07-16 15:34:57.072547: Solve completed - number of solutions=1
-2014-07-16 15:34:57.085682: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp7WIPi4.tmpPYxxt2.pyomo.lp
-2014-07-16 15:34:57.096721: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.2540 First stage cost avg= 113494.4444 Max-Min=10416.67
-Cumulative run-time=0.15 seconds
-
-Initiating PH iteration=1
-2014-07-16 15:34:57.110440: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpp0RT7h.tmpyBkJxI.pyomo.lp
-2014-07-16 15:34:57.126784: Solve completed - number of solutions=1
-2014-07-16 15:34:57.140345: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpPG9Dde.tmp1o3E27.pyomo.lp
-2014-07-16 15:34:57.154437: Solve completed - number of solutions=1
-2014-07-16 15:34:57.166876: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpaHv7R2.tmpjTT2Od.pyomo.lp
-2014-07-16 15:34:57.180189: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.1259 First stage cost avg= 113107.2221 Max-Min= 6943.89
-Cumulative run-time=0.23 seconds
-
-Initiating PH iteration=2
-2014-07-16 15:34:57.193747: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpWSsJfB.tmp1DSHQD.pyomo.lp
-2014-07-16 15:34:57.207861: Solve completed - number of solutions=1
-2014-07-16 15:34:57.220140: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpGIwKz7.tmpG9yqBZ.pyomo.lp
-2014-07-16 15:34:57.233963: Solve completed - number of solutions=1
-2014-07-16 15:34:57.246370: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpF5WLJ7.tmpKZPIUJ.pyomo.lp
-2014-07-16 15:34:57.260646: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0816 First stage cost avg= 112954.6296 Max-Min= 2234.82
-Cumulative run-time=0.31 seconds
-
-Initiating PH iteration=3
-2014-07-16 15:34:57.274204: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpcLsIph.tmp6pf6Eu.pyomo.lp
-2014-07-16 15:34:57.288826: Solve completed - number of solutions=1
-2014-07-16 15:34:57.302403: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpHUjbFI.tmpigsBHT.pyomo.lp
-2014-07-16 15:34:57.316115: Solve completed - number of solutions=1
-2014-07-16 15:34:57.329572: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpFIA0Gt.tmpyDfAUy.pyomo.lp
-2014-07-16 15:34:57.343922: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0796 First stage cost avg= 112963.0248 Max-Min= 2375.31
-Cumulative run-time=0.39 seconds
-
-Initiating PH iteration=4
-2014-07-16 15:34:57.356546: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp7QWruh.tmpZ_Tpdr.pyomo.lp
-2014-07-16 15:34:57.371119: Solve completed - number of solutions=1
-2014-07-16 15:34:57.383419: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp7Ioogp.tmpqcDmuu.pyomo.lp
-2014-07-16 15:34:57.398266: Solve completed - number of solutions=1
-2014-07-16 15:34:57.411108: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmplnxqXz.tmpny2FAb.pyomo.lp
-2014-07-16 15:34:57.425648: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0776 First stage cost avg= 112915.6071 Max-Min= 3047.08
-Cumulative run-time=0.48 seconds
-
-Initiating PH iteration=5
-2014-07-16 15:34:57.439204: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpLj3WLS.tmpkTDqkP.pyomo.lp
-2014-07-16 15:34:57.454520: Solve completed - number of solutions=1
-2014-07-16 15:34:57.467037: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpvOR9NS.tmpdlh_R2.pyomo.lp
-2014-07-16 15:34:57.480974: Solve completed - number of solutions=1
-2014-07-16 15:34:57.493515: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpdQpNy7.tmpPR6xvS.pyomo.lp
-2014-07-16 15:34:57.508040: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0794 First stage cost avg= 112825.3926 Max-Min= 3339.81
-Cumulative run-time=0.56 seconds
-
-Initiating PH iteration=6
-2014-07-16 15:34:57.520530: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpkxrofa.tmp1zVi7v.pyomo.lp
-2014-07-16 15:34:57.536384: Solve completed - number of solutions=1
-2014-07-16 15:34:57.549736: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpBO80kw.tmptHdJ5U.pyomo.lp
-2014-07-16 15:34:57.564485: Solve completed - number of solutions=1
-2014-07-16 15:34:57.577211: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpYCS61e.tmpCCPLAS.pyomo.lp
-2014-07-16 15:34:57.590851: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0668 First stage cost avg= 112317.9502 Max-Min= 2019.60
-Cumulative run-time=0.64 seconds
-
-Initiating PH iteration=7
-2014-07-16 15:34:57.603424: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpQ7sqW2.tmp1nLFpe.pyomo.lp
-2014-07-16 15:34:57.619696: Solve completed - number of solutions=1
-2014-07-16 15:34:57.634128: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpzMplJp.tmpI_w_iY.pyomo.lp
-2014-07-16 15:34:57.647854: Solve completed - number of solutions=1
-2014-07-16 15:34:57.660256: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpF_3HRI.tmpYRmAbl.pyomo.lp
-2014-07-16 15:34:57.674905: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0542 First stage cost avg= 111364.4660 Max-Min= 1181.85
-Cumulative run-time=0.73 seconds
-
-Initiating PH iteration=8
-2014-07-16 15:34:57.688028: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpiskHJ0.tmpbvu2y0.pyomo.lp
-2014-07-16 15:34:57.702842: Solve completed - number of solutions=1
-2014-07-16 15:34:57.715516: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpMbjSbZ.tmpvTVlqj.pyomo.lp
-2014-07-16 15:34:57.729460: Solve completed - number of solutions=1
-2014-07-16 15:34:57.741861: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpx5oV2d.tmpBjybp4.pyomo.lp
-2014-07-16 15:34:57.756287: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0360 First stage cost avg= 110283.4074 Max-Min= 463.23
-Cumulative run-time=0.81 seconds
-
-Initiating PH iteration=9
-2014-07-16 15:34:57.768903: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpDnWdaw.tmp0D2zk9.pyomo.lp
-2014-07-16 15:34:57.784543: Solve completed - number of solutions=1
-2014-07-16 15:34:57.797824: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpGJb1a9.tmp5AkbtH.pyomo.lp
-2014-07-16 15:34:57.812453: Solve completed - number of solutions=1
-2014-07-16 15:34:57.825846: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpBXeEQ_.tmpwGaFZb.pyomo.lp
-2014-07-16 15:34:57.840391: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0243 First stage cost avg= 109399.2542 Max-Min= 363.90
-Cumulative run-time=0.89 seconds
-
-Initiating PH iteration=10
-2014-07-16 15:34:57.853490: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpAqTzFT.tmpI2zXkf.pyomo.lp
-2014-07-16 15:34:57.869363: Solve completed - number of solutions=1
-2014-07-16 15:34:57.882143: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpEwTuUY.tmpMKYHYg.pyomo.lp
-2014-07-16 15:34:57.896581: Solve completed - number of solutions=1
-2014-07-16 15:34:57.909160: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp2FMuXP.tmp_kH2tj.pyomo.lp
-2014-07-16 15:34:57.924049: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0256 First stage cost avg= 108834.1930 Max-Min= 933.90
-Cumulative run-time=0.97 seconds
-
-Initiating PH iteration=11
-2014-07-16 15:34:57.937555: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpTyhFS8.tmpl9cDvf.pyomo.lp
-2014-07-16 15:34:57.952228: Solve completed - number of solutions=1
-2014-07-16 15:34:57.965557: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpRj41cp.tmpLDoaFZ.pyomo.lp
-2014-07-16 15:34:57.979591: Solve completed - number of solutions=1
-2014-07-16 15:34:57.992997: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpzqrsT4.tmpw1uYko.pyomo.lp
-2014-07-16 15:34:58.007460: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0248 First stage cost avg= 108575.3219 Max-Min= 918.57
-Cumulative run-time=1.06 seconds
-
-Initiating PH iteration=12
-2014-07-16 15:34:58.021299: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpGE6ncb.tmpABK_W_.pyomo.lp
-2014-07-16 15:34:58.036365: Solve completed - number of solutions=1
-2014-07-16 15:34:58.048989: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpwI1zQj.tmpAWNiKQ.pyomo.lp
-2014-07-16 15:34:58.063866: Solve completed - number of solutions=1
-2014-07-16 15:34:58.076700: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpJR9BKM.tmp0Xtts_.pyomo.lp
-2014-07-16 15:34:58.090649: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0163 First stage cost avg= 108513.5347 Max-Min= 591.25
-Cumulative run-time=1.14 seconds
-
-Initiating PH iteration=13
-2014-07-16 15:34:58.103143: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpWUtzDC.tmpuq39Gb.pyomo.lp
-2014-07-16 15:34:58.118325: Solve completed - number of solutions=1
-2014-07-16 15:34:58.131307: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp1829a2.tmpl3h6US.pyomo.lp
-2014-07-16 15:34:58.145476: Solve completed - number of solutions=1
-2014-07-16 15:34:58.157805: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpFeuSkf.tmpZfg6XC.pyomo.lp
-2014-07-16 15:34:58.171477: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0081 First stage cost avg= 108528.2899 Max-Min= 175.95
-Cumulative run-time=1.22 seconds
-
-Initiating PH iteration=14
-2014-07-16 15:34:58.185093: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpeTveOf.tmp_Ia9vo.pyomo.lp
-2014-07-16 15:34:58.199757: Solve completed - number of solutions=1
-2014-07-16 15:34:58.212175: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpyTl2ev.tmpNk6cvi.pyomo.lp
-2014-07-16 15:34:58.226121: Solve completed - number of solutions=1
-2014-07-16 15:34:58.238574: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp0s9AYw.tmpEQ1no1.pyomo.lp
-2014-07-16 15:34:58.252647: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0168 First stage cost avg= 108561.6577 Max-Min= 274.77
-Cumulative run-time=1.30 seconds
-
-Initiating PH iteration=15
-2014-07-16 15:34:58.265205: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpHAhYFZ.tmpkHXOyb.pyomo.lp
-2014-07-16 15:34:58.280180: Solve completed - number of solutions=1
-2014-07-16 15:34:58.293053: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpbVTZUT.tmpTQHHQz.pyomo.lp
-2014-07-16 15:34:58.306616: Solve completed - number of solutions=1
-2014-07-16 15:34:58.318932: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpVuhGtc.tmpM9jvbu.pyomo.lp
-2014-07-16 15:34:58.333207: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0163 First stage cost avg= 108604.0579 Max-Min= 295.14
-Cumulative run-time=1.38 seconds
-
-Initiating PH iteration=16
-2014-07-16 15:34:58.345837: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpAWeg8x.tmpvj4DzX.pyomo.lp
-2014-07-16 15:34:58.361064: Solve completed - number of solutions=1
-2014-07-16 15:34:58.373526: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp7ecWxw.tmpv0IQWx.pyomo.lp
-2014-07-16 15:34:58.387505: Solve completed - number of solutions=1
-2014-07-16 15:34:58.399782: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmphaJL5d.tmpBO6gaE.pyomo.lp
-2014-07-16 15:34:58.413748: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0098 First stage cost avg= 108667.3583 Max-Min= 127.67
-Cumulative run-time=1.46 seconds
-
-Initiating PH iteration=17
-2014-07-16 15:34:58.426224: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp_WVdFu.tmp8YBBT4.pyomo.lp
-2014-07-16 15:34:58.442722: Solve completed - number of solutions=1
-2014-07-16 15:34:58.455395: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpI5_6_B.tmpOTNkkq.pyomo.lp
-2014-07-16 15:34:58.470203: Solve completed - number of solutions=1
-2014-07-16 15:34:58.482884: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp8HkHak.tmpdrcFsX.pyomo.lp
-2014-07-16 15:34:58.497373: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0032 First stage cost avg= 108758.4237 Max-Min= 59.69
-Cumulative run-time=1.55 seconds
-
-Initiating PH iteration=18
-2014-07-16 15:34:58.510272: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp7Degh3.tmpOShaHz.pyomo.lp
-2014-07-16 15:34:58.525041: Solve completed - number of solutions=1
-2014-07-16 15:34:58.537622: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpYq2XEf.tmpMyS65o.pyomo.lp
-2014-07-16 15:34:58.551804: Solve completed - number of solutions=1
-2014-07-16 15:34:58.564215: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpFGCqk3.tmpxJ4iAU.pyomo.lp
-2014-07-16 15:34:58.578053: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0026 First stage cost avg= 108868.1277 Max-Min= 101.79
-Cumulative run-time=1.63 seconds
-
-Initiating PH iteration=19
-2014-07-16 15:34:58.590618: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp_mwTMY.tmpepozYt.pyomo.lp
-2014-07-16 15:34:58.605877: Solve completed - number of solutions=1
-2014-07-16 15:34:58.618335: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpdiiKqa.tmpNpCEal.pyomo.lp
-2014-07-16 15:34:58.632903: Solve completed - number of solutions=1
-2014-07-16 15:34:58.645209: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpQbFqMu.tmpWyACMv.pyomo.lp
-2014-07-16 15:34:58.659097: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0039 First stage cost avg= 108975.3089 Max-Min= 73.41
-Cumulative run-time=1.71 seconds
-
-Initiating PH iteration=20
-2014-07-16 15:34:58.671976: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpyVFWhW.tmpX50oQC.pyomo.lp
-2014-07-16 15:34:58.687554: Solve completed - number of solutions=1
-2014-07-16 15:34:58.700201: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpzMzi51.tmpn58PPl.pyomo.lp
-2014-07-16 15:34:58.714780: Solve completed - number of solutions=1
-2014-07-16 15:34:58.727268: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpcI1DdE.tmpAfSmOx.pyomo.lp
-2014-07-16 15:34:58.741215: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0043 First stage cost avg= 109057.4144 Max-Min= 39.47
-Cumulative run-time=1.79 seconds
-
-Initiating PH iteration=21
-2014-07-16 15:34:58.754706: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpuDTf4n.tmpaov2UH.pyomo.lp
-2014-07-16 15:34:58.770378: Solve completed - number of solutions=1
-2014-07-16 15:34:58.782823: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp9GMRjs.tmp88wixc.pyomo.lp
-2014-07-16 15:34:58.796665: Solve completed - number of solutions=1
-2014-07-16 15:34:58.809046: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmphI6Hxp.tmpnPqAQv.pyomo.lp
-2014-07-16 15:34:58.823418: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0044 First stage cost avg= 109099.7145 Max-Min= 87.57
-Cumulative run-time=1.87 seconds
-
-Initiating PH iteration=22
-2014-07-16 15:34:58.836916: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp3iIel0.tmp6p7e6N.pyomo.lp
-2014-07-16 15:34:58.852432: Solve completed - number of solutions=1
-2014-07-16 15:34:58.865482: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmppL7jmb.tmpn6XcQ1.pyomo.lp
-2014-07-16 15:34:58.879142: Solve completed - number of solutions=1
-2014-07-16 15:34:58.892575: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp6EhyRc.tmpDp2i99.pyomo.lp
-2014-07-16 15:34:58.906555: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0040 First stage cost avg= 109099.1239 Max-Min= 104.22
-Cumulative run-time=1.96 seconds
-
-Initiating PH iteration=23
-2014-07-16 15:34:58.919201: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpIoJgyO.tmpbSby3D.pyomo.lp
-2014-07-16 15:34:58.933967: Solve completed - number of solutions=1
-2014-07-16 15:34:58.946332: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpUMpUxe.tmpF6MaYT.pyomo.lp
-2014-07-16 15:34:58.960181: Solve completed - number of solutions=1
-2014-07-16 15:34:58.972467: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpR90VVn.tmpHqRWcg.pyomo.lp
-2014-07-16 15:34:58.986751: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0032 First stage cost avg= 109062.8322 Max-Min= 88.54
-Cumulative run-time=2.04 seconds
-
-Initiating PH iteration=24
-2014-07-16 15:34:59.016513: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpGQZDQr.tmpRjrJ2k.pyomo.lp
-2014-07-16 15:34:59.031270: Solve completed - number of solutions=1
-2014-07-16 15:34:59.043637: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpBlRbgi.tmpt4NeA4.pyomo.lp
-2014-07-16 15:34:59.056959: Solve completed - number of solutions=1
-2014-07-16 15:34:59.069378: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpH3sezz.tmpnrz0jn.pyomo.lp
-2014-07-16 15:34:59.082809: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0021 First stage cost avg= 109004.1156 Max-Min= 54.49
-Cumulative run-time=2.13 seconds
-
-Initiating PH iteration=25
-2014-07-16 15:34:59.096432: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpQoyBfu.tmpSjj53h.pyomo.lp
-2014-07-16 15:34:59.111882: Solve completed - number of solutions=1
-2014-07-16 15:34:59.124976: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpieUzUI.tmp6DYHfg.pyomo.lp
-2014-07-16 15:34:59.139097: Solve completed - number of solutions=1
-2014-07-16 15:34:59.151452: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpJCjJO0.tmpP1UQWa.pyomo.lp
-2014-07-16 15:34:59.165694: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0008 First stage cost avg= 108937.8039 Max-Min= 16.89
-Cumulative run-time=2.22 seconds
-
-Initiating PH iteration=26
-2014-07-16 15:34:59.178227: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpg4qrk2.tmp6Q6dBT.pyomo.lp
-2014-07-16 15:34:59.193158: Solve completed - number of solutions=1
-2014-07-16 15:34:59.206465: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpP2s1Jo.tmp0pJ__t.pyomo.lp
-2014-07-16 15:34:59.220290: Solve completed - number of solutions=1
-2014-07-16 15:34:59.236049: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpdHRRSv.tmpzuYl3f.pyomo.lp
-2014-07-16 15:34:59.250637: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0005 First stage cost avg= 108876.8822 Max-Min= 14.27
-Cumulative run-time=2.30 seconds
-
-Initiating PH iteration=27
-2014-07-16 15:34:59.263972: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpH1qn_u.tmpzOMGlH.pyomo.lp
-2014-07-16 15:34:59.278886: Solve completed - number of solutions=1
-2014-07-16 15:34:59.291235: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpf1QzuK.tmpoPLkau.pyomo.lp
-2014-07-16 15:34:59.305673: Solve completed - number of solutions=1
-2014-07-16 15:34:59.318592: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpxspBxE.tmpCniKXA.pyomo.lp
-2014-07-16 15:34:59.333915: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0015 First stage cost avg= 108830.6201 Max-Min= 34.81
-Cumulative run-time=2.38 seconds
-
-Initiating PH iteration=28
-2014-07-16 15:34:59.346985: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp85F1cP.tmpDxbwNG.pyomo.lp
-2014-07-16 15:34:59.362322: Solve completed - number of solutions=1
-2014-07-16 15:34:59.374701: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp1puS2H.tmpFV22rY.pyomo.lp
-2014-07-16 15:34:59.388723: Solve completed - number of solutions=1
-2014-07-16 15:34:59.401034: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpKbYSDA.tmp6uE543.pyomo.lp
-2014-07-16 15:34:59.414696: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0021 First stage cost avg= 108803.9655 Max-Min= 44.57
-Cumulative run-time=2.46 seconds
-
-Initiating PH iteration=29
-2014-07-16 15:34:59.427293: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpcUqwm7.tmpIc9s13.pyomo.lp
-2014-07-16 15:34:59.442509: Solve completed - number of solutions=1
-2014-07-16 15:34:59.455024: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpR5HzhY.tmp5ejBk1.pyomo.lp
-2014-07-16 15:34:59.469033: Solve completed - number of solutions=1
-2014-07-16 15:34:59.481445: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp5FY4im.tmpAZfd5e.pyomo.lp
-2014-07-16 15:34:59.495731: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0023 First stage cost avg= 108797.7661 Max-Min= 45.24
-Cumulative run-time=2.55 seconds
-
-Initiating PH iteration=30
-2014-07-16 15:34:59.509235: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpmuxCyt.tmp35XHUB.pyomo.lp
-2014-07-16 15:34:59.524806: Solve completed - number of solutions=1
-2014-07-16 15:34:59.537488: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpwBCeEF.tmpBpdHk8.pyomo.lp
-2014-07-16 15:34:59.551236: Solve completed - number of solutions=1
-2014-07-16 15:34:59.563695: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpxDIB33.tmpVMC0Bm.pyomo.lp
-2014-07-16 15:34:59.577848: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0020 First stage cost avg= 108809.4793 Max-Min= 39.01
-Cumulative run-time=2.63 seconds
-
-Initiating PH iteration=31
-2014-07-16 15:34:59.590652: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmprhsGU9.tmpnSLQai.pyomo.lp
-2014-07-16 15:34:59.606851: Solve completed - number of solutions=1
-2014-07-16 15:34:59.619882: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpP0hIQZ.tmpgoPTDU.pyomo.lp
-2014-07-16 15:34:59.634248: Solve completed - number of solutions=1
-2014-07-16 15:34:59.646662: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpQNonz6.tmpNZ9RLV.pyomo.lp
-2014-07-16 15:34:59.660731: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0015 First stage cost avg= 108834.1639 Max-Min= 28.07
-Cumulative run-time=2.71 seconds
-
-Initiating PH iteration=32
-2014-07-16 15:34:59.673594: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpV4FkY5.tmpLqNpVp.pyomo.lp
-2014-07-16 15:34:59.688875: Solve completed - number of solutions=1
-2014-07-16 15:34:59.701337: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpJbsbbC.tmpkQYqJ6.pyomo.lp
-2014-07-16 15:34:59.716477: Solve completed - number of solutions=1
-2014-07-16 15:34:59.729317: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpZktBkJ.tmp0GJbvL.pyomo.lp
-2014-07-16 15:34:59.743103: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0008 First stage cost avg= 108865.6237 Max-Min= 14.67
-Cumulative run-time=2.79 seconds
-
-Initiating PH iteration=33
-2014-07-16 15:34:59.756681: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpvj2CCa.tmp7cZBkS.pyomo.lp
-2014-07-16 15:34:59.771616: Solve completed - number of solutions=1
-2014-07-16 15:34:59.784106: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpKiOQTF.tmp7AzpsJ.pyomo.lp
-2014-07-16 15:34:59.797869: Solve completed - number of solutions=1
-2014-07-16 15:34:59.811196: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpxK8wFY.tmpqdFlqK.pyomo.lp
-2014-07-16 15:34:59.826311: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0001 First stage cost avg= 108897.5679 Max-Min= 1.06
-Cumulative run-time=2.88 seconds
-PH converged - convergence metric is below threshold=0.0001
-Number of discrete variables fixed before final plugin calls=0 (total=0)
-Number of continuous variables fixed before final plugin calls=0 (total=3)
-PH algorithm history written to file=ph_history.json
-PH complete
-Convergence history:
-Iteration Metric Value
- 0 0.2540
- 1 0.1259
- 2 0.0816
- 3 0.0796
- 4 0.0776
- 5 0.0794
- 6 0.0668
- 7 0.0542
- 8 0.0360
- 9 0.0243
- 10 0.0256
- 11 0.0248
- 12 0.0163
- 13 0.0081
- 14 0.0168
- 15 0.0163
- 16 0.0098
- 17 0.0032
- 18 0.0026
- 19 0.0039
- 20 0.0043
- 21 0.0044
- 22 0.0040
- 23 0.0032
- 24 0.0021
- 25 0.0008
- 26 0.0005
- 27 0.0015
- 28 0.0021
- 29 0.0023
- 30 0.0020
- 31 0.0015
- 32 0.0008
- 33 0.0001
-
-***********************************************************************************************
->>>THE EXPECTED SUM OF THE STAGE COST VARIABLES=-108388.378639<<<
->>>***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise<<<
-***********************************************************************************************
-Final number of discrete variables fixed=0 (total=0)
-Final number of continuous variables fixed=0 (total=3)
-Final variable values:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 79.9844 80.0000 79.9768 Max-Min: 0.0232 Avg: 79.9871
- Index: [SUGAR_BEETS] Values: 249.9848 249.9770 250.0000 Max-Min: 0.0230 Avg: 249.9873
- Index: [WHEAT] Values: 170.0308 170.0230 170.0232 Max-Min: 0.0078 Avg: 170.0256
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108897.0836 108897.4725 108898.1476 Max-Min: 1.0640 Avg: 108897.5679
-Final costs:
-Scenario Tree Costs
-***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise
-----------------------------------------------------
-Tree Nodes:
-
- Name=AboveAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AboveAverageScenario
- Expected cost of (sub)tree rooted at node=-275899.3041
-
- Name=AverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AverageScenario
- Expected cost of (sub)tree rooted at node=-218243.2209
-
- Name=BelowAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-157713.8615
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- AboveAverageNode
- AverageNode
- BelowAverageNode
- Scenarios:
- AboveAverageScenario
- AverageScenario
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-108388.3786
-
-----------------------------------------------------
-Scenarios:
-
- Name=AboveAverageScenario
- Probability=0.3333
- Leaf Node=AboveAverageNode
- Tree node sequence:
- RootNode
- AboveAverageNode
- Stage= FirstStage Cost=108898.1476
- Stage= SecondStage Cost=-275899.3041
- Total scenario cost=-167001.1565
-
- Name=AverageScenario
- Probability=0.3333
- Leaf Node=AverageNode
- Tree node sequence:
- RootNode
- AverageNode
- Stage= FirstStage Cost=108897.4725
- Stage= SecondStage Cost=-218243.2209
- Total scenario cost=-109345.7484
-
- Name=BelowAverageScenario
- Probability=0.3333
- Leaf Node=BelowAverageNode
- Tree node sequence:
- RootNode
- BelowAverageNode
- Stage= FirstStage Cost=108897.0836
- Stage= SecondStage Cost=-157713.8615
- Total scenario cost=-48816.7780
-
-----------------------------------------------------
-
-Total PH execution time=2.88 seconds
-
-Scenario tree solution written to file=ph_solution.json
-Pushing fixed variable statuses to scenario instances
-Number of discrete variables fixed prior to ef creation=0 (total=0)
-Number of continuous variables fixed prior to ef creation=0 (total=3)
-Creating extensive form for remainder problem
-Time to construct extensive form instance=0.00 seconds
-Queuing extensive form solve
-Waiting for extensive form solve
-Done with extensive form solve - loading results
-Storing solution in scenario tree
-Time to solve and load results for the extensive form=0.02 seconds
-
-***********************************************************************************************
->>>THE EXPECTED SUM OF THE STAGE COST VARIABLES=-108390.00001<<<
-***********************************************************************************************
-
-Extensive form solution:
-----------------------------------------------------
-Tree Nodes:
-
- Name=AboveAverageNode
- Stage=SecondStage
- Parent=RootNode
- Variables:
- QuantitySubQuotaSold[CORN]=48.0
- QuantitySubQuotaSold[SUGAR_BEETS]=6000.0
- QuantitySubQuotaSold[WHEAT]=310.0
-
- Name=AverageNode
- Stage=SecondStage
- Parent=RootNode
- Variables:
- QuantitySubQuotaSold[SUGAR_BEETS]=5000.0
- QuantitySubQuotaSold[WHEAT]=225.0
-
- Name=BelowAverageNode
- Stage=SecondStage
- Parent=RootNode
- Variables:
- QuantityPurchased[CORN]=48.0
- QuantitySubQuotaSold[SUGAR_BEETS]=4000.0
- QuantitySubQuotaSold[WHEAT]=140.0
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Variables:
- DevotedAcreage[CORN]=80.0
- DevotedAcreage[SUGAR_BEETS]=250.0
- DevotedAcreage[WHEAT]=170.0
-
-
-Extensive form costs:
-Scenario Tree Costs
-***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise
-----------------------------------------------------
-Tree Nodes:
-
- Name=AboveAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AboveAverageScenario
- Expected cost of (sub)tree rooted at node=-275900.0000
-
- Name=AverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AverageScenario
- Expected cost of (sub)tree rooted at node=-218250.0000
-
- Name=BelowAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-157720.0000
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- AboveAverageNode
- AverageNode
- BelowAverageNode
- Scenarios:
- AboveAverageScenario
- AverageScenario
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-108390.0000
-
-----------------------------------------------------
-Scenarios:
-
- Name=AboveAverageScenario
- Probability=0.3333
- Leaf Node=AboveAverageNode
- Tree node sequence:
- RootNode
- AboveAverageNode
- Stage= FirstStage Cost=108900.0000
- Stage= SecondStage Cost=-275900.0000
- Total scenario cost=-167000.0000
-
- Name=AverageScenario
- Probability=0.3333
- Leaf Node=AverageNode
- Tree node sequence:
- RootNode
- AverageNode
- Stage= FirstStage Cost=108900.0000
- Stage= SecondStage Cost=-218250.0000
- Total scenario cost=-109350.0000
-
- Name=BelowAverageScenario
- Probability=0.3333
- Leaf Node=BelowAverageNode
- Tree node sequence:
- RootNode
- BelowAverageNode
- Stage= FirstStage Cost=108900.0000
- Stage= SecondStage Cost=-157720.0000
- Total scenario cost=-48820.0000
-
-----------------------------------------------------
-Scenario tree solution written to file=postphef_solution.json
-Shutting down Pyro solver components
-Dispatcher received request to shut down - initiating...
-
-Total execution time=5.95 seconds
-Name Server gracefully stopped.
-Lost connection to dispatch server - shutting down...
diff --git a/pyomo/pysp/tests/examples/baselines/TestPHFarmerPyro.test2.baseline b/pyomo/pysp/tests/examples/baselines/TestPHFarmerPyro.test2.baseline
deleted file mode 100644
index 56520da3292..00000000000
--- a/pyomo/pysp/tests/examples/baselines/TestPHFarmerPyro.test2.baseline
+++ /dev/null
@@ -1,823 +0,0 @@
-*** Pyro Name Server ***
-Name server listening on: ('0.0.0.0', 9090)
-Broadcast server listening on: ('0.0.0.0', 9090)
-URI is: PYRO://10.0.0.15:9090/0a00000f1cdb20a08c2f7491c8c44c703f
-URI written to: /Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/pyomo/pysp/tests/examples/Pyro_NS_URI
-Name Server started.
-User-defined PH extension module=pyomo.pysp.plugins.phhistoryextension already imported - skipping
-Dispatcher is ready.
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI:PYRO://10.0.0.15:7766/0a00000f1cdc20a08c30972eaac48b3fc7
-This is worker Worker_7389@Ozymandias.local
-Listening for work from dispatcher...
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI: PYRO://10.0.0.15:7766/0a00000f1cdc20a08c30972eaac48b3fc7
-This is client 7390@Ozymandias.local
-Initializing PH
-
-User-defined PH solution writer module=pyomo.pysp.plugins.jsonsolutionwriter already imported - skipping
-Starting PH
-
-Initiating PH iteration=0
-2014-05-28 17:55:55.853180: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpqT2JFh.tmpXzof6r.pyomo.lp
-2014-05-28 17:55:55.869105: Solve completed - number of solutions=1
-2014-05-28 17:55:55.881649: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmplqUzrU.tmpmqNeLk.pyomo.lp
-2014-05-28 17:55:55.894650: Solve completed - number of solutions=1
-2014-05-28 17:55:55.907958: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp5kYeNN.tmp5qn1uf.pyomo.lp
-2014-05-28 17:55:55.922235: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 98.5185 First stage cost avg= 113494.4444 Max-Min=10416.67
-Cumulative run-time=0.16 seconds
-
-Initiating PH iteration=1
-2014-05-28 17:55:55.934869: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp1ia9pe.tmpYnWpW1.pyomo.lp
-2014-05-28 17:55:55.952751: Solve completed - number of solutions=1
-2014-05-28 17:55:55.965398: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmprpcq2R.tmp0Rjz0N.pyomo.lp
-2014-05-28 17:55:55.981110: Solve completed - number of solutions=1
-2014-05-28 17:55:55.993658: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpcVxKTt.tmpwx3lvF.pyomo.lp
-2014-05-28 17:55:56.010657: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 56.7654 First stage cost avg= 113107.2221 Max-Min= 6943.89
-Cumulative run-time=0.25 seconds
-
-Initiating PH iteration=2
-2014-05-28 17:55:56.023460: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpu8LKfa.tmppIhcn0.pyomo.lp
-2014-05-28 17:55:56.041750: Solve completed - number of solutions=1
-2014-05-28 17:55:56.055232: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpwzs_2H.tmpuR46LU.pyomo.lp
-2014-05-28 17:55:56.071352: Solve completed - number of solutions=1
-2014-05-28 17:55:56.083831: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp8AsCQy.tmpEzyHUj.pyomo.lp
-2014-05-28 17:55:56.100269: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 37.3580 First stage cost avg= 112954.6296 Max-Min= 2234.82
-Cumulative run-time=0.34 seconds
-
-Initiating PH iteration=3
-2014-05-28 17:55:56.114309: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpIlfK9z.tmp1giIzF.pyomo.lp
-2014-05-28 17:55:56.133192: Solve completed - number of solutions=1
-2014-05-28 17:55:56.146208: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpanXnNi.tmpqBQfx7.pyomo.lp
-2014-05-28 17:55:56.162206: Solve completed - number of solutions=1
-2014-05-28 17:55:56.175494: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp2nP1w2.tmpvpYRbK.pyomo.lp
-2014-05-28 17:55:56.192084: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 36.5075 First stage cost avg= 112963.0248 Max-Min= 2375.31
-Cumulative run-time=0.43 seconds
-
-Initiating PH iteration=4
-2014-05-28 17:55:56.204764: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpPIZno0.tmpogYMqJ.pyomo.lp
-2014-05-28 17:55:56.222338: Solve completed - number of solutions=1
-2014-05-28 17:55:56.235946: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpxOPaP2.tmpluJd23.pyomo.lp
-2014-05-28 17:55:56.252860: Solve completed - number of solutions=1
-2014-05-28 17:55:56.266294: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp_bEZdh.tmp9et1gy.pyomo.lp
-2014-05-28 17:55:56.283514: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 35.4086 First stage cost avg= 112915.6071 Max-Min= 3047.08
-Cumulative run-time=0.52 seconds
-
-Initiating PH iteration=5
-2014-05-28 17:55:56.297154: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpa0HMG9.tmpUfMdz8.pyomo.lp
-2014-05-28 17:55:56.316092: Solve completed - number of solutions=1
-2014-05-28 17:55:56.328804: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpz9u1YY.tmpVTClFP.pyomo.lp
-2014-05-28 17:55:56.349617: Solve completed - number of solutions=1
-2014-05-28 17:55:56.362740: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp7nP88_.tmpF9gDnY.pyomo.lp
-2014-05-28 17:55:56.379808: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 36.2217 First stage cost avg= 112825.3926 Max-Min= 3339.81
-Cumulative run-time=0.62 seconds
-
-Initiating PH iteration=6
-2014-05-28 17:55:56.393675: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpvmA7sY.tmpbsMQKh.pyomo.lp
-2014-05-28 17:55:56.412458: Solve completed - number of solutions=1
-2014-05-28 17:55:56.424914: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpSrpqdN.tmpEJvnpD.pyomo.lp
-2014-05-28 17:55:56.441768: Solve completed - number of solutions=1
-2014-05-28 17:55:56.454261: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmppXgV0r.tmpl0WJAv.pyomo.lp
-2014-05-28 17:55:56.470795: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 29.3303 First stage cost avg= 112317.9502 Max-Min= 2019.60
-Cumulative run-time=0.71 seconds
-
-Initiating PH iteration=7
-2014-05-28 17:55:56.484032: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpw6YvzM.tmpAJKx4r.pyomo.lp
-2014-05-28 17:55:56.501600: Solve completed - number of solutions=1
-2014-05-28 17:55:56.514490: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpuJnwCo.tmpb22Ylp.pyomo.lp
-2014-05-28 17:55:56.531338: Solve completed - number of solutions=1
-2014-05-28 17:55:56.543882: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmprQAQKs.tmpULa0Gu.pyomo.lp
-2014-05-28 17:55:56.560218: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 21.9702 First stage cost avg= 111364.4660 Max-Min= 1181.85
-Cumulative run-time=0.80 seconds
-
-Initiating PH iteration=8
-2014-05-28 17:55:56.572652: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpfX5m10.tmp15xbLX.pyomo.lp
-2014-05-28 17:55:56.590506: Solve completed - number of solutions=1
-2014-05-28 17:55:56.603464: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpdEyS3K.tmpfSoro0.pyomo.lp
-2014-05-28 17:55:56.620280: Solve completed - number of solutions=1
-2014-05-28 17:55:56.633707: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp_Q0U6c.tmpoqyUwc.pyomo.lp
-2014-05-28 17:55:56.651930: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 13.8077 First stage cost avg= 110283.4074 Max-Min= 463.23
-Cumulative run-time=0.89 seconds
-
-Initiating PH iteration=9
-2014-05-28 17:55:56.666138: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpkTEHlE.tmpuGSuNp.pyomo.lp
-2014-05-28 17:55:56.684705: Solve completed - number of solutions=1
-2014-05-28 17:55:56.697479: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp9Ngyfb.tmpMc5N9x.pyomo.lp
-2014-05-28 17:55:56.715341: Solve completed - number of solutions=1
-2014-05-28 17:55:56.728186: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpUpxrhz.tmpCs2Ain.pyomo.lp
-2014-05-28 17:55:56.748076: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 9.5141 First stage cost avg= 109399.2542 Max-Min= 363.90
-Cumulative run-time=0.98 seconds
-
-Initiating PH iteration=10
-2014-05-28 17:55:56.761260: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp7MHNRS.tmpS4GXMr.pyomo.lp
-2014-05-28 17:55:56.779553: Solve completed - number of solutions=1
-2014-05-28 17:55:56.792113: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpm7BrhB.tmpgLghMI.pyomo.lp
-2014-05-28 17:55:56.809995: Solve completed - number of solutions=1
-2014-05-28 17:55:56.822535: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpwHAVha.tmpiDRrAk.pyomo.lp
-2014-05-28 17:55:56.839561: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 12.0668 First stage cost avg= 108834.1930 Max-Min= 933.90
-Cumulative run-time=1.08 seconds
-
-Initiating PH iteration=11
-2014-05-28 17:55:56.852378: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp_IFnFL.tmprGVTbl.pyomo.lp
-2014-05-28 17:55:56.869839: Solve completed - number of solutions=1
-2014-05-28 17:55:56.882991: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpHLhlUi.tmp6hTr6r.pyomo.lp
-2014-05-28 17:55:56.899622: Solve completed - number of solutions=1
-2014-05-28 17:55:56.913437: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpsNMQGD.tmpg3n0Lo.pyomo.lp
-2014-05-28 17:55:56.931251: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 11.6644 First stage cost avg= 108575.3219 Max-Min= 918.57
-Cumulative run-time=1.17 seconds
-
-Initiating PH iteration=12
-2014-05-28 17:55:56.944844: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpFRj1Xt.tmpcNJESW.pyomo.lp
-2014-05-28 17:55:56.961804: Solve completed - number of solutions=1
-2014-05-28 17:55:56.975353: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmphkulAg.tmp6Q3Ye1.pyomo.lp
-2014-05-28 17:55:56.991537: Solve completed - number of solutions=1
-2014-05-28 17:55:57.004471: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpQ_MIys.tmpAtDI5s.pyomo.lp
-2014-05-28 17:55:57.021289: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 7.5080 First stage cost avg= 108513.5347 Max-Min= 591.25
-Cumulative run-time=1.26 seconds
-
-Initiating PH iteration=13
-2014-05-28 17:55:57.034638: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpILsK14.tmpbmMOvJ.pyomo.lp
-2014-05-28 17:55:57.054304: Solve completed - number of solutions=1
-2014-05-28 17:55:57.068229: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpX639wf.tmpCF4P3A.pyomo.lp
-2014-05-28 17:55:57.085282: Solve completed - number of solutions=1
-2014-05-28 17:55:57.098743: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpQRoMlJ.tmpNbZwnZ.pyomo.lp
-2014-05-28 17:55:57.116171: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 3.1070 First stage cost avg= 108528.2899 Max-Min= 175.95
-Cumulative run-time=1.35 seconds
-
-Initiating PH iteration=14
-2014-05-28 17:55:57.128823: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp0FFlVt.tmpR6ZCp4.pyomo.lp
-2014-05-28 17:55:57.147094: Solve completed - number of solutions=1
-2014-05-28 17:55:57.159637: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpURcG_y.tmpSfsdaj.pyomo.lp
-2014-05-28 17:55:57.177624: Solve completed - number of solutions=1
-2014-05-28 17:55:57.190079: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpHdPWiM.tmpn81f2u.pyomo.lp
-2014-05-28 17:55:57.207691: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 5.5300 First stage cost avg= 108561.6577 Max-Min= 274.77
-Cumulative run-time=1.44 seconds
-
-Initiating PH iteration=15
-2014-05-28 17:55:57.221174: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp5ry8fo.tmpVJicP5.pyomo.lp
-2014-05-28 17:55:57.238903: Solve completed - number of solutions=1
-2014-05-28 17:55:57.251395: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpNP27nK.tmpdO9WOr.pyomo.lp
-2014-05-28 17:55:57.267806: Solve completed - number of solutions=1
-2014-05-28 17:55:57.281108: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpfUq34P.tmpZssG24.pyomo.lp
-2014-05-28 17:55:57.297618: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 5.4381 First stage cost avg= 108604.0579 Max-Min= 295.14
-Cumulative run-time=1.53 seconds
-
-Initiating PH iteration=16
-2014-05-28 17:55:57.311314: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp7CfzYl.tmpBIk46n.pyomo.lp
-2014-05-28 17:55:57.330137: Solve completed - number of solutions=1
-2014-05-28 17:55:57.343751: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpC_mnX8.tmpmP0wzV.pyomo.lp
-2014-05-28 17:55:57.360289: Solve completed - number of solutions=1
-2014-05-28 17:55:57.373993: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp3xTWPT.tmpvTwaYj.pyomo.lp
-2014-05-28 17:55:57.390458: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 3.2812 First stage cost avg= 108667.3583 Max-Min= 127.67
-Cumulative run-time=1.63 seconds
-
-Initiating PH iteration=17
-2014-05-28 17:55:57.403505: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmprNeZIr.tmpgLl3RE.pyomo.lp
-2014-05-28 17:55:57.419999: Solve completed - number of solutions=1
-2014-05-28 17:55:57.432797: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp7zYvtC.tmpJhCS_5.pyomo.lp
-2014-05-28 17:55:57.449733: Solve completed - number of solutions=1
-2014-05-28 17:55:57.463972: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpF92Q32.tmplmEFZY.pyomo.lp
-2014-05-28 17:55:57.480207: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 1.1980 First stage cost avg= 108758.4237 Max-Min= 59.69
-Cumulative run-time=1.72 seconds
-
-Initiating PH iteration=18
-2014-05-28 17:55:57.493357: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpgvjvKe.tmpCx6Fqo.pyomo.lp
-2014-05-28 17:55:57.509930: Solve completed - number of solutions=1
-2014-05-28 17:55:57.522447: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpg9RhkG.tmpCbePmq.pyomo.lp
-2014-05-28 17:55:57.539924: Solve completed - number of solutions=1
-2014-05-28 17:55:57.553343: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp___1Lo.tmpHxir18.pyomo.lp
-2014-05-28 17:55:57.570920: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 1.0800 First stage cost avg= 108868.1277 Max-Min= 101.79
-Cumulative run-time=1.81 seconds
-
-Initiating PH iteration=19
-2014-05-28 17:55:57.584228: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpc_3LTS.tmpCzhkn7.pyomo.lp
-2014-05-28 17:55:57.602793: Solve completed - number of solutions=1
-2014-05-28 17:55:57.615999: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp1ccjwQ.tmpvrpNQX.pyomo.lp
-2014-05-28 17:55:57.633594: Solve completed - number of solutions=1
-2014-05-28 17:55:57.649311: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpxwgnfh.tmp48FRCG.pyomo.lp
-2014-05-28 17:55:57.667512: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 1.3642 First stage cost avg= 108975.3089 Max-Min= 73.41
-Cumulative run-time=1.90 seconds
-
-Initiating PH iteration=20
-2014-05-28 17:55:57.681546: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpT_K_LM.tmpEp9lBh.pyomo.lp
-2014-05-28 17:55:57.699041: Solve completed - number of solutions=1
-2014-05-28 17:55:57.711653: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpIbG3h_.tmpyBPD0K.pyomo.lp
-2014-05-28 17:55:57.728740: Solve completed - number of solutions=1
-2014-05-28 17:55:57.741499: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpdUCid5.tmp77Dbab.pyomo.lp
-2014-05-28 17:55:57.757342: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 1.5168 First stage cost avg= 109057.4144 Max-Min= 39.47
-Cumulative run-time=1.99 seconds
-
-Initiating PH iteration=21
-2014-05-28 17:55:57.787589: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpnIHNBg.tmpHFgEmP.pyomo.lp
-2014-05-28 17:55:57.808648: Solve completed - number of solutions=1
-2014-05-28 17:55:57.822031: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp3PAD0y.tmp23auij.pyomo.lp
-2014-05-28 17:55:57.839332: Solve completed - number of solutions=1
-2014-05-28 17:55:57.851847: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpa0dcYi.tmpY4wd7f.pyomo.lp
-2014-05-28 17:55:57.868615: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 1.6833 First stage cost avg= 109099.7145 Max-Min= 87.57
-Cumulative run-time=2.11 seconds
-
-Initiating PH iteration=22
-2014-05-28 17:55:57.881991: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpdJ85tw.tmphN_zJc.pyomo.lp
-2014-05-28 17:55:57.898678: Solve completed - number of solutions=1
-2014-05-28 17:55:57.912581: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpQgjAsw.tmpXFlw12.pyomo.lp
-2014-05-28 17:55:57.929955: Solve completed - number of solutions=1
-2014-05-28 17:55:57.942604: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpIJTxZe.tmpHtj588.pyomo.lp
-2014-05-28 17:55:57.958860: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 1.6446 First stage cost avg= 109099.1239 Max-Min= 104.22
-Cumulative run-time=2.19 seconds
-
-Initiating PH iteration=23
-2014-05-28 17:55:57.972416: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp479m3x.tmpMLnfKg.pyomo.lp
-2014-05-28 17:55:57.989736: Solve completed - number of solutions=1
-2014-05-28 17:55:58.002178: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpZvq5cG.tmpUkiza2.pyomo.lp
-2014-05-28 17:55:58.018364: Solve completed - number of solutions=1
-2014-05-28 17:55:58.031075: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpQ_pQ5H.tmpBknkeb.pyomo.lp
-2014-05-28 17:55:58.049130: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 1.3382 First stage cost avg= 109062.8322 Max-Min= 88.54
-Cumulative run-time=2.29 seconds
-
-Initiating PH iteration=24
-2014-05-28 17:55:58.062707: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpsvM11o.tmpqXbh9j.pyomo.lp
-2014-05-28 17:55:58.078975: Solve completed - number of solutions=1
-2014-05-28 17:55:58.092303: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpWIVpnl.tmpT7IXYI.pyomo.lp
-2014-05-28 17:55:58.108714: Solve completed - number of solutions=1
-2014-05-28 17:55:58.121138: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp4MPSHJ.tmpbbdlsZ.pyomo.lp
-2014-05-28 17:55:58.138913: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.8599 First stage cost avg= 109004.1156 Max-Min= 54.49
-Cumulative run-time=2.38 seconds
-
-Initiating PH iteration=25
-2014-05-28 17:55:58.152629: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp2KIESn.tmpofaZ6X.pyomo.lp
-2014-05-28 17:55:58.171485: Solve completed - number of solutions=1
-2014-05-28 17:55:58.183993: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpsryr9t.tmpR7yPR_.pyomo.lp
-2014-05-28 17:55:58.201473: Solve completed - number of solutions=1
-2014-05-28 17:55:58.214782: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmplCvRep.tmpfii4Dc.pyomo.lp
-2014-05-28 17:55:58.231911: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.3180 First stage cost avg= 108937.8039 Max-Min= 16.89
-Cumulative run-time=2.47 seconds
-
-Initiating PH iteration=26
-2014-05-28 17:55:58.244831: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp5bdWoe.tmpOSovll.pyomo.lp
-2014-05-28 17:55:58.265392: Solve completed - number of solutions=1
-2014-05-28 17:55:58.278574: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpsRBYql.tmpJ0Y73u.pyomo.lp
-2014-05-28 17:55:58.295215: Solve completed - number of solutions=1
-2014-05-28 17:55:58.309164: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpVZinxP.tmpuJnfOy.pyomo.lp
-2014-05-28 17:55:58.327824: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.1981 First stage cost avg= 108876.8822 Max-Min= 14.27
-Cumulative run-time=2.56 seconds
-
-Initiating PH iteration=27
-2014-05-28 17:55:58.340820: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpcQraNu.tmpcgn03P.pyomo.lp
-2014-05-28 17:55:58.357451: Solve completed - number of solutions=1
-2014-05-28 17:55:58.370930: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpymb3Z7.tmp98qSHK.pyomo.lp
-2014-05-28 17:55:58.387497: Solve completed - number of solutions=1
-2014-05-28 17:55:58.399956: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpJ2LNhy.tmpbtXM4d.pyomo.lp
-2014-05-28 17:55:58.415727: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.5760 First stage cost avg= 108830.6201 Max-Min= 34.81
-Cumulative run-time=2.65 seconds
-
-Initiating PH iteration=28
-2014-05-28 17:55:58.429079: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpNQ995M.tmpcvIYVo.pyomo.lp
-2014-05-28 17:55:58.447010: Solve completed - number of solutions=1
-2014-05-28 17:55:58.459805: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpd88PTB.tmpJIl8wu.pyomo.lp
-2014-05-28 17:55:58.475919: Solve completed - number of solutions=1
-2014-05-28 17:55:58.489070: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpfHdyaj.tmptvLHHo.pyomo.lp
-2014-05-28 17:55:58.505514: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.8045 First stage cost avg= 108803.9655 Max-Min= 44.57
-Cumulative run-time=2.74 seconds
-
-Initiating PH iteration=29
-2014-05-28 17:55:58.518755: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpl5ucAd.tmp_9c3od.pyomo.lp
-2014-05-28 17:55:58.536821: Solve completed - number of solutions=1
-2014-05-28 17:55:58.550264: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmplqCQlM.tmpTEyPmF.pyomo.lp
-2014-05-28 17:55:58.568696: Solve completed - number of solutions=1
-2014-05-28 17:55:58.582597: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpAxdkeq.tmpVEh18V.pyomo.lp
-2014-05-28 17:55:58.600954: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.8608 First stage cost avg= 108797.7661 Max-Min= 45.24
-Cumulative run-time=2.84 seconds
-
-Initiating PH iteration=30
-2014-05-28 17:55:58.613600: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp9CoLka.tmpzFSLCO.pyomo.lp
-2014-05-28 17:55:58.631541: Solve completed - number of solutions=1
-2014-05-28 17:55:58.644452: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpCzhowK.tmp3C1eVr.pyomo.lp
-2014-05-28 17:55:58.664762: Solve completed - number of solutions=1
-2014-05-28 17:55:58.678273: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpsp9u9h.tmpkhGd27.pyomo.lp
-2014-05-28 17:55:58.695793: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.7643 First stage cost avg= 108809.4793 Max-Min= 39.01
-Cumulative run-time=2.93 seconds
-
-Initiating PH iteration=31
-2014-05-28 17:55:58.709844: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp9qb93z.tmpf8FOIC.pyomo.lp
-2014-05-28 17:55:58.727894: Solve completed - number of solutions=1
-2014-05-28 17:55:58.740480: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpR1Mzc_.tmp0RAgAu.pyomo.lp
-2014-05-28 17:55:58.756390: Solve completed - number of solutions=1
-2014-05-28 17:55:58.768952: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp4qodKK.tmpg_yHQL.pyomo.lp
-2014-05-28 17:55:58.785202: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.5565 First stage cost avg= 108834.1639 Max-Min= 28.07
-Cumulative run-time=3.02 seconds
-
-Initiating PH iteration=32
-2014-05-28 17:55:58.798925: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpl9Otfo.tmpC0go1J.pyomo.lp
-2014-05-28 17:55:58.815608: Solve completed - number of solutions=1
-2014-05-28 17:55:58.828044: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpoNq3_o.tmpy8weST.pyomo.lp
-2014-05-28 17:55:58.845208: Solve completed - number of solutions=1
-2014-05-28 17:55:58.857823: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpDPg1zu.tmp2fLd5m.pyomo.lp
-2014-05-28 17:55:58.874509: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.2905 First stage cost avg= 108865.6237 Max-Min= 14.67
-Cumulative run-time=3.11 seconds
-
-Initiating PH iteration=33
-2014-05-28 17:55:58.888427: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpNPcrMZ.tmpkPy1Xn.pyomo.lp
-2014-05-28 17:55:58.904373: Solve completed - number of solutions=1
-2014-05-28 17:55:58.917074: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp2uSEzB.tmpllPMWy.pyomo.lp
-2014-05-28 17:55:58.934265: Solve completed - number of solutions=1
-2014-05-28 17:55:58.946854: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp9hnLg2.tmpMZu_Ue.pyomo.lp
-2014-05-28 17:55:58.963067: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0205 First stage cost avg= 108897.5679 Max-Min= 1.06
-Cumulative run-time=3.20 seconds
-
-Initiating PH iteration=34
-2014-05-28 17:55:58.976449: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpMFSp7B.tmpHo4JK9.pyomo.lp
-2014-05-28 17:55:58.993073: Solve completed - number of solutions=1
-2014-05-28 17:55:59.005508: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpSVZ5m1.tmpGiN3Fh.pyomo.lp
-2014-05-28 17:55:59.021545: Solve completed - number of solutions=1
-2014-05-28 17:55:59.034325: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpQEdbTf.tmpBNthcI.pyomo.lp
-2014-05-28 17:55:59.051508: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.2079 First stage cost avg= 108924.6334 Max-Min= 10.64
-Cumulative run-time=3.29 seconds
-
-Initiating PH iteration=35
-2014-05-28 17:55:59.065186: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpqP4ESt.tmpActB6v.pyomo.lp
-2014-05-28 17:55:59.083205: Solve completed - number of solutions=1
-2014-05-28 17:55:59.095662: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpj88I00.tmpOrMiXD.pyomo.lp
-2014-05-28 17:55:59.112087: Solve completed - number of solutions=1
-2014-05-28 17:55:59.125104: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpvLposK.tmpZ8rAdv.pyomo.lp
-2014-05-28 17:55:59.141968: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.3637 First stage cost avg= 108943.1232 Max-Min= 18.81
-Cumulative run-time=3.38 seconds
-
-Initiating PH iteration=36
-2014-05-28 17:55:59.155677: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpONMaok.tmpS0A4Jh.pyomo.lp
-2014-05-28 17:55:59.173323: Solve completed - number of solutions=1
-2014-05-28 17:55:59.185709: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpDlLsQi.tmpWT1hEo.pyomo.lp
-2014-05-28 17:55:59.204762: Solve completed - number of solutions=1
-2014-05-28 17:55:59.217718: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpzLvtKx.tmpwM5LT8.pyomo.lp
-2014-05-28 17:55:59.235091: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.4328 First stage cost avg= 108951.3651 Max-Min= 22.58
-Cumulative run-time=3.47 seconds
-
-Initiating PH iteration=37
-2014-05-28 17:55:59.249671: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp0rfiVl.tmpj32UAB.pyomo.lp
-2014-05-28 17:55:59.268718: Solve completed - number of solutions=1
-2014-05-28 17:55:59.281841: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpnNow4P.tmpB1TJ6a.pyomo.lp
-2014-05-28 17:55:59.297764: Solve completed - number of solutions=1
-2014-05-28 17:55:59.310272: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpWB4nPW.tmp3Cl8K5.pyomo.lp
-2014-05-28 17:55:59.327083: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.4183 First stage cost avg= 108949.6731 Max-Min= 21.96
-Cumulative run-time=3.56 seconds
-
-Initiating PH iteration=38
-2014-05-28 17:55:59.340960: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpnxWeDb.tmpn9LEB3.pyomo.lp
-2014-05-28 17:55:59.357145: Solve completed - number of solutions=1
-2014-05-28 17:55:59.370634: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpcTllvB.tmpJ96dZ2.pyomo.lp
-2014-05-28 17:55:59.386817: Solve completed - number of solutions=1
-2014-05-28 17:55:59.399468: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpvKITHi.tmpDTqwUF.pyomo.lp
-2014-05-28 17:55:59.415511: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.3365 First stage cost avg= 108939.9742 Max-Min= 17.74
-Cumulative run-time=3.65 seconds
-
-Initiating PH iteration=39
-2014-05-28 17:55:59.429303: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpnvPysr.tmpyAY2nK.pyomo.lp
-2014-05-28 17:55:59.448398: Solve completed - number of solutions=1
-2014-05-28 17:55:59.460920: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpkkxGmn.tmpeEvjNp.pyomo.lp
-2014-05-28 17:55:59.477590: Solve completed - number of solutions=1
-2014-05-28 17:55:59.490614: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpxWLEF8.tmp8pE0kB.pyomo.lp
-2014-05-28 17:55:59.506619: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.2122 First stage cost avg= 108925.2193 Max-Min= 11.21
-Cumulative run-time=3.74 seconds
-
-Initiating PH iteration=40
-2014-05-28 17:55:59.520001: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpAo6rtN.tmp_9T8nA.pyomo.lp
-2014-05-28 17:55:59.538473: Solve completed - number of solutions=1
-2014-05-28 17:55:59.551337: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp1hpk92.tmp8IHco_.pyomo.lp
-2014-05-28 17:55:59.568239: Solve completed - number of solutions=1
-2014-05-28 17:55:59.581749: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpQfsCaa.tmpMcbbl4.pyomo.lp
-2014-05-28 17:55:59.600300: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0733 First stage cost avg= 108908.7151 Max-Min= 3.89
-Cumulative run-time=3.84 seconds
-
-Initiating PH iteration=41
-2014-05-28 17:55:59.613812: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpPrZqKJ.tmpq1OoGq.pyomo.lp
-2014-05-28 17:55:59.635499: Solve completed - number of solutions=1
-2014-05-28 17:55:59.649675: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpVaQvx8.tmpB8W5Ku.pyomo.lp
-2014-05-28 17:55:59.666802: Solve completed - number of solutions=1
-2014-05-28 17:55:59.682981: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpwseT8e.tmpJqXHV5.pyomo.lp
-2014-05-28 17:55:59.701500: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0547 First stage cost avg= 108893.5090 Max-Min= 2.87
-Cumulative run-time=3.94 seconds
-
-Initiating PH iteration=42
-2014-05-28 17:55:59.714773: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpVkdliP.tmpQMR8QP.pyomo.lp
-2014-05-28 17:55:59.732194: Solve completed - number of solutions=1
-2014-05-28 17:55:59.744663: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpw_1Lkf.tmpENOMSz.pyomo.lp
-2014-05-28 17:55:59.760830: Solve completed - number of solutions=1
-2014-05-28 17:55:59.773420: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpWgPLT7.tmpfWyGT_.pyomo.lp
-2014-05-28 17:55:59.789861: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.1522 First stage cost avg= 108881.9216 Max-Min= 8.01
-Cumulative run-time=4.03 seconds
-
-Initiating PH iteration=43
-2014-05-28 17:55:59.804071: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpOOqHjL.tmpuCK2pc.pyomo.lp
-2014-05-28 17:55:59.820576: Solve completed - number of solutions=1
-2014-05-28 17:55:59.834167: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpH84vTy.tmp3eXBAJ.pyomo.lp
-2014-05-28 17:55:59.851372: Solve completed - number of solutions=1
-2014-05-28 17:55:59.863849: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpCzAidr.tmp325Tt_.pyomo.lp
-2014-05-28 17:55:59.879789: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.2081 First stage cost avg= 108875.2811 Max-Min= 10.94
-Cumulative run-time=4.12 seconds
-
-Initiating PH iteration=44
-2014-05-28 17:55:59.893309: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpkYsUjY.tmpkRq6cp.pyomo.lp
-2014-05-28 17:55:59.910480: Solve completed - number of solutions=1
-2014-05-28 17:55:59.924065: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp7N1SEf.tmp1ohyS4.pyomo.lp
-2014-05-28 17:55:59.942899: Solve completed - number of solutions=1
-2014-05-28 17:55:59.956481: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpkrSm5i.tmpPcTeHO.pyomo.lp
-2014-05-28 17:55:59.974529: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.2200 First stage cost avg= 108873.8685 Max-Min= 11.56
-Cumulative run-time=4.21 seconds
-
-Initiating PH iteration=45
-2014-05-28 17:55:59.987483: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpwF4I01.tmpd1UqtH.pyomo.lp
-2014-05-28 17:56:00.007109: Solve completed - number of solutions=1
-2014-05-28 17:56:00.020235: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpZdubeU.tmpSv5DOu.pyomo.lp
-2014-05-28 17:56:00.037277: Solve completed - number of solutions=1
-2014-05-28 17:56:00.050695: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpR6X655.tmpCxDVEI.pyomo.lp
-2014-05-28 17:56:00.068021: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.1933 First stage cost avg= 108877.0466 Max-Min= 10.15
-Cumulative run-time=4.30 seconds
-
-Initiating PH iteration=46
-2014-05-28 17:56:00.082100: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpA1BVj_.tmp9Am4H2.pyomo.lp
-2014-05-28 17:56:00.098656: Solve completed - number of solutions=1
-2014-05-28 17:56:00.111735: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpKLnjOT.tmp8x33kJ.pyomo.lp
-2014-05-28 17:56:00.129104: Solve completed - number of solutions=1
-2014-05-28 17:56:00.141868: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpKKDpnu.tmpOre0zF.pyomo.lp
-2014-05-28 17:56:00.157900: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.1388 First stage cost avg= 108883.5201 Max-Min= 7.28
-Cumulative run-time=4.39 seconds
-
-Initiating PH iteration=47
-2014-05-28 17:56:00.170617: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpuKkk_A.tmpbDCkoY.pyomo.lp
-2014-05-28 17:56:00.188184: Solve completed - number of solutions=1
-2014-05-28 17:56:00.200803: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpj5_KOl.tmpg_e2DR.pyomo.lp
-2014-05-28 17:56:00.216736: Solve completed - number of solutions=1
-2014-05-28 17:56:00.231518: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpT_X8y5.tmpnTCEpQ.pyomo.lp
-2014-05-28 17:56:00.248808: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0702 First stage cost avg= 108891.6607 Max-Min= 3.68
-Cumulative run-time=4.49 seconds
-
-Initiating PH iteration=48
-2014-05-28 17:56:00.262046: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp6VpgP4.tmpu7J7XL.pyomo.lp
-2014-05-28 17:56:00.280042: Solve completed - number of solutions=1
-2014-05-28 17:56:00.292968: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp4mioMa.tmpUwNKxU.pyomo.lp
-2014-05-28 17:56:00.308393: Solve completed - number of solutions=1
-2014-05-28 17:56:00.320807: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp7IvVxV.tmpF3oDDg.pyomo.lp
-2014-05-28 17:56:00.339712: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0014 First stage cost avg= 108899.8341 Max-Min= 0.07
-Cumulative run-time=4.58 seconds
-PH converged - convergence metric is below threshold=0.01
-Number of discrete variables fixed before final plugin calls=0 (total=0)
-Number of continuous variables fixed before final plugin calls=0 (total=3)
-PH algorithm history written to file=ph_history.json
-PH complete
-Convergence history:
-Iteration Metric Value
- 0 98.5185
- 1 56.7654
- 2 37.3580
- 3 36.5075
- 4 35.4086
- 5 36.2217
- 6 29.3303
- 7 21.9702
- 8 13.8077
- 9 9.5141
- 10 12.0668
- 11 11.6644
- 12 7.5080
- 13 3.1070
- 14 5.5300
- 15 5.4381
- 16 3.2812
- 17 1.1980
- 18 1.0800
- 19 1.3642
- 20 1.5168
- 21 1.6833
- 22 1.6446
- 23 1.3382
- 24 0.8599
- 25 0.3180
- 26 0.1981
- 27 0.5760
- 28 0.8045
- 29 0.8608
- 30 0.7643
- 31 0.5565
- 32 0.2905
- 33 0.0205
- 34 0.2079
- 35 0.3637
- 36 0.4328
- 37 0.4183
- 38 0.3365
- 39 0.2122
- 40 0.0733
- 41 0.0547
- 42 0.1522
- 43 0.2081
- 44 0.2200
- 45 0.1933
- 46 0.1388
- 47 0.0702
- 48 0.0014
-
-***********************************************************************************************
->>>THE EXPECTED SUM OF THE STAGE COST VARIABLES=-108389.889265<<<
->>>***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise<<<
-***********************************************************************************************
-Final number of discrete variables fixed=0 (total=0)
-Final number of continuous variables fixed=0 (total=3)
-Final variable values:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 79.9989 80.0000 79.9984 Max-Min: 0.0016 Avg: 79.9991
- Index: [SUGAR_BEETS] Values: 249.9990 249.9984 250.0000 Max-Min: 0.0016 Avg: 249.9991
- Index: [WHEAT] Values: 170.0021 170.0016 170.0016 Max-Min: 0.0005 Avg: 170.0018
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108899.8013 108899.8284 108899.8727 Max-Min: 0.0714 Avg: 108899.8341
-Final costs:
-Scenario Tree Costs
-***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise
-----------------------------------------------------
-Tree Nodes:
-
- Name=AboveAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AboveAverageScenario
- Expected cost of (sub)tree rooted at node=-275899.9510
-
- Name=AverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AverageScenario
- Expected cost of (sub)tree rooted at node=-218249.5388
-
- Name=BelowAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-157719.5818
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- AboveAverageNode
- AverageNode
- BelowAverageNode
- Scenarios:
- AboveAverageScenario
- AverageScenario
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-108389.8893
-
-----------------------------------------------------
-Scenarios:
-
- Name=AboveAverageScenario
- Probability=0.3333
- Leaf Node=AboveAverageNode
- Tree node sequence:
- RootNode
- AboveAverageNode
- Stage= FirstStage Cost=108899.8727
- Stage= SecondStage Cost=-275899.9510
- Total scenario cost=-167000.0783
-
- Name=AverageScenario
- Probability=0.3333
- Leaf Node=AverageNode
- Tree node sequence:
- RootNode
- AverageNode
- Stage= FirstStage Cost=108899.8284
- Stage= SecondStage Cost=-218249.5388
- Total scenario cost=-109349.7104
-
- Name=BelowAverageScenario
- Probability=0.3333
- Leaf Node=BelowAverageNode
- Tree node sequence:
- RootNode
- BelowAverageNode
- Stage= FirstStage Cost=108899.8013
- Stage= SecondStage Cost=-157719.5818
- Total scenario cost=-48819.7805
-
-----------------------------------------------------
-
-Total PH execution time=4.58 seconds
-
-Scenario tree solution written to file=ph_solution.json
-Shutting down Pyro solver components
-Dispatcher received request to shut down - initiating...
-
-Total execution time=7.63 seconds
-Name Server gracefully stopped.
-Lost connection to dispatch server - shutting down...
diff --git a/pyomo/pysp/tests/examples/baselines/TestPHFarmerPyro.test3.baseline b/pyomo/pysp/tests/examples/baselines/TestPHFarmerPyro.test3.baseline
deleted file mode 100644
index 78e4112434a..00000000000
--- a/pyomo/pysp/tests/examples/baselines/TestPHFarmerPyro.test3.baseline
+++ /dev/null
@@ -1,277 +0,0 @@
-*** Pyro Name Server ***
-Name server listening on: ('0.0.0.0', 9090)
-Broadcast server listening on: ('0.0.0.0', 9090)
-URI is: PYRO://10.0.0.15:9090/0a00000f1d8020a08c34345414d0f9fe49
-URI written to: /Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/pyomo/pysp/tests/examples/Pyro_NS_URI
-Name Server started.
-User-defined PH extension module=pyomo.pysp.plugins.phhistoryextension already imported - skipping
-Dispatcher is ready.
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI:PYRO://10.0.0.15:7766/0a00000f1d8120a08c3557426d555cfe14
-This is worker Worker_7554@Ozymandias.local
-Listening for work from dispatcher...
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI: PYRO://10.0.0.15:7766/0a00000f1d8120a08c3557426d555cfe14
-This is client 7555@Ozymandias.local
-Initializing PH
-
-User-defined PH solution writer module=pyomo.pysp.plugins.jsonsolutionwriter already imported - skipping
-Starting PH
-
-Initiating PH iteration=0
-2014-05-28 17:56:08.005819: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpCN9ZNA.tmproU_gM.pyomo.lp
-2014-05-28 17:56:08.020723: Solve completed - number of solutions=1
-2014-05-28 17:56:08.033516: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmplQrvRD.tmpzwl73J.pyomo.lp
-2014-05-28 17:56:08.046728: Solve completed - number of solutions=1
-2014-05-28 17:56:08.059954: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpr4SaiB.tmp5e6xdh.pyomo.lp
-2014-05-28 17:56:08.076451: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.2540 First stage cost avg= 113494.4444 Max-Min=10416.67
-Cumulative run-time=0.16 seconds
-
-Initiating PH iteration=1
-2014-05-28 17:56:08.091326: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp2fv9YX.tmpR2fgpW.pyomo.lp
-2014-05-28 17:56:08.108508: Solve completed - number of solutions=1
-2014-05-28 17:56:08.120996: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpQGn4fp.tmpjVMtQk.pyomo.lp
-2014-05-28 17:56:08.136860: Solve completed - number of solutions=1
-2014-05-28 17:56:08.150822: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp8ghLGx.tmp2HiBKJ.pyomo.lp
-2014-05-28 17:56:08.166786: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.1307 First stage cost avg= 113073.3333 Max-Min= 7180.00
-Cumulative run-time=0.25 seconds
-
-Initiating PH iteration=2
-2014-05-28 17:56:08.183640: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpauQEB9.tmp0OzPaJ.pyomo.lp
-2014-05-28 17:56:08.200257: Solve completed - number of solutions=1
-2014-05-28 17:56:08.213609: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp1yI1eR.tmpvvD_Td.pyomo.lp
-2014-05-28 17:56:08.228628: Solve completed - number of solutions=1
-2014-05-28 17:56:08.241189: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpZ0QMGT.tmpP7Wr4O.pyomo.lp
-2014-05-28 17:56:08.255334: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0872 First stage cost avg= 113259.7778 Max-Min= 1736.67
-Cumulative run-time=0.34 seconds
-
-Initiating PH iteration=3
-2014-05-28 17:56:08.272413: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpwu4KrT.tmpw_QqDW.pyomo.lp
-2014-05-28 17:56:08.290081: Solve completed - number of solutions=1
-2014-05-28 17:56:08.303539: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpDIWcc9.tmpwUW6ch.pyomo.lp
-2014-05-28 17:56:08.321766: Solve completed - number of solutions=1
-2014-05-28 17:56:08.334809: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpFAzhN1.tmpU0dTEu.pyomo.lp
-2014-05-28 17:56:08.350611: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0793 First stage cost avg= 113339.1852 Max-Min= 1836.89
-Cumulative run-time=0.44 seconds
-
-Initiating PH iteration=4
-2014-05-28 17:56:08.368141: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpMpcCSR.tmpCy3Ncv.pyomo.lp
-2014-05-28 17:56:08.385888: Solve completed - number of solutions=1
-2014-05-28 17:56:08.399398: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmppJgVCE.tmp5QZizs.pyomo.lp
-2014-05-28 17:56:08.414618: Solve completed - number of solutions=1
-2014-05-28 17:56:08.428827: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp0ahGDh.tmpUJnBjI.pyomo.lp
-2014-05-28 17:56:08.444309: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0820 First stage cost avg= 112746.3951 Max-Min= 3745.63
-Cumulative run-time=0.53 seconds
-
-Initiating PH iteration=5
-2014-05-28 17:56:08.460553: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpGvqflf.tmpOfzLfu.pyomo.lp
-2014-05-28 17:56:08.477898: Solve completed - number of solutions=1
-2014-05-28 17:56:08.491071: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpSPn1rL.tmpCpJz2r.pyomo.lp
-2014-05-28 17:56:08.505544: Solve completed - number of solutions=1
-2014-05-28 17:56:08.518777: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpP_lHiz.tmpNSqLBI.pyomo.lp
-2014-05-28 17:56:08.534466: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0828 First stage cost avg= 112327.9383 Max-Min= 4381.88
-Cumulative run-time=0.62 seconds
-
-Initiating PH iteration=6
-2014-05-28 17:56:08.556146: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpf9qLK7.tmpDMxUqf.pyomo.lp
-2014-05-28 17:56:08.571704: Solve completed - number of solutions=1
-2014-05-28 17:56:08.585314: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpIy1w7i.tmpr82Lxx.pyomo.lp
-2014-05-28 17:56:08.600601: Solve completed - number of solutions=1
-2014-05-28 17:56:08.613105: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp7GTAyO.tmpxsHVBM.pyomo.lp
-2014-05-28 17:56:08.627067: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0561 First stage cost avg= 112125.1852 Max-Min= 1027.56
-Cumulative run-time=0.71 seconds
-
-Initiating PH iteration=7
-2014-05-28 17:56:08.641808: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpdvf62v.tmp_lgw7f.pyomo.lp
-2014-05-28 17:56:08.656815: Solve completed - number of solutions=1
-2014-05-28 17:56:08.669327: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpPvkLkC.tmpua3q3V.pyomo.lp
-2014-05-28 17:56:08.684230: Solve completed - number of solutions=1
-2014-05-28 17:56:08.697145: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpuEPcp1.tmpmYOV5W.pyomo.lp
-2014-05-28 17:56:08.712590: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0625 First stage cost avg= 111694.0412 Max-Min= 2320.99
-Cumulative run-time=0.80 seconds
-
-Initiating PH iteration=8
-2014-05-28 17:56:08.727464: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp5TSlMr.tmp1p5x8U.pyomo.lp
-2014-05-28 17:56:08.743192: Solve completed - number of solutions=1
-2014-05-28 17:56:08.755786: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpMdjvYP.tmpN9X5wm.pyomo.lp
-2014-05-28 17:56:08.771179: Solve completed - number of solutions=1
-2014-05-28 17:56:08.784917: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpZuw3ru.tmpSx3AGl.pyomo.lp
-2014-05-28 17:56:08.800737: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0342 First stage cost avg= 111355.5172 Max-Min= 1015.57
-Cumulative run-time=0.89 seconds
-
-Initiating PH iteration=9
-2014-05-28 17:56:08.816285: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpZS4sOG.tmpeBn1JG.pyomo.lp
-2014-05-28 17:56:08.833387: Solve completed - number of solutions=1
-2014-05-28 17:56:08.845990: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpFJcjzy.tmp6bOX0p.pyomo.lp
-2014-05-28 17:56:08.860322: Solve completed - number of solutions=1
-2014-05-28 17:56:08.872873: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpWDZaQl.tmpz4Kyvn.pyomo.lp
-2014-05-28 17:56:08.888511: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0000 First stage cost avg= 111355.5172 Max-Min= 0.00
-Cumulative run-time=0.97 seconds
-PH converged - convergence metric is below threshold=0.0001
-Number of discrete variables fixed before final plugin calls=0 (total=0)
-Number of continuous variables fixed before final plugin calls=0 (total=3)
-PH algorithm history written to file=ph_history.json
-PH complete
-Convergence history:
-Iteration Metric Value
- 0 0.2540
- 1 0.1307
- 2 0.0872
- 3 0.0793
- 4 0.0820
- 5 0.0828
- 6 0.0561
- 7 0.0625
- 8 0.0342
- 9 0.0000
-
-***********************************************************************************************
->>>THE EXPECTED SUM OF THE STAGE COST VARIABLES=-107958.896605<<<
->>>***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise<<<
-***********************************************************************************************
-Final number of discrete variables fixed=0 (total=0)
-Final number of continuous variables fixed=0 (total=3)
-Final variable values:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 88.4631 88.4631 88.4631 Max-Min: 0.0000 Avg: 88.4631
- Index: [SUGAR_BEETS] Values: 266.1679 266.1679 266.1679 Max-Min: 0.0000 Avg: 266.1679
- Index: [WHEAT] Values: 145.3690 145.3690 145.3690 Max-Min: 0.0000 Avg: 145.3690
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 111355.5172 111355.5172 111355.5172 Max-Min: 0.0000 Avg: 111355.5172
-Final costs:
-Scenario Tree Costs
-***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise
-----------------------------------------------------
-Tree Nodes:
-
- Name=AboveAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AboveAverageScenario
- Expected cost of (sub)tree rooted at node=-271788.5596
-
- Name=AverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AverageScenario
- Expected cost of (sub)tree rooted at node=-223231.1084
-
- Name=BelowAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-162923.5731
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- AboveAverageNode
- AverageNode
- BelowAverageNode
- Scenarios:
- AboveAverageScenario
- AverageScenario
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-107958.8966
-
-----------------------------------------------------
-Scenarios:
-
- Name=AboveAverageScenario
- Probability=0.3333
- Leaf Node=AboveAverageNode
- Tree node sequence:
- RootNode
- AboveAverageNode
- Stage= FirstStage Cost=111355.5172
- Stage= SecondStage Cost=-271788.5596
- Total scenario cost=-160433.0424
-
- Name=AverageScenario
- Probability=0.3333
- Leaf Node=AverageNode
- Tree node sequence:
- RootNode
- AverageNode
- Stage= FirstStage Cost=111355.5172
- Stage= SecondStage Cost=-223231.1084
- Total scenario cost=-111875.5913
-
- Name=BelowAverageScenario
- Probability=0.3333
- Leaf Node=BelowAverageNode
- Tree node sequence:
- RootNode
- BelowAverageNode
- Stage= FirstStage Cost=111355.5172
- Stage= SecondStage Cost=-162923.5731
- Total scenario cost=-51568.0560
-
-----------------------------------------------------
-
-Total PH execution time=0.98 seconds
-
-Scenario tree solution written to file=ph_solution.json
-Shutting down Pyro solver components
-Dispatcher received request to shut down - initiating...
-
-Total execution time=4.03 seconds
-Name Server gracefully stopped.
-Lost connection to dispatch server - shutting down...
diff --git a/pyomo/pysp/tests/examples/baselines/TestPHFarmerPyro.test4.baseline b/pyomo/pysp/tests/examples/baselines/TestPHFarmerPyro.test4.baseline
deleted file mode 100644
index 0b876a6b3fe..00000000000
--- a/pyomo/pysp/tests/examples/baselines/TestPHFarmerPyro.test4.baseline
+++ /dev/null
@@ -1,613 +0,0 @@
-*** Pyro Name Server ***
-Name server listening on: ('0.0.0.0', 9090)
-Broadcast server listening on: ('0.0.0.0', 9090)
-URI is: PYRO://10.0.0.15:9090/0a00000f1db020a08c376b8b30dabb0b91
-URI written to: /Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/pyomo/pysp/tests/examples/Pyro_NS_URI
-Name Server started.
-User-defined PH extension module=pyomo.pysp.plugins.phhistoryextension already imported - skipping
-Dispatcher is ready.
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI:PYRO://10.0.0.15:7766/0a00000f1db120a08c388ffc8f208d7cc4
-This is worker Worker_7602@Ozymandias.local
-Listening for work from dispatcher...
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI: PYRO://10.0.0.15:7766/0a00000f1db120a08c388ffc8f208d7cc4
-This is client 7603@Ozymandias.local
-Initializing PH
-
-User-defined PH solution writer module=pyomo.pysp.plugins.jsonsolutionwriter already imported - skipping
-Starting PH
-
-Initiating PH iteration=0
-2014-05-28 17:56:16.239120: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpk7FB5M.tmpovNmNm.pyomo.lp
-2014-05-28 17:56:16.254294: Solve completed - number of solutions=1
-2014-05-28 17:56:16.267785: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpqdSmjp.tmpdGxeYS.pyomo.lp
-2014-05-28 17:56:16.283297: Solve completed - number of solutions=1
-2014-05-28 17:56:16.296292: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpOqlpZa.tmpf85kzm.pyomo.lp
-2014-05-28 17:56:16.311599: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.2540 First stage cost avg= 113494.4444 Max-Min=10416.67
-Cumulative run-time=0.16 seconds
-
-Initiating PH iteration=1
-2014-05-28 17:56:16.324331: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpoFrZ6f.tmpEBCqos.pyomo.lp
-2014-05-28 17:56:16.342156: Solve completed - number of solutions=1
-2014-05-28 17:56:16.355643: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpcNr23I.tmplGoUol.pyomo.lp
-2014-05-28 17:56:16.373258: Solve completed - number of solutions=1
-2014-05-28 17:56:16.385714: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpgWHWtp.tmpYXU2Y_.pyomo.lp
-2014-05-28 17:56:16.402701: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.1259 First stage cost avg= 113107.2221 Max-Min= 6943.89
-Cumulative run-time=0.25 seconds
-
-Initiating PH iteration=2
-2014-05-28 17:56:16.416199: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpGNYZFv.tmpW27hOD.pyomo.lp
-2014-05-28 17:56:16.435872: Solve completed - number of solutions=1
-2014-05-28 17:56:16.448293: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpq9S9It.tmpwZUGvK.pyomo.lp
-2014-05-28 17:56:16.466670: Solve completed - number of solutions=1
-2014-05-28 17:56:16.480221: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpnxGY9E.tmpbEk7Jf.pyomo.lp
-2014-05-28 17:56:16.497277: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0816 First stage cost avg= 112954.6296 Max-Min= 2234.82
-Cumulative run-time=0.35 seconds
-
-Initiating PH iteration=3
-2014-05-28 17:56:16.510796: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpxvYFQU.tmpYJxCym.pyomo.lp
-2014-05-28 17:56:16.530134: Solve completed - number of solutions=1
-2014-05-28 17:56:16.542579: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpNC7ahZ.tmpfpx0WR.pyomo.lp
-2014-05-28 17:56:16.560877: Solve completed - number of solutions=1
-2014-05-28 17:56:16.574459: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpdkG9EB.tmp3xfTYi.pyomo.lp
-2014-05-28 17:56:16.593854: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0796 First stage cost avg= 112963.0248 Max-Min= 2375.31
-Cumulative run-time=0.44 seconds
-
-Initiating PH iteration=4
-2014-05-28 17:56:16.607588: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp47jmUq.tmpf3uwQj.pyomo.lp
-2014-05-28 17:56:16.628116: Solve completed - number of solutions=1
-2014-05-28 17:56:16.641371: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpxZQpJS.tmpL7K11n.pyomo.lp
-2014-05-28 17:56:16.662156: Solve completed - number of solutions=1
-2014-05-28 17:56:16.674880: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpngT4Da.tmpOgOGPU.pyomo.lp
-2014-05-28 17:56:16.691987: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0776 First stage cost avg= 112915.6071 Max-Min= 3047.08
-Cumulative run-time=0.54 seconds
-
-Initiating PH iteration=5
-2014-05-28 17:56:16.705941: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmplK3gwy.tmpfGRVah.pyomo.lp
-2014-05-28 17:56:16.725716: Solve completed - number of solutions=1
-2014-05-28 17:56:16.738456: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpJDnWKi.tmpCMRTIv.pyomo.lp
-2014-05-28 17:56:16.757321: Solve completed - number of solutions=1
-2014-05-28 17:56:16.770132: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpChxYSJ.tmpLFeWgD.pyomo.lp
-2014-05-28 17:56:16.789078: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0794 First stage cost avg= 112825.3926 Max-Min= 3339.81
-Cumulative run-time=0.64 seconds
-
-Initiating PH iteration=6
-2014-05-28 17:56:16.802200: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpzWq39X.tmpRkYSoZ.pyomo.lp
-2014-05-28 17:56:16.821541: Solve completed - number of solutions=1
-2014-05-28 17:56:16.834356: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpy3sZLL.tmp1wDZMR.pyomo.lp
-2014-05-28 17:56:16.852842: Solve completed - number of solutions=1
-2014-05-28 17:56:16.866152: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp35FxhB.tmp0zMZOv.pyomo.lp
-2014-05-28 17:56:16.884131: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0668 First stage cost avg= 112317.9502 Max-Min= 2019.60
-Cumulative run-time=0.73 seconds
-
-Initiating PH iteration=7
-2014-05-28 17:56:16.897988: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpL9xL1J.tmpC4lx1b.pyomo.lp
-2014-05-28 17:56:16.917467: Solve completed - number of solutions=1
-2014-05-28 17:56:16.930486: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp3uRRWW.tmprJrwcd.pyomo.lp
-2014-05-28 17:56:16.949647: Solve completed - number of solutions=1
-2014-05-28 17:56:16.963485: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpCoLy_c.tmpAjA4gJ.pyomo.lp
-2014-05-28 17:56:16.980552: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0542 First stage cost avg= 111364.4660 Max-Min= 1181.85
-Cumulative run-time=0.83 seconds
-
-Initiating PH iteration=8
-2014-05-28 17:56:16.993511: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpbkVZOk.tmpZp3k3b.pyomo.lp
-2014-05-28 17:56:17.016605: Solve completed - number of solutions=1
-2014-05-28 17:56:17.029133: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpEEbqBJ.tmpZEaKLe.pyomo.lp
-2014-05-28 17:56:17.048319: Solve completed - number of solutions=1
-2014-05-28 17:56:17.061293: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmphGMqEi.tmpeYErC0.pyomo.lp
-2014-05-28 17:56:17.082640: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0360 First stage cost avg= 110283.4074 Max-Min= 463.23
-Cumulative run-time=0.93 seconds
-
-Initiating PH iteration=9
-2014-05-28 17:56:17.096380: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpxWdwLh.tmp0mmssH.pyomo.lp
-2014-05-28 17:56:17.115996: Solve completed - number of solutions=1
-2014-05-28 17:56:17.128650: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpBv_0jr.tmpk_VULh.pyomo.lp
-2014-05-28 17:56:17.147393: Solve completed - number of solutions=1
-2014-05-28 17:56:17.162217: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp80YESi.tmpjvvBmn.pyomo.lp
-2014-05-28 17:56:17.181111: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0243 First stage cost avg= 109399.2542 Max-Min= 363.90
-Cumulative run-time=1.03 seconds
-
-Initiating PH iteration=10
-2014-05-28 17:56:17.195987: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp2NSXOE.tmpZncV4C.pyomo.lp
-2014-05-28 17:56:17.213023: Solve completed - number of solutions=1
-2014-05-28 17:56:17.225882: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp8qVP5x.tmp2roqkp.pyomo.lp
-2014-05-28 17:56:17.246064: Solve completed - number of solutions=1
-2014-05-28 17:56:17.258857: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpUd5EY1.tmp6Vva_d.pyomo.lp
-2014-05-28 17:56:17.279198: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0256 First stage cost avg= 108834.1930 Max-Min= 933.90
-Cumulative run-time=1.13 seconds
-
-Initiating PH iteration=11
-2014-05-28 17:56:17.292624: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp2LX72X.tmpEhNzyA.pyomo.lp
-2014-05-28 17:56:17.310477: Solve completed - number of solutions=1
-2014-05-28 17:56:17.323009: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpxCvDJs.tmpUvnGdB.pyomo.lp
-2014-05-28 17:56:17.340095: Solve completed - number of solutions=1
-2014-05-28 17:56:17.352596: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp0asdNc.tmpJN8Gnj.pyomo.lp
-2014-05-28 17:56:17.370501: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0248 First stage cost avg= 108575.3219 Max-Min= 918.57
-Cumulative run-time=1.22 seconds
-
-Initiating PH iteration=12
-2014-05-28 17:56:17.383068: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpuSb_nv.tmpCJFdgL.pyomo.lp
-2014-05-28 17:56:17.402194: Solve completed - number of solutions=1
-2014-05-28 17:56:17.415006: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpehjBCv.tmpPw8IB4.pyomo.lp
-2014-05-28 17:56:17.436576: Solve completed - number of solutions=1
-2014-05-28 17:56:17.449560: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpl0mSye.tmpgDnl39.pyomo.lp
-2014-05-28 17:56:17.466974: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0163 First stage cost avg= 108513.5347 Max-Min= 591.25
-Cumulative run-time=1.32 seconds
-
-Initiating PH iteration=13
-2014-05-28 17:56:17.480634: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmphS2zNJ.tmp49Hfm_.pyomo.lp
-2014-05-28 17:56:17.498589: Solve completed - number of solutions=1
-2014-05-28 17:56:17.511898: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpx9XGpt.tmpiIrLkW.pyomo.lp
-2014-05-28 17:56:17.532120: Solve completed - number of solutions=1
-2014-05-28 17:56:17.546696: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpCa99nA.tmpEdC0oZ.pyomo.lp
-2014-05-28 17:56:17.564850: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0081 First stage cost avg= 108528.2899 Max-Min= 175.95
-Cumulative run-time=1.41 seconds
-
-Initiating PH iteration=14
-2014-05-28 17:56:17.578490: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpUuBMRC.tmpStUuGc.pyomo.lp
-2014-05-28 17:56:17.599289: Solve completed - number of solutions=1
-2014-05-28 17:56:17.611952: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpYL8l0p.tmpTmLHj9.pyomo.lp
-2014-05-28 17:56:17.630897: Solve completed - number of solutions=1
-2014-05-28 17:56:17.644248: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp_VsNV8.tmpCIrg9a.pyomo.lp
-2014-05-28 17:56:17.660466: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0168 First stage cost avg= 108561.6577 Max-Min= 274.77
-Cumulative run-time=1.51 seconds
-
-Initiating PH iteration=15
-2014-05-28 17:56:17.673818: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp6UJhCE.tmpL_hX3T.pyomo.lp
-2014-05-28 17:56:17.691578: Solve completed - number of solutions=1
-2014-05-28 17:56:17.704070: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp3Su1uD.tmpj756iD.pyomo.lp
-2014-05-28 17:56:17.726304: Solve completed - number of solutions=1
-2014-05-28 17:56:17.739715: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpsHPcAd.tmpSHXY2e.pyomo.lp
-2014-05-28 17:56:17.759537: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0163 First stage cost avg= 108604.0579 Max-Min= 295.14
-Cumulative run-time=1.61 seconds
-
-Initiating PH iteration=16
-2014-05-28 17:56:17.772252: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp15Jnls.tmpOAHHjB.pyomo.lp
-2014-05-28 17:56:17.791734: Solve completed - number of solutions=1
-2014-05-28 17:56:17.805592: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpDs_21E.tmpwzy77U.pyomo.lp
-2014-05-28 17:56:17.824727: Solve completed - number of solutions=1
-2014-05-28 17:56:17.837507: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpIxGfAL.tmpkoy7rp.pyomo.lp
-2014-05-28 17:56:17.856678: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0098 First stage cost avg= 108667.3583 Max-Min= 127.67
-Cumulative run-time=1.71 seconds
-
-Initiating PH iteration=17
-2014-05-28 17:56:17.870972: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpLv9MfI.tmp5uoxrw.pyomo.lp
-2014-05-28 17:56:17.890413: Solve completed - number of solutions=1
-2014-05-28 17:56:17.902940: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpC7yfgh.tmpM49QFy.pyomo.lp
-2014-05-28 17:56:17.920809: Solve completed - number of solutions=1
-2014-05-28 17:56:17.933209: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpSYAldd.tmpmB01x1.pyomo.lp
-2014-05-28 17:56:17.952446: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0032 First stage cost avg= 108758.4237 Max-Min= 59.69
-Cumulative run-time=1.80 seconds
-
-Initiating PH iteration=18
-2014-05-28 17:56:17.965231: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpuIVBdo.tmp1xgaoB.pyomo.lp
-2014-05-28 17:56:17.986017: Solve completed - number of solutions=1
-2014-05-28 17:56:17.999939: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpTbTgar.tmpKiaTsm.pyomo.lp
-2014-05-28 17:56:18.018482: Solve completed - number of solutions=1
-2014-05-28 17:56:18.032351: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpV0KuSa.tmpefHk4n.pyomo.lp
-2014-05-28 17:56:18.050940: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0026 First stage cost avg= 108868.1277 Max-Min= 101.79
-Cumulative run-time=1.90 seconds
-
-Initiating PH iteration=19
-2014-05-28 17:56:18.064903: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpXetPHz.tmpCPgCOH.pyomo.lp
-2014-05-28 17:56:18.085057: Solve completed - number of solutions=1
-2014-05-28 17:56:18.098517: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpPUclxo.tmpbDF9IV.pyomo.lp
-2014-05-28 17:56:18.118264: Solve completed - number of solutions=1
-2014-05-28 17:56:18.131458: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp3I8RZh.tmphkLVwX.pyomo.lp
-2014-05-28 17:56:18.151514: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0039 First stage cost avg= 108975.3089 Max-Min= 73.41
-Cumulative run-time=2.00 seconds
-
-Initiating PH iteration=20
-2014-05-28 17:56:18.181343: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpdWObsI.tmph4N1gg.pyomo.lp
-2014-05-28 17:56:18.199299: Solve completed - number of solutions=1
-2014-05-28 17:56:18.212221: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpWam6lg.tmpmf7NvE.pyomo.lp
-2014-05-28 17:56:18.232760: Solve completed - number of solutions=1
-2014-05-28 17:56:18.245880: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmplyAlEp.tmp8DbgJw.pyomo.lp
-2014-05-28 17:56:18.262763: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0043 First stage cost avg= 109057.4144 Max-Min= 39.47
-Cumulative run-time=2.11 seconds
-
-Initiating PH iteration=21
-2014-05-28 17:56:18.275755: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpvqivcd.tmpntqNft.pyomo.lp
-2014-05-28 17:56:18.293576: Solve completed - number of solutions=1
-2014-05-28 17:56:18.306152: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp5LBfkp.tmpFxdSmk.pyomo.lp
-2014-05-28 17:56:18.325263: Solve completed - number of solutions=1
-2014-05-28 17:56:18.337843: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpGDnmah.tmp9h0WvO.pyomo.lp
-2014-05-28 17:56:18.356990: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0044 First stage cost avg= 109099.7145 Max-Min= 87.57
-Cumulative run-time=2.21 seconds
-
-Initiating PH iteration=22
-2014-05-28 17:56:18.369952: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpYFMvOn.tmpeWH9nU.pyomo.lp
-2014-05-28 17:56:18.390704: Solve completed - number of solutions=1
-2014-05-28 17:56:18.404178: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpSWWpjF.tmppx8cxU.pyomo.lp
-2014-05-28 17:56:18.423504: Solve completed - number of solutions=1
-2014-05-28 17:56:18.437942: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpOXBq3P.tmpfrZFj_.pyomo.lp
-2014-05-28 17:56:18.455269: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0040 First stage cost avg= 109099.1239 Max-Min= 104.22
-Cumulative run-time=2.30 seconds
-
-Initiating PH iteration=23
-2014-05-28 17:56:18.468066: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpomIQ_m.tmpLBzT72.pyomo.lp
-2014-05-28 17:56:18.486065: Solve completed - number of solutions=1
-2014-05-28 17:56:18.498926: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpfGb7nR.tmpoHWfhV.pyomo.lp
-2014-05-28 17:56:18.517771: Solve completed - number of solutions=1
-2014-05-28 17:56:18.531173: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpPrL6PN.tmpqtchPL.pyomo.lp
-2014-05-28 17:56:18.549521: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0032 First stage cost avg= 109062.8322 Max-Min= 88.54
-Cumulative run-time=2.40 seconds
-
-Initiating PH iteration=24
-2014-05-28 17:56:18.563237: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpGZvwD6.tmpaAsFkJ.pyomo.lp
-2014-05-28 17:56:18.581620: Solve completed - number of solutions=1
-2014-05-28 17:56:18.595351: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp2Byn1i.tmpjULqtD.pyomo.lp
-2014-05-28 17:56:18.612775: Solve completed - number of solutions=1
-2014-05-28 17:56:18.625146: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp2eBnOp.tmpaL_cVg.pyomo.lp
-2014-05-28 17:56:18.643735: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0021 First stage cost avg= 109004.1156 Max-Min= 54.49
-Cumulative run-time=2.49 seconds
-
-Initiating PH iteration=25
-2014-05-28 17:56:18.656892: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpi6yTRn.tmpo17yi0.pyomo.lp
-2014-05-28 17:56:18.675643: Solve completed - number of solutions=1
-2014-05-28 17:56:18.688415: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpMAb7eh.tmpELvXe0.pyomo.lp
-2014-05-28 17:56:18.706039: Solve completed - number of solutions=1
-2014-05-28 17:56:18.718740: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmplsS0dr.tmpMtolFd.pyomo.lp
-2014-05-28 17:56:18.737996: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0008 First stage cost avg= 108937.8039 Max-Min= 16.89
-Cumulative run-time=2.59 seconds
-
-Initiating PH iteration=26
-2014-05-28 17:56:18.751754: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmperge3p.tmp4K8PWd.pyomo.lp
-2014-05-28 17:56:18.770969: Solve completed - number of solutions=1
-2014-05-28 17:56:18.784509: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpZ5MCjx.tmpLE_Z_z.pyomo.lp
-2014-05-28 17:56:18.804613: Solve completed - number of solutions=1
-2014-05-28 17:56:18.817091: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp2OQq8T.tmprn5F3t.pyomo.lp
-2014-05-28 17:56:18.836019: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0005 First stage cost avg= 108876.8822 Max-Min= 14.27
-Cumulative run-time=2.68 seconds
-
-Initiating PH iteration=27
-2014-05-28 17:56:18.848978: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp0AXaof.tmp_W5mAN.pyomo.lp
-2014-05-28 17:56:18.872417: Solve completed - number of solutions=1
-2014-05-28 17:56:18.885632: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp9f_QBX.tmp1w7p1A.pyomo.lp
-2014-05-28 17:56:18.904776: Solve completed - number of solutions=1
-2014-05-28 17:56:18.918033: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpVFLXvx.tmpH_vjLX.pyomo.lp
-2014-05-28 17:56:18.937324: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0015 First stage cost avg= 108830.6201 Max-Min= 34.81
-Cumulative run-time=2.79 seconds
-
-Initiating PH iteration=28
-2014-05-28 17:56:18.952500: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpinY3uo.tmpSIK_cY.pyomo.lp
-2014-05-28 17:56:18.972710: Solve completed - number of solutions=1
-2014-05-28 17:56:18.986149: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmplvCZbL.tmpT0FdoQ.pyomo.lp
-2014-05-28 17:56:19.004026: Solve completed - number of solutions=1
-2014-05-28 17:56:19.016579: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp3pwqAd.tmpkepWwe.pyomo.lp
-2014-05-28 17:56:19.035558: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0021 First stage cost avg= 108803.9655 Max-Min= 44.57
-Cumulative run-time=2.88 seconds
-
-Initiating PH iteration=29
-2014-05-28 17:56:19.048968: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpJCrbtv.tmpK2Q1hM.pyomo.lp
-2014-05-28 17:56:19.069028: Solve completed - number of solutions=1
-2014-05-28 17:56:19.083540: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmppa4qm1.tmp8YnMji.pyomo.lp
-2014-05-28 17:56:19.102117: Solve completed - number of solutions=1
-2014-05-28 17:56:19.115148: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp_Cl4uy.tmpEo5sKS.pyomo.lp
-2014-05-28 17:56:19.132538: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0023 First stage cost avg= 108797.7661 Max-Min= 45.24
-Cumulative run-time=2.98 seconds
-
-Initiating PH iteration=30
-2014-05-28 17:56:19.145871: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpJD67mc.tmpDVvvSm.pyomo.lp
-2014-05-28 17:56:19.166145: Solve completed - number of solutions=1
-2014-05-28 17:56:19.179321: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpVHBTjI.tmpfGLZN8.pyomo.lp
-2014-05-28 17:56:19.196522: Solve completed - number of solutions=1
-2014-05-28 17:56:19.208965: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpcEZlsV.tmppUepM0.pyomo.lp
-2014-05-28 17:56:19.227106: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0020 First stage cost avg= 108809.4793 Max-Min= 39.01
-Cumulative run-time=3.08 seconds
-
-Initiating PH iteration=31
-2014-05-28 17:56:19.239688: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpa0XLVf.tmp_0k3eJ.pyomo.lp
-2014-05-28 17:56:19.257937: Solve completed - number of solutions=1
-2014-05-28 17:56:19.271076: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmplVeUBY.tmpBeeXZ5.pyomo.lp
-2014-05-28 17:56:19.287616: Solve completed - number of solutions=1
-2014-05-28 17:56:19.300771: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpYB_6mS.tmpPkrwbL.pyomo.lp
-2014-05-28 17:56:19.318888: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0015 First stage cost avg= 108834.1639 Max-Min= 28.07
-Cumulative run-time=3.17 seconds
-
-Initiating PH iteration=32
-2014-05-28 17:56:19.332616: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpxTNUCl.tmpwotg78.pyomo.lp
-2014-05-28 17:56:19.350874: Solve completed - number of solutions=1
-2014-05-28 17:56:19.363495: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp9l_zxZ.tmpEM1gL0.pyomo.lp
-2014-05-28 17:56:19.380625: Solve completed - number of solutions=1
-2014-05-28 17:56:19.393273: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpeectdv.tmpMhZXVg.pyomo.lp
-2014-05-28 17:56:19.410579: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0008 First stage cost avg= 108865.6237 Max-Min= 14.67
-Cumulative run-time=3.26 seconds
-
-Initiating PH iteration=33
-2014-05-28 17:56:19.424550: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp8dr7Cm.tmpnyfGVr.pyomo.lp
-2014-05-28 17:56:19.444602: Solve completed - number of solutions=1
-2014-05-28 17:56:19.457618: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp0X6yUj.tmpFQXDuX.pyomo.lp
-2014-05-28 17:56:19.481325: Solve completed - number of solutions=1
-2014-05-28 17:56:19.494947: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpWwOxPw.tmpOHL4SM.pyomo.lp
-2014-05-28 17:56:19.517532: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0001 First stage cost avg= 108897.5679 Max-Min= 1.06
-Cumulative run-time=3.37 seconds
-PH converged - convergence metric is below threshold=0.0001
-Number of discrete variables fixed before final plugin calls=0 (total=0)
-Number of continuous variables fixed before final plugin calls=0 (total=3)
-PH algorithm history written to file=ph_history.json
-PH complete
-Convergence history:
-Iteration Metric Value
- 0 0.2540
- 1 0.1259
- 2 0.0816
- 3 0.0796
- 4 0.0776
- 5 0.0794
- 6 0.0668
- 7 0.0542
- 8 0.0360
- 9 0.0243
- 10 0.0256
- 11 0.0248
- 12 0.0163
- 13 0.0081
- 14 0.0168
- 15 0.0163
- 16 0.0098
- 17 0.0032
- 18 0.0026
- 19 0.0039
- 20 0.0043
- 21 0.0044
- 22 0.0040
- 23 0.0032
- 24 0.0021
- 25 0.0008
- 26 0.0005
- 27 0.0015
- 28 0.0021
- 29 0.0023
- 30 0.0020
- 31 0.0015
- 32 0.0008
- 33 0.0001
-
-***********************************************************************************************
->>>THE EXPECTED SUM OF THE STAGE COST VARIABLES=-108388.378639<<<
->>>***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise<<<
-***********************************************************************************************
-Final number of discrete variables fixed=0 (total=0)
-Final number of continuous variables fixed=0 (total=3)
-Final variable values:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 79.9844 80.0000 79.9768 Max-Min: 0.0232 Avg: 79.9871
- Index: [SUGAR_BEETS] Values: 249.9848 249.9770 250.0000 Max-Min: 0.0230 Avg: 249.9873
- Index: [WHEAT] Values: 170.0308 170.0230 170.0232 Max-Min: 0.0078 Avg: 170.0256
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108897.0836 108897.4725 108898.1476 Max-Min: 1.0640 Avg: 108897.5679
-Final costs:
-Scenario Tree Costs
-***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise
-----------------------------------------------------
-Tree Nodes:
-
- Name=AboveAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AboveAverageScenario
- Expected cost of (sub)tree rooted at node=-275899.3041
-
- Name=AverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AverageScenario
- Expected cost of (sub)tree rooted at node=-218243.2209
-
- Name=BelowAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-157713.8615
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- AboveAverageNode
- AverageNode
- BelowAverageNode
- Scenarios:
- AboveAverageScenario
- AverageScenario
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-108388.3786
-
-----------------------------------------------------
-Scenarios:
-
- Name=AboveAverageScenario
- Probability=0.3333
- Leaf Node=AboveAverageNode
- Tree node sequence:
- RootNode
- AboveAverageNode
- Stage= FirstStage Cost=108898.1476
- Stage= SecondStage Cost=-275899.3041
- Total scenario cost=-167001.1565
-
- Name=AverageScenario
- Probability=0.3333
- Leaf Node=AverageNode
- Tree node sequence:
- RootNode
- AverageNode
- Stage= FirstStage Cost=108897.4725
- Stage= SecondStage Cost=-218243.2209
- Total scenario cost=-109345.7484
-
- Name=BelowAverageScenario
- Probability=0.3333
- Leaf Node=BelowAverageNode
- Tree node sequence:
- RootNode
- BelowAverageNode
- Stage= FirstStage Cost=108897.0836
- Stage= SecondStage Cost=-157713.8615
- Total scenario cost=-48816.7780
-
-----------------------------------------------------
-
-Total PH execution time=3.37 seconds
-
-Scenario tree solution written to file=ph_solution.json
-Shutting down Pyro solver components
-Dispatcher received request to shut down - initiating...
-
-Total execution time=6.42 seconds
-Name Server gracefully stopped.
-Lost connection to dispatch server - shutting down...
diff --git a/pyomo/pysp/tests/examples/baselines/TestPHFarmerPyro.test5.baseline b/pyomo/pysp/tests/examples/baselines/TestPHFarmerPyro.test5.baseline
deleted file mode 100644
index 8887ee89b40..00000000000
--- a/pyomo/pysp/tests/examples/baselines/TestPHFarmerPyro.test5.baseline
+++ /dev/null
@@ -1,613 +0,0 @@
-*** Pyro Name Server ***
-Name server listening on: ('0.0.0.0', 9090)
-Broadcast server listening on: ('0.0.0.0', 9090)
-URI is: PYRO://10.0.0.15:9090/0a00000f1e2820a08c3ba641e1a78586fe
-URI written to: /Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/pyomo/pysp/tests/examples/Pyro_NS_URI
-Name Server started.
-User-defined PH extension module=pyomo.pysp.plugins.phhistoryextension already imported - skipping
-Dispatcher is ready.
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI:PYRO://10.0.0.15:7766/0a00000f1e2920a08c3cc8bef6a6754c2f
-This is worker Worker_7722@Ozymandias.local
-Listening for work from dispatcher...
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI: PYRO://10.0.0.15:7766/0a00000f1e2920a08c3cc8bef6a6754c2f
-This is client 7723@Ozymandias.local
-Initializing PH
-
-User-defined PH solution writer module=pyomo.pysp.plugins.jsonsolutionwriter already imported - skipping
-Starting PH
-
-Initiating PH iteration=0
-2014-05-28 17:56:27.069222: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmppj1Oq_.tmp6N0PQP.pyomo.lp
-2014-05-28 17:56:27.085577: Solve completed - number of solutions=1
-2014-05-28 17:56:27.099775: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpSyhfGe.tmpORXSV5.pyomo.lp
-2014-05-28 17:56:27.115208: Solve completed - number of solutions=1
-2014-05-28 17:56:27.128189: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpjT592p.tmpk5vLye.pyomo.lp
-2014-05-28 17:56:27.142014: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.2540 First stage cost avg= 113494.4444 Max-Min=10416.67
-Cumulative run-time=0.16 seconds
-
-Initiating PH iteration=1
-2014-05-28 17:56:27.155640: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpBqcy7b.tmpoxAgvA.pyomo.lp
-2014-05-28 17:56:27.173136: Solve completed - number of solutions=1
-2014-05-28 17:56:27.185574: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpdtn7CS.tmpKMTceV.pyomo.lp
-2014-05-28 17:56:27.202149: Solve completed - number of solutions=1
-2014-05-28 17:56:27.214569: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpKL6bpD.tmpqUk30V.pyomo.lp
-2014-05-28 17:56:27.231821: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.1259 First stage cost avg= 113107.2221 Max-Min= 6943.89
-Cumulative run-time=0.25 seconds
-
-Initiating PH iteration=2
-2014-05-28 17:56:27.244602: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpWEWfVS.tmpKH6EKO.pyomo.lp
-2014-05-28 17:56:27.262189: Solve completed - number of solutions=1
-2014-05-28 17:56:27.274853: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp3XvUse.tmpEwsq2V.pyomo.lp
-2014-05-28 17:56:27.292069: Solve completed - number of solutions=1
-2014-05-28 17:56:27.304730: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp110ffl.tmpuxEoNO.pyomo.lp
-2014-05-28 17:56:27.322442: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0816 First stage cost avg= 112954.6296 Max-Min= 2234.82
-Cumulative run-time=0.34 seconds
-
-Initiating PH iteration=3
-2014-05-28 17:56:27.335630: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpyPhP_5.tmpO1YIMB.pyomo.lp
-2014-05-28 17:56:27.354200: Solve completed - number of solutions=1
-2014-05-28 17:56:27.367691: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpxz_wEm.tmpRIxhMg.pyomo.lp
-2014-05-28 17:56:27.384035: Solve completed - number of solutions=1
-2014-05-28 17:56:27.397527: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpgPVpDL.tmp39_4nM.pyomo.lp
-2014-05-28 17:56:27.413251: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0796 First stage cost avg= 112963.0248 Max-Min= 2375.31
-Cumulative run-time=0.43 seconds
-
-Initiating PH iteration=4
-2014-05-28 17:56:27.426969: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpDmBYk5.tmpwIXZKX.pyomo.lp
-2014-05-28 17:56:27.448579: Solve completed - number of solutions=1
-2014-05-28 17:56:27.461577: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpCCLJ8s.tmpAkNQUR.pyomo.lp
-2014-05-28 17:56:27.478574: Solve completed - number of solutions=1
-2014-05-28 17:56:27.491132: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp80OBBl.tmpo0kX2E.pyomo.lp
-2014-05-28 17:56:27.507176: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0776 First stage cost avg= 112915.6071 Max-Min= 3047.08
-Cumulative run-time=0.53 seconds
-
-Initiating PH iteration=5
-2014-05-28 17:56:27.519927: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpW4AYyT.tmpfQtEfS.pyomo.lp
-2014-05-28 17:56:27.540995: Solve completed - number of solutions=1
-2014-05-28 17:56:27.554706: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpkfhtwO.tmpaGFAXP.pyomo.lp
-2014-05-28 17:56:27.577968: Solve completed - number of solutions=1
-2014-05-28 17:56:27.590575: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpjYWh99.tmpsjjJeo.pyomo.lp
-2014-05-28 17:56:27.607908: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0794 First stage cost avg= 112825.3926 Max-Min= 3339.81
-Cumulative run-time=0.63 seconds
-
-Initiating PH iteration=6
-2014-05-28 17:56:27.620922: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp9mws4J.tmpCWHMAb.pyomo.lp
-2014-05-28 17:56:27.639558: Solve completed - number of solutions=1
-2014-05-28 17:56:27.653163: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmptU52eM.tmpYK3_Yy.pyomo.lp
-2014-05-28 17:56:27.671209: Solve completed - number of solutions=1
-2014-05-28 17:56:27.684750: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp7EIOEJ.tmpGfLIUb.pyomo.lp
-2014-05-28 17:56:27.702154: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0668 First stage cost avg= 112317.9502 Max-Min= 2019.60
-Cumulative run-time=0.72 seconds
-
-Initiating PH iteration=7
-2014-05-28 17:56:27.715857: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpY3ZxPN.tmpLoSMzb.pyomo.lp
-2014-05-28 17:56:27.734087: Solve completed - number of solutions=1
-2014-05-28 17:56:27.747600: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp4DDCYY.tmpTGK3Gx.pyomo.lp
-2014-05-28 17:56:27.764728: Solve completed - number of solutions=1
-2014-05-28 17:56:27.778605: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpt5HMq2.tmp6MDMF8.pyomo.lp
-2014-05-28 17:56:27.797129: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0542 First stage cost avg= 111364.4660 Max-Min= 1181.85
-Cumulative run-time=0.82 seconds
-
-Initiating PH iteration=8
-2014-05-28 17:56:27.810741: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpf3T01D.tmp_J86Jo.pyomo.lp
-2014-05-28 17:56:27.829336: Solve completed - number of solutions=1
-2014-05-28 17:56:27.842030: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpuoqLpP.tmpJGCAps.pyomo.lp
-2014-05-28 17:56:27.859160: Solve completed - number of solutions=1
-2014-05-28 17:56:27.871796: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpZN8y39.tmpCrnL4H.pyomo.lp
-2014-05-28 17:56:27.889321: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0360 First stage cost avg= 110283.4074 Max-Min= 463.23
-Cumulative run-time=0.91 seconds
-
-Initiating PH iteration=9
-2014-05-28 17:56:27.902719: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpUvRkTl.tmpoqGumY.pyomo.lp
-2014-05-28 17:56:27.920818: Solve completed - number of solutions=1
-2014-05-28 17:56:27.933484: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpIQw1hv.tmpXgWYQm.pyomo.lp
-2014-05-28 17:56:27.952642: Solve completed - number of solutions=1
-2014-05-28 17:56:27.966343: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp0CZw37.tmpPUqMln.pyomo.lp
-2014-05-28 17:56:27.984997: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0243 First stage cost avg= 109399.2542 Max-Min= 363.90
-Cumulative run-time=1.01 seconds
-
-Initiating PH iteration=10
-2014-05-28 17:56:27.998867: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp3lmaGp.tmppGBdWy.pyomo.lp
-2014-05-28 17:56:28.017278: Solve completed - number of solutions=1
-2014-05-28 17:56:28.031571: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpyIovpz.tmplOMXqZ.pyomo.lp
-2014-05-28 17:56:28.052549: Solve completed - number of solutions=1
-2014-05-28 17:56:28.065234: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpN5u5rm.tmp8O9sEG.pyomo.lp
-2014-05-28 17:56:28.081809: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0256 First stage cost avg= 108834.1930 Max-Min= 933.90
-Cumulative run-time=1.10 seconds
-
-Initiating PH iteration=11
-2014-05-28 17:56:28.094876: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp7R74rA.tmpfZpV1H.pyomo.lp
-2014-05-28 17:56:28.114349: Solve completed - number of solutions=1
-2014-05-28 17:56:28.127021: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpTJ3wb0.tmpmzqzvg.pyomo.lp
-2014-05-28 17:56:28.144209: Solve completed - number of solutions=1
-2014-05-28 17:56:28.157323: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpXpz1yt.tmpvZG7fZ.pyomo.lp
-2014-05-28 17:56:28.175195: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0248 First stage cost avg= 108575.3219 Max-Min= 918.57
-Cumulative run-time=1.20 seconds
-
-Initiating PH iteration=12
-2014-05-28 17:56:28.188751: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpHWihsL.tmpGAMJWU.pyomo.lp
-2014-05-28 17:56:28.207463: Solve completed - number of solutions=1
-2014-05-28 17:56:28.220004: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpF2JMO_.tmp4w7WJw.pyomo.lp
-2014-05-28 17:56:28.237890: Solve completed - number of solutions=1
-2014-05-28 17:56:28.250700: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpmrZ5IM.tmpmLEVA4.pyomo.lp
-2014-05-28 17:56:28.268752: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0163 First stage cost avg= 108513.5347 Max-Min= 591.25
-Cumulative run-time=1.29 seconds
-
-Initiating PH iteration=13
-2014-05-28 17:56:28.281441: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpJrC274.tmpLR61K8.pyomo.lp
-2014-05-28 17:56:28.300028: Solve completed - number of solutions=1
-2014-05-28 17:56:28.314084: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpKDDMkv.tmptE1ymL.pyomo.lp
-2014-05-28 17:56:28.330542: Solve completed - number of solutions=1
-2014-05-28 17:56:28.343089: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp7OYQy3.tmpP3cUrq.pyomo.lp
-2014-05-28 17:56:28.359929: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0081 First stage cost avg= 108528.2899 Max-Min= 175.95
-Cumulative run-time=1.38 seconds
-
-Initiating PH iteration=14
-2014-05-28 17:56:28.373563: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpnGLnem.tmp8hfKGs.pyomo.lp
-2014-05-28 17:56:28.391807: Solve completed - number of solutions=1
-2014-05-28 17:56:28.404949: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmppPcd3z.tmpsmanTz.pyomo.lp
-2014-05-28 17:56:28.421922: Solve completed - number of solutions=1
-2014-05-28 17:56:28.435351: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp4MzG8o.tmpVTWNHD.pyomo.lp
-2014-05-28 17:56:28.451841: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0168 First stage cost avg= 108561.6577 Max-Min= 274.77
-Cumulative run-time=1.47 seconds
-
-Initiating PH iteration=15
-2014-05-28 17:56:28.465046: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpHLXwce.tmpmS9ciF.pyomo.lp
-2014-05-28 17:56:28.483800: Solve completed - number of solutions=1
-2014-05-28 17:56:28.496399: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpJs1tnG.tmplIsyQK.pyomo.lp
-2014-05-28 17:56:28.513465: Solve completed - number of solutions=1
-2014-05-28 17:56:28.526117: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpQ0_Lei.tmpaocZjq.pyomo.lp
-2014-05-28 17:56:28.543525: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0163 First stage cost avg= 108604.0579 Max-Min= 295.14
-Cumulative run-time=1.56 seconds
-
-Initiating PH iteration=16
-2014-05-28 17:56:28.556474: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpkNAiLN.tmpa_4G82.pyomo.lp
-2014-05-28 17:56:28.575346: Solve completed - number of solutions=1
-2014-05-28 17:56:28.587970: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpsvRaU1.tmppJ2aJA.pyomo.lp
-2014-05-28 17:56:28.607503: Solve completed - number of solutions=1
-2014-05-28 17:56:28.620290: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpznqqto.tmpSQBB1D.pyomo.lp
-2014-05-28 17:56:28.638212: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0098 First stage cost avg= 108667.3583 Max-Min= 127.67
-Cumulative run-time=1.66 seconds
-
-Initiating PH iteration=17
-2014-05-28 17:56:28.650867: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpPKFgmG.tmp4RFT7P.pyomo.lp
-2014-05-28 17:56:28.669452: Solve completed - number of solutions=1
-2014-05-28 17:56:28.682124: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpwBXa3K.tmp1fZC8w.pyomo.lp
-2014-05-28 17:56:28.699344: Solve completed - number of solutions=1
-2014-05-28 17:56:28.713236: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpl7pTvg.tmprp2cbD.pyomo.lp
-2014-05-28 17:56:28.730374: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0032 First stage cost avg= 108758.4237 Max-Min= 59.69
-Cumulative run-time=1.75 seconds
-
-Initiating PH iteration=18
-2014-05-28 17:56:28.743998: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpylKiMC.tmpXywzJO.pyomo.lp
-2014-05-28 17:56:28.763586: Solve completed - number of solutions=1
-2014-05-28 17:56:28.776330: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpSujDW9.tmpUTcKAJ.pyomo.lp
-2014-05-28 17:56:28.792819: Solve completed - number of solutions=1
-2014-05-28 17:56:28.805375: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpKcc9kN.tmpspTZjP.pyomo.lp
-2014-05-28 17:56:28.823078: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0026 First stage cost avg= 108868.1277 Max-Min= 101.79
-Cumulative run-time=1.84 seconds
-
-Initiating PH iteration=19
-2014-05-28 17:56:28.836284: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpENXblB.tmpBLuMCo.pyomo.lp
-2014-05-28 17:56:28.853509: Solve completed - number of solutions=1
-2014-05-28 17:56:28.866316: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpD9R8jV.tmp_V1LR7.pyomo.lp
-2014-05-28 17:56:28.883185: Solve completed - number of solutions=1
-2014-05-28 17:56:28.896005: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpblwmvb.tmpJ3i7lI.pyomo.lp
-2014-05-28 17:56:28.913391: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0039 First stage cost avg= 108975.3089 Max-Min= 73.41
-Cumulative run-time=1.93 seconds
-
-Initiating PH iteration=20
-2014-05-28 17:56:28.927162: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpNbKdnG.tmpWPubHi.pyomo.lp
-2014-05-28 17:56:28.945208: Solve completed - number of solutions=1
-2014-05-28 17:56:28.957799: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpiYF6ch.tmpsEyJMe.pyomo.lp
-2014-05-28 17:56:28.976686: Solve completed - number of solutions=1
-2014-05-28 17:56:28.991125: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp7fGCZX.tmpwhp7t7.pyomo.lp
-2014-05-28 17:56:29.008867: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0043 First stage cost avg= 109057.4144 Max-Min= 39.47
-Cumulative run-time=2.03 seconds
-
-Initiating PH iteration=21
-2014-05-28 17:56:29.038744: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpgM74WB.tmpARUTmq.pyomo.lp
-2014-05-28 17:56:29.059792: Solve completed - number of solutions=1
-2014-05-28 17:56:29.074192: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpuhYwLT.tmpYAU103.pyomo.lp
-2014-05-28 17:56:29.091177: Solve completed - number of solutions=1
-2014-05-28 17:56:29.103687: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmptf4kyz.tmp4rEeT_.pyomo.lp
-2014-05-28 17:56:29.121455: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0044 First stage cost avg= 109099.7145 Max-Min= 87.57
-Cumulative run-time=2.14 seconds
-
-Initiating PH iteration=22
-2014-05-28 17:56:29.134795: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp1_QVCD.tmpJwhgmg.pyomo.lp
-2014-05-28 17:56:29.153113: Solve completed - number of solutions=1
-2014-05-28 17:56:29.165787: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpwh6M8p.tmpUSw068.pyomo.lp
-2014-05-28 17:56:29.184621: Solve completed - number of solutions=1
-2014-05-28 17:56:29.197637: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpGWYlfo.tmpipNx2k.pyomo.lp
-2014-05-28 17:56:29.215011: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0040 First stage cost avg= 109099.1239 Max-Min= 104.22
-Cumulative run-time=2.23 seconds
-
-Initiating PH iteration=23
-2014-05-28 17:56:29.229214: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmppErRBI.tmpssoYib.pyomo.lp
-2014-05-28 17:56:29.247332: Solve completed - number of solutions=1
-2014-05-28 17:56:29.260483: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpPqSiPs.tmpztafeF.pyomo.lp
-2014-05-28 17:56:29.277529: Solve completed - number of solutions=1
-2014-05-28 17:56:29.289992: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmptpW2TP.tmpyGHgl8.pyomo.lp
-2014-05-28 17:56:29.307345: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0032 First stage cost avg= 109062.8322 Max-Min= 88.54
-Cumulative run-time=2.33 seconds
-
-Initiating PH iteration=24
-2014-05-28 17:56:29.320643: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpRtJHQv.tmprk9OQ4.pyomo.lp
-2014-05-28 17:56:29.338171: Solve completed - number of solutions=1
-2014-05-28 17:56:29.351102: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpCIrDMn.tmpMC7yYl.pyomo.lp
-2014-05-28 17:56:29.369943: Solve completed - number of solutions=1
-2014-05-28 17:56:29.383456: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpdgOwC4.tmpzKGPoO.pyomo.lp
-2014-05-28 17:56:29.401307: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0021 First stage cost avg= 109004.1156 Max-Min= 54.49
-Cumulative run-time=2.42 seconds
-
-Initiating PH iteration=25
-2014-05-28 17:56:29.415118: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpfQba_r.tmpHRFUkg.pyomo.lp
-2014-05-28 17:56:29.433972: Solve completed - number of solutions=1
-2014-05-28 17:56:29.446547: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpdU06xi.tmpkzvRZL.pyomo.lp
-2014-05-28 17:56:29.464469: Solve completed - number of solutions=1
-2014-05-28 17:56:29.477174: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp60XApb.tmpNKZWNf.pyomo.lp
-2014-05-28 17:56:29.494733: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0008 First stage cost avg= 108937.8039 Max-Min= 16.89
-Cumulative run-time=2.51 seconds
-
-Initiating PH iteration=26
-2014-05-28 17:56:29.508406: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmporkm1E.tmpvGniam.pyomo.lp
-2014-05-28 17:56:29.527136: Solve completed - number of solutions=1
-2014-05-28 17:56:29.540776: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp0pPX_J.tmpTUll4F.pyomo.lp
-2014-05-28 17:56:29.558331: Solve completed - number of solutions=1
-2014-05-28 17:56:29.571974: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmptmIO8g.tmpJQYgKF.pyomo.lp
-2014-05-28 17:56:29.589995: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0005 First stage cost avg= 108876.8822 Max-Min= 14.27
-Cumulative run-time=2.61 seconds
-
-Initiating PH iteration=27
-2014-05-28 17:56:29.602764: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmplkNV1V.tmpzlcHUe.pyomo.lp
-2014-05-28 17:56:29.621684: Solve completed - number of solutions=1
-2014-05-28 17:56:29.634392: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpMWjoQE.tmpWJueJH.pyomo.lp
-2014-05-28 17:56:29.651192: Solve completed - number of solutions=1
-2014-05-28 17:56:29.663848: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpmmIKsC.tmpEx_9LD.pyomo.lp
-2014-05-28 17:56:29.680685: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0015 First stage cost avg= 108830.6201 Max-Min= 34.81
-Cumulative run-time=2.70 seconds
-
-Initiating PH iteration=28
-2014-05-28 17:56:29.693565: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp5zRWwu.tmpE7V16l.pyomo.lp
-2014-05-28 17:56:29.713068: Solve completed - number of solutions=1
-2014-05-28 17:56:29.725696: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpwjoxH1.tmp4t9YOZ.pyomo.lp
-2014-05-28 17:56:29.742901: Solve completed - number of solutions=1
-2014-05-28 17:56:29.755498: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp69KE2M.tmpxBqwDb.pyomo.lp
-2014-05-28 17:56:29.772660: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0021 First stage cost avg= 108803.9655 Max-Min= 44.57
-Cumulative run-time=2.79 seconds
-
-Initiating PH iteration=29
-2014-05-28 17:56:29.785938: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpuD7xBQ.tmpZUSYQS.pyomo.lp
-2014-05-28 17:56:29.803110: Solve completed - number of solutions=1
-2014-05-28 17:56:29.815605: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpkWPi_I.tmpUMuAoW.pyomo.lp
-2014-05-28 17:56:29.833412: Solve completed - number of solutions=1
-2014-05-28 17:56:29.846044: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpqhZ9QK.tmpvAn3z0.pyomo.lp
-2014-05-28 17:56:29.863279: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0023 First stage cost avg= 108797.7661 Max-Min= 45.24
-Cumulative run-time=2.88 seconds
-
-Initiating PH iteration=30
-2014-05-28 17:56:29.876695: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpXWtiax.tmpEUDWCw.pyomo.lp
-2014-05-28 17:56:29.895360: Solve completed - number of solutions=1
-2014-05-28 17:56:29.908828: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmplAvpvQ.tmpJj30Q8.pyomo.lp
-2014-05-28 17:56:29.926300: Solve completed - number of solutions=1
-2014-05-28 17:56:29.938958: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpVFk1tW.tmp0N05mw.pyomo.lp
-2014-05-28 17:56:29.956302: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0020 First stage cost avg= 108809.4793 Max-Min= 39.01
-Cumulative run-time=2.98 seconds
-
-Initiating PH iteration=31
-2014-05-28 17:56:29.968988: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpef7zEd.tmpvMOLET.pyomo.lp
-2014-05-28 17:56:29.987740: Solve completed - number of solutions=1
-2014-05-28 17:56:30.000400: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpGUCQiX.tmpqrhGyE.pyomo.lp
-2014-05-28 17:56:30.017914: Solve completed - number of solutions=1
-2014-05-28 17:56:30.031020: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp0VYvQ2.tmpTofdqL.pyomo.lp
-2014-05-28 17:56:30.047610: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0015 First stage cost avg= 108834.1639 Max-Min= 28.07
-Cumulative run-time=3.07 seconds
-
-Initiating PH iteration=32
-2014-05-28 17:56:30.061264: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp5UeR72.tmpyfrmXG.pyomo.lp
-2014-05-28 17:56:30.079897: Solve completed - number of solutions=1
-2014-05-28 17:56:30.092346: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp1jft6F.tmp1fUkkF.pyomo.lp
-2014-05-28 17:56:30.109425: Solve completed - number of solutions=1
-2014-05-28 17:56:30.121979: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpSaTd8T.tmpgJTkHN.pyomo.lp
-2014-05-28 17:56:30.144676: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0008 First stage cost avg= 108865.6237 Max-Min= 14.67
-Cumulative run-time=3.16 seconds
-
-Initiating PH iteration=33
-2014-05-28 17:56:30.157188: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpVqYyfQ.tmpCScScS.pyomo.lp
-2014-05-28 17:56:30.175640: Solve completed - number of solutions=1
-2014-05-28 17:56:30.188370: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpzqf1ub.tmpXxwkTu.pyomo.lp
-2014-05-28 17:56:30.206238: Solve completed - number of solutions=1
-2014-05-28 17:56:30.218817: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpyb5fs2.tmpQhXtbV.pyomo.lp
-2014-05-28 17:56:30.236766: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0001 First stage cost avg= 108897.5679 Max-Min= 1.06
-Cumulative run-time=3.26 seconds
-PH converged - convergence metric is below threshold=0.0001
-Number of discrete variables fixed before final plugin calls=0 (total=0)
-Number of continuous variables fixed before final plugin calls=0 (total=3)
-PH algorithm history written to file=ph_history.json
-PH complete
-Convergence history:
-Iteration Metric Value
- 0 0.2540
- 1 0.1259
- 2 0.0816
- 3 0.0796
- 4 0.0776
- 5 0.0794
- 6 0.0668
- 7 0.0542
- 8 0.0360
- 9 0.0243
- 10 0.0256
- 11 0.0248
- 12 0.0163
- 13 0.0081
- 14 0.0168
- 15 0.0163
- 16 0.0098
- 17 0.0032
- 18 0.0026
- 19 0.0039
- 20 0.0043
- 21 0.0044
- 22 0.0040
- 23 0.0032
- 24 0.0021
- 25 0.0008
- 26 0.0005
- 27 0.0015
- 28 0.0021
- 29 0.0023
- 30 0.0020
- 31 0.0015
- 32 0.0008
- 33 0.0001
-
-***********************************************************************************************
->>>THE EXPECTED SUM OF THE STAGE COST VARIABLES=-108388.378639<<<
->>>***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise<<<
-***********************************************************************************************
-Final number of discrete variables fixed=0 (total=0)
-Final number of continuous variables fixed=0 (total=3)
-Final variable values:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 79.9844 80.0000 79.9768 Max-Min: 0.0232 Avg: 79.9871
- Index: [SUGAR_BEETS] Values: 249.9848 249.9770 250.0000 Max-Min: 0.0230 Avg: 249.9873
- Index: [WHEAT] Values: 170.0308 170.0230 170.0232 Max-Min: 0.0078 Avg: 170.0256
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108897.0836 108897.4725 108898.1476 Max-Min: 1.0640 Avg: 108897.5679
-Final costs:
-Scenario Tree Costs
-***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise
-----------------------------------------------------
-Tree Nodes:
-
- Name=AboveAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AboveAverageScenario
- Expected cost of (sub)tree rooted at node=-275899.3041
-
- Name=AverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AverageScenario
- Expected cost of (sub)tree rooted at node=-218243.2209
-
- Name=BelowAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-157713.8615
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- AboveAverageNode
- AverageNode
- BelowAverageNode
- Scenarios:
- AboveAverageScenario
- AverageScenario
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-108388.3786
-
-----------------------------------------------------
-Scenarios:
-
- Name=AboveAverageScenario
- Probability=0.3333
- Leaf Node=AboveAverageNode
- Tree node sequence:
- RootNode
- AboveAverageNode
- Stage= FirstStage Cost=108898.1476
- Stage= SecondStage Cost=-275899.3041
- Total scenario cost=-167001.1565
-
- Name=AverageScenario
- Probability=0.3333
- Leaf Node=AverageNode
- Tree node sequence:
- RootNode
- AverageNode
- Stage= FirstStage Cost=108897.4725
- Stage= SecondStage Cost=-218243.2209
- Total scenario cost=-109345.7484
-
- Name=BelowAverageScenario
- Probability=0.3333
- Leaf Node=BelowAverageNode
- Tree node sequence:
- RootNode
- BelowAverageNode
- Stage= FirstStage Cost=108897.0836
- Stage= SecondStage Cost=-157713.8615
- Total scenario cost=-48816.7780
-
-----------------------------------------------------
-
-Total PH execution time=3.26 seconds
-
-Scenario tree solution written to file=ph_solution.json
-Shutting down Pyro solver components
-Dispatcher received request to shut down - initiating...
-
-Total execution time=6.31 seconds
-Name Server gracefully stopped.
-Lost connection to dispatch server - shutting down...
diff --git a/pyomo/pysp/tests/examples/baselines/TestPHFarmerPyro.test6.baseline b/pyomo/pysp/tests/examples/baselines/TestPHFarmerPyro.test6.baseline
deleted file mode 100644
index 402bcd0de91..00000000000
--- a/pyomo/pysp/tests/examples/baselines/TestPHFarmerPyro.test6.baseline
+++ /dev/null
@@ -1,266 +0,0 @@
-*** Pyro Name Server ***
-Name server listening on: ('0.0.0.0', 9090)
-Broadcast server listening on: ('0.0.0.0', 9090)
-URI is: PYRO://10.0.0.15:9090/0a00000f1ea020a08c3fc22bc1c99fcabc
-URI written to: /Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/pyomo/pysp/tests/examples/Pyro_NS_URI
-Name Server started.
-User-defined PH extension module=pyomo.pysp.plugins.phhistoryextension already imported - skipping
-Dispatcher is ready.
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI:PYRO://10.0.0.15:7766/0a00000f1ea120a08c40e514461b7a3716
-This is worker Worker_7842@Ozymandias.local
-Listening for work from dispatcher...
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI: PYRO://10.0.0.15:7766/0a00000f1ea120a08c40e514461b7a3716
-This is client 7843@Ozymandias.local
-Initializing PH
-
-WW PH Extension: Loading user-specified configuration from file=/Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/examples/pysp/farmer/config/wwph.cfg
-WW PH Extension: Loading variable suffixes from file=/Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/examples/pysp/farmer/config/wwph.suffixes
-User-defined PH solution writer module=pyomo.pysp.plugins.jsonsolutionwriter already imported - skipping
-Starting PH
-
-Initiating PH iteration=0
-2014-05-28 17:56:37.587276: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpDwfKh8.tmpLFla3i.pyomo.lp
-2014-05-28 17:56:37.604114: Solve completed - number of solutions=1
-2014-05-28 17:56:37.616515: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpzW8VXA.tmpZunPeC.pyomo.lp
-2014-05-28 17:56:37.631361: Solve completed - number of solutions=1
-2014-05-28 17:56:37.643835: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp_Gh74f.tmpDLyUK1.pyomo.lp
-2014-05-28 17:56:37.658401: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.2540 First stage cost avg= 113494.4444 Max-Min=10416.67
-Cumulative run-time=0.16 seconds
-
-Initiating PH iteration=1
-WW PH Extension: Setting mipgap to 0.1000000, as specified in the configuration file
-2014-05-28 17:56:37.671819: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp_ww9ou.tmpQAckMx.pyomo.lp
-2014-05-28 17:56:37.691223: Solve completed - number of solutions=1
-2014-05-28 17:56:37.704322: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmps0XB22.tmp8t6Y8p.pyomo.lp
-2014-05-28 17:56:37.722123: Solve completed - number of solutions=1
-2014-05-28 17:56:37.735698: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpyfsM2q.tmp2frDzq.pyomo.lp
-2014-05-28 17:56:37.753690: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.1259 First stage cost avg= 113107.2221 Max-Min= 6943.89
-Cumulative run-time=0.25 seconds
-
-Initiating PH iteration=2
-WW PH Extension: Setting mipgap to 0.0500717, based on current value of the convergence metric
-2014-05-28 17:56:37.767407: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmphfCff0.tmpX0oPU0.pyomo.lp
-2014-05-28 17:56:37.785544: Solve completed - number of solutions=1
-2014-05-28 17:56:37.798020: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpeD5zdZ.tmpfrsg07.pyomo.lp
-2014-05-28 17:56:37.817034: Solve completed - number of solutions=1
-2014-05-28 17:56:37.830273: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpVsMiW9.tmpghMTCB.pyomo.lp
-2014-05-28 17:56:37.847117: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0816 First stage cost avg= 112954.6296 Max-Min= 2234.82
-Cumulative run-time=0.35 seconds
-
-Initiating PH iteration=3
-WW PH Extension: Setting mipgap to 0.0327607, based on current value of the convergence metric
-2014-05-28 17:56:37.860207: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmplDfXcw.tmpBE6FL_.pyomo.lp
-2014-05-28 17:56:37.879051: Solve completed - number of solutions=1
-2014-05-28 17:56:37.891979: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp2PFpHM.tmp3yWh8W.pyomo.lp
-2014-05-28 17:56:37.909394: Solve completed - number of solutions=1
-2014-05-28 17:56:37.921925: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpRa6Z5y.tmplwukUl.pyomo.lp
-2014-05-28 17:56:37.939897: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0796 First stage cost avg= 112963.0248 Max-Min= 2375.31
-Cumulative run-time=0.44 seconds
-
-Initiating PH iteration=4
-WW PH Extension: Setting mipgap to 0.0319973, based on current value of the convergence metric
-2014-05-28 17:56:37.953428: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpCDT3Be.tmpIkRmPX.pyomo.lp
-2014-05-28 17:56:37.972405: Solve completed - number of solutions=1
-2014-05-28 17:56:37.984920: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpbG0k7S.tmp0IlPY8.pyomo.lp
-2014-05-28 17:56:38.002600: Solve completed - number of solutions=1
-2014-05-28 17:56:38.016149: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpskLYvy.tmpze6Aco.pyomo.lp
-2014-05-28 17:56:38.033914: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Slamming criteria are satisifed - accelerating convergence
-Slamming variable=DevotedAcreage[CORN] at tree node=RootNode to value=96.8871743104; value=node average (anywhere)
-Fixing variable=DevotedAcreage[CORN] at tree node=RootNode to value=96.8871743104; converged for 0 iterations
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0776 First stage cost avg= 112915.6071 Max-Min= 3047.08
-Cumulative run-time=0.53 seconds
-
-Initiating PH iteration=5
-WW PH Extension: Setting mipgap to 0.0312342, based on current value of the convergence metric
-2014-05-28 17:56:38.047601: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmptln7Q3.tmpNh28ev.pyomo.lp
-2014-05-28 17:56:38.066231: Solve completed - number of solutions=1
-2014-05-28 17:56:38.078884: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpsMc6nw.tmpDRfZ8d.pyomo.lp
-2014-05-28 17:56:38.096121: Solve completed - number of solutions=1
-2014-05-28 17:56:38.109738: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp5IJMii.tmpDpWKap.pyomo.lp
-2014-05-28 17:56:38.128466: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=1 (total=3)
-Convergence metric= 0.0609 First stage cost avg= 112895.6887 Max-Min= 5246.95
-Cumulative run-time=0.63 seconds
-
-Initiating PH iteration=6
-WW PH Extension: Setting mipgap to 0.0247045, based on current value of the convergence metric
-2014-05-28 17:56:38.142162: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpT5eZRc.tmp1p8lxq.pyomo.lp
-2014-05-28 17:56:38.160766: Solve completed - number of solutions=1
-2014-05-28 17:56:38.174224: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpcls7vQ.tmpyAWuuf.pyomo.lp
-2014-05-28 17:56:38.191809: Solve completed - number of solutions=1
-2014-05-28 17:56:38.204452: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpVHUOqU.tmp4tEYmM.pyomo.lp
-2014-05-28 17:56:38.222688: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Slamming criteria are satisifed - accelerating convergence
-Slamming variable=DevotedAcreage[WHEAT] at tree node=RootNode to value=137.204959966; value=node average (anywhere)
-Fixing variable=DevotedAcreage[WHEAT] at tree node=RootNode to value=137.204959966; converged for 0 iterations
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=1 (total=3)
-Convergence metric= 0.0391 First stage cost avg= 112000.8391 Max-Min= 2624.80
-Cumulative run-time=0.72 seconds
-
-Initiating PH iteration=7
-WW PH Extension: Setting mipgap to 0.0161915, based on current value of the convergence metric
-2014-05-28 17:56:38.236030: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp1hNxOh.tmp54WXOy.pyomo.lp
-2014-05-28 17:56:38.253047: Solve completed - number of solutions=1
-2014-05-28 17:56:38.265802: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpwv5J_M.tmpnmCphg.pyomo.lp
-2014-05-28 17:56:38.283501: Solve completed - number of solutions=1
-2014-05-28 17:56:38.296184: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpkCEICn.tmppQXNYY.pyomo.lp
-2014-05-28 17:56:38.313678: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=2 (total=3)
-Convergence metric= 0.0000 First stage cost avg= 112000.8392 Max-Min= 0.00
-Cumulative run-time=0.81 seconds
-PH converged - convergence metric is below threshold=0.0001
-Number of discrete variables fixed before final plugin calls=0 (total=0)
-Number of continuous variables fixed before final plugin calls=2 (total=3)
-WW PH extension: Fixing all discrete variables that are converged at termination
-Total number of variables fixed at PH termination due to convergence=0
-PH algorithm history written to file=ph_history.json
-PH complete
-Convergence history:
-Iteration Metric Value
- 0 0.2540
- 1 0.1259
- 2 0.0816
- 3 0.0796
- 4 0.0776
- 5 0.0609
- 6 0.0391
- 7 0.0000
-
-***********************************************************************************************
->>>THE EXPECTED SUM OF THE STAGE COST VARIABLES=-107905.908751<<<
->>>***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise<<<
-***********************************************************************************************
-Final number of discrete variables fixed=0 (total=0)
-Final number of continuous variables fixed=2 (total=3)
-Final variable values:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 96.8872 96.8872 96.8872 Max-Min: 0.0000 Avg: 96.8872
- Index: [SUGAR_BEETS] Values: 265.9079 265.9079 265.9079 Max-Min: 0.0000 Avg: 265.9079
- Index: [WHEAT] Values: 137.2050 137.2050 137.2050 Max-Min: 0.0000 Avg: 137.2050
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 112000.8392 112000.8392 112000.8391 Max-Min: 0.0000 Avg: 112000.8392
-Final costs:
-Scenario Tree Costs
-***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise
-----------------------------------------------------
-Tree Nodes:
-
- Name=AboveAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AboveAverageScenario
- Expected cost of (sub)tree rooted at node=-272111.4913
-
- Name=AverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AverageScenario
- Expected cost of (sub)tree rooted at node=-223364.9995
-
- Name=BelowAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-164243.7528
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- AboveAverageNode
- AverageNode
- BelowAverageNode
- Scenarios:
- AboveAverageScenario
- AverageScenario
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-107905.9088
-
-----------------------------------------------------
-Scenarios:
-
- Name=AboveAverageScenario
- Probability=0.3333
- Leaf Node=AboveAverageNode
- Tree node sequence:
- RootNode
- AboveAverageNode
- Stage= FirstStage Cost=112000.8391
- Stage= SecondStage Cost=-272111.4913
- Total scenario cost=-160110.6522
-
- Name=AverageScenario
- Probability=0.3333
- Leaf Node=AverageNode
- Tree node sequence:
- RootNode
- AverageNode
- Stage= FirstStage Cost=112000.8392
- Stage= SecondStage Cost=-223364.9995
- Total scenario cost=-111364.1604
-
- Name=BelowAverageScenario
- Probability=0.3333
- Leaf Node=BelowAverageNode
- Tree node sequence:
- RootNode
- BelowAverageNode
- Stage= FirstStage Cost=112000.8392
- Stage= SecondStage Cost=-164243.7528
- Total scenario cost=-52242.9136
-
-----------------------------------------------------
-
-Total PH execution time=0.82 seconds
-
-Scenario tree solution written to file=ph_solution.json
-Shutting down Pyro solver components
-Dispatcher received request to shut down - initiating...
-
-Total execution time=3.87 seconds
-Name Server gracefully stopped.
-Lost connection to dispatch server - shutting down...
diff --git a/pyomo/pysp/tests/examples/baselines/TestPHFarmerPyro.test6_withef.baseline b/pyomo/pysp/tests/examples/baselines/TestPHFarmerPyro.test6_withef.baseline
deleted file mode 100644
index 3b0b9d56ad0..00000000000
--- a/pyomo/pysp/tests/examples/baselines/TestPHFarmerPyro.test6_withef.baseline
+++ /dev/null
@@ -1,404 +0,0 @@
-*** Pyro Name Server ***
-Name server listening on: ('0.0.0.0', 9090)
-Broadcast server listening on: ('0.0.0.0', 9090)
-URI is: PYRO://10.0.0.253:9090/0a0000fd268d20b9bff7b28164d427ca6b
-URI written to: /Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/pyomo/pysp/tests/examples/Pyro_NS_URI
-Name Server started.
-User-defined PH extension module=pyomo.pysp.plugins.phhistoryextension already imported - skipping
-Dispatcher is ready.
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI:PYRO://10.0.0.253:7766/0a0000fd268e20b9bff8d4c74b03d9b3ec
-This is worker Worker_9871@Ozymandias.local
-Listening for work from dispatcher...
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI: PYRO://10.0.0.253:7766/0a0000fd268e20b9bff8d4c74b03d9b3ec
-This is client 9872@Ozymandias.local
-Initializing PH
-
-WW PH Extension: Loading user-specified configuration from file=/Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/examples/pysp/farmer/config/wwph.cfg
-WW PH Extension: Loading variable suffixes from file=/Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/examples/pysp/farmer/config/wwph.suffixes
-User-defined PH solution writer module=pyomo.pysp.plugins.jsonsolutionwriter already imported - skipping
-Starting PH
-
-Initiating PH iteration=0
-2014-07-16 16:26:35.855273: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpEvlUqS.tmp0nSijf.pyomo.lp
-2014-07-16 16:26:35.867533: Solve completed - number of solutions=1
-2014-07-16 16:26:35.880032: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpt9rOFY.tmpb9e6Le.pyomo.lp
-2014-07-16 16:26:35.891041: Solve completed - number of solutions=1
-2014-07-16 16:26:35.904496: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp7iBBn0.tmp97kMik.pyomo.lp
-2014-07-16 16:26:35.916304: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.2540 First stage cost avg= 113494.4444 Max-Min=10416.67
-Cumulative run-time=0.15 seconds
-
-Initiating PH iteration=1
-WW PH Extension: Setting mipgap to 0.1000000, as specified in the configuration file
-2014-07-16 16:26:35.929298: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpWTUTqk.tmpHvOGro.pyomo.lp
-2014-07-16 16:26:35.944748: Solve completed - number of solutions=1
-2014-07-16 16:26:35.957159: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp7KMBf7.tmpZ8kuMb.pyomo.lp
-2014-07-16 16:26:35.971274: Solve completed - number of solutions=1
-2014-07-16 16:26:35.983786: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpmEpC9X.tmpn9B0U9.pyomo.lp
-2014-07-16 16:26:35.997828: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.1259 First stage cost avg= 113107.2221 Max-Min= 6943.89
-Cumulative run-time=0.23 seconds
-
-Initiating PH iteration=2
-WW PH Extension: Setting mipgap to 0.0500717, based on current value of the convergence metric
-2014-07-16 16:26:36.010496: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpztIdn0.tmpOPKseF.pyomo.lp
-2014-07-16 16:26:36.025856: Solve completed - number of solutions=1
-2014-07-16 16:26:36.038363: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpYLtc8i.tmpaoMLMX.pyomo.lp
-2014-07-16 16:26:36.051931: Solve completed - number of solutions=1
-2014-07-16 16:26:36.064687: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpJTkdCO.tmpGjVQZl.pyomo.lp
-2014-07-16 16:26:36.078445: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0816 First stage cost avg= 112954.6296 Max-Min= 2234.82
-Cumulative run-time=0.31 seconds
-
-Initiating PH iteration=3
-WW PH Extension: Setting mipgap to 0.0327607, based on current value of the convergence metric
-2014-07-16 16:26:36.092118: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp0nPKKJ.tmpbPikPT.pyomo.lp
-2014-07-16 16:26:36.106252: Solve completed - number of solutions=1
-2014-07-16 16:26:36.118713: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp9Bg7E_.tmp0tUUOE.pyomo.lp
-2014-07-16 16:26:36.132350: Solve completed - number of solutions=1
-2014-07-16 16:26:36.145917: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpm4hhC5.tmpcsR9tH.pyomo.lp
-2014-07-16 16:26:36.159193: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0796 First stage cost avg= 112963.0248 Max-Min= 2375.31
-Cumulative run-time=0.39 seconds
-
-Initiating PH iteration=4
-WW PH Extension: Setting mipgap to 0.0319973, based on current value of the convergence metric
-2014-07-16 16:26:36.172400: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpXn3hvn.tmpORd7RZ.pyomo.lp
-2014-07-16 16:26:36.187631: Solve completed - number of solutions=1
-2014-07-16 16:26:36.200266: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpMF9h9X.tmpCWzFgf.pyomo.lp
-2014-07-16 16:26:36.214132: Solve completed - number of solutions=1
-2014-07-16 16:26:36.227594: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpaWdXIh.tmpYanJch.pyomo.lp
-2014-07-16 16:26:36.241587: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Slamming criteria are satisifed - accelerating convergence
-Slamming variable=DevotedAcreage[CORN] at tree node=RootNode to value=96.8871743104; value=node average (anywhere)
-Fixing variable=DevotedAcreage[CORN] at tree node=RootNode to value=96.8871743104; converged for 0 iterations
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0776 First stage cost avg= 112915.6071 Max-Min= 3047.08
-Cumulative run-time=0.47 seconds
-
-Initiating PH iteration=5
-WW PH Extension: Setting mipgap to 0.0312342, based on current value of the convergence metric
-2014-07-16 16:26:36.255190: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpFJ1uEG.tmpTzYwkP.pyomo.lp
-2014-07-16 16:26:36.270311: Solve completed - number of solutions=1
-2014-07-16 16:26:36.283582: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpMe3YQL.tmpRXzX4d.pyomo.lp
-2014-07-16 16:26:36.297564: Solve completed - number of solutions=1
-2014-07-16 16:26:36.310033: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpPH5ujJ.tmpq1JizH.pyomo.lp
-2014-07-16 16:26:36.324409: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=1 (total=3)
-Convergence metric= 0.0609 First stage cost avg= 112895.6887 Max-Min= 5246.95
-Cumulative run-time=0.55 seconds
-
-Initiating PH iteration=6
-WW PH Extension: Setting mipgap to 0.0247045, based on current value of the convergence metric
-2014-07-16 16:26:36.337034: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpqmuRPx.tmpk_0ATk.pyomo.lp
-2014-07-16 16:26:36.351285: Solve completed - number of solutions=1
-2014-07-16 16:26:36.363723: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpoJkjfh.tmpu3QIln.pyomo.lp
-2014-07-16 16:26:36.377776: Solve completed - number of solutions=1
-2014-07-16 16:26:36.391351: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpF5jPE1.tmp_klNbx.pyomo.lp
-2014-07-16 16:26:36.405216: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Slamming criteria are satisifed - accelerating convergence
-Slamming variable=DevotedAcreage[WHEAT] at tree node=RootNode to value=137.204959966; value=node average (anywhere)
-Fixing variable=DevotedAcreage[WHEAT] at tree node=RootNode to value=137.204959966; converged for 0 iterations
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=1 (total=3)
-Convergence metric= 0.0391 First stage cost avg= 112000.8391 Max-Min= 2624.80
-Cumulative run-time=0.63 seconds
-
-Initiating PH iteration=7
-WW PH Extension: Setting mipgap to 0.0161915, based on current value of the convergence metric
-2014-07-16 16:26:36.418017: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp3zJBq1.tmpeZOjwl.pyomo.lp
-2014-07-16 16:26:36.432827: Solve completed - number of solutions=1
-2014-07-16 16:26:36.445425: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpYOQgez.tmpWU5xKA.pyomo.lp
-2014-07-16 16:26:36.459742: Solve completed - number of solutions=1
-2014-07-16 16:26:36.472467: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpGi03Ir.tmpW1SDfz.pyomo.lp
-2014-07-16 16:26:36.488648: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=2 (total=3)
-Convergence metric= 0.0000 First stage cost avg= 112000.8392 Max-Min= 0.00
-Cumulative run-time=0.72 seconds
-PH converged - convergence metric is below threshold=0.0001
-Number of discrete variables fixed before final plugin calls=0 (total=0)
-Number of continuous variables fixed before final plugin calls=2 (total=3)
-WW PH extension: Fixing all discrete variables that are converged at termination
-Total number of variables fixed at PH termination due to convergence=0
-PH algorithm history written to file=ph_history.json
-PH complete
-Convergence history:
-Iteration Metric Value
- 0 0.2540
- 1 0.1259
- 2 0.0816
- 3 0.0796
- 4 0.0776
- 5 0.0609
- 6 0.0391
- 7 0.0000
-
-***********************************************************************************************
->>>THE EXPECTED SUM OF THE STAGE COST VARIABLES=-107905.908751<<<
->>>***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise<<<
-***********************************************************************************************
-Final number of discrete variables fixed=0 (total=0)
-Final number of continuous variables fixed=2 (total=3)
-Final variable values:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 96.8872 96.8872 96.8872 Max-Min: 0.0000 Avg: 96.8872
- Index: [SUGAR_BEETS] Values: 265.9079 265.9079 265.9079 Max-Min: 0.0000 Avg: 265.9079
- Index: [WHEAT] Values: 137.2050 137.2050 137.2050 Max-Min: 0.0000 Avg: 137.2050
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 112000.8392 112000.8392 112000.8391 Max-Min: 0.0000 Avg: 112000.8392
-Final costs:
-Scenario Tree Costs
-***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise
-----------------------------------------------------
-Tree Nodes:
-
- Name=AboveAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AboveAverageScenario
- Expected cost of (sub)tree rooted at node=-272111.4913
-
- Name=AverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AverageScenario
- Expected cost of (sub)tree rooted at node=-223364.9995
-
- Name=BelowAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-164243.7528
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- AboveAverageNode
- AverageNode
- BelowAverageNode
- Scenarios:
- AboveAverageScenario
- AverageScenario
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-107905.9088
-
-----------------------------------------------------
-Scenarios:
-
- Name=AboveAverageScenario
- Probability=0.3333
- Leaf Node=AboveAverageNode
- Tree node sequence:
- RootNode
- AboveAverageNode
- Stage= FirstStage Cost=112000.8391
- Stage= SecondStage Cost=-272111.4913
- Total scenario cost=-160110.6522
-
- Name=AverageScenario
- Probability=0.3333
- Leaf Node=AverageNode
- Tree node sequence:
- RootNode
- AverageNode
- Stage= FirstStage Cost=112000.8392
- Stage= SecondStage Cost=-223364.9995
- Total scenario cost=-111364.1604
-
- Name=BelowAverageScenario
- Probability=0.3333
- Leaf Node=BelowAverageNode
- Tree node sequence:
- RootNode
- BelowAverageNode
- Stage= FirstStage Cost=112000.8392
- Stage= SecondStage Cost=-164243.7528
- Total scenario cost=-52242.9136
-
-----------------------------------------------------
-
-Total PH execution time=0.72 seconds
-
-Scenario tree solution written to file=ph_solution.json
-Pushing fixed variable statuses to scenario instances
-Number of discrete variables fixed prior to ef creation=0 (total=0)
-Number of continuous variables fixed prior to ef creation=2 (total=3)
-Creating extensive form for remainder problem
-Time to construct extensive form instance=0.00 seconds
-Queuing extensive form solve
-Waiting for extensive form solve
-Done with extensive form solve - loading results
-Storing solution in scenario tree
-Time to solve and load results for the extensive form=0.02 seconds
-
-***********************************************************************************************
->>>THE EXPECTED SUM OF THE STAGE COST VARIABLES=-107905.908903<<<
-***********************************************************************************************
-
-Extensive form solution:
-----------------------------------------------------
-Tree Nodes:
-
- Name=AboveAverageNode
- Stage=SecondStage
- Parent=RootNode
- Variables:
- QuantitySubQuotaSold[CORN]=108.793827517
- QuantitySubQuotaSold[SUGAR_BEETS]=6000.0
- QuantitySubQuotaSold[WHEAT]=211.614879899
- QuantitySuperQuotaSold[SUGAR_BEETS]=381.788777359
-
- Name=AverageNode
- Stage=SecondStage
- Parent=RootNode
- Variables:
- QuantitySubQuotaSold[CORN]=50.6615229312
- QuantitySubQuotaSold[SUGAR_BEETS]=5318.15731447
- QuantitySubQuotaSold[WHEAT]=143.012399916
-
- Name=BelowAverageNode
- Stage=SecondStage
- Parent=RootNode
- Variables:
- QuantityPurchased[CORN]=7.47078165504
- QuantitySubQuotaSold[SUGAR_BEETS]=4254.52585157
- QuantitySubQuotaSold[WHEAT]=74.4099199326
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Variables:
- DevotedAcreage[CORN]=96.8871743104
- DevotedAcreage[SUGAR_BEETS]=265.907865723
- DevotedAcreage[WHEAT]=137.204959966
-
-
-Extensive form costs:
-Scenario Tree Costs
-***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise
-----------------------------------------------------
-Tree Nodes:
-
- Name=AboveAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AboveAverageScenario
- Expected cost of (sub)tree rooted at node=-272111.4915
-
- Name=AverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AverageScenario
- Expected cost of (sub)tree rooted at node=-223364.9997
-
- Name=BelowAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-164243.7529
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- AboveAverageNode
- AverageNode
- BelowAverageNode
- Scenarios:
- AboveAverageScenario
- AverageScenario
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-107905.9089
-
-----------------------------------------------------
-Scenarios:
-
- Name=AboveAverageScenario
- Probability=0.3333
- Leaf Node=AboveAverageNode
- Tree node sequence:
- RootNode
- AboveAverageNode
- Stage= FirstStage Cost=112000.8392
- Stage= SecondStage Cost=-272111.4915
- Total scenario cost=-160110.6523
-
- Name=AverageScenario
- Probability=0.3333
- Leaf Node=AverageNode
- Tree node sequence:
- RootNode
- AverageNode
- Stage= FirstStage Cost=112000.8392
- Stage= SecondStage Cost=-223364.9997
- Total scenario cost=-111364.1606
-
- Name=BelowAverageScenario
- Probability=0.3333
- Leaf Node=BelowAverageNode
- Tree node sequence:
- RootNode
- BelowAverageNode
- Stage= FirstStage Cost=112000.8392
- Stage= SecondStage Cost=-164243.7529
- Total scenario cost=-52242.9137
-
-----------------------------------------------------
-Scenario tree solution written to file=postphef_solution.json
-Shutting down Pyro solver components
-Dispatcher received request to shut down - initiating...
-
-Total execution time=3.80 seconds
-Name Server gracefully stopped.
-Lost connection to dispatch server - shutting down...
diff --git a/pyomo/pysp/tests/examples/baselines/TestPHFarmerPyro.test7.baseline b/pyomo/pysp/tests/examples/baselines/TestPHFarmerPyro.test7.baseline
deleted file mode 100644
index 2f04128e75b..00000000000
--- a/pyomo/pysp/tests/examples/baselines/TestPHFarmerPyro.test7.baseline
+++ /dev/null
@@ -1,931 +0,0 @@
-*** Pyro Name Server ***
-Name server listening on: ('0.0.0.0', 9090)
-Broadcast server listening on: ('0.0.0.0', 9090)
-URI is: PYRO://10.0.0.11:9090/0a00000b10a8b20a834884301b9a5d54b90
-URI written to: /Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/pyomo/pysp/tests/examples/Pyro_NS_URI
-Name Server started.
-User-defined PH extension module=pyomo.pysp.plugins.phhistoryextension already imported - skipping
-User-defined PH extension module=pyomo.pysp.plugins.phboundextension already imported - skipping
-Dispatcher is ready.
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI:PYRO://10.0.0.11:7766/0a00000b10a8c20a8348963e675e02cf3b0
-This is worker Worker_68237@Ozymandias.local
-Listening for work from dispatcher...
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI: PYRO://10.0.0.11:7766/0a00000b10a8c20a8348963e675e02cf3b0
-This is client 68238@Ozymandias.local
-Initializing PH
-
-phboundextension using default update interval=1
-User-defined PH solution writer module=pyomo.pysp.plugins.jsonsolutionwriter already imported - skipping
-Starting PH
-
-Initiating PH iteration=0
-2014-06-12 14:48:08.790700: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpO4T0CV.tmp_bVKcc.pyomo.lp
-2014-06-12 14:48:08.809660: Solve completed - number of solutions=1
-2014-06-12 14:48:08.823427: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpRKIFKn.tmpgnFo7w.pyomo.lp
-2014-06-12 14:48:08.841163: Solve completed - number of solutions=1
-2014-06-12 14:48:08.854706: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpr_thrO.tmprvF2Ql.pyomo.lp
-2014-06-12 14:48:08.874401: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-115405.5556
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.2540 First stage cost avg= 113494.4444 Max-Min=10416.67
-Cumulative run-time=0.17 seconds
-
-Initiating PH iteration=1
-2014-06-12 14:48:08.887310: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpb_mq7X.tmpktKkp5.pyomo.lp
-2014-06-12 14:48:08.904224: Solve completed - number of solutions=1
-2014-06-12 14:48:08.918329: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpLDvUqS.tmpmO3VZU.pyomo.lp
-2014-06-12 14:48:08.935964: Solve completed - number of solutions=1
-2014-06-12 14:48:08.950319: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp0oE1wy.tmp5uzgnP.pyomo.lp
-2014-06-12 14:48:08.969039: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-112378.3951
-2014-06-12 14:48:08.982454: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmps6SP4W.tmpF_oir7.pyomo.lp
-2014-06-12 14:48:09.002957: Solve completed - number of solutions=1
-2014-06-12 14:48:09.016984: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpXIndC_.tmp2TwD9A.pyomo.lp
-2014-06-12 14:48:09.036972: Solve completed - number of solutions=1
-2014-06-12 14:48:09.051107: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpIZNJCB.tmp0glFuq.pyomo.lp
-2014-06-12 14:48:09.071222: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.1259 First stage cost avg= 113107.2221 Max-Min= 6943.89
-Cumulative run-time=0.36 seconds
-
-Initiating PH iteration=2
-2014-06-12 14:48:09.084142: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpBQ8zYR.tmpyiIFqU.pyomo.lp
-2014-06-12 14:48:09.101273: Solve completed - number of solutions=1
-2014-06-12 14:48:09.115123: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp8Ramqe.tmp2XRd3A.pyomo.lp
-2014-06-12 14:48:09.132019: Solve completed - number of solutions=1
-2014-06-12 14:48:09.145958: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp_MruF9.tmp1OPppi.pyomo.lp
-2014-06-12 14:48:09.162873: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-114092.2009
-2014-06-12 14:48:09.177505: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpHPVpyR.tmpl0xfhB.pyomo.lp
-2014-06-12 14:48:09.196866: Solve completed - number of solutions=1
-2014-06-12 14:48:09.210546: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpBiOWWz.tmpIF47T0.pyomo.lp
-2014-06-12 14:48:09.229891: Solve completed - number of solutions=1
-2014-06-12 14:48:09.243700: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpLpJYTH.tmpESMrX3.pyomo.lp
-2014-06-12 14:48:09.263765: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0816 First stage cost avg= 112954.6296 Max-Min= 2234.82
-Cumulative run-time=0.56 seconds
-
-Initiating PH iteration=3
-2014-06-12 14:48:09.276649: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpIqaOEW.tmpuW61hH.pyomo.lp
-2014-06-12 14:48:09.295521: Solve completed - number of solutions=1
-2014-06-12 14:48:09.309756: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpZAMD_3.tmpik9hlG.pyomo.lp
-2014-06-12 14:48:09.328290: Solve completed - number of solutions=1
-2014-06-12 14:48:09.342961: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpfESqPm.tmpQS3y5a.pyomo.lp
-2014-06-12 14:48:09.360102: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-111905.7747
-2014-06-12 14:48:09.373052: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpbi_kPI.tmpixrWoa.pyomo.lp
-2014-06-12 14:48:09.393573: Solve completed - number of solutions=1
-2014-06-12 14:48:09.407376: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpZ6qoND.tmp5USOP7.pyomo.lp
-2014-06-12 14:48:09.426916: Solve completed - number of solutions=1
-2014-06-12 14:48:09.440828: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpk4zL_N.tmpMBYH2r.pyomo.lp
-2014-06-12 14:48:09.462710: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0796 First stage cost avg= 112963.0248 Max-Min= 2375.31
-Cumulative run-time=0.76 seconds
-
-Initiating PH iteration=4
-2014-06-12 14:48:09.476610: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpavbHWc.tmpnXNOKe.pyomo.lp
-2014-06-12 14:48:09.494750: Solve completed - number of solutions=1
-2014-06-12 14:48:09.508601: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp8FTWL8.tmpKhYLB2.pyomo.lp
-2014-06-12 14:48:09.527075: Solve completed - number of solutions=1
-2014-06-12 14:48:09.541654: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp5lgyQ5.tmpt67ve9.pyomo.lp
-2014-06-12 14:48:09.561307: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110093.7884
-2014-06-12 14:48:09.575610: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpH_yQT7.tmpgCwcUY.pyomo.lp
-2014-06-12 14:48:09.595729: Solve completed - number of solutions=1
-2014-06-12 14:48:09.609586: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpT9OqeA.tmpnEbllX.pyomo.lp
-2014-06-12 14:48:09.628890: Solve completed - number of solutions=1
-2014-06-12 14:48:09.643051: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp9z9xuv.tmpt38czH.pyomo.lp
-2014-06-12 14:48:09.662702: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0776 First stage cost avg= 112915.6071 Max-Min= 3047.08
-Cumulative run-time=0.96 seconds
-
-Initiating PH iteration=5
-2014-06-12 14:48:09.675642: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpMDRGb7.tmpwEZCXl.pyomo.lp
-2014-06-12 14:48:09.693530: Solve completed - number of solutions=1
-2014-06-12 14:48:09.709261: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpK4MhvV.tmpkbGmtn.pyomo.lp
-2014-06-12 14:48:09.727019: Solve completed - number of solutions=1
-2014-06-12 14:48:09.741948: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpnlxvAm.tmpeVHuQR.pyomo.lp
-2014-06-12 14:48:09.759299: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-109499.5161
-2014-06-12 14:48:09.773654: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpuYM_tR.tmpWP4FGR.pyomo.lp
-2014-06-12 14:48:09.793602: Solve completed - number of solutions=1
-2014-06-12 14:48:09.807757: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpgP5Wzc.tmpMGMSi_.pyomo.lp
-2014-06-12 14:48:09.829267: Solve completed - number of solutions=1
-2014-06-12 14:48:09.843140: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpG27p6D.tmpxQHova.pyomo.lp
-2014-06-12 14:48:09.862954: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0794 First stage cost avg= 112825.3926 Max-Min= 3339.81
-Cumulative run-time=1.16 seconds
-
-Initiating PH iteration=6
-2014-06-12 14:48:09.876642: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmphHHfXs.tmpmopEAJ.pyomo.lp
-2014-06-12 14:48:09.894021: Solve completed - number of solutions=1
-2014-06-12 14:48:09.907962: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpPI_Aul.tmpmm8UJm.pyomo.lp
-2014-06-12 14:48:09.924921: Solve completed - number of solutions=1
-2014-06-12 14:48:09.939107: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp1XzINl.tmpilF4EJ.pyomo.lp
-2014-06-12 14:48:09.955712: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-108931.8046
-2014-06-12 14:48:09.969877: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmplXApNU.tmpAgCxsx.pyomo.lp
-2014-06-12 14:48:09.992388: Solve completed - number of solutions=1
-2014-06-12 14:48:10.007069: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpFe0Ikx.tmpCXCeEQ.pyomo.lp
-2014-06-12 14:48:10.026793: Solve completed - number of solutions=1
-2014-06-12 14:48:10.040947: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp_oR07c.tmpWqsskm.pyomo.lp
-2014-06-12 14:48:10.063020: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0668 First stage cost avg= 112317.9502 Max-Min= 2019.60
-Cumulative run-time=1.36 seconds
-
-Initiating PH iteration=7
-2014-06-12 14:48:10.077216: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpEojP9W.tmpc3cUyq.pyomo.lp
-2014-06-12 14:48:10.095877: Solve completed - number of solutions=1
-2014-06-12 14:48:10.109618: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpka2W1I.tmpGgJUAa.pyomo.lp
-2014-06-12 14:48:10.126824: Solve completed - number of solutions=1
-2014-06-12 14:48:10.141824: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmph_ZNi4.tmpSrM4kT.pyomo.lp
-2014-06-12 14:48:10.160432: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110122.0019
-2014-06-12 14:48:10.173792: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpB5eU8u.tmpt_6MFs.pyomo.lp
-2014-06-12 14:48:10.198451: Solve completed - number of solutions=1
-2014-06-12 14:48:10.213234: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpYQFI2e.tmpFU99Li.pyomo.lp
-2014-06-12 14:48:10.233803: Solve completed - number of solutions=1
-2014-06-12 14:48:10.248317: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpH9WxD1.tmpHpayCO.pyomo.lp
-2014-06-12 14:48:10.269763: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0542 First stage cost avg= 111364.4660 Max-Min= 1181.85
-Cumulative run-time=1.56 seconds
-
-Initiating PH iteration=8
-2014-06-12 14:48:10.282751: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp7L9DmA.tmpHsDWnV.pyomo.lp
-2014-06-12 14:48:10.302828: Solve completed - number of solutions=1
-2014-06-12 14:48:10.318501: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpZjedbP.tmplpK6CK.pyomo.lp
-2014-06-12 14:48:10.335372: Solve completed - number of solutions=1
-2014-06-12 14:48:10.349617: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpraRj5f.tmpKhS2ho.pyomo.lp
-2014-06-12 14:48:10.369516: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-111334.7018
-2014-06-12 14:48:10.383074: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpgxKusl.tmpkfpoMR.pyomo.lp
-2014-06-12 14:48:10.403736: Solve completed - number of solutions=1
-2014-06-12 14:48:10.417589: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpKFNUAu.tmpoxS_Bu.pyomo.lp
-2014-06-12 14:48:10.439552: Solve completed - number of solutions=1
-2014-06-12 14:48:10.453964: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpfFD4wc.tmpo4Lqa7.pyomo.lp
-2014-06-12 14:48:10.473372: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0360 First stage cost avg= 110283.4074 Max-Min= 463.23
-Cumulative run-time=1.77 seconds
-
-Initiating PH iteration=9
-2014-06-12 14:48:10.487373: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpKxtO0E.tmpSzySNB.pyomo.lp
-2014-06-12 14:48:10.505591: Solve completed - number of solutions=1
-2014-06-12 14:48:10.521300: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpLtFkrj.tmpreDwpw.pyomo.lp
-2014-06-12 14:48:10.539612: Solve completed - number of solutions=1
-2014-06-12 14:48:10.554397: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpDGcGym.tmpwZcyuU.pyomo.lp
-2014-06-12 14:48:10.572421: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-111609.8143
-2014-06-12 14:48:10.585626: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmppOhJDS.tmpwL07ER.pyomo.lp
-2014-06-12 14:48:10.605905: Solve completed - number of solutions=1
-2014-06-12 14:48:10.619734: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpx29p7I.tmpWIPhGu.pyomo.lp
-2014-06-12 14:48:10.640847: Solve completed - number of solutions=1
-2014-06-12 14:48:10.654627: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmppf30VT.tmpXoPqj6.pyomo.lp
-2014-06-12 14:48:10.675009: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0243 First stage cost avg= 109399.2542 Max-Min= 363.90
-Cumulative run-time=1.97 seconds
-
-Initiating PH iteration=10
-2014-06-12 14:48:10.687995: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpAUPIjQ.tmpzRgLii.pyomo.lp
-2014-06-12 14:48:10.705721: Solve completed - number of solutions=1
-2014-06-12 14:48:10.719944: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpDbObeX.tmp6EAbFX.pyomo.lp
-2014-06-12 14:48:10.736473: Solve completed - number of solutions=1
-2014-06-12 14:48:10.750707: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp48rylL.tmpgfYcb9.pyomo.lp
-2014-06-12 14:48:10.767352: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-111298.1197
-2014-06-12 14:48:10.780542: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpOuR_EM.tmpiTv1SN.pyomo.lp
-2014-06-12 14:48:10.802563: Solve completed - number of solutions=1
-2014-06-12 14:48:10.816554: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpVEpmL7.tmpjK89tw.pyomo.lp
-2014-06-12 14:48:10.838448: Solve completed - number of solutions=1
-2014-06-12 14:48:10.852844: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpre3Qe3.tmpUJ5SJ9.pyomo.lp
-2014-06-12 14:48:10.872432: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0256 First stage cost avg= 108834.1930 Max-Min= 933.90
-Cumulative run-time=2.16 seconds
-
-Initiating PH iteration=11
-2014-06-12 14:48:10.901185: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpzpKY4Y.tmp9Oa_iL.pyomo.lp
-2014-06-12 14:48:10.918747: Solve completed - number of solutions=1
-2014-06-12 14:48:10.932537: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpZK1z6A.tmpss7eKd.pyomo.lp
-2014-06-12 14:48:10.949798: Solve completed - number of solutions=1
-2014-06-12 14:48:10.963545: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp6gWTQ3.tmpRPaNgq.pyomo.lp
-2014-06-12 14:48:10.982104: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110209.1867
-2014-06-12 14:48:10.996512: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpq7tWm8.tmpzJTBuP.pyomo.lp
-2014-06-12 14:48:11.017149: Solve completed - number of solutions=1
-2014-06-12 14:48:11.031159: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp9CIUw4.tmprVM4CI.pyomo.lp
-2014-06-12 14:48:11.052295: Solve completed - number of solutions=1
-2014-06-12 14:48:11.067875: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpow65bc.tmpJRyp9N.pyomo.lp
-2014-06-12 14:48:11.090055: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0248 First stage cost avg= 108575.3219 Max-Min= 918.57
-Cumulative run-time=2.38 seconds
-
-Initiating PH iteration=12
-2014-06-12 14:48:11.103768: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp0t1o5Q.tmp5nBquX.pyomo.lp
-2014-06-12 14:48:11.124155: Solve completed - number of solutions=1
-2014-06-12 14:48:11.138679: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpWThaaT.tmpyQs2Rb.pyomo.lp
-2014-06-12 14:48:11.156700: Solve completed - number of solutions=1
-2014-06-12 14:48:11.171939: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp11JJzN.tmpnrCUaV.pyomo.lp
-2014-06-12 14:48:11.190182: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-109115.6506
-2014-06-12 14:48:11.204492: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpBPAe4E.tmpauhC_Z.pyomo.lp
-2014-06-12 14:48:11.226242: Solve completed - number of solutions=1
-2014-06-12 14:48:11.240305: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpanErvS.tmpW5rVoa.pyomo.lp
-2014-06-12 14:48:11.262293: Solve completed - number of solutions=1
-2014-06-12 14:48:11.276993: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpQij9wP.tmpHpEfLJ.pyomo.lp
-2014-06-12 14:48:11.297587: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0163 First stage cost avg= 108513.5347 Max-Min= 591.25
-Cumulative run-time=2.59 seconds
-
-Initiating PH iteration=13
-2014-06-12 14:48:11.311414: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp5PvV94.tmpt01ixY.pyomo.lp
-2014-06-12 14:48:11.333183: Solve completed - number of solutions=1
-2014-06-12 14:48:11.347627: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp9vEPpb.tmpp8CM9M.pyomo.lp
-2014-06-12 14:48:11.365615: Solve completed - number of solutions=1
-2014-06-12 14:48:11.380258: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpeGPRuM.tmpukQUWI.pyomo.lp
-2014-06-12 14:48:11.397595: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-108676.3770
-2014-06-12 14:48:11.410096: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpgEobZx.tmpD7lIMX.pyomo.lp
-2014-06-12 14:48:11.429850: Solve completed - number of solutions=1
-2014-06-12 14:48:11.443453: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpQ2ouec.tmpgiSN9C.pyomo.lp
-2014-06-12 14:48:11.464213: Solve completed - number of solutions=1
-2014-06-12 14:48:11.478554: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmplJhROi.tmpHvmhFr.pyomo.lp
-2014-06-12 14:48:11.499315: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0081 First stage cost avg= 108528.2899 Max-Min= 175.95
-Cumulative run-time=2.79 seconds
-
-Initiating PH iteration=14
-2014-06-12 14:48:11.512824: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmprHjOsR.tmpbV5vGo.pyomo.lp
-2014-06-12 14:48:11.530060: Solve completed - number of solutions=1
-2014-06-12 14:48:11.544783: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpDYnwrK.tmpzEj2ns.pyomo.lp
-2014-06-12 14:48:11.561450: Solve completed - number of solutions=1
-2014-06-12 14:48:11.575277: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpucynWu.tmpuD3p_U.pyomo.lp
-2014-06-12 14:48:11.593231: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-108716.2952
-2014-06-12 14:48:11.606029: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp0pZTRR.tmppPMcW4.pyomo.lp
-2014-06-12 14:48:11.628623: Solve completed - number of solutions=1
-2014-06-12 14:48:11.642559: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpJAa4LO.tmpoFYRtv.pyomo.lp
-2014-06-12 14:48:11.661954: Solve completed - number of solutions=1
-2014-06-12 14:48:11.676964: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpJ5yrEe.tmpVwEkf0.pyomo.lp
-2014-06-12 14:48:11.696224: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0168 First stage cost avg= 108561.6577 Max-Min= 274.77
-Cumulative run-time=2.99 seconds
-
-Initiating PH iteration=15
-2014-06-12 14:48:11.708914: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpvAdpzy.tmpYqRXhR.pyomo.lp
-2014-06-12 14:48:11.727636: Solve completed - number of solutions=1
-2014-06-12 14:48:11.741926: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpBUm47Z.tmpHkcD4Z.pyomo.lp
-2014-06-12 14:48:11.761154: Solve completed - number of solutions=1
-2014-06-12 14:48:11.775130: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp4bzKPP.tmpJHA126.pyomo.lp
-2014-06-12 14:48:11.792119: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-108567.8281
-2014-06-12 14:48:11.804840: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpj1POCf.tmpglfvCS.pyomo.lp
-2014-06-12 14:48:11.826075: Solve completed - number of solutions=1
-2014-06-12 14:48:11.840179: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp0hBMBC.tmpfUgI_o.pyomo.lp
-2014-06-12 14:48:11.860312: Solve completed - number of solutions=1
-2014-06-12 14:48:11.874582: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpCDUbSD.tmpaoJgVI.pyomo.lp
-2014-06-12 14:48:11.894042: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0163 First stage cost avg= 108604.0579 Max-Min= 295.14
-Cumulative run-time=3.19 seconds
-
-Initiating PH iteration=16
-2014-06-12 14:48:11.907100: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpyVwkje.tmpBBMmiy.pyomo.lp
-2014-06-12 14:48:11.924640: Solve completed - number of solutions=1
-2014-06-12 14:48:11.939461: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpH7mblc.tmpyddOI0.pyomo.lp
-2014-06-12 14:48:11.958072: Solve completed - number of solutions=1
-2014-06-12 14:48:11.974201: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpFIeN3M.tmpEguikz.pyomo.lp
-2014-06-12 14:48:11.992320: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-108440.1576
-2014-06-12 14:48:12.005571: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpFFAoSs.tmpBGQMEu.pyomo.lp
-2014-06-12 14:48:12.026174: Solve completed - number of solutions=1
-2014-06-12 14:48:12.039876: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp8vqJt9.tmpmQVVa_.pyomo.lp
-2014-06-12 14:48:12.059433: Solve completed - number of solutions=1
-2014-06-12 14:48:12.073229: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpH3zHlh.tmpfaQjEt.pyomo.lp
-2014-06-12 14:48:12.093526: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0098 First stage cost avg= 108667.3583 Max-Min= 127.67
-Cumulative run-time=3.39 seconds
-
-Initiating PH iteration=17
-2014-06-12 14:48:12.106382: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpTC2BZR.tmpQvqUhm.pyomo.lp
-2014-06-12 14:48:12.124725: Solve completed - number of solutions=1
-2014-06-12 14:48:12.139132: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp4uUnsZ.tmpsRhoxr.pyomo.lp
-2014-06-12 14:48:12.156864: Solve completed - number of solutions=1
-2014-06-12 14:48:12.172192: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpZraHav.tmpVtaH6M.pyomo.lp
-2014-06-12 14:48:12.190539: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-108508.3933
-2014-06-12 14:48:12.207275: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpwgdmw8.tmpYHf3lk.pyomo.lp
-2014-06-12 14:48:12.229472: Solve completed - number of solutions=1
-2014-06-12 14:48:12.243448: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp2wk99T.tmpjnlm1n.pyomo.lp
-2014-06-12 14:48:12.264971: Solve completed - number of solutions=1
-2014-06-12 14:48:12.279350: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpEDN4L0.tmpeW0iMx.pyomo.lp
-2014-06-12 14:48:12.299093: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0032 First stage cost avg= 108758.4237 Max-Min= 59.69
-Cumulative run-time=3.59 seconds
-
-Initiating PH iteration=18
-2014-06-12 14:48:12.311708: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmphqsmGe.tmpJLjsYa.pyomo.lp
-2014-06-12 14:48:12.330171: Solve completed - number of solutions=1
-2014-06-12 14:48:12.345437: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpGL3gLB.tmpf2UanL.pyomo.lp
-2014-06-12 14:48:12.362668: Solve completed - number of solutions=1
-2014-06-12 14:48:12.376453: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpYTlxWD.tmptCwzyB.pyomo.lp
-2014-06-12 14:48:12.393726: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-108542.0161
-2014-06-12 14:48:12.406716: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpme7Wx9.tmp7zKrqo.pyomo.lp
-2014-06-12 14:48:12.429254: Solve completed - number of solutions=1
-2014-06-12 14:48:12.442974: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpsFyy4G.tmpyvh2e0.pyomo.lp
-2014-06-12 14:48:12.462955: Solve completed - number of solutions=1
-2014-06-12 14:48:12.477144: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpMrBdTn.tmpgH3sOd.pyomo.lp
-2014-06-12 14:48:12.497782: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0026 First stage cost avg= 108868.1277 Max-Min= 101.79
-Cumulative run-time=3.79 seconds
-
-Initiating PH iteration=19
-2014-06-12 14:48:12.511597: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp6TdSZh.tmpWgG3bR.pyomo.lp
-2014-06-12 14:48:12.528478: Solve completed - number of solutions=1
-2014-06-12 14:48:12.542313: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp4bzLSM.tmp7GJyCe.pyomo.lp
-2014-06-12 14:48:12.559142: Solve completed - number of solutions=1
-2014-06-12 14:48:12.572964: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpSaGBPr.tmpSc0qeM.pyomo.lp
-2014-06-12 14:48:12.592631: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-108541.9306
-2014-06-12 14:48:12.606063: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpyZcbuI.tmpV3ZH6a.pyomo.lp
-2014-06-12 14:48:12.626142: Solve completed - number of solutions=1
-2014-06-12 14:48:12.640155: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpMoxv7o.tmpHxmu_c.pyomo.lp
-2014-06-12 14:48:12.660093: Solve completed - number of solutions=1
-2014-06-12 14:48:12.674936: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpj9vDvE.tmpOkh8dz.pyomo.lp
-2014-06-12 14:48:12.695067: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0039 First stage cost avg= 108975.3089 Max-Min= 73.41
-Cumulative run-time=3.99 seconds
-
-Initiating PH iteration=20
-2014-06-12 14:48:12.707897: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpcGtdm3.tmpNV6JH4.pyomo.lp
-2014-06-12 14:48:12.726399: Solve completed - number of solutions=1
-2014-06-12 14:48:12.740387: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp8BeCeg.tmpfUEUA4.pyomo.lp
-2014-06-12 14:48:12.758373: Solve completed - number of solutions=1
-2014-06-12 14:48:12.773591: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpTnik18.tmpGV43Ei.pyomo.lp
-2014-06-12 14:48:12.791738: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-108516.4781
-2014-06-12 14:48:12.805473: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpWTnofr.tmpdCbe9e.pyomo.lp
-2014-06-12 14:48:12.826735: Solve completed - number of solutions=1
-2014-06-12 14:48:12.840773: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp9kGOuf.tmpDdttLW.pyomo.lp
-2014-06-12 14:48:12.861329: Solve completed - number of solutions=1
-2014-06-12 14:48:12.875259: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpLTb7u9.tmpyLTMrE.pyomo.lp
-2014-06-12 14:48:12.894971: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0043 First stage cost avg= 109057.4144 Max-Min= 39.47
-Cumulative run-time=4.19 seconds
-
-Initiating PH iteration=21
-2014-06-12 14:48:12.907660: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp1FJxOU.tmpIdcA3g.pyomo.lp
-2014-06-12 14:48:12.927010: Solve completed - number of solutions=1
-2014-06-12 14:48:12.941351: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpmWRbIF.tmpmladxc.pyomo.lp
-2014-06-12 14:48:12.958298: Solve completed - number of solutions=1
-2014-06-12 14:48:12.973071: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpboBnMx.tmp07kzV7.pyomo.lp
-2014-06-12 14:48:12.990826: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-108488.2878
-2014-06-12 14:48:13.003658: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpV7dmyD.tmpDY0zsJ.pyomo.lp
-2014-06-12 14:48:13.024828: Solve completed - number of solutions=1
-2014-06-12 14:48:13.038567: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpjcaznj.tmpt7NyBU.pyomo.lp
-2014-06-12 14:48:13.057874: Solve completed - number of solutions=1
-2014-06-12 14:48:13.072248: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpVZMUbd.tmpz1oaTH.pyomo.lp
-2014-06-12 14:48:13.094000: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0044 First stage cost avg= 109099.7145 Max-Min= 87.57
-Cumulative run-time=4.39 seconds
-
-Initiating PH iteration=22
-2014-06-12 14:48:13.108398: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp7fS2LW.tmplVcjM5.pyomo.lp
-2014-06-12 14:48:13.128621: Solve completed - number of solutions=1
-2014-06-12 14:48:13.143329: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmplvbozw.tmpnMrkR2.pyomo.lp
-2014-06-12 14:48:13.162885: Solve completed - number of solutions=1
-2014-06-12 14:48:13.177136: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpJ50KRT.tmpVsitAq.pyomo.lp
-2014-06-12 14:48:13.195229: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-108441.5390
-2014-06-12 14:48:13.209675: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp5wvBix.tmpdaL1d6.pyomo.lp
-2014-06-12 14:48:13.232528: Solve completed - number of solutions=1
-2014-06-12 14:48:13.246523: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp_pr9c2.tmpb0cZzG.pyomo.lp
-2014-06-12 14:48:13.265902: Solve completed - number of solutions=1
-2014-06-12 14:48:13.279920: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpUmvnLG.tmpV07NVD.pyomo.lp
-2014-06-12 14:48:13.300748: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0040 First stage cost avg= 109099.1239 Max-Min= 104.22
-Cumulative run-time=4.59 seconds
-
-Initiating PH iteration=23
-2014-06-12 14:48:13.313374: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpLiKULq.tmpiy454g.pyomo.lp
-2014-06-12 14:48:13.330526: Solve completed - number of solutions=1
-2014-06-12 14:48:13.344408: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmphksPA4.tmp1flEj6.pyomo.lp
-2014-06-12 14:48:13.362831: Solve completed - number of solutions=1
-2014-06-12 14:48:13.376897: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmphnVn06.tmpBavKFa.pyomo.lp
-2014-06-12 14:48:13.395109: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-108399.9641
-2014-06-12 14:48:13.408204: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpt9dfYK.tmpOEDXqM.pyomo.lp
-2014-06-12 14:48:13.429808: Solve completed - number of solutions=1
-2014-06-12 14:48:13.445434: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpcwuoE9.tmp6N3No7.pyomo.lp
-2014-06-12 14:48:13.464721: Solve completed - number of solutions=1
-2014-06-12 14:48:13.478999: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpmh5D1v.tmpoFk4AX.pyomo.lp
-2014-06-12 14:48:13.500429: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0032 First stage cost avg= 109062.8322 Max-Min= 88.54
-Cumulative run-time=4.79 seconds
-
-Initiating PH iteration=24
-2014-06-12 14:48:13.513211: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpoQMayt.tmphtOCpr.pyomo.lp
-2014-06-12 14:48:13.529747: Solve completed - number of solutions=1
-2014-06-12 14:48:13.543812: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpSigxtu.tmpalxxyl.pyomo.lp
-2014-06-12 14:48:13.562234: Solve completed - number of solutions=1
-2014-06-12 14:48:13.575929: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpQbJ_9_.tmpUIB78N.pyomo.lp
-2014-06-12 14:48:13.592652: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-108503.2120
-2014-06-12 14:48:13.605433: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpdIIk81.tmpTCB3wz.pyomo.lp
-2014-06-12 14:48:13.625911: Solve completed - number of solutions=1
-2014-06-12 14:48:13.639768: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpeJUXCv.tmpANjl6c.pyomo.lp
-2014-06-12 14:48:13.659700: Solve completed - number of solutions=1
-2014-06-12 14:48:13.674260: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpg3eGyA.tmpsrT2xo.pyomo.lp
-2014-06-12 14:48:13.695052: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0021 First stage cost avg= 109004.1156 Max-Min= 54.49
-Cumulative run-time=4.99 seconds
-
-Initiating PH iteration=25
-2014-06-12 14:48:13.707824: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpc1VnT9.tmpSvADKd.pyomo.lp
-2014-06-12 14:48:13.725837: Solve completed - number of solutions=1
-2014-06-12 14:48:13.740055: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpe38nZB.tmp6DZTai.pyomo.lp
-2014-06-12 14:48:13.758408: Solve completed - number of solutions=1
-2014-06-12 14:48:13.772549: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpkb280h.tmpIqUym6.pyomo.lp
-2014-06-12 14:48:13.791149: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-108576.0350
-2014-06-12 14:48:13.805088: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpwG7p74.tmpEVj_cs.pyomo.lp
-2014-06-12 14:48:13.826646: Solve completed - number of solutions=1
-2014-06-12 14:48:13.841645: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmppqoX_t.tmpHO0aV8.pyomo.lp
-2014-06-12 14:48:13.862810: Solve completed - number of solutions=1
-2014-06-12 14:48:13.878269: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp0BOmT0.tmpd2UPcI.pyomo.lp
-2014-06-12 14:48:13.899006: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0008 First stage cost avg= 108937.8039 Max-Min= 16.89
-Cumulative run-time=5.19 seconds
-
-Initiating PH iteration=26
-2014-06-12 14:48:13.912623: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpze9Kmm.tmpa1r2nk.pyomo.lp
-2014-06-12 14:48:13.931886: Solve completed - number of solutions=1
-2014-06-12 14:48:13.946299: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpI3a92r.tmpgcMqyh.pyomo.lp
-2014-06-12 14:48:13.963806: Solve completed - number of solutions=1
-2014-06-12 14:48:13.977979: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpoLj3Kv.tmpgZBFy4.pyomo.lp
-2014-06-12 14:48:13.995301: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-108599.8131
-2014-06-12 14:48:14.008335: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp15YmZv.tmpuiA2a1.pyomo.lp
-2014-06-12 14:48:14.029277: Solve completed - number of solutions=1
-2014-06-12 14:48:14.043485: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpDAJalA.tmp3Q4NUg.pyomo.lp
-2014-06-12 14:48:14.065328: Solve completed - number of solutions=1
-2014-06-12 14:48:14.080643: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpAw1HYm.tmp0YKTEE.pyomo.lp
-2014-06-12 14:48:14.100365: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0005 First stage cost avg= 108876.8822 Max-Min= 14.27
-Cumulative run-time=5.39 seconds
-
-Initiating PH iteration=27
-2014-06-12 14:48:14.113445: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpN3XVsU.tmpH_4PRw.pyomo.lp
-2014-06-12 14:48:14.132885: Solve completed - number of solutions=1
-2014-06-12 14:48:14.147089: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpbBwbiH.tmpjlMODb.pyomo.lp
-2014-06-12 14:48:14.163884: Solve completed - number of solutions=1
-2014-06-12 14:48:14.177720: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpU_OgFU.tmpE5Eb6s.pyomo.lp
-2014-06-12 14:48:14.195925: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-108581.6439
-2014-06-12 14:48:14.209369: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpoyKc9z.tmpkpd9lE.pyomo.lp
-2014-06-12 14:48:14.229538: Solve completed - number of solutions=1
-2014-06-12 14:48:14.243871: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpN6qrXi.tmpjdrJAp.pyomo.lp
-2014-06-12 14:48:14.265784: Solve completed - number of solutions=1
-2014-06-12 14:48:14.280500: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpiHjdMu.tmpMT8_o3.pyomo.lp
-2014-06-12 14:48:14.302808: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0015 First stage cost avg= 108830.6201 Max-Min= 34.81
-Cumulative run-time=5.60 seconds
-
-Initiating PH iteration=28
-2014-06-12 14:48:14.316860: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpG0yi4e.tmpiVValE.pyomo.lp
-2014-06-12 14:48:14.336380: Solve completed - number of solutions=1
-2014-06-12 14:48:14.351164: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpXWFKu4.tmpu_j4XP.pyomo.lp
-2014-06-12 14:48:14.368770: Solve completed - number of solutions=1
-2014-06-12 14:48:14.383152: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp_s5rSt.tmpIlg4hT.pyomo.lp
-2014-06-12 14:48:14.400687: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-108534.4974
-2014-06-12 14:48:14.414872: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpHq_tYw.tmp_jjlLt.pyomo.lp
-2014-06-12 14:48:14.436532: Solve completed - number of solutions=1
-2014-06-12 14:48:14.451628: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpCjPeIJ.tmppThmDe.pyomo.lp
-2014-06-12 14:48:14.472923: Solve completed - number of solutions=1
-2014-06-12 14:48:14.487884: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpQJF2tU.tmpdQ1aRb.pyomo.lp
-2014-06-12 14:48:14.508451: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0021 First stage cost avg= 108803.9655 Max-Min= 44.57
-Cumulative run-time=5.80 seconds
-
-Initiating PH iteration=29
-2014-06-12 14:48:14.521798: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpMM6TgF.tmpS_Ann4.pyomo.lp
-2014-06-12 14:48:14.539270: Solve completed - number of solutions=1
-2014-06-12 14:48:14.553569: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpST3bJC.tmpYwRd3o.pyomo.lp
-2014-06-12 14:48:14.572229: Solve completed - number of solutions=1
-2014-06-12 14:48:14.586918: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpldBpBr.tmpHVfICD.pyomo.lp
-2014-06-12 14:48:14.604898: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-108472.5688
-2014-06-12 14:48:14.618167: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpCjolL4.tmpkrViOH.pyomo.lp
-2014-06-12 14:48:14.639214: Solve completed - number of solutions=1
-2014-06-12 14:48:14.653161: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpd2zNNp.tmp_tS6yt.pyomo.lp
-2014-06-12 14:48:14.673082: Solve completed - number of solutions=1
-2014-06-12 14:48:14.687511: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpR7jiHF.tmpaXL9Gi.pyomo.lp
-2014-06-12 14:48:14.708516: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0023 First stage cost avg= 108797.7661 Max-Min= 45.24
-Cumulative run-time=6.00 seconds
-
-Initiating PH iteration=30
-2014-06-12 14:48:14.723412: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpuRCyi5.tmpCuQ8I6.pyomo.lp
-2014-06-12 14:48:14.741458: Solve completed - number of solutions=1
-2014-06-12 14:48:14.755390: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpKt3Mjf.tmpT4qse7.pyomo.lp
-2014-06-12 14:48:14.772306: Solve completed - number of solutions=1
-2014-06-12 14:48:14.786624: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpRX3rl8.tmp5kzset.pyomo.lp
-2014-06-12 14:48:14.804947: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-108408.6756
-2014-06-12 14:48:14.818734: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpZR6j93.tmp28hfR1.pyomo.lp
-2014-06-12 14:48:14.839945: Solve completed - number of solutions=1
-2014-06-12 14:48:14.854249: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpWRlkUQ.tmp0EEWd8.pyomo.lp
-2014-06-12 14:48:14.874677: Solve completed - number of solutions=1
-2014-06-12 14:48:14.888956: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpXlRCaN.tmpu9dapk.pyomo.lp
-2014-06-12 14:48:14.909097: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0020 First stage cost avg= 108809.4793 Max-Min= 39.01
-Cumulative run-time=6.20 seconds
-
-Initiating PH iteration=31
-2014-06-12 14:48:14.921772: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpG2wsrU.tmpFKv5l_.pyomo.lp
-2014-06-12 14:48:14.939138: Solve completed - number of solutions=1
-2014-06-12 14:48:14.952947: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpyrLwvf.tmpLl0AQC.pyomo.lp
-2014-06-12 14:48:14.971636: Solve completed - number of solutions=1
-2014-06-12 14:48:14.986468: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpu5Szjf.tmp0c2ROK.pyomo.lp
-2014-06-12 14:48:15.004006: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-108403.8262
-2014-06-12 14:48:15.017349: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpGMzfhq.tmpbks_Gi.pyomo.lp
-2014-06-12 14:48:15.038952: Solve completed - number of solutions=1
-2014-06-12 14:48:15.052837: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpIZXyE4.tmp6Qdl29.pyomo.lp
-2014-06-12 14:48:15.072478: Solve completed - number of solutions=1
-2014-06-12 14:48:15.087563: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp3KFNWw.tmpVe8jfo.pyomo.lp
-2014-06-12 14:48:15.107958: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0015 First stage cost avg= 108834.1639 Max-Min= 28.07
-Cumulative run-time=6.40 seconds
-
-Initiating PH iteration=32
-2014-06-12 14:48:15.120770: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpVuevU9.tmpRD0y2C.pyomo.lp
-2014-06-12 14:48:15.138745: Solve completed - number of solutions=1
-2014-06-12 14:48:15.152624: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpSmYqfh.tmpqOUuk3.pyomo.lp
-2014-06-12 14:48:15.169607: Solve completed - number of solutions=1
-2014-06-12 14:48:15.183666: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpNA2UL9.tmpDhG8l7.pyomo.lp
-2014-06-12 14:48:15.200773: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-108419.0164
-2014-06-12 14:48:15.213905: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpPTpBSy.tmp1qGtvN.pyomo.lp
-2014-06-12 14:48:15.234301: Solve completed - number of solutions=1
-2014-06-12 14:48:15.248228: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpwQH7Tp.tmpK90o7Y.pyomo.lp
-2014-06-12 14:48:15.269279: Solve completed - number of solutions=1
-2014-06-12 14:48:15.283434: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpbKtMPm.tmpcYp0sB.pyomo.lp
-2014-06-12 14:48:15.303853: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0008 First stage cost avg= 108865.6237 Max-Min= 14.67
-Cumulative run-time=6.60 seconds
-
-Initiating PH iteration=33
-2014-06-12 14:48:15.316547: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpV79u_k.tmpF4LTMa.pyomo.lp
-2014-06-12 14:48:15.335620: Solve completed - number of solutions=1
-2014-06-12 14:48:15.350848: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpAEwZ59.tmpAds6XW.pyomo.lp
-2014-06-12 14:48:15.368411: Solve completed - number of solutions=1
-2014-06-12 14:48:15.383709: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpJ_th13.tmptsjYi0.pyomo.lp
-2014-06-12 14:48:15.400894: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-108427.1508
-2014-06-12 14:48:15.413737: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpLFH3sX.tmpfzJTaD.pyomo.lp
-2014-06-12 14:48:15.434644: Solve completed - number of solutions=1
-2014-06-12 14:48:15.448354: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp6o3Itf.tmpAEDZ5J.pyomo.lp
-2014-06-12 14:48:15.467932: Solve completed - number of solutions=1
-2014-06-12 14:48:15.482709: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpstcCMb.tmpF3eQLf.pyomo.lp
-2014-06-12 14:48:15.504181: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0001 First stage cost avg= 108897.5679 Max-Min= 1.06
-Cumulative run-time=6.80 seconds
-PH converged - convergence metric is below threshold=0.0001
-Number of discrete variables fixed before final plugin calls=0 (total=0)
-Number of continuous variables fixed before final plugin calls=0 (total=3)
-2014-06-12 14:48:15.518346: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp5G2hVn.tmptN3KUA.pyomo.lp
-2014-06-12 14:48:15.536559: Solve completed - number of solutions=1
-2014-06-12 14:48:15.550326: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp3Z3L2Y.tmp7r2Xxw.pyomo.lp
-2014-06-12 14:48:15.566958: Solve completed - number of solutions=1
-2014-06-12 14:48:15.580891: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpldph_k.tmpSvGlPM.pyomo.lp
-2014-06-12 14:48:15.599355: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-108427.7239
-
- Iteration Bound
- Trivial -115405.555588
- 0 -112378.395124
- 1 -114092.2009
- 2 -111905.774744
- 3 -110093.788354
- 4 -109499.516145
- 5 -108931.804635
- 6 -110122.001897
- 7 -111334.701817
- 8 -111609.814338
- 9 -111298.11967
- 10 -110209.186685
- 11 -109115.65065
- 12 -108676.376969
- 13 -108716.295157
- 14 -108567.828079
- 15 -108440.157622
- 16 -108508.393308
- 17 -108542.016117
- 18 -108541.930573
- 19 -108516.478131
- 20 -108488.28782
- 21 -108441.538995
- 22 -108399.964066
- 23 -108503.212025
- 24 -108576.034986
- 25 -108599.813084
- 26 -108581.643945
- 27 -108534.497426
- 28 -108472.568809
- 29 -108408.6756
- 30 -108403.826194
- 31 -108419.01641
- 32 -108427.150791
- 33 -108427.723944
-
-Lower bound history written to file=phbound.txt
-
-Best Objective Bound: -108399.964066
-
-Best Lower Bound written to file=phbestbound.txt
-PH algorithm history written to file=ph_history.json
-PH complete
-Convergence history:
-Iteration Metric Value
- 0 0.2540
- 1 0.1259
- 2 0.0816
- 3 0.0796
- 4 0.0776
- 5 0.0794
- 6 0.0668
- 7 0.0542
- 8 0.0360
- 9 0.0243
- 10 0.0256
- 11 0.0248
- 12 0.0163
- 13 0.0081
- 14 0.0168
- 15 0.0163
- 16 0.0098
- 17 0.0032
- 18 0.0026
- 19 0.0039
- 20 0.0043
- 21 0.0044
- 22 0.0040
- 23 0.0032
- 24 0.0021
- 25 0.0008
- 26 0.0005
- 27 0.0015
- 28 0.0021
- 29 0.0023
- 30 0.0020
- 31 0.0015
- 32 0.0008
- 33 0.0001
-
-***********************************************************************************************
->>>THE EXPECTED SUM OF THE STAGE COST VARIABLES=-108388.378639<<<
->>>***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise<<<
-***********************************************************************************************
-Final number of discrete variables fixed=0 (total=0)
-Final number of continuous variables fixed=0 (total=3)
-Final variable values:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 79.9844 80.0000 79.9768 Max-Min: 0.0232 Avg: 79.9871
- Index: [SUGAR_BEETS] Values: 249.9848 249.9770 250.0000 Max-Min: 0.0230 Avg: 249.9873
- Index: [WHEAT] Values: 170.0308 170.0230 170.0232 Max-Min: 0.0078 Avg: 170.0256
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108897.0836 108897.4725 108898.1476 Max-Min: 1.0640 Avg: 108897.5679
-Final costs:
-Scenario Tree Costs
-***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise
-----------------------------------------------------
-Tree Nodes:
-
- Name=AboveAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AboveAverageScenario
- Expected cost of (sub)tree rooted at node=-275899.3041
-
- Name=AverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AverageScenario
- Expected cost of (sub)tree rooted at node=-218243.2209
-
- Name=BelowAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-157713.8615
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- AboveAverageNode
- AverageNode
- BelowAverageNode
- Scenarios:
- AboveAverageScenario
- AverageScenario
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-108388.3786
-
-----------------------------------------------------
-Scenarios:
-
- Name=AboveAverageScenario
- Probability=0.3333
- Leaf Node=AboveAverageNode
- Tree node sequence:
- RootNode
- AboveAverageNode
- Stage= FirstStage Cost=108898.1476
- Stage= SecondStage Cost=-275899.3041
- Total scenario cost=-167001.1565
-
- Name=AverageScenario
- Probability=0.3333
- Leaf Node=AverageNode
- Tree node sequence:
- RootNode
- AverageNode
- Stage= FirstStage Cost=108897.4725
- Stage= SecondStage Cost=-218243.2209
- Total scenario cost=-109345.7484
-
- Name=BelowAverageScenario
- Probability=0.3333
- Leaf Node=BelowAverageNode
- Tree node sequence:
- RootNode
- BelowAverageNode
- Stage= FirstStage Cost=108897.0836
- Stage= SecondStage Cost=-157713.8615
- Total scenario cost=-48816.7780
-
-----------------------------------------------------
-
-Total PH execution time=6.90 seconds
-
-Scenario tree solution written to file=ph_solution.json
-Shutting down Pyro solver components
-Dispatcher received request to shut down - initiating...
-
-Total execution time=9.95 seconds
-Name Server gracefully stopped.
-Lost connection to dispatch server - shutting down...
diff --git a/pyomo/pysp/tests/examples/baselines/TestPHFarmerPyro.test8.baseline b/pyomo/pysp/tests/examples/baselines/TestPHFarmerPyro.test8.baseline
deleted file mode 100644
index c476c349608..00000000000
--- a/pyomo/pysp/tests/examples/baselines/TestPHFarmerPyro.test8.baseline
+++ /dev/null
@@ -1,2569 +0,0 @@
-*** Pyro Name Server ***
-Name server listening on: ('0.0.0.0', 9090)
-Broadcast server listening on: ('0.0.0.0', 9090)
-URI is: PYRO://10.0.0.11:9090/0a00000b10b6920a8348e1d8cc14068ed31
-URI written to: /Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/pyomo/pysp/tests/examples/Pyro_NS_URI
-Name Server started.
-User-defined PH extension module=pyomo.pysp.plugins.phhistoryextension already imported - skipping
-User-defined PH extension module=pyomo.pysp.plugins.convexhullboundextension already imported - skipping
-Dispatcher is ready.
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI:PYRO://10.0.0.11:7766/0a00000b10b6a20a8348f22b143e52693c8
-This is worker Worker_68459@Ozymandias.local
-Listening for work from dispatcher...
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI: PYRO://10.0.0.11:7766/0a00000b10b6a20a8348f22b143e52693c8
-This is client 68460@Ozymandias.local
-Initializing PH
-
-convexhullboundextension using default update interval=1
-WARNING: No construction rule or expression specified for constraint 'W_Balance'
-WARNING: No construction rule or expression specified for constraint 'V_Bound'
-User-defined PH solution writer module=pyomo.pysp.plugins.jsonsolutionwriter already imported - skipping
-Starting PH
-
-Initiating PH iteration=0
-2014-06-12 14:48:23.495901: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp6p_rf9.tmpsG5AZv.pyomo.lp
-2014-06-12 14:48:23.514751: Solve completed - number of solutions=1
-2014-06-12 14:48:23.528636: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpwTHgLC.tmpZiSm9V.pyomo.lp
-2014-06-12 14:48:23.545913: Solve completed - number of solutions=1
-2014-06-12 14:48:23.559499: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpKd1llk.tmpQuTX9B.pyomo.lp
-2014-06-12 14:48:23.576580: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-115405.5556
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.2540 First stage cost avg= 113494.4444 Max-Min=10416.67
-Cumulative run-time=0.19 seconds
-
-Initiating PH iteration=1
-2014-06-12 14:48:23.622791: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpmNoJid.tmp15oBwv.pyomo.lp
-2014-06-12 14:48:23.641241: Solve completed - number of solutions=1
-2014-06-12 14:48:23.655376: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp7wHetQ.tmpyqlxfJ.pyomo.lp
-2014-06-12 14:48:23.674186: Solve completed - number of solutions=1
-2014-06-12 14:48:23.688623: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpFqYLDb.tmpIcqjlj.pyomo.lp
-2014-06-12 14:48:23.706743: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-112378.3952
-2014-06-12 14:48:23.753704: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpq4R_GZ.tmpbuyLjv.pyomo.lp
-2014-06-12 14:48:23.774421: Solve completed - number of solutions=1
-2014-06-12 14:48:23.789140: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmppmE1qr.tmpixfK_8.pyomo.lp
-2014-06-12 14:48:23.809871: Solve completed - number of solutions=1
-2014-06-12 14:48:23.824434: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp9RQmzV.tmp38X047.pyomo.lp
-2014-06-12 14:48:23.844405: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.1259 First stage cost avg= 113107.2221 Max-Min= 6943.89
-Cumulative run-time=0.43 seconds
-
-Initiating PH iteration=2
-2014-06-12 14:48:23.857565: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpFEutQR.tmptkZJqc.pyomo.lp
-2014-06-12 14:48:23.876383: Solve completed - number of solutions=1
-2014-06-12 14:48:23.890646: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpu6zJ0f.tmpJ65JHx.pyomo.lp
-2014-06-12 14:48:23.907809: Solve completed - number of solutions=1
-2014-06-12 14:48:23.921802: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmphdhPv6.tmpNRr_gx.pyomo.lp
-2014-06-12 14:48:23.938820: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-119146.9138
-2014-06-12 14:48:23.984117: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpjmP3NM.tmpEGm_Qr.pyomo.lp
-2014-06-12 14:48:24.004248: Solve completed - number of solutions=1
-2014-06-12 14:48:24.017943: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpbwAreG.tmpFzGKpQ.pyomo.lp
-2014-06-12 14:48:24.037865: Solve completed - number of solutions=1
-2014-06-12 14:48:24.052757: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpszduyL.tmpBsVt47.pyomo.lp
-2014-06-12 14:48:24.073181: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0816 First stage cost avg= 112954.6296 Max-Min= 2234.82
-Cumulative run-time=0.66 seconds
-
-Initiating PH iteration=3
-2014-06-12 14:48:24.085986: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpozmM3A.tmpB9_nmU.pyomo.lp
-2014-06-12 14:48:24.103860: Solve completed - number of solutions=1
-2014-06-12 14:48:24.118516: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpw2tuZ3.tmp5p5_q1.pyomo.lp
-2014-06-12 14:48:24.135735: Solve completed - number of solutions=1
-2014-06-12 14:48:24.149472: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpAG42tV.tmpJNdWrE.pyomo.lp
-2014-06-12 14:48:24.166505: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-122839.9373
-2014-06-12 14:48:24.212133: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpUIG76L.tmpNFBh75.pyomo.lp
-2014-06-12 14:48:24.232695: Solve completed - number of solutions=1
-2014-06-12 14:48:24.247847: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp0CPeLU.tmp1rlWPM.pyomo.lp
-2014-06-12 14:48:24.267792: Solve completed - number of solutions=1
-2014-06-12 14:48:24.281444: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp_i58KE.tmpEyBBeP.pyomo.lp
-2014-06-12 14:48:24.301889: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0796 First stage cost avg= 112963.0248 Max-Min= 2375.31
-Cumulative run-time=0.89 seconds
-
-Initiating PH iteration=4
-2014-06-12 14:48:24.314795: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpc21JQX.tmphPYP7X.pyomo.lp
-2014-06-12 14:48:24.332239: Solve completed - number of solutions=1
-2014-06-12 14:48:24.346494: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpVQfcYe.tmp9vWCK3.pyomo.lp
-2014-06-12 14:48:24.363702: Solve completed - number of solutions=1
-2014-06-12 14:48:24.377411: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpSJ9NHW.tmpmoIzoM.pyomo.lp
-2014-06-12 14:48:24.394351: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-115850.2283
-2014-06-12 14:48:24.440573: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp_hokeL.tmpBHHlWn.pyomo.lp
-2014-06-12 14:48:24.460287: Solve completed - number of solutions=1
-2014-06-12 14:48:24.473997: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmprdYfP7.tmp4ShT6J.pyomo.lp
-2014-06-12 14:48:24.493852: Solve completed - number of solutions=1
-2014-06-12 14:48:24.507856: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpEnMPm2.tmpO01lih.pyomo.lp
-2014-06-12 14:48:24.528148: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0776 First stage cost avg= 112915.6071 Max-Min= 3047.08
-Cumulative run-time=1.12 seconds
-
-Initiating PH iteration=5
-2014-06-12 14:48:24.541833: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp7OePUn.tmpPTXcfO.pyomo.lp
-2014-06-12 14:48:24.558839: Solve completed - number of solutions=1
-2014-06-12 14:48:24.572704: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpRcEOmo.tmpXWw1FN.pyomo.lp
-2014-06-12 14:48:24.591059: Solve completed - number of solutions=1
-2014-06-12 14:48:24.605408: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpHLOkbn.tmpHkXOqf.pyomo.lp
-2014-06-12 14:48:24.621858: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-114662.4278
-2014-06-12 14:48:24.666785: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpDqpXMZ.tmpZwuFi1.pyomo.lp
-2014-06-12 14:48:24.687662: Solve completed - number of solutions=1
-2014-06-12 14:48:24.702608: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpJKm2SO.tmpif1iBv.pyomo.lp
-2014-06-12 14:48:24.721903: Solve completed - number of solutions=1
-2014-06-12 14:48:24.736625: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpetPhPh.tmpjORM7P.pyomo.lp
-2014-06-12 14:48:24.759042: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0794 First stage cost avg= 112825.3926 Max-Min= 3339.81
-Cumulative run-time=1.35 seconds
-
-Initiating PH iteration=6
-2014-06-12 14:48:24.772234: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp5FpQCJ.tmpxJXc7n.pyomo.lp
-2014-06-12 14:48:24.790674: Solve completed - number of solutions=1
-2014-06-12 14:48:24.806055: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp3FdkuO.tmp1is8Lm.pyomo.lp
-2014-06-12 14:48:24.824332: Solve completed - number of solutions=1
-2014-06-12 14:48:24.837979: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp8rus7t.tmpz0NSDG.pyomo.lp
-2014-06-12 14:48:24.855339: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-114508.9364
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-2014-06-12 14:48:24.900220: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp3SFvhS.tmpyGl4aa.pyomo.lp
-2014-06-12 14:48:24.920011: Solve completed - number of solutions=1
-2014-06-12 14:48:24.934127: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpiLz0HM.tmpsr1vip.pyomo.lp
-2014-06-12 14:48:24.954322: Solve completed - number of solutions=1
-2014-06-12 14:48:24.968090: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpIktrA_.tmpKlBsVe.pyomo.lp
-2014-06-12 14:48:24.988949: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0726 First stage cost avg= 111425.6142 Max-Min= 3493.67
-Cumulative run-time=1.58 seconds
-
-Initiating PH iteration=7
-2014-06-12 14:48:25.002303: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpMTBWlc.tmpaPwIbT.pyomo.lp
-2014-06-12 14:48:25.019555: Solve completed - number of solutions=1
-2014-06-12 14:48:25.033879: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp9p55Y9.tmpDdsLMC.pyomo.lp
-2014-06-12 14:48:25.051796: Solve completed - number of solutions=1
-2014-06-12 14:48:25.065684: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpauf6Tu.tmpYvreon.pyomo.lp
-2014-06-12 14:48:25.082540: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-114392.6225
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-2014-06-12 14:48:25.127802: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp4MIyyk.tmpoo7064.pyomo.lp
-2014-06-12 14:48:25.148463: Solve completed - number of solutions=1
-2014-06-12 14:48:25.162997: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp4kagHu.tmp2X2F2n.pyomo.lp
-2014-06-12 14:48:25.182531: Solve completed - number of solutions=1
-2014-06-12 14:48:25.196772: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmphhjkvx.tmp25EUq9.pyomo.lp
-2014-06-12 14:48:25.218266: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0844 First stage cost avg= 110005.4890 Max-Min= 3402.43
-Cumulative run-time=1.81 seconds
-
-Initiating PH iteration=8
-2014-06-12 14:48:25.231460: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpvlYnRA.tmpuucT7p.pyomo.lp
-2014-06-12 14:48:25.249593: Solve completed - number of solutions=1
-2014-06-12 14:48:25.264607: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpSuP9rH.tmpv21btb.pyomo.lp
-2014-06-12 14:48:25.282604: Solve completed - number of solutions=1
-2014-06-12 14:48:25.297484: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpT6_SNp.tmpVVcWqQ.pyomo.lp
-2014-06-12 14:48:25.313785: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-116760.9510
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-2014-06-12 14:48:25.360579: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpUfKiht.tmpJ3fu5U.pyomo.lp
-2014-06-12 14:48:25.381826: Solve completed - number of solutions=1
-2014-06-12 14:48:25.395783: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpxvVVqa.tmp8F2LS6.pyomo.lp
-2014-06-12 14:48:25.415690: Solve completed - number of solutions=1
-2014-06-12 14:48:25.429480: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpLZsbgq.tmp6gOqmF.pyomo.lp
-2014-06-12 14:48:25.449986: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0727 First stage cost avg= 108759.9444 Max-Min= 2312.53
-Cumulative run-time=2.04 seconds
-
-Initiating PH iteration=9
-2014-06-12 14:48:25.479312: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpuNLgOj.tmpg2Nniz.pyomo.lp
-2014-06-12 14:48:25.496517: Solve completed - number of solutions=1
-2014-06-12 14:48:25.510376: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp7qgHi2.tmp3OuEj5.pyomo.lp
-2014-06-12 14:48:25.528608: Solve completed - number of solutions=1
-2014-06-12 14:48:25.542967: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpJ2I2aW.tmpumJkEX.pyomo.lp
-2014-06-12 14:48:25.561939: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-115713.7704
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-2014-06-12 14:48:25.609600: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpeJ6q3X.tmpubZKEW.pyomo.lp
-2014-06-12 14:48:25.629826: Solve completed - number of solutions=1
-2014-06-12 14:48:25.643594: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpzM0Lc4.tmpNF3pKq.pyomo.lp
-2014-06-12 14:48:25.663369: Solve completed - number of solutions=1
-2014-06-12 14:48:25.677187: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp477aft.tmpnahpPL.pyomo.lp
-2014-06-12 14:48:25.698345: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0636 First stage cost avg= 107649.1713 Max-Min= 2611.98
-Cumulative run-time=2.29 seconds
-
-Initiating PH iteration=10
-2014-06-12 14:48:25.711840: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpMZM4md.tmpSm8U4Z.pyomo.lp
-2014-06-12 14:48:25.729448: Solve completed - number of solutions=1
-2014-06-12 14:48:25.744101: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpLlcUZ8.tmpO70Ktn.pyomo.lp
-2014-06-12 14:48:25.763229: Solve completed - number of solutions=1
-2014-06-12 14:48:25.778331: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpzUkzGP.tmp5JaRcw.pyomo.lp
-2014-06-12 14:48:25.797284: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-114886.9774
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-2014-06-12 14:48:25.845340: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmputaJUp.tmpBTUrxU.pyomo.lp
-2014-06-12 14:48:25.866770: Solve completed - number of solutions=1
-2014-06-12 14:48:25.880603: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmptHgqhv.tmp90JEOg.pyomo.lp
-2014-06-12 14:48:25.900622: Solve completed - number of solutions=1
-2014-06-12 14:48:25.914514: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpfghVEk.tmphR2lFu.pyomo.lp
-2014-06-12 14:48:25.936402: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0786 First stage cost avg= 106975.2119 Max-Min= 3852.20
-Cumulative run-time=2.52 seconds
-
-Initiating PH iteration=11
-2014-06-12 14:48:25.950715: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpOz4qkB.tmp_1Djok.pyomo.lp
-2014-06-12 14:48:25.970797: Solve completed - number of solutions=1
-2014-06-12 14:48:25.985861: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmps6VRle.tmpIxGKFK.pyomo.lp
-2014-06-12 14:48:26.003848: Solve completed - number of solutions=1
-2014-06-12 14:48:26.018168: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpQ88lAW.tmpWmu2a7.pyomo.lp
-2014-06-12 14:48:26.035328: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-114142.6745
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-2014-06-12 14:48:26.081286: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp2ei5fV.tmpZHGIsN.pyomo.lp
-2014-06-12 14:48:26.102863: Solve completed - number of solutions=1
-2014-06-12 14:48:26.118058: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpbsd2As.tmpMlAh1A.pyomo.lp
-2014-06-12 14:48:26.142275: Solve completed - number of solutions=1
-2014-06-12 14:48:26.158193: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpOcL7o6.tmpPGfJCZ.pyomo.lp
-2014-06-12 14:48:26.181974: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0822 First stage cost avg= 106779.6625 Max-Min= 3679.63
-Cumulative run-time=2.77 seconds
-
-Initiating PH iteration=12
-2014-06-12 14:48:26.194819: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpkg9OKl.tmpFvQY5Q.pyomo.lp
-2014-06-12 14:48:26.211435: Solve completed - number of solutions=1
-2014-06-12 14:48:26.225237: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpbGdNxW.tmposBvQj.pyomo.lp
-2014-06-12 14:48:26.244601: Solve completed - number of solutions=1
-2014-06-12 14:48:26.260815: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmplWH75C.tmpg8Ed77.pyomo.lp
-2014-06-12 14:48:26.279230: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-112524.0431
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-2014-06-12 14:48:26.326570: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp5eb7D7.tmptYqLrL.pyomo.lp
-2014-06-12 14:48:26.348665: Solve completed - number of solutions=1
-2014-06-12 14:48:26.364071: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmptfxx7y.tmptERqTj.pyomo.lp
-2014-06-12 14:48:26.384168: Solve completed - number of solutions=1
-2014-06-12 14:48:26.398470: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpi21F2r.tmpw3xYMX.pyomo.lp
-2014-06-12 14:48:26.420099: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0773 First stage cost avg= 106949.8534 Max-Min= 3195.33
-Cumulative run-time=3.01 seconds
-
-Initiating PH iteration=13
-2014-06-12 14:48:26.432890: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpX9GrCT.tmplbpm95.pyomo.lp
-2014-06-12 14:48:26.451588: Solve completed - number of solutions=1
-2014-06-12 14:48:26.466042: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpe23CES.tmpEkzhcX.pyomo.lp
-2014-06-12 14:48:26.484121: Solve completed - number of solutions=1
-2014-06-12 14:48:26.497852: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpRqI6I1.tmpCjJkbb.pyomo.lp
-2014-06-12 14:48:26.515757: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-111354.3497
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-2014-06-12 14:48:26.562436: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpC7fyMG.tmpyUIm5w.pyomo.lp
-2014-06-12 14:48:26.582418: Solve completed - number of solutions=1
-2014-06-12 14:48:26.596167: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpI2IukI.tmpZxj7ef.pyomo.lp
-2014-06-12 14:48:26.616028: Solve completed - number of solutions=1
-2014-06-12 14:48:26.629814: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp22XnqC.tmppEtNl8.pyomo.lp
-2014-06-12 14:48:26.650562: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0690 First stage cost avg= 107328.8057 Max-Min= 2823.03
-Cumulative run-time=3.24 seconds
-
-Initiating PH iteration=14
-2014-06-12 14:48:26.663842: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpRAlhYy.tmp6t492N.pyomo.lp
-2014-06-12 14:48:26.682774: Solve completed - number of solutions=1
-2014-06-12 14:48:26.698662: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpIoiQiz.tmpuLwL1b.pyomo.lp
-2014-06-12 14:48:26.718754: Solve completed - number of solutions=1
-2014-06-12 14:48:26.734661: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpR2ETSe.tmpCHNNek.pyomo.lp
-2014-06-12 14:48:26.752357: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110712.3885
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-2014-06-12 14:48:26.798343: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpDi4sG_.tmpt93Afk.pyomo.lp
-2014-06-12 14:48:26.818496: Solve completed - number of solutions=1
-2014-06-12 14:48:26.832437: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmptQeiRg.tmpzS45h4.pyomo.lp
-2014-06-12 14:48:26.852474: Solve completed - number of solutions=1
-2014-06-12 14:48:26.867355: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpB6pE26.tmpw1YoOI.pyomo.lp
-2014-06-12 14:48:26.888255: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0608 First stage cost avg= 107764.6036 Max-Min= 2533.82
-Cumulative run-time=3.48 seconds
-
-Initiating PH iteration=15
-2014-06-12 14:48:26.901611: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp9CDDgU.tmpwgR8mT.pyomo.lp
-2014-06-12 14:48:26.920448: Solve completed - number of solutions=1
-2014-06-12 14:48:26.935100: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpIad7Md.tmpqjo38O.pyomo.lp
-2014-06-12 14:48:26.954069: Solve completed - number of solutions=1
-2014-06-12 14:48:26.968546: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmphv516h.tmpWFBMgV.pyomo.lp
-2014-06-12 14:48:26.987769: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110412.3233
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-2014-06-12 14:48:27.036216: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp4iUIJL.tmpAUwOJ6.pyomo.lp
-2014-06-12 14:48:27.057612: Solve completed - number of solutions=1
-2014-06-12 14:48:27.071337: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpe6skTV.tmpcI8bka.pyomo.lp
-2014-06-12 14:48:27.091463: Solve completed - number of solutions=1
-2014-06-12 14:48:27.105121: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpXSpbNG.tmpzbVPx0.pyomo.lp
-2014-06-12 14:48:27.124480: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0550 First stage cost avg= 108156.8751 Max-Min= 2354.98
-Cumulative run-time=3.71 seconds
-
-Initiating PH iteration=16
-2014-06-12 14:48:27.138891: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpLkYrwe.tmpX5dQlp.pyomo.lp
-2014-06-12 14:48:27.156860: Solve completed - number of solutions=1
-2014-06-12 14:48:27.171032: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpM665Yv.tmpfH60LO.pyomo.lp
-2014-06-12 14:48:27.188512: Solve completed - number of solutions=1
-2014-06-12 14:48:27.202246: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpvS2TrY.tmpzldCuE.pyomo.lp
-2014-06-12 14:48:27.219660: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110290.3557
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-2014-06-12 14:48:27.266241: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp4IOSJd.tmpR195mu.pyomo.lp
-2014-06-12 14:48:27.286903: Solve completed - number of solutions=1
-2014-06-12 14:48:27.300678: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp2eWrh4.tmpnx_yUj.pyomo.lp
-2014-06-12 14:48:27.320357: Solve completed - number of solutions=1
-2014-06-12 14:48:27.334277: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp7q9Ig_.tmp9Y6Xd5.pyomo.lp
-2014-06-12 14:48:27.355546: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0518 First stage cost avg= 108452.7004 Max-Min= 2257.08
-Cumulative run-time=3.94 seconds
-
-Initiating PH iteration=17
-2014-06-12 14:48:27.368439: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpXhD3tr.tmp0OE4xW.pyomo.lp
-2014-06-12 14:48:27.387730: Solve completed - number of solutions=1
-2014-06-12 14:48:27.402062: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpNdI6BX.tmp4LVjQd.pyomo.lp
-2014-06-12 14:48:27.418783: Solve completed - number of solutions=1
-2014-06-12 14:48:27.432509: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpCZfdns.tmpokAhQV.pyomo.lp
-2014-06-12 14:48:27.449552: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110300.1669
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-2014-06-12 14:48:27.496263: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpXlKI1p.tmpMI3Mu8.pyomo.lp
-2014-06-12 14:48:27.517015: Solve completed - number of solutions=1
-2014-06-12 14:48:27.530714: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpF86RPM.tmpeiDugn.pyomo.lp
-2014-06-12 14:48:27.550277: Solve completed - number of solutions=1
-2014-06-12 14:48:27.564134: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpN24f5W.tmpPwq0aZ.pyomo.lp
-2014-06-12 14:48:27.584247: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0512 First stage cost avg= 108636.8058 Max-Min= 2233.49
-Cumulative run-time=4.17 seconds
-
-Initiating PH iteration=18
-2014-06-12 14:48:27.596975: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmptpO4MR.tmp5nNOe8.pyomo.lp
-2014-06-12 14:48:27.614036: Solve completed - number of solutions=1
-2014-06-12 14:48:27.628817: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpHDZWKu.tmpXwpCaJ.pyomo.lp
-2014-06-12 14:48:27.646345: Solve completed - number of solutions=1
-2014-06-12 14:48:27.660154: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp8LP_QS.tmpJ2b3Rz.pyomo.lp
-2014-06-12 14:48:27.677708: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110407.5782
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-2014-06-12 14:48:27.724448: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpmINdmR.tmps9EDWK.pyomo.lp
-2014-06-12 14:48:27.744530: Solve completed - number of solutions=1
-2014-06-12 14:48:27.759333: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpRMU1TG.tmpuXDg63.pyomo.lp
-2014-06-12 14:48:27.778726: Solve completed - number of solutions=1
-2014-06-12 14:48:27.792406: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp1OFgRz.tmpTeeBXQ.pyomo.lp
-2014-06-12 14:48:27.812773: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0519 First stage cost avg= 108719.1582 Max-Min= 2264.78
-Cumulative run-time=4.40 seconds
-
-Initiating PH iteration=19
-2014-06-12 14:48:27.826234: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp6Gq32X.tmplROT4s.pyomo.lp
-2014-06-12 14:48:27.844756: Solve completed - number of solutions=1
-2014-06-12 14:48:27.859320: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpssGqqV.tmpvVQST_.pyomo.lp
-2014-06-12 14:48:27.878208: Solve completed - number of solutions=1
-2014-06-12 14:48:27.892706: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpkuVQ3t.tmpZliAEO.pyomo.lp
-2014-06-12 14:48:27.909974: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110633.3518
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-2014-06-12 14:48:27.955705: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpQNBF3P.tmpBtboLm.pyomo.lp
-2014-06-12 14:48:27.977137: Solve completed - number of solutions=1
-2014-06-12 14:48:27.991281: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpTkjwQ7.tmpMX1KjL.pyomo.lp
-2014-06-12 14:48:28.014402: Solve completed - number of solutions=1
-2014-06-12 14:48:28.029784: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp7yKHMG.tmpBwPXV5.pyomo.lp
-2014-06-12 14:48:28.052589: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0526 First stage cost avg= 108723.1781 Max-Min= 2324.13
-Cumulative run-time=4.64 seconds
-
-Initiating PH iteration=20
-2014-06-12 14:48:28.067218: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp6nlHY2.tmpce5i6z.pyomo.lp
-2014-06-12 14:48:28.090087: Solve completed - number of solutions=1
-2014-06-12 14:48:28.105472: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpbpeEzd.tmp_TvOHS.pyomo.lp
-2014-06-12 14:48:28.122120: Solve completed - number of solutions=1
-2014-06-12 14:48:28.136693: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpf3TbZH.tmpErYEZp.pyomo.lp
-2014-06-12 14:48:28.154469: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110837.3428
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-2014-06-12 14:48:28.200303: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpem88Pz.tmpVBAKdf.pyomo.lp
-2014-06-12 14:48:28.220910: Solve completed - number of solutions=1
-2014-06-12 14:48:28.234893: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp3QY6gM.tmpsGUkOv.pyomo.lp
-2014-06-12 14:48:28.255275: Solve completed - number of solutions=1
-2014-06-12 14:48:28.270180: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmptPXIII.tmpSPcfyy.pyomo.lp
-2014-06-12 14:48:28.289737: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0533 First stage cost avg= 108676.4444 Max-Min= 2388.98
-Cumulative run-time=4.88 seconds
-
-Initiating PH iteration=21
-2014-06-12 14:48:28.303250: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp6dHJUS.tmpUbBiOM.pyomo.lp
-2014-06-12 14:48:28.322780: Solve completed - number of solutions=1
-2014-06-12 14:48:28.337315: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpYxvZqt.tmp6QvfoU.pyomo.lp
-2014-06-12 14:48:28.354992: Solve completed - number of solutions=1
-2014-06-12 14:48:28.370222: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp0R24I6.tmpXdiZDC.pyomo.lp
-2014-06-12 14:48:28.388597: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110971.6327
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-2014-06-12 14:48:28.434285: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpYmoFHZ.tmpJcXQX6.pyomo.lp
-2014-06-12 14:48:28.454783: Solve completed - number of solutions=1
-2014-06-12 14:48:28.468707: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpJxkOh6.tmp5f_UNL.pyomo.lp
-2014-06-12 14:48:28.489204: Solve completed - number of solutions=1
-2014-06-12 14:48:28.503343: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpB2HJPd.tmpLrglDm.pyomo.lp
-2014-06-12 14:48:28.524902: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0546 First stage cost avg= 108604.4548 Max-Min= 2445.40
-Cumulative run-time=5.11 seconds
-
-Initiating PH iteration=22
-2014-06-12 14:48:28.537952: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpptinuL.tmpQvnwhk.pyomo.lp
-2014-06-12 14:48:28.556085: Solve completed - number of solutions=1
-2014-06-12 14:48:28.571047: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpwkYCcM.tmpzU0aGB.pyomo.lp
-2014-06-12 14:48:28.589228: Solve completed - number of solutions=1
-2014-06-12 14:48:28.604136: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpvwrJqP.tmpR6TxKZ.pyomo.lp
-2014-06-12 14:48:28.621495: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-111036.8465
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-2014-06-12 14:48:28.666352: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmprg6qwq.tmpHgFM_A.pyomo.lp
-2014-06-12 14:48:28.687420: Solve completed - number of solutions=1
-2014-06-12 14:48:28.701323: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp0SHjuJ.tmpbN6ls2.pyomo.lp
-2014-06-12 14:48:28.721544: Solve completed - number of solutions=1
-2014-06-12 14:48:28.735850: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpsf3VJV.tmp0oElG2.pyomo.lp
-2014-06-12 14:48:28.757590: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0556 First stage cost avg= 108527.2174 Max-Min= 2487.05
-Cumulative run-time=5.34 seconds
-
-Initiating PH iteration=23
-2014-06-12 14:48:28.770080: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpiHObSq.tmp9l9noL.pyomo.lp
-2014-06-12 14:48:28.789005: Solve completed - number of solutions=1
-2014-06-12 14:48:28.803010: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpVZDC4W.tmpx1p29t.pyomo.lp
-2014-06-12 14:48:28.820354: Solve completed - number of solutions=1
-2014-06-12 14:48:28.834304: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpJa_dMj.tmpS4Skh6.pyomo.lp
-2014-06-12 14:48:28.851718: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-111046.0537
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-2014-06-12 14:48:28.896757: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpucYQbg.tmpoT7Hdf.pyomo.lp
-2014-06-12 14:48:28.918789: Solve completed - number of solutions=1
-2014-06-12 14:48:28.933751: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpXlJHER.tmpd9G_Fs.pyomo.lp
-2014-06-12 14:48:28.956170: Solve completed - number of solutions=1
-2014-06-12 14:48:28.969935: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpWsUeYw.tmpS7iddz.pyomo.lp
-2014-06-12 14:48:28.990054: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0564 First stage cost avg= 108458.0853 Max-Min= 2512.69
-Cumulative run-time=5.58 seconds
-
-Initiating PH iteration=24
-2014-06-12 14:48:29.002482: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpdr0ruc.tmppnF6N7.pyomo.lp
-2014-06-12 14:48:29.021093: Solve completed - number of solutions=1
-2014-06-12 14:48:29.035404: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpXU2WC9.tmpvRsYRA.pyomo.lp
-2014-06-12 14:48:29.052454: Solve completed - number of solutions=1
-2014-06-12 14:48:29.066381: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp7ZJ9qw.tmpW1UyIa.pyomo.lp
-2014-06-12 14:48:29.083341: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-111045.3417
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-2014-06-12 14:48:29.128939: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpFRRDB9.tmpqGh9vX.pyomo.lp
-2014-06-12 14:48:29.150605: Solve completed - number of solutions=1
-2014-06-12 14:48:29.164752: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmprLINrc.tmpa6qeKX.pyomo.lp
-2014-06-12 14:48:29.185623: Solve completed - number of solutions=1
-2014-06-12 14:48:29.200677: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp5Agk0W.tmpOn4GtR.pyomo.lp
-2014-06-12 14:48:29.220827: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0569 First stage cost avg= 108404.1369 Max-Min= 2524.20
-Cumulative run-time=5.81 seconds
-
-Initiating PH iteration=25
-2014-06-12 14:48:29.233576: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpEhW4DI.tmpUUtgJw.pyomo.lp
-2014-06-12 14:48:29.253221: Solve completed - number of solutions=1
-2014-06-12 14:48:29.267955: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpbLihEJ.tmpIIWMnB.pyomo.lp
-2014-06-12 14:48:29.286960: Solve completed - number of solutions=1
-2014-06-12 14:48:29.302466: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpWqdiWr.tmpnOjtlt.pyomo.lp
-2014-06-12 14:48:29.321856: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-111047.7122
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-2014-06-12 14:48:29.367542: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpj_gzoZ.tmpdCvLIT.pyomo.lp
-2014-06-12 14:48:29.388672: Solve completed - number of solutions=1
-2014-06-12 14:48:29.402590: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmppYMON1.tmpXlxuHj.pyomo.lp
-2014-06-12 14:48:29.425167: Solve completed - number of solutions=1
-2014-06-12 14:48:29.440806: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmprfu8cU.tmpLOxXmD.pyomo.lp
-2014-06-12 14:48:29.462470: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0570 First stage cost avg= 108367.4323 Max-Min= 2525.00
-Cumulative run-time=6.05 seconds
-
-Initiating PH iteration=26
-2014-06-12 14:48:29.475570: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpcjyHRv.tmpMn5R3i.pyomo.lp
-2014-06-12 14:48:29.493227: Solve completed - number of solutions=1
-2014-06-12 14:48:29.507558: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpoWHrTn.tmpM7X3Cd.pyomo.lp
-2014-06-12 14:48:29.526468: Solve completed - number of solutions=1
-2014-06-12 14:48:29.540929: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpHxmBka.tmpbqV0HG.pyomo.lp
-2014-06-12 14:48:29.559670: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-111034.9673
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-2014-06-12 14:48:29.604826: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpOl7bV6.tmpSGA0fP.pyomo.lp
-2014-06-12 14:48:29.625914: Solve completed - number of solutions=1
-2014-06-12 14:48:29.640770: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp0_mgvP.tmpACJoqX.pyomo.lp
-2014-06-12 14:48:29.661180: Solve completed - number of solutions=1
-2014-06-12 14:48:29.675270: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpqPXEsf.tmp3EnZbf.pyomo.lp
-2014-06-12 14:48:29.695181: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0570 First stage cost avg= 108346.6000 Max-Min= 2518.95
-Cumulative run-time=6.28 seconds
-
-Initiating PH iteration=27
-2014-06-12 14:48:29.707756: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpiACS_b.tmpMGDlGK.pyomo.lp
-2014-06-12 14:48:29.725593: Solve completed - number of solutions=1
-2014-06-12 14:48:29.739913: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp1ZMKv8.tmpXcgI6r.pyomo.lp
-2014-06-12 14:48:29.758700: Solve completed - number of solutions=1
-2014-06-12 14:48:29.773057: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpDyMrNt.tmpz6la4X.pyomo.lp
-2014-06-12 14:48:29.793756: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-111015.0786
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-2014-06-12 14:48:29.840468: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp0zIvTh.tmpWLOLCQ.pyomo.lp
-2014-06-12 14:48:29.865105: Solve completed - number of solutions=1
-2014-06-12 14:48:29.879219: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpDYPngK.tmptkZufw.pyomo.lp
-2014-06-12 14:48:29.899661: Solve completed - number of solutions=1
-2014-06-12 14:48:29.914823: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpuF1uX8.tmp2FH3ng.pyomo.lp
-2014-06-12 14:48:29.939293: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0569 First stage cost avg= 108338.3666 Max-Min= 2509.55
-Cumulative run-time=6.53 seconds
-
-Initiating PH iteration=28
-2014-06-12 14:48:29.953581: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp2h5mOT.tmpjXK1iF.pyomo.lp
-2014-06-12 14:48:29.974534: Solve completed - number of solutions=1
-2014-06-12 14:48:29.990881: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpM6dsYv.tmpYp5JvN.pyomo.lp
-2014-06-12 14:48:30.008060: Solve completed - number of solutions=1
-2014-06-12 14:48:30.023270: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpRSNGzM.tmpG9KT6Z.pyomo.lp
-2014-06-12 14:48:30.040672: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110994.0589
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-2014-06-12 14:48:30.087540: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp0f0rjU.tmplmC5IN.pyomo.lp
-2014-06-12 14:48:30.108704: Solve completed - number of solutions=1
-2014-06-12 14:48:30.122522: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpvl6NlU.tmp9e4FJ0.pyomo.lp
-2014-06-12 14:48:30.142121: Solve completed - number of solutions=1
-2014-06-12 14:48:30.155997: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpckzD5K.tmpVxxhGb.pyomo.lp
-2014-06-12 14:48:30.177754: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0568 First stage cost avg= 108338.8015 Max-Min= 2499.51
-Cumulative run-time=6.77 seconds
-
-Initiating PH iteration=29
-2014-06-12 14:48:30.191493: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpVH_aXd.tmpaye9Xm.pyomo.lp
-2014-06-12 14:48:30.208085: Solve completed - number of solutions=1
-2014-06-12 14:48:30.222525: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp13qVKv.tmp75U9d2.pyomo.lp
-2014-06-12 14:48:30.240116: Solve completed - number of solutions=1
-2014-06-12 14:48:30.254426: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpZKm1hS.tmpmeEhnC.pyomo.lp
-2014-06-12 14:48:30.271898: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110975.7531
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-2014-06-12 14:48:30.317851: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpZPccRf.tmp1ZDBHa.pyomo.lp
-2014-06-12 14:48:30.338891: Solve completed - number of solutions=1
-2014-06-12 14:48:30.353437: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpWs6kXB.tmpRWL4hE.pyomo.lp
-2014-06-12 14:48:30.374736: Solve completed - number of solutions=1
-2014-06-12 14:48:30.389744: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmplY8BZz.tmpU5riKR.pyomo.lp
-2014-06-12 14:48:30.410525: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0566 First stage cost avg= 108344.1874 Max-Min= 2490.61
-Cumulative run-time=7.00 seconds
-
-Initiating PH iteration=30
-2014-06-12 14:48:30.424000: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpDGb31i.tmpbIHDKO.pyomo.lp
-2014-06-12 14:48:30.441619: Solve completed - number of solutions=1
-2014-06-12 14:48:30.455352: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmppfrj6N.tmpN12MGR.pyomo.lp
-2014-06-12 14:48:30.472475: Solve completed - number of solutions=1
-2014-06-12 14:48:30.486614: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpkqH28O.tmp0WUX9M.pyomo.lp
-2014-06-12 14:48:30.504662: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110962.0614
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-2014-06-12 14:48:30.550056: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmptkeRd8.tmpjEwmWt.pyomo.lp
-2014-06-12 14:48:30.569975: Solve completed - number of solutions=1
-2014-06-12 14:48:30.583985: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp2bm9gO.tmpjRU7Cd.pyomo.lp
-2014-06-12 14:48:30.603607: Solve completed - number of solutions=1
-2014-06-12 14:48:30.617508: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpkP0s7H.tmpt3anvk.pyomo.lp
-2014-06-12 14:48:30.638066: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0564 First stage cost avg= 108351.5198 Max-Min= 2483.77
-Cumulative run-time=7.23 seconds
-
-Initiating PH iteration=31
-2014-06-12 14:48:30.667350: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp0FEIzn.tmpOTgwMO.pyomo.lp
-2014-06-12 14:48:30.685886: Solve completed - number of solutions=1
-2014-06-12 14:48:30.700772: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp6qa3WL.tmp4lOVli.pyomo.lp
-2014-06-12 14:48:30.720060: Solve completed - number of solutions=1
-2014-06-12 14:48:30.734553: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpK7onfU.tmp4BlE4f.pyomo.lp
-2014-06-12 14:48:30.753067: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110953.3937
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-2014-06-12 14:48:30.798194: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp1Oighj.tmpMBhL6a.pyomo.lp
-2014-06-12 14:48:30.821035: Solve completed - number of solutions=1
-2014-06-12 14:48:30.834782: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp4xQrwC.tmpPbKtkB.pyomo.lp
-2014-06-12 14:48:30.854255: Solve completed - number of solutions=1
-2014-06-12 14:48:30.868080: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpQBRcFh.tmpgGQqhh.pyomo.lp
-2014-06-12 14:48:30.888466: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108358.6998 Max-Min= 2479.23
-Cumulative run-time=7.48 seconds
-
-Initiating PH iteration=32
-2014-06-12 14:48:30.901381: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpxq_BGx.tmpb52ffn.pyomo.lp
-2014-06-12 14:48:30.921420: Solve completed - number of solutions=1
-2014-06-12 14:48:30.935271: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpRcDFgQ.tmpH2mL4I.pyomo.lp
-2014-06-12 14:48:30.953618: Solve completed - number of solutions=1
-2014-06-12 14:48:30.968925: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpyHHCq9.tmpr8wyNG.pyomo.lp
-2014-06-12 14:48:30.987450: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110949.1875
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-2014-06-12 14:48:31.032481: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmporqrSb.tmphX8aRz.pyomo.lp
-2014-06-12 14:48:31.054135: Solve completed - number of solutions=1
-2014-06-12 14:48:31.068043: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpCdZuKk.tmpd_NxBe.pyomo.lp
-2014-06-12 14:48:31.088504: Solve completed - number of solutions=1
-2014-06-12 14:48:31.102400: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpdjKcgk.tmpouPsRq.pyomo.lp
-2014-06-12 14:48:31.123218: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0562 First stage cost avg= 108364.5087 Max-Min= 2476.77
-Cumulative run-time=7.71 seconds
-
-Initiating PH iteration=33
-2014-06-12 14:48:31.136763: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpyKCcmh.tmpC_0Geg.pyomo.lp
-2014-06-12 14:48:31.153803: Solve completed - number of solutions=1
-2014-06-12 14:48:31.167833: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpRneLcr.tmpZqM9LB.pyomo.lp
-2014-06-12 14:48:31.186588: Solve completed - number of solutions=1
-2014-06-12 14:48:31.200950: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpKJan2t.tmpcJm7pU.pyomo.lp
-2014-06-12 14:48:31.218754: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110948.3798
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-2014-06-12 14:48:31.265570: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpuGLLDl.tmpCqLkrW.pyomo.lp
-2014-06-12 14:48:31.287476: Solve completed - number of solutions=1
-2014-06-12 14:48:31.301295: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpWgSkpU.tmpwMfLoK.pyomo.lp
-2014-06-12 14:48:31.321616: Solve completed - number of solutions=1
-2014-06-12 14:48:31.336151: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpq745bH.tmp_odMUk.pyomo.lp
-2014-06-12 14:48:31.356228: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0562 First stage cost avg= 108368.4521 Max-Min= 2475.96
-Cumulative run-time=7.94 seconds
-
-Initiating PH iteration=34
-2014-06-12 14:48:31.369090: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpBZrFbL.tmpy6fviO.pyomo.lp
-2014-06-12 14:48:31.387639: Solve completed - number of solutions=1
-2014-06-12 14:48:31.401468: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpx6ZtKT.tmpKXaBGb.pyomo.lp
-2014-06-12 14:48:31.419802: Solve completed - number of solutions=1
-2014-06-12 14:48:31.434557: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpeL5KOv.tmp7uAfH2.pyomo.lp
-2014-06-12 14:48:31.452052: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110949.7749
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-2014-06-12 14:48:31.498151: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpMVZlmd.tmpdfNWRp.pyomo.lp
-2014-06-12 14:48:31.518723: Solve completed - number of solutions=1
-2014-06-12 14:48:31.533015: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp4jpCNm.tmp6EHNFl.pyomo.lp
-2014-06-12 14:48:31.554201: Solve completed - number of solutions=1
-2014-06-12 14:48:31.569280: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmper8_FV.tmp8b9oFl.pyomo.lp
-2014-06-12 14:48:31.588503: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0562 First stage cost avg= 108370.5509 Max-Min= 2476.24
-Cumulative run-time=8.18 seconds
-
-Initiating PH iteration=35
-2014-06-12 14:48:31.601336: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp9XFxzO.tmp6jbPMh.pyomo.lp
-2014-06-12 14:48:31.618993: Solve completed - number of solutions=1
-2014-06-12 14:48:31.632762: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpNE5QoP.tmpQhEujG.pyomo.lp
-2014-06-12 14:48:31.650201: Solve completed - number of solutions=1
-2014-06-12 14:48:31.665080: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpW0Xd55.tmpy8cgxg.pyomo.lp
-2014-06-12 14:48:31.683253: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110952.2889
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-2014-06-12 14:48:31.729497: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmplZQtHs.tmpYgt6tx.pyomo.lp
-2014-06-12 14:48:31.751459: Solve completed - number of solutions=1
-2014-06-12 14:48:31.765446: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpWQXbJM.tmpuuKQUr.pyomo.lp
-2014-06-12 14:48:31.785251: Solve completed - number of solutions=1
-2014-06-12 14:48:31.799106: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpmAbwe4.tmphLinzP.pyomo.lp
-2014-06-12 14:48:31.819130: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0562 First stage cost avg= 108371.1311 Max-Min= 2477.13
-Cumulative run-time=8.41 seconds
-
-Initiating PH iteration=36
-2014-06-12 14:48:31.831825: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpbLk3xs.tmp42yZtB.pyomo.lp
-2014-06-12 14:48:31.849809: Solve completed - number of solutions=1
-2014-06-12 14:48:31.864246: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpX2MT0b.tmpVRX9PT.pyomo.lp
-2014-06-12 14:48:31.881323: Solve completed - number of solutions=1
-2014-06-12 14:48:31.895969: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpyH__bz.tmpipxuYa.pyomo.lp
-2014-06-12 14:48:31.913584: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110955.0811
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-2014-06-12 14:48:31.959347: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpI5jOjQ.tmpJmEm3q.pyomo.lp
-2014-06-12 14:48:31.980297: Solve completed - number of solutions=1
-2014-06-12 14:48:31.994163: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpdbFwZo.tmpLd2a9v.pyomo.lp
-2014-06-12 14:48:32.014372: Solve completed - number of solutions=1
-2014-06-12 14:48:32.028563: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpgLxdKg.tmplENeLH.pyomo.lp
-2014-06-12 14:48:32.049910: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0562 First stage cost avg= 108370.6488 Max-Min= 2478.22
-Cumulative run-time=8.64 seconds
-
-Initiating PH iteration=37
-2014-06-12 14:48:32.063182: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpXZCpft.tmpuyFBft.pyomo.lp
-2014-06-12 14:48:32.080328: Solve completed - number of solutions=1
-2014-06-12 14:48:32.094154: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpv4BSPp.tmpI8UK0a.pyomo.lp
-2014-06-12 14:48:32.112223: Solve completed - number of solutions=1
-2014-06-12 14:48:32.127435: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpWWl4dx.tmpWWm1Lr.pyomo.lp
-2014-06-12 14:48:32.146399: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110957.5941
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-2014-06-12 14:48:32.193060: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpzG8wlr.tmpY6i7hG.pyomo.lp
-2014-06-12 14:48:32.214089: Solve completed - number of solutions=1
-2014-06-12 14:48:32.227879: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpBml9RR.tmps8GPAy.pyomo.lp
-2014-06-12 14:48:32.248293: Solve completed - number of solutions=1
-2014-06-12 14:48:32.262983: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp5vos0e.tmpB_IMnz.pyomo.lp
-2014-06-12 14:48:32.283290: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108369.5627 Max-Min= 2479.26
-Cumulative run-time=8.87 seconds
-
-Initiating PH iteration=38
-2014-06-12 14:48:32.296158: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpehiCTP.tmpDRMdML.pyomo.lp
-2014-06-12 14:48:32.314741: Solve completed - number of solutions=1
-2014-06-12 14:48:32.329539: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmplYlRAu.tmpsViHYg.pyomo.lp
-2014-06-12 14:48:32.346682: Solve completed - number of solutions=1
-2014-06-12 14:48:32.360767: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpC_5sDL.tmpzdz7ux.pyomo.lp
-2014-06-12 14:48:32.379138: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110959.5335
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-2014-06-12 14:48:32.457405: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpOCohV1.tmpnLTLR2.pyomo.lp
-2014-06-12 14:48:32.477237: Solve completed - number of solutions=1
-2014-06-12 14:48:32.491116: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpkZtFqs.tmpyzXmdV.pyomo.lp
-2014-06-12 14:48:32.512330: Solve completed - number of solutions=1
-2014-06-12 14:48:32.526751: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpaCsino.tmpdzkP57.pyomo.lp
-2014-06-12 14:48:32.546877: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108368.2571 Max-Min= 2480.08
-Cumulative run-time=9.13 seconds
-
-Initiating PH iteration=39
-2014-06-12 14:48:32.559787: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpoQkbE6.tmpR4dsV3.pyomo.lp
-2014-06-12 14:48:32.579508: Solve completed - number of solutions=1
-2014-06-12 14:48:32.593794: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpKiTt7x.tmp_vs7So.pyomo.lp
-2014-06-12 14:48:32.611003: Solve completed - number of solutions=1
-2014-06-12 14:48:32.624806: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp15j0Sk.tmpxm8jK5.pyomo.lp
-2014-06-12 14:48:32.643621: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110960.8119
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-2014-06-12 14:48:32.690950: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpPjXRdW.tmpuvQpln.pyomo.lp
-2014-06-12 14:48:32.712709: Solve completed - number of solutions=1
-2014-06-12 14:48:32.726522: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp15T9v6.tmpGJeog2.pyomo.lp
-2014-06-12 14:48:32.746449: Solve completed - number of solutions=1
-2014-06-12 14:48:32.760284: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp7lW3kd.tmpyie5C_.pyomo.lp
-2014-06-12 14:48:32.780171: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108367.0073 Max-Min= 2480.63
-Cumulative run-time=9.37 seconds
-
-Initiating PH iteration=40
-2014-06-12 14:48:32.793838: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpmPeihb.tmpxA7Zyy.pyomo.lp
-2014-06-12 14:48:32.812269: Solve completed - number of solutions=1
-2014-06-12 14:48:32.826462: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpMc8nho.tmpjlJtsE.pyomo.lp
-2014-06-12 14:48:32.844383: Solve completed - number of solutions=1
-2014-06-12 14:48:32.858176: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmprltywq.tmp10bHzm.pyomo.lp
-2014-06-12 14:48:32.876185: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110961.4827
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-2014-06-12 14:48:32.922314: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp4K3rQT.tmpXsTj3z.pyomo.lp
-2014-06-12 14:48:32.943366: Solve completed - number of solutions=1
-2014-06-12 14:48:32.957765: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpYwtzso.tmpAHA_2M.pyomo.lp
-2014-06-12 14:48:32.978364: Solve completed - number of solutions=1
-2014-06-12 14:48:32.993039: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpu6UM_4.tmpOOrnUI.pyomo.lp
-2014-06-12 14:48:33.013620: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108365.9766 Max-Min= 2480.92
-Cumulative run-time=9.60 seconds
-
-Initiating PH iteration=41
-2014-06-12 14:48:33.026871: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpyIBOd6.tmpFYtLyC.pyomo.lp
-2014-06-12 14:48:33.044634: Solve completed - number of solutions=1
-2014-06-12 14:48:33.058582: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp6nKfys.tmp4SVyyw.pyomo.lp
-2014-06-12 14:48:33.075920: Solve completed - number of solutions=1
-2014-06-12 14:48:33.089771: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpYFxP68.tmpwYr8dt.pyomo.lp
-2014-06-12 14:48:33.106687: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110961.6761
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-2014-06-12 14:48:33.153564: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpRIGQql.tmpU3MB8D.pyomo.lp
-2014-06-12 14:48:33.174918: Solve completed - number of solutions=1
-2014-06-12 14:48:33.189225: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpNWqNMi.tmpKhAqkY.pyomo.lp
-2014-06-12 14:48:33.210028: Solve completed - number of solutions=1
-2014-06-12 14:48:33.224950: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpfXsppH.tmppcq0EM.pyomo.lp
-2014-06-12 14:48:33.246028: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108365.2327 Max-Min= 2481.01
-Cumulative run-time=9.83 seconds
-
-Initiating PH iteration=42
-2014-06-12 14:48:33.260136: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpKbL8cU.tmpHadcog.pyomo.lp
-2014-06-12 14:48:33.277674: Solve completed - number of solutions=1
-2014-06-12 14:48:33.292028: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpDipNTi.tmpw5BnAb.pyomo.lp
-2014-06-12 14:48:33.309334: Solve completed - number of solutions=1
-2014-06-12 14:48:33.323202: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpLrwS4a.tmpTFRs4A.pyomo.lp
-2014-06-12 14:48:33.340464: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110961.5481
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-2014-06-12 14:48:33.386066: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpnDteAF.tmpNMekzH.pyomo.lp
-2014-06-12 14:48:33.407767: Solve completed - number of solutions=1
-2014-06-12 14:48:33.422493: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpTgy2st.tmpQ2FAw4.pyomo.lp
-2014-06-12 14:48:33.442511: Solve completed - number of solutions=1
-2014-06-12 14:48:33.457276: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpGmE1bV.tmp3QaJbF.pyomo.lp
-2014-06-12 14:48:33.476619: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.7733 Max-Min= 2480.94
-Cumulative run-time=10.06 seconds
-
-Initiating PH iteration=43
-2014-06-12 14:48:33.490077: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpvllolh.tmpQlE1bI.pyomo.lp
-2014-06-12 14:48:33.507609: Solve completed - number of solutions=1
-2014-06-12 14:48:33.522388: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpw5PrnU.tmpCOG4E4.pyomo.lp
-2014-06-12 14:48:33.544230: Solve completed - number of solutions=1
-2014-06-12 14:48:33.558196: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpDyUU7o.tmp8pa5m7.pyomo.lp
-2014-06-12 14:48:33.575725: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110961.2454
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-2014-06-12 14:48:33.622006: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpV8Mwso.tmpsqjgRK.pyomo.lp
-2014-06-12 14:48:33.643543: Solve completed - number of solutions=1
-2014-06-12 14:48:33.657424: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpF33UX0.tmp2JxeXZ.pyomo.lp
-2014-06-12 14:48:33.678181: Solve completed - number of solutions=1
-2014-06-12 14:48:33.692059: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmppCY2GO.tmp_L5nNz.pyomo.lp
-2014-06-12 14:48:33.712411: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.5535 Max-Min= 2480.80
-Cumulative run-time=10.30 seconds
-
-Initiating PH iteration=44
-2014-06-12 14:48:33.725241: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp4EWHFu.tmpgstvpI.pyomo.lp
-2014-06-12 14:48:33.742803: Solve completed - number of solutions=1
-2014-06-12 14:48:33.757732: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpV4PQz1.tmpNZ4VcU.pyomo.lp
-2014-06-12 14:48:33.775957: Solve completed - number of solutions=1
-2014-06-12 14:48:33.790556: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpStGKC7.tmpl5jFFa.pyomo.lp
-2014-06-12 14:48:33.809035: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110960.8855
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-2014-06-12 14:48:33.856760: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpHn7CII.tmpnStFd0.pyomo.lp
-2014-06-12 14:48:33.877001: Solve completed - number of solutions=1
-2014-06-12 14:48:33.890871: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpwHijwV.tmp1e2dJQ.pyomo.lp
-2014-06-12 14:48:33.910761: Solve completed - number of solutions=1
-2014-06-12 14:48:33.924746: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp6XbF9a.tmpPIm3wl.pyomo.lp
-2014-06-12 14:48:33.944723: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.5090 Max-Min= 2480.63
-Cumulative run-time=10.53 seconds
-
-Initiating PH iteration=45
-2014-06-12 14:48:33.958341: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpaAcNrU.tmp67PQhV.pyomo.lp
-2014-06-12 14:48:33.976334: Solve completed - number of solutions=1
-2014-06-12 14:48:33.991508: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp3fmzu6.tmpcBYWor.pyomo.lp
-2014-06-12 14:48:34.009682: Solve completed - number of solutions=1
-2014-06-12 14:48:34.023703: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpJOUoAx.tmpw0h9Uz.pyomo.lp
-2014-06-12 14:48:34.040813: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110960.5490
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-2014-06-12 14:48:34.087875: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp7RL2S1.tmpQFMYB3.pyomo.lp
-2014-06-12 14:48:34.109270: Solve completed - number of solutions=1
-2014-06-12 14:48:34.124266: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp1bnMV7.tmpRSC7EQ.pyomo.lp
-2014-06-12 14:48:34.144272: Solve completed - number of solutions=1
-2014-06-12 14:48:34.157977: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpL8WYqj.tmp7ocMJs.pyomo.lp
-2014-06-12 14:48:34.179097: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.5736 Max-Min= 2480.47
-Cumulative run-time=10.77 seconds
-
-Initiating PH iteration=46
-2014-06-12 14:48:34.192003: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpDP_Sep.tmpOLv3Fh.pyomo.lp
-2014-06-12 14:48:34.211753: Solve completed - number of solutions=1
-2014-06-12 14:48:34.226051: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpB7WYzi.tmpNkVjAd.pyomo.lp
-2014-06-12 14:48:34.244629: Solve completed - number of solutions=1
-2014-06-12 14:48:34.259899: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpR8B7WR.tmps2H8Pr.pyomo.lp
-2014-06-12 14:48:34.277721: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110960.2811
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-2014-06-12 14:48:34.323869: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpJBf8fh.tmp0zLDkF.pyomo.lp
-2014-06-12 14:48:34.345808: Solve completed - number of solutions=1
-2014-06-12 14:48:34.360618: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpYpPyMl.tmpN2TROI.pyomo.lp
-2014-06-12 14:48:34.381745: Solve completed - number of solutions=1
-2014-06-12 14:48:34.397782: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpxUlWsD.tmpiReEW_.pyomo.lp
-2014-06-12 14:48:34.417762: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.6907 Max-Min= 2480.34
-Cumulative run-time=11.00 seconds
-
-Initiating PH iteration=47
-2014-06-12 14:48:34.430490: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp77UMLJ.tmpZDtpiB.pyomo.lp
-2014-06-12 14:48:34.448200: Solve completed - number of solutions=1
-2014-06-12 14:48:34.462106: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpDOw4BL.tmpHavqtM.pyomo.lp
-2014-06-12 14:48:34.481309: Solve completed - number of solutions=1
-2014-06-12 14:48:34.495200: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpxb0yfw.tmpc4NsTc.pyomo.lp
-2014-06-12 14:48:34.512672: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110960.0984
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-2014-06-12 14:48:34.560092: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpYJ1xuv.tmpeAyWvy.pyomo.lp
-2014-06-12 14:48:34.580924: Solve completed - number of solutions=1
-2014-06-12 14:48:34.595192: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp9dElx_.tmpbfu2KF.pyomo.lp
-2014-06-12 14:48:34.615596: Solve completed - number of solutions=1
-2014-06-12 14:48:34.629431: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpx1ZlNm.tmpz5TOF7.pyomo.lp
-2014-06-12 14:48:34.650498: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.8179 Max-Min= 2480.24
-Cumulative run-time=11.24 seconds
-
-Initiating PH iteration=48
-2014-06-12 14:48:34.663349: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp7XxN9U.tmpQvQE2H.pyomo.lp
-2014-06-12 14:48:34.680622: Solve completed - number of solutions=1
-2014-06-12 14:48:34.694401: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpoloCWN.tmpLfI1SE.pyomo.lp
-2014-06-12 14:48:34.711530: Solve completed - number of solutions=1
-2014-06-12 14:48:34.725405: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpF8hrPN.tmpRh1Wmg.pyomo.lp
-2014-06-12 14:48:34.742516: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110959.9970
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-2014-06-12 14:48:34.788208: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp5ql_gX.tmpyjokyr.pyomo.lp
-2014-06-12 14:48:34.808875: Solve completed - number of solutions=1
-2014-06-12 14:48:34.822716: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpNBrj0D.tmpLxalRA.pyomo.lp
-2014-06-12 14:48:34.842154: Solve completed - number of solutions=1
-2014-06-12 14:48:34.856024: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp7XEKkY.tmpeUj1YY.pyomo.lp
-2014-06-12 14:48:34.875710: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9287 Max-Min= 2480.19
-Cumulative run-time=11.46 seconds
-
-Initiating PH iteration=49
-2014-06-12 14:48:34.888676: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpdq4zyY.tmp2l66IV.pyomo.lp
-2014-06-12 14:48:34.905723: Solve completed - number of solutions=1
-2014-06-12 14:48:34.919551: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpSHK6iq.tmpzMbSTv.pyomo.lp
-2014-06-12 14:48:34.936832: Solve completed - number of solutions=1
-2014-06-12 14:48:34.951208: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp5s95OL.tmpcJlESC.pyomo.lp
-2014-06-12 14:48:34.971058: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110959.9616
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-2014-06-12 14:48:35.049030: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpbjrFoH.tmpEph2U9.pyomo.lp
-2014-06-12 14:48:35.069349: Solve completed - number of solutions=1
-2014-06-12 14:48:35.083238: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp3FEPeo.tmpBplpHR.pyomo.lp
-2014-06-12 14:48:35.102869: Solve completed - number of solutions=1
-2014-06-12 14:48:35.116724: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpKfLcqN.tmp8xPxM5.pyomo.lp
-2014-06-12 14:48:35.136485: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108365.0097 Max-Min= 2480.16
-Cumulative run-time=11.72 seconds
-
-Initiating PH iteration=50
-2014-06-12 14:48:35.149298: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpkWiM8O.tmpZR5zPU.pyomo.lp
-2014-06-12 14:48:35.166576: Solve completed - number of solutions=1
-2014-06-12 14:48:35.180445: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpBHAhlc.tmpBaRtam.pyomo.lp
-2014-06-12 14:48:35.198469: Solve completed - number of solutions=1
-2014-06-12 14:48:35.213366: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp8U61K6.tmppOd4W0.pyomo.lp
-2014-06-12 14:48:35.230491: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110959.9725
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-2014-06-12 14:48:35.276387: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpCYRBaq.tmpPxhsYz.pyomo.lp
-2014-06-12 14:48:35.297793: Solve completed - number of solutions=1
-2014-06-12 14:48:35.311591: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpRuOsna.tmpgKtjLr.pyomo.lp
-2014-06-12 14:48:35.331056: Solve completed - number of solutions=1
-2014-06-12 14:48:35.344997: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp58Qnq2.tmpMV_asd.pyomo.lp
-2014-06-12 14:48:35.365393: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108365.0582 Max-Min= 2480.16
-Cumulative run-time=11.95 seconds
-
-Initiating PH iteration=51
-2014-06-12 14:48:35.379920: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp2HyAe0.tmpYkniR3.pyomo.lp
-2014-06-12 14:48:35.397125: Solve completed - number of solutions=1
-2014-06-12 14:48:35.410890: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpg0DAur.tmp5DibmJ.pyomo.lp
-2014-06-12 14:48:35.428793: Solve completed - number of solutions=1
-2014-06-12 14:48:35.443638: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpQyGoA0.tmpUzj9SR.pyomo.lp
-2014-06-12 14:48:35.461185: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110960.0094
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-2014-06-12 14:48:35.507454: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp8cI6cB.tmpIpyVk7.pyomo.lp
-2014-06-12 14:48:35.528735: Solve completed - number of solutions=1
-2014-06-12 14:48:35.542556: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp1h4S3J.tmpDMIA7R.pyomo.lp
-2014-06-12 14:48:35.561997: Solve completed - number of solutions=1
-2014-06-12 14:48:35.575840: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmppfLJiG.tmpzRc0M3.pyomo.lp
-2014-06-12 14:48:35.595507: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108365.0782 Max-Min= 2480.17
-Cumulative run-time=12.18 seconds
-
-Initiating PH iteration=52
-2014-06-12 14:48:35.609704: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpL45Vkk.tmpTOpJOm.pyomo.lp
-2014-06-12 14:48:35.628028: Solve completed - number of solutions=1
-2014-06-12 14:48:35.641832: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpEx1BNZ.tmpPkb0C9.pyomo.lp
-2014-06-12 14:48:35.659756: Solve completed - number of solutions=1
-2014-06-12 14:48:35.674418: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpfFnJ2c.tmphzLWKP.pyomo.lp
-2014-06-12 14:48:35.691636: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110960.0563
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-2014-06-12 14:48:35.738436: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp0a0oes.tmp9AoncX.pyomo.lp
-2014-06-12 14:48:35.759489: Solve completed - number of solutions=1
-2014-06-12 14:48:35.773952: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpwRvbO0.tmpYblpKX.pyomo.lp
-2014-06-12 14:48:35.793593: Solve completed - number of solutions=1
-2014-06-12 14:48:35.807436: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpxGNXH2.tmpzV2BNo.pyomo.lp
-2014-06-12 14:48:35.827287: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108365.0767 Max-Min= 2480.19
-Cumulative run-time=12.41 seconds
-
-Initiating PH iteration=53
-2014-06-12 14:48:35.872591: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpOoHqMf.tmpKbfKAD.pyomo.lp
-2014-06-12 14:48:35.890735: Solve completed - number of solutions=1
-2014-06-12 14:48:35.905464: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmphTiKok.tmpiPry4l.pyomo.lp
-2014-06-12 14:48:35.922834: Solve completed - number of solutions=1
-2014-06-12 14:48:35.936545: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpl1Y5Uc.tmpQfnbik.pyomo.lp
-2014-06-12 14:48:35.954648: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110960.1019
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-2014-06-12 14:48:36.032967: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpn8Bmgb.tmpH2Sr0y.pyomo.lp
-2014-06-12 14:48:36.052786: Solve completed - number of solutions=1
-2014-06-12 14:48:36.066747: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpm7Sq2f.tmpxJv1FU.pyomo.lp
-2014-06-12 14:48:36.086272: Solve completed - number of solutions=1
-2014-06-12 14:48:36.100287: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpr9EA2V.tmps9Gl5L.pyomo.lp
-2014-06-12 14:48:36.121924: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108365.0617 Max-Min= 2480.21
-Cumulative run-time=12.71 seconds
-
-Initiating PH iteration=54
-2014-06-12 14:48:36.134883: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpvfuqPl.tmpbc49YG.pyomo.lp
-2014-06-12 14:48:36.152901: Solve completed - number of solutions=1
-2014-06-12 14:48:36.166724: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpns67mD.tmpkYkyTo.pyomo.lp
-2014-06-12 14:48:36.183714: Solve completed - number of solutions=1
-2014-06-12 14:48:36.197463: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpTBZQnQ.tmpEhbQ47.pyomo.lp
-2014-06-12 14:48:36.214669: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110960.1392
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-2014-06-12 14:48:36.260813: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpSId20Z.tmpwaJ5jf.pyomo.lp
-2014-06-12 14:48:36.281056: Solve completed - number of solutions=1
-2014-06-12 14:48:36.294977: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpGZIaOE.tmpVAKRgj.pyomo.lp
-2014-06-12 14:48:36.314479: Solve completed - number of solutions=1
-2014-06-12 14:48:36.328339: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpSwfjTP.tmpxhyiWY.pyomo.lp
-2014-06-12 14:48:36.348334: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108365.0405 Max-Min= 2480.23
-Cumulative run-time=12.94 seconds
-
-Initiating PH iteration=55
-2014-06-12 14:48:36.361332: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpOk7vwj.tmp6ESN42.pyomo.lp
-2014-06-12 14:48:36.379059: Solve completed - number of solutions=1
-2014-06-12 14:48:36.393636: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpNr5Z6J.tmp8IuUec.pyomo.lp
-2014-06-12 14:48:36.411333: Solve completed - number of solutions=1
-2014-06-12 14:48:36.425340: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpFJSqRa.tmp6dQ6mP.pyomo.lp
-2014-06-12 14:48:36.443904: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110960.1656
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-2014-06-12 14:48:36.523502: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpoYhrGM.tmpgZELKk.pyomo.lp
-2014-06-12 14:48:36.543617: Solve completed - number of solutions=1
-2014-06-12 14:48:36.558346: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp8BRlGm.tmppP1j2n.pyomo.lp
-2014-06-12 14:48:36.579178: Solve completed - number of solutions=1
-2014-06-12 14:48:36.593336: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpkzRiR9.tmp1_Ww9I.pyomo.lp
-2014-06-12 14:48:36.613478: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108365.0185 Max-Min= 2480.24
-Cumulative run-time=13.20 seconds
-
-Initiating PH iteration=56
-2014-06-12 14:48:36.626456: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpCU944j.tmppu3sqd.pyomo.lp
-2014-06-12 14:48:36.644713: Solve completed - number of solutions=1
-2014-06-12 14:48:36.658945: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpsZjIsI.tmpsdguIR.pyomo.lp
-2014-06-12 14:48:36.676319: Solve completed - number of solutions=1
-2014-06-12 14:48:36.690066: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpBxQjHP.tmpa5mDr0.pyomo.lp
-2014-06-12 14:48:36.707727: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110960.1811
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-2014-06-12 14:48:36.785400: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpM7RYMO.tmpHz6_Qn.pyomo.lp
-2014-06-12 14:48:36.806730: Solve completed - number of solutions=1
-2014-06-12 14:48:36.821132: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpvkhhCF.tmpmE8yiD.pyomo.lp
-2014-06-12 14:48:36.842533: Solve completed - number of solutions=1
-2014-06-12 14:48:36.856820: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpgg3obA.tmpXgYGRL.pyomo.lp
-2014-06-12 14:48:36.876693: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9993 Max-Min= 2480.24
-Cumulative run-time=13.46 seconds
-
-Initiating PH iteration=57
-2014-06-12 14:48:36.889498: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmptAuFwn.tmp7QB0qQ.pyomo.lp
-2014-06-12 14:48:36.908025: Solve completed - number of solutions=1
-2014-06-12 14:48:36.921799: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpbWw_tG.tmpORDIRP.pyomo.lp
-2014-06-12 14:48:36.939038: Solve completed - number of solutions=1
-2014-06-12 14:48:36.953591: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpsNc3bd.tmpwlgfG1.pyomo.lp
-2014-06-12 14:48:36.971819: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110960.1874
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-2014-06-12 14:48:37.017808: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpzjHoq9.tmpWnHiq6.pyomo.lp
-2014-06-12 14:48:37.039358: Solve completed - number of solutions=1
-2014-06-12 14:48:37.053161: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp4uFbpv.tmpDbVMZI.pyomo.lp
-2014-06-12 14:48:37.073861: Solve completed - number of solutions=1
-2014-06-12 14:48:37.089194: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpGOZtKC.tmp5HwlvO.pyomo.lp
-2014-06-12 14:48:37.109550: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9846 Max-Min= 2480.25
-Cumulative run-time=13.70 seconds
-
-Initiating PH iteration=58
-2014-06-12 14:48:37.122606: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpBttzMM.tmpQOj1Tx.pyomo.lp
-2014-06-12 14:48:37.140017: Solve completed - number of solutions=1
-2014-06-12 14:48:37.153941: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpyCIoHQ.tmpZnrcu9.pyomo.lp
-2014-06-12 14:48:37.171141: Solve completed - number of solutions=1
-2014-06-12 14:48:37.185017: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp4WH0QG.tmpYWf31S.pyomo.lp
-2014-06-12 14:48:37.202331: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110960.1871
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-2014-06-12 14:48:37.280470: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpsgi7WU.tmpTdtzKC.pyomo.lp
-2014-06-12 14:48:37.300952: Solve completed - number of solutions=1
-2014-06-12 14:48:37.315086: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpROtlbN.tmpsYaGNh.pyomo.lp
-2014-06-12 14:48:37.335672: Solve completed - number of solutions=1
-2014-06-12 14:48:37.349925: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpQTHp1J.tmp3gbSKL.pyomo.lp
-2014-06-12 14:48:37.369635: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9749 Max-Min= 2480.25
-Cumulative run-time=13.96 seconds
-
-Initiating PH iteration=59
-2014-06-12 14:48:37.382283: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp9UZOfO.tmpz5c1nW.pyomo.lp
-2014-06-12 14:48:37.400734: Solve completed - number of solutions=1
-2014-06-12 14:48:37.415514: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpOboe9u.tmpYoPfw2.pyomo.lp
-2014-06-12 14:48:37.433679: Solve completed - number of solutions=1
-2014-06-12 14:48:37.448858: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpqMDXHJ.tmpEtdtZr.pyomo.lp
-2014-06-12 14:48:37.467970: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110960.1829
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-2014-06-12 14:48:37.546246: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpxGJxxZ.tmpWn8gIS.pyomo.lp
-2014-06-12 14:48:37.566217: Solve completed - number of solutions=1
-2014-06-12 14:48:37.581146: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpomcV8k.tmpWnJ6Oc.pyomo.lp
-2014-06-12 14:48:37.601611: Solve completed - number of solutions=1
-2014-06-12 14:48:37.615652: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpgoTBYS.tmpwNl3vL.pyomo.lp
-2014-06-12 14:48:37.635710: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9697 Max-Min= 2480.25
-Cumulative run-time=14.22 seconds
-
-Initiating PH iteration=60
-2014-06-12 14:48:37.649017: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpbVHAZ2.tmpAgWFtj.pyomo.lp
-2014-06-12 14:48:37.666836: Solve completed - number of solutions=1
-2014-06-12 14:48:37.680994: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpWYzw37.tmpFLDUU3.pyomo.lp
-2014-06-12 14:48:37.699644: Solve completed - number of solutions=1
-2014-06-12 14:48:37.714104: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpldxwUo.tmpL6k2cW.pyomo.lp
-2014-06-12 14:48:37.732325: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110960.1770
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-2014-06-12 14:48:37.810739: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpzbJqB0.tmpz5oWzx.pyomo.lp
-2014-06-12 14:48:37.830419: Solve completed - number of solutions=1
-2014-06-12 14:48:37.844696: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpQqbYd8.tmpP3SYZS.pyomo.lp
-2014-06-12 14:48:37.864667: Solve completed - number of solutions=1
-2014-06-12 14:48:37.878550: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpe7TBaD.tmpsszZyA.pyomo.lp
-2014-06-12 14:48:37.898626: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9679 Max-Min= 2480.24
-Cumulative run-time=14.49 seconds
-
-Initiating PH iteration=61
-2014-06-12 14:48:37.911682: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmphZyvzS.tmpYDQVyQ.pyomo.lp
-2014-06-12 14:48:37.930822: Solve completed - number of solutions=1
-2014-06-12 14:48:37.946956: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpyo5sHR.tmprTmLgD.pyomo.lp
-2014-06-12 14:48:37.965472: Solve completed - number of solutions=1
-2014-06-12 14:48:37.979869: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpDMngIu.tmpSZTrfI.pyomo.lp
-2014-06-12 14:48:37.997334: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110960.1710
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-2014-06-12 14:48:38.075485: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp5N9TKK.tmpBCFazY.pyomo.lp
-2014-06-12 14:48:38.097878: Solve completed - number of solutions=1
-2014-06-12 14:48:38.112372: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpQGkgAD.tmpOy4aTg.pyomo.lp
-2014-06-12 14:48:38.131957: Solve completed - number of solutions=1
-2014-06-12 14:48:38.145885: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpUX3BtA.tmpmQjTEP.pyomo.lp
-2014-06-12 14:48:38.166335: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9684 Max-Min= 2480.24
-Cumulative run-time=14.75 seconds
-
-Initiating PH iteration=62
-2014-06-12 14:48:38.179912: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpYwK91t.tmpMsyVjf.pyomo.lp
-2014-06-12 14:48:38.197699: Solve completed - number of solutions=1
-2014-06-12 14:48:38.211625: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpp7Brxn.tmp4mO0q5.pyomo.lp
-2014-06-12 14:48:38.228841: Solve completed - number of solutions=1
-2014-06-12 14:48:38.242869: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmphqpX26.tmpXM4pgn.pyomo.lp
-2014-06-12 14:48:38.259900: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110960.1659
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-2014-06-12 14:48:38.337399: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpsVYN2s.tmpLEkehK.pyomo.lp
-2014-06-12 14:48:38.358158: Solve completed - number of solutions=1
-2014-06-12 14:48:38.372174: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpXJxnkC.tmpGpst2A.pyomo.lp
-2014-06-12 14:48:38.394161: Solve completed - number of solutions=1
-2014-06-12 14:48:38.408489: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp2fbFFA.tmpvrS2be.pyomo.lp
-2014-06-12 14:48:38.428406: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9701 Max-Min= 2480.24
-Cumulative run-time=15.02 seconds
-
-Initiating PH iteration=63
-2014-06-12 14:48:38.441139: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpGd2lJS.tmpd9Yyev.pyomo.lp
-2014-06-12 14:48:38.458645: Solve completed - number of solutions=1
-2014-06-12 14:48:38.472626: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpqO8F9t.tmp57uBvb.pyomo.lp
-2014-06-12 14:48:38.490957: Solve completed - number of solutions=1
-2014-06-12 14:48:38.505070: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpivjoaY.tmp5b8QB1.pyomo.lp
-2014-06-12 14:48:38.523677: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110960.1622
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-2014-06-12 14:48:38.602198: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpk0WXwW.tmpVNQgsw.pyomo.lp
-2014-06-12 14:48:38.623427: Solve completed - number of solutions=1
-2014-06-12 14:48:38.638800: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpJnwwpL.tmplJgzci.pyomo.lp
-2014-06-12 14:48:38.658389: Solve completed - number of solutions=1
-2014-06-12 14:48:38.673106: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpVBXRo7.tmpBZA0MF.pyomo.lp
-2014-06-12 14:48:38.693848: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9723 Max-Min= 2480.24
-Cumulative run-time=15.28 seconds
-
-Initiating PH iteration=64
-2014-06-12 14:48:38.707381: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp0k2ILY.tmpKey9pM.pyomo.lp
-2014-06-12 14:48:38.724937: Solve completed - number of solutions=1
-2014-06-12 14:48:38.738570: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpgGGRy9.tmpGtm9ny.pyomo.lp
-2014-06-12 14:48:38.756595: Solve completed - number of solutions=1
-2014-06-12 14:48:38.771840: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpz2sz1i.tmpLAtcLC.pyomo.lp
-2014-06-12 14:48:38.789082: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110960.1599
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-2014-06-12 14:48:38.867968: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmph5yZ_L.tmp58VlL7.pyomo.lp
-2014-06-12 14:48:38.887879: Solve completed - number of solutions=1
-2014-06-12 14:48:38.902387: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpCLcxyS.tmpz_Bvb_.pyomo.lp
-2014-06-12 14:48:38.923167: Solve completed - number of solutions=1
-2014-06-12 14:48:38.937737: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpGkcTQ5.tmpYgGRYT.pyomo.lp
-2014-06-12 14:48:38.959307: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9743 Max-Min= 2480.23
-Cumulative run-time=15.55 seconds
-
-Initiating PH iteration=65
-2014-06-12 14:48:38.973913: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpTeDb4w.tmpm4GrB2.pyomo.lp
-2014-06-12 14:48:38.992480: Solve completed - number of solutions=1
-2014-06-12 14:48:39.006862: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpIymRTP.tmpoXDpsi.pyomo.lp
-2014-06-12 14:48:39.026275: Solve completed - number of solutions=1
-2014-06-12 14:48:39.040821: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpBT4Ihv.tmpE8w1Bl.pyomo.lp
-2014-06-12 14:48:39.057978: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110960.1589
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-2014-06-12 14:48:39.135888: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpfi_pib.tmpucrrOt.pyomo.lp
-2014-06-12 14:48:39.156694: Solve completed - number of solutions=1
-2014-06-12 14:48:39.171186: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpVriTe7.tmpjNMGgQ.pyomo.lp
-2014-06-12 14:48:39.191867: Solve completed - number of solutions=1
-2014-06-12 14:48:39.205763: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpBbQzlx.tmpCSGOKo.pyomo.lp
-2014-06-12 14:48:39.225715: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9759 Max-Min= 2480.23
-Cumulative run-time=15.81 seconds
-
-Initiating PH iteration=66
-2014-06-12 14:48:39.238315: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpXBFwE_.tmpADj229.pyomo.lp
-2014-06-12 14:48:39.256428: Solve completed - number of solutions=1
-2014-06-12 14:48:39.270356: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmprxgvXi.tmpxTjXhT.pyomo.lp
-2014-06-12 14:48:39.287671: Solve completed - number of solutions=1
-2014-06-12 14:48:39.302482: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpd5LMJs.tmpZMkHdJ.pyomo.lp
-2014-06-12 14:48:39.320272: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110960.1588
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-2014-06-12 14:48:39.398969: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpLL0E7V.tmpdgKBrb.pyomo.lp
-2014-06-12 14:48:39.418736: Solve completed - number of solutions=1
-2014-06-12 14:48:39.432915: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpf19uVU.tmpxt2s7V.pyomo.lp
-2014-06-12 14:48:39.453260: Solve completed - number of solutions=1
-2014-06-12 14:48:39.467179: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpzGMzsV.tmp6yFVMp.pyomo.lp
-2014-06-12 14:48:39.487867: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9770 Max-Min= 2480.23
-Cumulative run-time=16.07 seconds
-
-Initiating PH iteration=67
-2014-06-12 14:48:39.501101: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpZ0jfw8.tmpyev2u9.pyomo.lp
-2014-06-12 14:48:39.518913: Solve completed - number of solutions=1
-2014-06-12 14:48:39.533670: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp3Q0IJN.tmp2GMgmn.pyomo.lp
-2014-06-12 14:48:39.551895: Solve completed - number of solutions=1
-2014-06-12 14:48:39.566485: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpIzp4DV.tmpAHsxj4.pyomo.lp
-2014-06-12 14:48:39.584279: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110960.1593
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-2014-06-12 14:48:39.662172: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp1ypu0Q.tmpG0thWi.pyomo.lp
-2014-06-12 14:48:39.682147: Solve completed - number of solutions=1
-2014-06-12 14:48:39.697103: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpbspoNK.tmpgX2OoS.pyomo.lp
-2014-06-12 14:48:39.716882: Solve completed - number of solutions=1
-2014-06-12 14:48:39.730616: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpsUbF9z.tmpYqwEAz.pyomo.lp
-2014-06-12 14:48:39.750623: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9775 Max-Min= 2480.23
-Cumulative run-time=16.34 seconds
-
-Initiating PH iteration=68
-2014-06-12 14:48:39.764156: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpNtj3yl.tmpT8PuFb.pyomo.lp
-2014-06-12 14:48:39.782929: Solve completed - number of solutions=1
-2014-06-12 14:48:39.797407: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpI_H9Os.tmpMMIFcv.pyomo.lp
-2014-06-12 14:48:39.814756: Solve completed - number of solutions=1
-2014-06-12 14:48:39.828595: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpTZw3r3.tmpoKKGSq.pyomo.lp
-2014-06-12 14:48:39.845927: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110960.1600
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-2014-06-12 14:48:39.924042: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpJyVsFM.tmpTzXkrJ.pyomo.lp
-2014-06-12 14:48:39.944423: Solve completed - number of solutions=1
-2014-06-12 14:48:39.958282: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp2U9Dr7.tmp_P3SgL.pyomo.lp
-2014-06-12 14:48:39.978979: Solve completed - number of solutions=1
-2014-06-12 14:48:39.993523: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpFbSfil.tmpcnzCwF.pyomo.lp
-2014-06-12 14:48:40.013764: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9776 Max-Min= 2480.23
-Cumulative run-time=16.60 seconds
-
-Initiating PH iteration=69
-2014-06-12 14:48:40.026289: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpcgvrSJ.tmpmeZT0A.pyomo.lp
-2014-06-12 14:48:40.044067: Solve completed - number of solutions=1
-2014-06-12 14:48:40.058433: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpltRQqb.tmp39umjt.pyomo.lp
-2014-06-12 14:48:40.075792: Solve completed - number of solutions=1
-2014-06-12 14:48:40.089574: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpZLrmsG.tmpAOtvwe.pyomo.lp
-2014-06-12 14:48:40.106819: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110960.1608
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-2014-06-12 14:48:40.184526: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpYR6SM4.tmpGz9NHU.pyomo.lp
-2014-06-12 14:48:40.206786: Solve completed - number of solutions=1
-2014-06-12 14:48:40.221684: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpnSgrXA.tmpSUK3SX.pyomo.lp
-2014-06-12 14:48:40.243724: Solve completed - number of solutions=1
-2014-06-12 14:48:40.258480: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp4GWiBx.tmpLbX4hq.pyomo.lp
-2014-06-12 14:48:40.281084: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9775 Max-Min= 2480.23
-Cumulative run-time=16.87 seconds
-
-Initiating PH iteration=70
-2014-06-12 14:48:40.294539: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpZiea8f.tmp6bKdvE.pyomo.lp
-2014-06-12 14:48:40.313765: Solve completed - number of solutions=1
-2014-06-12 14:48:40.328373: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpdNa5eQ.tmpC49o0q.pyomo.lp
-2014-06-12 14:48:40.346048: Solve completed - number of solutions=1
-2014-06-12 14:48:40.360115: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpmuQN64.tmpGJGRoX.pyomo.lp
-2014-06-12 14:48:40.378613: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110960.1615
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-2014-06-12 14:48:40.457137: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmprJ2u7W.tmpg8MFDo.pyomo.lp
-2014-06-12 14:48:40.477672: Solve completed - number of solutions=1
-2014-06-12 14:48:40.492426: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpkH1bOp.tmpWHhruu.pyomo.lp
-2014-06-12 14:48:40.512265: Solve completed - number of solutions=1
-2014-06-12 14:48:40.527506: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpEJGSQK.tmpNfn2g4.pyomo.lp
-2014-06-12 14:48:40.547801: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9771 Max-Min= 2480.23
-Cumulative run-time=17.13 seconds
-
-Initiating PH iteration=71
-2014-06-12 14:48:40.560261: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpwTDD37.tmp9yEqMB.pyomo.lp
-2014-06-12 14:48:40.577604: Solve completed - number of solutions=1
-2014-06-12 14:48:40.591356: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpSVHCbL.tmpa2mT3z.pyomo.lp
-2014-06-12 14:48:40.610157: Solve completed - number of solutions=1
-2014-06-12 14:48:40.624724: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpfcrGtP.tmpv0X_lh.pyomo.lp
-2014-06-12 14:48:40.643965: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110960.1620
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-2014-06-12 14:48:40.721711: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpCijsWT.tmpUezzoM.pyomo.lp
-2014-06-12 14:48:40.742666: Solve completed - number of solutions=1
-2014-06-12 14:48:40.756684: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpUmnXWk.tmpK9i5bh.pyomo.lp
-2014-06-12 14:48:40.776614: Solve completed - number of solutions=1
-2014-06-12 14:48:40.790649: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpME7fqz.tmpRfo3tI.pyomo.lp
-2014-06-12 14:48:40.812234: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9768 Max-Min= 2480.23
-Cumulative run-time=17.40 seconds
-
-Initiating PH iteration=72
-2014-06-12 14:48:40.825803: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpSr0yIc.tmpX_sa3k.pyomo.lp
-2014-06-12 14:48:40.845411: Solve completed - number of solutions=1
-2014-06-12 14:48:40.860515: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpz1iVwv.tmpkgLnn2.pyomo.lp
-2014-06-12 14:48:40.880478: Solve completed - number of solutions=1
-2014-06-12 14:48:40.895663: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp0670qg.tmpjpAsQX.pyomo.lp
-2014-06-12 14:48:40.916976: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110960.1624
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-2014-06-12 14:48:40.995530: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpJ6l_9e.tmpk9nJt_.pyomo.lp
-2014-06-12 14:48:41.017520: Solve completed - number of solutions=1
-2014-06-12 14:48:41.031791: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpMuKGPU.tmpIfLlPO.pyomo.lp
-2014-06-12 14:48:41.054905: Solve completed - number of solutions=1
-2014-06-12 14:48:41.069633: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpPlHocF.tmpuG5axi.pyomo.lp
-2014-06-12 14:48:41.091206: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9764 Max-Min= 2480.23
-Cumulative run-time=17.68 seconds
-
-Initiating PH iteration=73
-2014-06-12 14:48:41.120403: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpT9O9mC.tmpzyrBq7.pyomo.lp
-2014-06-12 14:48:41.138629: Solve completed - number of solutions=1
-2014-06-12 14:48:41.152521: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpTOVJtF.tmpm7f7CM.pyomo.lp
-2014-06-12 14:48:41.170653: Solve completed - number of solutions=1
-2014-06-12 14:48:41.184504: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpFJWYSt.tmpZLaMHG.pyomo.lp
-2014-06-12 14:48:41.201508: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110960.1626
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-2014-06-12 14:48:41.280995: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpZD_RJc.tmpxYrdsT.pyomo.lp
-2014-06-12 14:48:41.302580: Solve completed - number of solutions=1
-2014-06-12 14:48:41.316749: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmptdiw5B.tmpXswGXf.pyomo.lp
-2014-06-12 14:48:41.336898: Solve completed - number of solutions=1
-2014-06-12 14:48:41.351041: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmphDtUK_.tmp_SMip1.pyomo.lp
-2014-06-12 14:48:41.372648: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9761 Max-Min= 2480.23
-Cumulative run-time=17.96 seconds
-
-Initiating PH iteration=74
-2014-06-12 14:48:41.385209: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpeeHhIj.tmpID0fR8.pyomo.lp
-2014-06-12 14:48:41.405373: Solve completed - number of solutions=1
-2014-06-12 14:48:41.422339: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpUF2dOD.tmpBE5zmw.pyomo.lp
-2014-06-12 14:48:41.441505: Solve completed - number of solutions=1
-2014-06-12 14:48:41.456683: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpyQTgdx.tmpJZBpCa.pyomo.lp
-2014-06-12 14:48:41.478073: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110960.1626
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-2014-06-12 14:48:41.556729: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp3BgmML.tmpr7qoBr.pyomo.lp
-2014-06-12 14:48:41.578811: Solve completed - number of solutions=1
-2014-06-12 14:48:41.593226: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpBqtMyO.tmpvjURh7.pyomo.lp
-2014-06-12 14:48:41.616590: Solve completed - number of solutions=1
-2014-06-12 14:48:41.631039: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpMm3awO.tmp6jfuXI.pyomo.lp
-2014-06-12 14:48:41.656631: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9759 Max-Min= 2480.23
-Cumulative run-time=18.24 seconds
-
-Initiating PH iteration=75
-2014-06-12 14:48:41.671056: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpqhlr6t.tmpt_QV68.pyomo.lp
-2014-06-12 14:48:41.691621: Solve completed - number of solutions=1
-2014-06-12 14:48:41.706189: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpSWDHnn.tmpLyZSVR.pyomo.lp
-2014-06-12 14:48:41.724435: Solve completed - number of solutions=1
-2014-06-12 14:48:41.739728: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpJyJtiP.tmpDR1pkL.pyomo.lp
-2014-06-12 14:48:41.758540: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110960.1625
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-2014-06-12 14:48:41.837559: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpgxUrC_.tmpQsVswe.pyomo.lp
-2014-06-12 14:48:41.861116: Solve completed - number of solutions=1
-2014-06-12 14:48:41.876312: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpfRMpJr.tmpQsXPqX.pyomo.lp
-2014-06-12 14:48:41.896156: Solve completed - number of solutions=1
-2014-06-12 14:48:41.910009: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpSDRUwA.tmpPUcZgM.pyomo.lp
-2014-06-12 14:48:41.933135: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9758 Max-Min= 2480.23
-Cumulative run-time=18.52 seconds
-
-Initiating PH iteration=76
-2014-06-12 14:48:41.947251: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpFBjmJv.tmp_KqAeg.pyomo.lp
-2014-06-12 14:48:41.965480: Solve completed - number of solutions=1
-2014-06-12 14:48:41.981316: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp66x_Be.tmpvSOjLt.pyomo.lp
-2014-06-12 14:48:42.000226: Solve completed - number of solutions=1
-2014-06-12 14:48:42.014246: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpAn3Yb9.tmpDACxy1.pyomo.lp
-2014-06-12 14:48:42.030771: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110960.1624
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-2014-06-12 14:48:42.109216: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpSOX7zh.tmpGYjvXj.pyomo.lp
-2014-06-12 14:48:42.130304: Solve completed - number of solutions=1
-2014-06-12 14:48:42.144682: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpg8gmUJ.tmpQuCq8u.pyomo.lp
-2014-06-12 14:48:42.165410: Solve completed - number of solutions=1
-2014-06-12 14:48:42.179591: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpVujkxc.tmpqjZZEg.pyomo.lp
-2014-06-12 14:48:42.201956: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9758 Max-Min= 2480.23
-Cumulative run-time=18.79 seconds
-
-Initiating PH iteration=77
-2014-06-12 14:48:42.215795: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp8M86gy.tmppEXW62.pyomo.lp
-2014-06-12 14:48:42.235949: Solve completed - number of solutions=1
-2014-06-12 14:48:42.250029: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmppeKCJ7.tmplnqpsB.pyomo.lp
-2014-06-12 14:48:42.267746: Solve completed - number of solutions=1
-2014-06-12 14:48:42.281558: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp9EHyGC.tmp74N2p2.pyomo.lp
-2014-06-12 14:48:42.298779: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110960.1623
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-2014-06-12 14:48:42.377809: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpQo5pKw.tmpsPm9WM.pyomo.lp
-2014-06-12 14:48:42.397661: Solve completed - number of solutions=1
-2014-06-12 14:48:42.411433: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpEQasRZ.tmp3ObKls.pyomo.lp
-2014-06-12 14:48:42.431441: Solve completed - number of solutions=1
-2014-06-12 14:48:42.446087: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmptO6lFs.tmpeQBPYn.pyomo.lp
-2014-06-12 14:48:42.466258: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9758 Max-Min= 2480.23
-Cumulative run-time=19.05 seconds
-
-Initiating PH iteration=78
-2014-06-12 14:48:42.480119: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpreT8P8.tmpFVI1Bp.pyomo.lp
-2014-06-12 14:48:42.498200: Solve completed - number of solutions=1
-2014-06-12 14:48:42.512077: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpa8Pfrp.tmpmCmVUb.pyomo.lp
-2014-06-12 14:48:42.529881: Solve completed - number of solutions=1
-2014-06-12 14:48:42.543839: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpNgbQaT.tmpuW6Sah.pyomo.lp
-2014-06-12 14:48:42.561718: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110960.1622
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-2014-06-12 14:48:42.640111: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp9iNXCs.tmpbV2fvX.pyomo.lp
-2014-06-12 14:48:42.659811: Solve completed - number of solutions=1
-2014-06-12 14:48:42.673657: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp676hcw.tmpRX56S1.pyomo.lp
-2014-06-12 14:48:42.693723: Solve completed - number of solutions=1
-2014-06-12 14:48:42.707605: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpYSgWAM.tmpe8iei0.pyomo.lp
-2014-06-12 14:48:42.727134: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9758 Max-Min= 2480.23
-Cumulative run-time=19.31 seconds
-
-Initiating PH iteration=79
-2014-06-12 14:48:42.740654: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpQAQwLP.tmpkfGWMA.pyomo.lp
-2014-06-12 14:48:42.757395: Solve completed - number of solutions=1
-2014-06-12 14:48:42.771445: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp1jrSpc.tmpPANqz5.pyomo.lp
-2014-06-12 14:48:42.788924: Solve completed - number of solutions=1
-2014-06-12 14:48:42.802811: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpO_ubU6.tmp_UrVg0.pyomo.lp
-2014-06-12 14:48:42.821299: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110960.1622
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-2014-06-12 14:48:42.900337: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmplmq7AD.tmpNgVN1V.pyomo.lp
-2014-06-12 14:48:42.920506: Solve completed - number of solutions=1
-2014-06-12 14:48:42.934425: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpOygeJb.tmprVjAo1.pyomo.lp
-2014-06-12 14:48:42.956007: Solve completed - number of solutions=1
-2014-06-12 14:48:42.970645: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp1nYrqM.tmpjvIl5M.pyomo.lp
-2014-06-12 14:48:42.991285: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9758 Max-Min= 2480.23
-Cumulative run-time=19.58 seconds
-
-Initiating PH iteration=80
-2014-06-12 14:48:43.004058: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpSYPUyk.tmpt7nFij.pyomo.lp
-2014-06-12 14:48:43.024308: Solve completed - number of solutions=1
-2014-06-12 14:48:43.038772: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp3CtCzL.tmpLipk64.pyomo.lp
-2014-06-12 14:48:43.057280: Solve completed - number of solutions=1
-2014-06-12 14:48:43.072020: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp6RhAMd.tmppkOSst.pyomo.lp
-2014-06-12 14:48:43.088912: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110960.1621
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-2014-06-12 14:48:43.166773: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpYCjlnl.tmpT1fJ9r.pyomo.lp
-2014-06-12 14:48:43.186788: Solve completed - number of solutions=1
-2014-06-12 14:48:43.200564: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpTizC_Y.tmpXIF77Q.pyomo.lp
-2014-06-12 14:48:43.220063: Solve completed - number of solutions=1
-2014-06-12 14:48:43.233956: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpmU50do.tmpOVwAbk.pyomo.lp
-2014-06-12 14:48:43.255078: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9759 Max-Min= 2480.23
-Cumulative run-time=19.84 seconds
-
-Initiating PH iteration=81
-2014-06-12 14:48:43.269434: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpSBAaiX.tmp0xrTH5.pyomo.lp
-2014-06-12 14:48:43.286199: Solve completed - number of solutions=1
-2014-06-12 14:48:43.300045: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpYJB8l7.tmp222EJ5.pyomo.lp
-2014-06-12 14:48:43.317939: Solve completed - number of solutions=1
-2014-06-12 14:48:43.332635: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp2srBE4.tmpr58f3e.pyomo.lp
-2014-06-12 14:48:43.350679: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110960.1619
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-2014-06-12 14:48:43.429135: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp2FaOM3.tmptJhX2w.pyomo.lp
-2014-06-12 14:48:43.448879: Solve completed - number of solutions=1
-2014-06-12 14:48:43.463553: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpYMNk1r.tmpjTTAeg.pyomo.lp
-2014-06-12 14:48:43.483184: Solve completed - number of solutions=1
-2014-06-12 14:48:43.497013: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpYPAAjL.tmpjxO495.pyomo.lp
-2014-06-12 14:48:43.518063: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9760 Max-Min= 2480.23
-Cumulative run-time=20.11 seconds
-
-Initiating PH iteration=82
-2014-06-12 14:48:43.531128: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpZjX94G.tmpJR9pN8.pyomo.lp
-2014-06-12 14:48:43.548991: Solve completed - number of solutions=1
-2014-06-12 14:48:43.562999: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpSnHcHt.tmpeZMvRc.pyomo.lp
-2014-06-12 14:48:43.581213: Solve completed - number of solutions=1
-2014-06-12 14:48:43.594924: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpzb5XpY.tmphk6M50.pyomo.lp
-2014-06-12 14:48:43.612175: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110960.1618
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-2014-06-12 14:48:43.691394: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpbl56AI.tmp689KjO.pyomo.lp
-2014-06-12 14:48:43.711482: Solve completed - number of solutions=1
-2014-06-12 14:48:43.725207: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpnd5mKr.tmpINOOJr.pyomo.lp
-2014-06-12 14:48:43.746711: Solve completed - number of solutions=1
-2014-06-12 14:48:43.760531: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpS4ZbqA.tmpMZjEBH.pyomo.lp
-2014-06-12 14:48:43.780308: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9760 Max-Min= 2480.23
-Cumulative run-time=20.37 seconds
-
-Initiating PH iteration=83
-2014-06-12 14:48:43.792986: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpXaoInT.tmpL4J1TK.pyomo.lp
-2014-06-12 14:48:43.811667: Solve completed - number of solutions=1
-2014-06-12 14:48:43.827240: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpamk54H.tmp7msT6i.pyomo.lp
-2014-06-12 14:48:43.844595: Solve completed - number of solutions=1
-2014-06-12 14:48:43.858421: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmphxjoHc.tmpQTemyY.pyomo.lp
-2014-06-12 14:48:43.876971: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110960.1619
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-2014-06-12 14:48:43.955574: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpoGwnL9.tmpBUJKuF.pyomo.lp
-2014-06-12 14:48:43.975599: Solve completed - number of solutions=1
-2014-06-12 14:48:43.989394: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpwK0JtO.tmpNaiW1p.pyomo.lp
-2014-06-12 14:48:44.008580: Solve completed - number of solutions=1
-2014-06-12 14:48:44.022519: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpemGgWP.tmpK5rRQG.pyomo.lp
-2014-06-12 14:48:44.041732: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9761 Max-Min= 2480.23
-Cumulative run-time=20.63 seconds
-
-Initiating PH iteration=84
-2014-06-12 14:48:44.054383: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpARcxBT.tmpgMNAci.pyomo.lp
-2014-06-12 14:48:44.071860: Solve completed - number of solutions=1
-2014-06-12 14:48:44.085787: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpPTN8A7.tmp0GrysF.pyomo.lp
-2014-06-12 14:48:44.102501: Solve completed - number of solutions=1
-2014-06-12 14:48:44.116626: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpFosAHI.tmpFsfDYj.pyomo.lp
-2014-06-12 14:48:44.135703: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110960.1620
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-2014-06-12 14:48:44.214229: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp1q2VoZ.tmp_VeoLL.pyomo.lp
-2014-06-12 14:48:44.235701: Solve completed - number of solutions=1
-2014-06-12 14:48:44.250139: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpbvnClo.tmpPgAhaP.pyomo.lp
-2014-06-12 14:48:44.271359: Solve completed - number of solutions=1
-2014-06-12 14:48:44.285577: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpZhQmOE.tmpj3urPz.pyomo.lp
-2014-06-12 14:48:44.305081: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9760 Max-Min= 2480.23
-Cumulative run-time=20.89 seconds
-
-Initiating PH iteration=85
-2014-06-12 14:48:44.317693: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpVIjAgJ.tmpW1dHj2.pyomo.lp
-2014-06-12 14:48:44.339097: Solve completed - number of solutions=1
-2014-06-12 14:48:44.353461: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpI465VC.tmp_2sz1o.pyomo.lp
-2014-06-12 14:48:44.372379: Solve completed - number of solutions=1
-2014-06-12 14:48:44.386491: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpxrZ0Da.tmpRZtZxx.pyomo.lp
-2014-06-12 14:48:44.404599: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110960.1621
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-2014-06-12 14:48:44.484170: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp8Biq1Q.tmpdmSXXL.pyomo.lp
-2014-06-12 14:48:44.507564: Solve completed - number of solutions=1
-2014-06-12 14:48:44.523123: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpLcDtKB.tmpTJxxVU.pyomo.lp
-2014-06-12 14:48:44.544051: Solve completed - number of solutions=1
-2014-06-12 14:48:44.559289: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp1MBJhU.tmphYs3ir.pyomo.lp
-2014-06-12 14:48:44.582005: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9760 Max-Min= 2480.23
-Cumulative run-time=21.17 seconds
-
-Initiating PH iteration=86
-2014-06-12 14:48:44.595524: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpqRccJP.tmpohn0nb.pyomo.lp
-2014-06-12 14:48:44.613849: Solve completed - number of solutions=1
-2014-06-12 14:48:44.629620: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpPPdSJc.tmp5amett.pyomo.lp
-2014-06-12 14:48:44.646875: Solve completed - number of solutions=1
-2014-06-12 14:48:44.661812: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpscOhLr.tmplS_LVe.pyomo.lp
-2014-06-12 14:48:44.683688: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110960.1622
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-2014-06-12 14:48:44.762029: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpvYW6Qh.tmpVe8qXE.pyomo.lp
-2014-06-12 14:48:44.784566: Solve completed - number of solutions=1
-2014-06-12 14:48:44.798902: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpMHT4Du.tmp9NEauF.pyomo.lp
-2014-06-12 14:48:44.821568: Solve completed - number of solutions=1
-2014-06-12 14:48:44.836913: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpT2ZR65.tmpu4lyD8.pyomo.lp
-2014-06-12 14:48:44.857149: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9759 Max-Min= 2480.23
-Cumulative run-time=21.44 seconds
-
-Initiating PH iteration=87
-2014-06-12 14:48:44.870459: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp0b0Boc.tmpNK0oxy.pyomo.lp
-2014-06-12 14:48:44.890466: Solve completed - number of solutions=1
-2014-06-12 14:48:44.904741: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpaJVsjB.tmpiN9gwS.pyomo.lp
-2014-06-12 14:48:44.923721: Solve completed - number of solutions=1
-2014-06-12 14:48:44.938928: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpbdexyz.tmpVVgdc2.pyomo.lp
-2014-06-12 14:48:44.956059: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110960.1622
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-2014-06-12 14:48:45.033965: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp1eN23f.tmpwoeMCB.pyomo.lp
-2014-06-12 14:48:45.053948: Solve completed - number of solutions=1
-2014-06-12 14:48:45.067826: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpMSja2A.tmp1mnUNf.pyomo.lp
-2014-06-12 14:48:45.088744: Solve completed - number of solutions=1
-2014-06-12 14:48:45.103935: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmphtXOcf.tmpEtx2v1.pyomo.lp
-2014-06-12 14:48:45.124618: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9759 Max-Min= 2480.23
-Cumulative run-time=21.71 seconds
-
-Initiating PH iteration=88
-2014-06-12 14:48:45.137113: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpvD0fci.tmphDkej3.pyomo.lp
-2014-06-12 14:48:45.154498: Solve completed - number of solutions=1
-2014-06-12 14:48:45.168909: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpESMuSF.tmp656M1c.pyomo.lp
-2014-06-12 14:48:45.186520: Solve completed - number of solutions=1
-2014-06-12 14:48:45.200731: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpXYWwY7.tmpI9Lpc0.pyomo.lp
-2014-06-12 14:48:45.217824: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110960.1623
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-2014-06-12 14:48:45.297204: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpJ3ydw3.tmpVwqGZu.pyomo.lp
-2014-06-12 14:48:45.317732: Solve completed - number of solutions=1
-2014-06-12 14:48:45.332135: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpJ_Ze6A.tmpUBZLzU.pyomo.lp
-2014-06-12 14:48:45.351564: Solve completed - number of solutions=1
-2014-06-12 14:48:45.365363: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpqFDNtU.tmpCrUOaA.pyomo.lp
-2014-06-12 14:48:45.386153: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9758 Max-Min= 2480.23
-Cumulative run-time=21.97 seconds
-
-Initiating PH iteration=89
-2014-06-12 14:48:45.400044: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmprcg7mm.tmpEY5rtg.pyomo.lp
-2014-06-12 14:48:45.417282: Solve completed - number of solutions=1
-2014-06-12 14:48:45.431366: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpnZFo5R.tmpa0HwrG.pyomo.lp
-2014-06-12 14:48:45.448415: Solve completed - number of solutions=1
-2014-06-12 14:48:45.462378: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpZrEkVb.tmp_R6QYT.pyomo.lp
-2014-06-12 14:48:45.479851: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110960.1623
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-2014-06-12 14:48:45.560985: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpPbQfa3.tmp4JfilY.pyomo.lp
-2014-06-12 14:48:45.581375: Solve completed - number of solutions=1
-2014-06-12 14:48:45.595194: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpM7U7UV.tmp4QzOvv.pyomo.lp
-2014-06-12 14:48:45.614913: Solve completed - number of solutions=1
-2014-06-12 14:48:45.628836: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpkYYouX.tmpGdPhN_.pyomo.lp
-2014-06-12 14:48:45.649195: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9758 Max-Min= 2480.23
-Cumulative run-time=22.24 seconds
-
-Initiating PH iteration=90
-2014-06-12 14:48:45.662684: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmps8fSXB.tmphovLNY.pyomo.lp
-2014-06-12 14:48:45.680137: Solve completed - number of solutions=1
-2014-06-12 14:48:45.694036: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpmrdKho.tmpY0XvGp.pyomo.lp
-2014-06-12 14:48:45.710954: Solve completed - number of solutions=1
-2014-06-12 14:48:45.724707: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp_H2ZS0.tmpfuCX_p.pyomo.lp
-2014-06-12 14:48:45.743219: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110960.1623
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-2014-06-12 14:48:45.822065: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpN0VhX1.tmpzw2VKB.pyomo.lp
-2014-06-12 14:48:45.842834: Solve completed - number of solutions=1
-2014-06-12 14:48:45.856607: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpur5qF5.tmp1ggnn8.pyomo.lp
-2014-06-12 14:48:45.877662: Solve completed - number of solutions=1
-2014-06-12 14:48:45.891914: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmph7bP1U.tmplFp8qU.pyomo.lp
-2014-06-12 14:48:45.911463: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9757 Max-Min= 2480.23
-Cumulative run-time=22.50 seconds
-
-Initiating PH iteration=91
-2014-06-12 14:48:45.924386: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpn4vDpL.tmpqVgOaZ.pyomo.lp
-2014-06-12 14:48:45.941949: Solve completed - number of solutions=1
-2014-06-12 14:48:45.955788: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp5IpWrw.tmpjhImGN.pyomo.lp
-2014-06-12 14:48:45.973095: Solve completed - number of solutions=1
-2014-06-12 14:48:45.986970: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpN6MFUF.tmpLgSn7u.pyomo.lp
-2014-06-12 14:48:46.003851: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110960.1623
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-2014-06-12 14:48:46.082094: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpKoQrzk.tmpjVLrF3.pyomo.lp
-2014-06-12 14:48:46.102011: Solve completed - number of solutions=1
-2014-06-12 14:48:46.115770: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpPY_7Kb.tmpLysc3d.pyomo.lp
-2014-06-12 14:48:46.135742: Solve completed - number of solutions=1
-2014-06-12 14:48:46.150465: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpq6fP8i.tmp7w1ech.pyomo.lp
-2014-06-12 14:48:46.170737: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9757 Max-Min= 2480.23
-Cumulative run-time=22.76 seconds
-
-Initiating PH iteration=92
-2014-06-12 14:48:46.218606: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpBUxCh5.tmph2aVyS.pyomo.lp
-2014-06-12 14:48:46.236942: Solve completed - number of solutions=1
-2014-06-12 14:48:46.251572: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpKYvNVg.tmpaTaLz0.pyomo.lp
-2014-06-12 14:48:46.268664: Solve completed - number of solutions=1
-2014-06-12 14:48:46.282465: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpzXPdZ3.tmphs4CPa.pyomo.lp
-2014-06-12 14:48:46.300030: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110960.1623
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-2014-06-12 14:48:46.378562: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpG5Nghu.tmpSybjS1.pyomo.lp
-2014-06-12 14:48:46.399316: Solve completed - number of solutions=1
-2014-06-12 14:48:46.413480: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpsp8lJ1.tmp4D8jPI.pyomo.lp
-2014-06-12 14:48:46.434443: Solve completed - number of solutions=1
-2014-06-12 14:48:46.449077: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpzglo5T.tmp8gzkbV.pyomo.lp
-2014-06-12 14:48:46.468745: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9757 Max-Min= 2480.23
-Cumulative run-time=23.06 seconds
-
-Initiating PH iteration=93
-2014-06-12 14:48:46.481420: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp_vQsyX.tmpYT65te.pyomo.lp
-2014-06-12 14:48:46.498742: Solve completed - number of solutions=1
-2014-06-12 14:48:46.512744: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpVb95HN.tmpCwwDxF.pyomo.lp
-2014-06-12 14:48:46.529843: Solve completed - number of solutions=1
-2014-06-12 14:48:46.543731: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpmixhKy.tmpbkTPGo.pyomo.lp
-2014-06-12 14:48:46.562445: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110960.1623
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-2014-06-12 14:48:46.642609: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpeI0TmM.tmpba9cOa.pyomo.lp
-2014-06-12 14:48:46.662311: Solve completed - number of solutions=1
-2014-06-12 14:48:46.677056: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpXD7Muw.tmpizLkUO.pyomo.lp
-2014-06-12 14:48:46.696612: Solve completed - number of solutions=1
-2014-06-12 14:48:46.711422: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpDyQyE8.tmpVnUoQG.pyomo.lp
-2014-06-12 14:48:46.732504: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9757 Max-Min= 2480.23
-Cumulative run-time=23.32 seconds
-
-Initiating PH iteration=94
-2014-06-12 14:48:46.745688: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpKzX9Tw.tmpJrWcTn.pyomo.lp
-2014-06-12 14:48:46.762468: Solve completed - number of solutions=1
-2014-06-12 14:48:46.776282: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpLajUr5.tmp8edQ7H.pyomo.lp
-2014-06-12 14:48:46.793638: Solve completed - number of solutions=1
-2014-06-12 14:48:46.807362: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpIozQAA.tmp15ieY9.pyomo.lp
-2014-06-12 14:48:46.825710: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110960.1622
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-2014-06-12 14:48:46.904906: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpj1CrEQ.tmpKAOu1r.pyomo.lp
-2014-06-12 14:48:46.924924: Solve completed - number of solutions=1
-2014-06-12 14:48:46.938942: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpVJ3fcu.tmp9NJr_0.pyomo.lp
-2014-06-12 14:48:46.958357: Solve completed - number of solutions=1
-2014-06-12 14:48:46.972148: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp4BHrPF.tmpQw3xUA.pyomo.lp
-2014-06-12 14:48:46.992976: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9757 Max-Min= 2480.23
-Cumulative run-time=23.58 seconds
-
-Initiating PH iteration=95
-2014-06-12 14:48:47.005954: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpOBoH9x.tmpqi4CFc.pyomo.lp
-2014-06-12 14:48:47.022931: Solve completed - number of solutions=1
-2014-06-12 14:48:47.036770: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpgsNlUj.tmpVWj1KG.pyomo.lp
-2014-06-12 14:48:47.055309: Solve completed - number of solutions=1
-2014-06-12 14:48:47.069556: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpTo7mkE.tmp00hazJ.pyomo.lp
-2014-06-12 14:48:47.086898: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110960.1622
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-2014-06-12 14:48:47.166472: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp1EACGI.tmpvsHKOj.pyomo.lp
-2014-06-12 14:48:47.185879: Solve completed - number of solutions=1
-2014-06-12 14:48:47.200672: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpGWRRgF.tmp8_wkjq.pyomo.lp
-2014-06-12 14:48:47.220191: Solve completed - number of solutions=1
-2014-06-12 14:48:47.235114: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpifDfxK.tmpQJAsBG.pyomo.lp
-2014-06-12 14:48:47.254929: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9757 Max-Min= 2480.23
-Cumulative run-time=23.84 seconds
-
-Initiating PH iteration=96
-2014-06-12 14:48:47.267790: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpyKPe9r.tmpNe20Vb.pyomo.lp
-2014-06-12 14:48:47.285561: Solve completed - number of solutions=1
-2014-06-12 14:48:47.299514: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp6wXyOI.tmpYvqSJY.pyomo.lp
-2014-06-12 14:48:47.316707: Solve completed - number of solutions=1
-2014-06-12 14:48:47.331154: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpT4lUjE.tmp_HgyK6.pyomo.lp
-2014-06-12 14:48:47.348449: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110960.1622
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-2014-06-12 14:48:47.427326: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpqahlXm.tmpVbyU54.pyomo.lp
-2014-06-12 14:48:47.447481: Solve completed - number of solutions=1
-2014-06-12 14:48:47.461240: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpUN91NL.tmpwWXH1x.pyomo.lp
-2014-06-12 14:48:47.481696: Solve completed - number of solutions=1
-2014-06-12 14:48:47.496539: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpm10mTs.tmpIN0UHB.pyomo.lp
-2014-06-12 14:48:47.516159: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9757 Max-Min= 2480.23
-Cumulative run-time=24.10 seconds
-
-Initiating PH iteration=97
-2014-06-12 14:48:47.528827: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmppUIzFN.tmp5SqDKc.pyomo.lp
-2014-06-12 14:48:47.547156: Solve completed - number of solutions=1
-2014-06-12 14:48:47.562002: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpvslq4s.tmp3dmW2q.pyomo.lp
-2014-06-12 14:48:47.580690: Solve completed - number of solutions=1
-2014-06-12 14:48:47.595348: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpsCy6P7.tmp2I518D.pyomo.lp
-2014-06-12 14:48:47.614455: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110960.1622
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-2014-06-12 14:48:47.694632: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpsKKvtm.tmp3paEbh.pyomo.lp
-2014-06-12 14:48:47.715063: Solve completed - number of solutions=1
-2014-06-12 14:48:47.729308: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpV2k0hc.tmpjHK74b.pyomo.lp
-2014-06-12 14:48:47.748873: Solve completed - number of solutions=1
-2014-06-12 14:48:47.763635: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpemSLpX.tmpuVW_7Y.pyomo.lp
-2014-06-12 14:48:47.783018: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9758 Max-Min= 2480.23
-Cumulative run-time=24.37 seconds
-
-Initiating PH iteration=98
-2014-06-12 14:48:47.796047: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpGtyUDI.tmp3dJq8a.pyomo.lp
-2014-06-12 14:48:47.813095: Solve completed - number of solutions=1
-2014-06-12 14:48:47.827826: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpU8mMwK.tmpReC0RU.pyomo.lp
-2014-06-12 14:48:47.844930: Solve completed - number of solutions=1
-2014-06-12 14:48:47.858707: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpuQzGrM.tmp8_k07j.pyomo.lp
-2014-06-12 14:48:47.876493: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110960.1622
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-2014-06-12 14:48:47.956880: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpi3a0Rk.tmpmAzhb2.pyomo.lp
-2014-06-12 14:48:47.977023: Solve completed - number of solutions=1
-2014-06-12 14:48:47.991785: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpPTADRL.tmpVLfc9M.pyomo.lp
-2014-06-12 14:48:48.011515: Solve completed - number of solutions=1
-2014-06-12 14:48:48.025309: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpXSoDig.tmpv3m_CZ.pyomo.lp
-2014-06-12 14:48:48.044964: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9758 Max-Min= 2480.23
-Cumulative run-time=24.63 seconds
-
-Initiating PH iteration=99
-2014-06-12 14:48:48.057713: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpYD0UJB.tmpIzX3sp.pyomo.lp
-2014-06-12 14:48:48.074768: Solve completed - number of solutions=1
-2014-06-12 14:48:48.088533: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpNv2dzi.tmp0XvH_c.pyomo.lp
-2014-06-12 14:48:48.105889: Solve completed - number of solutions=1
-2014-06-12 14:48:48.120866: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpLJMBjO.tmpBI2WWB.pyomo.lp
-2014-06-12 14:48:48.138934: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110960.1622
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-2014-06-12 14:48:48.218810: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmppXPp6i.tmplKXLkR.pyomo.lp
-2014-06-12 14:48:48.239184: Solve completed - number of solutions=1
-2014-06-12 14:48:48.253398: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpPgCieE.tmppTjMnU.pyomo.lp
-2014-06-12 14:48:48.274811: Solve completed - number of solutions=1
-2014-06-12 14:48:48.289034: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpaEhCP_.tmpjJ9uDA.pyomo.lp
-2014-06-12 14:48:48.309230: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9758 Max-Min= 2480.23
-Cumulative run-time=24.90 seconds
-
-Initiating PH iteration=100
-2014-06-12 14:48:48.322099: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp2e2j2F.tmpDYRKyC.pyomo.lp
-2014-06-12 14:48:48.340169: Solve completed - number of solutions=1
-2014-06-12 14:48:48.354511: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpuziRyL.tmpNBTye6.pyomo.lp
-2014-06-12 14:48:48.372327: Solve completed - number of solutions=1
-2014-06-12 14:48:48.387359: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpG7pDG1.tmp_NXXnV.pyomo.lp
-2014-06-12 14:48:48.404965: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110960.1622
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-2014-06-12 14:48:48.484525: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpD8HUIw.tmpAfb7rf.pyomo.lp
-2014-06-12 14:48:48.506005: Solve completed - number of solutions=1
-2014-06-12 14:48:48.520199: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpzSXO6_.tmpkDonPZ.pyomo.lp
-2014-06-12 14:48:48.541223: Solve completed - number of solutions=1
-2014-06-12 14:48:48.554986: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpR2IQrL.tmpeqLT0n.pyomo.lp
-2014-06-12 14:48:48.576011: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9758 Max-Min= 2480.23
-Cumulative run-time=25.16 seconds
-Halting PH - reached maximal iteration count=100
-Number of discrete variables fixed before final plugin calls=0 (total=0)
-Number of continuous variables fixed before final plugin calls=0 (total=3)
-2014-06-12 14:48:48.589663: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpyTX8CV.tmplIGGbK.pyomo.lp
-2014-06-12 14:48:48.609175: Solve completed - number of solutions=1
-2014-06-12 14:48:48.623793: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpAZiUrS.tmprUAUAq.pyomo.lp
-2014-06-12 14:48:48.641359: Solve completed - number of solutions=1
-2014-06-12 14:48:48.655745: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpxrvFGL.tmpPtAR_i.pyomo.lp
-2014-06-12 14:48:48.673220: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110960.1622
-
- Iteration Bound
- Trivial -115405.555588
- 0 -112378.395154
- 1 -119146.913826
- 2 -122839.937276
- 3 -115850.228262
- 4 -114662.427763
- 5 -114508.936391
- 6 -114392.622476
- 7 -116760.95099
- 8 -115713.770411
- 9 -114886.977381
- 10 -114142.674474
- 11 -112524.04308
- 12 -111354.349714
- 13 -110712.388487
- 14 -110412.32327
- 15 -110290.355717
- 16 -110300.166904
- 17 -110407.578228
- 18 -110633.351824
- 19 -110837.34279
- 20 -110971.63266
- 21 -111036.846504
- 22 -111046.05369
- 23 -111045.341675
- 24 -111047.71221
- 25 -111034.967277
- 26 -111015.078589
- 27 -110994.058898
- 28 -110975.753079
- 29 -110962.061428
- 30 -110953.393719
- 31 -110949.187454
- 32 -110948.379773
- 33 -110949.774873
- 34 -110952.288918
- 35 -110955.081078
- 36 -110957.594134
- 37 -110959.533471
- 38 -110960.811919
- 39 -110961.482721
- 40 -110961.676069
- 41 -110961.548051
- 42 -110961.245392
- 43 -110960.885485
- 44 -110960.548967
- 45 -110960.281111
- 46 -110960.098373
- 47 -110959.997019
- 48 -110959.961634
- 49 -110959.972452
- 50 -110960.009379
- 51 -110960.056336
- 52 -110960.101879
- 53 -110960.139245
- 54 -110960.165621
- 55 -110960.181069
- 56 -110960.187384
- 57 -110960.18713
- 58 -110960.182925
- 59 -110960.176997
- 60 -110960.17098
- 61 -110960.165883
- 62 -110960.162169
- 63 -110960.159897
- 64 -110960.158872
- 65 -110960.158773
- 66 -110960.159253
- 67 -110960.16001
- 68 -110960.160813
- 69 -110960.161517
- 70 -110960.162046
- 71 -110960.162383
- 72 -110960.162551
- 73 -110960.162587
- 74 -110960.162539
- 75 -110960.162446
- 76 -110960.162341
- 77 -110960.162247
- 78 -110960.162173
- 79 -110960.162124
- 80 -110960.161856
- 81 -110960.161822
- 82 -110960.161887
- 83 -110960.161981
- 84 -110960.162077
- 85 -110960.162164
- 86 -110960.162218
- 87 -110960.16226
- 88 -110960.162284
- 89 -110960.162289
- 90 -110960.162282
- 91 -110960.162268
- 92 -110960.16225
- 93 -110960.162233
- 94 -110960.162218
- 95 -110960.162206
- 96 -110960.162196
- 97 -110960.162189
- 98 -110960.162184
- 99 -110960.16218
- 100 -110960.162232
-
-Lower bound history written to file=phbound.txt
-
-Best Objective Bound: -110290.355717
-
-Best Lower Bound written to file=phbestbound.txt
-PH algorithm history written to file=ph_history.json
-PH complete
-Convergence history:
-Iteration Metric Value
- 0 0.2540
- 1 0.1259
- 2 0.0816
- 3 0.0796
- 4 0.0776
- 5 0.0794
- 6 0.0726
- 7 0.0844
- 8 0.0727
- 9 0.0636
- 10 0.0786
- 11 0.0822
- 12 0.0773
- 13 0.0690
- 14 0.0608
- 15 0.0550
- 16 0.0518
- 17 0.0512
- 18 0.0519
- 19 0.0526
- 20 0.0533
- 21 0.0546
- 22 0.0556
- 23 0.0564
- 24 0.0569
- 25 0.0570
- 26 0.0570
- 27 0.0569
- 28 0.0568
- 29 0.0566
- 30 0.0564
- 31 0.0563
- 32 0.0562
- 33 0.0562
- 34 0.0562
- 35 0.0562
- 36 0.0562
- 37 0.0563
- 38 0.0563
- 39 0.0563
- 40 0.0563
- 41 0.0563
- 42 0.0563
- 43 0.0563
- 44 0.0563
- 45 0.0563
- 46 0.0563
- 47 0.0563
- 48 0.0563
- 49 0.0563
- 50 0.0563
- 51 0.0563
- 52 0.0563
- 53 0.0563
- 54 0.0563
- 55 0.0563
- 56 0.0563
- 57 0.0563
- 58 0.0563
- 59 0.0563
- 60 0.0563
- 61 0.0563
- 62 0.0563
- 63 0.0563
- 64 0.0563
- 65 0.0563
- 66 0.0563
- 67 0.0563
- 68 0.0563
- 69 0.0563
- 70 0.0563
- 71 0.0563
- 72 0.0563
- 73 0.0563
- 74 0.0563
- 75 0.0563
- 76 0.0563
- 77 0.0563
- 78 0.0563
- 79 0.0563
- 80 0.0563
- 81 0.0563
- 82 0.0563
- 83 0.0563
- 84 0.0563
- 85 0.0563
- 86 0.0563
- 87 0.0563
- 88 0.0563
- 89 0.0563
- 90 0.0563
- 91 0.0563
- 92 0.0563
- 93 0.0563
- 94 0.0563
- 95 0.0563
- 96 0.0563
- 97 0.0563
- 98 0.0563
- 99 0.0563
- 100 0.0563
-
-***********************************************************************************************
->>>THE EXPECTED SUM OF THE STAGE COST VARIABLES=-106862.160636<<<
->>>***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise<<<
-***********************************************************************************************
-Final number of discrete variables fixed=0 (total=0)
-Final number of continuous variables fixed=0 (total=3)
-Final variable values:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 100.0000 80.0000 87.7861 Max-Min: 20.0000 Avg: 89.2620
- Index: [SUGAR_BEETS] Values: 232.0854 233.1150 250.0000 Max-Min: 17.9146 Avg: 238.4001
- Index: [WHEAT] Values: 167.9146 186.8850 162.2139 Max-Min: 24.6711 Avg: 172.3379
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108529.3918 107042.6505 109522.8850 Max-Min: 2480.2345 Avg: 108364.9758
-Final costs:
-Scenario Tree Costs
-***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise
-----------------------------------------------------
-Tree Nodes:
-
- Name=AboveAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AboveAverageScenario
- Expected cost of (sub)tree rooted at node=-276133.5814
-
- Name=AverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AverageScenario
- Expected cost of (sub)tree rooted at node=-213268.9263
-
- Name=BelowAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-156772.1496
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- AboveAverageNode
- AverageNode
- BelowAverageNode
- Scenarios:
- AboveAverageScenario
- AverageScenario
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-106862.1606
-
-----------------------------------------------------
-Scenarios:
-
- Name=AboveAverageScenario
- Probability=0.3333
- Leaf Node=AboveAverageNode
- Tree node sequence:
- RootNode
- AboveAverageNode
- Stage= FirstStage Cost=109522.8850
- Stage= SecondStage Cost=-276133.5814
- Total scenario cost=-166610.6964
-
- Name=AverageScenario
- Probability=0.3333
- Leaf Node=AverageNode
- Tree node sequence:
- RootNode
- AverageNode
- Stage= FirstStage Cost=107042.6505
- Stage= SecondStage Cost=-213268.9263
- Total scenario cost=-106226.2758
-
- Name=BelowAverageScenario
- Probability=0.3333
- Leaf Node=BelowAverageNode
- Tree node sequence:
- RootNode
- BelowAverageNode
- Stage= FirstStage Cost=108529.3918
- Stage= SecondStage Cost=-156772.1496
- Total scenario cost=-48242.7578
-
-----------------------------------------------------
-
-Total PH execution time=25.27 seconds
-
-Scenario tree solution written to file=ph_solution.json
-Shutting down Pyro solver components
-Dispatcher received request to shut down - initiating...
-
-Total execution time=28.32 seconds
-Name Server gracefully stopped.
-Lost connection to dispatch server - shutting down...
diff --git a/pyomo/pysp/tests/examples/baselines/TestPHFarmerPyro.test9.baseline b/pyomo/pysp/tests/examples/baselines/TestPHFarmerPyro.test9.baseline
deleted file mode 100644
index 698220bea6f..00000000000
--- a/pyomo/pysp/tests/examples/baselines/TestPHFarmerPyro.test9.baseline
+++ /dev/null
@@ -1,364 +0,0 @@
-*** Pyro Name Server ***
-Name server listening on: ('0.0.0.0', 9090)
-Broadcast server listening on: ('0.0.0.0', 9090)
-URI is: PYRO://10.0.0.11:9090/0a00000b10e4120a8349b0c81ea96a1ca76
-URI written to: /Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/pyomo/pysp/tests/examples/Pyro_NS_URI
-Name Server started.
-User-defined PH extension module=pyomo.pysp.plugins.phhistoryextension already imported - skipping
-User-defined PH extension module=pyomo.pysp.plugins.phboundextension already imported - skipping
-Dispatcher is ready.
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI:PYRO://10.0.0.11:7766/0a00000b10e4220a8349c2e9b4acc19dc0a
-This is worker Worker_69187@Ozymandias.local
-Listening for work from dispatcher...
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI: PYRO://10.0.0.11:7766/0a00000b10e4220a8349c2e9b4acc19dc0a
-This is client 69188@Ozymandias.local
-Initializing PH
-
-phboundextension using default update interval=1
-WW PH Extension: Loading user-specified configuration from file=/Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/examples/pysp/farmer/config/wwph.cfg
-WW PH Extension: Loading variable suffixes from file=/Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/examples/pysp/farmer/config/wwph.suffixes
-User-defined PH solution writer module=pyomo.pysp.plugins.jsonsolutionwriter already imported - skipping
-Starting PH
-
-Initiating PH iteration=0
-2014-06-12 14:48:56.912164: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpAWax_B.tmpxBdX3C.pyomo.lp
-2014-06-12 14:48:56.931609: Solve completed - number of solutions=1
-2014-06-12 14:48:56.945524: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp1RMGaE.tmpmYXtiO.pyomo.lp
-2014-06-12 14:48:56.964175: Solve completed - number of solutions=1
-2014-06-12 14:48:56.977986: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpOntRZp.tmp3JbAu7.pyomo.lp
-2014-06-12 14:48:56.995273: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-115405.5556
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.2540 First stage cost avg= 113494.4444 Max-Min=10416.67
-Cumulative run-time=0.17 seconds
-
-Initiating PH iteration=1
-2014-06-12 14:48:57.008147: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpVwicHc.tmpPAMPdH.pyomo.lp
-2014-06-12 14:48:57.025532: Solve completed - number of solutions=1
-2014-06-12 14:48:57.040313: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpjZRlc2.tmpUL8MSJ.pyomo.lp
-2014-06-12 14:48:57.058318: Solve completed - number of solutions=1
-2014-06-12 14:48:57.072137: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpeguCgG.tmpbo51i9.pyomo.lp
-2014-06-12 14:48:57.089899: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-112378.3951
-WW PH Extension: Setting mipgap to 0.1000000, as specified in the configuration file
-2014-06-12 14:48:57.102982: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpVuXh4p.tmpOcksju.pyomo.lp
-2014-06-12 14:48:57.125296: Solve completed - number of solutions=1
-2014-06-12 14:48:57.140053: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp5zWxol.tmpYsJFYR.pyomo.lp
-2014-06-12 14:48:57.160151: Solve completed - number of solutions=1
-2014-06-12 14:48:57.174007: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp_pTrCW.tmp5m00HV.pyomo.lp
-2014-06-12 14:48:57.193356: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.1259 First stage cost avg= 113107.2221 Max-Min= 6943.89
-Cumulative run-time=0.36 seconds
-
-Initiating PH iteration=2
-2014-06-12 14:48:57.206461: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpk6va_k.tmplZwiWT.pyomo.lp
-2014-06-12 14:48:57.225244: Solve completed - number of solutions=1
-2014-06-12 14:48:57.239254: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpwv6wqT.tmp0mCCkq.pyomo.lp
-2014-06-12 14:48:57.258958: Solve completed - number of solutions=1
-2014-06-12 14:48:57.273384: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpxGgxrD.tmpuxWaRj.pyomo.lp
-2014-06-12 14:48:57.291204: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-WARNING: "[base]/pyomo.pysp/pyomo/pysp/plugins/phboundextension.py", 75, _compute_bound
- A nonzero mipgap was detected when using the PH bound plugin. The bound computation may as a result be conservative.
-Computed objective lower bound=-114092.2009
-WW PH Extension: Setting mipgap to 0.0500717, based on current value of the convergence metric
-2014-06-12 14:48:57.304118: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpLnd3y4.tmpCCUXEc.pyomo.lp
-2014-06-12 14:48:57.325087: Solve completed - number of solutions=1
-2014-06-12 14:48:57.340255: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpyoSvZL.tmpEahQdc.pyomo.lp
-2014-06-12 14:48:57.360330: Solve completed - number of solutions=1
-2014-06-12 14:48:57.374344: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp2EV9Jt.tmpMd7bet.pyomo.lp
-2014-06-12 14:48:57.394827: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0816 First stage cost avg= 112954.6296 Max-Min= 2234.82
-Cumulative run-time=0.57 seconds
-
-Initiating PH iteration=3
-2014-06-12 14:48:57.407415: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpEyJ3vm.tmplWFH2X.pyomo.lp
-2014-06-12 14:48:57.424894: Solve completed - number of solutions=1
-2014-06-12 14:48:57.439175: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpkzFDY8.tmp66YQyW.pyomo.lp
-2014-06-12 14:48:57.456236: Solve completed - number of solutions=1
-2014-06-12 14:48:57.471005: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp2cOt44.tmpF8ILv4.pyomo.lp
-2014-06-12 14:48:57.488135: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-WARNING: "[base]/pyomo.pysp/pyomo/pysp/plugins/phboundextension.py", 75, _compute_bound
- A nonzero mipgap was detected when using the PH bound plugin. The bound computation may as a result be conservative.
-Computed objective lower bound=-111905.7747
-WW PH Extension: Setting mipgap to 0.0327607, based on current value of the convergence metric
-2014-06-12 14:48:57.501209: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpXMsRxp.tmpCJhvYr.pyomo.lp
-2014-06-12 14:48:57.521272: Solve completed - number of solutions=1
-2014-06-12 14:48:57.534963: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpcknd39.tmprTMV9P.pyomo.lp
-2014-06-12 14:48:57.554675: Solve completed - number of solutions=1
-2014-06-12 14:48:57.569474: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpbje4Iq.tmpJNP7VB.pyomo.lp
-2014-06-12 14:48:57.590094: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0796 First stage cost avg= 112963.0248 Max-Min= 2375.31
-Cumulative run-time=0.76 seconds
-
-Initiating PH iteration=4
-2014-06-12 14:48:57.602964: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp8Xctdf.tmpOrhw_g.pyomo.lp
-2014-06-12 14:48:57.621665: Solve completed - number of solutions=1
-2014-06-12 14:48:57.635478: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpVowuOP.tmpCAgDCH.pyomo.lp
-2014-06-12 14:48:57.652499: Solve completed - number of solutions=1
-2014-06-12 14:48:57.666151: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpqcexAe.tmp3A6HrR.pyomo.lp
-2014-06-12 14:48:57.683875: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-WARNING: "[base]/pyomo.pysp/pyomo/pysp/plugins/phboundextension.py", 75, _compute_bound
- A nonzero mipgap was detected when using the PH bound plugin. The bound computation may as a result be conservative.
-Computed objective lower bound=-110093.7884
-WW PH Extension: Setting mipgap to 0.0319973, based on current value of the convergence metric
-2014-06-12 14:48:57.697795: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpaU4xNo.tmpT5IXK2.pyomo.lp
-2014-06-12 14:48:57.719049: Solve completed - number of solutions=1
-2014-06-12 14:48:57.733525: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpnhTzSL.tmpZSNnyI.pyomo.lp
-2014-06-12 14:48:57.754693: Solve completed - number of solutions=1
-2014-06-12 14:48:57.769992: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpbXTSp0.tmpTs34CU.pyomo.lp
-2014-06-12 14:48:57.789938: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Slamming criteria are satisifed - accelerating convergence
-Slamming variable=DevotedAcreage[CORN] at tree node=RootNode to value=96.8871743104; value=node average (anywhere)
-Fixing variable=DevotedAcreage[CORN] at tree node=RootNode to value=96.8871743104; converged for 0 iterations
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0776 First stage cost avg= 112915.6071 Max-Min= 3047.08
-Cumulative run-time=0.96 seconds
-
-Initiating PH iteration=5
-2014-06-12 14:48:57.804906: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpB8uRyY.tmpio5hXR.pyomo.lp
-2014-06-12 14:48:57.822828: Solve completed - number of solutions=1
-2014-06-12 14:48:57.838462: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpsRQ4Ft.tmppS1pfx.pyomo.lp
-2014-06-12 14:48:57.856854: Solve completed - number of solutions=1
-2014-06-12 14:48:57.870699: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpA2mJL4.tmpC3Q346.pyomo.lp
-2014-06-12 14:48:57.887938: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-WARNING: "[base]/pyomo.pysp/pyomo/pysp/plugins/phboundextension.py", 75, _compute_bound
- A nonzero mipgap was detected when using the PH bound plugin. The bound computation may as a result be conservative.
-Computed objective lower bound=-109499.5161
-WW PH Extension: Setting mipgap to 0.0312342, based on current value of the convergence metric
-2014-06-12 14:48:57.900695: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpvSHdIw.tmp96vEZ8.pyomo.lp
-2014-06-12 14:48:57.922880: Solve completed - number of solutions=1
-2014-06-12 14:48:57.937623: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpOwdBAJ.tmppLt7z0.pyomo.lp
-2014-06-12 14:48:57.957413: Solve completed - number of solutions=1
-2014-06-12 14:48:57.971422: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpoOH5LL.tmpYG3KFd.pyomo.lp
-2014-06-12 14:48:57.992347: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=1 (total=3)
-Convergence metric= 0.0609 First stage cost avg= 112895.6887 Max-Min= 5246.95
-Cumulative run-time=1.16 seconds
-
-Initiating PH iteration=6
-2014-06-12 14:48:58.004932: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp_ArNb7.tmpyTR0iu.pyomo.lp
-2014-06-12 14:48:58.022352: Solve completed - number of solutions=1
-2014-06-12 14:48:58.036288: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpc0I8Hh.tmpZBJF6b.pyomo.lp
-2014-06-12 14:48:58.053472: Solve completed - number of solutions=1
-2014-06-12 14:48:58.067400: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpGE2Bwl.tmpbWHxLp.pyomo.lp
-2014-06-12 14:48:58.084670: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-WARNING: "[base]/pyomo.pysp/pyomo/pysp/plugins/phboundextension.py", 75, _compute_bound
- A nonzero mipgap was detected when using the PH bound plugin. The bound computation may as a result be conservative.
-Computed objective lower bound=-109440.7805
-WW PH Extension: Setting mipgap to 0.0247045, based on current value of the convergence metric
-2014-06-12 14:48:58.098180: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp2PBhtn.tmpgys32z.pyomo.lp
-2014-06-12 14:48:58.119581: Solve completed - number of solutions=1
-2014-06-12 14:48:58.134836: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpcEfxtS.tmpYk3tsG.pyomo.lp
-2014-06-12 14:48:58.156277: Solve completed - number of solutions=1
-2014-06-12 14:48:58.171070: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp3fmtkP.tmpSA1GGh.pyomo.lp
-2014-06-12 14:48:58.190909: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Slamming criteria are satisifed - accelerating convergence
-Slamming variable=DevotedAcreage[WHEAT] at tree node=RootNode to value=137.204959966; value=node average (anywhere)
-Fixing variable=DevotedAcreage[WHEAT] at tree node=RootNode to value=137.204959966; converged for 0 iterations
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=1 (total=3)
-Convergence metric= 0.0391 First stage cost avg= 112000.8391 Max-Min= 2624.80
-Cumulative run-time=1.36 seconds
-
-Initiating PH iteration=7
-2014-06-12 14:48:58.203698: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpYCayI9.tmpdWu2wH.pyomo.lp
-2014-06-12 14:48:58.221957: Solve completed - number of solutions=1
-2014-06-12 14:48:58.237235: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpu0AE5e.tmpIywph4.pyomo.lp
-2014-06-12 14:48:58.254127: Solve completed - number of solutions=1
-2014-06-12 14:48:58.267921: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpDic6dU.tmpMXoVX8.pyomo.lp
-2014-06-12 14:48:58.285750: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-WARNING: "[base]/pyomo.pysp/pyomo/pysp/plugins/phboundextension.py", 75, _compute_bound
- A nonzero mipgap was detected when using the PH bound plugin. The bound computation may as a result be conservative.
-Computed objective lower bound=-112587.0017
-WW PH Extension: Setting mipgap to 0.0161915, based on current value of the convergence metric
-2014-06-12 14:48:58.298436: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpxlN3HS.tmp6aBLIF.pyomo.lp
-2014-06-12 14:48:58.319419: Solve completed - number of solutions=1
-2014-06-12 14:48:58.333703: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpgbKcwg.tmpx787Eu.pyomo.lp
-2014-06-12 14:48:58.353680: Solve completed - number of solutions=1
-2014-06-12 14:48:58.367512: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpZSB7e4.tmpF3D5QU.pyomo.lp
-2014-06-12 14:48:58.386977: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=2 (total=3)
-Convergence metric= 0.0000 First stage cost avg= 112000.8392 Max-Min= 0.00
-Cumulative run-time=1.56 seconds
-PH converged - convergence metric is below threshold=0.0001
-Number of discrete variables fixed before final plugin calls=0 (total=0)
-Number of continuous variables fixed before final plugin calls=2 (total=3)
-2014-06-12 14:48:58.399723: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpr4AIog.tmpDApN1T.pyomo.lp
-2014-06-12 14:48:58.417705: Solve completed - number of solutions=1
-2014-06-12 14:48:58.432372: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpBhcuyB.tmp_pZCO3.pyomo.lp
-2014-06-12 14:48:58.450676: Solve completed - number of solutions=1
-2014-06-12 14:48:58.464914: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpy8frb0.tmp1x_flt.pyomo.lp
-2014-06-12 14:48:58.482132: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-WARNING: "[base]/pyomo.pysp/pyomo/pysp/plugins/phboundextension.py", 75, _compute_bound
- A nonzero mipgap was detected when using the PH bound plugin. The bound computation may as a result be conservative.
-Computed objective lower bound=-112587.0017
-
- Iteration Bound
- Trivial -115405.555588
- 0 -112378.395124
- 1 -114092.2009
- 2 -111905.774744
- 3 -110093.788354
- 4 -109499.516145
- 5 -109440.780542
- 6 -112587.001699
- 7 -112587.001701
-
-Lower bound history written to file=phbound.txt
-
-Best Objective Bound: -109440.780542
-
-Best Lower Bound written to file=phbestbound.txt
-WW PH extension: Fixing all discrete variables that are converged at termination
-Total number of variables fixed at PH termination due to convergence=0
-PH algorithm history written to file=ph_history.json
-PH complete
-Convergence history:
-Iteration Metric Value
- 0 0.2540
- 1 0.1259
- 2 0.0816
- 3 0.0796
- 4 0.0776
- 5 0.0609
- 6 0.0391
- 7 0.0000
-
-***********************************************************************************************
->>>THE EXPECTED SUM OF THE STAGE COST VARIABLES=-107905.908751<<<
->>>***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise<<<
-***********************************************************************************************
-Final number of discrete variables fixed=0 (total=0)
-Final number of continuous variables fixed=2 (total=3)
-Final variable values:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 96.8872 96.8872 96.8872 Max-Min: 0.0000 Avg: 96.8872
- Index: [SUGAR_BEETS] Values: 265.9079 265.9079 265.9079 Max-Min: 0.0000 Avg: 265.9079
- Index: [WHEAT] Values: 137.2050 137.2050 137.2050 Max-Min: 0.0000 Avg: 137.2050
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 112000.8392 112000.8392 112000.8391 Max-Min: 0.0000 Avg: 112000.8392
-Final costs:
-Scenario Tree Costs
-***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise
-----------------------------------------------------
-Tree Nodes:
-
- Name=AboveAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AboveAverageScenario
- Expected cost of (sub)tree rooted at node=-272111.4913
-
- Name=AverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AverageScenario
- Expected cost of (sub)tree rooted at node=-223364.9995
-
- Name=BelowAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-164243.7528
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- AboveAverageNode
- AverageNode
- BelowAverageNode
- Scenarios:
- AboveAverageScenario
- AverageScenario
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-107905.9088
-
-----------------------------------------------------
-Scenarios:
-
- Name=AboveAverageScenario
- Probability=0.3333
- Leaf Node=AboveAverageNode
- Tree node sequence:
- RootNode
- AboveAverageNode
- Stage= FirstStage Cost=112000.8391
- Stage= SecondStage Cost=-272111.4913
- Total scenario cost=-160110.6522
-
- Name=AverageScenario
- Probability=0.3333
- Leaf Node=AverageNode
- Tree node sequence:
- RootNode
- AverageNode
- Stage= FirstStage Cost=112000.8392
- Stage= SecondStage Cost=-223364.9995
- Total scenario cost=-111364.1604
-
- Name=BelowAverageScenario
- Probability=0.3333
- Leaf Node=BelowAverageNode
- Tree node sequence:
- RootNode
- BelowAverageNode
- Stage= FirstStage Cost=112000.8392
- Stage= SecondStage Cost=-164243.7528
- Total scenario cost=-52242.9136
-
-----------------------------------------------------
-
-Total PH execution time=1.66 seconds
-
-Scenario tree solution written to file=ph_solution.json
-Shutting down Pyro solver components
-Dispatcher received request to shut down - initiating...
-
-Total execution time=4.71 seconds
-Name Server gracefully stopped.
-Lost connection to dispatch server - shutting down...
diff --git a/pyomo/pysp/tests/examples/baselines/TestPHFarmerSerial.test1.baseline b/pyomo/pysp/tests/examples/baselines/TestPHFarmerSerial.test1.baseline
deleted file mode 100644
index 19023a0d4f2..00000000000
--- a/pyomo/pysp/tests/examples/baselines/TestPHFarmerSerial.test1.baseline
+++ /dev/null
@@ -1,391 +0,0 @@
-User-defined PH extension module=pyomo.pysp.plugins.phhistoryextension already imported - skipping
-Initializing PH
-
-User-defined PH solution writer module=pyomo.pysp.plugins.jsonsolutionwriter already imported - skipping
-Starting PH
-
-Initiating PH iteration=0
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.2540 First stage cost avg= 113494.4444 Max-Min=10416.67
-Cumulative run-time=0.05 seconds
-
-Initiating PH iteration=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.1259 First stage cost avg= 113107.2221 Max-Min= 6943.89
-Cumulative run-time=0.13 seconds
-
-Initiating PH iteration=2
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0816 First stage cost avg= 112954.6296 Max-Min= 2234.82
-Cumulative run-time=0.20 seconds
-
-Initiating PH iteration=3
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0796 First stage cost avg= 112963.0248 Max-Min= 2375.31
-Cumulative run-time=0.27 seconds
-
-Initiating PH iteration=4
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0776 First stage cost avg= 112915.6071 Max-Min= 3047.08
-Cumulative run-time=0.34 seconds
-
-Initiating PH iteration=5
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0794 First stage cost avg= 112825.3926 Max-Min= 3339.81
-Cumulative run-time=0.40 seconds
-
-Initiating PH iteration=6
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0668 First stage cost avg= 112317.9502 Max-Min= 2019.60
-Cumulative run-time=0.48 seconds
-
-Initiating PH iteration=7
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0542 First stage cost avg= 111364.4660 Max-Min= 1181.85
-Cumulative run-time=0.55 seconds
-
-Initiating PH iteration=8
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0360 First stage cost avg= 110283.4074 Max-Min= 463.23
-Cumulative run-time=0.62 seconds
-
-Initiating PH iteration=9
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0243 First stage cost avg= 109399.2542 Max-Min= 363.90
-Cumulative run-time=0.69 seconds
-
-Initiating PH iteration=10
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0256 First stage cost avg= 108834.1930 Max-Min= 933.90
-Cumulative run-time=0.77 seconds
-
-Initiating PH iteration=11
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0248 First stage cost avg= 108575.3219 Max-Min= 918.57
-Cumulative run-time=0.84 seconds
-
-Initiating PH iteration=12
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0163 First stage cost avg= 108513.5347 Max-Min= 591.25
-Cumulative run-time=0.91 seconds
-
-Initiating PH iteration=13
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0081 First stage cost avg= 108528.2899 Max-Min= 175.95
-Cumulative run-time=0.98 seconds
-
-Initiating PH iteration=14
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0168 First stage cost avg= 108561.6577 Max-Min= 274.77
-Cumulative run-time=1.05 seconds
-
-Initiating PH iteration=15
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0163 First stage cost avg= 108604.0579 Max-Min= 295.14
-Cumulative run-time=1.11 seconds
-
-Initiating PH iteration=16
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0098 First stage cost avg= 108667.3583 Max-Min= 127.67
-Cumulative run-time=1.17 seconds
-
-Initiating PH iteration=17
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0032 First stage cost avg= 108758.4237 Max-Min= 59.69
-Cumulative run-time=1.24 seconds
-
-Initiating PH iteration=18
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0026 First stage cost avg= 108868.1277 Max-Min= 101.79
-Cumulative run-time=1.32 seconds
-
-Initiating PH iteration=19
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0039 First stage cost avg= 108975.3089 Max-Min= 73.41
-Cumulative run-time=1.39 seconds
-
-Initiating PH iteration=20
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0043 First stage cost avg= 109057.4144 Max-Min= 39.47
-Cumulative run-time=1.46 seconds
-
-Initiating PH iteration=21
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0044 First stage cost avg= 109099.7145 Max-Min= 87.57
-Cumulative run-time=1.53 seconds
-
-Initiating PH iteration=22
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0040 First stage cost avg= 109099.1239 Max-Min= 104.22
-Cumulative run-time=1.59 seconds
-
-Initiating PH iteration=23
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0032 First stage cost avg= 109062.8322 Max-Min= 88.54
-Cumulative run-time=1.66 seconds
-
-Initiating PH iteration=24
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0021 First stage cost avg= 109004.1156 Max-Min= 54.49
-Cumulative run-time=1.73 seconds
-
-Initiating PH iteration=25
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0008 First stage cost avg= 108937.8039 Max-Min= 16.89
-Cumulative run-time=1.80 seconds
-
-Initiating PH iteration=26
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0005 First stage cost avg= 108876.8822 Max-Min= 14.27
-Cumulative run-time=1.87 seconds
-
-Initiating PH iteration=27
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0015 First stage cost avg= 108830.6201 Max-Min= 34.81
-Cumulative run-time=1.93 seconds
-
-Initiating PH iteration=28
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0021 First stage cost avg= 108803.9655 Max-Min= 44.57
-Cumulative run-time=2.00 seconds
-
-Initiating PH iteration=29
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0023 First stage cost avg= 108797.7661 Max-Min= 45.24
-Cumulative run-time=2.07 seconds
-
-Initiating PH iteration=30
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0020 First stage cost avg= 108809.4793 Max-Min= 39.01
-Cumulative run-time=2.14 seconds
-
-Initiating PH iteration=31
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0015 First stage cost avg= 108834.1639 Max-Min= 28.07
-Cumulative run-time=2.20 seconds
-
-Initiating PH iteration=32
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0008 First stage cost avg= 108865.6237 Max-Min= 14.67
-Cumulative run-time=2.27 seconds
-
-Initiating PH iteration=33
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0001 First stage cost avg= 108897.5679 Max-Min= 1.06
-Cumulative run-time=2.34 seconds
-PH converged - convergence metric is below threshold=0.0001
-Number of discrete variables fixed before final plugin calls=0 (total=0)
-Number of continuous variables fixed before final plugin calls=0 (total=3)
-PH algorithm history written to file=ph_history.json
-PH complete
-Convergence history:
-Iteration Metric Value
- 0 0.2540
- 1 0.1259
- 2 0.0816
- 3 0.0796
- 4 0.0776
- 5 0.0794
- 6 0.0668
- 7 0.0542
- 8 0.0360
- 9 0.0243
- 10 0.0256
- 11 0.0248
- 12 0.0163
- 13 0.0081
- 14 0.0168
- 15 0.0163
- 16 0.0098
- 17 0.0032
- 18 0.0026
- 19 0.0039
- 20 0.0043
- 21 0.0044
- 22 0.0040
- 23 0.0032
- 24 0.0021
- 25 0.0008
- 26 0.0005
- 27 0.0015
- 28 0.0021
- 29 0.0023
- 30 0.0020
- 31 0.0015
- 32 0.0008
- 33 0.0001
-
-***********************************************************************************************
->>>THE EXPECTED SUM OF THE STAGE COST VARIABLES=-108388.378639<<<
->>>***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise<<<
-***********************************************************************************************
-Final number of discrete variables fixed=0 (total=0)
-Final number of continuous variables fixed=0 (total=3)
-Final variable values:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 79.9844 80.0000 79.9768 Max-Min: 0.0232 Avg: 79.9871
- Index: [SUGAR_BEETS] Values: 249.9848 249.9770 250.0000 Max-Min: 0.0230 Avg: 249.9873
- Index: [WHEAT] Values: 170.0308 170.0230 170.0232 Max-Min: 0.0078 Avg: 170.0256
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108897.0836 108897.4725 108898.1476 Max-Min: 1.0640 Avg: 108897.5679
-Final costs:
-Scenario Tree Costs
-***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise
-----------------------------------------------------
-Tree Nodes:
-
- Name=AboveAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AboveAverageScenario
- Expected cost of (sub)tree rooted at node=-275899.3041
-
- Name=AverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AverageScenario
- Expected cost of (sub)tree rooted at node=-218243.2209
-
- Name=BelowAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-157713.8615
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- AboveAverageNode
- AverageNode
- BelowAverageNode
- Scenarios:
- AboveAverageScenario
- AverageScenario
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-108388.3786
-
-----------------------------------------------------
-Scenarios:
-
- Name=AboveAverageScenario
- Probability=0.3333
- Leaf Node=AboveAverageNode
- Tree node sequence:
- RootNode
- AboveAverageNode
- Stage= FirstStage Cost=108898.1476
- Stage= SecondStage Cost=-275899.3041
- Total scenario cost=-167001.1565
-
- Name=AverageScenario
- Probability=0.3333
- Leaf Node=AverageNode
- Tree node sequence:
- RootNode
- AverageNode
- Stage= FirstStage Cost=108897.4725
- Stage= SecondStage Cost=-218243.2209
- Total scenario cost=-109345.7484
-
- Name=BelowAverageScenario
- Probability=0.3333
- Leaf Node=BelowAverageNode
- Tree node sequence:
- RootNode
- BelowAverageNode
- Stage= FirstStage Cost=108897.0836
- Stage= SecondStage Cost=-157713.8615
- Total scenario cost=-48816.7780
-
-----------------------------------------------------
-
-Total PH execution time=2.34 seconds
-
-Scenario tree solution written to file=ph_solution.json
-
-Total execution time=2.38 seconds
diff --git a/pyomo/pysp/tests/examples/baselines/TestPHFarmerSerial.test10.baseline b/pyomo/pysp/tests/examples/baselines/TestPHFarmerSerial.test10.baseline
deleted file mode 100644
index cc0c7386663..00000000000
--- a/pyomo/pysp/tests/examples/baselines/TestPHFarmerSerial.test10.baseline
+++ /dev/null
@@ -1,254 +0,0 @@
-User-defined PH extension module=pyomo.pysp.plugins.phhistoryextension already imported - skipping
-User-defined PH extension module=pyomo.pysp.plugins.convexhullboundextension already imported - skipping
-Initializing PH
-
-convexhullboundextension using default update interval=1
-WARNING: No construction rule or expression specified for constraint 'W_Balance'
-WARNING: No construction rule or expression specified for constraint 'V_Bound'
-WW PH Extension: Loading user-specified configuration from file=/Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/examples/pysp/farmer/config/wwph.cfg
-WW PH Extension: Loading variable suffixes from file=/Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/examples/pysp/farmer/config/wwph.suffixes
-User-defined PH solution writer module=pyomo.pysp.plugins.jsonsolutionwriter already imported - skipping
-Starting PH
-
-Initiating PH iteration=0
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-115405.5556
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.2540 First stage cost avg= 113494.4444 Max-Min=10416.67
-Cumulative run-time=0.08 seconds
-
-Initiating PH iteration=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-112378.3952
-WW PH Extension: Setting mipgap to 0.1000000, as specified in the configuration file
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.1259 First stage cost avg= 113107.2221 Max-Min= 6943.89
-Cumulative run-time=0.24 seconds
-
-Initiating PH iteration=2
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-WARNING: "[base]/pyomo.pysp/pyomo/pysp/plugins/phboundextension.py", 75, _compute_bound
- A nonzero mipgap was detected when using the PH bound plugin. The bound computation may as a result be conservative.
-Computed objective lower bound=-119146.9138
-WW PH Extension: Setting mipgap to 0.0500717, based on current value of the convergence metric
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0816 First stage cost avg= 112954.6296 Max-Min= 2234.82
-Cumulative run-time=0.41 seconds
-
-Initiating PH iteration=3
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-WARNING: "[base]/pyomo.pysp/pyomo/pysp/plugins/phboundextension.py", 75, _compute_bound
- A nonzero mipgap was detected when using the PH bound plugin. The bound computation may as a result be conservative.
-Computed objective lower bound=-122839.9373
-WW PH Extension: Setting mipgap to 0.0327607, based on current value of the convergence metric
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0796 First stage cost avg= 112963.0248 Max-Min= 2375.31
-Cumulative run-time=0.57 seconds
-
-Initiating PH iteration=4
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-WARNING: "[base]/pyomo.pysp/pyomo/pysp/plugins/phboundextension.py", 75, _compute_bound
- A nonzero mipgap was detected when using the PH bound plugin. The bound computation may as a result be conservative.
-Computed objective lower bound=-115850.2283
-WW PH Extension: Setting mipgap to 0.0319973, based on current value of the convergence metric
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Slamming criteria are satisifed - accelerating convergence
-Slamming variable=DevotedAcreage[CORN] at tree node=RootNode to value=96.8871743104; value=node average (anywhere)
-Fixing variable=DevotedAcreage[CORN] at tree node=RootNode to value=96.8871743104; converged for 0 iterations
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0776 First stage cost avg= 112915.6071 Max-Min= 3047.08
-Cumulative run-time=0.73 seconds
-
-Initiating PH iteration=5
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-WARNING: "[base]/pyomo.pysp/pyomo/pysp/plugins/phboundextension.py", 75, _compute_bound
- A nonzero mipgap was detected when using the PH bound plugin. The bound computation may as a result be conservative.
-Computed objective lower bound=-114662.4278
-WW PH Extension: Setting mipgap to 0.0312342, based on current value of the convergence metric
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=1 (total=3)
-Convergence metric= 0.0609 First stage cost avg= 112895.6887 Max-Min= 5246.95
-Cumulative run-time=0.88 seconds
-
-Initiating PH iteration=6
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-WARNING: "[base]/pyomo.pysp/pyomo/pysp/plugins/phboundextension.py", 75, _compute_bound
- A nonzero mipgap was detected when using the PH bound plugin. The bound computation may as a result be conservative.
-Computed objective lower bound=-114508.9364
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-WW PH Extension: Setting mipgap to 0.0247045, based on current value of the convergence metric
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Slamming criteria are satisifed - accelerating convergence
-Slamming variable=DevotedAcreage[WHEAT] at tree node=RootNode to value=140.569962554; value=node average (anywhere)
-Fixing variable=DevotedAcreage[WHEAT] at tree node=RootNode to value=140.569962554; converged for 0 iterations
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=1 (total=3)
-Convergence metric= 0.0514 First stage cost avg= 111630.6889 Max-Min= 3912.48
-Cumulative run-time=1.05 seconds
-
-Initiating PH iteration=7
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-WARNING: "[base]/pyomo.pysp/pyomo/pysp/plugins/phboundextension.py", 75, _compute_bound
- A nonzero mipgap was detected when using the PH bound plugin. The bound computation may as a result be conservative.
-Computed objective lower bound=-115786.7766
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-WW PH Extension: Setting mipgap to 0.0210062, based on current value of the convergence metric
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=2 (total=3)
-Convergence metric= 0.0000 First stage cost avg= 111630.6889 Max-Min= 0.00
-Cumulative run-time=1.21 seconds
-PH converged - convergence metric is below threshold=0.0001
-Number of discrete variables fixed before final plugin calls=0 (total=0)
-Number of continuous variables fixed before final plugin calls=2 (total=3)
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-WARNING: "[base]/pyomo.pysp/pyomo/pysp/plugins/phboundextension.py", 75, _compute_bound
- A nonzero mipgap was detected when using the PH bound plugin. The bound computation may as a result be conservative.
-Computed objective lower bound=-114931.2396
-
- Iteration Bound
- Trivial -115405.555588
- 0 -112378.395154
- 1 -119146.913826
- 2 -122839.937276
- 3 -115850.228262
- 4 -114662.427763
- 5 -114508.936391
- 6 -115786.776605
- 7 -114931.239605
-
-Lower bound history written to file=phbound.txt
-
-Best Objective Bound: -112378.395154
-
-Best Lower Bound written to file=phbestbound.txt
-WW PH extension: Fixing all discrete variables that are converged at termination
-Total number of variables fixed at PH termination due to convergence=0
-PH algorithm history written to file=ph_history.json
-PH complete
-Convergence history:
-Iteration Metric Value
- 0 0.2540
- 1 0.1259
- 2 0.0816
- 3 0.0796
- 4 0.0776
- 5 0.0609
- 6 0.0514
- 7 0.0000
-
-***********************************************************************************************
->>>THE EXPECTED SUM OF THE STAGE COST VARIABLES=-107983.303737<<<
->>>***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise<<<
-***********************************************************************************************
-Final number of discrete variables fixed=0 (total=0)
-Final number of continuous variables fixed=2 (total=3)
-Final variable values:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 96.8872 96.8872 96.8872 Max-Min: 0.0000 Avg: 96.8872
- Index: [SUGAR_BEETS] Values: 262.5429 262.5429 262.5429 Max-Min: 0.0000 Avg: 262.5429
- Index: [WHEAT] Values: 140.5700 140.5700 140.5700 Max-Min: 0.0000 Avg: 140.5700
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 111630.6889 111630.6888 111630.6889 Max-Min: 0.0000 Avg: 111630.6889
-Final costs:
-Scenario Tree Costs
-***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise
-----------------------------------------------------
-Tree Nodes:
-
- Name=AboveAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AboveAverageScenario
- Expected cost of (sub)tree rooted at node=-273020.0421
-
- Name=AverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AverageScenario
- Expected cost of (sub)tree rooted at node=-222372.3235
-
- Name=BelowAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-163449.6122
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- AboveAverageNode
- AverageNode
- BelowAverageNode
- Scenarios:
- AboveAverageScenario
- AverageScenario
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-107983.3037
-
-----------------------------------------------------
-Scenarios:
-
- Name=AboveAverageScenario
- Probability=0.3333
- Leaf Node=AboveAverageNode
- Tree node sequence:
- RootNode
- AboveAverageNode
- Stage= FirstStage Cost=111630.6889
- Stage= SecondStage Cost=-273020.0421
- Total scenario cost=-161389.3532
-
- Name=AverageScenario
- Probability=0.3333
- Leaf Node=AverageNode
- Tree node sequence:
- RootNode
- AverageNode
- Stage= FirstStage Cost=111630.6888
- Stage= SecondStage Cost=-222372.3235
- Total scenario cost=-110741.6346
-
- Name=BelowAverageScenario
- Probability=0.3333
- Leaf Node=BelowAverageNode
- Tree node sequence:
- RootNode
- BelowAverageNode
- Stage= FirstStage Cost=111630.6889
- Stage= SecondStage Cost=-163449.6122
- Total scenario cost=-51818.9233
-
-----------------------------------------------------
-
-Total PH execution time=1.28 seconds
-
-Scenario tree solution written to file=ph_solution.json
-
-Total execution time=1.32 seconds
diff --git a/pyomo/pysp/tests/examples/baselines/TestPHFarmerSerial.test11.baseline b/pyomo/pysp/tests/examples/baselines/TestPHFarmerSerial.test11.baseline
deleted file mode 100644
index bb27402e0d9..00000000000
--- a/pyomo/pysp/tests/examples/baselines/TestPHFarmerSerial.test11.baseline
+++ /dev/null
@@ -1,250 +0,0 @@
-User-defined PH extension module=pyomo.pysp.plugins.phhistoryextension already imported - skipping
-User-defined PH extension module=pyomo.pysp.plugins.phboundextension already imported - skipping
-Initializing PH
-
-phboundextension using default update interval=1
-WW PH Extension: Loading user-specified configuration from file=/Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/examples/pysp/farmer/config/wwph.cfg
-WW PH Extension: Loading variable suffixes from file=/Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/examples/pysp/farmer/config/wwph.suffixes
-User-defined PH solution writer module=pyomo.pysp.plugins.jsonsolutionwriter already imported - skipping
-Starting PH
-
-Initiating PH iteration=0
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-115405.5556
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.2540 First stage cost avg= 113494.4444 Max-Min=10416.67
-Cumulative run-time=0.06 seconds
-
-Initiating PH iteration=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-112378.3951
-WW PH Extension: Setting mipgap to 0.1000000, as specified in the configuration file
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.1259 First stage cost avg= 113107.2221 Max-Min= 6943.89
-Cumulative run-time=0.20 seconds
-
-Initiating PH iteration=2
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-WARNING: "[base]/pyomo.pysp/pyomo/pysp/plugins/phboundextension.py", 75, _compute_bound
- A nonzero mipgap was detected when using the PH bound plugin. The bound computation may as a result be conservative.
-Computed objective lower bound=-114092.2009
-WW PH Extension: Setting mipgap to 0.0500717, based on current value of the convergence metric
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0816 First stage cost avg= 112954.6296 Max-Min= 2234.82
-Cumulative run-time=0.33 seconds
-
-Initiating PH iteration=3
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-WARNING: "[base]/pyomo.pysp/pyomo/pysp/plugins/phboundextension.py", 75, _compute_bound
- A nonzero mipgap was detected when using the PH bound plugin. The bound computation may as a result be conservative.
-Computed objective lower bound=-111905.7747
-WW PH Extension: Setting mipgap to 0.0327607, based on current value of the convergence metric
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0796 First stage cost avg= 112963.0248 Max-Min= 2375.31
-Cumulative run-time=0.47 seconds
-
-Initiating PH iteration=4
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-WARNING: "[base]/pyomo.pysp/pyomo/pysp/plugins/phboundextension.py", 75, _compute_bound
- A nonzero mipgap was detected when using the PH bound plugin. The bound computation may as a result be conservative.
-Computed objective lower bound=-110093.7884
-WW PH Extension: Setting mipgap to 0.0319973, based on current value of the convergence metric
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Slamming criteria are satisifed - accelerating convergence
-Slamming variable=DevotedAcreage[CORN] at tree node=RootNode to value=96.8871743104; value=node average (anywhere)
-Fixing variable=DevotedAcreage[CORN] at tree node=RootNode to value=96.8871743104; converged for 0 iterations
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0776 First stage cost avg= 112915.6071 Max-Min= 3047.08
-Cumulative run-time=0.60 seconds
-
-Initiating PH iteration=5
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-WARNING: "[base]/pyomo.pysp/pyomo/pysp/plugins/phboundextension.py", 75, _compute_bound
- A nonzero mipgap was detected when using the PH bound plugin. The bound computation may as a result be conservative.
-Computed objective lower bound=-109499.5161
-WW PH Extension: Setting mipgap to 0.0312342, based on current value of the convergence metric
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=1 (total=3)
-Convergence metric= 0.0609 First stage cost avg= 112895.6887 Max-Min= 5246.95
-Cumulative run-time=0.74 seconds
-
-Initiating PH iteration=6
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-WARNING: "[base]/pyomo.pysp/pyomo/pysp/plugins/phboundextension.py", 75, _compute_bound
- A nonzero mipgap was detected when using the PH bound plugin. The bound computation may as a result be conservative.
-Computed objective lower bound=-109440.7805
-WW PH Extension: Setting mipgap to 0.0247045, based on current value of the convergence metric
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Slamming criteria are satisifed - accelerating convergence
-Slamming variable=DevotedAcreage[WHEAT] at tree node=RootNode to value=137.204959966; value=node average (anywhere)
-Fixing variable=DevotedAcreage[WHEAT] at tree node=RootNode to value=137.204959966; converged for 0 iterations
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=1 (total=3)
-Convergence metric= 0.0391 First stage cost avg= 112000.8391 Max-Min= 2624.80
-Cumulative run-time=0.88 seconds
-
-Initiating PH iteration=7
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-WARNING: "[base]/pyomo.pysp/pyomo/pysp/plugins/phboundextension.py", 75, _compute_bound
- A nonzero mipgap was detected when using the PH bound plugin. The bound computation may as a result be conservative.
-Computed objective lower bound=-112587.0017
-WW PH Extension: Setting mipgap to 0.0161915, based on current value of the convergence metric
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=2 (total=3)
-Convergence metric= 0.0000 First stage cost avg= 112000.8392 Max-Min= 0.00
-Cumulative run-time=1.01 seconds
-PH converged - convergence metric is below threshold=0.0001
-Number of discrete variables fixed before final plugin calls=0 (total=0)
-Number of continuous variables fixed before final plugin calls=2 (total=3)
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-WARNING: "[base]/pyomo.pysp/pyomo/pysp/plugins/phboundextension.py", 75, _compute_bound
- A nonzero mipgap was detected when using the PH bound plugin. The bound computation may as a result be conservative.
-Computed objective lower bound=-112587.0017
-
- Iteration Bound
- Trivial -115405.555588
- 0 -112378.395124
- 1 -114092.2009
- 2 -111905.774744
- 3 -110093.788354
- 4 -109499.516145
- 5 -109440.780542
- 6 -112587.001699
- 7 -112587.001701
-
-Lower bound history written to file=phbound.txt
-
-Best Objective Bound: -109440.780542
-
-Best Lower Bound written to file=phbestbound.txt
-WW PH extension: Fixing all discrete variables that are converged at termination
-Total number of variables fixed at PH termination due to convergence=0
-PH algorithm history written to file=ph_history.json
-PH complete
-Convergence history:
-Iteration Metric Value
- 0 0.2540
- 1 0.1259
- 2 0.0816
- 3 0.0796
- 4 0.0776
- 5 0.0609
- 6 0.0391
- 7 0.0000
-
-***********************************************************************************************
->>>THE EXPECTED SUM OF THE STAGE COST VARIABLES=-107905.908751<<<
->>>***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise<<<
-***********************************************************************************************
-Final number of discrete variables fixed=0 (total=0)
-Final number of continuous variables fixed=2 (total=3)
-Final variable values:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 96.8872 96.8872 96.8872 Max-Min: 0.0000 Avg: 96.8872
- Index: [SUGAR_BEETS] Values: 265.9079 265.9079 265.9079 Max-Min: 0.0000 Avg: 265.9079
- Index: [WHEAT] Values: 137.2050 137.2050 137.2050 Max-Min: 0.0000 Avg: 137.2050
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 112000.8392 112000.8392 112000.8391 Max-Min: 0.0000 Avg: 112000.8392
-Final costs:
-Scenario Tree Costs
-***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise
-----------------------------------------------------
-Tree Nodes:
-
- Name=AboveAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AboveAverageScenario
- Expected cost of (sub)tree rooted at node=-272111.4913
-
- Name=AverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AverageScenario
- Expected cost of (sub)tree rooted at node=-223364.9995
-
- Name=BelowAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-164243.7528
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- AboveAverageNode
- AverageNode
- BelowAverageNode
- Scenarios:
- AboveAverageScenario
- AverageScenario
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-107905.9088
-
-----------------------------------------------------
-Scenarios:
-
- Name=AboveAverageScenario
- Probability=0.3333
- Leaf Node=AboveAverageNode
- Tree node sequence:
- RootNode
- AboveAverageNode
- Stage= FirstStage Cost=112000.8391
- Stage= SecondStage Cost=-272111.4913
- Total scenario cost=-160110.6522
-
- Name=AverageScenario
- Probability=0.3333
- Leaf Node=AverageNode
- Tree node sequence:
- RootNode
- AverageNode
- Stage= FirstStage Cost=112000.8392
- Stage= SecondStage Cost=-223364.9995
- Total scenario cost=-111364.1604
-
- Name=BelowAverageScenario
- Probability=0.3333
- Leaf Node=BelowAverageNode
- Tree node sequence:
- RootNode
- BelowAverageNode
- Stage= FirstStage Cost=112000.8392
- Stage= SecondStage Cost=-164243.7528
- Total scenario cost=-52242.9136
-
-----------------------------------------------------
-
-Total PH execution time=1.08 seconds
-
-Scenario tree solution written to file=ph_solution.json
-
-Total execution time=1.12 seconds
diff --git a/pyomo/pysp/tests/examples/baselines/TestPHFarmerSerial.test12.baseline b/pyomo/pysp/tests/examples/baselines/TestPHFarmerSerial.test12.baseline
deleted file mode 100644
index 4c84c27e21a..00000000000
--- a/pyomo/pysp/tests/examples/baselines/TestPHFarmerSerial.test12.baseline
+++ /dev/null
@@ -1,254 +0,0 @@
-User-defined PH extension module=pyomo.pysp.plugins.phhistoryextension already imported - skipping
-User-defined PH extension module=pyomo.pysp.plugins.convexhullboundextension already imported - skipping
-Initializing PH
-
-convexhullboundextension using default update interval=1
-WARNING: No construction rule or expression specified for constraint 'W_Balance'
-WARNING: No construction rule or expression specified for constraint 'V_Bound'
-WW PH Extension: Loading user-specified configuration from file=/Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/examples/pysp/farmer/config/wwph.cfg
-WW PH Extension: Loading variable suffixes from file=/Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/examples/pysp/farmer/config/wwph.suffixes
-User-defined PH solution writer module=pyomo.pysp.plugins.jsonsolutionwriter already imported - skipping
-Starting PH
-
-Initiating PH iteration=0
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-115405.5556
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.2540 First stage cost avg= 113494.4444 Max-Min=10416.67
-Cumulative run-time=0.08 seconds
-
-Initiating PH iteration=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-112378.3952
-WW PH Extension: Setting mipgap to 0.1000000, as specified in the configuration file
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.1259 First stage cost avg= 113107.2221 Max-Min= 6943.89
-Cumulative run-time=0.24 seconds
-
-Initiating PH iteration=2
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-WARNING: "[base]/pyomo.pysp/pyomo/pysp/plugins/phboundextension.py", 75, _compute_bound
- A nonzero mipgap was detected when using the PH bound plugin. The bound computation may as a result be conservative.
-Computed objective lower bound=-119146.9138
-WW PH Extension: Setting mipgap to 0.0500717, based on current value of the convergence metric
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0816 First stage cost avg= 112954.6296 Max-Min= 2234.82
-Cumulative run-time=0.40 seconds
-
-Initiating PH iteration=3
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-WARNING: "[base]/pyomo.pysp/pyomo/pysp/plugins/phboundextension.py", 75, _compute_bound
- A nonzero mipgap was detected when using the PH bound plugin. The bound computation may as a result be conservative.
-Computed objective lower bound=-122839.9373
-WW PH Extension: Setting mipgap to 0.0327607, based on current value of the convergence metric
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0796 First stage cost avg= 112963.0248 Max-Min= 2375.31
-Cumulative run-time=0.56 seconds
-
-Initiating PH iteration=4
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-WARNING: "[base]/pyomo.pysp/pyomo/pysp/plugins/phboundextension.py", 75, _compute_bound
- A nonzero mipgap was detected when using the PH bound plugin. The bound computation may as a result be conservative.
-Computed objective lower bound=-115850.2283
-WW PH Extension: Setting mipgap to 0.0319973, based on current value of the convergence metric
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Slamming criteria are satisifed - accelerating convergence
-Slamming variable=DevotedAcreage[CORN] at tree node=RootNode to value=96.8871743104; value=node average (anywhere)
-Fixing variable=DevotedAcreage[CORN] at tree node=RootNode to value=96.8871743104; converged for 0 iterations
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0776 First stage cost avg= 112915.6071 Max-Min= 3047.08
-Cumulative run-time=0.72 seconds
-
-Initiating PH iteration=5
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-WARNING: "[base]/pyomo.pysp/pyomo/pysp/plugins/phboundextension.py", 75, _compute_bound
- A nonzero mipgap was detected when using the PH bound plugin. The bound computation may as a result be conservative.
-Computed objective lower bound=-114662.4278
-WW PH Extension: Setting mipgap to 0.0312342, based on current value of the convergence metric
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=1 (total=3)
-Convergence metric= 0.0609 First stage cost avg= 112895.6887 Max-Min= 5246.95
-Cumulative run-time=0.88 seconds
-
-Initiating PH iteration=6
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-WARNING: "[base]/pyomo.pysp/pyomo/pysp/plugins/phboundextension.py", 75, _compute_bound
- A nonzero mipgap was detected when using the PH bound plugin. The bound computation may as a result be conservative.
-Computed objective lower bound=-114508.9364
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-WW PH Extension: Setting mipgap to 0.0247045, based on current value of the convergence metric
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Slamming criteria are satisifed - accelerating convergence
-Slamming variable=DevotedAcreage[WHEAT] at tree node=RootNode to value=140.569962554; value=node average (anywhere)
-Fixing variable=DevotedAcreage[WHEAT] at tree node=RootNode to value=140.569962554; converged for 0 iterations
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=1 (total=3)
-Convergence metric= 0.0514 First stage cost avg= 111630.6889 Max-Min= 3912.48
-Cumulative run-time=1.05 seconds
-
-Initiating PH iteration=7
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-WARNING: "[base]/pyomo.pysp/pyomo/pysp/plugins/phboundextension.py", 75, _compute_bound
- A nonzero mipgap was detected when using the PH bound plugin. The bound computation may as a result be conservative.
-Computed objective lower bound=-115786.7766
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-WW PH Extension: Setting mipgap to 0.0210062, based on current value of the convergence metric
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=2 (total=3)
-Convergence metric= 0.0000 First stage cost avg= 111630.6889 Max-Min= 0.00
-Cumulative run-time=1.21 seconds
-PH converged - convergence metric is below threshold=0.0001
-Number of discrete variables fixed before final plugin calls=0 (total=0)
-Number of continuous variables fixed before final plugin calls=2 (total=3)
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-WARNING: "[base]/pyomo.pysp/pyomo/pysp/plugins/phboundextension.py", 75, _compute_bound
- A nonzero mipgap was detected when using the PH bound plugin. The bound computation may as a result be conservative.
-Computed objective lower bound=-114931.2396
-
- Iteration Bound
- Trivial -115405.555588
- 0 -112378.395154
- 1 -119146.913826
- 2 -122839.937276
- 3 -115850.228262
- 4 -114662.427763
- 5 -114508.936391
- 6 -115786.776605
- 7 -114931.239605
-
-Lower bound history written to file=phbound.txt
-
-Best Objective Bound: -112378.395154
-
-Best Lower Bound written to file=phbestbound.txt
-WW PH extension: Fixing all discrete variables that are converged at termination
-Total number of variables fixed at PH termination due to convergence=0
-PH algorithm history written to file=ph_history.json
-PH complete
-Convergence history:
-Iteration Metric Value
- 0 0.2540
- 1 0.1259
- 2 0.0816
- 3 0.0796
- 4 0.0776
- 5 0.0609
- 6 0.0514
- 7 0.0000
-
-***********************************************************************************************
->>>THE EXPECTED SUM OF THE STAGE COST VARIABLES=-107983.303737<<<
->>>***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise<<<
-***********************************************************************************************
-Final number of discrete variables fixed=0 (total=0)
-Final number of continuous variables fixed=2 (total=3)
-Final variable values:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 96.8872 96.8872 96.8872 Max-Min: 0.0000 Avg: 96.8872
- Index: [SUGAR_BEETS] Values: 262.5429 262.5429 262.5429 Max-Min: 0.0000 Avg: 262.5429
- Index: [WHEAT] Values: 140.5700 140.5700 140.5700 Max-Min: 0.0000 Avg: 140.5700
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 111630.6889 111630.6888 111630.6889 Max-Min: 0.0000 Avg: 111630.6889
-Final costs:
-Scenario Tree Costs
-***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise
-----------------------------------------------------
-Tree Nodes:
-
- Name=AboveAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AboveAverageScenario
- Expected cost of (sub)tree rooted at node=-273020.0421
-
- Name=AverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AverageScenario
- Expected cost of (sub)tree rooted at node=-222372.3235
-
- Name=BelowAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-163449.6122
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- AboveAverageNode
- AverageNode
- BelowAverageNode
- Scenarios:
- AboveAverageScenario
- AverageScenario
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-107983.3037
-
-----------------------------------------------------
-Scenarios:
-
- Name=AboveAverageScenario
- Probability=0.3333
- Leaf Node=AboveAverageNode
- Tree node sequence:
- RootNode
- AboveAverageNode
- Stage= FirstStage Cost=111630.6889
- Stage= SecondStage Cost=-273020.0421
- Total scenario cost=-161389.3532
-
- Name=AverageScenario
- Probability=0.3333
- Leaf Node=AverageNode
- Tree node sequence:
- RootNode
- AverageNode
- Stage= FirstStage Cost=111630.6888
- Stage= SecondStage Cost=-222372.3235
- Total scenario cost=-110741.6346
-
- Name=BelowAverageScenario
- Probability=0.3333
- Leaf Node=BelowAverageNode
- Tree node sequence:
- RootNode
- BelowAverageNode
- Stage= FirstStage Cost=111630.6889
- Stage= SecondStage Cost=-163449.6122
- Total scenario cost=-51818.9233
-
-----------------------------------------------------
-
-Total PH execution time=1.28 seconds
-
-Scenario tree solution written to file=ph_solution.json
-
-Total execution time=1.32 seconds
diff --git a/pyomo/pysp/tests/examples/baselines/TestPHFarmerSerial.test13.baseline b/pyomo/pysp/tests/examples/baselines/TestPHFarmerSerial.test13.baseline
deleted file mode 100644
index 1c4a5fe7ce6..00000000000
--- a/pyomo/pysp/tests/examples/baselines/TestPHFarmerSerial.test13.baseline
+++ /dev/null
@@ -1,200 +0,0 @@
-User-defined PH extension module=pyomo.pysp.plugins.phhistoryextension already imported - skipping
-Initializing PH
-
-WW PH Extension: Loading user-specified configuration from file=/Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/examples/pysp/farmer/config/wwph.cfg
-WW PH Extension: Loading variable suffixes from file=/Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/examples/pysp/farmer/config/wwph.suffixes
-User-defined PH solution writer module=pyomo.pysp.plugins.jsonsolutionwriter already imported - skipping
-Starting PH
-
-Initiating PH iteration=0
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.2540 First stage cost avg= 113494.4444 Max-Min=10416.67
-Cumulative run-time=0.06 seconds
-
-Initiating PH iteration=1
-WW PH Extension: Setting mipgap to 0.1000000, as specified in the configuration file
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.1259 First stage cost avg= 113107.2221 Max-Min= 6943.89
-Cumulative run-time=0.13 seconds
-
-Initiating PH iteration=2
-WW PH Extension: Setting mipgap to 0.0500717, based on current value of the convergence metric
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0816 First stage cost avg= 112954.6296 Max-Min= 2234.82
-Cumulative run-time=0.19 seconds
-
-Initiating PH iteration=3
-WW PH Extension: Setting mipgap to 0.0327607, based on current value of the convergence metric
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0796 First stage cost avg= 112963.0248 Max-Min= 2375.31
-Cumulative run-time=0.26 seconds
-
-Initiating PH iteration=4
-WW PH Extension: Setting mipgap to 0.0319973, based on current value of the convergence metric
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Slamming criteria are satisifed - accelerating convergence
-Slamming variable=DevotedAcreage[CORN] at tree node=RootNode to value=96.8871743104; value=node average (anywhere)
-Fixing variable=DevotedAcreage[CORN] at tree node=RootNode to value=96.8871743104; converged for 0 iterations
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0776 First stage cost avg= 112915.6071 Max-Min= 3047.08
-Cumulative run-time=0.34 seconds
-
-Initiating PH iteration=5
-WW PH Extension: Setting mipgap to 0.0312342, based on current value of the convergence metric
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=1 (total=3)
-Convergence metric= 0.0609 First stage cost avg= 112895.6887 Max-Min= 5246.95
-Cumulative run-time=0.41 seconds
-
-Initiating PH iteration=6
-WW PH Extension: Setting mipgap to 0.0247045, based on current value of the convergence metric
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Slamming criteria are satisifed - accelerating convergence
-Slamming variable=DevotedAcreage[WHEAT] at tree node=RootNode to value=137.204959966; value=node average (anywhere)
-Fixing variable=DevotedAcreage[WHEAT] at tree node=RootNode to value=137.204959966; converged for 0 iterations
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=1 (total=3)
-Convergence metric= 0.0391 First stage cost avg= 112000.8391 Max-Min= 2624.80
-Cumulative run-time=0.47 seconds
-
-Initiating PH iteration=7
-WW PH Extension: Setting mipgap to 0.0161915, based on current value of the convergence metric
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=2 (total=3)
-Convergence metric= 0.0000 First stage cost avg= 112000.8392 Max-Min= 0.00
-Cumulative run-time=0.55 seconds
-PH converged - convergence metric is below threshold=0.0001
-Number of discrete variables fixed before final plugin calls=0 (total=0)
-Number of continuous variables fixed before final plugin calls=2 (total=3)
-WW PH extension: Fixing all discrete variables that are converged at termination
-Total number of variables fixed at PH termination due to convergence=0
-PH algorithm history written to file=ph_history.json
-PH complete
-Convergence history:
-Iteration Metric Value
- 0 0.2540
- 1 0.1259
- 2 0.0816
- 3 0.0796
- 4 0.0776
- 5 0.0609
- 6 0.0391
- 7 0.0000
-
-***********************************************************************************************
->>>THE EXPECTED SUM OF THE STAGE COST VARIABLES=-107905.908751<<<
->>>***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise<<<
-***********************************************************************************************
-Final number of discrete variables fixed=0 (total=0)
-Final number of continuous variables fixed=2 (total=3)
-Final variable values:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 96.8872 96.8872 96.8872 Max-Min: 0.0000 Avg: 96.8872
- Index: [SUGAR_BEETS] Values: 265.9079 265.9079 265.9079 Max-Min: 0.0000 Avg: 265.9079
- Index: [WHEAT] Values: 137.2050 137.2050 137.2050 Max-Min: 0.0000 Avg: 137.2050
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 112000.8392 112000.8392 112000.8391 Max-Min: 0.0000 Avg: 112000.8392
-Final costs:
-Scenario Tree Costs
-***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise
-----------------------------------------------------
-Tree Nodes:
-
- Name=AboveAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AboveAverageScenario
- Expected cost of (sub)tree rooted at node=-272111.4913
-
- Name=AverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AverageScenario
- Expected cost of (sub)tree rooted at node=-223364.9995
-
- Name=BelowAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-164243.7528
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- AboveAverageNode
- AverageNode
- BelowAverageNode
- Scenarios:
- AboveAverageScenario
- AverageScenario
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-107905.9088
-
-----------------------------------------------------
-Scenarios:
-
- Name=AboveAverageScenario
- Probability=0.3333
- Leaf Node=AboveAverageNode
- Tree node sequence:
- RootNode
- AboveAverageNode
- Stage= FirstStage Cost=112000.8391
- Stage= SecondStage Cost=-272111.4913
- Total scenario cost=-160110.6522
-
- Name=AverageScenario
- Probability=0.3333
- Leaf Node=AverageNode
- Tree node sequence:
- RootNode
- AverageNode
- Stage= FirstStage Cost=112000.8392
- Stage= SecondStage Cost=-223364.9995
- Total scenario cost=-111364.1604
-
- Name=BelowAverageScenario
- Probability=0.3333
- Leaf Node=BelowAverageNode
- Tree node sequence:
- RootNode
- BelowAverageNode
- Stage= FirstStage Cost=112000.8392
- Stage= SecondStage Cost=-164243.7528
- Total scenario cost=-52242.9136
-
-----------------------------------------------------
-
-Total PH execution time=0.55 seconds
-
-Scenario tree solution written to file=ph_solution.json
-
-Total execution time=0.59 seconds
diff --git a/pyomo/pysp/tests/examples/baselines/TestPHFarmerSerial.test14.baseline b/pyomo/pysp/tests/examples/baselines/TestPHFarmerSerial.test14.baseline
deleted file mode 100644
index dc688608199..00000000000
--- a/pyomo/pysp/tests/examples/baselines/TestPHFarmerSerial.test14.baseline
+++ /dev/null
@@ -1,216 +0,0 @@
-User-defined PH extension module=pyomo.pysp.plugins.phhistoryextension already imported - skipping
-Trying to import module=/Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/examples/pysp/farmer/config/aggregategetter.py
-Module successfully loaded
-Trying to import module=/Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/examples/pysp/farmer/config/rhosetter.py
-Module successfully loaded
-Trying to import module=/Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/examples/pysp/farmer/config/boundsetter.py
-Module successfully loaded
-Initializing PH
-
-Executing user aggregate getter callback function
-Executing user rho setter callback function
-Executing user bound setter callback function
-User-defined PH solution writer module=pyomo.pysp.plugins.jsonsolutionwriter already imported - skipping
-Starting PH
-
-Initiating PH iteration=0
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.2540 First stage cost avg= 113494.4444 Max-Min=10416.67
-Cumulative run-time=0.06 seconds
-
-Initiating PH iteration=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.2540 First stage cost avg= 113494.4444 Max-Min=10416.67
-Cumulative run-time=0.12 seconds
-
-Initiating PH iteration=2
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.2540 First stage cost avg= 113494.4445 Max-Min=10416.67
-Cumulative run-time=0.20 seconds
-
-Initiating PH iteration=3
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.1991 First stage cost avg= 113545.3418 Max-Min= 9341.08
-Cumulative run-time=0.27 seconds
-
-Initiating PH iteration=4
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.1166 First stage cost avg= 113837.6523 Max-Min= 6301.86
-Cumulative run-time=0.34 seconds
-
-Initiating PH iteration=5
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.1032 First stage cost avg= 114197.8075 Max-Min= 3806.58
-Cumulative run-time=0.42 seconds
-
-Initiating PH iteration=6
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.1094 First stage cost avg= 114422.4887 Max-Min= 3132.53
-Cumulative run-time=0.49 seconds
-
-Initiating PH iteration=7
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.1055 First stage cost avg= 114278.3496 Max-Min= 3564.95
-Cumulative run-time=0.56 seconds
-
-Initiating PH iteration=8
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.1022 First stage cost avg= 114107.3631 Max-Min= 4077.91
-Cumulative run-time=0.63 seconds
-
-Initiating PH iteration=9
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.1020 First stage cost avg= 114041.4185 Max-Min= 4275.74
-Cumulative run-time=0.69 seconds
-
-Initiating PH iteration=10
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.1021 First stage cost avg= 114054.4509 Max-Min= 4236.65
-Cumulative run-time=0.76 seconds
-Halting PH - reached maximal iteration count=10
-Number of discrete variables fixed before final plugin calls=0 (total=0)
-Number of continuous variables fixed before final plugin calls=0 (total=3)
-PH algorithm history written to file=ph_history.json
-PH complete
-Convergence history:
-Iteration Metric Value
- 0 0.2540
- 1 0.2540
- 2 0.2540
- 3 0.1991
- 4 0.1166
- 5 0.1032
- 6 0.1094
- 7 0.1055
- 8 0.1022
- 9 0.1020
- 10 0.1021
-
-***********************************************************************************************
->>>THE EXPECTED SUM OF THE STAGE COST VARIABLES=-111591.252155<<<
->>>***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise<<<
-***********************************************************************************************
-Final number of discrete variables fixed=0 (total=0)
-Final number of continuous variables fixed=0 (total=3)
-Final variable values:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 100.0000 80.0000 115.7919 Max-Min: 35.7919 Avg: 98.5973
- Index: [SUGAR_BEETS] Values: 300.0000 300.0000 250.0000 Max-Min: 50.0000 Avg: 283.3333
- Index: [WHEAT] Values: 100.0000 120.0000 134.2081 Max-Min: 34.2081 Avg: 118.0694
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 116000.0000 114400.0000 111763.3526 Max-Min: 4236.6473 Avg: 114054.4509
-Final costs:
-Scenario Tree Costs
-***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise
-----------------------------------------------------
-Tree Nodes:
-
- Name=AboveAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AboveAverageScenario
- Expected cost of (sub)tree rooted at node=-276973.7569
-
- Name=AverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AverageScenario
- Expected cost of (sub)tree rooted at node=-232999.9995
-
- Name=BelowAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-172799.9999
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- AboveAverageNode
- AverageNode
- BelowAverageNode
- Scenarios:
- AboveAverageScenario
- AverageScenario
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-111591.2522
-
-----------------------------------------------------
-Scenarios:
-
- Name=AboveAverageScenario
- Probability=0.3333
- Leaf Node=AboveAverageNode
- Tree node sequence:
- RootNode
- AboveAverageNode
- Stage= FirstStage Cost=111763.3526
- Stage= SecondStage Cost=-276973.7569
- Total scenario cost=-165210.4042
-
- Name=AverageScenario
- Probability=0.3333
- Leaf Node=AverageNode
- Tree node sequence:
- RootNode
- AverageNode
- Stage= FirstStage Cost=114400.0000
- Stage= SecondStage Cost=-232999.9995
- Total scenario cost=-118599.9994
-
- Name=BelowAverageScenario
- Probability=0.3333
- Leaf Node=BelowAverageNode
- Tree node sequence:
- RootNode
- BelowAverageNode
- Stage= FirstStage Cost=116000.0000
- Stage= SecondStage Cost=-172799.9999
- Total scenario cost=-56799.9999
-
-----------------------------------------------------
-
-Total PH execution time=0.77 seconds
-
-Scenario tree solution written to file=ph_solution.json
-
-Total execution time=0.81 seconds
diff --git a/pyomo/pysp/tests/examples/baselines/TestPHFarmerSerial.test14_withef.baseline b/pyomo/pysp/tests/examples/baselines/TestPHFarmerSerial.test14_withef.baseline
deleted file mode 100644
index 3a82540cf16..00000000000
--- a/pyomo/pysp/tests/examples/baselines/TestPHFarmerSerial.test14_withef.baseline
+++ /dev/null
@@ -1,352 +0,0 @@
-User-defined PH extension module=pyomo.pysp.plugins.phhistoryextension already imported - skipping
-Trying to import module=/Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/examples/pysp/farmer/config/aggregategetter.py
-Module successfully loaded
-Trying to import module=/Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/examples/pysp/farmer/config/rhosetter.py
-Module successfully loaded
-Trying to import module=/Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/examples/pysp/farmer/config/boundsetter.py
-Module successfully loaded
-Initializing PH
-
-Executing user aggregate getter callback function
-Executing user rho setter callback function
-Executing user bound setter callback function
-User-defined PH solution writer module=pyomo.pysp.plugins.jsonsolutionwriter already imported - skipping
-Starting PH
-
-Initiating PH iteration=0
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.2540 First stage cost avg= 113494.4444 Max-Min=10416.67
-Cumulative run-time=0.05 seconds
-
-Initiating PH iteration=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.2540 First stage cost avg= 113494.4444 Max-Min=10416.67
-Cumulative run-time=0.10 seconds
-
-Initiating PH iteration=2
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.2540 First stage cost avg= 113494.4445 Max-Min=10416.67
-Cumulative run-time=0.16 seconds
-
-Initiating PH iteration=3
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.1991 First stage cost avg= 113545.3418 Max-Min= 9341.08
-Cumulative run-time=0.22 seconds
-
-Initiating PH iteration=4
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.1166 First stage cost avg= 113837.6523 Max-Min= 6301.86
-Cumulative run-time=0.28 seconds
-
-Initiating PH iteration=5
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.1032 First stage cost avg= 114197.8075 Max-Min= 3806.58
-Cumulative run-time=0.34 seconds
-
-Initiating PH iteration=6
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.1094 First stage cost avg= 114422.4887 Max-Min= 3132.53
-Cumulative run-time=0.40 seconds
-
-Initiating PH iteration=7
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.1055 First stage cost avg= 114278.3496 Max-Min= 3564.95
-Cumulative run-time=0.46 seconds
-
-Initiating PH iteration=8
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.1022 First stage cost avg= 114107.3631 Max-Min= 4077.91
-Cumulative run-time=0.51 seconds
-
-Initiating PH iteration=9
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.1020 First stage cost avg= 114041.4185 Max-Min= 4275.74
-Cumulative run-time=0.57 seconds
-
-Initiating PH iteration=10
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.1021 First stage cost avg= 114054.4509 Max-Min= 4236.65
-Cumulative run-time=0.63 seconds
-Halting PH - reached maximal iteration count=10
-Number of discrete variables fixed before final plugin calls=0 (total=0)
-Number of continuous variables fixed before final plugin calls=0 (total=3)
-PH algorithm history written to file=ph_history.json
-PH complete
-Convergence history:
-Iteration Metric Value
- 0 0.2540
- 1 0.2540
- 2 0.2540
- 3 0.1991
- 4 0.1166
- 5 0.1032
- 6 0.1094
- 7 0.1055
- 8 0.1022
- 9 0.1020
- 10 0.1021
-
-***********************************************************************************************
->>>THE EXPECTED SUM OF THE STAGE COST VARIABLES=-111591.252155<<<
->>>***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise<<<
-***********************************************************************************************
-Final number of discrete variables fixed=0 (total=0)
-Final number of continuous variables fixed=0 (total=3)
-Final variable values:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 100.0000 80.0000 115.7919 Max-Min: 35.7919 Avg: 98.5973
- Index: [SUGAR_BEETS] Values: 300.0000 300.0000 250.0000 Max-Min: 50.0000 Avg: 283.3333
- Index: [WHEAT] Values: 100.0000 120.0000 134.2081 Max-Min: 34.2081 Avg: 118.0694
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 116000.0000 114400.0000 111763.3526 Max-Min: 4236.6473 Avg: 114054.4509
-Final costs:
-Scenario Tree Costs
-***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise
-----------------------------------------------------
-Tree Nodes:
-
- Name=AboveAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AboveAverageScenario
- Expected cost of (sub)tree rooted at node=-276973.7569
-
- Name=AverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AverageScenario
- Expected cost of (sub)tree rooted at node=-232999.9995
-
- Name=BelowAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-172799.9999
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- AboveAverageNode
- AverageNode
- BelowAverageNode
- Scenarios:
- AboveAverageScenario
- AverageScenario
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-111591.2522
-
-----------------------------------------------------
-Scenarios:
-
- Name=AboveAverageScenario
- Probability=0.3333
- Leaf Node=AboveAverageNode
- Tree node sequence:
- RootNode
- AboveAverageNode
- Stage= FirstStage Cost=111763.3526
- Stage= SecondStage Cost=-276973.7569
- Total scenario cost=-165210.4042
-
- Name=AverageScenario
- Probability=0.3333
- Leaf Node=AverageNode
- Tree node sequence:
- RootNode
- AverageNode
- Stage= FirstStage Cost=114400.0000
- Stage= SecondStage Cost=-232999.9995
- Total scenario cost=-118599.9994
-
- Name=BelowAverageScenario
- Probability=0.3333
- Leaf Node=BelowAverageNode
- Tree node sequence:
- RootNode
- BelowAverageNode
- Stage= FirstStage Cost=116000.0000
- Stage= SecondStage Cost=-172799.9999
- Total scenario cost=-56799.9999
-
-----------------------------------------------------
-
-Total PH execution time=0.64 seconds
-
-Scenario tree solution written to file=ph_solution.json
-Pushing fixed variable statuses to scenario instances
-Number of discrete variables fixed prior to ef creation=0 (total=0)
-Number of continuous variables fixed prior to ef creation=0 (total=3)
-Creating extensive form for remainder problem
-Time to construct extensive form instance=0.00 seconds
-Queuing extensive form solve
-Waiting for extensive form solve
-Done with extensive form solve - loading results
-Storing solution in scenario tree
-Time to solve and load results for the extensive form=0.02 seconds
-
-***********************************************************************************************
->>>THE EXPECTED SUM OF THE STAGE COST VARIABLES=-108390.00001<<<
-***********************************************************************************************
-
-Extensive form solution:
-----------------------------------------------------
-Tree Nodes:
-
- Name=AboveAverageNode
- Stage=SecondStage
- Parent=RootNode
- Variables:
- QuantitySubQuotaSold[CORN]=48.0
- QuantitySubQuotaSold[SUGAR_BEETS]=6000.0
- QuantitySubQuotaSold[WHEAT]=310.0
-
- Name=AverageNode
- Stage=SecondStage
- Parent=RootNode
- Variables:
- QuantitySubQuotaSold[SUGAR_BEETS]=5000.0
- QuantitySubQuotaSold[WHEAT]=225.0
-
- Name=BelowAverageNode
- Stage=SecondStage
- Parent=RootNode
- Variables:
- QuantityPurchased[CORN]=48.0
- QuantitySubQuotaSold[SUGAR_BEETS]=4000.0
- QuantitySubQuotaSold[WHEAT]=140.0
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Variables:
- DevotedAcreage[CORN]=80.0
- DevotedAcreage[SUGAR_BEETS]=250.0
- DevotedAcreage[WHEAT]=170.0
-
-
-Extensive form costs:
-Scenario Tree Costs
-***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise
-----------------------------------------------------
-Tree Nodes:
-
- Name=AboveAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AboveAverageScenario
- Expected cost of (sub)tree rooted at node=-275900.0000
-
- Name=AverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AverageScenario
- Expected cost of (sub)tree rooted at node=-218250.0000
-
- Name=BelowAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-157720.0000
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- AboveAverageNode
- AverageNode
- BelowAverageNode
- Scenarios:
- AboveAverageScenario
- AverageScenario
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-108390.0000
-
-----------------------------------------------------
-Scenarios:
-
- Name=AboveAverageScenario
- Probability=0.3333
- Leaf Node=AboveAverageNode
- Tree node sequence:
- RootNode
- AboveAverageNode
- Stage= FirstStage Cost=108900.0000
- Stage= SecondStage Cost=-275900.0000
- Total scenario cost=-167000.0000
-
- Name=AverageScenario
- Probability=0.3333
- Leaf Node=AverageNode
- Tree node sequence:
- RootNode
- AverageNode
- Stage= FirstStage Cost=108900.0000
- Stage= SecondStage Cost=-218250.0000
- Total scenario cost=-109350.0000
-
- Name=BelowAverageScenario
- Probability=0.3333
- Leaf Node=BelowAverageNode
- Tree node sequence:
- RootNode
- BelowAverageNode
- Stage= FirstStage Cost=108900.0000
- Stage= SecondStage Cost=-157720.0000
- Total scenario cost=-48820.0000
-
-----------------------------------------------------
-Scenario tree solution written to file=postphef_solution.json
-
-Total execution time=0.70 seconds
diff --git a/pyomo/pysp/tests/examples/baselines/TestPHFarmerSerial.test1_withef.baseline b/pyomo/pysp/tests/examples/baselines/TestPHFarmerSerial.test1_withef.baseline
deleted file mode 100644
index 9dc003d37d9..00000000000
--- a/pyomo/pysp/tests/examples/baselines/TestPHFarmerSerial.test1_withef.baseline
+++ /dev/null
@@ -1,527 +0,0 @@
-User-defined PH extension module=pyomo.pysp.plugins.phhistoryextension already imported - skipping
-Initializing PH
-
-User-defined PH solution writer module=pyomo.pysp.plugins.jsonsolutionwriter already imported - skipping
-Starting PH
-
-Initiating PH iteration=0
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.2540 First stage cost avg= 113494.4444 Max-Min=10416.67
-Cumulative run-time=0.04 seconds
-
-Initiating PH iteration=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.1259 First stage cost avg= 113107.2221 Max-Min= 6943.89
-Cumulative run-time=0.10 seconds
-
-Initiating PH iteration=2
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0816 First stage cost avg= 112954.6296 Max-Min= 2234.82
-Cumulative run-time=0.16 seconds
-
-Initiating PH iteration=3
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0796 First stage cost avg= 112963.0248 Max-Min= 2375.31
-Cumulative run-time=0.21 seconds
-
-Initiating PH iteration=4
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0776 First stage cost avg= 112915.6071 Max-Min= 3047.08
-Cumulative run-time=0.27 seconds
-
-Initiating PH iteration=5
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0794 First stage cost avg= 112825.3926 Max-Min= 3339.81
-Cumulative run-time=0.33 seconds
-
-Initiating PH iteration=6
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0668 First stage cost avg= 112317.9502 Max-Min= 2019.60
-Cumulative run-time=0.38 seconds
-
-Initiating PH iteration=7
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0542 First stage cost avg= 111364.4660 Max-Min= 1181.85
-Cumulative run-time=0.44 seconds
-
-Initiating PH iteration=8
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0360 First stage cost avg= 110283.4074 Max-Min= 463.23
-Cumulative run-time=0.50 seconds
-
-Initiating PH iteration=9
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0243 First stage cost avg= 109399.2542 Max-Min= 363.90
-Cumulative run-time=0.56 seconds
-
-Initiating PH iteration=10
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0256 First stage cost avg= 108834.1930 Max-Min= 933.90
-Cumulative run-time=0.62 seconds
-
-Initiating PH iteration=11
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0248 First stage cost avg= 108575.3219 Max-Min= 918.57
-Cumulative run-time=0.67 seconds
-
-Initiating PH iteration=12
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0163 First stage cost avg= 108513.5347 Max-Min= 591.25
-Cumulative run-time=0.73 seconds
-
-Initiating PH iteration=13
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0081 First stage cost avg= 108528.2899 Max-Min= 175.95
-Cumulative run-time=0.79 seconds
-
-Initiating PH iteration=14
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0168 First stage cost avg= 108561.6577 Max-Min= 274.77
-Cumulative run-time=0.85 seconds
-
-Initiating PH iteration=15
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0163 First stage cost avg= 108604.0579 Max-Min= 295.14
-Cumulative run-time=0.90 seconds
-
-Initiating PH iteration=16
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0098 First stage cost avg= 108667.3583 Max-Min= 127.67
-Cumulative run-time=0.96 seconds
-
-Initiating PH iteration=17
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0032 First stage cost avg= 108758.4237 Max-Min= 59.69
-Cumulative run-time=1.01 seconds
-
-Initiating PH iteration=18
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0026 First stage cost avg= 108868.1277 Max-Min= 101.79
-Cumulative run-time=1.07 seconds
-
-Initiating PH iteration=19
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0039 First stage cost avg= 108975.3089 Max-Min= 73.41
-Cumulative run-time=1.13 seconds
-
-Initiating PH iteration=20
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0043 First stage cost avg= 109057.4144 Max-Min= 39.47
-Cumulative run-time=1.18 seconds
-
-Initiating PH iteration=21
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0044 First stage cost avg= 109099.7145 Max-Min= 87.57
-Cumulative run-time=1.24 seconds
-
-Initiating PH iteration=22
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0040 First stage cost avg= 109099.1239 Max-Min= 104.22
-Cumulative run-time=1.30 seconds
-
-Initiating PH iteration=23
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0032 First stage cost avg= 109062.8322 Max-Min= 88.54
-Cumulative run-time=1.35 seconds
-
-Initiating PH iteration=24
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0021 First stage cost avg= 109004.1156 Max-Min= 54.49
-Cumulative run-time=1.41 seconds
-
-Initiating PH iteration=25
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0008 First stage cost avg= 108937.8039 Max-Min= 16.89
-Cumulative run-time=1.46 seconds
-
-Initiating PH iteration=26
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0005 First stage cost avg= 108876.8822 Max-Min= 14.27
-Cumulative run-time=1.52 seconds
-
-Initiating PH iteration=27
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0015 First stage cost avg= 108830.6201 Max-Min= 34.81
-Cumulative run-time=1.58 seconds
-
-Initiating PH iteration=28
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0021 First stage cost avg= 108803.9655 Max-Min= 44.57
-Cumulative run-time=1.64 seconds
-
-Initiating PH iteration=29
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0023 First stage cost avg= 108797.7661 Max-Min= 45.24
-Cumulative run-time=1.69 seconds
-
-Initiating PH iteration=30
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0020 First stage cost avg= 108809.4793 Max-Min= 39.01
-Cumulative run-time=1.75 seconds
-
-Initiating PH iteration=31
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0015 First stage cost avg= 108834.1639 Max-Min= 28.07
-Cumulative run-time=1.80 seconds
-
-Initiating PH iteration=32
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0008 First stage cost avg= 108865.6237 Max-Min= 14.67
-Cumulative run-time=1.86 seconds
-
-Initiating PH iteration=33
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0001 First stage cost avg= 108897.5679 Max-Min= 1.06
-Cumulative run-time=1.92 seconds
-PH converged - convergence metric is below threshold=0.0001
-Number of discrete variables fixed before final plugin calls=0 (total=0)
-Number of continuous variables fixed before final plugin calls=0 (total=3)
-PH algorithm history written to file=ph_history.json
-PH complete
-Convergence history:
-Iteration Metric Value
- 0 0.2540
- 1 0.1259
- 2 0.0816
- 3 0.0796
- 4 0.0776
- 5 0.0794
- 6 0.0668
- 7 0.0542
- 8 0.0360
- 9 0.0243
- 10 0.0256
- 11 0.0248
- 12 0.0163
- 13 0.0081
- 14 0.0168
- 15 0.0163
- 16 0.0098
- 17 0.0032
- 18 0.0026
- 19 0.0039
- 20 0.0043
- 21 0.0044
- 22 0.0040
- 23 0.0032
- 24 0.0021
- 25 0.0008
- 26 0.0005
- 27 0.0015
- 28 0.0021
- 29 0.0023
- 30 0.0020
- 31 0.0015
- 32 0.0008
- 33 0.0001
-
-***********************************************************************************************
->>>THE EXPECTED SUM OF THE STAGE COST VARIABLES=-108388.378639<<<
->>>***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise<<<
-***********************************************************************************************
-Final number of discrete variables fixed=0 (total=0)
-Final number of continuous variables fixed=0 (total=3)
-Final variable values:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 79.9844 80.0000 79.9768 Max-Min: 0.0232 Avg: 79.9871
- Index: [SUGAR_BEETS] Values: 249.9848 249.9770 250.0000 Max-Min: 0.0230 Avg: 249.9873
- Index: [WHEAT] Values: 170.0308 170.0230 170.0232 Max-Min: 0.0078 Avg: 170.0256
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108897.0836 108897.4725 108898.1476 Max-Min: 1.0640 Avg: 108897.5679
-Final costs:
-Scenario Tree Costs
-***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise
-----------------------------------------------------
-Tree Nodes:
-
- Name=AboveAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AboveAverageScenario
- Expected cost of (sub)tree rooted at node=-275899.3041
-
- Name=AverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AverageScenario
- Expected cost of (sub)tree rooted at node=-218243.2209
-
- Name=BelowAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-157713.8615
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- AboveAverageNode
- AverageNode
- BelowAverageNode
- Scenarios:
- AboveAverageScenario
- AverageScenario
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-108388.3786
-
-----------------------------------------------------
-Scenarios:
-
- Name=AboveAverageScenario
- Probability=0.3333
- Leaf Node=AboveAverageNode
- Tree node sequence:
- RootNode
- AboveAverageNode
- Stage= FirstStage Cost=108898.1476
- Stage= SecondStage Cost=-275899.3041
- Total scenario cost=-167001.1565
-
- Name=AverageScenario
- Probability=0.3333
- Leaf Node=AverageNode
- Tree node sequence:
- RootNode
- AverageNode
- Stage= FirstStage Cost=108897.4725
- Stage= SecondStage Cost=-218243.2209
- Total scenario cost=-109345.7484
-
- Name=BelowAverageScenario
- Probability=0.3333
- Leaf Node=BelowAverageNode
- Tree node sequence:
- RootNode
- BelowAverageNode
- Stage= FirstStage Cost=108897.0836
- Stage= SecondStage Cost=-157713.8615
- Total scenario cost=-48816.7780
-
-----------------------------------------------------
-
-Total PH execution time=1.92 seconds
-
-Scenario tree solution written to file=ph_solution.json
-Pushing fixed variable statuses to scenario instances
-Number of discrete variables fixed prior to ef creation=0 (total=0)
-Number of continuous variables fixed prior to ef creation=0 (total=3)
-Creating extensive form for remainder problem
-Time to construct extensive form instance=0.00 seconds
-Queuing extensive form solve
-Waiting for extensive form solve
-Done with extensive form solve - loading results
-Storing solution in scenario tree
-Time to solve and load results for the extensive form=0.02 seconds
-
-***********************************************************************************************
->>>THE EXPECTED SUM OF THE STAGE COST VARIABLES=-108390.00001<<<
-***********************************************************************************************
-
-Extensive form solution:
-----------------------------------------------------
-Tree Nodes:
-
- Name=AboveAverageNode
- Stage=SecondStage
- Parent=RootNode
- Variables:
- QuantitySubQuotaSold[CORN]=48.0
- QuantitySubQuotaSold[SUGAR_BEETS]=6000.0
- QuantitySubQuotaSold[WHEAT]=310.0
-
- Name=AverageNode
- Stage=SecondStage
- Parent=RootNode
- Variables:
- QuantitySubQuotaSold[SUGAR_BEETS]=5000.0
- QuantitySubQuotaSold[WHEAT]=225.0
-
- Name=BelowAverageNode
- Stage=SecondStage
- Parent=RootNode
- Variables:
- QuantityPurchased[CORN]=48.0
- QuantitySubQuotaSold[SUGAR_BEETS]=4000.0
- QuantitySubQuotaSold[WHEAT]=140.0
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Variables:
- DevotedAcreage[CORN]=80.0
- DevotedAcreage[SUGAR_BEETS]=250.0
- DevotedAcreage[WHEAT]=170.0
-
-
-Extensive form costs:
-Scenario Tree Costs
-***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise
-----------------------------------------------------
-Tree Nodes:
-
- Name=AboveAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AboveAverageScenario
- Expected cost of (sub)tree rooted at node=-275900.0000
-
- Name=AverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AverageScenario
- Expected cost of (sub)tree rooted at node=-218250.0000
-
- Name=BelowAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-157720.0000
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- AboveAverageNode
- AverageNode
- BelowAverageNode
- Scenarios:
- AboveAverageScenario
- AverageScenario
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-108390.0000
-
-----------------------------------------------------
-Scenarios:
-
- Name=AboveAverageScenario
- Probability=0.3333
- Leaf Node=AboveAverageNode
- Tree node sequence:
- RootNode
- AboveAverageNode
- Stage= FirstStage Cost=108900.0000
- Stage= SecondStage Cost=-275900.0000
- Total scenario cost=-167000.0000
-
- Name=AverageScenario
- Probability=0.3333
- Leaf Node=AverageNode
- Tree node sequence:
- RootNode
- AverageNode
- Stage= FirstStage Cost=108900.0000
- Stage= SecondStage Cost=-218250.0000
- Total scenario cost=-109350.0000
-
- Name=BelowAverageScenario
- Probability=0.3333
- Leaf Node=BelowAverageNode
- Tree node sequence:
- RootNode
- BelowAverageNode
- Stage= FirstStage Cost=108900.0000
- Stage= SecondStage Cost=-157720.0000
- Total scenario cost=-48820.0000
-
-----------------------------------------------------
-Scenario tree solution written to file=postphef_solution.json
-
-Total execution time=1.98 seconds
diff --git a/pyomo/pysp/tests/examples/baselines/TestPHFarmerSerial.test2.baseline b/pyomo/pysp/tests/examples/baselines/TestPHFarmerSerial.test2.baseline
deleted file mode 100644
index 75f3dda9963..00000000000
--- a/pyomo/pysp/tests/examples/baselines/TestPHFarmerSerial.test2.baseline
+++ /dev/null
@@ -1,511 +0,0 @@
-User-defined PH extension module=pyomo.pysp.plugins.phhistoryextension already imported - skipping
-Initializing PH
-
-User-defined PH solution writer module=pyomo.pysp.plugins.jsonsolutionwriter already imported - skipping
-Starting PH
-
-Initiating PH iteration=0
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 98.5185 First stage cost avg= 113494.4444 Max-Min=10416.67
-Cumulative run-time=0.05 seconds
-
-Initiating PH iteration=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 56.7654 First stage cost avg= 113107.2221 Max-Min= 6943.89
-Cumulative run-time=0.12 seconds
-
-Initiating PH iteration=2
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 37.3580 First stage cost avg= 112954.6296 Max-Min= 2234.82
-Cumulative run-time=0.19 seconds
-
-Initiating PH iteration=3
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 36.5075 First stage cost avg= 112963.0248 Max-Min= 2375.31
-Cumulative run-time=0.26 seconds
-
-Initiating PH iteration=4
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 35.4086 First stage cost avg= 112915.6071 Max-Min= 3047.08
-Cumulative run-time=0.33 seconds
-
-Initiating PH iteration=5
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 36.2217 First stage cost avg= 112825.3926 Max-Min= 3339.81
-Cumulative run-time=0.40 seconds
-
-Initiating PH iteration=6
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 29.3303 First stage cost avg= 112317.9502 Max-Min= 2019.60
-Cumulative run-time=0.47 seconds
-
-Initiating PH iteration=7
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 21.9702 First stage cost avg= 111364.4660 Max-Min= 1181.85
-Cumulative run-time=0.54 seconds
-
-Initiating PH iteration=8
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 13.8077 First stage cost avg= 110283.4074 Max-Min= 463.23
-Cumulative run-time=0.61 seconds
-
-Initiating PH iteration=9
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.01 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 9.5141 First stage cost avg= 109399.2542 Max-Min= 363.90
-Cumulative run-time=0.69 seconds
-
-Initiating PH iteration=10
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 12.0668 First stage cost avg= 108834.1930 Max-Min= 933.90
-Cumulative run-time=0.76 seconds
-
-Initiating PH iteration=11
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 11.6644 First stage cost avg= 108575.3219 Max-Min= 918.57
-Cumulative run-time=0.83 seconds
-
-Initiating PH iteration=12
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 7.5080 First stage cost avg= 108513.5347 Max-Min= 591.25
-Cumulative run-time=0.90 seconds
-
-Initiating PH iteration=13
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 3.1070 First stage cost avg= 108528.2899 Max-Min= 175.95
-Cumulative run-time=0.97 seconds
-
-Initiating PH iteration=14
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 5.5300 First stage cost avg= 108561.6577 Max-Min= 274.77
-Cumulative run-time=1.04 seconds
-
-Initiating PH iteration=15
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 5.4381 First stage cost avg= 108604.0579 Max-Min= 295.14
-Cumulative run-time=1.11 seconds
-
-Initiating PH iteration=16
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 3.2812 First stage cost avg= 108667.3583 Max-Min= 127.67
-Cumulative run-time=1.18 seconds
-
-Initiating PH iteration=17
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 1.1980 First stage cost avg= 108758.4237 Max-Min= 59.69
-Cumulative run-time=1.25 seconds
-
-Initiating PH iteration=18
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 1.0800 First stage cost avg= 108868.1277 Max-Min= 101.79
-Cumulative run-time=1.32 seconds
-
-Initiating PH iteration=19
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 1.3642 First stage cost avg= 108975.3089 Max-Min= 73.41
-Cumulative run-time=1.40 seconds
-
-Initiating PH iteration=20
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 1.5168 First stage cost avg= 109057.4144 Max-Min= 39.47
-Cumulative run-time=1.47 seconds
-
-Initiating PH iteration=21
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 1.6833 First stage cost avg= 109099.7145 Max-Min= 87.57
-Cumulative run-time=1.55 seconds
-
-Initiating PH iteration=22
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 1.6446 First stage cost avg= 109099.1239 Max-Min= 104.22
-Cumulative run-time=1.62 seconds
-
-Initiating PH iteration=23
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 1.3382 First stage cost avg= 109062.8322 Max-Min= 88.54
-Cumulative run-time=1.69 seconds
-
-Initiating PH iteration=24
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.8599 First stage cost avg= 109004.1156 Max-Min= 54.49
-Cumulative run-time=1.76 seconds
-
-Initiating PH iteration=25
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.3180 First stage cost avg= 108937.8039 Max-Min= 16.89
-Cumulative run-time=1.83 seconds
-
-Initiating PH iteration=26
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.1981 First stage cost avg= 108876.8822 Max-Min= 14.27
-Cumulative run-time=1.90 seconds
-
-Initiating PH iteration=27
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.5760 First stage cost avg= 108830.6201 Max-Min= 34.81
-Cumulative run-time=1.97 seconds
-
-Initiating PH iteration=28
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.8045 First stage cost avg= 108803.9655 Max-Min= 44.57
-Cumulative run-time=2.04 seconds
-
-Initiating PH iteration=29
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.8608 First stage cost avg= 108797.7661 Max-Min= 45.24
-Cumulative run-time=2.11 seconds
-
-Initiating PH iteration=30
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.7643 First stage cost avg= 108809.4793 Max-Min= 39.01
-Cumulative run-time=2.18 seconds
-
-Initiating PH iteration=31
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.5565 First stage cost avg= 108834.1639 Max-Min= 28.07
-Cumulative run-time=2.24 seconds
-
-Initiating PH iteration=32
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.2905 First stage cost avg= 108865.6237 Max-Min= 14.67
-Cumulative run-time=2.31 seconds
-
-Initiating PH iteration=33
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0205 First stage cost avg= 108897.5679 Max-Min= 1.06
-Cumulative run-time=2.38 seconds
-
-Initiating PH iteration=34
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.2079 First stage cost avg= 108924.6334 Max-Min= 10.64
-Cumulative run-time=2.45 seconds
-
-Initiating PH iteration=35
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.3637 First stage cost avg= 108943.1232 Max-Min= 18.81
-Cumulative run-time=2.52 seconds
-
-Initiating PH iteration=36
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.4328 First stage cost avg= 108951.3651 Max-Min= 22.58
-Cumulative run-time=2.59 seconds
-
-Initiating PH iteration=37
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.4183 First stage cost avg= 108949.6731 Max-Min= 21.96
-Cumulative run-time=2.66 seconds
-
-Initiating PH iteration=38
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.3365 First stage cost avg= 108939.9742 Max-Min= 17.74
-Cumulative run-time=2.73 seconds
-
-Initiating PH iteration=39
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.2122 First stage cost avg= 108925.2193 Max-Min= 11.21
-Cumulative run-time=2.80 seconds
-
-Initiating PH iteration=40
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0733 First stage cost avg= 108908.7151 Max-Min= 3.89
-Cumulative run-time=2.87 seconds
-
-Initiating PH iteration=41
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0547 First stage cost avg= 108893.5090 Max-Min= 2.87
-Cumulative run-time=2.94 seconds
-
-Initiating PH iteration=42
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.1522 First stage cost avg= 108881.9216 Max-Min= 8.01
-Cumulative run-time=3.01 seconds
-
-Initiating PH iteration=43
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.2081 First stage cost avg= 108875.2811 Max-Min= 10.94
-Cumulative run-time=3.08 seconds
-
-Initiating PH iteration=44
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.2200 First stage cost avg= 108873.8685 Max-Min= 11.56
-Cumulative run-time=3.15 seconds
-
-Initiating PH iteration=45
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.1933 First stage cost avg= 108877.0466 Max-Min= 10.15
-Cumulative run-time=3.22 seconds
-
-Initiating PH iteration=46
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.1388 First stage cost avg= 108883.5201 Max-Min= 7.28
-Cumulative run-time=3.28 seconds
-
-Initiating PH iteration=47
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0702 First stage cost avg= 108891.6607 Max-Min= 3.68
-Cumulative run-time=3.35 seconds
-
-Initiating PH iteration=48
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0014 First stage cost avg= 108899.8341 Max-Min= 0.07
-Cumulative run-time=3.42 seconds
-PH converged - convergence metric is below threshold=0.01
-Number of discrete variables fixed before final plugin calls=0 (total=0)
-Number of continuous variables fixed before final plugin calls=0 (total=3)
-PH algorithm history written to file=ph_history.json
-PH complete
-Convergence history:
-Iteration Metric Value
- 0 98.5185
- 1 56.7654
- 2 37.3580
- 3 36.5075
- 4 35.4086
- 5 36.2217
- 6 29.3303
- 7 21.9702
- 8 13.8077
- 9 9.5141
- 10 12.0668
- 11 11.6644
- 12 7.5080
- 13 3.1070
- 14 5.5300
- 15 5.4381
- 16 3.2812
- 17 1.1980
- 18 1.0800
- 19 1.3642
- 20 1.5168
- 21 1.6833
- 22 1.6446
- 23 1.3382
- 24 0.8599
- 25 0.3180
- 26 0.1981
- 27 0.5760
- 28 0.8045
- 29 0.8608
- 30 0.7643
- 31 0.5565
- 32 0.2905
- 33 0.0205
- 34 0.2079
- 35 0.3637
- 36 0.4328
- 37 0.4183
- 38 0.3365
- 39 0.2122
- 40 0.0733
- 41 0.0547
- 42 0.1522
- 43 0.2081
- 44 0.2200
- 45 0.1933
- 46 0.1388
- 47 0.0702
- 48 0.0014
-
-***********************************************************************************************
->>>THE EXPECTED SUM OF THE STAGE COST VARIABLES=-108389.889265<<<
->>>***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise<<<
-***********************************************************************************************
-Final number of discrete variables fixed=0 (total=0)
-Final number of continuous variables fixed=0 (total=3)
-Final variable values:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 79.9989 80.0000 79.9984 Max-Min: 0.0016 Avg: 79.9991
- Index: [SUGAR_BEETS] Values: 249.9990 249.9984 250.0000 Max-Min: 0.0016 Avg: 249.9991
- Index: [WHEAT] Values: 170.0021 170.0016 170.0016 Max-Min: 0.0005 Avg: 170.0018
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108899.8013 108899.8284 108899.8727 Max-Min: 0.0714 Avg: 108899.8341
-Final costs:
-Scenario Tree Costs
-***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise
-----------------------------------------------------
-Tree Nodes:
-
- Name=AboveAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AboveAverageScenario
- Expected cost of (sub)tree rooted at node=-275899.9510
-
- Name=AverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AverageScenario
- Expected cost of (sub)tree rooted at node=-218249.5388
-
- Name=BelowAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-157719.5818
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- AboveAverageNode
- AverageNode
- BelowAverageNode
- Scenarios:
- AboveAverageScenario
- AverageScenario
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-108389.8893
-
-----------------------------------------------------
-Scenarios:
-
- Name=AboveAverageScenario
- Probability=0.3333
- Leaf Node=AboveAverageNode
- Tree node sequence:
- RootNode
- AboveAverageNode
- Stage= FirstStage Cost=108899.8727
- Stage= SecondStage Cost=-275899.9510
- Total scenario cost=-167000.0783
-
- Name=AverageScenario
- Probability=0.3333
- Leaf Node=AverageNode
- Tree node sequence:
- RootNode
- AverageNode
- Stage= FirstStage Cost=108899.8284
- Stage= SecondStage Cost=-218249.5388
- Total scenario cost=-109349.7104
-
- Name=BelowAverageScenario
- Probability=0.3333
- Leaf Node=BelowAverageNode
- Tree node sequence:
- RootNode
- BelowAverageNode
- Stage= FirstStage Cost=108899.8013
- Stage= SecondStage Cost=-157719.5818
- Total scenario cost=-48819.7805
-
-----------------------------------------------------
-
-Total PH execution time=3.43 seconds
-
-Scenario tree solution written to file=ph_solution.json
-
-Total execution time=3.46 seconds
diff --git a/pyomo/pysp/tests/examples/baselines/TestPHFarmerSerial.test3.baseline b/pyomo/pysp/tests/examples/baselines/TestPHFarmerSerial.test3.baseline
deleted file mode 100644
index 5d7b72004ce..00000000000
--- a/pyomo/pysp/tests/examples/baselines/TestPHFarmerSerial.test3.baseline
+++ /dev/null
@@ -1,199 +0,0 @@
-User-defined PH extension module=pyomo.pysp.plugins.phhistoryextension already imported - skipping
-Initializing PH
-
-User-defined PH solution writer module=pyomo.pysp.plugins.jsonsolutionwriter already imported - skipping
-Starting PH
-
-Initiating PH iteration=0
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.2540 First stage cost avg= 113494.4444 Max-Min=10416.67
-Cumulative run-time=0.06 seconds
-
-Initiating PH iteration=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.1307 First stage cost avg= 113073.3333 Max-Min= 7180.00
-Cumulative run-time=0.12 seconds
-
-Initiating PH iteration=2
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0872 First stage cost avg= 113259.7778 Max-Min= 1736.67
-Cumulative run-time=0.19 seconds
-
-Initiating PH iteration=3
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0793 First stage cost avg= 113339.1852 Max-Min= 1836.89
-Cumulative run-time=0.26 seconds
-
-Initiating PH iteration=4
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0820 First stage cost avg= 112746.3951 Max-Min= 3745.63
-Cumulative run-time=0.33 seconds
-
-Initiating PH iteration=5
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0828 First stage cost avg= 112327.9383 Max-Min= 4381.88
-Cumulative run-time=0.40 seconds
-
-Initiating PH iteration=6
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0561 First stage cost avg= 112125.1852 Max-Min= 1027.56
-Cumulative run-time=0.47 seconds
-
-Initiating PH iteration=7
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0625 First stage cost avg= 111694.0412 Max-Min= 2320.99
-Cumulative run-time=0.54 seconds
-
-Initiating PH iteration=8
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0342 First stage cost avg= 111355.5172 Max-Min= 1015.57
-Cumulative run-time=0.60 seconds
-
-Initiating PH iteration=9
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0000 First stage cost avg= 111355.5172 Max-Min= 0.00
-Cumulative run-time=0.67 seconds
-PH converged - convergence metric is below threshold=0.0001
-Number of discrete variables fixed before final plugin calls=0 (total=0)
-Number of continuous variables fixed before final plugin calls=0 (total=3)
-PH algorithm history written to file=ph_history.json
-PH complete
-Convergence history:
-Iteration Metric Value
- 0 0.2540
- 1 0.1307
- 2 0.0872
- 3 0.0793
- 4 0.0820
- 5 0.0828
- 6 0.0561
- 7 0.0625
- 8 0.0342
- 9 0.0000
-
-***********************************************************************************************
->>>THE EXPECTED SUM OF THE STAGE COST VARIABLES=-107958.896605<<<
->>>***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise<<<
-***********************************************************************************************
-Final number of discrete variables fixed=0 (total=0)
-Final number of continuous variables fixed=0 (total=3)
-Final variable values:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 88.4631 88.4631 88.4631 Max-Min: 0.0000 Avg: 88.4631
- Index: [SUGAR_BEETS] Values: 266.1679 266.1679 266.1679 Max-Min: 0.0000 Avg: 266.1679
- Index: [WHEAT] Values: 145.3690 145.3690 145.3690 Max-Min: 0.0000 Avg: 145.3690
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 111355.5172 111355.5172 111355.5172 Max-Min: 0.0000 Avg: 111355.5172
-Final costs:
-Scenario Tree Costs
-***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise
-----------------------------------------------------
-Tree Nodes:
-
- Name=AboveAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AboveAverageScenario
- Expected cost of (sub)tree rooted at node=-271788.5596
-
- Name=AverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AverageScenario
- Expected cost of (sub)tree rooted at node=-223231.1084
-
- Name=BelowAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-162923.5731
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- AboveAverageNode
- AverageNode
- BelowAverageNode
- Scenarios:
- AboveAverageScenario
- AverageScenario
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-107958.8966
-
-----------------------------------------------------
-Scenarios:
-
- Name=AboveAverageScenario
- Probability=0.3333
- Leaf Node=AboveAverageNode
- Tree node sequence:
- RootNode
- AboveAverageNode
- Stage= FirstStage Cost=111355.5172
- Stage= SecondStage Cost=-271788.5596
- Total scenario cost=-160433.0424
-
- Name=AverageScenario
- Probability=0.3333
- Leaf Node=AverageNode
- Tree node sequence:
- RootNode
- AverageNode
- Stage= FirstStage Cost=111355.5172
- Stage= SecondStage Cost=-223231.1084
- Total scenario cost=-111875.5913
-
- Name=BelowAverageScenario
- Probability=0.3333
- Leaf Node=BelowAverageNode
- Tree node sequence:
- RootNode
- BelowAverageNode
- Stage= FirstStage Cost=111355.5172
- Stage= SecondStage Cost=-162923.5731
- Total scenario cost=-51568.0560
-
-----------------------------------------------------
-
-Total PH execution time=0.68 seconds
-
-Scenario tree solution written to file=ph_solution.json
-
-Total execution time=0.71 seconds
diff --git a/pyomo/pysp/tests/examples/baselines/TestPHFarmerSerial.test4.baseline b/pyomo/pysp/tests/examples/baselines/TestPHFarmerSerial.test4.baseline
deleted file mode 100644
index 2b4359f98e4..00000000000
--- a/pyomo/pysp/tests/examples/baselines/TestPHFarmerSerial.test4.baseline
+++ /dev/null
@@ -1,391 +0,0 @@
-User-defined PH extension module=pyomo.pysp.plugins.phhistoryextension already imported - skipping
-Initializing PH
-
-User-defined PH solution writer module=pyomo.pysp.plugins.jsonsolutionwriter already imported - skipping
-Starting PH
-
-Initiating PH iteration=0
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.2540 First stage cost avg= 113494.4444 Max-Min=10416.67
-Cumulative run-time=0.05 seconds
-
-Initiating PH iteration=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.1259 First stage cost avg= 113107.2221 Max-Min= 6943.89
-Cumulative run-time=0.12 seconds
-
-Initiating PH iteration=2
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0816 First stage cost avg= 112954.6296 Max-Min= 2234.82
-Cumulative run-time=0.19 seconds
-
-Initiating PH iteration=3
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0796 First stage cost avg= 112963.0248 Max-Min= 2375.31
-Cumulative run-time=0.26 seconds
-
-Initiating PH iteration=4
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0776 First stage cost avg= 112915.6071 Max-Min= 3047.08
-Cumulative run-time=0.33 seconds
-
-Initiating PH iteration=5
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0794 First stage cost avg= 112825.3926 Max-Min= 3339.81
-Cumulative run-time=0.40 seconds
-
-Initiating PH iteration=6
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0668 First stage cost avg= 112317.9502 Max-Min= 2019.60
-Cumulative run-time=0.47 seconds
-
-Initiating PH iteration=7
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0542 First stage cost avg= 111364.4660 Max-Min= 1181.85
-Cumulative run-time=0.53 seconds
-
-Initiating PH iteration=8
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0360 First stage cost avg= 110283.4074 Max-Min= 463.23
-Cumulative run-time=0.60 seconds
-
-Initiating PH iteration=9
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0243 First stage cost avg= 109399.2542 Max-Min= 363.90
-Cumulative run-time=0.67 seconds
-
-Initiating PH iteration=10
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0256 First stage cost avg= 108834.1930 Max-Min= 933.90
-Cumulative run-time=0.74 seconds
-
-Initiating PH iteration=11
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0248 First stage cost avg= 108575.3219 Max-Min= 918.57
-Cumulative run-time=0.81 seconds
-
-Initiating PH iteration=12
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0163 First stage cost avg= 108513.5347 Max-Min= 591.25
-Cumulative run-time=0.88 seconds
-
-Initiating PH iteration=13
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0081 First stage cost avg= 108528.2899 Max-Min= 175.95
-Cumulative run-time=0.95 seconds
-
-Initiating PH iteration=14
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0168 First stage cost avg= 108561.6577 Max-Min= 274.77
-Cumulative run-time=1.02 seconds
-
-Initiating PH iteration=15
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0163 First stage cost avg= 108604.0579 Max-Min= 295.14
-Cumulative run-time=1.09 seconds
-
-Initiating PH iteration=16
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0098 First stage cost avg= 108667.3583 Max-Min= 127.67
-Cumulative run-time=1.16 seconds
-
-Initiating PH iteration=17
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0032 First stage cost avg= 108758.4237 Max-Min= 59.69
-Cumulative run-time=1.23 seconds
-
-Initiating PH iteration=18
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0026 First stage cost avg= 108868.1277 Max-Min= 101.79
-Cumulative run-time=1.29 seconds
-
-Initiating PH iteration=19
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0039 First stage cost avg= 108975.3089 Max-Min= 73.41
-Cumulative run-time=1.36 seconds
-
-Initiating PH iteration=20
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0043 First stage cost avg= 109057.4144 Max-Min= 39.47
-Cumulative run-time=1.43 seconds
-
-Initiating PH iteration=21
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0044 First stage cost avg= 109099.7145 Max-Min= 87.57
-Cumulative run-time=1.50 seconds
-
-Initiating PH iteration=22
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0040 First stage cost avg= 109099.1239 Max-Min= 104.22
-Cumulative run-time=1.57 seconds
-
-Initiating PH iteration=23
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0032 First stage cost avg= 109062.8322 Max-Min= 88.54
-Cumulative run-time=1.64 seconds
-
-Initiating PH iteration=24
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0021 First stage cost avg= 109004.1156 Max-Min= 54.49
-Cumulative run-time=1.70 seconds
-
-Initiating PH iteration=25
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0008 First stage cost avg= 108937.8039 Max-Min= 16.89
-Cumulative run-time=1.77 seconds
-
-Initiating PH iteration=26
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0005 First stage cost avg= 108876.8822 Max-Min= 14.27
-Cumulative run-time=1.84 seconds
-
-Initiating PH iteration=27
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0015 First stage cost avg= 108830.6201 Max-Min= 34.81
-Cumulative run-time=1.91 seconds
-
-Initiating PH iteration=28
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0021 First stage cost avg= 108803.9655 Max-Min= 44.57
-Cumulative run-time=1.98 seconds
-
-Initiating PH iteration=29
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0023 First stage cost avg= 108797.7661 Max-Min= 45.24
-Cumulative run-time=2.04 seconds
-
-Initiating PH iteration=30
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0020 First stage cost avg= 108809.4793 Max-Min= 39.01
-Cumulative run-time=2.11 seconds
-
-Initiating PH iteration=31
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0015 First stage cost avg= 108834.1639 Max-Min= 28.07
-Cumulative run-time=2.18 seconds
-
-Initiating PH iteration=32
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0008 First stage cost avg= 108865.6237 Max-Min= 14.67
-Cumulative run-time=2.25 seconds
-
-Initiating PH iteration=33
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0001 First stage cost avg= 108897.5679 Max-Min= 1.06
-Cumulative run-time=2.32 seconds
-PH converged - convergence metric is below threshold=0.0001
-Number of discrete variables fixed before final plugin calls=0 (total=0)
-Number of continuous variables fixed before final plugin calls=0 (total=3)
-PH algorithm history written to file=ph_history.json
-PH complete
-Convergence history:
-Iteration Metric Value
- 0 0.2540
- 1 0.1259
- 2 0.0816
- 3 0.0796
- 4 0.0776
- 5 0.0794
- 6 0.0668
- 7 0.0542
- 8 0.0360
- 9 0.0243
- 10 0.0256
- 11 0.0248
- 12 0.0163
- 13 0.0081
- 14 0.0168
- 15 0.0163
- 16 0.0098
- 17 0.0032
- 18 0.0026
- 19 0.0039
- 20 0.0043
- 21 0.0044
- 22 0.0040
- 23 0.0032
- 24 0.0021
- 25 0.0008
- 26 0.0005
- 27 0.0015
- 28 0.0021
- 29 0.0023
- 30 0.0020
- 31 0.0015
- 32 0.0008
- 33 0.0001
-
-***********************************************************************************************
->>>THE EXPECTED SUM OF THE STAGE COST VARIABLES=-108388.378639<<<
->>>***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise<<<
-***********************************************************************************************
-Final number of discrete variables fixed=0 (total=0)
-Final number of continuous variables fixed=0 (total=3)
-Final variable values:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 79.9844 80.0000 79.9768 Max-Min: 0.0232 Avg: 79.9871
- Index: [SUGAR_BEETS] Values: 249.9848 249.9770 250.0000 Max-Min: 0.0230 Avg: 249.9873
- Index: [WHEAT] Values: 170.0308 170.0230 170.0232 Max-Min: 0.0078 Avg: 170.0256
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108897.0836 108897.4725 108898.1476 Max-Min: 1.0640 Avg: 108897.5679
-Final costs:
-Scenario Tree Costs
-***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise
-----------------------------------------------------
-Tree Nodes:
-
- Name=AboveAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AboveAverageScenario
- Expected cost of (sub)tree rooted at node=-275899.3041
-
- Name=AverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AverageScenario
- Expected cost of (sub)tree rooted at node=-218243.2209
-
- Name=BelowAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-157713.8615
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- AboveAverageNode
- AverageNode
- BelowAverageNode
- Scenarios:
- AboveAverageScenario
- AverageScenario
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-108388.3786
-
-----------------------------------------------------
-Scenarios:
-
- Name=AboveAverageScenario
- Probability=0.3333
- Leaf Node=AboveAverageNode
- Tree node sequence:
- RootNode
- AboveAverageNode
- Stage= FirstStage Cost=108898.1476
- Stage= SecondStage Cost=-275899.3041
- Total scenario cost=-167001.1565
-
- Name=AverageScenario
- Probability=0.3333
- Leaf Node=AverageNode
- Tree node sequence:
- RootNode
- AverageNode
- Stage= FirstStage Cost=108897.4725
- Stage= SecondStage Cost=-218243.2209
- Total scenario cost=-109345.7484
-
- Name=BelowAverageScenario
- Probability=0.3333
- Leaf Node=BelowAverageNode
- Tree node sequence:
- RootNode
- BelowAverageNode
- Stage= FirstStage Cost=108897.0836
- Stage= SecondStage Cost=-157713.8615
- Total scenario cost=-48816.7780
-
-----------------------------------------------------
-
-Total PH execution time=2.32 seconds
-
-Scenario tree solution written to file=ph_solution.json
-
-Total execution time=2.36 seconds
diff --git a/pyomo/pysp/tests/examples/baselines/TestPHFarmerSerial.test5.baseline b/pyomo/pysp/tests/examples/baselines/TestPHFarmerSerial.test5.baseline
deleted file mode 100644
index e28b97b972b..00000000000
--- a/pyomo/pysp/tests/examples/baselines/TestPHFarmerSerial.test5.baseline
+++ /dev/null
@@ -1,391 +0,0 @@
-User-defined PH extension module=pyomo.pysp.plugins.phhistoryextension already imported - skipping
-Initializing PH
-
-User-defined PH solution writer module=pyomo.pysp.plugins.jsonsolutionwriter already imported - skipping
-Starting PH
-
-Initiating PH iteration=0
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.2540 First stage cost avg= 113494.4444 Max-Min=10416.67
-Cumulative run-time=0.05 seconds
-
-Initiating PH iteration=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.1259 First stage cost avg= 113107.2221 Max-Min= 6943.89
-Cumulative run-time=0.12 seconds
-
-Initiating PH iteration=2
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0816 First stage cost avg= 112954.6296 Max-Min= 2234.82
-Cumulative run-time=0.19 seconds
-
-Initiating PH iteration=3
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0796 First stage cost avg= 112963.0248 Max-Min= 2375.31
-Cumulative run-time=0.25 seconds
-
-Initiating PH iteration=4
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0776 First stage cost avg= 112915.6071 Max-Min= 3047.08
-Cumulative run-time=0.32 seconds
-
-Initiating PH iteration=5
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0794 First stage cost avg= 112825.3926 Max-Min= 3339.81
-Cumulative run-time=0.39 seconds
-
-Initiating PH iteration=6
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0668 First stage cost avg= 112317.9502 Max-Min= 2019.60
-Cumulative run-time=0.45 seconds
-
-Initiating PH iteration=7
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0542 First stage cost avg= 111364.4660 Max-Min= 1181.85
-Cumulative run-time=0.52 seconds
-
-Initiating PH iteration=8
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0360 First stage cost avg= 110283.4074 Max-Min= 463.23
-Cumulative run-time=0.59 seconds
-
-Initiating PH iteration=9
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0243 First stage cost avg= 109399.2542 Max-Min= 363.90
-Cumulative run-time=0.66 seconds
-
-Initiating PH iteration=10
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0256 First stage cost avg= 108834.1930 Max-Min= 933.90
-Cumulative run-time=0.73 seconds
-
-Initiating PH iteration=11
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0248 First stage cost avg= 108575.3219 Max-Min= 918.57
-Cumulative run-time=0.80 seconds
-
-Initiating PH iteration=12
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0163 First stage cost avg= 108513.5347 Max-Min= 591.25
-Cumulative run-time=0.87 seconds
-
-Initiating PH iteration=13
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0081 First stage cost avg= 108528.2899 Max-Min= 175.95
-Cumulative run-time=0.94 seconds
-
-Initiating PH iteration=14
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0168 First stage cost avg= 108561.6577 Max-Min= 274.77
-Cumulative run-time=1.01 seconds
-
-Initiating PH iteration=15
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0163 First stage cost avg= 108604.0579 Max-Min= 295.14
-Cumulative run-time=1.08 seconds
-
-Initiating PH iteration=16
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0098 First stage cost avg= 108667.3583 Max-Min= 127.67
-Cumulative run-time=1.15 seconds
-
-Initiating PH iteration=17
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0032 First stage cost avg= 108758.4237 Max-Min= 59.69
-Cumulative run-time=1.22 seconds
-
-Initiating PH iteration=18
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0026 First stage cost avg= 108868.1277 Max-Min= 101.79
-Cumulative run-time=1.29 seconds
-
-Initiating PH iteration=19
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0039 First stage cost avg= 108975.3089 Max-Min= 73.41
-Cumulative run-time=1.36 seconds
-
-Initiating PH iteration=20
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0043 First stage cost avg= 109057.4144 Max-Min= 39.47
-Cumulative run-time=1.42 seconds
-
-Initiating PH iteration=21
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0044 First stage cost avg= 109099.7145 Max-Min= 87.57
-Cumulative run-time=1.50 seconds
-
-Initiating PH iteration=22
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0040 First stage cost avg= 109099.1239 Max-Min= 104.22
-Cumulative run-time=1.57 seconds
-
-Initiating PH iteration=23
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0032 First stage cost avg= 109062.8322 Max-Min= 88.54
-Cumulative run-time=1.64 seconds
-
-Initiating PH iteration=24
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0021 First stage cost avg= 109004.1156 Max-Min= 54.49
-Cumulative run-time=1.70 seconds
-
-Initiating PH iteration=25
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0008 First stage cost avg= 108937.8039 Max-Min= 16.89
-Cumulative run-time=1.78 seconds
-
-Initiating PH iteration=26
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0005 First stage cost avg= 108876.8822 Max-Min= 14.27
-Cumulative run-time=1.85 seconds
-
-Initiating PH iteration=27
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0015 First stage cost avg= 108830.6201 Max-Min= 34.81
-Cumulative run-time=1.92 seconds
-
-Initiating PH iteration=28
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0021 First stage cost avg= 108803.9655 Max-Min= 44.57
-Cumulative run-time=1.99 seconds
-
-Initiating PH iteration=29
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0023 First stage cost avg= 108797.7661 Max-Min= 45.24
-Cumulative run-time=2.05 seconds
-
-Initiating PH iteration=30
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0020 First stage cost avg= 108809.4793 Max-Min= 39.01
-Cumulative run-time=2.12 seconds
-
-Initiating PH iteration=31
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0015 First stage cost avg= 108834.1639 Max-Min= 28.07
-Cumulative run-time=2.19 seconds
-
-Initiating PH iteration=32
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0008 First stage cost avg= 108865.6237 Max-Min= 14.67
-Cumulative run-time=2.26 seconds
-
-Initiating PH iteration=33
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0001 First stage cost avg= 108897.5679 Max-Min= 1.06
-Cumulative run-time=2.33 seconds
-PH converged - convergence metric is below threshold=0.0001
-Number of discrete variables fixed before final plugin calls=0 (total=0)
-Number of continuous variables fixed before final plugin calls=0 (total=3)
-PH algorithm history written to file=ph_history.json
-PH complete
-Convergence history:
-Iteration Metric Value
- 0 0.2540
- 1 0.1259
- 2 0.0816
- 3 0.0796
- 4 0.0776
- 5 0.0794
- 6 0.0668
- 7 0.0542
- 8 0.0360
- 9 0.0243
- 10 0.0256
- 11 0.0248
- 12 0.0163
- 13 0.0081
- 14 0.0168
- 15 0.0163
- 16 0.0098
- 17 0.0032
- 18 0.0026
- 19 0.0039
- 20 0.0043
- 21 0.0044
- 22 0.0040
- 23 0.0032
- 24 0.0021
- 25 0.0008
- 26 0.0005
- 27 0.0015
- 28 0.0021
- 29 0.0023
- 30 0.0020
- 31 0.0015
- 32 0.0008
- 33 0.0001
-
-***********************************************************************************************
->>>THE EXPECTED SUM OF THE STAGE COST VARIABLES=-108388.378639<<<
->>>***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise<<<
-***********************************************************************************************
-Final number of discrete variables fixed=0 (total=0)
-Final number of continuous variables fixed=0 (total=3)
-Final variable values:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 79.9844 80.0000 79.9768 Max-Min: 0.0232 Avg: 79.9871
- Index: [SUGAR_BEETS] Values: 249.9848 249.9770 250.0000 Max-Min: 0.0230 Avg: 249.9873
- Index: [WHEAT] Values: 170.0308 170.0230 170.0232 Max-Min: 0.0078 Avg: 170.0256
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108897.0836 108897.4725 108898.1476 Max-Min: 1.0640 Avg: 108897.5679
-Final costs:
-Scenario Tree Costs
-***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise
-----------------------------------------------------
-Tree Nodes:
-
- Name=AboveAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AboveAverageScenario
- Expected cost of (sub)tree rooted at node=-275899.3041
-
- Name=AverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AverageScenario
- Expected cost of (sub)tree rooted at node=-218243.2209
-
- Name=BelowAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-157713.8615
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- AboveAverageNode
- AverageNode
- BelowAverageNode
- Scenarios:
- AboveAverageScenario
- AverageScenario
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-108388.3786
-
-----------------------------------------------------
-Scenarios:
-
- Name=AboveAverageScenario
- Probability=0.3333
- Leaf Node=AboveAverageNode
- Tree node sequence:
- RootNode
- AboveAverageNode
- Stage= FirstStage Cost=108898.1476
- Stage= SecondStage Cost=-275899.3041
- Total scenario cost=-167001.1565
-
- Name=AverageScenario
- Probability=0.3333
- Leaf Node=AverageNode
- Tree node sequence:
- RootNode
- AverageNode
- Stage= FirstStage Cost=108897.4725
- Stage= SecondStage Cost=-218243.2209
- Total scenario cost=-109345.7484
-
- Name=BelowAverageScenario
- Probability=0.3333
- Leaf Node=BelowAverageNode
- Tree node sequence:
- RootNode
- BelowAverageNode
- Stage= FirstStage Cost=108897.0836
- Stage= SecondStage Cost=-157713.8615
- Total scenario cost=-48816.7780
-
-----------------------------------------------------
-
-Total PH execution time=2.33 seconds
-
-Scenario tree solution written to file=ph_solution.json
-
-Total execution time=2.37 seconds
diff --git a/pyomo/pysp/tests/examples/baselines/TestPHFarmerSerial.test6.baseline b/pyomo/pysp/tests/examples/baselines/TestPHFarmerSerial.test6.baseline
deleted file mode 100644
index e5fb9ac8ff1..00000000000
--- a/pyomo/pysp/tests/examples/baselines/TestPHFarmerSerial.test6.baseline
+++ /dev/null
@@ -1,200 +0,0 @@
-User-defined PH extension module=pyomo.pysp.plugins.phhistoryextension already imported - skipping
-Initializing PH
-
-WW PH Extension: Loading user-specified configuration from file=/Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/examples/pysp/farmer/config/wwph.cfg
-WW PH Extension: Loading variable suffixes from file=/Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/examples/pysp/farmer/config/wwph.suffixes
-User-defined PH solution writer module=pyomo.pysp.plugins.jsonsolutionwriter already imported - skipping
-Starting PH
-
-Initiating PH iteration=0
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.2540 First stage cost avg= 113494.4444 Max-Min=10416.67
-Cumulative run-time=0.05 seconds
-
-Initiating PH iteration=1
-WW PH Extension: Setting mipgap to 0.1000000, as specified in the configuration file
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.1259 First stage cost avg= 113107.2221 Max-Min= 6943.89
-Cumulative run-time=0.12 seconds
-
-Initiating PH iteration=2
-WW PH Extension: Setting mipgap to 0.0500717, based on current value of the convergence metric
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0816 First stage cost avg= 112954.6296 Max-Min= 2234.82
-Cumulative run-time=0.19 seconds
-
-Initiating PH iteration=3
-WW PH Extension: Setting mipgap to 0.0327607, based on current value of the convergence metric
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0796 First stage cost avg= 112963.0248 Max-Min= 2375.31
-Cumulative run-time=0.26 seconds
-
-Initiating PH iteration=4
-WW PH Extension: Setting mipgap to 0.0319973, based on current value of the convergence metric
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Slamming criteria are satisifed - accelerating convergence
-Slamming variable=DevotedAcreage[CORN] at tree node=RootNode to value=96.8871743104; value=node average (anywhere)
-Fixing variable=DevotedAcreage[CORN] at tree node=RootNode to value=96.8871743104; converged for 0 iterations
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0776 First stage cost avg= 112915.6071 Max-Min= 3047.08
-Cumulative run-time=0.33 seconds
-
-Initiating PH iteration=5
-WW PH Extension: Setting mipgap to 0.0312342, based on current value of the convergence metric
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=1 (total=3)
-Convergence metric= 0.0609 First stage cost avg= 112895.6887 Max-Min= 5246.95
-Cumulative run-time=0.40 seconds
-
-Initiating PH iteration=6
-WW PH Extension: Setting mipgap to 0.0247045, based on current value of the convergence metric
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Slamming criteria are satisifed - accelerating convergence
-Slamming variable=DevotedAcreage[WHEAT] at tree node=RootNode to value=137.204959966; value=node average (anywhere)
-Fixing variable=DevotedAcreage[WHEAT] at tree node=RootNode to value=137.204959966; converged for 0 iterations
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=1 (total=3)
-Convergence metric= 0.0391 First stage cost avg= 112000.8391 Max-Min= 2624.80
-Cumulative run-time=0.47 seconds
-
-Initiating PH iteration=7
-WW PH Extension: Setting mipgap to 0.0161915, based on current value of the convergence metric
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=2 (total=3)
-Convergence metric= 0.0000 First stage cost avg= 112000.8392 Max-Min= 0.00
-Cumulative run-time=0.54 seconds
-PH converged - convergence metric is below threshold=0.0001
-Number of discrete variables fixed before final plugin calls=0 (total=0)
-Number of continuous variables fixed before final plugin calls=2 (total=3)
-WW PH extension: Fixing all discrete variables that are converged at termination
-Total number of variables fixed at PH termination due to convergence=0
-PH algorithm history written to file=ph_history.json
-PH complete
-Convergence history:
-Iteration Metric Value
- 0 0.2540
- 1 0.1259
- 2 0.0816
- 3 0.0796
- 4 0.0776
- 5 0.0609
- 6 0.0391
- 7 0.0000
-
-***********************************************************************************************
->>>THE EXPECTED SUM OF THE STAGE COST VARIABLES=-107905.908751<<<
->>>***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise<<<
-***********************************************************************************************
-Final number of discrete variables fixed=0 (total=0)
-Final number of continuous variables fixed=2 (total=3)
-Final variable values:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 96.8872 96.8872 96.8872 Max-Min: 0.0000 Avg: 96.8872
- Index: [SUGAR_BEETS] Values: 265.9079 265.9079 265.9079 Max-Min: 0.0000 Avg: 265.9079
- Index: [WHEAT] Values: 137.2050 137.2050 137.2050 Max-Min: 0.0000 Avg: 137.2050
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 112000.8392 112000.8392 112000.8391 Max-Min: 0.0000 Avg: 112000.8392
-Final costs:
-Scenario Tree Costs
-***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise
-----------------------------------------------------
-Tree Nodes:
-
- Name=AboveAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AboveAverageScenario
- Expected cost of (sub)tree rooted at node=-272111.4913
-
- Name=AverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AverageScenario
- Expected cost of (sub)tree rooted at node=-223364.9995
-
- Name=BelowAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-164243.7528
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- AboveAverageNode
- AverageNode
- BelowAverageNode
- Scenarios:
- AboveAverageScenario
- AverageScenario
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-107905.9088
-
-----------------------------------------------------
-Scenarios:
-
- Name=AboveAverageScenario
- Probability=0.3333
- Leaf Node=AboveAverageNode
- Tree node sequence:
- RootNode
- AboveAverageNode
- Stage= FirstStage Cost=112000.8391
- Stage= SecondStage Cost=-272111.4913
- Total scenario cost=-160110.6522
-
- Name=AverageScenario
- Probability=0.3333
- Leaf Node=AverageNode
- Tree node sequence:
- RootNode
- AverageNode
- Stage= FirstStage Cost=112000.8392
- Stage= SecondStage Cost=-223364.9995
- Total scenario cost=-111364.1604
-
- Name=BelowAverageScenario
- Probability=0.3333
- Leaf Node=BelowAverageNode
- Tree node sequence:
- RootNode
- BelowAverageNode
- Stage= FirstStage Cost=112000.8392
- Stage= SecondStage Cost=-164243.7528
- Total scenario cost=-52242.9136
-
-----------------------------------------------------
-
-Total PH execution time=0.54 seconds
-
-Scenario tree solution written to file=ph_solution.json
-
-Total execution time=0.58 seconds
diff --git a/pyomo/pysp/tests/examples/baselines/TestPHFarmerSerial.test6_withef.baseline b/pyomo/pysp/tests/examples/baselines/TestPHFarmerSerial.test6_withef.baseline
deleted file mode 100644
index 6adad529dcf..00000000000
--- a/pyomo/pysp/tests/examples/baselines/TestPHFarmerSerial.test6_withef.baseline
+++ /dev/null
@@ -1,338 +0,0 @@
-User-defined PH extension module=pyomo.pysp.plugins.phhistoryextension already imported - skipping
-Initializing PH
-
-WW PH Extension: Loading user-specified configuration from file=/Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/examples/pysp/farmer/config/wwph.cfg
-WW PH Extension: Loading variable suffixes from file=/Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/examples/pysp/farmer/config/wwph.suffixes
-User-defined PH solution writer module=pyomo.pysp.plugins.jsonsolutionwriter already imported - skipping
-Starting PH
-
-Initiating PH iteration=0
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.2540 First stage cost avg= 113494.4444 Max-Min=10416.67
-Cumulative run-time=0.05 seconds
-
-Initiating PH iteration=1
-WW PH Extension: Setting mipgap to 0.1000000, as specified in the configuration file
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.1259 First stage cost avg= 113107.2221 Max-Min= 6943.89
-Cumulative run-time=0.10 seconds
-
-Initiating PH iteration=2
-WW PH Extension: Setting mipgap to 0.0500717, based on current value of the convergence metric
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0816 First stage cost avg= 112954.6296 Max-Min= 2234.82
-Cumulative run-time=0.16 seconds
-
-Initiating PH iteration=3
-WW PH Extension: Setting mipgap to 0.0327607, based on current value of the convergence metric
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0796 First stage cost avg= 112963.0248 Max-Min= 2375.31
-Cumulative run-time=0.22 seconds
-
-Initiating PH iteration=4
-WW PH Extension: Setting mipgap to 0.0319973, based on current value of the convergence metric
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Slamming criteria are satisifed - accelerating convergence
-Slamming variable=DevotedAcreage[CORN] at tree node=RootNode to value=96.8871743104; value=node average (anywhere)
-Fixing variable=DevotedAcreage[CORN] at tree node=RootNode to value=96.8871743104; converged for 0 iterations
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0776 First stage cost avg= 112915.6071 Max-Min= 3047.08
-Cumulative run-time=0.28 seconds
-
-Initiating PH iteration=5
-WW PH Extension: Setting mipgap to 0.0312342, based on current value of the convergence metric
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=1 (total=3)
-Convergence metric= 0.0609 First stage cost avg= 112895.6887 Max-Min= 5246.95
-Cumulative run-time=0.34 seconds
-
-Initiating PH iteration=6
-WW PH Extension: Setting mipgap to 0.0247045, based on current value of the convergence metric
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Slamming criteria are satisifed - accelerating convergence
-Slamming variable=DevotedAcreage[WHEAT] at tree node=RootNode to value=137.204959966; value=node average (anywhere)
-Fixing variable=DevotedAcreage[WHEAT] at tree node=RootNode to value=137.204959966; converged for 0 iterations
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=1 (total=3)
-Convergence metric= 0.0391 First stage cost avg= 112000.8391 Max-Min= 2624.80
-Cumulative run-time=0.39 seconds
-
-Initiating PH iteration=7
-WW PH Extension: Setting mipgap to 0.0161915, based on current value of the convergence metric
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=2 (total=3)
-Convergence metric= 0.0000 First stage cost avg= 112000.8392 Max-Min= 0.00
-Cumulative run-time=0.45 seconds
-PH converged - convergence metric is below threshold=0.0001
-Number of discrete variables fixed before final plugin calls=0 (total=0)
-Number of continuous variables fixed before final plugin calls=2 (total=3)
-WW PH extension: Fixing all discrete variables that are converged at termination
-Total number of variables fixed at PH termination due to convergence=0
-PH algorithm history written to file=ph_history.json
-PH complete
-Convergence history:
-Iteration Metric Value
- 0 0.2540
- 1 0.1259
- 2 0.0816
- 3 0.0796
- 4 0.0776
- 5 0.0609
- 6 0.0391
- 7 0.0000
-
-***********************************************************************************************
->>>THE EXPECTED SUM OF THE STAGE COST VARIABLES=-107905.908751<<<
->>>***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise<<<
-***********************************************************************************************
-Final number of discrete variables fixed=0 (total=0)
-Final number of continuous variables fixed=2 (total=3)
-Final variable values:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 96.8872 96.8872 96.8872 Max-Min: 0.0000 Avg: 96.8872
- Index: [SUGAR_BEETS] Values: 265.9079 265.9079 265.9079 Max-Min: 0.0000 Avg: 265.9079
- Index: [WHEAT] Values: 137.2050 137.2050 137.2050 Max-Min: 0.0000 Avg: 137.2050
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 112000.8392 112000.8392 112000.8391 Max-Min: 0.0000 Avg: 112000.8392
-Final costs:
-Scenario Tree Costs
-***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise
-----------------------------------------------------
-Tree Nodes:
-
- Name=AboveAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AboveAverageScenario
- Expected cost of (sub)tree rooted at node=-272111.4913
-
- Name=AverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AverageScenario
- Expected cost of (sub)tree rooted at node=-223364.9995
-
- Name=BelowAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-164243.7528
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- AboveAverageNode
- AverageNode
- BelowAverageNode
- Scenarios:
- AboveAverageScenario
- AverageScenario
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-107905.9088
-
-----------------------------------------------------
-Scenarios:
-
- Name=AboveAverageScenario
- Probability=0.3333
- Leaf Node=AboveAverageNode
- Tree node sequence:
- RootNode
- AboveAverageNode
- Stage= FirstStage Cost=112000.8391
- Stage= SecondStage Cost=-272111.4913
- Total scenario cost=-160110.6522
-
- Name=AverageScenario
- Probability=0.3333
- Leaf Node=AverageNode
- Tree node sequence:
- RootNode
- AverageNode
- Stage= FirstStage Cost=112000.8392
- Stage= SecondStage Cost=-223364.9995
- Total scenario cost=-111364.1604
-
- Name=BelowAverageScenario
- Probability=0.3333
- Leaf Node=BelowAverageNode
- Tree node sequence:
- RootNode
- BelowAverageNode
- Stage= FirstStage Cost=112000.8392
- Stage= SecondStage Cost=-164243.7528
- Total scenario cost=-52242.9136
-
-----------------------------------------------------
-
-Total PH execution time=0.46 seconds
-
-Scenario tree solution written to file=ph_solution.json
-Pushing fixed variable statuses to scenario instances
-Number of discrete variables fixed prior to ef creation=0 (total=0)
-Number of continuous variables fixed prior to ef creation=2 (total=3)
-Creating extensive form for remainder problem
-Time to construct extensive form instance=0.00 seconds
-Queuing extensive form solve
-Waiting for extensive form solve
-Done with extensive form solve - loading results
-Storing solution in scenario tree
-Time to solve and load results for the extensive form=0.02 seconds
-
-***********************************************************************************************
->>>THE EXPECTED SUM OF THE STAGE COST VARIABLES=-107905.908903<<<
-***********************************************************************************************
-
-Extensive form solution:
-----------------------------------------------------
-Tree Nodes:
-
- Name=AboveAverageNode
- Stage=SecondStage
- Parent=RootNode
- Variables:
- QuantitySubQuotaSold[CORN]=108.793827517
- QuantitySubQuotaSold[SUGAR_BEETS]=6000.0
- QuantitySubQuotaSold[WHEAT]=211.614879899
- QuantitySuperQuotaSold[SUGAR_BEETS]=381.788777359
-
- Name=AverageNode
- Stage=SecondStage
- Parent=RootNode
- Variables:
- QuantitySubQuotaSold[CORN]=50.6615229312
- QuantitySubQuotaSold[SUGAR_BEETS]=5318.15731447
- QuantitySubQuotaSold[WHEAT]=143.012399916
-
- Name=BelowAverageNode
- Stage=SecondStage
- Parent=RootNode
- Variables:
- QuantityPurchased[CORN]=7.47078165504
- QuantitySubQuotaSold[SUGAR_BEETS]=4254.52585157
- QuantitySubQuotaSold[WHEAT]=74.4099199326
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Variables:
- DevotedAcreage[CORN]=96.8871743104
- DevotedAcreage[SUGAR_BEETS]=265.907865723
- DevotedAcreage[WHEAT]=137.204959966
-
-
-Extensive form costs:
-Scenario Tree Costs
-***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise
-----------------------------------------------------
-Tree Nodes:
-
- Name=AboveAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AboveAverageScenario
- Expected cost of (sub)tree rooted at node=-272111.4915
-
- Name=AverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AverageScenario
- Expected cost of (sub)tree rooted at node=-223364.9997
-
- Name=BelowAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-164243.7529
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- AboveAverageNode
- AverageNode
- BelowAverageNode
- Scenarios:
- AboveAverageScenario
- AverageScenario
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-107905.9089
-
-----------------------------------------------------
-Scenarios:
-
- Name=AboveAverageScenario
- Probability=0.3333
- Leaf Node=AboveAverageNode
- Tree node sequence:
- RootNode
- AboveAverageNode
- Stage= FirstStage Cost=112000.8392
- Stage= SecondStage Cost=-272111.4915
- Total scenario cost=-160110.6523
-
- Name=AverageScenario
- Probability=0.3333
- Leaf Node=AverageNode
- Tree node sequence:
- RootNode
- AverageNode
- Stage= FirstStage Cost=112000.8392
- Stage= SecondStage Cost=-223364.9997
- Total scenario cost=-111364.1606
-
- Name=BelowAverageScenario
- Probability=0.3333
- Leaf Node=BelowAverageNode
- Tree node sequence:
- RootNode
- BelowAverageNode
- Stage= FirstStage Cost=112000.8392
- Stage= SecondStage Cost=-164243.7529
- Total scenario cost=-52242.9137
-
-----------------------------------------------------
-Scenario tree solution written to file=postphef_solution.json
-
-Total execution time=0.51 seconds
diff --git a/pyomo/pysp/tests/examples/baselines/TestPHFarmerSerial.test7.baseline b/pyomo/pysp/tests/examples/baselines/TestPHFarmerSerial.test7.baseline
deleted file mode 100644
index a967fde4be9..00000000000
--- a/pyomo/pysp/tests/examples/baselines/TestPHFarmerSerial.test7.baseline
+++ /dev/null
@@ -1,505 +0,0 @@
-User-defined PH extension module=pyomo.pysp.plugins.phhistoryextension already imported - skipping
-User-defined PH extension module=pyomo.pysp.plugins.phboundextension already imported - skipping
-Initializing PH
-
-phboundextension using default update interval=1
-User-defined PH solution writer module=pyomo.pysp.plugins.jsonsolutionwriter already imported - skipping
-Starting PH
-
-Initiating PH iteration=0
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-115405.5556
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.2540 First stage cost avg= 113494.4444 Max-Min=10416.67
-Cumulative run-time=0.06 seconds
-
-Initiating PH iteration=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-112378.3951
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.1259 First stage cost avg= 113107.2221 Max-Min= 6943.89
-Cumulative run-time=0.20 seconds
-
-Initiating PH iteration=2
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-114092.2009
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0816 First stage cost avg= 112954.6296 Max-Min= 2234.82
-Cumulative run-time=0.33 seconds
-
-Initiating PH iteration=3
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-111905.7747
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0796 First stage cost avg= 112963.0248 Max-Min= 2375.31
-Cumulative run-time=0.48 seconds
-
-Initiating PH iteration=4
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110093.7884
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0776 First stage cost avg= 112915.6071 Max-Min= 3047.08
-Cumulative run-time=0.60 seconds
-
-Initiating PH iteration=5
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-109499.5161
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0794 First stage cost avg= 112825.3926 Max-Min= 3339.81
-Cumulative run-time=0.74 seconds
-
-Initiating PH iteration=6
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-108931.8046
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0668 First stage cost avg= 112317.9502 Max-Min= 2019.60
-Cumulative run-time=0.88 seconds
-
-Initiating PH iteration=7
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110122.0019
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0542 First stage cost avg= 111364.4660 Max-Min= 1181.85
-Cumulative run-time=1.02 seconds
-
-Initiating PH iteration=8
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-111334.7018
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0360 First stage cost avg= 110283.4074 Max-Min= 463.23
-Cumulative run-time=1.15 seconds
-
-Initiating PH iteration=9
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-111609.8143
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0243 First stage cost avg= 109399.2542 Max-Min= 363.90
-Cumulative run-time=1.28 seconds
-
-Initiating PH iteration=10
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-111298.1197
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0256 First stage cost avg= 108834.1930 Max-Min= 933.90
-Cumulative run-time=1.40 seconds
-
-Initiating PH iteration=11
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110209.1867
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0248 First stage cost avg= 108575.3219 Max-Min= 918.57
-Cumulative run-time=1.52 seconds
-
-Initiating PH iteration=12
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-109115.6506
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0163 First stage cost avg= 108513.5347 Max-Min= 591.25
-Cumulative run-time=1.65 seconds
-
-Initiating PH iteration=13
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-108676.3770
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0081 First stage cost avg= 108528.2899 Max-Min= 175.95
-Cumulative run-time=1.79 seconds
-
-Initiating PH iteration=14
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-108716.2952
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0168 First stage cost avg= 108561.6577 Max-Min= 274.77
-Cumulative run-time=1.92 seconds
-
-Initiating PH iteration=15
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-108567.8281
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0163 First stage cost avg= 108604.0579 Max-Min= 295.14
-Cumulative run-time=2.06 seconds
-
-Initiating PH iteration=16
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-108440.1576
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0098 First stage cost avg= 108667.3583 Max-Min= 127.67
-Cumulative run-time=2.20 seconds
-
-Initiating PH iteration=17
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-108508.3933
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0032 First stage cost avg= 108758.4237 Max-Min= 59.69
-Cumulative run-time=2.33 seconds
-
-Initiating PH iteration=18
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-108542.0161
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0026 First stage cost avg= 108868.1277 Max-Min= 101.79
-Cumulative run-time=2.47 seconds
-
-Initiating PH iteration=19
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-108541.9306
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0039 First stage cost avg= 108975.3089 Max-Min= 73.41
-Cumulative run-time=2.59 seconds
-
-Initiating PH iteration=20
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-108516.4781
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0043 First stage cost avg= 109057.4144 Max-Min= 39.47
-Cumulative run-time=2.71 seconds
-
-Initiating PH iteration=21
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-108488.2878
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0044 First stage cost avg= 109099.7145 Max-Min= 87.57
-Cumulative run-time=2.84 seconds
-
-Initiating PH iteration=22
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-108441.5390
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0040 First stage cost avg= 109099.1239 Max-Min= 104.22
-Cumulative run-time=2.96 seconds
-
-Initiating PH iteration=23
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-108399.9641
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0032 First stage cost avg= 109062.8322 Max-Min= 88.54
-Cumulative run-time=3.09 seconds
-
-Initiating PH iteration=24
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-108503.2120
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0021 First stage cost avg= 109004.1156 Max-Min= 54.49
-Cumulative run-time=3.23 seconds
-
-Initiating PH iteration=25
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-108576.0350
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0008 First stage cost avg= 108937.8039 Max-Min= 16.89
-Cumulative run-time=3.37 seconds
-
-Initiating PH iteration=26
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-108599.8131
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0005 First stage cost avg= 108876.8822 Max-Min= 14.27
-Cumulative run-time=3.50 seconds
-
-Initiating PH iteration=27
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-108581.6439
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0015 First stage cost avg= 108830.6201 Max-Min= 34.81
-Cumulative run-time=3.64 seconds
-
-Initiating PH iteration=28
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-108534.4974
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0021 First stage cost avg= 108803.9655 Max-Min= 44.57
-Cumulative run-time=3.78 seconds
-
-Initiating PH iteration=29
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-108472.5688
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0023 First stage cost avg= 108797.7661 Max-Min= 45.24
-Cumulative run-time=3.92 seconds
-
-Initiating PH iteration=30
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-108408.6756
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0020 First stage cost avg= 108809.4793 Max-Min= 39.01
-Cumulative run-time=4.05 seconds
-
-Initiating PH iteration=31
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-108403.8262
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0015 First stage cost avg= 108834.1639 Max-Min= 28.07
-Cumulative run-time=4.19 seconds
-
-Initiating PH iteration=32
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-108419.0164
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0008 First stage cost avg= 108865.6237 Max-Min= 14.67
-Cumulative run-time=4.32 seconds
-
-Initiating PH iteration=33
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-108427.1508
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0001 First stage cost avg= 108897.5679 Max-Min= 1.06
-Cumulative run-time=4.45 seconds
-PH converged - convergence metric is below threshold=0.0001
-Number of discrete variables fixed before final plugin calls=0 (total=0)
-Number of continuous variables fixed before final plugin calls=0 (total=3)
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-108427.7239
-
- Iteration Bound
- Trivial -115405.555588
- 0 -112378.395124
- 1 -114092.2009
- 2 -111905.774744
- 3 -110093.788354
- 4 -109499.516145
- 5 -108931.804635
- 6 -110122.001897
- 7 -111334.701817
- 8 -111609.814338
- 9 -111298.11967
- 10 -110209.186685
- 11 -109115.65065
- 12 -108676.376969
- 13 -108716.295157
- 14 -108567.828079
- 15 -108440.157622
- 16 -108508.393308
- 17 -108542.016117
- 18 -108541.930573
- 19 -108516.478131
- 20 -108488.28782
- 21 -108441.538995
- 22 -108399.964066
- 23 -108503.212025
- 24 -108576.034986
- 25 -108599.813084
- 26 -108581.643945
- 27 -108534.497426
- 28 -108472.568809
- 29 -108408.6756
- 30 -108403.826194
- 31 -108419.01641
- 32 -108427.150791
- 33 -108427.723944
-
-Lower bound history written to file=phbound.txt
-
-Best Objective Bound: -108399.964066
-
-Best Lower Bound written to file=phbestbound.txt
-PH algorithm history written to file=ph_history.json
-PH complete
-Convergence history:
-Iteration Metric Value
- 0 0.2540
- 1 0.1259
- 2 0.0816
- 3 0.0796
- 4 0.0776
- 5 0.0794
- 6 0.0668
- 7 0.0542
- 8 0.0360
- 9 0.0243
- 10 0.0256
- 11 0.0248
- 12 0.0163
- 13 0.0081
- 14 0.0168
- 15 0.0163
- 16 0.0098
- 17 0.0032
- 18 0.0026
- 19 0.0039
- 20 0.0043
- 21 0.0044
- 22 0.0040
- 23 0.0032
- 24 0.0021
- 25 0.0008
- 26 0.0005
- 27 0.0015
- 28 0.0021
- 29 0.0023
- 30 0.0020
- 31 0.0015
- 32 0.0008
- 33 0.0001
-
-***********************************************************************************************
->>>THE EXPECTED SUM OF THE STAGE COST VARIABLES=-108388.378639<<<
->>>***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise<<<
-***********************************************************************************************
-Final number of discrete variables fixed=0 (total=0)
-Final number of continuous variables fixed=0 (total=3)
-Final variable values:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 79.9844 80.0000 79.9768 Max-Min: 0.0232 Avg: 79.9871
- Index: [SUGAR_BEETS] Values: 249.9848 249.9770 250.0000 Max-Min: 0.0230 Avg: 249.9873
- Index: [WHEAT] Values: 170.0308 170.0230 170.0232 Max-Min: 0.0078 Avg: 170.0256
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108897.0836 108897.4725 108898.1476 Max-Min: 1.0640 Avg: 108897.5679
-Final costs:
-Scenario Tree Costs
-***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise
-----------------------------------------------------
-Tree Nodes:
-
- Name=AboveAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AboveAverageScenario
- Expected cost of (sub)tree rooted at node=-275899.3041
-
- Name=AverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AverageScenario
- Expected cost of (sub)tree rooted at node=-218243.2209
-
- Name=BelowAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-157713.8615
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- AboveAverageNode
- AverageNode
- BelowAverageNode
- Scenarios:
- AboveAverageScenario
- AverageScenario
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-108388.3786
-
-----------------------------------------------------
-Scenarios:
-
- Name=AboveAverageScenario
- Probability=0.3333
- Leaf Node=AboveAverageNode
- Tree node sequence:
- RootNode
- AboveAverageNode
- Stage= FirstStage Cost=108898.1476
- Stage= SecondStage Cost=-275899.3041
- Total scenario cost=-167001.1565
-
- Name=AverageScenario
- Probability=0.3333
- Leaf Node=AverageNode
- Tree node sequence:
- RootNode
- AverageNode
- Stage= FirstStage Cost=108897.4725
- Stage= SecondStage Cost=-218243.2209
- Total scenario cost=-109345.7484
-
- Name=BelowAverageScenario
- Probability=0.3333
- Leaf Node=BelowAverageNode
- Tree node sequence:
- RootNode
- BelowAverageNode
- Stage= FirstStage Cost=108897.0836
- Stage= SecondStage Cost=-157713.8615
- Total scenario cost=-48816.7780
-
-----------------------------------------------------
-
-Total PH execution time=4.52 seconds
-
-Scenario tree solution written to file=ph_solution.json
-
-Total execution time=4.56 seconds
diff --git a/pyomo/pysp/tests/examples/baselines/TestPHFarmerSerial.test8.baseline b/pyomo/pysp/tests/examples/baselines/TestPHFarmerSerial.test8.baseline
deleted file mode 100644
index 53d055117d0..00000000000
--- a/pyomo/pysp/tests/examples/baselines/TestPHFarmerSerial.test8.baseline
+++ /dev/null
@@ -1,1339 +0,0 @@
-User-defined PH extension module=pyomo.pysp.plugins.phhistoryextension already imported - skipping
-User-defined PH extension module=pyomo.pysp.plugins.convexhullboundextension already imported - skipping
-Initializing PH
-
-convexhullboundextension using default update interval=1
-WARNING: No construction rule or expression specified for constraint 'W_Balance'
-WARNING: No construction rule or expression specified for constraint 'V_Bound'
-User-defined PH solution writer module=pyomo.pysp.plugins.jsonsolutionwriter already imported - skipping
-Starting PH
-
-Initiating PH iteration=0
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-115405.5556
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.2540 First stage cost avg= 113494.4444 Max-Min=10416.67
-Cumulative run-time=0.08 seconds
-
-Initiating PH iteration=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-112378.3952
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.1259 First stage cost avg= 113107.2221 Max-Min= 6943.89
-Cumulative run-time=0.24 seconds
-
-Initiating PH iteration=2
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-119146.9138
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0816 First stage cost avg= 112954.6296 Max-Min= 2234.82
-Cumulative run-time=0.40 seconds
-
-Initiating PH iteration=3
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-122839.9373
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0796 First stage cost avg= 112963.0248 Max-Min= 2375.31
-Cumulative run-time=0.56 seconds
-
-Initiating PH iteration=4
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-115850.2283
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0776 First stage cost avg= 112915.6071 Max-Min= 3047.08
-Cumulative run-time=0.72 seconds
-
-Initiating PH iteration=5
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-114662.4278
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0794 First stage cost avg= 112825.3926 Max-Min= 3339.81
-Cumulative run-time=0.88 seconds
-
-Initiating PH iteration=6
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-114508.9364
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0726 First stage cost avg= 111425.6142 Max-Min= 3493.67
-Cumulative run-time=1.04 seconds
-
-Initiating PH iteration=7
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-114392.6225
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0844 First stage cost avg= 110005.4890 Max-Min= 3402.43
-Cumulative run-time=1.21 seconds
-
-Initiating PH iteration=8
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-116760.9510
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0727 First stage cost avg= 108759.9444 Max-Min= 2312.53
-Cumulative run-time=1.37 seconds
-
-Initiating PH iteration=9
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-115713.7704
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0636 First stage cost avg= 107649.1713 Max-Min= 2611.98
-Cumulative run-time=1.52 seconds
-
-Initiating PH iteration=10
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-114886.9774
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0786 First stage cost avg= 106975.2119 Max-Min= 3852.20
-Cumulative run-time=1.68 seconds
-
-Initiating PH iteration=11
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-114142.6745
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0822 First stage cost avg= 106779.6625 Max-Min= 3679.63
-Cumulative run-time=1.84 seconds
-
-Initiating PH iteration=12
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-112524.0431
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0773 First stage cost avg= 106949.8534 Max-Min= 3195.33
-Cumulative run-time=2.00 seconds
-
-Initiating PH iteration=13
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-111354.3497
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0690 First stage cost avg= 107328.8057 Max-Min= 2823.03
-Cumulative run-time=2.17 seconds
-
-Initiating PH iteration=14
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110712.3885
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0608 First stage cost avg= 107764.6036 Max-Min= 2533.82
-Cumulative run-time=2.33 seconds
-
-Initiating PH iteration=15
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110412.3233
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0550 First stage cost avg= 108156.8751 Max-Min= 2354.98
-Cumulative run-time=2.49 seconds
-
-Initiating PH iteration=16
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110290.3557
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0518 First stage cost avg= 108452.7004 Max-Min= 2257.08
-Cumulative run-time=2.66 seconds
-
-Initiating PH iteration=17
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110300.1669
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0512 First stage cost avg= 108636.8058 Max-Min= 2233.49
-Cumulative run-time=2.82 seconds
-
-Initiating PH iteration=18
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110407.5782
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0519 First stage cost avg= 108719.1582 Max-Min= 2264.78
-Cumulative run-time=2.99 seconds
-
-Initiating PH iteration=19
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110633.3518
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0526 First stage cost avg= 108723.1781 Max-Min= 2324.13
-Cumulative run-time=3.14 seconds
-
-Initiating PH iteration=20
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110837.3428
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0533 First stage cost avg= 108676.4444 Max-Min= 2388.98
-Cumulative run-time=3.29 seconds
-
-Initiating PH iteration=21
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110971.6327
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0546 First stage cost avg= 108604.4548 Max-Min= 2445.40
-Cumulative run-time=3.46 seconds
-
-Initiating PH iteration=22
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-111036.8465
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0556 First stage cost avg= 108527.2174 Max-Min= 2487.05
-Cumulative run-time=3.62 seconds
-
-Initiating PH iteration=23
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-111046.0537
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0564 First stage cost avg= 108458.0853 Max-Min= 2512.69
-Cumulative run-time=3.79 seconds
-
-Initiating PH iteration=24
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-111045.3417
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0569 First stage cost avg= 108404.1369 Max-Min= 2524.20
-Cumulative run-time=3.95 seconds
-
-Initiating PH iteration=25
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-111047.7122
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0570 First stage cost avg= 108367.4323 Max-Min= 2525.00
-Cumulative run-time=4.12 seconds
-
-Initiating PH iteration=26
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-111034.9673
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0570 First stage cost avg= 108346.6000 Max-Min= 2518.95
-Cumulative run-time=4.28 seconds
-
-Initiating PH iteration=27
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-111015.0786
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0569 First stage cost avg= 108338.3666 Max-Min= 2509.55
-Cumulative run-time=4.45 seconds
-
-Initiating PH iteration=28
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110994.0589
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0568 First stage cost avg= 108338.8015 Max-Min= 2499.51
-Cumulative run-time=4.61 seconds
-
-Initiating PH iteration=29
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110975.7531
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0566 First stage cost avg= 108344.1874 Max-Min= 2490.61
-Cumulative run-time=4.78 seconds
-
-Initiating PH iteration=30
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110962.0614
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0564 First stage cost avg= 108351.5198 Max-Min= 2483.77
-Cumulative run-time=4.94 seconds
-
-Initiating PH iteration=31
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110953.3937
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108358.6998 Max-Min= 2479.23
-Cumulative run-time=5.11 seconds
-
-Initiating PH iteration=32
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110949.1875
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0562 First stage cost avg= 108364.5087 Max-Min= 2476.77
-Cumulative run-time=5.30 seconds
-
-Initiating PH iteration=33
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110948.3798
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0562 First stage cost avg= 108368.4521 Max-Min= 2475.96
-Cumulative run-time=5.46 seconds
-
-Initiating PH iteration=34
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110949.7749
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0562 First stage cost avg= 108370.5509 Max-Min= 2476.24
-Cumulative run-time=5.62 seconds
-
-Initiating PH iteration=35
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110952.2889
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0562 First stage cost avg= 108371.1311 Max-Min= 2477.13
-Cumulative run-time=5.79 seconds
-
-Initiating PH iteration=36
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110955.0811
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0562 First stage cost avg= 108370.6488 Max-Min= 2478.22
-Cumulative run-time=5.96 seconds
-
-Initiating PH iteration=37
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110957.5941
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108369.5627 Max-Min= 2479.26
-Cumulative run-time=6.14 seconds
-
-Initiating PH iteration=38
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110959.5335
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108368.2571 Max-Min= 2480.08
-Cumulative run-time=6.31 seconds
-
-Initiating PH iteration=39
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110960.8119
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108367.0073 Max-Min= 2480.63
-Cumulative run-time=6.49 seconds
-
-Initiating PH iteration=40
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110961.4827
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108365.9766 Max-Min= 2480.92
-Cumulative run-time=6.66 seconds
-
-Initiating PH iteration=41
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110961.6761
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108365.2327 Max-Min= 2481.01
-Cumulative run-time=6.83 seconds
-
-Initiating PH iteration=42
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110961.5481
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.7733 Max-Min= 2480.94
-Cumulative run-time=7.00 seconds
-
-Initiating PH iteration=43
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110961.2454
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.5535 Max-Min= 2480.80
-Cumulative run-time=7.17 seconds
-
-Initiating PH iteration=44
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110960.8855
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.5090 Max-Min= 2480.63
-Cumulative run-time=7.34 seconds
-
-Initiating PH iteration=45
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110960.5490
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.5736 Max-Min= 2480.47
-Cumulative run-time=7.50 seconds
-
-Initiating PH iteration=46
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110960.2811
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.6907 Max-Min= 2480.34
-Cumulative run-time=7.67 seconds
-
-Initiating PH iteration=47
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110960.0984
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.8179 Max-Min= 2480.24
-Cumulative run-time=7.84 seconds
-
-Initiating PH iteration=48
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110959.9970
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9287 Max-Min= 2480.19
-Cumulative run-time=7.99 seconds
-
-Initiating PH iteration=49
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110959.9616
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108365.0097 Max-Min= 2480.16
-Cumulative run-time=8.15 seconds
-
-Initiating PH iteration=50
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110959.9725
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108365.0582 Max-Min= 2480.16
-Cumulative run-time=8.32 seconds
-
-Initiating PH iteration=51
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110960.0094
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108365.0782 Max-Min= 2480.17
-Cumulative run-time=8.49 seconds
-
-Initiating PH iteration=52
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110960.0563
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108365.0767 Max-Min= 2480.19
-Cumulative run-time=8.66 seconds
-
-Initiating PH iteration=53
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110960.1019
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108365.0617 Max-Min= 2480.21
-Cumulative run-time=8.82 seconds
-
-Initiating PH iteration=54
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110960.1392
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108365.0405 Max-Min= 2480.23
-Cumulative run-time=8.99 seconds
-
-Initiating PH iteration=55
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110960.1656
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108365.0185 Max-Min= 2480.24
-Cumulative run-time=9.16 seconds
-
-Initiating PH iteration=56
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110960.1811
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9993 Max-Min= 2480.24
-Cumulative run-time=9.33 seconds
-
-Initiating PH iteration=57
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110960.1874
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9846 Max-Min= 2480.25
-Cumulative run-time=9.50 seconds
-
-Initiating PH iteration=58
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110960.1871
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9749 Max-Min= 2480.25
-Cumulative run-time=9.66 seconds
-
-Initiating PH iteration=59
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110960.1829
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9697 Max-Min= 2480.25
-Cumulative run-time=9.83 seconds
-
-Initiating PH iteration=60
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110960.1770
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9679 Max-Min= 2480.24
-Cumulative run-time=10.00 seconds
-
-Initiating PH iteration=61
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110960.1710
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9684 Max-Min= 2480.24
-Cumulative run-time=10.17 seconds
-
-Initiating PH iteration=62
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110960.1659
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9701 Max-Min= 2480.24
-Cumulative run-time=10.36 seconds
-
-Initiating PH iteration=63
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110960.1622
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9723 Max-Min= 2480.24
-Cumulative run-time=10.53 seconds
-
-Initiating PH iteration=64
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110960.1599
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9743 Max-Min= 2480.23
-Cumulative run-time=10.70 seconds
-
-Initiating PH iteration=65
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110960.1589
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9759 Max-Min= 2480.23
-Cumulative run-time=10.87 seconds
-
-Initiating PH iteration=66
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110960.1588
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9770 Max-Min= 2480.23
-Cumulative run-time=11.04 seconds
-
-Initiating PH iteration=67
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110960.1593
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9775 Max-Min= 2480.23
-Cumulative run-time=11.21 seconds
-
-Initiating PH iteration=68
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110960.1600
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9776 Max-Min= 2480.23
-Cumulative run-time=11.38 seconds
-
-Initiating PH iteration=69
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110960.1608
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9775 Max-Min= 2480.23
-Cumulative run-time=11.56 seconds
-
-Initiating PH iteration=70
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110960.1615
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9771 Max-Min= 2480.23
-Cumulative run-time=11.73 seconds
-
-Initiating PH iteration=71
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110960.1620
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9768 Max-Min= 2480.23
-Cumulative run-time=11.90 seconds
-
-Initiating PH iteration=72
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110960.1624
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9764 Max-Min= 2480.23
-Cumulative run-time=12.08 seconds
-
-Initiating PH iteration=73
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110960.1626
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9761 Max-Min= 2480.23
-Cumulative run-time=12.25 seconds
-
-Initiating PH iteration=74
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110960.1626
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9759 Max-Min= 2480.23
-Cumulative run-time=12.42 seconds
-
-Initiating PH iteration=75
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110960.1625
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9758 Max-Min= 2480.23
-Cumulative run-time=12.59 seconds
-
-Initiating PH iteration=76
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110960.1624
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9758 Max-Min= 2480.23
-Cumulative run-time=12.77 seconds
-
-Initiating PH iteration=77
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110960.1623
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9758 Max-Min= 2480.23
-Cumulative run-time=12.94 seconds
-
-Initiating PH iteration=78
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110960.1622
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9758 Max-Min= 2480.23
-Cumulative run-time=13.11 seconds
-
-Initiating PH iteration=79
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110960.1622
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9758 Max-Min= 2480.23
-Cumulative run-time=13.29 seconds
-
-Initiating PH iteration=80
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110960.1621
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9759 Max-Min= 2480.23
-Cumulative run-time=13.46 seconds
-
-Initiating PH iteration=81
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110960.1619
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9760 Max-Min= 2480.23
-Cumulative run-time=13.63 seconds
-
-Initiating PH iteration=82
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110960.1618
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9760 Max-Min= 2480.23
-Cumulative run-time=13.81 seconds
-
-Initiating PH iteration=83
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110960.1619
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9761 Max-Min= 2480.23
-Cumulative run-time=13.98 seconds
-
-Initiating PH iteration=84
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110960.1620
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9760 Max-Min= 2480.23
-Cumulative run-time=14.15 seconds
-
-Initiating PH iteration=85
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110960.1621
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9760 Max-Min= 2480.23
-Cumulative run-time=14.33 seconds
-
-Initiating PH iteration=86
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110960.1622
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9759 Max-Min= 2480.23
-Cumulative run-time=14.51 seconds
-
-Initiating PH iteration=87
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110960.1622
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9759 Max-Min= 2480.23
-Cumulative run-time=14.68 seconds
-
-Initiating PH iteration=88
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110960.1623
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9758 Max-Min= 2480.23
-Cumulative run-time=14.86 seconds
-
-Initiating PH iteration=89
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110960.1623
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9758 Max-Min= 2480.23
-Cumulative run-time=15.04 seconds
-
-Initiating PH iteration=90
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110960.1623
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9757 Max-Min= 2480.23
-Cumulative run-time=15.22 seconds
-
-Initiating PH iteration=91
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110960.1623
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9757 Max-Min= 2480.23
-Cumulative run-time=15.41 seconds
-
-Initiating PH iteration=92
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110960.1623
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9757 Max-Min= 2480.23
-Cumulative run-time=15.58 seconds
-
-Initiating PH iteration=93
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110960.1623
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9757 Max-Min= 2480.23
-Cumulative run-time=15.76 seconds
-
-Initiating PH iteration=94
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110960.1622
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9757 Max-Min= 2480.23
-Cumulative run-time=15.93 seconds
-
-Initiating PH iteration=95
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110960.1622
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9757 Max-Min= 2480.23
-Cumulative run-time=16.11 seconds
-
-Initiating PH iteration=96
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110960.1622
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9757 Max-Min= 2480.23
-Cumulative run-time=16.29 seconds
-
-Initiating PH iteration=97
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110960.1622
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9758 Max-Min= 2480.23
-Cumulative run-time=16.47 seconds
-
-Initiating PH iteration=98
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110960.1622
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9758 Max-Min= 2480.23
-Cumulative run-time=16.64 seconds
-
-Initiating PH iteration=99
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110960.1622
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9758 Max-Min= 2480.23
-Cumulative run-time=16.82 seconds
-
-Initiating PH iteration=100
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110960.1622
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9758 Max-Min= 2480.23
-Cumulative run-time=17.00 seconds
-Halting PH - reached maximal iteration count=100
-Number of discrete variables fixed before final plugin calls=0 (total=0)
-Number of continuous variables fixed before final plugin calls=0 (total=3)
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-110960.1622
-
- Iteration Bound
- Trivial -115405.555588
- 0 -112378.395154
- 1 -119146.913826
- 2 -122839.937276
- 3 -115850.228262
- 4 -114662.427763
- 5 -114508.936391
- 6 -114392.622476
- 7 -116760.95099
- 8 -115713.770411
- 9 -114886.977381
- 10 -114142.674474
- 11 -112524.04308
- 12 -111354.349714
- 13 -110712.388487
- 14 -110412.32327
- 15 -110290.355717
- 16 -110300.166904
- 17 -110407.578228
- 18 -110633.351824
- 19 -110837.34279
- 20 -110971.63266
- 21 -111036.846504
- 22 -111046.05369
- 23 -111045.341675
- 24 -111047.71221
- 25 -111034.967277
- 26 -111015.078589
- 27 -110994.058898
- 28 -110975.753079
- 29 -110962.061428
- 30 -110953.393719
- 31 -110949.187454
- 32 -110948.379773
- 33 -110949.774873
- 34 -110952.288918
- 35 -110955.081078
- 36 -110957.594134
- 37 -110959.533471
- 38 -110960.811919
- 39 -110961.482721
- 40 -110961.676069
- 41 -110961.548051
- 42 -110961.245392
- 43 -110960.885485
- 44 -110960.548967
- 45 -110960.281111
- 46 -110960.098373
- 47 -110959.997019
- 48 -110959.961634
- 49 -110959.972452
- 50 -110960.009379
- 51 -110960.056336
- 52 -110960.101879
- 53 -110960.139245
- 54 -110960.165621
- 55 -110960.181069
- 56 -110960.187384
- 57 -110960.18713
- 58 -110960.182925
- 59 -110960.176997
- 60 -110960.17098
- 61 -110960.165883
- 62 -110960.162169
- 63 -110960.159897
- 64 -110960.158872
- 65 -110960.158773
- 66 -110960.159253
- 67 -110960.16001
- 68 -110960.160813
- 69 -110960.161517
- 70 -110960.162046
- 71 -110960.162383
- 72 -110960.162551
- 73 -110960.162587
- 74 -110960.162539
- 75 -110960.162446
- 76 -110960.162341
- 77 -110960.162247
- 78 -110960.162173
- 79 -110960.162124
- 80 -110960.161856
- 81 -110960.161822
- 82 -110960.161887
- 83 -110960.161981
- 84 -110960.162077
- 85 -110960.162164
- 86 -110960.162218
- 87 -110960.16226
- 88 -110960.162284
- 89 -110960.162289
- 90 -110960.162282
- 91 -110960.162268
- 92 -110960.16225
- 93 -110960.162233
- 94 -110960.162218
- 95 -110960.162206
- 96 -110960.162196
- 97 -110960.162189
- 98 -110960.162184
- 99 -110960.16218
- 100 -110960.162232
-
-Lower bound history written to file=phbound.txt
-
-Best Objective Bound: -110290.355717
-
-Best Lower Bound written to file=phbestbound.txt
-PH algorithm history written to file=ph_history.json
-PH complete
-Convergence history:
-Iteration Metric Value
- 0 0.2540
- 1 0.1259
- 2 0.0816
- 3 0.0796
- 4 0.0776
- 5 0.0794
- 6 0.0726
- 7 0.0844
- 8 0.0727
- 9 0.0636
- 10 0.0786
- 11 0.0822
- 12 0.0773
- 13 0.0690
- 14 0.0608
- 15 0.0550
- 16 0.0518
- 17 0.0512
- 18 0.0519
- 19 0.0526
- 20 0.0533
- 21 0.0546
- 22 0.0556
- 23 0.0564
- 24 0.0569
- 25 0.0570
- 26 0.0570
- 27 0.0569
- 28 0.0568
- 29 0.0566
- 30 0.0564
- 31 0.0563
- 32 0.0562
- 33 0.0562
- 34 0.0562
- 35 0.0562
- 36 0.0562
- 37 0.0563
- 38 0.0563
- 39 0.0563
- 40 0.0563
- 41 0.0563
- 42 0.0563
- 43 0.0563
- 44 0.0563
- 45 0.0563
- 46 0.0563
- 47 0.0563
- 48 0.0563
- 49 0.0563
- 50 0.0563
- 51 0.0563
- 52 0.0563
- 53 0.0563
- 54 0.0563
- 55 0.0563
- 56 0.0563
- 57 0.0563
- 58 0.0563
- 59 0.0563
- 60 0.0563
- 61 0.0563
- 62 0.0563
- 63 0.0563
- 64 0.0563
- 65 0.0563
- 66 0.0563
- 67 0.0563
- 68 0.0563
- 69 0.0563
- 70 0.0563
- 71 0.0563
- 72 0.0563
- 73 0.0563
- 74 0.0563
- 75 0.0563
- 76 0.0563
- 77 0.0563
- 78 0.0563
- 79 0.0563
- 80 0.0563
- 81 0.0563
- 82 0.0563
- 83 0.0563
- 84 0.0563
- 85 0.0563
- 86 0.0563
- 87 0.0563
- 88 0.0563
- 89 0.0563
- 90 0.0563
- 91 0.0563
- 92 0.0563
- 93 0.0563
- 94 0.0563
- 95 0.0563
- 96 0.0563
- 97 0.0563
- 98 0.0563
- 99 0.0563
- 100 0.0563
-
-***********************************************************************************************
->>>THE EXPECTED SUM OF THE STAGE COST VARIABLES=-106862.160636<<<
->>>***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise<<<
-***********************************************************************************************
-Final number of discrete variables fixed=0 (total=0)
-Final number of continuous variables fixed=0 (total=3)
-Final variable values:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 100.0000 80.0000 87.7861 Max-Min: 20.0000 Avg: 89.2620
- Index: [SUGAR_BEETS] Values: 232.0854 233.1150 250.0000 Max-Min: 17.9146 Avg: 238.4001
- Index: [WHEAT] Values: 167.9146 186.8850 162.2139 Max-Min: 24.6711 Avg: 172.3379
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108529.3918 107042.6505 109522.8850 Max-Min: 2480.2345 Avg: 108364.9758
-Final costs:
-Scenario Tree Costs
-***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise
-----------------------------------------------------
-Tree Nodes:
-
- Name=AboveAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AboveAverageScenario
- Expected cost of (sub)tree rooted at node=-276133.5814
-
- Name=AverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AverageScenario
- Expected cost of (sub)tree rooted at node=-213268.9263
-
- Name=BelowAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-156772.1496
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- AboveAverageNode
- AverageNode
- BelowAverageNode
- Scenarios:
- AboveAverageScenario
- AverageScenario
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-106862.1606
-
-----------------------------------------------------
-Scenarios:
-
- Name=AboveAverageScenario
- Probability=0.3333
- Leaf Node=AboveAverageNode
- Tree node sequence:
- RootNode
- AboveAverageNode
- Stage= FirstStage Cost=109522.8850
- Stage= SecondStage Cost=-276133.5814
- Total scenario cost=-166610.6964
-
- Name=AverageScenario
- Probability=0.3333
- Leaf Node=AverageNode
- Tree node sequence:
- RootNode
- AverageNode
- Stage= FirstStage Cost=107042.6505
- Stage= SecondStage Cost=-213268.9263
- Total scenario cost=-106226.2758
-
- Name=BelowAverageScenario
- Probability=0.3333
- Leaf Node=BelowAverageNode
- Tree node sequence:
- RootNode
- BelowAverageNode
- Stage= FirstStage Cost=108529.3918
- Stage= SecondStage Cost=-156772.1496
- Total scenario cost=-48242.7578
-
-----------------------------------------------------
-
-Total PH execution time=17.07 seconds
-
-Scenario tree solution written to file=ph_solution.json
-
-Total execution time=17.11 seconds
diff --git a/pyomo/pysp/tests/examples/baselines/TestPHFarmerSerial.test9.baseline b/pyomo/pysp/tests/examples/baselines/TestPHFarmerSerial.test9.baseline
deleted file mode 100644
index aca5debcff0..00000000000
--- a/pyomo/pysp/tests/examples/baselines/TestPHFarmerSerial.test9.baseline
+++ /dev/null
@@ -1,250 +0,0 @@
-User-defined PH extension module=pyomo.pysp.plugins.phhistoryextension already imported - skipping
-User-defined PH extension module=pyomo.pysp.plugins.phboundextension already imported - skipping
-Initializing PH
-
-phboundextension using default update interval=1
-WW PH Extension: Loading user-specified configuration from file=/Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/examples/pysp/farmer/config/wwph.cfg
-WW PH Extension: Loading variable suffixes from file=/Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/examples/pysp/farmer/config/wwph.suffixes
-User-defined PH solution writer module=pyomo.pysp.plugins.jsonsolutionwriter already imported - skipping
-Starting PH
-
-Initiating PH iteration=0
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-115405.5556
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.2540 First stage cost avg= 113494.4444 Max-Min=10416.67
-Cumulative run-time=0.06 seconds
-
-Initiating PH iteration=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Computed objective lower bound=-112378.3951
-WW PH Extension: Setting mipgap to 0.1000000, as specified in the configuration file
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.1259 First stage cost avg= 113107.2221 Max-Min= 6943.89
-Cumulative run-time=0.20 seconds
-
-Initiating PH iteration=2
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-WARNING: "[base]/pyomo.pysp/pyomo/pysp/plugins/phboundextension.py", 75, _compute_bound
- A nonzero mipgap was detected when using the PH bound plugin. The bound computation may as a result be conservative.
-Computed objective lower bound=-114092.2009
-WW PH Extension: Setting mipgap to 0.0500717, based on current value of the convergence metric
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0816 First stage cost avg= 112954.6296 Max-Min= 2234.82
-Cumulative run-time=0.34 seconds
-
-Initiating PH iteration=3
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-WARNING: "[base]/pyomo.pysp/pyomo/pysp/plugins/phboundextension.py", 75, _compute_bound
- A nonzero mipgap was detected when using the PH bound plugin. The bound computation may as a result be conservative.
-Computed objective lower bound=-111905.7747
-WW PH Extension: Setting mipgap to 0.0327607, based on current value of the convergence metric
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0796 First stage cost avg= 112963.0248 Max-Min= 2375.31
-Cumulative run-time=0.46 seconds
-
-Initiating PH iteration=4
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-WARNING: "[base]/pyomo.pysp/pyomo/pysp/plugins/phboundextension.py", 75, _compute_bound
- A nonzero mipgap was detected when using the PH bound plugin. The bound computation may as a result be conservative.
-Computed objective lower bound=-110093.7884
-WW PH Extension: Setting mipgap to 0.0319973, based on current value of the convergence metric
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Slamming criteria are satisifed - accelerating convergence
-Slamming variable=DevotedAcreage[CORN] at tree node=RootNode to value=96.8871743104; value=node average (anywhere)
-Fixing variable=DevotedAcreage[CORN] at tree node=RootNode to value=96.8871743104; converged for 0 iterations
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0776 First stage cost avg= 112915.6071 Max-Min= 3047.08
-Cumulative run-time=0.59 seconds
-
-Initiating PH iteration=5
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-WARNING: "[base]/pyomo.pysp/pyomo/pysp/plugins/phboundextension.py", 75, _compute_bound
- A nonzero mipgap was detected when using the PH bound plugin. The bound computation may as a result be conservative.
-Computed objective lower bound=-109499.5161
-WW PH Extension: Setting mipgap to 0.0312342, based on current value of the convergence metric
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=1 (total=3)
-Convergence metric= 0.0609 First stage cost avg= 112895.6887 Max-Min= 5246.95
-Cumulative run-time=0.71 seconds
-
-Initiating PH iteration=6
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-WARNING: "[base]/pyomo.pysp/pyomo/pysp/plugins/phboundextension.py", 75, _compute_bound
- A nonzero mipgap was detected when using the PH bound plugin. The bound computation may as a result be conservative.
-Computed objective lower bound=-109440.7805
-WW PH Extension: Setting mipgap to 0.0247045, based on current value of the convergence metric
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Slamming criteria are satisifed - accelerating convergence
-Slamming variable=DevotedAcreage[WHEAT] at tree node=RootNode to value=137.204959966; value=node average (anywhere)
-Fixing variable=DevotedAcreage[WHEAT] at tree node=RootNode to value=137.204959966; converged for 0 iterations
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=1 (total=3)
-Convergence metric= 0.0391 First stage cost avg= 112000.8391 Max-Min= 2624.80
-Cumulative run-time=0.83 seconds
-
-Initiating PH iteration=7
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-WARNING: "[base]/pyomo.pysp/pyomo/pysp/plugins/phboundextension.py", 75, _compute_bound
- A nonzero mipgap was detected when using the PH bound plugin. The bound computation may as a result be conservative.
-Computed objective lower bound=-112587.0017
-WW PH Extension: Setting mipgap to 0.0161915, based on current value of the convergence metric
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=2 (total=3)
-Convergence metric= 0.0000 First stage cost avg= 112000.8392 Max-Min= 0.00
-Cumulative run-time=0.97 seconds
-PH converged - convergence metric is below threshold=0.0001
-Number of discrete variables fixed before final plugin calls=0 (total=0)
-Number of continuous variables fixed before final plugin calls=2 (total=3)
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-WARNING: "[base]/pyomo.pysp/pyomo/pysp/plugins/phboundextension.py", 75, _compute_bound
- A nonzero mipgap was detected when using the PH bound plugin. The bound computation may as a result be conservative.
-Computed objective lower bound=-112587.0017
-
- Iteration Bound
- Trivial -115405.555588
- 0 -112378.395124
- 1 -114092.2009
- 2 -111905.774744
- 3 -110093.788354
- 4 -109499.516145
- 5 -109440.780542
- 6 -112587.001699
- 7 -112587.001701
-
-Lower bound history written to file=phbound.txt
-
-Best Objective Bound: -109440.780542
-
-Best Lower Bound written to file=phbestbound.txt
-WW PH extension: Fixing all discrete variables that are converged at termination
-Total number of variables fixed at PH termination due to convergence=0
-PH algorithm history written to file=ph_history.json
-PH complete
-Convergence history:
-Iteration Metric Value
- 0 0.2540
- 1 0.1259
- 2 0.0816
- 3 0.0796
- 4 0.0776
- 5 0.0609
- 6 0.0391
- 7 0.0000
-
-***********************************************************************************************
->>>THE EXPECTED SUM OF THE STAGE COST VARIABLES=-107905.908751<<<
->>>***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise<<<
-***********************************************************************************************
-Final number of discrete variables fixed=0 (total=0)
-Final number of continuous variables fixed=2 (total=3)
-Final variable values:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 96.8872 96.8872 96.8872 Max-Min: 0.0000 Avg: 96.8872
- Index: [SUGAR_BEETS] Values: 265.9079 265.9079 265.9079 Max-Min: 0.0000 Avg: 265.9079
- Index: [WHEAT] Values: 137.2050 137.2050 137.2050 Max-Min: 0.0000 Avg: 137.2050
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 112000.8392 112000.8392 112000.8391 Max-Min: 0.0000 Avg: 112000.8392
-Final costs:
-Scenario Tree Costs
-***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise
-----------------------------------------------------
-Tree Nodes:
-
- Name=AboveAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AboveAverageScenario
- Expected cost of (sub)tree rooted at node=-272111.4913
-
- Name=AverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AverageScenario
- Expected cost of (sub)tree rooted at node=-223364.9995
-
- Name=BelowAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-164243.7528
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- AboveAverageNode
- AverageNode
- BelowAverageNode
- Scenarios:
- AboveAverageScenario
- AverageScenario
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-107905.9088
-
-----------------------------------------------------
-Scenarios:
-
- Name=AboveAverageScenario
- Probability=0.3333
- Leaf Node=AboveAverageNode
- Tree node sequence:
- RootNode
- AboveAverageNode
- Stage= FirstStage Cost=112000.8391
- Stage= SecondStage Cost=-272111.4913
- Total scenario cost=-160110.6522
-
- Name=AverageScenario
- Probability=0.3333
- Leaf Node=AverageNode
- Tree node sequence:
- RootNode
- AverageNode
- Stage= FirstStage Cost=112000.8392
- Stage= SecondStage Cost=-223364.9995
- Total scenario cost=-111364.1604
-
- Name=BelowAverageScenario
- Probability=0.3333
- Leaf Node=BelowAverageNode
- Tree node sequence:
- RootNode
- BelowAverageNode
- Stage= FirstStage Cost=112000.8392
- Stage= SecondStage Cost=-164243.7528
- Total scenario cost=-52242.9136
-
-----------------------------------------------------
-
-Total PH execution time=1.03 seconds
-
-Scenario tree solution written to file=ph_solution.json
-
-Total execution time=1.07 seconds
diff --git a/pyomo/pysp/tests/examples/baselines/TestPHFarmerTrivialBundlesPHPyro.test1.baseline b/pyomo/pysp/tests/examples/baselines/TestPHFarmerTrivialBundlesPHPyro.test1.baseline
deleted file mode 100644
index 80d956f27b8..00000000000
--- a/pyomo/pysp/tests/examples/baselines/TestPHFarmerTrivialBundlesPHPyro.test1.baseline
+++ /dev/null
@@ -1,385 +0,0 @@
-*** Pyro Name Server ***
-Name server listening on: ('0.0.0.0', 9090)
-Broadcast server listening on: ('0.0.0.0', 9090)
-URI is: PYRO://10.0.0.15:9090/0a00000f29c120a08c6b2a890d422b9d15
-URI written to: /Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/pyomo/pysp/tests/examples/Pyro_NS_URI
-Name Server started.
-User-defined PH extension module=pyomo.pysp.plugins.phhistoryextension already imported - skipping
-Dispatcher is ready.
-Attempting to find Pyro dispatcher object...
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI:PYRO://10.0.0.15:7766/0a00000f29c220a08c6c4adf1f7d8a4947
-This is worker Worker_10691@Ozymandias.local
-Listening for work from dispatcher...
-Dispatcher Object URI:PYRO://10.0.0.15:7766/0a00000f29c220a08c6c4adf1f7d8a4947
-This is worker Worker_10693@Ozymandias.local
-Listening for work from dispatcher...
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI:PYRO://10.0.0.15:7766/0a00000f29c220a08c6c4adf1f7d8a4947
-This is worker Worker_10692@Ozymandias.local
-Listening for work from dispatcher...
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI: PYRO://10.0.0.15:7766/0a00000f29c220a08c6c4adf1f7d8a4947
-This is client 10694@Ozymandias.local
-Initializing PH
-
-User-defined PH solution writer module=pyomo.pysp.plugins.jsonsolutionwriter already imported - skipping
-Starting PH
-
-Initiating PH iteration=0
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.2540 First stage cost avg= 113494.4444 Max-Min=10416.67
-Cumulative run-time=0.06 seconds
-
-Initiating PH iteration=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.1259 First stage cost avg= 113107.2221 Max-Min= 6943.89
-Cumulative run-time=0.16 seconds
-
-Initiating PH iteration=2
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0816 First stage cost avg= 112954.6296 Max-Min= 2234.82
-Cumulative run-time=0.23 seconds
-
-Initiating PH iteration=3
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0796 First stage cost avg= 112963.0248 Max-Min= 2375.31
-Cumulative run-time=0.31 seconds
-
-Initiating PH iteration=4
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0776 First stage cost avg= 112915.6071 Max-Min= 3047.08
-Cumulative run-time=0.39 seconds
-
-Initiating PH iteration=5
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0794 First stage cost avg= 112825.3926 Max-Min= 3339.81
-Cumulative run-time=0.47 seconds
-
-Initiating PH iteration=6
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0668 First stage cost avg= 112317.9502 Max-Min= 2019.60
-Cumulative run-time=0.54 seconds
-
-Initiating PH iteration=7
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0542 First stage cost avg= 111364.4660 Max-Min= 1181.85
-Cumulative run-time=0.62 seconds
-
-Initiating PH iteration=8
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0360 First stage cost avg= 110283.4074 Max-Min= 463.23
-Cumulative run-time=0.69 seconds
-
-Initiating PH iteration=9
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0243 First stage cost avg= 109399.2542 Max-Min= 363.90
-Cumulative run-time=0.77 seconds
-
-Initiating PH iteration=10
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0256 First stage cost avg= 108834.1930 Max-Min= 933.90
-Cumulative run-time=0.85 seconds
-
-Initiating PH iteration=11
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0248 First stage cost avg= 108575.3219 Max-Min= 918.57
-Cumulative run-time=0.92 seconds
-
-Initiating PH iteration=12
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0163 First stage cost avg= 108513.5347 Max-Min= 591.25
-Cumulative run-time=1.00 seconds
-
-Initiating PH iteration=13
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0081 First stage cost avg= 108528.2899 Max-Min= 175.95
-Cumulative run-time=1.08 seconds
-
-Initiating PH iteration=14
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0168 First stage cost avg= 108561.6577 Max-Min= 274.77
-Cumulative run-time=1.15 seconds
-
-Initiating PH iteration=15
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0163 First stage cost avg= 108604.0579 Max-Min= 295.14
-Cumulative run-time=1.23 seconds
-
-Initiating PH iteration=16
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0098 First stage cost avg= 108667.3583 Max-Min= 127.67
-Cumulative run-time=1.30 seconds
-
-Initiating PH iteration=17
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0032 First stage cost avg= 108758.4237 Max-Min= 59.69
-Cumulative run-time=1.38 seconds
-
-Initiating PH iteration=18
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0026 First stage cost avg= 108868.1277 Max-Min= 101.79
-Cumulative run-time=1.45 seconds
-
-Initiating PH iteration=19
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0039 First stage cost avg= 108975.3089 Max-Min= 73.41
-Cumulative run-time=1.53 seconds
-
-Initiating PH iteration=20
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0043 First stage cost avg= 109057.4144 Max-Min= 39.47
-Cumulative run-time=1.60 seconds
-
-Initiating PH iteration=21
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0044 First stage cost avg= 109099.7145 Max-Min= 87.57
-Cumulative run-time=1.68 seconds
-
-Initiating PH iteration=22
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0040 First stage cost avg= 109099.1239 Max-Min= 104.22
-Cumulative run-time=1.76 seconds
-
-Initiating PH iteration=23
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0032 First stage cost avg= 109062.8322 Max-Min= 88.54
-Cumulative run-time=1.86 seconds
-
-Initiating PH iteration=24
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0021 First stage cost avg= 109004.1156 Max-Min= 54.49
-Cumulative run-time=1.93 seconds
-
-Initiating PH iteration=25
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0008 First stage cost avg= 108937.8039 Max-Min= 16.89
-Cumulative run-time=2.01 seconds
-
-Initiating PH iteration=26
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0005 First stage cost avg= 108876.8822 Max-Min= 14.27
-Cumulative run-time=2.08 seconds
-
-Initiating PH iteration=27
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0015 First stage cost avg= 108830.6201 Max-Min= 34.81
-Cumulative run-time=2.16 seconds
-
-Initiating PH iteration=28
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0021 First stage cost avg= 108803.9655 Max-Min= 44.57
-Cumulative run-time=2.24 seconds
-
-Initiating PH iteration=29
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0023 First stage cost avg= 108797.7661 Max-Min= 45.24
-Cumulative run-time=2.31 seconds
-
-Initiating PH iteration=30
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0020 First stage cost avg= 108809.4793 Max-Min= 39.01
-Cumulative run-time=2.39 seconds
-
-Initiating PH iteration=31
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0015 First stage cost avg= 108834.1639 Max-Min= 28.07
-Cumulative run-time=2.47 seconds
-
-Initiating PH iteration=32
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0008 First stage cost avg= 108865.6237 Max-Min= 14.67
-Cumulative run-time=2.54 seconds
-
-Initiating PH iteration=33
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0001 First stage cost avg= 108897.5679 Max-Min= 1.06
-Cumulative run-time=2.61 seconds
-PH converged - convergence metric is below threshold=0.0001
-Number of discrete variables fixed before final plugin calls=0 (total=0)
-Number of continuous variables fixed before final plugin calls=0 (total=3)
-PH algorithm history written to file=ph_history.json
-PH complete
-Convergence history:
-Iteration Metric Value
- 0 0.2540
- 1 0.1259
- 2 0.0816
- 3 0.0796
- 4 0.0776
- 5 0.0794
- 6 0.0668
- 7 0.0542
- 8 0.0360
- 9 0.0243
- 10 0.0256
- 11 0.0248
- 12 0.0163
- 13 0.0081
- 14 0.0168
- 15 0.0163
- 16 0.0098
- 17 0.0032
- 18 0.0026
- 19 0.0039
- 20 0.0043
- 21 0.0044
- 22 0.0040
- 23 0.0032
- 24 0.0021
- 25 0.0008
- 26 0.0005
- 27 0.0015
- 28 0.0021
- 29 0.0023
- 30 0.0020
- 31 0.0015
- 32 0.0008
- 33 0.0001
-
-***********************************************************************************************
->>>THE EXPECTED SUM OF THE STAGE COST VARIABLES=-108388.378639<<<
->>>***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise<<<
-***********************************************************************************************
-Final number of discrete variables fixed=0 (total=0)
-Final number of continuous variables fixed=0 (total=3)
-Final variable values:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 79.9844 80.0000 79.9768 Max-Min: 0.0232 Avg: 79.9871
- Index: [SUGAR_BEETS] Values: 249.9848 249.9770 250.0000 Max-Min: 0.0230 Avg: 249.9873
- Index: [WHEAT] Values: 170.0308 170.0230 170.0232 Max-Min: 0.0078 Avg: 170.0256
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108897.0836 108897.4725 108898.1476 Max-Min: 1.0640 Avg: 108897.5679
-Final costs:
-Scenario Tree Costs
-***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise
-----------------------------------------------------
-Tree Nodes:
-
- Name=AboveAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AboveAverageScenario
- Expected cost of (sub)tree rooted at node=-275899.3041
-
- Name=AverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AverageScenario
- Expected cost of (sub)tree rooted at node=-218243.2209
-
- Name=BelowAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-157713.8615
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- AboveAverageNode
- AverageNode
- BelowAverageNode
- Scenarios:
- AboveAverageScenario
- AverageScenario
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-108388.3786
-
-----------------------------------------------------
-Scenarios:
-
- Name=AboveAverageScenario
- Probability=0.3333
- Leaf Node=AboveAverageNode
- Tree node sequence:
- RootNode
- AboveAverageNode
- Stage= FirstStage Cost=108898.1476
- Stage= SecondStage Cost=-275899.3041
- Total scenario cost=-167001.1565
-
- Name=AverageScenario
- Probability=0.3333
- Leaf Node=AverageNode
- Tree node sequence:
- RootNode
- AverageNode
- Stage= FirstStage Cost=108897.4725
- Stage= SecondStage Cost=-218243.2209
- Total scenario cost=-109345.7484
-
- Name=BelowAverageScenario
- Probability=0.3333
- Leaf Node=BelowAverageNode
- Tree node sequence:
- RootNode
- BelowAverageNode
- Stage= FirstStage Cost=108897.0836
- Stage= SecondStage Cost=-157713.8615
- Total scenario cost=-48816.7780
-
-----------------------------------------------------
-
-Total PH execution time=2.63 seconds
-
-Scenario tree solution written to file=ph_solution.json
-Shutting down Pyro solver components
-Dispatcher received request to shut down - initiating...
-
-Total execution time=5.97 seconds
-Name Server gracefully stopped.
-Lost connection to dispatch server - shutting down...
-Lost connection to dispatch server - shutting down...
-Lost connection to dispatch server - shutting down...
diff --git a/pyomo/pysp/tests/examples/baselines/TestPHFarmerTrivialBundlesPHPyro.test10.baseline b/pyomo/pysp/tests/examples/baselines/TestPHFarmerTrivialBundlesPHPyro.test10.baseline
deleted file mode 100644
index e9d1a94f95a..00000000000
--- a/pyomo/pysp/tests/examples/baselines/TestPHFarmerTrivialBundlesPHPyro.test10.baseline
+++ /dev/null
@@ -1,266 +0,0 @@
-*** Pyro Name Server ***
-Name server listening on: ('0.0.0.0', 9090)
-Broadcast server listening on: ('0.0.0.0', 9090)
-URI is: PYRO://10.0.0.11:9090/0a00000b115fc20a834b88b9d3baccdb6f1
-URI written to: /Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/pyomo/pysp/tests/examples/Pyro_NS_URI
-Name Server started.
-User-defined PH extension module=pyomo.pysp.plugins.phhistoryextension already imported - skipping
-User-defined PH extension module=pyomo.pysp.plugins.convexhullboundextension already imported - skipping
-Dispatcher is ready.
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI:PYRO://10.0.0.11:7766/0a00000b115fd20a834b9a8436ae0a4ec3f
-This is worker Worker_71167@Ozymandias.local
-Listening for work from dispatcher...
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI:PYRO://10.0.0.11:7766/0a00000b115fd20a834b9a8436ae0a4ec3f
-This is worker Worker_71166@Ozymandias.local
-Listening for work from dispatcher...
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI:PYRO://10.0.0.11:7766/0a00000b115fd20a834b9a8436ae0a4ec3f
-This is worker Worker_71168@Ozymandias.local
-Listening for work from dispatcher...
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI: PYRO://10.0.0.11:7766/0a00000b115fd20a834b9a8436ae0a4ec3f
-This is client 71169@Ozymandias.local
-Initializing PH
-
-convexhullboundextension using default update interval=1
-WARNING: No construction rule or expression specified for constraint 'W_Balance'
-WARNING: No construction rule or expression specified for constraint 'V_Bound'
-WW PH Extension: Loading user-specified configuration from file=/Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/examples/pysp/farmer/config/wwph.cfg
-WW PH Extension: Loading variable suffixes from file=/Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/examples/pysp/farmer/config/wwph.suffixes
-User-defined PH solution writer module=pyomo.pysp.plugins.jsonsolutionwriter already imported - skipping
-Starting PH
-
-Initiating PH iteration=0
-Computed objective lower bound=-115405.5556
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.2540 First stage cost avg= 113494.4444 Max-Min=10416.67
-Cumulative run-time=0.09 seconds
-
-Initiating PH iteration=1
-Computed objective lower bound=-112378.3952
-WW PH Extension: Setting mipgap to 0.1000000, as specified in the configuration file
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.1259 First stage cost avg= 113107.2221 Max-Min= 6943.89
-Cumulative run-time=0.31 seconds
-
-Initiating PH iteration=2
-WARNING: "[base]/pyomo.pysp/pyomo/pysp/plugins/phboundextension.py", 75, _compute_bound
- A nonzero mipgap was detected when using the PH bound plugin. The bound computation may as a result be conservative.
-Computed objective lower bound=-119146.9138
-WW PH Extension: Setting mipgap to 0.0500717, based on current value of the convergence metric
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0816 First stage cost avg= 112954.6296 Max-Min= 2234.82
-Cumulative run-time=0.47 seconds
-
-Initiating PH iteration=3
-WARNING: "[base]/pyomo.pysp/pyomo/pysp/plugins/phboundextension.py", 75, _compute_bound
- A nonzero mipgap was detected when using the PH bound plugin. The bound computation may as a result be conservative.
-Computed objective lower bound=-122839.9373
-WW PH Extension: Setting mipgap to 0.0327607, based on current value of the convergence metric
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0796 First stage cost avg= 112963.0248 Max-Min= 2375.31
-Cumulative run-time=0.63 seconds
-
-Initiating PH iteration=4
-WARNING: "[base]/pyomo.pysp/pyomo/pysp/plugins/phboundextension.py", 75, _compute_bound
- A nonzero mipgap was detected when using the PH bound plugin. The bound computation may as a result be conservative.
-Computed objective lower bound=-115850.2283
-WW PH Extension: Setting mipgap to 0.0319973, based on current value of the convergence metric
-Slamming criteria are satisifed - accelerating convergence
-Slamming variable=DevotedAcreage[CORN] at tree node=RootNode to value=96.8871743104; value=node average (anywhere)
-Fixing variable=DevotedAcreage[CORN] at tree node=RootNode to value=96.8871743104; converged for 0 iterations
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0776 First stage cost avg= 112915.6071 Max-Min= 3047.08
-Cumulative run-time=0.80 seconds
-
-Initiating PH iteration=5
-WARNING: "[base]/pyomo.pysp/pyomo/pysp/plugins/phboundextension.py", 75, _compute_bound
- A nonzero mipgap was detected when using the PH bound plugin. The bound computation may as a result be conservative.
-Computed objective lower bound=-114662.4278
-WW PH Extension: Setting mipgap to 0.0312342, based on current value of the convergence metric
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=1 (total=3)
-Convergence metric= 0.0609 First stage cost avg= 112895.6887 Max-Min= 5246.95
-Cumulative run-time=0.98 seconds
-
-Initiating PH iteration=6
-WARNING: "[base]/pyomo.pysp/pyomo/pysp/plugins/phboundextension.py", 75, _compute_bound
- A nonzero mipgap was detected when using the PH bound plugin. The bound computation may as a result be conservative.
-Computed objective lower bound=-114508.9364
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-WW PH Extension: Setting mipgap to 0.0247045, based on current value of the convergence metric
-Slamming criteria are satisifed - accelerating convergence
-Slamming variable=DevotedAcreage[WHEAT] at tree node=RootNode to value=140.569962554; value=node average (anywhere)
-Fixing variable=DevotedAcreage[WHEAT] at tree node=RootNode to value=140.569962554; converged for 0 iterations
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=1 (total=3)
-Convergence metric= 0.0514 First stage cost avg= 111630.6889 Max-Min= 3912.48
-Cumulative run-time=1.17 seconds
-
-Initiating PH iteration=7
-WARNING: "[base]/pyomo.pysp/pyomo/pysp/plugins/phboundextension.py", 75, _compute_bound
- A nonzero mipgap was detected when using the PH bound plugin. The bound computation may as a result be conservative.
-Computed objective lower bound=-115786.7766
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-WW PH Extension: Setting mipgap to 0.0210062, based on current value of the convergence metric
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=2 (total=3)
-Convergence metric= 0.0000 First stage cost avg= 111630.6889 Max-Min= 0.00
-Cumulative run-time=1.36 seconds
-PH converged - convergence metric is below threshold=0.0001
-Number of discrete variables fixed before final plugin calls=0 (total=0)
-Number of continuous variables fixed before final plugin calls=2 (total=3)
-WARNING: "[base]/pyomo.pysp/pyomo/pysp/plugins/phboundextension.py", 75, _compute_bound
- A nonzero mipgap was detected when using the PH bound plugin. The bound computation may as a result be conservative.
-Computed objective lower bound=-114931.2396
-
- Iteration Bound
- Trivial -115405.555588
- 0 -112378.395154
- 1 -119146.913826
- 2 -122839.937276
- 3 -115850.228262
- 4 -114662.427763
- 5 -114508.936391
- 6 -115786.776605
- 7 -114931.239605
-
-Lower bound history written to file=phbound.txt
-
-Best Objective Bound: -112378.395154
-
-Best Lower Bound written to file=phbestbound.txt
-WW PH extension: Fixing all discrete variables that are converged at termination
-Total number of variables fixed at PH termination due to convergence=0
-PH algorithm history written to file=ph_history.json
-PH complete
-Convergence history:
-Iteration Metric Value
- 0 0.2540
- 1 0.1259
- 2 0.0816
- 3 0.0796
- 4 0.0776
- 5 0.0609
- 6 0.0514
- 7 0.0000
-
-***********************************************************************************************
->>>THE EXPECTED SUM OF THE STAGE COST VARIABLES=-107983.303737<<<
->>>***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise<<<
-***********************************************************************************************
-Final number of discrete variables fixed=0 (total=0)
-Final number of continuous variables fixed=2 (total=3)
-Final variable values:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 96.8872 96.8872 96.8872 Max-Min: 0.0000 Avg: 96.8872
- Index: [SUGAR_BEETS] Values: 262.5429 262.5429 262.5429 Max-Min: 0.0000 Avg: 262.5429
- Index: [WHEAT] Values: 140.5700 140.5700 140.5700 Max-Min: 0.0000 Avg: 140.5700
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 111630.6889 111630.6888 111630.6889 Max-Min: 0.0000 Avg: 111630.6889
-Final costs:
-Scenario Tree Costs
-***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise
-----------------------------------------------------
-Tree Nodes:
-
- Name=AboveAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AboveAverageScenario
- Expected cost of (sub)tree rooted at node=-273020.0421
-
- Name=AverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AverageScenario
- Expected cost of (sub)tree rooted at node=-222372.3235
-
- Name=BelowAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-163449.6122
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- AboveAverageNode
- AverageNode
- BelowAverageNode
- Scenarios:
- AboveAverageScenario
- AverageScenario
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-107983.3037
-
-----------------------------------------------------
-Scenarios:
-
- Name=AboveAverageScenario
- Probability=0.3333
- Leaf Node=AboveAverageNode
- Tree node sequence:
- RootNode
- AboveAverageNode
- Stage= FirstStage Cost=111630.6889
- Stage= SecondStage Cost=-273020.0421
- Total scenario cost=-161389.3532
-
- Name=AverageScenario
- Probability=0.3333
- Leaf Node=AverageNode
- Tree node sequence:
- RootNode
- AverageNode
- Stage= FirstStage Cost=111630.6888
- Stage= SecondStage Cost=-222372.3235
- Total scenario cost=-110741.6346
-
- Name=BelowAverageScenario
- Probability=0.3333
- Leaf Node=BelowAverageNode
- Tree node sequence:
- RootNode
- BelowAverageNode
- Stage= FirstStage Cost=111630.6889
- Stage= SecondStage Cost=-163449.6122
- Total scenario cost=-51818.9233
-
-----------------------------------------------------
-
-Total PH execution time=1.46 seconds
-
-Scenario tree solution written to file=ph_solution.json
-Shutting down Pyro solver components
-Dispatcher received request to shut down - initiating...
-
-Total execution time=4.78 seconds
-Lost connection to dispatch server - shutting down...
-Lost connection to dispatch server - shutting down...
-Lost connection to dispatch server - shutting down...
-Name Server gracefully stopped.
diff --git a/pyomo/pysp/tests/examples/baselines/TestPHFarmerTrivialBundlesPHPyro.test11.baseline b/pyomo/pysp/tests/examples/baselines/TestPHFarmerTrivialBundlesPHPyro.test11.baseline
deleted file mode 100644
index f4df006e65c..00000000000
--- a/pyomo/pysp/tests/examples/baselines/TestPHFarmerTrivialBundlesPHPyro.test11.baseline
+++ /dev/null
@@ -1,262 +0,0 @@
-*** Pyro Name Server ***
-Name server listening on: ('0.0.0.0', 9090)
-Broadcast server listening on: ('0.0.0.0', 9090)
-URI is: PYRO://10.0.0.11:9090/0a00000b1165620a834d1a0bca5655a42c6
-URI written to: /Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/pyomo/pysp/tests/examples/Pyro_NS_URI
-Name Server started.
-User-defined PH extension module=pyomo.pysp.plugins.phhistoryextension already imported - skipping
-User-defined PH extension module=pyomo.pysp.plugins.phboundextension already imported - skipping
-Dispatcher is ready.
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI:PYRO://10.0.0.11:7766/0a00000b1165720a834d2bce2471cc9c8dc
-This is worker Worker_71258@Ozymandias.local
-Listening for work from dispatcher...
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI:PYRO://10.0.0.11:7766/0a00000b1165720a834d2bce2471cc9c8dc
-This is worker Worker_71256@Ozymandias.local
-Listening for work from dispatcher...
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI:PYRO://10.0.0.11:7766/0a00000b1165720a834d2bce2471cc9c8dc
-This is worker Worker_71257@Ozymandias.local
-Listening for work from dispatcher...
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI: PYRO://10.0.0.11:7766/0a00000b1165720a834d2bce2471cc9c8dc
-This is client 71259@Ozymandias.local
-Initializing PH
-
-phboundextension using default update interval=1
-WW PH Extension: Loading user-specified configuration from file=/Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/examples/pysp/farmer/config/wwph.cfg
-WW PH Extension: Loading variable suffixes from file=/Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/examples/pysp/farmer/config/wwph.suffixes
-User-defined PH solution writer module=pyomo.pysp.plugins.jsonsolutionwriter already imported - skipping
-Starting PH
-
-Initiating PH iteration=0
-Computed objective lower bound=-115405.5556
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.2540 First stage cost avg= 113494.4444 Max-Min=10416.67
-Cumulative run-time=0.06 seconds
-
-Initiating PH iteration=1
-Computed objective lower bound=-112378.3951
-WW PH Extension: Setting mipgap to 0.1000000, as specified in the configuration file
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.1259 First stage cost avg= 113107.2221 Max-Min= 6943.89
-Cumulative run-time=0.25 seconds
-
-Initiating PH iteration=2
-WARNING: "[base]/pyomo.pysp/pyomo/pysp/plugins/phboundextension.py", 75, _compute_bound
- A nonzero mipgap was detected when using the PH bound plugin. The bound computation may as a result be conservative.
-Computed objective lower bound=-114092.2009
-WW PH Extension: Setting mipgap to 0.0500717, based on current value of the convergence metric
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0816 First stage cost avg= 112954.6296 Max-Min= 2234.82
-Cumulative run-time=0.41 seconds
-
-Initiating PH iteration=3
-WARNING: "[base]/pyomo.pysp/pyomo/pysp/plugins/phboundextension.py", 75, _compute_bound
- A nonzero mipgap was detected when using the PH bound plugin. The bound computation may as a result be conservative.
-Computed objective lower bound=-111905.7747
-WW PH Extension: Setting mipgap to 0.0327607, based on current value of the convergence metric
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0796 First stage cost avg= 112963.0248 Max-Min= 2375.31
-Cumulative run-time=0.57 seconds
-
-Initiating PH iteration=4
-WARNING: "[base]/pyomo.pysp/pyomo/pysp/plugins/phboundextension.py", 75, _compute_bound
- A nonzero mipgap was detected when using the PH bound plugin. The bound computation may as a result be conservative.
-Computed objective lower bound=-110093.7884
-WW PH Extension: Setting mipgap to 0.0319973, based on current value of the convergence metric
-Slamming criteria are satisifed - accelerating convergence
-Slamming variable=DevotedAcreage[CORN] at tree node=RootNode to value=96.8871743104; value=node average (anywhere)
-Fixing variable=DevotedAcreage[CORN] at tree node=RootNode to value=96.8871743104; converged for 0 iterations
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0776 First stage cost avg= 112915.6071 Max-Min= 3047.08
-Cumulative run-time=0.73 seconds
-
-Initiating PH iteration=5
-WARNING: "[base]/pyomo.pysp/pyomo/pysp/plugins/phboundextension.py", 75, _compute_bound
- A nonzero mipgap was detected when using the PH bound plugin. The bound computation may as a result be conservative.
-Computed objective lower bound=-109499.5161
-WW PH Extension: Setting mipgap to 0.0312342, based on current value of the convergence metric
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=1 (total=3)
-Convergence metric= 0.0609 First stage cost avg= 112895.6887 Max-Min= 5246.95
-Cumulative run-time=0.90 seconds
-
-Initiating PH iteration=6
-WARNING: "[base]/pyomo.pysp/pyomo/pysp/plugins/phboundextension.py", 75, _compute_bound
- A nonzero mipgap was detected when using the PH bound plugin. The bound computation may as a result be conservative.
-Computed objective lower bound=-109440.7805
-WW PH Extension: Setting mipgap to 0.0247045, based on current value of the convergence metric
-Slamming criteria are satisifed - accelerating convergence
-Slamming variable=DevotedAcreage[WHEAT] at tree node=RootNode to value=137.204959966; value=node average (anywhere)
-Fixing variable=DevotedAcreage[WHEAT] at tree node=RootNode to value=137.204959966; converged for 0 iterations
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=1 (total=3)
-Convergence metric= 0.0391 First stage cost avg= 112000.8391 Max-Min= 2624.80
-Cumulative run-time=1.08 seconds
-
-Initiating PH iteration=7
-WARNING: "[base]/pyomo.pysp/pyomo/pysp/plugins/phboundextension.py", 75, _compute_bound
- A nonzero mipgap was detected when using the PH bound plugin. The bound computation may as a result be conservative.
-Computed objective lower bound=-112587.0017
-WW PH Extension: Setting mipgap to 0.0161915, based on current value of the convergence metric
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=2 (total=3)
-Convergence metric= 0.0000 First stage cost avg= 112000.8392 Max-Min= 0.00
-Cumulative run-time=1.28 seconds
-PH converged - convergence metric is below threshold=0.0001
-Number of discrete variables fixed before final plugin calls=0 (total=0)
-Number of continuous variables fixed before final plugin calls=2 (total=3)
-WARNING: "[base]/pyomo.pysp/pyomo/pysp/plugins/phboundextension.py", 75, _compute_bound
- A nonzero mipgap was detected when using the PH bound plugin. The bound computation may as a result be conservative.
-Computed objective lower bound=-112587.0017
-
- Iteration Bound
- Trivial -115405.555588
- 0 -112378.395124
- 1 -114092.2009
- 2 -111905.774744
- 3 -110093.788354
- 4 -109499.516145
- 5 -109440.780542
- 6 -112587.001699
- 7 -112587.001701
-
-Lower bound history written to file=phbound.txt
-
-Best Objective Bound: -109440.780542
-
-Best Lower Bound written to file=phbestbound.txt
-WW PH extension: Fixing all discrete variables that are converged at termination
-Total number of variables fixed at PH termination due to convergence=0
-PH algorithm history written to file=ph_history.json
-PH complete
-Convergence history:
-Iteration Metric Value
- 0 0.2540
- 1 0.1259
- 2 0.0816
- 3 0.0796
- 4 0.0776
- 5 0.0609
- 6 0.0391
- 7 0.0000
-
-***********************************************************************************************
->>>THE EXPECTED SUM OF THE STAGE COST VARIABLES=-107905.908751<<<
->>>***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise<<<
-***********************************************************************************************
-Final number of discrete variables fixed=0 (total=0)
-Final number of continuous variables fixed=2 (total=3)
-Final variable values:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 96.8872 96.8872 96.8872 Max-Min: 0.0000 Avg: 96.8872
- Index: [SUGAR_BEETS] Values: 265.9079 265.9079 265.9079 Max-Min: 0.0000 Avg: 265.9079
- Index: [WHEAT] Values: 137.2050 137.2050 137.2050 Max-Min: 0.0000 Avg: 137.2050
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 112000.8392 112000.8392 112000.8391 Max-Min: 0.0000 Avg: 112000.8392
-Final costs:
-Scenario Tree Costs
-***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise
-----------------------------------------------------
-Tree Nodes:
-
- Name=AboveAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AboveAverageScenario
- Expected cost of (sub)tree rooted at node=-272111.4913
-
- Name=AverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AverageScenario
- Expected cost of (sub)tree rooted at node=-223364.9995
-
- Name=BelowAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-164243.7528
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- AboveAverageNode
- AverageNode
- BelowAverageNode
- Scenarios:
- AboveAverageScenario
- AverageScenario
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-107905.9088
-
-----------------------------------------------------
-Scenarios:
-
- Name=AboveAverageScenario
- Probability=0.3333
- Leaf Node=AboveAverageNode
- Tree node sequence:
- RootNode
- AboveAverageNode
- Stage= FirstStage Cost=112000.8391
- Stage= SecondStage Cost=-272111.4913
- Total scenario cost=-160110.6522
-
- Name=AverageScenario
- Probability=0.3333
- Leaf Node=AverageNode
- Tree node sequence:
- RootNode
- AverageNode
- Stage= FirstStage Cost=112000.8392
- Stage= SecondStage Cost=-223364.9995
- Total scenario cost=-111364.1604
-
- Name=BelowAverageScenario
- Probability=0.3333
- Leaf Node=BelowAverageNode
- Tree node sequence:
- RootNode
- BelowAverageNode
- Stage= FirstStage Cost=112000.8392
- Stage= SecondStage Cost=-164243.7528
- Total scenario cost=-52242.9136
-
-----------------------------------------------------
-
-Total PH execution time=1.38 seconds
-
-Scenario tree solution written to file=ph_solution.json
-Shutting down Pyro solver components
-Dispatcher received request to shut down - initiating...
-
-Total execution time=4.69 seconds
-Lost connection to dispatch server - shutting down...
-Lost connection to dispatch server - shutting down...
-Lost connection to dispatch server - shutting down...
-Name Server gracefully stopped.
diff --git a/pyomo/pysp/tests/examples/baselines/TestPHFarmerTrivialBundlesPHPyro.test12.baseline b/pyomo/pysp/tests/examples/baselines/TestPHFarmerTrivialBundlesPHPyro.test12.baseline
deleted file mode 100644
index da49baae81b..00000000000
--- a/pyomo/pysp/tests/examples/baselines/TestPHFarmerTrivialBundlesPHPyro.test12.baseline
+++ /dev/null
@@ -1,266 +0,0 @@
-*** Pyro Name Server ***
-Name server listening on: ('0.0.0.0', 9090)
-Broadcast server listening on: ('0.0.0.0', 9090)
-URI is: PYRO://10.0.0.11:9090/0a00000b116a920a834eaed80392c1dfe7a
-URI written to: /Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/pyomo/pysp/tests/examples/Pyro_NS_URI
-Name Server started.
-User-defined PH extension module=pyomo.pysp.plugins.phhistoryextension already imported - skipping
-User-defined PH extension module=pyomo.pysp.plugins.convexhullboundextension already imported - skipping
-Dispatcher is ready.
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI:PYRO://10.0.0.11:7766/0a00000b116aa20a834ebf2d1c10ce21a49
-This is worker Worker_71341@Ozymandias.local
-Listening for work from dispatcher...
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI:PYRO://10.0.0.11:7766/0a00000b116aa20a834ebf2d1c10ce21a49
-This is worker Worker_71340@Ozymandias.local
-Listening for work from dispatcher...
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI:PYRO://10.0.0.11:7766/0a00000b116aa20a834ebf2d1c10ce21a49
-This is worker Worker_71339@Ozymandias.local
-Listening for work from dispatcher...
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI: PYRO://10.0.0.11:7766/0a00000b116aa20a834ebf2d1c10ce21a49
-This is client 71342@Ozymandias.local
-Initializing PH
-
-convexhullboundextension using default update interval=1
-WARNING: No construction rule or expression specified for constraint 'W_Balance'
-WARNING: No construction rule or expression specified for constraint 'V_Bound'
-WW PH Extension: Loading user-specified configuration from file=/Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/examples/pysp/farmer/config/wwph.cfg
-WW PH Extension: Loading variable suffixes from file=/Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/examples/pysp/farmer/config/wwph.suffixes
-User-defined PH solution writer module=pyomo.pysp.plugins.jsonsolutionwriter already imported - skipping
-Starting PH
-
-Initiating PH iteration=0
-Computed objective lower bound=-115405.5556
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.2540 First stage cost avg= 113494.4444 Max-Min=10416.67
-Cumulative run-time=0.07 seconds
-
-Initiating PH iteration=1
-Computed objective lower bound=-112378.3952
-WW PH Extension: Setting mipgap to 0.1000000, as specified in the configuration file
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.1259 First stage cost avg= 113107.2221 Max-Min= 6943.89
-Cumulative run-time=0.27 seconds
-
-Initiating PH iteration=2
-WARNING: "[base]/pyomo.pysp/pyomo/pysp/plugins/phboundextension.py", 75, _compute_bound
- A nonzero mipgap was detected when using the PH bound plugin. The bound computation may as a result be conservative.
-Computed objective lower bound=-119146.9138
-WW PH Extension: Setting mipgap to 0.0500717, based on current value of the convergence metric
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0816 First stage cost avg= 112954.6296 Max-Min= 2234.82
-Cumulative run-time=0.43 seconds
-
-Initiating PH iteration=3
-WARNING: "[base]/pyomo.pysp/pyomo/pysp/plugins/phboundextension.py", 75, _compute_bound
- A nonzero mipgap was detected when using the PH bound plugin. The bound computation may as a result be conservative.
-Computed objective lower bound=-122839.9373
-WW PH Extension: Setting mipgap to 0.0327607, based on current value of the convergence metric
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0796 First stage cost avg= 112963.0248 Max-Min= 2375.31
-Cumulative run-time=0.59 seconds
-
-Initiating PH iteration=4
-WARNING: "[base]/pyomo.pysp/pyomo/pysp/plugins/phboundextension.py", 75, _compute_bound
- A nonzero mipgap was detected when using the PH bound plugin. The bound computation may as a result be conservative.
-Computed objective lower bound=-115850.2283
-WW PH Extension: Setting mipgap to 0.0319973, based on current value of the convergence metric
-Slamming criteria are satisifed - accelerating convergence
-Slamming variable=DevotedAcreage[CORN] at tree node=RootNode to value=96.8871743104; value=node average (anywhere)
-Fixing variable=DevotedAcreage[CORN] at tree node=RootNode to value=96.8871743104; converged for 0 iterations
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0776 First stage cost avg= 112915.6071 Max-Min= 3047.08
-Cumulative run-time=0.75 seconds
-
-Initiating PH iteration=5
-WARNING: "[base]/pyomo.pysp/pyomo/pysp/plugins/phboundextension.py", 75, _compute_bound
- A nonzero mipgap was detected when using the PH bound plugin. The bound computation may as a result be conservative.
-Computed objective lower bound=-114662.4278
-WW PH Extension: Setting mipgap to 0.0312342, based on current value of the convergence metric
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=1 (total=3)
-Convergence metric= 0.0609 First stage cost avg= 112895.6887 Max-Min= 5246.95
-Cumulative run-time=0.93 seconds
-
-Initiating PH iteration=6
-WARNING: "[base]/pyomo.pysp/pyomo/pysp/plugins/phboundextension.py", 75, _compute_bound
- A nonzero mipgap was detected when using the PH bound plugin. The bound computation may as a result be conservative.
-Computed objective lower bound=-114508.9364
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-WW PH Extension: Setting mipgap to 0.0247045, based on current value of the convergence metric
-Slamming criteria are satisifed - accelerating convergence
-Slamming variable=DevotedAcreage[WHEAT] at tree node=RootNode to value=140.569962554; value=node average (anywhere)
-Fixing variable=DevotedAcreage[WHEAT] at tree node=RootNode to value=140.569962554; converged for 0 iterations
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=1 (total=3)
-Convergence metric= 0.0514 First stage cost avg= 111630.6889 Max-Min= 3912.48
-Cumulative run-time=1.11 seconds
-
-Initiating PH iteration=7
-WARNING: "[base]/pyomo.pysp/pyomo/pysp/plugins/phboundextension.py", 75, _compute_bound
- A nonzero mipgap was detected when using the PH bound plugin. The bound computation may as a result be conservative.
-Computed objective lower bound=-115786.7766
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-WW PH Extension: Setting mipgap to 0.0210062, based on current value of the convergence metric
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=2 (total=3)
-Convergence metric= 0.0000 First stage cost avg= 111630.6889 Max-Min= 0.00
-Cumulative run-time=1.30 seconds
-PH converged - convergence metric is below threshold=0.0001
-Number of discrete variables fixed before final plugin calls=0 (total=0)
-Number of continuous variables fixed before final plugin calls=2 (total=3)
-WARNING: "[base]/pyomo.pysp/pyomo/pysp/plugins/phboundextension.py", 75, _compute_bound
- A nonzero mipgap was detected when using the PH bound plugin. The bound computation may as a result be conservative.
-Computed objective lower bound=-114931.2396
-
- Iteration Bound
- Trivial -115405.555588
- 0 -112378.395154
- 1 -119146.913826
- 2 -122839.937276
- 3 -115850.228262
- 4 -114662.427763
- 5 -114508.936391
- 6 -115786.776605
- 7 -114931.239605
-
-Lower bound history written to file=phbound.txt
-
-Best Objective Bound: -112378.395154
-
-Best Lower Bound written to file=phbestbound.txt
-WW PH extension: Fixing all discrete variables that are converged at termination
-Total number of variables fixed at PH termination due to convergence=0
-PH algorithm history written to file=ph_history.json
-PH complete
-Convergence history:
-Iteration Metric Value
- 0 0.2540
- 1 0.1259
- 2 0.0816
- 3 0.0796
- 4 0.0776
- 5 0.0609
- 6 0.0514
- 7 0.0000
-
-***********************************************************************************************
->>>THE EXPECTED SUM OF THE STAGE COST VARIABLES=-107983.303737<<<
->>>***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise<<<
-***********************************************************************************************
-Final number of discrete variables fixed=0 (total=0)
-Final number of continuous variables fixed=2 (total=3)
-Final variable values:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 96.8872 96.8872 96.8872 Max-Min: 0.0000 Avg: 96.8872
- Index: [SUGAR_BEETS] Values: 262.5429 262.5429 262.5429 Max-Min: 0.0000 Avg: 262.5429
- Index: [WHEAT] Values: 140.5700 140.5700 140.5700 Max-Min: 0.0000 Avg: 140.5700
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 111630.6889 111630.6888 111630.6889 Max-Min: 0.0000 Avg: 111630.6889
-Final costs:
-Scenario Tree Costs
-***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise
-----------------------------------------------------
-Tree Nodes:
-
- Name=AboveAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AboveAverageScenario
- Expected cost of (sub)tree rooted at node=-273020.0421
-
- Name=AverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AverageScenario
- Expected cost of (sub)tree rooted at node=-222372.3235
-
- Name=BelowAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-163449.6122
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- AboveAverageNode
- AverageNode
- BelowAverageNode
- Scenarios:
- AboveAverageScenario
- AverageScenario
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-107983.3037
-
-----------------------------------------------------
-Scenarios:
-
- Name=AboveAverageScenario
- Probability=0.3333
- Leaf Node=AboveAverageNode
- Tree node sequence:
- RootNode
- AboveAverageNode
- Stage= FirstStage Cost=111630.6889
- Stage= SecondStage Cost=-273020.0421
- Total scenario cost=-161389.3532
-
- Name=AverageScenario
- Probability=0.3333
- Leaf Node=AverageNode
- Tree node sequence:
- RootNode
- AverageNode
- Stage= FirstStage Cost=111630.6888
- Stage= SecondStage Cost=-222372.3235
- Total scenario cost=-110741.6346
-
- Name=BelowAverageScenario
- Probability=0.3333
- Leaf Node=BelowAverageNode
- Tree node sequence:
- RootNode
- BelowAverageNode
- Stage= FirstStage Cost=111630.6889
- Stage= SecondStage Cost=-163449.6122
- Total scenario cost=-51818.9233
-
-----------------------------------------------------
-
-Total PH execution time=1.39 seconds
-
-Scenario tree solution written to file=ph_solution.json
-Shutting down Pyro solver components
-Dispatcher received request to shut down - initiating...
-
-Total execution time=4.69 seconds
-Lost connection to dispatch server - shutting down...
-Lost connection to dispatch server - shutting down...
-Lost connection to dispatch server - shutting down...
-Name Server gracefully stopped.
diff --git a/pyomo/pysp/tests/examples/baselines/TestPHFarmerTrivialBundlesPHPyro.test13.baseline b/pyomo/pysp/tests/examples/baselines/TestPHFarmerTrivialBundlesPHPyro.test13.baseline
deleted file mode 100644
index b56266af48e..00000000000
--- a/pyomo/pysp/tests/examples/baselines/TestPHFarmerTrivialBundlesPHPyro.test13.baseline
+++ /dev/null
@@ -1,220 +0,0 @@
-*** Pyro Name Server ***
-Name server listening on: ('0.0.0.0', 9090)
-Broadcast server listening on: ('0.0.0.0', 9090)
-URI is: PYRO://10.0.0.15:9090/0a00000f2b4c20a08cb9bd2aae4448ccb8
-URI written to: /Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/pyomo/pysp/tests/examples/Pyro_NS_URI
-Name Server started.
-User-defined PH extension module=pyomo.pysp.plugins.phhistoryextension already imported - skipping
-Dispatcher is ready.
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI:PYRO://10.0.0.15:7766/0a00000f2b4d20a08cbadeb30b902867c8
-This is worker Worker_11088@Ozymandias.local
-Listening for work from dispatcher...
-Attempting to find Pyro dispatcher object...
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI:PYRO://10.0.0.15:7766/0a00000f2b4d20a08cbadeb30b902867c8
-This is worker Worker_11087@Ozymandias.local
-Listening for work from dispatcher...
-Dispatcher Object URI:PYRO://10.0.0.15:7766/0a00000f2b4d20a08cbadeb30b902867c8
-This is worker Worker_11086@Ozymandias.local
-Listening for work from dispatcher...
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI: PYRO://10.0.0.15:7766/0a00000f2b4d20a08cbadeb30b902867c8
-This is client 11089@Ozymandias.local
-Initializing PH
-
-WW PH Extension: Loading user-specified configuration from file=/Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/examples/pysp/farmer/config/wwph.cfg
-WW PH Extension: Loading variable suffixes from file=/Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/examples/pysp/farmer/config/wwph.suffixes
-User-defined PH solution writer module=pyomo.pysp.plugins.jsonsolutionwriter already imported - skipping
-Starting PH
-
-Initiating PH iteration=0
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.2540 First stage cost avg= 113494.4444 Max-Min=10416.67
-Cumulative run-time=0.05 seconds
-
-Initiating PH iteration=1
-WW PH Extension: Setting mipgap to 0.1000000, as specified in the configuration file
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.1259 First stage cost avg= 113107.2221 Max-Min= 6943.89
-Cumulative run-time=0.16 seconds
-
-Initiating PH iteration=2
-WW PH Extension: Setting mipgap to 0.0500717, based on current value of the convergence metric
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0816 First stage cost avg= 112954.6296 Max-Min= 2234.82
-Cumulative run-time=0.24 seconds
-
-Initiating PH iteration=3
-WW PH Extension: Setting mipgap to 0.0327607, based on current value of the convergence metric
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0796 First stage cost avg= 112963.0248 Max-Min= 2375.31
-Cumulative run-time=0.31 seconds
-
-Initiating PH iteration=4
-WW PH Extension: Setting mipgap to 0.0319973, based on current value of the convergence metric
-Slamming criteria are satisifed - accelerating convergence
-Slamming variable=DevotedAcreage[CORN] at tree node=RootNode to value=96.8871743104; value=node average (anywhere)
-Fixing variable=DevotedAcreage[CORN] at tree node=RootNode to value=96.8871743104; converged for 0 iterations
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0776 First stage cost avg= 112915.6071 Max-Min= 3047.08
-Cumulative run-time=0.39 seconds
-
-Initiating PH iteration=5
-WW PH Extension: Setting mipgap to 0.0312342, based on current value of the convergence metric
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=1 (total=3)
-Convergence metric= 0.0609 First stage cost avg= 112895.6887 Max-Min= 5246.95
-Cumulative run-time=0.47 seconds
-
-Initiating PH iteration=6
-WW PH Extension: Setting mipgap to 0.0247045, based on current value of the convergence metric
-Slamming criteria are satisifed - accelerating convergence
-Slamming variable=DevotedAcreage[WHEAT] at tree node=RootNode to value=137.204959966; value=node average (anywhere)
-Fixing variable=DevotedAcreage[WHEAT] at tree node=RootNode to value=137.204959966; converged for 0 iterations
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=1 (total=3)
-Convergence metric= 0.0391 First stage cost avg= 112000.8391 Max-Min= 2624.80
-Cumulative run-time=0.55 seconds
-
-Initiating PH iteration=7
-WW PH Extension: Setting mipgap to 0.0161915, based on current value of the convergence metric
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=2 (total=3)
-Convergence metric= 0.0000 First stage cost avg= 112000.8392 Max-Min= 0.00
-Cumulative run-time=0.63 seconds
-PH converged - convergence metric is below threshold=0.0001
-Number of discrete variables fixed before final plugin calls=0 (total=0)
-Number of continuous variables fixed before final plugin calls=2 (total=3)
-WW PH extension: Fixing all discrete variables that are converged at termination
-Total number of variables fixed at PH termination due to convergence=0
-PH algorithm history written to file=ph_history.json
-PH complete
-Convergence history:
-Iteration Metric Value
- 0 0.2540
- 1 0.1259
- 2 0.0816
- 3 0.0796
- 4 0.0776
- 5 0.0609
- 6 0.0391
- 7 0.0000
-
-***********************************************************************************************
->>>THE EXPECTED SUM OF THE STAGE COST VARIABLES=-107905.908751<<<
->>>***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise<<<
-***********************************************************************************************
-Final number of discrete variables fixed=0 (total=0)
-Final number of continuous variables fixed=2 (total=3)
-Final variable values:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 96.8872 96.8872 96.8872 Max-Min: 0.0000 Avg: 96.8872
- Index: [SUGAR_BEETS] Values: 265.9079 265.9079 265.9079 Max-Min: 0.0000 Avg: 265.9079
- Index: [WHEAT] Values: 137.2050 137.2050 137.2050 Max-Min: 0.0000 Avg: 137.2050
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 112000.8392 112000.8392 112000.8391 Max-Min: 0.0000 Avg: 112000.8392
-Final costs:
-Scenario Tree Costs
-***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise
-----------------------------------------------------
-Tree Nodes:
-
- Name=AboveAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AboveAverageScenario
- Expected cost of (sub)tree rooted at node=-272111.4913
-
- Name=AverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AverageScenario
- Expected cost of (sub)tree rooted at node=-223364.9995
-
- Name=BelowAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-164243.7528
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- AboveAverageNode
- AverageNode
- BelowAverageNode
- Scenarios:
- AboveAverageScenario
- AverageScenario
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-107905.9088
-
-----------------------------------------------------
-Scenarios:
-
- Name=AboveAverageScenario
- Probability=0.3333
- Leaf Node=AboveAverageNode
- Tree node sequence:
- RootNode
- AboveAverageNode
- Stage= FirstStage Cost=112000.8391
- Stage= SecondStage Cost=-272111.4913
- Total scenario cost=-160110.6522
-
- Name=AverageScenario
- Probability=0.3333
- Leaf Node=AverageNode
- Tree node sequence:
- RootNode
- AverageNode
- Stage= FirstStage Cost=112000.8392
- Stage= SecondStage Cost=-223364.9995
- Total scenario cost=-111364.1604
-
- Name=BelowAverageScenario
- Probability=0.3333
- Leaf Node=BelowAverageNode
- Tree node sequence:
- RootNode
- BelowAverageNode
- Stage= FirstStage Cost=112000.8392
- Stage= SecondStage Cost=-164243.7528
- Total scenario cost=-52242.9136
-
-----------------------------------------------------
-
-Total PH execution time=0.65 seconds
-
-Scenario tree solution written to file=ph_solution.json
-Shutting down Pyro solver components
-Dispatcher received request to shut down - initiating...
-
-Total execution time=3.98 seconds
-Name Server gracefully stopped.
-Lost connection to dispatch server - shutting down...
-Lost connection to dispatch server - shutting down...
-Lost connection to dispatch server - shutting down...
diff --git a/pyomo/pysp/tests/examples/baselines/TestPHFarmerTrivialBundlesPHPyro.test14.baseline b/pyomo/pysp/tests/examples/baselines/TestPHFarmerTrivialBundlesPHPyro.test14.baseline
deleted file mode 100644
index 8e5f12dd5e2..00000000000
--- a/pyomo/pysp/tests/examples/baselines/TestPHFarmerTrivialBundlesPHPyro.test14.baseline
+++ /dev/null
@@ -1,234 +0,0 @@
-*** Pyro Name Server ***
-Name server listening on: ('0.0.0.0', 9090)
-Broadcast server listening on: ('0.0.0.0', 9090)
-URI is: PYRO://10.0.0.15:9090/0a00000f2b8220a08cbcfd36311fba6c3b
-URI written to: /Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/pyomo/pysp/tests/examples/Pyro_NS_URI
-Name Server started.
-User-defined PH extension module=pyomo.pysp.plugins.phhistoryextension already imported - skipping
-Trying to import module=/Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/examples/pysp/farmer/config/aggregategetter.py
-Module successfully loaded
-Trying to import module=/Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/examples/pysp/farmer/config/rhosetter.py
-Module successfully loaded
-Trying to import module=/Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/examples/pysp/farmer/config/boundsetter.py
-Module successfully loaded
-Dispatcher is ready.
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI:PYRO://10.0.0.15:7766/0a00000f2b8320a08cbe1cbb7bd7f7672c
-This is worker Worker_11142@Ozymandias.local
-Attempting to find Pyro dispatcher object...
-Listening for work from dispatcher...
-Dispatcher Object URI:PYRO://10.0.0.15:7766/0a00000f2b8320a08cbe1cbb7bd7f7672c
-This is worker Worker_11141@Ozymandias.local
-Attempting to find Pyro dispatcher object...
-Listening for work from dispatcher...
-Dispatcher Object URI:PYRO://10.0.0.15:7766/0a00000f2b8320a08cbe1cbb7bd7f7672c
-This is worker Worker_11140@Ozymandias.local
-Listening for work from dispatcher...
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI: PYRO://10.0.0.15:7766/0a00000f2b8320a08cbe1cbb7bd7f7672c
-This is client 11143@Ozymandias.local
-Initializing PH
-
-Transmitting user aggregate callback invocations to phsolverservers
-Broadcasting final aggregate data to phsolverservers
-Transmitting user rho callback invocations to phsolverservers
-Transmitting user bound callback invocations to phsolverservers
-User-defined PH solution writer module=pyomo.pysp.plugins.jsonsolutionwriter already imported - skipping
-Starting PH
-
-Initiating PH iteration=0
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.2540 First stage cost avg= 113494.4444 Max-Min=10416.67
-Cumulative run-time=0.03 seconds
-
-Initiating PH iteration=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.2540 First stage cost avg= 113494.4444 Max-Min=10416.67
-Cumulative run-time=0.14 seconds
-
-Initiating PH iteration=2
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.2540 First stage cost avg= 113494.4445 Max-Min=10416.67
-Cumulative run-time=0.22 seconds
-
-Initiating PH iteration=3
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.1991 First stage cost avg= 113545.3418 Max-Min= 9341.08
-Cumulative run-time=0.29 seconds
-
-Initiating PH iteration=4
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.1166 First stage cost avg= 113837.6523 Max-Min= 6301.86
-Cumulative run-time=0.37 seconds
-
-Initiating PH iteration=5
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.1032 First stage cost avg= 114197.8075 Max-Min= 3806.58
-Cumulative run-time=0.44 seconds
-
-Initiating PH iteration=6
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.1094 First stage cost avg= 114422.4887 Max-Min= 3132.53
-Cumulative run-time=0.52 seconds
-
-Initiating PH iteration=7
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.1055 First stage cost avg= 114278.3496 Max-Min= 3564.95
-Cumulative run-time=0.60 seconds
-
-Initiating PH iteration=8
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.1022 First stage cost avg= 114107.3631 Max-Min= 4077.91
-Cumulative run-time=0.67 seconds
-
-Initiating PH iteration=9
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.1020 First stage cost avg= 114041.4185 Max-Min= 4275.74
-Cumulative run-time=0.75 seconds
-
-Initiating PH iteration=10
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.1021 First stage cost avg= 114054.4509 Max-Min= 4236.65
-Cumulative run-time=0.82 seconds
-Halting PH - reached maximal iteration count=10
-Number of discrete variables fixed before final plugin calls=0 (total=0)
-Number of continuous variables fixed before final plugin calls=0 (total=3)
-PH algorithm history written to file=ph_history.json
-PH complete
-Convergence history:
-Iteration Metric Value
- 0 0.2540
- 1 0.2540
- 2 0.2540
- 3 0.1991
- 4 0.1166
- 5 0.1032
- 6 0.1094
- 7 0.1055
- 8 0.1022
- 9 0.1020
- 10 0.1021
-
-***********************************************************************************************
->>>THE EXPECTED SUM OF THE STAGE COST VARIABLES=-111591.252155<<<
->>>***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise<<<
-***********************************************************************************************
-Final number of discrete variables fixed=0 (total=0)
-Final number of continuous variables fixed=0 (total=3)
-Final variable values:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 100.0000 80.0000 115.7919 Max-Min: 35.7919 Avg: 98.5973
- Index: [SUGAR_BEETS] Values: 300.0000 300.0000 250.0000 Max-Min: 50.0000 Avg: 283.3333
- Index: [WHEAT] Values: 100.0000 120.0000 134.2081 Max-Min: 34.2081 Avg: 118.0694
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 116000.0000 114400.0000 111763.3526 Max-Min: 4236.6473 Avg: 114054.4509
-Final costs:
-Scenario Tree Costs
-***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise
-----------------------------------------------------
-Tree Nodes:
-
- Name=AboveAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AboveAverageScenario
- Expected cost of (sub)tree rooted at node=-276973.7569
-
- Name=AverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AverageScenario
- Expected cost of (sub)tree rooted at node=-232999.9995
-
- Name=BelowAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-172799.9999
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- AboveAverageNode
- AverageNode
- BelowAverageNode
- Scenarios:
- AboveAverageScenario
- AverageScenario
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-111591.2522
-
-----------------------------------------------------
-Scenarios:
-
- Name=AboveAverageScenario
- Probability=0.3333
- Leaf Node=AboveAverageNode
- Tree node sequence:
- RootNode
- AboveAverageNode
- Stage= FirstStage Cost=111763.3526
- Stage= SecondStage Cost=-276973.7569
- Total scenario cost=-165210.4042
-
- Name=AverageScenario
- Probability=0.3333
- Leaf Node=AverageNode
- Tree node sequence:
- RootNode
- AverageNode
- Stage= FirstStage Cost=114400.0000
- Stage= SecondStage Cost=-232999.9995
- Total scenario cost=-118599.9994
-
- Name=BelowAverageScenario
- Probability=0.3333
- Leaf Node=BelowAverageNode
- Tree node sequence:
- RootNode
- BelowAverageNode
- Stage= FirstStage Cost=116000.0000
- Stage= SecondStage Cost=-172799.9999
- Total scenario cost=-56799.9999
-
-----------------------------------------------------
-
-Total PH execution time=0.83 seconds
-
-Scenario tree solution written to file=ph_solution.json
-Shutting down Pyro solver components
-Dispatcher received request to shut down - initiating...
-
-Total execution time=4.35 seconds
-Name Server gracefully stopped.
-Lost connection to dispatch server - shutting down...
-Lost connection to dispatch server - shutting down...
-Lost connection to dispatch server - shutting down...
diff --git a/pyomo/pysp/tests/examples/baselines/TestPHFarmerTrivialBundlesPHPyro.test14_withef.baseline b/pyomo/pysp/tests/examples/baselines/TestPHFarmerTrivialBundlesPHPyro.test14_withef.baseline
deleted file mode 100644
index f7ce14fdd7c..00000000000
--- a/pyomo/pysp/tests/examples/baselines/TestPHFarmerTrivialBundlesPHPyro.test14_withef.baseline
+++ /dev/null
@@ -1,383 +0,0 @@
-*** Pyro Name Server ***
-Name server listening on: ('0.0.0.0', 9090)
-Broadcast server listening on: ('0.0.0.0', 9090)
-URI is: PYRO://10.0.0.253:9090/0a0000fddf5d20b9dcc44e6a897c2566a8
-URI written to: /Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/pyomo/pysp/tests/examples/Pyro_NS_URI
-Name Server started.
-User-defined PH extension module=pyomo.pysp.plugins.phhistoryextension already imported - skipping
-Trying to import module=/Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/examples/pysp/farmer/config/aggregategetter.py
-Module successfully loaded
-Trying to import module=/Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/examples/pysp/farmer/config/rhosetter.py
-Module successfully loaded
-Trying to import module=/Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/examples/pysp/farmer/config/boundsetter.py
-Module successfully loaded
-Dispatcher is ready.
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI:PYRO://10.0.0.253:7766/0a0000fddf5e20b9dcc56c0b796a860bf0
-This is worker Worker_57183@Ozymandias.local
-Listening for work from dispatcher...
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI:PYRO://10.0.0.253:7766/0a0000fddf5e20b9dcc56c0b796a860bf0
-This is worker Worker_57184@Ozymandias.local
-Listening for work from dispatcher...
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI: PYRO://10.0.0.253:7766/0a0000fddf5e20b9dcc56c0b796a860bf0
-This is client 57186@Ozymandias.local
-Initializing PH
-
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI:PYRO://10.0.0.253:7766/0a0000fddf5e20b9dcc56c0b796a860bf0
-This is worker Worker_57185@Ozymandias.local
-Listening for work from dispatcher...
-Transmitting user aggregate callback invocations to phsolverservers
-Broadcasting final aggregate data to phsolverservers
-Transmitting user rho callback invocations to phsolverservers
-Transmitting user bound callback invocations to phsolverservers
-User-defined PH solution writer module=pyomo.pysp.plugins.jsonsolutionwriter already imported - skipping
-Starting PH
-
-Initiating PH iteration=0
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.2540 First stage cost avg= 113494.4444 Max-Min=10416.67
-Cumulative run-time=0.03 seconds
-
-Initiating PH iteration=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.2540 First stage cost avg= 113494.4444 Max-Min=10416.67
-Cumulative run-time=0.15 seconds
-
-Initiating PH iteration=2
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.2540 First stage cost avg= 113494.4445 Max-Min=10416.67
-Cumulative run-time=0.22 seconds
-
-Initiating PH iteration=3
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.1991 First stage cost avg= 113545.3418 Max-Min= 9341.08
-Cumulative run-time=0.30 seconds
-
-Initiating PH iteration=4
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.1166 First stage cost avg= 113837.6523 Max-Min= 6301.86
-Cumulative run-time=0.38 seconds
-
-Initiating PH iteration=5
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.1032 First stage cost avg= 114197.8075 Max-Min= 3806.58
-Cumulative run-time=0.45 seconds
-
-Initiating PH iteration=6
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.1094 First stage cost avg= 114422.4887 Max-Min= 3132.53
-Cumulative run-time=0.53 seconds
-
-Initiating PH iteration=7
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.1055 First stage cost avg= 114278.3496 Max-Min= 3564.95
-Cumulative run-time=0.60 seconds
-
-Initiating PH iteration=8
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.1022 First stage cost avg= 114107.3631 Max-Min= 4077.91
-Cumulative run-time=0.68 seconds
-
-Initiating PH iteration=9
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.1020 First stage cost avg= 114041.4185 Max-Min= 4275.74
-Cumulative run-time=0.76 seconds
-
-Initiating PH iteration=10
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.1021 First stage cost avg= 114054.4509 Max-Min= 4236.65
-Cumulative run-time=0.84 seconds
-Halting PH - reached maximal iteration count=10
-Number of discrete variables fixed before final plugin calls=0 (total=0)
-Number of continuous variables fixed before final plugin calls=0 (total=3)
-PH algorithm history written to file=ph_history.json
-PH complete
-Convergence history:
-Iteration Metric Value
- 0 0.2540
- 1 0.2540
- 2 0.2540
- 3 0.1991
- 4 0.1166
- 5 0.1032
- 6 0.1094
- 7 0.1055
- 8 0.1022
- 9 0.1020
- 10 0.1021
-
-***********************************************************************************************
->>>THE EXPECTED SUM OF THE STAGE COST VARIABLES=-111591.252155<<<
->>>***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise<<<
-***********************************************************************************************
-Final number of discrete variables fixed=0 (total=0)
-Final number of continuous variables fixed=0 (total=3)
-Final variable values:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 100.0000 80.0000 115.7919 Max-Min: 35.7919 Avg: 98.5973
- Index: [SUGAR_BEETS] Values: 300.0000 300.0000 250.0000 Max-Min: 50.0000 Avg: 283.3333
- Index: [WHEAT] Values: 100.0000 120.0000 134.2081 Max-Min: 34.2081 Avg: 118.0694
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 116000.0000 114400.0000 111763.3526 Max-Min: 4236.6473 Avg: 114054.4509
-Final costs:
-Scenario Tree Costs
-***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise
-----------------------------------------------------
-Tree Nodes:
-
- Name=AboveAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AboveAverageScenario
- Expected cost of (sub)tree rooted at node=-276973.7569
-
- Name=AverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AverageScenario
- Expected cost of (sub)tree rooted at node=-232999.9995
-
- Name=BelowAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-172799.9999
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- AboveAverageNode
- AverageNode
- BelowAverageNode
- Scenarios:
- AboveAverageScenario
- AverageScenario
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-111591.2522
-
-----------------------------------------------------
-Scenarios:
-
- Name=AboveAverageScenario
- Probability=0.3333
- Leaf Node=AboveAverageNode
- Tree node sequence:
- RootNode
- AboveAverageNode
- Stage= FirstStage Cost=111763.3526
- Stage= SecondStage Cost=-276973.7569
- Total scenario cost=-165210.4042
-
- Name=AverageScenario
- Probability=0.3333
- Leaf Node=AverageNode
- Tree node sequence:
- RootNode
- AverageNode
- Stage= FirstStage Cost=114400.0000
- Stage= SecondStage Cost=-232999.9995
- Total scenario cost=-118599.9994
-
- Name=BelowAverageScenario
- Probability=0.3333
- Leaf Node=BelowAverageNode
- Tree node sequence:
- RootNode
- BelowAverageNode
- Stage= FirstStage Cost=116000.0000
- Stage= SecondStage Cost=-172799.9999
- Total scenario cost=-56799.9999
-
-----------------------------------------------------
-
-Total PH execution time=0.86 seconds
-
-Scenario tree solution written to file=ph_solution.json
-Constructing scenario instances for extensive form solve
-Executing user bound setter callback function
-Pushing fixed variable statuses to scenario instances
-Number of discrete variables fixed prior to ef creation=0 (total=0)
-Number of continuous variables fixed prior to ef creation=0 (total=3)
-Creating extensive form for remainder problem
-Time to construct extensive form instance=0.00 seconds
-Queuing extensive form solve
-Waiting for extensive form solve
-Done with extensive form solve - loading results
-Storing solution in scenario tree
-Time to solve and load results for the extensive form=0.02 seconds
-
-***********************************************************************************************
->>>THE EXPECTED SUM OF THE STAGE COST VARIABLES=-108390.00001<<<
-***********************************************************************************************
-
-Extensive form solution:
-----------------------------------------------------
-Tree Nodes:
-
- Name=AboveAverageNode
- Stage=SecondStage
- Parent=RootNode
- Variables:
- QuantitySubQuotaSold[CORN]=48.0
- QuantitySubQuotaSold[SUGAR_BEETS]=6000.0
- QuantitySubQuotaSold[WHEAT]=310.0
-
- Name=AverageNode
- Stage=SecondStage
- Parent=RootNode
- Variables:
- QuantitySubQuotaSold[SUGAR_BEETS]=5000.0
- QuantitySubQuotaSold[WHEAT]=225.0
-
- Name=BelowAverageNode
- Stage=SecondStage
- Parent=RootNode
- Variables:
- QuantityPurchased[CORN]=48.0
- QuantitySubQuotaSold[SUGAR_BEETS]=4000.0
- QuantitySubQuotaSold[WHEAT]=140.0
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Variables:
- DevotedAcreage[CORN]=80.0
- DevotedAcreage[SUGAR_BEETS]=250.0
- DevotedAcreage[WHEAT]=170.0
-
-
-Extensive form costs:
-Scenario Tree Costs
-***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise
-----------------------------------------------------
-Tree Nodes:
-
- Name=AboveAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AboveAverageScenario
- Expected cost of (sub)tree rooted at node=-275900.0000
-
- Name=AverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AverageScenario
- Expected cost of (sub)tree rooted at node=-218250.0000
-
- Name=BelowAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-157720.0000
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- AboveAverageNode
- AverageNode
- BelowAverageNode
- Scenarios:
- AboveAverageScenario
- AverageScenario
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-108390.0000
-
-----------------------------------------------------
-Scenarios:
-
- Name=AboveAverageScenario
- Probability=0.3333
- Leaf Node=AboveAverageNode
- Tree node sequence:
- RootNode
- AboveAverageNode
- Stage= FirstStage Cost=108900.0000
- Stage= SecondStage Cost=-275900.0000
- Total scenario cost=-167000.0000
-
- Name=AverageScenario
- Probability=0.3333
- Leaf Node=AverageNode
- Tree node sequence:
- RootNode
- AverageNode
- Stage= FirstStage Cost=108900.0000
- Stage= SecondStage Cost=-218250.0000
- Total scenario cost=-109350.0000
-
- Name=BelowAverageScenario
- Probability=0.3333
- Leaf Node=BelowAverageNode
- Tree node sequence:
- RootNode
- BelowAverageNode
- Stage= FirstStage Cost=108900.0000
- Stage= SecondStage Cost=-157720.0000
- Total scenario cost=-48820.0000
-
-----------------------------------------------------
-Scenario tree solution written to file=postphef_solution.json
-Shutting down Pyro solver components
-Dispatcher received request to shut down - initiating...
-
-Total execution time=4.53 seconds
-Name Server gracefully stopped.
-Lost connection to dispatch server - shutting down...
-Lost connection to dispatch server - shutting down...
-Lost connection to dispatch server - shutting down...
diff --git a/pyomo/pysp/tests/examples/baselines/TestPHFarmerTrivialBundlesPHPyro.test1_withef.baseline b/pyomo/pysp/tests/examples/baselines/TestPHFarmerTrivialBundlesPHPyro.test1_withef.baseline
deleted file mode 100644
index 6fd63ac15bc..00000000000
--- a/pyomo/pysp/tests/examples/baselines/TestPHFarmerTrivialBundlesPHPyro.test1_withef.baseline
+++ /dev/null
@@ -1,556 +0,0 @@
-*** Pyro Name Server ***
-Name server listening on: ('0.0.0.0', 9090)
-Broadcast server listening on: ('0.0.0.0', 9090)
-URI is: PYRO://10.0.0.253:9090/0a0000fd9d4b20b9d399929ab98ba2a331
-URI written to: /Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/pyomo/pysp/tests/examples/Pyro_NS_URI
-Name Server started.
-User-defined PH extension module=pyomo.pysp.plugins.phhistoryextension already imported - skipping
-Dispatcher is ready.
-Attempting to find Pyro dispatcher object...
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI:PYRO://10.0.0.253:7766/0a0000fd9d4c20b9d39ab1f87f494e547f
-This is worker Worker_40271@Ozymandias.local
-Listening for work from dispatcher...
-Dispatcher Object URI:PYRO://10.0.0.253:7766/0a0000fd9d4c20b9d39ab1f87f494e547f
-Attempting to find Pyro dispatcher object...
-This is worker Worker_40269@Ozymandias.local
-Listening for work from dispatcher...
-Dispatcher Object URI:PYRO://10.0.0.253:7766/0a0000fd9d4c20b9d39ab1f87f494e547f
-This is worker Worker_40270@Ozymandias.local
-Listening for work from dispatcher...
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI: PYRO://10.0.0.253:7766/0a0000fd9d4c20b9d39ab1f87f494e547f
-This is client 40272@Ozymandias.local
-Initializing PH
-
-User-defined PH solution writer module=pyomo.pysp.plugins.jsonsolutionwriter already imported - skipping
-Starting PH
-
-Initiating PH iteration=0
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.2540 First stage cost avg= 113494.4444 Max-Min=10416.67
-Cumulative run-time=0.05 seconds
-
-Initiating PH iteration=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.1259 First stage cost avg= 113107.2221 Max-Min= 6943.89
-Cumulative run-time=0.15 seconds
-
-Initiating PH iteration=2
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0816 First stage cost avg= 112954.6296 Max-Min= 2234.82
-Cumulative run-time=0.22 seconds
-
-Initiating PH iteration=3
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0796 First stage cost avg= 112963.0248 Max-Min= 2375.31
-Cumulative run-time=0.29 seconds
-
-Initiating PH iteration=4
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0776 First stage cost avg= 112915.6071 Max-Min= 3047.08
-Cumulative run-time=0.37 seconds
-
-Initiating PH iteration=5
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0794 First stage cost avg= 112825.3926 Max-Min= 3339.81
-Cumulative run-time=0.45 seconds
-
-Initiating PH iteration=6
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0668 First stage cost avg= 112317.9502 Max-Min= 2019.60
-Cumulative run-time=0.52 seconds
-
-Initiating PH iteration=7
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0542 First stage cost avg= 111364.4660 Max-Min= 1181.85
-Cumulative run-time=0.60 seconds
-
-Initiating PH iteration=8
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0360 First stage cost avg= 110283.4074 Max-Min= 463.23
-Cumulative run-time=0.66 seconds
-
-Initiating PH iteration=9
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0243 First stage cost avg= 109399.2542 Max-Min= 363.90
-Cumulative run-time=0.74 seconds
-
-Initiating PH iteration=10
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0256 First stage cost avg= 108834.1930 Max-Min= 933.90
-Cumulative run-time=0.80 seconds
-
-Initiating PH iteration=11
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0248 First stage cost avg= 108575.3219 Max-Min= 918.57
-Cumulative run-time=0.87 seconds
-
-Initiating PH iteration=12
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0163 First stage cost avg= 108513.5347 Max-Min= 591.25
-Cumulative run-time=0.95 seconds
-
-Initiating PH iteration=13
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0081 First stage cost avg= 108528.2899 Max-Min= 175.95
-Cumulative run-time=1.01 seconds
-
-Initiating PH iteration=14
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0168 First stage cost avg= 108561.6577 Max-Min= 274.77
-Cumulative run-time=1.09 seconds
-
-Initiating PH iteration=15
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0163 First stage cost avg= 108604.0579 Max-Min= 295.14
-Cumulative run-time=1.16 seconds
-
-Initiating PH iteration=16
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0098 First stage cost avg= 108667.3583 Max-Min= 127.67
-Cumulative run-time=1.24 seconds
-
-Initiating PH iteration=17
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0032 First stage cost avg= 108758.4237 Max-Min= 59.69
-Cumulative run-time=1.32 seconds
-
-Initiating PH iteration=18
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0026 First stage cost avg= 108868.1277 Max-Min= 101.79
-Cumulative run-time=1.39 seconds
-
-Initiating PH iteration=19
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0039 First stage cost avg= 108975.3089 Max-Min= 73.41
-Cumulative run-time=1.47 seconds
-
-Initiating PH iteration=20
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0043 First stage cost avg= 109057.4144 Max-Min= 39.47
-Cumulative run-time=1.55 seconds
-
-Initiating PH iteration=21
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0044 First stage cost avg= 109099.7145 Max-Min= 87.57
-Cumulative run-time=1.62 seconds
-
-Initiating PH iteration=22
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0040 First stage cost avg= 109099.1239 Max-Min= 104.22
-Cumulative run-time=1.70 seconds
-
-Initiating PH iteration=23
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0032 First stage cost avg= 109062.8322 Max-Min= 88.54
-Cumulative run-time=1.77 seconds
-
-Initiating PH iteration=24
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0021 First stage cost avg= 109004.1156 Max-Min= 54.49
-Cumulative run-time=1.86 seconds
-
-Initiating PH iteration=25
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0008 First stage cost avg= 108937.8039 Max-Min= 16.89
-Cumulative run-time=1.94 seconds
-
-Initiating PH iteration=26
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0005 First stage cost avg= 108876.8822 Max-Min= 14.27
-Cumulative run-time=2.01 seconds
-
-Initiating PH iteration=27
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0015 First stage cost avg= 108830.6201 Max-Min= 34.81
-Cumulative run-time=2.09 seconds
-
-Initiating PH iteration=28
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0021 First stage cost avg= 108803.9655 Max-Min= 44.57
-Cumulative run-time=2.16 seconds
-
-Initiating PH iteration=29
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0023 First stage cost avg= 108797.7661 Max-Min= 45.24
-Cumulative run-time=2.24 seconds
-
-Initiating PH iteration=30
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0020 First stage cost avg= 108809.4793 Max-Min= 39.01
-Cumulative run-time=2.32 seconds
-
-Initiating PH iteration=31
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0015 First stage cost avg= 108834.1639 Max-Min= 28.07
-Cumulative run-time=2.40 seconds
-
-Initiating PH iteration=32
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0008 First stage cost avg= 108865.6237 Max-Min= 14.67
-Cumulative run-time=2.47 seconds
-
-Initiating PH iteration=33
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0001 First stage cost avg= 108897.5679 Max-Min= 1.06
-Cumulative run-time=2.55 seconds
-PH converged - convergence metric is below threshold=0.0001
-Number of discrete variables fixed before final plugin calls=0 (total=0)
-Number of continuous variables fixed before final plugin calls=0 (total=3)
-PH algorithm history written to file=ph_history.json
-PH complete
-Convergence history:
-Iteration Metric Value
- 0 0.2540
- 1 0.1259
- 2 0.0816
- 3 0.0796
- 4 0.0776
- 5 0.0794
- 6 0.0668
- 7 0.0542
- 8 0.0360
- 9 0.0243
- 10 0.0256
- 11 0.0248
- 12 0.0163
- 13 0.0081
- 14 0.0168
- 15 0.0163
- 16 0.0098
- 17 0.0032
- 18 0.0026
- 19 0.0039
- 20 0.0043
- 21 0.0044
- 22 0.0040
- 23 0.0032
- 24 0.0021
- 25 0.0008
- 26 0.0005
- 27 0.0015
- 28 0.0021
- 29 0.0023
- 30 0.0020
- 31 0.0015
- 32 0.0008
- 33 0.0001
-
-***********************************************************************************************
->>>THE EXPECTED SUM OF THE STAGE COST VARIABLES=-108388.378639<<<
->>>***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise<<<
-***********************************************************************************************
-Final number of discrete variables fixed=0 (total=0)
-Final number of continuous variables fixed=0 (total=3)
-Final variable values:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 79.9844 80.0000 79.9768 Max-Min: 0.0232 Avg: 79.9871
- Index: [SUGAR_BEETS] Values: 249.9848 249.9770 250.0000 Max-Min: 0.0230 Avg: 249.9873
- Index: [WHEAT] Values: 170.0308 170.0230 170.0232 Max-Min: 0.0078 Avg: 170.0256
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108897.0836 108897.4725 108898.1476 Max-Min: 1.0640 Avg: 108897.5679
-Final costs:
-Scenario Tree Costs
-***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise
-----------------------------------------------------
-Tree Nodes:
-
- Name=AboveAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AboveAverageScenario
- Expected cost of (sub)tree rooted at node=-275899.3041
-
- Name=AverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AverageScenario
- Expected cost of (sub)tree rooted at node=-218243.2209
-
- Name=BelowAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-157713.8615
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- AboveAverageNode
- AverageNode
- BelowAverageNode
- Scenarios:
- AboveAverageScenario
- AverageScenario
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-108388.3786
-
-----------------------------------------------------
-Scenarios:
-
- Name=AboveAverageScenario
- Probability=0.3333
- Leaf Node=AboveAverageNode
- Tree node sequence:
- RootNode
- AboveAverageNode
- Stage= FirstStage Cost=108898.1476
- Stage= SecondStage Cost=-275899.3041
- Total scenario cost=-167001.1565
-
- Name=AverageScenario
- Probability=0.3333
- Leaf Node=AverageNode
- Tree node sequence:
- RootNode
- AverageNode
- Stage= FirstStage Cost=108897.4725
- Stage= SecondStage Cost=-218243.2209
- Total scenario cost=-109345.7484
-
- Name=BelowAverageScenario
- Probability=0.3333
- Leaf Node=BelowAverageNode
- Tree node sequence:
- RootNode
- BelowAverageNode
- Stage= FirstStage Cost=108897.0836
- Stage= SecondStage Cost=-157713.8615
- Total scenario cost=-48816.7780
-
-----------------------------------------------------
-
-Total PH execution time=2.57 seconds
-
-Scenario tree solution written to file=ph_solution.json
-Constructing scenario instances for extensive form solve
-Pushing fixed variable statuses to scenario instances
-Number of discrete variables fixed prior to ef creation=0 (total=0)
-Number of continuous variables fixed prior to ef creation=0 (total=3)
-Creating extensive form for remainder problem
-Time to construct extensive form instance=0.00 seconds
-Queuing extensive form solve
-Waiting for extensive form solve
-Done with extensive form solve - loading results
-Storing solution in scenario tree
-Time to solve and load results for the extensive form=0.02 seconds
-
-***********************************************************************************************
->>>THE EXPECTED SUM OF THE STAGE COST VARIABLES=-108390.00001<<<
-***********************************************************************************************
-
-Extensive form solution:
-----------------------------------------------------
-Tree Nodes:
-
- Name=AboveAverageNode
- Stage=SecondStage
- Parent=RootNode
- Variables:
- QuantitySubQuotaSold[CORN]=48.0
- QuantitySubQuotaSold[SUGAR_BEETS]=6000.0
- QuantitySubQuotaSold[WHEAT]=310.0
-
- Name=AverageNode
- Stage=SecondStage
- Parent=RootNode
- Variables:
- QuantitySubQuotaSold[SUGAR_BEETS]=5000.0
- QuantitySubQuotaSold[WHEAT]=225.0
-
- Name=BelowAverageNode
- Stage=SecondStage
- Parent=RootNode
- Variables:
- QuantityPurchased[CORN]=48.0
- QuantitySubQuotaSold[SUGAR_BEETS]=4000.0
- QuantitySubQuotaSold[WHEAT]=140.0
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Variables:
- DevotedAcreage[CORN]=80.0
- DevotedAcreage[SUGAR_BEETS]=250.0
- DevotedAcreage[WHEAT]=170.0
-
-
-Extensive form costs:
-Scenario Tree Costs
-***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise
-----------------------------------------------------
-Tree Nodes:
-
- Name=AboveAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AboveAverageScenario
- Expected cost of (sub)tree rooted at node=-275900.0000
-
- Name=AverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AverageScenario
- Expected cost of (sub)tree rooted at node=-218250.0000
-
- Name=BelowAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-157720.0000
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- AboveAverageNode
- AverageNode
- BelowAverageNode
- Scenarios:
- AboveAverageScenario
- AverageScenario
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-108390.0000
-
-----------------------------------------------------
-Scenarios:
-
- Name=AboveAverageScenario
- Probability=0.3333
- Leaf Node=AboveAverageNode
- Tree node sequence:
- RootNode
- AboveAverageNode
- Stage= FirstStage Cost=108900.0000
- Stage= SecondStage Cost=-275900.0000
- Total scenario cost=-167000.0000
-
- Name=AverageScenario
- Probability=0.3333
- Leaf Node=AverageNode
- Tree node sequence:
- RootNode
- AverageNode
- Stage= FirstStage Cost=108900.0000
- Stage= SecondStage Cost=-218250.0000
- Total scenario cost=-109350.0000
-
- Name=BelowAverageScenario
- Probability=0.3333
- Leaf Node=BelowAverageNode
- Tree node sequence:
- RootNode
- BelowAverageNode
- Stage= FirstStage Cost=108900.0000
- Stage= SecondStage Cost=-157720.0000
- Total scenario cost=-48820.0000
-
-----------------------------------------------------
-Scenario tree solution written to file=postphef_solution.json
-Shutting down Pyro solver components
-Dispatcher received request to shut down - initiating...
-
-Total execution time=5.92 seconds
-Name Server gracefully stopped.
-Lost connection to dispatch server - shutting down...
-Lost connection to dispatch server - shutting down...
-Lost connection to dispatch server - shutting down...
diff --git a/pyomo/pysp/tests/examples/baselines/TestPHFarmerTrivialBundlesPHPyro.test2.baseline b/pyomo/pysp/tests/examples/baselines/TestPHFarmerTrivialBundlesPHPyro.test2.baseline
deleted file mode 100644
index b7d6511bb77..00000000000
--- a/pyomo/pysp/tests/examples/baselines/TestPHFarmerTrivialBundlesPHPyro.test2.baseline
+++ /dev/null
@@ -1,490 +0,0 @@
-*** Pyro Name Server ***
-Name server listening on: ('0.0.0.0', 9090)
-Broadcast server listening on: ('0.0.0.0', 9090)
-URI is: PYRO://10.0.0.15:9090/0a00000f2bc420a08cc051df2780e6fd15
-URI written to: /Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/pyomo/pysp/tests/examples/Pyro_NS_URI
-Name Server started.
-User-defined PH extension module=pyomo.pysp.plugins.phhistoryextension already imported - skipping
-Dispatcher is ready.
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI:PYRO://10.0.0.15:7766/0a00000f2bc520a08cc17127bfad70cd7b
-This is worker Worker_11206@Ozymandias.local
-Listening for work from dispatcher...
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI: PYRO://10.0.0.15:7766/0a00000f2bc520a08cc17127bfad70cd7b
-This is client 11209@Ozymandias.local
-Attempting to find Pyro dispatcher object...
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI:PYRO://10.0.0.15:7766/0a00000f2bc520a08cc17127bfad70cd7b
-This is worker Worker_11207@Ozymandias.local
-Initializing PH
-
-Listening for work from dispatcher...
-Dispatcher Object URI:PYRO://10.0.0.15:7766/0a00000f2bc520a08cc17127bfad70cd7b
-This is worker Worker_11208@Ozymandias.local
-Listening for work from dispatcher...
-User-defined PH solution writer module=pyomo.pysp.plugins.jsonsolutionwriter already imported - skipping
-Starting PH
-
-Initiating PH iteration=0
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 98.5185 First stage cost avg= 113494.4444 Max-Min=10416.67
-Cumulative run-time=0.04 seconds
-
-Initiating PH iteration=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 56.7654 First stage cost avg= 113107.2221 Max-Min= 6943.89
-Cumulative run-time=0.15 seconds
-
-Initiating PH iteration=2
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 37.3580 First stage cost avg= 112954.6296 Max-Min= 2234.82
-Cumulative run-time=0.22 seconds
-
-Initiating PH iteration=3
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 36.5075 First stage cost avg= 112963.0248 Max-Min= 2375.31
-Cumulative run-time=0.30 seconds
-
-Initiating PH iteration=4
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 35.4086 First stage cost avg= 112915.6071 Max-Min= 3047.08
-Cumulative run-time=0.37 seconds
-
-Initiating PH iteration=5
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 36.2217 First stage cost avg= 112825.3926 Max-Min= 3339.81
-Cumulative run-time=0.45 seconds
-
-Initiating PH iteration=6
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 29.3303 First stage cost avg= 112317.9502 Max-Min= 2019.60
-Cumulative run-time=0.52 seconds
-
-Initiating PH iteration=7
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 21.9702 First stage cost avg= 111364.4660 Max-Min= 1181.85
-Cumulative run-time=0.60 seconds
-
-Initiating PH iteration=8
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 13.8077 First stage cost avg= 110283.4074 Max-Min= 463.23
-Cumulative run-time=0.67 seconds
-
-Initiating PH iteration=9
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 9.5141 First stage cost avg= 109399.2542 Max-Min= 363.90
-Cumulative run-time=0.75 seconds
-
-Initiating PH iteration=10
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 12.0668 First stage cost avg= 108834.1930 Max-Min= 933.90
-Cumulative run-time=0.83 seconds
-
-Initiating PH iteration=11
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 11.6644 First stage cost avg= 108575.3219 Max-Min= 918.57
-Cumulative run-time=0.90 seconds
-
-Initiating PH iteration=12
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 7.5080 First stage cost avg= 108513.5347 Max-Min= 591.25
-Cumulative run-time=0.98 seconds
-
-Initiating PH iteration=13
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 3.1070 First stage cost avg= 108528.2899 Max-Min= 175.95
-Cumulative run-time=1.05 seconds
-
-Initiating PH iteration=14
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 5.5300 First stage cost avg= 108561.6577 Max-Min= 274.77
-Cumulative run-time=1.13 seconds
-
-Initiating PH iteration=15
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 5.4381 First stage cost avg= 108604.0579 Max-Min= 295.14
-Cumulative run-time=1.21 seconds
-
-Initiating PH iteration=16
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 3.2812 First stage cost avg= 108667.3583 Max-Min= 127.67
-Cumulative run-time=1.28 seconds
-
-Initiating PH iteration=17
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 1.1980 First stage cost avg= 108758.4237 Max-Min= 59.69
-Cumulative run-time=1.36 seconds
-
-Initiating PH iteration=18
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 1.0800 First stage cost avg= 108868.1277 Max-Min= 101.79
-Cumulative run-time=1.43 seconds
-
-Initiating PH iteration=19
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 1.3642 First stage cost avg= 108975.3089 Max-Min= 73.41
-Cumulative run-time=1.51 seconds
-
-Initiating PH iteration=20
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 1.5168 First stage cost avg= 109057.4144 Max-Min= 39.47
-Cumulative run-time=1.59 seconds
-
-Initiating PH iteration=21
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 1.6833 First stage cost avg= 109099.7145 Max-Min= 87.57
-Cumulative run-time=1.66 seconds
-
-Initiating PH iteration=22
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 1.6446 First stage cost avg= 109099.1239 Max-Min= 104.22
-Cumulative run-time=1.74 seconds
-
-Initiating PH iteration=23
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 1.3382 First stage cost avg= 109062.8322 Max-Min= 88.54
-Cumulative run-time=1.84 seconds
-
-Initiating PH iteration=24
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.8599 First stage cost avg= 109004.1156 Max-Min= 54.49
-Cumulative run-time=1.91 seconds
-
-Initiating PH iteration=25
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.3180 First stage cost avg= 108937.8039 Max-Min= 16.89
-Cumulative run-time=1.99 seconds
-
-Initiating PH iteration=26
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.1981 First stage cost avg= 108876.8822 Max-Min= 14.27
-Cumulative run-time=2.07 seconds
-
-Initiating PH iteration=27
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.5760 First stage cost avg= 108830.6201 Max-Min= 34.81
-Cumulative run-time=2.14 seconds
-
-Initiating PH iteration=28
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.8045 First stage cost avg= 108803.9655 Max-Min= 44.57
-Cumulative run-time=2.22 seconds
-
-Initiating PH iteration=29
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.8608 First stage cost avg= 108797.7661 Max-Min= 45.24
-Cumulative run-time=2.29 seconds
-
-Initiating PH iteration=30
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.7643 First stage cost avg= 108809.4793 Max-Min= 39.01
-Cumulative run-time=2.36 seconds
-
-Initiating PH iteration=31
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.5565 First stage cost avg= 108834.1639 Max-Min= 28.07
-Cumulative run-time=2.44 seconds
-
-Initiating PH iteration=32
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.2905 First stage cost avg= 108865.6237 Max-Min= 14.67
-Cumulative run-time=2.51 seconds
-
-Initiating PH iteration=33
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0205 First stage cost avg= 108897.5679 Max-Min= 1.06
-Cumulative run-time=2.59 seconds
-
-Initiating PH iteration=34
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.2079 First stage cost avg= 108924.6334 Max-Min= 10.64
-Cumulative run-time=2.66 seconds
-
-Initiating PH iteration=35
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.3637 First stage cost avg= 108943.1232 Max-Min= 18.81
-Cumulative run-time=2.73 seconds
-
-Initiating PH iteration=36
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.4328 First stage cost avg= 108951.3651 Max-Min= 22.58
-Cumulative run-time=2.81 seconds
-
-Initiating PH iteration=37
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.4183 First stage cost avg= 108949.6731 Max-Min= 21.96
-Cumulative run-time=2.88 seconds
-
-Initiating PH iteration=38
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.3365 First stage cost avg= 108939.9742 Max-Min= 17.74
-Cumulative run-time=2.96 seconds
-
-Initiating PH iteration=39
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.2122 First stage cost avg= 108925.2193 Max-Min= 11.21
-Cumulative run-time=3.03 seconds
-
-Initiating PH iteration=40
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0733 First stage cost avg= 108908.7151 Max-Min= 3.89
-Cumulative run-time=3.10 seconds
-
-Initiating PH iteration=41
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0547 First stage cost avg= 108893.5090 Max-Min= 2.87
-Cumulative run-time=3.18 seconds
-
-Initiating PH iteration=42
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.1522 First stage cost avg= 108881.9216 Max-Min= 8.01
-Cumulative run-time=3.25 seconds
-
-Initiating PH iteration=43
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.2081 First stage cost avg= 108875.2811 Max-Min= 10.94
-Cumulative run-time=3.33 seconds
-
-Initiating PH iteration=44
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.2200 First stage cost avg= 108873.8685 Max-Min= 11.56
-Cumulative run-time=3.40 seconds
-
-Initiating PH iteration=45
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.1933 First stage cost avg= 108877.0466 Max-Min= 10.15
-Cumulative run-time=3.48 seconds
-
-Initiating PH iteration=46
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.1388 First stage cost avg= 108883.5201 Max-Min= 7.28
-Cumulative run-time=3.55 seconds
-
-Initiating PH iteration=47
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0702 First stage cost avg= 108891.6607 Max-Min= 3.68
-Cumulative run-time=3.63 seconds
-
-Initiating PH iteration=48
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0014 First stage cost avg= 108899.8341 Max-Min= 0.07
-Cumulative run-time=3.70 seconds
-PH converged - convergence metric is below threshold=0.01
-Number of discrete variables fixed before final plugin calls=0 (total=0)
-Number of continuous variables fixed before final plugin calls=0 (total=3)
-PH algorithm history written to file=ph_history.json
-PH complete
-Convergence history:
-Iteration Metric Value
- 0 98.5185
- 1 56.7654
- 2 37.3580
- 3 36.5075
- 4 35.4086
- 5 36.2217
- 6 29.3303
- 7 21.9702
- 8 13.8077
- 9 9.5141
- 10 12.0668
- 11 11.6644
- 12 7.5080
- 13 3.1070
- 14 5.5300
- 15 5.4381
- 16 3.2812
- 17 1.1980
- 18 1.0800
- 19 1.3642
- 20 1.5168
- 21 1.6833
- 22 1.6446
- 23 1.3382
- 24 0.8599
- 25 0.3180
- 26 0.1981
- 27 0.5760
- 28 0.8045
- 29 0.8608
- 30 0.7643
- 31 0.5565
- 32 0.2905
- 33 0.0205
- 34 0.2079
- 35 0.3637
- 36 0.4328
- 37 0.4183
- 38 0.3365
- 39 0.2122
- 40 0.0733
- 41 0.0547
- 42 0.1522
- 43 0.2081
- 44 0.2200
- 45 0.1933
- 46 0.1388
- 47 0.0702
- 48 0.0014
-
-***********************************************************************************************
->>>THE EXPECTED SUM OF THE STAGE COST VARIABLES=-108389.889265<<<
->>>***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise<<<
-***********************************************************************************************
-Final number of discrete variables fixed=0 (total=0)
-Final number of continuous variables fixed=0 (total=3)
-Final variable values:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 79.9989 80.0000 79.9984 Max-Min: 0.0016 Avg: 79.9991
- Index: [SUGAR_BEETS] Values: 249.9990 249.9984 250.0000 Max-Min: 0.0016 Avg: 249.9991
- Index: [WHEAT] Values: 170.0021 170.0016 170.0016 Max-Min: 0.0005 Avg: 170.0018
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108899.8013 108899.8284 108899.8727 Max-Min: 0.0714 Avg: 108899.8341
-Final costs:
-Scenario Tree Costs
-***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise
-----------------------------------------------------
-Tree Nodes:
-
- Name=AboveAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AboveAverageScenario
- Expected cost of (sub)tree rooted at node=-275899.9510
-
- Name=AverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AverageScenario
- Expected cost of (sub)tree rooted at node=-218249.5388
-
- Name=BelowAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-157719.5818
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- AboveAverageNode
- AverageNode
- BelowAverageNode
- Scenarios:
- AboveAverageScenario
- AverageScenario
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-108389.8893
-
-----------------------------------------------------
-Scenarios:
-
- Name=AboveAverageScenario
- Probability=0.3333
- Leaf Node=AboveAverageNode
- Tree node sequence:
- RootNode
- AboveAverageNode
- Stage= FirstStage Cost=108899.8727
- Stage= SecondStage Cost=-275899.9510
- Total scenario cost=-167000.0783
-
- Name=AverageScenario
- Probability=0.3333
- Leaf Node=AverageNode
- Tree node sequence:
- RootNode
- AverageNode
- Stage= FirstStage Cost=108899.8284
- Stage= SecondStage Cost=-218249.5388
- Total scenario cost=-109349.7104
-
- Name=BelowAverageScenario
- Probability=0.3333
- Leaf Node=BelowAverageNode
- Tree node sequence:
- RootNode
- BelowAverageNode
- Stage= FirstStage Cost=108899.8013
- Stage= SecondStage Cost=-157719.5818
- Total scenario cost=-48819.7805
-
-----------------------------------------------------
-
-Total PH execution time=3.72 seconds
-
-Scenario tree solution written to file=ph_solution.json
-Shutting down Pyro solver components
-Dispatcher received request to shut down - initiating...
-
-Total execution time=7.05 seconds
-Name Server gracefully stopped.
-Lost connection to dispatch server - shutting down...
-Lost connection to dispatch server - shutting down...
-Lost connection to dispatch server - shutting down...
diff --git a/pyomo/pysp/tests/examples/baselines/TestPHFarmerTrivialBundlesPHPyro.test3.baseline b/pyomo/pysp/tests/examples/baselines/TestPHFarmerTrivialBundlesPHPyro.test3.baseline
deleted file mode 100644
index a6f62638b84..00000000000
--- a/pyomo/pysp/tests/examples/baselines/TestPHFarmerTrivialBundlesPHPyro.test3.baseline
+++ /dev/null
@@ -1,217 +0,0 @@
-*** Pyro Name Server ***
-Name server listening on: ('0.0.0.0', 9090)
-Broadcast server listening on: ('0.0.0.0', 9090)
-URI is: PYRO://10.0.0.15:9090/0a00000f2c7520a08cc4d9b4303ce28df0
-URI written to: /Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/pyomo/pysp/tests/examples/Pyro_NS_URI
-Name Server started.
-User-defined PH extension module=pyomo.pysp.plugins.phhistoryextension already imported - skipping
-Dispatcher is ready.
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI:PYRO://10.0.0.15:7766/0a00000f2c7620a08cc5f8dec0b3180205
-This is worker Worker_11384@Ozymandias.local
-Listening for work from dispatcher...
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI:PYRO://10.0.0.15:7766/0a00000f2c7620a08cc5f8dec0b3180205
-This is worker Worker_11385@Ozymandias.local
-Listening for work from dispatcher...
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI:PYRO://10.0.0.15:7766/0a00000f2c7620a08cc5f8dec0b3180205
-This is worker Worker_11383@Ozymandias.local
-Listening for work from dispatcher...
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI: PYRO://10.0.0.15:7766/0a00000f2c7620a08cc5f8dec0b3180205
-This is client 11386@Ozymandias.local
-Initializing PH
-
-User-defined PH solution writer module=pyomo.pysp.plugins.jsonsolutionwriter already imported - skipping
-Starting PH
-
-Initiating PH iteration=0
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.2540 First stage cost avg= 113494.4444 Max-Min=10416.67
-Cumulative run-time=0.05 seconds
-
-Initiating PH iteration=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.1307 First stage cost avg= 113073.3333 Max-Min= 7180.00
-Cumulative run-time=0.15 seconds
-
-Initiating PH iteration=2
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0872 First stage cost avg= 113259.7778 Max-Min= 1736.67
-Cumulative run-time=0.22 seconds
-
-Initiating PH iteration=3
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0793 First stage cost avg= 113339.1852 Max-Min= 1836.89
-Cumulative run-time=0.30 seconds
-
-Initiating PH iteration=4
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0820 First stage cost avg= 112746.3951 Max-Min= 3745.63
-Cumulative run-time=0.38 seconds
-
-Initiating PH iteration=5
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0828 First stage cost avg= 112327.9383 Max-Min= 4381.88
-Cumulative run-time=0.45 seconds
-
-Initiating PH iteration=6
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0561 First stage cost avg= 112125.1852 Max-Min= 1027.56
-Cumulative run-time=0.53 seconds
-
-Initiating PH iteration=7
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0625 First stage cost avg= 111694.0412 Max-Min= 2320.99
-Cumulative run-time=0.60 seconds
-
-Initiating PH iteration=8
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0342 First stage cost avg= 111355.5172 Max-Min= 1015.57
-Cumulative run-time=0.68 seconds
-
-Initiating PH iteration=9
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0000 First stage cost avg= 111355.5172 Max-Min= 0.00
-Cumulative run-time=0.75 seconds
-PH converged - convergence metric is below threshold=0.0001
-Number of discrete variables fixed before final plugin calls=0 (total=0)
-Number of continuous variables fixed before final plugin calls=0 (total=3)
-PH algorithm history written to file=ph_history.json
-PH complete
-Convergence history:
-Iteration Metric Value
- 0 0.2540
- 1 0.1307
- 2 0.0872
- 3 0.0793
- 4 0.0820
- 5 0.0828
- 6 0.0561
- 7 0.0625
- 8 0.0342
- 9 0.0000
-
-***********************************************************************************************
->>>THE EXPECTED SUM OF THE STAGE COST VARIABLES=-107958.896605<<<
->>>***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise<<<
-***********************************************************************************************
-Final number of discrete variables fixed=0 (total=0)
-Final number of continuous variables fixed=0 (total=3)
-Final variable values:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 88.4631 88.4631 88.4631 Max-Min: 0.0000 Avg: 88.4631
- Index: [SUGAR_BEETS] Values: 266.1679 266.1679 266.1679 Max-Min: 0.0000 Avg: 266.1679
- Index: [WHEAT] Values: 145.3690 145.3690 145.3690 Max-Min: 0.0000 Avg: 145.3690
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 111355.5172 111355.5172 111355.5172 Max-Min: 0.0000 Avg: 111355.5172
-Final costs:
-Scenario Tree Costs
-***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise
-----------------------------------------------------
-Tree Nodes:
-
- Name=AboveAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AboveAverageScenario
- Expected cost of (sub)tree rooted at node=-271788.5596
-
- Name=AverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AverageScenario
- Expected cost of (sub)tree rooted at node=-223231.1084
-
- Name=BelowAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-162923.5731
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- AboveAverageNode
- AverageNode
- BelowAverageNode
- Scenarios:
- AboveAverageScenario
- AverageScenario
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-107958.8966
-
-----------------------------------------------------
-Scenarios:
-
- Name=AboveAverageScenario
- Probability=0.3333
- Leaf Node=AboveAverageNode
- Tree node sequence:
- RootNode
- AboveAverageNode
- Stage= FirstStage Cost=111355.5172
- Stage= SecondStage Cost=-271788.5596
- Total scenario cost=-160433.0424
-
- Name=AverageScenario
- Probability=0.3333
- Leaf Node=AverageNode
- Tree node sequence:
- RootNode
- AverageNode
- Stage= FirstStage Cost=111355.5172
- Stage= SecondStage Cost=-223231.1084
- Total scenario cost=-111875.5913
-
- Name=BelowAverageScenario
- Probability=0.3333
- Leaf Node=BelowAverageNode
- Tree node sequence:
- RootNode
- BelowAverageNode
- Stage= FirstStage Cost=111355.5172
- Stage= SecondStage Cost=-162923.5731
- Total scenario cost=-51568.0560
-
-----------------------------------------------------
-
-Total PH execution time=0.77 seconds
-
-Scenario tree solution written to file=ph_solution.json
-Shutting down Pyro solver components
-Dispatcher received request to shut down - initiating...
-
-Total execution time=4.05 seconds
-Name Server gracefully stopped.
-Lost connection to dispatch server - shutting down...
-Lost connection to dispatch server - shutting down...
-Lost connection to dispatch server - shutting down...
diff --git a/pyomo/pysp/tests/examples/baselines/TestPHFarmerTrivialBundlesPHPyro.test4.baseline b/pyomo/pysp/tests/examples/baselines/TestPHFarmerTrivialBundlesPHPyro.test4.baseline
deleted file mode 100644
index 03288ced1dc..00000000000
--- a/pyomo/pysp/tests/examples/baselines/TestPHFarmerTrivialBundlesPHPyro.test4.baseline
+++ /dev/null
@@ -1,385 +0,0 @@
-*** Pyro Name Server ***
-Name server listening on: ('0.0.0.0', 9090)
-Broadcast server listening on: ('0.0.0.0', 9090)
-URI is: PYRO://10.0.0.15:9090/0a00000f2cb120a08cc82a32857bb4fc1b
-URI written to: /Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/pyomo/pysp/tests/examples/Pyro_NS_URI
-Name Server started.
-User-defined PH extension module=pyomo.pysp.plugins.phhistoryextension already imported - skipping
-Dispatcher is ready.
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI:PYRO://10.0.0.15:7766/0a00000f2cb220a08cc948184da60739bd
-This is worker Worker_11444@Ozymandias.local
-Listening for work from dispatcher...
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI: PYRO://10.0.0.15:7766/0a00000f2cb220a08cc948184da60739bd
-This is client 11446@Ozymandias.local
-Initializing PH
-
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI:PYRO://10.0.0.15:7766/0a00000f2cb220a08cc948184da60739bd
-This is worker Worker_11445@Ozymandias.local
-Listening for work from dispatcher...
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI:PYRO://10.0.0.15:7766/0a00000f2cb220a08cc948184da60739bd
-This is worker Worker_11443@Ozymandias.local
-Listening for work from dispatcher...
-User-defined PH solution writer module=pyomo.pysp.plugins.jsonsolutionwriter already imported - skipping
-Starting PH
-
-Initiating PH iteration=0
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.2540 First stage cost avg= 113494.4444 Max-Min=10416.67
-Cumulative run-time=0.03 seconds
-
-Initiating PH iteration=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.1259 First stage cost avg= 113107.2221 Max-Min= 6943.89
-Cumulative run-time=0.15 seconds
-
-Initiating PH iteration=2
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0816 First stage cost avg= 112954.6296 Max-Min= 2234.82
-Cumulative run-time=0.23 seconds
-
-Initiating PH iteration=3
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0796 First stage cost avg= 112963.0248 Max-Min= 2375.31
-Cumulative run-time=0.30 seconds
-
-Initiating PH iteration=4
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0776 First stage cost avg= 112915.6071 Max-Min= 3047.08
-Cumulative run-time=0.38 seconds
-
-Initiating PH iteration=5
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0794 First stage cost avg= 112825.3926 Max-Min= 3339.81
-Cumulative run-time=0.45 seconds
-
-Initiating PH iteration=6
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0668 First stage cost avg= 112317.9502 Max-Min= 2019.60
-Cumulative run-time=0.53 seconds
-
-Initiating PH iteration=7
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0542 First stage cost avg= 111364.4660 Max-Min= 1181.85
-Cumulative run-time=0.60 seconds
-
-Initiating PH iteration=8
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0360 First stage cost avg= 110283.4074 Max-Min= 463.23
-Cumulative run-time=0.68 seconds
-
-Initiating PH iteration=9
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0243 First stage cost avg= 109399.2542 Max-Min= 363.90
-Cumulative run-time=0.75 seconds
-
-Initiating PH iteration=10
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0256 First stage cost avg= 108834.1930 Max-Min= 933.90
-Cumulative run-time=0.83 seconds
-
-Initiating PH iteration=11
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0248 First stage cost avg= 108575.3219 Max-Min= 918.57
-Cumulative run-time=0.90 seconds
-
-Initiating PH iteration=12
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0163 First stage cost avg= 108513.5347 Max-Min= 591.25
-Cumulative run-time=0.98 seconds
-
-Initiating PH iteration=13
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0081 First stage cost avg= 108528.2899 Max-Min= 175.95
-Cumulative run-time=1.06 seconds
-
-Initiating PH iteration=14
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0168 First stage cost avg= 108561.6577 Max-Min= 274.77
-Cumulative run-time=1.13 seconds
-
-Initiating PH iteration=15
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0163 First stage cost avg= 108604.0579 Max-Min= 295.14
-Cumulative run-time=1.21 seconds
-
-Initiating PH iteration=16
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0098 First stage cost avg= 108667.3583 Max-Min= 127.67
-Cumulative run-time=1.28 seconds
-
-Initiating PH iteration=17
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0032 First stage cost avg= 108758.4237 Max-Min= 59.69
-Cumulative run-time=1.36 seconds
-
-Initiating PH iteration=18
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0026 First stage cost avg= 108868.1277 Max-Min= 101.79
-Cumulative run-time=1.43 seconds
-
-Initiating PH iteration=19
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0039 First stage cost avg= 108975.3089 Max-Min= 73.41
-Cumulative run-time=1.51 seconds
-
-Initiating PH iteration=20
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0043 First stage cost avg= 109057.4144 Max-Min= 39.47
-Cumulative run-time=1.58 seconds
-
-Initiating PH iteration=21
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0044 First stage cost avg= 109099.7145 Max-Min= 87.57
-Cumulative run-time=1.66 seconds
-
-Initiating PH iteration=22
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0040 First stage cost avg= 109099.1239 Max-Min= 104.22
-Cumulative run-time=1.74 seconds
-
-Initiating PH iteration=23
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0032 First stage cost avg= 109062.8322 Max-Min= 88.54
-Cumulative run-time=1.84 seconds
-
-Initiating PH iteration=24
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0021 First stage cost avg= 109004.1156 Max-Min= 54.49
-Cumulative run-time=1.92 seconds
-
-Initiating PH iteration=25
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0008 First stage cost avg= 108937.8039 Max-Min= 16.89
-Cumulative run-time=1.99 seconds
-
-Initiating PH iteration=26
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0005 First stage cost avg= 108876.8822 Max-Min= 14.27
-Cumulative run-time=2.07 seconds
-
-Initiating PH iteration=27
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0015 First stage cost avg= 108830.6201 Max-Min= 34.81
-Cumulative run-time=2.14 seconds
-
-Initiating PH iteration=28
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0021 First stage cost avg= 108803.9655 Max-Min= 44.57
-Cumulative run-time=2.21 seconds
-
-Initiating PH iteration=29
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0023 First stage cost avg= 108797.7661 Max-Min= 45.24
-Cumulative run-time=2.29 seconds
-
-Initiating PH iteration=30
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0020 First stage cost avg= 108809.4793 Max-Min= 39.01
-Cumulative run-time=2.36 seconds
-
-Initiating PH iteration=31
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0015 First stage cost avg= 108834.1639 Max-Min= 28.07
-Cumulative run-time=2.43 seconds
-
-Initiating PH iteration=32
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0008 First stage cost avg= 108865.6237 Max-Min= 14.67
-Cumulative run-time=2.51 seconds
-
-Initiating PH iteration=33
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0001 First stage cost avg= 108897.5679 Max-Min= 1.06
-Cumulative run-time=2.59 seconds
-PH converged - convergence metric is below threshold=0.0001
-Number of discrete variables fixed before final plugin calls=0 (total=0)
-Number of continuous variables fixed before final plugin calls=0 (total=3)
-PH algorithm history written to file=ph_history.json
-PH complete
-Convergence history:
-Iteration Metric Value
- 0 0.2540
- 1 0.1259
- 2 0.0816
- 3 0.0796
- 4 0.0776
- 5 0.0794
- 6 0.0668
- 7 0.0542
- 8 0.0360
- 9 0.0243
- 10 0.0256
- 11 0.0248
- 12 0.0163
- 13 0.0081
- 14 0.0168
- 15 0.0163
- 16 0.0098
- 17 0.0032
- 18 0.0026
- 19 0.0039
- 20 0.0043
- 21 0.0044
- 22 0.0040
- 23 0.0032
- 24 0.0021
- 25 0.0008
- 26 0.0005
- 27 0.0015
- 28 0.0021
- 29 0.0023
- 30 0.0020
- 31 0.0015
- 32 0.0008
- 33 0.0001
-
-***********************************************************************************************
->>>THE EXPECTED SUM OF THE STAGE COST VARIABLES=-108388.378639<<<
->>>***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise<<<
-***********************************************************************************************
-Final number of discrete variables fixed=0 (total=0)
-Final number of continuous variables fixed=0 (total=3)
-Final variable values:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 79.9844 80.0000 79.9768 Max-Min: 0.0232 Avg: 79.9871
- Index: [SUGAR_BEETS] Values: 249.9848 249.9770 250.0000 Max-Min: 0.0230 Avg: 249.9873
- Index: [WHEAT] Values: 170.0308 170.0230 170.0232 Max-Min: 0.0078 Avg: 170.0256
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108897.0836 108897.4725 108898.1476 Max-Min: 1.0640 Avg: 108897.5679
-Final costs:
-Scenario Tree Costs
-***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise
-----------------------------------------------------
-Tree Nodes:
-
- Name=AboveAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AboveAverageScenario
- Expected cost of (sub)tree rooted at node=-275899.3041
-
- Name=AverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AverageScenario
- Expected cost of (sub)tree rooted at node=-218243.2209
-
- Name=BelowAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-157713.8615
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- AboveAverageNode
- AverageNode
- BelowAverageNode
- Scenarios:
- AboveAverageScenario
- AverageScenario
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-108388.3786
-
-----------------------------------------------------
-Scenarios:
-
- Name=AboveAverageScenario
- Probability=0.3333
- Leaf Node=AboveAverageNode
- Tree node sequence:
- RootNode
- AboveAverageNode
- Stage= FirstStage Cost=108898.1476
- Stage= SecondStage Cost=-275899.3041
- Total scenario cost=-167001.1565
-
- Name=AverageScenario
- Probability=0.3333
- Leaf Node=AverageNode
- Tree node sequence:
- RootNode
- AverageNode
- Stage= FirstStage Cost=108897.4725
- Stage= SecondStage Cost=-218243.2209
- Total scenario cost=-109345.7484
-
- Name=BelowAverageScenario
- Probability=0.3333
- Leaf Node=BelowAverageNode
- Tree node sequence:
- RootNode
- BelowAverageNode
- Stage= FirstStage Cost=108897.0836
- Stage= SecondStage Cost=-157713.8615
- Total scenario cost=-48816.7780
-
-----------------------------------------------------
-
-Total PH execution time=2.61 seconds
-
-Scenario tree solution written to file=ph_solution.json
-Shutting down Pyro solver components
-Dispatcher received request to shut down - initiating...
-
-Total execution time=5.93 seconds
-Name Server gracefully stopped.
-Lost connection to dispatch server - shutting down...
-Lost connection to dispatch server - shutting down...
-Lost connection to dispatch server - shutting down...
diff --git a/pyomo/pysp/tests/examples/baselines/TestPHFarmerTrivialBundlesPHPyro.test5.baseline b/pyomo/pysp/tests/examples/baselines/TestPHFarmerTrivialBundlesPHPyro.test5.baseline
deleted file mode 100644
index f6ebad5ae02..00000000000
--- a/pyomo/pysp/tests/examples/baselines/TestPHFarmerTrivialBundlesPHPyro.test5.baseline
+++ /dev/null
@@ -1,385 +0,0 @@
-*** Pyro Name Server ***
-Name server listening on: ('0.0.0.0', 9090)
-Broadcast server listening on: ('0.0.0.0', 9090)
-URI is: PYRO://10.0.0.15:9090/0a00000f2d3520a08ccc2ecfeff3ea391a
-URI written to: /Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/pyomo/pysp/tests/examples/Pyro_NS_URI
-Name Server started.
-User-defined PH extension module=pyomo.pysp.plugins.phhistoryextension already imported - skipping
-Dispatcher is ready.
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI:PYRO://10.0.0.15:7766/0a00000f2d3620a08ccd49b47de9e6562a
-Attempting to find Pyro dispatcher object...
-This is worker Worker_11577@Ozymandias.local
-Attempting to find Pyro dispatcher object...
-Listening for work from dispatcher...
-Dispatcher Object URI:PYRO://10.0.0.15:7766/0a00000f2d3620a08ccd49b47de9e6562a
-This is worker Worker_11576@Ozymandias.local
-Listening for work from dispatcher...
-Dispatcher Object URI:PYRO://10.0.0.15:7766/0a00000f2d3620a08ccd49b47de9e6562a
-This is worker Worker_11575@Ozymandias.local
-Listening for work from dispatcher...
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI: PYRO://10.0.0.15:7766/0a00000f2d3620a08ccd49b47de9e6562a
-This is client 11578@Ozymandias.local
-Initializing PH
-
-User-defined PH solution writer module=pyomo.pysp.plugins.jsonsolutionwriter already imported - skipping
-Starting PH
-
-Initiating PH iteration=0
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.2540 First stage cost avg= 113494.4444 Max-Min=10416.67
-Cumulative run-time=0.05 seconds
-
-Initiating PH iteration=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.1259 First stage cost avg= 113107.2221 Max-Min= 6943.89
-Cumulative run-time=0.16 seconds
-
-Initiating PH iteration=2
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0816 First stage cost avg= 112954.6296 Max-Min= 2234.82
-Cumulative run-time=0.23 seconds
-
-Initiating PH iteration=3
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0796 First stage cost avg= 112963.0248 Max-Min= 2375.31
-Cumulative run-time=0.31 seconds
-
-Initiating PH iteration=4
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0776 First stage cost avg= 112915.6071 Max-Min= 3047.08
-Cumulative run-time=0.38 seconds
-
-Initiating PH iteration=5
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0794 First stage cost avg= 112825.3926 Max-Min= 3339.81
-Cumulative run-time=0.46 seconds
-
-Initiating PH iteration=6
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0668 First stage cost avg= 112317.9502 Max-Min= 2019.60
-Cumulative run-time=0.53 seconds
-
-Initiating PH iteration=7
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0542 First stage cost avg= 111364.4660 Max-Min= 1181.85
-Cumulative run-time=0.61 seconds
-
-Initiating PH iteration=8
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0360 First stage cost avg= 110283.4074 Max-Min= 463.23
-Cumulative run-time=0.68 seconds
-
-Initiating PH iteration=9
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0243 First stage cost avg= 109399.2542 Max-Min= 363.90
-Cumulative run-time=0.76 seconds
-
-Initiating PH iteration=10
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0256 First stage cost avg= 108834.1930 Max-Min= 933.90
-Cumulative run-time=0.83 seconds
-
-Initiating PH iteration=11
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0248 First stage cost avg= 108575.3219 Max-Min= 918.57
-Cumulative run-time=0.91 seconds
-
-Initiating PH iteration=12
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0163 First stage cost avg= 108513.5347 Max-Min= 591.25
-Cumulative run-time=0.98 seconds
-
-Initiating PH iteration=13
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0081 First stage cost avg= 108528.2899 Max-Min= 175.95
-Cumulative run-time=1.06 seconds
-
-Initiating PH iteration=14
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0168 First stage cost avg= 108561.6577 Max-Min= 274.77
-Cumulative run-time=1.14 seconds
-
-Initiating PH iteration=15
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0163 First stage cost avg= 108604.0579 Max-Min= 295.14
-Cumulative run-time=1.21 seconds
-
-Initiating PH iteration=16
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0098 First stage cost avg= 108667.3583 Max-Min= 127.67
-Cumulative run-time=1.29 seconds
-
-Initiating PH iteration=17
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0032 First stage cost avg= 108758.4237 Max-Min= 59.69
-Cumulative run-time=1.36 seconds
-
-Initiating PH iteration=18
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0026 First stage cost avg= 108868.1277 Max-Min= 101.79
-Cumulative run-time=1.44 seconds
-
-Initiating PH iteration=19
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0039 First stage cost avg= 108975.3089 Max-Min= 73.41
-Cumulative run-time=1.51 seconds
-
-Initiating PH iteration=20
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0043 First stage cost avg= 109057.4144 Max-Min= 39.47
-Cumulative run-time=1.58 seconds
-
-Initiating PH iteration=21
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0044 First stage cost avg= 109099.7145 Max-Min= 87.57
-Cumulative run-time=1.66 seconds
-
-Initiating PH iteration=22
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0040 First stage cost avg= 109099.1239 Max-Min= 104.22
-Cumulative run-time=1.74 seconds
-
-Initiating PH iteration=23
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0032 First stage cost avg= 109062.8322 Max-Min= 88.54
-Cumulative run-time=1.83 seconds
-
-Initiating PH iteration=24
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0021 First stage cost avg= 109004.1156 Max-Min= 54.49
-Cumulative run-time=1.91 seconds
-
-Initiating PH iteration=25
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0008 First stage cost avg= 108937.8039 Max-Min= 16.89
-Cumulative run-time=1.99 seconds
-
-Initiating PH iteration=26
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0005 First stage cost avg= 108876.8822 Max-Min= 14.27
-Cumulative run-time=2.06 seconds
-
-Initiating PH iteration=27
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0015 First stage cost avg= 108830.6201 Max-Min= 34.81
-Cumulative run-time=2.14 seconds
-
-Initiating PH iteration=28
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0021 First stage cost avg= 108803.9655 Max-Min= 44.57
-Cumulative run-time=2.21 seconds
-
-Initiating PH iteration=29
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0023 First stage cost avg= 108797.7661 Max-Min= 45.24
-Cumulative run-time=2.29 seconds
-
-Initiating PH iteration=30
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0020 First stage cost avg= 108809.4793 Max-Min= 39.01
-Cumulative run-time=2.36 seconds
-
-Initiating PH iteration=31
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0015 First stage cost avg= 108834.1639 Max-Min= 28.07
-Cumulative run-time=2.44 seconds
-
-Initiating PH iteration=32
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0008 First stage cost avg= 108865.6237 Max-Min= 14.67
-Cumulative run-time=2.51 seconds
-
-Initiating PH iteration=33
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0001 First stage cost avg= 108897.5679 Max-Min= 1.06
-Cumulative run-time=2.59 seconds
-PH converged - convergence metric is below threshold=0.0001
-Number of discrete variables fixed before final plugin calls=0 (total=0)
-Number of continuous variables fixed before final plugin calls=0 (total=3)
-PH algorithm history written to file=ph_history.json
-PH complete
-Convergence history:
-Iteration Metric Value
- 0 0.2540
- 1 0.1259
- 2 0.0816
- 3 0.0796
- 4 0.0776
- 5 0.0794
- 6 0.0668
- 7 0.0542
- 8 0.0360
- 9 0.0243
- 10 0.0256
- 11 0.0248
- 12 0.0163
- 13 0.0081
- 14 0.0168
- 15 0.0163
- 16 0.0098
- 17 0.0032
- 18 0.0026
- 19 0.0039
- 20 0.0043
- 21 0.0044
- 22 0.0040
- 23 0.0032
- 24 0.0021
- 25 0.0008
- 26 0.0005
- 27 0.0015
- 28 0.0021
- 29 0.0023
- 30 0.0020
- 31 0.0015
- 32 0.0008
- 33 0.0001
-
-***********************************************************************************************
->>>THE EXPECTED SUM OF THE STAGE COST VARIABLES=-108388.378639<<<
->>>***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise<<<
-***********************************************************************************************
-Final number of discrete variables fixed=0 (total=0)
-Final number of continuous variables fixed=0 (total=3)
-Final variable values:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 79.9844 80.0000 79.9768 Max-Min: 0.0232 Avg: 79.9871
- Index: [SUGAR_BEETS] Values: 249.9848 249.9770 250.0000 Max-Min: 0.0230 Avg: 249.9873
- Index: [WHEAT] Values: 170.0308 170.0230 170.0232 Max-Min: 0.0078 Avg: 170.0256
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108897.0836 108897.4725 108898.1476 Max-Min: 1.0640 Avg: 108897.5679
-Final costs:
-Scenario Tree Costs
-***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise
-----------------------------------------------------
-Tree Nodes:
-
- Name=AboveAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AboveAverageScenario
- Expected cost of (sub)tree rooted at node=-275899.3041
-
- Name=AverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AverageScenario
- Expected cost of (sub)tree rooted at node=-218243.2209
-
- Name=BelowAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-157713.8615
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- AboveAverageNode
- AverageNode
- BelowAverageNode
- Scenarios:
- AboveAverageScenario
- AverageScenario
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-108388.3786
-
-----------------------------------------------------
-Scenarios:
-
- Name=AboveAverageScenario
- Probability=0.3333
- Leaf Node=AboveAverageNode
- Tree node sequence:
- RootNode
- AboveAverageNode
- Stage= FirstStage Cost=108898.1476
- Stage= SecondStage Cost=-275899.3041
- Total scenario cost=-167001.1565
-
- Name=AverageScenario
- Probability=0.3333
- Leaf Node=AverageNode
- Tree node sequence:
- RootNode
- AverageNode
- Stage= FirstStage Cost=108897.4725
- Stage= SecondStage Cost=-218243.2209
- Total scenario cost=-109345.7484
-
- Name=BelowAverageScenario
- Probability=0.3333
- Leaf Node=BelowAverageNode
- Tree node sequence:
- RootNode
- BelowAverageNode
- Stage= FirstStage Cost=108897.0836
- Stage= SecondStage Cost=-157713.8615
- Total scenario cost=-48816.7780
-
-----------------------------------------------------
-
-Total PH execution time=2.61 seconds
-
-Scenario tree solution written to file=ph_solution.json
-Shutting down Pyro solver components
-Dispatcher received request to shut down - initiating...
-
-Total execution time=5.92 seconds
-Name Server gracefully stopped.
-Lost connection to dispatch server - shutting down...
-Lost connection to dispatch server - shutting down...
-Lost connection to dispatch server - shutting down...
diff --git a/pyomo/pysp/tests/examples/baselines/TestPHFarmerTrivialBundlesPHPyro.test6.baseline b/pyomo/pysp/tests/examples/baselines/TestPHFarmerTrivialBundlesPHPyro.test6.baseline
deleted file mode 100644
index bf529314950..00000000000
--- a/pyomo/pysp/tests/examples/baselines/TestPHFarmerTrivialBundlesPHPyro.test6.baseline
+++ /dev/null
@@ -1,220 +0,0 @@
-*** Pyro Name Server ***
-Name server listening on: ('0.0.0.0', 9090)
-Broadcast server listening on: ('0.0.0.0', 9090)
-URI is: PYRO://10.0.0.15:9090/0a00000f2db920a08cd04b76b6af129164
-URI written to: /Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/pyomo/pysp/tests/examples/Pyro_NS_URI
-Name Server started.
-User-defined PH extension module=pyomo.pysp.plugins.phhistoryextension already imported - skipping
-Dispatcher is ready.
-Attempting to find Pyro dispatcher object...
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI:PYRO://10.0.0.15:7766/0a00000f2dba20a08cd16789999938f3f7
-This is worker Worker_11707@Ozymandias.local
-Listening for work from dispatcher...
-Dispatcher Object URI:PYRO://10.0.0.15:7766/0a00000f2dba20a08cd16789999938f3f7
-This is worker Worker_11709@Ozymandias.local
-Listening for work from dispatcher...
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI:PYRO://10.0.0.15:7766/0a00000f2dba20a08cd16789999938f3f7
-This is worker Worker_11708@Ozymandias.local
-Listening for work from dispatcher...
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI: PYRO://10.0.0.15:7766/0a00000f2dba20a08cd16789999938f3f7
-This is client 11710@Ozymandias.local
-Initializing PH
-
-WW PH Extension: Loading user-specified configuration from file=/Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/examples/pysp/farmer/config/wwph.cfg
-WW PH Extension: Loading variable suffixes from file=/Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/examples/pysp/farmer/config/wwph.suffixes
-User-defined PH solution writer module=pyomo.pysp.plugins.jsonsolutionwriter already imported - skipping
-Starting PH
-
-Initiating PH iteration=0
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.2540 First stage cost avg= 113494.4444 Max-Min=10416.67
-Cumulative run-time=0.05 seconds
-
-Initiating PH iteration=1
-WW PH Extension: Setting mipgap to 0.1000000, as specified in the configuration file
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.1259 First stage cost avg= 113107.2221 Max-Min= 6943.89
-Cumulative run-time=0.16 seconds
-
-Initiating PH iteration=2
-WW PH Extension: Setting mipgap to 0.0500717, based on current value of the convergence metric
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0816 First stage cost avg= 112954.6296 Max-Min= 2234.82
-Cumulative run-time=0.23 seconds
-
-Initiating PH iteration=3
-WW PH Extension: Setting mipgap to 0.0327607, based on current value of the convergence metric
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0796 First stage cost avg= 112963.0248 Max-Min= 2375.31
-Cumulative run-time=0.30 seconds
-
-Initiating PH iteration=4
-WW PH Extension: Setting mipgap to 0.0319973, based on current value of the convergence metric
-Slamming criteria are satisifed - accelerating convergence
-Slamming variable=DevotedAcreage[CORN] at tree node=RootNode to value=96.8871743104; value=node average (anywhere)
-Fixing variable=DevotedAcreage[CORN] at tree node=RootNode to value=96.8871743104; converged for 0 iterations
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0776 First stage cost avg= 112915.6071 Max-Min= 3047.08
-Cumulative run-time=0.38 seconds
-
-Initiating PH iteration=5
-WW PH Extension: Setting mipgap to 0.0312342, based on current value of the convergence metric
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=1 (total=3)
-Convergence metric= 0.0609 First stage cost avg= 112895.6887 Max-Min= 5246.95
-Cumulative run-time=0.46 seconds
-
-Initiating PH iteration=6
-WW PH Extension: Setting mipgap to 0.0247045, based on current value of the convergence metric
-Slamming criteria are satisifed - accelerating convergence
-Slamming variable=DevotedAcreage[WHEAT] at tree node=RootNode to value=137.204959966; value=node average (anywhere)
-Fixing variable=DevotedAcreage[WHEAT] at tree node=RootNode to value=137.204959966; converged for 0 iterations
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=1 (total=3)
-Convergence metric= 0.0391 First stage cost avg= 112000.8391 Max-Min= 2624.80
-Cumulative run-time=0.54 seconds
-
-Initiating PH iteration=7
-WW PH Extension: Setting mipgap to 0.0161915, based on current value of the convergence metric
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=2 (total=3)
-Convergence metric= 0.0000 First stage cost avg= 112000.8392 Max-Min= 0.00
-Cumulative run-time=0.62 seconds
-PH converged - convergence metric is below threshold=0.0001
-Number of discrete variables fixed before final plugin calls=0 (total=0)
-Number of continuous variables fixed before final plugin calls=2 (total=3)
-WW PH extension: Fixing all discrete variables that are converged at termination
-Total number of variables fixed at PH termination due to convergence=0
-PH algorithm history written to file=ph_history.json
-PH complete
-Convergence history:
-Iteration Metric Value
- 0 0.2540
- 1 0.1259
- 2 0.0816
- 3 0.0796
- 4 0.0776
- 5 0.0609
- 6 0.0391
- 7 0.0000
-
-***********************************************************************************************
->>>THE EXPECTED SUM OF THE STAGE COST VARIABLES=-107905.908751<<<
->>>***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise<<<
-***********************************************************************************************
-Final number of discrete variables fixed=0 (total=0)
-Final number of continuous variables fixed=2 (total=3)
-Final variable values:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 96.8872 96.8872 96.8872 Max-Min: 0.0000 Avg: 96.8872
- Index: [SUGAR_BEETS] Values: 265.9079 265.9079 265.9079 Max-Min: 0.0000 Avg: 265.9079
- Index: [WHEAT] Values: 137.2050 137.2050 137.2050 Max-Min: 0.0000 Avg: 137.2050
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 112000.8392 112000.8392 112000.8391 Max-Min: 0.0000 Avg: 112000.8392
-Final costs:
-Scenario Tree Costs
-***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise
-----------------------------------------------------
-Tree Nodes:
-
- Name=AboveAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AboveAverageScenario
- Expected cost of (sub)tree rooted at node=-272111.4913
-
- Name=AverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AverageScenario
- Expected cost of (sub)tree rooted at node=-223364.9995
-
- Name=BelowAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-164243.7528
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- AboveAverageNode
- AverageNode
- BelowAverageNode
- Scenarios:
- AboveAverageScenario
- AverageScenario
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-107905.9088
-
-----------------------------------------------------
-Scenarios:
-
- Name=AboveAverageScenario
- Probability=0.3333
- Leaf Node=AboveAverageNode
- Tree node sequence:
- RootNode
- AboveAverageNode
- Stage= FirstStage Cost=112000.8391
- Stage= SecondStage Cost=-272111.4913
- Total scenario cost=-160110.6522
-
- Name=AverageScenario
- Probability=0.3333
- Leaf Node=AverageNode
- Tree node sequence:
- RootNode
- AverageNode
- Stage= FirstStage Cost=112000.8392
- Stage= SecondStage Cost=-223364.9995
- Total scenario cost=-111364.1604
-
- Name=BelowAverageScenario
- Probability=0.3333
- Leaf Node=BelowAverageNode
- Tree node sequence:
- RootNode
- BelowAverageNode
- Stage= FirstStage Cost=112000.8392
- Stage= SecondStage Cost=-164243.7528
- Total scenario cost=-52242.9136
-
-----------------------------------------------------
-
-Total PH execution time=0.63 seconds
-
-Scenario tree solution written to file=ph_solution.json
-Shutting down Pyro solver components
-Dispatcher received request to shut down - initiating...
-
-Total execution time=3.96 seconds
-Name Server gracefully stopped.
-Lost connection to dispatch server - shutting down...
-Lost connection to dispatch server - shutting down...
-Lost connection to dispatch server - shutting down...
diff --git a/pyomo/pysp/tests/examples/baselines/TestPHFarmerTrivialBundlesPHPyro.test6_withef.baseline b/pyomo/pysp/tests/examples/baselines/TestPHFarmerTrivialBundlesPHPyro.test6_withef.baseline
deleted file mode 100644
index 11a8b8f76c4..00000000000
--- a/pyomo/pysp/tests/examples/baselines/TestPHFarmerTrivialBundlesPHPyro.test6_withef.baseline
+++ /dev/null
@@ -1,367 +0,0 @@
-*** Pyro Name Server ***
-Name server listening on: ('0.0.0.0', 9090)
-Broadcast server listening on: ('0.0.0.0', 9090)
-URI is: PYRO://10.0.0.253:9090/0a0000fda8a420b9d8f40f4a3e65ee364f
-URI written to: /Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/pyomo/pysp/tests/examples/Pyro_NS_URI
-Name Server started.
-User-defined PH extension module=pyomo.pysp.plugins.phhistoryextension already imported - skipping
-Dispatcher is ready.
-Attempting to find Pyro dispatcher object...
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI:PYRO://10.0.0.253:7766/0a0000fda8a520b9d8f530034472dfbc78
-This is worker Worker_43174@Ozymandias.local
-Listening for work from dispatcher...
-Dispatcher Object URI:PYRO://10.0.0.253:7766/0a0000fda8a520b9d8f530034472dfbc78
-This is worker Worker_43176@Ozymandias.local
-Listening for work from dispatcher...
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI:PYRO://10.0.0.253:7766/0a0000fda8a520b9d8f530034472dfbc78
-This is worker Worker_43175@Ozymandias.local
-Listening for work from dispatcher...
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI: PYRO://10.0.0.253:7766/0a0000fda8a520b9d8f530034472dfbc78
-This is client 43177@Ozymandias.local
-Initializing PH
-
-WW PH Extension: Loading user-specified configuration from file=/Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/examples/pysp/farmer/config/wwph.cfg
-WW PH Extension: Loading variable suffixes from file=/Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/examples/pysp/farmer/config/wwph.suffixes
-User-defined PH solution writer module=pyomo.pysp.plugins.jsonsolutionwriter already imported - skipping
-Starting PH
-
-Initiating PH iteration=0
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.2540 First stage cost avg= 113494.4444 Max-Min=10416.67
-Cumulative run-time=0.06 seconds
-
-Initiating PH iteration=1
-WW PH Extension: Setting mipgap to 0.1000000, as specified in the configuration file
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.1259 First stage cost avg= 113107.2221 Max-Min= 6943.89
-Cumulative run-time=0.17 seconds
-
-Initiating PH iteration=2
-WW PH Extension: Setting mipgap to 0.0500717, based on current value of the convergence metric
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0816 First stage cost avg= 112954.6296 Max-Min= 2234.82
-Cumulative run-time=0.25 seconds
-
-Initiating PH iteration=3
-WW PH Extension: Setting mipgap to 0.0327607, based on current value of the convergence metric
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0796 First stage cost avg= 112963.0248 Max-Min= 2375.31
-Cumulative run-time=0.32 seconds
-
-Initiating PH iteration=4
-WW PH Extension: Setting mipgap to 0.0319973, based on current value of the convergence metric
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Slamming criteria are satisifed - accelerating convergence
-Slamming variable=DevotedAcreage[CORN] at tree node=RootNode to value=96.8871743104; value=node average (anywhere)
-Fixing variable=DevotedAcreage[CORN] at tree node=RootNode to value=96.8871743104; converged for 0 iterations
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0776 First stage cost avg= 112915.6071 Max-Min= 3047.08
-Cumulative run-time=0.40 seconds
-
-Initiating PH iteration=5
-WW PH Extension: Setting mipgap to 0.0312342, based on current value of the convergence metric
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=1 (total=3)
-Convergence metric= 0.0609 First stage cost avg= 112895.6887 Max-Min= 5246.95
-Cumulative run-time=0.49 seconds
-
-Initiating PH iteration=6
-WW PH Extension: Setting mipgap to 0.0247045, based on current value of the convergence metric
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Slamming criteria are satisifed - accelerating convergence
-Slamming variable=DevotedAcreage[WHEAT] at tree node=RootNode to value=137.204959966; value=node average (anywhere)
-Fixing variable=DevotedAcreage[WHEAT] at tree node=RootNode to value=137.204959966; converged for 0 iterations
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=1 (total=3)
-Convergence metric= 0.0391 First stage cost avg= 112000.8391 Max-Min= 2624.80
-Cumulative run-time=0.56 seconds
-
-Initiating PH iteration=7
-WW PH Extension: Setting mipgap to 0.0161915, based on current value of the convergence metric
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=2 (total=3)
-Convergence metric= 0.0000 First stage cost avg= 112000.8392 Max-Min= 0.00
-Cumulative run-time=0.65 seconds
-PH converged - convergence metric is below threshold=0.0001
-Number of discrete variables fixed before final plugin calls=0 (total=0)
-Number of continuous variables fixed before final plugin calls=2 (total=3)
-WW PH extension: Fixing all discrete variables that are converged at termination
-Total number of variables fixed at PH termination due to convergence=0
-PH algorithm history written to file=ph_history.json
-PH complete
-Convergence history:
-Iteration Metric Value
- 0 0.2540
- 1 0.1259
- 2 0.0816
- 3 0.0796
- 4 0.0776
- 5 0.0609
- 6 0.0391
- 7 0.0000
-
-***********************************************************************************************
->>>THE EXPECTED SUM OF THE STAGE COST VARIABLES=-107905.908751<<<
->>>***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise<<<
-***********************************************************************************************
-Final number of discrete variables fixed=0 (total=0)
-Final number of continuous variables fixed=2 (total=3)
-Final variable values:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 96.8872 96.8872 96.8872 Max-Min: 0.0000 Avg: 96.8872
- Index: [SUGAR_BEETS] Values: 265.9079 265.9079 265.9079 Max-Min: 0.0000 Avg: 265.9079
- Index: [WHEAT] Values: 137.2050 137.2050 137.2050 Max-Min: 0.0000 Avg: 137.2050
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 112000.8392 112000.8392 112000.8391 Max-Min: 0.0000 Avg: 112000.8392
-Final costs:
-Scenario Tree Costs
-***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise
-----------------------------------------------------
-Tree Nodes:
-
- Name=AboveAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AboveAverageScenario
- Expected cost of (sub)tree rooted at node=-272111.4913
-
- Name=AverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AverageScenario
- Expected cost of (sub)tree rooted at node=-223364.9995
-
- Name=BelowAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-164243.7528
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- AboveAverageNode
- AverageNode
- BelowAverageNode
- Scenarios:
- AboveAverageScenario
- AverageScenario
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-107905.9088
-
-----------------------------------------------------
-Scenarios:
-
- Name=AboveAverageScenario
- Probability=0.3333
- Leaf Node=AboveAverageNode
- Tree node sequence:
- RootNode
- AboveAverageNode
- Stage= FirstStage Cost=112000.8391
- Stage= SecondStage Cost=-272111.4913
- Total scenario cost=-160110.6522
-
- Name=AverageScenario
- Probability=0.3333
- Leaf Node=AverageNode
- Tree node sequence:
- RootNode
- AverageNode
- Stage= FirstStage Cost=112000.8392
- Stage= SecondStage Cost=-223364.9995
- Total scenario cost=-111364.1604
-
- Name=BelowAverageScenario
- Probability=0.3333
- Leaf Node=BelowAverageNode
- Tree node sequence:
- RootNode
- BelowAverageNode
- Stage= FirstStage Cost=112000.8392
- Stage= SecondStage Cost=-164243.7528
- Total scenario cost=-52242.9136
-
-----------------------------------------------------
-
-Total PH execution time=0.67 seconds
-
-Scenario tree solution written to file=ph_solution.json
-Constructing scenario instances for extensive form solve
-Pushing fixed variable statuses to scenario instances
-Number of discrete variables fixed prior to ef creation=0 (total=0)
-Number of continuous variables fixed prior to ef creation=2 (total=3)
-Creating extensive form for remainder problem
-Time to construct extensive form instance=0.00 seconds
-Queuing extensive form solve
-Waiting for extensive form solve
-Done with extensive form solve - loading results
-Storing solution in scenario tree
-Time to solve and load results for the extensive form=0.02 seconds
-
-***********************************************************************************************
->>>THE EXPECTED SUM OF THE STAGE COST VARIABLES=-107905.908903<<<
-***********************************************************************************************
-
-Extensive form solution:
-----------------------------------------------------
-Tree Nodes:
-
- Name=AboveAverageNode
- Stage=SecondStage
- Parent=RootNode
- Variables:
- QuantitySubQuotaSold[CORN]=108.793827517
- QuantitySubQuotaSold[SUGAR_BEETS]=6000.0
- QuantitySubQuotaSold[WHEAT]=211.614879899
- QuantitySuperQuotaSold[SUGAR_BEETS]=381.788777359
-
- Name=AverageNode
- Stage=SecondStage
- Parent=RootNode
- Variables:
- QuantitySubQuotaSold[CORN]=50.6615229312
- QuantitySubQuotaSold[SUGAR_BEETS]=5318.15731447
- QuantitySubQuotaSold[WHEAT]=143.012399916
-
- Name=BelowAverageNode
- Stage=SecondStage
- Parent=RootNode
- Variables:
- QuantityPurchased[CORN]=7.47078165504
- QuantitySubQuotaSold[SUGAR_BEETS]=4254.52585157
- QuantitySubQuotaSold[WHEAT]=74.4099199326
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Variables:
- DevotedAcreage[CORN]=96.8871743104
- DevotedAcreage[SUGAR_BEETS]=265.907865723
- DevotedAcreage[WHEAT]=137.204959966
-
-
-Extensive form costs:
-Scenario Tree Costs
-***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise
-----------------------------------------------------
-Tree Nodes:
-
- Name=AboveAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AboveAverageScenario
- Expected cost of (sub)tree rooted at node=-272111.4915
-
- Name=AverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AverageScenario
- Expected cost of (sub)tree rooted at node=-223364.9997
-
- Name=BelowAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-164243.7529
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- AboveAverageNode
- AverageNode
- BelowAverageNode
- Scenarios:
- AboveAverageScenario
- AverageScenario
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-107905.9089
-
-----------------------------------------------------
-Scenarios:
-
- Name=AboveAverageScenario
- Probability=0.3333
- Leaf Node=AboveAverageNode
- Tree node sequence:
- RootNode
- AboveAverageNode
- Stage= FirstStage Cost=112000.8392
- Stage= SecondStage Cost=-272111.4915
- Total scenario cost=-160110.6523
-
- Name=AverageScenario
- Probability=0.3333
- Leaf Node=AverageNode
- Tree node sequence:
- RootNode
- AverageNode
- Stage= FirstStage Cost=112000.8392
- Stage= SecondStage Cost=-223364.9997
- Total scenario cost=-111364.1606
-
- Name=BelowAverageScenario
- Probability=0.3333
- Leaf Node=BelowAverageNode
- Tree node sequence:
- RootNode
- BelowAverageNode
- Stage= FirstStage Cost=112000.8392
- Stage= SecondStage Cost=-164243.7529
- Total scenario cost=-52242.9137
-
-----------------------------------------------------
-Scenario tree solution written to file=postphef_solution.json
-Shutting down Pyro solver components
-Dispatcher received request to shut down - initiating...
-
-Total execution time=4.04 seconds
-Name Server gracefully stopped.
-Lost connection to dispatch server - shutting down...
-Lost connection to dispatch server - shutting down...
-Lost connection to dispatch server - shutting down...
diff --git a/pyomo/pysp/tests/examples/baselines/TestPHFarmerTrivialBundlesPHPyro.test7.baseline b/pyomo/pysp/tests/examples/baselines/TestPHFarmerTrivialBundlesPHPyro.test7.baseline
deleted file mode 100644
index 72bd27f6008..00000000000
--- a/pyomo/pysp/tests/examples/baselines/TestPHFarmerTrivialBundlesPHPyro.test7.baseline
+++ /dev/null
@@ -1,465 +0,0 @@
-*** Pyro Name Server ***
-Name server listening on: ('0.0.0.0', 9090)
-Broadcast server listening on: ('0.0.0.0', 9090)
-URI is: PYRO://10.0.0.11:9090/0a00000b119a720a8351dd7c51cc82e9ae6
-URI written to: /Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/pyomo/pysp/tests/examples/Pyro_NS_URI
-Name Server started.
-User-defined PH extension module=pyomo.pysp.plugins.phhistoryextension already imported - skipping
-User-defined PH extension module=pyomo.pysp.plugins.phboundextension already imported - skipping
-Dispatcher is ready.
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI:PYRO://10.0.0.11:7766/0a00000b119a820a8351ef68d5d98e4c888
-This is worker Worker_72107@Ozymandias.local
-Listening for work from dispatcher...
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI:PYRO://10.0.0.11:7766/0a00000b119a820a8351ef68d5d98e4c888
-This is worker Worker_72106@Ozymandias.local
-Listening for work from dispatcher...
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI:PYRO://10.0.0.11:7766/0a00000b119a820a8351ef68d5d98e4c888
-This is worker Worker_72105@Ozymandias.local
-Listening for work from dispatcher...
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI: PYRO://10.0.0.11:7766/0a00000b119a820a8351ef68d5d98e4c888
-This is client 72108@Ozymandias.local
-Initializing PH
-
-phboundextension using default update interval=1
-User-defined PH solution writer module=pyomo.pysp.plugins.jsonsolutionwriter already imported - skipping
-Starting PH
-
-Initiating PH iteration=0
-Computed objective lower bound=-115405.5556
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.2540 First stage cost avg= 113494.4444 Max-Min=10416.67
-Cumulative run-time=0.05 seconds
-
-Initiating PH iteration=1
-Computed objective lower bound=-112378.3951
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.1259 First stage cost avg= 113107.2221 Max-Min= 6943.89
-Cumulative run-time=0.25 seconds
-
-Initiating PH iteration=2
-Computed objective lower bound=-114092.2009
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0816 First stage cost avg= 112954.6296 Max-Min= 2234.82
-Cumulative run-time=0.41 seconds
-
-Initiating PH iteration=3
-Computed objective lower bound=-111905.7747
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0796 First stage cost avg= 112963.0248 Max-Min= 2375.31
-Cumulative run-time=0.57 seconds
-
-Initiating PH iteration=4
-Computed objective lower bound=-110093.7884
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0776 First stage cost avg= 112915.6071 Max-Min= 3047.08
-Cumulative run-time=0.74 seconds
-
-Initiating PH iteration=5
-Computed objective lower bound=-109499.5161
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0794 First stage cost avg= 112825.3926 Max-Min= 3339.81
-Cumulative run-time=0.89 seconds
-
-Initiating PH iteration=6
-Computed objective lower bound=-108931.8046
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0668 First stage cost avg= 112317.9502 Max-Min= 2019.60
-Cumulative run-time=1.05 seconds
-
-Initiating PH iteration=7
-Computed objective lower bound=-110122.0019
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0542 First stage cost avg= 111364.4660 Max-Min= 1181.85
-Cumulative run-time=1.21 seconds
-
-Initiating PH iteration=8
-Computed objective lower bound=-111334.7018
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0360 First stage cost avg= 110283.4074 Max-Min= 463.23
-Cumulative run-time=1.37 seconds
-
-Initiating PH iteration=9
-Computed objective lower bound=-111609.8143
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0243 First stage cost avg= 109399.2542 Max-Min= 363.90
-Cumulative run-time=1.53 seconds
-
-Initiating PH iteration=10
-Computed objective lower bound=-111298.1197
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0256 First stage cost avg= 108834.1930 Max-Min= 933.90
-Cumulative run-time=1.68 seconds
-
-Initiating PH iteration=11
-Computed objective lower bound=-110209.1867
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0248 First stage cost avg= 108575.3219 Max-Min= 918.57
-Cumulative run-time=1.85 seconds
-
-Initiating PH iteration=12
-Computed objective lower bound=-109115.6506
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0163 First stage cost avg= 108513.5347 Max-Min= 591.25
-Cumulative run-time=2.02 seconds
-
-Initiating PH iteration=13
-Computed objective lower bound=-108676.3770
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0081 First stage cost avg= 108528.2899 Max-Min= 175.95
-Cumulative run-time=2.19 seconds
-
-Initiating PH iteration=14
-Computed objective lower bound=-108716.2952
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0168 First stage cost avg= 108561.6577 Max-Min= 274.77
-Cumulative run-time=2.35 seconds
-
-Initiating PH iteration=15
-Computed objective lower bound=-108567.8281
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0163 First stage cost avg= 108604.0579 Max-Min= 295.14
-Cumulative run-time=2.51 seconds
-
-Initiating PH iteration=16
-Computed objective lower bound=-108440.1576
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0098 First stage cost avg= 108667.3583 Max-Min= 127.67
-Cumulative run-time=2.67 seconds
-
-Initiating PH iteration=17
-Computed objective lower bound=-108508.3933
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0032 First stage cost avg= 108758.4237 Max-Min= 59.69
-Cumulative run-time=2.83 seconds
-
-Initiating PH iteration=18
-Computed objective lower bound=-108542.0161
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0026 First stage cost avg= 108868.1277 Max-Min= 101.79
-Cumulative run-time=2.99 seconds
-
-Initiating PH iteration=19
-Computed objective lower bound=-108541.9306
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0039 First stage cost avg= 108975.3089 Max-Min= 73.41
-Cumulative run-time=3.15 seconds
-
-Initiating PH iteration=20
-Computed objective lower bound=-108516.4781
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0043 First stage cost avg= 109057.4144 Max-Min= 39.47
-Cumulative run-time=3.31 seconds
-
-Initiating PH iteration=21
-Computed objective lower bound=-108488.2878
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0044 First stage cost avg= 109099.7145 Max-Min= 87.57
-Cumulative run-time=3.47 seconds
-
-Initiating PH iteration=22
-Computed objective lower bound=-108441.5390
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0040 First stage cost avg= 109099.1239 Max-Min= 104.22
-Cumulative run-time=3.64 seconds
-
-Initiating PH iteration=23
-Computed objective lower bound=-108399.9641
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0032 First stage cost avg= 109062.8322 Max-Min= 88.54
-Cumulative run-time=3.80 seconds
-
-Initiating PH iteration=24
-Computed objective lower bound=-108503.2120
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0021 First stage cost avg= 109004.1156 Max-Min= 54.49
-Cumulative run-time=3.95 seconds
-
-Initiating PH iteration=25
-Computed objective lower bound=-108576.0350
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0008 First stage cost avg= 108937.8039 Max-Min= 16.89
-Cumulative run-time=4.11 seconds
-
-Initiating PH iteration=26
-Computed objective lower bound=-108599.8131
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0005 First stage cost avg= 108876.8822 Max-Min= 14.27
-Cumulative run-time=4.27 seconds
-
-Initiating PH iteration=27
-Computed objective lower bound=-108581.6439
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0015 First stage cost avg= 108830.6201 Max-Min= 34.81
-Cumulative run-time=4.44 seconds
-
-Initiating PH iteration=28
-Computed objective lower bound=-108534.4974
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0021 First stage cost avg= 108803.9655 Max-Min= 44.57
-Cumulative run-time=4.58 seconds
-
-Initiating PH iteration=29
-Computed objective lower bound=-108472.5688
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0023 First stage cost avg= 108797.7661 Max-Min= 45.24
-Cumulative run-time=4.76 seconds
-
-Initiating PH iteration=30
-Computed objective lower bound=-108408.6756
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0020 First stage cost avg= 108809.4793 Max-Min= 39.01
-Cumulative run-time=4.92 seconds
-
-Initiating PH iteration=31
-Computed objective lower bound=-108403.8262
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0015 First stage cost avg= 108834.1639 Max-Min= 28.07
-Cumulative run-time=5.08 seconds
-
-Initiating PH iteration=32
-Computed objective lower bound=-108419.0164
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0008 First stage cost avg= 108865.6237 Max-Min= 14.67
-Cumulative run-time=5.23 seconds
-
-Initiating PH iteration=33
-Computed objective lower bound=-108427.1508
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0001 First stage cost avg= 108897.5679 Max-Min= 1.06
-Cumulative run-time=5.40 seconds
-PH converged - convergence metric is below threshold=0.0001
-Number of discrete variables fixed before final plugin calls=0 (total=0)
-Number of continuous variables fixed before final plugin calls=0 (total=3)
-Computed objective lower bound=-108427.7239
-
- Iteration Bound
- Trivial -115405.555588
- 0 -112378.395124
- 1 -114092.2009
- 2 -111905.774744
- 3 -110093.788354
- 4 -109499.516145
- 5 -108931.804635
- 6 -110122.001897
- 7 -111334.701817
- 8 -111609.814338
- 9 -111298.11967
- 10 -110209.186685
- 11 -109115.65065
- 12 -108676.376969
- 13 -108716.295157
- 14 -108567.828079
- 15 -108440.157622
- 16 -108508.393308
- 17 -108542.016117
- 18 -108541.930573
- 19 -108516.478131
- 20 -108488.28782
- 21 -108441.538995
- 22 -108399.964066
- 23 -108503.212025
- 24 -108576.034986
- 25 -108599.813084
- 26 -108581.643945
- 27 -108534.497426
- 28 -108472.568809
- 29 -108408.6756
- 30 -108403.826194
- 31 -108419.01641
- 32 -108427.150791
- 33 -108427.723944
-
-Lower bound history written to file=phbound.txt
-
-Best Objective Bound: -108399.964066
-
-Best Lower Bound written to file=phbestbound.txt
-PH algorithm history written to file=ph_history.json
-PH complete
-Convergence history:
-Iteration Metric Value
- 0 0.2540
- 1 0.1259
- 2 0.0816
- 3 0.0796
- 4 0.0776
- 5 0.0794
- 6 0.0668
- 7 0.0542
- 8 0.0360
- 9 0.0243
- 10 0.0256
- 11 0.0248
- 12 0.0163
- 13 0.0081
- 14 0.0168
- 15 0.0163
- 16 0.0098
- 17 0.0032
- 18 0.0026
- 19 0.0039
- 20 0.0043
- 21 0.0044
- 22 0.0040
- 23 0.0032
- 24 0.0021
- 25 0.0008
- 26 0.0005
- 27 0.0015
- 28 0.0021
- 29 0.0023
- 30 0.0020
- 31 0.0015
- 32 0.0008
- 33 0.0001
-
-***********************************************************************************************
->>>THE EXPECTED SUM OF THE STAGE COST VARIABLES=-108388.378639<<<
->>>***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise<<<
-***********************************************************************************************
-Final number of discrete variables fixed=0 (total=0)
-Final number of continuous variables fixed=0 (total=3)
-Final variable values:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 79.9844 80.0000 79.9768 Max-Min: 0.0232 Avg: 79.9871
- Index: [SUGAR_BEETS] Values: 249.9848 249.9770 250.0000 Max-Min: 0.0230 Avg: 249.9873
- Index: [WHEAT] Values: 170.0308 170.0230 170.0232 Max-Min: 0.0078 Avg: 170.0256
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108897.0836 108897.4725 108898.1476 Max-Min: 1.0640 Avg: 108897.5679
-Final costs:
-Scenario Tree Costs
-***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise
-----------------------------------------------------
-Tree Nodes:
-
- Name=AboveAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AboveAverageScenario
- Expected cost of (sub)tree rooted at node=-275899.3041
-
- Name=AverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AverageScenario
- Expected cost of (sub)tree rooted at node=-218243.2209
-
- Name=BelowAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-157713.8615
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- AboveAverageNode
- AverageNode
- BelowAverageNode
- Scenarios:
- AboveAverageScenario
- AverageScenario
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-108388.3786
-
-----------------------------------------------------
-Scenarios:
-
- Name=AboveAverageScenario
- Probability=0.3333
- Leaf Node=AboveAverageNode
- Tree node sequence:
- RootNode
- AboveAverageNode
- Stage= FirstStage Cost=108898.1476
- Stage= SecondStage Cost=-275899.3041
- Total scenario cost=-167001.1565
-
- Name=AverageScenario
- Probability=0.3333
- Leaf Node=AverageNode
- Tree node sequence:
- RootNode
- AverageNode
- Stage= FirstStage Cost=108897.4725
- Stage= SecondStage Cost=-218243.2209
- Total scenario cost=-109345.7484
-
- Name=BelowAverageScenario
- Probability=0.3333
- Leaf Node=BelowAverageNode
- Tree node sequence:
- RootNode
- BelowAverageNode
- Stage= FirstStage Cost=108897.0836
- Stage= SecondStage Cost=-157713.8615
- Total scenario cost=-48816.7780
-
-----------------------------------------------------
-
-Total PH execution time=5.48 seconds
-
-Scenario tree solution written to file=ph_solution.json
-Shutting down Pyro solver components
-Dispatcher received request to shut down - initiating...
-
-Total execution time=8.79 seconds
-Lost connection to dispatch server - shutting down...
-Lost connection to dispatch server - shutting down...
-Name Server gracefully stopped.
-Lost connection to dispatch server - shutting down...
diff --git a/pyomo/pysp/tests/examples/baselines/TestPHFarmerTrivialBundlesPHPyro.test8.baseline b/pyomo/pysp/tests/examples/baselines/TestPHFarmerTrivialBundlesPHPyro.test8.baseline
deleted file mode 100644
index ec43e25cc04..00000000000
--- a/pyomo/pysp/tests/examples/baselines/TestPHFarmerTrivialBundlesPHPyro.test8.baseline
+++ /dev/null
@@ -1,1165 +0,0 @@
-*** Pyro Name Server ***
-Name server listening on: ('0.0.0.0', 9090)
-Broadcast server listening on: ('0.0.0.0', 9090)
-URI is: PYRO://10.0.0.11:9090/0a00000b11a9120a8352321d574d06d8c4d
-URI written to: /Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/pyomo/pysp/tests/examples/Pyro_NS_URI
-Name Server started.
-User-defined PH extension module=pyomo.pysp.plugins.phhistoryextension already imported - skipping
-User-defined PH extension module=pyomo.pysp.plugins.convexhullboundextension already imported - skipping
-Dispatcher is ready.
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI:PYRO://10.0.0.11:7766/0a00000b11a9220a835243f1d914fb51c9c
-This is worker Worker_72341@Ozymandias.local
-Listening for work from dispatcher...
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI:PYRO://10.0.0.11:7766/0a00000b11a9220a835243f1d914fb51c9c
-This is worker Worker_72340@Ozymandias.local
-Listening for work from dispatcher...
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI:PYRO://10.0.0.11:7766/0a00000b11a9220a835243f1d914fb51c9c
-This is worker Worker_72339@Ozymandias.local
-Listening for work from dispatcher...
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI: PYRO://10.0.0.11:7766/0a00000b11a9220a835243f1d914fb51c9c
-This is client 72342@Ozymandias.local
-Initializing PH
-
-convexhullboundextension using default update interval=1
-WARNING: No construction rule or expression specified for constraint 'W_Balance'
-WARNING: No construction rule or expression specified for constraint 'V_Bound'
-User-defined PH solution writer module=pyomo.pysp.plugins.jsonsolutionwriter already imported - skipping
-Starting PH
-
-Initiating PH iteration=0
-Computed objective lower bound=-115405.5556
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.2540 First stage cost avg= 113494.4444 Max-Min=10416.67
-Cumulative run-time=0.07 seconds
-
-Initiating PH iteration=1
-Computed objective lower bound=-112378.3952
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.1259 First stage cost avg= 113107.2221 Max-Min= 6943.89
-Cumulative run-time=0.28 seconds
-
-Initiating PH iteration=2
-Computed objective lower bound=-119146.9138
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0816 First stage cost avg= 112954.6296 Max-Min= 2234.82
-Cumulative run-time=0.44 seconds
-
-Initiating PH iteration=3
-Computed objective lower bound=-122839.9373
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0796 First stage cost avg= 112963.0248 Max-Min= 2375.31
-Cumulative run-time=0.60 seconds
-
-Initiating PH iteration=4
-Computed objective lower bound=-115850.2283
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0776 First stage cost avg= 112915.6071 Max-Min= 3047.08
-Cumulative run-time=0.77 seconds
-
-Initiating PH iteration=5
-Computed objective lower bound=-114662.4278
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0794 First stage cost avg= 112825.3926 Max-Min= 3339.81
-Cumulative run-time=0.93 seconds
-
-Initiating PH iteration=6
-Computed objective lower bound=-114508.9364
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0726 First stage cost avg= 111425.6142 Max-Min= 3493.67
-Cumulative run-time=1.09 seconds
-
-Initiating PH iteration=7
-Computed objective lower bound=-114392.6225
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0844 First stage cost avg= 110005.4890 Max-Min= 3402.43
-Cumulative run-time=1.27 seconds
-
-Initiating PH iteration=8
-Computed objective lower bound=-116760.9510
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0727 First stage cost avg= 108759.9444 Max-Min= 2312.53
-Cumulative run-time=1.43 seconds
-
-Initiating PH iteration=9
-Computed objective lower bound=-115713.7704
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0636 First stage cost avg= 107649.1713 Max-Min= 2611.98
-Cumulative run-time=1.59 seconds
-
-Initiating PH iteration=10
-Computed objective lower bound=-114886.9774
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0786 First stage cost avg= 106975.2119 Max-Min= 3852.20
-Cumulative run-time=1.75 seconds
-
-Initiating PH iteration=11
-Computed objective lower bound=-114142.6745
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0822 First stage cost avg= 106779.6625 Max-Min= 3679.63
-Cumulative run-time=1.93 seconds
-
-Initiating PH iteration=12
-Computed objective lower bound=-112524.0431
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0773 First stage cost avg= 106949.8534 Max-Min= 3195.33
-Cumulative run-time=2.12 seconds
-
-Initiating PH iteration=13
-Computed objective lower bound=-111354.3497
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0690 First stage cost avg= 107328.8057 Max-Min= 2823.03
-Cumulative run-time=2.29 seconds
-
-Initiating PH iteration=14
-Computed objective lower bound=-110712.3885
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0608 First stage cost avg= 107764.6036 Max-Min= 2533.82
-Cumulative run-time=2.47 seconds
-
-Initiating PH iteration=15
-Computed objective lower bound=-110412.3233
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0550 First stage cost avg= 108156.8751 Max-Min= 2354.98
-Cumulative run-time=2.63 seconds
-
-Initiating PH iteration=16
-Computed objective lower bound=-110290.3557
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0518 First stage cost avg= 108452.7004 Max-Min= 2257.08
-Cumulative run-time=2.79 seconds
-
-Initiating PH iteration=17
-Computed objective lower bound=-110300.1669
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0512 First stage cost avg= 108636.8058 Max-Min= 2233.49
-Cumulative run-time=2.97 seconds
-
-Initiating PH iteration=18
-Computed objective lower bound=-110407.5782
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0519 First stage cost avg= 108719.1582 Max-Min= 2264.78
-Cumulative run-time=3.13 seconds
-
-Initiating PH iteration=19
-Computed objective lower bound=-110633.3518
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0526 First stage cost avg= 108723.1781 Max-Min= 2324.13
-Cumulative run-time=3.29 seconds
-
-Initiating PH iteration=20
-Computed objective lower bound=-110837.3428
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0533 First stage cost avg= 108676.4444 Max-Min= 2388.98
-Cumulative run-time=3.46 seconds
-
-Initiating PH iteration=21
-Computed objective lower bound=-110971.6327
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0546 First stage cost avg= 108604.4548 Max-Min= 2445.40
-Cumulative run-time=3.62 seconds
-
-Initiating PH iteration=22
-Computed objective lower bound=-111036.8465
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0556 First stage cost avg= 108527.2174 Max-Min= 2487.05
-Cumulative run-time=3.79 seconds
-
-Initiating PH iteration=23
-Computed objective lower bound=-111046.0537
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0564 First stage cost avg= 108458.0853 Max-Min= 2512.69
-Cumulative run-time=3.95 seconds
-
-Initiating PH iteration=24
-Computed objective lower bound=-111045.3417
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0569 First stage cost avg= 108404.1369 Max-Min= 2524.20
-Cumulative run-time=4.12 seconds
-
-Initiating PH iteration=25
-Computed objective lower bound=-111047.7122
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0570 First stage cost avg= 108367.4323 Max-Min= 2525.00
-Cumulative run-time=4.29 seconds
-
-Initiating PH iteration=26
-Computed objective lower bound=-111034.9673
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0570 First stage cost avg= 108346.6000 Max-Min= 2518.95
-Cumulative run-time=4.45 seconds
-
-Initiating PH iteration=27
-Computed objective lower bound=-111015.0786
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0569 First stage cost avg= 108338.3666 Max-Min= 2509.55
-Cumulative run-time=4.62 seconds
-
-Initiating PH iteration=28
-Computed objective lower bound=-110994.0589
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0568 First stage cost avg= 108338.8015 Max-Min= 2499.51
-Cumulative run-time=4.78 seconds
-
-Initiating PH iteration=29
-Computed objective lower bound=-110975.7531
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0566 First stage cost avg= 108344.1874 Max-Min= 2490.61
-Cumulative run-time=4.95 seconds
-
-Initiating PH iteration=30
-Computed objective lower bound=-110962.0614
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0564 First stage cost avg= 108351.5198 Max-Min= 2483.77
-Cumulative run-time=5.12 seconds
-
-Initiating PH iteration=31
-Computed objective lower bound=-110953.3937
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108358.6998 Max-Min= 2479.23
-Cumulative run-time=5.28 seconds
-
-Initiating PH iteration=32
-Computed objective lower bound=-110949.1875
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0562 First stage cost avg= 108364.5087 Max-Min= 2476.77
-Cumulative run-time=5.46 seconds
-
-Initiating PH iteration=33
-Computed objective lower bound=-110948.3798
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0562 First stage cost avg= 108368.4521 Max-Min= 2475.96
-Cumulative run-time=5.62 seconds
-
-Initiating PH iteration=34
-Computed objective lower bound=-110949.7749
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0562 First stage cost avg= 108370.5509 Max-Min= 2476.24
-Cumulative run-time=5.78 seconds
-
-Initiating PH iteration=35
-Computed objective lower bound=-110952.2889
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0562 First stage cost avg= 108371.1311 Max-Min= 2477.13
-Cumulative run-time=5.95 seconds
-
-Initiating PH iteration=36
-Computed objective lower bound=-110955.0811
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0562 First stage cost avg= 108370.6488 Max-Min= 2478.22
-Cumulative run-time=6.12 seconds
-
-Initiating PH iteration=37
-Computed objective lower bound=-110957.5941
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108369.5627 Max-Min= 2479.26
-Cumulative run-time=6.29 seconds
-
-Initiating PH iteration=38
-Computed objective lower bound=-110959.5335
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108368.2571 Max-Min= 2480.08
-Cumulative run-time=6.45 seconds
-
-Initiating PH iteration=39
-Computed objective lower bound=-110960.8119
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108367.0073 Max-Min= 2480.63
-Cumulative run-time=6.62 seconds
-
-Initiating PH iteration=40
-Computed objective lower bound=-110961.4827
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108365.9766 Max-Min= 2480.92
-Cumulative run-time=6.79 seconds
-
-Initiating PH iteration=41
-Computed objective lower bound=-110961.6761
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108365.2327 Max-Min= 2481.01
-Cumulative run-time=6.97 seconds
-
-Initiating PH iteration=42
-Computed objective lower bound=-110961.5481
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.7733 Max-Min= 2480.94
-Cumulative run-time=7.15 seconds
-
-Initiating PH iteration=43
-Computed objective lower bound=-110961.2454
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.5535 Max-Min= 2480.80
-Cumulative run-time=7.33 seconds
-
-Initiating PH iteration=44
-Computed objective lower bound=-110960.8855
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.5090 Max-Min= 2480.63
-Cumulative run-time=7.50 seconds
-
-Initiating PH iteration=45
-Computed objective lower bound=-110960.5490
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.5736 Max-Min= 2480.47
-Cumulative run-time=7.67 seconds
-
-Initiating PH iteration=46
-Computed objective lower bound=-110960.2811
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.6907 Max-Min= 2480.34
-Cumulative run-time=7.84 seconds
-
-Initiating PH iteration=47
-Computed objective lower bound=-110960.0984
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.8179 Max-Min= 2480.24
-Cumulative run-time=8.01 seconds
-
-Initiating PH iteration=48
-Computed objective lower bound=-110959.9970
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9287 Max-Min= 2480.19
-Cumulative run-time=8.18 seconds
-
-Initiating PH iteration=49
-Computed objective lower bound=-110959.9616
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108365.0097 Max-Min= 2480.16
-Cumulative run-time=8.35 seconds
-
-Initiating PH iteration=50
-Computed objective lower bound=-110959.9725
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108365.0582 Max-Min= 2480.16
-Cumulative run-time=8.52 seconds
-
-Initiating PH iteration=51
-Computed objective lower bound=-110960.0094
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108365.0782 Max-Min= 2480.17
-Cumulative run-time=8.69 seconds
-
-Initiating PH iteration=52
-Computed objective lower bound=-110960.0563
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108365.0767 Max-Min= 2480.19
-Cumulative run-time=8.86 seconds
-
-Initiating PH iteration=53
-Computed objective lower bound=-110960.1019
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108365.0617 Max-Min= 2480.21
-Cumulative run-time=9.04 seconds
-
-Initiating PH iteration=54
-Computed objective lower bound=-110960.1392
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108365.0405 Max-Min= 2480.23
-Cumulative run-time=9.21 seconds
-
-Initiating PH iteration=55
-Computed objective lower bound=-110960.1656
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108365.0185 Max-Min= 2480.24
-Cumulative run-time=9.37 seconds
-
-Initiating PH iteration=56
-Computed objective lower bound=-110960.1811
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9993 Max-Min= 2480.24
-Cumulative run-time=9.54 seconds
-
-Initiating PH iteration=57
-Computed objective lower bound=-110960.1874
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9846 Max-Min= 2480.25
-Cumulative run-time=9.72 seconds
-
-Initiating PH iteration=58
-Computed objective lower bound=-110960.1871
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9749 Max-Min= 2480.25
-Cumulative run-time=9.90 seconds
-
-Initiating PH iteration=59
-Computed objective lower bound=-110960.1829
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9697 Max-Min= 2480.25
-Cumulative run-time=10.08 seconds
-
-Initiating PH iteration=60
-Computed objective lower bound=-110960.1770
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9679 Max-Min= 2480.24
-Cumulative run-time=10.26 seconds
-
-Initiating PH iteration=61
-Computed objective lower bound=-110960.1710
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9684 Max-Min= 2480.24
-Cumulative run-time=10.43 seconds
-
-Initiating PH iteration=62
-Computed objective lower bound=-110960.1659
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9701 Max-Min= 2480.24
-Cumulative run-time=10.60 seconds
-
-Initiating PH iteration=63
-Computed objective lower bound=-110960.1622
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9723 Max-Min= 2480.24
-Cumulative run-time=10.77 seconds
-
-Initiating PH iteration=64
-Computed objective lower bound=-110960.1599
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9743 Max-Min= 2480.23
-Cumulative run-time=10.95 seconds
-
-Initiating PH iteration=65
-Computed objective lower bound=-110960.1589
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9759 Max-Min= 2480.23
-Cumulative run-time=11.14 seconds
-
-Initiating PH iteration=66
-Computed objective lower bound=-110960.1588
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9770 Max-Min= 2480.23
-Cumulative run-time=11.31 seconds
-
-Initiating PH iteration=67
-Computed objective lower bound=-110960.1593
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9775 Max-Min= 2480.23
-Cumulative run-time=11.48 seconds
-
-Initiating PH iteration=68
-Computed objective lower bound=-110960.1600
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9776 Max-Min= 2480.23
-Cumulative run-time=11.66 seconds
-
-Initiating PH iteration=69
-Computed objective lower bound=-110960.1608
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9775 Max-Min= 2480.23
-Cumulative run-time=11.85 seconds
-
-Initiating PH iteration=70
-Computed objective lower bound=-110960.1615
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9771 Max-Min= 2480.23
-Cumulative run-time=12.07 seconds
-
-Initiating PH iteration=71
-Computed objective lower bound=-110960.1620
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9768 Max-Min= 2480.23
-Cumulative run-time=12.25 seconds
-
-Initiating PH iteration=72
-Computed objective lower bound=-110960.1624
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9764 Max-Min= 2480.23
-Cumulative run-time=12.45 seconds
-
-Initiating PH iteration=73
-Computed objective lower bound=-110960.1626
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9761 Max-Min= 2480.23
-Cumulative run-time=12.64 seconds
-
-Initiating PH iteration=74
-Computed objective lower bound=-110960.1626
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9759 Max-Min= 2480.23
-Cumulative run-time=12.83 seconds
-
-Initiating PH iteration=75
-Computed objective lower bound=-110960.1625
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9758 Max-Min= 2480.23
-Cumulative run-time=13.03 seconds
-
-Initiating PH iteration=76
-Computed objective lower bound=-110960.1624
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9758 Max-Min= 2480.23
-Cumulative run-time=13.20 seconds
-
-Initiating PH iteration=77
-Computed objective lower bound=-110960.1623
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9758 Max-Min= 2480.23
-Cumulative run-time=13.38 seconds
-
-Initiating PH iteration=78
-Computed objective lower bound=-110960.1622
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9758 Max-Min= 2480.23
-Cumulative run-time=13.56 seconds
-
-Initiating PH iteration=79
-Computed objective lower bound=-110960.1622
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9758 Max-Min= 2480.23
-Cumulative run-time=13.75 seconds
-
-Initiating PH iteration=80
-Computed objective lower bound=-110960.1621
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9759 Max-Min= 2480.23
-Cumulative run-time=13.93 seconds
-
-Initiating PH iteration=81
-Computed objective lower bound=-110960.1619
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9760 Max-Min= 2480.23
-Cumulative run-time=14.12 seconds
-
-Initiating PH iteration=82
-Computed objective lower bound=-110960.1618
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9760 Max-Min= 2480.23
-Cumulative run-time=14.31 seconds
-
-Initiating PH iteration=83
-Computed objective lower bound=-110960.1619
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9761 Max-Min= 2480.23
-Cumulative run-time=14.50 seconds
-
-Initiating PH iteration=84
-Computed objective lower bound=-110960.1620
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9760 Max-Min= 2480.23
-Cumulative run-time=14.68 seconds
-
-Initiating PH iteration=85
-Computed objective lower bound=-110960.1621
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9760 Max-Min= 2480.23
-Cumulative run-time=14.87 seconds
-
-Initiating PH iteration=86
-Computed objective lower bound=-110960.1622
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9759 Max-Min= 2480.23
-Cumulative run-time=15.07 seconds
-
-Initiating PH iteration=87
-Computed objective lower bound=-110960.1622
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9759 Max-Min= 2480.23
-Cumulative run-time=15.26 seconds
-
-Initiating PH iteration=88
-Computed objective lower bound=-110960.1623
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9758 Max-Min= 2480.23
-Cumulative run-time=15.45 seconds
-
-Initiating PH iteration=89
-Computed objective lower bound=-110960.1623
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9758 Max-Min= 2480.23
-Cumulative run-time=15.64 seconds
-
-Initiating PH iteration=90
-Computed objective lower bound=-110960.1623
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9757 Max-Min= 2480.23
-Cumulative run-time=15.82 seconds
-
-Initiating PH iteration=91
-Computed objective lower bound=-110960.1623
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9757 Max-Min= 2480.23
-Cumulative run-time=16.02 seconds
-
-Initiating PH iteration=92
-Computed objective lower bound=-110960.1623
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9757 Max-Min= 2480.23
-Cumulative run-time=16.21 seconds
-
-Initiating PH iteration=93
-Computed objective lower bound=-110960.1623
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9757 Max-Min= 2480.23
-Cumulative run-time=16.40 seconds
-
-Initiating PH iteration=94
-Computed objective lower bound=-110960.1622
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9757 Max-Min= 2480.23
-Cumulative run-time=16.58 seconds
-
-Initiating PH iteration=95
-Computed objective lower bound=-110960.1622
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9757 Max-Min= 2480.23
-Cumulative run-time=16.76 seconds
-
-Initiating PH iteration=96
-Computed objective lower bound=-110960.1622
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9757 Max-Min= 2480.23
-Cumulative run-time=16.95 seconds
-
-Initiating PH iteration=97
-Computed objective lower bound=-110960.1622
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9758 Max-Min= 2480.23
-Cumulative run-time=17.17 seconds
-
-Initiating PH iteration=98
-Computed objective lower bound=-110960.1622
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9758 Max-Min= 2480.23
-Cumulative run-time=17.36 seconds
-
-Initiating PH iteration=99
-Computed objective lower bound=-110960.1622
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9758 Max-Min= 2480.23
-Cumulative run-time=17.55 seconds
-
-Initiating PH iteration=100
-Computed objective lower bound=-110960.1622
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9758 Max-Min= 2480.23
-Cumulative run-time=17.75 seconds
-Halting PH - reached maximal iteration count=100
-Number of discrete variables fixed before final plugin calls=0 (total=0)
-Number of continuous variables fixed before final plugin calls=0 (total=3)
-Computed objective lower bound=-110960.1622
-
- Iteration Bound
- Trivial -115405.555588
- 0 -112378.395154
- 1 -119146.913826
- 2 -122839.937276
- 3 -115850.228262
- 4 -114662.427763
- 5 -114508.936391
- 6 -114392.622476
- 7 -116760.95099
- 8 -115713.770411
- 9 -114886.977381
- 10 -114142.674474
- 11 -112524.04308
- 12 -111354.349714
- 13 -110712.388487
- 14 -110412.32327
- 15 -110290.355717
- 16 -110300.166904
- 17 -110407.578228
- 18 -110633.351824
- 19 -110837.34279
- 20 -110971.63266
- 21 -111036.846504
- 22 -111046.05369
- 23 -111045.341675
- 24 -111047.71221
- 25 -111034.967277
- 26 -111015.078589
- 27 -110994.058898
- 28 -110975.753079
- 29 -110962.061428
- 30 -110953.393719
- 31 -110949.187454
- 32 -110948.379773
- 33 -110949.774873
- 34 -110952.288918
- 35 -110955.081078
- 36 -110957.594134
- 37 -110959.533471
- 38 -110960.811919
- 39 -110961.482721
- 40 -110961.676069
- 41 -110961.548051
- 42 -110961.245392
- 43 -110960.885485
- 44 -110960.548967
- 45 -110960.281111
- 46 -110960.098373
- 47 -110959.997019
- 48 -110959.961634
- 49 -110959.972452
- 50 -110960.009379
- 51 -110960.056336
- 52 -110960.101879
- 53 -110960.139245
- 54 -110960.165621
- 55 -110960.181069
- 56 -110960.187384
- 57 -110960.18713
- 58 -110960.182925
- 59 -110960.176997
- 60 -110960.17098
- 61 -110960.165883
- 62 -110960.162169
- 63 -110960.159897
- 64 -110960.158872
- 65 -110960.158773
- 66 -110960.159253
- 67 -110960.16001
- 68 -110960.160813
- 69 -110960.161517
- 70 -110960.162046
- 71 -110960.162383
- 72 -110960.162551
- 73 -110960.162587
- 74 -110960.162539
- 75 -110960.162446
- 76 -110960.162341
- 77 -110960.162247
- 78 -110960.162173
- 79 -110960.162124
- 80 -110960.161856
- 81 -110960.161822
- 82 -110960.161887
- 83 -110960.161981
- 84 -110960.162077
- 85 -110960.162164
- 86 -110960.162218
- 87 -110960.16226
- 88 -110960.162284
- 89 -110960.162289
- 90 -110960.162282
- 91 -110960.162268
- 92 -110960.16225
- 93 -110960.162233
- 94 -110960.162218
- 95 -110960.162206
- 96 -110960.162196
- 97 -110960.162189
- 98 -110960.162184
- 99 -110960.16218
- 100 -110960.162232
-
-Lower bound history written to file=phbound.txt
-
-Best Objective Bound: -110290.355717
-
-Best Lower Bound written to file=phbestbound.txt
-PH algorithm history written to file=ph_history.json
-PH complete
-Convergence history:
-Iteration Metric Value
- 0 0.2540
- 1 0.1259
- 2 0.0816
- 3 0.0796
- 4 0.0776
- 5 0.0794
- 6 0.0726
- 7 0.0844
- 8 0.0727
- 9 0.0636
- 10 0.0786
- 11 0.0822
- 12 0.0773
- 13 0.0690
- 14 0.0608
- 15 0.0550
- 16 0.0518
- 17 0.0512
- 18 0.0519
- 19 0.0526
- 20 0.0533
- 21 0.0546
- 22 0.0556
- 23 0.0564
- 24 0.0569
- 25 0.0570
- 26 0.0570
- 27 0.0569
- 28 0.0568
- 29 0.0566
- 30 0.0564
- 31 0.0563
- 32 0.0562
- 33 0.0562
- 34 0.0562
- 35 0.0562
- 36 0.0562
- 37 0.0563
- 38 0.0563
- 39 0.0563
- 40 0.0563
- 41 0.0563
- 42 0.0563
- 43 0.0563
- 44 0.0563
- 45 0.0563
- 46 0.0563
- 47 0.0563
- 48 0.0563
- 49 0.0563
- 50 0.0563
- 51 0.0563
- 52 0.0563
- 53 0.0563
- 54 0.0563
- 55 0.0563
- 56 0.0563
- 57 0.0563
- 58 0.0563
- 59 0.0563
- 60 0.0563
- 61 0.0563
- 62 0.0563
- 63 0.0563
- 64 0.0563
- 65 0.0563
- 66 0.0563
- 67 0.0563
- 68 0.0563
- 69 0.0563
- 70 0.0563
- 71 0.0563
- 72 0.0563
- 73 0.0563
- 74 0.0563
- 75 0.0563
- 76 0.0563
- 77 0.0563
- 78 0.0563
- 79 0.0563
- 80 0.0563
- 81 0.0563
- 82 0.0563
- 83 0.0563
- 84 0.0563
- 85 0.0563
- 86 0.0563
- 87 0.0563
- 88 0.0563
- 89 0.0563
- 90 0.0563
- 91 0.0563
- 92 0.0563
- 93 0.0563
- 94 0.0563
- 95 0.0563
- 96 0.0563
- 97 0.0563
- 98 0.0563
- 99 0.0563
- 100 0.0563
-
-***********************************************************************************************
->>>THE EXPECTED SUM OF THE STAGE COST VARIABLES=-106862.160636<<<
->>>***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise<<<
-***********************************************************************************************
-Final number of discrete variables fixed=0 (total=0)
-Final number of continuous variables fixed=0 (total=3)
-Final variable values:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 100.0000 80.0000 87.7861 Max-Min: 20.0000 Avg: 89.2620
- Index: [SUGAR_BEETS] Values: 232.0854 233.1150 250.0000 Max-Min: 17.9146 Avg: 238.4001
- Index: [WHEAT] Values: 167.9146 186.8850 162.2139 Max-Min: 24.6711 Avg: 172.3379
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108529.3918 107042.6505 109522.8850 Max-Min: 2480.2345 Avg: 108364.9758
-Final costs:
-Scenario Tree Costs
-***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise
-----------------------------------------------------
-Tree Nodes:
-
- Name=AboveAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AboveAverageScenario
- Expected cost of (sub)tree rooted at node=-276133.5814
-
- Name=AverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AverageScenario
- Expected cost of (sub)tree rooted at node=-213268.9263
-
- Name=BelowAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-156772.1496
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- AboveAverageNode
- AverageNode
- BelowAverageNode
- Scenarios:
- AboveAverageScenario
- AverageScenario
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-106862.1606
-
-----------------------------------------------------
-Scenarios:
-
- Name=AboveAverageScenario
- Probability=0.3333
- Leaf Node=AboveAverageNode
- Tree node sequence:
- RootNode
- AboveAverageNode
- Stage= FirstStage Cost=109522.8850
- Stage= SecondStage Cost=-276133.5814
- Total scenario cost=-166610.6964
-
- Name=AverageScenario
- Probability=0.3333
- Leaf Node=AverageNode
- Tree node sequence:
- RootNode
- AverageNode
- Stage= FirstStage Cost=107042.6505
- Stage= SecondStage Cost=-213268.9263
- Total scenario cost=-106226.2758
-
- Name=BelowAverageScenario
- Probability=0.3333
- Leaf Node=BelowAverageNode
- Tree node sequence:
- RootNode
- BelowAverageNode
- Stage= FirstStage Cost=108529.3918
- Stage= SecondStage Cost=-156772.1496
- Total scenario cost=-48242.7578
-
-----------------------------------------------------
-
-Total PH execution time=17.83 seconds
-
-Scenario tree solution written to file=ph_solution.json
-Shutting down Pyro solver components
-Dispatcher received request to shut down - initiating...
-
-Total execution time=21.16 seconds
-Name Server gracefully stopped.
-Lost connection to dispatch server - shutting down...
-Lost connection to dispatch server - shutting down...
-Lost connection to dispatch server - shutting down...
diff --git a/pyomo/pysp/tests/examples/baselines/TestPHFarmerTrivialBundlesPHPyro.test9.baseline b/pyomo/pysp/tests/examples/baselines/TestPHFarmerTrivialBundlesPHPyro.test9.baseline
deleted file mode 100644
index ad3feb95138..00000000000
--- a/pyomo/pysp/tests/examples/baselines/TestPHFarmerTrivialBundlesPHPyro.test9.baseline
+++ /dev/null
@@ -1,262 +0,0 @@
-*** Pyro Name Server ***
-Name server listening on: ('0.0.0.0', 9090)
-Broadcast server listening on: ('0.0.0.0', 9090)
-URI is: PYRO://10.0.0.11:9090/0a00000b11d7220a8352d57960ef96c5100
-URI written to: /Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/pyomo/pysp/tests/examples/Pyro_NS_URI
-Name Server started.
-User-defined PH extension module=pyomo.pysp.plugins.phhistoryextension already imported - skipping
-User-defined PH extension module=pyomo.pysp.plugins.phboundextension already imported - skipping
-Dispatcher is ready.
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI:PYRO://10.0.0.11:7766/0a00000b11d7320a8352e7660909441991b
-This is worker Worker_73078@Ozymandias.local
-Listening for work from dispatcher...
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI:PYRO://10.0.0.11:7766/0a00000b11d7320a8352e7660909441991b
-This is worker Worker_73076@Ozymandias.local
-Attempting to find Pyro dispatcher object...
-Listening for work from dispatcher...
-Dispatcher Object URI:PYRO://10.0.0.11:7766/0a00000b11d7320a8352e7660909441991b
-This is worker Worker_73077@Ozymandias.local
-Listening for work from dispatcher...
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI: PYRO://10.0.0.11:7766/0a00000b11d7320a8352e7660909441991b
-This is client 73079@Ozymandias.local
-Initializing PH
-
-phboundextension using default update interval=1
-WW PH Extension: Loading user-specified configuration from file=/Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/examples/pysp/farmer/config/wwph.cfg
-WW PH Extension: Loading variable suffixes from file=/Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/examples/pysp/farmer/config/wwph.suffixes
-User-defined PH solution writer module=pyomo.pysp.plugins.jsonsolutionwriter already imported - skipping
-Starting PH
-
-Initiating PH iteration=0
-Computed objective lower bound=-115405.5556
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.2540 First stage cost avg= 113494.4444 Max-Min=10416.67
-Cumulative run-time=0.05 seconds
-
-Initiating PH iteration=1
-Computed objective lower bound=-112378.3951
-WW PH Extension: Setting mipgap to 0.1000000, as specified in the configuration file
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.1259 First stage cost avg= 113107.2221 Max-Min= 6943.89
-Cumulative run-time=0.25 seconds
-
-Initiating PH iteration=2
-WARNING: "[base]/pyomo.pysp/pyomo/pysp/plugins/phboundextension.py", 75, _compute_bound
- A nonzero mipgap was detected when using the PH bound plugin. The bound computation may as a result be conservative.
-Computed objective lower bound=-114092.2009
-WW PH Extension: Setting mipgap to 0.0500717, based on current value of the convergence metric
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0816 First stage cost avg= 112954.6296 Max-Min= 2234.82
-Cumulative run-time=0.41 seconds
-
-Initiating PH iteration=3
-WARNING: "[base]/pyomo.pysp/pyomo/pysp/plugins/phboundextension.py", 75, _compute_bound
- A nonzero mipgap was detected when using the PH bound plugin. The bound computation may as a result be conservative.
-Computed objective lower bound=-111905.7747
-WW PH Extension: Setting mipgap to 0.0327607, based on current value of the convergence metric
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0796 First stage cost avg= 112963.0248 Max-Min= 2375.31
-Cumulative run-time=0.57 seconds
-
-Initiating PH iteration=4
-WARNING: "[base]/pyomo.pysp/pyomo/pysp/plugins/phboundextension.py", 75, _compute_bound
- A nonzero mipgap was detected when using the PH bound plugin. The bound computation may as a result be conservative.
-Computed objective lower bound=-110093.7884
-WW PH Extension: Setting mipgap to 0.0319973, based on current value of the convergence metric
-Slamming criteria are satisifed - accelerating convergence
-Slamming variable=DevotedAcreage[CORN] at tree node=RootNode to value=96.8871743104; value=node average (anywhere)
-Fixing variable=DevotedAcreage[CORN] at tree node=RootNode to value=96.8871743104; converged for 0 iterations
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0776 First stage cost avg= 112915.6071 Max-Min= 3047.08
-Cumulative run-time=0.73 seconds
-
-Initiating PH iteration=5
-WARNING: "[base]/pyomo.pysp/pyomo/pysp/plugins/phboundextension.py", 75, _compute_bound
- A nonzero mipgap was detected when using the PH bound plugin. The bound computation may as a result be conservative.
-Computed objective lower bound=-109499.5161
-WW PH Extension: Setting mipgap to 0.0312342, based on current value of the convergence metric
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=1 (total=3)
-Convergence metric= 0.0609 First stage cost avg= 112895.6887 Max-Min= 5246.95
-Cumulative run-time=0.91 seconds
-
-Initiating PH iteration=6
-WARNING: "[base]/pyomo.pysp/pyomo/pysp/plugins/phboundextension.py", 75, _compute_bound
- A nonzero mipgap was detected when using the PH bound plugin. The bound computation may as a result be conservative.
-Computed objective lower bound=-109440.7805
-WW PH Extension: Setting mipgap to 0.0247045, based on current value of the convergence metric
-Slamming criteria are satisifed - accelerating convergence
-Slamming variable=DevotedAcreage[WHEAT] at tree node=RootNode to value=137.204959966; value=node average (anywhere)
-Fixing variable=DevotedAcreage[WHEAT] at tree node=RootNode to value=137.204959966; converged for 0 iterations
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=1 (total=3)
-Convergence metric= 0.0391 First stage cost avg= 112000.8391 Max-Min= 2624.80
-Cumulative run-time=1.09 seconds
-
-Initiating PH iteration=7
-WARNING: "[base]/pyomo.pysp/pyomo/pysp/plugins/phboundextension.py", 75, _compute_bound
- A nonzero mipgap was detected when using the PH bound plugin. The bound computation may as a result be conservative.
-Computed objective lower bound=-112587.0017
-WW PH Extension: Setting mipgap to 0.0161915, based on current value of the convergence metric
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=2 (total=3)
-Convergence metric= 0.0000 First stage cost avg= 112000.8392 Max-Min= 0.00
-Cumulative run-time=1.28 seconds
-PH converged - convergence metric is below threshold=0.0001
-Number of discrete variables fixed before final plugin calls=0 (total=0)
-Number of continuous variables fixed before final plugin calls=2 (total=3)
-WARNING: "[base]/pyomo.pysp/pyomo/pysp/plugins/phboundextension.py", 75, _compute_bound
- A nonzero mipgap was detected when using the PH bound plugin. The bound computation may as a result be conservative.
-Computed objective lower bound=-112587.0017
-
- Iteration Bound
- Trivial -115405.555588
- 0 -112378.395124
- 1 -114092.2009
- 2 -111905.774744
- 3 -110093.788354
- 4 -109499.516145
- 5 -109440.780542
- 6 -112587.001699
- 7 -112587.001701
-
-Lower bound history written to file=phbound.txt
-
-Best Objective Bound: -109440.780542
-
-Best Lower Bound written to file=phbestbound.txt
-WW PH extension: Fixing all discrete variables that are converged at termination
-Total number of variables fixed at PH termination due to convergence=0
-PH algorithm history written to file=ph_history.json
-PH complete
-Convergence history:
-Iteration Metric Value
- 0 0.2540
- 1 0.1259
- 2 0.0816
- 3 0.0796
- 4 0.0776
- 5 0.0609
- 6 0.0391
- 7 0.0000
-
-***********************************************************************************************
->>>THE EXPECTED SUM OF THE STAGE COST VARIABLES=-107905.908751<<<
->>>***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise<<<
-***********************************************************************************************
-Final number of discrete variables fixed=0 (total=0)
-Final number of continuous variables fixed=2 (total=3)
-Final variable values:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 96.8872 96.8872 96.8872 Max-Min: 0.0000 Avg: 96.8872
- Index: [SUGAR_BEETS] Values: 265.9079 265.9079 265.9079 Max-Min: 0.0000 Avg: 265.9079
- Index: [WHEAT] Values: 137.2050 137.2050 137.2050 Max-Min: 0.0000 Avg: 137.2050
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 112000.8392 112000.8392 112000.8391 Max-Min: 0.0000 Avg: 112000.8392
-Final costs:
-Scenario Tree Costs
-***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise
-----------------------------------------------------
-Tree Nodes:
-
- Name=AboveAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AboveAverageScenario
- Expected cost of (sub)tree rooted at node=-272111.4913
-
- Name=AverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AverageScenario
- Expected cost of (sub)tree rooted at node=-223364.9995
-
- Name=BelowAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-164243.7528
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- AboveAverageNode
- AverageNode
- BelowAverageNode
- Scenarios:
- AboveAverageScenario
- AverageScenario
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-107905.9088
-
-----------------------------------------------------
-Scenarios:
-
- Name=AboveAverageScenario
- Probability=0.3333
- Leaf Node=AboveAverageNode
- Tree node sequence:
- RootNode
- AboveAverageNode
- Stage= FirstStage Cost=112000.8391
- Stage= SecondStage Cost=-272111.4913
- Total scenario cost=-160110.6522
-
- Name=AverageScenario
- Probability=0.3333
- Leaf Node=AverageNode
- Tree node sequence:
- RootNode
- AverageNode
- Stage= FirstStage Cost=112000.8392
- Stage= SecondStage Cost=-223364.9995
- Total scenario cost=-111364.1604
-
- Name=BelowAverageScenario
- Probability=0.3333
- Leaf Node=BelowAverageNode
- Tree node sequence:
- RootNode
- BelowAverageNode
- Stage= FirstStage Cost=112000.8392
- Stage= SecondStage Cost=-164243.7528
- Total scenario cost=-52242.9136
-
-----------------------------------------------------
-
-Total PH execution time=1.38 seconds
-
-Scenario tree solution written to file=ph_solution.json
-Shutting down Pyro solver components
-Dispatcher received request to shut down - initiating...
-
-Total execution time=4.71 seconds
-Lost connection to dispatch server - shutting down...
-Lost connection to dispatch server - shutting down...
-Lost connection to dispatch server - shutting down...
-Name Server gracefully stopped.
diff --git a/pyomo/pysp/tests/examples/baselines/TestPHFarmerTrivialBundlesPyro.test1.baseline b/pyomo/pysp/tests/examples/baselines/TestPHFarmerTrivialBundlesPyro.test1.baseline
deleted file mode 100644
index 0da758eefa6..00000000000
--- a/pyomo/pysp/tests/examples/baselines/TestPHFarmerTrivialBundlesPyro.test1.baseline
+++ /dev/null
@@ -1,579 +0,0 @@
-*** Pyro Name Server ***
-Name server listening on: ('0.0.0.0', 9090)
-Broadcast server listening on: ('0.0.0.0', 9090)
-URI is: PYRO://10.0.0.15:9090/0a00000f320d20a08d11b01648d0ac43c6
-URI written to: /Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/pyomo/pysp/tests/examples/Pyro_NS_URI
-Name Server started.
-User-defined PH extension module=pyomo.pysp.plugins.phhistoryextension already imported - skipping
-Dispatcher is ready.
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI:PYRO://10.0.0.15:7766/0a00000f320e20a08d12d0a5b0b7406aef
-This is worker Worker_12815@Ozymandias.local
-Listening for work from dispatcher...
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI: PYRO://10.0.0.15:7766/0a00000f320e20a08d12d0a5b0b7406aef
-This is client 12816@Ozymandias.local
-Initializing PH
-
-User-defined PH solution writer module=pyomo.pysp.plugins.jsonsolutionwriter already imported - skipping
-Starting PH
-
-Initiating PH iteration=0
-2014-05-28 18:05:35.014322: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpK7ZQEU.tmpOnfhE3.pyomo.lp
-2014-05-28 18:05:35.029935: Solve completed - number of solutions=1
-2014-05-28 18:05:35.042568: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpOokguj.tmp5QUVM_.pyomo.lp
-2014-05-28 18:05:35.057475: Solve completed - number of solutions=1
-2014-05-28 18:05:35.069827: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp2h9QTd.tmp3Qb167.pyomo.lp
-2014-05-28 18:05:35.084781: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.2540 First stage cost avg= 113494.4444 Max-Min=10416.67
-Cumulative run-time=0.16 seconds
-
-Initiating PH iteration=1
-2014-05-28 18:05:35.098419: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpvzf3N2.tmpFmXMI1.pyomo.lp
-2014-05-28 18:05:35.117126: Solve completed - number of solutions=1
-2014-05-28 18:05:35.130052: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmppwAklH.tmpVuamea.pyomo.lp
-2014-05-28 18:05:35.147987: Solve completed - number of solutions=1
-2014-05-28 18:05:35.161079: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpCfxR4C.tmppUJwCX.pyomo.lp
-2014-05-28 18:05:35.179987: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.1259 First stage cost avg= 113107.2221 Max-Min= 6943.89
-Cumulative run-time=0.25 seconds
-
-Initiating PH iteration=2
-2014-05-28 18:05:35.193674: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpMA7He2.tmpW4L_6y.pyomo.lp
-2014-05-28 18:05:35.215633: Solve completed - number of solutions=1
-2014-05-28 18:05:35.229007: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpGGKuS1.tmptN82pv.pyomo.lp
-2014-05-28 18:05:35.250563: Solve completed - number of solutions=1
-2014-05-28 18:05:35.265000: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpkvKI5l.tmprB7uhV.pyomo.lp
-2014-05-28 18:05:35.286571: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0816 First stage cost avg= 112954.6296 Max-Min= 2234.82
-Cumulative run-time=0.36 seconds
-
-Initiating PH iteration=3
-2014-05-28 18:05:35.300597: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpxlMIgS.tmpSJTBFU.pyomo.lp
-2014-05-28 18:05:35.326492: Solve completed - number of solutions=1
-2014-05-28 18:05:35.340940: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpQPGu0T.tmpYIRfR_.pyomo.lp
-2014-05-28 18:05:35.364749: Solve completed - number of solutions=1
-2014-05-28 18:05:35.377691: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpnK81nB.tmpMyDpKh.pyomo.lp
-2014-05-28 18:05:35.400316: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0796 First stage cost avg= 112963.0248 Max-Min= 2375.31
-Cumulative run-time=0.47 seconds
-
-Initiating PH iteration=4
-2014-05-28 18:05:35.416652: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp4ilmRp.tmpsjvQxw.pyomo.lp
-2014-05-28 18:05:35.441226: Solve completed - number of solutions=1
-2014-05-28 18:05:35.456446: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpK9La3z.tmpIcLgxh.pyomo.lp
-2014-05-28 18:05:35.478037: Solve completed - number of solutions=1
-2014-05-28 18:05:35.491369: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpR2OzhH.tmphjtR7m.pyomo.lp
-2014-05-28 18:05:35.511814: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0776 First stage cost avg= 112915.6071 Max-Min= 3047.08
-Cumulative run-time=0.58 seconds
-
-Initiating PH iteration=5
-2014-05-28 18:05:35.524843: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp3r4ZFA.tmpQ88Vrg.pyomo.lp
-2014-05-28 18:05:35.547211: Solve completed - number of solutions=1
-2014-05-28 18:05:35.560991: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpB9wePM.tmpCg_EdO.pyomo.lp
-2014-05-28 18:05:35.584271: Solve completed - number of solutions=1
-2014-05-28 18:05:35.597873: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpSkLd8h.tmpUW9vSg.pyomo.lp
-2014-05-28 18:05:35.621484: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0794 First stage cost avg= 112825.3926 Max-Min= 3339.81
-Cumulative run-time=0.69 seconds
-
-Initiating PH iteration=6
-2014-05-28 18:05:35.637038: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpwDErxY.tmp9E_JN4.pyomo.lp
-2014-05-28 18:05:35.660940: Solve completed - number of solutions=1
-2014-05-28 18:05:35.674872: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpM_tB59.tmpjfQmaX.pyomo.lp
-2014-05-28 18:05:35.696372: Solve completed - number of solutions=1
-2014-05-28 18:05:35.710406: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp9Ie3jM.tmpHYLtQb.pyomo.lp
-2014-05-28 18:05:35.726824: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0668 First stage cost avg= 112317.9502 Max-Min= 2019.60
-Cumulative run-time=0.80 seconds
-
-Initiating PH iteration=7
-2014-05-28 18:05:35.739592: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpzC1U7l.tmpPsPjku.pyomo.lp
-2014-05-28 18:05:35.760038: Solve completed - number of solutions=1
-2014-05-28 18:05:35.772806: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpAABIMi.tmpij_Q6l.pyomo.lp
-2014-05-28 18:05:35.790573: Solve completed - number of solutions=1
-2014-05-28 18:05:35.804233: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpwoaeuo.tmpWKzKPt.pyomo.lp
-2014-05-28 18:05:35.825087: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0542 First stage cost avg= 111364.4660 Max-Min= 1181.85
-Cumulative run-time=0.90 seconds
-
-Initiating PH iteration=8
-2014-05-28 18:05:35.839872: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp4angK5.tmp5YmdqO.pyomo.lp
-2014-05-28 18:05:35.865299: Solve completed - number of solutions=1
-2014-05-28 18:05:35.879647: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpzJIXFo.tmppVwSpl.pyomo.lp
-2014-05-28 18:05:35.906580: Solve completed - number of solutions=1
-2014-05-28 18:05:35.922334: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpH0WWFx.tmpc09I59.pyomo.lp
-2014-05-28 18:05:35.945926: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0360 First stage cost avg= 110283.4074 Max-Min= 463.23
-Cumulative run-time=1.02 seconds
-
-Initiating PH iteration=9
-2014-05-28 18:05:35.958710: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpn1VNq4.tmp63C5t6.pyomo.lp
-2014-05-28 18:05:35.982434: Solve completed - number of solutions=1
-2014-05-28 18:05:35.995232: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpxwGR7i.tmpois_WK.pyomo.lp
-2014-05-28 18:05:36.017873: Solve completed - number of solutions=1
-2014-05-28 18:05:36.031475: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpVg9mW8.tmpSumEkW.pyomo.lp
-2014-05-28 18:05:36.054715: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0243 First stage cost avg= 109399.2542 Max-Min= 363.90
-Cumulative run-time=1.13 seconds
-
-Initiating PH iteration=10
-2014-05-28 18:05:36.068815: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpaLLcNK.tmpO0tr9z.pyomo.lp
-2014-05-28 18:05:36.095651: Solve completed - number of solutions=1
-2014-05-28 18:05:36.108966: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp6adM_H.tmp40UZgY.pyomo.lp
-2014-05-28 18:05:36.131619: Solve completed - number of solutions=1
-2014-05-28 18:05:36.145714: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpMbvYKF.tmp_0N9rG.pyomo.lp
-2014-05-28 18:05:36.165209: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0256 First stage cost avg= 108834.1930 Max-Min= 933.90
-Cumulative run-time=1.24 seconds
-
-Initiating PH iteration=11
-2014-05-28 18:05:36.178791: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpcqCiRn.tmp662pbP.pyomo.lp
-2014-05-28 18:05:36.197584: Solve completed - number of solutions=1
-2014-05-28 18:05:36.210146: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp__5TT6.tmptNsaDv.pyomo.lp
-2014-05-28 18:05:36.228265: Solve completed - number of solutions=1
-2014-05-28 18:05:36.240980: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpb23TtZ.tmpIzmXoI.pyomo.lp
-2014-05-28 18:05:36.259253: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0248 First stage cost avg= 108575.3219 Max-Min= 918.57
-Cumulative run-time=1.33 seconds
-
-Initiating PH iteration=12
-2014-05-28 18:05:36.271849: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpTdilsj.tmpf7zKiE.pyomo.lp
-2014-05-28 18:05:36.291504: Solve completed - number of solutions=1
-2014-05-28 18:05:36.304149: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp_ir8IJ.tmpJQRfkY.pyomo.lp
-2014-05-28 18:05:36.322540: Solve completed - number of solutions=1
-2014-05-28 18:05:36.335234: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpr8Xq_n.tmp7gXjYa.pyomo.lp
-2014-05-28 18:05:36.353126: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0163 First stage cost avg= 108513.5347 Max-Min= 591.25
-Cumulative run-time=1.42 seconds
-
-Initiating PH iteration=13
-2014-05-28 18:05:36.368202: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp8k5WHy.tmpxB4Z_k.pyomo.lp
-2014-05-28 18:05:36.387867: Solve completed - number of solutions=1
-2014-05-28 18:05:36.401433: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpK7_diq.tmpxfvMOO.pyomo.lp
-2014-05-28 18:05:36.419373: Solve completed - number of solutions=1
-2014-05-28 18:05:36.431955: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpXfWgPj.tmpRNeWoR.pyomo.lp
-2014-05-28 18:05:36.449876: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0081 First stage cost avg= 108528.2899 Max-Min= 175.95
-Cumulative run-time=1.52 seconds
-
-Initiating PH iteration=14
-2014-05-28 18:05:36.462509: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpd_2GNF.tmpELo06T.pyomo.lp
-2014-05-28 18:05:36.480869: Solve completed - number of solutions=1
-2014-05-28 18:05:36.494434: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmptVXZyZ.tmpjNw2_n.pyomo.lp
-2014-05-28 18:05:36.512557: Solve completed - number of solutions=1
-2014-05-28 18:05:36.525331: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpes3TRP.tmp7vPtWQ.pyomo.lp
-2014-05-28 18:05:36.543845: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0168 First stage cost avg= 108561.6577 Max-Min= 274.77
-Cumulative run-time=1.61 seconds
-
-Initiating PH iteration=15
-2014-05-28 18:05:36.557089: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpps0pqv.tmpSQbno8.pyomo.lp
-2014-05-28 18:05:36.575933: Solve completed - number of solutions=1
-2014-05-28 18:05:36.588800: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpitpvin.tmpBSlaVu.pyomo.lp
-2014-05-28 18:05:36.607622: Solve completed - number of solutions=1
-2014-05-28 18:05:36.620424: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpnnygBs.tmp90FaU5.pyomo.lp
-2014-05-28 18:05:36.638090: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0163 First stage cost avg= 108604.0579 Max-Min= 295.14
-Cumulative run-time=1.71 seconds
-
-Initiating PH iteration=16
-2014-05-28 18:05:36.651668: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpZEbe21.tmpWrzKSK.pyomo.lp
-2014-05-28 18:05:36.671554: Solve completed - number of solutions=1
-2014-05-28 18:05:36.684487: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpnoIpll.tmpZSebpu.pyomo.lp
-2014-05-28 18:05:36.702839: Solve completed - number of solutions=1
-2014-05-28 18:05:36.715489: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpOVxehX.tmpp8Y_rJ.pyomo.lp
-2014-05-28 18:05:36.733486: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0098 First stage cost avg= 108667.3583 Max-Min= 127.67
-Cumulative run-time=1.80 seconds
-
-Initiating PH iteration=17
-2014-05-28 18:05:36.748095: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpBBcJE7.tmpSwq48W.pyomo.lp
-2014-05-28 18:05:36.768546: Solve completed - number of solutions=1
-2014-05-28 18:05:36.781806: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpUgGrV2.tmpGQ6nT5.pyomo.lp
-2014-05-28 18:05:36.806493: Solve completed - number of solutions=1
-2014-05-28 18:05:36.821596: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmppeKhGx.tmphYfTuv.pyomo.lp
-2014-05-28 18:05:36.845335: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0032 First stage cost avg= 108758.4237 Max-Min= 59.69
-Cumulative run-time=1.92 seconds
-
-Initiating PH iteration=18
-2014-05-28 18:05:36.859865: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpWumPCa.tmpfYp7TW.pyomo.lp
-2014-05-28 18:05:36.882186: Solve completed - number of solutions=1
-2014-05-28 18:05:36.894910: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpXVJWXq.tmp5kIBNp.pyomo.lp
-2014-05-28 18:05:36.916514: Solve completed - number of solutions=1
-2014-05-28 18:05:36.929096: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpmKD_iZ.tmpNLsb7N.pyomo.lp
-2014-05-28 18:05:36.945850: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0026 First stage cost avg= 108868.1277 Max-Min= 101.79
-Cumulative run-time=2.02 seconds
-
-Initiating PH iteration=19
-2014-05-28 18:05:36.991280: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpLbhBji.tmp8VxLGa.pyomo.lp
-2014-05-28 18:05:37.009542: Solve completed - number of solutions=1
-2014-05-28 18:05:37.022450: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpohgtw3.tmpJJh7RM.pyomo.lp
-2014-05-28 18:05:37.041133: Solve completed - number of solutions=1
-2014-05-28 18:05:37.053796: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpR4aatw.tmp3lcQ3b.pyomo.lp
-2014-05-28 18:05:37.071809: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0039 First stage cost avg= 108975.3089 Max-Min= 73.41
-Cumulative run-time=2.14 seconds
-
-Initiating PH iteration=20
-2014-05-28 18:05:37.084612: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpFuLvtE.tmp0ahWxo.pyomo.lp
-2014-05-28 18:05:37.104477: Solve completed - number of solutions=1
-2014-05-28 18:05:37.117147: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpCl3qlu.tmpvAFfqu.pyomo.lp
-2014-05-28 18:05:37.135792: Solve completed - number of solutions=1
-2014-05-28 18:05:37.149296: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpDs40qt.tmpxQhyLD.pyomo.lp
-2014-05-28 18:05:37.167166: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0043 First stage cost avg= 109057.4144 Max-Min= 39.47
-Cumulative run-time=2.24 seconds
-
-Initiating PH iteration=21
-2014-05-28 18:05:37.180732: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpyMrlSN.tmpI_rzEu.pyomo.lp
-2014-05-28 18:05:37.199915: Solve completed - number of solutions=1
-2014-05-28 18:05:37.212520: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpbyUoA5.tmpknyHvw.pyomo.lp
-2014-05-28 18:05:37.230728: Solve completed - number of solutions=1
-2014-05-28 18:05:37.243691: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp0XUx0R.tmppJ6GWG.pyomo.lp
-2014-05-28 18:05:37.262025: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0044 First stage cost avg= 109099.7145 Max-Min= 87.57
-Cumulative run-time=2.33 seconds
-
-Initiating PH iteration=22
-2014-05-28 18:05:37.275729: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpKmenn3.tmpapaCBh.pyomo.lp
-2014-05-28 18:05:37.294696: Solve completed - number of solutions=1
-2014-05-28 18:05:37.307335: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpGGIh9b.tmpyTnTSx.pyomo.lp
-2014-05-28 18:05:37.325719: Solve completed - number of solutions=1
-2014-05-28 18:05:37.338389: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpPKG6jR.tmpzxkYG5.pyomo.lp
-2014-05-28 18:05:37.356754: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0040 First stage cost avg= 109099.1239 Max-Min= 104.22
-Cumulative run-time=2.43 seconds
-
-Initiating PH iteration=23
-2014-05-28 18:05:37.369490: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpzJWc1p.tmpVsXOoh.pyomo.lp
-2014-05-28 18:05:37.388344: Solve completed - number of solutions=1
-2014-05-28 18:05:37.400904: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpaxDOrh.tmpwOUBEz.pyomo.lp
-2014-05-28 18:05:37.418920: Solve completed - number of solutions=1
-2014-05-28 18:05:37.431575: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpFuTNX5.tmpHj6lc4.pyomo.lp
-2014-05-28 18:05:37.449947: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0032 First stage cost avg= 109062.8322 Max-Min= 88.54
-Cumulative run-time=2.52 seconds
-
-Initiating PH iteration=24
-2014-05-28 18:05:37.463536: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpeFOnJN.tmpxwGlUn.pyomo.lp
-2014-05-28 18:05:37.483511: Solve completed - number of solutions=1
-2014-05-28 18:05:37.496321: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpcchqtb.tmpcswbMX.pyomo.lp
-2014-05-28 18:05:37.514909: Solve completed - number of solutions=1
-2014-05-28 18:05:37.527614: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp2yRrv1.tmpm_sOXt.pyomo.lp
-2014-05-28 18:05:37.545701: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0021 First stage cost avg= 109004.1156 Max-Min= 54.49
-Cumulative run-time=2.62 seconds
-
-Initiating PH iteration=25
-2014-05-28 18:05:37.558394: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpXMNx6h.tmpgzFnMm.pyomo.lp
-2014-05-28 18:05:37.577702: Solve completed - number of solutions=1
-2014-05-28 18:05:37.590904: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp_FYmxR.tmpYi0N5T.pyomo.lp
-2014-05-28 18:05:37.609247: Solve completed - number of solutions=1
-2014-05-28 18:05:37.622113: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpElnBiS.tmptEERmv.pyomo.lp
-2014-05-28 18:05:37.640501: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0008 First stage cost avg= 108937.8039 Max-Min= 16.89
-Cumulative run-time=2.71 seconds
-
-Initiating PH iteration=26
-2014-05-28 18:05:37.655640: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpgxvo90.tmpICBiC4.pyomo.lp
-2014-05-28 18:05:37.675054: Solve completed - number of solutions=1
-2014-05-28 18:05:37.687626: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpPgqmYC.tmp9XXSE_.pyomo.lp
-2014-05-28 18:05:37.705423: Solve completed - number of solutions=1
-2014-05-28 18:05:37.718981: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpypxoxd.tmpysRAAp.pyomo.lp
-2014-05-28 18:05:37.738387: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0005 First stage cost avg= 108876.8822 Max-Min= 14.27
-Cumulative run-time=2.81 seconds
-
-Initiating PH iteration=27
-2014-05-28 18:05:37.751072: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpfB20kn.tmpmmDAYq.pyomo.lp
-2014-05-28 18:05:37.769493: Solve completed - number of solutions=1
-2014-05-28 18:05:37.783322: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp2dv2le.tmpTBseUj.pyomo.lp
-2014-05-28 18:05:37.801420: Solve completed - number of solutions=1
-2014-05-28 18:05:37.813935: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmppKnJH5.tmpJWHfV5.pyomo.lp
-2014-05-28 18:05:37.832043: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0015 First stage cost avg= 108830.6201 Max-Min= 34.81
-Cumulative run-time=2.90 seconds
-
-Initiating PH iteration=28
-2014-05-28 18:05:37.845595: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp7by08i.tmpUcHHdI.pyomo.lp
-2014-05-28 18:05:37.864860: Solve completed - number of solutions=1
-2014-05-28 18:05:37.878414: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpnuR90D.tmpY_eifI.pyomo.lp
-2014-05-28 18:05:37.896717: Solve completed - number of solutions=1
-2014-05-28 18:05:37.909923: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpmByfkW.tmpWqNakG.pyomo.lp
-2014-05-28 18:05:37.933817: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0021 First stage cost avg= 108803.9655 Max-Min= 44.57
-Cumulative run-time=3.01 seconds
-
-Initiating PH iteration=29
-2014-05-28 18:05:37.948827: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp9fH7hC.tmpNxtA3Q.pyomo.lp
-2014-05-28 18:05:37.974671: Solve completed - number of solutions=1
-2014-05-28 18:05:37.990311: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpPxOii2.tmpl3SbVP.pyomo.lp
-2014-05-28 18:05:38.013126: Solve completed - number of solutions=1
-2014-05-28 18:05:38.025711: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpkL3kLV.tmpzZqCI6.pyomo.lp
-2014-05-28 18:05:38.049287: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0023 First stage cost avg= 108797.7661 Max-Min= 45.24
-Cumulative run-time=3.12 seconds
-
-Initiating PH iteration=30
-2014-05-28 18:05:38.062630: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpzPdfa9.tmpxOuo4R.pyomo.lp
-2014-05-28 18:05:38.083414: Solve completed - number of solutions=1
-2014-05-28 18:05:38.096627: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpl3kIyb.tmpWbYWNf.pyomo.lp
-2014-05-28 18:05:38.118132: Solve completed - number of solutions=1
-2014-05-28 18:05:38.131446: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp7utWsa.tmpQbccV_.pyomo.lp
-2014-05-28 18:05:38.151087: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0020 First stage cost avg= 108809.4793 Max-Min= 39.01
-Cumulative run-time=3.22 seconds
-
-Initiating PH iteration=31
-2014-05-28 18:05:38.163584: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpMHYGt3.tmpk2yQHy.pyomo.lp
-2014-05-28 18:05:38.181651: Solve completed - number of solutions=1
-2014-05-28 18:05:38.195244: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpQHUXwv.tmptaOnyP.pyomo.lp
-2014-05-28 18:05:38.212840: Solve completed - number of solutions=1
-2014-05-28 18:05:38.225518: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmprs8jfJ.tmp91uUeb.pyomo.lp
-2014-05-28 18:05:38.243809: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0015 First stage cost avg= 108834.1639 Max-Min= 28.07
-Cumulative run-time=3.31 seconds
-
-Initiating PH iteration=32
-2014-05-28 18:05:38.256828: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpVNDwIJ.tmpiN8lZO.pyomo.lp
-2014-05-28 18:05:38.275759: Solve completed - number of solutions=1
-2014-05-28 18:05:38.289298: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpaFQLo2.tmpNKGL2q.pyomo.lp
-2014-05-28 18:05:38.306985: Solve completed - number of solutions=1
-2014-05-28 18:05:38.319667: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp87WRkQ.tmpQ3K0le.pyomo.lp
-2014-05-28 18:05:38.337546: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0008 First stage cost avg= 108865.6237 Max-Min= 14.67
-Cumulative run-time=3.41 seconds
-
-Initiating PH iteration=33
-2014-05-28 18:05:38.351196: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpubVlLJ.tmpbQPM82.pyomo.lp
-2014-05-28 18:05:38.370289: Solve completed - number of solutions=1
-2014-05-28 18:05:38.383859: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpZgZpyp.tmp91n7yO.pyomo.lp
-2014-05-28 18:05:38.402768: Solve completed - number of solutions=1
-2014-05-28 18:05:38.415446: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpSGUr8x.tmprtSLX_.pyomo.lp
-2014-05-28 18:05:38.433749: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0001 First stage cost avg= 108897.5679 Max-Min= 1.06
-Cumulative run-time=3.50 seconds
-PH converged - convergence metric is below threshold=0.0001
-Number of discrete variables fixed before final plugin calls=0 (total=0)
-Number of continuous variables fixed before final plugin calls=0 (total=3)
-PH algorithm history written to file=ph_history.json
-PH complete
-Convergence history:
-Iteration Metric Value
- 0 0.2540
- 1 0.1259
- 2 0.0816
- 3 0.0796
- 4 0.0776
- 5 0.0794
- 6 0.0668
- 7 0.0542
- 8 0.0360
- 9 0.0243
- 10 0.0256
- 11 0.0248
- 12 0.0163
- 13 0.0081
- 14 0.0168
- 15 0.0163
- 16 0.0098
- 17 0.0032
- 18 0.0026
- 19 0.0039
- 20 0.0043
- 21 0.0044
- 22 0.0040
- 23 0.0032
- 24 0.0021
- 25 0.0008
- 26 0.0005
- 27 0.0015
- 28 0.0021
- 29 0.0023
- 30 0.0020
- 31 0.0015
- 32 0.0008
- 33 0.0001
-
-***********************************************************************************************
->>>THE EXPECTED SUM OF THE STAGE COST VARIABLES=-108388.378639<<<
->>>***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise<<<
-***********************************************************************************************
-Final number of discrete variables fixed=0 (total=0)
-Final number of continuous variables fixed=0 (total=3)
-Final variable values:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 79.9844 80.0000 79.9768 Max-Min: 0.0232 Avg: 79.9871
- Index: [SUGAR_BEETS] Values: 249.9848 249.9770 250.0000 Max-Min: 0.0230 Avg: 249.9873
- Index: [WHEAT] Values: 170.0308 170.0230 170.0232 Max-Min: 0.0078 Avg: 170.0256
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108897.0836 108897.4725 108898.1476 Max-Min: 1.0640 Avg: 108897.5679
-Final costs:
-Scenario Tree Costs
-***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise
-----------------------------------------------------
-Tree Nodes:
-
- Name=AboveAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AboveAverageScenario
- Expected cost of (sub)tree rooted at node=-275899.3041
-
- Name=AverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AverageScenario
- Expected cost of (sub)tree rooted at node=-218243.2209
-
- Name=BelowAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-157713.8615
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- AboveAverageNode
- AverageNode
- BelowAverageNode
- Scenarios:
- AboveAverageScenario
- AverageScenario
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-108388.3786
-
-----------------------------------------------------
-Scenarios:
-
- Name=AboveAverageScenario
- Probability=0.3333
- Leaf Node=AboveAverageNode
- Tree node sequence:
- RootNode
- AboveAverageNode
- Stage= FirstStage Cost=108898.1476
- Stage= SecondStage Cost=-275899.3041
- Total scenario cost=-167001.1565
-
- Name=AverageScenario
- Probability=0.3333
- Leaf Node=AverageNode
- Tree node sequence:
- RootNode
- AverageNode
- Stage= FirstStage Cost=108897.4725
- Stage= SecondStage Cost=-218243.2209
- Total scenario cost=-109345.7484
-
- Name=BelowAverageScenario
- Probability=0.3333
- Leaf Node=BelowAverageNode
- Tree node sequence:
- RootNode
- BelowAverageNode
- Stage= FirstStage Cost=108897.0836
- Stage= SecondStage Cost=-157713.8615
- Total scenario cost=-48816.7780
-
-----------------------------------------------------
-
-Total PH execution time=3.51 seconds
-
-Scenario tree solution written to file=ph_solution.json
-Shutting down Pyro solver components
-Dispatcher received request to shut down - initiating...
-
-Total execution time=6.56 seconds
-Name Server gracefully stopped.
-Lost connection to dispatch server - shutting down...
diff --git a/pyomo/pysp/tests/examples/baselines/TestPHFarmerTrivialBundlesPyro.test10.baseline b/pyomo/pysp/tests/examples/baselines/TestPHFarmerTrivialBundlesPyro.test10.baseline
deleted file mode 100644
index ae6175c405a..00000000000
--- a/pyomo/pysp/tests/examples/baselines/TestPHFarmerTrivialBundlesPyro.test10.baseline
+++ /dev/null
@@ -1,352 +0,0 @@
-*** Pyro Name Server ***
-Name server listening on: ('0.0.0.0', 9090)
-Broadcast server listening on: ('0.0.0.0', 9090)
-URI is: PYRO://10.0.0.11:9090/0a00000b11e3820a83535248afd8ba59492
-URI written to: /Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/pyomo/pysp/tests/examples/Pyro_NS_URI
-Name Server started.
-User-defined PH extension module=pyomo.pysp.plugins.phhistoryextension already imported - skipping
-User-defined PH extension module=pyomo.pysp.plugins.convexhullboundextension already imported - skipping
-Dispatcher is ready.
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI:PYRO://10.0.0.11:7766/0a00000b11e3920a8353646df20d720e74d
-This is worker Worker_73274@Ozymandias.local
-Listening for work from dispatcher...
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI: PYRO://10.0.0.11:7766/0a00000b11e3920a8353646df20d720e74d
-This is client 73275@Ozymandias.local
-Initializing PH
-
-convexhullboundextension using default update interval=1
-WARNING: No construction rule or expression specified for constraint 'W_Balance'
-WARNING: No construction rule or expression specified for constraint 'V_Bound'
-WW PH Extension: Loading user-specified configuration from file=/Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/examples/pysp/farmer/config/wwph.cfg
-WW PH Extension: Loading variable suffixes from file=/Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/examples/pysp/farmer/config/wwph.suffixes
-User-defined PH solution writer module=pyomo.pysp.plugins.jsonsolutionwriter already imported - skipping
-Starting PH
-
-Initiating PH iteration=0
-2014-06-12 14:55:31.373038: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpue34oj.tmpi5bXM7.pyomo.lp
-2014-06-12 14:55:31.392831: Solve completed - number of solutions=1
-2014-06-12 14:55:31.407837: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpPz4bb9.tmpYu6Imk.pyomo.lp
-2014-06-12 14:55:31.426137: Solve completed - number of solutions=1
-2014-06-12 14:55:31.440269: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp6TYA_q.tmp61gxez.pyomo.lp
-2014-06-12 14:55:31.458003: Solve completed - number of solutions=1
-Computed objective lower bound=-115405.5556
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.2540 First stage cost avg= 113494.4444 Max-Min=10416.67
-Cumulative run-time=0.19 seconds
-
-Initiating PH iteration=1
-2014-06-12 14:55:31.503616: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp66A5FG.tmpSbgPjR.pyomo.lp
-2014-06-12 14:55:31.524715: Solve completed - number of solutions=1
-2014-06-12 14:55:31.539144: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpr52brH.tmpL6yd0i.pyomo.lp
-2014-06-12 14:55:31.557581: Solve completed - number of solutions=1
-2014-06-12 14:55:31.572372: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp9aEDW0.tmpmV9bRO.pyomo.lp
-2014-06-12 14:55:31.589823: Solve completed - number of solutions=1
-Computed objective lower bound=-112378.3952
-WW PH Extension: Setting mipgap to 0.1000000, as specified in the configuration file
-2014-06-12 14:55:31.636602: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpMKvUlq.tmpM_Z5xY.pyomo.lp
-2014-06-12 14:55:31.657563: Solve completed - number of solutions=1
-2014-06-12 14:55:31.671746: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpWd9wnF.tmpclu6g6.pyomo.lp
-2014-06-12 14:55:31.694141: Solve completed - number of solutions=1
-2014-06-12 14:55:31.709108: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpUIlGH2.tmpUsiK5A.pyomo.lp
-2014-06-12 14:55:31.730931: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.1259 First stage cost avg= 113107.2221 Max-Min= 6943.89
-Cumulative run-time=0.44 seconds
-
-Initiating PH iteration=2
-2014-06-12 14:55:31.745051: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpVby1l6.tmpJC7C__.pyomo.lp
-2014-06-12 14:55:31.764427: Solve completed - number of solutions=1
-2014-06-12 14:55:31.778568: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp8D3UJU.tmpPCjcx1.pyomo.lp
-2014-06-12 14:55:31.795631: Solve completed - number of solutions=1
-2014-06-12 14:55:31.809615: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpdy56mW.tmpOLEgoW.pyomo.lp
-2014-06-12 14:55:31.829387: Solve completed - number of solutions=1
-WARNING: "[base]/pyomo.pysp/pyomo/pysp/plugins/phboundextension.py", 75, _compute_bound
- A nonzero mipgap was detected when using the PH bound plugin. The bound computation may as a result be conservative.
-Computed objective lower bound=-119146.9138
-WW PH Extension: Setting mipgap to 0.0500717, based on current value of the convergence metric
-2014-06-12 14:55:31.875238: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpSC1oQC.tmpNpkWiN.pyomo.lp
-2014-06-12 14:55:31.895882: Solve completed - number of solutions=1
-2014-06-12 14:55:31.910043: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpfgwb4T.tmpuhzRlZ.pyomo.lp
-2014-06-12 14:55:31.931827: Solve completed - number of solutions=1
-2014-06-12 14:55:31.946151: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpDf7FqR.tmpKouKT3.pyomo.lp
-2014-06-12 14:55:31.967379: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0816 First stage cost avg= 112954.6296 Max-Min= 2234.82
-Cumulative run-time=0.67 seconds
-
-Initiating PH iteration=3
-2014-06-12 14:55:31.980201: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpDo359M.tmp_Gqo96.pyomo.lp
-2014-06-12 14:55:31.999476: Solve completed - number of solutions=1
-2014-06-12 14:55:32.015179: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpElreL3.tmp5Mg13y.pyomo.lp
-2014-06-12 14:55:32.032979: Solve completed - number of solutions=1
-2014-06-12 14:55:32.047672: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpcSN4V3.tmpB9DwiL.pyomo.lp
-2014-06-12 14:55:32.065017: Solve completed - number of solutions=1
-WARNING: "[base]/pyomo.pysp/pyomo/pysp/plugins/phboundextension.py", 75, _compute_bound
- A nonzero mipgap was detected when using the PH bound plugin. The bound computation may as a result be conservative.
-Computed objective lower bound=-122839.9373
-WW PH Extension: Setting mipgap to 0.0327607, based on current value of the convergence metric
-2014-06-12 14:55:32.110701: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpPIjBOM.tmpHDiJ_Y.pyomo.lp
-2014-06-12 14:55:32.132345: Solve completed - number of solutions=1
-2014-06-12 14:55:32.148002: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpYFy3xN.tmpV5KiPL.pyomo.lp
-2014-06-12 14:55:32.169924: Solve completed - number of solutions=1
-2014-06-12 14:55:32.184366: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpr1IBNv.tmpKTYy96.pyomo.lp
-2014-06-12 14:55:32.204379: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0796 First stage cost avg= 112963.0248 Max-Min= 2375.31
-Cumulative run-time=0.91 seconds
-
-Initiating PH iteration=4
-2014-06-12 14:55:32.217590: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpoxSdYV.tmpB8saQH.pyomo.lp
-2014-06-12 14:55:32.235742: Solve completed - number of solutions=1
-2014-06-12 14:55:32.250099: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpH8TCI7.tmpwBQkYJ.pyomo.lp
-2014-06-12 14:55:32.266872: Solve completed - number of solutions=1
-2014-06-12 14:55:32.280976: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpsQaiL6.tmpJwmJi_.pyomo.lp
-2014-06-12 14:55:32.298776: Solve completed - number of solutions=1
-WARNING: "[base]/pyomo.pysp/pyomo/pysp/plugins/phboundextension.py", 75, _compute_bound
- A nonzero mipgap was detected when using the PH bound plugin. The bound computation may as a result be conservative.
-Computed objective lower bound=-115850.2283
-WW PH Extension: Setting mipgap to 0.0319973, based on current value of the convergence metric
-2014-06-12 14:55:32.345204: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpR21Uax.tmpqwUTqm.pyomo.lp
-2014-06-12 14:55:32.365062: Solve completed - number of solutions=1
-2014-06-12 14:55:32.378939: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpsUPGK_.tmpfAbz0m.pyomo.lp
-2014-06-12 14:55:32.401543: Solve completed - number of solutions=1
-2014-06-12 14:55:32.416449: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpRraulv.tmpIqjuVf.pyomo.lp
-2014-06-12 14:55:32.439722: Solve completed - number of solutions=1
-Slamming criteria are satisifed - accelerating convergence
-Slamming variable=DevotedAcreage[CORN] at tree node=RootNode to value=96.8871743104; value=node average (anywhere)
-Fixing variable=DevotedAcreage[CORN] at tree node=RootNode to value=96.8871743104; converged for 0 iterations
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0776 First stage cost avg= 112915.6071 Max-Min= 3047.08
-Cumulative run-time=1.15 seconds
-
-Initiating PH iteration=5
-2014-06-12 14:55:32.453347: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpQs2h5k.tmp1Eol2o.pyomo.lp
-2014-06-12 14:55:32.474011: Solve completed - number of solutions=1
-2014-06-12 14:55:32.489629: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpIFBZx6.tmptoM9mU.pyomo.lp
-2014-06-12 14:55:32.506881: Solve completed - number of solutions=1
-2014-06-12 14:55:32.520830: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpot1h1p.tmpnMWVYn.pyomo.lp
-2014-06-12 14:55:32.539214: Solve completed - number of solutions=1
-WARNING: "[base]/pyomo.pysp/pyomo/pysp/plugins/phboundextension.py", 75, _compute_bound
- A nonzero mipgap was detected when using the PH bound plugin. The bound computation may as a result be conservative.
-Computed objective lower bound=-114662.4278
-WW PH Extension: Setting mipgap to 0.0312342, based on current value of the convergence metric
-2014-06-12 14:55:32.584878: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpCC0OU6.tmpdfgyW9.pyomo.lp
-2014-06-12 14:55:32.604898: Solve completed - number of solutions=1
-2014-06-12 14:55:32.619793: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpOooL0I.tmpcp36V8.pyomo.lp
-2014-06-12 14:55:32.640225: Solve completed - number of solutions=1
-2014-06-12 14:55:32.654235: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpmuTFIa.tmpfTc9o5.pyomo.lp
-2014-06-12 14:55:32.674623: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=1 (total=3)
-Convergence metric= 0.0609 First stage cost avg= 112895.6887 Max-Min= 5246.95
-Cumulative run-time=1.38 seconds
-
-Initiating PH iteration=6
-2014-06-12 14:55:32.687490: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp6STqfF.tmppBo3og.pyomo.lp
-2014-06-12 14:55:32.705389: Solve completed - number of solutions=1
-2014-06-12 14:55:32.720206: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpl857KT.tmp_Dli3y.pyomo.lp
-2014-06-12 14:55:32.737663: Solve completed - number of solutions=1
-2014-06-12 14:55:32.751468: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpr2NF_C.tmpLM_slB.pyomo.lp
-2014-06-12 14:55:32.770044: Solve completed - number of solutions=1
-WARNING: "[base]/pyomo.pysp/pyomo/pysp/plugins/phboundextension.py", 75, _compute_bound
- A nonzero mipgap was detected when using the PH bound plugin. The bound computation may as a result be conservative.
-Computed objective lower bound=-114508.9364
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-WW PH Extension: Setting mipgap to 0.0247045, based on current value of the convergence metric
-2014-06-12 14:55:32.816647: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpT89dKu.tmpzHHSXX.pyomo.lp
-2014-06-12 14:55:32.837601: Solve completed - number of solutions=1
-2014-06-12 14:55:32.852052: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp0zyod9.tmp8FsdgX.pyomo.lp
-2014-06-12 14:55:32.872692: Solve completed - number of solutions=1
-2014-06-12 14:55:32.887259: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpLPq3aj.tmpCYzmnn.pyomo.lp
-2014-06-12 14:55:32.908775: Solve completed - number of solutions=1
-Slamming criteria are satisifed - accelerating convergence
-Slamming variable=DevotedAcreage[WHEAT] at tree node=RootNode to value=140.569962554; value=node average (anywhere)
-Fixing variable=DevotedAcreage[WHEAT] at tree node=RootNode to value=140.569962554; converged for 0 iterations
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=1 (total=3)
-Convergence metric= 0.0514 First stage cost avg= 111630.6889 Max-Min= 3912.48
-Cumulative run-time=1.62 seconds
-
-Initiating PH iteration=7
-2014-06-12 14:55:32.922026: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmplAbuOQ.tmpLUEmJi.pyomo.lp
-2014-06-12 14:55:32.939838: Solve completed - number of solutions=1
-2014-06-12 14:55:32.953718: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpduJKRD.tmpWtZkNS.pyomo.lp
-2014-06-12 14:55:32.972907: Solve completed - number of solutions=1
-2014-06-12 14:55:32.987860: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpk837kx.tmpFCl6qY.pyomo.lp
-2014-06-12 14:55:33.006820: Solve completed - number of solutions=1
-WARNING: "[base]/pyomo.pysp/pyomo/pysp/plugins/phboundextension.py", 75, _compute_bound
- A nonzero mipgap was detected when using the PH bound plugin. The bound computation may as a result be conservative.
-Computed objective lower bound=-115786.7766
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-WW PH Extension: Setting mipgap to 0.0210062, based on current value of the convergence metric
-2014-06-12 14:55:33.054743: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpgI0Qa8.tmpRPi3fY.pyomo.lp
-2014-06-12 14:55:33.074613: Solve completed - number of solutions=1
-2014-06-12 14:55:33.089097: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmprwm_nX.tmpygHFOs.pyomo.lp
-2014-06-12 14:55:33.108389: Solve completed - number of solutions=1
-2014-06-12 14:55:33.122268: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpMbu3Uj.tmpfpZe2X.pyomo.lp
-2014-06-12 14:55:33.142729: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=2 (total=3)
-Convergence metric= 0.0000 First stage cost avg= 111630.6889 Max-Min= 0.00
-Cumulative run-time=1.85 seconds
-PH converged - convergence metric is below threshold=0.0001
-Number of discrete variables fixed before final plugin calls=0 (total=0)
-Number of continuous variables fixed before final plugin calls=2 (total=3)
-2014-06-12 14:55:33.156665: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpybYkfp.tmp65tSPL.pyomo.lp
-2014-06-12 14:55:33.174341: Solve completed - number of solutions=1
-2014-06-12 14:55:33.188149: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpXQgXng.tmp7VYLk0.pyomo.lp
-2014-06-12 14:55:33.205562: Solve completed - number of solutions=1
-2014-06-12 14:55:33.219439: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpplK7LO.tmppFA_gq.pyomo.lp
-2014-06-12 14:55:33.237016: Solve completed - number of solutions=1
-WARNING: "[base]/pyomo.pysp/pyomo/pysp/plugins/phboundextension.py", 75, _compute_bound
- A nonzero mipgap was detected when using the PH bound plugin. The bound computation may as a result be conservative.
-Computed objective lower bound=-114931.2396
-
- Iteration Bound
- Trivial -115405.555588
- 0 -112378.395154
- 1 -119146.913826
- 2 -122839.937276
- 3 -115850.228262
- 4 -114662.427763
- 5 -114508.936391
- 6 -115786.776605
- 7 -114931.239605
-
-Lower bound history written to file=phbound.txt
-
-Best Objective Bound: -112378.395154
-
-Best Lower Bound written to file=phbestbound.txt
-WW PH extension: Fixing all discrete variables that are converged at termination
-Total number of variables fixed at PH termination due to convergence=0
-PH algorithm history written to file=ph_history.json
-PH complete
-Convergence history:
-Iteration Metric Value
- 0 0.2540
- 1 0.1259
- 2 0.0816
- 3 0.0796
- 4 0.0776
- 5 0.0609
- 6 0.0514
- 7 0.0000
-
-***********************************************************************************************
->>>THE EXPECTED SUM OF THE STAGE COST VARIABLES=-107983.303737<<<
->>>***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise<<<
-***********************************************************************************************
-Final number of discrete variables fixed=0 (total=0)
-Final number of continuous variables fixed=2 (total=3)
-Final variable values:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 96.8872 96.8872 96.8872 Max-Min: 0.0000 Avg: 96.8872
- Index: [SUGAR_BEETS] Values: 262.5429 262.5429 262.5429 Max-Min: 0.0000 Avg: 262.5429
- Index: [WHEAT] Values: 140.5700 140.5700 140.5700 Max-Min: 0.0000 Avg: 140.5700
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 111630.6889 111630.6888 111630.6889 Max-Min: 0.0000 Avg: 111630.6889
-Final costs:
-Scenario Tree Costs
-***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise
-----------------------------------------------------
-Tree Nodes:
-
- Name=AboveAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AboveAverageScenario
- Expected cost of (sub)tree rooted at node=-273020.0421
-
- Name=AverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AverageScenario
- Expected cost of (sub)tree rooted at node=-222372.3235
-
- Name=BelowAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-163449.6122
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- AboveAverageNode
- AverageNode
- BelowAverageNode
- Scenarios:
- AboveAverageScenario
- AverageScenario
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-107983.3037
-
-----------------------------------------------------
-Scenarios:
-
- Name=AboveAverageScenario
- Probability=0.3333
- Leaf Node=AboveAverageNode
- Tree node sequence:
- RootNode
- AboveAverageNode
- Stage= FirstStage Cost=111630.6889
- Stage= SecondStage Cost=-273020.0421
- Total scenario cost=-161389.3532
-
- Name=AverageScenario
- Probability=0.3333
- Leaf Node=AverageNode
- Tree node sequence:
- RootNode
- AverageNode
- Stage= FirstStage Cost=111630.6888
- Stage= SecondStage Cost=-222372.3235
- Total scenario cost=-110741.6346
-
- Name=BelowAverageScenario
- Probability=0.3333
- Leaf Node=BelowAverageNode
- Tree node sequence:
- RootNode
- BelowAverageNode
- Stage= FirstStage Cost=111630.6889
- Stage= SecondStage Cost=-163449.6122
- Total scenario cost=-51818.9233
-
-----------------------------------------------------
-
-Total PH execution time=1.95 seconds
-
-Scenario tree solution written to file=ph_solution.json
-Shutting down Pyro solver components
-Dispatcher received request to shut down - initiating...
-
-Total execution time=5.01 seconds
-Name Server gracefully stopped.
-Lost connection to dispatch server - shutting down...
diff --git a/pyomo/pysp/tests/examples/baselines/TestPHFarmerTrivialBundlesPyro.test11.baseline b/pyomo/pysp/tests/examples/baselines/TestPHFarmerTrivialBundlesPyro.test11.baseline
deleted file mode 100644
index d70a315a012..00000000000
--- a/pyomo/pysp/tests/examples/baselines/TestPHFarmerTrivialBundlesPyro.test11.baseline
+++ /dev/null
@@ -1,348 +0,0 @@
-*** Pyro Name Server ***
-Name server listening on: ('0.0.0.0', 9090)
-Broadcast server listening on: ('0.0.0.0', 9090)
-URI is: PYRO://10.0.0.11:9090/0a00000b11e8520a83538b75c826bc71cfb
-URI written to: /Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/pyomo/pysp/tests/examples/Pyro_NS_URI
-Name Server started.
-User-defined PH extension module=pyomo.pysp.plugins.phhistoryextension already imported - skipping
-User-defined PH extension module=pyomo.pysp.plugins.phboundextension already imported - skipping
-Dispatcher is ready.
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI:PYRO://10.0.0.11:7766/0a00000b11e8620a83539d6dbf4706a203b
-This is worker Worker_73351@Ozymandias.local
-Listening for work from dispatcher...
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI: PYRO://10.0.0.11:7766/0a00000b11e8620a83539d6dbf4706a203b
-This is client 73352@Ozymandias.local
-Initializing PH
-
-phboundextension using default update interval=1
-WW PH Extension: Loading user-specified configuration from file=/Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/examples/pysp/farmer/config/wwph.cfg
-WW PH Extension: Loading variable suffixes from file=/Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/examples/pysp/farmer/config/wwph.suffixes
-User-defined PH solution writer module=pyomo.pysp.plugins.jsonsolutionwriter already imported - skipping
-Starting PH
-
-Initiating PH iteration=0
-2014-06-12 14:55:40.490708: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp6WX7Hv.tmp5yupwP.pyomo.lp
-2014-06-12 14:55:40.508889: Solve completed - number of solutions=1
-2014-06-12 14:55:40.522654: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp96XK3E.tmpxd0Rvr.pyomo.lp
-2014-06-12 14:55:40.540072: Solve completed - number of solutions=1
-2014-06-12 14:55:40.553811: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpHc34kv.tmpZPUyhy.pyomo.lp
-2014-06-12 14:55:40.570900: Solve completed - number of solutions=1
-Computed objective lower bound=-115405.5556
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.2540 First stage cost avg= 113494.4444 Max-Min=10416.67
-Cumulative run-time=0.16 seconds
-
-Initiating PH iteration=1
-2014-06-12 14:55:40.583565: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp1zLt2Y.tmpaKC0Wp.pyomo.lp
-2014-06-12 14:55:40.601425: Solve completed - number of solutions=1
-2014-06-12 14:55:40.615411: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpGFIzPk.tmpKzM5AA.pyomo.lp
-2014-06-12 14:55:40.632621: Solve completed - number of solutions=1
-2014-06-12 14:55:40.646726: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp2QHJPS.tmp8dTFgs.pyomo.lp
-2014-06-12 14:55:40.664342: Solve completed - number of solutions=1
-Computed objective lower bound=-112378.3951
-WW PH Extension: Setting mipgap to 0.1000000, as specified in the configuration file
-2014-06-12 14:55:40.677658: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpiNktjA.tmp7UKgFL.pyomo.lp
-2014-06-12 14:55:40.698155: Solve completed - number of solutions=1
-2014-06-12 14:55:40.712586: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpil6Uge.tmpHhgF1_.pyomo.lp
-2014-06-12 14:55:40.733333: Solve completed - number of solutions=1
-2014-06-12 14:55:40.747277: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpngw0YN.tmpvrzGVS.pyomo.lp
-2014-06-12 14:55:40.767673: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.1259 First stage cost avg= 113107.2221 Max-Min= 6943.89
-Cumulative run-time=0.36 seconds
-
-Initiating PH iteration=2
-2014-06-12 14:55:40.780334: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpv8BCdq.tmpOS3u0i.pyomo.lp
-2014-06-12 14:55:40.798749: Solve completed - number of solutions=1
-2014-06-12 14:55:40.813968: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpLULBMG.tmp8qxdKA.pyomo.lp
-2014-06-12 14:55:40.831220: Solve completed - number of solutions=1
-2014-06-12 14:55:40.845132: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmptgoE2I.tmpUwAVW6.pyomo.lp
-2014-06-12 14:55:40.862524: Solve completed - number of solutions=1
-WARNING: "[base]/pyomo.pysp/pyomo/pysp/plugins/phboundextension.py", 75, _compute_bound
- A nonzero mipgap was detected when using the PH bound plugin. The bound computation may as a result be conservative.
-Computed objective lower bound=-114092.2009
-WW PH Extension: Setting mipgap to 0.0500717, based on current value of the convergence metric
-2014-06-12 14:55:40.875720: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpABvRVb.tmpKDyVEG.pyomo.lp
-2014-06-12 14:55:40.897207: Solve completed - number of solutions=1
-2014-06-12 14:55:40.911564: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpe1qaj7.tmpet1O1E.pyomo.lp
-2014-06-12 14:55:40.932715: Solve completed - number of solutions=1
-2014-06-12 14:55:40.946557: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpTsHDvB.tmpZXmM4W.pyomo.lp
-2014-06-12 14:55:40.966471: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0816 First stage cost avg= 112954.6296 Max-Min= 2234.82
-Cumulative run-time=0.56 seconds
-
-Initiating PH iteration=3
-2014-06-12 14:55:40.980418: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpgZ5A5j.tmp9yOkjf.pyomo.lp
-2014-06-12 14:55:40.999329: Solve completed - number of solutions=1
-2014-06-12 14:55:41.014066: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpNB0dgw.tmpkNjCxX.pyomo.lp
-2014-06-12 14:55:41.031395: Solve completed - number of solutions=1
-2014-06-12 14:55:41.046203: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp64HLow.tmpmQ0ifu.pyomo.lp
-2014-06-12 14:55:41.063532: Solve completed - number of solutions=1
-WARNING: "[base]/pyomo.pysp/pyomo/pysp/plugins/phboundextension.py", 75, _compute_bound
- A nonzero mipgap was detected when using the PH bound plugin. The bound computation may as a result be conservative.
-Computed objective lower bound=-111905.7747
-WW PH Extension: Setting mipgap to 0.0327607, based on current value of the convergence metric
-2014-06-12 14:55:41.077043: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpQuHQY4.tmp_fn1ph.pyomo.lp
-2014-06-12 14:55:41.097789: Solve completed - number of solutions=1
-2014-06-12 14:55:41.111675: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpBTkxiI.tmpVQfBk3.pyomo.lp
-2014-06-12 14:55:41.131423: Solve completed - number of solutions=1
-2014-06-12 14:55:41.146137: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpgRYClS.tmpGbqqR3.pyomo.lp
-2014-06-12 14:55:41.165757: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0796 First stage cost avg= 112963.0248 Max-Min= 2375.31
-Cumulative run-time=0.76 seconds
-
-Initiating PH iteration=4
-2014-06-12 14:55:41.178540: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpGlevHv.tmpoVJS3Y.pyomo.lp
-2014-06-12 14:55:41.196359: Solve completed - number of solutions=1
-2014-06-12 14:55:41.210190: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpUPl79B.tmpfUazhj.pyomo.lp
-2014-06-12 14:55:41.227210: Solve completed - number of solutions=1
-2014-06-12 14:55:41.240988: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpxpo9Ig.tmpmG7BOo.pyomo.lp
-2014-06-12 14:55:41.258384: Solve completed - number of solutions=1
-WARNING: "[base]/pyomo.pysp/pyomo/pysp/plugins/phboundextension.py", 75, _compute_bound
- A nonzero mipgap was detected when using the PH bound plugin. The bound computation may as a result be conservative.
-Computed objective lower bound=-110093.7884
-WW PH Extension: Setting mipgap to 0.0319973, based on current value of the convergence metric
-2014-06-12 14:55:41.271441: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp9tLaRv.tmpwLpT0N.pyomo.lp
-2014-06-12 14:55:41.292383: Solve completed - number of solutions=1
-2014-06-12 14:55:41.306289: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp0aSElP.tmpZkMc0v.pyomo.lp
-2014-06-12 14:55:41.325846: Solve completed - number of solutions=1
-2014-06-12 14:55:41.339750: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp1FKEpw.tmpdXkOPU.pyomo.lp
-2014-06-12 14:55:41.359500: Solve completed - number of solutions=1
-Slamming criteria are satisifed - accelerating convergence
-Slamming variable=DevotedAcreage[CORN] at tree node=RootNode to value=96.8871743104; value=node average (anywhere)
-Fixing variable=DevotedAcreage[CORN] at tree node=RootNode to value=96.8871743104; converged for 0 iterations
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0776 First stage cost avg= 112915.6071 Max-Min= 3047.08
-Cumulative run-time=0.95 seconds
-
-Initiating PH iteration=5
-2014-06-12 14:55:41.372594: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpMhmzF3.tmpI2lP6v.pyomo.lp
-2014-06-12 14:55:41.390270: Solve completed - number of solutions=1
-2014-06-12 14:55:41.405416: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpqWUfmP.tmp93LlTf.pyomo.lp
-2014-06-12 14:55:41.424014: Solve completed - number of solutions=1
-2014-06-12 14:55:41.438332: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpWqFFpF.tmpggLWKu.pyomo.lp
-2014-06-12 14:55:41.455639: Solve completed - number of solutions=1
-WARNING: "[base]/pyomo.pysp/pyomo/pysp/plugins/phboundextension.py", 75, _compute_bound
- A nonzero mipgap was detected when using the PH bound plugin. The bound computation may as a result be conservative.
-Computed objective lower bound=-109499.5161
-WW PH Extension: Setting mipgap to 0.0312342, based on current value of the convergence metric
-2014-06-12 14:55:41.469664: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpaZtR_T.tmpI5Mmft.pyomo.lp
-2014-06-12 14:55:41.490595: Solve completed - number of solutions=1
-2014-06-12 14:55:41.504692: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp_9WDY1.tmp6_gHDS.pyomo.lp
-2014-06-12 14:55:41.525467: Solve completed - number of solutions=1
-2014-06-12 14:55:41.540277: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpGRzjq2.tmpSsRm81.pyomo.lp
-2014-06-12 14:55:41.560188: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=1 (total=3)
-Convergence metric= 0.0609 First stage cost avg= 112895.6887 Max-Min= 5246.95
-Cumulative run-time=1.15 seconds
-
-Initiating PH iteration=6
-2014-06-12 14:55:41.573050: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpZJgBDk.tmpP4OWCm.pyomo.lp
-2014-06-12 14:55:41.591793: Solve completed - number of solutions=1
-2014-06-12 14:55:41.605610: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmptgciTO.tmpaPkbul.pyomo.lp
-2014-06-12 14:55:41.622545: Solve completed - number of solutions=1
-2014-06-12 14:55:41.637344: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpLn4zb4.tmpfs0dB2.pyomo.lp
-2014-06-12 14:55:41.655818: Solve completed - number of solutions=1
-WARNING: "[base]/pyomo.pysp/pyomo/pysp/plugins/phboundextension.py", 75, _compute_bound
- A nonzero mipgap was detected when using the PH bound plugin. The bound computation may as a result be conservative.
-Computed objective lower bound=-109440.7805
-WW PH Extension: Setting mipgap to 0.0247045, based on current value of the convergence metric
-2014-06-12 14:55:41.669430: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpKPsFwG.tmpW1n44S.pyomo.lp
-2014-06-12 14:55:41.690004: Solve completed - number of solutions=1
-2014-06-12 14:55:41.704063: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp1GcqQD.tmpSnnK5S.pyomo.lp
-2014-06-12 14:55:41.724356: Solve completed - number of solutions=1
-2014-06-12 14:55:41.738846: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpu02FlD.tmpGboU5o.pyomo.lp
-2014-06-12 14:55:41.758952: Solve completed - number of solutions=1
-Slamming criteria are satisifed - accelerating convergence
-Slamming variable=DevotedAcreage[WHEAT] at tree node=RootNode to value=137.204959966; value=node average (anywhere)
-Fixing variable=DevotedAcreage[WHEAT] at tree node=RootNode to value=137.204959966; converged for 0 iterations
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=1 (total=3)
-Convergence metric= 0.0391 First stage cost avg= 112000.8391 Max-Min= 2624.80
-Cumulative run-time=1.35 seconds
-
-Initiating PH iteration=7
-2014-06-12 14:55:41.772763: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpsNLEcn.tmpHzjG5d.pyomo.lp
-2014-06-12 14:55:41.789999: Solve completed - number of solutions=1
-2014-06-12 14:55:41.803831: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpIZyL7K.tmpxBydnP.pyomo.lp
-2014-06-12 14:55:41.821064: Solve completed - number of solutions=1
-2014-06-12 14:55:41.834934: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpYkZ5Vf.tmpZZOzyP.pyomo.lp
-2014-06-12 14:55:41.852281: Solve completed - number of solutions=1
-WARNING: "[base]/pyomo.pysp/pyomo/pysp/plugins/phboundextension.py", 75, _compute_bound
- A nonzero mipgap was detected when using the PH bound plugin. The bound computation may as a result be conservative.
-Computed objective lower bound=-112587.0017
-WW PH Extension: Setting mipgap to 0.0161915, based on current value of the convergence metric
-2014-06-12 14:55:41.865040: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpFFoNoN.tmpreglx2.pyomo.lp
-2014-06-12 14:55:41.886366: Solve completed - number of solutions=1
-2014-06-12 14:55:41.900689: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp7TFE69.tmpL19U7q.pyomo.lp
-2014-06-12 14:55:41.920506: Solve completed - number of solutions=1
-2014-06-12 14:55:41.935320: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpmFmG4Y.tmpfTtX3U.pyomo.lp
-2014-06-12 14:55:41.955189: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=2 (total=3)
-Convergence metric= 0.0000 First stage cost avg= 112000.8392 Max-Min= 0.00
-Cumulative run-time=1.55 seconds
-PH converged - convergence metric is below threshold=0.0001
-Number of discrete variables fixed before final plugin calls=0 (total=0)
-Number of continuous variables fixed before final plugin calls=2 (total=3)
-2014-06-12 14:55:41.969027: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpGrQug6.tmpQ4qx7f.pyomo.lp
-2014-06-12 14:55:41.987385: Solve completed - number of solutions=1
-2014-06-12 14:55:42.001310: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpKt75Nb.tmpyxqqhw.pyomo.lp
-2014-06-12 14:55:42.018388: Solve completed - number of solutions=1
-2014-06-12 14:55:42.032665: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp6g0b89.tmpLjyO4Y.pyomo.lp
-2014-06-12 14:55:42.051131: Solve completed - number of solutions=1
-WARNING: "[base]/pyomo.pysp/pyomo/pysp/plugins/phboundextension.py", 75, _compute_bound
- A nonzero mipgap was detected when using the PH bound plugin. The bound computation may as a result be conservative.
-Computed objective lower bound=-112587.0017
-
- Iteration Bound
- Trivial -115405.555588
- 0 -112378.395124
- 1 -114092.2009
- 2 -111905.774744
- 3 -110093.788354
- 4 -109499.516145
- 5 -109440.780542
- 6 -112587.001699
- 7 -112587.001701
-
-Lower bound history written to file=phbound.txt
-
-Best Objective Bound: -109440.780542
-
-Best Lower Bound written to file=phbestbound.txt
-WW PH extension: Fixing all discrete variables that are converged at termination
-Total number of variables fixed at PH termination due to convergence=0
-PH algorithm history written to file=ph_history.json
-PH complete
-Convergence history:
-Iteration Metric Value
- 0 0.2540
- 1 0.1259
- 2 0.0816
- 3 0.0796
- 4 0.0776
- 5 0.0609
- 6 0.0391
- 7 0.0000
-
-***********************************************************************************************
->>>THE EXPECTED SUM OF THE STAGE COST VARIABLES=-107905.908751<<<
->>>***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise<<<
-***********************************************************************************************
-Final number of discrete variables fixed=0 (total=0)
-Final number of continuous variables fixed=2 (total=3)
-Final variable values:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 96.8872 96.8872 96.8872 Max-Min: 0.0000 Avg: 96.8872
- Index: [SUGAR_BEETS] Values: 265.9079 265.9079 265.9079 Max-Min: 0.0000 Avg: 265.9079
- Index: [WHEAT] Values: 137.2050 137.2050 137.2050 Max-Min: 0.0000 Avg: 137.2050
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 112000.8392 112000.8392 112000.8391 Max-Min: 0.0000 Avg: 112000.8392
-Final costs:
-Scenario Tree Costs
-***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise
-----------------------------------------------------
-Tree Nodes:
-
- Name=AboveAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AboveAverageScenario
- Expected cost of (sub)tree rooted at node=-272111.4913
-
- Name=AverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AverageScenario
- Expected cost of (sub)tree rooted at node=-223364.9995
-
- Name=BelowAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-164243.7528
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- AboveAverageNode
- AverageNode
- BelowAverageNode
- Scenarios:
- AboveAverageScenario
- AverageScenario
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-107905.9088
-
-----------------------------------------------------
-Scenarios:
-
- Name=AboveAverageScenario
- Probability=0.3333
- Leaf Node=AboveAverageNode
- Tree node sequence:
- RootNode
- AboveAverageNode
- Stage= FirstStage Cost=112000.8391
- Stage= SecondStage Cost=-272111.4913
- Total scenario cost=-160110.6522
-
- Name=AverageScenario
- Probability=0.3333
- Leaf Node=AverageNode
- Tree node sequence:
- RootNode
- AverageNode
- Stage= FirstStage Cost=112000.8392
- Stage= SecondStage Cost=-223364.9995
- Total scenario cost=-111364.1604
-
- Name=BelowAverageScenario
- Probability=0.3333
- Leaf Node=BelowAverageNode
- Tree node sequence:
- RootNode
- BelowAverageNode
- Stage= FirstStage Cost=112000.8392
- Stage= SecondStage Cost=-164243.7528
- Total scenario cost=-52242.9136
-
-----------------------------------------------------
-
-Total PH execution time=1.65 seconds
-
-Scenario tree solution written to file=ph_solution.json
-Shutting down Pyro solver components
-Dispatcher received request to shut down - initiating...
-
-Total execution time=4.70 seconds
-Name Server gracefully stopped.
-Lost connection to dispatch server - shutting down...
diff --git a/pyomo/pysp/tests/examples/baselines/TestPHFarmerTrivialBundlesPyro.test12.baseline b/pyomo/pysp/tests/examples/baselines/TestPHFarmerTrivialBundlesPyro.test12.baseline
deleted file mode 100644
index ce2ed28130c..00000000000
--- a/pyomo/pysp/tests/examples/baselines/TestPHFarmerTrivialBundlesPyro.test12.baseline
+++ /dev/null
@@ -1,352 +0,0 @@
-*** Pyro Name Server ***
-Name server listening on: ('0.0.0.0', 9090)
-Broadcast server listening on: ('0.0.0.0', 9090)
-URI is: PYRO://10.0.0.11:9090/0a00000b11ec820a8353c2f636842807eb7
-URI written to: /Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/pyomo/pysp/tests/examples/Pyro_NS_URI
-Name Server started.
-User-defined PH extension module=pyomo.pysp.plugins.phhistoryextension already imported - skipping
-User-defined PH extension module=pyomo.pysp.plugins.convexhullboundextension already imported - skipping
-Dispatcher is ready.
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI:PYRO://10.0.0.11:7766/0a00000b11ec920a8353d5129307149a306
-This is worker Worker_73418@Ozymandias.local
-Listening for work from dispatcher...
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI: PYRO://10.0.0.11:7766/0a00000b11ec920a8353d5129307149a306
-This is client 73419@Ozymandias.local
-Initializing PH
-
-convexhullboundextension using default update interval=1
-WARNING: No construction rule or expression specified for constraint 'W_Balance'
-WARNING: No construction rule or expression specified for constraint 'V_Bound'
-WW PH Extension: Loading user-specified configuration from file=/Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/examples/pysp/farmer/config/wwph.cfg
-WW PH Extension: Loading variable suffixes from file=/Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/examples/pysp/farmer/config/wwph.suffixes
-User-defined PH solution writer module=pyomo.pysp.plugins.jsonsolutionwriter already imported - skipping
-Starting PH
-
-Initiating PH iteration=0
-2014-06-12 14:55:49.406846: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpsCjyYM.tmp3TW9Q4.pyomo.lp
-2014-06-12 14:55:49.424810: Solve completed - number of solutions=1
-2014-06-12 14:55:49.438692: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpNBU8UJ.tmpNA7fU8.pyomo.lp
-2014-06-12 14:55:49.455814: Solve completed - number of solutions=1
-2014-06-12 14:55:49.469893: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpRmFEeB.tmpy14S_W.pyomo.lp
-2014-06-12 14:55:49.489437: Solve completed - number of solutions=1
-Computed objective lower bound=-115405.5556
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.2540 First stage cost avg= 113494.4444 Max-Min=10416.67
-Cumulative run-time=0.19 seconds
-
-Initiating PH iteration=1
-2014-06-12 14:55:49.535266: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp26Wopu.tmpEsSPl7.pyomo.lp
-2014-06-12 14:55:49.553718: Solve completed - number of solutions=1
-2014-06-12 14:55:49.568018: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpDgMrFw.tmpCMnSf0.pyomo.lp
-2014-06-12 14:55:49.586157: Solve completed - number of solutions=1
-2014-06-12 14:55:49.600192: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpLhorNP.tmp8lNaHM.pyomo.lp
-2014-06-12 14:55:49.616887: Solve completed - number of solutions=1
-Computed objective lower bound=-112378.3952
-WW PH Extension: Setting mipgap to 0.1000000, as specified in the configuration file
-2014-06-12 14:55:49.663184: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp1G_08R.tmp_jTDKb.pyomo.lp
-2014-06-12 14:55:49.682903: Solve completed - number of solutions=1
-2014-06-12 14:55:49.696621: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpsVopoE.tmpEr1DZr.pyomo.lp
-2014-06-12 14:55:49.718178: Solve completed - number of solutions=1
-2014-06-12 14:55:49.733054: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpKkqTrA.tmp1UWmCa.pyomo.lp
-2014-06-12 14:55:49.752619: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.1259 First stage cost avg= 113107.2221 Max-Min= 6943.89
-Cumulative run-time=0.43 seconds
-
-Initiating PH iteration=2
-2014-06-12 14:55:49.765517: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpdsl9GA.tmpgkBcyl.pyomo.lp
-2014-06-12 14:55:49.782824: Solve completed - number of solutions=1
-2014-06-12 14:55:49.797658: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpWedVx6.tmpWYJ8D4.pyomo.lp
-2014-06-12 14:55:49.815706: Solve completed - number of solutions=1
-2014-06-12 14:55:49.830148: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpmDobP9.tmp7wyP7S.pyomo.lp
-2014-06-12 14:55:49.847003: Solve completed - number of solutions=1
-WARNING: "[base]/pyomo.pysp/pyomo/pysp/plugins/phboundextension.py", 75, _compute_bound
- A nonzero mipgap was detected when using the PH bound plugin. The bound computation may as a result be conservative.
-Computed objective lower bound=-119146.9138
-WW PH Extension: Setting mipgap to 0.0500717, based on current value of the convergence metric
-2014-06-12 14:55:49.893599: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp7pRKNT.tmp7t1kvT.pyomo.lp
-2014-06-12 14:55:49.913574: Solve completed - number of solutions=1
-2014-06-12 14:55:49.928322: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpJ91TaW.tmpcgbww5.pyomo.lp
-2014-06-12 14:55:49.948403: Solve completed - number of solutions=1
-2014-06-12 14:55:49.962590: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpP6FKB8.tmp7AXoOU.pyomo.lp
-2014-06-12 14:55:49.984034: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0816 First stage cost avg= 112954.6296 Max-Min= 2234.82
-Cumulative run-time=0.66 seconds
-
-Initiating PH iteration=3
-2014-06-12 14:55:49.996846: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpFplcmG.tmpytJFmN.pyomo.lp
-2014-06-12 14:55:50.014930: Solve completed - number of solutions=1
-2014-06-12 14:55:50.028635: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpvpleDh.tmpiBfWhL.pyomo.lp
-2014-06-12 14:55:50.047693: Solve completed - number of solutions=1
-2014-06-12 14:55:50.061794: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmprHGQdN.tmpiepWFn.pyomo.lp
-2014-06-12 14:55:50.080761: Solve completed - number of solutions=1
-WARNING: "[base]/pyomo.pysp/pyomo/pysp/plugins/phboundextension.py", 75, _compute_bound
- A nonzero mipgap was detected when using the PH bound plugin. The bound computation may as a result be conservative.
-Computed objective lower bound=-122839.9373
-WW PH Extension: Setting mipgap to 0.0327607, based on current value of the convergence metric
-2014-06-12 14:55:50.128366: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpznPk22.tmpGPSEMJ.pyomo.lp
-2014-06-12 14:55:50.148647: Solve completed - number of solutions=1
-2014-06-12 14:55:50.163069: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpp6Ddjw.tmpWPqpXl.pyomo.lp
-2014-06-12 14:55:50.183578: Solve completed - number of solutions=1
-2014-06-12 14:55:50.197429: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpugf4wd.tmpn1iA0Z.pyomo.lp
-2014-06-12 14:55:50.218568: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0796 First stage cost avg= 112963.0248 Max-Min= 2375.31
-Cumulative run-time=0.89 seconds
-
-Initiating PH iteration=4
-2014-06-12 14:55:50.231942: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpXVBB2q.tmpzAW3xo.pyomo.lp
-2014-06-12 14:55:50.250166: Solve completed - number of solutions=1
-2014-06-12 14:55:50.264943: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpyX7dG6.tmpJi2Jvx.pyomo.lp
-2014-06-12 14:55:50.282794: Solve completed - number of solutions=1
-2014-06-12 14:55:50.296509: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpI9nWMG.tmp4npXFe.pyomo.lp
-2014-06-12 14:55:50.314403: Solve completed - number of solutions=1
-WARNING: "[base]/pyomo.pysp/pyomo/pysp/plugins/phboundextension.py", 75, _compute_bound
- A nonzero mipgap was detected when using the PH bound plugin. The bound computation may as a result be conservative.
-Computed objective lower bound=-115850.2283
-WW PH Extension: Setting mipgap to 0.0319973, based on current value of the convergence metric
-2014-06-12 14:55:50.361228: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpLdkhVI.tmpkQpTLY.pyomo.lp
-2014-06-12 14:55:50.380765: Solve completed - number of solutions=1
-2014-06-12 14:55:50.394520: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp5DwDEQ.tmpmRjo2j.pyomo.lp
-2014-06-12 14:55:50.414229: Solve completed - number of solutions=1
-2014-06-12 14:55:50.429018: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpYcwA7g.tmp0vtXNZ.pyomo.lp
-2014-06-12 14:55:50.449374: Solve completed - number of solutions=1
-Slamming criteria are satisifed - accelerating convergence
-Slamming variable=DevotedAcreage[CORN] at tree node=RootNode to value=96.8871743104; value=node average (anywhere)
-Fixing variable=DevotedAcreage[CORN] at tree node=RootNode to value=96.8871743104; converged for 0 iterations
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0776 First stage cost avg= 112915.6071 Max-Min= 3047.08
-Cumulative run-time=1.12 seconds
-
-Initiating PH iteration=5
-2014-06-12 14:55:50.461882: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpRGcAk3.tmppSVGQF.pyomo.lp
-2014-06-12 14:55:50.479045: Solve completed - number of solutions=1
-2014-06-12 14:55:50.494001: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpSiR_WV.tmpZ2tKhQ.pyomo.lp
-2014-06-12 14:55:50.511237: Solve completed - number of solutions=1
-2014-06-12 14:55:50.525945: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpo1e7Uq.tmplJ8vf1.pyomo.lp
-2014-06-12 14:55:50.542820: Solve completed - number of solutions=1
-WARNING: "[base]/pyomo.pysp/pyomo/pysp/plugins/phboundextension.py", 75, _compute_bound
- A nonzero mipgap was detected when using the PH bound plugin. The bound computation may as a result be conservative.
-Computed objective lower bound=-114662.4278
-WW PH Extension: Setting mipgap to 0.0312342, based on current value of the convergence metric
-2014-06-12 14:55:50.590021: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpRqidLL.tmpChAifD.pyomo.lp
-2014-06-12 14:55:50.609601: Solve completed - number of solutions=1
-2014-06-12 14:55:50.623571: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpJ4ktyZ.tmp0wWDZp.pyomo.lp
-2014-06-12 14:55:50.643737: Solve completed - number of solutions=1
-2014-06-12 14:55:50.657527: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpyfRrNM.tmpbdEdhU.pyomo.lp
-2014-06-12 14:55:50.677788: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=1 (total=3)
-Convergence metric= 0.0609 First stage cost avg= 112895.6887 Max-Min= 5246.95
-Cumulative run-time=1.35 seconds
-
-Initiating PH iteration=6
-2014-06-12 14:55:50.690528: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpaYME_S.tmp9bTEuX.pyomo.lp
-2014-06-12 14:55:50.707936: Solve completed - number of solutions=1
-2014-06-12 14:55:50.721695: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp0Z4ep9.tmpBKZaqY.pyomo.lp
-2014-06-12 14:55:50.739124: Solve completed - number of solutions=1
-2014-06-12 14:55:50.753129: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp2dcwnP.tmpqOEMOX.pyomo.lp
-2014-06-12 14:55:50.771043: Solve completed - number of solutions=1
-WARNING: "[base]/pyomo.pysp/pyomo/pysp/plugins/phboundextension.py", 75, _compute_bound
- A nonzero mipgap was detected when using the PH bound plugin. The bound computation may as a result be conservative.
-Computed objective lower bound=-114508.9364
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-WW PH Extension: Setting mipgap to 0.0247045, based on current value of the convergence metric
-2014-06-12 14:55:50.818299: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpFTM8Sx.tmpinP_oD.pyomo.lp
-2014-06-12 14:55:50.838378: Solve completed - number of solutions=1
-2014-06-12 14:55:50.852188: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpFdGulx.tmpsIomzd.pyomo.lp
-2014-06-12 14:55:50.872489: Solve completed - number of solutions=1
-2014-06-12 14:55:50.886976: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpZtxmEY.tmp675kZ9.pyomo.lp
-2014-06-12 14:55:50.907025: Solve completed - number of solutions=1
-Slamming criteria are satisifed - accelerating convergence
-Slamming variable=DevotedAcreage[WHEAT] at tree node=RootNode to value=140.569962554; value=node average (anywhere)
-Fixing variable=DevotedAcreage[WHEAT] at tree node=RootNode to value=140.569962554; converged for 0 iterations
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=1 (total=3)
-Convergence metric= 0.0514 First stage cost avg= 111630.6889 Max-Min= 3912.48
-Cumulative run-time=1.58 seconds
-
-Initiating PH iteration=7
-2014-06-12 14:55:50.920257: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpQqZxkd.tmpYz3I6d.pyomo.lp
-2014-06-12 14:55:50.938381: Solve completed - number of solutions=1
-2014-06-12 14:55:50.952287: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpR1qeqG.tmpnzfOfn.pyomo.lp
-2014-06-12 14:55:50.969653: Solve completed - number of solutions=1
-2014-06-12 14:55:50.983541: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpsrBntv.tmpNdut6c.pyomo.lp
-2014-06-12 14:55:51.000751: Solve completed - number of solutions=1
-WARNING: "[base]/pyomo.pysp/pyomo/pysp/plugins/phboundextension.py", 75, _compute_bound
- A nonzero mipgap was detected when using the PH bound plugin. The bound computation may as a result be conservative.
-Computed objective lower bound=-115786.7766
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-WW PH Extension: Setting mipgap to 0.0210062, based on current value of the convergence metric
-2014-06-12 14:55:51.046128: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpc5bhbP.tmptNircI.pyomo.lp
-2014-06-12 14:55:51.066558: Solve completed - number of solutions=1
-2014-06-12 14:55:51.081156: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp6P2VIz.tmpYc7dxJ.pyomo.lp
-2014-06-12 14:55:51.100557: Solve completed - number of solutions=1
-2014-06-12 14:55:51.114545: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpwXh_mF.tmpSt_vcp.pyomo.lp
-2014-06-12 14:55:51.134224: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=2 (total=3)
-Convergence metric= 0.0000 First stage cost avg= 111630.6889 Max-Min= 0.00
-Cumulative run-time=1.81 seconds
-PH converged - convergence metric is below threshold=0.0001
-Number of discrete variables fixed before final plugin calls=0 (total=0)
-Number of continuous variables fixed before final plugin calls=2 (total=3)
-2014-06-12 14:55:51.147040: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpP6j_OK.tmpoNEkTu.pyomo.lp
-2014-06-12 14:55:51.164418: Solve completed - number of solutions=1
-2014-06-12 14:55:51.179203: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpCWl7Tn.tmpoNCNX6.pyomo.lp
-2014-06-12 14:55:51.196702: Solve completed - number of solutions=1
-2014-06-12 14:55:51.210649: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpuAccYw.tmpltAW9h.pyomo.lp
-2014-06-12 14:55:51.229061: Solve completed - number of solutions=1
-WARNING: "[base]/pyomo.pysp/pyomo/pysp/plugins/phboundextension.py", 75, _compute_bound
- A nonzero mipgap was detected when using the PH bound plugin. The bound computation may as a result be conservative.
-Computed objective lower bound=-114931.2396
-
- Iteration Bound
- Trivial -115405.555588
- 0 -112378.395154
- 1 -119146.913826
- 2 -122839.937276
- 3 -115850.228262
- 4 -114662.427763
- 5 -114508.936391
- 6 -115786.776605
- 7 -114931.239605
-
-Lower bound history written to file=phbound.txt
-
-Best Objective Bound: -112378.395154
-
-Best Lower Bound written to file=phbestbound.txt
-WW PH extension: Fixing all discrete variables that are converged at termination
-Total number of variables fixed at PH termination due to convergence=0
-PH algorithm history written to file=ph_history.json
-PH complete
-Convergence history:
-Iteration Metric Value
- 0 0.2540
- 1 0.1259
- 2 0.0816
- 3 0.0796
- 4 0.0776
- 5 0.0609
- 6 0.0514
- 7 0.0000
-
-***********************************************************************************************
->>>THE EXPECTED SUM OF THE STAGE COST VARIABLES=-107983.303737<<<
->>>***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise<<<
-***********************************************************************************************
-Final number of discrete variables fixed=0 (total=0)
-Final number of continuous variables fixed=2 (total=3)
-Final variable values:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 96.8872 96.8872 96.8872 Max-Min: 0.0000 Avg: 96.8872
- Index: [SUGAR_BEETS] Values: 262.5429 262.5429 262.5429 Max-Min: 0.0000 Avg: 262.5429
- Index: [WHEAT] Values: 140.5700 140.5700 140.5700 Max-Min: 0.0000 Avg: 140.5700
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 111630.6889 111630.6888 111630.6889 Max-Min: 0.0000 Avg: 111630.6889
-Final costs:
-Scenario Tree Costs
-***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise
-----------------------------------------------------
-Tree Nodes:
-
- Name=AboveAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AboveAverageScenario
- Expected cost of (sub)tree rooted at node=-273020.0421
-
- Name=AverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AverageScenario
- Expected cost of (sub)tree rooted at node=-222372.3235
-
- Name=BelowAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-163449.6122
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- AboveAverageNode
- AverageNode
- BelowAverageNode
- Scenarios:
- AboveAverageScenario
- AverageScenario
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-107983.3037
-
-----------------------------------------------------
-Scenarios:
-
- Name=AboveAverageScenario
- Probability=0.3333
- Leaf Node=AboveAverageNode
- Tree node sequence:
- RootNode
- AboveAverageNode
- Stage= FirstStage Cost=111630.6889
- Stage= SecondStage Cost=-273020.0421
- Total scenario cost=-161389.3532
-
- Name=AverageScenario
- Probability=0.3333
- Leaf Node=AverageNode
- Tree node sequence:
- RootNode
- AverageNode
- Stage= FirstStage Cost=111630.6888
- Stage= SecondStage Cost=-222372.3235
- Total scenario cost=-110741.6346
-
- Name=BelowAverageScenario
- Probability=0.3333
- Leaf Node=BelowAverageNode
- Tree node sequence:
- RootNode
- BelowAverageNode
- Stage= FirstStage Cost=111630.6889
- Stage= SecondStage Cost=-163449.6122
- Total scenario cost=-51818.9233
-
-----------------------------------------------------
-
-Total PH execution time=1.91 seconds
-
-Scenario tree solution written to file=ph_solution.json
-Shutting down Pyro solver components
-Dispatcher received request to shut down - initiating...
-
-Total execution time=4.97 seconds
-Name Server gracefully stopped.
-Lost connection to dispatch server - shutting down...
diff --git a/pyomo/pysp/tests/examples/baselines/TestPHFarmerTrivialBundlesPyro.test13.baseline b/pyomo/pysp/tests/examples/baselines/TestPHFarmerTrivialBundlesPyro.test13.baseline
deleted file mode 100644
index 100c4252aff..00000000000
--- a/pyomo/pysp/tests/examples/baselines/TestPHFarmerTrivialBundlesPyro.test13.baseline
+++ /dev/null
@@ -1,258 +0,0 @@
-*** Pyro Name Server ***
-Name server listening on: ('0.0.0.0', 9090)
-Broadcast server listening on: ('0.0.0.0', 9090)
-URI is: PYRO://10.0.0.15:9090/0a00000f335c20a08d206bbfd347b9edc8
-URI written to: /Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/pyomo/pysp/tests/examples/Pyro_NS_URI
-Name Server started.
-User-defined PH extension module=pyomo.pysp.plugins.phhistoryextension already imported - skipping
-Dispatcher is ready.
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI:PYRO://10.0.0.15:7766/0a00000f335d20a08d218d4c70cee9415f
-This is worker Worker_13150@Ozymandias.local
-Listening for work from dispatcher...
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI: PYRO://10.0.0.15:7766/0a00000f335d20a08d218d4c70cee9415f
-This is client 13151@Ozymandias.local
-Initializing PH
-
-WW PH Extension: Loading user-specified configuration from file=/Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/examples/pysp/farmer/config/wwph.cfg
-WW PH Extension: Loading variable suffixes from file=/Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/examples/pysp/farmer/config/wwph.suffixes
-User-defined PH solution writer module=pyomo.pysp.plugins.jsonsolutionwriter already imported - skipping
-Starting PH
-
-Initiating PH iteration=0
-2014-05-28 18:06:12.725345: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpg95ZSE.tmpZwvt4i.pyomo.lp
-2014-05-28 18:06:12.741668: Solve completed - number of solutions=1
-2014-05-28 18:06:12.754348: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpNmLHPE.tmp2aJH8j.pyomo.lp
-2014-05-28 18:06:12.771605: Solve completed - number of solutions=1
-2014-05-28 18:06:12.784799: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp5QqxB6.tmpCfcp7S.pyomo.lp
-2014-05-28 18:06:12.801499: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.2540 First stage cost avg= 113494.4444 Max-Min=10416.67
-Cumulative run-time=0.16 seconds
-
-Initiating PH iteration=1
-WW PH Extension: Setting mipgap to 0.1000000, as specified in the configuration file
-2014-05-28 18:06:12.815942: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpiIL1Nd.tmpPbDGMP.pyomo.lp
-2014-05-28 18:06:12.835579: Solve completed - number of solutions=1
-2014-05-28 18:06:12.848950: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp8LanWJ.tmpxtcFeI.pyomo.lp
-2014-05-28 18:06:12.869351: Solve completed - number of solutions=1
-2014-05-28 18:06:12.883185: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpvpzbO9.tmph3SaVD.pyomo.lp
-2014-05-28 18:06:12.902821: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.1259 First stage cost avg= 113107.2221 Max-Min= 6943.89
-Cumulative run-time=0.26 seconds
-
-Initiating PH iteration=2
-WW PH Extension: Setting mipgap to 0.0500717, based on current value of the convergence metric
-2014-05-28 18:06:12.917062: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpv8ZsEZ.tmp4fdvJc.pyomo.lp
-2014-05-28 18:06:12.935709: Solve completed - number of solutions=1
-2014-05-28 18:06:12.948368: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpXb9jVJ.tmpFG0NFi.pyomo.lp
-2014-05-28 18:06:12.967305: Solve completed - number of solutions=1
-2014-05-28 18:06:12.980532: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp6zLlgs.tmpmvQeD0.pyomo.lp
-2014-05-28 18:06:12.999672: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0816 First stage cost avg= 112954.6296 Max-Min= 2234.82
-Cumulative run-time=0.36 seconds
-
-Initiating PH iteration=3
-WW PH Extension: Setting mipgap to 0.0327607, based on current value of the convergence metric
-2014-05-28 18:06:13.013052: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpZhDLtE.tmpGv9epB.pyomo.lp
-2014-05-28 18:06:13.033544: Solve completed - number of solutions=1
-2014-05-28 18:06:13.046618: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpFymPAA.tmp2JeD6S.pyomo.lp
-2014-05-28 18:06:13.065781: Solve completed - number of solutions=1
-2014-05-28 18:06:13.079099: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp27HjNd.tmpwAqsnE.pyomo.lp
-2014-05-28 18:06:13.097497: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0796 First stage cost avg= 112963.0248 Max-Min= 2375.31
-Cumulative run-time=0.45 seconds
-
-Initiating PH iteration=4
-WW PH Extension: Setting mipgap to 0.0319973, based on current value of the convergence metric
-2014-05-28 18:06:13.110483: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp1WCcWy.tmpVopmu7.pyomo.lp
-2014-05-28 18:06:13.127288: Solve completed - number of solutions=1
-2014-05-28 18:06:13.139810: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpVFAOXP.tmpFWVRWd.pyomo.lp
-2014-05-28 18:06:13.164425: Solve completed - number of solutions=1
-2014-05-28 18:06:13.179018: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpC7lO8G.tmpGbieHX.pyomo.lp
-2014-05-28 18:06:13.198012: Solve completed - number of solutions=1
-Slamming criteria are satisifed - accelerating convergence
-Slamming variable=DevotedAcreage[CORN] at tree node=RootNode to value=96.8871743104; value=node average (anywhere)
-Fixing variable=DevotedAcreage[CORN] at tree node=RootNode to value=96.8871743104; converged for 0 iterations
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0776 First stage cost avg= 112915.6071 Max-Min= 3047.08
-Cumulative run-time=0.55 seconds
-
-Initiating PH iteration=5
-WW PH Extension: Setting mipgap to 0.0312342, based on current value of the convergence metric
-2014-05-28 18:06:13.210780: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp0mlh7x.tmpi98QCT.pyomo.lp
-2014-05-28 18:06:13.231542: Solve completed - number of solutions=1
-2014-05-28 18:06:13.245621: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpQwSNrJ.tmpfGrMPE.pyomo.lp
-2014-05-28 18:06:13.262839: Solve completed - number of solutions=1
-2014-05-28 18:06:13.275420: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpJHqCJl.tmpohH8EY.pyomo.lp
-2014-05-28 18:06:13.292937: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=1 (total=3)
-Convergence metric= 0.0609 First stage cost avg= 112895.6887 Max-Min= 5246.95
-Cumulative run-time=0.65 seconds
-
-Initiating PH iteration=6
-WW PH Extension: Setting mipgap to 0.0247045, based on current value of the convergence metric
-2014-05-28 18:06:13.306584: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpNGe1KS.tmpY9TZe8.pyomo.lp
-2014-05-28 18:06:13.325295: Solve completed - number of solutions=1
-2014-05-28 18:06:13.337953: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpSP8fOA.tmpv8qR6w.pyomo.lp
-2014-05-28 18:06:13.356253: Solve completed - number of solutions=1
-2014-05-28 18:06:13.368835: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp01kO3H.tmplH6sdM.pyomo.lp
-2014-05-28 18:06:13.386567: Solve completed - number of solutions=1
-Slamming criteria are satisifed - accelerating convergence
-Slamming variable=DevotedAcreage[WHEAT] at tree node=RootNode to value=137.204959966; value=node average (anywhere)
-Fixing variable=DevotedAcreage[WHEAT] at tree node=RootNode to value=137.204959966; converged for 0 iterations
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=1 (total=3)
-Convergence metric= 0.0391 First stage cost avg= 112000.8391 Max-Min= 2624.80
-Cumulative run-time=0.74 seconds
-
-Initiating PH iteration=7
-WW PH Extension: Setting mipgap to 0.0161915, based on current value of the convergence metric
-2014-05-28 18:06:13.399813: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpFgrFUb.tmpKkDkuC.pyomo.lp
-2014-05-28 18:06:13.418929: Solve completed - number of solutions=1
-2014-05-28 18:06:13.432627: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpXUA4Xe.tmpJkP6IY.pyomo.lp
-2014-05-28 18:06:13.450142: Solve completed - number of solutions=1
-2014-05-28 18:06:13.462678: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpNyyjIq.tmpXaITVp.pyomo.lp
-2014-05-28 18:06:13.481163: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=2 (total=3)
-Convergence metric= 0.0000 First stage cost avg= 112000.8392 Max-Min= 0.00
-Cumulative run-time=0.84 seconds
-PH converged - convergence metric is below threshold=0.0001
-Number of discrete variables fixed before final plugin calls=0 (total=0)
-Number of continuous variables fixed before final plugin calls=2 (total=3)
-WW PH extension: Fixing all discrete variables that are converged at termination
-Total number of variables fixed at PH termination due to convergence=0
-PH algorithm history written to file=ph_history.json
-PH complete
-Convergence history:
-Iteration Metric Value
- 0 0.2540
- 1 0.1259
- 2 0.0816
- 3 0.0796
- 4 0.0776
- 5 0.0609
- 6 0.0391
- 7 0.0000
-
-***********************************************************************************************
->>>THE EXPECTED SUM OF THE STAGE COST VARIABLES=-107905.908751<<<
->>>***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise<<<
-***********************************************************************************************
-Final number of discrete variables fixed=0 (total=0)
-Final number of continuous variables fixed=2 (total=3)
-Final variable values:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 96.8872 96.8872 96.8872 Max-Min: 0.0000 Avg: 96.8872
- Index: [SUGAR_BEETS] Values: 265.9079 265.9079 265.9079 Max-Min: 0.0000 Avg: 265.9079
- Index: [WHEAT] Values: 137.2050 137.2050 137.2050 Max-Min: 0.0000 Avg: 137.2050
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 112000.8392 112000.8392 112000.8391 Max-Min: 0.0000 Avg: 112000.8392
-Final costs:
-Scenario Tree Costs
-***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise
-----------------------------------------------------
-Tree Nodes:
-
- Name=AboveAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AboveAverageScenario
- Expected cost of (sub)tree rooted at node=-272111.4913
-
- Name=AverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AverageScenario
- Expected cost of (sub)tree rooted at node=-223364.9995
-
- Name=BelowAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-164243.7528
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- AboveAverageNode
- AverageNode
- BelowAverageNode
- Scenarios:
- AboveAverageScenario
- AverageScenario
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-107905.9088
-
-----------------------------------------------------
-Scenarios:
-
- Name=AboveAverageScenario
- Probability=0.3333
- Leaf Node=AboveAverageNode
- Tree node sequence:
- RootNode
- AboveAverageNode
- Stage= FirstStage Cost=112000.8391
- Stage= SecondStage Cost=-272111.4913
- Total scenario cost=-160110.6522
-
- Name=AverageScenario
- Probability=0.3333
- Leaf Node=AverageNode
- Tree node sequence:
- RootNode
- AverageNode
- Stage= FirstStage Cost=112000.8392
- Stage= SecondStage Cost=-223364.9995
- Total scenario cost=-111364.1604
-
- Name=BelowAverageScenario
- Probability=0.3333
- Leaf Node=BelowAverageNode
- Tree node sequence:
- RootNode
- BelowAverageNode
- Stage= FirstStage Cost=112000.8392
- Stage= SecondStage Cost=-164243.7528
- Total scenario cost=-52242.9136
-
-----------------------------------------------------
-
-Total PH execution time=0.84 seconds
-
-Scenario tree solution written to file=ph_solution.json
-Shutting down Pyro solver components
-Dispatcher received request to shut down - initiating...
-
-Total execution time=3.90 seconds
-Name Server gracefully stopped.
-Lost connection to dispatch server - shutting down...
diff --git a/pyomo/pysp/tests/examples/baselines/TestPHFarmerTrivialBundlesPyro.test14.baseline b/pyomo/pysp/tests/examples/baselines/TestPHFarmerTrivialBundlesPyro.test14.baseline
deleted file mode 100644
index 8ae3d96a274..00000000000
--- a/pyomo/pysp/tests/examples/baselines/TestPHFarmerTrivialBundlesPyro.test14.baseline
+++ /dev/null
@@ -1,289 +0,0 @@
-*** Pyro Name Server ***
-Name server listening on: ('0.0.0.0', 9090)
-Broadcast server listening on: ('0.0.0.0', 9090)
-URI is: PYRO://10.0.0.15:9090/0a00000f338620a08d238b75013dd1c7ce
-URI written to: /Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/pyomo/pysp/tests/examples/Pyro_NS_URI
-Name Server started.
-User-defined PH extension module=pyomo.pysp.plugins.phhistoryextension already imported - skipping
-Trying to import module=/Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/examples/pysp/farmer/config/aggregategetter.py
-Module successfully loaded
-Trying to import module=/Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/examples/pysp/farmer/config/rhosetter.py
-Module successfully loaded
-Trying to import module=/Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/examples/pysp/farmer/config/boundsetter.py
-Module successfully loaded
-Dispatcher is ready.
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI:PYRO://10.0.0.15:7766/0a00000f338720a08d24ae437cf5c5e8df
-This is worker Worker_13192@Ozymandias.local
-Listening for work from dispatcher...
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI: PYRO://10.0.0.15:7766/0a00000f338720a08d24ae437cf5c5e8df
-This is client 13193@Ozymandias.local
-Initializing PH
-
-Executing user aggregate getter callback function
-Executing user rho setter callback function
-Executing user bound setter callback function
-User-defined PH solution writer module=pyomo.pysp.plugins.jsonsolutionwriter already imported - skipping
-Starting PH
-
-Initiating PH iteration=0
-2014-05-28 18:06:20.718030: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpgLPV4l.tmpP97wZI.pyomo.lp
-2014-05-28 18:06:20.733702: Solve completed - number of solutions=1
-2014-05-28 18:06:20.747257: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpMUvH2r.tmpQnOijV.pyomo.lp
-2014-05-28 18:06:20.762395: Solve completed - number of solutions=1
-2014-05-28 18:06:20.774835: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmprq5wlp.tmpVkgxte.pyomo.lp
-2014-05-28 18:06:20.790025: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.2540 First stage cost avg= 113494.4444 Max-Min=10416.67
-Cumulative run-time=0.16 seconds
-
-Initiating PH iteration=1
-2014-05-28 18:06:20.802622: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpVxpCAE.tmpdc4YFW.pyomo.lp
-2014-05-28 18:06:20.821728: Solve completed - number of solutions=1
-2014-05-28 18:06:20.834438: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpQ05seT.tmp_5mDXo.pyomo.lp
-2014-05-28 18:06:20.852253: Solve completed - number of solutions=1
-2014-05-28 18:06:20.865929: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmppLZR_M.tmpubSNvl.pyomo.lp
-2014-05-28 18:06:20.882502: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.2540 First stage cost avg= 113494.4444 Max-Min=10416.67
-Cumulative run-time=0.25 seconds
-
-Initiating PH iteration=2
-2014-05-28 18:06:20.895134: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpcFQqOE.tmpjpyGdQ.pyomo.lp
-2014-05-28 18:06:20.913325: Solve completed - number of solutions=1
-2014-05-28 18:06:20.926349: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpCyjShS.tmpQcH549.pyomo.lp
-2014-05-28 18:06:20.946216: Solve completed - number of solutions=1
-2014-05-28 18:06:20.958794: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmptgBpXM.tmp85EUjj.pyomo.lp
-2014-05-28 18:06:20.975472: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.2540 First stage cost avg= 113494.4445 Max-Min=10416.67
-Cumulative run-time=0.34 seconds
-
-Initiating PH iteration=3
-2014-05-28 18:06:20.989008: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpQMVtPZ.tmpuVAOXi.pyomo.lp
-2014-05-28 18:06:21.007273: Solve completed - number of solutions=1
-2014-05-28 18:06:21.019970: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpwLxmfM.tmpUB95_b.pyomo.lp
-2014-05-28 18:06:21.039962: Solve completed - number of solutions=1
-2014-05-28 18:06:21.053571: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpR_0l0X.tmpmitmsH.pyomo.lp
-2014-05-28 18:06:21.078293: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.1991 First stage cost avg= 113545.3418 Max-Min= 9341.08
-Cumulative run-time=0.45 seconds
-
-Initiating PH iteration=4
-2014-05-28 18:06:21.094550: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpVsMZ9K.tmpIgQ51I.pyomo.lp
-2014-05-28 18:06:21.113706: Solve completed - number of solutions=1
-2014-05-28 18:06:21.127638: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpYPoe8c.tmp6szjxd.pyomo.lp
-2014-05-28 18:06:21.149036: Solve completed - number of solutions=1
-2014-05-28 18:06:21.162252: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpOUlgNi.tmptxe5Xm.pyomo.lp
-2014-05-28 18:06:21.182758: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.1166 First stage cost avg= 113837.6523 Max-Min= 6301.86
-Cumulative run-time=0.55 seconds
-
-Initiating PH iteration=5
-2014-05-28 18:06:21.195854: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp6xK8kL.tmpmOy_CB.pyomo.lp
-2014-05-28 18:06:21.218148: Solve completed - number of solutions=1
-2014-05-28 18:06:21.231397: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpt9usLA.tmpKoRFij.pyomo.lp
-2014-05-28 18:06:21.253670: Solve completed - number of solutions=1
-2014-05-28 18:06:21.266629: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpUyYp7V.tmp34lo62.pyomo.lp
-2014-05-28 18:06:21.288081: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.1032 First stage cost avg= 114197.8075 Max-Min= 3806.58
-Cumulative run-time=0.65 seconds
-
-Initiating PH iteration=6
-2014-05-28 18:06:21.300861: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpM8gbee.tmpM4bJeX.pyomo.lp
-2014-05-28 18:06:21.323354: Solve completed - number of solutions=1
-2014-05-28 18:06:21.337144: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp8UbC6L.tmp3K4x5I.pyomo.lp
-2014-05-28 18:06:21.360615: Solve completed - number of solutions=1
-2014-05-28 18:06:21.376220: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp8_6KMG.tmpaf7ye9.pyomo.lp
-2014-05-28 18:06:21.399780: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.1094 First stage cost avg= 114422.4887 Max-Min= 3132.53
-Cumulative run-time=0.77 seconds
-
-Initiating PH iteration=7
-2014-05-28 18:06:21.413518: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpptSjFY.tmpQWumzr.pyomo.lp
-2014-05-28 18:06:21.434565: Solve completed - number of solutions=1
-2014-05-28 18:06:21.448282: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp2mzX11.tmp8iheOv.pyomo.lp
-2014-05-28 18:06:21.470798: Solve completed - number of solutions=1
-2014-05-28 18:06:21.483589: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmplgEEUU.tmpmELnLg.pyomo.lp
-2014-05-28 18:06:21.504644: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.1055 First stage cost avg= 114278.3496 Max-Min= 3564.95
-Cumulative run-time=0.87 seconds
-
-Initiating PH iteration=8
-2014-05-28 18:06:21.517692: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpOGLJka.tmp3jUflO.pyomo.lp
-2014-05-28 18:06:21.537606: Solve completed - number of solutions=1
-2014-05-28 18:06:21.550400: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpHDvxyH.tmpB2TSDl.pyomo.lp
-2014-05-28 18:06:21.573372: Solve completed - number of solutions=1
-2014-05-28 18:06:21.588760: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpegDln_.tmpVfMLwq.pyomo.lp
-2014-05-28 18:06:21.615365: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.1022 First stage cost avg= 114107.3631 Max-Min= 4077.91
-Cumulative run-time=0.98 seconds
-
-Initiating PH iteration=9
-2014-05-28 18:06:21.631042: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp0FPLY5.tmpNO0Xgd.pyomo.lp
-2014-05-28 18:06:21.654200: Solve completed - number of solutions=1
-2014-05-28 18:06:21.668232: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpdaeH2s.tmpxAeEI8.pyomo.lp
-2014-05-28 18:06:21.694804: Solve completed - number of solutions=1
-2014-05-28 18:06:21.709591: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp5fEvQr.tmpbDF7tx.pyomo.lp
-2014-05-28 18:06:21.732782: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.1020 First stage cost avg= 114041.4185 Max-Min= 4275.74
-Cumulative run-time=1.10 seconds
-
-Initiating PH iteration=10
-2014-05-28 18:06:21.746788: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp2niUBO.tmpm1LJak.pyomo.lp
-2014-05-28 18:06:21.764811: Solve completed - number of solutions=1
-2014-05-28 18:06:21.778125: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp8nDaR1.tmpqYaM_Z.pyomo.lp
-2014-05-28 18:06:21.803569: Solve completed - number of solutions=1
-2014-05-28 18:06:21.816720: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpYqTwmG.tmpDtzBJo.pyomo.lp
-2014-05-28 18:06:21.837212: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.1021 First stage cost avg= 114054.4509 Max-Min= 4236.65
-Cumulative run-time=1.20 seconds
-Halting PH - reached maximal iteration count=10
-Number of discrete variables fixed before final plugin calls=0 (total=0)
-Number of continuous variables fixed before final plugin calls=0 (total=3)
-PH algorithm history written to file=ph_history.json
-PH complete
-Convergence history:
-Iteration Metric Value
- 0 0.2540
- 1 0.2540
- 2 0.2540
- 3 0.1991
- 4 0.1166
- 5 0.1032
- 6 0.1094
- 7 0.1055
- 8 0.1022
- 9 0.1020
- 10 0.1021
-
-***********************************************************************************************
->>>THE EXPECTED SUM OF THE STAGE COST VARIABLES=-111591.252155<<<
->>>***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise<<<
-***********************************************************************************************
-Final number of discrete variables fixed=0 (total=0)
-Final number of continuous variables fixed=0 (total=3)
-Final variable values:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 100.0000 80.0000 115.7919 Max-Min: 35.7919 Avg: 98.5973
- Index: [SUGAR_BEETS] Values: 300.0000 300.0000 250.0000 Max-Min: 50.0000 Avg: 283.3333
- Index: [WHEAT] Values: 100.0000 120.0000 134.2081 Max-Min: 34.2081 Avg: 118.0694
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 116000.0000 114400.0000 111763.3526 Max-Min: 4236.6473 Avg: 114054.4509
-Final costs:
-Scenario Tree Costs
-***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise
-----------------------------------------------------
-Tree Nodes:
-
- Name=AboveAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AboveAverageScenario
- Expected cost of (sub)tree rooted at node=-276973.7569
-
- Name=AverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AverageScenario
- Expected cost of (sub)tree rooted at node=-232999.9995
-
- Name=BelowAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-172799.9999
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- AboveAverageNode
- AverageNode
- BelowAverageNode
- Scenarios:
- AboveAverageScenario
- AverageScenario
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-111591.2522
-
-----------------------------------------------------
-Scenarios:
-
- Name=AboveAverageScenario
- Probability=0.3333
- Leaf Node=AboveAverageNode
- Tree node sequence:
- RootNode
- AboveAverageNode
- Stage= FirstStage Cost=111763.3526
- Stage= SecondStage Cost=-276973.7569
- Total scenario cost=-165210.4042
-
- Name=AverageScenario
- Probability=0.3333
- Leaf Node=AverageNode
- Tree node sequence:
- RootNode
- AverageNode
- Stage= FirstStage Cost=114400.0000
- Stage= SecondStage Cost=-232999.9995
- Total scenario cost=-118599.9994
-
- Name=BelowAverageScenario
- Probability=0.3333
- Leaf Node=BelowAverageNode
- Tree node sequence:
- RootNode
- BelowAverageNode
- Stage= FirstStage Cost=116000.0000
- Stage= SecondStage Cost=-172799.9999
- Total scenario cost=-56799.9999
-
-----------------------------------------------------
-
-Total PH execution time=1.21 seconds
-
-Scenario tree solution written to file=ph_solution.json
-Shutting down Pyro solver components
-Dispatcher received request to shut down - initiating...
-
-Total execution time=4.26 seconds
-Name Server gracefully stopped.
-Lost connection to dispatch server - shutting down...
diff --git a/pyomo/pysp/tests/examples/baselines/TestPHFarmerTrivialBundlesPyro.test14_withef.baseline b/pyomo/pysp/tests/examples/baselines/TestPHFarmerTrivialBundlesPyro.test14_withef.baseline
deleted file mode 100644
index 9d647a84ffc..00000000000
--- a/pyomo/pysp/tests/examples/baselines/TestPHFarmerTrivialBundlesPyro.test14_withef.baseline
+++ /dev/null
@@ -1,436 +0,0 @@
-*** Pyro Name Server ***
-Name server listening on: ('0.0.0.0', 9090)
-Broadcast server listening on: ('0.0.0.0', 9090)
-URI is: PYRO://10.0.0.253:9090/0a0000fddf9f20b9dcc7c5fbe0cceb602a
-URI written to: /Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/pyomo/pysp/tests/examples/Pyro_NS_URI
-Name Server started.
-User-defined PH extension module=pyomo.pysp.plugins.phhistoryextension already imported - skipping
-Trying to import module=/Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/examples/pysp/farmer/config/aggregategetter.py
-Module successfully loaded
-Trying to import module=/Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/examples/pysp/farmer/config/rhosetter.py
-Module successfully loaded
-Trying to import module=/Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/examples/pysp/farmer/config/boundsetter.py
-Module successfully loaded
-Dispatcher is ready.
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI:PYRO://10.0.0.253:7766/0a0000fddfa020b9dcc8e7cae0824332fa
-This is worker Worker_57249@Ozymandias.local
-Listening for work from dispatcher...
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI: PYRO://10.0.0.253:7766/0a0000fddfa020b9dcc8e7cae0824332fa
-This is client 57250@Ozymandias.local
-Initializing PH
-
-Executing user aggregate getter callback function
-Executing user rho setter callback function
-Executing user bound setter callback function
-User-defined PH solution writer module=pyomo.pysp.plugins.jsonsolutionwriter already imported - skipping
-Starting PH
-
-Initiating PH iteration=0
-2014-07-16 21:41:18.613526: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpGMG7za.tmpMtYpcM.pyomo.lp
-2014-07-16 21:41:18.627002: Solve completed - number of solutions=1
-2014-07-16 21:41:18.640413: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpx3er3F.tmp2p2TQ7.pyomo.lp
-2014-07-16 21:41:18.652431: Solve completed - number of solutions=1
-2014-07-16 21:41:18.665727: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpsKTwgh.tmpKtVJPf.pyomo.lp
-2014-07-16 21:41:18.678610: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.2540 First stage cost avg= 113494.4444 Max-Min=10416.67
-Cumulative run-time=0.15 seconds
-
-Initiating PH iteration=1
-2014-07-16 21:41:18.691950: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpWPSq_t.tmpB2uO2H.pyomo.lp
-2014-07-16 21:41:18.708416: Solve completed - number of solutions=1
-2014-07-16 21:41:18.722185: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp0pRPSo.tmpWztFXt.pyomo.lp
-2014-07-16 21:41:18.738028: Solve completed - number of solutions=1
-2014-07-16 21:41:18.752712: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpRPb1m_.tmpjSiye3.pyomo.lp
-2014-07-16 21:41:18.767843: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.2540 First stage cost avg= 113494.4444 Max-Min=10416.67
-Cumulative run-time=0.24 seconds
-
-Initiating PH iteration=2
-2014-07-16 21:41:18.781716: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpCGe3ce.tmpkuWtIB.pyomo.lp
-2014-07-16 21:41:18.797585: Solve completed - number of solutions=1
-2014-07-16 21:41:18.810869: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpCjM5Ls.tmp7SHvyT.pyomo.lp
-2014-07-16 21:41:18.826065: Solve completed - number of solutions=1
-2014-07-16 21:41:18.839662: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpAJAHsG.tmp9Pjr4B.pyomo.lp
-2014-07-16 21:41:18.855073: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.2540 First stage cost avg= 113494.4445 Max-Min=10416.67
-Cumulative run-time=0.33 seconds
-
-Initiating PH iteration=3
-2014-07-16 21:41:18.869380: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpCgWYxw.tmpxhYxAf.pyomo.lp
-2014-07-16 21:41:18.886384: Solve completed - number of solutions=1
-2014-07-16 21:41:18.901159: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpcG5Zgf.tmp6wS2bt.pyomo.lp
-2014-07-16 21:41:18.916299: Solve completed - number of solutions=1
-2014-07-16 21:41:18.929843: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp0u0hQV.tmpVkzNZC.pyomo.lp
-2014-07-16 21:41:18.945550: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.1991 First stage cost avg= 113545.3418 Max-Min= 9341.08
-Cumulative run-time=0.42 seconds
-
-Initiating PH iteration=4
-2014-07-16 21:41:18.960481: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp1gP4nx.tmpZRteTe.pyomo.lp
-2014-07-16 21:41:18.976219: Solve completed - number of solutions=1
-2014-07-16 21:41:18.991135: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpv4NaD8.tmp_Fv0wt.pyomo.lp
-2014-07-16 21:41:19.006060: Solve completed - number of solutions=1
-2014-07-16 21:41:19.020450: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp7IkpMW.tmpfOrbro.pyomo.lp
-2014-07-16 21:41:19.036462: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.1166 First stage cost avg= 113837.6523 Max-Min= 6301.86
-Cumulative run-time=0.51 seconds
-
-Initiating PH iteration=5
-2014-07-16 21:41:19.049562: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpN5GbPx.tmpzixblf.pyomo.lp
-2014-07-16 21:41:19.065534: Solve completed - number of solutions=1
-2014-07-16 21:41:19.078800: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp8nLdou.tmpTpJwl2.pyomo.lp
-2014-07-16 21:41:19.094669: Solve completed - number of solutions=1
-2014-07-16 21:41:19.108911: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp7J4ye3.tmptdUczo.pyomo.lp
-2014-07-16 21:41:19.125680: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.1032 First stage cost avg= 114197.8075 Max-Min= 3806.58
-Cumulative run-time=0.60 seconds
-
-Initiating PH iteration=6
-2014-07-16 21:41:19.138650: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpHtsp6_.tmp4PzouG.pyomo.lp
-2014-07-16 21:41:19.154362: Solve completed - number of solutions=1
-2014-07-16 21:41:19.168541: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpqNDi0e.tmp8_MFKY.pyomo.lp
-2014-07-16 21:41:19.184142: Solve completed - number of solutions=1
-2014-07-16 21:41:19.197985: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpyUT6kC.tmpzybQev.pyomo.lp
-2014-07-16 21:41:19.212789: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.1094 First stage cost avg= 114422.4887 Max-Min= 3132.53
-Cumulative run-time=0.69 seconds
-
-Initiating PH iteration=7
-2014-07-16 21:41:19.226259: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpuDRhUk.tmp6pBdvq.pyomo.lp
-2014-07-16 21:41:19.244536: Solve completed - number of solutions=1
-2014-07-16 21:41:19.258434: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpwsvQH1.tmpGH_FAT.pyomo.lp
-2014-07-16 21:41:19.273736: Solve completed - number of solutions=1
-2014-07-16 21:41:19.287485: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpwA34xT.tmp3G1uIU.pyomo.lp
-2014-07-16 21:41:19.302136: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.1055 First stage cost avg= 114278.3496 Max-Min= 3564.95
-Cumulative run-time=0.78 seconds
-
-Initiating PH iteration=8
-2014-07-16 21:41:19.315626: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpo9IIuR.tmpkMQzlQ.pyomo.lp
-2014-07-16 21:41:19.331353: Solve completed - number of solutions=1
-2014-07-16 21:41:19.344748: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpY4F5Ij.tmpzbyu48.pyomo.lp
-2014-07-16 21:41:19.359411: Solve completed - number of solutions=1
-2014-07-16 21:41:19.372857: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpTg6zKC.tmpBmzieJ.pyomo.lp
-2014-07-16 21:41:19.388032: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.1022 First stage cost avg= 114107.3631 Max-Min= 4077.91
-Cumulative run-time=0.86 seconds
-
-Initiating PH iteration=9
-2014-07-16 21:41:19.401012: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpNqq5Wp.tmp3iHHfR.pyomo.lp
-2014-07-16 21:41:19.416648: Solve completed - number of solutions=1
-2014-07-16 21:41:19.430449: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpfo2yKk.tmpO2UIX4.pyomo.lp
-2014-07-16 21:41:19.444994: Solve completed - number of solutions=1
-2014-07-16 21:41:19.459514: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp2GwirX.tmpsJjmcI.pyomo.lp
-2014-07-16 21:41:19.474324: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.1020 First stage cost avg= 114041.4185 Max-Min= 4275.74
-Cumulative run-time=0.95 seconds
-
-Initiating PH iteration=10
-2014-07-16 21:41:19.487926: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpFKsTvh.tmpMqoHJd.pyomo.lp
-2014-07-16 21:41:19.503403: Solve completed - number of solutions=1
-2014-07-16 21:41:19.516944: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmprZ9NOZ.tmpyfKTRV.pyomo.lp
-2014-07-16 21:41:19.531567: Solve completed - number of solutions=1
-2014-07-16 21:41:19.544984: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpSs_Yzf.tmp5VQPf3.pyomo.lp
-2014-07-16 21:41:19.559557: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.1021 First stage cost avg= 114054.4509 Max-Min= 4236.65
-Cumulative run-time=1.03 seconds
-Halting PH - reached maximal iteration count=10
-Number of discrete variables fixed before final plugin calls=0 (total=0)
-Number of continuous variables fixed before final plugin calls=0 (total=3)
-PH algorithm history written to file=ph_history.json
-PH complete
-Convergence history:
-Iteration Metric Value
- 0 0.2540
- 1 0.2540
- 2 0.2540
- 3 0.1991
- 4 0.1166
- 5 0.1032
- 6 0.1094
- 7 0.1055
- 8 0.1022
- 9 0.1020
- 10 0.1021
-
-***********************************************************************************************
->>>THE EXPECTED SUM OF THE STAGE COST VARIABLES=-111591.252155<<<
->>>***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise<<<
-***********************************************************************************************
-Final number of discrete variables fixed=0 (total=0)
-Final number of continuous variables fixed=0 (total=3)
-Final variable values:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 100.0000 80.0000 115.7919 Max-Min: 35.7919 Avg: 98.5973
- Index: [SUGAR_BEETS] Values: 300.0000 300.0000 250.0000 Max-Min: 50.0000 Avg: 283.3333
- Index: [WHEAT] Values: 100.0000 120.0000 134.2081 Max-Min: 34.2081 Avg: 118.0694
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 116000.0000 114400.0000 111763.3526 Max-Min: 4236.6473 Avg: 114054.4509
-Final costs:
-Scenario Tree Costs
-***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise
-----------------------------------------------------
-Tree Nodes:
-
- Name=AboveAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AboveAverageScenario
- Expected cost of (sub)tree rooted at node=-276973.7569
-
- Name=AverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AverageScenario
- Expected cost of (sub)tree rooted at node=-232999.9995
-
- Name=BelowAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-172799.9999
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- AboveAverageNode
- AverageNode
- BelowAverageNode
- Scenarios:
- AboveAverageScenario
- AverageScenario
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-111591.2522
-
-----------------------------------------------------
-Scenarios:
-
- Name=AboveAverageScenario
- Probability=0.3333
- Leaf Node=AboveAverageNode
- Tree node sequence:
- RootNode
- AboveAverageNode
- Stage= FirstStage Cost=111763.3526
- Stage= SecondStage Cost=-276973.7569
- Total scenario cost=-165210.4042
-
- Name=AverageScenario
- Probability=0.3333
- Leaf Node=AverageNode
- Tree node sequence:
- RootNode
- AverageNode
- Stage= FirstStage Cost=114400.0000
- Stage= SecondStage Cost=-232999.9995
- Total scenario cost=-118599.9994
-
- Name=BelowAverageScenario
- Probability=0.3333
- Leaf Node=BelowAverageNode
- Tree node sequence:
- RootNode
- BelowAverageNode
- Stage= FirstStage Cost=116000.0000
- Stage= SecondStage Cost=-172799.9999
- Total scenario cost=-56799.9999
-
-----------------------------------------------------
-
-Total PH execution time=1.04 seconds
-
-Scenario tree solution written to file=ph_solution.json
-Pushing fixed variable statuses to scenario instances
-Number of discrete variables fixed prior to ef creation=0 (total=0)
-Number of continuous variables fixed prior to ef creation=0 (total=3)
-Creating extensive form for remainder problem
-Time to construct extensive form instance=0.00 seconds
-Queuing extensive form solve
-Waiting for extensive form solve
-Done with extensive form solve - loading results
-Storing solution in scenario tree
-Time to solve and load results for the extensive form=0.02 seconds
-
-***********************************************************************************************
->>>THE EXPECTED SUM OF THE STAGE COST VARIABLES=-108390.00001<<<
-***********************************************************************************************
-
-Extensive form solution:
-----------------------------------------------------
-Tree Nodes:
-
- Name=AboveAverageNode
- Stage=SecondStage
- Parent=RootNode
- Variables:
- QuantitySubQuotaSold[CORN]=48.0
- QuantitySubQuotaSold[SUGAR_BEETS]=6000.0
- QuantitySubQuotaSold[WHEAT]=310.0
-
- Name=AverageNode
- Stage=SecondStage
- Parent=RootNode
- Variables:
- QuantitySubQuotaSold[SUGAR_BEETS]=5000.0
- QuantitySubQuotaSold[WHEAT]=225.0
-
- Name=BelowAverageNode
- Stage=SecondStage
- Parent=RootNode
- Variables:
- QuantityPurchased[CORN]=48.0
- QuantitySubQuotaSold[SUGAR_BEETS]=4000.0
- QuantitySubQuotaSold[WHEAT]=140.0
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Variables:
- DevotedAcreage[CORN]=80.0
- DevotedAcreage[SUGAR_BEETS]=250.0
- DevotedAcreage[WHEAT]=170.0
-
-
-Extensive form costs:
-Scenario Tree Costs
-***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise
-----------------------------------------------------
-Tree Nodes:
-
- Name=AboveAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AboveAverageScenario
- Expected cost of (sub)tree rooted at node=-275900.0000
-
- Name=AverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AverageScenario
- Expected cost of (sub)tree rooted at node=-218250.0000
-
- Name=BelowAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-157720.0000
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- AboveAverageNode
- AverageNode
- BelowAverageNode
- Scenarios:
- AboveAverageScenario
- AverageScenario
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-108390.0000
-
-----------------------------------------------------
-Scenarios:
-
- Name=AboveAverageScenario
- Probability=0.3333
- Leaf Node=AboveAverageNode
- Tree node sequence:
- RootNode
- AboveAverageNode
- Stage= FirstStage Cost=108900.0000
- Stage= SecondStage Cost=-275900.0000
- Total scenario cost=-167000.0000
-
- Name=AverageScenario
- Probability=0.3333
- Leaf Node=AverageNode
- Tree node sequence:
- RootNode
- AverageNode
- Stage= FirstStage Cost=108900.0000
- Stage= SecondStage Cost=-218250.0000
- Total scenario cost=-109350.0000
-
- Name=BelowAverageScenario
- Probability=0.3333
- Leaf Node=BelowAverageNode
- Tree node sequence:
- RootNode
- BelowAverageNode
- Stage= FirstStage Cost=108900.0000
- Stage= SecondStage Cost=-157720.0000
- Total scenario cost=-48820.0000
-
-----------------------------------------------------
-Scenario tree solution written to file=postphef_solution.json
-Shutting down Pyro solver components
-Dispatcher received request to shut down - initiating...
-
-Total execution time=4.12 seconds
-Name Server gracefully stopped.
-Lost connection to dispatch server - shutting down...
diff --git a/pyomo/pysp/tests/examples/baselines/TestPHFarmerTrivialBundlesPyro.test1_withef.baseline b/pyomo/pysp/tests/examples/baselines/TestPHFarmerTrivialBundlesPyro.test1_withef.baseline
deleted file mode 100644
index c63ad050324..00000000000
--- a/pyomo/pysp/tests/examples/baselines/TestPHFarmerTrivialBundlesPyro.test1_withef.baseline
+++ /dev/null
@@ -1,749 +0,0 @@
-*** Pyro Name Server ***
-Name server listening on: ('0.0.0.0', 9090)
-Broadcast server listening on: ('0.0.0.0', 9090)
-URI is: PYRO://10.0.0.253:9090/0a0000fd1f3120b9bd373e325e88b61f12
-URI written to: /Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/pyomo/pysp/tests/examples/Pyro_NS_URI
-Name Server started.
-User-defined PH extension module=pyomo.pysp.plugins.phhistoryextension already imported - skipping
-Dispatcher is ready.
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI:PYRO://10.0.0.253:7766/0a0000fd1f3220b9bd385f7f9a1b7478e7
-This is worker Worker_7987@Ozymandias.local
-Listening for work from dispatcher...
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI: PYRO://10.0.0.253:7766/0a0000fd1f3220b9bd385f7f9a1b7478e7
-This is client 7988@Ozymandias.local
-Initializing PH
-
-User-defined PH solution writer module=pyomo.pysp.plugins.jsonsolutionwriter already imported - skipping
-Starting PH
-
-Initiating PH iteration=0
-2014-07-16 15:56:32.444933: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpLjafBY.tmpRg4LQp.pyomo.lp
-2014-07-16 15:56:32.457739: Solve completed - number of solutions=1
-2014-07-16 15:56:32.470947: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpjjHCYf.tmp2VwfRq.pyomo.lp
-2014-07-16 15:56:32.481743: Solve completed - number of solutions=1
-2014-07-16 15:56:32.494020: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp76rmzM.tmphD2RDf.pyomo.lp
-2014-07-16 15:56:32.504735: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.2540 First stage cost avg= 113494.4444 Max-Min=10416.67
-Cumulative run-time=0.14 seconds
-
-Initiating PH iteration=1
-2014-07-16 15:56:32.517400: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmphBWNRn.tmpBZMKHj.pyomo.lp
-2014-07-16 15:56:32.533533: Solve completed - number of solutions=1
-2014-07-16 15:56:32.545955: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpbowqc2.tmpeq2ZEB.pyomo.lp
-2014-07-16 15:56:32.560818: Solve completed - number of solutions=1
-2014-07-16 15:56:32.573435: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpRWuCei.tmpl6bE2x.pyomo.lp
-2014-07-16 15:56:32.588270: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.1259 First stage cost avg= 113107.2221 Max-Min= 6943.89
-Cumulative run-time=0.23 seconds
-
-Initiating PH iteration=2
-2014-07-16 15:56:32.600988: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpXKuZxh.tmpoBkLIU.pyomo.lp
-2014-07-16 15:56:32.616110: Solve completed - number of solutions=1
-2014-07-16 15:56:32.628612: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpJilGkW.tmpUYgTpi.pyomo.lp
-2014-07-16 15:56:32.642303: Solve completed - number of solutions=1
-2014-07-16 15:56:32.655075: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpKpt6fM.tmpP1qtmp.pyomo.lp
-2014-07-16 15:56:32.668968: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0816 First stage cost avg= 112954.6296 Max-Min= 2234.82
-Cumulative run-time=0.31 seconds
-
-Initiating PH iteration=3
-2014-07-16 15:56:32.681734: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpV3K3la.tmpKFhBMz.pyomo.lp
-2014-07-16 15:56:32.696659: Solve completed - number of solutions=1
-2014-07-16 15:56:32.709192: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpu2H7Px.tmpPE1kui.pyomo.lp
-2014-07-16 15:56:32.722350: Solve completed - number of solutions=1
-2014-07-16 15:56:32.734795: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpWbIrf1.tmpIvLkAv.pyomo.lp
-2014-07-16 15:56:32.747981: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0796 First stage cost avg= 112963.0248 Max-Min= 2375.31
-Cumulative run-time=0.38 seconds
-
-Initiating PH iteration=4
-2014-07-16 15:56:32.760597: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp1q52gd.tmpfmJivb.pyomo.lp
-2014-07-16 15:56:32.775940: Solve completed - number of solutions=1
-2014-07-16 15:56:32.788518: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpVMDBZ_.tmpRLOsoS.pyomo.lp
-2014-07-16 15:56:32.802714: Solve completed - number of solutions=1
-2014-07-16 15:56:32.815186: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpm_IKTh.tmpOtOuzJ.pyomo.lp
-2014-07-16 15:56:32.828950: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0776 First stage cost avg= 112915.6071 Max-Min= 3047.08
-Cumulative run-time=0.47 seconds
-
-Initiating PH iteration=5
-2014-07-16 15:56:32.841686: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpscASUp.tmphTb7uA.pyomo.lp
-2014-07-16 15:56:32.856867: Solve completed - number of solutions=1
-2014-07-16 15:56:32.869607: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpdM9qdv.tmpD6Yc8f.pyomo.lp
-2014-07-16 15:56:32.883978: Solve completed - number of solutions=1
-2014-07-16 15:56:32.897410: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpA6Hsic.tmpdILybh.pyomo.lp
-2014-07-16 15:56:32.911076: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0794 First stage cost avg= 112825.3926 Max-Min= 3339.81
-Cumulative run-time=0.55 seconds
-
-Initiating PH iteration=6
-2014-07-16 15:56:32.923736: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpqBTxdY.tmpmclRZf.pyomo.lp
-2014-07-16 15:56:32.938928: Solve completed - number of solutions=1
-2014-07-16 15:56:32.951424: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpuAh9mq.tmpCqmbUN.pyomo.lp
-2014-07-16 15:56:32.965389: Solve completed - number of solutions=1
-2014-07-16 15:56:32.978905: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpDYuxME.tmpNFK2Bp.pyomo.lp
-2014-07-16 15:56:32.992352: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0668 First stage cost avg= 112317.9502 Max-Min= 2019.60
-Cumulative run-time=0.63 seconds
-
-Initiating PH iteration=7
-2014-07-16 15:56:33.005354: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp1qB1ip.tmp4QEbBn.pyomo.lp
-2014-07-16 15:56:33.020638: Solve completed - number of solutions=1
-2014-07-16 15:56:33.034048: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpGIZbR3.tmpQty5tb.pyomo.lp
-2014-07-16 15:56:33.047734: Solve completed - number of solutions=1
-2014-07-16 15:56:33.060087: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmplvLtwZ.tmpU3b88T.pyomo.lp
-2014-07-16 15:56:33.073137: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0542 First stage cost avg= 111364.4660 Max-Min= 1181.85
-Cumulative run-time=0.71 seconds
-
-Initiating PH iteration=8
-2014-07-16 15:56:33.086313: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpCKIkhm.tmp6O0DHP.pyomo.lp
-2014-07-16 15:56:33.101971: Solve completed - number of solutions=1
-2014-07-16 15:56:33.115406: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpJH_Q9F.tmpMbMhSb.pyomo.lp
-2014-07-16 15:56:33.128962: Solve completed - number of solutions=1
-2014-07-16 15:56:33.141428: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpf3yvbj.tmpfn01hi.pyomo.lp
-2014-07-16 15:56:33.155998: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0360 First stage cost avg= 110283.4074 Max-Min= 463.23
-Cumulative run-time=0.79 seconds
-
-Initiating PH iteration=9
-2014-07-16 15:56:33.169231: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpGeqw5X.tmphcc1ZD.pyomo.lp
-2014-07-16 15:56:33.184041: Solve completed - number of solutions=1
-2014-07-16 15:56:33.196484: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpD9zVLV.tmpFZneLV.pyomo.lp
-2014-07-16 15:56:33.211032: Solve completed - number of solutions=1
-2014-07-16 15:56:33.224315: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpoQK6gY.tmpzS44F9.pyomo.lp
-2014-07-16 15:56:33.238013: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0243 First stage cost avg= 109399.2542 Max-Min= 363.90
-Cumulative run-time=0.87 seconds
-
-Initiating PH iteration=10
-2014-07-16 15:56:33.250770: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpk8xF6e.tmpwLGnOd.pyomo.lp
-2014-07-16 15:56:33.265976: Solve completed - number of solutions=1
-2014-07-16 15:56:33.278373: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpVZ7IKD.tmpPcur8Z.pyomo.lp
-2014-07-16 15:56:33.292447: Solve completed - number of solutions=1
-2014-07-16 15:56:33.305101: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpA8npOh.tmprrKyoR.pyomo.lp
-2014-07-16 15:56:33.319574: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0256 First stage cost avg= 108834.1930 Max-Min= 933.90
-Cumulative run-time=0.96 seconds
-
-Initiating PH iteration=11
-2014-07-16 15:56:33.332374: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpMkh3Jh.tmpMr9KG8.pyomo.lp
-2014-07-16 15:56:33.347275: Solve completed - number of solutions=1
-2014-07-16 15:56:33.359744: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpU0sLXw.tmpgqgF01.pyomo.lp
-2014-07-16 15:56:33.374661: Solve completed - number of solutions=1
-2014-07-16 15:56:33.388042: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpAi9O8e.tmpjfG8Sq.pyomo.lp
-2014-07-16 15:56:33.401510: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0248 First stage cost avg= 108575.3219 Max-Min= 918.57
-Cumulative run-time=1.04 seconds
-
-Initiating PH iteration=12
-2014-07-16 15:56:33.414189: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpchydBY.tmpciX1Vw.pyomo.lp
-2014-07-16 15:56:33.429074: Solve completed - number of solutions=1
-2014-07-16 15:56:33.441633: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpi_mcUb.tmpLRXX8L.pyomo.lp
-2014-07-16 15:56:33.456531: Solve completed - number of solutions=1
-2014-07-16 15:56:33.469617: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpcrlU_Q.tmpT7IpTA.pyomo.lp
-2014-07-16 15:56:33.483975: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0163 First stage cost avg= 108513.5347 Max-Min= 591.25
-Cumulative run-time=1.12 seconds
-
-Initiating PH iteration=13
-2014-07-16 15:56:33.496930: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp2_Z_Hf.tmpZ_LJ_C.pyomo.lp
-2014-07-16 15:56:33.511325: Solve completed - number of solutions=1
-2014-07-16 15:56:33.524865: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpVdhmZW.tmpAMXA5P.pyomo.lp
-2014-07-16 15:56:33.539308: Solve completed - number of solutions=1
-2014-07-16 15:56:33.552181: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpu0ivaT.tmp_wEvHQ.pyomo.lp
-2014-07-16 15:56:33.566448: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0081 First stage cost avg= 108528.2899 Max-Min= 175.95
-Cumulative run-time=1.20 seconds
-
-Initiating PH iteration=14
-2014-07-16 15:56:33.579127: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpAX_TCH.tmpr6M7tf.pyomo.lp
-2014-07-16 15:56:33.595292: Solve completed - number of solutions=1
-2014-07-16 15:56:33.608761: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpHHQW8H.tmpyjwGhW.pyomo.lp
-2014-07-16 15:56:33.622909: Solve completed - number of solutions=1
-2014-07-16 15:56:33.635488: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpwwgb2c.tmp1nSiXQ.pyomo.lp
-2014-07-16 15:56:33.649279: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0168 First stage cost avg= 108561.6577 Max-Min= 274.77
-Cumulative run-time=1.29 seconds
-
-Initiating PH iteration=15
-2014-07-16 15:56:33.661867: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpTfDLpG.tmpfTgiY4.pyomo.lp
-2014-07-16 15:56:33.676943: Solve completed - number of solutions=1
-2014-07-16 15:56:33.690335: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpNeaXf6.tmpMOEbOm.pyomo.lp
-2014-07-16 15:56:33.704052: Solve completed - number of solutions=1
-2014-07-16 15:56:33.716537: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpkQYFsG.tmp4iwZLa.pyomo.lp
-2014-07-16 15:56:33.730470: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0163 First stage cost avg= 108604.0579 Max-Min= 295.14
-Cumulative run-time=1.37 seconds
-
-Initiating PH iteration=16
-2014-07-16 15:56:33.743117: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpuL9E2P.tmpRt__3m.pyomo.lp
-2014-07-16 15:56:33.758147: Solve completed - number of solutions=1
-2014-07-16 15:56:33.771341: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpWi6rvW.tmpEDPHzA.pyomo.lp
-2014-07-16 15:56:33.784854: Solve completed - number of solutions=1
-2014-07-16 15:56:33.797352: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp5ULMHj.tmpjCBiQM.pyomo.lp
-2014-07-16 15:56:33.812109: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0098 First stage cost avg= 108667.3583 Max-Min= 127.67
-Cumulative run-time=1.45 seconds
-
-Initiating PH iteration=17
-2014-07-16 15:56:33.825230: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpqIbkFm.tmpwOd2wg.pyomo.lp
-2014-07-16 15:56:33.840927: Solve completed - number of solutions=1
-2014-07-16 15:56:33.853517: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmps7rqvl.tmpagENO7.pyomo.lp
-2014-07-16 15:56:33.867317: Solve completed - number of solutions=1
-2014-07-16 15:56:33.880699: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpKHegUG.tmpMWJmgu.pyomo.lp
-2014-07-16 15:56:33.895024: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0032 First stage cost avg= 108758.4237 Max-Min= 59.69
-Cumulative run-time=1.53 seconds
-
-Initiating PH iteration=18
-2014-07-16 15:56:33.907759: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmprOj5yq.tmpuH9NUS.pyomo.lp
-2014-07-16 15:56:33.922325: Solve completed - number of solutions=1
-2014-07-16 15:56:33.934803: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpec1heP.tmpLb5Npo.pyomo.lp
-2014-07-16 15:56:33.948378: Solve completed - number of solutions=1
-2014-07-16 15:56:33.961909: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpRxsjTg.tmpJHRPtb.pyomo.lp
-2014-07-16 15:56:33.975311: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0026 First stage cost avg= 108868.1277 Max-Min= 101.79
-Cumulative run-time=1.61 seconds
-
-Initiating PH iteration=19
-2014-07-16 15:56:33.987992: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpe5z5Kj.tmpmnZ7xd.pyomo.lp
-2014-07-16 15:56:34.002553: Solve completed - number of solutions=1
-2014-07-16 15:56:34.015362: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpcS4aVQ.tmpIAuXxE.pyomo.lp
-2014-07-16 15:56:34.028712: Solve completed - number of solutions=1
-2014-07-16 15:56:34.041130: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp4Tw6MZ.tmpnonqn5.pyomo.lp
-2014-07-16 15:56:34.054799: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0039 First stage cost avg= 108975.3089 Max-Min= 73.41
-Cumulative run-time=1.69 seconds
-
-Initiating PH iteration=20
-2014-07-16 15:56:34.067895: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpABfOen.tmpEamk1E.pyomo.lp
-2014-07-16 15:56:34.082116: Solve completed - number of solutions=1
-2014-07-16 15:56:34.094803: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpPYu1Ee.tmprio9uP.pyomo.lp
-2014-07-16 15:56:34.108866: Solve completed - number of solutions=1
-2014-07-16 15:56:34.121495: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpYoD9VL.tmp02WzX0.pyomo.lp
-2014-07-16 15:56:34.135945: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0043 First stage cost avg= 109057.4144 Max-Min= 39.47
-Cumulative run-time=1.77 seconds
-
-Initiating PH iteration=21
-2014-07-16 15:56:34.149006: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpvxyASp.tmp_p4c3x.pyomo.lp
-2014-07-16 15:56:34.163667: Solve completed - number of solutions=1
-2014-07-16 15:56:34.176255: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp7lKBn5.tmp2NIOxb.pyomo.lp
-2014-07-16 15:56:34.189488: Solve completed - number of solutions=1
-2014-07-16 15:56:34.202045: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp1USXcQ.tmpp2k3MU.pyomo.lp
-2014-07-16 15:56:34.215414: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0044 First stage cost avg= 109099.7145 Max-Min= 87.57
-Cumulative run-time=1.85 seconds
-
-Initiating PH iteration=22
-2014-07-16 15:56:34.228436: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpBqzjSM.tmpPKqPQF.pyomo.lp
-2014-07-16 15:56:34.243440: Solve completed - number of solutions=1
-2014-07-16 15:56:34.256280: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpSLOMX1.tmpUwMLNu.pyomo.lp
-2014-07-16 15:56:34.270081: Solve completed - number of solutions=1
-2014-07-16 15:56:34.282624: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmphp7CaT.tmpyNsi8E.pyomo.lp
-2014-07-16 15:56:34.296318: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0040 First stage cost avg= 109099.1239 Max-Min= 104.22
-Cumulative run-time=1.93 seconds
-
-Initiating PH iteration=23
-2014-07-16 15:56:34.308897: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpo2jNoG.tmpLpdPhp.pyomo.lp
-2014-07-16 15:56:34.323341: Solve completed - number of solutions=1
-2014-07-16 15:56:34.335760: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpV0_57T.tmpHrosgt.pyomo.lp
-2014-07-16 15:56:34.349357: Solve completed - number of solutions=1
-2014-07-16 15:56:34.361827: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpajVOZR.tmp5OPNma.pyomo.lp
-2014-07-16 15:56:34.375843: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0032 First stage cost avg= 109062.8322 Max-Min= 88.54
-Cumulative run-time=2.01 seconds
-
-Initiating PH iteration=24
-2014-07-16 15:56:34.405192: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp70qIoK.tmp2sp3da.pyomo.lp
-2014-07-16 15:56:34.420281: Solve completed - number of solutions=1
-2014-07-16 15:56:34.433103: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpqQZSTV.tmpSmYGp3.pyomo.lp
-2014-07-16 15:56:34.446935: Solve completed - number of solutions=1
-2014-07-16 15:56:34.459422: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpQ9hEMS.tmpmTC_63.pyomo.lp
-2014-07-16 15:56:34.472778: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0021 First stage cost avg= 109004.1156 Max-Min= 54.49
-Cumulative run-time=2.11 seconds
-
-Initiating PH iteration=25
-2014-07-16 15:56:34.485814: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpPTZ6Zi.tmp4nKT_8.pyomo.lp
-2014-07-16 15:56:34.501193: Solve completed - number of solutions=1
-2014-07-16 15:56:34.513720: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmptJFNM_.tmp8vz5D1.pyomo.lp
-2014-07-16 15:56:34.527399: Solve completed - number of solutions=1
-2014-07-16 15:56:34.539801: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpGWXy3x.tmpHD56wU.pyomo.lp
-2014-07-16 15:56:34.553650: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0008 First stage cost avg= 108937.8039 Max-Min= 16.89
-Cumulative run-time=2.19 seconds
-
-Initiating PH iteration=26
-2014-07-16 15:56:34.566764: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpcggIv2.tmpfnBahs.pyomo.lp
-2014-07-16 15:56:34.582601: Solve completed - number of solutions=1
-2014-07-16 15:56:34.596520: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpnwU8mj.tmpY3UmO6.pyomo.lp
-2014-07-16 15:56:34.610531: Solve completed - number of solutions=1
-2014-07-16 15:56:34.623150: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpmc4HiY.tmpzcSaDH.pyomo.lp
-2014-07-16 15:56:34.636996: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0005 First stage cost avg= 108876.8822 Max-Min= 14.27
-Cumulative run-time=2.27 seconds
-
-Initiating PH iteration=27
-2014-07-16 15:56:34.650205: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmppPupRR.tmp5X6x4x.pyomo.lp
-2014-07-16 15:56:34.665517: Solve completed - number of solutions=1
-2014-07-16 15:56:34.678027: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpYDLSxn.tmpYNIXVD.pyomo.lp
-2014-07-16 15:56:34.691861: Solve completed - number of solutions=1
-2014-07-16 15:56:34.704299: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpUlswRM.tmpE_D6Yi.pyomo.lp
-2014-07-16 15:56:34.718196: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0015 First stage cost avg= 108830.6201 Max-Min= 34.81
-Cumulative run-time=2.36 seconds
-
-Initiating PH iteration=28
-2014-07-16 15:56:34.730999: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpS_xXR_.tmpxzWVwG.pyomo.lp
-2014-07-16 15:56:34.745574: Solve completed - number of solutions=1
-2014-07-16 15:56:34.758113: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpoOoEXZ.tmp8Sx4SG.pyomo.lp
-2014-07-16 15:56:34.771759: Solve completed - number of solutions=1
-2014-07-16 15:56:34.784330: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpFHYvpq.tmpjJIHGU.pyomo.lp
-2014-07-16 15:56:34.797953: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0021 First stage cost avg= 108803.9655 Max-Min= 44.57
-Cumulative run-time=2.43 seconds
-
-Initiating PH iteration=29
-2014-07-16 15:56:34.810712: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpu7d2ob.tmp0yup_c.pyomo.lp
-2014-07-16 15:56:34.825392: Solve completed - number of solutions=1
-2014-07-16 15:56:34.838259: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpFWKOvi.tmp2kK0yL.pyomo.lp
-2014-07-16 15:56:34.852032: Solve completed - number of solutions=1
-2014-07-16 15:56:34.864442: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp6QcMOl.tmpgjv2pX.pyomo.lp
-2014-07-16 15:56:34.878485: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0023 First stage cost avg= 108797.7661 Max-Min= 45.24
-Cumulative run-time=2.52 seconds
-
-Initiating PH iteration=30
-2014-07-16 15:56:34.891997: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpG7zp9n.tmpPxAfBL.pyomo.lp
-2014-07-16 15:56:34.906932: Solve completed - number of solutions=1
-2014-07-16 15:56:34.919435: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpUFaKXR.tmpPskt4e.pyomo.lp
-2014-07-16 15:56:34.933831: Solve completed - number of solutions=1
-2014-07-16 15:56:34.947225: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp5Cmdh1.tmpjtMapL.pyomo.lp
-2014-07-16 15:56:34.960749: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0020 First stage cost avg= 108809.4793 Max-Min= 39.01
-Cumulative run-time=2.60 seconds
-
-Initiating PH iteration=31
-2014-07-16 15:56:34.973582: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpDeQtnz.tmpJdD4IU.pyomo.lp
-2014-07-16 15:56:34.987885: Solve completed - number of solutions=1
-2014-07-16 15:56:35.000315: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpZrYwQ_.tmpd8w8eb.pyomo.lp
-2014-07-16 15:56:35.013751: Solve completed - number of solutions=1
-2014-07-16 15:56:35.026168: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp4GexYB.tmpiz28x0.pyomo.lp
-2014-07-16 15:56:35.040132: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0015 First stage cost avg= 108834.1639 Max-Min= 28.07
-Cumulative run-time=2.68 seconds
-
-Initiating PH iteration=32
-2014-07-16 15:56:35.053163: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpwGc820.tmptGOh4G.pyomo.lp
-2014-07-16 15:56:35.068288: Solve completed - number of solutions=1
-2014-07-16 15:56:35.081127: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpu9SYVV.tmpQg0nvs.pyomo.lp
-2014-07-16 15:56:35.094427: Solve completed - number of solutions=1
-2014-07-16 15:56:35.107649: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpFTYn96.tmp5iavdG.pyomo.lp
-2014-07-16 15:56:35.121571: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0008 First stage cost avg= 108865.6237 Max-Min= 14.67
-Cumulative run-time=2.76 seconds
-
-Initiating PH iteration=33
-2014-07-16 15:56:35.134760: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpaO9Xlu.tmpyLIxtY.pyomo.lp
-2014-07-16 15:56:35.149471: Solve completed - number of solutions=1
-2014-07-16 15:56:35.162131: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp1XxHOE.tmpxrw0sd.pyomo.lp
-2014-07-16 15:56:35.176019: Solve completed - number of solutions=1
-2014-07-16 15:56:35.188614: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp3g4QKh.tmpItR5jP.pyomo.lp
-2014-07-16 15:56:35.202177: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0001 First stage cost avg= 108897.5679 Max-Min= 1.06
-Cumulative run-time=2.84 seconds
-PH converged - convergence metric is below threshold=0.0001
-Number of discrete variables fixed before final plugin calls=0 (total=0)
-Number of continuous variables fixed before final plugin calls=0 (total=3)
-PH algorithm history written to file=ph_history.json
-PH complete
-Convergence history:
-Iteration Metric Value
- 0 0.2540
- 1 0.1259
- 2 0.0816
- 3 0.0796
- 4 0.0776
- 5 0.0794
- 6 0.0668
- 7 0.0542
- 8 0.0360
- 9 0.0243
- 10 0.0256
- 11 0.0248
- 12 0.0163
- 13 0.0081
- 14 0.0168
- 15 0.0163
- 16 0.0098
- 17 0.0032
- 18 0.0026
- 19 0.0039
- 20 0.0043
- 21 0.0044
- 22 0.0040
- 23 0.0032
- 24 0.0021
- 25 0.0008
- 26 0.0005
- 27 0.0015
- 28 0.0021
- 29 0.0023
- 30 0.0020
- 31 0.0015
- 32 0.0008
- 33 0.0001
-
-***********************************************************************************************
->>>THE EXPECTED SUM OF THE STAGE COST VARIABLES=-108388.378639<<<
->>>***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise<<<
-***********************************************************************************************
-Final number of discrete variables fixed=0 (total=0)
-Final number of continuous variables fixed=0 (total=3)
-Final variable values:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 79.9844 80.0000 79.9768 Max-Min: 0.0232 Avg: 79.9871
- Index: [SUGAR_BEETS] Values: 249.9848 249.9770 250.0000 Max-Min: 0.0230 Avg: 249.9873
- Index: [WHEAT] Values: 170.0308 170.0230 170.0232 Max-Min: 0.0078 Avg: 170.0256
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108897.0836 108897.4725 108898.1476 Max-Min: 1.0640 Avg: 108897.5679
-Final costs:
-Scenario Tree Costs
-***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise
-----------------------------------------------------
-Tree Nodes:
-
- Name=AboveAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AboveAverageScenario
- Expected cost of (sub)tree rooted at node=-275899.3041
-
- Name=AverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AverageScenario
- Expected cost of (sub)tree rooted at node=-218243.2209
-
- Name=BelowAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-157713.8615
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- AboveAverageNode
- AverageNode
- BelowAverageNode
- Scenarios:
- AboveAverageScenario
- AverageScenario
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-108388.3786
-
-----------------------------------------------------
-Scenarios:
-
- Name=AboveAverageScenario
- Probability=0.3333
- Leaf Node=AboveAverageNode
- Tree node sequence:
- RootNode
- AboveAverageNode
- Stage= FirstStage Cost=108898.1476
- Stage= SecondStage Cost=-275899.3041
- Total scenario cost=-167001.1565
-
- Name=AverageScenario
- Probability=0.3333
- Leaf Node=AverageNode
- Tree node sequence:
- RootNode
- AverageNode
- Stage= FirstStage Cost=108897.4725
- Stage= SecondStage Cost=-218243.2209
- Total scenario cost=-109345.7484
-
- Name=BelowAverageScenario
- Probability=0.3333
- Leaf Node=BelowAverageNode
- Tree node sequence:
- RootNode
- BelowAverageNode
- Stage= FirstStage Cost=108897.0836
- Stage= SecondStage Cost=-157713.8615
- Total scenario cost=-48816.7780
-
-----------------------------------------------------
-
-Total PH execution time=2.84 seconds
-
-Scenario tree solution written to file=ph_solution.json
-Pushing fixed variable statuses to scenario instances
-Number of discrete variables fixed prior to ef creation=0 (total=0)
-Number of continuous variables fixed prior to ef creation=0 (total=3)
-Creating extensive form for remainder problem
-Time to construct extensive form instance=0.00 seconds
-Queuing extensive form solve
-Waiting for extensive form solve
-Done with extensive form solve - loading results
-Storing solution in scenario tree
-Time to solve and load results for the extensive form=0.02 seconds
-
-***********************************************************************************************
->>>THE EXPECTED SUM OF THE STAGE COST VARIABLES=-108390.00001<<<
-***********************************************************************************************
-
-Extensive form solution:
-----------------------------------------------------
-Tree Nodes:
-
- Name=AboveAverageNode
- Stage=SecondStage
- Parent=RootNode
- Variables:
- QuantitySubQuotaSold[CORN]=48.0
- QuantitySubQuotaSold[SUGAR_BEETS]=6000.0
- QuantitySubQuotaSold[WHEAT]=310.0
-
- Name=AverageNode
- Stage=SecondStage
- Parent=RootNode
- Variables:
- QuantitySubQuotaSold[SUGAR_BEETS]=5000.0
- QuantitySubQuotaSold[WHEAT]=225.0
-
- Name=BelowAverageNode
- Stage=SecondStage
- Parent=RootNode
- Variables:
- QuantityPurchased[CORN]=48.0
- QuantitySubQuotaSold[SUGAR_BEETS]=4000.0
- QuantitySubQuotaSold[WHEAT]=140.0
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Variables:
- DevotedAcreage[CORN]=80.0
- DevotedAcreage[SUGAR_BEETS]=250.0
- DevotedAcreage[WHEAT]=170.0
-
-
-Extensive form costs:
-Scenario Tree Costs
-***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise
-----------------------------------------------------
-Tree Nodes:
-
- Name=AboveAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AboveAverageScenario
- Expected cost of (sub)tree rooted at node=-275900.0000
-
- Name=AverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AverageScenario
- Expected cost of (sub)tree rooted at node=-218250.0000
-
- Name=BelowAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-157720.0000
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- AboveAverageNode
- AverageNode
- BelowAverageNode
- Scenarios:
- AboveAverageScenario
- AverageScenario
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-108390.0000
-
-----------------------------------------------------
-Scenarios:
-
- Name=AboveAverageScenario
- Probability=0.3333
- Leaf Node=AboveAverageNode
- Tree node sequence:
- RootNode
- AboveAverageNode
- Stage= FirstStage Cost=108900.0000
- Stage= SecondStage Cost=-275900.0000
- Total scenario cost=-167000.0000
-
- Name=AverageScenario
- Probability=0.3333
- Leaf Node=AverageNode
- Tree node sequence:
- RootNode
- AverageNode
- Stage= FirstStage Cost=108900.0000
- Stage= SecondStage Cost=-218250.0000
- Total scenario cost=-109350.0000
-
- Name=BelowAverageScenario
- Probability=0.3333
- Leaf Node=BelowAverageNode
- Tree node sequence:
- RootNode
- BelowAverageNode
- Stage= FirstStage Cost=108900.0000
- Stage= SecondStage Cost=-157720.0000
- Total scenario cost=-48820.0000
-
-----------------------------------------------------
-Scenario tree solution written to file=postphef_solution.json
-Shutting down Pyro solver components
-Dispatcher received request to shut down - initiating...
-
-Total execution time=5.92 seconds
-Name Server gracefully stopped.
-Lost connection to dispatch server - shutting down...
diff --git a/pyomo/pysp/tests/examples/baselines/TestPHFarmerTrivialBundlesPyro.test2.baseline b/pyomo/pysp/tests/examples/baselines/TestPHFarmerTrivialBundlesPyro.test2.baseline
deleted file mode 100644
index 793707fb8b5..00000000000
--- a/pyomo/pysp/tests/examples/baselines/TestPHFarmerTrivialBundlesPyro.test2.baseline
+++ /dev/null
@@ -1,774 +0,0 @@
-*** Pyro Name Server ***
-Name server listening on: ('0.0.0.0', 9090)
-Broadcast server listening on: ('0.0.0.0', 9090)
-URI is: PYRO://10.0.0.15:9090/0a00000f33b920a08d26e3521296e23b26
-URI written to: /Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/pyomo/pysp/tests/examples/Pyro_NS_URI
-Name Server started.
-User-defined PH extension module=pyomo.pysp.plugins.phhistoryextension already imported - skipping
-Dispatcher is ready.
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI:PYRO://10.0.0.15:7766/0a00000f33ba20a08d2804b939351a0804
-This is worker Worker_13243@Ozymandias.local
-Listening for work from dispatcher...
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI: PYRO://10.0.0.15:7766/0a00000f33ba20a08d2804b939351a0804
-This is client 13244@Ozymandias.local
-Initializing PH
-
-User-defined PH solution writer module=pyomo.pysp.plugins.jsonsolutionwriter already imported - skipping
-Starting PH
-
-Initiating PH iteration=0
-2014-05-28 18:06:29.262964: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp5vQac_.tmp9P7oo4.pyomo.lp
-2014-05-28 18:06:29.278535: Solve completed - number of solutions=1
-2014-05-28 18:06:29.291541: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpmTGOjQ.tmpRjlLqA.pyomo.lp
-2014-05-28 18:06:29.306608: Solve completed - number of solutions=1
-2014-05-28 18:06:29.320040: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpIOqQdL.tmpwVQoj8.pyomo.lp
-2014-05-28 18:06:29.335977: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 98.5185 First stage cost avg= 113494.4444 Max-Min=10416.67
-Cumulative run-time=0.16 seconds
-
-Initiating PH iteration=1
-2014-05-28 18:06:29.349574: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpoNzljL.tmpnlxGbu.pyomo.lp
-2014-05-28 18:06:29.368306: Solve completed - number of solutions=1
-2014-05-28 18:06:29.381917: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp8zRyYD.tmpklgRTw.pyomo.lp
-2014-05-28 18:06:29.400346: Solve completed - number of solutions=1
-2014-05-28 18:06:29.413013: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpo_6pbH.tmpPi2Dy_.pyomo.lp
-2014-05-28 18:06:29.430849: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 56.7654 First stage cost avg= 113107.2221 Max-Min= 6943.89
-Cumulative run-time=0.25 seconds
-
-Initiating PH iteration=2
-2014-05-28 18:06:29.443523: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpwz0H77.tmpxU1Qmu.pyomo.lp
-2014-05-28 18:06:29.462315: Solve completed - number of solutions=1
-2014-05-28 18:06:29.474977: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpYEMfH9.tmp7D78pL.pyomo.lp
-2014-05-28 18:06:29.494210: Solve completed - number of solutions=1
-2014-05-28 18:06:29.507762: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpckAGax.tmpogOd9C.pyomo.lp
-2014-05-28 18:06:29.525301: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 37.3580 First stage cost avg= 112954.6296 Max-Min= 2234.82
-Cumulative run-time=0.35 seconds
-
-Initiating PH iteration=3
-2014-05-28 18:06:29.538219: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp7UAqPl.tmp6vt653.pyomo.lp
-2014-05-28 18:06:29.557330: Solve completed - number of solutions=1
-2014-05-28 18:06:29.569984: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpeUPi_2.tmpLWH_S8.pyomo.lp
-2014-05-28 18:06:29.589196: Solve completed - number of solutions=1
-2014-05-28 18:06:29.601830: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpNAojkM.tmpTBgnyH.pyomo.lp
-2014-05-28 18:06:29.619860: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 36.5075 First stage cost avg= 112963.0248 Max-Min= 2375.31
-Cumulative run-time=0.44 seconds
-
-Initiating PH iteration=4
-2014-05-28 18:06:29.632571: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpEVwcGf.tmp2TBwi8.pyomo.lp
-2014-05-28 18:06:29.651054: Solve completed - number of solutions=1
-2014-05-28 18:06:29.663571: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp1blI3v.tmp1r6uPn.pyomo.lp
-2014-05-28 18:06:29.682311: Solve completed - number of solutions=1
-2014-05-28 18:06:29.694948: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpcwUYXZ.tmpbQ4sa2.pyomo.lp
-2014-05-28 18:06:29.713977: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 35.4086 First stage cost avg= 112915.6071 Max-Min= 3047.08
-Cumulative run-time=0.54 seconds
-
-Initiating PH iteration=5
-2014-05-28 18:06:29.727274: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp5_gEzU.tmpVqZqGf.pyomo.lp
-2014-05-28 18:06:29.747022: Solve completed - number of solutions=1
-2014-05-28 18:06:29.761485: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp9nndOY.tmpX1UtTL.pyomo.lp
-2014-05-28 18:06:29.780437: Solve completed - number of solutions=1
-2014-05-28 18:06:29.793096: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpE5CQjt.tmpNulRHq.pyomo.lp
-2014-05-28 18:06:29.810766: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 36.2217 First stage cost avg= 112825.3926 Max-Min= 3339.81
-Cumulative run-time=0.63 seconds
-
-Initiating PH iteration=6
-2014-05-28 18:06:29.823358: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpVUd8aJ.tmp5j5C6O.pyomo.lp
-2014-05-28 18:06:29.841726: Solve completed - number of solutions=1
-2014-05-28 18:06:29.855415: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpocmV4A.tmprioUbH.pyomo.lp
-2014-05-28 18:06:29.873332: Solve completed - number of solutions=1
-2014-05-28 18:06:29.885945: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp5CF3vn.tmpXPjTyO.pyomo.lp
-2014-05-28 18:06:29.903873: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 29.3303 First stage cost avg= 112317.9502 Max-Min= 2019.60
-Cumulative run-time=0.73 seconds
-
-Initiating PH iteration=7
-2014-05-28 18:06:29.917844: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp4rBkaq.tmp2p5UkP.pyomo.lp
-2014-05-28 18:06:29.937181: Solve completed - number of solutions=1
-2014-05-28 18:06:29.949877: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp6eD5OD.tmpgThILR.pyomo.lp
-2014-05-28 18:06:29.968884: Solve completed - number of solutions=1
-2014-05-28 18:06:29.982236: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp_igFXM.tmpzZlt3p.pyomo.lp
-2014-05-28 18:06:30.000322: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 21.9702 First stage cost avg= 111364.4660 Max-Min= 1181.85
-Cumulative run-time=0.82 seconds
-
-Initiating PH iteration=8
-2014-05-28 18:06:30.013882: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpAVhI2C.tmpGs_JKm.pyomo.lp
-2014-05-28 18:06:30.033218: Solve completed - number of solutions=1
-2014-05-28 18:06:30.045863: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp86MyoX.tmp9FdwZ3.pyomo.lp
-2014-05-28 18:06:30.064265: Solve completed - number of solutions=1
-2014-05-28 18:06:30.076813: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpM0mQlK.tmp0PXQSX.pyomo.lp
-2014-05-28 18:06:30.096308: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 13.8077 First stage cost avg= 110283.4074 Max-Min= 463.23
-Cumulative run-time=0.92 seconds
-
-Initiating PH iteration=9
-2014-05-28 18:06:30.109488: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpoCym6v.tmp4yvZ2z.pyomo.lp
-2014-05-28 18:06:30.129070: Solve completed - number of solutions=1
-2014-05-28 18:06:30.141664: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpX8NvzR.tmpSRBTcc.pyomo.lp
-2014-05-28 18:06:30.160334: Solve completed - number of solutions=1
-2014-05-28 18:06:30.173046: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpxrOkgx.tmp3EhPVr.pyomo.lp
-2014-05-28 18:06:30.191639: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 9.5141 First stage cost avg= 109399.2542 Max-Min= 363.90
-Cumulative run-time=1.02 seconds
-
-Initiating PH iteration=10
-2014-05-28 18:06:30.204557: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpKPoaYE.tmppialGP.pyomo.lp
-2014-05-28 18:06:30.224334: Solve completed - number of solutions=1
-2014-05-28 18:06:30.236904: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpChPBSV.tmpm4FcPf.pyomo.lp
-2014-05-28 18:06:30.255033: Solve completed - number of solutions=1
-2014-05-28 18:06:30.268623: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpDn_HR7.tmpDEZVoP.pyomo.lp
-2014-05-28 18:06:30.286359: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 12.0668 First stage cost avg= 108834.1930 Max-Min= 933.90
-Cumulative run-time=1.11 seconds
-
-Initiating PH iteration=11
-2014-05-28 18:06:30.299362: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpYSj9j2.tmpUPiHhZ.pyomo.lp
-2014-05-28 18:06:30.319470: Solve completed - number of solutions=1
-2014-05-28 18:06:30.332105: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp4MlxIi.tmp218tBm.pyomo.lp
-2014-05-28 18:06:30.350143: Solve completed - number of solutions=1
-2014-05-28 18:06:30.362760: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpa1umR1.tmpwv16Ip.pyomo.lp
-2014-05-28 18:06:30.381120: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 11.6644 First stage cost avg= 108575.3219 Max-Min= 918.57
-Cumulative run-time=1.20 seconds
-
-Initiating PH iteration=12
-2014-05-28 18:06:30.393734: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpn4RobN.tmp2FtCQQ.pyomo.lp
-2014-05-28 18:06:30.412601: Solve completed - number of solutions=1
-2014-05-28 18:06:30.426121: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpEUJaYM.tmpY4uGsC.pyomo.lp
-2014-05-28 18:06:30.444413: Solve completed - number of solutions=1
-2014-05-28 18:06:30.457017: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpTIHYZ6.tmp4ZmwQm.pyomo.lp
-2014-05-28 18:06:30.474588: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 7.5080 First stage cost avg= 108513.5347 Max-Min= 591.25
-Cumulative run-time=1.30 seconds
-
-Initiating PH iteration=13
-2014-05-28 18:06:30.488096: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpMVVmrU.tmpHONmXE.pyomo.lp
-2014-05-28 18:06:30.507838: Solve completed - number of solutions=1
-2014-05-28 18:06:30.520531: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpNabpYO.tmp7E20fe.pyomo.lp
-2014-05-28 18:06:30.538608: Solve completed - number of solutions=1
-2014-05-28 18:06:30.551201: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpqkQk6g.tmpJLrkAe.pyomo.lp
-2014-05-28 18:06:30.569239: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 3.1070 First stage cost avg= 108528.2899 Max-Min= 175.95
-Cumulative run-time=1.39 seconds
-
-Initiating PH iteration=14
-2014-05-28 18:06:30.582213: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp6vo9wT.tmpGeHuWf.pyomo.lp
-2014-05-28 18:06:30.600936: Solve completed - number of solutions=1
-2014-05-28 18:06:30.613558: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpETZk7n.tmpqfhylh.pyomo.lp
-2014-05-28 18:06:30.632099: Solve completed - number of solutions=1
-2014-05-28 18:06:30.644787: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp1Wh5Ku.tmpa4zpH7.pyomo.lp
-2014-05-28 18:06:30.662808: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 5.5300 First stage cost avg= 108561.6577 Max-Min= 274.77
-Cumulative run-time=1.49 seconds
-
-Initiating PH iteration=15
-2014-05-28 18:06:30.675514: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpeH1bPl.tmpEOx7O3.pyomo.lp
-2014-05-28 18:06:30.694168: Solve completed - number of solutions=1
-2014-05-28 18:06:30.707763: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpCAu_Wk.tmp9Qk0C5.pyomo.lp
-2014-05-28 18:06:30.725705: Solve completed - number of solutions=1
-2014-05-28 18:06:30.738427: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpicze84.tmpQ3jhi9.pyomo.lp
-2014-05-28 18:06:30.756077: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 5.4381 First stage cost avg= 108604.0579 Max-Min= 295.14
-Cumulative run-time=1.58 seconds
-
-Initiating PH iteration=16
-2014-05-28 18:06:30.768840: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp3hog0i.tmpjQSg2k.pyomo.lp
-2014-05-28 18:06:30.787312: Solve completed - number of solutions=1
-2014-05-28 18:06:30.799901: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp9zrZHx.tmpu0R5D6.pyomo.lp
-2014-05-28 18:06:30.817644: Solve completed - number of solutions=1
-2014-05-28 18:06:30.830219: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpuif9mi.tmp5YBjf4.pyomo.lp
-2014-05-28 18:06:30.848123: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 3.2812 First stage cost avg= 108667.3583 Max-Min= 127.67
-Cumulative run-time=1.67 seconds
-
-Initiating PH iteration=17
-2014-05-28 18:06:30.863235: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpa7nzdf.tmphcd_PP.pyomo.lp
-2014-05-28 18:06:30.881613: Solve completed - number of solutions=1
-2014-05-28 18:06:30.894100: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpDFbLED.tmpOOYifZ.pyomo.lp
-2014-05-28 18:06:30.912478: Solve completed - number of solutions=1
-2014-05-28 18:06:30.925127: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpOllAcF.tmpGbpral.pyomo.lp
-2014-05-28 18:06:30.943504: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 1.1980 First stage cost avg= 108758.4237 Max-Min= 59.69
-Cumulative run-time=1.77 seconds
-
-Initiating PH iteration=18
-2014-05-28 18:06:30.956132: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpfSENwO.tmp2YSsR7.pyomo.lp
-2014-05-28 18:06:30.974691: Solve completed - number of solutions=1
-2014-05-28 18:06:30.987291: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpeAf33U.tmpkpdZBz.pyomo.lp
-2014-05-28 18:06:31.005024: Solve completed - number of solutions=1
-2014-05-28 18:06:31.017584: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpafga5t.tmp8QLMur.pyomo.lp
-2014-05-28 18:06:31.035387: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 1.0800 First stage cost avg= 108868.1277 Max-Min= 101.79
-Cumulative run-time=1.86 seconds
-
-Initiating PH iteration=19
-2014-05-28 18:06:31.048949: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp1Lj484.tmp4LynIr.pyomo.lp
-2014-05-28 18:06:31.068211: Solve completed - number of solutions=1
-2014-05-28 18:06:31.080823: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp2LCvzx.tmp1irskg.pyomo.lp
-2014-05-28 18:06:31.099617: Solve completed - number of solutions=1
-2014-05-28 18:06:31.112267: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp21Sr5H.tmpb3dyYd.pyomo.lp
-2014-05-28 18:06:31.129884: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 1.3642 First stage cost avg= 108975.3089 Max-Min= 73.41
-Cumulative run-time=1.95 seconds
-
-Initiating PH iteration=20
-2014-05-28 18:06:31.143425: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpj_dvYJ.tmpuGo5fi.pyomo.lp
-2014-05-28 18:06:31.161959: Solve completed - number of solutions=1
-2014-05-28 18:06:31.174574: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpn0Wa6j.tmpYqYkwm.pyomo.lp
-2014-05-28 18:06:31.193007: Solve completed - number of solutions=1
-2014-05-28 18:06:31.205588: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmphyv_ac.tmpUjsZSc.pyomo.lp
-2014-05-28 18:06:31.223997: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 1.5168 First stage cost avg= 109057.4144 Max-Min= 39.47
-Cumulative run-time=2.05 seconds
-
-Initiating PH iteration=21
-2014-05-28 18:06:31.254640: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmps3101A.tmp7avp0J.pyomo.lp
-2014-05-28 18:06:31.273933: Solve completed - number of solutions=1
-2014-05-28 18:06:31.287746: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpRReZAZ.tmpCnJejq.pyomo.lp
-2014-05-28 18:06:31.306191: Solve completed - number of solutions=1
-2014-05-28 18:06:31.318886: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpG1MuIt.tmpwi3opV.pyomo.lp
-2014-05-28 18:06:31.337000: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 1.6833 First stage cost avg= 109099.7145 Max-Min= 87.57
-Cumulative run-time=2.16 seconds
-
-Initiating PH iteration=22
-2014-05-28 18:06:31.349704: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpXJKlR6.tmpvPm0Y9.pyomo.lp
-2014-05-28 18:06:31.369737: Solve completed - number of solutions=1
-2014-05-28 18:06:31.382800: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpdV9g0P.tmpOFZnXP.pyomo.lp
-2014-05-28 18:06:31.400472: Solve completed - number of solutions=1
-2014-05-28 18:06:31.413117: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp72vsg5.tmpe5xPtn.pyomo.lp
-2014-05-28 18:06:31.432732: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 1.6446 First stage cost avg= 109099.1239 Max-Min= 104.22
-Cumulative run-time=2.26 seconds
-
-Initiating PH iteration=23
-2014-05-28 18:06:31.446845: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpsqPfiH.tmpep9qdp.pyomo.lp
-2014-05-28 18:06:31.465018: Solve completed - number of solutions=1
-2014-05-28 18:06:31.477796: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp9aSUnG.tmpYqhYVL.pyomo.lp
-2014-05-28 18:06:31.495473: Solve completed - number of solutions=1
-2014-05-28 18:06:31.508071: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpCwww21.tmpWwLbFR.pyomo.lp
-2014-05-28 18:06:31.526266: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 1.3382 First stage cost avg= 109062.8322 Max-Min= 88.54
-Cumulative run-time=2.35 seconds
-
-Initiating PH iteration=24
-2014-05-28 18:06:31.539021: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpoiFsGC.tmpaPfRU8.pyomo.lp
-2014-05-28 18:06:31.559009: Solve completed - number of solutions=1
-2014-05-28 18:06:31.572089: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpuBFVxA.tmphxZAnx.pyomo.lp
-2014-05-28 18:06:31.590524: Solve completed - number of solutions=1
-2014-05-28 18:06:31.603122: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp6ZAPAV.tmp29u9cT.pyomo.lp
-2014-05-28 18:06:31.621465: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.8599 First stage cost avg= 109004.1156 Max-Min= 54.49
-Cumulative run-time=2.44 seconds
-
-Initiating PH iteration=25
-2014-05-28 18:06:31.634630: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpkaKhj4.tmp__tOgb.pyomo.lp
-2014-05-28 18:06:31.653597: Solve completed - number of solutions=1
-2014-05-28 18:06:31.666864: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmptaXL8a.tmpOOk4B7.pyomo.lp
-2014-05-28 18:06:31.685316: Solve completed - number of solutions=1
-2014-05-28 18:06:31.698177: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp7YXWrS.tmp1zp_GW.pyomo.lp
-2014-05-28 18:06:31.716043: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.3180 First stage cost avg= 108937.8039 Max-Min= 16.89
-Cumulative run-time=2.54 seconds
-
-Initiating PH iteration=26
-2014-05-28 18:06:31.728860: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpsmEfhj.tmp4pFQbC.pyomo.lp
-2014-05-28 18:06:31.747360: Solve completed - number of solutions=1
-2014-05-28 18:06:31.760094: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpAIKi5t.tmps7wphH.pyomo.lp
-2014-05-28 18:06:31.779510: Solve completed - number of solutions=1
-2014-05-28 18:06:31.792469: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpfT3jor.tmpATe1zT.pyomo.lp
-2014-05-28 18:06:31.811490: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.1981 First stage cost avg= 108876.8822 Max-Min= 14.27
-Cumulative run-time=2.64 seconds
-
-Initiating PH iteration=27
-2014-05-28 18:06:31.825092: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpMby6G5.tmp5fOAbX.pyomo.lp
-2014-05-28 18:06:31.844549: Solve completed - number of solutions=1
-2014-05-28 18:06:31.857164: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpSS1fcl.tmpvBnidK.pyomo.lp
-2014-05-28 18:06:31.874988: Solve completed - number of solutions=1
-2014-05-28 18:06:31.888788: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpDOByKM.tmphpuFMK.pyomo.lp
-2014-05-28 18:06:31.906553: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.5760 First stage cost avg= 108830.6201 Max-Min= 34.81
-Cumulative run-time=2.73 seconds
-
-Initiating PH iteration=28
-2014-05-28 18:06:31.919339: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmphV6FxM.tmpr20F_u.pyomo.lp
-2014-05-28 18:06:31.938596: Solve completed - number of solutions=1
-2014-05-28 18:06:31.952037: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmplxcThc.tmpCCL_P2.pyomo.lp
-2014-05-28 18:06:31.970073: Solve completed - number of solutions=1
-2014-05-28 18:06:31.982820: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpUHco4d.tmp3_0HW_.pyomo.lp
-2014-05-28 18:06:32.000467: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.8045 First stage cost avg= 108803.9655 Max-Min= 44.57
-Cumulative run-time=2.82 seconds
-
-Initiating PH iteration=29
-2014-05-28 18:06:32.013182: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpz223DI.tmp2ScSAo.pyomo.lp
-2014-05-28 18:06:32.033016: Solve completed - number of solutions=1
-2014-05-28 18:06:32.047145: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp8kLFGT.tmpmmDcsY.pyomo.lp
-2014-05-28 18:06:32.066350: Solve completed - number of solutions=1
-2014-05-28 18:06:32.079374: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp1klbYw.tmpLfTr4K.pyomo.lp
-2014-05-28 18:06:32.097425: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.8608 First stage cost avg= 108797.7661 Max-Min= 45.24
-Cumulative run-time=2.92 seconds
-
-Initiating PH iteration=30
-2014-05-28 18:06:32.110119: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpfrbeyR.tmp2NT8pT.pyomo.lp
-2014-05-28 18:06:32.128471: Solve completed - number of solutions=1
-2014-05-28 18:06:32.142146: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpYwFMmp.tmplN3M9e.pyomo.lp
-2014-05-28 18:06:32.161066: Solve completed - number of solutions=1
-2014-05-28 18:06:32.174169: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp9PTRkv.tmp2LF6sO.pyomo.lp
-2014-05-28 18:06:32.192143: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.7643 First stage cost avg= 108809.4793 Max-Min= 39.01
-Cumulative run-time=3.02 seconds
-
-Initiating PH iteration=31
-2014-05-28 18:06:32.205905: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmphjgsVM.tmp_wBa3Q.pyomo.lp
-2014-05-28 18:06:32.225334: Solve completed - number of solutions=1
-2014-05-28 18:06:32.238366: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpicrrpU.tmpmWaM7X.pyomo.lp
-2014-05-28 18:06:32.256219: Solve completed - number of solutions=1
-2014-05-28 18:06:32.268994: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpveS7W_.tmpl4an1V.pyomo.lp
-2014-05-28 18:06:32.286830: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.5565 First stage cost avg= 108834.1639 Max-Min= 28.07
-Cumulative run-time=3.11 seconds
-
-Initiating PH iteration=32
-2014-05-28 18:06:32.300482: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpK22i1s.tmpwxO4Jy.pyomo.lp
-2014-05-28 18:06:32.318814: Solve completed - number of solutions=1
-2014-05-28 18:06:32.332428: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpoiZahm.tmplAyeob.pyomo.lp
-2014-05-28 18:06:32.350740: Solve completed - number of solutions=1
-2014-05-28 18:06:32.363422: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpZRGXYu.tmpJ28a2h.pyomo.lp
-2014-05-28 18:06:32.381538: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.2905 First stage cost avg= 108865.6237 Max-Min= 14.67
-Cumulative run-time=3.20 seconds
-
-Initiating PH iteration=33
-2014-05-28 18:06:32.394244: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpmv9mkW.tmpdaGPWj.pyomo.lp
-2014-05-28 18:06:32.413633: Solve completed - number of solutions=1
-2014-05-28 18:06:32.426336: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpbFfPwo.tmpMioYPc.pyomo.lp
-2014-05-28 18:06:32.444413: Solve completed - number of solutions=1
-2014-05-28 18:06:32.457772: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpPfQlZO.tmpfgvRpR.pyomo.lp
-2014-05-28 18:06:32.476862: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0205 First stage cost avg= 108897.5679 Max-Min= 1.06
-Cumulative run-time=3.30 seconds
-
-Initiating PH iteration=34
-2014-05-28 18:06:32.489641: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp3od1fV.tmpAjUqsp.pyomo.lp
-2014-05-28 18:06:32.508644: Solve completed - number of solutions=1
-2014-05-28 18:06:32.521715: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpBLp7yW.tmpNXLvqZ.pyomo.lp
-2014-05-28 18:06:32.539850: Solve completed - number of solutions=1
-2014-05-28 18:06:32.552515: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmplVgnJd.tmpRoFWjw.pyomo.lp
-2014-05-28 18:06:32.570355: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.2079 First stage cost avg= 108924.6334 Max-Min= 10.64
-Cumulative run-time=3.39 seconds
-
-Initiating PH iteration=35
-2014-05-28 18:06:32.583088: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpuMfb8W.tmpLZWMoY.pyomo.lp
-2014-05-28 18:06:32.602037: Solve completed - number of solutions=1
-2014-05-28 18:06:32.614671: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmphErGv9.tmpPBdJOE.pyomo.lp
-2014-05-28 18:06:32.632874: Solve completed - number of solutions=1
-2014-05-28 18:06:32.645512: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp25QU45.tmpGHWf9o.pyomo.lp
-2014-05-28 18:06:32.663635: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.3637 First stage cost avg= 108943.1232 Max-Min= 18.81
-Cumulative run-time=3.49 seconds
-
-Initiating PH iteration=36
-2014-05-28 18:06:32.676378: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpHXiZWC.tmpMtvIrQ.pyomo.lp
-2014-05-28 18:06:32.694511: Solve completed - number of solutions=1
-2014-05-28 18:06:32.707231: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpEDG7DS.tmpFihyxq.pyomo.lp
-2014-05-28 18:06:32.726104: Solve completed - number of solutions=1
-2014-05-28 18:06:32.739230: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpDt5v7j.tmp4iAIhW.pyomo.lp
-2014-05-28 18:06:32.757594: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.4328 First stage cost avg= 108951.3651 Max-Min= 22.58
-Cumulative run-time=3.58 seconds
-
-Initiating PH iteration=37
-2014-05-28 18:06:32.770357: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpgqCq1Z.tmpHbceCi.pyomo.lp
-2014-05-28 18:06:32.789288: Solve completed - number of solutions=1
-2014-05-28 18:06:32.801984: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpgAYemw.tmpZajF8_.pyomo.lp
-2014-05-28 18:06:32.820234: Solve completed - number of solutions=1
-2014-05-28 18:06:32.833824: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp0Pz3v9.tmpiq1FTG.pyomo.lp
-2014-05-28 18:06:32.852639: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.4183 First stage cost avg= 108949.6731 Max-Min= 21.96
-Cumulative run-time=3.68 seconds
-
-Initiating PH iteration=38
-2014-05-28 18:06:32.865255: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpWXfV57.tmp8bLc3H.pyomo.lp
-2014-05-28 18:06:32.885364: Solve completed - number of solutions=1
-2014-05-28 18:06:32.899595: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpWvvpF1.tmpQS3aLp.pyomo.lp
-2014-05-28 18:06:32.917757: Solve completed - number of solutions=1
-2014-05-28 18:06:32.930404: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpwtuLZ3.tmpZLuIc5.pyomo.lp
-2014-05-28 18:06:32.949141: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.3365 First stage cost avg= 108939.9742 Max-Min= 17.74
-Cumulative run-time=3.77 seconds
-
-Initiating PH iteration=39
-2014-05-28 18:06:32.962020: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpOeXah7.tmpb7OS_9.pyomo.lp
-2014-05-28 18:06:32.980499: Solve completed - number of solutions=1
-2014-05-28 18:06:32.993558: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpXiJoev.tmpo6Ci0e.pyomo.lp
-2014-05-28 18:06:33.011719: Solve completed - number of solutions=1
-2014-05-28 18:06:33.024305: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpVAXz1V.tmpR7pfHo.pyomo.lp
-2014-05-28 18:06:33.042323: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.2122 First stage cost avg= 108925.2193 Max-Min= 11.21
-Cumulative run-time=3.87 seconds
-
-Initiating PH iteration=40
-2014-05-28 18:06:33.054991: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpGdc6zH.tmpQP2TTL.pyomo.lp
-2014-05-28 18:06:33.073841: Solve completed - number of solutions=1
-2014-05-28 18:06:33.086467: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpWHMpnt.tmpD6Wpd6.pyomo.lp
-2014-05-28 18:06:33.105487: Solve completed - number of solutions=1
-2014-05-28 18:06:33.118151: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpdfykk7.tmpRFkBZ8.pyomo.lp
-2014-05-28 18:06:33.136831: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0733 First stage cost avg= 108908.7151 Max-Min= 3.89
-Cumulative run-time=3.96 seconds
-
-Initiating PH iteration=41
-2014-05-28 18:06:33.149917: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpnl_5mh.tmpWi5Q2R.pyomo.lp
-2014-05-28 18:06:33.168979: Solve completed - number of solutions=1
-2014-05-28 18:06:33.182651: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpgD0FQA.tmp2ln2aF.pyomo.lp
-2014-05-28 18:06:33.201454: Solve completed - number of solutions=1
-2014-05-28 18:06:33.214124: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpCmFr0U.tmpsAI8vZ.pyomo.lp
-2014-05-28 18:06:33.232225: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0547 First stage cost avg= 108893.5090 Max-Min= 2.87
-Cumulative run-time=4.06 seconds
-
-Initiating PH iteration=42
-2014-05-28 18:06:33.244937: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpgyZQ8x.tmpC1RLYb.pyomo.lp
-2014-05-28 18:06:33.264124: Solve completed - number of solutions=1
-2014-05-28 18:06:33.276716: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpqPh7ez.tmpy2gULx.pyomo.lp
-2014-05-28 18:06:33.294670: Solve completed - number of solutions=1
-2014-05-28 18:06:33.307544: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmphhg8qe.tmpGBaLZu.pyomo.lp
-2014-05-28 18:06:33.325719: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.1522 First stage cost avg= 108881.9216 Max-Min= 8.01
-Cumulative run-time=4.15 seconds
-
-Initiating PH iteration=43
-2014-05-28 18:06:33.338583: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmprzv0kX.tmp3xVD6D.pyomo.lp
-2014-05-28 18:06:33.357833: Solve completed - number of solutions=1
-2014-05-28 18:06:33.370723: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp6H8dNs.tmp1yssey.pyomo.lp
-2014-05-28 18:06:33.389720: Solve completed - number of solutions=1
-2014-05-28 18:06:33.403362: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmplRzFrd.tmpr_pIpg.pyomo.lp
-2014-05-28 18:06:33.421161: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.2081 First stage cost avg= 108875.2811 Max-Min= 10.94
-Cumulative run-time=4.24 seconds
-
-Initiating PH iteration=44
-2014-05-28 18:06:33.435050: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpgMIbNo.tmpAjvJWe.pyomo.lp
-2014-05-28 18:06:33.455432: Solve completed - number of solutions=1
-2014-05-28 18:06:33.468285: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpQJybbX.tmpGIQGAU.pyomo.lp
-2014-05-28 18:06:33.487303: Solve completed - number of solutions=1
-2014-05-28 18:06:33.499995: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpP10v2Z.tmpkudu4d.pyomo.lp
-2014-05-28 18:06:33.519194: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.2200 First stage cost avg= 108873.8685 Max-Min= 11.56
-Cumulative run-time=4.34 seconds
-
-Initiating PH iteration=45
-2014-05-28 18:06:33.532329: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmppCgMpC.tmp6x80sM.pyomo.lp
-2014-05-28 18:06:33.550380: Solve completed - number of solutions=1
-2014-05-28 18:06:33.563214: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmprBKgz4.tmp3qfEMF.pyomo.lp
-2014-05-28 18:06:33.581640: Solve completed - number of solutions=1
-2014-05-28 18:06:33.594484: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpwZKJVV.tmpchLHri.pyomo.lp
-2014-05-28 18:06:33.612240: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.1933 First stage cost avg= 108877.0466 Max-Min= 10.15
-Cumulative run-time=4.44 seconds
-
-Initiating PH iteration=46
-2014-05-28 18:06:33.624977: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpVxIotm.tmpfOVPB3.pyomo.lp
-2014-05-28 18:06:33.645242: Solve completed - number of solutions=1
-2014-05-28 18:06:33.658420: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpak9WW2.tmpvlsdc9.pyomo.lp
-2014-05-28 18:06:33.676623: Solve completed - number of solutions=1
-2014-05-28 18:06:33.689493: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmphGrH6T.tmp1PBkNV.pyomo.lp
-2014-05-28 18:06:33.708438: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.1388 First stage cost avg= 108883.5201 Max-Min= 7.28
-Cumulative run-time=4.53 seconds
-
-Initiating PH iteration=47
-2014-05-28 18:06:33.723101: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpQQ7Qbk.tmpt4pffo.pyomo.lp
-2014-05-28 18:06:33.743569: Solve completed - number of solutions=1
-2014-05-28 18:06:33.756302: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpeoDfaX.tmp9BdGvy.pyomo.lp
-2014-05-28 18:06:33.775152: Solve completed - number of solutions=1
-2014-05-28 18:06:33.787858: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpe58ccG.tmp8Twi6M.pyomo.lp
-2014-05-28 18:06:33.804566: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0702 First stage cost avg= 108891.6607 Max-Min= 3.68
-Cumulative run-time=4.63 seconds
-
-Initiating PH iteration=48
-2014-05-28 18:06:33.817276: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpGXyPYd.tmpbQMEFU.pyomo.lp
-2014-05-28 18:06:33.835738: Solve completed - number of solutions=1
-2014-05-28 18:06:33.848684: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpktRg8F.tmpyC4sg4.pyomo.lp
-2014-05-28 18:06:33.868900: Solve completed - number of solutions=1
-2014-05-28 18:06:33.882631: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp7pWVIH.tmp2IWNt3.pyomo.lp
-2014-05-28 18:06:33.901369: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0014 First stage cost avg= 108899.8341 Max-Min= 0.07
-Cumulative run-time=4.72 seconds
-PH converged - convergence metric is below threshold=0.01
-Number of discrete variables fixed before final plugin calls=0 (total=0)
-Number of continuous variables fixed before final plugin calls=0 (total=3)
-PH algorithm history written to file=ph_history.json
-PH complete
-Convergence history:
-Iteration Metric Value
- 0 98.5185
- 1 56.7654
- 2 37.3580
- 3 36.5075
- 4 35.4086
- 5 36.2217
- 6 29.3303
- 7 21.9702
- 8 13.8077
- 9 9.5141
- 10 12.0668
- 11 11.6644
- 12 7.5080
- 13 3.1070
- 14 5.5300
- 15 5.4381
- 16 3.2812
- 17 1.1980
- 18 1.0800
- 19 1.3642
- 20 1.5168
- 21 1.6833
- 22 1.6446
- 23 1.3382
- 24 0.8599
- 25 0.3180
- 26 0.1981
- 27 0.5760
- 28 0.8045
- 29 0.8608
- 30 0.7643
- 31 0.5565
- 32 0.2905
- 33 0.0205
- 34 0.2079
- 35 0.3637
- 36 0.4328
- 37 0.4183
- 38 0.3365
- 39 0.2122
- 40 0.0733
- 41 0.0547
- 42 0.1522
- 43 0.2081
- 44 0.2200
- 45 0.1933
- 46 0.1388
- 47 0.0702
- 48 0.0014
-
-***********************************************************************************************
->>>THE EXPECTED SUM OF THE STAGE COST VARIABLES=-108389.889265<<<
->>>***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise<<<
-***********************************************************************************************
-Final number of discrete variables fixed=0 (total=0)
-Final number of continuous variables fixed=0 (total=3)
-Final variable values:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 79.9989 80.0000 79.9984 Max-Min: 0.0016 Avg: 79.9991
- Index: [SUGAR_BEETS] Values: 249.9990 249.9984 250.0000 Max-Min: 0.0016 Avg: 249.9991
- Index: [WHEAT] Values: 170.0021 170.0016 170.0016 Max-Min: 0.0005 Avg: 170.0018
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108899.8013 108899.8284 108899.8727 Max-Min: 0.0714 Avg: 108899.8341
-Final costs:
-Scenario Tree Costs
-***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise
-----------------------------------------------------
-Tree Nodes:
-
- Name=AboveAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AboveAverageScenario
- Expected cost of (sub)tree rooted at node=-275899.9510
-
- Name=AverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AverageScenario
- Expected cost of (sub)tree rooted at node=-218249.5388
-
- Name=BelowAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-157719.5818
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- AboveAverageNode
- AverageNode
- BelowAverageNode
- Scenarios:
- AboveAverageScenario
- AverageScenario
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-108389.8893
-
-----------------------------------------------------
-Scenarios:
-
- Name=AboveAverageScenario
- Probability=0.3333
- Leaf Node=AboveAverageNode
- Tree node sequence:
- RootNode
- AboveAverageNode
- Stage= FirstStage Cost=108899.8727
- Stage= SecondStage Cost=-275899.9510
- Total scenario cost=-167000.0783
-
- Name=AverageScenario
- Probability=0.3333
- Leaf Node=AverageNode
- Tree node sequence:
- RootNode
- AverageNode
- Stage= FirstStage Cost=108899.8284
- Stage= SecondStage Cost=-218249.5388
- Total scenario cost=-109349.7104
-
- Name=BelowAverageScenario
- Probability=0.3333
- Leaf Node=BelowAverageNode
- Tree node sequence:
- RootNode
- BelowAverageNode
- Stage= FirstStage Cost=108899.8013
- Stage= SecondStage Cost=-157719.5818
- Total scenario cost=-48819.7805
-
-----------------------------------------------------
-
-Total PH execution time=4.73 seconds
-
-Scenario tree solution written to file=ph_solution.json
-Shutting down Pyro solver components
-Dispatcher received request to shut down - initiating...
-
-Total execution time=7.78 seconds
-Name Server gracefully stopped.
-Lost connection to dispatch server - shutting down...
diff --git a/pyomo/pysp/tests/examples/baselines/TestPHFarmerTrivialBundlesPyro.test3.baseline b/pyomo/pysp/tests/examples/baselines/TestPHFarmerTrivialBundlesPyro.test3.baseline
deleted file mode 100644
index 7460269516c..00000000000
--- a/pyomo/pysp/tests/examples/baselines/TestPHFarmerTrivialBundlesPyro.test3.baseline
+++ /dev/null
@@ -1,267 +0,0 @@
-*** Pyro Name Server ***
-Name server listening on: ('0.0.0.0', 9090)
-Broadcast server listening on: ('0.0.0.0', 9090)
-URI is: PYRO://10.0.0.15:9090/0a00000f345e20a08d2ba415593e46b0e4
-URI written to: /Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/pyomo/pysp/tests/examples/Pyro_NS_URI
-Name Server started.
-User-defined PH extension module=pyomo.pysp.plugins.phhistoryextension already imported - skipping
-Dispatcher is ready.
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI:PYRO://10.0.0.15:7766/0a00000f345f20a08d2cc698f99968cfee
-This is worker Worker_13408@Ozymandias.local
-Listening for work from dispatcher...
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI: PYRO://10.0.0.15:7766/0a00000f345f20a08d2cc698f99968cfee
-This is client 13409@Ozymandias.local
-Initializing PH
-
-User-defined PH solution writer module=pyomo.pysp.plugins.jsonsolutionwriter already imported - skipping
-Starting PH
-
-Initiating PH iteration=0
-2014-05-28 18:06:41.445454: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpvHR5mY.tmpmdDNBX.pyomo.lp
-2014-05-28 18:06:41.462229: Solve completed - number of solutions=1
-2014-05-28 18:06:41.475249: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpQ7t30F.tmpMEJJb9.pyomo.lp
-2014-05-28 18:06:41.491447: Solve completed - number of solutions=1
-2014-05-28 18:06:41.504411: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpZyx8xc.tmpdAdsko.pyomo.lp
-2014-05-28 18:06:41.521972: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.2540 First stage cost avg= 113494.4444 Max-Min=10416.67
-Cumulative run-time=0.16 seconds
-
-Initiating PH iteration=1
-2014-05-28 18:06:41.539584: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpDstSet.tmpqWCj5C.pyomo.lp
-2014-05-28 18:06:41.557924: Solve completed - number of solutions=1
-2014-05-28 18:06:41.571572: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpp15eL6.tmpwNzULl.pyomo.lp
-2014-05-28 18:06:41.591877: Solve completed - number of solutions=1
-2014-05-28 18:06:41.605555: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpuv2BTl.tmpIHuBVB.pyomo.lp
-2014-05-28 18:06:41.622638: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.1307 First stage cost avg= 113073.3333 Max-Min= 7180.00
-Cumulative run-time=0.26 seconds
-
-Initiating PH iteration=2
-2014-05-28 18:06:41.642999: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpHAaJOx.tmpcFF3RO.pyomo.lp
-2014-05-28 18:06:41.659343: Solve completed - number of solutions=1
-2014-05-28 18:06:41.672598: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp6ph5Sg.tmppY3sGH.pyomo.lp
-2014-05-28 18:06:41.690845: Solve completed - number of solutions=1
-2014-05-28 18:06:41.704338: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp5oRw2Q.tmpQXdNUU.pyomo.lp
-2014-05-28 18:06:41.721891: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0872 First stage cost avg= 113259.7778 Max-Min= 1736.67
-Cumulative run-time=0.36 seconds
-
-Initiating PH iteration=3
-2014-05-28 18:06:41.743655: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpn1M3GJ.tmpxZaJWt.pyomo.lp
-2014-05-28 18:06:41.761646: Solve completed - number of solutions=1
-2014-05-28 18:06:41.774373: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp6e7ob2.tmpFsIn0e.pyomo.lp
-2014-05-28 18:06:41.790668: Solve completed - number of solutions=1
-2014-05-28 18:06:41.803516: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp2X2W2Q.tmp6GzFY6.pyomo.lp
-2014-05-28 18:06:41.819864: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0793 First stage cost avg= 113339.1852 Max-Min= 1836.89
-Cumulative run-time=0.45 seconds
-
-Initiating PH iteration=4
-2014-05-28 18:06:41.840472: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpvhNMVM.tmpa3UbnJ.pyomo.lp
-2014-05-28 18:06:41.857091: Solve completed - number of solutions=1
-2014-05-28 18:06:41.869940: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpZZaPwZ.tmpVG3L3k.pyomo.lp
-2014-05-28 18:06:41.888318: Solve completed - number of solutions=1
-2014-05-28 18:06:41.901409: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpaKQS8Z.tmpopvnQn.pyomo.lp
-2014-05-28 18:06:41.916494: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0820 First stage cost avg= 112746.3951 Max-Min= 3745.63
-Cumulative run-time=0.55 seconds
-
-Initiating PH iteration=5
-2014-05-28 18:06:41.937657: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpa9WuRW.tmpllLht1.pyomo.lp
-2014-05-28 18:06:41.959418: Solve completed - number of solutions=1
-2014-05-28 18:06:41.973803: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpMmAXjd.tmpPhzBPG.pyomo.lp
-2014-05-28 18:06:41.992760: Solve completed - number of solutions=1
-2014-05-28 18:06:42.005631: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp6yKzF8.tmpKJQIV0.pyomo.lp
-2014-05-28 18:06:42.025007: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0828 First stage cost avg= 112327.9383 Max-Min= 4381.88
-Cumulative run-time=0.66 seconds
-
-Initiating PH iteration=6
-2014-05-28 18:06:42.046691: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpae6fqf.tmpxpbce_.pyomo.lp
-2014-05-28 18:06:42.067848: Solve completed - number of solutions=1
-2014-05-28 18:06:42.082316: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpd7eT_x.tmp49s3TN.pyomo.lp
-2014-05-28 18:06:42.103912: Solve completed - number of solutions=1
-2014-05-28 18:06:42.117444: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp5Gy6ep.tmpjO5ykB.pyomo.lp
-2014-05-28 18:06:42.139539: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0561 First stage cost avg= 112125.1852 Max-Min= 1027.56
-Cumulative run-time=0.77 seconds
-
-Initiating PH iteration=7
-2014-05-28 18:06:42.161301: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpNdI9J6.tmpYFZpNh.pyomo.lp
-2014-05-28 18:06:42.179875: Solve completed - number of solutions=1
-2014-05-28 18:06:42.192705: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpByRz2k.tmprfOktJ.pyomo.lp
-2014-05-28 18:06:42.207534: Solve completed - number of solutions=1
-2014-05-28 18:06:42.220675: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpMCdz0F.tmp0sNxfD.pyomo.lp
-2014-05-28 18:06:42.238547: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0625 First stage cost avg= 111694.0412 Max-Min= 2320.99
-Cumulative run-time=0.87 seconds
-
-Initiating PH iteration=8
-2014-05-28 18:06:42.262293: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpVi3arq.tmp3igCiQ.pyomo.lp
-2014-05-28 18:06:42.283657: Solve completed - number of solutions=1
-2014-05-28 18:06:42.297269: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpwkoltO.tmpFbqNtJ.pyomo.lp
-2014-05-28 18:06:42.312291: Solve completed - number of solutions=1
-2014-05-28 18:06:42.325057: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpEevZan.tmpTvwAPS.pyomo.lp
-2014-05-28 18:06:42.341261: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0342 First stage cost avg= 111355.5172 Max-Min= 1015.57
-Cumulative run-time=0.98 seconds
-
-Initiating PH iteration=9
-2014-05-28 18:06:42.357700: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp5oTux0.tmpY8nLrK.pyomo.lp
-2014-05-28 18:06:42.375333: Solve completed - number of solutions=1
-2014-05-28 18:06:42.388982: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp5cFO_e.tmp1y_I8D.pyomo.lp
-2014-05-28 18:06:42.405012: Solve completed - number of solutions=1
-2014-05-28 18:06:42.417761: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpnPeNvc.tmpgCVRbj.pyomo.lp
-2014-05-28 18:06:42.433754: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0000 First stage cost avg= 111355.5172 Max-Min= 0.00
-Cumulative run-time=1.07 seconds
-PH converged - convergence metric is below threshold=0.0001
-Number of discrete variables fixed before final plugin calls=0 (total=0)
-Number of continuous variables fixed before final plugin calls=0 (total=3)
-PH algorithm history written to file=ph_history.json
-PH complete
-Convergence history:
-Iteration Metric Value
- 0 0.2540
- 1 0.1307
- 2 0.0872
- 3 0.0793
- 4 0.0820
- 5 0.0828
- 6 0.0561
- 7 0.0625
- 8 0.0342
- 9 0.0000
-
-***********************************************************************************************
->>>THE EXPECTED SUM OF THE STAGE COST VARIABLES=-107958.896605<<<
->>>***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise<<<
-***********************************************************************************************
-Final number of discrete variables fixed=0 (total=0)
-Final number of continuous variables fixed=0 (total=3)
-Final variable values:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 88.4631 88.4631 88.4631 Max-Min: 0.0000 Avg: 88.4631
- Index: [SUGAR_BEETS] Values: 266.1679 266.1679 266.1679 Max-Min: 0.0000 Avg: 266.1679
- Index: [WHEAT] Values: 145.3690 145.3690 145.3690 Max-Min: 0.0000 Avg: 145.3690
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 111355.5172 111355.5172 111355.5172 Max-Min: 0.0000 Avg: 111355.5172
-Final costs:
-Scenario Tree Costs
-***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise
-----------------------------------------------------
-Tree Nodes:
-
- Name=AboveAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AboveAverageScenario
- Expected cost of (sub)tree rooted at node=-271788.5596
-
- Name=AverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AverageScenario
- Expected cost of (sub)tree rooted at node=-223231.1084
-
- Name=BelowAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-162923.5731
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- AboveAverageNode
- AverageNode
- BelowAverageNode
- Scenarios:
- AboveAverageScenario
- AverageScenario
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-107958.8966
-
-----------------------------------------------------
-Scenarios:
-
- Name=AboveAverageScenario
- Probability=0.3333
- Leaf Node=AboveAverageNode
- Tree node sequence:
- RootNode
- AboveAverageNode
- Stage= FirstStage Cost=111355.5172
- Stage= SecondStage Cost=-271788.5596
- Total scenario cost=-160433.0424
-
- Name=AverageScenario
- Probability=0.3333
- Leaf Node=AverageNode
- Tree node sequence:
- RootNode
- AverageNode
- Stage= FirstStage Cost=111355.5172
- Stage= SecondStage Cost=-223231.1084
- Total scenario cost=-111875.5913
-
- Name=BelowAverageScenario
- Probability=0.3333
- Leaf Node=BelowAverageNode
- Tree node sequence:
- RootNode
- BelowAverageNode
- Stage= FirstStage Cost=111355.5172
- Stage= SecondStage Cost=-162923.5731
- Total scenario cost=-51568.0560
-
-----------------------------------------------------
-
-Total PH execution time=1.07 seconds
-
-Scenario tree solution written to file=ph_solution.json
-Shutting down Pyro solver components
-Dispatcher received request to shut down - initiating...
-
-Total execution time=4.13 seconds
-Name Server gracefully stopped.
-Lost connection to dispatch server - shutting down...
diff --git a/pyomo/pysp/tests/examples/baselines/TestPHFarmerTrivialBundlesPyro.test4.baseline b/pyomo/pysp/tests/examples/baselines/TestPHFarmerTrivialBundlesPyro.test4.baseline
deleted file mode 100644
index 6896d2c4073..00000000000
--- a/pyomo/pysp/tests/examples/baselines/TestPHFarmerTrivialBundlesPyro.test4.baseline
+++ /dev/null
@@ -1,579 +0,0 @@
-*** Pyro Name Server ***
-Name server listening on: ('0.0.0.0', 9090)
-Broadcast server listening on: ('0.0.0.0', 9090)
-URI is: PYRO://10.0.0.15:9090/0a00000f348e20a08d2edd8ac9fec650f4
-URI written to: /Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/pyomo/pysp/tests/examples/Pyro_NS_URI
-Name Server started.
-User-defined PH extension module=pyomo.pysp.plugins.phhistoryextension already imported - skipping
-Dispatcher is ready.
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI:PYRO://10.0.0.15:7766/0a00000f348f20a08d2ffc638190269cbc
-This is worker Worker_13456@Ozymandias.local
-Listening for work from dispatcher...
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI: PYRO://10.0.0.15:7766/0a00000f348f20a08d2ffc638190269cbc
-This is client 13457@Ozymandias.local
-Initializing PH
-
-User-defined PH solution writer module=pyomo.pysp.plugins.jsonsolutionwriter already imported - skipping
-Starting PH
-
-Initiating PH iteration=0
-2014-05-28 18:06:49.678218: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmplflla0.tmpynjGVr.pyomo.lp
-2014-05-28 18:06:49.702000: Solve completed - number of solutions=1
-2014-05-28 18:06:49.715974: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpBcfH7y.tmprXu2sc.pyomo.lp
-2014-05-28 18:06:49.734953: Solve completed - number of solutions=1
-2014-05-28 18:06:49.748652: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpp0Ebze.tmprP9sTx.pyomo.lp
-2014-05-28 18:06:49.765793: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.2540 First stage cost avg= 113494.4444 Max-Min=10416.67
-Cumulative run-time=0.17 seconds
-
-Initiating PH iteration=1
-2014-05-28 18:06:49.780229: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpry9s1K.tmpykvLI_.pyomo.lp
-2014-05-28 18:06:49.803057: Solve completed - number of solutions=1
-2014-05-28 18:06:49.817130: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp5GbLRe.tmpq020Sp.pyomo.lp
-2014-05-28 18:06:49.839663: Solve completed - number of solutions=1
-2014-05-28 18:06:49.852978: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpcQiRew.tmpwF0o1v.pyomo.lp
-2014-05-28 18:06:49.875635: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.1259 First stage cost avg= 113107.2221 Max-Min= 6943.89
-Cumulative run-time=0.28 seconds
-
-Initiating PH iteration=2
-2014-05-28 18:06:49.889115: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpfaSXTl.tmpyw2Wx2.pyomo.lp
-2014-05-28 18:06:49.906906: Solve completed - number of solutions=1
-2014-05-28 18:06:49.919509: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpb_vLm9.tmpgIv8BU.pyomo.lp
-2014-05-28 18:06:49.937611: Solve completed - number of solutions=1
-2014-05-28 18:06:49.950209: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp4weNF6.tmpE8fmNf.pyomo.lp
-2014-05-28 18:06:49.968173: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0816 First stage cost avg= 112954.6296 Max-Min= 2234.82
-Cumulative run-time=0.37 seconds
-
-Initiating PH iteration=3
-2014-05-28 18:06:49.980788: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpaGPP8Q.tmpfT_588.pyomo.lp
-2014-05-28 18:06:49.998981: Solve completed - number of solutions=1
-2014-05-28 18:06:50.011539: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp3cDL2i.tmpMWyZ10.pyomo.lp
-2014-05-28 18:06:50.030716: Solve completed - number of solutions=1
-2014-05-28 18:06:50.043412: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpb0Dk0z.tmpHn4bGP.pyomo.lp
-2014-05-28 18:06:50.061259: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0796 First stage cost avg= 112963.0248 Max-Min= 2375.31
-Cumulative run-time=0.46 seconds
-
-Initiating PH iteration=4
-2014-05-28 18:06:50.074857: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpqxlx84.tmptPNEiN.pyomo.lp
-2014-05-28 18:06:50.099933: Solve completed - number of solutions=1
-2014-05-28 18:06:50.112612: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpcjHSmS.tmpAp8FT7.pyomo.lp
-2014-05-28 18:06:50.130698: Solve completed - number of solutions=1
-2014-05-28 18:06:50.143637: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpjQFUQT.tmpGvjOfS.pyomo.lp
-2014-05-28 18:06:50.162169: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0776 First stage cost avg= 112915.6071 Max-Min= 3047.08
-Cumulative run-time=0.56 seconds
-
-Initiating PH iteration=5
-2014-05-28 18:06:50.175875: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpgw9UDs.tmpIGT3AM.pyomo.lp
-2014-05-28 18:06:50.195313: Solve completed - number of solutions=1
-2014-05-28 18:06:50.208501: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpDMTtsX.tmpzHdeRo.pyomo.lp
-2014-05-28 18:06:50.227284: Solve completed - number of solutions=1
-2014-05-28 18:06:50.239977: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpyuy8n3.tmpQKxqj2.pyomo.lp
-2014-05-28 18:06:50.257712: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0794 First stage cost avg= 112825.3926 Max-Min= 3339.81
-Cumulative run-time=0.66 seconds
-
-Initiating PH iteration=6
-2014-05-28 18:06:50.271368: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpEBKrXZ.tmpwzOvv0.pyomo.lp
-2014-05-28 18:06:50.289666: Solve completed - number of solutions=1
-2014-05-28 18:06:50.302292: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp2MRUFX.tmpbug8YP.pyomo.lp
-2014-05-28 18:06:50.320560: Solve completed - number of solutions=1
-2014-05-28 18:06:50.334219: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp6C7DV0.tmpwv3ESp.pyomo.lp
-2014-05-28 18:06:50.352657: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0668 First stage cost avg= 112317.9502 Max-Min= 2019.60
-Cumulative run-time=0.75 seconds
-
-Initiating PH iteration=7
-2014-05-28 18:06:50.365256: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp1CJM5u.tmpWF6Der.pyomo.lp
-2014-05-28 18:06:50.383021: Solve completed - number of solutions=1
-2014-05-28 18:06:50.395650: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmptMkDIj.tmpeIUyXd.pyomo.lp
-2014-05-28 18:06:50.413846: Solve completed - number of solutions=1
-2014-05-28 18:06:50.427423: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp81WzY5.tmpFvhJQW.pyomo.lp
-2014-05-28 18:06:50.445281: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0542 First stage cost avg= 111364.4660 Max-Min= 1181.85
-Cumulative run-time=0.85 seconds
-
-Initiating PH iteration=8
-2014-05-28 18:06:50.457887: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpd6ztsC.tmpSxErTb.pyomo.lp
-2014-05-28 18:06:50.476841: Solve completed - number of solutions=1
-2014-05-28 18:06:50.489452: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp9UkOfg.tmp0UOc3r.pyomo.lp
-2014-05-28 18:06:50.507672: Solve completed - number of solutions=1
-2014-05-28 18:06:50.521232: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpvSWf23.tmpOwhfpA.pyomo.lp
-2014-05-28 18:06:50.540145: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0360 First stage cost avg= 110283.4074 Max-Min= 463.23
-Cumulative run-time=0.94 seconds
-
-Initiating PH iteration=9
-2014-05-28 18:06:50.553278: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpTaQNPy.tmpZll_DX.pyomo.lp
-2014-05-28 18:06:50.573501: Solve completed - number of solutions=1
-2014-05-28 18:06:50.587795: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpmNGOI0.tmp08jj6s.pyomo.lp
-2014-05-28 18:06:50.612326: Solve completed - number of solutions=1
-2014-05-28 18:06:50.626966: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmprZz2vO.tmpiA_sfq.pyomo.lp
-2014-05-28 18:06:50.654649: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0243 First stage cost avg= 109399.2542 Max-Min= 363.90
-Cumulative run-time=1.06 seconds
-
-Initiating PH iteration=10
-2014-05-28 18:06:50.669278: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpMlT8xh.tmpCjGDO4.pyomo.lp
-2014-05-28 18:06:50.694578: Solve completed - number of solutions=1
-2014-05-28 18:06:50.708538: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpMKT7Dx.tmpQPaYmh.pyomo.lp
-2014-05-28 18:06:50.730803: Solve completed - number of solutions=1
-2014-05-28 18:06:50.743925: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpmyZuSX.tmpuRYFVW.pyomo.lp
-2014-05-28 18:06:50.767682: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0256 First stage cost avg= 108834.1930 Max-Min= 933.90
-Cumulative run-time=1.17 seconds
-
-Initiating PH iteration=11
-2014-05-28 18:06:50.780306: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpV8GwY4.tmpy5mc1r.pyomo.lp
-2014-05-28 18:06:50.800082: Solve completed - number of solutions=1
-2014-05-28 18:06:50.813494: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp7FZ9Jy.tmpo0x3qd.pyomo.lp
-2014-05-28 18:06:50.833272: Solve completed - number of solutions=1
-2014-05-28 18:06:50.845983: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpFP7MuB.tmpT3SqPF.pyomo.lp
-2014-05-28 18:06:50.865004: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0248 First stage cost avg= 108575.3219 Max-Min= 918.57
-Cumulative run-time=1.27 seconds
-
-Initiating PH iteration=12
-2014-05-28 18:06:50.877629: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpUK8bY8.tmpW0jslQ.pyomo.lp
-2014-05-28 18:06:50.896378: Solve completed - number of solutions=1
-2014-05-28 18:06:50.910355: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpsSB8ZA.tmpGDS6Su.pyomo.lp
-2014-05-28 18:06:50.927971: Solve completed - number of solutions=1
-2014-05-28 18:06:50.940568: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpHVzono.tmpjJCoCx.pyomo.lp
-2014-05-28 18:06:50.958103: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0163 First stage cost avg= 108513.5347 Max-Min= 591.25
-Cumulative run-time=1.36 seconds
-
-Initiating PH iteration=13
-2014-05-28 18:06:50.970874: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp6bYUAe.tmpKz8pn9.pyomo.lp
-2014-05-28 18:06:50.989808: Solve completed - number of solutions=1
-2014-05-28 18:06:51.002418: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpBg66d3.tmpzb5KQ3.pyomo.lp
-2014-05-28 18:06:51.020045: Solve completed - number of solutions=1
-2014-05-28 18:06:51.032649: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmptW2LI9.tmpj98Bzw.pyomo.lp
-2014-05-28 18:06:51.050330: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0081 First stage cost avg= 108528.2899 Max-Min= 175.95
-Cumulative run-time=1.45 seconds
-
-Initiating PH iteration=14
-2014-05-28 18:06:51.063462: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpluAnvI.tmpjSQyJy.pyomo.lp
-2014-05-28 18:06:51.081830: Solve completed - number of solutions=1
-2014-05-28 18:06:51.094475: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpb2uHxX.tmpLSMyd5.pyomo.lp
-2014-05-28 18:06:51.112459: Solve completed - number of solutions=1
-2014-05-28 18:06:51.125085: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpAkJySP.tmpNvE53Y.pyomo.lp
-2014-05-28 18:06:51.143101: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0168 First stage cost avg= 108561.6577 Max-Min= 274.77
-Cumulative run-time=1.55 seconds
-
-Initiating PH iteration=15
-2014-05-28 18:06:51.155778: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpz0fQv8.tmpnXrAJ5.pyomo.lp
-2014-05-28 18:06:51.174272: Solve completed - number of solutions=1
-2014-05-28 18:06:51.186852: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpaSgiW2.tmp7idnTs.pyomo.lp
-2014-05-28 18:06:51.205247: Solve completed - number of solutions=1
-2014-05-28 18:06:51.217875: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpxElZvp.tmpeo4V1y.pyomo.lp
-2014-05-28 18:06:51.235442: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0163 First stage cost avg= 108604.0579 Max-Min= 295.14
-Cumulative run-time=1.64 seconds
-
-Initiating PH iteration=16
-2014-05-28 18:06:51.248189: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpm45yrn.tmphmFljx.pyomo.lp
-2014-05-28 18:06:51.266827: Solve completed - number of solutions=1
-2014-05-28 18:06:51.279370: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpu5hSX6.tmpuc9xhk.pyomo.lp
-2014-05-28 18:06:51.298523: Solve completed - number of solutions=1
-2014-05-28 18:06:51.311122: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpXQ0Lqe.tmp0IhiEw.pyomo.lp
-2014-05-28 18:06:51.329394: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0098 First stage cost avg= 108667.3583 Max-Min= 127.67
-Cumulative run-time=1.73 seconds
-
-Initiating PH iteration=17
-2014-05-28 18:06:51.343238: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpf8Upkx.tmpfHbT04.pyomo.lp
-2014-05-28 18:06:51.363028: Solve completed - number of solutions=1
-2014-05-28 18:06:51.375586: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpdA5HOI.tmpLC9LIq.pyomo.lp
-2014-05-28 18:06:51.393353: Solve completed - number of solutions=1
-2014-05-28 18:06:51.405915: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp_tM8RQ.tmp4hVTrB.pyomo.lp
-2014-05-28 18:06:51.424770: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0032 First stage cost avg= 108758.4237 Max-Min= 59.69
-Cumulative run-time=1.83 seconds
-
-Initiating PH iteration=18
-2014-05-28 18:06:51.437328: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp5oBTsK.tmpjBGkNh.pyomo.lp
-2014-05-28 18:06:51.455730: Solve completed - number of solutions=1
-2014-05-28 18:06:51.468480: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpHowwzS.tmpo1Hzhs.pyomo.lp
-2014-05-28 18:06:51.487021: Solve completed - number of solutions=1
-2014-05-28 18:06:51.499648: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpT_cqVL.tmpghlpL7.pyomo.lp
-2014-05-28 18:06:51.518085: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0026 First stage cost avg= 108868.1277 Max-Min= 101.79
-Cumulative run-time=1.92 seconds
-
-Initiating PH iteration=19
-2014-05-28 18:06:51.530783: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpryY4Nj.tmpKXT7Qw.pyomo.lp
-2014-05-28 18:06:51.549760: Solve completed - number of solutions=1
-2014-05-28 18:06:51.563600: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp7prlxO.tmp5ojQ2H.pyomo.lp
-2014-05-28 18:06:51.581990: Solve completed - number of solutions=1
-2014-05-28 18:06:51.595883: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp0kNeB8.tmpMnVfVe.pyomo.lp
-2014-05-28 18:06:51.613115: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0039 First stage cost avg= 108975.3089 Max-Min= 73.41
-Cumulative run-time=2.02 seconds
-
-Initiating PH iteration=20
-2014-05-28 18:06:51.643313: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpRGCMn5.tmpORu0Jx.pyomo.lp
-2014-05-28 18:06:51.661954: Solve completed - number of solutions=1
-2014-05-28 18:06:51.675948: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpCdQezl.tmp5PN7AA.pyomo.lp
-2014-05-28 18:06:51.694950: Solve completed - number of solutions=1
-2014-05-28 18:06:51.707593: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpeW2z0X.tmpeo22N8.pyomo.lp
-2014-05-28 18:06:51.725600: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0043 First stage cost avg= 109057.4144 Max-Min= 39.47
-Cumulative run-time=2.13 seconds
-
-Initiating PH iteration=21
-2014-05-28 18:06:51.739289: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpijhOcr.tmpimrS7z.pyomo.lp
-2014-05-28 18:06:51.758453: Solve completed - number of solutions=1
-2014-05-28 18:06:51.771103: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp29joAN.tmp12DzBy.pyomo.lp
-2014-05-28 18:06:51.789173: Solve completed - number of solutions=1
-2014-05-28 18:06:51.801840: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp21OWUM.tmpOK78HV.pyomo.lp
-2014-05-28 18:06:51.819466: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0044 First stage cost avg= 109099.7145 Max-Min= 87.57
-Cumulative run-time=2.22 seconds
-
-Initiating PH iteration=22
-2014-05-28 18:06:51.833094: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpsqjoFi.tmpjdSZuE.pyomo.lp
-2014-05-28 18:06:51.851721: Solve completed - number of solutions=1
-2014-05-28 18:06:51.865327: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpb7ZDPD.tmpOPeLLm.pyomo.lp
-2014-05-28 18:06:51.883102: Solve completed - number of solutions=1
-2014-05-28 18:06:51.896454: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpfWNI6E.tmpGJ6HMj.pyomo.lp
-2014-05-28 18:06:51.914340: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0040 First stage cost avg= 109099.1239 Max-Min= 104.22
-Cumulative run-time=2.32 seconds
-
-Initiating PH iteration=23
-2014-05-28 18:06:51.927113: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpwGZMmT.tmplSMNLR.pyomo.lp
-2014-05-28 18:06:51.946257: Solve completed - number of solutions=1
-2014-05-28 18:06:51.958931: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpLIDw1V.tmpsICSTG.pyomo.lp
-2014-05-28 18:06:51.976530: Solve completed - number of solutions=1
-2014-05-28 18:06:51.990148: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpjqDB21.tmpa0dVxZ.pyomo.lp
-2014-05-28 18:06:52.008580: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0032 First stage cost avg= 109062.8322 Max-Min= 88.54
-Cumulative run-time=2.41 seconds
-
-Initiating PH iteration=24
-2014-05-28 18:06:52.021727: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpkqGkfP.tmpFBo40J.pyomo.lp
-2014-05-28 18:06:52.041474: Solve completed - number of solutions=1
-2014-05-28 18:06:52.054038: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpvdw0Mx.tmprmgMsG.pyomo.lp
-2014-05-28 18:06:52.073964: Solve completed - number of solutions=1
-2014-05-28 18:06:52.086866: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmppERTNz.tmpiddu2p.pyomo.lp
-2014-05-28 18:06:52.104990: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0021 First stage cost avg= 109004.1156 Max-Min= 54.49
-Cumulative run-time=2.51 seconds
-
-Initiating PH iteration=25
-2014-05-28 18:06:52.117625: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpNWInuf.tmpw5wB5g.pyomo.lp
-2014-05-28 18:06:52.137218: Solve completed - number of solutions=1
-2014-05-28 18:06:52.149858: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpGlCWbS.tmpchzWnA.pyomo.lp
-2014-05-28 18:06:52.168539: Solve completed - number of solutions=1
-2014-05-28 18:06:52.182074: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpLchDdq.tmpzgTD7S.pyomo.lp
-2014-05-28 18:06:52.200529: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0008 First stage cost avg= 108937.8039 Max-Min= 16.89
-Cumulative run-time=2.60 seconds
-
-Initiating PH iteration=26
-2014-05-28 18:06:52.214685: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpEpkTHY.tmpSUNzds.pyomo.lp
-2014-05-28 18:06:52.235686: Solve completed - number of solutions=1
-2014-05-28 18:06:52.249862: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmplZcOlv.tmphKc7D0.pyomo.lp
-2014-05-28 18:06:52.268623: Solve completed - number of solutions=1
-2014-05-28 18:06:52.281912: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpP7rfVZ.tmprZo2Y2.pyomo.lp
-2014-05-28 18:06:52.304836: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0005 First stage cost avg= 108876.8822 Max-Min= 14.27
-Cumulative run-time=2.71 seconds
-
-Initiating PH iteration=27
-2014-05-28 18:06:52.318890: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpBPFTYI.tmpJL0hq5.pyomo.lp
-2014-05-28 18:06:52.340170: Solve completed - number of solutions=1
-2014-05-28 18:06:52.352970: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmph8Sb2R.tmpYakX6P.pyomo.lp
-2014-05-28 18:06:52.376249: Solve completed - number of solutions=1
-2014-05-28 18:06:52.390670: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp2Y8jUt.tmpiltfGF.pyomo.lp
-2014-05-28 18:06:52.413017: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0015 First stage cost avg= 108830.6201 Max-Min= 34.81
-Cumulative run-time=2.82 seconds
-
-Initiating PH iteration=28
-2014-05-28 18:06:52.431395: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp0N9Hh2.tmp_FRsU6.pyomo.lp
-2014-05-28 18:06:52.450501: Solve completed - number of solutions=1
-2014-05-28 18:06:52.464627: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp2jACC0.tmp18UN8n.pyomo.lp
-2014-05-28 18:06:52.483961: Solve completed - number of solutions=1
-2014-05-28 18:06:52.497495: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpyNzfLp.tmpb1BuQ0.pyomo.lp
-2014-05-28 18:06:52.516062: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0021 First stage cost avg= 108803.9655 Max-Min= 44.57
-Cumulative run-time=2.92 seconds
-
-Initiating PH iteration=29
-2014-05-28 18:06:52.529536: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpSwaXqm.tmp0oHDAl.pyomo.lp
-2014-05-28 18:06:52.550227: Solve completed - number of solutions=1
-2014-05-28 18:06:52.565084: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpASFV0w.tmpxEw6hC.pyomo.lp
-2014-05-28 18:06:52.590783: Solve completed - number of solutions=1
-2014-05-28 18:06:52.604470: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpz5gP2C.tmpOcZNs8.pyomo.lp
-2014-05-28 18:06:52.626451: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0023 First stage cost avg= 108797.7661 Max-Min= 45.24
-Cumulative run-time=3.03 seconds
-
-Initiating PH iteration=30
-2014-05-28 18:06:52.640805: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpbXJm4B.tmpAXuq8G.pyomo.lp
-2014-05-28 18:06:52.664878: Solve completed - number of solutions=1
-2014-05-28 18:06:52.678610: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpJqbpCU.tmp1KTmRB.pyomo.lp
-2014-05-28 18:06:52.699507: Solve completed - number of solutions=1
-2014-05-28 18:06:52.713112: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpNX_QW9.tmp4mCW9M.pyomo.lp
-2014-05-28 18:06:52.733765: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0020 First stage cost avg= 108809.4793 Max-Min= 39.01
-Cumulative run-time=3.14 seconds
-
-Initiating PH iteration=31
-2014-05-28 18:06:52.746299: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmphkzThw.tmp8D_hsg.pyomo.lp
-2014-05-28 18:06:52.763991: Solve completed - number of solutions=1
-2014-05-28 18:06:52.776838: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmppFkDLa.tmpZ3fiM_.pyomo.lp
-2014-05-28 18:06:52.795641: Solve completed - number of solutions=1
-2014-05-28 18:06:52.808179: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp2Zu1Qt.tmpEyM2VN.pyomo.lp
-2014-05-28 18:06:52.827414: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0015 First stage cost avg= 108834.1639 Max-Min= 28.07
-Cumulative run-time=3.23 seconds
-
-Initiating PH iteration=32
-2014-05-28 18:06:52.841086: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmprptb4Z.tmphul23J.pyomo.lp
-2014-05-28 18:06:52.861162: Solve completed - number of solutions=1
-2014-05-28 18:06:52.874496: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpX2DMUl.tmpzxeQYk.pyomo.lp
-2014-05-28 18:06:52.891621: Solve completed - number of solutions=1
-2014-05-28 18:06:52.904316: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp232ld0.tmpEZLRfO.pyomo.lp
-2014-05-28 18:06:52.921814: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0008 First stage cost avg= 108865.6237 Max-Min= 14.67
-Cumulative run-time=3.32 seconds
-
-Initiating PH iteration=33
-2014-05-28 18:06:52.935189: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp4ETqGt.tmpUlDHCU.pyomo.lp
-2014-05-28 18:06:52.953334: Solve completed - number of solutions=1
-2014-05-28 18:06:52.967245: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmptPcmD9.tmpsSEfEc.pyomo.lp
-2014-05-28 18:06:52.985245: Solve completed - number of solutions=1
-2014-05-28 18:06:52.997865: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpZsBfBJ.tmpnr5GYK.pyomo.lp
-2014-05-28 18:06:53.018248: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0001 First stage cost avg= 108897.5679 Max-Min= 1.06
-Cumulative run-time=3.42 seconds
-PH converged - convergence metric is below threshold=0.0001
-Number of discrete variables fixed before final plugin calls=0 (total=0)
-Number of continuous variables fixed before final plugin calls=0 (total=3)
-PH algorithm history written to file=ph_history.json
-PH complete
-Convergence history:
-Iteration Metric Value
- 0 0.2540
- 1 0.1259
- 2 0.0816
- 3 0.0796
- 4 0.0776
- 5 0.0794
- 6 0.0668
- 7 0.0542
- 8 0.0360
- 9 0.0243
- 10 0.0256
- 11 0.0248
- 12 0.0163
- 13 0.0081
- 14 0.0168
- 15 0.0163
- 16 0.0098
- 17 0.0032
- 18 0.0026
- 19 0.0039
- 20 0.0043
- 21 0.0044
- 22 0.0040
- 23 0.0032
- 24 0.0021
- 25 0.0008
- 26 0.0005
- 27 0.0015
- 28 0.0021
- 29 0.0023
- 30 0.0020
- 31 0.0015
- 32 0.0008
- 33 0.0001
-
-***********************************************************************************************
->>>THE EXPECTED SUM OF THE STAGE COST VARIABLES=-108388.378639<<<
->>>***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise<<<
-***********************************************************************************************
-Final number of discrete variables fixed=0 (total=0)
-Final number of continuous variables fixed=0 (total=3)
-Final variable values:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 79.9844 80.0000 79.9768 Max-Min: 0.0232 Avg: 79.9871
- Index: [SUGAR_BEETS] Values: 249.9848 249.9770 250.0000 Max-Min: 0.0230 Avg: 249.9873
- Index: [WHEAT] Values: 170.0308 170.0230 170.0232 Max-Min: 0.0078 Avg: 170.0256
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108897.0836 108897.4725 108898.1476 Max-Min: 1.0640 Avg: 108897.5679
-Final costs:
-Scenario Tree Costs
-***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise
-----------------------------------------------------
-Tree Nodes:
-
- Name=AboveAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AboveAverageScenario
- Expected cost of (sub)tree rooted at node=-275899.3041
-
- Name=AverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AverageScenario
- Expected cost of (sub)tree rooted at node=-218243.2209
-
- Name=BelowAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-157713.8615
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- AboveAverageNode
- AverageNode
- BelowAverageNode
- Scenarios:
- AboveAverageScenario
- AverageScenario
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-108388.3786
-
-----------------------------------------------------
-Scenarios:
-
- Name=AboveAverageScenario
- Probability=0.3333
- Leaf Node=AboveAverageNode
- Tree node sequence:
- RootNode
- AboveAverageNode
- Stage= FirstStage Cost=108898.1476
- Stage= SecondStage Cost=-275899.3041
- Total scenario cost=-167001.1565
-
- Name=AverageScenario
- Probability=0.3333
- Leaf Node=AverageNode
- Tree node sequence:
- RootNode
- AverageNode
- Stage= FirstStage Cost=108897.4725
- Stage= SecondStage Cost=-218243.2209
- Total scenario cost=-109345.7484
-
- Name=BelowAverageScenario
- Probability=0.3333
- Leaf Node=BelowAverageNode
- Tree node sequence:
- RootNode
- BelowAverageNode
- Stage= FirstStage Cost=108897.0836
- Stage= SecondStage Cost=-157713.8615
- Total scenario cost=-48816.7780
-
-----------------------------------------------------
-
-Total PH execution time=3.43 seconds
-
-Scenario tree solution written to file=ph_solution.json
-Shutting down Pyro solver components
-Dispatcher received request to shut down - initiating...
-
-Total execution time=6.48 seconds
-Name Server gracefully stopped.
-Lost connection to dispatch server - shutting down...
diff --git a/pyomo/pysp/tests/examples/baselines/TestPHFarmerTrivialBundlesPyro.test5.baseline b/pyomo/pysp/tests/examples/baselines/TestPHFarmerTrivialBundlesPyro.test5.baseline
deleted file mode 100644
index 753b515653e..00000000000
--- a/pyomo/pysp/tests/examples/baselines/TestPHFarmerTrivialBundlesPyro.test5.baseline
+++ /dev/null
@@ -1,579 +0,0 @@
-*** Pyro Name Server ***
-Name server listening on: ('0.0.0.0', 9090)
-Broadcast server listening on: ('0.0.0.0', 9090)
-URI is: PYRO://10.0.0.15:9090/0a00000f350620a08d3319d919a00eb565
-URI written to: /Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/pyomo/pysp/tests/examples/Pyro_NS_URI
-Name Server started.
-User-defined PH extension module=pyomo.pysp.plugins.phhistoryextension already imported - skipping
-Dispatcher is ready.
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI:PYRO://10.0.0.15:7766/0a00000f350720a08d343be3255f213b1b
-This is worker Worker_13576@Ozymandias.local
-Listening for work from dispatcher...
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI: PYRO://10.0.0.15:7766/0a00000f350720a08d343be3255f213b1b
-This is client 13577@Ozymandias.local
-Initializing PH
-
-User-defined PH solution writer module=pyomo.pysp.plugins.jsonsolutionwriter already imported - skipping
-Starting PH
-
-Initiating PH iteration=0
-2014-05-28 18:07:00.547740: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpURu901.tmpq8Szql.pyomo.lp
-2014-05-28 18:07:00.563707: Solve completed - number of solutions=1
-2014-05-28 18:07:00.576318: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpvtsYSo.tmpFekLdm.pyomo.lp
-2014-05-28 18:07:00.591510: Solve completed - number of solutions=1
-2014-05-28 18:07:00.604170: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmptbCjuO.tmpWx_JrD.pyomo.lp
-2014-05-28 18:07:00.621629: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.2540 First stage cost avg= 113494.4444 Max-Min=10416.67
-Cumulative run-time=0.15 seconds
-
-Initiating PH iteration=1
-2014-05-28 18:07:00.635093: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp7QTZ_b.tmpieqV0N.pyomo.lp
-2014-05-28 18:07:00.654598: Solve completed - number of solutions=1
-2014-05-28 18:07:00.667198: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpDelhd6.tmpAqTusJ.pyomo.lp
-2014-05-28 18:07:00.685266: Solve completed - number of solutions=1
-2014-05-28 18:07:00.697880: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp8dFBn3.tmpSQR7k7.pyomo.lp
-2014-05-28 18:07:00.716329: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.1259 First stage cost avg= 113107.2221 Max-Min= 6943.89
-Cumulative run-time=0.25 seconds
-
-Initiating PH iteration=2
-2014-05-28 18:07:00.729463: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpXn8K0R.tmpEQVOu8.pyomo.lp
-2014-05-28 18:07:00.749563: Solve completed - number of solutions=1
-2014-05-28 18:07:00.762208: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpau9LKX.tmp1hxQMl.pyomo.lp
-2014-05-28 18:07:00.781715: Solve completed - number of solutions=1
-2014-05-28 18:07:00.794956: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpoEuyfB.tmpkBRzA3.pyomo.lp
-2014-05-28 18:07:00.813387: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0816 First stage cost avg= 112954.6296 Max-Min= 2234.82
-Cumulative run-time=0.35 seconds
-
-Initiating PH iteration=3
-2014-05-28 18:07:00.826368: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpr8urRj.tmpyMnjjs.pyomo.lp
-2014-05-28 18:07:00.845114: Solve completed - number of solutions=1
-2014-05-28 18:07:00.857819: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpdqJv86.tmpET9iGr.pyomo.lp
-2014-05-28 18:07:00.876217: Solve completed - number of solutions=1
-2014-05-28 18:07:00.888935: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpvW93la.tmp27xjAM.pyomo.lp
-2014-05-28 18:07:00.910298: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0796 First stage cost avg= 112963.0248 Max-Min= 2375.31
-Cumulative run-time=0.44 seconds
-
-Initiating PH iteration=4
-2014-05-28 18:07:00.923291: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpec7JcO.tmpJADGN3.pyomo.lp
-2014-05-28 18:07:00.944905: Solve completed - number of solutions=1
-2014-05-28 18:07:00.958240: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpIltysd.tmpsOE3EL.pyomo.lp
-2014-05-28 18:07:00.979742: Solve completed - number of solutions=1
-2014-05-28 18:07:00.993407: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpblXfya.tmpI7wLPu.pyomo.lp
-2014-05-28 18:07:01.015190: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0776 First stage cost avg= 112915.6071 Max-Min= 3047.08
-Cumulative run-time=0.55 seconds
-
-Initiating PH iteration=5
-2014-05-28 18:07:01.031107: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp7jpGNS.tmpmNQTtq.pyomo.lp
-2014-05-28 18:07:01.054795: Solve completed - number of solutions=1
-2014-05-28 18:07:01.069148: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp6NNHCB.tmpIIHf42.pyomo.lp
-2014-05-28 18:07:01.090247: Solve completed - number of solutions=1
-2014-05-28 18:07:01.104191: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpiY6m9c.tmpGGhToe.pyomo.lp
-2014-05-28 18:07:01.125522: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0794 First stage cost avg= 112825.3926 Max-Min= 3339.81
-Cumulative run-time=0.66 seconds
-
-Initiating PH iteration=6
-2014-05-28 18:07:01.138268: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmplgyrkT.tmpsozwBn.pyomo.lp
-2014-05-28 18:07:01.159233: Solve completed - number of solutions=1
-2014-05-28 18:07:01.173547: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp1M08dU.tmpiPmpX_.pyomo.lp
-2014-05-28 18:07:01.192459: Solve completed - number of solutions=1
-2014-05-28 18:07:01.205057: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpFRtwnW.tmphdBuMP.pyomo.lp
-2014-05-28 18:07:01.221409: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0668 First stage cost avg= 112317.9502 Max-Min= 2019.60
-Cumulative run-time=0.75 seconds
-
-Initiating PH iteration=7
-2014-05-28 18:07:01.235849: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpkP9Sg9.tmpPqZglY.pyomo.lp
-2014-05-28 18:07:01.255317: Solve completed - number of solutions=1
-2014-05-28 18:07:01.268670: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpBiN_sQ.tmpEBh5eD.pyomo.lp
-2014-05-28 18:07:01.287706: Solve completed - number of solutions=1
-2014-05-28 18:07:01.300815: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpys6ZzW.tmpUvrKIU.pyomo.lp
-2014-05-28 18:07:01.319603: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0542 First stage cost avg= 111364.4660 Max-Min= 1181.85
-Cumulative run-time=0.85 seconds
-
-Initiating PH iteration=8
-2014-05-28 18:07:01.333635: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpRIGmN5.tmprxgSHI.pyomo.lp
-2014-05-28 18:07:01.353452: Solve completed - number of solutions=1
-2014-05-28 18:07:01.366288: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpyMtGr5.tmpQWdgBk.pyomo.lp
-2014-05-28 18:07:01.386341: Solve completed - number of solutions=1
-2014-05-28 18:07:01.399458: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpVyW2Z6.tmpD6jWKF.pyomo.lp
-2014-05-28 18:07:01.419423: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0360 First stage cost avg= 110283.4074 Max-Min= 463.23
-Cumulative run-time=0.95 seconds
-
-Initiating PH iteration=9
-2014-05-28 18:07:01.432393: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpOPdy9k.tmp8VsZxZ.pyomo.lp
-2014-05-28 18:07:01.451279: Solve completed - number of solutions=1
-2014-05-28 18:07:01.464003: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpuFu9GO.tmpx5W_qj.pyomo.lp
-2014-05-28 18:07:01.482831: Solve completed - number of solutions=1
-2014-05-28 18:07:01.496054: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp_XotlB.tmpDlXbPY.pyomo.lp
-2014-05-28 18:07:01.515718: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0243 First stage cost avg= 109399.2542 Max-Min= 363.90
-Cumulative run-time=1.05 seconds
-
-Initiating PH iteration=10
-2014-05-28 18:07:01.529898: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpEE2Ucx.tmp6eqAyk.pyomo.lp
-2014-05-28 18:07:01.555176: Solve completed - number of solutions=1
-2014-05-28 18:07:01.569461: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpvwd7Rq.tmpEE0UG1.pyomo.lp
-2014-05-28 18:07:01.592324: Solve completed - number of solutions=1
-2014-05-28 18:07:01.604943: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpmgOFDf.tmpVRGaw_.pyomo.lp
-2014-05-28 18:07:01.630062: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0256 First stage cost avg= 108834.1930 Max-Min= 933.90
-Cumulative run-time=1.17 seconds
-
-Initiating PH iteration=11
-2014-05-28 18:07:01.646778: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp6p8lz_.tmpfXbFBf.pyomo.lp
-2014-05-28 18:07:01.672703: Solve completed - number of solutions=1
-2014-05-28 18:07:01.685431: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpK73JMm.tmpUP4T6O.pyomo.lp
-2014-05-28 18:07:01.708488: Solve completed - number of solutions=1
-2014-05-28 18:07:01.722185: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmppB8U_H.tmpchIymA.pyomo.lp
-2014-05-28 18:07:01.743060: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0248 First stage cost avg= 108575.3219 Max-Min= 918.57
-Cumulative run-time=1.28 seconds
-
-Initiating PH iteration=12
-2014-05-28 18:07:01.757123: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp2Es6Ah.tmpjnalG7.pyomo.lp
-2014-05-28 18:07:01.776003: Solve completed - number of solutions=1
-2014-05-28 18:07:01.789168: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpCa9PsY.tmpzNyOya.pyomo.lp
-2014-05-28 18:07:01.807865: Solve completed - number of solutions=1
-2014-05-28 18:07:01.820669: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpmLm_Hw.tmpFqWs2C.pyomo.lp
-2014-05-28 18:07:01.839385: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0163 First stage cost avg= 108513.5347 Max-Min= 591.25
-Cumulative run-time=1.37 seconds
-
-Initiating PH iteration=13
-2014-05-28 18:07:01.853230: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpDR5djY.tmpaIdLXy.pyomo.lp
-2014-05-28 18:07:01.872413: Solve completed - number of solutions=1
-2014-05-28 18:07:01.885679: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp1B8GUr.tmpnE0aD2.pyomo.lp
-2014-05-28 18:07:01.903742: Solve completed - number of solutions=1
-2014-05-28 18:07:01.917362: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpL5keDo.tmpyAQ3eu.pyomo.lp
-2014-05-28 18:07:01.936029: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0081 First stage cost avg= 108528.2899 Max-Min= 175.95
-Cumulative run-time=1.47 seconds
-
-Initiating PH iteration=14
-2014-05-28 18:07:01.948710: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpAnGNhF.tmp_v7Lzj.pyomo.lp
-2014-05-28 18:07:01.968391: Solve completed - number of solutions=1
-2014-05-28 18:07:01.981144: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp2cY49F.tmppblAdK.pyomo.lp
-2014-05-28 18:07:01.999006: Solve completed - number of solutions=1
-2014-05-28 18:07:02.012585: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpNwoamc.tmpuUdDBU.pyomo.lp
-2014-05-28 18:07:02.030766: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0168 First stage cost avg= 108561.6577 Max-Min= 274.77
-Cumulative run-time=1.56 seconds
-
-Initiating PH iteration=15
-2014-05-28 18:07:02.043499: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpBfCqTA.tmpDjthhV.pyomo.lp
-2014-05-28 18:07:02.062180: Solve completed - number of solutions=1
-2014-05-28 18:07:02.075019: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpnFazFs.tmpdnx9op.pyomo.lp
-2014-05-28 18:07:02.092770: Solve completed - number of solutions=1
-2014-05-28 18:07:02.105545: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpncjqek.tmpIuuF6L.pyomo.lp
-2014-05-28 18:07:02.126037: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0163 First stage cost avg= 108604.0579 Max-Min= 295.14
-Cumulative run-time=1.66 seconds
-
-Initiating PH iteration=16
-2014-05-28 18:07:02.139709: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp4FZ4wO.tmpdUSqje.pyomo.lp
-2014-05-28 18:07:02.163134: Solve completed - number of solutions=1
-2014-05-28 18:07:02.177627: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpgn8b3V.tmpG9vfhx.pyomo.lp
-2014-05-28 18:07:02.204353: Solve completed - number of solutions=1
-2014-05-28 18:07:02.218078: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp59H4WL.tmpLdfG88.pyomo.lp
-2014-05-28 18:07:02.240838: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0098 First stage cost avg= 108667.3583 Max-Min= 127.67
-Cumulative run-time=1.77 seconds
-
-Initiating PH iteration=17
-2014-05-28 18:07:02.256442: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpRG0BF8.tmpTgiAjO.pyomo.lp
-2014-05-28 18:07:02.281846: Solve completed - number of solutions=1
-2014-05-28 18:07:02.295744: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpvSwGaX.tmpG1h4zF.pyomo.lp
-2014-05-28 18:07:02.320372: Solve completed - number of solutions=1
-2014-05-28 18:07:02.333354: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpRBTbqX.tmpIifzlS.pyomo.lp
-2014-05-28 18:07:02.352620: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0032 First stage cost avg= 108758.4237 Max-Min= 59.69
-Cumulative run-time=1.88 seconds
-
-Initiating PH iteration=18
-2014-05-28 18:07:02.365414: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpnNul2R.tmpeVzen7.pyomo.lp
-2014-05-28 18:07:02.384567: Solve completed - number of solutions=1
-2014-05-28 18:07:02.397791: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpDXZLSq.tmpDXZh4q.pyomo.lp
-2014-05-28 18:07:02.417666: Solve completed - number of solutions=1
-2014-05-28 18:07:02.431889: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpPOiWqQ.tmpEK3QLC.pyomo.lp
-2014-05-28 18:07:02.450630: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0026 First stage cost avg= 108868.1277 Max-Min= 101.79
-Cumulative run-time=1.98 seconds
-
-Initiating PH iteration=19
-2014-05-28 18:07:02.481248: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpncOgRJ.tmpRJUvio.pyomo.lp
-2014-05-28 18:07:02.501073: Solve completed - number of solutions=1
-2014-05-28 18:07:02.513918: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp3dwNIw.tmp0eYgkb.pyomo.lp
-2014-05-28 18:07:02.532324: Solve completed - number of solutions=1
-2014-05-28 18:07:02.544999: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpfKNxMm.tmpf29IFC.pyomo.lp
-2014-05-28 18:07:02.563122: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0039 First stage cost avg= 108975.3089 Max-Min= 73.41
-Cumulative run-time=2.10 seconds
-
-Initiating PH iteration=20
-2014-05-28 18:07:02.576014: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpslRXDl.tmprCrIdu.pyomo.lp
-2014-05-28 18:07:02.596548: Solve completed - number of solutions=1
-2014-05-28 18:07:02.609900: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpvb_zHV.tmpfTjGDP.pyomo.lp
-2014-05-28 18:07:02.628851: Solve completed - number of solutions=1
-2014-05-28 18:07:02.642003: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpukBbbZ.tmpNFK3Vt.pyomo.lp
-2014-05-28 18:07:02.660986: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0043 First stage cost avg= 109057.4144 Max-Min= 39.47
-Cumulative run-time=2.19 seconds
-
-Initiating PH iteration=21
-2014-05-28 18:07:02.674329: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpQDQZ0H.tmpSURXk9.pyomo.lp
-2014-05-28 18:07:02.694571: Solve completed - number of solutions=1
-2014-05-28 18:07:02.707309: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpOPdOHO.tmpNt4YTp.pyomo.lp
-2014-05-28 18:07:02.727461: Solve completed - number of solutions=1
-2014-05-28 18:07:02.741076: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpwIdkRn.tmp9Xczzl.pyomo.lp
-2014-05-28 18:07:02.759828: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0044 First stage cost avg= 109099.7145 Max-Min= 87.57
-Cumulative run-time=2.29 seconds
-
-Initiating PH iteration=22
-2014-05-28 18:07:02.772447: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp3JRqq1.tmp_Xo98q.pyomo.lp
-2014-05-28 18:07:02.792609: Solve completed - number of solutions=1
-2014-05-28 18:07:02.805202: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpWecf5g.tmps6F62v.pyomo.lp
-2014-05-28 18:07:02.823507: Solve completed - number of solutions=1
-2014-05-28 18:07:02.836247: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpr6yanh.tmp_LX4Iq.pyomo.lp
-2014-05-28 18:07:02.858844: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0040 First stage cost avg= 109099.1239 Max-Min= 104.22
-Cumulative run-time=2.39 seconds
-
-Initiating PH iteration=23
-2014-05-28 18:07:02.873346: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp7ZzUZs.tmpODPF2L.pyomo.lp
-2014-05-28 18:07:02.897856: Solve completed - number of solutions=1
-2014-05-28 18:07:02.912595: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpUp2jBR.tmpMtGqqF.pyomo.lp
-2014-05-28 18:07:02.934257: Solve completed - number of solutions=1
-2014-05-28 18:07:02.947049: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpg84v8z.tmpVyx0q_.pyomo.lp
-2014-05-28 18:07:02.968964: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0032 First stage cost avg= 109062.8322 Max-Min= 88.54
-Cumulative run-time=2.50 seconds
-
-Initiating PH iteration=24
-2014-05-28 18:07:02.983582: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmph_fHaH.tmpBYh_Qv.pyomo.lp
-2014-05-28 18:07:03.004201: Solve completed - number of solutions=1
-2014-05-28 18:07:03.016753: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpDnNP7j.tmpbMz16m.pyomo.lp
-2014-05-28 18:07:03.034459: Solve completed - number of solutions=1
-2014-05-28 18:07:03.047862: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpSQ31yH.tmpRMIddP.pyomo.lp
-2014-05-28 18:07:03.066101: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0021 First stage cost avg= 109004.1156 Max-Min= 54.49
-Cumulative run-time=2.60 seconds
-
-Initiating PH iteration=25
-2014-05-28 18:07:03.078748: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp2J1riS.tmpGXIREf.pyomo.lp
-2014-05-28 18:07:03.098576: Solve completed - number of solutions=1
-2014-05-28 18:07:03.111497: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpwXdwsL.tmphaTzIG.pyomo.lp
-2014-05-28 18:07:03.129803: Solve completed - number of solutions=1
-2014-05-28 18:07:03.142695: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpSucYDr.tmpXTHPu1.pyomo.lp
-2014-05-28 18:07:03.160736: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0008 First stage cost avg= 108937.8039 Max-Min= 16.89
-Cumulative run-time=2.69 seconds
-
-Initiating PH iteration=26
-2014-05-28 18:07:03.173288: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpNPXDJQ.tmpfo8FJj.pyomo.lp
-2014-05-28 18:07:03.193074: Solve completed - number of solutions=1
-2014-05-28 18:07:03.205745: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpl15sWE.tmpPx481v.pyomo.lp
-2014-05-28 18:07:03.224094: Solve completed - number of solutions=1
-2014-05-28 18:07:03.237697: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpBUnVrc.tmpHIFMuT.pyomo.lp
-2014-05-28 18:07:03.256366: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0005 First stage cost avg= 108876.8822 Max-Min= 14.27
-Cumulative run-time=2.79 seconds
-
-Initiating PH iteration=27
-2014-05-28 18:07:03.269392: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpTWAQC5.tmpgxhJ_f.pyomo.lp
-2014-05-28 18:07:03.288755: Solve completed - number of solutions=1
-2014-05-28 18:07:03.302364: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp6NGkMR.tmpPzEpRL.pyomo.lp
-2014-05-28 18:07:03.322134: Solve completed - number of solutions=1
-2014-05-28 18:07:03.335444: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpx9vUqH.tmpkpt_6S.pyomo.lp
-2014-05-28 18:07:03.353552: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0015 First stage cost avg= 108830.6201 Max-Min= 34.81
-Cumulative run-time=2.89 seconds
-
-Initiating PH iteration=28
-2014-05-28 18:07:03.366102: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp5Tr321.tmpPpBlo5.pyomo.lp
-2014-05-28 18:07:03.386031: Solve completed - number of solutions=1
-2014-05-28 18:07:03.398688: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpMZkpZc.tmptGLjEM.pyomo.lp
-2014-05-28 18:07:03.416752: Solve completed - number of solutions=1
-2014-05-28 18:07:03.429409: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpX2vj6U.tmpGPbp2b.pyomo.lp
-2014-05-28 18:07:03.446994: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0021 First stage cost avg= 108803.9655 Max-Min= 44.57
-Cumulative run-time=2.98 seconds
-
-Initiating PH iteration=29
-2014-05-28 18:07:03.459541: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpV7Z0Nn.tmpJRd1og.pyomo.lp
-2014-05-28 18:07:03.479550: Solve completed - number of solutions=1
-2014-05-28 18:07:03.492363: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpF_oZb1.tmpZfjRl3.pyomo.lp
-2014-05-28 18:07:03.510481: Solve completed - number of solutions=1
-2014-05-28 18:07:03.523213: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpq5lSKS.tmpXf3wHK.pyomo.lp
-2014-05-28 18:07:03.542404: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0023 First stage cost avg= 108797.7661 Max-Min= 45.24
-Cumulative run-time=3.08 seconds
-
-Initiating PH iteration=30
-2014-05-28 18:07:03.555608: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp3UdJBQ.tmpGX3Y2M.pyomo.lp
-2014-05-28 18:07:03.573576: Solve completed - number of solutions=1
-2014-05-28 18:07:03.586445: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpMhDAec.tmpBMcKVP.pyomo.lp
-2014-05-28 18:07:03.604994: Solve completed - number of solutions=1
-2014-05-28 18:07:03.618386: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpSkWGbg.tmp3KsSR3.pyomo.lp
-2014-05-28 18:07:03.636779: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0020 First stage cost avg= 108809.4793 Max-Min= 39.01
-Cumulative run-time=3.17 seconds
-
-Initiating PH iteration=31
-2014-05-28 18:07:03.650375: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmplULTYo.tmpEJz4V2.pyomo.lp
-2014-05-28 18:07:03.670448: Solve completed - number of solutions=1
-2014-05-28 18:07:03.683227: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpXZvH_X.tmpOR21oA.pyomo.lp
-2014-05-28 18:07:03.704661: Solve completed - number of solutions=1
-2014-05-28 18:07:03.717902: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpuRIXoi.tmpzOrLQM.pyomo.lp
-2014-05-28 18:07:03.741047: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0015 First stage cost avg= 108834.1639 Max-Min= 28.07
-Cumulative run-time=3.28 seconds
-
-Initiating PH iteration=32
-2014-05-28 18:07:03.756476: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpldfLSS.tmpY26ICV.pyomo.lp
-2014-05-28 18:07:03.774316: Solve completed - number of solutions=1
-2014-05-28 18:07:03.788524: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpPjWesS.tmpONudhH.pyomo.lp
-2014-05-28 18:07:03.808603: Solve completed - number of solutions=1
-2014-05-28 18:07:03.822854: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpeaUNCx.tmpRBpg5c.pyomo.lp
-2014-05-28 18:07:03.846492: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0008 First stage cost avg= 108865.6237 Max-Min= 14.67
-Cumulative run-time=3.38 seconds
-
-Initiating PH iteration=33
-2014-05-28 18:07:03.862715: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmprrp1gg.tmpAN_zwh.pyomo.lp
-2014-05-28 18:07:03.886804: Solve completed - number of solutions=1
-2014-05-28 18:07:03.901202: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpSMmOH9.tmp9eeFxQ.pyomo.lp
-2014-05-28 18:07:03.923575: Solve completed - number of solutions=1
-2014-05-28 18:07:03.936737: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp_L0yRm.tmp2Sbz03.pyomo.lp
-2014-05-28 18:07:03.959441: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0001 First stage cost avg= 108897.5679 Max-Min= 1.06
-Cumulative run-time=3.49 seconds
-PH converged - convergence metric is below threshold=0.0001
-Number of discrete variables fixed before final plugin calls=0 (total=0)
-Number of continuous variables fixed before final plugin calls=0 (total=3)
-PH algorithm history written to file=ph_history.json
-PH complete
-Convergence history:
-Iteration Metric Value
- 0 0.2540
- 1 0.1259
- 2 0.0816
- 3 0.0796
- 4 0.0776
- 5 0.0794
- 6 0.0668
- 7 0.0542
- 8 0.0360
- 9 0.0243
- 10 0.0256
- 11 0.0248
- 12 0.0163
- 13 0.0081
- 14 0.0168
- 15 0.0163
- 16 0.0098
- 17 0.0032
- 18 0.0026
- 19 0.0039
- 20 0.0043
- 21 0.0044
- 22 0.0040
- 23 0.0032
- 24 0.0021
- 25 0.0008
- 26 0.0005
- 27 0.0015
- 28 0.0021
- 29 0.0023
- 30 0.0020
- 31 0.0015
- 32 0.0008
- 33 0.0001
-
-***********************************************************************************************
->>>THE EXPECTED SUM OF THE STAGE COST VARIABLES=-108388.378639<<<
->>>***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise<<<
-***********************************************************************************************
-Final number of discrete variables fixed=0 (total=0)
-Final number of continuous variables fixed=0 (total=3)
-Final variable values:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 79.9844 80.0000 79.9768 Max-Min: 0.0232 Avg: 79.9871
- Index: [SUGAR_BEETS] Values: 249.9848 249.9770 250.0000 Max-Min: 0.0230 Avg: 249.9873
- Index: [WHEAT] Values: 170.0308 170.0230 170.0232 Max-Min: 0.0078 Avg: 170.0256
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108897.0836 108897.4725 108898.1476 Max-Min: 1.0640 Avg: 108897.5679
-Final costs:
-Scenario Tree Costs
-***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise
-----------------------------------------------------
-Tree Nodes:
-
- Name=AboveAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AboveAverageScenario
- Expected cost of (sub)tree rooted at node=-275899.3041
-
- Name=AverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AverageScenario
- Expected cost of (sub)tree rooted at node=-218243.2209
-
- Name=BelowAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-157713.8615
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- AboveAverageNode
- AverageNode
- BelowAverageNode
- Scenarios:
- AboveAverageScenario
- AverageScenario
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-108388.3786
-
-----------------------------------------------------
-Scenarios:
-
- Name=AboveAverageScenario
- Probability=0.3333
- Leaf Node=AboveAverageNode
- Tree node sequence:
- RootNode
- AboveAverageNode
- Stage= FirstStage Cost=108898.1476
- Stage= SecondStage Cost=-275899.3041
- Total scenario cost=-167001.1565
-
- Name=AverageScenario
- Probability=0.3333
- Leaf Node=AverageNode
- Tree node sequence:
- RootNode
- AverageNode
- Stage= FirstStage Cost=108897.4725
- Stage= SecondStage Cost=-218243.2209
- Total scenario cost=-109345.7484
-
- Name=BelowAverageScenario
- Probability=0.3333
- Leaf Node=BelowAverageNode
- Tree node sequence:
- RootNode
- BelowAverageNode
- Stage= FirstStage Cost=108897.0836
- Stage= SecondStage Cost=-157713.8615
- Total scenario cost=-48816.7780
-
-----------------------------------------------------
-
-Total PH execution time=3.50 seconds
-
-Scenario tree solution written to file=ph_solution.json
-Shutting down Pyro solver components
-Dispatcher received request to shut down - initiating...
-
-Total execution time=6.88 seconds
-Name Server gracefully stopped.
-Lost connection to dispatch server - shutting down...
diff --git a/pyomo/pysp/tests/examples/baselines/TestPHFarmerTrivialBundlesPyro.test6.baseline b/pyomo/pysp/tests/examples/baselines/TestPHFarmerTrivialBundlesPyro.test6.baseline
deleted file mode 100644
index 675b7bb4e48..00000000000
--- a/pyomo/pysp/tests/examples/baselines/TestPHFarmerTrivialBundlesPyro.test6.baseline
+++ /dev/null
@@ -1,258 +0,0 @@
-*** Pyro Name Server ***
-Name server listening on: ('0.0.0.0', 9090)
-Broadcast server listening on: ('0.0.0.0', 9090)
-URI is: PYRO://10.0.0.15:9090/0a00000f357e20a08d377181be52372e41
-URI written to: /Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/pyomo/pysp/tests/examples/Pyro_NS_URI
-Name Server started.
-User-defined PH extension module=pyomo.pysp.plugins.phhistoryextension already imported - skipping
-Dispatcher is ready.
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI:PYRO://10.0.0.15:7766/0a00000f357f20a08d3893218796805274
-This is worker Worker_13696@Ozymandias.local
-Listening for work from dispatcher...
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI: PYRO://10.0.0.15:7766/0a00000f357f20a08d3893218796805274
-This is client 13697@Ozymandias.local
-Initializing PH
-
-WW PH Extension: Loading user-specified configuration from file=/Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/examples/pysp/farmer/config/wwph.cfg
-WW PH Extension: Loading variable suffixes from file=/Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/examples/pysp/farmer/config/wwph.suffixes
-User-defined PH solution writer module=pyomo.pysp.plugins.jsonsolutionwriter already imported - skipping
-Starting PH
-
-Initiating PH iteration=0
-2014-05-28 18:07:11.659143: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmptae7Af.tmp8HZ1DA.pyomo.lp
-2014-05-28 18:07:11.677377: Solve completed - number of solutions=1
-2014-05-28 18:07:11.690526: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpzgtaaD.tmpmxDUta.pyomo.lp
-2014-05-28 18:07:11.707200: Solve completed - number of solutions=1
-2014-05-28 18:07:11.720785: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpvBKkWN.tmp0Ic7cq.pyomo.lp
-2014-05-28 18:07:11.737744: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.2540 First stage cost avg= 113494.4444 Max-Min=10416.67
-Cumulative run-time=0.17 seconds
-
-Initiating PH iteration=1
-WW PH Extension: Setting mipgap to 0.1000000, as specified in the configuration file
-2014-05-28 18:07:11.750839: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp5bHsAr.tmpGI_rHz.pyomo.lp
-2014-05-28 18:07:11.770141: Solve completed - number of solutions=1
-2014-05-28 18:07:11.786069: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmph2AePO.tmphfAio6.pyomo.lp
-2014-05-28 18:07:11.805060: Solve completed - number of solutions=1
-2014-05-28 18:07:11.817955: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpvWc1Sc.tmpGrl5Eo.pyomo.lp
-2014-05-28 18:07:11.836216: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.1259 First stage cost avg= 113107.2221 Max-Min= 6943.89
-Cumulative run-time=0.26 seconds
-
-Initiating PH iteration=2
-WW PH Extension: Setting mipgap to 0.0500717, based on current value of the convergence metric
-2014-05-28 18:07:11.849184: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpKgHb3m.tmpPWJCxi.pyomo.lp
-2014-05-28 18:07:11.869021: Solve completed - number of solutions=1
-2014-05-28 18:07:11.882273: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpfh5hh8.tmpRlOuBL.pyomo.lp
-2014-05-28 18:07:11.900543: Solve completed - number of solutions=1
-2014-05-28 18:07:11.913350: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpBa2mTg.tmpyGdIwj.pyomo.lp
-2014-05-28 18:07:11.932147: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0816 First stage cost avg= 112954.6296 Max-Min= 2234.82
-Cumulative run-time=0.36 seconds
-
-Initiating PH iteration=3
-WW PH Extension: Setting mipgap to 0.0327607, based on current value of the convergence metric
-2014-05-28 18:07:11.945814: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp1kUF1N.tmplkY4Jx.pyomo.lp
-2014-05-28 18:07:11.964569: Solve completed - number of solutions=1
-2014-05-28 18:07:11.977289: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpGr5zmB.tmpeN8ss_.pyomo.lp
-2014-05-28 18:07:11.997387: Solve completed - number of solutions=1
-2014-05-28 18:07:12.010167: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpq9c41U.tmpKJkVII.pyomo.lp
-2014-05-28 18:07:12.029092: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0796 First stage cost avg= 112963.0248 Max-Min= 2375.31
-Cumulative run-time=0.46 seconds
-
-Initiating PH iteration=4
-WW PH Extension: Setting mipgap to 0.0319973, based on current value of the convergence metric
-2014-05-28 18:07:12.041859: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpk4ujV_.tmpxYqvyD.pyomo.lp
-2014-05-28 18:07:12.061263: Solve completed - number of solutions=1
-2014-05-28 18:07:12.073940: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpXBVUTa.tmpLh34JR.pyomo.lp
-2014-05-28 18:07:12.091527: Solve completed - number of solutions=1
-2014-05-28 18:07:12.104560: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpSNbBvn.tmpxh8smE.pyomo.lp
-2014-05-28 18:07:12.121713: Solve completed - number of solutions=1
-Slamming criteria are satisifed - accelerating convergence
-Slamming variable=DevotedAcreage[CORN] at tree node=RootNode to value=96.8871743104; value=node average (anywhere)
-Fixing variable=DevotedAcreage[CORN] at tree node=RootNode to value=96.8871743104; converged for 0 iterations
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0776 First stage cost avg= 112915.6071 Max-Min= 3047.08
-Cumulative run-time=0.55 seconds
-
-Initiating PH iteration=5
-WW PH Extension: Setting mipgap to 0.0312342, based on current value of the convergence metric
-2014-05-28 18:07:12.135317: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpvTRs7_.tmpjtI001.pyomo.lp
-2014-05-28 18:07:12.153511: Solve completed - number of solutions=1
-2014-05-28 18:07:12.167037: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpMhYf57.tmpTqHEPr.pyomo.lp
-2014-05-28 18:07:12.186430: Solve completed - number of solutions=1
-2014-05-28 18:07:12.199746: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpee8dmA.tmpIAXioO.pyomo.lp
-2014-05-28 18:07:12.219454: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=1 (total=3)
-Convergence metric= 0.0609 First stage cost avg= 112895.6887 Max-Min= 5246.95
-Cumulative run-time=0.65 seconds
-
-Initiating PH iteration=6
-WW PH Extension: Setting mipgap to 0.0247045, based on current value of the convergence metric
-2014-05-28 18:07:12.232451: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpDDDO0s.tmp0GvZ3y.pyomo.lp
-2014-05-28 18:07:12.250588: Solve completed - number of solutions=1
-2014-05-28 18:07:12.263128: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpuYNYZI.tmpjW4SBt.pyomo.lp
-2014-05-28 18:07:12.286348: Solve completed - number of solutions=1
-2014-05-28 18:07:12.300330: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpGdh7ZC.tmpQZpJcS.pyomo.lp
-2014-05-28 18:07:12.319107: Solve completed - number of solutions=1
-Slamming criteria are satisifed - accelerating convergence
-Slamming variable=DevotedAcreage[WHEAT] at tree node=RootNode to value=137.204959966; value=node average (anywhere)
-Fixing variable=DevotedAcreage[WHEAT] at tree node=RootNode to value=137.204959966; converged for 0 iterations
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=1 (total=3)
-Convergence metric= 0.0391 First stage cost avg= 112000.8391 Max-Min= 2624.80
-Cumulative run-time=0.75 seconds
-
-Initiating PH iteration=7
-WW PH Extension: Setting mipgap to 0.0161915, based on current value of the convergence metric
-2014-05-28 18:07:12.334386: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp0Wk37q.tmpUigXr3.pyomo.lp
-2014-05-28 18:07:12.352888: Solve completed - number of solutions=1
-2014-05-28 18:07:12.366292: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpmY0zCz.tmp5hTorV.pyomo.lp
-2014-05-28 18:07:12.384436: Solve completed - number of solutions=1
-2014-05-28 18:07:12.396971: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpMp9E0M.tmpeOQ0ln.pyomo.lp
-2014-05-28 18:07:12.414673: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=2 (total=3)
-Convergence metric= 0.0000 First stage cost avg= 112000.8392 Max-Min= 0.00
-Cumulative run-time=0.84 seconds
-PH converged - convergence metric is below threshold=0.0001
-Number of discrete variables fixed before final plugin calls=0 (total=0)
-Number of continuous variables fixed before final plugin calls=2 (total=3)
-WW PH extension: Fixing all discrete variables that are converged at termination
-Total number of variables fixed at PH termination due to convergence=0
-PH algorithm history written to file=ph_history.json
-PH complete
-Convergence history:
-Iteration Metric Value
- 0 0.2540
- 1 0.1259
- 2 0.0816
- 3 0.0796
- 4 0.0776
- 5 0.0609
- 6 0.0391
- 7 0.0000
-
-***********************************************************************************************
->>>THE EXPECTED SUM OF THE STAGE COST VARIABLES=-107905.908751<<<
->>>***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise<<<
-***********************************************************************************************
-Final number of discrete variables fixed=0 (total=0)
-Final number of continuous variables fixed=2 (total=3)
-Final variable values:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 96.8872 96.8872 96.8872 Max-Min: 0.0000 Avg: 96.8872
- Index: [SUGAR_BEETS] Values: 265.9079 265.9079 265.9079 Max-Min: 0.0000 Avg: 265.9079
- Index: [WHEAT] Values: 137.2050 137.2050 137.2050 Max-Min: 0.0000 Avg: 137.2050
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 112000.8392 112000.8392 112000.8391 Max-Min: 0.0000 Avg: 112000.8392
-Final costs:
-Scenario Tree Costs
-***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise
-----------------------------------------------------
-Tree Nodes:
-
- Name=AboveAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AboveAverageScenario
- Expected cost of (sub)tree rooted at node=-272111.4913
-
- Name=AverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AverageScenario
- Expected cost of (sub)tree rooted at node=-223364.9995
-
- Name=BelowAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-164243.7528
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- AboveAverageNode
- AverageNode
- BelowAverageNode
- Scenarios:
- AboveAverageScenario
- AverageScenario
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-107905.9088
-
-----------------------------------------------------
-Scenarios:
-
- Name=AboveAverageScenario
- Probability=0.3333
- Leaf Node=AboveAverageNode
- Tree node sequence:
- RootNode
- AboveAverageNode
- Stage= FirstStage Cost=112000.8391
- Stage= SecondStage Cost=-272111.4913
- Total scenario cost=-160110.6522
-
- Name=AverageScenario
- Probability=0.3333
- Leaf Node=AverageNode
- Tree node sequence:
- RootNode
- AverageNode
- Stage= FirstStage Cost=112000.8392
- Stage= SecondStage Cost=-223364.9995
- Total scenario cost=-111364.1604
-
- Name=BelowAverageScenario
- Probability=0.3333
- Leaf Node=BelowAverageNode
- Tree node sequence:
- RootNode
- BelowAverageNode
- Stage= FirstStage Cost=112000.8392
- Stage= SecondStage Cost=-164243.7528
- Total scenario cost=-52242.9136
-
-----------------------------------------------------
-
-Total PH execution time=0.85 seconds
-
-Scenario tree solution written to file=ph_solution.json
-Shutting down Pyro solver components
-Dispatcher received request to shut down - initiating...
-
-Total execution time=3.90 seconds
-Name Server gracefully stopped.
-Lost connection to dispatch server - shutting down...
diff --git a/pyomo/pysp/tests/examples/baselines/TestPHFarmerTrivialBundlesPyro.test6_withef.baseline b/pyomo/pysp/tests/examples/baselines/TestPHFarmerTrivialBundlesPyro.test6_withef.baseline
deleted file mode 100644
index ec33acc4548..00000000000
--- a/pyomo/pysp/tests/examples/baselines/TestPHFarmerTrivialBundlesPyro.test6_withef.baseline
+++ /dev/null
@@ -1,404 +0,0 @@
-*** Pyro Name Server ***
-Name server listening on: ('0.0.0.0', 9090)
-Broadcast server listening on: ('0.0.0.0', 9090)
-URI is: PYRO://10.0.0.253:9090/0a0000fd271020b9bffea29c8390e7b320
-URI written to: /Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/pyomo/pysp/tests/examples/Pyro_NS_URI
-Name Server started.
-User-defined PH extension module=pyomo.pysp.plugins.phhistoryextension already imported - skipping
-Dispatcher is ready.
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI:PYRO://10.0.0.253:7766/0a0000fd271120b9bfffc48f28a2ef9e42
-This is worker Worker_10002@Ozymandias.local
-Listening for work from dispatcher...
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI: PYRO://10.0.0.253:7766/0a0000fd271120b9bfffc48f28a2ef9e42
-This is client 10003@Ozymandias.local
-Initializing PH
-
-WW PH Extension: Loading user-specified configuration from file=/Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/examples/pysp/farmer/config/wwph.cfg
-WW PH Extension: Loading variable suffixes from file=/Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/examples/pysp/farmer/config/wwph.suffixes
-User-defined PH solution writer module=pyomo.pysp.plugins.jsonsolutionwriter already imported - skipping
-Starting PH
-
-Initiating PH iteration=0
-2014-07-16 16:26:53.607713: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpyxohMb.tmpnTPbM6.pyomo.lp
-2014-07-16 16:26:53.619902: Solve completed - number of solutions=1
-2014-07-16 16:26:53.632372: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpUselLc.tmp1gxuIr.pyomo.lp
-2014-07-16 16:26:53.643822: Solve completed - number of solutions=1
-2014-07-16 16:26:53.656713: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp16dauF.tmpiunAMt.pyomo.lp
-2014-07-16 16:26:53.668725: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.2540 First stage cost avg= 113494.4444 Max-Min=10416.67
-Cumulative run-time=0.14 seconds
-
-Initiating PH iteration=1
-WW PH Extension: Setting mipgap to 0.1000000, as specified in the configuration file
-2014-07-16 16:26:53.681323: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp2qax8U.tmpdAzPpN.pyomo.lp
-2014-07-16 16:26:53.697478: Solve completed - number of solutions=1
-2014-07-16 16:26:53.710574: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmppU0Gnp.tmpIJMk77.pyomo.lp
-2014-07-16 16:26:53.724795: Solve completed - number of solutions=1
-2014-07-16 16:26:53.737349: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp0jwU1Q.tmpJ8OUCh.pyomo.lp
-2014-07-16 16:26:53.751325: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.1259 First stage cost avg= 113107.2221 Max-Min= 6943.89
-Cumulative run-time=0.22 seconds
-
-Initiating PH iteration=2
-WW PH Extension: Setting mipgap to 0.0500717, based on current value of the convergence metric
-2014-07-16 16:26:53.764088: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpOB6YQA.tmpF1JEH0.pyomo.lp
-2014-07-16 16:26:53.779580: Solve completed - number of solutions=1
-2014-07-16 16:26:53.792690: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmphdyDW2.tmpEeYoUz.pyomo.lp
-2014-07-16 16:26:53.806862: Solve completed - number of solutions=1
-2014-07-16 16:26:53.819346: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp3vX5nZ.tmpomxtj9.pyomo.lp
-2014-07-16 16:26:53.833226: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0816 First stage cost avg= 112954.6296 Max-Min= 2234.82
-Cumulative run-time=0.31 seconds
-
-Initiating PH iteration=3
-WW PH Extension: Setting mipgap to 0.0327607, based on current value of the convergence metric
-2014-07-16 16:26:53.846172: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp4Rpzrx.tmpBoMEVg.pyomo.lp
-2014-07-16 16:26:53.861408: Solve completed - number of solutions=1
-2014-07-16 16:26:53.873853: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpDWhDvl.tmpDLesmE.pyomo.lp
-2014-07-16 16:26:53.887888: Solve completed - number of solutions=1
-2014-07-16 16:26:53.900809: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpcocin8.tmpFbB3pr.pyomo.lp
-2014-07-16 16:26:53.914727: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0796 First stage cost avg= 112963.0248 Max-Min= 2375.31
-Cumulative run-time=0.39 seconds
-
-Initiating PH iteration=4
-WW PH Extension: Setting mipgap to 0.0319973, based on current value of the convergence metric
-2014-07-16 16:26:53.928211: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpEthwkG.tmpcGFmF4.pyomo.lp
-2014-07-16 16:26:53.942564: Solve completed - number of solutions=1
-2014-07-16 16:26:53.955042: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmphV714g.tmp4HeAi3.pyomo.lp
-2014-07-16 16:26:53.969027: Solve completed - number of solutions=1
-2014-07-16 16:26:53.981878: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpCei9gh.tmpsaw5pj.pyomo.lp
-2014-07-16 16:26:53.996304: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Slamming criteria are satisifed - accelerating convergence
-Slamming variable=DevotedAcreage[CORN] at tree node=RootNode to value=96.8871743104; value=node average (anywhere)
-Fixing variable=DevotedAcreage[CORN] at tree node=RootNode to value=96.8871743104; converged for 0 iterations
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0776 First stage cost avg= 112915.6071 Max-Min= 3047.08
-Cumulative run-time=0.47 seconds
-
-Initiating PH iteration=5
-WW PH Extension: Setting mipgap to 0.0312342, based on current value of the convergence metric
-2014-07-16 16:26:54.009279: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpNHVGfs.tmpNxTefp.pyomo.lp
-2014-07-16 16:26:54.024202: Solve completed - number of solutions=1
-2014-07-16 16:26:54.037592: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpMj2ruR.tmpuwrhqG.pyomo.lp
-2014-07-16 16:26:54.051571: Solve completed - number of solutions=1
-2014-07-16 16:26:54.064285: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpM1T6T2.tmpP57Wpk.pyomo.lp
-2014-07-16 16:26:54.079207: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=1 (total=3)
-Convergence metric= 0.0609 First stage cost avg= 112895.6887 Max-Min= 5246.95
-Cumulative run-time=0.55 seconds
-
-Initiating PH iteration=6
-WW PH Extension: Setting mipgap to 0.0247045, based on current value of the convergence metric
-2014-07-16 16:26:54.092051: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpDPLg0m.tmpZzA_En.pyomo.lp
-2014-07-16 16:26:54.106826: Solve completed - number of solutions=1
-2014-07-16 16:26:54.119357: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpR2LAiX.tmp_E2yif.pyomo.lp
-2014-07-16 16:26:54.133040: Solve completed - number of solutions=1
-2014-07-16 16:26:54.145597: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpekh3Fb.tmplfGPSY.pyomo.lp
-2014-07-16 16:26:54.160289: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Slamming criteria are satisifed - accelerating convergence
-Slamming variable=DevotedAcreage[WHEAT] at tree node=RootNode to value=137.204959966; value=node average (anywhere)
-Fixing variable=DevotedAcreage[WHEAT] at tree node=RootNode to value=137.204959966; converged for 0 iterations
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=1 (total=3)
-Convergence metric= 0.0391 First stage cost avg= 112000.8391 Max-Min= 2624.80
-Cumulative run-time=0.63 seconds
-
-Initiating PH iteration=7
-WW PH Extension: Setting mipgap to 0.0161915, based on current value of the convergence metric
-2014-07-16 16:26:54.172850: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpL4P3FL.tmps0ySOA.pyomo.lp
-2014-07-16 16:26:54.187370: Solve completed - number of solutions=1
-2014-07-16 16:26:54.200947: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpCHSwvZ.tmptlHQLb.pyomo.lp
-2014-07-16 16:26:54.216942: Solve completed - number of solutions=1
-2014-07-16 16:26:54.229631: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpScMKpb.tmpZSOnTr.pyomo.lp
-2014-07-16 16:26:54.243684: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=2 (total=3)
-Convergence metric= 0.0000 First stage cost avg= 112000.8392 Max-Min= 0.00
-Cumulative run-time=0.72 seconds
-PH converged - convergence metric is below threshold=0.0001
-Number of discrete variables fixed before final plugin calls=0 (total=0)
-Number of continuous variables fixed before final plugin calls=2 (total=3)
-WW PH extension: Fixing all discrete variables that are converged at termination
-Total number of variables fixed at PH termination due to convergence=0
-PH algorithm history written to file=ph_history.json
-PH complete
-Convergence history:
-Iteration Metric Value
- 0 0.2540
- 1 0.1259
- 2 0.0816
- 3 0.0796
- 4 0.0776
- 5 0.0609
- 6 0.0391
- 7 0.0000
-
-***********************************************************************************************
->>>THE EXPECTED SUM OF THE STAGE COST VARIABLES=-107905.908751<<<
->>>***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise<<<
-***********************************************************************************************
-Final number of discrete variables fixed=0 (total=0)
-Final number of continuous variables fixed=2 (total=3)
-Final variable values:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 96.8872 96.8872 96.8872 Max-Min: 0.0000 Avg: 96.8872
- Index: [SUGAR_BEETS] Values: 265.9079 265.9079 265.9079 Max-Min: 0.0000 Avg: 265.9079
- Index: [WHEAT] Values: 137.2050 137.2050 137.2050 Max-Min: 0.0000 Avg: 137.2050
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 112000.8392 112000.8392 112000.8391 Max-Min: 0.0000 Avg: 112000.8392
-Final costs:
-Scenario Tree Costs
-***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise
-----------------------------------------------------
-Tree Nodes:
-
- Name=AboveAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AboveAverageScenario
- Expected cost of (sub)tree rooted at node=-272111.4913
-
- Name=AverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AverageScenario
- Expected cost of (sub)tree rooted at node=-223364.9995
-
- Name=BelowAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-164243.7528
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- AboveAverageNode
- AverageNode
- BelowAverageNode
- Scenarios:
- AboveAverageScenario
- AverageScenario
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-107905.9088
-
-----------------------------------------------------
-Scenarios:
-
- Name=AboveAverageScenario
- Probability=0.3333
- Leaf Node=AboveAverageNode
- Tree node sequence:
- RootNode
- AboveAverageNode
- Stage= FirstStage Cost=112000.8391
- Stage= SecondStage Cost=-272111.4913
- Total scenario cost=-160110.6522
-
- Name=AverageScenario
- Probability=0.3333
- Leaf Node=AverageNode
- Tree node sequence:
- RootNode
- AverageNode
- Stage= FirstStage Cost=112000.8392
- Stage= SecondStage Cost=-223364.9995
- Total scenario cost=-111364.1604
-
- Name=BelowAverageScenario
- Probability=0.3333
- Leaf Node=BelowAverageNode
- Tree node sequence:
- RootNode
- BelowAverageNode
- Stage= FirstStage Cost=112000.8392
- Stage= SecondStage Cost=-164243.7528
- Total scenario cost=-52242.9136
-
-----------------------------------------------------
-
-Total PH execution time=0.72 seconds
-
-Scenario tree solution written to file=ph_solution.json
-Pushing fixed variable statuses to scenario instances
-Number of discrete variables fixed prior to ef creation=0 (total=0)
-Number of continuous variables fixed prior to ef creation=2 (total=3)
-Creating extensive form for remainder problem
-Time to construct extensive form instance=0.00 seconds
-Queuing extensive form solve
-Waiting for extensive form solve
-Done with extensive form solve - loading results
-Storing solution in scenario tree
-Time to solve and load results for the extensive form=0.02 seconds
-
-***********************************************************************************************
->>>THE EXPECTED SUM OF THE STAGE COST VARIABLES=-107905.908903<<<
-***********************************************************************************************
-
-Extensive form solution:
-----------------------------------------------------
-Tree Nodes:
-
- Name=AboveAverageNode
- Stage=SecondStage
- Parent=RootNode
- Variables:
- QuantitySubQuotaSold[CORN]=108.793827517
- QuantitySubQuotaSold[SUGAR_BEETS]=6000.0
- QuantitySubQuotaSold[WHEAT]=211.614879899
- QuantitySuperQuotaSold[SUGAR_BEETS]=381.788777359
-
- Name=AverageNode
- Stage=SecondStage
- Parent=RootNode
- Variables:
- QuantitySubQuotaSold[CORN]=50.6615229312
- QuantitySubQuotaSold[SUGAR_BEETS]=5318.15731447
- QuantitySubQuotaSold[WHEAT]=143.012399916
-
- Name=BelowAverageNode
- Stage=SecondStage
- Parent=RootNode
- Variables:
- QuantityPurchased[CORN]=7.47078165504
- QuantitySubQuotaSold[SUGAR_BEETS]=4254.52585157
- QuantitySubQuotaSold[WHEAT]=74.4099199326
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Variables:
- DevotedAcreage[CORN]=96.8871743104
- DevotedAcreage[SUGAR_BEETS]=265.907865723
- DevotedAcreage[WHEAT]=137.204959966
-
-
-Extensive form costs:
-Scenario Tree Costs
-***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise
-----------------------------------------------------
-Tree Nodes:
-
- Name=AboveAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AboveAverageScenario
- Expected cost of (sub)tree rooted at node=-272111.4915
-
- Name=AverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AverageScenario
- Expected cost of (sub)tree rooted at node=-223364.9997
-
- Name=BelowAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-164243.7529
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- AboveAverageNode
- AverageNode
- BelowAverageNode
- Scenarios:
- AboveAverageScenario
- AverageScenario
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-107905.9089
-
-----------------------------------------------------
-Scenarios:
-
- Name=AboveAverageScenario
- Probability=0.3333
- Leaf Node=AboveAverageNode
- Tree node sequence:
- RootNode
- AboveAverageNode
- Stage= FirstStage Cost=112000.8392
- Stage= SecondStage Cost=-272111.4915
- Total scenario cost=-160110.6523
-
- Name=AverageScenario
- Probability=0.3333
- Leaf Node=AverageNode
- Tree node sequence:
- RootNode
- AverageNode
- Stage= FirstStage Cost=112000.8392
- Stage= SecondStage Cost=-223364.9997
- Total scenario cost=-111364.1606
-
- Name=BelowAverageScenario
- Probability=0.3333
- Leaf Node=BelowAverageNode
- Tree node sequence:
- RootNode
- BelowAverageNode
- Stage= FirstStage Cost=112000.8392
- Stage= SecondStage Cost=-164243.7529
- Total scenario cost=-52242.9137
-
-----------------------------------------------------
-Scenario tree solution written to file=postphef_solution.json
-Shutting down Pyro solver components
-Dispatcher received request to shut down - initiating...
-
-Total execution time=3.80 seconds
-Name Server gracefully stopped.
-Lost connection to dispatch server - shutting down...
diff --git a/pyomo/pysp/tests/examples/baselines/TestPHFarmerTrivialBundlesPyro.test7.baseline b/pyomo/pysp/tests/examples/baselines/TestPHFarmerTrivialBundlesPyro.test7.baseline
deleted file mode 100644
index 48ff5a9bbb2..00000000000
--- a/pyomo/pysp/tests/examples/baselines/TestPHFarmerTrivialBundlesPyro.test7.baseline
+++ /dev/null
@@ -1,863 +0,0 @@
-*** Pyro Name Server ***
-Name server listening on: ('0.0.0.0', 9090)
-Broadcast server listening on: ('0.0.0.0', 9090)
-URI is: PYRO://10.0.0.11:9090/0a00000b1216020a8355a7dbe5ddfbbdd1f
-URI written to: /Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/pyomo/pysp/tests/examples/Pyro_NS_URI
-Name Server started.
-User-defined PH extension module=pyomo.pysp.plugins.phhistoryextension already imported - skipping
-User-defined PH extension module=pyomo.pysp.plugins.phboundextension already imported - skipping
-Dispatcher is ready.
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI:PYRO://10.0.0.11:7766/0a00000b1216120a8355b9f3bfa9964c72b
-This is worker Worker_74082@Ozymandias.local
-Listening for work from dispatcher...
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI: PYRO://10.0.0.11:7766/0a00000b1216120a8355b9f3bfa9964c72b
-This is client 74083@Ozymandias.local
-Initializing PH
-
-phboundextension using default update interval=1
-User-defined PH solution writer module=pyomo.pysp.plugins.jsonsolutionwriter already imported - skipping
-Starting PH
-
-Initiating PH iteration=0
-2014-06-12 14:57:06.989821: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpE_5_cg.tmpRsJ2LI.pyomo.lp
-2014-06-12 14:57:07.008037: Solve completed - number of solutions=1
-2014-06-12 14:57:07.021799: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpos41lF.tmp4S6jUf.pyomo.lp
-2014-06-12 14:57:07.038543: Solve completed - number of solutions=1
-2014-06-12 14:57:07.052277: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpo4gcOA.tmpbzonT8.pyomo.lp
-2014-06-12 14:57:07.069118: Solve completed - number of solutions=1
-Computed objective lower bound=-115405.5556
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.2540 First stage cost avg= 113494.4444 Max-Min=10416.67
-Cumulative run-time=0.16 seconds
-
-Initiating PH iteration=1
-2014-06-12 14:57:07.082010: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp6PFDFO.tmpHjsPKs.pyomo.lp
-2014-06-12 14:57:07.099291: Solve completed - number of solutions=1
-2014-06-12 14:57:07.114128: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpuQmPeh.tmplbjakK.pyomo.lp
-2014-06-12 14:57:07.131570: Solve completed - number of solutions=1
-2014-06-12 14:57:07.146332: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp6HvO0N.tmpGvelfc.pyomo.lp
-2014-06-12 14:57:07.163853: Solve completed - number of solutions=1
-Computed objective lower bound=-112378.3951
-2014-06-12 14:57:07.177508: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp6wvcnN.tmpRIE08W.pyomo.lp
-2014-06-12 14:57:07.198453: Solve completed - number of solutions=1
-2014-06-12 14:57:07.212869: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpYYVrNf.tmpnz_GmQ.pyomo.lp
-2014-06-12 14:57:07.233148: Solve completed - number of solutions=1
-2014-06-12 14:57:07.247126: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpHlngkL.tmpuzL1G0.pyomo.lp
-2014-06-12 14:57:07.266831: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.1259 First stage cost avg= 113107.2221 Max-Min= 6943.89
-Cumulative run-time=0.36 seconds
-
-Initiating PH iteration=2
-2014-06-12 14:57:07.279962: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpz3kCuk.tmpAWFjRe.pyomo.lp
-2014-06-12 14:57:07.298028: Solve completed - number of solutions=1
-2014-06-12 14:57:07.312372: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpJ8Ls8o.tmptvC4rB.pyomo.lp
-2014-06-12 14:57:07.329584: Solve completed - number of solutions=1
-2014-06-12 14:57:07.343563: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpIlHEdh.tmpiHwZc9.pyomo.lp
-2014-06-12 14:57:07.362104: Solve completed - number of solutions=1
-Computed objective lower bound=-114092.2009
-2014-06-12 14:57:07.375293: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpC5VhLP.tmp_fr9VE.pyomo.lp
-2014-06-12 14:57:07.395861: Solve completed - number of solutions=1
-2014-06-12 14:57:07.409725: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpH2T0ka.tmpkSv6Kc.pyomo.lp
-2014-06-12 14:57:07.429958: Solve completed - number of solutions=1
-2014-06-12 14:57:07.443748: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpU3hqqh.tmp5x59vi.pyomo.lp
-2014-06-12 14:57:07.463340: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0816 First stage cost avg= 112954.6296 Max-Min= 2234.82
-Cumulative run-time=0.56 seconds
-
-Initiating PH iteration=3
-2014-06-12 14:57:07.476200: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpW3AY1_.tmpB2VkeG.pyomo.lp
-2014-06-12 14:57:07.494063: Solve completed - number of solutions=1
-2014-06-12 14:57:07.507985: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpAoNdvS.tmpYL57US.pyomo.lp
-2014-06-12 14:57:07.525970: Solve completed - number of solutions=1
-2014-06-12 14:57:07.540085: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp5R6dZe.tmp7WcwBE.pyomo.lp
-2014-06-12 14:57:07.558297: Solve completed - number of solutions=1
-Computed objective lower bound=-111905.7747
-2014-06-12 14:57:07.571983: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpHKVktk.tmptzdVnG.pyomo.lp
-2014-06-12 14:57:07.593928: Solve completed - number of solutions=1
-2014-06-12 14:57:07.608047: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpKitKoo.tmpHzXXqd.pyomo.lp
-2014-06-12 14:57:07.628403: Solve completed - number of solutions=1
-2014-06-12 14:57:07.642462: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp7zlDFw.tmpyHiN0C.pyomo.lp
-2014-06-12 14:57:07.661630: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0796 First stage cost avg= 112963.0248 Max-Min= 2375.31
-Cumulative run-time=0.76 seconds
-
-Initiating PH iteration=4
-2014-06-12 14:57:07.675252: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpUfdu4c.tmpNK_jdk.pyomo.lp
-2014-06-12 14:57:07.692308: Solve completed - number of solutions=1
-2014-06-12 14:57:07.706377: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp1vZCZT.tmpfxSy1d.pyomo.lp
-2014-06-12 14:57:07.722733: Solve completed - number of solutions=1
-2014-06-12 14:57:07.737078: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpTgbxm7.tmplup4nD.pyomo.lp
-2014-06-12 14:57:07.753022: Solve completed - number of solutions=1
-Computed objective lower bound=-110093.7884
-2014-06-12 14:57:07.766681: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpIrXFND.tmp8WXND8.pyomo.lp
-2014-06-12 14:57:07.788022: Solve completed - number of solutions=1
-2014-06-12 14:57:07.802937: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpUdJ8Jl.tmpPOWbe7.pyomo.lp
-2014-06-12 14:57:07.823104: Solve completed - number of solutions=1
-2014-06-12 14:57:07.838106: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpWTYb0l.tmphJ61DH.pyomo.lp
-2014-06-12 14:57:07.859680: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0776 First stage cost avg= 112915.6071 Max-Min= 3047.08
-Cumulative run-time=0.96 seconds
-
-Initiating PH iteration=5
-2014-06-12 14:57:07.873832: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpKm4mYr.tmpiMbfa0.pyomo.lp
-2014-06-12 14:57:07.892974: Solve completed - number of solutions=1
-2014-06-12 14:57:07.907452: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpEoPw8k.tmpjb4ywt.pyomo.lp
-2014-06-12 14:57:07.925221: Solve completed - number of solutions=1
-2014-06-12 14:57:07.939896: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpMAFAot.tmpgd94jd.pyomo.lp
-2014-06-12 14:57:07.958059: Solve completed - number of solutions=1
-Computed objective lower bound=-109499.5161
-2014-06-12 14:57:07.971164: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp9BvjLr.tmpDmMnrm.pyomo.lp
-2014-06-12 14:57:07.992040: Solve completed - number of solutions=1
-2014-06-12 14:57:08.006204: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpH8dKCB.tmpVgIl5y.pyomo.lp
-2014-06-12 14:57:08.026776: Solve completed - number of solutions=1
-2014-06-12 14:57:08.040799: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpfiSEEy.tmpUn3yPl.pyomo.lp
-2014-06-12 14:57:08.061329: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0794 First stage cost avg= 112825.3926 Max-Min= 3339.81
-Cumulative run-time=1.16 seconds
-
-Initiating PH iteration=6
-2014-06-12 14:57:08.074104: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp0yzLjV.tmp09yfMn.pyomo.lp
-2014-06-12 14:57:08.093178: Solve completed - number of solutions=1
-2014-06-12 14:57:08.107721: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpFXO3lI.tmp881xtX.pyomo.lp
-2014-06-12 14:57:08.125508: Solve completed - number of solutions=1
-2014-06-12 14:57:08.141333: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpgEjDha.tmpWUbWJu.pyomo.lp
-2014-06-12 14:57:08.158225: Solve completed - number of solutions=1
-Computed objective lower bound=-108931.8046
-2014-06-12 14:57:08.171880: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp79M5ap.tmpZzMivs.pyomo.lp
-2014-06-12 14:57:08.192083: Solve completed - number of solutions=1
-2014-06-12 14:57:08.206119: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpspYVFr.tmpFs3Pb_.pyomo.lp
-2014-06-12 14:57:08.225770: Solve completed - number of solutions=1
-2014-06-12 14:57:08.239729: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp1dq6U2.tmpj06nqy.pyomo.lp
-2014-06-12 14:57:08.262950: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0668 First stage cost avg= 112317.9502 Max-Min= 2019.60
-Cumulative run-time=1.36 seconds
-
-Initiating PH iteration=7
-2014-06-12 14:57:08.277051: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpWYK0vU.tmpP0XdgL.pyomo.lp
-2014-06-12 14:57:08.294336: Solve completed - number of solutions=1
-2014-06-12 14:57:08.308274: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp0N9_wq.tmpRjYTcL.pyomo.lp
-2014-06-12 14:57:08.325076: Solve completed - number of solutions=1
-2014-06-12 14:57:08.338944: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpr6Lx_J.tmpKzheDm.pyomo.lp
-2014-06-12 14:57:08.355874: Solve completed - number of solutions=1
-Computed objective lower bound=-110122.0019
-2014-06-12 14:57:08.369055: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpo9IdIF.tmp0NYL1c.pyomo.lp
-2014-06-12 14:57:08.389704: Solve completed - number of solutions=1
-2014-06-12 14:57:08.404020: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpWOjq_z.tmpUiY3FN.pyomo.lp
-2014-06-12 14:57:08.424983: Solve completed - number of solutions=1
-2014-06-12 14:57:08.439534: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpli2G_7.tmp2nDDUl.pyomo.lp
-2014-06-12 14:57:08.460125: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0542 First stage cost avg= 111364.4660 Max-Min= 1181.85
-Cumulative run-time=1.56 seconds
-
-Initiating PH iteration=8
-2014-06-12 14:57:08.473249: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpEa4fOP.tmpSahPDq.pyomo.lp
-2014-06-12 14:57:08.491346: Solve completed - number of solutions=1
-2014-06-12 14:57:08.505561: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmplmHlaI.tmpIGsnyf.pyomo.lp
-2014-06-12 14:57:08.523811: Solve completed - number of solutions=1
-2014-06-12 14:57:08.538526: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpzhWn0r.tmplurdfX.pyomo.lp
-2014-06-12 14:57:08.557786: Solve completed - number of solutions=1
-Computed objective lower bound=-111334.7018
-2014-06-12 14:57:08.571095: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpWxxrrT.tmpv5fIbK.pyomo.lp
-2014-06-12 14:57:08.591748: Solve completed - number of solutions=1
-2014-06-12 14:57:08.605753: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp3EHo4i.tmp5YN0pS.pyomo.lp
-2014-06-12 14:57:08.625758: Solve completed - number of solutions=1
-2014-06-12 14:57:08.639778: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpTKj0OA.tmphwvxeq.pyomo.lp
-2014-06-12 14:57:08.659273: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0360 First stage cost avg= 110283.4074 Max-Min= 463.23
-Cumulative run-time=1.75 seconds
-
-Initiating PH iteration=9
-2014-06-12 14:57:08.671880: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp3Q9gYv.tmpojmEez.pyomo.lp
-2014-06-12 14:57:08.689865: Solve completed - number of solutions=1
-2014-06-12 14:57:08.703691: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpbrX4Gs.tmpcnZhiq.pyomo.lp
-2014-06-12 14:57:08.720958: Solve completed - number of solutions=1
-2014-06-12 14:57:08.735004: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpHL_H5l.tmpgsBWuK.pyomo.lp
-2014-06-12 14:57:08.753142: Solve completed - number of solutions=1
-Computed objective lower bound=-111609.8143
-2014-06-12 14:57:08.767047: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpOg1GBW.tmpFKnpSM.pyomo.lp
-2014-06-12 14:57:08.787529: Solve completed - number of solutions=1
-2014-06-12 14:57:08.801405: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpXyxPuC.tmpxyG2xh.pyomo.lp
-2014-06-12 14:57:08.821650: Solve completed - number of solutions=1
-2014-06-12 14:57:08.836506: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpi_9Aq7.tmp8StjxJ.pyomo.lp
-2014-06-12 14:57:08.856109: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0243 First stage cost avg= 109399.2542 Max-Min= 363.90
-Cumulative run-time=1.95 seconds
-
-Initiating PH iteration=10
-2014-06-12 14:57:08.868901: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpRSTO67.tmpaoBmlO.pyomo.lp
-2014-06-12 14:57:08.886219: Solve completed - number of solutions=1
-2014-06-12 14:57:08.900144: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpQdKEoy.tmpyP7UPq.pyomo.lp
-2014-06-12 14:57:08.917105: Solve completed - number of solutions=1
-2014-06-12 14:57:08.931969: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpn8aNkp.tmpDQ5H28.pyomo.lp
-2014-06-12 14:57:08.949097: Solve completed - number of solutions=1
-Computed objective lower bound=-111298.1197
-2014-06-12 14:57:08.962093: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpSuYvbO.tmpIyk1gz.pyomo.lp
-2014-06-12 14:57:08.983533: Solve completed - number of solutions=1
-2014-06-12 14:57:08.998473: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpewH3b_.tmpU1MBnK.pyomo.lp
-2014-06-12 14:57:09.018641: Solve completed - number of solutions=1
-2014-06-12 14:57:09.032494: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpKlFEZU.tmpUi6Pbc.pyomo.lp
-2014-06-12 14:57:09.051976: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0256 First stage cost avg= 108834.1930 Max-Min= 933.90
-Cumulative run-time=2.15 seconds
-
-Initiating PH iteration=11
-2014-06-12 14:57:09.082064: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpW79Jmf.tmpcg29kn.pyomo.lp
-2014-06-12 14:57:09.100753: Solve completed - number of solutions=1
-2014-06-12 14:57:09.114620: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp2B7SOa.tmp2mYqWI.pyomo.lp
-2014-06-12 14:57:09.131433: Solve completed - number of solutions=1
-2014-06-12 14:57:09.145404: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpr9V9bS.tmpo2JDNG.pyomo.lp
-2014-06-12 14:57:09.162613: Solve completed - number of solutions=1
-Computed objective lower bound=-110209.1867
-2014-06-12 14:57:09.175902: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpPn51DC.tmpBJDzMZ.pyomo.lp
-2014-06-12 14:57:09.196993: Solve completed - number of solutions=1
-2014-06-12 14:57:09.210896: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpZPBbGW.tmpwR9fu0.pyomo.lp
-2014-06-12 14:57:09.230708: Solve completed - number of solutions=1
-2014-06-12 14:57:09.244570: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpq99lBH.tmpQCQkP_.pyomo.lp
-2014-06-12 14:57:09.264766: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0248 First stage cost avg= 108575.3219 Max-Min= 918.57
-Cumulative run-time=2.36 seconds
-
-Initiating PH iteration=12
-2014-06-12 14:57:09.278840: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmprAJrSL.tmprHbPuq.pyomo.lp
-2014-06-12 14:57:09.295734: Solve completed - number of solutions=1
-2014-06-12 14:57:09.309749: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp1ehj8d.tmpbsRLFJ.pyomo.lp
-2014-06-12 14:57:09.327064: Solve completed - number of solutions=1
-2014-06-12 14:57:09.341026: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpJKYvbh.tmpD8oXIX.pyomo.lp
-2014-06-12 14:57:09.358974: Solve completed - number of solutions=1
-Computed objective lower bound=-109115.6506
-2014-06-12 14:57:09.373004: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpcdJv6P.tmpvz4UAz.pyomo.lp
-2014-06-12 14:57:09.394140: Solve completed - number of solutions=1
-2014-06-12 14:57:09.408563: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpBFYTHm.tmp_Huzb5.pyomo.lp
-2014-06-12 14:57:09.428350: Solve completed - number of solutions=1
-2014-06-12 14:57:09.443267: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpylq2tO.tmpRyjQVA.pyomo.lp
-2014-06-12 14:57:09.462445: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0163 First stage cost avg= 108513.5347 Max-Min= 591.25
-Cumulative run-time=2.56 seconds
-
-Initiating PH iteration=13
-2014-06-12 14:57:09.475053: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpNMjkQ9.tmppfKxgx.pyomo.lp
-2014-06-12 14:57:09.492705: Solve completed - number of solutions=1
-2014-06-12 14:57:09.507471: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpitbYce.tmpaqUs_B.pyomo.lp
-2014-06-12 14:57:09.524220: Solve completed - number of solutions=1
-2014-06-12 14:57:09.538017: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp5ejGOp.tmpOgW9q5.pyomo.lp
-2014-06-12 14:57:09.555788: Solve completed - number of solutions=1
-Computed objective lower bound=-108676.3770
-2014-06-12 14:57:09.573054: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpV747MD.tmpn2YdyM.pyomo.lp
-2014-06-12 14:57:09.599447: Solve completed - number of solutions=1
-2014-06-12 14:57:09.613761: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpeCHY2P.tmpz_vOXx.pyomo.lp
-2014-06-12 14:57:09.633759: Solve completed - number of solutions=1
-2014-06-12 14:57:09.648754: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpnwKTzK.tmp6oWCxt.pyomo.lp
-2014-06-12 14:57:09.669565: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0081 First stage cost avg= 108528.2899 Max-Min= 175.95
-Cumulative run-time=2.76 seconds
-
-Initiating PH iteration=14
-2014-06-12 14:57:09.683801: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp1MqqHF.tmpoo5nhi.pyomo.lp
-2014-06-12 14:57:09.701714: Solve completed - number of solutions=1
-2014-06-12 14:57:09.716276: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpXrGsv_.tmpYOHbAj.pyomo.lp
-2014-06-12 14:57:09.733672: Solve completed - number of solutions=1
-2014-06-12 14:57:09.748622: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpmvpS9E.tmpq45t5b.pyomo.lp
-2014-06-12 14:57:09.765616: Solve completed - number of solutions=1
-Computed objective lower bound=-108716.2952
-2014-06-12 14:57:09.779338: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpwiW2qo.tmpf0yYGm.pyomo.lp
-2014-06-12 14:57:09.802054: Solve completed - number of solutions=1
-2014-06-12 14:57:09.816857: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpglD6jx.tmp7tjeJP.pyomo.lp
-2014-06-12 14:57:09.836490: Solve completed - number of solutions=1
-2014-06-12 14:57:09.850345: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmppTvSi9.tmpEtbojL.pyomo.lp
-2014-06-12 14:57:09.870475: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0168 First stage cost avg= 108561.6577 Max-Min= 274.77
-Cumulative run-time=2.97 seconds
-
-Initiating PH iteration=15
-2014-06-12 14:57:09.883204: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpW8F1Gh.tmpL28w5u.pyomo.lp
-2014-06-12 14:57:09.901227: Solve completed - number of solutions=1
-2014-06-12 14:57:09.915866: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpqlopUC.tmpuyeIUG.pyomo.lp
-2014-06-12 14:57:09.932790: Solve completed - number of solutions=1
-2014-06-12 14:57:09.947070: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpmr75I8.tmpkvowzV.pyomo.lp
-2014-06-12 14:57:09.964144: Solve completed - number of solutions=1
-Computed objective lower bound=-108567.8281
-2014-06-12 14:57:09.977450: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpuNCILi.tmpok9rmg.pyomo.lp
-2014-06-12 14:57:09.997401: Solve completed - number of solutions=1
-2014-06-12 14:57:10.011469: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpxC_xlT.tmp0LGkR8.pyomo.lp
-2014-06-12 14:57:10.033142: Solve completed - number of solutions=1
-2014-06-12 14:57:10.048147: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpgiJIuL.tmpMFai_S.pyomo.lp
-2014-06-12 14:57:10.067123: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0163 First stage cost avg= 108604.0579 Max-Min= 295.14
-Cumulative run-time=3.16 seconds
-
-Initiating PH iteration=16
-2014-06-12 14:57:10.080076: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpMh3sNQ.tmpCSU9gt.pyomo.lp
-2014-06-12 14:57:10.097479: Solve completed - number of solutions=1
-2014-06-12 14:57:10.111360: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpWv4OIv.tmpgug9CB.pyomo.lp
-2014-06-12 14:57:10.128458: Solve completed - number of solutions=1
-2014-06-12 14:57:10.142581: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp21Pewb.tmpkoxzrG.pyomo.lp
-2014-06-12 14:57:10.159791: Solve completed - number of solutions=1
-Computed objective lower bound=-108440.1576
-2014-06-12 14:57:10.172813: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmprlUXjb.tmpwdOnUA.pyomo.lp
-2014-06-12 14:57:10.194574: Solve completed - number of solutions=1
-2014-06-12 14:57:10.209147: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpevCB79.tmp_6iRYP.pyomo.lp
-2014-06-12 14:57:10.229250: Solve completed - number of solutions=1
-2014-06-12 14:57:10.243205: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpqnCQLn.tmp6NvwqQ.pyomo.lp
-2014-06-12 14:57:10.263024: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0098 First stage cost avg= 108667.3583 Max-Min= 127.67
-Cumulative run-time=3.36 seconds
-
-Initiating PH iteration=17
-2014-06-12 14:57:10.276104: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpubQZJh.tmpY4zMIq.pyomo.lp
-2014-06-12 14:57:10.294937: Solve completed - number of solutions=1
-2014-06-12 14:57:10.310552: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpFzQAaV.tmppTXeuY.pyomo.lp
-2014-06-12 14:57:10.327686: Solve completed - number of solutions=1
-2014-06-12 14:57:10.341655: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpPqyOqO.tmpXWDTox.pyomo.lp
-2014-06-12 14:57:10.358562: Solve completed - number of solutions=1
-Computed objective lower bound=-108508.3933
-2014-06-12 14:57:10.371222: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpRm8XMb.tmpZvxSnv.pyomo.lp
-2014-06-12 14:57:10.392366: Solve completed - number of solutions=1
-2014-06-12 14:57:10.406401: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpL0E69k.tmpYk2eIx.pyomo.lp
-2014-06-12 14:57:10.427054: Solve completed - number of solutions=1
-2014-06-12 14:57:10.440934: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp8EVzoO.tmpajj9qz.pyomo.lp
-2014-06-12 14:57:10.460976: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0032 First stage cost avg= 108758.4237 Max-Min= 59.69
-Cumulative run-time=3.56 seconds
-
-Initiating PH iteration=18
-2014-06-12 14:57:10.474221: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp8v_ACv.tmpGirCMh.pyomo.lp
-2014-06-12 14:57:10.492563: Solve completed - number of solutions=1
-2014-06-12 14:57:10.506523: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp1OcJDQ.tmptfYxdk.pyomo.lp
-2014-06-12 14:57:10.523587: Solve completed - number of solutions=1
-2014-06-12 14:57:10.537559: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpdrWEoq.tmpSPwuEZ.pyomo.lp
-2014-06-12 14:57:10.555245: Solve completed - number of solutions=1
-Computed objective lower bound=-108542.0161
-2014-06-12 14:57:10.568454: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpikKl5A.tmpsec_9E.pyomo.lp
-2014-06-12 14:57:10.589543: Solve completed - number of solutions=1
-2014-06-12 14:57:10.604112: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpIph3Hp.tmpkCuWEO.pyomo.lp
-2014-06-12 14:57:10.623945: Solve completed - number of solutions=1
-2014-06-12 14:57:10.637974: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp_3QU93.tmpDClwRv.pyomo.lp
-2014-06-12 14:57:10.657793: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0026 First stage cost avg= 108868.1277 Max-Min= 101.79
-Cumulative run-time=3.75 seconds
-
-Initiating PH iteration=19
-2014-06-12 14:57:10.670871: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpkznfyJ.tmpnyfqpD.pyomo.lp
-2014-06-12 14:57:10.688725: Solve completed - number of solutions=1
-2014-06-12 14:57:10.703607: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp0fRGYt.tmpzZ9oDg.pyomo.lp
-2014-06-12 14:57:10.720727: Solve completed - number of solutions=1
-2014-06-12 14:57:10.734680: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpCjEFQX.tmpLpdsev.pyomo.lp
-2014-06-12 14:57:10.751811: Solve completed - number of solutions=1
-Computed objective lower bound=-108541.9306
-2014-06-12 14:57:10.764912: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpkN4JXi.tmpfVKsIx.pyomo.lp
-2014-06-12 14:57:10.786056: Solve completed - number of solutions=1
-2014-06-12 14:57:10.800550: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpEWaHbT.tmpCTejyu.pyomo.lp
-2014-06-12 14:57:10.820865: Solve completed - number of solutions=1
-2014-06-12 14:57:10.835087: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpkxAfos.tmpz5fISt.pyomo.lp
-2014-06-12 14:57:10.856140: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0039 First stage cost avg= 108975.3089 Max-Min= 73.41
-Cumulative run-time=3.95 seconds
-
-Initiating PH iteration=20
-2014-06-12 14:57:10.869106: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpOsgiTp.tmpYJP3k7.pyomo.lp
-2014-06-12 14:57:10.886572: Solve completed - number of solutions=1
-2014-06-12 14:57:10.901300: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpBK_hGn.tmp0bHboO.pyomo.lp
-2014-06-12 14:57:10.919603: Solve completed - number of solutions=1
-2014-06-12 14:57:10.933756: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpRFMi2a.tmpNQwSDN.pyomo.lp
-2014-06-12 14:57:10.952268: Solve completed - number of solutions=1
-Computed objective lower bound=-108516.4781
-2014-06-12 14:57:10.966409: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpnCVzP_.tmpaH4DX4.pyomo.lp
-2014-06-12 14:57:10.987085: Solve completed - number of solutions=1
-2014-06-12 14:57:11.002239: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmphzZJ0T.tmppoAWWI.pyomo.lp
-2014-06-12 14:57:11.021510: Solve completed - number of solutions=1
-2014-06-12 14:57:11.035505: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpwZjcd9.tmpiyzLHh.pyomo.lp
-2014-06-12 14:57:11.055103: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0043 First stage cost avg= 109057.4144 Max-Min= 39.47
-Cumulative run-time=4.15 seconds
-
-Initiating PH iteration=21
-2014-06-12 14:57:11.067758: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpvELk3e.tmpFoIE_B.pyomo.lp
-2014-06-12 14:57:11.085159: Solve completed - number of solutions=1
-2014-06-12 14:57:11.099393: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp1NwJJ6.tmpUuK6VR.pyomo.lp
-2014-06-12 14:57:11.117712: Solve completed - number of solutions=1
-2014-06-12 14:57:11.132031: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpL8lagi.tmpbJpAAr.pyomo.lp
-2014-06-12 14:57:11.149404: Solve completed - number of solutions=1
-Computed objective lower bound=-108488.2878
-2014-06-12 14:57:11.162954: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpo1a8WE.tmpMUmqcD.pyomo.lp
-2014-06-12 14:57:11.183217: Solve completed - number of solutions=1
-2014-06-12 14:57:11.198214: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmppqf7Mw.tmpT3PNo3.pyomo.lp
-2014-06-12 14:57:11.218368: Solve completed - number of solutions=1
-2014-06-12 14:57:11.232627: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpS6OLCQ.tmpn_RzuQ.pyomo.lp
-2014-06-12 14:57:11.253083: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0044 First stage cost avg= 109099.7145 Max-Min= 87.57
-Cumulative run-time=4.35 seconds
-
-Initiating PH iteration=22
-2014-06-12 14:57:11.266105: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpVgSHBt.tmpirCtfD.pyomo.lp
-2014-06-12 14:57:11.286905: Solve completed - number of solutions=1
-2014-06-12 14:57:11.300828: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpmxERMI.tmpoeKsAx.pyomo.lp
-2014-06-12 14:57:11.319436: Solve completed - number of solutions=1
-2014-06-12 14:57:11.333820: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpyMba5K.tmpm5o649.pyomo.lp
-2014-06-12 14:57:11.350764: Solve completed - number of solutions=1
-Computed objective lower bound=-108441.5390
-2014-06-12 14:57:11.363424: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpOC3yyj.tmpQrXQev.pyomo.lp
-2014-06-12 14:57:11.385363: Solve completed - number of solutions=1
-2014-06-12 14:57:11.399846: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpHNt40U.tmp_6qLHw.pyomo.lp
-2014-06-12 14:57:11.421483: Solve completed - number of solutions=1
-2014-06-12 14:57:11.435293: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpbU93vb.tmpjT5Sfl.pyomo.lp
-2014-06-12 14:57:11.455268: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0040 First stage cost avg= 109099.1239 Max-Min= 104.22
-Cumulative run-time=4.55 seconds
-
-Initiating PH iteration=23
-2014-06-12 14:57:11.467831: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpCDTDgm.tmpjYeoE_.pyomo.lp
-2014-06-12 14:57:11.485072: Solve completed - number of solutions=1
-2014-06-12 14:57:11.499131: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpj0uadI.tmpPeFUVd.pyomo.lp
-2014-06-12 14:57:11.517679: Solve completed - number of solutions=1
-2014-06-12 14:57:11.533509: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp11o4qj.tmpKZVM2K.pyomo.lp
-2014-06-12 14:57:11.550241: Solve completed - number of solutions=1
-Computed objective lower bound=-108399.9641
-2014-06-12 14:57:11.563898: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpuujLRY.tmptXuivu.pyomo.lp
-2014-06-12 14:57:11.583904: Solve completed - number of solutions=1
-2014-06-12 14:57:11.598544: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpWj_csr.tmpHCWVSi.pyomo.lp
-2014-06-12 14:57:11.618553: Solve completed - number of solutions=1
-2014-06-12 14:57:11.632801: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp2LYUZ5.tmptLWCYn.pyomo.lp
-2014-06-12 14:57:11.653220: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0032 First stage cost avg= 109062.8322 Max-Min= 88.54
-Cumulative run-time=4.75 seconds
-
-Initiating PH iteration=24
-2014-06-12 14:57:11.666279: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpdiw0ko.tmpNW_zyr.pyomo.lp
-2014-06-12 14:57:11.683361: Solve completed - number of solutions=1
-2014-06-12 14:57:11.697346: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpM61KeH.tmpz4j7nC.pyomo.lp
-2014-06-12 14:57:11.714071: Solve completed - number of solutions=1
-2014-06-12 14:57:11.728071: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp2Vm2dA.tmp6zwZMn.pyomo.lp
-2014-06-12 14:57:11.746224: Solve completed - number of solutions=1
-Computed objective lower bound=-108503.2120
-2014-06-12 14:57:11.760515: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp6ZvIdl.tmpxws22s.pyomo.lp
-2014-06-12 14:57:11.781730: Solve completed - number of solutions=1
-2014-06-12 14:57:11.795637: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpw8MyC8.tmpINj84S.pyomo.lp
-2014-06-12 14:57:11.816048: Solve completed - number of solutions=1
-2014-06-12 14:57:11.830416: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpj9dF4K.tmp6gqLn_.pyomo.lp
-2014-06-12 14:57:11.851216: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0021 First stage cost avg= 109004.1156 Max-Min= 54.49
-Cumulative run-time=4.95 seconds
-
-Initiating PH iteration=25
-2014-06-12 14:57:11.864288: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmphi2yZY.tmpp2ipFn.pyomo.lp
-2014-06-12 14:57:11.882830: Solve completed - number of solutions=1
-2014-06-12 14:57:11.896646: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpfGECZF.tmpKJ3cbk.pyomo.lp
-2014-06-12 14:57:11.914683: Solve completed - number of solutions=1
-2014-06-12 14:57:11.930047: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpysvY0C.tmpXdnOPD.pyomo.lp
-2014-06-12 14:57:11.947180: Solve completed - number of solutions=1
-Computed objective lower bound=-108576.0350
-2014-06-12 14:57:11.960503: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpER0q4T.tmptbBkwq.pyomo.lp
-2014-06-12 14:57:11.980616: Solve completed - number of solutions=1
-2014-06-12 14:57:11.994519: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmphmTMxp.tmprT7PuX.pyomo.lp
-2014-06-12 14:57:12.014168: Solve completed - number of solutions=1
-2014-06-12 14:57:12.029069: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmptYS_9v.tmprRSjeX.pyomo.lp
-2014-06-12 14:57:12.049177: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0008 First stage cost avg= 108937.8039 Max-Min= 16.89
-Cumulative run-time=5.14 seconds
-
-Initiating PH iteration=26
-2014-06-12 14:57:12.062080: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpV_wSx8.tmpTBkA93.pyomo.lp
-2014-06-12 14:57:12.081502: Solve completed - number of solutions=1
-2014-06-12 14:57:12.095475: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpiX2Gnz.tmpNNUY9e.pyomo.lp
-2014-06-12 14:57:12.112661: Solve completed - number of solutions=1
-2014-06-12 14:57:12.126652: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpKD2Trm.tmpeBdf9m.pyomo.lp
-2014-06-12 14:57:12.144805: Solve completed - number of solutions=1
-Computed objective lower bound=-108599.8131
-2014-06-12 14:57:12.162186: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpmWSjdj.tmphIQg76.pyomo.lp
-2014-06-12 14:57:12.188152: Solve completed - number of solutions=1
-2014-06-12 14:57:12.202910: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpoZUi6e.tmpMKNQg3.pyomo.lp
-2014-06-12 14:57:12.222507: Solve completed - number of solutions=1
-2014-06-12 14:57:12.236437: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp6LCgIv.tmpKc5dre.pyomo.lp
-2014-06-12 14:57:12.256263: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0005 First stage cost avg= 108876.8822 Max-Min= 14.27
-Cumulative run-time=5.35 seconds
-
-Initiating PH iteration=27
-2014-06-12 14:57:12.268912: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp3QOh17.tmpq7yrb5.pyomo.lp
-2014-06-12 14:57:12.287106: Solve completed - number of solutions=1
-2014-06-12 14:57:12.301465: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpDJMM0V.tmpT53a0A.pyomo.lp
-2014-06-12 14:57:12.318490: Solve completed - number of solutions=1
-2014-06-12 14:57:12.332537: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp093qze.tmpN42pLG.pyomo.lp
-2014-06-12 14:57:12.349902: Solve completed - number of solutions=1
-Computed objective lower bound=-108581.6439
-2014-06-12 14:57:12.362747: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpduNc1p.tmp5NaSy9.pyomo.lp
-2014-06-12 14:57:12.383356: Solve completed - number of solutions=1
-2014-06-12 14:57:12.397424: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpB0eBiL.tmpu9Cl4r.pyomo.lp
-2014-06-12 14:57:12.417249: Solve completed - number of solutions=1
-2014-06-12 14:57:12.431174: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpb8XjFD.tmpOdnyqd.pyomo.lp
-2014-06-12 14:57:12.451235: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0015 First stage cost avg= 108830.6201 Max-Min= 34.81
-Cumulative run-time=5.55 seconds
-
-Initiating PH iteration=28
-2014-06-12 14:57:12.463941: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpmCMcdb.tmpbXONC9.pyomo.lp
-2014-06-12 14:57:12.482617: Solve completed - number of solutions=1
-2014-06-12 14:57:12.498337: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpS6WAkK.tmpZSrnbQ.pyomo.lp
-2014-06-12 14:57:12.517175: Solve completed - number of solutions=1
-2014-06-12 14:57:12.531602: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp7HUOyk.tmpRc42BI.pyomo.lp
-2014-06-12 14:57:12.548849: Solve completed - number of solutions=1
-Computed objective lower bound=-108534.4974
-2014-06-12 14:57:12.562532: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpXGyiC7.tmpZYMOoW.pyomo.lp
-2014-06-12 14:57:12.584129: Solve completed - number of solutions=1
-2014-06-12 14:57:12.598102: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpklHIoo.tmpsqY2Km.pyomo.lp
-2014-06-12 14:57:12.617664: Solve completed - number of solutions=1
-2014-06-12 14:57:12.631670: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpO5eM2H.tmp_ZgqHK.pyomo.lp
-2014-06-12 14:57:12.651622: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0021 First stage cost avg= 108803.9655 Max-Min= 44.57
-Cumulative run-time=5.75 seconds
-
-Initiating PH iteration=29
-2014-06-12 14:57:12.664421: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp2F0AV2.tmpxiV0IP.pyomo.lp
-2014-06-12 14:57:12.682999: Solve completed - number of solutions=1
-2014-06-12 14:57:12.696874: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpQvni4D.tmpY1vg7f.pyomo.lp
-2014-06-12 14:57:12.714961: Solve completed - number of solutions=1
-2014-06-12 14:57:12.729530: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpZFpO_k.tmpjB5eXV.pyomo.lp
-2014-06-12 14:57:12.748700: Solve completed - number of solutions=1
-Computed objective lower bound=-108472.5688
-2014-06-12 14:57:12.764807: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp5hFNhj.tmpB9mU7h.pyomo.lp
-2014-06-12 14:57:12.787156: Solve completed - number of solutions=1
-2014-06-12 14:57:12.801363: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpiIgdBl.tmpQynVhp.pyomo.lp
-2014-06-12 14:57:12.822140: Solve completed - number of solutions=1
-2014-06-12 14:57:12.837443: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpjqbBPl.tmp7QXZJE.pyomo.lp
-2014-06-12 14:57:12.858805: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0023 First stage cost avg= 108797.7661 Max-Min= 45.24
-Cumulative run-time=5.95 seconds
-
-Initiating PH iteration=30
-2014-06-12 14:57:12.871478: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmphY3767.tmpi0tFXc.pyomo.lp
-2014-06-12 14:57:12.889972: Solve completed - number of solutions=1
-2014-06-12 14:57:12.904125: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpRBMZik.tmpK3Y3Ns.pyomo.lp
-2014-06-12 14:57:12.921058: Solve completed - number of solutions=1
-2014-06-12 14:57:12.935136: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpzPTBGL.tmpZh5h8o.pyomo.lp
-2014-06-12 14:57:12.951814: Solve completed - number of solutions=1
-Computed objective lower bound=-108408.6756
-2014-06-12 14:57:12.965911: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpsls3QF.tmpuk6GUu.pyomo.lp
-2014-06-12 14:57:12.987712: Solve completed - number of solutions=1
-2014-06-12 14:57:13.002737: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpMNjzci.tmpN6lUdW.pyomo.lp
-2014-06-12 14:57:13.026383: Solve completed - number of solutions=1
-2014-06-12 14:57:13.041461: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpb8qk02.tmpWYy4dB.pyomo.lp
-2014-06-12 14:57:13.063174: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0020 First stage cost avg= 108809.4793 Max-Min= 39.01
-Cumulative run-time=6.16 seconds
-
-Initiating PH iteration=31
-2014-06-12 14:57:13.076417: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpjhQQbJ.tmp3OSjQR.pyomo.lp
-2014-06-12 14:57:13.095120: Solve completed - number of solutions=1
-2014-06-12 14:57:13.109051: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmprcLfl8.tmp6WZfQy.pyomo.lp
-2014-06-12 14:57:13.125893: Solve completed - number of solutions=1
-2014-06-12 14:57:13.140059: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpGL_Xdt.tmpcFIvtn.pyomo.lp
-2014-06-12 14:57:13.158506: Solve completed - number of solutions=1
-Computed objective lower bound=-108403.8262
-2014-06-12 14:57:13.172370: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpDeQLY4.tmpynIzpK.pyomo.lp
-2014-06-12 14:57:13.193085: Solve completed - number of solutions=1
-2014-06-12 14:57:13.207712: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpmd1Cy2.tmpENvYFC.pyomo.lp
-2014-06-12 14:57:13.227903: Solve completed - number of solutions=1
-2014-06-12 14:57:13.242083: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpwkiEZx.tmpfJYBTC.pyomo.lp
-2014-06-12 14:57:13.264127: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0015 First stage cost avg= 108834.1639 Max-Min= 28.07
-Cumulative run-time=6.36 seconds
-
-Initiating PH iteration=32
-2014-06-12 14:57:13.276950: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpTVEjis.tmppBxxuL.pyomo.lp
-2014-06-12 14:57:13.294527: Solve completed - number of solutions=1
-2014-06-12 14:57:13.308622: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpbgKwRA.tmpcPt953.pyomo.lp
-2014-06-12 14:57:13.328811: Solve completed - number of solutions=1
-2014-06-12 14:57:13.343241: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpRr2Sz5.tmpT3gNHe.pyomo.lp
-2014-06-12 14:57:13.362950: Solve completed - number of solutions=1
-Computed objective lower bound=-108419.0164
-2014-06-12 14:57:13.377217: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpn9mkI2.tmpUshfuL.pyomo.lp
-2014-06-12 14:57:13.397473: Solve completed - number of solutions=1
-2014-06-12 14:57:13.412201: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp6txvic.tmpQ4Upnx.pyomo.lp
-2014-06-12 14:57:13.432380: Solve completed - number of solutions=1
-2014-06-12 14:57:13.447065: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpinKpya.tmp2zbB02.pyomo.lp
-2014-06-12 14:57:13.468892: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0008 First stage cost avg= 108865.6237 Max-Min= 14.67
-Cumulative run-time=6.56 seconds
-
-Initiating PH iteration=33
-2014-06-12 14:57:13.482100: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp1zm4g6.tmps7Gr4H.pyomo.lp
-2014-06-12 14:57:13.502966: Solve completed - number of solutions=1
-2014-06-12 14:57:13.518666: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpZx2gCD.tmp8JzWHr.pyomo.lp
-2014-06-12 14:57:13.535853: Solve completed - number of solutions=1
-2014-06-12 14:57:13.549901: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpNTJn_X.tmpWtXyb3.pyomo.lp
-2014-06-12 14:57:13.567042: Solve completed - number of solutions=1
-Computed objective lower bound=-108427.1508
-2014-06-12 14:57:13.580316: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpW0Zxk5.tmpS2TTU4.pyomo.lp
-2014-06-12 14:57:13.601574: Solve completed - number of solutions=1
-2014-06-12 14:57:13.615595: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpWzupba.tmp4z0IN8.pyomo.lp
-2014-06-12 14:57:13.636203: Solve completed - number of solutions=1
-2014-06-12 14:57:13.650762: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmplhmjDb.tmpFLyPPg.pyomo.lp
-2014-06-12 14:57:13.671657: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0001 First stage cost avg= 108897.5679 Max-Min= 1.06
-Cumulative run-time=6.77 seconds
-PH converged - convergence metric is below threshold=0.0001
-Number of discrete variables fixed before final plugin calls=0 (total=0)
-Number of continuous variables fixed before final plugin calls=0 (total=3)
-2014-06-12 14:57:13.685495: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmplfAzkS.tmpiU4UbC.pyomo.lp
-2014-06-12 14:57:13.704277: Solve completed - number of solutions=1
-2014-06-12 14:57:13.718329: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpQD9Cfl.tmpONjvYr.pyomo.lp
-2014-06-12 14:57:13.735641: Solve completed - number of solutions=1
-2014-06-12 14:57:13.749678: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpd3mYc5.tmp0FXNyW.pyomo.lp
-2014-06-12 14:57:13.768128: Solve completed - number of solutions=1
-Computed objective lower bound=-108427.7239
-
- Iteration Bound
- Trivial -115405.555588
- 0 -112378.395124
- 1 -114092.2009
- 2 -111905.774744
- 3 -110093.788354
- 4 -109499.516145
- 5 -108931.804635
- 6 -110122.001897
- 7 -111334.701817
- 8 -111609.814338
- 9 -111298.11967
- 10 -110209.186685
- 11 -109115.65065
- 12 -108676.376969
- 13 -108716.295157
- 14 -108567.828079
- 15 -108440.157622
- 16 -108508.393308
- 17 -108542.016117
- 18 -108541.930573
- 19 -108516.478131
- 20 -108488.28782
- 21 -108441.538995
- 22 -108399.964066
- 23 -108503.212025
- 24 -108576.034986
- 25 -108599.813084
- 26 -108581.643945
- 27 -108534.497426
- 28 -108472.568809
- 29 -108408.6756
- 30 -108403.826194
- 31 -108419.01641
- 32 -108427.150791
- 33 -108427.723944
-
-Lower bound history written to file=phbound.txt
-
-Best Objective Bound: -108399.964066
-
-Best Lower Bound written to file=phbestbound.txt
-PH algorithm history written to file=ph_history.json
-PH complete
-Convergence history:
-Iteration Metric Value
- 0 0.2540
- 1 0.1259
- 2 0.0816
- 3 0.0796
- 4 0.0776
- 5 0.0794
- 6 0.0668
- 7 0.0542
- 8 0.0360
- 9 0.0243
- 10 0.0256
- 11 0.0248
- 12 0.0163
- 13 0.0081
- 14 0.0168
- 15 0.0163
- 16 0.0098
- 17 0.0032
- 18 0.0026
- 19 0.0039
- 20 0.0043
- 21 0.0044
- 22 0.0040
- 23 0.0032
- 24 0.0021
- 25 0.0008
- 26 0.0005
- 27 0.0015
- 28 0.0021
- 29 0.0023
- 30 0.0020
- 31 0.0015
- 32 0.0008
- 33 0.0001
-
-***********************************************************************************************
->>>THE EXPECTED SUM OF THE STAGE COST VARIABLES=-108388.378639<<<
->>>***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise<<<
-***********************************************************************************************
-Final number of discrete variables fixed=0 (total=0)
-Final number of continuous variables fixed=0 (total=3)
-Final variable values:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 79.9844 80.0000 79.9768 Max-Min: 0.0232 Avg: 79.9871
- Index: [SUGAR_BEETS] Values: 249.9848 249.9770 250.0000 Max-Min: 0.0230 Avg: 249.9873
- Index: [WHEAT] Values: 170.0308 170.0230 170.0232 Max-Min: 0.0078 Avg: 170.0256
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108897.0836 108897.4725 108898.1476 Max-Min: 1.0640 Avg: 108897.5679
-Final costs:
-Scenario Tree Costs
-***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise
-----------------------------------------------------
-Tree Nodes:
-
- Name=AboveAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AboveAverageScenario
- Expected cost of (sub)tree rooted at node=-275899.3041
-
- Name=AverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AverageScenario
- Expected cost of (sub)tree rooted at node=-218243.2209
-
- Name=BelowAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-157713.8615
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- AboveAverageNode
- AverageNode
- BelowAverageNode
- Scenarios:
- AboveAverageScenario
- AverageScenario
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-108388.3786
-
-----------------------------------------------------
-Scenarios:
-
- Name=AboveAverageScenario
- Probability=0.3333
- Leaf Node=AboveAverageNode
- Tree node sequence:
- RootNode
- AboveAverageNode
- Stage= FirstStage Cost=108898.1476
- Stage= SecondStage Cost=-275899.3041
- Total scenario cost=-167001.1565
-
- Name=AverageScenario
- Probability=0.3333
- Leaf Node=AverageNode
- Tree node sequence:
- RootNode
- AverageNode
- Stage= FirstStage Cost=108897.4725
- Stage= SecondStage Cost=-218243.2209
- Total scenario cost=-109345.7484
-
- Name=BelowAverageScenario
- Probability=0.3333
- Leaf Node=BelowAverageNode
- Tree node sequence:
- RootNode
- BelowAverageNode
- Stage= FirstStage Cost=108897.0836
- Stage= SecondStage Cost=-157713.8615
- Total scenario cost=-48816.7780
-
-----------------------------------------------------
-
-Total PH execution time=6.87 seconds
-
-Scenario tree solution written to file=ph_solution.json
-Shutting down Pyro solver components
-Dispatcher received request to shut down - initiating...
-
-Total execution time=9.92 seconds
-Name Server gracefully stopped.
-Lost connection to dispatch server - shutting down...
diff --git a/pyomo/pysp/tests/examples/baselines/TestPHFarmerTrivialBundlesPyro.test8.baseline b/pyomo/pysp/tests/examples/baselines/TestPHFarmerTrivialBundlesPyro.test8.baseline
deleted file mode 100644
index 8cee0a6cfd9..00000000000
--- a/pyomo/pysp/tests/examples/baselines/TestPHFarmerTrivialBundlesPyro.test8.baseline
+++ /dev/null
@@ -1,2367 +0,0 @@
-*** Pyro Name Server ***
-Name server listening on: ('0.0.0.0', 9090)
-Broadcast server listening on: ('0.0.0.0', 9090)
-URI is: PYRO://10.0.0.11:9090/0a00000b1223e20a83560216561467a0ccd
-URI written to: /Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/pyomo/pysp/tests/examples/Pyro_NS_URI
-Name Server started.
-User-defined PH extension module=pyomo.pysp.plugins.phhistoryextension already imported - skipping
-User-defined PH extension module=pyomo.pysp.plugins.convexhullboundextension already imported - skipping
-Dispatcher is ready.
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI:PYRO://10.0.0.11:7766/0a00000b1223f20a8356142591862f645a9
-This is worker Worker_74304@Ozymandias.local
-Listening for work from dispatcher...
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI: PYRO://10.0.0.11:7766/0a00000b1223f20a8356142591862f645a9
-This is client 74305@Ozymandias.local
-Initializing PH
-
-convexhullboundextension using default update interval=1
-WARNING: No construction rule or expression specified for constraint 'W_Balance'
-WARNING: No construction rule or expression specified for constraint 'V_Bound'
-User-defined PH solution writer module=pyomo.pysp.plugins.jsonsolutionwriter already imported - skipping
-Starting PH
-
-Initiating PH iteration=0
-2014-06-12 14:57:21.419510: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpkPEaP6.tmpBB5Ive.pyomo.lp
-2014-06-12 14:57:21.441909: Solve completed - number of solutions=1
-2014-06-12 14:57:21.457415: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpTp2fXa.tmpx2lBW0.pyomo.lp
-2014-06-12 14:57:21.474645: Solve completed - number of solutions=1
-2014-06-12 14:57:21.488520: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmppdEh7q.tmp2eG9dM.pyomo.lp
-2014-06-12 14:57:21.506660: Solve completed - number of solutions=1
-Computed objective lower bound=-115405.5556
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.2540 First stage cost avg= 113494.4444 Max-Min=10416.67
-Cumulative run-time=0.19 seconds
-
-Initiating PH iteration=1
-2014-06-12 14:57:21.553130: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp8wA3mt.tmpBQ1TrQ.pyomo.lp
-2014-06-12 14:57:21.570499: Solve completed - number of solutions=1
-2014-06-12 14:57:21.584342: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpKNc96p.tmpNFYsS7.pyomo.lp
-2014-06-12 14:57:21.601721: Solve completed - number of solutions=1
-2014-06-12 14:57:21.615713: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpg_86hP.tmpACvoKG.pyomo.lp
-2014-06-12 14:57:21.634044: Solve completed - number of solutions=1
-Computed objective lower bound=-112378.3952
-2014-06-12 14:57:21.680321: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpXQNBSj.tmpZFeeya.pyomo.lp
-2014-06-12 14:57:21.700131: Solve completed - number of solutions=1
-2014-06-12 14:57:21.714049: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmphKJQdc.tmpCKrZg6.pyomo.lp
-2014-06-12 14:57:21.737147: Solve completed - number of solutions=1
-2014-06-12 14:57:21.751064: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp4ULiET.tmpLnEG5r.pyomo.lp
-2014-06-12 14:57:21.771246: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.1259 First stage cost avg= 113107.2221 Max-Min= 6943.89
-Cumulative run-time=0.43 seconds
-
-Initiating PH iteration=2
-2014-06-12 14:57:21.784025: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpxjqB0J.tmpM0H0Sl.pyomo.lp
-2014-06-12 14:57:21.803320: Solve completed - number of solutions=1
-2014-06-12 14:57:21.817363: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp429hWl.tmpvn3WWy.pyomo.lp
-2014-06-12 14:57:21.835757: Solve completed - number of solutions=1
-2014-06-12 14:57:21.850385: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp2qjJMW.tmpIlNmBl.pyomo.lp
-2014-06-12 14:57:21.868188: Solve completed - number of solutions=1
-Computed objective lower bound=-119146.9138
-2014-06-12 14:57:21.913253: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpA92cuS.tmpiTOO52.pyomo.lp
-2014-06-12 14:57:21.933087: Solve completed - number of solutions=1
-2014-06-12 14:57:21.947069: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpq9tfrO.tmpvndYge.pyomo.lp
-2014-06-12 14:57:21.967474: Solve completed - number of solutions=1
-2014-06-12 14:57:21.981437: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpZdpGlX.tmp282VXl.pyomo.lp
-2014-06-12 14:57:22.001230: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0816 First stage cost avg= 112954.6296 Max-Min= 2234.82
-Cumulative run-time=0.66 seconds
-
-Initiating PH iteration=3
-2014-06-12 14:57:22.014115: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpCTdr38.tmpQ3FMYz.pyomo.lp
-2014-06-12 14:57:22.032015: Solve completed - number of solutions=1
-2014-06-12 14:57:22.045938: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpenLe4q.tmpTV_MOk.pyomo.lp
-2014-06-12 14:57:22.063172: Solve completed - number of solutions=1
-2014-06-12 14:57:22.077118: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpvXssFr.tmpn58G0o.pyomo.lp
-2014-06-12 14:57:22.095043: Solve completed - number of solutions=1
-Computed objective lower bound=-122839.9373
-2014-06-12 14:57:22.141973: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp1_Uu1e.tmppk9lrf.pyomo.lp
-2014-06-12 14:57:22.162658: Solve completed - number of solutions=1
-2014-06-12 14:57:22.176568: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmphKhcoI.tmpNYzGmr.pyomo.lp
-2014-06-12 14:57:22.197596: Solve completed - number of solutions=1
-2014-06-12 14:57:22.211479: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpQcLXRz.tmpKKUkqi.pyomo.lp
-2014-06-12 14:57:22.231403: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0796 First stage cost avg= 112963.0248 Max-Min= 2375.31
-Cumulative run-time=0.89 seconds
-
-Initiating PH iteration=4
-2014-06-12 14:57:22.244302: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp3GwR4w.tmpqquzIQ.pyomo.lp
-2014-06-12 14:57:22.262569: Solve completed - number of solutions=1
-2014-06-12 14:57:22.277468: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp7QPkWV.tmpaNn3_p.pyomo.lp
-2014-06-12 14:57:22.295050: Solve completed - number of solutions=1
-2014-06-12 14:57:22.310031: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpnfG9A0.tmpw9Wl5u.pyomo.lp
-2014-06-12 14:57:22.329096: Solve completed - number of solutions=1
-Computed objective lower bound=-115850.2283
-2014-06-12 14:57:22.375454: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpKJfiER.tmpQTXBTN.pyomo.lp
-2014-06-12 14:57:22.396400: Solve completed - number of solutions=1
-2014-06-12 14:57:22.410481: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpX4iuvV.tmpWMXupn.pyomo.lp
-2014-06-12 14:57:22.431527: Solve completed - number of solutions=1
-2014-06-12 14:57:22.445485: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpjKzclM.tmpBbJxUU.pyomo.lp
-2014-06-12 14:57:22.465685: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0776 First stage cost avg= 112915.6071 Max-Min= 3047.08
-Cumulative run-time=1.13 seconds
-
-Initiating PH iteration=5
-2014-06-12 14:57:22.478729: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpa9ShIG.tmpfxGHfk.pyomo.lp
-2014-06-12 14:57:22.496244: Solve completed - number of solutions=1
-2014-06-12 14:57:22.510546: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpse9hrX.tmpEOKJAe.pyomo.lp
-2014-06-12 14:57:22.527892: Solve completed - number of solutions=1
-2014-06-12 14:57:22.542384: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpWo74Qm.tmpCDV1mI.pyomo.lp
-2014-06-12 14:57:22.559701: Solve completed - number of solutions=1
-Computed objective lower bound=-114662.4278
-2014-06-12 14:57:22.606042: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpzSifHK.tmpDrueTZ.pyomo.lp
-2014-06-12 14:57:22.626285: Solve completed - number of solutions=1
-2014-06-12 14:57:22.640302: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpagvl49.tmpuB_3uu.pyomo.lp
-2014-06-12 14:57:22.660343: Solve completed - number of solutions=1
-2014-06-12 14:57:22.674366: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpSEYOnu.tmpGsAVLd.pyomo.lp
-2014-06-12 14:57:22.695111: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0794 First stage cost avg= 112825.3926 Max-Min= 3339.81
-Cumulative run-time=1.36 seconds
-
-Initiating PH iteration=6
-2014-06-12 14:57:22.708440: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmptC5ftW.tmpx7YWD0.pyomo.lp
-2014-06-12 14:57:22.726360: Solve completed - number of solutions=1
-2014-06-12 14:57:22.740162: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp3dnVVL.tmpeWasRW.pyomo.lp
-2014-06-12 14:57:22.757435: Solve completed - number of solutions=1
-2014-06-12 14:57:22.771268: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpVnKbMk.tmpaZYmBQ.pyomo.lp
-2014-06-12 14:57:22.790870: Solve completed - number of solutions=1
-Computed objective lower bound=-114508.9364
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-2014-06-12 14:57:22.837433: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpBTpUHS.tmpG1eCvn.pyomo.lp
-2014-06-12 14:57:22.858523: Solve completed - number of solutions=1
-2014-06-12 14:57:22.872458: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpPEmxay.tmpLDKIYA.pyomo.lp
-2014-06-12 14:57:22.892995: Solve completed - number of solutions=1
-2014-06-12 14:57:22.907934: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmptJI4TQ.tmp7dzTSM.pyomo.lp
-2014-06-12 14:57:22.928345: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0726 First stage cost avg= 111425.6142 Max-Min= 3493.67
-Cumulative run-time=1.59 seconds
-
-Initiating PH iteration=7
-2014-06-12 14:57:22.941101: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpg5z1xj.tmpvIzEkl.pyomo.lp
-2014-06-12 14:57:22.958615: Solve completed - number of solutions=1
-2014-06-12 14:57:22.972673: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp0CpMUr.tmpSL3GHw.pyomo.lp
-2014-06-12 14:57:22.990861: Solve completed - number of solutions=1
-2014-06-12 14:57:23.005295: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpPygXT5.tmptbq4RX.pyomo.lp
-2014-06-12 14:57:23.022477: Solve completed - number of solutions=1
-Computed objective lower bound=-114392.6225
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-2014-06-12 14:57:23.069202: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmprYcL1J.tmp5Fken1.pyomo.lp
-2014-06-12 14:57:23.089451: Solve completed - number of solutions=1
-2014-06-12 14:57:23.103357: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpyHNjBq.tmpFCh1xD.pyomo.lp
-2014-06-12 14:57:23.123744: Solve completed - number of solutions=1
-2014-06-12 14:57:23.138689: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpLFLx1b.tmpp_YTyb.pyomo.lp
-2014-06-12 14:57:23.159189: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0844 First stage cost avg= 110005.4890 Max-Min= 3402.43
-Cumulative run-time=1.82 seconds
-
-Initiating PH iteration=8
-2014-06-12 14:57:23.172131: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp95nwF2.tmp3TIWQy.pyomo.lp
-2014-06-12 14:57:23.191104: Solve completed - number of solutions=1
-2014-06-12 14:57:23.205029: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp0Zc5i_.tmpJSuKtB.pyomo.lp
-2014-06-12 14:57:23.222960: Solve completed - number of solutions=1
-2014-06-12 14:57:23.236964: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpcb00uW.tmp46YhUL.pyomo.lp
-2014-06-12 14:57:23.254358: Solve completed - number of solutions=1
-Computed objective lower bound=-116760.9510
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-2014-06-12 14:57:23.300608: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpWfY4oX.tmpfB39SD.pyomo.lp
-2014-06-12 14:57:23.320878: Solve completed - number of solutions=1
-2014-06-12 14:57:23.335787: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpYT945M.tmpu07Ktw.pyomo.lp
-2014-06-12 14:57:23.356151: Solve completed - number of solutions=1
-2014-06-12 14:57:23.370118: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp5bsXXT.tmpHQzSuy.pyomo.lp
-2014-06-12 14:57:23.390538: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0727 First stage cost avg= 108759.9444 Max-Min= 2312.53
-Cumulative run-time=2.05 seconds
-
-Initiating PH iteration=9
-2014-06-12 14:57:23.420516: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpA6R1kH.tmp3Q7ZI4.pyomo.lp
-2014-06-12 14:57:23.438495: Solve completed - number of solutions=1
-2014-06-12 14:57:23.453936: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpTzvS3A.tmpMRDsr4.pyomo.lp
-2014-06-12 14:57:23.471430: Solve completed - number of solutions=1
-2014-06-12 14:57:23.486575: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp6wC67P.tmp4wOkua.pyomo.lp
-2014-06-12 14:57:23.505511: Solve completed - number of solutions=1
-Computed objective lower bound=-115713.7704
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-2014-06-12 14:57:23.554197: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp98WpsN.tmpn9Y_sT.pyomo.lp
-2014-06-12 14:57:23.573584: Solve completed - number of solutions=1
-2014-06-12 14:57:23.587738: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpCdUTHi.tmp9KVBE8.pyomo.lp
-2014-06-12 14:57:23.607961: Solve completed - number of solutions=1
-2014-06-12 14:57:23.621864: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmps96BPz.tmpKj2l35.pyomo.lp
-2014-06-12 14:57:23.641862: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0636 First stage cost avg= 107649.1713 Max-Min= 2611.98
-Cumulative run-time=2.30 seconds
-
-Initiating PH iteration=10
-2014-06-12 14:57:23.655707: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpD8IimE.tmpcOUsSy.pyomo.lp
-2014-06-12 14:57:23.673498: Solve completed - number of solutions=1
-2014-06-12 14:57:23.687512: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpf93dcp.tmp6rriNc.pyomo.lp
-2014-06-12 14:57:23.706576: Solve completed - number of solutions=1
-2014-06-12 14:57:23.721953: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmprEc4Bp.tmp04pwqW.pyomo.lp
-2014-06-12 14:57:23.739278: Solve completed - number of solutions=1
-Computed objective lower bound=-114886.9774
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-2014-06-12 14:57:23.786954: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpyPLZTC.tmpIDSBuo.pyomo.lp
-2014-06-12 14:57:23.807511: Solve completed - number of solutions=1
-2014-06-12 14:57:23.821490: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp45LiXB.tmpuv0bCK.pyomo.lp
-2014-06-12 14:57:23.842037: Solve completed - number of solutions=1
-2014-06-12 14:57:23.856035: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpEgrSg_.tmpr5ooR2.pyomo.lp
-2014-06-12 14:57:23.876327: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0786 First stage cost avg= 106975.2119 Max-Min= 3852.20
-Cumulative run-time=2.54 seconds
-
-Initiating PH iteration=11
-2014-06-12 14:57:23.890432: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpE6XXr6.tmpld0l_R.pyomo.lp
-2014-06-12 14:57:23.909281: Solve completed - number of solutions=1
-2014-06-12 14:57:23.923355: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp66cA1z.tmpIfYIOl.pyomo.lp
-2014-06-12 14:57:23.942273: Solve completed - number of solutions=1
-2014-06-12 14:57:23.956665: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpTz9Wp2.tmpNNGr7Z.pyomo.lp
-2014-06-12 14:57:23.975310: Solve completed - number of solutions=1
-Computed objective lower bound=-114142.6745
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-2014-06-12 14:57:24.022038: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpwHbvJv.tmpUkH5Fq.pyomo.lp
-2014-06-12 14:57:24.042420: Solve completed - number of solutions=1
-2014-06-12 14:57:24.056687: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpGnqP6P.tmpTlnhWJ.pyomo.lp
-2014-06-12 14:57:24.077349: Solve completed - number of solutions=1
-2014-06-12 14:57:24.091622: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpFo5Flk.tmpAzaSRf.pyomo.lp
-2014-06-12 14:57:24.112142: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0822 First stage cost avg= 106779.6625 Max-Min= 3679.63
-Cumulative run-time=2.77 seconds
-
-Initiating PH iteration=12
-2014-06-12 14:57:24.125033: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpfY53uY.tmpBdjUt2.pyomo.lp
-2014-06-12 14:57:24.145181: Solve completed - number of solutions=1
-2014-06-12 14:57:24.159584: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpscmez_.tmpBJMcGX.pyomo.lp
-2014-06-12 14:57:24.176895: Solve completed - number of solutions=1
-2014-06-12 14:57:24.190782: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpqWXM4l.tmpd7JMA3.pyomo.lp
-2014-06-12 14:57:24.208973: Solve completed - number of solutions=1
-Computed objective lower bound=-112524.0431
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-2014-06-12 14:57:24.256742: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmppcOfi4.tmpIayN5B.pyomo.lp
-2014-06-12 14:57:24.276504: Solve completed - number of solutions=1
-2014-06-12 14:57:24.290501: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpaupGMY.tmprRTfKc.pyomo.lp
-2014-06-12 14:57:24.310700: Solve completed - number of solutions=1
-2014-06-12 14:57:24.324700: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpziJAjK.tmprpn5ei.pyomo.lp
-2014-06-12 14:57:24.345522: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0773 First stage cost avg= 106949.8534 Max-Min= 3195.33
-Cumulative run-time=3.01 seconds
-
-Initiating PH iteration=13
-2014-06-12 14:57:24.359454: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpK8e5mr.tmpvsijfx.pyomo.lp
-2014-06-12 14:57:24.377642: Solve completed - number of solutions=1
-2014-06-12 14:57:24.391717: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpWTA9dd.tmp44misc.pyomo.lp
-2014-06-12 14:57:24.408996: Solve completed - number of solutions=1
-2014-06-12 14:57:24.422946: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpYRN5n7.tmpwgrbvk.pyomo.lp
-2014-06-12 14:57:24.440367: Solve completed - number of solutions=1
-Computed objective lower bound=-111354.3497
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-2014-06-12 14:57:24.487653: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp1mgvLU.tmphh3u99.pyomo.lp
-2014-06-12 14:57:24.508034: Solve completed - number of solutions=1
-2014-06-12 14:57:24.522076: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpnP83BJ.tmp_FpOxL.pyomo.lp
-2014-06-12 14:57:24.542580: Solve completed - number of solutions=1
-2014-06-12 14:57:24.556496: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpn560g9.tmpYL7wnu.pyomo.lp
-2014-06-12 14:57:24.576726: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0690 First stage cost avg= 107328.8057 Max-Min= 2823.03
-Cumulative run-time=3.24 seconds
-
-Initiating PH iteration=14
-2014-06-12 14:57:24.590452: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpV1Eog3.tmpTn8ABT.pyomo.lp
-2014-06-12 14:57:24.607439: Solve completed - number of solutions=1
-2014-06-12 14:57:24.621654: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpJGPm2V.tmpng2w7A.pyomo.lp
-2014-06-12 14:57:24.638177: Solve completed - number of solutions=1
-2014-06-12 14:57:24.652200: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp8giy_k.tmpKAlyie.pyomo.lp
-2014-06-12 14:57:24.671010: Solve completed - number of solutions=1
-Computed objective lower bound=-110712.3885
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-2014-06-12 14:57:24.717275: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpuvGihs.tmpMx8Lnd.pyomo.lp
-2014-06-12 14:57:24.738614: Solve completed - number of solutions=1
-2014-06-12 14:57:24.753349: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpN8Em_6.tmpAQZYlG.pyomo.lp
-2014-06-12 14:57:24.773504: Solve completed - number of solutions=1
-2014-06-12 14:57:24.787592: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp1Muzl4.tmpPtbjqw.pyomo.lp
-2014-06-12 14:57:24.808400: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0608 First stage cost avg= 107764.6036 Max-Min= 2533.82
-Cumulative run-time=3.47 seconds
-
-Initiating PH iteration=15
-2014-06-12 14:57:24.821650: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpiVdpd3.tmp3ttNdh.pyomo.lp
-2014-06-12 14:57:24.840806: Solve completed - number of solutions=1
-2014-06-12 14:57:24.855088: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp3CnTs5.tmpCQS3Cc.pyomo.lp
-2014-06-12 14:57:24.874340: Solve completed - number of solutions=1
-2014-06-12 14:57:24.888393: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpzE4G_A.tmp0zFGsH.pyomo.lp
-2014-06-12 14:57:24.907316: Solve completed - number of solutions=1
-Computed objective lower bound=-110412.3233
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-2014-06-12 14:57:24.953823: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpeQ_K40.tmpxLTdy1.pyomo.lp
-2014-06-12 14:57:24.974583: Solve completed - number of solutions=1
-2014-06-12 14:57:24.988642: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpEavTyu.tmp6afiLu.pyomo.lp
-2014-06-12 14:57:25.010576: Solve completed - number of solutions=1
-2014-06-12 14:57:25.024646: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmphXJHAH.tmpSjX3f3.pyomo.lp
-2014-06-12 14:57:25.046193: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0550 First stage cost avg= 108156.8751 Max-Min= 2354.98
-Cumulative run-time=3.71 seconds
-
-Initiating PH iteration=16
-2014-06-12 14:57:25.059959: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpOkObys.tmpBInVNc.pyomo.lp
-2014-06-12 14:57:25.078998: Solve completed - number of solutions=1
-2014-06-12 14:57:25.093796: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpw7zXAC.tmpWKpAjW.pyomo.lp
-2014-06-12 14:57:25.112217: Solve completed - number of solutions=1
-2014-06-12 14:57:25.127132: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpNREQk8.tmpyhLwUF.pyomo.lp
-2014-06-12 14:57:25.144803: Solve completed - number of solutions=1
-Computed objective lower bound=-110290.3557
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-2014-06-12 14:57:25.192385: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpk4an8c.tmp1vUxvk.pyomo.lp
-2014-06-12 14:57:25.213844: Solve completed - number of solutions=1
-2014-06-12 14:57:25.227897: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpt9SjTf.tmpqBixKl.pyomo.lp
-2014-06-12 14:57:25.247541: Solve completed - number of solutions=1
-2014-06-12 14:57:25.263024: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpAjAytK.tmpmmYO5D.pyomo.lp
-2014-06-12 14:57:25.284035: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0518 First stage cost avg= 108452.7004 Max-Min= 2257.08
-Cumulative run-time=3.95 seconds
-
-Initiating PH iteration=17
-2014-06-12 14:57:25.297450: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpygZHtd.tmpeeGj_Q.pyomo.lp
-2014-06-12 14:57:25.314190: Solve completed - number of solutions=1
-2014-06-12 14:57:25.328353: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpcn4C8l.tmp6BbuIE.pyomo.lp
-2014-06-12 14:57:25.345439: Solve completed - number of solutions=1
-2014-06-12 14:57:25.359581: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp6t8K8g.tmp40oVcQ.pyomo.lp
-2014-06-12 14:57:25.377695: Solve completed - number of solutions=1
-Computed objective lower bound=-110300.1669
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-2014-06-12 14:57:25.423469: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpfRPmlN.tmppDeTQL.pyomo.lp
-2014-06-12 14:57:25.447075: Solve completed - number of solutions=1
-2014-06-12 14:57:25.461781: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpuedKaa.tmpGHZN9H.pyomo.lp
-2014-06-12 14:57:25.482772: Solve completed - number of solutions=1
-2014-06-12 14:57:25.497155: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp9RfJRy.tmpgF86aJ.pyomo.lp
-2014-06-12 14:57:25.516642: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0512 First stage cost avg= 108636.8058 Max-Min= 2233.49
-Cumulative run-time=4.18 seconds
-
-Initiating PH iteration=18
-2014-06-12 14:57:25.529756: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpfhLaiX.tmpHZ4zWz.pyomo.lp
-2014-06-12 14:57:25.548616: Solve completed - number of solutions=1
-2014-06-12 14:57:25.563153: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpPaLzoR.tmpk009c3.pyomo.lp
-2014-06-12 14:57:25.580617: Solve completed - number of solutions=1
-2014-06-12 14:57:25.595294: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpzEjIfP.tmpgyuP0o.pyomo.lp
-2014-06-12 14:57:25.614204: Solve completed - number of solutions=1
-Computed objective lower bound=-110407.5782
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-2014-06-12 14:57:25.660128: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpoSXMrO.tmpZNWGqA.pyomo.lp
-2014-06-12 14:57:25.683700: Solve completed - number of solutions=1
-2014-06-12 14:57:25.699466: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpfkIXQR.tmpAC2j5o.pyomo.lp
-2014-06-12 14:57:25.721531: Solve completed - number of solutions=1
-2014-06-12 14:57:25.736316: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpsTWjGK.tmpGf6VFG.pyomo.lp
-2014-06-12 14:57:25.757080: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0519 First stage cost avg= 108719.1582 Max-Min= 2264.78
-Cumulative run-time=4.42 seconds
-
-Initiating PH iteration=19
-2014-06-12 14:57:25.769745: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpJ_hlWM.tmpPelfKr.pyomo.lp
-2014-06-12 14:57:25.788786: Solve completed - number of solutions=1
-2014-06-12 14:57:25.803377: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp4lcMzB.tmpP21qVC.pyomo.lp
-2014-06-12 14:57:25.822796: Solve completed - number of solutions=1
-2014-06-12 14:57:25.838261: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpD6JrrA.tmpF4lLZn.pyomo.lp
-2014-06-12 14:57:25.857394: Solve completed - number of solutions=1
-Computed objective lower bound=-110633.3518
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-2014-06-12 14:57:25.903952: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpHe5poM.tmpNbpvq5.pyomo.lp
-2014-06-12 14:57:25.925153: Solve completed - number of solutions=1
-2014-06-12 14:57:25.939405: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpxb2oxP.tmpClVDfP.pyomo.lp
-2014-06-12 14:57:25.961407: Solve completed - number of solutions=1
-2014-06-12 14:57:25.976109: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp7lCDUQ.tmpvj0VIY.pyomo.lp
-2014-06-12 14:57:25.997798: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0526 First stage cost avg= 108723.1781 Max-Min= 2324.13
-Cumulative run-time=4.66 seconds
-
-Initiating PH iteration=20
-2014-06-12 14:57:26.011271: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpgXHzph.tmps6KB8E.pyomo.lp
-2014-06-12 14:57:26.031265: Solve completed - number of solutions=1
-2014-06-12 14:57:26.045907: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpOvZfGx.tmpGiW5PV.pyomo.lp
-2014-06-12 14:57:26.063367: Solve completed - number of solutions=1
-2014-06-12 14:57:26.077801: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpAPHBqL.tmp9Xzoe6.pyomo.lp
-2014-06-12 14:57:26.096136: Solve completed - number of solutions=1
-Computed objective lower bound=-110837.3428
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-2014-06-12 14:57:26.174778: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpdlWIl0.tmpEPvSEv.pyomo.lp
-2014-06-12 14:57:26.195821: Solve completed - number of solutions=1
-2014-06-12 14:57:26.210486: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpzk3p7h.tmphnHus_.pyomo.lp
-2014-06-12 14:57:26.231866: Solve completed - number of solutions=1
-2014-06-12 14:57:26.246183: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp0Z_3o0.tmp_4EXNo.pyomo.lp
-2014-06-12 14:57:26.266971: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0533 First stage cost avg= 108676.4444 Max-Min= 2388.98
-Cumulative run-time=4.93 seconds
-
-Initiating PH iteration=21
-2014-06-12 14:57:26.279649: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpge1YnF.tmpobgGH5.pyomo.lp
-2014-06-12 14:57:26.298565: Solve completed - number of solutions=1
-2014-06-12 14:57:26.313065: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpGQWnVW.tmpKpcdte.pyomo.lp
-2014-06-12 14:57:26.331220: Solve completed - number of solutions=1
-2014-06-12 14:57:26.345419: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmplkm4NC.tmpa6iNMj.pyomo.lp
-2014-06-12 14:57:26.365238: Solve completed - number of solutions=1
-Computed objective lower bound=-110971.6327
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-2014-06-12 14:57:26.411406: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpzuaDc8.tmp49vqrj.pyomo.lp
-2014-06-12 14:57:26.433662: Solve completed - number of solutions=1
-2014-06-12 14:57:26.448319: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpYntLps.tmpCCJQVT.pyomo.lp
-2014-06-12 14:57:26.471183: Solve completed - number of solutions=1
-2014-06-12 14:57:26.486603: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpg66rw7.tmpk1bYIy.pyomo.lp
-2014-06-12 14:57:26.508964: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0546 First stage cost avg= 108604.4548 Max-Min= 2445.40
-Cumulative run-time=5.17 seconds
-
-Initiating PH iteration=22
-2014-06-12 14:57:26.521611: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpCU6QZ2.tmppt6_Bg.pyomo.lp
-2014-06-12 14:57:26.539241: Solve completed - number of solutions=1
-2014-06-12 14:57:26.553363: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpdl8cCd.tmpeGn75g.pyomo.lp
-2014-06-12 14:57:26.570864: Solve completed - number of solutions=1
-2014-06-12 14:57:26.585207: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpajJpJO.tmpMG1abb.pyomo.lp
-2014-06-12 14:57:26.603096: Solve completed - number of solutions=1
-Computed objective lower bound=-111036.8465
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-2014-06-12 14:57:26.680733: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpwl1Dpk.tmpqhVBzM.pyomo.lp
-2014-06-12 14:57:26.704332: Solve completed - number of solutions=1
-2014-06-12 14:57:26.720237: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp0bScyI.tmpGFfpYw.pyomo.lp
-2014-06-12 14:57:26.743119: Solve completed - number of solutions=1
-2014-06-12 14:57:26.758426: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpqm_Tb0.tmpLgtyvy.pyomo.lp
-2014-06-12 14:57:26.779375: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0556 First stage cost avg= 108527.2174 Max-Min= 2487.05
-Cumulative run-time=5.44 seconds
-
-Initiating PH iteration=23
-2014-06-12 14:57:26.793115: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpiLbiXW.tmpxy1WLC.pyomo.lp
-2014-06-12 14:57:26.811505: Solve completed - number of solutions=1
-2014-06-12 14:57:26.827045: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpjO6Ai6.tmpXzlVl_.pyomo.lp
-2014-06-12 14:57:26.847229: Solve completed - number of solutions=1
-2014-06-12 14:57:26.861912: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp15TuqW.tmpW10dOu.pyomo.lp
-2014-06-12 14:57:26.879788: Solve completed - number of solutions=1
-Computed objective lower bound=-111046.0537
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-2014-06-12 14:57:26.927745: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpm79MI7.tmpeonnxF.pyomo.lp
-2014-06-12 14:57:26.947314: Solve completed - number of solutions=1
-2014-06-12 14:57:26.961303: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpvxCELa.tmp0jTsa3.pyomo.lp
-2014-06-12 14:57:26.983590: Solve completed - number of solutions=1
-2014-06-12 14:57:26.997731: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpUWfv1i.tmpON6Q6W.pyomo.lp
-2014-06-12 14:57:27.021089: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0564 First stage cost avg= 108458.0853 Max-Min= 2512.69
-Cumulative run-time=5.68 seconds
-
-Initiating PH iteration=24
-2014-06-12 14:57:27.035024: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpIyQneB.tmpvw4xMO.pyomo.lp
-2014-06-12 14:57:27.055194: Solve completed - number of solutions=1
-2014-06-12 14:57:27.069715: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpDB8mM3.tmpTJgOTV.pyomo.lp
-2014-06-12 14:57:27.087713: Solve completed - number of solutions=1
-2014-06-12 14:57:27.102507: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpUsM2Gy.tmp8rVxQp.pyomo.lp
-2014-06-12 14:57:27.121074: Solve completed - number of solutions=1
-Computed objective lower bound=-111045.3417
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-2014-06-12 14:57:27.167879: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp19maBT.tmpbHsLeW.pyomo.lp
-2014-06-12 14:57:27.189371: Solve completed - number of solutions=1
-2014-06-12 14:57:27.204631: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpcWVQOA.tmpygbAkF.pyomo.lp
-2014-06-12 14:57:27.228366: Solve completed - number of solutions=1
-2014-06-12 14:57:27.243980: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpDXzrCU.tmpEq09NJ.pyomo.lp
-2014-06-12 14:57:27.265024: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0569 First stage cost avg= 108404.1369 Max-Min= 2524.20
-Cumulative run-time=5.93 seconds
-
-Initiating PH iteration=25
-2014-06-12 14:57:27.278588: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpUPfvu6.tmpixtrsO.pyomo.lp
-2014-06-12 14:57:27.298212: Solve completed - number of solutions=1
-2014-06-12 14:57:27.313532: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpbBBltt.tmpAhg_jz.pyomo.lp
-2014-06-12 14:57:27.333780: Solve completed - number of solutions=1
-2014-06-12 14:57:27.348823: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpp7KqfE.tmpluRBEo.pyomo.lp
-2014-06-12 14:57:27.368462: Solve completed - number of solutions=1
-Computed objective lower bound=-111047.7122
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-2014-06-12 14:57:27.417783: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpSrH9fR.tmpUrFr6Q.pyomo.lp
-2014-06-12 14:57:27.440273: Solve completed - number of solutions=1
-2014-06-12 14:57:27.454476: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp6WRCS3.tmppSm_bP.pyomo.lp
-2014-06-12 14:57:27.475647: Solve completed - number of solutions=1
-2014-06-12 14:57:27.490035: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpx1szID.tmpkh7JTW.pyomo.lp
-2014-06-12 14:57:27.512040: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0570 First stage cost avg= 108367.4323 Max-Min= 2525.00
-Cumulative run-time=6.17 seconds
-
-Initiating PH iteration=26
-2014-06-12 14:57:27.525954: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpAsdMUO.tmpuE8qOE.pyomo.lp
-2014-06-12 14:57:27.543530: Solve completed - number of solutions=1
-2014-06-12 14:57:27.557779: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp4Dw9aN.tmp3W5lXO.pyomo.lp
-2014-06-12 14:57:27.575938: Solve completed - number of solutions=1
-2014-06-12 14:57:27.590675: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpd6CyBW.tmpLi6SKO.pyomo.lp
-2014-06-12 14:57:27.609713: Solve completed - number of solutions=1
-Computed objective lower bound=-111034.9673
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-2014-06-12 14:57:27.655845: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpK1YjI4.tmpKDY4Qb.pyomo.lp
-2014-06-12 14:57:27.677621: Solve completed - number of solutions=1
-2014-06-12 14:57:27.693043: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpotZIkj.tmp4gASiq.pyomo.lp
-2014-06-12 14:57:27.714728: Solve completed - number of solutions=1
-2014-06-12 14:57:27.729189: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpP6rwPr.tmpwyt5aZ.pyomo.lp
-2014-06-12 14:57:27.750152: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0570 First stage cost avg= 108346.6000 Max-Min= 2518.95
-Cumulative run-time=6.41 seconds
-
-Initiating PH iteration=27
-2014-06-12 14:57:27.763393: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpwJioJV.tmpyE6BIX.pyomo.lp
-2014-06-12 14:57:27.782118: Solve completed - number of solutions=1
-2014-06-12 14:57:27.797063: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp3zeeJh.tmpmkn4kd.pyomo.lp
-2014-06-12 14:57:27.814088: Solve completed - number of solutions=1
-2014-06-12 14:57:27.828129: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpeMPgSO.tmpoabfPx.pyomo.lp
-2014-06-12 14:57:27.849618: Solve completed - number of solutions=1
-Computed objective lower bound=-111015.0786
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-2014-06-12 14:57:27.896631: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmphhZYxU.tmpb86q5S.pyomo.lp
-2014-06-12 14:57:27.917659: Solve completed - number of solutions=1
-2014-06-12 14:57:27.931527: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpgD7tMg.tmpIfPrYO.pyomo.lp
-2014-06-12 14:57:27.953994: Solve completed - number of solutions=1
-2014-06-12 14:57:27.969770: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpNsu2nI.tmpiOXNYJ.pyomo.lp
-2014-06-12 14:57:27.990977: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0569 First stage cost avg= 108338.3666 Max-Min= 2509.55
-Cumulative run-time=6.65 seconds
-
-Initiating PH iteration=28
-2014-06-12 14:57:28.003799: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpXVA4mG.tmpOngGd7.pyomo.lp
-2014-06-12 14:57:28.024235: Solve completed - number of solutions=1
-2014-06-12 14:57:28.038436: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpwORMjz.tmpw4JQzk.pyomo.lp
-2014-06-12 14:57:28.055990: Solve completed - number of solutions=1
-2014-06-12 14:57:28.070227: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp_7MDP4.tmpzuNhMC.pyomo.lp
-2014-06-12 14:57:28.088458: Solve completed - number of solutions=1
-Computed objective lower bound=-110994.0589
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-2014-06-12 14:57:28.136616: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpFXKIqE.tmpFB9f7C.pyomo.lp
-2014-06-12 14:57:28.158377: Solve completed - number of solutions=1
-2014-06-12 14:57:28.172300: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpKEQp59.tmpSQLZrV.pyomo.lp
-2014-06-12 14:57:28.192250: Solve completed - number of solutions=1
-2014-06-12 14:57:28.206193: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpUFN13N.tmpM06wQu.pyomo.lp
-2014-06-12 14:57:28.226332: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0568 First stage cost avg= 108338.8015 Max-Min= 2499.51
-Cumulative run-time=6.89 seconds
-
-Initiating PH iteration=29
-2014-06-12 14:57:28.239203: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpMJPoMi.tmpOZ05Vw.pyomo.lp
-2014-06-12 14:57:28.256996: Solve completed - number of solutions=1
-2014-06-12 14:57:28.272740: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpQHLgle.tmp9kQy7z.pyomo.lp
-2014-06-12 14:57:28.291761: Solve completed - number of solutions=1
-2014-06-12 14:57:28.306052: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpZpxZOp.tmpuDVbSz.pyomo.lp
-2014-06-12 14:57:28.324059: Solve completed - number of solutions=1
-Computed objective lower bound=-110975.7531
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-2014-06-12 14:57:28.371512: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpuKlPOQ.tmp3tITyd.pyomo.lp
-2014-06-12 14:57:28.392766: Solve completed - number of solutions=1
-2014-06-12 14:57:28.406749: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp6256be.tmpjlzWtc.pyomo.lp
-2014-06-12 14:57:28.426329: Solve completed - number of solutions=1
-2014-06-12 14:57:28.440447: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpljS69g.tmpfzEF33.pyomo.lp
-2014-06-12 14:57:28.461116: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0566 First stage cost avg= 108344.1874 Max-Min= 2490.61
-Cumulative run-time=7.12 seconds
-
-Initiating PH iteration=30
-2014-06-12 14:57:28.491502: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpO3LqTb.tmp5QiQbB.pyomo.lp
-2014-06-12 14:57:28.509122: Solve completed - number of solutions=1
-2014-06-12 14:57:28.523044: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpSR8DvW.tmpbqEhAN.pyomo.lp
-2014-06-12 14:57:28.541157: Solve completed - number of solutions=1
-2014-06-12 14:57:28.555088: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpwccs3Y.tmpYE3FBW.pyomo.lp
-2014-06-12 14:57:28.572751: Solve completed - number of solutions=1
-Computed objective lower bound=-110962.0614
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-2014-06-12 14:57:28.618669: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmphwZdoc.tmpH8dYTR.pyomo.lp
-2014-06-12 14:57:28.638159: Solve completed - number of solutions=1
-2014-06-12 14:57:28.652138: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp6Dmnth.tmpC3vGqA.pyomo.lp
-2014-06-12 14:57:28.673809: Solve completed - number of solutions=1
-2014-06-12 14:57:28.687907: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpDsCXQW.tmpcAYI8W.pyomo.lp
-2014-06-12 14:57:28.708243: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0564 First stage cost avg= 108351.5198 Max-Min= 2483.77
-Cumulative run-time=7.37 seconds
-
-Initiating PH iteration=31
-2014-06-12 14:57:28.720997: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpYHnFyi.tmpL0jTDs.pyomo.lp
-2014-06-12 14:57:28.739350: Solve completed - number of solutions=1
-2014-06-12 14:57:28.755210: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpspLqWi.tmpV_0tey.pyomo.lp
-2014-06-12 14:57:28.773667: Solve completed - number of solutions=1
-2014-06-12 14:57:28.788691: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpvxn9Rv.tmpAwNfpm.pyomo.lp
-2014-06-12 14:57:28.806618: Solve completed - number of solutions=1
-Computed objective lower bound=-110953.3937
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-2014-06-12 14:57:28.852784: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp89Cp8j.tmp_2j1Pd.pyomo.lp
-2014-06-12 14:57:28.872154: Solve completed - number of solutions=1
-2014-06-12 14:57:28.886188: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp4zO3YV.tmpSeo8JD.pyomo.lp
-2014-06-12 14:57:28.907651: Solve completed - number of solutions=1
-2014-06-12 14:57:28.922487: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpPw6Ntx.tmpRYLz6l.pyomo.lp
-2014-06-12 14:57:28.945907: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108358.6998 Max-Min= 2479.23
-Cumulative run-time=7.61 seconds
-
-Initiating PH iteration=32
-2014-06-12 14:57:28.959870: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp87r0yw.tmpv4LfR7.pyomo.lp
-2014-06-12 14:57:28.980083: Solve completed - number of solutions=1
-2014-06-12 14:57:28.994364: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpl8WBKf.tmpPnFlR6.pyomo.lp
-2014-06-12 14:57:29.013600: Solve completed - number of solutions=1
-2014-06-12 14:57:29.029031: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpug8_LK.tmpRLAVsU.pyomo.lp
-2014-06-12 14:57:29.048864: Solve completed - number of solutions=1
-Computed objective lower bound=-110949.1875
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-2014-06-12 14:57:29.096363: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp_awPL3.tmpUMyVVl.pyomo.lp
-2014-06-12 14:57:29.116286: Solve completed - number of solutions=1
-2014-06-12 14:57:29.130634: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmplCWfEb.tmpIK0LBc.pyomo.lp
-2014-06-12 14:57:29.151187: Solve completed - number of solutions=1
-2014-06-12 14:57:29.165287: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmph9USkg.tmpRadOt3.pyomo.lp
-2014-06-12 14:57:29.185982: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0562 First stage cost avg= 108364.5087 Max-Min= 2476.77
-Cumulative run-time=7.85 seconds
-
-Initiating PH iteration=33
-2014-06-12 14:57:29.199137: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp1Bfkdb.tmppHUgA5.pyomo.lp
-2014-06-12 14:57:29.217313: Solve completed - number of solutions=1
-2014-06-12 14:57:29.232447: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpctlckF.tmpFqWn3q.pyomo.lp
-2014-06-12 14:57:29.249722: Solve completed - number of solutions=1
-2014-06-12 14:57:29.263654: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpHxU26r.tmphDuwxq.pyomo.lp
-2014-06-12 14:57:29.281413: Solve completed - number of solutions=1
-Computed objective lower bound=-110948.3798
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-2014-06-12 14:57:29.326072: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpjSdj_U.tmpgOkhu3.pyomo.lp
-2014-06-12 14:57:29.346880: Solve completed - number of solutions=1
-2014-06-12 14:57:29.361087: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpr3RNx1.tmpFRPuCq.pyomo.lp
-2014-06-12 14:57:29.381363: Solve completed - number of solutions=1
-2014-06-12 14:57:29.395628: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpuYuzpb.tmpYTxXwL.pyomo.lp
-2014-06-12 14:57:29.415692: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0562 First stage cost avg= 108368.4521 Max-Min= 2475.96
-Cumulative run-time=8.08 seconds
-
-Initiating PH iteration=34
-2014-06-12 14:57:29.428769: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmprOz9sH.tmpmYeWGY.pyomo.lp
-2014-06-12 14:57:29.446448: Solve completed - number of solutions=1
-2014-06-12 14:57:29.460852: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpath29R.tmphuTQEY.pyomo.lp
-2014-06-12 14:57:29.477955: Solve completed - number of solutions=1
-2014-06-12 14:57:29.492540: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpFdpXVw.tmpORYKoM.pyomo.lp
-2014-06-12 14:57:29.509711: Solve completed - number of solutions=1
-Computed objective lower bound=-110949.7749
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-2014-06-12 14:57:29.555000: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpzaQPqp.tmpGap2fK.pyomo.lp
-2014-06-12 14:57:29.574805: Solve completed - number of solutions=1
-2014-06-12 14:57:29.588895: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpR33dPy.tmpzXLxrW.pyomo.lp
-2014-06-12 14:57:29.609256: Solve completed - number of solutions=1
-2014-06-12 14:57:29.623641: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpryQ4YP.tmphVENaH.pyomo.lp
-2014-06-12 14:57:29.645162: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0562 First stage cost avg= 108370.5509 Max-Min= 2476.24
-Cumulative run-time=8.31 seconds
-
-Initiating PH iteration=35
-2014-06-12 14:57:29.658454: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpabSjCW.tmpYyV25v.pyomo.lp
-2014-06-12 14:57:29.676986: Solve completed - number of solutions=1
-2014-06-12 14:57:29.691013: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpsdumTz.tmp8NAg6L.pyomo.lp
-2014-06-12 14:57:29.708542: Solve completed - number of solutions=1
-2014-06-12 14:57:29.722849: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpk_9APC.tmpcOgPQ2.pyomo.lp
-2014-06-12 14:57:29.741305: Solve completed - number of solutions=1
-Computed objective lower bound=-110952.2889
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-2014-06-12 14:57:29.820454: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpG9ndWO.tmpmmpq_7.pyomo.lp
-2014-06-12 14:57:29.840411: Solve completed - number of solutions=1
-2014-06-12 14:57:29.854764: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpJmmjRe.tmppHWoyZ.pyomo.lp
-2014-06-12 14:57:29.874767: Solve completed - number of solutions=1
-2014-06-12 14:57:29.889099: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpYmw3aG.tmp6Q0cZi.pyomo.lp
-2014-06-12 14:57:29.909995: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0562 First stage cost avg= 108371.1311 Max-Min= 2477.13
-Cumulative run-time=8.57 seconds
-
-Initiating PH iteration=36
-2014-06-12 14:57:29.923727: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpgKcdMn.tmpn7XB1c.pyomo.lp
-2014-06-12 14:57:29.941728: Solve completed - number of solutions=1
-2014-06-12 14:57:29.955855: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpvJh8VZ.tmpJmu5oW.pyomo.lp
-2014-06-12 14:57:29.973398: Solve completed - number of solutions=1
-2014-06-12 14:57:29.988559: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpwUVmZl.tmpGDBxLc.pyomo.lp
-2014-06-12 14:57:30.006688: Solve completed - number of solutions=1
-Computed objective lower bound=-110955.0811
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-2014-06-12 14:57:30.054258: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpDFsLFC.tmphGYlEP.pyomo.lp
-2014-06-12 14:57:30.075166: Solve completed - number of solutions=1
-2014-06-12 14:57:30.090285: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpEBM7xO.tmpjDSh41.pyomo.lp
-2014-06-12 14:57:30.110754: Solve completed - number of solutions=1
-2014-06-12 14:57:30.126126: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpLH3Kwd.tmpq3qqIH.pyomo.lp
-2014-06-12 14:57:30.146332: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0562 First stage cost avg= 108370.6488 Max-Min= 2478.22
-Cumulative run-time=8.81 seconds
-
-Initiating PH iteration=37
-2014-06-12 14:57:30.159042: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpzq1njZ.tmpQBuOna.pyomo.lp
-2014-06-12 14:57:30.176281: Solve completed - number of solutions=1
-2014-06-12 14:57:30.190373: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp5YCj7A.tmplQskvz.pyomo.lp
-2014-06-12 14:57:30.207537: Solve completed - number of solutions=1
-2014-06-12 14:57:30.221725: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpkMmT5z.tmpVyH0NW.pyomo.lp
-2014-06-12 14:57:30.238738: Solve completed - number of solutions=1
-Computed objective lower bound=-110957.5941
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-2014-06-12 14:57:30.316316: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpP7qPEF.tmpruInNW.pyomo.lp
-2014-06-12 14:57:30.336708: Solve completed - number of solutions=1
-2014-06-12 14:57:30.350795: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpJ28cck.tmpqgN52r.pyomo.lp
-2014-06-12 14:57:30.371022: Solve completed - number of solutions=1
-2014-06-12 14:57:30.385214: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpklYLEA.tmpk4dk30.pyomo.lp
-2014-06-12 14:57:30.405994: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108369.5627 Max-Min= 2479.26
-Cumulative run-time=9.07 seconds
-
-Initiating PH iteration=38
-2014-06-12 14:57:30.418695: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp9SIVYS.tmpFNS0P9.pyomo.lp
-2014-06-12 14:57:30.438138: Solve completed - number of solutions=1
-2014-06-12 14:57:30.452743: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpZ9yIt5.tmpBojrgj.pyomo.lp
-2014-06-12 14:57:30.470006: Solve completed - number of solutions=1
-2014-06-12 14:57:30.484348: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpKdOxGp.tmpGs1WB5.pyomo.lp
-2014-06-12 14:57:30.502199: Solve completed - number of solutions=1
-Computed objective lower bound=-110959.5335
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-2014-06-12 14:57:30.550185: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpbpm1bF.tmpmCIqAS.pyomo.lp
-2014-06-12 14:57:30.570551: Solve completed - number of solutions=1
-2014-06-12 14:57:30.584556: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp_myR50.tmplyOViM.pyomo.lp
-2014-06-12 14:57:30.605538: Solve completed - number of solutions=1
-2014-06-12 14:57:30.620636: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpjbhM5z.tmpsCWck8.pyomo.lp
-2014-06-12 14:57:30.640421: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108368.2571 Max-Min= 2480.08
-Cumulative run-time=9.30 seconds
-
-Initiating PH iteration=39
-2014-06-12 14:57:30.653312: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpEfHiyP.tmpwLeHYa.pyomo.lp
-2014-06-12 14:57:30.672532: Solve completed - number of solutions=1
-2014-06-12 14:57:30.688696: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpUQ9IMx.tmpW9Umbg.pyomo.lp
-2014-06-12 14:57:30.706048: Solve completed - number of solutions=1
-2014-06-12 14:57:30.720601: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpDAGtiw.tmpXyLzMg.pyomo.lp
-2014-06-12 14:57:30.738109: Solve completed - number of solutions=1
-Computed objective lower bound=-110960.8119
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-2014-06-12 14:57:30.784655: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp9hWzXi.tmpTmO56A.pyomo.lp
-2014-06-12 14:57:30.805575: Solve completed - number of solutions=1
-2014-06-12 14:57:30.819666: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpGK7D_j.tmpQ3BwGz.pyomo.lp
-2014-06-12 14:57:30.840813: Solve completed - number of solutions=1
-2014-06-12 14:57:30.855816: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpls8RR5.tmpJpQ5pl.pyomo.lp
-2014-06-12 14:57:30.876364: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108367.0073 Max-Min= 2480.63
-Cumulative run-time=9.54 seconds
-
-Initiating PH iteration=40
-2014-06-12 14:57:30.890184: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpKB1Qvm.tmpGblpfH.pyomo.lp
-2014-06-12 14:57:30.907564: Solve completed - number of solutions=1
-2014-06-12 14:57:30.922712: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpIpl8KZ.tmpIwoOr3.pyomo.lp
-2014-06-12 14:57:30.940167: Solve completed - number of solutions=1
-2014-06-12 14:57:30.954339: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpvfIr7H.tmp8YG7_E.pyomo.lp
-2014-06-12 14:57:30.971709: Solve completed - number of solutions=1
-Computed objective lower bound=-110961.4827
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-2014-06-12 14:57:31.018441: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpfUf7hD.tmpqCK3OA.pyomo.lp
-2014-06-12 14:57:31.039641: Solve completed - number of solutions=1
-2014-06-12 14:57:31.053857: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpxSCxeA.tmpIXVTVP.pyomo.lp
-2014-06-12 14:57:31.073819: Solve completed - number of solutions=1
-2014-06-12 14:57:31.087793: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpIDoz7q.tmpoNdN7U.pyomo.lp
-2014-06-12 14:57:31.107562: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108365.9766 Max-Min= 2480.92
-Cumulative run-time=9.77 seconds
-
-Initiating PH iteration=41
-2014-06-12 14:57:31.121275: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpM6U9QX.tmpnwiv3E.pyomo.lp
-2014-06-12 14:57:31.139587: Solve completed - number of solutions=1
-2014-06-12 14:57:31.153568: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmptSVKA4.tmp9NGhIp.pyomo.lp
-2014-06-12 14:57:31.171159: Solve completed - number of solutions=1
-2014-06-12 14:57:31.185253: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmptHCmvK.tmpRLxZwL.pyomo.lp
-2014-06-12 14:57:31.202584: Solve completed - number of solutions=1
-Computed objective lower bound=-110961.6761
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-2014-06-12 14:57:31.249374: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpHzBKJc.tmph_u_8f.pyomo.lp
-2014-06-12 14:57:31.270845: Solve completed - number of solutions=1
-2014-06-12 14:57:31.285501: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpK61cXs.tmpvqZMDh.pyomo.lp
-2014-06-12 14:57:31.305623: Solve completed - number of solutions=1
-2014-06-12 14:57:31.319536: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmps5v77U.tmpcPmAXV.pyomo.lp
-2014-06-12 14:57:31.339936: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108365.2327 Max-Min= 2481.01
-Cumulative run-time=10.00 seconds
-
-Initiating PH iteration=42
-2014-06-12 14:57:31.352660: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpgukAYO.tmpOtKSSL.pyomo.lp
-2014-06-12 14:57:31.370589: Solve completed - number of solutions=1
-2014-06-12 14:57:31.384743: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpzlYPUs.tmpB301D4.pyomo.lp
-2014-06-12 14:57:31.402965: Solve completed - number of solutions=1
-2014-06-12 14:57:31.418073: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpMLSRUK.tmpnnnJqV.pyomo.lp
-2014-06-12 14:57:31.436811: Solve completed - number of solutions=1
-Computed objective lower bound=-110961.5481
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-2014-06-12 14:57:31.514784: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpJ0kyHT.tmpzMLp9m.pyomo.lp
-2014-06-12 14:57:31.534860: Solve completed - number of solutions=1
-2014-06-12 14:57:31.548798: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpa1ERC0.tmp6jbdW1.pyomo.lp
-2014-06-12 14:57:31.569944: Solve completed - number of solutions=1
-2014-06-12 14:57:31.584271: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpfkrT6z.tmp5KhScR.pyomo.lp
-2014-06-12 14:57:31.605254: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.7733 Max-Min= 2480.94
-Cumulative run-time=10.27 seconds
-
-Initiating PH iteration=43
-2014-06-12 14:57:31.618587: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp_SOQ65.tmpeO7Gpg.pyomo.lp
-2014-06-12 14:57:31.637409: Solve completed - number of solutions=1
-2014-06-12 14:57:31.652280: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpjrNglv.tmppcMBFL.pyomo.lp
-2014-06-12 14:57:31.669439: Solve completed - number of solutions=1
-2014-06-12 14:57:31.683498: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpvWO8DU.tmpdEwc6R.pyomo.lp
-2014-06-12 14:57:31.700741: Solve completed - number of solutions=1
-Computed objective lower bound=-110961.2454
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-2014-06-12 14:57:31.747191: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpWICkDv.tmp8nY8Ei.pyomo.lp
-2014-06-12 14:57:31.767094: Solve completed - number of solutions=1
-2014-06-12 14:57:31.781081: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpBw5zu3.tmpRF8GqU.pyomo.lp
-2014-06-12 14:57:31.800959: Solve completed - number of solutions=1
-2014-06-12 14:57:31.814930: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpgbCBvx.tmpnTi0Wy.pyomo.lp
-2014-06-12 14:57:31.834930: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.5535 Max-Min= 2480.80
-Cumulative run-time=10.50 seconds
-
-Initiating PH iteration=44
-2014-06-12 14:57:31.848817: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpBwWclG.tmpZEZLMf.pyomo.lp
-2014-06-12 14:57:31.867272: Solve completed - number of solutions=1
-2014-06-12 14:57:31.881750: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpQHSFP6.tmp9s9tIZ.pyomo.lp
-2014-06-12 14:57:31.899729: Solve completed - number of solutions=1
-2014-06-12 14:57:31.914433: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpcKIEs_.tmp8NIeEC.pyomo.lp
-2014-06-12 14:57:31.933922: Solve completed - number of solutions=1
-Computed objective lower bound=-110960.8855
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-2014-06-12 14:57:31.981442: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpOH18cQ.tmpfYDTCZ.pyomo.lp
-2014-06-12 14:57:32.002083: Solve completed - number of solutions=1
-2014-06-12 14:57:32.016285: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpd4d76P.tmpZhLRX5.pyomo.lp
-2014-06-12 14:57:32.037577: Solve completed - number of solutions=1
-2014-06-12 14:57:32.053076: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpI_ZjV4.tmpnz9XFy.pyomo.lp
-2014-06-12 14:57:32.073019: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.5090 Max-Min= 2480.63
-Cumulative run-time=10.74 seconds
-
-Initiating PH iteration=45
-2014-06-12 14:57:32.085788: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpFASdUe.tmpo_WHMx.pyomo.lp
-2014-06-12 14:57:32.103480: Solve completed - number of solutions=1
-2014-06-12 14:57:32.117406: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmptD6HIo.tmppyHR27.pyomo.lp
-2014-06-12 14:57:32.134551: Solve completed - number of solutions=1
-2014-06-12 14:57:32.148612: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmprfYtk6.tmp8AOoYP.pyomo.lp
-2014-06-12 14:57:32.166109: Solve completed - number of solutions=1
-Computed objective lower bound=-110960.5490
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-2014-06-12 14:57:32.211002: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmppI2kJ1.tmpTvkN29.pyomo.lp
-2014-06-12 14:57:32.231645: Solve completed - number of solutions=1
-2014-06-12 14:57:32.246467: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpRIP8Yb.tmpbMMyQV.pyomo.lp
-2014-06-12 14:57:32.266682: Solve completed - number of solutions=1
-2014-06-12 14:57:32.280660: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpiYdkey.tmpx5EAQp.pyomo.lp
-2014-06-12 14:57:32.301097: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.5736 Max-Min= 2480.47
-Cumulative run-time=10.96 seconds
-
-Initiating PH iteration=46
-2014-06-12 14:57:32.314688: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpoIWk95.tmp9YHNSs.pyomo.lp
-2014-06-12 14:57:32.332143: Solve completed - number of solutions=1
-2014-06-12 14:57:32.346535: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpoI0zJa.tmpHXHMaA.pyomo.lp
-2014-06-12 14:57:32.363840: Solve completed - number of solutions=1
-2014-06-12 14:57:32.378001: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpWLkjJx.tmpUEWYT2.pyomo.lp
-2014-06-12 14:57:32.395299: Solve completed - number of solutions=1
-Computed objective lower bound=-110960.2811
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-2014-06-12 14:57:32.442205: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpNknP5b.tmpLjHIyw.pyomo.lp
-2014-06-12 14:57:32.461963: Solve completed - number of solutions=1
-2014-06-12 14:57:32.476429: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpLbkbx3.tmpEE3eon.pyomo.lp
-2014-06-12 14:57:32.496513: Solve completed - number of solutions=1
-2014-06-12 14:57:32.510457: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpeGfEja.tmppeOEwk.pyomo.lp
-2014-06-12 14:57:32.531726: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.6907 Max-Min= 2480.34
-Cumulative run-time=11.19 seconds
-
-Initiating PH iteration=47
-2014-06-12 14:57:32.545034: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpzRt10j.tmpIlYiL2.pyomo.lp
-2014-06-12 14:57:32.563919: Solve completed - number of solutions=1
-2014-06-12 14:57:32.579256: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpRtefcV.tmpRQFhmW.pyomo.lp
-2014-06-12 14:57:32.596459: Solve completed - number of solutions=1
-2014-06-12 14:57:32.610347: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpsGIAb0.tmptod2S7.pyomo.lp
-2014-06-12 14:57:32.628975: Solve completed - number of solutions=1
-Computed objective lower bound=-110960.0984
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-2014-06-12 14:57:32.675821: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpxNBPF1.tmpt3skAl.pyomo.lp
-2014-06-12 14:57:32.697472: Solve completed - number of solutions=1
-2014-06-12 14:57:32.712653: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpsXS3Qq.tmpTsLDx9.pyomo.lp
-2014-06-12 14:57:32.732997: Solve completed - number of solutions=1
-2014-06-12 14:57:32.747276: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp20bsNv.tmpOpMama.pyomo.lp
-2014-06-12 14:57:32.767817: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.8179 Max-Min= 2480.24
-Cumulative run-time=11.43 seconds
-
-Initiating PH iteration=48
-2014-06-12 14:57:32.780972: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp2249Eb.tmperEGxv.pyomo.lp
-2014-06-12 14:57:32.798911: Solve completed - number of solutions=1
-2014-06-12 14:57:32.813963: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp7hdAg9.tmpnfAdyu.pyomo.lp
-2014-06-12 14:57:32.831948: Solve completed - number of solutions=1
-2014-06-12 14:57:32.846216: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpLbtuaV.tmpCkPvF8.pyomo.lp
-2014-06-12 14:57:32.864206: Solve completed - number of solutions=1
-Computed objective lower bound=-110959.9970
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-2014-06-12 14:57:32.910867: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp0dTXTK.tmpR3ZB9z.pyomo.lp
-2014-06-12 14:57:32.931977: Solve completed - number of solutions=1
-2014-06-12 14:57:32.946570: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpT6N81_.tmpXwvf65.pyomo.lp
-2014-06-12 14:57:32.967533: Solve completed - number of solutions=1
-2014-06-12 14:57:32.981579: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpK55rLM.tmpinRlln.pyomo.lp
-2014-06-12 14:57:33.001449: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9287 Max-Min= 2480.19
-Cumulative run-time=11.66 seconds
-
-Initiating PH iteration=49
-2014-06-12 14:57:33.014456: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpdvqtT9.tmpjnkxpP.pyomo.lp
-2014-06-12 14:57:33.032107: Solve completed - number of solutions=1
-2014-06-12 14:57:33.046063: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpQh3hfY.tmpFqVCXE.pyomo.lp
-2014-06-12 14:57:33.063839: Solve completed - number of solutions=1
-2014-06-12 14:57:33.077788: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmplHZV1u.tmpRiaaRN.pyomo.lp
-2014-06-12 14:57:33.095164: Solve completed - number of solutions=1
-Computed objective lower bound=-110959.9616
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-2014-06-12 14:57:33.141510: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpfoMuQY.tmpCtyNrE.pyomo.lp
-2014-06-12 14:57:33.162577: Solve completed - number of solutions=1
-2014-06-12 14:57:33.177500: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpi5sglf.tmpRvYlVP.pyomo.lp
-2014-06-12 14:57:33.198885: Solve completed - number of solutions=1
-2014-06-12 14:57:33.212879: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpqs5Xnv.tmpOR9Otl.pyomo.lp
-2014-06-12 14:57:33.233476: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108365.0097 Max-Min= 2480.16
-Cumulative run-time=11.90 seconds
-
-Initiating PH iteration=50
-2014-06-12 14:57:33.246242: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpNvPSRZ.tmp0GE77N.pyomo.lp
-2014-06-12 14:57:33.263880: Solve completed - number of solutions=1
-2014-06-12 14:57:33.277910: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpKyK8wx.tmpSYPrUt.pyomo.lp
-2014-06-12 14:57:33.295096: Solve completed - number of solutions=1
-2014-06-12 14:57:33.309130: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmph5qRwq.tmpDOndtD.pyomo.lp
-2014-06-12 14:57:33.328194: Solve completed - number of solutions=1
-Computed objective lower bound=-110959.9725
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-2014-06-12 14:57:33.406945: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpLpXPM_.tmpIyZ0a2.pyomo.lp
-2014-06-12 14:57:33.426595: Solve completed - number of solutions=1
-2014-06-12 14:57:33.441114: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpzO6irq.tmpTCRO0z.pyomo.lp
-2014-06-12 14:57:33.461504: Solve completed - number of solutions=1
-2014-06-12 14:57:33.476621: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpejQntK.tmpd7uiKL.pyomo.lp
-2014-06-12 14:57:33.497843: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108365.0582 Max-Min= 2480.16
-Cumulative run-time=12.16 seconds
-
-Initiating PH iteration=51
-2014-06-12 14:57:33.527784: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpABDcPx.tmptMtccp.pyomo.lp
-2014-06-12 14:57:33.546645: Solve completed - number of solutions=1
-2014-06-12 14:57:33.560970: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpefyU4I.tmpNh2HdW.pyomo.lp
-2014-06-12 14:57:33.578302: Solve completed - number of solutions=1
-2014-06-12 14:57:33.592438: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp6Bhpf3.tmpUlyyIM.pyomo.lp
-2014-06-12 14:57:33.610191: Solve completed - number of solutions=1
-Computed objective lower bound=-110960.0094
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-2014-06-12 14:57:33.687466: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp1FEV5h.tmp7FX6qI.pyomo.lp
-2014-06-12 14:57:33.707568: Solve completed - number of solutions=1
-2014-06-12 14:57:33.721600: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmppp2mQ1.tmpZ6mOut.pyomo.lp
-2014-06-12 14:57:33.741707: Solve completed - number of solutions=1
-2014-06-12 14:57:33.756816: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpIBRiyr.tmp6fx2pr.pyomo.lp
-2014-06-12 14:57:33.778267: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108365.0782 Max-Min= 2480.17
-Cumulative run-time=12.44 seconds
-
-Initiating PH iteration=52
-2014-06-12 14:57:33.791215: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmprQyliv.tmpg2WcM3.pyomo.lp
-2014-06-12 14:57:33.809619: Solve completed - number of solutions=1
-2014-06-12 14:57:33.823841: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpzzKZEs.tmpH9bqJd.pyomo.lp
-2014-06-12 14:57:33.840839: Solve completed - number of solutions=1
-2014-06-12 14:57:33.854852: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmptrzGxj.tmpIc9QSu.pyomo.lp
-2014-06-12 14:57:33.873705: Solve completed - number of solutions=1
-Computed objective lower bound=-110960.0563
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-2014-06-12 14:57:33.952389: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmplTmyBh.tmppHZ5uM.pyomo.lp
-2014-06-12 14:57:33.973035: Solve completed - number of solutions=1
-2014-06-12 14:57:33.987172: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpE5tkJ9.tmp4ijqb7.pyomo.lp
-2014-06-12 14:57:34.007671: Solve completed - number of solutions=1
-2014-06-12 14:57:34.022715: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp0wrUGi.tmpKHsKD3.pyomo.lp
-2014-06-12 14:57:34.043317: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108365.0767 Max-Min= 2480.19
-Cumulative run-time=12.71 seconds
-
-Initiating PH iteration=53
-2014-06-12 14:57:34.056624: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpwuF5Aq.tmp1IBkQT.pyomo.lp
-2014-06-12 14:57:34.076890: Solve completed - number of solutions=1
-2014-06-12 14:57:34.091521: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp8aYZ3j.tmpa5bjeV.pyomo.lp
-2014-06-12 14:57:34.109724: Solve completed - number of solutions=1
-2014-06-12 14:57:34.123833: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpCAFwa6.tmpTRy85M.pyomo.lp
-2014-06-12 14:57:34.141531: Solve completed - number of solutions=1
-Computed objective lower bound=-110960.1019
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-2014-06-12 14:57:34.189267: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpwcDK3J.tmpId5G4X.pyomo.lp
-2014-06-12 14:57:34.211358: Solve completed - number of solutions=1
-2014-06-12 14:57:34.226169: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpezKDky.tmpv2kIcZ.pyomo.lp
-2014-06-12 14:57:34.246106: Solve completed - number of solutions=1
-2014-06-12 14:57:34.260191: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpcbJ5QQ.tmps1C_yF.pyomo.lp
-2014-06-12 14:57:34.280316: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108365.0617 Max-Min= 2480.21
-Cumulative run-time=12.94 seconds
-
-Initiating PH iteration=54
-2014-06-12 14:57:34.293800: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpI4ZT20.tmpZ2Y4B_.pyomo.lp
-2014-06-12 14:57:34.312387: Solve completed - number of solutions=1
-2014-06-12 14:57:34.327096: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmppBz8O3.tmpLUZ2aN.pyomo.lp
-2014-06-12 14:57:34.346260: Solve completed - number of solutions=1
-2014-06-12 14:57:34.360438: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpsDyWUm.tmpLpPq0u.pyomo.lp
-2014-06-12 14:57:34.379248: Solve completed - number of solutions=1
-Computed objective lower bound=-110960.1392
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-2014-06-12 14:57:34.457261: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp6MCtSl.tmpTrQaSe.pyomo.lp
-2014-06-12 14:57:34.477661: Solve completed - number of solutions=1
-2014-06-12 14:57:34.491785: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpgWSezs.tmpT1lX0k.pyomo.lp
-2014-06-12 14:57:34.511384: Solve completed - number of solutions=1
-2014-06-12 14:57:34.525426: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpL7aLts.tmpc8Ndjh.pyomo.lp
-2014-06-12 14:57:34.545448: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108365.0405 Max-Min= 2480.23
-Cumulative run-time=13.21 seconds
-
-Initiating PH iteration=55
-2014-06-12 14:57:34.559211: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp2RP4Wz.tmpF0v_v6.pyomo.lp
-2014-06-12 14:57:34.576715: Solve completed - number of solutions=1
-2014-06-12 14:57:34.590746: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmphIR6Hl.tmpKKnea0.pyomo.lp
-2014-06-12 14:57:34.609419: Solve completed - number of solutions=1
-2014-06-12 14:57:34.624829: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpGFmhw8.tmppKH8_j.pyomo.lp
-2014-06-12 14:57:34.643314: Solve completed - number of solutions=1
-Computed objective lower bound=-110960.1656
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-2014-06-12 14:57:34.721978: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpo8EecZ.tmphAl2b2.pyomo.lp
-2014-06-12 14:57:34.741366: Solve completed - number of solutions=1
-2014-06-12 14:57:34.755623: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpjMOlI7.tmpO06ypc.pyomo.lp
-2014-06-12 14:57:34.775538: Solve completed - number of solutions=1
-2014-06-12 14:57:34.789778: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpqe_cbB.tmpFIkEms.pyomo.lp
-2014-06-12 14:57:34.811823: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108365.0185 Max-Min= 2480.24
-Cumulative run-time=13.47 seconds
-
-Initiating PH iteration=56
-2014-06-12 14:57:34.825347: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpgftVMp.tmpQ3qOT4.pyomo.lp
-2014-06-12 14:57:34.844974: Solve completed - number of solutions=1
-2014-06-12 14:57:34.860608: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpx1aKfl.tmpXuBiQ9.pyomo.lp
-2014-06-12 14:57:34.878324: Solve completed - number of solutions=1
-2014-06-12 14:57:34.893041: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp_iBlT3.tmpLgRjEk.pyomo.lp
-2014-06-12 14:57:34.910740: Solve completed - number of solutions=1
-Computed objective lower bound=-110960.1811
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-2014-06-12 14:57:34.989669: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpckGAoW.tmpOj9W3Y.pyomo.lp
-2014-06-12 14:57:35.011884: Solve completed - number of solutions=1
-2014-06-12 14:57:35.026589: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpugf0N_.tmp1t9MsY.pyomo.lp
-2014-06-12 14:57:35.047211: Solve completed - number of solutions=1
-2014-06-12 14:57:35.061323: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpf07qyt.tmpUMgG8r.pyomo.lp
-2014-06-12 14:57:35.082742: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9993 Max-Min= 2480.24
-Cumulative run-time=13.75 seconds
-
-Initiating PH iteration=57
-2014-06-12 14:57:35.096434: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpJN8jOp.tmp7Yo6DR.pyomo.lp
-2014-06-12 14:57:35.114262: Solve completed - number of solutions=1
-2014-06-12 14:57:35.128575: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpjhfT2k.tmpytx91l.pyomo.lp
-2014-06-12 14:57:35.145969: Solve completed - number of solutions=1
-2014-06-12 14:57:35.160086: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpMN5Yxi.tmpARNvVL.pyomo.lp
-2014-06-12 14:57:35.177386: Solve completed - number of solutions=1
-Computed objective lower bound=-110960.1874
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-2014-06-12 14:57:35.255899: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpxKTx7Z.tmptZRx8L.pyomo.lp
-2014-06-12 14:57:35.277563: Solve completed - number of solutions=1
-2014-06-12 14:57:35.292797: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp11u5S5.tmpGnhkl3.pyomo.lp
-2014-06-12 14:57:35.313100: Solve completed - number of solutions=1
-2014-06-12 14:57:35.327332: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpvdwWVG.tmp6re3as.pyomo.lp
-2014-06-12 14:57:35.348602: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9846 Max-Min= 2480.25
-Cumulative run-time=14.01 seconds
-
-Initiating PH iteration=58
-2014-06-12 14:57:35.362233: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp0zMUmB.tmp9Vcf8C.pyomo.lp
-2014-06-12 14:57:35.379982: Solve completed - number of solutions=1
-2014-06-12 14:57:35.395034: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp0AFhNB.tmpUQwNjT.pyomo.lp
-2014-06-12 14:57:35.412844: Solve completed - number of solutions=1
-2014-06-12 14:57:35.428327: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmprwTjvo.tmpV0TVqA.pyomo.lp
-2014-06-12 14:57:35.445647: Solve completed - number of solutions=1
-Computed objective lower bound=-110960.1871
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-2014-06-12 14:57:35.523985: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpCxIekM.tmpOyxq6L.pyomo.lp
-2014-06-12 14:57:35.544160: Solve completed - number of solutions=1
-2014-06-12 14:57:35.558359: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpEFSpiG.tmpqNPIyy.pyomo.lp
-2014-06-12 14:57:35.578494: Solve completed - number of solutions=1
-2014-06-12 14:57:35.593274: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp7_xgxo.tmp7OGrd3.pyomo.lp
-2014-06-12 14:57:35.613444: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9749 Max-Min= 2480.25
-Cumulative run-time=14.28 seconds
-
-Initiating PH iteration=59
-2014-06-12 14:57:35.626635: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpIp6RLu.tmpXifPCS.pyomo.lp
-2014-06-12 14:57:35.644276: Solve completed - number of solutions=1
-2014-06-12 14:57:35.659297: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpnSAZps.tmpjExmak.pyomo.lp
-2014-06-12 14:57:35.677458: Solve completed - number of solutions=1
-2014-06-12 14:57:35.691501: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpTEj7km.tmp8KwzbG.pyomo.lp
-2014-06-12 14:57:35.711140: Solve completed - number of solutions=1
-Computed objective lower bound=-110960.1829
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-2014-06-12 14:57:35.789858: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpw2zpMs.tmpfRv5p6.pyomo.lp
-2014-06-12 14:57:35.810812: Solve completed - number of solutions=1
-2014-06-12 14:57:35.825525: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpMdRvI7.tmpQKEKEA.pyomo.lp
-2014-06-12 14:57:35.846329: Solve completed - number of solutions=1
-2014-06-12 14:57:35.861151: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpV3RUSZ.tmpfwmrVS.pyomo.lp
-2014-06-12 14:57:35.882384: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9697 Max-Min= 2480.25
-Cumulative run-time=14.55 seconds
-
-Initiating PH iteration=60
-2014-06-12 14:57:35.895782: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpduddaj.tmpqcKYio.pyomo.lp
-2014-06-12 14:57:35.915121: Solve completed - number of solutions=1
-2014-06-12 14:57:35.929638: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpROBUUV.tmpU9zXFe.pyomo.lp
-2014-06-12 14:57:35.949095: Solve completed - number of solutions=1
-2014-06-12 14:57:35.963895: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpNkiOoq.tmpTRkpVX.pyomo.lp
-2014-06-12 14:57:35.981754: Solve completed - number of solutions=1
-Computed objective lower bound=-110960.1770
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-2014-06-12 14:57:36.060322: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpo61nyv.tmpzjJsl9.pyomo.lp
-2014-06-12 14:57:36.080958: Solve completed - number of solutions=1
-2014-06-12 14:57:36.095091: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpf62klb.tmpGICDLa.pyomo.lp
-2014-06-12 14:57:36.115269: Solve completed - number of solutions=1
-2014-06-12 14:57:36.130604: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpa06lui.tmpj2Wjfo.pyomo.lp
-2014-06-12 14:57:36.152781: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9679 Max-Min= 2480.24
-Cumulative run-time=14.82 seconds
-
-Initiating PH iteration=61
-2014-06-12 14:57:36.165633: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmppXIG12.tmpY7ojsf.pyomo.lp
-2014-06-12 14:57:36.182696: Solve completed - number of solutions=1
-2014-06-12 14:57:36.197164: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpUIu_GR.tmpsg4LIy.pyomo.lp
-2014-06-12 14:57:36.215771: Solve completed - number of solutions=1
-2014-06-12 14:57:36.230005: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpuH2pg_.tmpmT3L2B.pyomo.lp
-2014-06-12 14:57:36.248795: Solve completed - number of solutions=1
-Computed objective lower bound=-110960.1710
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-2014-06-12 14:57:36.328151: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp5b81LC.tmpgqj9G_.pyomo.lp
-2014-06-12 14:57:36.348708: Solve completed - number of solutions=1
-2014-06-12 14:57:36.363794: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp82_nsw.tmpQltHgz.pyomo.lp
-2014-06-12 14:57:36.386142: Solve completed - number of solutions=1
-2014-06-12 14:57:36.401018: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpiKELZK.tmp4hAbJt.pyomo.lp
-2014-06-12 14:57:36.421719: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9684 Max-Min= 2480.24
-Cumulative run-time=15.08 seconds
-
-Initiating PH iteration=62
-2014-06-12 14:57:36.434679: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpAJjZVD.tmpndmybv.pyomo.lp
-2014-06-12 14:57:36.453331: Solve completed - number of solutions=1
-2014-06-12 14:57:36.467543: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpiVZSf1.tmpnSTMOI.pyomo.lp
-2014-06-12 14:57:36.485991: Solve completed - number of solutions=1
-2014-06-12 14:57:36.500121: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmplZPhlL.tmpowbflY.pyomo.lp
-2014-06-12 14:57:36.517312: Solve completed - number of solutions=1
-Computed objective lower bound=-110960.1659
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-2014-06-12 14:57:36.596092: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpEYA4Nn.tmpxptl2w.pyomo.lp
-2014-06-12 14:57:36.617330: Solve completed - number of solutions=1
-2014-06-12 14:57:36.631894: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpTPmbv5.tmpqX9NGp.pyomo.lp
-2014-06-12 14:57:36.653388: Solve completed - number of solutions=1
-2014-06-12 14:57:36.667457: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpxfvvDB.tmpOubI5l.pyomo.lp
-2014-06-12 14:57:36.687618: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9701 Max-Min= 2480.24
-Cumulative run-time=15.35 seconds
-
-Initiating PH iteration=63
-2014-06-12 14:57:36.701202: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpBgtRod.tmpGixxSp.pyomo.lp
-2014-06-12 14:57:36.719796: Solve completed - number of solutions=1
-2014-06-12 14:57:36.733883: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpzCAiHz.tmpCDBX77.pyomo.lp
-2014-06-12 14:57:36.751819: Solve completed - number of solutions=1
-2014-06-12 14:57:36.765912: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpMWeP94.tmpWv3rU6.pyomo.lp
-2014-06-12 14:57:36.783409: Solve completed - number of solutions=1
-Computed objective lower bound=-110960.1622
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-2014-06-12 14:57:36.862635: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpxpRZKZ.tmpeNE3_o.pyomo.lp
-2014-06-12 14:57:36.882632: Solve completed - number of solutions=1
-2014-06-12 14:57:36.896591: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpoFRRLp.tmphLMcWK.pyomo.lp
-2014-06-12 14:57:36.916805: Solve completed - number of solutions=1
-2014-06-12 14:57:36.930861: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpi3a0P6.tmpdPsdwS.pyomo.lp
-2014-06-12 14:57:36.951039: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9723 Max-Min= 2480.24
-Cumulative run-time=15.61 seconds
-
-Initiating PH iteration=64
-2014-06-12 14:57:36.963955: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpWh56Ld.tmpTRjSCO.pyomo.lp
-2014-06-12 14:57:36.984088: Solve completed - number of solutions=1
-2014-06-12 14:57:36.998637: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpieeevb.tmpvCe7nm.pyomo.lp
-2014-06-12 14:57:37.015886: Solve completed - number of solutions=1
-2014-06-12 14:57:37.029923: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp7GQJbm.tmp45uDSI.pyomo.lp
-2014-06-12 14:57:37.048603: Solve completed - number of solutions=1
-Computed objective lower bound=-110960.1599
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-2014-06-12 14:57:37.126835: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpYRoxaa.tmpGFALRY.pyomo.lp
-2014-06-12 14:57:37.146819: Solve completed - number of solutions=1
-2014-06-12 14:57:37.160858: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpbt940H.tmpGCwg_w.pyomo.lp
-2014-06-12 14:57:37.182049: Solve completed - number of solutions=1
-2014-06-12 14:57:37.196233: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpUVanHh.tmpH6H3NT.pyomo.lp
-2014-06-12 14:57:37.217249: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9743 Max-Min= 2480.23
-Cumulative run-time=15.88 seconds
-
-Initiating PH iteration=65
-2014-06-12 14:57:37.230301: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp_dEOxL.tmpZqES_H.pyomo.lp
-2014-06-12 14:57:37.249001: Solve completed - number of solutions=1
-2014-06-12 14:57:37.263628: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpPWdRaP.tmpp72Y0D.pyomo.lp
-2014-06-12 14:57:37.282671: Solve completed - number of solutions=1
-2014-06-12 14:57:37.297222: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp6yvYMH.tmpsIWIv3.pyomo.lp
-2014-06-12 14:57:37.315408: Solve completed - number of solutions=1
-Computed objective lower bound=-110960.1589
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-2014-06-12 14:57:37.393210: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpKA0Pow.tmpVEOKPt.pyomo.lp
-2014-06-12 14:57:37.413968: Solve completed - number of solutions=1
-2014-06-12 14:57:37.429150: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpAXIkOq.tmpg43ash.pyomo.lp
-2014-06-12 14:57:37.449328: Solve completed - number of solutions=1
-2014-06-12 14:57:37.464104: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpXn8lVy.tmpkIA17a.pyomo.lp
-2014-06-12 14:57:37.485711: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9759 Max-Min= 2480.23
-Cumulative run-time=16.15 seconds
-
-Initiating PH iteration=66
-2014-06-12 14:57:37.499120: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpSAk3az.tmpH8pWsY.pyomo.lp
-2014-06-12 14:57:37.517113: Solve completed - number of solutions=1
-2014-06-12 14:57:37.531199: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpSZx_hX.tmphqHE7l.pyomo.lp
-2014-06-12 14:57:37.549391: Solve completed - number of solutions=1
-2014-06-12 14:57:37.563643: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpWgPuf2.tmpjKBseO.pyomo.lp
-2014-06-12 14:57:37.582202: Solve completed - number of solutions=1
-Computed objective lower bound=-110960.1588
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-2014-06-12 14:57:37.661860: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpfVJzVN.tmp3cth98.pyomo.lp
-2014-06-12 14:57:37.682558: Solve completed - number of solutions=1
-2014-06-12 14:57:37.696859: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpmRbXGc.tmpMkGW3M.pyomo.lp
-2014-06-12 14:57:37.717175: Solve completed - number of solutions=1
-2014-06-12 14:57:37.731412: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpdZF5pO.tmpGQ03Zo.pyomo.lp
-2014-06-12 14:57:37.751691: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9770 Max-Min= 2480.23
-Cumulative run-time=16.41 seconds
-
-Initiating PH iteration=67
-2014-06-12 14:57:37.765023: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpkD8Eiv.tmpO_gqXg.pyomo.lp
-2014-06-12 14:57:37.782996: Solve completed - number of solutions=1
-2014-06-12 14:57:37.797077: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpAJps_n.tmpbenu_X.pyomo.lp
-2014-06-12 14:57:37.815757: Solve completed - number of solutions=1
-2014-06-12 14:57:37.830626: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpT_SjWV.tmpY2SJAF.pyomo.lp
-2014-06-12 14:57:37.848117: Solve completed - number of solutions=1
-Computed objective lower bound=-110960.1593
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-2014-06-12 14:57:37.926110: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp4gsvUH.tmpyFaKqX.pyomo.lp
-2014-06-12 14:57:37.945868: Solve completed - number of solutions=1
-2014-06-12 14:57:37.960269: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpvOsFZf.tmpIdipww.pyomo.lp
-2014-06-12 14:57:37.981434: Solve completed - number of solutions=1
-2014-06-12 14:57:37.996093: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmplSpSkO.tmpSIc7hs.pyomo.lp
-2014-06-12 14:57:38.016229: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9775 Max-Min= 2480.23
-Cumulative run-time=16.68 seconds
-
-Initiating PH iteration=68
-2014-06-12 14:57:38.028912: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpNg_uGg.tmprN7mIZ.pyomo.lp
-2014-06-12 14:57:38.046498: Solve completed - number of solutions=1
-2014-06-12 14:57:38.060858: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp6DZ3QB.tmpO591Sf.pyomo.lp
-2014-06-12 14:57:38.078276: Solve completed - number of solutions=1
-2014-06-12 14:57:38.092405: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpvCXy77.tmpVH3gGo.pyomo.lp
-2014-06-12 14:57:38.110937: Solve completed - number of solutions=1
-Computed objective lower bound=-110960.1600
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-2014-06-12 14:57:38.189089: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpS6cTZs.tmpMYRqzK.pyomo.lp
-2014-06-12 14:57:38.208620: Solve completed - number of solutions=1
-2014-06-12 14:57:38.222642: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp0QxyIQ.tmpM8f6io.pyomo.lp
-2014-06-12 14:57:38.242923: Solve completed - number of solutions=1
-2014-06-12 14:57:38.256952: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpBB3nNP.tmpXompPo.pyomo.lp
-2014-06-12 14:57:38.276625: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9776 Max-Min= 2480.23
-Cumulative run-time=16.94 seconds
-
-Initiating PH iteration=69
-2014-06-12 14:57:38.289255: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp5ngaLm.tmptkMQwh.pyomo.lp
-2014-06-12 14:57:38.307829: Solve completed - number of solutions=1
-2014-06-12 14:57:38.323384: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpsx0Bfz.tmpzVXoa1.pyomo.lp
-2014-06-12 14:57:38.341419: Solve completed - number of solutions=1
-2014-06-12 14:57:38.357947: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpnQXfoR.tmpRjobm9.pyomo.lp
-2014-06-12 14:57:38.376488: Solve completed - number of solutions=1
-Computed objective lower bound=-110960.1608
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-2014-06-12 14:57:38.456105: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpFZwOL_.tmpa7PGP3.pyomo.lp
-2014-06-12 14:57:38.476838: Solve completed - number of solutions=1
-2014-06-12 14:57:38.490902: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmphjthD9.tmpjfeUFu.pyomo.lp
-2014-06-12 14:57:38.512633: Solve completed - number of solutions=1
-2014-06-12 14:57:38.527611: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp2W9roZ.tmpYdBxNp.pyomo.lp
-2014-06-12 14:57:38.547990: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9775 Max-Min= 2480.23
-Cumulative run-time=17.21 seconds
-
-Initiating PH iteration=70
-2014-06-12 14:57:38.594162: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpBkpRpu.tmpfWH6yM.pyomo.lp
-2014-06-12 14:57:38.612798: Solve completed - number of solutions=1
-2014-06-12 14:57:38.627068: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpPx1zMA.tmp9X3Sa_.pyomo.lp
-2014-06-12 14:57:38.645633: Solve completed - number of solutions=1
-2014-06-12 14:57:38.660070: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpkrvTLY.tmpJipLLc.pyomo.lp
-2014-06-12 14:57:38.677615: Solve completed - number of solutions=1
-Computed objective lower bound=-110960.1615
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-2014-06-12 14:57:38.757386: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpEInHJk.tmp5ObejC.pyomo.lp
-2014-06-12 14:57:38.780060: Solve completed - number of solutions=1
-2014-06-12 14:57:38.795051: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpuLmPGv.tmpeKGJnj.pyomo.lp
-2014-06-12 14:57:38.814587: Solve completed - number of solutions=1
-2014-06-12 14:57:38.828725: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpXxl3Jl.tmphPX4WR.pyomo.lp
-2014-06-12 14:57:38.848925: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9771 Max-Min= 2480.23
-Cumulative run-time=17.51 seconds
-
-Initiating PH iteration=71
-2014-06-12 14:57:38.861517: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpYCWc5Q.tmpLp4VUt.pyomo.lp
-2014-06-12 14:57:38.881605: Solve completed - number of solutions=1
-2014-06-12 14:57:38.897013: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmptQ5xIl.tmpsDIkyF.pyomo.lp
-2014-06-12 14:57:38.914054: Solve completed - number of solutions=1
-2014-06-12 14:57:38.928231: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp7xTNCV.tmpssG5fB.pyomo.lp
-2014-06-12 14:57:38.946372: Solve completed - number of solutions=1
-Computed objective lower bound=-110960.1620
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-2014-06-12 14:57:39.023764: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmplc0cAm.tmphYNLfY.pyomo.lp
-2014-06-12 14:57:39.044212: Solve completed - number of solutions=1
-2014-06-12 14:57:39.058311: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpTYtL0f.tmprlKOap.pyomo.lp
-2014-06-12 14:57:39.080180: Solve completed - number of solutions=1
-2014-06-12 14:57:39.095491: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpQl7ZmO.tmpqiFhlJ.pyomo.lp
-2014-06-12 14:57:39.118493: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9768 Max-Min= 2480.23
-Cumulative run-time=17.78 seconds
-
-Initiating PH iteration=72
-2014-06-12 14:57:39.132611: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpvyKwKG.tmpBBUcI0.pyomo.lp
-2014-06-12 14:57:39.152575: Solve completed - number of solutions=1
-2014-06-12 14:57:39.168727: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpUFE1WX.tmpF_njMX.pyomo.lp
-2014-06-12 14:57:39.187047: Solve completed - number of solutions=1
-2014-06-12 14:57:39.201142: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpkVa_Hy.tmpyZkHLn.pyomo.lp
-2014-06-12 14:57:39.218647: Solve completed - number of solutions=1
-Computed objective lower bound=-110960.1624
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-2014-06-12 14:57:39.297537: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpRXkVpO.tmpJJtQnl.pyomo.lp
-2014-06-12 14:57:39.319196: Solve completed - number of solutions=1
-2014-06-12 14:57:39.334657: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpdrfm_b.tmp8NyqtA.pyomo.lp
-2014-06-12 14:57:39.354592: Solve completed - number of solutions=1
-2014-06-12 14:57:39.368737: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpXybgV0.tmpH363y8.pyomo.lp
-2014-06-12 14:57:39.388841: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9764 Max-Min= 2480.23
-Cumulative run-time=18.05 seconds
-
-Initiating PH iteration=73
-2014-06-12 14:57:39.402687: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpMV6TVJ.tmpEgtu3v.pyomo.lp
-2014-06-12 14:57:39.421569: Solve completed - number of solutions=1
-2014-06-12 14:57:39.436437: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpk6asY4.tmpADNruB.pyomo.lp
-2014-06-12 14:57:39.454103: Solve completed - number of solutions=1
-2014-06-12 14:57:39.468184: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp4XeH0o.tmpMp1agI.pyomo.lp
-2014-06-12 14:57:39.486456: Solve completed - number of solutions=1
-Computed objective lower bound=-110960.1626
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-2014-06-12 14:57:39.563908: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpS6x5_g.tmpdyxDl3.pyomo.lp
-2014-06-12 14:57:39.583605: Solve completed - number of solutions=1
-2014-06-12 14:57:39.598885: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpYIoUxD.tmp4JjVsh.pyomo.lp
-2014-06-12 14:57:39.618595: Solve completed - number of solutions=1
-2014-06-12 14:57:39.632858: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpvqaLur.tmp3vwamc.pyomo.lp
-2014-06-12 14:57:39.653711: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9761 Max-Min= 2480.23
-Cumulative run-time=18.32 seconds
-
-Initiating PH iteration=74
-2014-06-12 14:57:39.667749: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpe2_coz.tmpL0XNbm.pyomo.lp
-2014-06-12 14:57:39.686263: Solve completed - number of solutions=1
-2014-06-12 14:57:39.700981: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp_aavfp.tmpIGd2CE.pyomo.lp
-2014-06-12 14:57:39.719188: Solve completed - number of solutions=1
-2014-06-12 14:57:39.732922: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpzrAEk3.tmp5qm2Fs.pyomo.lp
-2014-06-12 14:57:39.750357: Solve completed - number of solutions=1
-Computed objective lower bound=-110960.1626
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-2014-06-12 14:57:39.830488: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpP4tpwz.tmp1E7bgT.pyomo.lp
-2014-06-12 14:57:39.851417: Solve completed - number of solutions=1
-2014-06-12 14:57:39.865676: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmprJmxiJ.tmpRJASHr.pyomo.lp
-2014-06-12 14:57:39.887967: Solve completed - number of solutions=1
-2014-06-12 14:57:39.903254: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpeSvl35.tmpqjgbXq.pyomo.lp
-2014-06-12 14:57:39.925251: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9759 Max-Min= 2480.23
-Cumulative run-time=18.59 seconds
-
-Initiating PH iteration=75
-2014-06-12 14:57:39.939011: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpLpyYTc.tmpm2R5XT.pyomo.lp
-2014-06-12 14:57:39.957442: Solve completed - number of solutions=1
-2014-06-12 14:57:39.971633: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpDeolZb.tmpw5W7OH.pyomo.lp
-2014-06-12 14:57:39.990232: Solve completed - number of solutions=1
-2014-06-12 14:57:40.005271: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpsutXT6.tmpjg_5lt.pyomo.lp
-2014-06-12 14:57:40.026601: Solve completed - number of solutions=1
-Computed objective lower bound=-110960.1625
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-2014-06-12 14:57:40.105662: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpYvWy4w.tmpQaCSp9.pyomo.lp
-2014-06-12 14:57:40.127788: Solve completed - number of solutions=1
-2014-06-12 14:57:40.142609: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp2_XGvF.tmpZ7Tcc9.pyomo.lp
-2014-06-12 14:57:40.164321: Solve completed - number of solutions=1
-2014-06-12 14:57:40.178508: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpaCVIkU.tmpmB1zUo.pyomo.lp
-2014-06-12 14:57:40.202239: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9758 Max-Min= 2480.23
-Cumulative run-time=18.87 seconds
-
-Initiating PH iteration=76
-2014-06-12 14:57:40.216208: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpSc8Bub.tmpspA09e.pyomo.lp
-2014-06-12 14:57:40.234391: Solve completed - number of solutions=1
-2014-06-12 14:57:40.247845: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpiUMyFt.tmpDe1rId.pyomo.lp
-2014-06-12 14:57:40.264636: Solve completed - number of solutions=1
-2014-06-12 14:57:40.279148: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpVqNFX1.tmpqnrTFI.pyomo.lp
-2014-06-12 14:57:40.297788: Solve completed - number of solutions=1
-Computed objective lower bound=-110960.1624
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-2014-06-12 14:57:40.375603: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmphomSQ_.tmp8EDl8Y.pyomo.lp
-2014-06-12 14:57:40.396307: Solve completed - number of solutions=1
-2014-06-12 14:57:40.410600: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpNAlePP.tmpLz2aee.pyomo.lp
-2014-06-12 14:57:40.431397: Solve completed - number of solutions=1
-2014-06-12 14:57:40.445930: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpfOmJ4D.tmp1YLNM6.pyomo.lp
-2014-06-12 14:57:40.469247: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9758 Max-Min= 2480.23
-Cumulative run-time=19.13 seconds
-
-Initiating PH iteration=77
-2014-06-12 14:57:40.483743: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpkoCVqS.tmpsniXhI.pyomo.lp
-2014-06-12 14:57:40.503704: Solve completed - number of solutions=1
-2014-06-12 14:57:40.518571: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpkwUhAR.tmpGXhcAM.pyomo.lp
-2014-06-12 14:57:40.536685: Solve completed - number of solutions=1
-2014-06-12 14:57:40.550741: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpXGM2jH.tmpxp3qXE.pyomo.lp
-2014-06-12 14:57:40.568388: Solve completed - number of solutions=1
-Computed objective lower bound=-110960.1623
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-2014-06-12 14:57:40.647007: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpqWYXfZ.tmpeoKVFh.pyomo.lp
-2014-06-12 14:57:40.668267: Solve completed - number of solutions=1
-2014-06-12 14:57:40.682510: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpw6J8xE.tmpTAPVgh.pyomo.lp
-2014-06-12 14:57:40.704120: Solve completed - number of solutions=1
-2014-06-12 14:57:40.718503: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpovKfXt.tmp7BBQfL.pyomo.lp
-2014-06-12 14:57:40.738912: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9758 Max-Min= 2480.23
-Cumulative run-time=19.40 seconds
-
-Initiating PH iteration=78
-2014-06-12 14:57:40.751945: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpxZaWAY.tmp85s805.pyomo.lp
-2014-06-12 14:57:40.770304: Solve completed - number of solutions=1
-2014-06-12 14:57:40.784728: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpFU4wkP.tmp22dMad.pyomo.lp
-2014-06-12 14:57:40.802180: Solve completed - number of solutions=1
-2014-06-12 14:57:40.816206: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpHZy2Da.tmprxH13f.pyomo.lp
-2014-06-12 14:57:40.835667: Solve completed - number of solutions=1
-Computed objective lower bound=-110960.1622
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-2014-06-12 14:57:40.915178: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpLw88Yr.tmpH4bB6K.pyomo.lp
-2014-06-12 14:57:40.936601: Solve completed - number of solutions=1
-2014-06-12 14:57:40.951886: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpkpZuTR.tmpkoYJc0.pyomo.lp
-2014-06-12 14:57:40.972890: Solve completed - number of solutions=1
-2014-06-12 14:57:40.987637: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpORyqls.tmpIApEzn.pyomo.lp
-2014-06-12 14:57:41.007704: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9758 Max-Min= 2480.23
-Cumulative run-time=19.67 seconds
-
-Initiating PH iteration=79
-2014-06-12 14:57:41.020517: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpoBcooh.tmpepF23C.pyomo.lp
-2014-06-12 14:57:41.041178: Solve completed - number of solutions=1
-2014-06-12 14:57:41.057057: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpXaWEgP.tmpmYA1I2.pyomo.lp
-2014-06-12 14:57:41.074604: Solve completed - number of solutions=1
-2014-06-12 14:57:41.089159: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpCyb2GJ.tmpWhBqOZ.pyomo.lp
-2014-06-12 14:57:41.107346: Solve completed - number of solutions=1
-Computed objective lower bound=-110960.1622
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-2014-06-12 14:57:41.187150: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmprnlXou.tmp62ZBDA.pyomo.lp
-2014-06-12 14:57:41.207003: Solve completed - number of solutions=1
-2014-06-12 14:57:41.222228: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp9PTj2L.tmpBhIC8o.pyomo.lp
-2014-06-12 14:57:41.242790: Solve completed - number of solutions=1
-2014-06-12 14:57:41.256903: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp7wbjcf.tmpDHhSRd.pyomo.lp
-2014-06-12 14:57:41.277380: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9758 Max-Min= 2480.23
-Cumulative run-time=19.94 seconds
-
-Initiating PH iteration=80
-2014-06-12 14:57:41.290235: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpfyj8JQ.tmpmQjlKq.pyomo.lp
-2014-06-12 14:57:41.309151: Solve completed - number of solutions=1
-2014-06-12 14:57:41.323200: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpByWQEt.tmpE_FsBl.pyomo.lp
-2014-06-12 14:57:41.340129: Solve completed - number of solutions=1
-2014-06-12 14:57:41.354279: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpjdPN2R.tmpfeUOjw.pyomo.lp
-2014-06-12 14:57:41.371815: Solve completed - number of solutions=1
-Computed objective lower bound=-110960.1621
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-2014-06-12 14:57:41.449666: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpmQ2Pq1.tmpakWmB7.pyomo.lp
-2014-06-12 14:57:41.469999: Solve completed - number of solutions=1
-2014-06-12 14:57:41.484218: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpm3pgfq.tmpB2K2IW.pyomo.lp
-2014-06-12 14:57:41.504720: Solve completed - number of solutions=1
-2014-06-12 14:57:41.519636: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpSHqrTq.tmp3drNSv.pyomo.lp
-2014-06-12 14:57:41.539136: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9759 Max-Min= 2480.23
-Cumulative run-time=20.20 seconds
-
-Initiating PH iteration=81
-2014-06-12 14:57:41.552497: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp8gTnH7.tmph07u83.pyomo.lp
-2014-06-12 14:57:41.572087: Solve completed - number of solutions=1
-2014-06-12 14:57:41.586038: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpGPiax8.tmplAEn0y.pyomo.lp
-2014-06-12 14:57:41.604927: Solve completed - number of solutions=1
-2014-06-12 14:57:41.620423: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpfdqGn8.tmpT9d8lz.pyomo.lp
-2014-06-12 14:57:41.638090: Solve completed - number of solutions=1
-Computed objective lower bound=-110960.1619
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-2014-06-12 14:57:41.716443: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp1FDXm6.tmpy4Zv0K.pyomo.lp
-2014-06-12 14:57:41.736479: Solve completed - number of solutions=1
-2014-06-12 14:57:41.750444: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpLLd7lv.tmpTfdRjP.pyomo.lp
-2014-06-12 14:57:41.772336: Solve completed - number of solutions=1
-2014-06-12 14:57:41.787541: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpLhZXKa.tmpPix_Iy.pyomo.lp
-2014-06-12 14:57:41.807719: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9760 Max-Min= 2480.23
-Cumulative run-time=20.47 seconds
-
-Initiating PH iteration=82
-2014-06-12 14:57:41.821373: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpV1uLnT.tmpQq20Yo.pyomo.lp
-2014-06-12 14:57:41.840013: Solve completed - number of solutions=1
-2014-06-12 14:57:41.855038: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpKFzMQn.tmpjXNsbG.pyomo.lp
-2014-06-12 14:57:41.872427: Solve completed - number of solutions=1
-2014-06-12 14:57:41.886513: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpdvOSXL.tmpAyvVu7.pyomo.lp
-2014-06-12 14:57:41.905753: Solve completed - number of solutions=1
-Computed objective lower bound=-110960.1618
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-2014-06-12 14:57:41.986729: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpF_MQKw.tmpB5g8_e.pyomo.lp
-2014-06-12 14:57:42.006312: Solve completed - number of solutions=1
-2014-06-12 14:57:42.021222: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmppY4pvD.tmpoiijW7.pyomo.lp
-2014-06-12 14:57:42.042716: Solve completed - number of solutions=1
-2014-06-12 14:57:42.057158: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp13VvBD.tmp9DZJSH.pyomo.lp
-2014-06-12 14:57:42.078326: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9760 Max-Min= 2480.23
-Cumulative run-time=20.74 seconds
-
-Initiating PH iteration=83
-2014-06-12 14:57:42.091944: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpKYIwCb.tmpFHgh1y.pyomo.lp
-2014-06-12 14:57:42.112081: Solve completed - number of solutions=1
-2014-06-12 14:57:42.126681: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp8lRVZt.tmp2hBfyV.pyomo.lp
-2014-06-12 14:57:42.143989: Solve completed - number of solutions=1
-2014-06-12 14:57:42.158130: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpTBkV3Y.tmpghJkVr.pyomo.lp
-2014-06-12 14:57:42.175338: Solve completed - number of solutions=1
-Computed objective lower bound=-110960.1619
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-2014-06-12 14:57:42.253412: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpGLO5j9.tmpSQa6oB.pyomo.lp
-2014-06-12 14:57:42.273647: Solve completed - number of solutions=1
-2014-06-12 14:57:42.289251: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmplFpeXo.tmp9MIIu1.pyomo.lp
-2014-06-12 14:57:42.309212: Solve completed - number of solutions=1
-2014-06-12 14:57:42.323663: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpovTTju.tmpkK34S_.pyomo.lp
-2014-06-12 14:57:42.347640: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9761 Max-Min= 2480.23
-Cumulative run-time=21.01 seconds
-
-Initiating PH iteration=84
-2014-06-12 14:57:42.360881: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpzoG5S8.tmprcoq76.pyomo.lp
-2014-06-12 14:57:42.380137: Solve completed - number of solutions=1
-2014-06-12 14:57:42.395014: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpe2dTrW.tmpMzf9gW.pyomo.lp
-2014-06-12 14:57:42.413278: Solve completed - number of solutions=1
-2014-06-12 14:57:42.428898: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpNAC9Jq.tmpzunXFJ.pyomo.lp
-2014-06-12 14:57:42.446805: Solve completed - number of solutions=1
-Computed objective lower bound=-110960.1620
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-2014-06-12 14:57:42.525602: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmprPC774.tmpfuuw46.pyomo.lp
-2014-06-12 14:57:42.546504: Solve completed - number of solutions=1
-2014-06-12 14:57:42.560708: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpriJy0N.tmpjPUARs.pyomo.lp
-2014-06-12 14:57:42.582303: Solve completed - number of solutions=1
-2014-06-12 14:57:42.596914: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpKlZ6qJ.tmpyRje0v.pyomo.lp
-2014-06-12 14:57:42.617689: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9760 Max-Min= 2480.23
-Cumulative run-time=21.28 seconds
-
-Initiating PH iteration=85
-2014-06-12 14:57:42.631378: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpecT0Mx.tmpY8Kuy1.pyomo.lp
-2014-06-12 14:57:42.649923: Solve completed - number of solutions=1
-2014-06-12 14:57:42.664211: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpevvqzC.tmpBGnC6a.pyomo.lp
-2014-06-12 14:57:42.681802: Solve completed - number of solutions=1
-2014-06-12 14:57:42.695977: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmppqYh_E.tmpKDzaAn.pyomo.lp
-2014-06-12 14:57:42.715217: Solve completed - number of solutions=1
-Computed objective lower bound=-110960.1621
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-2014-06-12 14:57:42.794596: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpZcnMg2.tmpEKyCAl.pyomo.lp
-2014-06-12 14:57:42.814955: Solve completed - number of solutions=1
-2014-06-12 14:57:42.829555: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpa2BEl0.tmprIDSwx.pyomo.lp
-2014-06-12 14:57:42.850696: Solve completed - number of solutions=1
-2014-06-12 14:57:42.865186: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpv3KsFx.tmpcqIf8O.pyomo.lp
-2014-06-12 14:57:42.885415: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9760 Max-Min= 2480.23
-Cumulative run-time=21.55 seconds
-
-Initiating PH iteration=86
-2014-06-12 14:57:42.898342: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpnu0IfE.tmpgmcItu.pyomo.lp
-2014-06-12 14:57:42.916754: Solve completed - number of solutions=1
-2014-06-12 14:57:42.932301: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpnwijFV.tmpBPWn8h.pyomo.lp
-2014-06-12 14:57:42.950159: Solve completed - number of solutions=1
-2014-06-12 14:57:42.964524: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpMlUqs8.tmpD3toS3.pyomo.lp
-2014-06-12 14:57:42.982066: Solve completed - number of solutions=1
-Computed objective lower bound=-110960.1622
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-2014-06-12 14:57:43.059812: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpfgPkvG.tmpAixB2D.pyomo.lp
-2014-06-12 14:57:43.080327: Solve completed - number of solutions=1
-2014-06-12 14:57:43.095228: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp_wfrcE.tmpzr28HY.pyomo.lp
-2014-06-12 14:57:43.116607: Solve completed - number of solutions=1
-2014-06-12 14:57:43.131190: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmptcpJBs.tmpHN5wBk.pyomo.lp
-2014-06-12 14:57:43.151215: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9759 Max-Min= 2480.23
-Cumulative run-time=21.81 seconds
-
-Initiating PH iteration=87
-2014-06-12 14:57:43.164230: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpulZzTo.tmpyaFZDB.pyomo.lp
-2014-06-12 14:57:43.182880: Solve completed - number of solutions=1
-2014-06-12 14:57:43.196960: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpLlGSca.tmpA1PvaJ.pyomo.lp
-2014-06-12 14:57:43.214238: Solve completed - number of solutions=1
-2014-06-12 14:57:43.228314: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpBiBQAA.tmpSnfeb8.pyomo.lp
-2014-06-12 14:57:43.245727: Solve completed - number of solutions=1
-Computed objective lower bound=-110960.1622
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-2014-06-12 14:57:43.324206: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpt3Ip4z.tmp0YmBMX.pyomo.lp
-2014-06-12 14:57:43.343496: Solve completed - number of solutions=1
-2014-06-12 14:57:43.357501: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpc424xO.tmpsohBQw.pyomo.lp
-2014-06-12 14:57:43.377770: Solve completed - number of solutions=1
-2014-06-12 14:57:43.391912: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpYcFZWa.tmpX6HEiG.pyomo.lp
-2014-06-12 14:57:43.411867: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9759 Max-Min= 2480.23
-Cumulative run-time=22.07 seconds
-
-Initiating PH iteration=88
-2014-06-12 14:57:43.425502: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp1t8KYt.tmpbYRnet.pyomo.lp
-2014-06-12 14:57:43.445370: Solve completed - number of solutions=1
-2014-06-12 14:57:43.460437: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpeFWQqy.tmp75keMA.pyomo.lp
-2014-06-12 14:57:43.478957: Solve completed - number of solutions=1
-2014-06-12 14:57:43.493967: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp08Iz40.tmppyNZtF.pyomo.lp
-2014-06-12 14:57:43.511895: Solve completed - number of solutions=1
-Computed objective lower bound=-110960.1623
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-2014-06-12 14:57:43.591282: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpHNRddB.tmpxyNIfB.pyomo.lp
-2014-06-12 14:57:43.610911: Solve completed - number of solutions=1
-2014-06-12 14:57:43.625436: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpdxQieW.tmp2z4Pq6.pyomo.lp
-2014-06-12 14:57:43.646564: Solve completed - number of solutions=1
-2014-06-12 14:57:43.661081: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpXwsqJq.tmpT4Cvze.pyomo.lp
-2014-06-12 14:57:43.681751: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9758 Max-Min= 2480.23
-Cumulative run-time=22.34 seconds
-
-Initiating PH iteration=89
-2014-06-12 14:57:43.728412: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpJIn_wi.tmpsJE0Xv.pyomo.lp
-2014-06-12 14:57:43.748835: Solve completed - number of solutions=1
-2014-06-12 14:57:43.763058: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpUx2cW8.tmpC8_lT1.pyomo.lp
-2014-06-12 14:57:43.779743: Solve completed - number of solutions=1
-2014-06-12 14:57:43.794689: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpLlao3z.tmpGeNMv4.pyomo.lp
-2014-06-12 14:57:43.814245: Solve completed - number of solutions=1
-Computed objective lower bound=-110960.1623
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-2014-06-12 14:57:43.893016: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmprLkE2z.tmpjgAaj3.pyomo.lp
-2014-06-12 14:57:43.913572: Solve completed - number of solutions=1
-2014-06-12 14:57:43.928223: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpqg2IDL.tmpUfAId9.pyomo.lp
-2014-06-12 14:57:43.948128: Solve completed - number of solutions=1
-2014-06-12 14:57:43.962104: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp9TBxvd.tmpk5yJQm.pyomo.lp
-2014-06-12 14:57:43.982495: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9758 Max-Min= 2480.23
-Cumulative run-time=22.65 seconds
-
-Initiating PH iteration=90
-2014-06-12 14:57:43.995195: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpcRWHXV.tmp0ZzojQ.pyomo.lp
-2014-06-12 14:57:44.013315: Solve completed - number of solutions=1
-2014-06-12 14:57:44.027722: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpF1KntQ.tmpImCrxq.pyomo.lp
-2014-06-12 14:57:44.044781: Solve completed - number of solutions=1
-2014-06-12 14:57:44.059843: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp_6lbz4.tmpMWP_su.pyomo.lp
-2014-06-12 14:57:44.077956: Solve completed - number of solutions=1
-Computed objective lower bound=-110960.1623
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-2014-06-12 14:57:44.157368: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpnHzuwW.tmphk2S5_.pyomo.lp
-2014-06-12 14:57:44.178703: Solve completed - number of solutions=1
-2014-06-12 14:57:44.192824: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpbvTPkI.tmpy69iSZ.pyomo.lp
-2014-06-12 14:57:44.213217: Solve completed - number of solutions=1
-2014-06-12 14:57:44.228256: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpeG24lz.tmpfv45hx.pyomo.lp
-2014-06-12 14:57:44.249135: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9757 Max-Min= 2480.23
-Cumulative run-time=22.91 seconds
-
-Initiating PH iteration=91
-2014-06-12 14:57:44.261838: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpMzPb9Y.tmpLlJWni.pyomo.lp
-2014-06-12 14:57:44.280317: Solve completed - number of solutions=1
-2014-06-12 14:57:44.295279: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpsloU_t.tmpRPSd5E.pyomo.lp
-2014-06-12 14:57:44.313883: Solve completed - number of solutions=1
-2014-06-12 14:57:44.328664: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp4b3Vno.tmp_Y8d6Q.pyomo.lp
-2014-06-12 14:57:44.346207: Solve completed - number of solutions=1
-Computed objective lower bound=-110960.1623
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-2014-06-12 14:57:44.423081: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp5AIXbV.tmpIjb_CW.pyomo.lp
-2014-06-12 14:57:44.444970: Solve completed - number of solutions=1
-2014-06-12 14:57:44.459230: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpJtmTY_.tmpXKx3Fe.pyomo.lp
-2014-06-12 14:57:44.479460: Solve completed - number of solutions=1
-2014-06-12 14:57:44.493690: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpO8NCPM.tmp0yTJNt.pyomo.lp
-2014-06-12 14:57:44.515599: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9757 Max-Min= 2480.23
-Cumulative run-time=23.18 seconds
-
-Initiating PH iteration=92
-2014-06-12 14:57:44.528925: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpd2bl1Q.tmpi55KQT.pyomo.lp
-2014-06-12 14:57:44.547197: Solve completed - number of solutions=1
-2014-06-12 14:57:44.561377: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp7NGGk3.tmprdo61J.pyomo.lp
-2014-06-12 14:57:44.581772: Solve completed - number of solutions=1
-2014-06-12 14:57:44.598117: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpF_i21w.tmp0CnV58.pyomo.lp
-2014-06-12 14:57:44.616470: Solve completed - number of solutions=1
-Computed objective lower bound=-110960.1623
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-2014-06-12 14:57:44.697150: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpWFJIYe.tmpo8COEX.pyomo.lp
-2014-06-12 14:57:44.718420: Solve completed - number of solutions=1
-2014-06-12 14:57:44.733996: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpGFCDYy.tmp9EdhHg.pyomo.lp
-2014-06-12 14:57:44.754375: Solve completed - number of solutions=1
-2014-06-12 14:57:44.768461: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpVj3UFH.tmpkN7sQ1.pyomo.lp
-2014-06-12 14:57:44.789600: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9757 Max-Min= 2480.23
-Cumulative run-time=23.45 seconds
-
-Initiating PH iteration=93
-2014-06-12 14:57:44.803554: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpFawcdW.tmpxEXpM6.pyomo.lp
-2014-06-12 14:57:44.821400: Solve completed - number of solutions=1
-2014-06-12 14:57:44.835360: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpdGhuRx.tmp4QARoJ.pyomo.lp
-2014-06-12 14:57:44.852910: Solve completed - number of solutions=1
-2014-06-12 14:57:44.867377: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpN2F_cL.tmpvEsLlA.pyomo.lp
-2014-06-12 14:57:44.885122: Solve completed - number of solutions=1
-Computed objective lower bound=-110960.1623
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-2014-06-12 14:57:44.963244: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpknML8W.tmpH7MkYM.pyomo.lp
-2014-06-12 14:57:44.984557: Solve completed - number of solutions=1
-2014-06-12 14:57:44.998489: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmprHMtPK.tmpqSRAdL.pyomo.lp
-2014-06-12 14:57:45.019441: Solve completed - number of solutions=1
-2014-06-12 14:57:45.033407: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpfyS3kJ.tmpFtHDnb.pyomo.lp
-2014-06-12 14:57:45.053871: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9757 Max-Min= 2480.23
-Cumulative run-time=23.72 seconds
-
-Initiating PH iteration=94
-2014-06-12 14:57:45.066731: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp67oo3O.tmppatvUy.pyomo.lp
-2014-06-12 14:57:45.085867: Solve completed - number of solutions=1
-2014-06-12 14:57:45.099888: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpDAZnXO.tmp1t50nX.pyomo.lp
-2014-06-12 14:57:45.118616: Solve completed - number of solutions=1
-2014-06-12 14:57:45.133032: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpjplAtn.tmpWru8Xm.pyomo.lp
-2014-06-12 14:57:45.151468: Solve completed - number of solutions=1
-Computed objective lower bound=-110960.1622
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-2014-06-12 14:57:45.231278: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpNdmXzD.tmpHMjWT8.pyomo.lp
-2014-06-12 14:57:45.251200: Solve completed - number of solutions=1
-2014-06-12 14:57:45.265603: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpcRQ954.tmp53mdsM.pyomo.lp
-2014-06-12 14:57:45.285976: Solve completed - number of solutions=1
-2014-06-12 14:57:45.300012: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp8Gs45L.tmpLSxfC3.pyomo.lp
-2014-06-12 14:57:45.320007: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9757 Max-Min= 2480.23
-Cumulative run-time=23.98 seconds
-
-Initiating PH iteration=95
-2014-06-12 14:57:45.332638: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpSNpA74.tmpSVTubI.pyomo.lp
-2014-06-12 14:57:45.351165: Solve completed - number of solutions=1
-2014-06-12 14:57:45.365670: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpOWEvcq.tmpU1tXLJ.pyomo.lp
-2014-06-12 14:57:45.382876: Solve completed - number of solutions=1
-2014-06-12 14:57:45.397737: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpUZ6Fxc.tmpR_7mMC.pyomo.lp
-2014-06-12 14:57:45.415335: Solve completed - number of solutions=1
-Computed objective lower bound=-110960.1622
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-2014-06-12 14:57:45.495177: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp2znZz1.tmpXUCUgi.pyomo.lp
-2014-06-12 14:57:45.516736: Solve completed - number of solutions=1
-2014-06-12 14:57:45.531850: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpevSVnj.tmp64ToKL.pyomo.lp
-2014-06-12 14:57:45.553487: Solve completed - number of solutions=1
-2014-06-12 14:57:45.568015: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp4cmtd8.tmprXEGe5.pyomo.lp
-2014-06-12 14:57:45.588223: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9757 Max-Min= 2480.23
-Cumulative run-time=24.25 seconds
-
-Initiating PH iteration=96
-2014-06-12 14:57:45.601251: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpLj2lfz.tmpHwkD2M.pyomo.lp
-2014-06-12 14:57:45.619026: Solve completed - number of solutions=1
-2014-06-12 14:57:45.633054: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp2rcnNd.tmpxIghp9.pyomo.lp
-2014-06-12 14:57:45.651120: Solve completed - number of solutions=1
-2014-06-12 14:57:45.665028: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp5_5att.tmpvWR0Zo.pyomo.lp
-2014-06-12 14:57:45.683097: Solve completed - number of solutions=1
-Computed objective lower bound=-110960.1622
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-2014-06-12 14:57:45.762603: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp1KiMff.tmpzPHSiR.pyomo.lp
-2014-06-12 14:57:45.782602: Solve completed - number of solutions=1
-2014-06-12 14:57:45.796597: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp3nHBPB.tmpIDSjUj.pyomo.lp
-2014-06-12 14:57:45.817318: Solve completed - number of solutions=1
-2014-06-12 14:57:45.831436: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpQVG36t.tmpmMwOAS.pyomo.lp
-2014-06-12 14:57:45.851623: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9757 Max-Min= 2480.23
-Cumulative run-time=24.51 seconds
-
-Initiating PH iteration=97
-2014-06-12 14:57:45.864430: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpOqW3zP.tmpJJZGL5.pyomo.lp
-2014-06-12 14:57:45.884018: Solve completed - number of solutions=1
-2014-06-12 14:57:45.898673: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpAuIVvc.tmp0BChM9.pyomo.lp
-2014-06-12 14:57:45.916070: Solve completed - number of solutions=1
-2014-06-12 14:57:45.931064: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpimZ3g9.tmpvlhG0q.pyomo.lp
-2014-06-12 14:57:45.951476: Solve completed - number of solutions=1
-Computed objective lower bound=-110960.1622
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-2014-06-12 14:57:46.031259: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpsXTT5n.tmpWIW6OJ.pyomo.lp
-2014-06-12 14:57:46.051529: Solve completed - number of solutions=1
-2014-06-12 14:57:46.065556: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpcT0Mal.tmpwPM0Ex.pyomo.lp
-2014-06-12 14:57:46.086180: Solve completed - number of solutions=1
-2014-06-12 14:57:46.100238: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpioyzEQ.tmpSE1j6y.pyomo.lp
-2014-06-12 14:57:46.120002: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9758 Max-Min= 2480.23
-Cumulative run-time=24.78 seconds
-
-Initiating PH iteration=98
-2014-06-12 14:57:46.133095: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpVE6HXg.tmpOuhDC3.pyomo.lp
-2014-06-12 14:57:46.150529: Solve completed - number of solutions=1
-2014-06-12 14:57:46.164744: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpZnYIVK.tmp3F4Ldj.pyomo.lp
-2014-06-12 14:57:46.181760: Solve completed - number of solutions=1
-2014-06-12 14:57:46.195850: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpqW_y7p.tmp0nBsdJ.pyomo.lp
-2014-06-12 14:57:46.213961: Solve completed - number of solutions=1
-Computed objective lower bound=-110960.1622
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-2014-06-12 14:57:46.293819: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpyNFNO5.tmp6DH92x.pyomo.lp
-2014-06-12 14:57:46.313578: Solve completed - number of solutions=1
-2014-06-12 14:57:46.327542: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp9YqH8J.tmpytDaxC.pyomo.lp
-2014-06-12 14:57:46.347533: Solve completed - number of solutions=1
-2014-06-12 14:57:46.361674: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpUpMb4D.tmp3JVleB.pyomo.lp
-2014-06-12 14:57:46.381750: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9758 Max-Min= 2480.23
-Cumulative run-time=25.04 seconds
-
-Initiating PH iteration=99
-2014-06-12 14:57:46.394739: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpTSUePl.tmp6onI4E.pyomo.lp
-2014-06-12 14:57:46.413563: Solve completed - number of solutions=1
-2014-06-12 14:57:46.428428: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp4oB32j.tmps5FRD3.pyomo.lp
-2014-06-12 14:57:46.445310: Solve completed - number of solutions=1
-2014-06-12 14:57:46.459675: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpsjy8qM.tmpzKHRes.pyomo.lp
-2014-06-12 14:57:46.478377: Solve completed - number of solutions=1
-Computed objective lower bound=-110960.1622
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-2014-06-12 14:57:46.557830: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpnTTNkO.tmprOLL3q.pyomo.lp
-2014-06-12 14:57:46.579100: Solve completed - number of solutions=1
-2014-06-12 14:57:46.593740: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpmQ70fK.tmpNRQd4F.pyomo.lp
-2014-06-12 14:57:46.616025: Solve completed - number of solutions=1
-2014-06-12 14:57:46.630665: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpmdYrLl.tmptqYpmf.pyomo.lp
-2014-06-12 14:57:46.651041: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9758 Max-Min= 2480.23
-Cumulative run-time=25.31 seconds
-
-Initiating PH iteration=100
-2014-06-12 14:57:46.664017: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp9YBXWG.tmpnSve5S.pyomo.lp
-2014-06-12 14:57:46.682278: Solve completed - number of solutions=1
-2014-06-12 14:57:46.696394: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpgl2VwE.tmpWKD4d5.pyomo.lp
-2014-06-12 14:57:46.713913: Solve completed - number of solutions=1
-2014-06-12 14:57:46.728775: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmplX64ay.tmpaEjsCH.pyomo.lp
-2014-06-12 14:57:46.746905: Solve completed - number of solutions=1
-Computed objective lower bound=-110960.1622
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-2014-06-12 14:57:46.825887: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpITdoOM.tmpAxLrYv.pyomo.lp
-2014-06-12 14:57:46.846672: Solve completed - number of solutions=1
-2014-06-12 14:57:46.860980: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpKUjGNK.tmpnbhcHQ.pyomo.lp
-2014-06-12 14:57:46.881669: Solve completed - number of solutions=1
-2014-06-12 14:57:46.896048: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp3fAGR_.tmpCi5NrH.pyomo.lp
-2014-06-12 14:57:46.916332: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9758 Max-Min= 2480.23
-Cumulative run-time=25.58 seconds
-Halting PH - reached maximal iteration count=100
-Number of discrete variables fixed before final plugin calls=0 (total=0)
-Number of continuous variables fixed before final plugin calls=0 (total=3)
-2014-06-12 14:57:46.930353: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmppxyYJr.tmpQpdb19.pyomo.lp
-2014-06-12 14:57:46.950747: Solve completed - number of solutions=1
-2014-06-12 14:57:46.966332: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpztMGzK.tmptbqiva.pyomo.lp
-2014-06-12 14:57:46.987486: Solve completed - number of solutions=1
-2014-06-12 14:57:47.002097: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpr05hLS.tmpmQWbgg.pyomo.lp
-2014-06-12 14:57:47.019776: Solve completed - number of solutions=1
-Computed objective lower bound=-110960.1622
-
- Iteration Bound
- Trivial -115405.555588
- 0 -112378.395154
- 1 -119146.913826
- 2 -122839.937276
- 3 -115850.228262
- 4 -114662.427763
- 5 -114508.936391
- 6 -114392.622476
- 7 -116760.95099
- 8 -115713.770411
- 9 -114886.977381
- 10 -114142.674474
- 11 -112524.04308
- 12 -111354.349714
- 13 -110712.388487
- 14 -110412.32327
- 15 -110290.355717
- 16 -110300.166904
- 17 -110407.578228
- 18 -110633.351824
- 19 -110837.34279
- 20 -110971.63266
- 21 -111036.846504
- 22 -111046.05369
- 23 -111045.341675
- 24 -111047.71221
- 25 -111034.967277
- 26 -111015.078589
- 27 -110994.058898
- 28 -110975.753079
- 29 -110962.061428
- 30 -110953.393719
- 31 -110949.187454
- 32 -110948.379773
- 33 -110949.774873
- 34 -110952.288918
- 35 -110955.081078
- 36 -110957.594134
- 37 -110959.533471
- 38 -110960.811919
- 39 -110961.482721
- 40 -110961.676069
- 41 -110961.548051
- 42 -110961.245392
- 43 -110960.885485
- 44 -110960.548967
- 45 -110960.281111
- 46 -110960.098373
- 47 -110959.997019
- 48 -110959.961634
- 49 -110959.972452
- 50 -110960.009379
- 51 -110960.056336
- 52 -110960.101879
- 53 -110960.139245
- 54 -110960.165621
- 55 -110960.181069
- 56 -110960.187384
- 57 -110960.18713
- 58 -110960.182925
- 59 -110960.176997
- 60 -110960.17098
- 61 -110960.165883
- 62 -110960.162169
- 63 -110960.159897
- 64 -110960.158872
- 65 -110960.158773
- 66 -110960.159253
- 67 -110960.16001
- 68 -110960.160813
- 69 -110960.161517
- 70 -110960.162046
- 71 -110960.162383
- 72 -110960.162551
- 73 -110960.162587
- 74 -110960.162539
- 75 -110960.162446
- 76 -110960.162341
- 77 -110960.162247
- 78 -110960.162173
- 79 -110960.162124
- 80 -110960.161856
- 81 -110960.161822
- 82 -110960.161887
- 83 -110960.161981
- 84 -110960.162077
- 85 -110960.162164
- 86 -110960.162218
- 87 -110960.16226
- 88 -110960.162284
- 89 -110960.162289
- 90 -110960.162282
- 91 -110960.162268
- 92 -110960.16225
- 93 -110960.162233
- 94 -110960.162218
- 95 -110960.162206
- 96 -110960.162196
- 97 -110960.162189
- 98 -110960.162184
- 99 -110960.16218
- 100 -110960.162232
-
-Lower bound history written to file=phbound.txt
-
-Best Objective Bound: -110290.355717
-
-Best Lower Bound written to file=phbestbound.txt
-PH algorithm history written to file=ph_history.json
-PH complete
-Convergence history:
-Iteration Metric Value
- 0 0.2540
- 1 0.1259
- 2 0.0816
- 3 0.0796
- 4 0.0776
- 5 0.0794
- 6 0.0726
- 7 0.0844
- 8 0.0727
- 9 0.0636
- 10 0.0786
- 11 0.0822
- 12 0.0773
- 13 0.0690
- 14 0.0608
- 15 0.0550
- 16 0.0518
- 17 0.0512
- 18 0.0519
- 19 0.0526
- 20 0.0533
- 21 0.0546
- 22 0.0556
- 23 0.0564
- 24 0.0569
- 25 0.0570
- 26 0.0570
- 27 0.0569
- 28 0.0568
- 29 0.0566
- 30 0.0564
- 31 0.0563
- 32 0.0562
- 33 0.0562
- 34 0.0562
- 35 0.0562
- 36 0.0562
- 37 0.0563
- 38 0.0563
- 39 0.0563
- 40 0.0563
- 41 0.0563
- 42 0.0563
- 43 0.0563
- 44 0.0563
- 45 0.0563
- 46 0.0563
- 47 0.0563
- 48 0.0563
- 49 0.0563
- 50 0.0563
- 51 0.0563
- 52 0.0563
- 53 0.0563
- 54 0.0563
- 55 0.0563
- 56 0.0563
- 57 0.0563
- 58 0.0563
- 59 0.0563
- 60 0.0563
- 61 0.0563
- 62 0.0563
- 63 0.0563
- 64 0.0563
- 65 0.0563
- 66 0.0563
- 67 0.0563
- 68 0.0563
- 69 0.0563
- 70 0.0563
- 71 0.0563
- 72 0.0563
- 73 0.0563
- 74 0.0563
- 75 0.0563
- 76 0.0563
- 77 0.0563
- 78 0.0563
- 79 0.0563
- 80 0.0563
- 81 0.0563
- 82 0.0563
- 83 0.0563
- 84 0.0563
- 85 0.0563
- 86 0.0563
- 87 0.0563
- 88 0.0563
- 89 0.0563
- 90 0.0563
- 91 0.0563
- 92 0.0563
- 93 0.0563
- 94 0.0563
- 95 0.0563
- 96 0.0563
- 97 0.0563
- 98 0.0563
- 99 0.0563
- 100 0.0563
-
-***********************************************************************************************
->>>THE EXPECTED SUM OF THE STAGE COST VARIABLES=-106862.160636<<<
->>>***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise<<<
-***********************************************************************************************
-Final number of discrete variables fixed=0 (total=0)
-Final number of continuous variables fixed=0 (total=3)
-Final variable values:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 100.0000 80.0000 87.7861 Max-Min: 20.0000 Avg: 89.2620
- Index: [SUGAR_BEETS] Values: 232.0854 233.1150 250.0000 Max-Min: 17.9146 Avg: 238.4001
- Index: [WHEAT] Values: 167.9146 186.8850 162.2139 Max-Min: 24.6711 Avg: 172.3379
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108529.3918 107042.6505 109522.8850 Max-Min: 2480.2345 Avg: 108364.9758
-Final costs:
-Scenario Tree Costs
-***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise
-----------------------------------------------------
-Tree Nodes:
-
- Name=AboveAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AboveAverageScenario
- Expected cost of (sub)tree rooted at node=-276133.5814
-
- Name=AverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AverageScenario
- Expected cost of (sub)tree rooted at node=-213268.9263
-
- Name=BelowAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-156772.1496
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- AboveAverageNode
- AverageNode
- BelowAverageNode
- Scenarios:
- AboveAverageScenario
- AverageScenario
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-106862.1606
-
-----------------------------------------------------
-Scenarios:
-
- Name=AboveAverageScenario
- Probability=0.3333
- Leaf Node=AboveAverageNode
- Tree node sequence:
- RootNode
- AboveAverageNode
- Stage= FirstStage Cost=109522.8850
- Stage= SecondStage Cost=-276133.5814
- Total scenario cost=-166610.6964
-
- Name=AverageScenario
- Probability=0.3333
- Leaf Node=AverageNode
- Tree node sequence:
- RootNode
- AverageNode
- Stage= FirstStage Cost=107042.6505
- Stage= SecondStage Cost=-213268.9263
- Total scenario cost=-106226.2758
-
- Name=BelowAverageScenario
- Probability=0.3333
- Leaf Node=BelowAverageNode
- Tree node sequence:
- RootNode
- BelowAverageNode
- Stage= FirstStage Cost=108529.3918
- Stage= SecondStage Cost=-156772.1496
- Total scenario cost=-48242.7578
-
-----------------------------------------------------
-
-Total PH execution time=25.69 seconds
-
-Scenario tree solution written to file=ph_solution.json
-Shutting down Pyro solver components
-Dispatcher received request to shut down - initiating...
-
-Total execution time=28.74 seconds
-Name Server gracefully stopped.
-Lost connection to dispatch server - shutting down...
diff --git a/pyomo/pysp/tests/examples/baselines/TestPHFarmerTrivialBundlesPyro.test9.baseline b/pyomo/pysp/tests/examples/baselines/TestPHFarmerTrivialBundlesPyro.test9.baseline
deleted file mode 100644
index be4b3e4ff4d..00000000000
--- a/pyomo/pysp/tests/examples/baselines/TestPHFarmerTrivialBundlesPyro.test9.baseline
+++ /dev/null
@@ -1,348 +0,0 @@
-*** Pyro Name Server ***
-Name server listening on: ('0.0.0.0', 9090)
-Broadcast server listening on: ('0.0.0.0', 9090)
-URI is: PYRO://10.0.0.11:9090/0a00000b1251620a8356d479feeb3d621ae
-URI written to: /Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/pyomo/pysp/tests/examples/Pyro_NS_URI
-Name Server started.
-User-defined PH extension module=pyomo.pysp.plugins.phhistoryextension already imported - skipping
-User-defined PH extension module=pyomo.pysp.plugins.phboundextension already imported - skipping
-Dispatcher is ready.
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI:PYRO://10.0.0.11:7766/0a00000b1251720a8356e6891c6587eaecc
-This is worker Worker_75032@Ozymandias.local
-Listening for work from dispatcher...
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI: PYRO://10.0.0.11:7766/0a00000b1251720a8356e6891c6587eaecc
-This is client 75033@Ozymandias.local
-Initializing PH
-
-phboundextension using default update interval=1
-WW PH Extension: Loading user-specified configuration from file=/Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/examples/pysp/farmer/config/wwph.cfg
-WW PH Extension: Loading variable suffixes from file=/Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/examples/pysp/farmer/config/wwph.suffixes
-User-defined PH solution writer module=pyomo.pysp.plugins.jsonsolutionwriter already imported - skipping
-Starting PH
-
-Initiating PH iteration=0
-2014-06-12 14:57:55.106756: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpt_2byO.tmpWx9snl.pyomo.lp
-2014-06-12 14:57:55.125305: Solve completed - number of solutions=1
-2014-06-12 14:57:55.139109: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpY9hOzC.tmp4ZaFvW.pyomo.lp
-2014-06-12 14:57:55.157050: Solve completed - number of solutions=1
-2014-06-12 14:57:55.170858: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpfMsoEO.tmps7OC1r.pyomo.lp
-2014-06-12 14:57:55.188234: Solve completed - number of solutions=1
-Computed objective lower bound=-115405.5556
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.2540 First stage cost avg= 113494.4444 Max-Min=10416.67
-Cumulative run-time=0.16 seconds
-
-Initiating PH iteration=1
-2014-06-12 14:57:55.202007: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp4bTey7.tmpK6l8JB.pyomo.lp
-2014-06-12 14:57:55.219374: Solve completed - number of solutions=1
-2014-06-12 14:57:55.234474: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpstHavh.tmp0glGeB.pyomo.lp
-2014-06-12 14:57:55.252772: Solve completed - number of solutions=1
-2014-06-12 14:57:55.267220: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp3n4eIh.tmpdgORBu.pyomo.lp
-2014-06-12 14:57:55.284782: Solve completed - number of solutions=1
-Computed objective lower bound=-112378.3951
-WW PH Extension: Setting mipgap to 0.1000000, as specified in the configuration file
-2014-06-12 14:57:55.298081: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpte2DR0.tmp1WIKNh.pyomo.lp
-2014-06-12 14:57:55.318627: Solve completed - number of solutions=1
-2014-06-12 14:57:55.332741: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpv_kGgZ.tmpF0DUrg.pyomo.lp
-2014-06-12 14:57:55.353174: Solve completed - number of solutions=1
-2014-06-12 14:57:55.367195: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp0pXcu0.tmpn5kA58.pyomo.lp
-2014-06-12 14:57:55.387722: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.1259 First stage cost avg= 113107.2221 Max-Min= 6943.89
-Cumulative run-time=0.36 seconds
-
-Initiating PH iteration=2
-2014-06-12 14:57:55.400972: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpXfKgKR.tmpfdxnZu.pyomo.lp
-2014-06-12 14:57:55.419533: Solve completed - number of solutions=1
-2014-06-12 14:57:55.433581: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpMhhQvx.tmpsz7iRf.pyomo.lp
-2014-06-12 14:57:55.451131: Solve completed - number of solutions=1
-2014-06-12 14:57:55.465211: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpTSybwa.tmpLgpDD6.pyomo.lp
-2014-06-12 14:57:55.482591: Solve completed - number of solutions=1
-WARNING: "[base]/pyomo.pysp/pyomo/pysp/plugins/phboundextension.py", 75, _compute_bound
- A nonzero mipgap was detected when using the PH bound plugin. The bound computation may as a result be conservative.
-Computed objective lower bound=-114092.2009
-WW PH Extension: Setting mipgap to 0.0500717, based on current value of the convergence metric
-2014-06-12 14:57:55.496455: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp8sA3YP.tmpFF5Lub.pyomo.lp
-2014-06-12 14:57:55.517056: Solve completed - number of solutions=1
-2014-06-12 14:57:55.530996: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpHX74wi.tmpeb5WhC.pyomo.lp
-2014-06-12 14:57:55.550560: Solve completed - number of solutions=1
-2014-06-12 14:57:55.565537: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpi3Z_KA.tmp1dyZvC.pyomo.lp
-2014-06-12 14:57:55.585374: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0816 First stage cost avg= 112954.6296 Max-Min= 2234.82
-Cumulative run-time=0.56 seconds
-
-Initiating PH iteration=3
-2014-06-12 14:57:55.599179: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpcZAW0V.tmpXbUdb5.pyomo.lp
-2014-06-12 14:57:55.616432: Solve completed - number of solutions=1
-2014-06-12 14:57:55.630669: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpT2Oare.tmpT6ZxHw.pyomo.lp
-2014-06-12 14:57:55.647923: Solve completed - number of solutions=1
-2014-06-12 14:57:55.662859: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp5ubYD_.tmpHvlO_M.pyomo.lp
-2014-06-12 14:57:55.680323: Solve completed - number of solutions=1
-WARNING: "[base]/pyomo.pysp/pyomo/pysp/plugins/phboundextension.py", 75, _compute_bound
- A nonzero mipgap was detected when using the PH bound plugin. The bound computation may as a result be conservative.
-Computed objective lower bound=-111905.7747
-WW PH Extension: Setting mipgap to 0.0327607, based on current value of the convergence metric
-2014-06-12 14:57:55.694320: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp96SccJ.tmpMeyLcU.pyomo.lp
-2014-06-12 14:57:55.714650: Solve completed - number of solutions=1
-2014-06-12 14:57:55.729286: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpZI0RB8.tmpzrumTq.pyomo.lp
-2014-06-12 14:57:55.750412: Solve completed - number of solutions=1
-2014-06-12 14:57:55.765371: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpWKZ0Na.tmp5t0u_l.pyomo.lp
-2014-06-12 14:57:55.785392: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0796 First stage cost avg= 112963.0248 Max-Min= 2375.31
-Cumulative run-time=0.76 seconds
-
-Initiating PH iteration=4
-2014-06-12 14:57:55.798193: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpsG7ccJ.tmpLns2vj.pyomo.lp
-2014-06-12 14:57:55.816785: Solve completed - number of solutions=1
-2014-06-12 14:57:55.830757: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpaarLyG.tmpSwDX9Q.pyomo.lp
-2014-06-12 14:57:55.849392: Solve completed - number of solutions=1
-2014-06-12 14:57:55.863687: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpuImzJ2.tmpddH8D4.pyomo.lp
-2014-06-12 14:57:55.881112: Solve completed - number of solutions=1
-WARNING: "[base]/pyomo.pysp/pyomo/pysp/plugins/phboundextension.py", 75, _compute_bound
- A nonzero mipgap was detected when using the PH bound plugin. The bound computation may as a result be conservative.
-Computed objective lower bound=-110093.7884
-WW PH Extension: Setting mipgap to 0.0319973, based on current value of the convergence metric
-2014-06-12 14:57:55.894785: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp_706u9.tmp3Xb4XD.pyomo.lp
-2014-06-12 14:57:55.917126: Solve completed - number of solutions=1
-2014-06-12 14:57:55.931054: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp6yRIqP.tmpAaxaNG.pyomo.lp
-2014-06-12 14:57:55.951608: Solve completed - number of solutions=1
-2014-06-12 14:57:55.965672: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpG7waAP.tmptkMdWY.pyomo.lp
-2014-06-12 14:57:55.985697: Solve completed - number of solutions=1
-Slamming criteria are satisifed - accelerating convergence
-Slamming variable=DevotedAcreage[CORN] at tree node=RootNode to value=96.8871743104; value=node average (anywhere)
-Fixing variable=DevotedAcreage[CORN] at tree node=RootNode to value=96.8871743104; converged for 0 iterations
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0776 First stage cost avg= 112915.6071 Max-Min= 3047.08
-Cumulative run-time=0.96 seconds
-
-Initiating PH iteration=5
-2014-06-12 14:57:55.998561: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpnCvSmJ.tmpjkuZva.pyomo.lp
-2014-06-12 14:57:56.016584: Solve completed - number of solutions=1
-2014-06-12 14:57:56.030694: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpDooYmu.tmpl9KTXW.pyomo.lp
-2014-06-12 14:57:56.048190: Solve completed - number of solutions=1
-2014-06-12 14:57:56.062217: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpBaXco0.tmpXyiuab.pyomo.lp
-2014-06-12 14:57:56.080340: Solve completed - number of solutions=1
-WARNING: "[base]/pyomo.pysp/pyomo/pysp/plugins/phboundextension.py", 75, _compute_bound
- A nonzero mipgap was detected when using the PH bound plugin. The bound computation may as a result be conservative.
-Computed objective lower bound=-109499.5161
-WW PH Extension: Setting mipgap to 0.0312342, based on current value of the convergence metric
-2014-06-12 14:57:56.094026: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpJfSTRN.tmpLUxqKw.pyomo.lp
-2014-06-12 14:57:56.114645: Solve completed - number of solutions=1
-2014-06-12 14:57:56.128626: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpK6tgVH.tmpyq7bMS.pyomo.lp
-2014-06-12 14:57:56.148827: Solve completed - number of solutions=1
-2014-06-12 14:57:56.162698: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpG6WKq4.tmpns2WkM.pyomo.lp
-2014-06-12 14:57:56.184044: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=1 (total=3)
-Convergence metric= 0.0609 First stage cost avg= 112895.6887 Max-Min= 5246.95
-Cumulative run-time=1.16 seconds
-
-Initiating PH iteration=6
-2014-06-12 14:57:56.196982: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpmVBroD.tmptXOKlW.pyomo.lp
-2014-06-12 14:57:56.217636: Solve completed - number of solutions=1
-2014-06-12 14:57:56.232602: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpNff5zP.tmpTaklMf.pyomo.lp
-2014-06-12 14:57:56.250538: Solve completed - number of solutions=1
-2014-06-12 14:57:56.265104: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpHJhS74.tmpvjCe7L.pyomo.lp
-2014-06-12 14:57:56.284432: Solve completed - number of solutions=1
-WARNING: "[base]/pyomo.pysp/pyomo/pysp/plugins/phboundextension.py", 75, _compute_bound
- A nonzero mipgap was detected when using the PH bound plugin. The bound computation may as a result be conservative.
-Computed objective lower bound=-109440.7805
-WW PH Extension: Setting mipgap to 0.0247045, based on current value of the convergence metric
-2014-06-12 14:57:56.298819: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpyqUBK_.tmpo10Q7V.pyomo.lp
-2014-06-12 14:57:56.320363: Solve completed - number of solutions=1
-2014-06-12 14:57:56.336023: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpD1CKyA.tmpQKFACK.pyomo.lp
-2014-06-12 14:57:56.356175: Solve completed - number of solutions=1
-2014-06-12 14:57:56.370746: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpFOypfj.tmpBnsZPd.pyomo.lp
-2014-06-12 14:57:56.391196: Solve completed - number of solutions=1
-Slamming criteria are satisifed - accelerating convergence
-Slamming variable=DevotedAcreage[WHEAT] at tree node=RootNode to value=137.204959966; value=node average (anywhere)
-Fixing variable=DevotedAcreage[WHEAT] at tree node=RootNode to value=137.204959966; converged for 0 iterations
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=1 (total=3)
-Convergence metric= 0.0391 First stage cost avg= 112000.8391 Max-Min= 2624.80
-Cumulative run-time=1.37 seconds
-
-Initiating PH iteration=7
-2014-06-12 14:57:56.404146: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpQnPfpy.tmpI1W_cY.pyomo.lp
-2014-06-12 14:57:56.421796: Solve completed - number of solutions=1
-2014-06-12 14:57:56.435834: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpYIbNXk.tmpl2doui.pyomo.lp
-2014-06-12 14:57:56.453602: Solve completed - number of solutions=1
-2014-06-12 14:57:56.467708: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpysToY5.tmpjbcsnd.pyomo.lp
-2014-06-12 14:57:56.486058: Solve completed - number of solutions=1
-WARNING: "[base]/pyomo.pysp/pyomo/pysp/plugins/phboundextension.py", 75, _compute_bound
- A nonzero mipgap was detected when using the PH bound plugin. The bound computation may as a result be conservative.
-Computed objective lower bound=-112587.0017
-WW PH Extension: Setting mipgap to 0.0161915, based on current value of the convergence metric
-2014-06-12 14:57:56.499864: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpE4eQlW.tmpXkdy18.pyomo.lp
-2014-06-12 14:57:56.520517: Solve completed - number of solutions=1
-2014-06-12 14:57:56.534430: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpS1kJst.tmpwBaGrb.pyomo.lp
-2014-06-12 14:57:56.554685: Solve completed - number of solutions=1
-2014-06-12 14:57:56.569247: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpRnjkfN.tmpcnxFSy.pyomo.lp
-2014-06-12 14:57:56.591377: Solve completed - number of solutions=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=2 (total=3)
-Convergence metric= 0.0000 First stage cost avg= 112000.8392 Max-Min= 0.00
-Cumulative run-time=1.57 seconds
-PH converged - convergence metric is below threshold=0.0001
-Number of discrete variables fixed before final plugin calls=0 (total=0)
-Number of continuous variables fixed before final plugin calls=2 (total=3)
-2014-06-12 14:57:56.605850: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpJigHDc.tmpmClTFb.pyomo.lp
-2014-06-12 14:57:56.624077: Solve completed - number of solutions=1
-2014-06-12 14:57:56.638516: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmprrikiI.tmppG_B5i.pyomo.lp
-2014-06-12 14:57:56.656762: Solve completed - number of solutions=1
-2014-06-12 14:57:56.671658: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp6EVoTH.tmpZPFwlK.pyomo.lp
-2014-06-12 14:57:56.688810: Solve completed - number of solutions=1
-WARNING: "[base]/pyomo.pysp/pyomo/pysp/plugins/phboundextension.py", 75, _compute_bound
- A nonzero mipgap was detected when using the PH bound plugin. The bound computation may as a result be conservative.
-Computed objective lower bound=-112587.0017
-
- Iteration Bound
- Trivial -115405.555588
- 0 -112378.395124
- 1 -114092.2009
- 2 -111905.774744
- 3 -110093.788354
- 4 -109499.516145
- 5 -109440.780542
- 6 -112587.001699
- 7 -112587.001701
-
-Lower bound history written to file=phbound.txt
-
-Best Objective Bound: -109440.780542
-
-Best Lower Bound written to file=phbestbound.txt
-WW PH extension: Fixing all discrete variables that are converged at termination
-Total number of variables fixed at PH termination due to convergence=0
-PH algorithm history written to file=ph_history.json
-PH complete
-Convergence history:
-Iteration Metric Value
- 0 0.2540
- 1 0.1259
- 2 0.0816
- 3 0.0796
- 4 0.0776
- 5 0.0609
- 6 0.0391
- 7 0.0000
-
-***********************************************************************************************
->>>THE EXPECTED SUM OF THE STAGE COST VARIABLES=-107905.908751<<<
->>>***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise<<<
-***********************************************************************************************
-Final number of discrete variables fixed=0 (total=0)
-Final number of continuous variables fixed=2 (total=3)
-Final variable values:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 96.8872 96.8872 96.8872 Max-Min: 0.0000 Avg: 96.8872
- Index: [SUGAR_BEETS] Values: 265.9079 265.9079 265.9079 Max-Min: 0.0000 Avg: 265.9079
- Index: [WHEAT] Values: 137.2050 137.2050 137.2050 Max-Min: 0.0000 Avg: 137.2050
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 112000.8392 112000.8392 112000.8391 Max-Min: 0.0000 Avg: 112000.8392
-Final costs:
-Scenario Tree Costs
-***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise
-----------------------------------------------------
-Tree Nodes:
-
- Name=AboveAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AboveAverageScenario
- Expected cost of (sub)tree rooted at node=-272111.4913
-
- Name=AverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AverageScenario
- Expected cost of (sub)tree rooted at node=-223364.9995
-
- Name=BelowAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-164243.7528
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- AboveAverageNode
- AverageNode
- BelowAverageNode
- Scenarios:
- AboveAverageScenario
- AverageScenario
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-107905.9088
-
-----------------------------------------------------
-Scenarios:
-
- Name=AboveAverageScenario
- Probability=0.3333
- Leaf Node=AboveAverageNode
- Tree node sequence:
- RootNode
- AboveAverageNode
- Stage= FirstStage Cost=112000.8391
- Stage= SecondStage Cost=-272111.4913
- Total scenario cost=-160110.6522
-
- Name=AverageScenario
- Probability=0.3333
- Leaf Node=AverageNode
- Tree node sequence:
- RootNode
- AverageNode
- Stage= FirstStage Cost=112000.8392
- Stage= SecondStage Cost=-223364.9995
- Total scenario cost=-111364.1604
-
- Name=BelowAverageScenario
- Probability=0.3333
- Leaf Node=BelowAverageNode
- Tree node sequence:
- RootNode
- BelowAverageNode
- Stage= FirstStage Cost=112000.8392
- Stage= SecondStage Cost=-164243.7528
- Total scenario cost=-52242.9136
-
-----------------------------------------------------
-
-Total PH execution time=1.67 seconds
-
-Scenario tree solution written to file=ph_solution.json
-Shutting down Pyro solver components
-Dispatcher received request to shut down - initiating...
-
-Total execution time=4.72 seconds
-Name Server gracefully stopped.
-Lost connection to dispatch server - shutting down...
diff --git a/pyomo/pysp/tests/examples/baselines/TestPHFarmerTrivialBundlesSerial.test1.baseline b/pyomo/pysp/tests/examples/baselines/TestPHFarmerTrivialBundlesSerial.test1.baseline
deleted file mode 100644
index 3aef97f8526..00000000000
--- a/pyomo/pysp/tests/examples/baselines/TestPHFarmerTrivialBundlesSerial.test1.baseline
+++ /dev/null
@@ -1,357 +0,0 @@
-User-defined PH extension module=pyomo.pysp.plugins.phhistoryextension already imported - skipping
-Initializing PH
-
-User-defined PH solution writer module=pyomo.pysp.plugins.jsonsolutionwriter already imported - skipping
-Starting PH
-
-Initiating PH iteration=0
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.2540 First stage cost avg= 113494.4444 Max-Min=10416.67
-Cumulative run-time=0.06 seconds
-
-Initiating PH iteration=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.1259 First stage cost avg= 113107.2221 Max-Min= 6943.89
-Cumulative run-time=0.13 seconds
-
-Initiating PH iteration=2
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0816 First stage cost avg= 112954.6296 Max-Min= 2234.82
-Cumulative run-time=0.20 seconds
-
-Initiating PH iteration=3
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0796 First stage cost avg= 112963.0248 Max-Min= 2375.31
-Cumulative run-time=0.27 seconds
-
-Initiating PH iteration=4
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0776 First stage cost avg= 112915.6071 Max-Min= 3047.08
-Cumulative run-time=0.35 seconds
-
-Initiating PH iteration=5
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0794 First stage cost avg= 112825.3926 Max-Min= 3339.81
-Cumulative run-time=0.42 seconds
-
-Initiating PH iteration=6
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0668 First stage cost avg= 112317.9502 Max-Min= 2019.60
-Cumulative run-time=0.49 seconds
-
-Initiating PH iteration=7
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0542 First stage cost avg= 111364.4660 Max-Min= 1181.85
-Cumulative run-time=0.56 seconds
-
-Initiating PH iteration=8
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0360 First stage cost avg= 110283.4074 Max-Min= 463.23
-Cumulative run-time=0.63 seconds
-
-Initiating PH iteration=9
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0243 First stage cost avg= 109399.2542 Max-Min= 363.90
-Cumulative run-time=0.70 seconds
-
-Initiating PH iteration=10
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0256 First stage cost avg= 108834.1930 Max-Min= 933.90
-Cumulative run-time=0.77 seconds
-
-Initiating PH iteration=11
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0248 First stage cost avg= 108575.3219 Max-Min= 918.57
-Cumulative run-time=0.84 seconds
-
-Initiating PH iteration=12
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0163 First stage cost avg= 108513.5347 Max-Min= 591.25
-Cumulative run-time=0.92 seconds
-
-Initiating PH iteration=13
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0081 First stage cost avg= 108528.2899 Max-Min= 175.95
-Cumulative run-time=0.99 seconds
-
-Initiating PH iteration=14
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0168 First stage cost avg= 108561.6577 Max-Min= 274.77
-Cumulative run-time=1.06 seconds
-
-Initiating PH iteration=15
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0163 First stage cost avg= 108604.0579 Max-Min= 295.14
-Cumulative run-time=1.13 seconds
-
-Initiating PH iteration=16
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0098 First stage cost avg= 108667.3583 Max-Min= 127.67
-Cumulative run-time=1.20 seconds
-
-Initiating PH iteration=17
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0032 First stage cost avg= 108758.4237 Max-Min= 59.69
-Cumulative run-time=1.27 seconds
-
-Initiating PH iteration=18
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0026 First stage cost avg= 108868.1277 Max-Min= 101.79
-Cumulative run-time=1.34 seconds
-
-Initiating PH iteration=19
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0039 First stage cost avg= 108975.3089 Max-Min= 73.41
-Cumulative run-time=1.41 seconds
-
-Initiating PH iteration=20
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0043 First stage cost avg= 109057.4144 Max-Min= 39.47
-Cumulative run-time=1.48 seconds
-
-Initiating PH iteration=21
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0044 First stage cost avg= 109099.7145 Max-Min= 87.57
-Cumulative run-time=1.55 seconds
-
-Initiating PH iteration=22
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0040 First stage cost avg= 109099.1239 Max-Min= 104.22
-Cumulative run-time=1.62 seconds
-
-Initiating PH iteration=23
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0032 First stage cost avg= 109062.8322 Max-Min= 88.54
-Cumulative run-time=1.69 seconds
-
-Initiating PH iteration=24
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0021 First stage cost avg= 109004.1156 Max-Min= 54.49
-Cumulative run-time=1.76 seconds
-
-Initiating PH iteration=25
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0008 First stage cost avg= 108937.8039 Max-Min= 16.89
-Cumulative run-time=1.83 seconds
-
-Initiating PH iteration=26
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0005 First stage cost avg= 108876.8822 Max-Min= 14.27
-Cumulative run-time=1.90 seconds
-
-Initiating PH iteration=27
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0015 First stage cost avg= 108830.6201 Max-Min= 34.81
-Cumulative run-time=1.97 seconds
-
-Initiating PH iteration=28
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0021 First stage cost avg= 108803.9655 Max-Min= 44.57
-Cumulative run-time=2.04 seconds
-
-Initiating PH iteration=29
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0023 First stage cost avg= 108797.7661 Max-Min= 45.24
-Cumulative run-time=2.11 seconds
-
-Initiating PH iteration=30
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0020 First stage cost avg= 108809.4793 Max-Min= 39.01
-Cumulative run-time=2.18 seconds
-
-Initiating PH iteration=31
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0015 First stage cost avg= 108834.1639 Max-Min= 28.07
-Cumulative run-time=2.25 seconds
-
-Initiating PH iteration=32
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0008 First stage cost avg= 108865.6237 Max-Min= 14.67
-Cumulative run-time=2.32 seconds
-
-Initiating PH iteration=33
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0001 First stage cost avg= 108897.5679 Max-Min= 1.06
-Cumulative run-time=2.39 seconds
-PH converged - convergence metric is below threshold=0.0001
-Number of discrete variables fixed before final plugin calls=0 (total=0)
-Number of continuous variables fixed before final plugin calls=0 (total=3)
-PH algorithm history written to file=ph_history.json
-PH complete
-Convergence history:
-Iteration Metric Value
- 0 0.2540
- 1 0.1259
- 2 0.0816
- 3 0.0796
- 4 0.0776
- 5 0.0794
- 6 0.0668
- 7 0.0542
- 8 0.0360
- 9 0.0243
- 10 0.0256
- 11 0.0248
- 12 0.0163
- 13 0.0081
- 14 0.0168
- 15 0.0163
- 16 0.0098
- 17 0.0032
- 18 0.0026
- 19 0.0039
- 20 0.0043
- 21 0.0044
- 22 0.0040
- 23 0.0032
- 24 0.0021
- 25 0.0008
- 26 0.0005
- 27 0.0015
- 28 0.0021
- 29 0.0023
- 30 0.0020
- 31 0.0015
- 32 0.0008
- 33 0.0001
-
-***********************************************************************************************
->>>THE EXPECTED SUM OF THE STAGE COST VARIABLES=-108388.378639<<<
->>>***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise<<<
-***********************************************************************************************
-Final number of discrete variables fixed=0 (total=0)
-Final number of continuous variables fixed=0 (total=3)
-Final variable values:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 79.9844 80.0000 79.9768 Max-Min: 0.0232 Avg: 79.9871
- Index: [SUGAR_BEETS] Values: 249.9848 249.9770 250.0000 Max-Min: 0.0230 Avg: 249.9873
- Index: [WHEAT] Values: 170.0308 170.0230 170.0232 Max-Min: 0.0078 Avg: 170.0256
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108897.0836 108897.4725 108898.1476 Max-Min: 1.0640 Avg: 108897.5679
-Final costs:
-Scenario Tree Costs
-***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise
-----------------------------------------------------
-Tree Nodes:
-
- Name=AboveAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AboveAverageScenario
- Expected cost of (sub)tree rooted at node=-275899.3041
-
- Name=AverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AverageScenario
- Expected cost of (sub)tree rooted at node=-218243.2209
-
- Name=BelowAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-157713.8615
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- AboveAverageNode
- AverageNode
- BelowAverageNode
- Scenarios:
- AboveAverageScenario
- AverageScenario
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-108388.3786
-
-----------------------------------------------------
-Scenarios:
-
- Name=AboveAverageScenario
- Probability=0.3333
- Leaf Node=AboveAverageNode
- Tree node sequence:
- RootNode
- AboveAverageNode
- Stage= FirstStage Cost=108898.1476
- Stage= SecondStage Cost=-275899.3041
- Total scenario cost=-167001.1565
-
- Name=AverageScenario
- Probability=0.3333
- Leaf Node=AverageNode
- Tree node sequence:
- RootNode
- AverageNode
- Stage= FirstStage Cost=108897.4725
- Stage= SecondStage Cost=-218243.2209
- Total scenario cost=-109345.7484
-
- Name=BelowAverageScenario
- Probability=0.3333
- Leaf Node=BelowAverageNode
- Tree node sequence:
- RootNode
- BelowAverageNode
- Stage= FirstStage Cost=108897.0836
- Stage= SecondStage Cost=-157713.8615
- Total scenario cost=-48816.7780
-
-----------------------------------------------------
-
-Total PH execution time=2.39 seconds
-
-Scenario tree solution written to file=ph_solution.json
-
-Total execution time=2.43 seconds
diff --git a/pyomo/pysp/tests/examples/baselines/TestPHFarmerTrivialBundlesSerial.test10.baseline b/pyomo/pysp/tests/examples/baselines/TestPHFarmerTrivialBundlesSerial.test10.baseline
deleted file mode 100644
index 01e16baa2fa..00000000000
--- a/pyomo/pysp/tests/examples/baselines/TestPHFarmerTrivialBundlesSerial.test10.baseline
+++ /dev/null
@@ -1,238 +0,0 @@
-User-defined PH extension module=pyomo.pysp.plugins.phhistoryextension already imported - skipping
-User-defined PH extension module=pyomo.pysp.plugins.convexhullboundextension already imported - skipping
-Initializing PH
-
-convexhullboundextension using default update interval=1
-WARNING: No construction rule or expression specified for constraint 'W_Balance'
-WARNING: No construction rule or expression specified for constraint 'V_Bound'
-WW PH Extension: Loading user-specified configuration from file=/Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/examples/pysp/farmer/config/wwph.cfg
-WW PH Extension: Loading variable suffixes from file=/Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/examples/pysp/farmer/config/wwph.suffixes
-User-defined PH solution writer module=pyomo.pysp.plugins.jsonsolutionwriter already imported - skipping
-Starting PH
-
-Initiating PH iteration=0
-Computed objective lower bound=-115405.5556
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.2540 First stage cost avg= 113494.4444 Max-Min=10416.67
-Cumulative run-time=0.09 seconds
-
-Initiating PH iteration=1
-Computed objective lower bound=-112378.3952
-WW PH Extension: Setting mipgap to 0.1000000, as specified in the configuration file
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.1259 First stage cost avg= 113107.2221 Max-Min= 6943.89
-Cumulative run-time=0.25 seconds
-
-Initiating PH iteration=2
-WARNING: "[base]/pyomo.pysp/pyomo/pysp/plugins/phboundextension.py", 75, _compute_bound
- A nonzero mipgap was detected when using the PH bound plugin. The bound computation may as a result be conservative.
-Computed objective lower bound=-119146.9138
-WW PH Extension: Setting mipgap to 0.0500717, based on current value of the convergence metric
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0816 First stage cost avg= 112954.6296 Max-Min= 2234.82
-Cumulative run-time=0.42 seconds
-
-Initiating PH iteration=3
-WARNING: "[base]/pyomo.pysp/pyomo/pysp/plugins/phboundextension.py", 75, _compute_bound
- A nonzero mipgap was detected when using the PH bound plugin. The bound computation may as a result be conservative.
-Computed objective lower bound=-122839.9373
-WW PH Extension: Setting mipgap to 0.0327607, based on current value of the convergence metric
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0796 First stage cost avg= 112963.0248 Max-Min= 2375.31
-Cumulative run-time=0.59 seconds
-
-Initiating PH iteration=4
-WARNING: "[base]/pyomo.pysp/pyomo/pysp/plugins/phboundextension.py", 75, _compute_bound
- A nonzero mipgap was detected when using the PH bound plugin. The bound computation may as a result be conservative.
-Computed objective lower bound=-115850.2283
-WW PH Extension: Setting mipgap to 0.0319973, based on current value of the convergence metric
-Slamming criteria are satisifed - accelerating convergence
-Slamming variable=DevotedAcreage[CORN] at tree node=RootNode to value=96.8871743104; value=node average (anywhere)
-Fixing variable=DevotedAcreage[CORN] at tree node=RootNode to value=96.8871743104; converged for 0 iterations
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0776 First stage cost avg= 112915.6071 Max-Min= 3047.08
-Cumulative run-time=0.75 seconds
-
-Initiating PH iteration=5
-WARNING: "[base]/pyomo.pysp/pyomo/pysp/plugins/phboundextension.py", 75, _compute_bound
- A nonzero mipgap was detected when using the PH bound plugin. The bound computation may as a result be conservative.
-Computed objective lower bound=-114662.4278
-WW PH Extension: Setting mipgap to 0.0312342, based on current value of the convergence metric
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=1 (total=3)
-Convergence metric= 0.0609 First stage cost avg= 112895.6887 Max-Min= 5246.95
-Cumulative run-time=0.92 seconds
-
-Initiating PH iteration=6
-WARNING: "[base]/pyomo.pysp/pyomo/pysp/plugins/phboundextension.py", 75, _compute_bound
- A nonzero mipgap was detected when using the PH bound plugin. The bound computation may as a result be conservative.
-Computed objective lower bound=-114508.9364
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-WW PH Extension: Setting mipgap to 0.0247045, based on current value of the convergence metric
-Slamming criteria are satisifed - accelerating convergence
-Slamming variable=DevotedAcreage[WHEAT] at tree node=RootNode to value=140.569962554; value=node average (anywhere)
-Fixing variable=DevotedAcreage[WHEAT] at tree node=RootNode to value=140.569962554; converged for 0 iterations
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=1 (total=3)
-Convergence metric= 0.0514 First stage cost avg= 111630.6889 Max-Min= 3912.48
-Cumulative run-time=1.08 seconds
-
-Initiating PH iteration=7
-WARNING: "[base]/pyomo.pysp/pyomo/pysp/plugins/phboundextension.py", 75, _compute_bound
- A nonzero mipgap was detected when using the PH bound plugin. The bound computation may as a result be conservative.
-Computed objective lower bound=-115786.7766
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-WW PH Extension: Setting mipgap to 0.0210062, based on current value of the convergence metric
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=2 (total=3)
-Convergence metric= 0.0000 First stage cost avg= 111630.6889 Max-Min= 0.00
-Cumulative run-time=1.25 seconds
-PH converged - convergence metric is below threshold=0.0001
-Number of discrete variables fixed before final plugin calls=0 (total=0)
-Number of continuous variables fixed before final plugin calls=2 (total=3)
-WARNING: "[base]/pyomo.pysp/pyomo/pysp/plugins/phboundextension.py", 75, _compute_bound
- A nonzero mipgap was detected when using the PH bound plugin. The bound computation may as a result be conservative.
-Computed objective lower bound=-114931.2396
-
- Iteration Bound
- Trivial -115405.555588
- 0 -112378.395154
- 1 -119146.913826
- 2 -122839.937276
- 3 -115850.228262
- 4 -114662.427763
- 5 -114508.936391
- 6 -115786.776605
- 7 -114931.239605
-
-Lower bound history written to file=phbound.txt
-
-Best Objective Bound: -112378.395154
-
-Best Lower Bound written to file=phbestbound.txt
-WW PH extension: Fixing all discrete variables that are converged at termination
-Total number of variables fixed at PH termination due to convergence=0
-PH algorithm history written to file=ph_history.json
-PH complete
-Convergence history:
-Iteration Metric Value
- 0 0.2540
- 1 0.1259
- 2 0.0816
- 3 0.0796
- 4 0.0776
- 5 0.0609
- 6 0.0514
- 7 0.0000
-
-***********************************************************************************************
->>>THE EXPECTED SUM OF THE STAGE COST VARIABLES=-107983.303737<<<
->>>***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise<<<
-***********************************************************************************************
-Final number of discrete variables fixed=0 (total=0)
-Final number of continuous variables fixed=2 (total=3)
-Final variable values:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 96.8872 96.8872 96.8872 Max-Min: 0.0000 Avg: 96.8872
- Index: [SUGAR_BEETS] Values: 262.5429 262.5429 262.5429 Max-Min: 0.0000 Avg: 262.5429
- Index: [WHEAT] Values: 140.5700 140.5700 140.5700 Max-Min: 0.0000 Avg: 140.5700
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 111630.6889 111630.6888 111630.6889 Max-Min: 0.0000 Avg: 111630.6889
-Final costs:
-Scenario Tree Costs
-***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise
-----------------------------------------------------
-Tree Nodes:
-
- Name=AboveAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AboveAverageScenario
- Expected cost of (sub)tree rooted at node=-273020.0421
-
- Name=AverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AverageScenario
- Expected cost of (sub)tree rooted at node=-222372.3235
-
- Name=BelowAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-163449.6122
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- AboveAverageNode
- AverageNode
- BelowAverageNode
- Scenarios:
- AboveAverageScenario
- AverageScenario
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-107983.3037
-
-----------------------------------------------------
-Scenarios:
-
- Name=AboveAverageScenario
- Probability=0.3333
- Leaf Node=AboveAverageNode
- Tree node sequence:
- RootNode
- AboveAverageNode
- Stage= FirstStage Cost=111630.6889
- Stage= SecondStage Cost=-273020.0421
- Total scenario cost=-161389.3532
-
- Name=AverageScenario
- Probability=0.3333
- Leaf Node=AverageNode
- Tree node sequence:
- RootNode
- AverageNode
- Stage= FirstStage Cost=111630.6888
- Stage= SecondStage Cost=-222372.3235
- Total scenario cost=-110741.6346
-
- Name=BelowAverageScenario
- Probability=0.3333
- Leaf Node=BelowAverageNode
- Tree node sequence:
- RootNode
- BelowAverageNode
- Stage= FirstStage Cost=111630.6889
- Stage= SecondStage Cost=-163449.6122
- Total scenario cost=-51818.9233
-
-----------------------------------------------------
-
-Total PH execution time=1.31 seconds
-
-Scenario tree solution written to file=ph_solution.json
-
-Total execution time=1.36 seconds
diff --git a/pyomo/pysp/tests/examples/baselines/TestPHFarmerTrivialBundlesSerial.test11.baseline b/pyomo/pysp/tests/examples/baselines/TestPHFarmerTrivialBundlesSerial.test11.baseline
deleted file mode 100644
index 120f7e492c2..00000000000
--- a/pyomo/pysp/tests/examples/baselines/TestPHFarmerTrivialBundlesSerial.test11.baseline
+++ /dev/null
@@ -1,234 +0,0 @@
-User-defined PH extension module=pyomo.pysp.plugins.phhistoryextension already imported - skipping
-User-defined PH extension module=pyomo.pysp.plugins.phboundextension already imported - skipping
-Initializing PH
-
-phboundextension using default update interval=1
-WW PH Extension: Loading user-specified configuration from file=/Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/examples/pysp/farmer/config/wwph.cfg
-WW PH Extension: Loading variable suffixes from file=/Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/examples/pysp/farmer/config/wwph.suffixes
-User-defined PH solution writer module=pyomo.pysp.plugins.jsonsolutionwriter already imported - skipping
-Starting PH
-
-Initiating PH iteration=0
-Computed objective lower bound=-115405.5556
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.2540 First stage cost avg= 113494.4444 Max-Min=10416.67
-Cumulative run-time=0.06 seconds
-
-Initiating PH iteration=1
-Computed objective lower bound=-112378.3951
-WW PH Extension: Setting mipgap to 0.1000000, as specified in the configuration file
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.1259 First stage cost avg= 113107.2221 Max-Min= 6943.89
-Cumulative run-time=0.20 seconds
-
-Initiating PH iteration=2
-WARNING: "[base]/pyomo.pysp/pyomo/pysp/plugins/phboundextension.py", 75, _compute_bound
- A nonzero mipgap was detected when using the PH bound plugin. The bound computation may as a result be conservative.
-Computed objective lower bound=-114092.2009
-WW PH Extension: Setting mipgap to 0.0500717, based on current value of the convergence metric
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0816 First stage cost avg= 112954.6296 Max-Min= 2234.82
-Cumulative run-time=0.33 seconds
-
-Initiating PH iteration=3
-WARNING: "[base]/pyomo.pysp/pyomo/pysp/plugins/phboundextension.py", 75, _compute_bound
- A nonzero mipgap was detected when using the PH bound plugin. The bound computation may as a result be conservative.
-Computed objective lower bound=-111905.7747
-WW PH Extension: Setting mipgap to 0.0327607, based on current value of the convergence metric
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0796 First stage cost avg= 112963.0248 Max-Min= 2375.31
-Cumulative run-time=0.47 seconds
-
-Initiating PH iteration=4
-WARNING: "[base]/pyomo.pysp/pyomo/pysp/plugins/phboundextension.py", 75, _compute_bound
- A nonzero mipgap was detected when using the PH bound plugin. The bound computation may as a result be conservative.
-Computed objective lower bound=-110093.7884
-WW PH Extension: Setting mipgap to 0.0319973, based on current value of the convergence metric
-Slamming criteria are satisifed - accelerating convergence
-Slamming variable=DevotedAcreage[CORN] at tree node=RootNode to value=96.8871743104; value=node average (anywhere)
-Fixing variable=DevotedAcreage[CORN] at tree node=RootNode to value=96.8871743104; converged for 0 iterations
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0776 First stage cost avg= 112915.6071 Max-Min= 3047.08
-Cumulative run-time=0.60 seconds
-
-Initiating PH iteration=5
-WARNING: "[base]/pyomo.pysp/pyomo/pysp/plugins/phboundextension.py", 75, _compute_bound
- A nonzero mipgap was detected when using the PH bound plugin. The bound computation may as a result be conservative.
-Computed objective lower bound=-109499.5161
-WW PH Extension: Setting mipgap to 0.0312342, based on current value of the convergence metric
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=1 (total=3)
-Convergence metric= 0.0609 First stage cost avg= 112895.6887 Max-Min= 5246.95
-Cumulative run-time=0.74 seconds
-
-Initiating PH iteration=6
-WARNING: "[base]/pyomo.pysp/pyomo/pysp/plugins/phboundextension.py", 75, _compute_bound
- A nonzero mipgap was detected when using the PH bound plugin. The bound computation may as a result be conservative.
-Computed objective lower bound=-109440.7805
-WW PH Extension: Setting mipgap to 0.0247045, based on current value of the convergence metric
-Slamming criteria are satisifed - accelerating convergence
-Slamming variable=DevotedAcreage[WHEAT] at tree node=RootNode to value=137.204959966; value=node average (anywhere)
-Fixing variable=DevotedAcreage[WHEAT] at tree node=RootNode to value=137.204959966; converged for 0 iterations
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=1 (total=3)
-Convergence metric= 0.0391 First stage cost avg= 112000.8391 Max-Min= 2624.80
-Cumulative run-time=0.88 seconds
-
-Initiating PH iteration=7
-WARNING: "[base]/pyomo.pysp/pyomo/pysp/plugins/phboundextension.py", 75, _compute_bound
- A nonzero mipgap was detected when using the PH bound plugin. The bound computation may as a result be conservative.
-Computed objective lower bound=-112587.0017
-WW PH Extension: Setting mipgap to 0.0161915, based on current value of the convergence metric
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=2 (total=3)
-Convergence metric= 0.0000 First stage cost avg= 112000.8392 Max-Min= 0.00
-Cumulative run-time=1.03 seconds
-PH converged - convergence metric is below threshold=0.0001
-Number of discrete variables fixed before final plugin calls=0 (total=0)
-Number of continuous variables fixed before final plugin calls=2 (total=3)
-WARNING: "[base]/pyomo.pysp/pyomo/pysp/plugins/phboundextension.py", 75, _compute_bound
- A nonzero mipgap was detected when using the PH bound plugin. The bound computation may as a result be conservative.
-Computed objective lower bound=-112587.0017
-
- Iteration Bound
- Trivial -115405.555588
- 0 -112378.395124
- 1 -114092.2009
- 2 -111905.774744
- 3 -110093.788354
- 4 -109499.516145
- 5 -109440.780542
- 6 -112587.001699
- 7 -112587.001701
-
-Lower bound history written to file=phbound.txt
-
-Best Objective Bound: -109440.780542
-
-Best Lower Bound written to file=phbestbound.txt
-WW PH extension: Fixing all discrete variables that are converged at termination
-Total number of variables fixed at PH termination due to convergence=0
-PH algorithm history written to file=ph_history.json
-PH complete
-Convergence history:
-Iteration Metric Value
- 0 0.2540
- 1 0.1259
- 2 0.0816
- 3 0.0796
- 4 0.0776
- 5 0.0609
- 6 0.0391
- 7 0.0000
-
-***********************************************************************************************
->>>THE EXPECTED SUM OF THE STAGE COST VARIABLES=-107905.908751<<<
->>>***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise<<<
-***********************************************************************************************
-Final number of discrete variables fixed=0 (total=0)
-Final number of continuous variables fixed=2 (total=3)
-Final variable values:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 96.8872 96.8872 96.8872 Max-Min: 0.0000 Avg: 96.8872
- Index: [SUGAR_BEETS] Values: 265.9079 265.9079 265.9079 Max-Min: 0.0000 Avg: 265.9079
- Index: [WHEAT] Values: 137.2050 137.2050 137.2050 Max-Min: 0.0000 Avg: 137.2050
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 112000.8392 112000.8392 112000.8391 Max-Min: 0.0000 Avg: 112000.8392
-Final costs:
-Scenario Tree Costs
-***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise
-----------------------------------------------------
-Tree Nodes:
-
- Name=AboveAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AboveAverageScenario
- Expected cost of (sub)tree rooted at node=-272111.4913
-
- Name=AverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AverageScenario
- Expected cost of (sub)tree rooted at node=-223364.9995
-
- Name=BelowAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-164243.7528
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- AboveAverageNode
- AverageNode
- BelowAverageNode
- Scenarios:
- AboveAverageScenario
- AverageScenario
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-107905.9088
-
-----------------------------------------------------
-Scenarios:
-
- Name=AboveAverageScenario
- Probability=0.3333
- Leaf Node=AboveAverageNode
- Tree node sequence:
- RootNode
- AboveAverageNode
- Stage= FirstStage Cost=112000.8391
- Stage= SecondStage Cost=-272111.4913
- Total scenario cost=-160110.6522
-
- Name=AverageScenario
- Probability=0.3333
- Leaf Node=AverageNode
- Tree node sequence:
- RootNode
- AverageNode
- Stage= FirstStage Cost=112000.8392
- Stage= SecondStage Cost=-223364.9995
- Total scenario cost=-111364.1604
-
- Name=BelowAverageScenario
- Probability=0.3333
- Leaf Node=BelowAverageNode
- Tree node sequence:
- RootNode
- BelowAverageNode
- Stage= FirstStage Cost=112000.8392
- Stage= SecondStage Cost=-164243.7528
- Total scenario cost=-52242.9136
-
-----------------------------------------------------
-
-Total PH execution time=1.10 seconds
-
-Scenario tree solution written to file=ph_solution.json
-
-Total execution time=1.14 seconds
diff --git a/pyomo/pysp/tests/examples/baselines/TestPHFarmerTrivialBundlesSerial.test12.baseline b/pyomo/pysp/tests/examples/baselines/TestPHFarmerTrivialBundlesSerial.test12.baseline
deleted file mode 100644
index 4caa2f1155f..00000000000
--- a/pyomo/pysp/tests/examples/baselines/TestPHFarmerTrivialBundlesSerial.test12.baseline
+++ /dev/null
@@ -1,238 +0,0 @@
-User-defined PH extension module=pyomo.pysp.plugins.phhistoryextension already imported - skipping
-User-defined PH extension module=pyomo.pysp.plugins.convexhullboundextension already imported - skipping
-Initializing PH
-
-convexhullboundextension using default update interval=1
-WARNING: No construction rule or expression specified for constraint 'W_Balance'
-WARNING: No construction rule or expression specified for constraint 'V_Bound'
-WW PH Extension: Loading user-specified configuration from file=/Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/examples/pysp/farmer/config/wwph.cfg
-WW PH Extension: Loading variable suffixes from file=/Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/examples/pysp/farmer/config/wwph.suffixes
-User-defined PH solution writer module=pyomo.pysp.plugins.jsonsolutionwriter already imported - skipping
-Starting PH
-
-Initiating PH iteration=0
-Computed objective lower bound=-115405.5556
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.2540 First stage cost avg= 113494.4444 Max-Min=10416.67
-Cumulative run-time=0.09 seconds
-
-Initiating PH iteration=1
-Computed objective lower bound=-112378.3952
-WW PH Extension: Setting mipgap to 0.1000000, as specified in the configuration file
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.1259 First stage cost avg= 113107.2221 Max-Min= 6943.89
-Cumulative run-time=0.25 seconds
-
-Initiating PH iteration=2
-WARNING: "[base]/pyomo.pysp/pyomo/pysp/plugins/phboundextension.py", 75, _compute_bound
- A nonzero mipgap was detected when using the PH bound plugin. The bound computation may as a result be conservative.
-Computed objective lower bound=-119146.9138
-WW PH Extension: Setting mipgap to 0.0500717, based on current value of the convergence metric
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0816 First stage cost avg= 112954.6296 Max-Min= 2234.82
-Cumulative run-time=0.42 seconds
-
-Initiating PH iteration=3
-WARNING: "[base]/pyomo.pysp/pyomo/pysp/plugins/phboundextension.py", 75, _compute_bound
- A nonzero mipgap was detected when using the PH bound plugin. The bound computation may as a result be conservative.
-Computed objective lower bound=-122839.9373
-WW PH Extension: Setting mipgap to 0.0327607, based on current value of the convergence metric
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0796 First stage cost avg= 112963.0248 Max-Min= 2375.31
-Cumulative run-time=0.58 seconds
-
-Initiating PH iteration=4
-WARNING: "[base]/pyomo.pysp/pyomo/pysp/plugins/phboundextension.py", 75, _compute_bound
- A nonzero mipgap was detected when using the PH bound plugin. The bound computation may as a result be conservative.
-Computed objective lower bound=-115850.2283
-WW PH Extension: Setting mipgap to 0.0319973, based on current value of the convergence metric
-Slamming criteria are satisifed - accelerating convergence
-Slamming variable=DevotedAcreage[CORN] at tree node=RootNode to value=96.8871743104; value=node average (anywhere)
-Fixing variable=DevotedAcreage[CORN] at tree node=RootNode to value=96.8871743104; converged for 0 iterations
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0776 First stage cost avg= 112915.6071 Max-Min= 3047.08
-Cumulative run-time=0.75 seconds
-
-Initiating PH iteration=5
-WARNING: "[base]/pyomo.pysp/pyomo/pysp/plugins/phboundextension.py", 75, _compute_bound
- A nonzero mipgap was detected when using the PH bound plugin. The bound computation may as a result be conservative.
-Computed objective lower bound=-114662.4278
-WW PH Extension: Setting mipgap to 0.0312342, based on current value of the convergence metric
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=1 (total=3)
-Convergence metric= 0.0609 First stage cost avg= 112895.6887 Max-Min= 5246.95
-Cumulative run-time=0.92 seconds
-
-Initiating PH iteration=6
-WARNING: "[base]/pyomo.pysp/pyomo/pysp/plugins/phboundextension.py", 75, _compute_bound
- A nonzero mipgap was detected when using the PH bound plugin. The bound computation may as a result be conservative.
-Computed objective lower bound=-114508.9364
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-WW PH Extension: Setting mipgap to 0.0247045, based on current value of the convergence metric
-Slamming criteria are satisifed - accelerating convergence
-Slamming variable=DevotedAcreage[WHEAT] at tree node=RootNode to value=140.569962554; value=node average (anywhere)
-Fixing variable=DevotedAcreage[WHEAT] at tree node=RootNode to value=140.569962554; converged for 0 iterations
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=1 (total=3)
-Convergence metric= 0.0514 First stage cost avg= 111630.6889 Max-Min= 3912.48
-Cumulative run-time=1.09 seconds
-
-Initiating PH iteration=7
-WARNING: "[base]/pyomo.pysp/pyomo/pysp/plugins/phboundextension.py", 75, _compute_bound
- A nonzero mipgap was detected when using the PH bound plugin. The bound computation may as a result be conservative.
-Computed objective lower bound=-115786.7766
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-WW PH Extension: Setting mipgap to 0.0210062, based on current value of the convergence metric
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=2 (total=3)
-Convergence metric= 0.0000 First stage cost avg= 111630.6889 Max-Min= 0.00
-Cumulative run-time=1.26 seconds
-PH converged - convergence metric is below threshold=0.0001
-Number of discrete variables fixed before final plugin calls=0 (total=0)
-Number of continuous variables fixed before final plugin calls=2 (total=3)
-WARNING: "[base]/pyomo.pysp/pyomo/pysp/plugins/phboundextension.py", 75, _compute_bound
- A nonzero mipgap was detected when using the PH bound plugin. The bound computation may as a result be conservative.
-Computed objective lower bound=-114931.2396
-
- Iteration Bound
- Trivial -115405.555588
- 0 -112378.395154
- 1 -119146.913826
- 2 -122839.937276
- 3 -115850.228262
- 4 -114662.427763
- 5 -114508.936391
- 6 -115786.776605
- 7 -114931.239605
-
-Lower bound history written to file=phbound.txt
-
-Best Objective Bound: -112378.395154
-
-Best Lower Bound written to file=phbestbound.txt
-WW PH extension: Fixing all discrete variables that are converged at termination
-Total number of variables fixed at PH termination due to convergence=0
-PH algorithm history written to file=ph_history.json
-PH complete
-Convergence history:
-Iteration Metric Value
- 0 0.2540
- 1 0.1259
- 2 0.0816
- 3 0.0796
- 4 0.0776
- 5 0.0609
- 6 0.0514
- 7 0.0000
-
-***********************************************************************************************
->>>THE EXPECTED SUM OF THE STAGE COST VARIABLES=-107983.303737<<<
->>>***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise<<<
-***********************************************************************************************
-Final number of discrete variables fixed=0 (total=0)
-Final number of continuous variables fixed=2 (total=3)
-Final variable values:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 96.8872 96.8872 96.8872 Max-Min: 0.0000 Avg: 96.8872
- Index: [SUGAR_BEETS] Values: 262.5429 262.5429 262.5429 Max-Min: 0.0000 Avg: 262.5429
- Index: [WHEAT] Values: 140.5700 140.5700 140.5700 Max-Min: 0.0000 Avg: 140.5700
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 111630.6889 111630.6888 111630.6889 Max-Min: 0.0000 Avg: 111630.6889
-Final costs:
-Scenario Tree Costs
-***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise
-----------------------------------------------------
-Tree Nodes:
-
- Name=AboveAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AboveAverageScenario
- Expected cost of (sub)tree rooted at node=-273020.0421
-
- Name=AverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AverageScenario
- Expected cost of (sub)tree rooted at node=-222372.3235
-
- Name=BelowAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-163449.6122
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- AboveAverageNode
- AverageNode
- BelowAverageNode
- Scenarios:
- AboveAverageScenario
- AverageScenario
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-107983.3037
-
-----------------------------------------------------
-Scenarios:
-
- Name=AboveAverageScenario
- Probability=0.3333
- Leaf Node=AboveAverageNode
- Tree node sequence:
- RootNode
- AboveAverageNode
- Stage= FirstStage Cost=111630.6889
- Stage= SecondStage Cost=-273020.0421
- Total scenario cost=-161389.3532
-
- Name=AverageScenario
- Probability=0.3333
- Leaf Node=AverageNode
- Tree node sequence:
- RootNode
- AverageNode
- Stage= FirstStage Cost=111630.6888
- Stage= SecondStage Cost=-222372.3235
- Total scenario cost=-110741.6346
-
- Name=BelowAverageScenario
- Probability=0.3333
- Leaf Node=BelowAverageNode
- Tree node sequence:
- RootNode
- BelowAverageNode
- Stage= FirstStage Cost=111630.6889
- Stage= SecondStage Cost=-163449.6122
- Total scenario cost=-51818.9233
-
-----------------------------------------------------
-
-Total PH execution time=1.33 seconds
-
-Scenario tree solution written to file=ph_solution.json
-
-Total execution time=1.37 seconds
diff --git a/pyomo/pysp/tests/examples/baselines/TestPHFarmerTrivialBundlesSerial.test13.baseline b/pyomo/pysp/tests/examples/baselines/TestPHFarmerTrivialBundlesSerial.test13.baseline
deleted file mode 100644
index c31196b3122..00000000000
--- a/pyomo/pysp/tests/examples/baselines/TestPHFarmerTrivialBundlesSerial.test13.baseline
+++ /dev/null
@@ -1,192 +0,0 @@
-User-defined PH extension module=pyomo.pysp.plugins.phhistoryextension already imported - skipping
-Initializing PH
-
-WW PH Extension: Loading user-specified configuration from file=/Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/examples/pysp/farmer/config/wwph.cfg
-WW PH Extension: Loading variable suffixes from file=/Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/examples/pysp/farmer/config/wwph.suffixes
-User-defined PH solution writer module=pyomo.pysp.plugins.jsonsolutionwriter already imported - skipping
-Starting PH
-
-Initiating PH iteration=0
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.2540 First stage cost avg= 113494.4444 Max-Min=10416.67
-Cumulative run-time=0.06 seconds
-
-Initiating PH iteration=1
-WW PH Extension: Setting mipgap to 0.1000000, as specified in the configuration file
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.1259 First stage cost avg= 113107.2221 Max-Min= 6943.89
-Cumulative run-time=0.14 seconds
-
-Initiating PH iteration=2
-WW PH Extension: Setting mipgap to 0.0500717, based on current value of the convergence metric
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0816 First stage cost avg= 112954.6296 Max-Min= 2234.82
-Cumulative run-time=0.22 seconds
-
-Initiating PH iteration=3
-WW PH Extension: Setting mipgap to 0.0327607, based on current value of the convergence metric
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0796 First stage cost avg= 112963.0248 Max-Min= 2375.31
-Cumulative run-time=0.29 seconds
-
-Initiating PH iteration=4
-WW PH Extension: Setting mipgap to 0.0319973, based on current value of the convergence metric
-Slamming criteria are satisifed - accelerating convergence
-Slamming variable=DevotedAcreage[CORN] at tree node=RootNode to value=96.8871743104; value=node average (anywhere)
-Fixing variable=DevotedAcreage[CORN] at tree node=RootNode to value=96.8871743104; converged for 0 iterations
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0776 First stage cost avg= 112915.6071 Max-Min= 3047.08
-Cumulative run-time=0.36 seconds
-
-Initiating PH iteration=5
-WW PH Extension: Setting mipgap to 0.0312342, based on current value of the convergence metric
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=1 (total=3)
-Convergence metric= 0.0609 First stage cost avg= 112895.6887 Max-Min= 5246.95
-Cumulative run-time=0.44 seconds
-
-Initiating PH iteration=6
-WW PH Extension: Setting mipgap to 0.0247045, based on current value of the convergence metric
-Slamming criteria are satisifed - accelerating convergence
-Slamming variable=DevotedAcreage[WHEAT] at tree node=RootNode to value=137.204959966; value=node average (anywhere)
-Fixing variable=DevotedAcreage[WHEAT] at tree node=RootNode to value=137.204959966; converged for 0 iterations
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=1 (total=3)
-Convergence metric= 0.0391 First stage cost avg= 112000.8391 Max-Min= 2624.80
-Cumulative run-time=0.51 seconds
-
-Initiating PH iteration=7
-WW PH Extension: Setting mipgap to 0.0161915, based on current value of the convergence metric
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=2 (total=3)
-Convergence metric= 0.0000 First stage cost avg= 112000.8392 Max-Min= 0.00
-Cumulative run-time=0.58 seconds
-PH converged - convergence metric is below threshold=0.0001
-Number of discrete variables fixed before final plugin calls=0 (total=0)
-Number of continuous variables fixed before final plugin calls=2 (total=3)
-WW PH extension: Fixing all discrete variables that are converged at termination
-Total number of variables fixed at PH termination due to convergence=0
-PH algorithm history written to file=ph_history.json
-PH complete
-Convergence history:
-Iteration Metric Value
- 0 0.2540
- 1 0.1259
- 2 0.0816
- 3 0.0796
- 4 0.0776
- 5 0.0609
- 6 0.0391
- 7 0.0000
-
-***********************************************************************************************
->>>THE EXPECTED SUM OF THE STAGE COST VARIABLES=-107905.908751<<<
->>>***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise<<<
-***********************************************************************************************
-Final number of discrete variables fixed=0 (total=0)
-Final number of continuous variables fixed=2 (total=3)
-Final variable values:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 96.8872 96.8872 96.8872 Max-Min: 0.0000 Avg: 96.8872
- Index: [SUGAR_BEETS] Values: 265.9079 265.9079 265.9079 Max-Min: 0.0000 Avg: 265.9079
- Index: [WHEAT] Values: 137.2050 137.2050 137.2050 Max-Min: 0.0000 Avg: 137.2050
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 112000.8392 112000.8392 112000.8391 Max-Min: 0.0000 Avg: 112000.8392
-Final costs:
-Scenario Tree Costs
-***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise
-----------------------------------------------------
-Tree Nodes:
-
- Name=AboveAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AboveAverageScenario
- Expected cost of (sub)tree rooted at node=-272111.4913
-
- Name=AverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AverageScenario
- Expected cost of (sub)tree rooted at node=-223364.9995
-
- Name=BelowAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-164243.7528
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- AboveAverageNode
- AverageNode
- BelowAverageNode
- Scenarios:
- AboveAverageScenario
- AverageScenario
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-107905.9088
-
-----------------------------------------------------
-Scenarios:
-
- Name=AboveAverageScenario
- Probability=0.3333
- Leaf Node=AboveAverageNode
- Tree node sequence:
- RootNode
- AboveAverageNode
- Stage= FirstStage Cost=112000.8391
- Stage= SecondStage Cost=-272111.4913
- Total scenario cost=-160110.6522
-
- Name=AverageScenario
- Probability=0.3333
- Leaf Node=AverageNode
- Tree node sequence:
- RootNode
- AverageNode
- Stage= FirstStage Cost=112000.8392
- Stage= SecondStage Cost=-223364.9995
- Total scenario cost=-111364.1604
-
- Name=BelowAverageScenario
- Probability=0.3333
- Leaf Node=BelowAverageNode
- Tree node sequence:
- RootNode
- BelowAverageNode
- Stage= FirstStage Cost=112000.8392
- Stage= SecondStage Cost=-164243.7528
- Total scenario cost=-52242.9136
-
-----------------------------------------------------
-
-Total PH execution time=0.58 seconds
-
-Scenario tree solution written to file=ph_solution.json
-
-Total execution time=0.63 seconds
diff --git a/pyomo/pysp/tests/examples/baselines/TestPHFarmerTrivialBundlesSerial.test14.baseline b/pyomo/pysp/tests/examples/baselines/TestPHFarmerTrivialBundlesSerial.test14.baseline
deleted file mode 100644
index 0877e4920ea..00000000000
--- a/pyomo/pysp/tests/examples/baselines/TestPHFarmerTrivialBundlesSerial.test14.baseline
+++ /dev/null
@@ -1,205 +0,0 @@
-User-defined PH extension module=pyomo.pysp.plugins.phhistoryextension already imported - skipping
-Trying to import module=/Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/examples/pysp/farmer/config/aggregategetter.py
-Module successfully loaded
-Trying to import module=/Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/examples/pysp/farmer/config/rhosetter.py
-Module successfully loaded
-Trying to import module=/Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/examples/pysp/farmer/config/boundsetter.py
-Module successfully loaded
-Initializing PH
-
-Executing user aggregate getter callback function
-Executing user rho setter callback function
-Executing user bound setter callback function
-User-defined PH solution writer module=pyomo.pysp.plugins.jsonsolutionwriter already imported - skipping
-Starting PH
-
-Initiating PH iteration=0
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.2540 First stage cost avg= 113494.4444 Max-Min=10416.67
-Cumulative run-time=0.06 seconds
-
-Initiating PH iteration=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.2540 First stage cost avg= 113494.4444 Max-Min=10416.67
-Cumulative run-time=0.13 seconds
-
-Initiating PH iteration=2
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.2540 First stage cost avg= 113494.4445 Max-Min=10416.67
-Cumulative run-time=0.20 seconds
-
-Initiating PH iteration=3
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.1991 First stage cost avg= 113545.3418 Max-Min= 9341.08
-Cumulative run-time=0.27 seconds
-
-Initiating PH iteration=4
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.1166 First stage cost avg= 113837.6523 Max-Min= 6301.86
-Cumulative run-time=0.33 seconds
-
-Initiating PH iteration=5
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.1032 First stage cost avg= 114197.8075 Max-Min= 3806.58
-Cumulative run-time=0.40 seconds
-
-Initiating PH iteration=6
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.1094 First stage cost avg= 114422.4887 Max-Min= 3132.53
-Cumulative run-time=0.47 seconds
-
-Initiating PH iteration=7
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.1055 First stage cost avg= 114278.3496 Max-Min= 3564.95
-Cumulative run-time=0.54 seconds
-
-Initiating PH iteration=8
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.1022 First stage cost avg= 114107.3631 Max-Min= 4077.91
-Cumulative run-time=0.61 seconds
-
-Initiating PH iteration=9
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.1020 First stage cost avg= 114041.4185 Max-Min= 4275.74
-Cumulative run-time=0.68 seconds
-
-Initiating PH iteration=10
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.1021 First stage cost avg= 114054.4509 Max-Min= 4236.65
-Cumulative run-time=0.75 seconds
-Halting PH - reached maximal iteration count=10
-Number of discrete variables fixed before final plugin calls=0 (total=0)
-Number of continuous variables fixed before final plugin calls=0 (total=3)
-PH algorithm history written to file=ph_history.json
-PH complete
-Convergence history:
-Iteration Metric Value
- 0 0.2540
- 1 0.2540
- 2 0.2540
- 3 0.1991
- 4 0.1166
- 5 0.1032
- 6 0.1094
- 7 0.1055
- 8 0.1022
- 9 0.1020
- 10 0.1021
-
-***********************************************************************************************
->>>THE EXPECTED SUM OF THE STAGE COST VARIABLES=-111591.252155<<<
->>>***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise<<<
-***********************************************************************************************
-Final number of discrete variables fixed=0 (total=0)
-Final number of continuous variables fixed=0 (total=3)
-Final variable values:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 100.0000 80.0000 115.7919 Max-Min: 35.7919 Avg: 98.5973
- Index: [SUGAR_BEETS] Values: 300.0000 300.0000 250.0000 Max-Min: 50.0000 Avg: 283.3333
- Index: [WHEAT] Values: 100.0000 120.0000 134.2081 Max-Min: 34.2081 Avg: 118.0694
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 116000.0000 114400.0000 111763.3526 Max-Min: 4236.6473 Avg: 114054.4509
-Final costs:
-Scenario Tree Costs
-***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise
-----------------------------------------------------
-Tree Nodes:
-
- Name=AboveAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AboveAverageScenario
- Expected cost of (sub)tree rooted at node=-276973.7569
-
- Name=AverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AverageScenario
- Expected cost of (sub)tree rooted at node=-232999.9995
-
- Name=BelowAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-172799.9999
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- AboveAverageNode
- AverageNode
- BelowAverageNode
- Scenarios:
- AboveAverageScenario
- AverageScenario
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-111591.2522
-
-----------------------------------------------------
-Scenarios:
-
- Name=AboveAverageScenario
- Probability=0.3333
- Leaf Node=AboveAverageNode
- Tree node sequence:
- RootNode
- AboveAverageNode
- Stage= FirstStage Cost=111763.3526
- Stage= SecondStage Cost=-276973.7569
- Total scenario cost=-165210.4042
-
- Name=AverageScenario
- Probability=0.3333
- Leaf Node=AverageNode
- Tree node sequence:
- RootNode
- AverageNode
- Stage= FirstStage Cost=114400.0000
- Stage= SecondStage Cost=-232999.9995
- Total scenario cost=-118599.9994
-
- Name=BelowAverageScenario
- Probability=0.3333
- Leaf Node=BelowAverageNode
- Tree node sequence:
- RootNode
- BelowAverageNode
- Stage= FirstStage Cost=116000.0000
- Stage= SecondStage Cost=-172799.9999
- Total scenario cost=-56799.9999
-
-----------------------------------------------------
-
-Total PH execution time=0.75 seconds
-
-Scenario tree solution written to file=ph_solution.json
-
-Total execution time=0.79 seconds
diff --git a/pyomo/pysp/tests/examples/baselines/TestPHFarmerTrivialBundlesSerial.test14_withef.baseline b/pyomo/pysp/tests/examples/baselines/TestPHFarmerTrivialBundlesSerial.test14_withef.baseline
deleted file mode 100644
index 0a0c5cd45e4..00000000000
--- a/pyomo/pysp/tests/examples/baselines/TestPHFarmerTrivialBundlesSerial.test14_withef.baseline
+++ /dev/null
@@ -1,352 +0,0 @@
-User-defined PH extension module=pyomo.pysp.plugins.phhistoryextension already imported - skipping
-Trying to import module=/Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/examples/pysp/farmer/config/aggregategetter.py
-Module successfully loaded
-Trying to import module=/Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/examples/pysp/farmer/config/rhosetter.py
-Module successfully loaded
-Trying to import module=/Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/examples/pysp/farmer/config/boundsetter.py
-Module successfully loaded
-Initializing PH
-
-Executing user aggregate getter callback function
-Executing user rho setter callback function
-Executing user bound setter callback function
-User-defined PH solution writer module=pyomo.pysp.plugins.jsonsolutionwriter already imported - skipping
-Starting PH
-
-Initiating PH iteration=0
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.2540 First stage cost avg= 113494.4444 Max-Min=10416.67
-Cumulative run-time=0.05 seconds
-
-Initiating PH iteration=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.2540 First stage cost avg= 113494.4444 Max-Min=10416.67
-Cumulative run-time=0.11 seconds
-
-Initiating PH iteration=2
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.2540 First stage cost avg= 113494.4445 Max-Min=10416.67
-Cumulative run-time=0.16 seconds
-
-Initiating PH iteration=3
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.1991 First stage cost avg= 113545.3418 Max-Min= 9341.08
-Cumulative run-time=0.22 seconds
-
-Initiating PH iteration=4
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.1166 First stage cost avg= 113837.6523 Max-Min= 6301.86
-Cumulative run-time=0.28 seconds
-
-Initiating PH iteration=5
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.1032 First stage cost avg= 114197.8075 Max-Min= 3806.58
-Cumulative run-time=0.34 seconds
-
-Initiating PH iteration=6
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.1094 First stage cost avg= 114422.4887 Max-Min= 3132.53
-Cumulative run-time=0.40 seconds
-
-Initiating PH iteration=7
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.1055 First stage cost avg= 114278.3496 Max-Min= 3564.95
-Cumulative run-time=0.46 seconds
-
-Initiating PH iteration=8
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.1022 First stage cost avg= 114107.3631 Max-Min= 4077.91
-Cumulative run-time=0.52 seconds
-
-Initiating PH iteration=9
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.1020 First stage cost avg= 114041.4185 Max-Min= 4275.74
-Cumulative run-time=0.59 seconds
-
-Initiating PH iteration=10
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.1021 First stage cost avg= 114054.4509 Max-Min= 4236.65
-Cumulative run-time=0.64 seconds
-Halting PH - reached maximal iteration count=10
-Number of discrete variables fixed before final plugin calls=0 (total=0)
-Number of continuous variables fixed before final plugin calls=0 (total=3)
-PH algorithm history written to file=ph_history.json
-PH complete
-Convergence history:
-Iteration Metric Value
- 0 0.2540
- 1 0.2540
- 2 0.2540
- 3 0.1991
- 4 0.1166
- 5 0.1032
- 6 0.1094
- 7 0.1055
- 8 0.1022
- 9 0.1020
- 10 0.1021
-
-***********************************************************************************************
->>>THE EXPECTED SUM OF THE STAGE COST VARIABLES=-111591.252155<<<
->>>***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise<<<
-***********************************************************************************************
-Final number of discrete variables fixed=0 (total=0)
-Final number of continuous variables fixed=0 (total=3)
-Final variable values:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 100.0000 80.0000 115.7919 Max-Min: 35.7919 Avg: 98.5973
- Index: [SUGAR_BEETS] Values: 300.0000 300.0000 250.0000 Max-Min: 50.0000 Avg: 283.3333
- Index: [WHEAT] Values: 100.0000 120.0000 134.2081 Max-Min: 34.2081 Avg: 118.0694
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 116000.0000 114400.0000 111763.3526 Max-Min: 4236.6473 Avg: 114054.4509
-Final costs:
-Scenario Tree Costs
-***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise
-----------------------------------------------------
-Tree Nodes:
-
- Name=AboveAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AboveAverageScenario
- Expected cost of (sub)tree rooted at node=-276973.7569
-
- Name=AverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AverageScenario
- Expected cost of (sub)tree rooted at node=-232999.9995
-
- Name=BelowAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-172799.9999
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- AboveAverageNode
- AverageNode
- BelowAverageNode
- Scenarios:
- AboveAverageScenario
- AverageScenario
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-111591.2522
-
-----------------------------------------------------
-Scenarios:
-
- Name=AboveAverageScenario
- Probability=0.3333
- Leaf Node=AboveAverageNode
- Tree node sequence:
- RootNode
- AboveAverageNode
- Stage= FirstStage Cost=111763.3526
- Stage= SecondStage Cost=-276973.7569
- Total scenario cost=-165210.4042
-
- Name=AverageScenario
- Probability=0.3333
- Leaf Node=AverageNode
- Tree node sequence:
- RootNode
- AverageNode
- Stage= FirstStage Cost=114400.0000
- Stage= SecondStage Cost=-232999.9995
- Total scenario cost=-118599.9994
-
- Name=BelowAverageScenario
- Probability=0.3333
- Leaf Node=BelowAverageNode
- Tree node sequence:
- RootNode
- BelowAverageNode
- Stage= FirstStage Cost=116000.0000
- Stage= SecondStage Cost=-172799.9999
- Total scenario cost=-56799.9999
-
-----------------------------------------------------
-
-Total PH execution time=0.65 seconds
-
-Scenario tree solution written to file=ph_solution.json
-Pushing fixed variable statuses to scenario instances
-Number of discrete variables fixed prior to ef creation=0 (total=0)
-Number of continuous variables fixed prior to ef creation=0 (total=3)
-Creating extensive form for remainder problem
-Time to construct extensive form instance=0.00 seconds
-Queuing extensive form solve
-Waiting for extensive form solve
-Done with extensive form solve - loading results
-Storing solution in scenario tree
-Time to solve and load results for the extensive form=0.02 seconds
-
-***********************************************************************************************
->>>THE EXPECTED SUM OF THE STAGE COST VARIABLES=-108390.00001<<<
-***********************************************************************************************
-
-Extensive form solution:
-----------------------------------------------------
-Tree Nodes:
-
- Name=AboveAverageNode
- Stage=SecondStage
- Parent=RootNode
- Variables:
- QuantitySubQuotaSold[CORN]=48.0
- QuantitySubQuotaSold[SUGAR_BEETS]=6000.0
- QuantitySubQuotaSold[WHEAT]=310.0
-
- Name=AverageNode
- Stage=SecondStage
- Parent=RootNode
- Variables:
- QuantitySubQuotaSold[SUGAR_BEETS]=5000.0
- QuantitySubQuotaSold[WHEAT]=225.0
-
- Name=BelowAverageNode
- Stage=SecondStage
- Parent=RootNode
- Variables:
- QuantityPurchased[CORN]=48.0
- QuantitySubQuotaSold[SUGAR_BEETS]=4000.0
- QuantitySubQuotaSold[WHEAT]=140.0
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Variables:
- DevotedAcreage[CORN]=80.0
- DevotedAcreage[SUGAR_BEETS]=250.0
- DevotedAcreage[WHEAT]=170.0
-
-
-Extensive form costs:
-Scenario Tree Costs
-***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise
-----------------------------------------------------
-Tree Nodes:
-
- Name=AboveAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AboveAverageScenario
- Expected cost of (sub)tree rooted at node=-275900.0000
-
- Name=AverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AverageScenario
- Expected cost of (sub)tree rooted at node=-218250.0000
-
- Name=BelowAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-157720.0000
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- AboveAverageNode
- AverageNode
- BelowAverageNode
- Scenarios:
- AboveAverageScenario
- AverageScenario
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-108390.0000
-
-----------------------------------------------------
-Scenarios:
-
- Name=AboveAverageScenario
- Probability=0.3333
- Leaf Node=AboveAverageNode
- Tree node sequence:
- RootNode
- AboveAverageNode
- Stage= FirstStage Cost=108900.0000
- Stage= SecondStage Cost=-275900.0000
- Total scenario cost=-167000.0000
-
- Name=AverageScenario
- Probability=0.3333
- Leaf Node=AverageNode
- Tree node sequence:
- RootNode
- AverageNode
- Stage= FirstStage Cost=108900.0000
- Stage= SecondStage Cost=-218250.0000
- Total scenario cost=-109350.0000
-
- Name=BelowAverageScenario
- Probability=0.3333
- Leaf Node=BelowAverageNode
- Tree node sequence:
- RootNode
- BelowAverageNode
- Stage= FirstStage Cost=108900.0000
- Stage= SecondStage Cost=-157720.0000
- Total scenario cost=-48820.0000
-
-----------------------------------------------------
-Scenario tree solution written to file=postphef_solution.json
-
-Total execution time=0.71 seconds
diff --git a/pyomo/pysp/tests/examples/baselines/TestPHFarmerTrivialBundlesSerial.test1_withef.baseline b/pyomo/pysp/tests/examples/baselines/TestPHFarmerTrivialBundlesSerial.test1_withef.baseline
deleted file mode 100644
index af2ca18272a..00000000000
--- a/pyomo/pysp/tests/examples/baselines/TestPHFarmerTrivialBundlesSerial.test1_withef.baseline
+++ /dev/null
@@ -1,527 +0,0 @@
-User-defined PH extension module=pyomo.pysp.plugins.phhistoryextension already imported - skipping
-Initializing PH
-
-User-defined PH solution writer module=pyomo.pysp.plugins.jsonsolutionwriter already imported - skipping
-Starting PH
-
-Initiating PH iteration=0
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.2540 First stage cost avg= 113494.4444 Max-Min=10416.67
-Cumulative run-time=0.04 seconds
-
-Initiating PH iteration=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.1259 First stage cost avg= 113107.2221 Max-Min= 6943.89
-Cumulative run-time=0.10 seconds
-
-Initiating PH iteration=2
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0816 First stage cost avg= 112954.6296 Max-Min= 2234.82
-Cumulative run-time=0.15 seconds
-
-Initiating PH iteration=3
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0796 First stage cost avg= 112963.0248 Max-Min= 2375.31
-Cumulative run-time=0.21 seconds
-
-Initiating PH iteration=4
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0776 First stage cost avg= 112915.6071 Max-Min= 3047.08
-Cumulative run-time=0.26 seconds
-
-Initiating PH iteration=5
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0794 First stage cost avg= 112825.3926 Max-Min= 3339.81
-Cumulative run-time=0.32 seconds
-
-Initiating PH iteration=6
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0668 First stage cost avg= 112317.9502 Max-Min= 2019.60
-Cumulative run-time=0.37 seconds
-
-Initiating PH iteration=7
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0542 First stage cost avg= 111364.4660 Max-Min= 1181.85
-Cumulative run-time=0.43 seconds
-
-Initiating PH iteration=8
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0360 First stage cost avg= 110283.4074 Max-Min= 463.23
-Cumulative run-time=0.48 seconds
-
-Initiating PH iteration=9
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0243 First stage cost avg= 109399.2542 Max-Min= 363.90
-Cumulative run-time=0.54 seconds
-
-Initiating PH iteration=10
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0256 First stage cost avg= 108834.1930 Max-Min= 933.90
-Cumulative run-time=0.60 seconds
-
-Initiating PH iteration=11
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0248 First stage cost avg= 108575.3219 Max-Min= 918.57
-Cumulative run-time=0.66 seconds
-
-Initiating PH iteration=12
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0163 First stage cost avg= 108513.5347 Max-Min= 591.25
-Cumulative run-time=0.71 seconds
-
-Initiating PH iteration=13
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0081 First stage cost avg= 108528.2899 Max-Min= 175.95
-Cumulative run-time=0.76 seconds
-
-Initiating PH iteration=14
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0168 First stage cost avg= 108561.6577 Max-Min= 274.77
-Cumulative run-time=0.82 seconds
-
-Initiating PH iteration=15
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0163 First stage cost avg= 108604.0579 Max-Min= 295.14
-Cumulative run-time=0.87 seconds
-
-Initiating PH iteration=16
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0098 First stage cost avg= 108667.3583 Max-Min= 127.67
-Cumulative run-time=0.93 seconds
-
-Initiating PH iteration=17
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0032 First stage cost avg= 108758.4237 Max-Min= 59.69
-Cumulative run-time=0.98 seconds
-
-Initiating PH iteration=18
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0026 First stage cost avg= 108868.1277 Max-Min= 101.79
-Cumulative run-time=1.04 seconds
-
-Initiating PH iteration=19
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0039 First stage cost avg= 108975.3089 Max-Min= 73.41
-Cumulative run-time=1.09 seconds
-
-Initiating PH iteration=20
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0043 First stage cost avg= 109057.4144 Max-Min= 39.47
-Cumulative run-time=1.15 seconds
-
-Initiating PH iteration=21
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0044 First stage cost avg= 109099.7145 Max-Min= 87.57
-Cumulative run-time=1.21 seconds
-
-Initiating PH iteration=22
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0040 First stage cost avg= 109099.1239 Max-Min= 104.22
-Cumulative run-time=1.26 seconds
-
-Initiating PH iteration=23
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0032 First stage cost avg= 109062.8322 Max-Min= 88.54
-Cumulative run-time=1.32 seconds
-
-Initiating PH iteration=24
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0021 First stage cost avg= 109004.1156 Max-Min= 54.49
-Cumulative run-time=1.37 seconds
-
-Initiating PH iteration=25
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0008 First stage cost avg= 108937.8039 Max-Min= 16.89
-Cumulative run-time=1.43 seconds
-
-Initiating PH iteration=26
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0005 First stage cost avg= 108876.8822 Max-Min= 14.27
-Cumulative run-time=1.48 seconds
-
-Initiating PH iteration=27
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0015 First stage cost avg= 108830.6201 Max-Min= 34.81
-Cumulative run-time=1.54 seconds
-
-Initiating PH iteration=28
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0021 First stage cost avg= 108803.9655 Max-Min= 44.57
-Cumulative run-time=1.59 seconds
-
-Initiating PH iteration=29
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0023 First stage cost avg= 108797.7661 Max-Min= 45.24
-Cumulative run-time=1.65 seconds
-
-Initiating PH iteration=30
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0020 First stage cost avg= 108809.4793 Max-Min= 39.01
-Cumulative run-time=1.70 seconds
-
-Initiating PH iteration=31
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0015 First stage cost avg= 108834.1639 Max-Min= 28.07
-Cumulative run-time=1.75 seconds
-
-Initiating PH iteration=32
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0008 First stage cost avg= 108865.6237 Max-Min= 14.67
-Cumulative run-time=1.81 seconds
-
-Initiating PH iteration=33
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0001 First stage cost avg= 108897.5679 Max-Min= 1.06
-Cumulative run-time=1.86 seconds
-PH converged - convergence metric is below threshold=0.0001
-Number of discrete variables fixed before final plugin calls=0 (total=0)
-Number of continuous variables fixed before final plugin calls=0 (total=3)
-PH algorithm history written to file=ph_history.json
-PH complete
-Convergence history:
-Iteration Metric Value
- 0 0.2540
- 1 0.1259
- 2 0.0816
- 3 0.0796
- 4 0.0776
- 5 0.0794
- 6 0.0668
- 7 0.0542
- 8 0.0360
- 9 0.0243
- 10 0.0256
- 11 0.0248
- 12 0.0163
- 13 0.0081
- 14 0.0168
- 15 0.0163
- 16 0.0098
- 17 0.0032
- 18 0.0026
- 19 0.0039
- 20 0.0043
- 21 0.0044
- 22 0.0040
- 23 0.0032
- 24 0.0021
- 25 0.0008
- 26 0.0005
- 27 0.0015
- 28 0.0021
- 29 0.0023
- 30 0.0020
- 31 0.0015
- 32 0.0008
- 33 0.0001
-
-***********************************************************************************************
->>>THE EXPECTED SUM OF THE STAGE COST VARIABLES=-108388.378639<<<
->>>***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise<<<
-***********************************************************************************************
-Final number of discrete variables fixed=0 (total=0)
-Final number of continuous variables fixed=0 (total=3)
-Final variable values:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 79.9844 80.0000 79.9768 Max-Min: 0.0232 Avg: 79.9871
- Index: [SUGAR_BEETS] Values: 249.9848 249.9770 250.0000 Max-Min: 0.0230 Avg: 249.9873
- Index: [WHEAT] Values: 170.0308 170.0230 170.0232 Max-Min: 0.0078 Avg: 170.0256
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108897.0836 108897.4725 108898.1476 Max-Min: 1.0640 Avg: 108897.5679
-Final costs:
-Scenario Tree Costs
-***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise
-----------------------------------------------------
-Tree Nodes:
-
- Name=AboveAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AboveAverageScenario
- Expected cost of (sub)tree rooted at node=-275899.3041
-
- Name=AverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AverageScenario
- Expected cost of (sub)tree rooted at node=-218243.2209
-
- Name=BelowAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-157713.8615
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- AboveAverageNode
- AverageNode
- BelowAverageNode
- Scenarios:
- AboveAverageScenario
- AverageScenario
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-108388.3786
-
-----------------------------------------------------
-Scenarios:
-
- Name=AboveAverageScenario
- Probability=0.3333
- Leaf Node=AboveAverageNode
- Tree node sequence:
- RootNode
- AboveAverageNode
- Stage= FirstStage Cost=108898.1476
- Stage= SecondStage Cost=-275899.3041
- Total scenario cost=-167001.1565
-
- Name=AverageScenario
- Probability=0.3333
- Leaf Node=AverageNode
- Tree node sequence:
- RootNode
- AverageNode
- Stage= FirstStage Cost=108897.4725
- Stage= SecondStage Cost=-218243.2209
- Total scenario cost=-109345.7484
-
- Name=BelowAverageScenario
- Probability=0.3333
- Leaf Node=BelowAverageNode
- Tree node sequence:
- RootNode
- BelowAverageNode
- Stage= FirstStage Cost=108897.0836
- Stage= SecondStage Cost=-157713.8615
- Total scenario cost=-48816.7780
-
-----------------------------------------------------
-
-Total PH execution time=1.87 seconds
-
-Scenario tree solution written to file=ph_solution.json
-Pushing fixed variable statuses to scenario instances
-Number of discrete variables fixed prior to ef creation=0 (total=0)
-Number of continuous variables fixed prior to ef creation=0 (total=3)
-Creating extensive form for remainder problem
-Time to construct extensive form instance=0.00 seconds
-Queuing extensive form solve
-Waiting for extensive form solve
-Done with extensive form solve - loading results
-Storing solution in scenario tree
-Time to solve and load results for the extensive form=0.02 seconds
-
-***********************************************************************************************
->>>THE EXPECTED SUM OF THE STAGE COST VARIABLES=-108390.00001<<<
-***********************************************************************************************
-
-Extensive form solution:
-----------------------------------------------------
-Tree Nodes:
-
- Name=AboveAverageNode
- Stage=SecondStage
- Parent=RootNode
- Variables:
- QuantitySubQuotaSold[CORN]=48.0
- QuantitySubQuotaSold[SUGAR_BEETS]=6000.0
- QuantitySubQuotaSold[WHEAT]=310.0
-
- Name=AverageNode
- Stage=SecondStage
- Parent=RootNode
- Variables:
- QuantitySubQuotaSold[SUGAR_BEETS]=5000.0
- QuantitySubQuotaSold[WHEAT]=225.0
-
- Name=BelowAverageNode
- Stage=SecondStage
- Parent=RootNode
- Variables:
- QuantityPurchased[CORN]=48.0
- QuantitySubQuotaSold[SUGAR_BEETS]=4000.0
- QuantitySubQuotaSold[WHEAT]=140.0
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Variables:
- DevotedAcreage[CORN]=80.0
- DevotedAcreage[SUGAR_BEETS]=250.0
- DevotedAcreage[WHEAT]=170.0
-
-
-Extensive form costs:
-Scenario Tree Costs
-***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise
-----------------------------------------------------
-Tree Nodes:
-
- Name=AboveAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AboveAverageScenario
- Expected cost of (sub)tree rooted at node=-275900.0000
-
- Name=AverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AverageScenario
- Expected cost of (sub)tree rooted at node=-218250.0000
-
- Name=BelowAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-157720.0000
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- AboveAverageNode
- AverageNode
- BelowAverageNode
- Scenarios:
- AboveAverageScenario
- AverageScenario
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-108390.0000
-
-----------------------------------------------------
-Scenarios:
-
- Name=AboveAverageScenario
- Probability=0.3333
- Leaf Node=AboveAverageNode
- Tree node sequence:
- RootNode
- AboveAverageNode
- Stage= FirstStage Cost=108900.0000
- Stage= SecondStage Cost=-275900.0000
- Total scenario cost=-167000.0000
-
- Name=AverageScenario
- Probability=0.3333
- Leaf Node=AverageNode
- Tree node sequence:
- RootNode
- AverageNode
- Stage= FirstStage Cost=108900.0000
- Stage= SecondStage Cost=-218250.0000
- Total scenario cost=-109350.0000
-
- Name=BelowAverageScenario
- Probability=0.3333
- Leaf Node=BelowAverageNode
- Tree node sequence:
- RootNode
- BelowAverageNode
- Stage= FirstStage Cost=108900.0000
- Stage= SecondStage Cost=-157720.0000
- Total scenario cost=-48820.0000
-
-----------------------------------------------------
-Scenario tree solution written to file=postphef_solution.json
-
-Total execution time=1.93 seconds
diff --git a/pyomo/pysp/tests/examples/baselines/TestPHFarmerTrivialBundlesSerial.test2.baseline b/pyomo/pysp/tests/examples/baselines/TestPHFarmerTrivialBundlesSerial.test2.baseline
deleted file mode 100644
index e1795ceb42f..00000000000
--- a/pyomo/pysp/tests/examples/baselines/TestPHFarmerTrivialBundlesSerial.test2.baseline
+++ /dev/null
@@ -1,462 +0,0 @@
-User-defined PH extension module=pyomo.pysp.plugins.phhistoryextension already imported - skipping
-Initializing PH
-
-User-defined PH solution writer module=pyomo.pysp.plugins.jsonsolutionwriter already imported - skipping
-Starting PH
-
-Initiating PH iteration=0
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 98.5185 First stage cost avg= 113494.4444 Max-Min=10416.67
-Cumulative run-time=0.06 seconds
-
-Initiating PH iteration=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 56.7654 First stage cost avg= 113107.2221 Max-Min= 6943.89
-Cumulative run-time=0.13 seconds
-
-Initiating PH iteration=2
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 37.3580 First stage cost avg= 112954.6296 Max-Min= 2234.82
-Cumulative run-time=0.20 seconds
-
-Initiating PH iteration=3
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 36.5075 First stage cost avg= 112963.0248 Max-Min= 2375.31
-Cumulative run-time=0.27 seconds
-
-Initiating PH iteration=4
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 35.4086 First stage cost avg= 112915.6071 Max-Min= 3047.08
-Cumulative run-time=0.35 seconds
-
-Initiating PH iteration=5
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 36.2217 First stage cost avg= 112825.3926 Max-Min= 3339.81
-Cumulative run-time=0.42 seconds
-
-Initiating PH iteration=6
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 29.3303 First stage cost avg= 112317.9502 Max-Min= 2019.60
-Cumulative run-time=0.49 seconds
-
-Initiating PH iteration=7
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 21.9702 First stage cost avg= 111364.4660 Max-Min= 1181.85
-Cumulative run-time=0.56 seconds
-
-Initiating PH iteration=8
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 13.8077 First stage cost avg= 110283.4074 Max-Min= 463.23
-Cumulative run-time=0.63 seconds
-
-Initiating PH iteration=9
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 9.5141 First stage cost avg= 109399.2542 Max-Min= 363.90
-Cumulative run-time=0.70 seconds
-
-Initiating PH iteration=10
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 12.0668 First stage cost avg= 108834.1930 Max-Min= 933.90
-Cumulative run-time=0.77 seconds
-
-Initiating PH iteration=11
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 11.6644 First stage cost avg= 108575.3219 Max-Min= 918.57
-Cumulative run-time=0.85 seconds
-
-Initiating PH iteration=12
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 7.5080 First stage cost avg= 108513.5347 Max-Min= 591.25
-Cumulative run-time=0.92 seconds
-
-Initiating PH iteration=13
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 3.1070 First stage cost avg= 108528.2899 Max-Min= 175.95
-Cumulative run-time=0.99 seconds
-
-Initiating PH iteration=14
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 5.5300 First stage cost avg= 108561.6577 Max-Min= 274.77
-Cumulative run-time=1.07 seconds
-
-Initiating PH iteration=15
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 5.4381 First stage cost avg= 108604.0579 Max-Min= 295.14
-Cumulative run-time=1.14 seconds
-
-Initiating PH iteration=16
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 3.2812 First stage cost avg= 108667.3583 Max-Min= 127.67
-Cumulative run-time=1.21 seconds
-
-Initiating PH iteration=17
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 1.1980 First stage cost avg= 108758.4237 Max-Min= 59.69
-Cumulative run-time=1.28 seconds
-
-Initiating PH iteration=18
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 1.0800 First stage cost avg= 108868.1277 Max-Min= 101.79
-Cumulative run-time=1.35 seconds
-
-Initiating PH iteration=19
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 1.3642 First stage cost avg= 108975.3089 Max-Min= 73.41
-Cumulative run-time=1.42 seconds
-
-Initiating PH iteration=20
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 1.5168 First stage cost avg= 109057.4144 Max-Min= 39.47
-Cumulative run-time=1.49 seconds
-
-Initiating PH iteration=21
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 1.6833 First stage cost avg= 109099.7145 Max-Min= 87.57
-Cumulative run-time=1.56 seconds
-
-Initiating PH iteration=22
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 1.6446 First stage cost avg= 109099.1239 Max-Min= 104.22
-Cumulative run-time=1.63 seconds
-
-Initiating PH iteration=23
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 1.3382 First stage cost avg= 109062.8322 Max-Min= 88.54
-Cumulative run-time=1.70 seconds
-
-Initiating PH iteration=24
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.8599 First stage cost avg= 109004.1156 Max-Min= 54.49
-Cumulative run-time=1.78 seconds
-
-Initiating PH iteration=25
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.3180 First stage cost avg= 108937.8039 Max-Min= 16.89
-Cumulative run-time=1.85 seconds
-
-Initiating PH iteration=26
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.1981 First stage cost avg= 108876.8822 Max-Min= 14.27
-Cumulative run-time=1.92 seconds
-
-Initiating PH iteration=27
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.5760 First stage cost avg= 108830.6201 Max-Min= 34.81
-Cumulative run-time=1.99 seconds
-
-Initiating PH iteration=28
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.8045 First stage cost avg= 108803.9655 Max-Min= 44.57
-Cumulative run-time=2.06 seconds
-
-Initiating PH iteration=29
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.8608 First stage cost avg= 108797.7661 Max-Min= 45.24
-Cumulative run-time=2.13 seconds
-
-Initiating PH iteration=30
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.7643 First stage cost avg= 108809.4793 Max-Min= 39.01
-Cumulative run-time=2.21 seconds
-
-Initiating PH iteration=31
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.5565 First stage cost avg= 108834.1639 Max-Min= 28.07
-Cumulative run-time=2.28 seconds
-
-Initiating PH iteration=32
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.2905 First stage cost avg= 108865.6237 Max-Min= 14.67
-Cumulative run-time=2.35 seconds
-
-Initiating PH iteration=33
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0205 First stage cost avg= 108897.5679 Max-Min= 1.06
-Cumulative run-time=2.42 seconds
-
-Initiating PH iteration=34
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.2079 First stage cost avg= 108924.6334 Max-Min= 10.64
-Cumulative run-time=2.49 seconds
-
-Initiating PH iteration=35
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.3637 First stage cost avg= 108943.1232 Max-Min= 18.81
-Cumulative run-time=2.57 seconds
-
-Initiating PH iteration=36
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.4328 First stage cost avg= 108951.3651 Max-Min= 22.58
-Cumulative run-time=2.64 seconds
-
-Initiating PH iteration=37
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.4183 First stage cost avg= 108949.6731 Max-Min= 21.96
-Cumulative run-time=2.71 seconds
-
-Initiating PH iteration=38
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.3365 First stage cost avg= 108939.9742 Max-Min= 17.74
-Cumulative run-time=2.78 seconds
-
-Initiating PH iteration=39
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.2122 First stage cost avg= 108925.2193 Max-Min= 11.21
-Cumulative run-time=2.85 seconds
-
-Initiating PH iteration=40
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0733 First stage cost avg= 108908.7151 Max-Min= 3.89
-Cumulative run-time=2.92 seconds
-
-Initiating PH iteration=41
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0547 First stage cost avg= 108893.5090 Max-Min= 2.87
-Cumulative run-time=2.99 seconds
-
-Initiating PH iteration=42
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.1522 First stage cost avg= 108881.9216 Max-Min= 8.01
-Cumulative run-time=3.07 seconds
-
-Initiating PH iteration=43
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.2081 First stage cost avg= 108875.2811 Max-Min= 10.94
-Cumulative run-time=3.14 seconds
-
-Initiating PH iteration=44
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.2200 First stage cost avg= 108873.8685 Max-Min= 11.56
-Cumulative run-time=3.21 seconds
-
-Initiating PH iteration=45
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.1933 First stage cost avg= 108877.0466 Max-Min= 10.15
-Cumulative run-time=3.28 seconds
-
-Initiating PH iteration=46
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.1388 First stage cost avg= 108883.5201 Max-Min= 7.28
-Cumulative run-time=3.35 seconds
-
-Initiating PH iteration=47
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0702 First stage cost avg= 108891.6607 Max-Min= 3.68
-Cumulative run-time=3.42 seconds
-
-Initiating PH iteration=48
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0014 First stage cost avg= 108899.8341 Max-Min= 0.07
-Cumulative run-time=3.49 seconds
-PH converged - convergence metric is below threshold=0.01
-Number of discrete variables fixed before final plugin calls=0 (total=0)
-Number of continuous variables fixed before final plugin calls=0 (total=3)
-PH algorithm history written to file=ph_history.json
-PH complete
-Convergence history:
-Iteration Metric Value
- 0 98.5185
- 1 56.7654
- 2 37.3580
- 3 36.5075
- 4 35.4086
- 5 36.2217
- 6 29.3303
- 7 21.9702
- 8 13.8077
- 9 9.5141
- 10 12.0668
- 11 11.6644
- 12 7.5080
- 13 3.1070
- 14 5.5300
- 15 5.4381
- 16 3.2812
- 17 1.1980
- 18 1.0800
- 19 1.3642
- 20 1.5168
- 21 1.6833
- 22 1.6446
- 23 1.3382
- 24 0.8599
- 25 0.3180
- 26 0.1981
- 27 0.5760
- 28 0.8045
- 29 0.8608
- 30 0.7643
- 31 0.5565
- 32 0.2905
- 33 0.0205
- 34 0.2079
- 35 0.3637
- 36 0.4328
- 37 0.4183
- 38 0.3365
- 39 0.2122
- 40 0.0733
- 41 0.0547
- 42 0.1522
- 43 0.2081
- 44 0.2200
- 45 0.1933
- 46 0.1388
- 47 0.0702
- 48 0.0014
-
-***********************************************************************************************
->>>THE EXPECTED SUM OF THE STAGE COST VARIABLES=-108389.889265<<<
->>>***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise<<<
-***********************************************************************************************
-Final number of discrete variables fixed=0 (total=0)
-Final number of continuous variables fixed=0 (total=3)
-Final variable values:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 79.9989 80.0000 79.9984 Max-Min: 0.0016 Avg: 79.9991
- Index: [SUGAR_BEETS] Values: 249.9990 249.9984 250.0000 Max-Min: 0.0016 Avg: 249.9991
- Index: [WHEAT] Values: 170.0021 170.0016 170.0016 Max-Min: 0.0005 Avg: 170.0018
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108899.8013 108899.8284 108899.8727 Max-Min: 0.0714 Avg: 108899.8341
-Final costs:
-Scenario Tree Costs
-***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise
-----------------------------------------------------
-Tree Nodes:
-
- Name=AboveAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AboveAverageScenario
- Expected cost of (sub)tree rooted at node=-275899.9510
-
- Name=AverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AverageScenario
- Expected cost of (sub)tree rooted at node=-218249.5388
-
- Name=BelowAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-157719.5818
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- AboveAverageNode
- AverageNode
- BelowAverageNode
- Scenarios:
- AboveAverageScenario
- AverageScenario
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-108389.8893
-
-----------------------------------------------------
-Scenarios:
-
- Name=AboveAverageScenario
- Probability=0.3333
- Leaf Node=AboveAverageNode
- Tree node sequence:
- RootNode
- AboveAverageNode
- Stage= FirstStage Cost=108899.8727
- Stage= SecondStage Cost=-275899.9510
- Total scenario cost=-167000.0783
-
- Name=AverageScenario
- Probability=0.3333
- Leaf Node=AverageNode
- Tree node sequence:
- RootNode
- AverageNode
- Stage= FirstStage Cost=108899.8284
- Stage= SecondStage Cost=-218249.5388
- Total scenario cost=-109349.7104
-
- Name=BelowAverageScenario
- Probability=0.3333
- Leaf Node=BelowAverageNode
- Tree node sequence:
- RootNode
- BelowAverageNode
- Stage= FirstStage Cost=108899.8013
- Stage= SecondStage Cost=-157719.5818
- Total scenario cost=-48819.7805
-
-----------------------------------------------------
-
-Total PH execution time=3.50 seconds
-
-Scenario tree solution written to file=ph_solution.json
-
-Total execution time=3.54 seconds
diff --git a/pyomo/pysp/tests/examples/baselines/TestPHFarmerTrivialBundlesSerial.test3.baseline b/pyomo/pysp/tests/examples/baselines/TestPHFarmerTrivialBundlesSerial.test3.baseline
deleted file mode 100644
index 268e5d96bed..00000000000
--- a/pyomo/pysp/tests/examples/baselines/TestPHFarmerTrivialBundlesSerial.test3.baseline
+++ /dev/null
@@ -1,189 +0,0 @@
-User-defined PH extension module=pyomo.pysp.plugins.phhistoryextension already imported - skipping
-Initializing PH
-
-User-defined PH solution writer module=pyomo.pysp.plugins.jsonsolutionwriter already imported - skipping
-Starting PH
-
-Initiating PH iteration=0
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.2540 First stage cost avg= 113494.4444 Max-Min=10416.67
-Cumulative run-time=0.06 seconds
-
-Initiating PH iteration=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.1307 First stage cost avg= 113073.3333 Max-Min= 7180.00
-Cumulative run-time=0.13 seconds
-
-Initiating PH iteration=2
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0872 First stage cost avg= 113259.7778 Max-Min= 1736.67
-Cumulative run-time=0.20 seconds
-
-Initiating PH iteration=3
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0793 First stage cost avg= 113339.1852 Max-Min= 1836.89
-Cumulative run-time=0.27 seconds
-
-Initiating PH iteration=4
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0820 First stage cost avg= 112746.3951 Max-Min= 3745.63
-Cumulative run-time=0.34 seconds
-
-Initiating PH iteration=5
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0828 First stage cost avg= 112327.9383 Max-Min= 4381.88
-Cumulative run-time=0.41 seconds
-
-Initiating PH iteration=6
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0561 First stage cost avg= 112125.1852 Max-Min= 1027.56
-Cumulative run-time=0.48 seconds
-
-Initiating PH iteration=7
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0625 First stage cost avg= 111694.0412 Max-Min= 2320.99
-Cumulative run-time=0.55 seconds
-
-Initiating PH iteration=8
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0342 First stage cost avg= 111355.5172 Max-Min= 1015.57
-Cumulative run-time=0.62 seconds
-
-Initiating PH iteration=9
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0000 First stage cost avg= 111355.5172 Max-Min= 0.00
-Cumulative run-time=0.69 seconds
-PH converged - convergence metric is below threshold=0.0001
-Number of discrete variables fixed before final plugin calls=0 (total=0)
-Number of continuous variables fixed before final plugin calls=0 (total=3)
-PH algorithm history written to file=ph_history.json
-PH complete
-Convergence history:
-Iteration Metric Value
- 0 0.2540
- 1 0.1307
- 2 0.0872
- 3 0.0793
- 4 0.0820
- 5 0.0828
- 6 0.0561
- 7 0.0625
- 8 0.0342
- 9 0.0000
-
-***********************************************************************************************
->>>THE EXPECTED SUM OF THE STAGE COST VARIABLES=-107958.896605<<<
->>>***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise<<<
-***********************************************************************************************
-Final number of discrete variables fixed=0 (total=0)
-Final number of continuous variables fixed=0 (total=3)
-Final variable values:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 88.4631 88.4631 88.4631 Max-Min: 0.0000 Avg: 88.4631
- Index: [SUGAR_BEETS] Values: 266.1679 266.1679 266.1679 Max-Min: 0.0000 Avg: 266.1679
- Index: [WHEAT] Values: 145.3690 145.3690 145.3690 Max-Min: 0.0000 Avg: 145.3690
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 111355.5172 111355.5172 111355.5172 Max-Min: 0.0000 Avg: 111355.5172
-Final costs:
-Scenario Tree Costs
-***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise
-----------------------------------------------------
-Tree Nodes:
-
- Name=AboveAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AboveAverageScenario
- Expected cost of (sub)tree rooted at node=-271788.5596
-
- Name=AverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AverageScenario
- Expected cost of (sub)tree rooted at node=-223231.1084
-
- Name=BelowAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-162923.5731
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- AboveAverageNode
- AverageNode
- BelowAverageNode
- Scenarios:
- AboveAverageScenario
- AverageScenario
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-107958.8966
-
-----------------------------------------------------
-Scenarios:
-
- Name=AboveAverageScenario
- Probability=0.3333
- Leaf Node=AboveAverageNode
- Tree node sequence:
- RootNode
- AboveAverageNode
- Stage= FirstStage Cost=111355.5172
- Stage= SecondStage Cost=-271788.5596
- Total scenario cost=-160433.0424
-
- Name=AverageScenario
- Probability=0.3333
- Leaf Node=AverageNode
- Tree node sequence:
- RootNode
- AverageNode
- Stage= FirstStage Cost=111355.5172
- Stage= SecondStage Cost=-223231.1084
- Total scenario cost=-111875.5913
-
- Name=BelowAverageScenario
- Probability=0.3333
- Leaf Node=BelowAverageNode
- Tree node sequence:
- RootNode
- BelowAverageNode
- Stage= FirstStage Cost=111355.5172
- Stage= SecondStage Cost=-162923.5731
- Total scenario cost=-51568.0560
-
-----------------------------------------------------
-
-Total PH execution time=0.70 seconds
-
-Scenario tree solution written to file=ph_solution.json
-
-Total execution time=0.74 seconds
diff --git a/pyomo/pysp/tests/examples/baselines/TestPHFarmerTrivialBundlesSerial.test4.baseline b/pyomo/pysp/tests/examples/baselines/TestPHFarmerTrivialBundlesSerial.test4.baseline
deleted file mode 100644
index 15cdf18a69d..00000000000
--- a/pyomo/pysp/tests/examples/baselines/TestPHFarmerTrivialBundlesSerial.test4.baseline
+++ /dev/null
@@ -1,357 +0,0 @@
-User-defined PH extension module=pyomo.pysp.plugins.phhistoryextension already imported - skipping
-Initializing PH
-
-User-defined PH solution writer module=pyomo.pysp.plugins.jsonsolutionwriter already imported - skipping
-Starting PH
-
-Initiating PH iteration=0
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.2540 First stage cost avg= 113494.4444 Max-Min=10416.67
-Cumulative run-time=0.06 seconds
-
-Initiating PH iteration=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.1259 First stage cost avg= 113107.2221 Max-Min= 6943.89
-Cumulative run-time=0.13 seconds
-
-Initiating PH iteration=2
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0816 First stage cost avg= 112954.6296 Max-Min= 2234.82
-Cumulative run-time=0.20 seconds
-
-Initiating PH iteration=3
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0796 First stage cost avg= 112963.0248 Max-Min= 2375.31
-Cumulative run-time=0.27 seconds
-
-Initiating PH iteration=4
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0776 First stage cost avg= 112915.6071 Max-Min= 3047.08
-Cumulative run-time=0.34 seconds
-
-Initiating PH iteration=5
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0794 First stage cost avg= 112825.3926 Max-Min= 3339.81
-Cumulative run-time=0.41 seconds
-
-Initiating PH iteration=6
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0668 First stage cost avg= 112317.9502 Max-Min= 2019.60
-Cumulative run-time=0.48 seconds
-
-Initiating PH iteration=7
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0542 First stage cost avg= 111364.4660 Max-Min= 1181.85
-Cumulative run-time=0.55 seconds
-
-Initiating PH iteration=8
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0360 First stage cost avg= 110283.4074 Max-Min= 463.23
-Cumulative run-time=0.62 seconds
-
-Initiating PH iteration=9
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0243 First stage cost avg= 109399.2542 Max-Min= 363.90
-Cumulative run-time=0.69 seconds
-
-Initiating PH iteration=10
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0256 First stage cost avg= 108834.1930 Max-Min= 933.90
-Cumulative run-time=0.77 seconds
-
-Initiating PH iteration=11
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0248 First stage cost avg= 108575.3219 Max-Min= 918.57
-Cumulative run-time=0.84 seconds
-
-Initiating PH iteration=12
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0163 First stage cost avg= 108513.5347 Max-Min= 591.25
-Cumulative run-time=0.92 seconds
-
-Initiating PH iteration=13
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0081 First stage cost avg= 108528.2899 Max-Min= 175.95
-Cumulative run-time=0.99 seconds
-
-Initiating PH iteration=14
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0168 First stage cost avg= 108561.6577 Max-Min= 274.77
-Cumulative run-time=1.06 seconds
-
-Initiating PH iteration=15
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0163 First stage cost avg= 108604.0579 Max-Min= 295.14
-Cumulative run-time=1.13 seconds
-
-Initiating PH iteration=16
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0098 First stage cost avg= 108667.3583 Max-Min= 127.67
-Cumulative run-time=1.20 seconds
-
-Initiating PH iteration=17
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0032 First stage cost avg= 108758.4237 Max-Min= 59.69
-Cumulative run-time=1.27 seconds
-
-Initiating PH iteration=18
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0026 First stage cost avg= 108868.1277 Max-Min= 101.79
-Cumulative run-time=1.35 seconds
-
-Initiating PH iteration=19
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0039 First stage cost avg= 108975.3089 Max-Min= 73.41
-Cumulative run-time=1.42 seconds
-
-Initiating PH iteration=20
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0043 First stage cost avg= 109057.4144 Max-Min= 39.47
-Cumulative run-time=1.49 seconds
-
-Initiating PH iteration=21
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0044 First stage cost avg= 109099.7145 Max-Min= 87.57
-Cumulative run-time=1.56 seconds
-
-Initiating PH iteration=22
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0040 First stage cost avg= 109099.1239 Max-Min= 104.22
-Cumulative run-time=1.63 seconds
-
-Initiating PH iteration=23
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0032 First stage cost avg= 109062.8322 Max-Min= 88.54
-Cumulative run-time=1.71 seconds
-
-Initiating PH iteration=24
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0021 First stage cost avg= 109004.1156 Max-Min= 54.49
-Cumulative run-time=1.78 seconds
-
-Initiating PH iteration=25
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0008 First stage cost avg= 108937.8039 Max-Min= 16.89
-Cumulative run-time=1.85 seconds
-
-Initiating PH iteration=26
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0005 First stage cost avg= 108876.8822 Max-Min= 14.27
-Cumulative run-time=1.93 seconds
-
-Initiating PH iteration=27
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0015 First stage cost avg= 108830.6201 Max-Min= 34.81
-Cumulative run-time=2.00 seconds
-
-Initiating PH iteration=28
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0021 First stage cost avg= 108803.9655 Max-Min= 44.57
-Cumulative run-time=2.07 seconds
-
-Initiating PH iteration=29
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0023 First stage cost avg= 108797.7661 Max-Min= 45.24
-Cumulative run-time=2.14 seconds
-
-Initiating PH iteration=30
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0020 First stage cost avg= 108809.4793 Max-Min= 39.01
-Cumulative run-time=2.21 seconds
-
-Initiating PH iteration=31
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0015 First stage cost avg= 108834.1639 Max-Min= 28.07
-Cumulative run-time=2.28 seconds
-
-Initiating PH iteration=32
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0008 First stage cost avg= 108865.6237 Max-Min= 14.67
-Cumulative run-time=2.35 seconds
-
-Initiating PH iteration=33
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0001 First stage cost avg= 108897.5679 Max-Min= 1.06
-Cumulative run-time=2.42 seconds
-PH converged - convergence metric is below threshold=0.0001
-Number of discrete variables fixed before final plugin calls=0 (total=0)
-Number of continuous variables fixed before final plugin calls=0 (total=3)
-PH algorithm history written to file=ph_history.json
-PH complete
-Convergence history:
-Iteration Metric Value
- 0 0.2540
- 1 0.1259
- 2 0.0816
- 3 0.0796
- 4 0.0776
- 5 0.0794
- 6 0.0668
- 7 0.0542
- 8 0.0360
- 9 0.0243
- 10 0.0256
- 11 0.0248
- 12 0.0163
- 13 0.0081
- 14 0.0168
- 15 0.0163
- 16 0.0098
- 17 0.0032
- 18 0.0026
- 19 0.0039
- 20 0.0043
- 21 0.0044
- 22 0.0040
- 23 0.0032
- 24 0.0021
- 25 0.0008
- 26 0.0005
- 27 0.0015
- 28 0.0021
- 29 0.0023
- 30 0.0020
- 31 0.0015
- 32 0.0008
- 33 0.0001
-
-***********************************************************************************************
->>>THE EXPECTED SUM OF THE STAGE COST VARIABLES=-108388.378639<<<
->>>***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise<<<
-***********************************************************************************************
-Final number of discrete variables fixed=0 (total=0)
-Final number of continuous variables fixed=0 (total=3)
-Final variable values:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 79.9844 80.0000 79.9768 Max-Min: 0.0232 Avg: 79.9871
- Index: [SUGAR_BEETS] Values: 249.9848 249.9770 250.0000 Max-Min: 0.0230 Avg: 249.9873
- Index: [WHEAT] Values: 170.0308 170.0230 170.0232 Max-Min: 0.0078 Avg: 170.0256
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108897.0836 108897.4725 108898.1476 Max-Min: 1.0640 Avg: 108897.5679
-Final costs:
-Scenario Tree Costs
-***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise
-----------------------------------------------------
-Tree Nodes:
-
- Name=AboveAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AboveAverageScenario
- Expected cost of (sub)tree rooted at node=-275899.3041
-
- Name=AverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AverageScenario
- Expected cost of (sub)tree rooted at node=-218243.2209
-
- Name=BelowAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-157713.8615
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- AboveAverageNode
- AverageNode
- BelowAverageNode
- Scenarios:
- AboveAverageScenario
- AverageScenario
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-108388.3786
-
-----------------------------------------------------
-Scenarios:
-
- Name=AboveAverageScenario
- Probability=0.3333
- Leaf Node=AboveAverageNode
- Tree node sequence:
- RootNode
- AboveAverageNode
- Stage= FirstStage Cost=108898.1476
- Stage= SecondStage Cost=-275899.3041
- Total scenario cost=-167001.1565
-
- Name=AverageScenario
- Probability=0.3333
- Leaf Node=AverageNode
- Tree node sequence:
- RootNode
- AverageNode
- Stage= FirstStage Cost=108897.4725
- Stage= SecondStage Cost=-218243.2209
- Total scenario cost=-109345.7484
-
- Name=BelowAverageScenario
- Probability=0.3333
- Leaf Node=BelowAverageNode
- Tree node sequence:
- RootNode
- BelowAverageNode
- Stage= FirstStage Cost=108897.0836
- Stage= SecondStage Cost=-157713.8615
- Total scenario cost=-48816.7780
-
-----------------------------------------------------
-
-Total PH execution time=2.43 seconds
-
-Scenario tree solution written to file=ph_solution.json
-
-Total execution time=2.47 seconds
diff --git a/pyomo/pysp/tests/examples/baselines/TestPHFarmerTrivialBundlesSerial.test5.baseline b/pyomo/pysp/tests/examples/baselines/TestPHFarmerTrivialBundlesSerial.test5.baseline
deleted file mode 100644
index 865b0ec04cc..00000000000
--- a/pyomo/pysp/tests/examples/baselines/TestPHFarmerTrivialBundlesSerial.test5.baseline
+++ /dev/null
@@ -1,357 +0,0 @@
-User-defined PH extension module=pyomo.pysp.plugins.phhistoryextension already imported - skipping
-Initializing PH
-
-User-defined PH solution writer module=pyomo.pysp.plugins.jsonsolutionwriter already imported - skipping
-Starting PH
-
-Initiating PH iteration=0
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.2540 First stage cost avg= 113494.4444 Max-Min=10416.67
-Cumulative run-time=0.06 seconds
-
-Initiating PH iteration=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.1259 First stage cost avg= 113107.2221 Max-Min= 6943.89
-Cumulative run-time=0.13 seconds
-
-Initiating PH iteration=2
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0816 First stage cost avg= 112954.6296 Max-Min= 2234.82
-Cumulative run-time=0.20 seconds
-
-Initiating PH iteration=3
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0796 First stage cost avg= 112963.0248 Max-Min= 2375.31
-Cumulative run-time=0.27 seconds
-
-Initiating PH iteration=4
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0776 First stage cost avg= 112915.6071 Max-Min= 3047.08
-Cumulative run-time=0.34 seconds
-
-Initiating PH iteration=5
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0794 First stage cost avg= 112825.3926 Max-Min= 3339.81
-Cumulative run-time=0.41 seconds
-
-Initiating PH iteration=6
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0668 First stage cost avg= 112317.9502 Max-Min= 2019.60
-Cumulative run-time=0.47 seconds
-
-Initiating PH iteration=7
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0542 First stage cost avg= 111364.4660 Max-Min= 1181.85
-Cumulative run-time=0.54 seconds
-
-Initiating PH iteration=8
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0360 First stage cost avg= 110283.4074 Max-Min= 463.23
-Cumulative run-time=0.61 seconds
-
-Initiating PH iteration=9
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0243 First stage cost avg= 109399.2542 Max-Min= 363.90
-Cumulative run-time=0.68 seconds
-
-Initiating PH iteration=10
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0256 First stage cost avg= 108834.1930 Max-Min= 933.90
-Cumulative run-time=0.75 seconds
-
-Initiating PH iteration=11
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0248 First stage cost avg= 108575.3219 Max-Min= 918.57
-Cumulative run-time=0.83 seconds
-
-Initiating PH iteration=12
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0163 First stage cost avg= 108513.5347 Max-Min= 591.25
-Cumulative run-time=0.89 seconds
-
-Initiating PH iteration=13
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0081 First stage cost avg= 108528.2899 Max-Min= 175.95
-Cumulative run-time=0.96 seconds
-
-Initiating PH iteration=14
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0168 First stage cost avg= 108561.6577 Max-Min= 274.77
-Cumulative run-time=1.03 seconds
-
-Initiating PH iteration=15
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0163 First stage cost avg= 108604.0579 Max-Min= 295.14
-Cumulative run-time=1.10 seconds
-
-Initiating PH iteration=16
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0098 First stage cost avg= 108667.3583 Max-Min= 127.67
-Cumulative run-time=1.17 seconds
-
-Initiating PH iteration=17
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0032 First stage cost avg= 108758.4237 Max-Min= 59.69
-Cumulative run-time=1.24 seconds
-
-Initiating PH iteration=18
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0026 First stage cost avg= 108868.1277 Max-Min= 101.79
-Cumulative run-time=1.31 seconds
-
-Initiating PH iteration=19
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0039 First stage cost avg= 108975.3089 Max-Min= 73.41
-Cumulative run-time=1.38 seconds
-
-Initiating PH iteration=20
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0043 First stage cost avg= 109057.4144 Max-Min= 39.47
-Cumulative run-time=1.45 seconds
-
-Initiating PH iteration=21
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0044 First stage cost avg= 109099.7145 Max-Min= 87.57
-Cumulative run-time=1.52 seconds
-
-Initiating PH iteration=22
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0040 First stage cost avg= 109099.1239 Max-Min= 104.22
-Cumulative run-time=1.59 seconds
-
-Initiating PH iteration=23
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0032 First stage cost avg= 109062.8322 Max-Min= 88.54
-Cumulative run-time=1.66 seconds
-
-Initiating PH iteration=24
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0021 First stage cost avg= 109004.1156 Max-Min= 54.49
-Cumulative run-time=1.73 seconds
-
-Initiating PH iteration=25
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0008 First stage cost avg= 108937.8039 Max-Min= 16.89
-Cumulative run-time=1.80 seconds
-
-Initiating PH iteration=26
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0005 First stage cost avg= 108876.8822 Max-Min= 14.27
-Cumulative run-time=1.87 seconds
-
-Initiating PH iteration=27
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0015 First stage cost avg= 108830.6201 Max-Min= 34.81
-Cumulative run-time=1.93 seconds
-
-Initiating PH iteration=28
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0021 First stage cost avg= 108803.9655 Max-Min= 44.57
-Cumulative run-time=2.00 seconds
-
-Initiating PH iteration=29
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0023 First stage cost avg= 108797.7661 Max-Min= 45.24
-Cumulative run-time=2.07 seconds
-
-Initiating PH iteration=30
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0020 First stage cost avg= 108809.4793 Max-Min= 39.01
-Cumulative run-time=2.14 seconds
-
-Initiating PH iteration=31
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0015 First stage cost avg= 108834.1639 Max-Min= 28.07
-Cumulative run-time=2.21 seconds
-
-Initiating PH iteration=32
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0008 First stage cost avg= 108865.6237 Max-Min= 14.67
-Cumulative run-time=2.29 seconds
-
-Initiating PH iteration=33
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0001 First stage cost avg= 108897.5679 Max-Min= 1.06
-Cumulative run-time=2.35 seconds
-PH converged - convergence metric is below threshold=0.0001
-Number of discrete variables fixed before final plugin calls=0 (total=0)
-Number of continuous variables fixed before final plugin calls=0 (total=3)
-PH algorithm history written to file=ph_history.json
-PH complete
-Convergence history:
-Iteration Metric Value
- 0 0.2540
- 1 0.1259
- 2 0.0816
- 3 0.0796
- 4 0.0776
- 5 0.0794
- 6 0.0668
- 7 0.0542
- 8 0.0360
- 9 0.0243
- 10 0.0256
- 11 0.0248
- 12 0.0163
- 13 0.0081
- 14 0.0168
- 15 0.0163
- 16 0.0098
- 17 0.0032
- 18 0.0026
- 19 0.0039
- 20 0.0043
- 21 0.0044
- 22 0.0040
- 23 0.0032
- 24 0.0021
- 25 0.0008
- 26 0.0005
- 27 0.0015
- 28 0.0021
- 29 0.0023
- 30 0.0020
- 31 0.0015
- 32 0.0008
- 33 0.0001
-
-***********************************************************************************************
->>>THE EXPECTED SUM OF THE STAGE COST VARIABLES=-108388.378639<<<
->>>***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise<<<
-***********************************************************************************************
-Final number of discrete variables fixed=0 (total=0)
-Final number of continuous variables fixed=0 (total=3)
-Final variable values:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 79.9844 80.0000 79.9768 Max-Min: 0.0232 Avg: 79.9871
- Index: [SUGAR_BEETS] Values: 249.9848 249.9770 250.0000 Max-Min: 0.0230 Avg: 249.9873
- Index: [WHEAT] Values: 170.0308 170.0230 170.0232 Max-Min: 0.0078 Avg: 170.0256
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108897.0836 108897.4725 108898.1476 Max-Min: 1.0640 Avg: 108897.5679
-Final costs:
-Scenario Tree Costs
-***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise
-----------------------------------------------------
-Tree Nodes:
-
- Name=AboveAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AboveAverageScenario
- Expected cost of (sub)tree rooted at node=-275899.3041
-
- Name=AverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AverageScenario
- Expected cost of (sub)tree rooted at node=-218243.2209
-
- Name=BelowAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-157713.8615
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- AboveAverageNode
- AverageNode
- BelowAverageNode
- Scenarios:
- AboveAverageScenario
- AverageScenario
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-108388.3786
-
-----------------------------------------------------
-Scenarios:
-
- Name=AboveAverageScenario
- Probability=0.3333
- Leaf Node=AboveAverageNode
- Tree node sequence:
- RootNode
- AboveAverageNode
- Stage= FirstStage Cost=108898.1476
- Stage= SecondStage Cost=-275899.3041
- Total scenario cost=-167001.1565
-
- Name=AverageScenario
- Probability=0.3333
- Leaf Node=AverageNode
- Tree node sequence:
- RootNode
- AverageNode
- Stage= FirstStage Cost=108897.4725
- Stage= SecondStage Cost=-218243.2209
- Total scenario cost=-109345.7484
-
- Name=BelowAverageScenario
- Probability=0.3333
- Leaf Node=BelowAverageNode
- Tree node sequence:
- RootNode
- BelowAverageNode
- Stage= FirstStage Cost=108897.0836
- Stage= SecondStage Cost=-157713.8615
- Total scenario cost=-48816.7780
-
-----------------------------------------------------
-
-Total PH execution time=2.36 seconds
-
-Scenario tree solution written to file=ph_solution.json
-
-Total execution time=2.40 seconds
diff --git a/pyomo/pysp/tests/examples/baselines/TestPHFarmerTrivialBundlesSerial.test6.baseline b/pyomo/pysp/tests/examples/baselines/TestPHFarmerTrivialBundlesSerial.test6.baseline
deleted file mode 100644
index 3ad99f772dd..00000000000
--- a/pyomo/pysp/tests/examples/baselines/TestPHFarmerTrivialBundlesSerial.test6.baseline
+++ /dev/null
@@ -1,192 +0,0 @@
-User-defined PH extension module=pyomo.pysp.plugins.phhistoryextension already imported - skipping
-Initializing PH
-
-WW PH Extension: Loading user-specified configuration from file=/Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/examples/pysp/farmer/config/wwph.cfg
-WW PH Extension: Loading variable suffixes from file=/Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/examples/pysp/farmer/config/wwph.suffixes
-User-defined PH solution writer module=pyomo.pysp.plugins.jsonsolutionwriter already imported - skipping
-Starting PH
-
-Initiating PH iteration=0
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.2540 First stage cost avg= 113494.4444 Max-Min=10416.67
-Cumulative run-time=0.06 seconds
-
-Initiating PH iteration=1
-WW PH Extension: Setting mipgap to 0.1000000, as specified in the configuration file
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.1259 First stage cost avg= 113107.2221 Max-Min= 6943.89
-Cumulative run-time=0.13 seconds
-
-Initiating PH iteration=2
-WW PH Extension: Setting mipgap to 0.0500717, based on current value of the convergence metric
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0816 First stage cost avg= 112954.6296 Max-Min= 2234.82
-Cumulative run-time=0.20 seconds
-
-Initiating PH iteration=3
-WW PH Extension: Setting mipgap to 0.0327607, based on current value of the convergence metric
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0796 First stage cost avg= 112963.0248 Max-Min= 2375.31
-Cumulative run-time=0.27 seconds
-
-Initiating PH iteration=4
-WW PH Extension: Setting mipgap to 0.0319973, based on current value of the convergence metric
-Slamming criteria are satisifed - accelerating convergence
-Slamming variable=DevotedAcreage[CORN] at tree node=RootNode to value=96.8871743104; value=node average (anywhere)
-Fixing variable=DevotedAcreage[CORN] at tree node=RootNode to value=96.8871743104; converged for 0 iterations
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0776 First stage cost avg= 112915.6071 Max-Min= 3047.08
-Cumulative run-time=0.34 seconds
-
-Initiating PH iteration=5
-WW PH Extension: Setting mipgap to 0.0312342, based on current value of the convergence metric
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=1 (total=3)
-Convergence metric= 0.0609 First stage cost avg= 112895.6887 Max-Min= 5246.95
-Cumulative run-time=0.41 seconds
-
-Initiating PH iteration=6
-WW PH Extension: Setting mipgap to 0.0247045, based on current value of the convergence metric
-Slamming criteria are satisifed - accelerating convergence
-Slamming variable=DevotedAcreage[WHEAT] at tree node=RootNode to value=137.204959966; value=node average (anywhere)
-Fixing variable=DevotedAcreage[WHEAT] at tree node=RootNode to value=137.204959966; converged for 0 iterations
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=1 (total=3)
-Convergence metric= 0.0391 First stage cost avg= 112000.8391 Max-Min= 2624.80
-Cumulative run-time=0.48 seconds
-
-Initiating PH iteration=7
-WW PH Extension: Setting mipgap to 0.0161915, based on current value of the convergence metric
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=2 (total=3)
-Convergence metric= 0.0000 First stage cost avg= 112000.8392 Max-Min= 0.00
-Cumulative run-time=0.55 seconds
-PH converged - convergence metric is below threshold=0.0001
-Number of discrete variables fixed before final plugin calls=0 (total=0)
-Number of continuous variables fixed before final plugin calls=2 (total=3)
-WW PH extension: Fixing all discrete variables that are converged at termination
-Total number of variables fixed at PH termination due to convergence=0
-PH algorithm history written to file=ph_history.json
-PH complete
-Convergence history:
-Iteration Metric Value
- 0 0.2540
- 1 0.1259
- 2 0.0816
- 3 0.0796
- 4 0.0776
- 5 0.0609
- 6 0.0391
- 7 0.0000
-
-***********************************************************************************************
->>>THE EXPECTED SUM OF THE STAGE COST VARIABLES=-107905.908751<<<
->>>***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise<<<
-***********************************************************************************************
-Final number of discrete variables fixed=0 (total=0)
-Final number of continuous variables fixed=2 (total=3)
-Final variable values:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 96.8872 96.8872 96.8872 Max-Min: 0.0000 Avg: 96.8872
- Index: [SUGAR_BEETS] Values: 265.9079 265.9079 265.9079 Max-Min: 0.0000 Avg: 265.9079
- Index: [WHEAT] Values: 137.2050 137.2050 137.2050 Max-Min: 0.0000 Avg: 137.2050
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 112000.8392 112000.8392 112000.8391 Max-Min: 0.0000 Avg: 112000.8392
-Final costs:
-Scenario Tree Costs
-***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise
-----------------------------------------------------
-Tree Nodes:
-
- Name=AboveAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AboveAverageScenario
- Expected cost of (sub)tree rooted at node=-272111.4913
-
- Name=AverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AverageScenario
- Expected cost of (sub)tree rooted at node=-223364.9995
-
- Name=BelowAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-164243.7528
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- AboveAverageNode
- AverageNode
- BelowAverageNode
- Scenarios:
- AboveAverageScenario
- AverageScenario
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-107905.9088
-
-----------------------------------------------------
-Scenarios:
-
- Name=AboveAverageScenario
- Probability=0.3333
- Leaf Node=AboveAverageNode
- Tree node sequence:
- RootNode
- AboveAverageNode
- Stage= FirstStage Cost=112000.8391
- Stage= SecondStage Cost=-272111.4913
- Total scenario cost=-160110.6522
-
- Name=AverageScenario
- Probability=0.3333
- Leaf Node=AverageNode
- Tree node sequence:
- RootNode
- AverageNode
- Stage= FirstStage Cost=112000.8392
- Stage= SecondStage Cost=-223364.9995
- Total scenario cost=-111364.1604
-
- Name=BelowAverageScenario
- Probability=0.3333
- Leaf Node=BelowAverageNode
- Tree node sequence:
- RootNode
- BelowAverageNode
- Stage= FirstStage Cost=112000.8392
- Stage= SecondStage Cost=-164243.7528
- Total scenario cost=-52242.9136
-
-----------------------------------------------------
-
-Total PH execution time=0.56 seconds
-
-Scenario tree solution written to file=ph_solution.json
-
-Total execution time=0.60 seconds
diff --git a/pyomo/pysp/tests/examples/baselines/TestPHFarmerTrivialBundlesSerial.test6_withef.baseline b/pyomo/pysp/tests/examples/baselines/TestPHFarmerTrivialBundlesSerial.test6_withef.baseline
deleted file mode 100644
index d5973c6da77..00000000000
--- a/pyomo/pysp/tests/examples/baselines/TestPHFarmerTrivialBundlesSerial.test6_withef.baseline
+++ /dev/null
@@ -1,338 +0,0 @@
-User-defined PH extension module=pyomo.pysp.plugins.phhistoryextension already imported - skipping
-Initializing PH
-
-WW PH Extension: Loading user-specified configuration from file=/Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/examples/pysp/farmer/config/wwph.cfg
-WW PH Extension: Loading variable suffixes from file=/Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/examples/pysp/farmer/config/wwph.suffixes
-User-defined PH solution writer module=pyomo.pysp.plugins.jsonsolutionwriter already imported - skipping
-Starting PH
-
-Initiating PH iteration=0
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.2540 First stage cost avg= 113494.4444 Max-Min=10416.67
-Cumulative run-time=0.04 seconds
-
-Initiating PH iteration=1
-WW PH Extension: Setting mipgap to 0.1000000, as specified in the configuration file
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.1259 First stage cost avg= 113107.2221 Max-Min= 6943.89
-Cumulative run-time=0.10 seconds
-
-Initiating PH iteration=2
-WW PH Extension: Setting mipgap to 0.0500717, based on current value of the convergence metric
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0816 First stage cost avg= 112954.6296 Max-Min= 2234.82
-Cumulative run-time=0.16 seconds
-
-Initiating PH iteration=3
-WW PH Extension: Setting mipgap to 0.0327607, based on current value of the convergence metric
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0796 First stage cost avg= 112963.0248 Max-Min= 2375.31
-Cumulative run-time=0.21 seconds
-
-Initiating PH iteration=4
-WW PH Extension: Setting mipgap to 0.0319973, based on current value of the convergence metric
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Slamming criteria are satisifed - accelerating convergence
-Slamming variable=DevotedAcreage[CORN] at tree node=RootNode to value=96.8871743104; value=node average (anywhere)
-Fixing variable=DevotedAcreage[CORN] at tree node=RootNode to value=96.8871743104; converged for 0 iterations
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0776 First stage cost avg= 112915.6071 Max-Min= 3047.08
-Cumulative run-time=0.26 seconds
-
-Initiating PH iteration=5
-WW PH Extension: Setting mipgap to 0.0312342, based on current value of the convergence metric
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=1 (total=3)
-Convergence metric= 0.0609 First stage cost avg= 112895.6887 Max-Min= 5246.95
-Cumulative run-time=0.32 seconds
-
-Initiating PH iteration=6
-WW PH Extension: Setting mipgap to 0.0247045, based on current value of the convergence metric
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Slamming criteria are satisifed - accelerating convergence
-Slamming variable=DevotedAcreage[WHEAT] at tree node=RootNode to value=137.204959966; value=node average (anywhere)
-Fixing variable=DevotedAcreage[WHEAT] at tree node=RootNode to value=137.204959966; converged for 0 iterations
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=1 (total=3)
-Convergence metric= 0.0391 First stage cost avg= 112000.8391 Max-Min= 2624.80
-Cumulative run-time=0.38 seconds
-
-Initiating PH iteration=7
-WW PH Extension: Setting mipgap to 0.0161915, based on current value of the convergence metric
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=2 (total=3)
-Convergence metric= 0.0000 First stage cost avg= 112000.8392 Max-Min= 0.00
-Cumulative run-time=0.43 seconds
-PH converged - convergence metric is below threshold=0.0001
-Number of discrete variables fixed before final plugin calls=0 (total=0)
-Number of continuous variables fixed before final plugin calls=2 (total=3)
-WW PH extension: Fixing all discrete variables that are converged at termination
-Total number of variables fixed at PH termination due to convergence=0
-PH algorithm history written to file=ph_history.json
-PH complete
-Convergence history:
-Iteration Metric Value
- 0 0.2540
- 1 0.1259
- 2 0.0816
- 3 0.0796
- 4 0.0776
- 5 0.0609
- 6 0.0391
- 7 0.0000
-
-***********************************************************************************************
->>>THE EXPECTED SUM OF THE STAGE COST VARIABLES=-107905.908751<<<
->>>***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise<<<
-***********************************************************************************************
-Final number of discrete variables fixed=0 (total=0)
-Final number of continuous variables fixed=2 (total=3)
-Final variable values:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 96.8872 96.8872 96.8872 Max-Min: 0.0000 Avg: 96.8872
- Index: [SUGAR_BEETS] Values: 265.9079 265.9079 265.9079 Max-Min: 0.0000 Avg: 265.9079
- Index: [WHEAT] Values: 137.2050 137.2050 137.2050 Max-Min: 0.0000 Avg: 137.2050
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 112000.8392 112000.8392 112000.8391 Max-Min: 0.0000 Avg: 112000.8392
-Final costs:
-Scenario Tree Costs
-***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise
-----------------------------------------------------
-Tree Nodes:
-
- Name=AboveAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AboveAverageScenario
- Expected cost of (sub)tree rooted at node=-272111.4913
-
- Name=AverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AverageScenario
- Expected cost of (sub)tree rooted at node=-223364.9995
-
- Name=BelowAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-164243.7528
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- AboveAverageNode
- AverageNode
- BelowAverageNode
- Scenarios:
- AboveAverageScenario
- AverageScenario
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-107905.9088
-
-----------------------------------------------------
-Scenarios:
-
- Name=AboveAverageScenario
- Probability=0.3333
- Leaf Node=AboveAverageNode
- Tree node sequence:
- RootNode
- AboveAverageNode
- Stage= FirstStage Cost=112000.8391
- Stage= SecondStage Cost=-272111.4913
- Total scenario cost=-160110.6522
-
- Name=AverageScenario
- Probability=0.3333
- Leaf Node=AverageNode
- Tree node sequence:
- RootNode
- AverageNode
- Stage= FirstStage Cost=112000.8392
- Stage= SecondStage Cost=-223364.9995
- Total scenario cost=-111364.1604
-
- Name=BelowAverageScenario
- Probability=0.3333
- Leaf Node=BelowAverageNode
- Tree node sequence:
- RootNode
- BelowAverageNode
- Stage= FirstStage Cost=112000.8392
- Stage= SecondStage Cost=-164243.7528
- Total scenario cost=-52242.9136
-
-----------------------------------------------------
-
-Total PH execution time=0.44 seconds
-
-Scenario tree solution written to file=ph_solution.json
-Pushing fixed variable statuses to scenario instances
-Number of discrete variables fixed prior to ef creation=0 (total=0)
-Number of continuous variables fixed prior to ef creation=2 (total=3)
-Creating extensive form for remainder problem
-Time to construct extensive form instance=0.00 seconds
-Queuing extensive form solve
-Waiting for extensive form solve
-Done with extensive form solve - loading results
-Storing solution in scenario tree
-Time to solve and load results for the extensive form=0.02 seconds
-
-***********************************************************************************************
->>>THE EXPECTED SUM OF THE STAGE COST VARIABLES=-107905.908903<<<
-***********************************************************************************************
-
-Extensive form solution:
-----------------------------------------------------
-Tree Nodes:
-
- Name=AboveAverageNode
- Stage=SecondStage
- Parent=RootNode
- Variables:
- QuantitySubQuotaSold[CORN]=108.793827517
- QuantitySubQuotaSold[SUGAR_BEETS]=6000.0
- QuantitySubQuotaSold[WHEAT]=211.614879899
- QuantitySuperQuotaSold[SUGAR_BEETS]=381.788777359
-
- Name=AverageNode
- Stage=SecondStage
- Parent=RootNode
- Variables:
- QuantitySubQuotaSold[CORN]=50.6615229312
- QuantitySubQuotaSold[SUGAR_BEETS]=5318.15731447
- QuantitySubQuotaSold[WHEAT]=143.012399916
-
- Name=BelowAverageNode
- Stage=SecondStage
- Parent=RootNode
- Variables:
- QuantityPurchased[CORN]=7.47078165504
- QuantitySubQuotaSold[SUGAR_BEETS]=4254.52585157
- QuantitySubQuotaSold[WHEAT]=74.4099199326
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Variables:
- DevotedAcreage[CORN]=96.8871743104
- DevotedAcreage[SUGAR_BEETS]=265.907865723
- DevotedAcreage[WHEAT]=137.204959966
-
-
-Extensive form costs:
-Scenario Tree Costs
-***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise
-----------------------------------------------------
-Tree Nodes:
-
- Name=AboveAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AboveAverageScenario
- Expected cost of (sub)tree rooted at node=-272111.4915
-
- Name=AverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AverageScenario
- Expected cost of (sub)tree rooted at node=-223364.9997
-
- Name=BelowAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-164243.7529
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- AboveAverageNode
- AverageNode
- BelowAverageNode
- Scenarios:
- AboveAverageScenario
- AverageScenario
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-107905.9089
-
-----------------------------------------------------
-Scenarios:
-
- Name=AboveAverageScenario
- Probability=0.3333
- Leaf Node=AboveAverageNode
- Tree node sequence:
- RootNode
- AboveAverageNode
- Stage= FirstStage Cost=112000.8392
- Stage= SecondStage Cost=-272111.4915
- Total scenario cost=-160110.6523
-
- Name=AverageScenario
- Probability=0.3333
- Leaf Node=AverageNode
- Tree node sequence:
- RootNode
- AverageNode
- Stage= FirstStage Cost=112000.8392
- Stage= SecondStage Cost=-223364.9997
- Total scenario cost=-111364.1606
-
- Name=BelowAverageScenario
- Probability=0.3333
- Leaf Node=BelowAverageNode
- Tree node sequence:
- RootNode
- BelowAverageNode
- Stage= FirstStage Cost=112000.8392
- Stage= SecondStage Cost=-164243.7529
- Total scenario cost=-52242.9137
-
-----------------------------------------------------
-Scenario tree solution written to file=postphef_solution.json
-
-Total execution time=0.50 seconds
diff --git a/pyomo/pysp/tests/examples/baselines/TestPHFarmerTrivialBundlesSerial.test7.baseline b/pyomo/pysp/tests/examples/baselines/TestPHFarmerTrivialBundlesSerial.test7.baseline
deleted file mode 100644
index 6209ffb435e..00000000000
--- a/pyomo/pysp/tests/examples/baselines/TestPHFarmerTrivialBundlesSerial.test7.baseline
+++ /dev/null
@@ -1,437 +0,0 @@
-User-defined PH extension module=pyomo.pysp.plugins.phhistoryextension already imported - skipping
-User-defined PH extension module=pyomo.pysp.plugins.phboundextension already imported - skipping
-Initializing PH
-
-phboundextension using default update interval=1
-User-defined PH solution writer module=pyomo.pysp.plugins.jsonsolutionwriter already imported - skipping
-Starting PH
-
-Initiating PH iteration=0
-Computed objective lower bound=-115405.5556
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.2540 First stage cost avg= 113494.4444 Max-Min=10416.67
-Cumulative run-time=0.06 seconds
-
-Initiating PH iteration=1
-Computed objective lower bound=-112378.3951
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.1259 First stage cost avg= 113107.2221 Max-Min= 6943.89
-Cumulative run-time=0.20 seconds
-
-Initiating PH iteration=2
-Computed objective lower bound=-114092.2009
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0816 First stage cost avg= 112954.6296 Max-Min= 2234.82
-Cumulative run-time=0.34 seconds
-
-Initiating PH iteration=3
-Computed objective lower bound=-111905.7747
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0796 First stage cost avg= 112963.0248 Max-Min= 2375.31
-Cumulative run-time=0.49 seconds
-
-Initiating PH iteration=4
-Computed objective lower bound=-110093.7884
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0776 First stage cost avg= 112915.6071 Max-Min= 3047.08
-Cumulative run-time=0.62 seconds
-
-Initiating PH iteration=5
-Computed objective lower bound=-109499.5161
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0794 First stage cost avg= 112825.3926 Max-Min= 3339.81
-Cumulative run-time=0.76 seconds
-
-Initiating PH iteration=6
-Computed objective lower bound=-108931.8046
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0668 First stage cost avg= 112317.9502 Max-Min= 2019.60
-Cumulative run-time=0.90 seconds
-
-Initiating PH iteration=7
-Computed objective lower bound=-110122.0019
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0542 First stage cost avg= 111364.4660 Max-Min= 1181.85
-Cumulative run-time=1.05 seconds
-
-Initiating PH iteration=8
-Computed objective lower bound=-111334.7018
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0360 First stage cost avg= 110283.4074 Max-Min= 463.23
-Cumulative run-time=1.19 seconds
-
-Initiating PH iteration=9
-Computed objective lower bound=-111609.8143
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0243 First stage cost avg= 109399.2542 Max-Min= 363.90
-Cumulative run-time=1.34 seconds
-
-Initiating PH iteration=10
-Computed objective lower bound=-111298.1197
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0256 First stage cost avg= 108834.1930 Max-Min= 933.90
-Cumulative run-time=1.48 seconds
-
-Initiating PH iteration=11
-Computed objective lower bound=-110209.1867
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0248 First stage cost avg= 108575.3219 Max-Min= 918.57
-Cumulative run-time=1.61 seconds
-
-Initiating PH iteration=12
-Computed objective lower bound=-109115.6506
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0163 First stage cost avg= 108513.5347 Max-Min= 591.25
-Cumulative run-time=1.76 seconds
-
-Initiating PH iteration=13
-Computed objective lower bound=-108676.3770
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0081 First stage cost avg= 108528.2899 Max-Min= 175.95
-Cumulative run-time=1.89 seconds
-
-Initiating PH iteration=14
-Computed objective lower bound=-108716.2952
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0168 First stage cost avg= 108561.6577 Max-Min= 274.77
-Cumulative run-time=2.03 seconds
-
-Initiating PH iteration=15
-Computed objective lower bound=-108567.8281
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0163 First stage cost avg= 108604.0579 Max-Min= 295.14
-Cumulative run-time=2.17 seconds
-
-Initiating PH iteration=16
-Computed objective lower bound=-108440.1576
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0098 First stage cost avg= 108667.3583 Max-Min= 127.67
-Cumulative run-time=2.32 seconds
-
-Initiating PH iteration=17
-Computed objective lower bound=-108508.3933
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0032 First stage cost avg= 108758.4237 Max-Min= 59.69
-Cumulative run-time=2.45 seconds
-
-Initiating PH iteration=18
-Computed objective lower bound=-108542.0161
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0026 First stage cost avg= 108868.1277 Max-Min= 101.79
-Cumulative run-time=2.60 seconds
-
-Initiating PH iteration=19
-Computed objective lower bound=-108541.9306
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0039 First stage cost avg= 108975.3089 Max-Min= 73.41
-Cumulative run-time=2.74 seconds
-
-Initiating PH iteration=20
-Computed objective lower bound=-108516.4781
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0043 First stage cost avg= 109057.4144 Max-Min= 39.47
-Cumulative run-time=2.87 seconds
-
-Initiating PH iteration=21
-Computed objective lower bound=-108488.2878
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0044 First stage cost avg= 109099.7145 Max-Min= 87.57
-Cumulative run-time=3.01 seconds
-
-Initiating PH iteration=22
-Computed objective lower bound=-108441.5390
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0040 First stage cost avg= 109099.1239 Max-Min= 104.22
-Cumulative run-time=3.15 seconds
-
-Initiating PH iteration=23
-Computed objective lower bound=-108399.9641
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0032 First stage cost avg= 109062.8322 Max-Min= 88.54
-Cumulative run-time=3.29 seconds
-
-Initiating PH iteration=24
-Computed objective lower bound=-108503.2120
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0021 First stage cost avg= 109004.1156 Max-Min= 54.49
-Cumulative run-time=3.43 seconds
-
-Initiating PH iteration=25
-Computed objective lower bound=-108576.0350
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0008 First stage cost avg= 108937.8039 Max-Min= 16.89
-Cumulative run-time=3.57 seconds
-
-Initiating PH iteration=26
-Computed objective lower bound=-108599.8131
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0005 First stage cost avg= 108876.8822 Max-Min= 14.27
-Cumulative run-time=3.71 seconds
-
-Initiating PH iteration=27
-Computed objective lower bound=-108581.6439
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0015 First stage cost avg= 108830.6201 Max-Min= 34.81
-Cumulative run-time=3.84 seconds
-
-Initiating PH iteration=28
-Computed objective lower bound=-108534.4974
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0021 First stage cost avg= 108803.9655 Max-Min= 44.57
-Cumulative run-time=3.98 seconds
-
-Initiating PH iteration=29
-Computed objective lower bound=-108472.5688
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0023 First stage cost avg= 108797.7661 Max-Min= 45.24
-Cumulative run-time=4.12 seconds
-
-Initiating PH iteration=30
-Computed objective lower bound=-108408.6756
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0020 First stage cost avg= 108809.4793 Max-Min= 39.01
-Cumulative run-time=4.26 seconds
-
-Initiating PH iteration=31
-Computed objective lower bound=-108403.8262
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0015 First stage cost avg= 108834.1639 Max-Min= 28.07
-Cumulative run-time=4.40 seconds
-
-Initiating PH iteration=32
-Computed objective lower bound=-108419.0164
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0008 First stage cost avg= 108865.6237 Max-Min= 14.67
-Cumulative run-time=4.53 seconds
-
-Initiating PH iteration=33
-Computed objective lower bound=-108427.1508
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0001 First stage cost avg= 108897.5679 Max-Min= 1.06
-Cumulative run-time=4.67 seconds
-PH converged - convergence metric is below threshold=0.0001
-Number of discrete variables fixed before final plugin calls=0 (total=0)
-Number of continuous variables fixed before final plugin calls=0 (total=3)
-Computed objective lower bound=-108427.7239
-
- Iteration Bound
- Trivial -115405.555588
- 0 -112378.395124
- 1 -114092.2009
- 2 -111905.774744
- 3 -110093.788354
- 4 -109499.516145
- 5 -108931.804635
- 6 -110122.001897
- 7 -111334.701817
- 8 -111609.814338
- 9 -111298.11967
- 10 -110209.186685
- 11 -109115.65065
- 12 -108676.376969
- 13 -108716.295157
- 14 -108567.828079
- 15 -108440.157622
- 16 -108508.393308
- 17 -108542.016117
- 18 -108541.930573
- 19 -108516.478131
- 20 -108488.28782
- 21 -108441.538995
- 22 -108399.964066
- 23 -108503.212025
- 24 -108576.034986
- 25 -108599.813084
- 26 -108581.643945
- 27 -108534.497426
- 28 -108472.568809
- 29 -108408.6756
- 30 -108403.826194
- 31 -108419.01641
- 32 -108427.150791
- 33 -108427.723944
-
-Lower bound history written to file=phbound.txt
-
-Best Objective Bound: -108399.964066
-
-Best Lower Bound written to file=phbestbound.txt
-PH algorithm history written to file=ph_history.json
-PH complete
-Convergence history:
-Iteration Metric Value
- 0 0.2540
- 1 0.1259
- 2 0.0816
- 3 0.0796
- 4 0.0776
- 5 0.0794
- 6 0.0668
- 7 0.0542
- 8 0.0360
- 9 0.0243
- 10 0.0256
- 11 0.0248
- 12 0.0163
- 13 0.0081
- 14 0.0168
- 15 0.0163
- 16 0.0098
- 17 0.0032
- 18 0.0026
- 19 0.0039
- 20 0.0043
- 21 0.0044
- 22 0.0040
- 23 0.0032
- 24 0.0021
- 25 0.0008
- 26 0.0005
- 27 0.0015
- 28 0.0021
- 29 0.0023
- 30 0.0020
- 31 0.0015
- 32 0.0008
- 33 0.0001
-
-***********************************************************************************************
->>>THE EXPECTED SUM OF THE STAGE COST VARIABLES=-108388.378639<<<
->>>***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise<<<
-***********************************************************************************************
-Final number of discrete variables fixed=0 (total=0)
-Final number of continuous variables fixed=0 (total=3)
-Final variable values:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 79.9844 80.0000 79.9768 Max-Min: 0.0232 Avg: 79.9871
- Index: [SUGAR_BEETS] Values: 249.9848 249.9770 250.0000 Max-Min: 0.0230 Avg: 249.9873
- Index: [WHEAT] Values: 170.0308 170.0230 170.0232 Max-Min: 0.0078 Avg: 170.0256
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108897.0836 108897.4725 108898.1476 Max-Min: 1.0640 Avg: 108897.5679
-Final costs:
-Scenario Tree Costs
-***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise
-----------------------------------------------------
-Tree Nodes:
-
- Name=AboveAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AboveAverageScenario
- Expected cost of (sub)tree rooted at node=-275899.3041
-
- Name=AverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AverageScenario
- Expected cost of (sub)tree rooted at node=-218243.2209
-
- Name=BelowAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-157713.8615
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- AboveAverageNode
- AverageNode
- BelowAverageNode
- Scenarios:
- AboveAverageScenario
- AverageScenario
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-108388.3786
-
-----------------------------------------------------
-Scenarios:
-
- Name=AboveAverageScenario
- Probability=0.3333
- Leaf Node=AboveAverageNode
- Tree node sequence:
- RootNode
- AboveAverageNode
- Stage= FirstStage Cost=108898.1476
- Stage= SecondStage Cost=-275899.3041
- Total scenario cost=-167001.1565
-
- Name=AverageScenario
- Probability=0.3333
- Leaf Node=AverageNode
- Tree node sequence:
- RootNode
- AverageNode
- Stage= FirstStage Cost=108897.4725
- Stage= SecondStage Cost=-218243.2209
- Total scenario cost=-109345.7484
-
- Name=BelowAverageScenario
- Probability=0.3333
- Leaf Node=BelowAverageNode
- Tree node sequence:
- RootNode
- BelowAverageNode
- Stage= FirstStage Cost=108897.0836
- Stage= SecondStage Cost=-157713.8615
- Total scenario cost=-48816.7780
-
-----------------------------------------------------
-
-Total PH execution time=4.74 seconds
-
-Scenario tree solution written to file=ph_solution.json
-
-Total execution time=4.78 seconds
diff --git a/pyomo/pysp/tests/examples/baselines/TestPHFarmerTrivialBundlesSerial.test8.baseline b/pyomo/pysp/tests/examples/baselines/TestPHFarmerTrivialBundlesSerial.test8.baseline
deleted file mode 100644
index 116af3ec79f..00000000000
--- a/pyomo/pysp/tests/examples/baselines/TestPHFarmerTrivialBundlesSerial.test8.baseline
+++ /dev/null
@@ -1,1137 +0,0 @@
-User-defined PH extension module=pyomo.pysp.plugins.phhistoryextension already imported - skipping
-User-defined PH extension module=pyomo.pysp.plugins.convexhullboundextension already imported - skipping
-Initializing PH
-
-convexhullboundextension using default update interval=1
-WARNING: No construction rule or expression specified for constraint 'W_Balance'
-WARNING: No construction rule or expression specified for constraint 'V_Bound'
-User-defined PH solution writer module=pyomo.pysp.plugins.jsonsolutionwriter already imported - skipping
-Starting PH
-
-Initiating PH iteration=0
-Computed objective lower bound=-115405.5556
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.2540 First stage cost avg= 113494.4444 Max-Min=10416.67
-Cumulative run-time=0.09 seconds
-
-Initiating PH iteration=1
-Computed objective lower bound=-112378.3952
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.1259 First stage cost avg= 113107.2221 Max-Min= 6943.89
-Cumulative run-time=0.24 seconds
-
-Initiating PH iteration=2
-Computed objective lower bound=-119146.9138
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0816 First stage cost avg= 112954.6296 Max-Min= 2234.82
-Cumulative run-time=0.41 seconds
-
-Initiating PH iteration=3
-Computed objective lower bound=-122839.9373
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0796 First stage cost avg= 112963.0248 Max-Min= 2375.31
-Cumulative run-time=0.57 seconds
-
-Initiating PH iteration=4
-Computed objective lower bound=-115850.2283
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0776 First stage cost avg= 112915.6071 Max-Min= 3047.08
-Cumulative run-time=0.73 seconds
-
-Initiating PH iteration=5
-Computed objective lower bound=-114662.4278
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0794 First stage cost avg= 112825.3926 Max-Min= 3339.81
-Cumulative run-time=0.90 seconds
-
-Initiating PH iteration=6
-Computed objective lower bound=-114508.9364
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0726 First stage cost avg= 111425.6142 Max-Min= 3493.67
-Cumulative run-time=1.06 seconds
-
-Initiating PH iteration=7
-Computed objective lower bound=-114392.6225
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0844 First stage cost avg= 110005.4890 Max-Min= 3402.43
-Cumulative run-time=1.22 seconds
-
-Initiating PH iteration=8
-Computed objective lower bound=-116760.9510
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0727 First stage cost avg= 108759.9444 Max-Min= 2312.53
-Cumulative run-time=1.38 seconds
-
-Initiating PH iteration=9
-Computed objective lower bound=-115713.7704
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0636 First stage cost avg= 107649.1713 Max-Min= 2611.98
-Cumulative run-time=1.54 seconds
-
-Initiating PH iteration=10
-Computed objective lower bound=-114886.9774
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0786 First stage cost avg= 106975.2119 Max-Min= 3852.20
-Cumulative run-time=1.70 seconds
-
-Initiating PH iteration=11
-Computed objective lower bound=-114142.6745
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0822 First stage cost avg= 106779.6625 Max-Min= 3679.63
-Cumulative run-time=1.87 seconds
-
-Initiating PH iteration=12
-Computed objective lower bound=-112524.0431
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0773 First stage cost avg= 106949.8534 Max-Min= 3195.33
-Cumulative run-time=2.04 seconds
-
-Initiating PH iteration=13
-Computed objective lower bound=-111354.3497
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0690 First stage cost avg= 107328.8057 Max-Min= 2823.03
-Cumulative run-time=2.20 seconds
-
-Initiating PH iteration=14
-Computed objective lower bound=-110712.3885
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0608 First stage cost avg= 107764.6036 Max-Min= 2533.82
-Cumulative run-time=2.37 seconds
-
-Initiating PH iteration=15
-Computed objective lower bound=-110412.3233
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0550 First stage cost avg= 108156.8751 Max-Min= 2354.98
-Cumulative run-time=2.53 seconds
-
-Initiating PH iteration=16
-Computed objective lower bound=-110290.3557
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0518 First stage cost avg= 108452.7004 Max-Min= 2257.08
-Cumulative run-time=2.70 seconds
-
-Initiating PH iteration=17
-Computed objective lower bound=-110300.1669
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0512 First stage cost avg= 108636.8058 Max-Min= 2233.49
-Cumulative run-time=2.87 seconds
-
-Initiating PH iteration=18
-Computed objective lower bound=-110407.5782
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0519 First stage cost avg= 108719.1582 Max-Min= 2264.78
-Cumulative run-time=3.03 seconds
-
-Initiating PH iteration=19
-Computed objective lower bound=-110633.3518
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0526 First stage cost avg= 108723.1781 Max-Min= 2324.13
-Cumulative run-time=3.20 seconds
-
-Initiating PH iteration=20
-Computed objective lower bound=-110837.3428
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0533 First stage cost avg= 108676.4444 Max-Min= 2388.98
-Cumulative run-time=3.36 seconds
-
-Initiating PH iteration=21
-Computed objective lower bound=-110971.6327
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0546 First stage cost avg= 108604.4548 Max-Min= 2445.40
-Cumulative run-time=3.53 seconds
-
-Initiating PH iteration=22
-Computed objective lower bound=-111036.8465
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0556 First stage cost avg= 108527.2174 Max-Min= 2487.05
-Cumulative run-time=3.69 seconds
-
-Initiating PH iteration=23
-Computed objective lower bound=-111046.0537
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0564 First stage cost avg= 108458.0853 Max-Min= 2512.69
-Cumulative run-time=3.86 seconds
-
-Initiating PH iteration=24
-Computed objective lower bound=-111045.3417
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0569 First stage cost avg= 108404.1369 Max-Min= 2524.20
-Cumulative run-time=4.03 seconds
-
-Initiating PH iteration=25
-Computed objective lower bound=-111047.7122
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0570 First stage cost avg= 108367.4323 Max-Min= 2525.00
-Cumulative run-time=4.19 seconds
-
-Initiating PH iteration=26
-Computed objective lower bound=-111034.9673
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0570 First stage cost avg= 108346.6000 Max-Min= 2518.95
-Cumulative run-time=4.36 seconds
-
-Initiating PH iteration=27
-Computed objective lower bound=-111015.0786
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0569 First stage cost avg= 108338.3666 Max-Min= 2509.55
-Cumulative run-time=4.53 seconds
-
-Initiating PH iteration=28
-Computed objective lower bound=-110994.0589
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0568 First stage cost avg= 108338.8015 Max-Min= 2499.51
-Cumulative run-time=4.70 seconds
-
-Initiating PH iteration=29
-Computed objective lower bound=-110975.7531
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0566 First stage cost avg= 108344.1874 Max-Min= 2490.61
-Cumulative run-time=4.87 seconds
-
-Initiating PH iteration=30
-Computed objective lower bound=-110962.0614
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0564 First stage cost avg= 108351.5198 Max-Min= 2483.77
-Cumulative run-time=5.04 seconds
-
-Initiating PH iteration=31
-Computed objective lower bound=-110953.3937
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108358.6998 Max-Min= 2479.23
-Cumulative run-time=5.23 seconds
-
-Initiating PH iteration=32
-Computed objective lower bound=-110949.1875
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0562 First stage cost avg= 108364.5087 Max-Min= 2476.77
-Cumulative run-time=5.40 seconds
-
-Initiating PH iteration=33
-Computed objective lower bound=-110948.3798
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0562 First stage cost avg= 108368.4521 Max-Min= 2475.96
-Cumulative run-time=5.57 seconds
-
-Initiating PH iteration=34
-Computed objective lower bound=-110949.7749
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0562 First stage cost avg= 108370.5509 Max-Min= 2476.24
-Cumulative run-time=5.74 seconds
-
-Initiating PH iteration=35
-Computed objective lower bound=-110952.2889
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0562 First stage cost avg= 108371.1311 Max-Min= 2477.13
-Cumulative run-time=5.91 seconds
-
-Initiating PH iteration=36
-Computed objective lower bound=-110955.0811
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0562 First stage cost avg= 108370.6488 Max-Min= 2478.22
-Cumulative run-time=6.09 seconds
-
-Initiating PH iteration=37
-Computed objective lower bound=-110957.5941
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108369.5627 Max-Min= 2479.26
-Cumulative run-time=6.26 seconds
-
-Initiating PH iteration=38
-Computed objective lower bound=-110959.5335
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108368.2571 Max-Min= 2480.08
-Cumulative run-time=6.42 seconds
-
-Initiating PH iteration=39
-Computed objective lower bound=-110960.8119
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108367.0073 Max-Min= 2480.63
-Cumulative run-time=6.58 seconds
-
-Initiating PH iteration=40
-Computed objective lower bound=-110961.4827
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108365.9766 Max-Min= 2480.92
-Cumulative run-time=6.76 seconds
-
-Initiating PH iteration=41
-Computed objective lower bound=-110961.6761
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108365.2327 Max-Min= 2481.01
-Cumulative run-time=6.93 seconds
-
-Initiating PH iteration=42
-Computed objective lower bound=-110961.5481
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.7733 Max-Min= 2480.94
-Cumulative run-time=7.11 seconds
-
-Initiating PH iteration=43
-Computed objective lower bound=-110961.2454
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.5535 Max-Min= 2480.80
-Cumulative run-time=7.28 seconds
-
-Initiating PH iteration=44
-Computed objective lower bound=-110960.8855
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.5090 Max-Min= 2480.63
-Cumulative run-time=7.45 seconds
-
-Initiating PH iteration=45
-Computed objective lower bound=-110960.5490
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.5736 Max-Min= 2480.47
-Cumulative run-time=7.62 seconds
-
-Initiating PH iteration=46
-Computed objective lower bound=-110960.2811
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.6907 Max-Min= 2480.34
-Cumulative run-time=7.80 seconds
-
-Initiating PH iteration=47
-Computed objective lower bound=-110960.0984
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.8179 Max-Min= 2480.24
-Cumulative run-time=7.97 seconds
-
-Initiating PH iteration=48
-Computed objective lower bound=-110959.9970
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9287 Max-Min= 2480.19
-Cumulative run-time=8.14 seconds
-
-Initiating PH iteration=49
-Computed objective lower bound=-110959.9616
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108365.0097 Max-Min= 2480.16
-Cumulative run-time=8.31 seconds
-
-Initiating PH iteration=50
-Computed objective lower bound=-110959.9725
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108365.0582 Max-Min= 2480.16
-Cumulative run-time=8.48 seconds
-
-Initiating PH iteration=51
-Computed objective lower bound=-110960.0094
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108365.0782 Max-Min= 2480.17
-Cumulative run-time=8.66 seconds
-
-Initiating PH iteration=52
-Computed objective lower bound=-110960.0563
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108365.0767 Max-Min= 2480.19
-Cumulative run-time=8.83 seconds
-
-Initiating PH iteration=53
-Computed objective lower bound=-110960.1019
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108365.0617 Max-Min= 2480.21
-Cumulative run-time=9.01 seconds
-
-Initiating PH iteration=54
-Computed objective lower bound=-110960.1392
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108365.0405 Max-Min= 2480.23
-Cumulative run-time=9.18 seconds
-
-Initiating PH iteration=55
-Computed objective lower bound=-110960.1656
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108365.0185 Max-Min= 2480.24
-Cumulative run-time=9.36 seconds
-
-Initiating PH iteration=56
-Computed objective lower bound=-110960.1811
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9993 Max-Min= 2480.24
-Cumulative run-time=9.53 seconds
-
-Initiating PH iteration=57
-Computed objective lower bound=-110960.1874
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9846 Max-Min= 2480.25
-Cumulative run-time=9.70 seconds
-
-Initiating PH iteration=58
-Computed objective lower bound=-110960.1871
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9749 Max-Min= 2480.25
-Cumulative run-time=9.87 seconds
-
-Initiating PH iteration=59
-Computed objective lower bound=-110960.1829
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9697 Max-Min= 2480.25
-Cumulative run-time=10.05 seconds
-
-Initiating PH iteration=60
-Computed objective lower bound=-110960.1770
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9679 Max-Min= 2480.24
-Cumulative run-time=10.22 seconds
-
-Initiating PH iteration=61
-Computed objective lower bound=-110960.1710
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9684 Max-Min= 2480.24
-Cumulative run-time=10.41 seconds
-
-Initiating PH iteration=62
-Computed objective lower bound=-110960.1659
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9701 Max-Min= 2480.24
-Cumulative run-time=10.59 seconds
-
-Initiating PH iteration=63
-Computed objective lower bound=-110960.1622
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9723 Max-Min= 2480.24
-Cumulative run-time=10.76 seconds
-
-Initiating PH iteration=64
-Computed objective lower bound=-110960.1599
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9743 Max-Min= 2480.23
-Cumulative run-time=10.93 seconds
-
-Initiating PH iteration=65
-Computed objective lower bound=-110960.1589
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9759 Max-Min= 2480.23
-Cumulative run-time=11.10 seconds
-
-Initiating PH iteration=66
-Computed objective lower bound=-110960.1588
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9770 Max-Min= 2480.23
-Cumulative run-time=11.28 seconds
-
-Initiating PH iteration=67
-Computed objective lower bound=-110960.1593
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9775 Max-Min= 2480.23
-Cumulative run-time=11.46 seconds
-
-Initiating PH iteration=68
-Computed objective lower bound=-110960.1600
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9776 Max-Min= 2480.23
-Cumulative run-time=11.64 seconds
-
-Initiating PH iteration=69
-Computed objective lower bound=-110960.1608
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9775 Max-Min= 2480.23
-Cumulative run-time=11.82 seconds
-
-Initiating PH iteration=70
-Computed objective lower bound=-110960.1615
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9771 Max-Min= 2480.23
-Cumulative run-time=12.00 seconds
-
-Initiating PH iteration=71
-Computed objective lower bound=-110960.1620
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9768 Max-Min= 2480.23
-Cumulative run-time=12.18 seconds
-
-Initiating PH iteration=72
-Computed objective lower bound=-110960.1624
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9764 Max-Min= 2480.23
-Cumulative run-time=12.35 seconds
-
-Initiating PH iteration=73
-Computed objective lower bound=-110960.1626
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9761 Max-Min= 2480.23
-Cumulative run-time=12.53 seconds
-
-Initiating PH iteration=74
-Computed objective lower bound=-110960.1626
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9759 Max-Min= 2480.23
-Cumulative run-time=12.70 seconds
-
-Initiating PH iteration=75
-Computed objective lower bound=-110960.1625
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9758 Max-Min= 2480.23
-Cumulative run-time=12.88 seconds
-
-Initiating PH iteration=76
-Computed objective lower bound=-110960.1624
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9758 Max-Min= 2480.23
-Cumulative run-time=13.06 seconds
-
-Initiating PH iteration=77
-Computed objective lower bound=-110960.1623
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9758 Max-Min= 2480.23
-Cumulative run-time=13.24 seconds
-
-Initiating PH iteration=78
-Computed objective lower bound=-110960.1622
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9758 Max-Min= 2480.23
-Cumulative run-time=13.41 seconds
-
-Initiating PH iteration=79
-Computed objective lower bound=-110960.1622
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9758 Max-Min= 2480.23
-Cumulative run-time=13.59 seconds
-
-Initiating PH iteration=80
-Computed objective lower bound=-110960.1621
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9759 Max-Min= 2480.23
-Cumulative run-time=13.77 seconds
-
-Initiating PH iteration=81
-Computed objective lower bound=-110960.1619
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9760 Max-Min= 2480.23
-Cumulative run-time=13.95 seconds
-
-Initiating PH iteration=82
-Computed objective lower bound=-110960.1618
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9760 Max-Min= 2480.23
-Cumulative run-time=14.13 seconds
-
-Initiating PH iteration=83
-Computed objective lower bound=-110960.1619
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9761 Max-Min= 2480.23
-Cumulative run-time=14.31 seconds
-
-Initiating PH iteration=84
-Computed objective lower bound=-110960.1620
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9760 Max-Min= 2480.23
-Cumulative run-time=14.49 seconds
-
-Initiating PH iteration=85
-Computed objective lower bound=-110960.1621
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9760 Max-Min= 2480.23
-Cumulative run-time=14.66 seconds
-
-Initiating PH iteration=86
-Computed objective lower bound=-110960.1622
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9759 Max-Min= 2480.23
-Cumulative run-time=14.84 seconds
-
-Initiating PH iteration=87
-Computed objective lower bound=-110960.1622
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9759 Max-Min= 2480.23
-Cumulative run-time=15.03 seconds
-
-Initiating PH iteration=88
-Computed objective lower bound=-110960.1623
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9758 Max-Min= 2480.23
-Cumulative run-time=15.22 seconds
-
-Initiating PH iteration=89
-Computed objective lower bound=-110960.1623
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9758 Max-Min= 2480.23
-Cumulative run-time=15.40 seconds
-
-Initiating PH iteration=90
-Computed objective lower bound=-110960.1623
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9757 Max-Min= 2480.23
-Cumulative run-time=15.60 seconds
-
-Initiating PH iteration=91
-Computed objective lower bound=-110960.1623
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9757 Max-Min= 2480.23
-Cumulative run-time=15.79 seconds
-
-Initiating PH iteration=92
-Computed objective lower bound=-110960.1623
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9757 Max-Min= 2480.23
-Cumulative run-time=15.97 seconds
-
-Initiating PH iteration=93
-Computed objective lower bound=-110960.1623
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9757 Max-Min= 2480.23
-Cumulative run-time=16.15 seconds
-
-Initiating PH iteration=94
-Computed objective lower bound=-110960.1622
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9757 Max-Min= 2480.23
-Cumulative run-time=16.33 seconds
-
-Initiating PH iteration=95
-Computed objective lower bound=-110960.1622
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9757 Max-Min= 2480.23
-Cumulative run-time=16.51 seconds
-
-Initiating PH iteration=96
-Computed objective lower bound=-110960.1622
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9757 Max-Min= 2480.23
-Cumulative run-time=16.69 seconds
-
-Initiating PH iteration=97
-Computed objective lower bound=-110960.1622
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9758 Max-Min= 2480.23
-Cumulative run-time=16.88 seconds
-
-Initiating PH iteration=98
-Computed objective lower bound=-110960.1622
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9758 Max-Min= 2480.23
-Cumulative run-time=17.06 seconds
-
-Initiating PH iteration=99
-Computed objective lower bound=-110960.1622
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9758 Max-Min= 2480.23
-Cumulative run-time=17.25 seconds
-
-Initiating PH iteration=100
-Computed objective lower bound=-110960.1622
-WE ARE PAST ITERATION 5 - STARTING TO TRUST CONVEX HULL BOUND EXTENSION FOR WEIGHT UPDATES
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0563 First stage cost avg= 108364.9758 Max-Min= 2480.23
-Cumulative run-time=17.43 seconds
-Halting PH - reached maximal iteration count=100
-Number of discrete variables fixed before final plugin calls=0 (total=0)
-Number of continuous variables fixed before final plugin calls=0 (total=3)
-Computed objective lower bound=-110960.1622
-
- Iteration Bound
- Trivial -115405.555588
- 0 -112378.395154
- 1 -119146.913826
- 2 -122839.937276
- 3 -115850.228262
- 4 -114662.427763
- 5 -114508.936391
- 6 -114392.622476
- 7 -116760.95099
- 8 -115713.770411
- 9 -114886.977381
- 10 -114142.674474
- 11 -112524.04308
- 12 -111354.349714
- 13 -110712.388487
- 14 -110412.32327
- 15 -110290.355717
- 16 -110300.166904
- 17 -110407.578228
- 18 -110633.351824
- 19 -110837.34279
- 20 -110971.63266
- 21 -111036.846504
- 22 -111046.05369
- 23 -111045.341675
- 24 -111047.71221
- 25 -111034.967277
- 26 -111015.078589
- 27 -110994.058898
- 28 -110975.753079
- 29 -110962.061428
- 30 -110953.393719
- 31 -110949.187454
- 32 -110948.379773
- 33 -110949.774873
- 34 -110952.288918
- 35 -110955.081078
- 36 -110957.594134
- 37 -110959.533471
- 38 -110960.811919
- 39 -110961.482721
- 40 -110961.676069
- 41 -110961.548051
- 42 -110961.245392
- 43 -110960.885485
- 44 -110960.548967
- 45 -110960.281111
- 46 -110960.098373
- 47 -110959.997019
- 48 -110959.961634
- 49 -110959.972452
- 50 -110960.009379
- 51 -110960.056336
- 52 -110960.101879
- 53 -110960.139245
- 54 -110960.165621
- 55 -110960.181069
- 56 -110960.187384
- 57 -110960.18713
- 58 -110960.182925
- 59 -110960.176997
- 60 -110960.17098
- 61 -110960.165883
- 62 -110960.162169
- 63 -110960.159897
- 64 -110960.158872
- 65 -110960.158773
- 66 -110960.159253
- 67 -110960.16001
- 68 -110960.160813
- 69 -110960.161517
- 70 -110960.162046
- 71 -110960.162383
- 72 -110960.162551
- 73 -110960.162587
- 74 -110960.162539
- 75 -110960.162446
- 76 -110960.162341
- 77 -110960.162247
- 78 -110960.162173
- 79 -110960.162124
- 80 -110960.161856
- 81 -110960.161822
- 82 -110960.161887
- 83 -110960.161981
- 84 -110960.162077
- 85 -110960.162164
- 86 -110960.162218
- 87 -110960.16226
- 88 -110960.162284
- 89 -110960.162289
- 90 -110960.162282
- 91 -110960.162268
- 92 -110960.16225
- 93 -110960.162233
- 94 -110960.162218
- 95 -110960.162206
- 96 -110960.162196
- 97 -110960.162189
- 98 -110960.162184
- 99 -110960.16218
- 100 -110960.162232
-
-Lower bound history written to file=phbound.txt
-
-Best Objective Bound: -110290.355717
-
-Best Lower Bound written to file=phbestbound.txt
-PH algorithm history written to file=ph_history.json
-PH complete
-Convergence history:
-Iteration Metric Value
- 0 0.2540
- 1 0.1259
- 2 0.0816
- 3 0.0796
- 4 0.0776
- 5 0.0794
- 6 0.0726
- 7 0.0844
- 8 0.0727
- 9 0.0636
- 10 0.0786
- 11 0.0822
- 12 0.0773
- 13 0.0690
- 14 0.0608
- 15 0.0550
- 16 0.0518
- 17 0.0512
- 18 0.0519
- 19 0.0526
- 20 0.0533
- 21 0.0546
- 22 0.0556
- 23 0.0564
- 24 0.0569
- 25 0.0570
- 26 0.0570
- 27 0.0569
- 28 0.0568
- 29 0.0566
- 30 0.0564
- 31 0.0563
- 32 0.0562
- 33 0.0562
- 34 0.0562
- 35 0.0562
- 36 0.0562
- 37 0.0563
- 38 0.0563
- 39 0.0563
- 40 0.0563
- 41 0.0563
- 42 0.0563
- 43 0.0563
- 44 0.0563
- 45 0.0563
- 46 0.0563
- 47 0.0563
- 48 0.0563
- 49 0.0563
- 50 0.0563
- 51 0.0563
- 52 0.0563
- 53 0.0563
- 54 0.0563
- 55 0.0563
- 56 0.0563
- 57 0.0563
- 58 0.0563
- 59 0.0563
- 60 0.0563
- 61 0.0563
- 62 0.0563
- 63 0.0563
- 64 0.0563
- 65 0.0563
- 66 0.0563
- 67 0.0563
- 68 0.0563
- 69 0.0563
- 70 0.0563
- 71 0.0563
- 72 0.0563
- 73 0.0563
- 74 0.0563
- 75 0.0563
- 76 0.0563
- 77 0.0563
- 78 0.0563
- 79 0.0563
- 80 0.0563
- 81 0.0563
- 82 0.0563
- 83 0.0563
- 84 0.0563
- 85 0.0563
- 86 0.0563
- 87 0.0563
- 88 0.0563
- 89 0.0563
- 90 0.0563
- 91 0.0563
- 92 0.0563
- 93 0.0563
- 94 0.0563
- 95 0.0563
- 96 0.0563
- 97 0.0563
- 98 0.0563
- 99 0.0563
- 100 0.0563
-
-***********************************************************************************************
->>>THE EXPECTED SUM OF THE STAGE COST VARIABLES=-106862.160636<<<
->>>***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise<<<
-***********************************************************************************************
-Final number of discrete variables fixed=0 (total=0)
-Final number of continuous variables fixed=0 (total=3)
-Final variable values:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 100.0000 80.0000 87.7861 Max-Min: 20.0000 Avg: 89.2620
- Index: [SUGAR_BEETS] Values: 232.0854 233.1150 250.0000 Max-Min: 17.9146 Avg: 238.4001
- Index: [WHEAT] Values: 167.9146 186.8850 162.2139 Max-Min: 24.6711 Avg: 172.3379
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108529.3918 107042.6505 109522.8850 Max-Min: 2480.2345 Avg: 108364.9758
-Final costs:
-Scenario Tree Costs
-***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise
-----------------------------------------------------
-Tree Nodes:
-
- Name=AboveAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AboveAverageScenario
- Expected cost of (sub)tree rooted at node=-276133.5814
-
- Name=AverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AverageScenario
- Expected cost of (sub)tree rooted at node=-213268.9263
-
- Name=BelowAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-156772.1496
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- AboveAverageNode
- AverageNode
- BelowAverageNode
- Scenarios:
- AboveAverageScenario
- AverageScenario
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-106862.1606
-
-----------------------------------------------------
-Scenarios:
-
- Name=AboveAverageScenario
- Probability=0.3333
- Leaf Node=AboveAverageNode
- Tree node sequence:
- RootNode
- AboveAverageNode
- Stage= FirstStage Cost=109522.8850
- Stage= SecondStage Cost=-276133.5814
- Total scenario cost=-166610.6964
-
- Name=AverageScenario
- Probability=0.3333
- Leaf Node=AverageNode
- Tree node sequence:
- RootNode
- AverageNode
- Stage= FirstStage Cost=107042.6505
- Stage= SecondStage Cost=-213268.9263
- Total scenario cost=-106226.2758
-
- Name=BelowAverageScenario
- Probability=0.3333
- Leaf Node=BelowAverageNode
- Tree node sequence:
- RootNode
- BelowAverageNode
- Stage= FirstStage Cost=108529.3918
- Stage= SecondStage Cost=-156772.1496
- Total scenario cost=-48242.7578
-
-----------------------------------------------------
-
-Total PH execution time=17.50 seconds
-
-Scenario tree solution written to file=ph_solution.json
-
-Total execution time=17.54 seconds
diff --git a/pyomo/pysp/tests/examples/baselines/TestPHFarmerTrivialBundlesSerial.test9.baseline b/pyomo/pysp/tests/examples/baselines/TestPHFarmerTrivialBundlesSerial.test9.baseline
deleted file mode 100644
index 040837ecc4a..00000000000
--- a/pyomo/pysp/tests/examples/baselines/TestPHFarmerTrivialBundlesSerial.test9.baseline
+++ /dev/null
@@ -1,234 +0,0 @@
-User-defined PH extension module=pyomo.pysp.plugins.phhistoryextension already imported - skipping
-User-defined PH extension module=pyomo.pysp.plugins.phboundextension already imported - skipping
-Initializing PH
-
-phboundextension using default update interval=1
-WW PH Extension: Loading user-specified configuration from file=/Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/examples/pysp/farmer/config/wwph.cfg
-WW PH Extension: Loading variable suffixes from file=/Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/examples/pysp/farmer/config/wwph.suffixes
-User-defined PH solution writer module=pyomo.pysp.plugins.jsonsolutionwriter already imported - skipping
-Starting PH
-
-Initiating PH iteration=0
-Computed objective lower bound=-115405.5556
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.2540 First stage cost avg= 113494.4444 Max-Min=10416.67
-Cumulative run-time=0.06 seconds
-
-Initiating PH iteration=1
-Computed objective lower bound=-112378.3951
-WW PH Extension: Setting mipgap to 0.1000000, as specified in the configuration file
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.1259 First stage cost avg= 113107.2221 Max-Min= 6943.89
-Cumulative run-time=0.19 seconds
-
-Initiating PH iteration=2
-WARNING: "[base]/pyomo.pysp/pyomo/pysp/plugins/phboundextension.py", 75, _compute_bound
- A nonzero mipgap was detected when using the PH bound plugin. The bound computation may as a result be conservative.
-Computed objective lower bound=-114092.2009
-WW PH Extension: Setting mipgap to 0.0500717, based on current value of the convergence metric
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0816 First stage cost avg= 112954.6296 Max-Min= 2234.82
-Cumulative run-time=0.32 seconds
-
-Initiating PH iteration=3
-WARNING: "[base]/pyomo.pysp/pyomo/pysp/plugins/phboundextension.py", 75, _compute_bound
- A nonzero mipgap was detected when using the PH bound plugin. The bound computation may as a result be conservative.
-Computed objective lower bound=-111905.7747
-WW PH Extension: Setting mipgap to 0.0327607, based on current value of the convergence metric
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0796 First stage cost avg= 112963.0248 Max-Min= 2375.31
-Cumulative run-time=0.46 seconds
-
-Initiating PH iteration=4
-WARNING: "[base]/pyomo.pysp/pyomo/pysp/plugins/phboundextension.py", 75, _compute_bound
- A nonzero mipgap was detected when using the PH bound plugin. The bound computation may as a result be conservative.
-Computed objective lower bound=-110093.7884
-WW PH Extension: Setting mipgap to 0.0319973, based on current value of the convergence metric
-Slamming criteria are satisifed - accelerating convergence
-Slamming variable=DevotedAcreage[CORN] at tree node=RootNode to value=96.8871743104; value=node average (anywhere)
-Fixing variable=DevotedAcreage[CORN] at tree node=RootNode to value=96.8871743104; converged for 0 iterations
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-Convergence metric= 0.0776 First stage cost avg= 112915.6071 Max-Min= 3047.08
-Cumulative run-time=0.60 seconds
-
-Initiating PH iteration=5
-WARNING: "[base]/pyomo.pysp/pyomo/pysp/plugins/phboundextension.py", 75, _compute_bound
- A nonzero mipgap was detected when using the PH bound plugin. The bound computation may as a result be conservative.
-Computed objective lower bound=-109499.5161
-WW PH Extension: Setting mipgap to 0.0312342, based on current value of the convergence metric
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=1 (total=3)
-Convergence metric= 0.0609 First stage cost avg= 112895.6887 Max-Min= 5246.95
-Cumulative run-time=0.75 seconds
-
-Initiating PH iteration=6
-WARNING: "[base]/pyomo.pysp/pyomo/pysp/plugins/phboundextension.py", 75, _compute_bound
- A nonzero mipgap was detected when using the PH bound plugin. The bound computation may as a result be conservative.
-Computed objective lower bound=-109440.7805
-WW PH Extension: Setting mipgap to 0.0247045, based on current value of the convergence metric
-Slamming criteria are satisifed - accelerating convergence
-Slamming variable=DevotedAcreage[WHEAT] at tree node=RootNode to value=137.204959966; value=node average (anywhere)
-Fixing variable=DevotedAcreage[WHEAT] at tree node=RootNode to value=137.204959966; converged for 0 iterations
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=1 (total=3)
-Convergence metric= 0.0391 First stage cost avg= 112000.8391 Max-Min= 2624.80
-Cumulative run-time=0.89 seconds
-
-Initiating PH iteration=7
-WARNING: "[base]/pyomo.pysp/pyomo/pysp/plugins/phboundextension.py", 75, _compute_bound
- A nonzero mipgap was detected when using the PH bound plugin. The bound computation may as a result be conservative.
-Computed objective lower bound=-112587.0017
-WW PH Extension: Setting mipgap to 0.0161915, based on current value of the convergence metric
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=2 (total=3)
-Convergence metric= 0.0000 First stage cost avg= 112000.8392 Max-Min= 0.00
-Cumulative run-time=1.01 seconds
-PH converged - convergence metric is below threshold=0.0001
-Number of discrete variables fixed before final plugin calls=0 (total=0)
-Number of continuous variables fixed before final plugin calls=2 (total=3)
-WARNING: "[base]/pyomo.pysp/pyomo/pysp/plugins/phboundextension.py", 75, _compute_bound
- A nonzero mipgap was detected when using the PH bound plugin. The bound computation may as a result be conservative.
-Computed objective lower bound=-112587.0017
-
- Iteration Bound
- Trivial -115405.555588
- 0 -112378.395124
- 1 -114092.2009
- 2 -111905.774744
- 3 -110093.788354
- 4 -109499.516145
- 5 -109440.780542
- 6 -112587.001699
- 7 -112587.001701
-
-Lower bound history written to file=phbound.txt
-
-Best Objective Bound: -109440.780542
-
-Best Lower Bound written to file=phbestbound.txt
-WW PH extension: Fixing all discrete variables that are converged at termination
-Total number of variables fixed at PH termination due to convergence=0
-PH algorithm history written to file=ph_history.json
-PH complete
-Convergence history:
-Iteration Metric Value
- 0 0.2540
- 1 0.1259
- 2 0.0816
- 3 0.0796
- 4 0.0776
- 5 0.0609
- 6 0.0391
- 7 0.0000
-
-***********************************************************************************************
->>>THE EXPECTED SUM OF THE STAGE COST VARIABLES=-107905.908751<<<
->>>***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise<<<
-***********************************************************************************************
-Final number of discrete variables fixed=0 (total=0)
-Final number of continuous variables fixed=2 (total=3)
-Final variable values:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 96.8872 96.8872 96.8872 Max-Min: 0.0000 Avg: 96.8872
- Index: [SUGAR_BEETS] Values: 265.9079 265.9079 265.9079 Max-Min: 0.0000 Avg: 265.9079
- Index: [WHEAT] Values: 137.2050 137.2050 137.2050 Max-Min: 0.0000 Avg: 137.2050
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 112000.8392 112000.8392 112000.8391 Max-Min: 0.0000 Avg: 112000.8392
-Final costs:
-Scenario Tree Costs
-***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise
-----------------------------------------------------
-Tree Nodes:
-
- Name=AboveAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AboveAverageScenario
- Expected cost of (sub)tree rooted at node=-272111.4913
-
- Name=AverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AverageScenario
- Expected cost of (sub)tree rooted at node=-223364.9995
-
- Name=BelowAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-164243.7528
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- AboveAverageNode
- AverageNode
- BelowAverageNode
- Scenarios:
- AboveAverageScenario
- AverageScenario
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-107905.9088
-
-----------------------------------------------------
-Scenarios:
-
- Name=AboveAverageScenario
- Probability=0.3333
- Leaf Node=AboveAverageNode
- Tree node sequence:
- RootNode
- AboveAverageNode
- Stage= FirstStage Cost=112000.8391
- Stage= SecondStage Cost=-272111.4913
- Total scenario cost=-160110.6522
-
- Name=AverageScenario
- Probability=0.3333
- Leaf Node=AverageNode
- Tree node sequence:
- RootNode
- AverageNode
- Stage= FirstStage Cost=112000.8392
- Stage= SecondStage Cost=-223364.9995
- Total scenario cost=-111364.1604
-
- Name=BelowAverageScenario
- Probability=0.3333
- Leaf Node=BelowAverageNode
- Tree node sequence:
- RootNode
- BelowAverageNode
- Stage= FirstStage Cost=112000.8392
- Stage= SecondStage Cost=-164243.7528
- Total scenario cost=-52242.9136
-
-----------------------------------------------------
-
-Total PH execution time=1.07 seconds
-
-Scenario tree solution written to file=ph_solution.json
-
-Total execution time=1.12 seconds
diff --git a/pyomo/pysp/tests/examples/baselines/TestPHForestryUnequalProbs.test1.ph_history.json.baseline.gz b/pyomo/pysp/tests/examples/baselines/TestPHForestryUnequalProbs.test1.ph_history.json.baseline.gz
deleted file mode 100644
index 0a430eb31f8..00000000000
Binary files a/pyomo/pysp/tests/examples/baselines/TestPHForestryUnequalProbs.test1.ph_history.json.baseline.gz and /dev/null differ
diff --git a/pyomo/pysp/tests/examples/baselines/TestPHForestryUnequalProbs.test1.ph_solution.json.baseline.gz b/pyomo/pysp/tests/examples/baselines/TestPHForestryUnequalProbs.test1.ph_solution.json.baseline.gz
deleted file mode 100644
index e4aa052d057..00000000000
Binary files a/pyomo/pysp/tests/examples/baselines/TestPHForestryUnequalProbs.test1.ph_solution.json.baseline.gz and /dev/null differ
diff --git a/pyomo/pysp/tests/examples/baselines/TestPHForestryUnequalProbsPHPyro.test1.baseline b/pyomo/pysp/tests/examples/baselines/TestPHForestryUnequalProbsPHPyro.test1.baseline
deleted file mode 100644
index 92cbcc2b7bb..00000000000
--- a/pyomo/pysp/tests/examples/baselines/TestPHForestryUnequalProbsPHPyro.test1.baseline
+++ /dev/null
@@ -1,1429 +0,0 @@
-*** Pyro Name Server ***
-Name server listening on: ('0.0.0.0', 9090)
-Broadcast server listening on: ('0.0.0.0', 9090)
-URI is: PYRO://10.0.0.9:9090/0a000009a11620a961d9c7ef095c4cf97e
-URI written to: /Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/pyomo/pysp/tests/examples/Pyro_NS_URI
-Name Server started.
-User-defined PH extension module=pyomo.pysp.plugins.phhistoryextension already imported - skipping
-Trying to import module=/Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/examples/pysp/forestry/config/rhosetter.py
-Module successfully loaded
-Trying to import module=/Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/examples/pysp/forestry/config/boundsetter.py
-Module successfully loaded
-Dispatcher is ready.
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI:PYRO://10.0.0.9:7766/0a000009a11720a961da9b4634712a2fe3
-This is worker Worker_41253@Ozymandias.local
-Listening for work from dispatcher...
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI:PYRO://10.0.0.9:7766/0a000009a11720a961da9b4634712a2fe3
-This is worker Worker_41243@Ozymandias.local
-Listening for work from dispatcher...
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI:PYRO://10.0.0.9:7766/0a000009a11720a961da9b4634712a2fe3
-This is worker Worker_41256@Ozymandias.local
-Listening for work from dispatcher...
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI:PYRO://10.0.0.9:7766/0a000009a11720a961da9b4634712a2fe3
-This is worker Worker_41250@Ozymandias.local
-Listening for work from dispatcher...
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI:PYRO://10.0.0.9:7766/0a000009a11720a961da9b4634712a2fe3
-This is worker Worker_41252@Ozymandias.local
-Listening for work from dispatcher...
-Attempting to find Pyro dispatcher object...
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI:PYRO://10.0.0.9:7766/0a000009a11720a961da9b4634712a2fe3
-This is worker Worker_41242@Ozymandias.local
-Listening for work from dispatcher...
-Dispatcher Object URI:PYRO://10.0.0.9:7766/0a000009a11720a961da9b4634712a2fe3
-This is worker Worker_41240@Ozymandias.local
-Listening for work from dispatcher...
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI:PYRO://10.0.0.9:7766/0a000009a11720a961da9b4634712a2fe3
-This is worker Worker_41247@Ozymandias.local
-Listening for work from dispatcher...
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI:PYRO://10.0.0.9:7766/0a000009a11720a961da9b4634712a2fe3
-This is worker Worker_41246@Ozymandias.local
-Listening for work from dispatcher...
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI:PYRO://10.0.0.9:7766/0a000009a11720a961da9b4634712a2fe3
-This is worker Worker_41245@Ozymandias.local
-Listening for work from dispatcher...
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI:PYRO://10.0.0.9:7766/0a000009a11720a961da9b4634712a2fe3
-This is worker Worker_41251@Ozymandias.local
-Listening for work from dispatcher...
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI:PYRO://10.0.0.9:7766/0a000009a11720a961da9b4634712a2fe3
-This is worker Worker_41255@Ozymandias.local
-Listening for work from dispatcher...
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI:PYRO://10.0.0.9:7766/0a000009a11720a961da9b4634712a2fe3
-This is worker Worker_41249@Ozymandias.local
-Attempting to find Pyro dispatcher object...
-Listening for work from dispatcher...
-Dispatcher Object URI:PYRO://10.0.0.9:7766/0a000009a11720a961da9b4634712a2fe3
-This is worker Worker_41241@Ozymandias.local
-Listening for work from dispatcher...
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI:PYRO://10.0.0.9:7766/0a000009a11720a961da9b4634712a2fe3
-This is worker Worker_41257@Ozymandias.local
-Listening for work from dispatcher...
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI:PYRO://10.0.0.9:7766/0a000009a11720a961da9b4634712a2fe3
-This is worker Worker_41248@Ozymandias.local
-Listening for work from dispatcher...
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI:PYRO://10.0.0.9:7766/0a000009a11720a961da9b4634712a2fe3
-This is worker Worker_41254@Ozymandias.local
-Listening for work from dispatcher...
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI:PYRO://10.0.0.9:7766/0a000009a11720a961da9b4634712a2fe3
-This is worker Worker_41244@Ozymandias.local
-Listening for work from dispatcher...
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI: PYRO://10.0.0.9:7766/0a000009a11720a961da9b4634712a2fe3
-This is client 41258@Ozymandias.local
-Initializing PH
-
-Transmitting user rho callback invocations to phsolverservers
-Transmitting user bound callback invocations to phsolverservers
-WW PH Extension: Loading user-specified configuration from file=/Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/examples/pysp/forestry/config/wwph.cfg
-WW PH Extension: Loading variable suffixes from file=/Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/examples/pysp/forestry/config/wwph-nb.suffixes
-WW PH Extension: Setting mipgap to 0.0210000, as specified in the configuration file
-User-defined PH solution writer module=pyomo.pysp.plugins.jsonsolutionwriter already imported - skipping
-Starting PH
-
-Initiating PH iteration=0
-Sub-problem solve time statistics - Min: 0.08 Avg: 0.81 Max: 1.53 (seconds)
-Number of discrete variables fixed=0 (total=507)
-Number of continuous variables fixed=0 (total=273)
-Convergence metric= 0.0906 First stage cost avg=1626400.6294 Max-Min=312171.05
-Cumulative run-time=1.73 seconds
-Number of discrete variables fixed before final plugin calls=0 (total=507)
-Number of continuous variables fixed before final plugin calls=0 (total=273)
-PH algorithm history written to file=ph_history.json
-PH complete
-Convergence history:
-Iteration Metric Value
- 0 0.0906
-
-***********************************************************************************************
->>>THE EXPECTED SUM OF THE STAGE COST VARIABLES=5449635.79233<<<
->>>***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise<<<
-***********************************************************************************************
-Final number of discrete variables fixed=0 (total=507)
-Final number of continuous variables fixed=0 (total=273)
-Final variable values:
- Stage: Ano1Stage
- (Scenarios: ForestChile1 ForestChile2 ForestChile3 ForestChile4 ForestChile5 ForestChile6 ForestChile7 ForestChile8 ForestChile9 ForestChile10 ForestChile11 ForestChile12 ForestChile13 ForestChile14 ForestChile15 ForestChile16 ForestChile17 ForestChile18 )
- Variable: f
- Index: [C02,C03,Ano1] Values: 0.0000 3656.2000 3764.8000 0.0000 6484.2000 10721.4000 0.0000 0.0000 0.0000 10721.4000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 6484.2000 6484.2000 Max-Min: 10721.4000 Avg: 3312.4548
- Index: [C03,E1,Ano1] Values: 21047.0000 17383.2000 17491.8000 21287.0000 21917.8000 24448.4000 28847.0000 21047.0000 21047.0000 23894.8000 28847.0000 28607.0000 30313.6000 21047.0000 21047.0000 21047.0000 28924.2000 34777.6000 Max-Min: 17394.4000 Avg: 21746.9767
- Index: [C04,C03,Ano1] Values: 7320.0000 0.0000 0.0000 7560.0000 7560.0000 0.0000 15120.0000 7320.0000 7320.0000 7320.0000 15120.0000 14880.0000 22440.0000 7320.0000 7320.0000 7320.0000 22440.0000 22440.0000 Max-Min: 22440.0000 Avg: 5840.8800
- Index: [C06,I3,Ano1] Values: 15285.2000 15285.2000 15285.2000 15285.2000 15285.2000 15285.2000 10105.2000 15285.2000 15285.2000 9510.8000 10954.4000 10954.4000 9510.8000 15285.2000 15285.2000 15285.2000 10954.4000 5180.0000 Max-Min: 10105.2000 Avg: 14288.5208
- Index: [C08,I2,Ano1] Values: 0.0000 -0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 6117.2000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 Max-Min: 6117.2000 Avg: 201.8676
- Index: [C09,C02,Ano1] Values: 0.0000 3656.2000 3764.8000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 Max-Min: 3764.8000 Avg: 1158.5448
- Index: [C09,E1,Ano1] Values: 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 3656.2000 3656.2000 0.0000 0.0000 0.0000 0.0000 3656.2000 3656.2000 3656.2000 0.0000 0.0000 Max-Min: 3656.2000 Avg: 422.2911
- Index: [I2,I3,Ano1] Values: 0.0000 -0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 6117.2000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 Max-Min: 6117.2000 Avg: 201.8676
- Index: [I3,E1,Ano1] Values: 15285.2000 15285.2000 15285.2000 15285.2000 15285.2000 15285.2000 10105.2000 15285.2000 15285.2000 15628.0000 10954.4000 10954.4000 9510.8000 15285.2000 15285.2000 15285.2000 10954.4000 5180.0000 Max-Min: 10448.0000 Avg: 14490.3884
- (Scenarios: ForestChile1 ForestChile2 ForestChile3 ForestChile4 ForestChile5 ForestChile6 ForestChile7 ForestChile8 ForestChile9 ForestChile10 ForestChile11 ForestChile12 ForestChile13 ForestChile14 ForestChile15 ForestChile16 ForestChile17 ForestChile18 )
- Variable: z
- Index: [E1,Ano1] Values: 36332.2000 32668.4000 32777.0000 36572.2000 37203.0000 39733.6000 38952.2000 39988.4000 39988.4000 39522.8000 39801.4000 39561.4000 39824.4000 39988.4000 39988.4000 39988.4000 39878.6000 39957.6000 Max-Min: 7320.0000 Avg: 36659.6562
- (Scenarios: ForestChile1 ForestChile2 ForestChile3 ForestChile4 ForestChile5 ForestChile6 ForestChile7 ForestChile8 ForestChile9 ForestChile10 ForestChile11 ForestChile12 ForestChile13 ForestChile14 ForestChile15 ForestChile16 ForestChile17 ForestChile18 )
- Variable: gamma
- Index: [C01,C09,Ano1] Values: 0.0000 0.0000 0.0000 0.0000 0.0000 -0.0000 0.0000 1.0000 1.0000 0.0000 0.0000 0.0000 -0.0000 1.0000 1.0000 1.0000 0.0000 -0.0000 Max-Min: 1.0000 Avg: 0.1155
- Index: [C04,C03,Ano1] Values: 1.0000 0.0000 0.0000 1.0000 1.0000 0.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 Max-Min: 1.0000 Avg: 0.5800
- Index: [C06,I3,Ano1] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- Index: [C08,I2,Ano1] Values: -0.0000 0.0000 0.0000 -0.0000 0.0000 -0.0000 0.0000 0.0000 0.0000 1.0000 0.0000 0.0000 -0.0000 0.0000 0.0000 0.0000 0.0000 -0.0000 Max-Min: 1.0000 Avg: 0.0330
- Index: [C09,C02,Ano1] Values: -0.0000 1.0000 1.0000 -0.0000 0.0000 -0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 -0.0000 Max-Min: 1.0000 Avg: 0.3150
- Index: [C09,E1,Ano1] Values: -0.0000 0.0000 0.0000 -0.0000 0.0000 -0.0000 0.0000 1.0000 1.0000 0.0000 0.0000 0.0000 -0.0000 1.0000 1.0000 1.0000 0.0000 0.0000 Max-Min: 1.0000 Avg: 0.1155
- (Scenarios: ForestChile1 ForestChile2 ForestChile3 ForestChile4 ForestChile5 ForestChile6 ForestChile7 ForestChile8 ForestChile9 ForestChile10 ForestChile11 ForestChile12 ForestChile13 ForestChile14 ForestChile15 ForestChile16 ForestChile17 ForestChile18 )
- Variable: delta
- Index: [U11,Ano1] Values: 1.0000 0.0000 0.0000 -0.0000 0.0000 0.0000 0.0000 1.0000 1.0000 1.0000 0.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 Max-Min: 1.0000 Avg: 0.2960
- Index: [U12,Ano1] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 0.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 0.0000 0.0000 Max-Min: 1.0000 Avg: 0.9330
- Index: [U13,Ano1] Values: 1.0000 1.0000 1.0000 1.0000 0.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 -0.0000 1.0000 1.0000 1.0000 0.0000 1.0000 Max-Min: 1.0000 Avg: 0.8965
- Index: [U15,Ano1] Values: -0.0000 0.0000 0.0000 -0.0000 0.0000 0.0000 1.0000 0.0000 0.0000 0.0000 1.0000 0.0000 1.0000 0.0000 0.0000 0.0000 1.0000 1.0000 Max-Min: 1.0000 Avg: 0.1175
- Index: [U16,Ano1] Values: -0.0000 0.0000 0.0000 1.0000 1.0000 0.0000 1.0000 0.0000 0.0000 0.0000 1.0000 1.0000 1.0000 0.0000 0.0000 0.0000 1.0000 1.0000 Max-Min: 1.0000 Avg: 0.3685
- Index: [U17,Ano1] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 0.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 Max-Min: 1.0000 Avg: 0.9670
- Index: [U18,Ano1] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 0.0000 1.0000 1.0000 -0.0000 1.0000 1.0000 1.0000 1.0000 0.0000 Max-Min: 1.0000 Avg: 0.9335
- Index: [U19,Ano1] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 0.0000 0.0000 1.0000 1.0000 1.0000 1.0000 0.0000 -0.0000 Max-Min: 1.0000 Avg: 0.8980
- Index: [U21,Ano1] Values: -0.0000 0.0000 0.0000 -0.0000 0.0000 -0.0000 0.0000 0.0000 0.0000 1.0000 0.0000 0.0000 -0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 Max-Min: 1.0000 Avg: 0.0330
- Index: [U3,Ano1] Values: 0.0000 1.0000 0.0000 0.0000 0.0000 -0.0000 0.0000 1.0000 1.0000 0.0000 0.0000 0.0000 -0.0000 1.0000 1.0000 1.0000 0.0000 0.0000 Max-Min: 1.0000 Avg: 0.3675
- Index: [U7,Ano1] Values: -0.0000 0.0000 0.0000 -0.0000 1.0000 -0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 -0.0000 0.0000 0.0000 0.0000 1.0000 1.0000 Max-Min: 1.0000 Avg: 0.1040
- Index: [U8,Ano1] Values: -0.0000 0.0000 1.0000 0.0000 0.0000 -0.0000 0.0000 0.0000 0.0000 -0.0000 0.0000 0.0000 -0.0000 0.0000 0.0000 0.0000 0.0000 -0.0000 Max-Min: 1.0000 Avg: 0.0630
- Index: [U9,Ano1] Values: -0.0000 0.0000 0.0000 -0.0000 0.0000 1.0000 0.0000 0.0000 0.0000 1.0000 0.0000 0.0000 -0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 Max-Min: 1.0000 Avg: 0.1380
- Cost Variable: AnoProfit[Ano1]
- Tree Node: RootNode (Scenarios: ForestChile1 ForestChile2 ForestChile3 ForestChile4 ForestChile5 ForestChile6 ForestChile7 ForestChile8 ForestChile9 ForestChile10 ForestChile11 ForestChile12 ForestChile13 ForestChile14 ForestChile15 ForestChile16 ForestChile17 ForestChile18 )
- Values: 1552037.34001384678.45001388753.98001562006.14001566112.42001676809.20001654917.34001696849.50001696849.50001632161.70001691184.58001681215.78001679087.56001696849.50001696849.50001696849.50001656959.26001665040.0800 Max-Min: 312171.0500 Avg: 1552816.8319
- Stage: Ano2Stage
- (Scenarios: ForestChile1 ForestChile2 ForestChile3 ForestChile4 ForestChile5 ForestChile6 )
- Variable: f
- Index: [C01,C09,Ano2]
- Tree Node: StageTwoHigh Values: 0.0000 0.0000 0.0000 0.0000 8602.8000 0.0000 Max-Min: 8602.8000 Avg: 860.2800
- Index: [C02,C03,Ano2]
- Tree Node: StageTwoHigh Values: 18939.0000 17269.8000 20934.2000 25423.2000 6548.4000 14766.0000 Max-Min: 18874.8000 Avg: 18014.3280
- Index: [C03,E1,Ano2]
- Tree Node: StageTwoHigh Values: 34059.0000 39709.8000 43374.2000 40303.2000 27281.8000 37206.0000 Max-Min: 16092.4000 Avg: 38037.2680
- Index: [C04,C03,Ano2]
- Tree Node: StageTwoHigh Values: 15120.0000 22440.0000 22440.0000 14880.0000 14880.0000 22440.0000 Max-Min: 7560.0000 Avg: 19437.6000
- Index: [C08,I2,Ano2]
- Tree Node: StageTwoHigh Values: 0.0000 0.0000 0.0000 0.0000 6117.2000 0.0000 Max-Min: 6117.2000 Avg: 611.7200
- Index: [C09,C02,Ano2]
- Tree Node: StageTwoHigh Values: 0.0000 0.0000 3728.6000 0.0000 0.0000 0.0000 Max-Min: 3728.6000 Avg: 335.5740
- Index: [C09,E1,Ano2]
- Tree Node: StageTwoHigh Values: 7421.0000 7493.4000 0.0000 7421.0000 16096.2000 11149.6000 Max-Min: 16096.2000 Avg: 8205.9840
- Index: [I2,I3,Ano2]
- Tree Node: StageTwoHigh Values: 0.0000 0.0000 0.0000 0.0000 6117.2000 0.0000 Max-Min: 6117.2000 Avg: 611.7200
- Index: [I3,E1,Ano2]
- Tree Node: StageTwoHigh Values: 0.0000 0.0000 0.0000 0.0000 6117.2000 0.0000 Max-Min: 6117.2000 Avg: 611.7200
- (Scenarios: ForestChile7 ForestChile8 ForestChile9 ForestChile10 ForestChile11 ForestChile12 )
- Index: [C01,C09,Ano2]
- Tree Node: StageTwoMedium Values: 0.0000 3656.2000 0.0000 0.0000 3656.2000 0.0000 Max-Min: 3656.2000 Avg: 1224.8270
- Index: [C02,C03,Ano2]
- Tree Node: StageTwoMedium Values: 6484.2000 21250.2000 6484.2000 8217.6000 6484.2000 17269.8000 Max-Min: 14766.0000 Avg: 11040.1530
- Index: [C03,E1,Ano2]
- Tree Node: StageTwoMedium Values: 13804.2000 21250.2000 21604.2000 23337.6000 13804.2000 24829.8000 Max-Min: 11025.6000 Avg: 19767.1530
- Index: [C04,C03,Ano2]
- Tree Node: StageTwoMedium Values: 7320.0000 0.0000 15120.0000 15120.0000 7320.0000 7560.0000 Max-Min: 15120.0000 Avg: 8727.0000
- Index: [C05,I1,Ano2]
- Tree Node: StageTwoMedium Values: 0.0000 0.0000 7200.9000 0.0000 0.0000 0.0000 Max-Min: 7200.9000 Avg: 1188.1485
- Index: [C06,I3,Ano2]
- Tree Node: StageTwoMedium Values: 5180.0000 0.0000 0.0000 5774.4000 4330.8000 4330.8000 Max-Min: 5774.4000 Avg: 3279.9480
- Index: [C07,C08,Ano2]
- Tree Node: StageTwoMedium Values: 0.0000 0.0000 0.0000 3767.3000 0.0000 0.0000 Max-Min: 3767.3000 Avg: 621.6045
- Index: [C08,I2,Ano2]
- Tree Node: StageTwoMedium Values: 0.0000 0.0000 0.0000 3767.3000 0.0000 0.0000 Max-Min: 3767.3000 Avg: 621.6045
- Index: [C09,E1,Ano2]
- Tree Node: StageTwoMedium Values: 0.0000 11149.6000 3764.8000 0.0000 14805.8000 3764.8000 Max-Min: 14805.8000 Avg: 5617.8780
- Index: [I1,I2,Ano2]
- Tree Node: StageTwoMedium Values: 0.0000 0.0000 7200.9000 0.0000 0.0000 0.0000 Max-Min: 7200.9000 Avg: 1188.1485
- Index: [I2,I3,Ano2]
- Tree Node: StageTwoMedium Values: 0.0000 0.0000 7200.9000 3767.3000 0.0000 0.0000 Max-Min: 7200.9000 Avg: 1809.7530
- Index: [I3,E1,Ano2]
- Tree Node: StageTwoMedium Values: 5180.0000 0.0000 7200.9000 9541.7000 4330.8000 4330.8000 Max-Min: 9541.7000 Avg: 5089.7010
- (Scenarios: ForestChile13 ForestChile14 ForestChile15 ForestChile16 ForestChile17 ForestChile18 )
- Index: [C02,C03,Ano2]
- Tree Node: StageTwoLow Values: 6484.2000 0.0000 6484.2000 6548.4000 0.0000 0.0000 Max-Min: 6548.4000 Avg: 3220.2720
- Index: [C03,E1,Ano2]
- Tree Node: StageTwoLow Values: 6484.2000 7560.0000 14044.2000 14108.4000 13727.0000 7873.6000 Max-Min: 7624.2000 Avg: 10634.5740
- Index: [C04,C03,Ano2]
- Tree Node: StageTwoLow Values: 0.0000 7560.0000 7560.0000 7560.0000 0.0000 0.0000 Max-Min: 7560.0000 Avg: 3742.2000
- Index: [C06,I3,Ano2]
- Tree Node: StageTwoLow Values: 5774.4000 0.0000 0.0000 0.0000 0.0000 10105.2000 Max-Min: 10105.2000 Avg: 2670.6600
- Index: [C08,I2,Ano2]
- Tree Node: StageTwoLow Values: 0.0000 6117.2000 0.0000 0.0000 0.0000 0.0000 Max-Min: 6117.2000 Avg: 1009.3380
- Index: [C09,E1,Ano2]
- Tree Node: StageTwoLow Values: 3656.2000 3728.6000 3728.6000 3764.8000 3656.2000 0.0000 Max-Min: 3764.8000 Avg: 3076.4570
- Index: [I2,I3,Ano2]
- Tree Node: StageTwoLow Values: 0.0000 6117.2000 0.0000 0.0000 0.0000 0.0000 Max-Min: 6117.2000 Avg: 1009.3380
- Index: [I3,E1,Ano2]
- Tree Node: StageTwoLow Values: 5774.4000 6117.2000 0.0000 0.0000 0.0000 10105.2000 Max-Min: 10105.2000 Avg: 3679.9980
- (Scenarios: ForestChile1 ForestChile2 ForestChile3 ForestChile4 ForestChile5 ForestChile6 )
- Variable: z
- Index: [E1,Ano2]
- Tree Node: StageTwoHigh Values: 41480.0000 47203.2000 43374.2000 47724.2000 49495.2000 48355.6000 Max-Min: 8015.2000 Avg: 46854.9720
- (Scenarios: ForestChile7 ForestChile8 ForestChile9 ForestChile10 ForestChile11 ForestChile12 )
- Index: [E1,Ano2]
- Tree Node: StageTwoMedium Values: 18984.2000 32399.8000 32569.9000 32879.3000 32940.8000 32925.4000 Max-Min: 13956.6000 Avg: 30474.7320
- (Scenarios: ForestChile13 ForestChile14 ForestChile15 ForestChile16 ForestChile17 ForestChile18 )
- Index: [E1,Ano2]
- Tree Node: StageTwoLow Values: 15914.8000 17405.8000 17772.8000 17873.2000 17383.2000 17978.8000 Max-Min: 2064.0000 Avg: 17391.0290
- (Scenarios: ForestChile1 ForestChile2 ForestChile3 ForestChile4 ForestChile5 ForestChile6 )
- Variable: gamma
- Index: [C01,C09,Ano2]
- Tree Node: StageTwoHigh Values: 1.0000 0.0000 0.0000 1.0000 1.0000 1.0000 Max-Min: 1.0000 Avg: 0.5500
- Index: [C04,C03,Ano2]
- Tree Node: StageTwoHigh Values: -0.0000 1.0000 1.0000 0.0000 0.0000 1.0000 Max-Min: 1.0000 Avg: 0.6000
- Index: [C08,I2,Ano2]
- Tree Node: StageTwoHigh Values: -0.0000 0.0000 0.0000 -0.0000 1.0000 0.0000 Max-Min: 1.0000 Avg: 0.1000
- Index: [C09,E1,Ano2]
- Tree Node: StageTwoHigh Values: 1.0000 1.0000 0.0000 1.0000 1.0000 1.0000 Max-Min: 1.0000 Avg: 0.9100
- (Scenarios: ForestChile7 ForestChile8 ForestChile9 ForestChile10 ForestChile11 ForestChile12 )
- Index: [C01,C09,Ano2]
- Tree Node: StageTwoMedium Values: 0.0000 0.0000 0.0000 -0.0000 1.0000 1.0000 Max-Min: 1.0000 Avg: 0.3400
- Index: [C07,C08,Ano2]
- Tree Node: StageTwoMedium Values: 0.0000 0.0000 0.0000 1.0000 0.0000 0.0000 Max-Min: 1.0000 Avg: 0.1650
- Index: [C09,E1,Ano2]
- Tree Node: StageTwoMedium Values: 0.0000 0.0000 0.0000 -0.0000 1.0000 1.0000 Max-Min: 1.0000 Avg: 0.3400
- (Scenarios: ForestChile13 ForestChile14 ForestChile15 ForestChile16 ForestChile17 ForestChile18 )
- Index: [C01,C09,Ano2]
- Tree Node: StageTwoLow Values: 1.0000 0.0000 0.0000 0.0000 1.0000 -0.0000 Max-Min: 1.0000 Avg: 0.3350
- Index: [C08,I2,Ano2]
- Tree Node: StageTwoLow Values: -0.0000 1.0000 0.0000 0.0000 0.0000 0.0000 Max-Min: 1.0000 Avg: 0.1650
- Index: [C09,E1,Ano2]
- Tree Node: StageTwoLow Values: 1.0000 0.0000 0.0000 0.0000 1.0000 -0.0000 Max-Min: 1.0000 Avg: 0.3350
- (Scenarios: ForestChile1 ForestChile2 ForestChile3 ForestChile4 ForestChile5 ForestChile6 )
- Variable: delta
- Index: [U10,Ano2]
- Tree Node: StageTwoHigh Values: 1.0000 0.0000 0.0000 1.0000 0.0000 1.0000 Max-Min: 1.0000 Avg: 0.4500
- Index: [U11,Ano2]
- Tree Node: StageTwoHigh Values: 0.0000 1.0000 1.0000 1.0000 1.0000 1.0000 Max-Min: 1.0000 Avg: 0.9100
- Index: [U13,Ano2]
- Tree Node: StageTwoHigh Values: -0.0000 0.0000 0.0000 0.0000 1.0000 0.0000 Max-Min: 1.0000 Avg: 0.1000
- Index: [U15,Ano2]
- Tree Node: StageTwoHigh Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- Index: [U16,Ano2]
- Tree Node: StageTwoHigh Values: 1.0000 1.0000 1.0000 0.0000 0.0000 1.0000 Max-Min: 1.0000 Avg: 0.6900
- Index: [U21,Ano2]
- Tree Node: StageTwoHigh Values: -0.0000 0.0000 0.0000 -0.0000 1.0000 -0.0000 Max-Min: 1.0000 Avg: 0.1000
- Index: [U3,Ano2]
- Tree Node: StageTwoHigh Values: 1.0000 0.0000 0.0000 1.0000 0.0000 1.0000 Max-Min: 1.0000 Avg: 0.4500
- Index: [U4,Ano2]
- Tree Node: StageTwoHigh Values: -0.0000 0.0000 0.0000 -0.0000 1.0000 -0.0000 Max-Min: 1.0000 Avg: 0.1000
- Index: [U5,Ano2]
- Tree Node: StageTwoHigh Values: -0.0000 1.0000 1.0000 -0.0000 1.0000 1.0000 Max-Min: 1.0000 Avg: 0.7000
- Index: [U6,Ano2]
- Tree Node: StageTwoHigh Values: -0.0000 1.0000 0.0000 -0.0000 1.0000 1.0000 Max-Min: 1.0000 Avg: 0.6100
- Index: [U7,Ano2]
- Tree Node: StageTwoHigh Values: -0.0000 0.0000 1.0000 1.0000 0.0000 -0.0000 Max-Min: 1.0000 Avg: 0.3000
- Index: [U8,Ano2]
- Tree Node: StageTwoHigh Values: 1.0000 1.0000 0.0000 1.0000 1.0000 1.0000 Max-Min: 1.0000 Avg: 0.9100
- Index: [U9,Ano2]
- Tree Node: StageTwoHigh Values: 1.0000 1.0000 1.0000 1.0000 0.0000 -0.0000 Max-Min: 1.0000 Avg: 0.7500
- (Scenarios: ForestChile7 ForestChile8 ForestChile9 ForestChile10 ForestChile11 ForestChile12 )
- Index: [U1,Ano2]
- Tree Node: StageTwoMedium Values: 0.0000 0.0000 0.0000 -0.0000 1.0000 0.0000 Max-Min: 1.0000 Avg: 0.1700
- Index: [U10,Ano2]
- Tree Node: StageTwoMedium Values: 0.0000 1.0000 0.0000 1.0000 0.0000 0.0000 Max-Min: 1.0000 Avg: 0.3300
- Index: [U11,Ano2]
- Tree Node: StageTwoMedium Values: 1.0000 0.0000 0.0000 0.0000 1.0000 0.0000 Max-Min: 1.0000 Avg: 0.3350
- Index: [U14,Ano2]
- Tree Node: StageTwoMedium Values: 0.0000 0.0000 1.0000 -0.0000 0.0000 0.0000 Max-Min: 1.0000 Avg: 0.1650
- Index: [U15,Ano2]
- Tree Node: StageTwoMedium Values: 0.0000 0.0000 1.0000 1.0000 0.0000 1.0000 Max-Min: 1.0000 Avg: 0.5000
- Index: [U16,Ano2]
- Tree Node: StageTwoMedium Values: 0.0000 0.0000 1.0000 1.0000 0.0000 0.0000 Max-Min: 1.0000 Avg: 0.3300
- Index: [U17,Ano2]
- Tree Node: StageTwoMedium Values: 1.0000 0.0000 0.0000 0.0000 0.0000 0.0000 Max-Min: 1.0000 Avg: 0.1650
- Index: [U18,Ano2]
- Tree Node: StageTwoMedium Values: 0.0000 0.0000 0.0000 1.0000 0.0000 0.0000 Max-Min: 1.0000 Avg: 0.1650
- Index: [U19,Ano2]
- Tree Node: StageTwoMedium Values: 0.0000 0.0000 0.0000 0.0000 1.0000 1.0000 Max-Min: 1.0000 Avg: 0.3400
- Index: [U2,Ano2]
- Tree Node: StageTwoMedium Values: 0.0000 1.0000 0.0000 -0.0000 0.0000 0.0000 Max-Min: 1.0000 Avg: 0.1650
- Index: [U25,Ano2]
- Tree Node: StageTwoMedium Values: 0.0000 0.0000 0.0000 1.0000 0.0000 0.0000 Max-Min: 1.0000 Avg: 0.1650
- Index: [U3,Ano2]
- Tree Node: StageTwoMedium Values: 0.0000 0.0000 0.0000 -0.0000 1.0000 0.0000 Max-Min: 1.0000 Avg: 0.1700
- Index: [U5,Ano2]
- Tree Node: StageTwoMedium Values: 0.0000 1.0000 0.0000 -0.0000 1.0000 0.0000 Max-Min: 1.0000 Avg: 0.3350
- Index: [U6,Ano2]
- Tree Node: StageTwoMedium Values: 0.0000 1.0000 0.0000 -0.0000 0.0000 1.0000 Max-Min: 1.0000 Avg: 0.3350
- Index: [U7,Ano2]
- Tree Node: StageTwoMedium Values: 1.0000 1.0000 1.0000 -0.0000 1.0000 0.0000 Max-Min: 1.0000 Avg: 0.6650
- Index: [U8,Ano2]
- Tree Node: StageTwoMedium Values: 0.0000 1.0000 1.0000 -0.0000 1.0000 1.0000 Max-Min: 1.0000 Avg: 0.6700
- Index: [U9,Ano2]
- Tree Node: StageTwoMedium Values: 0.0000 0.0000 0.0000 -0.0000 0.0000 1.0000 Max-Min: 1.0000 Avg: 0.1700
- (Scenarios: ForestChile13 ForestChile14 ForestChile15 ForestChile16 ForestChile17 ForestChile18 )
- Index: [U12,Ano2]
- Tree Node: StageTwoLow Values: -0.0000 0.0000 0.0000 0.0000 1.0000 1.0000 Max-Min: 1.0000 Avg: 0.3400
- Index: [U13,Ano2]
- Tree Node: StageTwoLow Values: 0.0000 0.0000 0.0000 0.0000 1.0000 -0.0000 Max-Min: 1.0000 Avg: 0.1700
- Index: [U15,Ano2]
- Tree Node: StageTwoLow Values: -0.0000 1.0000 1.0000 1.0000 0.0000 -0.0000 Max-Min: 1.0000 Avg: 0.4950
- Index: [U18,Ano2]
- Tree Node: StageTwoLow Values: 1.0000 0.0000 0.0000 0.0000 0.0000 1.0000 Max-Min: 1.0000 Avg: 0.3350
- Index: [U19,Ano2]
- Tree Node: StageTwoLow Values: 0.0000 0.0000 0.0000 0.0000 0.0000 1.0000 Max-Min: 1.0000 Avg: 0.1700
- Index: [U21,Ano2]
- Tree Node: StageTwoLow Values: 0.0000 1.0000 -0.0000 0.0000 0.0000 0.0000 Max-Min: 1.0000 Avg: 0.1650
- Index: [U3,Ano2]
- Tree Node: StageTwoLow Values: 1.0000 0.0000 0.0000 0.0000 1.0000 -0.0000 Max-Min: 1.0000 Avg: 0.3350
- Index: [U5,Ano2]
- Tree Node: StageTwoLow Values: -0.0000 1.0000 1.0000 0.0000 0.0000 -0.0000 Max-Min: 1.0000 Avg: 0.3300
- Index: [U6,Ano2]
- Tree Node: StageTwoLow Values: -0.0000 0.0000 0.0000 1.0000 0.0000 0.0000 Max-Min: 1.0000 Avg: 0.1650
- Index: [U7,Ano2]
- Tree Node: StageTwoLow Values: 1.0000 0.0000 1.0000 0.0000 0.0000 0.0000 Max-Min: 1.0000 Avg: 0.3300
- Index: [U8,Ano2]
- Tree Node: StageTwoLow Values: 0.0000 0.0000 0.0000 1.0000 0.0000 -0.0000 Max-Min: 1.0000 Avg: 0.1650
- Cost Variable: AnoProfit[Ano2]
- Tree Node: StageTwoHigh (Scenarios: ForestChile1 ForestChile2 ForestChile3 ForestChile4 ForestChile5 ForestChile6 )
- Values: 2073947.75102367810.25202167062.95702382047.43302478463.45202426489.0370 Max-Min: 404515.7010 Avg: 2346152.3161
- Tree Node: StageTwoMedium (Scenarios: ForestChile7 ForestChile8 ForestChile9 ForestChile10 ForestChile11 ForestChile12 )
- Values: 705413.86201165795.81201191750.95251210386.42001206393.92101203601.9590 Max-Min: 504972.5580 Avg: 1114801.5623
- Tree Node: StageTwoLow (Scenarios: ForestChile13 ForestChile14 ForestChile15 ForestChile16 ForestChile17 ForestChile18 )
- Values: 370412.7390 401743.2330 412297.6140 414575.4600 433229.1750 453589.5960 Max-Min: 83176.8570 Avg: 414598.9837
- Stage: Ano3Stage
- (Scenarios: ForestChile1 ForestChile2 )
- Variable: f
- Index: [C01,C09,Ano3]
- Tree Node: StageThreeHighHigh Values: 7312.4000 7312.4000 Max-Min: 0.0000 Avg: 7312.4000
- Index: [C02,C03,Ano3]
- Tree Node: StageThreeHighHigh Values: 13032.6000 14701.8000 Max-Min: 1669.2000 Avg: 14367.9600
- Index: [C03,E1,Ano3]
- Tree Node: StageThreeHighHigh Values: 13032.6000 14701.8000 Max-Min: 1669.2000 Avg: 14367.9600
- Index: [C05,I1,Ano3]
- Tree Node: StageThreeHighHigh Values: 8391.6000 22056.3000 Max-Min: 13664.7000 Avg: 19323.3600
- Index: [C08,I2,Ano3]
- Tree Node: StageThreeHighHigh Values: 10287.6000 6117.2000 Max-Min: 4170.4000 Avg: 6951.2800
- Index: [C09,E1,Ano3]
- Tree Node: StageThreeHighHigh Values: 11041.0000 7312.4000 Max-Min: 3728.6000 Avg: 8058.1200
- Index: [I1,I2,Ano3]
- Tree Node: StageThreeHighHigh Values: 8391.6000 22056.3000 Max-Min: 13664.7000 Avg: 19323.3600
- Index: [I2,I3,Ano3]
- Tree Node: StageThreeHighHigh Values: 18679.2000 28173.5000 Max-Min: 9494.3000 Avg: 26274.6400
- Index: [I3,E1,Ano3]
- Tree Node: StageThreeHighHigh Values: 18679.2000 28173.5000 Max-Min: 9494.3000 Avg: 26274.6400
- (Scenarios: ForestChile3 ForestChile4 )
- Index: [C01,C09,Ano3]
- Tree Node: StageThreeHighMedium Values: 0.0000 3656.2000 Max-Min: 3656.2000 Avg: 2559.3400
- Index: [C02,C03,Ano3]
- Tree Node: StageThreeHighMedium Values: 18422.2000 6548.4000 Max-Min: 11873.8000 Avg: 10110.5400
- Index: [C03,E1,Ano3]
- Tree Node: StageThreeHighMedium Values: 18422.2000 6548.4000 Max-Min: 11873.8000 Avg: 10110.5400
- Index: [C05,I1,Ano3]
- Tree Node: StageThreeHighMedium Values: 0.0000 14855.4000 Max-Min: 14855.4000 Avg: 10398.7800
- Index: [C06,I3,Ano3]
- Tree Node: StageThreeHighMedium Values: 10287.6000 0.0000 Max-Min: 10287.6000 Avg: 3086.2800
- Index: [C08,C06,Ano3]
- Tree Node: StageThreeHighMedium Values: 10287.6000 0.0000 Max-Min: 10287.6000 Avg: 3086.2800
- Index: [C08,I2,Ano3]
- Tree Node: StageThreeHighMedium Values: 0.0000 10287.6000 Max-Min: 10287.6000 Avg: 7201.3200
- Index: [C09,C02,Ano3]
- Tree Node: StageThreeHighMedium Values: 3656.2000 0.0000 Max-Min: 3656.2000 Avg: 1096.8600
- Index: [C09,E1,Ano3]
- Tree Node: StageThreeHighMedium Values: 0.0000 7384.8000 Max-Min: 7384.8000 Avg: 5169.3600
- Index: [I1,I2,Ano3]
- Tree Node: StageThreeHighMedium Values: 0.0000 14855.4000 Max-Min: 14855.4000 Avg: 10398.7800
- Index: [I2,I3,Ano3]
- Tree Node: StageThreeHighMedium Values: 0.0000 25143.0000 Max-Min: 25143.0000 Avg: 17600.1000
- Index: [I3,E1,Ano3]
- Tree Node: StageThreeHighMedium Values: 10287.6000 25143.0000 Max-Min: 14855.4000 Avg: 20686.3800
- (Scenarios: ForestChile5 ForestChile6 )
- Index: [C02,C03,Ano3]
- Tree Node: StageThreeHighLow Values: 10721.4000 6484.2000 Max-Min: 4237.2000 Avg: 8179.0800
- Index: [C03,E1,Ano3]
- Tree Node: StageThreeHighLow Values: 10721.4000 6484.2000 Max-Min: 4237.2000 Avg: 8179.0800
- Index: [C05,I1,Ano3]
- Tree Node: StageThreeHighLow Values: 8391.6000 22056.3000 Max-Min: 13664.7000 Avg: 16590.4200
- Index: [C08,I2,Ano3]
- Tree Node: StageThreeHighLow Values: 4170.4000 10287.6000 Max-Min: 6117.2000 Avg: 7840.7200
- Index: [C09,E1,Ano3]
- Tree Node: StageThreeHighLow Values: 3656.2000 0.0000 Max-Min: 3656.2000 Avg: 1462.4800
- Index: [I1,I2,Ano3]
- Tree Node: StageThreeHighLow Values: 8391.6000 22056.3000 Max-Min: 13664.7000 Avg: 16590.4200
- Index: [I2,I3,Ano3]
- Tree Node: StageThreeHighLow Values: 12562.0000 32343.9000 Max-Min: 19781.9000 Avg: 24431.1400
- Index: [I3,E1,Ano3]
- Tree Node: StageThreeHighLow Values: 12562.0000 32343.9000 Max-Min: 19781.9000 Avg: 24431.1400
- (Scenarios: ForestChile7 ForestChile8 )
- Index: [C01,C09,Ano3]
- Tree Node: StageThreeMediumHigh Values: 8602.8000 8602.8000 Max-Min: 0.0000 Avg: 8602.8000
- Index: [C02,C03,Ano3]
- Tree Node: StageThreeMediumHigh Values: 14766.0000 10721.4000 Max-Min: 4044.6000 Avg: 12743.7000
- Index: [C03,E1,Ano3]
- Tree Node: StageThreeMediumHigh Values: 14766.0000 18281.4000 Max-Min: 3515.4000 Avg: 16523.7000
- Index: [C04,C03,Ano3]
- Tree Node: StageThreeMediumHigh Values: 0.0000 7560.0000 Max-Min: 7560.0000 Avg: 3780.0000
- Index: [C05,I1,Ano3]
- Tree Node: StageThreeMediumHigh Values: 7200.9000 7200.9000 Max-Min: 0.0000 Avg: 7200.9000
- Index: [C08,I2,Ano3]
- Tree Node: StageThreeMediumHigh Values: 6117.2000 10287.6000 Max-Min: 4170.4000 Avg: 8202.4000
- Index: [C09,E1,Ano3]
- Tree Node: StageThreeMediumHigh Values: 15987.6000 8602.8000 Max-Min: 7384.8000 Avg: 12295.2000
- Index: [I1,I2,Ano3]
- Tree Node: StageThreeMediumHigh Values: 7200.9000 7200.9000 Max-Min: 0.0000 Avg: 7200.9000
- Index: [I2,I3,Ano3]
- Tree Node: StageThreeMediumHigh Values: 13318.1000 17488.5000 Max-Min: 4170.4000 Avg: 15403.3000
- Index: [I3,E1,Ano3]
- Tree Node: StageThreeMediumHigh Values: 13318.1000 17488.5000 Max-Min: 4170.4000 Avg: 15403.3000
- (Scenarios: ForestChile9 ForestChile10 )
- Index: [C01,C09,Ano3]
- Tree Node: StageThreeMediumMedium Values: 12259.0000 8602.8000 Max-Min: 3656.2000 Avg: 10430.9000
- Index: [C02,C03,Ano3]
- Tree Node: StageThreeMediumMedium Values: 18939.0000 6548.4000 Max-Min: 12390.6000 Avg: 12743.7000
- Index: [C03,E1,Ano3]
- Tree Node: StageThreeMediumMedium Values: 18939.0000 14422.0000 Max-Min: 4517.0000 Avg: 16680.5000
- Index: [C05,I1,Ano3]
- Tree Node: StageThreeMediumMedium Values: 8391.6000 13664.7000 Max-Min: 5273.1000 Avg: 11028.1500
- Index: [C09,E1,Ano3]
- Tree Node: StageThreeMediumMedium Values: 12259.0000 12331.4000 Max-Min: 72.4000 Avg: 12295.2000
- Index: [I1,I2,Ano3]
- Tree Node: StageThreeMediumMedium Values: 8391.6000 13664.7000 Max-Min: 5273.1000 Avg: 11028.1500
- Index: [I2,I3,Ano3]
- Tree Node: StageThreeMediumMedium Values: 8391.6000 13664.7000 Max-Min: 5273.1000 Avg: 11028.1500
- Index: [I3,E1,Ano3]
- Tree Node: StageThreeMediumMedium Values: 8391.6000 13664.7000 Max-Min: 5273.1000 Avg: 11028.1500
- (Scenarios: ForestChile11 ForestChile12 )
- Index: [C01,C09,Ano3]
- Tree Node: StageThreeMediumLow Values: 3656.2000 0.0000 Max-Min: 3656.2000 Avg: 1828.1000
- Index: [C02,C03,Ano3]
- Tree Node: StageThreeMediumLow Values: 0.0000 8217.6000 Max-Min: 8217.6000 Avg: 4108.8000
- Index: [C03,E1,Ano3]
- Tree Node: StageThreeMediumLow Values: 0.0000 8217.6000 Max-Min: 8217.6000 Avg: 4108.8000
- Index: [C05,I1,Ano3]
- Tree Node: StageThreeMediumLow Values: 15592.5000 14855.4000 Max-Min: 737.1000 Avg: 15223.9500
- Index: [C07,C08,Ano3]
- Tree Node: StageThreeMediumLow Values: 3730.0000 0.0000 Max-Min: 3730.0000 Avg: 1865.0000
- Index: [C08,I2,Ano3]
- Tree Node: StageThreeMediumLow Values: 9847.2000 0.0000 Max-Min: 9847.2000 Avg: 4923.6000
- Index: [C09,E1,Ano3]
- Tree Node: StageThreeMediumLow Values: 3656.2000 7384.8000 Max-Min: 3728.6000 Avg: 5520.5000
- Index: [I1,I2,Ano3]
- Tree Node: StageThreeMediumLow Values: 15592.5000 14855.4000 Max-Min: 737.1000 Avg: 15223.9500
- Index: [I2,I3,Ano3]
- Tree Node: StageThreeMediumLow Values: 25439.7000 14855.4000 Max-Min: 10584.3000 Avg: 20147.5500
- Index: [I3,E1,Ano3]
- Tree Node: StageThreeMediumLow Values: 25439.7000 14855.4000 Max-Min: 10584.3000 Avg: 20147.5500
- (Scenarios: ForestChile13 ForestChile14 )
- Index: [C02,C03,Ano3]
- Tree Node: StageThreeLowHigh Values: 25487.4000 31971.6000 Max-Min: 6484.2000 Avg: 28729.5000
- Index: [C03,E1,Ano3]
- Tree Node: StageThreeLowHigh Values: 25487.4000 31971.6000 Max-Min: 6484.2000 Avg: 28729.5000
- Index: [C08,I2,Ano3]
- Tree Node: StageThreeLowHigh Values: 10287.6000 4170.4000 Max-Min: 6117.2000 Avg: 7229.0000
- Index: [C09,E1,Ano3]
- Tree Node: StageThreeLowHigh Values: 3764.8000 3764.8000 Max-Min: 0.0000 Avg: 3764.8000
- Index: [I2,I3,Ano3]
- Tree Node: StageThreeLowHigh Values: 10287.6000 4170.4000 Max-Min: 6117.2000 Avg: 7229.0000
- Index: [I3,E1,Ano3]
- Tree Node: StageThreeLowHigh Values: 10287.6000 4170.4000 Max-Min: 6117.2000 Avg: 7229.0000
- (Scenarios: ForestChile15 ForestChile16 )
- Index: [C02,C03,Ano3]
- Tree Node: StageThreeLowMedium Values: 17269.8000 8217.6000 Max-Min: 9052.2000 Avg: 12743.7000
- Index: [C03,E1,Ano3]
- Tree Node: StageThreeLowMedium Values: 24829.8000 15777.6000 Max-Min: 9052.2000 Avg: 20303.7000
- Index: [C04,C03,Ano3]
- Tree Node: StageThreeLowMedium Values: 7560.0000 7560.0000 Max-Min: 0.0000 Avg: 7560.0000
- Index: [C07,C08,Ano3]
- Tree Node: StageThreeLowMedium Values: 0.0000 3730.0000 Max-Min: 3730.0000 Avg: 1865.0000
- Index: [C08,I2,Ano3]
- Tree Node: StageThreeLowMedium Values: 0.0000 3730.0000 Max-Min: 3730.0000 Avg: 1865.0000
- Index: [C09,E1,Ano3]
- Tree Node: StageThreeLowMedium Values: 0.0000 3728.6000 Max-Min: 3728.6000 Avg: 1864.3000
- Index: [I2,I3,Ano3]
- Tree Node: StageThreeLowMedium Values: 0.0000 3730.0000 Max-Min: 3730.0000 Avg: 1865.0000
- Index: [I3,E1,Ano3]
- Tree Node: StageThreeLowMedium Values: 0.0000 3730.0000 Max-Min: 3730.0000 Avg: 1865.0000
- (Scenarios: ForestChile17 ForestChile18 )
- Index: [C02,C03,Ano3]
- Tree Node: StageThreeLowLow Values: 14766.0000 10721.4000 Max-Min: 4044.6000 Avg: 12743.7000
- Index: [C03,E1,Ano3]
- Tree Node: StageThreeLowLow Values: 14766.0000 10721.4000 Max-Min: 4044.6000 Avg: 12743.7000
- Index: [C08,I2,Ano3]
- Tree Node: StageThreeLowLow Values: 6117.2000 0.0000 Max-Min: 6117.2000 Avg: 3058.6000
- Index: [C09,E1,Ano3]
- Tree Node: StageThreeLowLow Values: 0.0000 11149.6000 Max-Min: 11149.6000 Avg: 5574.8000
- Index: [I2,I3,Ano3]
- Tree Node: StageThreeLowLow Values: 6117.2000 0.0000 Max-Min: 6117.2000 Avg: 3058.6000
- Index: [I3,E1,Ano3]
- Tree Node: StageThreeLowLow Values: 6117.2000 0.0000 Max-Min: 6117.2000 Avg: 3058.6000
- (Scenarios: ForestChile1 ForestChile2 )
- Variable: z
- Index: [E1,Ano3]
- Tree Node: StageThreeHighHigh Values: 42752.8000 50187.7000 Max-Min: 7434.9000 Avg: 48700.7200
- (Scenarios: ForestChile3 ForestChile4 )
- Index: [E1,Ano3]
- Tree Node: StageThreeHighMedium Values: 28709.8000 39076.2000 Max-Min: 10366.4000 Avg: 35966.2800
- (Scenarios: ForestChile5 ForestChile6 )
- Index: [E1,Ano3]
- Tree Node: StageThreeHighLow Values: 26939.6000 38828.1000 Max-Min: 11888.5000 Avg: 34072.7000
- (Scenarios: ForestChile7 ForestChile8 )
- Index: [E1,Ano3]
- Tree Node: StageThreeMediumHigh Values: 44071.7000 44372.7000 Max-Min: 301.0000 Avg: 44222.2000
- (Scenarios: ForestChile9 ForestChile10 )
- Index: [E1,Ano3]
- Tree Node: StageThreeMediumMedium Values: 39589.6000 40418.1000 Max-Min: 828.5000 Avg: 40003.8500
- (Scenarios: ForestChile11 ForestChile12 )
- Index: [E1,Ano3]
- Tree Node: StageThreeMediumLow Values: 29095.9000 30457.8000 Max-Min: 1361.9000 Avg: 29776.8500
- (Scenarios: ForestChile13 ForestChile14 )
- Index: [E1,Ano3]
- Tree Node: StageThreeLowHigh Values: 39539.8000 39906.8000 Max-Min: 367.0000 Avg: 39723.3000
- (Scenarios: ForestChile15 ForestChile16 )
- Index: [E1,Ano3]
- Tree Node: StageThreeLowMedium Values: 24829.8000 23236.2000 Max-Min: 1593.6000 Avg: 24033.0000
- (Scenarios: ForestChile17 ForestChile18 )
- Index: [E1,Ano3]
- Tree Node: StageThreeLowLow Values: 20883.2000 21871.0000 Max-Min: 987.8000 Avg: 21377.1000
- (Scenarios: ForestChile1 ForestChile2 )
- Variable: gamma
- Index: [C01,C09,Ano3]
- Tree Node: StageThreeHighHigh Values: 0.0000 1.0000 Max-Min: 1.0000 Avg: 0.8000
- Index: [C08,I2,Ano3]
- Tree Node: StageThreeHighHigh Values: 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- (Scenarios: ForestChile3 ForestChile4 )
- Index: [C08,C06,Ano3]
- Tree Node: StageThreeHighMedium Values: 1.0000 -0.0000 Max-Min: 1.0000 Avg: 0.3000
- Index: [C08,I2,Ano3]
- Tree Node: StageThreeHighMedium Values: 0.0000 1.0000 Max-Min: 1.0000 Avg: 0.7000
- (Scenarios: ForestChile5 ForestChile6 )
- Index: [C08,I2,Ano3]
- Tree Node: StageThreeHighLow Values: 0.0000 1.0000 Max-Min: 1.0000 Avg: 0.6000
- (Scenarios: ForestChile7 ForestChile8 )
- Index: [C01,C09,Ano3]
- Tree Node: StageThreeMediumHigh Values: 1.0000 0.0000 Max-Min: 1.0000 Avg: 0.5000
- Index: [C08,I2,Ano3]
- Tree Node: StageThreeMediumHigh Values: 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- Index: [C09,E1,Ano3]
- Tree Node: StageThreeMediumHigh Values: 1.0000 0.0000 Max-Min: 1.0000 Avg: 0.5000
- (Scenarios: ForestChile9 ForestChile10 )
- Index: [C01,C09,Ano3]
- Tree Node: StageThreeMediumMedium Values: 0.0000 1.0000 Max-Min: 1.0000 Avg: 0.5000
- Index: [C09,E1,Ano3]
- Tree Node: StageThreeMediumMedium Values: 0.0000 1.0000 Max-Min: 1.0000 Avg: 0.5000
- (Scenarios: ForestChile11 ForestChile12 )
- Index: [C07,C08,Ano3]
- Tree Node: StageThreeMediumLow Values: 1.0000 0.0000 Max-Min: 1.0000 Avg: 0.5000
- Index: [C08,I2,Ano3]
- Tree Node: StageThreeMediumLow Values: 1.0000 0.0000 Max-Min: 1.0000 Avg: 0.5000
- (Scenarios: ForestChile13 ForestChile14 )
- Index: [C08,I2,Ano3]
- Tree Node: StageThreeLowHigh Values: 1.0000 0.0000 Max-Min: 1.0000 Avg: 0.5000
- (Scenarios: ForestChile15 ForestChile16 )
- Index: [C07,C08,Ano3]
- Tree Node: StageThreeLowMedium Values: 0.0000 1.0000 Max-Min: 1.0000 Avg: 0.5000
- Index: [C08,I2,Ano3]
- Tree Node: StageThreeLowMedium Values: 0.0000 1.0000 Max-Min: 1.0000 Avg: 0.5000
- (Scenarios: ForestChile17 ForestChile18 )
- Index: [C01,C09,Ano3]
- Tree Node: StageThreeLowLow Values: 0.0000 1.0000 Max-Min: 1.0000 Avg: 0.5000
- Index: [C08,I2,Ano3]
- Tree Node: StageThreeLowLow Values: 1.0000 -0.0000 Max-Min: 1.0000 Avg: 0.5000
- Index: [C09,E1,Ano3]
- Tree Node: StageThreeLowLow Values: 0.0000 1.0000 Max-Min: 1.0000 Avg: 0.5000
- (Scenarios: ForestChile1 ForestChile2 )
- Variable: delta
- Index: [U1,Ano3]
- Tree Node: StageThreeHighHigh Values: 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- Index: [U10,Ano3]
- Tree Node: StageThreeHighHigh Values: 0.0000 1.0000 Max-Min: 1.0000 Avg: 0.8000
- Index: [U14,Ano3]
- Tree Node: StageThreeHighHigh Values: 0.0000 1.0000 Max-Min: 1.0000 Avg: 0.8000
- Index: [U2,Ano3]
- Tree Node: StageThreeHighHigh Values: 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- Index: [U20,Ano3]
- Tree Node: StageThreeHighHigh Values: 1.0000 0.0000 Max-Min: 1.0000 Avg: 0.2000
- Index: [U21,Ano3]
- Tree Node: StageThreeHighHigh Values: 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- Index: [U23,Ano3]
- Tree Node: StageThreeHighHigh Values: 0.0000 1.0000 Max-Min: 1.0000 Avg: 0.8000
- Index: [U24,Ano3]
- Tree Node: StageThreeHighHigh Values: 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- Index: [U5,Ano3]
- Tree Node: StageThreeHighHigh Values: 1.0000 0.0000 Max-Min: 1.0000 Avg: 0.2000
- Index: [U6,Ano3]
- Tree Node: StageThreeHighHigh Values: 1.0000 0.0000 Max-Min: 1.0000 Avg: 0.2000
- Index: [U7,Ano3]
- Tree Node: StageThreeHighHigh Values: 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- (Scenarios: ForestChile3 ForestChile4 )
- Index: [U10,Ano3]
- Tree Node: StageThreeHighMedium Values: 1.0000 0.0000 Max-Min: 1.0000 Avg: 0.3000
- Index: [U2,Ano3]
- Tree Node: StageThreeHighMedium Values: 0.0000 1.0000 Max-Min: 1.0000 Avg: 0.7000
- Index: [U20,Ano3]
- Tree Node: StageThreeHighMedium Values: 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- Index: [U21,Ano3]
- Tree Node: StageThreeHighMedium Values: 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- Index: [U23,Ano3]
- Tree Node: StageThreeHighMedium Values: 0.0000 1.0000 Max-Min: 1.0000 Avg: 0.7000
- Index: [U24,Ano3]
- Tree Node: StageThreeHighMedium Values: 0.0000 1.0000 Max-Min: 1.0000 Avg: 0.7000
- Index: [U3,Ano3]
- Tree Node: StageThreeHighMedium Values: 1.0000 -0.0000 Max-Min: 1.0000 Avg: 0.3000
- Index: [U5,Ano3]
- Tree Node: StageThreeHighMedium Values: 0.0000 1.0000 Max-Min: 1.0000 Avg: 0.7000
- Index: [U6,Ano3]
- Tree Node: StageThreeHighMedium Values: 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- (Scenarios: ForestChile5 ForestChile6 )
- Index: [U14,Ano3]
- Tree Node: StageThreeHighLow Values: 0.0000 1.0000 Max-Min: 1.0000 Avg: 0.6000
- Index: [U20,Ano3]
- Tree Node: StageThreeHighLow Values: 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- Index: [U21,Ano3]
- Tree Node: StageThreeHighLow Values: 0.0000 1.0000 Max-Min: 1.0000 Avg: 0.6000
- Index: [U23,Ano3]
- Tree Node: StageThreeHighLow Values: 0.0000 1.0000 Max-Min: 1.0000 Avg: 0.6000
- Index: [U24,Ano3]
- Tree Node: StageThreeHighLow Values: 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- Index: [U3,Ano3]
- Tree Node: StageThreeHighLow Values: 1.0000 0.0000 Max-Min: 1.0000 Avg: 0.4000
- Index: [U7,Ano3]
- Tree Node: StageThreeHighLow Values: 0.0000 1.0000 Max-Min: 1.0000 Avg: 0.6000
- Index: [U9,Ano3]
- Tree Node: StageThreeHighLow Values: 1.0000 0.0000 Max-Min: 1.0000 Avg: 0.4000
- (Scenarios: ForestChile7 ForestChile8 )
- Index: [U10,Ano3]
- Tree Node: StageThreeMediumHigh Values: 1.0000 0.0000 Max-Min: 1.0000 Avg: 0.5000
- Index: [U14,Ano3]
- Tree Node: StageThreeMediumHigh Values: 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- Index: [U16,Ano3]
- Tree Node: StageThreeMediumHigh Values: 0.0000 1.0000 Max-Min: 1.0000 Avg: 0.5000
- Index: [U20,Ano3]
- Tree Node: StageThreeMediumHigh Values: 0.0000 1.0000 Max-Min: 1.0000 Avg: 0.5000
- Index: [U21,Ano3]
- Tree Node: StageThreeMediumHigh Values: 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- Index: [U3,Ano3]
- Tree Node: StageThreeMediumHigh Values: 1.0000 0.0000 Max-Min: 1.0000 Avg: 0.5000
- Index: [U4,Ano3]
- Tree Node: StageThreeMediumHigh Values: 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- Index: [U5,Ano3]
- Tree Node: StageThreeMediumHigh Values: 1.0000 0.0000 Max-Min: 1.0000 Avg: 0.5000
- Index: [U6,Ano3]
- Tree Node: StageThreeMediumHigh Values: 1.0000 0.0000 Max-Min: 1.0000 Avg: 0.5000
- Index: [U9,Ano3]
- Tree Node: StageThreeMediumHigh Values: 0.0000 1.0000 Max-Min: 1.0000 Avg: 0.5000
- (Scenarios: ForestChile9 ForestChile10 )
- Index: [U1,Ano3]
- Tree Node: StageThreeMediumMedium Values: 1.0000 -0.0000 Max-Min: 1.0000 Avg: 0.5000
- Index: [U10,Ano3]
- Tree Node: StageThreeMediumMedium Values: 1.0000 0.0000 Max-Min: 1.0000 Avg: 0.5000
- Index: [U12,Ano3]
- Tree Node: StageThreeMediumMedium Values: 0.0000 1.0000 Max-Min: 1.0000 Avg: 0.5000
- Index: [U14,Ano3]
- Tree Node: StageThreeMediumMedium Values: 0.0000 1.0000 Max-Min: 1.0000 Avg: 0.5000
- Index: [U23,Ano3]
- Tree Node: StageThreeMediumMedium Values: 0.0000 1.0000 Max-Min: 1.0000 Avg: 0.5000
- Index: [U24,Ano3]
- Tree Node: StageThreeMediumMedium Values: 1.0000 -0.0000 Max-Min: 1.0000 Avg: 0.5000
- Index: [U4,Ano3]
- Tree Node: StageThreeMediumMedium Values: 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- Index: [U5,Ano3]
- Tree Node: StageThreeMediumMedium Values: 0.0000 1.0000 Max-Min: 1.0000 Avg: 0.5000
- Index: [U6,Ano3]
- Tree Node: StageThreeMediumMedium Values: 0.0000 1.0000 Max-Min: 1.0000 Avg: 0.5000
- Index: [U9,Ano3]
- Tree Node: StageThreeMediumMedium Values: 1.0000 -0.0000 Max-Min: 1.0000 Avg: 0.5000
- (Scenarios: ForestChile11 ForestChile12 )
- Index: [U10,Ano3]
- Tree Node: StageThreeMediumLow Values: 0.0000 1.0000 Max-Min: 1.0000 Avg: 0.5000
- Index: [U14,Ano3]
- Tree Node: StageThreeMediumLow Values: 1.0000 0.0000 Max-Min: 1.0000 Avg: 0.5000
- Index: [U2,Ano3]
- Tree Node: StageThreeMediumLow Values: 1.0000 0.0000 Max-Min: 1.0000 Avg: 0.5000
- Index: [U21,Ano3]
- Tree Node: StageThreeMediumLow Values: 1.0000 0.0000 Max-Min: 1.0000 Avg: 0.5000
- Index: [U22,Ano3]
- Tree Node: StageThreeMediumLow Values: 1.0000 0.0000 Max-Min: 1.0000 Avg: 0.5000
- Index: [U23,Ano3]
- Tree Node: StageThreeMediumLow Values: 0.0000 1.0000 Max-Min: 1.0000 Avg: 0.5000
- Index: [U24,Ano3]
- Tree Node: StageThreeMediumLow Values: 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- Index: [U3,Ano3]
- Tree Node: StageThreeMediumLow Values: 0.0000 1.0000 Max-Min: 1.0000 Avg: 0.5000
- Index: [U5,Ano3]
- Tree Node: StageThreeMediumLow Values: 0.0000 1.0000 Max-Min: 1.0000 Avg: 0.5000
- (Scenarios: ForestChile13 ForestChile14 )
- Index: [U10,Ano3]
- Tree Node: StageThreeLowHigh Values: 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- Index: [U20,Ano3]
- Tree Node: StageThreeLowHigh Values: 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- Index: [U21,Ano3]
- Tree Node: StageThreeLowHigh Values: 1.0000 0.0000 Max-Min: 1.0000 Avg: 0.5000
- Index: [U6,Ano3]
- Tree Node: StageThreeLowHigh Values: 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- Index: [U7,Ano3]
- Tree Node: StageThreeLowHigh Values: -0.0000 1.0000 Max-Min: 1.0000 Avg: 0.5000
- Index: [U8,Ano3]
- Tree Node: StageThreeLowHigh Values: 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- Index: [U9,Ano3]
- Tree Node: StageThreeLowHigh Values: 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- (Scenarios: ForestChile15 ForestChile16 )
- Index: [U10,Ano3]
- Tree Node: StageThreeLowMedium Values: 0.0000 1.0000 Max-Min: 1.0000 Avg: 0.5000
- Index: [U16,Ano3]
- Tree Node: StageThreeLowMedium Values: 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- Index: [U22,Ano3]
- Tree Node: StageThreeLowMedium Values: 0.0000 1.0000 Max-Min: 1.0000 Avg: 0.5000
- Index: [U5,Ano3]
- Tree Node: StageThreeLowMedium Values: 0.0000 1.0000 Max-Min: 1.0000 Avg: 0.5000
- Index: [U6,Ano3]
- Tree Node: StageThreeLowMedium Values: 1.0000 0.0000 Max-Min: 1.0000 Avg: 0.5000
- Index: [U9,Ano3]
- Tree Node: StageThreeLowMedium Values: 1.0000 0.0000 Max-Min: 1.0000 Avg: 0.5000
- (Scenarios: ForestChile17 ForestChile18 )
- Index: [U10,Ano3]
- Tree Node: StageThreeLowLow Values: 1.0000 0.0000 Max-Min: 1.0000 Avg: 0.5000
- Index: [U21,Ano3]
- Tree Node: StageThreeLowLow Values: 1.0000 -0.0000 Max-Min: 1.0000 Avg: 0.5000
- Index: [U3,Ano3]
- Tree Node: StageThreeLowLow Values: 0.0000 1.0000 Max-Min: 1.0000 Avg: 0.5000
- Index: [U5,Ano3]
- Tree Node: StageThreeLowLow Values: 0.0000 1.0000 Max-Min: 1.0000 Avg: 0.5000
- Index: [U6,Ano3]
- Tree Node: StageThreeLowLow Values: 1.0000 -0.0000 Max-Min: 1.0000 Avg: 0.5000
- Index: [U8,Ano3]
- Tree Node: StageThreeLowLow Values: 0.0000 1.0000 Max-Min: 1.0000 Avg: 0.5000
- Index: [U9,Ano3]
- Tree Node: StageThreeLowLow Values: 0.0000 1.0000 Max-Min: 1.0000 Avg: 0.5000
- Cost Variable: AnoProfit[Ano3]
- Tree Node: StageThreeHighHigh (Scenarios: ForestChile1 ForestChile2 )
- Values: 2064634.41782417511.0595 Max-Min: 352876.6417 Avg: 2346935.7312
- Tree Node: StageThreeHighMedium (Scenarios: ForestChile3 ForestChile4 )
- Values: 1148018.47561570394.7333 Max-Min: 422376.2577 Avg: 1443681.8560
- Tree Node: StageThreeHighLow (Scenarios: ForestChile5 ForestChile6 )
- Values: 869086.09801243528.3580 Max-Min: 374442.2600 Avg: 1093751.4540
- Tree Node: StageThreeMediumHigh (Scenarios: ForestChile7 ForestChile8 )
- Values: 1664626.78401682826.4877 Max-Min: 18199.7037 Avg: 1673726.6358
- Tree Node: StageThreeMediumMedium (Scenarios: ForestChile9 ForestChile10 )
- Values: 1266068.41021316661.6298 Max-Min: 50593.2196 Avg: 1291365.0200
- Tree Node: StageThreeMediumLow (Scenarios: ForestChile11 ForestChile12 )
- Values: 569732.7982 613887.1821 Max-Min: 44154.3838 Avg: 591809.9902
- Tree Node: StageThreeLowHigh (Scenarios: ForestChile13 ForestChile14 )
- Values: 1277306.72281291190.4144 Max-Min: 13883.6916 Avg: 1284248.5686
- Tree Node: StageThreeLowMedium (Scenarios: ForestChile15 ForestChile16 )
- Values: 510640.2162 474372.9036 Max-Min: 36267.3126 Avg: 492506.5599
- Tree Node: StageThreeLowLow (Scenarios: ForestChile17 ForestChile18 )
- Values: 283633.0182 304347.2535 Max-Min: 20714.2353 Avg: 293990.1358
-Final costs:
-Scenario Tree Costs
-***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise
-----------------------------------------------------
-Tree Nodes:
-
- Name=Leaf1
- Stage=Ano4Stage
- Parent=StageThreeHighHigh
- Conditional probability=0.2000
- Children:
- None
- Scenarios:
- ForestChile1
- Expected cost of (sub)tree rooted at node=1343400.7225
-
- Name=Leaf10
- Stage=Ano4Stage
- Parent=StageThreeMediumMedium
- Conditional probability=0.5000
- Children:
- None
- Scenarios:
- ForestChile10
- Expected cost of (sub)tree rooted at node=792893.1758
-
- Name=Leaf11
- Stage=Ano4Stage
- Parent=StageThreeMediumLow
- Conditional probability=0.5000
- Children:
- None
- Scenarios:
- ForestChile11
- Expected cost of (sub)tree rooted at node=869507.9630
-
- Name=Leaf12
- Stage=Ano4Stage
- Parent=StageThreeMediumLow
- Conditional probability=0.5000
- Children:
- None
- Scenarios:
- ForestChile12
- Expected cost of (sub)tree rooted at node=639733.6329
-
- Name=Leaf13
- Stage=Ano4Stage
- Parent=StageThreeLowHigh
- Conditional probability=0.5000
- Children:
- None
- Scenarios:
- ForestChile13
- Expected cost of (sub)tree rooted at node=472128.9768
-
- Name=Leaf14
- Stage=Ano4Stage
- Parent=StageThreeLowHigh
- Conditional probability=0.5000
- Children:
- None
- Scenarios:
- ForestChile14
- Expected cost of (sub)tree rooted at node=299295.2803
-
- Name=Leaf15
- Stage=Ano4Stage
- Parent=StageThreeLowMedium
- Conditional probability=0.5000
- Children:
- None
- Scenarios:
- ForestChile15
- Expected cost of (sub)tree rooted at node=447589.9620
-
- Name=Leaf16
- Stage=Ano4Stage
- Parent=StageThreeLowMedium
- Conditional probability=0.5000
- Children:
- None
- Scenarios:
- ForestChile16
- Expected cost of (sub)tree rooted at node=302353.2749
-
- Name=Leaf17
- Stage=Ano4Stage
- Parent=StageThreeLowLow
- Conditional probability=0.5000
- Children:
- None
- Scenarios:
- ForestChile17
- Expected cost of (sub)tree rooted at node=361387.9282
-
- Name=Leaf18
- Stage=Ano4Stage
- Parent=StageThreeLowLow
- Conditional probability=0.5000
- Children:
- None
- Scenarios:
- ForestChile18
- Expected cost of (sub)tree rooted at node=160255.6326
-
- Name=Leaf2
- Stage=Ano4Stage
- Parent=StageThreeHighHigh
- Conditional probability=0.8000
- Children:
- None
- Scenarios:
- ForestChile2
- Expected cost of (sub)tree rooted at node=749301.5492
-
- Name=Leaf3
- Stage=Ano4Stage
- Parent=StageThreeHighMedium
- Conditional probability=0.3000
- Children:
- None
- Scenarios:
- ForestChile3
- Expected cost of (sub)tree rooted at node=1817221.5115
-
- Name=Leaf4
- Stage=Ano4Stage
- Parent=StageThreeHighMedium
- Conditional probability=0.7000
- Children:
- None
- Scenarios:
- ForestChile4
- Expected cost of (sub)tree rooted at node=860391.0343
-
- Name=Leaf5
- Stage=Ano4Stage
- Parent=StageThreeHighLow
- Conditional probability=0.4000
- Children:
- None
- Scenarios:
- ForestChile5
- Expected cost of (sub)tree rooted at node=1394382.9584
-
- Name=Leaf6
- Stage=Ano4Stage
- Parent=StageThreeHighLow
- Conditional probability=0.6000
- Children:
- None
- Scenarios:
- ForestChile6
- Expected cost of (sub)tree rooted at node=709942.1831
-
- Name=Leaf7
- Stage=Ano4Stage
- Parent=StageThreeMediumHigh
- Conditional probability=0.5000
- Children:
- None
- Scenarios:
- ForestChile7
- Expected cost of (sub)tree rooted at node=1738355.4374
-
- Name=Leaf8
- Stage=Ano4Stage
- Parent=StageThreeMediumHigh
- Conditional probability=0.5000
- Children:
- None
- Scenarios:
- ForestChile8
- Expected cost of (sub)tree rooted at node=942755.3534
-
- Name=Leaf9
- Stage=Ano4Stage
- Parent=StageThreeMediumMedium
- Conditional probability=0.5000
- Children:
- None
- Scenarios:
- ForestChile9
- Expected cost of (sub)tree rooted at node=1117134.7924
-
- Name=RootNode
- Stage=Ano1Stage
- Parent=None
- Conditional probability=1.0000
- Children:
- StageTwoHigh
- StageTwoLow
- StageTwoMedium
- Scenarios:
- ForestChile1
- ForestChile10
- ForestChile11
- ForestChile12
- ForestChile13
- ForestChile14
- ForestChile15
- ForestChile16
- ForestChile17
- ForestChile18
- ForestChile2
- ForestChile3
- ForestChile4
- ForestChile5
- ForestChile6
- ForestChile7
- ForestChile8
- ForestChile9
- Expected cost of (sub)tree rooted at node=5449635.7923
-
- Name=StageThreeHighHigh
- Stage=Ano3Stage
- Parent=StageTwoHigh
- Conditional probability=0.4500
- Children:
- Leaf1
- Leaf2
- Scenarios:
- ForestChile1
- ForestChile2
- Expected cost of (sub)tree rooted at node=2932755.8017
-
- Name=StageThreeHighLow
- Stage=Ano3Stage
- Parent=StageTwoHigh
- Conditional probability=0.2500
- Children:
- Leaf5
- Leaf6
- Scenarios:
- ForestChile5
- ForestChile6
- Expected cost of (sub)tree rooted at node=1852804.5912
-
- Name=StageThreeHighMedium
- Stage=Ano3Stage
- Parent=StageTwoHigh
- Conditional probability=0.3000
- Children:
- Leaf3
- Leaf4
- Scenarios:
- ForestChile3
- ForestChile4
- Expected cost of (sub)tree rooted at node=2295458.6531
-
- Name=StageThreeLowHigh
- Stage=Ano3Stage
- Parent=StageTwoLow
- Conditional probability=0.3300
- Children:
- Leaf13
- Leaf14
- Scenarios:
- ForestChile13
- ForestChile14
- Expected cost of (sub)tree rooted at node=1663018.8513
-
- Name=StageThreeLowLow
- Stage=Ano3Stage
- Parent=StageTwoLow
- Conditional probability=0.3400
- Children:
- Leaf17
- Leaf18
- Scenarios:
- ForestChile17
- ForestChile18
- Expected cost of (sub)tree rooted at node=544454.7986
-
- Name=StageThreeLowMedium
- Stage=Ano3Stage
- Parent=StageTwoLow
- Conditional probability=0.3300
- Children:
- Leaf15
- Leaf16
- Scenarios:
- ForestChile15
- ForestChile16
- Expected cost of (sub)tree rooted at node=885611.8346
-
- Name=StageThreeMediumHigh
- Stage=Ano3Stage
- Parent=StageTwoMedium
- Conditional probability=0.3300
- Children:
- Leaf7
- Leaf8
- Scenarios:
- ForestChile7
- ForestChile8
- Expected cost of (sub)tree rooted at node=3005182.1794
-
- Name=StageThreeMediumLow
- Stage=Ano3Stage
- Parent=StageTwoMedium
- Conditional probability=0.3400
- Children:
- Leaf11
- Leaf12
- Scenarios:
- ForestChile11
- ForestChile12
- Expected cost of (sub)tree rooted at node=1324353.5962
-
- Name=StageThreeMediumMedium
- Stage=Ano3Stage
- Parent=StageTwoMedium
- Conditional probability=0.3300
- Children:
- Leaf10
- Leaf9
- Scenarios:
- ForestChile10
- ForestChile9
- Expected cost of (sub)tree rooted at node=2221082.3943
-
- Name=StageTwoHigh
- Stage=Ano2Stage
- Parent=RootNode
- Conditional probability=0.7000
- Children:
- StageThreeHighHigh
- StageThreeHighLow
- StageThreeHighMedium
- Scenarios:
- ForestChile1
- ForestChile2
- ForestChile3
- ForestChile4
- ForestChile5
- ForestChile6
- Expected cost of (sub)tree rooted at node=4545526.6055
-
- Name=StageTwoLow
- Stage=Ano2Stage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- StageThreeLowHigh
- StageThreeLowLow
- StageThreeLowMedium
- Scenarios:
- ForestChile13
- ForestChile14
- ForestChile15
- ForestChile16
- ForestChile17
- ForestChile18
- Expected cost of (sub)tree rooted at node=1396575.4969
-
- Name=StageTwoMedium
- Stage=Ano2Stage
- Parent=RootNode
- Conditional probability=0.2000
- Children:
- StageThreeMediumHigh
- StageThreeMediumLow
- StageThreeMediumMedium
- Scenarios:
- ForestChile10
- ForestChile11
- ForestChile12
- ForestChile7
- ForestChile8
- ForestChile9
- Expected cost of (sub)tree rooted at node=2880361.3940
-
-----------------------------------------------------
-Scenarios:
-
- Name=ForestChile1
- Probability=0.0630
- Leaf Node=Leaf1
- Tree node sequence:
- RootNode
- StageTwoHigh
- StageThreeHighHigh
- Leaf1
- Stage= Ano1Stage Cost=1552037.3400
- Stage= Ano2Stage Cost=2073947.7510
- Stage= Ano3Stage Cost=2064634.4178
- Stage= Ano4Stage Cost=1343400.7225
- Total scenario cost=7034020.2313
-
- Name=ForestChile10
- Probability=0.0330
- Leaf Node=Leaf10
- Tree node sequence:
- RootNode
- StageTwoMedium
- StageThreeMediumMedium
- Leaf10
- Stage= Ano1Stage Cost=1632161.7000
- Stage= Ano2Stage Cost=1210386.4200
- Stage= Ano3Stage Cost=1316661.6298
- Stage= Ano4Stage Cost=792893.1758
- Total scenario cost=4952102.9257
-
- Name=ForestChile11
- Probability=0.0340
- Leaf Node=Leaf11
- Tree node sequence:
- RootNode
- StageTwoMedium
- StageThreeMediumLow
- Leaf11
- Stage= Ano1Stage Cost=1691184.5800
- Stage= Ano2Stage Cost=1206393.9210
- Stage= Ano3Stage Cost=569732.7982
- Stage= Ano4Stage Cost=869507.9630
- Total scenario cost=4336819.2623
-
- Name=ForestChile12
- Probability=0.0340
- Leaf Node=Leaf12
- Tree node sequence:
- RootNode
- StageTwoMedium
- StageThreeMediumLow
- Leaf12
- Stage= Ano1Stage Cost=1681215.7800
- Stage= Ano2Stage Cost=1203601.9590
- Stage= Ano3Stage Cost=613887.1821
- Stage= Ano4Stage Cost=639733.6329
- Total scenario cost=4138438.5540
-
- Name=ForestChile13
- Probability=0.0165
- Leaf Node=Leaf13
- Tree node sequence:
- RootNode
- StageTwoLow
- StageThreeLowHigh
- Leaf13
- Stage= Ano1Stage Cost=1679087.5600
- Stage= Ano2Stage Cost=370412.7390
- Stage= Ano3Stage Cost=1277306.7228
- Stage= Ano4Stage Cost=472128.9768
- Total scenario cost=3798935.9986
-
- Name=ForestChile14
- Probability=0.0165
- Leaf Node=Leaf14
- Tree node sequence:
- RootNode
- StageTwoLow
- StageThreeLowHigh
- Leaf14
- Stage= Ano1Stage Cost=1696849.5000
- Stage= Ano2Stage Cost=401743.2330
- Stage= Ano3Stage Cost=1291190.4144
- Stage= Ano4Stage Cost=299295.2803
- Total scenario cost=3689078.4277
-
- Name=ForestChile15
- Probability=0.0165
- Leaf Node=Leaf15
- Tree node sequence:
- RootNode
- StageTwoLow
- StageThreeLowMedium
- Leaf15
- Stage= Ano1Stage Cost=1696849.5000
- Stage= Ano2Stage Cost=412297.6140
- Stage= Ano3Stage Cost=510640.2162
- Stage= Ano4Stage Cost=447589.9620
- Total scenario cost=3067377.2922
-
- Name=ForestChile16
- Probability=0.0165
- Leaf Node=Leaf16
- Tree node sequence:
- RootNode
- StageTwoLow
- StageThreeLowMedium
- Leaf16
- Stage= Ano1Stage Cost=1696849.5000
- Stage= Ano2Stage Cost=414575.4600
- Stage= Ano3Stage Cost=474372.9036
- Stage= Ano4Stage Cost=302353.2749
- Total scenario cost=2888151.1385
-
- Name=ForestChile17
- Probability=0.0170
- Leaf Node=Leaf17
- Tree node sequence:
- RootNode
- StageTwoLow
- StageThreeLowLow
- Leaf17
- Stage= Ano1Stage Cost=1656959.2600
- Stage= Ano2Stage Cost=433229.1750
- Stage= Ano3Stage Cost=283633.0182
- Stage= Ano4Stage Cost=361387.9282
- Total scenario cost=2735209.3814
-
- Name=ForestChile18
- Probability=0.0170
- Leaf Node=Leaf18
- Tree node sequence:
- RootNode
- StageTwoLow
- StageThreeLowLow
- Leaf18
- Stage= Ano1Stage Cost=1665040.0800
- Stage= Ano2Stage Cost=453589.5960
- Stage= Ano3Stage Cost=304347.2535
- Stage= Ano4Stage Cost=160255.6326
- Total scenario cost=2583232.5621
-
- Name=ForestChile2
- Probability=0.2520
- Leaf Node=Leaf2
- Tree node sequence:
- RootNode
- StageTwoHigh
- StageThreeHighHigh
- Leaf2
- Stage= Ano1Stage Cost=1384678.4500
- Stage= Ano2Stage Cost=2367810.2520
- Stage= Ano3Stage Cost=2417511.0595
- Stage= Ano4Stage Cost=749301.5492
- Total scenario cost=6919301.3108
-
- Name=ForestChile3
- Probability=0.0630
- Leaf Node=Leaf3
- Tree node sequence:
- RootNode
- StageTwoHigh
- StageThreeHighMedium
- Leaf3
- Stage= Ano1Stage Cost=1388753.9800
- Stage= Ano2Stage Cost=2167062.9570
- Stage= Ano3Stage Cost=1148018.4756
- Stage= Ano4Stage Cost=1817221.5115
- Total scenario cost=6521056.9241
-
- Name=ForestChile4
- Probability=0.1470
- Leaf Node=Leaf4
- Tree node sequence:
- RootNode
- StageTwoHigh
- StageThreeHighMedium
- Leaf4
- Stage= Ano1Stage Cost=1562006.1400
- Stage= Ano2Stage Cost=2382047.4330
- Stage= Ano3Stage Cost=1570394.7333
- Stage= Ano4Stage Cost=860391.0343
- Total scenario cost=6374839.3406
-
- Name=ForestChile5
- Probability=0.0700
- Leaf Node=Leaf5
- Tree node sequence:
- RootNode
- StageTwoHigh
- StageThreeHighLow
- Leaf5
- Stage= Ano1Stage Cost=1566112.4200
- Stage= Ano2Stage Cost=2478463.4520
- Stage= Ano3Stage Cost=869086.0980
- Stage= Ano4Stage Cost=1394382.9584
- Total scenario cost=6308044.9284
-
- Name=ForestChile6
- Probability=0.1050
- Leaf Node=Leaf6
- Tree node sequence:
- RootNode
- StageTwoHigh
- StageThreeHighLow
- Leaf6
- Stage= Ano1Stage Cost=1676809.2000
- Stage= Ano2Stage Cost=2426489.0370
- Stage= Ano3Stage Cost=1243528.3580
- Stage= Ano4Stage Cost=709942.1831
- Total scenario cost=6056768.7781
-
- Name=ForestChile7
- Probability=0.0330
- Leaf Node=Leaf7
- Tree node sequence:
- RootNode
- StageTwoMedium
- StageThreeMediumHigh
- Leaf7
- Stage= Ano1Stage Cost=1654917.3400
- Stage= Ano2Stage Cost=705413.8620
- Stage= Ano3Stage Cost=1664626.7840
- Stage= Ano4Stage Cost=1738355.4374
- Total scenario cost=5763313.4234
-
- Name=ForestChile8
- Probability=0.0330
- Leaf Node=Leaf8
- Tree node sequence:
- RootNode
- StageTwoMedium
- StageThreeMediumHigh
- Leaf8
- Stage= Ano1Stage Cost=1696849.5000
- Stage= Ano2Stage Cost=1165795.8120
- Stage= Ano3Stage Cost=1682826.4877
- Stage= Ano4Stage Cost=942755.3534
- Total scenario cost=5488227.1530
-
- Name=ForestChile9
- Probability=0.0330
- Leaf Node=Leaf9
- Tree node sequence:
- RootNode
- StageTwoMedium
- StageThreeMediumMedium
- Leaf9
- Stage= Ano1Stage Cost=1696849.5000
- Stage= Ano2Stage Cost=1191750.9525
- Stage= Ano3Stage Cost=1266068.4102
- Stage= Ano4Stage Cost=1117134.7924
- Total scenario cost=5271803.6551
-
-----------------------------------------------------
-***WARNING***: PH exiting with fixed or freed variables in the scenario tree queue whose statuses have not been pushed to the scenario instances. This is because these requests were placed in the queue after the most recent solve. If these statuses are pushed to the scenario instances, a new solution should be obtained in order to reflect accurate solution data within the scenario tree. This warning can be safely ignored in most cases.
-
-Total PH execution time=2.05 seconds
-
-Scenario tree solution written to file=ph_solution.json
-Shutting down Pyro solver components
-Dispatcher received request to shut down - initiating...
-
-Total execution time=7.43 seconds
-Name Server gracefully stopped.
-Lost connection to dispatch server - shutting down...
-Lost connection to dispatch server - shutting down...
-Lost connection to dispatch server - shutting down...
-Lost connection to dispatch server - shutting down...
-Lost connection to dispatch server - shutting down...
-Lost connection to dispatch server - shutting down...
-Lost connection to dispatch server - shutting down...
-Lost connection to dispatch server - shutting down...
-Lost connection to dispatch server - shutting down...
-Lost connection to dispatch server - shutting down...
-Lost connection to dispatch server - shutting down...
-Lost connection to dispatch server - shutting down...
-Lost connection to dispatch server - shutting down...
-Lost connection to dispatch server - shutting down...
-Lost connection to dispatch server - shutting down...
-Lost connection to dispatch server - shutting down...
-Lost connection to dispatch server - shutting down...
-Lost connection to dispatch server - shutting down...
diff --git a/pyomo/pysp/tests/examples/baselines/TestPHForestryUnequalProbsPyro.test1.baseline b/pyomo/pysp/tests/examples/baselines/TestPHForestryUnequalProbsPyro.test1.baseline
deleted file mode 100644
index b8c7c78b450..00000000000
--- a/pyomo/pysp/tests/examples/baselines/TestPHForestryUnequalProbsPyro.test1.baseline
+++ /dev/null
@@ -1,1380 +0,0 @@
-*** Pyro Name Server ***
-Name server listening on: ('0.0.0.0', 9090)
-Broadcast server listening on: ('0.0.0.0', 9090)
-URI is: PYRO://10.0.0.9:9090/0a000009a1a120a961ded4b5d0e92f995d
-URI written to: /Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/pyomo/pysp/tests/examples/Pyro_NS_URI
-Name Server started.
-User-defined PH extension module=pyomo.pysp.plugins.phhistoryextension already imported - skipping
-Trying to import module=/Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/examples/pysp/forestry/config/rhosetter.py
-Module successfully loaded
-Trying to import module=/Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/examples/pysp/forestry/config/boundsetter.py
-Module successfully loaded
-Dispatcher is ready.
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI:PYRO://10.0.0.9:7766/0a000009a1a220a961dff60ee34500c1f8
-This is worker Worker_41379@Ozymandias.local
-Listening for work from dispatcher...
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI: PYRO://10.0.0.9:7766/0a000009a1a220a961dff60ee34500c1f8
-This is client 41380@Ozymandias.local
-Initializing PH
-
-Executing user rho setter callback function
-Executing user bound setter callback function
-WW PH Extension: Loading user-specified configuration from file=/Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/examples/pysp/forestry/config/wwph.cfg
-WW PH Extension: Loading variable suffixes from file=/Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/examples/pysp/forestry/config/wwph-nb.suffixes
-WW PH Extension: Setting mipgap to 0.0210000, as specified in the configuration file
-User-defined PH solution writer module=pyomo.pysp.plugins.jsonsolutionwriter already imported - skipping
-Starting PH
-
-Initiating PH iteration=0
-2014-06-14 21:39:35.402238: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp2FtTl7.tmpWQoI4Q.pyomo.lp
-2014-06-14 21:39:35.478629: Solve completed - number of solutions=1
-2014-06-14 21:39:35.493175: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpb0nCm3.tmpUtDtVP.pyomo.lp
-2014-06-14 21:39:35.535544: Solve completed - number of solutions=1
-2014-06-14 21:39:35.549959: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp4IFs1N.tmpQZq9Re.pyomo.lp
-2014-06-14 21:39:35.591471: Solve completed - number of solutions=1
-2014-06-14 21:39:35.605913: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpaQonxi.tmpDWdoAL.pyomo.lp
-2014-06-14 21:39:35.649674: Solve completed - number of solutions=1
-2014-06-14 21:39:35.664244: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp1xuqOz.tmp5srwZ3.pyomo.lp
-2014-06-14 21:39:35.741416: Solve completed - number of solutions=1
-2014-06-14 21:39:35.755884: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpLhB_Jv.tmp7iY5Vr.pyomo.lp
-2014-06-14 21:39:35.799750: Solve completed - number of solutions=1
-2014-06-14 21:39:35.813096: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpuO0hTZ.tmpxPtJDH.pyomo.lp
-2014-06-14 21:39:35.908843: Solve completed - number of solutions=1
-2014-06-14 21:39:35.923405: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpVjTPQR.tmplrhy7n.pyomo.lp
-2014-06-14 21:39:36.016545: Solve completed - number of solutions=1
-2014-06-14 21:39:36.030676: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpxFE7E5.tmplUkpxY.pyomo.lp
-2014-06-14 21:39:36.390198: Solve completed - number of solutions=1
-2014-06-14 21:39:36.404111: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpBhxPay.tmpi8oyu4.pyomo.lp
-2014-06-14 21:39:36.581211: Solve completed - number of solutions=1
-2014-06-14 21:39:36.594733: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpuU_D0n.tmpwkanqy.pyomo.lp
-2014-06-14 21:39:36.760605: Solve completed - number of solutions=1
-2014-06-14 21:39:36.773726: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpfO3W79.tmp3FuQlY.pyomo.lp
-2014-06-14 21:39:36.859711: Solve completed - number of solutions=1
-2014-06-14 21:39:36.873791: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp5yqZ1_.tmpEbIl6O.pyomo.lp
-2014-06-14 21:39:37.035556: Solve completed - number of solutions=1
-2014-06-14 21:39:37.049529: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpW1JKRU.tmpX74Di2.pyomo.lp
-2014-06-14 21:39:37.160543: Solve completed - number of solutions=1
-2014-06-14 21:39:37.173449: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpM83hh2.tmpsvM35q.pyomo.lp
-2014-06-14 21:39:37.325786: Solve completed - number of solutions=1
-2014-06-14 21:39:37.339752: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpwPhCvG.tmpmwryju.pyomo.lp
-2014-06-14 21:39:37.504294: Solve completed - number of solutions=1
-2014-06-14 21:39:37.518972: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpXGXVaP.tmp6VZcbf.pyomo.lp
-2014-06-14 21:39:37.696872: Solve completed - number of solutions=1
-2014-06-14 21:39:37.710109: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmprJ_8GJ.tmps91w7Q.pyomo.lp
-2014-06-14 21:39:37.929824: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.02 Avg: 0.11 Max: 0.34 (seconds)
-Number of discrete variables fixed=0 (total=507)
-Number of continuous variables fixed=0 (total=273)
-Convergence metric= 0.0906 First stage cost avg=1626400.6294 Max-Min=312171.05
-Cumulative run-time=2.67 seconds
-Number of discrete variables fixed before final plugin calls=0 (total=507)
-Number of continuous variables fixed before final plugin calls=0 (total=273)
-PH algorithm history written to file=ph_history.json
-PH complete
-Convergence history:
-Iteration Metric Value
- 0 0.0906
-
-***********************************************************************************************
->>>THE EXPECTED SUM OF THE STAGE COST VARIABLES=5449635.79233<<<
->>>***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise<<<
-***********************************************************************************************
-Final number of discrete variables fixed=0 (total=507)
-Final number of continuous variables fixed=0 (total=273)
-Final variable values:
- Stage: Ano1Stage
- (Scenarios: ForestChile1 ForestChile2 ForestChile3 ForestChile4 ForestChile5 ForestChile6 ForestChile7 ForestChile8 ForestChile9 ForestChile10 ForestChile11 ForestChile12 ForestChile13 ForestChile14 ForestChile15 ForestChile16 ForestChile17 ForestChile18 )
- Variable: f
- Index: [C02,C03,Ano1] Values: 0.0000 3656.2000 3764.8000 0.0000 6484.2000 10721.4000 0.0000 0.0000 0.0000 10721.4000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 6484.2000 6484.2000 Max-Min: 10721.4000 Avg: 3312.4548
- Index: [C03,E1,Ano1] Values: 21047.0000 17383.2000 17491.8000 21287.0000 21917.8000 24448.4000 28847.0000 21047.0000 21047.0000 23894.8000 28847.0000 28607.0000 30313.6000 21047.0000 21047.0000 21047.0000 28924.2000 34777.6000 Max-Min: 17394.4000 Avg: 21746.9767
- Index: [C04,C03,Ano1] Values: 7320.0000 0.0000 0.0000 7560.0000 7560.0000 0.0000 15120.0000 7320.0000 7320.0000 7320.0000 15120.0000 14880.0000 22440.0000 7320.0000 7320.0000 7320.0000 22440.0000 22440.0000 Max-Min: 22440.0000 Avg: 5840.8800
- Index: [C06,I3,Ano1] Values: 15285.2000 15285.2000 15285.2000 15285.2000 15285.2000 15285.2000 10105.2000 15285.2000 15285.2000 9510.8000 10954.4000 10954.4000 9510.8000 15285.2000 15285.2000 15285.2000 10954.4000 5180.0000 Max-Min: 10105.2000 Avg: 14288.5208
- Index: [C08,I2,Ano1] Values: 0.0000 -0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 6117.2000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 Max-Min: 6117.2000 Avg: 201.8676
- Index: [C09,C02,Ano1] Values: 0.0000 3656.2000 3764.8000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 Max-Min: 3764.8000 Avg: 1158.5448
- Index: [C09,E1,Ano1] Values: 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 3656.2000 3656.2000 0.0000 0.0000 0.0000 0.0000 3656.2000 3656.2000 3656.2000 0.0000 0.0000 Max-Min: 3656.2000 Avg: 422.2911
- Index: [I2,I3,Ano1] Values: 0.0000 -0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 6117.2000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 Max-Min: 6117.2000 Avg: 201.8676
- Index: [I3,E1,Ano1] Values: 15285.2000 15285.2000 15285.2000 15285.2000 15285.2000 15285.2000 10105.2000 15285.2000 15285.2000 15628.0000 10954.4000 10954.4000 9510.8000 15285.2000 15285.2000 15285.2000 10954.4000 5180.0000 Max-Min: 10448.0000 Avg: 14490.3884
- (Scenarios: ForestChile1 ForestChile2 ForestChile3 ForestChile4 ForestChile5 ForestChile6 ForestChile7 ForestChile8 ForestChile9 ForestChile10 ForestChile11 ForestChile12 ForestChile13 ForestChile14 ForestChile15 ForestChile16 ForestChile17 ForestChile18 )
- Variable: z
- Index: [E1,Ano1] Values: 36332.2000 32668.4000 32777.0000 36572.2000 37203.0000 39733.6000 38952.2000 39988.4000 39988.4000 39522.8000 39801.4000 39561.4000 39824.4000 39988.4000 39988.4000 39988.4000 39878.6000 39957.6000 Max-Min: 7320.0000 Avg: 36659.6562
- (Scenarios: ForestChile1 ForestChile2 ForestChile3 ForestChile4 ForestChile5 ForestChile6 ForestChile7 ForestChile8 ForestChile9 ForestChile10 ForestChile11 ForestChile12 ForestChile13 ForestChile14 ForestChile15 ForestChile16 ForestChile17 ForestChile18 )
- Variable: gamma
- Index: [C01,C09,Ano1] Values: 0.0000 0.0000 0.0000 0.0000 0.0000 -0.0000 0.0000 1.0000 1.0000 0.0000 0.0000 0.0000 -0.0000 1.0000 1.0000 1.0000 0.0000 -0.0000 Max-Min: 1.0000 Avg: 0.1155
- Index: [C04,C03,Ano1] Values: 1.0000 0.0000 0.0000 1.0000 1.0000 0.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 Max-Min: 1.0000 Avg: 0.5800
- Index: [C06,I3,Ano1] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- Index: [C08,I2,Ano1] Values: -0.0000 0.0000 0.0000 -0.0000 0.0000 -0.0000 0.0000 0.0000 0.0000 1.0000 0.0000 0.0000 -0.0000 0.0000 0.0000 0.0000 0.0000 -0.0000 Max-Min: 1.0000 Avg: 0.0330
- Index: [C09,C02,Ano1] Values: -0.0000 1.0000 1.0000 -0.0000 0.0000 -0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 -0.0000 Max-Min: 1.0000 Avg: 0.3150
- Index: [C09,E1,Ano1] Values: -0.0000 0.0000 0.0000 -0.0000 0.0000 -0.0000 0.0000 1.0000 1.0000 0.0000 0.0000 0.0000 -0.0000 1.0000 1.0000 1.0000 0.0000 0.0000 Max-Min: 1.0000 Avg: 0.1155
- (Scenarios: ForestChile1 ForestChile2 ForestChile3 ForestChile4 ForestChile5 ForestChile6 ForestChile7 ForestChile8 ForestChile9 ForestChile10 ForestChile11 ForestChile12 ForestChile13 ForestChile14 ForestChile15 ForestChile16 ForestChile17 ForestChile18 )
- Variable: delta
- Index: [U11,Ano1] Values: 1.0000 0.0000 0.0000 -0.0000 0.0000 0.0000 0.0000 1.0000 1.0000 1.0000 0.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 Max-Min: 1.0000 Avg: 0.2960
- Index: [U12,Ano1] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 0.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 0.0000 0.0000 Max-Min: 1.0000 Avg: 0.9330
- Index: [U13,Ano1] Values: 1.0000 1.0000 1.0000 1.0000 0.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 -0.0000 1.0000 1.0000 1.0000 0.0000 1.0000 Max-Min: 1.0000 Avg: 0.8965
- Index: [U15,Ano1] Values: -0.0000 0.0000 0.0000 -0.0000 0.0000 0.0000 1.0000 0.0000 0.0000 0.0000 1.0000 0.0000 1.0000 0.0000 0.0000 0.0000 1.0000 1.0000 Max-Min: 1.0000 Avg: 0.1175
- Index: [U16,Ano1] Values: -0.0000 0.0000 0.0000 1.0000 1.0000 0.0000 1.0000 0.0000 0.0000 0.0000 1.0000 1.0000 1.0000 0.0000 0.0000 0.0000 1.0000 1.0000 Max-Min: 1.0000 Avg: 0.3685
- Index: [U17,Ano1] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 0.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 Max-Min: 1.0000 Avg: 0.9670
- Index: [U18,Ano1] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 0.0000 1.0000 1.0000 -0.0000 1.0000 1.0000 1.0000 1.0000 0.0000 Max-Min: 1.0000 Avg: 0.9335
- Index: [U19,Ano1] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 0.0000 0.0000 1.0000 1.0000 1.0000 1.0000 0.0000 -0.0000 Max-Min: 1.0000 Avg: 0.8980
- Index: [U21,Ano1] Values: -0.0000 0.0000 0.0000 -0.0000 0.0000 -0.0000 0.0000 0.0000 0.0000 1.0000 0.0000 0.0000 -0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 Max-Min: 1.0000 Avg: 0.0330
- Index: [U3,Ano1] Values: 0.0000 1.0000 0.0000 0.0000 0.0000 -0.0000 0.0000 1.0000 1.0000 0.0000 0.0000 0.0000 -0.0000 1.0000 1.0000 1.0000 0.0000 0.0000 Max-Min: 1.0000 Avg: 0.3675
- Index: [U7,Ano1] Values: -0.0000 0.0000 0.0000 -0.0000 1.0000 -0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 -0.0000 0.0000 0.0000 0.0000 1.0000 1.0000 Max-Min: 1.0000 Avg: 0.1040
- Index: [U8,Ano1] Values: -0.0000 0.0000 1.0000 0.0000 0.0000 -0.0000 0.0000 0.0000 0.0000 -0.0000 0.0000 0.0000 -0.0000 0.0000 0.0000 0.0000 0.0000 -0.0000 Max-Min: 1.0000 Avg: 0.0630
- Index: [U9,Ano1] Values: -0.0000 0.0000 0.0000 -0.0000 0.0000 1.0000 0.0000 0.0000 0.0000 1.0000 0.0000 0.0000 -0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 Max-Min: 1.0000 Avg: 0.1380
- Cost Variable: AnoProfit[Ano1]
- Tree Node: RootNode (Scenarios: ForestChile1 ForestChile2 ForestChile3 ForestChile4 ForestChile5 ForestChile6 ForestChile7 ForestChile8 ForestChile9 ForestChile10 ForestChile11 ForestChile12 ForestChile13 ForestChile14 ForestChile15 ForestChile16 ForestChile17 ForestChile18 )
- Values: 1552037.34001384678.45001388753.98001562006.14001566112.42001676809.20001654917.34001696849.50001696849.50001632161.70001691184.58001681215.78001679087.56001696849.50001696849.50001696849.50001656959.26001665040.0800 Max-Min: 312171.0500 Avg: 1552816.8319
- Stage: Ano2Stage
- (Scenarios: ForestChile1 ForestChile2 ForestChile3 ForestChile4 ForestChile5 ForestChile6 )
- Variable: f
- Index: [C01,C09,Ano2]
- Tree Node: StageTwoHigh Values: 0.0000 0.0000 0.0000 0.0000 8602.8000 0.0000 Max-Min: 8602.8000 Avg: 860.2800
- Index: [C02,C03,Ano2]
- Tree Node: StageTwoHigh Values: 18939.0000 17269.8000 20934.2000 25423.2000 6548.4000 14766.0000 Max-Min: 18874.8000 Avg: 18014.3280
- Index: [C03,E1,Ano2]
- Tree Node: StageTwoHigh Values: 34059.0000 39709.8000 43374.2000 40303.2000 27281.8000 37206.0000 Max-Min: 16092.4000 Avg: 38037.2680
- Index: [C04,C03,Ano2]
- Tree Node: StageTwoHigh Values: 15120.0000 22440.0000 22440.0000 14880.0000 14880.0000 22440.0000 Max-Min: 7560.0000 Avg: 19437.6000
- Index: [C08,I2,Ano2]
- Tree Node: StageTwoHigh Values: 0.0000 0.0000 0.0000 0.0000 6117.2000 0.0000 Max-Min: 6117.2000 Avg: 611.7200
- Index: [C09,C02,Ano2]
- Tree Node: StageTwoHigh Values: 0.0000 0.0000 3728.6000 0.0000 0.0000 0.0000 Max-Min: 3728.6000 Avg: 335.5740
- Index: [C09,E1,Ano2]
- Tree Node: StageTwoHigh Values: 7421.0000 7493.4000 0.0000 7421.0000 16096.2000 11149.6000 Max-Min: 16096.2000 Avg: 8205.9840
- Index: [I2,I3,Ano2]
- Tree Node: StageTwoHigh Values: 0.0000 0.0000 0.0000 0.0000 6117.2000 0.0000 Max-Min: 6117.2000 Avg: 611.7200
- Index: [I3,E1,Ano2]
- Tree Node: StageTwoHigh Values: 0.0000 0.0000 0.0000 0.0000 6117.2000 0.0000 Max-Min: 6117.2000 Avg: 611.7200
- (Scenarios: ForestChile7 ForestChile8 ForestChile9 ForestChile10 ForestChile11 ForestChile12 )
- Index: [C01,C09,Ano2]
- Tree Node: StageTwoMedium Values: 0.0000 3656.2000 0.0000 0.0000 3656.2000 0.0000 Max-Min: 3656.2000 Avg: 1224.8270
- Index: [C02,C03,Ano2]
- Tree Node: StageTwoMedium Values: 6484.2000 21250.2000 6484.2000 8217.6000 6484.2000 17269.8000 Max-Min: 14766.0000 Avg: 11040.1530
- Index: [C03,E1,Ano2]
- Tree Node: StageTwoMedium Values: 13804.2000 21250.2000 21604.2000 23337.6000 13804.2000 24829.8000 Max-Min: 11025.6000 Avg: 19767.1530
- Index: [C04,C03,Ano2]
- Tree Node: StageTwoMedium Values: 7320.0000 0.0000 15120.0000 15120.0000 7320.0000 7560.0000 Max-Min: 15120.0000 Avg: 8727.0000
- Index: [C05,I1,Ano2]
- Tree Node: StageTwoMedium Values: 0.0000 0.0000 7200.9000 0.0000 0.0000 0.0000 Max-Min: 7200.9000 Avg: 1188.1485
- Index: [C06,I3,Ano2]
- Tree Node: StageTwoMedium Values: 5180.0000 0.0000 0.0000 5774.4000 4330.8000 4330.8000 Max-Min: 5774.4000 Avg: 3279.9480
- Index: [C07,C08,Ano2]
- Tree Node: StageTwoMedium Values: 0.0000 0.0000 0.0000 3767.3000 0.0000 0.0000 Max-Min: 3767.3000 Avg: 621.6045
- Index: [C08,I2,Ano2]
- Tree Node: StageTwoMedium Values: 0.0000 0.0000 0.0000 3767.3000 0.0000 0.0000 Max-Min: 3767.3000 Avg: 621.6045
- Index: [C09,E1,Ano2]
- Tree Node: StageTwoMedium Values: 0.0000 11149.6000 3764.8000 0.0000 14805.8000 3764.8000 Max-Min: 14805.8000 Avg: 5617.8780
- Index: [I1,I2,Ano2]
- Tree Node: StageTwoMedium Values: 0.0000 0.0000 7200.9000 0.0000 0.0000 0.0000 Max-Min: 7200.9000 Avg: 1188.1485
- Index: [I2,I3,Ano2]
- Tree Node: StageTwoMedium Values: 0.0000 0.0000 7200.9000 3767.3000 0.0000 0.0000 Max-Min: 7200.9000 Avg: 1809.7530
- Index: [I3,E1,Ano2]
- Tree Node: StageTwoMedium Values: 5180.0000 0.0000 7200.9000 9541.7000 4330.8000 4330.8000 Max-Min: 9541.7000 Avg: 5089.7010
- (Scenarios: ForestChile13 ForestChile14 ForestChile15 ForestChile16 ForestChile17 ForestChile18 )
- Index: [C02,C03,Ano2]
- Tree Node: StageTwoLow Values: 6484.2000 0.0000 6484.2000 6548.4000 0.0000 0.0000 Max-Min: 6548.4000 Avg: 3220.2720
- Index: [C03,E1,Ano2]
- Tree Node: StageTwoLow Values: 6484.2000 7560.0000 14044.2000 14108.4000 13727.0000 7873.6000 Max-Min: 7624.2000 Avg: 10634.5740
- Index: [C04,C03,Ano2]
- Tree Node: StageTwoLow Values: 0.0000 7560.0000 7560.0000 7560.0000 0.0000 0.0000 Max-Min: 7560.0000 Avg: 3742.2000
- Index: [C06,I3,Ano2]
- Tree Node: StageTwoLow Values: 5774.4000 0.0000 0.0000 0.0000 0.0000 10105.2000 Max-Min: 10105.2000 Avg: 2670.6600
- Index: [C08,I2,Ano2]
- Tree Node: StageTwoLow Values: 0.0000 6117.2000 0.0000 0.0000 0.0000 0.0000 Max-Min: 6117.2000 Avg: 1009.3380
- Index: [C09,E1,Ano2]
- Tree Node: StageTwoLow Values: 3656.2000 3728.6000 3728.6000 3764.8000 3656.2000 0.0000 Max-Min: 3764.8000 Avg: 3076.4570
- Index: [I2,I3,Ano2]
- Tree Node: StageTwoLow Values: 0.0000 6117.2000 0.0000 0.0000 0.0000 0.0000 Max-Min: 6117.2000 Avg: 1009.3380
- Index: [I3,E1,Ano2]
- Tree Node: StageTwoLow Values: 5774.4000 6117.2000 0.0000 0.0000 0.0000 10105.2000 Max-Min: 10105.2000 Avg: 3679.9980
- (Scenarios: ForestChile1 ForestChile2 ForestChile3 ForestChile4 ForestChile5 ForestChile6 )
- Variable: z
- Index: [E1,Ano2]
- Tree Node: StageTwoHigh Values: 41480.0000 47203.2000 43374.2000 47724.2000 49495.2000 48355.6000 Max-Min: 8015.2000 Avg: 46854.9720
- (Scenarios: ForestChile7 ForestChile8 ForestChile9 ForestChile10 ForestChile11 ForestChile12 )
- Index: [E1,Ano2]
- Tree Node: StageTwoMedium Values: 18984.2000 32399.8000 32569.9000 32879.3000 32940.8000 32925.4000 Max-Min: 13956.6000 Avg: 30474.7320
- (Scenarios: ForestChile13 ForestChile14 ForestChile15 ForestChile16 ForestChile17 ForestChile18 )
- Index: [E1,Ano2]
- Tree Node: StageTwoLow Values: 15914.8000 17405.8000 17772.8000 17873.2000 17383.2000 17978.8000 Max-Min: 2064.0000 Avg: 17391.0290
- (Scenarios: ForestChile1 ForestChile2 ForestChile3 ForestChile4 ForestChile5 ForestChile6 )
- Variable: gamma
- Index: [C01,C09,Ano2]
- Tree Node: StageTwoHigh Values: 1.0000 0.0000 0.0000 1.0000 1.0000 1.0000 Max-Min: 1.0000 Avg: 0.5500
- Index: [C04,C03,Ano2]
- Tree Node: StageTwoHigh Values: -0.0000 1.0000 1.0000 0.0000 0.0000 1.0000 Max-Min: 1.0000 Avg: 0.6000
- Index: [C08,I2,Ano2]
- Tree Node: StageTwoHigh Values: -0.0000 0.0000 0.0000 -0.0000 1.0000 0.0000 Max-Min: 1.0000 Avg: 0.1000
- Index: [C09,E1,Ano2]
- Tree Node: StageTwoHigh Values: 1.0000 1.0000 0.0000 1.0000 1.0000 1.0000 Max-Min: 1.0000 Avg: 0.9100
- (Scenarios: ForestChile7 ForestChile8 ForestChile9 ForestChile10 ForestChile11 ForestChile12 )
- Index: [C01,C09,Ano2]
- Tree Node: StageTwoMedium Values: 0.0000 0.0000 0.0000 -0.0000 1.0000 1.0000 Max-Min: 1.0000 Avg: 0.3400
- Index: [C07,C08,Ano2]
- Tree Node: StageTwoMedium Values: 0.0000 0.0000 0.0000 1.0000 0.0000 0.0000 Max-Min: 1.0000 Avg: 0.1650
- Index: [C09,E1,Ano2]
- Tree Node: StageTwoMedium Values: 0.0000 0.0000 0.0000 -0.0000 1.0000 1.0000 Max-Min: 1.0000 Avg: 0.3400
- (Scenarios: ForestChile13 ForestChile14 ForestChile15 ForestChile16 ForestChile17 ForestChile18 )
- Index: [C01,C09,Ano2]
- Tree Node: StageTwoLow Values: 1.0000 0.0000 0.0000 0.0000 1.0000 -0.0000 Max-Min: 1.0000 Avg: 0.3350
- Index: [C08,I2,Ano2]
- Tree Node: StageTwoLow Values: -0.0000 1.0000 0.0000 0.0000 0.0000 0.0000 Max-Min: 1.0000 Avg: 0.1650
- Index: [C09,E1,Ano2]
- Tree Node: StageTwoLow Values: 1.0000 0.0000 0.0000 0.0000 1.0000 -0.0000 Max-Min: 1.0000 Avg: 0.3350
- (Scenarios: ForestChile1 ForestChile2 ForestChile3 ForestChile4 ForestChile5 ForestChile6 )
- Variable: delta
- Index: [U10,Ano2]
- Tree Node: StageTwoHigh Values: 1.0000 0.0000 0.0000 1.0000 0.0000 1.0000 Max-Min: 1.0000 Avg: 0.4500
- Index: [U11,Ano2]
- Tree Node: StageTwoHigh Values: 0.0000 1.0000 1.0000 1.0000 1.0000 1.0000 Max-Min: 1.0000 Avg: 0.9100
- Index: [U13,Ano2]
- Tree Node: StageTwoHigh Values: -0.0000 0.0000 0.0000 0.0000 1.0000 0.0000 Max-Min: 1.0000 Avg: 0.1000
- Index: [U15,Ano2]
- Tree Node: StageTwoHigh Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- Index: [U16,Ano2]
- Tree Node: StageTwoHigh Values: 1.0000 1.0000 1.0000 0.0000 0.0000 1.0000 Max-Min: 1.0000 Avg: 0.6900
- Index: [U21,Ano2]
- Tree Node: StageTwoHigh Values: -0.0000 0.0000 0.0000 -0.0000 1.0000 -0.0000 Max-Min: 1.0000 Avg: 0.1000
- Index: [U3,Ano2]
- Tree Node: StageTwoHigh Values: 1.0000 0.0000 0.0000 1.0000 0.0000 1.0000 Max-Min: 1.0000 Avg: 0.4500
- Index: [U4,Ano2]
- Tree Node: StageTwoHigh Values: -0.0000 0.0000 0.0000 -0.0000 1.0000 -0.0000 Max-Min: 1.0000 Avg: 0.1000
- Index: [U5,Ano2]
- Tree Node: StageTwoHigh Values: -0.0000 1.0000 1.0000 -0.0000 1.0000 1.0000 Max-Min: 1.0000 Avg: 0.7000
- Index: [U6,Ano2]
- Tree Node: StageTwoHigh Values: -0.0000 1.0000 0.0000 -0.0000 1.0000 1.0000 Max-Min: 1.0000 Avg: 0.6100
- Index: [U7,Ano2]
- Tree Node: StageTwoHigh Values: -0.0000 0.0000 1.0000 1.0000 0.0000 -0.0000 Max-Min: 1.0000 Avg: 0.3000
- Index: [U8,Ano2]
- Tree Node: StageTwoHigh Values: 1.0000 1.0000 0.0000 1.0000 1.0000 1.0000 Max-Min: 1.0000 Avg: 0.9100
- Index: [U9,Ano2]
- Tree Node: StageTwoHigh Values: 1.0000 1.0000 1.0000 1.0000 0.0000 -0.0000 Max-Min: 1.0000 Avg: 0.7500
- (Scenarios: ForestChile7 ForestChile8 ForestChile9 ForestChile10 ForestChile11 ForestChile12 )
- Index: [U1,Ano2]
- Tree Node: StageTwoMedium Values: 0.0000 0.0000 0.0000 -0.0000 1.0000 0.0000 Max-Min: 1.0000 Avg: 0.1700
- Index: [U10,Ano2]
- Tree Node: StageTwoMedium Values: 0.0000 1.0000 0.0000 1.0000 0.0000 0.0000 Max-Min: 1.0000 Avg: 0.3300
- Index: [U11,Ano2]
- Tree Node: StageTwoMedium Values: 1.0000 0.0000 0.0000 0.0000 1.0000 0.0000 Max-Min: 1.0000 Avg: 0.3350
- Index: [U14,Ano2]
- Tree Node: StageTwoMedium Values: 0.0000 0.0000 1.0000 -0.0000 0.0000 0.0000 Max-Min: 1.0000 Avg: 0.1650
- Index: [U15,Ano2]
- Tree Node: StageTwoMedium Values: 0.0000 0.0000 1.0000 1.0000 0.0000 1.0000 Max-Min: 1.0000 Avg: 0.5000
- Index: [U16,Ano2]
- Tree Node: StageTwoMedium Values: 0.0000 0.0000 1.0000 1.0000 0.0000 0.0000 Max-Min: 1.0000 Avg: 0.3300
- Index: [U17,Ano2]
- Tree Node: StageTwoMedium Values: 1.0000 0.0000 0.0000 0.0000 0.0000 0.0000 Max-Min: 1.0000 Avg: 0.1650
- Index: [U18,Ano2]
- Tree Node: StageTwoMedium Values: 0.0000 0.0000 0.0000 1.0000 0.0000 0.0000 Max-Min: 1.0000 Avg: 0.1650
- Index: [U19,Ano2]
- Tree Node: StageTwoMedium Values: 0.0000 0.0000 0.0000 0.0000 1.0000 1.0000 Max-Min: 1.0000 Avg: 0.3400
- Index: [U2,Ano2]
- Tree Node: StageTwoMedium Values: 0.0000 1.0000 0.0000 -0.0000 0.0000 0.0000 Max-Min: 1.0000 Avg: 0.1650
- Index: [U25,Ano2]
- Tree Node: StageTwoMedium Values: 0.0000 0.0000 0.0000 1.0000 0.0000 0.0000 Max-Min: 1.0000 Avg: 0.1650
- Index: [U3,Ano2]
- Tree Node: StageTwoMedium Values: 0.0000 0.0000 0.0000 -0.0000 1.0000 0.0000 Max-Min: 1.0000 Avg: 0.1700
- Index: [U5,Ano2]
- Tree Node: StageTwoMedium Values: 0.0000 1.0000 0.0000 -0.0000 1.0000 0.0000 Max-Min: 1.0000 Avg: 0.3350
- Index: [U6,Ano2]
- Tree Node: StageTwoMedium Values: 0.0000 1.0000 0.0000 -0.0000 0.0000 1.0000 Max-Min: 1.0000 Avg: 0.3350
- Index: [U7,Ano2]
- Tree Node: StageTwoMedium Values: 1.0000 1.0000 1.0000 -0.0000 1.0000 0.0000 Max-Min: 1.0000 Avg: 0.6650
- Index: [U8,Ano2]
- Tree Node: StageTwoMedium Values: 0.0000 1.0000 1.0000 -0.0000 1.0000 1.0000 Max-Min: 1.0000 Avg: 0.6700
- Index: [U9,Ano2]
- Tree Node: StageTwoMedium Values: 0.0000 0.0000 0.0000 -0.0000 0.0000 1.0000 Max-Min: 1.0000 Avg: 0.1700
- (Scenarios: ForestChile13 ForestChile14 ForestChile15 ForestChile16 ForestChile17 ForestChile18 )
- Index: [U12,Ano2]
- Tree Node: StageTwoLow Values: -0.0000 0.0000 0.0000 0.0000 1.0000 1.0000 Max-Min: 1.0000 Avg: 0.3400
- Index: [U13,Ano2]
- Tree Node: StageTwoLow Values: 0.0000 0.0000 0.0000 0.0000 1.0000 -0.0000 Max-Min: 1.0000 Avg: 0.1700
- Index: [U15,Ano2]
- Tree Node: StageTwoLow Values: -0.0000 1.0000 1.0000 1.0000 0.0000 -0.0000 Max-Min: 1.0000 Avg: 0.4950
- Index: [U18,Ano2]
- Tree Node: StageTwoLow Values: 1.0000 0.0000 0.0000 0.0000 0.0000 1.0000 Max-Min: 1.0000 Avg: 0.3350
- Index: [U19,Ano2]
- Tree Node: StageTwoLow Values: 0.0000 0.0000 0.0000 0.0000 0.0000 1.0000 Max-Min: 1.0000 Avg: 0.1700
- Index: [U21,Ano2]
- Tree Node: StageTwoLow Values: 0.0000 1.0000 -0.0000 0.0000 0.0000 0.0000 Max-Min: 1.0000 Avg: 0.1650
- Index: [U3,Ano2]
- Tree Node: StageTwoLow Values: 1.0000 0.0000 0.0000 0.0000 1.0000 -0.0000 Max-Min: 1.0000 Avg: 0.3350
- Index: [U5,Ano2]
- Tree Node: StageTwoLow Values: -0.0000 1.0000 1.0000 0.0000 0.0000 -0.0000 Max-Min: 1.0000 Avg: 0.3300
- Index: [U6,Ano2]
- Tree Node: StageTwoLow Values: -0.0000 0.0000 0.0000 1.0000 0.0000 0.0000 Max-Min: 1.0000 Avg: 0.1650
- Index: [U7,Ano2]
- Tree Node: StageTwoLow Values: 1.0000 0.0000 1.0000 0.0000 0.0000 0.0000 Max-Min: 1.0000 Avg: 0.3300
- Index: [U8,Ano2]
- Tree Node: StageTwoLow Values: 0.0000 0.0000 0.0000 1.0000 0.0000 -0.0000 Max-Min: 1.0000 Avg: 0.1650
- Cost Variable: AnoProfit[Ano2]
- Tree Node: StageTwoHigh (Scenarios: ForestChile1 ForestChile2 ForestChile3 ForestChile4 ForestChile5 ForestChile6 )
- Values: 2073947.75102367810.25202167062.95702382047.43302478463.45202426489.0370 Max-Min: 404515.7010 Avg: 2346152.3161
- Tree Node: StageTwoMedium (Scenarios: ForestChile7 ForestChile8 ForestChile9 ForestChile10 ForestChile11 ForestChile12 )
- Values: 705413.86201165795.81201191750.95251210386.42001206393.92101203601.9590 Max-Min: 504972.5580 Avg: 1114801.5623
- Tree Node: StageTwoLow (Scenarios: ForestChile13 ForestChile14 ForestChile15 ForestChile16 ForestChile17 ForestChile18 )
- Values: 370412.7390 401743.2330 412297.6140 414575.4600 433229.1750 453589.5960 Max-Min: 83176.8570 Avg: 414598.9837
- Stage: Ano3Stage
- (Scenarios: ForestChile1 ForestChile2 )
- Variable: f
- Index: [C01,C09,Ano3]
- Tree Node: StageThreeHighHigh Values: 7312.4000 7312.4000 Max-Min: 0.0000 Avg: 7312.4000
- Index: [C02,C03,Ano3]
- Tree Node: StageThreeHighHigh Values: 13032.6000 14701.8000 Max-Min: 1669.2000 Avg: 14367.9600
- Index: [C03,E1,Ano3]
- Tree Node: StageThreeHighHigh Values: 13032.6000 14701.8000 Max-Min: 1669.2000 Avg: 14367.9600
- Index: [C05,I1,Ano3]
- Tree Node: StageThreeHighHigh Values: 8391.6000 22056.3000 Max-Min: 13664.7000 Avg: 19323.3600
- Index: [C08,I2,Ano3]
- Tree Node: StageThreeHighHigh Values: 10287.6000 6117.2000 Max-Min: 4170.4000 Avg: 6951.2800
- Index: [C09,E1,Ano3]
- Tree Node: StageThreeHighHigh Values: 11041.0000 7312.4000 Max-Min: 3728.6000 Avg: 8058.1200
- Index: [I1,I2,Ano3]
- Tree Node: StageThreeHighHigh Values: 8391.6000 22056.3000 Max-Min: 13664.7000 Avg: 19323.3600
- Index: [I2,I3,Ano3]
- Tree Node: StageThreeHighHigh Values: 18679.2000 28173.5000 Max-Min: 9494.3000 Avg: 26274.6400
- Index: [I3,E1,Ano3]
- Tree Node: StageThreeHighHigh Values: 18679.2000 28173.5000 Max-Min: 9494.3000 Avg: 26274.6400
- (Scenarios: ForestChile3 ForestChile4 )
- Index: [C01,C09,Ano3]
- Tree Node: StageThreeHighMedium Values: 0.0000 3656.2000 Max-Min: 3656.2000 Avg: 2559.3400
- Index: [C02,C03,Ano3]
- Tree Node: StageThreeHighMedium Values: 18422.2000 6548.4000 Max-Min: 11873.8000 Avg: 10110.5400
- Index: [C03,E1,Ano3]
- Tree Node: StageThreeHighMedium Values: 18422.2000 6548.4000 Max-Min: 11873.8000 Avg: 10110.5400
- Index: [C05,I1,Ano3]
- Tree Node: StageThreeHighMedium Values: 0.0000 14855.4000 Max-Min: 14855.4000 Avg: 10398.7800
- Index: [C06,I3,Ano3]
- Tree Node: StageThreeHighMedium Values: 10287.6000 0.0000 Max-Min: 10287.6000 Avg: 3086.2800
- Index: [C08,C06,Ano3]
- Tree Node: StageThreeHighMedium Values: 10287.6000 0.0000 Max-Min: 10287.6000 Avg: 3086.2800
- Index: [C08,I2,Ano3]
- Tree Node: StageThreeHighMedium Values: 0.0000 10287.6000 Max-Min: 10287.6000 Avg: 7201.3200
- Index: [C09,C02,Ano3]
- Tree Node: StageThreeHighMedium Values: 3656.2000 0.0000 Max-Min: 3656.2000 Avg: 1096.8600
- Index: [C09,E1,Ano3]
- Tree Node: StageThreeHighMedium Values: 0.0000 7384.8000 Max-Min: 7384.8000 Avg: 5169.3600
- Index: [I1,I2,Ano3]
- Tree Node: StageThreeHighMedium Values: 0.0000 14855.4000 Max-Min: 14855.4000 Avg: 10398.7800
- Index: [I2,I3,Ano3]
- Tree Node: StageThreeHighMedium Values: 0.0000 25143.0000 Max-Min: 25143.0000 Avg: 17600.1000
- Index: [I3,E1,Ano3]
- Tree Node: StageThreeHighMedium Values: 10287.6000 25143.0000 Max-Min: 14855.4000 Avg: 20686.3800
- (Scenarios: ForestChile5 ForestChile6 )
- Index: [C02,C03,Ano3]
- Tree Node: StageThreeHighLow Values: 10721.4000 6484.2000 Max-Min: 4237.2000 Avg: 8179.0800
- Index: [C03,E1,Ano3]
- Tree Node: StageThreeHighLow Values: 10721.4000 6484.2000 Max-Min: 4237.2000 Avg: 8179.0800
- Index: [C05,I1,Ano3]
- Tree Node: StageThreeHighLow Values: 8391.6000 22056.3000 Max-Min: 13664.7000 Avg: 16590.4200
- Index: [C08,I2,Ano3]
- Tree Node: StageThreeHighLow Values: 4170.4000 10287.6000 Max-Min: 6117.2000 Avg: 7840.7200
- Index: [C09,E1,Ano3]
- Tree Node: StageThreeHighLow Values: 3656.2000 0.0000 Max-Min: 3656.2000 Avg: 1462.4800
- Index: [I1,I2,Ano3]
- Tree Node: StageThreeHighLow Values: 8391.6000 22056.3000 Max-Min: 13664.7000 Avg: 16590.4200
- Index: [I2,I3,Ano3]
- Tree Node: StageThreeHighLow Values: 12562.0000 32343.9000 Max-Min: 19781.9000 Avg: 24431.1400
- Index: [I3,E1,Ano3]
- Tree Node: StageThreeHighLow Values: 12562.0000 32343.9000 Max-Min: 19781.9000 Avg: 24431.1400
- (Scenarios: ForestChile7 ForestChile8 )
- Index: [C01,C09,Ano3]
- Tree Node: StageThreeMediumHigh Values: 8602.8000 8602.8000 Max-Min: 0.0000 Avg: 8602.8000
- Index: [C02,C03,Ano3]
- Tree Node: StageThreeMediumHigh Values: 14766.0000 10721.4000 Max-Min: 4044.6000 Avg: 12743.7000
- Index: [C03,E1,Ano3]
- Tree Node: StageThreeMediumHigh Values: 14766.0000 18281.4000 Max-Min: 3515.4000 Avg: 16523.7000
- Index: [C04,C03,Ano3]
- Tree Node: StageThreeMediumHigh Values: 0.0000 7560.0000 Max-Min: 7560.0000 Avg: 3780.0000
- Index: [C05,I1,Ano3]
- Tree Node: StageThreeMediumHigh Values: 7200.9000 7200.9000 Max-Min: 0.0000 Avg: 7200.9000
- Index: [C08,I2,Ano3]
- Tree Node: StageThreeMediumHigh Values: 6117.2000 10287.6000 Max-Min: 4170.4000 Avg: 8202.4000
- Index: [C09,E1,Ano3]
- Tree Node: StageThreeMediumHigh Values: 15987.6000 8602.8000 Max-Min: 7384.8000 Avg: 12295.2000
- Index: [I1,I2,Ano3]
- Tree Node: StageThreeMediumHigh Values: 7200.9000 7200.9000 Max-Min: 0.0000 Avg: 7200.9000
- Index: [I2,I3,Ano3]
- Tree Node: StageThreeMediumHigh Values: 13318.1000 17488.5000 Max-Min: 4170.4000 Avg: 15403.3000
- Index: [I3,E1,Ano3]
- Tree Node: StageThreeMediumHigh Values: 13318.1000 17488.5000 Max-Min: 4170.4000 Avg: 15403.3000
- (Scenarios: ForestChile9 ForestChile10 )
- Index: [C01,C09,Ano3]
- Tree Node: StageThreeMediumMedium Values: 12259.0000 8602.8000 Max-Min: 3656.2000 Avg: 10430.9000
- Index: [C02,C03,Ano3]
- Tree Node: StageThreeMediumMedium Values: 18939.0000 6548.4000 Max-Min: 12390.6000 Avg: 12743.7000
- Index: [C03,E1,Ano3]
- Tree Node: StageThreeMediumMedium Values: 18939.0000 14422.0000 Max-Min: 4517.0000 Avg: 16680.5000
- Index: [C05,I1,Ano3]
- Tree Node: StageThreeMediumMedium Values: 8391.6000 13664.7000 Max-Min: 5273.1000 Avg: 11028.1500
- Index: [C09,E1,Ano3]
- Tree Node: StageThreeMediumMedium Values: 12259.0000 12331.4000 Max-Min: 72.4000 Avg: 12295.2000
- Index: [I1,I2,Ano3]
- Tree Node: StageThreeMediumMedium Values: 8391.6000 13664.7000 Max-Min: 5273.1000 Avg: 11028.1500
- Index: [I2,I3,Ano3]
- Tree Node: StageThreeMediumMedium Values: 8391.6000 13664.7000 Max-Min: 5273.1000 Avg: 11028.1500
- Index: [I3,E1,Ano3]
- Tree Node: StageThreeMediumMedium Values: 8391.6000 13664.7000 Max-Min: 5273.1000 Avg: 11028.1500
- (Scenarios: ForestChile11 ForestChile12 )
- Index: [C01,C09,Ano3]
- Tree Node: StageThreeMediumLow Values: 3656.2000 0.0000 Max-Min: 3656.2000 Avg: 1828.1000
- Index: [C02,C03,Ano3]
- Tree Node: StageThreeMediumLow Values: 0.0000 8217.6000 Max-Min: 8217.6000 Avg: 4108.8000
- Index: [C03,E1,Ano3]
- Tree Node: StageThreeMediumLow Values: 0.0000 8217.6000 Max-Min: 8217.6000 Avg: 4108.8000
- Index: [C05,I1,Ano3]
- Tree Node: StageThreeMediumLow Values: 15592.5000 14855.4000 Max-Min: 737.1000 Avg: 15223.9500
- Index: [C07,C08,Ano3]
- Tree Node: StageThreeMediumLow Values: 3730.0000 0.0000 Max-Min: 3730.0000 Avg: 1865.0000
- Index: [C08,I2,Ano3]
- Tree Node: StageThreeMediumLow Values: 9847.2000 0.0000 Max-Min: 9847.2000 Avg: 4923.6000
- Index: [C09,E1,Ano3]
- Tree Node: StageThreeMediumLow Values: 3656.2000 7384.8000 Max-Min: 3728.6000 Avg: 5520.5000
- Index: [I1,I2,Ano3]
- Tree Node: StageThreeMediumLow Values: 15592.5000 14855.4000 Max-Min: 737.1000 Avg: 15223.9500
- Index: [I2,I3,Ano3]
- Tree Node: StageThreeMediumLow Values: 25439.7000 14855.4000 Max-Min: 10584.3000 Avg: 20147.5500
- Index: [I3,E1,Ano3]
- Tree Node: StageThreeMediumLow Values: 25439.7000 14855.4000 Max-Min: 10584.3000 Avg: 20147.5500
- (Scenarios: ForestChile13 ForestChile14 )
- Index: [C02,C03,Ano3]
- Tree Node: StageThreeLowHigh Values: 25487.4000 31971.6000 Max-Min: 6484.2000 Avg: 28729.5000
- Index: [C03,E1,Ano3]
- Tree Node: StageThreeLowHigh Values: 25487.4000 31971.6000 Max-Min: 6484.2000 Avg: 28729.5000
- Index: [C08,I2,Ano3]
- Tree Node: StageThreeLowHigh Values: 10287.6000 4170.4000 Max-Min: 6117.2000 Avg: 7229.0000
- Index: [C09,E1,Ano3]
- Tree Node: StageThreeLowHigh Values: 3764.8000 3764.8000 Max-Min: 0.0000 Avg: 3764.8000
- Index: [I2,I3,Ano3]
- Tree Node: StageThreeLowHigh Values: 10287.6000 4170.4000 Max-Min: 6117.2000 Avg: 7229.0000
- Index: [I3,E1,Ano3]
- Tree Node: StageThreeLowHigh Values: 10287.6000 4170.4000 Max-Min: 6117.2000 Avg: 7229.0000
- (Scenarios: ForestChile15 ForestChile16 )
- Index: [C02,C03,Ano3]
- Tree Node: StageThreeLowMedium Values: 17269.8000 8217.6000 Max-Min: 9052.2000 Avg: 12743.7000
- Index: [C03,E1,Ano3]
- Tree Node: StageThreeLowMedium Values: 24829.8000 15777.6000 Max-Min: 9052.2000 Avg: 20303.7000
- Index: [C04,C03,Ano3]
- Tree Node: StageThreeLowMedium Values: 7560.0000 7560.0000 Max-Min: 0.0000 Avg: 7560.0000
- Index: [C07,C08,Ano3]
- Tree Node: StageThreeLowMedium Values: 0.0000 3730.0000 Max-Min: 3730.0000 Avg: 1865.0000
- Index: [C08,I2,Ano3]
- Tree Node: StageThreeLowMedium Values: 0.0000 3730.0000 Max-Min: 3730.0000 Avg: 1865.0000
- Index: [C09,E1,Ano3]
- Tree Node: StageThreeLowMedium Values: 0.0000 3728.6000 Max-Min: 3728.6000 Avg: 1864.3000
- Index: [I2,I3,Ano3]
- Tree Node: StageThreeLowMedium Values: 0.0000 3730.0000 Max-Min: 3730.0000 Avg: 1865.0000
- Index: [I3,E1,Ano3]
- Tree Node: StageThreeLowMedium Values: 0.0000 3730.0000 Max-Min: 3730.0000 Avg: 1865.0000
- (Scenarios: ForestChile17 ForestChile18 )
- Index: [C02,C03,Ano3]
- Tree Node: StageThreeLowLow Values: 14766.0000 10721.4000 Max-Min: 4044.6000 Avg: 12743.7000
- Index: [C03,E1,Ano3]
- Tree Node: StageThreeLowLow Values: 14766.0000 10721.4000 Max-Min: 4044.6000 Avg: 12743.7000
- Index: [C08,I2,Ano3]
- Tree Node: StageThreeLowLow Values: 6117.2000 0.0000 Max-Min: 6117.2000 Avg: 3058.6000
- Index: [C09,E1,Ano3]
- Tree Node: StageThreeLowLow Values: 0.0000 11149.6000 Max-Min: 11149.6000 Avg: 5574.8000
- Index: [I2,I3,Ano3]
- Tree Node: StageThreeLowLow Values: 6117.2000 0.0000 Max-Min: 6117.2000 Avg: 3058.6000
- Index: [I3,E1,Ano3]
- Tree Node: StageThreeLowLow Values: 6117.2000 0.0000 Max-Min: 6117.2000 Avg: 3058.6000
- (Scenarios: ForestChile1 ForestChile2 )
- Variable: z
- Index: [E1,Ano3]
- Tree Node: StageThreeHighHigh Values: 42752.8000 50187.7000 Max-Min: 7434.9000 Avg: 48700.7200
- (Scenarios: ForestChile3 ForestChile4 )
- Index: [E1,Ano3]
- Tree Node: StageThreeHighMedium Values: 28709.8000 39076.2000 Max-Min: 10366.4000 Avg: 35966.2800
- (Scenarios: ForestChile5 ForestChile6 )
- Index: [E1,Ano3]
- Tree Node: StageThreeHighLow Values: 26939.6000 38828.1000 Max-Min: 11888.5000 Avg: 34072.7000
- (Scenarios: ForestChile7 ForestChile8 )
- Index: [E1,Ano3]
- Tree Node: StageThreeMediumHigh Values: 44071.7000 44372.7000 Max-Min: 301.0000 Avg: 44222.2000
- (Scenarios: ForestChile9 ForestChile10 )
- Index: [E1,Ano3]
- Tree Node: StageThreeMediumMedium Values: 39589.6000 40418.1000 Max-Min: 828.5000 Avg: 40003.8500
- (Scenarios: ForestChile11 ForestChile12 )
- Index: [E1,Ano3]
- Tree Node: StageThreeMediumLow Values: 29095.9000 30457.8000 Max-Min: 1361.9000 Avg: 29776.8500
- (Scenarios: ForestChile13 ForestChile14 )
- Index: [E1,Ano3]
- Tree Node: StageThreeLowHigh Values: 39539.8000 39906.8000 Max-Min: 367.0000 Avg: 39723.3000
- (Scenarios: ForestChile15 ForestChile16 )
- Index: [E1,Ano3]
- Tree Node: StageThreeLowMedium Values: 24829.8000 23236.2000 Max-Min: 1593.6000 Avg: 24033.0000
- (Scenarios: ForestChile17 ForestChile18 )
- Index: [E1,Ano3]
- Tree Node: StageThreeLowLow Values: 20883.2000 21871.0000 Max-Min: 987.8000 Avg: 21377.1000
- (Scenarios: ForestChile1 ForestChile2 )
- Variable: gamma
- Index: [C01,C09,Ano3]
- Tree Node: StageThreeHighHigh Values: 0.0000 1.0000 Max-Min: 1.0000 Avg: 0.8000
- Index: [C08,I2,Ano3]
- Tree Node: StageThreeHighHigh Values: 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- (Scenarios: ForestChile3 ForestChile4 )
- Index: [C08,C06,Ano3]
- Tree Node: StageThreeHighMedium Values: 1.0000 -0.0000 Max-Min: 1.0000 Avg: 0.3000
- Index: [C08,I2,Ano3]
- Tree Node: StageThreeHighMedium Values: 0.0000 1.0000 Max-Min: 1.0000 Avg: 0.7000
- (Scenarios: ForestChile5 ForestChile6 )
- Index: [C08,I2,Ano3]
- Tree Node: StageThreeHighLow Values: 0.0000 1.0000 Max-Min: 1.0000 Avg: 0.6000
- (Scenarios: ForestChile7 ForestChile8 )
- Index: [C01,C09,Ano3]
- Tree Node: StageThreeMediumHigh Values: 1.0000 0.0000 Max-Min: 1.0000 Avg: 0.5000
- Index: [C08,I2,Ano3]
- Tree Node: StageThreeMediumHigh Values: 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- Index: [C09,E1,Ano3]
- Tree Node: StageThreeMediumHigh Values: 1.0000 0.0000 Max-Min: 1.0000 Avg: 0.5000
- (Scenarios: ForestChile9 ForestChile10 )
- Index: [C01,C09,Ano3]
- Tree Node: StageThreeMediumMedium Values: 0.0000 1.0000 Max-Min: 1.0000 Avg: 0.5000
- Index: [C09,E1,Ano3]
- Tree Node: StageThreeMediumMedium Values: 0.0000 1.0000 Max-Min: 1.0000 Avg: 0.5000
- (Scenarios: ForestChile11 ForestChile12 )
- Index: [C07,C08,Ano3]
- Tree Node: StageThreeMediumLow Values: 1.0000 0.0000 Max-Min: 1.0000 Avg: 0.5000
- Index: [C08,I2,Ano3]
- Tree Node: StageThreeMediumLow Values: 1.0000 0.0000 Max-Min: 1.0000 Avg: 0.5000
- (Scenarios: ForestChile13 ForestChile14 )
- Index: [C08,I2,Ano3]
- Tree Node: StageThreeLowHigh Values: 1.0000 0.0000 Max-Min: 1.0000 Avg: 0.5000
- (Scenarios: ForestChile15 ForestChile16 )
- Index: [C07,C08,Ano3]
- Tree Node: StageThreeLowMedium Values: 0.0000 1.0000 Max-Min: 1.0000 Avg: 0.5000
- Index: [C08,I2,Ano3]
- Tree Node: StageThreeLowMedium Values: 0.0000 1.0000 Max-Min: 1.0000 Avg: 0.5000
- (Scenarios: ForestChile17 ForestChile18 )
- Index: [C01,C09,Ano3]
- Tree Node: StageThreeLowLow Values: 0.0000 1.0000 Max-Min: 1.0000 Avg: 0.5000
- Index: [C08,I2,Ano3]
- Tree Node: StageThreeLowLow Values: 1.0000 -0.0000 Max-Min: 1.0000 Avg: 0.5000
- Index: [C09,E1,Ano3]
- Tree Node: StageThreeLowLow Values: 0.0000 1.0000 Max-Min: 1.0000 Avg: 0.5000
- (Scenarios: ForestChile1 ForestChile2 )
- Variable: delta
- Index: [U1,Ano3]
- Tree Node: StageThreeHighHigh Values: 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- Index: [U10,Ano3]
- Tree Node: StageThreeHighHigh Values: 0.0000 1.0000 Max-Min: 1.0000 Avg: 0.8000
- Index: [U14,Ano3]
- Tree Node: StageThreeHighHigh Values: 0.0000 1.0000 Max-Min: 1.0000 Avg: 0.8000
- Index: [U2,Ano3]
- Tree Node: StageThreeHighHigh Values: 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- Index: [U20,Ano3]
- Tree Node: StageThreeHighHigh Values: 1.0000 0.0000 Max-Min: 1.0000 Avg: 0.2000
- Index: [U21,Ano3]
- Tree Node: StageThreeHighHigh Values: 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- Index: [U23,Ano3]
- Tree Node: StageThreeHighHigh Values: 0.0000 1.0000 Max-Min: 1.0000 Avg: 0.8000
- Index: [U24,Ano3]
- Tree Node: StageThreeHighHigh Values: 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- Index: [U5,Ano3]
- Tree Node: StageThreeHighHigh Values: 1.0000 0.0000 Max-Min: 1.0000 Avg: 0.2000
- Index: [U6,Ano3]
- Tree Node: StageThreeHighHigh Values: 1.0000 0.0000 Max-Min: 1.0000 Avg: 0.2000
- Index: [U7,Ano3]
- Tree Node: StageThreeHighHigh Values: 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- (Scenarios: ForestChile3 ForestChile4 )
- Index: [U10,Ano3]
- Tree Node: StageThreeHighMedium Values: 1.0000 0.0000 Max-Min: 1.0000 Avg: 0.3000
- Index: [U2,Ano3]
- Tree Node: StageThreeHighMedium Values: 0.0000 1.0000 Max-Min: 1.0000 Avg: 0.7000
- Index: [U20,Ano3]
- Tree Node: StageThreeHighMedium Values: 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- Index: [U21,Ano3]
- Tree Node: StageThreeHighMedium Values: 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- Index: [U23,Ano3]
- Tree Node: StageThreeHighMedium Values: 0.0000 1.0000 Max-Min: 1.0000 Avg: 0.7000
- Index: [U24,Ano3]
- Tree Node: StageThreeHighMedium Values: 0.0000 1.0000 Max-Min: 1.0000 Avg: 0.7000
- Index: [U3,Ano3]
- Tree Node: StageThreeHighMedium Values: 1.0000 -0.0000 Max-Min: 1.0000 Avg: 0.3000
- Index: [U5,Ano3]
- Tree Node: StageThreeHighMedium Values: 0.0000 1.0000 Max-Min: 1.0000 Avg: 0.7000
- Index: [U6,Ano3]
- Tree Node: StageThreeHighMedium Values: 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- (Scenarios: ForestChile5 ForestChile6 )
- Index: [U14,Ano3]
- Tree Node: StageThreeHighLow Values: 0.0000 1.0000 Max-Min: 1.0000 Avg: 0.6000
- Index: [U20,Ano3]
- Tree Node: StageThreeHighLow Values: 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- Index: [U21,Ano3]
- Tree Node: StageThreeHighLow Values: 0.0000 1.0000 Max-Min: 1.0000 Avg: 0.6000
- Index: [U23,Ano3]
- Tree Node: StageThreeHighLow Values: 0.0000 1.0000 Max-Min: 1.0000 Avg: 0.6000
- Index: [U24,Ano3]
- Tree Node: StageThreeHighLow Values: 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- Index: [U3,Ano3]
- Tree Node: StageThreeHighLow Values: 1.0000 0.0000 Max-Min: 1.0000 Avg: 0.4000
- Index: [U7,Ano3]
- Tree Node: StageThreeHighLow Values: 0.0000 1.0000 Max-Min: 1.0000 Avg: 0.6000
- Index: [U9,Ano3]
- Tree Node: StageThreeHighLow Values: 1.0000 0.0000 Max-Min: 1.0000 Avg: 0.4000
- (Scenarios: ForestChile7 ForestChile8 )
- Index: [U10,Ano3]
- Tree Node: StageThreeMediumHigh Values: 1.0000 0.0000 Max-Min: 1.0000 Avg: 0.5000
- Index: [U14,Ano3]
- Tree Node: StageThreeMediumHigh Values: 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- Index: [U16,Ano3]
- Tree Node: StageThreeMediumHigh Values: 0.0000 1.0000 Max-Min: 1.0000 Avg: 0.5000
- Index: [U20,Ano3]
- Tree Node: StageThreeMediumHigh Values: 0.0000 1.0000 Max-Min: 1.0000 Avg: 0.5000
- Index: [U21,Ano3]
- Tree Node: StageThreeMediumHigh Values: 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- Index: [U3,Ano3]
- Tree Node: StageThreeMediumHigh Values: 1.0000 0.0000 Max-Min: 1.0000 Avg: 0.5000
- Index: [U4,Ano3]
- Tree Node: StageThreeMediumHigh Values: 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- Index: [U5,Ano3]
- Tree Node: StageThreeMediumHigh Values: 1.0000 0.0000 Max-Min: 1.0000 Avg: 0.5000
- Index: [U6,Ano3]
- Tree Node: StageThreeMediumHigh Values: 1.0000 0.0000 Max-Min: 1.0000 Avg: 0.5000
- Index: [U9,Ano3]
- Tree Node: StageThreeMediumHigh Values: 0.0000 1.0000 Max-Min: 1.0000 Avg: 0.5000
- (Scenarios: ForestChile9 ForestChile10 )
- Index: [U1,Ano3]
- Tree Node: StageThreeMediumMedium Values: 1.0000 -0.0000 Max-Min: 1.0000 Avg: 0.5000
- Index: [U10,Ano3]
- Tree Node: StageThreeMediumMedium Values: 1.0000 0.0000 Max-Min: 1.0000 Avg: 0.5000
- Index: [U12,Ano3]
- Tree Node: StageThreeMediumMedium Values: 0.0000 1.0000 Max-Min: 1.0000 Avg: 0.5000
- Index: [U14,Ano3]
- Tree Node: StageThreeMediumMedium Values: 0.0000 1.0000 Max-Min: 1.0000 Avg: 0.5000
- Index: [U23,Ano3]
- Tree Node: StageThreeMediumMedium Values: 0.0000 1.0000 Max-Min: 1.0000 Avg: 0.5000
- Index: [U24,Ano3]
- Tree Node: StageThreeMediumMedium Values: 1.0000 -0.0000 Max-Min: 1.0000 Avg: 0.5000
- Index: [U4,Ano3]
- Tree Node: StageThreeMediumMedium Values: 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- Index: [U5,Ano3]
- Tree Node: StageThreeMediumMedium Values: 0.0000 1.0000 Max-Min: 1.0000 Avg: 0.5000
- Index: [U6,Ano3]
- Tree Node: StageThreeMediumMedium Values: 0.0000 1.0000 Max-Min: 1.0000 Avg: 0.5000
- Index: [U9,Ano3]
- Tree Node: StageThreeMediumMedium Values: 1.0000 -0.0000 Max-Min: 1.0000 Avg: 0.5000
- (Scenarios: ForestChile11 ForestChile12 )
- Index: [U10,Ano3]
- Tree Node: StageThreeMediumLow Values: 0.0000 1.0000 Max-Min: 1.0000 Avg: 0.5000
- Index: [U14,Ano3]
- Tree Node: StageThreeMediumLow Values: 1.0000 0.0000 Max-Min: 1.0000 Avg: 0.5000
- Index: [U2,Ano3]
- Tree Node: StageThreeMediumLow Values: 1.0000 0.0000 Max-Min: 1.0000 Avg: 0.5000
- Index: [U21,Ano3]
- Tree Node: StageThreeMediumLow Values: 1.0000 0.0000 Max-Min: 1.0000 Avg: 0.5000
- Index: [U22,Ano3]
- Tree Node: StageThreeMediumLow Values: 1.0000 0.0000 Max-Min: 1.0000 Avg: 0.5000
- Index: [U23,Ano3]
- Tree Node: StageThreeMediumLow Values: 0.0000 1.0000 Max-Min: 1.0000 Avg: 0.5000
- Index: [U24,Ano3]
- Tree Node: StageThreeMediumLow Values: 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- Index: [U3,Ano3]
- Tree Node: StageThreeMediumLow Values: 0.0000 1.0000 Max-Min: 1.0000 Avg: 0.5000
- Index: [U5,Ano3]
- Tree Node: StageThreeMediumLow Values: 0.0000 1.0000 Max-Min: 1.0000 Avg: 0.5000
- (Scenarios: ForestChile13 ForestChile14 )
- Index: [U10,Ano3]
- Tree Node: StageThreeLowHigh Values: 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- Index: [U20,Ano3]
- Tree Node: StageThreeLowHigh Values: 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- Index: [U21,Ano3]
- Tree Node: StageThreeLowHigh Values: 1.0000 0.0000 Max-Min: 1.0000 Avg: 0.5000
- Index: [U6,Ano3]
- Tree Node: StageThreeLowHigh Values: 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- Index: [U7,Ano3]
- Tree Node: StageThreeLowHigh Values: -0.0000 1.0000 Max-Min: 1.0000 Avg: 0.5000
- Index: [U8,Ano3]
- Tree Node: StageThreeLowHigh Values: 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- Index: [U9,Ano3]
- Tree Node: StageThreeLowHigh Values: 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- (Scenarios: ForestChile15 ForestChile16 )
- Index: [U10,Ano3]
- Tree Node: StageThreeLowMedium Values: 0.0000 1.0000 Max-Min: 1.0000 Avg: 0.5000
- Index: [U16,Ano3]
- Tree Node: StageThreeLowMedium Values: 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- Index: [U22,Ano3]
- Tree Node: StageThreeLowMedium Values: 0.0000 1.0000 Max-Min: 1.0000 Avg: 0.5000
- Index: [U5,Ano3]
- Tree Node: StageThreeLowMedium Values: 0.0000 1.0000 Max-Min: 1.0000 Avg: 0.5000
- Index: [U6,Ano3]
- Tree Node: StageThreeLowMedium Values: 1.0000 0.0000 Max-Min: 1.0000 Avg: 0.5000
- Index: [U9,Ano3]
- Tree Node: StageThreeLowMedium Values: 1.0000 0.0000 Max-Min: 1.0000 Avg: 0.5000
- (Scenarios: ForestChile17 ForestChile18 )
- Index: [U10,Ano3]
- Tree Node: StageThreeLowLow Values: 1.0000 0.0000 Max-Min: 1.0000 Avg: 0.5000
- Index: [U21,Ano3]
- Tree Node: StageThreeLowLow Values: 1.0000 -0.0000 Max-Min: 1.0000 Avg: 0.5000
- Index: [U3,Ano3]
- Tree Node: StageThreeLowLow Values: 0.0000 1.0000 Max-Min: 1.0000 Avg: 0.5000
- Index: [U5,Ano3]
- Tree Node: StageThreeLowLow Values: 0.0000 1.0000 Max-Min: 1.0000 Avg: 0.5000
- Index: [U6,Ano3]
- Tree Node: StageThreeLowLow Values: 1.0000 -0.0000 Max-Min: 1.0000 Avg: 0.5000
- Index: [U8,Ano3]
- Tree Node: StageThreeLowLow Values: 0.0000 1.0000 Max-Min: 1.0000 Avg: 0.5000
- Index: [U9,Ano3]
- Tree Node: StageThreeLowLow Values: 0.0000 1.0000 Max-Min: 1.0000 Avg: 0.5000
- Cost Variable: AnoProfit[Ano3]
- Tree Node: StageThreeHighHigh (Scenarios: ForestChile1 ForestChile2 )
- Values: 2064634.41782417511.0595 Max-Min: 352876.6417 Avg: 2346935.7312
- Tree Node: StageThreeHighMedium (Scenarios: ForestChile3 ForestChile4 )
- Values: 1148018.47561570394.7333 Max-Min: 422376.2577 Avg: 1443681.8560
- Tree Node: StageThreeHighLow (Scenarios: ForestChile5 ForestChile6 )
- Values: 869086.09801243528.3580 Max-Min: 374442.2600 Avg: 1093751.4540
- Tree Node: StageThreeMediumHigh (Scenarios: ForestChile7 ForestChile8 )
- Values: 1664626.78401682826.4877 Max-Min: 18199.7037 Avg: 1673726.6358
- Tree Node: StageThreeMediumMedium (Scenarios: ForestChile9 ForestChile10 )
- Values: 1266068.41021316661.6298 Max-Min: 50593.2196 Avg: 1291365.0200
- Tree Node: StageThreeMediumLow (Scenarios: ForestChile11 ForestChile12 )
- Values: 569732.7982 613887.1821 Max-Min: 44154.3838 Avg: 591809.9902
- Tree Node: StageThreeLowHigh (Scenarios: ForestChile13 ForestChile14 )
- Values: 1277306.72281291190.4144 Max-Min: 13883.6916 Avg: 1284248.5686
- Tree Node: StageThreeLowMedium (Scenarios: ForestChile15 ForestChile16 )
- Values: 510640.2162 474372.9036 Max-Min: 36267.3126 Avg: 492506.5599
- Tree Node: StageThreeLowLow (Scenarios: ForestChile17 ForestChile18 )
- Values: 283633.0182 304347.2535 Max-Min: 20714.2353 Avg: 293990.1358
-Final costs:
-Scenario Tree Costs
-***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise
-----------------------------------------------------
-Tree Nodes:
-
- Name=Leaf1
- Stage=Ano4Stage
- Parent=StageThreeHighHigh
- Conditional probability=0.2000
- Children:
- None
- Scenarios:
- ForestChile1
- Expected cost of (sub)tree rooted at node=1343400.7225
-
- Name=Leaf10
- Stage=Ano4Stage
- Parent=StageThreeMediumMedium
- Conditional probability=0.5000
- Children:
- None
- Scenarios:
- ForestChile10
- Expected cost of (sub)tree rooted at node=792893.1758
-
- Name=Leaf11
- Stage=Ano4Stage
- Parent=StageThreeMediumLow
- Conditional probability=0.5000
- Children:
- None
- Scenarios:
- ForestChile11
- Expected cost of (sub)tree rooted at node=869507.9630
-
- Name=Leaf12
- Stage=Ano4Stage
- Parent=StageThreeMediumLow
- Conditional probability=0.5000
- Children:
- None
- Scenarios:
- ForestChile12
- Expected cost of (sub)tree rooted at node=639733.6329
-
- Name=Leaf13
- Stage=Ano4Stage
- Parent=StageThreeLowHigh
- Conditional probability=0.5000
- Children:
- None
- Scenarios:
- ForestChile13
- Expected cost of (sub)tree rooted at node=472128.9768
-
- Name=Leaf14
- Stage=Ano4Stage
- Parent=StageThreeLowHigh
- Conditional probability=0.5000
- Children:
- None
- Scenarios:
- ForestChile14
- Expected cost of (sub)tree rooted at node=299295.2803
-
- Name=Leaf15
- Stage=Ano4Stage
- Parent=StageThreeLowMedium
- Conditional probability=0.5000
- Children:
- None
- Scenarios:
- ForestChile15
- Expected cost of (sub)tree rooted at node=447589.9620
-
- Name=Leaf16
- Stage=Ano4Stage
- Parent=StageThreeLowMedium
- Conditional probability=0.5000
- Children:
- None
- Scenarios:
- ForestChile16
- Expected cost of (sub)tree rooted at node=302353.2749
-
- Name=Leaf17
- Stage=Ano4Stage
- Parent=StageThreeLowLow
- Conditional probability=0.5000
- Children:
- None
- Scenarios:
- ForestChile17
- Expected cost of (sub)tree rooted at node=361387.9282
-
- Name=Leaf18
- Stage=Ano4Stage
- Parent=StageThreeLowLow
- Conditional probability=0.5000
- Children:
- None
- Scenarios:
- ForestChile18
- Expected cost of (sub)tree rooted at node=160255.6326
-
- Name=Leaf2
- Stage=Ano4Stage
- Parent=StageThreeHighHigh
- Conditional probability=0.8000
- Children:
- None
- Scenarios:
- ForestChile2
- Expected cost of (sub)tree rooted at node=749301.5492
-
- Name=Leaf3
- Stage=Ano4Stage
- Parent=StageThreeHighMedium
- Conditional probability=0.3000
- Children:
- None
- Scenarios:
- ForestChile3
- Expected cost of (sub)tree rooted at node=1817221.5115
-
- Name=Leaf4
- Stage=Ano4Stage
- Parent=StageThreeHighMedium
- Conditional probability=0.7000
- Children:
- None
- Scenarios:
- ForestChile4
- Expected cost of (sub)tree rooted at node=860391.0343
-
- Name=Leaf5
- Stage=Ano4Stage
- Parent=StageThreeHighLow
- Conditional probability=0.4000
- Children:
- None
- Scenarios:
- ForestChile5
- Expected cost of (sub)tree rooted at node=1394382.9584
-
- Name=Leaf6
- Stage=Ano4Stage
- Parent=StageThreeHighLow
- Conditional probability=0.6000
- Children:
- None
- Scenarios:
- ForestChile6
- Expected cost of (sub)tree rooted at node=709942.1831
-
- Name=Leaf7
- Stage=Ano4Stage
- Parent=StageThreeMediumHigh
- Conditional probability=0.5000
- Children:
- None
- Scenarios:
- ForestChile7
- Expected cost of (sub)tree rooted at node=1738355.4374
-
- Name=Leaf8
- Stage=Ano4Stage
- Parent=StageThreeMediumHigh
- Conditional probability=0.5000
- Children:
- None
- Scenarios:
- ForestChile8
- Expected cost of (sub)tree rooted at node=942755.3534
-
- Name=Leaf9
- Stage=Ano4Stage
- Parent=StageThreeMediumMedium
- Conditional probability=0.5000
- Children:
- None
- Scenarios:
- ForestChile9
- Expected cost of (sub)tree rooted at node=1117134.7924
-
- Name=RootNode
- Stage=Ano1Stage
- Parent=None
- Conditional probability=1.0000
- Children:
- StageTwoHigh
- StageTwoLow
- StageTwoMedium
- Scenarios:
- ForestChile1
- ForestChile10
- ForestChile11
- ForestChile12
- ForestChile13
- ForestChile14
- ForestChile15
- ForestChile16
- ForestChile17
- ForestChile18
- ForestChile2
- ForestChile3
- ForestChile4
- ForestChile5
- ForestChile6
- ForestChile7
- ForestChile8
- ForestChile9
- Expected cost of (sub)tree rooted at node=5449635.7923
-
- Name=StageThreeHighHigh
- Stage=Ano3Stage
- Parent=StageTwoHigh
- Conditional probability=0.4500
- Children:
- Leaf1
- Leaf2
- Scenarios:
- ForestChile1
- ForestChile2
- Expected cost of (sub)tree rooted at node=2932755.8017
-
- Name=StageThreeHighLow
- Stage=Ano3Stage
- Parent=StageTwoHigh
- Conditional probability=0.2500
- Children:
- Leaf5
- Leaf6
- Scenarios:
- ForestChile5
- ForestChile6
- Expected cost of (sub)tree rooted at node=1852804.5912
-
- Name=StageThreeHighMedium
- Stage=Ano3Stage
- Parent=StageTwoHigh
- Conditional probability=0.3000
- Children:
- Leaf3
- Leaf4
- Scenarios:
- ForestChile3
- ForestChile4
- Expected cost of (sub)tree rooted at node=2295458.6531
-
- Name=StageThreeLowHigh
- Stage=Ano3Stage
- Parent=StageTwoLow
- Conditional probability=0.3300
- Children:
- Leaf13
- Leaf14
- Scenarios:
- ForestChile13
- ForestChile14
- Expected cost of (sub)tree rooted at node=1663018.8513
-
- Name=StageThreeLowLow
- Stage=Ano3Stage
- Parent=StageTwoLow
- Conditional probability=0.3400
- Children:
- Leaf17
- Leaf18
- Scenarios:
- ForestChile17
- ForestChile18
- Expected cost of (sub)tree rooted at node=544454.7986
-
- Name=StageThreeLowMedium
- Stage=Ano3Stage
- Parent=StageTwoLow
- Conditional probability=0.3300
- Children:
- Leaf15
- Leaf16
- Scenarios:
- ForestChile15
- ForestChile16
- Expected cost of (sub)tree rooted at node=885611.8346
-
- Name=StageThreeMediumHigh
- Stage=Ano3Stage
- Parent=StageTwoMedium
- Conditional probability=0.3300
- Children:
- Leaf7
- Leaf8
- Scenarios:
- ForestChile7
- ForestChile8
- Expected cost of (sub)tree rooted at node=3005182.1794
-
- Name=StageThreeMediumLow
- Stage=Ano3Stage
- Parent=StageTwoMedium
- Conditional probability=0.3400
- Children:
- Leaf11
- Leaf12
- Scenarios:
- ForestChile11
- ForestChile12
- Expected cost of (sub)tree rooted at node=1324353.5962
-
- Name=StageThreeMediumMedium
- Stage=Ano3Stage
- Parent=StageTwoMedium
- Conditional probability=0.3300
- Children:
- Leaf10
- Leaf9
- Scenarios:
- ForestChile10
- ForestChile9
- Expected cost of (sub)tree rooted at node=2221082.3943
-
- Name=StageTwoHigh
- Stage=Ano2Stage
- Parent=RootNode
- Conditional probability=0.7000
- Children:
- StageThreeHighHigh
- StageThreeHighLow
- StageThreeHighMedium
- Scenarios:
- ForestChile1
- ForestChile2
- ForestChile3
- ForestChile4
- ForestChile5
- ForestChile6
- Expected cost of (sub)tree rooted at node=4545526.6055
-
- Name=StageTwoLow
- Stage=Ano2Stage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- StageThreeLowHigh
- StageThreeLowLow
- StageThreeLowMedium
- Scenarios:
- ForestChile13
- ForestChile14
- ForestChile15
- ForestChile16
- ForestChile17
- ForestChile18
- Expected cost of (sub)tree rooted at node=1396575.4969
-
- Name=StageTwoMedium
- Stage=Ano2Stage
- Parent=RootNode
- Conditional probability=0.2000
- Children:
- StageThreeMediumHigh
- StageThreeMediumLow
- StageThreeMediumMedium
- Scenarios:
- ForestChile10
- ForestChile11
- ForestChile12
- ForestChile7
- ForestChile8
- ForestChile9
- Expected cost of (sub)tree rooted at node=2880361.3940
-
-----------------------------------------------------
-Scenarios:
-
- Name=ForestChile1
- Probability=0.0630
- Leaf Node=Leaf1
- Tree node sequence:
- RootNode
- StageTwoHigh
- StageThreeHighHigh
- Leaf1
- Stage= Ano1Stage Cost=1552037.3400
- Stage= Ano2Stage Cost=2073947.7510
- Stage= Ano3Stage Cost=2064634.4178
- Stage= Ano4Stage Cost=1343400.7225
- Total scenario cost=7034020.2313
-
- Name=ForestChile10
- Probability=0.0330
- Leaf Node=Leaf10
- Tree node sequence:
- RootNode
- StageTwoMedium
- StageThreeMediumMedium
- Leaf10
- Stage= Ano1Stage Cost=1632161.7000
- Stage= Ano2Stage Cost=1210386.4200
- Stage= Ano3Stage Cost=1316661.6298
- Stage= Ano4Stage Cost=792893.1758
- Total scenario cost=4952102.9257
-
- Name=ForestChile11
- Probability=0.0340
- Leaf Node=Leaf11
- Tree node sequence:
- RootNode
- StageTwoMedium
- StageThreeMediumLow
- Leaf11
- Stage= Ano1Stage Cost=1691184.5800
- Stage= Ano2Stage Cost=1206393.9210
- Stage= Ano3Stage Cost=569732.7982
- Stage= Ano4Stage Cost=869507.9630
- Total scenario cost=4336819.2623
-
- Name=ForestChile12
- Probability=0.0340
- Leaf Node=Leaf12
- Tree node sequence:
- RootNode
- StageTwoMedium
- StageThreeMediumLow
- Leaf12
- Stage= Ano1Stage Cost=1681215.7800
- Stage= Ano2Stage Cost=1203601.9590
- Stage= Ano3Stage Cost=613887.1821
- Stage= Ano4Stage Cost=639733.6329
- Total scenario cost=4138438.5540
-
- Name=ForestChile13
- Probability=0.0165
- Leaf Node=Leaf13
- Tree node sequence:
- RootNode
- StageTwoLow
- StageThreeLowHigh
- Leaf13
- Stage= Ano1Stage Cost=1679087.5600
- Stage= Ano2Stage Cost=370412.7390
- Stage= Ano3Stage Cost=1277306.7228
- Stage= Ano4Stage Cost=472128.9768
- Total scenario cost=3798935.9986
-
- Name=ForestChile14
- Probability=0.0165
- Leaf Node=Leaf14
- Tree node sequence:
- RootNode
- StageTwoLow
- StageThreeLowHigh
- Leaf14
- Stage= Ano1Stage Cost=1696849.5000
- Stage= Ano2Stage Cost=401743.2330
- Stage= Ano3Stage Cost=1291190.4144
- Stage= Ano4Stage Cost=299295.2803
- Total scenario cost=3689078.4277
-
- Name=ForestChile15
- Probability=0.0165
- Leaf Node=Leaf15
- Tree node sequence:
- RootNode
- StageTwoLow
- StageThreeLowMedium
- Leaf15
- Stage= Ano1Stage Cost=1696849.5000
- Stage= Ano2Stage Cost=412297.6140
- Stage= Ano3Stage Cost=510640.2162
- Stage= Ano4Stage Cost=447589.9620
- Total scenario cost=3067377.2922
-
- Name=ForestChile16
- Probability=0.0165
- Leaf Node=Leaf16
- Tree node sequence:
- RootNode
- StageTwoLow
- StageThreeLowMedium
- Leaf16
- Stage= Ano1Stage Cost=1696849.5000
- Stage= Ano2Stage Cost=414575.4600
- Stage= Ano3Stage Cost=474372.9036
- Stage= Ano4Stage Cost=302353.2749
- Total scenario cost=2888151.1385
-
- Name=ForestChile17
- Probability=0.0170
- Leaf Node=Leaf17
- Tree node sequence:
- RootNode
- StageTwoLow
- StageThreeLowLow
- Leaf17
- Stage= Ano1Stage Cost=1656959.2600
- Stage= Ano2Stage Cost=433229.1750
- Stage= Ano3Stage Cost=283633.0182
- Stage= Ano4Stage Cost=361387.9282
- Total scenario cost=2735209.3814
-
- Name=ForestChile18
- Probability=0.0170
- Leaf Node=Leaf18
- Tree node sequence:
- RootNode
- StageTwoLow
- StageThreeLowLow
- Leaf18
- Stage= Ano1Stage Cost=1665040.0800
- Stage= Ano2Stage Cost=453589.5960
- Stage= Ano3Stage Cost=304347.2535
- Stage= Ano4Stage Cost=160255.6326
- Total scenario cost=2583232.5621
-
- Name=ForestChile2
- Probability=0.2520
- Leaf Node=Leaf2
- Tree node sequence:
- RootNode
- StageTwoHigh
- StageThreeHighHigh
- Leaf2
- Stage= Ano1Stage Cost=1384678.4500
- Stage= Ano2Stage Cost=2367810.2520
- Stage= Ano3Stage Cost=2417511.0595
- Stage= Ano4Stage Cost=749301.5492
- Total scenario cost=6919301.3108
-
- Name=ForestChile3
- Probability=0.0630
- Leaf Node=Leaf3
- Tree node sequence:
- RootNode
- StageTwoHigh
- StageThreeHighMedium
- Leaf3
- Stage= Ano1Stage Cost=1388753.9800
- Stage= Ano2Stage Cost=2167062.9570
- Stage= Ano3Stage Cost=1148018.4756
- Stage= Ano4Stage Cost=1817221.5115
- Total scenario cost=6521056.9241
-
- Name=ForestChile4
- Probability=0.1470
- Leaf Node=Leaf4
- Tree node sequence:
- RootNode
- StageTwoHigh
- StageThreeHighMedium
- Leaf4
- Stage= Ano1Stage Cost=1562006.1400
- Stage= Ano2Stage Cost=2382047.4330
- Stage= Ano3Stage Cost=1570394.7333
- Stage= Ano4Stage Cost=860391.0343
- Total scenario cost=6374839.3406
-
- Name=ForestChile5
- Probability=0.0700
- Leaf Node=Leaf5
- Tree node sequence:
- RootNode
- StageTwoHigh
- StageThreeHighLow
- Leaf5
- Stage= Ano1Stage Cost=1566112.4200
- Stage= Ano2Stage Cost=2478463.4520
- Stage= Ano3Stage Cost=869086.0980
- Stage= Ano4Stage Cost=1394382.9584
- Total scenario cost=6308044.9284
-
- Name=ForestChile6
- Probability=0.1050
- Leaf Node=Leaf6
- Tree node sequence:
- RootNode
- StageTwoHigh
- StageThreeHighLow
- Leaf6
- Stage= Ano1Stage Cost=1676809.2000
- Stage= Ano2Stage Cost=2426489.0370
- Stage= Ano3Stage Cost=1243528.3580
- Stage= Ano4Stage Cost=709942.1831
- Total scenario cost=6056768.7781
-
- Name=ForestChile7
- Probability=0.0330
- Leaf Node=Leaf7
- Tree node sequence:
- RootNode
- StageTwoMedium
- StageThreeMediumHigh
- Leaf7
- Stage= Ano1Stage Cost=1654917.3400
- Stage= Ano2Stage Cost=705413.8620
- Stage= Ano3Stage Cost=1664626.7840
- Stage= Ano4Stage Cost=1738355.4374
- Total scenario cost=5763313.4234
-
- Name=ForestChile8
- Probability=0.0330
- Leaf Node=Leaf8
- Tree node sequence:
- RootNode
- StageTwoMedium
- StageThreeMediumHigh
- Leaf8
- Stage= Ano1Stage Cost=1696849.5000
- Stage= Ano2Stage Cost=1165795.8120
- Stage= Ano3Stage Cost=1682826.4877
- Stage= Ano4Stage Cost=942755.3534
- Total scenario cost=5488227.1530
-
- Name=ForestChile9
- Probability=0.0330
- Leaf Node=Leaf9
- Tree node sequence:
- RootNode
- StageTwoMedium
- StageThreeMediumMedium
- Leaf9
- Stage= Ano1Stage Cost=1696849.5000
- Stage= Ano2Stage Cost=1191750.9525
- Stage= Ano3Stage Cost=1266068.4102
- Stage= Ano4Stage Cost=1117134.7924
- Total scenario cost=5271803.6551
-
-----------------------------------------------------
-***WARNING***: PH exiting with fixed or freed variables in the scenario tree queue whose statuses have not been pushed to the scenario instances. This is because these requests were placed in the queue after the most recent solve. If these statuses are pushed to the scenario instances, a new solution should be obtained in order to reflect accurate solution data within the scenario tree. This warning can be safely ignored in most cases.
-
-Total PH execution time=2.91 seconds
-
-Scenario tree solution written to file=ph_solution.json
-Shutting down Pyro solver components
-Dispatcher received request to shut down - initiating...
-
-Total execution time=7.74 seconds
-Name Server gracefully stopped.
-Lost connection to dispatch server - shutting down...
diff --git a/pyomo/pysp/tests/examples/baselines/TestPHForestryUnequalProbsSerial.test1.baseline b/pyomo/pysp/tests/examples/baselines/TestPHForestryUnequalProbsSerial.test1.baseline
deleted file mode 100644
index d6194acc8dc..00000000000
--- a/pyomo/pysp/tests/examples/baselines/TestPHForestryUnequalProbsSerial.test1.baseline
+++ /dev/null
@@ -1,1326 +0,0 @@
-User-defined PH extension module=pyomo.pysp.plugins.phhistoryextension already imported - skipping
-Trying to import module=/Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/examples/pysp/forestry/config/rhosetter.py
-Module successfully loaded
-Trying to import module=/Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/examples/pysp/forestry/config/boundsetter.py
-Module successfully loaded
-Initializing PH
-
-Executing user rho setter callback function
-Executing user bound setter callback function
-WW PH Extension: Loading user-specified configuration from file=/Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/examples/pysp/forestry/config/wwph.cfg
-WW PH Extension: Loading variable suffixes from file=/Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/examples/pysp/forestry/config/wwph-nb.suffixes
-WW PH Extension: Setting mipgap to 0.0210000, as specified in the configuration file
-User-defined PH solution writer module=pyomo.pysp.plugins.jsonsolutionwriter already imported - skipping
-Starting PH
-
-Initiating PH iteration=0
-Sub-problem solve time statistics - Min: 0.02 Avg: 0.11 Max: 0.26 (seconds)
-Number of discrete variables fixed=0 (total=507)
-Number of continuous variables fixed=0 (total=273)
-Convergence metric= 0.0906 First stage cost avg=1626400.6294 Max-Min=312171.05
-Cumulative run-time=2.52 seconds
-Number of discrete variables fixed before final plugin calls=0 (total=507)
-Number of continuous variables fixed before final plugin calls=0 (total=273)
-PH algorithm history written to file=ph_history.json
-PH complete
-Convergence history:
-Iteration Metric Value
- 0 0.0906
-
-***********************************************************************************************
->>>THE EXPECTED SUM OF THE STAGE COST VARIABLES=5449635.79233<<<
->>>***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise<<<
-***********************************************************************************************
-Final number of discrete variables fixed=0 (total=507)
-Final number of continuous variables fixed=0 (total=273)
-Final variable values:
- Stage: Ano1Stage
- (Scenarios: ForestChile1 ForestChile2 ForestChile3 ForestChile4 ForestChile5 ForestChile6 ForestChile7 ForestChile8 ForestChile9 ForestChile10 ForestChile11 ForestChile12 ForestChile13 ForestChile14 ForestChile15 ForestChile16 ForestChile17 ForestChile18 )
- Variable: f
- Index: [C02,C03,Ano1] Values: 0.0000 3656.2000 3764.8000 0.0000 6484.2000 10721.4000 0.0000 0.0000 0.0000 10721.4000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 6484.2000 6484.2000 Max-Min: 10721.4000 Avg: 3312.4548
- Index: [C03,E1,Ano1] Values: 21047.0000 17383.2000 17491.8000 21287.0000 21917.8000 24448.4000 28847.0000 21047.0000 21047.0000 23894.8000 28847.0000 28607.0000 30313.6000 21047.0000 21047.0000 21047.0000 28924.2000 34777.6000 Max-Min: 17394.4000 Avg: 21746.9767
- Index: [C04,C03,Ano1] Values: 7320.0000 0.0000 0.0000 7560.0000 7560.0000 0.0000 15120.0000 7320.0000 7320.0000 7320.0000 15120.0000 14880.0000 22440.0000 7320.0000 7320.0000 7320.0000 22440.0000 22440.0000 Max-Min: 22440.0000 Avg: 5840.8800
- Index: [C06,I3,Ano1] Values: 15285.2000 15285.2000 15285.2000 15285.2000 15285.2000 15285.2000 10105.2000 15285.2000 15285.2000 9510.8000 10954.4000 10954.4000 9510.8000 15285.2000 15285.2000 15285.2000 10954.4000 5180.0000 Max-Min: 10105.2000 Avg: 14288.5208
- Index: [C08,I2,Ano1] Values: 0.0000 -0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 6117.2000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 Max-Min: 6117.2000 Avg: 201.8676
- Index: [C09,C02,Ano1] Values: 0.0000 3656.2000 3764.8000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 Max-Min: 3764.8000 Avg: 1158.5448
- Index: [C09,E1,Ano1] Values: 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 3656.2000 3656.2000 0.0000 0.0000 0.0000 0.0000 3656.2000 3656.2000 3656.2000 0.0000 0.0000 Max-Min: 3656.2000 Avg: 422.2911
- Index: [I2,I3,Ano1] Values: 0.0000 -0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 6117.2000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 Max-Min: 6117.2000 Avg: 201.8676
- Index: [I3,E1,Ano1] Values: 15285.2000 15285.2000 15285.2000 15285.2000 15285.2000 15285.2000 10105.2000 15285.2000 15285.2000 15628.0000 10954.4000 10954.4000 9510.8000 15285.2000 15285.2000 15285.2000 10954.4000 5180.0000 Max-Min: 10448.0000 Avg: 14490.3884
- (Scenarios: ForestChile1 ForestChile2 ForestChile3 ForestChile4 ForestChile5 ForestChile6 ForestChile7 ForestChile8 ForestChile9 ForestChile10 ForestChile11 ForestChile12 ForestChile13 ForestChile14 ForestChile15 ForestChile16 ForestChile17 ForestChile18 )
- Variable: z
- Index: [E1,Ano1] Values: 36332.2000 32668.4000 32777.0000 36572.2000 37203.0000 39733.6000 38952.2000 39988.4000 39988.4000 39522.8000 39801.4000 39561.4000 39824.4000 39988.4000 39988.4000 39988.4000 39878.6000 39957.6000 Max-Min: 7320.0000 Avg: 36659.6562
- (Scenarios: ForestChile1 ForestChile2 ForestChile3 ForestChile4 ForestChile5 ForestChile6 ForestChile7 ForestChile8 ForestChile9 ForestChile10 ForestChile11 ForestChile12 ForestChile13 ForestChile14 ForestChile15 ForestChile16 ForestChile17 ForestChile18 )
- Variable: gamma
- Index: [C01,C09,Ano1] Values: 0.0000 0.0000 0.0000 0.0000 0.0000 -0.0000 0.0000 1.0000 1.0000 0.0000 0.0000 0.0000 -0.0000 1.0000 1.0000 1.0000 0.0000 -0.0000 Max-Min: 1.0000 Avg: 0.1155
- Index: [C04,C03,Ano1] Values: 1.0000 0.0000 0.0000 1.0000 1.0000 0.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 Max-Min: 1.0000 Avg: 0.5800
- Index: [C06,I3,Ano1] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- Index: [C08,I2,Ano1] Values: -0.0000 0.0000 0.0000 -0.0000 0.0000 -0.0000 0.0000 0.0000 0.0000 1.0000 0.0000 0.0000 -0.0000 0.0000 0.0000 0.0000 0.0000 -0.0000 Max-Min: 1.0000 Avg: 0.0330
- Index: [C09,C02,Ano1] Values: -0.0000 1.0000 1.0000 -0.0000 0.0000 -0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 -0.0000 Max-Min: 1.0000 Avg: 0.3150
- Index: [C09,E1,Ano1] Values: -0.0000 0.0000 0.0000 -0.0000 0.0000 -0.0000 0.0000 1.0000 1.0000 0.0000 0.0000 0.0000 -0.0000 1.0000 1.0000 1.0000 0.0000 0.0000 Max-Min: 1.0000 Avg: 0.1155
- (Scenarios: ForestChile1 ForestChile2 ForestChile3 ForestChile4 ForestChile5 ForestChile6 ForestChile7 ForestChile8 ForestChile9 ForestChile10 ForestChile11 ForestChile12 ForestChile13 ForestChile14 ForestChile15 ForestChile16 ForestChile17 ForestChile18 )
- Variable: delta
- Index: [U11,Ano1] Values: 1.0000 0.0000 0.0000 -0.0000 0.0000 0.0000 0.0000 1.0000 1.0000 1.0000 0.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 Max-Min: 1.0000 Avg: 0.2960
- Index: [U12,Ano1] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 0.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 0.0000 0.0000 Max-Min: 1.0000 Avg: 0.9330
- Index: [U13,Ano1] Values: 1.0000 1.0000 1.0000 1.0000 0.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 -0.0000 1.0000 1.0000 1.0000 0.0000 1.0000 Max-Min: 1.0000 Avg: 0.8965
- Index: [U15,Ano1] Values: -0.0000 0.0000 0.0000 -0.0000 0.0000 0.0000 1.0000 0.0000 0.0000 0.0000 1.0000 0.0000 1.0000 0.0000 0.0000 0.0000 1.0000 1.0000 Max-Min: 1.0000 Avg: 0.1175
- Index: [U16,Ano1] Values: -0.0000 0.0000 0.0000 1.0000 1.0000 0.0000 1.0000 0.0000 0.0000 0.0000 1.0000 1.0000 1.0000 0.0000 0.0000 0.0000 1.0000 1.0000 Max-Min: 1.0000 Avg: 0.3685
- Index: [U17,Ano1] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 0.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 Max-Min: 1.0000 Avg: 0.9670
- Index: [U18,Ano1] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 0.0000 1.0000 1.0000 -0.0000 1.0000 1.0000 1.0000 1.0000 0.0000 Max-Min: 1.0000 Avg: 0.9335
- Index: [U19,Ano1] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 0.0000 0.0000 1.0000 1.0000 1.0000 1.0000 0.0000 -0.0000 Max-Min: 1.0000 Avg: 0.8980
- Index: [U21,Ano1] Values: -0.0000 0.0000 0.0000 -0.0000 0.0000 -0.0000 0.0000 0.0000 0.0000 1.0000 0.0000 0.0000 -0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 Max-Min: 1.0000 Avg: 0.0330
- Index: [U3,Ano1] Values: 0.0000 1.0000 0.0000 0.0000 0.0000 -0.0000 0.0000 1.0000 1.0000 0.0000 0.0000 0.0000 -0.0000 1.0000 1.0000 1.0000 0.0000 0.0000 Max-Min: 1.0000 Avg: 0.3675
- Index: [U7,Ano1] Values: -0.0000 0.0000 0.0000 -0.0000 1.0000 -0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 -0.0000 0.0000 0.0000 0.0000 1.0000 1.0000 Max-Min: 1.0000 Avg: 0.1040
- Index: [U8,Ano1] Values: -0.0000 0.0000 1.0000 0.0000 0.0000 -0.0000 0.0000 0.0000 0.0000 -0.0000 0.0000 0.0000 -0.0000 0.0000 0.0000 0.0000 0.0000 -0.0000 Max-Min: 1.0000 Avg: 0.0630
- Index: [U9,Ano1] Values: -0.0000 0.0000 0.0000 -0.0000 0.0000 1.0000 0.0000 0.0000 0.0000 1.0000 0.0000 0.0000 -0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 Max-Min: 1.0000 Avg: 0.1380
- Cost Variable: AnoProfit[Ano1]
- Tree Node: RootNode (Scenarios: ForestChile1 ForestChile2 ForestChile3 ForestChile4 ForestChile5 ForestChile6 ForestChile7 ForestChile8 ForestChile9 ForestChile10 ForestChile11 ForestChile12 ForestChile13 ForestChile14 ForestChile15 ForestChile16 ForestChile17 ForestChile18 )
- Values: 1552037.34001384678.45001388753.98001562006.14001566112.42001676809.20001654917.34001696849.50001696849.50001632161.70001691184.58001681215.78001679087.56001696849.50001696849.50001696849.50001656959.26001665040.0800 Max-Min: 312171.0500 Avg: 1552816.8319
- Stage: Ano2Stage
- (Scenarios: ForestChile1 ForestChile2 ForestChile3 ForestChile4 ForestChile5 ForestChile6 )
- Variable: f
- Index: [C01,C09,Ano2]
- Tree Node: StageTwoHigh Values: 0.0000 0.0000 0.0000 0.0000 8602.8000 0.0000 Max-Min: 8602.8000 Avg: 860.2800
- Index: [C02,C03,Ano2]
- Tree Node: StageTwoHigh Values: 18939.0000 17269.8000 20934.2000 25423.2000 6548.4000 14766.0000 Max-Min: 18874.8000 Avg: 18014.3280
- Index: [C03,E1,Ano2]
- Tree Node: StageTwoHigh Values: 34059.0000 39709.8000 43374.2000 40303.2000 27281.8000 37206.0000 Max-Min: 16092.4000 Avg: 38037.2680
- Index: [C04,C03,Ano2]
- Tree Node: StageTwoHigh Values: 15120.0000 22440.0000 22440.0000 14880.0000 14880.0000 22440.0000 Max-Min: 7560.0000 Avg: 19437.6000
- Index: [C08,I2,Ano2]
- Tree Node: StageTwoHigh Values: 0.0000 0.0000 0.0000 0.0000 6117.2000 0.0000 Max-Min: 6117.2000 Avg: 611.7200
- Index: [C09,C02,Ano2]
- Tree Node: StageTwoHigh Values: 0.0000 0.0000 3728.6000 0.0000 0.0000 0.0000 Max-Min: 3728.6000 Avg: 335.5740
- Index: [C09,E1,Ano2]
- Tree Node: StageTwoHigh Values: 7421.0000 7493.4000 0.0000 7421.0000 16096.2000 11149.6000 Max-Min: 16096.2000 Avg: 8205.9840
- Index: [I2,I3,Ano2]
- Tree Node: StageTwoHigh Values: 0.0000 0.0000 0.0000 0.0000 6117.2000 0.0000 Max-Min: 6117.2000 Avg: 611.7200
- Index: [I3,E1,Ano2]
- Tree Node: StageTwoHigh Values: 0.0000 0.0000 0.0000 0.0000 6117.2000 0.0000 Max-Min: 6117.2000 Avg: 611.7200
- (Scenarios: ForestChile7 ForestChile8 ForestChile9 ForestChile10 ForestChile11 ForestChile12 )
- Index: [C01,C09,Ano2]
- Tree Node: StageTwoMedium Values: 0.0000 3656.2000 0.0000 0.0000 3656.2000 0.0000 Max-Min: 3656.2000 Avg: 1224.8270
- Index: [C02,C03,Ano2]
- Tree Node: StageTwoMedium Values: 6484.2000 21250.2000 6484.2000 8217.6000 6484.2000 17269.8000 Max-Min: 14766.0000 Avg: 11040.1530
- Index: [C03,E1,Ano2]
- Tree Node: StageTwoMedium Values: 13804.2000 21250.2000 21604.2000 23337.6000 13804.2000 24829.8000 Max-Min: 11025.6000 Avg: 19767.1530
- Index: [C04,C03,Ano2]
- Tree Node: StageTwoMedium Values: 7320.0000 0.0000 15120.0000 15120.0000 7320.0000 7560.0000 Max-Min: 15120.0000 Avg: 8727.0000
- Index: [C05,I1,Ano2]
- Tree Node: StageTwoMedium Values: 0.0000 0.0000 7200.9000 0.0000 0.0000 0.0000 Max-Min: 7200.9000 Avg: 1188.1485
- Index: [C06,I3,Ano2]
- Tree Node: StageTwoMedium Values: 5180.0000 0.0000 0.0000 5774.4000 4330.8000 4330.8000 Max-Min: 5774.4000 Avg: 3279.9480
- Index: [C07,C08,Ano2]
- Tree Node: StageTwoMedium Values: 0.0000 0.0000 0.0000 3767.3000 0.0000 0.0000 Max-Min: 3767.3000 Avg: 621.6045
- Index: [C08,I2,Ano2]
- Tree Node: StageTwoMedium Values: 0.0000 0.0000 0.0000 3767.3000 0.0000 0.0000 Max-Min: 3767.3000 Avg: 621.6045
- Index: [C09,E1,Ano2]
- Tree Node: StageTwoMedium Values: 0.0000 11149.6000 3764.8000 0.0000 14805.8000 3764.8000 Max-Min: 14805.8000 Avg: 5617.8780
- Index: [I1,I2,Ano2]
- Tree Node: StageTwoMedium Values: 0.0000 0.0000 7200.9000 0.0000 0.0000 0.0000 Max-Min: 7200.9000 Avg: 1188.1485
- Index: [I2,I3,Ano2]
- Tree Node: StageTwoMedium Values: 0.0000 0.0000 7200.9000 3767.3000 0.0000 0.0000 Max-Min: 7200.9000 Avg: 1809.7530
- Index: [I3,E1,Ano2]
- Tree Node: StageTwoMedium Values: 5180.0000 0.0000 7200.9000 9541.7000 4330.8000 4330.8000 Max-Min: 9541.7000 Avg: 5089.7010
- (Scenarios: ForestChile13 ForestChile14 ForestChile15 ForestChile16 ForestChile17 ForestChile18 )
- Index: [C02,C03,Ano2]
- Tree Node: StageTwoLow Values: 6484.2000 0.0000 6484.2000 6548.4000 0.0000 0.0000 Max-Min: 6548.4000 Avg: 3220.2720
- Index: [C03,E1,Ano2]
- Tree Node: StageTwoLow Values: 6484.2000 7560.0000 14044.2000 14108.4000 13727.0000 7873.6000 Max-Min: 7624.2000 Avg: 10634.5740
- Index: [C04,C03,Ano2]
- Tree Node: StageTwoLow Values: 0.0000 7560.0000 7560.0000 7560.0000 0.0000 0.0000 Max-Min: 7560.0000 Avg: 3742.2000
- Index: [C06,I3,Ano2]
- Tree Node: StageTwoLow Values: 5774.4000 0.0000 0.0000 0.0000 0.0000 10105.2000 Max-Min: 10105.2000 Avg: 2670.6600
- Index: [C08,I2,Ano2]
- Tree Node: StageTwoLow Values: 0.0000 6117.2000 0.0000 0.0000 0.0000 0.0000 Max-Min: 6117.2000 Avg: 1009.3380
- Index: [C09,E1,Ano2]
- Tree Node: StageTwoLow Values: 3656.2000 3728.6000 3728.6000 3764.8000 3656.2000 0.0000 Max-Min: 3764.8000 Avg: 3076.4570
- Index: [I2,I3,Ano2]
- Tree Node: StageTwoLow Values: 0.0000 6117.2000 0.0000 0.0000 0.0000 0.0000 Max-Min: 6117.2000 Avg: 1009.3380
- Index: [I3,E1,Ano2]
- Tree Node: StageTwoLow Values: 5774.4000 6117.2000 0.0000 0.0000 0.0000 10105.2000 Max-Min: 10105.2000 Avg: 3679.9980
- (Scenarios: ForestChile1 ForestChile2 ForestChile3 ForestChile4 ForestChile5 ForestChile6 )
- Variable: z
- Index: [E1,Ano2]
- Tree Node: StageTwoHigh Values: 41480.0000 47203.2000 43374.2000 47724.2000 49495.2000 48355.6000 Max-Min: 8015.2000 Avg: 46854.9720
- (Scenarios: ForestChile7 ForestChile8 ForestChile9 ForestChile10 ForestChile11 ForestChile12 )
- Index: [E1,Ano2]
- Tree Node: StageTwoMedium Values: 18984.2000 32399.8000 32569.9000 32879.3000 32940.8000 32925.4000 Max-Min: 13956.6000 Avg: 30474.7320
- (Scenarios: ForestChile13 ForestChile14 ForestChile15 ForestChile16 ForestChile17 ForestChile18 )
- Index: [E1,Ano2]
- Tree Node: StageTwoLow Values: 15914.8000 17405.8000 17772.8000 17873.2000 17383.2000 17978.8000 Max-Min: 2064.0000 Avg: 17391.0290
- (Scenarios: ForestChile1 ForestChile2 ForestChile3 ForestChile4 ForestChile5 ForestChile6 )
- Variable: gamma
- Index: [C01,C09,Ano2]
- Tree Node: StageTwoHigh Values: 1.0000 0.0000 0.0000 1.0000 1.0000 1.0000 Max-Min: 1.0000 Avg: 0.5500
- Index: [C04,C03,Ano2]
- Tree Node: StageTwoHigh Values: -0.0000 1.0000 1.0000 0.0000 0.0000 1.0000 Max-Min: 1.0000 Avg: 0.6000
- Index: [C08,I2,Ano2]
- Tree Node: StageTwoHigh Values: -0.0000 0.0000 0.0000 -0.0000 1.0000 0.0000 Max-Min: 1.0000 Avg: 0.1000
- Index: [C09,E1,Ano2]
- Tree Node: StageTwoHigh Values: 1.0000 1.0000 0.0000 1.0000 1.0000 1.0000 Max-Min: 1.0000 Avg: 0.9100
- (Scenarios: ForestChile7 ForestChile8 ForestChile9 ForestChile10 ForestChile11 ForestChile12 )
- Index: [C01,C09,Ano2]
- Tree Node: StageTwoMedium Values: 0.0000 0.0000 0.0000 -0.0000 1.0000 1.0000 Max-Min: 1.0000 Avg: 0.3400
- Index: [C07,C08,Ano2]
- Tree Node: StageTwoMedium Values: 0.0000 0.0000 0.0000 1.0000 0.0000 0.0000 Max-Min: 1.0000 Avg: 0.1650
- Index: [C09,E1,Ano2]
- Tree Node: StageTwoMedium Values: 0.0000 0.0000 0.0000 -0.0000 1.0000 1.0000 Max-Min: 1.0000 Avg: 0.3400
- (Scenarios: ForestChile13 ForestChile14 ForestChile15 ForestChile16 ForestChile17 ForestChile18 )
- Index: [C01,C09,Ano2]
- Tree Node: StageTwoLow Values: 1.0000 0.0000 0.0000 0.0000 1.0000 -0.0000 Max-Min: 1.0000 Avg: 0.3350
- Index: [C08,I2,Ano2]
- Tree Node: StageTwoLow Values: -0.0000 1.0000 0.0000 0.0000 0.0000 0.0000 Max-Min: 1.0000 Avg: 0.1650
- Index: [C09,E1,Ano2]
- Tree Node: StageTwoLow Values: 1.0000 0.0000 0.0000 0.0000 1.0000 -0.0000 Max-Min: 1.0000 Avg: 0.3350
- (Scenarios: ForestChile1 ForestChile2 ForestChile3 ForestChile4 ForestChile5 ForestChile6 )
- Variable: delta
- Index: [U10,Ano2]
- Tree Node: StageTwoHigh Values: 1.0000 0.0000 0.0000 1.0000 0.0000 1.0000 Max-Min: 1.0000 Avg: 0.4500
- Index: [U11,Ano2]
- Tree Node: StageTwoHigh Values: 0.0000 1.0000 1.0000 1.0000 1.0000 1.0000 Max-Min: 1.0000 Avg: 0.9100
- Index: [U13,Ano2]
- Tree Node: StageTwoHigh Values: -0.0000 0.0000 0.0000 0.0000 1.0000 0.0000 Max-Min: 1.0000 Avg: 0.1000
- Index: [U15,Ano2]
- Tree Node: StageTwoHigh Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- Index: [U16,Ano2]
- Tree Node: StageTwoHigh Values: 1.0000 1.0000 1.0000 0.0000 0.0000 1.0000 Max-Min: 1.0000 Avg: 0.6900
- Index: [U21,Ano2]
- Tree Node: StageTwoHigh Values: -0.0000 0.0000 0.0000 -0.0000 1.0000 -0.0000 Max-Min: 1.0000 Avg: 0.1000
- Index: [U3,Ano2]
- Tree Node: StageTwoHigh Values: 1.0000 0.0000 0.0000 1.0000 0.0000 1.0000 Max-Min: 1.0000 Avg: 0.4500
- Index: [U4,Ano2]
- Tree Node: StageTwoHigh Values: -0.0000 0.0000 0.0000 -0.0000 1.0000 -0.0000 Max-Min: 1.0000 Avg: 0.1000
- Index: [U5,Ano2]
- Tree Node: StageTwoHigh Values: -0.0000 1.0000 1.0000 -0.0000 1.0000 1.0000 Max-Min: 1.0000 Avg: 0.7000
- Index: [U6,Ano2]
- Tree Node: StageTwoHigh Values: -0.0000 1.0000 0.0000 -0.0000 1.0000 1.0000 Max-Min: 1.0000 Avg: 0.6100
- Index: [U7,Ano2]
- Tree Node: StageTwoHigh Values: -0.0000 0.0000 1.0000 1.0000 0.0000 -0.0000 Max-Min: 1.0000 Avg: 0.3000
- Index: [U8,Ano2]
- Tree Node: StageTwoHigh Values: 1.0000 1.0000 0.0000 1.0000 1.0000 1.0000 Max-Min: 1.0000 Avg: 0.9100
- Index: [U9,Ano2]
- Tree Node: StageTwoHigh Values: 1.0000 1.0000 1.0000 1.0000 0.0000 -0.0000 Max-Min: 1.0000 Avg: 0.7500
- (Scenarios: ForestChile7 ForestChile8 ForestChile9 ForestChile10 ForestChile11 ForestChile12 )
- Index: [U1,Ano2]
- Tree Node: StageTwoMedium Values: 0.0000 0.0000 0.0000 -0.0000 1.0000 0.0000 Max-Min: 1.0000 Avg: 0.1700
- Index: [U10,Ano2]
- Tree Node: StageTwoMedium Values: 0.0000 1.0000 0.0000 1.0000 0.0000 0.0000 Max-Min: 1.0000 Avg: 0.3300
- Index: [U11,Ano2]
- Tree Node: StageTwoMedium Values: 1.0000 0.0000 0.0000 0.0000 1.0000 0.0000 Max-Min: 1.0000 Avg: 0.3350
- Index: [U14,Ano2]
- Tree Node: StageTwoMedium Values: 0.0000 0.0000 1.0000 -0.0000 0.0000 0.0000 Max-Min: 1.0000 Avg: 0.1650
- Index: [U15,Ano2]
- Tree Node: StageTwoMedium Values: 0.0000 0.0000 1.0000 1.0000 0.0000 1.0000 Max-Min: 1.0000 Avg: 0.5000
- Index: [U16,Ano2]
- Tree Node: StageTwoMedium Values: 0.0000 0.0000 1.0000 1.0000 0.0000 0.0000 Max-Min: 1.0000 Avg: 0.3300
- Index: [U17,Ano2]
- Tree Node: StageTwoMedium Values: 1.0000 0.0000 0.0000 0.0000 0.0000 0.0000 Max-Min: 1.0000 Avg: 0.1650
- Index: [U18,Ano2]
- Tree Node: StageTwoMedium Values: 0.0000 0.0000 0.0000 1.0000 0.0000 0.0000 Max-Min: 1.0000 Avg: 0.1650
- Index: [U19,Ano2]
- Tree Node: StageTwoMedium Values: 0.0000 0.0000 0.0000 0.0000 1.0000 1.0000 Max-Min: 1.0000 Avg: 0.3400
- Index: [U2,Ano2]
- Tree Node: StageTwoMedium Values: 0.0000 1.0000 0.0000 -0.0000 0.0000 0.0000 Max-Min: 1.0000 Avg: 0.1650
- Index: [U25,Ano2]
- Tree Node: StageTwoMedium Values: 0.0000 0.0000 0.0000 1.0000 0.0000 0.0000 Max-Min: 1.0000 Avg: 0.1650
- Index: [U3,Ano2]
- Tree Node: StageTwoMedium Values: 0.0000 0.0000 0.0000 -0.0000 1.0000 0.0000 Max-Min: 1.0000 Avg: 0.1700
- Index: [U5,Ano2]
- Tree Node: StageTwoMedium Values: 0.0000 1.0000 0.0000 -0.0000 1.0000 0.0000 Max-Min: 1.0000 Avg: 0.3350
- Index: [U6,Ano2]
- Tree Node: StageTwoMedium Values: 0.0000 1.0000 0.0000 -0.0000 0.0000 1.0000 Max-Min: 1.0000 Avg: 0.3350
- Index: [U7,Ano2]
- Tree Node: StageTwoMedium Values: 1.0000 1.0000 1.0000 -0.0000 1.0000 0.0000 Max-Min: 1.0000 Avg: 0.6650
- Index: [U8,Ano2]
- Tree Node: StageTwoMedium Values: 0.0000 1.0000 1.0000 -0.0000 1.0000 1.0000 Max-Min: 1.0000 Avg: 0.6700
- Index: [U9,Ano2]
- Tree Node: StageTwoMedium Values: 0.0000 0.0000 0.0000 -0.0000 0.0000 1.0000 Max-Min: 1.0000 Avg: 0.1700
- (Scenarios: ForestChile13 ForestChile14 ForestChile15 ForestChile16 ForestChile17 ForestChile18 )
- Index: [U12,Ano2]
- Tree Node: StageTwoLow Values: -0.0000 0.0000 0.0000 0.0000 1.0000 1.0000 Max-Min: 1.0000 Avg: 0.3400
- Index: [U13,Ano2]
- Tree Node: StageTwoLow Values: 0.0000 0.0000 0.0000 0.0000 1.0000 -0.0000 Max-Min: 1.0000 Avg: 0.1700
- Index: [U15,Ano2]
- Tree Node: StageTwoLow Values: -0.0000 1.0000 1.0000 1.0000 0.0000 -0.0000 Max-Min: 1.0000 Avg: 0.4950
- Index: [U18,Ano2]
- Tree Node: StageTwoLow Values: 1.0000 0.0000 0.0000 0.0000 0.0000 1.0000 Max-Min: 1.0000 Avg: 0.3350
- Index: [U19,Ano2]
- Tree Node: StageTwoLow Values: 0.0000 0.0000 0.0000 0.0000 0.0000 1.0000 Max-Min: 1.0000 Avg: 0.1700
- Index: [U21,Ano2]
- Tree Node: StageTwoLow Values: 0.0000 1.0000 -0.0000 0.0000 0.0000 0.0000 Max-Min: 1.0000 Avg: 0.1650
- Index: [U3,Ano2]
- Tree Node: StageTwoLow Values: 1.0000 0.0000 0.0000 0.0000 1.0000 -0.0000 Max-Min: 1.0000 Avg: 0.3350
- Index: [U5,Ano2]
- Tree Node: StageTwoLow Values: -0.0000 1.0000 1.0000 0.0000 0.0000 -0.0000 Max-Min: 1.0000 Avg: 0.3300
- Index: [U6,Ano2]
- Tree Node: StageTwoLow Values: -0.0000 0.0000 0.0000 1.0000 0.0000 0.0000 Max-Min: 1.0000 Avg: 0.1650
- Index: [U7,Ano2]
- Tree Node: StageTwoLow Values: 1.0000 0.0000 1.0000 0.0000 0.0000 0.0000 Max-Min: 1.0000 Avg: 0.3300
- Index: [U8,Ano2]
- Tree Node: StageTwoLow Values: 0.0000 0.0000 0.0000 1.0000 0.0000 -0.0000 Max-Min: 1.0000 Avg: 0.1650
- Cost Variable: AnoProfit[Ano2]
- Tree Node: StageTwoHigh (Scenarios: ForestChile1 ForestChile2 ForestChile3 ForestChile4 ForestChile5 ForestChile6 )
- Values: 2073947.75102367810.25202167062.95702382047.43302478463.45202426489.0370 Max-Min: 404515.7010 Avg: 2346152.3161
- Tree Node: StageTwoMedium (Scenarios: ForestChile7 ForestChile8 ForestChile9 ForestChile10 ForestChile11 ForestChile12 )
- Values: 705413.86201165795.81201191750.95251210386.42001206393.92101203601.9590 Max-Min: 504972.5580 Avg: 1114801.5623
- Tree Node: StageTwoLow (Scenarios: ForestChile13 ForestChile14 ForestChile15 ForestChile16 ForestChile17 ForestChile18 )
- Values: 370412.7390 401743.2330 412297.6140 414575.4600 433229.1750 453589.5960 Max-Min: 83176.8570 Avg: 414598.9837
- Stage: Ano3Stage
- (Scenarios: ForestChile1 ForestChile2 )
- Variable: f
- Index: [C01,C09,Ano3]
- Tree Node: StageThreeHighHigh Values: 7312.4000 7312.4000 Max-Min: 0.0000 Avg: 7312.4000
- Index: [C02,C03,Ano3]
- Tree Node: StageThreeHighHigh Values: 13032.6000 14701.8000 Max-Min: 1669.2000 Avg: 14367.9600
- Index: [C03,E1,Ano3]
- Tree Node: StageThreeHighHigh Values: 13032.6000 14701.8000 Max-Min: 1669.2000 Avg: 14367.9600
- Index: [C05,I1,Ano3]
- Tree Node: StageThreeHighHigh Values: 8391.6000 22056.3000 Max-Min: 13664.7000 Avg: 19323.3600
- Index: [C08,I2,Ano3]
- Tree Node: StageThreeHighHigh Values: 10287.6000 6117.2000 Max-Min: 4170.4000 Avg: 6951.2800
- Index: [C09,E1,Ano3]
- Tree Node: StageThreeHighHigh Values: 11041.0000 7312.4000 Max-Min: 3728.6000 Avg: 8058.1200
- Index: [I1,I2,Ano3]
- Tree Node: StageThreeHighHigh Values: 8391.6000 22056.3000 Max-Min: 13664.7000 Avg: 19323.3600
- Index: [I2,I3,Ano3]
- Tree Node: StageThreeHighHigh Values: 18679.2000 28173.5000 Max-Min: 9494.3000 Avg: 26274.6400
- Index: [I3,E1,Ano3]
- Tree Node: StageThreeHighHigh Values: 18679.2000 28173.5000 Max-Min: 9494.3000 Avg: 26274.6400
- (Scenarios: ForestChile3 ForestChile4 )
- Index: [C01,C09,Ano3]
- Tree Node: StageThreeHighMedium Values: 0.0000 3656.2000 Max-Min: 3656.2000 Avg: 2559.3400
- Index: [C02,C03,Ano3]
- Tree Node: StageThreeHighMedium Values: 18422.2000 6548.4000 Max-Min: 11873.8000 Avg: 10110.5400
- Index: [C03,E1,Ano3]
- Tree Node: StageThreeHighMedium Values: 18422.2000 6548.4000 Max-Min: 11873.8000 Avg: 10110.5400
- Index: [C05,I1,Ano3]
- Tree Node: StageThreeHighMedium Values: 0.0000 14855.4000 Max-Min: 14855.4000 Avg: 10398.7800
- Index: [C06,I3,Ano3]
- Tree Node: StageThreeHighMedium Values: 10287.6000 0.0000 Max-Min: 10287.6000 Avg: 3086.2800
- Index: [C08,C06,Ano3]
- Tree Node: StageThreeHighMedium Values: 10287.6000 0.0000 Max-Min: 10287.6000 Avg: 3086.2800
- Index: [C08,I2,Ano3]
- Tree Node: StageThreeHighMedium Values: 0.0000 10287.6000 Max-Min: 10287.6000 Avg: 7201.3200
- Index: [C09,C02,Ano3]
- Tree Node: StageThreeHighMedium Values: 3656.2000 0.0000 Max-Min: 3656.2000 Avg: 1096.8600
- Index: [C09,E1,Ano3]
- Tree Node: StageThreeHighMedium Values: 0.0000 7384.8000 Max-Min: 7384.8000 Avg: 5169.3600
- Index: [I1,I2,Ano3]
- Tree Node: StageThreeHighMedium Values: 0.0000 14855.4000 Max-Min: 14855.4000 Avg: 10398.7800
- Index: [I2,I3,Ano3]
- Tree Node: StageThreeHighMedium Values: 0.0000 25143.0000 Max-Min: 25143.0000 Avg: 17600.1000
- Index: [I3,E1,Ano3]
- Tree Node: StageThreeHighMedium Values: 10287.6000 25143.0000 Max-Min: 14855.4000 Avg: 20686.3800
- (Scenarios: ForestChile5 ForestChile6 )
- Index: [C02,C03,Ano3]
- Tree Node: StageThreeHighLow Values: 10721.4000 6484.2000 Max-Min: 4237.2000 Avg: 8179.0800
- Index: [C03,E1,Ano3]
- Tree Node: StageThreeHighLow Values: 10721.4000 6484.2000 Max-Min: 4237.2000 Avg: 8179.0800
- Index: [C05,I1,Ano3]
- Tree Node: StageThreeHighLow Values: 8391.6000 22056.3000 Max-Min: 13664.7000 Avg: 16590.4200
- Index: [C08,I2,Ano3]
- Tree Node: StageThreeHighLow Values: 4170.4000 10287.6000 Max-Min: 6117.2000 Avg: 7840.7200
- Index: [C09,E1,Ano3]
- Tree Node: StageThreeHighLow Values: 3656.2000 0.0000 Max-Min: 3656.2000 Avg: 1462.4800
- Index: [I1,I2,Ano3]
- Tree Node: StageThreeHighLow Values: 8391.6000 22056.3000 Max-Min: 13664.7000 Avg: 16590.4200
- Index: [I2,I3,Ano3]
- Tree Node: StageThreeHighLow Values: 12562.0000 32343.9000 Max-Min: 19781.9000 Avg: 24431.1400
- Index: [I3,E1,Ano3]
- Tree Node: StageThreeHighLow Values: 12562.0000 32343.9000 Max-Min: 19781.9000 Avg: 24431.1400
- (Scenarios: ForestChile7 ForestChile8 )
- Index: [C01,C09,Ano3]
- Tree Node: StageThreeMediumHigh Values: 8602.8000 8602.8000 Max-Min: 0.0000 Avg: 8602.8000
- Index: [C02,C03,Ano3]
- Tree Node: StageThreeMediumHigh Values: 14766.0000 10721.4000 Max-Min: 4044.6000 Avg: 12743.7000
- Index: [C03,E1,Ano3]
- Tree Node: StageThreeMediumHigh Values: 14766.0000 18281.4000 Max-Min: 3515.4000 Avg: 16523.7000
- Index: [C04,C03,Ano3]
- Tree Node: StageThreeMediumHigh Values: 0.0000 7560.0000 Max-Min: 7560.0000 Avg: 3780.0000
- Index: [C05,I1,Ano3]
- Tree Node: StageThreeMediumHigh Values: 7200.9000 7200.9000 Max-Min: 0.0000 Avg: 7200.9000
- Index: [C08,I2,Ano3]
- Tree Node: StageThreeMediumHigh Values: 6117.2000 10287.6000 Max-Min: 4170.4000 Avg: 8202.4000
- Index: [C09,E1,Ano3]
- Tree Node: StageThreeMediumHigh Values: 15987.6000 8602.8000 Max-Min: 7384.8000 Avg: 12295.2000
- Index: [I1,I2,Ano3]
- Tree Node: StageThreeMediumHigh Values: 7200.9000 7200.9000 Max-Min: 0.0000 Avg: 7200.9000
- Index: [I2,I3,Ano3]
- Tree Node: StageThreeMediumHigh Values: 13318.1000 17488.5000 Max-Min: 4170.4000 Avg: 15403.3000
- Index: [I3,E1,Ano3]
- Tree Node: StageThreeMediumHigh Values: 13318.1000 17488.5000 Max-Min: 4170.4000 Avg: 15403.3000
- (Scenarios: ForestChile9 ForestChile10 )
- Index: [C01,C09,Ano3]
- Tree Node: StageThreeMediumMedium Values: 12259.0000 8602.8000 Max-Min: 3656.2000 Avg: 10430.9000
- Index: [C02,C03,Ano3]
- Tree Node: StageThreeMediumMedium Values: 18939.0000 6548.4000 Max-Min: 12390.6000 Avg: 12743.7000
- Index: [C03,E1,Ano3]
- Tree Node: StageThreeMediumMedium Values: 18939.0000 14422.0000 Max-Min: 4517.0000 Avg: 16680.5000
- Index: [C05,I1,Ano3]
- Tree Node: StageThreeMediumMedium Values: 8391.6000 13664.7000 Max-Min: 5273.1000 Avg: 11028.1500
- Index: [C09,E1,Ano3]
- Tree Node: StageThreeMediumMedium Values: 12259.0000 12331.4000 Max-Min: 72.4000 Avg: 12295.2000
- Index: [I1,I2,Ano3]
- Tree Node: StageThreeMediumMedium Values: 8391.6000 13664.7000 Max-Min: 5273.1000 Avg: 11028.1500
- Index: [I2,I3,Ano3]
- Tree Node: StageThreeMediumMedium Values: 8391.6000 13664.7000 Max-Min: 5273.1000 Avg: 11028.1500
- Index: [I3,E1,Ano3]
- Tree Node: StageThreeMediumMedium Values: 8391.6000 13664.7000 Max-Min: 5273.1000 Avg: 11028.1500
- (Scenarios: ForestChile11 ForestChile12 )
- Index: [C01,C09,Ano3]
- Tree Node: StageThreeMediumLow Values: 3656.2000 0.0000 Max-Min: 3656.2000 Avg: 1828.1000
- Index: [C02,C03,Ano3]
- Tree Node: StageThreeMediumLow Values: 0.0000 8217.6000 Max-Min: 8217.6000 Avg: 4108.8000
- Index: [C03,E1,Ano3]
- Tree Node: StageThreeMediumLow Values: 0.0000 8217.6000 Max-Min: 8217.6000 Avg: 4108.8000
- Index: [C05,I1,Ano3]
- Tree Node: StageThreeMediumLow Values: 15592.5000 14855.4000 Max-Min: 737.1000 Avg: 15223.9500
- Index: [C07,C08,Ano3]
- Tree Node: StageThreeMediumLow Values: 3730.0000 0.0000 Max-Min: 3730.0000 Avg: 1865.0000
- Index: [C08,I2,Ano3]
- Tree Node: StageThreeMediumLow Values: 9847.2000 0.0000 Max-Min: 9847.2000 Avg: 4923.6000
- Index: [C09,E1,Ano3]
- Tree Node: StageThreeMediumLow Values: 3656.2000 7384.8000 Max-Min: 3728.6000 Avg: 5520.5000
- Index: [I1,I2,Ano3]
- Tree Node: StageThreeMediumLow Values: 15592.5000 14855.4000 Max-Min: 737.1000 Avg: 15223.9500
- Index: [I2,I3,Ano3]
- Tree Node: StageThreeMediumLow Values: 25439.7000 14855.4000 Max-Min: 10584.3000 Avg: 20147.5500
- Index: [I3,E1,Ano3]
- Tree Node: StageThreeMediumLow Values: 25439.7000 14855.4000 Max-Min: 10584.3000 Avg: 20147.5500
- (Scenarios: ForestChile13 ForestChile14 )
- Index: [C02,C03,Ano3]
- Tree Node: StageThreeLowHigh Values: 25487.4000 31971.6000 Max-Min: 6484.2000 Avg: 28729.5000
- Index: [C03,E1,Ano3]
- Tree Node: StageThreeLowHigh Values: 25487.4000 31971.6000 Max-Min: 6484.2000 Avg: 28729.5000
- Index: [C08,I2,Ano3]
- Tree Node: StageThreeLowHigh Values: 10287.6000 4170.4000 Max-Min: 6117.2000 Avg: 7229.0000
- Index: [C09,E1,Ano3]
- Tree Node: StageThreeLowHigh Values: 3764.8000 3764.8000 Max-Min: 0.0000 Avg: 3764.8000
- Index: [I2,I3,Ano3]
- Tree Node: StageThreeLowHigh Values: 10287.6000 4170.4000 Max-Min: 6117.2000 Avg: 7229.0000
- Index: [I3,E1,Ano3]
- Tree Node: StageThreeLowHigh Values: 10287.6000 4170.4000 Max-Min: 6117.2000 Avg: 7229.0000
- (Scenarios: ForestChile15 ForestChile16 )
- Index: [C02,C03,Ano3]
- Tree Node: StageThreeLowMedium Values: 17269.8000 8217.6000 Max-Min: 9052.2000 Avg: 12743.7000
- Index: [C03,E1,Ano3]
- Tree Node: StageThreeLowMedium Values: 24829.8000 15777.6000 Max-Min: 9052.2000 Avg: 20303.7000
- Index: [C04,C03,Ano3]
- Tree Node: StageThreeLowMedium Values: 7560.0000 7560.0000 Max-Min: 0.0000 Avg: 7560.0000
- Index: [C07,C08,Ano3]
- Tree Node: StageThreeLowMedium Values: 0.0000 3730.0000 Max-Min: 3730.0000 Avg: 1865.0000
- Index: [C08,I2,Ano3]
- Tree Node: StageThreeLowMedium Values: 0.0000 3730.0000 Max-Min: 3730.0000 Avg: 1865.0000
- Index: [C09,E1,Ano3]
- Tree Node: StageThreeLowMedium Values: 0.0000 3728.6000 Max-Min: 3728.6000 Avg: 1864.3000
- Index: [I2,I3,Ano3]
- Tree Node: StageThreeLowMedium Values: 0.0000 3730.0000 Max-Min: 3730.0000 Avg: 1865.0000
- Index: [I3,E1,Ano3]
- Tree Node: StageThreeLowMedium Values: 0.0000 3730.0000 Max-Min: 3730.0000 Avg: 1865.0000
- (Scenarios: ForestChile17 ForestChile18 )
- Index: [C02,C03,Ano3]
- Tree Node: StageThreeLowLow Values: 14766.0000 10721.4000 Max-Min: 4044.6000 Avg: 12743.7000
- Index: [C03,E1,Ano3]
- Tree Node: StageThreeLowLow Values: 14766.0000 10721.4000 Max-Min: 4044.6000 Avg: 12743.7000
- Index: [C08,I2,Ano3]
- Tree Node: StageThreeLowLow Values: 6117.2000 0.0000 Max-Min: 6117.2000 Avg: 3058.6000
- Index: [C09,E1,Ano3]
- Tree Node: StageThreeLowLow Values: 0.0000 11149.6000 Max-Min: 11149.6000 Avg: 5574.8000
- Index: [I2,I3,Ano3]
- Tree Node: StageThreeLowLow Values: 6117.2000 0.0000 Max-Min: 6117.2000 Avg: 3058.6000
- Index: [I3,E1,Ano3]
- Tree Node: StageThreeLowLow Values: 6117.2000 0.0000 Max-Min: 6117.2000 Avg: 3058.6000
- (Scenarios: ForestChile1 ForestChile2 )
- Variable: z
- Index: [E1,Ano3]
- Tree Node: StageThreeHighHigh Values: 42752.8000 50187.7000 Max-Min: 7434.9000 Avg: 48700.7200
- (Scenarios: ForestChile3 ForestChile4 )
- Index: [E1,Ano3]
- Tree Node: StageThreeHighMedium Values: 28709.8000 39076.2000 Max-Min: 10366.4000 Avg: 35966.2800
- (Scenarios: ForestChile5 ForestChile6 )
- Index: [E1,Ano3]
- Tree Node: StageThreeHighLow Values: 26939.6000 38828.1000 Max-Min: 11888.5000 Avg: 34072.7000
- (Scenarios: ForestChile7 ForestChile8 )
- Index: [E1,Ano3]
- Tree Node: StageThreeMediumHigh Values: 44071.7000 44372.7000 Max-Min: 301.0000 Avg: 44222.2000
- (Scenarios: ForestChile9 ForestChile10 )
- Index: [E1,Ano3]
- Tree Node: StageThreeMediumMedium Values: 39589.6000 40418.1000 Max-Min: 828.5000 Avg: 40003.8500
- (Scenarios: ForestChile11 ForestChile12 )
- Index: [E1,Ano3]
- Tree Node: StageThreeMediumLow Values: 29095.9000 30457.8000 Max-Min: 1361.9000 Avg: 29776.8500
- (Scenarios: ForestChile13 ForestChile14 )
- Index: [E1,Ano3]
- Tree Node: StageThreeLowHigh Values: 39539.8000 39906.8000 Max-Min: 367.0000 Avg: 39723.3000
- (Scenarios: ForestChile15 ForestChile16 )
- Index: [E1,Ano3]
- Tree Node: StageThreeLowMedium Values: 24829.8000 23236.2000 Max-Min: 1593.6000 Avg: 24033.0000
- (Scenarios: ForestChile17 ForestChile18 )
- Index: [E1,Ano3]
- Tree Node: StageThreeLowLow Values: 20883.2000 21871.0000 Max-Min: 987.8000 Avg: 21377.1000
- (Scenarios: ForestChile1 ForestChile2 )
- Variable: gamma
- Index: [C01,C09,Ano3]
- Tree Node: StageThreeHighHigh Values: 0.0000 1.0000 Max-Min: 1.0000 Avg: 0.8000
- Index: [C08,I2,Ano3]
- Tree Node: StageThreeHighHigh Values: 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- (Scenarios: ForestChile3 ForestChile4 )
- Index: [C08,C06,Ano3]
- Tree Node: StageThreeHighMedium Values: 1.0000 -0.0000 Max-Min: 1.0000 Avg: 0.3000
- Index: [C08,I2,Ano3]
- Tree Node: StageThreeHighMedium Values: 0.0000 1.0000 Max-Min: 1.0000 Avg: 0.7000
- (Scenarios: ForestChile5 ForestChile6 )
- Index: [C08,I2,Ano3]
- Tree Node: StageThreeHighLow Values: 0.0000 1.0000 Max-Min: 1.0000 Avg: 0.6000
- (Scenarios: ForestChile7 ForestChile8 )
- Index: [C01,C09,Ano3]
- Tree Node: StageThreeMediumHigh Values: 1.0000 0.0000 Max-Min: 1.0000 Avg: 0.5000
- Index: [C08,I2,Ano3]
- Tree Node: StageThreeMediumHigh Values: 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- Index: [C09,E1,Ano3]
- Tree Node: StageThreeMediumHigh Values: 1.0000 0.0000 Max-Min: 1.0000 Avg: 0.5000
- (Scenarios: ForestChile9 ForestChile10 )
- Index: [C01,C09,Ano3]
- Tree Node: StageThreeMediumMedium Values: 0.0000 1.0000 Max-Min: 1.0000 Avg: 0.5000
- Index: [C09,E1,Ano3]
- Tree Node: StageThreeMediumMedium Values: 0.0000 1.0000 Max-Min: 1.0000 Avg: 0.5000
- (Scenarios: ForestChile11 ForestChile12 )
- Index: [C07,C08,Ano3]
- Tree Node: StageThreeMediumLow Values: 1.0000 0.0000 Max-Min: 1.0000 Avg: 0.5000
- Index: [C08,I2,Ano3]
- Tree Node: StageThreeMediumLow Values: 1.0000 0.0000 Max-Min: 1.0000 Avg: 0.5000
- (Scenarios: ForestChile13 ForestChile14 )
- Index: [C08,I2,Ano3]
- Tree Node: StageThreeLowHigh Values: 1.0000 0.0000 Max-Min: 1.0000 Avg: 0.5000
- (Scenarios: ForestChile15 ForestChile16 )
- Index: [C07,C08,Ano3]
- Tree Node: StageThreeLowMedium Values: 0.0000 1.0000 Max-Min: 1.0000 Avg: 0.5000
- Index: [C08,I2,Ano3]
- Tree Node: StageThreeLowMedium Values: 0.0000 1.0000 Max-Min: 1.0000 Avg: 0.5000
- (Scenarios: ForestChile17 ForestChile18 )
- Index: [C01,C09,Ano3]
- Tree Node: StageThreeLowLow Values: 0.0000 1.0000 Max-Min: 1.0000 Avg: 0.5000
- Index: [C08,I2,Ano3]
- Tree Node: StageThreeLowLow Values: 1.0000 -0.0000 Max-Min: 1.0000 Avg: 0.5000
- Index: [C09,E1,Ano3]
- Tree Node: StageThreeLowLow Values: 0.0000 1.0000 Max-Min: 1.0000 Avg: 0.5000
- (Scenarios: ForestChile1 ForestChile2 )
- Variable: delta
- Index: [U1,Ano3]
- Tree Node: StageThreeHighHigh Values: 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- Index: [U10,Ano3]
- Tree Node: StageThreeHighHigh Values: 0.0000 1.0000 Max-Min: 1.0000 Avg: 0.8000
- Index: [U14,Ano3]
- Tree Node: StageThreeHighHigh Values: 0.0000 1.0000 Max-Min: 1.0000 Avg: 0.8000
- Index: [U2,Ano3]
- Tree Node: StageThreeHighHigh Values: 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- Index: [U20,Ano3]
- Tree Node: StageThreeHighHigh Values: 1.0000 0.0000 Max-Min: 1.0000 Avg: 0.2000
- Index: [U21,Ano3]
- Tree Node: StageThreeHighHigh Values: 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- Index: [U23,Ano3]
- Tree Node: StageThreeHighHigh Values: 0.0000 1.0000 Max-Min: 1.0000 Avg: 0.8000
- Index: [U24,Ano3]
- Tree Node: StageThreeHighHigh Values: 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- Index: [U5,Ano3]
- Tree Node: StageThreeHighHigh Values: 1.0000 0.0000 Max-Min: 1.0000 Avg: 0.2000
- Index: [U6,Ano3]
- Tree Node: StageThreeHighHigh Values: 1.0000 0.0000 Max-Min: 1.0000 Avg: 0.2000
- Index: [U7,Ano3]
- Tree Node: StageThreeHighHigh Values: 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- (Scenarios: ForestChile3 ForestChile4 )
- Index: [U10,Ano3]
- Tree Node: StageThreeHighMedium Values: 1.0000 0.0000 Max-Min: 1.0000 Avg: 0.3000
- Index: [U2,Ano3]
- Tree Node: StageThreeHighMedium Values: 0.0000 1.0000 Max-Min: 1.0000 Avg: 0.7000
- Index: [U20,Ano3]
- Tree Node: StageThreeHighMedium Values: 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- Index: [U21,Ano3]
- Tree Node: StageThreeHighMedium Values: 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- Index: [U23,Ano3]
- Tree Node: StageThreeHighMedium Values: 0.0000 1.0000 Max-Min: 1.0000 Avg: 0.7000
- Index: [U24,Ano3]
- Tree Node: StageThreeHighMedium Values: 0.0000 1.0000 Max-Min: 1.0000 Avg: 0.7000
- Index: [U3,Ano3]
- Tree Node: StageThreeHighMedium Values: 1.0000 -0.0000 Max-Min: 1.0000 Avg: 0.3000
- Index: [U5,Ano3]
- Tree Node: StageThreeHighMedium Values: 0.0000 1.0000 Max-Min: 1.0000 Avg: 0.7000
- Index: [U6,Ano3]
- Tree Node: StageThreeHighMedium Values: 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- (Scenarios: ForestChile5 ForestChile6 )
- Index: [U14,Ano3]
- Tree Node: StageThreeHighLow Values: 0.0000 1.0000 Max-Min: 1.0000 Avg: 0.6000
- Index: [U20,Ano3]
- Tree Node: StageThreeHighLow Values: 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- Index: [U21,Ano3]
- Tree Node: StageThreeHighLow Values: 0.0000 1.0000 Max-Min: 1.0000 Avg: 0.6000
- Index: [U23,Ano3]
- Tree Node: StageThreeHighLow Values: 0.0000 1.0000 Max-Min: 1.0000 Avg: 0.6000
- Index: [U24,Ano3]
- Tree Node: StageThreeHighLow Values: 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- Index: [U3,Ano3]
- Tree Node: StageThreeHighLow Values: 1.0000 0.0000 Max-Min: 1.0000 Avg: 0.4000
- Index: [U7,Ano3]
- Tree Node: StageThreeHighLow Values: 0.0000 1.0000 Max-Min: 1.0000 Avg: 0.6000
- Index: [U9,Ano3]
- Tree Node: StageThreeHighLow Values: 1.0000 0.0000 Max-Min: 1.0000 Avg: 0.4000
- (Scenarios: ForestChile7 ForestChile8 )
- Index: [U10,Ano3]
- Tree Node: StageThreeMediumHigh Values: 1.0000 0.0000 Max-Min: 1.0000 Avg: 0.5000
- Index: [U14,Ano3]
- Tree Node: StageThreeMediumHigh Values: 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- Index: [U16,Ano3]
- Tree Node: StageThreeMediumHigh Values: 0.0000 1.0000 Max-Min: 1.0000 Avg: 0.5000
- Index: [U20,Ano3]
- Tree Node: StageThreeMediumHigh Values: 0.0000 1.0000 Max-Min: 1.0000 Avg: 0.5000
- Index: [U21,Ano3]
- Tree Node: StageThreeMediumHigh Values: 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- Index: [U3,Ano3]
- Tree Node: StageThreeMediumHigh Values: 1.0000 0.0000 Max-Min: 1.0000 Avg: 0.5000
- Index: [U4,Ano3]
- Tree Node: StageThreeMediumHigh Values: 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- Index: [U5,Ano3]
- Tree Node: StageThreeMediumHigh Values: 1.0000 0.0000 Max-Min: 1.0000 Avg: 0.5000
- Index: [U6,Ano3]
- Tree Node: StageThreeMediumHigh Values: 1.0000 0.0000 Max-Min: 1.0000 Avg: 0.5000
- Index: [U9,Ano3]
- Tree Node: StageThreeMediumHigh Values: 0.0000 1.0000 Max-Min: 1.0000 Avg: 0.5000
- (Scenarios: ForestChile9 ForestChile10 )
- Index: [U1,Ano3]
- Tree Node: StageThreeMediumMedium Values: 1.0000 -0.0000 Max-Min: 1.0000 Avg: 0.5000
- Index: [U10,Ano3]
- Tree Node: StageThreeMediumMedium Values: 1.0000 0.0000 Max-Min: 1.0000 Avg: 0.5000
- Index: [U12,Ano3]
- Tree Node: StageThreeMediumMedium Values: 0.0000 1.0000 Max-Min: 1.0000 Avg: 0.5000
- Index: [U14,Ano3]
- Tree Node: StageThreeMediumMedium Values: 0.0000 1.0000 Max-Min: 1.0000 Avg: 0.5000
- Index: [U23,Ano3]
- Tree Node: StageThreeMediumMedium Values: 0.0000 1.0000 Max-Min: 1.0000 Avg: 0.5000
- Index: [U24,Ano3]
- Tree Node: StageThreeMediumMedium Values: 1.0000 -0.0000 Max-Min: 1.0000 Avg: 0.5000
- Index: [U4,Ano3]
- Tree Node: StageThreeMediumMedium Values: 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- Index: [U5,Ano3]
- Tree Node: StageThreeMediumMedium Values: 0.0000 1.0000 Max-Min: 1.0000 Avg: 0.5000
- Index: [U6,Ano3]
- Tree Node: StageThreeMediumMedium Values: 0.0000 1.0000 Max-Min: 1.0000 Avg: 0.5000
- Index: [U9,Ano3]
- Tree Node: StageThreeMediumMedium Values: 1.0000 -0.0000 Max-Min: 1.0000 Avg: 0.5000
- (Scenarios: ForestChile11 ForestChile12 )
- Index: [U10,Ano3]
- Tree Node: StageThreeMediumLow Values: 0.0000 1.0000 Max-Min: 1.0000 Avg: 0.5000
- Index: [U14,Ano3]
- Tree Node: StageThreeMediumLow Values: 1.0000 0.0000 Max-Min: 1.0000 Avg: 0.5000
- Index: [U2,Ano3]
- Tree Node: StageThreeMediumLow Values: 1.0000 0.0000 Max-Min: 1.0000 Avg: 0.5000
- Index: [U21,Ano3]
- Tree Node: StageThreeMediumLow Values: 1.0000 0.0000 Max-Min: 1.0000 Avg: 0.5000
- Index: [U22,Ano3]
- Tree Node: StageThreeMediumLow Values: 1.0000 0.0000 Max-Min: 1.0000 Avg: 0.5000
- Index: [U23,Ano3]
- Tree Node: StageThreeMediumLow Values: 0.0000 1.0000 Max-Min: 1.0000 Avg: 0.5000
- Index: [U24,Ano3]
- Tree Node: StageThreeMediumLow Values: 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- Index: [U3,Ano3]
- Tree Node: StageThreeMediumLow Values: 0.0000 1.0000 Max-Min: 1.0000 Avg: 0.5000
- Index: [U5,Ano3]
- Tree Node: StageThreeMediumLow Values: 0.0000 1.0000 Max-Min: 1.0000 Avg: 0.5000
- (Scenarios: ForestChile13 ForestChile14 )
- Index: [U10,Ano3]
- Tree Node: StageThreeLowHigh Values: 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- Index: [U20,Ano3]
- Tree Node: StageThreeLowHigh Values: 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- Index: [U21,Ano3]
- Tree Node: StageThreeLowHigh Values: 1.0000 0.0000 Max-Min: 1.0000 Avg: 0.5000
- Index: [U6,Ano3]
- Tree Node: StageThreeLowHigh Values: 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- Index: [U7,Ano3]
- Tree Node: StageThreeLowHigh Values: -0.0000 1.0000 Max-Min: 1.0000 Avg: 0.5000
- Index: [U8,Ano3]
- Tree Node: StageThreeLowHigh Values: 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- Index: [U9,Ano3]
- Tree Node: StageThreeLowHigh Values: 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- (Scenarios: ForestChile15 ForestChile16 )
- Index: [U10,Ano3]
- Tree Node: StageThreeLowMedium Values: 0.0000 1.0000 Max-Min: 1.0000 Avg: 0.5000
- Index: [U16,Ano3]
- Tree Node: StageThreeLowMedium Values: 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- Index: [U22,Ano3]
- Tree Node: StageThreeLowMedium Values: 0.0000 1.0000 Max-Min: 1.0000 Avg: 0.5000
- Index: [U5,Ano3]
- Tree Node: StageThreeLowMedium Values: 0.0000 1.0000 Max-Min: 1.0000 Avg: 0.5000
- Index: [U6,Ano3]
- Tree Node: StageThreeLowMedium Values: 1.0000 0.0000 Max-Min: 1.0000 Avg: 0.5000
- Index: [U9,Ano3]
- Tree Node: StageThreeLowMedium Values: 1.0000 0.0000 Max-Min: 1.0000 Avg: 0.5000
- (Scenarios: ForestChile17 ForestChile18 )
- Index: [U10,Ano3]
- Tree Node: StageThreeLowLow Values: 1.0000 0.0000 Max-Min: 1.0000 Avg: 0.5000
- Index: [U21,Ano3]
- Tree Node: StageThreeLowLow Values: 1.0000 -0.0000 Max-Min: 1.0000 Avg: 0.5000
- Index: [U3,Ano3]
- Tree Node: StageThreeLowLow Values: 0.0000 1.0000 Max-Min: 1.0000 Avg: 0.5000
- Index: [U5,Ano3]
- Tree Node: StageThreeLowLow Values: 0.0000 1.0000 Max-Min: 1.0000 Avg: 0.5000
- Index: [U6,Ano3]
- Tree Node: StageThreeLowLow Values: 1.0000 -0.0000 Max-Min: 1.0000 Avg: 0.5000
- Index: [U8,Ano3]
- Tree Node: StageThreeLowLow Values: 0.0000 1.0000 Max-Min: 1.0000 Avg: 0.5000
- Index: [U9,Ano3]
- Tree Node: StageThreeLowLow Values: 0.0000 1.0000 Max-Min: 1.0000 Avg: 0.5000
- Cost Variable: AnoProfit[Ano3]
- Tree Node: StageThreeHighHigh (Scenarios: ForestChile1 ForestChile2 )
- Values: 2064634.41782417511.0595 Max-Min: 352876.6417 Avg: 2346935.7312
- Tree Node: StageThreeHighMedium (Scenarios: ForestChile3 ForestChile4 )
- Values: 1148018.47561570394.7333 Max-Min: 422376.2577 Avg: 1443681.8560
- Tree Node: StageThreeHighLow (Scenarios: ForestChile5 ForestChile6 )
- Values: 869086.09801243528.3580 Max-Min: 374442.2600 Avg: 1093751.4540
- Tree Node: StageThreeMediumHigh (Scenarios: ForestChile7 ForestChile8 )
- Values: 1664626.78401682826.4877 Max-Min: 18199.7037 Avg: 1673726.6358
- Tree Node: StageThreeMediumMedium (Scenarios: ForestChile9 ForestChile10 )
- Values: 1266068.41021316661.6298 Max-Min: 50593.2196 Avg: 1291365.0200
- Tree Node: StageThreeMediumLow (Scenarios: ForestChile11 ForestChile12 )
- Values: 569732.7982 613887.1821 Max-Min: 44154.3838 Avg: 591809.9902
- Tree Node: StageThreeLowHigh (Scenarios: ForestChile13 ForestChile14 )
- Values: 1277306.72281291190.4144 Max-Min: 13883.6916 Avg: 1284248.5686
- Tree Node: StageThreeLowMedium (Scenarios: ForestChile15 ForestChile16 )
- Values: 510640.2162 474372.9036 Max-Min: 36267.3126 Avg: 492506.5599
- Tree Node: StageThreeLowLow (Scenarios: ForestChile17 ForestChile18 )
- Values: 283633.0182 304347.2535 Max-Min: 20714.2353 Avg: 293990.1358
-Final costs:
-Scenario Tree Costs
-***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise
-----------------------------------------------------
-Tree Nodes:
-
- Name=Leaf1
- Stage=Ano4Stage
- Parent=StageThreeHighHigh
- Conditional probability=0.2000
- Children:
- None
- Scenarios:
- ForestChile1
- Expected cost of (sub)tree rooted at node=1343400.7225
-
- Name=Leaf10
- Stage=Ano4Stage
- Parent=StageThreeMediumMedium
- Conditional probability=0.5000
- Children:
- None
- Scenarios:
- ForestChile10
- Expected cost of (sub)tree rooted at node=792893.1758
-
- Name=Leaf11
- Stage=Ano4Stage
- Parent=StageThreeMediumLow
- Conditional probability=0.5000
- Children:
- None
- Scenarios:
- ForestChile11
- Expected cost of (sub)tree rooted at node=869507.9630
-
- Name=Leaf12
- Stage=Ano4Stage
- Parent=StageThreeMediumLow
- Conditional probability=0.5000
- Children:
- None
- Scenarios:
- ForestChile12
- Expected cost of (sub)tree rooted at node=639733.6329
-
- Name=Leaf13
- Stage=Ano4Stage
- Parent=StageThreeLowHigh
- Conditional probability=0.5000
- Children:
- None
- Scenarios:
- ForestChile13
- Expected cost of (sub)tree rooted at node=472128.9768
-
- Name=Leaf14
- Stage=Ano4Stage
- Parent=StageThreeLowHigh
- Conditional probability=0.5000
- Children:
- None
- Scenarios:
- ForestChile14
- Expected cost of (sub)tree rooted at node=299295.2803
-
- Name=Leaf15
- Stage=Ano4Stage
- Parent=StageThreeLowMedium
- Conditional probability=0.5000
- Children:
- None
- Scenarios:
- ForestChile15
- Expected cost of (sub)tree rooted at node=447589.9620
-
- Name=Leaf16
- Stage=Ano4Stage
- Parent=StageThreeLowMedium
- Conditional probability=0.5000
- Children:
- None
- Scenarios:
- ForestChile16
- Expected cost of (sub)tree rooted at node=302353.2749
-
- Name=Leaf17
- Stage=Ano4Stage
- Parent=StageThreeLowLow
- Conditional probability=0.5000
- Children:
- None
- Scenarios:
- ForestChile17
- Expected cost of (sub)tree rooted at node=361387.9282
-
- Name=Leaf18
- Stage=Ano4Stage
- Parent=StageThreeLowLow
- Conditional probability=0.5000
- Children:
- None
- Scenarios:
- ForestChile18
- Expected cost of (sub)tree rooted at node=160255.6326
-
- Name=Leaf2
- Stage=Ano4Stage
- Parent=StageThreeHighHigh
- Conditional probability=0.8000
- Children:
- None
- Scenarios:
- ForestChile2
- Expected cost of (sub)tree rooted at node=749301.5492
-
- Name=Leaf3
- Stage=Ano4Stage
- Parent=StageThreeHighMedium
- Conditional probability=0.3000
- Children:
- None
- Scenarios:
- ForestChile3
- Expected cost of (sub)tree rooted at node=1817221.5115
-
- Name=Leaf4
- Stage=Ano4Stage
- Parent=StageThreeHighMedium
- Conditional probability=0.7000
- Children:
- None
- Scenarios:
- ForestChile4
- Expected cost of (sub)tree rooted at node=860391.0343
-
- Name=Leaf5
- Stage=Ano4Stage
- Parent=StageThreeHighLow
- Conditional probability=0.4000
- Children:
- None
- Scenarios:
- ForestChile5
- Expected cost of (sub)tree rooted at node=1394382.9584
-
- Name=Leaf6
- Stage=Ano4Stage
- Parent=StageThreeHighLow
- Conditional probability=0.6000
- Children:
- None
- Scenarios:
- ForestChile6
- Expected cost of (sub)tree rooted at node=709942.1831
-
- Name=Leaf7
- Stage=Ano4Stage
- Parent=StageThreeMediumHigh
- Conditional probability=0.5000
- Children:
- None
- Scenarios:
- ForestChile7
- Expected cost of (sub)tree rooted at node=1738355.4374
-
- Name=Leaf8
- Stage=Ano4Stage
- Parent=StageThreeMediumHigh
- Conditional probability=0.5000
- Children:
- None
- Scenarios:
- ForestChile8
- Expected cost of (sub)tree rooted at node=942755.3534
-
- Name=Leaf9
- Stage=Ano4Stage
- Parent=StageThreeMediumMedium
- Conditional probability=0.5000
- Children:
- None
- Scenarios:
- ForestChile9
- Expected cost of (sub)tree rooted at node=1117134.7924
-
- Name=RootNode
- Stage=Ano1Stage
- Parent=None
- Conditional probability=1.0000
- Children:
- StageTwoHigh
- StageTwoLow
- StageTwoMedium
- Scenarios:
- ForestChile1
- ForestChile10
- ForestChile11
- ForestChile12
- ForestChile13
- ForestChile14
- ForestChile15
- ForestChile16
- ForestChile17
- ForestChile18
- ForestChile2
- ForestChile3
- ForestChile4
- ForestChile5
- ForestChile6
- ForestChile7
- ForestChile8
- ForestChile9
- Expected cost of (sub)tree rooted at node=5449635.7923
-
- Name=StageThreeHighHigh
- Stage=Ano3Stage
- Parent=StageTwoHigh
- Conditional probability=0.4500
- Children:
- Leaf1
- Leaf2
- Scenarios:
- ForestChile1
- ForestChile2
- Expected cost of (sub)tree rooted at node=2932755.8017
-
- Name=StageThreeHighLow
- Stage=Ano3Stage
- Parent=StageTwoHigh
- Conditional probability=0.2500
- Children:
- Leaf5
- Leaf6
- Scenarios:
- ForestChile5
- ForestChile6
- Expected cost of (sub)tree rooted at node=1852804.5912
-
- Name=StageThreeHighMedium
- Stage=Ano3Stage
- Parent=StageTwoHigh
- Conditional probability=0.3000
- Children:
- Leaf3
- Leaf4
- Scenarios:
- ForestChile3
- ForestChile4
- Expected cost of (sub)tree rooted at node=2295458.6531
-
- Name=StageThreeLowHigh
- Stage=Ano3Stage
- Parent=StageTwoLow
- Conditional probability=0.3300
- Children:
- Leaf13
- Leaf14
- Scenarios:
- ForestChile13
- ForestChile14
- Expected cost of (sub)tree rooted at node=1663018.8513
-
- Name=StageThreeLowLow
- Stage=Ano3Stage
- Parent=StageTwoLow
- Conditional probability=0.3400
- Children:
- Leaf17
- Leaf18
- Scenarios:
- ForestChile17
- ForestChile18
- Expected cost of (sub)tree rooted at node=544454.7986
-
- Name=StageThreeLowMedium
- Stage=Ano3Stage
- Parent=StageTwoLow
- Conditional probability=0.3300
- Children:
- Leaf15
- Leaf16
- Scenarios:
- ForestChile15
- ForestChile16
- Expected cost of (sub)tree rooted at node=885611.8346
-
- Name=StageThreeMediumHigh
- Stage=Ano3Stage
- Parent=StageTwoMedium
- Conditional probability=0.3300
- Children:
- Leaf7
- Leaf8
- Scenarios:
- ForestChile7
- ForestChile8
- Expected cost of (sub)tree rooted at node=3005182.1794
-
- Name=StageThreeMediumLow
- Stage=Ano3Stage
- Parent=StageTwoMedium
- Conditional probability=0.3400
- Children:
- Leaf11
- Leaf12
- Scenarios:
- ForestChile11
- ForestChile12
- Expected cost of (sub)tree rooted at node=1324353.5962
-
- Name=StageThreeMediumMedium
- Stage=Ano3Stage
- Parent=StageTwoMedium
- Conditional probability=0.3300
- Children:
- Leaf10
- Leaf9
- Scenarios:
- ForestChile10
- ForestChile9
- Expected cost of (sub)tree rooted at node=2221082.3943
-
- Name=StageTwoHigh
- Stage=Ano2Stage
- Parent=RootNode
- Conditional probability=0.7000
- Children:
- StageThreeHighHigh
- StageThreeHighLow
- StageThreeHighMedium
- Scenarios:
- ForestChile1
- ForestChile2
- ForestChile3
- ForestChile4
- ForestChile5
- ForestChile6
- Expected cost of (sub)tree rooted at node=4545526.6055
-
- Name=StageTwoLow
- Stage=Ano2Stage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- StageThreeLowHigh
- StageThreeLowLow
- StageThreeLowMedium
- Scenarios:
- ForestChile13
- ForestChile14
- ForestChile15
- ForestChile16
- ForestChile17
- ForestChile18
- Expected cost of (sub)tree rooted at node=1396575.4969
-
- Name=StageTwoMedium
- Stage=Ano2Stage
- Parent=RootNode
- Conditional probability=0.2000
- Children:
- StageThreeMediumHigh
- StageThreeMediumLow
- StageThreeMediumMedium
- Scenarios:
- ForestChile10
- ForestChile11
- ForestChile12
- ForestChile7
- ForestChile8
- ForestChile9
- Expected cost of (sub)tree rooted at node=2880361.3940
-
-----------------------------------------------------
-Scenarios:
-
- Name=ForestChile1
- Probability=0.0630
- Leaf Node=Leaf1
- Tree node sequence:
- RootNode
- StageTwoHigh
- StageThreeHighHigh
- Leaf1
- Stage= Ano1Stage Cost=1552037.3400
- Stage= Ano2Stage Cost=2073947.7510
- Stage= Ano3Stage Cost=2064634.4178
- Stage= Ano4Stage Cost=1343400.7225
- Total scenario cost=7034020.2313
-
- Name=ForestChile10
- Probability=0.0330
- Leaf Node=Leaf10
- Tree node sequence:
- RootNode
- StageTwoMedium
- StageThreeMediumMedium
- Leaf10
- Stage= Ano1Stage Cost=1632161.7000
- Stage= Ano2Stage Cost=1210386.4200
- Stage= Ano3Stage Cost=1316661.6298
- Stage= Ano4Stage Cost=792893.1758
- Total scenario cost=4952102.9257
-
- Name=ForestChile11
- Probability=0.0340
- Leaf Node=Leaf11
- Tree node sequence:
- RootNode
- StageTwoMedium
- StageThreeMediumLow
- Leaf11
- Stage= Ano1Stage Cost=1691184.5800
- Stage= Ano2Stage Cost=1206393.9210
- Stage= Ano3Stage Cost=569732.7982
- Stage= Ano4Stage Cost=869507.9630
- Total scenario cost=4336819.2623
-
- Name=ForestChile12
- Probability=0.0340
- Leaf Node=Leaf12
- Tree node sequence:
- RootNode
- StageTwoMedium
- StageThreeMediumLow
- Leaf12
- Stage= Ano1Stage Cost=1681215.7800
- Stage= Ano2Stage Cost=1203601.9590
- Stage= Ano3Stage Cost=613887.1821
- Stage= Ano4Stage Cost=639733.6329
- Total scenario cost=4138438.5540
-
- Name=ForestChile13
- Probability=0.0165
- Leaf Node=Leaf13
- Tree node sequence:
- RootNode
- StageTwoLow
- StageThreeLowHigh
- Leaf13
- Stage= Ano1Stage Cost=1679087.5600
- Stage= Ano2Stage Cost=370412.7390
- Stage= Ano3Stage Cost=1277306.7228
- Stage= Ano4Stage Cost=472128.9768
- Total scenario cost=3798935.9986
-
- Name=ForestChile14
- Probability=0.0165
- Leaf Node=Leaf14
- Tree node sequence:
- RootNode
- StageTwoLow
- StageThreeLowHigh
- Leaf14
- Stage= Ano1Stage Cost=1696849.5000
- Stage= Ano2Stage Cost=401743.2330
- Stage= Ano3Stage Cost=1291190.4144
- Stage= Ano4Stage Cost=299295.2803
- Total scenario cost=3689078.4277
-
- Name=ForestChile15
- Probability=0.0165
- Leaf Node=Leaf15
- Tree node sequence:
- RootNode
- StageTwoLow
- StageThreeLowMedium
- Leaf15
- Stage= Ano1Stage Cost=1696849.5000
- Stage= Ano2Stage Cost=412297.6140
- Stage= Ano3Stage Cost=510640.2162
- Stage= Ano4Stage Cost=447589.9620
- Total scenario cost=3067377.2922
-
- Name=ForestChile16
- Probability=0.0165
- Leaf Node=Leaf16
- Tree node sequence:
- RootNode
- StageTwoLow
- StageThreeLowMedium
- Leaf16
- Stage= Ano1Stage Cost=1696849.5000
- Stage= Ano2Stage Cost=414575.4600
- Stage= Ano3Stage Cost=474372.9036
- Stage= Ano4Stage Cost=302353.2749
- Total scenario cost=2888151.1385
-
- Name=ForestChile17
- Probability=0.0170
- Leaf Node=Leaf17
- Tree node sequence:
- RootNode
- StageTwoLow
- StageThreeLowLow
- Leaf17
- Stage= Ano1Stage Cost=1656959.2600
- Stage= Ano2Stage Cost=433229.1750
- Stage= Ano3Stage Cost=283633.0182
- Stage= Ano4Stage Cost=361387.9282
- Total scenario cost=2735209.3814
-
- Name=ForestChile18
- Probability=0.0170
- Leaf Node=Leaf18
- Tree node sequence:
- RootNode
- StageTwoLow
- StageThreeLowLow
- Leaf18
- Stage= Ano1Stage Cost=1665040.0800
- Stage= Ano2Stage Cost=453589.5960
- Stage= Ano3Stage Cost=304347.2535
- Stage= Ano4Stage Cost=160255.6326
- Total scenario cost=2583232.5621
-
- Name=ForestChile2
- Probability=0.2520
- Leaf Node=Leaf2
- Tree node sequence:
- RootNode
- StageTwoHigh
- StageThreeHighHigh
- Leaf2
- Stage= Ano1Stage Cost=1384678.4500
- Stage= Ano2Stage Cost=2367810.2520
- Stage= Ano3Stage Cost=2417511.0595
- Stage= Ano4Stage Cost=749301.5492
- Total scenario cost=6919301.3108
-
- Name=ForestChile3
- Probability=0.0630
- Leaf Node=Leaf3
- Tree node sequence:
- RootNode
- StageTwoHigh
- StageThreeHighMedium
- Leaf3
- Stage= Ano1Stage Cost=1388753.9800
- Stage= Ano2Stage Cost=2167062.9570
- Stage= Ano3Stage Cost=1148018.4756
- Stage= Ano4Stage Cost=1817221.5115
- Total scenario cost=6521056.9241
-
- Name=ForestChile4
- Probability=0.1470
- Leaf Node=Leaf4
- Tree node sequence:
- RootNode
- StageTwoHigh
- StageThreeHighMedium
- Leaf4
- Stage= Ano1Stage Cost=1562006.1400
- Stage= Ano2Stage Cost=2382047.4330
- Stage= Ano3Stage Cost=1570394.7333
- Stage= Ano4Stage Cost=860391.0343
- Total scenario cost=6374839.3406
-
- Name=ForestChile5
- Probability=0.0700
- Leaf Node=Leaf5
- Tree node sequence:
- RootNode
- StageTwoHigh
- StageThreeHighLow
- Leaf5
- Stage= Ano1Stage Cost=1566112.4200
- Stage= Ano2Stage Cost=2478463.4520
- Stage= Ano3Stage Cost=869086.0980
- Stage= Ano4Stage Cost=1394382.9584
- Total scenario cost=6308044.9284
-
- Name=ForestChile6
- Probability=0.1050
- Leaf Node=Leaf6
- Tree node sequence:
- RootNode
- StageTwoHigh
- StageThreeHighLow
- Leaf6
- Stage= Ano1Stage Cost=1676809.2000
- Stage= Ano2Stage Cost=2426489.0370
- Stage= Ano3Stage Cost=1243528.3580
- Stage= Ano4Stage Cost=709942.1831
- Total scenario cost=6056768.7781
-
- Name=ForestChile7
- Probability=0.0330
- Leaf Node=Leaf7
- Tree node sequence:
- RootNode
- StageTwoMedium
- StageThreeMediumHigh
- Leaf7
- Stage= Ano1Stage Cost=1654917.3400
- Stage= Ano2Stage Cost=705413.8620
- Stage= Ano3Stage Cost=1664626.7840
- Stage= Ano4Stage Cost=1738355.4374
- Total scenario cost=5763313.4234
-
- Name=ForestChile8
- Probability=0.0330
- Leaf Node=Leaf8
- Tree node sequence:
- RootNode
- StageTwoMedium
- StageThreeMediumHigh
- Leaf8
- Stage= Ano1Stage Cost=1696849.5000
- Stage= Ano2Stage Cost=1165795.8120
- Stage= Ano3Stage Cost=1682826.4877
- Stage= Ano4Stage Cost=942755.3534
- Total scenario cost=5488227.1530
-
- Name=ForestChile9
- Probability=0.0330
- Leaf Node=Leaf9
- Tree node sequence:
- RootNode
- StageTwoMedium
- StageThreeMediumMedium
- Leaf9
- Stage= Ano1Stage Cost=1696849.5000
- Stage= Ano2Stage Cost=1191750.9525
- Stage= Ano3Stage Cost=1266068.4102
- Stage= Ano4Stage Cost=1117134.7924
- Total scenario cost=5271803.6551
-
-----------------------------------------------------
-***WARNING***: PH exiting with fixed or freed variables in the scenario tree queue whose statuses have not been pushed to the scenario instances. This is because these requests were placed in the queue after the most recent solve. If these statuses are pushed to the scenario instances, a new solution should be obtained in order to reflect accurate solution data within the scenario tree. This warning can be safely ignored in most cases.
-
-Total PH execution time=2.76 seconds
-
-Scenario tree solution written to file=ph_solution.json
-
-Total execution time=4.57 seconds
diff --git a/pyomo/pysp/tests/examples/baselines/TestPHNetworkFlow1ef3.test1.ph_history.json.baseline.gz b/pyomo/pysp/tests/examples/baselines/TestPHNetworkFlow1ef3.test1.ph_history.json.baseline.gz
deleted file mode 100644
index 6247f5a76ea..00000000000
Binary files a/pyomo/pysp/tests/examples/baselines/TestPHNetworkFlow1ef3.test1.ph_history.json.baseline.gz and /dev/null differ
diff --git a/pyomo/pysp/tests/examples/baselines/TestPHNetworkFlow1ef3.test1.ph_solution.json.baseline.gz b/pyomo/pysp/tests/examples/baselines/TestPHNetworkFlow1ef3.test1.ph_solution.json.baseline.gz
deleted file mode 100644
index 11a77cdd1e2..00000000000
Binary files a/pyomo/pysp/tests/examples/baselines/TestPHNetworkFlow1ef3.test1.ph_solution.json.baseline.gz and /dev/null differ
diff --git a/pyomo/pysp/tests/examples/baselines/TestPHNetworkFlow1ef3.test2.ph_history.json.baseline.gz b/pyomo/pysp/tests/examples/baselines/TestPHNetworkFlow1ef3.test2.ph_history.json.baseline.gz
deleted file mode 100644
index 25e5e377049..00000000000
Binary files a/pyomo/pysp/tests/examples/baselines/TestPHNetworkFlow1ef3.test2.ph_history.json.baseline.gz and /dev/null differ
diff --git a/pyomo/pysp/tests/examples/baselines/TestPHNetworkFlow1ef3.test2.ph_solution.json.baseline.gz b/pyomo/pysp/tests/examples/baselines/TestPHNetworkFlow1ef3.test2.ph_solution.json.baseline.gz
deleted file mode 100644
index d4260edeca3..00000000000
Binary files a/pyomo/pysp/tests/examples/baselines/TestPHNetworkFlow1ef3.test2.ph_solution.json.baseline.gz and /dev/null differ
diff --git a/pyomo/pysp/tests/examples/baselines/TestPHNetworkFlow1ef3.test3.ph_history.json.baseline.gz b/pyomo/pysp/tests/examples/baselines/TestPHNetworkFlow1ef3.test3.ph_history.json.baseline.gz
deleted file mode 100644
index 9c2b2865582..00000000000
Binary files a/pyomo/pysp/tests/examples/baselines/TestPHNetworkFlow1ef3.test3.ph_history.json.baseline.gz and /dev/null differ
diff --git a/pyomo/pysp/tests/examples/baselines/TestPHNetworkFlow1ef3.test3.ph_solution.json.baseline.gz b/pyomo/pysp/tests/examples/baselines/TestPHNetworkFlow1ef3.test3.ph_solution.json.baseline.gz
deleted file mode 100644
index 74daf601946..00000000000
Binary files a/pyomo/pysp/tests/examples/baselines/TestPHNetworkFlow1ef3.test3.ph_solution.json.baseline.gz and /dev/null differ
diff --git a/pyomo/pysp/tests/examples/baselines/TestPHNetworkFlow1ef3PHPyro.test1.baseline b/pyomo/pysp/tests/examples/baselines/TestPHNetworkFlow1ef3PHPyro.test1.baseline
deleted file mode 100644
index 10cf3f54702..00000000000
--- a/pyomo/pysp/tests/examples/baselines/TestPHNetworkFlow1ef3PHPyro.test1.baseline
+++ /dev/null
@@ -1,214 +0,0 @@
-*** Pyro Name Server ***
-Name server listening on: ('0.0.0.0', 9090)
-Broadcast server listening on: ('0.0.0.0', 9090)
-URI is: PYRO://10.0.0.14:9090/0a00000e867a20bd7fa077fd940a349f1e
-URI written to: /Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/pyomo/pysp/tests/examples/Pyro_NS_URI
-Name Server started.
-User-defined PH extension module=pyomo.pysp.plugins.phhistoryextension already imported - skipping
-Trying to import module=/Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/examples/pysp/networkflow/config/aggregategetter.py
-Module successfully loaded
-Trying to import module=/Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/examples/pysp/networkflow/config/rhosettermixed.py
-Module successfully loaded
-Trying to import module=/Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/examples/pysp/networkflow/config/xboundsetter.py
-Module successfully loaded
-Dispatcher is ready.
-Attempting to find Pyro dispatcher object...
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI:PYRO://10.0.0.14:7766/0a00000e867b20bd7fa174a236225d9ed7
-This is worker Worker_34430@Ozymandias.local
-Listening for work from dispatcher...
-Dispatcher Object URI:PYRO://10.0.0.14:7766/0a00000e867b20bd7fa174a236225d9ed7
-This is worker Worker_34428@Ozymandias.local
-Listening for work from dispatcher...
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI:PYRO://10.0.0.14:7766/0a00000e867b20bd7fa174a236225d9ed7
-This is worker Worker_34429@Ozymandias.local
-Listening for work from dispatcher...
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI: PYRO://10.0.0.14:7766/0a00000e867b20bd7fa174a236225d9ed7
-This is client 34431@Ozymandias.local
-Initializing PH
-
-Transmitting user aggregate callback invocations to phsolverservers
-Broadcasting final aggregate data to phsolverservers
-Transmitting user rho callback invocations to phsolverservers
-Transmitting user bound callback invocations to phsolverservers
-WW PH Extension: Loading user-specified configuration from file=/Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/examples/pysp/networkflow/config/wwph-immediatefixing.cfg
-WW PH Extension: Loading variable suffixes from file=/Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/examples/pysp/networkflow/config/wwph.suffixes
-User-defined PH solution writer module=pyomo.pysp.plugins.jsonsolutionwriter already imported - skipping
-Starting PH
-
-Initiating PH iteration=0
-Sub-problem solve time statistics - Min: 1.87 Avg: 2.02 Max: 2.22 (seconds)
-Number of discrete variables fixed=0 (total=30)
-Number of continuous variables fixed=0 (total=30)
-Convergence metric= 0.3877 First stage cost avg= 118896.6867 Max-Min=18777.76
-Cumulative run-time=2.69 seconds
-Number of discrete variables fixed before final plugin calls=0 (total=30)
-Number of continuous variables fixed before final plugin calls=0 (total=30)
-PH algorithm history written to file=ph_history.json
-PH complete
-Convergence history:
-Iteration Metric Value
- 0 0.3877
-
-***********************************************************************************************
->>>THE EXPECTED SUM OF THE STAGE COST VARIABLES=150964.0<<<
->>>***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise<<<
-***********************************************************************************************
-Final number of discrete variables fixed=0 (total=30)
-Final number of continuous variables fixed=0 (total=30)
-Final variable values:
- Stage: FirstStage
- (Scenarios: Scenario1 Scenario2 Scenario3 )
- Variable: b0
- Index: [A,B] Values: 1.0000 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- Index: [B,A] Values: 1.0000 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- Index: [B,C] Values: 1.0000 1.0000 0.0000 Max-Min: 1.0000 Avg: 0.6600
- Index: [B,E] Values: 1.0000 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- Index: [C,B] Values: 1.0000 1.0000 0.0000 Max-Min: 1.0000 Avg: 0.6600
- Index: [C,D] Values: 0.0000 0.0000 1.0000 Max-Min: 1.0000 Avg: 0.3400
- Index: [D,C] Values: 0.0000 0.0000 1.0000 Max-Min: 1.0000 Avg: 0.3400
- Index: [D,E] Values: 1.0000 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- Index: [E,B] Values: 1.0000 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- Index: [E,D] Values: 1.0000 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- Index: [E,F] Values: 1.0000 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- Index: [F,E] Values: 1.0000 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- Index: [F,G] Values: 1.0000 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- Index: [F,H] Values: 1.0000 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- Index: [G,F] Values: 1.0000 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- Index: [G,I] Values: 0.0000 1.0000 1.0000 Max-Min: 1.0000 Avg: 0.6700
- Index: [G,J] Values: 1.0000 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- Index: [H,F] Values: 1.0000 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- Index: [H,I] Values: 1.0000 0.0000 0.0000 Max-Min: 1.0000 Avg: 0.3300
- Index: [I,G] Values: 0.0000 1.0000 1.0000 Max-Min: 1.0000 Avg: 0.6700
- Index: [I,H] Values: 1.0000 0.0000 0.0000 Max-Min: 1.0000 Avg: 0.3300
- Index: [I,J] Values: 1.0000 0.0000 0.0000 Max-Min: 1.0000 Avg: 0.3300
- Index: [J,G] Values: 1.0000 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- Index: [J,I] Values: 1.0000 0.0000 0.0000 Max-Min: 1.0000 Avg: 0.3300
- (Scenarios: Scenario1 Scenario2 Scenario3 )
- Variable: x
- Index: [A,B] Values: 34.7300 28.9300 28.5500 Max-Min: 6.1800 Avg: 30.7148
- Index: [B,A] Values: 34.7300 28.9300 28.5500 Max-Min: 6.1800 Avg: 30.7148
- Index: [B,C] Values: 36.5300 28.6800 0.0000 Max-Min: 36.5300 Avg: 21.5193
- Index: [B,E] Values: 82.7400 67.1900 50.7900 Max-Min: 31.9500 Avg: 66.7455
- Index: [C,B] Values: 36.5300 28.6800 0.0000 Max-Min: 36.5300 Avg: 21.5193
- Index: [C,D] Values: 0.0000 -0.0000 28.4100 Max-Min: 28.4100 Avg: 9.6594
- Index: [D,C] Values: 0.0000 -0.0000 28.4100 Max-Min: 28.4100 Avg: 9.6594
- Index: [D,E] Values: 35.3500 28.4200 50.1400 Max-Min: 21.7200 Avg: 38.0917
- Index: [E,B] Values: 82.7400 67.1900 50.7900 Max-Min: 31.9500 Avg: 66.7455
- Index: [E,D] Values: 35.3500 28.4200 50.1400 Max-Min: 21.7200 Avg: 38.0917
- Index: [E,F] Values: 97.0800 79.7500 80.8600 Max-Min: 17.3300 Avg: 85.8463
- Index: [F,E] Values: 97.0800 79.7500 80.8600 Max-Min: 17.3300 Avg: 85.8463
- Index: [F,G] Values: 50.8600 66.5100 66.9000 Max-Min: 16.0400 Avg: 61.4781
- Index: [F,H] Values: 49.0600 28.7700 28.4800 Max-Min: 20.5800 Avg: 35.3671
- Index: [G,F] Values: 50.8600 66.5100 66.9000 Max-Min: 16.0400 Avg: 61.4781
- Index: [G,I] Values: 0.0000 28.4000 28.7500 Max-Min: 28.7500 Avg: 19.1470
- Index: [G,J] Values: 30.7200 28.5700 28.6200 Max-Min: 2.1500 Avg: 29.2965
- Index: [H,F] Values: 49.0600 28.7700 28.4800 Max-Min: 20.5800 Avg: 35.3671
- Index: [H,I] Values: 29.2800 0.0000 0.0000 Max-Min: 29.2800 Avg: 9.6624
- Index: [I,G] Values: 0.0000 28.4000 28.7500 Max-Min: 28.7500 Avg: 19.1470
- Index: [I,H] Values: 29.2800 0.0000 0.0000 Max-Min: 29.2800 Avg: 9.6624
- Index: [I,J] Values: 11.2600 0.0000 0.0000 Max-Min: 11.2600 Avg: 3.7158
- Index: [J,G] Values: 30.7200 28.5700 28.6200 Max-Min: 2.1500 Avg: 29.2965
- Index: [J,I] Values: 11.2600 0.0000 0.0000 Max-Min: 11.2600 Avg: 3.7158
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: Scenario1 Scenario2 Scenario3 )
- Values: 131276.6000 112498.8400 112914.6200 Max-Min: 18777.7600 Avg: 118836.8660
-Final costs:
-Scenario Tree Costs
-***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise
-----------------------------------------------------
-Tree Nodes:
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- Scenario1Node
- Scenario2Node
- Scenario3Node
- Scenarios:
- Scenario1
- Scenario2
- Scenario3
- Expected cost of (sub)tree rooted at node=150964.0000
-
- Name=Scenario1Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3300
- Children:
- None
- Scenarios:
- Scenario1
- Expected cost of (sub)tree rooted at node=18820.0000
-
- Name=Scenario2Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3300
- Children:
- None
- Scenarios:
- Scenario2
- Expected cost of (sub)tree rooted at node=20140.0000
-
- Name=Scenario3Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3400
- Children:
- None
- Scenarios:
- Scenario3
- Expected cost of (sub)tree rooted at node=20090.0000
-
-----------------------------------------------------
-Scenarios:
-
- Name=Scenario1
- Probability=0.3300
- Leaf Node=Scenario1Node
- Tree node sequence:
- RootNode
- Scenario1Node
- Stage= FirstStage Cost=131276.6000
- Stage= SecondStage Cost=18820.0000
- Total scenario cost=150096.6000
-
- Name=Scenario2
- Probability=0.3300
- Leaf Node=Scenario2Node
- Tree node sequence:
- RootNode
- Scenario2Node
- Stage= FirstStage Cost=112498.8400
- Stage= SecondStage Cost=20140.0000
- Total scenario cost=132638.8400
-
- Name=Scenario3
- Probability=0.3400
- Leaf Node=Scenario3Node
- Tree node sequence:
- RootNode
- Scenario3Node
- Stage= FirstStage Cost=112914.6200
- Stage= SecondStage Cost=20090.0000
- Total scenario cost=133004.6200
-
-----------------------------------------------------
-***WARNING***: PH exiting with fixed or freed variables in the scenario tree queue whose statuses have not been pushed to the scenario instances. This is because these requests were placed in the queue after the most recent solve. If these statuses are pushed to the scenario instances, a new solution should be obtained in order to reflect accurate solution data within the scenario tree. This warning can be safely ignored in most cases.
-
-Total PH execution time=3.50 seconds
-
-Scenario tree solution written to file=ph_solution.json
-Shutting down Pyro solver components
-Dispatcher received request to shut down - initiating...
-
-Total execution time=7.92 seconds
-Name Server gracefully stopped.
-Lost connection to dispatch server - shutting down...
-Lost connection to dispatch server - shutting down...
-Lost connection to dispatch server - shutting down...
diff --git a/pyomo/pysp/tests/examples/baselines/TestPHNetworkFlow1ef3PHPyro.test2.baseline b/pyomo/pysp/tests/examples/baselines/TestPHNetworkFlow1ef3PHPyro.test2.baseline
deleted file mode 100644
index 2368cce0ae0..00000000000
--- a/pyomo/pysp/tests/examples/baselines/TestPHNetworkFlow1ef3PHPyro.test2.baseline
+++ /dev/null
@@ -1,212 +0,0 @@
-*** Pyro Name Server ***
-Name server listening on: ('0.0.0.0', 9090)
-Broadcast server listening on: ('0.0.0.0', 9090)
-URI is: PYRO://10.0.0.14:9090/0a00000e869d20bd7fa6bddd50d0a7b69b
-URI written to: /Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/pyomo/pysp/tests/examples/Pyro_NS_URI
-Name Server started.
-User-defined PH extension module=pyomo.pysp.plugins.phhistoryextension already imported - skipping
-Trying to import module=/Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/examples/pysp/networkflow/config/aggregategetter.py
-Module successfully loaded
-Trying to import module=/Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/examples/pysp/networkflow/config/rhosetter0.5.py
-Module successfully loaded
-Trying to import module=/Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/examples/pysp/networkflow/config/xboundsetter.py
-Module successfully loaded
-Dispatcher is ready.
-Attempting to find Pyro dispatcher object...
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI:PYRO://10.0.0.14:7766/0a00000e869e20bd7fa7d7d6d934c2f38b
-This is worker Worker_34465@Ozymandias.local
-Listening for work from dispatcher...
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI:PYRO://10.0.0.14:7766/0a00000e869e20bd7fa7d7d6d934c2f38b
-This is worker Worker_34463@Ozymandias.local
-Listening for work from dispatcher...
-Dispatcher Object URI:PYRO://10.0.0.14:7766/0a00000e869e20bd7fa7d7d6d934c2f38b
-This is worker Worker_34464@Ozymandias.local
-Listening for work from dispatcher...
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI: PYRO://10.0.0.14:7766/0a00000e869e20bd7fa7d7d6d934c2f38b
-This is client 34466@Ozymandias.local
-Initializing PH
-
-Transmitting user aggregate callback invocations to phsolverservers
-Broadcasting final aggregate data to phsolverservers
-Transmitting user rho callback invocations to phsolverservers
-Transmitting user bound callback invocations to phsolverservers
-WW PH Extension: Loading user-specified configuration from file=/Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/examples/pysp/networkflow/config/wwph-aggressivefixing.cfg
-User-defined PH solution writer module=pyomo.pysp.plugins.jsonsolutionwriter already imported - skipping
-Starting PH
-
-Initiating PH iteration=0
-Sub-problem solve time statistics - Min: 1.85 Avg: 1.95 Max: 2.14 (seconds)
-Number of discrete variables fixed=0 (total=30)
-Number of continuous variables fixed=0 (total=30)
-Convergence metric= 0.3877 First stage cost avg= 118896.6867 Max-Min=18777.76
-Cumulative run-time=2.55 seconds
-Number of discrete variables fixed before final plugin calls=0 (total=30)
-Number of continuous variables fixed before final plugin calls=0 (total=30)
-PH algorithm history written to file=ph_history.json
-PH complete
-Convergence history:
-Iteration Metric Value
- 0 0.3877
-
-***********************************************************************************************
->>>THE EXPECTED SUM OF THE STAGE COST VARIABLES=150964.0<<<
->>>***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise<<<
-***********************************************************************************************
-Final number of discrete variables fixed=0 (total=30)
-Final number of continuous variables fixed=0 (total=30)
-Final variable values:
- Stage: FirstStage
- (Scenarios: Scenario1 Scenario2 Scenario3 )
- Variable: b0
- Index: [A,B] Values: 1.0000 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- Index: [B,A] Values: 1.0000 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- Index: [B,C] Values: 1.0000 1.0000 0.0000 Max-Min: 1.0000 Avg: 0.6600
- Index: [B,E] Values: 1.0000 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- Index: [C,B] Values: 1.0000 1.0000 0.0000 Max-Min: 1.0000 Avg: 0.6600
- Index: [C,D] Values: 0.0000 0.0000 1.0000 Max-Min: 1.0000 Avg: 0.3400
- Index: [D,C] Values: 0.0000 0.0000 1.0000 Max-Min: 1.0000 Avg: 0.3400
- Index: [D,E] Values: 1.0000 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- Index: [E,B] Values: 1.0000 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- Index: [E,D] Values: 1.0000 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- Index: [E,F] Values: 1.0000 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- Index: [F,E] Values: 1.0000 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- Index: [F,G] Values: 1.0000 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- Index: [F,H] Values: 1.0000 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- Index: [G,F] Values: 1.0000 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- Index: [G,I] Values: 0.0000 1.0000 1.0000 Max-Min: 1.0000 Avg: 0.6700
- Index: [G,J] Values: 1.0000 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- Index: [H,F] Values: 1.0000 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- Index: [H,I] Values: 1.0000 0.0000 0.0000 Max-Min: 1.0000 Avg: 0.3300
- Index: [I,G] Values: 0.0000 1.0000 1.0000 Max-Min: 1.0000 Avg: 0.6700
- Index: [I,H] Values: 1.0000 0.0000 0.0000 Max-Min: 1.0000 Avg: 0.3300
- Index: [I,J] Values: 1.0000 0.0000 0.0000 Max-Min: 1.0000 Avg: 0.3300
- Index: [J,G] Values: 1.0000 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- Index: [J,I] Values: 1.0000 0.0000 0.0000 Max-Min: 1.0000 Avg: 0.3300
- (Scenarios: Scenario1 Scenario2 Scenario3 )
- Variable: x
- Index: [A,B] Values: 34.7300 28.9300 28.5500 Max-Min: 6.1800 Avg: 30.7148
- Index: [B,A] Values: 34.7300 28.9300 28.5500 Max-Min: 6.1800 Avg: 30.7148
- Index: [B,C] Values: 36.5300 28.6800 0.0000 Max-Min: 36.5300 Avg: 21.5193
- Index: [B,E] Values: 82.7400 67.1900 50.7900 Max-Min: 31.9500 Avg: 66.7455
- Index: [C,B] Values: 36.5300 28.6800 0.0000 Max-Min: 36.5300 Avg: 21.5193
- Index: [C,D] Values: 0.0000 -0.0000 28.4100 Max-Min: 28.4100 Avg: 9.6594
- Index: [D,C] Values: 0.0000 -0.0000 28.4100 Max-Min: 28.4100 Avg: 9.6594
- Index: [D,E] Values: 35.3500 28.4200 50.1400 Max-Min: 21.7200 Avg: 38.0917
- Index: [E,B] Values: 82.7400 67.1900 50.7900 Max-Min: 31.9500 Avg: 66.7455
- Index: [E,D] Values: 35.3500 28.4200 50.1400 Max-Min: 21.7200 Avg: 38.0917
- Index: [E,F] Values: 97.0800 79.7500 80.8600 Max-Min: 17.3300 Avg: 85.8463
- Index: [F,E] Values: 97.0800 79.7500 80.8600 Max-Min: 17.3300 Avg: 85.8463
- Index: [F,G] Values: 50.8600 66.5100 66.9000 Max-Min: 16.0400 Avg: 61.4781
- Index: [F,H] Values: 49.0600 28.7700 28.4800 Max-Min: 20.5800 Avg: 35.3671
- Index: [G,F] Values: 50.8600 66.5100 66.9000 Max-Min: 16.0400 Avg: 61.4781
- Index: [G,I] Values: 0.0000 28.4000 28.7500 Max-Min: 28.7500 Avg: 19.1470
- Index: [G,J] Values: 30.7200 28.5700 28.6200 Max-Min: 2.1500 Avg: 29.2965
- Index: [H,F] Values: 49.0600 28.7700 28.4800 Max-Min: 20.5800 Avg: 35.3671
- Index: [H,I] Values: 29.2800 0.0000 0.0000 Max-Min: 29.2800 Avg: 9.6624
- Index: [I,G] Values: 0.0000 28.4000 28.7500 Max-Min: 28.7500 Avg: 19.1470
- Index: [I,H] Values: 29.2800 0.0000 0.0000 Max-Min: 29.2800 Avg: 9.6624
- Index: [I,J] Values: 11.2600 0.0000 0.0000 Max-Min: 11.2600 Avg: 3.7158
- Index: [J,G] Values: 30.7200 28.5700 28.6200 Max-Min: 2.1500 Avg: 29.2965
- Index: [J,I] Values: 11.2600 0.0000 0.0000 Max-Min: 11.2600 Avg: 3.7158
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: Scenario1 Scenario2 Scenario3 )
- Values: 131276.6000 112498.8400 112914.6200 Max-Min: 18777.7600 Avg: 118836.8660
-Final costs:
-Scenario Tree Costs
-***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise
-----------------------------------------------------
-Tree Nodes:
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- Scenario1Node
- Scenario2Node
- Scenario3Node
- Scenarios:
- Scenario1
- Scenario2
- Scenario3
- Expected cost of (sub)tree rooted at node=150964.0000
-
- Name=Scenario1Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3300
- Children:
- None
- Scenarios:
- Scenario1
- Expected cost of (sub)tree rooted at node=18820.0000
-
- Name=Scenario2Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3300
- Children:
- None
- Scenarios:
- Scenario2
- Expected cost of (sub)tree rooted at node=20140.0000
-
- Name=Scenario3Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3400
- Children:
- None
- Scenarios:
- Scenario3
- Expected cost of (sub)tree rooted at node=20090.0000
-
-----------------------------------------------------
-Scenarios:
-
- Name=Scenario1
- Probability=0.3300
- Leaf Node=Scenario1Node
- Tree node sequence:
- RootNode
- Scenario1Node
- Stage= FirstStage Cost=131276.6000
- Stage= SecondStage Cost=18820.0000
- Total scenario cost=150096.6000
-
- Name=Scenario2
- Probability=0.3300
- Leaf Node=Scenario2Node
- Tree node sequence:
- RootNode
- Scenario2Node
- Stage= FirstStage Cost=112498.8400
- Stage= SecondStage Cost=20140.0000
- Total scenario cost=132638.8400
-
- Name=Scenario3
- Probability=0.3400
- Leaf Node=Scenario3Node
- Tree node sequence:
- RootNode
- Scenario3Node
- Stage= FirstStage Cost=112914.6200
- Stage= SecondStage Cost=20090.0000
- Total scenario cost=133004.6200
-
-----------------------------------------------------
-
-Total PH execution time=3.29 seconds
-
-Scenario tree solution written to file=ph_solution.json
-Shutting down Pyro solver components
-Dispatcher received request to shut down - initiating...
-
-Total execution time=7.63 seconds
-Name Server gracefully stopped.
-Lost connection to dispatch server - shutting down...
-Lost connection to dispatch server - shutting down...
-Lost connection to dispatch server - shutting down...
diff --git a/pyomo/pysp/tests/examples/baselines/TestPHNetworkFlow1ef3PHPyro.test3.baseline b/pyomo/pysp/tests/examples/baselines/TestPHNetworkFlow1ef3PHPyro.test3.baseline
deleted file mode 100644
index ab85f6b305a..00000000000
--- a/pyomo/pysp/tests/examples/baselines/TestPHNetworkFlow1ef3PHPyro.test3.baseline
+++ /dev/null
@@ -1,212 +0,0 @@
-*** Pyro Name Server ***
-Name server listening on: ('0.0.0.0', 9090)
-Broadcast server listening on: ('0.0.0.0', 9090)
-URI is: PYRO://10.0.0.14:9090/0a00000e86c020bd7fad08b797b86f0575
-URI written to: /Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/pyomo/pysp/tests/examples/Pyro_NS_URI
-Name Server started.
-User-defined PH extension module=pyomo.pysp.plugins.phhistoryextension already imported - skipping
-Trying to import module=/Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/examples/pysp/networkflow/config/aggregategetter.py
-Module successfully loaded
-Trying to import module=/Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/examples/pysp/networkflow/config/rhosetter1.0.py
-Module successfully loaded
-Trying to import module=/Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/examples/pysp/networkflow/config/xboundsetter.py
-Module successfully loaded
-Dispatcher is ready.
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI:PYRO://10.0.0.14:7766/0a00000e86c120bd7fae266f72777569e6
-This is worker Worker_34498@Ozymandias.local
-Listening for work from dispatcher...
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI:PYRO://10.0.0.14:7766/0a00000e86c120bd7fae266f72777569e6
-This is worker Worker_34500@Ozymandias.local
-Listening for work from dispatcher...
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI:PYRO://10.0.0.14:7766/0a00000e86c120bd7fae266f72777569e6
-This is worker Worker_34499@Ozymandias.local
-Listening for work from dispatcher...
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI: PYRO://10.0.0.14:7766/0a00000e86c120bd7fae266f72777569e6
-This is client 34501@Ozymandias.local
-Initializing PH
-
-Transmitting user aggregate callback invocations to phsolverservers
-Broadcasting final aggregate data to phsolverservers
-Transmitting user rho callback invocations to phsolverservers
-Transmitting user bound callback invocations to phsolverservers
-WW PH Extension: Loading user-specified configuration from file=/Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/examples/pysp/networkflow/config/wwph-mipgaponly.cfg
-User-defined PH solution writer module=pyomo.pysp.plugins.jsonsolutionwriter already imported - skipping
-Starting PH
-
-Initiating PH iteration=0
-Sub-problem solve time statistics - Min: 1.45 Avg: 1.69 Max: 1.88 (seconds)
-Number of discrete variables fixed=0 (total=30)
-Number of continuous variables fixed=0 (total=30)
-Convergence metric= 0.3877 First stage cost avg= 118896.6867 Max-Min=18777.76
-Cumulative run-time=2.32 seconds
-Number of discrete variables fixed before final plugin calls=0 (total=30)
-Number of continuous variables fixed before final plugin calls=0 (total=30)
-PH algorithm history written to file=ph_history.json
-PH complete
-Convergence history:
-Iteration Metric Value
- 0 0.3877
-
-***********************************************************************************************
->>>THE EXPECTED SUM OF THE STAGE COST VARIABLES=150964.0<<<
->>>***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise<<<
-***********************************************************************************************
-Final number of discrete variables fixed=0 (total=30)
-Final number of continuous variables fixed=0 (total=30)
-Final variable values:
- Stage: FirstStage
- (Scenarios: Scenario1 Scenario2 Scenario3 )
- Variable: b0
- Index: [A,B] Values: 1.0000 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- Index: [B,A] Values: 1.0000 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- Index: [B,C] Values: 1.0000 1.0000 0.0000 Max-Min: 1.0000 Avg: 0.6600
- Index: [B,E] Values: 1.0000 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- Index: [C,B] Values: 1.0000 1.0000 0.0000 Max-Min: 1.0000 Avg: 0.6600
- Index: [C,D] Values: 0.0000 0.0000 1.0000 Max-Min: 1.0000 Avg: 0.3400
- Index: [D,C] Values: 0.0000 0.0000 1.0000 Max-Min: 1.0000 Avg: 0.3400
- Index: [D,E] Values: 1.0000 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- Index: [E,B] Values: 1.0000 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- Index: [E,D] Values: 1.0000 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- Index: [E,F] Values: 1.0000 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- Index: [F,E] Values: 1.0000 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- Index: [F,G] Values: 1.0000 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- Index: [F,H] Values: 1.0000 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- Index: [G,F] Values: 1.0000 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- Index: [G,I] Values: 0.0000 1.0000 1.0000 Max-Min: 1.0000 Avg: 0.6700
- Index: [G,J] Values: 1.0000 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- Index: [H,F] Values: 1.0000 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- Index: [H,I] Values: 1.0000 0.0000 0.0000 Max-Min: 1.0000 Avg: 0.3300
- Index: [I,G] Values: 0.0000 1.0000 1.0000 Max-Min: 1.0000 Avg: 0.6700
- Index: [I,H] Values: 1.0000 0.0000 0.0000 Max-Min: 1.0000 Avg: 0.3300
- Index: [I,J] Values: 1.0000 0.0000 0.0000 Max-Min: 1.0000 Avg: 0.3300
- Index: [J,G] Values: 1.0000 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- Index: [J,I] Values: 1.0000 0.0000 0.0000 Max-Min: 1.0000 Avg: 0.3300
- (Scenarios: Scenario1 Scenario2 Scenario3 )
- Variable: x
- Index: [A,B] Values: 34.7300 28.9300 28.5500 Max-Min: 6.1800 Avg: 30.7148
- Index: [B,A] Values: 34.7300 28.9300 28.5500 Max-Min: 6.1800 Avg: 30.7148
- Index: [B,C] Values: 36.5300 28.6800 0.0000 Max-Min: 36.5300 Avg: 21.5193
- Index: [B,E] Values: 82.7400 67.1900 50.7900 Max-Min: 31.9500 Avg: 66.7455
- Index: [C,B] Values: 36.5300 28.6800 0.0000 Max-Min: 36.5300 Avg: 21.5193
- Index: [C,D] Values: 0.0000 -0.0000 28.4100 Max-Min: 28.4100 Avg: 9.6594
- Index: [D,C] Values: 0.0000 -0.0000 28.4100 Max-Min: 28.4100 Avg: 9.6594
- Index: [D,E] Values: 35.3500 28.4200 50.1400 Max-Min: 21.7200 Avg: 38.0917
- Index: [E,B] Values: 82.7400 67.1900 50.7900 Max-Min: 31.9500 Avg: 66.7455
- Index: [E,D] Values: 35.3500 28.4200 50.1400 Max-Min: 21.7200 Avg: 38.0917
- Index: [E,F] Values: 97.0800 79.7500 80.8600 Max-Min: 17.3300 Avg: 85.8463
- Index: [F,E] Values: 97.0800 79.7500 80.8600 Max-Min: 17.3300 Avg: 85.8463
- Index: [F,G] Values: 50.8600 66.5100 66.9000 Max-Min: 16.0400 Avg: 61.4781
- Index: [F,H] Values: 49.0600 28.7700 28.4800 Max-Min: 20.5800 Avg: 35.3671
- Index: [G,F] Values: 50.8600 66.5100 66.9000 Max-Min: 16.0400 Avg: 61.4781
- Index: [G,I] Values: 0.0000 28.4000 28.7500 Max-Min: 28.7500 Avg: 19.1470
- Index: [G,J] Values: 30.7200 28.5700 28.6200 Max-Min: 2.1500 Avg: 29.2965
- Index: [H,F] Values: 49.0600 28.7700 28.4800 Max-Min: 20.5800 Avg: 35.3671
- Index: [H,I] Values: 29.2800 0.0000 0.0000 Max-Min: 29.2800 Avg: 9.6624
- Index: [I,G] Values: 0.0000 28.4000 28.7500 Max-Min: 28.7500 Avg: 19.1470
- Index: [I,H] Values: 29.2800 0.0000 0.0000 Max-Min: 29.2800 Avg: 9.6624
- Index: [I,J] Values: 11.2600 0.0000 0.0000 Max-Min: 11.2600 Avg: 3.7158
- Index: [J,G] Values: 30.7200 28.5700 28.6200 Max-Min: 2.1500 Avg: 29.2965
- Index: [J,I] Values: 11.2600 0.0000 0.0000 Max-Min: 11.2600 Avg: 3.7158
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: Scenario1 Scenario2 Scenario3 )
- Values: 131276.6000 112498.8400 112914.6200 Max-Min: 18777.7600 Avg: 118836.8660
-Final costs:
-Scenario Tree Costs
-***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise
-----------------------------------------------------
-Tree Nodes:
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- Scenario1Node
- Scenario2Node
- Scenario3Node
- Scenarios:
- Scenario1
- Scenario2
- Scenario3
- Expected cost of (sub)tree rooted at node=150964.0000
-
- Name=Scenario1Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3300
- Children:
- None
- Scenarios:
- Scenario1
- Expected cost of (sub)tree rooted at node=18820.0000
-
- Name=Scenario2Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3300
- Children:
- None
- Scenarios:
- Scenario2
- Expected cost of (sub)tree rooted at node=20140.0000
-
- Name=Scenario3Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3400
- Children:
- None
- Scenarios:
- Scenario3
- Expected cost of (sub)tree rooted at node=20090.0000
-
-----------------------------------------------------
-Scenarios:
-
- Name=Scenario1
- Probability=0.3300
- Leaf Node=Scenario1Node
- Tree node sequence:
- RootNode
- Scenario1Node
- Stage= FirstStage Cost=131276.6000
- Stage= SecondStage Cost=18820.0000
- Total scenario cost=150096.6000
-
- Name=Scenario2
- Probability=0.3300
- Leaf Node=Scenario2Node
- Tree node sequence:
- RootNode
- Scenario2Node
- Stage= FirstStage Cost=112498.8400
- Stage= SecondStage Cost=20140.0000
- Total scenario cost=132638.8400
-
- Name=Scenario3
- Probability=0.3400
- Leaf Node=Scenario3Node
- Tree node sequence:
- RootNode
- Scenario3Node
- Stage= FirstStage Cost=112914.6200
- Stage= SecondStage Cost=20090.0000
- Total scenario cost=133004.6200
-
-----------------------------------------------------
-
-Total PH execution time=3.06 seconds
-
-Scenario tree solution written to file=ph_solution.json
-Shutting down Pyro solver components
-Dispatcher received request to shut down - initiating...
-
-Total execution time=7.44 seconds
-Name Server gracefully stopped.
-Lost connection to dispatch server - shutting down...
-Lost connection to dispatch server - shutting down...
-Lost connection to dispatch server - shutting down...
diff --git a/pyomo/pysp/tests/examples/baselines/TestPHNetworkFlow1ef3Pyro.test1.baseline b/pyomo/pysp/tests/examples/baselines/TestPHNetworkFlow1ef3Pyro.test1.baseline
deleted file mode 100644
index 1f2e33e0946..00000000000
--- a/pyomo/pysp/tests/examples/baselines/TestPHNetworkFlow1ef3Pyro.test1.baseline
+++ /dev/null
@@ -1,209 +0,0 @@
-*** Pyro Name Server ***
-Name server listening on: ('0.0.0.0', 9090)
-Broadcast server listening on: ('0.0.0.0', 9090)
-URI is: PYRO://10.0.0.14:9090/0a00000e870920bd7fb8924ff622509753
-URI written to: /Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/pyomo/pysp/tests/examples/Pyro_NS_URI
-Name Server started.
-User-defined PH extension module=pyomo.pysp.plugins.phhistoryextension already imported - skipping
-Trying to import module=/Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/examples/pysp/networkflow/config/aggregategetter.py
-Module successfully loaded
-Trying to import module=/Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/examples/pysp/networkflow/config/rhosettermixed.py
-Module successfully loaded
-Trying to import module=/Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/examples/pysp/networkflow/config/xboundsetter.py
-Module successfully loaded
-Dispatcher is ready.
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI:PYRO://10.0.0.14:7766/0a00000e870a20bd7fb9b48fd8fc5c7be3
-This is worker Worker_34571@Ozymandias.local
-Listening for work from dispatcher...
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI: PYRO://10.0.0.14:7766/0a00000e870a20bd7fb9b48fd8fc5c7be3
-This is client 34572@Ozymandias.local
-Initializing PH
-
-Executing user aggregate getter callback function
-Executing user rho setter callback function
-Executing user bound setter callback function
-WW PH Extension: Loading user-specified configuration from file=/Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/examples/pysp/networkflow/config/wwph-immediatefixing.cfg
-WW PH Extension: Loading variable suffixes from file=/Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/examples/pysp/networkflow/config/wwph.suffixes
-User-defined PH solution writer module=pyomo.pysp.plugins.jsonsolutionwriter already imported - skipping
-Starting PH
-
-Initiating PH iteration=0
-2014-07-23 23:09:40.839713: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpnDnQVU.tmpdaBg7_.pyomo.lp
-2014-07-23 23:09:41.681842: Solve completed - number of solutions=1
-2014-07-23 23:09:41.723598: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpagVBmB.tmpOAR_LT.pyomo.lp
-2014-07-23 23:09:42.700181: Solve completed - number of solutions=1
-2014-07-23 23:09:42.726088: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp4i9kGf.tmpjvO3r7.pyomo.lp
-2014-07-23 23:09:43.370332: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.56 Avg: 0.74 Max: 0.89 (seconds)
-Number of discrete variables fixed=0 (total=30)
-Number of continuous variables fixed=0 (total=30)
-Convergence metric= 0.3877 First stage cost avg= 118896.6867 Max-Min=18777.76
-Cumulative run-time=3.08 seconds
-Number of discrete variables fixed before final plugin calls=0 (total=30)
-Number of continuous variables fixed before final plugin calls=0 (total=30)
-PH algorithm history written to file=ph_history.json
-PH complete
-Convergence history:
-Iteration Metric Value
- 0 0.3877
-
-***********************************************************************************************
->>>THE EXPECTED SUM OF THE STAGE COST VARIABLES=150964.0<<<
->>>***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise<<<
-***********************************************************************************************
-Final number of discrete variables fixed=0 (total=30)
-Final number of continuous variables fixed=0 (total=30)
-Final variable values:
- Stage: FirstStage
- (Scenarios: Scenario1 Scenario2 Scenario3 )
- Variable: b0
- Index: [A,B] Values: 1.0000 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- Index: [B,A] Values: 1.0000 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- Index: [B,C] Values: 1.0000 1.0000 0.0000 Max-Min: 1.0000 Avg: 0.6600
- Index: [B,E] Values: 1.0000 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- Index: [C,B] Values: 1.0000 1.0000 0.0000 Max-Min: 1.0000 Avg: 0.6600
- Index: [C,D] Values: 0.0000 0.0000 1.0000 Max-Min: 1.0000 Avg: 0.3400
- Index: [D,C] Values: 0.0000 0.0000 1.0000 Max-Min: 1.0000 Avg: 0.3400
- Index: [D,E] Values: 1.0000 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- Index: [E,B] Values: 1.0000 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- Index: [E,D] Values: 1.0000 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- Index: [E,F] Values: 1.0000 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- Index: [F,E] Values: 1.0000 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- Index: [F,G] Values: 1.0000 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- Index: [F,H] Values: 1.0000 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- Index: [G,F] Values: 1.0000 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- Index: [G,I] Values: 0.0000 1.0000 1.0000 Max-Min: 1.0000 Avg: 0.6700
- Index: [G,J] Values: 1.0000 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- Index: [H,F] Values: 1.0000 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- Index: [H,I] Values: 1.0000 0.0000 0.0000 Max-Min: 1.0000 Avg: 0.3300
- Index: [I,G] Values: 0.0000 1.0000 1.0000 Max-Min: 1.0000 Avg: 0.6700
- Index: [I,H] Values: 1.0000 0.0000 0.0000 Max-Min: 1.0000 Avg: 0.3300
- Index: [I,J] Values: 1.0000 0.0000 0.0000 Max-Min: 1.0000 Avg: 0.3300
- Index: [J,G] Values: 1.0000 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- Index: [J,I] Values: 1.0000 0.0000 0.0000 Max-Min: 1.0000 Avg: 0.3300
- (Scenarios: Scenario1 Scenario2 Scenario3 )
- Variable: x
- Index: [A,B] Values: 34.7300 28.9300 28.5500 Max-Min: 6.1800 Avg: 30.7148
- Index: [B,A] Values: 34.7300 28.9300 28.5500 Max-Min: 6.1800 Avg: 30.7148
- Index: [B,C] Values: 36.5300 28.6800 0.0000 Max-Min: 36.5300 Avg: 21.5193
- Index: [B,E] Values: 82.7400 67.1900 50.7900 Max-Min: 31.9500 Avg: 66.7455
- Index: [C,B] Values: 36.5300 28.6800 0.0000 Max-Min: 36.5300 Avg: 21.5193
- Index: [C,D] Values: 0.0000 -0.0000 28.4100 Max-Min: 28.4100 Avg: 9.6594
- Index: [D,C] Values: 0.0000 -0.0000 28.4100 Max-Min: 28.4100 Avg: 9.6594
- Index: [D,E] Values: 35.3500 28.4200 50.1400 Max-Min: 21.7200 Avg: 38.0917
- Index: [E,B] Values: 82.7400 67.1900 50.7900 Max-Min: 31.9500 Avg: 66.7455
- Index: [E,D] Values: 35.3500 28.4200 50.1400 Max-Min: 21.7200 Avg: 38.0917
- Index: [E,F] Values: 97.0800 79.7500 80.8600 Max-Min: 17.3300 Avg: 85.8463
- Index: [F,E] Values: 97.0800 79.7500 80.8600 Max-Min: 17.3300 Avg: 85.8463
- Index: [F,G] Values: 50.8600 66.5100 66.9000 Max-Min: 16.0400 Avg: 61.4781
- Index: [F,H] Values: 49.0600 28.7700 28.4800 Max-Min: 20.5800 Avg: 35.3671
- Index: [G,F] Values: 50.8600 66.5100 66.9000 Max-Min: 16.0400 Avg: 61.4781
- Index: [G,I] Values: 0.0000 28.4000 28.7500 Max-Min: 28.7500 Avg: 19.1470
- Index: [G,J] Values: 30.7200 28.5700 28.6200 Max-Min: 2.1500 Avg: 29.2965
- Index: [H,F] Values: 49.0600 28.7700 28.4800 Max-Min: 20.5800 Avg: 35.3671
- Index: [H,I] Values: 29.2800 0.0000 0.0000 Max-Min: 29.2800 Avg: 9.6624
- Index: [I,G] Values: 0.0000 28.4000 28.7500 Max-Min: 28.7500 Avg: 19.1470
- Index: [I,H] Values: 29.2800 0.0000 0.0000 Max-Min: 29.2800 Avg: 9.6624
- Index: [I,J] Values: 11.2600 0.0000 0.0000 Max-Min: 11.2600 Avg: 3.7158
- Index: [J,G] Values: 30.7200 28.5700 28.6200 Max-Min: 2.1500 Avg: 29.2965
- Index: [J,I] Values: 11.2600 0.0000 0.0000 Max-Min: 11.2600 Avg: 3.7158
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: Scenario1 Scenario2 Scenario3 )
- Values: 131276.6000 112498.8400 112914.6200 Max-Min: 18777.7600 Avg: 118836.8660
-Final costs:
-Scenario Tree Costs
-***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise
-----------------------------------------------------
-Tree Nodes:
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- Scenario1Node
- Scenario2Node
- Scenario3Node
- Scenarios:
- Scenario1
- Scenario2
- Scenario3
- Expected cost of (sub)tree rooted at node=150964.0000
-
- Name=Scenario1Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3300
- Children:
- None
- Scenarios:
- Scenario1
- Expected cost of (sub)tree rooted at node=18820.0000
-
- Name=Scenario2Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3300
- Children:
- None
- Scenarios:
- Scenario2
- Expected cost of (sub)tree rooted at node=20140.0000
-
- Name=Scenario3Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3400
- Children:
- None
- Scenarios:
- Scenario3
- Expected cost of (sub)tree rooted at node=20090.0000
-
-----------------------------------------------------
-Scenarios:
-
- Name=Scenario1
- Probability=0.3300
- Leaf Node=Scenario1Node
- Tree node sequence:
- RootNode
- Scenario1Node
- Stage= FirstStage Cost=131276.6000
- Stage= SecondStage Cost=18820.0000
- Total scenario cost=150096.6000
-
- Name=Scenario2
- Probability=0.3300
- Leaf Node=Scenario2Node
- Tree node sequence:
- RootNode
- Scenario2Node
- Stage= FirstStage Cost=112498.8400
- Stage= SecondStage Cost=20140.0000
- Total scenario cost=132638.8400
-
- Name=Scenario3
- Probability=0.3400
- Leaf Node=Scenario3Node
- Tree node sequence:
- RootNode
- Scenario3Node
- Stage= FirstStage Cost=112914.6200
- Stage= SecondStage Cost=20090.0000
- Total scenario cost=133004.6200
-
-----------------------------------------------------
-***WARNING***: PH exiting with fixed or freed variables in the scenario tree queue whose statuses have not been pushed to the scenario instances. This is because these requests were placed in the queue after the most recent solve. If these statuses are pushed to the scenario instances, a new solution should be obtained in order to reflect accurate solution data within the scenario tree. This warning can be safely ignored in most cases.
-
-Total PH execution time=3.77 seconds
-
-Scenario tree solution written to file=ph_solution.json
-Shutting down Pyro solver components
-Dispatcher received request to shut down - initiating...
-
-Total execution time=8.01 seconds
-Name Server gracefully stopped.
-Lost connection to dispatch server - shutting down...
diff --git a/pyomo/pysp/tests/examples/baselines/TestPHNetworkFlow1ef3Pyro.test2.baseline b/pyomo/pysp/tests/examples/baselines/TestPHNetworkFlow1ef3Pyro.test2.baseline
deleted file mode 100644
index 585ddb09d12..00000000000
--- a/pyomo/pysp/tests/examples/baselines/TestPHNetworkFlow1ef3Pyro.test2.baseline
+++ /dev/null
@@ -1,207 +0,0 @@
-*** Pyro Name Server ***
-Name server listening on: ('0.0.0.0', 9090)
-Broadcast server listening on: ('0.0.0.0', 9090)
-URI is: PYRO://10.0.0.14:9090/0a00000e871e20bd7fbed784cb28d27dd9
-URI written to: /Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/pyomo/pysp/tests/examples/Pyro_NS_URI
-Name Server started.
-User-defined PH extension module=pyomo.pysp.plugins.phhistoryextension already imported - skipping
-Trying to import module=/Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/examples/pysp/networkflow/config/aggregategetter.py
-Module successfully loaded
-Trying to import module=/Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/examples/pysp/networkflow/config/rhosetter0.5.py
-Module successfully loaded
-Trying to import module=/Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/examples/pysp/networkflow/config/xboundsetter.py
-Module successfully loaded
-Dispatcher is ready.
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI:PYRO://10.0.0.14:7766/0a00000e871f20bd7fbff9684417b94ae9
-This is worker Worker_34592@Ozymandias.local
-Listening for work from dispatcher...
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI: PYRO://10.0.0.14:7766/0a00000e871f20bd7fbff9684417b94ae9
-This is client 34593@Ozymandias.local
-Initializing PH
-
-Executing user aggregate getter callback function
-Executing user rho setter callback function
-Executing user bound setter callback function
-WW PH Extension: Loading user-specified configuration from file=/Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/examples/pysp/networkflow/config/wwph-aggressivefixing.cfg
-User-defined PH solution writer module=pyomo.pysp.plugins.jsonsolutionwriter already imported - skipping
-Starting PH
-
-Initiating PH iteration=0
-2014-07-23 23:09:56.933013: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpQ6oniz.tmpEAuic1.pyomo.lp
-2014-07-23 23:09:57.847646: Solve completed - number of solutions=1
-2014-07-23 23:09:57.889048: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpe6rNRE.tmp7_t6qD.pyomo.lp
-2014-07-23 23:09:58.951793: Solve completed - number of solutions=1
-2014-07-23 23:09:58.976525: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpoXiKLR.tmpBBR0AA.pyomo.lp
-2014-07-23 23:09:59.639068: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.58 Avg: 0.80 Max: 0.98 (seconds)
-Number of discrete variables fixed=0 (total=30)
-Number of continuous variables fixed=0 (total=30)
-Convergence metric= 0.3877 First stage cost avg= 118896.6867 Max-Min=18777.76
-Cumulative run-time=3.27 seconds
-Number of discrete variables fixed before final plugin calls=0 (total=30)
-Number of continuous variables fixed before final plugin calls=0 (total=30)
-PH algorithm history written to file=ph_history.json
-PH complete
-Convergence history:
-Iteration Metric Value
- 0 0.3877
-
-***********************************************************************************************
->>>THE EXPECTED SUM OF THE STAGE COST VARIABLES=150964.0<<<
->>>***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise<<<
-***********************************************************************************************
-Final number of discrete variables fixed=0 (total=30)
-Final number of continuous variables fixed=0 (total=30)
-Final variable values:
- Stage: FirstStage
- (Scenarios: Scenario1 Scenario2 Scenario3 )
- Variable: b0
- Index: [A,B] Values: 1.0000 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- Index: [B,A] Values: 1.0000 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- Index: [B,C] Values: 1.0000 1.0000 0.0000 Max-Min: 1.0000 Avg: 0.6600
- Index: [B,E] Values: 1.0000 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- Index: [C,B] Values: 1.0000 1.0000 0.0000 Max-Min: 1.0000 Avg: 0.6600
- Index: [C,D] Values: 0.0000 0.0000 1.0000 Max-Min: 1.0000 Avg: 0.3400
- Index: [D,C] Values: 0.0000 0.0000 1.0000 Max-Min: 1.0000 Avg: 0.3400
- Index: [D,E] Values: 1.0000 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- Index: [E,B] Values: 1.0000 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- Index: [E,D] Values: 1.0000 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- Index: [E,F] Values: 1.0000 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- Index: [F,E] Values: 1.0000 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- Index: [F,G] Values: 1.0000 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- Index: [F,H] Values: 1.0000 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- Index: [G,F] Values: 1.0000 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- Index: [G,I] Values: 0.0000 1.0000 1.0000 Max-Min: 1.0000 Avg: 0.6700
- Index: [G,J] Values: 1.0000 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- Index: [H,F] Values: 1.0000 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- Index: [H,I] Values: 1.0000 0.0000 0.0000 Max-Min: 1.0000 Avg: 0.3300
- Index: [I,G] Values: 0.0000 1.0000 1.0000 Max-Min: 1.0000 Avg: 0.6700
- Index: [I,H] Values: 1.0000 0.0000 0.0000 Max-Min: 1.0000 Avg: 0.3300
- Index: [I,J] Values: 1.0000 0.0000 0.0000 Max-Min: 1.0000 Avg: 0.3300
- Index: [J,G] Values: 1.0000 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- Index: [J,I] Values: 1.0000 0.0000 0.0000 Max-Min: 1.0000 Avg: 0.3300
- (Scenarios: Scenario1 Scenario2 Scenario3 )
- Variable: x
- Index: [A,B] Values: 34.7300 28.9300 28.5500 Max-Min: 6.1800 Avg: 30.7148
- Index: [B,A] Values: 34.7300 28.9300 28.5500 Max-Min: 6.1800 Avg: 30.7148
- Index: [B,C] Values: 36.5300 28.6800 0.0000 Max-Min: 36.5300 Avg: 21.5193
- Index: [B,E] Values: 82.7400 67.1900 50.7900 Max-Min: 31.9500 Avg: 66.7455
- Index: [C,B] Values: 36.5300 28.6800 0.0000 Max-Min: 36.5300 Avg: 21.5193
- Index: [C,D] Values: 0.0000 -0.0000 28.4100 Max-Min: 28.4100 Avg: 9.6594
- Index: [D,C] Values: 0.0000 -0.0000 28.4100 Max-Min: 28.4100 Avg: 9.6594
- Index: [D,E] Values: 35.3500 28.4200 50.1400 Max-Min: 21.7200 Avg: 38.0917
- Index: [E,B] Values: 82.7400 67.1900 50.7900 Max-Min: 31.9500 Avg: 66.7455
- Index: [E,D] Values: 35.3500 28.4200 50.1400 Max-Min: 21.7200 Avg: 38.0917
- Index: [E,F] Values: 97.0800 79.7500 80.8600 Max-Min: 17.3300 Avg: 85.8463
- Index: [F,E] Values: 97.0800 79.7500 80.8600 Max-Min: 17.3300 Avg: 85.8463
- Index: [F,G] Values: 50.8600 66.5100 66.9000 Max-Min: 16.0400 Avg: 61.4781
- Index: [F,H] Values: 49.0600 28.7700 28.4800 Max-Min: 20.5800 Avg: 35.3671
- Index: [G,F] Values: 50.8600 66.5100 66.9000 Max-Min: 16.0400 Avg: 61.4781
- Index: [G,I] Values: 0.0000 28.4000 28.7500 Max-Min: 28.7500 Avg: 19.1470
- Index: [G,J] Values: 30.7200 28.5700 28.6200 Max-Min: 2.1500 Avg: 29.2965
- Index: [H,F] Values: 49.0600 28.7700 28.4800 Max-Min: 20.5800 Avg: 35.3671
- Index: [H,I] Values: 29.2800 0.0000 0.0000 Max-Min: 29.2800 Avg: 9.6624
- Index: [I,G] Values: 0.0000 28.4000 28.7500 Max-Min: 28.7500 Avg: 19.1470
- Index: [I,H] Values: 29.2800 0.0000 0.0000 Max-Min: 29.2800 Avg: 9.6624
- Index: [I,J] Values: 11.2600 0.0000 0.0000 Max-Min: 11.2600 Avg: 3.7158
- Index: [J,G] Values: 30.7200 28.5700 28.6200 Max-Min: 2.1500 Avg: 29.2965
- Index: [J,I] Values: 11.2600 0.0000 0.0000 Max-Min: 11.2600 Avg: 3.7158
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: Scenario1 Scenario2 Scenario3 )
- Values: 131276.6000 112498.8400 112914.6200 Max-Min: 18777.7600 Avg: 118836.8660
-Final costs:
-Scenario Tree Costs
-***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise
-----------------------------------------------------
-Tree Nodes:
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- Scenario1Node
- Scenario2Node
- Scenario3Node
- Scenarios:
- Scenario1
- Scenario2
- Scenario3
- Expected cost of (sub)tree rooted at node=150964.0000
-
- Name=Scenario1Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3300
- Children:
- None
- Scenarios:
- Scenario1
- Expected cost of (sub)tree rooted at node=18820.0000
-
- Name=Scenario2Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3300
- Children:
- None
- Scenarios:
- Scenario2
- Expected cost of (sub)tree rooted at node=20140.0000
-
- Name=Scenario3Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3400
- Children:
- None
- Scenarios:
- Scenario3
- Expected cost of (sub)tree rooted at node=20090.0000
-
-----------------------------------------------------
-Scenarios:
-
- Name=Scenario1
- Probability=0.3300
- Leaf Node=Scenario1Node
- Tree node sequence:
- RootNode
- Scenario1Node
- Stage= FirstStage Cost=131276.6000
- Stage= SecondStage Cost=18820.0000
- Total scenario cost=150096.6000
-
- Name=Scenario2
- Probability=0.3300
- Leaf Node=Scenario2Node
- Tree node sequence:
- RootNode
- Scenario2Node
- Stage= FirstStage Cost=112498.8400
- Stage= SecondStage Cost=20140.0000
- Total scenario cost=132638.8400
-
- Name=Scenario3
- Probability=0.3400
- Leaf Node=Scenario3Node
- Tree node sequence:
- RootNode
- Scenario3Node
- Stage= FirstStage Cost=112914.6200
- Stage= SecondStage Cost=20090.0000
- Total scenario cost=133004.6200
-
-----------------------------------------------------
-
-Total PH execution time=3.92 seconds
-
-Scenario tree solution written to file=ph_solution.json
-Shutting down Pyro solver components
-Dispatcher received request to shut down - initiating...
-
-Total execution time=8.15 seconds
-Name Server gracefully stopped.
-Lost connection to dispatch server - shutting down...
diff --git a/pyomo/pysp/tests/examples/baselines/TestPHNetworkFlow1ef3Pyro.test3.baseline b/pyomo/pysp/tests/examples/baselines/TestPHNetworkFlow1ef3Pyro.test3.baseline
deleted file mode 100644
index 5b2062b72a6..00000000000
--- a/pyomo/pysp/tests/examples/baselines/TestPHNetworkFlow1ef3Pyro.test3.baseline
+++ /dev/null
@@ -1,207 +0,0 @@
-*** Pyro Name Server ***
-Name server listening on: ('0.0.0.0', 9090)
-Broadcast server listening on: ('0.0.0.0', 9090)
-URI is: PYRO://10.0.0.14:9090/0a00000e873320bd7fc5318071d10cbe65
-URI written to: /Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/pyomo/pysp/tests/examples/Pyro_NS_URI
-Name Server started.
-User-defined PH extension module=pyomo.pysp.plugins.phhistoryextension already imported - skipping
-Trying to import module=/Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/examples/pysp/networkflow/config/aggregategetter.py
-Module successfully loaded
-Trying to import module=/Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/examples/pysp/networkflow/config/rhosetter1.0.py
-Module successfully loaded
-Trying to import module=/Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/examples/pysp/networkflow/config/xboundsetter.py
-Module successfully loaded
-Dispatcher is ready.
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI:PYRO://10.0.0.14:7766/0a00000e873420bd7fc653cba5d0701bdc
-This is worker Worker_34613@Ozymandias.local
-Listening for work from dispatcher...
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI: PYRO://10.0.0.14:7766/0a00000e873420bd7fc653cba5d0701bdc
-This is client 34614@Ozymandias.local
-Initializing PH
-
-Executing user aggregate getter callback function
-Executing user rho setter callback function
-Executing user bound setter callback function
-WW PH Extension: Loading user-specified configuration from file=/Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/examples/pysp/networkflow/config/wwph-mipgaponly.cfg
-User-defined PH solution writer module=pyomo.pysp.plugins.jsonsolutionwriter already imported - skipping
-Starting PH
-
-Initiating PH iteration=0
-2014-07-23 23:10:13.201898: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmp88Y0EB.tmp3TlqNJ.pyomo.lp
-2014-07-23 23:10:14.051068: Solve completed - number of solutions=1
-2014-07-23 23:10:14.092749: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpaYdhHs.tmpweAeWk.pyomo.lp
-2014-07-23 23:10:15.050840: Solve completed - number of solutions=1
-2014-07-23 23:10:15.075818: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpUaeBhF.tmpWvpFqR.pyomo.lp
-2014-07-23 23:10:15.733902: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.57 Avg: 0.74 Max: 0.88 (seconds)
-Number of discrete variables fixed=0 (total=30)
-Number of continuous variables fixed=0 (total=30)
-Convergence metric= 0.3877 First stage cost avg= 118896.6867 Max-Min=18777.76
-Cumulative run-time=3.08 seconds
-Number of discrete variables fixed before final plugin calls=0 (total=30)
-Number of continuous variables fixed before final plugin calls=0 (total=30)
-PH algorithm history written to file=ph_history.json
-PH complete
-Convergence history:
-Iteration Metric Value
- 0 0.3877
-
-***********************************************************************************************
->>>THE EXPECTED SUM OF THE STAGE COST VARIABLES=150964.0<<<
->>>***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise<<<
-***********************************************************************************************
-Final number of discrete variables fixed=0 (total=30)
-Final number of continuous variables fixed=0 (total=30)
-Final variable values:
- Stage: FirstStage
- (Scenarios: Scenario1 Scenario2 Scenario3 )
- Variable: b0
- Index: [A,B] Values: 1.0000 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- Index: [B,A] Values: 1.0000 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- Index: [B,C] Values: 1.0000 1.0000 0.0000 Max-Min: 1.0000 Avg: 0.6600
- Index: [B,E] Values: 1.0000 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- Index: [C,B] Values: 1.0000 1.0000 0.0000 Max-Min: 1.0000 Avg: 0.6600
- Index: [C,D] Values: 0.0000 0.0000 1.0000 Max-Min: 1.0000 Avg: 0.3400
- Index: [D,C] Values: 0.0000 0.0000 1.0000 Max-Min: 1.0000 Avg: 0.3400
- Index: [D,E] Values: 1.0000 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- Index: [E,B] Values: 1.0000 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- Index: [E,D] Values: 1.0000 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- Index: [E,F] Values: 1.0000 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- Index: [F,E] Values: 1.0000 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- Index: [F,G] Values: 1.0000 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- Index: [F,H] Values: 1.0000 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- Index: [G,F] Values: 1.0000 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- Index: [G,I] Values: 0.0000 1.0000 1.0000 Max-Min: 1.0000 Avg: 0.6700
- Index: [G,J] Values: 1.0000 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- Index: [H,F] Values: 1.0000 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- Index: [H,I] Values: 1.0000 0.0000 0.0000 Max-Min: 1.0000 Avg: 0.3300
- Index: [I,G] Values: 0.0000 1.0000 1.0000 Max-Min: 1.0000 Avg: 0.6700
- Index: [I,H] Values: 1.0000 0.0000 0.0000 Max-Min: 1.0000 Avg: 0.3300
- Index: [I,J] Values: 1.0000 0.0000 0.0000 Max-Min: 1.0000 Avg: 0.3300
- Index: [J,G] Values: 1.0000 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- Index: [J,I] Values: 1.0000 0.0000 0.0000 Max-Min: 1.0000 Avg: 0.3300
- (Scenarios: Scenario1 Scenario2 Scenario3 )
- Variable: x
- Index: [A,B] Values: 34.7300 28.9300 28.5500 Max-Min: 6.1800 Avg: 30.7148
- Index: [B,A] Values: 34.7300 28.9300 28.5500 Max-Min: 6.1800 Avg: 30.7148
- Index: [B,C] Values: 36.5300 28.6800 0.0000 Max-Min: 36.5300 Avg: 21.5193
- Index: [B,E] Values: 82.7400 67.1900 50.7900 Max-Min: 31.9500 Avg: 66.7455
- Index: [C,B] Values: 36.5300 28.6800 0.0000 Max-Min: 36.5300 Avg: 21.5193
- Index: [C,D] Values: 0.0000 -0.0000 28.4100 Max-Min: 28.4100 Avg: 9.6594
- Index: [D,C] Values: 0.0000 -0.0000 28.4100 Max-Min: 28.4100 Avg: 9.6594
- Index: [D,E] Values: 35.3500 28.4200 50.1400 Max-Min: 21.7200 Avg: 38.0917
- Index: [E,B] Values: 82.7400 67.1900 50.7900 Max-Min: 31.9500 Avg: 66.7455
- Index: [E,D] Values: 35.3500 28.4200 50.1400 Max-Min: 21.7200 Avg: 38.0917
- Index: [E,F] Values: 97.0800 79.7500 80.8600 Max-Min: 17.3300 Avg: 85.8463
- Index: [F,E] Values: 97.0800 79.7500 80.8600 Max-Min: 17.3300 Avg: 85.8463
- Index: [F,G] Values: 50.8600 66.5100 66.9000 Max-Min: 16.0400 Avg: 61.4781
- Index: [F,H] Values: 49.0600 28.7700 28.4800 Max-Min: 20.5800 Avg: 35.3671
- Index: [G,F] Values: 50.8600 66.5100 66.9000 Max-Min: 16.0400 Avg: 61.4781
- Index: [G,I] Values: 0.0000 28.4000 28.7500 Max-Min: 28.7500 Avg: 19.1470
- Index: [G,J] Values: 30.7200 28.5700 28.6200 Max-Min: 2.1500 Avg: 29.2965
- Index: [H,F] Values: 49.0600 28.7700 28.4800 Max-Min: 20.5800 Avg: 35.3671
- Index: [H,I] Values: 29.2800 0.0000 0.0000 Max-Min: 29.2800 Avg: 9.6624
- Index: [I,G] Values: 0.0000 28.4000 28.7500 Max-Min: 28.7500 Avg: 19.1470
- Index: [I,H] Values: 29.2800 0.0000 0.0000 Max-Min: 29.2800 Avg: 9.6624
- Index: [I,J] Values: 11.2600 0.0000 0.0000 Max-Min: 11.2600 Avg: 3.7158
- Index: [J,G] Values: 30.7200 28.5700 28.6200 Max-Min: 2.1500 Avg: 29.2965
- Index: [J,I] Values: 11.2600 0.0000 0.0000 Max-Min: 11.2600 Avg: 3.7158
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: Scenario1 Scenario2 Scenario3 )
- Values: 131276.6000 112498.8400 112914.6200 Max-Min: 18777.7600 Avg: 118836.8660
-Final costs:
-Scenario Tree Costs
-***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise
-----------------------------------------------------
-Tree Nodes:
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- Scenario1Node
- Scenario2Node
- Scenario3Node
- Scenarios:
- Scenario1
- Scenario2
- Scenario3
- Expected cost of (sub)tree rooted at node=150964.0000
-
- Name=Scenario1Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3300
- Children:
- None
- Scenarios:
- Scenario1
- Expected cost of (sub)tree rooted at node=18820.0000
-
- Name=Scenario2Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3300
- Children:
- None
- Scenarios:
- Scenario2
- Expected cost of (sub)tree rooted at node=20140.0000
-
- Name=Scenario3Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3400
- Children:
- None
- Scenarios:
- Scenario3
- Expected cost of (sub)tree rooted at node=20090.0000
-
-----------------------------------------------------
-Scenarios:
-
- Name=Scenario1
- Probability=0.3300
- Leaf Node=Scenario1Node
- Tree node sequence:
- RootNode
- Scenario1Node
- Stage= FirstStage Cost=131276.6000
- Stage= SecondStage Cost=18820.0000
- Total scenario cost=150096.6000
-
- Name=Scenario2
- Probability=0.3300
- Leaf Node=Scenario2Node
- Tree node sequence:
- RootNode
- Scenario2Node
- Stage= FirstStage Cost=112498.8400
- Stage= SecondStage Cost=20140.0000
- Total scenario cost=132638.8400
-
- Name=Scenario3
- Probability=0.3400
- Leaf Node=Scenario3Node
- Tree node sequence:
- RootNode
- Scenario3Node
- Stage= FirstStage Cost=112914.6200
- Stage= SecondStage Cost=20090.0000
- Total scenario cost=133004.6200
-
-----------------------------------------------------
-
-Total PH execution time=3.73 seconds
-
-Scenario tree solution written to file=ph_solution.json
-Shutting down Pyro solver components
-Dispatcher received request to shut down - initiating...
-
-Total execution time=7.99 seconds
-Name Server gracefully stopped.
-Lost connection to dispatch server - shutting down...
diff --git a/pyomo/pysp/tests/examples/baselines/TestPHNetworkFlow1ef3Serial.test1.baseline b/pyomo/pysp/tests/examples/baselines/TestPHNetworkFlow1ef3Serial.test1.baseline
deleted file mode 100644
index 43c17aac5bc..00000000000
--- a/pyomo/pysp/tests/examples/baselines/TestPHNetworkFlow1ef3Serial.test1.baseline
+++ /dev/null
@@ -1,185 +0,0 @@
-User-defined PH extension module=pyomo.pysp.plugins.phhistoryextension already imported - skipping
-Trying to import module=/Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/examples/pysp/networkflow/config/aggregategetter.py
-Module successfully loaded
-Trying to import module=/Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/examples/pysp/networkflow/config/rhosettermixed.py
-Module successfully loaded
-Trying to import module=/Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/examples/pysp/networkflow/config/xboundsetter.py
-Module successfully loaded
-Initializing PH
-
-Executing user aggregate getter callback function
-Executing user rho setter callback function
-Executing user bound setter callback function
-WW PH Extension: Loading user-specified configuration from file=/Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/examples/pysp/networkflow/config/wwph-immediatefixing.cfg
-WW PH Extension: Loading variable suffixes from file=/Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/examples/pysp/networkflow/config/wwph.suffixes
-User-defined PH solution writer module=pyomo.pysp.plugins.jsonsolutionwriter already imported - skipping
-Starting PH
-
-Initiating PH iteration=0
-Sub-problem solve time statistics - Min: 0.54 Avg: 0.70 Max: 0.86 (seconds)
-Number of discrete variables fixed=0 (total=30)
-Number of continuous variables fixed=0 (total=30)
-Convergence metric= 0.3877 First stage cost avg= 118896.6867 Max-Min=18777.76
-Cumulative run-time=3.03 seconds
-Number of discrete variables fixed before final plugin calls=0 (total=30)
-Number of continuous variables fixed before final plugin calls=0 (total=30)
-PH algorithm history written to file=ph_history.json
-PH complete
-Convergence history:
-Iteration Metric Value
- 0 0.3877
-
-***********************************************************************************************
->>>THE EXPECTED SUM OF THE STAGE COST VARIABLES=150964.0<<<
->>>***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise<<<
-***********************************************************************************************
-Final number of discrete variables fixed=0 (total=30)
-Final number of continuous variables fixed=0 (total=30)
-Final variable values:
- Stage: FirstStage
- (Scenarios: Scenario1 Scenario2 Scenario3 )
- Variable: b0
- Index: [A,B] Values: 1.0000 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- Index: [B,A] Values: 1.0000 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- Index: [B,C] Values: 1.0000 1.0000 0.0000 Max-Min: 1.0000 Avg: 0.6600
- Index: [B,E] Values: 1.0000 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- Index: [C,B] Values: 1.0000 1.0000 0.0000 Max-Min: 1.0000 Avg: 0.6600
- Index: [C,D] Values: 0.0000 0.0000 1.0000 Max-Min: 1.0000 Avg: 0.3400
- Index: [D,C] Values: 0.0000 0.0000 1.0000 Max-Min: 1.0000 Avg: 0.3400
- Index: [D,E] Values: 1.0000 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- Index: [E,B] Values: 1.0000 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- Index: [E,D] Values: 1.0000 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- Index: [E,F] Values: 1.0000 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- Index: [F,E] Values: 1.0000 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- Index: [F,G] Values: 1.0000 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- Index: [F,H] Values: 1.0000 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- Index: [G,F] Values: 1.0000 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- Index: [G,I] Values: 0.0000 1.0000 1.0000 Max-Min: 1.0000 Avg: 0.6700
- Index: [G,J] Values: 1.0000 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- Index: [H,F] Values: 1.0000 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- Index: [H,I] Values: 1.0000 0.0000 0.0000 Max-Min: 1.0000 Avg: 0.3300
- Index: [I,G] Values: 0.0000 1.0000 1.0000 Max-Min: 1.0000 Avg: 0.6700
- Index: [I,H] Values: 1.0000 0.0000 0.0000 Max-Min: 1.0000 Avg: 0.3300
- Index: [I,J] Values: 1.0000 0.0000 0.0000 Max-Min: 1.0000 Avg: 0.3300
- Index: [J,G] Values: 1.0000 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- Index: [J,I] Values: 1.0000 0.0000 0.0000 Max-Min: 1.0000 Avg: 0.3300
- (Scenarios: Scenario1 Scenario2 Scenario3 )
- Variable: x
- Index: [A,B] Values: 34.7300 28.9300 28.5500 Max-Min: 6.1800 Avg: 30.7148
- Index: [B,A] Values: 34.7300 28.9300 28.5500 Max-Min: 6.1800 Avg: 30.7148
- Index: [B,C] Values: 36.5300 28.6800 0.0000 Max-Min: 36.5300 Avg: 21.5193
- Index: [B,E] Values: 82.7400 67.1900 50.7900 Max-Min: 31.9500 Avg: 66.7455
- Index: [C,B] Values: 36.5300 28.6800 0.0000 Max-Min: 36.5300 Avg: 21.5193
- Index: [C,D] Values: 0.0000 -0.0000 28.4100 Max-Min: 28.4100 Avg: 9.6594
- Index: [D,C] Values: 0.0000 -0.0000 28.4100 Max-Min: 28.4100 Avg: 9.6594
- Index: [D,E] Values: 35.3500 28.4200 50.1400 Max-Min: 21.7200 Avg: 38.0917
- Index: [E,B] Values: 82.7400 67.1900 50.7900 Max-Min: 31.9500 Avg: 66.7455
- Index: [E,D] Values: 35.3500 28.4200 50.1400 Max-Min: 21.7200 Avg: 38.0917
- Index: [E,F] Values: 97.0800 79.7500 80.8600 Max-Min: 17.3300 Avg: 85.8463
- Index: [F,E] Values: 97.0800 79.7500 80.8600 Max-Min: 17.3300 Avg: 85.8463
- Index: [F,G] Values: 50.8600 66.5100 66.9000 Max-Min: 16.0400 Avg: 61.4781
- Index: [F,H] Values: 49.0600 28.7700 28.4800 Max-Min: 20.5800 Avg: 35.3671
- Index: [G,F] Values: 50.8600 66.5100 66.9000 Max-Min: 16.0400 Avg: 61.4781
- Index: [G,I] Values: 0.0000 28.4000 28.7500 Max-Min: 28.7500 Avg: 19.1470
- Index: [G,J] Values: 30.7200 28.5700 28.6200 Max-Min: 2.1500 Avg: 29.2965
- Index: [H,F] Values: 49.0600 28.7700 28.4800 Max-Min: 20.5800 Avg: 35.3671
- Index: [H,I] Values: 29.2800 0.0000 0.0000 Max-Min: 29.2800 Avg: 9.6624
- Index: [I,G] Values: 0.0000 28.4000 28.7500 Max-Min: 28.7500 Avg: 19.1470
- Index: [I,H] Values: 29.2800 0.0000 0.0000 Max-Min: 29.2800 Avg: 9.6624
- Index: [I,J] Values: 11.2600 0.0000 0.0000 Max-Min: 11.2600 Avg: 3.7158
- Index: [J,G] Values: 30.7200 28.5700 28.6200 Max-Min: 2.1500 Avg: 29.2965
- Index: [J,I] Values: 11.2600 0.0000 0.0000 Max-Min: 11.2600 Avg: 3.7158
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: Scenario1 Scenario2 Scenario3 )
- Values: 131276.6000 112498.8400 112914.6200 Max-Min: 18777.7600 Avg: 118836.8660
-Final costs:
-Scenario Tree Costs
-***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise
-----------------------------------------------------
-Tree Nodes:
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- Scenario1Node
- Scenario2Node
- Scenario3Node
- Scenarios:
- Scenario1
- Scenario2
- Scenario3
- Expected cost of (sub)tree rooted at node=150964.0000
-
- Name=Scenario1Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3300
- Children:
- None
- Scenarios:
- Scenario1
- Expected cost of (sub)tree rooted at node=18820.0000
-
- Name=Scenario2Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3300
- Children:
- None
- Scenarios:
- Scenario2
- Expected cost of (sub)tree rooted at node=20140.0000
-
- Name=Scenario3Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3400
- Children:
- None
- Scenarios:
- Scenario3
- Expected cost of (sub)tree rooted at node=20090.0000
-
-----------------------------------------------------
-Scenarios:
-
- Name=Scenario1
- Probability=0.3300
- Leaf Node=Scenario1Node
- Tree node sequence:
- RootNode
- Scenario1Node
- Stage= FirstStage Cost=131276.6000
- Stage= SecondStage Cost=18820.0000
- Total scenario cost=150096.6000
-
- Name=Scenario2
- Probability=0.3300
- Leaf Node=Scenario2Node
- Tree node sequence:
- RootNode
- Scenario2Node
- Stage= FirstStage Cost=112498.8400
- Stage= SecondStage Cost=20140.0000
- Total scenario cost=132638.8400
-
- Name=Scenario3
- Probability=0.3400
- Leaf Node=Scenario3Node
- Tree node sequence:
- RootNode
- Scenario3Node
- Stage= FirstStage Cost=112914.6200
- Stage= SecondStage Cost=20090.0000
- Total scenario cost=133004.6200
-
-----------------------------------------------------
-***WARNING***: PH exiting with fixed or freed variables in the scenario tree queue whose statuses have not been pushed to the scenario instances. This is because these requests were placed in the queue after the most recent solve. If these statuses are pushed to the scenario instances, a new solution should be obtained in order to reflect accurate solution data within the scenario tree. This warning can be safely ignored in most cases.
-
-Total PH execution time=3.72 seconds
-
-Scenario tree solution written to file=ph_solution.json
-
-Total execution time=4.95 seconds
diff --git a/pyomo/pysp/tests/examples/baselines/TestPHNetworkFlow1ef3Serial.test2.baseline b/pyomo/pysp/tests/examples/baselines/TestPHNetworkFlow1ef3Serial.test2.baseline
deleted file mode 100644
index 228beef7dc9..00000000000
--- a/pyomo/pysp/tests/examples/baselines/TestPHNetworkFlow1ef3Serial.test2.baseline
+++ /dev/null
@@ -1,183 +0,0 @@
-User-defined PH extension module=pyomo.pysp.plugins.phhistoryextension already imported - skipping
-Trying to import module=/Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/examples/pysp/networkflow/config/aggregategetter.py
-Module successfully loaded
-Trying to import module=/Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/examples/pysp/networkflow/config/rhosetter0.5.py
-Module successfully loaded
-Trying to import module=/Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/examples/pysp/networkflow/config/xboundsetter.py
-Module successfully loaded
-Initializing PH
-
-Executing user aggregate getter callback function
-Executing user rho setter callback function
-Executing user bound setter callback function
-WW PH Extension: Loading user-specified configuration from file=/Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/examples/pysp/networkflow/config/wwph-aggressivefixing.cfg
-User-defined PH solution writer module=pyomo.pysp.plugins.jsonsolutionwriter already imported - skipping
-Starting PH
-
-Initiating PH iteration=0
-Sub-problem solve time statistics - Min: 0.55 Avg: 0.71 Max: 0.87 (seconds)
-Number of discrete variables fixed=0 (total=30)
-Number of continuous variables fixed=0 (total=30)
-Convergence metric= 0.3877 First stage cost avg= 118896.6867 Max-Min=18777.76
-Cumulative run-time=3.08 seconds
-Number of discrete variables fixed before final plugin calls=0 (total=30)
-Number of continuous variables fixed before final plugin calls=0 (total=30)
-PH algorithm history written to file=ph_history.json
-PH complete
-Convergence history:
-Iteration Metric Value
- 0 0.3877
-
-***********************************************************************************************
->>>THE EXPECTED SUM OF THE STAGE COST VARIABLES=150964.0<<<
->>>***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise<<<
-***********************************************************************************************
-Final number of discrete variables fixed=0 (total=30)
-Final number of continuous variables fixed=0 (total=30)
-Final variable values:
- Stage: FirstStage
- (Scenarios: Scenario1 Scenario2 Scenario3 )
- Variable: b0
- Index: [A,B] Values: 1.0000 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- Index: [B,A] Values: 1.0000 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- Index: [B,C] Values: 1.0000 1.0000 0.0000 Max-Min: 1.0000 Avg: 0.6600
- Index: [B,E] Values: 1.0000 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- Index: [C,B] Values: 1.0000 1.0000 0.0000 Max-Min: 1.0000 Avg: 0.6600
- Index: [C,D] Values: 0.0000 0.0000 1.0000 Max-Min: 1.0000 Avg: 0.3400
- Index: [D,C] Values: 0.0000 0.0000 1.0000 Max-Min: 1.0000 Avg: 0.3400
- Index: [D,E] Values: 1.0000 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- Index: [E,B] Values: 1.0000 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- Index: [E,D] Values: 1.0000 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- Index: [E,F] Values: 1.0000 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- Index: [F,E] Values: 1.0000 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- Index: [F,G] Values: 1.0000 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- Index: [F,H] Values: 1.0000 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- Index: [G,F] Values: 1.0000 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- Index: [G,I] Values: 0.0000 1.0000 1.0000 Max-Min: 1.0000 Avg: 0.6700
- Index: [G,J] Values: 1.0000 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- Index: [H,F] Values: 1.0000 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- Index: [H,I] Values: 1.0000 0.0000 0.0000 Max-Min: 1.0000 Avg: 0.3300
- Index: [I,G] Values: 0.0000 1.0000 1.0000 Max-Min: 1.0000 Avg: 0.6700
- Index: [I,H] Values: 1.0000 0.0000 0.0000 Max-Min: 1.0000 Avg: 0.3300
- Index: [I,J] Values: 1.0000 0.0000 0.0000 Max-Min: 1.0000 Avg: 0.3300
- Index: [J,G] Values: 1.0000 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- Index: [J,I] Values: 1.0000 0.0000 0.0000 Max-Min: 1.0000 Avg: 0.3300
- (Scenarios: Scenario1 Scenario2 Scenario3 )
- Variable: x
- Index: [A,B] Values: 34.7300 28.9300 28.5500 Max-Min: 6.1800 Avg: 30.7148
- Index: [B,A] Values: 34.7300 28.9300 28.5500 Max-Min: 6.1800 Avg: 30.7148
- Index: [B,C] Values: 36.5300 28.6800 0.0000 Max-Min: 36.5300 Avg: 21.5193
- Index: [B,E] Values: 82.7400 67.1900 50.7900 Max-Min: 31.9500 Avg: 66.7455
- Index: [C,B] Values: 36.5300 28.6800 0.0000 Max-Min: 36.5300 Avg: 21.5193
- Index: [C,D] Values: 0.0000 -0.0000 28.4100 Max-Min: 28.4100 Avg: 9.6594
- Index: [D,C] Values: 0.0000 -0.0000 28.4100 Max-Min: 28.4100 Avg: 9.6594
- Index: [D,E] Values: 35.3500 28.4200 50.1400 Max-Min: 21.7200 Avg: 38.0917
- Index: [E,B] Values: 82.7400 67.1900 50.7900 Max-Min: 31.9500 Avg: 66.7455
- Index: [E,D] Values: 35.3500 28.4200 50.1400 Max-Min: 21.7200 Avg: 38.0917
- Index: [E,F] Values: 97.0800 79.7500 80.8600 Max-Min: 17.3300 Avg: 85.8463
- Index: [F,E] Values: 97.0800 79.7500 80.8600 Max-Min: 17.3300 Avg: 85.8463
- Index: [F,G] Values: 50.8600 66.5100 66.9000 Max-Min: 16.0400 Avg: 61.4781
- Index: [F,H] Values: 49.0600 28.7700 28.4800 Max-Min: 20.5800 Avg: 35.3671
- Index: [G,F] Values: 50.8600 66.5100 66.9000 Max-Min: 16.0400 Avg: 61.4781
- Index: [G,I] Values: 0.0000 28.4000 28.7500 Max-Min: 28.7500 Avg: 19.1470
- Index: [G,J] Values: 30.7200 28.5700 28.6200 Max-Min: 2.1500 Avg: 29.2965
- Index: [H,F] Values: 49.0600 28.7700 28.4800 Max-Min: 20.5800 Avg: 35.3671
- Index: [H,I] Values: 29.2800 0.0000 0.0000 Max-Min: 29.2800 Avg: 9.6624
- Index: [I,G] Values: 0.0000 28.4000 28.7500 Max-Min: 28.7500 Avg: 19.1470
- Index: [I,H] Values: 29.2800 0.0000 0.0000 Max-Min: 29.2800 Avg: 9.6624
- Index: [I,J] Values: 11.2600 0.0000 0.0000 Max-Min: 11.2600 Avg: 3.7158
- Index: [J,G] Values: 30.7200 28.5700 28.6200 Max-Min: 2.1500 Avg: 29.2965
- Index: [J,I] Values: 11.2600 0.0000 0.0000 Max-Min: 11.2600 Avg: 3.7158
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: Scenario1 Scenario2 Scenario3 )
- Values: 131276.6000 112498.8400 112914.6200 Max-Min: 18777.7600 Avg: 118836.8660
-Final costs:
-Scenario Tree Costs
-***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise
-----------------------------------------------------
-Tree Nodes:
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- Scenario1Node
- Scenario2Node
- Scenario3Node
- Scenarios:
- Scenario1
- Scenario2
- Scenario3
- Expected cost of (sub)tree rooted at node=150964.0000
-
- Name=Scenario1Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3300
- Children:
- None
- Scenarios:
- Scenario1
- Expected cost of (sub)tree rooted at node=18820.0000
-
- Name=Scenario2Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3300
- Children:
- None
- Scenarios:
- Scenario2
- Expected cost of (sub)tree rooted at node=20140.0000
-
- Name=Scenario3Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3400
- Children:
- None
- Scenarios:
- Scenario3
- Expected cost of (sub)tree rooted at node=20090.0000
-
-----------------------------------------------------
-Scenarios:
-
- Name=Scenario1
- Probability=0.3300
- Leaf Node=Scenario1Node
- Tree node sequence:
- RootNode
- Scenario1Node
- Stage= FirstStage Cost=131276.6000
- Stage= SecondStage Cost=18820.0000
- Total scenario cost=150096.6000
-
- Name=Scenario2
- Probability=0.3300
- Leaf Node=Scenario2Node
- Tree node sequence:
- RootNode
- Scenario2Node
- Stage= FirstStage Cost=112498.8400
- Stage= SecondStage Cost=20140.0000
- Total scenario cost=132638.8400
-
- Name=Scenario3
- Probability=0.3400
- Leaf Node=Scenario3Node
- Tree node sequence:
- RootNode
- Scenario3Node
- Stage= FirstStage Cost=112914.6200
- Stage= SecondStage Cost=20090.0000
- Total scenario cost=133004.6200
-
-----------------------------------------------------
-
-Total PH execution time=3.76 seconds
-
-Scenario tree solution written to file=ph_solution.json
-
-Total execution time=5.00 seconds
diff --git a/pyomo/pysp/tests/examples/baselines/TestPHNetworkFlow1ef3Serial.test3.baseline b/pyomo/pysp/tests/examples/baselines/TestPHNetworkFlow1ef3Serial.test3.baseline
deleted file mode 100644
index 06a43f85cee..00000000000
--- a/pyomo/pysp/tests/examples/baselines/TestPHNetworkFlow1ef3Serial.test3.baseline
+++ /dev/null
@@ -1,183 +0,0 @@
-User-defined PH extension module=pyomo.pysp.plugins.phhistoryextension already imported - skipping
-Trying to import module=/Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/examples/pysp/networkflow/config/aggregategetter.py
-Module successfully loaded
-Trying to import module=/Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/examples/pysp/networkflow/config/rhosetter1.0.py
-Module successfully loaded
-Trying to import module=/Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/examples/pysp/networkflow/config/xboundsetter.py
-Module successfully loaded
-Initializing PH
-
-Executing user aggregate getter callback function
-Executing user rho setter callback function
-Executing user bound setter callback function
-WW PH Extension: Loading user-specified configuration from file=/Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/examples/pysp/networkflow/config/wwph-mipgaponly.cfg
-User-defined PH solution writer module=pyomo.pysp.plugins.jsonsolutionwriter already imported - skipping
-Starting PH
-
-Initiating PH iteration=0
-Sub-problem solve time statistics - Min: 0.57 Avg: 0.72 Max: 0.87 (seconds)
-Number of discrete variables fixed=0 (total=30)
-Number of continuous variables fixed=0 (total=30)
-Convergence metric= 0.3877 First stage cost avg= 118896.6867 Max-Min=18777.76
-Cumulative run-time=3.10 seconds
-Number of discrete variables fixed before final plugin calls=0 (total=30)
-Number of continuous variables fixed before final plugin calls=0 (total=30)
-PH algorithm history written to file=ph_history.json
-PH complete
-Convergence history:
-Iteration Metric Value
- 0 0.3877
-
-***********************************************************************************************
->>>THE EXPECTED SUM OF THE STAGE COST VARIABLES=150964.0<<<
->>>***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise<<<
-***********************************************************************************************
-Final number of discrete variables fixed=0 (total=30)
-Final number of continuous variables fixed=0 (total=30)
-Final variable values:
- Stage: FirstStage
- (Scenarios: Scenario1 Scenario2 Scenario3 )
- Variable: b0
- Index: [A,B] Values: 1.0000 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- Index: [B,A] Values: 1.0000 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- Index: [B,C] Values: 1.0000 1.0000 0.0000 Max-Min: 1.0000 Avg: 0.6600
- Index: [B,E] Values: 1.0000 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- Index: [C,B] Values: 1.0000 1.0000 0.0000 Max-Min: 1.0000 Avg: 0.6600
- Index: [C,D] Values: 0.0000 0.0000 1.0000 Max-Min: 1.0000 Avg: 0.3400
- Index: [D,C] Values: 0.0000 0.0000 1.0000 Max-Min: 1.0000 Avg: 0.3400
- Index: [D,E] Values: 1.0000 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- Index: [E,B] Values: 1.0000 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- Index: [E,D] Values: 1.0000 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- Index: [E,F] Values: 1.0000 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- Index: [F,E] Values: 1.0000 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- Index: [F,G] Values: 1.0000 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- Index: [F,H] Values: 1.0000 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- Index: [G,F] Values: 1.0000 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- Index: [G,I] Values: 0.0000 1.0000 1.0000 Max-Min: 1.0000 Avg: 0.6700
- Index: [G,J] Values: 1.0000 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- Index: [H,F] Values: 1.0000 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- Index: [H,I] Values: 1.0000 0.0000 0.0000 Max-Min: 1.0000 Avg: 0.3300
- Index: [I,G] Values: 0.0000 1.0000 1.0000 Max-Min: 1.0000 Avg: 0.6700
- Index: [I,H] Values: 1.0000 0.0000 0.0000 Max-Min: 1.0000 Avg: 0.3300
- Index: [I,J] Values: 1.0000 0.0000 0.0000 Max-Min: 1.0000 Avg: 0.3300
- Index: [J,G] Values: 1.0000 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- Index: [J,I] Values: 1.0000 0.0000 0.0000 Max-Min: 1.0000 Avg: 0.3300
- (Scenarios: Scenario1 Scenario2 Scenario3 )
- Variable: x
- Index: [A,B] Values: 34.7300 28.9300 28.5500 Max-Min: 6.1800 Avg: 30.7148
- Index: [B,A] Values: 34.7300 28.9300 28.5500 Max-Min: 6.1800 Avg: 30.7148
- Index: [B,C] Values: 36.5300 28.6800 0.0000 Max-Min: 36.5300 Avg: 21.5193
- Index: [B,E] Values: 82.7400 67.1900 50.7900 Max-Min: 31.9500 Avg: 66.7455
- Index: [C,B] Values: 36.5300 28.6800 0.0000 Max-Min: 36.5300 Avg: 21.5193
- Index: [C,D] Values: 0.0000 -0.0000 28.4100 Max-Min: 28.4100 Avg: 9.6594
- Index: [D,C] Values: 0.0000 -0.0000 28.4100 Max-Min: 28.4100 Avg: 9.6594
- Index: [D,E] Values: 35.3500 28.4200 50.1400 Max-Min: 21.7200 Avg: 38.0917
- Index: [E,B] Values: 82.7400 67.1900 50.7900 Max-Min: 31.9500 Avg: 66.7455
- Index: [E,D] Values: 35.3500 28.4200 50.1400 Max-Min: 21.7200 Avg: 38.0917
- Index: [E,F] Values: 97.0800 79.7500 80.8600 Max-Min: 17.3300 Avg: 85.8463
- Index: [F,E] Values: 97.0800 79.7500 80.8600 Max-Min: 17.3300 Avg: 85.8463
- Index: [F,G] Values: 50.8600 66.5100 66.9000 Max-Min: 16.0400 Avg: 61.4781
- Index: [F,H] Values: 49.0600 28.7700 28.4800 Max-Min: 20.5800 Avg: 35.3671
- Index: [G,F] Values: 50.8600 66.5100 66.9000 Max-Min: 16.0400 Avg: 61.4781
- Index: [G,I] Values: 0.0000 28.4000 28.7500 Max-Min: 28.7500 Avg: 19.1470
- Index: [G,J] Values: 30.7200 28.5700 28.6200 Max-Min: 2.1500 Avg: 29.2965
- Index: [H,F] Values: 49.0600 28.7700 28.4800 Max-Min: 20.5800 Avg: 35.3671
- Index: [H,I] Values: 29.2800 0.0000 0.0000 Max-Min: 29.2800 Avg: 9.6624
- Index: [I,G] Values: 0.0000 28.4000 28.7500 Max-Min: 28.7500 Avg: 19.1470
- Index: [I,H] Values: 29.2800 0.0000 0.0000 Max-Min: 29.2800 Avg: 9.6624
- Index: [I,J] Values: 11.2600 0.0000 0.0000 Max-Min: 11.2600 Avg: 3.7158
- Index: [J,G] Values: 30.7200 28.5700 28.6200 Max-Min: 2.1500 Avg: 29.2965
- Index: [J,I] Values: 11.2600 0.0000 0.0000 Max-Min: 11.2600 Avg: 3.7158
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: Scenario1 Scenario2 Scenario3 )
- Values: 131276.6000 112498.8400 112914.6200 Max-Min: 18777.7600 Avg: 118836.8660
-Final costs:
-Scenario Tree Costs
-***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise
-----------------------------------------------------
-Tree Nodes:
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- Scenario1Node
- Scenario2Node
- Scenario3Node
- Scenarios:
- Scenario1
- Scenario2
- Scenario3
- Expected cost of (sub)tree rooted at node=150964.0000
-
- Name=Scenario1Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3300
- Children:
- None
- Scenarios:
- Scenario1
- Expected cost of (sub)tree rooted at node=18820.0000
-
- Name=Scenario2Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3300
- Children:
- None
- Scenarios:
- Scenario2
- Expected cost of (sub)tree rooted at node=20140.0000
-
- Name=Scenario3Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3400
- Children:
- None
- Scenarios:
- Scenario3
- Expected cost of (sub)tree rooted at node=20090.0000
-
-----------------------------------------------------
-Scenarios:
-
- Name=Scenario1
- Probability=0.3300
- Leaf Node=Scenario1Node
- Tree node sequence:
- RootNode
- Scenario1Node
- Stage= FirstStage Cost=131276.6000
- Stage= SecondStage Cost=18820.0000
- Total scenario cost=150096.6000
-
- Name=Scenario2
- Probability=0.3300
- Leaf Node=Scenario2Node
- Tree node sequence:
- RootNode
- Scenario2Node
- Stage= FirstStage Cost=112498.8400
- Stage= SecondStage Cost=20140.0000
- Total scenario cost=132638.8400
-
- Name=Scenario3
- Probability=0.3400
- Leaf Node=Scenario3Node
- Tree node sequence:
- RootNode
- Scenario3Node
- Stage= FirstStage Cost=112914.6200
- Stage= SecondStage Cost=20090.0000
- Total scenario cost=133004.6200
-
-----------------------------------------------------
-
-Total PH execution time=3.80 seconds
-
-Scenario tree solution written to file=ph_solution.json
-
-Total execution time=5.03 seconds
diff --git a/pyomo/pysp/tests/examples/baselines/TestPHSizes3.test1.ph_history.json.baseline.gz b/pyomo/pysp/tests/examples/baselines/TestPHSizes3.test1.ph_history.json.baseline.gz
deleted file mode 100644
index e0095366e99..00000000000
Binary files a/pyomo/pysp/tests/examples/baselines/TestPHSizes3.test1.ph_history.json.baseline.gz and /dev/null differ
diff --git a/pyomo/pysp/tests/examples/baselines/TestPHSizes3.test1.ph_solution.json.baseline.gz b/pyomo/pysp/tests/examples/baselines/TestPHSizes3.test1.ph_solution.json.baseline.gz
deleted file mode 100644
index 88239f0b37b..00000000000
Binary files a/pyomo/pysp/tests/examples/baselines/TestPHSizes3.test1.ph_solution.json.baseline.gz and /dev/null differ
diff --git a/pyomo/pysp/tests/examples/baselines/TestPHSizes3PHPyro.test1.baseline b/pyomo/pysp/tests/examples/baselines/TestPHSizes3PHPyro.test1.baseline
deleted file mode 100644
index 80a0e14ab16..00000000000
--- a/pyomo/pysp/tests/examples/baselines/TestPHSizes3PHPyro.test1.baseline
+++ /dev/null
@@ -1,185 +0,0 @@
-*** Pyro Name Server ***
-Name server listening on: ('0.0.0.0', 9090)
-Broadcast server listening on: ('0.0.0.0', 9090)
-URI is: PYRO://10.0.0.9:9090/0a000009a2f020a962270805ecb328a7dd
-URI written to: /Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/pyomo/pysp/tests/examples/Pyro_NS_URI
-Name Server started.
-User-defined PH extension module=pyomo.pysp.plugins.phhistoryextension already imported - skipping
-Trying to import module=/Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/examples/pysp/sizes/config/rhosetter.py
-Module successfully loaded
-Dispatcher is ready.
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI:PYRO://10.0.0.9:7766/0a000009a2f120a96228250a91b61199d7
-This is worker Worker_41714@Ozymandias.local
-Listening for work from dispatcher...
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI:PYRO://10.0.0.9:7766/0a000009a2f120a96228250a91b61199d7
-This is worker Worker_41716@Ozymandias.local
-Listening for work from dispatcher...
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI:PYRO://10.0.0.9:7766/0a000009a2f120a96228250a91b61199d7
-This is worker Worker_41715@Ozymandias.local
-Listening for work from dispatcher...
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI: PYRO://10.0.0.9:7766/0a000009a2f120a96228250a91b61199d7
-This is client 41717@Ozymandias.local
-Initializing PH
-
-Transmitting user rho callback invocations to phsolverservers
-WW PH Extension: Loading user-specified configuration from file=/Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/examples/pysp/sizes/config/wwph.cfg
-WW PH Extension: Loading variable suffixes from file=/Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/examples/pysp/sizes/config/wwph.suffixes
-User-defined PH solution writer module=pyomo.pysp.plugins.jsonsolutionwriter already imported - skipping
-Starting PH
-
-Initiating PH iteration=0
-Sub-problem solve time statistics - Min: 0.10 Avg: 0.11 Max: 0.12 (seconds)
-Number of discrete variables fixed=0 (total=75)
-Number of continuous variables fixed=0 (total=0)
-Convergence metric= 0.0853 First stage cost avg= 162978.2000 Max-Min= 654.60
-Cumulative run-time=0.18 seconds
-Number of discrete variables fixed before final plugin calls=0 (total=75)
-Number of continuous variables fixed before final plugin calls=0 (total=0)
-PH algorithm history written to file=ph_history.json
-PH complete
-Convergence history:
-Iteration Metric Value
- 0 0.0853
-
-***********************************************************************************************
->>>THE EXPECTED SUM OF THE STAGE COST VARIABLES=224420.200033<<<
->>>***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise<<<
-***********************************************************************************************
-Final number of discrete variables fixed=0 (total=75)
-Final number of continuous variables fixed=0 (total=0)
-Final variable values:
- Stage: FirstStage
- (Scenarios: Scenario1 Scenario2 Scenario3 )
- Variable: NumUnitsCutFirstStage
- Index: [3,1] Values: 2500.0000 2500.0000 2500.0000 Max-Min: 0.0000 Avg: 2500.0000
- Index: [3,2] Values: 7500.0000 7500.0000 7500.0000 Max-Min: 0.0000 Avg: 7500.0000
- Index: [3,3] Values: 12500.0000 12500.0000 12500.0000 Max-Min: 0.0000 Avg: 12500.0000
- Index: [5,4] Values: 10000.0000 10000.0000 10000.0000 Max-Min: 0.0000 Avg: 10000.0000
- Index: [5,5] Values: 35000.0000 35000.0000 35000.0000 Max-Min: 0.0000 Avg: 35000.0000
- Index: [6,6] Values: 25000.0000 25000.0000 25000.0000 Max-Min: 0.0000 Avg: 25000.0000
- Index: [7,7] Values: 15000.0000 15000.0000 15000.0000 Max-Min: 0.0000 Avg: 15000.0000
- Index: [9,8] Values: 12500.0000 -0.0000 12500.0000 Max-Min: 12500.0000 Avg: 8333.3333
- Index: [9,9] Values: 12500.0000 -0.0000 12500.0000 Max-Min: 12500.0000 Avg: 8333.3333
- Index: [10,8] Values: -0.0000 12500.0000 0.0000 Max-Min: 12500.0000 Avg: 4166.6667
- Index: [10,9] Values: 0.0000 12500.0000 -0.0000 Max-Min: 12500.0000 Avg: 4166.6667
- Index: [10,10] Values: 5000.0000 5000.0000 5000.0000 Max-Min: 0.0000 Avg: 5000.0000
- (Scenarios: Scenario1 Scenario2 Scenario3 )
- Variable: NumProducedFirstStage
- Index: [3] Values: 36000.0000 40000.0000 51750.0000 Max-Min: 15750.0000 Avg: 42583.3333
- Index: [5] Values: 45000.0000 45000.0000 45000.0000 Max-Min: 0.0000 Avg: 45000.0000
- Index: [6] Values: 42500.0000 50000.0000 25000.0000 Max-Min: 25000.0000 Avg: 39166.6667
- Index: [7] Values: 25500.0000 30000.0000 25500.0000 Max-Min: 4500.0000 Avg: 27000.0000
- Index: [9] Values: 42500.0000 -0.0000 41250.0000 Max-Min: 42500.0000 Avg: 27916.6667
- Index: [10] Values: 8500.0000 35000.0000 11500.0000 Max-Min: 26500.0000 Avg: 18333.3333
- (Scenarios: Scenario1 Scenario2 Scenario3 )
- Variable: ProduceSizeFirstStage
- Index: [3] Values: 1.0000 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- Index: [5] Values: 1.0000 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- Index: [6] Values: 1.0000 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- Index: [7] Values: 1.0000 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- Index: [9] Values: 1.0000 -0.0000 1.0000 Max-Min: 1.0000 Avg: 0.6667
- Index: [10] Values: 1.0000 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: Scenario1 Scenario2 Scenario3 )
- Values: 163331.6000 162677.0000 162926.0000 Max-Min: 654.6000 Avg: 162978.2000
-Final costs:
-Scenario Tree Costs
-***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise
-----------------------------------------------------
-Tree Nodes:
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- Scenario1Node
- Scenario2Node
- Scenario3Node
- Scenarios:
- Scenario1
- Scenario2
- Scenario3
- Expected cost of (sub)tree rooted at node=224420.2000
-
- Name=Scenario1Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- Scenario1
- Expected cost of (sub)tree rooted at node=27284.0000
-
- Name=Scenario2Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- Scenario2
- Expected cost of (sub)tree rooted at node=61426.0000
-
- Name=Scenario3Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- Scenario3
- Expected cost of (sub)tree rooted at node=94555.8000
-
-----------------------------------------------------
-Scenarios:
-
- Name=Scenario1
- Probability=0.3333
- Leaf Node=Scenario1Node
- Tree node sequence:
- RootNode
- Scenario1Node
- Stage= FirstStage Cost=163331.6000
- Stage= SecondStage Cost=27284.0000
- Total scenario cost=190615.6000
-
- Name=Scenario2
- Probability=0.3333
- Leaf Node=Scenario2Node
- Tree node sequence:
- RootNode
- Scenario2Node
- Stage= FirstStage Cost=162677.0000
- Stage= SecondStage Cost=61426.0000
- Total scenario cost=224103.0000
-
- Name=Scenario3
- Probability=0.3333
- Leaf Node=Scenario3Node
- Tree node sequence:
- RootNode
- Scenario3Node
- Stage= FirstStage Cost=162926.0000
- Stage= SecondStage Cost=94555.8000
- Total scenario cost=257481.8000
-
-----------------------------------------------------
-***WARNING***: PH exiting with fixed or freed variables in the scenario tree queue whose statuses have not been pushed to the scenario instances. This is because these requests were placed in the queue after the most recent solve. If these statuses are pushed to the scenario instances, a new solution should be obtained in order to reflect accurate solution data within the scenario tree. This warning can be safely ignored in most cases.
-
-Total PH execution time=0.25 seconds
-
-Scenario tree solution written to file=ph_solution.json
-Shutting down Pyro solver components
-Dispatcher received request to shut down - initiating...
-
-Total execution time=3.59 seconds
-Name Server gracefully stopped.
-Lost connection to dispatch server - shutting down...
-Lost connection to dispatch server - shutting down...
-Lost connection to dispatch server - shutting down...
diff --git a/pyomo/pysp/tests/examples/baselines/TestPHSizes3Pyro.test1.baseline b/pyomo/pysp/tests/examples/baselines/TestPHSizes3Pyro.test1.baseline
deleted file mode 100644
index 3a9c67a7387..00000000000
--- a/pyomo/pysp/tests/examples/baselines/TestPHSizes3Pyro.test1.baseline
+++ /dev/null
@@ -1,181 +0,0 @@
-*** Pyro Name Server ***
-Name server listening on: ('0.0.0.0', 9090)
-Broadcast server listening on: ('0.0.0.0', 9090)
-URI is: PYRO://10.0.0.9:9090/0a000009a31320a9622a1d5be712f0e3e5
-URI written to: /Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/pyomo/pysp/tests/examples/Pyro_NS_URI
-Name Server started.
-User-defined PH extension module=pyomo.pysp.plugins.phhistoryextension already imported - skipping
-Trying to import module=/Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/examples/pysp/sizes/config/rhosetter.py
-Module successfully loaded
-Dispatcher is ready.
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI:PYRO://10.0.0.9:7766/0a000009a31420a9622b3e6e1d660e794f
-This is worker Worker_41749@Ozymandias.local
-Listening for work from dispatcher...
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI: PYRO://10.0.0.9:7766/0a000009a31420a9622b3e6e1d660e794f
-This is client 41750@Ozymandias.local
-Initializing PH
-
-Executing user rho setter callback function
-WW PH Extension: Loading user-specified configuration from file=/Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/examples/pysp/sizes/config/wwph.cfg
-WW PH Extension: Loading variable suffixes from file=/Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/examples/pysp/sizes/config/wwph.suffixes
-User-defined PH solution writer module=pyomo.pysp.plugins.jsonsolutionwriter already imported - skipping
-Starting PH
-
-Initiating PH iteration=0
-2014-06-14 21:42:46.593798: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpZ9tfI8.tmpxMZPjB.pyomo.lp
-2014-06-14 21:42:46.683779: Solve completed - number of solutions=1
-2014-06-14 21:42:46.696939: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpp1xePC.tmpoGCDL7.pyomo.lp
-2014-06-14 21:42:46.777698: Solve completed - number of solutions=1
-2014-06-14 21:42:46.790694: Applying solver=cplex to solve problem=/var/folders/p5/4dj9d59x27v7_5_ddgn8r8zm0000gn/T/tmpWdQkbK.tmpeE9V9F.pyomo.lp
-2014-06-14 21:42:46.887135: Solve completed - number of solutions=1
-Sub-problem solve time statistics - Min: 0.06 Avg: 0.07 Max: 0.08 (seconds)
-Number of discrete variables fixed=0 (total=75)
-Number of continuous variables fixed=0 (total=0)
-Convergence metric= 0.0853 First stage cost avg= 162978.2000 Max-Min= 654.60
-Cumulative run-time=0.38 seconds
-Number of discrete variables fixed before final plugin calls=0 (total=75)
-Number of continuous variables fixed before final plugin calls=0 (total=0)
-PH algorithm history written to file=ph_history.json
-PH complete
-Convergence history:
-Iteration Metric Value
- 0 0.0853
-
-***********************************************************************************************
->>>THE EXPECTED SUM OF THE STAGE COST VARIABLES=224420.200033<<<
->>>***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise<<<
-***********************************************************************************************
-Final number of discrete variables fixed=0 (total=75)
-Final number of continuous variables fixed=0 (total=0)
-Final variable values:
- Stage: FirstStage
- (Scenarios: Scenario1 Scenario2 Scenario3 )
- Variable: NumUnitsCutFirstStage
- Index: [3,1] Values: 2500.0000 2500.0000 2500.0000 Max-Min: 0.0000 Avg: 2500.0000
- Index: [3,2] Values: 7500.0000 7500.0000 7500.0000 Max-Min: 0.0000 Avg: 7500.0000
- Index: [3,3] Values: 12500.0000 12500.0000 12500.0000 Max-Min: 0.0000 Avg: 12500.0000
- Index: [5,4] Values: 10000.0000 10000.0000 10000.0000 Max-Min: 0.0000 Avg: 10000.0000
- Index: [5,5] Values: 35000.0000 35000.0000 35000.0000 Max-Min: 0.0000 Avg: 35000.0000
- Index: [6,6] Values: 25000.0000 25000.0000 25000.0000 Max-Min: 0.0000 Avg: 25000.0000
- Index: [7,7] Values: 15000.0000 15000.0000 15000.0000 Max-Min: 0.0000 Avg: 15000.0000
- Index: [9,8] Values: 12500.0000 -0.0000 12500.0000 Max-Min: 12500.0000 Avg: 8333.3333
- Index: [9,9] Values: 12500.0000 -0.0000 12500.0000 Max-Min: 12500.0000 Avg: 8333.3333
- Index: [10,8] Values: -0.0000 12500.0000 0.0000 Max-Min: 12500.0000 Avg: 4166.6667
- Index: [10,9] Values: 0.0000 12500.0000 -0.0000 Max-Min: 12500.0000 Avg: 4166.6667
- Index: [10,10] Values: 5000.0000 5000.0000 5000.0000 Max-Min: 0.0000 Avg: 5000.0000
- (Scenarios: Scenario1 Scenario2 Scenario3 )
- Variable: NumProducedFirstStage
- Index: [3] Values: 36000.0000 40000.0000 51750.0000 Max-Min: 15750.0000 Avg: 42583.3333
- Index: [5] Values: 45000.0000 45000.0000 45000.0000 Max-Min: 0.0000 Avg: 45000.0000
- Index: [6] Values: 42500.0000 50000.0000 25000.0000 Max-Min: 25000.0000 Avg: 39166.6667
- Index: [7] Values: 25500.0000 30000.0000 25500.0000 Max-Min: 4500.0000 Avg: 27000.0000
- Index: [9] Values: 42500.0000 -0.0000 41250.0000 Max-Min: 42500.0000 Avg: 27916.6667
- Index: [10] Values: 8500.0000 35000.0000 11500.0000 Max-Min: 26500.0000 Avg: 18333.3333
- (Scenarios: Scenario1 Scenario2 Scenario3 )
- Variable: ProduceSizeFirstStage
- Index: [3] Values: 1.0000 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- Index: [5] Values: 1.0000 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- Index: [6] Values: 1.0000 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- Index: [7] Values: 1.0000 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- Index: [9] Values: 1.0000 -0.0000 1.0000 Max-Min: 1.0000 Avg: 0.6667
- Index: [10] Values: 1.0000 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: Scenario1 Scenario2 Scenario3 )
- Values: 163331.6000 162677.0000 162926.0000 Max-Min: 654.6000 Avg: 162978.2000
-Final costs:
-Scenario Tree Costs
-***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise
-----------------------------------------------------
-Tree Nodes:
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- Scenario1Node
- Scenario2Node
- Scenario3Node
- Scenarios:
- Scenario1
- Scenario2
- Scenario3
- Expected cost of (sub)tree rooted at node=224420.2000
-
- Name=Scenario1Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- Scenario1
- Expected cost of (sub)tree rooted at node=27284.0000
-
- Name=Scenario2Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- Scenario2
- Expected cost of (sub)tree rooted at node=61426.0000
-
- Name=Scenario3Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- Scenario3
- Expected cost of (sub)tree rooted at node=94555.8000
-
-----------------------------------------------------
-Scenarios:
-
- Name=Scenario1
- Probability=0.3333
- Leaf Node=Scenario1Node
- Tree node sequence:
- RootNode
- Scenario1Node
- Stage= FirstStage Cost=163331.6000
- Stage= SecondStage Cost=27284.0000
- Total scenario cost=190615.6000
-
- Name=Scenario2
- Probability=0.3333
- Leaf Node=Scenario2Node
- Tree node sequence:
- RootNode
- Scenario2Node
- Stage= FirstStage Cost=162677.0000
- Stage= SecondStage Cost=61426.0000
- Total scenario cost=224103.0000
-
- Name=Scenario3
- Probability=0.3333
- Leaf Node=Scenario3Node
- Tree node sequence:
- RootNode
- Scenario3Node
- Stage= FirstStage Cost=162926.0000
- Stage= SecondStage Cost=94555.8000
- Total scenario cost=257481.8000
-
-----------------------------------------------------
-***WARNING***: PH exiting with fixed or freed variables in the scenario tree queue whose statuses have not been pushed to the scenario instances. This is because these requests were placed in the queue after the most recent solve. If these statuses are pushed to the scenario instances, a new solution should be obtained in order to reflect accurate solution data within the scenario tree. This warning can be safely ignored in most cases.
-
-Total PH execution time=0.41 seconds
-
-Scenario tree solution written to file=ph_solution.json
-Shutting down Pyro solver components
-Dispatcher received request to shut down - initiating...
-
-Total execution time=3.54 seconds
-Name Server gracefully stopped.
-Lost connection to dispatch server - shutting down...
diff --git a/pyomo/pysp/tests/examples/baselines/TestPHSizes3Serial.test1.baseline b/pyomo/pysp/tests/examples/baselines/TestPHSizes3Serial.test1.baseline
deleted file mode 100644
index 2db88efb2ce..00000000000
--- a/pyomo/pysp/tests/examples/baselines/TestPHSizes3Serial.test1.baseline
+++ /dev/null
@@ -1,157 +0,0 @@
-User-defined PH extension module=pyomo.pysp.plugins.phhistoryextension already imported - skipping
-Trying to import module=/Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/examples/pysp/sizes/config/rhosetter.py
-Module successfully loaded
-Initializing PH
-
-Executing user rho setter callback function
-WW PH Extension: Loading user-specified configuration from file=/Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/examples/pysp/sizes/config/wwph.cfg
-WW PH Extension: Loading variable suffixes from file=/Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/examples/pysp/sizes/config/wwph.suffixes
-User-defined PH solution writer module=pyomo.pysp.plugins.jsonsolutionwriter already imported - skipping
-Starting PH
-
-Initiating PH iteration=0
-Sub-problem solve time statistics - Min: 0.06 Avg: 0.07 Max: 0.08 (seconds)
-Number of discrete variables fixed=0 (total=75)
-Number of continuous variables fixed=0 (total=0)
-Convergence metric= 0.0853 First stage cost avg= 162978.2000 Max-Min= 654.60
-Cumulative run-time=0.28 seconds
-Number of discrete variables fixed before final plugin calls=0 (total=75)
-Number of continuous variables fixed before final plugin calls=0 (total=0)
-PH algorithm history written to file=ph_history.json
-PH complete
-Convergence history:
-Iteration Metric Value
- 0 0.0853
-
-***********************************************************************************************
->>>THE EXPECTED SUM OF THE STAGE COST VARIABLES=224420.200033<<<
->>>***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise<<<
-***********************************************************************************************
-Final number of discrete variables fixed=0 (total=75)
-Final number of continuous variables fixed=0 (total=0)
-Final variable values:
- Stage: FirstStage
- (Scenarios: Scenario1 Scenario2 Scenario3 )
- Variable: NumUnitsCutFirstStage
- Index: [3,1] Values: 2500.0000 2500.0000 2500.0000 Max-Min: 0.0000 Avg: 2500.0000
- Index: [3,2] Values: 7500.0000 7500.0000 7500.0000 Max-Min: 0.0000 Avg: 7500.0000
- Index: [3,3] Values: 12500.0000 12500.0000 12500.0000 Max-Min: 0.0000 Avg: 12500.0000
- Index: [5,4] Values: 10000.0000 10000.0000 10000.0000 Max-Min: 0.0000 Avg: 10000.0000
- Index: [5,5] Values: 35000.0000 35000.0000 35000.0000 Max-Min: 0.0000 Avg: 35000.0000
- Index: [6,6] Values: 25000.0000 25000.0000 25000.0000 Max-Min: 0.0000 Avg: 25000.0000
- Index: [7,7] Values: 15000.0000 15000.0000 15000.0000 Max-Min: 0.0000 Avg: 15000.0000
- Index: [9,8] Values: 12500.0000 -0.0000 12500.0000 Max-Min: 12500.0000 Avg: 8333.3333
- Index: [9,9] Values: 12500.0000 -0.0000 12500.0000 Max-Min: 12500.0000 Avg: 8333.3333
- Index: [10,8] Values: -0.0000 12500.0000 0.0000 Max-Min: 12500.0000 Avg: 4166.6667
- Index: [10,9] Values: 0.0000 12500.0000 -0.0000 Max-Min: 12500.0000 Avg: 4166.6667
- Index: [10,10] Values: 5000.0000 5000.0000 5000.0000 Max-Min: 0.0000 Avg: 5000.0000
- (Scenarios: Scenario1 Scenario2 Scenario3 )
- Variable: NumProducedFirstStage
- Index: [3] Values: 36000.0000 40000.0000 51750.0000 Max-Min: 15750.0000 Avg: 42583.3333
- Index: [5] Values: 45000.0000 45000.0000 45000.0000 Max-Min: 0.0000 Avg: 45000.0000
- Index: [6] Values: 42500.0000 50000.0000 25000.0000 Max-Min: 25000.0000 Avg: 39166.6667
- Index: [7] Values: 25500.0000 30000.0000 25500.0000 Max-Min: 4500.0000 Avg: 27000.0000
- Index: [9] Values: 42500.0000 -0.0000 41250.0000 Max-Min: 42500.0000 Avg: 27916.6667
- Index: [10] Values: 8500.0000 35000.0000 11500.0000 Max-Min: 26500.0000 Avg: 18333.3333
- (Scenarios: Scenario1 Scenario2 Scenario3 )
- Variable: ProduceSizeFirstStage
- Index: [3] Values: 1.0000 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- Index: [5] Values: 1.0000 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- Index: [6] Values: 1.0000 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- Index: [7] Values: 1.0000 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- Index: [9] Values: 1.0000 -0.0000 1.0000 Max-Min: 1.0000 Avg: 0.6667
- Index: [10] Values: 1.0000 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: Scenario1 Scenario2 Scenario3 )
- Values: 163331.6000 162677.0000 162926.0000 Max-Min: 654.6000 Avg: 162978.2000
-Final costs:
-Scenario Tree Costs
-***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise
-----------------------------------------------------
-Tree Nodes:
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- Scenario1Node
- Scenario2Node
- Scenario3Node
- Scenarios:
- Scenario1
- Scenario2
- Scenario3
- Expected cost of (sub)tree rooted at node=224420.2000
-
- Name=Scenario1Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- Scenario1
- Expected cost of (sub)tree rooted at node=27284.0000
-
- Name=Scenario2Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- Scenario2
- Expected cost of (sub)tree rooted at node=61426.0000
-
- Name=Scenario3Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- Scenario3
- Expected cost of (sub)tree rooted at node=94555.8000
-
-----------------------------------------------------
-Scenarios:
-
- Name=Scenario1
- Probability=0.3333
- Leaf Node=Scenario1Node
- Tree node sequence:
- RootNode
- Scenario1Node
- Stage= FirstStage Cost=163331.6000
- Stage= SecondStage Cost=27284.0000
- Total scenario cost=190615.6000
-
- Name=Scenario2
- Probability=0.3333
- Leaf Node=Scenario2Node
- Tree node sequence:
- RootNode
- Scenario2Node
- Stage= FirstStage Cost=162677.0000
- Stage= SecondStage Cost=61426.0000
- Total scenario cost=224103.0000
-
- Name=Scenario3
- Probability=0.3333
- Leaf Node=Scenario3Node
- Tree node sequence:
- RootNode
- Scenario3Node
- Stage= FirstStage Cost=162926.0000
- Stage= SecondStage Cost=94555.8000
- Total scenario cost=257481.8000
-
-----------------------------------------------------
-***WARNING***: PH exiting with fixed or freed variables in the scenario tree queue whose statuses have not been pushed to the scenario instances. This is because these requests were placed in the queue after the most recent solve. If these statuses are pushed to the scenario instances, a new solution should be obtained in order to reflect accurate solution data within the scenario tree. This warning can be safely ignored in most cases.
-
-Total PH execution time=0.31 seconds
-
-Scenario tree solution written to file=ph_solution.json
-
-Total execution time=0.43 seconds
diff --git a/pyomo/pysp/tests/examples/compare_histories.py b/pyomo/pysp/tests/examples/compare_histories.py
deleted file mode 100644
index 580b2fc4bfe..00000000000
--- a/pyomo/pysp/tests/examples/compare_histories.py
+++ /dev/null
@@ -1,118 +0,0 @@
-# ___________________________________________________________________________
-#
-# Pyomo: Python Optimization Modeling Objects
-# Copyright 2017 National Technology and Engineering Solutions of Sandia, LLC
-# Under the terms of Contract DE-NA0003525 with National Technology and
-# Engineering Solutions of Sandia, LLC, the U.S. Government retains certain
-# rights in this software.
-# This software is distributed under the 3-clause BSD License.
-# ___________________________________________________________________________
-
-import math
-import sys
-
-from pyutilib.misc import compare_repn
-
-from pyomo.pysp.plugins.phhistoryextension import load_history
-
-import six
-
-if six.PY3:
- from collections.abc import MutableMapping as collections_MutableMapping
-else:
- from collections import MutableMapping as collections_MutableMapping
-
-
-assert len(sys.argv) == 3
-
-_diff_tolerance = 1e-6
-fail_flag = False
-
-def flatten(d, parent_key=''):
- items = []
- for k, v in d.items():
- new_key = parent_key + '_' + k if parent_key else k
- if v and isinstance(v, collections_MutableMapping):
- items.extend(flatten(v, new_key).items())
- else:
- items.append((new_key, v))
- return dict(items)
-
-f1 = sys.argv[1]
-scenariotree1, history1, iter_keys1 = load_history(f1)
-f2 = sys.argv[2]
-scenariotree2, history2, iter_keys2 = load_history(f2)
-
-if scenariotree1 != scenariotree2:
- print("Scenario Tree Mismatch")
- fail_flag = True
-
-if iter_keys1 != iter_keys2:
- print("Total PH Iteration Mismatch: %s != %s"
- % (len(iter_keys1), len(iter_keys2)))
- fail_flag = True
-
-valid_iters = set(iter_keys1).intersection(iter_keys2)
-valid_iters = sorted([int(v) for v in valid_iters])
-valid_iters = [str(k) for k in valid_iters]
-
-no_key = object()
-start_diff_key = no_key
-for key in valid_iters:
- res1 = history1[key]
- res2 = history2[key]
- try:
- compare_repn(res1, res2, tolerance=_diff_tolerance)
- except:
- print("Differences begin at iteration %s"
- % (key))
- start_diff_key = key
- fail_flag = True
-
- if start_diff_key is not no_key:
- break
-
-keys_to_compare = []
-if start_diff_key is not no_key:
- start_idx = valid_iters.index(start_diff_key)
- keys_to_compare = valid_iters[start_idx:min(len(valid_iters),start_idx+5)]
-for diff_key in keys_to_compare:
- print("\n")
- print("@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@")
- print("Inspecting results at iteration %s"
- % (diff_key))
- res1 = flatten(history1[diff_key])
- res2 = flatten(history2[diff_key])
- all_keys = set(res1.keys()).union(set(res2.keys()))
- res1_missing_keys = all_keys-set(res1.keys())
- res2_missing_keys = all_keys-set(res2.keys())
- if len(res1_missing_keys):
- print("Missing keys from results: %s"
- % (res1_missing_keys))
- if len(res2_missing_keys):
- print("Missing keys from results: %s"
- % (res2_missing_keys))
- for key in sorted(all_keys):
- val1 = res1[key]
- val2 = res2[key]
- if (type(val1) is float or type(val2) is float) and \
- type(val1) in [int,float] \
- and type(val2) in [int,float]:
- if math.fabs(val1-val2) > _diff_tolerance:
- print(key)
- print("\t "+str(val1))
- print("\t "+str(val2))
- else:
- if val1 != val2:
- print(key)
- print("\t "+str(val1))
- print("\t "+str(val2))
-
-if fail_flag:
- print("\n")
- print("THERE WAS A FAILURE")
- print("\n")
-else:
- print("\n")
- print("ALL CHECKS PASS")
- print("\n")
diff --git a/pyomo/pysp/tests/examples/compare_solutions.py b/pyomo/pysp/tests/examples/compare_solutions.py
deleted file mode 100644
index eafeb89aaf5..00000000000
--- a/pyomo/pysp/tests/examples/compare_solutions.py
+++ /dev/null
@@ -1,92 +0,0 @@
-# ___________________________________________________________________________
-#
-# Pyomo: Python Optimization Modeling Objects
-# Copyright 2017 National Technology and Engineering Solutions of Sandia, LLC
-# Under the terms of Contract DE-NA0003525 with National Technology and
-# Engineering Solutions of Sandia, LLC, the U.S. Government retains certain
-# rights in this software.
-# This software is distributed under the 3-clause BSD License.
-# ___________________________________________________________________________
-
-import math
-import sys
-
-from pyutilib.misc import compare_repn
-
-from pyomo.pysp.plugins.phhistoryextension import load_solution
-
-import six
-
-if six.PY3:
- from collections.abc import MutableMapping as collections_MutableMapping
-else:
- from collections import MutableMapping as collections_MutableMapping
-
-
-assert len(sys.argv) == 3
-
-_diff_tolerance = 1e-6
-fail_flag = False
-
-def flatten(d, parent_key=''):
- items = []
- for k, v in d.items():
- new_key = parent_key + '_' + k if parent_key else k
- if v and isinstance(v, collections_MutableMapping):
- items.extend(flatten(v, new_key).items())
- else:
- items.append((new_key, v))
- return dict(items)
-
-st1, r1 = load_solution(sys.argv[1])
-
-st2, r2 = load_solution(sys.argv[2])
-
-if st1 != st2:
- print("Scenario Tree Mismatch")
- fail_flag = True
-
-try:
- compare_repn(r1, r2, tolerance=_diff_tolerance)
-except (ValueError, AssertionError):
- print("Differences found in solutions. Message:\n")
- print(sys.exc_info()[1])
- fail_flag = True
-
-if fail_flag:
- print("Inspecting flattened solutions")
- res1 = flatten(r1)
- res2 = flatten(r2)
- all_keys = set(res1.keys()).union(set(res2.keys()))
- res1_missing_keys = all_keys-set(res1.keys())
- res2_missing_keys = all_keys-set(res2.keys())
- if len(res1_missing_keys):
- print("Missing keys from results: %s"
- % (res1_missing_keys))
- if len(res2_missing_keys):
- print("Missing keys from results: %s"
- % (res2_missing_keys))
- for key in sorted(all_keys):
- val1 = res1[key]
- val2 = res2[key]
- if (type(val1) is float or type(val2) is float) and \
- type(val1) in [int,float] \
- and type(val2) in [int,float]:
- if math.fabs(val1-val2) > _diff_tolerance:
- print(key)
- print("\t "+str(val1))
- print("\t "+str(val2))
- else:
- if val1 != val2:
- print(key)
- print("\t "+str(val1))
- print("\t "+str(val2))
-
-if fail_flag:
- print("\n")
- print("THERE WAS A FAILURE")
- print("\n")
-else:
- print("\n")
- print("ALL CHECKS PASS")
- print("\n")
diff --git a/pyomo/pysp/tests/examples/ef_checker.py b/pyomo/pysp/tests/examples/ef_checker.py
deleted file mode 100644
index 60b880e82af..00000000000
--- a/pyomo/pysp/tests/examples/ef_checker.py
+++ /dev/null
@@ -1,328 +0,0 @@
-# ___________________________________________________________________________
-#
-# Pyomo: Python Optimization Modeling Objects
-# Copyright 2017 National Technology and Engineering Solutions of Sandia, LLC
-# Under the terms of Contract DE-NA0003525 with National Technology and
-# Engineering Solutions of Sandia, LLC, the U.S. Government retains certain
-# rights in this software.
-# This software is distributed under the 3-clause BSD License.
-# ___________________________________________________________________________
-
-import json
-import sys
-import os
-
-from pyomo.pysp.tests.examples.ph_checker import \
- _update_exception_message, \
- assert_value_equals, \
- assert_float_equals, \
- validate_probabilities, \
- validate_variable_set, \
- validate_leaf_stage_costs
-
-def validate_nonanticipativity(options,
- scenario_tree,
- scenario_solutions,
- node_solutions):
-
- # Check that variables with non-anticipativity constraints have
- # converged
- for node_name, node in scenario_tree['nodes'].items():
- assert node_name == node['name']
- node_sol = node_solutions[node_name]
- for scenario_name in node['scenarios']:
- scenario_sol = scenario_solutions[scenario_name]
- # variables, objective, stage costs
- for variable_name, variable_node_sol in node_sol['variables'].items():
- variable_scenario_sol = scenario_sol['variables'][variable_name]
- try:
- assert_float_equals(variable_node_sol['solution'],
- variable_scenario_sol['value'],
- options.absolute_tolerance)
- except AssertionError as e:
- msg = ""
- msg += ("Problem validating nonanticipativity within "
- "node %s for variable %s in scenario %s. "
- "Variable value in scenario solution does not "
- "match node solution.\n"
- % (node_name, variable_name, scenario_name))
- msg += ("Node value: %r\n"
- % (variable_node_sol['solution']))
- msg += ("Scenario value: %r\n"
- % (variable_scenario_sol['value']))
- _update_exception_message(msg, e)
- raise
- try:
- assert_value_equals(variable_node_sol['fixed'],
- variable_scenario_sol['fixed'])
- except AssertionError as e:
- msg = ""
- msg += ("Problem validating nonanticipativity within "
- "node %s for variable %s in scenario %s. "
- "Variable fixed status in scenario solution does not "
- "match node fixed status.\n"
- % (node_name, variable_name, scenario_name))
- msg += ("Node fixed status: %s\n"
- % (variable_node_sol['fixed']))
- msg += ("Scenario fixed status: %s\n"
- % (variable_scenario_sol['fixed']))
- _update_exception_message(msg, e)
- raise
-
-def validate_expected_node_costs(options,
- scenario_tree,
- scenario_solutions,
- node_solutions):
-
- # Check that reported expected node costs make sense
- # and that the expected node cost of the root node
- # equals the ef objective function
-
- # sorted by time
- sorted_stages = \
- sorted(scenario_tree['stages'].values(),key=lambda x: x['order'])
- # leaf to root
- reverse_sorted_stages = reversed(sorted_stages)
- node_expected_costs = \
- dict((node_name,0.0) for node_name in scenario_tree['nodes'])
- for stage in reverse_sorted_stages:
- assert stage is scenario_tree['stages'][stage['name']]
- stage_name = stage['name']
- for node_name in stage['nodes']:
- node = scenario_tree['nodes'][node_name]
- assert node['name'] == node_name
- node_scenario_names = node['scenarios']
-
- single_scenario_name = node_scenario_names[0]
- single_scenario_stage_cost = \
- scenario_solutions[single_scenario_name]\
- ['stage costs'][stage_name]
- node_cost = 0.0
- for scenario_name in node_scenario_names:
- scenario = scenario_tree['scenarios'][scenario_name]
- scenario_stage_cost = \
- scenario_solutions[scenario_name]['stage costs'][stage_name]
- node_cost += \
- scenario['probability'] * \
- scenario_solutions[scenario_name]['stage costs'][stage_name]
-
- try:
- assert_float_equals(single_scenario_stage_cost,
- scenario_stage_cost,
- options.absolute_tolerance)
- except AssertionError as e:
- msg = ""
- msg += ("Problem validating stage costs "
- "for stage %s of scenarios within node %s. "
- "Not all scenarios report the same stage cost.\n"
- % (stage_name, node_name))
- msg += ("Scenario %s stage cost: %r\n"
- % (scenario_name, scenario_stage_cost))
- msg += ("Scenario %s stage cost: %r\n"
- % (single_scenario_name, single_scenario_stage_cost))
- _update_exception_message(msg, e)
- raise
-
- node_cost /= node['probability']
- node_expected_costs[node_name] += node_cost
- for child_node_name in node['children']:
- child_node = scenario_tree['nodes'][child_node_name]
- node_expected_costs[node_name] += \
- child_node['conditional probability'] * \
- node_expected_costs[child_node_name]
-
- del child_node
-
- del node
- del node_scenario_names
- del node_cost
- del single_scenario_stage_cost
-
- del stage_name
-
- for node_name, expected_cost in node_expected_costs.items():
- node_sol = node_solutions[node_name]
- try:
- assert_float_equals(expected_cost,
- node_sol['expected cost'],
- options.absolute_tolerance)
- except AssertionError as e:
- msg = ""
- msg += ("Problem validating node expected cost for node %s\n"
- % (node_name))
- msg += ("Node expected cost in solution: %r\n"
- % (node_sol['expected cost']))
- msg += ("Computed average from stage costs: %r\n"
- % (expected_cost))
- _update_exception_message(msg, e)
- raise
-
- del node_sol
-
- # get the root node
- assert len(scenario_tree['stages'][sorted_stages[0]['name']]['nodes']) == 1
- root_node_name = scenario_tree['stages'][sorted_stages[0]['name']]['nodes'][0]
- root_node_expected_cost = node_expected_costs[root_node_name]
- expected_scenario_objective = 0.0
- expected_scenario_cost1 = 0.0
- expected_scenario_cost2 = 0.0
- for scenario_name, scenario in scenario_tree['scenarios'].items():
- scenario_sol = scenario_solutions[scenario_name]
- expected_scenario_objective += \
- scenario['probability']*scenario_sol['objective']
- expected_scenario_cost1 += \
- scenario['probability']*scenario_sol['cost']
- expected_scenario_cost2 += \
- scenario['probability'] * \
- sum(stage_cost for stage_cost in scenario_sol['stage costs'].values())
-
-
- try:
- assert_float_equals(root_node_expected_cost,
- expected_scenario_cost1,
- options.absolute_tolerance)
- except AssertionError as e:
- msg = ""
- msg += ("Problem validating root node expected cost\n")
- msg += ("Root node expected cost in solution: %r\n"
- % (root_node_expected_cost))
- msg += ("Computed average from scenario costs in solution: %r\n"
- % (expected_scenario_cost1))
- _update_exception_message(msg, e)
- raise
-
- try:
- assert_float_equals(root_node_expected_cost,
- expected_scenario_cost2,
- options.absolute_tolerance)
- except AssertionError as e:
- msg = ""
- msg += ("Problem validating root node expected cost\n")
- msg += ("Root node expected cost in solution: %r\n"
- % (root_node_expected_cost))
- msg += ("Computed average from scenario stage costs in solution: %r\n"
- % (expected_scenario_cost2))
- _update_exception_message(msg, e)
- raise
-
- try:
- assert_float_equals(root_node_expected_cost,
- expected_scenario_objective,
- options.absolute_tolerance)
- except AssertionError as e:
- msg = ""
- msg += ("Problem validating root node expected cost\n")
- msg += ("Root node expected cost in solution: %r\n"
- % (root_node_expected_cost))
- msg += ("Computed average from scenario objectives in solution: %r\n"
- % (expected_scenario_objective))
- _update_exception_message(msg, e)
- raise
-
-def validate_ef(options):
-
- results = None
- with open(options.ef_solution_filename) as f:
- results = json.load(f)
-
- scenario_tree = results['scenario tree']
-
- try:
- validate_probabilities(options,
- scenario_tree)
- except AssertionError as e:
- msg = "FAILURE:\n"
- msg += ("Problem validating probabilities for scenario "
- "tree in ef solution from file: %s"
- % (options.ef_solution_filename))
- _update_exception_message(msg, e)
- raise
-
- scenario_solutions = results['scenario solutions']
- node_solutions = results['node solutions']
-
- assert set(scenario_tree['nodes'].keys()) \
- == set(node_solutions.keys())
- assert set(scenario_tree['scenarios']) \
- == set(scenario_solutions.keys())
-
- try:
- validate_variable_set(options,
- scenario_tree,
- scenario_solutions,
- node_solutions)
- except AssertionError as e:
- msg = "FAILURE:\n"
- msg += ("Problem validating variable set "
- "in ef solution from file: %s"
- % (options.ef_solution_filename))
- _update_exception_message(msg, e)
- raise
-
- try:
- validate_nonanticipativity(options,
- scenario_tree,
- scenario_solutions,
- node_solutions)
- except AssertionError as e:
- msg = "FAILURE:\n"
- msg += ("Problem validating nonanticipativity "
- "in ef solution from file: %s"
- % (options.ef_solution_filename))
- _update_exception_message(msg, e)
- raise
-
- try:
- validate_leaf_stage_costs(options,
- scenario_tree,
- scenario_solutions,
- node_solutions)
- except AssertionError as e:
- msg = "FAILURE:\n"
- msg += ("Problem validating leaf-stage costs "
- "in ef solution from file: %s"
- % (options.ef_solution_filename))
- _update_exception_message(msg, e)
- raise
-
- try:
- validate_expected_node_costs(options,
- scenario_tree,
- scenario_solutions,
- node_solutions)
- except AssertionError as e:
- msg = "FAILURE:\n"
- msg += ("Problem validating expected node costs "
- "in ef solution from file: %s"
- % (options.ef_solution_filename))
- _update_exception_message(msg, e)
- raise
-
-def construct_parser():
-
- import argparse
- parser = argparse.ArgumentParser(
- description=('Validate a JSON ef solution output file that '
- 'was created the jsonsolutionwriter plugin'))
- parser.add_argument('ef_solution_filename', metavar='JSON_SOLUTION', type=str,
- action='store', default=None,
- help=('JSON formatted output file to '
- 'validate'))
- parser.add_argument('-t','--tolerance',dest='absolute_tolerance',
- action='store', default=1e-6, type=float,
- help=('absolute tolerance used when comparing '
- 'floating point values (default: %(default)s)'))
-
- return parser
-
-
-def main(args=None):
-
- parser = construct_parser()
- options = parser.parse_args(args=args)
- assert os.path.exists(options.ef_solution_filename)
- validate_ef(options)
-
-if __name__ == "__main__":
-
- main(args=sys.argv[1:])
diff --git a/pyomo/pysp/tests/examples/ph_checker.py b/pyomo/pysp/tests/examples/ph_checker.py
deleted file mode 100644
index 416ebc02c68..00000000000
--- a/pyomo/pysp/tests/examples/ph_checker.py
+++ /dev/null
@@ -1,628 +0,0 @@
-# ___________________________________________________________________________
-#
-# Pyomo: Python Optimization Modeling Objects
-# Copyright 2017 National Technology and Engineering Solutions of Sandia, LLC
-# Under the terms of Contract DE-NA0003525 with National Technology and
-# Engineering Solutions of Sandia, LLC, the U.S. Government retains certain
-# rights in this software.
-# This software is distributed under the 3-clause BSD License.
-# ___________________________________________________________________________
-
-import sys
-import shelve
-import json
-import os
-
-# TODO:
-# - check what weights are for fixed variables (should be zero)
-# - check that fix queue from previous iter is always pushed
-
-# don't use this anywhere but this file, it is ugly
-def _update_exception_message(msg, e):
- # assert without any args means a coding error
- # in this file, otherwise we want to stack the assertion
- # messages in order to create more informative output
- if len(e.args):
- e.args = (msg+"\n"+e.args[0],)+e.args[1:]
- try:
- e.message = msg + "\n" + e.message
- except:
- # Not python 2
- pass
-
-def assert_value_equals(x,y):
- if x != y:
- raise AssertionError("%s != %s\n" % (x,y))
-
-def assert_float_gt(ub,lb,tol):
- if (ub is None) or (lb is None):
- raise AssertionError("%s !>= %s\n" % (ub,lb))
- if lb-ub > tol:
- raise AssertionError("%.17g !>= %.17g\n" % (ub,lb))
-
-def assert_float_equals(x,y,tol):
- if (x is None) or (y is None):
- raise AssertionError("%s != %s\n" % (x,y))
- if abs(x-y) > tol:
- raise AssertionError("%.17g != %.17g\n" % (x,y))
-
-def validate_probabilities(options, scenario_tree):
-
- for scenario_name, scenario in scenario_tree['scenarios'].items():
- scenario_probability = scenario['probability']
- test_probability = 1.0
- node_variables = set()
- # check that the probabilities on the scenario tree make sense
- for node_name in scenario['nodes']:
- test_probability *= \
- scenario_tree['nodes'][node_name]['conditional probability']
- try:
- assert_float_equals(scenario_probability,
- test_probability,
- options.absolute_tolerance)
- except AssertionError as e:
- msg = ""
- msg += ("Problem validating scenario tree probabilities "
- "for scenario %s. Product of node conditional "
- "probabilities does not match scenario probability.\n"
- % (scenario_name))
- msg += ("Scenario Probability: %r\n" % (scenario_probability))
- msg += ("Node Conditional Product: %r\n" % (test_probability))
- for node_name in scenario['nodes']:
- msg += ("\t%s: %r\n"
- % (node_name,
- scenario_tree['nodes'][node_name]['conditional probability']))
- _update_exception_message(msg, e)
- raise
-
-def validate_variable_set(options, scenario_tree, scenario_solutions, node_solutions):
-
- for scenario_name, scenario in scenario_tree['scenarios'].items():
- scenario_variable_set = \
- set(scenario_solutions[scenario_name]['variables'].keys())
- node_variable_set = set()
- for node_name in scenario['nodes']:
- node_variable_set.update(node_solutions[node_name]['variables'].keys())
-
- try:
- assert node_variable_set == scenario_variable_set
- except AssertionError as e:
- msg = ("Problem validating the set of reported node "
- "variables against the set of reported scenario "
- "variables. Sets do not match:\n")
- msg += ("Symmetric Difference: %s\n"
- % (set.symmetric_difference(node_variable_set,
- scenario_variable_set)))
- raise AssertionError(msg)
-
-def validate_leaf_stage_costs(options,
- scenario_tree,
- scenario_solutions,
- node_solutions):
-
- # check that the stage cost of the last stage for scenario solutions
- # is equal to the expected node cost for the corresponding leaf node
- # solution
- for scenario_name, scenario in scenario_tree['scenarios'].items():
- scenario_sol = scenario_solutions[scenario_name]
- for stage_name, stage_cost in scenario_sol['stage costs'].items():
- found_one = False
- for node_name in scenario['nodes']:
- node = scenario_tree['nodes'][node_name]
- node_sol = node_solutions[node_name]
- if node['stage'] == stage_name:
- found_one = True
- if len(node['children']) == 0:
- try:
- assert_float_equals(stage_cost,
- node_sol['expected cost'],
- options.absolute_tolerance)
- except AssertionError as e:
- msg = ""
- msg += ("Problem validating leaf stage cost for "
- "scenario %s. Expected node cost in leaf "
- "node solution does not match final stage "
- "cost in scenario solution.\n"
- % (scenario_name))
- msg += ("Expected cost of node %s: %r\n"
- % (node_name, node_sol['expected cost']))
- msg += ("Scenario cost of stage %s: %r\n"
- % (stage_name, stage_cost))
- _update_exception_message(msg, e)
- raise
-
- assert found_one
-
-def validate_scenario_costs(options, scenario_tree, scenario_solutions):
- for scenario_name, scenario in scenario_tree['scenarios'].items():
- assert scenario_name == scenario['name']
- scenario_sol = scenario_solutions[scenario_name]
-
- try:
- assert scenario_sol['objective'] is not None, "value cannot be None"
- assert scenario_sol['cost'] is not None, "value cannot be None"
- assert scenario_sol['ph weight term'] is not None, "value cannot be None"
- assert scenario_sol['ph proximal term'] is not None, "value cannot be None"
- assert_float_equals(scenario_sol['objective'],
- scenario_sol['cost']+\
- scenario_sol['ph weight term']+\
- scenario_sol['ph proximal term'],
- options.absolute_tolerance)
- except AssertionError as e:
- msg = ""
- msg += ("Problem validating objective terms for "
- "scenario %s. Sum of cost and ph terms does not "
- "match objective\n" % (scenario_name))
- msg += ("Objective: %r\n" % (scenario_sol['objective']))
- msg += ("Cost: %r\n" % (scenario_sol['cost']))
- msg += ("PH Weight Term: %r\n" % (scenario_sol['ph weight term']))
- msg += ("PH Proximal Term: %r\n" % (scenario_sol['ph proximal term']))
- _update_exception_message(msg, e)
- raise
-
- try:
- assert_float_equals(scenario_sol['cost'],
- sum(scenario_sol['stage costs'][stage_name] \
- for stage_name in scenario_tree['stages']),
- options.absolute_tolerance)
- except AssertionError as e:
- msg = ""
- msg += ("Problem validating stage costs terms for "
- "scenario %s. Sum of stage costs does not match "
- "value of total cost term used in objective function.\n"
- % (scenario_name))
- msg += ("Cost: %.17g\n" % (scenario_sol['cost']))
- for stage_name in scenario_tree['stages']:
- msg += ("%s Cost: %.17g\n" % (stage_name, scenario_sol['stage costs'][stage_name]))
- _update_exception_message(msg, e)
- raise
-
-def validate_variable_statistics(options,
- scenario_tree,
- node_solutions,
- scenario_solutions):
-
- for node_name, node in scenario_tree['nodes'].items():
- try:
- assert node_name == node['name']
- node_sol = node_solutions[node_name]
- is_leaf_node = bool(len(node['children']) == 0)
-
- for scenario_name in node['scenarios']:
- scenario_sol = scenario_solutions[scenario_name]
-
- variable_wbar = dict.fromkeys(node_sol['variables'],0)
- variable_avg = dict.fromkeys(node_sol['variables'],0)
- variable_min = dict.fromkeys(node_sol['variables'],None)
- variable_max = dict.fromkeys(node_sol['variables'],None)
- variable_fixed_count = dict.fromkeys(node_sol['variables'],0)
- variable_fixed_value = \
- dict((variable_name,dict.fromkeys(node['scenarios'],None)) \
- for variable_name in node_sol['variables'])
-
- for variable_name in node_sol['variables']:
- for scenario_name in node['scenarios']:
- probability = scenario_tree['scenarios'][scenario_name]['probability']
- scenario_sol = scenario_solutions[scenario_name]
- scenario_variables_sol = scenario_sol['variables']
- var_sol = scenario_sol['variables'][variable_name]
- varval = var_sol['value']
- variable_avg[variable_name] += probability*varval
- if var_sol['weight'] is not None:
- variable_wbar[variable_name] += \
- probability*var_sol['weight']
- else:
- variable_wbar[variable_name] = None
-
- if (variable_min[variable_name] is None) or \
- (varval < variable_min[variable_name]):
- variable_min[variable_name] = varval
- if (variable_max[variable_name] is None) or \
- (varval > variable_max[variable_name]):
- variable_max[variable_name] = varval
- variable_fixed_count[variable_name] += int(var_sol['fixed'])
- if var_sol['fixed']:
- variable_fixed_value[variable_name][scenario_name] = varval
-
- for variable_name, variable_sol in node_sol['variables'].items():
- scaled_avg = variable_avg[variable_name]/node['probability']
- # validate fixed count
- try:
- if variable_sol['fixed']:
- assert_value_equals(variable_fixed_count[variable_name],
- len(node['scenarios']))
- else:
- assert_value_equals(variable_fixed_count[variable_name],
- 0)
- except AssertionError as e:
- msg = ""
- msg += ("Problem validating fixed status for variable %s. "
- "The fixed status of this variable is not consistent "
- "across all scenarios within this node.\n"
- % (variable_name))
- _update_exception_message(msg, e)
- raise
-
- if variable_sol['fixed']:
- scenario_name = None
- scenario_value = None
- try:
- dict_items = list(variable_fixed_value[variable_name].items())
- for (scen1_name, scen1_val), (scen2_name, scen2_val) in zip(dict_items, dict_items[1:]):
- scenario_name = scen1_name
- scenario_value = scen1_val
- assert_float_equals(scen1_val,
- scen2_val,
- options.absolute_tolerance)
- for scen_name, scen_val in dict_items:
- scenario_name = scen_name
- scenario_value = scen_val
- assert_float_equals(scen_val,
- scaled_avg,
- options.absolute_tolerance)
-
- except AssertionError as e:
- msg = ""
- msg += ("Problem validating fixed status for variable %s "
- "in scenario %s. Fixed value does not match that of "
- "other scenarios in this node or that of node average.\n"
- % (variable_name, scenario_name))
- msg += ("Scenario %s fixed value: %.17g\n"
- % (scenario_name, scenario_value))
- msg += ("Computed average from scenario solutions: %.17g\n"
- % (scaled_avg))
- _update_exception_message(msg, e)
- raise
- del scenario_name
- del scenario_value
-
- # validate node "solution" (average)
- try:
- assert_float_equals(variable_sol['solution'],
- scaled_avg,
- options.absolute_tolerance)
- except AssertionError as e:
- msg = ""
- msg += ("Problem validating node 'solution' for variable %s\n"
- % (variable_name))
- msg += ("Node 'solution' in solution: %.17g\n"
- % variable_sol['solution'])
- msg += ("Computed average from scenario solutions: %.17g\n"
- % (scaled_avg))
- _update_exception_message(msg, e)
- raise
-
- if not is_leaf_node:
- # validate node average
- try:
- assert_float_equals(variable_sol['average'],
- scaled_avg,
- options.absolute_tolerance)
- except AssertionError as e:
- msg = ""
- msg += ("Problem validating node average for variable %s\n"
- % (variable_name))
- msg += ("Node average in solution: %.17g\n"
- % variable_sol['average'])
- msg += ("Computed average from scenario solutions: %.17g\n"
- % (scaled_avg))
- _update_exception_message(msg, e)
- raise
-
- # validate node max
- try:
- assert_float_equals(variable_sol['maximum'],
- variable_max[variable_name],
- options.absolute_tolerance)
- except AssertionError as e:
- msg = ""
- msg += ("Problem validating node maximum for variable %s\n"
- % (variable_name))
- msg += ("Node maximum in solution: %.17g\n"
- % variable_sol['maximum'])
- msg += ("Computed maximum from scenario solutions: %.17g\n"
- % (variable_max[variable_name]))
- _update_exception_message(msg, e)
- raise
-
- # validate node min
- try:
- assert_float_equals(variable_sol['minimum'],
- variable_min[variable_name],
- options.absolute_tolerance)
- except AssertionError as e:
- msg = ""
- msg += ("Problem validating node minimum for variable %s\n"
- % (variable_name))
- msg += ("Node minimum in solution: %r\n"
- % variable_sol['minimum'])
- msg += ("Computed minimum from scenario solutions: %r\n"
- % (variable_min[variable_name]))
- _update_exception_message(msg, e)
- raise
-
- # validate wbar
- try:
- assert_float_equals(variable_sol['wbar'],
- variable_wbar[variable_name],
- options.absolute_tolerance)
- except AssertionError as e:
- msg = ""
- msg += ("Problem validating node wbar for variable %s\n"
- % (variable_name))
- msg += ("Node wbar in solution: %r\n"
- % variable_sol['wbar'])
- msg += ("Computed wbar from scenario solutions: %r\n"
- % (variable_wbar[variable_name]))
- _update_exception_message(msg, e)
- raise
-
- except AssertionError as e:
- msg = ("Problem validating node %s" % (node_name))
- _update_exception_message(msg, e)
- raise
-
-def validate_ph_objective_parameters(options,
- scenario_tree,
- scenario_solutions_previous,
- node_solutions_previous,
- scenario_solutions_current,
- node_solutions_current):
-
- # check that sum of weigth and rho and xbar from prev iter
- # with current variable sols compute the current sol's
- # ph objective terms
- computed_proximal_term = dict.fromkeys(scenario_tree['scenarios'],0.0)
- computed_weight_term = dict.fromkeys(scenario_tree['scenarios'],0.0)
- for node_name, node in scenario_tree['nodes'].items():
- assert node_name == node['name']
- prev_node_vars_sol = node_solutions_previous[node_name]['variables']
- curr_node_vars_sol = node_solutions_current[node_name]['variables']
- is_leaf_node = bool(len(node['children']) == 0)
- if not is_leaf_node:
- for variable_name, prev_node_variable_sol in prev_node_vars_sol.items():
- curr_node_variable_sol = curr_node_vars_sol[variable_name]
- derived = prev_node_variable_sol['derived']
- assert derived == curr_node_variable_sol['derived']
- if derived:
- continue
- prev_var_xbar = prev_node_variable_sol['xbar']
- for scenario_name in node['scenarios']:
- prev_scenario_sol = scenario_solutions_previous[scenario_name]
- prev_var_scenario_sol = \
- prev_scenario_sol['variables'][variable_name]
- curr_scenario_sol = scenario_solutions_current[scenario_name]
- curr_var_scenario_sol = \
- curr_scenario_sol['variables'][variable_name]
- computed_proximal_term[scenario_name] += \
- prev_var_scenario_sol['rho']*0.5*\
- (curr_var_scenario_sol['value'] - \
- prev_var_xbar)**2
- computed_weight_term[scenario_name] += \
- prev_var_scenario_sol['weight']*\
- curr_var_scenario_sol['value']
-
- for scenario_name, scenario in scenario_tree['scenarios'].items():
- curr_scenario_sol = scenario_solutions_current[scenario_name]
- try:
- if options.proximal_is_lb:
- assert_float_gt(computed_proximal_term[scenario_name],
- curr_scenario_sol['ph proximal term'],
- options.absolute_tolerance)
- elif options.proximal_is_ub:
- assert_float_gt(curr_scenario_sol['ph proximal term'],
- computed_proximal_term[scenario_name],
- options.absolute_tolerance)
- elif not options.disable_proximal_check:
- assert_float_equals(computed_proximal_term[scenario_name],
- curr_scenario_sol['ph proximal term'],
- options.absolute_tolerance)
- except AssertionError as e:
- msg = ""
- msg += ("Reported Proximal Term: %.17g\n"
- % (curr_scenario_sol['ph proximal term']))
- msg += ("Computed Proximal Term: %.17g\n"
- % (computed_proximal_term[scenario_name]))
- msg += ("Problem validating ph proximal term for "
- "scenario %s. Value reported in current solution "
- "does not %s value computed using ph parameters "
- "reported in previous iteration with variable solution "
- "reported in current iteration.\n"
- % (scenario_name,
- "correctly bound" if (options.proximal_is_lb or \
- options.proximal_is_ub)
- else
- "match"))
- _update_exception_message(msg, e)
- raise
- try:
- assert_float_equals(computed_weight_term[scenario_name],
- curr_scenario_sol['ph weight term'],
- options.absolute_tolerance)
- except AssertionError as e:
- msg = ""
- msg += ("Reported Weight Term: %.17g\n"
- % (curr_scenario_sol['ph weight term']))
- msg += ("Computed Weight Term: %.17g\n"
- % (computed_weight_term[scenario_name]))
- msg += ("Problem validating ph weight term for "
- "scenario %s. Value reported in current solution "
- "does not match value computed using ph parameters "
- "reported in previous iteration with variable solution "
- "reported in current iteration.\n" % (scenario_name))
- _update_exception_message(msg, e)
- raise
-
-def validate_ph(options):
-
- history = None
- try:
- with open(options.ph_history_filename) as f:
- history = json.load(f)
- except:
- history = None
- try:
- history = shelve.open(options.ph_history_filename,
- flag='r')
- except:
- history = None
-
- if history is None:
- raise RuntimeError("Unable to open ph history file as JSON "
- "or python Shelve DB format")
-
- scenario_tree = history['scenario tree']
-
- try:
- validate_probabilities(options,
- scenario_tree)
- except AssertionError as e:
- msg = "FAILURE:\n"
- msg += ("Problem validating probabilities for scenario "
- "tree in ph history from file: %s"
- % (options.ph_history_filename))
- _update_exception_message(msg, e)
- raise
-
- try:
- iter_keys = history['results keys']
- except KeyError:
- # we are using json format (which loads the entire file
- # anyway)
- iter_keys = list(history.keys())
- iter_keys.remove('scenario tree')
- iterations = sorted(int(k) for k in iter_keys)
- iterations = [str(k) for k in iterations]
-
- prev_iter_results = None
- for i in iterations:
-
- iter_results = history[i]
-
- convergence = iter_results['convergence']
- scenario_solutions = iter_results['scenario solutions']
- node_solutions = iter_results['node solutions']
-
- try:
- validate_variable_set(options,
- scenario_tree,
- scenario_solutions,
- node_solutions)
- except AssertionError as e:
- msg = "FAILURE:\n"
- msg += ("Problem validating variable set for iteration %s "
- "of ph history in file: %s"
- % (i, options.ph_history_filename))
- _update_exception_message(msg, e)
- raise
-
-
- try:
- validate_leaf_stage_costs(options,
- scenario_tree,
- scenario_solutions,
- node_solutions)
- except AssertionError as e:
- msg = "FAILURE:\n"
- msg += ("Problem validating leaf-stage costs for iteration %s "
- "of ph history in file: %s"
- % (i, options.ph_history_filename))
- _update_exception_message(msg, e)
- raise
-
-
- try:
- validate_scenario_costs(options, scenario_tree, scenario_solutions)
- except AssertionError as e:
- msg = "FAILURE:\n"
- msg += ("Problem validating scenario costs for iteration %s "
- "of ph history in file: %s"
- % (i, options.ph_history_filename))
- _update_exception_message(msg, e)
- raise
-
-
- try:
- validate_scenario_costs(options, scenario_tree, scenario_solutions)
- except AssertionError as e:
- msg = "FAILURE:\n"
- msg += ("Problem validating scenario costs for iteration %s "
- "of ph history in file: %s"
- % (i, options.ph_history_filename))
- _update_exception_message(msg, e)
- raise
-
- try:
- validate_variable_statistics(options,
- scenario_tree,
- node_solutions,
- scenario_solutions)
- except AssertionError as e:
- msg = "FAILURE:\n"
- msg += ("Problem validating variable statistics for iteration %s "
- "of ph history in file: %s"
- % (i, options.ph_history_filename))
- _update_exception_message(msg, e)
- raise
-
- if prev_iter_results is not None:
- try:
- validate_ph_objective_parameters(
- options,
- scenario_tree,
- prev_iter_results['scenario solutions'],
- prev_iter_results['node solutions'],
- scenario_solutions,
- node_solutions)
- except AssertionError as e:
- msg = "FAILURE:\n"
- msg += ("Problem validating ph objective parameters "
- "for iteration %s of ph history in file: %s"
- % (i, options.ph_history_filename))
- _update_exception_message(msg, e)
- raise
- prev_iter = i
-
- return 0
-
-def construct_parser():
-
- import argparse
- parser = argparse.ArgumentParser(
- description=('Validate a JSON ph history output file that '
- 'was created the phhistoryextension plugin'))
- parser.add_argument('ph_history_filename', metavar='JSON_HISTORY', type=str,
- action='store', default=None,
- help=('JSON formatted output file to '
- 'validate'))
- parser.add_argument('-t','--tolerance',dest='absolute_tolerance',
- action='store', default=1e-6, type=float,
- help=('absolute tolerance used when comparing '
- 'floating point values (default: %(default)s)'))
- group1 = parser.add_mutually_exclusive_group()
- group1.add_argument('--proximal-term-bounds-below', dest='proximal_is_lb',
- action='store_true', default=False,
- help=('relax proximal term check from equality and '
- 'ensure that the solution represents a lower '
- 'bound'))
- group1.add_argument('--proximal-term-bounds-above', dest='proximal_is_ub',
- action='store_true', default=False,
- help=('relax proximal term check from equality and '
- 'ensure that the solution represents an upper '
- 'bound'))
- group1.add_argument('--disable-proximal-term-check', dest='disable_proximal_check',
- action='store_true', default=False,
- help=('skip validation of proximal term recomputation'))
-
- return parser
-
-def main(args=None):
-
- parser = construct_parser()
- options = parser.parse_args(args=args)
- assert os.path.exists(options.ph_history_filename)
- return validate_ph(options)
-
-if __name__ == "__main__":
-
- sys.exit(main(args=sys.argv[1:]))
diff --git a/pyomo/pysp/tests/examples/rapper_based.py b/pyomo/pysp/tests/examples/rapper_based.py
deleted file mode 100644
index 69a0ee40b0f..00000000000
--- a/pyomo/pysp/tests/examples/rapper_based.py
+++ /dev/null
@@ -1,72 +0,0 @@
-# rapper based tests of some PySP examples, started by DLW, Oct 2018
-# ___________________________________________________________________________
-#
-# Pyomo: Python Optimization Modeling Objects
-# Copyright 2018 National Technology and Engineering Solutions of Sandia, LLC
-# Under the terms of Contract DE-NA0003525 with National Technology and
-# Engineering Solutions of Sandia, LLC, the U.S. Government retains certain
-# rights in this software.
-# This software is distributed under the 3-clause BSD License.
-# ___________________________________________________________________________
-
-import sys
-import pyutilib.th as unittest
-import tempfile
-import os
-import shutil
-import pyomo.environ as pyo
-import pyomo.pysp.util.rapper as rapper
-import pyomo as pyomoroot
-
-solvername = "ipopt" # could use almost any solver
-
-class Example_via_rapper(unittest.TestCase):
- """ Test some examples using rapper."""
-
- def setUp(self):
- """pre-test setup"""
- ######## make a temp dir to which files can be copied #####
- self.tdir = tempfile.mkdtemp() #TemporaryDirectory().name
- sys.path.insert(1,self.tdir)
-
- """ During debugging, local files might get in the way
- of finding the file in the temp dir, so we cd there."""
- self.savecwd = os.getcwd()
- os.chdir(self.tdir)
-
- p = str(pyomoroot.__path__)
- l = p.find("'")
- r = p.find("'", l+1)
- pyomorootpath = p[l+1:r]
- farmpath = pyomorootpath + os.sep + ".." + os.sep + "examples" + \
- os.sep + "pysp" + os.sep + "farmer"
- self.farmpath = os.path.abspath(farmpath)
-
- def tearDown(self):
- # from GH: This step is key, as Python keys off the name of the module, not the location.
- # So, different reference models in different directories won't be detected.
- # If you don't do this, the symptom is a model that doesn't have the attributes
- # that the data file expects.
- if "ReferenceModel" in sys.modules:
- del sys.modules["ReferenceModel"]
-
- os.chdir(self.savecwd)
-
- def test_famer_netx(self):
- """ solve the ef and check some post solution code"""
- shutil.copyfile(self.farmpath + os.sep + "concreteNetX" +\
- os.sep + "ReferenceModel.py",
- self.tdir + os.sep + "ReferenceModel.py")
- import ReferenceModel as RM
- g = RM.pysp_scenario_tree_model_callback()
- stsolver = rapper.StochSolver("ReferenceModel",
- fsfct = "pysp_instance_creation_callback",
- tree_model = g)
- ef_sol = stsolver.solve_ef(solvername)
- assert(ef_sol.solver.termination_condition \
- == pyo.TerminationCondition.optimal)
- obj = stsolver.root_E_obj()
- assert(abs(-108385 - obj) < 100) # any solver should get this close
-
-if __name__ == '__main__':
- unittest.main()
diff --git a/pyomo/pysp/tests/examples/test_ef.py b/pyomo/pysp/tests/examples/test_ef.py
deleted file mode 100644
index 910a199cecf..00000000000
--- a/pyomo/pysp/tests/examples/test_ef.py
+++ /dev/null
@@ -1,390 +0,0 @@
-# ___________________________________________________________________________
-#
-# Pyomo: Python Optimization Modeling Objects
-# Copyright 2017 National Technology and Engineering Solutions of Sandia, LLC
-# Under the terms of Contract DE-NA0003525 with National Technology and
-# Engineering Solutions of Sandia, LLC, the U.S. Government retains certain
-# rights in this software.
-# This software is distributed under the 3-clause BSD License.
-# ___________________________________________________________________________
-
-import sys
-import fnmatch
-import os
-from os.path import abspath, dirname, join, basename
-
-try:
- from subprocess import check_output as _run_cmd
-except:
- # python 2.6
- from subprocess import check_call as _run_cmd
-
-import pyutilib.th as unittest
-
-from pyomo.pysp.tests.examples.ef_checker import main as validate_ef_main
-
-# Global test configuration options
-_test_name_wildcard_include = ["*"]
-_test_name_wildcard_exclude = [""]
-_disable_stdout_test = True
-_json_exact_comparison = True
-_yaml_exact_comparison = True
-_diff_tolerance = 1e-5
-
-#
-# Get the directory where this script is defined, and where the baseline
-# files are located.
-#
-
-thisDir = dirname(abspath(__file__))
-baselineDir = join(thisDir,"baselines")
-pysp_examples_dir = join(dirname(dirname(dirname(dirname(thisDir)))),"examples","pysp")
-pyomo_bin_dir = join(dirname(dirname(dirname(dirname(dirname(dirname(thisDir)))))),"bin")
-
-farmer_examples_dir = join(pysp_examples_dir,"farmer")
-farmer_model_dir = join(farmer_examples_dir,"models")
-farmer_concrete_model_dir = join(farmer_examples_dir,"concrete")
-farmer_expr_model_dir = join(farmer_examples_dir,"expr_models")
-farmer_max_model_dir = join(farmer_examples_dir,"maxmodels")
-farmer_expr_max_model_dir = join(farmer_examples_dir,"expr_maxmodels")
-farmer_data_dir = join(farmer_examples_dir,"scenariodata")
-farmer_trivialbundlesdata_dir = join(farmer_examples_dir,"scenariodataWithTrivialBundles")
-farmer_other_dir = join(thisDir, "farmer_files")
-
-forestry_examples_dir = join(pysp_examples_dir,"forestry")
-forestry_model_dir = join(forestry_examples_dir,"models-nb-yr")
-forestry_expr_model_dir = join(forestry_examples_dir,"expr-models-nb-yr")
-forestry_data_dir = join(forestry_examples_dir,"18scenarios")
-forestry_unequal_data_dir = join(forestry_examples_dir,"unequalProbs")
-
-hydro_examples_dir = join(pysp_examples_dir,"hydro")
-hydro_model_dir = join(hydro_examples_dir,"models")
-hydro_data_dir = join(hydro_examples_dir,"scenariodata")
-hydro_nodedata_dir = join(hydro_examples_dir,"nodedata")
-
-testing_solvers = {}
-testing_solvers['cplex','lp'] = False
-testing_solvers['cplex','nl'] = False
-testing_solvers['ipopt','nl'] = False
-testing_solvers['cplex','python'] = False
-
-class EFTester(object):
-
- baseline_group = None
- model_directory = None
- instance_directory = None
- solver_name = None
- solver_io = None
- base_command_options = ""
-
- @staticmethod
- def _setUpClass(cls):
- global testing_solvers
- from pyomo.solvers.tests.solvers import test_solver_cases
- for _solver, _io in test_solver_cases():
- if (_solver, _io) in testing_solvers and \
- test_solver_cases(_solver, _io).available:
- testing_solvers[_solver, _io] = True
-
- def setUp(self):
- assert self.model_directory is not None
- assert self.instance_directory is not None
- assert (self.solver_name,self.solver_io) in testing_solvers
- assert self.base_command_options is not None
-
- @staticmethod
- def safe_delete(filename):
- try:
- os.remove(filename)
- except OSError:
- pass
-
- def get_cmd_base(self):
- cmd = ''
- cmd += 'cd '+thisDir+'; '
- cmd += "runef --solve"
- cmd += " --solver="+self.solver_name
- cmd += " --solver-io="+self.solver_io
- cmd += " --traceback "
- cmd += self.base_command_options
- return cmd
-
- @unittest.nottest
- def _baseline_test(self,
- options_string="",
- validation_options_string="",
- cleanup_func=None,
- rename_func=None,
- check_baseline_func=None):
-
- global _test_name_wildcard_include
- global _test_name_wildcard_exclude
- class_name, test_name = self.id().split('.')[-2:]
- if all(not fnmatch.fnmatch(class_name+'.'+test_name,inc_wildcard) \
- for inc_wildcard in _test_name_wildcard_include):
- self.skipTest("Test %s.%s does not match any include wildcard in '%s'" \
- % (class_name, test_name, _test_name_wildcard_include))
- if any(fnmatch.fnmatch(class_name+'.'+test_name,exc_wildcard) \
- for exc_wildcard in _test_name_wildcard_exclude):
- self.skipTest("Test %s.%s matches at least one exclude wildcard in '%s'" \
- % (class_name, test_name, _test_name_wildcard_exclude))
- if not testing_solvers[self.solver_name,self.solver_io]:
- self.skipTest("Solver (%s,%s) not available"
- % (self.solver_name, self.solver_io))
- prefix = class_name+"."+test_name
- argstring = self.get_cmd_base()+" "\
- "--model-directory="+self.model_directory+" "\
- "--instance-directory="+self.instance_directory+" "\
- "--solution-writer=pyomo.pysp.plugins.jsonsolutionwriter "\
- +options_string+" "\
- "&> "+join(thisDir,prefix+".out")
- print("Testing command("+basename(prefix)+"): " + argstring)
- self.safe_delete(join(thisDir,prefix+".out"))
- self.safe_delete(join(thisDir,"ef_solution.json"))
- self.safe_delete(join(thisDir,prefix+".ef_solution.json.out"))
- if cleanup_func is not None:
- cleanup_func(self, class_name, test_name)
- _run_cmd(argstring, shell=True)
- self.assertTrue(os.path.exists(join(thisDir,"ef_solution.json")))
- os.rename(join(thisDir,"ef_solution.json"),
- join(thisDir,prefix+".ef_solution.json.out"))
- if rename_func is not None:
- rename_func(self, class_name, test_name)
-
- validate_ef_main([join(thisDir,prefix+".ef_solution.json.out"),
- '-t',repr(_diff_tolerance)]\
- +validation_options_string.split())
-
- if self.baseline_group is not None:
- group_prefix = self.baseline_group+"."+test_name
- # Disable automatic deletion of the ef_solution output
- # file on passing test just in case the optional
- # check_baseline_func wants to look at it.
- self.assertMatchesJsonBaseline(
- join(thisDir,prefix+".ef_solution.json.out"),
- join(baselineDir,group_prefix+".ef_solution.json.baseline.gz"),
- tolerance=_diff_tolerance,
- delete=False,
- exact=_json_exact_comparison)
-
- if check_baseline_func is not None:
- assert self.baseline_group is not None
- check_baseline_func(self, class_name, test_name)
- else:
- # Now we can safely delete this file because the test has
- # passed if we are here
- self.safe_delete(join(thisDir,prefix+".ef_solution.json.out"))
- self.safe_delete(join(thisDir,prefix+".out"))
-
- def test1(self):
- self._baseline_test()
-
- def test2(self):
- self._baseline_test(options_string="--generate-weighted-cvar")
-
- def test3(self):
- self._baseline_test(options_string="--generate-weighted-cvar "
- "--cvar-weight=0 "
- "--risk-alpha=0.1")
-
- def test4(self):
- self._baseline_test(options_string="--generate-weighted-cvar "
- "--cvar-weight=0.5")
-
- def test5(self):
- self._baseline_test(options_string="--generate-weighted-cvar "
- "--risk-alpha=0.1")
-
-@unittest.category('expensive')
-class TestEFFarmerCPLEXNL(EFTester,unittest.TestCase):
-
- @classmethod
- def setUpClass(cls):
- EFTester._setUpClass(cls)
- cls.baseline_group = "TestEFFarmer"
- cls.model_directory = join(farmer_concrete_model_dir,'ReferenceModel.py')
- cls.instance_directory = join(farmer_data_dir,'ScenarioStructure.dat')
- cls.solver_name = 'cplex'
- cls.solver_io = 'nl'
-
-@unittest.category('expensive')
-class TestEFFarmerCPLEXLP(EFTester,unittest.TestCase):
-
- @classmethod
- def setUpClass(cls):
- EFTester._setUpClass(cls)
- cls.baseline_group = "TestEFFarmer"
- cls.model_directory = farmer_model_dir
- cls.instance_directory = farmer_data_dir
- cls.solver_name = 'cplex'
- cls.solver_io = 'lp'
-
-@unittest.category('expensive')
-class TestEFFarmerCPLEXPYTHON(EFTester,unittest.TestCase):
-
- @classmethod
- def setUpClass(cls):
- EFTester._setUpClass(cls)
- cls.baseline_group = "TestEFFarmer"
- cls.model_directory = farmer_model_dir
- cls.instance_directory = farmer_data_dir
- cls.solver_name = 'cplex'
- cls.solver_io = 'python'
-
-@unittest.category('expensive')
-class TestEFFarmerExpression(EFTester,unittest.TestCase):
-
- @classmethod
- def setUpClass(cls):
- EFTester._setUpClass(cls)
- cls.baseline_group = "TestEFFarmer"
- cls.model_directory = farmer_expr_model_dir
- cls.instance_directory = farmer_data_dir
- cls.solver_name = 'cplex'
- cls.solver_io = 'lp'
-
-@unittest.category('expensive')
-class TestEFFarmerMax(EFTester,unittest.TestCase):
-
- @classmethod
- def setUpClass(cls):
- EFTester._setUpClass(cls)
- cls.baseline_group = "TestEFFarmerMax"
- cls.model_directory = farmer_max_model_dir
- cls.instance_directory = farmer_data_dir
- cls.solver_name = 'cplex'
- cls.solver_io = 'lp'
-
-@unittest.category('expensive')
-class TestEFFarmerMaxExpression(EFTester,unittest.TestCase):
-
- @classmethod
- def setUpClass(cls):
- EFTester._setUpClass(cls)
- cls.baseline_group = "TestEFFarmerMax"
- cls.model_directory = farmer_expr_max_model_dir
- cls.instance_directory = farmer_data_dir
- cls.solver_name = 'cplex'
- cls.solver_io = 'lp'
-
-
-
-
-
-
-@unittest.category('expensive')
-class TestEFForestryNoBaseline(EFTester,unittest.TestCase):
-
- @classmethod
- def setUpClass(cls):
- EFTester._setUpClass(cls)
- cls.baseline_group = None
- cls.model_directory = forestry_model_dir
- cls.instance_directory = forestry_data_dir
- cls.solver_name = 'cplex'
- cls.solver_io = 'lp'
- cls.base_command_options = "--mipgap=0.0125"
-
-@unittest.category('expensive')
-class TestEFForestryExpressionNoBaseline(EFTester,unittest.TestCase):
-
- @classmethod
- def setUpClass(cls):
- EFTester._setUpClass(cls)
- cls.baseline_group = None
- cls.model_directory = forestry_expr_model_dir
- cls.instance_directory = forestry_data_dir
- cls.solver_name = 'cplex'
- cls.solver_io = 'lp'
- cls.base_command_options = "--mipgap=0.0125"
-
-@unittest.category('expensive')
-class TestEFForestryUnequalProbsNoBaseline(EFTester,unittest.TestCase):
-
- @classmethod
- def setUpClass(cls):
- EFTester._setUpClass(cls)
- cls.baseline_group = None
- cls.model_directory = forestry_model_dir
- cls.instance_directory = forestry_unequal_data_dir
- cls.solver_name = 'cplex'
- cls.solver_io = 'lp'
- cls.base_command_options = "--mipgap=0.0125"
-
-@unittest.category('expensive')
-class TestEFForestryExpressionUnequalProbsNoBaseline(EFTester,unittest.TestCase):
-
- @classmethod
- def setUpClass(cls):
- EFTester._setUpClass(cls)
- cls.baseline_group = None
- cls.model_directory = forestry_expr_model_dir
- cls.instance_directory = forestry_unequal_data_dir
- cls.solver_name = 'cplex'
- cls.solver_io = 'lp'
- cls.base_command_options = "--mipgap=0.0125"
-
-
-
-@unittest.category('expensive')
-class TestEFHydroNoBaseline(EFTester,unittest.TestCase):
-
- @classmethod
- def setUpClass(cls):
- EFTester._setUpClass(cls)
- cls.baseline_group = None
- cls.model_directory = hydro_model_dir
- cls.instance_directory = hydro_data_dir
- cls.solver_name = 'cplex'
- cls.solver_io = 'lp'
-
-@unittest.category('expensive')
-class TestEFHydroNodeDataNoBaseline(EFTester,unittest.TestCase):
-
- @classmethod
- def setUpClass(cls):
- EFTester._setUpClass(cls)
- cls.baseline_group = None
- cls.model_directory = hydro_model_dir
- cls.instance_directory = hydro_nodedata_dir
- cls.solver_name = 'cplex'
- cls.solver_io = 'lp'
-
-
-if __name__ == "__main__":
-
- _disable_stdout_test = False
-
- if '--include' in sys.argv:
- _test_name_wildcard_include = []
- while '--include' in sys.argv:
- idx = sys.argv.index('--include')
- _test_name_wildcard_include.append(sys.argv[idx+1])
- sys.argv.remove('--include')
- sys.argv.remove(_test_name_wildcard_include[-1])
- if '--exclude' in sys.argv:
- _test_name_wildcard_exclude = []
- while '--exclude' in sys.argv:
- idx = sys.argv.index('--exclude')
- _test_name_wildcard_exclude.append(sys.argv[idx+1])
- sys.argv.remove('--exclude')
- sys.argv.remove(_test_name_wildcard_exclude[-1])
- if '--disable-stdout-test' in sys.argv:
- sys.argv.remove('--disable-stdout-test')
- _disable_stdout_test = True
-
- print("Including all tests matching wildcard: '%s'" % _test_name_wildcard_include)
- print("Excluding all tests matching wildcard: '%s'" % _test_name_wildcard_exclude)
-
- tester = unittest.main(exit=False)
- if len(tester.result.failures) or len(tester.result.skipped) or len(tester.result.errors):
- with open('UnitTestNoPass.txt','w') as f:
- f.write("Failures:\n")
- for res in tester.result.failures:
- f.write('.'.join(res[0].id().split('.')[-2:])+' ')
- f.write("\n\nSkipped:\n")
- for res in tester.result.skipped:
- f.write('.'.join(res[0].id().split('.')[-2:])+' ')
- f.write("\n\nErrors:\n")
- for res in tester.result.errors:
- f.write('.'.join(res[0].id().split('.')[-2:])+' ')
diff --git a/pyomo/pysp/tests/examples/test_examples.py b/pyomo/pysp/tests/examples/test_examples.py
deleted file mode 100644
index ec61beba5f7..00000000000
--- a/pyomo/pysp/tests/examples/test_examples.py
+++ /dev/null
@@ -1,306 +0,0 @@
-# ___________________________________________________________________________
-#
-# Pyomo: Python Optimization Modeling Objects
-# Copyright 2017 National Technology and Engineering Solutions of Sandia, LLC
-# Under the terms of Contract DE-NA0003525 with National Technology and
-# Engineering Solutions of Sandia, LLC, the U.S. Government retains certain
-# rights in this software.
-# This software is distributed under the 3-clause BSD License.
-# ___________________________________________________________________________
-
-
-import os
-from os.path import join, dirname, abspath
-import time
-import subprocess
-import shutil
-import sys
-
-from pyutilib.pyro import using_pyro3, using_pyro4
-import pyutilib.th as unittest
-
-from pyomo.common.dependencies import networkx_available as have_networkx
-from pyomo.pysp.util.misc import (_get_test_nameserver,
- _get_test_dispatcher,
- _poll,
- _kill)
-from pyomo.opt import check_available_solvers
-
-
-have_dot = True
-try:
- if subprocess.call(["dot", "-?"],
- stdout=subprocess.PIPE,
- stderr=subprocess.STDOUT):
- have_dot = False
-except:
- have_dot = False
-
-thisdir = dirname(abspath(__file__))
-baselineDir = join(thisdir, "baselines")
-pysp_examples_dir = \
- join(dirname(dirname(dirname(dirname(thisdir)))),
- "examples", "pysp")
-examples_dir = join(pysp_examples_dir, "scripting")
-
-solvers = check_available_solvers('cplex', 'glpk')
-
-@unittest.category('nightly')
-class TestExamples(unittest.TestCase):
-
- def setUp(self):
- self._tempfiles = []
-
- def _run_cmd(self, cmd):
- class_name, test_name = self.id().split('.')[-2:]
- print("%s.%s: Testing command: %s" % (class_name,
- test_name,
- str(' '.join(cmd))))
- outname = os.path.join(thisdir,
- class_name+"."+test_name+".out")
- self._tempfiles.append(outname)
- with open(outname, "w") as f:
- subprocess.check_call(cmd,
- stdout=f,
- stderr=subprocess.STDOUT)
-
- def _cleanup(self):
- for fname in self._tempfiles:
- try:
- os.remove(fname)
- except OSError:
- pass
- self._tempfiles = []
-
- @unittest.skipIf(not 'cplex' in solvers,
- 'cplex not available')
- def test_ef_duals(self):
- cmd = [sys.executable, join(examples_dir, 'ef_duals.py')]
- self._run_cmd(cmd)
- self._cleanup()
-
- @unittest.skipIf(not 'cplex' in solvers,
- 'cplex not available')
- def test_benders_scripting(self):
- cmd = [sys.executable, join(examples_dir, 'benders_scripting.py')]
- self._run_cmd(cmd)
- self._cleanup()
-
- @unittest.skipIf(not have_networkx,
- "networkx module not installed")
- def test_compile_scenario_tree(self):
- class_name, test_name = self.id().split('.')[-2:]
- tmpdir = os.path.join(thisdir, class_name+"_"+test_name)
- shutil.rmtree(tmpdir, ignore_errors=True)
- self.assertEqual(os.path.exists(tmpdir), False)
- cmd = [sys.executable, join(examples_dir, 'apps', 'compile_scenario_tree.py')]
- cmd.extend(["-m", join(pysp_examples_dir,
- "networkx_scenariotree",
- "ReferenceModel.py")])
- cmd.extend(["-s", join(pysp_examples_dir,
- "networkx_scenariotree",
- "ScenarioTree.py")])
- cmd.extend(["--output-directory", tmpdir])
- self._run_cmd(cmd)
- self.assertEqual(os.path.exists(tmpdir), True)
- shutil.rmtree(tmpdir, ignore_errors=True)
- self._cleanup()
-
- @unittest.skipIf(not have_networkx,
- "networkx module not installed")
- def test_generate_distributed_NL(self):
- class_name, test_name = self.id().split('.')[-2:]
- tmpdir = os.path.join(thisdir, class_name+"_"+test_name)
- shutil.rmtree(tmpdir, ignore_errors=True)
- self.assertEqual(os.path.exists(tmpdir), False)
- cmd = [sys.executable, join(examples_dir, 'apps', 'generate_distributed_NL.py')]
- cmd.extend(["-m", join(pysp_examples_dir,
- "networkx_scenariotree",
- "ReferenceModel.py")])
- cmd.extend(["-s", join(pysp_examples_dir,
- "networkx_scenariotree",
- "ScenarioTree.py")])
- cmd.extend(["--output-directory", tmpdir])
- self._run_cmd(cmd)
- self.assertEqual(os.path.exists(tmpdir), True)
- shutil.rmtree(tmpdir, ignore_errors=True)
- self._cleanup()
-
- @unittest.skipIf((not have_dot) or (not have_networkx),
- "dot command not available or networkx module not installed")
- def test_scenario_tree_image(self):
- class_name, test_name = self.id().split('.')[-2:]
- tmpfname = os.path.join(thisdir, class_name+"_"+test_name)+".pdf"
- try:
- os.remove(tmpfname)
- except OSError:
- pass
- self.assertEqual(os.path.exists(tmpfname), False)
- cmd = [sys.executable, join(examples_dir, 'apps', 'scenario_tree_image.py')]
- cmd.extend(["-m", join(pysp_examples_dir,
- "networkx_scenariotree",
- "ReferenceModel.py")])
- cmd.extend(["-s", join(pysp_examples_dir,
- "networkx_scenariotree",
- "ScenarioTree.py")])
- cmd.extend(["--output-file", tmpfname])
- self._run_cmd(cmd)
- self.assertEqual(os.path.exists(tmpfname), True)
- os.remove(tmpfname)
- self._cleanup()
-
-@unittest.category('parallel')
-@unittest.skipIf(not (using_pyro3 or using_pyro4),
- "Pyro / Pyro4 not available")
-class TestParallelExamples(unittest.TestCase):
-
- def setUp(self):
- self._tempfiles = []
-
- def _run_cmd(self, cmd):
- class_name, test_name = self.id().split('.')[-2:]
- outname = os.path.join(thisdir,
- class_name+"."+test_name+".out")
- self._tempfiles.append(outname)
- with open(outname, "w") as f:
- subprocess.check_call(cmd,
- stdout=f,
- stderr=subprocess.STDOUT)
-
- @unittest.nottest
- def _run_cmd_with_pyro(self, cmd, num_servers):
- ns_host = '127.0.0.1'
- ns_process = None
- dispatcher_process = None
- scenariotreeserver_processes = []
- try:
- ns_process, ns_port = \
- _get_test_nameserver(ns_host=ns_host)
- self.assertNotEqual(ns_process, None)
- dispatcher_process, dispatcher_port = \
- _get_test_dispatcher(ns_host=ns_host,
- ns_port=ns_port)
- self.assertNotEqual(dispatcher_process, None)
- scenariotreeserver_processes = []
- class_name, test_name = self.id().split('.')[-2:]
- for i in range(num_servers):
- outname = os.path.join(thisdir,
- class_name+"."+test_name+".scenariotreeserver_"+str(i+1)+".out")
- self._tempfiles.append(outname)
- with open(outname, "w") as f:
- scenariotreeserver_processes.append(
- subprocess.Popen(["scenariotreeserver", "--traceback"] + \
- ["--pyro-host="+str(ns_host)] + \
- ["--pyro-port="+str(ns_port)],
- stdout=f,
- stderr=subprocess.STDOUT))
- cmd.append("--scenario-tree-manager=pyro")
- cmd.append("--pyro-host="+str(ns_host))
- cmd.append("--pyro-port="+str(ns_port))
- time.sleep(2)
- [_poll(proc) for proc in scenariotreeserver_processes]
- self._run_cmd(cmd)
- finally:
- _kill(ns_process)
- _kill(dispatcher_process)
- [_kill(proc) for proc in scenariotreeserver_processes]
- if os.path.exists(os.path.join(thisdir,'Pyro_NS_URI')):
- try:
- os.remove(os.path.join(thisdir,'Pyro_NS_URI'))
- except OSError:
- pass
-
- def _cleanup(self):
- for fname in self._tempfiles:
- try:
- os.remove(fname)
- except OSError:
- pass
- self._tempfiles = []
-
-
- @unittest.skipIf(not 'glpk' in solvers,
- 'glpk not available')
- def test_solve_distributed(self):
- ns_host = '127.0.0.1'
- ns_process = None
- dispatcher_process = None
- scenariotreeserver_processes = []
- try:
- ns_process, ns_port = \
- _get_test_nameserver(ns_host=ns_host)
- self.assertNotEqual(ns_process, None)
- dispatcher_process, dispatcher_port = \
- _get_test_dispatcher(ns_host=ns_host,
- ns_port=ns_port)
- self.assertNotEqual(dispatcher_process, None)
- scenariotreeserver_processes = []
- class_name, test_name = self.id().split('.')[-2:]
- for i in range(3):
- outname = os.path.join(thisdir,
- class_name+"."+test_name+".scenariotreeserver_"+str(i+1)+".out")
- self._tempfiles.append(outname)
- with open(outname, "w") as f:
- scenariotreeserver_processes.append(
- subprocess.Popen(["scenariotreeserver", "--traceback"] + \
- ["--pyro-host="+str(ns_host)] + \
- ["--pyro-port="+str(ns_port)],
- stdout=f,
- stderr=subprocess.STDOUT))
- cmd = [sys.executable, join(examples_dir, 'solve_distributed.py'), str(ns_port)]
- time.sleep(2)
- [_poll(proc) for proc in scenariotreeserver_processes]
- self._run_cmd(cmd)
- finally:
- _kill(ns_process)
- _kill(dispatcher_process)
- [_kill(proc) for proc in scenariotreeserver_processes]
- if os.path.exists(os.path.join(thisdir,'Pyro_NS_URI')):
- try:
- os.remove(os.path.join(thisdir,'Pyro_NS_URI'))
- except OSError:
- pass
- self._cleanup()
-
- @unittest.skipIf(not have_networkx,
- "networkx module not installed")
- def test_compile_scenario_tree(self):
- class_name, test_name = self.id().split('.')[-2:]
- tmpdir = os.path.join(thisdir, class_name+"_"+test_name)
- shutil.rmtree(tmpdir, ignore_errors=True)
- self.assertEqual(os.path.exists(tmpdir), False)
- cmd = [sys.executable, join(examples_dir, 'apps', 'compile_scenario_tree.py')]
- cmd.extend(["-m", join(pysp_examples_dir,
- "networkx_scenariotree",
- "ReferenceModel.py")])
- cmd.extend(["-s", join(pysp_examples_dir,
- "networkx_scenariotree",
- "ScenarioTree.py")])
- cmd.extend(["--output-directory", tmpdir])
- self._run_cmd_with_pyro(cmd, 5)
- self.assertEqual(os.path.exists(tmpdir), True)
- shutil.rmtree(tmpdir, ignore_errors=True)
- self._cleanup()
-
- @unittest.skipIf(not have_networkx,
- "networkx module not installed")
- def test_generate_distributed_NL(self):
- class_name, test_name = self.id().split('.')[-2:]
- tmpdir = os.path.join(thisdir, class_name+"_"+test_name)
- shutil.rmtree(tmpdir, ignore_errors=True)
- self.assertEqual(os.path.exists(tmpdir), False)
- cmd = [sys.executable, join(examples_dir, 'apps', 'generate_distributed_NL.py')]
- cmd.extend(["-m", join(pysp_examples_dir,
- "networkx_scenariotree",
- "ReferenceModel.py")])
- cmd.extend(["-s", join(pysp_examples_dir,
- "networkx_scenariotree",
- "ScenarioTree.py")])
- cmd.extend(["--output-directory", tmpdir])
- self._run_cmd_with_pyro(cmd, 5)
- self.assertEqual(os.path.exists(tmpdir), True)
- shutil.rmtree(tmpdir, ignore_errors=True)
- self._cleanup()
-
-if __name__ == "__main__":
- unittest.main()
diff --git a/pyomo/pysp/tests/examples/test_model/badph.pdf b/pyomo/pysp/tests/examples/test_model/badph.pdf
deleted file mode 100644
index 6adf749d979..00000000000
Binary files a/pyomo/pysp/tests/examples/test_model/badph.pdf and /dev/null differ
diff --git a/pyomo/pysp/tests/examples/test_model/badph.tex b/pyomo/pysp/tests/examples/test_model/badph.tex
deleted file mode 100644
index 9f566cd0a6a..00000000000
--- a/pyomo/pysp/tests/examples/test_model/badph.tex
+++ /dev/null
@@ -1,167 +0,0 @@
-\documentclass[12pt]{article}
-
-\newcommand{\Vector}[1]{#1} %{\mbox{{\boldmath $#1$}}}
-\newcommand{\Qc}{\mathcal{Q}_{s}}
-\newcommand{\Prs}{\mbox{Pr}(s)}
-\newcommand{\Gets}{:=}
-\def\Argmin{\mathop{\rm argmin}}
-
-\newenvironment{hangref}
- {\begin{list}{}{\setlength{\itemsep}{4pt}
- \setlength{\parsep}{0pt}\setlength{\leftmargin}{+\parindent}
- \setlength{\itemindent}{-\parindent}}}{\end{list}}
-
-\marginparwidth 0pt\marginparsep 0pt
-\topskip 0pt\headsep 0pt\headheight 0pt
-\oddsidemargin 0pt\evensidemargin 0pt
-\textwidth 6.5in \topmargin 0pt\textheight 9.0in
-
-\newtheorem{theorem}{Theorem}
-
-\begin{document}
-
-\begin{center}
- {\LARGE Notes Concerning bad instances for PH}\\[12pt]
- {\large
- \mbox{David L. Woodruff}
- }\\[12pt]
- \mbox{dlwoodruff@ucdavis.edu}
-\end{center}
-
-\baselineskip 20pt plus .3pt minus .1pt
-
-\noindent\hrulefill
-
-\noindent
-
-\noindent\hrulefill
-
-
-\section{Introduction \label{sec:introduction}}
-
-This note is {\em not} intended to be clear, self-contained or easy to
-read. Assume two stages. See
-
-\verb|pyomo/src/pyomo.pysp/pyomo/pysp/tests/examples/test_model/twovarslack|
-
-\subsection{The Issue}
-
-There are instances with binaries for which PH using a static vector
-$\rho$ that depends on the variable (and not on the scenario) fails to
-converge for a long time. The fix is not at all obvious. Magical
-$\rho$ values depending on the variable and scenario could, of course, fix the problem but that is not
-helpful.
-
-\subsection{Background}
-
-\begin{itemize}
-\item We are interested in problems with tens of thousands of variables and tens of thousands of constraints. Many of the variables are binary. We are interested in scores or hundreds of scenarios.
-\item We try to set $\rho_{i}$ for variable $x_{i}$ to be somehow proportional to the rate of change of the objective function with respect to $x_{i}$, $\delta f(x)/\delta x_{i}$. However, {\em we never directly compute this rate of change, as as a function of x} because that would be impractical for so many $x$ over such large ranges (bear in mind that the rate of change for one x may depend on the value of many x).
-\item We use the language ``scenario $s$ wants a high (low) value of $x_{i}$'' to mean that in an optimal solutions that consider only scenario $s$, $x_{i}$ will take values that are above (below) the average for all scenarios.
-\item The variables interact in complicated ways through the constraints, many of which span stages.
-\end{itemize}
-
-\subsection{Slack Penalties}
-
-A particular form of the troubles concerns second stage slack
-variables with high penalties. Each scenario wants to configure its
-solutions so as to avoid paying the high slack cost and each scenario
-can do that if solved alone. However, the optimal solution of the SP involves
-some scenarios paying the high slack cost.
-
-If you solve the SP, then you can see which scenarios need to pay the
-cost (i.e., have a high value of the slack variable) and you can give
-those scenarios high rho values on the primary variables and (with
-the right magical rho values) force convergence. However, you
-have to have the solution to make this work.
-
-Remember the slack is in the second stage and has no $W$ or $\rho$
-itself. In real examples, a lot of primary first stage variables
-contribute to each second stage constraint with a slack variable.
-
-\subsection{A simple example}
-
-The only first variables are binaries $x_1$ and $x_2$. Second stage
-variables are scalars $y$ and $\alpha$.
-
-\subsubsection{Scenario Subproblem}
-Here is the model for each scenario $s$ a very simple example:
-
-
-\begin{eqnarray*}
-\mbox{minimize} & cy + M\alpha & (\mbox{P}) \\
-\mbox{subject to:} & y \geq x_i & i=1,2 \label{y0x0}\\
- & y \leq \sum_{i=1}^{2}x_i \label{y1x1} & \\
- & ay + \alpha <= b & \\
- & \alpha \in \{0,1\} & \\
- & x_{i} \in \{0,1\},\; i=1,2 &
-\end{eqnarray*}
-
-Constraints~\ref{y0x0} state that a scenario can get y=one with anything, but
-for y $\leq$ zero it needs all x zero. Constraint~\ref{y1x1} states
-that a scenario can get y=zero with anything, but for y=one, it needs at least one one;
-however, if it doesn't have at least one one, it has to have y=0.
-
-\subsubsection{Scenario 1 data}
-\begin{verbatim}
-param c := 10 ;
-param a := -1 ;
-param b := 0 ;
-param M := 1000 ;
-\end{verbatim}
-Scenario 1 wants y to be small because it has positive cost. Also, $y<0$ is infeasible, so
-$y=0$ is best, which means it wants both $x$ to be zero. Having $x>0$ is not infeasible, but
-creates slack, so it is very expensive.
-
-\subsubsection{Scenario 2 data}
-
-\begin{verbatim}
-param c := -10 ;
-param a := 1 ;
-param b := 1 ;
-param M := 1100 ;
-\end{verbatim}
-So scenario 2 really wants at least one $x$ to be one so it can have $y=1$ to avoid slack payments, but it indifferent between the $x_{i}$ for
-this purpose. (this is typical in UC problems
-where there are many generators with very similar costs).
-
-The difference in $M$ between scenarios is not important, but does make 1 for either or both x the optimal.
-
-\subsubsection{PH Performance}
-Assume equally likely scenarios (with just the wrong probabilities, things can be even worse).
-Without the slack penalties, $\rho$ should be a fraction of $|c|$. So $\rho=1$ would probably be OK.
-
-With modest $\rho$: for scenario 2, PH oscillates between having one
-$x_i$ be one and then the other. With a global $\rho$ above 1000 PH solves
-the problem quickly (instantly for $\rho$ of say 1100), but with anything 1000 or less, there is not
-convergence after 100 iterations.
-
-\section{Discussion}
-
-This is a highly stylized version of behavior that we have seen ``in
-the wild.'' This is not an emergency for UC because we can avoid this
-trouble by modeling around it; however, it is urgent because slack
-penalties are an extremely common modeling ``trick'' and anyway, it is
-not clear that requiring zero slack (i.e., have infeasibility instead
-of a large penalty) would makes things much better for PH.
-
-\subsection{My Current Thinking}
-
-For full scale instances, we need to try to do something. The things we have done so far (high $\rho$) result in
-badly sub-optimal convergence. Thank goodness for the bounds!
-
-\begin{enumerate}
-\item I think that through a combination of annotations supplied by the modeler and diagnostics on W values, we can isolate families
-of first stage variables that are ``part of the problem.''
-\item We could then go to higher $\rho$ values, perhaps guided by annotations or by diagnostics. However, it is not clear that this will work
-because often only a few scenarios need to force a slack payment.
-\item Or we might have to branch on some of these variables (we could obtain pretty good W vectors then let DDSIP do some branching for us).
-\item Want a wild and crazy idea? Try ``branching'' on scenario-specific $\rho$ values (assume massive parallelism).
-\end{enumerate}
-
-We are presently working on W diagnostics.
-
-\end{document}
-
-
-
diff --git a/pyomo/pysp/tests/examples/test_model/continuous/ReferenceModel.py b/pyomo/pysp/tests/examples/test_model/continuous/ReferenceModel.py
deleted file mode 100644
index e4696ea798d..00000000000
--- a/pyomo/pysp/tests/examples/test_model/continuous/ReferenceModel.py
+++ /dev/null
@@ -1,25 +0,0 @@
-# ___________________________________________________________________________
-#
-# Pyomo: Python Optimization Modeling Objects
-# Copyright 2017 National Technology and Engineering Solutions of Sandia, LLC
-# Under the terms of Contract DE-NA0003525 with National Technology and
-# Engineering Solutions of Sandia, LLC, the U.S. Government retains certain
-# rights in this software.
-# This software is distributed under the 3-clause BSD License.
-# ___________________________________________________________________________
-
-from pyomo.environ import AbstractModel, Var, Param, Expression
-
-model = AbstractModel()
-
-model.x = Var(bounds=(0,10))
-
-model.c = Param()
-
-def FirstStageCost_rule(model):
- return model.c*model.x
-model.FirstStageCost = Expression(rule=FirstStageCost_rule)
-
-def SecondStageCost_rule(model):
- return 0
-model.SecondStageCost = Expression(rule=SecondStageCost_rule)
diff --git a/pyomo/pysp/tests/examples/test_model/continuous/Scenario1.dat b/pyomo/pysp/tests/examples/test_model/continuous/Scenario1.dat
deleted file mode 100644
index 3088ae7a474..00000000000
--- a/pyomo/pysp/tests/examples/test_model/continuous/Scenario1.dat
+++ /dev/null
@@ -1 +0,0 @@
-param c := 1;
\ No newline at end of file
diff --git a/pyomo/pysp/tests/examples/test_model/continuous/Scenario2.dat b/pyomo/pysp/tests/examples/test_model/continuous/Scenario2.dat
deleted file mode 100644
index 83e5f4ba9b1..00000000000
--- a/pyomo/pysp/tests/examples/test_model/continuous/Scenario2.dat
+++ /dev/null
@@ -1 +0,0 @@
-param c := -1;
\ No newline at end of file
diff --git a/pyomo/pysp/tests/examples/test_model/continuous/Scenario3.dat b/pyomo/pysp/tests/examples/test_model/continuous/Scenario3.dat
deleted file mode 100644
index 3088ae7a474..00000000000
--- a/pyomo/pysp/tests/examples/test_model/continuous/Scenario3.dat
+++ /dev/null
@@ -1 +0,0 @@
-param c := 1;
\ No newline at end of file
diff --git a/pyomo/pysp/tests/examples/test_model/continuous/ScenarioStructure.dat b/pyomo/pysp/tests/examples/test_model/continuous/ScenarioStructure.dat
deleted file mode 100644
index dea4c76fbfb..00000000000
--- a/pyomo/pysp/tests/examples/test_model/continuous/ScenarioStructure.dat
+++ /dev/null
@@ -1,38 +0,0 @@
-# IMPORTANT - THE STAGES ARE ASSUMED TO BE IN TIME-ORDER.
-
-set Stages := FirstStage SecondStage ;
-
-set Nodes := RootNode
- LeafNode1
- LeafNode2
- LeafNode3 ;
-
-param NodeStage := RootNode FirstStage
- LeafNode1 SecondStage
- LeafNode2 SecondStage
- LeafNode3 SecondStage ;
-
-set Children[RootNode] := LeafNode1
- LeafNode2
- LeafNode3 ;
-
-param ConditionalProbability := RootNode 1.0
- LeafNode1 0.3333333333
- LeafNode2 0.3333333334
- LeafNode3 0.3333333333 ;
-
-set Scenarios := Scenario1
- Scenario2
- Scenario3 ;
-
-param ScenarioLeafNode :=
- Scenario1 LeafNode1
- Scenario2 LeafNode2
- Scenario3 LeafNode3 ;
-
-set StageVariables[FirstStage] := x;
-set StageVariables[SecondStage] := ;
-
-param StageCost := FirstStage FirstStageCost
- SecondStage SecondStageCost ;
-
diff --git a/pyomo/pysp/tests/examples/test_model/continuous/generate_ph.py b/pyomo/pysp/tests/examples/test_model/continuous/generate_ph.py
deleted file mode 100644
index b062eadac13..00000000000
--- a/pyomo/pysp/tests/examples/test_model/continuous/generate_ph.py
+++ /dev/null
@@ -1,75 +0,0 @@
-# ___________________________________________________________________________
-#
-# Pyomo: Python Optimization Modeling Objects
-# Copyright 2017 National Technology and Engineering Solutions of Sandia, LLC
-# Under the terms of Contract DE-NA0003525 with National Technology and
-# Engineering Solutions of Sandia, LLC, the U.S. Government retains certain
-# rights in this software.
-# This software is distributed under the 3-clause BSD License.
-# ___________________________________________________________________________
-
-import numpy
-import time
-#x + W*x + 0.5*R*(x-XB)**2
-#x >= L
-#
-#x + W*x + 0.5*R*(x-XB)**2 + l*(x-L)
-#
-#1 + W + R*(x-XB) + l = 0
-#l*(x-L) = 0
-
-L = 0
-U = 10
-
-def Faug(c, x, weight, rho, xbar):
- return c.dot(x) + weight.dot(x) + 0.5*rho*(x-xbar).dot((x-xbar))
-
-def Fwaug(c, x, weight):
- return c.dot(x) + weight.dot(x)
-
-def F(c, x):
- return c.dot(x)
-
-def argminFaug(c,weight, rho, xbar):
- minx = xbar-((c+weight)/rho)
- return numpy.array([min(max(el,L),U) for el in minx])
-
-def argminFwaug(c, weight):
- k = c+weight
- return numpy.array([U if (ki < 0) else L for ki in k])
-
-def argminF(c):
- return numpy.array([U if (ci < 0) else L for ci in c])
-
-def compute_xbar(x,a):
- return x.dot(a)
-
-def update_weights(x, xbar, rho, w):
- return numpy.add(w,rho*(x-xbar))
-
-c = numpy.array([1,-1,1])
-#a = numpy.array([0.25,0.49,0.26])
-a = numpy.array([1.0/3,1.0/3,1.0/3])
-
-w = numpy.array([0,0,0])
-rho = 1.0
-print "RHO:", rho
-x = argminF(c)
-#x = numpy.array([0,0,0])
-print "X:", x
-while(1):
- xbar = compute_xbar(x,a)
- print "XBAR:", xbar
- w = update_weights(x, xbar, rho, w)
- print "W:", w
- faug = Faug(c, x, w, rho, xbar)
- print "FAUG:", faug
- fwaug = Fwaug(c, x, w)
- print "FWAUG:", fwaug
- f = F(c,x)
- print "F:", f
- print
- x = argminFaug(c, w, rho, xbar)
- print "X:", x
- #print "X(w)", argminFwaug(c, w)
- time.sleep(0.5)
diff --git a/pyomo/pysp/tests/examples/test_model/discrete/AAAReadme.txt b/pyomo/pysp/tests/examples/test_model/discrete/AAAReadme.txt
deleted file mode 100644
index ddf431f7a47..00000000000
--- a/pyomo/pysp/tests/examples/test_model/discrete/AAAReadme.txt
+++ /dev/null
@@ -1 +0,0 @@
-a single variable oscillation example
diff --git a/pyomo/pysp/tests/examples/test_model/discrete/ReferenceModel.py b/pyomo/pysp/tests/examples/test_model/discrete/ReferenceModel.py
deleted file mode 100644
index 3dc9798adc4..00000000000
--- a/pyomo/pysp/tests/examples/test_model/discrete/ReferenceModel.py
+++ /dev/null
@@ -1,34 +0,0 @@
-# ___________________________________________________________________________
-#
-# Pyomo: Python Optimization Modeling Objects
-# Copyright 2017 National Technology and Engineering Solutions of Sandia, LLC
-# Under the terms of Contract DE-NA0003525 with National Technology and
-# Engineering Solutions of Sandia, LLC, the U.S. Government retains certain
-# rights in this software.
-# This software is distributed under the 3-clause BSD License.
-# ___________________________________________________________________________
-
-from pyomo.environ import AbstractModel, Var, Param, Constraint, Objective, Expression, Boolean
-
-model = AbstractModel()
-
-model.x = Var(within=Boolean)
-model.y = Var()
-
-model.c = Param()
-
-def y_is_x_rule(model):
- return model.y == model.x
-model.y_is_x = Constraint(rule=y_is_x_rule)
-
-def FirstStageCost_rule(model):
- return 0
-model.FirstStageCost = Expression(rule=FirstStageCost_rule)
-
-def SecondStageCost_rule(model):
- return model.c*model.y
-model.SecondStageCost = Expression(rule=SecondStageCost_rule)
-
-def Obj_rule(model):
- return model.FirstStageCost + model.SecondStageCost
-model.Obj = Objective(rule=Obj_rule)
diff --git a/pyomo/pysp/tests/examples/test_model/discrete/Scenario1.dat b/pyomo/pysp/tests/examples/test_model/discrete/Scenario1.dat
deleted file mode 100644
index 8c7a80c9eec..00000000000
--- a/pyomo/pysp/tests/examples/test_model/discrete/Scenario1.dat
+++ /dev/null
@@ -1 +0,0 @@
-param c := 10;
\ No newline at end of file
diff --git a/pyomo/pysp/tests/examples/test_model/discrete/Scenario2.dat b/pyomo/pysp/tests/examples/test_model/discrete/Scenario2.dat
deleted file mode 100644
index c05acacd89e..00000000000
--- a/pyomo/pysp/tests/examples/test_model/discrete/Scenario2.dat
+++ /dev/null
@@ -1 +0,0 @@
-param c := -10;
\ No newline at end of file
diff --git a/pyomo/pysp/tests/examples/test_model/discrete/ScenarioStructure.dat b/pyomo/pysp/tests/examples/test_model/discrete/ScenarioStructure.dat
deleted file mode 100644
index 350c5480ad1..00000000000
--- a/pyomo/pysp/tests/examples/test_model/discrete/ScenarioStructure.dat
+++ /dev/null
@@ -1,32 +0,0 @@
-# IMPORTANT - THE STAGES ARE ASSUMED TO BE IN TIME-ORDER.
-
-set Stages := FirstStage SecondStage ;
-
-set Nodes := RootNode
- LeafNode1
- LeafNode2 ;
-
-param NodeStage := RootNode FirstStage
- LeafNode1 SecondStage
- LeafNode2 SecondStage ;
-
-set Children[RootNode] := LeafNode1
- LeafNode2 ;
-
-param ConditionalProbability := RootNode 1.0
- LeafNode1 0.5
- LeafNode2 0.5 ;
-
-set Scenarios := Scenario1
- Scenario2 ;
-
-param ScenarioLeafNode :=
- Scenario1 LeafNode1
- Scenario2 LeafNode2 ;
-
-set StageVariables[FirstStage] := x ;
-set StageVariables[SecondStage] := y ;
-
-param StageCost := FirstStage FirstStageCost
- SecondStage SecondStageCost ;
-
diff --git a/pyomo/pysp/tests/examples/test_model/discrete/coolplot.s b/pyomo/pysp/tests/examples/test_model/discrete/coolplot.s
deleted file mode 100644
index cae907b08a9..00000000000
--- a/pyomo/pysp/tests/examples/test_model/discrete/coolplot.s
+++ /dev/null
@@ -1,3 +0,0 @@
-#!/bin/bash
-runph --user-defined-extension=pyomo.pysp.plugins.phhistoryextension --max-iterations=50 --default-rho=1
-python ../plot_history.py ph_history.json
diff --git a/pyomo/pysp/tests/examples/test_model/discrete/generate_ph.py b/pyomo/pysp/tests/examples/test_model/discrete/generate_ph.py
deleted file mode 100644
index b062eadac13..00000000000
--- a/pyomo/pysp/tests/examples/test_model/discrete/generate_ph.py
+++ /dev/null
@@ -1,75 +0,0 @@
-# ___________________________________________________________________________
-#
-# Pyomo: Python Optimization Modeling Objects
-# Copyright 2017 National Technology and Engineering Solutions of Sandia, LLC
-# Under the terms of Contract DE-NA0003525 with National Technology and
-# Engineering Solutions of Sandia, LLC, the U.S. Government retains certain
-# rights in this software.
-# This software is distributed under the 3-clause BSD License.
-# ___________________________________________________________________________
-
-import numpy
-import time
-#x + W*x + 0.5*R*(x-XB)**2
-#x >= L
-#
-#x + W*x + 0.5*R*(x-XB)**2 + l*(x-L)
-#
-#1 + W + R*(x-XB) + l = 0
-#l*(x-L) = 0
-
-L = 0
-U = 10
-
-def Faug(c, x, weight, rho, xbar):
- return c.dot(x) + weight.dot(x) + 0.5*rho*(x-xbar).dot((x-xbar))
-
-def Fwaug(c, x, weight):
- return c.dot(x) + weight.dot(x)
-
-def F(c, x):
- return c.dot(x)
-
-def argminFaug(c,weight, rho, xbar):
- minx = xbar-((c+weight)/rho)
- return numpy.array([min(max(el,L),U) for el in minx])
-
-def argminFwaug(c, weight):
- k = c+weight
- return numpy.array([U if (ki < 0) else L for ki in k])
-
-def argminF(c):
- return numpy.array([U if (ci < 0) else L for ci in c])
-
-def compute_xbar(x,a):
- return x.dot(a)
-
-def update_weights(x, xbar, rho, w):
- return numpy.add(w,rho*(x-xbar))
-
-c = numpy.array([1,-1,1])
-#a = numpy.array([0.25,0.49,0.26])
-a = numpy.array([1.0/3,1.0/3,1.0/3])
-
-w = numpy.array([0,0,0])
-rho = 1.0
-print "RHO:", rho
-x = argminF(c)
-#x = numpy.array([0,0,0])
-print "X:", x
-while(1):
- xbar = compute_xbar(x,a)
- print "XBAR:", xbar
- w = update_weights(x, xbar, rho, w)
- print "W:", w
- faug = Faug(c, x, w, rho, xbar)
- print "FAUG:", faug
- fwaug = Fwaug(c, x, w)
- print "FWAUG:", fwaug
- f = F(c,x)
- print "F:", f
- print
- x = argminFaug(c, w, rho, xbar)
- print "X:", x
- #print "X(w)", argminFwaug(c, w)
- time.sleep(0.5)
diff --git a/pyomo/pysp/tests/examples/test_model/discrete/rhosetter.cfg b/pyomo/pysp/tests/examples/test_model/discrete/rhosetter.cfg
deleted file mode 100644
index 54e57e46fcc..00000000000
--- a/pyomo/pysp/tests/examples/test_model/discrete/rhosetter.cfg
+++ /dev/null
@@ -1,12 +0,0 @@
-# set rho values if invoked by --rho-cfgfile=rhosetter.cfg
-root_node = self._scenario_tree.findRootNode()
-foo = 1.0
-bar = 1.8
-print "hello world"
-for scenario in self._scenario_tree._scenarios:
- instance = scenario._instance
- sm_byObject = instance._ScenarioTreeSymbolMap.byObject
- variable_id = sm_byObject[id(instance.x)]
- self.setRhoOneScenario(root_node, scenario, variable_id, foo)
- print "foo=",foo
- foo = foo * bar
\ No newline at end of file
diff --git a/pyomo/pysp/tests/examples/test_model/discrete/wrhosetter.s b/pyomo/pysp/tests/examples/test_model/discrete/wrhosetter.s
deleted file mode 100644
index 996072c5f5d..00000000000
--- a/pyomo/pysp/tests/examples/test_model/discrete/wrhosetter.s
+++ /dev/null
@@ -1,3 +0,0 @@
-#!/bin/bash
-runph --user-defined-extension=pyomo.pysp.plugins.phhistoryextension --max-iterations=50 --rho-cfgfile=rhosetter.cfg
-python ../plot_history.py ph_history.json
diff --git a/pyomo/pysp/tests/examples/test_model/feas/ReferenceModel.py b/pyomo/pysp/tests/examples/test_model/feas/ReferenceModel.py
deleted file mode 100644
index d1ffe11d3a8..00000000000
--- a/pyomo/pysp/tests/examples/test_model/feas/ReferenceModel.py
+++ /dev/null
@@ -1,58 +0,0 @@
-# ___________________________________________________________________________
-#
-# Pyomo: Python Optimization Modeling Objects
-# Copyright 2017 National Technology and Engineering Solutions of Sandia, LLC
-# Under the terms of Contract DE-NA0003525 with National Technology and
-# Engineering Solutions of Sandia, LLC, the U.S. Government retains certain
-# rights in this software.
-# This software is distributed under the 3-clause BSD License.
-# ___________________________________________________________________________
-
-from pyomo.environ import AbstractModel, RangeSet, Var, Param, Constraint, Objective, Expression, Boolean, sum_product
-
-model = AbstractModel()
-
-model.xIndex = RangeSet(2)
-
-model.x = Var(model.xIndex, within=Boolean)
-model.y = Var()
-model.slackbool = Var(within=Boolean)
-
-model.a = Param()
-model.b = Param()
-model.c = Param()
-model.M = Param()
-
-# Making x1=0 infeasible in scenario 2. Note that default is b1 = 0, b2 = 1, so this is
-# trivially true in scenario 1 and makes x1=0 infeasible in scenario 2.
-def test_rule(model):
- return model.b <= model.b * model.x[1]
-model.test = Constraint(rule=test_rule)
-
-# you can get y=one with anything, but for y=zero, you need all x zero
-def y_is_geq_x_rule(model, i):
- return model.y >= model.x[i]
-model.y_is_geq_x = Constraint(model.xIndex, rule=y_is_geq_x_rule)
-
-# you can get y=zero with anything, but for y=one, you need at least one one
-# but if you don't have at least one one, you have to have y=0
-def y_is_leq_sum_x_rule(model):
- return model.y <= sum_product(model.x)
-model.y_is_leq_sum_x = Constraint(rule=y_is_leq_sum_x_rule)
-
-def slacker_rule(model):
- return model.a * model.y + model.slackbool >= model.b
-model.slacker = Constraint(rule=slacker_rule)
-
-def FirstStageCost_rule(model):
- return 0
-model.FirstStageCost = Expression(rule=FirstStageCost_rule)
-
-def SecondStageCost_rule(model):
- return model.c * model.y + model.M * model.slackbool + sum_product(model.x)
-model.SecondStageCost = Expression(rule=SecondStageCost_rule)
-
-def Obj_rule(model):
- #return model.FirstStageCost + model.SecondStageCost
- return model.FirstStageCost + model.SecondStageCost
-model.Obj = Objective(rule=Obj_rule)
diff --git a/pyomo/pysp/tests/examples/test_model/feas/Scenario1.dat b/pyomo/pysp/tests/examples/test_model/feas/Scenario1.dat
deleted file mode 100644
index d3e5239352e..00000000000
--- a/pyomo/pysp/tests/examples/test_model/feas/Scenario1.dat
+++ /dev/null
@@ -1,4 +0,0 @@
-param c := 10 ;
-param a := -1 ;
-param b := 0 ;
-param M := 1000 ;
\ No newline at end of file
diff --git a/pyomo/pysp/tests/examples/test_model/feas/Scenario2.dat b/pyomo/pysp/tests/examples/test_model/feas/Scenario2.dat
deleted file mode 100644
index 3ffc24b546e..00000000000
--- a/pyomo/pysp/tests/examples/test_model/feas/Scenario2.dat
+++ /dev/null
@@ -1,4 +0,0 @@
-param c := -10 ;
-param a := 1 ;
-param b := 1 ;
-param M := 1100 ;
diff --git a/pyomo/pysp/tests/examples/test_model/feas/ScenarioStructure.dat b/pyomo/pysp/tests/examples/test_model/feas/ScenarioStructure.dat
deleted file mode 100644
index 229555c58c3..00000000000
--- a/pyomo/pysp/tests/examples/test_model/feas/ScenarioStructure.dat
+++ /dev/null
@@ -1,32 +0,0 @@
-# IMPORTANT - THE STAGES ARE ASSUMED TO BE IN TIME-ORDER.
-
-set Stages := FirstStage SecondStage ;
-
-set Nodes := RootNode
- LeafNode1
- LeafNode2 ;
-
-param NodeStage := RootNode FirstStage
- LeafNode1 SecondStage
- LeafNode2 SecondStage ;
-
-set Children[RootNode] := LeafNode1
- LeafNode2 ;
-
-param ConditionalProbability := RootNode 1.0
- LeafNode1 0.5
- LeafNode2 0.5 ;
-
-set Scenarios := Scenario1
- Scenario2 ;
-
-param ScenarioLeafNode :=
- Scenario1 LeafNode1
- Scenario2 LeafNode2 ;
-
-set StageVariables[FirstStage] := x[*] ;
-set StageVariables[SecondStage] := y slackbool ;
-
-param StageCost := FirstStage FirstStageCost
- SecondStage SecondStageCost ;
-
diff --git a/pyomo/pysp/tests/examples/test_model/plot_history.py b/pyomo/pysp/tests/examples/test_model/plot_history.py
deleted file mode 100644
index 687f3c06e33..00000000000
--- a/pyomo/pysp/tests/examples/test_model/plot_history.py
+++ /dev/null
@@ -1,80 +0,0 @@
-# ___________________________________________________________________________
-#
-# Pyomo: Python Optimization Modeling Objects
-# Copyright 2017 National Technology and Engineering Solutions of Sandia, LLC
-# Under the terms of Contract DE-NA0003525 with National Technology and
-# Engineering Solutions of Sandia, LLC, the U.S. Government retains certain
-# rights in this software.
-# This software is distributed under the 3-clause BSD License.
-# ___________________________________________________________________________
-
-import sys
-import os
-
-from pyomo.pysp.plugins.phhistoryextension import load_history
-
-import matplotlib.pylab as plt
-
-assert len(sys.argv) == 2
-filename = sys.argv[1]
-assert os.path.exists(filename)
-
-scenario_tree, history, iterations = load_history(filename)
-
-for node_name, node in scenario_tree['nodes'].items():
-
- # it's not a leaf node
- if len(node['children']):
-
- node_vars = history['0']['node solutions'][node_name]['variables'].keys()
- node_scenarios = node['scenarios']
-
- node_avg_res = {}
- node_xbar_res = {}
- scen_res = {}
- # will produce 1 figure for each variable name in this list
- VARS_TO_SHOW = node_vars
- for varname in VARS_TO_SHOW:
- node_avg_res[varname] = []
- node_xbar_res[varname] = []
- var_scen_res = scen_res[varname] = {}
- for scenario_name in node_scenarios:
- var_scen_res[scenario_name] = {'value':[],'weight':[]}
-
- for i in iterations:
- history_i = history[i]
-
- node_solution = history_i['node solutions'][node_name]['variables']
- for varname in VARS_TO_SHOW:
- node_avg_res[varname].append(node_solution[varname]['solution'])
- node_xbar_res[varname].append(node_solution[varname]['xbar'])
- del node_solution
-
- for scenario_name in node_scenarios:
- scenario_solution = history_i['scenario solutions'][scenario_name]['variables']
- for varname in VARS_TO_SHOW:
- scen_res[varname][scenario_name]['value'].append(scenario_solution[varname]['value'])
- scen_res[varname][scenario_name]['weight'].append(scenario_solution[varname]['weight'])
- del scenario_solution
-
- del history_i
-
- for varname in VARS_TO_SHOW:
- figure = plt.figure()
- ax = figure.add_subplot(121)
- for scenario_name in node_scenarios:
- ax.plot(scen_res[varname][scenario_name]['value'],label=scenario_name)
- ax.plot(node_avg_res[varname],'k--',label='Node Average')
- ax.plot(node_xbar_res[varname],'k--',label='Node Xbar')
- ax.set_title(node_name+' - '+varname)
- if len(node_scenarios) <= 4:
- ax.legend(loc=0)
-
- ax = figure.add_subplot(122)
- for scenario_name in node_scenarios:
- ax.plot(scen_res[varname][scenario_name]['weight'],label=scenario_name)
- ax.set_title(node_name+' - '+varname)
- if len(node_scenarios) <= 4:
- ax.legend(loc=0)
-
-plt.show()
diff --git a/pyomo/pysp/tests/examples/test_model/slackpenalty/AAAReadme.txt b/pyomo/pysp/tests/examples/test_model/slackpenalty/AAAReadme.txt
deleted file mode 100644
index bdd90865452..00000000000
--- a/pyomo/pysp/tests/examples/test_model/slackpenalty/AAAReadme.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-slack penalty example - what the scenarios want, they really should *want*
-with a sharp penalty
-
diff --git a/pyomo/pysp/tests/examples/test_model/slackpenalty/ReferenceModel.py b/pyomo/pysp/tests/examples/test_model/slackpenalty/ReferenceModel.py
deleted file mode 100644
index 6e563c3b991..00000000000
--- a/pyomo/pysp/tests/examples/test_model/slackpenalty/ReferenceModel.py
+++ /dev/null
@@ -1,42 +0,0 @@
-# ___________________________________________________________________________
-#
-# Pyomo: Python Optimization Modeling Objects
-# Copyright 2017 National Technology and Engineering Solutions of Sandia, LLC
-# Under the terms of Contract DE-NA0003525 with National Technology and
-# Engineering Solutions of Sandia, LLC, the U.S. Government retains certain
-# rights in this software.
-# This software is distributed under the 3-clause BSD License.
-# ___________________________________________________________________________
-
-from pyomo.environ import AbstractModel, Var, Param, Constraint, Objective, Expression, Boolean
-
-model = AbstractModel()
-
-model.x = Var(within=Boolean)
-model.y = Var()
-model.slackbool = Var(within=Boolean)
-
-model.a = Param()
-model.b = Param()
-model.c = Param()
-model.M = Param()
-
-def y_is_x_rule(model):
- return model.y == model.x
-model.y_is_x = Constraint(rule=y_is_x_rule)
-
-def slacker_rule(model):
- return model.a * model.y + model.slackbool >= model.b
-model.slacker = Constraint(rule=slacker_rule)
-
-def FirstStageCost_rule(model):
- return 0
-model.FirstStageCost = Expression(rule=FirstStageCost_rule)
-
-def SecondStageCost_rule(model):
- return model.c * model.y + model.M * model.slackbool
-model.SecondStageCost = Expression(rule=SecondStageCost_rule)
-
-def Obj_rule(model):
- return model.FirstStageCost + model.SecondStageCost
-model.Obj = Objective(rule=Obj_rule)
diff --git a/pyomo/pysp/tests/examples/test_model/slackpenalty/Scenario1.dat b/pyomo/pysp/tests/examples/test_model/slackpenalty/Scenario1.dat
deleted file mode 100644
index d3e5239352e..00000000000
--- a/pyomo/pysp/tests/examples/test_model/slackpenalty/Scenario1.dat
+++ /dev/null
@@ -1,4 +0,0 @@
-param c := 10 ;
-param a := -1 ;
-param b := 0 ;
-param M := 1000 ;
\ No newline at end of file
diff --git a/pyomo/pysp/tests/examples/test_model/slackpenalty/Scenario2.dat b/pyomo/pysp/tests/examples/test_model/slackpenalty/Scenario2.dat
deleted file mode 100644
index 3ffc24b546e..00000000000
--- a/pyomo/pysp/tests/examples/test_model/slackpenalty/Scenario2.dat
+++ /dev/null
@@ -1,4 +0,0 @@
-param c := -10 ;
-param a := 1 ;
-param b := 1 ;
-param M := 1100 ;
diff --git a/pyomo/pysp/tests/examples/test_model/slackpenalty/ScenarioStructure.dat b/pyomo/pysp/tests/examples/test_model/slackpenalty/ScenarioStructure.dat
deleted file mode 100644
index 7532834cd1f..00000000000
--- a/pyomo/pysp/tests/examples/test_model/slackpenalty/ScenarioStructure.dat
+++ /dev/null
@@ -1,32 +0,0 @@
-# IMPORTANT - THE STAGES ARE ASSUMED TO BE IN TIME-ORDER.
-
-set Stages := FirstStage SecondStage ;
-
-set Nodes := RootNode
- LeafNode1
- LeafNode2 ;
-
-param NodeStage := RootNode FirstStage
- LeafNode1 SecondStage
- LeafNode2 SecondStage ;
-
-set Children[RootNode] := LeafNode1
- LeafNode2 ;
-
-param ConditionalProbability := RootNode 1.0
- LeafNode1 0.5
- LeafNode2 0.5 ;
-
-set Scenarios := Scenario1
- Scenario2 ;
-
-param ScenarioLeafNode :=
- Scenario1 LeafNode1
- Scenario2 LeafNode2 ;
-
-set StageVariables[FirstStage] := x ;
-set StageVariables[SecondStage] := y slackbool ;
-
-param StageCost := FirstStage FirstStageCost
- SecondStage SecondStageCost ;
-
diff --git a/pyomo/pysp/tests/examples/test_model/slackpenalty/coolplot.s b/pyomo/pysp/tests/examples/test_model/slackpenalty/coolplot.s
deleted file mode 100644
index d7da807e14e..00000000000
--- a/pyomo/pysp/tests/examples/test_model/slackpenalty/coolplot.s
+++ /dev/null
@@ -1,3 +0,0 @@
-#!/bin/bash
-runph --user-defined-extension=pyomo.pysp.plugins.phhistoryextension --max-iterations=50 --default-rho=2002
-python ../plot_history.py ph_history.json
diff --git a/pyomo/pysp/tests/examples/test_model/slackpenalty/generate_ph.py b/pyomo/pysp/tests/examples/test_model/slackpenalty/generate_ph.py
deleted file mode 100644
index b062eadac13..00000000000
--- a/pyomo/pysp/tests/examples/test_model/slackpenalty/generate_ph.py
+++ /dev/null
@@ -1,75 +0,0 @@
-# ___________________________________________________________________________
-#
-# Pyomo: Python Optimization Modeling Objects
-# Copyright 2017 National Technology and Engineering Solutions of Sandia, LLC
-# Under the terms of Contract DE-NA0003525 with National Technology and
-# Engineering Solutions of Sandia, LLC, the U.S. Government retains certain
-# rights in this software.
-# This software is distributed under the 3-clause BSD License.
-# ___________________________________________________________________________
-
-import numpy
-import time
-#x + W*x + 0.5*R*(x-XB)**2
-#x >= L
-#
-#x + W*x + 0.5*R*(x-XB)**2 + l*(x-L)
-#
-#1 + W + R*(x-XB) + l = 0
-#l*(x-L) = 0
-
-L = 0
-U = 10
-
-def Faug(c, x, weight, rho, xbar):
- return c.dot(x) + weight.dot(x) + 0.5*rho*(x-xbar).dot((x-xbar))
-
-def Fwaug(c, x, weight):
- return c.dot(x) + weight.dot(x)
-
-def F(c, x):
- return c.dot(x)
-
-def argminFaug(c,weight, rho, xbar):
- minx = xbar-((c+weight)/rho)
- return numpy.array([min(max(el,L),U) for el in minx])
-
-def argminFwaug(c, weight):
- k = c+weight
- return numpy.array([U if (ki < 0) else L for ki in k])
-
-def argminF(c):
- return numpy.array([U if (ci < 0) else L for ci in c])
-
-def compute_xbar(x,a):
- return x.dot(a)
-
-def update_weights(x, xbar, rho, w):
- return numpy.add(w,rho*(x-xbar))
-
-c = numpy.array([1,-1,1])
-#a = numpy.array([0.25,0.49,0.26])
-a = numpy.array([1.0/3,1.0/3,1.0/3])
-
-w = numpy.array([0,0,0])
-rho = 1.0
-print "RHO:", rho
-x = argminF(c)
-#x = numpy.array([0,0,0])
-print "X:", x
-while(1):
- xbar = compute_xbar(x,a)
- print "XBAR:", xbar
- w = update_weights(x, xbar, rho, w)
- print "W:", w
- faug = Faug(c, x, w, rho, xbar)
- print "FAUG:", faug
- fwaug = Fwaug(c, x, w)
- print "FWAUG:", fwaug
- f = F(c,x)
- print "F:", f
- print
- x = argminFaug(c, w, rho, xbar)
- print "X:", x
- #print "X(w)", argminFwaug(c, w)
- time.sleep(0.5)
diff --git a/pyomo/pysp/tests/examples/test_model/slackpenalty/rhosetter.cfg b/pyomo/pysp/tests/examples/test_model/slackpenalty/rhosetter.cfg
deleted file mode 100644
index 54e57e46fcc..00000000000
--- a/pyomo/pysp/tests/examples/test_model/slackpenalty/rhosetter.cfg
+++ /dev/null
@@ -1,12 +0,0 @@
-# set rho values if invoked by --rho-cfgfile=rhosetter.cfg
-root_node = self._scenario_tree.findRootNode()
-foo = 1.0
-bar = 1.8
-print "hello world"
-for scenario in self._scenario_tree._scenarios:
- instance = scenario._instance
- sm_byObject = instance._ScenarioTreeSymbolMap.byObject
- variable_id = sm_byObject[id(instance.x)]
- self.setRhoOneScenario(root_node, scenario, variable_id, foo)
- print "foo=",foo
- foo = foo * bar
\ No newline at end of file
diff --git a/pyomo/pysp/tests/examples/test_model/slackpenalty/wrhosetter.s b/pyomo/pysp/tests/examples/test_model/slackpenalty/wrhosetter.s
deleted file mode 100644
index 996072c5f5d..00000000000
--- a/pyomo/pysp/tests/examples/test_model/slackpenalty/wrhosetter.s
+++ /dev/null
@@ -1,3 +0,0 @@
-#!/bin/bash
-runph --user-defined-extension=pyomo.pysp.plugins.phhistoryextension --max-iterations=50 --rho-cfgfile=rhosetter.cfg
-python ../plot_history.py ph_history.json
diff --git a/pyomo/pysp/tests/examples/test_model/twovarslack/AAAReadme.txt b/pyomo/pysp/tests/examples/test_model/twovarslack/AAAReadme.txt
deleted file mode 100644
index b669d5fde27..00000000000
--- a/pyomo/pysp/tests/examples/test_model/twovarslack/AAAReadme.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-slack penalty example - what the scenarios want, they really should *want*
-with a sharp penalty
-see comments in reference model
-
-
diff --git a/pyomo/pysp/tests/examples/test_model/twovarslack/ReferenceModel.py b/pyomo/pysp/tests/examples/test_model/twovarslack/ReferenceModel.py
deleted file mode 100644
index 1b0592ffb03..00000000000
--- a/pyomo/pysp/tests/examples/test_model/twovarslack/ReferenceModel.py
+++ /dev/null
@@ -1,51 +0,0 @@
-# ___________________________________________________________________________
-#
-# Pyomo: Python Optimization Modeling Objects
-# Copyright 2017 National Technology and Engineering Solutions of Sandia, LLC
-# Under the terms of Contract DE-NA0003525 with National Technology and
-# Engineering Solutions of Sandia, LLC, the U.S. Government retains certain
-# rights in this software.
-# This software is distributed under the 3-clause BSD License.
-# ___________________________________________________________________________
-
-from pyomo.environ import AbstractModel, RangeSet, Var, Param, Constraint, Objective, Expression, Boolean, sum_product
-
-model = AbstractModel()
-
-model.xIndex = RangeSet(2)
-
-model.x = Var(model.xIndex, within=Boolean)
-model.y = Var()
-model.slackbool = Var(within=Boolean)
-
-model.a = Param()
-model.b = Param()
-model.c = Param()
-model.M = Param()
-
-# you can get y=one with anything, but for y=zero, you need all x zero
-def y_is_geq_x_rule(model, i):
- return model.y >= model.x[i]
-model.y_is_geq_x = Constraint(model.xIndex, rule=y_is_geq_x_rule)
-
-# you can get y=zero with anything, but for y=one, you need at least one one
-# but if you don't have at least one one, you have to have y=0
-def y_is_leq_sum_x_rule(model):
- return model.y <= sum_product(model.x)
-model.y_is_leq_sum_x = Constraint(rule=y_is_leq_sum_x_rule)
-
-def slacker_rule(model):
- return model.a * model.y + model.slackbool >= model.b
-model.slacker = Constraint(rule=slacker_rule)
-
-def FirstStageCost_rule(model):
- return 0
-model.FirstStageCost = Expression(rule=FirstStageCost_rule)
-
-def SecondStageCost_rule(model):
- return model.c * model.y + model.M * model.slackbool
-model.SecondStageCost = Expression(rule=SecondStageCost_rule)
-
-def Obj_rule(model):
- return model.FirstStageCost + model.SecondStageCost
-model.Obj = Objective(rule=Obj_rule)
diff --git a/pyomo/pysp/tests/examples/test_model/twovarslack/Scenario1.dat b/pyomo/pysp/tests/examples/test_model/twovarslack/Scenario1.dat
deleted file mode 100644
index d3e5239352e..00000000000
--- a/pyomo/pysp/tests/examples/test_model/twovarslack/Scenario1.dat
+++ /dev/null
@@ -1,4 +0,0 @@
-param c := 10 ;
-param a := -1 ;
-param b := 0 ;
-param M := 1000 ;
\ No newline at end of file
diff --git a/pyomo/pysp/tests/examples/test_model/twovarslack/Scenario2.dat b/pyomo/pysp/tests/examples/test_model/twovarslack/Scenario2.dat
deleted file mode 100644
index 3ffc24b546e..00000000000
--- a/pyomo/pysp/tests/examples/test_model/twovarslack/Scenario2.dat
+++ /dev/null
@@ -1,4 +0,0 @@
-param c := -10 ;
-param a := 1 ;
-param b := 1 ;
-param M := 1100 ;
diff --git a/pyomo/pysp/tests/examples/test_model/twovarslack/ScenarioStructure.dat b/pyomo/pysp/tests/examples/test_model/twovarslack/ScenarioStructure.dat
deleted file mode 100644
index 229555c58c3..00000000000
--- a/pyomo/pysp/tests/examples/test_model/twovarslack/ScenarioStructure.dat
+++ /dev/null
@@ -1,32 +0,0 @@
-# IMPORTANT - THE STAGES ARE ASSUMED TO BE IN TIME-ORDER.
-
-set Stages := FirstStage SecondStage ;
-
-set Nodes := RootNode
- LeafNode1
- LeafNode2 ;
-
-param NodeStage := RootNode FirstStage
- LeafNode1 SecondStage
- LeafNode2 SecondStage ;
-
-set Children[RootNode] := LeafNode1
- LeafNode2 ;
-
-param ConditionalProbability := RootNode 1.0
- LeafNode1 0.5
- LeafNode2 0.5 ;
-
-set Scenarios := Scenario1
- Scenario2 ;
-
-param ScenarioLeafNode :=
- Scenario1 LeafNode1
- Scenario2 LeafNode2 ;
-
-set StageVariables[FirstStage] := x[*] ;
-set StageVariables[SecondStage] := y slackbool ;
-
-param StageCost := FirstStage FirstStageCost
- SecondStage SecondStageCost ;
-
diff --git a/pyomo/pysp/tests/examples/test_model/twovarslack/coolplot.s b/pyomo/pysp/tests/examples/test_model/twovarslack/coolplot.s
deleted file mode 100644
index e25a044a6a0..00000000000
--- a/pyomo/pysp/tests/examples/test_model/twovarslack/coolplot.s
+++ /dev/null
@@ -1,3 +0,0 @@
-#!/bin/bash
-runph --user-defined-extension=pyomo.pysp.plugins.phhistoryextension --max-iterations=50 --default-rho=200 --report-weights --enable-ww-extensions
-python ../plot_history.py ph_history.json
diff --git a/pyomo/pysp/tests/examples/test_model/twovarslack/generate_ph.py b/pyomo/pysp/tests/examples/test_model/twovarslack/generate_ph.py
deleted file mode 100644
index b062eadac13..00000000000
--- a/pyomo/pysp/tests/examples/test_model/twovarslack/generate_ph.py
+++ /dev/null
@@ -1,75 +0,0 @@
-# ___________________________________________________________________________
-#
-# Pyomo: Python Optimization Modeling Objects
-# Copyright 2017 National Technology and Engineering Solutions of Sandia, LLC
-# Under the terms of Contract DE-NA0003525 with National Technology and
-# Engineering Solutions of Sandia, LLC, the U.S. Government retains certain
-# rights in this software.
-# This software is distributed under the 3-clause BSD License.
-# ___________________________________________________________________________
-
-import numpy
-import time
-#x + W*x + 0.5*R*(x-XB)**2
-#x >= L
-#
-#x + W*x + 0.5*R*(x-XB)**2 + l*(x-L)
-#
-#1 + W + R*(x-XB) + l = 0
-#l*(x-L) = 0
-
-L = 0
-U = 10
-
-def Faug(c, x, weight, rho, xbar):
- return c.dot(x) + weight.dot(x) + 0.5*rho*(x-xbar).dot((x-xbar))
-
-def Fwaug(c, x, weight):
- return c.dot(x) + weight.dot(x)
-
-def F(c, x):
- return c.dot(x)
-
-def argminFaug(c,weight, rho, xbar):
- minx = xbar-((c+weight)/rho)
- return numpy.array([min(max(el,L),U) for el in minx])
-
-def argminFwaug(c, weight):
- k = c+weight
- return numpy.array([U if (ki < 0) else L for ki in k])
-
-def argminF(c):
- return numpy.array([U if (ci < 0) else L for ci in c])
-
-def compute_xbar(x,a):
- return x.dot(a)
-
-def update_weights(x, xbar, rho, w):
- return numpy.add(w,rho*(x-xbar))
-
-c = numpy.array([1,-1,1])
-#a = numpy.array([0.25,0.49,0.26])
-a = numpy.array([1.0/3,1.0/3,1.0/3])
-
-w = numpy.array([0,0,0])
-rho = 1.0
-print "RHO:", rho
-x = argminF(c)
-#x = numpy.array([0,0,0])
-print "X:", x
-while(1):
- xbar = compute_xbar(x,a)
- print "XBAR:", xbar
- w = update_weights(x, xbar, rho, w)
- print "W:", w
- faug = Faug(c, x, w, rho, xbar)
- print "FAUG:", faug
- fwaug = Fwaug(c, x, w)
- print "FWAUG:", fwaug
- f = F(c,x)
- print "F:", f
- print
- x = argminFaug(c, w, rho, xbar)
- print "X:", x
- #print "X(w)", argminFwaug(c, w)
- time.sleep(0.5)
diff --git a/pyomo/pysp/tests/examples/test_model/twovarslack/rhosetter.cfg b/pyomo/pysp/tests/examples/test_model/twovarslack/rhosetter.cfg
deleted file mode 100644
index 77c442b7247..00000000000
--- a/pyomo/pysp/tests/examples/test_model/twovarslack/rhosetter.cfg
+++ /dev/null
@@ -1,15 +0,0 @@
-# set rho values if invoked by --rho-cfgfile=rhosetter.cfg
-# kind of silly
-root_node = self._scenario_tree.findRootNode()
-foo = 100.0
-bar = 1.8
-print "hello world"
-for scenario in self._scenario_tree._scenarios:
- instance = scenario._instance
- sm_byObject = instance._ScenarioTreeSymbolMap.byObject
- variable_id = sm_byObject[id(instance.x[1])]
- self.setRhoOneScenario(root_node, scenario, variable_id, foo)
- print "foo=",foo
- foo = foo * bar
- variable_id = sm_byObject[id(instance.x[2])]
- self.setRhoOneScenario(root_node, scenario, variable_id, foo)
diff --git a/pyomo/pysp/tests/examples/test_model/twovarslack/wrhosetter.s b/pyomo/pysp/tests/examples/test_model/twovarslack/wrhosetter.s
deleted file mode 100644
index 996072c5f5d..00000000000
--- a/pyomo/pysp/tests/examples/test_model/twovarslack/wrhosetter.s
+++ /dev/null
@@ -1,3 +0,0 @@
-#!/bin/bash
-runph --user-defined-extension=pyomo.pysp.plugins.phhistoryextension --max-iterations=50 --rho-cfgfile=rhosetter.cfg
-python ../plot_history.py ph_history.json
diff --git a/pyomo/pysp/tests/examples/test_ph.py b/pyomo/pysp/tests/examples/test_ph.py
deleted file mode 100644
index 3bd3c382386..00000000000
--- a/pyomo/pysp/tests/examples/test_ph.py
+++ /dev/null
@@ -1,1342 +0,0 @@
-# ___________________________________________________________________________
-#
-# Pyomo: Python Optimization Modeling Objects
-# Copyright 2017 National Technology and Engineering Solutions of Sandia, LLC
-# Under the terms of Contract DE-NA0003525 with National Technology and
-# Engineering Solutions of Sandia, LLC, the U.S. Government retains certain
-# rights in this software.
-# This software is distributed under the 3-clause BSD License.
-# ___________________________________________________________________________
-
-import fnmatch
-import time
-import json
-import subprocess
-import os
-from os.path import abspath, dirname, join, basename
-
-try:
- from subprocess import check_output as _run_cmd
-except:
- # python 2.6
- from subprocess import check_call as _run_cmd
-
-# TODO: test non-trivial bundles for farmer
-# TODO: test farmer with integers
-
-import pyutilib.th as unittest
-from pyutilib.misc.comparison import open_possibly_compressed_file
-from pyomo.common.dependencies import yaml_available
-from pyomo.pysp.util.misc import (_get_test_nameserver,
- _get_test_dispatcher,
- _poll,
- _kill)
-from pyomo.pysp.tests.examples.ph_checker import main as validate_ph_main
-from pyutilib.pyro import using_pyro3, using_pyro4
-
-
-# Global test configuration options
-_test_name_wildcard_include = ["*"]
-_test_name_wildcard_exclude = [""]
-_disable_stdout_test = True
-_json_exact_comparison = True
-_yaml_exact_comparison = True
-_diff_tolerance = 1e-2
-_baseline_suffix = ".gz"
-
-_pyomo_ns_host = '127.0.0.1'
-_pyomo_ns_port = None
-_pyomo_ns_process = None
-_dispatch_srvr_port = None
-_dispatch_srvr_process = None
-_taskworker_processes = []
-def _setUpModule():
- global _pyomo_ns_port
- global _pyomo_ns_process
- global _dispatch_srvr_port
- global _dispatch_srvr_process
- global _taskworker_processes
- if _pyomo_ns_process is None:
- _pyomo_ns_process, _pyomo_ns_port = \
- _get_test_nameserver(ns_host=_pyomo_ns_host)
- assert _pyomo_ns_process is not None
- if _dispatch_srvr_process is None:
- _dispatch_srvr_process, _dispatch_srvr_port = \
- _get_test_dispatcher(ns_host=_pyomo_ns_host,
- ns_port=_pyomo_ns_port)
- assert _dispatch_srvr_process is not None
- if len(_taskworker_processes) == 0:
- for i in range(3):
- _taskworker_processes.append(
- subprocess.Popen(["pyro_mip_server", "--traceback"] + \
- ["--pyro-host="+str(_pyomo_ns_host)] + \
- ["--pyro-port="+str(_pyomo_ns_port)]))
- for i in range(3):
- _taskworker_processes.append(
- subprocess.Popen(["phsolverserver", "--traceback"] + \
- ["--pyro-host="+str(_pyomo_ns_host)] + \
- ["--pyro-port="+str(_pyomo_ns_port)]))
- time.sleep(5)
- [_poll(proc) for proc in _taskworker_processes]
-
-def tearDownModule():
- global _pyomo_ns_port
- global _pyomo_ns_process
- global _dispatch_srvr_port
- global _dispatch_srvr_process
- global _taskworker_processes
- _kill(_pyomo_ns_process)
- _pyomo_ns_port = None
- _pyomo_ns_process = None
- _kill(_dispatch_srvr_process)
- _dispatch_srvr_port = None
- _dispatch_srvr_process = None
- [_kill(proc) for proc in _taskworker_processes]
- _taskworker_processes = []
- if os.path.exists(os.path.join(thisDir,'Pyro_NS_URI')):
- try:
- os.remove(os.path.join(thisDir,'Pyro_NS_URI'))
- except OSError:
- pass
-
-#
-# Get the directory where this script is defined, and where the baseline
-# files are located.
-#
-
-thisDir = dirname(abspath(__file__))
-baselineDir = join(thisDir,"baselines")
-pysp_examples_dir = \
- join(dirname(dirname(dirname(dirname(thisDir)))),"examples","pysp")
-pyomo_bin_dir = \
- join(dirname(dirname(dirname(dirname(dirname(dirname(thisDir)))))),"bin")
-
-farmer_examples_dir = join(pysp_examples_dir,"farmer")
-farmer_model_dir = join(farmer_examples_dir,"models")
-farmer_concrete_model_dir = join(farmer_examples_dir,"concrete")
-farmer_expr_model_dir = join(farmer_examples_dir,"expr_models")
-farmer_max_model_dir = join(farmer_examples_dir,"maxmodels")
-farmer_data_dir = join(farmer_examples_dir,"scenariodata")
-farmer_trivialbundlesdata_dir = \
- join(farmer_examples_dir,"scenariodataWithTrivialBundles")
-farmer_config_dir = join(farmer_examples_dir,"config")
-#farmer_config_dir = join(thisDir, "farmer_files")
-
-nf_examples_dir = join(pysp_examples_dir,"networkflow")
-nf_model_dir = join(nf_examples_dir,"models")
-nf_data_dir = join(nf_examples_dir,"1ef3")
-nf_config_dir = join(nf_examples_dir, "config")
-
-sizes_examples_dir = join(pysp_examples_dir,"sizes")
-sizes_model_dir = join(sizes_examples_dir,"models")
-sizes_data_dir = join(sizes_examples_dir,"SIZES3")
-sizes_config_dir = join(sizes_examples_dir, "config")
-
-forestry_examples_dir = join(pysp_examples_dir,"forestry")
-forestry_model_dir = join(forestry_examples_dir,"models-nb-yr")
-forestry_data_dir = join(forestry_examples_dir,"unequalProbs")
-forestry_config_dir = join(forestry_examples_dir, "config")
-
-testing_solvers = {}
-testing_solvers['cplex','lp'] = False
-testing_solvers['cplex','nl'] = False
-testing_solvers['ipopt','nl'] = False
-testing_solvers['cplex','python'] = False
-testing_solvers['_cplex_persistent','python'] = False
-
-def filter_stale_keys(repn):
-
- if not isinstance(repn, dict):
- return repn
- else:
- return dict((key,filter_stale_keys(value)) \
- for key,value in repn.items() \
- if key != 'stale')
-
-def filter_time_and_data_dirs(line):
- return ("seconds" in line) or \
- ("starting at" in line) or \
- ("solve ends" in line) or \
- line.startswith("Output file written to") or \
- ("filename" in line) or \
- ("directory" in line) or \
- ("file" in line) or \
- line.startswith("WARNING:") or \
- line.startswith("Trying to import module=")
-
-# pyro output filtering is complex, due to asynchronous behaviors -
-# filter all blather regarding what Pyro components are doing.
-def filter_pyro(line):
- if line.startswith("URI") or line.startswith("Object URI") or line.startswith("Dispatcher Object URI") or line.startswith("Dispatcher is ready"):
- return True
- elif line.startswith("Initializing PH"): # added to prevent diff'ing showing up a positive because of PH initialization order relative to the other pyro-based components
- return True
- elif line.startswith("Applying solver"):
- return True
- elif line.startswith("Attempting to find Pyro dispatcher object"):
- return True
- elif line.startswith("Getting work from"):
- return True
- elif line.startswith("Name Server started."):
- return True
- elif line.startswith("Name Server gracefully stopped."):
- return True
- elif line.startswith("Listening for work from"):
- return True
- #elif line.startswith("Error loading pyomo.opt entry point"): # supressing weird error that occasionally pops up when loading plugins
- # return True
- elif line.startswith("Broadcast server"):
- return True
- elif line.startswith("Failed to locate nameserver - trying again"):
- return True
- elif line.startswith("Failed to find dispatcher object from name server - trying again"):
- return True
- elif line.startswith("Lost connection to"): # happens when shutting down pyro objects
- return True
- elif line.startswith("WARNING: daemon bound on hostname that resolves"): # happens when not connected to a network.
- return True
- elif line.startswith("This is worker") or line.startswith("This is client") or line.startswith("Finding Pyro"):
- return True
- elif line.find("Applying solver") != -1:
- return True
- elif line.find("Solve completed") != -1:
- return True
- #elif line.find("Freeing MIP data") != -1: # CPLEX 12.4 python interface idiocy
- # return True
- #elif line.find("Warning: integer solution") != -1: # CPLEX 12.4 python interface idiocy
- # return True
- elif line.startswith("Creating instance"): # non-deterministic order for PH Pyro solver manager
- return True
- elif ("Creating " in line) and (" random bundles using seed=" in line): # non-deterministic order for PH Pyro solver manager
- return True
- elif line.startswith("Exception in thread"): # occasionally raised during Pyro component shutdown
- return True
- elif line.startswith("Traceback"): # occasionally raised during Pyro component shutdown
- return True
- elif line.startswith("File"): # occasionally raised during Pyro component shutdown
- return True
- return filter_time_and_data_dirs(line)
-
-class PHTester(object):
-
- baseline_group = None
- num_scenarios = None
- model_directory = None
- instance_directory = None
- solver_manager = None
- solver_name = None
- solver_io = None
- diff_filter = None
- base_command_options = ""
-
- @staticmethod
- def _setUpClass(cls):
- global testing_solvers
- from pyomo.solvers.tests.solvers import test_solver_cases
- for _solver, _io in test_solver_cases():
- if (_solver, _io) in testing_solvers and \
- test_solver_cases(_solver, _io).available:
- testing_solvers[_solver, _io] = True
-
- def setUp(self):
- assert self.baseline_group is not None
- assert self.num_scenarios is not None
- assert self.model_directory is not None
- assert self.instance_directory is not None
- assert self.solver_manager in ('serial','pyro','phpyro')
- assert (self.solver_name,self.solver_io) in testing_solvers
- assert self.diff_filter is not None
- assert self.base_command_options is not None
- if (self.solver_manager == 'pyro') or \
- (self.solver_manager == 'phpyro'):
- _setUpModule()
- else:
- assert self.solver_manager == 'serial'
-
- @staticmethod
- def safe_delete(filename):
- try:
- os.remove(filename)
- except OSError:
- pass
-
- def get_cmd_base(self):
- cmd = ''
- cmd += 'cd '+thisDir+'; '
- if self.solver_manager == 'serial':
- cmd += "PHHISTORYEXTENSION_USE_JSON=1 runph -r 1 --solver-manager=serial"
- elif self.solver_manager == 'pyro':
- [_poll(proc) for proc in _taskworker_processes]
- cmd += ("PHHISTORYEXTENSION_USE_JSON=1 runph -r 1 "
- "--solver-manager=pyro --pyro-host=%s "
- "--pyro-port=%d --traceback") \
- % (_pyomo_ns_host, _pyomo_ns_port)
- elif self.solver_manager == 'phpyro':
- [_poll(proc) for proc in _taskworker_processes]
- cmd += ("PHHISTORYEXTENSION_USE_JSON=1 runph -r 1 "
- "--phpyro-required-workers=3 --solver-manager=phpyro --pyro-host=%s "
- "--pyro-port=%d --traceback") \
- % (_pyomo_ns_host, _pyomo_ns_port)
- else:
- raise RuntimeError("Invalid solver manager "+str(self.solver_manager))
- cmd += " --solver="+self.solver_name
- cmd += " --solver-io="+self.solver_io
- cmd += " --xhat-method=voting"
- cmd += " --traceback"
- cmd += self.base_command_options
- return cmd
-
- @unittest.nottest
- def _baseline_test(self,
- options_string="",
- validation_options_string="",
- cleanup_func=None,
- rename_func=None,
- check_baseline_func=None,
- has_solution_baseline=True,
- has_stdout_baseline=True):
-
- global _test_name_wildcard_include
- global _test_name_wildcard_exclude
- class_name, test_name = self.id().split('.')[-2:]
- if all(not fnmatch.fnmatch(class_name+'.'+test_name,inc_wildcard) \
- for inc_wildcard in _test_name_wildcard_include):
- self.skipTest("Test %s.%s does not match any include wildcard in '%s'" \
- % (class_name, test_name, _test_name_wildcard_include))
- if any(fnmatch.fnmatch(class_name+'.'+test_name,exc_wildcard) \
- for exc_wildcard in _test_name_wildcard_exclude):
- self.skipTest("Test %s.%s matches at least one exclude wildcard in '%s'" \
- % (class_name, test_name, _test_name_wildcard_exclude))
- if not testing_solvers[self.solver_name,self.solver_io]:
- self.skipTest("Solver (%s,%s) not available"
- % (self.solver_name, self.solver_io))
- prefix = class_name+"."+test_name
- argstring = self.get_cmd_base()+" "\
- "--model-directory="+self.model_directory+" "\
- "--instance-directory="+self.instance_directory+" "\
- "--user-defined-extension=pyomo.pysp.plugins.phhistoryextension "\
- "--solution-writer=pyomo.pysp.plugins.jsonsolutionwriter "\
- +options_string+" "\
- "&> "+join(thisDir,prefix+".out")
- print("Testing command("+basename(prefix)+"): " + argstring)
- self.safe_delete(join(thisDir,prefix+".out"))
- self.safe_delete(join(thisDir,"ph_history.json"))
- self.safe_delete(join(thisDir,prefix+".ph_history.json.out"))
- self.safe_delete(join(thisDir,"ph_solution.json"))
- self.safe_delete(join(thisDir,prefix+".ph_solution.json.out"))
- if cleanup_func is not None:
- cleanup_func(self, class_name, test_name)
- _run_cmd(argstring, shell=True)
- self.assertTrue(os.path.exists(join(thisDir,"ph_history.json")))
- self.assertTrue(os.path.exists(join(thisDir,"ph_solution.json")))
- os.rename(join(thisDir,"ph_history.json"),
- join(thisDir,prefix+".ph_history.json.out"))
- os.rename(join(thisDir,"ph_solution.json"),
- join(thisDir,prefix+".ph_solution.json.out"))
- if rename_func is not None:
- rename_func(self, class_name, test_name)
- group_prefix = self.baseline_group+"."+test_name
- # Disable automatic deletion of the ph_history/ph_solution
- # output file on passing test just in case the optional
- # check_baseline_func wants to look at it.
- validate_ph_main([join(thisDir,prefix+".ph_history.json.out"),
- '-t',repr(_diff_tolerance)]\
- +validation_options_string.split())
- if has_solution_baseline:
- self.assertMatchesJsonBaseline(
- join(thisDir,prefix+".ph_history.json.out"),
- join(baselineDir,group_prefix+".ph_history.json.baseline"+_baseline_suffix),
- tolerance=_diff_tolerance,
- delete=False,
- exact=_json_exact_comparison)
- self.assertMatchesJsonBaseline(
- join(thisDir,prefix+".ph_solution.json.out"),
- join(baselineDir,group_prefix+".ph_solution.json.baseline"+_baseline_suffix),
- tolerance=_diff_tolerance,
- delete=False,
- exact=_json_exact_comparison)
- if check_baseline_func is not None:
- check_baseline_func(self, class_name, test_name)
- else:
- # Now we can safely delete these files because the test
- # has passed if we are here
- self.safe_delete(join(thisDir,prefix+".ph_history.json.out"))
- self.safe_delete(join(thisDir,prefix+".ph_solution.json.out"))
-
- if (not _disable_stdout_test) and has_stdout_baseline:
- # If the above baseline test passes but this fails, you
- # can assume it is pretty safe to update the following
- # baseline (assuming the output change looks reasonable)
- self.assertFileEqualsBaseline(join(thisDir,prefix+".out"),
- join(baselineDir,prefix+".baseline"),
- filter=self.diff_filter,
- tolerance=_diff_tolerance)
- else:
- self.safe_delete(join(thisDir,prefix+".out"))
-
- @unittest.nottest
- def _phboundextension_baseline_test(self,
- options_string="",
- validation_options_string="",
- cleanup_func=None,
- rename_func=None,
- check_baseline_func=None,
- has_solution_baseline=True,
- has_stdout_baseline=True):
-
- def _cleanup_func(self, class_name, test_name):
- if cleanup_func is not None:
- cleanup_func(self, class_name, test_name)
- prefix = class_name+"."+test_name
- self.safe_delete(join(thisDir,"phbound.txt"))
- self.safe_delete(join(thisDir,"phbestbound.txt"))
- self.safe_delete(join(thisDir,prefix+".phbound.txt.out"))
- self.safe_delete(join(thisDir,prefix+".phbestbound.txt.out"))
- def _rename_func(self, class_name, test_name):
- if rename_func is not None:
- rename_func(self, class_name, test_name)
- prefix = class_name+"."+test_name
- os.rename(join(thisDir,"phbound.txt"),
- join(thisDir,prefix+".phbound.txt.out"))
- os.rename(join(thisDir,"phbestbound.txt"),
- join(thisDir,prefix+".phbestbound.txt.out"))
- def _check_baseline_func(self, class_name, test_name):
- prefix = class_name+"."+test_name
- group_prefix = self.baseline_group+"."+test_name
- # Disable automatic deletion of the phbound* output files
- # on passing test just in case the optional
- # check_baseline_func wants to look at them.
- self.assertMatchesYamlBaseline(
- join(thisDir,prefix+".phbound.txt.out"),
- join(baselineDir,group_prefix+".phbound.txt.baseline"),
- tolerance=_diff_tolerance,
- delete=False,
- exact=_yaml_exact_comparison)
- self.assertMatchesYamlBaseline(
- join(thisDir,prefix+".phbestbound.txt.out"),
- join(baselineDir,group_prefix+".phbestbound.txt.baseline"),
- tolerance=_diff_tolerance,
- delete=False,
- exact=_yaml_exact_comparison)
- if check_baseline_func is not None:
- check_baseline_func(self, class_name, test_name)
- else:
- # Now we can safely delete the multiple plugin output
- # files
- self.safe_delete(join(thisDir,prefix+".ph_history.json.out"))
- self.safe_delete(join(thisDir,prefix+".ph_solution.json.out"))
- self.safe_delete(join(thisDir,prefix+".phbound.txt.out"))
- self.safe_delete(join(thisDir,prefix+".phbestbound.txt.out"))
-
-
- new_options_string = options_string+(" --user-defined-extension"
- "=pyomo.pysp.plugins.phboundextension")
- self._baseline_test(options_string=new_options_string,
- validation_options_string=validation_options_string,
- cleanup_func=_cleanup_func,
- rename_func=_rename_func,
- check_baseline_func=_check_baseline_func,
- has_solution_baseline=has_solution_baseline,
- has_stdout_baseline=has_stdout_baseline)
-
- @unittest.nottest
- def _convexhullboundextension_baseline_test(self,
- options_string="",
- validation_options_string="",
- cleanup_func=None,
- rename_func=None,
- check_baseline_func=None,
- has_solution_baseline=True,
- has_stdout_baseline=True):
-
- def _cleanup_func(self, class_name, test_name):
- if cleanup_func is not None:
- cleanup_func(self, class_name, test_name)
- prefix = class_name+"."+test_name
- self.safe_delete(join(thisDir,"phbound.txt"))
- self.safe_delete(join(thisDir,"phbestbound.txt"))
- self.safe_delete(join(thisDir,prefix+".phbound.txt.out"))
- self.safe_delete(join(thisDir,prefix+".phbestbound.txt.out"))
- def _rename_func(self, class_name, test_name):
- if rename_func is not None:
- rename_func(self, class_name, test_name)
- prefix = class_name+"."+test_name
- os.rename(join(thisDir,"phbound.txt"),
- join(thisDir,prefix+".phbound.txt.out"))
- os.rename(join(thisDir,"phbestbound.txt"),
- join(thisDir,prefix+".phbestbound.txt.out"))
- def _check_baseline_func(self, class_name, test_name):
- prefix = class_name+"."+test_name
- group_prefix = self.baseline_group+"."+test_name
- # Disable automatic deletion of the phbound* output files
- # on passing test just in case the optional
- # check_baseline_func wants to look at them.
- self.assertMatchesYamlBaseline(
- join(thisDir,prefix+".phbound.txt.out"),
- join(baselineDir,group_prefix+".phbound.txt.baseline"),
- tolerance=_diff_tolerance,
- delete=False,
- exact=_yaml_exact_comparison)
- self.assertFileEqualsBaseline(
- join(thisDir,prefix+".phbestbound.txt.out"),
- join(baselineDir,group_prefix+".phbestbound.txt.baseline"),
- tolerance=_diff_tolerance,
- delete=False)
- if check_baseline_func is not None:
- check_baseline_func(self, class_name, test_name)
- else:
- # Now we can safely delete the multiple plugin output files
- self.safe_delete(join(thisDir,prefix+".ph_history.json.out"))
- self.safe_delete(join(thisDir,prefix+".ph_solution.json.out"))
- self.safe_delete(join(thisDir,prefix+".phbound.txt.out"))
- self.safe_delete(join(thisDir,prefix+".phbestbound.txt.out"))
-
- new_options_string = \
- options_string+(" --user-defined-extension"
- "=pyomo.pysp.plugins.convexhullboundextension "
- "--max-iteration=50")
- self._baseline_test(options_string=new_options_string,
- validation_options_string=validation_options_string,
- cleanup_func=_cleanup_func,
- rename_func=_rename_func,
- check_baseline_func=_check_baseline_func,
- has_solution_baseline=has_solution_baseline,
- has_stdout_baseline=has_stdout_baseline)
-
- @unittest.nottest
- def _withef_baseline_test(self,
- options_string="",
- validation_options_string="",
- cleanup_func=None,
- rename_func=None,
- check_baseline_func=None,
- has_solution_baseline=True,
- has_stdout_baseline=True):
-
- def _cleanup_func(self, class_name, test_name):
- if cleanup_func is not None:
- cleanup_func(self, class_name, test_name)
- prefix = class_name+"."+test_name
- self.safe_delete(join(thisDir,"postphef_solution.json"))
- self.safe_delete(join(thisDir,prefix+".postphef_solution.json.out"))
- def _rename_func(self, class_name, test_name):
- if rename_func is not None:
- rename_func(self, class_name, test_name)
- prefix = class_name+"."+test_name
- os.rename(join(thisDir,"postphef_solution.json"),
- join(thisDir,prefix+".postphef_solution.json.out"))
- def _check_baseline_func(self, class_name, test_name):
- prefix = class_name+"."+test_name
- group_prefix = self.baseline_group+"."+test_name
- # Disable automatic deletion of the phbound* output files
- # on passing test just in case the optional
- # check_baseline_func wants to look at them.
- self.assertMatchesJsonBaseline(
- join(thisDir,prefix+".postphef_solution.json.out"),
- join(baselineDir,group_prefix+".postphef_solution.json.baseline"+_baseline_suffix),
- tolerance=_diff_tolerance,
- delete=False,
- exact=_json_exact_comparison)
- if check_baseline_func is not None:
- check_baseline_func(self, class_name, test_name)
- else:
- # Now we can safely delete the multiple plugin output files
- self.safe_delete(join(thisDir,prefix+".ph_history.json.out"))
- self.safe_delete(join(thisDir,prefix+".ph_solution.json.out"))
- self.safe_delete(join(thisDir,prefix+".postphef_solution.json.out"))
-
- new_options_string = options_string+(" --solve-ef"
- " --ef-solver="+self.solver_name+
- " --ef-solver-io="+self.solver_io)
- self._baseline_test(options_string=new_options_string,
- validation_options_string=validation_options_string,
- cleanup_func=_cleanup_func,
- rename_func=_rename_func,
- check_baseline_func=_check_baseline_func,
- has_solution_baseline=has_solution_baseline,
- has_stdout_baseline=has_stdout_baseline)
-
- @unittest.nottest
- def _withef_compare_baseline_test(self,
- compare_testname,
- check_baseline_func=None,
- **kwds):
-
- def _check_baseline_func(self, class_name, test_name):
- prefix = class_name+"."+test_name
- # The phboundextension plugin should not affect
- # the convergence of ph, so we also check
- # ph_history/ph_solution output against the test1 baseline
- group_prefix = self.baseline_group+"."+compare_testname
- self.assertMatchesJsonBaseline(
- join(thisDir,prefix+".ph_history.json.out"),
- join(baselineDir,group_prefix+".ph_history.json.baseline"+_baseline_suffix),
- tolerance=_diff_tolerance,
- exact=_json_exact_comparison)
- self.assertMatchesJsonBaseline(
- join(thisDir,prefix+".ph_solution.json.out"),
- join(baselineDir,group_prefix+".ph_solution.json.baseline"+_baseline_suffix),
- tolerance=_diff_tolerance,
- exact=_json_exact_comparison)
-
- if check_baseline_func is not None:
- check_baseline_func(self, class_name, test_name)
- else:
- # Now we can safely delete the multiple plugin output files
- self.safe_delete(join(thisDir,prefix+".ph_history.json.out"))
- self.safe_delete(join(thisDir,prefix+".ph_solution.json.out"))
- self.safe_delete(join(thisDir,prefix+".postphef_solution.json.out"))
-
- self._withef_baseline_test(check_baseline_func=_check_baseline_func,
- **kwds)
-
-class FarmerTester(PHTester):
-
- def test1(self):
- self._baseline_test("--verbose")
-
- def test1_withef(self):
- self._withef_compare_baseline_test("test1")
-
- def test2(self):
- self._baseline_test(options_string=("--enable-termdiff-convergence "
- "--termdiff-threshold=0.01"))
-
- def test3(self):
- self._baseline_test(options_string="--linearize-nonbinary-penalty-terms=10",
- validation_options_string="--disable-proximal-term-check")
-
- def test4(self):
- self._baseline_test(options_string="--retain-quadratic-binary-terms")
-
- def test5(self):
- self._baseline_test(options_string="--preprocess-fixed-variables")
-
- # Test the wwphextension plugin (it's best if this test involves
- # variable fixing)
- @unittest.skipIf(not yaml_available, "PyYAML module is not available")
- def test6(self):
- self._baseline_test(options_string=("--enable-ww-extensions "
- "--ww-extension-cfgfile="
- +join(farmer_config_dir,'wwph.cfg')+" "
- "--ww-extension-suffixfile="
- +join(farmer_config_dir,'wwph.suffixes')))
-
- # Test the wwphextension plugin (it's best if this test involves
- # variable fixing) and solve ef
- @unittest.skipIf(not yaml_available, "PyYAML module is not available")
- def test6_withef(self):
- self._withef_compare_baseline_test("test6",
- options_string=("--enable-ww-extensions "
- "--ww-extension-cfgfile="
- +join(farmer_config_dir,'wwph.cfg')+" "
- "--ww-extension-suffixfile="
- +join(farmer_config_dir,'wwph.suffixes')))
-
- # Test the phboundextension plugin and that it does not effect ph
- # convergence
- @unittest.skipIf(not yaml_available, "PyYAML module is not available")
- def test7(self):
- def check_baseline_func(self, class_name, test_name):
- prefix = class_name+"."+test_name
- # The phboundextension plugin should not affect
- # the convergence of ph, so we also check
- # ph_history/ph_solution output against the test1 baseline
- group_prefix = self.baseline_group+".test1"
- self.assertMatchesJsonBaseline(
- join(thisDir,prefix+".ph_history.json.out"),
- join(baselineDir,group_prefix+".ph_history.json.baseline"+_baseline_suffix),
- tolerance=_diff_tolerance,
- exact=_json_exact_comparison)
- self.assertMatchesJsonBaseline(
- join(thisDir,prefix+".ph_solution.json.out"),
- join(baselineDir,group_prefix+".ph_solution.json.baseline"+_baseline_suffix),
- tolerance=_diff_tolerance,
- exact=_json_exact_comparison)
- # The phbound* output files are not tested
- # against any other baselines. If we made it
- # to this point, they can (and should) be cleaned up
- self.safe_delete(join(thisDir,prefix+".phbound.txt.out"))
- self.safe_delete(join(thisDir,prefix+".phbestbound.txt.out"))
- self._phboundextension_baseline_test(check_baseline_func=check_baseline_func)
-
- # Test the convexhullboundextension plugin (which does affect ph
- # convergence)
- @unittest.skipIf(not yaml_available, "PyYAML module is not available")
- def test8(self):
- self._convexhullboundextension_baseline_test()
-
- # This is test7 (phboundextension) combined with test6
- # (wwphextension), which involves variable fixing. These plugins
- # should not interact with each other so we additionally test
- # their output files against test6
- @unittest.skipIf(not yaml_available, "PyYAML module is not available")
- def test9(self):
- def check_baseline_func(self, class_name, test_name):
- prefix = class_name+"."+test_name
- # The phboundextension plugin should not affect
- # the convergence of ph with the wwphextension plugin
- # enabled, so we also check ph_history/ph_solution output
- # against the test6 baseline
- group_prefix = self.baseline_group+".test6"
- self.assertMatchesJsonBaseline(
- join(thisDir,prefix+".ph_history.json.out"),
- join(baselineDir,group_prefix+".ph_history.json.baseline"+_baseline_suffix),
- tolerance=_diff_tolerance,
- exact=_json_exact_comparison)
- self.assertMatchesJsonBaseline(
- join(thisDir,prefix+".ph_solution.json.out"),
- join(baselineDir,group_prefix+".ph_solution.json.baseline"+_baseline_suffix),
- tolerance=_diff_tolerance,
- exact=_json_exact_comparison)
- # The phbound* output files are not tested against any
- # other baselines. If we made it to this point, they can
- # (and should) be cleaned up
- self.safe_delete(join(thisDir,prefix+".phbound.txt.out"))
- self.safe_delete(join(thisDir,prefix+".phbestbound.txt.out"))
- self._phboundextension_baseline_test(
- options_string=("--enable-ww-extensions "
- "--ww-extension-cfgfile="
- +join(farmer_config_dir,'wwph.cfg')+" "
- "--ww-extension-suffixfile="
- +join(farmer_config_dir,'wwph.suffixes')),
- check_baseline_func=check_baseline_func)
-
- # This is test8 (convexhullboundextension) combined with test6
- # (wwphextension), which involves variable fixing. These plugins
- # likely interact with each other. Not sure I can perform any
- # additional tests here.
- @unittest.skipIf(not yaml_available, "PyYAML module is not available")
- def test10(self):
- self._convexhullboundextension_baseline_test(
- options_string=("--enable-ww-extensions "
- "--ww-extension-cfgfile="
- +join(farmer_config_dir,'wwph.cfg')+" "
- "--ww-extension-suffixfile="
- +join(farmer_config_dir,'wwph.suffixes')))
-
- # This is test9 with the --preprocess-fixed-variables flag
- @unittest.skipIf(not yaml_available, "PyYAML module is not available")
- def test11(self):
- def cleanup_func(self, class_name, test_name):
- prefix = class_name+"."+test_name
- self.safe_delete(
- join(thisDir,prefix+".ph_history.json.stale_filtered.baseline.out"))
- self.safe_delete(
- join(thisDir,prefix+".ph_solution.json.stale_filtered.baseline.out"))
- def check_baseline_func(self, class_name, test_name):
- prefix = class_name+"."+test_name
- # Test that baselines also match those of test9 without
- # the stale flags (which are flipped for fixed variables)
- group_prefix = self.baseline_group+".test9"
- f = open_possibly_compressed_file(join(baselineDir,
- group_prefix+".ph_history.json.baseline"+_baseline_suffix))
- baseline_ph_history = json.load(f)
- f.close()
- baseline_ph_history = filter_stale_keys(baseline_ph_history)
- with open(join(thisDir,
- prefix+\
- ".ph_history.json.stale_filtered.baseline.out"),'w') as f:
- json.dump(baseline_ph_history,f,indent=2)
- f = open_possibly_compressed_file(join(baselineDir,
- group_prefix+".ph_solution.json.baseline"+_baseline_suffix))
- baseline_ph_solution = json.load(f)
- f.close()
- baseline_ph_solution = filter_stale_keys(baseline_ph_solution)
- with open(join(thisDir,
- prefix+\
- ".ph_solution.json.stale_filtered.baseline.out"),'w') as f:
- json.dump(baseline_ph_solution,f,indent=2)
- self.assertMatchesJsonBaseline(
- join(thisDir,prefix+".ph_history.json.out"),
- join(thisDir,prefix+".ph_history.json.stale_filtered.baseline.out"),
- tolerance=_diff_tolerance,
- exact=False)
- self.assertMatchesJsonBaseline(
- join(thisDir,prefix+".ph_solution.json.out"),
- join(thisDir,prefix+".ph_solution.json.stale_filtered.baseline.out"),
- tolerance=_diff_tolerance,
- exact=False)
- self.safe_delete(join(thisDir,
- prefix+\
- ".ph_history.json.stale_filtered.baseline.out"))
- self.safe_delete(join(thisDir,
- prefix+\
- ".ph_solution.json.stale_filtered.baseline.out"))
- self.assertMatchesYamlBaseline(
- join(thisDir,prefix+".phbound.txt.out"),
- join(baselineDir,group_prefix+".phbound.txt.baseline"),
- tolerance=_diff_tolerance,
- exact=_yaml_exact_comparison)
- self.assertFileEqualsBaseline(
- join(thisDir,prefix+".phbestbound.txt.out"),
- join(baselineDir,group_prefix+".phbestbound.txt.baseline"),
- tolerance=_diff_tolerance)
- self._phboundextension_baseline_test(
- options_string=("--enable-ww-extensions "
- "--ww-extension-cfgfile="
- +join(farmer_config_dir,'wwph.cfg')+" "
- "--ww-extension-suffixfile="
- +join(farmer_config_dir,'wwph.suffixes')+" "
- "--preprocess-fixed-variables "),
- cleanup_func=cleanup_func,
- check_baseline_func=check_baseline_func)
-
- # This is test10 with the --preprocess-fixed-variables flag
- @unittest.skipIf(not yaml_available, "PyYAML module is not available")
- def test12(self):
- def cleanup_func(self, class_name, test_name):
- prefix = class_name+"."+test_name
- self.safe_delete(join(thisDir,
- prefix+\
- ".ph_history.json.stale_filtered.baseline.out"))
- self.safe_delete(join(thisDir,
- prefix+\
- ".ph_solution.json.stale_filtered.baseline.out"))
- def check_baseline_func(self, class_name, test_name):
- prefix = class_name+"."+test_name
- # Test that baselines also match those of test10 without
- # the stale flags (which are flipped for fixed variables)
- group_prefix = self.baseline_group+".test10"
- f = open_possibly_compressed_file(join(baselineDir,
- group_prefix+".ph_history.json.baseline"+_baseline_suffix))
- baseline_ph_history = json.load(f)
- f.close()
- baseline_ph_history = filter_stale_keys(baseline_ph_history)
- with open(join(thisDir,
- prefix+\
- ".ph_history.json.stale_filtered.baseline.out"),'w') as f:
- json.dump(baseline_ph_history,f,indent=2)
- f = open_possibly_compressed_file(join(baselineDir,
- group_prefix+".ph_solution.json.baseline"+_baseline_suffix))
- baseline_ph_solution = json.load(f)
- f.close()
- baseline_ph_solution = filter_stale_keys(baseline_ph_solution)
- with open(join(thisDir,
- prefix+\
- ".ph_solution.json.stale_filtered.baseline.out"),'w') as f:
- json.dump(baseline_ph_solution,f,indent=2)
- self.assertMatchesJsonBaseline(
- join(thisDir,prefix+".ph_history.json.out"),
- join(thisDir,prefix+".ph_history.json.stale_filtered.baseline.out"),
- tolerance=_diff_tolerance,
- exact=False)
- self.assertMatchesJsonBaseline(
- join(thisDir,prefix+".ph_solution.json.out"),
- join(thisDir,prefix+".ph_solution.json.stale_filtered.baseline.out"),
- tolerance=_diff_tolerance,
- exact=False)
- self.safe_delete(join(thisDir,
- prefix+\
- ".ph_history.json.stale_filtered.baseline.out"))
- self.safe_delete(join(thisDir,
- prefix+\
- ".ph_solution.json.stale_filtered.baseline.out"))
- self.assertMatchesYamlBaseline(
- join(thisDir,prefix+".phbound.txt.out"),
- join(baselineDir,group_prefix+".phbound.txt.baseline"),
- tolerance=_diff_tolerance,
- exact=_yaml_exact_comparison)
- self.assertFileEqualsBaseline(
- join(thisDir,prefix+".phbestbound.txt.out"),
- join(baselineDir,group_prefix+".phbestbound.txt.baseline"),
- tolerance=_diff_tolerance)
-
- self._convexhullboundextension_baseline_test(
- options_string=("--enable-ww-extensions "
- "--ww-extension-cfgfile="
- +join(farmer_config_dir,'wwph.cfg')+" "
- "--ww-extension-suffixfile="
- +join(farmer_config_dir,'wwph.suffixes')+" "
- "--preprocess-fixed-variables "),
- cleanup_func=cleanup_func,
- check_baseline_func=check_baseline_func)
-
- # This is test6 with the --preprocess-fixed-variables flag
- @unittest.skipIf(not yaml_available, "PyYAML module is not available")
- def test13(self):
- def cleanup_func(self, class_name, test_name):
- prefix = class_name+"."+test_name
- self.safe_delete(join(thisDir,
- prefix+\
- ".ph_history.json.stale_filtered.baseline.out"))
- self.safe_delete(join(thisDir,
- prefix+\
- ".ph_solution.json.stale_filtered.baseline.out"))
- def check_baseline_func(self, class_name, test_name):
- prefix = class_name+"."+test_name
- # Test that baselines also match those of test6 without
- # the stale flags (which are flipped for fixed variables)
- group_prefix = self.baseline_group+".test6"
- f = open_possibly_compressed_file(join(baselineDir,
- group_prefix+".ph_history.json.baseline"+_baseline_suffix))
- baseline_ph_history = json.load(f)
- f.close()
- baseline_ph_history = filter_stale_keys(baseline_ph_history)
- with open(join(thisDir,
- prefix+\
- ".ph_history.json.stale_filtered.baseline.out"),'w') as f:
- json.dump(baseline_ph_history,f,indent=2)
- f = open_possibly_compressed_file(join(baselineDir,
- group_prefix+\
- ".ph_solution.json.baseline"+_baseline_suffix))
- baseline_ph_solution = json.load(f)
- f.close()
- baseline_ph_solution = filter_stale_keys(baseline_ph_solution)
- with open(join(thisDir,
- prefix+\
- ".ph_solution.json.stale_filtered.baseline.out"),'w') as f:
- json.dump(baseline_ph_solution,f,indent=2)
- self.assertMatchesJsonBaseline(
- join(thisDir,prefix+".ph_history.json.out"),
- join(thisDir,prefix+".ph_history.json.stale_filtered.baseline.out"),
- tolerance=_diff_tolerance,
- exact=False)
- self.assertMatchesJsonBaseline(
- join(thisDir,prefix+".ph_solution.json.out"),
- join(thisDir,prefix+".ph_solution.json.stale_filtered.baseline.out"),
- tolerance=_diff_tolerance,
- exact=False)
- self.safe_delete(join(thisDir,
- prefix+\
- ".ph_history.json.stale_filtered.baseline.out"))
- self.safe_delete(join(thisDir,
- prefix+\
- ".ph_solution.json.stale_filtered.baseline.out"))
-
- self._baseline_test(
- options_string=("--enable-ww-extensions "
- "--ww-extension-cfgfile="
- +join(farmer_config_dir,'wwph.cfg')+" "
- "--ww-extension-suffixfile="
- +join(farmer_config_dir,'wwph.suffixes')+" "
- "--preprocess-fixed-variables "),
- cleanup_func=cleanup_func,
- check_baseline_func=check_baseline_func)
-
- def test14(self):
- self._baseline_test(
- options_string=("--max-iterations=10 "
- "--aggregate-cfgfile="
- +join(farmer_config_dir,'aggregategetter.py')+" "
- "--rho-cfgfile="
- +join(farmer_config_dir,'rhosetter.py')+" "
- "--bounds-cfgfile="
- +join(farmer_config_dir,'boundsetter.py')))
-
- def test14_withef(self):
- self._withef_compare_baseline_test(
- "test14",
- options_string=("--max-iterations=10 "
- "--aggregate-cfgfile="
- +join(farmer_config_dir,'aggregategetter.py')+" "
- "--rho-cfgfile="
- +join(farmer_config_dir,'rhosetter.py')+" "
- "--bounds-cfgfile="
- +join(farmer_config_dir,'boundsetter.py')))
-
-#
-# create the actual testing classes
-#
-@unittest.category('expensive')
-class TestPHFarmerSerial(FarmerTester,unittest.TestCase):
-
- @classmethod
- def setUpClass(cls):
- cls.baseline_group = "TestPHFarmer"
- cls.num_scenarios = 3
- cls.model_directory = farmer_model_dir
- cls.instance_directory = farmer_data_dir
- cls.solver_manager = 'serial'
- cls.solver_name = 'cplex'
- cls.solver_io = 'nl'
- cls.diff_filter = staticmethod(filter_time_and_data_dirs)
- PHTester._setUpClass(cls)
-
-@unittest.category('parallel')
-@unittest.skipUnless(using_pyro3 or using_pyro4, "Pyro or Pyro4 is not available")
-class TestPHFarmerPHPyro(FarmerTester,unittest.TestCase):
-
- @classmethod
- def setUpClass(cls):
- cls.baseline_group = "TestPHFarmer"
- cls.num_scenarios = 3
- cls.model_directory = farmer_model_dir
- cls.instance_directory = farmer_data_dir
- cls.solver_manager = 'phpyro'
- cls.solver_name = 'cplex'
- cls.solver_io = 'lp'
- cls.diff_filter = staticmethod(filter_pyro)
- PHTester._setUpClass(cls)
-
-@unittest.category('parallel')
-@unittest.skipUnless(using_pyro3 or using_pyro4, "Pyro or Pyro4 is not available")
-class TestPHFarmerPyro(FarmerTester,unittest.TestCase):
-
- @classmethod
- def setUpClass(cls):
- cls.baseline_group = "TestPHFarmer"
- cls.num_scenarios = 3
- cls.model_directory = farmer_model_dir
- cls.instance_directory = farmer_data_dir
- cls.solver_manager = 'pyro'
- cls.solver_name = 'cplex'
- cls.solver_io = 'nl'
- cls.diff_filter = staticmethod(filter_pyro)
- PHTester._setUpClass(cls)
-
-@unittest.category('expensive')
-class TestPHFarmerTrivialBundlesSerial(FarmerTester,unittest.TestCase):
-
- @classmethod
- def setUpClass(cls):
- cls.baseline_group = "TestPHFarmer"
- cls.num_scenarios = 3
- cls.model_directory = farmer_model_dir
- cls.instance_directory = farmer_trivialbundlesdata_dir
- cls.solver_manager = 'serial'
- cls.solver_name = 'cplex'
- cls.solver_io = 'nl'
- cls.diff_filter = staticmethod(filter_time_and_data_dirs)
- PHTester._setUpClass(cls)
-
-@unittest.category('parallel')
-@unittest.skipUnless(using_pyro3 or using_pyro4, "Pyro or Pyro4 is not available")
-class TestPHFarmerTrivialBundlesPHPyro(FarmerTester,unittest.TestCase):
-
- @classmethod
- def setUpClass(cls):
- cls.baseline_group = "TestPHFarmer"
- cls.num_scenarios = 3
- cls.model_directory = farmer_model_dir
- cls.instance_directory = farmer_trivialbundlesdata_dir
- cls.solver_manager = 'phpyro'
- cls.solver_name = 'cplex'
- cls.solver_io = 'lp'
- cls.diff_filter = staticmethod(filter_pyro)
- PHTester._setUpClass(cls)
-
-@unittest.category('parallel')
-@unittest.skipUnless(using_pyro3 or using_pyro4, "Pyro or Pyro4 is not available")
-class TestPHFarmerTrivialBundlesPyro(FarmerTester,unittest.TestCase):
-
- @classmethod
- def setUpClass(cls):
- cls.baseline_group = "TestPHFarmer"
- cls.num_scenarios = 3
- cls.model_directory = farmer_model_dir
- cls.instance_directory = farmer_trivialbundlesdata_dir
- cls.solver_manager = 'pyro'
- cls.solver_name = 'cplex'
- cls.solver_io = 'nl'
- cls.diff_filter = staticmethod(filter_pyro)
- PHTester._setUpClass(cls)
-
-"""
-@unittest.category('expensive')
-class TestPHFarmerSerialPersistent(FarmerTester,unittest.TestCase):
-
- @classmethod
- def setUpClass(cls):
- cls.baseline_group = "TestPHFarmer"
- cls.num_scenarios = 3
- cls.model_directory = join(farmer_concrete_model_dir,'ReferenceModel.py')
- cls.instance_directory = join(farmer_data_dir,'ScenarioStructure.dat')
- cls.solver_manager = 'serial'
- cls.solver_name = "_cplex_persistent"
- cls.solver_io = 'python'
- cls.diff_filter = staticmethod(filter_time_and_data_dirs)
- PHTester._setUpClass(cls)
-"""
-
-@unittest.category('parallel')
-@unittest.skipUnless(using_pyro3 or using_pyro4, "Pyro or Pyro4 is not available")
-class TestPHFarmerPHPyroDirect(FarmerTester,unittest.TestCase):
-
- @classmethod
- def setUpClass(cls):
- cls.baseline_group = "TestPHFarmer"
- cls.num_scenarios = 3
- cls.model_directory = join(farmer_concrete_model_dir,'ReferenceModel.py')
- cls.instance_directory = join(farmer_data_dir,'ScenarioStructure.dat')
- cls.solver_manager = 'phpyro'
- cls.solver_name = "cplex"
- cls.solver_io = 'python'
- cls.diff_filter = staticmethod(filter_pyro)
- PHTester._setUpClass(cls)
-
-"""
-@unittest.category('expensive')
-class TestPHFarmerTrivialBundlesSerialPersistent(FarmerTester,unittest.TestCase):
-
- @classmethod
- def setUpClass(cls):
- cls.baseline_group = "TestPHFarmer"
- cls.num_scenarios = 3
- cls.model_directory = join(farmer_concrete_model_dir,'ReferenceModel.py')
- cls.instance_directory = join(farmer_trivialbundlesdata_dir,'ScenarioStructure.dat')
- cls.solver_manager = 'serial'
- cls.solver_name = "_cplex_persistent"
- cls.solver_io = 'python'
- cls.diff_filter = staticmethod(filter_time_and_data_dirs)
- PHTester._setUpClass(cls)
-
-@unittest.category('parallel')
-@unittest.skipUnless(using_pyro3 or using_pyro4, "Pyro or Pyro4 is not available")
-class TestPHFarmerTrivialBundlesPHPyroPersistent(FarmerTester,unittest.TestCase):
-
- @classmethod
- def setUpClass(cls):
- cls.baseline_group = "TestPHFarmer"
- cls.num_scenarios = 3
- cls.model_directory = join(farmer_concrete_model_dir,'ReferenceModel.py')
- cls.instance_directory = join(farmer_trivialbundlesdata_dir,'ScenarioStructure.dat')
- cls.solver_manager = 'phpyro'
- cls.solver_name = "_cplex_persistent"
- cls.solver_io = 'python'
- cls.diff_filter = staticmethod(filter_pyro)
- PHTester._setUpClass(cls)
-"""
-
-class NetworkFlowTester(PHTester):
-
- @staticmethod
- def _setUpClass(cls):
- cls.baseline_group = "TestPHNetworkFlow1ef3"
- cls.num_scenarios = 3
- cls.model_directory = nf_model_dir
- cls.instance_directory = nf_data_dir
- cls.solver_name = 'cplex'
- cls.solver_io = 'nl'
- PHTester._setUpClass(cls)
-
- @unittest.skipIf(not yaml_available, "PyYAML module is not available")
- def test1(self):
- self._baseline_test(
- options_string=("--max-iterations=0 --verbose "
- "--aggregate-cfgfile="
- +join(nf_config_dir,'aggregategetter.py')+" "
- "--rho-cfgfile="
- +join(nf_config_dir,'rhosettermixed.py')+" "
- "--bounds-cfgfile="
- +join(nf_config_dir,'xboundsetter.py')+" "
- "--enable-ww-extensions "
- "--ww-extension-cfgfile="
- +join(nf_config_dir,'wwph-immediatefixing.cfg')+" "
- "--ww-extension-suffixfile="
- +join(nf_config_dir,'wwph.suffixes')))
-
- def test2(self):
- self._baseline_test(
- options_string=("--max-iterations=0 "
- "--aggregate-cfgfile="
- +join(nf_config_dir,'aggregategetter.py')+" "
- "--rho-cfgfile="
- +join(nf_config_dir,'rhosetter0.5.py')+" "
- "--bounds-cfgfile="
- +join(nf_config_dir,'xboundsetter.py')+" "
- "--enable-ww-extensions "
- "--ww-extension-cfgfile="
- +join(nf_config_dir,'wwph-aggressivefixing.cfg')))
-
- def test3(self):
- self._baseline_test(
- options_string=("--max-iterations=0 "
- "--aggregate-cfgfile="
- +join(nf_config_dir,'aggregategetter.py')+" "
- "--rho-cfgfile="
- +join(nf_config_dir,'rhosetter1.0.py')+" "
- "--bounds-cfgfile="
- +join(nf_config_dir,'xboundsetter.py')+" "
- "--enable-ww-extensions "
- "--ww-extension-cfgfile="
- +join(nf_config_dir,'wwph-mipgaponly.cfg')))
-
- def test4(self):
- self._baseline_test(
- options_string=("--max-iterations=1 --verbose "
- "--aggregate-cfgfile="
- +join(nf_config_dir,'aggregategetter.py')+" "
- "--rho-cfgfile="
- +join(nf_config_dir,'rhosetter1.0.py')+" "
- "--bounds-cfgfile="
- +join(nf_config_dir,'xboundsetter.py')+" "
- "--linearize-nonbinary-penalty-terms=20"),
- validation_options_string="--proximal-term-bounds-above",
- has_solution_baseline=False,
- has_stdout_baseline=False)
-
-
-@unittest.category('expensive')
-class TestPHNetworkFlow1ef3Serial(NetworkFlowTester,unittest.TestCase):
- @classmethod
- def setUpClass(cls):
- cls.solver_manager = 'serial'
- cls.diff_filter = staticmethod(filter_time_and_data_dirs)
- NetworkFlowTester._setUpClass(cls)
-
-@unittest.category('parallel', 'fragile')
-@unittest.skipUnless(using_pyro3 or using_pyro4, "Pyro or Pyro4 is not available")
-class TestPHNetworkFlow1ef3Pyro(NetworkFlowTester,unittest.TestCase):
- @classmethod
- def setUpClass(cls):
- cls.solver_manager = 'pyro'
- cls.diff_filter = staticmethod(filter_pyro)
- NetworkFlowTester._setUpClass(cls)
-
-@unittest.category('parallel', 'fragile')
-@unittest.skipUnless(using_pyro3 or using_pyro4, "Pyro or Pyro4 is not available")
-class TestPHNetworkFlow1ef3PHPyro(NetworkFlowTester,unittest.TestCase):
- @classmethod
- def setUpClass(cls):
- cls.solver_manager = 'phpyro'
- cls.diff_filter = staticmethod(filter_pyro)
- NetworkFlowTester._setUpClass(cls)
-
-"""
-class SizesTester(PHTester):
-
- @staticmethod
- def _setUpClass(cls):
- cls.baseline_group = "TestPHSizes3"
- cls.num_scenarios = 3
- cls.model_directory = sizes_model_dir
- cls.instance_directory = sizes_data_dir
- cls.solver_name = 'cplex'
- cls.solver_io = 'nl'
- PHTester._setUpClass(cls)
-
- @unittest.skipIf(not yaml_available, "PyYAML module is not available")
- def test1(self):
- self._baseline_test(
- options_string=("--max-iterations=0 "
- "--rho-cfgfile="
- +join(sizes_config_dir,'rhosetter.py')+" "
- "--enable-ww-extensions "
- "--ww-extension-cfgfile="
- +join(sizes_config_dir,'wwph.cfg')+" "
- "--ww-extension-suffixfile="
- +join(sizes_config_dir,'wwph.suffixes')))
-
-
-@unittest.category('expensive')
-class TestPHSizes3Serial(SizesTester,unittest.TestCase):
- @classmethod
- def setUpClass(cls):
- cls.solver_manager = 'serial'
- cls.diff_filter = staticmethod(filter_time_and_data_dirs)
- SizesTester._setUpClass(cls)
-
-@unittest.category('parallel')
-@unittest.skipUnless(using_pyro3 or using_pyro4, "Pyro or Pyro4 is not available")
-class TestPHSizes3Pyro(SizesTester,unittest.TestCase):
- @classmethod
- def setUpClass(cls):
- cls.solver_manager = 'pyro'
- cls.diff_filter = staticmethod(filter_pyro)
- SizesTester._setUpClass(cls)
-
-@unittest.category('parallel')
-@unittest.skipUnless(using_pyro3 or using_pyro4, "Pyro or Pyro4 is not available")
-class TestPHSizes3PHPyro(SizesTester,unittest.TestCase):
- @classmethod
- def setUpClass(cls):
- cls.solver_manager = 'phpyro'
- cls.diff_filter = staticmethod(filter_pyro)
- SizesTester._setUpClass(cls)
-
-
-class ForestryTester(PHTester):
-
- @staticmethod
- def _setUpClass(cls):
- cls.baseline_group = "TestPHForestryUnequalProbs"
- cls.num_scenarios = 18
- cls.model_directory = forestry_model_dir
- cls.instance_directory = forestry_data_dir
- cls.solver_name = 'cplex'
- cls.solver_io = 'nl'
- PHTester._setUpClass(cls)
-
- @unittest.skipIf(not yaml_available, "PyYAML module is not available")
- def test1(self):
- self._baseline_test(
- options_string=("--max-iterations=0 "
- "--rho-cfgfile="
- +join(forestry_config_dir,'rhosetter.py')+" "
- "--bounds-cfgfile="
- +join(forestry_config_dir,'boundsetter.py')+" "
- "--enable-ww-extensions "
- "--ww-extension-cfgfile="
- +join(forestry_config_dir,'wwph.cfg')+" "
- "--ww-extension-suffixfile="
- +join(forestry_config_dir,'wwph-nb.suffixes')))
-
-
-@unittest.category('expensive')
-class TestPHForestryUnequalProbsSerial(ForestryTester,unittest.TestCase):
- @classmethod
- def setUpClass(cls):
- cls.solver_manager = 'serial'
- cls.diff_filter = staticmethod(filter_time_and_data_dirs)
- ForestryTester._setUpClass(cls)
-
-@unittest.category('parallel')
-@unittest.skipUnless(using_pyro3 or using_pyro4, "Pyro or Pyro4 is not available")
-class TestPHForestryUnequalProbsPyro(ForestryTester,unittest.TestCase):
- @classmethod
- def setUpClass(cls):
- cls.solver_manager = 'pyro'
- cls.diff_filter = staticmethod(filter_pyro)
- ForestryTester._setUpClass(cls)
-
-@unittest.category('parallel')
-@unittest.skipUnless(using_pyro3 or using_pyro4, "Pyro or Pyro4 is not available")
-class TestPHForestryUnequalProbsPHPyro(ForestryTester,unittest.TestCase):
- @classmethod
- def setUpClass(cls):
- cls.solver_manager = 'phpyro'
- cls.diff_filter = staticmethod(filter_pyro)
- ForestryTester._setUpClass(cls)
-"""
-
-if __name__ == "__main__":
-
- _disable_stdout_test = False
-
- import sys
- if '--include' in sys.argv:
- _test_name_wildcard_include = []
- while '--include' in sys.argv:
- idx = sys.argv.index('--include')
- _test_name_wildcard_include.append(sys.argv[idx+1])
- sys.argv.remove('--include')
- sys.argv.remove(_test_name_wildcard_include[-1])
- if '--exclude' in sys.argv:
- _test_name_wildcard_exclude = []
- while '--exclude' in sys.argv:
- idx = sys.argv.index('--exclude')
- _test_name_wildcard_exclude.append(sys.argv[idx+1])
- sys.argv.remove('--exclude')
- sys.argv.remove(_test_name_wildcard_exclude[-1])
- if '--disable-stdout-test' in sys.argv:
- sys.argv.remove('--disable-stdout-test')
- _disable_stdout_test = True
-
- print("Including all tests matching wildcard: '%s'" % _test_name_wildcard_include)
- print("Excluding all tests matching wildcard: '%s'" % _test_name_wildcard_exclude)
-
- tester = unittest.main(exit=False)
- if len(tester.result.failures) or \
- len(tester.result.skipped) or \
- len(tester.result.errors):
- with open('UnitTestNoPass.txt','w') as f:
- f.write("Failures:\n")
- for res in tester.result.failures:
- f.write('.'.join(res[0].id().split('.')[-2:])+' ')
- f.write("\n\nSkipped:\n")
- for res in tester.result.skipped:
- f.write('.'.join(res[0].id().split('.')[-2:])+' ')
- f.write("\n\nErrors:\n")
- for res in tester.result.errors:
- f.write('.'.join(res[0].id().split('.')[-2:])+' ')
diff --git a/pyomo/pysp/tests/rapper/__init__.py b/pyomo/pysp/tests/rapper/__init__.py
deleted file mode 100644
index 283f7c2b28f..00000000000
--- a/pyomo/pysp/tests/rapper/__init__.py
+++ /dev/null
@@ -1,12 +0,0 @@
-# ___________________________________________________________________________
-#
-# Pyomo: Python Optimization Modeling Objects
-# Copyright 2017 National Technology and Engineering Solutions of Sandia, LLC
-# Under the terms of Contract DE-NA0003525 with National Technology and
-# Engineering Solutions of Sandia, LLC, the U.S. Government retains certain
-# rights in this software.
-# This software is distributed under the 3-clause BSD License.
-# ___________________________________________________________________________
-#
-# Unit tests for PySP wrapper called rapper
-#
diff --git a/pyomo/pysp/tests/rapper/abstract_rapper_tester.py b/pyomo/pysp/tests/rapper/abstract_rapper_tester.py
deleted file mode 100644
index 8ac05a23e9c..00000000000
--- a/pyomo/pysp/tests/rapper/abstract_rapper_tester.py
+++ /dev/null
@@ -1,80 +0,0 @@
-# ___________________________________________________________________________
-#
-# Pyomo: Python Optimization Modeling Objects
-# Copyright 2017 National Technology and Engineering Solutions of Sandia, LLC
-# Under the terms of Contract DE-NA0003525 with National Technology and
-# Engineering Solutions of Sandia, LLC, the U.S. Government retains certain
-# rights in this software.
-# This software is distributed under the 3-clause BSD License.
-# ___________________________________________________________________________
-
-# Provide some test for rapper
-# Author: David L. Woodruff (Sept 2018)
-
-import pyutilib.th as unittest
-import sys
-import os
-from pyomo.environ import SolverFactory, TerminationCondition
-import pyomo.pysp.util.rapper as rapper
-import pyomo as pyomoroot
-
-__author__ = 'David L. Woodruff '
-__version__ = 1.5
-
-solvername = "ipopt" # could use almost any solver
-solver_available = SolverFactory(solvername).available(False)
-
-class Test_abstract_rapper(unittest.TestCase):
- """ Test the rapper code."""
-
- def setUp(self):
- """ Get ready for tests"""
-
- p = str(pyomoroot.__path__)
- l = p.find("'")
- r = p.find("'", l+1)
- pyomorootpath = p[l+1:r]
- farmpath = pyomorootpath + os.sep + ".." + os.sep + "examples" + \
- os.sep + "pysp" + os.sep + "farmer"
- farmpath = os.path.abspath(farmpath)
-
- # for AbstractModels
- self.farmer_ReferencePath = farmpath + os.sep + \
- "models" + os.sep + "ReferenceModel.py"
- self.farmer_scenarioPath = farmpath + os.sep + \
- "scenariodata"
-
- def tearDown(self):
- # from GH: This step is key, as Python keys off the name of the module, not the location.
- # So, different reference models in different directories won't be detected.
- # If you don't do this, the symptom is a model that doesn't have the attributes
- # that the data file expects.
- if "ReferenceModel" in sys.modules:
- del sys.modules["ReferenceModel"]
-
-
-
- def test_Abstract_Construction(self):
- """ see if we can create the solver object for an AbstractModel"""
-
- stsolver = rapper.StochSolver(self.farmer_ReferencePath,
- fsfct = None,
- tree_model = self.farmer_scenarioPath,
- phopts = None)
-
- @unittest.skipIf(not solver_available,
- "%s solver is not available" % (solvername,))
- def test_Abstract_ef(self):
- """ see if we can create the solver object for an AbstractModel"""
-
- stsolver = rapper.StochSolver(self.farmer_ReferencePath,
- fsfct = None,
- tree_model = self.farmer_scenarioPath,
- phopts = None)
- ef_sol = stsolver.solve_ef(solvername)
- assert(ef_sol.solver.termination_condition \
- == TerminationCondition.optimal)
-
-# see also foo.py
-if __name__ == '__main__':
- unittest.main()
diff --git a/pyomo/pysp/tests/rapper/rapper_tester.py b/pyomo/pysp/tests/rapper/rapper_tester.py
deleted file mode 100644
index 8813ad7358e..00000000000
--- a/pyomo/pysp/tests/rapper/rapper_tester.py
+++ /dev/null
@@ -1,194 +0,0 @@
-# ___________________________________________________________________________
-#
-# Pyomo: Python Optimization Modeling Objects
-# Copyright 2017 National Technology and Engineering Solutions of Sandia, LLC
-# Under the terms of Contract DE-NA0003525 with National Technology and
-# Engineering Solutions of Sandia, LLC, the U.S. Government retains certain
-# rights in this software.
-# This software is distributed under the 3-clause BSD License.
-# ___________________________________________________________________________
-
-# Provide some test for rapper; most are smoke because PySP is tested elsewhere
-# Author: David L. Woodruff (circa March 2017; Sept 2018; Feb 2020)
-
-import pyutilib.th as unittest
-import tempfile
-import sys
-import os
-import shutil
-from pyomo.environ import SolverFactory, TerminationCondition
-import pyomo.pysp.util.rapper as rapper
-from pyomo.pysp.scenariotree.tree_structure_model import CreateAbstractScenarioTreeModel
-import pyomo.pysp.plugins.csvsolutionwriter as csvw
-import pyomo as pyomoroot
-try:
- import networkx
- havenetx = True
-except:
- havenetx = False
-
-__author__ = 'David L. Woodruff '
-__date__ = 'August 14, 2017'
-__version__ = 1.7
-
-solvername = "ipopt" # could use almost any solver
-solver_available = SolverFactory(solvername).available(False)
-
-class Testrapper(unittest.TestCase):
- """ Test the rapper code."""
-
- def setUp(self):
- """ Get ready for tests"""
-
- ######## make a temp dir to which files can be copied #####
- self.tdir = tempfile.mkdtemp() #TemporaryDirectory().name
- sys.path.insert(1,self.tdir)
-
- """ During debugging, local files might get in the way
- of finding the file in the temp dir, so we cd there."""
- self.savecwd = os.getcwd()
- os.chdir(self.tdir)
-
- p = str(pyomoroot.__path__)
- l = p.find("'")
- r = p.find("'", l+1)
- pyomorootpath = p[l+1:r]
- farmpath = pyomorootpath + os.sep + ".." + os.sep + "examples" + \
- os.sep + "pysp" + os.sep + "farmer"
- farmpath = os.path.abspath(farmpath)
-
- self.farmer_concrete_file = farmpath + os.sep + \
- "concrete" + os.sep + "ReferenceModel.py"
-
- shutil.copyfile(self.farmer_concrete_file,
- self.tdir + os.sep + "ReferenceModel.py")
-
- abstract_tree = CreateAbstractScenarioTreeModel()
- shutil.copyfile(farmpath + os.sep +"scenariodata" + os.sep + "ScenarioStructure.dat",
- self.tdir + os.sep + "ScenarioStructure.dat")
- self.farmer_concrete_tree = \
- abstract_tree.create_instance("ScenarioStructure.dat")
- # added networkx example March 2020
- self.farmer_netx_file = farmpath + os.sep + \
- "concreteNetX" + os.sep + "ReferenceModel.py"
-
- shutil.copyfile(self.farmer_netx_file,
- self.tdir + os.sep + "NetXReferenceModel.py")
-
-
- def tearDown(self):
- # from GH: This step is key, as Python keys off the name of the module, not the location.
- # So, different reference models in different directories won't be detected.
- # If you don't do this, the symptom is a model that doesn't have the attributes
- # that the data file expects.
- if "ReferenceModel" in sys.modules:
- del sys.modules["ReferenceModel"]
-
- sys.path.remove(self.tdir)
- shutil.rmtree(self.tdir, ignore_errors=True)
- os.chdir(self.savecwd)
-
- def test_fct_contruct(self):
- """ give a callback function rather than a string"""
- from ReferenceModel import pysp_instance_creation_callback
- stsolver = rapper.StochSolver(None,
- fsfct = pysp_instance_creation_callback,
- tree_model = self.farmer_concrete_tree)
-
- def test_no_fsfct_no_tree(self):
- """verify that deprecated concrete with no fsfct is an error"""
- with self.assertRaises(RuntimeError):
- stsolver = rapper.StochSolver("ReferenceModel.py",
- fsfct = None,
- tree_model = None)
-
- def test_construct_default_tree_error(self):
- """verify that construction of concrete with default tree name gives error when it should"""
- with self.assertRaises(AttributeError):
- stsolver = rapper.StochSolver("ReferenceModel.py",
- fsfct = "pysp_instance_creation_callback",
- tree_model = None)
-
- @unittest.skipIf(not solver_available,
- "%s solver is not available" % (solvername,))
- def test_ef_solve(self):
- """ solve the ef and check some post solution code"""
- stsolver = rapper.StochSolver("ReferenceModel.py",
- fsfct = "pysp_instance_creation_callback",
- tree_model = self.farmer_concrete_tree)
- ef_sol = stsolver.solve_ef(solvername)
- assert(ef_sol.solver.termination_condition \
- == TerminationCondition.optimal)
- for name, varval in stsolver.root_Var_solution():
- #print (name, str(varval))
- pass
- self.assertAlmostEqual(varval, 170.0, 1)
- obj = stsolver.root_E_obj()
-
- @unittest.skipIf(not solver_available,
- "%s solver is not available" % (solvername,))
- def test_ef_solve_with_gap(self):
- """ solve the ef and report gap"""
- stsolver = rapper.StochSolver("ReferenceModel.py",
- fsfct = "pysp_instance_creation_callback",
- tree_model = self.farmer_concrete_tree)
- res, gap = stsolver.solve_ef(solvername, tee=True, need_gap=True)
-
- @unittest.skipIf(not solver_available,
- "%s solver is not available" % (solvername,))
- def test_ef_solve_with_csvwriter(self):
- """ solve the ef and report gap"""
- stsolver = rapper.StochSolver("ReferenceModel.py",
- fsfct = "pysp_instance_creation_callback",
- tree_model = self.farmer_concrete_tree)
- res, gap = stsolver.solve_ef(solvername, tee=True, need_gap=True)
- csvw.write_csv_soln(stsolver.scenario_tree, "testcref")
- with open("testcref.csv", 'r') as f:
- line = f.readline()
- assert(line.split(",")[0] == "FirstStage")
-
- def test_ef_cvar_construct(self):
- """ construct the ef with cvar """
- stsolver = rapper.StochSolver("ReferenceModel.py",
- fsfct = "pysp_instance_creation_callback",
- tree_model = self.farmer_concrete_tree)
- ef = stsolver.make_ef(generate_weighted_cvar = True,
- cvar_weight = 0.1,
- risk_alpha = 0.9)
-
- @unittest.skipIf(not solver_available,
- "%s solver is not available" % (solvername,))
- def test_ph_solve(self):
- """ use ph"""
- phopts = {'--max-iterations': '2'}
- stsolver = rapper.StochSolver("ReferenceModel.py",
- tree_model = self.farmer_concrete_tree,
- fsfct = "pysp_instance_creation_callback",
- phopts = phopts)
- ph = stsolver.solve_ph(subsolver = solvername, default_rho = 1,
- phopts=phopts)
- obj = stsolver.root_E_obj() # E[xbar]
-
- obj, xhat = rapper.xhat_from_ph(ph)
-
- for nodename, varname, varvalue in rapper.xhat_walker(xhat):
- pass
- assert(nodename == 'RootNode')
-
- @unittest.skipIf(not solver_available or not havenetx,
- "solver or NetworkX not available")
- def test_NetX_ef_csvwriter(self):
- """ solve the ef and report gap"""
- import NetXReferenceModel as ref
- tree_model = ref.pysp_scenario_tree_model_callback()
- stsolver = rapper.StochSolver("NetXReferenceModel.py",
- fsfct="pysp_instance_creation_callback",
- tree_model=tree_model)
- res, gap = stsolver.solve_ef(solvername, tee=True, need_gap=True)
- csvw.write_csv_soln(stsolver.scenario_tree, "testcref")
- with open("testcref_StageCostDetail.csv", 'r') as f:
- line = f.readline()
- assert(line.split(",")[0] == "Stage1")
-
-if __name__ == '__main__':
- unittest.main()
diff --git a/pyomo/pysp/tests/scenariotreemanager/__init__.py b/pyomo/pysp/tests/scenariotreemanager/__init__.py
deleted file mode 100644
index 0f729ecc64a..00000000000
--- a/pyomo/pysp/tests/scenariotreemanager/__init__.py
+++ /dev/null
@@ -1,12 +0,0 @@
-# ___________________________________________________________________________
-#
-# Pyomo: Python Optimization Modeling Objects
-# Copyright 2017 National Technology and Engineering Solutions of Sandia, LLC
-# Under the terms of Contract DE-NA0003525 with National Technology and
-# Engineering Solutions of Sandia, LLC, the U.S. Government retains certain
-# rights in this software.
-# This software is distributed under the 3-clause BSD License.
-# ___________________________________________________________________________
-#
-# Unit tests for ScenarioTreeManager interface
-#
diff --git a/pyomo/pysp/tests/scenariotreemanager/aggregate_callback1.py b/pyomo/pysp/tests/scenariotreemanager/aggregate_callback1.py
deleted file mode 100644
index 298d334bd95..00000000000
--- a/pyomo/pysp/tests/scenariotreemanager/aggregate_callback1.py
+++ /dev/null
@@ -1,12 +0,0 @@
-def pysp_aggregategetter_callback(worker,
- scenario,
- data):
-
- data.setdefault('names',[]).append(scenario.name)
- print("aggregategetter callback1: "+str(scenario.name)+", "
- +str(data))
- print("")
-
- # **IMPT**: Must also return aggregate data in a singleton tuple
- # to work with bundles
- return (data,)
diff --git a/pyomo/pysp/tests/scenariotreemanager/aggregate_callback2.py b/pyomo/pysp/tests/scenariotreemanager/aggregate_callback2.py
deleted file mode 100644
index df5fe01b20b..00000000000
--- a/pyomo/pysp/tests/scenariotreemanager/aggregate_callback2.py
+++ /dev/null
@@ -1,12 +0,0 @@
-def pysp_aggregategetter_callback(worker,
- scenario,
- data):
- assert 'names' in data
- data.setdefault('leaf_node',[]).append(scenario.leaf_node.name)
- print("aggregategetter callback2: "+str(scenario.name)+", "
- +str(data))
- print("")
-
- # **IMPT**: Must also return aggregate data in a singleton tuple
- # to work with bundles
- return (data,)
diff --git a/pyomo/pysp/tests/scenariotreemanager/dummy_model.py b/pyomo/pysp/tests/scenariotreemanager/dummy_model.py
deleted file mode 100644
index d82ed037594..00000000000
--- a/pyomo/pysp/tests/scenariotreemanager/dummy_model.py
+++ /dev/null
@@ -1,53 +0,0 @@
-# ___________________________________________________________________________
-#
-# Pyomo: Python Optimization Modeling Objects
-# Copyright 2017 National Technology and Engineering Solutions of Sandia, LLC
-# Under the terms of Contract DE-NA0003525 with National Technology and
-# Engineering Solutions of Sandia, LLC, the U.S. Government retains certain
-# rights in this software.
-# This software is distributed under the 3-clause BSD License.
-# ___________________________________________________________________________
-
-from pyomo.core import ConcreteModel, Var, Expression, ConstraintList, Objective, sum_product
-
-def pysp_scenario_tree_model_callback():
- from pyomo.pysp.scenariotree.tree_structure_model \
- import CreateConcreteTwoStageScenarioTreeModel
-
- st_model = CreateConcreteTwoStageScenarioTreeModel(3)
-
- first_stage = st_model.Stages.first()
- second_stage = st_model.Stages.last()
-
- # First Stage
- st_model.StageCost[first_stage] = 'StageCost[1]'
- st_model.StageVariables[first_stage].add('x')
- st_model.StageDerivedVariables[first_stage].add('y')
-
- # Second Stage
- st_model.StageCost[second_stage] = 'StageCost[2]'
- st_model.StageVariables[second_stage].add('z')
- st_model.StageDerivedVariables[second_stage].add('q')
-
- return st_model
-
-cnt = 0
-def pysp_instance_creation_callback(scenario_name, node_names):
- global cnt
-
- model = ConcreteModel()
- model.x = Var(bounds=(0,10))
- model.y = Expression(expr=model.x + 1)
- model.z = Var(bounds=(-10, 10))
- model.q = Expression(expr=model.z**2)
- model.StageCost = Expression([1,2])
- model.StageCost.add(1, model.x)
- model.StageCost.add(2, -model.z)
- model.o = Objective(expr=sum_product(model.StageCost))
- model.c = ConstraintList()
- model.c.add(model.x >= cnt)
- model.c.add(model.z <= cnt**2)
-
- cnt += 1
-
- return model
diff --git a/pyomo/pysp/tests/scenariotreemanager/postinit_callback1.py b/pyomo/pysp/tests/scenariotreemanager/postinit_callback1.py
deleted file mode 100644
index 9a07bbe86b1..00000000000
--- a/pyomo/pysp/tests/scenariotreemanager/postinit_callback1.py
+++ /dev/null
@@ -1,5 +0,0 @@
-def pysp_postinit_callback(worker, scenario):
- print("postinit callback1: "+str(scenario.name)+", "
- +str(worker._aggregate_user_data['names']))
- print("")
- worker._aggregate_user_data['names'].remove(scenario.name)
diff --git a/pyomo/pysp/tests/scenariotreemanager/postinit_callback2.py b/pyomo/pysp/tests/scenariotreemanager/postinit_callback2.py
deleted file mode 100644
index e8f5452196b..00000000000
--- a/pyomo/pysp/tests/scenariotreemanager/postinit_callback2.py
+++ /dev/null
@@ -1,6 +0,0 @@
-def pysp_postinit_callback(worker, scenario):
- # test the order of callback execution
- assert scenario.name not in worker._aggregate_user_data['names']
- print("postinit callback2: "+str(scenario.name)+", "
- +str(worker._aggregate_user_data['leaf_node']))
- print("")
diff --git a/pyomo/pysp/tests/scenariotreemanager/test_scenariotreemanager.py b/pyomo/pysp/tests/scenariotreemanager/test_scenariotreemanager.py
deleted file mode 100644
index f4129e42094..00000000000
--- a/pyomo/pysp/tests/scenariotreemanager/test_scenariotreemanager.py
+++ /dev/null
@@ -1,1504 +0,0 @@
-# ___________________________________________________________________________
-#
-# Pyomo: Python Optimization Modeling Objects
-# Copyright 2017 National Technology and Engineering Solutions of Sandia, LLC
-# Under the terms of Contract DE-NA0003525 with National Technology and
-# Engineering Solutions of Sandia, LLC, the U.S. Government retains certain
-# rights in this software.
-# This software is distributed under the 3-clause BSD License.
-# ___________________________________________________________________________
-
-
-import os
-import time
-import subprocess
-import sys
-
-from pyomo.common.collections import OrderedDict
-if sys.version_info[:2] >= (3,7):
- # dict became ordered in CPython 3.6 and added to the standard in 3.7
- _ordered_dict_ = dict
-else:
- _ordered_dict_ = OrderedDict
-
-from pyutilib.pyro import using_pyro3, using_pyro4
-import pyutilib.th as unittest
-
-from pyomo.common.dependencies import dill, dill_available
-from pyomo.pysp.util.misc import (_get_test_nameserver,
- _get_test_dispatcher,
- _poll,
- _kill)
-from pyomo.pysp.util.config import PySPConfigBlock
-from pyomo.pysp.scenariotree.manager import (ScenarioTreeManager,
- ScenarioTreeManagerClient,
- _ScenarioTreeManagerWorker,
- ScenarioTreeManagerClientSerial,
- ScenarioTreeManagerClientPyro,
- ScenarioTreeManagerFactory,
- InvocationType)
-from pyomo.pysp.scenariotree.manager_worker_pyro import \
- ScenarioTreeManagerWorkerPyro
-from pyomo.pysp.scenariotree.server_pyro import (RegisterWorker,
- ScenarioTreeServerPyro)
-from pyomo.pysp.scenariotree.tree_structure_model import \
- CreateConcreteTwoStageScenarioTreeModel
-from pyomo.pysp.scenariotree.instance_factory import \
- ScenarioTreeInstanceFactory
-
-from pyomo.environ import ConcreteModel, Var, Expression, Constraint, Objective, sum_product
-
-thisfile = os.path.abspath(__file__)
-thisdir = os.path.dirname(thisfile)
-
-_run_verbose = True
-_run_profile_memory = False
-
-class TestScenarioTreeManagerMisc(unittest.TestCase):
-
- def test_factory(self):
- options = ScenarioTreeManagerFactory.register_options()
- tmp = ScenarioTreeManagerFactory.register_options(options)
- self.assertIs(tmp, options)
-
- with self.assertRaises(TypeError):
- ScenarioTreeManagerFactory.register_options(options, options)
- with self.assertRaises(TypeError):
- ScenarioTreeManagerFactory.register_options('a')
-
- options.scenario_tree_manager = 'junk'
- with self.assertRaises(ValueError):
- ScenarioTreeManagerFactory(options)
-
- options.scenario_tree_manager = 'serial'
-
- model = ConcreteModel()
- model.x = Var()
- model.y = Var(bounds=(1,None))
- model.stage_cost = Expression([1,2])
- model.stage_cost[1].expr = model.x
- model.stage_cost[2].expr = 0.0
- model.o = Objective(expr=sum_product(model.stage_cost))
- model.c = Constraint(expr=model.x >= model.y)
-
- scenario_tree_model = CreateConcreteTwoStageScenarioTreeModel(3)
- scenario_tree_model.StageCost['Stage1'] = 'stage_cost[1]'
- scenario_tree_model.StageCost['Stage2'] = 'stage_cost[2]'
- scenario_tree_model.NodeVariables['RootNode'].add('x')
- scenario_tree_model.StageVariables['Stage1'].add('y')
-
- instance_factory = ScenarioTreeInstanceFactory(
- model=model,
- scenario_tree=scenario_tree_model)
-
- manager = ScenarioTreeManagerFactory(options,
- factory=instance_factory)
- self.assertTrue(isinstance(manager, ScenarioTreeManagerClientSerial))
- self.assertEqual(manager.initialized, False)
- manager.initialize()
- self.assertEqual(manager.initialized, True)
- self.assertIs(manager.scenario_tree,
- manager.uncompressed_scenario_tree)
- manager.close()
-
- def test_bad_init(self):
- with self.assertRaises(NotImplementedError):
- ScenarioTreeManager()
- with self.assertRaises(NotImplementedError):
- ScenarioTreeManagerClient()
- with self.assertRaises(NotImplementedError):
- _ScenarioTreeManagerWorker()
-
-class _ScenarioTreeManagerWorkerTest(ScenarioTreeManagerWorkerPyro):
-
- def junk(self, *args, **kwds):
- return (args, kwds)
-
-class _ScenarioTreeManagerClientTestSerial(ScenarioTreeManagerClientSerial):
-
- def __init__(self, *args, **kwds):
- assert kwds.pop('registered_worker_name', None) == 'ScenarioTreeManagerWorkerTest'
- super(_ScenarioTreeManagerClientTestSerial, self).__init__(*args, **kwds)
-
- def junk(self, *args, **kwds):
- return (args, kwds)
-
-if "ScenarioTreeManagerWorkerTest" not in ScenarioTreeServerPyro._registered_workers:
- RegisterWorker("ScenarioTreeManagerWorkerTest", _ScenarioTreeManagerWorkerTest)
-
-_init_kwds = {'registered_worker_name': 'ScenarioTreeManagerWorkerTest'}
-
-def _Single(worker):
- return {'scenarios': [(scenario.name, scenario.probability) for scenario in worker.scenario_tree.scenarios],
- 'bundles': [(bundle.name, bundle.probability) for bundle in worker.scenario_tree.bundles]}
-
-def _PerScenario(worker, scenario):
- return scenario.name
-
-def _PerBundle(worker, bundle):
- return bundle.name
-
-def _PerScenarioChained(worker, scenario, data):
- return ((scenario.name, data),)
-
-def _PerScenarioChained_noargs(worker, scenario):
- return scenario.name
-
-def _PerBundleChained(worker, bundle, data):
- return ((bundle.name, data),)
-
-def _PerBundleChained_noargs(worker, bundle):
- return bundle.name
-
-class _ScenarioTreeManagerTesterBase(object):
-
- _bundle_dict3 = _ordered_dict_()
- _bundle_dict3['Bundle1'] = ['Scenario1']
- _bundle_dict3['Bundle2'] = ['Scenario2']
- _bundle_dict3['Bundle3'] = ['Scenario3']
-
- _bundle_dict2 = _ordered_dict_()
- _bundle_dict2['Bundle1'] = ['Scenario1', 'Scenario2']
- _bundle_dict2['Bundle2'] = ['Scenario3']
-
- _bundle_dict1 = _ordered_dict_()
- _bundle_dict1['Bundle1'] = ['Scenario1','Scenario2','Scenario3']
-
- @unittest.nottest
- def _setup(self, options):
- options.model_location = os.path.join(thisdir, 'dummy_model.py')
- options.scenario_tree_location = None
- options.aggregategetter_callback_location = \
- [os.path.join(thisdir, 'aggregate_callback1.py'),
- os.path.join(thisdir, 'aggregate_callback2.py')]
- options.postinit_callback_location = \
- [os.path.join(thisdir, 'postinit_callback1.py'),
- os.path.join(thisdir, 'postinit_callback2.py')]
- options.objective_sense_stage_based = 'min'
- options.verbose = _run_verbose
- options.output_times = True
- options.compile_scenario_instances = True
- options.output_instance_construction_time = True
- options.profile_memory = _run_profile_memory
- options.scenario_tree_random_seed = 1
-
- @unittest.nottest
- def _run_function_tests(self, manager, async_call=False, oneway_call=False, delay=False):
- assert not (async_call and oneway_call)
- class_name, test_name = self.id().split('.')[-2:]
- print("Running function tests on %s.%s" % (class_name, test_name))
- data = []
- init = manager.initialize(async_call=async_call)
- if async_call:
- init = init.complete()
- self.assertEqual(all(_v is True for _v in init.values()), True)
- self.assertEqual(sorted(init.keys()), sorted(manager.worker_names))
- self.assertEqual(len(manager.scenario_tree.scenarios) > 0, True)
- if manager.scenario_tree.contains_bundles():
- self.assertEqual(len(manager.scenario_tree.bundles) > 0, True)
- else:
- self.assertEqual(len(manager.scenario_tree.bundles), 0)
-
- with self.assertRaises(KeyError):
- manager.get_worker_for_scenario("_not_a_scenario_name")
- with self.assertRaises(KeyError):
- manager.get_worker_for_bundle("_not_a_bundles_name")
- with self.assertRaises(KeyError):
- manager.get_scenarios_for_worker("_not_a_worker_name")
- with self.assertRaises(KeyError):
- manager.get_bundles_for_worker("_not_a_worker_name")
-
- #
- # test invoke_function
- #
-
- # no module name
- with self.assertRaises(ValueError):
- manager.invoke_function(
- "_Single",
- module_name=None,
- invocation_type=InvocationType.Single,
- oneway_call=oneway_call,
- async_call=async_call)
- # bad invocation type
- with self.assertRaises(ValueError):
- manager.invoke_function(
- "_Single",
- module_name=thisfile,
- invocation_type="_not_an_invocation_type_",
- oneway_call=oneway_call,
- async_call=async_call)
- # bad oneway_call and async_call combo
- with self.assertRaises(ValueError):
- manager.invoke_function(
- "_Single",
- module_name=thisfile,
- invocation_type=InvocationType.Single,
- oneway_call=True,
- async_call=True)
- # bad paused state
- if isinstance(manager, ScenarioTreeManagerClientPyro) and \
- (not async_call) and (not oneway_call) and (not delay):
- self.assertEqual(manager._transmission_paused, False)
- manager.pause_transmit()
- self.assertEqual(manager._transmission_paused, True)
- with self.assertRaises(ValueError):
- manager.invoke_function(
- "_Single",
- module_name=thisfile,
- invocation_type=InvocationType.Single,
- oneway_call=oneway_call,
- async_call=async_call)
- manager.unpause_transmit()
- self.assertEqual(manager._transmission_paused, False)
- if dill_available or \
- isinstance(manager, ScenarioTreeManagerClientPyro):
- print("")
- print("Running InvocationType.Single... (using dill)")
- results = manager.invoke_function(
- _Single,
- invocation_type=InvocationType.Single,
- oneway_call=oneway_call,
- async_call=async_call)
- if not delay:
- if async_call:
- results = results.complete()
- data.append(('_Single', results))
- if isinstance(manager, ScenarioTreeManagerClientPyro):
- # module name must be None
- with self.assertRaises(ValueError):
- manager.invoke_function(
- _Single,
- module_name=thisfile,
- invocation_type=InvocationType.Single,
- oneway_call=oneway_call,
- async_call=async_call)
-
- elif isinstance(manager, ScenarioTreeManagerClientPyro):
- # requires dill
- with self.assertRaises(ValueError):
- manager.invoke_function(
- _Single,
- invocation_type=InvocationType.Single,
- oneway_call=oneway_call,
- async_call=async_call)
- print("")
- print("Running InvocationType.Single...")
- results = manager.invoke_function(
- "_Single",
- module_name=thisfile,
- invocation_type=InvocationType.Single,
- oneway_call=oneway_call,
- async_call=async_call)
- if not delay:
- if async_call:
- results = results.complete()
- data.append(('_Single', results))
- print("Running InvocationType.PerScenario...")
- results = manager.invoke_function(
- "_PerScenario",
- module_name=thisfile,
- invocation_type=InvocationType.PerScenario,
- oneway_call=oneway_call,
- async_call=async_call)
- if not delay:
- if async_call:
- results = results.complete()
- data.append(('_PerScenario', results))
- print("Running InvocationType.PerScenarioChained...")
- results = manager.invoke_function(
- "_PerScenarioChained",
- module_name=thisfile,
- function_args=(None,),
- invocation_type=InvocationType.PerScenarioChained,
- oneway_call=oneway_call,
- async_call=async_call)
- if not delay:
- if async_call:
- results = results.complete()
- data.append(('_PerScenarioChained', results))
- print("Running InvocationType.PerScenarioChained (no args)...")
- results = manager.invoke_function(
- "_PerScenarioChained_noargs",
- module_name=thisfile,
- invocation_type=InvocationType.PerScenarioChained,
- oneway_call=oneway_call,
- async_call=async_call)
- if not delay:
- if async_call:
- results = results.complete()
- data.append(('_PerScenarioChained_noargs', results))
-
- # bad paused state
- if isinstance(manager, ScenarioTreeManagerClientPyro) and \
- (not delay):
- self.assertEqual(manager._transmission_paused, False)
- manager.pause_transmit()
- self.assertEqual(manager._transmission_paused, True)
- with self.assertRaises(ValueError):
- manager.invoke_function(
- "_PerScenarioChained",
- module_name=thisfile,
- function_args=(None,),
- invocation_type=InvocationType.PerScenarioChained,
- oneway_call=oneway_call,
- async_call=async_call)
- manager.unpause_transmit()
- self.assertEqual(manager._transmission_paused, False)
-
- print("Running InvocationType.OnScenario...")
- results = manager.invoke_function(
- "_PerScenario",
- module_name=thisfile,
- invocation_type=InvocationType.OnScenario('Scenario1'),
- oneway_call=oneway_call,
- async_call=async_call)
- if not delay:
- if async_call:
- results = results.complete()
- data.append(('_OnScenario', results))
- print("Running InvocationType.OnScenarios...")
- results = manager.invoke_function(
- "_PerScenario",
- module_name=thisfile,
- invocation_type=InvocationType.OnScenarios(['Scenario1', 'Scenario3']),
- oneway_call=oneway_call,
- async_call=async_call)
- if not delay:
- if async_call:
- results = results.complete()
- data.append(('_OnScenarios', results))
- print("Running InvocationType.OnScenariosChained...")
- results = manager.invoke_function(
- "_PerScenarioChained",
- module_name=thisfile,
- function_args=(None,),
- invocation_type=InvocationType.OnScenariosChained(['Scenario1', 'Scenario3']),
- oneway_call=oneway_call,
- async_call=async_call)
- if not delay:
- if async_call:
- results = results.complete()
- data.append(('_OnScenariosChained', results))
- print("Running InvocationType.OnScenariosChained (no args)...")
- results = manager.invoke_function(
- "_PerScenarioChained_noargs",
- module_name=thisfile,
- invocation_type=InvocationType.OnScenariosChained(['Scenario3', 'Scenario2']),
- oneway_call=oneway_call,
- async_call=async_call)
- if not delay:
- if async_call:
- results = results.complete()
- data.append(('_OnScenariosChained_noargs', results))
-
- # bad paused state
- if isinstance(manager, ScenarioTreeManagerClientPyro) and \
- (not delay):
- self.assertEqual(manager._transmission_paused, False)
- manager.pause_transmit()
- self.assertEqual(manager._transmission_paused, True)
- with self.assertRaises(ValueError):
- manager.invoke_function(
- "_PerScenarioChained",
- module_name=thisfile,
- function_args=(None,),
- invocation_type=InvocationType.OnScenariosChained(['Scenario1', 'Scenario3']),
- oneway_call=oneway_call,
- async_call=async_call)
- manager.unpause_transmit()
- self.assertEqual(manager._transmission_paused, False)
-
- if manager.scenario_tree.contains_bundles():
- print("Running InvocationType.PerBundle...")
- results = manager.invoke_function(
- "_PerBundle",
- module_name=thisfile,
- invocation_type=InvocationType.PerBundle,
- oneway_call=oneway_call,
- async_call=async_call)
- if not delay:
- if async_call:
- results = results.complete()
- data.append(('_PerBundle', results))
- print("Running InvocationType.PerBundleChained...")
- results = manager.invoke_function(
- "_PerBundleChained",
- module_name=thisfile,
- function_args=(None,),
- invocation_type=InvocationType.PerBundleChained,
- oneway_call=oneway_call,
- async_call=async_call)
- if not delay:
- if async_call:
- results = results.complete()
- data.append(('_PerBundleChained', results))
- print("Running InvocationType.PerBundleChained (no args)...")
- results = manager.invoke_function(
- "_PerBundleChained_noargs",
- module_name=thisfile,
- invocation_type=InvocationType.PerBundleChained,
- oneway_call=oneway_call,
- async_call=async_call)
- if not delay:
- if async_call:
- results = results.complete()
- data.append(('_PerBundleChained_noargs', results))
-
- print("Running InvocationType.OnBundle...")
- results = manager.invoke_function(
- "_PerBundle",
- module_name=thisfile,
- invocation_type=InvocationType.OnBundle('Bundle1'),
- oneway_call=oneway_call,
- async_call=async_call)
- if not delay:
- if async_call:
- results = results.complete()
- data.append(('_OnBundle', results))
- print("Running InvocationType.OnBundles...")
- if len(manager.scenario_tree.bundles) == 1:
- _bundle_names = [manager.scenario_tree.bundles[0].name]
- else:
- _bundle_names = [b.name for b in manager.scenario_tree.bundles[:-1]]
- results = manager.invoke_function(
- "_PerBundle",
- module_name=thisfile,
- invocation_type=InvocationType.OnBundles([b.name for b in manager.scenario_tree.bundles]),
- oneway_call=oneway_call,
- async_call=async_call)
- if not delay:
- if async_call:
- results = results.complete()
- data.append(('_OnBundles', results))
- print("Running InvocationType.OnBundlesChained...")
- results = manager.invoke_function(
- "_PerBundleChained",
- module_name=thisfile,
- function_args=(None,),
- invocation_type=InvocationType.OnBundlesChained(_bundle_names),
- oneway_call=oneway_call,
- async_call=async_call)
- if not delay:
- if async_call:
- results = results.complete()
- data.append(('_OnBundlesChained', results))
- print("Running InvocationType.OnBundlesChained (no args)...")
- results = manager.invoke_function(
- "_PerBundleChained_noargs",
- module_name=thisfile,
- invocation_type=InvocationType.OnBundlesChained(_bundle_names),
- oneway_call=oneway_call,
- async_call=async_call)
- if not delay:
- if async_call:
- results = results.complete()
- data.append(('_OnBundlesChained_noargs', results))
- else:
- with self.assertRaises(ValueError):
- manager.invoke_function(
- "_PerBundle",
- module_name=thisfile,
- invocation_type=InvocationType.PerBundle,
- oneway_call=oneway_call,
- async_call=async_call)
- with self.assertRaises(ValueError):
- manager.invoke_function(
- "_PerBundleChained",
- module_name=thisfile,
- function_args=(None,),
- invocation_type=InvocationType.PerBundleChained,
- oneway_call=oneway_call,
- async_call=async_call)
- with self.assertRaises(ValueError):
- manager.invoke_function(
- "_PerBundle",
- module_name=thisfile,
- invocation_type=InvocationType.OnBundle('Bundle1'),
- oneway_call=oneway_call,
- async_call=async_call)
- with self.assertRaises(ValueError):
- manager.invoke_function(
- "_PerBundle",
- module_name=thisfile,
- invocation_type=InvocationType.OnBundles(['B1','B2']),
- oneway_call=oneway_call,
- async_call=async_call)
- with self.assertRaises(ValueError):
- manager.invoke_function(
- "_PerBundleChained",
- module_name=thisfile,
- function_args=(None,),
- invocation_type=InvocationType.OnBundlesChained(['B1','B2']),
- oneway_call=oneway_call,
- async_call=async_call)
-
- for name, results in data:
- if delay:
- if async_call:
- results = results.complete()
- if oneway_call:
- self.assertEqual(id(results), id(None))
- else:
- if name == "_Single":
- self.assertEqual(sorted(results.keys()),
- sorted(manager.worker_names))
- scenarios = []
- bundles = []
- for worker_name in results:
- self.assertEqual(len(results[worker_name]['scenarios']) > 0,
- True)
- scenarios.extend(results[worker_name]['scenarios'])
- if manager.scenario_tree.contains_bundles():
- self.assertEqual(len(results[worker_name]['bundles']) > 0,
- True)
- bundles.extend(results[worker_name]['bundles'])
- self.assertEqual(sorted(scenarios),
- sorted([(_scenario.name, _scenario.probability) for _scenario
- in manager.scenario_tree.scenarios]))
- self.assertEqual(sorted(bundles),
- sorted([(_bundle.name, _bundle.probability) for _bundle
- in manager.scenario_tree.bundles]))
- elif name == "_PerScenario":
- self.assertEqual(sorted(results.keys()),
- sorted([_scenario.name for _scenario
- in manager.scenario_tree.scenarios]))
- self.assertEqual(sorted(results.values()),
- sorted([_scenario.name for _scenario
- in manager.scenario_tree.scenarios]))
- elif name == "_PerScenarioChained":
- self.assertEqual(
- results, (('Scenario3', ('Scenario2', ('Scenario1', None))),))
- elif name == "_PerScenarioChained_noargs":
- self.assertEqual(results, 'Scenario3')
- elif name == "_OnScenario":
- self.assertEqual(results, 'Scenario1')
- elif name == "_OnScenarios":
- self.assertEqual(sorted(results.keys()),
- ['Scenario1', 'Scenario3'])
- self.assertEqual(sorted(results.values()),
- ['Scenario1', 'Scenario3'])
- elif name == "_OnScenariosChained":
- self.assertEqual(
- results, (('Scenario3', ('Scenario1', None)),))
- elif name == "_OnScenariosChained_noargs":
- self.assertEqual(results, 'Scenario2')
- elif name == "_PerBundle":
- self.assertEqual(manager.scenario_tree.contains_bundles(), True)
- self.assertEqual(sorted(results.keys()),
- sorted([_bundle.name for _bundle
- in manager.scenario_tree.bundles]))
- elif name == "_PerBundleChained":
- self.assertEqual(manager.scenario_tree.contains_bundles(), True)
- if len(manager.scenario_tree.bundles) == 3:
- self.assertEqual(
- results, (('Bundle3', ('Bundle2', ('Bundle1', None))),))
- elif len(manager.scenario_tree.bundles) == 2:
- self.assertEqual(results, (('Bundle2', ('Bundle1', None)),))
- elif len(manager.scenario_tree.bundles) == 1:
- self.assertEqual(results, (('Bundle1', None),))
- else:
- assert False
- elif name == "_PerBundleChained_noargs":
- self.assertEqual(manager.scenario_tree.contains_bundles(), True)
- if len(manager.scenario_tree.bundles) == 3:
- self.assertEqual(results, 'Bundle3')
- elif len(manager.scenario_tree.bundles) == 2:
- self.assertEqual(results, 'Bundle2')
- elif len(manager.scenario_tree.bundles) == 1:
- self.assertEqual(results, 'Bundle1')
- else:
- assert False
- elif name == "_OnBundle":
- self.assertEqual(results, 'Bundle1')
- elif name == "_OnBundles":
- self.assertEqual(
- sorted(results.keys()),
- sorted([b.name for b in manager.scenario_tree.bundles]))
- self.assertEqual(
- sorted(results.values()),
- sorted([b.name for b in manager.scenario_tree.bundles]))
- elif name == "_OnBundlesChained":
- test_results = (None,)
- for bundle_name in _bundle_names:
- test_results = ((bundle_name, test_results[0]),)
- self.assertEqual(results, test_results)
- elif name == "_OnBundlesChained_noargs":
- self.assertEqual(results, _bundle_names[-1])
- else:
- assert False
-
- if isinstance(manager, ScenarioTreeManagerClientSerial):
- self.assertEqual(manager._aggregate_user_data['leaf_node'],
- [scenario.leaf_node.name for scenario
- in manager.scenario_tree.scenarios])
- self.assertEqual(len(manager._aggregate_user_data['names']), 0)
- elif isinstance(manager, ScenarioTreeManagerClientPyro):
- self.assertEqual(manager._aggregate_user_data['leaf_node'],
- [scenario.leaf_node.name for scenario
- in manager.scenario_tree.scenarios])
- self.assertEqual(manager._aggregate_user_data['names'],
- [scenario.name for scenario
- in manager.scenario_tree.scenarios])
- else:
- assert False
-
- #
- # Test invoke_function_on_worker
- #
-
- data = {}
- print("")
- print("Running InvocationType.Single on individual workers...")
- data['_Single'] = {}
- for worker_name in manager.worker_names:
-
- # bad oneway_call and async_call combo
- with self.assertRaises(ValueError):
- manager.invoke_function_on_worker(
- worker_name,
- "_Single",
- module_name=thisfile,
- invocation_type=InvocationType.Single,
- oneway_call=True,
- async_call=True)
-
- if dill_available or \
- isinstance(manager, ScenarioTreeManagerClientPyro):
- print("")
- print("Running InvocationType.Single... (using dill)")
- results = manager.invoke_function_on_worker(
- worker_name,
- _Single,
- invocation_type=InvocationType.Single,
- oneway_call=oneway_call,
- async_call=async_call)
- if isinstance(manager, ScenarioTreeManagerClientPyro):
- # module name must be None
- with self.assertRaises(ValueError):
- manager.invoke_function_on_worker(
- worker_name,
- "_Single",
- module_name=None,
- invocation_type=InvocationType.Single,
- oneway_call=oneway_call,
- async_call=async_call)
-
- else:
- if isinstance(manager, ScenarioTreeManagerClientPyro):
- # requires dill
- with self.assertRaises(ValueError):
- manager.invoke_function_on_worker(
- worker_name,
- _Single,
- invocation_type=InvocationType.Single,
- oneway_call=oneway_call,
- async_call=async_call)
- results = manager.invoke_function_on_worker(
- worker_name,
- "_Single",
- module_name=thisfile,
- invocation_type=InvocationType.Single,
- oneway_call=oneway_call,
- async_call=async_call)
-
- if not delay:
- if async_call:
- results = results.complete()
- data['_Single'][worker_name] = results
-
- print("Running InvocationType.PerScenario on individual workers...")
- data['_PerScenario'] = {}
- for worker_name in manager.worker_names:
- results = manager.invoke_function_on_worker(
- worker_name,
- "_PerScenario",
- module_name=thisfile,
- invocation_type=InvocationType.PerScenario,
- oneway_call=oneway_call,
- async_call=async_call)
- if not delay:
- if async_call:
- results = results.complete()
- data['_PerScenario'][worker_name] = results
- print("Running InvocationType.PerScenarioChained on individual workers...")
- data['_PerScenarioChained'] = {}
- results = (None,)
- for worker_name in manager.worker_names:
- results = manager.invoke_function_on_worker(
- worker_name,
- "_PerScenarioChained",
- module_name=thisfile,
- function_args=results,
- invocation_type=InvocationType.PerScenarioChained,
- async_call=async_call)
- if async_call:
- results = results.complete()
- data['_PerScenarioChained'] = results
- print("Running InvocationType.PerScenarioChained (no args) on individual workers...")
- data['_PerScenarioChained_noargs'] = {}
- for worker_name in manager.worker_names:
- results = manager.invoke_function_on_worker(
- worker_name,
- "_PerScenarioChained_noargs",
- module_name=thisfile,
- invocation_type=InvocationType.PerScenarioChained,
- async_call=async_call)
- if not delay:
- if async_call:
- results = results.complete()
- data['_PerScenarioChained_noargs'][worker_name] = results
-
- print("Running InvocationType.OnScenario on individual workers...")
- data['_OnScenario'] = {}
- for worker_name in manager.worker_names:
- assert len(manager.get_scenarios_for_worker(worker_name)) > 0
- results = manager.invoke_function_on_worker(
- worker_name,
- "_PerScenario",
- module_name=thisfile,
- invocation_type=InvocationType.OnScenario(manager.get_scenarios_for_worker(worker_name)[0]),
- oneway_call=oneway_call,
- async_call=async_call)
- if not delay:
- if async_call:
- results = results.complete()
- data['_OnScenario'][worker_name] = results
- print("Running InvocationType.OnScenarios on individual workers...")
- data['_OnScenarios'] = {}
- for worker_name in manager.worker_names:
- assert len(manager.get_scenarios_for_worker(worker_name)) > 0
- results = manager.invoke_function_on_worker(
- worker_name,
- "_PerScenario",
- module_name=thisfile,
- invocation_type=InvocationType.OnScenarios(manager.get_scenarios_for_worker(worker_name)),
- oneway_call=oneway_call,
- async_call=async_call)
- if not delay:
- if async_call:
- results = results.complete()
- data['_OnScenarios'][worker_name] = results
- print("Running InvocationType.OnScenariosChained on individual workers...")
- data['_OnScenariosChained'] = {}
- results = (None,)
- for worker_name in manager.worker_names:
- assert len(manager.get_scenarios_for_worker(worker_name)) > 0
- results = manager.invoke_function_on_worker(
- worker_name,
- "_PerScenarioChained",
- module_name=thisfile,
- function_args=results,
- invocation_type=InvocationType.OnScenariosChained(manager.get_scenarios_for_worker(worker_name)),
- oneway_call=oneway_call,
- async_call=async_call)
- if async_call:
- results = results.complete()
- data['_OnScenariosChained'] = results
- print("Running InvocationType.OnScenariosChained (no args) on individual workers...")
- data['_OnScenariosChained_noargs'] = {}
- for worker_name in manager.worker_names:
- assert len(manager.get_scenarios_for_worker(worker_name)) > 0
- results = manager.invoke_function_on_worker(
- worker_name,
- "_PerScenarioChained_noargs",
- module_name=thisfile,
- invocation_type=InvocationType.OnScenariosChained(manager.get_scenarios_for_worker(worker_name)),
- oneway_call=oneway_call,
- async_call=async_call)
- if not delay:
- if async_call:
- results = results.complete()
- data['_OnScenariosChained_noargs'][worker_name] = results
-
- if manager.scenario_tree.contains_bundles():
- print("Running InvocationType.PerBundle on individual workers...")
- data['_PerBundle'] = {}
- for worker_name in manager.worker_names:
- results = manager.invoke_function_on_worker(
- worker_name,
- "_PerBundle",
- module_name=thisfile,
- invocation_type=InvocationType.PerBundle,
- oneway_call=oneway_call,
- async_call=async_call)
- if not delay:
- if async_call:
- results = results.complete()
- data['_PerBundle'][worker_name] = results
- print("Running InvocationType.PerBundleChained on individual workers...")
- data['_PerBundleChained'] = {}
- results = (None,)
- for worker_name in manager.worker_names:
- results = manager.invoke_function_on_worker(
- worker_name,
- "_PerBundleChained",
- module_name=thisfile,
- function_args=results,
- invocation_type=InvocationType.PerBundleChained,
- async_call=async_call)
- if async_call:
- results = results.complete()
- data['_PerBundleChained'] = results
- print("Running InvocationType.PerBundleChained (no args) on individual workers...")
- data['_PerBundleChained_noargs'] = {}
- for worker_name in manager.worker_names:
- results = manager.invoke_function_on_worker(
- worker_name,
- "_PerBundleChained_noargs",
- module_name=thisfile,
- invocation_type=InvocationType.PerBundleChained,
- async_call=async_call)
- if not delay:
- if async_call:
- results = results.complete()
- data['_PerBundleChained_noargs'][worker_name] = results
-
- print("Running InvocationType.OnBundle on individual workers...")
- data['_OnBundle'] = {}
- for worker_name in manager.worker_names:
- assert len(manager.get_scenarios_for_worker(worker_name)) > 0
- results = manager.invoke_function_on_worker(
- worker_name,
- "_PerBundle",
- module_name=thisfile,
- invocation_type=InvocationType.OnBundle(manager.get_bundles_for_worker(worker_name)[0]),
- oneway_call=oneway_call,
- async_call=async_call)
- if not delay:
- if async_call:
- results = results.complete()
- data['_OnBundle'][worker_name] = results
- print("Running InvocationType.OnBundles on individual workers...")
- data['_OnBundles'] = {}
- for worker_name in manager.worker_names:
- assert len(manager.get_scenarios_for_worker(worker_name)) > 0
- results = manager.invoke_function_on_worker(
- worker_name,
- "_PerBundle",
- module_name=thisfile,
- invocation_type=InvocationType.OnBundles(manager.get_bundles_for_worker(worker_name)),
- oneway_call=oneway_call,
- async_call=async_call)
- if not delay:
- if async_call:
- results = results.complete()
- data['_OnBundles'][worker_name] = results
- print("Running InvocationType.OnBundlesChained on individual workers...")
- data['_OnBundlesChained'] = {}
- results = (None,)
- for worker_name in manager.worker_names:
- results = manager.invoke_function_on_worker(
- worker_name,
- "_PerBundleChained",
- module_name=thisfile,
- function_args=results,
- invocation_type=InvocationType.OnBundlesChained(manager.get_bundles_for_worker(worker_name)),
- async_call=async_call)
- if async_call:
- results = results.complete()
- data['_OnBundlesChained'] = results
- print("Running InvocationType.OnBundlesChained (no args) on individual workers...")
- data['_OnBundlesChained_noargs'] = {}
- for worker_name in manager.worker_names:
- results = manager.invoke_function_on_worker(
- worker_name,
- "_PerBundleChained_noargs",
- module_name=thisfile,
- invocation_type=InvocationType.OnBundlesChained(manager.get_bundles_for_worker(worker_name)),
- async_call=async_call)
- if not delay:
- if async_call:
- results = results.complete()
- data['_OnBundlesChained_noargs'][worker_name] = results
-
- print("")
- for name in data:
- results = data[name]
- if (name != '_PerScenarioChained') and \
- (name != '_PerBundleChained') and \
- (name != '_OnScenariosChained') and \
- (name != '_OnBundlesChained'):
- if delay:
- if async_call:
- for worker_name in results:
- results[worker_name] = results[worker_name].complete()
- if oneway_call:
- if (name != '_PerScenarioChained') and \
- (name != '_PerBundleChained') and \
- (name != '_OnScenariosChained') and \
- (name != '_OnBundlesChained'):
- for worker_name in results:
- self.assertEqual(id(results[worker_name]), id(None))
- else:
- if name == "_Single":
- self.assertEqual(sorted(results.keys()),
- sorted(manager.worker_names))
- scenarios = []
- bundles = []
- for worker_name in results:
- self.assertEqual(len(results[worker_name]['scenarios']) > 0,
- True)
- scenarios.extend(results[worker_name]['scenarios'])
- if manager.scenario_tree.contains_bundles():
- self.assertEqual(len(results[worker_name]['bundles']) > 0,
- True)
- bundles.extend(results[worker_name]['bundles'])
- self.assertEqual(sorted(scenarios),
- sorted([(_scenario.name, _scenario.probability) for _scenario
- in manager.scenario_tree.scenarios]))
- self.assertEqual(sorted(bundles),
- sorted([(_bundle.name, _bundle.probability) for _bundle
- in manager.scenario_tree.bundles]))
- elif name == "_PerScenario":
- _results = {}
- for worker_name in results:
- _results.update(results[worker_name])
- results = _results
- self.assertEqual(sorted(results.keys()),
- sorted([_scenario.name for _scenario
- in manager.scenario_tree.scenarios]))
- self.assertEqual(sorted(results.values()),
- sorted([_scenario.name for _scenario
- in manager.scenario_tree.scenarios]))
- elif name == "_PerScenarioChained":
- self.assertEqual(
- results, (('Scenario3', ('Scenario2', ('Scenario1', None))),))
- elif name == "_PerScenarioChained_noargs":
- assert len(results) > 0
- for worker_name in results:
- self.assertEqual(
- results[worker_name],
- manager.get_scenarios_for_worker(worker_name)[-1])
- elif name == "_OnScenario":
- assert len(results) > 0
- for worker_name in results:
- self.assertEqual(results[worker_name],
- manager.get_scenarios_for_worker(worker_name)[0])
- elif name == "_OnScenarios":
- assert len(results) > 0
- for worker_name in results:
- self.assertEqual(
- sorted(results[worker_name].keys()),
- sorted(manager.get_scenarios_for_worker(worker_name)))
- self.assertEqual(
- sorted(results[worker_name].values()),
- sorted(manager.get_scenarios_for_worker(worker_name)))
- elif name == "_OnScenariosChained":
- self.assertEqual(
- results, (('Scenario3', ('Scenario2', ('Scenario1', None))),))
- elif name == "_OnScenariosChained_noargs":
- assert len(results) > 0
- for worker_name in results:
- self.assertEqual(
- results[worker_name],
- manager.get_scenarios_for_worker(worker_name)[-1])
- elif name == "_PerBundle":
- _results = {}
- for worker_name in results:
- _results.update(results[worker_name])
- results = _results
- self.assertEqual(manager.scenario_tree.contains_bundles(), True)
- self.assertEqual(sorted(results.keys()),
- sorted([_bundle.name for _bundle
- in manager.scenario_tree.bundles]))
- elif name == "_PerBundleChained":
- self.assertEqual(manager.scenario_tree.contains_bundles(), True)
- if len(manager.scenario_tree.bundles) == 3:
- self.assertEqual(
- results, (('Bundle3', ('Bundle2', ('Bundle1', None))),))
- elif len(manager.scenario_tree.bundles) == 2:
- self.assertEqual(results, (('Bundle2', ('Bundle1', None)),))
- elif len(manager.scenario_tree.bundles) == 1:
- self.assertEqual(results, (('Bundle1', None),))
- else:
- assert False
- elif name == "_PerBundleChained_noargs":
- assert len(results) > 0
- for worker_name in results:
- self.assertEqual(
- results[worker_name],
- manager.get_bundles_for_worker(worker_name)[-1])
- elif name == "_OnBundle":
- assert len(results) > 0
- for worker_name in results:
- self.assertEqual(
- results[worker_name],
- manager.get_bundles_for_worker(worker_name)[0])
- elif name == "_OnBundles":
- assert len(results) > 0
- for worker_name in results:
- self.assertEqual(
- sorted(results[worker_name].keys()),
- sorted(manager.get_bundles_for_worker(worker_name)))
- self.assertEqual(
- sorted(results[worker_name].values()),
- sorted(manager.get_bundles_for_worker(worker_name)))
- elif name == "_OnBundlesChained":
- self.assertEqual(manager.scenario_tree.contains_bundles(), True)
- if len(manager.scenario_tree.bundles) == 3:
- self.assertEqual(
- results, (('Bundle3', ('Bundle2', ('Bundle1', None))),))
- elif len(manager.scenario_tree.bundles) == 2:
- self.assertEqual(results, (('Bundle2', ('Bundle1', None)),))
- elif len(manager.scenario_tree.bundles) == 1:
- self.assertEqual(results, (('Bundle1', None),))
- else:
- assert False
- elif name == "_OnBundlesChained_noargs":
- assert len(results) > 0
- for worker_name in results:
- self.assertEqual(
- results[worker_name],
- manager.get_bundles_for_worker(worker_name)[-1])
- else:
- assert False
-
- #
- # Test invoke_method
- #
-
- # bad oneway_call and async_call combo
- with self.assertRaises(ValueError):
- manager.invoke_method(
- "junk",
- method_args=(None,),
- method_kwds={'a': None},
- oneway_call=True,
- async_call=True)
- # bad paused state
- if isinstance(manager, ScenarioTreeManagerClientPyro) and \
- (not async_call) and (not oneway_call) and (not delay):
- self.assertEqual(manager._transmission_paused, False)
- manager.pause_transmit()
- self.assertEqual(manager._transmission_paused, True)
- with self.assertRaises(ValueError):
- manager.invoke_method(
- "junk",
- method_args=(None,),
- method_kwds={'a': None},
- oneway_call=oneway_call,
- async_call=async_call)
- manager.unpause_transmit()
- self.assertEqual(manager._transmission_paused, False)
-
- result = manager.invoke_method(
- "junk",
- method_args=(None,),
- method_kwds={'a': None},
- oneway_call=oneway_call,
- async_call=async_call)
- if async_call:
- result = result.complete()
- if oneway_call:
- self.assertEqual(id(result), id(None))
- else:
- self.assertEqual(sorted(result.keys()),
- sorted(manager.worker_names))
- for worker_name in result:
- self.assertEqual(result[worker_name],
- ((None,), {'a': None}))
-
-
- #
- # Test invoke_method_on_worker
- #
-
- results = {}
- for worker_name in manager.worker_names:
- # bad oneway_call and async_call combo
- with self.assertRaises(ValueError):
- manager.invoke_method_on_worker(worker_name,
- "junk",
- method_args=(None,),
- method_kwds={'a': None},
- oneway_call=True,
- async_call=True)
- results[worker_name] = \
- manager.invoke_method_on_worker(worker_name,
- "junk",
- method_args=(None,),
- method_kwds={'a': None},
- oneway_call=oneway_call,
- async_call=async_call)
- if async_call:
- results = dict((worker_name, results[worker_name].complete())
- for worker_name in results)
-
- if oneway_call:
- for worker_name in results:
- self.assertEqual(id(results[worker_name]), id(None))
- else:
- self.assertEqual(sorted(results.keys()),
- sorted(manager.worker_names))
- for worker_name in results:
- self.assertEqual(results[worker_name], ((None,), {'a': None}))
-
- @unittest.nottest
- def _scenarios_test(self,
- async_call=False,
- oneway_call=False,
- delay=False):
- self._setup(self.options)
- with self.cls(self.options, **_init_kwds) as manager:
- self._run_function_tests(manager,
- async_call=async_call,
- oneway_call=oneway_call,
- delay=delay)
- self.assertEqual(manager._scenario_tree.contains_bundles(), False)
- self.assertEqual(list(self.options.unused_user_values()), [])
-
- @unittest.nottest
- def _bundles1_test(self,
- async_call=False,
- oneway_call=False,
- delay=False):
- options = PySPConfigBlock()
- self._setup(self.options)
- self.options.scenario_bundle_specification = self._bundle_dict1
- with self.cls(self.options, **_init_kwds) as manager:
- self._run_function_tests(manager,
- async_call=async_call,
- oneway_call=oneway_call,
- delay=delay)
- self.assertEqual(manager._scenario_tree.contains_bundles(), True)
- self.assertEqual(list(self.options.unused_user_values()), [])
-
- @unittest.nottest
- def _bundles2_test(self,
- async_call=False,
- oneway_call=False,
- delay=False):
- options = PySPConfigBlock()
- self._setup(self.options)
- self.options.scenario_bundle_specification = self._bundle_dict2
- with self.cls(self.options, **_init_kwds) as manager:
- self._run_function_tests(manager,
- async_call=async_call,
- oneway_call=oneway_call,
- delay=delay)
- self.assertEqual(manager._scenario_tree.contains_bundles(), True)
- self.assertEqual(list(self.options.unused_user_values()), [])
-
- @unittest.nottest
- def _bundles3_test(self,
- async_call=False,
- oneway_call=False,
- delay=False):
- options = PySPConfigBlock()
- self._setup(self.options)
- self.options.scenario_bundle_specification = self._bundle_dict3
- with self.cls(self.options, **_init_kwds) as manager:
- self._run_function_tests(manager,
- async_call=async_call,
- oneway_call=oneway_call,
- delay=delay)
- self.assertEqual(manager._scenario_tree.contains_bundles(), True)
- self.assertEqual(list(self.options.unused_user_values()), [])
-
- def test_scenarios(self):
- self._scenarios_test(async_call=False,
- oneway_call=False,
- delay=False)
- def test_scenarios_async_call(self):
- self._scenarios_test(async_call=True,
- oneway_call=False,
- delay=False)
- def test_scenarios_async_call_delay(self):
- self._scenarios_test(async_call=True,
- oneway_call=False,
- delay=True)
-
- def test_bundles1(self):
- self._bundles1_test(async_call=False,
- oneway_call=False,
- delay=False)
- def test_bundles1_async_call(self):
- self._bundles1_test(async_call=True,
- oneway_call=False,
- delay=False)
- def test_bundles1_async_call_delay(self):
- self._bundles1_test(async_call=True,
- oneway_call=False,
- delay=True)
-
- def test_bundles2(self):
- self._bundles2_test(async_call=False,
- oneway_call=False,
- delay=False)
- def test_bundles2_async_call(self):
- self._bundles2_test(async_call=True,
- oneway_call=False,
- delay=False)
- def test_bundles2_async_call_delay(self):
- self._bundles2_test(async_call=True,
- oneway_call=False,
- delay=True)
-
- def test_bundles3(self):
- self._bundles3_test(async_call=False,
- oneway_call=False,
- delay=False)
- def test_bundles3_async_call(self):
- self._bundles3_test(async_call=True,
- oneway_call=False,
- delay=False)
- def test_bundles3_async_call_delay(self):
- self._bundles3_test(async_call=True,
- oneway_call=False,
- delay=True)
-
- def test_random_bundles(self):
- options = PySPConfigBlock()
- self._setup(self.options)
- self.options.create_random_bundles = 2
- with self.cls(self.options, **_init_kwds) as manager:
- manager.initialize()
- self.assertEqual(manager._scenario_tree.contains_bundles(), True)
- self.assertEqual(list(self.options.unused_user_values()), [])
-
-#
-# create the actual testing classes
-#
-
-class TestScenarioTreeManagerClientSerial(
- unittest.TestCase,
- _ScenarioTreeManagerTesterBase):
-
- cls = _ScenarioTreeManagerClientTestSerial
-
- def setUp(self):
- self.options = PySPConfigBlock()
- self.async_call = False
- self.oneway_call = False
- self.delay = False
- ScenarioTreeManagerClientSerial.register_options(self.options)
-
-_pyomo_ns_host = '127.0.0.1'
-_pyomo_ns_port = None
-_pyomo_ns_process = None
-_dispatch_srvr_port = None
-_dispatch_srvr_process = None
-_taskworker_processes = []
-def tearDownModule():
- global _pyomo_ns_port
- global _pyomo_ns_process
- global _dispatch_srvr_port
- global _dispatch_srvr_process
- global _taskworker_processes
- _kill(_pyomo_ns_process)
- _pyomo_ns_port = None
- _pyomo_ns_process = None
- _kill(_dispatch_srvr_process)
- _dispatch_srvr_port = None
- _dispatch_srvr_process = None
- for i, proc in enumerate(_taskworker_processes):
- _kill(proc)
- outname = os.path.join(thisdir,
- "TestCapture_scenariotreeserver_" + \
- str(i+1) + ".out")
- if os.path.exists(outname):
- try:
- os.remove(outname)
- except OSError:
- pass
- _taskworker_processes = []
- if os.path.exists(os.path.join(thisdir, "Pyro_NS_URI")):
- try:
- os.remove(os.path.join(thisdir, "Pyro_NS_URI"))
- except OSError:
- pass
-
-def _setUpPyro():
- global _pyomo_ns_port
- global _pyomo_ns_process
- global _dispatch_srvr_port
- global _dispatch_srvr_process
- global _taskworker_processes
- if _pyomo_ns_process is None:
- _pyomo_ns_process, _pyomo_ns_port = \
- _get_test_nameserver(ns_host=_pyomo_ns_host)
- assert _pyomo_ns_process is not None
- if _dispatch_srvr_process is None:
- _dispatch_srvr_process, _dispatch_srvr_port = \
- _get_test_dispatcher(ns_host=_pyomo_ns_host,
- ns_port=_pyomo_ns_port)
- assert _dispatch_srvr_process is not None
- if len(_taskworker_processes) == 0:
- for i in range(3):
- outname = os.path.join(thisdir,
- "TestCapture_scenariotreeserver_" + \
- str(i+1) + ".out")
- with open(outname, "w") as f:
- _taskworker_processes.append(
- subprocess.Popen(["scenariotreeserver", "--traceback"] + \
- ["--import-module="+thisfile] + \
- (["--verbose"] if _run_verbose else []) + \
- ["--pyro-host="+str(_pyomo_ns_host)] + \
- ["--pyro-port="+str(_pyomo_ns_port)],
- stdout=f,
- stderr=subprocess.STDOUT))
-
- time.sleep(2)
- [_poll(proc) for proc in _taskworker_processes]
-
-class _ScenarioTreeManagerClientPyroTesterBase(_ScenarioTreeManagerTesterBase):
-
- cls = ScenarioTreeManagerClientPyro
-
- def setUp(self):
- _setUpPyro()
- [_poll(proc) for proc in _taskworker_processes]
- self.options = PySPConfigBlock()
- ScenarioTreeManagerClientPyro.register_options(
- self.options,
- registered_worker_name='ScenarioTreeManagerWorkerTest')
-
- @unittest.nottest
- def _setup(self, options, servers=None):
- _ScenarioTreeManagerTesterBase._setup(self, options)
- options.pyro_host = 'localhost'
- options.pyro_port = _pyomo_ns_port
- if servers is not None:
- options.pyro_required_scenariotreeservers = servers
-
- @unittest.nottest
- def _scenarios_1server_test(self,
- async_call=False,
- oneway_call=False,
- delay=False):
- self._setup(self.options, servers=1)
- with self.cls(self.options, **_init_kwds) as manager:
- self._run_function_tests(manager,
- async_call=async_call,
- oneway_call=oneway_call,
- delay=delay)
- self.assertEqual(manager._scenario_tree.contains_bundles(), False)
- self.assertEqual(list(self.options.unused_user_values()), [])
-
- @unittest.nottest
- def _bundles1_1server_test(self,
- async_call=False,
- oneway_call=False,
- delay=False):
- self._setup(self.options, servers=1)
- self.options.scenario_bundle_specification = self._bundle_dict1
- with self.cls(self.options, **_init_kwds) as manager:
- self._run_function_tests(manager,
- async_call=async_call,
- oneway_call=oneway_call,
- delay=delay)
- self.assertEqual(manager._scenario_tree.contains_bundles(), True)
- self.assertEqual(list(self.options.unused_user_values()), [])
-
- @unittest.nottest
- def _bundles2_1server_test(self,
- async_call=False,
- oneway_call=False,
- delay=False):
- self._setup(self.options, servers=1)
- self.options.scenario_bundle_specification = self._bundle_dict2
- with self.cls(self.options, **_init_kwds) as manager:
- self._run_function_tests(manager, async_call=async_call, oneway_call=oneway_call, delay=delay)
- self.assertEqual(manager._scenario_tree.contains_bundles(), True)
- self.assertEqual(list(self.options.unused_user_values()), [])
-
- @unittest.nottest
- def _bundles3_1server_test(self,
- async_call=False,
- oneway_call=False,
- delay=False):
- self._setup(self.options, servers=1)
- self.options.scenario_bundle_specification = self._bundle_dict3
- with self.cls(self.options, **_init_kwds) as manager:
- self._run_function_tests(manager, async_call=async_call, oneway_call=oneway_call, delay=delay)
- self.assertEqual(manager._scenario_tree.contains_bundles(), True)
- self.assertEqual(list(self.options.unused_user_values()), [])
-
- def test_scenarios_1server(self):
- self._scenarios_1server_test(async_call=False,
- oneway_call=False,
- delay=False)
- def test_scenarios_1server_async_call(self):
- self._scenarios_1server_test(async_call=True,
- oneway_call=False,
- delay=False)
- def test_scenarios_1server_async_call_delay(self):
- self._scenarios_1server_test(async_call=True,
- oneway_call=False,
- delay=True)
-
- def test_bundles1_1server(self):
- self._bundles1_1server_test(async_call=False,
- oneway_call=False,
- delay=False)
- def test_bundles1_1server_async_call(self):
- self._bundles1_1server_test(async_call=True,
- oneway_call=False,
- delay=False)
- def test_bundles1_1server_async_call_delay(self):
- self._bundles1_1server_test(async_call=True,
- oneway_call=False,
- delay=True)
-
- def test_bundles2_1server(self):
- self._bundles2_1server_test(async_call=False,
- oneway_call=False,
- delay=False)
- def test_bundles2_1server_async_call(self):
- self._bundles2_1server_test(async_call=True,
- oneway_call=False,
- delay=False)
- def test_bundles2_1server_async_call_delay(self):
- self._bundles2_1server_test(async_call=True,
- oneway_call=False,
- delay=True)
-
- def test_bundles3_1server(self):
- self._bundles3_1server_test(async_call=False,
- oneway_call=False,
- delay=False)
- def test_bundles3_1server_async_call(self):
- self._bundles3_1server_test(async_call=True,
- oneway_call=False,
- delay=False)
- def test_bundles3_1server_async_call_delay(self):
- self._bundles3_1server_test(async_call=True,
- oneway_call=False,
- delay=True)
-
- def test_random_bundles_1server(self):
- options = PySPConfigBlock()
- self._setup(self.options, servers=1)
- self.options.create_random_bundles = 2
- with self.cls(self.options, **_init_kwds) as manager:
- manager.initialize()
- self.assertEqual(manager._scenario_tree.contains_bundles(), True)
- self.assertEqual(list(self.options.unused_user_values()), [])
-
-@unittest.skipIf(not (using_pyro3 or using_pyro4), "Pyro or Pyro4 is not available")
-@unittest.category('parallel')
-class TestScenarioTreeManagerClientPyro(
- unittest.TestCase,
- _ScenarioTreeManagerClientPyroTesterBase):
-
- def setUp(self):
- _ScenarioTreeManagerClientPyroTesterBase.setUp(self)
- def _setup(self, options, servers=None):
- _ScenarioTreeManagerClientPyroTesterBase._setup(self, options, servers=servers)
- options.pyro_handshake_at_startup = False
-
-@unittest.skipIf(not (using_pyro3 or using_pyro4), "Pyro or Pyro4 is not available")
-@unittest.category('parallel')
-class TestScenarioTreeManagerClientPyro_HandshakeAtStartup(
- unittest.TestCase,
- _ScenarioTreeManagerClientPyroTesterBase):
-
- def setUp(self):
- _ScenarioTreeManagerClientPyroTesterBase.setUp(self)
- def _setup(self, options, servers=None):
- _ScenarioTreeManagerClientPyroTesterBase._setup(self, options, servers=servers)
- options.pyro_handshake_at_startup = True
-
-if __name__ == "__main__":
- unittest.main()
diff --git a/pyomo/pysp/tests/scenariotreemanager/test_scenariotreemanagersolver.py b/pyomo/pysp/tests/scenariotreemanager/test_scenariotreemanagersolver.py
deleted file mode 100644
index 828fcdf9c56..00000000000
--- a/pyomo/pysp/tests/scenariotreemanager/test_scenariotreemanagersolver.py
+++ /dev/null
@@ -1,762 +0,0 @@
-# ___________________________________________________________________________
-#
-# Pyomo: Python Optimization Modeling Objects
-# Copyright 2017 National Technology and Engineering Solutions of Sandia, LLC
-# Under the terms of Contract DE-NA0003525 with National Technology and
-# Engineering Solutions of Sandia, LLC, the U.S. Government retains certain
-# rights in this software.
-# This software is distributed under the 3-clause BSD License.
-# ___________________________________________________________________________
-
-
-import os
-import time
-import subprocess
-
-from pyutilib.pyro import using_pyro3, using_pyro4
-import pyutilib.th as unittest
-
-from pyomo.common.dependencies import dill, dill_available as has_dill
-from pyomo.pysp.util.misc import (_get_test_nameserver,
- _get_test_dispatcher,
- _poll,
- _kill)
-from pyomo.pysp.scenariotree.manager import \
- (ScenarioTreeManagerClientSerial,
- ScenarioTreeManagerClientPyro)
-from pyomo.pysp.scenariotree.instance_factory import \
- ScenarioTreeInstanceFactory
-from pyomo.pysp.scenariotree.manager_solver import \
- (ScenarioTreeManagerSolverFactory,
- PySPFailedSolveStatus)
-
-import pyomo.environ as pyo
-
-from pyomo.common.dependencies import (
- networkx, networkx_available as has_networkx
-)
-
-thisfile = os.path.abspath(__file__)
-thisdir = os.path.dirname(thisfile)
-
-_run_verbose = True
-
-_default_test_options = ScenarioTreeManagerSolverFactory.register_options()
-_default_test_options.solver = 'glpk'
-_default_test_options.solver_io = 'lp'
-#_default_test_options.symbolic_solver_labels = True
-#_default_test_options.keep_solver_files = True
-#_default_test_options.disable_advanced_preprocessing = True
-
-_pyomo_ns_host = '127.0.0.1'
-_pyomo_ns_port = None
-_pyomo_ns_process = None
-_dispatch_srvr_port = None
-_dispatch_srvr_process = None
-_taskworker_processes = []
-def tearDownModule():
- global _pyomo_ns_port
- global _pyomo_ns_process
- global _dispatch_srvr_port
- global _dispatch_srvr_process
- global _taskworker_processes
- _kill(_pyomo_ns_process)
- _pyomo_ns_port = None
- _pyomo_ns_process = None
- _kill(_dispatch_srvr_process)
- _dispatch_srvr_port = None
- _dispatch_srvr_process = None
- for i, proc in enumerate(_taskworker_processes):
- _kill(proc)
- outname = os.path.join(thisdir,
- "TestCapture_scenariotreeserver_" + \
- str(i+1) + ".out")
- if os.path.exists(outname):
- try:
- os.remove(outname)
- except OSError:
- pass
- _taskworker_processes = []
- if os.path.exists(os.path.join(thisdir, "Pyro_NS_URI")):
- try:
- os.remove(os.path.join(thisdir, "Pyro_NS_URI"))
- except OSError:
- pass
-
-solver = {}
-solver['glpk','lp'] = False
-def setUpModule():
- global solver
- import pyomo.environ
- from pyomo.solvers.tests.solvers import test_solver_cases
- for _solver, _io in test_solver_cases():
- if (_solver, _io) in solver and \
- test_solver_cases(_solver, _io).available:
- solver[_solver, _io] = True
-
-def _setUpPyro():
- global _pyomo_ns_port
- global _pyomo_ns_process
- global _dispatch_srvr_port
- global _dispatch_srvr_process
- global _taskworker_processes
- if _pyomo_ns_process is None:
- _pyomo_ns_process, _pyomo_ns_port = \
- _get_test_nameserver(ns_host=_pyomo_ns_host)
- assert _pyomo_ns_process is not None
- if _dispatch_srvr_process is None:
- _dispatch_srvr_process, _dispatch_srvr_port = \
- _get_test_dispatcher(ns_host=_pyomo_ns_host,
- ns_port=_pyomo_ns_port)
- assert _dispatch_srvr_process is not None
- if len(_taskworker_processes) == 0:
- for i in range(3):
- outname = os.path.join(thisdir,
- "TestCapture_scenariotreeserver_" + \
- str(i+1) + ".out")
- with open(outname, "w") as f:
- _taskworker_processes.append(
- subprocess.Popen(["scenariotreeserver", "--traceback"] + \
- ["--import-module="+thisfile] + \
- (["--verbose"] if _run_verbose else []) + \
- ["--pyro-host="+str(_pyomo_ns_host)] + \
- ["--pyro-port="+str(_pyomo_ns_port)],
- stdout=f,
- stderr=subprocess.STDOUT))
- time.sleep(2)
- [_poll(proc) for proc in _taskworker_processes]
-
-class _SP_Feasible(object):
-
- @staticmethod
- def get_factory():
- tree = networkx.DiGraph()
- tree.add_node("r",
- variables=["x"],
- cost="t0_cost")
- for i in range(3):
- tree.add_node("s"+str(i),
- variables=["Y","stale","fixed"],
- cost="t1_cost")
- tree.add_edge("r", "s"+str(i), weight=1.0/3)
-
- model = pyo.ConcreteModel()
- model.x = pyo.Var()
- model.Y = pyo.Var([1])
- model.stale = pyo.Var(initialize=0.0)
- model.fixed = pyo.Var(initialize=0.0)
- model.fixed.fix()
- model.p = pyo.Param(mutable=True)
- model.t0_cost = pyo.Expression(expr=model.x)
- model.t1_cost = pyo.Expression(expr=model.Y[1])
- model.o = pyo.Objective(expr=model.t0_cost + model.t1_cost)
- model.c = pyo.ConstraintList()
- model.c.add(model.x >= 1)
- model.c.add(model.Y[1] >= model.p)
-
- def _create_model(scenario_name, node_names):
- m = model.clone()
- if scenario_name == "s0":
- m.p.value = 0.0
- elif scenario_name == "s1":
- m.p.value = 1.0
- else:
- assert(scenario_name == "s2")
- m.p.value = 2.0
- return m
-
- return ScenarioTreeInstanceFactory(
- model=_create_model,
- scenario_tree=tree)
-
- @staticmethod
- def validate_solve(tester, sp, results, names=None):
- if names is None:
- names = [_s.name for _s in sp.scenario_tree.scenarios]
-
- tester.assertEqual(["s0","s1","s2"],
- sorted(s.name for s in \
- sp.scenario_tree.scenarios))
- for scenario_name in names:
- scenario = sp.scenario_tree.get_scenario(scenario_name)
- tester.assertEqual(str(results.solver_status[scenario.name]),
- "ok")
- tester.assertEqual(str(results.termination_condition[scenario.name]),
- "optimal")
- tester.assertEqual(len(scenario._x['r']), 1)
- tester.assertAlmostEqual(scenario._x['r']['x'], 1.0)
- tester.assertAlmostEqual(scenario._x[scenario.name]['Y:#1'],
- float(scenario.name[1:]))
- tester.assertAlmostEqual(scenario._x[scenario.name]['fixed'],
- 0.0)
- tester.assertAlmostEqual(scenario._x[scenario.name]['stale'],
- 0.0)
- tester.assertAlmostEqual(scenario._objective,
- 1.0 + float(scenario.name[1:]))
- tester.assertAlmostEqual(scenario._cost,
- 1.0 + float(scenario.name[1:]))
- tester.assertAlmostEqual(scenario._objective,
- results.objective[scenario.name])
- tester.assertAlmostEqual(scenario._cost,
- results.cost[scenario.name])
- tester.assertAlmostEqual(scenario._stage_costs['Stage1'],
- 1.0)
- tester.assertAlmostEqual(scenario._stage_costs['Stage2'],
- float(scenario.name[1:]))
- tester.assertEqual(scenario._stale['r'], set([]))
- tester.assertEqual(scenario._fixed['r'], set([]))
- tester.assertEqual(scenario._stale[scenario.name],
- set(['stale']))
- tester.assertEqual(scenario._fixed[scenario.name],
- set(['fixed']))
-
-class _SP_Infeasible(object):
-
- @staticmethod
- def get_factory():
- tree = networkx.DiGraph()
- tree.add_node("r",
- variables=["x"],
- cost="t0_cost")
- for i in range(3):
- tree.add_node("s"+str(i),
- variables=["Y","stale","fixed"],
- cost="t1_cost")
- tree.add_edge("r", "s"+str(i), weight=1.0/3)
-
- model = pyo.ConcreteModel()
- model.x = pyo.Var()
- model.Y = pyo.Var([1], bounds=(None, 1))
- model.stale = pyo.Var(initialize=0.0)
- model.fixed = pyo.Var(initialize=0.0)
- model.fixed.fix()
- model.p = pyo.Param(mutable=True)
- model.t0_cost = pyo.Expression(expr=model.x)
- model.t1_cost = pyo.Expression(expr=model.Y[1])
- model.o = pyo.Objective(expr=model.t0_cost + model.t1_cost)
- model.c = pyo.ConstraintList()
- model.c.add(model.x >= 1)
- model.c.add(model.Y[1] >= model.p)
-
- def _create_model(scenario_name, node_names):
- m = model.clone()
- if scenario_name == "s0":
- m.p.value = 0.0
- elif scenario_name == "s1":
- m.p.value = 1.0
- else:
- assert(scenario_name == "s2")
- m.p.value = 2.0
- return m
-
- return ScenarioTreeInstanceFactory(
- model=_create_model,
- scenario_tree=tree)
-
- @staticmethod
- def validate_solve(tester, sp, results, names=None):
- if names is None:
- names = [_s.name for _s in sp.scenario_tree.scenarios]
-
- tester.assertEqual(["s0","s1","s2"],
- sorted(s.name for s in \
- sp.scenario_tree.scenarios))
- for scenario_name in names:
- scenario = sp.scenario_tree.get_scenario(scenario_name)
- if scenario.name == 's2':
- tester.assertTrue(
- str(results.solver_status[scenario.name]) \
- in ("warning","ok"))
- tester.assertEqual(
- str(results.termination_condition[scenario.name]),
- "infeasible")
- tester.assertEqual(scenario._objective,
- None)
- tester.assertEqual(scenario._cost,
- None)
- tester.assertEqual(scenario._stage_costs['Stage1'],
- None)
- tester.assertEqual(scenario._stage_costs['Stage2'],
- None)
- tester.assertEqual(scenario._stale['r'],
- set([]))
- tester.assertEqual(scenario._fixed['r'],
- set([]))
- tester.assertEqual(scenario._stale[scenario.name],
- set([]))
- tester.assertEqual(scenario._fixed[scenario.name],
- set([]))
- else:
- assert scenario.name in ('s0', 's1')
- tester.assertEqual(
- str(results.solver_status[scenario.name]),
- "ok")
- tester.assertEqual(
- str(results.termination_condition[scenario.name]),
- "optimal")
- tester.assertEqual(len(scenario._x['r']), 1)
- tester.assertAlmostEqual(scenario._x['r']['x'], 1.0)
- tester.assertAlmostEqual(scenario._x[scenario.name]['Y:#1'],
- float(scenario.name[1:]))
- tester.assertAlmostEqual(scenario._x[scenario.name]['fixed'],
- 0.0)
- tester.assertAlmostEqual(scenario._x[scenario.name]['stale'],
- 0.0)
- tester.assertAlmostEqual(scenario._objective,
- 1.0 + float(scenario.name[1:]))
- tester.assertAlmostEqual(scenario._cost,
- 1.0 + float(scenario.name[1:]))
- tester.assertAlmostEqual(scenario._objective,
- results.objective[scenario.name])
- tester.assertAlmostEqual(scenario._cost,
- results.cost[scenario.name])
- tester.assertAlmostEqual(scenario._stage_costs['Stage1'],
- 1.0)
- tester.assertAlmostEqual(scenario._stage_costs['Stage2'],
- float(scenario.name[1:]))
- tester.assertEqual(scenario._stale['r'],
- set([]))
- tester.assertEqual(scenario._fixed['r'],
- set([]))
- tester.assertEqual(scenario._stale[scenario.name],
- set(['stale']))
- tester.assertEqual(scenario._fixed[scenario.name],
- set(['fixed']))
-
-class _SP_Bundles_Feasible(object):
-
- @staticmethod
- def get_factory():
- tree = networkx.DiGraph()
- tree.add_node("r",
- variables=["x"],
- cost="t0_cost")
- for i in range(3):
- tree.add_node("s"+str(i),
- variables=["Y","stale","fixed"],
- cost="t1_cost",
- bundle="b"+str(i))
- tree.add_edge("r", "s"+str(i), weight=1.0/3)
-
- model = pyo.ConcreteModel()
- model.x = pyo.Var()
- model.Y = pyo.Var([1])
- model.stale = pyo.Var(initialize=0.0)
- model.fixed = pyo.Var(initialize=0.0)
- model.fixed.fix()
- model.p = pyo.Param(mutable=True)
- model.t0_cost = pyo.Expression(expr=model.x)
- model.t1_cost = pyo.Expression(expr=model.Y[1])
- model.o = pyo.Objective(expr=model.t0_cost + model.t1_cost)
- model.c = pyo.ConstraintList()
- model.c.add(model.x >= 1)
- model.c.add(model.Y[1] >= model.p)
-
- def _create_model(scenario_name, node_names):
- m = model.clone()
- if scenario_name == "s0":
- m.p.value = 0.0
- elif scenario_name == "s1":
- m.p.value = 1.0
- else:
- assert(scenario_name == "s2")
- m.p.value = 2.0
- return m
-
- return ScenarioTreeInstanceFactory(
- model=_create_model,
- scenario_tree=tree)
-
- @staticmethod
- def validate_solve(tester, sp, results, names=None):
- if names is None:
- names = [_s.name for _s in sp.scenario_tree.bundles]
-
- tester.assertEqual(["s0","s1","s2"],
- sorted(s.name for s in \
- sp.scenario_tree.scenarios))
- tester.assertEqual(["b0","b1","b2"],
- sorted(b.name for b in \
- sp.scenario_tree.bundles))
- for bundle_name in names:
- bundle = sp.scenario_tree.get_bundle(bundle_name)
- assert len(bundle.scenario_names) == 1
- scenario_name = bundle.scenario_names[0]
- assert len(scenario_name) == len(bundle_name)
- assert scenario_name[0] == 's'
- assert bundle_name[0] == 'b'
- scenario = sp.scenario_tree.get_scenario(scenario_name)
- tester.assertEqual(str(results.solver_status[bundle.name]),
- "ok")
- tester.assertEqual(str(results.termination_condition[bundle.name]),
- "optimal")
- tester.assertEqual(len(scenario._x['r']), 1)
- tester.assertAlmostEqual(scenario._x['r']['x'], 1.0)
- tester.assertAlmostEqual(scenario._x[scenario.name]['Y:#1'],
- float(scenario.name[1:]))
- tester.assertAlmostEqual(scenario._x[scenario.name]['fixed'],
- 0.0)
- tester.assertAlmostEqual(scenario._x[scenario.name]['stale'],
- 0.0)
- tester.assertAlmostEqual(scenario._objective,
- 1.0 + float(scenario.name[1:]))
- tester.assertAlmostEqual(scenario._cost,
- 1.0 + float(scenario.name[1:]))
- tester.assertAlmostEqual(scenario._objective,
- results.objective[bundle.name])
- tester.assertAlmostEqual(scenario._cost,
- results.cost[bundle.name])
- tester.assertAlmostEqual(scenario._stage_costs['Stage1'],
- 1.0)
- tester.assertAlmostEqual(scenario._stage_costs['Stage2'],
- float(scenario.name[1:]))
- tester.assertEqual(scenario._stale['r'], set([]))
- tester.assertEqual(scenario._fixed['r'], set([]))
- tester.assertEqual(scenario._stale[scenario.name],
- set(['stale']))
- tester.assertEqual(scenario._fixed[scenario.name],
- set(['fixed']))
-
-class _SP_Bundles_Infeasible(object):
-
- @staticmethod
- def get_factory():
- tree = networkx.DiGraph()
- tree.add_node("r",
- variables=["x"],
- cost="t0_cost")
- for i in range(3):
- tree.add_node("s"+str(i),
- variables=["Y","stale","fixed"],
- cost="t1_cost",
- bundle="b"+str(i))
- tree.add_edge("r", "s"+str(i), weight=1.0/3)
-
- model = pyo.ConcreteModel()
- model.x = pyo.Var()
- model.Y = pyo.Var([1], bounds=(None, 1))
- model.stale = pyo.Var(initialize=0.0)
- model.fixed = pyo.Var(initialize=0.0)
- model.fixed.fix()
- model.p = pyo.Param(mutable=True)
- model.t0_cost = pyo.Expression(expr=model.x)
- model.t1_cost = pyo.Expression(expr=model.Y[1])
- model.o = pyo.Objective(expr=model.t0_cost + model.t1_cost)
- model.c = pyo.ConstraintList()
- model.c.add(model.x >= 1)
- model.c.add(model.Y[1] >= model.p)
-
- def _create_model(scenario_name, node_names):
- m = model.clone()
- if scenario_name == "s0":
- m.p.value = 0.0
- elif scenario_name == "s1":
- m.p.value = 1.0
- else:
- assert(scenario_name == "s2")
- m.p.value = 2.0
- return m
-
- return ScenarioTreeInstanceFactory(
- model=_create_model,
- scenario_tree=tree)
-
- @staticmethod
- def validate_solve(tester, sp, results, names=None):
- if names is None:
- names = [_s.name for _s in sp.scenario_tree.bundles]
-
- tester.assertEqual(["s0","s1","s2"],
- sorted(s.name for s in \
- sp.scenario_tree.scenarios))
- tester.assertEqual(["b0","b1","b2"],
- sorted(b.name for b in \
- sp.scenario_tree.bundles))
- for bundle_name in names:
- bundle = sp.scenario_tree.get_bundle(bundle_name)
- assert len(bundle.scenario_names) == 1
- scenario_name = bundle.scenario_names[0]
- assert len(scenario_name) == len(bundle_name)
- assert scenario_name[0] == 's'
- assert bundle_name[0] == 'b'
- scenario = sp.scenario_tree.get_scenario(scenario_name)
- if bundle.name == 'b2':
- tester.assertTrue(
- str(results.solver_status[bundle.name]) \
- in ("warning","ok"))
- tester.assertEqual(
- str(results.termination_condition[bundle.name]),
- "infeasible")
- tester.assertEqual(scenario._objective,
- None)
- tester.assertEqual(scenario._cost,
- None)
- tester.assertEqual(scenario._stage_costs['Stage1'],
- None)
- tester.assertEqual(scenario._stage_costs['Stage2'],
- None)
- tester.assertEqual(scenario._stale['r'],
- set([]))
- tester.assertEqual(scenario._fixed['r'],
- set([]))
- tester.assertEqual(scenario._stale[scenario.name],
- set([]))
- tester.assertEqual(scenario._fixed[scenario.name],
- set([]))
- else:
- assert bundle.name in ('b0', 'b1')
- tester.assertEqual(
- str(results.solver_status[bundle.name]),
- "ok")
- tester.assertEqual(
- str(results.termination_condition[bundle.name]),
- "optimal")
- tester.assertEqual(len(scenario._x['r']), 1)
- tester.assertAlmostEqual(scenario._x['r']['x'], 1.0)
- tester.assertAlmostEqual(scenario._x[scenario.name]['Y:#1'],
- float(scenario.name[1:]))
- tester.assertAlmostEqual(scenario._x[scenario.name]['fixed'],
- 0.0)
- tester.assertAlmostEqual(scenario._x[scenario.name]['stale'],
- 0.0)
- tester.assertAlmostEqual(scenario._objective,
- 1.0 + float(scenario.name[1:]))
- tester.assertAlmostEqual(scenario._cost,
- 1.0 + float(scenario.name[1:]))
- tester.assertAlmostEqual(scenario._objective,
- results.objective[bundle.name])
- tester.assertAlmostEqual(scenario._cost,
- results.cost[bundle.name])
- tester.assertAlmostEqual(scenario._stage_costs['Stage1'],
- 1.0)
- tester.assertAlmostEqual(scenario._stage_costs['Stage2'],
- float(scenario.name[1:]))
- tester.assertEqual(scenario._stale['r'],
- set([]))
- tester.assertEqual(scenario._fixed['r'],
- set([]))
- tester.assertEqual(scenario._stale[scenario.name],
- set(['stale']))
- tester.assertEqual(scenario._fixed[scenario.name],
- set(['fixed']))
-
-class _ScenarioTreeManagerSolverTesterBase(object):
-
- def test_solve_scenarios_optimal(self):
- problem = _SP_Feasible
- for names in [None,
- ['s0'],
- ['s1'],
- ['s2']]:
- with self._init(problem.get_factory()) as sp:
- with ScenarioTreeManagerSolverFactory(sp, _default_test_options) as manager:
- results = manager.solve_scenarios(check_status=False,
- scenarios=names)
- problem.validate_solve(self, sp, results, names=names)
- with self._init(problem.get_factory()) as sp:
- with ScenarioTreeManagerSolverFactory(sp, _default_test_options) as manager:
- results = manager.solve_subproblems(check_status=False,
- subproblems=names)
- problem.validate_solve(self, sp, results, names=names)
- with self._init(problem.get_factory()) as sp:
- with ScenarioTreeManagerSolverFactory(sp, _default_test_options) as manager:
- results = manager.solve_scenarios(check_status=True,
- scenarios=names)
- problem.validate_solve(self, sp, results, names=names)
- with self._init(problem.get_factory()) as sp:
- with ScenarioTreeManagerSolverFactory(sp, _default_test_options) as manager:
- job = manager.solve_scenarios(async_call=True,
- check_status=True,
- scenarios=names)
- results = job.complete()
- problem.validate_solve(self, sp, results, names=names)
- with self._init(problem.get_factory()) as sp:
- with ScenarioTreeManagerSolverFactory(sp, _default_test_options) as manager:
- job = manager.solve_scenarios(async_call=True,
- check_status=False,
- scenarios=names)
- results = job.complete()
- problem.validate_solve(self, sp, results, names=names)
- with self._init(problem.get_factory()) as sp:
- with ScenarioTreeManagerSolverFactory(sp, _default_test_options) as manager:
- with self.assertRaises(RuntimeError):
- manager.solve_bundles()
-
- def test_solve_scenarios_infeasible(self):
- problem = _SP_Infeasible
- with self._init(problem.get_factory()) as sp:
- with ScenarioTreeManagerSolverFactory(sp, _default_test_options) as manager:
- results = manager.solve_scenarios(check_status=False)
- problem.validate_solve(self, sp, results)
- with self._init(problem.get_factory()) as sp:
- with ScenarioTreeManagerSolverFactory(sp, _default_test_options) as manager:
- with self.assertRaises(PySPFailedSolveStatus):
- manager.solve_scenarios(check_status=True)
- with self._init(problem.get_factory()) as sp:
- with ScenarioTreeManagerSolverFactory(sp, _default_test_options) as manager:
- job = manager.solve_scenarios(async_call=True,
- check_status=True)
- with self.assertRaises(PySPFailedSolveStatus):
- job.complete()
- with self._init(problem.get_factory()) as sp:
- with ScenarioTreeManagerSolverFactory(sp, _default_test_options) as manager:
- job = manager.solve_scenarios(async_call=True,
- check_status=False)
- results = job.complete()
- problem.validate_solve(self, sp, results)
- with self._init(problem.get_factory()) as sp:
- with ScenarioTreeManagerSolverFactory(sp, _default_test_options) as manager:
- with self.assertRaises(RuntimeError):
- manager.solve_bundles()
-
- for names in [None,
- ['s0'],
- ['s1'],
- ['s2']]:
- with self._init(problem.get_factory()) as sp:
- with ScenarioTreeManagerSolverFactory(sp, _default_test_options) as manager:
- results = manager.solve_scenarios(check_status=False,
- scenarios=names)
- problem.validate_solve(self, sp, results, names=names)
- with self._init(problem.get_factory()) as sp:
- with ScenarioTreeManagerSolverFactory(sp, _default_test_options) as manager:
- job = manager.solve_scenarios(async_call=True,
- check_status=False,
- scenarios=names)
- results = job.complete()
- problem.validate_solve(self, sp, results, names=names)
-
- def test_solve_bundles_optimal(self):
- problem = _SP_Bundles_Feasible
- for names in [None,
- ['b0'],
- ['b1'],
- ['b2']]:
- with self._init(problem.get_factory()) as sp:
- with ScenarioTreeManagerSolverFactory(sp, _default_test_options) as manager:
- results = manager.solve_bundles(check_status=False,
- bundles=names)
- problem.validate_solve(self, sp, results, names=names)
- with self._init(problem.get_factory()) as sp:
- with ScenarioTreeManagerSolverFactory(sp, _default_test_options) as manager:
- results = manager.solve_subproblems(check_status=False,
- subproblems=names)
- problem.validate_solve(self, sp, results, names=names)
- with self._init(problem.get_factory()) as sp:
- with ScenarioTreeManagerSolverFactory(sp, _default_test_options) as manager:
- results = manager.solve_bundles(check_status=True,
- bundles=names)
- problem.validate_solve(self, sp, results, names=names)
- with self._init(problem.get_factory()) as sp:
- with ScenarioTreeManagerSolverFactory(sp, _default_test_options) as manager:
- job = manager.solve_bundles(async_call=True,
- check_status=True,
- bundles=names)
- results = job.complete()
- problem.validate_solve(self, sp, results, names=names)
- with self._init(problem.get_factory()) as sp:
- with ScenarioTreeManagerSolverFactory(sp, _default_test_options) as manager:
- job = manager.solve_bundles(async_call=True,
- check_status=False,
- bundles=names)
- results = job.complete()
- problem.validate_solve(self, sp, results, names=names)
-
- def test_solve_bundles_infeasible(self):
- problem = _SP_Bundles_Infeasible
- with self._init(problem.get_factory()) as sp:
- with ScenarioTreeManagerSolverFactory(sp, _default_test_options) as manager:
- results = manager.solve_bundles(check_status=False)
- problem.validate_solve(self, sp, results)
- with self._init(problem.get_factory()) as sp:
- with ScenarioTreeManagerSolverFactory(sp, _default_test_options) as manager:
- with self.assertRaises(PySPFailedSolveStatus):
- manager.solve_bundles(check_status=True)
- with self._init(problem.get_factory()) as sp:
- with ScenarioTreeManagerSolverFactory(sp, _default_test_options) as manager:
- job = manager.solve_bundles(async_call=True,
- check_status=True)
- with self.assertRaises(PySPFailedSolveStatus):
- job.complete()
- with self._init(problem.get_factory()) as sp:
- with ScenarioTreeManagerSolverFactory(sp, _default_test_options) as manager:
- job = manager.solve_bundles(async_call=True,
- check_status=False)
- results = job.complete()
- problem.validate_solve(self, sp, results)
- with self._init(problem.get_factory()) as sp:
- with ScenarioTreeManagerSolverFactory(sp, _default_test_options) as manager:
- with self.assertRaises(RuntimeError):
- manager.solve_bundles()
-
- for names in [None,
- ['b0'],
- ['b1'],
- ['b2']]:
- with self._init(problem.get_factory()) as sp:
- with ScenarioTreeManagerSolverFactory(sp, _default_test_options) as manager:
- results = manager.solve_bundles(check_status=False,
- bundles=names)
- problem.validate_solve(self, sp, results, names=names)
- with self._init(problem.get_factory()) as sp:
- with ScenarioTreeManagerSolverFactory(sp, _default_test_options) as manager:
- job = manager.solve_bundles(async_call=True,
- check_status=False,
- bundles=names)
- results = job.complete()
- problem.validate_solve(self, sp, results, names=names)
-#
-# create the actual testing classes
-#
-
-@unittest.skipIf(not has_networkx, "Networkx is not available")
-@unittest.skipIf(not has_dill, "Dill is not available")
-class TestScenarioTreeManagerSolverSerial(
- unittest.TestCase,
- _ScenarioTreeManagerSolverTesterBase):
-
- @classmethod
- def setUpClass(cls):
- if not solver['glpk','lp']:
- raise unittest.SkipTest(
- "The glpk solver is not available")
-
- @unittest.nottest
- def _init(self, factory):
- options = ScenarioTreeManagerClientSerial.register_options()
- sp = ScenarioTreeManagerClientSerial(
- options,
- factory=factory)
- sp.initialize()
- return sp
-
-@unittest.skipIf(not has_networkx, "Networkx is not available")
-@unittest.skipIf(not has_dill, "Dill is not available")
-@unittest.skipIf(not (using_pyro3 or using_pyro4), "Pyro or Pyro4 is not available")
-@unittest.category('parallel')
-class TestScenarioTreeManagerSolverPyro(
- unittest.TestCase,
- _ScenarioTreeManagerSolverTesterBase):
-
- @classmethod
- def setUpClass(cls):
- if not solver['glpk','lp']:
- raise unittest.SkipTest(
- "The glpk solver is not available")
-
- @unittest.nottest
- def _init(self, factory):
- _setUpPyro()
- [_poll(proc) for proc in _taskworker_processes]
- options = ScenarioTreeManagerClientPyro.register_options()
- options.pyro_port = _pyomo_ns_port
- options.pyro_required_scenariotreeservers = 3
- options.pyro_handshake_at_startup = True
- sp = ScenarioTreeManagerClientPyro(
- options,
- factory=factory)
- sp.initialize()
- return sp
-
-if __name__ == "__main__":
- unittest.main()
diff --git a/pyomo/pysp/tests/test_benders.py b/pyomo/pysp/tests/test_benders.py
deleted file mode 100644
index d4d8b8b5f1d..00000000000
--- a/pyomo/pysp/tests/test_benders.py
+++ /dev/null
@@ -1,71 +0,0 @@
-# ___________________________________________________________________________
-#
-# Pyomo: Python Optimization Modeling Objects
-# Copyright 2017 National Technology and Engineering Solutions of Sandia, LLC
-# Under the terms of Contract DE-NA0003525 with National Technology and
-# Engineering Solutions of Sandia, LLC, the U.S. Government retains certain
-# rights in this software.
-# This software is distributed under the 3-clause BSD License.
-# ___________________________________________________________________________
-#
-# Get the directory where this script is defined, and where the baseline
-# files are located.
-#
-
-import os
-import sys
-from os.path import abspath, dirname
-
-this_test_directory = dirname(abspath(__file__))+os.sep
-
-benders_example_dir = \
- dirname(dirname(dirname(dirname(abspath(__file__))))) + \
- os.sep+"examples"+os.sep+"pyomo"+os.sep+"benders"+os.sep
-
-#
-# Import the testing packages
-#
-import pyutilib.th as unittest
-
-def filter_fn(line):
- tmp = line.strip()
- return tmp.startswith('WARNING') and 'CBC' in tmp
-
-solver = None
-class TestBenders(unittest.TestCase):
-
- @classmethod
- def setUpClass(cls):
- global solvers
- import pyomo.environ
- solvers = pyomo.opt.check_available_solvers('cplex')
-
- def setUp(self):
- if os.path.exists(this_test_directory+'benders_cplex.out'):
- os.remove(this_test_directory+'benders_cplex.out')
- # IMPT: This step is key, as Python keys off the name of the
- # module, not the location. So, different reference
- # models in different directories won't be detected. If
- # you don't do this, the symptom is a model that doesn't
- # have the attributes that the data file expects.
- if "ReferenceModel" in sys.modules:
- del sys.modules["ReferenceModel"]
-
- def test_benders_cplex(self):
- import subprocess
- if not 'cplex' in solvers:
- self.skipTest("The 'cplex' executable is not available")
- out_file = open(this_test_directory+"benders_cplex.out",'w')
- os.chdir(benders_example_dir)
- subprocess.Popen([sys.executable,
- benders_example_dir+"runbenders"],
- stdout=out_file).wait()
- os.chdir(this_test_directory)
- self.assertFileEqualsBaseline(
- this_test_directory+"benders_cplex.out",
- this_test_directory+"benders_cplex.baseline",
- tolerance=1e-2,
- filter=filter_fn)
-
-if __name__ == "__main__":
- unittest.main()
diff --git a/pyomo/pysp/tests/unit/__init__.py b/pyomo/pysp/tests/unit/__init__.py
deleted file mode 100644
index cec00265494..00000000000
--- a/pyomo/pysp/tests/unit/__init__.py
+++ /dev/null
@@ -1,12 +0,0 @@
-# ___________________________________________________________________________
-#
-# Pyomo: Python Optimization Modeling Objects
-# Copyright 2017 National Technology and Engineering Solutions of Sandia, LLC
-# Under the terms of Contract DE-NA0003525 with National Technology and
-# Engineering Solutions of Sandia, LLC, the U.S. Government retains certain
-# rights in this software.
-# This software is distributed under the 3-clause BSD License.
-# ___________________________________________________________________________
-#
-# Unit tests for PySP
-#
diff --git a/pyomo/pysp/tests/unit/baselines/cc_ef_networkflow1ef3_cplex.baseline-a b/pyomo/pysp/tests/unit/baselines/cc_ef_networkflow1ef3_cplex.baseline-a
deleted file mode 100644
index 38225ce21ab..00000000000
--- a/pyomo/pysp/tests/unit/baselines/cc_ef_networkflow1ef3_cplex.baseline-a
+++ /dev/null
@@ -1,1001 +0,0 @@
-Initializing extensive form algorithm for stochastic programming problems.
-EF solve completed and solution status is optimal
-EF solve termination condition is optimal
-EF objective: 111983.43000
-EF gap: 0.00000
-EF bound: 111983.43000
-
-Extensive form solution:
-----------------------------------------------------
-Tree Nodes:
-
- Name=LeafNode1
- Stage=SecondStage
- Parent=RootNode
- Variables:
- UnmetDemand[A,B]=0.694
- UnmetDemand[A,C]=0.832
- UnmetDemand[A,D]=0.762
- UnmetDemand[A,E]=0.804
- UnmetDemand[A,F]=0.754
- UnmetDemand[A,G]=0.768
- UnmetDemand[A,H]=0.804
- UnmetDemand[A,I]=0.76
- UnmetDemand[A,J]=0.768
- UnmetDemand[B,A]=0.694
- UnmetDemand[B,C]=0.842
- UnmetDemand[B,D]=0.836
- UnmetDemand[B,E]=0.788
- UnmetDemand[B,F]=0.828
- UnmetDemand[B,G]=0.814
- UnmetDemand[B,H]=0.738
- UnmetDemand[B,I]=0.7
- UnmetDemand[B,J]=0.792
- UnmetDemand[C,A]=0.832
- UnmetDemand[C,B]=0.842
- UnmetDemand[C,D]=0.858
- UnmetDemand[C,E]=0.854
- UnmetDemand[C,F]=0.852
- UnmetDemand[C,G]=0.818
- UnmetDemand[C,H]=0.746
- UnmetDemand[C,I]=0.728
- UnmetDemand[C,J]=0.776
- UnmetDemand[D,A]=0.762
- UnmetDemand[D,B]=0.836
- UnmetDemand[D,C]=0.858
- UnmetDemand[D,E]=0.732
- UnmetDemand[D,F]=0.79
- UnmetDemand[D,G]=0.708
- UnmetDemand[D,H]=0.814
- UnmetDemand[D,I]=0.728
- UnmetDemand[D,J]=0.842
- UnmetDemand[E,A]=0.804
- UnmetDemand[E,B]=0.788
- UnmetDemand[E,C]=0.854
- UnmetDemand[E,D]=0.732
- UnmetDemand[E,G]=0.828
- UnmetDemand[E,H]=0.784
- UnmetDemand[E,I]=0.714
- UnmetDemand[E,J]=0.754
- UnmetDemand[F,A]=0.754
- UnmetDemand[F,B]=0.828
- UnmetDemand[F,C]=0.852
- UnmetDemand[F,D]=0.79
- UnmetDemand[F,G]=0.738
- UnmetDemand[F,H]=0.724
- UnmetDemand[F,I]=0.752
- UnmetDemand[F,J]=0.746
- UnmetDemand[G,A]=0.768
- UnmetDemand[G,B]=0.814
- UnmetDemand[G,C]=0.818
- UnmetDemand[G,D]=0.708
- UnmetDemand[G,E]=0.828
- UnmetDemand[G,F]=0.738
- UnmetDemand[G,H]=0.82
- UnmetDemand[G,I]=0.65
- UnmetDemand[G,J]=0.816
- UnmetDemand[H,A]=0.804
- UnmetDemand[H,B]=0.738
- UnmetDemand[H,C]=0.746
- UnmetDemand[H,D]=0.814
- UnmetDemand[H,E]=0.784
- UnmetDemand[H,F]=0.724
- UnmetDemand[H,G]=0.82
- UnmetDemand[H,I]=0.71
- UnmetDemand[H,J]=0.764
- UnmetDemand[I,A]=0.76
- UnmetDemand[I,B]=0.7
- UnmetDemand[I,C]=0.728
- UnmetDemand[I,D]=0.728
- UnmetDemand[I,E]=0.714
- UnmetDemand[I,F]=0.752
- UnmetDemand[I,G]=0.65
- UnmetDemand[I,H]=0.71
- UnmetDemand[I,J]=0.838
- UnmetDemand[J,A]=0.768
- UnmetDemand[J,B]=0.792
- UnmetDemand[J,C]=0.776
- UnmetDemand[J,D]=0.842
- UnmetDemand[J,E]=0.754
- UnmetDemand[J,F]=0.746
- UnmetDemand[J,G]=0.816
- UnmetDemand[J,H]=0.764
- UnmetDemand[J,I]=0.838
- y[A,B,A,B]=2.776
- y[A,C,A,C]=3.328
- y[A,D,A,B]=0.219
- y[A,D,A,C]=2.829
- y[A,D,B,E]=0.219
- y[A,D,C,D]=2.829
- y[A,D,E,D]=0.219
- y[A,E,A,B]=3.216
- y[A,E,B,E]=3.216
- y[A,F,A,B]=3.016
- y[A,F,B,E]=3.016
- y[A,F,E,F]=3.016
- y[A,G,A,B]=3.072
- y[A,G,B,E]=3.072
- y[A,G,E,F]=3.072
- y[A,G,F,G]=3.072
- y[A,H,A,B]=3.216
- y[A,H,B,E]=3.216
- y[A,H,E,F]=3.216
- y[A,H,F,H]=3.216
- y[A,I,A,B]=3.04
- y[A,I,B,E]=3.04
- y[A,I,E,F]=3.04
- y[A,I,F,H]=3.04
- y[A,I,H,I]=3.04
- y[A,J,A,B]=3.072
- y[A,J,B,E]=3.072
- y[A,J,E,F]=3.072
- y[A,J,F,G]=3.072
- y[A,J,G,J]=3.072
- y[B,A,B,A]=2.776
- y[B,C,A,C]=3.368
- y[B,C,B,A]=3.368
- y[B,D,B,E]=3.344
- y[B,D,E,D]=3.344
- y[B,E,B,E]=3.152
- y[B,F,B,E]=3.312
- y[B,F,E,F]=3.312
- y[B,G,B,E]=3.256
- y[B,G,E,F]=3.256
- y[B,G,F,G]=3.256
- y[B,H,B,E]=2.952
- y[B,H,E,F]=2.952
- y[B,H,F,H]=2.952
- y[B,I,B,E]=2.8
- y[B,I,E,F]=2.8
- y[B,I,F,H]=2.8
- y[B,I,H,I]=2.8
- y[B,J,B,E]=3.168
- y[B,J,E,F]=3.168
- y[B,J,F,G]=3.168
- y[B,J,G,J]=3.168
- y[C,A,B,A]=0.219
- y[C,A,C,A]=3.109
- y[C,A,C,D]=0.219
- y[C,A,D,E]=0.219
- y[C,A,E,B]=0.219
- y[C,B,A,B]=3.368
- y[C,B,C,A]=3.368
- y[C,D,C,D]=3.432
- y[C,E,C,D]=3.416
- y[C,E,D,E]=3.416
- y[C,F,C,D]=3.408
- y[C,F,D,E]=3.408
- y[C,F,E,F]=3.408
- y[C,G,C,D]=3.272
- y[C,G,D,E]=3.272
- y[C,G,E,F]=3.272
- y[C,G,F,G]=3.272
- y[C,H,C,D]=2.984
- y[C,H,D,E]=2.984
- y[C,H,E,F]=2.984
- y[C,H,F,H]=2.984
- y[C,I,C,D]=2.912
- y[C,I,D,E]=2.912
- y[C,I,E,F]=2.912
- y[C,I,F,H]=2.912
- y[C,I,H,I]=2.912
- y[C,J,C,D]=3.104
- y[C,J,D,E]=3.104
- y[C,J,E,F]=3.104
- y[C,J,F,G]=3.104
- y[C,J,G,J]=3.104
- y[D,A,C,A]=3.048
- y[D,A,D,C]=3.048
- y[D,B,D,E]=3.344
- y[D,B,E,B]=3.344
- y[D,C,D,C]=3.432
- y[D,E,D,E]=2.928
- y[D,F,D,E]=3.16
- y[D,F,E,F]=3.16
- y[D,G,D,E]=2.832
- y[D,G,E,F]=2.832
- y[D,G,F,G]=2.832
- y[D,H,D,E]=3.256
- y[D,H,E,F]=3.256
- y[D,H,F,H]=3.256
- y[D,I,D,E]=2.912
- y[D,I,E,F]=2.912
- y[D,I,F,H]=2.912
- y[D,I,H,I]=2.912
- y[D,J,D,E]=3.368
- y[D,J,E,F]=3.368
- y[D,J,F,G]=3.368
- y[D,J,G,J]=3.368
- y[E,A,B,A]=3.216
- y[E,A,E,B]=3.216
- y[E,B,E,B]=3.152
- y[E,C,D,C]=3.416
- y[E,C,E,D]=3.416
- y[E,D,E,D]=2.928
- y[E,F,E,F]=4.04
- y[E,G,E,F]=3.312
- y[E,G,F,G]=3.312
- y[E,H,E,F]=3.136
- y[E,H,F,H]=3.136
- y[E,I,E,F]=2.856
- y[E,I,F,H]=2.856
- y[E,I,H,I]=2.856
- y[E,J,E,F]=3.016
- y[E,J,F,G]=0.888
- y[E,J,F,H]=2.128
- y[E,J,G,J]=0.888
- y[E,J,H,I]=2.128
- y[E,J,I,J]=2.128
- y[F,A,B,A]=3.016
- y[F,A,E,B]=3.016
- y[F,A,F,E]=3.016
- y[F,B,E,B]=3.312
- y[F,B,F,E]=3.312
- y[F,C,D,C]=3.408
- y[F,C,E,D]=3.408
- y[F,C,F,E]=3.408
- y[F,D,E,D]=3.16
- y[F,D,F,E]=3.16
- y[F,E,F,E]=4.04
- y[F,G,F,G]=2.952
- y[F,H,F,H]=2.896
- y[F,I,F,H]=3.008
- y[F,I,H,I]=3.008
- y[F,J,F,G]=2.984
- y[F,J,G,J]=2.984
- y[G,A,B,A]=3.072
- y[G,A,E,B]=3.072
- y[G,A,F,E]=3.072
- y[G,A,G,F]=3.072
- y[G,B,E,B]=3.256
- y[G,B,F,E]=3.256
- y[G,B,G,F]=3.256
- y[G,C,D,C]=3.272
- y[G,C,E,D]=3.272
- y[G,C,F,E]=3.272
- y[G,C,G,F]=3.272
- y[G,D,E,D]=2.832
- y[G,D,F,E]=2.832
- y[G,D,G,F]=2.832
- y[G,E,F,E]=3.312
- y[G,E,G,F]=3.312
- y[G,F,G,F]=2.952
- y[G,H,F,H]=3.28
- y[G,H,G,F]=3.28
- y[G,I,G,J]=2.6
- y[G,I,J,I]=2.6
- y[G,J,G,J]=3.264
- y[H,A,B,A]=3.216
- y[H,A,E,B]=3.216
- y[H,A,F,E]=3.216
- y[H,A,H,F]=3.216
- y[H,B,E,B]=2.952
- y[H,B,F,E]=2.952
- y[H,B,H,F]=2.952
- y[H,C,D,C]=2.984
- y[H,C,E,D]=2.984
- y[H,C,F,E]=2.984
- y[H,C,H,F]=2.984
- y[H,D,E,D]=3.256
- y[H,D,F,E]=3.256
- y[H,D,H,F]=3.256
- y[H,E,F,E]=3.136
- y[H,E,H,F]=3.136
- y[H,F,H,F]=2.896
- y[H,G,F,G]=3.28
- y[H,G,H,F]=3.28
- y[H,I,H,I]=2.84
- y[H,J,H,I]=3.056
- y[H,J,I,J]=3.056
- y[I,A,B,A]=3.04
- y[I,A,E,B]=3.04
- y[I,A,F,E]=3.04
- y[I,A,H,F]=3.04
- y[I,A,I,H]=3.04
- y[I,B,E,B]=2.8
- y[I,B,F,E]=2.8
- y[I,B,H,F]=2.8
- y[I,B,I,H]=2.8
- y[I,C,D,C]=2.912
- y[I,C,E,D]=2.912
- y[I,C,F,E]=2.912
- y[I,C,H,F]=2.912
- y[I,C,I,H]=2.912
- y[I,D,E,D]=2.912
- y[I,D,F,E]=2.912
- y[I,D,H,F]=2.912
- y[I,D,I,H]=2.912
- y[I,E,F,E]=2.856
- y[I,E,H,F]=2.856
- y[I,E,I,H]=2.856
- y[I,F,H,F]=3.008
- y[I,F,I,H]=3.008
- y[I,G,F,G]=2.6
- y[I,G,H,F]=2.6
- y[I,G,I,H]=2.6
- y[I,H,I,H]=2.84
- y[I,J,I,J]=3.352
- y[J,A,B,A]=3.072
- y[J,A,E,B]=3.072
- y[J,A,F,E]=3.072
- y[J,A,G,F]=3.072
- y[J,A,J,G]=3.072
- y[J,B,E,B]=3.168
- y[J,B,F,E]=3.168
- y[J,B,G,F]=3.168
- y[J,B,J,G]=3.168
- y[J,C,D,C]=3.104
- y[J,C,E,D]=3.104
- y[J,C,F,E]=3.104
- y[J,C,G,F]=3.104
- y[J,C,J,G]=3.104
- y[J,D,E,D]=3.368
- y[J,D,F,E]=3.368
- y[J,D,G,F]=3.368
- y[J,D,J,G]=3.368
- y[J,E,F,E]=3.016
- y[J,E,G,F]=3.016
- y[J,E,J,G]=3.016
- y[J,F,G,F]=2.984
- y[J,F,J,G]=2.984
- y[J,G,J,G]=3.264
- y[J,H,F,H]=0.284
- y[J,H,G,F]=0.284
- y[J,H,I,H]=2.772
- y[J,H,J,G]=0.284
- y[J,H,J,I]=2.772
- y[J,I,J,I]=3.352
-
- Name=LeafNode2
- Stage=SecondStage
- Parent=RootNode
- Variables:
- delta=1.0
- y[A,A,I,J]=0.044
- y[A,A,J,I]=0.044
- y[A,B,A,B]=3.41
- y[A,C,A,C]=3.24
- y[A,D,A,C]=3.22
- y[A,D,C,D]=3.22
- y[A,E,A,B]=2.8
- y[A,E,B,E]=2.8
- y[A,F,A,B]=3.06
- y[A,F,B,E]=3.06
- y[A,F,E,F]=3.06
- y[A,G,A,B]=3.32
- y[A,G,B,E]=3.32
- y[A,G,E,F]=3.32
- y[A,G,F,G]=3.32
- y[A,H,A,B]=3.0
- y[A,H,B,E]=3.0
- y[A,H,E,F]=3.0
- y[A,H,F,H]=3.0
- y[A,I,A,B]=3.53
- y[A,I,B,E]=3.53
- y[A,I,E,F]=3.53
- y[A,I,F,H]=3.53
- y[A,I,H,I]=3.53
- y[A,J,A,B]=3.35
- y[A,J,B,E]=3.35
- y[A,J,E,F]=3.35
- y[A,J,F,G]=3.35
- y[A,J,G,J]=3.35
- y[B,A,B,A]=3.41
- y[B,B,I,J]=0.044
- y[B,B,J,I]=0.044
- y[B,C,A,C]=3.065
- y[B,C,B,A]=3.065
- y[B,C,B,E]=0.085
- y[B,C,D,C]=0.085
- y[B,C,E,D]=0.085
- y[B,D,B,E]=3.5
- y[B,D,E,D]=3.5
- y[B,E,B,E]=2.98
- y[B,F,B,E]=3.19
- y[B,F,E,F]=3.19
- y[B,G,B,E]=3.14
- y[B,G,E,F]=3.14
- y[B,G,F,G]=3.14
- y[B,H,B,E]=3.12
- y[B,H,E,F]=3.12
- y[B,H,F,H]=3.12
- y[B,I,B,E]=3.49
- y[B,I,E,F]=3.49
- y[B,I,F,H]=3.49
- y[B,I,H,I]=3.49
- y[B,J,B,E]=3.2
- y[B,J,E,F]=3.2
- y[B,J,F,G]=3.2
- y[B,J,G,J]=3.2
- y[C,A,C,A]=3.24
- y[C,B,A,B]=3.065
- y[C,B,C,A]=3.065
- y[C,B,C,D]=0.085
- y[C,B,D,E]=0.085
- y[C,B,E,B]=0.085
- y[C,C,I,J]=0.044
- y[C,C,J,I]=0.044
- y[C,D,C,D]=3.01
- y[C,E,C,D]=3.13
- y[C,E,D,E]=3.13
- y[C,F,C,D]=3.24
- y[C,F,D,E]=3.24
- y[C,F,E,F]=3.24
- y[C,G,C,D]=3.08
- y[C,G,D,E]=3.08
- y[C,G,E,F]=3.08
- y[C,G,F,G]=3.08
- y[C,H,C,D]=3.59
- y[C,H,D,E]=3.59
- y[C,H,E,F]=3.59
- y[C,H,F,H]=4.22
- y[C,H,H,F]=0.63
- y[C,I,C,D]=3.05
- y[C,I,D,E]=3.05
- y[C,I,E,F]=3.05
- y[C,I,F,H]=3.05
- y[C,I,H,I]=3.05
- y[C,J,C,D]=3.19
- y[C,J,D,E]=3.19
- y[C,J,E,F]=3.19
- y[C,J,F,G]=3.19
- y[C,J,G,J]=3.19
- y[D,A,C,A]=3.22
- y[D,A,D,C]=3.22
- y[D,B,D,E]=3.5
- y[D,B,E,B]=3.5
- y[D,C,D,C]=3.01
- y[D,D,I,J]=0.044
- y[D,D,J,I]=0.044
- y[D,E,D,E]=3.35
- y[D,F,D,E]=2.97
- y[D,F,E,F]=2.97
- y[D,G,D,E]=3.18
- y[D,G,E,F]=3.18
- y[D,G,F,G]=3.18
- y[D,H,D,E]=3.17
- y[D,H,E,F]=3.17
- y[D,H,F,H]=3.17
- y[D,I,D,E]=2.9
- y[D,I,E,F]=2.9
- y[D,I,F,G]=0.02
- y[D,I,F,H]=2.88
- y[D,I,G,J]=0.02
- y[D,I,H,I]=2.88
- y[D,I,J,I]=0.02
- y[D,J,D,E]=3.12
- y[D,J,E,F]=3.12
- y[D,J,F,G]=3.12
- y[D,J,G,J]=3.12
- y[E,A,B,A]=2.8
- y[E,A,E,B]=2.8
- y[E,B,E,B]=2.98
- y[E,C,D,C]=3.13
- y[E,C,E,D]=3.13
- y[E,D,E,D]=3.35
- y[E,E,I,J]=0.044
- y[E,E,J,I]=0.044
- y[E,F,E,F]=3.17
- y[E,G,E,F]=3.12
- y[E,G,F,G]=3.12
- y[E,H,E,F]=3.27
- y[E,H,F,H]=3.27
- y[E,I,E,F]=3.14
- y[E,I,F,H]=3.14
- y[E,I,H,I]=3.14
- y[E,J,E,F]=3.16
- y[E,J,F,G]=3.16
- y[E,J,G,J]=3.16
- y[F,A,B,A]=3.06
- y[F,A,E,B]=3.06
- y[F,A,F,E]=3.06
- y[F,B,E,B]=3.19
- y[F,B,F,E]=3.19
- y[F,C,D,C]=3.24
- y[F,C,E,D]=3.24
- y[F,C,F,E]=3.24
- y[F,D,E,D]=2.97
- y[F,D,F,E]=2.97
- y[F,E,F,E]=3.17
- y[F,F,I,J]=0.044
- y[F,F,J,I]=0.044
- y[F,G,F,G]=3.01
- y[F,H,F,H]=3.21
- y[F,I,F,H]=2.87
- y[F,I,H,I]=2.87
- y[F,J,F,G]=3.25
- y[F,J,G,J]=3.25
- y[G,A,B,A]=3.32
- y[G,A,E,B]=3.32
- y[G,A,F,E]=3.32
- y[G,A,G,F]=3.32
- y[G,B,E,B]=3.14
- y[G,B,F,E]=3.14
- y[G,B,G,F]=3.14
- y[G,C,D,C]=3.08
- y[G,C,E,D]=3.08
- y[G,C,F,E]=3.08
- y[G,C,G,F]=3.08
- y[G,D,E,D]=3.18
- y[G,D,F,E]=3.18
- y[G,D,G,F]=3.18
- y[G,E,F,E]=3.12
- y[G,E,G,F]=3.12
- y[G,F,G,F]=3.01
- y[G,G,I,J]=0.044
- y[G,G,J,I]=0.044
- y[G,H,F,H]=3.02
- y[G,H,G,F]=3.02
- y[G,I,F,H]=0.39
- y[G,I,G,F]=0.39
- y[G,I,G,J]=2.56
- y[G,I,H,I]=0.39
- y[G,I,J,I]=2.56
- y[G,J,G,J]=3.18
- y[H,A,B,A]=3.0
- y[H,A,E,B]=3.0
- y[H,A,F,E]=3.0
- y[H,A,H,F]=3.0
- y[H,B,E,B]=3.12
- y[H,B,F,E]=3.12
- y[H,B,H,F]=3.12
- y[H,C,D,C]=3.59
- y[H,C,E,D]=3.59
- y[H,C,F,E]=3.59
- y[H,C,H,F]=3.59
- y[H,D,E,D]=3.17
- y[H,D,F,E]=3.17
- y[H,D,H,F]=3.17
- y[H,E,F,E]=3.27
- y[H,E,H,F]=3.27
- y[H,F,H,F]=3.21
- y[H,G,F,G]=3.02
- y[H,G,H,F]=3.02
- y[H,H,I,J]=0.044
- y[H,H,J,I]=0.044
- y[H,I,H,I]=3.37
- y[H,J,H,I]=3.02
- y[H,J,I,J]=3.02
- y[I,A,B,A]=3.53
- y[I,A,E,B]=3.53
- y[I,A,F,E]=3.53
- y[I,A,H,F]=3.53
- y[I,A,I,H]=3.53
- y[I,B,E,B]=3.49
- y[I,B,F,E]=3.49
- y[I,B,H,F]=3.49
- y[I,B,I,H]=3.49
- y[I,C,D,C]=3.05
- y[I,C,E,D]=3.05
- y[I,C,F,E]=3.05
- y[I,C,H,F]=3.05
- y[I,C,I,H]=3.05
- y[I,D,E,D]=2.9
- y[I,D,F,E]=2.9
- y[I,D,H,F]=2.9
- y[I,D,I,H]=2.9
- y[I,E,F,E]=3.14
- y[I,E,H,F]=3.14
- y[I,E,I,H]=3.14
- y[I,F,H,F]=2.87
- y[I,F,I,H]=2.87
- y[I,G,I,J]=2.95
- y[I,G,J,G]=2.95
- y[I,H,I,H]=3.37
- y[I,I,I,J]=0.044
- y[I,I,J,I]=0.044
- y[I,J,I,J]=3.1
- y[J,A,B,A]=3.35
- y[J,A,E,B]=3.35
- y[J,A,F,E]=3.35
- y[J,A,G,F]=3.35
- y[J,A,J,G]=3.35
- y[J,B,E,B]=3.2
- y[J,B,F,E]=3.2
- y[J,B,G,F]=3.2
- y[J,B,J,G]=3.2
- y[J,C,D,C]=3.19
- y[J,C,E,D]=3.19
- y[J,C,F,E]=3.19
- y[J,C,G,F]=3.19
- y[J,C,J,G]=3.19
- y[J,D,E,D]=3.12
- y[J,D,F,E]=3.12
- y[J,D,G,F]=3.12
- y[J,D,J,G]=3.12
- y[J,E,F,E]=3.16
- y[J,E,G,F]=3.16
- y[J,E,J,G]=3.16
- y[J,F,G,F]=2.88
- y[J,F,H,F]=0.37
- y[J,F,I,H]=0.37
- y[J,F,J,G]=2.88
- y[J,F,J,I]=0.37
- y[J,G,J,G]=3.18
- y[J,H,I,H]=3.02
- y[J,H,J,I]=3.02
- y[J,I,J,I]=3.1
- y[J,J,I,J]=0.044
- y[J,J,J,I]=0.044
-
- Name=LeafNode3
- Stage=SecondStage
- Parent=RootNode
- Variables:
- delta=1.0
- y[A,B,A,B]=2.66
- y[A,C,A,C]=3.06
- y[A,D,A,C]=2.77
- y[A,D,C,D]=2.77
- y[A,E,A,B]=2.725
- y[A,E,A,C]=0.335
- y[A,E,B,E]=2.725
- y[A,E,C,D]=0.335
- y[A,E,D,E]=0.335
- y[A,F,A,B]=3.17
- y[A,F,B,E]=3.17
- y[A,F,E,F]=3.17
- y[A,G,A,B]=3.61
- y[A,G,B,E]=3.61
- y[A,G,E,F]=3.61
- y[A,G,F,G]=3.61
- y[A,H,A,B]=3.69
- y[A,H,B,E]=3.69
- y[A,H,E,F]=3.69
- y[A,H,F,H]=3.69
- y[A,I,A,B]=3.41
- y[A,I,B,E]=3.41
- y[A,I,E,F]=3.41
- y[A,I,F,H]=3.41
- y[A,I,H,I]=3.41
- y[A,J,A,B]=3.12
- y[A,J,B,E]=3.12
- y[A,J,E,F]=3.12
- y[A,J,F,G]=3.12
- y[A,J,G,J]=3.12
- y[B,A,B,A]=2.66
- y[B,C,A,C]=2.86
- y[B,C,B,A]=2.86
- y[B,D,B,E]=3.34
- y[B,D,E,D]=3.34
- y[B,E,B,E]=3.23
- y[B,F,B,E]=3.34
- y[B,F,E,F]=3.34
- y[B,G,B,E]=2.85
- y[B,G,E,F]=2.85
- y[B,G,F,G]=2.85
- y[B,H,B,E]=3.06
- y[B,H,E,F]=3.06
- y[B,H,F,H]=3.06
- y[B,I,B,E]=3.16
- y[B,I,E,F]=3.16
- y[B,I,F,H]=3.16
- y[B,I,H,I]=3.16
- y[B,J,B,E]=3.06
- y[B,J,E,F]=3.06
- y[B,J,F,G]=3.06
- y[B,J,G,J]=3.06
- y[C,A,C,A]=3.06
- y[C,B,A,B]=2.86
- y[C,B,C,A]=2.86
- y[C,D,C,D]=3.18
- y[C,E,C,D]=3.46
- y[C,E,D,E]=3.46
- y[C,F,C,D]=3.28
- y[C,F,D,E]=3.28
- y[C,F,E,F]=3.28
- y[C,G,C,D]=2.95
- y[C,G,D,E]=2.95
- y[C,G,E,F]=2.95
- y[C,G,F,G]=2.95
- y[C,H,C,D]=3.18
- y[C,H,D,E]=3.18
- y[C,H,E,F]=3.18
- y[C,H,F,H]=3.18
- y[C,I,C,D]=3.4
- y[C,I,D,E]=3.4
- y[C,I,E,F]=3.4
- y[C,I,F,H]=3.4
- y[C,I,H,I]=3.4
- y[C,J,C,D]=3.04
- y[C,J,D,E]=3.04
- y[C,J,E,F]=3.04
- y[C,J,F,G]=3.04
- y[C,J,G,J]=3.04
- y[D,A,C,A]=2.77
- y[D,A,D,C]=2.77
- y[D,B,A,B]=0.29
- y[D,B,C,A]=0.29
- y[D,B,D,C]=0.29
- y[D,B,D,E]=3.05
- y[D,B,E,B]=3.05
- y[D,C,D,C]=3.18
- y[D,E,D,E]=2.86
- y[D,F,D,E]=3.15
- y[D,F,E,F]=3.15
- y[D,G,D,E]=3.61
- y[D,G,E,F]=3.61
- y[D,G,F,G]=3.61
- y[D,H,D,E]=2.88
- y[D,H,E,F]=2.88
- y[D,H,F,H]=2.88
- y[D,I,D,E]=3.44
- y[D,I,E,F]=3.44
- y[D,I,F,H]=3.44
- y[D,I,H,I]=3.44
- y[D,J,D,E]=2.86
- y[D,J,E,F]=2.86
- y[D,J,F,G]=2.86
- y[D,J,G,J]=2.86
- y[E,A,B,A]=3.015
- y[E,A,C,A]=0.045
- y[E,A,D,C]=0.045
- y[E,A,E,B]=3.015
- y[E,A,E,D]=0.045
- y[E,B,E,B]=3.23
- y[E,C,D,C]=3.46
- y[E,C,E,D]=3.46
- y[E,D,E,D]=2.86
- y[E,F,E,F]=3.11
- y[E,G,E,F]=3.02
- y[E,G,F,G]=3.02
- y[E,H,E,F]=3.5
- y[E,H,F,H]=3.5
- y[E,I,E,F]=3.67
- y[E,I,F,H]=3.67
- y[E,I,H,I]=3.67
- y[E,J,E,F]=3.3
- y[E,J,F,G]=3.3
- y[E,J,G,J]=3.3
- y[F,A,B,A]=3.17
- y[F,A,E,B]=3.17
- y[F,A,F,E]=3.17
- y[F,B,E,B]=3.34
- y[F,B,F,E]=3.34
- y[F,C,D,C]=3.28
- y[F,C,E,D]=3.28
- y[F,C,F,E]=3.28
- y[F,D,E,D]=3.15
- y[F,D,F,E]=3.15
- y[F,E,F,E]=3.11
- y[F,G,F,G]=3.25
- y[F,H,F,H]=3.13
- y[F,I,F,H]=2.73
- y[F,I,H,I]=2.73
- y[F,J,F,G]=3.38
- y[F,J,G,J]=3.38
- y[G,A,B,A]=3.61
- y[G,A,E,B]=3.61
- y[G,A,F,E]=3.61
- y[G,A,G,F]=3.61
- y[G,B,E,B]=2.85
- y[G,B,F,E]=2.85
- y[G,B,G,F]=2.85
- y[G,C,D,C]=2.95
- y[G,C,E,D]=2.95
- y[G,C,F,E]=2.95
- y[G,C,G,F]=2.95
- y[G,D,E,D]=3.61
- y[G,D,F,E]=3.61
- y[G,D,G,F]=3.61
- y[G,E,F,E]=3.02
- y[G,E,G,F]=3.02
- y[G,F,G,F]=3.25
- y[G,H,F,H]=3.11
- y[G,H,G,F]=3.11
- y[G,I,G,J]=3.32
- y[G,I,J,I]=3.32
- y[G,J,G,J]=3.67
- y[H,A,B,A]=3.69
- y[H,A,E,B]=3.69
- y[H,A,F,E]=3.69
- y[H,A,H,F]=3.69
- y[H,B,E,B]=3.06
- y[H,B,F,E]=3.06
- y[H,B,H,F]=3.06
- y[H,C,D,C]=3.18
- y[H,C,E,D]=3.18
- y[H,C,F,E]=3.18
- y[H,C,H,F]=3.18
- y[H,D,E,D]=2.88
- y[H,D,F,E]=2.88
- y[H,D,H,F]=2.88
- y[H,E,F,E]=3.5
- y[H,E,H,F]=3.5
- y[H,F,H,F]=3.13
- y[H,G,F,G]=3.11
- y[H,G,H,F]=3.11
- y[H,I,H,I]=2.68
- y[H,J,H,I]=3.25
- y[H,J,I,J]=3.25
- y[I,A,B,A]=3.41
- y[I,A,E,B]=3.41
- y[I,A,F,E]=3.41
- y[I,A,H,F]=3.41
- y[I,A,I,H]=3.41
- y[I,B,E,B]=3.16
- y[I,B,F,E]=3.16
- y[I,B,H,F]=3.16
- y[I,B,I,H]=3.16
- y[I,C,D,C]=3.4
- y[I,C,E,D]=3.4
- y[I,C,F,E]=3.4
- y[I,C,H,F]=3.4
- y[I,C,I,H]=3.4
- y[I,D,E,D]=3.44
- y[I,D,F,E]=3.44
- y[I,D,H,F]=3.44
- y[I,D,I,H]=3.44
- y[I,E,F,E]=3.67
- y[I,E,H,F]=3.67
- y[I,E,I,H]=3.67
- y[I,F,H,F]=2.73
- y[I,F,I,H]=2.73
- y[I,G,I,J]=3.32
- y[I,G,J,G]=3.32
- y[I,H,I,H]=2.68
- y[I,J,I,J]=2.94
- y[J,A,B,A]=3.12
- y[J,A,E,B]=3.12
- y[J,A,F,E]=3.12
- y[J,A,G,F]=3.12
- y[J,A,J,G]=3.12
- y[J,B,E,B]=3.06
- y[J,B,F,E]=3.06
- y[J,B,G,F]=3.06
- y[J,B,J,G]=3.06
- y[J,C,D,C]=3.04
- y[J,C,E,D]=3.04
- y[J,C,F,E]=3.04
- y[J,C,G,F]=3.04
- y[J,C,J,G]=3.04
- y[J,D,E,D]=2.86
- y[J,D,F,E]=2.86
- y[J,D,G,F]=2.86
- y[J,D,J,G]=2.86
- y[J,E,F,E]=3.3
- y[J,E,G,F]=3.3
- y[J,E,J,G]=3.3
- y[J,F,G,F]=3.38
- y[J,F,J,G]=3.38
- y[J,G,J,G]=3.67
- y[J,H,I,H]=3.25
- y[J,H,J,I]=3.25
- y[J,I,J,I]=2.94
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Variables:
- b0[A,B]=1.0
- b0[A,C]=1.0
- b0[B,A]=1.0
- b0[B,E]=1.0
- b0[C,A]=1.0
- b0[C,D]=1.0
- b0[D,C]=1.0
- b0[D,E]=1.0
- b0[E,B]=1.0
- b0[E,D]=1.0
- b0[E,F]=1.0
- b0[F,E]=1.0
- b0[F,G]=1.0
- b0[F,H]=1.0
- b0[G,F]=1.0
- b0[G,J]=1.0
- b0[H,F]=1.0
- b0[H,I]=1.0
- b0[I,H]=1.0
- b0[I,J]=1.0
- b0[J,G]=1.0
- b0[J,I]=1.0
- x[A,B]=25.535
- x[A,C]=9.525
- x[B,A]=25.535
- x[B,E]=41.765
- x[C,A]=9.525
- x[C,D]=25.595
- x[D,C]=25.595
- x[D,E]=41.555
- x[E,B]=41.765
- x[E,D]=41.555
- x[E,F]=80.86
- x[F,E]=80.86
- x[F,G]=41.16
- x[F,H]=42.36
- x[G,F]=41.16
- x[G,J]=25.75
- x[H,F]=42.36
- x[H,I]=25.74
- x[I,H]=25.74
- x[I,J]=9.51
- x[J,G]=25.75
- x[J,I]=9.51
-
-
-Extensive form costs:
-Scenario Tree Costs
-----------------------------------------------------
-Tree Nodes:
-
- Name=LeafNode1
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3300
- Children:
- None
- Scenarios:
- Scenario1
- Expected cost of (sub)tree rooted at node= 0.0000
-
- Name=LeafNode2
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3300
- Children:
- None
- Scenarios:
- Scenario2
- Expected cost of (sub)tree rooted at node= 0.0000
-
- Name=LeafNode3
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3400
- Children:
- None
- Scenarios:
- Scenario3
- Expected cost of (sub)tree rooted at node= 0.0000
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- LeafNode1
- LeafNode2
- LeafNode3
- Scenarios:
- Scenario1
- Scenario2
- Scenario3
- Expected cost of (sub)tree rooted at node=111983.4300
-
-----------------------------------------------------
-Scenarios:
-
- Name=Scenario1
- Probability=0.3300
- Leaf Node=LeafNode1
- Tree node sequence:
- RootNode
- LeafNode1
- Stage= FirstStage Cost=111983.4300
- Stage= SecondStage Cost= 0.0000
- Total scenario cost=111983.4300
-
- Name=Scenario2
- Probability=0.3300
- Leaf Node=LeafNode2
- Tree node sequence:
- RootNode
- LeafNode2
- Stage= FirstStage Cost=111983.4300
- Stage= SecondStage Cost= 0.0000
- Total scenario cost=111983.4300
-
- Name=Scenario3
- Probability=0.3400
- Leaf Node=LeafNode3
- Tree node sequence:
- RootNode
- LeafNode3
- Stage= FirstStage Cost=111983.4300
- Stage= SecondStage Cost= 0.0000
- Total scenario cost=111983.4300
-
-----------------------------------------------------
-
-Total EF execution time=4.64 seconds
-
diff --git a/pyomo/pysp/tests/unit/baselines/cc_ef_networkflow1ef3_cplex.baseline-b b/pyomo/pysp/tests/unit/baselines/cc_ef_networkflow1ef3_cplex.baseline-b
deleted file mode 100755
index 90157ddfb5d..00000000000
--- a/pyomo/pysp/tests/unit/baselines/cc_ef_networkflow1ef3_cplex.baseline-b
+++ /dev/null
@@ -1,1110 +0,0 @@
-Initializing extensive form algorithm for stochastic programming problems.
-EF solve completed and solution status is optimal
-EF solve termination condition is optimal
-EF objective: 111983.43000
-EF gap: 0.00000
-EF bound: 111983.43000
-
-Extensive form solution:
-----------------------------------------------------
-Tree Nodes:
-
- Name=LeafNode1
- Stage=SecondStage
- Parent=RootNode
- Variables:
- UnmetDemand[A,B]=0.694
- UnmetDemand[A,C]=0.832
- UnmetDemand[A,D]=0.762
- UnmetDemand[A,E]=0.804
- UnmetDemand[A,F]=0.754
- UnmetDemand[A,G]=0.768
- UnmetDemand[A,H]=0.804
- UnmetDemand[A,I]=0.76
- UnmetDemand[A,J]=0.768
- UnmetDemand[B,A]=0.694
- UnmetDemand[B,C]=0.842
- UnmetDemand[B,D]=0.836
- UnmetDemand[B,E]=0.788
- UnmetDemand[B,F]=0.828
- UnmetDemand[B,G]=0.814
- UnmetDemand[B,H]=0.738
- UnmetDemand[B,I]=0.7
- UnmetDemand[B,J]=0.792
- UnmetDemand[C,A]=0.832
- UnmetDemand[C,B]=0.842
- UnmetDemand[C,D]=0.858
- UnmetDemand[C,E]=0.854
- UnmetDemand[C,F]=0.852
- UnmetDemand[C,G]=0.818
- UnmetDemand[C,H]=0.746
- UnmetDemand[C,I]=0.728
- UnmetDemand[C,J]=0.776
- UnmetDemand[D,A]=0.762
- UnmetDemand[D,B]=0.836
- UnmetDemand[D,C]=0.858
- UnmetDemand[D,E]=0.713
- UnmetDemand[D,F]=0.79
- UnmetDemand[D,G]=0.708
- UnmetDemand[D,H]=0.814
- UnmetDemand[D,I]=0.728
- UnmetDemand[D,J]=0.842
- UnmetDemand[E,A]=0.804
- UnmetDemand[E,B]=0.788
- UnmetDemand[E,C]=0.854
- UnmetDemand[E,D]=0.732
- UnmetDemand[E,G]=0.828
- UnmetDemand[E,H]=0.784
- UnmetDemand[E,I]=0.714
- UnmetDemand[E,J]=0.754
- UnmetDemand[F,A]=0.754
- UnmetDemand[F,B]=0.828
- UnmetDemand[F,C]=0.852
- UnmetDemand[F,D]=0.79
- UnmetDemand[F,G]=0.738
- UnmetDemand[F,H]=0.724
- UnmetDemand[F,I]=0.752
- UnmetDemand[F,J]=0.746
- UnmetDemand[G,A]=0.768
- UnmetDemand[G,B]=0.814
- UnmetDemand[G,C]=0.818
- UnmetDemand[G,D]=0.708
- UnmetDemand[G,E]=0.828
- UnmetDemand[G,F]=0.738
- UnmetDemand[G,H]=0.82
- UnmetDemand[G,I]=0.65
- UnmetDemand[G,J]=0.816
- UnmetDemand[H,A]=0.804
- UnmetDemand[H,B]=0.738
- UnmetDemand[H,C]=0.746
- UnmetDemand[H,D]=0.814
- UnmetDemand[H,E]=0.784
- UnmetDemand[H,F]=0.724
- UnmetDemand[H,G]=0.82
- UnmetDemand[H,I]=0.71
- UnmetDemand[H,J]=0.764
- UnmetDemand[I,A]=0.76
- UnmetDemand[I,B]=0.7
- UnmetDemand[I,C]=0.728
- UnmetDemand[I,D]=0.728
- UnmetDemand[I,E]=0.714
- UnmetDemand[I,F]=0.752
- UnmetDemand[I,G]=0.65
- UnmetDemand[I,H]=0.71
- UnmetDemand[I,J]=0.838
- UnmetDemand[J,A]=0.768
- UnmetDemand[J,B]=0.792
- UnmetDemand[J,C]=0.776
- UnmetDemand[J,D]=0.842
- UnmetDemand[J,E]=0.754
- UnmetDemand[J,F]=0.746
- UnmetDemand[J,G]=0.816
- UnmetDemand[J,H]=0.764
- UnmetDemand[J,I]=0.838
- y[A,A,F,H]=0.0188
- y[A,A,G,F]=0.0188
- y[A,A,G,J]=0.3302
- y[A,A,H,I]=0.0188
- y[A,A,I,J]=0.069
- y[A,A,J,G]=0.349
- y[A,A,J,I]=0.0502
- y[A,B,A,B]=2.776
- y[A,C,A,C]=3.328
- y[A,D,A,C]=3.048
- y[A,D,C,D]=3.048
- y[A,E,A,B]=3.216
- y[A,E,B,E]=3.216
- y[A,F,A,B]=3.016
- y[A,F,B,E]=3.016
- y[A,F,E,F]=3.016
- y[A,G,A,B]=3.072
- y[A,G,B,E]=3.072
- y[A,G,E,F]=3.072
- y[A,G,F,G]=3.072
- y[A,H,A,B]=3.216
- y[A,H,B,E]=3.216
- y[A,H,E,F]=3.216
- y[A,H,F,H]=3.216
- y[A,I,A,B]=3.04
- y[A,I,B,E]=3.04
- y[A,I,E,F]=3.04
- y[A,I,F,H]=3.04
- y[A,I,H,I]=3.04
- y[A,J,A,B]=3.072
- y[A,J,B,E]=3.072
- y[A,J,E,F]=3.072
- y[A,J,F,G]=0.944
- y[A,J,F,H]=2.128
- y[A,J,G,J]=0.944
- y[A,J,H,I]=2.128
- y[A,J,I,J]=2.128
- y[B,A,B,A]=2.776
- y[B,B,F,H]=0.0188
- y[B,B,G,F]=0.0188
- y[B,B,G,J]=0.3302
- y[B,B,H,I]=0.0188
- y[B,B,I,J]=0.069
- y[B,B,J,G]=0.349
- y[B,B,J,I]=0.0502
- y[B,C,A,C]=2.709
- y[B,C,B,A]=2.709
- y[B,C,B,E]=0.659
- y[B,C,D,C]=0.659
- y[B,C,E,D]=0.659
- y[B,D,B,E]=3.344
- y[B,D,E,D]=3.344
- y[B,E,B,E]=3.152
- y[B,F,B,E]=3.312
- y[B,F,E,F]=3.312
- y[B,G,B,E]=3.256
- y[B,G,E,F]=3.256
- y[B,G,F,G]=3.256
- y[B,H,B,E]=2.952
- y[B,H,E,F]=2.952
- y[B,H,F,H]=2.952
- y[B,I,B,E]=2.8
- y[B,I,E,F]=2.8
- y[B,I,F,H]=2.8
- y[B,I,H,I]=2.8
- y[B,J,B,E]=3.168
- y[B,J,E,F]=3.168
- y[B,J,F,G]=3.168
- y[B,J,G,J]=3.168
- y[C,A,C,A]=3.328
- y[C,B,A,B]=3.368
- y[C,B,C,A]=3.368
- y[C,C,F,H]=0.0188
- y[C,C,G,F]=0.0188
- y[C,C,G,J]=0.3302
- y[C,C,H,I]=0.0188
- y[C,C,I,J]=0.069
- y[C,C,J,G]=0.349
- y[C,C,J,I]=0.0502
- y[C,D,C,D]=3.432
- y[C,E,C,D]=3.416
- y[C,E,D,E]=3.416
- y[C,F,C,D]=3.408
- y[C,F,D,E]=3.408
- y[C,F,E,F]=3.408
- y[C,G,C,D]=3.272
- y[C,G,D,E]=3.272
- y[C,G,E,F]=3.272
- y[C,G,F,G]=3.272
- y[C,H,C,D]=2.984
- y[C,H,D,E]=2.984
- y[C,H,E,F]=2.984
- y[C,H,F,H]=2.984
- y[C,I,C,D]=2.912
- y[C,I,D,E]=2.912
- y[C,I,E,F]=2.912
- y[C,I,F,H]=2.912
- y[C,I,H,I]=2.912
- y[C,J,C,D]=3.104
- y[C,J,D,E]=3.104
- y[C,J,E,F]=3.104
- y[C,J,F,G]=3.104
- y[C,J,G,J]=3.104
- y[D,A,B,A]=0.64
- y[D,A,C,A]=2.408
- y[D,A,D,C]=2.408
- y[D,A,D,E]=0.64
- y[D,A,E,B]=0.64
- y[D,B,D,E]=3.344
- y[D,B,E,B]=3.344
- y[D,C,D,C]=3.432
- y[D,D,F,H]=0.0188
- y[D,D,G,F]=0.0188
- y[D,D,G,J]=0.3302
- y[D,D,H,I]=0.0188
- y[D,D,I,J]=0.069
- y[D,D,J,G]=0.349
- y[D,D,J,I]=0.0502
- y[D,E,D,E]=2.947
- y[D,F,D,E]=3.16
- y[D,F,E,F]=3.16
- y[D,G,D,E]=2.832
- y[D,G,E,F]=2.832
- y[D,G,F,G]=2.832
- y[D,H,D,E]=3.256
- y[D,H,E,F]=3.256
- y[D,H,F,H]=3.256
- y[D,I,D,E]=2.912
- y[D,I,E,F]=2.912
- y[D,I,F,H]=2.912
- y[D,I,H,I]=2.912
- y[D,J,D,E]=3.368
- y[D,J,E,F]=3.368
- y[D,J,F,G]=3.368
- y[D,J,G,J]=3.368
- y[E,A,B,A]=3.216
- y[E,A,E,B]=3.216
- y[E,B,E,B]=3.152
- y[E,C,D,C]=3.416
- y[E,C,E,D]=3.416
- y[E,D,E,D]=2.928
- y[E,E,F,H]=0.0188
- y[E,E,G,F]=0.0188
- y[E,E,G,J]=0.3302
- y[E,E,H,I]=0.0188
- y[E,E,I,J]=0.069
- y[E,E,J,G]=0.349
- y[E,E,J,I]=0.0502
- y[E,F,E,F]=4.04
- y[E,G,E,F]=3.312
- y[E,G,F,G]=3.312
- y[E,H,E,F]=3.136
- y[E,H,F,H]=3.136
- y[E,I,E,F]=2.856
- y[E,I,F,H]=2.856
- y[E,I,H,I]=2.856
- y[E,J,E,F]=3.016
- y[E,J,F,G]=3.016
- y[E,J,G,J]=3.016
- y[F,A,B,A]=3.016
- y[F,A,E,B]=3.016
- y[F,A,F,E]=3.016
- y[F,B,E,B]=3.312
- y[F,B,F,E]=3.312
- y[F,C,D,C]=3.408
- y[F,C,E,D]=3.408
- y[F,C,F,E]=3.408
- y[F,D,E,D]=3.16
- y[F,D,F,E]=3.16
- y[F,E,F,E]=4.04
- y[F,F,F,H]=0.0188
- y[F,F,G,F]=0.0188
- y[F,F,G,J]=0.3302
- y[F,F,H,I]=0.0188
- y[F,F,I,J]=0.069
- y[F,F,J,G]=0.349
- y[F,F,J,I]=0.0502
- y[F,G,F,G]=2.952
- y[F,H,F,H]=2.896
- y[F,I,F,H]=3.008
- y[F,I,H,I]=3.008
- y[F,J,F,G]=2.984
- y[F,J,G,J]=2.984
- y[G,A,B,A]=3.072
- y[G,A,E,B]=3.072
- y[G,A,F,E]=3.072
- y[G,A,G,F]=3.072
- y[G,B,E,B]=3.256
- y[G,B,F,E]=3.256
- y[G,B,G,F]=3.256
- y[G,C,D,C]=3.272
- y[G,C,E,D]=3.272
- y[G,C,F,E]=3.272
- y[G,C,G,F]=3.272
- y[G,D,E,D]=2.832
- y[G,D,F,E]=2.832
- y[G,D,G,F]=2.832
- y[G,E,F,E]=3.312
- y[G,E,G,F]=3.312
- y[G,F,G,F]=2.952
- y[G,G,F,H]=0.0188
- y[G,G,G,F]=0.0188
- y[G,G,G,J]=0.3302
- y[G,G,H,I]=0.0188
- y[G,G,I,J]=0.069
- y[G,G,J,G]=0.349
- y[G,G,J,I]=0.0502
- y[G,H,F,H]=3.28
- y[G,H,G,F]=3.28
- y[G,I,G,J]=2.6
- y[G,I,J,I]=2.6
- y[G,J,G,J]=3.264
- y[H,A,B,A]=3.216
- y[H,A,E,B]=3.216
- y[H,A,F,E]=3.216
- y[H,A,H,F]=3.216
- y[H,B,E,B]=2.952
- y[H,B,F,E]=2.952
- y[H,B,H,F]=2.952
- y[H,C,D,C]=2.984
- y[H,C,E,D]=2.984
- y[H,C,F,E]=2.984
- y[H,C,H,F]=2.984
- y[H,D,E,D]=3.256
- y[H,D,F,E]=3.256
- y[H,D,H,F]=3.256
- y[H,E,F,E]=3.136
- y[H,E,H,F]=3.136
- y[H,F,B,E]=0.49
- y[H,F,E,B]=0.49
- y[H,F,H,F]=2.896
- y[H,G,F,G]=3.28
- y[H,G,H,F]=3.28
- y[H,H,F,H]=0.0188
- y[H,H,G,F]=0.0188
- y[H,H,G,J]=0.3302
- y[H,H,H,I]=0.0188
- y[H,H,I,J]=0.069
- y[H,H,J,G]=0.349
- y[H,H,J,I]=0.0502
- y[H,I,H,I]=2.84
- y[H,J,H,I]=3.056
- y[H,J,I,J]=3.056
- y[I,A,B,A]=3.04
- y[I,A,E,B]=3.04
- y[I,A,F,E]=3.04
- y[I,A,H,F]=3.04
- y[I,A,I,H]=3.04
- y[I,B,E,B]=2.8
- y[I,B,F,E]=2.8
- y[I,B,H,F]=2.8
- y[I,B,I,H]=2.8
- y[I,C,D,C]=2.912
- y[I,C,E,D]=2.912
- y[I,C,F,E]=2.912
- y[I,C,H,F]=2.912
- y[I,C,I,H]=2.912
- y[I,D,E,D]=2.912
- y[I,D,F,E]=2.912
- y[I,D,G,F]=0.284
- y[I,D,H,F]=2.628
- y[I,D,I,H]=2.628
- y[I,D,I,J]=0.284
- y[I,D,J,G]=0.284
- y[I,E,F,E]=2.856
- y[I,E,H,F]=2.856
- y[I,E,I,H]=2.856
- y[I,F,H,F]=3.008
- y[I,F,I,H]=3.008
- y[I,G,F,G]=2.6
- y[I,G,H,F]=2.6
- y[I,G,I,H]=2.6
- y[I,H,I,H]=2.84
- y[I,I,F,H]=0.0188
- y[I,I,G,F]=0.0188
- y[I,I,G,J]=0.3302
- y[I,I,H,I]=0.0188
- y[I,I,I,J]=0.069
- y[I,I,J,G]=0.349
- y[I,I,J,I]=0.0502
- y[I,J,I,J]=3.352
- y[J,A,B,A]=3.072
- y[J,A,E,B]=3.072
- y[J,A,F,E]=3.072
- y[J,A,G,F]=3.072
- y[J,A,J,G]=3.072
- y[J,B,E,B]=3.168
- y[J,B,F,E]=3.168
- y[J,B,G,F]=3.168
- y[J,B,J,G]=3.168
- y[J,C,D,C]=3.104
- y[J,C,E,D]=3.104
- y[J,C,F,E]=3.104
- y[J,C,G,F]=3.104
- y[J,C,J,G]=3.104
- y[J,D,E,D]=3.368
- y[J,D,F,E]=3.368
- y[J,D,G,F]=3.368
- y[J,D,J,G]=3.368
- y[J,E,F,E]=3.016
- y[J,E,G,F]=3.016
- y[J,E,J,G]=3.016
- y[J,F,G,F]=2.984
- y[J,F,J,G]=2.984
- y[J,G,J,G]=3.264
- y[J,H,I,H]=3.056
- y[J,H,J,I]=3.056
- y[J,I,J,I]=3.352
- y[J,J,F,H]=0.0188
- y[J,J,G,F]=0.0188
- y[J,J,G,J]=0.3302
- y[J,J,H,I]=0.0188
- y[J,J,I,J]=0.069
- y[J,J,J,G]=0.349
- y[J,J,J,I]=0.0502
-
- Name=LeafNode2
- Stage=SecondStage
- Parent=RootNode
- Variables:
- delta=1.0
- y[A,A,F,H]=0.098
- y[A,A,G,J]=0.037
- y[A,A,H,F]=0.098
- y[A,A,H,I]=0.035
- y[A,A,I,H]=0.035
- y[A,A,J,G]=0.037
- y[A,B,A,B]=3.41
- y[A,C,A,C]=3.24
- y[A,D,A,C]=3.22
- y[A,D,C,D]=3.22
- y[A,E,A,B]=2.8
- y[A,E,B,E]=2.8
- y[A,F,A,B]=3.06
- y[A,F,B,E]=3.06
- y[A,F,E,F]=3.06
- y[A,G,A,B]=3.32
- y[A,G,B,E]=3.32
- y[A,G,E,F]=3.32
- y[A,G,F,G]=3.32
- y[A,H,A,B]=3.0
- y[A,H,B,E]=3.0
- y[A,H,E,F]=3.0
- y[A,H,F,H]=3.0
- y[A,I,A,B]=3.53
- y[A,I,B,E]=3.53
- y[A,I,E,F]=3.53
- y[A,I,F,H]=3.53
- y[A,I,H,I]=3.53
- y[A,J,A,B]=3.35
- y[A,J,B,E]=3.35
- y[A,J,E,F]=3.35
- y[A,J,F,G]=3.35
- y[A,J,G,J]=3.35
- y[B,A,B,A]=3.41
- y[B,B,F,H]=0.098
- y[B,B,G,J]=0.037
- y[B,B,H,F]=0.098
- y[B,B,H,I]=0.035
- y[B,B,I,H]=0.035
- y[B,B,J,G]=0.037
- y[B,C,A,C]=3.065
- y[B,C,B,A]=3.065
- y[B,C,B,E]=0.085
- y[B,C,D,C]=0.085
- y[B,C,E,D]=0.085
- y[B,D,B,E]=3.5
- y[B,D,E,D]=3.5
- y[B,E,B,E]=2.98
- y[B,F,B,E]=3.19
- y[B,F,E,F]=3.19
- y[B,G,B,E]=3.14
- y[B,G,E,F]=3.14
- y[B,G,F,G]=3.14
- y[B,H,B,E]=3.12
- y[B,H,E,F]=3.12
- y[B,H,F,H]=3.12
- y[B,I,B,E]=3.49
- y[B,I,E,F]=3.49
- y[B,I,F,H]=3.49
- y[B,I,H,I]=3.49
- y[B,J,B,E]=3.2
- y[B,J,E,F]=3.2
- y[B,J,F,G]=3.2
- y[B,J,G,J]=3.2
- y[C,A,C,A]=3.24
- y[C,B,A,B]=3.065
- y[C,B,C,A]=3.065
- y[C,B,C,D]=0.085
- y[C,B,D,E]=0.085
- y[C,B,E,B]=0.085
- y[C,C,F,H]=0.098
- y[C,C,G,J]=0.037
- y[C,C,H,F]=0.098
- y[C,C,H,I]=0.035
- y[C,C,I,H]=0.035
- y[C,C,J,G]=0.037
- y[C,D,C,D]=3.01
- y[C,E,C,D]=3.13
- y[C,E,D,E]=3.13
- y[C,F,C,D]=3.24
- y[C,F,D,E]=3.24
- y[C,F,E,F]=3.24
- y[C,G,C,D]=3.08
- y[C,G,D,E]=3.08
- y[C,G,E,F]=3.08
- y[C,G,F,G]=3.08
- y[C,H,C,D]=3.59
- y[C,H,D,E]=3.59
- y[C,H,E,F]=3.59
- y[C,H,F,H]=3.59
- y[C,I,C,D]=3.05
- y[C,I,D,E]=3.05
- y[C,I,E,F]=3.05
- y[C,I,F,H]=3.05
- y[C,I,H,I]=3.05
- y[C,J,C,D]=3.19
- y[C,J,D,E]=3.19
- y[C,J,E,F]=3.19
- y[C,J,F,G]=3.19
- y[C,J,G,J]=3.19
- y[D,A,C,A]=3.22
- y[D,A,D,C]=3.22
- y[D,B,D,E]=3.5
- y[D,B,E,B]=3.5
- y[D,C,D,C]=3.01
- y[D,D,F,H]=0.098
- y[D,D,G,J]=0.037
- y[D,D,H,F]=0.098
- y[D,D,H,I]=0.035
- y[D,D,I,H]=0.035
- y[D,D,J,G]=0.037
- y[D,E,D,E]=3.35
- y[D,F,D,E]=2.97
- y[D,F,E,F]=2.97
- y[D,G,D,E]=3.18
- y[D,G,E,F]=3.18
- y[D,G,F,G]=3.18
- y[D,H,D,E]=3.17
- y[D,H,E,F]=3.17
- y[D,H,F,H]=3.17
- y[D,I,D,E]=2.9
- y[D,I,E,F]=2.9
- y[D,I,F,H]=2.9
- y[D,I,H,I]=2.9
- y[D,J,D,E]=3.12
- y[D,J,E,F]=3.12
- y[D,J,F,G]=3.12
- y[D,J,G,J]=3.12
- y[E,A,B,A]=2.8
- y[E,A,E,B]=2.8
- y[E,B,E,B]=2.98
- y[E,C,D,C]=3.13
- y[E,C,E,D]=3.13
- y[E,D,E,D]=3.35
- y[E,E,F,H]=0.098
- y[E,E,G,J]=0.037
- y[E,E,H,F]=0.098
- y[E,E,H,I]=0.035
- y[E,E,I,H]=0.035
- y[E,E,J,G]=0.037
- y[E,F,E,F]=3.17
- y[E,G,E,F]=3.12
- y[E,G,F,G]=3.12
- y[E,H,E,F]=3.27
- y[E,H,F,H]=3.27
- y[E,I,E,F]=3.14
- y[E,I,F,H]=3.14
- y[E,I,H,I]=3.14
- y[E,J,E,F]=3.16
- y[E,J,F,G]=3.16
- y[E,J,G,J]=3.16
- y[F,A,B,A]=3.06
- y[F,A,E,B]=3.06
- y[F,A,F,E]=3.06
- y[F,B,E,B]=3.19
- y[F,B,F,E]=3.19
- y[F,C,D,C]=3.24
- y[F,C,E,D]=3.24
- y[F,C,F,E]=3.24
- y[F,D,E,D]=2.97
- y[F,D,F,E]=2.97
- y[F,E,F,E]=3.17
- y[F,F,F,H]=0.098
- y[F,F,G,J]=0.037
- y[F,F,H,F]=0.098
- y[F,F,H,I]=0.035
- y[F,F,I,H]=0.035
- y[F,F,J,G]=0.037
- y[F,G,F,G]=3.01
- y[F,H,F,H]=3.21
- y[F,I,F,H]=2.87
- y[F,I,H,I]=2.87
- y[F,J,F,G]=3.25
- y[F,J,G,J]=3.25
- y[G,A,B,A]=3.32
- y[G,A,E,B]=3.32
- y[G,A,F,E]=3.32
- y[G,A,G,F]=3.32
- y[G,B,E,B]=3.14
- y[G,B,F,E]=3.14
- y[G,B,G,F]=3.14
- y[G,C,D,C]=3.08
- y[G,C,E,D]=3.08
- y[G,C,F,E]=3.08
- y[G,C,G,F]=3.08
- y[G,D,E,D]=3.18
- y[G,D,F,E]=3.18
- y[G,D,G,F]=3.18
- y[G,E,F,E]=3.12
- y[G,E,G,F]=3.12
- y[G,F,G,F]=3.01
- y[G,G,F,H]=0.098
- y[G,G,G,J]=0.037
- y[G,G,H,F]=0.098
- y[G,G,H,I]=0.035
- y[G,G,I,H]=0.035
- y[G,G,J,G]=0.037
- y[G,H,F,H]=3.02
- y[G,H,G,F]=3.02
- y[G,I,F,H]=0.02
- y[G,I,G,F]=0.02
- y[G,I,G,J]=2.93
- y[G,I,H,I]=0.02
- y[G,I,J,I]=2.93
- y[G,J,G,J]=3.18
- y[H,A,B,A]=3.0
- y[H,A,E,B]=3.0
- y[H,A,F,E]=3.0
- y[H,A,H,F]=3.0
- y[H,B,E,B]=3.12
- y[H,B,F,E]=3.12
- y[H,B,H,F]=3.12
- y[H,C,D,C]=3.59
- y[H,C,E,D]=3.59
- y[H,C,F,E]=3.59
- y[H,C,H,F]=3.59
- y[H,D,E,D]=3.17
- y[H,D,F,E]=3.17
- y[H,D,H,F]=3.17
- y[H,E,F,E]=3.27
- y[H,E,H,F]=3.27
- y[H,F,H,F]=3.21
- y[H,G,F,G]=3.02
- y[H,G,H,F]=3.02
- y[H,H,F,H]=0.098
- y[H,H,G,J]=0.037
- y[H,H,H,F]=0.098
- y[H,H,H,I]=0.035
- y[H,H,I,H]=0.035
- y[H,H,J,G]=0.037
- y[H,I,H,I]=3.37
- y[H,J,H,I]=3.02
- y[H,J,I,J]=3.02
- y[I,A,B,A]=3.53
- y[I,A,E,B]=3.53
- y[I,A,F,E]=3.53
- y[I,A,H,F]=3.53
- y[I,A,I,H]=3.53
- y[I,B,E,B]=3.49
- y[I,B,F,E]=3.49
- y[I,B,H,F]=3.49
- y[I,B,I,H]=3.49
- y[I,C,D,C]=3.05
- y[I,C,E,D]=3.05
- y[I,C,F,E]=3.05
- y[I,C,H,F]=3.05
- y[I,C,I,H]=3.05
- y[I,D,E,D]=2.9
- y[I,D,F,E]=2.9
- y[I,D,H,F]=2.9
- y[I,D,I,H]=2.9
- y[I,E,F,E]=3.14
- y[I,E,H,F]=3.14
- y[I,E,I,H]=3.14
- y[I,F,H,F]=2.87
- y[I,F,I,H]=2.87
- y[I,G,F,G]=0.02
- y[I,G,H,F]=0.02
- y[I,G,I,H]=0.02
- y[I,G,I,J]=2.93
- y[I,G,J,G]=2.93
- y[I,H,I,H]=3.37
- y[I,I,F,H]=0.098
- y[I,I,G,J]=0.037
- y[I,I,H,F]=0.098
- y[I,I,H,I]=0.035
- y[I,I,I,H]=0.035
- y[I,I,J,G]=0.037
- y[I,J,I,J]=3.1
- y[J,A,B,A]=3.35
- y[J,A,E,B]=3.35
- y[J,A,F,E]=3.35
- y[J,A,G,F]=3.35
- y[J,A,J,G]=3.35
- y[J,B,E,B]=3.2
- y[J,B,F,E]=3.2
- y[J,B,G,F]=3.2
- y[J,B,J,G]=3.2
- y[J,C,D,C]=3.19
- y[J,C,E,D]=3.19
- y[J,C,F,E]=3.19
- y[J,C,G,F]=3.19
- y[J,C,J,G]=3.19
- y[J,D,E,D]=3.12
- y[J,D,F,E]=3.12
- y[J,D,G,F]=3.12
- y[J,D,J,G]=3.12
- y[J,E,F,E]=3.16
- y[J,E,G,F]=3.16
- y[J,E,J,G]=3.16
- y[J,F,G,F]=3.25
- y[J,F,J,G]=3.25
- y[J,G,I,J]=0.46
- y[J,G,J,G]=3.18
- y[J,G,J,I]=0.46
- y[J,H,I,H]=3.02
- y[J,H,J,I]=3.02
- y[J,I,J,I]=3.1
- y[J,J,F,H]=0.098
- y[J,J,G,J]=0.037
- y[J,J,H,F]=0.098
- y[J,J,H,I]=0.035
- y[J,J,I,H]=0.035
- y[J,J,J,G]=0.037
-
- Name=LeafNode3
- Stage=SecondStage
- Parent=RootNode
- Variables:
- delta=1.0
- y[A,B,A,B]=2.66
- y[A,C,A,C]=3.06
- y[A,D,A,C]=2.77
- y[A,D,C,D]=2.77
- y[A,E,A,B]=2.955
- y[A,E,A,C]=0.105
- y[A,E,B,E]=2.955
- y[A,E,C,D]=0.105
- y[A,E,D,E]=0.105
- y[A,F,A,B]=3.17
- y[A,F,B,E]=3.17
- y[A,F,E,F]=3.17
- y[A,G,A,B]=3.61
- y[A,G,B,E]=3.61
- y[A,G,E,F]=3.61
- y[A,G,F,G]=3.61
- y[A,H,A,B]=3.69
- y[A,H,B,E]=3.69
- y[A,H,E,F]=3.69
- y[A,H,F,H]=3.69
- y[A,I,A,B]=3.41
- y[A,I,B,E]=3.41
- y[A,I,E,F]=3.41
- y[A,I,F,H]=3.41
- y[A,I,H,I]=3.41
- y[A,J,A,B]=3.12
- y[A,J,B,E]=3.12
- y[A,J,E,F]=3.12
- y[A,J,F,G]=3.12
- y[A,J,G,J]=3.12
- y[B,A,B,A]=2.66
- y[B,C,A,C]=2.86
- y[B,C,B,A]=2.86
- y[B,D,A,C]=0.23
- y[B,D,B,A]=0.23
- y[B,D,B,E]=3.11
- y[B,D,C,D]=0.23
- y[B,D,E,D]=3.11
- y[B,E,B,E]=3.23
- y[B,F,B,E]=3.34
- y[B,F,E,F]=3.34
- y[B,G,B,E]=2.85
- y[B,G,E,F]=2.85
- y[B,G,F,G]=2.85
- y[B,H,B,E]=3.06
- y[B,H,E,F]=3.06
- y[B,H,F,H]=3.06
- y[B,I,B,E]=3.16
- y[B,I,E,F]=3.16
- y[B,I,F,H]=3.16
- y[B,I,H,I]=3.16
- y[B,J,B,E]=3.06
- y[B,J,E,F]=3.06
- y[B,J,F,G]=3.06
- y[B,J,G,J]=3.06
- y[C,A,C,A]=3.06
- y[C,B,A,B]=2.86
- y[C,B,C,A]=2.86
- y[C,D,C,D]=3.18
- y[C,E,C,D]=3.46
- y[C,E,D,E]=3.46
- y[C,F,C,D]=3.28
- y[C,F,D,E]=3.28
- y[C,F,E,F]=3.28
- y[C,G,C,D]=2.95
- y[C,G,D,E]=2.95
- y[C,G,E,F]=2.95
- y[C,G,F,G]=2.95
- y[C,H,C,D]=3.18
- y[C,H,D,E]=3.18
- y[C,H,E,F]=3.18
- y[C,H,F,H]=3.18
- y[C,I,C,D]=3.4
- y[C,I,D,E]=3.4
- y[C,I,E,F]=3.4
- y[C,I,F,H]=3.4
- y[C,I,H,I]=3.4
- y[C,J,C,D]=3.04
- y[C,J,D,E]=3.04
- y[C,J,E,F]=3.04
- y[C,J,F,G]=3.04
- y[C,J,G,J]=3.04
- y[D,A,C,A]=2.77
- y[D,A,D,C]=2.77
- y[D,B,D,E]=3.34
- y[D,B,E,B]=3.34
- y[D,C,D,C]=3.18
- y[D,E,D,E]=2.86
- y[D,F,D,E]=3.15
- y[D,F,E,F]=3.15
- y[D,G,D,E]=3.61
- y[D,G,E,F]=3.61
- y[D,G,F,G]=3.61
- y[D,H,D,E]=2.88
- y[D,H,E,F]=2.88
- y[D,H,F,H]=2.88
- y[D,I,D,E]=3.44
- y[D,I,E,F]=3.44
- y[D,I,F,H]=3.44
- y[D,I,H,I]=3.44
- y[D,J,D,E]=2.86
- y[D,J,E,F]=2.86
- y[D,J,F,G]=2.86
- y[D,J,G,J]=2.86
- y[E,A,B,A]=3.06
- y[E,A,E,B]=3.06
- y[E,B,E,B]=3.23
- y[E,C,D,C]=3.46
- y[E,C,E,D]=3.46
- y[E,D,E,D]=2.86
- y[E,F,E,F]=3.11
- y[E,G,E,F]=3.02
- y[E,G,F,G]=3.02
- y[E,H,E,F]=3.5
- y[E,H,F,H]=3.5
- y[E,I,E,F]=3.67
- y[E,I,F,H]=3.67
- y[E,I,H,I]=3.67
- y[E,J,E,F]=3.3
- y[E,J,F,G]=3.3
- y[E,J,G,J]=3.3
- y[F,A,B,A]=3.17
- y[F,A,E,B]=3.17
- y[F,A,F,E]=3.17
- y[F,B,E,B]=3.34
- y[F,B,F,E]=3.34
- y[F,C,D,C]=3.28
- y[F,C,E,D]=3.28
- y[F,C,F,E]=3.28
- y[F,D,E,D]=3.15
- y[F,D,F,E]=3.15
- y[F,E,F,E]=3.11
- y[F,G,F,G]=3.25
- y[F,H,F,H]=3.13
- y[F,I,F,H]=2.73
- y[F,I,H,I]=2.73
- y[F,J,F,G]=3.38
- y[F,J,G,J]=3.38
- y[G,A,B,A]=3.61
- y[G,A,E,B]=3.61
- y[G,A,F,E]=3.61
- y[G,A,G,F]=3.61
- y[G,B,E,B]=2.85
- y[G,B,F,E]=2.85
- y[G,B,G,F]=2.85
- y[G,C,D,C]=2.95
- y[G,C,E,D]=2.95
- y[G,C,F,E]=2.95
- y[G,C,G,F]=2.95
- y[G,D,E,D]=3.61
- y[G,D,F,E]=3.61
- y[G,D,G,F]=3.61
- y[G,E,F,E]=3.02
- y[G,E,G,F]=3.02
- y[G,F,G,F]=3.25
- y[G,H,F,H]=3.11
- y[G,H,G,F]=3.11
- y[G,I,G,J]=3.32
- y[G,I,J,I]=3.32
- y[G,J,G,J]=3.67
- y[H,A,B,A]=3.69
- y[H,A,E,B]=3.69
- y[H,A,F,E]=3.69
- y[H,A,H,F]=3.69
- y[H,B,E,B]=3.06
- y[H,B,F,E]=3.06
- y[H,B,H,F]=3.06
- y[H,C,D,C]=3.18
- y[H,C,E,D]=3.18
- y[H,C,F,E]=3.18
- y[H,C,H,F]=3.18
- y[H,D,E,D]=2.88
- y[H,D,F,E]=2.88
- y[H,D,H,F]=2.88
- y[H,E,F,E]=3.5
- y[H,E,H,F]=3.5
- y[H,F,H,F]=3.13
- y[H,G,F,G]=3.11
- y[H,G,H,F]=3.11
- y[H,I,H,I]=2.68
- y[H,J,H,I]=3.25
- y[H,J,I,J]=3.25
- y[I,A,B,A]=3.41
- y[I,A,E,B]=3.41
- y[I,A,F,E]=3.41
- y[I,A,H,F]=3.41
- y[I,A,I,H]=3.41
- y[I,B,E,B]=3.16
- y[I,B,F,E]=3.16
- y[I,B,H,F]=3.16
- y[I,B,I,H]=3.16
- y[I,C,D,C]=3.4
- y[I,C,E,D]=3.4
- y[I,C,F,E]=3.4
- y[I,C,H,F]=3.4
- y[I,C,I,H]=3.4
- y[I,D,E,D]=3.44
- y[I,D,F,E]=3.44
- y[I,D,H,F]=3.44
- y[I,D,I,H]=3.44
- y[I,E,F,E]=3.67
- y[I,E,H,F]=3.67
- y[I,E,I,H]=3.67
- y[I,F,H,F]=2.73
- y[I,F,I,H]=2.73
- y[I,G,I,J]=3.32
- y[I,G,J,G]=3.32
- y[I,H,I,H]=2.68
- y[I,J,I,J]=2.94
- y[J,A,B,A]=2.785
- y[J,A,C,A]=0.335
- y[J,A,D,C]=0.335
- y[J,A,E,B]=2.785
- y[J,A,E,D]=0.335
- y[J,A,F,E]=3.12
- y[J,A,G,F]=3.12
- y[J,A,J,G]=3.12
- y[J,B,E,B]=3.06
- y[J,B,F,E]=3.06
- y[J,B,G,F]=3.06
- y[J,B,J,G]=3.06
- y[J,C,D,C]=3.04
- y[J,C,E,D]=3.04
- y[J,C,F,E]=3.04
- y[J,C,G,F]=3.04
- y[J,C,J,G]=3.04
- y[J,D,E,D]=2.86
- y[J,D,F,E]=2.86
- y[J,D,G,F]=2.86
- y[J,D,J,G]=2.86
- y[J,E,F,E]=3.3
- y[J,E,G,F]=3.3
- y[J,E,J,G]=3.3
- y[J,F,G,F]=3.38
- y[J,F,J,G]=3.38
- y[J,G,J,G]=3.67
- y[J,H,I,H]=3.25
- y[J,H,J,I]=3.25
- y[J,I,J,I]=2.94
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Variables:
- b0[A,B]=1.0
- b0[A,C]=1.0
- b0[B,A]=1.0
- b0[B,E]=1.0
- b0[C,A]=1.0
- b0[C,D]=1.0
- b0[D,C]=1.0
- b0[D,E]=1.0
- b0[E,B]=1.0
- b0[E,D]=1.0
- b0[E,F]=1.0
- b0[F,E]=1.0
- b0[F,G]=1.0
- b0[F,H]=1.0
- b0[G,F]=1.0
- b0[G,J]=1.0
- b0[H,F]=1.0
- b0[H,I]=1.0
- b0[I,H]=1.0
- b0[I,J]=1.0
- b0[J,G]=1.0
- b0[J,I]=1.0
- x[A,B]=25.535
- x[A,C]=9.525
- x[B,A]=25.535
- x[B,E]=41.765
- x[C,A]=9.525
- x[C,D]=25.595
- x[D,C]=25.595
- x[D,E]=41.555
- x[E,B]=41.765
- x[E,D]=41.555
- x[E,F]=80.86
- x[F,E]=80.86
- x[F,G]=41.16
- x[F,H]=42.36
- x[G,F]=41.16
- x[G,J]=25.75
- x[H,F]=42.36
- x[H,I]=25.74
- x[I,H]=25.74
- x[I,J]=9.51
- x[J,G]=25.75
- x[J,I]=9.51
-
-
-Extensive form costs:
-Scenario Tree Costs
-----------------------------------------------------
-Tree Nodes:
-
- Name=LeafNode1
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3300
- Children:
- None
- Scenarios:
- Scenario1
- Expected cost of (sub)tree rooted at node= 0.0000
-
- Name=LeafNode2
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3300
- Children:
- None
- Scenarios:
- Scenario2
- Expected cost of (sub)tree rooted at node= 0.0000
-
- Name=LeafNode3
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3400
- Children:
- None
- Scenarios:
- Scenario3
- Expected cost of (sub)tree rooted at node= 0.0000
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- LeafNode1
- LeafNode2
- LeafNode3
- Scenarios:
- Scenario1
- Scenario2
- Scenario3
- Expected cost of (sub)tree rooted at node=111983.4300
-
-----------------------------------------------------
-Scenarios:
-
- Name=Scenario1
- Probability=0.3300
- Leaf Node=LeafNode1
- Tree node sequence:
- RootNode
- LeafNode1
- Stage= FirstStage Cost=111983.4300
- Stage= SecondStage Cost= 0.0000
- Total scenario cost=111983.4300
-
- Name=Scenario2
- Probability=0.3300
- Leaf Node=LeafNode2
- Tree node sequence:
- RootNode
- LeafNode2
- Stage= FirstStage Cost=111983.4300
- Stage= SecondStage Cost= 0.0000
- Total scenario cost=111983.4300
-
- Name=Scenario3
- Probability=0.3400
- Leaf Node=LeafNode3
- Tree node sequence:
- RootNode
- LeafNode3
- Stage= FirstStage Cost=111983.4300
- Stage= SecondStage Cost= 0.0000
- Total scenario cost=111983.4300
-
-----------------------------------------------------
-
-Total EF execution time=2.78 seconds
-
diff --git a/pyomo/pysp/tests/unit/baselines/computeconf_networkflow1ef10_cplex.baseline-a b/pyomo/pysp/tests/unit/baselines/computeconf_networkflow1ef10_cplex.baseline-a
deleted file mode 100644
index 1ecea4dd0b7..00000000000
--- a/pyomo/pysp/tests/unit/baselines/computeconf_networkflow1ef10_cplex.baseline-a
+++ /dev/null
@@ -1,96 +0,0 @@
-Loading reference model and scenario tree
-Starting confidence interval calculation...
-Problem contains 10 scenarios, of which 2 will be used to find a solution xhat.
-A total of 4 groups of 2 scenarios will be used to compute the confidence interval on xhat.
-
-Loading scenario instances and initializing scenario tree for xhat scenario bundle.
-Initializing PH
-
-We are solving a MINIMIZATION problem.
-Creating the xhat extensive form.
-
-Composite scenarios:
-Scenario1
-Scenario4
-
-Solving the xhat extensive form.
-Extensive form objective value given xhat=151556.6
-The computation of xhat is complete - starting to compute confidence interval via sub-sampling.
-
-Computing statistics for sample k=1.
-Loading scenario instances and initializing scenario tree for xstar scenario bundle.
-Initializing PH
-
-Creating the xstar extensive form.
-
-Composite scenarios:
-Scenario6
-Scenario8
-
-Solving the xstar extensive form.
-Sample extensive form objective value=131734.959999
-Solving the extensive form given the xhat solution.
-Sample extensive form objective value given xhat=154886.6
-
-Computing statistics for sample k=2.
-Loading scenario instances and initializing scenario tree for xstar scenario bundle.
-Initializing PH
-
-Creating the xstar extensive form.
-
-Composite scenarios:
-Scenario2
-Scenario5
-
-Solving the xstar extensive form.
-Sample extensive form objective value=145068.48
-Solving the extensive form given the xhat solution.
-Sample extensive form objective value given xhat=154816.6
-
-Computing statistics for sample k=3.
-Loading scenario instances and initializing scenario tree for xstar scenario bundle.
-Initializing PH
-
-Creating the xstar extensive form.
-
-Composite scenarios:
-Scenario7
-Scenario9
-
-Solving the xstar extensive form.
-Sample extensive form objective value=139613.36
-Solving the extensive form given the xhat solution.
-Sample extensive form objective value given xhat=153956.6
-
-Computing statistics for sample k=4.
-Loading scenario instances and initializing scenario tree for xstar scenario bundle.
-Initializing PH
-
-Creating the xstar extensive form.
-
-Composite scenarios:
-Scenario3
-Scenario10
-
-Solving the xstar extensive form.
-Sample extensive form objective value=135746.079999
-Solving the extensive form given the xhat solution.
-Sample extensive form objective value given xhat=156256.6
-g_supk_of_xhat[1]=23151.640001
-g_supk_of_xhat[2]= 9748.120000
-g_supk_of_xhat[3]=14355.039800
-g_supk_of_xhat[4]=20521.641101
-
-Raw results:
-g_bar= 16944.1102254
-g_stddev= 6050.28137282
-Average f(xhat)= 154979.1
-
-Results summary:
-Confidence interval width for alpha=0.001 is 38643.444369
-Confidence interval width for alpha=0.005 is 30871.8579456
-Confidence interval width for alpha=0.01 is 28279.3123774
-Confidence interval width for alpha=0.025 is 25341.9007709
-Confidence interval width for alpha=0.05 is 23393.7101688
-Confidence interval width for alpha=0.1 is 21581.6508977
-Confidence interval width for alpha=0.25 is 19185.739474
diff --git a/pyomo/pysp/tests/unit/baselines/computeconf_networkflow1ef10_cplex.baseline-b b/pyomo/pysp/tests/unit/baselines/computeconf_networkflow1ef10_cplex.baseline-b
deleted file mode 100644
index f4baa833ecb..00000000000
--- a/pyomo/pysp/tests/unit/baselines/computeconf_networkflow1ef10_cplex.baseline-b
+++ /dev/null
@@ -1,96 +0,0 @@
-Loading reference model and scenario tree
-Starting confidence interval calculation...
-Problem contains 10 scenarios, of which 2 will be used to find a solution xhat.
-A total of 4 groups of 2 scenarios will be used to compute the confidence interval on xhat.
-
-Loading scenario instances and initializing scenario tree for xhat scenario bundle.
-Initializing PH
-
-We are solving a MINIMIZATION problem.
-Creating the xhat extensive form.
-
-Composite scenarios:
-Scenario7
-Scenario9
-
-Solving the xhat extensive form.
-Extensive form objective value given xhat=139613.36
-The computation of xhat is complete - starting to compute confidence interval via sub-sampling.
-
-Computing statistics for sample k=1.
-Loading scenario instances and initializing scenario tree for xstar scenario bundle.
-Initializing PH
-
-Creating the xstar extensive form.
-
-Composite scenarios:
-Scenario1
-Scenario3
-
-Solving the xstar extensive form.
-Sample extensive form objective value=151550.7254670225
-Solving the extensive form given the xhat solution.
-Sample extensive form objective value given xhat=152780.72
-
-Computing statistics for sample k=2.
-Loading scenario instances and initializing scenario tree for xstar scenario bundle.
-Initializing PH
-
-Creating the xstar extensive form.
-
-Composite scenarios:
-Scenario2
-Scenario6
-
-Solving the xstar extensive form.
-Sample extensive form objective value=133803.83999899056
-Solving the extensive form given the xhat solution.
-Sample extensive form objective value given xhat=141973.36
-
-Computing statistics for sample k=3.
-Loading scenario instances and initializing scenario tree for xstar scenario bundle.
-Initializing PH
-
-Creating the xstar extensive form.
-
-Composite scenarios:
-Scenario5
-Scenario8
-
-Solving the xstar extensive form.
-Sample extensive form objective value=146383.47999999998
-Solving the extensive form given the xhat solution.
-Sample extensive form objective value given xhat=146249.12
-
-Computing statistics for sample k=4.
-Loading scenario instances and initializing scenario tree for xstar scenario bundle.
-Initializing PH
-
-Creating the xstar extensive form.
-
-Composite scenarios:
-Scenario4
-Scenario10
-
-Solving the xstar extensive form.
-Sample extensive form objective value=136641.08000000002
-Solving the extensive form given the xhat solution.
-Sample extensive form objective value given xhat=143538.36
-g_supk_of_xhat[1]= 1229.994533
-g_supk_of_xhat[2]= 8169.520001
-g_supk_of_xhat[3]= -134.360000
-g_supk_of_xhat[4]= 6897.280000
-
-Raw results:
-g_bar= 4040.608633496726
-g_stddev= 4104.4039392541135
-Average f(xhat)= 146135.38999999998
-
-Results summary:
-Confidence interval width for alpha=0.001 is 18761.053361631602
-Confidence interval width for alpha=0.005 is 13488.946501659695
-Confidence interval width for alpha=0.01 is 11730.209413689307
-Confidence interval width for alpha=0.025 is 9737.521301181434
-Confidence interval width for alpha=0.05 is 8415.90323274161
-Confidence interval width for alpha=0.1 is 7186.634252935004
-Confidence interval width for alpha=0.25 is 5561.290292990375
diff --git a/pyomo/pysp/tests/unit/baselines/computeconf_networkflow1ef10_cplex.baseline-c b/pyomo/pysp/tests/unit/baselines/computeconf_networkflow1ef10_cplex.baseline-c
deleted file mode 100644
index cf2ccb3022d..00000000000
--- a/pyomo/pysp/tests/unit/baselines/computeconf_networkflow1ef10_cplex.baseline-c
+++ /dev/null
@@ -1,96 +0,0 @@
-Loading reference model and scenario tree
-Starting confidence interval calculation...
-Problem contains 10 scenarios, of which 2 will be used to find a solution xhat.
-A total of 4 groups of 2 scenarios will be used to compute the confidence interval on xhat.
-
-Loading scenario instances and initializing scenario tree for xhat scenario bundle.
-Initializing PH
-
-We are solving a MINIMIZATION problem.
-Creating the xhat extensive form.
-
-Composite scenarios:
-Scenario1
-Scenario4
-
-Solving the xhat extensive form.
-Extensive form objective value given xhat=151556.6
-The computation of xhat is complete - starting to compute confidence interval via sub-sampling.
-
-Computing statistics for sample k=1.
-Loading scenario instances and initializing scenario tree for xstar scenario bundle.
-Initializing PH
-
-Creating the xstar extensive form.
-
-Composite scenarios:
-Scenario6
-Scenario8
-
-Solving the xstar extensive form.
-Sample extensive form objective value=131734.959999
-Solving the extensive form given the xhat solution.
-Sample extensive form objective value given xhat=154886.6
-
-Computing statistics for sample k=2.
-Loading scenario instances and initializing scenario tree for xstar scenario bundle.
-Initializing PH
-
-Creating the xstar extensive form.
-
-Composite scenarios:
-Scenario2
-Scenario5
-
-Solving the xstar extensive form.
-Sample extensive form objective value=145068.48
-Solving the extensive form given the xhat solution.
-Sample extensive form objective value given xhat=154617.32
-
-Computing statistics for sample k=3.
-Loading scenario instances and initializing scenario tree for xstar scenario bundle.
-Initializing PH
-
-Creating the xstar extensive form.
-
-Composite scenarios:
-Scenario7
-Scenario9
-
-Solving the xstar extensive form.
-Sample extensive form objective value=139613.36
-Solving the extensive form given the xhat solution.
-Sample extensive form objective value given xhat=152946.6
-
-Computing statistics for sample k=4.
-Loading scenario instances and initializing scenario tree for xstar scenario bundle.
-Initializing PH
-
-Creating the xstar extensive form.
-
-Composite scenarios:
-Scenario3
-Scenario10
-
-Solving the xstar extensive form.
-Sample extensive form objective value=135746.079999
-Solving the extensive form given the xhat solution.
-Sample extensive form objective value given xhat=153675.96
-g_supk_of_xhat[1]=23151.640001
-g_supk_of_xhat[2]= 9548.840000
-g_supk_of_xhat[3]=13345.039800
-g_supk_of_xhat[4]=17941.001101
-
-Raw results:
-g_bar= 15996.6302254
-g_stddev= 5875.93038209
-Average f(xhat)= 154031.62
-
-Results summary:
-Confidence interval width for alpha=0.001 is 37070.6545408
-Confidence interval width for alpha=0.005 is 29523.021965
-Confidence interval width for alpha=0.01 is 27005.1857963
-Confidence interval width for alpha=0.025 is 24152.4215958
-Confidence interval width for alpha=0.05 is 22260.3720127
-Confidence interval width for alpha=0.1 is 20500.5308633
-Confidence interval width for alpha=0.25 is 18173.662432
diff --git a/pyomo/pysp/tests/unit/baselines/computeconf_networkflow1ef10_cplex_darwin.baseline-a b/pyomo/pysp/tests/unit/baselines/computeconf_networkflow1ef10_cplex_darwin.baseline-a
deleted file mode 100644
index 34b5c75a27b..00000000000
--- a/pyomo/pysp/tests/unit/baselines/computeconf_networkflow1ef10_cplex_darwin.baseline-a
+++ /dev/null
@@ -1,96 +0,0 @@
-Loading reference model and scenario tree
-Starting confidence interval calculation...
-Problem contains 10 scenarios, of which 2 will be used to find a solution xhat.
-A total of 4 groups of 2 scenarios will be used to compute the confidence interval on xhat.
-
-Loading scenario instances and initializing scenario tree for xhat scenario bundle.
-Initializing PH
-
-We are solving a MINIMIZATION problem.
-Creating the xhat extensive form.
-
-Composite scenarios:
-Scenario1
-Scenario4
-
-Solving the xhat extensive form.
-Extensive form objective value given xhat=151556.6
-The computation of xhat is complete - starting to compute confidence interval via sub-sampling.
-
-Computing statistics for sample k=1.
-Loading scenario instances and initializing scenario tree for xstar scenario bundle.
-Initializing PH
-
-Creating the xstar extensive form.
-
-Composite scenarios:
-Scenario6
-Scenario8
-
-Solving the xstar extensive form.
-Sample extensive form objective value=131734.959999
-Solving the extensive form given the xhat solution.
-Sample extensive form objective value given xhat=154886.6
-
-Computing statistics for sample k=2.
-Loading scenario instances and initializing scenario tree for xstar scenario bundle.
-Initializing PH
-
-Creating the xstar extensive form.
-
-Composite scenarios:
-Scenario2
-Scenario5
-
-Solving the xstar extensive form.
-Sample extensive form objective value=145068.48
-Solving the extensive form given the xhat solution.
-Sample extensive form objective value given xhat=154617.32
-
-Computing statistics for sample k=3.
-Loading scenario instances and initializing scenario tree for xstar scenario bundle.
-Initializing PH
-
-Creating the xstar extensive form.
-
-Composite scenarios:
-Scenario7
-Scenario9
-
-Solving the xstar extensive form.
-Sample extensive form objective value=139613.36
-Solving the extensive form given the xhat solution.
-Sample extensive form objective value given xhat=152946.6
-
-Computing statistics for sample k=4.
-Loading scenario instances and initializing scenario tree for xstar scenario bundle.
-Initializing PH
-
-Creating the xstar extensive form.
-
-Composite scenarios:
-Scenario3
-Scenario10
-
-Solving the xstar extensive form.
-Sample extensive form objective value=135746.079999
-Solving the extensive form given the xhat solution.
-Sample extensive form objective value given xhat=153675.96
-g_supk_of_xhat[1]=23151.640001
-g_supk_of_xhat[2]= 9548.840000
-g_supk_of_xhat[3]=13333.240000
-g_supk_of_xhat[4]=17941.001101
-
-Raw results:
-g_bar= 15993.6802755
-g_stddev= 5877.70801316
-Average f(xhat)= 154031.62
-
-Results summary:
-Confidence interval width for alpha=0.001 is 37074.0800647
-Confidence interval width for alpha=0.005 is 29524.1641218
-Confidence interval width for alpha=0.01 is 27005.5662381
-Confidence interval width for alpha=0.025 is 24151.9389978
-Confidence interval width for alpha=0.05 is 22259.3170175
-Confidence interval width for alpha=0.1 is 20498.9434676
-Confidence interval width for alpha=0.25 is 18171.3710944
diff --git a/pyomo/pysp/tests/unit/baselines/computeconf_networkflow1ef10_cplex_darwin.baseline-b b/pyomo/pysp/tests/unit/baselines/computeconf_networkflow1ef10_cplex_darwin.baseline-b
deleted file mode 100644
index 9ccf777365a..00000000000
--- a/pyomo/pysp/tests/unit/baselines/computeconf_networkflow1ef10_cplex_darwin.baseline-b
+++ /dev/null
@@ -1,38 +0,0 @@
-Loading reference model and scenario tree
-Starting confidence interval calculation...
-Problem contains 10 scenarios, of which 2 will be used to find a solution xhat.
-A total of 4 groups of 2 scenarios will be used to compute the confidence interval on xhat.
-
-Loading scenario instances and initializing scenario tree for xhat scenario bundle.
-Initializing PH
-
-We are solving a MINIMIZATION problem.
-Creating the xhat extensive form.
-
-Composite scenarios:
-Scenario7
-Scenario9
-
-Solving the xhat extensive form.
-Extensive form objective value given xhat=139613.3599996802
-The computation of xhat is complete - starting to compute confidence interval via sub-sampling.
-
-Computing statistics for sample k=1.
-Loading scenario instances and initializing scenario tree for xstar scenario bundle.
-Initializing PH
-
-Creating the xstar extensive form.
-
-Composite scenarios:
-Scenario1
-Scenario3
-
-Solving the xstar extensive form.
-Sample extensive form objective value=151550.72546702344
-Solving the extensive form given the xhat solution.
-RUN-TIME ERROR:
-EF solve failed solution status check:
-Solver Status: ok
-Termination Condition: infeasible
-Solution Status:
-
diff --git a/pyomo/pysp/tests/unit/baselines/farmer_ef.baseline.lp b/pyomo/pysp/tests/unit/baselines/farmer_ef.baseline.lp
deleted file mode 100644
index 0ac0036293a..00000000000
--- a/pyomo/pysp/tests/unit/baselines/farmer_ef.baseline.lp
+++ /dev/null
@@ -1,333 +0,0 @@
-\* Source Pyomo model name=MASTER *\
-
-min
-MASTER:
-+76.666665899999998 AboveAverageScenario_DevotedAcreage(CORN)
-+86.66666579999999 AboveAverageScenario_DevotedAcreage(SUGAR_BEETS)
-+49.999999499999994 AboveAverageScenario_DevotedAcreage(WHEAT)
-+69.999999299999999 AboveAverageScenario_QuantityPurchased(CORN)
-+33333.332999999999 AboveAverageScenario_QuantityPurchased(SUGAR_BEETS)
-+79.333332540000001 AboveAverageScenario_QuantityPurchased(WHEAT)
--49.999999499999994 AboveAverageScenario_QuantitySubQuotaSold(CORN)
--11.999999879999999 AboveAverageScenario_QuantitySubQuotaSold(SUGAR_BEETS)
--56.6666661 AboveAverageScenario_QuantitySubQuotaSold(WHEAT)
--3.3333332999999996 AboveAverageScenario_QuantitySuperQuotaSold(SUGAR_BEETS)
-+76.666668199999989 AverageScenario_DevotedAcreage(CORN)
-+86.666668399999992 AverageScenario_DevotedAcreage(SUGAR_BEETS)
-+50.000000999999997 AverageScenario_DevotedAcreage(WHEAT)
-+70.000001400000002 AverageScenario_QuantityPurchased(CORN)
-+33333.333999999995 AverageScenario_QuantityPurchased(SUGAR_BEETS)
-+79.333334919999999 AverageScenario_QuantityPurchased(WHEAT)
--50.000000999999997 AverageScenario_QuantitySubQuotaSold(CORN)
--12.000000239999999 AverageScenario_QuantitySubQuotaSold(SUGAR_BEETS)
--56.666667799999999 AverageScenario_QuantitySubQuotaSold(WHEAT)
--3.3333333999999999 AverageScenario_QuantitySuperQuotaSold(SUGAR_BEETS)
-+76.666665899999998 BelowAverageScenario_DevotedAcreage(CORN)
-+86.66666579999999 BelowAverageScenario_DevotedAcreage(SUGAR_BEETS)
-+49.999999499999994 BelowAverageScenario_DevotedAcreage(WHEAT)
-+69.999999299999999 BelowAverageScenario_QuantityPurchased(CORN)
-+33333.332999999999 BelowAverageScenario_QuantityPurchased(SUGAR_BEETS)
-+79.333332540000001 BelowAverageScenario_QuantityPurchased(WHEAT)
--49.999999499999994 BelowAverageScenario_QuantitySubQuotaSold(CORN)
--11.999999879999999 BelowAverageScenario_QuantitySubQuotaSold(SUGAR_BEETS)
--56.6666661 BelowAverageScenario_QuantitySubQuotaSold(WHEAT)
--3.3333332999999996 BelowAverageScenario_QuantitySuperQuotaSold(SUGAR_BEETS)
-
-s.t.
-
-c_e_MASTER_BLEND_CONSTRAINT_RootNode(1)_:
--1 BelowAverageScenario_DevotedAcreage(CORN)
-+1 MASTER_BLEND_VAR_RootNode(DevotedAcreage__CORN)
-= 0
-
-c_e_MASTER_BLEND_CONSTRAINT_RootNode(2)_:
--1 AverageScenario_DevotedAcreage(CORN)
-+1 MASTER_BLEND_VAR_RootNode(DevotedAcreage__CORN)
-= 0
-
-c_e_MASTER_BLEND_CONSTRAINT_RootNode(3)_:
--1 AboveAverageScenario_DevotedAcreage(CORN)
-+1 MASTER_BLEND_VAR_RootNode(DevotedAcreage__CORN)
-= 0
-
-c_e_MASTER_BLEND_CONSTRAINT_RootNode(4)_:
--1 BelowAverageScenario_DevotedAcreage(SUGAR_BEETS)
-+1 MASTER_BLEND_VAR_RootNode(DevotedAcreage__SUGAR_BEETS)
-= 0
-
-c_e_MASTER_BLEND_CONSTRAINT_RootNode(5)_:
--1 AverageScenario_DevotedAcreage(SUGAR_BEETS)
-+1 MASTER_BLEND_VAR_RootNode(DevotedAcreage__SUGAR_BEETS)
-= 0
-
-c_e_MASTER_BLEND_CONSTRAINT_RootNode(6)_:
--1 AboveAverageScenario_DevotedAcreage(SUGAR_BEETS)
-+1 MASTER_BLEND_VAR_RootNode(DevotedAcreage__SUGAR_BEETS)
-= 0
-
-c_e_MASTER_BLEND_CONSTRAINT_RootNode(7)_:
--1 BelowAverageScenario_DevotedAcreage(WHEAT)
-+1 MASTER_BLEND_VAR_RootNode(DevotedAcreage__WHEAT)
-= 0
-
-c_e_MASTER_BLEND_CONSTRAINT_RootNode(8)_:
--1 AverageScenario_DevotedAcreage(WHEAT)
-+1 MASTER_BLEND_VAR_RootNode(DevotedAcreage__WHEAT)
-= 0
-
-c_e_MASTER_BLEND_CONSTRAINT_RootNode(9)_:
--1 AboveAverageScenario_DevotedAcreage(WHEAT)
-+1 MASTER_BLEND_VAR_RootNode(DevotedAcreage__WHEAT)
-= 0
-
-c_u_BelowAverageScenario_ConstrainTotalAcreage_:
-+1 BelowAverageScenario_DevotedAcreage(CORN)
-+1 BelowAverageScenario_DevotedAcreage(SUGAR_BEETS)
-+1 BelowAverageScenario_DevotedAcreage(WHEAT)
-<= 500
-
-c_l_BelowAverageScenario_EnforceCattleFeedRequirement(CORN)_:
-+2.3999999999999999 BelowAverageScenario_DevotedAcreage(CORN)
-+1 BelowAverageScenario_QuantityPurchased(CORN)
--1 BelowAverageScenario_QuantitySubQuotaSold(CORN)
--1 BelowAverageScenario_QuantitySuperQuotaSold(CORN)
->= 240
-
-c_l_BelowAverageScenario_EnforceCattleFeedRequirement(SUGAR_BEETS)_:
-+16 BelowAverageScenario_DevotedAcreage(SUGAR_BEETS)
-+1 BelowAverageScenario_QuantityPurchased(SUGAR_BEETS)
--1 BelowAverageScenario_QuantitySubQuotaSold(SUGAR_BEETS)
--1 BelowAverageScenario_QuantitySuperQuotaSold(SUGAR_BEETS)
->= 0
-
-c_l_BelowAverageScenario_EnforceCattleFeedRequirement(WHEAT)_:
-+2 BelowAverageScenario_DevotedAcreage(WHEAT)
-+1 BelowAverageScenario_QuantityPurchased(WHEAT)
--1 BelowAverageScenario_QuantitySubQuotaSold(WHEAT)
--1 BelowAverageScenario_QuantitySuperQuotaSold(WHEAT)
->= 200
-
-c_u_BelowAverageScenario_LimitAmountSold(CORN)_:
--2.3999999999999999 BelowAverageScenario_DevotedAcreage(CORN)
-+1 BelowAverageScenario_QuantitySubQuotaSold(CORN)
-+1 BelowAverageScenario_QuantitySuperQuotaSold(CORN)
-<= 0
-
-c_u_BelowAverageScenario_LimitAmountSold(SUGAR_BEETS)_:
--16 BelowAverageScenario_DevotedAcreage(SUGAR_BEETS)
-+1 BelowAverageScenario_QuantitySubQuotaSold(SUGAR_BEETS)
-+1 BelowAverageScenario_QuantitySuperQuotaSold(SUGAR_BEETS)
-<= 0
-
-c_u_BelowAverageScenario_LimitAmountSold(WHEAT)_:
--2 BelowAverageScenario_DevotedAcreage(WHEAT)
-+1 BelowAverageScenario_QuantitySubQuotaSold(WHEAT)
-+1 BelowAverageScenario_QuantitySuperQuotaSold(WHEAT)
-<= 0
-
-r_l_BelowAverageScenario_EnforceQuotas(CORN)_:
-+1 BelowAverageScenario_QuantitySubQuotaSold(CORN)
->= 0
-
-r_u_BelowAverageScenario_EnforceQuotas(CORN)_:
-+1 BelowAverageScenario_QuantitySubQuotaSold(CORN)
-<= 100000
-
-r_l_BelowAverageScenario_EnforceQuotas(SUGAR_BEETS)_:
-+1 BelowAverageScenario_QuantitySubQuotaSold(SUGAR_BEETS)
->= 0
-
-r_u_BelowAverageScenario_EnforceQuotas(SUGAR_BEETS)_:
-+1 BelowAverageScenario_QuantitySubQuotaSold(SUGAR_BEETS)
-<= 6000
-
-r_l_BelowAverageScenario_EnforceQuotas(WHEAT)_:
-+1 BelowAverageScenario_QuantitySubQuotaSold(WHEAT)
->= 0
-
-r_u_BelowAverageScenario_EnforceQuotas(WHEAT)_:
-+1 BelowAverageScenario_QuantitySubQuotaSold(WHEAT)
-<= 100000
-
-c_u_AverageScenario_ConstrainTotalAcreage_:
-+1 AverageScenario_DevotedAcreage(CORN)
-+1 AverageScenario_DevotedAcreage(SUGAR_BEETS)
-+1 AverageScenario_DevotedAcreage(WHEAT)
-<= 500
-
-c_l_AverageScenario_EnforceCattleFeedRequirement(CORN)_:
-+3 AverageScenario_DevotedAcreage(CORN)
-+1 AverageScenario_QuantityPurchased(CORN)
--1 AverageScenario_QuantitySubQuotaSold(CORN)
--1 AverageScenario_QuantitySuperQuotaSold(CORN)
->= 240
-
-c_l_AverageScenario_EnforceCattleFeedRequirement(SUGAR_BEETS)_:
-+20 AverageScenario_DevotedAcreage(SUGAR_BEETS)
-+1 AverageScenario_QuantityPurchased(SUGAR_BEETS)
--1 AverageScenario_QuantitySubQuotaSold(SUGAR_BEETS)
--1 AverageScenario_QuantitySuperQuotaSold(SUGAR_BEETS)
->= 0
-
-c_l_AverageScenario_EnforceCattleFeedRequirement(WHEAT)_:
-+2.5 AverageScenario_DevotedAcreage(WHEAT)
-+1 AverageScenario_QuantityPurchased(WHEAT)
--1 AverageScenario_QuantitySubQuotaSold(WHEAT)
--1 AverageScenario_QuantitySuperQuotaSold(WHEAT)
->= 200
-
-c_u_AverageScenario_LimitAmountSold(CORN)_:
--3 AverageScenario_DevotedAcreage(CORN)
-+1 AverageScenario_QuantitySubQuotaSold(CORN)
-+1 AverageScenario_QuantitySuperQuotaSold(CORN)
-<= 0
-
-c_u_AverageScenario_LimitAmountSold(SUGAR_BEETS)_:
--20 AverageScenario_DevotedAcreage(SUGAR_BEETS)
-+1 AverageScenario_QuantitySubQuotaSold(SUGAR_BEETS)
-+1 AverageScenario_QuantitySuperQuotaSold(SUGAR_BEETS)
-<= 0
-
-c_u_AverageScenario_LimitAmountSold(WHEAT)_:
--2.5 AverageScenario_DevotedAcreage(WHEAT)
-+1 AverageScenario_QuantitySubQuotaSold(WHEAT)
-+1 AverageScenario_QuantitySuperQuotaSold(WHEAT)
-<= 0
-
-r_l_AverageScenario_EnforceQuotas(CORN)_:
-+1 AverageScenario_QuantitySubQuotaSold(CORN)
->= 0
-
-r_u_AverageScenario_EnforceQuotas(CORN)_:
-+1 AverageScenario_QuantitySubQuotaSold(CORN)
-<= 100000
-
-r_l_AverageScenario_EnforceQuotas(SUGAR_BEETS)_:
-+1 AverageScenario_QuantitySubQuotaSold(SUGAR_BEETS)
->= 0
-
-r_u_AverageScenario_EnforceQuotas(SUGAR_BEETS)_:
-+1 AverageScenario_QuantitySubQuotaSold(SUGAR_BEETS)
-<= 6000
-
-r_l_AverageScenario_EnforceQuotas(WHEAT)_:
-+1 AverageScenario_QuantitySubQuotaSold(WHEAT)
->= 0
-
-r_u_AverageScenario_EnforceQuotas(WHEAT)_:
-+1 AverageScenario_QuantitySubQuotaSold(WHEAT)
-<= 100000
-
-c_u_AboveAverageScenario_ConstrainTotalAcreage_:
-+1 AboveAverageScenario_DevotedAcreage(CORN)
-+1 AboveAverageScenario_DevotedAcreage(SUGAR_BEETS)
-+1 AboveAverageScenario_DevotedAcreage(WHEAT)
-<= 500
-
-c_l_AboveAverageScenario_EnforceCattleFeedRequirement(CORN)_:
-+3.6000000000000001 AboveAverageScenario_DevotedAcreage(CORN)
-+1 AboveAverageScenario_QuantityPurchased(CORN)
--1 AboveAverageScenario_QuantitySubQuotaSold(CORN)
--1 AboveAverageScenario_QuantitySuperQuotaSold(CORN)
->= 240
-
-c_l_AboveAverageScenario_EnforceCattleFeedRequirement(SUGAR_BEETS)_:
-+24 AboveAverageScenario_DevotedAcreage(SUGAR_BEETS)
-+1 AboveAverageScenario_QuantityPurchased(SUGAR_BEETS)
--1 AboveAverageScenario_QuantitySubQuotaSold(SUGAR_BEETS)
--1 AboveAverageScenario_QuantitySuperQuotaSold(SUGAR_BEETS)
->= 0
-
-c_l_AboveAverageScenario_EnforceCattleFeedRequirement(WHEAT)_:
-+3 AboveAverageScenario_DevotedAcreage(WHEAT)
-+1 AboveAverageScenario_QuantityPurchased(WHEAT)
--1 AboveAverageScenario_QuantitySubQuotaSold(WHEAT)
--1 AboveAverageScenario_QuantitySuperQuotaSold(WHEAT)
->= 200
-
-c_u_AboveAverageScenario_LimitAmountSold(CORN)_:
--3.6000000000000001 AboveAverageScenario_DevotedAcreage(CORN)
-+1 AboveAverageScenario_QuantitySubQuotaSold(CORN)
-+1 AboveAverageScenario_QuantitySuperQuotaSold(CORN)
-<= 0
-
-c_u_AboveAverageScenario_LimitAmountSold(SUGAR_BEETS)_:
--24 AboveAverageScenario_DevotedAcreage(SUGAR_BEETS)
-+1 AboveAverageScenario_QuantitySubQuotaSold(SUGAR_BEETS)
-+1 AboveAverageScenario_QuantitySuperQuotaSold(SUGAR_BEETS)
-<= 0
-
-c_u_AboveAverageScenario_LimitAmountSold(WHEAT)_:
--3 AboveAverageScenario_DevotedAcreage(WHEAT)
-+1 AboveAverageScenario_QuantitySubQuotaSold(WHEAT)
-+1 AboveAverageScenario_QuantitySuperQuotaSold(WHEAT)
-<= 0
-
-r_l_AboveAverageScenario_EnforceQuotas(CORN)_:
-+1 AboveAverageScenario_QuantitySubQuotaSold(CORN)
->= 0
-
-r_u_AboveAverageScenario_EnforceQuotas(CORN)_:
-+1 AboveAverageScenario_QuantitySubQuotaSold(CORN)
-<= 100000
-
-r_l_AboveAverageScenario_EnforceQuotas(SUGAR_BEETS)_:
-+1 AboveAverageScenario_QuantitySubQuotaSold(SUGAR_BEETS)
->= 0
-
-r_u_AboveAverageScenario_EnforceQuotas(SUGAR_BEETS)_:
-+1 AboveAverageScenario_QuantitySubQuotaSold(SUGAR_BEETS)
-<= 6000
-
-r_l_AboveAverageScenario_EnforceQuotas(WHEAT)_:
-+1 AboveAverageScenario_QuantitySubQuotaSold(WHEAT)
->= 0
-
-r_u_AboveAverageScenario_EnforceQuotas(WHEAT)_:
-+1 AboveAverageScenario_QuantitySubQuotaSold(WHEAT)
-<= 100000
-
-c_e_ONE_VAR_CONSTANT:
-ONE_VAR_CONSTANT = 1.0
-
-bounds
- -inf <= MASTER_BLEND_VAR_RootNode(DevotedAcreage__CORN) <= +inf
- -inf <= MASTER_BLEND_VAR_RootNode(DevotedAcreage__SUGAR_BEETS) <= +inf
- -inf <= MASTER_BLEND_VAR_RootNode(DevotedAcreage__WHEAT) <= +inf
- 0 <= BelowAverageScenario_DevotedAcreage(CORN) <= 500
- 0 <= BelowAverageScenario_DevotedAcreage(SUGAR_BEETS) <= 500
- 0 <= BelowAverageScenario_DevotedAcreage(WHEAT) <= 500
- 0 <= BelowAverageScenario_QuantitySubQuotaSold(CORN) <= +inf
- 0 <= BelowAverageScenario_QuantitySubQuotaSold(SUGAR_BEETS) <= +inf
- 0 <= BelowAverageScenario_QuantitySubQuotaSold(WHEAT) <= +inf
- 0 <= BelowAverageScenario_QuantitySuperQuotaSold(CORN) <= +inf
- 0 <= BelowAverageScenario_QuantitySuperQuotaSold(SUGAR_BEETS) <= +inf
- 0 <= BelowAverageScenario_QuantitySuperQuotaSold(WHEAT) <= +inf
- 0 <= BelowAverageScenario_QuantityPurchased(CORN) <= +inf
- 0 <= BelowAverageScenario_QuantityPurchased(SUGAR_BEETS) <= +inf
- 0 <= BelowAverageScenario_QuantityPurchased(WHEAT) <= +inf
- 0 <= AverageScenario_DevotedAcreage(CORN) <= 500
- 0 <= AverageScenario_DevotedAcreage(SUGAR_BEETS) <= 500
- 0 <= AverageScenario_DevotedAcreage(WHEAT) <= 500
- 0 <= AverageScenario_QuantitySubQuotaSold(CORN) <= +inf
- 0 <= AverageScenario_QuantitySubQuotaSold(SUGAR_BEETS) <= +inf
- 0 <= AverageScenario_QuantitySubQuotaSold(WHEAT) <= +inf
- 0 <= AverageScenario_QuantitySuperQuotaSold(CORN) <= +inf
- 0 <= AverageScenario_QuantitySuperQuotaSold(SUGAR_BEETS) <= +inf
- 0 <= AverageScenario_QuantitySuperQuotaSold(WHEAT) <= +inf
- 0 <= AverageScenario_QuantityPurchased(CORN) <= +inf
- 0 <= AverageScenario_QuantityPurchased(SUGAR_BEETS) <= +inf
- 0 <= AverageScenario_QuantityPurchased(WHEAT) <= +inf
- 0 <= AboveAverageScenario_DevotedAcreage(CORN) <= 500
- 0 <= AboveAverageScenario_DevotedAcreage(SUGAR_BEETS) <= 500
- 0 <= AboveAverageScenario_DevotedAcreage(WHEAT) <= 500
- 0 <= AboveAverageScenario_QuantitySubQuotaSold(CORN) <= +inf
- 0 <= AboveAverageScenario_QuantitySubQuotaSold(SUGAR_BEETS) <= +inf
- 0 <= AboveAverageScenario_QuantitySubQuotaSold(WHEAT) <= +inf
- 0 <= AboveAverageScenario_QuantitySuperQuotaSold(CORN) <= +inf
- 0 <= AboveAverageScenario_QuantitySuperQuotaSold(SUGAR_BEETS) <= +inf
- 0 <= AboveAverageScenario_QuantitySuperQuotaSold(WHEAT) <= +inf
- 0 <= AboveAverageScenario_QuantityPurchased(CORN) <= +inf
- 0 <= AboveAverageScenario_QuantityPurchased(SUGAR_BEETS) <= +inf
- 0 <= AboveAverageScenario_QuantityPurchased(WHEAT) <= +inf
-end
diff --git a/pyomo/pysp/tests/unit/baselines/farmer_ef.baseline.txt b/pyomo/pysp/tests/unit/baselines/farmer_ef.baseline.txt
deleted file mode 100644
index 5800c38e403..00000000000
--- a/pyomo/pysp/tests/unit/baselines/farmer_ef.baseline.txt
+++ /dev/null
@@ -1,171 +0,0 @@
-Importing model and scenario tree files
-Time to import model and scenario tree structure files=0.01 seconds
-Scenario Tree Detail
-----------------------------------------------------
-Tree Nodes:
-
- Name=AboveAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AboveAverageScenario
-
- Name=AverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AverageScenario
-
- Name=BelowAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- BelowAverageScenario
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- AboveAverageNode
- AverageNode
- BelowAverageNode
- Scenarios:
- AboveAverageScenario
- AverageScenario
- BelowAverageScenario
-
-----------------------------------------------------
-Stages:
- Name=FirstStage
- Tree Nodes:
- RootNode
- Variables:
- DevotedAcreage : [*]
- Cost Variable:
- FirstStageCost
-
- Name=SecondStage
- Tree Nodes:
- AboveAverageNode
- AverageNode
- BelowAverageNode
- Variables:
- QuantityPurchased : [*]
- QuantitySubQuotaSold : [*]
- QuantitySuperQuotaSold : [*]
- Cost Variable:
- SecondStageCost
-
-----------------------------------------------------
-Scenarios:
- Name=AboveAverageScenario
- Probability=0.3333
- Leaf node=AboveAverageNode
- Tree node sequence:
- RootNode
- AboveAverageNode
-
- Name=AverageScenario
- Probability=0.3333
- Leaf node=AverageNode
- Tree node sequence:
- RootNode
- AverageNode
-
- Name=BelowAverageScenario
- Probability=0.3333
- Leaf node=BelowAverageNode
- Tree node sequence:
- RootNode
- BelowAverageNode
-
-----------------------------------------------------
-Scenario tree is valid!
-Initializing ScenarioTreeManagerClientSerial with options:
- * verbose: True
- - disable_gc: False
- - profile: 0
- - traceback: False
- - output_scenario_tree_solution: False
- - solution_saver_extension: ()
- - solution_loader_extension: ()
- - solution_writer: ()
- * output_file: /home/jwatson/sp/pyomo/pyomo/pyomo/pysp/tests/unit/test_farmer_ef.lp
- - solve: False
- - output_scenario_costs: None
- - output_instance_construction_time: False
- - compile_scenario_instances: False
- - output_times: False
- * model_location: /home/jwatson/sp/pyomo/pyomo/examples/pysp/farmer/models
- - model_directory: None (DEPRECATED)
- * scenario_tree_location: /home/jwatson/sp/pyomo/pyomo/examples/pysp/farmer/scenariodata
- - instance_directory: None (DEPRECATED)
- - objective_sense_stage_based: None
- - postinit_callback_location: ()
- - bounds_cfgfile: None (DEPRECATED)
- - aggregategetter_callback_location: ()
- - aggregate_cfgfile: None (DEPRECATED)
- - scenario_tree_random_seed: None
- - scenario_tree_seed: None (DEPRECATED)
- - scenario_tree_downsample_fraction: 1.0
- - scenario_bundle_specification: None
- - create_random_bundles: 0
- - profile_memory: 0
- - cvar_weight: 1.0
- - generate_weighted_cvar: False
- - risk_alpha: 0.95
- - cc_alpha: 0.0
- - cc_indicator_var: None
- - mipgap: None
- - solver: cplex
- - solver_io: None
- - solver_manager: serial
- - solver_options: ()
- - disable_warmstart: False
- - pyro_host: None
- - pyro_port: None
- - pyro_shutdown: False
- - shutdown_pyro: None (DEPRECATED)
- - output_solver_results: False
- * symbolic_solver_labels: True
- - output_solver_log: False
- - keep_solver_files: False
- - pyro_shutdown_workers: False
- - shutdown_pyro_workers: None (DEPRECATED)
- - activate_jsonio_solution_saver: None
-
-Constructing scenario tree instances
-Scenario-based instance initialization enabled
-Creating instance for scenario=BelowAverageScenario
-Data for scenario=BelowAverageScenario loads from file=/home/jwatson/sp/pyomo/pyomo/examples/pysp/farmer/scenariodata/BelowAverageScenario.dat
-Creating instance for scenario=AverageScenario
-Data for scenario=AverageScenario loads from file=/home/jwatson/sp/pyomo/pyomo/examples/pysp/farmer/scenariodata/AverageScenario.dat
-Creating instance for scenario=AboveAverageScenario
-Data for scenario=AboveAverageScenario loads from file=/home/jwatson/sp/pyomo/pyomo/examples/pysp/farmer/scenariodata/AboveAverageScenario.dat
-Time to construct scenario instances=0.02 seconds
-Linking instances into scenario tree
-Time link scenario tree with instances=0.00 seconds
-ScenarioTreeManagerClientSerial is successfully initialized
-Overall initialization time=0.02 seconds
-
-Initializing extensive form algorithm for stochastic programming problems.
-Creating extensive form instance
-Creating variables for master binding instance
-Time to construct extensive form instance=0.00 seconds
-Starting to write extensive form
-Extensive form written to file=/home/jwatson/sp/pyomo/pyomo/pyomo/pysp/tests/unit/test_farmer_ef.lp
-Time to write output file=0.01 seconds
-Closing ScenarioTreeManagerClientSerial
-
-Total EF execution time=0.05 seconds
-
diff --git a/pyomo/pysp/tests/unit/baselines/farmer_ef_cvar.baseline.lp b/pyomo/pysp/tests/unit/baselines/farmer_ef_cvar.baseline.lp
deleted file mode 100644
index 06c3a0cca6b..00000000000
--- a/pyomo/pysp/tests/unit/baselines/farmer_ef_cvar.baseline.lp
+++ /dev/null
@@ -1,357 +0,0 @@
-\* Source Pyomo model name=MASTER *\
-
-min
-MASTER:
-+1 CVAR_ETA_RootNode
-+3.3333333000000005 CVAR_EXCESS_AboveAverageScenario
-+3.3333334000000003 CVAR_EXCESS_AverageScenario
-+3.3333333000000005 CVAR_EXCESS_BelowAverageScenario
-+10.000000000000002 ONE_VAR_CONSTANT
-
-s.t.
-
-c_l_COMPUTE_SCENARIO_EXCESS(1)_:
--230 BelowAverageScenario_DevotedAcreage(CORN)
--260 BelowAverageScenario_DevotedAcreage(SUGAR_BEETS)
--150 BelowAverageScenario_DevotedAcreage(WHEAT)
--210 BelowAverageScenario_QuantityPurchased(CORN)
--100000 BelowAverageScenario_QuantityPurchased(SUGAR_BEETS)
--238 BelowAverageScenario_QuantityPurchased(WHEAT)
-+150 BelowAverageScenario_QuantitySubQuotaSold(CORN)
-+36 BelowAverageScenario_QuantitySubQuotaSold(SUGAR_BEETS)
-+170 BelowAverageScenario_QuantitySubQuotaSold(WHEAT)
-+10 BelowAverageScenario_QuantitySuperQuotaSold(SUGAR_BEETS)
-+1 CVAR_ETA_RootNode
-+1 CVAR_EXCESS_BelowAverageScenario
->= 0
-
-c_l_COMPUTE_SCENARIO_EXCESS(2)_:
--230 AverageScenario_DevotedAcreage(CORN)
--260 AverageScenario_DevotedAcreage(SUGAR_BEETS)
--150 AverageScenario_DevotedAcreage(WHEAT)
--210 AverageScenario_QuantityPurchased(CORN)
--100000 AverageScenario_QuantityPurchased(SUGAR_BEETS)
--238 AverageScenario_QuantityPurchased(WHEAT)
-+150 AverageScenario_QuantitySubQuotaSold(CORN)
-+36 AverageScenario_QuantitySubQuotaSold(SUGAR_BEETS)
-+170 AverageScenario_QuantitySubQuotaSold(WHEAT)
-+10 AverageScenario_QuantitySuperQuotaSold(SUGAR_BEETS)
-+1 CVAR_ETA_RootNode
-+1 CVAR_EXCESS_AverageScenario
->= 0
-
-c_l_COMPUTE_SCENARIO_EXCESS(3)_:
--230 AboveAverageScenario_DevotedAcreage(CORN)
--260 AboveAverageScenario_DevotedAcreage(SUGAR_BEETS)
--150 AboveAverageScenario_DevotedAcreage(WHEAT)
--210 AboveAverageScenario_QuantityPurchased(CORN)
--100000 AboveAverageScenario_QuantityPurchased(SUGAR_BEETS)
--238 AboveAverageScenario_QuantityPurchased(WHEAT)
-+150 AboveAverageScenario_QuantitySubQuotaSold(CORN)
-+36 AboveAverageScenario_QuantitySubQuotaSold(SUGAR_BEETS)
-+170 AboveAverageScenario_QuantitySubQuotaSold(WHEAT)
-+10 AboveAverageScenario_QuantitySuperQuotaSold(SUGAR_BEETS)
-+1 CVAR_ETA_RootNode
-+1 CVAR_EXCESS_AboveAverageScenario
->= 0
-
-c_e_MASTER_BLEND_CONSTRAINT_RootNode(1)_:
--1 BelowAverageScenario_DevotedAcreage(CORN)
-+1 MASTER_BLEND_VAR_RootNode(DevotedAcreage__CORN)
-= 0
-
-c_e_MASTER_BLEND_CONSTRAINT_RootNode(2)_:
--1 AverageScenario_DevotedAcreage(CORN)
-+1 MASTER_BLEND_VAR_RootNode(DevotedAcreage__CORN)
-= 0
-
-c_e_MASTER_BLEND_CONSTRAINT_RootNode(3)_:
--1 AboveAverageScenario_DevotedAcreage(CORN)
-+1 MASTER_BLEND_VAR_RootNode(DevotedAcreage__CORN)
-= 0
-
-c_e_MASTER_BLEND_CONSTRAINT_RootNode(4)_:
--1 BelowAverageScenario_DevotedAcreage(SUGAR_BEETS)
-+1 MASTER_BLEND_VAR_RootNode(DevotedAcreage__SUGAR_BEETS)
-= 0
-
-c_e_MASTER_BLEND_CONSTRAINT_RootNode(5)_:
--1 AverageScenario_DevotedAcreage(SUGAR_BEETS)
-+1 MASTER_BLEND_VAR_RootNode(DevotedAcreage__SUGAR_BEETS)
-= 0
-
-c_e_MASTER_BLEND_CONSTRAINT_RootNode(6)_:
--1 AboveAverageScenario_DevotedAcreage(SUGAR_BEETS)
-+1 MASTER_BLEND_VAR_RootNode(DevotedAcreage__SUGAR_BEETS)
-= 0
-
-c_e_MASTER_BLEND_CONSTRAINT_RootNode(7)_:
--1 BelowAverageScenario_DevotedAcreage(WHEAT)
-+1 MASTER_BLEND_VAR_RootNode(DevotedAcreage__WHEAT)
-= 0
-
-c_e_MASTER_BLEND_CONSTRAINT_RootNode(8)_:
--1 AverageScenario_DevotedAcreage(WHEAT)
-+1 MASTER_BLEND_VAR_RootNode(DevotedAcreage__WHEAT)
-= 0
-
-c_e_MASTER_BLEND_CONSTRAINT_RootNode(9)_:
--1 AboveAverageScenario_DevotedAcreage(WHEAT)
-+1 MASTER_BLEND_VAR_RootNode(DevotedAcreage__WHEAT)
-= 0
-
-c_u_BelowAverageScenario_ConstrainTotalAcreage_:
-+1 BelowAverageScenario_DevotedAcreage(CORN)
-+1 BelowAverageScenario_DevotedAcreage(SUGAR_BEETS)
-+1 BelowAverageScenario_DevotedAcreage(WHEAT)
-<= 500
-
-c_l_BelowAverageScenario_EnforceCattleFeedRequirement(CORN)_:
-+2.3999999999999999 BelowAverageScenario_DevotedAcreage(CORN)
-+1 BelowAverageScenario_QuantityPurchased(CORN)
--1 BelowAverageScenario_QuantitySubQuotaSold(CORN)
--1 BelowAverageScenario_QuantitySuperQuotaSold(CORN)
->= 240
-
-c_l_BelowAverageScenario_EnforceCattleFeedRequirement(SUGAR_BEETS)_:
-+16 BelowAverageScenario_DevotedAcreage(SUGAR_BEETS)
-+1 BelowAverageScenario_QuantityPurchased(SUGAR_BEETS)
--1 BelowAverageScenario_QuantitySubQuotaSold(SUGAR_BEETS)
--1 BelowAverageScenario_QuantitySuperQuotaSold(SUGAR_BEETS)
->= 0
-
-c_l_BelowAverageScenario_EnforceCattleFeedRequirement(WHEAT)_:
-+2 BelowAverageScenario_DevotedAcreage(WHEAT)
-+1 BelowAverageScenario_QuantityPurchased(WHEAT)
--1 BelowAverageScenario_QuantitySubQuotaSold(WHEAT)
--1 BelowAverageScenario_QuantitySuperQuotaSold(WHEAT)
->= 200
-
-c_u_BelowAverageScenario_LimitAmountSold(CORN)_:
--2.3999999999999999 BelowAverageScenario_DevotedAcreage(CORN)
-+1 BelowAverageScenario_QuantitySubQuotaSold(CORN)
-+1 BelowAverageScenario_QuantitySuperQuotaSold(CORN)
-<= 0
-
-c_u_BelowAverageScenario_LimitAmountSold(SUGAR_BEETS)_:
--16 BelowAverageScenario_DevotedAcreage(SUGAR_BEETS)
-+1 BelowAverageScenario_QuantitySubQuotaSold(SUGAR_BEETS)
-+1 BelowAverageScenario_QuantitySuperQuotaSold(SUGAR_BEETS)
-<= 0
-
-c_u_BelowAverageScenario_LimitAmountSold(WHEAT)_:
--2 BelowAverageScenario_DevotedAcreage(WHEAT)
-+1 BelowAverageScenario_QuantitySubQuotaSold(WHEAT)
-+1 BelowAverageScenario_QuantitySuperQuotaSold(WHEAT)
-<= 0
-
-r_l_BelowAverageScenario_EnforceQuotas(CORN)_:
-+1 BelowAverageScenario_QuantitySubQuotaSold(CORN)
->= 0
-
-r_u_BelowAverageScenario_EnforceQuotas(CORN)_:
-+1 BelowAverageScenario_QuantitySubQuotaSold(CORN)
-<= 100000
-
-r_l_BelowAverageScenario_EnforceQuotas(SUGAR_BEETS)_:
-+1 BelowAverageScenario_QuantitySubQuotaSold(SUGAR_BEETS)
->= 0
-
-r_u_BelowAverageScenario_EnforceQuotas(SUGAR_BEETS)_:
-+1 BelowAverageScenario_QuantitySubQuotaSold(SUGAR_BEETS)
-<= 6000
-
-r_l_BelowAverageScenario_EnforceQuotas(WHEAT)_:
-+1 BelowAverageScenario_QuantitySubQuotaSold(WHEAT)
->= 0
-
-r_u_BelowAverageScenario_EnforceQuotas(WHEAT)_:
-+1 BelowAverageScenario_QuantitySubQuotaSold(WHEAT)
-<= 100000
-
-c_u_AverageScenario_ConstrainTotalAcreage_:
-+1 AverageScenario_DevotedAcreage(CORN)
-+1 AverageScenario_DevotedAcreage(SUGAR_BEETS)
-+1 AverageScenario_DevotedAcreage(WHEAT)
-<= 500
-
-c_l_AverageScenario_EnforceCattleFeedRequirement(CORN)_:
-+3 AverageScenario_DevotedAcreage(CORN)
-+1 AverageScenario_QuantityPurchased(CORN)
--1 AverageScenario_QuantitySubQuotaSold(CORN)
--1 AverageScenario_QuantitySuperQuotaSold(CORN)
->= 240
-
-c_l_AverageScenario_EnforceCattleFeedRequirement(SUGAR_BEETS)_:
-+20 AverageScenario_DevotedAcreage(SUGAR_BEETS)
-+1 AverageScenario_QuantityPurchased(SUGAR_BEETS)
--1 AverageScenario_QuantitySubQuotaSold(SUGAR_BEETS)
--1 AverageScenario_QuantitySuperQuotaSold(SUGAR_BEETS)
->= 0
-
-c_l_AverageScenario_EnforceCattleFeedRequirement(WHEAT)_:
-+2.5 AverageScenario_DevotedAcreage(WHEAT)
-+1 AverageScenario_QuantityPurchased(WHEAT)
--1 AverageScenario_QuantitySubQuotaSold(WHEAT)
--1 AverageScenario_QuantitySuperQuotaSold(WHEAT)
->= 200
-
-c_u_AverageScenario_LimitAmountSold(CORN)_:
--3 AverageScenario_DevotedAcreage(CORN)
-+1 AverageScenario_QuantitySubQuotaSold(CORN)
-+1 AverageScenario_QuantitySuperQuotaSold(CORN)
-<= 0
-
-c_u_AverageScenario_LimitAmountSold(SUGAR_BEETS)_:
--20 AverageScenario_DevotedAcreage(SUGAR_BEETS)
-+1 AverageScenario_QuantitySubQuotaSold(SUGAR_BEETS)
-+1 AverageScenario_QuantitySuperQuotaSold(SUGAR_BEETS)
-<= 0
-
-c_u_AverageScenario_LimitAmountSold(WHEAT)_:
--2.5 AverageScenario_DevotedAcreage(WHEAT)
-+1 AverageScenario_QuantitySubQuotaSold(WHEAT)
-+1 AverageScenario_QuantitySuperQuotaSold(WHEAT)
-<= 0
-
-r_l_AverageScenario_EnforceQuotas(CORN)_:
-+1 AverageScenario_QuantitySubQuotaSold(CORN)
->= 0
-
-r_u_AverageScenario_EnforceQuotas(CORN)_:
-+1 AverageScenario_QuantitySubQuotaSold(CORN)
-<= 100000
-
-r_l_AverageScenario_EnforceQuotas(SUGAR_BEETS)_:
-+1 AverageScenario_QuantitySubQuotaSold(SUGAR_BEETS)
->= 0
-
-r_u_AverageScenario_EnforceQuotas(SUGAR_BEETS)_:
-+1 AverageScenario_QuantitySubQuotaSold(SUGAR_BEETS)
-<= 6000
-
-r_l_AverageScenario_EnforceQuotas(WHEAT)_:
-+1 AverageScenario_QuantitySubQuotaSold(WHEAT)
->= 0
-
-r_u_AverageScenario_EnforceQuotas(WHEAT)_:
-+1 AverageScenario_QuantitySubQuotaSold(WHEAT)
-<= 100000
-
-c_u_AboveAverageScenario_ConstrainTotalAcreage_:
-+1 AboveAverageScenario_DevotedAcreage(CORN)
-+1 AboveAverageScenario_DevotedAcreage(SUGAR_BEETS)
-+1 AboveAverageScenario_DevotedAcreage(WHEAT)
-<= 500
-
-c_l_AboveAverageScenario_EnforceCattleFeedRequirement(CORN)_:
-+3.6000000000000001 AboveAverageScenario_DevotedAcreage(CORN)
-+1 AboveAverageScenario_QuantityPurchased(CORN)
--1 AboveAverageScenario_QuantitySubQuotaSold(CORN)
--1 AboveAverageScenario_QuantitySuperQuotaSold(CORN)
->= 240
-
-c_l_AboveAverageScenario_EnforceCattleFeedRequirement(SUGAR_BEETS)_:
-+24 AboveAverageScenario_DevotedAcreage(SUGAR_BEETS)
-+1 AboveAverageScenario_QuantityPurchased(SUGAR_BEETS)
--1 AboveAverageScenario_QuantitySubQuotaSold(SUGAR_BEETS)
--1 AboveAverageScenario_QuantitySuperQuotaSold(SUGAR_BEETS)
->= 0
-
-c_l_AboveAverageScenario_EnforceCattleFeedRequirement(WHEAT)_:
-+3 AboveAverageScenario_DevotedAcreage(WHEAT)
-+1 AboveAverageScenario_QuantityPurchased(WHEAT)
--1 AboveAverageScenario_QuantitySubQuotaSold(WHEAT)
--1 AboveAverageScenario_QuantitySuperQuotaSold(WHEAT)
->= 200
-
-c_u_AboveAverageScenario_LimitAmountSold(CORN)_:
--3.6000000000000001 AboveAverageScenario_DevotedAcreage(CORN)
-+1 AboveAverageScenario_QuantitySubQuotaSold(CORN)
-+1 AboveAverageScenario_QuantitySuperQuotaSold(CORN)
-<= 0
-
-c_u_AboveAverageScenario_LimitAmountSold(SUGAR_BEETS)_:
--24 AboveAverageScenario_DevotedAcreage(SUGAR_BEETS)
-+1 AboveAverageScenario_QuantitySubQuotaSold(SUGAR_BEETS)
-+1 AboveAverageScenario_QuantitySuperQuotaSold(SUGAR_BEETS)
-<= 0
-
-c_u_AboveAverageScenario_LimitAmountSold(WHEAT)_:
--3 AboveAverageScenario_DevotedAcreage(WHEAT)
-+1 AboveAverageScenario_QuantitySubQuotaSold(WHEAT)
-+1 AboveAverageScenario_QuantitySuperQuotaSold(WHEAT)
-<= 0
-
-r_l_AboveAverageScenario_EnforceQuotas(CORN)_:
-+1 AboveAverageScenario_QuantitySubQuotaSold(CORN)
->= 0
-
-r_u_AboveAverageScenario_EnforceQuotas(CORN)_:
-+1 AboveAverageScenario_QuantitySubQuotaSold(CORN)
-<= 100000
-
-r_l_AboveAverageScenario_EnforceQuotas(SUGAR_BEETS)_:
-+1 AboveAverageScenario_QuantitySubQuotaSold(SUGAR_BEETS)
->= 0
-
-r_u_AboveAverageScenario_EnforceQuotas(SUGAR_BEETS)_:
-+1 AboveAverageScenario_QuantitySubQuotaSold(SUGAR_BEETS)
-<= 6000
-
-r_l_AboveAverageScenario_EnforceQuotas(WHEAT)_:
-+1 AboveAverageScenario_QuantitySubQuotaSold(WHEAT)
->= 0
-
-r_u_AboveAverageScenario_EnforceQuotas(WHEAT)_:
-+1 AboveAverageScenario_QuantitySubQuotaSold(WHEAT)
-<= 100000
-
-c_e_ONE_VAR_CONSTANT:
-ONE_VAR_CONSTANT = 1.0
-
-bounds
- -inf <= CVAR_ETA_RootNode <= +inf
- 0 <= CVAR_EXCESS_BelowAverageScenario <= +inf
- 0 <= CVAR_EXCESS_AverageScenario <= +inf
- 0 <= CVAR_EXCESS_AboveAverageScenario <= +inf
- -inf <= MASTER_BLEND_VAR_RootNode(DevotedAcreage__CORN) <= +inf
- -inf <= MASTER_BLEND_VAR_RootNode(DevotedAcreage__SUGAR_BEETS) <= +inf
- -inf <= MASTER_BLEND_VAR_RootNode(DevotedAcreage__WHEAT) <= +inf
- 0 <= BelowAverageScenario_DevotedAcreage(CORN) <= 500
- 0 <= BelowAverageScenario_DevotedAcreage(SUGAR_BEETS) <= 500
- 0 <= BelowAverageScenario_DevotedAcreage(WHEAT) <= 500
- 0 <= BelowAverageScenario_QuantitySubQuotaSold(CORN) <= +inf
- 0 <= BelowAverageScenario_QuantitySubQuotaSold(SUGAR_BEETS) <= +inf
- 0 <= BelowAverageScenario_QuantitySubQuotaSold(WHEAT) <= +inf
- 0 <= BelowAverageScenario_QuantitySuperQuotaSold(CORN) <= +inf
- 0 <= BelowAverageScenario_QuantitySuperQuotaSold(SUGAR_BEETS) <= +inf
- 0 <= BelowAverageScenario_QuantitySuperQuotaSold(WHEAT) <= +inf
- 0 <= BelowAverageScenario_QuantityPurchased(CORN) <= +inf
- 0 <= BelowAverageScenario_QuantityPurchased(SUGAR_BEETS) <= +inf
- 0 <= BelowAverageScenario_QuantityPurchased(WHEAT) <= +inf
- 0 <= AverageScenario_DevotedAcreage(CORN) <= 500
- 0 <= AverageScenario_DevotedAcreage(SUGAR_BEETS) <= 500
- 0 <= AverageScenario_DevotedAcreage(WHEAT) <= 500
- 0 <= AverageScenario_QuantitySubQuotaSold(CORN) <= +inf
- 0 <= AverageScenario_QuantitySubQuotaSold(SUGAR_BEETS) <= +inf
- 0 <= AverageScenario_QuantitySubQuotaSold(WHEAT) <= +inf
- 0 <= AverageScenario_QuantitySuperQuotaSold(CORN) <= +inf
- 0 <= AverageScenario_QuantitySuperQuotaSold(SUGAR_BEETS) <= +inf
- 0 <= AverageScenario_QuantitySuperQuotaSold(WHEAT) <= +inf
- 0 <= AverageScenario_QuantityPurchased(CORN) <= +inf
- 0 <= AverageScenario_QuantityPurchased(SUGAR_BEETS) <= +inf
- 0 <= AverageScenario_QuantityPurchased(WHEAT) <= +inf
- 0 <= AboveAverageScenario_DevotedAcreage(CORN) <= 500
- 0 <= AboveAverageScenario_DevotedAcreage(SUGAR_BEETS) <= 500
- 0 <= AboveAverageScenario_DevotedAcreage(WHEAT) <= 500
- 0 <= AboveAverageScenario_QuantitySubQuotaSold(CORN) <= +inf
- 0 <= AboveAverageScenario_QuantitySubQuotaSold(SUGAR_BEETS) <= +inf
- 0 <= AboveAverageScenario_QuantitySubQuotaSold(WHEAT) <= +inf
- 0 <= AboveAverageScenario_QuantitySuperQuotaSold(CORN) <= +inf
- 0 <= AboveAverageScenario_QuantitySuperQuotaSold(SUGAR_BEETS) <= +inf
- 0 <= AboveAverageScenario_QuantitySuperQuotaSold(WHEAT) <= +inf
- 0 <= AboveAverageScenario_QuantityPurchased(CORN) <= +inf
- 0 <= AboveAverageScenario_QuantityPurchased(SUGAR_BEETS) <= +inf
- 0 <= AboveAverageScenario_QuantityPurchased(WHEAT) <= +inf
-end
diff --git a/pyomo/pysp/tests/unit/baselines/farmer_ef_cvar.baseline.txt b/pyomo/pysp/tests/unit/baselines/farmer_ef_cvar.baseline.txt
deleted file mode 100644
index bcf20ea78a3..00000000000
--- a/pyomo/pysp/tests/unit/baselines/farmer_ef_cvar.baseline.txt
+++ /dev/null
@@ -1,175 +0,0 @@
-Importing model and scenario tree files
-Time to import model and scenario tree structure files=0.01 seconds
-Scenario Tree Detail
-----------------------------------------------------
-Tree Nodes:
-
- Name=AboveAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AboveAverageScenario
-
- Name=AverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AverageScenario
-
- Name=BelowAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- BelowAverageScenario
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- AboveAverageNode
- AverageNode
- BelowAverageNode
- Scenarios:
- AboveAverageScenario
- AverageScenario
- BelowAverageScenario
-
-----------------------------------------------------
-Stages:
- Name=FirstStage
- Tree Nodes:
- RootNode
- Variables:
- DevotedAcreage : [*]
- Cost Variable:
- FirstStageCost
-
- Name=SecondStage
- Tree Nodes:
- AboveAverageNode
- AverageNode
- BelowAverageNode
- Variables:
- QuantityPurchased : [*]
- QuantitySubQuotaSold : [*]
- QuantitySuperQuotaSold : [*]
- Cost Variable:
- SecondStageCost
-
-----------------------------------------------------
-Scenarios:
- Name=AboveAverageScenario
- Probability=0.3333
- Leaf node=AboveAverageNode
- Tree node sequence:
- RootNode
- AboveAverageNode
-
- Name=AverageScenario
- Probability=0.3333
- Leaf node=AverageNode
- Tree node sequence:
- RootNode
- AverageNode
-
- Name=BelowAverageScenario
- Probability=0.3333
- Leaf node=BelowAverageNode
- Tree node sequence:
- RootNode
- BelowAverageNode
-
-----------------------------------------------------
-Scenario tree is valid!
-Initializing ScenarioTreeManagerClientSerial with options:
- * verbose: True
- - disable_gc: False
- - profile: 0
- - traceback: False
- - output_scenario_tree_solution: False
- - solution_saver_extension: ()
- - solution_loader_extension: ()
- - solution_writer: ()
- * output_file: /home/jwatson/sp/pyomo/pyomo/pyomo/pysp/tests/unit/test_farmer_ef_cvar.lp
- - solve: False
- - output_scenario_costs: None
- - output_instance_construction_time: False
- - compile_scenario_instances: False
- - output_times: False
- * model_location: /home/jwatson/sp/pyomo/pyomo/examples/pysp/farmer/models
- - model_directory: None (DEPRECATED)
- * scenario_tree_location: /home/jwatson/sp/pyomo/pyomo/examples/pysp/farmer/scenariodata
- - instance_directory: None (DEPRECATED)
- - objective_sense_stage_based: None
- - postinit_callback_location: ()
- - bounds_cfgfile: None (DEPRECATED)
- - aggregategetter_callback_location: ()
- - aggregate_cfgfile: None (DEPRECATED)
- - scenario_tree_random_seed: None
- - scenario_tree_seed: None (DEPRECATED)
- - scenario_tree_downsample_fraction: 1.0
- - scenario_bundle_specification: None
- - create_random_bundles: 0
- - profile_memory: 0
- * cvar_weight: 0.0
- * generate_weighted_cvar: True
- * risk_alpha: 0.9
- - cc_alpha: 0.0
- - cc_indicator_var: None
- - mipgap: None
- - solver: cplex
- - solver_io: None
- - solver_manager: serial
- - solver_options: ()
- - disable_warmstart: False
- - pyro_host: None
- - pyro_port: None
- - pyro_shutdown: False
- - shutdown_pyro: None (DEPRECATED)
- - output_solver_results: False
- * symbolic_solver_labels: True
- - output_solver_log: False
- - keep_solver_files: False
- - pyro_shutdown_workers: False
- - shutdown_pyro_workers: None (DEPRECATED)
- - activate_jsonio_solution_saver: None
-
-Constructing scenario tree instances
-Scenario-based instance initialization enabled
-Creating instance for scenario=BelowAverageScenario
-Data for scenario=BelowAverageScenario loads from file=/home/jwatson/sp/pyomo/pyomo/examples/pysp/farmer/scenariodata/BelowAverageScenario.dat
-Creating instance for scenario=AverageScenario
-Data for scenario=AverageScenario loads from file=/home/jwatson/sp/pyomo/pyomo/examples/pysp/farmer/scenariodata/AverageScenario.dat
-Creating instance for scenario=AboveAverageScenario
-Data for scenario=AboveAverageScenario loads from file=/home/jwatson/sp/pyomo/pyomo/examples/pysp/farmer/scenariodata/AboveAverageScenario.dat
-Time to construct scenario instances=0.02 seconds
-Linking instances into scenario tree
-Time link scenario tree with instances=0.00 seconds
-ScenarioTreeManagerClientSerial is successfully initialized
-Overall initialization time=0.02 seconds
-
-Initializing extensive form algorithm for stochastic programming problems.
-Creating extensive form instance
-Writing CVaR weighted objective
-CVaR term weight=0.0
-CVaR alpha=0.9
-
-Creating variables for master binding instance
-Time to construct extensive form instance=0.00 seconds
-Starting to write extensive form
-Extensive form written to file=/home/jwatson/sp/pyomo/pyomo/pyomo/pysp/tests/unit/test_farmer_ef_cvar.lp
-Time to write output file=0.01 seconds
-Closing ScenarioTreeManagerClientSerial
-
-Total EF execution time=0.05 seconds
-
diff --git a/pyomo/pysp/tests/unit/baselines/farmer_ef_with_solve_cplex.baseline b/pyomo/pysp/tests/unit/baselines/farmer_ef_with_solve_cplex.baseline
deleted file mode 100644
index 9c49d8cd01a..00000000000
--- a/pyomo/pysp/tests/unit/baselines/farmer_ef_with_solve_cplex.baseline
+++ /dev/null
@@ -1,301 +0,0 @@
-Importing model and scenario tree files
-Time to import model and scenario tree structure files=0.01 seconds
-Scenario Tree Detail
-----------------------------------------------------
-Tree Nodes:
-
- Name=AboveAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AboveAverageScenario
-
- Name=AverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AverageScenario
-
- Name=BelowAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- BelowAverageScenario
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- AboveAverageNode
- AverageNode
- BelowAverageNode
- Scenarios:
- AboveAverageScenario
- AverageScenario
- BelowAverageScenario
-
-----------------------------------------------------
-Stages:
- Name=FirstStage
- Tree Nodes:
- RootNode
- Variables:
- DevotedAcreage : [*]
- Cost Variable:
- FirstStageCost
-
- Name=SecondStage
- Tree Nodes:
- AboveAverageNode
- AverageNode
- BelowAverageNode
- Variables:
- QuantityPurchased : [*]
- QuantitySubQuotaSold : [*]
- QuantitySuperQuotaSold : [*]
- Cost Variable:
- SecondStageCost
-
-----------------------------------------------------
-Scenarios:
- Name=AboveAverageScenario
- Probability=0.3333
- Leaf node=AboveAverageNode
- Tree node sequence:
- RootNode
- AboveAverageNode
-
- Name=AverageScenario
- Probability=0.3333
- Leaf node=AverageNode
- Tree node sequence:
- RootNode
- AverageNode
-
- Name=BelowAverageScenario
- Probability=0.3333
- Leaf node=BelowAverageNode
- Tree node sequence:
- RootNode
- BelowAverageNode
-
-----------------------------------------------------
-Scenario tree is valid!
-Initializing ScenarioTreeManagerClientSerial with options:
- * verbose: True
- - disable_gc: False
- - profile: 0
- - traceback: False
- - output_scenario_tree_solution: False
- - solution_saver_extension: ()
- - solution_loader_extension: ()
- - solution_writer: ()
- * output_file: /home/jwatson/sp/pyomo/pyomo/pyomo/pysp/tests/unit/test_farmer_with_solve_cplex.lp
- * solve: True
- - output_scenario_costs: None
- - output_instance_construction_time: False
- - compile_scenario_instances: False
- - output_times: False
- * model_location: /home/jwatson/sp/pyomo/pyomo/examples/pysp/farmer/models
- - model_directory: None (DEPRECATED)
- * scenario_tree_location: /home/jwatson/sp/pyomo/pyomo/examples/pysp/farmer/scenariodata
- - instance_directory: None (DEPRECATED)
- - objective_sense_stage_based: None
- - postinit_callback_location: ()
- - bounds_cfgfile: None (DEPRECATED)
- - aggregategetter_callback_location: ()
- - aggregate_cfgfile: None (DEPRECATED)
- - scenario_tree_random_seed: None
- - scenario_tree_seed: None (DEPRECATED)
- - scenario_tree_downsample_fraction: 1.0
- - scenario_bundle_specification: None
- - create_random_bundles: 0
- - profile_memory: 0
- - cvar_weight: 1.0
- - generate_weighted_cvar: False
- - risk_alpha: 0.95
- - cc_alpha: 0.0
- - cc_indicator_var: None
- - mipgap: None
- * solver: cplex
- - solver_io: None
- - solver_manager: serial
- - solver_options: ()
- - disable_warmstart: False
- - pyro_host: None
- - pyro_port: None
- - pyro_shutdown: False
- - shutdown_pyro: None (DEPRECATED)
- - output_solver_results: False
- - symbolic_solver_labels: False
- - output_solver_log: False
- - keep_solver_files: False
- - pyro_shutdown_workers: False
- - shutdown_pyro_workers: None (DEPRECATED)
- - activate_jsonio_solution_saver: None
-
-Constructing scenario tree instances
-Scenario-based instance initialization enabled
-Creating instance for scenario=BelowAverageScenario
-Data for scenario=BelowAverageScenario loads from file=/home/jwatson/sp/pyomo/pyomo/examples/pysp/farmer/scenariodata/BelowAverageScenario.dat
-Creating instance for scenario=AverageScenario
-Data for scenario=AverageScenario loads from file=/home/jwatson/sp/pyomo/pyomo/examples/pysp/farmer/scenariodata/AverageScenario.dat
-Creating instance for scenario=AboveAverageScenario
-Data for scenario=AboveAverageScenario loads from file=/home/jwatson/sp/pyomo/pyomo/examples/pysp/farmer/scenariodata/AboveAverageScenario.dat
-Time to construct scenario instances=0.02 seconds
-Linking instances into scenario tree
-Time link scenario tree with instances=0.00 seconds
-ScenarioTreeManagerClientSerial is successfully initialized
-Overall initialization time=0.02 seconds
-
-Initializing extensive form algorithm for stochastic programming problems.
-Creating extensive form instance
-Creating variables for master binding instance
-Time to construct extensive form instance=0.00 seconds
-Starting to write extensive form
-Extensive form written to file=/home/jwatson/sp/pyomo/pyomo/pyomo/pysp/tests/unit/test_farmer_with_solve_cplex.lp
-Time to write output file=0.01 seconds
-Queuing extensive form solve
-Waiting for extensive form solve
-Done with extensive form solve - loading results
-Storing solution in scenario tree
-Time to solve and load results for the extensive form=0.03 seconds
-EF solve completed and solution status is optimal
-EF solve termination condition is optimal
-EF objective: -108390.00001
-EF gap: 0.00000
-EF bound: -108390.00001
-
-Extensive form solution:
-----------------------------------------------------
-Tree Nodes:
-
- Name=AboveAverageNode
- Stage=SecondStage
- Parent=RootNode
- Variables:
- QuantitySubQuotaSold[CORN]=48.0
- QuantitySubQuotaSold[SUGAR_BEETS]=6000.0
- QuantitySubQuotaSold[WHEAT]=310.0
-
- Name=AverageNode
- Stage=SecondStage
- Parent=RootNode
- Variables:
- QuantitySubQuotaSold[SUGAR_BEETS]=5000.0
- QuantitySubQuotaSold[WHEAT]=225.0
-
- Name=BelowAverageNode
- Stage=SecondStage
- Parent=RootNode
- Variables:
- QuantityPurchased[CORN]=48.0
- QuantitySubQuotaSold[SUGAR_BEETS]=4000.0
- QuantitySubQuotaSold[WHEAT]=140.0
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Variables:
- DevotedAcreage[CORN]=80.0
- DevotedAcreage[SUGAR_BEETS]=250.0
- DevotedAcreage[WHEAT]=170.0
-
-
-Extensive form costs:
-Scenario Tree Costs
-----------------------------------------------------
-Tree Nodes:
-
- Name=AboveAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AboveAverageScenario
- Expected cost of (sub)tree rooted at node=-275900.0000
-
- Name=AverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AverageScenario
- Expected cost of (sub)tree rooted at node=-218250.0000
-
- Name=BelowAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-157720.0000
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- AboveAverageNode
- AverageNode
- BelowAverageNode
- Scenarios:
- AboveAverageScenario
- AverageScenario
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-108390.0000
-
-----------------------------------------------------
-Scenarios:
-
- Name=AboveAverageScenario
- Probability=0.3333
- Leaf Node=AboveAverageNode
- Tree node sequence:
- RootNode
- AboveAverageNode
- Stage= FirstStage Cost=108900.0000
- Stage= SecondStage Cost=-275900.0000
- Total scenario cost=-167000.0000
-
- Name=AverageScenario
- Probability=0.3333
- Leaf Node=AverageNode
- Tree node sequence:
- RootNode
- AverageNode
- Stage= FirstStage Cost=108900.0000
- Stage= SecondStage Cost=-218250.0000
- Total scenario cost=-109350.0000
-
- Name=BelowAverageScenario
- Probability=0.3333
- Leaf Node=BelowAverageNode
- Tree node sequence:
- RootNode
- BelowAverageNode
- Stage= FirstStage Cost=108900.0000
- Stage= SecondStage Cost=-157720.0000
- Total scenario cost=-48820.0000
-
-----------------------------------------------------
-Closing ScenarioTreeManagerClientSerial
-
-Total EF execution time=0.08 seconds
-
diff --git a/pyomo/pysp/tests/unit/baselines/farmer_ef_with_solve_cplex_with_csv_writer.baseline b/pyomo/pysp/tests/unit/baselines/farmer_ef_with_solve_cplex_with_csv_writer.baseline
deleted file mode 100644
index 47ec547894f..00000000000
--- a/pyomo/pysp/tests/unit/baselines/farmer_ef_with_solve_cplex_with_csv_writer.baseline
+++ /dev/null
@@ -1,300 +0,0 @@
-Importing model and scenario tree files
-Time to import model and scenario tree structure files=0.01 seconds
-Scenario Tree Detail
-----------------------------------------------------
-Tree Nodes:
-
- Name=AboveAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AboveAverageScenario
-
- Name=AverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AverageScenario
-
- Name=BelowAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- BelowAverageScenario
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- AboveAverageNode
- AverageNode
- BelowAverageNode
- Scenarios:
- AboveAverageScenario
- AverageScenario
- BelowAverageScenario
-
-----------------------------------------------------
-Stages:
- Name=FirstStage
- Tree Nodes:
- RootNode
- Variables:
- DevotedAcreage : [*]
- Cost Variable:
- FirstStageCost
-
- Name=SecondStage
- Tree Nodes:
- AboveAverageNode
- AverageNode
- BelowAverageNode
- Variables:
- QuantityPurchased : [*]
- QuantitySubQuotaSold : [*]
- QuantitySuperQuotaSold : [*]
- Cost Variable:
- SecondStageCost
-
-----------------------------------------------------
-Scenarios:
- Name=AboveAverageScenario
- Probability=0.3333
- Leaf node=AboveAverageNode
- Tree node sequence:
- RootNode
- AboveAverageNode
-
- Name=AverageScenario
- Probability=0.3333
- Leaf node=AverageNode
- Tree node sequence:
- RootNode
- AverageNode
-
- Name=BelowAverageScenario
- Probability=0.3333
- Leaf node=BelowAverageNode
- Tree node sequence:
- RootNode
- BelowAverageNode
-
-----------------------------------------------------
-Scenario tree is valid!
-Initializing ScenarioTreeManagerClientSerial with options:
- * verbose: True
- - disable_gc: False
- - profile: 0
- - traceback: False
- - output_scenario_tree_solution: False
- - solution_saver_extension: ()
- - solution_loader_extension: ()
- * solution_writer: ('pyomo.pysp.plugins.csvsolutionwriter',)
- - output_file: efout
- * solve: True
- - output_scenario_costs: None
- - output_instance_construction_time: False
- - compile_scenario_instances: False
- - output_times: False
- * model_location: /home/jwatson/sp/pyomo/pyomo/examples/pysp/farmer/models
- - model_directory: None (DEPRECATED)
- * scenario_tree_location: /home/jwatson/sp/pyomo/pyomo/examples/pysp/farmer/scenariodata
- - instance_directory: None (DEPRECATED)
- - objective_sense_stage_based: None
- - postinit_callback_location: ()
- - bounds_cfgfile: None (DEPRECATED)
- - aggregategetter_callback_location: ()
- - aggregate_cfgfile: None (DEPRECATED)
- - scenario_tree_random_seed: None
- - scenario_tree_seed: None (DEPRECATED)
- - scenario_tree_downsample_fraction: 1.0
- - scenario_bundle_specification: None
- - create_random_bundles: 0
- - profile_memory: 0
- - cvar_weight: 1.0
- - generate_weighted_cvar: False
- - risk_alpha: 0.95
- - cc_alpha: 0.0
- - cc_indicator_var: None
- - mipgap: None
- * solver: cplex
- - solver_io: None
- - solver_manager: serial
- - solver_options: ()
- - disable_warmstart: False
- - pyro_host: None
- - pyro_port: None
- - pyro_shutdown: False
- - shutdown_pyro: None (DEPRECATED)
- - output_solver_results: False
- - symbolic_solver_labels: False
- - output_solver_log: False
- - keep_solver_files: False
- - pyro_shutdown_workers: False
- - shutdown_pyro_workers: None (DEPRECATED)
- - activate_jsonio_solution_saver: None
-
-Constructing scenario tree instances
-Scenario-based instance initialization enabled
-Creating instance for scenario=BelowAverageScenario
-Data for scenario=BelowAverageScenario loads from file=/home/jwatson/sp/pyomo/pyomo/examples/pysp/farmer/scenariodata/BelowAverageScenario.dat
-Creating instance for scenario=AverageScenario
-Data for scenario=AverageScenario loads from file=/home/jwatson/sp/pyomo/pyomo/examples/pysp/farmer/scenariodata/AverageScenario.dat
-Creating instance for scenario=AboveAverageScenario
-Data for scenario=AboveAverageScenario loads from file=/home/jwatson/sp/pyomo/pyomo/examples/pysp/farmer/scenariodata/AboveAverageScenario.dat
-Time to construct scenario instances=0.02 seconds
-Linking instances into scenario tree
-Time link scenario tree with instances=0.00 seconds
-ScenarioTreeManagerClientSerial is successfully initialized
-Overall initialization time=0.03 seconds
-
-Initializing extensive form algorithm for stochastic programming problems.
-Creating extensive form instance
-Creating variables for master binding instance
-Time to construct extensive form instance=0.00 seconds
-Queuing extensive form solve
-Waiting for extensive form solve
-Done with extensive form solve - loading results
-Storing solution in scenario tree
-Time to solve and load results for the extensive form=0.03 seconds
-EF solve completed and solution status is optimal
-EF solve termination condition is optimal
-EF objective: -108390.00001
-EF gap: 0.00000
-EF bound: -108390.00001
-
-Extensive form solution:
-----------------------------------------------------
-Tree Nodes:
-
- Name=AboveAverageNode
- Stage=SecondStage
- Parent=RootNode
- Variables:
- QuantitySubQuotaSold[CORN]=48.0
- QuantitySubQuotaSold[SUGAR_BEETS]=6000.0
- QuantitySubQuotaSold[WHEAT]=310.0
-
- Name=AverageNode
- Stage=SecondStage
- Parent=RootNode
- Variables:
- QuantitySubQuotaSold[SUGAR_BEETS]=5000.0
- QuantitySubQuotaSold[WHEAT]=225.0
-
- Name=BelowAverageNode
- Stage=SecondStage
- Parent=RootNode
- Variables:
- QuantityPurchased[CORN]=48.0
- QuantitySubQuotaSold[SUGAR_BEETS]=4000.0
- QuantitySubQuotaSold[WHEAT]=140.0
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Variables:
- DevotedAcreage[CORN]=80.0
- DevotedAcreage[SUGAR_BEETS]=250.0
- DevotedAcreage[WHEAT]=170.0
-
-
-Extensive form costs:
-Scenario Tree Costs
-----------------------------------------------------
-Tree Nodes:
-
- Name=AboveAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AboveAverageScenario
- Expected cost of (sub)tree rooted at node=-275900.0000
-
- Name=AverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AverageScenario
- Expected cost of (sub)tree rooted at node=-218250.0000
-
- Name=BelowAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-157720.0000
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- AboveAverageNode
- AverageNode
- BelowAverageNode
- Scenarios:
- AboveAverageScenario
- AverageScenario
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-108390.0000
-
-----------------------------------------------------
-Scenarios:
-
- Name=AboveAverageScenario
- Probability=0.3333
- Leaf Node=AboveAverageNode
- Tree node sequence:
- RootNode
- AboveAverageNode
- Stage= FirstStage Cost=108900.0000
- Stage= SecondStage Cost=-275900.0000
- Total scenario cost=-167000.0000
-
- Name=AverageScenario
- Probability=0.3333
- Leaf Node=AverageNode
- Tree node sequence:
- RootNode
- AverageNode
- Stage= FirstStage Cost=108900.0000
- Stage= SecondStage Cost=-218250.0000
- Total scenario cost=-109350.0000
-
- Name=BelowAverageScenario
- Probability=0.3333
- Leaf Node=BelowAverageNode
- Tree node sequence:
- RootNode
- BelowAverageNode
- Stage= FirstStage Cost=108900.0000
- Stage= SecondStage Cost=-157720.0000
- Total scenario cost=-48820.0000
-
-----------------------------------------------------
-Scenario tree solution written to file=ef.csv
-Scenario stage costs written to file=ef_StageCostDetail.csv
-Closing ScenarioTreeManagerClientSerial
-
-Total EF execution time=0.07 seconds
-
diff --git a/pyomo/pysp/tests/unit/baselines/farmer_ef_with_solve_cplex_with_csv_writer.csv b/pyomo/pysp/tests/unit/baselines/farmer_ef_with_solve_cplex_with_csv_writer.csv
deleted file mode 100644
index 5e3bcfb8d29..00000000000
--- a/pyomo/pysp/tests/unit/baselines/farmer_ef_with_solve_cplex_with_csv_writer.csv
+++ /dev/null
@@ -1,31 +0,0 @@
-FirstStage, RootNode, DevotedAcreage, CORN, 80.0
-FirstStage, RootNode, DevotedAcreage, SUGAR_BEETS, 250.0
-FirstStage, RootNode, DevotedAcreage, WHEAT, 170.0
-SecondStage, AboveAverageNode, QuantityPurchased, CORN, 0.0
-SecondStage, AboveAverageNode, QuantityPurchased, SUGAR_BEETS, 0.0
-SecondStage, AboveAverageNode, QuantityPurchased, WHEAT, 0.0
-SecondStage, AboveAverageNode, QuantitySubQuotaSold, CORN, 48.0
-SecondStage, AboveAverageNode, QuantitySubQuotaSold, SUGAR_BEETS, 6000.0
-SecondStage, AboveAverageNode, QuantitySubQuotaSold, WHEAT, 310.0
-SecondStage, AboveAverageNode, QuantitySuperQuotaSold, CORN, 0.0
-SecondStage, AboveAverageNode, QuantitySuperQuotaSold, SUGAR_BEETS, 0.0
-SecondStage, AboveAverageNode, QuantitySuperQuotaSold, WHEAT, 0.0
-SecondStage, AverageNode, QuantityPurchased, CORN, 0.0
-SecondStage, AverageNode, QuantityPurchased, SUGAR_BEETS, 0.0
-SecondStage, AverageNode, QuantityPurchased, WHEAT, 0.0
-SecondStage, AverageNode, QuantitySubQuotaSold, CORN, 0.0
-SecondStage, AverageNode, QuantitySubQuotaSold, SUGAR_BEETS, 5000.0
-SecondStage, AverageNode, QuantitySubQuotaSold, WHEAT, 225.0
-SecondStage, AverageNode, QuantitySuperQuotaSold, CORN, 0.0
-SecondStage, AverageNode, QuantitySuperQuotaSold, SUGAR_BEETS, 0.0
-SecondStage, AverageNode, QuantitySuperQuotaSold, WHEAT, 0.0
-SecondStage, BelowAverageNode, QuantityPurchased, CORN, 48.0
-SecondStage, BelowAverageNode, QuantityPurchased, SUGAR_BEETS, 0.0
-SecondStage, BelowAverageNode, QuantityPurchased, WHEAT, 0.0
-SecondStage, BelowAverageNode, QuantitySubQuotaSold, CORN, 0.0
-SecondStage, BelowAverageNode, QuantitySubQuotaSold, SUGAR_BEETS, 4000.0
-SecondStage, BelowAverageNode, QuantitySubQuotaSold, WHEAT, 140.0
-SecondStage, BelowAverageNode, QuantitySuperQuotaSold, CORN, 0.0
-SecondStage, BelowAverageNode, QuantitySuperQuotaSold, SUGAR_BEETS, 0.0
-SecondStage, BelowAverageNode, QuantitySuperQuotaSold, WHEAT, 0.0
-
diff --git a/pyomo/pysp/tests/unit/baselines/farmer_ef_with_solve_cplex_with_csv_writer_StageCostDetail.csv b/pyomo/pysp/tests/unit/baselines/farmer_ef_with_solve_cplex_with_csv_writer_StageCostDetail.csv
deleted file mode 100644
index 8084f520f66..00000000000
--- a/pyomo/pysp/tests/unit/baselines/farmer_ef_with_solve_cplex_with_csv_writer_StageCostDetail.csv
+++ /dev/null
@@ -1,6 +0,0 @@
-FirstStage, RootNode, AboveAverageScenario, FirstStageCost, None, 108900.0
-FirstStage, RootNode, AverageScenario, FirstStageCost, None, 108900.0
-FirstStage, RootNode, BelowAverageScenario, FirstStageCost, None, 108900.0
-SecondStage, AboveAverageNode, AboveAverageScenario, SecondStageCost, None, -275900.0
-SecondStage, AverageNode, AverageScenario, SecondStageCost, None, -218250.0
-SecondStage, BelowAverageNode, BelowAverageScenario, SecondStageCost, None, -157720.0
diff --git a/pyomo/pysp/tests/unit/baselines/farmer_ef_with_solve_cplex_with_pyro.baseline b/pyomo/pysp/tests/unit/baselines/farmer_ef_with_solve_cplex_with_pyro.baseline
deleted file mode 100644
index 6674c715c7b..00000000000
--- a/pyomo/pysp/tests/unit/baselines/farmer_ef_with_solve_cplex_with_pyro.baseline
+++ /dev/null
@@ -1,301 +0,0 @@
-Importing model and scenario tree files
-Time to import model and scenario tree structure files=0.02 seconds
-Scenario Tree Detail
-----------------------------------------------------
-Tree Nodes:
-
- Name=AboveAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AboveAverageScenario
-
- Name=AverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AverageScenario
-
- Name=BelowAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- BelowAverageScenario
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- AboveAverageNode
- AverageNode
- BelowAverageNode
- Scenarios:
- AboveAverageScenario
- AverageScenario
- BelowAverageScenario
-
-----------------------------------------------------
-Stages:
- Name=FirstStage
- Tree Nodes:
- RootNode
- Variables:
- DevotedAcreage : [*]
- Cost Variable:
- FirstStageCost
-
- Name=SecondStage
- Tree Nodes:
- AboveAverageNode
- AverageNode
- BelowAverageNode
- Variables:
- QuantityPurchased : [*]
- QuantitySubQuotaSold : [*]
- QuantitySuperQuotaSold : [*]
- Cost Variable:
- SecondStageCost
-
-----------------------------------------------------
-Scenarios:
- Name=AboveAverageScenario
- Probability=0.3333
- Leaf node=AboveAverageNode
- Tree node sequence:
- RootNode
- AboveAverageNode
-
- Name=AverageScenario
- Probability=0.3333
- Leaf node=AverageNode
- Tree node sequence:
- RootNode
- AverageNode
-
- Name=BelowAverageScenario
- Probability=0.3333
- Leaf node=BelowAverageNode
- Tree node sequence:
- RootNode
- BelowAverageNode
-
-----------------------------------------------------
-Scenario tree is valid!
-Initializing ScenarioTreeManagerClientSerial with options:
- * verbose: True
- - disable_gc: False
- - profile: 0
- - traceback: False
- - output_scenario_tree_solution: False
- - solution_saver_extension: ()
- - solution_loader_extension: ()
- - solution_writer: ()
- - output_file: efout
- * solve: True
- - output_scenario_costs: None
- - output_instance_construction_time: False
- - compile_scenario_instances: False
- - output_times: False
- * model_location: /Users/ghackebeil/Projects/pyomo/src/pyomo/examples/pysp/farmer/models
- - model_directory: None (DEPRECATED)
- * scenario_tree_location: /Users/ghackebeil/Projects/pyomo/src/pyomo/examples/pysp/farmer/scenariodata
- - instance_directory: None (DEPRECATED)
- - objective_sense_stage_based: None
- - postinit_callback_location: ()
- - bounds_cfgfile: None (DEPRECATED)
- - aggregategetter_callback_location: ()
- - aggregate_cfgfile: None (DEPRECATED)
- - scenario_tree_random_seed: None
- - scenario_tree_seed: None (DEPRECATED)
- - scenario_tree_downsample_fraction: 1.0
- - scenario_bundle_specification: None
- - create_random_bundles: 0
- - profile_memory: 0
- - cvar_weight: 1.0
- - generate_weighted_cvar: False
- - risk_alpha: 0.95
- - cc_alpha: 0.0
- - cc_indicator_var: None
- - mipgap: None
- * solver: cplex
- - solver_io: None
- * solver_manager: pyro
- - solver_options: ()
- - disable_warmstart: False
- * pyro_host: 127.0.0.1
- * pyro_port: 58638
- - pyro_shutdown: False
- - shutdown_pyro: None (DEPRECATED)
- - output_solver_results: False
- - symbolic_solver_labels: False
- - output_solver_log: False
- - keep_solver_files: False
- * pyro_shutdown_workers: True
- - shutdown_pyro_workers: None (DEPRECATED)
- - activate_jsonio_solution_saver: None
-
-Constructing scenario tree instances
-Scenario-based instance initialization enabled
-Creating instance for scenario=BelowAverageScenario
-Data for scenario=BelowAverageScenario loads from file=/Users/ghackebeil/Projects/pyomo/src/pyomo/examples/pysp/farmer/scenariodata/BelowAverageScenario.dat
-Creating instance for scenario=AverageScenario
-Data for scenario=AverageScenario loads from file=/Users/ghackebeil/Projects/pyomo/src/pyomo/examples/pysp/farmer/scenariodata/AverageScenario.dat
-Creating instance for scenario=AboveAverageScenario
-Data for scenario=AboveAverageScenario loads from file=/Users/ghackebeil/Projects/pyomo/src/pyomo/examples/pysp/farmer/scenariodata/AboveAverageScenario.dat
-Time to construct scenario instances=0.01 seconds
-Linking instances into scenario tree
-Time link scenario tree with instances=0.00 seconds
-ScenarioTreeManagerClientSerial is successfully initialized
-Overall initialization time=0.01 seconds
-
-Initializing extensive form algorithm for stochastic programming problems.
-Client attempting to find Pyro dispatcher object...
-Dispatcher Object URI: PYRO::PyUtilibServer.dispatcher.a6e20907-8f15-4efa-ae84-0d25e42dc9a1@localhost:58639
-Connection to dispatch server established after 1 attempts and 0.00 seconds - this is client: 81436@10-249-254-199.wireless.oregonstate.edu
-Creating extensive form instance
-Creating variables for master binding instance
-Time to construct extensive form instance=0.00 seconds
-Queuing extensive form solve
-Waiting for extensive form solve
-Done with extensive form solve - loading results
-Storing solution in scenario tree
-Time to solve and load results for the extensive form=0.09 seconds
-EF solve completed and solution status is optimal
-EF solve termination condition is optimal
-EF objective: -108390.00001
-EF gap: 0.00000
-EF bound: -108390.00001
-
-Extensive form solution:
-----------------------------------------------------
-Tree Nodes:
-
- Name=AboveAverageNode
- Stage=SecondStage
- Parent=RootNode
- Variables:
- QuantitySubQuotaSold[CORN]=48.0
- QuantitySubQuotaSold[SUGAR_BEETS]=6000.0
- QuantitySubQuotaSold[WHEAT]=310.0
-
- Name=AverageNode
- Stage=SecondStage
- Parent=RootNode
- Variables:
- QuantitySubQuotaSold[SUGAR_BEETS]=5000.0
- QuantitySubQuotaSold[WHEAT]=225.0
-
- Name=BelowAverageNode
- Stage=SecondStage
- Parent=RootNode
- Variables:
- QuantityPurchased[CORN]=48.0
- QuantitySubQuotaSold[SUGAR_BEETS]=4000.0
- QuantitySubQuotaSold[WHEAT]=140.0
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Variables:
- DevotedAcreage[CORN]=80.0
- DevotedAcreage[SUGAR_BEETS]=250.0
- DevotedAcreage[WHEAT]=170.0
-
-
-Extensive form costs:
-Scenario Tree Costs
-----------------------------------------------------
-Tree Nodes:
-
- Name=AboveAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AboveAverageScenario
- Expected cost of (sub)tree rooted at node=-275900.0000
-
- Name=AverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AverageScenario
- Expected cost of (sub)tree rooted at node=-218250.0000
-
- Name=BelowAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-157720.0000
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- AboveAverageNode
- AverageNode
- BelowAverageNode
- Scenarios:
- AboveAverageScenario
- AverageScenario
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-108390.0000
-
-----------------------------------------------------
-Scenarios:
-
- Name=AboveAverageScenario
- Probability=0.3333
- Leaf Node=AboveAverageNode
- Tree node sequence:
- RootNode
- AboveAverageNode
- Stage= FirstStage Cost=108900.0000
- Stage= SecondStage Cost=-275900.0000
- Total scenario cost=-167000.0000
-
- Name=AverageScenario
- Probability=0.3333
- Leaf Node=AverageNode
- Tree node sequence:
- RootNode
- AverageNode
- Stage= FirstStage Cost=108900.0000
- Stage= SecondStage Cost=-218250.0000
- Total scenario cost=-109350.0000
-
- Name=BelowAverageScenario
- Probability=0.3333
- Leaf Node=BelowAverageNode
- Tree node sequence:
- RootNode
- BelowAverageNode
- Stage= FirstStage Cost=108900.0000
- Stage= SecondStage Cost=-157720.0000
- Total scenario cost=-48820.0000
-
-----------------------------------------------------
-Closing ScenarioTreeManagerClientSerial
-
-Total EF execution time=0.13 seconds
-
diff --git a/pyomo/pysp/tests/unit/baselines/farmer_ef_with_solve_gurobi.baseline b/pyomo/pysp/tests/unit/baselines/farmer_ef_with_solve_gurobi.baseline
deleted file mode 100644
index 944afa72111..00000000000
--- a/pyomo/pysp/tests/unit/baselines/farmer_ef_with_solve_gurobi.baseline
+++ /dev/null
@@ -1,301 +0,0 @@
-Importing model and scenario tree files
-Time to import model and scenario tree structure files=0.01 seconds
-Scenario Tree Detail
-----------------------------------------------------
-Tree Nodes:
-
- Name=AboveAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AboveAverageScenario
-
- Name=AverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AverageScenario
-
- Name=BelowAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- BelowAverageScenario
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- AboveAverageNode
- AverageNode
- BelowAverageNode
- Scenarios:
- AboveAverageScenario
- AverageScenario
- BelowAverageScenario
-
-----------------------------------------------------
-Stages:
- Name=FirstStage
- Tree Nodes:
- RootNode
- Variables:
- DevotedAcreage : [*]
- Cost Variable:
- FirstStageCost
-
- Name=SecondStage
- Tree Nodes:
- AboveAverageNode
- AverageNode
- BelowAverageNode
- Variables:
- QuantityPurchased : [*]
- QuantitySubQuotaSold : [*]
- QuantitySuperQuotaSold : [*]
- Cost Variable:
- SecondStageCost
-
-----------------------------------------------------
-Scenarios:
- Name=AboveAverageScenario
- Probability=0.3333
- Leaf node=AboveAverageNode
- Tree node sequence:
- RootNode
- AboveAverageNode
-
- Name=AverageScenario
- Probability=0.3333
- Leaf node=AverageNode
- Tree node sequence:
- RootNode
- AverageNode
-
- Name=BelowAverageScenario
- Probability=0.3333
- Leaf node=BelowAverageNode
- Tree node sequence:
- RootNode
- BelowAverageNode
-
-----------------------------------------------------
-Scenario tree is valid!
-Initializing ScenarioTreeManagerClientSerial with options:
- * verbose: True
- - disable_gc: False
- - profile: 0
- - traceback: False
- - output_scenario_tree_solution: False
- - solution_saver_extension: ()
- - solution_loader_extension: ()
- - solution_writer: ()
- * output_file: /home/hudson/slave/workspace/Pyomo_trunk_python2.6/src/pyomo/pyomo/pysp/tests/unit/test_farmer_with_solve_gurobi.lp
- * solve: True
- - output_scenario_costs: None
- - output_instance_construction_time: False
- - compile_scenario_instances: False
- - output_times: False
- * model_location: /home/hudson/slave/workspace/Pyomo_trunk_python2.6/src/pyomo/examples/pysp/farmer/models
- - model_directory: None (DEPRECATED)
- * scenario_tree_location: /home/hudson/slave/workspace/Pyomo_trunk_python2.6/src/pyomo/examples/pysp/farmer/scenariodata
- - instance_directory: None (DEPRECATED)
- - objective_sense_stage_based: None
- - postinit_callback_location: ()
- - bounds_cfgfile: None (DEPRECATED)
- - aggregategetter_callback_location: ()
- - aggregate_cfgfile: None (DEPRECATED)
- - scenario_tree_random_seed: None
- - scenario_tree_seed: None (DEPRECATED)
- - scenario_tree_downsample_fraction: 1.0
- - scenario_bundle_specification: None
- - create_random_bundles: 0
- - profile_memory: 0
- - cvar_weight: 1.0
- - generate_weighted_cvar: False
- - risk_alpha: 0.95
- - cc_alpha: 0.0
- - cc_indicator_var: None
- - mipgap: None
- * solver: gurobi
- - solver_io: None
- - solver_manager: serial
- - solver_options: ()
- - disable_warmstart: False
- - pyro_host: None
- - pyro_port: None
- - pyro_shutdown: False
- - shutdown_pyro: None (DEPRECATED)
- - output_solver_results: False
- - symbolic_solver_labels: False
- - output_solver_log: False
- - keep_solver_files: False
- - pyro_shutdown_workers: False
- - shutdown_pyro_workers: None (DEPRECATED)
- - activate_jsonio_solution_saver: None
-
-Constructing scenario tree instances
-Scenario-based instance initialization enabled
-Creating instance for scenario=BelowAverageScenario
-Data for scenario=BelowAverageScenario loads from file=/home/hudson/slave/workspace/Pyomo_trunk_python2.6/src/pyomo/examples/pysp/farmer/scenariodata/BelowAverageScenario.dat
-Creating instance for scenario=AverageScenario
-Data for scenario=AverageScenario loads from file=/home/hudson/slave/workspace/Pyomo_trunk_python2.6/src/pyomo/examples/pysp/farmer/scenariodata/AverageScenario.dat
-Creating instance for scenario=AboveAverageScenario
-Data for scenario=AboveAverageScenario loads from file=/home/hudson/slave/workspace/Pyomo_trunk_python2.6/src/pyomo/examples/pysp/farmer/scenariodata/AboveAverageScenario.dat
-Time to construct scenario instances=0.02 seconds
-Linking instances into scenario tree
-Time link scenario tree with instances=0.00 seconds
-ScenarioTreeManagerClientSerial is successfully initialized
-Overall initialization time=0.02 seconds
-
-Initializing extensive form algorithm for stochastic programming problems.
-Creating extensive form instance
-Creating variables for master binding instance
-Time to construct extensive form instance=0.00 seconds
-Starting to write extensive form
-Extensive form written to file=/home/hudson/slave/workspace/Pyomo_trunk_python2.6/src/pyomo/pyomo/pysp/tests/unit/test_farmer_with_solve_gurobi.lp
-Time to write output file=0.01 seconds
-Queuing extensive form solve
-Waiting for extensive form solve
-Done with extensive form solve - loading results
-Storing solution in scenario tree
-Time to solve and load results for the extensive form=0.13 seconds
-EF solve completed and solution status is optimal
-EF solve termination condition is optimal
-EF objective: -108390.00001
-EF gap: 0.00000
-EF bound: -108390.00001
-
-Extensive form solution:
-----------------------------------------------------
-Tree Nodes:
-
- Name=AboveAverageNode
- Stage=SecondStage
- Parent=RootNode
- Variables:
- QuantitySubQuotaSold[CORN]=48.0
- QuantitySubQuotaSold[SUGAR_BEETS]=6000.0
- QuantitySubQuotaSold[WHEAT]=310.0
-
- Name=AverageNode
- Stage=SecondStage
- Parent=RootNode
- Variables:
- QuantitySubQuotaSold[SUGAR_BEETS]=5000.0
- QuantitySubQuotaSold[WHEAT]=225.0
-
- Name=BelowAverageNode
- Stage=SecondStage
- Parent=RootNode
- Variables:
- QuantityPurchased[CORN]=48.0
- QuantitySubQuotaSold[SUGAR_BEETS]=4000.0
- QuantitySubQuotaSold[WHEAT]=140.0
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Variables:
- DevotedAcreage[CORN]=80.0
- DevotedAcreage[SUGAR_BEETS]=250.0
- DevotedAcreage[WHEAT]=170.0
-
-
-Extensive form costs:
-Scenario Tree Costs
-----------------------------------------------------
-Tree Nodes:
-
- Name=AboveAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AboveAverageScenario
- Expected cost of (sub)tree rooted at node=-275900.0000
-
- Name=AverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AverageScenario
- Expected cost of (sub)tree rooted at node=-218250.0000
-
- Name=BelowAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-157720.0000
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- AboveAverageNode
- AverageNode
- BelowAverageNode
- Scenarios:
- AboveAverageScenario
- AverageScenario
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-108390.0000
-
-----------------------------------------------------
-Scenarios:
-
- Name=AboveAverageScenario
- Probability=0.3333
- Leaf Node=AboveAverageNode
- Tree node sequence:
- RootNode
- AboveAverageNode
- Stage= FirstStage Cost=108900.0000
- Stage= SecondStage Cost=-275900.0000
- Total scenario cost=-167000.0000
-
- Name=AverageScenario
- Probability=0.3333
- Leaf Node=AverageNode
- Tree node sequence:
- RootNode
- AverageNode
- Stage= FirstStage Cost=108900.0000
- Stage= SecondStage Cost=-218250.0000
- Total scenario cost=-109350.0000
-
- Name=BelowAverageScenario
- Probability=0.3333
- Leaf Node=BelowAverageNode
- Tree node sequence:
- RootNode
- BelowAverageNode
- Stage= FirstStage Cost=108900.0000
- Stage= SecondStage Cost=-157720.0000
- Total scenario cost=-48820.0000
-
-----------------------------------------------------
-Closing ScenarioTreeManagerClientSerial
-
-Total EF execution time=0.17 seconds
-
diff --git a/pyomo/pysp/tests/unit/baselines/farmer_ef_with_solve_ipopt.baseline b/pyomo/pysp/tests/unit/baselines/farmer_ef_with_solve_ipopt.baseline
deleted file mode 100644
index 4a23ea28c06..00000000000
--- a/pyomo/pysp/tests/unit/baselines/farmer_ef_with_solve_ipopt.baseline
+++ /dev/null
@@ -1,301 +0,0 @@
-Importing model and scenario tree files
-Time to import model and scenario tree structure files=0.02 seconds
-Scenario Tree Detail
-----------------------------------------------------
-Tree Nodes:
-
- Name=AboveAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AboveAverageScenario
-
- Name=AverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AverageScenario
-
- Name=BelowAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- BelowAverageScenario
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- AboveAverageNode
- AverageNode
- BelowAverageNode
- Scenarios:
- AboveAverageScenario
- AverageScenario
- BelowAverageScenario
-
-----------------------------------------------------
-Stages:
- Name=FirstStage
- Tree Nodes:
- RootNode
- Variables:
- DevotedAcreage : [*]
- Cost Variable:
- FirstStageCost
-
- Name=SecondStage
- Tree Nodes:
- AboveAverageNode
- AverageNode
- BelowAverageNode
- Variables:
- QuantityPurchased : [*]
- QuantitySubQuotaSold : [*]
- QuantitySuperQuotaSold : [*]
- Cost Variable:
- SecondStageCost
-
-----------------------------------------------------
-Scenarios:
- Name=AboveAverageScenario
- Probability=0.3333
- Leaf node=AboveAverageNode
- Tree node sequence:
- RootNode
- AboveAverageNode
-
- Name=AverageScenario
- Probability=0.3333
- Leaf node=AverageNode
- Tree node sequence:
- RootNode
- AverageNode
-
- Name=BelowAverageScenario
- Probability=0.3333
- Leaf node=BelowAverageNode
- Tree node sequence:
- RootNode
- BelowAverageNode
-
-----------------------------------------------------
-Scenario tree is valid!
-Initializing ScenarioTreeManagerClientSerial with options:
- * verbose: True
- - disable_gc: False
- - profile: 0
- - traceback: False
- - output_scenario_tree_solution: False
- - solution_saver_extension: ()
- - solution_loader_extension: ()
- - solution_writer: ()
- * output_file: /home/jwatson/sp/pyomo/pyomo/pyomo/pysp/tests/unit/test_farmer_with_solve_ipopt.nl
- * solve: True
- - output_scenario_costs: None
- - output_instance_construction_time: False
- - compile_scenario_instances: False
- - output_times: False
- * model_location: /home/jwatson/sp/pyomo/pyomo/examples/pysp/farmer/models
- - model_directory: None (DEPRECATED)
- * scenario_tree_location: /home/jwatson/sp/pyomo/pyomo/examples/pysp/farmer/scenariodata
- - instance_directory: None (DEPRECATED)
- - objective_sense_stage_based: None
- - postinit_callback_location: ()
- - bounds_cfgfile: None (DEPRECATED)
- - aggregategetter_callback_location: ()
- - aggregate_cfgfile: None (DEPRECATED)
- - scenario_tree_random_seed: None
- - scenario_tree_seed: None (DEPRECATED)
- - scenario_tree_downsample_fraction: 1.0
- - scenario_bundle_specification: None
- - create_random_bundles: 0
- - profile_memory: 0
- - cvar_weight: 1.0
- - generate_weighted_cvar: False
- - risk_alpha: 0.95
- - cc_alpha: 0.0
- - cc_indicator_var: None
- - mipgap: None
- * solver: ipopt
- - solver_io: None
- - solver_manager: serial
- - solver_options: ()
- - disable_warmstart: False
- - pyro_host: None
- - pyro_port: None
- - pyro_shutdown: False
- - shutdown_pyro: None (DEPRECATED)
- - output_solver_results: False
- - symbolic_solver_labels: False
- - output_solver_log: False
- - keep_solver_files: False
- - pyro_shutdown_workers: False
- - shutdown_pyro_workers: None (DEPRECATED)
- - activate_jsonio_solution_saver: None
-
-Constructing scenario tree instances
-Scenario-based instance initialization enabled
-Creating instance for scenario=BelowAverageScenario
-Data for scenario=BelowAverageScenario loads from file=/home/jwatson/sp/pyomo/pyomo/examples/pysp/farmer/scenariodata/BelowAverageScenario.dat
-Creating instance for scenario=AverageScenario
-Data for scenario=AverageScenario loads from file=/home/jwatson/sp/pyomo/pyomo/examples/pysp/farmer/scenariodata/AverageScenario.dat
-Creating instance for scenario=AboveAverageScenario
-Data for scenario=AboveAverageScenario loads from file=/home/jwatson/sp/pyomo/pyomo/examples/pysp/farmer/scenariodata/AboveAverageScenario.dat
-Time to construct scenario instances=0.02 seconds
-Linking instances into scenario tree
-Time link scenario tree with instances=0.00 seconds
-ScenarioTreeManagerClientSerial is successfully initialized
-Overall initialization time=0.02 seconds
-
-Initializing extensive form algorithm for stochastic programming problems.
-Creating extensive form instance
-Creating variables for master binding instance
-Time to construct extensive form instance=0.00 seconds
-Starting to write extensive form
-Extensive form written to file=/home/jwatson/sp/pyomo/pyomo/pyomo/pysp/tests/unit/test_farmer_with_solve_ipopt.nl
-Time to write output file=0.01 seconds
-Queuing extensive form solve
-Waiting for extensive form solve
-Done with extensive form solve - loading results
-Storing solution in scenario tree
-Time to solve and load results for the extensive form=0.03 seconds
-EF solve completed and solution status is optimal
-EF solve termination condition is optimal
-EF objective: -108390.00258
-EF gap:
-EF bound:
-
-Extensive form solution:
-----------------------------------------------------
-Tree Nodes:
-
- Name=AboveAverageNode
- Stage=SecondStage
- Parent=RootNode
- Variables:
- QuantitySubQuotaSold[CORN]=48.00000035262497
- QuantitySubQuotaSold[SUGAR_BEETS]=6000.000059891659
- QuantitySubQuotaSold[WHEAT]=310.0000110506862
-
- Name=AverageNode
- Stage=SecondStage
- Parent=RootNode
- Variables:
- QuantitySubQuotaSold[SUGAR_BEETS]=5000.0000507287905
- QuantitySubQuotaSold[WHEAT]=225.00000954346427
-
- Name=BelowAverageNode
- Stage=SecondStage
- Parent=RootNode
- Variables:
- QuantityPurchased[CORN]=47.99999905781697
- QuantitySubQuotaSold[SUGAR_BEETS]=4000.000040538911
- QuantitySubQuotaSold[WHEAT]=140.00000803623954
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Variables:
- DevotedAcreage[CORN]=79.99999942897873
- DevotedAcreage[SUGAR_BEETS]=250.00000254746843
- DevotedAcreage[WHEAT]=170.00000301443927
-
-
-Extensive form costs:
-Scenario Tree Costs
-----------------------------------------------------
-Tree Nodes:
-
- Name=AboveAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AboveAverageScenario
- Expected cost of (sub)tree rooted at node=-275900.0041
-
- Name=AverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AverageScenario
- Expected cost of (sub)tree rooted at node=-218250.0035
-
- Name=BelowAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-157720.0030
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- AboveAverageNode
- AverageNode
- BelowAverageNode
- Scenarios:
- AboveAverageScenario
- AverageScenario
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-108390.0026
-
-----------------------------------------------------
-Scenarios:
-
- Name=AboveAverageScenario
- Probability=0.3333
- Leaf Node=AboveAverageNode
- Tree node sequence:
- RootNode
- AboveAverageNode
- Stage= FirstStage Cost=108900.0010
- Stage= SecondStage Cost=-275900.0041
- Total scenario cost=-167000.0031
-
- Name=AverageScenario
- Probability=0.3333
- Leaf Node=AverageNode
- Tree node sequence:
- RootNode
- AverageNode
- Stage= FirstStage Cost=108900.0010
- Stage= SecondStage Cost=-218250.0035
- Total scenario cost=-109350.0026
-
- Name=BelowAverageScenario
- Probability=0.3333
- Leaf Node=BelowAverageNode
- Tree node sequence:
- RootNode
- BelowAverageNode
- Stage= FirstStage Cost=108900.0010
- Stage= SecondStage Cost=-157720.0030
- Total scenario cost=-48820.0020
-
-----------------------------------------------------
-Closing ScenarioTreeManagerClientSerial
-
-Total EF execution time=0.10 seconds
-
diff --git a/pyomo/pysp/tests/unit/baselines/farmer_ef_with_solve_ipopt_darwin.baseline b/pyomo/pysp/tests/unit/baselines/farmer_ef_with_solve_ipopt_darwin.baseline
deleted file mode 100644
index bb8497b8e0c..00000000000
--- a/pyomo/pysp/tests/unit/baselines/farmer_ef_with_solve_ipopt_darwin.baseline
+++ /dev/null
@@ -1,301 +0,0 @@
-Importing model and scenario tree files
-Time to import model and scenario tree structure files=0.02 seconds
-Scenario Tree Detail
-----------------------------------------------------
-Tree Nodes:
-
- Name=AboveAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AboveAverageScenario
-
- Name=AverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AverageScenario
-
- Name=BelowAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- BelowAverageScenario
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- AboveAverageNode
- AverageNode
- BelowAverageNode
- Scenarios:
- AboveAverageScenario
- AverageScenario
- BelowAverageScenario
-
-----------------------------------------------------
-Stages:
- Name=FirstStage
- Tree Nodes:
- RootNode
- Variables:
- DevotedAcreage : [*]
- Cost Variable:
- FirstStageCost
-
- Name=SecondStage
- Tree Nodes:
- AboveAverageNode
- AverageNode
- BelowAverageNode
- Variables:
- QuantityPurchased : [*]
- QuantitySubQuotaSold : [*]
- QuantitySuperQuotaSold : [*]
- Cost Variable:
- SecondStageCost
-
-----------------------------------------------------
-Scenarios:
- Name=AboveAverageScenario
- Probability=0.3333
- Leaf node=AboveAverageNode
- Tree node sequence:
- RootNode
- AboveAverageNode
-
- Name=AverageScenario
- Probability=0.3333
- Leaf node=AverageNode
- Tree node sequence:
- RootNode
- AverageNode
-
- Name=BelowAverageScenario
- Probability=0.3333
- Leaf node=BelowAverageNode
- Tree node sequence:
- RootNode
- BelowAverageNode
-
-----------------------------------------------------
-Scenario tree is valid!
-Initializing ScenarioTreeManagerClientSerial with options:
- * verbose: True
- - disable_gc: False
- - profile: 0
- - traceback: False
- - output_scenario_tree_solution: False
- - solution_saver_extension: ()
- - solution_loader_extension: ()
- - solution_writer: ()
- * output_file: /Users/ghackebeil/Projects/pyomo/src/pyomo/pyomo/pysp/tests/unit/test_farmer_with_solve_ipopt.nl
- * solve: True
- - output_scenario_costs: None
- - output_instance_construction_time: False
- - compile_scenario_instances: False
- - output_times: False
- * model_location: /Users/ghackebeil/Projects/pyomo/src/pyomo/examples/pysp/farmer/models
- - model_directory: None (DEPRECATED)
- * scenario_tree_location: /Users/ghackebeil/Projects/pyomo/src/pyomo/examples/pysp/farmer/scenariodata
- - instance_directory: None (DEPRECATED)
- - objective_sense_stage_based: None
- - postinit_callback_location: ()
- - bounds_cfgfile: None (DEPRECATED)
- - aggregategetter_callback_location: ()
- - aggregate_cfgfile: None (DEPRECATED)
- - scenario_tree_random_seed: None
- - scenario_tree_seed: None (DEPRECATED)
- - scenario_tree_downsample_fraction: 1.0
- - scenario_bundle_specification: None
- - create_random_bundles: 0
- - profile_memory: 0
- - cvar_weight: 1.0
- - generate_weighted_cvar: False
- - risk_alpha: 0.95
- - cc_alpha: 0.0
- - cc_indicator_var: None
- - mipgap: None
- * solver: ipopt
- - solver_io: None
- - solver_manager: serial
- - solver_options: ()
- - disable_warmstart: False
- - pyro_host: None
- - pyro_port: None
- - pyro_shutdown: False
- - shutdown_pyro: None (DEPRECATED)
- - output_solver_results: False
- - symbolic_solver_labels: False
- - output_solver_log: False
- - keep_solver_files: False
- - pyro_shutdown_workers: False
- - shutdown_pyro_workers: None (DEPRECATED)
- - activate_jsonio_solution_saver: None
-
-Constructing scenario tree instances
-Scenario-based instance initialization enabled
-Creating instance for scenario=BelowAverageScenario
-Data for scenario=BelowAverageScenario loads from file=/Users/ghackebeil/Projects/pyomo/src/pyomo/examples/pysp/farmer/scenariodata/BelowAverageScenario.dat
-Creating instance for scenario=AverageScenario
-Data for scenario=AverageScenario loads from file=/Users/ghackebeil/Projects/pyomo/src/pyomo/examples/pysp/farmer/scenariodata/AverageScenario.dat
-Creating instance for scenario=AboveAverageScenario
-Data for scenario=AboveAverageScenario loads from file=/Users/ghackebeil/Projects/pyomo/src/pyomo/examples/pysp/farmer/scenariodata/AboveAverageScenario.dat
-Time to construct scenario instances=0.01 seconds
-Linking instances into scenario tree
-Time link scenario tree with instances=0.00 seconds
-ScenarioTreeManagerClientSerial is successfully initialized
-Overall initialization time=0.01 seconds
-
-Initializing extensive form algorithm for stochastic programming problems.
-Creating extensive form instance
-Creating variables for master binding instance
-Time to construct extensive form instance=0.00 seconds
-Starting to write extensive form
-Extensive form written to file=/Users/ghackebeil/Projects/pyomo/src/pyomo/pyomo/pysp/tests/unit/test_farmer_with_solve_ipopt.nl
-Time to write output file=0.00 seconds
-Queuing extensive form solve
-Waiting for extensive form solve
-Done with extensive form solve - loading results
-Storing solution in scenario tree
-Time to solve and load results for the extensive form=0.07 seconds
-EF solve completed and solution status is optimal
-EF solve termination condition is optimal
-EF objective: -108390.00258
-EF gap:
-EF bound:
-
-Extensive form solution:
-----------------------------------------------------
-Tree Nodes:
-
- Name=AboveAverageNode
- Stage=SecondStage
- Parent=RootNode
- Variables:
- QuantitySubQuotaSold[CORN]=48.0000003526
- QuantitySubQuotaSold[SUGAR_BEETS]=6000.00005989
- QuantitySubQuotaSold[WHEAT]=310.000011051
-
- Name=AverageNode
- Stage=SecondStage
- Parent=RootNode
- Variables:
- QuantitySubQuotaSold[SUGAR_BEETS]=5000.00005073
- QuantitySubQuotaSold[WHEAT]=225.000009543
-
- Name=BelowAverageNode
- Stage=SecondStage
- Parent=RootNode
- Variables:
- QuantityPurchased[CORN]=47.9999990578
- QuantitySubQuotaSold[SUGAR_BEETS]=4000.00004054
- QuantitySubQuotaSold[WHEAT]=140.000008036
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Variables:
- DevotedAcreage[CORN]=79.999999429
- DevotedAcreage[SUGAR_BEETS]=250.000002547
- DevotedAcreage[WHEAT]=170.000003014
-
-
-Extensive form costs:
-Scenario Tree Costs
-----------------------------------------------------
-Tree Nodes:
-
- Name=AboveAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AboveAverageScenario
- Expected cost of (sub)tree rooted at node=-275900.0041
-
- Name=AverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AverageScenario
- Expected cost of (sub)tree rooted at node=-218250.0035
-
- Name=BelowAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-157720.0030
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- AboveAverageNode
- AverageNode
- BelowAverageNode
- Scenarios:
- AboveAverageScenario
- AverageScenario
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-108390.0026
-
-----------------------------------------------------
-Scenarios:
-
- Name=AboveAverageScenario
- Probability=0.3333
- Leaf Node=AboveAverageNode
- Tree node sequence:
- RootNode
- AboveAverageNode
- Stage= FirstStage Cost=108900.0010
- Stage= SecondStage Cost=-275900.0041
- Total scenario cost=-167000.0031
-
- Name=AverageScenario
- Probability=0.3333
- Leaf Node=AverageNode
- Tree node sequence:
- RootNode
- AverageNode
- Stage= FirstStage Cost=108900.0010
- Stage= SecondStage Cost=-218250.0035
- Total scenario cost=-109350.0026
-
- Name=BelowAverageScenario
- Probability=0.3333
- Leaf Node=BelowAverageNode
- Tree node sequence:
- RootNode
- BelowAverageNode
- Stage= FirstStage Cost=108900.0010
- Stage= SecondStage Cost=-157720.0030
- Total scenario cost=-48820.0020
-
-----------------------------------------------------
-Closing ScenarioTreeManagerClientSerial
-
-Total EF execution time=0.11 seconds
-
diff --git a/pyomo/pysp/tests/unit/baselines/farmer_linearized_async_gurobi_with_pyro.baseline b/pyomo/pysp/tests/unit/baselines/farmer_linearized_async_gurobi_with_pyro.baseline
deleted file mode 100644
index a2160468839..00000000000
--- a/pyomo/pysp/tests/unit/baselines/farmer_linearized_async_gurobi_with_pyro.baseline
+++ /dev/null
@@ -1,208 +0,0 @@
-Client attempting to find Pyro dispatcher object...
-Dispatcher Object URI: PYRO://134.253.194.1:35852/86fdc201bde32195ca4b8c8933b43481ec
-Connection to dispatch server established after 1 attempts and 0.00 seconds - this is client: 27260@snotra.sandia.gov
-Initializing PH
-
-Starting PH
-
-Initiating PH iteration=0
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 113494.4444 Max-Min=10416.67
-Converger=Normalized term diff value is 0.2540 - threshold reached=False
-Cumulative run-time=0.19 seconds
-
-Initiating PH iteration=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 113073.3333 Max-Min= 7180.00
-Converger=Normalized term diff value is 0.1307 - threshold reached=False
-Cumulative run-time=0.36 seconds
-
-Initiating PH iteration=2
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 113259.7778 Max-Min= 1736.67
-Converger=Normalized term diff value is 0.0872 - threshold reached=False
-Cumulative run-time=0.52 seconds
-
-Initiating PH iteration=3
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 113339.1852 Max-Min= 1836.89
-Converger=Normalized term diff value is 0.0793 - threshold reached=False
-Cumulative run-time=0.68 seconds
-
-Initiating PH iteration=4
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 112746.3951 Max-Min= 3745.63
-Converger=Normalized term diff value is 0.0820 - threshold reached=False
-Cumulative run-time=0.84 seconds
-
-Initiating PH iteration=5
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 112327.9383 Max-Min= 4381.88
-Converger=Normalized term diff value is 0.0828 - threshold reached=False
-Cumulative run-time=1.00 seconds
-
-Initiating PH iteration=6
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 112125.1852 Max-Min= 1027.56
-Converger=Normalized term diff value is 0.0561 - threshold reached=False
-Cumulative run-time=1.21 seconds
-
-Initiating PH iteration=7
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 111694.0412 Max-Min= 2320.99
-Converger=Normalized term diff value is 0.0625 - threshold reached=False
-Cumulative run-time=1.39 seconds
-
-Initiating PH iteration=8
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 111355.5172 Max-Min= 1015.57
-Converger=Normalized term diff value is 0.0342 - threshold reached=False
-Cumulative run-time=1.55 seconds
-
-Initiating PH iteration=9
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 111355.5172 Max-Min= 0.00
-Converger=Normalized term diff value is 0.0000 - threshold reached=True
-Cumulative run-time=1.71 seconds
-
-Number of discrete variables fixed before final plugin calls=0 (total=0)
-Number of continuous variables fixed before final plugin calls=0 (total=3)
-PH complete
-
-Convergence history:
-Converger=Normalized term diff
-Iteration Metric Value
- 0 0.2540
- 1 0.1307
- 2 0.0872
- 3 0.0793
- 4 0.0820
- 5 0.0828
- 6 0.0561
- 7 0.0625
- 8 0.0342
- 9 0.0000
-
-
-Final number of discrete variables fixed=0 (total=0)
-Final number of continuous variables fixed=0 (total=3)
-
-Computing objective inner bound at xhat solution
-
-Computed objective upper bound=-107958.8966
-
-X-hat variable values:
-
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 88.4631 88.4631 88.4631
-
- Index: [SUGAR_BEETS] Values: 266.1679 266.1679 266.1679
-
- Index: [WHEAT] Values: 145.3690 145.3690 145.3690
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 111355.5172 111355.5172 111355.5172 Max-Min: 0.0000 Avg: 111355.5172
-
-X-hat costs:
-
-Scenario Tree Costs
-----------------------------------------------------
-Tree Nodes:
-
- Name=AboveAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AboveAverageScenario
- Expected cost of (sub)tree rooted at node=-271788.5596
-
- Name=AverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AverageScenario
- Expected cost of (sub)tree rooted at node=-223231.1084
-
- Name=BelowAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-162923.5731
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- AboveAverageNode
- AverageNode
- BelowAverageNode
- Scenarios:
- AboveAverageScenario
- AverageScenario
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-107958.8966
-
-----------------------------------------------------
-Scenarios:
-
- Name=AboveAverageScenario
- Probability=0.3333
- Leaf Node=AboveAverageNode
- Tree node sequence:
- RootNode
- AboveAverageNode
- Stage= FirstStage Cost=111355.5172
- Stage= SecondStage Cost=-271788.5596
- Total scenario cost=-160433.0424
-
- Name=AverageScenario
- Probability=0.3333
- Leaf Node=AverageNode
- Tree node sequence:
- RootNode
- AverageNode
- Stage= FirstStage Cost=111355.5172
- Stage= SecondStage Cost=-223231.1084
- Total scenario cost=-111875.5913
-
- Name=BelowAverageScenario
- Probability=0.3333
- Leaf Node=BelowAverageNode
- Tree node sequence:
- RootNode
- BelowAverageNode
- Stage= FirstStage Cost=111355.5172
- Stage= SecondStage Cost=-162923.5731
- Total scenario cost=-51568.0560
-
-----------------------------------------------------
-
-
-Total PH execution time=1.87 seconds
-
-
-Total execution time=1.93 seconds
diff --git a/pyomo/pysp/tests/unit/baselines/farmer_linearized_async_ipopt_with_pyro.baseline b/pyomo/pysp/tests/unit/baselines/farmer_linearized_async_ipopt_with_pyro.baseline
deleted file mode 100644
index 847fb40f317..00000000000
--- a/pyomo/pysp/tests/unit/baselines/farmer_linearized_async_ipopt_with_pyro.baseline
+++ /dev/null
@@ -1,208 +0,0 @@
-Client attempting to find Pyro dispatcher object...
-Dispatcher Object URI: PYRO::PyUtilibServer.dispatcher.cf9047d9-2b8e-486c-92cb-d72c474bec4b@localhost:44210
-Connection to dispatch server established after 1 attempts and 0.00 seconds - this is client: 22696@snotra.sandia.gov
-Initializing PH
-
-Starting PH
-
-Initiating PH iteration=0
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 113494.4456 Max-Min=10416.67
-Converger=Normalized term diff value is 0.2540 - threshold reached=False
-Cumulative run-time=0.16 seconds
-
-Initiating PH iteration=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 113073.3345 Max-Min= 7180.00
-Converger=Normalized term diff value is 0.1307 - threshold reached=False
-Cumulative run-time=0.31 seconds
-
-Initiating PH iteration=2
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 113259.7788 Max-Min= 1736.67
-Converger=Normalized term diff value is 0.0872 - threshold reached=False
-Cumulative run-time=0.47 seconds
-
-Initiating PH iteration=3
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 113339.1863 Max-Min= 1836.89
-Converger=Normalized term diff value is 0.0793 - threshold reached=False
-Cumulative run-time=0.63 seconds
-
-Initiating PH iteration=4
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 112746.3963 Max-Min= 3745.63
-Converger=Normalized term diff value is 0.0820 - threshold reached=False
-Cumulative run-time=0.78 seconds
-
-Initiating PH iteration=5
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 112327.9394 Max-Min= 4381.88
-Converger=Normalized term diff value is 0.0828 - threshold reached=False
-Cumulative run-time=0.94 seconds
-
-Initiating PH iteration=6
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 112125.1863 Max-Min= 1027.56
-Converger=Normalized term diff value is 0.0561 - threshold reached=False
-Cumulative run-time=1.10 seconds
-
-Initiating PH iteration=7
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 111694.0423 Max-Min= 2320.99
-Converger=Normalized term diff value is 0.0625 - threshold reached=False
-Cumulative run-time=1.26 seconds
-
-Initiating PH iteration=8
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 111355.5181 Max-Min= 1015.57
-Converger=Normalized term diff value is 0.0342 - threshold reached=False
-Cumulative run-time=1.41 seconds
-
-Initiating PH iteration=9
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 111355.5177 Max-Min= 0.00
-Converger=Normalized term diff value is 0.0000 - threshold reached=True
-Cumulative run-time=1.57 seconds
-
-Number of discrete variables fixed before final plugin calls=0 (total=0)
-Number of continuous variables fixed before final plugin calls=0 (total=3)
-PH complete
-
-Convergence history:
-Converger=Normalized term diff
-Iteration Metric Value
- 0 0.2540
- 1 0.1307
- 2 0.0872
- 3 0.0793
- 4 0.0820
- 5 0.0828
- 6 0.0561
- 7 0.0625
- 8 0.0342
- 9 0.0000
-
-
-Final number of discrete variables fixed=0 (total=0)
-Final number of continuous variables fixed=0 (total=3)
-
-Computing objective inner bound at xhat solution
-
-Computed objective upper bound=-107958.8993
-
-X-hat variable values:
-
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 88.4631 88.4631 88.4631
-
- Index: [SUGAR_BEETS] Values: 266.1679 266.1679 266.1679
-
- Index: [WHEAT] Values: 145.3690 145.3690 145.3690
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 111355.5176 111355.5176 111355.5176 Max-Min: 0.0000 Avg: 111355.5176
-
-X-hat costs:
-
-Scenario Tree Costs
-----------------------------------------------------
-Tree Nodes:
-
- Name=AboveAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AboveAverageScenario
- Expected cost of (sub)tree rooted at node=-271788.5654
-
- Name=AverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AverageScenario
- Expected cost of (sub)tree rooted at node=-223231.1102
-
- Name=BelowAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-162923.5751
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- AboveAverageNode
- AverageNode
- BelowAverageNode
- Scenarios:
- AboveAverageScenario
- AverageScenario
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-107958.8993
-
-----------------------------------------------------
-Scenarios:
-
- Name=AboveAverageScenario
- Probability=0.3333
- Leaf Node=AboveAverageNode
- Tree node sequence:
- RootNode
- AboveAverageNode
- Stage= FirstStage Cost=111355.5176
- Stage= SecondStage Cost=-271788.5654
- Total scenario cost=-160433.0478
-
- Name=AverageScenario
- Probability=0.3333
- Leaf Node=AverageNode
- Tree node sequence:
- RootNode
- AverageNode
- Stage= FirstStage Cost=111355.5176
- Stage= SecondStage Cost=-223231.1102
- Total scenario cost=-111875.5926
-
- Name=BelowAverageScenario
- Probability=0.3333
- Leaf Node=BelowAverageNode
- Tree node sequence:
- RootNode
- BelowAverageNode
- Stage= FirstStage Cost=111355.5176
- Stage= SecondStage Cost=-162923.5751
- Total scenario cost=-51568.0574
-
-----------------------------------------------------
-
-
-Total PH execution time=1.72 seconds
-
-
-Total execution time=1.79 seconds
diff --git a/pyomo/pysp/tests/unit/baselines/farmer_linearized_cbc.baseline b/pyomo/pysp/tests/unit/baselines/farmer_linearized_cbc.baseline
deleted file mode 100644
index 0b26d959b31..00000000000
--- a/pyomo/pysp/tests/unit/baselines/farmer_linearized_cbc.baseline
+++ /dev/null
@@ -1,205 +0,0 @@
-Initializing PH
-
-Starting PH
-
-Initiating PH iteration=0
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 113494.4443 Max-Min=10416.67
-Converger=Normalized term diff value is 0.2540 - threshold reached=False
-Cumulative run-time=0.25 seconds
-
-Initiating PH iteration=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 113073.3334 Max-Min= 7180.00
-Converger=Normalized term diff value is 0.1307 - threshold reached=False
-Cumulative run-time=0.53 seconds
-
-Initiating PH iteration=2
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 113259.7779 Max-Min= 1736.67
-Converger=Normalized term diff value is 0.0872 - threshold reached=False
-Cumulative run-time=0.81 seconds
-
-Initiating PH iteration=3
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 113339.1851 Max-Min= 1836.89
-Converger=Normalized term diff value is 0.0793 - threshold reached=False
-Cumulative run-time=1.08 seconds
-
-Initiating PH iteration=4
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 112746.3952 Max-Min= 3745.63
-Converger=Normalized term diff value is 0.0820 - threshold reached=False
-Cumulative run-time=1.36 seconds
-
-Initiating PH iteration=5
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 112327.9383 Max-Min= 4381.88
-Converger=Normalized term diff value is 0.0828 - threshold reached=False
-Cumulative run-time=1.64 seconds
-
-Initiating PH iteration=6
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 112125.1850 Max-Min= 1027.56
-Converger=Normalized term diff value is 0.0561 - threshold reached=False
-Cumulative run-time=1.92 seconds
-
-Initiating PH iteration=7
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 111694.0410 Max-Min= 2320.99
-Converger=Normalized term diff value is 0.0625 - threshold reached=False
-Cumulative run-time=2.21 seconds
-
-Initiating PH iteration=8
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 111355.5170 Max-Min= 1015.57
-Converger=Normalized term diff value is 0.0342 - threshold reached=False
-Cumulative run-time=2.49 seconds
-
-Initiating PH iteration=9
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 111355.5170 Max-Min= 0.00
-Converger=Normalized term diff value is 0.0000 - threshold reached=True
-Cumulative run-time=2.77 seconds
-
-Number of discrete variables fixed before final plugin calls=0 (total=0)
-Number of continuous variables fixed before final plugin calls=0 (total=3)
-PH complete
-
-Convergence history:
-Converger=Normalized term diff
-Iteration Metric Value
- 0 0.2540
- 1 0.1307
- 2 0.0872
- 3 0.0793
- 4 0.0820
- 5 0.0828
- 6 0.0561
- 7 0.0625
- 8 0.0342
- 9 0.0000
-
-
-Final number of discrete variables fixed=0 (total=0)
-Final number of continuous variables fixed=0 (total=3)
-
-Computing objective inner bound at xhat solution
-
-Computed objective upper bound=-107958.8966
-
-X-hat variable values:
-
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 88.4631 88.4631 88.4631
-
- Index: [SUGAR_BEETS] Values: 266.1679 266.1679 266.1679
-
- Index: [WHEAT] Values: 145.3690 145.3690 145.3690
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 111355.5170 111355.5170 111355.5170 Max-Min: 0.0000 Avg: 111355.5170
-
-X-hat costs:
-
-Scenario Tree Costs
-----------------------------------------------------
-Tree Nodes:
-
- Name=AboveAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AboveAverageScenario
- Expected cost of (sub)tree rooted at node=-271788.5600
-
- Name=AverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AverageScenario
- Expected cost of (sub)tree rooted at node=-223231.1080
-
- Name=BelowAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-162923.5728
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- AboveAverageNode
- AverageNode
- BelowAverageNode
- Scenarios:
- AboveAverageScenario
- AverageScenario
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-107958.8966
-
-----------------------------------------------------
-Scenarios:
-
- Name=AboveAverageScenario
- Probability=0.3333
- Leaf Node=AboveAverageNode
- Tree node sequence:
- RootNode
- AboveAverageNode
- Stage= FirstStage Cost=111355.5170
- Stage= SecondStage Cost=-271788.5600
- Total scenario cost=-160433.0430
-
- Name=AverageScenario
- Probability=0.3333
- Leaf Node=AverageNode
- Tree node sequence:
- RootNode
- AverageNode
- Stage= FirstStage Cost=111355.5170
- Stage= SecondStage Cost=-223231.1080
- Total scenario cost=-111875.5910
-
- Name=BelowAverageScenario
- Probability=0.3333
- Leaf Node=BelowAverageNode
- Tree node sequence:
- RootNode
- BelowAverageNode
- Stage= FirstStage Cost=111355.5170
- Stage= SecondStage Cost=-162923.5728
- Total scenario cost=-51568.0558
-
-----------------------------------------------------
-
-
-Total PH execution time=3.04 seconds
-
-
-Total execution time=3.08 seconds
diff --git a/pyomo/pysp/tests/unit/baselines/farmer_linearized_cplex.baseline b/pyomo/pysp/tests/unit/baselines/farmer_linearized_cplex.baseline
deleted file mode 100644
index 65f14539d53..00000000000
--- a/pyomo/pysp/tests/unit/baselines/farmer_linearized_cplex.baseline
+++ /dev/null
@@ -1,205 +0,0 @@
-Initializing PH
-
-Starting PH
-
-Initiating PH iteration=0
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 113494.4444 Max-Min=10416.67
-Converger=Normalized term diff value is 0.2540 - threshold reached=False
-Cumulative run-time=0.52 seconds
-
-Initiating PH iteration=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 113073.3333 Max-Min= 7180.00
-Converger=Normalized term diff value is 0.1307 - threshold reached=False
-Cumulative run-time=1.12 seconds
-
-Initiating PH iteration=2
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 113259.7778 Max-Min= 1736.67
-Converger=Normalized term diff value is 0.0872 - threshold reached=False
-Cumulative run-time=1.70 seconds
-
-Initiating PH iteration=3
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 113339.1852 Max-Min= 1836.89
-Converger=Normalized term diff value is 0.0793 - threshold reached=False
-Cumulative run-time=2.28 seconds
-
-Initiating PH iteration=4
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 112746.3951 Max-Min= 3745.63
-Converger=Normalized term diff value is 0.0820 - threshold reached=False
-Cumulative run-time=2.84 seconds
-
-Initiating PH iteration=5
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 112327.9383 Max-Min= 4381.88
-Converger=Normalized term diff value is 0.0828 - threshold reached=False
-Cumulative run-time=3.40 seconds
-
-Initiating PH iteration=6
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 112125.1852 Max-Min= 1027.56
-Converger=Normalized term diff value is 0.0561 - threshold reached=False
-Cumulative run-time=3.96 seconds
-
-Initiating PH iteration=7
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 111694.0412 Max-Min= 2320.99
-Converger=Normalized term diff value is 0.0625 - threshold reached=False
-Cumulative run-time=4.57 seconds
-
-Initiating PH iteration=8
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 111355.5172 Max-Min= 1015.57
-Converger=Normalized term diff value is 0.0342 - threshold reached=False
-Cumulative run-time=5.12 seconds
-
-Initiating PH iteration=9
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 111355.5172 Max-Min= 0.00
-Converger=Normalized term diff value is 0.0000 - threshold reached=True
-Cumulative run-time=5.71 seconds
-
-Number of discrete variables fixed before final plugin calls=0 (total=0)
-Number of continuous variables fixed before final plugin calls=0 (total=3)
-PH complete
-
-Convergence history:
-Converger=Normalized term diff
-Iteration Metric Value
- 0 0.2540
- 1 0.1307
- 2 0.0872
- 3 0.0793
- 4 0.0820
- 5 0.0828
- 6 0.0561
- 7 0.0625
- 8 0.0342
- 9 0.0000
-
-
-Final number of discrete variables fixed=0 (total=0)
-Final number of continuous variables fixed=0 (total=3)
-
-Computing objective inner bound at xhat solution
-
-Computed objective upper bound=-107958.8966
-
-X-hat variable values:
-
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 88.4631 88.4631 88.4631
-
- Index: [SUGAR_BEETS] Values: 266.1679 266.1679 266.1679
-
- Index: [WHEAT] Values: 145.3690 145.3690 145.3690
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 111355.5172 111355.5172 111355.5172 Max-Min: 0.0000 Avg: 111355.5172
-
-X-hat costs:
-
-Scenario Tree Costs
-----------------------------------------------------
-Tree Nodes:
-
- Name=AboveAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AboveAverageScenario
- Expected cost of (sub)tree rooted at node=-271788.5596
-
- Name=AverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AverageScenario
- Expected cost of (sub)tree rooted at node=-223231.1084
-
- Name=BelowAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-162923.5731
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- AboveAverageNode
- AverageNode
- BelowAverageNode
- Scenarios:
- AboveAverageScenario
- AverageScenario
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-107958.8966
-
-----------------------------------------------------
-Scenarios:
-
- Name=AboveAverageScenario
- Probability=0.3333
- Leaf Node=AboveAverageNode
- Tree node sequence:
- RootNode
- AboveAverageNode
- Stage= FirstStage Cost=111355.5172
- Stage= SecondStage Cost=-271788.5596
- Total scenario cost=-160433.0424
-
- Name=AverageScenario
- Probability=0.3333
- Leaf Node=AverageNode
- Tree node sequence:
- RootNode
- AverageNode
- Stage= FirstStage Cost=111355.5172
- Stage= SecondStage Cost=-223231.1084
- Total scenario cost=-111875.5913
-
- Name=BelowAverageScenario
- Probability=0.3333
- Leaf Node=BelowAverageNode
- Tree node sequence:
- RootNode
- BelowAverageNode
- Stage= FirstStage Cost=111355.5172
- Stage= SecondStage Cost=-162923.5731
- Total scenario cost=-51568.0560
-
-----------------------------------------------------
-
-
-Total PH execution time=6.28 seconds
-
-
-Total execution time=6.35 seconds
diff --git a/pyomo/pysp/tests/unit/baselines/farmer_linearized_gurobi.baseline b/pyomo/pysp/tests/unit/baselines/farmer_linearized_gurobi.baseline
deleted file mode 100644
index 2185bd75bf5..00000000000
--- a/pyomo/pysp/tests/unit/baselines/farmer_linearized_gurobi.baseline
+++ /dev/null
@@ -1,205 +0,0 @@
-Initializing PH
-
-Starting PH
-
-Initiating PH iteration=0
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 113494.4444 Max-Min=10416.67
-Converger=Normalized term diff value is 0.2540 - threshold reached=False
-Cumulative run-time=0.18 seconds
-
-Initiating PH iteration=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 113073.3333 Max-Min= 7180.00
-Converger=Normalized term diff value is 0.1307 - threshold reached=False
-Cumulative run-time=0.38 seconds
-
-Initiating PH iteration=2
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 113259.7778 Max-Min= 1736.67
-Converger=Normalized term diff value is 0.0872 - threshold reached=False
-Cumulative run-time=0.59 seconds
-
-Initiating PH iteration=3
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 113339.1852 Max-Min= 1836.89
-Converger=Normalized term diff value is 0.0793 - threshold reached=False
-Cumulative run-time=0.79 seconds
-
-Initiating PH iteration=4
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 112746.3951 Max-Min= 3745.63
-Converger=Normalized term diff value is 0.0820 - threshold reached=False
-Cumulative run-time=1.00 seconds
-
-Initiating PH iteration=5
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 112327.9383 Max-Min= 4381.88
-Converger=Normalized term diff value is 0.0828 - threshold reached=False
-Cumulative run-time=1.20 seconds
-
-Initiating PH iteration=6
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 112125.1852 Max-Min= 1027.56
-Converger=Normalized term diff value is 0.0561 - threshold reached=False
-Cumulative run-time=1.40 seconds
-
-Initiating PH iteration=7
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 111694.0412 Max-Min= 2320.99
-Converger=Normalized term diff value is 0.0625 - threshold reached=False
-Cumulative run-time=1.60 seconds
-
-Initiating PH iteration=8
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 111355.5172 Max-Min= 1015.57
-Converger=Normalized term diff value is 0.0342 - threshold reached=False
-Cumulative run-time=1.80 seconds
-
-Initiating PH iteration=9
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 111355.5172 Max-Min= 0.00
-Converger=Normalized term diff value is 0.0000 - threshold reached=True
-Cumulative run-time=1.99 seconds
-
-Number of discrete variables fixed before final plugin calls=0 (total=0)
-Number of continuous variables fixed before final plugin calls=0 (total=3)
-PH complete
-
-Convergence history:
-Converger=Normalized term diff
-Iteration Metric Value
- 0 0.2540
- 1 0.1307
- 2 0.0872
- 3 0.0793
- 4 0.0820
- 5 0.0828
- 6 0.0561
- 7 0.0625
- 8 0.0342
- 9 0.0000
-
-
-Final number of discrete variables fixed=0 (total=0)
-Final number of continuous variables fixed=0 (total=3)
-
-Computing objective inner bound at xhat solution
-
-Computed objective upper bound=-107958.8966
-
-X-hat variable values:
-
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 88.4631 88.4631 88.4631
-
- Index: [SUGAR_BEETS] Values: 266.1679 266.1679 266.1679
-
- Index: [WHEAT] Values: 145.3690 145.3690 145.3690
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 111355.5172 111355.5172 111355.5172 Max-Min: 0.0000 Avg: 111355.5172
-
-X-hat costs:
-
-Scenario Tree Costs
-----------------------------------------------------
-Tree Nodes:
-
- Name=AboveAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AboveAverageScenario
- Expected cost of (sub)tree rooted at node=-271788.5596
-
- Name=AverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AverageScenario
- Expected cost of (sub)tree rooted at node=-223231.1084
-
- Name=BelowAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-162923.5731
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- AboveAverageNode
- AverageNode
- BelowAverageNode
- Scenarios:
- AboveAverageScenario
- AverageScenario
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-107958.8966
-
-----------------------------------------------------
-Scenarios:
-
- Name=AboveAverageScenario
- Probability=0.3333
- Leaf Node=AboveAverageNode
- Tree node sequence:
- RootNode
- AboveAverageNode
- Stage= FirstStage Cost=111355.5172
- Stage= SecondStage Cost=-271788.5596
- Total scenario cost=-160433.0424
-
- Name=AverageScenario
- Probability=0.3333
- Leaf Node=AverageNode
- Tree node sequence:
- RootNode
- AverageNode
- Stage= FirstStage Cost=111355.5172
- Stage= SecondStage Cost=-223231.1084
- Total scenario cost=-111875.5913
-
- Name=BelowAverageScenario
- Probability=0.3333
- Leaf Node=BelowAverageNode
- Tree node sequence:
- RootNode
- BelowAverageNode
- Stage= FirstStage Cost=111355.5172
- Stage= SecondStage Cost=-162923.5731
- Total scenario cost=-51568.0560
-
-----------------------------------------------------
-
-
-Total PH execution time=2.18 seconds
-
-
-Total execution time=2.22 seconds
diff --git a/pyomo/pysp/tests/unit/baselines/farmer_linearized_gurobi_with_phpyro.baseline b/pyomo/pysp/tests/unit/baselines/farmer_linearized_gurobi_with_phpyro.baseline
deleted file mode 100644
index 01d819ee5c3..00000000000
--- a/pyomo/pysp/tests/unit/baselines/farmer_linearized_gurobi_with_phpyro.baseline
+++ /dev/null
@@ -1,206 +0,0 @@
-Client assigned dispatcher with URI=PYRO://134.253.194.1:35852/86fdc201bde32195ca4b8c8933b43481ec
-Initializing PH
-
-Starting PH
-
-Initiating PH iteration=0
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 113494.4444 Max-Min=10416.67
-Converger=Normalized term diff value is 0.2540 - threshold reached=False
-Cumulative run-time=0.19 seconds
-
-Initiating PH iteration=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 113073.3333 Max-Min= 7180.00
-Converger=Normalized term diff value is 0.1307 - threshold reached=False
-Cumulative run-time=0.38 seconds
-
-Initiating PH iteration=2
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 113259.7778 Max-Min= 1736.67
-Converger=Normalized term diff value is 0.0872 - threshold reached=False
-Cumulative run-time=0.58 seconds
-
-Initiating PH iteration=3
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 113339.1852 Max-Min= 1836.89
-Converger=Normalized term diff value is 0.0793 - threshold reached=False
-Cumulative run-time=0.76 seconds
-
-Initiating PH iteration=4
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 112746.3951 Max-Min= 3745.63
-Converger=Normalized term diff value is 0.0820 - threshold reached=False
-Cumulative run-time=0.94 seconds
-
-Initiating PH iteration=5
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 112327.9383 Max-Min= 4381.88
-Converger=Normalized term diff value is 0.0828 - threshold reached=False
-Cumulative run-time=1.13 seconds
-
-Initiating PH iteration=6
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 112125.1852 Max-Min= 1027.56
-Converger=Normalized term diff value is 0.0561 - threshold reached=False
-Cumulative run-time=1.31 seconds
-
-Initiating PH iteration=7
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 111694.0412 Max-Min= 2320.99
-Converger=Normalized term diff value is 0.0625 - threshold reached=False
-Cumulative run-time=1.53 seconds
-
-Initiating PH iteration=8
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 111355.5172 Max-Min= 1015.57
-Converger=Normalized term diff value is 0.0342 - threshold reached=False
-Cumulative run-time=1.73 seconds
-
-Initiating PH iteration=9
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 111355.5172 Max-Min= 0.00
-Converger=Normalized term diff value is 0.0000 - threshold reached=True
-Cumulative run-time=1.89 seconds
-
-Number of discrete variables fixed before final plugin calls=0 (total=0)
-Number of continuous variables fixed before final plugin calls=0 (total=3)
-PH complete
-
-Convergence history:
-Converger=Normalized term diff
-Iteration Metric Value
- 0 0.2540
- 1 0.1307
- 2 0.0872
- 3 0.0793
- 4 0.0820
- 5 0.0828
- 6 0.0561
- 7 0.0625
- 8 0.0342
- 9 0.0000
-
-
-Final number of discrete variables fixed=0 (total=0)
-Final number of continuous variables fixed=0 (total=3)
-
-Computing objective inner bound at xhat solution
-
-Computed objective upper bound=-107958.8966
-
-X-hat variable values:
-
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 88.4631 88.4631 88.4631
-
- Index: [SUGAR_BEETS] Values: 266.1679 266.1679 266.1679
-
- Index: [WHEAT] Values: 145.3690 145.3690 145.3690
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 111355.5172 111355.5172 111355.5172 Max-Min: 0.0000 Avg: 111355.5172
-
-X-hat costs:
-
-Scenario Tree Costs
-----------------------------------------------------
-Tree Nodes:
-
- Name=AboveAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AboveAverageScenario
- Expected cost of (sub)tree rooted at node=-271788.5596
-
- Name=AverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AverageScenario
- Expected cost of (sub)tree rooted at node=-223231.1084
-
- Name=BelowAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-162923.5731
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- AboveAverageNode
- AverageNode
- BelowAverageNode
- Scenarios:
- AboveAverageScenario
- AverageScenario
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-107958.8966
-
-----------------------------------------------------
-Scenarios:
-
- Name=AboveAverageScenario
- Probability=0.3333
- Leaf Node=AboveAverageNode
- Tree node sequence:
- RootNode
- AboveAverageNode
- Stage= FirstStage Cost=111355.5172
- Stage= SecondStage Cost=-271788.5596
- Total scenario cost=-160433.0424
-
- Name=AverageScenario
- Probability=0.3333
- Leaf Node=AverageNode
- Tree node sequence:
- RootNode
- AverageNode
- Stage= FirstStage Cost=111355.5172
- Stage= SecondStage Cost=-223231.1084
- Total scenario cost=-111875.5913
-
- Name=BelowAverageScenario
- Probability=0.3333
- Leaf Node=BelowAverageNode
- Tree node sequence:
- RootNode
- BelowAverageNode
- Stage= FirstStage Cost=111355.5172
- Stage= SecondStage Cost=-162923.5731
- Total scenario cost=-51568.0560
-
-----------------------------------------------------
-
-
-Total PH execution time=2.08 seconds
-
-
-Total execution time=2.27 seconds
diff --git a/pyomo/pysp/tests/unit/baselines/farmer_linearized_ipopt_with_phpyro.baseline b/pyomo/pysp/tests/unit/baselines/farmer_linearized_ipopt_with_phpyro.baseline
deleted file mode 100644
index cc02b8546fc..00000000000
--- a/pyomo/pysp/tests/unit/baselines/farmer_linearized_ipopt_with_phpyro.baseline
+++ /dev/null
@@ -1,206 +0,0 @@
-Client assigned dispatcher with URI=PYRO::PyUtilibServer.dispatcher.cf9047d9-2b8e-486c-92cb-d72c474bec4b@localhost:44210
-Initializing PH
-
-Starting PH
-
-Initiating PH iteration=0
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 113494.4456 Max-Min=10416.67
-Converger=Normalized term diff value is 0.2540 - threshold reached=False
-Cumulative run-time=0.13 seconds
-
-Initiating PH iteration=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 113073.3345 Max-Min= 7180.00
-Converger=Normalized term diff value is 0.1307 - threshold reached=False
-Cumulative run-time=0.29 seconds
-
-Initiating PH iteration=2
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 113259.7788 Max-Min= 1736.67
-Converger=Normalized term diff value is 0.0872 - threshold reached=False
-Cumulative run-time=0.47 seconds
-
-Initiating PH iteration=3
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 113339.1863 Max-Min= 1836.89
-Converger=Normalized term diff value is 0.0793 - threshold reached=False
-Cumulative run-time=0.63 seconds
-
-Initiating PH iteration=4
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 112746.3963 Max-Min= 3745.63
-Converger=Normalized term diff value is 0.0820 - threshold reached=False
-Cumulative run-time=0.79 seconds
-
-Initiating PH iteration=5
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 112327.9394 Max-Min= 4381.88
-Converger=Normalized term diff value is 0.0828 - threshold reached=False
-Cumulative run-time=0.94 seconds
-
-Initiating PH iteration=6
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 112125.1863 Max-Min= 1027.56
-Converger=Normalized term diff value is 0.0561 - threshold reached=False
-Cumulative run-time=1.10 seconds
-
-Initiating PH iteration=7
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 111694.0423 Max-Min= 2320.99
-Converger=Normalized term diff value is 0.0625 - threshold reached=False
-Cumulative run-time=1.26 seconds
-
-Initiating PH iteration=8
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 111355.5181 Max-Min= 1015.57
-Converger=Normalized term diff value is 0.0342 - threshold reached=False
-Cumulative run-time=1.42 seconds
-
-Initiating PH iteration=9
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 111355.5177 Max-Min= 0.00
-Converger=Normalized term diff value is 0.0000 - threshold reached=True
-Cumulative run-time=1.57 seconds
-
-Number of discrete variables fixed before final plugin calls=0 (total=0)
-Number of continuous variables fixed before final plugin calls=0 (total=3)
-PH complete
-
-Convergence history:
-Converger=Normalized term diff
-Iteration Metric Value
- 0 0.2540
- 1 0.1307
- 2 0.0872
- 3 0.0793
- 4 0.0820
- 5 0.0828
- 6 0.0561
- 7 0.0625
- 8 0.0342
- 9 0.0000
-
-
-Final number of discrete variables fixed=0 (total=0)
-Final number of continuous variables fixed=0 (total=3)
-
-Computing objective inner bound at xhat solution
-
-Computed objective upper bound=-107958.8993
-
-X-hat variable values:
-
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 88.4631 88.4631 88.4631
-
- Index: [SUGAR_BEETS] Values: 266.1679 266.1679 266.1679
-
- Index: [WHEAT] Values: 145.3690 145.3690 145.3690
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 111355.5176 111355.5176 111355.5176 Max-Min: 0.0000 Avg: 111355.5176
-
-X-hat costs:
-
-Scenario Tree Costs
-----------------------------------------------------
-Tree Nodes:
-
- Name=AboveAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AboveAverageScenario
- Expected cost of (sub)tree rooted at node=-271788.5654
-
- Name=AverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AverageScenario
- Expected cost of (sub)tree rooted at node=-223231.1102
-
- Name=BelowAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-162923.5751
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- AboveAverageNode
- AverageNode
- BelowAverageNode
- Scenarios:
- AboveAverageScenario
- AverageScenario
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-107958.8993
-
-----------------------------------------------------
-Scenarios:
-
- Name=AboveAverageScenario
- Probability=0.3333
- Leaf Node=AboveAverageNode
- Tree node sequence:
- RootNode
- AboveAverageNode
- Stage= FirstStage Cost=111355.5176
- Stage= SecondStage Cost=-271788.5654
- Total scenario cost=-160433.0478
-
- Name=AverageScenario
- Probability=0.3333
- Leaf Node=AverageNode
- Tree node sequence:
- RootNode
- AverageNode
- Stage= FirstStage Cost=111355.5176
- Stage= SecondStage Cost=-223231.1102
- Total scenario cost=-111875.5926
-
- Name=BelowAverageScenario
- Probability=0.3333
- Leaf Node=BelowAverageNode
- Tree node sequence:
- RootNode
- BelowAverageNode
- Stage= FirstStage Cost=111355.5176
- Stage= SecondStage Cost=-162923.5751
- Total scenario cost=-51568.0574
-
-----------------------------------------------------
-
-
-Total PH execution time=1.83 seconds
-
-
-Total execution time=1.98 seconds
diff --git a/pyomo/pysp/tests/unit/baselines/farmer_linearized_nodedata_cplex.baseline b/pyomo/pysp/tests/unit/baselines/farmer_linearized_nodedata_cplex.baseline
deleted file mode 100644
index 92b506b41ba..00000000000
--- a/pyomo/pysp/tests/unit/baselines/farmer_linearized_nodedata_cplex.baseline
+++ /dev/null
@@ -1,205 +0,0 @@
-Initializing PH
-
-Starting PH
-
-Initiating PH iteration=0
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 113494.4444 Max-Min=10416.67
-Converger=Normalized term diff value is 0.2540 - threshold reached=False
-Cumulative run-time=0.54 seconds
-
-Initiating PH iteration=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 113073.3333 Max-Min= 7180.00
-Converger=Normalized term diff value is 0.1307 - threshold reached=False
-Cumulative run-time=1.17 seconds
-
-Initiating PH iteration=2
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 113259.7778 Max-Min= 1736.67
-Converger=Normalized term diff value is 0.0872 - threshold reached=False
-Cumulative run-time=1.79 seconds
-
-Initiating PH iteration=3
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 113339.1852 Max-Min= 1836.89
-Converger=Normalized term diff value is 0.0793 - threshold reached=False
-Cumulative run-time=2.42 seconds
-
-Initiating PH iteration=4
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 112746.3951 Max-Min= 3745.63
-Converger=Normalized term diff value is 0.0820 - threshold reached=False
-Cumulative run-time=3.04 seconds
-
-Initiating PH iteration=5
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 112327.9383 Max-Min= 4381.88
-Converger=Normalized term diff value is 0.0828 - threshold reached=False
-Cumulative run-time=3.66 seconds
-
-Initiating PH iteration=6
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 112125.1852 Max-Min= 1027.56
-Converger=Normalized term diff value is 0.0561 - threshold reached=False
-Cumulative run-time=4.29 seconds
-
-Initiating PH iteration=7
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 111694.0412 Max-Min= 2320.99
-Converger=Normalized term diff value is 0.0625 - threshold reached=False
-Cumulative run-time=4.91 seconds
-
-Initiating PH iteration=8
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 111355.5172 Max-Min= 1015.57
-Converger=Normalized term diff value is 0.0342 - threshold reached=False
-Cumulative run-time=5.54 seconds
-
-Initiating PH iteration=9
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 111355.5172 Max-Min= 0.00
-Converger=Normalized term diff value is 0.0000 - threshold reached=True
-Cumulative run-time=6.11 seconds
-
-Number of discrete variables fixed before final plugin calls=0 (total=0)
-Number of continuous variables fixed before final plugin calls=0 (total=3)
-PH complete
-
-Convergence history:
-Converger=Normalized term diff
-Iteration Metric Value
- 0 0.2540
- 1 0.1307
- 2 0.0872
- 3 0.0793
- 4 0.0820
- 5 0.0828
- 6 0.0561
- 7 0.0625
- 8 0.0342
- 9 0.0000
-
-
-Final number of discrete variables fixed=0 (total=0)
-Final number of continuous variables fixed=0 (total=3)
-
-Computing objective inner bound at xhat solution
-
-Computed objective upper bound=-107958.8966
-
-X-hat variable values:
-
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 88.4631 88.4631 88.4631
-
- Index: [SUGAR_BEETS] Values: 266.1679 266.1679 266.1679
-
- Index: [WHEAT] Values: 145.3690 145.3690 145.3690
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 111355.5172 111355.5172 111355.5172 Max-Min: 0.0000 Avg: 111355.5172
-
-X-hat costs:
-
-Scenario Tree Costs
-----------------------------------------------------
-Tree Nodes:
-
- Name=AboveAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AboveAverageScenario
- Expected cost of (sub)tree rooted at node=-271788.5596
-
- Name=AverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AverageScenario
- Expected cost of (sub)tree rooted at node=-223231.1084
-
- Name=BelowAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-162923.5731
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- AboveAverageNode
- AverageNode
- BelowAverageNode
- Scenarios:
- AboveAverageScenario
- AverageScenario
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-107958.8966
-
-----------------------------------------------------
-Scenarios:
-
- Name=AboveAverageScenario
- Probability=0.3333
- Leaf Node=AboveAverageNode
- Tree node sequence:
- RootNode
- AboveAverageNode
- Stage= FirstStage Cost=111355.5172
- Stage= SecondStage Cost=-271788.5596
- Total scenario cost=-160433.0424
-
- Name=AverageScenario
- Probability=0.3333
- Leaf Node=AverageNode
- Tree node sequence:
- RootNode
- AverageNode
- Stage= FirstStage Cost=111355.5172
- Stage= SecondStage Cost=-223231.1084
- Total scenario cost=-111875.5913
-
- Name=BelowAverageScenario
- Probability=0.3333
- Leaf Node=BelowAverageNode
- Tree node sequence:
- RootNode
- BelowAverageNode
- Stage= FirstStage Cost=111355.5172
- Stage= SecondStage Cost=-162923.5731
- Total scenario cost=-51568.0560
-
-----------------------------------------------------
-
-
-Total PH execution time=6.64 seconds
-
-
-Total execution time=6.71 seconds
diff --git a/pyomo/pysp/tests/unit/baselines/farmer_linearized_nodedata_gurobi.baseline b/pyomo/pysp/tests/unit/baselines/farmer_linearized_nodedata_gurobi.baseline
deleted file mode 100644
index 2251767187e..00000000000
--- a/pyomo/pysp/tests/unit/baselines/farmer_linearized_nodedata_gurobi.baseline
+++ /dev/null
@@ -1,205 +0,0 @@
-Initializing PH
-
-Starting PH
-
-Initiating PH iteration=0
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 113494.4444 Max-Min=10416.67
-Converger=Normalized term diff value is 0.2540 - threshold reached=False
-Cumulative run-time=0.91 seconds
-
-Initiating PH iteration=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 113073.3333 Max-Min= 7180.00
-Converger=Normalized term diff value is 0.1307 - threshold reached=False
-Cumulative run-time=1.89 seconds
-
-Initiating PH iteration=2
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 113259.7778 Max-Min= 1736.67
-Converger=Normalized term diff value is 0.0872 - threshold reached=False
-Cumulative run-time=2.86 seconds
-
-Initiating PH iteration=3
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 113339.1852 Max-Min= 1836.89
-Converger=Normalized term diff value is 0.0793 - threshold reached=False
-Cumulative run-time=3.84 seconds
-
-Initiating PH iteration=4
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 112746.3951 Max-Min= 3745.63
-Converger=Normalized term diff value is 0.0820 - threshold reached=False
-Cumulative run-time=4.80 seconds
-
-Initiating PH iteration=5
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 112327.9383 Max-Min= 4381.88
-Converger=Normalized term diff value is 0.0828 - threshold reached=False
-Cumulative run-time=5.78 seconds
-
-Initiating PH iteration=6
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 112125.1852 Max-Min= 1027.56
-Converger=Normalized term diff value is 0.0561 - threshold reached=False
-Cumulative run-time=6.76 seconds
-
-Initiating PH iteration=7
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 111694.0412 Max-Min= 2320.99
-Converger=Normalized term diff value is 0.0625 - threshold reached=False
-Cumulative run-time=7.72 seconds
-
-Initiating PH iteration=8
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 111355.5172 Max-Min= 1015.57
-Converger=Normalized term diff value is 0.0342 - threshold reached=False
-Cumulative run-time=8.74 seconds
-
-Initiating PH iteration=9
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 111355.5172 Max-Min= 0.00
-Converger=Normalized term diff value is 0.0000 - threshold reached=True
-Cumulative run-time=9.75 seconds
-
-Number of discrete variables fixed before final plugin calls=0 (total=0)
-Number of continuous variables fixed before final plugin calls=0 (total=3)
-PH complete
-
-Convergence history:
-Converger=Normalized term diff
-Iteration Metric Value
- 0 0.2540
- 1 0.1307
- 2 0.0872
- 3 0.0793
- 4 0.0820
- 5 0.0828
- 6 0.0561
- 7 0.0625
- 8 0.0342
- 9 0.0000
-
-
-Final number of discrete variables fixed=0 (total=0)
-Final number of continuous variables fixed=0 (total=3)
-
-Computing objective inner bound at xhat solution
-
-Computed objective upper bound=-107958.8966
-
-X-hat variable values:
-
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 88.4631 88.4631 88.4631
-
- Index: [SUGAR_BEETS] Values: 266.1679 266.1679 266.1679
-
- Index: [WHEAT] Values: 145.3690 145.3690 145.3690
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 111355.5172 111355.5172 111355.5172 Max-Min: 0.0000 Avg: 111355.5172
-
-X-hat costs:
-
-Scenario Tree Costs
-----------------------------------------------------
-Tree Nodes:
-
- Name=AboveAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AboveAverageScenario
- Expected cost of (sub)tree rooted at node=-271788.5596
-
- Name=AverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AverageScenario
- Expected cost of (sub)tree rooted at node=-223231.1084
-
- Name=BelowAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-162923.5731
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- AboveAverageNode
- AverageNode
- BelowAverageNode
- Scenarios:
- AboveAverageScenario
- AverageScenario
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-107958.8966
-
-----------------------------------------------------
-Scenarios:
-
- Name=AboveAverageScenario
- Probability=0.3333
- Leaf Node=AboveAverageNode
- Tree node sequence:
- RootNode
- AboveAverageNode
- Stage= FirstStage Cost=111355.5172
- Stage= SecondStage Cost=-271788.5596
- Total scenario cost=-160433.0424
-
- Name=AverageScenario
- Probability=0.3333
- Leaf Node=AverageNode
- Tree node sequence:
- RootNode
- AverageNode
- Stage= FirstStage Cost=111355.5172
- Stage= SecondStage Cost=-223231.1084
- Total scenario cost=-111875.5913
-
- Name=BelowAverageScenario
- Probability=0.3333
- Leaf Node=BelowAverageNode
- Tree node sequence:
- RootNode
- BelowAverageNode
- Stage= FirstStage Cost=111355.5172
- Stage= SecondStage Cost=-162923.5731
- Total scenario cost=-51568.0560
-
-----------------------------------------------------
-
-
-Total PH execution time=10.71 seconds
-
-
-Total execution time=10.78 seconds
diff --git a/pyomo/pysp/tests/unit/baselines/farmer_maximize_ef.baseline.lp b/pyomo/pysp/tests/unit/baselines/farmer_maximize_ef.baseline.lp
deleted file mode 100644
index a4e528c7cd5..00000000000
--- a/pyomo/pysp/tests/unit/baselines/farmer_maximize_ef.baseline.lp
+++ /dev/null
@@ -1,369 +0,0 @@
-\* Source Pyomo model name=MASTER *\
-
-max
-MASTER:
-+0.33333332999999998 AboveAverageScenario_FirstStageCost
-+0.33333332999999998 AboveAverageScenario_SecondStageCost
-+0.33333333999999998 AverageScenario_FirstStageCost
-+0.33333333999999998 AverageScenario_SecondStageCost
-+0.33333332999999998 BelowAverageScenario_FirstStageCost
-+0.33333332999999998 BelowAverageScenario_SecondStageCost
-
-s.t.
-
-c_e_MASTER_BLEND_CONSTRAINT_RootNode(1)_:
--1 BelowAverageScenario_DevotedAcreage(CORN)
-+1 MASTER_BLEND_VAR_RootNode(DevotedAcreage__CORN)
-= 0
-
-c_e_MASTER_BLEND_CONSTRAINT_RootNode(2)_:
--1 AverageScenario_DevotedAcreage(CORN)
-+1 MASTER_BLEND_VAR_RootNode(DevotedAcreage__CORN)
-= 0
-
-c_e_MASTER_BLEND_CONSTRAINT_RootNode(3)_:
--1 AboveAverageScenario_DevotedAcreage(CORN)
-+1 MASTER_BLEND_VAR_RootNode(DevotedAcreage__CORN)
-= 0
-
-c_e_MASTER_BLEND_CONSTRAINT_RootNode(4)_:
--1 BelowAverageScenario_DevotedAcreage(SUGAR_BEETS)
-+1 MASTER_BLEND_VAR_RootNode(DevotedAcreage__SUGAR_BEETS)
-= 0
-
-c_e_MASTER_BLEND_CONSTRAINT_RootNode(5)_:
--1 AverageScenario_DevotedAcreage(SUGAR_BEETS)
-+1 MASTER_BLEND_VAR_RootNode(DevotedAcreage__SUGAR_BEETS)
-= 0
-
-c_e_MASTER_BLEND_CONSTRAINT_RootNode(6)_:
--1 AboveAverageScenario_DevotedAcreage(SUGAR_BEETS)
-+1 MASTER_BLEND_VAR_RootNode(DevotedAcreage__SUGAR_BEETS)
-= 0
-
-c_e_MASTER_BLEND_CONSTRAINT_RootNode(7)_:
--1 BelowAverageScenario_DevotedAcreage(WHEAT)
-+1 MASTER_BLEND_VAR_RootNode(DevotedAcreage__WHEAT)
-= 0
-
-c_e_MASTER_BLEND_CONSTRAINT_RootNode(8)_:
--1 AverageScenario_DevotedAcreage(WHEAT)
-+1 MASTER_BLEND_VAR_RootNode(DevotedAcreage__WHEAT)
-= 0
-
-c_e_MASTER_BLEND_CONSTRAINT_RootNode(9)_:
--1 AboveAverageScenario_DevotedAcreage(WHEAT)
-+1 MASTER_BLEND_VAR_RootNode(DevotedAcreage__WHEAT)
-= 0
-
-c_u_BelowAverageScenario_ConstrainTotalAcreage_:
-+1 BelowAverageScenario_DevotedAcreage(CORN)
-+1 BelowAverageScenario_DevotedAcreage(SUGAR_BEETS)
-+1 BelowAverageScenario_DevotedAcreage(WHEAT)
-<= 500
-
-c_l_BelowAverageScenario_EnforceCattleFeedRequirement(CORN)_:
-+2.3999999999999999 BelowAverageScenario_DevotedAcreage(CORN)
-+1 BelowAverageScenario_QuantityPurchased(CORN)
--1 BelowAverageScenario_QuantitySubQuotaSold(CORN)
--1 BelowAverageScenario_QuantitySuperQuotaSold(CORN)
->= 240
-
-c_l_BelowAverageScenario_EnforceCattleFeedRequirement(SUGAR_BEETS)_:
-+16 BelowAverageScenario_DevotedAcreage(SUGAR_BEETS)
-+1 BelowAverageScenario_QuantityPurchased(SUGAR_BEETS)
--1 BelowAverageScenario_QuantitySubQuotaSold(SUGAR_BEETS)
--1 BelowAverageScenario_QuantitySuperQuotaSold(SUGAR_BEETS)
->= 0
-
-c_l_BelowAverageScenario_EnforceCattleFeedRequirement(WHEAT)_:
-+2 BelowAverageScenario_DevotedAcreage(WHEAT)
-+1 BelowAverageScenario_QuantityPurchased(WHEAT)
--1 BelowAverageScenario_QuantitySubQuotaSold(WHEAT)
--1 BelowAverageScenario_QuantitySuperQuotaSold(WHEAT)
->= 200
-
-c_u_BelowAverageScenario_LimitAmountSold(CORN)_:
--2.3999999999999999 BelowAverageScenario_DevotedAcreage(CORN)
-+1 BelowAverageScenario_QuantitySubQuotaSold(CORN)
-+1 BelowAverageScenario_QuantitySuperQuotaSold(CORN)
-<= 0
-
-c_u_BelowAverageScenario_LimitAmountSold(SUGAR_BEETS)_:
--16 BelowAverageScenario_DevotedAcreage(SUGAR_BEETS)
-+1 BelowAverageScenario_QuantitySubQuotaSold(SUGAR_BEETS)
-+1 BelowAverageScenario_QuantitySuperQuotaSold(SUGAR_BEETS)
-<= 0
-
-c_u_BelowAverageScenario_LimitAmountSold(WHEAT)_:
--2 BelowAverageScenario_DevotedAcreage(WHEAT)
-+1 BelowAverageScenario_QuantitySubQuotaSold(WHEAT)
-+1 BelowAverageScenario_QuantitySuperQuotaSold(WHEAT)
-<= 0
-
-r_l_BelowAverageScenario_EnforceQuotas(CORN)_:
-+1 BelowAverageScenario_QuantitySubQuotaSold(CORN)
->= 0
-
-r_u_BelowAverageScenario_EnforceQuotas(CORN)_:
-+1 BelowAverageScenario_QuantitySubQuotaSold(CORN)
-<= 100000
-
-r_l_BelowAverageScenario_EnforceQuotas(SUGAR_BEETS)_:
-+1 BelowAverageScenario_QuantitySubQuotaSold(SUGAR_BEETS)
->= 0
-
-r_u_BelowAverageScenario_EnforceQuotas(SUGAR_BEETS)_:
-+1 BelowAverageScenario_QuantitySubQuotaSold(SUGAR_BEETS)
-<= 6000
-
-r_l_BelowAverageScenario_EnforceQuotas(WHEAT)_:
-+1 BelowAverageScenario_QuantitySubQuotaSold(WHEAT)
->= 0
-
-r_u_BelowAverageScenario_EnforceQuotas(WHEAT)_:
-+1 BelowAverageScenario_QuantitySubQuotaSold(WHEAT)
-<= 100000
-
-c_e_BelowAverageScenario_ComputeFirstStageCost_:
-+230 BelowAverageScenario_DevotedAcreage(CORN)
-+260 BelowAverageScenario_DevotedAcreage(SUGAR_BEETS)
-+150 BelowAverageScenario_DevotedAcreage(WHEAT)
-+1 BelowAverageScenario_FirstStageCost
-= 0
-
-c_e_BelowAverageScenario_ComputeSecondStageCost_:
-+210 BelowAverageScenario_QuantityPurchased(CORN)
-+100000 BelowAverageScenario_QuantityPurchased(SUGAR_BEETS)
-+238 BelowAverageScenario_QuantityPurchased(WHEAT)
--150 BelowAverageScenario_QuantitySubQuotaSold(CORN)
--36 BelowAverageScenario_QuantitySubQuotaSold(SUGAR_BEETS)
--170 BelowAverageScenario_QuantitySubQuotaSold(WHEAT)
--10 BelowAverageScenario_QuantitySuperQuotaSold(SUGAR_BEETS)
-+1 BelowAverageScenario_SecondStageCost
-= 0
-
-c_u_AverageScenario_ConstrainTotalAcreage_:
-+1 AverageScenario_DevotedAcreage(CORN)
-+1 AverageScenario_DevotedAcreage(SUGAR_BEETS)
-+1 AverageScenario_DevotedAcreage(WHEAT)
-<= 500
-
-c_l_AverageScenario_EnforceCattleFeedRequirement(CORN)_:
-+3 AverageScenario_DevotedAcreage(CORN)
-+1 AverageScenario_QuantityPurchased(CORN)
--1 AverageScenario_QuantitySubQuotaSold(CORN)
--1 AverageScenario_QuantitySuperQuotaSold(CORN)
->= 240
-
-c_l_AverageScenario_EnforceCattleFeedRequirement(SUGAR_BEETS)_:
-+20 AverageScenario_DevotedAcreage(SUGAR_BEETS)
-+1 AverageScenario_QuantityPurchased(SUGAR_BEETS)
--1 AverageScenario_QuantitySubQuotaSold(SUGAR_BEETS)
--1 AverageScenario_QuantitySuperQuotaSold(SUGAR_BEETS)
->= 0
-
-c_l_AverageScenario_EnforceCattleFeedRequirement(WHEAT)_:
-+2.5 AverageScenario_DevotedAcreage(WHEAT)
-+1 AverageScenario_QuantityPurchased(WHEAT)
--1 AverageScenario_QuantitySubQuotaSold(WHEAT)
--1 AverageScenario_QuantitySuperQuotaSold(WHEAT)
->= 200
-
-c_u_AverageScenario_LimitAmountSold(CORN)_:
--3 AverageScenario_DevotedAcreage(CORN)
-+1 AverageScenario_QuantitySubQuotaSold(CORN)
-+1 AverageScenario_QuantitySuperQuotaSold(CORN)
-<= 0
-
-c_u_AverageScenario_LimitAmountSold(SUGAR_BEETS)_:
--20 AverageScenario_DevotedAcreage(SUGAR_BEETS)
-+1 AverageScenario_QuantitySubQuotaSold(SUGAR_BEETS)
-+1 AverageScenario_QuantitySuperQuotaSold(SUGAR_BEETS)
-<= 0
-
-c_u_AverageScenario_LimitAmountSold(WHEAT)_:
--2.5 AverageScenario_DevotedAcreage(WHEAT)
-+1 AverageScenario_QuantitySubQuotaSold(WHEAT)
-+1 AverageScenario_QuantitySuperQuotaSold(WHEAT)
-<= 0
-
-r_l_AverageScenario_EnforceQuotas(CORN)_:
-+1 AverageScenario_QuantitySubQuotaSold(CORN)
->= 0
-
-r_u_AverageScenario_EnforceQuotas(CORN)_:
-+1 AverageScenario_QuantitySubQuotaSold(CORN)
-<= 100000
-
-r_l_AverageScenario_EnforceQuotas(SUGAR_BEETS)_:
-+1 AverageScenario_QuantitySubQuotaSold(SUGAR_BEETS)
->= 0
-
-r_u_AverageScenario_EnforceQuotas(SUGAR_BEETS)_:
-+1 AverageScenario_QuantitySubQuotaSold(SUGAR_BEETS)
-<= 6000
-
-r_l_AverageScenario_EnforceQuotas(WHEAT)_:
-+1 AverageScenario_QuantitySubQuotaSold(WHEAT)
->= 0
-
-r_u_AverageScenario_EnforceQuotas(WHEAT)_:
-+1 AverageScenario_QuantitySubQuotaSold(WHEAT)
-<= 100000
-
-c_e_AverageScenario_ComputeFirstStageCost_:
-+230 AverageScenario_DevotedAcreage(CORN)
-+260 AverageScenario_DevotedAcreage(SUGAR_BEETS)
-+150 AverageScenario_DevotedAcreage(WHEAT)
-+1 AverageScenario_FirstStageCost
-= 0
-
-c_e_AverageScenario_ComputeSecondStageCost_:
-+210 AverageScenario_QuantityPurchased(CORN)
-+100000 AverageScenario_QuantityPurchased(SUGAR_BEETS)
-+238 AverageScenario_QuantityPurchased(WHEAT)
--150 AverageScenario_QuantitySubQuotaSold(CORN)
--36 AverageScenario_QuantitySubQuotaSold(SUGAR_BEETS)
--170 AverageScenario_QuantitySubQuotaSold(WHEAT)
--10 AverageScenario_QuantitySuperQuotaSold(SUGAR_BEETS)
-+1 AverageScenario_SecondStageCost
-= 0
-
-c_u_AboveAverageScenario_ConstrainTotalAcreage_:
-+1 AboveAverageScenario_DevotedAcreage(CORN)
-+1 AboveAverageScenario_DevotedAcreage(SUGAR_BEETS)
-+1 AboveAverageScenario_DevotedAcreage(WHEAT)
-<= 500
-
-c_l_AboveAverageScenario_EnforceCattleFeedRequirement(CORN)_:
-+3.6000000000000001 AboveAverageScenario_DevotedAcreage(CORN)
-+1 AboveAverageScenario_QuantityPurchased(CORN)
--1 AboveAverageScenario_QuantitySubQuotaSold(CORN)
--1 AboveAverageScenario_QuantitySuperQuotaSold(CORN)
->= 240
-
-c_l_AboveAverageScenario_EnforceCattleFeedRequirement(SUGAR_BEETS)_:
-+24 AboveAverageScenario_DevotedAcreage(SUGAR_BEETS)
-+1 AboveAverageScenario_QuantityPurchased(SUGAR_BEETS)
--1 AboveAverageScenario_QuantitySubQuotaSold(SUGAR_BEETS)
--1 AboveAverageScenario_QuantitySuperQuotaSold(SUGAR_BEETS)
->= 0
-
-c_l_AboveAverageScenario_EnforceCattleFeedRequirement(WHEAT)_:
-+3 AboveAverageScenario_DevotedAcreage(WHEAT)
-+1 AboveAverageScenario_QuantityPurchased(WHEAT)
--1 AboveAverageScenario_QuantitySubQuotaSold(WHEAT)
--1 AboveAverageScenario_QuantitySuperQuotaSold(WHEAT)
->= 200
-
-c_u_AboveAverageScenario_LimitAmountSold(CORN)_:
--3.6000000000000001 AboveAverageScenario_DevotedAcreage(CORN)
-+1 AboveAverageScenario_QuantitySubQuotaSold(CORN)
-+1 AboveAverageScenario_QuantitySuperQuotaSold(CORN)
-<= 0
-
-c_u_AboveAverageScenario_LimitAmountSold(SUGAR_BEETS)_:
--24 AboveAverageScenario_DevotedAcreage(SUGAR_BEETS)
-+1 AboveAverageScenario_QuantitySubQuotaSold(SUGAR_BEETS)
-+1 AboveAverageScenario_QuantitySuperQuotaSold(SUGAR_BEETS)
-<= 0
-
-c_u_AboveAverageScenario_LimitAmountSold(WHEAT)_:
--3 AboveAverageScenario_DevotedAcreage(WHEAT)
-+1 AboveAverageScenario_QuantitySubQuotaSold(WHEAT)
-+1 AboveAverageScenario_QuantitySuperQuotaSold(WHEAT)
-<= 0
-
-r_l_AboveAverageScenario_EnforceQuotas(CORN)_:
-+1 AboveAverageScenario_QuantitySubQuotaSold(CORN)
->= 0
-
-r_u_AboveAverageScenario_EnforceQuotas(CORN)_:
-+1 AboveAverageScenario_QuantitySubQuotaSold(CORN)
-<= 100000
-
-r_l_AboveAverageScenario_EnforceQuotas(SUGAR_BEETS)_:
-+1 AboveAverageScenario_QuantitySubQuotaSold(SUGAR_BEETS)
->= 0
-
-r_u_AboveAverageScenario_EnforceQuotas(SUGAR_BEETS)_:
-+1 AboveAverageScenario_QuantitySubQuotaSold(SUGAR_BEETS)
-<= 6000
-
-r_l_AboveAverageScenario_EnforceQuotas(WHEAT)_:
-+1 AboveAverageScenario_QuantitySubQuotaSold(WHEAT)
->= 0
-
-r_u_AboveAverageScenario_EnforceQuotas(WHEAT)_:
-+1 AboveAverageScenario_QuantitySubQuotaSold(WHEAT)
-<= 100000
-
-c_e_AboveAverageScenario_ComputeFirstStageCost_:
-+230 AboveAverageScenario_DevotedAcreage(CORN)
-+260 AboveAverageScenario_DevotedAcreage(SUGAR_BEETS)
-+150 AboveAverageScenario_DevotedAcreage(WHEAT)
-+1 AboveAverageScenario_FirstStageCost
-= 0
-
-c_e_AboveAverageScenario_ComputeSecondStageCost_:
-+210 AboveAverageScenario_QuantityPurchased(CORN)
-+100000 AboveAverageScenario_QuantityPurchased(SUGAR_BEETS)
-+238 AboveAverageScenario_QuantityPurchased(WHEAT)
--150 AboveAverageScenario_QuantitySubQuotaSold(CORN)
--36 AboveAverageScenario_QuantitySubQuotaSold(SUGAR_BEETS)
--170 AboveAverageScenario_QuantitySubQuotaSold(WHEAT)
--10 AboveAverageScenario_QuantitySuperQuotaSold(SUGAR_BEETS)
-+1 AboveAverageScenario_SecondStageCost
-= 0
-
-c_e_ONE_VAR_CONSTANT:
-ONE_VAR_CONSTANT = 1.0
-
-bounds
- -inf <= MASTER_BLEND_VAR_RootNode(DevotedAcreage__CORN) <= +inf
- -inf <= MASTER_BLEND_VAR_RootNode(DevotedAcreage__SUGAR_BEETS) <= +inf
- -inf <= MASTER_BLEND_VAR_RootNode(DevotedAcreage__WHEAT) <= +inf
- 0 <= BelowAverageScenario_DevotedAcreage(CORN) <= 500
- 0 <= BelowAverageScenario_DevotedAcreage(SUGAR_BEETS) <= 500
- 0 <= BelowAverageScenario_DevotedAcreage(WHEAT) <= 500
- 0 <= BelowAverageScenario_QuantitySubQuotaSold(CORN) <= +inf
- 0 <= BelowAverageScenario_QuantitySubQuotaSold(SUGAR_BEETS) <= +inf
- 0 <= BelowAverageScenario_QuantitySubQuotaSold(WHEAT) <= +inf
- 0 <= BelowAverageScenario_QuantitySuperQuotaSold(CORN) <= +inf
- 0 <= BelowAverageScenario_QuantitySuperQuotaSold(SUGAR_BEETS) <= +inf
- 0 <= BelowAverageScenario_QuantitySuperQuotaSold(WHEAT) <= +inf
- 0 <= BelowAverageScenario_QuantityPurchased(CORN) <= +inf
- 0 <= BelowAverageScenario_QuantityPurchased(SUGAR_BEETS) <= +inf
- 0 <= BelowAverageScenario_QuantityPurchased(WHEAT) <= +inf
- -inf <= BelowAverageScenario_FirstStageCost <= +inf
- -inf <= BelowAverageScenario_SecondStageCost <= +inf
- 0 <= AverageScenario_DevotedAcreage(CORN) <= 500
- 0 <= AverageScenario_DevotedAcreage(SUGAR_BEETS) <= 500
- 0 <= AverageScenario_DevotedAcreage(WHEAT) <= 500
- 0 <= AverageScenario_QuantitySubQuotaSold(CORN) <= +inf
- 0 <= AverageScenario_QuantitySubQuotaSold(SUGAR_BEETS) <= +inf
- 0 <= AverageScenario_QuantitySubQuotaSold(WHEAT) <= +inf
- 0 <= AverageScenario_QuantitySuperQuotaSold(CORN) <= +inf
- 0 <= AverageScenario_QuantitySuperQuotaSold(SUGAR_BEETS) <= +inf
- 0 <= AverageScenario_QuantitySuperQuotaSold(WHEAT) <= +inf
- 0 <= AverageScenario_QuantityPurchased(CORN) <= +inf
- 0 <= AverageScenario_QuantityPurchased(SUGAR_BEETS) <= +inf
- 0 <= AverageScenario_QuantityPurchased(WHEAT) <= +inf
- -inf <= AverageScenario_FirstStageCost <= +inf
- -inf <= AverageScenario_SecondStageCost <= +inf
- 0 <= AboveAverageScenario_DevotedAcreage(CORN) <= 500
- 0 <= AboveAverageScenario_DevotedAcreage(SUGAR_BEETS) <= 500
- 0 <= AboveAverageScenario_DevotedAcreage(WHEAT) <= 500
- 0 <= AboveAverageScenario_QuantitySubQuotaSold(CORN) <= +inf
- 0 <= AboveAverageScenario_QuantitySubQuotaSold(SUGAR_BEETS) <= +inf
- 0 <= AboveAverageScenario_QuantitySubQuotaSold(WHEAT) <= +inf
- 0 <= AboveAverageScenario_QuantitySuperQuotaSold(CORN) <= +inf
- 0 <= AboveAverageScenario_QuantitySuperQuotaSold(SUGAR_BEETS) <= +inf
- 0 <= AboveAverageScenario_QuantitySuperQuotaSold(WHEAT) <= +inf
- 0 <= AboveAverageScenario_QuantityPurchased(CORN) <= +inf
- 0 <= AboveAverageScenario_QuantityPurchased(SUGAR_BEETS) <= +inf
- 0 <= AboveAverageScenario_QuantityPurchased(WHEAT) <= +inf
- -inf <= AboveAverageScenario_FirstStageCost <= +inf
- -inf <= AboveAverageScenario_SecondStageCost <= +inf
-end
diff --git a/pyomo/pysp/tests/unit/baselines/farmer_maximize_ef.baseline.txt b/pyomo/pysp/tests/unit/baselines/farmer_maximize_ef.baseline.txt
deleted file mode 100644
index 5e78a943cd9..00000000000
--- a/pyomo/pysp/tests/unit/baselines/farmer_maximize_ef.baseline.txt
+++ /dev/null
@@ -1,174 +0,0 @@
-Importing model and scenario tree files
-Time to import model and scenario tree structure files=0.01 seconds
-Scenario Tree Detail
-----------------------------------------------------
-Tree Nodes:
-
- Name=AboveAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AboveAverageScenario
-
- Name=AverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AverageScenario
-
- Name=BelowAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- BelowAverageScenario
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- AboveAverageNode
- AverageNode
- BelowAverageNode
- Scenarios:
- AboveAverageScenario
- AverageScenario
- BelowAverageScenario
-
-----------------------------------------------------
-Stages:
- Name=FirstStage
- Tree Nodes:
- RootNode
- Variables:
- DevotedAcreage : [*]
- Cost Variable:
- FirstStageCost
-
- Name=SecondStage
- Tree Nodes:
- AboveAverageNode
- AverageNode
- BelowAverageNode
- Variables:
- QuantityPurchased : [*]
- QuantitySubQuotaSold : [*]
- QuantitySuperQuotaSold : [*]
- Cost Variable:
- SecondStageCost
-
-----------------------------------------------------
-Scenarios:
- Name=AboveAverageScenario
- Probability=0.3333
- Leaf node=AboveAverageNode
- Tree node sequence:
- RootNode
- AboveAverageNode
-
- Name=AverageScenario
- Probability=0.3333
- Leaf node=AverageNode
- Tree node sequence:
- RootNode
- AverageNode
-
- Name=BelowAverageScenario
- Probability=0.3333
- Leaf node=BelowAverageNode
- Tree node sequence:
- RootNode
- BelowAverageNode
-
-----------------------------------------------------
-Scenario tree is valid!
-Initializing ScenarioTreeManagerClientSerial with options:
- * verbose: True
- - disable_gc: False
- - profile: 0
- - traceback: False
- - output_scenario_tree_solution: False
- - solution_saver_extension: ()
- - solution_loader_extension: ()
- - solution_writer: ()
- * output_file: /home/jwatson/sp/pyomo/pyomo/pyomo/pysp/tests/unit/farmer_maximize_ef.lp
- - solve: False
- - output_scenario_costs: None
- - output_instance_construction_time: False
- - compile_scenario_instances: False
- - output_times: False
- * model_location: /home/jwatson/sp/pyomo/pyomo/examples/pysp/farmer/maxmodels
- - model_directory: None (DEPRECATED)
- * scenario_tree_location: /home/jwatson/sp/pyomo/pyomo/examples/pysp/farmer/scenariodata
- - instance_directory: None (DEPRECATED)
- * objective_sense_stage_based: -1
- - postinit_callback_location: ()
- - bounds_cfgfile: None (DEPRECATED)
- - aggregategetter_callback_location: ()
- - aggregate_cfgfile: None (DEPRECATED)
- - scenario_tree_random_seed: None
- - scenario_tree_seed: None (DEPRECATED)
- - scenario_tree_downsample_fraction: 1.0
- - scenario_bundle_specification: None
- - create_random_bundles: 0
- - profile_memory: 0
- - cvar_weight: 1.0
- - generate_weighted_cvar: False
- - risk_alpha: 0.95
- - cc_alpha: 0.0
- - cc_indicator_var: None
- - mipgap: None
- - solver: cplex
- - solver_io: None
- - solver_manager: serial
- - solver_options: ()
- - disable_warmstart: False
- - pyro_host: None
- - pyro_port: None
- - pyro_shutdown: False
- - shutdown_pyro: None (DEPRECATED)
- - output_solver_results: False
- * symbolic_solver_labels: True
- - output_solver_log: False
- - keep_solver_files: False
- - pyro_shutdown_workers: False
- - shutdown_pyro_workers: None (DEPRECATED)
- - activate_jsonio_solution_saver: None
-
-Constructing scenario tree instances
-Scenario-based instance initialization enabled
-Creating instance for scenario=BelowAverageScenario
-Data for scenario=BelowAverageScenario loads from file=/home/jwatson/sp/pyomo/pyomo/examples/pysp/farmer/scenariodata/BelowAverageScenario.dat
-Creating instance for scenario=AverageScenario
-Data for scenario=AverageScenario loads from file=/home/jwatson/sp/pyomo/pyomo/examples/pysp/farmer/scenariodata/AverageScenario.dat
-Creating instance for scenario=AboveAverageScenario
-Data for scenario=AboveAverageScenario loads from file=/home/jwatson/sp/pyomo/pyomo/examples/pysp/farmer/scenariodata/AboveAverageScenario.dat
-Time to construct scenario instances=0.02 seconds
-Linking instances into scenario tree
-*** Active Objective 'Total_Cost_Objective' on scenario instance 'AboveAverageScenario' will not be used. ***
-*** Active Objective 'Total_Cost_Objective' on scenario instance 'AverageScenario' will not be used. ***
-*** Active Objective 'Total_Cost_Objective' on scenario instance 'BelowAverageScenario' will not be used. ***
-Time link scenario tree with instances=0.00 seconds
-ScenarioTreeManagerClientSerial is successfully initialized
-Overall initialization time=0.03 seconds
-
-Initializing extensive form algorithm for stochastic programming problems.
-Creating extensive form instance
-Creating variables for master binding instance
-Time to construct extensive form instance=0.00 seconds
-Starting to write extensive form
-Extensive form written to file=/home/jwatson/sp/pyomo/pyomo/pyomo/pysp/tests/unit/farmer_maximize_ef.lp
-Time to write output file=0.01 seconds
-Closing ScenarioTreeManagerClientSerial
-
-Total EF execution time=0.05 seconds
-
diff --git a/pyomo/pysp/tests/unit/baselines/farmer_maximize_ef_with_solve_cplex.baseline b/pyomo/pysp/tests/unit/baselines/farmer_maximize_ef_with_solve_cplex.baseline
deleted file mode 100644
index bdd02fe0850..00000000000
--- a/pyomo/pysp/tests/unit/baselines/farmer_maximize_ef_with_solve_cplex.baseline
+++ /dev/null
@@ -1,304 +0,0 @@
-Importing model and scenario tree files
-Time to import model and scenario tree structure files=0.01 seconds
-Scenario Tree Detail
-----------------------------------------------------
-Tree Nodes:
-
- Name=AboveAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AboveAverageScenario
-
- Name=AverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AverageScenario
-
- Name=BelowAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- BelowAverageScenario
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- AboveAverageNode
- AverageNode
- BelowAverageNode
- Scenarios:
- AboveAverageScenario
- AverageScenario
- BelowAverageScenario
-
-----------------------------------------------------
-Stages:
- Name=FirstStage
- Tree Nodes:
- RootNode
- Variables:
- DevotedAcreage : [*]
- Cost Variable:
- FirstStageCost
-
- Name=SecondStage
- Tree Nodes:
- AboveAverageNode
- AverageNode
- BelowAverageNode
- Variables:
- QuantityPurchased : [*]
- QuantitySubQuotaSold : [*]
- QuantitySuperQuotaSold : [*]
- Cost Variable:
- SecondStageCost
-
-----------------------------------------------------
-Scenarios:
- Name=AboveAverageScenario
- Probability=0.3333
- Leaf node=AboveAverageNode
- Tree node sequence:
- RootNode
- AboveAverageNode
-
- Name=AverageScenario
- Probability=0.3333
- Leaf node=AverageNode
- Tree node sequence:
- RootNode
- AverageNode
-
- Name=BelowAverageScenario
- Probability=0.3333
- Leaf node=BelowAverageNode
- Tree node sequence:
- RootNode
- BelowAverageNode
-
-----------------------------------------------------
-Scenario tree is valid!
-Initializing ScenarioTreeManagerClientSerial with options:
- * verbose: True
- - disable_gc: False
- - profile: 0
- - traceback: False
- - output_scenario_tree_solution: False
- - solution_saver_extension: ()
- - solution_loader_extension: ()
- - solution_writer: ()
- * output_file: /home/hudson/slave/workspace/Pyomo_trunk_python2.6/src/pyomo/pyomo/pysp/tests/unit/test_farmer_maximize_with_solve_cplex.lp
- * solve: True
- - output_scenario_costs: None
- - output_instance_construction_time: False
- - compile_scenario_instances: False
- - output_times: False
- * model_location: /home/hudson/slave/workspace/Pyomo_trunk_python2.6/src/pyomo/examples/pysp/farmer/maxmodels
- - model_directory: None (DEPRECATED)
- * scenario_tree_location: /home/hudson/slave/workspace/Pyomo_trunk_python2.6/src/pyomo/examples/pysp/farmer/scenariodata
- - instance_directory: None (DEPRECATED)
- * objective_sense_stage_based: -1
- - postinit_callback_location: ()
- - bounds_cfgfile: None (DEPRECATED)
- - aggregategetter_callback_location: ()
- - aggregate_cfgfile: None (DEPRECATED)
- - scenario_tree_random_seed: None
- - scenario_tree_seed: None (DEPRECATED)
- - scenario_tree_downsample_fraction: 1.0
- - scenario_bundle_specification: None
- - create_random_bundles: 0
- - profile_memory: 0
- - cvar_weight: 1.0
- - generate_weighted_cvar: False
- - risk_alpha: 0.95
- - cc_alpha: 0.0
- - cc_indicator_var: None
- - mipgap: None
- * solver: cplex
- - solver_io: None
- - solver_manager: serial
- - solver_options: ()
- - disable_warmstart: False
- - pyro_host: None
- - pyro_port: None
- - pyro_shutdown: False
- - shutdown_pyro: None (DEPRECATED)
- - output_solver_results: False
- - symbolic_solver_labels: False
- - output_solver_log: False
- - keep_solver_files: False
- - pyro_shutdown_workers: False
- - shutdown_pyro_workers: None (DEPRECATED)
- - activate_jsonio_solution_saver: None
-
-Constructing scenario tree instances
-Scenario-based instance initialization enabled
-Creating instance for scenario=BelowAverageScenario
-Data for scenario=BelowAverageScenario loads from file=/home/hudson/slave/workspace/Pyomo_trunk_python2.6/src/pyomo/examples/pysp/farmer/scenariodata/BelowAverageScenario.dat
-Creating instance for scenario=AverageScenario
-Data for scenario=AverageScenario loads from file=/home/hudson/slave/workspace/Pyomo_trunk_python2.6/src/pyomo/examples/pysp/farmer/scenariodata/AverageScenario.dat
-Creating instance for scenario=AboveAverageScenario
-Data for scenario=AboveAverageScenario loads from file=/home/hudson/slave/workspace/Pyomo_trunk_python2.6/src/pyomo/examples/pysp/farmer/scenariodata/AboveAverageScenario.dat
-Time to construct scenario instances=0.02 seconds
-Linking instances into scenario tree
-*** Active Objective 'Total_Cost_Objective' on scenario instance 'AboveAverageScenario' will not be used. ***
-*** Active Objective 'Total_Cost_Objective' on scenario instance 'AverageScenario' will not be used. ***
-*** Active Objective 'Total_Cost_Objective' on scenario instance 'BelowAverageScenario' will not be used. ***
-Time link scenario tree with instances=0.00 seconds
-ScenarioTreeManagerClientSerial is successfully initialized
-Overall initialization time=0.02 seconds
-
-Initializing extensive form algorithm for stochastic programming problems.
-Creating extensive form instance
-Creating variables for master binding instance
-Time to construct extensive form instance=0.00 seconds
-Starting to write extensive form
-Extensive form written to file=/home/hudson/slave/workspace/Pyomo_trunk_python2.6/src/pyomo/pyomo/pysp/tests/unit/test_farmer_maximize_with_solve_cplex.lp
-Time to write output file=0.01 seconds
-Queuing extensive form solve
-Waiting for extensive form solve
-Done with extensive form solve - loading results
-Storing solution in scenario tree
-Time to solve and load results for the extensive form=0.04 seconds
-EF solve completed and solution status is optimal
-EF solve termination condition is optimal
-EF objective: 108390.00001
-EF gap: 0.00000
-EF bound: 108390.00001
-
-Extensive form solution:
-----------------------------------------------------
-Tree Nodes:
-
- Name=AboveAverageNode
- Stage=SecondStage
- Parent=RootNode
- Variables:
- QuantitySubQuotaSold[CORN]=48.0
- QuantitySubQuotaSold[SUGAR_BEETS]=6000.0
- QuantitySubQuotaSold[WHEAT]=310.0
-
- Name=AverageNode
- Stage=SecondStage
- Parent=RootNode
- Variables:
- QuantitySubQuotaSold[SUGAR_BEETS]=5000.0
- QuantitySubQuotaSold[WHEAT]=225.0
-
- Name=BelowAverageNode
- Stage=SecondStage
- Parent=RootNode
- Variables:
- QuantityPurchased[CORN]=48.0
- QuantitySubQuotaSold[SUGAR_BEETS]=4000.0
- QuantitySubQuotaSold[WHEAT]=140.0
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Variables:
- DevotedAcreage[CORN]=80.0
- DevotedAcreage[SUGAR_BEETS]=250.0
- DevotedAcreage[WHEAT]=170.0
-
-
-Extensive form costs:
-Scenario Tree Costs
-----------------------------------------------------
-Tree Nodes:
-
- Name=AboveAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AboveAverageScenario
- Expected cost of (sub)tree rooted at node=275900.0000
-
- Name=AverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AverageScenario
- Expected cost of (sub)tree rooted at node=218250.0000
-
- Name=BelowAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=157720.0000
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- AboveAverageNode
- AverageNode
- BelowAverageNode
- Scenarios:
- AboveAverageScenario
- AverageScenario
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=108390.0000
-
-----------------------------------------------------
-Scenarios:
-
- Name=AboveAverageScenario
- Probability=0.3333
- Leaf Node=AboveAverageNode
- Tree node sequence:
- RootNode
- AboveAverageNode
- Stage= FirstStage Cost=-108900.0000
- Stage= SecondStage Cost=275900.0000
- Total scenario cost=167000.0000
-
- Name=AverageScenario
- Probability=0.3333
- Leaf Node=AverageNode
- Tree node sequence:
- RootNode
- AverageNode
- Stage= FirstStage Cost=-108900.0000
- Stage= SecondStage Cost=218250.0000
- Total scenario cost=109350.0000
-
- Name=BelowAverageScenario
- Probability=0.3333
- Leaf Node=BelowAverageNode
- Tree node sequence:
- RootNode
- BelowAverageNode
- Stage= FirstStage Cost=-108900.0000
- Stage= SecondStage Cost=157720.0000
- Total scenario cost=48820.0000
-
-----------------------------------------------------
-Closing ScenarioTreeManagerClientSerial
-
-Total EF execution time=0.08 seconds
-
diff --git a/pyomo/pysp/tests/unit/baselines/farmer_maximize_ef_with_solve_gurobi.baseline b/pyomo/pysp/tests/unit/baselines/farmer_maximize_ef_with_solve_gurobi.baseline
deleted file mode 100644
index 9e77f2c344e..00000000000
--- a/pyomo/pysp/tests/unit/baselines/farmer_maximize_ef_with_solve_gurobi.baseline
+++ /dev/null
@@ -1,304 +0,0 @@
-Importing model and scenario tree files
-Time to import model and scenario tree structure files=0.01 seconds
-Scenario Tree Detail
-----------------------------------------------------
-Tree Nodes:
-
- Name=AboveAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AboveAverageScenario
-
- Name=AverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AverageScenario
-
- Name=BelowAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- BelowAverageScenario
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- AboveAverageNode
- AverageNode
- BelowAverageNode
- Scenarios:
- AboveAverageScenario
- AverageScenario
- BelowAverageScenario
-
-----------------------------------------------------
-Stages:
- Name=FirstStage
- Tree Nodes:
- RootNode
- Variables:
- DevotedAcreage : [*]
- Cost Variable:
- FirstStageCost
-
- Name=SecondStage
- Tree Nodes:
- AboveAverageNode
- AverageNode
- BelowAverageNode
- Variables:
- QuantityPurchased : [*]
- QuantitySubQuotaSold : [*]
- QuantitySuperQuotaSold : [*]
- Cost Variable:
- SecondStageCost
-
-----------------------------------------------------
-Scenarios:
- Name=AboveAverageScenario
- Probability=0.3333
- Leaf node=AboveAverageNode
- Tree node sequence:
- RootNode
- AboveAverageNode
-
- Name=AverageScenario
- Probability=0.3333
- Leaf node=AverageNode
- Tree node sequence:
- RootNode
- AverageNode
-
- Name=BelowAverageScenario
- Probability=0.3333
- Leaf node=BelowAverageNode
- Tree node sequence:
- RootNode
- BelowAverageNode
-
-----------------------------------------------------
-Scenario tree is valid!
-Initializing ScenarioTreeManagerClientSerial with options:
- * verbose: True
- - disable_gc: False
- - profile: 0
- - traceback: False
- - output_scenario_tree_solution: False
- - solution_saver_extension: ()
- - solution_loader_extension: ()
- - solution_writer: ()
- * output_file: /home/hudson/slave/workspace/Pyomo_trunk_python2.6/src/pyomo/pyomo/pysp/tests/unit/test_farmer_maximize_with_solve_gurobi.lp
- * solve: True
- - output_scenario_costs: None
- - output_instance_construction_time: False
- - compile_scenario_instances: False
- - output_times: False
- * model_location: /home/hudson/slave/workspace/Pyomo_trunk_python2.6/src/pyomo/examples/pysp/farmer/maxmodels
- - model_directory: None (DEPRECATED)
- * scenario_tree_location: /home/hudson/slave/workspace/Pyomo_trunk_python2.6/src/pyomo/examples/pysp/farmer/scenariodata
- - instance_directory: None (DEPRECATED)
- * objective_sense_stage_based: -1
- - postinit_callback_location: ()
- - bounds_cfgfile: None (DEPRECATED)
- - aggregategetter_callback_location: ()
- - aggregate_cfgfile: None (DEPRECATED)
- - scenario_tree_random_seed: None
- - scenario_tree_seed: None (DEPRECATED)
- - scenario_tree_downsample_fraction: 1.0
- - scenario_bundle_specification: None
- - create_random_bundles: 0
- - profile_memory: 0
- - cvar_weight: 1.0
- - generate_weighted_cvar: False
- - risk_alpha: 0.95
- - cc_alpha: 0.0
- - cc_indicator_var: None
- - mipgap: None
- * solver: gurobi
- - solver_io: None
- - solver_manager: serial
- - solver_options: ()
- - disable_warmstart: False
- - pyro_host: None
- - pyro_port: None
- - pyro_shutdown: False
- - shutdown_pyro: None (DEPRECATED)
- - output_solver_results: False
- - symbolic_solver_labels: False
- - output_solver_log: False
- - keep_solver_files: False
- - pyro_shutdown_workers: False
- - shutdown_pyro_workers: None (DEPRECATED)
- - activate_jsonio_solution_saver: None
-
-Constructing scenario tree instances
-Scenario-based instance initialization enabled
-Creating instance for scenario=BelowAverageScenario
-Data for scenario=BelowAverageScenario loads from file=/home/hudson/slave/workspace/Pyomo_trunk_python2.6/src/pyomo/examples/pysp/farmer/scenariodata/BelowAverageScenario.dat
-Creating instance for scenario=AverageScenario
-Data for scenario=AverageScenario loads from file=/home/hudson/slave/workspace/Pyomo_trunk_python2.6/src/pyomo/examples/pysp/farmer/scenariodata/AverageScenario.dat
-Creating instance for scenario=AboveAverageScenario
-Data for scenario=AboveAverageScenario loads from file=/home/hudson/slave/workspace/Pyomo_trunk_python2.6/src/pyomo/examples/pysp/farmer/scenariodata/AboveAverageScenario.dat
-Time to construct scenario instances=0.02 seconds
-Linking instances into scenario tree
-*** Active Objective 'Total_Cost_Objective' on scenario instance 'AboveAverageScenario' will not be used. ***
-*** Active Objective 'Total_Cost_Objective' on scenario instance 'AverageScenario' will not be used. ***
-*** Active Objective 'Total_Cost_Objective' on scenario instance 'BelowAverageScenario' will not be used. ***
-Time link scenario tree with instances=0.00 seconds
-ScenarioTreeManagerClientSerial is successfully initialized
-Overall initialization time=0.02 seconds
-
-Initializing extensive form algorithm for stochastic programming problems.
-Creating extensive form instance
-Creating variables for master binding instance
-Time to construct extensive form instance=0.00 seconds
-Starting to write extensive form
-Extensive form written to file=/home/hudson/slave/workspace/Pyomo_trunk_python2.6/src/pyomo/pyomo/pysp/tests/unit/test_farmer_maximize_with_solve_gurobi.lp
-Time to write output file=0.01 seconds
-Queuing extensive form solve
-Waiting for extensive form solve
-Done with extensive form solve - loading results
-Storing solution in scenario tree
-Time to solve and load results for the extensive form=0.14 seconds
-EF solve completed and solution status is optimal
-EF solve termination condition is optimal
-EF objective: 108390.00001
-EF gap: 0.00000
-EF bound: 108390.00001
-
-Extensive form solution:
-----------------------------------------------------
-Tree Nodes:
-
- Name=AboveAverageNode
- Stage=SecondStage
- Parent=RootNode
- Variables:
- QuantitySubQuotaSold[CORN]=48.0
- QuantitySubQuotaSold[SUGAR_BEETS]=6000.0
- QuantitySubQuotaSold[WHEAT]=310.0
-
- Name=AverageNode
- Stage=SecondStage
- Parent=RootNode
- Variables:
- QuantitySubQuotaSold[SUGAR_BEETS]=5000.0
- QuantitySubQuotaSold[WHEAT]=225.0
-
- Name=BelowAverageNode
- Stage=SecondStage
- Parent=RootNode
- Variables:
- QuantityPurchased[CORN]=48.0
- QuantitySubQuotaSold[SUGAR_BEETS]=4000.0
- QuantitySubQuotaSold[WHEAT]=140.0
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Variables:
- DevotedAcreage[CORN]=80.0
- DevotedAcreage[SUGAR_BEETS]=250.0
- DevotedAcreage[WHEAT]=170.0
-
-
-Extensive form costs:
-Scenario Tree Costs
-----------------------------------------------------
-Tree Nodes:
-
- Name=AboveAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AboveAverageScenario
- Expected cost of (sub)tree rooted at node=275900.0000
-
- Name=AverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AverageScenario
- Expected cost of (sub)tree rooted at node=218250.0000
-
- Name=BelowAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=157720.0000
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- AboveAverageNode
- AverageNode
- BelowAverageNode
- Scenarios:
- AboveAverageScenario
- AverageScenario
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=108390.0000
-
-----------------------------------------------------
-Scenarios:
-
- Name=AboveAverageScenario
- Probability=0.3333
- Leaf Node=AboveAverageNode
- Tree node sequence:
- RootNode
- AboveAverageNode
- Stage= FirstStage Cost=-108900.0000
- Stage= SecondStage Cost=275900.0000
- Total scenario cost=167000.0000
-
- Name=AverageScenario
- Probability=0.3333
- Leaf Node=AverageNode
- Tree node sequence:
- RootNode
- AverageNode
- Stage= FirstStage Cost=-108900.0000
- Stage= SecondStage Cost=218250.0000
- Total scenario cost=109350.0000
-
- Name=BelowAverageScenario
- Probability=0.3333
- Leaf Node=BelowAverageNode
- Tree node sequence:
- RootNode
- BelowAverageNode
- Stage= FirstStage Cost=-108900.0000
- Stage= SecondStage Cost=157720.0000
- Total scenario cost=48820.0000
-
-----------------------------------------------------
-Closing ScenarioTreeManagerClientSerial
-
-Total EF execution time=0.18 seconds
-
diff --git a/pyomo/pysp/tests/unit/baselines/farmer_maximize_linearized_cplex.baseline b/pyomo/pysp/tests/unit/baselines/farmer_maximize_linearized_cplex.baseline
deleted file mode 100644
index 6f86de954b6..00000000000
--- a/pyomo/pysp/tests/unit/baselines/farmer_maximize_linearized_cplex.baseline
+++ /dev/null
@@ -1,208 +0,0 @@
-*** Active Objective 'Total_Cost_Objective' on scenario instance 'AboveAverageScenario' will not be used. ***
-*** Active Objective 'Total_Cost_Objective' on scenario instance 'AverageScenario' will not be used. ***
-*** Active Objective 'Total_Cost_Objective' on scenario instance 'BelowAverageScenario' will not be used. ***
-Initializing PH
-
-Starting PH
-
-Initiating PH iteration=0
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg=-113494.4444 Max-Min=10416.67
-Converger=Normalized term diff value is 0.2540 - threshold reached=False
-Cumulative run-time=0.58 seconds
-
-Initiating PH iteration=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg=-113073.3333 Max-Min= 7180.00
-Converger=Normalized term diff value is 0.1307 - threshold reached=False
-Cumulative run-time=1.23 seconds
-
-Initiating PH iteration=2
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg=-113259.7778 Max-Min= 1736.67
-Converger=Normalized term diff value is 0.0872 - threshold reached=False
-Cumulative run-time=1.82 seconds
-
-Initiating PH iteration=3
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg=-113339.1852 Max-Min= 1836.89
-Converger=Normalized term diff value is 0.0793 - threshold reached=False
-Cumulative run-time=2.43 seconds
-
-Initiating PH iteration=4
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg=-112746.3951 Max-Min= 3745.63
-Converger=Normalized term diff value is 0.0820 - threshold reached=False
-Cumulative run-time=2.99 seconds
-
-Initiating PH iteration=5
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg=-112327.9383 Max-Min= 4381.88
-Converger=Normalized term diff value is 0.0828 - threshold reached=False
-Cumulative run-time=3.60 seconds
-
-Initiating PH iteration=6
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg=-112125.1852 Max-Min= 1027.56
-Converger=Normalized term diff value is 0.0561 - threshold reached=False
-Cumulative run-time=4.16 seconds
-
-Initiating PH iteration=7
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg=-111694.0412 Max-Min= 2320.99
-Converger=Normalized term diff value is 0.0625 - threshold reached=False
-Cumulative run-time=4.72 seconds
-
-Initiating PH iteration=8
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg=-111355.5172 Max-Min= 1015.57
-Converger=Normalized term diff value is 0.0342 - threshold reached=False
-Cumulative run-time=5.27 seconds
-
-Initiating PH iteration=9
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg=-111355.5172 Max-Min= 0.00
-Converger=Normalized term diff value is 0.0000 - threshold reached=True
-Cumulative run-time=5.82 seconds
-
-Number of discrete variables fixed before final plugin calls=0 (total=0)
-Number of continuous variables fixed before final plugin calls=0 (total=3)
-PH complete
-
-Convergence history:
-Converger=Normalized term diff
-Iteration Metric Value
- 0 0.2540
- 1 0.1307
- 2 0.0872
- 3 0.0793
- 4 0.0820
- 5 0.0828
- 6 0.0561
- 7 0.0625
- 8 0.0342
- 9 0.0000
-
-
-Final number of discrete variables fixed=0 (total=0)
-Final number of continuous variables fixed=0 (total=3)
-
-Computing objective inner bound at xhat solution
-
-Computed objective lower bound= 107958.8966
-
-X-hat variable values:
-
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 88.4631 88.4631 88.4631
-
- Index: [SUGAR_BEETS] Values: 266.1679 266.1679 266.1679
-
- Index: [WHEAT] Values: 145.3690 145.3690 145.3690
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: -111355.5172-111355.5172-111355.5172 Max-Min: 0.0000 Avg: -111355.5172
-
-X-hat costs:
-
-Scenario Tree Costs
-----------------------------------------------------
-Tree Nodes:
-
- Name=AboveAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AboveAverageScenario
- Expected cost of (sub)tree rooted at node=271788.5596
-
- Name=AverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AverageScenario
- Expected cost of (sub)tree rooted at node=223231.1084
-
- Name=BelowAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=162923.5731
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- AboveAverageNode
- AverageNode
- BelowAverageNode
- Scenarios:
- AboveAverageScenario
- AverageScenario
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=107958.8966
-
-----------------------------------------------------
-Scenarios:
-
- Name=AboveAverageScenario
- Probability=0.3333
- Leaf Node=AboveAverageNode
- Tree node sequence:
- RootNode
- AboveAverageNode
- Stage= FirstStage Cost=-111355.5172
- Stage= SecondStage Cost=271788.5596
- Total scenario cost=160433.0424
-
- Name=AverageScenario
- Probability=0.3333
- Leaf Node=AverageNode
- Tree node sequence:
- RootNode
- AverageNode
- Stage= FirstStage Cost=-111355.5172
- Stage= SecondStage Cost=223231.1084
- Total scenario cost=111875.5913
-
- Name=BelowAverageScenario
- Probability=0.3333
- Leaf Node=BelowAverageNode
- Tree node sequence:
- RootNode
- BelowAverageNode
- Stage= FirstStage Cost=-111355.5172
- Stage= SecondStage Cost=162923.5731
- Total scenario cost=51568.0560
-
-----------------------------------------------------
-
-
-Total PH execution time=6.34 seconds
-
-
-Total execution time=6.41 seconds
diff --git a/pyomo/pysp/tests/unit/baselines/farmer_maximize_linearized_gurobi.baseline b/pyomo/pysp/tests/unit/baselines/farmer_maximize_linearized_gurobi.baseline
deleted file mode 100644
index 5576ffef7d1..00000000000
--- a/pyomo/pysp/tests/unit/baselines/farmer_maximize_linearized_gurobi.baseline
+++ /dev/null
@@ -1,208 +0,0 @@
-*** Active Objective 'Total_Cost_Objective' on scenario instance 'AboveAverageScenario' will not be used. ***
-*** Active Objective 'Total_Cost_Objective' on scenario instance 'AverageScenario' will not be used. ***
-*** Active Objective 'Total_Cost_Objective' on scenario instance 'BelowAverageScenario' will not be used. ***
-Initializing PH
-
-Starting PH
-
-Initiating PH iteration=0
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg=-113494.4444 Max-Min=10416.67
-Converger=Normalized term diff value is 0.2540 - threshold reached=False
-Cumulative run-time=0.85 seconds
-
-Initiating PH iteration=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg=-113073.3333 Max-Min= 7180.00
-Converger=Normalized term diff value is 0.1307 - threshold reached=False
-Cumulative run-time=1.77 seconds
-
-Initiating PH iteration=2
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg=-113259.7778 Max-Min= 1736.67
-Converger=Normalized term diff value is 0.0872 - threshold reached=False
-Cumulative run-time=2.67 seconds
-
-Initiating PH iteration=3
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg=-113339.1852 Max-Min= 1836.89
-Converger=Normalized term diff value is 0.0793 - threshold reached=False
-Cumulative run-time=3.57 seconds
-
-Initiating PH iteration=4
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg=-112746.3951 Max-Min= 3745.63
-Converger=Normalized term diff value is 0.0820 - threshold reached=False
-Cumulative run-time=4.47 seconds
-
-Initiating PH iteration=5
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg=-112327.9383 Max-Min= 4381.88
-Converger=Normalized term diff value is 0.0828 - threshold reached=False
-Cumulative run-time=5.37 seconds
-
-Initiating PH iteration=6
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg=-112125.1852 Max-Min= 1027.56
-Converger=Normalized term diff value is 0.0561 - threshold reached=False
-Cumulative run-time=6.27 seconds
-
-Initiating PH iteration=7
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg=-111694.0412 Max-Min= 2320.99
-Converger=Normalized term diff value is 0.0625 - threshold reached=False
-Cumulative run-time=7.17 seconds
-
-Initiating PH iteration=8
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg=-111355.5172 Max-Min= 1015.57
-Converger=Normalized term diff value is 0.0342 - threshold reached=False
-Cumulative run-time=8.12 seconds
-
-Initiating PH iteration=9
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg=-111355.5172 Max-Min= 0.00
-Converger=Normalized term diff value is 0.0000 - threshold reached=True
-Cumulative run-time=9.16 seconds
-
-Number of discrete variables fixed before final plugin calls=0 (total=0)
-Number of continuous variables fixed before final plugin calls=0 (total=3)
-PH complete
-
-Convergence history:
-Converger=Normalized term diff
-Iteration Metric Value
- 0 0.2540
- 1 0.1307
- 2 0.0872
- 3 0.0793
- 4 0.0820
- 5 0.0828
- 6 0.0561
- 7 0.0625
- 8 0.0342
- 9 0.0000
-
-
-Final number of discrete variables fixed=0 (total=0)
-Final number of continuous variables fixed=0 (total=3)
-
-Computing objective inner bound at xhat solution
-
-Computed objective lower bound= 107958.8966
-
-X-hat variable values:
-
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 88.4631 88.4631 88.4631
-
- Index: [SUGAR_BEETS] Values: 266.1679 266.1679 266.1679
-
- Index: [WHEAT] Values: 145.3690 145.3690 145.3690
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: -111355.5172-111355.5172-111355.5172 Max-Min: 0.0000 Avg: -111355.5172
-
-X-hat costs:
-
-Scenario Tree Costs
-----------------------------------------------------
-Tree Nodes:
-
- Name=AboveAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AboveAverageScenario
- Expected cost of (sub)tree rooted at node=271788.5596
-
- Name=AverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AverageScenario
- Expected cost of (sub)tree rooted at node=223231.1084
-
- Name=BelowAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=162923.5731
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- AboveAverageNode
- AverageNode
- BelowAverageNode
- Scenarios:
- AboveAverageScenario
- AverageScenario
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=107958.8966
-
-----------------------------------------------------
-Scenarios:
-
- Name=AboveAverageScenario
- Probability=0.3333
- Leaf Node=AboveAverageNode
- Tree node sequence:
- RootNode
- AboveAverageNode
- Stage= FirstStage Cost=-111355.5172
- Stage= SecondStage Cost=271788.5596
- Total scenario cost=160433.0424
-
- Name=AverageScenario
- Probability=0.3333
- Leaf Node=AverageNode
- Tree node sequence:
- RootNode
- AverageNode
- Stage= FirstStage Cost=-111355.5172
- Stage= SecondStage Cost=223231.1084
- Total scenario cost=111875.5913
-
- Name=BelowAverageScenario
- Probability=0.3333
- Leaf Node=BelowAverageNode
- Tree node sequence:
- RootNode
- BelowAverageNode
- Stage= FirstStage Cost=-111355.5172
- Stage= SecondStage Cost=162923.5731
- Total scenario cost=51568.0560
-
-----------------------------------------------------
-
-
-Total PH execution time=10.12 seconds
-
-
-Total execution time=10.19 seconds
diff --git a/pyomo/pysp/tests/unit/baselines/farmer_maximize_quadratic_gurobi.baseline b/pyomo/pysp/tests/unit/baselines/farmer_maximize_quadratic_gurobi.baseline
deleted file mode 100644
index 874a9f7ca50..00000000000
--- a/pyomo/pysp/tests/unit/baselines/farmer_maximize_quadratic_gurobi.baseline
+++ /dev/null
@@ -1,1992 +0,0 @@
-Importing model and scenario tree files
-Time to import model and scenario tree structure files=0.01 seconds
-Scenario Tree Detail
-----------------------------------------------------
-Tree Nodes:
-
- Name=AboveAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AboveAverageScenario
-
- Name=AverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AverageScenario
-
- Name=BelowAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- BelowAverageScenario
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- AboveAverageNode
- AverageNode
- BelowAverageNode
- Scenarios:
- AboveAverageScenario
- AverageScenario
- BelowAverageScenario
-
-----------------------------------------------------
-Stages:
- Name=FirstStage
- Tree Nodes:
- RootNode
- Variables:
- DevotedAcreage : [*]
- Cost Variable:
- FirstStageCost
-
- Name=SecondStage
- Tree Nodes:
- AboveAverageNode
- AverageNode
- BelowAverageNode
- Variables:
- QuantityPurchased : [*]
- QuantitySubQuotaSold : [*]
- QuantitySuperQuotaSold : [*]
- Cost Variable:
- SecondStageCost
-
-----------------------------------------------------
-Scenarios:
- Name=AboveAverageScenario
- Probability=0.3333
- Leaf node=AboveAverageNode
- Tree node sequence:
- RootNode
- AboveAverageNode
-
- Name=AverageScenario
- Probability=0.3333
- Leaf node=AverageNode
- Tree node sequence:
- RootNode
- AverageNode
-
- Name=BelowAverageScenario
- Probability=0.3333
- Leaf node=BelowAverageNode
- Tree node sequence:
- RootNode
- BelowAverageNode
-
-----------------------------------------------------
-Scenario tree is valid!
-Scenario-based instance initialization enabled
-Creating instance for scenario=BelowAverageScenario
-Data for scenario=BelowAverageScenario loads from file=/home/hudson/slave/workspace/Pyomo_trunk_python3.4_snotra_expensive/src/pyomo/examples/pysp/farmer/scenariodata/BelowAverageScenario.dat
-Creating instance for scenario=AverageScenario
-Data for scenario=AverageScenario loads from file=/home/hudson/slave/workspace/Pyomo_trunk_python3.4_snotra_expensive/src/pyomo/examples/pysp/farmer/scenariodata/AverageScenario.dat
-Creating instance for scenario=AboveAverageScenario
-Data for scenario=AboveAverageScenario loads from file=/home/hudson/slave/workspace/Pyomo_trunk_python3.4_snotra_expensive/src/pyomo/examples/pysp/farmer/scenariodata/AboveAverageScenario.dat
-Time to construct scenario instances=0.03 seconds
-*** Active Objective 'Total_Cost_Objective' on scenario instance 'AboveAverageScenario' will not be used. ***
-*** Active Objective 'Total_Cost_Objective' on scenario instance 'AverageScenario' will not be used. ***
-*** Active Objective 'Total_Cost_Objective' on scenario instance 'BelowAverageScenario' will not be used. ***
-Time link scenario tree with instances=0.00 seconds
-Constructing solver manager of type=serial
-Constructing solver type=gurobi
-PH solver configuration:
- Max iterations=100
- Async mode=False
- Async buffer length=1
- Default global rho=1.0
- Over-relaxation enabled=False
- Sub-problem solver type='gurobi'
- Keep solver files? False
- Output solver results? False
- Output solver log? False
- Output times? False
-Initializing PH
-
-Invoking pre-initialization PH plugins
-Creating weight, average, and rho parameter vectors for scenario instances
-Creating deterministic SymbolMaps for scenario instances
-PH successfully created model instances for all scenarios
-PH is successfully initialized
-Invoking post-initialization PH plugins
-Starting PH
-
-Initiating PH iteration=0
-------------------------------------------------
-Starting PH iteration 0 solves
-Queuing solve for scenario=BelowAverageScenario
-Queuing solve for scenario=AverageScenario
-Queuing solve for scenario=AboveAverageScenario
-Waiting for scenario sub-problem solves
-Results obtained for scenario=BelowAverageScenario
-Successfully loaded solution for scenario=BelowAverageScenario - waiting on 2 more
-Results obtained for scenario=AverageScenario
-Successfully loaded solution for scenario=AverageScenario - waiting on 1 more
-Results obtained for scenario=AboveAverageScenario
-Successfully loaded solution for scenario=AboveAverageScenario - waiting on 0 more
-Successfully completed PH iteration 0 solves
-- solution statistics:
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario 59950.0000 59950.0000 0.0000 optimal
- AverageScenario 118600.0000 118600.0000 0.0000 optimal
- AboveAverageScenario 167666.6667 167666.6667 0.0000 optimal
-
-Total number of non-stale discrete instance variables=0
-Total number of non-stale continuous instance variables=3
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 25.0000 80.0000 66.6667 Max-Min: 55.0000 Avg: 57.2222
-
- Index: [SUGAR_BEETS] Values: 375.0000 300.0000 250.0000 Max-Min: 125.0000 Avg: 308.3333
-
- Index: [WHEAT] Values: 100.0000 120.0000 183.3333 Max-Min: 83.3333 Avg: 134.4444
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: -118250.0000-114400.0000-107833.3333 Max-Min: 10416.6667 Avg: -113494.4445
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg=-113494.4444 Max-Min=10416.67
-Converger=Normalized term diff value is 0.2540 - threshold reached=False
-Cumulative run-time=0.41 seconds
-
-Initiating PH iteration=1
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: 32.2222 -22.7778 -9.4444 Average: 57.2222
- Index: [SUGAR_BEETS] Weights: -66.6667 8.3333 58.3333 Average: 308.3333
- Index: [WHEAT] Weights: 34.4444 14.4444 -48.8889 Average: 134.4444
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: -118250.0000-114400.0000-107833.3333 Max-Min: 10416.6667 Avg: -113494.4445
-------------------------------------------------
-Starting PH iteration 1 solves
-Queuing solve for scenario=BelowAverageScenario
-Queuing solve for scenario=AverageScenario
-Queuing solve for scenario=AboveAverageScenario
-Waiting for scenario sub-problem solves
-Results obtained for scenario=BelowAverageScenario
-Successfully loaded solution for scenario=BelowAverageScenario - waiting on 2 more
-Results obtained for scenario=AverageScenario
-Successfully loaded solution for scenario=AverageScenario - waiting on 1 more
-Results obtained for scenario=AboveAverageScenario
-Successfully loaded solution for scenario=AboveAverageScenario - waiting on 0 more
-Successfully completed PH iteration 1 solves
-- solution statistics:
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario 56723.0000 41924.1389 0.0000 optimal
- AverageScenario 118600.0000 120612.6543 0.0000 optimal
- AboveAverageScenario 166944.4444 169925.0000 0.0000 optimal
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 100.0000 80.0000 81.1111 Max-Min: 20.0000 Avg: 87.0370
-
- Index: [SUGAR_BEETS] Values: 299.3889 300.0000 250.0000 Max-Min: 50.0000 Avg: 283.1296
-
- Index: [WHEAT] Values: 100.6111 120.0000 168.8889 Max-Min: 68.2778 Avg: 129.8333
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: -115932.7778-114400.0000-108988.8889 Max-Min: 6943.8889 Avg: -113107.2222
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg=-113107.2222 Max-Min= 6943.89
-Converger=Normalized term diff value is 0.1259 - threshold reached=False
-Cumulative run-time=0.82 seconds
-
-Initiating PH iteration=2
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: 19.2593 -15.7407 -3.5185 Average: 87.0370
- Index: [SUGAR_BEETS] Weights: -82.9259 -8.5370 91.4630 Average: 283.1296
- Index: [WHEAT] Weights: 63.6667 24.2778 -87.9444 Average: 129.8333
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: -115932.7778-114400.0000-108988.8889 Max-Min: 6943.8889 Avg: -113107.2222
-------------------------------------------------
-Starting PH iteration 2 solves
-Queuing solve for scenario=BelowAverageScenario
-Queuing solve for scenario=AverageScenario
-Queuing solve for scenario=AboveAverageScenario
-Waiting for scenario sub-problem solves
-Results obtained for scenario=BelowAverageScenario
-Successfully loaded solution for scenario=BelowAverageScenario - waiting on 2 more
-Results obtained for scenario=AverageScenario
-Successfully loaded solution for scenario=AverageScenario - waiting on 1 more
-Results obtained for scenario=AboveAverageScenario
-Successfully loaded solution for scenario=AboveAverageScenario - waiting on 0 more
-Successfully completed PH iteration 2 solves
-- solution statistics:
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario 52560.3334 40675.6749 0.0000 optimal
- AverageScenario 118600.0000 117477.5511 0.0000 optimal
- AboveAverageScenario 164959.2593 174919.3261 0.0000 optimal
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 100.0000 80.0000 120.8148 Max-Min: 40.8148 Avg: 100.2716
-
- Index: [SUGAR_BEETS] Values: 266.3519 300.0000 250.0000 Max-Min: 50.0000 Avg: 272.1173
-
- Index: [WHEAT] Values: 133.6481 120.0000 129.1852 Max-Min: 13.6481 Avg: 127.6111
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: -112298.7038-114400.0000-112165.1852 Max-Min: 2234.8148 Avg: -112954.6297
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg=-112954.6296 Max-Min= 2234.81
-Converger=Normalized term diff value is 0.0816 - threshold reached=False
-Cumulative run-time=1.23 seconds
-
-Initiating PH iteration=3
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: 19.5309 4.5309 -24.0617 Average: 100.2716
- Index: [SUGAR_BEETS] Weights: -77.1605 -36.4198 113.5802 Average: 272.1173
- Index: [WHEAT] Weights: 57.6296 31.8889 -89.5185 Average: 127.6111
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: -112298.7038-114400.0000-112165.1852 Max-Min: 2234.8148 Avg: -112954.6297
-------------------------------------------------
-Starting PH iteration 3 solves
-Queuing solve for scenario=BelowAverageScenario
-Queuing solve for scenario=AverageScenario
-Queuing solve for scenario=AboveAverageScenario
-Waiting for scenario sub-problem solves
-Results obtained for scenario=BelowAverageScenario
-Successfully loaded solution for scenario=BelowAverageScenario - waiting on 2 more
-Results obtained for scenario=AverageScenario
-Successfully loaded solution for scenario=AverageScenario - waiting on 1 more
-Results obtained for scenario=AboveAverageScenario
-Successfully loaded solution for scenario=AboveAverageScenario - waiting on 0 more
-Successfully completed PH iteration 3 solves
-- solution statistics:
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario 52750.1112 41631.0613 0.0000 optimal
- AverageScenario 118600.0000 111240.0536 0.0000 optimal
- AboveAverageScenario 165047.0679 178429.0878 0.0000 optimal
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 100.0000 80.0000 119.0586 Max-Min: 39.0586 Avg: 99.6862
-
- Index: [SUGAR_BEETS] Values: 267.8580 300.0000 250.0000 Max-Min: 50.0000 Avg: 272.6193
-
- Index: [WHEAT] Values: 132.1420 120.0000 130.9414 Max-Min: 12.1420 Avg: 127.6944
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: -112464.3828-114400.0000-112024.6914 Max-Min: 2375.3086 Avg: -112963.0247
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg=-112963.0247 Max-Min= 2375.31
-Converger=Normalized term diff value is 0.0796 - threshold reached=False
-Cumulative run-time=1.65 seconds
-
-Initiating PH iteration=4
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: 19.2171 24.2171 -43.4342 Average: 99.6862
- Index: [SUGAR_BEETS] Weights: -72.3992 -63.8004 136.1996 Average: 272.6193
- Index: [WHEAT] Weights: 53.1821 39.5833 -92.7654 Average: 127.6944
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: -112464.3828-114400.0000-112024.6914 Max-Min: 2375.3086 Avg: -112963.0247
-------------------------------------------------
-Starting PH iteration 4 solves
-Queuing solve for scenario=BelowAverageScenario
-Queuing solve for scenario=AverageScenario
-Queuing solve for scenario=AboveAverageScenario
-Waiting for scenario sub-problem solves
-Results obtained for scenario=BelowAverageScenario
-Successfully loaded solution for scenario=BelowAverageScenario - waiting on 2 more
-Results obtained for scenario=AverageScenario
-Successfully loaded solution for scenario=AverageScenario - waiting on 1 more
-Results obtained for scenario=AboveAverageScenario
-Successfully loaded solution for scenario=AboveAverageScenario - waiting on 0 more
-Successfully completed PH iteration 4 solves
-- solution statistics:
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario 53356.6482 42308.6040 0.0000 optimal
- AverageScenario 118600.0000 105549.0170 0.0000 optimal
- AboveAverageScenario 165466.9239 181400.6994 0.0000 optimal
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 100.0000 80.0000 110.6615 Max-Min: 30.6615 Avg: 96.8872
-
- Index: [SUGAR_BEETS] Values: 272.6718 300.0000 250.0000 Max-Min: 50.0000 Avg: 274.2239
-
- Index: [WHEAT] Values: 127.3282 120.0000 139.3385 Max-Min: 19.3385 Avg: 128.8889
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: -112993.8992-114400.0000-111352.9218 Max-Min: 3047.0782 Avg: -112915.6070
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg=-112915.6070 Max-Min= 3047.08
-Converger=Normalized term diff value is 0.0776 - threshold reached=False
-Cumulative run-time=2.07 seconds
-
-Initiating PH iteration=5
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: 16.1043 41.1043 -57.2085 Average: 96.8872
- Index: [SUGAR_BEETS] Weights: -70.8471 -89.5765 160.4235 Average: 274.2239
- Index: [WHEAT] Weights: 54.7428 48.4722 -103.2150 Average: 128.8889
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: -112993.8992-114400.0000-111352.9218 Max-Min: 3047.0782 Avg: -112915.6070
-------------------------------------------------
-Starting PH iteration 5 solves
-Queuing solve for scenario=BelowAverageScenario
-Queuing solve for scenario=AverageScenario
-Queuing solve for scenario=AboveAverageScenario
-Waiting for scenario sub-problem solves
-Results obtained for scenario=BelowAverageScenario
-Successfully loaded solution for scenario=BelowAverageScenario - waiting on 2 more
-Results obtained for scenario=AverageScenario
-Successfully loaded solution for scenario=AverageScenario - waiting on 1 more
-Results obtained for scenario=AboveAverageScenario
-Successfully loaded solution for scenario=AboveAverageScenario - waiting on 0 more
-Successfully completed PH iteration 5 solves
-- solution statistics:
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario 53381.9476 42612.1542 0.0000 optimal
- AverageScenario 118600.0000 100317.7675 0.0000 optimal
- AboveAverageScenario 165649.8800 184430.7276 0.0000 optimal
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 100.0000 80.0000 107.0024 Max-Min: 27.0024 Avg: 95.6675
-
- Index: [SUGAR_BEETS] Values: 272.8726 300.0000 250.0000 Max-Min: 50.0000 Avg: 274.2909
-
- Index: [WHEAT] Values: 127.1274 120.0000 142.9976 Max-Min: 22.9976 Avg: 130.0417
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: -113015.9860-114400.0000-111060.1920 Max-Min: 3339.8080 Avg: -112825.3927
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg=-112825.3927 Max-Min= 3339.81
-Converger=Normalized term diff value is 0.0794 - threshold reached=False
-Cumulative run-time=2.48 seconds
-
-Initiating PH iteration=6
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: 11.7717 56.7717 -68.5434 Average: 95.6675
- Index: [SUGAR_BEETS] Weights: -69.4288 -115.2856 184.7144 Average: 274.2909
- Index: [WHEAT] Weights: 57.6571 58.5139 -116.1710 Average: 130.0417
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: -113015.9860-114400.0000-111060.1920 Max-Min: 3339.8080 Avg: -112825.3927
-------------------------------------------------
-Starting PH iteration 6 solves
-Queuing solve for scenario=BelowAverageScenario
-Queuing solve for scenario=AverageScenario
-Queuing solve for scenario=AboveAverageScenario
-Waiting for scenario sub-problem solves
-Results obtained for scenario=BelowAverageScenario
-Successfully loaded solution for scenario=BelowAverageScenario - waiting on 2 more
-Results obtained for scenario=AverageScenario
-Successfully loaded solution for scenario=AverageScenario - waiting on 1 more
-Results obtained for scenario=AboveAverageScenario
-Successfully loaded solution for scenario=AboveAverageScenario - waiting on 0 more
-Successfully completed PH iteration 6 solves
-- solution statistics:
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario 53219.2912 42930.7284 0.0000 optimal
- AverageScenario 116329.0978 95224.7693 0.0000 optimal
- AboveAverageScenario 165668.6671 187438.9478 0.0000 optimal
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 100.0000 80.0000 106.6267 Max-Min: 26.6267 Avg: 95.5422
-
- Index: [SUGAR_BEETS] Values: 271.5817 287.7249 250.0000 Max-Min: 37.7249 Avg: 269.7688
-
- Index: [WHEAT] Values: 128.4183 132.2751 143.3733 Max-Min: 14.9550 Avg: 134.6889
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: -112873.9844-113049.7338-111030.1326 Max-Min: 2019.6012 Avg: -112317.9503
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg=-112317.9503 Max-Min= 2019.60
-Converger=Normalized term diff value is 0.0668 - threshold reached=False
-Cumulative run-time=2.89 seconds
-
-Initiating PH iteration=7
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: 7.3139 72.3139 -79.6279 Average: 95.5422
- Index: [SUGAR_BEETS] Weights: -71.2416 -133.2416 204.4832 Average: 269.7688
- Index: [WHEAT] Weights: 63.9277 60.9277 -124.8554 Average: 134.6889
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: -112873.9844-113049.7338-111030.1326 Max-Min: 2019.6012 Avg: -112317.9503
-------------------------------------------------
-Starting PH iteration 7 solves
-Queuing solve for scenario=BelowAverageScenario
-Queuing solve for scenario=AverageScenario
-Queuing solve for scenario=AboveAverageScenario
-Waiting for scenario sub-problem solves
-Results obtained for scenario=BelowAverageScenario
-Successfully loaded solution for scenario=BelowAverageScenario - waiting on 2 more
-Results obtained for scenario=AverageScenario
-Successfully loaded solution for scenario=AverageScenario - waiting on 1 more
-Results obtained for scenario=AboveAverageScenario
-Successfully loaded solution for scenario=AboveAverageScenario - waiting on 0 more
-Successfully completed PH iteration 7 solves
-- solution statistics:
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario 52132.3685 42855.4276 0.0000 optimal
- AverageScenario 113596.7315 91769.7429 0.0000 optimal
- AboveAverageScenario 165847.9809 190116.4077 0.0000 optimal
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 100.0000 80.0000 103.0404 Max-Min: 23.0404 Avg: 94.3468
-
- Index: [SUGAR_BEETS] Values: 262.9553 272.9553 250.0000 Max-Min: 22.9553 Avg: 261.9702
-
- Index: [WHEAT] Values: 137.0447 147.0447 146.9596 Max-Min: 10.0000 Avg: 143.6830
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: -111925.0836-111425.0836-110743.2305 Max-Min: 1181.8531 Avg: -111364.4659
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg=-111364.4659 Max-Min= 1181.85
-Converger=Normalized term diff value is 0.0542 - threshold reached=False
-Cumulative run-time=3.32 seconds
-
-Initiating PH iteration=8
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: 1.6607 86.6607 -88.3215 Average: 94.3468
- Index: [SUGAR_BEETS] Weights: -72.2267 -144.2267 216.4534 Average: 261.9702
- Index: [WHEAT] Weights: 70.5660 57.5660 -128.1320 Average: 143.6830
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: -111925.0836-111425.0836-110743.2305 Max-Min: 1181.8531 Avg: -111364.4659
-------------------------------------------------
-Starting PH iteration 8 solves
-Queuing solve for scenario=BelowAverageScenario
-Queuing solve for scenario=AverageScenario
-Queuing solve for scenario=AboveAverageScenario
-Waiting for scenario sub-problem solves
-Results obtained for scenario=BelowAverageScenario
-Successfully loaded solution for scenario=BelowAverageScenario - waiting on 2 more
-Results obtained for scenario=AverageScenario
-Successfully loaded solution for scenario=AverageScenario - waiting on 1 more
-Results obtained for scenario=AboveAverageScenario
-Successfully loaded solution for scenario=AboveAverageScenario - waiting on 0 more
-Successfully completed PH iteration 8 solves
-- solution statistics:
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario 50594.1533 43087.2755 0.0000 optimal
- AverageScenario 110943.7976 89612.4133 0.0000 optimal
- AboveAverageScenario 166238.1425 191976.5276 0.0000 optimal
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 100.0000 82.6742 95.2372 Max-Min: 17.3258 Avg: 92.6371
-
- Index: [SUGAR_BEETS] Values: 250.7472 259.4102 250.0000 Max-Min: 9.4102 Avg: 253.3858
-
- Index: [WHEAT] Values: 149.2528 157.9157 154.7628 Max-Min: 8.6629 Avg: 153.9771
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: -110582.1973-110149.0521-110118.9720 Max-Min: 463.2253 Avg: -110283.4071
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg=-110283.4071 Max-Min= 463.23
-Converger=Normalized term diff value is 0.0360 - threshold reached=False
-Cumulative run-time=3.74 seconds
-
-Initiating PH iteration=9
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: -5.7022 96.6237 -90.9215 Average: 92.6371
- Index: [SUGAR_BEETS] Weights: -69.5882 -150.2511 219.8392 Average: 253.3858
- Index: [WHEAT] Weights: 75.2903 53.6274 -128.9177 Average: 153.9771
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: -110582.1973-110149.0521-110118.9720 Max-Min: 463.2253 Avg: -110283.4071
-------------------------------------------------
-Starting PH iteration 9 solves
-Queuing solve for scenario=BelowAverageScenario
-Queuing solve for scenario=AverageScenario
-Queuing solve for scenario=AboveAverageScenario
-Waiting for scenario sub-problem solves
-Results obtained for scenario=BelowAverageScenario
-Successfully loaded solution for scenario=BelowAverageScenario - waiting on 2 more
-Results obtained for scenario=AverageScenario
-Successfully loaded solution for scenario=AverageScenario - waiting on 1 more
-Results obtained for scenario=AboveAverageScenario
-Successfully loaded solution for scenario=AboveAverageScenario - waiting on 0 more
-Successfully completed PH iteration 9 solves
-- solution statistics:
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario 49273.4043 43880.3127 0.0000 optimal
- AverageScenario 107787.2495 88509.4654 0.0000 optimal
- AboveAverageScenario 166583.5934 192625.4852 0.0000 optimal
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 100.0000 90.9274 88.3281 Max-Min: 11.6719 Avg: 93.0852
-
- Index: [SUGAR_BEETS] Values: 240.2651 244.8014 250.0000 Max-Min: 9.7349 Avg: 245.0222
-
- Index: [WHEAT] Values: 159.7349 164.2712 161.6719 Max-Min: 4.5363 Avg: 161.8926
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: -109429.1625-109202.3484-109566.2506 Max-Min: 363.9022 Avg: -109399.2538
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg=-109399.2538 Max-Min= 363.90
-Converger=Normalized term diff value is 0.0243 - threshold reached=False
-Cumulative run-time=4.16 seconds
-
-Initiating PH iteration=10
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: -12.6170 98.7814 -86.1644 Average: 93.0852
- Index: [SUGAR_BEETS] Weights: -64.8311 -150.0303 214.8614 Average: 245.0222
- Index: [WHEAT] Weights: 77.4481 51.2489 -128.6970 Average: 161.8926
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: -109429.1625-109202.3484-109566.2506 Max-Min: 363.9022 Avg: -109399.2538
-------------------------------------------------
-Starting PH iteration 10 solves
-Queuing solve for scenario=BelowAverageScenario
-Queuing solve for scenario=AverageScenario
-Queuing solve for scenario=AboveAverageScenario
-Waiting for scenario sub-problem solves
-Results obtained for scenario=BelowAverageScenario
-Successfully loaded solution for scenario=BelowAverageScenario - waiting on 2 more
-Results obtained for scenario=AverageScenario
-Successfully loaded solution for scenario=AverageScenario - waiting on 1 more
-Results obtained for scenario=AboveAverageScenario
-Successfully loaded solution for scenario=AboveAverageScenario - waiting on 0 more
-Successfully completed PH iteration 10 solves
-- solution statistics:
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario 48295.4044 44838.3985 0.0000 optimal
- AverageScenario 106137.5004 88506.9747 0.0000 optimal
- AboveAverageScenario 166656.8733 191859.9422 0.0000 optimal
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 94.4682 93.5333 86.8625 Max-Min: 7.6057 Avg: 91.6213
-
- Index: [SUGAR_BEETS] Values: 236.1911 236.6585 250.0000 Max-Min: 13.8089 Avg: 240.9499
-
- Index: [WHEAT] Values: 169.3407 169.8082 163.1375 Max-Min: 6.6707 Avg: 167.4288
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: -108538.4745-108515.1005-109449.0027 Max-Min: 933.9022 Avg: -108834.1926
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg=-108834.1926 Max-Min= 933.90
-Converger=Normalized term diff value is 0.0256 - threshold reached=False
-Cumulative run-time=4.57 seconds
-
-Initiating PH iteration=11
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: -15.4638 96.8695 -81.4056 Average: 91.6213
- Index: [SUGAR_BEETS] Weights: -60.0723 -145.7390 205.8113 Average: 240.9499
- Index: [WHEAT] Weights: 75.5362 48.8695 -124.4056 Average: 167.4288
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: -108538.4745-108515.1005-109449.0027 Max-Min: 933.9022 Avg: -108834.1926
-------------------------------------------------
-Starting PH iteration 11 solves
-Queuing solve for scenario=BelowAverageScenario
-Queuing solve for scenario=AverageScenario
-Queuing solve for scenario=AboveAverageScenario
-Waiting for scenario sub-problem solves
-Results obtained for scenario=BelowAverageScenario
-Successfully loaded solution for scenario=BelowAverageScenario - waiting on 2 more
-Results obtained for scenario=AverageScenario
-Successfully loaded solution for scenario=AverageScenario - waiting on 1 more
-Results obtained for scenario=AboveAverageScenario
-Successfully loaded solution for scenario=AboveAverageScenario - waiting on 0 more
-Successfully completed PH iteration 11 solves
-- solution statistics:
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario 48019.8023 45436.2583 0.0000 optimal
- AverageScenario 106363.6872 89002.9249 0.0000 optimal
- AboveAverageScenario 166820.1863 190692.5571 0.0000 optimal
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 90.1575 90.1575 83.5963 Max-Min: 6.5612 Avg: 87.9704
-
- Index: [SUGAR_BEETS] Values: 236.8776 236.8776 250.0000 Max-Min: 13.1224 Avg: 241.2517
-
- Index: [WHEAT] Values: 172.9649 172.9649 166.4037 Max-Min: 6.5612 Avg: 170.7779
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: -108269.1313-108269.1313-109187.7019 Max-Min: 918.5705 Avg: -108575.3215
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg=-108575.3215 Max-Min= 918.57
-Converger=Normalized term diff value is 0.0248 - threshold reached=False
-Cumulative run-time=4.99 seconds
-
-Initiating PH iteration=12
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: -17.6509 94.6824 -77.0315 Average: 87.9704
- Index: [SUGAR_BEETS] Weights: -55.6982 -141.3648 197.0630 Average: 241.2517
- Index: [WHEAT] Weights: 73.3491 46.6824 -120.0315 Average: 170.7779
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: -108269.1313-108269.1313-109187.7019 Max-Min: 918.5705 Avg: -108575.3215
-------------------------------------------------
-Starting PH iteration 12 solves
-Queuing solve for scenario=BelowAverageScenario
-Queuing solve for scenario=AverageScenario
-Queuing solve for scenario=AboveAverageScenario
-Waiting for scenario sub-problem solves
-Results obtained for scenario=BelowAverageScenario
-Successfully loaded solution for scenario=BelowAverageScenario - waiting on 2 more
-Results obtained for scenario=AverageScenario
-Successfully loaded solution for scenario=AverageScenario - waiting on 1 more
-Results obtained for scenario=AboveAverageScenario
-Successfully loaded solution for scenario=AboveAverageScenario - waiting on 0 more
-Successfully completed PH iteration 12 solves
-- solution statistics:
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario 48118.5852 45935.9138 0.0000 optimal
- AverageScenario 107549.8346 89502.5805 0.0000 optimal
- AboveAverageScenario 166995.1863 189627.5500 0.0000 optimal
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 84.3195 84.3195 80.0963 Max-Min: 4.2232 Avg: 82.9118
-
- Index: [SUGAR_BEETS] Values: 241.5536 241.5536 250.0000 Max-Min: 8.4464 Avg: 244.3690
-
- Index: [WHEAT] Values: 174.1270 174.1270 169.9037 Max-Min: 4.2232 Avg: 172.7192
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: -108316.4504-108316.4504-108907.7019 Max-Min: 591.2514 Avg: -108513.5342
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg=-108513.5342 Max-Min= 591.25
-Converger=Normalized term diff value is 0.0163 - threshold reached=False
-Cumulative run-time=5.40 seconds
-
-Initiating PH iteration=13
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: -19.0587 93.2747 -74.2160 Average: 82.9118
- Index: [SUGAR_BEETS] Weights: -52.8827 -138.5493 191.4320 Average: 244.3690
- Index: [WHEAT] Weights: 71.9413 45.2747 -117.2160 Average: 172.7192
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: -108316.4504-108316.4504-108907.7019 Max-Min: 591.2514 Avg: -108513.5342
-------------------------------------------------
-Starting PH iteration 13 solves
-Queuing solve for scenario=BelowAverageScenario
-Queuing solve for scenario=AverageScenario
-Queuing solve for scenario=AboveAverageScenario
-Waiting for scenario sub-problem solves
-Results obtained for scenario=BelowAverageScenario
-Successfully loaded solution for scenario=BelowAverageScenario - waiting on 2 more
-Results obtained for scenario=AverageScenario
-Successfully loaded solution for scenario=AverageScenario - waiting on 1 more
-Results obtained for scenario=AboveAverageScenario
-Successfully loaded solution for scenario=AboveAverageScenario - waiting on 0 more
-Successfully completed PH iteration 13 solves
-- solution statistics:
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario 48322.9411 46297.1997 0.0000 optimal
- AverageScenario 108686.3876 89860.4095 0.0000 optimal
- AboveAverageScenario 167170.1864 188981.7979 0.0000 optimal
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 77.8531 80.0000 76.5963 Max-Min: 3.4037 Avg: 78.1498
-
- Index: [SUGAR_BEETS] Values: 247.4864 246.4129 250.0000 Max-Min: 3.5871 Avg: 247.9664
-
- Index: [WHEAT] Values: 174.6605 173.5871 173.4037 Max-Min: 1.2568 Avg: 173.8838
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: -108451.7470-108505.4196-108627.7018 Max-Min: 175.9549 Avg: -108528.2895
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg=-108528.2895 Max-Min= 175.95
-Converger=Normalized term diff value is 0.0081 - threshold reached=False
-Cumulative run-time=5.93 seconds
-
-Initiating PH iteration=14
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: -18.7620 91.4245 -72.6625 Average: 78.1498
- Index: [SUGAR_BEETS] Weights: -52.4026 -136.9958 189.3984 Average: 247.9664
- Index: [WHEAT] Weights: 71.1646 45.5714 -116.7359 Average: 173.8838
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: -108451.7470-108505.4196-108627.7018 Max-Min: 175.9549 Avg: -108528.2895
-------------------------------------------------
-Starting PH iteration 14 solves
-Queuing solve for scenario=BelowAverageScenario
-Queuing solve for scenario=AverageScenario
-Queuing solve for scenario=AboveAverageScenario
-Waiting for scenario sub-problem solves
-Results obtained for scenario=BelowAverageScenario
-Successfully loaded solution for scenario=BelowAverageScenario - waiting on 2 more
-Results obtained for scenario=AverageScenario
-Successfully loaded solution for scenario=AverageScenario - waiting on 1 more
-Results obtained for scenario=AboveAverageScenario
-Successfully loaded solution for scenario=AboveAverageScenario - waiting on 0 more
-Successfully completed PH iteration 14 solves
-- solution statistics:
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario 48461.6170 46340.8730 0.0000 optimal
- AverageScenario 109027.6782 90153.8469 0.0000 optimal
- AboveAverageScenario 167291.5137 188714.1707 0.0000 optimal
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 73.3878 80.0000 74.1697 Max-Min: 6.6122 Avg: 75.8525
-
- Index: [SUGAR_BEETS] Values: 251.5638 248.2577 250.0000 Max-Min: 3.3061 Avg: 249.9405
-
- Index: [WHEAT] Values: 175.0484 171.7423 175.8303 Max-Min: 4.0880 Avg: 174.2070
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: -108543.0447-108708.3492-108433.5781 Max-Min: 274.7711 Avg: -108561.6573
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg=-108561.6573 Max-Min= 274.77
-Converger=Normalized term diff value is 0.0168 - threshold reached=False
-Cumulative run-time=6.35 seconds
-
-Initiating PH iteration=15
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: -16.2973 87.2770 -70.9797 Average: 75.8525
- Index: [SUGAR_BEETS] Weights: -54.0259 -135.3130 189.3390 Average: 249.9405
- Index: [WHEAT] Weights: 70.3232 48.0361 -118.3592 Average: 174.2070
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: -108543.0447-108708.3492-108433.5781 Max-Min: 274.7711 Avg: -108561.6573
-------------------------------------------------
-Starting PH iteration 15 solves
-Queuing solve for scenario=BelowAverageScenario
-Queuing solve for scenario=AverageScenario
-Queuing solve for scenario=AboveAverageScenario
-Waiting for scenario sub-problem solves
-Results obtained for scenario=BelowAverageScenario
-Successfully loaded solution for scenario=BelowAverageScenario - waiting on 2 more
-Results obtained for scenario=AverageScenario
-Successfully loaded solution for scenario=AverageScenario - waiting on 1 more
-Results obtained for scenario=AboveAverageScenario
-Successfully loaded solution for scenario=AboveAverageScenario - waiting on 0 more
-Successfully completed PH iteration 15 solves
-- solution statistics:
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario 48519.8797 45980.0912 0.0000 optimal
- AverageScenario 109108.0606 90654.2877 0.0000 optimal
- AboveAverageScenario 167274.3729 188547.9499 0.0000 optimal
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 73.5552 80.0000 74.5125 Max-Min: 6.4448 Avg: 76.0226
-
- Index: [SUGAR_BEETS] Values: 251.9146 248.6922 250.0000 Max-Min: 3.2224 Avg: 250.2023
-
- Index: [WHEAT] Values: 174.5302 171.3078 175.4875 Max-Min: 4.1797 Avg: 173.7751
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: -108595.0252-108756.1441-108461.0033 Max-Min: 295.1408 Avg: -108604.0575
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg=-108604.0575 Max-Min= 295.14
-Converger=Normalized term diff value is 0.0163 - threshold reached=False
-Cumulative run-time=6.76 seconds
-
-Initiating PH iteration=16
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: -13.8299 83.2996 -69.4697 Average: 76.0226
- Index: [SUGAR_BEETS] Weights: -55.7382 -133.8030 189.5412 Average: 250.2023
- Index: [WHEAT] Weights: 69.5682 50.5034 -120.0716 Average: 173.7751
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: -108595.0252-108756.1441-108461.0033 Max-Min: 295.1408 Avg: -108604.0575
-------------------------------------------------
-Starting PH iteration 16 solves
-Queuing solve for scenario=BelowAverageScenario
-Queuing solve for scenario=AverageScenario
-Queuing solve for scenario=AboveAverageScenario
-Waiting for scenario sub-problem solves
-Results obtained for scenario=BelowAverageScenario
-Successfully loaded solution for scenario=BelowAverageScenario - waiting on 2 more
-Results obtained for scenario=AverageScenario
-Successfully loaded solution for scenario=AverageScenario - waiting on 1 more
-Results obtained for scenario=AboveAverageScenario
-Successfully loaded solution for scenario=AboveAverageScenario - waiting on 0 more
-Successfully completed PH iteration 16 solves
-- solution statistics:
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario 48558.6530 45603.5221 0.0000 optimal
- AverageScenario 109083.6688 91135.8164 0.0000 optimal
- AboveAverageScenario 167178.7654 188413.2933 0.0000 optimal
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 76.1927 80.0000 76.4247 Max-Min: 3.8073 Avg: 77.5391
-
- Index: [SUGAR_BEETS] Values: 250.4640 248.5604 250.0000 Max-Min: 1.9037 Avg: 249.6748
-
- Index: [WHEAT] Values: 173.3433 171.4396 173.5753 Max-Min: 2.1357 Avg: 172.7861
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: -108646.4578-108741.6409-108613.9753 Max-Min: 127.6656 Avg: -108667.3580
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg=-108667.3580 Max-Min= 127.67
-Converger=Normalized term diff value is 0.0098 - threshold reached=False
-Cumulative run-time=7.18 seconds
-
-Initiating PH iteration=17
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: -12.4835 80.8387 -68.3552 Average: 77.5391
- Index: [SUGAR_BEETS] Weights: -56.5275 -132.6886 189.2160 Average: 249.6748
- Index: [WHEAT] Weights: 69.0109 51.8499 -120.8608 Average: 172.7861
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: -108646.4578-108741.6409-108613.9753 Max-Min: 127.6656 Avg: -108667.3580
-------------------------------------------------
-Starting PH iteration 17 solves
-Queuing solve for scenario=BelowAverageScenario
-Queuing solve for scenario=AverageScenario
-Queuing solve for scenario=AboveAverageScenario
-Waiting for scenario sub-problem solves
-Results obtained for scenario=BelowAverageScenario
-Successfully loaded solution for scenario=BelowAverageScenario - waiting on 2 more
-Results obtained for scenario=AverageScenario
-Successfully loaded solution for scenario=AverageScenario - waiting on 1 more
-Results obtained for scenario=AboveAverageScenario
-Successfully loaded solution for scenario=AboveAverageScenario - waiting on 0 more
-Successfully completed PH iteration 17 solves
-- solution statistics:
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario 48633.2384 45416.7771 0.0000 optimal
- AverageScenario 109104.9040 91454.2268 0.0000 optimal
- AboveAverageScenario 167068.5343 188284.1689 0.0000 optimal
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 79.0556 80.0000 78.6293 Max-Min: 1.3707 Avg: 79.2283
-
- Index: [SUGAR_BEETS] Values: 249.1473 248.6752 250.0000 Max-Min: 1.3248 Avg: 249.2742
-
- Index: [WHEAT] Values: 171.7970 171.3248 171.3707 Max-Min: 0.4722 Avg: 171.4975
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: -108730.6584-108754.2672-108790.3452 Max-Min: 59.6867 Avg: -108758.4236
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg=-108758.4236 Max-Min= 59.69
-Converger=Normalized term diff value is 0.0032 - threshold reached=False
-Cumulative run-time=7.59 seconds
-
-Initiating PH iteration=18
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: -12.3108 80.0670 -67.7562 Average: 79.2283
- Index: [SUGAR_BEETS] Weights: -56.4006 -132.0895 188.4902 Average: 249.2742
- Index: [WHEAT] Weights: 68.7114 52.0225 -120.7340 Average: 171.4975
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: -108730.6584-108754.2672-108790.3452 Max-Min: 59.6867 Avg: -108758.4236
-------------------------------------------------
-Starting PH iteration 18 solves
-Queuing solve for scenario=BelowAverageScenario
-Queuing solve for scenario=AverageScenario
-Queuing solve for scenario=AboveAverageScenario
-Waiting for scenario sub-problem solves
-Results obtained for scenario=BelowAverageScenario
-Successfully loaded solution for scenario=BelowAverageScenario - waiting on 2 more
-Results obtained for scenario=AverageScenario
-Successfully loaded solution for scenario=AverageScenario - waiting on 1 more
-Results obtained for scenario=AboveAverageScenario
-Successfully loaded solution for scenario=AboveAverageScenario - waiting on 0 more
-Successfully completed PH iteration 18 solves
-- solution statistics:
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario 48755.1357 45415.3157 0.0000 optimal
- AverageScenario 109226.4725 91575.5685 0.0000 optimal
- AboveAverageScenario 166982.2859 188175.7176 0.0000 optimal
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 80.9175 80.0000 80.3543 Max-Min: 0.9175 Avg: 80.4239
-
- Index: [SUGAR_BEETS] Values: 248.8735 249.3323 250.0000 Max-Min: 1.1265 Avg: 249.4019
-
- Index: [WHEAT] Values: 170.2090 170.6677 169.6457 Max-Min: 1.0220 Avg: 170.1741
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: -108849.4892-108826.5512-108928.3426 Max-Min: 101.7914 Avg: -108868.1277
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg=-108868.1277 Max-Min= 101.79
-Converger=Normalized term diff value is 0.0026 - threshold reached=False
-Cumulative run-time=8.01 seconds
-
-Initiating PH iteration=19
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: -12.8044 80.4909 -67.6866 Average: 80.4239
- Index: [SUGAR_BEETS] Weights: -55.8722 -132.0199 187.8921 Average: 249.4019
- Index: [WHEAT] Weights: 68.6766 51.5289 -120.2056 Average: 170.1741
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: -108849.4892-108826.5512-108928.3426 Max-Min: 101.7914 Avg: -108868.1277
-------------------------------------------------
-Starting PH iteration 19 solves
-Queuing solve for scenario=BelowAverageScenario
-Queuing solve for scenario=AverageScenario
-Queuing solve for scenario=AboveAverageScenario
-Waiting for scenario sub-problem solves
-Results obtained for scenario=BelowAverageScenario
-Successfully loaded solution for scenario=BelowAverageScenario - waiting on 2 more
-Results obtained for scenario=AverageScenario
-Successfully loaded solution for scenario=AverageScenario - waiting on 1 more
-Results obtained for scenario=AboveAverageScenario
-Successfully loaded solution for scenario=AboveAverageScenario - waiting on 0 more
-Successfully completed PH iteration 19 solves
-- solution statistics:
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario 48896.7853 45504.4152 0.0000 optimal
- AverageScenario 109412.8043 91544.0545 0.0000 optimal
- AboveAverageScenario 166930.7799 188124.7934 0.0000 optimal
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 81.6195 80.0000 81.3844 Max-Min: 1.6195 Avg: 81.0013
-
- Index: [SUGAR_BEETS] Values: 249.5297 250.3395 250.0000 Max-Min: 0.8098 Avg: 249.9564
-
- Index: [WHEAT] Values: 168.8507 169.6605 168.6156 Max-Min: 1.0449 Avg: 169.0423
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: -108977.8318-108937.3431-109010.7521 Max-Min: 73.4091 Avg: -108975.3090
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg=-108975.3090 Max-Min= 73.41
-Converger=Normalized term diff value is 0.0039 - threshold reached=False
-Cumulative run-time=8.42 seconds
-
-Initiating PH iteration=20
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: -13.4226 81.4923 -68.0696 Average: 81.0013
- Index: [SUGAR_BEETS] Weights: -55.4455 -132.4030 187.8485 Average: 249.9564
- Index: [WHEAT] Weights: 68.8682 50.9107 -119.7789 Average: 169.0423
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: -108977.8318-108937.3431-109010.7521 Max-Min: 73.4091 Avg: -108975.3090
-------------------------------------------------
-Starting PH iteration 20 solves
-Queuing solve for scenario=BelowAverageScenario
-Queuing solve for scenario=AverageScenario
-Queuing solve for scenario=AboveAverageScenario
-Waiting for scenario sub-problem solves
-Results obtained for scenario=BelowAverageScenario
-Successfully loaded solution for scenario=BelowAverageScenario - waiting on 2 more
-Results obtained for scenario=AverageScenario
-Successfully loaded solution for scenario=AverageScenario - waiting on 1 more
-Results obtained for scenario=AboveAverageScenario
-Successfully loaded solution for scenario=AboveAverageScenario - waiting on 0 more
-Successfully completed PH iteration 20 solves
-- solution statistics:
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario 49016.9788 45594.9914 0.0000 optimal
- AverageScenario 109590.5384 91424.1875 0.0000 optimal
- AboveAverageScenario 166908.2936 188156.5533 0.0000 optimal
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 81.5787 80.0000 81.8341 Max-Min: 1.8341 Avg: 81.1376
-
- Index: [SUGAR_BEETS] Values: 250.5109 251.3002 250.0000 Max-Min: 1.3002 Avg: 250.6037
-
- Index: [WHEAT] Values: 167.9104 168.6998 168.1659 Max-Min: 0.7893 Avg: 168.2587
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: -109082.4903-109043.0228-109046.7302 Max-Min: 39.4675 Avg: -109057.4144
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg=-109057.4144 Max-Min= 39.47
-Converger=Normalized term diff value is 0.0043 - threshold reached=False
-Cumulative run-time=8.86 seconds
-
-Initiating PH iteration=21
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: -13.8637 82.6299 -68.7662 Average: 81.1376
- Index: [SUGAR_BEETS] Weights: -55.3527 -133.0995 188.4522 Average: 250.6037
- Index: [WHEAT] Weights: 69.2164 50.4696 -119.6860 Average: 168.2587
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: -109082.4903-109043.0228-109046.7302 Max-Min: 39.4675 Avg: -109057.4144
-------------------------------------------------
-Starting PH iteration 21 solves
-Queuing solve for scenario=BelowAverageScenario
-Queuing solve for scenario=AverageScenario
-Queuing solve for scenario=AboveAverageScenario
-Waiting for scenario sub-problem solves
-Results obtained for scenario=BelowAverageScenario
-Successfully loaded solution for scenario=BelowAverageScenario - waiting on 2 more
-Results obtained for scenario=AverageScenario
-Successfully loaded solution for scenario=AverageScenario - waiting on 1 more
-Results obtained for scenario=AboveAverageScenario
-Successfully loaded solution for scenario=AboveAverageScenario - waiting on 0 more
-Successfully completed PH iteration 21 solves
-- solution statistics:
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario 49084.6312 45641.9531 0.0000 optimal
- AverageScenario 109699.2672 91266.5705 0.0000 optimal
- AboveAverageScenario 166905.0304 188266.3943 0.0000 optimal
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 81.2739 80.0000 81.8994 Max-Min: 1.8994 Avg: 81.0578
-
- Index: [SUGAR_BEETS] Values: 251.2510 251.8879 250.0000 Max-Min: 1.8879 Avg: 251.0463
-
- Index: [WHEAT] Values: 167.4751 168.1121 168.1006 Max-Min: 0.6370 Avg: 167.8959
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: -109139.5199-109107.6724-109051.9513 Max-Min: 87.5686 Avg: -109099.7145
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg=-109099.7145 Max-Min= 87.57
-Converger=Normalized term diff value is 0.0044 - threshold reached=False
-Cumulative run-time=9.29 seconds
-
-Initiating PH iteration=22
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: -14.0798 83.6876 -69.6078 Average: 81.0578
- Index: [SUGAR_BEETS] Weights: -55.5574 -133.9411 189.4985 Average: 251.0463
- Index: [WHEAT] Weights: 69.6372 50.2535 -119.8907 Average: 167.8959
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: -109139.5199-109107.6724-109051.9513 Max-Min: 87.5686 Avg: -109099.7145
-------------------------------------------------
-Starting PH iteration 22 solves
-Queuing solve for scenario=BelowAverageScenario
-Queuing solve for scenario=AverageScenario
-Queuing solve for scenario=AboveAverageScenario
-Waiting for scenario sub-problem solves
-Results obtained for scenario=BelowAverageScenario
-Successfully loaded solution for scenario=BelowAverageScenario - waiting on 2 more
-Results obtained for scenario=AverageScenario
-Successfully loaded solution for scenario=AverageScenario - waiting on 1 more
-Results obtained for scenario=AboveAverageScenario
-Successfully loaded solution for scenario=AboveAverageScenario - waiting on 0 more
-Successfully completed PH iteration 22 solves
-- solution statistics:
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario 49089.7490 45643.9041 0.0000 optimal
- AverageScenario 109715.9075 91103.4143 0.0000 optimal
- AboveAverageScenario 166913.8811 188424.2289 0.0000 optimal
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 80.9779 80.0000 81.7224 Max-Min: 1.7224 Avg: 80.9001
-
- Index: [SUGAR_BEETS] Values: 251.4889 251.9779 250.0000 Max-Min: 1.9779 Avg: 251.1556
-
- Index: [WHEAT] Values: 167.5332 168.0221 168.2776 Max-Min: 0.7445 Avg: 167.9443
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: -109142.0146-109117.5666-109037.7903 Max-Min: 104.2243 Avg: -109099.1238
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg=-109099.1238 Max-Min= 104.22
-Converger=Normalized term diff value is 0.0040 - threshold reached=False
-Cumulative run-time=9.70 seconds
-
-Initiating PH iteration=23
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: -14.1577 84.5877 -70.4301 Average: 80.9001
- Index: [SUGAR_BEETS] Weights: -55.8907 -134.7634 190.6541 Average: 251.1556
- Index: [WHEAT] Weights: 70.0484 50.1757 -120.2240 Average: 167.9443
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: -109142.0146-109117.5666-109037.7903 Max-Min: 104.2243 Avg: -109099.1238
-------------------------------------------------
-Starting PH iteration 23 solves
-Queuing solve for scenario=BelowAverageScenario
-Queuing solve for scenario=AverageScenario
-Queuing solve for scenario=AboveAverageScenario
-Waiting for scenario sub-problem solves
-Results obtained for scenario=BelowAverageScenario
-Successfully loaded solution for scenario=BelowAverageScenario - waiting on 2 more
-Results obtained for scenario=AverageScenario
-Successfully loaded solution for scenario=AverageScenario - waiting on 1 more
-Results obtained for scenario=AboveAverageScenario
-Successfully loaded solution for scenario=AboveAverageScenario - waiting on 0 more
-Successfully completed PH iteration 23 solves
-- solution statistics:
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario 49041.7412 45622.8380 0.0000 optimal
- AverageScenario 109652.6806 90955.5225 0.0000 optimal
- AboveAverageScenario 166931.2559 188589.7403 0.0000 optimal
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 80.7424 80.0000 81.3749 Max-Min: 1.3749 Avg: 80.7058
-
- Index: [SUGAR_BEETS] Values: 251.2649 251.6361 250.0000 Max-Min: 1.6361 Avg: 250.9670
-
- Index: [WHEAT] Values: 167.9927 168.3639 168.6251 Max-Min: 0.6324 Avg: 168.3272
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: -109098.5331-109079.9723-109009.9905 Max-Min: 88.5426 Avg: -109062.8320
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg=-109062.8320 Max-Min= 88.54
-Converger=Normalized term diff value is 0.0032 - threshold reached=False
-Cumulative run-time=10.12 seconds
-
-Initiating PH iteration=24
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: -14.1943 85.2935 -71.0992 Average: 80.7058
- Index: [SUGAR_BEETS] Weights: -56.1886 -135.4325 191.6211 Average: 250.9670
- Index: [WHEAT] Weights: 70.3829 50.1390 -120.5219 Average: 168.3272
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: -109098.5331-109079.9723-109009.9905 Max-Min: 88.5426 Avg: -109062.8320
-------------------------------------------------
-Starting PH iteration 24 solves
-Queuing solve for scenario=BelowAverageScenario
-Queuing solve for scenario=AverageScenario
-Queuing solve for scenario=AboveAverageScenario
-Waiting for scenario sub-problem solves
-Results obtained for scenario=BelowAverageScenario
-Successfully loaded solution for scenario=BelowAverageScenario - waiting on 2 more
-Results obtained for scenario=AverageScenario
-Successfully loaded solution for scenario=AverageScenario - waiting on 1 more
-Results obtained for scenario=AboveAverageScenario
-Successfully loaded solution for scenario=AboveAverageScenario - waiting on 0 more
-Successfully completed PH iteration 24 solves
-- solution statistics:
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario 48961.0404 45601.5516 0.0000 optimal
- AverageScenario 109541.3136 90837.9368 0.0000 optimal
- AboveAverageScenario 166954.9676 188727.3112 0.0000 optimal
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 80.5114 80.0000 80.9006 Max-Min: 0.9006 Avg: 80.4707
-
- Index: [SUGAR_BEETS] Values: 250.7784 251.0341 250.0000 Max-Min: 1.0341 Avg: 250.6042
-
- Index: [WHEAT] Values: 168.7102 168.9659 169.0994 Max-Min: 0.3892 Avg: 168.9251
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: -109026.5401-109013.7540-108972.0518 Max-Min: 54.4883 Avg: -109004.1153
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg=-109004.1153 Max-Min= 54.49
-Converger=Normalized term diff value is 0.0021 - threshold reached=False
-Cumulative run-time=10.53 seconds
-
-Initiating PH iteration=25
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: -14.2351 85.7642 -71.5291 Average: 80.4707
- Index: [SUGAR_BEETS] Weights: -56.3628 -135.8625 192.2253 Average: 250.6042
- Index: [WHEAT] Weights: 70.5979 50.0983 -120.6962 Average: 168.9251
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: -109026.5401-109013.7540-108972.0518 Max-Min: 54.4883 Avg: -109004.1153
-------------------------------------------------
-Starting PH iteration 25 solves
-Queuing solve for scenario=BelowAverageScenario
-Queuing solve for scenario=AverageScenario
-Queuing solve for scenario=AboveAverageScenario
-Waiting for scenario sub-problem solves
-Results obtained for scenario=BelowAverageScenario
-Successfully loaded solution for scenario=BelowAverageScenario - waiting on 2 more
-Results obtained for scenario=AverageScenario
-Successfully loaded solution for scenario=AverageScenario - waiting on 1 more
-Results obtained for scenario=AboveAverageScenario
-Successfully loaded solution for scenario=AboveAverageScenario - waiting on 0 more
-Successfully completed PH iteration 25 solves
-- solution statistics:
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario 48870.2028 45591.4304 0.0000 optimal
- AverageScenario 109416.4454 90761.4824 0.0000 optimal
- AboveAverageScenario 166982.1850 188814.9014 0.0000 optimal
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 80.2356 80.0000 80.3563 Max-Min: 0.3563 Avg: 80.1973
-
- Index: [SUGAR_BEETS] Values: 250.2414 250.3592 250.0000 Max-Min: 0.3592 Avg: 250.2002
-
- Index: [WHEAT] Values: 169.5230 169.6408 169.6437 Max-Min: 0.1207 Avg: 169.6025
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: -108945.3987-108939.5081-108928.5039 Max-Min: 16.8947 Avg: -108937.8036
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg=-108937.8036 Max-Min= 16.89
-Converger=Normalized term diff value is 0.0008 - threshold reached=False
-Cumulative run-time=11.05 seconds
-
-Initiating PH iteration=26
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: -14.2734 85.9615 -71.6881 Average: 80.1973
- Index: [SUGAR_BEETS] Weights: -56.4040 -136.0215 192.4255 Average: 250.2002
- Index: [WHEAT] Weights: 70.6774 50.0599 -120.7373 Average: 169.6025
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: -108945.3987-108939.5081-108928.5039 Max-Min: 16.8947 Avg: -108937.8036
-------------------------------------------------
-Starting PH iteration 26 solves
-Queuing solve for scenario=BelowAverageScenario
-Queuing solve for scenario=AverageScenario
-Queuing solve for scenario=AboveAverageScenario
-Waiting for scenario sub-problem solves
-Results obtained for scenario=BelowAverageScenario
-Successfully loaded solution for scenario=BelowAverageScenario - waiting on 2 more
-Results obtained for scenario=AverageScenario
-Successfully loaded solution for scenario=AverageScenario - waiting on 1 more
-Results obtained for scenario=AboveAverageScenario
-Successfully loaded solution for scenario=AboveAverageScenario - waiting on 0 more
-Successfully completed PH iteration 26 solves
-- solution statistics:
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario 48787.9261 45592.2291 0.0000 optimal
- AverageScenario 109305.2533 90731.6873 0.0000 optimal
- AboveAverageScenario 167008.9000 188845.8817 0.0000 optimal
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 79.9239 80.0000 79.8220 Max-Min: 0.1780 Avg: 79.9153
-
- Index: [SUGAR_BEETS] Values: 249.7962 249.7581 250.0000 Max-Min: 0.2419 Avg: 249.8514
-
- Index: [WHEAT] Values: 170.2799 170.2419 170.1780 Max-Min: 0.1019 Avg: 170.2333
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: -108871.4918-108873.3939-108885.7601 Max-Min: 14.2683 Avg: -108876.8819
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg=-108876.8819 Max-Min= 14.27
-Converger=Normalized term diff value is 0.0005 - threshold reached=False
-Cumulative run-time=11.48 seconds
-
-Initiating PH iteration=27
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: -14.2820 85.8768 -71.5948 Average: 79.9153
- Index: [SUGAR_BEETS] Weights: -56.3487 -135.9282 192.2769 Average: 249.8514
- Index: [WHEAT] Weights: 70.6307 50.0513 -120.6821 Average: 170.2333
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: -108871.4918-108873.3939-108885.7601 Max-Min: 14.2683 Avg: -108876.8819
-------------------------------------------------
-Starting PH iteration 27 solves
-Queuing solve for scenario=BelowAverageScenario
-Queuing solve for scenario=AverageScenario
-Queuing solve for scenario=AboveAverageScenario
-Waiting for scenario sub-problem solves
-Results obtained for scenario=BelowAverageScenario
-Successfully loaded solution for scenario=BelowAverageScenario - waiting on 2 more
-Results obtained for scenario=AverageScenario
-Successfully loaded solution for scenario=AverageScenario - waiting on 1 more
-Results obtained for scenario=AboveAverageScenario
-Successfully loaded solution for scenario=AboveAverageScenario - waiting on 0 more
-Successfully completed PH iteration 27 solves
-- solution statistics:
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario 48726.5365 45598.0031 0.0000 optimal
- AverageScenario 109224.0783 90747.2556 0.0000 optimal
- AboveAverageScenario 167030.7675 188826.0224 0.0000 optimal
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 79.6333 80.0000 79.3846 Max-Min: 0.6154 Avg: 79.6727
-
- Index: [SUGAR_BEETS] Values: 249.5027 249.3193 250.0000 Max-Min: 0.6807 Avg: 249.6073
-
- Index: [WHEAT] Values: 170.8640 170.6807 170.6154 Max-Min: 0.2487 Avg: 170.7200
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: -108815.9603-108825.1277-108850.7720 Max-Min: 34.8117 Avg: -108830.6200
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg=-108830.6200 Max-Min= 34.81
-Converger=Normalized term diff value is 0.0015 - threshold reached=False
-Cumulative run-time=11.90 seconds
-
-Initiating PH iteration=28
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: -14.2427 85.5495 -71.3068 Average: 79.6727
- Index: [SUGAR_BEETS] Weights: -56.2441 -135.6401 191.8842 Average: 249.6073
- Index: [WHEAT] Weights: 70.4867 50.0907 -120.5774 Average: 170.7200
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: -108815.9603-108825.1277-108850.7720 Max-Min: 34.8117 Avg: -108830.6200
-------------------------------------------------
-Starting PH iteration 28 solves
-Queuing solve for scenario=BelowAverageScenario
-Queuing solve for scenario=AverageScenario
-Queuing solve for scenario=AboveAverageScenario
-Waiting for scenario sub-problem solves
-Results obtained for scenario=BelowAverageScenario
-Successfully loaded solution for scenario=BelowAverageScenario - waiting on 2 more
-Results obtained for scenario=AverageScenario
-Successfully loaded solution for scenario=AverageScenario - waiting on 1 more
-Results obtained for scenario=AboveAverageScenario
-Successfully loaded solution for scenario=AboveAverageScenario - waiting on 0 more
-Successfully completed PH iteration 28 solves
-- solution statistics:
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario 48691.8901 45603.0154 0.0000 optimal
- AverageScenario 109179.4772 90799.7954 0.0000 optimal
- AboveAverageScenario 167044.4187 188768.7523 0.0000 optimal
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 79.4300 80.0000 79.1116 Max-Min: 0.8884 Avg: 79.5139
-
- Index: [SUGAR_BEETS] Values: 249.3633 249.0783 250.0000 Max-Min: 0.9217 Avg: 249.4805
-
- Index: [WHEAT] Values: 171.2067 170.9217 170.8884 Max-Min: 0.3184 Avg: 171.0056
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: -108784.3580-108798.6081-108828.9300 Max-Min: 44.5720 Avg: -108803.9654
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg=-108803.9654 Max-Min= 44.57
-Converger=Normalized term diff value is 0.0021 - threshold reached=False
-Cumulative run-time=12.32 seconds
-
-Initiating PH iteration=29
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: -14.1588 85.0633 -70.9046 Average: 79.5139
- Index: [SUGAR_BEETS] Weights: -56.1268 -135.2379 191.3647 Average: 249.4805
- Index: [WHEAT] Weights: 70.2856 50.1746 -120.4602 Average: 171.0056
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: -108784.3580-108798.6081-108828.9300 Max-Min: 44.5720 Avg: -108803.9654
-------------------------------------------------
-Starting PH iteration 29 solves
-Queuing solve for scenario=BelowAverageScenario
-Queuing solve for scenario=AverageScenario
-Queuing solve for scenario=AboveAverageScenario
-Waiting for scenario sub-problem solves
-Results obtained for scenario=BelowAverageScenario
-Successfully loaded solution for scenario=BelowAverageScenario - waiting on 2 more
-Results obtained for scenario=AverageScenario
-Successfully loaded solution for scenario=AverageScenario - waiting on 1 more
-Results obtained for scenario=AboveAverageScenario
-Successfully loaded solution for scenario=AboveAverageScenario - waiting on 0 more
-Successfully completed PH iteration 29 solves
-- solution statistics:
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario 48684.3898 45604.6345 0.0000 optimal
- AverageScenario 109170.7743 90875.4467 0.0000 optimal
- AboveAverageScenario 167048.4036 188690.7693 0.0000 optimal
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 79.3551 80.0000 79.0319 Max-Min: 0.9681 Avg: 79.4623
-
- Index: [SUGAR_BEETS] Values: 249.3537 249.0312 250.0000 Max-Min: 0.9688 Avg: 249.4616
-
- Index: [WHEAT] Values: 171.2912 170.9688 170.9681 Max-Min: 0.3232 Avg: 171.0760
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: -108777.3108-108793.4334-108822.5543 Max-Min: 45.2435 Avg: -108797.7662
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg=-108797.7662 Max-Min= 45.24
-Converger=Normalized term diff value is 0.0023 - threshold reached=False
-Cumulative run-time=12.73 seconds
-
-Initiating PH iteration=30
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: -14.0515 84.5257 -70.4742 Average: 79.4623
- Index: [SUGAR_BEETS] Weights: -56.0189 -134.8075 190.8264 Average: 249.4616
- Index: [WHEAT] Weights: 70.0704 50.2818 -120.3522 Average: 171.0760
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: -108777.3108-108793.4334-108822.5543 Max-Min: 45.2435 Avg: -108797.7662
-------------------------------------------------
-Starting PH iteration 30 solves
-Queuing solve for scenario=BelowAverageScenario
-Queuing solve for scenario=AverageScenario
-Queuing solve for scenario=AboveAverageScenario
-Waiting for scenario sub-problem solves
-Results obtained for scenario=BelowAverageScenario
-Successfully loaded solution for scenario=BelowAverageScenario - waiting on 2 more
-Results obtained for scenario=AverageScenario
-Successfully loaded solution for scenario=AverageScenario - waiting on 1 more
-Results obtained for scenario=AboveAverageScenario
-Successfully loaded solution for scenario=AboveAverageScenario - waiting on 0 more
-Successfully completed PH iteration 30 solves
-- solution statistics:
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario 48700.2941 45603.2452 0.0000 optimal
- AverageScenario 109192.4081 90957.9464 0.0000 optimal
- AboveAverageScenario 167043.3908 188608.6685 0.0000 optimal
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 79.4108 80.0000 79.1322 Max-Min: 0.8678 Avg: 79.5143
-
- Index: [SUGAR_BEETS] Values: 249.4427 249.1482 250.0000 Max-Min: 0.8518 Avg: 249.5303
-
- Index: [WHEAT] Values: 171.1464 170.8518 170.8678 Max-Min: 0.2946 Avg: 170.9554
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: -108791.5669-108806.2967-108830.5746 Max-Min: 39.0077 Avg: -108809.4794
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg=-108809.4794 Max-Min= 39.01
-Converger=Normalized term diff value is 0.0020 - threshold reached=False
-Cumulative run-time=13.15 seconds
-
-Initiating PH iteration=31
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: -13.9480 84.0400 -70.0920 Average: 79.5143
- Index: [SUGAR_BEETS] Weights: -55.9313 -134.4253 190.3567 Average: 249.5303
- Index: [WHEAT] Weights: 69.8793 50.3853 -120.2647 Average: 170.9554
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: -108791.5669-108806.2967-108830.5746 Max-Min: 39.0077 Avg: -108809.4794
-------------------------------------------------
-Starting PH iteration 31 solves
-Queuing solve for scenario=BelowAverageScenario
-Queuing solve for scenario=AverageScenario
-Queuing solve for scenario=AboveAverageScenario
-Waiting for scenario sub-problem solves
-Results obtained for scenario=BelowAverageScenario
-Successfully loaded solution for scenario=BelowAverageScenario - waiting on 2 more
-Results obtained for scenario=AverageScenario
-Successfully loaded solution for scenario=AverageScenario - waiting on 1 more
-Results obtained for scenario=AboveAverageScenario
-Successfully loaded solution for scenario=AboveAverageScenario - waiting on 0 more
-Successfully completed PH iteration 31 solves
-- solution statistics:
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario 48733.0416 45600.6531 0.0000 optimal
- AverageScenario 109235.6947 91032.0684 0.0000 optimal
- AboveAverageScenario 167031.7097 188536.5320 0.0000 optimal
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 79.5663 80.0000 79.3658 Max-Min: 0.6342 Avg: 79.6440
-
- Index: [SUGAR_BEETS] Values: 249.5990 249.3821 250.0000 Max-Min: 0.6179 Avg: 249.6604
-
- Index: [WHEAT] Values: 170.8347 170.6179 170.6342 Max-Min: 0.2168 Avg: 170.6956
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: -108821.1927-108832.0347-108849.2645 Max-Min: 28.0718 Avg: -108834.1640
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg=-108834.1640 Max-Min= 28.07
-Converger=Normalized term diff value is 0.0015 - threshold reached=False
-Cumulative run-time=13.57 seconds
-
-Initiating PH iteration=32
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: -13.8703 83.6841 -69.8138 Average: 79.6440
- Index: [SUGAR_BEETS] Weights: -55.8699 -134.1471 190.0170 Average: 249.6604
- Index: [WHEAT] Weights: 69.7402 50.4630 -120.2033 Average: 170.6956
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: -108821.1927-108832.0347-108849.2645 Max-Min: 28.0718 Avg: -108834.1640
-------------------------------------------------
-Starting PH iteration 32 solves
-Queuing solve for scenario=BelowAverageScenario
-Queuing solve for scenario=AverageScenario
-Queuing solve for scenario=AboveAverageScenario
-Waiting for scenario sub-problem solves
-Results obtained for scenario=BelowAverageScenario
-Successfully loaded solution for scenario=BelowAverageScenario - waiting on 2 more
-Results obtained for scenario=AverageScenario
-Successfully loaded solution for scenario=AverageScenario - waiting on 1 more
-Results obtained for scenario=AboveAverageScenario
-Successfully loaded solution for scenario=AboveAverageScenario - waiting on 0 more
-Successfully completed PH iteration 32 solves
-- solution statistics:
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario 48774.5906 45598.5111 0.0000 optimal
- AverageScenario 109290.3033 91086.4074 0.0000 optimal
- AboveAverageScenario 167016.5514 188484.3494 0.0000 optimal
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 79.7738 80.0000 79.6690 Max-Min: 0.3310 Avg: 79.8142
-
- Index: [SUGAR_BEETS] Values: 249.7904 249.6773 250.0000 Max-Min: 0.3227 Avg: 249.8226
-
- Index: [WHEAT] Values: 170.4358 170.3227 170.3310 Max-Min: 0.1131 Avg: 170.3632
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: -108858.8485-108864.5047-108873.5178 Max-Min: 14.6693 Avg: -108865.6237
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg=-108865.6237 Max-Min= 14.67
-Converger=Normalized term diff value is 0.0008 - threshold reached=False
-Cumulative run-time=13.99 seconds
-
-Initiating PH iteration=33
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: -13.8298 83.4983 -69.6685 Average: 79.8142
- Index: [SUGAR_BEETS] Weights: -55.8378 -134.0018 189.8396 Average: 249.8226
- Index: [WHEAT] Weights: 69.6676 50.5035 -120.1711 Average: 170.3632
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: -108858.8485-108864.5047-108873.5178 Max-Min: 14.6693 Avg: -108865.6237
-------------------------------------------------
-Starting PH iteration 33 solves
-Queuing solve for scenario=BelowAverageScenario
-Queuing solve for scenario=AverageScenario
-Queuing solve for scenario=AboveAverageScenario
-Waiting for scenario sub-problem solves
-Results obtained for scenario=BelowAverageScenario
-Successfully loaded solution for scenario=BelowAverageScenario - waiting on 2 more
-Results obtained for scenario=AverageScenario
-Successfully loaded solution for scenario=AverageScenario - waiting on 1 more
-Results obtained for scenario=AboveAverageScenario
-Successfully loaded solution for scenario=AboveAverageScenario - waiting on 0 more
-Successfully completed PH iteration 33 solves
-- solution statistics:
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario 48816.7780 45597.5610 0.0000 optimal
- AverageScenario 109345.7489 91114.9076 0.0000 optimal
- AboveAverageScenario 167001.1579 188457.2369 0.0000 optimal
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 79.9844 80.0000 79.9768 Max-Min: 0.0232 Avg: 79.9871
-
- Index: [SUGAR_BEETS] Values: 249.9848 249.9770 250.0000 Max-Min: 0.0230 Avg: 249.9873
-
- Index: [WHEAT] Values: 170.0308 170.0230 170.0232 Max-Min: 0.0078 Avg: 170.0256
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: -108897.0834-108897.4723-108898.1474 Max-Min: 1.0640 Avg: -108897.5677
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg=-108897.5677 Max-Min= 1.06
-Converger=Normalized term diff value is 0.0001 - threshold reached=True
-Cumulative run-time=14.41 seconds
-
-Number of discrete variables fixed before final plugin calls=0 (total=0)
-Number of continuous variables fixed before final plugin calls=0 (total=3)
-PH complete
-
-Convergence history:
-Converger=Normalized term diff
-Iteration Metric Value
- 0 0.2540
- 1 0.1259
- 2 0.0816
- 3 0.0796
- 4 0.0776
- 5 0.0794
- 6 0.0668
- 7 0.0542
- 8 0.0360
- 9 0.0243
- 10 0.0256
- 11 0.0248
- 12 0.0163
- 13 0.0081
- 14 0.0168
- 15 0.0163
- 16 0.0098
- 17 0.0032
- 18 0.0026
- 19 0.0039
- 20 0.0043
- 21 0.0044
- 22 0.0040
- 23 0.0032
- 24 0.0021
- 25 0.0008
- 26 0.0005
- 27 0.0015
- 28 0.0021
- 29 0.0023
- 30 0.0020
- 31 0.0015
- 32 0.0008
- 33 0.0001
-
-
-Final number of discrete variables fixed=0 (total=0)
-Final number of continuous variables fixed=0 (total=3)
-
-Computing objective inner bound at xhat solution
-Queuing solve for scenario=BelowAverageScenario
-Queuing solve for scenario=AverageScenario
-Queuing solve for scenario=AboveAverageScenario
-Waiting for scenario sub-problem solves
-Results obtained for scenario=BelowAverageScenario
-Successfully loaded solution for scenario=BelowAverageScenario - waiting on 2 more
-Results obtained for scenario=AverageScenario
-Successfully loaded solution for scenario=AverageScenario - waiting on 1 more
-Results obtained for scenario=AboveAverageScenario
-Successfully loaded solution for scenario=AboveAverageScenario - waiting on 0 more
-Successfully completed xhat inner bound solves
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario 48818.0547 48818.0547 0.0000 optimal
- AverageScenario 109347.1053 109347.1053 0.0000 optimal
- AboveAverageScenario 167001.1579 167001.1579 0.0000 optimal
-
-
-Computed objective lower bound= 108388.7726
-
-X-hat variable values:
-
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 79.9768 79.9768 79.9768
-
- Index: [SUGAR_BEETS] Values: 250.0000 250.0000 250.0000
-
- Index: [WHEAT] Values: 170.0232 170.0232 170.0232
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: -108898.1474-108898.1474-108898.1474 Max-Min: 0.0000 Avg: -108898.1474
-
-X-hat costs:
-
-Scenario Tree Costs
-----------------------------------------------------
-Tree Nodes:
-
- Name=AboveAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AboveAverageScenario
- Expected cost of (sub)tree rooted at node=275899.3053
-
- Name=AverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AverageScenario
- Expected cost of (sub)tree rooted at node=218245.2526
-
- Name=BelowAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=157716.2021
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- AboveAverageNode
- AverageNode
- BelowAverageNode
- Scenarios:
- AboveAverageScenario
- AverageScenario
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=108388.7726
-
-----------------------------------------------------
-Scenarios:
-
- Name=AboveAverageScenario
- Probability=0.3333
- Leaf Node=AboveAverageNode
- Tree node sequence:
- RootNode
- AboveAverageNode
- Stage= FirstStage Cost=-108898.1474
- Stage= SecondStage Cost=275899.3053
- Total scenario cost=167001.1579
-
- Name=AverageScenario
- Probability=0.3333
- Leaf Node=AverageNode
- Tree node sequence:
- RootNode
- AverageNode
- Stage= FirstStage Cost=-108898.1474
- Stage= SecondStage Cost=218245.2526
- Total scenario cost=109347.1053
-
- Name=BelowAverageScenario
- Probability=0.3333
- Leaf Node=BelowAverageNode
- Tree node sequence:
- RootNode
- BelowAverageNode
- Stage= FirstStage Cost=-108898.1474
- Stage= SecondStage Cost=157716.2021
- Total scenario cost=48818.0547
-
-----------------------------------------------------
-
-
-Total PH execution time=14.84 seconds
-
-
-Total execution time=14.90 seconds
diff --git a/pyomo/pysp/tests/unit/baselines/farmer_piecewise_ef.baseline.lp b/pyomo/pysp/tests/unit/baselines/farmer_piecewise_ef.baseline.lp
deleted file mode 100644
index 98b82e44010..00000000000
--- a/pyomo/pysp/tests/unit/baselines/farmer_piecewise_ef.baseline.lp
+++ /dev/null
@@ -1,502 +0,0 @@
-\* Source Pyomo model name=MASTER *\
-
-min
-MASTER:
-+0.33333332999999998 AboveAverageScenario_FirstStageCost
-+0.33333332999999998 AboveAverageScenario_SecondStageCost
-+0.33333333999999998 AverageScenario_FirstStageCost
-+0.33333333999999998 AverageScenario_SecondStageCost
-+0.33333332999999998 BelowAverageScenario_FirstStageCost
-+0.33333332999999998 BelowAverageScenario_SecondStageCost
-
-s.t.
-
-c_e_MASTER_BLEND_CONSTRAINT_RootNode(1)_:
--1 BelowAverageScenario_DevotedAcreage(CORN)
-+1 MASTER_BLEND_VAR_RootNode(DevotedAcreage__CORN)
-= 0
-
-c_e_MASTER_BLEND_CONSTRAINT_RootNode(2)_:
--1 AverageScenario_DevotedAcreage(CORN)
-+1 MASTER_BLEND_VAR_RootNode(DevotedAcreage__CORN)
-= 0
-
-c_e_MASTER_BLEND_CONSTRAINT_RootNode(3)_:
--1 AboveAverageScenario_DevotedAcreage(CORN)
-+1 MASTER_BLEND_VAR_RootNode(DevotedAcreage__CORN)
-= 0
-
-c_e_MASTER_BLEND_CONSTRAINT_RootNode(4)_:
--1 BelowAverageScenario_DevotedAcreage(SUGAR_BEETS)
-+1 MASTER_BLEND_VAR_RootNode(DevotedAcreage__SUGAR_BEETS)
-= 0
-
-c_e_MASTER_BLEND_CONSTRAINT_RootNode(5)_:
--1 AverageScenario_DevotedAcreage(SUGAR_BEETS)
-+1 MASTER_BLEND_VAR_RootNode(DevotedAcreage__SUGAR_BEETS)
-= 0
-
-c_e_MASTER_BLEND_CONSTRAINT_RootNode(6)_:
--1 AboveAverageScenario_DevotedAcreage(SUGAR_BEETS)
-+1 MASTER_BLEND_VAR_RootNode(DevotedAcreage__SUGAR_BEETS)
-= 0
-
-c_e_MASTER_BLEND_CONSTRAINT_RootNode(7)_:
--1 BelowAverageScenario_DevotedAcreage(WHEAT)
-+1 MASTER_BLEND_VAR_RootNode(DevotedAcreage__WHEAT)
-= 0
-
-c_e_MASTER_BLEND_CONSTRAINT_RootNode(8)_:
--1 AverageScenario_DevotedAcreage(WHEAT)
-+1 MASTER_BLEND_VAR_RootNode(DevotedAcreage__WHEAT)
-= 0
-
-c_e_MASTER_BLEND_CONSTRAINT_RootNode(9)_:
--1 AboveAverageScenario_DevotedAcreage(WHEAT)
-+1 MASTER_BLEND_VAR_RootNode(DevotedAcreage__WHEAT)
-= 0
-
-c_u_BelowAverageScenario_ConstrainTotalAcreage_:
-+1 BelowAverageScenario_DevotedAcreage(CORN)
-+1 BelowAverageScenario_DevotedAcreage(SUGAR_BEETS)
-+1 BelowAverageScenario_DevotedAcreage(WHEAT)
-<= 500
-
-c_l_BelowAverageScenario_EnforceCattleFeedRequirement(CORN)_:
-+2.3999999999999999 BelowAverageScenario_DevotedAcreage(CORN)
-+1 BelowAverageScenario_QuantityPurchased(CORN)
--1 BelowAverageScenario_QuantitySold(CORN)
->= 240
-
-c_l_BelowAverageScenario_EnforceCattleFeedRequirement(SUGAR_BEETS)_:
-+16 BelowAverageScenario_DevotedAcreage(SUGAR_BEETS)
-+1 BelowAverageScenario_QuantityPurchased(SUGAR_BEETS)
--1 BelowAverageScenario_QuantitySold(SUGAR_BEETS)
->= 0
-
-c_l_BelowAverageScenario_EnforceCattleFeedRequirement(WHEAT)_:
-+2 BelowAverageScenario_DevotedAcreage(WHEAT)
-+1 BelowAverageScenario_QuantityPurchased(WHEAT)
--1 BelowAverageScenario_QuantitySold(WHEAT)
->= 200
-
-c_u_BelowAverageScenario_LimitAmountSold(CORN)_:
--2.3999999999999999 BelowAverageScenario_DevotedAcreage(CORN)
-+1 BelowAverageScenario_QuantitySold(CORN)
-<= 0
-
-c_u_BelowAverageScenario_LimitAmountSold(SUGAR_BEETS)_:
--16 BelowAverageScenario_DevotedAcreage(SUGAR_BEETS)
-+1 BelowAverageScenario_QuantitySold(SUGAR_BEETS)
-<= 0
-
-c_u_BelowAverageScenario_LimitAmountSold(WHEAT)_:
--2 BelowAverageScenario_DevotedAcreage(WHEAT)
-+1 BelowAverageScenario_QuantitySold(WHEAT)
-<= 0
-
-c_e_BelowAverageScenario_ComputeFirstStageCost_:
--230 BelowAverageScenario_DevotedAcreage(CORN)
--260 BelowAverageScenario_DevotedAcreage(SUGAR_BEETS)
--150 BelowAverageScenario_DevotedAcreage(WHEAT)
-+1 BelowAverageScenario_FirstStageCost
-= 0
-
-c_e_BelowAverageScenario_ComputeSecondStageCost_:
-+1 BelowAverageScenario_Profit(CORN)
-+1 BelowAverageScenario_Profit(SUGAR_BEETS)
-+1 BelowAverageScenario_Profit(WHEAT)
--210 BelowAverageScenario_QuantityPurchased(CORN)
--100000 BelowAverageScenario_QuantityPurchased(SUGAR_BEETS)
--238 BelowAverageScenario_QuantityPurchased(WHEAT)
-+1 BelowAverageScenario_SecondStageCost
-= 0
-
-c_e_BelowAverageScenario_ComputeProfits(CORN)_SOS2_constraint(1)_:
--4000 BelowAverageScenario_ComputeProfits(CORN)_SOS2_y(1)
--8000 BelowAverageScenario_ComputeProfits(CORN)_SOS2_y(2)
-+1 BelowAverageScenario_QuantitySold(CORN)
-= 0
-
-c_u_BelowAverageScenario_ComputeProfits(CORN)_SOS2_constraint(2)_:
--3212000 BelowAverageScenario_ComputeProfits(CORN)_SOS2_y(1)
--12824000 BelowAverageScenario_ComputeProfits(CORN)_SOS2_y(2)
-+1 BelowAverageScenario_Profit(CORN)
-<= 0
-
-c_e_BelowAverageScenario_ComputeProfits(CORN)_SOS2_constraint(3)_:
-+1 BelowAverageScenario_ComputeProfits(CORN)_SOS2_y(0)
-+1 BelowAverageScenario_ComputeProfits(CORN)_SOS2_y(1)
-+1 BelowAverageScenario_ComputeProfits(CORN)_SOS2_y(2)
-= 1
-
-c_e_BelowAverageScenario_ComputeProfits(SUGAR_BEETS)_SOS2_constraint(1)_:
--4000 BelowAverageScenario_ComputeProfits(SUGAR_BEETS)_SOS2_y(1)
--8000 BelowAverageScenario_ComputeProfits(SUGAR_BEETS)_SOS2_y(2)
-+1 BelowAverageScenario_QuantitySold(SUGAR_BEETS)
-= 0
-
-c_u_BelowAverageScenario_ComputeProfits(SUGAR_BEETS)_SOS2_constraint(2)_:
--804000 BelowAverageScenario_ComputeProfits(SUGAR_BEETS)_SOS2_y(1)
--3208000 BelowAverageScenario_ComputeProfits(SUGAR_BEETS)_SOS2_y(2)
-+1 BelowAverageScenario_Profit(SUGAR_BEETS)
-<= 0
-
-c_e_BelowAverageScenario_ComputeProfits(SUGAR_BEETS)_SOS2_constraint(3)_:
-+1 BelowAverageScenario_ComputeProfits(SUGAR_BEETS)_SOS2_y(0)
-+1 BelowAverageScenario_ComputeProfits(SUGAR_BEETS)_SOS2_y(1)
-+1 BelowAverageScenario_ComputeProfits(SUGAR_BEETS)_SOS2_y(2)
-= 1
-
-c_e_BelowAverageScenario_ComputeProfits(WHEAT)_SOS2_constraint(1)_:
--4000 BelowAverageScenario_ComputeProfits(WHEAT)_SOS2_y(1)
--8000 BelowAverageScenario_ComputeProfits(WHEAT)_SOS2_y(2)
-+1 BelowAverageScenario_QuantitySold(WHEAT)
-= 0
-
-c_u_BelowAverageScenario_ComputeProfits(WHEAT)_SOS2_constraint(2)_:
--8004000 BelowAverageScenario_ComputeProfits(WHEAT)_SOS2_y(1)
--32008000 BelowAverageScenario_ComputeProfits(WHEAT)_SOS2_y(2)
-+1 BelowAverageScenario_Profit(WHEAT)
-<= 0
-
-c_e_BelowAverageScenario_ComputeProfits(WHEAT)_SOS2_constraint(3)_:
-+1 BelowAverageScenario_ComputeProfits(WHEAT)_SOS2_y(0)
-+1 BelowAverageScenario_ComputeProfits(WHEAT)_SOS2_y(1)
-+1 BelowAverageScenario_ComputeProfits(WHEAT)_SOS2_y(2)
-= 1
-
-c_u_AverageScenario_ConstrainTotalAcreage_:
-+1 AverageScenario_DevotedAcreage(CORN)
-+1 AverageScenario_DevotedAcreage(SUGAR_BEETS)
-+1 AverageScenario_DevotedAcreage(WHEAT)
-<= 500
-
-c_l_AverageScenario_EnforceCattleFeedRequirement(CORN)_:
-+3 AverageScenario_DevotedAcreage(CORN)
-+1 AverageScenario_QuantityPurchased(CORN)
--1 AverageScenario_QuantitySold(CORN)
->= 240
-
-c_l_AverageScenario_EnforceCattleFeedRequirement(SUGAR_BEETS)_:
-+20 AverageScenario_DevotedAcreage(SUGAR_BEETS)
-+1 AverageScenario_QuantityPurchased(SUGAR_BEETS)
--1 AverageScenario_QuantitySold(SUGAR_BEETS)
->= 0
-
-c_l_AverageScenario_EnforceCattleFeedRequirement(WHEAT)_:
-+2.5 AverageScenario_DevotedAcreage(WHEAT)
-+1 AverageScenario_QuantityPurchased(WHEAT)
--1 AverageScenario_QuantitySold(WHEAT)
->= 200
-
-c_u_AverageScenario_LimitAmountSold(CORN)_:
--3 AverageScenario_DevotedAcreage(CORN)
-+1 AverageScenario_QuantitySold(CORN)
-<= 0
-
-c_u_AverageScenario_LimitAmountSold(SUGAR_BEETS)_:
--20 AverageScenario_DevotedAcreage(SUGAR_BEETS)
-+1 AverageScenario_QuantitySold(SUGAR_BEETS)
-<= 0
-
-c_u_AverageScenario_LimitAmountSold(WHEAT)_:
--2.5 AverageScenario_DevotedAcreage(WHEAT)
-+1 AverageScenario_QuantitySold(WHEAT)
-<= 0
-
-c_e_AverageScenario_ComputeFirstStageCost_:
--230 AverageScenario_DevotedAcreage(CORN)
--260 AverageScenario_DevotedAcreage(SUGAR_BEETS)
--150 AverageScenario_DevotedAcreage(WHEAT)
-+1 AverageScenario_FirstStageCost
-= 0
-
-c_e_AverageScenario_ComputeSecondStageCost_:
-+1 AverageScenario_Profit(CORN)
-+1 AverageScenario_Profit(SUGAR_BEETS)
-+1 AverageScenario_Profit(WHEAT)
--210 AverageScenario_QuantityPurchased(CORN)
--100000 AverageScenario_QuantityPurchased(SUGAR_BEETS)
--238 AverageScenario_QuantityPurchased(WHEAT)
-+1 AverageScenario_SecondStageCost
-= 0
-
-c_e_AverageScenario_ComputeProfits(CORN)_SOS2_constraint(1)_:
--5000 AverageScenario_ComputeProfits(CORN)_SOS2_y(1)
--10000 AverageScenario_ComputeProfits(CORN)_SOS2_y(2)
-+1 AverageScenario_QuantitySold(CORN)
-= 0
-
-c_u_AverageScenario_ComputeProfits(CORN)_SOS2_constraint(2)_:
--5015000 AverageScenario_ComputeProfits(CORN)_SOS2_y(1)
--20030000 AverageScenario_ComputeProfits(CORN)_SOS2_y(2)
-+1 AverageScenario_Profit(CORN)
-<= 0
-
-c_e_AverageScenario_ComputeProfits(CORN)_SOS2_constraint(3)_:
-+1 AverageScenario_ComputeProfits(CORN)_SOS2_y(0)
-+1 AverageScenario_ComputeProfits(CORN)_SOS2_y(1)
-+1 AverageScenario_ComputeProfits(CORN)_SOS2_y(2)
-= 1
-
-c_e_AverageScenario_ComputeProfits(SUGAR_BEETS)_SOS2_constraint(1)_:
--5000 AverageScenario_ComputeProfits(SUGAR_BEETS)_SOS2_y(1)
--10000 AverageScenario_ComputeProfits(SUGAR_BEETS)_SOS2_y(2)
-+1 AverageScenario_QuantitySold(SUGAR_BEETS)
-= 0
-
-c_u_AverageScenario_ComputeProfits(SUGAR_BEETS)_SOS2_constraint(2)_:
--1255000 AverageScenario_ComputeProfits(SUGAR_BEETS)_SOS2_y(1)
--5010000 AverageScenario_ComputeProfits(SUGAR_BEETS)_SOS2_y(2)
-+1 AverageScenario_Profit(SUGAR_BEETS)
-<= 0
-
-c_e_AverageScenario_ComputeProfits(SUGAR_BEETS)_SOS2_constraint(3)_:
-+1 AverageScenario_ComputeProfits(SUGAR_BEETS)_SOS2_y(0)
-+1 AverageScenario_ComputeProfits(SUGAR_BEETS)_SOS2_y(1)
-+1 AverageScenario_ComputeProfits(SUGAR_BEETS)_SOS2_y(2)
-= 1
-
-c_e_AverageScenario_ComputeProfits(WHEAT)_SOS2_constraint(1)_:
--5000 AverageScenario_ComputeProfits(WHEAT)_SOS2_y(1)
--10000 AverageScenario_ComputeProfits(WHEAT)_SOS2_y(2)
-+1 AverageScenario_QuantitySold(WHEAT)
-= 0
-
-c_u_AverageScenario_ComputeProfits(WHEAT)_SOS2_constraint(2)_:
--12505000 AverageScenario_ComputeProfits(WHEAT)_SOS2_y(1)
--50010000 AverageScenario_ComputeProfits(WHEAT)_SOS2_y(2)
-+1 AverageScenario_Profit(WHEAT)
-<= 0
-
-c_e_AverageScenario_ComputeProfits(WHEAT)_SOS2_constraint(3)_:
-+1 AverageScenario_ComputeProfits(WHEAT)_SOS2_y(0)
-+1 AverageScenario_ComputeProfits(WHEAT)_SOS2_y(1)
-+1 AverageScenario_ComputeProfits(WHEAT)_SOS2_y(2)
-= 1
-
-c_u_AboveAverageScenario_ConstrainTotalAcreage_:
-+1 AboveAverageScenario_DevotedAcreage(CORN)
-+1 AboveAverageScenario_DevotedAcreage(SUGAR_BEETS)
-+1 AboveAverageScenario_DevotedAcreage(WHEAT)
-<= 500
-
-c_l_AboveAverageScenario_EnforceCattleFeedRequirement(CORN)_:
-+3.6000000000000001 AboveAverageScenario_DevotedAcreage(CORN)
-+1 AboveAverageScenario_QuantityPurchased(CORN)
--1 AboveAverageScenario_QuantitySold(CORN)
->= 240
-
-c_l_AboveAverageScenario_EnforceCattleFeedRequirement(SUGAR_BEETS)_:
-+24 AboveAverageScenario_DevotedAcreage(SUGAR_BEETS)
-+1 AboveAverageScenario_QuantityPurchased(SUGAR_BEETS)
--1 AboveAverageScenario_QuantitySold(SUGAR_BEETS)
->= 0
-
-c_l_AboveAverageScenario_EnforceCattleFeedRequirement(WHEAT)_:
-+3 AboveAverageScenario_DevotedAcreage(WHEAT)
-+1 AboveAverageScenario_QuantityPurchased(WHEAT)
--1 AboveAverageScenario_QuantitySold(WHEAT)
->= 200
-
-c_u_AboveAverageScenario_LimitAmountSold(CORN)_:
--3.6000000000000001 AboveAverageScenario_DevotedAcreage(CORN)
-+1 AboveAverageScenario_QuantitySold(CORN)
-<= 0
-
-c_u_AboveAverageScenario_LimitAmountSold(SUGAR_BEETS)_:
--24 AboveAverageScenario_DevotedAcreage(SUGAR_BEETS)
-+1 AboveAverageScenario_QuantitySold(SUGAR_BEETS)
-<= 0
-
-c_u_AboveAverageScenario_LimitAmountSold(WHEAT)_:
--3 AboveAverageScenario_DevotedAcreage(WHEAT)
-+1 AboveAverageScenario_QuantitySold(WHEAT)
-<= 0
-
-c_e_AboveAverageScenario_ComputeFirstStageCost_:
--230 AboveAverageScenario_DevotedAcreage(CORN)
--260 AboveAverageScenario_DevotedAcreage(SUGAR_BEETS)
--150 AboveAverageScenario_DevotedAcreage(WHEAT)
-+1 AboveAverageScenario_FirstStageCost
-= 0
-
-c_e_AboveAverageScenario_ComputeSecondStageCost_:
-+1 AboveAverageScenario_Profit(CORN)
-+1 AboveAverageScenario_Profit(SUGAR_BEETS)
-+1 AboveAverageScenario_Profit(WHEAT)
--210 AboveAverageScenario_QuantityPurchased(CORN)
--100000 AboveAverageScenario_QuantityPurchased(SUGAR_BEETS)
--238 AboveAverageScenario_QuantityPurchased(WHEAT)
-+1 AboveAverageScenario_SecondStageCost
-= 0
-
-c_e_AboveAverageScenario_ComputeProfits(CORN)_SOS2_constraint(1)_:
--6000 AboveAverageScenario_ComputeProfits(CORN)_SOS2_y(1)
--12000 AboveAverageScenario_ComputeProfits(CORN)_SOS2_y(2)
-+1 AboveAverageScenario_QuantitySold(CORN)
-= 0
-
-c_u_AboveAverageScenario_ComputeProfits(CORN)_SOS2_constraint(2)_:
--7218000 AboveAverageScenario_ComputeProfits(CORN)_SOS2_y(1)
--28836000 AboveAverageScenario_ComputeProfits(CORN)_SOS2_y(2)
-+1 AboveAverageScenario_Profit(CORN)
-<= 0
-
-c_e_AboveAverageScenario_ComputeProfits(CORN)_SOS2_constraint(3)_:
-+1 AboveAverageScenario_ComputeProfits(CORN)_SOS2_y(0)
-+1 AboveAverageScenario_ComputeProfits(CORN)_SOS2_y(1)
-+1 AboveAverageScenario_ComputeProfits(CORN)_SOS2_y(2)
-= 1
-
-c_e_AboveAverageScenario_ComputeProfits(SUGAR_BEETS)_SOS2_constraint(1)_:
--6000 AboveAverageScenario_ComputeProfits(SUGAR_BEETS)_SOS2_y(1)
--12000 AboveAverageScenario_ComputeProfits(SUGAR_BEETS)_SOS2_y(2)
-+1 AboveAverageScenario_QuantitySold(SUGAR_BEETS)
-= 0
-
-c_u_AboveAverageScenario_ComputeProfits(SUGAR_BEETS)_SOS2_constraint(2)_:
--1806000 AboveAverageScenario_ComputeProfits(SUGAR_BEETS)_SOS2_y(1)
--7212000 AboveAverageScenario_ComputeProfits(SUGAR_BEETS)_SOS2_y(2)
-+1 AboveAverageScenario_Profit(SUGAR_BEETS)
-<= 0
-
-c_e_AboveAverageScenario_ComputeProfits(SUGAR_BEETS)_SOS2_constraint(3)_:
-+1 AboveAverageScenario_ComputeProfits(SUGAR_BEETS)_SOS2_y(0)
-+1 AboveAverageScenario_ComputeProfits(SUGAR_BEETS)_SOS2_y(1)
-+1 AboveAverageScenario_ComputeProfits(SUGAR_BEETS)_SOS2_y(2)
-= 1
-
-c_e_AboveAverageScenario_ComputeProfits(WHEAT)_SOS2_constraint(1)_:
--6000 AboveAverageScenario_ComputeProfits(WHEAT)_SOS2_y(1)
--12000 AboveAverageScenario_ComputeProfits(WHEAT)_SOS2_y(2)
-+1 AboveAverageScenario_QuantitySold(WHEAT)
-= 0
-
-c_u_AboveAverageScenario_ComputeProfits(WHEAT)_SOS2_constraint(2)_:
--18006000 AboveAverageScenario_ComputeProfits(WHEAT)_SOS2_y(1)
--72012000 AboveAverageScenario_ComputeProfits(WHEAT)_SOS2_y(2)
-+1 AboveAverageScenario_Profit(WHEAT)
-<= 0
-
-c_e_AboveAverageScenario_ComputeProfits(WHEAT)_SOS2_constraint(3)_:
-+1 AboveAverageScenario_ComputeProfits(WHEAT)_SOS2_y(0)
-+1 AboveAverageScenario_ComputeProfits(WHEAT)_SOS2_y(1)
-+1 AboveAverageScenario_ComputeProfits(WHEAT)_SOS2_y(2)
-= 1
-
-c_e_ONE_VAR_CONSTANT:
-ONE_VAR_CONSTANT = 1.0
-
-bounds
- -inf <= MASTER_BLEND_VAR_RootNode(DevotedAcreage__CORN) <= +inf
- -inf <= MASTER_BLEND_VAR_RootNode(DevotedAcreage__SUGAR_BEETS) <= +inf
- -inf <= MASTER_BLEND_VAR_RootNode(DevotedAcreage__WHEAT) <= +inf
- 0 <= BelowAverageScenario_DevotedAcreage(CORN) <= 500
- 0 <= BelowAverageScenario_DevotedAcreage(SUGAR_BEETS) <= 500
- 0 <= BelowAverageScenario_DevotedAcreage(WHEAT) <= 500
- 0 <= BelowAverageScenario_QuantityPurchased(CORN) <= +inf
- 0 <= BelowAverageScenario_QuantityPurchased(SUGAR_BEETS) <= +inf
- 0 <= BelowAverageScenario_QuantityPurchased(WHEAT) <= +inf
- 0 <= BelowAverageScenario_QuantitySold(CORN) <= 8000
- 0 <= BelowAverageScenario_QuantitySold(SUGAR_BEETS) <= 8000
- 0 <= BelowAverageScenario_QuantitySold(WHEAT) <= 8000
- 0 <= BelowAverageScenario_Profit(CORN) <= +inf
- 0 <= BelowAverageScenario_Profit(SUGAR_BEETS) <= +inf
- 0 <= BelowAverageScenario_Profit(WHEAT) <= +inf
- -inf <= BelowAverageScenario_FirstStageCost <= +inf
- -inf <= BelowAverageScenario_SecondStageCost <= +inf
- 0 <= BelowAverageScenario_ComputeProfits(CORN)_SOS2_y(0) <= +inf
- 0 <= BelowAverageScenario_ComputeProfits(CORN)_SOS2_y(1) <= +inf
- 0 <= BelowAverageScenario_ComputeProfits(CORN)_SOS2_y(2) <= +inf
- 0 <= BelowAverageScenario_ComputeProfits(SUGAR_BEETS)_SOS2_y(0) <= +inf
- 0 <= BelowAverageScenario_ComputeProfits(SUGAR_BEETS)_SOS2_y(1) <= +inf
- 0 <= BelowAverageScenario_ComputeProfits(SUGAR_BEETS)_SOS2_y(2) <= +inf
- 0 <= BelowAverageScenario_ComputeProfits(WHEAT)_SOS2_y(0) <= +inf
- 0 <= BelowAverageScenario_ComputeProfits(WHEAT)_SOS2_y(1) <= +inf
- 0 <= BelowAverageScenario_ComputeProfits(WHEAT)_SOS2_y(2) <= +inf
- 0 <= AverageScenario_DevotedAcreage(CORN) <= 500
- 0 <= AverageScenario_DevotedAcreage(SUGAR_BEETS) <= 500
- 0 <= AverageScenario_DevotedAcreage(WHEAT) <= 500
- 0 <= AverageScenario_QuantityPurchased(CORN) <= +inf
- 0 <= AverageScenario_QuantityPurchased(SUGAR_BEETS) <= +inf
- 0 <= AverageScenario_QuantityPurchased(WHEAT) <= +inf
- 0 <= AverageScenario_QuantitySold(CORN) <= 10000
- 0 <= AverageScenario_QuantitySold(SUGAR_BEETS) <= 10000
- 0 <= AverageScenario_QuantitySold(WHEAT) <= 10000
- 0 <= AverageScenario_Profit(CORN) <= +inf
- 0 <= AverageScenario_Profit(SUGAR_BEETS) <= +inf
- 0 <= AverageScenario_Profit(WHEAT) <= +inf
- -inf <= AverageScenario_FirstStageCost <= +inf
- -inf <= AverageScenario_SecondStageCost <= +inf
- 0 <= AverageScenario_ComputeProfits(CORN)_SOS2_y(0) <= +inf
- 0 <= AverageScenario_ComputeProfits(CORN)_SOS2_y(1) <= +inf
- 0 <= AverageScenario_ComputeProfits(CORN)_SOS2_y(2) <= +inf
- 0 <= AverageScenario_ComputeProfits(SUGAR_BEETS)_SOS2_y(0) <= +inf
- 0 <= AverageScenario_ComputeProfits(SUGAR_BEETS)_SOS2_y(1) <= +inf
- 0 <= AverageScenario_ComputeProfits(SUGAR_BEETS)_SOS2_y(2) <= +inf
- 0 <= AverageScenario_ComputeProfits(WHEAT)_SOS2_y(0) <= +inf
- 0 <= AverageScenario_ComputeProfits(WHEAT)_SOS2_y(1) <= +inf
- 0 <= AverageScenario_ComputeProfits(WHEAT)_SOS2_y(2) <= +inf
- 0 <= AboveAverageScenario_DevotedAcreage(CORN) <= 500
- 0 <= AboveAverageScenario_DevotedAcreage(SUGAR_BEETS) <= 500
- 0 <= AboveAverageScenario_DevotedAcreage(WHEAT) <= 500
- 0 <= AboveAverageScenario_QuantityPurchased(CORN) <= +inf
- 0 <= AboveAverageScenario_QuantityPurchased(SUGAR_BEETS) <= +inf
- 0 <= AboveAverageScenario_QuantityPurchased(WHEAT) <= +inf
- 0 <= AboveAverageScenario_QuantitySold(CORN) <= 12000
- 0 <= AboveAverageScenario_QuantitySold(SUGAR_BEETS) <= 12000
- 0 <= AboveAverageScenario_QuantitySold(WHEAT) <= 12000
- 0 <= AboveAverageScenario_Profit(CORN) <= +inf
- 0 <= AboveAverageScenario_Profit(SUGAR_BEETS) <= +inf
- 0 <= AboveAverageScenario_Profit(WHEAT) <= +inf
- -inf <= AboveAverageScenario_FirstStageCost <= +inf
- -inf <= AboveAverageScenario_SecondStageCost <= +inf
- 0 <= AboveAverageScenario_ComputeProfits(CORN)_SOS2_y(0) <= +inf
- 0 <= AboveAverageScenario_ComputeProfits(CORN)_SOS2_y(1) <= +inf
- 0 <= AboveAverageScenario_ComputeProfits(CORN)_SOS2_y(2) <= +inf
- 0 <= AboveAverageScenario_ComputeProfits(SUGAR_BEETS)_SOS2_y(0) <= +inf
- 0 <= AboveAverageScenario_ComputeProfits(SUGAR_BEETS)_SOS2_y(1) <= +inf
- 0 <= AboveAverageScenario_ComputeProfits(SUGAR_BEETS)_SOS2_y(2) <= +inf
- 0 <= AboveAverageScenario_ComputeProfits(WHEAT)_SOS2_y(0) <= +inf
- 0 <= AboveAverageScenario_ComputeProfits(WHEAT)_SOS2_y(1) <= +inf
- 0 <= AboveAverageScenario_ComputeProfits(WHEAT)_SOS2_y(2) <= +inf
-SOS
-BelowAverageScenario_ComputeProfits(CORN)_SOS2_sosconstraint: S2::
-BelowAverageScenario_ComputeProfits(CORN)_SOS2_y(0):1
-BelowAverageScenario_ComputeProfits(CORN)_SOS2_y(1):2
-BelowAverageScenario_ComputeProfits(CORN)_SOS2_y(2):3
-BelowAverageScenario_ComputeProfits(SUGAR_BEETS)_SOS2_sosconstraint: S2::
-BelowAverageScenario_ComputeProfits(SUGAR_BEETS)_SOS2_y(0):1
-BelowAverageScenario_ComputeProfits(SUGAR_BEETS)_SOS2_y(1):2
-BelowAverageScenario_ComputeProfits(SUGAR_BEETS)_SOS2_y(2):3
-BelowAverageScenario_ComputeProfits(WHEAT)_SOS2_sosconstraint: S2::
-BelowAverageScenario_ComputeProfits(WHEAT)_SOS2_y(0):1
-BelowAverageScenario_ComputeProfits(WHEAT)_SOS2_y(1):2
-BelowAverageScenario_ComputeProfits(WHEAT)_SOS2_y(2):3
-AverageScenario_ComputeProfits(CORN)_SOS2_sosconstraint: S2::
-AverageScenario_ComputeProfits(CORN)_SOS2_y(0):1
-AverageScenario_ComputeProfits(CORN)_SOS2_y(1):2
-AverageScenario_ComputeProfits(CORN)_SOS2_y(2):3
-AverageScenario_ComputeProfits(SUGAR_BEETS)_SOS2_sosconstraint: S2::
-AverageScenario_ComputeProfits(SUGAR_BEETS)_SOS2_y(0):1
-AverageScenario_ComputeProfits(SUGAR_BEETS)_SOS2_y(1):2
-AverageScenario_ComputeProfits(SUGAR_BEETS)_SOS2_y(2):3
-AverageScenario_ComputeProfits(WHEAT)_SOS2_sosconstraint: S2::
-AverageScenario_ComputeProfits(WHEAT)_SOS2_y(0):1
-AverageScenario_ComputeProfits(WHEAT)_SOS2_y(1):2
-AverageScenario_ComputeProfits(WHEAT)_SOS2_y(2):3
-AboveAverageScenario_ComputeProfits(CORN)_SOS2_sosconstraint: S2::
-AboveAverageScenario_ComputeProfits(CORN)_SOS2_y(0):1
-AboveAverageScenario_ComputeProfits(CORN)_SOS2_y(1):2
-AboveAverageScenario_ComputeProfits(CORN)_SOS2_y(2):3
-AboveAverageScenario_ComputeProfits(SUGAR_BEETS)_SOS2_sosconstraint: S2::
-AboveAverageScenario_ComputeProfits(SUGAR_BEETS)_SOS2_y(0):1
-AboveAverageScenario_ComputeProfits(SUGAR_BEETS)_SOS2_y(1):2
-AboveAverageScenario_ComputeProfits(SUGAR_BEETS)_SOS2_y(2):3
-AboveAverageScenario_ComputeProfits(WHEAT)_SOS2_sosconstraint: S2::
-AboveAverageScenario_ComputeProfits(WHEAT)_SOS2_y(0):1
-AboveAverageScenario_ComputeProfits(WHEAT)_SOS2_y(1):2
-AboveAverageScenario_ComputeProfits(WHEAT)_SOS2_y(2):3
-end
diff --git a/pyomo/pysp/tests/unit/baselines/farmer_piecewise_ef.baseline.txt b/pyomo/pysp/tests/unit/baselines/farmer_piecewise_ef.baseline.txt
deleted file mode 100644
index 660dd1d83f3..00000000000
--- a/pyomo/pysp/tests/unit/baselines/farmer_piecewise_ef.baseline.txt
+++ /dev/null
@@ -1,175 +0,0 @@
-Importing model and scenario tree files
-Time to import model and scenario tree structure files=0.01 seconds
-Scenario Tree Detail
-----------------------------------------------------
-Tree Nodes:
-
- Name=AboveAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AboveAverageScenario
-
- Name=AverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AverageScenario
-
- Name=BelowAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- BelowAverageScenario
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- AboveAverageNode
- AverageNode
- BelowAverageNode
- Scenarios:
- AboveAverageScenario
- AverageScenario
- BelowAverageScenario
-
-----------------------------------------------------
-Stages:
- Name=FirstStage
- Tree Nodes:
- RootNode
- Variables:
- DevotedAcreage : [*]
- Cost Variable:
- FirstStageCost
-
- Name=SecondStage
- Tree Nodes:
- AboveAverageNode
- AverageNode
- BelowAverageNode
- Variables:
- ComputeProfits : [*]
- Profit : [*]
- QuantityPurchased : [*]
- QuantitySold : [*]
- Cost Variable:
- SecondStageCost
-
-----------------------------------------------------
-Scenarios:
- Name=AboveAverageScenario
- Probability=0.3333
- Leaf node=AboveAverageNode
- Tree node sequence:
- RootNode
- AboveAverageNode
-
- Name=AverageScenario
- Probability=0.3333
- Leaf node=AverageNode
- Tree node sequence:
- RootNode
- AverageNode
-
- Name=BelowAverageScenario
- Probability=0.3333
- Leaf node=BelowAverageNode
- Tree node sequence:
- RootNode
- BelowAverageNode
-
-----------------------------------------------------
-Scenario tree is valid!
-Initializing ScenarioTreeManagerClientSerial with options:
- * verbose: True
- - disable_gc: False
- - profile: 0
- - traceback: False
- - output_scenario_tree_solution: False
- - solution_saver_extension: ()
- - solution_loader_extension: ()
- - solution_writer: ()
- * output_file: /home/jwatson/sp/pyomo/pyomo/pyomo/pysp/tests/unit/test_farmer_piecewise_ef.lp
- - solve: False
- - output_scenario_costs: None
- - output_instance_construction_time: False
- - compile_scenario_instances: False
- - output_times: False
- * model_location: /home/jwatson/sp/pyomo/pyomo/examples/pysp/farmerWpiecewise/models
- - model_directory: None (DEPRECATED)
- * scenario_tree_location: /home/jwatson/sp/pyomo/pyomo/examples/pysp/farmerWpiecewise/nodedata
- - instance_directory: None (DEPRECATED)
- - objective_sense_stage_based: None
- - postinit_callback_location: ()
- - bounds_cfgfile: None (DEPRECATED)
- - aggregategetter_callback_location: ()
- - aggregate_cfgfile: None (DEPRECATED)
- - scenario_tree_random_seed: None
- - scenario_tree_seed: None (DEPRECATED)
- - scenario_tree_downsample_fraction: 1.0
- - scenario_bundle_specification: None
- - create_random_bundles: 0
- - profile_memory: 0
- - cvar_weight: 1.0
- - generate_weighted_cvar: False
- - risk_alpha: 0.95
- - cc_alpha: 0.0
- - cc_indicator_var: None
- - mipgap: None
- - solver: cplex
- - solver_io: None
- - solver_manager: serial
- - solver_options: ()
- - disable_warmstart: False
- - pyro_host: None
- - pyro_port: None
- - pyro_shutdown: False
- - shutdown_pyro: None (DEPRECATED)
- - output_solver_results: False
- * symbolic_solver_labels: True
- - output_solver_log: False
- - keep_solver_files: False
- - pyro_shutdown_workers: False
- - shutdown_pyro_workers: None (DEPRECATED)
- - activate_jsonio_solution_saver: None
-
-Constructing scenario tree instances
-Node-based instance initialization enabled
-Creating instance for scenario=BelowAverageScenario
-Node data for scenario=BelowAverageScenario partially loading from file=/home/jwatson/sp/pyomo/pyomo/examples/pysp/farmerWpiecewise/nodedata/RootNode.dat
-Node data for scenario=BelowAverageScenario partially loading from file=/home/jwatson/sp/pyomo/pyomo/examples/pysp/farmerWpiecewise/nodedata/BelowAverageNode.dat
-Creating instance for scenario=AverageScenario
-Node data for scenario=AverageScenario partially loading from file=/home/jwatson/sp/pyomo/pyomo/examples/pysp/farmerWpiecewise/nodedata/RootNode.dat
-Node data for scenario=AverageScenario partially loading from file=/home/jwatson/sp/pyomo/pyomo/examples/pysp/farmerWpiecewise/nodedata/AverageNode.dat
-Creating instance for scenario=AboveAverageScenario
-Node data for scenario=AboveAverageScenario partially loading from file=/home/jwatson/sp/pyomo/pyomo/examples/pysp/farmerWpiecewise/nodedata/RootNode.dat
-Node data for scenario=AboveAverageScenario partially loading from file=/home/jwatson/sp/pyomo/pyomo/examples/pysp/farmerWpiecewise/nodedata/AboveAverageNode.dat
-Time to construct scenario instances=0.03 seconds
-Linking instances into scenario tree
-Time link scenario tree with instances=0.01 seconds
-ScenarioTreeManagerClientSerial is successfully initialized
-Overall initialization time=0.04 seconds
-
-Initializing extensive form algorithm for stochastic programming problems.
-Creating extensive form instance
-Creating variables for master binding instance
-Time to construct extensive form instance=0.00 seconds
-Starting to write extensive form
-Extensive form written to file=/home/jwatson/sp/pyomo/pyomo/pyomo/pysp/tests/unit/test_farmer_piecewise_ef.lp
-Time to write output file=0.01 seconds
-Closing ScenarioTreeManagerClientSerial
-
-Total EF execution time=0.07 seconds
-
diff --git a/pyomo/pysp/tests/unit/baselines/farmer_quadratic_async_gurobi_with_pyro.baseline b/pyomo/pysp/tests/unit/baselines/farmer_quadratic_async_gurobi_with_pyro.baseline
deleted file mode 100644
index 8e94c9d95da..00000000000
--- a/pyomo/pysp/tests/unit/baselines/farmer_quadratic_async_gurobi_with_pyro.baseline
+++ /dev/null
@@ -1,400 +0,0 @@
-Client attempting to find Pyro dispatcher object...
-Dispatcher Object URI: PYRO://134.253.194.1:35852/86fdc201bde32195ca4b8c8933b43481ec
-Connection to dispatch server established after 1 attempts and 0.00 seconds - this is client: 37099@snotra.sandia.gov
-Initializing PH
-
-Starting PH
-
-Initiating PH iteration=0
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 113494.4444 Max-Min=10416.67
-Converger=Normalized term diff value is 0.2540 - threshold reached=False
-Cumulative run-time=0.18 seconds
-
-Initiating PH iteration=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 113107.2222 Max-Min= 6943.89
-Converger=Normalized term diff value is 0.1259 - threshold reached=False
-Cumulative run-time=0.35 seconds
-
-Initiating PH iteration=2
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 112954.6296 Max-Min= 2234.81
-Converger=Normalized term diff value is 0.0816 - threshold reached=False
-Cumulative run-time=0.52 seconds
-
-Initiating PH iteration=3
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 112963.0247 Max-Min= 2375.31
-Converger=Normalized term diff value is 0.0796 - threshold reached=False
-Cumulative run-time=0.69 seconds
-
-Initiating PH iteration=4
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 112915.6070 Max-Min= 3047.08
-Converger=Normalized term diff value is 0.0776 - threshold reached=False
-Cumulative run-time=0.85 seconds
-
-Initiating PH iteration=5
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 112825.3927 Max-Min= 3339.81
-Converger=Normalized term diff value is 0.0794 - threshold reached=False
-Cumulative run-time=1.02 seconds
-
-Initiating PH iteration=6
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 112317.9503 Max-Min= 2019.60
-Converger=Normalized term diff value is 0.0668 - threshold reached=False
-Cumulative run-time=1.18 seconds
-
-Initiating PH iteration=7
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 111364.4659 Max-Min= 1181.85
-Converger=Normalized term diff value is 0.0542 - threshold reached=False
-Cumulative run-time=1.36 seconds
-
-Initiating PH iteration=8
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 110283.4071 Max-Min= 463.23
-Converger=Normalized term diff value is 0.0360 - threshold reached=False
-Cumulative run-time=1.54 seconds
-
-Initiating PH iteration=9
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 109399.2538 Max-Min= 363.90
-Converger=Normalized term diff value is 0.0243 - threshold reached=False
-Cumulative run-time=1.71 seconds
-
-Initiating PH iteration=10
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108834.1926 Max-Min= 933.90
-Converger=Normalized term diff value is 0.0256 - threshold reached=False
-Cumulative run-time=1.88 seconds
-
-Initiating PH iteration=11
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108575.3215 Max-Min= 918.57
-Converger=Normalized term diff value is 0.0248 - threshold reached=False
-Cumulative run-time=2.05 seconds
-
-Initiating PH iteration=12
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108513.5342 Max-Min= 591.25
-Converger=Normalized term diff value is 0.0163 - threshold reached=False
-Cumulative run-time=2.24 seconds
-
-Initiating PH iteration=13
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108528.2895 Max-Min= 175.95
-Converger=Normalized term diff value is 0.0081 - threshold reached=False
-Cumulative run-time=2.49 seconds
-
-Initiating PH iteration=14
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108561.6573 Max-Min= 274.77
-Converger=Normalized term diff value is 0.0168 - threshold reached=False
-Cumulative run-time=2.74 seconds
-
-Initiating PH iteration=15
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108604.0575 Max-Min= 295.14
-Converger=Normalized term diff value is 0.0163 - threshold reached=False
-Cumulative run-time=2.93 seconds
-
-Initiating PH iteration=16
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108667.3580 Max-Min= 127.67
-Converger=Normalized term diff value is 0.0098 - threshold reached=False
-Cumulative run-time=3.20 seconds
-
-Initiating PH iteration=17
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108758.4236 Max-Min= 59.69
-Converger=Normalized term diff value is 0.0032 - threshold reached=False
-Cumulative run-time=3.46 seconds
-
-Initiating PH iteration=18
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108868.1277 Max-Min= 101.79
-Converger=Normalized term diff value is 0.0026 - threshold reached=False
-Cumulative run-time=3.62 seconds
-
-Initiating PH iteration=19
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108975.3090 Max-Min= 73.41
-Converger=Normalized term diff value is 0.0039 - threshold reached=False
-Cumulative run-time=3.81 seconds
-
-Initiating PH iteration=20
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 109057.4144 Max-Min= 39.47
-Converger=Normalized term diff value is 0.0043 - threshold reached=False
-Cumulative run-time=4.07 seconds
-
-Initiating PH iteration=21
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 109099.7145 Max-Min= 87.57
-Converger=Normalized term diff value is 0.0044 - threshold reached=False
-Cumulative run-time=4.21 seconds
-
-Initiating PH iteration=22
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 109099.1238 Max-Min= 104.22
-Converger=Normalized term diff value is 0.0040 - threshold reached=False
-Cumulative run-time=4.36 seconds
-
-Initiating PH iteration=23
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 109062.8320 Max-Min= 88.54
-Converger=Normalized term diff value is 0.0032 - threshold reached=False
-Cumulative run-time=4.53 seconds
-
-Initiating PH iteration=24
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 109004.1153 Max-Min= 54.49
-Converger=Normalized term diff value is 0.0021 - threshold reached=False
-Cumulative run-time=4.72 seconds
-
-Initiating PH iteration=25
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108937.8036 Max-Min= 16.89
-Converger=Normalized term diff value is 0.0008 - threshold reached=False
-Cumulative run-time=4.91 seconds
-
-Initiating PH iteration=26
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108876.8819 Max-Min= 14.27
-Converger=Normalized term diff value is 0.0005 - threshold reached=False
-Cumulative run-time=5.11 seconds
-
-Initiating PH iteration=27
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108830.6200 Max-Min= 34.81
-Converger=Normalized term diff value is 0.0015 - threshold reached=False
-Cumulative run-time=5.34 seconds
-
-Initiating PH iteration=28
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108803.9654 Max-Min= 44.57
-Converger=Normalized term diff value is 0.0021 - threshold reached=False
-Cumulative run-time=5.48 seconds
-
-Initiating PH iteration=29
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108797.7662 Max-Min= 45.24
-Converger=Normalized term diff value is 0.0023 - threshold reached=False
-Cumulative run-time=5.66 seconds
-
-Initiating PH iteration=30
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108809.4794 Max-Min= 39.01
-Converger=Normalized term diff value is 0.0020 - threshold reached=False
-Cumulative run-time=5.80 seconds
-
-Initiating PH iteration=31
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108834.1640 Max-Min= 28.07
-Converger=Normalized term diff value is 0.0015 - threshold reached=False
-Cumulative run-time=5.95 seconds
-
-Initiating PH iteration=32
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108865.6237 Max-Min= 14.67
-Converger=Normalized term diff value is 0.0008 - threshold reached=False
-Cumulative run-time=6.13 seconds
-
-Initiating PH iteration=33
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108897.5677 Max-Min= 1.06
-Converger=Normalized term diff value is 0.0001 - threshold reached=True
-Cumulative run-time=6.32 seconds
-
-Number of discrete variables fixed before final plugin calls=0 (total=0)
-Number of continuous variables fixed before final plugin calls=0 (total=3)
-PH complete
-
-Convergence history:
-Converger=Normalized term diff
-Iteration Metric Value
- 0 0.2540
- 1 0.1259
- 2 0.0816
- 3 0.0796
- 4 0.0776
- 5 0.0794
- 6 0.0668
- 7 0.0542
- 8 0.0360
- 9 0.0243
- 10 0.0256
- 11 0.0248
- 12 0.0163
- 13 0.0081
- 14 0.0168
- 15 0.0163
- 16 0.0098
- 17 0.0032
- 18 0.0026
- 19 0.0039
- 20 0.0043
- 21 0.0044
- 22 0.0040
- 23 0.0032
- 24 0.0021
- 25 0.0008
- 26 0.0005
- 27 0.0015
- 28 0.0021
- 29 0.0023
- 30 0.0020
- 31 0.0015
- 32 0.0008
- 33 0.0001
-
-
-Final number of discrete variables fixed=0 (total=0)
-Final number of continuous variables fixed=0 (total=3)
-
-Computing objective inner bound at xhat solution
-
-Computed objective upper bound=-108388.7726
-
-X-hat variable values:
-
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 79.9768 79.9768 79.9768
-
- Index: [SUGAR_BEETS] Values: 250.0000 250.0000 250.0000
-
- Index: [WHEAT] Values: 170.0232 170.0232 170.0232
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108898.1474 108898.1474 108898.1474 Max-Min: 0.0000 Avg: 108898.1474
-
-X-hat costs:
-
-Scenario Tree Costs
-----------------------------------------------------
-Tree Nodes:
-
- Name=AboveAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AboveAverageScenario
- Expected cost of (sub)tree rooted at node=-275899.3053
-
- Name=AverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AverageScenario
- Expected cost of (sub)tree rooted at node=-218245.2526
-
- Name=BelowAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-157716.2021
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- AboveAverageNode
- AverageNode
- BelowAverageNode
- Scenarios:
- AboveAverageScenario
- AverageScenario
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-108388.7726
-
-----------------------------------------------------
-Scenarios:
-
- Name=AboveAverageScenario
- Probability=0.3333
- Leaf Node=AboveAverageNode
- Tree node sequence:
- RootNode
- AboveAverageNode
- Stage= FirstStage Cost=108898.1474
- Stage= SecondStage Cost=-275899.3053
- Total scenario cost=-167001.1579
-
- Name=AverageScenario
- Probability=0.3333
- Leaf Node=AverageNode
- Tree node sequence:
- RootNode
- AverageNode
- Stage= FirstStage Cost=108898.1474
- Stage= SecondStage Cost=-218245.2526
- Total scenario cost=-109347.1053
-
- Name=BelowAverageScenario
- Probability=0.3333
- Leaf Node=BelowAverageNode
- Tree node sequence:
- RootNode
- BelowAverageNode
- Stage= FirstStage Cost=108898.1474
- Stage= SecondStage Cost=-157716.2021
- Total scenario cost=-48818.0547
-
-----------------------------------------------------
-
-
-Total PH execution time=6.49 seconds
-
-
-Total execution time=6.56 seconds
diff --git a/pyomo/pysp/tests/unit/baselines/farmer_quadratic_async_ipopt_with_pyro.baseline b/pyomo/pysp/tests/unit/baselines/farmer_quadratic_async_ipopt_with_pyro.baseline
deleted file mode 100644
index 2e69ecd1f8c..00000000000
--- a/pyomo/pysp/tests/unit/baselines/farmer_quadratic_async_ipopt_with_pyro.baseline
+++ /dev/null
@@ -1,400 +0,0 @@
-Client attempting to find Pyro dispatcher object...
-Dispatcher Object URI: PYRO::PyUtilibServer.dispatcher.cf9047d9-2b8e-486c-92cb-d72c474bec4b@localhost:44210
-Connection to dispatch server established after 1 attempts and 0.00 seconds - this is client: 25887@snotra.sandia.gov
-Initializing PH
-
-Starting PH
-
-Initiating PH iteration=0
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 113494.4456 Max-Min=10416.67
-Converger=Normalized term diff value is 0.2540 - threshold reached=False
-Cumulative run-time=0.16 seconds
-
-Initiating PH iteration=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 113107.2231 Max-Min= 6943.89
-Converger=Normalized term diff value is 0.1259 - threshold reached=False
-Cumulative run-time=0.29 seconds
-
-Initiating PH iteration=2
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 112954.6306 Max-Min= 2234.81
-Converger=Normalized term diff value is 0.0816 - threshold reached=False
-Cumulative run-time=0.43 seconds
-
-Initiating PH iteration=3
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 112963.0257 Max-Min= 2375.31
-Converger=Normalized term diff value is 0.0796 - threshold reached=False
-Cumulative run-time=0.57 seconds
-
-Initiating PH iteration=4
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 112915.6080 Max-Min= 3047.08
-Converger=Normalized term diff value is 0.0776 - threshold reached=False
-Cumulative run-time=0.70 seconds
-
-Initiating PH iteration=5
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 112825.3937 Max-Min= 3339.81
-Converger=Normalized term diff value is 0.0794 - threshold reached=False
-Cumulative run-time=0.84 seconds
-
-Initiating PH iteration=6
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 112317.9512 Max-Min= 2019.60
-Converger=Normalized term diff value is 0.0668 - threshold reached=False
-Cumulative run-time=0.98 seconds
-
-Initiating PH iteration=7
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 111364.4668 Max-Min= 1181.85
-Converger=Normalized term diff value is 0.0542 - threshold reached=False
-Cumulative run-time=1.12 seconds
-
-Initiating PH iteration=8
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 110283.4081 Max-Min= 463.23
-Converger=Normalized term diff value is 0.0360 - threshold reached=False
-Cumulative run-time=1.26 seconds
-
-Initiating PH iteration=9
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 109399.2547 Max-Min= 363.90
-Converger=Normalized term diff value is 0.0243 - threshold reached=False
-Cumulative run-time=1.40 seconds
-
-Initiating PH iteration=10
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108834.1934 Max-Min= 933.90
-Converger=Normalized term diff value is 0.0256 - threshold reached=False
-Cumulative run-time=1.54 seconds
-
-Initiating PH iteration=11
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108575.3223 Max-Min= 918.57
-Converger=Normalized term diff value is 0.0248 - threshold reached=False
-Cumulative run-time=1.68 seconds
-
-Initiating PH iteration=12
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108513.5350 Max-Min= 591.25
-Converger=Normalized term diff value is 0.0163 - threshold reached=False
-Cumulative run-time=1.82 seconds
-
-Initiating PH iteration=13
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108528.2903 Max-Min= 175.95
-Converger=Normalized term diff value is 0.0081 - threshold reached=False
-Cumulative run-time=1.93 seconds
-
-Initiating PH iteration=14
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108561.6582 Max-Min= 274.77
-Converger=Normalized term diff value is 0.0168 - threshold reached=False
-Cumulative run-time=2.06 seconds
-
-Initiating PH iteration=15
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108604.0585 Max-Min= 295.14
-Converger=Normalized term diff value is 0.0163 - threshold reached=False
-Cumulative run-time=2.20 seconds
-
-Initiating PH iteration=16
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108667.3591 Max-Min= 127.67
-Converger=Normalized term diff value is 0.0098 - threshold reached=False
-Cumulative run-time=2.33 seconds
-
-Initiating PH iteration=17
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108758.4247 Max-Min= 59.69
-Converger=Normalized term diff value is 0.0032 - threshold reached=False
-Cumulative run-time=2.47 seconds
-
-Initiating PH iteration=18
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108868.1288 Max-Min= 101.79
-Converger=Normalized term diff value is 0.0026 - threshold reached=False
-Cumulative run-time=2.60 seconds
-
-Initiating PH iteration=19
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108975.3101 Max-Min= 73.41
-Converger=Normalized term diff value is 0.0039 - threshold reached=False
-Cumulative run-time=2.74 seconds
-
-Initiating PH iteration=20
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 109057.4155 Max-Min= 39.47
-Converger=Normalized term diff value is 0.0043 - threshold reached=False
-Cumulative run-time=2.88 seconds
-
-Initiating PH iteration=21
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 109099.7155 Max-Min= 87.57
-Converger=Normalized term diff value is 0.0044 - threshold reached=False
-Cumulative run-time=3.03 seconds
-
-Initiating PH iteration=22
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 109099.1248 Max-Min= 104.22
-Converger=Normalized term diff value is 0.0040 - threshold reached=False
-Cumulative run-time=3.16 seconds
-
-Initiating PH iteration=23
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 109062.8329 Max-Min= 88.54
-Converger=Normalized term diff value is 0.0032 - threshold reached=False
-Cumulative run-time=3.30 seconds
-
-Initiating PH iteration=24
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 109004.1163 Max-Min= 54.49
-Converger=Normalized term diff value is 0.0021 - threshold reached=False
-Cumulative run-time=3.44 seconds
-
-Initiating PH iteration=25
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108937.8045 Max-Min= 16.89
-Converger=Normalized term diff value is 0.0008 - threshold reached=False
-Cumulative run-time=3.58 seconds
-
-Initiating PH iteration=26
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108876.8828 Max-Min= 14.27
-Converger=Normalized term diff value is 0.0005 - threshold reached=False
-Cumulative run-time=3.71 seconds
-
-Initiating PH iteration=27
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108830.6209 Max-Min= 34.81
-Converger=Normalized term diff value is 0.0015 - threshold reached=False
-Cumulative run-time=3.85 seconds
-
-Initiating PH iteration=28
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108803.9663 Max-Min= 44.57
-Converger=Normalized term diff value is 0.0021 - threshold reached=False
-Cumulative run-time=4.00 seconds
-
-Initiating PH iteration=29
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108797.7671 Max-Min= 45.24
-Converger=Normalized term diff value is 0.0023 - threshold reached=False
-Cumulative run-time=4.13 seconds
-
-Initiating PH iteration=30
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108809.4804 Max-Min= 39.01
-Converger=Normalized term diff value is 0.0020 - threshold reached=False
-Cumulative run-time=4.26 seconds
-
-Initiating PH iteration=31
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108834.1650 Max-Min= 28.07
-Converger=Normalized term diff value is 0.0015 - threshold reached=False
-Cumulative run-time=4.40 seconds
-
-Initiating PH iteration=32
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108865.6247 Max-Min= 14.67
-Converger=Normalized term diff value is 0.0008 - threshold reached=False
-Cumulative run-time=4.53 seconds
-
-Initiating PH iteration=33
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108897.5687 Max-Min= 1.06
-Converger=Normalized term diff value is 0.0001 - threshold reached=True
-Cumulative run-time=4.66 seconds
-
-Number of discrete variables fixed before final plugin calls=0 (total=0)
-Number of continuous variables fixed before final plugin calls=0 (total=3)
-PH complete
-
-Convergence history:
-Converger=Normalized term diff
-Iteration Metric Value
- 0 0.2540
- 1 0.1259
- 2 0.0816
- 3 0.0796
- 4 0.0776
- 5 0.0794
- 6 0.0668
- 7 0.0542
- 8 0.0360
- 9 0.0243
- 10 0.0256
- 11 0.0248
- 12 0.0163
- 13 0.0081
- 14 0.0168
- 15 0.0163
- 16 0.0098
- 17 0.0032
- 18 0.0026
- 19 0.0039
- 20 0.0043
- 21 0.0044
- 22 0.0040
- 23 0.0032
- 24 0.0021
- 25 0.0008
- 26 0.0005
- 27 0.0015
- 28 0.0021
- 29 0.0023
- 30 0.0020
- 31 0.0015
- 32 0.0008
- 33 0.0001
-
-
-Final number of discrete variables fixed=0 (total=0)
-Final number of continuous variables fixed=0 (total=3)
-
-Computing objective inner bound at xhat solution
-
-Computed objective upper bound=-108388.7752
-
-X-hat variable values:
-
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 79.9768 79.9768 79.9768
-
- Index: [SUGAR_BEETS] Values: 250.0000 250.0000 250.0000
-
- Index: [WHEAT] Values: 170.0232 170.0232 170.0232
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108898.1484 108898.1484 108898.1484 Max-Min: 0.0000 Avg: 108898.1484
-
-X-hat costs:
-
-Scenario Tree Costs
-----------------------------------------------------
-Tree Nodes:
-
- Name=AboveAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AboveAverageScenario
- Expected cost of (sub)tree rooted at node=-275899.3094
-
- Name=AverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AverageScenario
- Expected cost of (sub)tree rooted at node=-218245.2563
-
- Name=BelowAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-157716.2052
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- AboveAverageNode
- AverageNode
- BelowAverageNode
- Scenarios:
- AboveAverageScenario
- AverageScenario
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-108388.7752
-
-----------------------------------------------------
-Scenarios:
-
- Name=AboveAverageScenario
- Probability=0.3333
- Leaf Node=AboveAverageNode
- Tree node sequence:
- RootNode
- AboveAverageNode
- Stage= FirstStage Cost=108898.1484
- Stage= SecondStage Cost=-275899.3094
- Total scenario cost=-167001.1610
-
- Name=AverageScenario
- Probability=0.3333
- Leaf Node=AverageNode
- Tree node sequence:
- RootNode
- AverageNode
- Stage= FirstStage Cost=108898.1484
- Stage= SecondStage Cost=-218245.2563
- Total scenario cost=-109347.1079
-
- Name=BelowAverageScenario
- Probability=0.3333
- Leaf Node=BelowAverageNode
- Tree node sequence:
- RootNode
- BelowAverageNode
- Stage= FirstStage Cost=108898.1484
- Stage= SecondStage Cost=-157716.2052
- Total scenario cost=-48818.0568
-
-----------------------------------------------------
-
-
-Total PH execution time=4.79 seconds
-
-
-Total execution time=4.87 seconds
diff --git a/pyomo/pysp/tests/unit/baselines/farmer_quadratic_basic_bundling_cplex.baseline b/pyomo/pysp/tests/unit/baselines/farmer_quadratic_basic_bundling_cplex.baseline
deleted file mode 100644
index 9d879bf831b..00000000000
--- a/pyomo/pysp/tests/unit/baselines/farmer_quadratic_basic_bundling_cplex.baseline
+++ /dev/null
@@ -1,1103 +0,0 @@
-Importing model and scenario tree files
-Time to import model and scenario tree structure files=0.02 seconds
-Scenario Tree Detail
-----------------------------------------------------
-Tree Nodes:
-
- Name=AboveAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AboveAverageScenario
-
- Name=AverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AverageScenario
-
- Name=BelowAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- BelowAverageScenario
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- AboveAverageNode
- AverageNode
- BelowAverageNode
- Scenarios:
- AboveAverageScenario
- AverageScenario
- BelowAverageScenario
-
-----------------------------------------------------
-Stages:
- Name=FirstStage
- Tree Nodes:
- RootNode
- Variables:
- DevotedAcreage : [*]
- Cost Variable:
- FirstStageCost
-
- Name=SecondStage
- Tree Nodes:
- AboveAverageNode
- AverageNode
- BelowAverageNode
- Variables:
- QuantityPurchased : [*]
- QuantitySubQuotaSold : [*]
- QuantitySuperQuotaSold : [*]
- Cost Variable:
- SecondStageCost
-
-----------------------------------------------------
-Scenarios:
- Name=AboveAverageScenario
- Probability=0.3333
- Leaf node=AboveAverageNode
- Tree node sequence:
- RootNode
- AboveAverageNode
-
- Name=AverageScenario
- Probability=0.3333
- Leaf node=AverageNode
- Tree node sequence:
- RootNode
- AverageNode
-
- Name=BelowAverageScenario
- Probability=0.3333
- Leaf node=BelowAverageNode
- Tree node sequence:
- RootNode
- BelowAverageNode
-
-----------------------------------------------------
-Scenario Bundles:
- Name=BelowAverageBundle
- Probability=0.3333
- Scenarios: BelowAverageScenario
-
- Name=OtherBundle
- Probability=0.6667
- Scenarios: AboveAverageScenario AverageScenario
-
-----------------------------------------------------
-Scenario tree is valid!
-Scenario-based instance initialization enabled
-Creating instance for scenario=BelowAverageScenario
-Data for scenario=BelowAverageScenario loads from file=/home/hudson/slave/workspace/Pyomo_trunk_python3.4_snotra_expensive/src/pyomo/examples/pysp/farmer/scenariodataWithTwoBundles/BelowAverageScenario.dat
-Creating instance for scenario=AverageScenario
-Data for scenario=AverageScenario loads from file=/home/hudson/slave/workspace/Pyomo_trunk_python3.4_snotra_expensive/src/pyomo/examples/pysp/farmer/scenariodataWithTwoBundles/AverageScenario.dat
-Creating instance for scenario=AboveAverageScenario
-Data for scenario=AboveAverageScenario loads from file=/home/hudson/slave/workspace/Pyomo_trunk_python3.4_snotra_expensive/src/pyomo/examples/pysp/farmer/scenariodataWithTwoBundles/AboveAverageScenario.dat
-Time to construct scenario instances=0.06 seconds
-Time link scenario tree with instances=0.00 seconds
-Constructing solver manager of type=serial
-Constructing solver type=cplex
-PH solver configuration:
- Max iterations=100
- Async mode=False
- Async buffer length=1
- Default global rho=1.0
- Over-relaxation enabled=False
- Sub-problem solver type='cplex'
- Keep solver files? False
- Output solver results? False
- Output solver log? False
- Output times? False
-Initializing PH
-
-Invoking pre-initialization PH plugins
-Creating weight, average, and rho parameter vectors for scenario instances
-Creating deterministic SymbolMaps for scenario instances
-Forming binding instances for all scenario bundles
-Creating binding instance for scenario bundle=BelowAverageBundle
-Creating variables for master binding instance
-Creating binding instance for scenario bundle=OtherBundle
-Creating variables for master binding instance
-PH successfully created model instances for all scenarios
-PH is successfully initialized
-Invoking post-initialization PH plugins
-Starting PH
-
-Initiating PH iteration=0
-------------------------------------------------
-Starting PH iteration 0 solves
-Queuing solve for scenario bundle=BelowAverageBundle
-Queuing solve for scenario bundle=OtherBundle
-Waiting for bundle sub-problem solves
-Results obtained for bundle=BelowAverageBundle
-Successfully loaded solution for bundle=BelowAverageBundle
-Results obtained for bundle=OtherBundle
-Successfully loaded solution for bundle=OtherBundle
-Successfully completed PH iteration 0 solves
-- solution statistics:
-
- Scenario Bundle Cost Objective Objective Gap Solution Status
- BelowAverageBundle -59950.0000 -59950.0000 0.0000 optimal
- OtherBundle -138174.9996 -138174.9996 0.0000 optimal
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario -59950.0000 -59950.0000 None Reported None Reported
- AverageScenario -109350.0000 -109350.0000 None Reported None Reported
- AboveAverageScenario -167000.0000 -167000.0000 None Reported None Reported
-
-Total number of non-stale discrete instance variables=0
-Total number of non-stale continuous instance variables=3
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 25.0000 80.0000 80.0000 Max-Min: 55.0000 Avg: 61.6667
-
- Index: [SUGAR_BEETS] Values: 375.0000 250.0000 250.0000 Max-Min: 125.0000 Avg: 291.6667
-
- Index: [WHEAT] Values: 100.0000 170.0000 170.0000 Max-Min: 70.0000 Avg: 146.6667
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 118250.0000 108900.0000 108900.0000 Max-Min: 9350.0000 Avg: 112016.6666
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 112016.6667 Max-Min= 9350.00
-Converger=Normalized term diff value is 0.2663 - threshold reached=False
-Cumulative run-time=0.09 seconds
-
-Initiating PH iteration=1
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: -36.6667 18.3333 18.3333 Average: 61.6667
- Index: [SUGAR_BEETS] Weights: 83.3333 -41.6667 -41.6667 Average: 291.6667
- Index: [WHEAT] Weights: -46.6667 23.3333 23.3333 Average: 146.6667
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 118250.0000 108900.0000 108900.0000 Max-Min: 9350.0000 Avg: 112016.6666
-------------------------------------------------
-Starting PH iteration 1 solves
-Queuing solve for scenario bundle=BelowAverageBundle
-Queuing solve for scenario bundle=OtherBundle
-Waiting for bundle sub-problem solves
-Results obtained for bundle=BelowAverageBundle
-Successfully loaded solution for bundle=BelowAverageBundle
-Results obtained for bundle=OtherBundle
-Successfully loaded solution for bundle=OtherBundle
-Successfully completed PH iteration 1 solves
-- solution statistics:
-
- Scenario Bundle Cost Objective Objective Gap Solution Status
- BelowAverageBundle -53082.9995 -39145.2496 0.0000 optimal
- OtherBundle -136590.6245 -142114.0621 0.0000 optimal
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario -53082.9995 -39145.2496 None Reported None Reported
- AverageScenario -112356.2502 -117879.6878 None Reported None Reported
- AboveAverageScenario -160824.9994 -166348.4370 None Reported None Reported
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 100.0000 80.0000 80.0000 Max-Min: 20.0000 Avg: 86.6667
-
- Index: [SUGAR_BEETS] Values: 270.5000 266.2500 266.2500 Max-Min: 4.2500 Avg: 267.6667
-
- Index: [WHEAT] Values: 129.5000 153.7500 153.7500 Max-Min: 24.2500 Avg: 145.6667
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 112754.9998 110687.5002 110687.5002 Max-Min: 2067.4996 Avg: 111376.6667
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 111376.6667 Max-Min= 2067.50
-Converger=Normalized term diff value is 0.0612 - threshold reached=False
-Cumulative run-time=0.19 seconds
-
-Initiating PH iteration=2
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: -23.3333 11.6667 11.6667 Average: 86.6667
- Index: [SUGAR_BEETS] Weights: 86.1667 -43.0833 -43.0833 Average: 267.6667
- Index: [WHEAT] Weights: -62.8333 31.4167 31.4167 Average: 145.6667
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 112754.9998 110687.5002 110687.5002 Max-Min: 2067.4996 Avg: 111376.6667
-------------------------------------------------
-Starting PH iteration 2 solves
-Queuing solve for scenario bundle=BelowAverageBundle
-Queuing solve for scenario bundle=OtherBundle
-Waiting for bundle sub-problem solves
-Results obtained for bundle=BelowAverageBundle
-Successfully loaded solution for bundle=BelowAverageBundle
-Results obtained for bundle=OtherBundle
-Successfully loaded solution for bundle=OtherBundle
-Successfully completed PH iteration 2 solves
-- solution statistics:
-
- Scenario Bundle Cost Objective Objective Gap Solution Status
- BelowAverageBundle -50436.9999 -40462.5830 0.0000 optimal
- OtherBundle -137248.7489 -142287.5824 0.0000 optimal
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario -50436.9999 -40462.5830 None Reported None Reported
- AverageScenario -111107.4996 -116146.3330 None Reported None Reported
- AboveAverageScenario -163389.9991 -168428.8325 None Reported None Reported
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 100.0000 80.0000 80.0000 Max-Min: 20.0000 Avg: 86.6667
-
- Index: [SUGAR_BEETS] Values: 249.5000 259.5000 259.5000 Max-Min: 10.0000 Avg: 256.1667
-
- Index: [WHEAT] Values: 150.5000 160.5000 160.5000 Max-Min: 10.0000 Avg: 157.1667
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 110445.0001 109945.0002 109945.0002 Max-Min: 499.9999 Avg: 110111.6669
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 110111.6669 Max-Min= 500.00
-Converger=Normalized term diff value is 0.0494 - threshold reached=False
-Cumulative run-time=0.29 seconds
-
-Initiating PH iteration=3
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: -10.0000 5.0000 5.0000 Average: 86.6667
- Index: [SUGAR_BEETS] Weights: 79.5000 -39.7500 -39.7500 Average: 256.1667
- Index: [WHEAT] Weights: -69.5000 34.7500 34.7500 Average: 157.1667
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 110445.0001 109945.0002 109945.0002 Max-Min: 499.9999 Avg: 110111.6669
-------------------------------------------------
-Starting PH iteration 3 solves
-Queuing solve for scenario bundle=BelowAverageBundle
-Queuing solve for scenario bundle=OtherBundle
-Waiting for bundle sub-problem solves
-Results obtained for bundle=BelowAverageBundle
-Successfully loaded solution for bundle=BelowAverageBundle
-Results obtained for bundle=OtherBundle
-Successfully loaded solution for bundle=OtherBundle
-Successfully completed PH iteration 3 solves
-- solution statistics:
-
- Scenario Bundle Cost Objective Objective Gap Solution Status
- BelowAverageBundle -48988.0004 -42060.4165 0.0000 optimal
- OtherBundle -138174.9992 -141681.4161 0.0000 optimal
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario -48988.0004 -42060.4165 None Reported None Reported
- AverageScenario -109350.0001 -112856.4170 None Reported None Reported
- AboveAverageScenario -166999.9991 -170506.4160 None Reported None Reported
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 100.0000 80.0000 80.0000 Max-Min: 20.0000 Avg: 86.6667
-
- Index: [SUGAR_BEETS] Values: 238.0000 250.0000 250.0000 Max-Min: 12.0000 Avg: 246.0000
-
- Index: [WHEAT] Values: 162.0000 170.0000 170.0000 Max-Min: 8.0000 Avg: 167.3333
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 109180.0004 108900.0004 108900.0004 Max-Min: 280.0000 Avg: 108993.3337
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108993.3337 Max-Min= 280.00
-Converger=Normalized term diff value is 0.0485 - threshold reached=False
-Cumulative run-time=0.39 seconds
-
-Initiating PH iteration=4
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: 3.3333 -1.6667 -1.6667 Average: 86.6667
- Index: [SUGAR_BEETS] Weights: 71.5000 -35.7500 -35.7500 Average: 246.0000
- Index: [WHEAT] Weights: -74.8333 37.4167 37.4167 Average: 167.3333
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 109180.0004 108900.0004 108900.0004 Max-Min: 280.0000 Avg: 108993.3337
-------------------------------------------------
-Starting PH iteration 4 solves
-Queuing solve for scenario bundle=BelowAverageBundle
-Queuing solve for scenario bundle=OtherBundle
-Waiting for bundle sub-problem solves
-Results obtained for bundle=BelowAverageBundle
-Successfully loaded solution for bundle=BelowAverageBundle
-Results obtained for bundle=OtherBundle
-Successfully loaded solution for bundle=OtherBundle
-Successfully completed PH iteration 4 solves
-- solution statistics:
-
- Scenario Bundle Cost Objective Objective Gap Solution Status
- BelowAverageBundle -47819.0001 -43708.9159 0.0000 optimal
- OtherBundle -138174.9995 -140851.2219 0.0000 optimal
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario -47819.0001 -43708.9159 None Reported None Reported
- AverageScenario -109350.0000 -112026.2224 None Reported None Reported
- AboveAverageScenario -166999.9999 -169676.2223 None Reported None Reported
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 97.3333 80.0000 80.0000 Max-Min: 17.3333 Avg: 85.7778
-
- Index: [SUGAR_BEETS] Values: 230.5000 250.0000 250.0000 Max-Min: 19.5000 Avg: 243.5000
-
- Index: [WHEAT] Values: 172.1667 170.0000 170.0000 Max-Min: 2.1667 Avg: 170.7222
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108141.6670 108900.0001 108900.0001 Max-Min: 758.3330 Avg: 108647.2224
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108647.2224 Max-Min= 758.33
-Converger=Normalized term diff value is 0.0437 - threshold reached=False
-Cumulative run-time=0.50 seconds
-
-Initiating PH iteration=5
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: 14.8889 -7.4444 -7.4444 Average: 85.7778
- Index: [SUGAR_BEETS] Weights: 58.5000 -29.2500 -29.2500 Average: 243.5000
- Index: [WHEAT] Weights: -73.3889 36.6944 36.6944 Average: 170.7222
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108141.6670 108900.0001 108900.0001 Max-Min: 758.3330 Avg: 108647.2224
-------------------------------------------------
-Starting PH iteration 5 solves
-Queuing solve for scenario bundle=BelowAverageBundle
-Queuing solve for scenario bundle=OtherBundle
-Waiting for bundle sub-problem solves
-Results obtained for bundle=BelowAverageBundle
-Successfully loaded solution for bundle=BelowAverageBundle
-Results obtained for bundle=OtherBundle
-Successfully loaded solution for bundle=OtherBundle
-Successfully completed PH iteration 5 solves
-- solution statistics:
-
- Scenario Bundle Cost Objective Objective Gap Solution Status
- BelowAverageBundle -48096.6665 -45502.8229 0.0000 optimal
- OtherBundle -138174.9994 -139806.9228 0.0000 optimal
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario -48096.6665 -45502.8229 None Reported None Reported
- AverageScenario -109349.9999 -110981.9233 None Reported None Reported
- AboveAverageScenario -166999.9998 -168631.9232 None Reported None Reported
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 84.8889 80.0000 80.0000 Max-Min: 4.8889 Avg: 81.6296
-
- Index: [SUGAR_BEETS] Values: 241.0000 250.0000 250.0000 Max-Min: 9.0000 Avg: 247.0000
-
- Index: [WHEAT] Values: 174.1111 170.0000 170.0000 Max-Min: 4.1111 Avg: 171.3704
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108301.1112 108900.0001 108900.0001 Max-Min: 598.8889 Avg: 108700.3705
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108700.3705 Max-Min= 598.89
-Converger=Normalized term diff value is 0.0178 - threshold reached=False
-Cumulative run-time=0.61 seconds
-
-Initiating PH iteration=6
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: 18.1481 -9.0741 -9.0741 Average: 81.6296
- Index: [SUGAR_BEETS] Weights: 52.5000 -26.2500 -26.2500 Average: 247.0000
- Index: [WHEAT] Weights: -70.6481 35.3241 35.3241 Average: 171.3704
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108301.1112 108900.0001 108900.0001 Max-Min: 598.8889 Avg: 108700.3705
-------------------------------------------------
-Starting PH iteration 6 solves
-Queuing solve for scenario bundle=BelowAverageBundle
-Queuing solve for scenario bundle=OtherBundle
-Waiting for bundle sub-problem solves
-Results obtained for bundle=BelowAverageBundle
-Successfully loaded solution for bundle=BelowAverageBundle
-Results obtained for bundle=OtherBundle
-Successfully loaded solution for bundle=OtherBundle
-Successfully completed PH iteration 6 solves
-- solution statistics:
-
- Scenario Bundle Cost Objective Objective Gap Solution Status
- BelowAverageBundle -48671.4444 -46251.8994 0.0000 optimal
- OtherBundle -138174.9989 -139451.5659 0.0000 optimal
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario -48671.4444 -46251.8994 None Reported None Reported
- AverageScenario -109349.9995 -110626.5666 None Reported None Reported
- AboveAverageScenario -166999.9991 -168276.5662 None Reported None Reported
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 77.4815 80.0000 80.0000 Max-Min: 2.5185 Avg: 79.1605
-
- Index: [SUGAR_BEETS] Values: 250.5000 250.0000 250.0000 Max-Min: 0.5000 Avg: 250.1667
-
- Index: [WHEAT] Values: 172.0185 170.0000 170.0000 Max-Min: 2.0185 Avg: 170.6728
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108753.5186 108900.0003 108900.0003 Max-Min: 146.4817 Avg: 108851.1731
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108851.1731 Max-Min= 146.48
-Converger=Normalized term diff value is 0.0068 - threshold reached=False
-Cumulative run-time=0.72 seconds
-
-Initiating PH iteration=7
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: 16.4691 -8.2346 -8.2346 Average: 79.1605
- Index: [SUGAR_BEETS] Weights: 52.8333 -26.4167 -26.4167 Average: 250.1667
- Index: [WHEAT] Weights: -69.3025 34.6512 34.6512 Average: 170.6728
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108753.5186 108900.0003 108900.0003 Max-Min: 146.4817 Avg: 108851.1731
-------------------------------------------------
-Starting PH iteration 7 solves
-Queuing solve for scenario bundle=BelowAverageBundle
-Queuing solve for scenario bundle=OtherBundle
-Waiting for bundle sub-problem solves
-Results obtained for bundle=BelowAverageBundle
-Successfully loaded solution for bundle=BelowAverageBundle
-Results obtained for bundle=OtherBundle
-Successfully loaded solution for bundle=OtherBundle
-Successfully completed PH iteration 7 solves
-- solution statistics:
-
- Scenario Bundle Cost Objective Objective Gap Solution Status
- BelowAverageBundle -48962.0744 -46085.9920 0.0000 optimal
- OtherBundle -138174.9993 -139546.6290 0.0000 optimal
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario -48962.0744 -46085.9920 None Reported None Reported
- AverageScenario -109349.9998 -110721.6296 None Reported None Reported
- AboveAverageScenario -166999.9996 -168371.6294 None Reported None Reported
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 76.6914 80.0000 80.0000 Max-Min: 3.3086 Avg: 78.8971
-
- Index: [SUGAR_BEETS] Values: 253.3333 250.0000 250.0000 Max-Min: 3.3333 Avg: 251.1111
-
- Index: [WHEAT] Values: 169.9753 170.0000 170.0000 Max-Min: 0.0247 Avg: 169.9918
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 109001.9757 108900.0001 108900.0001 Max-Min: 101.9756 Avg: 108933.9920
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108933.9920 Max-Min= 101.98
-Converger=Normalized term diff value is 0.0082 - threshold reached=False
-Cumulative run-time=0.82 seconds
-
-Initiating PH iteration=8
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: 14.2634 -7.1317 -7.1317 Average: 78.8971
- Index: [SUGAR_BEETS] Weights: 55.0556 -27.5278 -27.5278 Average: 251.1111
- Index: [WHEAT] Weights: -69.3189 34.6595 34.6595 Average: 169.9918
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 109001.9757 108900.0001 108900.0001 Max-Min: 101.9756 Avg: 108933.9920
-------------------------------------------------
-Starting PH iteration 8 solves
-Queuing solve for scenario bundle=BelowAverageBundle
-Queuing solve for scenario bundle=OtherBundle
-Waiting for bundle sub-problem solves
-Results obtained for bundle=BelowAverageBundle
-Successfully loaded solution for bundle=BelowAverageBundle
-Results obtained for bundle=OtherBundle
-Successfully loaded solution for bundle=OtherBundle
-Successfully completed PH iteration 8 solves
-- solution statistics:
-
- Scenario Bundle Cost Objective Objective Gap Solution Status
- BelowAverageBundle -48964.2346 -45701.3173 0.0000 optimal
- OtherBundle -138174.9993 -139734.1441 0.0000 optimal
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario -48964.2346 -45701.3173 None Reported None Reported
- AverageScenario -109349.9998 -110909.1447 None Reported None Reported
- AboveAverageScenario -166999.9996 -168559.1444 None Reported None Reported
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 78.6337 80.0000 80.0000 Max-Min: 1.3663 Avg: 79.5446
-
- Index: [SUGAR_BEETS] Values: 252.0556 250.0000 250.0000 Max-Min: 2.0556 Avg: 250.6852
-
- Index: [WHEAT] Values: 169.3107 170.0000 170.0000 Max-Min: 0.6893 Avg: 169.7702
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 109016.8109 108900.0001 108900.0001 Max-Min: 116.8108 Avg: 108938.9370
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108938.9370 Max-Min= 116.81
-Converger=Normalized term diff value is 0.0044 - threshold reached=False
-Cumulative run-time=0.93 seconds
-
-Initiating PH iteration=9
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: 13.3525 -6.6763 -6.6763 Average: 79.5446
- Index: [SUGAR_BEETS] Weights: 56.4259 -28.2130 -28.2130 Average: 250.6852
- Index: [WHEAT] Weights: -69.7785 34.8892 34.8892 Average: 169.7702
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 109016.8109 108900.0001 108900.0001 Max-Min: 116.8108 Avg: 108938.9370
-------------------------------------------------
-Starting PH iteration 9 solves
-Queuing solve for scenario bundle=BelowAverageBundle
-Queuing solve for scenario bundle=OtherBundle
-Waiting for bundle sub-problem solves
-Results obtained for bundle=BelowAverageBundle
-Successfully loaded solution for bundle=BelowAverageBundle
-Results obtained for bundle=OtherBundle
-Successfully loaded solution for bundle=OtherBundle
-Successfully completed PH iteration 9 solves
-- solution statistics:
-
- Scenario Bundle Cost Objective Objective Gap Solution Status
- BelowAverageBundle -48868.7982 -45507.4434 0.0000 optimal
- OtherBundle -138174.9993 -139830.8072 0.0000 optimal
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario -48868.7982 -45507.4434 None Reported None Reported
- AverageScenario -109349.9998 -111005.8078 None Reported None Reported
- AboveAverageScenario -166999.9996 -168655.8075 None Reported None Reported
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 80.1920 80.0000 80.0000 Max-Min: 0.1920 Avg: 80.0640
-
- Index: [SUGAR_BEETS] Values: 250.2593 250.0000 250.0000 Max-Min: 0.2593 Avg: 250.0864
-
- Index: [WHEAT] Values: 169.5487 170.0000 170.0000 Max-Min: 0.4513 Avg: 169.8496
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108943.8820 108900.0001 108900.0001 Max-Min: 43.8819 Avg: 108914.6274
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108914.6274 Max-Min= 43.88
-Converger=Normalized term diff value is 0.0009 - threshold reached=False
-Cumulative run-time=1.05 seconds
-
-Initiating PH iteration=10
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: 13.4806 -6.7403 -6.7403 Average: 80.0640
- Index: [SUGAR_BEETS] Weights: 56.5988 -28.2994 -28.2994 Average: 250.0864
- Index: [WHEAT] Weights: -70.0793 35.0397 35.0397 Average: 169.8496
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108943.8820 108900.0001 108900.0001 Max-Min: 43.8819 Avg: 108914.6274
-------------------------------------------------
-Starting PH iteration 10 solves
-Queuing solve for scenario bundle=BelowAverageBundle
-Queuing solve for scenario bundle=OtherBundle
-Waiting for bundle sub-problem solves
-Results obtained for bundle=BelowAverageBundle
-Successfully loaded solution for bundle=BelowAverageBundle
-Results obtained for bundle=OtherBundle
-Successfully loaded solution for bundle=OtherBundle
-Successfully completed PH iteration 10 solves
-- solution statistics:
-
- Scenario Bundle Cost Objective Objective Gap Solution Status
- BelowAverageBundle -48804.4539 -45505.6365 0.0000 optimal
- OtherBundle -138174.9992 -139832.3073 0.0000 optimal
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario -48804.4539 -45505.6365 None Reported None Reported
- AverageScenario -109349.9998 -111007.3078 None Reported None Reported
- AboveAverageScenario -166999.9995 -168657.3075 None Reported None Reported
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 80.5834 80.0000 80.0000 Max-Min: 0.5834 Avg: 80.1945
-
- Index: [SUGAR_BEETS] Values: 249.4877 250.0000 250.0000 Max-Min: 0.5123 Avg: 249.8292
-
- Index: [WHEAT] Values: 169.9289 170.0000 170.0000 Max-Min: 0.0711 Avg: 169.9763
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108890.3178 108900.0001 108900.0001 Max-Min: 9.6823 Avg: 108896.7727
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108896.7727 Max-Min= 9.68
-Converger=Normalized term diff value is 0.0014 - threshold reached=False
-Cumulative run-time=1.17 seconds
-
-Initiating PH iteration=11
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: 13.8695 -6.9348 -6.9348 Average: 80.1945
- Index: [SUGAR_BEETS] Weights: 56.2572 -28.1286 -28.1286 Average: 249.8292
- Index: [WHEAT] Weights: -70.1267 35.0634 35.0634 Average: 169.9763
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108890.3178 108900.0001 108900.0001 Max-Min: 9.6823 Avg: 108896.7727
-------------------------------------------------
-Starting PH iteration 11 solves
-Queuing solve for scenario bundle=BelowAverageBundle
-Queuing solve for scenario bundle=OtherBundle
-Waiting for bundle sub-problem solves
-Results obtained for bundle=BelowAverageBundle
-Successfully loaded solution for bundle=BelowAverageBundle
-Results obtained for bundle=OtherBundle
-Successfully loaded solution for bundle=OtherBundle
-Successfully completed PH iteration 11 solves
-- solution statistics:
-
- Scenario Bundle Cost Objective Objective Gap Solution Status
- BelowAverageBundle -48793.3699 -45567.7974 0.0000 optimal
- OtherBundle -138174.9992 -139801.1247 0.0000 optimal
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario -48793.3699 -45567.7974 None Reported None Reported
- AverageScenario -109349.9998 -110976.1252 None Reported None Reported
- AboveAverageScenario -166999.9995 -168626.1249 None Reported None Reported
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 80.3250 80.0000 80.0000 Max-Min: 0.3250 Avg: 80.1083
-
- Index: [SUGAR_BEETS] Values: 249.5720 250.0000 250.0000 Max-Min: 0.4280 Avg: 249.8573
-
- Index: [WHEAT] Values: 170.1030 170.0000 170.0000 Max-Min: 0.1030 Avg: 170.0343
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108878.9180 108900.0002 108900.0002 Max-Min: 21.0822 Avg: 108892.9728
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108892.9728 Max-Min= 21.08
-Converger=Normalized term diff value is 0.0009 - threshold reached=False
-Cumulative run-time=1.29 seconds
-
-Initiating PH iteration=12
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: 14.0862 -7.0431 -7.0431 Average: 80.1083
- Index: [SUGAR_BEETS] Weights: 55.9719 -27.9859 -27.9859 Average: 249.8573
- Index: [WHEAT] Weights: -70.0580 35.0290 35.0290 Average: 170.0343
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108878.9180 108900.0002 108900.0002 Max-Min: 21.0822 Avg: 108892.9728
-------------------------------------------------
-Starting PH iteration 12 solves
-Queuing solve for scenario bundle=BelowAverageBundle
-Queuing solve for scenario bundle=OtherBundle
-Waiting for bundle sub-problem solves
-Results obtained for bundle=BelowAverageBundle
-Successfully loaded solution for bundle=BelowAverageBundle
-Results obtained for bundle=OtherBundle
-Successfully loaded solution for bundle=OtherBundle
-Successfully completed PH iteration 12 solves
-- solution statistics:
-
- Scenario Bundle Cost Objective Objective Gap Solution Status
- BelowAverageBundle -48807.4286 -45609.9987 0.0000 optimal
- OtherBundle -138174.9992 -139779.9804 0.0000 optimal
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario -48807.4286 -45609.9987 None Reported None Reported
- AverageScenario -109349.9998 -110954.9810 None Reported None Reported
- AboveAverageScenario -166999.9995 -168604.9807 None Reported None Reported
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 80.0222 80.0000 80.0000 Max-Min: 0.0222 Avg: 80.0074
-
- Index: [SUGAR_BEETS] Values: 249.8855 250.0000 250.0000 Max-Min: 0.1145 Avg: 249.9618
-
- Index: [WHEAT] Values: 170.0924 170.0000 170.0000 Max-Min: 0.0924 Avg: 170.0308
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108889.1728 108900.0001 108900.0001 Max-Min: 10.8273 Avg: 108896.3910
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108896.3910 Max-Min= 10.83
-Converger=Normalized term diff value is 0.0002 - threshold reached=False
-Cumulative run-time=1.40 seconds
-
-Initiating PH iteration=13
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: 14.1009 -7.0505 -7.0505 Average: 80.0074
- Index: [SUGAR_BEETS] Weights: 55.8955 -27.9478 -27.9478 Average: 249.9618
- Index: [WHEAT] Weights: -69.9965 34.9982 34.9982 Average: 170.0308
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108889.1728 108900.0001 108900.0001 Max-Min: 10.8273 Avg: 108896.3910
-------------------------------------------------
-Starting PH iteration 13 solves
-Queuing solve for scenario bundle=BelowAverageBundle
-Queuing solve for scenario bundle=OtherBundle
-Waiting for bundle sub-problem solves
-Results obtained for bundle=BelowAverageBundle
-Successfully loaded solution for bundle=BelowAverageBundle
-Results obtained for bundle=OtherBundle
-Successfully loaded solution for bundle=OtherBundle
-Successfully completed PH iteration 13 solves
-- solution statistics:
-
- Scenario Bundle Cost Objective Objective Gap Solution Status
- BelowAverageBundle -48820.4958 -45617.4479 0.0000 optimal
- OtherBundle -138174.9992 -139776.2768 0.0000 optimal
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario -48820.4958 -45617.4479 None Reported None Reported
- AverageScenario -109349.9998 -110951.2774 None Reported None Reported
- AboveAverageScenario -166999.9995 -168601.2771 None Reported None Reported
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 79.9065 80.0000 80.0000 Max-Min: 0.0935 Avg: 79.9688
-
- Index: [SUGAR_BEETS] Values: 250.0663 250.0000 250.0000 Max-Min: 0.0663 Avg: 250.0221
-
- Index: [WHEAT] Values: 170.0272 170.0000 170.0000 Max-Min: 0.0272 Avg: 170.0091
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108899.8093 108900.0001 108900.0001 Max-Min: 0.1908 Avg: 108899.9365
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108899.9365 Max-Min= 0.19
-Converger=Normalized term diff value is 0.0002 - threshold reached=False
-Cumulative run-time=1.52 seconds
-
-Initiating PH iteration=14
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: 14.0386 -7.0193 -7.0193 Average: 79.9688
- Index: [SUGAR_BEETS] Weights: 55.9397 -27.9699 -27.9699 Average: 250.0221
- Index: [WHEAT] Weights: -69.9783 34.9891 34.9891 Average: 170.0091
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108899.8093 108900.0001 108900.0001 Max-Min: 0.1908 Avg: 108899.9365
-------------------------------------------------
-Starting PH iteration 14 solves
-Queuing solve for scenario bundle=BelowAverageBundle
-Queuing solve for scenario bundle=OtherBundle
-Waiting for bundle sub-problem solves
-Results obtained for bundle=BelowAverageBundle
-Successfully loaded solution for bundle=BelowAverageBundle
-Results obtained for bundle=OtherBundle
-Successfully loaded solution for bundle=OtherBundle
-Successfully completed PH iteration 14 solves
-- solution statistics:
-
- Scenario Bundle Cost Objective Objective Gap Solution Status
- BelowAverageBundle -48824.5210 -45608.2984 0.0000 optimal
- OtherBundle -138174.9992 -139780.8518 0.0000 optimal
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario -48824.5210 -45608.2984 None Reported None Reported
- AverageScenario -109349.9998 -110955.8524 None Reported None Reported
- AboveAverageScenario -166999.9995 -168605.8521 None Reported None Reported
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 79.9303 80.0000 80.0000 Max-Min: 0.0697 Avg: 79.9768
-
- Index: [SUGAR_BEETS] Values: 250.0824 250.0000 250.0000 Max-Min: 0.0824 Avg: 250.0275
-
- Index: [WHEAT] Values: 169.9874 170.0000 170.0000 Max-Min: 0.0126 Avg: 169.9958
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108903.4820 108900.0001 108900.0001 Max-Min: 3.4819 Avg: 108901.1608
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108901.1608 Max-Min= 3.48
-Converger=Normalized term diff value is 0.0002 - threshold reached=False
-Cumulative run-time=1.64 seconds
-
-Initiating PH iteration=15
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: 13.9921 -6.9960 -6.9960 Average: 79.9768
- Index: [SUGAR_BEETS] Weights: 55.9946 -27.9973 -27.9973 Average: 250.0275
- Index: [WHEAT] Weights: -69.9867 34.9934 34.9934 Average: 169.9958
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108903.4820 108900.0001 108900.0001 Max-Min: 3.4819 Avg: 108901.1608
-------------------------------------------------
-Starting PH iteration 15 solves
-Queuing solve for scenario bundle=BelowAverageBundle
-Queuing solve for scenario bundle=OtherBundle
-Waiting for bundle sub-problem solves
-Results obtained for bundle=BelowAverageBundle
-Successfully loaded solution for bundle=BelowAverageBundle
-Results obtained for bundle=OtherBundle
-Successfully loaded solution for bundle=OtherBundle
-Successfully completed PH iteration 15 solves
-- solution statistics:
-
- Scenario Bundle Cost Objective Objective Gap Solution Status
- BelowAverageBundle -48822.8487 -45599.7148 0.0000 optimal
- OtherBundle -138174.9992 -139785.1412 0.0000 optimal
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario -48822.8487 -45599.7148 None Reported None Reported
- AverageScenario -109349.9998 -110960.1418 None Reported None Reported
- AboveAverageScenario -166999.9995 -168610.1415 None Reported None Reported
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 79.9847 80.0000 80.0000 Max-Min: 0.0153 Avg: 79.9949
-
- Index: [SUGAR_BEETS] Values: 250.0328 250.0000 250.0000 Max-Min: 0.0328 Avg: 250.0109
-
- Index: [WHEAT] Values: 169.9825 170.0000 170.0000 Max-Min: 0.0175 Avg: 169.9942
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108902.3850 108900.0001 108900.0001 Max-Min: 2.3849 Avg: 108900.7951
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108900.7951 Max-Min= 2.38
-Converger=Normalized term diff value is 0.0001 - threshold reached=True
-Cumulative run-time=1.77 seconds
-
-Number of discrete variables fixed before final plugin calls=0 (total=0)
-Number of continuous variables fixed before final plugin calls=0 (total=3)
-PH complete
-
-Convergence history:
-Converger=Normalized term diff
-Iteration Metric Value
- 0 0.2663
- 1 0.0612
- 2 0.0494
- 3 0.0485
- 4 0.0437
- 5 0.0178
- 6 0.0068
- 7 0.0082
- 8 0.0044
- 9 0.0009
- 10 0.0014
- 11 0.0009
- 12 0.0002
- 13 0.0002
- 14 0.0002
- 15 0.0001
-
-
-Final number of discrete variables fixed=0 (total=0)
-Final number of continuous variables fixed=0 (total=3)
-
-Computing objective inner bound at xhat solution
-Queuing solve for scenario bundle=BelowAverageBundle
-Queuing solve for scenario bundle=OtherBundle
-Waiting for bundle sub-problem solves
-Results obtained for bundle=BelowAverageBundle
-Successfully loaded solution for bundle=BelowAverageBundle
-Results obtained for bundle=OtherBundle
-Successfully loaded solution for bundle=OtherBundle
-Successfully completed xhat inner bound solves
-
- Scenario Bundle Cost Objective Objective Gap Solution Status
- BelowAverageBundle -48820.0001 -48820.0001 0.0000 optimal
- OtherBundle -138174.9994 -138174.9994 0.0000 optimal
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario -48820.0001 -48820.0001 None Reported None Reported
- AverageScenario -109350.0000 -109350.0000 None Reported None Reported
- AboveAverageScenario -166999.9997 -166999.9997 None Reported None Reported
-
-
-Computed objective upper bound=-108390.0000
-
-X-hat variable values:
-
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 80.0000 80.0000 80.0000
-
- Index: [SUGAR_BEETS] Values: 250.0000 250.0000 250.0000
-
- Index: [WHEAT] Values: 170.0000 170.0000 170.0000
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108900.0001 108900.0001 108900.0001 Max-Min: 0.0000 Avg: 108900.0001
-
-X-hat costs:
-
-Scenario Tree Costs
-----------------------------------------------------
-Tree Nodes:
-
- Name=AboveAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AboveAverageScenario
- Expected cost of (sub)tree rooted at node=-275899.9999
-
- Name=AverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AverageScenario
- Expected cost of (sub)tree rooted at node=-218250.0001
-
- Name=BelowAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-157720.0003
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- AboveAverageNode
- AverageNode
- BelowAverageNode
- Scenarios:
- AboveAverageScenario
- AverageScenario
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-108390.0000
-
-----------------------------------------------------
-Scenarios:
-
- Name=AboveAverageScenario
- Probability=0.3333
- Leaf Node=AboveAverageNode
- Tree node sequence:
- RootNode
- AboveAverageNode
- Stage= FirstStage Cost=108900.0001
- Stage= SecondStage Cost=-275899.9999
- Total scenario cost=-166999.9997
-
- Name=AverageScenario
- Probability=0.3333
- Leaf Node=AverageNode
- Tree node sequence:
- RootNode
- AverageNode
- Stage= FirstStage Cost=108900.0001
- Stage= SecondStage Cost=-218250.0001
- Total scenario cost=-109350.0000
-
- Name=BelowAverageScenario
- Probability=0.3333
- Leaf Node=BelowAverageNode
- Tree node sequence:
- RootNode
- BelowAverageNode
- Stage= FirstStage Cost=108900.0001
- Stage= SecondStage Cost=-157720.0003
- Total scenario cost=-48820.0001
-
-----------------------------------------------------
-
-
-Total PH execution time=1.86 seconds
-
-
-Total execution time=1.97 seconds
diff --git a/pyomo/pysp/tests/unit/baselines/farmer_quadratic_basic_bundling_gurobi.baseline b/pyomo/pysp/tests/unit/baselines/farmer_quadratic_basic_bundling_gurobi.baseline
deleted file mode 100644
index 76002f70dac..00000000000
--- a/pyomo/pysp/tests/unit/baselines/farmer_quadratic_basic_bundling_gurobi.baseline
+++ /dev/null
@@ -1,1103 +0,0 @@
-Importing model and scenario tree files
-Time to import model and scenario tree structure files=0.02 seconds
-Scenario Tree Detail
-----------------------------------------------------
-Tree Nodes:
-
- Name=AboveAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AboveAverageScenario
-
- Name=AverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AverageScenario
-
- Name=BelowAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- BelowAverageScenario
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- AboveAverageNode
- AverageNode
- BelowAverageNode
- Scenarios:
- AboveAverageScenario
- AverageScenario
- BelowAverageScenario
-
-----------------------------------------------------
-Stages:
- Name=FirstStage
- Tree Nodes:
- RootNode
- Variables:
- DevotedAcreage : [*]
- Cost Variable:
- FirstStageCost
-
- Name=SecondStage
- Tree Nodes:
- AboveAverageNode
- AverageNode
- BelowAverageNode
- Variables:
- QuantityPurchased : [*]
- QuantitySubQuotaSold : [*]
- QuantitySuperQuotaSold : [*]
- Cost Variable:
- SecondStageCost
-
-----------------------------------------------------
-Scenarios:
- Name=AboveAverageScenario
- Probability=0.3333
- Leaf node=AboveAverageNode
- Tree node sequence:
- RootNode
- AboveAverageNode
-
- Name=AverageScenario
- Probability=0.3333
- Leaf node=AverageNode
- Tree node sequence:
- RootNode
- AverageNode
-
- Name=BelowAverageScenario
- Probability=0.3333
- Leaf node=BelowAverageNode
- Tree node sequence:
- RootNode
- BelowAverageNode
-
-----------------------------------------------------
-Scenario Bundles:
- Name=BelowAverageBundle
- Probability=0.3333
- Scenarios: BelowAverageScenario
-
- Name=OtherBundle
- Probability=0.6667
- Scenarios: AboveAverageScenario AverageScenario
-
-----------------------------------------------------
-Scenario tree is valid!
-Scenario-based instance initialization enabled
-Creating instance for scenario=BelowAverageScenario
-Data for scenario=BelowAverageScenario loads from file=/home/hudson/slave/workspace/Pyomo_trunk_python3.4_snotra_expensive/src/pyomo/examples/pysp/farmer/scenariodataWithTwoBundles/BelowAverageScenario.dat
-Creating instance for scenario=AverageScenario
-Data for scenario=AverageScenario loads from file=/home/hudson/slave/workspace/Pyomo_trunk_python3.4_snotra_expensive/src/pyomo/examples/pysp/farmer/scenariodataWithTwoBundles/AverageScenario.dat
-Creating instance for scenario=AboveAverageScenario
-Data for scenario=AboveAverageScenario loads from file=/home/hudson/slave/workspace/Pyomo_trunk_python3.4_snotra_expensive/src/pyomo/examples/pysp/farmer/scenariodataWithTwoBundles/AboveAverageScenario.dat
-Time to construct scenario instances=0.04 seconds
-Time link scenario tree with instances=0.00 seconds
-Constructing solver manager of type=serial
-Constructing solver type=gurobi
-PH solver configuration:
- Max iterations=100
- Async mode=False
- Async buffer length=1
- Default global rho=1.0
- Over-relaxation enabled=False
- Sub-problem solver type='gurobi'
- Keep solver files? False
- Output solver results? False
- Output solver log? False
- Output times? False
-Initializing PH
-
-Invoking pre-initialization PH plugins
-Creating weight, average, and rho parameter vectors for scenario instances
-Creating deterministic SymbolMaps for scenario instances
-Forming binding instances for all scenario bundles
-Creating binding instance for scenario bundle=BelowAverageBundle
-Creating variables for master binding instance
-Creating binding instance for scenario bundle=OtherBundle
-Creating variables for master binding instance
-PH successfully created model instances for all scenarios
-PH is successfully initialized
-Invoking post-initialization PH plugins
-Starting PH
-
-Initiating PH iteration=0
-------------------------------------------------
-Starting PH iteration 0 solves
-Queuing solve for scenario bundle=BelowAverageBundle
-Queuing solve for scenario bundle=OtherBundle
-Waiting for bundle sub-problem solves
-Results obtained for bundle=BelowAverageBundle
-Successfully loaded solution for bundle=BelowAverageBundle
-Results obtained for bundle=OtherBundle
-Successfully loaded solution for bundle=OtherBundle
-Successfully completed PH iteration 0 solves
-- solution statistics:
-
- Scenario Bundle Cost Objective Objective Gap Solution Status
- BelowAverageBundle -59950.0000 -59950.0000 0.0000 optimal
- OtherBundle -138174.9996 -138174.9996 0.0000 optimal
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario -59950.0000 -59950.0000 None Reported None Reported
- AverageScenario -109350.0000 -109350.0000 None Reported None Reported
- AboveAverageScenario -167000.0000 -167000.0000 None Reported None Reported
-
-Total number of non-stale discrete instance variables=0
-Total number of non-stale continuous instance variables=3
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 25.0000 80.0000 80.0000 Max-Min: 55.0000 Avg: 61.6667
-
- Index: [SUGAR_BEETS] Values: 375.0000 250.0000 250.0000 Max-Min: 125.0000 Avg: 291.6667
-
- Index: [WHEAT] Values: 100.0000 170.0000 170.0000 Max-Min: 70.0000 Avg: 146.6667
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 118250.0000 108900.0000 108900.0000 Max-Min: 9350.0000 Avg: 112016.6666
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 112016.6667 Max-Min= 9350.00
-Converger=Normalized term diff value is 0.2663 - threshold reached=False
-Cumulative run-time=0.34 seconds
-
-Initiating PH iteration=1
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: -36.6667 18.3333 18.3333 Average: 61.6667
- Index: [SUGAR_BEETS] Weights: 83.3333 -41.6667 -41.6667 Average: 291.6667
- Index: [WHEAT] Weights: -46.6667 23.3333 23.3333 Average: 146.6667
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 118250.0000 108900.0000 108900.0000 Max-Min: 9350.0000 Avg: 112016.6666
-------------------------------------------------
-Starting PH iteration 1 solves
-Queuing solve for scenario bundle=BelowAverageBundle
-Queuing solve for scenario bundle=OtherBundle
-Waiting for bundle sub-problem solves
-Results obtained for bundle=BelowAverageBundle
-Successfully loaded solution for bundle=BelowAverageBundle
-Results obtained for bundle=OtherBundle
-Successfully loaded solution for bundle=OtherBundle
-Successfully completed PH iteration 1 solves
-- solution statistics:
-
- Scenario Bundle Cost Objective Objective Gap Solution Status
- BelowAverageBundle -53082.9999 -39145.2499 0.0000 optimal
- OtherBundle -136590.6245 -142114.0621 0.0000 optimal
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario -53082.9999 -39145.2499 None Reported None Reported
- AverageScenario -112356.2503 -117879.6879 None Reported None Reported
- AboveAverageScenario -160824.9994 -166348.4370 None Reported None Reported
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 100.0000 80.0000 80.0000 Max-Min: 20.0000 Avg: 86.6667
-
- Index: [SUGAR_BEETS] Values: 270.5000 266.2500 266.2500 Max-Min: 4.2500 Avg: 267.6667
-
- Index: [WHEAT] Values: 129.5000 153.7500 153.7500 Max-Min: 24.2500 Avg: 145.6667
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 112754.9999 110687.5002 110687.5002 Max-Min: 2067.4998 Avg: 111376.6667
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 111376.6668 Max-Min= 2067.50
-Converger=Normalized term diff value is 0.0612 - threshold reached=False
-Cumulative run-time=0.68 seconds
-
-Initiating PH iteration=2
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: -23.3333 11.6667 11.6667 Average: 86.6667
- Index: [SUGAR_BEETS] Weights: 86.1667 -43.0833 -43.0833 Average: 267.6667
- Index: [WHEAT] Weights: -62.8333 31.4167 31.4167 Average: 145.6667
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 112754.9999 110687.5002 110687.5002 Max-Min: 2067.4998 Avg: 111376.6667
-------------------------------------------------
-Starting PH iteration 2 solves
-Queuing solve for scenario bundle=BelowAverageBundle
-Queuing solve for scenario bundle=OtherBundle
-Waiting for bundle sub-problem solves
-Results obtained for bundle=BelowAverageBundle
-Successfully loaded solution for bundle=BelowAverageBundle
-Results obtained for bundle=OtherBundle
-Successfully loaded solution for bundle=OtherBundle
-Successfully completed PH iteration 2 solves
-- solution statistics:
-
- Scenario Bundle Cost Objective Objective Gap Solution Status
- BelowAverageBundle -50437.0002 -40462.5834 0.0000 optimal
- OtherBundle -137248.7494 -142287.5828 0.0000 optimal
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario -50437.0002 -40462.5834 None Reported None Reported
- AverageScenario -111107.5003 -116146.3337 None Reported None Reported
- AboveAverageScenario -163389.9993 -168428.8327 None Reported None Reported
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 100.0000 80.0000 80.0000 Max-Min: 20.0000 Avg: 86.6667
-
- Index: [SUGAR_BEETS] Values: 249.5000 259.5000 259.5000 Max-Min: 10.0000 Avg: 256.1667
-
- Index: [WHEAT] Values: 150.5000 160.5000 160.5000 Max-Min: 10.0000 Avg: 157.1667
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 110445.0002 109945.0002 109945.0002 Max-Min: 500.0000 Avg: 110111.6669
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 110111.6669 Max-Min= 500.00
-Converger=Normalized term diff value is 0.0494 - threshold reached=False
-Cumulative run-time=1.02 seconds
-
-Initiating PH iteration=3
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: -10.0000 5.0000 5.0000 Average: 86.6667
- Index: [SUGAR_BEETS] Weights: 79.5000 -39.7500 -39.7500 Average: 256.1667
- Index: [WHEAT] Weights: -69.5000 34.7500 34.7500 Average: 157.1667
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 110445.0002 109945.0002 109945.0002 Max-Min: 500.0000 Avg: 110111.6669
-------------------------------------------------
-Starting PH iteration 3 solves
-Queuing solve for scenario bundle=BelowAverageBundle
-Queuing solve for scenario bundle=OtherBundle
-Waiting for bundle sub-problem solves
-Results obtained for bundle=BelowAverageBundle
-Successfully loaded solution for bundle=BelowAverageBundle
-Results obtained for bundle=OtherBundle
-Successfully loaded solution for bundle=OtherBundle
-Successfully completed PH iteration 3 solves
-- solution statistics:
-
- Scenario Bundle Cost Objective Objective Gap Solution Status
- BelowAverageBundle -48988.0004 -42060.4167 0.0000 optimal
- OtherBundle -138174.9996 -141681.4161 0.0000 optimal
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario -48988.0004 -42060.4167 None Reported None Reported
- AverageScenario -109350.0000 -112856.4165 None Reported None Reported
- AboveAverageScenario -167000.0000 -170506.4165 None Reported None Reported
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 100.0000 80.0000 80.0000 Max-Min: 20.0000 Avg: 86.6667
-
- Index: [SUGAR_BEETS] Values: 238.0000 250.0000 250.0000 Max-Min: 12.0000 Avg: 246.0000
-
- Index: [WHEAT] Values: 162.0000 170.0000 170.0000 Max-Min: 8.0000 Avg: 167.3333
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 109180.0003 108900.0000 108900.0000 Max-Min: 280.0003 Avg: 108993.3334
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108993.3334 Max-Min= 280.00
-Converger=Normalized term diff value is 0.0485 - threshold reached=False
-Cumulative run-time=1.37 seconds
-
-Initiating PH iteration=4
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: 3.3333 -1.6667 -1.6667 Average: 86.6667
- Index: [SUGAR_BEETS] Weights: 71.5000 -35.7500 -35.7500 Average: 246.0000
- Index: [WHEAT] Weights: -74.8333 37.4167 37.4167 Average: 167.3333
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 109180.0003 108900.0000 108900.0000 Max-Min: 280.0003 Avg: 108993.3334
-------------------------------------------------
-Starting PH iteration 4 solves
-Queuing solve for scenario bundle=BelowAverageBundle
-Queuing solve for scenario bundle=OtherBundle
-Waiting for bundle sub-problem solves
-Results obtained for bundle=BelowAverageBundle
-Successfully loaded solution for bundle=BelowAverageBundle
-Results obtained for bundle=OtherBundle
-Successfully loaded solution for bundle=OtherBundle
-Successfully completed PH iteration 4 solves
-- solution statistics:
-
- Scenario Bundle Cost Objective Objective Gap Solution Status
- BelowAverageBundle -47819.0000 -43708.9166 0.0000 optimal
- OtherBundle -138174.9996 -140851.2218 0.0000 optimal
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario -47819.0000 -43708.9166 None Reported None Reported
- AverageScenario -109350.0000 -112026.2222 None Reported None Reported
- AboveAverageScenario -167000.0000 -169676.2222 None Reported None Reported
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 97.3333 80.0000 80.0000 Max-Min: 17.3333 Avg: 85.7778
-
- Index: [SUGAR_BEETS] Values: 230.5000 250.0000 250.0000 Max-Min: 19.5000 Avg: 243.5000
-
- Index: [WHEAT] Values: 172.1667 170.0000 170.0000 Max-Min: 2.1667 Avg: 170.7222
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108141.6667 108900.0000 108900.0000 Max-Min: 758.3333 Avg: 108647.2222
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108647.2222 Max-Min= 758.33
-Converger=Normalized term diff value is 0.0437 - threshold reached=False
-Cumulative run-time=1.72 seconds
-
-Initiating PH iteration=5
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: 14.8889 -7.4444 -7.4444 Average: 85.7778
- Index: [SUGAR_BEETS] Weights: 58.5000 -29.2500 -29.2500 Average: 243.5000
- Index: [WHEAT] Weights: -73.3889 36.6944 36.6944 Average: 170.7222
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108141.6667 108900.0000 108900.0000 Max-Min: 758.3333 Avg: 108647.2222
-------------------------------------------------
-Starting PH iteration 5 solves
-Queuing solve for scenario bundle=BelowAverageBundle
-Queuing solve for scenario bundle=OtherBundle
-Waiting for bundle sub-problem solves
-Results obtained for bundle=BelowAverageBundle
-Successfully loaded solution for bundle=BelowAverageBundle
-Results obtained for bundle=OtherBundle
-Successfully loaded solution for bundle=OtherBundle
-Successfully completed PH iteration 5 solves
-- solution statistics:
-
- Scenario Bundle Cost Objective Objective Gap Solution Status
- BelowAverageBundle -48096.6666 -45502.8240 0.0000 optimal
- OtherBundle -138174.9996 -139806.9224 0.0000 optimal
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario -48096.6666 -45502.8240 None Reported None Reported
- AverageScenario -109350.0000 -110981.9228 None Reported None Reported
- AboveAverageScenario -167000.0000 -168631.9228 None Reported None Reported
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 84.8889 80.0000 80.0000 Max-Min: 4.8889 Avg: 81.6296
-
- Index: [SUGAR_BEETS] Values: 241.0000 250.0000 250.0000 Max-Min: 9.0000 Avg: 247.0000
-
- Index: [WHEAT] Values: 174.1111 170.0000 170.0000 Max-Min: 4.1111 Avg: 171.3704
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108301.1110 108900.0000 108900.0000 Max-Min: 598.8890 Avg: 108700.3703
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108700.3703 Max-Min= 598.89
-Converger=Normalized term diff value is 0.0178 - threshold reached=False
-Cumulative run-time=2.06 seconds
-
-Initiating PH iteration=6
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: 18.1481 -9.0741 -9.0741 Average: 81.6296
- Index: [SUGAR_BEETS] Weights: 52.5000 -26.2500 -26.2500 Average: 247.0000
- Index: [WHEAT] Weights: -70.6481 35.3241 35.3241 Average: 171.3704
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108301.1110 108900.0000 108900.0000 Max-Min: 598.8890 Avg: 108700.3703
-------------------------------------------------
-Starting PH iteration 6 solves
-Queuing solve for scenario bundle=BelowAverageBundle
-Queuing solve for scenario bundle=OtherBundle
-Waiting for bundle sub-problem solves
-Results obtained for bundle=BelowAverageBundle
-Successfully loaded solution for bundle=BelowAverageBundle
-Results obtained for bundle=OtherBundle
-Successfully loaded solution for bundle=OtherBundle
-Successfully completed PH iteration 6 solves
-- solution statistics:
-
- Scenario Bundle Cost Objective Objective Gap Solution Status
- BelowAverageBundle -48671.4444 -46251.9002 0.0000 optimal
- OtherBundle -138174.9996 -139451.5661 0.0000 optimal
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario -48671.4444 -46251.9002 None Reported None Reported
- AverageScenario -109350.0000 -110626.5665 None Reported None Reported
- AboveAverageScenario -167000.0000 -168276.5665 None Reported None Reported
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 77.4815 80.0000 80.0000 Max-Min: 2.5185 Avg: 79.1605
-
- Index: [SUGAR_BEETS] Values: 250.5000 250.0000 250.0000 Max-Min: 0.5000 Avg: 250.1667
-
- Index: [WHEAT] Values: 172.0185 170.0000 170.0000 Max-Min: 2.0185 Avg: 170.6728
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108753.5185 108900.0000 108900.0000 Max-Min: 146.4815 Avg: 108851.1728
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108851.1728 Max-Min= 146.48
-Converger=Normalized term diff value is 0.0068 - threshold reached=False
-Cumulative run-time=2.40 seconds
-
-Initiating PH iteration=7
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: 16.4691 -8.2346 -8.2346 Average: 79.1605
- Index: [SUGAR_BEETS] Weights: 52.8333 -26.4167 -26.4167 Average: 250.1667
- Index: [WHEAT] Weights: -69.3025 34.6512 34.6512 Average: 170.6728
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108753.5185 108900.0000 108900.0000 Max-Min: 146.4815 Avg: 108851.1728
-------------------------------------------------
-Starting PH iteration 7 solves
-Queuing solve for scenario bundle=BelowAverageBundle
-Queuing solve for scenario bundle=OtherBundle
-Waiting for bundle sub-problem solves
-Results obtained for bundle=BelowAverageBundle
-Successfully loaded solution for bundle=BelowAverageBundle
-Results obtained for bundle=OtherBundle
-Successfully loaded solution for bundle=OtherBundle
-Successfully completed PH iteration 7 solves
-- solution statistics:
-
- Scenario Bundle Cost Objective Objective Gap Solution Status
- BelowAverageBundle -48962.0741 -46085.9923 0.0000 optimal
- OtherBundle -138174.9996 -139546.6291 0.0000 optimal
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario -48962.0741 -46085.9923 None Reported None Reported
- AverageScenario -109350.0000 -110721.6296 None Reported None Reported
- AboveAverageScenario -167000.0000 -168371.6296 None Reported None Reported
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 76.6914 80.0000 80.0000 Max-Min: 3.3086 Avg: 78.8971
-
- Index: [SUGAR_BEETS] Values: 253.3333 250.0000 250.0000 Max-Min: 3.3333 Avg: 251.1111
-
- Index: [WHEAT] Values: 169.9753 170.0000 170.0000 Max-Min: 0.0247 Avg: 169.9918
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 109001.9753 108900.0000 108900.0000 Max-Min: 101.9753 Avg: 108933.9918
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108933.9918 Max-Min= 101.98
-Converger=Normalized term diff value is 0.0082 - threshold reached=False
-Cumulative run-time=2.75 seconds
-
-Initiating PH iteration=8
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: 14.2634 -7.1317 -7.1317 Average: 78.8971
- Index: [SUGAR_BEETS] Weights: 55.0556 -27.5278 -27.5278 Average: 251.1111
- Index: [WHEAT] Weights: -69.3189 34.6595 34.6595 Average: 169.9918
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 109001.9753 108900.0000 108900.0000 Max-Min: 101.9753 Avg: 108933.9918
-------------------------------------------------
-Starting PH iteration 8 solves
-Queuing solve for scenario bundle=BelowAverageBundle
-Queuing solve for scenario bundle=OtherBundle
-Waiting for bundle sub-problem solves
-Results obtained for bundle=BelowAverageBundle
-Successfully loaded solution for bundle=BelowAverageBundle
-Results obtained for bundle=OtherBundle
-Successfully loaded solution for bundle=OtherBundle
-Successfully completed PH iteration 8 solves
-- solution statistics:
-
- Scenario Bundle Cost Objective Objective Gap Solution Status
- BelowAverageBundle -48964.2346 -45701.3173 0.0000 optimal
- OtherBundle -138174.9996 -139734.1444 0.0000 optimal
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario -48964.2346 -45701.3173 None Reported None Reported
- AverageScenario -109350.0000 -110909.1449 None Reported None Reported
- AboveAverageScenario -167000.0000 -168559.1449 None Reported None Reported
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 78.6337 80.0000 80.0000 Max-Min: 1.3663 Avg: 79.5446
-
- Index: [SUGAR_BEETS] Values: 252.0556 250.0000 250.0000 Max-Min: 2.0556 Avg: 250.6852
-
- Index: [WHEAT] Values: 169.3107 170.0000 170.0000 Max-Min: 0.6893 Avg: 169.7702
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 109016.8107 108900.0000 108900.0000 Max-Min: 116.8107 Avg: 108938.9369
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108938.9369 Max-Min= 116.81
-Converger=Normalized term diff value is 0.0044 - threshold reached=False
-Cumulative run-time=3.09 seconds
-
-Initiating PH iteration=9
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: 13.3525 -6.6763 -6.6763 Average: 79.5446
- Index: [SUGAR_BEETS] Weights: 56.4259 -28.2130 -28.2130 Average: 250.6852
- Index: [WHEAT] Weights: -69.7785 34.8892 34.8892 Average: 169.7702
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 109016.8107 108900.0000 108900.0000 Max-Min: 116.8107 Avg: 108938.9369
-------------------------------------------------
-Starting PH iteration 9 solves
-Queuing solve for scenario bundle=BelowAverageBundle
-Queuing solve for scenario bundle=OtherBundle
-Waiting for bundle sub-problem solves
-Results obtained for bundle=BelowAverageBundle
-Successfully loaded solution for bundle=BelowAverageBundle
-Results obtained for bundle=OtherBundle
-Successfully loaded solution for bundle=OtherBundle
-Successfully completed PH iteration 9 solves
-- solution statistics:
-
- Scenario Bundle Cost Objective Objective Gap Solution Status
- BelowAverageBundle -48868.7984 -45507.4434 0.0000 optimal
- OtherBundle -138174.9996 -139830.8075 0.0000 optimal
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario -48868.7984 -45507.4434 None Reported None Reported
- AverageScenario -109350.0000 -111005.8080 None Reported None Reported
- AboveAverageScenario -167000.0000 -168655.8080 None Reported None Reported
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 80.1920 80.0000 80.0000 Max-Min: 0.1920 Avg: 80.0640
-
- Index: [SUGAR_BEETS] Values: 250.2593 250.0000 250.0000 Max-Min: 0.2593 Avg: 250.0864
-
- Index: [WHEAT] Values: 169.5487 170.0000 170.0000 Max-Min: 0.4513 Avg: 169.8496
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108943.8820 108900.0000 108900.0000 Max-Min: 43.8820 Avg: 108914.6273
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108914.6273 Max-Min= 43.88
-Converger=Normalized term diff value is 0.0009 - threshold reached=False
-Cumulative run-time=3.46 seconds
-
-Initiating PH iteration=10
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: 13.4806 -6.7403 -6.7403 Average: 80.0640
- Index: [SUGAR_BEETS] Weights: 56.5988 -28.2994 -28.2994 Average: 250.0864
- Index: [WHEAT] Weights: -70.0793 35.0397 35.0397 Average: 169.8496
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108943.8820 108900.0000 108900.0000 Max-Min: 43.8820 Avg: 108914.6273
-------------------------------------------------
-Starting PH iteration 10 solves
-Queuing solve for scenario bundle=BelowAverageBundle
-Queuing solve for scenario bundle=OtherBundle
-Waiting for bundle sub-problem solves
-Results obtained for bundle=BelowAverageBundle
-Successfully loaded solution for bundle=BelowAverageBundle
-Results obtained for bundle=OtherBundle
-Successfully loaded solution for bundle=OtherBundle
-Successfully completed PH iteration 10 solves
-- solution statistics:
-
- Scenario Bundle Cost Objective Objective Gap Solution Status
- BelowAverageBundle -48804.4541 -45505.6367 0.0000 optimal
- OtherBundle -138174.9996 -139832.3075 0.0000 optimal
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario -48804.4541 -45505.6367 None Reported None Reported
- AverageScenario -109350.0000 -111007.3080 None Reported None Reported
- AboveAverageScenario -167000.0000 -168657.3080 None Reported None Reported
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 80.5834 80.0000 80.0000 Max-Min: 0.5834 Avg: 80.1945
-
- Index: [SUGAR_BEETS] Values: 249.4877 250.0000 250.0000 Max-Min: 0.5123 Avg: 249.8292
-
- Index: [WHEAT] Values: 169.9289 170.0000 170.0000 Max-Min: 0.0711 Avg: 169.9763
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108890.3178 108900.0000 108900.0000 Max-Min: 9.6822 Avg: 108896.7726
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108896.7726 Max-Min= 9.68
-Converger=Normalized term diff value is 0.0014 - threshold reached=False
-Cumulative run-time=3.81 seconds
-
-Initiating PH iteration=11
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: 13.8695 -6.9348 -6.9348 Average: 80.1945
- Index: [SUGAR_BEETS] Weights: 56.2572 -28.1286 -28.1286 Average: 249.8292
- Index: [WHEAT] Weights: -70.1267 35.0634 35.0634 Average: 169.9763
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108890.3178 108900.0000 108900.0000 Max-Min: 9.6822 Avg: 108896.7726
-------------------------------------------------
-Starting PH iteration 11 solves
-Queuing solve for scenario bundle=BelowAverageBundle
-Queuing solve for scenario bundle=OtherBundle
-Waiting for bundle sub-problem solves
-Results obtained for bundle=BelowAverageBundle
-Successfully loaded solution for bundle=BelowAverageBundle
-Results obtained for bundle=OtherBundle
-Successfully loaded solution for bundle=OtherBundle
-Successfully completed PH iteration 11 solves
-- solution statistics:
-
- Scenario Bundle Cost Objective Objective Gap Solution Status
- BelowAverageBundle -48793.3699 -45567.7977 0.0000 optimal
- OtherBundle -138174.9996 -139801.1249 0.0000 optimal
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario -48793.3699 -45567.7977 None Reported None Reported
- AverageScenario -109350.0000 -110976.1253 None Reported None Reported
- AboveAverageScenario -167000.0000 -168626.1253 None Reported None Reported
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 80.3250 80.0000 80.0000 Max-Min: 0.3250 Avg: 80.1083
-
- Index: [SUGAR_BEETS] Values: 249.5720 250.0000 250.0000 Max-Min: 0.4280 Avg: 249.8573
-
- Index: [WHEAT] Values: 170.1030 170.0000 170.0000 Max-Min: 0.1030 Avg: 170.0343
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108878.9178 108900.0000 108900.0000 Max-Min: 21.0822 Avg: 108892.9726
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108892.9726 Max-Min= 21.08
-Converger=Normalized term diff value is 0.0009 - threshold reached=False
-Cumulative run-time=4.16 seconds
-
-Initiating PH iteration=12
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: 14.0862 -7.0431 -7.0431 Average: 80.1083
- Index: [SUGAR_BEETS] Weights: 55.9719 -27.9859 -27.9859 Average: 249.8573
- Index: [WHEAT] Weights: -70.0580 35.0290 35.0290 Average: 170.0343
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108878.9178 108900.0000 108900.0000 Max-Min: 21.0822 Avg: 108892.9726
-------------------------------------------------
-Starting PH iteration 12 solves
-Queuing solve for scenario bundle=BelowAverageBundle
-Queuing solve for scenario bundle=OtherBundle
-Waiting for bundle sub-problem solves
-Results obtained for bundle=BelowAverageBundle
-Successfully loaded solution for bundle=BelowAverageBundle
-Results obtained for bundle=OtherBundle
-Successfully loaded solution for bundle=OtherBundle
-Successfully completed PH iteration 12 solves
-- solution statistics:
-
- Scenario Bundle Cost Objective Objective Gap Solution Status
- BelowAverageBundle -48807.4286 -45609.9990 0.0000 optimal
- OtherBundle -138174.9996 -139779.9806 0.0000 optimal
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario -48807.4286 -45609.9990 None Reported None Reported
- AverageScenario -109350.0000 -110954.9811 None Reported None Reported
- AboveAverageScenario -167000.0000 -168604.9811 None Reported None Reported
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 80.0222 80.0000 80.0000 Max-Min: 0.0222 Avg: 80.0074
-
- Index: [SUGAR_BEETS] Values: 249.8855 250.0000 250.0000 Max-Min: 0.1145 Avg: 249.9618
-
- Index: [WHEAT] Values: 170.0924 170.0000 170.0000 Max-Min: 0.0924 Avg: 170.0308
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108889.1726 108900.0000 108900.0000 Max-Min: 10.8274 Avg: 108896.3909
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108896.3909 Max-Min= 10.83
-Converger=Normalized term diff value is 0.0002 - threshold reached=False
-Cumulative run-time=4.51 seconds
-
-Initiating PH iteration=13
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: 14.1009 -7.0505 -7.0505 Average: 80.0074
- Index: [SUGAR_BEETS] Weights: 55.8955 -27.9478 -27.9478 Average: 249.9618
- Index: [WHEAT] Weights: -69.9965 34.9982 34.9982 Average: 170.0308
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108889.1726 108900.0000 108900.0000 Max-Min: 10.8274 Avg: 108896.3909
-------------------------------------------------
-Starting PH iteration 13 solves
-Queuing solve for scenario bundle=BelowAverageBundle
-Queuing solve for scenario bundle=OtherBundle
-Waiting for bundle sub-problem solves
-Results obtained for bundle=BelowAverageBundle
-Successfully loaded solution for bundle=BelowAverageBundle
-Results obtained for bundle=OtherBundle
-Successfully loaded solution for bundle=OtherBundle
-Successfully completed PH iteration 13 solves
-- solution statistics:
-
- Scenario Bundle Cost Objective Objective Gap Solution Status
- BelowAverageBundle -48820.4958 -45617.4482 0.0000 optimal
- OtherBundle -138174.9996 -139776.2771 0.0000 optimal
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario -48820.4958 -45617.4482 None Reported None Reported
- AverageScenario -109350.0000 -110951.2775 None Reported None Reported
- AboveAverageScenario -167000.0000 -168601.2775 None Reported None Reported
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 79.9065 80.0000 80.0000 Max-Min: 0.0935 Avg: 79.9688
-
- Index: [SUGAR_BEETS] Values: 250.0663 250.0000 250.0000 Max-Min: 0.0663 Avg: 250.0221
-
- Index: [WHEAT] Values: 170.0272 170.0000 170.0000 Max-Min: 0.0272 Avg: 170.0091
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108899.8091 108900.0000 108900.0000 Max-Min: 0.1909 Avg: 108899.9364
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108899.9364 Max-Min= 0.19
-Converger=Normalized term diff value is 0.0002 - threshold reached=False
-Cumulative run-time=4.85 seconds
-
-Initiating PH iteration=14
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: 14.0386 -7.0193 -7.0193 Average: 79.9688
- Index: [SUGAR_BEETS] Weights: 55.9397 -27.9699 -27.9699 Average: 250.0221
- Index: [WHEAT] Weights: -69.9783 34.9891 34.9891 Average: 170.0091
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108899.8091 108900.0000 108900.0000 Max-Min: 0.1909 Avg: 108899.9364
-------------------------------------------------
-Starting PH iteration 14 solves
-Queuing solve for scenario bundle=BelowAverageBundle
-Queuing solve for scenario bundle=OtherBundle
-Waiting for bundle sub-problem solves
-Results obtained for bundle=BelowAverageBundle
-Successfully loaded solution for bundle=BelowAverageBundle
-Results obtained for bundle=OtherBundle
-Successfully loaded solution for bundle=OtherBundle
-Successfully completed PH iteration 14 solves
-- solution statistics:
-
- Scenario Bundle Cost Objective Objective Gap Solution Status
- BelowAverageBundle -48824.5210 -45608.2986 0.0000 optimal
- OtherBundle -138174.9996 -139780.8520 0.0000 optimal
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario -48824.5210 -45608.2986 None Reported None Reported
- AverageScenario -109350.0000 -110955.8525 None Reported None Reported
- AboveAverageScenario -167000.0000 -168605.8525 None Reported None Reported
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 79.9303 80.0000 80.0000 Max-Min: 0.0697 Avg: 79.9768
-
- Index: [SUGAR_BEETS] Values: 250.0824 250.0000 250.0000 Max-Min: 0.0824 Avg: 250.0275
-
- Index: [WHEAT] Values: 169.9874 170.0000 170.0000 Max-Min: 0.0126 Avg: 169.9958
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108903.4819 108900.0000 108900.0000 Max-Min: 3.4819 Avg: 108901.1606
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108901.1606 Max-Min= 3.48
-Converger=Normalized term diff value is 0.0002 - threshold reached=False
-Cumulative run-time=5.20 seconds
-
-Initiating PH iteration=15
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: 13.9921 -6.9960 -6.9960 Average: 79.9768
- Index: [SUGAR_BEETS] Weights: 55.9946 -27.9973 -27.9973 Average: 250.0275
- Index: [WHEAT] Weights: -69.9867 34.9934 34.9934 Average: 169.9958
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108903.4819 108900.0000 108900.0000 Max-Min: 3.4819 Avg: 108901.1606
-------------------------------------------------
-Starting PH iteration 15 solves
-Queuing solve for scenario bundle=BelowAverageBundle
-Queuing solve for scenario bundle=OtherBundle
-Waiting for bundle sub-problem solves
-Results obtained for bundle=BelowAverageBundle
-Successfully loaded solution for bundle=BelowAverageBundle
-Results obtained for bundle=OtherBundle
-Successfully loaded solution for bundle=OtherBundle
-Successfully completed PH iteration 15 solves
-- solution statistics:
-
- Scenario Bundle Cost Objective Objective Gap Solution Status
- BelowAverageBundle -48822.8487 -45599.7150 0.0000 optimal
- OtherBundle -138174.9996 -139785.1415 0.0000 optimal
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario -48822.8487 -45599.7150 None Reported None Reported
- AverageScenario -109350.0000 -110960.1419 None Reported None Reported
- AboveAverageScenario -167000.0000 -168610.1419 None Reported None Reported
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 79.9847 80.0000 80.0000 Max-Min: 0.0153 Avg: 79.9949
-
- Index: [SUGAR_BEETS] Values: 250.0328 250.0000 250.0000 Max-Min: 0.0328 Avg: 250.0109
-
- Index: [WHEAT] Values: 169.9825 170.0000 170.0000 Max-Min: 0.0175 Avg: 169.9942
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108902.3849 108900.0000 108900.0000 Max-Min: 2.3849 Avg: 108900.7950
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108900.7950 Max-Min= 2.38
-Converger=Normalized term diff value is 0.0001 - threshold reached=True
-Cumulative run-time=5.68 seconds
-
-Number of discrete variables fixed before final plugin calls=0 (total=0)
-Number of continuous variables fixed before final plugin calls=0 (total=3)
-PH complete
-
-Convergence history:
-Converger=Normalized term diff
-Iteration Metric Value
- 0 0.2663
- 1 0.0612
- 2 0.0494
- 3 0.0485
- 4 0.0437
- 5 0.0178
- 6 0.0068
- 7 0.0082
- 8 0.0044
- 9 0.0009
- 10 0.0014
- 11 0.0009
- 12 0.0002
- 13 0.0002
- 14 0.0002
- 15 0.0001
-
-
-Final number of discrete variables fixed=0 (total=0)
-Final number of continuous variables fixed=0 (total=3)
-
-Computing objective inner bound at xhat solution
-Queuing solve for scenario bundle=BelowAverageBundle
-Queuing solve for scenario bundle=OtherBundle
-Waiting for bundle sub-problem solves
-Results obtained for bundle=BelowAverageBundle
-Successfully loaded solution for bundle=BelowAverageBundle
-Results obtained for bundle=OtherBundle
-Successfully loaded solution for bundle=OtherBundle
-Successfully completed xhat inner bound solves
-
- Scenario Bundle Cost Objective Objective Gap Solution Status
- BelowAverageBundle -48820.0000 -48820.0000 0.0000 optimal
- OtherBundle -138174.9996 -138174.9996 0.0000 optimal
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario -48820.0000 -48820.0000 None Reported None Reported
- AverageScenario -109350.0000 -109350.0000 None Reported None Reported
- AboveAverageScenario -167000.0000 -167000.0000 None Reported None Reported
-
-
-Computed objective upper bound=-108390.0000
-
-X-hat variable values:
-
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 80.0000 80.0000 80.0000
-
- Index: [SUGAR_BEETS] Values: 250.0000 250.0000 250.0000
-
- Index: [WHEAT] Values: 170.0000 170.0000 170.0000
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108900.0000 108900.0000 108900.0000 Max-Min: 0.0000 Avg: 108900.0000
-
-X-hat costs:
-
-Scenario Tree Costs
-----------------------------------------------------
-Tree Nodes:
-
- Name=AboveAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AboveAverageScenario
- Expected cost of (sub)tree rooted at node=-275900.0000
-
- Name=AverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AverageScenario
- Expected cost of (sub)tree rooted at node=-218250.0000
-
- Name=BelowAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-157720.0000
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- AboveAverageNode
- AverageNode
- BelowAverageNode
- Scenarios:
- AboveAverageScenario
- AverageScenario
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-108390.0000
-
-----------------------------------------------------
-Scenarios:
-
- Name=AboveAverageScenario
- Probability=0.3333
- Leaf Node=AboveAverageNode
- Tree node sequence:
- RootNode
- AboveAverageNode
- Stage= FirstStage Cost=108900.0000
- Stage= SecondStage Cost=-275900.0000
- Total scenario cost=-167000.0000
-
- Name=AverageScenario
- Probability=0.3333
- Leaf Node=AverageNode
- Tree node sequence:
- RootNode
- AverageNode
- Stage= FirstStage Cost=108900.0000
- Stage= SecondStage Cost=-218250.0000
- Total scenario cost=-109350.0000
-
- Name=BelowAverageScenario
- Probability=0.3333
- Leaf Node=BelowAverageNode
- Tree node sequence:
- RootNode
- BelowAverageNode
- Stage= FirstStage Cost=108900.0000
- Stage= SecondStage Cost=-157720.0000
- Total scenario cost=-48820.0000
-
-----------------------------------------------------
-
-
-Total PH execution time=5.99 seconds
-
-
-Total execution time=6.07 seconds
diff --git a/pyomo/pysp/tests/unit/baselines/farmer_quadratic_bundling_ipopt_with_phpyro.baseline b/pyomo/pysp/tests/unit/baselines/farmer_quadratic_bundling_ipopt_with_phpyro.baseline
deleted file mode 100644
index 114ae6fcfbb..00000000000
--- a/pyomo/pysp/tests/unit/baselines/farmer_quadratic_bundling_ipopt_with_phpyro.baseline
+++ /dev/null
@@ -1,254 +0,0 @@
-Client assigned dispatcher with URI=PYRO::PyUtilibServer.dispatcher.cf9047d9-2b8e-486c-92cb-d72c474bec4b@localhost:44210
-Initializing PH
-
-Starting PH
-
-Initiating PH iteration=0
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 112016.6678 Max-Min= 9350.00
-Converger=Normalized term diff value is 0.2663 - threshold reached=False
-Cumulative run-time=0.16 seconds
-
-Initiating PH iteration=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 111376.6678 Max-Min= 2067.50
-Converger=Normalized term diff value is 0.0612 - threshold reached=False
-Cumulative run-time=0.33 seconds
-
-Initiating PH iteration=2
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 110111.6679 Max-Min= 500.00
-Converger=Normalized term diff value is 0.0494 - threshold reached=False
-Cumulative run-time=0.48 seconds
-
-Initiating PH iteration=3
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108993.3345 Max-Min= 280.00
-Converger=Normalized term diff value is 0.0485 - threshold reached=False
-Cumulative run-time=0.63 seconds
-
-Initiating PH iteration=4
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108647.2233 Max-Min= 758.33
-Converger=Normalized term diff value is 0.0437 - threshold reached=False
-Cumulative run-time=0.79 seconds
-
-Initiating PH iteration=5
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108700.3713 Max-Min= 598.89
-Converger=Normalized term diff value is 0.0178 - threshold reached=False
-Cumulative run-time=0.94 seconds
-
-Initiating PH iteration=6
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108851.1738 Max-Min= 146.48
-Converger=Normalized term diff value is 0.0068 - threshold reached=False
-Cumulative run-time=1.09 seconds
-
-Initiating PH iteration=7
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108933.9928 Max-Min= 101.98
-Converger=Normalized term diff value is 0.0082 - threshold reached=False
-Cumulative run-time=1.24 seconds
-
-Initiating PH iteration=8
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108938.9379 Max-Min= 116.81
-Converger=Normalized term diff value is 0.0044 - threshold reached=False
-Cumulative run-time=1.39 seconds
-
-Initiating PH iteration=9
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108914.6283 Max-Min= 43.88
-Converger=Normalized term diff value is 0.0009 - threshold reached=False
-Cumulative run-time=1.54 seconds
-
-Initiating PH iteration=10
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108896.7736 Max-Min= 9.68
-Converger=Normalized term diff value is 0.0014 - threshold reached=False
-Cumulative run-time=1.69 seconds
-
-Initiating PH iteration=11
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108892.9736 Max-Min= 21.08
-Converger=Normalized term diff value is 0.0009 - threshold reached=False
-Cumulative run-time=1.84 seconds
-
-Initiating PH iteration=12
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108896.3919 Max-Min= 10.83
-Converger=Normalized term diff value is 0.0002 - threshold reached=False
-Cumulative run-time=2.00 seconds
-
-Initiating PH iteration=13
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108899.9374 Max-Min= 0.19
-Converger=Normalized term diff value is 0.0002 - threshold reached=False
-Cumulative run-time=2.14 seconds
-
-Initiating PH iteration=14
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108901.1616 Max-Min= 3.48
-Converger=Normalized term diff value is 0.0002 - threshold reached=False
-Cumulative run-time=2.29 seconds
-
-Initiating PH iteration=15
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108900.7959 Max-Min= 2.38
-Converger=Normalized term diff value is 0.0001 - threshold reached=True
-Cumulative run-time=2.45 seconds
-
-Number of discrete variables fixed before final plugin calls=0 (total=0)
-Number of continuous variables fixed before final plugin calls=0 (total=3)
-PH complete
-
-Convergence history:
-Converger=Normalized term diff
-Iteration Metric Value
- 0 0.2663
- 1 0.0612
- 2 0.0494
- 3 0.0485
- 4 0.0437
- 5 0.0178
- 6 0.0068
- 7 0.0082
- 8 0.0044
- 9 0.0009
- 10 0.0014
- 11 0.0009
- 12 0.0002
- 13 0.0002
- 14 0.0002
- 15 0.0001
-
-
-Final number of discrete variables fixed=0 (total=0)
-Final number of continuous variables fixed=0 (total=3)
-
-Computing objective inner bound at xhat solution
-
-Computed objective upper bound=-108390.0026
-
-X-hat variable values:
-
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 80.0000 80.0000 80.0000
-
- Index: [SUGAR_BEETS] Values: 250.0000 250.0000 250.0000
-
- Index: [WHEAT] Values: 170.0000 170.0000 170.0000
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108900.0010 108900.0010 108900.0010 Max-Min: 0.0000 Avg: 108900.0010
-
-X-hat costs:
-
-Scenario Tree Costs
-----------------------------------------------------
-Tree Nodes:
-
- Name=AboveAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AboveAverageScenario
- Expected cost of (sub)tree rooted at node=-275900.0041
-
- Name=AverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AverageScenario
- Expected cost of (sub)tree rooted at node=-218250.0035
-
- Name=BelowAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-157720.0030
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- AboveAverageNode
- AverageNode
- BelowAverageNode
- Scenarios:
- AboveAverageScenario
- AverageScenario
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-108390.0026
-
-----------------------------------------------------
-Scenarios:
-
- Name=AboveAverageScenario
- Probability=0.3333
- Leaf Node=AboveAverageNode
- Tree node sequence:
- RootNode
- AboveAverageNode
- Stage= FirstStage Cost=108900.0010
- Stage= SecondStage Cost=-275900.0041
- Total scenario cost=-167000.0031
-
- Name=AverageScenario
- Probability=0.3333
- Leaf Node=AverageNode
- Tree node sequence:
- RootNode
- AverageNode
- Stage= FirstStage Cost=108900.0010
- Stage= SecondStage Cost=-218250.0035
- Total scenario cost=-109350.0026
-
- Name=BelowAverageScenario
- Probability=0.3333
- Leaf Node=BelowAverageNode
- Tree node sequence:
- RootNode
- BelowAverageNode
- Stage= FirstStage Cost=108900.0010
- Stage= SecondStage Cost=-157720.0030
- Total scenario cost=-48820.0020
-
-----------------------------------------------------
-
-
-Total PH execution time=2.70 seconds
-
-
-Total execution time=2.86 seconds
diff --git a/pyomo/pysp/tests/unit/baselines/farmer_quadratic_cplex.baseline b/pyomo/pysp/tests/unit/baselines/farmer_quadratic_cplex.baseline
deleted file mode 100644
index 7f76e13a7b3..00000000000
--- a/pyomo/pysp/tests/unit/baselines/farmer_quadratic_cplex.baseline
+++ /dev/null
@@ -1,397 +0,0 @@
-Initializing PH
-
-Starting PH
-
-Initiating PH iteration=0
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 113494.4444 Max-Min=10416.67
-Converger=Normalized term diff value is 0.2540 - threshold reached=False
-Cumulative run-time=0.55 seconds
-
-Initiating PH iteration=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 113107.2221 Max-Min= 6943.89
-Converger=Normalized term diff value is 0.1259 - threshold reached=False
-Cumulative run-time=1.15 seconds
-
-Initiating PH iteration=2
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 112954.6296 Max-Min= 2234.82
-Converger=Normalized term diff value is 0.0816 - threshold reached=False
-Cumulative run-time=1.75 seconds
-
-Initiating PH iteration=3
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 112963.0248 Max-Min= 2375.31
-Converger=Normalized term diff value is 0.0796 - threshold reached=False
-Cumulative run-time=2.27 seconds
-
-Initiating PH iteration=4
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 112915.6071 Max-Min= 3047.08
-Converger=Normalized term diff value is 0.0776 - threshold reached=False
-Cumulative run-time=2.85 seconds
-
-Initiating PH iteration=5
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 112825.3926 Max-Min= 3339.81
-Converger=Normalized term diff value is 0.0794 - threshold reached=False
-Cumulative run-time=3.42 seconds
-
-Initiating PH iteration=6
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 112317.9502 Max-Min= 2019.60
-Converger=Normalized term diff value is 0.0668 - threshold reached=False
-Cumulative run-time=3.94 seconds
-
-Initiating PH iteration=7
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 111364.4660 Max-Min= 1181.85
-Converger=Normalized term diff value is 0.0542 - threshold reached=False
-Cumulative run-time=4.53 seconds
-
-Initiating PH iteration=8
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 110283.4074 Max-Min= 463.23
-Converger=Normalized term diff value is 0.0360 - threshold reached=False
-Cumulative run-time=5.12 seconds
-
-Initiating PH iteration=9
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 109399.2542 Max-Min= 363.90
-Converger=Normalized term diff value is 0.0243 - threshold reached=False
-Cumulative run-time=5.70 seconds
-
-Initiating PH iteration=10
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108834.1930 Max-Min= 933.90
-Converger=Normalized term diff value is 0.0256 - threshold reached=False
-Cumulative run-time=6.28 seconds
-
-Initiating PH iteration=11
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108575.3219 Max-Min= 918.57
-Converger=Normalized term diff value is 0.0248 - threshold reached=False
-Cumulative run-time=6.87 seconds
-
-Initiating PH iteration=12
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108513.5347 Max-Min= 591.25
-Converger=Normalized term diff value is 0.0163 - threshold reached=False
-Cumulative run-time=7.47 seconds
-
-Initiating PH iteration=13
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108528.2899 Max-Min= 175.95
-Converger=Normalized term diff value is 0.0081 - threshold reached=False
-Cumulative run-time=8.08 seconds
-
-Initiating PH iteration=14
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108561.6577 Max-Min= 274.77
-Converger=Normalized term diff value is 0.0168 - threshold reached=False
-Cumulative run-time=8.66 seconds
-
-Initiating PH iteration=15
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108604.0579 Max-Min= 295.14
-Converger=Normalized term diff value is 0.0163 - threshold reached=False
-Cumulative run-time=9.26 seconds
-
-Initiating PH iteration=16
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108667.3583 Max-Min= 127.67
-Converger=Normalized term diff value is 0.0098 - threshold reached=False
-Cumulative run-time=9.84 seconds
-
-Initiating PH iteration=17
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108758.4237 Max-Min= 59.69
-Converger=Normalized term diff value is 0.0032 - threshold reached=False
-Cumulative run-time=10.43 seconds
-
-Initiating PH iteration=18
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108868.1277 Max-Min= 101.79
-Converger=Normalized term diff value is 0.0026 - threshold reached=False
-Cumulative run-time=11.00 seconds
-
-Initiating PH iteration=19
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108975.3089 Max-Min= 73.41
-Converger=Normalized term diff value is 0.0039 - threshold reached=False
-Cumulative run-time=11.59 seconds
-
-Initiating PH iteration=20
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 109057.4144 Max-Min= 39.47
-Converger=Normalized term diff value is 0.0043 - threshold reached=False
-Cumulative run-time=12.18 seconds
-
-Initiating PH iteration=21
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 109099.7145 Max-Min= 87.57
-Converger=Normalized term diff value is 0.0044 - threshold reached=False
-Cumulative run-time=12.76 seconds
-
-Initiating PH iteration=22
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 109099.1239 Max-Min= 104.22
-Converger=Normalized term diff value is 0.0040 - threshold reached=False
-Cumulative run-time=13.30 seconds
-
-Initiating PH iteration=23
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 109062.8322 Max-Min= 88.54
-Converger=Normalized term diff value is 0.0032 - threshold reached=False
-Cumulative run-time=13.82 seconds
-
-Initiating PH iteration=24
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 109004.1156 Max-Min= 54.49
-Converger=Normalized term diff value is 0.0021 - threshold reached=False
-Cumulative run-time=14.37 seconds
-
-Initiating PH iteration=25
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108937.8039 Max-Min= 16.89
-Converger=Normalized term diff value is 0.0008 - threshold reached=False
-Cumulative run-time=14.96 seconds
-
-Initiating PH iteration=26
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108876.8822 Max-Min= 14.27
-Converger=Normalized term diff value is 0.0005 - threshold reached=False
-Cumulative run-time=15.52 seconds
-
-Initiating PH iteration=27
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108830.6201 Max-Min= 34.81
-Converger=Normalized term diff value is 0.0015 - threshold reached=False
-Cumulative run-time=16.07 seconds
-
-Initiating PH iteration=28
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108803.9655 Max-Min= 44.57
-Converger=Normalized term diff value is 0.0021 - threshold reached=False
-Cumulative run-time=16.59 seconds
-
-Initiating PH iteration=29
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108797.7661 Max-Min= 45.24
-Converger=Normalized term diff value is 0.0023 - threshold reached=False
-Cumulative run-time=17.11 seconds
-
-Initiating PH iteration=30
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108809.4793 Max-Min= 39.01
-Converger=Normalized term diff value is 0.0020 - threshold reached=False
-Cumulative run-time=17.63 seconds
-
-Initiating PH iteration=31
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108834.1639 Max-Min= 28.07
-Converger=Normalized term diff value is 0.0015 - threshold reached=False
-Cumulative run-time=18.15 seconds
-
-Initiating PH iteration=32
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108865.6237 Max-Min= 14.67
-Converger=Normalized term diff value is 0.0008 - threshold reached=False
-Cumulative run-time=18.70 seconds
-
-Initiating PH iteration=33
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108897.5679 Max-Min= 1.06
-Converger=Normalized term diff value is 0.0001 - threshold reached=True
-Cumulative run-time=19.28 seconds
-
-Number of discrete variables fixed before final plugin calls=0 (total=0)
-Number of continuous variables fixed before final plugin calls=0 (total=3)
-PH complete
-
-Convergence history:
-Converger=Normalized term diff
-Iteration Metric Value
- 0 0.2540
- 1 0.1259
- 2 0.0816
- 3 0.0796
- 4 0.0776
- 5 0.0794
- 6 0.0668
- 7 0.0542
- 8 0.0360
- 9 0.0243
- 10 0.0256
- 11 0.0248
- 12 0.0163
- 13 0.0081
- 14 0.0168
- 15 0.0163
- 16 0.0098
- 17 0.0032
- 18 0.0026
- 19 0.0039
- 20 0.0043
- 21 0.0044
- 22 0.0040
- 23 0.0032
- 24 0.0021
- 25 0.0008
- 26 0.0005
- 27 0.0015
- 28 0.0021
- 29 0.0023
- 30 0.0020
- 31 0.0015
- 32 0.0008
- 33 0.0001
-
-
-Final number of discrete variables fixed=0 (total=0)
-Final number of continuous variables fixed=0 (total=3)
-
-Computing objective inner bound at xhat solution
-
-Computed objective upper bound=-108388.7726
-
-X-hat variable values:
-
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 79.9768 79.9768 79.9768
-
- Index: [SUGAR_BEETS] Values: 250.0000 250.0000 250.0000
-
- Index: [WHEAT] Values: 170.0232 170.0232 170.0232
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108898.1476 108898.1476 108898.1476 Max-Min: 0.0000 Avg: 108898.1476
-
-X-hat costs:
-
-Scenario Tree Costs
-----------------------------------------------------
-Tree Nodes:
-
- Name=AboveAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AboveAverageScenario
- Expected cost of (sub)tree rooted at node=-275899.3047
-
- Name=AverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AverageScenario
- Expected cost of (sub)tree rooted at node=-218245.2532
-
- Name=BelowAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-157716.2026
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- AboveAverageNode
- AverageNode
- BelowAverageNode
- Scenarios:
- AboveAverageScenario
- AverageScenario
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-108388.7726
-
-----------------------------------------------------
-Scenarios:
-
- Name=AboveAverageScenario
- Probability=0.3333
- Leaf Node=AboveAverageNode
- Tree node sequence:
- RootNode
- AboveAverageNode
- Stage= FirstStage Cost=108898.1476
- Stage= SecondStage Cost=-275899.3047
- Total scenario cost=-167001.1571
-
- Name=AverageScenario
- Probability=0.3333
- Leaf Node=AverageNode
- Tree node sequence:
- RootNode
- AverageNode
- Stage= FirstStage Cost=108898.1476
- Stage= SecondStage Cost=-218245.2532
- Total scenario cost=-109347.1056
-
- Name=BelowAverageScenario
- Probability=0.3333
- Leaf Node=BelowAverageNode
- Tree node sequence:
- RootNode
- BelowAverageNode
- Stage= FirstStage Cost=108898.1476
- Stage= SecondStage Cost=-157716.2026
- Total scenario cost=-48818.0550
-
-----------------------------------------------------
-
-
-Total PH execution time=19.84 seconds
-
-
-Total execution time=19.90 seconds
diff --git a/pyomo/pysp/tests/unit/baselines/farmer_quadratic_cplex_direct.baseline b/pyomo/pysp/tests/unit/baselines/farmer_quadratic_cplex_direct.baseline
deleted file mode 100644
index f570cd3cca9..00000000000
--- a/pyomo/pysp/tests/unit/baselines/farmer_quadratic_cplex_direct.baseline
+++ /dev/null
@@ -1,397 +0,0 @@
-Initializing PH
-
-Starting PH
-
-Initiating PH iteration=0
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 113494.4444 Max-Min=10416.67
-Converger=Normalized term diff value is 0.2540 - threshold reached=False
-Cumulative run-time=0.07 seconds
-
-Initiating PH iteration=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 113107.2221 Max-Min= 6943.89
-Converger=Normalized term diff value is 0.1259 - threshold reached=False
-Cumulative run-time=0.16 seconds
-
-Initiating PH iteration=2
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 112954.6296 Max-Min= 2234.82
-Converger=Normalized term diff value is 0.0816 - threshold reached=False
-Cumulative run-time=0.25 seconds
-
-Initiating PH iteration=3
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 112963.0248 Max-Min= 2375.31
-Converger=Normalized term diff value is 0.0796 - threshold reached=False
-Cumulative run-time=0.33 seconds
-
-Initiating PH iteration=4
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 112915.6071 Max-Min= 3047.08
-Converger=Normalized term diff value is 0.0776 - threshold reached=False
-Cumulative run-time=0.42 seconds
-
-Initiating PH iteration=5
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 112825.3926 Max-Min= 3339.81
-Converger=Normalized term diff value is 0.0794 - threshold reached=False
-Cumulative run-time=0.51 seconds
-
-Initiating PH iteration=6
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 112317.9502 Max-Min= 2019.60
-Converger=Normalized term diff value is 0.0668 - threshold reached=False
-Cumulative run-time=0.61 seconds
-
-Initiating PH iteration=7
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 111364.4660 Max-Min= 1181.85
-Converger=Normalized term diff value is 0.0542 - threshold reached=False
-Cumulative run-time=0.70 seconds
-
-Initiating PH iteration=8
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 110283.4074 Max-Min= 463.23
-Converger=Normalized term diff value is 0.0360 - threshold reached=False
-Cumulative run-time=0.79 seconds
-
-Initiating PH iteration=9
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 109399.2542 Max-Min= 363.90
-Converger=Normalized term diff value is 0.0243 - threshold reached=False
-Cumulative run-time=0.87 seconds
-
-Initiating PH iteration=10
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108834.1930 Max-Min= 933.90
-Converger=Normalized term diff value is 0.0256 - threshold reached=False
-Cumulative run-time=0.96 seconds
-
-Initiating PH iteration=11
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108575.3219 Max-Min= 918.57
-Converger=Normalized term diff value is 0.0248 - threshold reached=False
-Cumulative run-time=1.04 seconds
-
-Initiating PH iteration=12
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108513.5347 Max-Min= 591.25
-Converger=Normalized term diff value is 0.0163 - threshold reached=False
-Cumulative run-time=1.12 seconds
-
-Initiating PH iteration=13
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108528.2899 Max-Min= 175.95
-Converger=Normalized term diff value is 0.0081 - threshold reached=False
-Cumulative run-time=1.21 seconds
-
-Initiating PH iteration=14
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108561.6577 Max-Min= 274.77
-Converger=Normalized term diff value is 0.0168 - threshold reached=False
-Cumulative run-time=1.30 seconds
-
-Initiating PH iteration=15
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108604.0579 Max-Min= 295.14
-Converger=Normalized term diff value is 0.0163 - threshold reached=False
-Cumulative run-time=1.40 seconds
-
-Initiating PH iteration=16
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108667.3583 Max-Min= 127.67
-Converger=Normalized term diff value is 0.0098 - threshold reached=False
-Cumulative run-time=1.49 seconds
-
-Initiating PH iteration=17
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108758.4237 Max-Min= 59.69
-Converger=Normalized term diff value is 0.0032 - threshold reached=False
-Cumulative run-time=1.58 seconds
-
-Initiating PH iteration=18
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108868.1277 Max-Min= 101.79
-Converger=Normalized term diff value is 0.0026 - threshold reached=False
-Cumulative run-time=1.66 seconds
-
-Initiating PH iteration=19
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108975.3089 Max-Min= 73.41
-Converger=Normalized term diff value is 0.0039 - threshold reached=False
-Cumulative run-time=1.75 seconds
-
-Initiating PH iteration=20
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 109057.4144 Max-Min= 39.47
-Converger=Normalized term diff value is 0.0043 - threshold reached=False
-Cumulative run-time=1.85 seconds
-
-Initiating PH iteration=21
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 109099.7145 Max-Min= 87.57
-Converger=Normalized term diff value is 0.0044 - threshold reached=False
-Cumulative run-time=1.93 seconds
-
-Initiating PH iteration=22
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 109099.1239 Max-Min= 104.22
-Converger=Normalized term diff value is 0.0040 - threshold reached=False
-Cumulative run-time=2.02 seconds
-
-Initiating PH iteration=23
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 109062.8322 Max-Min= 88.54
-Converger=Normalized term diff value is 0.0032 - threshold reached=False
-Cumulative run-time=2.10 seconds
-
-Initiating PH iteration=24
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 109004.1156 Max-Min= 54.49
-Converger=Normalized term diff value is 0.0021 - threshold reached=False
-Cumulative run-time=2.19 seconds
-
-Initiating PH iteration=25
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108937.8039 Max-Min= 16.89
-Converger=Normalized term diff value is 0.0008 - threshold reached=False
-Cumulative run-time=2.28 seconds
-
-Initiating PH iteration=26
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108876.8822 Max-Min= 14.27
-Converger=Normalized term diff value is 0.0005 - threshold reached=False
-Cumulative run-time=2.37 seconds
-
-Initiating PH iteration=27
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108830.6201 Max-Min= 34.81
-Converger=Normalized term diff value is 0.0015 - threshold reached=False
-Cumulative run-time=2.45 seconds
-
-Initiating PH iteration=28
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108803.9655 Max-Min= 44.57
-Converger=Normalized term diff value is 0.0021 - threshold reached=False
-Cumulative run-time=2.55 seconds
-
-Initiating PH iteration=29
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108797.7661 Max-Min= 45.24
-Converger=Normalized term diff value is 0.0023 - threshold reached=False
-Cumulative run-time=2.65 seconds
-
-Initiating PH iteration=30
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108809.4793 Max-Min= 39.01
-Converger=Normalized term diff value is 0.0020 - threshold reached=False
-Cumulative run-time=2.74 seconds
-
-Initiating PH iteration=31
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108834.1639 Max-Min= 28.07
-Converger=Normalized term diff value is 0.0015 - threshold reached=False
-Cumulative run-time=2.83 seconds
-
-Initiating PH iteration=32
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108865.6237 Max-Min= 14.67
-Converger=Normalized term diff value is 0.0008 - threshold reached=False
-Cumulative run-time=2.91 seconds
-
-Initiating PH iteration=33
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108897.5679 Max-Min= 1.06
-Converger=Normalized term diff value is 0.0001 - threshold reached=True
-Cumulative run-time=2.99 seconds
-
-Number of discrete variables fixed before final plugin calls=0 (total=0)
-Number of continuous variables fixed before final plugin calls=0 (total=3)
-PH complete
-
-Convergence history:
-Converger=Normalized term diff
-Iteration Metric Value
- 0 0.2540
- 1 0.1259
- 2 0.0816
- 3 0.0796
- 4 0.0776
- 5 0.0794
- 6 0.0668
- 7 0.0542
- 8 0.0360
- 9 0.0243
- 10 0.0256
- 11 0.0248
- 12 0.0163
- 13 0.0081
- 14 0.0168
- 15 0.0163
- 16 0.0098
- 17 0.0032
- 18 0.0026
- 19 0.0039
- 20 0.0043
- 21 0.0044
- 22 0.0040
- 23 0.0032
- 24 0.0021
- 25 0.0008
- 26 0.0005
- 27 0.0015
- 28 0.0021
- 29 0.0023
- 30 0.0020
- 31 0.0015
- 32 0.0008
- 33 0.0001
-
-
-Final number of discrete variables fixed=0 (total=0)
-Final number of continuous variables fixed=0 (total=3)
-
-Computing objective inner bound at xhat solution
-
-Computed objective upper bound=-108388.7726
-
-X-hat variable values:
-
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 79.9768 79.9768 79.9768
-
- Index: [SUGAR_BEETS] Values: 250.0000 250.0000 250.0000
-
- Index: [WHEAT] Values: 170.0232 170.0232 170.0232
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108898.1476 108898.1476 108898.1472 Max-Min: 0.0004 Avg: 108898.1475
-
-X-hat costs:
-
-Scenario Tree Costs
-----------------------------------------------------
-Tree Nodes:
-
- Name=AboveAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AboveAverageScenario
- Expected cost of (sub)tree rooted at node=-275899.3044
-
- Name=AverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AverageScenario
- Expected cost of (sub)tree rooted at node=-218245.2532
-
- Name=BelowAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-157716.2026
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- AboveAverageNode
- AverageNode
- BelowAverageNode
- Scenarios:
- AboveAverageScenario
- AverageScenario
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-108388.7725
-
-----------------------------------------------------
-Scenarios:
-
- Name=AboveAverageScenario
- Probability=0.3333
- Leaf Node=AboveAverageNode
- Tree node sequence:
- RootNode
- AboveAverageNode
- Stage= FirstStage Cost=108898.1472
- Stage= SecondStage Cost=-275899.3044
- Total scenario cost=-167001.1572
-
- Name=AverageScenario
- Probability=0.3333
- Leaf Node=AverageNode
- Tree node sequence:
- RootNode
- AverageNode
- Stage= FirstStage Cost=108898.1476
- Stage= SecondStage Cost=-218245.2532
- Total scenario cost=-109347.1056
-
- Name=BelowAverageScenario
- Probability=0.3333
- Leaf Node=BelowAverageNode
- Tree node sequence:
- RootNode
- BelowAverageNode
- Stage= FirstStage Cost=108898.1476
- Stage= SecondStage Cost=-157716.2026
- Total scenario cost=-48818.0550
-
-----------------------------------------------------
-
-
-Total PH execution time=3.06 seconds
-
-
-Total execution time=3.12 seconds
diff --git a/pyomo/pysp/tests/unit/baselines/farmer_quadratic_cplex_with_phpyro.baseline b/pyomo/pysp/tests/unit/baselines/farmer_quadratic_cplex_with_phpyro.baseline
deleted file mode 100644
index 7b12d8930ae..00000000000
--- a/pyomo/pysp/tests/unit/baselines/farmer_quadratic_cplex_with_phpyro.baseline
+++ /dev/null
@@ -1,398 +0,0 @@
-Client assigned dispatcher with URI=PYRO://134.253.194.1:35852/86fdc201bde32195ca4b8c8933b43481ec
-Initializing PH
-
-Starting PH
-
-Initiating PH iteration=0
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 113494.4444 Max-Min=10416.67
-Converger=Normalized term diff value is 0.2540 - threshold reached=False
-Cumulative run-time=0.03 seconds
-
-Initiating PH iteration=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 113107.2221 Max-Min= 6943.89
-Converger=Normalized term diff value is 0.1259 - threshold reached=False
-Cumulative run-time=0.08 seconds
-
-Initiating PH iteration=2
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 112954.6296 Max-Min= 2234.82
-Converger=Normalized term diff value is 0.0816 - threshold reached=False
-Cumulative run-time=0.12 seconds
-
-Initiating PH iteration=3
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 112963.0248 Max-Min= 2375.31
-Converger=Normalized term diff value is 0.0796 - threshold reached=False
-Cumulative run-time=0.16 seconds
-
-Initiating PH iteration=4
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 112915.6071 Max-Min= 3047.08
-Converger=Normalized term diff value is 0.0776 - threshold reached=False
-Cumulative run-time=0.21 seconds
-
-Initiating PH iteration=5
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 112825.3926 Max-Min= 3339.81
-Converger=Normalized term diff value is 0.0794 - threshold reached=False
-Cumulative run-time=0.25 seconds
-
-Initiating PH iteration=6
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 112317.9502 Max-Min= 2019.60
-Converger=Normalized term diff value is 0.0668 - threshold reached=False
-Cumulative run-time=0.28 seconds
-
-Initiating PH iteration=7
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 111364.4660 Max-Min= 1181.85
-Converger=Normalized term diff value is 0.0542 - threshold reached=False
-Cumulative run-time=0.32 seconds
-
-Initiating PH iteration=8
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 110283.4074 Max-Min= 463.23
-Converger=Normalized term diff value is 0.0360 - threshold reached=False
-Cumulative run-time=0.36 seconds
-
-Initiating PH iteration=9
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 109399.2542 Max-Min= 363.90
-Converger=Normalized term diff value is 0.0243 - threshold reached=False
-Cumulative run-time=0.40 seconds
-
-Initiating PH iteration=10
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108834.1930 Max-Min= 933.90
-Converger=Normalized term diff value is 0.0256 - threshold reached=False
-Cumulative run-time=0.44 seconds
-
-Initiating PH iteration=11
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108575.3219 Max-Min= 918.57
-Converger=Normalized term diff value is 0.0248 - threshold reached=False
-Cumulative run-time=0.48 seconds
-
-Initiating PH iteration=12
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108513.5347 Max-Min= 591.25
-Converger=Normalized term diff value is 0.0163 - threshold reached=False
-Cumulative run-time=0.54 seconds
-
-Initiating PH iteration=13
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108528.2899 Max-Min= 175.95
-Converger=Normalized term diff value is 0.0081 - threshold reached=False
-Cumulative run-time=0.58 seconds
-
-Initiating PH iteration=14
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108561.6577 Max-Min= 274.77
-Converger=Normalized term diff value is 0.0168 - threshold reached=False
-Cumulative run-time=0.62 seconds
-
-Initiating PH iteration=15
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108604.0579 Max-Min= 295.14
-Converger=Normalized term diff value is 0.0163 - threshold reached=False
-Cumulative run-time=0.65 seconds
-
-Initiating PH iteration=16
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108667.3583 Max-Min= 127.67
-Converger=Normalized term diff value is 0.0098 - threshold reached=False
-Cumulative run-time=0.69 seconds
-
-Initiating PH iteration=17
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108758.4237 Max-Min= 59.69
-Converger=Normalized term diff value is 0.0032 - threshold reached=False
-Cumulative run-time=0.73 seconds
-
-Initiating PH iteration=18
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108868.1277 Max-Min= 101.79
-Converger=Normalized term diff value is 0.0026 - threshold reached=False
-Cumulative run-time=0.77 seconds
-
-Initiating PH iteration=19
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108975.3089 Max-Min= 73.41
-Converger=Normalized term diff value is 0.0039 - threshold reached=False
-Cumulative run-time=0.81 seconds
-
-Initiating PH iteration=20
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 109057.4144 Max-Min= 39.47
-Converger=Normalized term diff value is 0.0043 - threshold reached=False
-Cumulative run-time=0.85 seconds
-
-Initiating PH iteration=21
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 109099.7145 Max-Min= 87.57
-Converger=Normalized term diff value is 0.0044 - threshold reached=False
-Cumulative run-time=0.89 seconds
-
-Initiating PH iteration=22
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 109099.1239 Max-Min= 104.22
-Converger=Normalized term diff value is 0.0040 - threshold reached=False
-Cumulative run-time=0.93 seconds
-
-Initiating PH iteration=23
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 109062.8322 Max-Min= 88.54
-Converger=Normalized term diff value is 0.0032 - threshold reached=False
-Cumulative run-time=0.99 seconds
-
-Initiating PH iteration=24
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 109004.1156 Max-Min= 54.49
-Converger=Normalized term diff value is 0.0021 - threshold reached=False
-Cumulative run-time=1.03 seconds
-
-Initiating PH iteration=25
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108937.8039 Max-Min= 16.89
-Converger=Normalized term diff value is 0.0008 - threshold reached=False
-Cumulative run-time=1.07 seconds
-
-Initiating PH iteration=26
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108876.8822 Max-Min= 14.27
-Converger=Normalized term diff value is 0.0005 - threshold reached=False
-Cumulative run-time=1.11 seconds
-
-Initiating PH iteration=27
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108830.6201 Max-Min= 34.81
-Converger=Normalized term diff value is 0.0015 - threshold reached=False
-Cumulative run-time=1.16 seconds
-
-Initiating PH iteration=28
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108803.9655 Max-Min= 44.57
-Converger=Normalized term diff value is 0.0021 - threshold reached=False
-Cumulative run-time=1.21 seconds
-
-Initiating PH iteration=29
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108797.7661 Max-Min= 45.24
-Converger=Normalized term diff value is 0.0023 - threshold reached=False
-Cumulative run-time=1.27 seconds
-
-Initiating PH iteration=30
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108809.4793 Max-Min= 39.01
-Converger=Normalized term diff value is 0.0020 - threshold reached=False
-Cumulative run-time=1.31 seconds
-
-Initiating PH iteration=31
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108834.1639 Max-Min= 28.07
-Converger=Normalized term diff value is 0.0015 - threshold reached=False
-Cumulative run-time=1.35 seconds
-
-Initiating PH iteration=32
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108865.6237 Max-Min= 14.67
-Converger=Normalized term diff value is 0.0008 - threshold reached=False
-Cumulative run-time=1.39 seconds
-
-Initiating PH iteration=33
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108897.5679 Max-Min= 1.06
-Converger=Normalized term diff value is 0.0001 - threshold reached=True
-Cumulative run-time=1.45 seconds
-
-Number of discrete variables fixed before final plugin calls=0 (total=0)
-Number of continuous variables fixed before final plugin calls=0 (total=3)
-PH complete
-
-Convergence history:
-Converger=Normalized term diff
-Iteration Metric Value
- 0 0.2540
- 1 0.1259
- 2 0.0816
- 3 0.0796
- 4 0.0776
- 5 0.0794
- 6 0.0668
- 7 0.0542
- 8 0.0360
- 9 0.0243
- 10 0.0256
- 11 0.0248
- 12 0.0163
- 13 0.0081
- 14 0.0168
- 15 0.0163
- 16 0.0098
- 17 0.0032
- 18 0.0026
- 19 0.0039
- 20 0.0043
- 21 0.0044
- 22 0.0040
- 23 0.0032
- 24 0.0021
- 25 0.0008
- 26 0.0005
- 27 0.0015
- 28 0.0021
- 29 0.0023
- 30 0.0020
- 31 0.0015
- 32 0.0008
- 33 0.0001
-
-
-Final number of discrete variables fixed=0 (total=0)
-Final number of continuous variables fixed=0 (total=3)
-
-Computing objective inner bound at xhat solution
-
-Computed objective upper bound=-108388.7726
-
-X-hat variable values:
-
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 79.9768 79.9768 79.9768
-
- Index: [SUGAR_BEETS] Values: 250.0000 250.0000 250.0000
-
- Index: [WHEAT] Values: 170.0232 170.0232 170.0232
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108898.1476 108898.1476 108898.1476 Max-Min: 0.0000 Avg: 108898.1476
-
-X-hat costs:
-
-Scenario Tree Costs
-----------------------------------------------------
-Tree Nodes:
-
- Name=AboveAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AboveAverageScenario
- Expected cost of (sub)tree rooted at node=-275899.3047
-
- Name=AverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AverageScenario
- Expected cost of (sub)tree rooted at node=-218245.2532
-
- Name=BelowAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-157716.2026
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- AboveAverageNode
- AverageNode
- BelowAverageNode
- Scenarios:
- AboveAverageScenario
- AverageScenario
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-108388.7726
-
-----------------------------------------------------
-Scenarios:
-
- Name=AboveAverageScenario
- Probability=0.3333
- Leaf Node=AboveAverageNode
- Tree node sequence:
- RootNode
- AboveAverageNode
- Stage= FirstStage Cost=108898.1476
- Stage= SecondStage Cost=-275899.3047
- Total scenario cost=-167001.1571
-
- Name=AverageScenario
- Probability=0.3333
- Leaf Node=AverageNode
- Tree node sequence:
- RootNode
- AverageNode
- Stage= FirstStage Cost=108898.1476
- Stage= SecondStage Cost=-218245.2532
- Total scenario cost=-109347.1056
-
- Name=BelowAverageScenario
- Probability=0.3333
- Leaf Node=BelowAverageNode
- Tree node sequence:
- RootNode
- BelowAverageNode
- Stage= FirstStage Cost=108898.1476
- Stage= SecondStage Cost=-157716.2026
- Total scenario cost=-48818.0550
-
-----------------------------------------------------
-
-
-Total PH execution time=1.50 seconds
-
-
-Total execution time=1.58 seconds
diff --git a/pyomo/pysp/tests/unit/baselines/farmer_quadratic_cplex_with_pyro.baseline b/pyomo/pysp/tests/unit/baselines/farmer_quadratic_cplex_with_pyro.baseline
deleted file mode 100644
index 14ac21418c0..00000000000
--- a/pyomo/pysp/tests/unit/baselines/farmer_quadratic_cplex_with_pyro.baseline
+++ /dev/null
@@ -1,400 +0,0 @@
-Client attempting to find Pyro dispatcher object...
-Dispatcher Object URI: PYRO://134.253.194.1:35852/86fdc201bde32195ca4b8c8933b43481ec
-Connection to dispatch server established after 1 attempts and 0.00 seconds - this is client: 46410@snotra.sandia.gov
-Initializing PH
-
-Starting PH
-
-Initiating PH iteration=0
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 113494.4444 Max-Min=10416.67
-Converger=Normalized term diff value is 0.2540 - threshold reached=False
-Cumulative run-time=0.05 seconds
-
-Initiating PH iteration=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 113107.2221 Max-Min= 6943.89
-Converger=Normalized term diff value is 0.1259 - threshold reached=False
-Cumulative run-time=0.09 seconds
-
-Initiating PH iteration=2
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 112954.6296 Max-Min= 2234.82
-Converger=Normalized term diff value is 0.0816 - threshold reached=False
-Cumulative run-time=0.14 seconds
-
-Initiating PH iteration=3
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 112963.0248 Max-Min= 2375.31
-Converger=Normalized term diff value is 0.0796 - threshold reached=False
-Cumulative run-time=0.18 seconds
-
-Initiating PH iteration=4
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 112915.6071 Max-Min= 3047.08
-Converger=Normalized term diff value is 0.0776 - threshold reached=False
-Cumulative run-time=0.22 seconds
-
-Initiating PH iteration=5
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 112825.3926 Max-Min= 3339.81
-Converger=Normalized term diff value is 0.0794 - threshold reached=False
-Cumulative run-time=0.26 seconds
-
-Initiating PH iteration=6
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 112317.9502 Max-Min= 2019.60
-Converger=Normalized term diff value is 0.0668 - threshold reached=False
-Cumulative run-time=0.30 seconds
-
-Initiating PH iteration=7
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 111364.4660 Max-Min= 1181.85
-Converger=Normalized term diff value is 0.0542 - threshold reached=False
-Cumulative run-time=0.34 seconds
-
-Initiating PH iteration=8
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 110283.4074 Max-Min= 463.23
-Converger=Normalized term diff value is 0.0360 - threshold reached=False
-Cumulative run-time=0.38 seconds
-
-Initiating PH iteration=9
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 109399.2542 Max-Min= 363.90
-Converger=Normalized term diff value is 0.0243 - threshold reached=False
-Cumulative run-time=0.42 seconds
-
-Initiating PH iteration=10
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108834.1930 Max-Min= 933.90
-Converger=Normalized term diff value is 0.0256 - threshold reached=False
-Cumulative run-time=0.46 seconds
-
-Initiating PH iteration=11
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108575.3219 Max-Min= 918.57
-Converger=Normalized term diff value is 0.0248 - threshold reached=False
-Cumulative run-time=0.49 seconds
-
-Initiating PH iteration=12
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108513.5347 Max-Min= 591.25
-Converger=Normalized term diff value is 0.0163 - threshold reached=False
-Cumulative run-time=0.53 seconds
-
-Initiating PH iteration=13
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108528.2899 Max-Min= 175.95
-Converger=Normalized term diff value is 0.0081 - threshold reached=False
-Cumulative run-time=0.57 seconds
-
-Initiating PH iteration=14
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108561.6577 Max-Min= 274.77
-Converger=Normalized term diff value is 0.0168 - threshold reached=False
-Cumulative run-time=0.65 seconds
-
-Initiating PH iteration=15
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108604.0579 Max-Min= 295.14
-Converger=Normalized term diff value is 0.0163 - threshold reached=False
-Cumulative run-time=0.71 seconds
-
-Initiating PH iteration=16
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108667.3583 Max-Min= 127.67
-Converger=Normalized term diff value is 0.0098 - threshold reached=False
-Cumulative run-time=0.76 seconds
-
-Initiating PH iteration=17
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108758.4237 Max-Min= 59.69
-Converger=Normalized term diff value is 0.0032 - threshold reached=False
-Cumulative run-time=0.80 seconds
-
-Initiating PH iteration=18
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108868.1277 Max-Min= 101.79
-Converger=Normalized term diff value is 0.0026 - threshold reached=False
-Cumulative run-time=0.84 seconds
-
-Initiating PH iteration=19
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108975.3089 Max-Min= 73.41
-Converger=Normalized term diff value is 0.0039 - threshold reached=False
-Cumulative run-time=0.89 seconds
-
-Initiating PH iteration=20
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 109057.4144 Max-Min= 39.47
-Converger=Normalized term diff value is 0.0043 - threshold reached=False
-Cumulative run-time=0.98 seconds
-
-Initiating PH iteration=21
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 109099.7145 Max-Min= 87.57
-Converger=Normalized term diff value is 0.0044 - threshold reached=False
-Cumulative run-time=1.05 seconds
-
-Initiating PH iteration=22
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 109099.1239 Max-Min= 104.22
-Converger=Normalized term diff value is 0.0040 - threshold reached=False
-Cumulative run-time=1.12 seconds
-
-Initiating PH iteration=23
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 109062.8322 Max-Min= 88.54
-Converger=Normalized term diff value is 0.0032 - threshold reached=False
-Cumulative run-time=1.16 seconds
-
-Initiating PH iteration=24
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 109004.1156 Max-Min= 54.49
-Converger=Normalized term diff value is 0.0021 - threshold reached=False
-Cumulative run-time=1.20 seconds
-
-Initiating PH iteration=25
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108937.8039 Max-Min= 16.89
-Converger=Normalized term diff value is 0.0008 - threshold reached=False
-Cumulative run-time=1.28 seconds
-
-Initiating PH iteration=26
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108876.8822 Max-Min= 14.27
-Converger=Normalized term diff value is 0.0005 - threshold reached=False
-Cumulative run-time=1.37 seconds
-
-Initiating PH iteration=27
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108830.6201 Max-Min= 34.81
-Converger=Normalized term diff value is 0.0015 - threshold reached=False
-Cumulative run-time=1.45 seconds
-
-Initiating PH iteration=28
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108803.9655 Max-Min= 44.57
-Converger=Normalized term diff value is 0.0021 - threshold reached=False
-Cumulative run-time=1.51 seconds
-
-Initiating PH iteration=29
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108797.7661 Max-Min= 45.24
-Converger=Normalized term diff value is 0.0023 - threshold reached=False
-Cumulative run-time=1.58 seconds
-
-Initiating PH iteration=30
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108809.4793 Max-Min= 39.01
-Converger=Normalized term diff value is 0.0020 - threshold reached=False
-Cumulative run-time=1.63 seconds
-
-Initiating PH iteration=31
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108834.1639 Max-Min= 28.07
-Converger=Normalized term diff value is 0.0015 - threshold reached=False
-Cumulative run-time=1.67 seconds
-
-Initiating PH iteration=32
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108865.6237 Max-Min= 14.67
-Converger=Normalized term diff value is 0.0008 - threshold reached=False
-Cumulative run-time=1.73 seconds
-
-Initiating PH iteration=33
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108897.5679 Max-Min= 1.06
-Converger=Normalized term diff value is 0.0001 - threshold reached=True
-Cumulative run-time=1.78 seconds
-
-Number of discrete variables fixed before final plugin calls=0 (total=0)
-Number of continuous variables fixed before final plugin calls=0 (total=3)
-PH complete
-
-Convergence history:
-Converger=Normalized term diff
-Iteration Metric Value
- 0 0.2540
- 1 0.1259
- 2 0.0816
- 3 0.0796
- 4 0.0776
- 5 0.0794
- 6 0.0668
- 7 0.0542
- 8 0.0360
- 9 0.0243
- 10 0.0256
- 11 0.0248
- 12 0.0163
- 13 0.0081
- 14 0.0168
- 15 0.0163
- 16 0.0098
- 17 0.0032
- 18 0.0026
- 19 0.0039
- 20 0.0043
- 21 0.0044
- 22 0.0040
- 23 0.0032
- 24 0.0021
- 25 0.0008
- 26 0.0005
- 27 0.0015
- 28 0.0021
- 29 0.0023
- 30 0.0020
- 31 0.0015
- 32 0.0008
- 33 0.0001
-
-
-Final number of discrete variables fixed=0 (total=0)
-Final number of continuous variables fixed=0 (total=3)
-
-Computing objective inner bound at xhat solution
-
-Computed objective upper bound=-108388.7726
-
-X-hat variable values:
-
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 79.9768 79.9768 79.9768
-
- Index: [SUGAR_BEETS] Values: 250.0000 250.0000 250.0000
-
- Index: [WHEAT] Values: 170.0232 170.0232 170.0232
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108898.1476 108898.1476 108898.1476 Max-Min: 0.0000 Avg: 108898.1476
-
-X-hat costs:
-
-Scenario Tree Costs
-----------------------------------------------------
-Tree Nodes:
-
- Name=AboveAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AboveAverageScenario
- Expected cost of (sub)tree rooted at node=-275899.3047
-
- Name=AverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AverageScenario
- Expected cost of (sub)tree rooted at node=-218245.2532
-
- Name=BelowAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-157716.2026
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- AboveAverageNode
- AverageNode
- BelowAverageNode
- Scenarios:
- AboveAverageScenario
- AverageScenario
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-108388.7726
-
-----------------------------------------------------
-Scenarios:
-
- Name=AboveAverageScenario
- Probability=0.3333
- Leaf Node=AboveAverageNode
- Tree node sequence:
- RootNode
- AboveAverageNode
- Stage= FirstStage Cost=108898.1476
- Stage= SecondStage Cost=-275899.3047
- Total scenario cost=-167001.1571
-
- Name=AverageScenario
- Probability=0.3333
- Leaf Node=AverageNode
- Tree node sequence:
- RootNode
- AverageNode
- Stage= FirstStage Cost=108898.1476
- Stage= SecondStage Cost=-218245.2532
- Total scenario cost=-109347.1056
-
- Name=BelowAverageScenario
- Probability=0.3333
- Leaf Node=BelowAverageNode
- Tree node sequence:
- RootNode
- BelowAverageNode
- Stage= FirstStage Cost=108898.1476
- Stage= SecondStage Cost=-157716.2026
- Total scenario cost=-48818.0550
-
-----------------------------------------------------
-
-
-Total PH execution time=1.82 seconds
-
-
-Total execution time=1.90 seconds
diff --git a/pyomo/pysp/tests/unit/baselines/farmer_quadratic_gurobi.baseline b/pyomo/pysp/tests/unit/baselines/farmer_quadratic_gurobi.baseline
deleted file mode 100644
index 3ed4db53300..00000000000
--- a/pyomo/pysp/tests/unit/baselines/farmer_quadratic_gurobi.baseline
+++ /dev/null
@@ -1,397 +0,0 @@
-Initializing PH
-
-Starting PH
-
-Initiating PH iteration=0
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 113494.4444 Max-Min=10416.67
-Converger=Normalized term diff value is 0.2540 - threshold reached=False
-Cumulative run-time=0.94 seconds
-
-Initiating PH iteration=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 113107.2222 Max-Min= 6943.89
-Converger=Normalized term diff value is 0.1259 - threshold reached=False
-Cumulative run-time=1.89 seconds
-
-Initiating PH iteration=2
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 112954.6296 Max-Min= 2234.81
-Converger=Normalized term diff value is 0.0816 - threshold reached=False
-Cumulative run-time=2.85 seconds
-
-Initiating PH iteration=3
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 112963.0247 Max-Min= 2375.31
-Converger=Normalized term diff value is 0.0796 - threshold reached=False
-Cumulative run-time=3.75 seconds
-
-Initiating PH iteration=4
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 112915.6070 Max-Min= 3047.08
-Converger=Normalized term diff value is 0.0776 - threshold reached=False
-Cumulative run-time=4.67 seconds
-
-Initiating PH iteration=5
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 112825.3927 Max-Min= 3339.81
-Converger=Normalized term diff value is 0.0794 - threshold reached=False
-Cumulative run-time=5.58 seconds
-
-Initiating PH iteration=6
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 112317.9503 Max-Min= 2019.60
-Converger=Normalized term diff value is 0.0668 - threshold reached=False
-Cumulative run-time=6.43 seconds
-
-Initiating PH iteration=7
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 111364.4659 Max-Min= 1181.85
-Converger=Normalized term diff value is 0.0542 - threshold reached=False
-Cumulative run-time=7.28 seconds
-
-Initiating PH iteration=8
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 110283.4071 Max-Min= 463.23
-Converger=Normalized term diff value is 0.0360 - threshold reached=False
-Cumulative run-time=8.15 seconds
-
-Initiating PH iteration=9
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 109399.2538 Max-Min= 363.90
-Converger=Normalized term diff value is 0.0243 - threshold reached=False
-Cumulative run-time=9.07 seconds
-
-Initiating PH iteration=10
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108834.1926 Max-Min= 933.90
-Converger=Normalized term diff value is 0.0256 - threshold reached=False
-Cumulative run-time=9.99 seconds
-
-Initiating PH iteration=11
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108575.3215 Max-Min= 918.57
-Converger=Normalized term diff value is 0.0248 - threshold reached=False
-Cumulative run-time=10.91 seconds
-
-Initiating PH iteration=12
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108513.5342 Max-Min= 591.25
-Converger=Normalized term diff value is 0.0163 - threshold reached=False
-Cumulative run-time=11.83 seconds
-
-Initiating PH iteration=13
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108528.2895 Max-Min= 175.95
-Converger=Normalized term diff value is 0.0081 - threshold reached=False
-Cumulative run-time=12.75 seconds
-
-Initiating PH iteration=14
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108561.6573 Max-Min= 274.77
-Converger=Normalized term diff value is 0.0168 - threshold reached=False
-Cumulative run-time=13.71 seconds
-
-Initiating PH iteration=15
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108604.0575 Max-Min= 295.14
-Converger=Normalized term diff value is 0.0163 - threshold reached=False
-Cumulative run-time=14.59 seconds
-
-Initiating PH iteration=16
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108667.3580 Max-Min= 127.67
-Converger=Normalized term diff value is 0.0098 - threshold reached=False
-Cumulative run-time=15.49 seconds
-
-Initiating PH iteration=17
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108758.4236 Max-Min= 59.69
-Converger=Normalized term diff value is 0.0032 - threshold reached=False
-Cumulative run-time=16.45 seconds
-
-Initiating PH iteration=18
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108868.1277 Max-Min= 101.79
-Converger=Normalized term diff value is 0.0026 - threshold reached=False
-Cumulative run-time=17.41 seconds
-
-Initiating PH iteration=19
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108975.3090 Max-Min= 73.41
-Converger=Normalized term diff value is 0.0039 - threshold reached=False
-Cumulative run-time=18.35 seconds
-
-Initiating PH iteration=20
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 109057.4144 Max-Min= 39.47
-Converger=Normalized term diff value is 0.0043 - threshold reached=False
-Cumulative run-time=19.23 seconds
-
-Initiating PH iteration=21
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 109099.7145 Max-Min= 87.57
-Converger=Normalized term diff value is 0.0044 - threshold reached=False
-Cumulative run-time=20.08 seconds
-
-Initiating PH iteration=22
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 109099.1238 Max-Min= 104.22
-Converger=Normalized term diff value is 0.0040 - threshold reached=False
-Cumulative run-time=20.93 seconds
-
-Initiating PH iteration=23
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 109062.8320 Max-Min= 88.54
-Converger=Normalized term diff value is 0.0032 - threshold reached=False
-Cumulative run-time=21.78 seconds
-
-Initiating PH iteration=24
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 109004.1153 Max-Min= 54.49
-Converger=Normalized term diff value is 0.0021 - threshold reached=False
-Cumulative run-time=22.63 seconds
-
-Initiating PH iteration=25
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108937.8036 Max-Min= 16.89
-Converger=Normalized term diff value is 0.0008 - threshold reached=False
-Cumulative run-time=23.48 seconds
-
-Initiating PH iteration=26
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108876.8819 Max-Min= 14.27
-Converger=Normalized term diff value is 0.0005 - threshold reached=False
-Cumulative run-time=24.33 seconds
-
-Initiating PH iteration=27
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108830.6200 Max-Min= 34.81
-Converger=Normalized term diff value is 0.0015 - threshold reached=False
-Cumulative run-time=25.18 seconds
-
-Initiating PH iteration=28
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108803.9654 Max-Min= 44.57
-Converger=Normalized term diff value is 0.0021 - threshold reached=False
-Cumulative run-time=26.03 seconds
-
-Initiating PH iteration=29
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108797.7662 Max-Min= 45.24
-Converger=Normalized term diff value is 0.0023 - threshold reached=False
-Cumulative run-time=26.88 seconds
-
-Initiating PH iteration=30
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108809.4794 Max-Min= 39.01
-Converger=Normalized term diff value is 0.0020 - threshold reached=False
-Cumulative run-time=27.73 seconds
-
-Initiating PH iteration=31
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108834.1640 Max-Min= 28.07
-Converger=Normalized term diff value is 0.0015 - threshold reached=False
-Cumulative run-time=28.61 seconds
-
-Initiating PH iteration=32
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108865.6237 Max-Min= 14.67
-Converger=Normalized term diff value is 0.0008 - threshold reached=False
-Cumulative run-time=29.57 seconds
-
-Initiating PH iteration=33
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108897.5677 Max-Min= 1.06
-Converger=Normalized term diff value is 0.0001 - threshold reached=True
-Cumulative run-time=30.52 seconds
-
-Number of discrete variables fixed before final plugin calls=0 (total=0)
-Number of continuous variables fixed before final plugin calls=0 (total=3)
-PH complete
-
-Convergence history:
-Converger=Normalized term diff
-Iteration Metric Value
- 0 0.2540
- 1 0.1259
- 2 0.0816
- 3 0.0796
- 4 0.0776
- 5 0.0794
- 6 0.0668
- 7 0.0542
- 8 0.0360
- 9 0.0243
- 10 0.0256
- 11 0.0248
- 12 0.0163
- 13 0.0081
- 14 0.0168
- 15 0.0163
- 16 0.0098
- 17 0.0032
- 18 0.0026
- 19 0.0039
- 20 0.0043
- 21 0.0044
- 22 0.0040
- 23 0.0032
- 24 0.0021
- 25 0.0008
- 26 0.0005
- 27 0.0015
- 28 0.0021
- 29 0.0023
- 30 0.0020
- 31 0.0015
- 32 0.0008
- 33 0.0001
-
-
-Final number of discrete variables fixed=0 (total=0)
-Final number of continuous variables fixed=0 (total=3)
-
-Computing objective inner bound at xhat solution
-
-Computed objective upper bound=-108388.7726
-
-X-hat variable values:
-
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 79.9768 79.9768 79.9768
-
- Index: [SUGAR_BEETS] Values: 250.0000 250.0000 250.0000
-
- Index: [WHEAT] Values: 170.0232 170.0232 170.0232
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108898.1474 108898.1474 108898.1474 Max-Min: 0.0000 Avg: 108898.1474
-
-X-hat costs:
-
-Scenario Tree Costs
-----------------------------------------------------
-Tree Nodes:
-
- Name=AboveAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AboveAverageScenario
- Expected cost of (sub)tree rooted at node=-275899.3053
-
- Name=AverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AverageScenario
- Expected cost of (sub)tree rooted at node=-218245.2526
-
- Name=BelowAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-157716.2021
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- AboveAverageNode
- AverageNode
- BelowAverageNode
- Scenarios:
- AboveAverageScenario
- AverageScenario
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-108388.7726
-
-----------------------------------------------------
-Scenarios:
-
- Name=AboveAverageScenario
- Probability=0.3333
- Leaf Node=AboveAverageNode
- Tree node sequence:
- RootNode
- AboveAverageNode
- Stage= FirstStage Cost=108898.1474
- Stage= SecondStage Cost=-275899.3053
- Total scenario cost=-167001.1579
-
- Name=AverageScenario
- Probability=0.3333
- Leaf Node=AverageNode
- Tree node sequence:
- RootNode
- AverageNode
- Stage= FirstStage Cost=108898.1474
- Stage= SecondStage Cost=-218245.2526
- Total scenario cost=-109347.1053
-
- Name=BelowAverageScenario
- Probability=0.3333
- Leaf Node=BelowAverageNode
- Tree node sequence:
- RootNode
- BelowAverageNode
- Stage= FirstStage Cost=108898.1474
- Stage= SecondStage Cost=-157716.2021
- Total scenario cost=-48818.0547
-
-----------------------------------------------------
-
-
-Total PH execution time=31.43 seconds
-
-
-Total execution time=31.50 seconds
diff --git a/pyomo/pysp/tests/unit/baselines/farmer_quadratic_gurobi_direct.baseline b/pyomo/pysp/tests/unit/baselines/farmer_quadratic_gurobi_direct.baseline
deleted file mode 100644
index 1879264ceee..00000000000
--- a/pyomo/pysp/tests/unit/baselines/farmer_quadratic_gurobi_direct.baseline
+++ /dev/null
@@ -1,432 +0,0 @@
-Initializing PH
-
-Starting PH
-
-Initiating PH iteration=0
-At least one sub-problem solve time was undefined - skipping timing statistics
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 113494.4444 Max-Min=10416.67
-Converger=Normalized term diff value is 0.2540 - threshold reached=False
-Cumulative run-time=0.04 seconds
-
-Initiating PH iteration=1
-At least one sub-problem solve time was undefined - skipping timing statistics
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 113107.2222 Max-Min= 6943.89
-Converger=Normalized term diff value is 0.1259 - threshold reached=False
-Cumulative run-time=0.07 seconds
-
-Initiating PH iteration=2
-At least one sub-problem solve time was undefined - skipping timing statistics
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 112954.6296 Max-Min= 2234.81
-Converger=Normalized term diff value is 0.0816 - threshold reached=False
-Cumulative run-time=0.11 seconds
-
-Initiating PH iteration=3
-At least one sub-problem solve time was undefined - skipping timing statistics
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 112963.0247 Max-Min= 2375.31
-Converger=Normalized term diff value is 0.0796 - threshold reached=False
-Cumulative run-time=0.14 seconds
-
-Initiating PH iteration=4
-At least one sub-problem solve time was undefined - skipping timing statistics
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 112915.6070 Max-Min= 3047.08
-Converger=Normalized term diff value is 0.0776 - threshold reached=False
-Cumulative run-time=0.18 seconds
-
-Initiating PH iteration=5
-At least one sub-problem solve time was undefined - skipping timing statistics
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 112825.3927 Max-Min= 3339.81
-Converger=Normalized term diff value is 0.0794 - threshold reached=False
-Cumulative run-time=0.22 seconds
-
-Initiating PH iteration=6
-At least one sub-problem solve time was undefined - skipping timing statistics
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 112317.9503 Max-Min= 2019.60
-Converger=Normalized term diff value is 0.0668 - threshold reached=False
-Cumulative run-time=0.25 seconds
-
-Initiating PH iteration=7
-At least one sub-problem solve time was undefined - skipping timing statistics
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 111364.4659 Max-Min= 1181.85
-Converger=Normalized term diff value is 0.0542 - threshold reached=False
-Cumulative run-time=0.29 seconds
-
-Initiating PH iteration=8
-At least one sub-problem solve time was undefined - skipping timing statistics
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 110283.4071 Max-Min= 463.23
-Converger=Normalized term diff value is 0.0360 - threshold reached=False
-Cumulative run-time=0.32 seconds
-
-Initiating PH iteration=9
-At least one sub-problem solve time was undefined - skipping timing statistics
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 109399.2538 Max-Min= 363.90
-Converger=Normalized term diff value is 0.0243 - threshold reached=False
-Cumulative run-time=0.36 seconds
-
-Initiating PH iteration=10
-At least one sub-problem solve time was undefined - skipping timing statistics
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108834.1926 Max-Min= 933.90
-Converger=Normalized term diff value is 0.0256 - threshold reached=False
-Cumulative run-time=0.40 seconds
-
-Initiating PH iteration=11
-At least one sub-problem solve time was undefined - skipping timing statistics
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108575.3215 Max-Min= 918.57
-Converger=Normalized term diff value is 0.0248 - threshold reached=False
-Cumulative run-time=0.43 seconds
-
-Initiating PH iteration=12
-At least one sub-problem solve time was undefined - skipping timing statistics
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108513.5342 Max-Min= 591.25
-Converger=Normalized term diff value is 0.0163 - threshold reached=False
-Cumulative run-time=0.47 seconds
-
-Initiating PH iteration=13
-At least one sub-problem solve time was undefined - skipping timing statistics
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108528.2895 Max-Min= 175.95
-Converger=Normalized term diff value is 0.0081 - threshold reached=False
-Cumulative run-time=0.50 seconds
-
-Initiating PH iteration=14
-At least one sub-problem solve time was undefined - skipping timing statistics
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108561.6573 Max-Min= 274.77
-Converger=Normalized term diff value is 0.0168 - threshold reached=False
-Cumulative run-time=0.54 seconds
-
-Initiating PH iteration=15
-At least one sub-problem solve time was undefined - skipping timing statistics
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108604.0575 Max-Min= 295.14
-Converger=Normalized term diff value is 0.0163 - threshold reached=False
-Cumulative run-time=0.57 seconds
-
-Initiating PH iteration=16
-At least one sub-problem solve time was undefined - skipping timing statistics
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108667.3580 Max-Min= 127.67
-Converger=Normalized term diff value is 0.0098 - threshold reached=False
-Cumulative run-time=0.61 seconds
-
-Initiating PH iteration=17
-At least one sub-problem solve time was undefined - skipping timing statistics
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108758.4236 Max-Min= 59.69
-Converger=Normalized term diff value is 0.0032 - threshold reached=False
-Cumulative run-time=0.65 seconds
-
-Initiating PH iteration=18
-At least one sub-problem solve time was undefined - skipping timing statistics
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108868.1277 Max-Min= 101.79
-Converger=Normalized term diff value is 0.0026 - threshold reached=False
-Cumulative run-time=0.68 seconds
-
-Initiating PH iteration=19
-At least one sub-problem solve time was undefined - skipping timing statistics
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108975.3090 Max-Min= 73.41
-Converger=Normalized term diff value is 0.0039 - threshold reached=False
-Cumulative run-time=0.72 seconds
-
-Initiating PH iteration=20
-At least one sub-problem solve time was undefined - skipping timing statistics
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 109057.4144 Max-Min= 39.47
-Converger=Normalized term diff value is 0.0043 - threshold reached=False
-Cumulative run-time=0.75 seconds
-
-Initiating PH iteration=21
-At least one sub-problem solve time was undefined - skipping timing statistics
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 109099.7145 Max-Min= 87.57
-Converger=Normalized term diff value is 0.0044 - threshold reached=False
-Cumulative run-time=0.79 seconds
-
-Initiating PH iteration=22
-At least one sub-problem solve time was undefined - skipping timing statistics
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 109099.1238 Max-Min= 104.22
-Converger=Normalized term diff value is 0.0040 - threshold reached=False
-Cumulative run-time=0.82 seconds
-
-Initiating PH iteration=23
-At least one sub-problem solve time was undefined - skipping timing statistics
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 109062.8320 Max-Min= 88.54
-Converger=Normalized term diff value is 0.0032 - threshold reached=False
-Cumulative run-time=0.86 seconds
-
-Initiating PH iteration=24
-At least one sub-problem solve time was undefined - skipping timing statistics
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 109004.1153 Max-Min= 54.49
-Converger=Normalized term diff value is 0.0021 - threshold reached=False
-Cumulative run-time=0.90 seconds
-
-Initiating PH iteration=25
-At least one sub-problem solve time was undefined - skipping timing statistics
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108937.8036 Max-Min= 16.89
-Converger=Normalized term diff value is 0.0008 - threshold reached=False
-Cumulative run-time=0.93 seconds
-
-Initiating PH iteration=26
-At least one sub-problem solve time was undefined - skipping timing statistics
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108876.8819 Max-Min= 14.27
-Converger=Normalized term diff value is 0.0005 - threshold reached=False
-Cumulative run-time=0.97 seconds
-
-Initiating PH iteration=27
-At least one sub-problem solve time was undefined - skipping timing statistics
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108830.6200 Max-Min= 34.81
-Converger=Normalized term diff value is 0.0015 - threshold reached=False
-Cumulative run-time=1.00 seconds
-
-Initiating PH iteration=28
-At least one sub-problem solve time was undefined - skipping timing statistics
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108803.9654 Max-Min= 44.57
-Converger=Normalized term diff value is 0.0021 - threshold reached=False
-Cumulative run-time=1.04 seconds
-
-Initiating PH iteration=29
-At least one sub-problem solve time was undefined - skipping timing statistics
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108797.7662 Max-Min= 45.24
-Converger=Normalized term diff value is 0.0023 - threshold reached=False
-Cumulative run-time=1.07 seconds
-
-Initiating PH iteration=30
-At least one sub-problem solve time was undefined - skipping timing statistics
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108809.4794 Max-Min= 39.01
-Converger=Normalized term diff value is 0.0020 - threshold reached=False
-Cumulative run-time=1.11 seconds
-
-Initiating PH iteration=31
-At least one sub-problem solve time was undefined - skipping timing statistics
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108834.1640 Max-Min= 28.07
-Converger=Normalized term diff value is 0.0015 - threshold reached=False
-Cumulative run-time=1.15 seconds
-
-Initiating PH iteration=32
-At least one sub-problem solve time was undefined - skipping timing statistics
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108865.6237 Max-Min= 14.67
-Converger=Normalized term diff value is 0.0008 - threshold reached=False
-Cumulative run-time=1.18 seconds
-
-Initiating PH iteration=33
-At least one sub-problem solve time was undefined - skipping timing statistics
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108897.5677 Max-Min= 1.06
-Converger=Normalized term diff value is 0.0001 - threshold reached=True
-Cumulative run-time=1.22 seconds
-
-Number of discrete variables fixed before final plugin calls=0 (total=0)
-Number of continuous variables fixed before final plugin calls=0 (total=3)
-PH complete
-
-Convergence history:
-Converger=Normalized term diff
-Iteration Metric Value
- 0 0.2540
- 1 0.1259
- 2 0.0816
- 3 0.0796
- 4 0.0776
- 5 0.0794
- 6 0.0668
- 7 0.0542
- 8 0.0360
- 9 0.0243
- 10 0.0256
- 11 0.0248
- 12 0.0163
- 13 0.0081
- 14 0.0168
- 15 0.0163
- 16 0.0098
- 17 0.0032
- 18 0.0026
- 19 0.0039
- 20 0.0043
- 21 0.0044
- 22 0.0040
- 23 0.0032
- 24 0.0021
- 25 0.0008
- 26 0.0005
- 27 0.0015
- 28 0.0021
- 29 0.0023
- 30 0.0020
- 31 0.0015
- 32 0.0008
- 33 0.0001
-
-
-Final number of discrete variables fixed=0 (total=0)
-Final number of continuous variables fixed=0 (total=3)
-
-Computing objective inner bound at xhat solution
-At least one sub-problem solve time was undefined - skipping timing statistics
-
-Computed objective upper bound=-108388.7726
-
-X-hat variable values:
-
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 79.9768 79.9768 79.9768
-
- Index: [SUGAR_BEETS] Values: 250.0000 250.0000 250.0000
-
- Index: [WHEAT] Values: 170.0232 170.0232 170.0232
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108898.1474 108898.1474 108898.1474 Max-Min: 0.0000 Avg: 108898.1474
-
-X-hat costs:
-
-Scenario Tree Costs
-----------------------------------------------------
-Tree Nodes:
-
- Name=AboveAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AboveAverageScenario
- Expected cost of (sub)tree rooted at node=-275899.3053
-
- Name=AverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AverageScenario
- Expected cost of (sub)tree rooted at node=-218245.2526
-
- Name=BelowAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-157716.2021
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- AboveAverageNode
- AverageNode
- BelowAverageNode
- Scenarios:
- AboveAverageScenario
- AverageScenario
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-108388.7726
-
-----------------------------------------------------
-Scenarios:
-
- Name=AboveAverageScenario
- Probability=0.3333
- Leaf Node=AboveAverageNode
- Tree node sequence:
- RootNode
- AboveAverageNode
- Stage= FirstStage Cost=108898.1474
- Stage= SecondStage Cost=-275899.3053
- Total scenario cost=-167001.1579
-
- Name=AverageScenario
- Probability=0.3333
- Leaf Node=AverageNode
- Tree node sequence:
- RootNode
- AverageNode
- Stage= FirstStage Cost=108898.1474
- Stage= SecondStage Cost=-218245.2526
- Total scenario cost=-109347.1053
-
- Name=BelowAverageScenario
- Probability=0.3333
- Leaf Node=BelowAverageNode
- Tree node sequence:
- RootNode
- BelowAverageNode
- Stage= FirstStage Cost=108898.1474
- Stage= SecondStage Cost=-157716.2021
- Total scenario cost=-48818.0547
-
-----------------------------------------------------
-
-
-Total PH execution time=1.25 seconds
-
-
-Total execution time=1.31 seconds
diff --git a/pyomo/pysp/tests/unit/baselines/farmer_quadratic_gurobi_with_phpyro.baseline b/pyomo/pysp/tests/unit/baselines/farmer_quadratic_gurobi_with_phpyro.baseline
deleted file mode 100644
index 90df9528268..00000000000
--- a/pyomo/pysp/tests/unit/baselines/farmer_quadratic_gurobi_with_phpyro.baseline
+++ /dev/null
@@ -1,398 +0,0 @@
-Client assigned dispatcher with URI=PYRO://134.253.194.1:35852/86fdc201bde32195ca4b8c8933b43481ec
-Initializing PH
-
-Starting PH
-
-Initiating PH iteration=0
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 113494.4444 Max-Min=10416.67
-Converger=Normalized term diff value is 0.2540 - threshold reached=False
-Cumulative run-time=0.17 seconds
-
-Initiating PH iteration=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 113107.2222 Max-Min= 6943.89
-Converger=Normalized term diff value is 0.1259 - threshold reached=False
-Cumulative run-time=0.38 seconds
-
-Initiating PH iteration=2
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 112954.6296 Max-Min= 2234.81
-Converger=Normalized term diff value is 0.0816 - threshold reached=False
-Cumulative run-time=0.57 seconds
-
-Initiating PH iteration=3
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 112963.0247 Max-Min= 2375.31
-Converger=Normalized term diff value is 0.0796 - threshold reached=False
-Cumulative run-time=0.73 seconds
-
-Initiating PH iteration=4
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 112915.6070 Max-Min= 3047.08
-Converger=Normalized term diff value is 0.0776 - threshold reached=False
-Cumulative run-time=0.93 seconds
-
-Initiating PH iteration=5
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 112825.3927 Max-Min= 3339.81
-Converger=Normalized term diff value is 0.0794 - threshold reached=False
-Cumulative run-time=1.22 seconds
-
-Initiating PH iteration=6
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 112317.9503 Max-Min= 2019.60
-Converger=Normalized term diff value is 0.0668 - threshold reached=False
-Cumulative run-time=1.40 seconds
-
-Initiating PH iteration=7
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 111364.4659 Max-Min= 1181.85
-Converger=Normalized term diff value is 0.0542 - threshold reached=False
-Cumulative run-time=1.55 seconds
-
-Initiating PH iteration=8
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 110283.4071 Max-Min= 463.23
-Converger=Normalized term diff value is 0.0360 - threshold reached=False
-Cumulative run-time=1.69 seconds
-
-Initiating PH iteration=9
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 109399.2538 Max-Min= 363.90
-Converger=Normalized term diff value is 0.0243 - threshold reached=False
-Cumulative run-time=1.82 seconds
-
-Initiating PH iteration=10
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108834.1926 Max-Min= 933.90
-Converger=Normalized term diff value is 0.0256 - threshold reached=False
-Cumulative run-time=1.96 seconds
-
-Initiating PH iteration=11
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108575.3215 Max-Min= 918.57
-Converger=Normalized term diff value is 0.0248 - threshold reached=False
-Cumulative run-time=2.12 seconds
-
-Initiating PH iteration=12
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108513.5342 Max-Min= 591.25
-Converger=Normalized term diff value is 0.0163 - threshold reached=False
-Cumulative run-time=2.26 seconds
-
-Initiating PH iteration=13
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108528.2895 Max-Min= 175.95
-Converger=Normalized term diff value is 0.0081 - threshold reached=False
-Cumulative run-time=2.41 seconds
-
-Initiating PH iteration=14
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108561.6573 Max-Min= 274.77
-Converger=Normalized term diff value is 0.0168 - threshold reached=False
-Cumulative run-time=2.55 seconds
-
-Initiating PH iteration=15
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108604.0575 Max-Min= 295.14
-Converger=Normalized term diff value is 0.0163 - threshold reached=False
-Cumulative run-time=2.69 seconds
-
-Initiating PH iteration=16
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108667.3580 Max-Min= 127.67
-Converger=Normalized term diff value is 0.0098 - threshold reached=False
-Cumulative run-time=2.88 seconds
-
-Initiating PH iteration=17
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108758.4236 Max-Min= 59.69
-Converger=Normalized term diff value is 0.0032 - threshold reached=False
-Cumulative run-time=3.02 seconds
-
-Initiating PH iteration=18
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108868.1277 Max-Min= 101.79
-Converger=Normalized term diff value is 0.0026 - threshold reached=False
-Cumulative run-time=3.16 seconds
-
-Initiating PH iteration=19
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108975.3090 Max-Min= 73.41
-Converger=Normalized term diff value is 0.0039 - threshold reached=False
-Cumulative run-time=3.31 seconds
-
-Initiating PH iteration=20
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 109057.4144 Max-Min= 39.47
-Converger=Normalized term diff value is 0.0043 - threshold reached=False
-Cumulative run-time=3.46 seconds
-
-Initiating PH iteration=21
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 109099.7145 Max-Min= 87.57
-Converger=Normalized term diff value is 0.0044 - threshold reached=False
-Cumulative run-time=3.60 seconds
-
-Initiating PH iteration=22
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 109099.1238 Max-Min= 104.22
-Converger=Normalized term diff value is 0.0040 - threshold reached=False
-Cumulative run-time=3.74 seconds
-
-Initiating PH iteration=23
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 109062.8320 Max-Min= 88.54
-Converger=Normalized term diff value is 0.0032 - threshold reached=False
-Cumulative run-time=3.89 seconds
-
-Initiating PH iteration=24
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 109004.1153 Max-Min= 54.49
-Converger=Normalized term diff value is 0.0021 - threshold reached=False
-Cumulative run-time=4.03 seconds
-
-Initiating PH iteration=25
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108937.8036 Max-Min= 16.89
-Converger=Normalized term diff value is 0.0008 - threshold reached=False
-Cumulative run-time=4.17 seconds
-
-Initiating PH iteration=26
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108876.8819 Max-Min= 14.27
-Converger=Normalized term diff value is 0.0005 - threshold reached=False
-Cumulative run-time=4.31 seconds
-
-Initiating PH iteration=27
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108830.6200 Max-Min= 34.81
-Converger=Normalized term diff value is 0.0015 - threshold reached=False
-Cumulative run-time=4.48 seconds
-
-Initiating PH iteration=28
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108803.9654 Max-Min= 44.57
-Converger=Normalized term diff value is 0.0021 - threshold reached=False
-Cumulative run-time=4.63 seconds
-
-Initiating PH iteration=29
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108797.7662 Max-Min= 45.24
-Converger=Normalized term diff value is 0.0023 - threshold reached=False
-Cumulative run-time=4.79 seconds
-
-Initiating PH iteration=30
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108809.4794 Max-Min= 39.01
-Converger=Normalized term diff value is 0.0020 - threshold reached=False
-Cumulative run-time=4.94 seconds
-
-Initiating PH iteration=31
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108834.1640 Max-Min= 28.07
-Converger=Normalized term diff value is 0.0015 - threshold reached=False
-Cumulative run-time=5.08 seconds
-
-Initiating PH iteration=32
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108865.6237 Max-Min= 14.67
-Converger=Normalized term diff value is 0.0008 - threshold reached=False
-Cumulative run-time=5.25 seconds
-
-Initiating PH iteration=33
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108897.5677 Max-Min= 1.06
-Converger=Normalized term diff value is 0.0001 - threshold reached=True
-Cumulative run-time=5.40 seconds
-
-Number of discrete variables fixed before final plugin calls=0 (total=0)
-Number of continuous variables fixed before final plugin calls=0 (total=3)
-PH complete
-
-Convergence history:
-Converger=Normalized term diff
-Iteration Metric Value
- 0 0.2540
- 1 0.1259
- 2 0.0816
- 3 0.0796
- 4 0.0776
- 5 0.0794
- 6 0.0668
- 7 0.0542
- 8 0.0360
- 9 0.0243
- 10 0.0256
- 11 0.0248
- 12 0.0163
- 13 0.0081
- 14 0.0168
- 15 0.0163
- 16 0.0098
- 17 0.0032
- 18 0.0026
- 19 0.0039
- 20 0.0043
- 21 0.0044
- 22 0.0040
- 23 0.0032
- 24 0.0021
- 25 0.0008
- 26 0.0005
- 27 0.0015
- 28 0.0021
- 29 0.0023
- 30 0.0020
- 31 0.0015
- 32 0.0008
- 33 0.0001
-
-
-Final number of discrete variables fixed=0 (total=0)
-Final number of continuous variables fixed=0 (total=3)
-
-Computing objective inner bound at xhat solution
-
-Computed objective upper bound=-108388.7726
-
-X-hat variable values:
-
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 79.9768 79.9768 79.9768
-
- Index: [SUGAR_BEETS] Values: 250.0000 250.0000 250.0000
-
- Index: [WHEAT] Values: 170.0232 170.0232 170.0232
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108898.1474 108898.1474 108898.1474 Max-Min: 0.0000 Avg: 108898.1474
-
-X-hat costs:
-
-Scenario Tree Costs
-----------------------------------------------------
-Tree Nodes:
-
- Name=AboveAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AboveAverageScenario
- Expected cost of (sub)tree rooted at node=-275899.3053
-
- Name=AverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AverageScenario
- Expected cost of (sub)tree rooted at node=-218245.2526
-
- Name=BelowAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-157716.2021
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- AboveAverageNode
- AverageNode
- BelowAverageNode
- Scenarios:
- AboveAverageScenario
- AverageScenario
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-108388.7726
-
-----------------------------------------------------
-Scenarios:
-
- Name=AboveAverageScenario
- Probability=0.3333
- Leaf Node=AboveAverageNode
- Tree node sequence:
- RootNode
- AboveAverageNode
- Stage= FirstStage Cost=108898.1474
- Stage= SecondStage Cost=-275899.3053
- Total scenario cost=-167001.1579
-
- Name=AverageScenario
- Probability=0.3333
- Leaf Node=AverageNode
- Tree node sequence:
- RootNode
- AverageNode
- Stage= FirstStage Cost=108898.1474
- Stage= SecondStage Cost=-218245.2526
- Total scenario cost=-109347.1053
-
- Name=BelowAverageScenario
- Probability=0.3333
- Leaf Node=BelowAverageNode
- Tree node sequence:
- RootNode
- BelowAverageNode
- Stage= FirstStage Cost=108898.1474
- Stage= SecondStage Cost=-157716.2021
- Total scenario cost=-48818.0547
-
-----------------------------------------------------
-
-
-Total PH execution time=5.54 seconds
-
-
-Total execution time=5.62 seconds
diff --git a/pyomo/pysp/tests/unit/baselines/farmer_quadratic_ipopt.baseline b/pyomo/pysp/tests/unit/baselines/farmer_quadratic_ipopt.baseline
deleted file mode 100644
index e01f270290a..00000000000
--- a/pyomo/pysp/tests/unit/baselines/farmer_quadratic_ipopt.baseline
+++ /dev/null
@@ -1,397 +0,0 @@
-Initializing PH
-
-Starting PH
-
-Initiating PH iteration=0
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 113494.4456 Max-Min=10416.67
-Converger=Normalized term diff value is 0.2540 - threshold reached=False
-Cumulative run-time=0.25 seconds
-
-Initiating PH iteration=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 113107.2231 Max-Min= 6943.89
-Converger=Normalized term diff value is 0.1259 - threshold reached=False
-Cumulative run-time=0.51 seconds
-
-Initiating PH iteration=2
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 112954.6306 Max-Min= 2234.81
-Converger=Normalized term diff value is 0.0816 - threshold reached=False
-Cumulative run-time=0.76 seconds
-
-Initiating PH iteration=3
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 112963.0257 Max-Min= 2375.31
-Converger=Normalized term diff value is 0.0796 - threshold reached=False
-Cumulative run-time=1.01 seconds
-
-Initiating PH iteration=4
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 112915.6080 Max-Min= 3047.08
-Converger=Normalized term diff value is 0.0776 - threshold reached=False
-Cumulative run-time=1.26 seconds
-
-Initiating PH iteration=5
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 112825.3937 Max-Min= 3339.81
-Converger=Normalized term diff value is 0.0794 - threshold reached=False
-Cumulative run-time=1.51 seconds
-
-Initiating PH iteration=6
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 112317.9512 Max-Min= 2019.60
-Converger=Normalized term diff value is 0.0668 - threshold reached=False
-Cumulative run-time=1.76 seconds
-
-Initiating PH iteration=7
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 111364.4668 Max-Min= 1181.85
-Converger=Normalized term diff value is 0.0542 - threshold reached=False
-Cumulative run-time=2.02 seconds
-
-Initiating PH iteration=8
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 110283.4081 Max-Min= 463.23
-Converger=Normalized term diff value is 0.0360 - threshold reached=False
-Cumulative run-time=2.27 seconds
-
-Initiating PH iteration=9
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 109399.2547 Max-Min= 363.90
-Converger=Normalized term diff value is 0.0243 - threshold reached=False
-Cumulative run-time=2.53 seconds
-
-Initiating PH iteration=10
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108834.1934 Max-Min= 933.90
-Converger=Normalized term diff value is 0.0256 - threshold reached=False
-Cumulative run-time=2.79 seconds
-
-Initiating PH iteration=11
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108575.3223 Max-Min= 918.57
-Converger=Normalized term diff value is 0.0248 - threshold reached=False
-Cumulative run-time=3.04 seconds
-
-Initiating PH iteration=12
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108513.5350 Max-Min= 591.25
-Converger=Normalized term diff value is 0.0163 - threshold reached=False
-Cumulative run-time=3.29 seconds
-
-Initiating PH iteration=13
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108528.2903 Max-Min= 175.95
-Converger=Normalized term diff value is 0.0081 - threshold reached=False
-Cumulative run-time=3.55 seconds
-
-Initiating PH iteration=14
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108561.6582 Max-Min= 274.77
-Converger=Normalized term diff value is 0.0168 - threshold reached=False
-Cumulative run-time=3.80 seconds
-
-Initiating PH iteration=15
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108604.0585 Max-Min= 295.14
-Converger=Normalized term diff value is 0.0163 - threshold reached=False
-Cumulative run-time=4.06 seconds
-
-Initiating PH iteration=16
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108667.3591 Max-Min= 127.67
-Converger=Normalized term diff value is 0.0098 - threshold reached=False
-Cumulative run-time=4.31 seconds
-
-Initiating PH iteration=17
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108758.4247 Max-Min= 59.69
-Converger=Normalized term diff value is 0.0032 - threshold reached=False
-Cumulative run-time=4.56 seconds
-
-Initiating PH iteration=18
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108868.1288 Max-Min= 101.79
-Converger=Normalized term diff value is 0.0026 - threshold reached=False
-Cumulative run-time=4.81 seconds
-
-Initiating PH iteration=19
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108975.3101 Max-Min= 73.41
-Converger=Normalized term diff value is 0.0039 - threshold reached=False
-Cumulative run-time=5.06 seconds
-
-Initiating PH iteration=20
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 109057.4155 Max-Min= 39.47
-Converger=Normalized term diff value is 0.0043 - threshold reached=False
-Cumulative run-time=5.48 seconds
-
-Initiating PH iteration=21
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 109099.7155 Max-Min= 87.57
-Converger=Normalized term diff value is 0.0044 - threshold reached=False
-Cumulative run-time=5.73 seconds
-
-Initiating PH iteration=22
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 109099.1248 Max-Min= 104.22
-Converger=Normalized term diff value is 0.0040 - threshold reached=False
-Cumulative run-time=5.98 seconds
-
-Initiating PH iteration=23
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 109062.8329 Max-Min= 88.54
-Converger=Normalized term diff value is 0.0032 - threshold reached=False
-Cumulative run-time=6.23 seconds
-
-Initiating PH iteration=24
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 109004.1163 Max-Min= 54.49
-Converger=Normalized term diff value is 0.0021 - threshold reached=False
-Cumulative run-time=6.48 seconds
-
-Initiating PH iteration=25
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108937.8045 Max-Min= 16.89
-Converger=Normalized term diff value is 0.0008 - threshold reached=False
-Cumulative run-time=6.73 seconds
-
-Initiating PH iteration=26
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108876.8828 Max-Min= 14.27
-Converger=Normalized term diff value is 0.0005 - threshold reached=False
-Cumulative run-time=6.98 seconds
-
-Initiating PH iteration=27
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108830.6209 Max-Min= 34.81
-Converger=Normalized term diff value is 0.0015 - threshold reached=False
-Cumulative run-time=7.24 seconds
-
-Initiating PH iteration=28
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108803.9663 Max-Min= 44.57
-Converger=Normalized term diff value is 0.0021 - threshold reached=False
-Cumulative run-time=7.49 seconds
-
-Initiating PH iteration=29
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108797.7671 Max-Min= 45.24
-Converger=Normalized term diff value is 0.0023 - threshold reached=False
-Cumulative run-time=7.75 seconds
-
-Initiating PH iteration=30
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108809.4804 Max-Min= 39.01
-Converger=Normalized term diff value is 0.0020 - threshold reached=False
-Cumulative run-time=8.00 seconds
-
-Initiating PH iteration=31
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108834.1650 Max-Min= 28.07
-Converger=Normalized term diff value is 0.0015 - threshold reached=False
-Cumulative run-time=8.26 seconds
-
-Initiating PH iteration=32
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108865.6247 Max-Min= 14.67
-Converger=Normalized term diff value is 0.0008 - threshold reached=False
-Cumulative run-time=8.51 seconds
-
-Initiating PH iteration=33
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108897.5687 Max-Min= 1.06
-Converger=Normalized term diff value is 0.0001 - threshold reached=True
-Cumulative run-time=8.76 seconds
-
-Number of discrete variables fixed before final plugin calls=0 (total=0)
-Number of continuous variables fixed before final plugin calls=0 (total=3)
-PH complete
-
-Convergence history:
-Converger=Normalized term diff
-Iteration Metric Value
- 0 0.2540
- 1 0.1259
- 2 0.0816
- 3 0.0796
- 4 0.0776
- 5 0.0794
- 6 0.0668
- 7 0.0542
- 8 0.0360
- 9 0.0243
- 10 0.0256
- 11 0.0248
- 12 0.0163
- 13 0.0081
- 14 0.0168
- 15 0.0163
- 16 0.0098
- 17 0.0032
- 18 0.0026
- 19 0.0039
- 20 0.0043
- 21 0.0044
- 22 0.0040
- 23 0.0032
- 24 0.0021
- 25 0.0008
- 26 0.0005
- 27 0.0015
- 28 0.0021
- 29 0.0023
- 30 0.0020
- 31 0.0015
- 32 0.0008
- 33 0.0001
-
-
-Final number of discrete variables fixed=0 (total=0)
-Final number of continuous variables fixed=0 (total=3)
-
-Computing objective inner bound at xhat solution
-
-Computed objective upper bound=-108388.7752
-
-X-hat variable values:
-
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 79.9768 79.9768 79.9768
-
- Index: [SUGAR_BEETS] Values: 250.0000 250.0000 250.0000
-
- Index: [WHEAT] Values: 170.0232 170.0232 170.0232
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108898.1484 108898.1484 108898.1484 Max-Min: 0.0000 Avg: 108898.1484
-
-X-hat costs:
-
-Scenario Tree Costs
-----------------------------------------------------
-Tree Nodes:
-
- Name=AboveAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AboveAverageScenario
- Expected cost of (sub)tree rooted at node=-275899.3094
-
- Name=AverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AverageScenario
- Expected cost of (sub)tree rooted at node=-218245.2563
-
- Name=BelowAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-157716.2052
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- AboveAverageNode
- AverageNode
- BelowAverageNode
- Scenarios:
- AboveAverageScenario
- AverageScenario
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-108388.7752
-
-----------------------------------------------------
-Scenarios:
-
- Name=AboveAverageScenario
- Probability=0.3333
- Leaf Node=AboveAverageNode
- Tree node sequence:
- RootNode
- AboveAverageNode
- Stage= FirstStage Cost=108898.1484
- Stage= SecondStage Cost=-275899.3094
- Total scenario cost=-167001.1610
-
- Name=AverageScenario
- Probability=0.3333
- Leaf Node=AverageNode
- Tree node sequence:
- RootNode
- AverageNode
- Stage= FirstStage Cost=108898.1484
- Stage= SecondStage Cost=-218245.2563
- Total scenario cost=-109347.1079
-
- Name=BelowAverageScenario
- Probability=0.3333
- Leaf Node=BelowAverageNode
- Tree node sequence:
- RootNode
- BelowAverageNode
- Stage= FirstStage Cost=108898.1484
- Stage= SecondStage Cost=-157716.2052
- Total scenario cost=-48818.0568
-
-----------------------------------------------------
-
-
-Total PH execution time=9.02 seconds
-
-
-Total execution time=9.06 seconds
diff --git a/pyomo/pysp/tests/unit/baselines/farmer_quadratic_ipopt_with_phpyro.baseline b/pyomo/pysp/tests/unit/baselines/farmer_quadratic_ipopt_with_phpyro.baseline
deleted file mode 100644
index 14ca8af7a19..00000000000
--- a/pyomo/pysp/tests/unit/baselines/farmer_quadratic_ipopt_with_phpyro.baseline
+++ /dev/null
@@ -1,398 +0,0 @@
-Client assigned dispatcher with URI=PYRO::PyUtilibServer.dispatcher.cf9047d9-2b8e-486c-92cb-d72c474bec4b@localhost:44210
-Initializing PH
-
-Starting PH
-
-Initiating PH iteration=0
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 113494.4456 Max-Min=10416.67
-Converger=Normalized term diff value is 0.2540 - threshold reached=False
-Cumulative run-time=0.13 seconds
-
-Initiating PH iteration=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 113107.2231 Max-Min= 6943.89
-Converger=Normalized term diff value is 0.1259 - threshold reached=False
-Cumulative run-time=0.27 seconds
-
-Initiating PH iteration=2
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 112954.6306 Max-Min= 2234.81
-Converger=Normalized term diff value is 0.0816 - threshold reached=False
-Cumulative run-time=0.41 seconds
-
-Initiating PH iteration=3
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 112963.0257 Max-Min= 2375.31
-Converger=Normalized term diff value is 0.0796 - threshold reached=False
-Cumulative run-time=0.55 seconds
-
-Initiating PH iteration=4
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 112915.6080 Max-Min= 3047.08
-Converger=Normalized term diff value is 0.0776 - threshold reached=False
-Cumulative run-time=0.69 seconds
-
-Initiating PH iteration=5
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 112825.3937 Max-Min= 3339.81
-Converger=Normalized term diff value is 0.0794 - threshold reached=False
-Cumulative run-time=0.83 seconds
-
-Initiating PH iteration=6
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 112317.9512 Max-Min= 2019.60
-Converger=Normalized term diff value is 0.0668 - threshold reached=False
-Cumulative run-time=0.97 seconds
-
-Initiating PH iteration=7
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 111364.4668 Max-Min= 1181.85
-Converger=Normalized term diff value is 0.0542 - threshold reached=False
-Cumulative run-time=1.11 seconds
-
-Initiating PH iteration=8
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 110283.4081 Max-Min= 463.23
-Converger=Normalized term diff value is 0.0360 - threshold reached=False
-Cumulative run-time=1.24 seconds
-
-Initiating PH iteration=9
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 109399.2547 Max-Min= 363.90
-Converger=Normalized term diff value is 0.0243 - threshold reached=False
-Cumulative run-time=1.38 seconds
-
-Initiating PH iteration=10
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108834.1934 Max-Min= 933.90
-Converger=Normalized term diff value is 0.0256 - threshold reached=False
-Cumulative run-time=1.52 seconds
-
-Initiating PH iteration=11
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108575.3223 Max-Min= 918.57
-Converger=Normalized term diff value is 0.0248 - threshold reached=False
-Cumulative run-time=1.66 seconds
-
-Initiating PH iteration=12
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108513.5350 Max-Min= 591.25
-Converger=Normalized term diff value is 0.0163 - threshold reached=False
-Cumulative run-time=1.80 seconds
-
-Initiating PH iteration=13
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108528.2903 Max-Min= 175.95
-Converger=Normalized term diff value is 0.0081 - threshold reached=False
-Cumulative run-time=1.94 seconds
-
-Initiating PH iteration=14
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108561.6582 Max-Min= 274.77
-Converger=Normalized term diff value is 0.0168 - threshold reached=False
-Cumulative run-time=2.08 seconds
-
-Initiating PH iteration=15
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108604.0585 Max-Min= 295.14
-Converger=Normalized term diff value is 0.0163 - threshold reached=False
-Cumulative run-time=2.22 seconds
-
-Initiating PH iteration=16
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108667.3591 Max-Min= 127.67
-Converger=Normalized term diff value is 0.0098 - threshold reached=False
-Cumulative run-time=2.36 seconds
-
-Initiating PH iteration=17
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108758.4247 Max-Min= 59.69
-Converger=Normalized term diff value is 0.0032 - threshold reached=False
-Cumulative run-time=2.51 seconds
-
-Initiating PH iteration=18
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108868.1288 Max-Min= 101.79
-Converger=Normalized term diff value is 0.0026 - threshold reached=False
-Cumulative run-time=2.65 seconds
-
-Initiating PH iteration=19
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108975.3101 Max-Min= 73.41
-Converger=Normalized term diff value is 0.0039 - threshold reached=False
-Cumulative run-time=2.79 seconds
-
-Initiating PH iteration=20
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 109057.4155 Max-Min= 39.47
-Converger=Normalized term diff value is 0.0043 - threshold reached=False
-Cumulative run-time=2.93 seconds
-
-Initiating PH iteration=21
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 109099.7155 Max-Min= 87.57
-Converger=Normalized term diff value is 0.0044 - threshold reached=False
-Cumulative run-time=3.06 seconds
-
-Initiating PH iteration=22
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 109099.1248 Max-Min= 104.22
-Converger=Normalized term diff value is 0.0040 - threshold reached=False
-Cumulative run-time=3.20 seconds
-
-Initiating PH iteration=23
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 109062.8329 Max-Min= 88.54
-Converger=Normalized term diff value is 0.0032 - threshold reached=False
-Cumulative run-time=3.36 seconds
-
-Initiating PH iteration=24
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 109004.1163 Max-Min= 54.49
-Converger=Normalized term diff value is 0.0021 - threshold reached=False
-Cumulative run-time=3.50 seconds
-
-Initiating PH iteration=25
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108937.8045 Max-Min= 16.89
-Converger=Normalized term diff value is 0.0008 - threshold reached=False
-Cumulative run-time=3.64 seconds
-
-Initiating PH iteration=26
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108876.8828 Max-Min= 14.27
-Converger=Normalized term diff value is 0.0005 - threshold reached=False
-Cumulative run-time=3.78 seconds
-
-Initiating PH iteration=27
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108830.6209 Max-Min= 34.81
-Converger=Normalized term diff value is 0.0015 - threshold reached=False
-Cumulative run-time=3.92 seconds
-
-Initiating PH iteration=28
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108803.9663 Max-Min= 44.57
-Converger=Normalized term diff value is 0.0021 - threshold reached=False
-Cumulative run-time=4.06 seconds
-
-Initiating PH iteration=29
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108797.7671 Max-Min= 45.24
-Converger=Normalized term diff value is 0.0023 - threshold reached=False
-Cumulative run-time=4.20 seconds
-
-Initiating PH iteration=30
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108809.4804 Max-Min= 39.01
-Converger=Normalized term diff value is 0.0020 - threshold reached=False
-Cumulative run-time=4.34 seconds
-
-Initiating PH iteration=31
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108834.1650 Max-Min= 28.07
-Converger=Normalized term diff value is 0.0015 - threshold reached=False
-Cumulative run-time=4.48 seconds
-
-Initiating PH iteration=32
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108865.6247 Max-Min= 14.67
-Converger=Normalized term diff value is 0.0008 - threshold reached=False
-Cumulative run-time=4.62 seconds
-
-Initiating PH iteration=33
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108897.5687 Max-Min= 1.06
-Converger=Normalized term diff value is 0.0001 - threshold reached=True
-Cumulative run-time=4.76 seconds
-
-Number of discrete variables fixed before final plugin calls=0 (total=0)
-Number of continuous variables fixed before final plugin calls=0 (total=3)
-PH complete
-
-Convergence history:
-Converger=Normalized term diff
-Iteration Metric Value
- 0 0.2540
- 1 0.1259
- 2 0.0816
- 3 0.0796
- 4 0.0776
- 5 0.0794
- 6 0.0668
- 7 0.0542
- 8 0.0360
- 9 0.0243
- 10 0.0256
- 11 0.0248
- 12 0.0163
- 13 0.0081
- 14 0.0168
- 15 0.0163
- 16 0.0098
- 17 0.0032
- 18 0.0026
- 19 0.0039
- 20 0.0043
- 21 0.0044
- 22 0.0040
- 23 0.0032
- 24 0.0021
- 25 0.0008
- 26 0.0005
- 27 0.0015
- 28 0.0021
- 29 0.0023
- 30 0.0020
- 31 0.0015
- 32 0.0008
- 33 0.0001
-
-
-Final number of discrete variables fixed=0 (total=0)
-Final number of continuous variables fixed=0 (total=3)
-
-Computing objective inner bound at xhat solution
-
-Computed objective upper bound=-108388.7752
-
-X-hat variable values:
-
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 79.9768 79.9768 79.9768
-
- Index: [SUGAR_BEETS] Values: 250.0000 250.0000 250.0000
-
- Index: [WHEAT] Values: 170.0232 170.0232 170.0232
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108898.1484 108898.1484 108898.1484 Max-Min: 0.0000 Avg: 108898.1484
-
-X-hat costs:
-
-Scenario Tree Costs
-----------------------------------------------------
-Tree Nodes:
-
- Name=AboveAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AboveAverageScenario
- Expected cost of (sub)tree rooted at node=-275899.3094
-
- Name=AverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AverageScenario
- Expected cost of (sub)tree rooted at node=-218245.2563
-
- Name=BelowAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-157716.2052
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- AboveAverageNode
- AverageNode
- BelowAverageNode
- Scenarios:
- AboveAverageScenario
- AverageScenario
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-108388.7752
-
-----------------------------------------------------
-Scenarios:
-
- Name=AboveAverageScenario
- Probability=0.3333
- Leaf Node=AboveAverageNode
- Tree node sequence:
- RootNode
- AboveAverageNode
- Stage= FirstStage Cost=108898.1484
- Stage= SecondStage Cost=-275899.3094
- Total scenario cost=-167001.1610
-
- Name=AverageScenario
- Probability=0.3333
- Leaf Node=AverageNode
- Tree node sequence:
- RootNode
- AverageNode
- Stage= FirstStage Cost=108898.1484
- Stage= SecondStage Cost=-218245.2563
- Total scenario cost=-109347.1079
-
- Name=BelowAverageScenario
- Probability=0.3333
- Leaf Node=BelowAverageNode
- Tree node sequence:
- RootNode
- BelowAverageNode
- Stage= FirstStage Cost=108898.1484
- Stage= SecondStage Cost=-157716.2052
- Total scenario cost=-48818.0568
-
-----------------------------------------------------
-
-
-Total PH execution time=5.01 seconds
-
-
-Total execution time=5.16 seconds
diff --git a/pyomo/pysp/tests/unit/baselines/farmer_quadratic_ipopt_with_pyro.baseline b/pyomo/pysp/tests/unit/baselines/farmer_quadratic_ipopt_with_pyro.baseline
deleted file mode 100644
index c3c71af7e2e..00000000000
--- a/pyomo/pysp/tests/unit/baselines/farmer_quadratic_ipopt_with_pyro.baseline
+++ /dev/null
@@ -1,400 +0,0 @@
-Client attempting to find Pyro dispatcher object...
-Dispatcher Object URI: PYRO::PyUtilibServer.dispatcher.cf9047d9-2b8e-486c-92cb-d72c474bec4b@localhost:44210
-Connection to dispatch server established after 1 attempts and 0.00 seconds - this is client: 34872@snotra.sandia.gov
-Initializing PH
-
-Starting PH
-
-Initiating PH iteration=0
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 113494.4456 Max-Min=10416.67
-Converger=Normalized term diff value is 0.2540 - threshold reached=False
-Cumulative run-time=0.17 seconds
-
-Initiating PH iteration=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 113107.2231 Max-Min= 6943.89
-Converger=Normalized term diff value is 0.1259 - threshold reached=False
-Cumulative run-time=0.29 seconds
-
-Initiating PH iteration=2
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 112954.6306 Max-Min= 2234.81
-Converger=Normalized term diff value is 0.0816 - threshold reached=False
-Cumulative run-time=0.43 seconds
-
-Initiating PH iteration=3
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 112963.0257 Max-Min= 2375.31
-Converger=Normalized term diff value is 0.0796 - threshold reached=False
-Cumulative run-time=0.57 seconds
-
-Initiating PH iteration=4
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 112915.6080 Max-Min= 3047.08
-Converger=Normalized term diff value is 0.0776 - threshold reached=False
-Cumulative run-time=0.70 seconds
-
-Initiating PH iteration=5
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 112825.3937 Max-Min= 3339.81
-Converger=Normalized term diff value is 0.0794 - threshold reached=False
-Cumulative run-time=0.84 seconds
-
-Initiating PH iteration=6
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 112317.9512 Max-Min= 2019.60
-Converger=Normalized term diff value is 0.0668 - threshold reached=False
-Cumulative run-time=0.98 seconds
-
-Initiating PH iteration=7
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 111364.4668 Max-Min= 1181.85
-Converger=Normalized term diff value is 0.0542 - threshold reached=False
-Cumulative run-time=1.12 seconds
-
-Initiating PH iteration=8
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 110283.4081 Max-Min= 463.23
-Converger=Normalized term diff value is 0.0360 - threshold reached=False
-Cumulative run-time=1.26 seconds
-
-Initiating PH iteration=9
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 109399.2547 Max-Min= 363.90
-Converger=Normalized term diff value is 0.0243 - threshold reached=False
-Cumulative run-time=1.39 seconds
-
-Initiating PH iteration=10
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108834.1934 Max-Min= 933.90
-Converger=Normalized term diff value is 0.0256 - threshold reached=False
-Cumulative run-time=1.53 seconds
-
-Initiating PH iteration=11
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108575.3223 Max-Min= 918.57
-Converger=Normalized term diff value is 0.0248 - threshold reached=False
-Cumulative run-time=1.66 seconds
-
-Initiating PH iteration=12
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108513.5350 Max-Min= 591.25
-Converger=Normalized term diff value is 0.0163 - threshold reached=False
-Cumulative run-time=1.80 seconds
-
-Initiating PH iteration=13
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108528.2903 Max-Min= 175.95
-Converger=Normalized term diff value is 0.0081 - threshold reached=False
-Cumulative run-time=1.93 seconds
-
-Initiating PH iteration=14
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108561.6582 Max-Min= 274.77
-Converger=Normalized term diff value is 0.0168 - threshold reached=False
-Cumulative run-time=2.07 seconds
-
-Initiating PH iteration=15
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108604.0585 Max-Min= 295.14
-Converger=Normalized term diff value is 0.0163 - threshold reached=False
-Cumulative run-time=2.21 seconds
-
-Initiating PH iteration=16
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108667.3591 Max-Min= 127.67
-Converger=Normalized term diff value is 0.0098 - threshold reached=False
-Cumulative run-time=2.35 seconds
-
-Initiating PH iteration=17
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108758.4247 Max-Min= 59.69
-Converger=Normalized term diff value is 0.0032 - threshold reached=False
-Cumulative run-time=2.48 seconds
-
-Initiating PH iteration=18
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108868.1288 Max-Min= 101.79
-Converger=Normalized term diff value is 0.0026 - threshold reached=False
-Cumulative run-time=2.62 seconds
-
-Initiating PH iteration=19
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108975.3101 Max-Min= 73.41
-Converger=Normalized term diff value is 0.0039 - threshold reached=False
-Cumulative run-time=2.76 seconds
-
-Initiating PH iteration=20
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 109057.4155 Max-Min= 39.47
-Converger=Normalized term diff value is 0.0043 - threshold reached=False
-Cumulative run-time=2.90 seconds
-
-Initiating PH iteration=21
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 109099.7155 Max-Min= 87.57
-Converger=Normalized term diff value is 0.0044 - threshold reached=False
-Cumulative run-time=3.04 seconds
-
-Initiating PH iteration=22
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 109099.1248 Max-Min= 104.22
-Converger=Normalized term diff value is 0.0040 - threshold reached=False
-Cumulative run-time=3.18 seconds
-
-Initiating PH iteration=23
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 109062.8329 Max-Min= 88.54
-Converger=Normalized term diff value is 0.0032 - threshold reached=False
-Cumulative run-time=3.31 seconds
-
-Initiating PH iteration=24
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 109004.1163 Max-Min= 54.49
-Converger=Normalized term diff value is 0.0021 - threshold reached=False
-Cumulative run-time=3.46 seconds
-
-Initiating PH iteration=25
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108937.8045 Max-Min= 16.89
-Converger=Normalized term diff value is 0.0008 - threshold reached=False
-Cumulative run-time=3.60 seconds
-
-Initiating PH iteration=26
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108876.8828 Max-Min= 14.27
-Converger=Normalized term diff value is 0.0005 - threshold reached=False
-Cumulative run-time=3.74 seconds
-
-Initiating PH iteration=27
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108830.6209 Max-Min= 34.81
-Converger=Normalized term diff value is 0.0015 - threshold reached=False
-Cumulative run-time=3.88 seconds
-
-Initiating PH iteration=28
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108803.9663 Max-Min= 44.57
-Converger=Normalized term diff value is 0.0021 - threshold reached=False
-Cumulative run-time=4.02 seconds
-
-Initiating PH iteration=29
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108797.7671 Max-Min= 45.24
-Converger=Normalized term diff value is 0.0023 - threshold reached=False
-Cumulative run-time=4.16 seconds
-
-Initiating PH iteration=30
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108809.4804 Max-Min= 39.01
-Converger=Normalized term diff value is 0.0020 - threshold reached=False
-Cumulative run-time=4.30 seconds
-
-Initiating PH iteration=31
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108834.1650 Max-Min= 28.07
-Converger=Normalized term diff value is 0.0015 - threshold reached=False
-Cumulative run-time=4.44 seconds
-
-Initiating PH iteration=32
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108865.6247 Max-Min= 14.67
-Converger=Normalized term diff value is 0.0008 - threshold reached=False
-Cumulative run-time=4.58 seconds
-
-Initiating PH iteration=33
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108897.5687 Max-Min= 1.06
-Converger=Normalized term diff value is 0.0001 - threshold reached=True
-Cumulative run-time=4.71 seconds
-
-Number of discrete variables fixed before final plugin calls=0 (total=0)
-Number of continuous variables fixed before final plugin calls=0 (total=3)
-PH complete
-
-Convergence history:
-Converger=Normalized term diff
-Iteration Metric Value
- 0 0.2540
- 1 0.1259
- 2 0.0816
- 3 0.0796
- 4 0.0776
- 5 0.0794
- 6 0.0668
- 7 0.0542
- 8 0.0360
- 9 0.0243
- 10 0.0256
- 11 0.0248
- 12 0.0163
- 13 0.0081
- 14 0.0168
- 15 0.0163
- 16 0.0098
- 17 0.0032
- 18 0.0026
- 19 0.0039
- 20 0.0043
- 21 0.0044
- 22 0.0040
- 23 0.0032
- 24 0.0021
- 25 0.0008
- 26 0.0005
- 27 0.0015
- 28 0.0021
- 29 0.0023
- 30 0.0020
- 31 0.0015
- 32 0.0008
- 33 0.0001
-
-
-Final number of discrete variables fixed=0 (total=0)
-Final number of continuous variables fixed=0 (total=3)
-
-Computing objective inner bound at xhat solution
-
-Computed objective upper bound=-108388.7752
-
-X-hat variable values:
-
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 79.9768 79.9768 79.9768
-
- Index: [SUGAR_BEETS] Values: 250.0000 250.0000 250.0000
-
- Index: [WHEAT] Values: 170.0232 170.0232 170.0232
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108898.1484 108898.1484 108898.1484 Max-Min: 0.0000 Avg: 108898.1484
-
-X-hat costs:
-
-Scenario Tree Costs
-----------------------------------------------------
-Tree Nodes:
-
- Name=AboveAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AboveAverageScenario
- Expected cost of (sub)tree rooted at node=-275899.3094
-
- Name=AverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AverageScenario
- Expected cost of (sub)tree rooted at node=-218245.2563
-
- Name=BelowAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-157716.2052
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- AboveAverageNode
- AverageNode
- BelowAverageNode
- Scenarios:
- AboveAverageScenario
- AverageScenario
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-108388.7752
-
-----------------------------------------------------
-Scenarios:
-
- Name=AboveAverageScenario
- Probability=0.3333
- Leaf Node=AboveAverageNode
- Tree node sequence:
- RootNode
- AboveAverageNode
- Stage= FirstStage Cost=108898.1484
- Stage= SecondStage Cost=-275899.3094
- Total scenario cost=-167001.1610
-
- Name=AverageScenario
- Probability=0.3333
- Leaf Node=AverageNode
- Tree node sequence:
- RootNode
- AverageNode
- Stage= FirstStage Cost=108898.1484
- Stage= SecondStage Cost=-218245.2563
- Total scenario cost=-109347.1079
-
- Name=BelowAverageScenario
- Probability=0.3333
- Leaf Node=BelowAverageNode
- Tree node sequence:
- RootNode
- BelowAverageNode
- Stage= FirstStage Cost=108898.1484
- Stage= SecondStage Cost=-157716.2052
- Total scenario cost=-48818.0568
-
-----------------------------------------------------
-
-
-Total PH execution time=4.84 seconds
-
-
-Total execution time=4.91 seconds
diff --git a/pyomo/pysp/tests/unit/baselines/farmer_quadratic_nonnormalized_termdiff_cplex.baseline b/pyomo/pysp/tests/unit/baselines/farmer_quadratic_nonnormalized_termdiff_cplex.baseline
deleted file mode 100644
index 9754707680d..00000000000
--- a/pyomo/pysp/tests/unit/baselines/farmer_quadratic_nonnormalized_termdiff_cplex.baseline
+++ /dev/null
@@ -1,517 +0,0 @@
-Initializing PH
-
-Starting PH
-
-Initiating PH iteration=0
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 113494.4444 Max-Min=10416.67
-Converger= Term diff value is 98.5185 - threshold reached=False
-Cumulative run-time=0.49 seconds
-
-Initiating PH iteration=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 113107.2221 Max-Min= 6943.89
-Converger= Term diff value is 56.7654 - threshold reached=False
-Cumulative run-time=1.02 seconds
-
-Initiating PH iteration=2
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 112954.6296 Max-Min= 2234.82
-Converger= Term diff value is 37.3580 - threshold reached=False
-Cumulative run-time=1.53 seconds
-
-Initiating PH iteration=3
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 112963.0248 Max-Min= 2375.31
-Converger= Term diff value is 36.5075 - threshold reached=False
-Cumulative run-time=2.11 seconds
-
-Initiating PH iteration=4
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 112915.6071 Max-Min= 3047.08
-Converger= Term diff value is 35.4086 - threshold reached=False
-Cumulative run-time=2.71 seconds
-
-Initiating PH iteration=5
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 112825.3926 Max-Min= 3339.81
-Converger= Term diff value is 36.2217 - threshold reached=False
-Cumulative run-time=3.31 seconds
-
-Initiating PH iteration=6
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 112317.9502 Max-Min= 2019.60
-Converger= Term diff value is 29.3303 - threshold reached=False
-Cumulative run-time=3.86 seconds
-
-Initiating PH iteration=7
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 111364.4660 Max-Min= 1181.85
-Converger= Term diff value is 21.9702 - threshold reached=False
-Cumulative run-time=4.44 seconds
-
-Initiating PH iteration=8
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 110283.4074 Max-Min= 463.23
-Converger= Term diff value is 13.8077 - threshold reached=False
-Cumulative run-time=5.02 seconds
-
-Initiating PH iteration=9
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 109399.2542 Max-Min= 363.90
-Converger= Term diff value is 9.5141 - threshold reached=False
-Cumulative run-time=5.59 seconds
-
-Initiating PH iteration=10
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108834.1930 Max-Min= 933.90
-Converger= Term diff value is 12.0668 - threshold reached=False
-Cumulative run-time=6.16 seconds
-
-Initiating PH iteration=11
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108575.3219 Max-Min= 918.57
-Converger= Term diff value is 11.6644 - threshold reached=False
-Cumulative run-time=6.73 seconds
-
-Initiating PH iteration=12
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108513.5347 Max-Min= 591.25
-Converger= Term diff value is 7.5080 - threshold reached=False
-Cumulative run-time=7.31 seconds
-
-Initiating PH iteration=13
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108528.2899 Max-Min= 175.95
-Converger= Term diff value is 3.1070 - threshold reached=False
-Cumulative run-time=7.90 seconds
-
-Initiating PH iteration=14
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108561.6577 Max-Min= 274.77
-Converger= Term diff value is 5.5300 - threshold reached=False
-Cumulative run-time=8.45 seconds
-
-Initiating PH iteration=15
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108604.0579 Max-Min= 295.14
-Converger= Term diff value is 5.4381 - threshold reached=False
-Cumulative run-time=9.04 seconds
-
-Initiating PH iteration=16
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108667.3583 Max-Min= 127.67
-Converger= Term diff value is 3.2812 - threshold reached=False
-Cumulative run-time=9.63 seconds
-
-Initiating PH iteration=17
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108758.4237 Max-Min= 59.69
-Converger= Term diff value is 1.1980 - threshold reached=False
-Cumulative run-time=10.20 seconds
-
-Initiating PH iteration=18
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108868.1277 Max-Min= 101.79
-Converger= Term diff value is 1.0800 - threshold reached=False
-Cumulative run-time=10.71 seconds
-
-Initiating PH iteration=19
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108975.3089 Max-Min= 73.41
-Converger= Term diff value is 1.3642 - threshold reached=False
-Cumulative run-time=11.21 seconds
-
-Initiating PH iteration=20
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 109057.4144 Max-Min= 39.47
-Converger= Term diff value is 1.5168 - threshold reached=False
-Cumulative run-time=11.72 seconds
-
-Initiating PH iteration=21
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 109099.7145 Max-Min= 87.57
-Converger= Term diff value is 1.6833 - threshold reached=False
-Cumulative run-time=12.27 seconds
-
-Initiating PH iteration=22
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 109099.1239 Max-Min= 104.22
-Converger= Term diff value is 1.6446 - threshold reached=False
-Cumulative run-time=12.86 seconds
-
-Initiating PH iteration=23
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 109062.8322 Max-Min= 88.54
-Converger= Term diff value is 1.3382 - threshold reached=False
-Cumulative run-time=13.40 seconds
-
-Initiating PH iteration=24
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 109004.1156 Max-Min= 54.49
-Converger= Term diff value is 0.8599 - threshold reached=False
-Cumulative run-time=13.96 seconds
-
-Initiating PH iteration=25
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108937.8039 Max-Min= 16.89
-Converger= Term diff value is 0.3180 - threshold reached=False
-Cumulative run-time=14.56 seconds
-
-Initiating PH iteration=26
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108876.8822 Max-Min= 14.27
-Converger= Term diff value is 0.1981 - threshold reached=False
-Cumulative run-time=15.15 seconds
-
-Initiating PH iteration=27
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108830.6201 Max-Min= 34.81
-Converger= Term diff value is 0.5760 - threshold reached=False
-Cumulative run-time=15.73 seconds
-
-Initiating PH iteration=28
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108803.9655 Max-Min= 44.57
-Converger= Term diff value is 0.8045 - threshold reached=False
-Cumulative run-time=16.29 seconds
-
-Initiating PH iteration=29
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108797.7661 Max-Min= 45.24
-Converger= Term diff value is 0.8608 - threshold reached=False
-Cumulative run-time=16.81 seconds
-
-Initiating PH iteration=30
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108809.4793 Max-Min= 39.01
-Converger= Term diff value is 0.7643 - threshold reached=False
-Cumulative run-time=17.35 seconds
-
-Initiating PH iteration=31
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108834.1639 Max-Min= 28.07
-Converger= Term diff value is 0.5565 - threshold reached=False
-Cumulative run-time=17.96 seconds
-
-Initiating PH iteration=32
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108865.6237 Max-Min= 14.67
-Converger= Term diff value is 0.2905 - threshold reached=False
-Cumulative run-time=18.54 seconds
-
-Initiating PH iteration=33
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108897.5679 Max-Min= 1.06
-Converger= Term diff value is 0.0205 - threshold reached=False
-Cumulative run-time=19.11 seconds
-
-Initiating PH iteration=34
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108924.6334 Max-Min= 10.64
-Converger= Term diff value is 0.2079 - threshold reached=False
-Cumulative run-time=19.71 seconds
-
-Initiating PH iteration=35
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108943.1232 Max-Min= 18.81
-Converger= Term diff value is 0.3637 - threshold reached=False
-Cumulative run-time=20.35 seconds
-
-Initiating PH iteration=36
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108951.3651 Max-Min= 22.58
-Converger= Term diff value is 0.4328 - threshold reached=False
-Cumulative run-time=20.93 seconds
-
-Initiating PH iteration=37
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108949.6731 Max-Min= 21.96
-Converger= Term diff value is 0.4183 - threshold reached=False
-Cumulative run-time=21.52 seconds
-
-Initiating PH iteration=38
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108939.9742 Max-Min= 17.74
-Converger= Term diff value is 0.3365 - threshold reached=False
-Cumulative run-time=22.13 seconds
-
-Initiating PH iteration=39
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108925.2193 Max-Min= 11.21
-Converger= Term diff value is 0.2122 - threshold reached=False
-Cumulative run-time=22.71 seconds
-
-Initiating PH iteration=40
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108908.7151 Max-Min= 3.89
-Converger= Term diff value is 0.0733 - threshold reached=False
-Cumulative run-time=23.27 seconds
-
-Initiating PH iteration=41
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108893.5090 Max-Min= 2.87
-Converger= Term diff value is 0.0547 - threshold reached=False
-Cumulative run-time=23.86 seconds
-
-Initiating PH iteration=42
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108881.9216 Max-Min= 8.01
-Converger= Term diff value is 0.1522 - threshold reached=False
-Cumulative run-time=24.44 seconds
-
-Initiating PH iteration=43
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108875.2811 Max-Min= 10.94
-Converger= Term diff value is 0.2081 - threshold reached=False
-Cumulative run-time=25.02 seconds
-
-Initiating PH iteration=44
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108873.8685 Max-Min= 11.56
-Converger= Term diff value is 0.2200 - threshold reached=False
-Cumulative run-time=25.56 seconds
-
-Initiating PH iteration=45
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108877.0466 Max-Min= 10.15
-Converger= Term diff value is 0.1933 - threshold reached=False
-Cumulative run-time=26.14 seconds
-
-Initiating PH iteration=46
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108883.5201 Max-Min= 7.28
-Converger= Term diff value is 0.1388 - threshold reached=False
-Cumulative run-time=26.73 seconds
-
-Initiating PH iteration=47
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108891.6607 Max-Min= 3.68
-Converger= Term diff value is 0.0702 - threshold reached=False
-Cumulative run-time=27.26 seconds
-
-Initiating PH iteration=48
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108899.8341 Max-Min= 0.07
-Converger= Term diff value is 0.0014 - threshold reached=True
-Cumulative run-time=27.80 seconds
-
-Number of discrete variables fixed before final plugin calls=0 (total=0)
-Number of continuous variables fixed before final plugin calls=0 (total=3)
-PH complete
-
-Convergence history:
-Converger= Term diff
-Iteration Metric Value
- 0 98.5185
- 1 56.7654
- 2 37.3580
- 3 36.5075
- 4 35.4086
- 5 36.2217
- 6 29.3303
- 7 21.9702
- 8 13.8077
- 9 9.5141
- 10 12.0668
- 11 11.6644
- 12 7.5080
- 13 3.1070
- 14 5.5300
- 15 5.4381
- 16 3.2812
- 17 1.1980
- 18 1.0800
- 19 1.3642
- 20 1.5168
- 21 1.6833
- 22 1.6446
- 23 1.3382
- 24 0.8599
- 25 0.3180
- 26 0.1981
- 27 0.5760
- 28 0.8045
- 29 0.8608
- 30 0.7643
- 31 0.5565
- 32 0.2905
- 33 0.0205
- 34 0.2079
- 35 0.3637
- 36 0.4328
- 37 0.4183
- 38 0.3365
- 39 0.2122
- 40 0.0733
- 41 0.0547
- 42 0.1522
- 43 0.2081
- 44 0.2200
- 45 0.1933
- 46 0.1388
- 47 0.0702
- 48 0.0014
-
-
-Final number of discrete variables fixed=0 (total=0)
-Final number of continuous variables fixed=0 (total=3)
-
-Computing objective inner bound at xhat solution
-
-Computed objective upper bound=-108389.9155
-
-X-hat variable values:
-
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 79.9984 79.9984 79.9984
-
- Index: [SUGAR_BEETS] Values: 250.0000 250.0000 250.0000
-
- Index: [WHEAT] Values: 170.0016 170.0016 170.0016
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108899.8727 108899.8727 108899.8727 Max-Min: 0.0000 Avg: 108899.8727
-
-X-hat costs:
-
-Scenario Tree Costs
-----------------------------------------------------
-Tree Nodes:
-
- Name=AboveAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AboveAverageScenario
- Expected cost of (sub)tree rooted at node=-275899.9516
-
- Name=AverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AverageScenario
- Expected cost of (sub)tree rooted at node=-218249.6738
-
- Name=BelowAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-157719.7390
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- AboveAverageNode
- AverageNode
- BelowAverageNode
- Scenarios:
- AboveAverageScenario
- AverageScenario
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-108389.9155
-
-----------------------------------------------------
-Scenarios:
-
- Name=AboveAverageScenario
- Probability=0.3333
- Leaf Node=AboveAverageNode
- Tree node sequence:
- RootNode
- AboveAverageNode
- Stage= FirstStage Cost=108899.8727
- Stage= SecondStage Cost=-275899.9516
- Total scenario cost=-167000.0789
-
- Name=AverageScenario
- Probability=0.3333
- Leaf Node=AverageNode
- Tree node sequence:
- RootNode
- AverageNode
- Stage= FirstStage Cost=108899.8727
- Stage= SecondStage Cost=-218249.6738
- Total scenario cost=-109349.8011
-
- Name=BelowAverageScenario
- Probability=0.3333
- Leaf Node=BelowAverageNode
- Tree node sequence:
- RootNode
- BelowAverageNode
- Stage= FirstStage Cost=108899.8727
- Stage= SecondStage Cost=-157719.7390
- Total scenario cost=-48819.8663
-
-----------------------------------------------------
-
-
-Total PH execution time=28.37 seconds
-
-
-Total execution time=28.43 seconds
diff --git a/pyomo/pysp/tests/unit/baselines/farmer_quadratic_nonnormalized_termdiff_gurobi.baseline b/pyomo/pysp/tests/unit/baselines/farmer_quadratic_nonnormalized_termdiff_gurobi.baseline
deleted file mode 100644
index 8a91cfe639f..00000000000
--- a/pyomo/pysp/tests/unit/baselines/farmer_quadratic_nonnormalized_termdiff_gurobi.baseline
+++ /dev/null
@@ -1,517 +0,0 @@
-Initializing PH
-
-Starting PH
-
-Initiating PH iteration=0
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 113494.4444 Max-Min=10416.67
-Converger= Term diff value is 98.5185 - threshold reached=False
-Cumulative run-time=0.91 seconds
-
-Initiating PH iteration=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 113107.2222 Max-Min= 6943.89
-Converger= Term diff value is 56.7654 - threshold reached=False
-Cumulative run-time=1.76 seconds
-
-Initiating PH iteration=2
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 112954.6296 Max-Min= 2234.81
-Converger= Term diff value is 37.3580 - threshold reached=False
-Cumulative run-time=2.61 seconds
-
-Initiating PH iteration=3
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 112963.0247 Max-Min= 2375.31
-Converger= Term diff value is 36.5075 - threshold reached=False
-Cumulative run-time=3.46 seconds
-
-Initiating PH iteration=4
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 112915.6070 Max-Min= 3047.08
-Converger= Term diff value is 35.4086 - threshold reached=False
-Cumulative run-time=4.32 seconds
-
-Initiating PH iteration=5
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 112825.3927 Max-Min= 3339.81
-Converger= Term diff value is 36.2217 - threshold reached=False
-Cumulative run-time=5.25 seconds
-
-Initiating PH iteration=6
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 112317.9503 Max-Min= 2019.60
-Converger= Term diff value is 29.3303 - threshold reached=False
-Cumulative run-time=6.23 seconds
-
-Initiating PH iteration=7
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 111364.4659 Max-Min= 1181.85
-Converger= Term diff value is 21.9702 - threshold reached=False
-Cumulative run-time=7.21 seconds
-
-Initiating PH iteration=8
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 110283.4071 Max-Min= 463.23
-Converger= Term diff value is 13.8077 - threshold reached=False
-Cumulative run-time=8.16 seconds
-
-Initiating PH iteration=9
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 109399.2538 Max-Min= 363.90
-Converger= Term diff value is 9.5141 - threshold reached=False
-Cumulative run-time=9.07 seconds
-
-Initiating PH iteration=10
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108834.1926 Max-Min= 933.90
-Converger= Term diff value is 12.0668 - threshold reached=False
-Cumulative run-time=9.94 seconds
-
-Initiating PH iteration=11
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108575.3215 Max-Min= 918.57
-Converger= Term diff value is 11.6644 - threshold reached=False
-Cumulative run-time=10.79 seconds
-
-Initiating PH iteration=12
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108513.5342 Max-Min= 591.25
-Converger= Term diff value is 7.5080 - threshold reached=False
-Cumulative run-time=11.64 seconds
-
-Initiating PH iteration=13
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108528.2895 Max-Min= 175.95
-Converger= Term diff value is 3.1070 - threshold reached=False
-Cumulative run-time=12.49 seconds
-
-Initiating PH iteration=14
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108561.6573 Max-Min= 274.77
-Converger= Term diff value is 5.5300 - threshold reached=False
-Cumulative run-time=13.34 seconds
-
-Initiating PH iteration=15
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108604.0575 Max-Min= 295.14
-Converger= Term diff value is 5.4381 - threshold reached=False
-Cumulative run-time=14.19 seconds
-
-Initiating PH iteration=16
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108667.3580 Max-Min= 127.67
-Converger= Term diff value is 3.2812 - threshold reached=False
-Cumulative run-time=15.04 seconds
-
-Initiating PH iteration=17
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108758.4236 Max-Min= 59.69
-Converger= Term diff value is 1.1980 - threshold reached=False
-Cumulative run-time=15.90 seconds
-
-Initiating PH iteration=18
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108868.1277 Max-Min= 101.79
-Converger= Term diff value is 1.0800 - threshold reached=False
-Cumulative run-time=16.75 seconds
-
-Initiating PH iteration=19
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108975.3090 Max-Min= 73.41
-Converger= Term diff value is 1.3642 - threshold reached=False
-Cumulative run-time=17.60 seconds
-
-Initiating PH iteration=20
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 109057.4144 Max-Min= 39.47
-Converger= Term diff value is 1.5168 - threshold reached=False
-Cumulative run-time=18.50 seconds
-
-Initiating PH iteration=21
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 109099.7145 Max-Min= 87.57
-Converger= Term diff value is 1.6833 - threshold reached=False
-Cumulative run-time=19.43 seconds
-
-Initiating PH iteration=22
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 109099.1238 Max-Min= 104.22
-Converger= Term diff value is 1.6446 - threshold reached=False
-Cumulative run-time=20.37 seconds
-
-Initiating PH iteration=23
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 109062.8320 Max-Min= 88.54
-Converger= Term diff value is 1.3382 - threshold reached=False
-Cumulative run-time=21.31 seconds
-
-Initiating PH iteration=24
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 109004.1153 Max-Min= 54.49
-Converger= Term diff value is 0.8599 - threshold reached=False
-Cumulative run-time=22.27 seconds
-
-Initiating PH iteration=25
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108937.8036 Max-Min= 16.89
-Converger= Term diff value is 0.3180 - threshold reached=False
-Cumulative run-time=23.21 seconds
-
-Initiating PH iteration=26
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108876.8819 Max-Min= 14.27
-Converger= Term diff value is 0.1981 - threshold reached=False
-Cumulative run-time=24.08 seconds
-
-Initiating PH iteration=27
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108830.6200 Max-Min= 34.81
-Converger= Term diff value is 0.5760 - threshold reached=False
-Cumulative run-time=24.93 seconds
-
-Initiating PH iteration=28
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108803.9654 Max-Min= 44.57
-Converger= Term diff value is 0.8045 - threshold reached=False
-Cumulative run-time=25.78 seconds
-
-Initiating PH iteration=29
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108797.7662 Max-Min= 45.24
-Converger= Term diff value is 0.8608 - threshold reached=False
-Cumulative run-time=26.63 seconds
-
-Initiating PH iteration=30
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108809.4794 Max-Min= 39.01
-Converger= Term diff value is 0.7643 - threshold reached=False
-Cumulative run-time=27.48 seconds
-
-Initiating PH iteration=31
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108834.1640 Max-Min= 28.07
-Converger= Term diff value is 0.5565 - threshold reached=False
-Cumulative run-time=28.33 seconds
-
-Initiating PH iteration=32
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108865.6237 Max-Min= 14.67
-Converger= Term diff value is 0.2905 - threshold reached=False
-Cumulative run-time=29.18 seconds
-
-Initiating PH iteration=33
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108897.5677 Max-Min= 1.06
-Converger= Term diff value is 0.0205 - threshold reached=False
-Cumulative run-time=30.03 seconds
-
-Initiating PH iteration=34
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108924.6330 Max-Min= 10.64
-Converger= Term diff value is 0.2079 - threshold reached=False
-Cumulative run-time=30.88 seconds
-
-Initiating PH iteration=35
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108943.1228 Max-Min= 18.81
-Converger= Term diff value is 0.3637 - threshold reached=False
-Cumulative run-time=31.72 seconds
-
-Initiating PH iteration=36
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108951.3646 Max-Min= 22.58
-Converger= Term diff value is 0.4328 - threshold reached=False
-Cumulative run-time=32.56 seconds
-
-Initiating PH iteration=37
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108949.6725 Max-Min= 21.96
-Converger= Term diff value is 0.4183 - threshold reached=False
-Cumulative run-time=33.42 seconds
-
-Initiating PH iteration=38
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108939.9737 Max-Min= 17.74
-Converger= Term diff value is 0.3365 - threshold reached=False
-Cumulative run-time=34.31 seconds
-
-Initiating PH iteration=39
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108925.2188 Max-Min= 11.21
-Converger= Term diff value is 0.2122 - threshold reached=False
-Cumulative run-time=35.32 seconds
-
-Initiating PH iteration=40
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108908.7148 Max-Min= 3.89
-Converger= Term diff value is 0.0733 - threshold reached=False
-Cumulative run-time=36.28 seconds
-
-Initiating PH iteration=41
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108893.5088 Max-Min= 2.87
-Converger= Term diff value is 0.0547 - threshold reached=False
-Cumulative run-time=37.21 seconds
-
-Initiating PH iteration=42
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108881.9216 Max-Min= 8.01
-Converger= Term diff value is 0.1522 - threshold reached=False
-Cumulative run-time=38.04 seconds
-
-Initiating PH iteration=43
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108875.2811 Max-Min= 10.94
-Converger= Term diff value is 0.2081 - threshold reached=False
-Cumulative run-time=38.87 seconds
-
-Initiating PH iteration=44
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108873.8685 Max-Min= 11.56
-Converger= Term diff value is 0.2200 - threshold reached=False
-Cumulative run-time=39.70 seconds
-
-Initiating PH iteration=45
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108877.0467 Max-Min= 10.15
-Converger= Term diff value is 0.1933 - threshold reached=False
-Cumulative run-time=40.53 seconds
-
-Initiating PH iteration=46
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108883.5200 Max-Min= 7.28
-Converger= Term diff value is 0.1388 - threshold reached=False
-Cumulative run-time=41.36 seconds
-
-Initiating PH iteration=47
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108891.6605 Max-Min= 3.68
-Converger= Term diff value is 0.0702 - threshold reached=False
-Cumulative run-time=42.19 seconds
-
-Initiating PH iteration=48
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108899.8339 Max-Min= 0.07
-Converger= Term diff value is 0.0014 - threshold reached=True
-Cumulative run-time=43.02 seconds
-
-Number of discrete variables fixed before final plugin calls=0 (total=0)
-Number of continuous variables fixed before final plugin calls=0 (total=3)
-PH complete
-
-Convergence history:
-Converger= Term diff
-Iteration Metric Value
- 0 98.5185
- 1 56.7654
- 2 37.3580
- 3 36.5075
- 4 35.4086
- 5 36.2217
- 6 29.3303
- 7 21.9702
- 8 13.8077
- 9 9.5141
- 10 12.0668
- 11 11.6644
- 12 7.5080
- 13 3.1070
- 14 5.5300
- 15 5.4381
- 16 3.2812
- 17 1.1980
- 18 1.0800
- 19 1.3642
- 20 1.5168
- 21 1.6833
- 22 1.6446
- 23 1.3382
- 24 0.8599
- 25 0.3180
- 26 0.1981
- 27 0.5760
- 28 0.8045
- 29 0.8608
- 30 0.7643
- 31 0.5565
- 32 0.2905
- 33 0.0205
- 34 0.2079
- 35 0.3637
- 36 0.4328
- 37 0.4183
- 38 0.3365
- 39 0.2122
- 40 0.0733
- 41 0.0547
- 42 0.1522
- 43 0.2081
- 44 0.2200
- 45 0.1933
- 46 0.1388
- 47 0.0702
- 48 0.0014
-
-
-Final number of discrete variables fixed=0 (total=0)
-Final number of continuous variables fixed=0 (total=3)
-
-Computing objective inner bound at xhat solution
-
-Computed objective upper bound=-108389.9155
-
-X-hat variable values:
-
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 79.9984 79.9984 79.9984
-
- Index: [SUGAR_BEETS] Values: 250.0000 250.0000 250.0000
-
- Index: [WHEAT] Values: 170.0016 170.0016 170.0016
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108899.8724 108899.8724 108899.8724 Max-Min: 0.0000 Avg: 108899.8724
-
-X-hat costs:
-
-Scenario Tree Costs
-----------------------------------------------------
-Tree Nodes:
-
- Name=AboveAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AboveAverageScenario
- Expected cost of (sub)tree rooted at node=-275899.9522
-
- Name=AverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AverageScenario
- Expected cost of (sub)tree rooted at node=-218249.6730
-
- Name=BelowAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-157719.7384
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- AboveAverageNode
- AverageNode
- BelowAverageNode
- Scenarios:
- AboveAverageScenario
- AverageScenario
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-108389.9155
-
-----------------------------------------------------
-Scenarios:
-
- Name=AboveAverageScenario
- Probability=0.3333
- Leaf Node=AboveAverageNode
- Tree node sequence:
- RootNode
- AboveAverageNode
- Stage= FirstStage Cost=108899.8724
- Stage= SecondStage Cost=-275899.9522
- Total scenario cost=-167000.0797
-
- Name=AverageScenario
- Probability=0.3333
- Leaf Node=AverageNode
- Tree node sequence:
- RootNode
- AverageNode
- Stage= FirstStage Cost=108899.8724
- Stage= SecondStage Cost=-218249.6730
- Total scenario cost=-109349.8006
-
- Name=BelowAverageScenario
- Probability=0.3333
- Leaf Node=BelowAverageNode
- Tree node sequence:
- RootNode
- BelowAverageNode
- Stage= FirstStage Cost=108899.8724
- Stage= SecondStage Cost=-157719.7384
- Total scenario cost=-48819.8660
-
-----------------------------------------------------
-
-
-Total PH execution time=43.85 seconds
-
-
-Total execution time=43.91 seconds
diff --git a/pyomo/pysp/tests/unit/baselines/farmer_quadratic_trivial_bundling_cplex.baseline b/pyomo/pysp/tests/unit/baselines/farmer_quadratic_trivial_bundling_cplex.baseline
deleted file mode 100644
index 46f2008a75c..00000000000
--- a/pyomo/pysp/tests/unit/baselines/farmer_quadratic_trivial_bundling_cplex.baseline
+++ /dev/null
@@ -1,2185 +0,0 @@
-Importing model and scenario tree files
-Time to import model and scenario tree structure files=0.02 seconds
-Scenario Tree Detail
-----------------------------------------------------
-Tree Nodes:
-
- Name=AboveAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AboveAverageScenario
-
- Name=AverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AverageScenario
-
- Name=BelowAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- BelowAverageScenario
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- AboveAverageNode
- AverageNode
- BelowAverageNode
- Scenarios:
- AboveAverageScenario
- AverageScenario
- BelowAverageScenario
-
-----------------------------------------------------
-Stages:
- Name=FirstStage
- Tree Nodes:
- RootNode
- Variables:
- DevotedAcreage : [*]
- Cost Variable:
- FirstStageCost
-
- Name=SecondStage
- Tree Nodes:
- AboveAverageNode
- AverageNode
- BelowAverageNode
- Variables:
- QuantityPurchased : [*]
- QuantitySubQuotaSold : [*]
- QuantitySuperQuotaSold : [*]
- Cost Variable:
- SecondStageCost
-
-----------------------------------------------------
-Scenarios:
- Name=AboveAverageScenario
- Probability=0.3333
- Leaf node=AboveAverageNode
- Tree node sequence:
- RootNode
- AboveAverageNode
-
- Name=AverageScenario
- Probability=0.3333
- Leaf node=AverageNode
- Tree node sequence:
- RootNode
- AverageNode
-
- Name=BelowAverageScenario
- Probability=0.3333
- Leaf node=BelowAverageNode
- Tree node sequence:
- RootNode
- BelowAverageNode
-
-----------------------------------------------------
-Scenario Bundles:
- Name=AboveAverageBundle
- Probability=0.3333
- Scenarios: AboveAverageScenario
-
- Name=AverageBundle
- Probability=0.3333
- Scenarios: AverageScenario
-
- Name=BelowAverageBundle
- Probability=0.3333
- Scenarios: BelowAverageScenario
-
-----------------------------------------------------
-Scenario tree is valid!
-Scenario-based instance initialization enabled
-Creating instance for scenario=BelowAverageScenario
-Data for scenario=BelowAverageScenario loads from file=/home/hudson/slave/workspace/Pyomo_trunk_python3.4_snotra_expensive/src/pyomo/examples/pysp/farmer/scenariodataWithTrivialBundles/BelowAverageScenario.dat
-Creating instance for scenario=AverageScenario
-Data for scenario=AverageScenario loads from file=/home/hudson/slave/workspace/Pyomo_trunk_python3.4_snotra_expensive/src/pyomo/examples/pysp/farmer/scenariodataWithTrivialBundles/AverageScenario.dat
-Creating instance for scenario=AboveAverageScenario
-Data for scenario=AboveAverageScenario loads from file=/home/hudson/slave/workspace/Pyomo_trunk_python3.4_snotra_expensive/src/pyomo/examples/pysp/farmer/scenariodataWithTrivialBundles/AboveAverageScenario.dat
-Time to construct scenario instances=0.04 seconds
-Time link scenario tree with instances=0.00 seconds
-Constructing solver manager of type=serial
-Constructing solver type=cplex
-PH solver configuration:
- Max iterations=100
- Async mode=False
- Async buffer length=1
- Default global rho=1.0
- Over-relaxation enabled=False
- Sub-problem solver type='cplex'
- Keep solver files? False
- Output solver results? False
- Output solver log? False
- Output times? False
-Initializing PH
-
-Invoking pre-initialization PH plugins
-Creating weight, average, and rho parameter vectors for scenario instances
-Creating deterministic SymbolMaps for scenario instances
-Forming binding instances for all scenario bundles
-Creating binding instance for scenario bundle=BelowAverageBundle
-Creating variables for master binding instance
-Creating binding instance for scenario bundle=AverageBundle
-Creating variables for master binding instance
-Creating binding instance for scenario bundle=AboveAverageBundle
-Creating variables for master binding instance
-PH successfully created model instances for all scenarios
-PH is successfully initialized
-Invoking post-initialization PH plugins
-Starting PH
-
-Initiating PH iteration=0
-------------------------------------------------
-Starting PH iteration 0 solves
-Queuing solve for scenario bundle=BelowAverageBundle
-Queuing solve for scenario bundle=AverageBundle
-Queuing solve for scenario bundle=AboveAverageBundle
-Waiting for bundle sub-problem solves
-Results obtained for bundle=BelowAverageBundle
-Successfully loaded solution for bundle=BelowAverageBundle
-Results obtained for bundle=AverageBundle
-Successfully loaded solution for bundle=AverageBundle
-Results obtained for bundle=AboveAverageBundle
-Successfully loaded solution for bundle=AboveAverageBundle
-Successfully completed PH iteration 0 solves
-- solution statistics:
-
- Scenario Bundle Cost Objective Objective Gap Solution Status
- BelowAverageBundle -59950.0000 -59950.0000 0.0000 optimal
- AverageBundle -118600.0000 -118600.0000 0.0000 optimal
- AboveAverageBundle -167666.6667 -167666.6667 0.0000 optimal
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario -59950.0000 -59950.0000 None Reported None Reported
- AverageScenario -118600.0000 -118600.0000 None Reported None Reported
- AboveAverageScenario -167666.6667 -167666.6667 None Reported None Reported
-
-Total number of non-stale discrete instance variables=0
-Total number of non-stale continuous instance variables=3
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 25.0000 80.0000 66.6667 Max-Min: 55.0000 Avg: 57.2222
-
- Index: [SUGAR_BEETS] Values: 375.0000 300.0000 250.0000 Max-Min: 125.0000 Avg: 308.3333
-
- Index: [WHEAT] Values: 100.0000 120.0000 183.3333 Max-Min: 83.3333 Avg: 134.4444
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 118250.0000 114400.0000 107833.3333 Max-Min: 10416.6667 Avg: 113494.4445
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 113494.4444 Max-Min=10416.67
-Converger=Normalized term diff value is 0.2540 - threshold reached=False
-Cumulative run-time=0.12 seconds
-
-Initiating PH iteration=1
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: -32.2222 22.7778 9.4444 Average: 57.2222
- Index: [SUGAR_BEETS] Weights: 66.6667 -8.3333 -58.3333 Average: 308.3333
- Index: [WHEAT] Weights: -34.4444 -14.4444 48.8889 Average: 134.4444
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 118250.0000 114400.0000 107833.3333 Max-Min: 10416.6667 Avg: 113494.4445
-------------------------------------------------
-Starting PH iteration 1 solves
-Queuing solve for scenario bundle=BelowAverageBundle
-Queuing solve for scenario bundle=AverageBundle
-Queuing solve for scenario bundle=AboveAverageBundle
-Waiting for bundle sub-problem solves
-Results obtained for bundle=BelowAverageBundle
-Successfully loaded solution for bundle=BelowAverageBundle
-Results obtained for bundle=AverageBundle
-Successfully loaded solution for bundle=AverageBundle
-Results obtained for bundle=AboveAverageBundle
-Successfully loaded solution for bundle=AboveAverageBundle
-Successfully completed PH iteration 1 solves
-- solution statistics:
-
- Scenario Bundle Cost Objective Objective Gap Solution Status
- BelowAverageBundle -56722.9993 -41924.1388 0.0000 optimal
- AverageBundle -118599.9999 -120612.6542 0.0000 optimal
- AboveAverageBundle -166944.4439 -169924.9996 0.0000 optimal
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario -56722.9993 -41924.1388 None Reported None Reported
- AverageScenario -118599.9999 -120612.6542 None Reported None Reported
- AboveAverageScenario -166944.4439 -169924.9996 None Reported None Reported
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 100.0000 80.0000 81.1111 Max-Min: 20.0000 Avg: 87.0370
-
- Index: [SUGAR_BEETS] Values: 299.3889 300.0000 250.0000 Max-Min: 50.0000 Avg: 283.1296
-
- Index: [WHEAT] Values: 100.6111 120.0000 168.8889 Max-Min: 68.2778 Avg: 129.8333
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 115932.7772 114400.0000 108988.8890 Max-Min: 6943.8882 Avg: 113107.2221
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 113107.2221 Max-Min= 6943.89
-Converger=Normalized term diff value is 0.1259 - threshold reached=False
-Cumulative run-time=0.27 seconds
-
-Initiating PH iteration=2
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: -19.2593 15.7407 3.5185 Average: 87.0370
- Index: [SUGAR_BEETS] Weights: 82.9259 8.5370 -91.4630 Average: 283.1296
- Index: [WHEAT] Weights: -63.6667 -24.2778 87.9444 Average: 129.8333
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 115932.7772 114400.0000 108988.8890 Max-Min: 6943.8882 Avg: 113107.2221
-------------------------------------------------
-Starting PH iteration 2 solves
-Queuing solve for scenario bundle=BelowAverageBundle
-Queuing solve for scenario bundle=AverageBundle
-Queuing solve for scenario bundle=AboveAverageBundle
-Waiting for bundle sub-problem solves
-Results obtained for bundle=BelowAverageBundle
-Successfully loaded solution for bundle=BelowAverageBundle
-Results obtained for bundle=AverageBundle
-Successfully loaded solution for bundle=AverageBundle
-Results obtained for bundle=AboveAverageBundle
-Successfully loaded solution for bundle=AboveAverageBundle
-Successfully completed PH iteration 2 solves
-- solution statistics:
-
- Scenario Bundle Cost Objective Objective Gap Solution Status
- BelowAverageBundle -52560.3335 -40675.6752 0.0000 optimal
- AverageBundle -118599.9997 -117477.5506 0.0000 optimal
- AboveAverageBundle -164959.2593 -174919.3259 0.0000 optimal
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario -52560.3335 -40675.6752 None Reported None Reported
- AverageScenario -118599.9997 -117477.5506 None Reported None Reported
- AboveAverageScenario -164959.2593 -174919.3259 None Reported None Reported
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 100.0000 80.0000 120.8148 Max-Min: 40.8148 Avg: 100.2716
-
- Index: [SUGAR_BEETS] Values: 266.3519 300.0000 250.0000 Max-Min: 50.0000 Avg: 272.1173
-
- Index: [WHEAT] Values: 133.6481 120.0000 129.1852 Max-Min: 13.6481 Avg: 127.6111
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 112298.7040 114400.0000 112165.1850 Max-Min: 2234.8150 Avg: 112954.6297
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 112954.6296 Max-Min= 2234.82
-Converger=Normalized term diff value is 0.0816 - threshold reached=False
-Cumulative run-time=0.41 seconds
-
-Initiating PH iteration=3
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: -19.5309 -4.5309 24.0617 Average: 100.2716
- Index: [SUGAR_BEETS] Weights: 77.1605 36.4198 -113.5802 Average: 272.1173
- Index: [WHEAT] Weights: -57.6296 -31.8889 89.5185 Average: 127.6111
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 112298.7040 114400.0000 112165.1850 Max-Min: 2234.8150 Avg: 112954.6297
-------------------------------------------------
-Starting PH iteration 3 solves
-Queuing solve for scenario bundle=BelowAverageBundle
-Queuing solve for scenario bundle=AverageBundle
-Queuing solve for scenario bundle=AboveAverageBundle
-Waiting for bundle sub-problem solves
-Results obtained for bundle=BelowAverageBundle
-Successfully loaded solution for bundle=BelowAverageBundle
-Results obtained for bundle=AverageBundle
-Successfully loaded solution for bundle=AverageBundle
-Results obtained for bundle=AboveAverageBundle
-Successfully loaded solution for bundle=AboveAverageBundle
-Successfully completed PH iteration 3 solves
-- solution statistics:
-
- Scenario Bundle Cost Objective Objective Gap Solution Status
- BelowAverageBundle -52750.1114 -41631.0614 0.0000 optimal
- AverageBundle -118599.9999 -111240.0534 0.0000 optimal
- AboveAverageBundle -165047.0678 -178429.0876 0.0000 optimal
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario -52750.1114 -41631.0614 None Reported None Reported
- AverageScenario -118599.9999 -111240.0534 None Reported None Reported
- AboveAverageScenario -165047.0678 -178429.0876 None Reported None Reported
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 100.0000 80.0000 119.0586 Max-Min: 39.0586 Avg: 99.6862
-
- Index: [SUGAR_BEETS] Values: 267.8580 300.0000 250.0000 Max-Min: 50.0000 Avg: 272.6193
-
- Index: [WHEAT] Values: 132.1420 120.0000 130.9414 Max-Min: 12.1420 Avg: 127.6944
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 112464.3830 114400.0000 112024.6913 Max-Min: 2375.3087 Avg: 112963.0248
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 112963.0248 Max-Min= 2375.31
-Converger=Normalized term diff value is 0.0796 - threshold reached=False
-Cumulative run-time=0.58 seconds
-
-Initiating PH iteration=4
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: -19.2171 -24.2171 43.4342 Average: 99.6862
- Index: [SUGAR_BEETS] Weights: 72.3992 63.8004 -136.1996 Average: 272.6193
- Index: [WHEAT] Weights: -53.1821 -39.5833 92.7654 Average: 127.6944
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 112464.3830 114400.0000 112024.6913 Max-Min: 2375.3087 Avg: 112963.0248
-------------------------------------------------
-Starting PH iteration 4 solves
-Queuing solve for scenario bundle=BelowAverageBundle
-Queuing solve for scenario bundle=AverageBundle
-Queuing solve for scenario bundle=AboveAverageBundle
-Waiting for bundle sub-problem solves
-Results obtained for bundle=BelowAverageBundle
-Successfully loaded solution for bundle=BelowAverageBundle
-Results obtained for bundle=AverageBundle
-Successfully loaded solution for bundle=AverageBundle
-Results obtained for bundle=AboveAverageBundle
-Successfully loaded solution for bundle=AboveAverageBundle
-Successfully completed PH iteration 4 solves
-- solution statistics:
-
- Scenario Bundle Cost Objective Objective Gap Solution Status
- BelowAverageBundle -53356.6481 -42308.6039 0.0000 optimal
- AverageBundle -118599.9999 -105549.0171 0.0000 optimal
- AboveAverageBundle -165466.9237 -181400.6992 0.0000 optimal
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario -53356.6481 -42308.6039 None Reported None Reported
- AverageScenario -118599.9999 -105549.0171 None Reported None Reported
- AboveAverageScenario -165466.9237 -181400.6992 None Reported None Reported
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 100.0000 80.0000 110.6615 Max-Min: 30.6615 Avg: 96.8872
-
- Index: [SUGAR_BEETS] Values: 272.6718 300.0000 250.0000 Max-Min: 50.0000 Avg: 274.2239
-
- Index: [WHEAT] Values: 127.3282 120.0000 139.3385 Max-Min: 19.3385 Avg: 128.8889
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 112993.8993 114400.0000 111352.9219 Max-Min: 3047.0781 Avg: 112915.6071
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 112915.6071 Max-Min= 3047.08
-Converger=Normalized term diff value is 0.0776 - threshold reached=False
-Cumulative run-time=0.75 seconds
-
-Initiating PH iteration=5
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: -16.1043 -41.1043 57.2085 Average: 96.8872
- Index: [SUGAR_BEETS] Weights: 70.8471 89.5765 -160.4235 Average: 274.2239
- Index: [WHEAT] Weights: -54.7428 -48.4722 103.2150 Average: 128.8889
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 112993.8993 114400.0000 111352.9219 Max-Min: 3047.0781 Avg: 112915.6071
-------------------------------------------------
-Starting PH iteration 5 solves
-Queuing solve for scenario bundle=BelowAverageBundle
-Queuing solve for scenario bundle=AverageBundle
-Queuing solve for scenario bundle=AboveAverageBundle
-Waiting for bundle sub-problem solves
-Results obtained for bundle=BelowAverageBundle
-Successfully loaded solution for bundle=BelowAverageBundle
-Results obtained for bundle=AverageBundle
-Successfully loaded solution for bundle=AverageBundle
-Results obtained for bundle=AboveAverageBundle
-Successfully loaded solution for bundle=AboveAverageBundle
-Successfully completed PH iteration 5 solves
-- solution statistics:
-
- Scenario Bundle Cost Objective Objective Gap Solution Status
- BelowAverageBundle -53381.9474 -42612.1540 0.0000 optimal
- AverageBundle -118599.9995 -100317.7674 0.0000 optimal
- AboveAverageBundle -165649.8797 -184430.7274 0.0000 optimal
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario -53381.9474 -42612.1540 None Reported None Reported
- AverageScenario -118599.9995 -100317.7674 None Reported None Reported
- AboveAverageScenario -165649.8797 -184430.7274 None Reported None Reported
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 100.0000 80.0000 107.0024 Max-Min: 27.0024 Avg: 95.6675
-
- Index: [SUGAR_BEETS] Values: 272.8726 300.0000 250.0000 Max-Min: 50.0000 Avg: 274.2909
-
- Index: [WHEAT] Values: 127.1274 120.0000 142.9976 Max-Min: 22.9976 Avg: 130.0417
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 113015.9860 114399.9998 111060.1921 Max-Min: 3339.8077 Avg: 112825.3926
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 112825.3926 Max-Min= 3339.81
-Converger=Normalized term diff value is 0.0794 - threshold reached=False
-Cumulative run-time=0.91 seconds
-
-Initiating PH iteration=6
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: -11.7717 -56.7717 68.5434 Average: 95.6675
- Index: [SUGAR_BEETS] Weights: 69.4288 115.2856 -184.7144 Average: 274.2909
- Index: [WHEAT] Weights: -57.6571 -58.5139 116.1710 Average: 130.0417
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 113015.9860 114399.9998 111060.1921 Max-Min: 3339.8077 Avg: 112825.3926
-------------------------------------------------
-Starting PH iteration 6 solves
-Queuing solve for scenario bundle=BelowAverageBundle
-Queuing solve for scenario bundle=AverageBundle
-Queuing solve for scenario bundle=AboveAverageBundle
-Waiting for bundle sub-problem solves
-Results obtained for bundle=BelowAverageBundle
-Successfully loaded solution for bundle=BelowAverageBundle
-Results obtained for bundle=AverageBundle
-Successfully loaded solution for bundle=AverageBundle
-Results obtained for bundle=AboveAverageBundle
-Successfully loaded solution for bundle=AboveAverageBundle
-Successfully completed PH iteration 6 solves
-- solution statistics:
-
- Scenario Bundle Cost Objective Objective Gap Solution Status
- BelowAverageBundle -53219.2909 -42930.7281 0.0000 optimal
- AverageBundle -116329.0977 -95224.7694 0.0000 optimal
- AboveAverageBundle -165668.6669 -187438.9477 0.0000 optimal
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario -53219.2909 -42930.7281 None Reported None Reported
- AverageScenario -116329.0977 -95224.7694 None Reported None Reported
- AboveAverageScenario -165668.6669 -187438.9477 None Reported None Reported
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 100.0000 80.0000 106.6267 Max-Min: 26.6267 Avg: 95.5422
-
- Index: [SUGAR_BEETS] Values: 271.5817 287.7249 250.0000 Max-Min: 37.7249 Avg: 269.7688
-
- Index: [WHEAT] Values: 128.4183 132.2751 143.3733 Max-Min: 14.9550 Avg: 134.6889
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 112873.9843 113049.7339 111030.1326 Max-Min: 2019.6013 Avg: 112317.9502
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 112317.9502 Max-Min= 2019.60
-Converger=Normalized term diff value is 0.0668 - threshold reached=False
-Cumulative run-time=1.08 seconds
-
-Initiating PH iteration=7
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: -7.3139 -72.3139 79.6279 Average: 95.5422
- Index: [SUGAR_BEETS] Weights: 71.2416 133.2416 -204.4832 Average: 269.7688
- Index: [WHEAT] Weights: -63.9277 -60.9277 124.8554 Average: 134.6889
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 112873.9843 113049.7339 111030.1326 Max-Min: 2019.6013 Avg: 112317.9502
-------------------------------------------------
-Starting PH iteration 7 solves
-Queuing solve for scenario bundle=BelowAverageBundle
-Queuing solve for scenario bundle=AverageBundle
-Queuing solve for scenario bundle=AboveAverageBundle
-Waiting for bundle sub-problem solves
-Results obtained for bundle=BelowAverageBundle
-Successfully loaded solution for bundle=BelowAverageBundle
-Results obtained for bundle=AverageBundle
-Successfully loaded solution for bundle=AverageBundle
-Results obtained for bundle=AboveAverageBundle
-Successfully loaded solution for bundle=AboveAverageBundle
-Successfully completed PH iteration 7 solves
-- solution statistics:
-
- Scenario Bundle Cost Objective Objective Gap Solution Status
- BelowAverageBundle -52132.3683 -42855.4274 0.0000 optimal
- AverageBundle -113596.7312 -91769.7430 0.0000 optimal
- AboveAverageBundle -165847.9786 -190116.4068 0.0000 optimal
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario -52132.3683 -42855.4274 None Reported None Reported
- AverageScenario -113596.7312 -91769.7430 None Reported None Reported
- AboveAverageScenario -165847.9786 -190116.4068 None Reported None Reported
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 100.0000 80.0000 103.0404 Max-Min: 23.0404 Avg: 94.3468
-
- Index: [SUGAR_BEETS] Values: 262.9553 272.9553 250.0000 Max-Min: 22.9553 Avg: 261.9702
-
- Index: [WHEAT] Values: 137.0447 147.0447 146.9596 Max-Min: 10.0000 Avg: 143.6830
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 111925.0836 111425.0836 110743.2308 Max-Min: 1181.8528 Avg: 111364.4660
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 111364.4660 Max-Min= 1181.85
-Converger=Normalized term diff value is 0.0542 - threshold reached=False
-Cumulative run-time=1.23 seconds
-
-Initiating PH iteration=8
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: -1.6607 -86.6607 88.3215 Average: 94.3468
- Index: [SUGAR_BEETS] Weights: 72.2267 144.2267 -216.4534 Average: 261.9702
- Index: [WHEAT] Weights: -70.5660 -57.5660 128.1320 Average: 143.6830
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 111925.0836 111425.0836 110743.2308 Max-Min: 1181.8528 Avg: 111364.4660
-------------------------------------------------
-Starting PH iteration 8 solves
-Queuing solve for scenario bundle=BelowAverageBundle
-Queuing solve for scenario bundle=AverageBundle
-Queuing solve for scenario bundle=AboveAverageBundle
-Waiting for bundle sub-problem solves
-Results obtained for bundle=BelowAverageBundle
-Successfully loaded solution for bundle=BelowAverageBundle
-Results obtained for bundle=AverageBundle
-Successfully loaded solution for bundle=AverageBundle
-Results obtained for bundle=AboveAverageBundle
-Successfully loaded solution for bundle=AboveAverageBundle
-Successfully completed PH iteration 8 solves
-- solution statistics:
-
- Scenario Bundle Cost Objective Objective Gap Solution Status
- BelowAverageBundle -50594.1536 -43087.2755 0.0000 optimal
- AverageBundle -110943.7960 -89612.4133 0.0000 optimal
- AboveAverageBundle -166238.1422 -191976.5270 0.0000 optimal
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario -50594.1536 -43087.2755 None Reported None Reported
- AverageScenario -110943.7960 -89612.4133 None Reported None Reported
- AboveAverageScenario -166238.1422 -191976.5270 None Reported None Reported
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 100.0000 82.6742 95.2371 Max-Min: 17.3258 Avg: 92.6371
-
- Index: [SUGAR_BEETS] Values: 250.7473 259.4101 250.0000 Max-Min: 9.4101 Avg: 253.3858
-
- Index: [WHEAT] Values: 149.2527 157.9156 154.7628 Max-Min: 8.6629 Avg: 153.9771
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 110582.1976 110149.0525 110118.9721 Max-Min: 463.2255 Avg: 110283.4074
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 110283.4074 Max-Min= 463.23
-Converger=Normalized term diff value is 0.0360 - threshold reached=False
-Cumulative run-time=1.38 seconds
-
-Initiating PH iteration=9
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: 5.7022 -96.6236 90.9215 Average: 92.6371
- Index: [SUGAR_BEETS] Weights: 69.5882 150.2511 -219.8392 Average: 253.3858
- Index: [WHEAT] Weights: -75.2903 -53.6274 128.9177 Average: 153.9771
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 110582.1976 110149.0525 110118.9721 Max-Min: 463.2255 Avg: 110283.4074
-------------------------------------------------
-Starting PH iteration 9 solves
-Queuing solve for scenario bundle=BelowAverageBundle
-Queuing solve for scenario bundle=AverageBundle
-Queuing solve for scenario bundle=AboveAverageBundle
-Waiting for bundle sub-problem solves
-Results obtained for bundle=BelowAverageBundle
-Successfully loaded solution for bundle=BelowAverageBundle
-Results obtained for bundle=AverageBundle
-Successfully loaded solution for bundle=AverageBundle
-Results obtained for bundle=AboveAverageBundle
-Successfully loaded solution for bundle=AboveAverageBundle
-Successfully completed PH iteration 9 solves
-- solution statistics:
-
- Scenario Bundle Cost Objective Objective Gap Solution Status
- BelowAverageBundle -49273.4045 -43880.3122 0.0000 optimal
- AverageBundle -107787.2503 -88509.4663 0.0000 optimal
- AboveAverageBundle -166583.5915 -192625.4838 0.0000 optimal
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario -49273.4045 -43880.3122 None Reported None Reported
- AverageScenario -107787.2503 -88509.4663 None Reported None Reported
- AboveAverageScenario -166583.5915 -192625.4838 None Reported None Reported
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 100.0000 90.9274 88.3281 Max-Min: 11.6719 Avg: 93.0852
-
- Index: [SUGAR_BEETS] Values: 240.2651 244.8014 250.0000 Max-Min: 9.7349 Avg: 245.0222
-
- Index: [WHEAT] Values: 159.7349 164.2712 161.6719 Max-Min: 4.5363 Avg: 161.8926
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 109429.1627 109202.3486 109566.2514 Max-Min: 363.9028 Avg: 109399.2542
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 109399.2542 Max-Min= 363.90
-Converger=Normalized term diff value is 0.0243 - threshold reached=False
-Cumulative run-time=1.53 seconds
-
-Initiating PH iteration=10
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: 12.6170 -98.7814 86.1644 Average: 93.0852
- Index: [SUGAR_BEETS] Weights: 64.8311 150.0303 -214.8614 Average: 245.0222
- Index: [WHEAT] Weights: -77.4481 -51.2489 128.6970 Average: 161.8926
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 109429.1627 109202.3486 109566.2514 Max-Min: 363.9028 Avg: 109399.2542
-------------------------------------------------
-Starting PH iteration 10 solves
-Queuing solve for scenario bundle=BelowAverageBundle
-Queuing solve for scenario bundle=AverageBundle
-Queuing solve for scenario bundle=AboveAverageBundle
-Waiting for bundle sub-problem solves
-Results obtained for bundle=BelowAverageBundle
-Successfully loaded solution for bundle=BelowAverageBundle
-Results obtained for bundle=AverageBundle
-Successfully loaded solution for bundle=AverageBundle
-Results obtained for bundle=AboveAverageBundle
-Successfully loaded solution for bundle=AboveAverageBundle
-Successfully completed PH iteration 10 solves
-- solution statistics:
-
- Scenario Bundle Cost Objective Objective Gap Solution Status
- BelowAverageBundle -48295.4051 -44838.3975 0.0000 optimal
- AverageBundle -106137.5026 -88506.9755 0.0000 optimal
- AboveAverageBundle -166656.8719 -191859.9413 0.0000 optimal
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario -48295.4051 -44838.3975 None Reported None Reported
- AverageScenario -106137.5026 -88506.9755 None Reported None Reported
- AboveAverageScenario -166656.8719 -191859.9413 None Reported None Reported
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 94.4682 93.5333 86.8625 Max-Min: 7.6057 Avg: 91.6213
-
- Index: [SUGAR_BEETS] Values: 236.1911 236.6585 250.0000 Max-Min: 13.8089 Avg: 240.9499
-
- Index: [WHEAT] Values: 169.3407 169.8082 163.1375 Max-Min: 6.6707 Avg: 167.4288
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108538.4753 108515.1010 109449.0028 Max-Min: 933.9018 Avg: 108834.1930
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108834.1930 Max-Min= 933.90
-Converger=Normalized term diff value is 0.0256 - threshold reached=False
-Cumulative run-time=1.69 seconds
-
-Initiating PH iteration=11
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: 15.4638 -96.8695 81.4056 Average: 91.6213
- Index: [SUGAR_BEETS] Weights: 60.0723 145.7390 -205.8113 Average: 240.9499
- Index: [WHEAT] Weights: -75.5362 -48.8695 124.4056 Average: 167.4288
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108538.4753 108515.1010 109449.0028 Max-Min: 933.9018 Avg: 108834.1930
-------------------------------------------------
-Starting PH iteration 11 solves
-Queuing solve for scenario bundle=BelowAverageBundle
-Queuing solve for scenario bundle=AverageBundle
-Queuing solve for scenario bundle=AboveAverageBundle
-Waiting for bundle sub-problem solves
-Results obtained for bundle=BelowAverageBundle
-Successfully loaded solution for bundle=BelowAverageBundle
-Results obtained for bundle=AverageBundle
-Successfully loaded solution for bundle=AverageBundle
-Results obtained for bundle=AboveAverageBundle
-Successfully loaded solution for bundle=AboveAverageBundle
-Successfully completed PH iteration 11 solves
-- solution statistics:
-
- Scenario Bundle Cost Objective Objective Gap Solution Status
- BelowAverageBundle -48019.8029 -45436.2580 0.0000 optimal
- AverageBundle -106363.6874 -89002.9246 0.0000 optimal
- AboveAverageBundle -166820.1853 -190692.5567 0.0000 optimal
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario -48019.8029 -45436.2580 None Reported None Reported
- AverageScenario -106363.6874 -89002.9246 None Reported None Reported
- AboveAverageScenario -166820.1853 -190692.5567 None Reported None Reported
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 90.1575 90.1575 83.5963 Max-Min: 6.5612 Avg: 87.9704
-
- Index: [SUGAR_BEETS] Values: 236.8776 236.8776 250.0000 Max-Min: 13.1224 Avg: 241.2517
-
- Index: [WHEAT] Values: 172.9649 172.9649 166.4037 Max-Min: 6.5612 Avg: 170.7779
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108269.1319 108269.1318 109187.7021 Max-Min: 918.5702 Avg: 108575.3219
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108575.3219 Max-Min= 918.57
-Converger=Normalized term diff value is 0.0248 - threshold reached=False
-Cumulative run-time=1.84 seconds
-
-Initiating PH iteration=12
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: 17.6509 -94.6824 77.0315 Average: 87.9704
- Index: [SUGAR_BEETS] Weights: 55.6982 141.3648 -197.0630 Average: 241.2517
- Index: [WHEAT] Weights: -73.3491 -46.6824 120.0315 Average: 170.7779
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108269.1319 108269.1318 109187.7021 Max-Min: 918.5702 Avg: 108575.3219
-------------------------------------------------
-Starting PH iteration 12 solves
-Queuing solve for scenario bundle=BelowAverageBundle
-Queuing solve for scenario bundle=AverageBundle
-Queuing solve for scenario bundle=AboveAverageBundle
-Waiting for bundle sub-problem solves
-Results obtained for bundle=BelowAverageBundle
-Successfully loaded solution for bundle=BelowAverageBundle
-Results obtained for bundle=AverageBundle
-Successfully loaded solution for bundle=AverageBundle
-Results obtained for bundle=AboveAverageBundle
-Successfully loaded solution for bundle=AboveAverageBundle
-Successfully completed PH iteration 12 solves
-- solution statistics:
-
- Scenario Bundle Cost Objective Objective Gap Solution Status
- BelowAverageBundle -48118.5854 -45935.9131 0.0000 optimal
- AverageBundle -107549.8351 -89502.5805 0.0000 optimal
- AboveAverageBundle -166995.1849 -189627.5495 0.0000 optimal
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario -48118.5854 -45935.9131 None Reported None Reported
- AverageScenario -107549.8351 -89502.5805 None Reported None Reported
- AboveAverageScenario -166995.1849 -189627.5495 None Reported None Reported
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 84.3195 84.3195 80.0963 Max-Min: 4.2232 Avg: 82.9118
-
- Index: [SUGAR_BEETS] Values: 241.5536 241.5536 250.0000 Max-Min: 8.4464 Avg: 244.3690
-
- Index: [WHEAT] Values: 174.1269 174.1269 169.9037 Max-Min: 4.2232 Avg: 172.7192
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108316.4508 108316.4509 108907.7023 Max-Min: 591.2515 Avg: 108513.5347
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108513.5347 Max-Min= 591.25
-Converger=Normalized term diff value is 0.0163 - threshold reached=False
-Cumulative run-time=2.00 seconds
-
-Initiating PH iteration=13
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: 19.0587 -93.2747 74.2160 Average: 82.9118
- Index: [SUGAR_BEETS] Weights: 52.8827 138.5493 -191.4320 Average: 244.3690
- Index: [WHEAT] Weights: -71.9413 -45.2747 117.2160 Average: 172.7192
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108316.4508 108316.4509 108907.7023 Max-Min: 591.2515 Avg: 108513.5347
-------------------------------------------------
-Starting PH iteration 13 solves
-Queuing solve for scenario bundle=BelowAverageBundle
-Queuing solve for scenario bundle=AverageBundle
-Queuing solve for scenario bundle=AboveAverageBundle
-Waiting for bundle sub-problem solves
-Results obtained for bundle=BelowAverageBundle
-Successfully loaded solution for bundle=BelowAverageBundle
-Results obtained for bundle=AverageBundle
-Successfully loaded solution for bundle=AverageBundle
-Results obtained for bundle=AboveAverageBundle
-Successfully loaded solution for bundle=AboveAverageBundle
-Successfully completed PH iteration 13 solves
-- solution statistics:
-
- Scenario Bundle Cost Objective Objective Gap Solution Status
- BelowAverageBundle -48322.9415 -46297.1991 0.0000 optimal
- AverageBundle -108686.3876 -89860.4092 0.0000 optimal
- AboveAverageBundle -167170.1858 -188981.7981 0.0000 optimal
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario -48322.9415 -46297.1991 None Reported None Reported
- AverageScenario -108686.3876 -89860.4092 None Reported None Reported
- AboveAverageScenario -167170.1858 -188981.7981 None Reported None Reported
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 77.8531 80.0000 76.5963 Max-Min: 3.4037 Avg: 78.1498
-
- Index: [SUGAR_BEETS] Values: 247.4864 246.4129 250.0000 Max-Min: 3.5871 Avg: 247.9664
-
- Index: [WHEAT] Values: 174.6605 173.5871 173.4037 Max-Min: 1.2568 Avg: 173.8838
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108451.7474 108505.4201 108627.7021 Max-Min: 175.9546 Avg: 108528.2899
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108528.2899 Max-Min= 175.95
-Converger=Normalized term diff value is 0.0081 - threshold reached=False
-Cumulative run-time=2.15 seconds
-
-Initiating PH iteration=14
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: 18.7620 -91.4245 72.6625 Average: 78.1498
- Index: [SUGAR_BEETS] Weights: 52.4026 136.9958 -189.3984 Average: 247.9664
- Index: [WHEAT] Weights: -71.1646 -45.5714 116.7359 Average: 173.8838
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108451.7474 108505.4201 108627.7021 Max-Min: 175.9546 Avg: 108528.2899
-------------------------------------------------
-Starting PH iteration 14 solves
-Queuing solve for scenario bundle=BelowAverageBundle
-Queuing solve for scenario bundle=AverageBundle
-Queuing solve for scenario bundle=AboveAverageBundle
-Waiting for bundle sub-problem solves
-Results obtained for bundle=BelowAverageBundle
-Successfully loaded solution for bundle=BelowAverageBundle
-Results obtained for bundle=AverageBundle
-Successfully loaded solution for bundle=AverageBundle
-Results obtained for bundle=AboveAverageBundle
-Successfully loaded solution for bundle=AboveAverageBundle
-Successfully completed PH iteration 14 solves
-- solution statistics:
-
- Scenario Bundle Cost Objective Objective Gap Solution Status
- BelowAverageBundle -48461.6172 -46340.8726 0.0000 optimal
- AverageBundle -109027.6783 -90153.8466 0.0000 optimal
- AboveAverageBundle -167291.5122 -188714.1705 0.0000 optimal
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario -48461.6172 -46340.8726 None Reported None Reported
- AverageScenario -109027.6783 -90153.8466 None Reported None Reported
- AboveAverageScenario -167291.5122 -188714.1705 None Reported None Reported
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 73.3878 80.0000 74.1697 Max-Min: 6.6122 Avg: 75.8525
-
- Index: [SUGAR_BEETS] Values: 251.5638 248.2577 250.0000 Max-Min: 3.3061 Avg: 249.9405
-
- Index: [WHEAT] Values: 175.0484 171.7423 175.8303 Max-Min: 4.0880 Avg: 174.2070
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108543.0451 108708.3494 108433.5787 Max-Min: 274.7707 Avg: 108561.6577
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108561.6577 Max-Min= 274.77
-Converger=Normalized term diff value is 0.0168 - threshold reached=False
-Cumulative run-time=2.29 seconds
-
-Initiating PH iteration=15
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: 16.2973 -87.2770 70.9797 Average: 75.8525
- Index: [SUGAR_BEETS] Weights: 54.0259 135.3130 -189.3390 Average: 249.9405
- Index: [WHEAT] Weights: -70.3232 -48.0361 118.3592 Average: 174.2070
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108543.0451 108708.3494 108433.5787 Max-Min: 274.7707 Avg: 108561.6577
-------------------------------------------------
-Starting PH iteration 15 solves
-Queuing solve for scenario bundle=BelowAverageBundle
-Queuing solve for scenario bundle=AverageBundle
-Queuing solve for scenario bundle=AboveAverageBundle
-Waiting for bundle sub-problem solves
-Results obtained for bundle=BelowAverageBundle
-Successfully loaded solution for bundle=BelowAverageBundle
-Results obtained for bundle=AverageBundle
-Successfully loaded solution for bundle=AverageBundle
-Results obtained for bundle=AboveAverageBundle
-Successfully loaded solution for bundle=AboveAverageBundle
-Successfully completed PH iteration 15 solves
-- solution statistics:
-
- Scenario Bundle Cost Objective Objective Gap Solution Status
- BelowAverageBundle -48519.8801 -45980.0909 0.0000 optimal
- AverageBundle -109108.0604 -90654.2868 0.0000 optimal
- AboveAverageBundle -167274.3717 -188547.9501 0.0000 optimal
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario -48519.8801 -45980.0909 None Reported None Reported
- AverageScenario -109108.0604 -90654.2868 None Reported None Reported
- AboveAverageScenario -167274.3717 -188547.9501 None Reported None Reported
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 73.5552 80.0000 74.5125 Max-Min: 6.4448 Avg: 76.0226
-
- Index: [SUGAR_BEETS] Values: 251.9146 248.6922 250.0000 Max-Min: 3.2224 Avg: 250.2023
-
- Index: [WHEAT] Values: 174.5302 171.3078 175.4875 Max-Min: 4.1797 Avg: 173.7751
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108595.0256 108756.1444 108461.0037 Max-Min: 295.1407 Avg: 108604.0579
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108604.0579 Max-Min= 295.14
-Converger=Normalized term diff value is 0.0163 - threshold reached=False
-Cumulative run-time=2.45 seconds
-
-Initiating PH iteration=16
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: 13.8299 -83.2996 69.4697 Average: 76.0226
- Index: [SUGAR_BEETS] Weights: 55.7382 133.8030 -189.5412 Average: 250.2023
- Index: [WHEAT] Weights: -69.5682 -50.5034 120.0716 Average: 173.7751
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108595.0256 108756.1444 108461.0037 Max-Min: 295.1407 Avg: 108604.0579
-------------------------------------------------
-Starting PH iteration 16 solves
-Queuing solve for scenario bundle=BelowAverageBundle
-Queuing solve for scenario bundle=AverageBundle
-Queuing solve for scenario bundle=AboveAverageBundle
-Waiting for bundle sub-problem solves
-Results obtained for bundle=BelowAverageBundle
-Successfully loaded solution for bundle=BelowAverageBundle
-Results obtained for bundle=AverageBundle
-Successfully loaded solution for bundle=AverageBundle
-Results obtained for bundle=AboveAverageBundle
-Successfully loaded solution for bundle=AboveAverageBundle
-Successfully completed PH iteration 16 solves
-- solution statistics:
-
- Scenario Bundle Cost Objective Objective Gap Solution Status
- BelowAverageBundle -48558.6533 -45603.5219 0.0000 optimal
- AverageBundle -109083.6691 -91135.8155 0.0000 optimal
- AboveAverageBundle -167178.7649 -188413.2938 0.0000 optimal
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario -48558.6533 -45603.5219 None Reported None Reported
- AverageScenario -109083.6691 -91135.8155 None Reported None Reported
- AboveAverageScenario -167178.7649 -188413.2938 None Reported None Reported
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 76.1927 80.0000 76.4247 Max-Min: 3.8073 Avg: 77.5391
-
- Index: [SUGAR_BEETS] Values: 250.4640 248.5604 250.0000 Max-Min: 1.9037 Avg: 249.6748
-
- Index: [WHEAT] Values: 173.3433 171.4396 173.5753 Max-Min: 2.1357 Avg: 172.7861
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108646.4582 108741.6413 108613.9754 Max-Min: 127.6659 Avg: 108667.3583
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108667.3583 Max-Min= 127.67
-Converger=Normalized term diff value is 0.0098 - threshold reached=False
-Cumulative run-time=2.61 seconds
-
-Initiating PH iteration=17
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: 12.4835 -80.8387 68.3552 Average: 77.5391
- Index: [SUGAR_BEETS] Weights: 56.5275 132.6886 -189.2160 Average: 249.6748
- Index: [WHEAT] Weights: -69.0109 -51.8499 120.8608 Average: 172.7861
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108646.4582 108741.6413 108613.9754 Max-Min: 127.6659 Avg: 108667.3583
-------------------------------------------------
-Starting PH iteration 17 solves
-Queuing solve for scenario bundle=BelowAverageBundle
-Queuing solve for scenario bundle=AverageBundle
-Queuing solve for scenario bundle=AboveAverageBundle
-Waiting for bundle sub-problem solves
-Results obtained for bundle=BelowAverageBundle
-Successfully loaded solution for bundle=BelowAverageBundle
-Results obtained for bundle=AverageBundle
-Successfully loaded solution for bundle=AverageBundle
-Results obtained for bundle=AboveAverageBundle
-Successfully loaded solution for bundle=AboveAverageBundle
-Successfully completed PH iteration 17 solves
-- solution statistics:
-
- Scenario Bundle Cost Objective Objective Gap Solution Status
- BelowAverageBundle -48633.2384 -45416.7770 0.0000 optimal
- AverageBundle -109104.9041 -91454.2257 0.0000 optimal
- AboveAverageBundle -167068.5341 -188284.1696 0.0000 optimal
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario -48633.2384 -45416.7770 None Reported None Reported
- AverageScenario -109104.9041 -91454.2257 None Reported None Reported
- AboveAverageScenario -167068.5341 -188284.1696 None Reported None Reported
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 79.0556 80.0000 78.6293 Max-Min: 1.3707 Avg: 79.2283
-
- Index: [SUGAR_BEETS] Values: 249.1473 248.6752 250.0000 Max-Min: 1.3248 Avg: 249.2742
-
- Index: [WHEAT] Values: 171.7970 171.3248 171.3707 Max-Min: 0.4722 Avg: 171.4975
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108730.6586 108754.2674 108790.3452 Max-Min: 59.6865 Avg: 108758.4237
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108758.4237 Max-Min= 59.69
-Converger=Normalized term diff value is 0.0032 - threshold reached=False
-Cumulative run-time=2.78 seconds
-
-Initiating PH iteration=18
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: 12.3108 -80.0670 67.7562 Average: 79.2283
- Index: [SUGAR_BEETS] Weights: 56.4006 132.0896 -188.4902 Average: 249.2742
- Index: [WHEAT] Weights: -68.7114 -52.0225 120.7340 Average: 171.4975
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108730.6586 108754.2674 108790.3452 Max-Min: 59.6865 Avg: 108758.4237
-------------------------------------------------
-Starting PH iteration 18 solves
-Queuing solve for scenario bundle=BelowAverageBundle
-Queuing solve for scenario bundle=AverageBundle
-Queuing solve for scenario bundle=AboveAverageBundle
-Waiting for bundle sub-problem solves
-Results obtained for bundle=BelowAverageBundle
-Successfully loaded solution for bundle=BelowAverageBundle
-Results obtained for bundle=AverageBundle
-Successfully loaded solution for bundle=AverageBundle
-Results obtained for bundle=AboveAverageBundle
-Successfully loaded solution for bundle=AboveAverageBundle
-Successfully completed PH iteration 18 solves
-- solution statistics:
-
- Scenario Bundle Cost Objective Objective Gap Solution Status
- BelowAverageBundle -48755.1355 -45415.3155 0.0000 optimal
- AverageBundle -109226.4723 -91575.5674 0.0000 optimal
- AboveAverageBundle -166982.2847 -188175.7178 0.0000 optimal
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario -48755.1355 -45415.3155 None Reported None Reported
- AverageScenario -109226.4723 -91575.5674 None Reported None Reported
- AboveAverageScenario -166982.2847 -188175.7178 None Reported None Reported
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 80.9175 80.0000 80.3543 Max-Min: 0.9175 Avg: 80.4239
-
- Index: [SUGAR_BEETS] Values: 248.8735 249.3323 250.0000 Max-Min: 1.1265 Avg: 249.4019
-
- Index: [WHEAT] Values: 170.2090 170.6677 169.6457 Max-Min: 1.0220 Avg: 170.1741
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108849.4892 108826.5512 108928.3427 Max-Min: 101.7914 Avg: 108868.1277
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108868.1277 Max-Min= 101.79
-Converger=Normalized term diff value is 0.0026 - threshold reached=False
-Cumulative run-time=2.94 seconds
-
-Initiating PH iteration=19
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: 12.8044 -80.4910 67.6866 Average: 80.4239
- Index: [SUGAR_BEETS] Weights: 55.8722 132.0199 -187.8921 Average: 249.4019
- Index: [WHEAT] Weights: -68.6766 -51.5289 120.2056 Average: 170.1741
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108849.4892 108826.5512 108928.3427 Max-Min: 101.7914 Avg: 108868.1277
-------------------------------------------------
-Starting PH iteration 19 solves
-Queuing solve for scenario bundle=BelowAverageBundle
-Queuing solve for scenario bundle=AverageBundle
-Queuing solve for scenario bundle=AboveAverageBundle
-Waiting for bundle sub-problem solves
-Results obtained for bundle=BelowAverageBundle
-Successfully loaded solution for bundle=BelowAverageBundle
-Results obtained for bundle=AverageBundle
-Successfully loaded solution for bundle=AverageBundle
-Results obtained for bundle=AboveAverageBundle
-Successfully loaded solution for bundle=AboveAverageBundle
-Successfully completed PH iteration 19 solves
-- solution statistics:
-
- Scenario Bundle Cost Objective Objective Gap Solution Status
- BelowAverageBundle -48896.7850 -45504.4148 0.0000 optimal
- AverageBundle -109412.8038 -91544.0535 0.0000 optimal
- AboveAverageBundle -166930.7790 -188124.7937 0.0000 optimal
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario -48896.7850 -45504.4148 None Reported None Reported
- AverageScenario -109412.8038 -91544.0535 None Reported None Reported
- AboveAverageScenario -166930.7790 -188124.7937 None Reported None Reported
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 81.6195 80.0000 81.3844 Max-Min: 1.6195 Avg: 81.0013
-
- Index: [SUGAR_BEETS] Values: 249.5297 250.3395 250.0000 Max-Min: 0.8098 Avg: 249.9564
-
- Index: [WHEAT] Values: 168.8507 169.6605 168.6156 Max-Min: 1.0449 Avg: 169.0423
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108977.8317 108937.3430 109010.7521 Max-Min: 73.4090 Avg: 108975.3089
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108975.3089 Max-Min= 73.41
-Converger=Normalized term diff value is 0.0039 - threshold reached=False
-Cumulative run-time=3.09 seconds
-
-Initiating PH iteration=20
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: 13.4226 -81.4923 68.0697 Average: 81.0013
- Index: [SUGAR_BEETS] Weights: 55.4455 132.4030 -187.8485 Average: 249.9564
- Index: [WHEAT] Weights: -68.8682 -50.9107 119.7789 Average: 169.0423
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108977.8317 108937.3430 109010.7521 Max-Min: 73.4090 Avg: 108975.3089
-------------------------------------------------
-Starting PH iteration 20 solves
-Queuing solve for scenario bundle=BelowAverageBundle
-Queuing solve for scenario bundle=AverageBundle
-Queuing solve for scenario bundle=AboveAverageBundle
-Waiting for bundle sub-problem solves
-Results obtained for bundle=BelowAverageBundle
-Successfully loaded solution for bundle=BelowAverageBundle
-Results obtained for bundle=AverageBundle
-Successfully loaded solution for bundle=AverageBundle
-Results obtained for bundle=AboveAverageBundle
-Successfully loaded solution for bundle=AboveAverageBundle
-Successfully completed PH iteration 20 solves
-- solution statistics:
-
- Scenario Bundle Cost Objective Objective Gap Solution Status
- BelowAverageBundle -49016.9785 -45594.9909 0.0000 optimal
- AverageBundle -109590.5376 -91424.1866 0.0000 optimal
- AboveAverageBundle -166908.2927 -188156.5534 0.0000 optimal
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario -49016.9785 -45594.9909 None Reported None Reported
- AverageScenario -109590.5376 -91424.1866 None Reported None Reported
- AboveAverageScenario -166908.2927 -188156.5534 None Reported None Reported
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 81.5787 80.0000 81.8341 Max-Min: 1.8341 Avg: 81.1376
-
- Index: [SUGAR_BEETS] Values: 250.5109 251.3002 250.0000 Max-Min: 1.3002 Avg: 250.6037
-
- Index: [WHEAT] Values: 167.9104 168.6998 168.1659 Max-Min: 0.7893 Avg: 168.2587
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 109082.4902 109043.0227 109046.7302 Max-Min: 39.4674 Avg: 109057.4144
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 109057.4144 Max-Min= 39.47
-Converger=Normalized term diff value is 0.0043 - threshold reached=False
-Cumulative run-time=3.24 seconds
-
-Initiating PH iteration=21
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: 13.8637 -82.6299 68.7662 Average: 81.1376
- Index: [SUGAR_BEETS] Weights: 55.3527 133.0995 -188.4522 Average: 250.6037
- Index: [WHEAT] Weights: -69.2164 -50.4696 119.6860 Average: 168.2587
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 109082.4902 109043.0227 109046.7302 Max-Min: 39.4674 Avg: 109057.4144
-------------------------------------------------
-Starting PH iteration 21 solves
-Queuing solve for scenario bundle=BelowAverageBundle
-Queuing solve for scenario bundle=AverageBundle
-Queuing solve for scenario bundle=AboveAverageBundle
-Waiting for bundle sub-problem solves
-Results obtained for bundle=BelowAverageBundle
-Successfully loaded solution for bundle=BelowAverageBundle
-Results obtained for bundle=AverageBundle
-Successfully loaded solution for bundle=AverageBundle
-Results obtained for bundle=AboveAverageBundle
-Successfully loaded solution for bundle=AboveAverageBundle
-Successfully completed PH iteration 21 solves
-- solution statistics:
-
- Scenario Bundle Cost Objective Objective Gap Solution Status
- BelowAverageBundle -49084.6309 -45641.9525 0.0000 optimal
- AverageBundle -109699.2661 -91266.5697 0.0000 optimal
- AboveAverageBundle -166905.0295 -188266.3942 0.0000 optimal
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario -49084.6309 -45641.9525 None Reported None Reported
- AverageScenario -109699.2661 -91266.5697 None Reported None Reported
- AboveAverageScenario -166905.0295 -188266.3942 None Reported None Reported
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 81.2739 80.0000 81.8994 Max-Min: 1.8994 Avg: 81.0578
-
- Index: [SUGAR_BEETS] Values: 251.2510 251.8879 250.0000 Max-Min: 1.8879 Avg: 251.0463
-
- Index: [WHEAT] Values: 167.4751 168.1121 168.1006 Max-Min: 0.6369 Avg: 167.8959
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 109139.5198 109107.6723 109051.9513 Max-Min: 87.5685 Avg: 109099.7145
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 109099.7145 Max-Min= 87.57
-Converger=Normalized term diff value is 0.0044 - threshold reached=False
-Cumulative run-time=3.38 seconds
-
-Initiating PH iteration=22
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: 14.0798 -83.6876 69.6078 Average: 81.0578
- Index: [SUGAR_BEETS] Weights: 55.5574 133.9411 -189.4985 Average: 251.0463
- Index: [WHEAT] Weights: -69.6372 -50.2535 119.8907 Average: 167.8959
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 109139.5198 109107.6723 109051.9513 Max-Min: 87.5685 Avg: 109099.7145
-------------------------------------------------
-Starting PH iteration 22 solves
-Queuing solve for scenario bundle=BelowAverageBundle
-Queuing solve for scenario bundle=AverageBundle
-Queuing solve for scenario bundle=AboveAverageBundle
-Waiting for bundle sub-problem solves
-Results obtained for bundle=BelowAverageBundle
-Successfully loaded solution for bundle=BelowAverageBundle
-Results obtained for bundle=AverageBundle
-Successfully loaded solution for bundle=AverageBundle
-Results obtained for bundle=AboveAverageBundle
-Successfully loaded solution for bundle=AboveAverageBundle
-Successfully completed PH iteration 22 solves
-- solution statistics:
-
- Scenario Bundle Cost Objective Objective Gap Solution Status
- BelowAverageBundle -49089.7488 -45643.9036 0.0000 optimal
- AverageBundle -109715.9076 -91103.4143 0.0000 optimal
- AboveAverageBundle -166913.8800 -188424.2285 0.0000 optimal
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario -49089.7488 -45643.9036 None Reported None Reported
- AverageScenario -109715.9076 -91103.4143 None Reported None Reported
- AboveAverageScenario -166913.8800 -188424.2285 None Reported None Reported
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 80.9779 80.0000 81.7224 Max-Min: 1.7224 Avg: 80.9001
-
- Index: [SUGAR_BEETS] Values: 251.4889 251.9779 250.0000 Max-Min: 1.9779 Avg: 251.1556
-
- Index: [WHEAT] Values: 167.5332 168.0221 168.2776 Max-Min: 0.7445 Avg: 167.9443
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 109142.0146 109117.5667 109037.7904 Max-Min: 104.2242 Avg: 109099.1239
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 109099.1239 Max-Min= 104.22
-Converger=Normalized term diff value is 0.0040 - threshold reached=False
-Cumulative run-time=3.53 seconds
-
-Initiating PH iteration=23
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: 14.1577 -84.5877 70.4301 Average: 80.9001
- Index: [SUGAR_BEETS] Weights: 55.8907 134.7634 -190.6541 Average: 251.1556
- Index: [WHEAT] Weights: -70.0484 -50.1757 120.2240 Average: 167.9443
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 109142.0146 109117.5667 109037.7904 Max-Min: 104.2242 Avg: 109099.1239
-------------------------------------------------
-Starting PH iteration 23 solves
-Queuing solve for scenario bundle=BelowAverageBundle
-Queuing solve for scenario bundle=AverageBundle
-Queuing solve for scenario bundle=AboveAverageBundle
-Waiting for bundle sub-problem solves
-Results obtained for bundle=BelowAverageBundle
-Successfully loaded solution for bundle=BelowAverageBundle
-Results obtained for bundle=AverageBundle
-Successfully loaded solution for bundle=AverageBundle
-Results obtained for bundle=AboveAverageBundle
-Successfully loaded solution for bundle=AboveAverageBundle
-Successfully completed PH iteration 23 solves
-- solution statistics:
-
- Scenario Bundle Cost Objective Objective Gap Solution Status
- BelowAverageBundle -49041.7412 -45622.8376 0.0000 optimal
- AverageBundle -109652.6809 -90955.5224 0.0000 optimal
- AboveAverageBundle -166931.2547 -188589.7398 0.0000 optimal
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario -49041.7412 -45622.8376 None Reported None Reported
- AverageScenario -109652.6809 -90955.5224 None Reported None Reported
- AboveAverageScenario -166931.2547 -188589.7398 None Reported None Reported
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 80.7424 80.0000 81.3749 Max-Min: 1.3749 Avg: 80.7058
-
- Index: [SUGAR_BEETS] Values: 251.2649 251.6361 250.0000 Max-Min: 1.6361 Avg: 250.9670
-
- Index: [WHEAT] Values: 167.9927 168.3639 168.6251 Max-Min: 0.6324 Avg: 168.3272
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 109098.5333 109079.9725 109009.9907 Max-Min: 88.5426 Avg: 109062.8322
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 109062.8322 Max-Min= 88.54
-Converger=Normalized term diff value is 0.0032 - threshold reached=False
-Cumulative run-time=3.67 seconds
-
-Initiating PH iteration=24
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: 14.1943 -85.2935 71.0992 Average: 80.7058
- Index: [SUGAR_BEETS] Weights: 56.1886 135.4325 -191.6211 Average: 250.9670
- Index: [WHEAT] Weights: -70.3829 -50.1390 120.5219 Average: 168.3272
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 109098.5333 109079.9725 109009.9907 Max-Min: 88.5426 Avg: 109062.8322
-------------------------------------------------
-Starting PH iteration 24 solves
-Queuing solve for scenario bundle=BelowAverageBundle
-Queuing solve for scenario bundle=AverageBundle
-Queuing solve for scenario bundle=AboveAverageBundle
-Waiting for bundle sub-problem solves
-Results obtained for bundle=BelowAverageBundle
-Successfully loaded solution for bundle=BelowAverageBundle
-Results obtained for bundle=AverageBundle
-Successfully loaded solution for bundle=AverageBundle
-Results obtained for bundle=AboveAverageBundle
-Successfully loaded solution for bundle=AboveAverageBundle
-Successfully completed PH iteration 24 solves
-- solution statistics:
-
- Scenario Bundle Cost Objective Objective Gap Solution Status
- BelowAverageBundle -48961.0406 -45601.5513 0.0000 optimal
- AverageBundle -109541.3140 -90837.9367 0.0000 optimal
- AboveAverageBundle -166954.9663 -188727.3107 0.0000 optimal
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario -48961.0406 -45601.5513 None Reported None Reported
- AverageScenario -109541.3140 -90837.9367 None Reported None Reported
- AboveAverageScenario -166954.9663 -188727.3107 None Reported None Reported
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 80.5114 80.0000 80.9006 Max-Min: 0.9006 Avg: 80.4707
-
- Index: [SUGAR_BEETS] Values: 250.7784 251.0341 250.0000 Max-Min: 1.0341 Avg: 250.6042
-
- Index: [WHEAT] Values: 168.7101 168.9659 169.0993 Max-Min: 0.3892 Avg: 168.9251
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 109026.5404 109013.7543 108972.0520 Max-Min: 54.4884 Avg: 109004.1156
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 109004.1156 Max-Min= 54.49
-Converger=Normalized term diff value is 0.0021 - threshold reached=False
-Cumulative run-time=3.82 seconds
-
-Initiating PH iteration=25
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: 14.2351 -85.7642 71.5291 Average: 80.4707
- Index: [SUGAR_BEETS] Weights: 56.3628 135.8625 -192.2253 Average: 250.6042
- Index: [WHEAT] Weights: -70.5979 -50.0983 120.6962 Average: 168.9251
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 109026.5404 109013.7543 108972.0520 Max-Min: 54.4884 Avg: 109004.1156
-------------------------------------------------
-Starting PH iteration 25 solves
-Queuing solve for scenario bundle=BelowAverageBundle
-Queuing solve for scenario bundle=AverageBundle
-Queuing solve for scenario bundle=AboveAverageBundle
-Waiting for bundle sub-problem solves
-Results obtained for bundle=BelowAverageBundle
-Successfully loaded solution for bundle=BelowAverageBundle
-Results obtained for bundle=AverageBundle
-Successfully loaded solution for bundle=AverageBundle
-Results obtained for bundle=AboveAverageBundle
-Successfully loaded solution for bundle=AboveAverageBundle
-Successfully completed PH iteration 25 solves
-- solution statistics:
-
- Scenario Bundle Cost Objective Objective Gap Solution Status
- BelowAverageBundle -48870.2030 -45591.4301 0.0000 optimal
- AverageBundle -109416.4460 -90761.4821 0.0000 optimal
- AboveAverageBundle -166982.1836 -188814.9010 0.0000 optimal
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario -48870.2030 -45591.4301 None Reported None Reported
- AverageScenario -109416.4460 -90761.4821 None Reported None Reported
- AboveAverageScenario -166982.1836 -188814.9010 None Reported None Reported
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 80.2356 80.0000 80.3563 Max-Min: 0.3563 Avg: 80.1973
-
- Index: [SUGAR_BEETS] Values: 250.2414 250.3592 250.0000 Max-Min: 0.3592 Avg: 250.2002
-
- Index: [WHEAT] Values: 169.5230 169.6408 169.6437 Max-Min: 0.1207 Avg: 169.6025
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108945.3990 108939.5085 108928.5042 Max-Min: 16.8948 Avg: 108937.8039
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108937.8039 Max-Min= 16.89
-Converger=Normalized term diff value is 0.0008 - threshold reached=False
-Cumulative run-time=3.96 seconds
-
-Initiating PH iteration=26
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: 14.2734 -85.9615 71.6881 Average: 80.1973
- Index: [SUGAR_BEETS] Weights: 56.4040 136.0215 -192.4255 Average: 250.2002
- Index: [WHEAT] Weights: -70.6774 -50.0599 120.7373 Average: 169.6025
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108945.3990 108939.5085 108928.5042 Max-Min: 16.8948 Avg: 108937.8039
-------------------------------------------------
-Starting PH iteration 26 solves
-Queuing solve for scenario bundle=BelowAverageBundle
-Queuing solve for scenario bundle=AverageBundle
-Queuing solve for scenario bundle=AboveAverageBundle
-Waiting for bundle sub-problem solves
-Results obtained for bundle=BelowAverageBundle
-Successfully loaded solution for bundle=BelowAverageBundle
-Results obtained for bundle=AverageBundle
-Successfully loaded solution for bundle=AverageBundle
-Results obtained for bundle=AboveAverageBundle
-Successfully loaded solution for bundle=AboveAverageBundle
-Successfully completed PH iteration 26 solves
-- solution statistics:
-
- Scenario Bundle Cost Objective Objective Gap Solution Status
- BelowAverageBundle -48787.9265 -45592.2286 0.0000 optimal
- AverageBundle -109305.2539 -90731.6870 0.0000 optimal
- AboveAverageBundle -167008.8998 -188845.8822 0.0000 optimal
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario -48787.9265 -45592.2286 None Reported None Reported
- AverageScenario -109305.2539 -90731.6870 None Reported None Reported
- AboveAverageScenario -167008.8998 -188845.8822 None Reported None Reported
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 79.9239 80.0000 79.8220 Max-Min: 0.1780 Avg: 79.9153
-
- Index: [SUGAR_BEETS] Values: 249.7962 249.7581 250.0000 Max-Min: 0.2419 Avg: 249.8514
-
- Index: [WHEAT] Values: 170.2799 170.2419 170.1780 Max-Min: 0.1019 Avg: 170.2333
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108871.4922 108873.3943 108885.7601 Max-Min: 14.2679 Avg: 108876.8822
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108876.8822 Max-Min= 14.27
-Converger=Normalized term diff value is 0.0005 - threshold reached=False
-Cumulative run-time=4.12 seconds
-
-Initiating PH iteration=27
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: 14.2820 -85.8768 71.5948 Average: 79.9153
- Index: [SUGAR_BEETS] Weights: 56.3487 135.9282 -192.2769 Average: 249.8514
- Index: [WHEAT] Weights: -70.6307 -50.0513 120.6821 Average: 170.2333
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108871.4922 108873.3943 108885.7601 Max-Min: 14.2679 Avg: 108876.8822
-------------------------------------------------
-Starting PH iteration 27 solves
-Queuing solve for scenario bundle=BelowAverageBundle
-Queuing solve for scenario bundle=AverageBundle
-Queuing solve for scenario bundle=AboveAverageBundle
-Waiting for bundle sub-problem solves
-Results obtained for bundle=BelowAverageBundle
-Successfully loaded solution for bundle=BelowAverageBundle
-Results obtained for bundle=AverageBundle
-Successfully loaded solution for bundle=AverageBundle
-Results obtained for bundle=AboveAverageBundle
-Successfully loaded solution for bundle=AboveAverageBundle
-Successfully completed PH iteration 27 solves
-- solution statistics:
-
- Scenario Bundle Cost Objective Objective Gap Solution Status
- BelowAverageBundle -48726.5366 -45598.0027 0.0000 optimal
- AverageBundle -109224.0786 -90747.2552 0.0000 optimal
- AboveAverageBundle -167030.7673 -188826.0230 0.0000 optimal
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario -48726.5366 -45598.0027 None Reported None Reported
- AverageScenario -109224.0786 -90747.2552 None Reported None Reported
- AboveAverageScenario -167030.7673 -188826.0230 None Reported None Reported
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 79.6333 80.0000 79.3847 Max-Min: 0.6153 Avg: 79.6727
-
- Index: [SUGAR_BEETS] Values: 249.5027 249.3193 250.0000 Max-Min: 0.6807 Avg: 249.6073
-
- Index: [WHEAT] Values: 170.8640 170.6807 170.6153 Max-Min: 0.2487 Avg: 170.7200
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108815.9605 108825.1279 108850.7721 Max-Min: 34.8116 Avg: 108830.6201
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108830.6201 Max-Min= 34.81
-Converger=Normalized term diff value is 0.0015 - threshold reached=False
-Cumulative run-time=4.27 seconds
-
-Initiating PH iteration=28
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: 14.2427 -85.5495 71.3068 Average: 79.6727
- Index: [SUGAR_BEETS] Weights: 56.2441 135.6402 -191.8842 Average: 249.6073
- Index: [WHEAT] Weights: -70.4867 -50.0907 120.5774 Average: 170.7200
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108815.9605 108825.1279 108850.7721 Max-Min: 34.8116 Avg: 108830.6201
-------------------------------------------------
-Starting PH iteration 28 solves
-Queuing solve for scenario bundle=BelowAverageBundle
-Queuing solve for scenario bundle=AverageBundle
-Queuing solve for scenario bundle=AboveAverageBundle
-Waiting for bundle sub-problem solves
-Results obtained for bundle=BelowAverageBundle
-Successfully loaded solution for bundle=BelowAverageBundle
-Results obtained for bundle=AverageBundle
-Successfully loaded solution for bundle=AverageBundle
-Results obtained for bundle=AboveAverageBundle
-Successfully loaded solution for bundle=AboveAverageBundle
-Successfully completed PH iteration 28 solves
-- solution statistics:
-
- Scenario Bundle Cost Objective Objective Gap Solution Status
- BelowAverageBundle -48691.8900 -45603.0149 0.0000 optimal
- AverageBundle -109179.4773 -90799.7949 0.0000 optimal
- AboveAverageBundle -167044.4185 -188768.7530 0.0000 optimal
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario -48691.8900 -45603.0149 None Reported None Reported
- AverageScenario -109179.4773 -90799.7949 None Reported None Reported
- AboveAverageScenario -167044.4185 -188768.7530 None Reported None Reported
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 79.4300 80.0000 79.1116 Max-Min: 0.8884 Avg: 79.5139
-
- Index: [SUGAR_BEETS] Values: 249.3633 249.0783 250.0000 Max-Min: 0.9217 Avg: 249.4805
-
- Index: [WHEAT] Values: 171.2067 170.9217 170.8884 Max-Min: 0.3184 Avg: 171.0056
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108784.3581 108798.6082 108828.9301 Max-Min: 44.5720 Avg: 108803.9655
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108803.9655 Max-Min= 44.57
-Converger=Normalized term diff value is 0.0021 - threshold reached=False
-Cumulative run-time=4.43 seconds
-
-Initiating PH iteration=29
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: 14.1588 -85.0633 70.9046 Average: 79.5139
- Index: [SUGAR_BEETS] Weights: 56.1268 135.2379 -191.3647 Average: 249.4805
- Index: [WHEAT] Weights: -70.2856 -50.1746 120.4602 Average: 171.0056
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108784.3581 108798.6082 108828.9301 Max-Min: 44.5720 Avg: 108803.9655
-------------------------------------------------
-Starting PH iteration 29 solves
-Queuing solve for scenario bundle=BelowAverageBundle
-Queuing solve for scenario bundle=AverageBundle
-Queuing solve for scenario bundle=AboveAverageBundle
-Waiting for bundle sub-problem solves
-Results obtained for bundle=BelowAverageBundle
-Successfully loaded solution for bundle=BelowAverageBundle
-Results obtained for bundle=AverageBundle
-Successfully loaded solution for bundle=AverageBundle
-Results obtained for bundle=AboveAverageBundle
-Successfully loaded solution for bundle=AboveAverageBundle
-Successfully completed PH iteration 29 solves
-- solution statistics:
-
- Scenario Bundle Cost Objective Objective Gap Solution Status
- BelowAverageBundle -48684.3896 -45604.6341 0.0000 optimal
- AverageBundle -109170.7742 -90875.4461 0.0000 optimal
- AboveAverageBundle -167048.4033 -188690.7700 0.0000 optimal
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario -48684.3896 -45604.6341 None Reported None Reported
- AverageScenario -109170.7742 -90875.4461 None Reported None Reported
- AboveAverageScenario -167048.4033 -188690.7700 None Reported None Reported
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 79.3551 80.0000 79.0319 Max-Min: 0.9681 Avg: 79.4623
-
- Index: [SUGAR_BEETS] Values: 249.3537 249.0312 250.0000 Max-Min: 0.9688 Avg: 249.4616
-
- Index: [WHEAT] Values: 171.2912 170.9688 170.9681 Max-Min: 0.3232 Avg: 171.0760
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108777.3108 108793.4333 108822.5543 Max-Min: 45.2436 Avg: 108797.7661
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108797.7661 Max-Min= 45.24
-Converger=Normalized term diff value is 0.0023 - threshold reached=False
-Cumulative run-time=4.59 seconds
-
-Initiating PH iteration=30
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: 14.0515 -84.5257 70.4742 Average: 79.4623
- Index: [SUGAR_BEETS] Weights: 56.0189 134.8075 -190.8264 Average: 249.4616
- Index: [WHEAT] Weights: -70.0704 -50.2818 120.3522 Average: 171.0760
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108777.3108 108793.4333 108822.5543 Max-Min: 45.2436 Avg: 108797.7661
-------------------------------------------------
-Starting PH iteration 30 solves
-Queuing solve for scenario bundle=BelowAverageBundle
-Queuing solve for scenario bundle=AverageBundle
-Queuing solve for scenario bundle=AboveAverageBundle
-Waiting for bundle sub-problem solves
-Results obtained for bundle=BelowAverageBundle
-Successfully loaded solution for bundle=BelowAverageBundle
-Results obtained for bundle=AverageBundle
-Successfully loaded solution for bundle=AverageBundle
-Results obtained for bundle=AboveAverageBundle
-Successfully loaded solution for bundle=AboveAverageBundle
-Successfully completed PH iteration 30 solves
-- solution statistics:
-
- Scenario Bundle Cost Objective Objective Gap Solution Status
- BelowAverageBundle -48700.2938 -45603.2448 0.0000 optimal
- AverageBundle -109192.4069 -90957.9453 0.0000 optimal
- AboveAverageBundle -167043.3907 -188608.6691 0.0000 optimal
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario -48700.2938 -45603.2448 None Reported None Reported
- AverageScenario -109192.4069 -90957.9453 None Reported None Reported
- AboveAverageScenario -167043.3907 -188608.6691 None Reported None Reported
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 79.4108 80.0000 79.1322 Max-Min: 0.8678 Avg: 79.5143
-
- Index: [SUGAR_BEETS] Values: 249.4427 249.1481 250.0000 Max-Min: 0.8519 Avg: 249.5303
-
- Index: [WHEAT] Values: 171.1464 170.8518 170.8678 Max-Min: 0.2946 Avg: 170.9554
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108791.5668 108806.2965 108830.5746 Max-Min: 39.0078 Avg: 108809.4793
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108809.4793 Max-Min= 39.01
-Converger=Normalized term diff value is 0.0020 - threshold reached=False
-Cumulative run-time=4.75 seconds
-
-Initiating PH iteration=31
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: 13.9480 -84.0400 70.0920 Average: 79.5143
- Index: [SUGAR_BEETS] Weights: 55.9313 134.4253 -190.3567 Average: 249.5303
- Index: [WHEAT] Weights: -69.8793 -50.3853 120.2647 Average: 170.9554
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108791.5668 108806.2965 108830.5746 Max-Min: 39.0078 Avg: 108809.4793
-------------------------------------------------
-Starting PH iteration 31 solves
-Queuing solve for scenario bundle=BelowAverageBundle
-Queuing solve for scenario bundle=AverageBundle
-Queuing solve for scenario bundle=AboveAverageBundle
-Waiting for bundle sub-problem solves
-Results obtained for bundle=BelowAverageBundle
-Successfully loaded solution for bundle=BelowAverageBundle
-Results obtained for bundle=AverageBundle
-Successfully loaded solution for bundle=AverageBundle
-Results obtained for bundle=AboveAverageBundle
-Successfully loaded solution for bundle=AboveAverageBundle
-Successfully completed PH iteration 31 solves
-- solution statistics:
-
- Scenario Bundle Cost Objective Objective Gap Solution Status
- BelowAverageBundle -48733.0412 -45600.6526 0.0000 optimal
- AverageBundle -109235.6937 -91032.0676 0.0000 optimal
- AboveAverageBundle -167031.7095 -188536.5325 0.0000 optimal
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario -48733.0412 -45600.6526 None Reported None Reported
- AverageScenario -109235.6937 -91032.0676 None Reported None Reported
- AboveAverageScenario -167031.7095 -188536.5325 None Reported None Reported
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 79.5663 80.0000 79.3658 Max-Min: 0.6342 Avg: 79.6440
-
- Index: [SUGAR_BEETS] Values: 249.5990 249.3821 250.0000 Max-Min: 0.6179 Avg: 249.6604
-
- Index: [WHEAT] Values: 170.8347 170.6179 170.6342 Max-Min: 0.2168 Avg: 170.6956
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108821.1925 108832.0345 108849.2645 Max-Min: 28.0720 Avg: 108834.1639
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108834.1639 Max-Min= 28.07
-Converger=Normalized term diff value is 0.0015 - threshold reached=False
-Cumulative run-time=4.90 seconds
-
-Initiating PH iteration=32
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: 13.8703 -83.6841 69.8138 Average: 79.6440
- Index: [SUGAR_BEETS] Weights: 55.8699 134.1471 -190.0170 Average: 249.6604
- Index: [WHEAT] Weights: -69.7402 -50.4630 120.2033 Average: 170.6956
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108821.1925 108832.0345 108849.2645 Max-Min: 28.0720 Avg: 108834.1639
-------------------------------------------------
-Starting PH iteration 32 solves
-Queuing solve for scenario bundle=BelowAverageBundle
-Queuing solve for scenario bundle=AverageBundle
-Queuing solve for scenario bundle=AboveAverageBundle
-Waiting for bundle sub-problem solves
-Results obtained for bundle=BelowAverageBundle
-Successfully loaded solution for bundle=BelowAverageBundle
-Results obtained for bundle=AverageBundle
-Successfully loaded solution for bundle=AverageBundle
-Results obtained for bundle=AboveAverageBundle
-Successfully loaded solution for bundle=AboveAverageBundle
-Successfully completed PH iteration 32 solves
-- solution statistics:
-
- Scenario Bundle Cost Objective Objective Gap Solution Status
- BelowAverageBundle -48774.5902 -45598.5106 0.0000 optimal
- AverageBundle -109290.3024 -91086.4069 0.0000 optimal
- AboveAverageBundle -167016.5499 -188484.3489 0.0000 optimal
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario -48774.5902 -45598.5106 None Reported None Reported
- AverageScenario -109290.3024 -91086.4069 None Reported None Reported
- AboveAverageScenario -167016.5499 -188484.3489 None Reported None Reported
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 79.7738 80.0000 79.6690 Max-Min: 0.3310 Avg: 79.8142
-
- Index: [SUGAR_BEETS] Values: 249.7904 249.6773 250.0000 Max-Min: 0.3227 Avg: 249.8226
-
- Index: [WHEAT] Values: 170.4358 170.3227 170.3310 Max-Min: 0.1131 Avg: 170.3632
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108858.8484 108864.5046 108873.5181 Max-Min: 14.6697 Avg: 108865.6237
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108865.6237 Max-Min= 14.67
-Converger=Normalized term diff value is 0.0008 - threshold reached=False
-Cumulative run-time=5.05 seconds
-
-Initiating PH iteration=33
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: 13.8298 -83.4983 69.6685 Average: 79.8142
- Index: [SUGAR_BEETS] Weights: 55.8378 134.0018 -189.8396 Average: 249.8226
- Index: [WHEAT] Weights: -69.6676 -50.5035 120.1711 Average: 170.3632
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108858.8484 108864.5046 108873.5181 Max-Min: 14.6697 Avg: 108865.6237
-------------------------------------------------
-Starting PH iteration 33 solves
-Queuing solve for scenario bundle=BelowAverageBundle
-Queuing solve for scenario bundle=AverageBundle
-Queuing solve for scenario bundle=AboveAverageBundle
-Waiting for bundle sub-problem solves
-Results obtained for bundle=BelowAverageBundle
-Successfully loaded solution for bundle=BelowAverageBundle
-Results obtained for bundle=AverageBundle
-Successfully loaded solution for bundle=AverageBundle
-Results obtained for bundle=AboveAverageBundle
-Successfully loaded solution for bundle=AboveAverageBundle
-Successfully completed PH iteration 33 solves
-- solution statistics:
-
- Scenario Bundle Cost Objective Objective Gap Solution Status
- BelowAverageBundle -48816.7780 -45597.5606 0.0000 optimal
- AverageBundle -109345.7484 -91114.9072 0.0000 optimal
- AboveAverageBundle -167001.1565 -188457.2363 0.0000 optimal
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario -48816.7780 -45597.5606 None Reported None Reported
- AverageScenario -109345.7484 -91114.9072 None Reported None Reported
- AboveAverageScenario -167001.1565 -188457.2363 None Reported None Reported
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 79.9844 80.0000 79.9768 Max-Min: 0.0232 Avg: 79.9871
-
- Index: [SUGAR_BEETS] Values: 249.9848 249.9770 250.0000 Max-Min: 0.0230 Avg: 249.9873
-
- Index: [WHEAT] Values: 170.0308 170.0230 170.0232 Max-Min: 0.0078 Avg: 170.0256
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108897.0836 108897.4725 108898.1476 Max-Min: 1.0640 Avg: 108897.5679
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108897.5679 Max-Min= 1.06
-Converger=Normalized term diff value is 0.0001 - threshold reached=True
-Cumulative run-time=5.33 seconds
-
-Number of discrete variables fixed before final plugin calls=0 (total=0)
-Number of continuous variables fixed before final plugin calls=0 (total=3)
-PH complete
-
-Convergence history:
-Converger=Normalized term diff
-Iteration Metric Value
- 0 0.2540
- 1 0.1259
- 2 0.0816
- 3 0.0796
- 4 0.0776
- 5 0.0794
- 6 0.0668
- 7 0.0542
- 8 0.0360
- 9 0.0243
- 10 0.0256
- 11 0.0248
- 12 0.0163
- 13 0.0081
- 14 0.0168
- 15 0.0163
- 16 0.0098
- 17 0.0032
- 18 0.0026
- 19 0.0039
- 20 0.0043
- 21 0.0044
- 22 0.0040
- 23 0.0032
- 24 0.0021
- 25 0.0008
- 26 0.0005
- 27 0.0015
- 28 0.0021
- 29 0.0023
- 30 0.0020
- 31 0.0015
- 32 0.0008
- 33 0.0001
-
-
-Final number of discrete variables fixed=0 (total=0)
-Final number of continuous variables fixed=0 (total=3)
-
-Computing objective inner bound at xhat solution
-Queuing solve for scenario bundle=BelowAverageBundle
-Queuing solve for scenario bundle=AverageBundle
-Queuing solve for scenario bundle=AboveAverageBundle
-Waiting for bundle sub-problem solves
-Results obtained for bundle=BelowAverageBundle
-Successfully loaded solution for bundle=BelowAverageBundle
-Results obtained for bundle=AverageBundle
-Successfully loaded solution for bundle=AverageBundle
-Results obtained for bundle=AboveAverageBundle
-Successfully loaded solution for bundle=AboveAverageBundle
-Successfully completed xhat inner bound solves
-
- Scenario Bundle Cost Objective Objective Gap Solution Status
- BelowAverageBundle -48818.0550 -48818.0550 0.0000 optimal
- AverageBundle -109347.1056 -109347.1056 0.0000 optimal
- AboveAverageBundle -167001.1571 -167001.1571 0.0000 optimal
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario -48818.0550 -48818.0550 None Reported None Reported
- AverageScenario -109347.1056 -109347.1056 None Reported None Reported
- AboveAverageScenario -167001.1571 -167001.1571 None Reported None Reported
-
-
-Computed objective upper bound=-108388.7726
-
-X-hat variable values:
-
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 79.9768 79.9768 79.9768
-
- Index: [SUGAR_BEETS] Values: 250.0000 250.0000 250.0000
-
- Index: [WHEAT] Values: 170.0232 170.0232 170.0232
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108898.1476 108898.1476 108898.1476 Max-Min: 0.0000 Avg: 108898.1476
-
-X-hat costs:
-
-Scenario Tree Costs
-----------------------------------------------------
-Tree Nodes:
-
- Name=AboveAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AboveAverageScenario
- Expected cost of (sub)tree rooted at node=-275899.3047
-
- Name=AverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AverageScenario
- Expected cost of (sub)tree rooted at node=-218245.2532
-
- Name=BelowAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-157716.2026
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- AboveAverageNode
- AverageNode
- BelowAverageNode
- Scenarios:
- AboveAverageScenario
- AverageScenario
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-108388.7726
-
-----------------------------------------------------
-Scenarios:
-
- Name=AboveAverageScenario
- Probability=0.3333
- Leaf Node=AboveAverageNode
- Tree node sequence:
- RootNode
- AboveAverageNode
- Stage= FirstStage Cost=108898.1476
- Stage= SecondStage Cost=-275899.3047
- Total scenario cost=-167001.1571
-
- Name=AverageScenario
- Probability=0.3333
- Leaf Node=AverageNode
- Tree node sequence:
- RootNode
- AverageNode
- Stage= FirstStage Cost=108898.1476
- Stage= SecondStage Cost=-218245.2532
- Total scenario cost=-109347.1056
-
- Name=BelowAverageScenario
- Probability=0.3333
- Leaf Node=BelowAverageNode
- Tree node sequence:
- RootNode
- BelowAverageNode
- Stage= FirstStage Cost=108898.1476
- Stage= SecondStage Cost=-157716.2026
- Total scenario cost=-48818.0550
-
-----------------------------------------------------
-
-
-Total PH execution time=5.45 seconds
-
-
-Total execution time=5.54 seconds
diff --git a/pyomo/pysp/tests/unit/baselines/farmer_quadratic_trivial_bundling_gurobi.baseline b/pyomo/pysp/tests/unit/baselines/farmer_quadratic_trivial_bundling_gurobi.baseline
deleted file mode 100644
index 7644a497751..00000000000
--- a/pyomo/pysp/tests/unit/baselines/farmer_quadratic_trivial_bundling_gurobi.baseline
+++ /dev/null
@@ -1,2185 +0,0 @@
-Importing model and scenario tree files
-Time to import model and scenario tree structure files=0.01 seconds
-Scenario Tree Detail
-----------------------------------------------------
-Tree Nodes:
-
- Name=AboveAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AboveAverageScenario
-
- Name=AverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AverageScenario
-
- Name=BelowAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- BelowAverageScenario
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- AboveAverageNode
- AverageNode
- BelowAverageNode
- Scenarios:
- AboveAverageScenario
- AverageScenario
- BelowAverageScenario
-
-----------------------------------------------------
-Stages:
- Name=FirstStage
- Tree Nodes:
- RootNode
- Variables:
- DevotedAcreage : [*]
- Cost Variable:
- FirstStageCost
-
- Name=SecondStage
- Tree Nodes:
- AboveAverageNode
- AverageNode
- BelowAverageNode
- Variables:
- QuantityPurchased : [*]
- QuantitySubQuotaSold : [*]
- QuantitySuperQuotaSold : [*]
- Cost Variable:
- SecondStageCost
-
-----------------------------------------------------
-Scenarios:
- Name=AboveAverageScenario
- Probability=0.3333
- Leaf node=AboveAverageNode
- Tree node sequence:
- RootNode
- AboveAverageNode
-
- Name=AverageScenario
- Probability=0.3333
- Leaf node=AverageNode
- Tree node sequence:
- RootNode
- AverageNode
-
- Name=BelowAverageScenario
- Probability=0.3333
- Leaf node=BelowAverageNode
- Tree node sequence:
- RootNode
- BelowAverageNode
-
-----------------------------------------------------
-Scenario Bundles:
- Name=AboveAverageBundle
- Probability=0.3333
- Scenarios: AboveAverageScenario
-
- Name=AverageBundle
- Probability=0.3333
- Scenarios: AverageScenario
-
- Name=BelowAverageBundle
- Probability=0.3333
- Scenarios: BelowAverageScenario
-
-----------------------------------------------------
-Scenario tree is valid!
-Scenario-based instance initialization enabled
-Creating instance for scenario=BelowAverageScenario
-Data for scenario=BelowAverageScenario loads from file=/home/hudson/slave/workspace/Pyomo_trunk_python2.6/src/pyomo/examples/pysp/farmer/scenariodataWithTrivialBundles/BelowAverageScenario.dat
-Creating instance for scenario=AverageScenario
-Data for scenario=AverageScenario loads from file=/home/hudson/slave/workspace/Pyomo_trunk_python2.6/src/pyomo/examples/pysp/farmer/scenariodataWithTrivialBundles/AverageScenario.dat
-Creating instance for scenario=AboveAverageScenario
-Data for scenario=AboveAverageScenario loads from file=/home/hudson/slave/workspace/Pyomo_trunk_python2.6/src/pyomo/examples/pysp/farmer/scenariodataWithTrivialBundles/AboveAverageScenario.dat
-Time to construct scenario instances=0.02 seconds
-Time link scenario tree with instances=0.00 seconds
-Constructing solver manager of type=serial
-Constructing solver type=gurobi
-PH solver configuration:
- Max iterations=100
- Async mode=False
- Async buffer length=1
- Default global rho=1.0
- Over-relaxation enabled=False
- Sub-problem solver type='gurobi'
- Keep solver files? False
- Output solver results? False
- Output solver log? False
- Output times? False
-Initializing PH
-
-Invoking pre-initialization PH plugins
-Creating weight, average, and rho parameter vectors for scenario instances
-Creating deterministic SymbolMaps for scenario instances
-Forming binding instances for all scenario bundles
-Creating binding instance for scenario bundle=BelowAverageBundle
-Creating variables for master binding instance
-Creating binding instance for scenario bundle=AverageBundle
-Creating variables for master binding instance
-Creating binding instance for scenario bundle=AboveAverageBundle
-Creating variables for master binding instance
-PH successfully created model instances for all scenarios
-PH is successfully initialized
-Invoking post-initialization PH plugins
-Starting PH
-
-Initiating PH iteration=0
-------------------------------------------------
-Starting PH iteration 0 solves
-Queuing solve for scenario bundle=BelowAverageBundle
-Queuing solve for scenario bundle=AverageBundle
-Queuing solve for scenario bundle=AboveAverageBundle
-Waiting for bundle sub-problem solves
-Results obtained for bundle=BelowAverageBundle
-Successfully loaded solution for bundle=BelowAverageBundle
-Results obtained for bundle=AverageBundle
-Successfully loaded solution for bundle=AverageBundle
-Results obtained for bundle=AboveAverageBundle
-Successfully loaded solution for bundle=AboveAverageBundle
-Successfully completed PH iteration 0 solves
-- solution statistics:
-
- Scenario Bundle Cost Objective Objective Gap Solution Status
- BelowAverageBundle -59950.0000 -59950.0000 0.0000 optimal
- AverageBundle -118600.0000 -118600.0000 0.0000 optimal
- AboveAverageBundle -167666.6667 -167666.6667 0.0000 optimal
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario -59950.0000 -59950.0000 None Reported None Reported
- AverageScenario -118600.0000 -118600.0000 None Reported None Reported
- AboveAverageScenario -167666.6667 -167666.6667 None Reported None Reported
-
-Total number of non-stale discrete instance variables=0
-Total number of non-stale continuous instance variables=3
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 25.0000 80.0000 66.6667 Max-Min: 55.0000 Avg: 57.2222
-
- Index: [SUGAR_BEETS] Values: 375.0000 300.0000 250.0000 Max-Min: 125.0000 Avg: 308.3333
-
- Index: [WHEAT] Values: 100.0000 120.0000 183.3333 Max-Min: 83.3333 Avg: 134.4444
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 118250.0000 114400.0000 107833.3333 Max-Min: 10416.6667 Avg: 113494.4445
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 113494.4444 Max-Min=10416.67
-Converger=Normalized term diff value is 0.2540 - threshold reached=False
-Cumulative run-time=0.49 seconds
-
-Initiating PH iteration=1
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: -32.2222 22.7778 9.4444 Average: 57.2222
- Index: [SUGAR_BEETS] Weights: 66.6667 -8.3333 -58.3333 Average: 308.3333
- Index: [WHEAT] Weights: -34.4444 -14.4444 48.8889 Average: 134.4444
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 118250.0000 114400.0000 107833.3333 Max-Min: 10416.6667 Avg: 113494.4445
-------------------------------------------------
-Starting PH iteration 1 solves
-Queuing solve for scenario bundle=BelowAverageBundle
-Queuing solve for scenario bundle=AverageBundle
-Queuing solve for scenario bundle=AboveAverageBundle
-Waiting for bundle sub-problem solves
-Results obtained for bundle=BelowAverageBundle
-Successfully loaded solution for bundle=BelowAverageBundle
-Results obtained for bundle=AverageBundle
-Successfully loaded solution for bundle=AverageBundle
-Results obtained for bundle=AboveAverageBundle
-Successfully loaded solution for bundle=AboveAverageBundle
-Successfully completed PH iteration 1 solves
-- solution statistics:
-
- Scenario Bundle Cost Objective Objective Gap Solution Status
- BelowAverageBundle -56723.0000 -41924.1389 0.0000 optimal
- AverageBundle -118600.0000 -120612.6543 0.0000 optimal
- AboveAverageBundle -166944.4444 -169925.0000 0.0000 optimal
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario -56723.0000 -41924.1389 None Reported None Reported
- AverageScenario -118600.0000 -120612.6543 None Reported None Reported
- AboveAverageScenario -166944.4444 -169925.0000 None Reported None Reported
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 100.0000 80.0000 81.1111 Max-Min: 20.0000 Avg: 87.0370
-
- Index: [SUGAR_BEETS] Values: 299.3889 300.0000 250.0000 Max-Min: 50.0000 Avg: 283.1296
-
- Index: [WHEAT] Values: 100.6111 120.0000 168.8889 Max-Min: 68.2778 Avg: 129.8333
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 115932.7778 114400.0000 108988.8889 Max-Min: 6943.8889 Avg: 113107.2222
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 113107.2222 Max-Min= 6943.89
-Converger=Normalized term diff value is 0.1259 - threshold reached=False
-Cumulative run-time=0.98 seconds
-
-Initiating PH iteration=2
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: -19.2593 15.7407 3.5185 Average: 87.0370
- Index: [SUGAR_BEETS] Weights: 82.9259 8.5370 -91.4630 Average: 283.1296
- Index: [WHEAT] Weights: -63.6667 -24.2778 87.9444 Average: 129.8333
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 115932.7778 114400.0000 108988.8889 Max-Min: 6943.8889 Avg: 113107.2222
-------------------------------------------------
-Starting PH iteration 2 solves
-Queuing solve for scenario bundle=BelowAverageBundle
-Queuing solve for scenario bundle=AverageBundle
-Queuing solve for scenario bundle=AboveAverageBundle
-Waiting for bundle sub-problem solves
-Results obtained for bundle=BelowAverageBundle
-Successfully loaded solution for bundle=BelowAverageBundle
-Results obtained for bundle=AverageBundle
-Successfully loaded solution for bundle=AverageBundle
-Results obtained for bundle=AboveAverageBundle
-Successfully loaded solution for bundle=AboveAverageBundle
-Successfully completed PH iteration 2 solves
-- solution statistics:
-
- Scenario Bundle Cost Objective Objective Gap Solution Status
- BelowAverageBundle -52560.3334 -40675.6749 0.0000 optimal
- AverageBundle -118600.0000 -117477.5511 0.0000 optimal
- AboveAverageBundle -164959.2593 -174919.3261 0.0000 optimal
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario -52560.3334 -40675.6749 None Reported None Reported
- AverageScenario -118600.0000 -117477.5511 None Reported None Reported
- AboveAverageScenario -164959.2593 -174919.3261 None Reported None Reported
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 100.0000 80.0000 120.8148 Max-Min: 40.8148 Avg: 100.2716
-
- Index: [SUGAR_BEETS] Values: 266.3519 300.0000 250.0000 Max-Min: 50.0000 Avg: 272.1173
-
- Index: [WHEAT] Values: 133.6481 120.0000 129.1852 Max-Min: 13.6481 Avg: 127.6111
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 112298.7037 114400.0000 112165.1852 Max-Min: 2234.8148 Avg: 112954.6297
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 112954.6296 Max-Min= 2234.81
-Converger=Normalized term diff value is 0.0816 - threshold reached=False
-Cumulative run-time=1.49 seconds
-
-Initiating PH iteration=3
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: -19.5309 -4.5309 24.0617 Average: 100.2716
- Index: [SUGAR_BEETS] Weights: 77.1605 36.4198 -113.5802 Average: 272.1173
- Index: [WHEAT] Weights: -57.6296 -31.8889 89.5185 Average: 127.6111
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 112298.7037 114400.0000 112165.1852 Max-Min: 2234.8148 Avg: 112954.6297
-------------------------------------------------
-Starting PH iteration 3 solves
-Queuing solve for scenario bundle=BelowAverageBundle
-Queuing solve for scenario bundle=AverageBundle
-Queuing solve for scenario bundle=AboveAverageBundle
-Waiting for bundle sub-problem solves
-Results obtained for bundle=BelowAverageBundle
-Successfully loaded solution for bundle=BelowAverageBundle
-Results obtained for bundle=AverageBundle
-Successfully loaded solution for bundle=AverageBundle
-Results obtained for bundle=AboveAverageBundle
-Successfully loaded solution for bundle=AboveAverageBundle
-Successfully completed PH iteration 3 solves
-- solution statistics:
-
- Scenario Bundle Cost Objective Objective Gap Solution Status
- BelowAverageBundle -52750.1112 -41631.0613 0.0000 optimal
- AverageBundle -118600.0000 -111240.0536 0.0000 optimal
- AboveAverageBundle -165047.0679 -178429.0878 0.0000 optimal
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario -52750.1112 -41631.0613 None Reported None Reported
- AverageScenario -118600.0000 -111240.0536 None Reported None Reported
- AboveAverageScenario -165047.0679 -178429.0878 None Reported None Reported
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 100.0000 80.0000 119.0586 Max-Min: 39.0586 Avg: 99.6862
-
- Index: [SUGAR_BEETS] Values: 267.8580 300.0000 250.0000 Max-Min: 50.0000 Avg: 272.6193
-
- Index: [WHEAT] Values: 132.1420 120.0000 130.9414 Max-Min: 12.1420 Avg: 127.6944
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 112464.3828 114400.0000 112024.6914 Max-Min: 2375.3086 Avg: 112963.0247
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 112963.0247 Max-Min= 2375.31
-Converger=Normalized term diff value is 0.0796 - threshold reached=False
-Cumulative run-time=2.00 seconds
-
-Initiating PH iteration=4
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: -19.2171 -24.2171 43.4342 Average: 99.6862
- Index: [SUGAR_BEETS] Weights: 72.3992 63.8004 -136.1996 Average: 272.6193
- Index: [WHEAT] Weights: -53.1821 -39.5833 92.7654 Average: 127.6944
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 112464.3828 114400.0000 112024.6914 Max-Min: 2375.3086 Avg: 112963.0247
-------------------------------------------------
-Starting PH iteration 4 solves
-Queuing solve for scenario bundle=BelowAverageBundle
-Queuing solve for scenario bundle=AverageBundle
-Queuing solve for scenario bundle=AboveAverageBundle
-Waiting for bundle sub-problem solves
-Results obtained for bundle=BelowAverageBundle
-Successfully loaded solution for bundle=BelowAverageBundle
-Results obtained for bundle=AverageBundle
-Successfully loaded solution for bundle=AverageBundle
-Results obtained for bundle=AboveAverageBundle
-Successfully loaded solution for bundle=AboveAverageBundle
-Successfully completed PH iteration 4 solves
-- solution statistics:
-
- Scenario Bundle Cost Objective Objective Gap Solution Status
- BelowAverageBundle -53356.6482 -42308.6040 0.0000 optimal
- AverageBundle -118600.0000 -105549.0170 0.0000 optimal
- AboveAverageBundle -165466.9239 -181400.6994 0.0000 optimal
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario -53356.6482 -42308.6040 None Reported None Reported
- AverageScenario -118600.0000 -105549.0170 None Reported None Reported
- AboveAverageScenario -165466.9239 -181400.6994 None Reported None Reported
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 100.0000 80.0000 110.6615 Max-Min: 30.6615 Avg: 96.8872
-
- Index: [SUGAR_BEETS] Values: 272.6718 300.0000 250.0000 Max-Min: 50.0000 Avg: 274.2239
-
- Index: [WHEAT] Values: 127.3282 120.0000 139.3385 Max-Min: 19.3385 Avg: 128.8889
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 112993.8992 114400.0000 111352.9218 Max-Min: 3047.0782 Avg: 112915.6070
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 112915.6070 Max-Min= 3047.08
-Converger=Normalized term diff value is 0.0776 - threshold reached=False
-Cumulative run-time=2.51 seconds
-
-Initiating PH iteration=5
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: -16.1043 -41.1043 57.2085 Average: 96.8872
- Index: [SUGAR_BEETS] Weights: 70.8471 89.5765 -160.4235 Average: 274.2239
- Index: [WHEAT] Weights: -54.7428 -48.4722 103.2150 Average: 128.8889
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 112993.8992 114400.0000 111352.9218 Max-Min: 3047.0782 Avg: 112915.6070
-------------------------------------------------
-Starting PH iteration 5 solves
-Queuing solve for scenario bundle=BelowAverageBundle
-Queuing solve for scenario bundle=AverageBundle
-Queuing solve for scenario bundle=AboveAverageBundle
-Waiting for bundle sub-problem solves
-Results obtained for bundle=BelowAverageBundle
-Successfully loaded solution for bundle=BelowAverageBundle
-Results obtained for bundle=AverageBundle
-Successfully loaded solution for bundle=AverageBundle
-Results obtained for bundle=AboveAverageBundle
-Successfully loaded solution for bundle=AboveAverageBundle
-Successfully completed PH iteration 5 solves
-- solution statistics:
-
- Scenario Bundle Cost Objective Objective Gap Solution Status
- BelowAverageBundle -53381.9476 -42612.1542 0.0000 optimal
- AverageBundle -118600.0000 -100317.7675 0.0000 optimal
- AboveAverageBundle -165649.8800 -184430.7276 0.0000 optimal
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario -53381.9476 -42612.1542 None Reported None Reported
- AverageScenario -118600.0000 -100317.7675 None Reported None Reported
- AboveAverageScenario -165649.8800 -184430.7276 None Reported None Reported
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 100.0000 80.0000 107.0024 Max-Min: 27.0024 Avg: 95.6675
-
- Index: [SUGAR_BEETS] Values: 272.8726 300.0000 250.0000 Max-Min: 50.0000 Avg: 274.2909
-
- Index: [WHEAT] Values: 127.1274 120.0000 142.9976 Max-Min: 22.9976 Avg: 130.0417
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 113015.9860 114400.0000 111060.1920 Max-Min: 3339.8080 Avg: 112825.3927
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 112825.3927 Max-Min= 3339.81
-Converger=Normalized term diff value is 0.0794 - threshold reached=False
-Cumulative run-time=3.01 seconds
-
-Initiating PH iteration=6
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: -11.7717 -56.7717 68.5434 Average: 95.6675
- Index: [SUGAR_BEETS] Weights: 69.4288 115.2856 -184.7144 Average: 274.2909
- Index: [WHEAT] Weights: -57.6571 -58.5139 116.1710 Average: 130.0417
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 113015.9860 114400.0000 111060.1920 Max-Min: 3339.8080 Avg: 112825.3927
-------------------------------------------------
-Starting PH iteration 6 solves
-Queuing solve for scenario bundle=BelowAverageBundle
-Queuing solve for scenario bundle=AverageBundle
-Queuing solve for scenario bundle=AboveAverageBundle
-Waiting for bundle sub-problem solves
-Results obtained for bundle=BelowAverageBundle
-Successfully loaded solution for bundle=BelowAverageBundle
-Results obtained for bundle=AverageBundle
-Successfully loaded solution for bundle=AverageBundle
-Results obtained for bundle=AboveAverageBundle
-Successfully loaded solution for bundle=AboveAverageBundle
-Successfully completed PH iteration 6 solves
-- solution statistics:
-
- Scenario Bundle Cost Objective Objective Gap Solution Status
- BelowAverageBundle -53219.2912 -42930.7284 0.0000 optimal
- AverageBundle -116329.0978 -95224.7693 0.0000 optimal
- AboveAverageBundle -165668.6671 -187438.9478 0.0000 optimal
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario -53219.2912 -42930.7284 None Reported None Reported
- AverageScenario -116329.0978 -95224.7693 None Reported None Reported
- AboveAverageScenario -165668.6671 -187438.9478 None Reported None Reported
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 100.0000 80.0000 106.6267 Max-Min: 26.6267 Avg: 95.5422
-
- Index: [SUGAR_BEETS] Values: 271.5817 287.7249 250.0000 Max-Min: 37.7249 Avg: 269.7688
-
- Index: [WHEAT] Values: 128.4183 132.2751 143.3733 Max-Min: 14.9550 Avg: 134.6889
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 112873.9844 113049.7338 111030.1326 Max-Min: 2019.6012 Avg: 112317.9503
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 112317.9503 Max-Min= 2019.60
-Converger=Normalized term diff value is 0.0668 - threshold reached=False
-Cumulative run-time=3.51 seconds
-
-Initiating PH iteration=7
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: -7.3139 -72.3139 79.6279 Average: 95.5422
- Index: [SUGAR_BEETS] Weights: 71.2416 133.2416 -204.4832 Average: 269.7688
- Index: [WHEAT] Weights: -63.9277 -60.9277 124.8554 Average: 134.6889
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 112873.9844 113049.7338 111030.1326 Max-Min: 2019.6012 Avg: 112317.9503
-------------------------------------------------
-Starting PH iteration 7 solves
-Queuing solve for scenario bundle=BelowAverageBundle
-Queuing solve for scenario bundle=AverageBundle
-Queuing solve for scenario bundle=AboveAverageBundle
-Waiting for bundle sub-problem solves
-Results obtained for bundle=BelowAverageBundle
-Successfully loaded solution for bundle=BelowAverageBundle
-Results obtained for bundle=AverageBundle
-Successfully loaded solution for bundle=AverageBundle
-Results obtained for bundle=AboveAverageBundle
-Successfully loaded solution for bundle=AboveAverageBundle
-Successfully completed PH iteration 7 solves
-- solution statistics:
-
- Scenario Bundle Cost Objective Objective Gap Solution Status
- BelowAverageBundle -52132.3685 -42855.4276 0.0000 optimal
- AverageBundle -113596.7315 -91769.7429 0.0000 optimal
- AboveAverageBundle -165847.9809 -190116.4077 0.0000 optimal
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario -52132.3685 -42855.4276 None Reported None Reported
- AverageScenario -113596.7315 -91769.7429 None Reported None Reported
- AboveAverageScenario -165847.9809 -190116.4077 None Reported None Reported
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 100.0000 80.0000 103.0404 Max-Min: 23.0404 Avg: 94.3468
-
- Index: [SUGAR_BEETS] Values: 262.9553 272.9553 250.0000 Max-Min: 22.9553 Avg: 261.9702
-
- Index: [WHEAT] Values: 137.0447 147.0447 146.9596 Max-Min: 10.0000 Avg: 143.6830
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 111925.0836 111425.0836 110743.2305 Max-Min: 1181.8531 Avg: 111364.4659
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 111364.4659 Max-Min= 1181.85
-Converger=Normalized term diff value is 0.0542 - threshold reached=False
-Cumulative run-time=4.02 seconds
-
-Initiating PH iteration=8
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: -1.6607 -86.6607 88.3215 Average: 94.3468
- Index: [SUGAR_BEETS] Weights: 72.2267 144.2267 -216.4534 Average: 261.9702
- Index: [WHEAT] Weights: -70.5660 -57.5660 128.1320 Average: 143.6830
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 111925.0836 111425.0836 110743.2305 Max-Min: 1181.8531 Avg: 111364.4659
-------------------------------------------------
-Starting PH iteration 8 solves
-Queuing solve for scenario bundle=BelowAverageBundle
-Queuing solve for scenario bundle=AverageBundle
-Queuing solve for scenario bundle=AboveAverageBundle
-Waiting for bundle sub-problem solves
-Results obtained for bundle=BelowAverageBundle
-Successfully loaded solution for bundle=BelowAverageBundle
-Results obtained for bundle=AverageBundle
-Successfully loaded solution for bundle=AverageBundle
-Results obtained for bundle=AboveAverageBundle
-Successfully loaded solution for bundle=AboveAverageBundle
-Successfully completed PH iteration 8 solves
-- solution statistics:
-
- Scenario Bundle Cost Objective Objective Gap Solution Status
- BelowAverageBundle -50594.1533 -43087.2755 0.0000 optimal
- AverageBundle -110943.7976 -89612.4133 0.0000 optimal
- AboveAverageBundle -166238.1425 -191976.5276 0.0000 optimal
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario -50594.1533 -43087.2755 None Reported None Reported
- AverageScenario -110943.7976 -89612.4133 None Reported None Reported
- AboveAverageScenario -166238.1425 -191976.5276 None Reported None Reported
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 100.0000 82.6742 95.2372 Max-Min: 17.3258 Avg: 92.6371
-
- Index: [SUGAR_BEETS] Values: 250.7472 259.4102 250.0000 Max-Min: 9.4102 Avg: 253.3858
-
- Index: [WHEAT] Values: 149.2528 157.9157 154.7628 Max-Min: 8.6629 Avg: 153.9771
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 110582.1973 110149.0521 110118.9720 Max-Min: 463.2253 Avg: 110283.4071
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 110283.4071 Max-Min= 463.23
-Converger=Normalized term diff value is 0.0360 - threshold reached=False
-Cumulative run-time=4.53 seconds
-
-Initiating PH iteration=9
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: 5.7022 -96.6237 90.9215 Average: 92.6371
- Index: [SUGAR_BEETS] Weights: 69.5882 150.2511 -219.8392 Average: 253.3858
- Index: [WHEAT] Weights: -75.2903 -53.6274 128.9177 Average: 153.9771
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 110582.1973 110149.0521 110118.9720 Max-Min: 463.2253 Avg: 110283.4071
-------------------------------------------------
-Starting PH iteration 9 solves
-Queuing solve for scenario bundle=BelowAverageBundle
-Queuing solve for scenario bundle=AverageBundle
-Queuing solve for scenario bundle=AboveAverageBundle
-Waiting for bundle sub-problem solves
-Results obtained for bundle=BelowAverageBundle
-Successfully loaded solution for bundle=BelowAverageBundle
-Results obtained for bundle=AverageBundle
-Successfully loaded solution for bundle=AverageBundle
-Results obtained for bundle=AboveAverageBundle
-Successfully loaded solution for bundle=AboveAverageBundle
-Successfully completed PH iteration 9 solves
-- solution statistics:
-
- Scenario Bundle Cost Objective Objective Gap Solution Status
- BelowAverageBundle -49273.4043 -43880.3127 0.0000 optimal
- AverageBundle -107787.2495 -88509.4654 0.0000 optimal
- AboveAverageBundle -166583.5934 -192625.4852 0.0000 optimal
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario -49273.4043 -43880.3127 None Reported None Reported
- AverageScenario -107787.2495 -88509.4654 None Reported None Reported
- AboveAverageScenario -166583.5934 -192625.4852 None Reported None Reported
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 100.0000 90.9274 88.3281 Max-Min: 11.6719 Avg: 93.0852
-
- Index: [SUGAR_BEETS] Values: 240.2651 244.8014 250.0000 Max-Min: 9.7349 Avg: 245.0222
-
- Index: [WHEAT] Values: 159.7349 164.2712 161.6719 Max-Min: 4.5363 Avg: 161.8926
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 109429.1625 109202.3484 109566.2506 Max-Min: 363.9022 Avg: 109399.2538
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 109399.2538 Max-Min= 363.90
-Converger=Normalized term diff value is 0.0243 - threshold reached=False
-Cumulative run-time=5.03 seconds
-
-Initiating PH iteration=10
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: 12.6170 -98.7814 86.1644 Average: 93.0852
- Index: [SUGAR_BEETS] Weights: 64.8311 150.0303 -214.8614 Average: 245.0222
- Index: [WHEAT] Weights: -77.4481 -51.2489 128.6970 Average: 161.8926
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 109429.1625 109202.3484 109566.2506 Max-Min: 363.9022 Avg: 109399.2538
-------------------------------------------------
-Starting PH iteration 10 solves
-Queuing solve for scenario bundle=BelowAverageBundle
-Queuing solve for scenario bundle=AverageBundle
-Queuing solve for scenario bundle=AboveAverageBundle
-Waiting for bundle sub-problem solves
-Results obtained for bundle=BelowAverageBundle
-Successfully loaded solution for bundle=BelowAverageBundle
-Results obtained for bundle=AverageBundle
-Successfully loaded solution for bundle=AverageBundle
-Results obtained for bundle=AboveAverageBundle
-Successfully loaded solution for bundle=AboveAverageBundle
-Successfully completed PH iteration 10 solves
-- solution statistics:
-
- Scenario Bundle Cost Objective Objective Gap Solution Status
- BelowAverageBundle -48295.4044 -44838.3985 0.0000 optimal
- AverageBundle -106137.5004 -88506.9747 0.0000 optimal
- AboveAverageBundle -166656.8733 -191859.9422 0.0000 optimal
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario -48295.4044 -44838.3985 None Reported None Reported
- AverageScenario -106137.5004 -88506.9747 None Reported None Reported
- AboveAverageScenario -166656.8733 -191859.9422 None Reported None Reported
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 94.4682 93.5333 86.8625 Max-Min: 7.6057 Avg: 91.6213
-
- Index: [SUGAR_BEETS] Values: 236.1911 236.6585 250.0000 Max-Min: 13.8089 Avg: 240.9499
-
- Index: [WHEAT] Values: 169.3407 169.8082 163.1375 Max-Min: 6.6707 Avg: 167.4288
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108538.4745 108515.1005 109449.0027 Max-Min: 933.9022 Avg: 108834.1926
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108834.1926 Max-Min= 933.90
-Converger=Normalized term diff value is 0.0256 - threshold reached=False
-Cumulative run-time=5.71 seconds
-
-Initiating PH iteration=11
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: 15.4638 -96.8695 81.4056 Average: 91.6213
- Index: [SUGAR_BEETS] Weights: 60.0723 145.7390 -205.8113 Average: 240.9499
- Index: [WHEAT] Weights: -75.5362 -48.8695 124.4056 Average: 167.4288
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108538.4745 108515.1005 109449.0027 Max-Min: 933.9022 Avg: 108834.1926
-------------------------------------------------
-Starting PH iteration 11 solves
-Queuing solve for scenario bundle=BelowAverageBundle
-Queuing solve for scenario bundle=AverageBundle
-Queuing solve for scenario bundle=AboveAverageBundle
-Waiting for bundle sub-problem solves
-Results obtained for bundle=BelowAverageBundle
-Successfully loaded solution for bundle=BelowAverageBundle
-Results obtained for bundle=AverageBundle
-Successfully loaded solution for bundle=AverageBundle
-Results obtained for bundle=AboveAverageBundle
-Successfully loaded solution for bundle=AboveAverageBundle
-Successfully completed PH iteration 11 solves
-- solution statistics:
-
- Scenario Bundle Cost Objective Objective Gap Solution Status
- BelowAverageBundle -48019.8023 -45436.2583 0.0000 optimal
- AverageBundle -106363.6872 -89002.9249 0.0000 optimal
- AboveAverageBundle -166820.1863 -190692.5571 0.0000 optimal
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario -48019.8023 -45436.2583 None Reported None Reported
- AverageScenario -106363.6872 -89002.9249 None Reported None Reported
- AboveAverageScenario -166820.1863 -190692.5571 None Reported None Reported
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 90.1575 90.1575 83.5963 Max-Min: 6.5612 Avg: 87.9704
-
- Index: [SUGAR_BEETS] Values: 236.8776 236.8776 250.0000 Max-Min: 13.1224 Avg: 241.2517
-
- Index: [WHEAT] Values: 172.9649 172.9649 166.4037 Max-Min: 6.5612 Avg: 170.7779
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108269.1313 108269.1313 109187.7019 Max-Min: 918.5705 Avg: 108575.3215
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108575.3215 Max-Min= 918.57
-Converger=Normalized term diff value is 0.0248 - threshold reached=False
-Cumulative run-time=6.23 seconds
-
-Initiating PH iteration=12
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: 17.6509 -94.6824 77.0315 Average: 87.9704
- Index: [SUGAR_BEETS] Weights: 55.6982 141.3648 -197.0630 Average: 241.2517
- Index: [WHEAT] Weights: -73.3491 -46.6824 120.0315 Average: 170.7779
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108269.1313 108269.1313 109187.7019 Max-Min: 918.5705 Avg: 108575.3215
-------------------------------------------------
-Starting PH iteration 12 solves
-Queuing solve for scenario bundle=BelowAverageBundle
-Queuing solve for scenario bundle=AverageBundle
-Queuing solve for scenario bundle=AboveAverageBundle
-Waiting for bundle sub-problem solves
-Results obtained for bundle=BelowAverageBundle
-Successfully loaded solution for bundle=BelowAverageBundle
-Results obtained for bundle=AverageBundle
-Successfully loaded solution for bundle=AverageBundle
-Results obtained for bundle=AboveAverageBundle
-Successfully loaded solution for bundle=AboveAverageBundle
-Successfully completed PH iteration 12 solves
-- solution statistics:
-
- Scenario Bundle Cost Objective Objective Gap Solution Status
- BelowAverageBundle -48118.5852 -45935.9138 0.0000 optimal
- AverageBundle -107549.8346 -89502.5805 0.0000 optimal
- AboveAverageBundle -166995.1863 -189627.5500 0.0000 optimal
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario -48118.5852 -45935.9138 None Reported None Reported
- AverageScenario -107549.8346 -89502.5805 None Reported None Reported
- AboveAverageScenario -166995.1863 -189627.5500 None Reported None Reported
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 84.3195 84.3195 80.0963 Max-Min: 4.2232 Avg: 82.9118
-
- Index: [SUGAR_BEETS] Values: 241.5536 241.5536 250.0000 Max-Min: 8.4464 Avg: 244.3690
-
- Index: [WHEAT] Values: 174.1270 174.1270 169.9037 Max-Min: 4.2232 Avg: 172.7192
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108316.4504 108316.4504 108907.7019 Max-Min: 591.2514 Avg: 108513.5342
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108513.5342 Max-Min= 591.25
-Converger=Normalized term diff value is 0.0163 - threshold reached=False
-Cumulative run-time=6.72 seconds
-
-Initiating PH iteration=13
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: 19.0587 -93.2747 74.2160 Average: 82.9118
- Index: [SUGAR_BEETS] Weights: 52.8827 138.5493 -191.4320 Average: 244.3690
- Index: [WHEAT] Weights: -71.9413 -45.2747 117.2160 Average: 172.7192
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108316.4504 108316.4504 108907.7019 Max-Min: 591.2514 Avg: 108513.5342
-------------------------------------------------
-Starting PH iteration 13 solves
-Queuing solve for scenario bundle=BelowAverageBundle
-Queuing solve for scenario bundle=AverageBundle
-Queuing solve for scenario bundle=AboveAverageBundle
-Waiting for bundle sub-problem solves
-Results obtained for bundle=BelowAverageBundle
-Successfully loaded solution for bundle=BelowAverageBundle
-Results obtained for bundle=AverageBundle
-Successfully loaded solution for bundle=AverageBundle
-Results obtained for bundle=AboveAverageBundle
-Successfully loaded solution for bundle=AboveAverageBundle
-Successfully completed PH iteration 13 solves
-- solution statistics:
-
- Scenario Bundle Cost Objective Objective Gap Solution Status
- BelowAverageBundle -48322.9411 -46297.1997 0.0000 optimal
- AverageBundle -108686.3876 -89860.4095 0.0000 optimal
- AboveAverageBundle -167170.1864 -188981.7979 0.0000 optimal
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario -48322.9411 -46297.1997 None Reported None Reported
- AverageScenario -108686.3876 -89860.4095 None Reported None Reported
- AboveAverageScenario -167170.1864 -188981.7979 None Reported None Reported
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 77.8531 80.0000 76.5963 Max-Min: 3.4037 Avg: 78.1498
-
- Index: [SUGAR_BEETS] Values: 247.4864 246.4129 250.0000 Max-Min: 3.5871 Avg: 247.9664
-
- Index: [WHEAT] Values: 174.6605 173.5871 173.4037 Max-Min: 1.2568 Avg: 173.8838
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108451.7470 108505.4196 108627.7018 Max-Min: 175.9549 Avg: 108528.2895
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108528.2895 Max-Min= 175.95
-Converger=Normalized term diff value is 0.0081 - threshold reached=False
-Cumulative run-time=7.24 seconds
-
-Initiating PH iteration=14
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: 18.7620 -91.4245 72.6625 Average: 78.1498
- Index: [SUGAR_BEETS] Weights: 52.4026 136.9958 -189.3984 Average: 247.9664
- Index: [WHEAT] Weights: -71.1646 -45.5714 116.7359 Average: 173.8838
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108451.7470 108505.4196 108627.7018 Max-Min: 175.9549 Avg: 108528.2895
-------------------------------------------------
-Starting PH iteration 14 solves
-Queuing solve for scenario bundle=BelowAverageBundle
-Queuing solve for scenario bundle=AverageBundle
-Queuing solve for scenario bundle=AboveAverageBundle
-Waiting for bundle sub-problem solves
-Results obtained for bundle=BelowAverageBundle
-Successfully loaded solution for bundle=BelowAverageBundle
-Results obtained for bundle=AverageBundle
-Successfully loaded solution for bundle=AverageBundle
-Results obtained for bundle=AboveAverageBundle
-Successfully loaded solution for bundle=AboveAverageBundle
-Successfully completed PH iteration 14 solves
-- solution statistics:
-
- Scenario Bundle Cost Objective Objective Gap Solution Status
- BelowAverageBundle -48461.6170 -46340.8730 0.0000 optimal
- AverageBundle -109027.6782 -90153.8469 0.0000 optimal
- AboveAverageBundle -167291.5137 -188714.1707 0.0000 optimal
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario -48461.6170 -46340.8730 None Reported None Reported
- AverageScenario -109027.6782 -90153.8469 None Reported None Reported
- AboveAverageScenario -167291.5137 -188714.1707 None Reported None Reported
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 73.3878 80.0000 74.1697 Max-Min: 6.6122 Avg: 75.8525
-
- Index: [SUGAR_BEETS] Values: 251.5638 248.2577 250.0000 Max-Min: 3.3061 Avg: 249.9405
-
- Index: [WHEAT] Values: 175.0484 171.7423 175.8303 Max-Min: 4.0880 Avg: 174.2070
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108543.0447 108708.3492 108433.5781 Max-Min: 274.7711 Avg: 108561.6573
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108561.6573 Max-Min= 274.77
-Converger=Normalized term diff value is 0.0168 - threshold reached=False
-Cumulative run-time=7.74 seconds
-
-Initiating PH iteration=15
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: 16.2973 -87.2770 70.9797 Average: 75.8525
- Index: [SUGAR_BEETS] Weights: 54.0259 135.3130 -189.3390 Average: 249.9405
- Index: [WHEAT] Weights: -70.3232 -48.0361 118.3592 Average: 174.2070
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108543.0447 108708.3492 108433.5781 Max-Min: 274.7711 Avg: 108561.6573
-------------------------------------------------
-Starting PH iteration 15 solves
-Queuing solve for scenario bundle=BelowAverageBundle
-Queuing solve for scenario bundle=AverageBundle
-Queuing solve for scenario bundle=AboveAverageBundle
-Waiting for bundle sub-problem solves
-Results obtained for bundle=BelowAverageBundle
-Successfully loaded solution for bundle=BelowAverageBundle
-Results obtained for bundle=AverageBundle
-Successfully loaded solution for bundle=AverageBundle
-Results obtained for bundle=AboveAverageBundle
-Successfully loaded solution for bundle=AboveAverageBundle
-Successfully completed PH iteration 15 solves
-- solution statistics:
-
- Scenario Bundle Cost Objective Objective Gap Solution Status
- BelowAverageBundle -48519.8797 -45980.0912 0.0000 optimal
- AverageBundle -109108.0606 -90654.2877 0.0000 optimal
- AboveAverageBundle -167274.3729 -188547.9499 0.0000 optimal
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario -48519.8797 -45980.0912 None Reported None Reported
- AverageScenario -109108.0606 -90654.2877 None Reported None Reported
- AboveAverageScenario -167274.3729 -188547.9499 None Reported None Reported
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 73.5552 80.0000 74.5125 Max-Min: 6.4448 Avg: 76.0226
-
- Index: [SUGAR_BEETS] Values: 251.9146 248.6922 250.0000 Max-Min: 3.2224 Avg: 250.2023
-
- Index: [WHEAT] Values: 174.5302 171.3078 175.4875 Max-Min: 4.1797 Avg: 173.7751
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108595.0252 108756.1441 108461.0033 Max-Min: 295.1408 Avg: 108604.0575
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108604.0575 Max-Min= 295.14
-Converger=Normalized term diff value is 0.0163 - threshold reached=False
-Cumulative run-time=8.24 seconds
-
-Initiating PH iteration=16
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: 13.8299 -83.2996 69.4697 Average: 76.0226
- Index: [SUGAR_BEETS] Weights: 55.7382 133.8030 -189.5412 Average: 250.2023
- Index: [WHEAT] Weights: -69.5682 -50.5034 120.0716 Average: 173.7751
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108595.0252 108756.1441 108461.0033 Max-Min: 295.1408 Avg: 108604.0575
-------------------------------------------------
-Starting PH iteration 16 solves
-Queuing solve for scenario bundle=BelowAverageBundle
-Queuing solve for scenario bundle=AverageBundle
-Queuing solve for scenario bundle=AboveAverageBundle
-Waiting for bundle sub-problem solves
-Results obtained for bundle=BelowAverageBundle
-Successfully loaded solution for bundle=BelowAverageBundle
-Results obtained for bundle=AverageBundle
-Successfully loaded solution for bundle=AverageBundle
-Results obtained for bundle=AboveAverageBundle
-Successfully loaded solution for bundle=AboveAverageBundle
-Successfully completed PH iteration 16 solves
-- solution statistics:
-
- Scenario Bundle Cost Objective Objective Gap Solution Status
- BelowAverageBundle -48558.6530 -45603.5221 0.0000 optimal
- AverageBundle -109083.6688 -91135.8164 0.0000 optimal
- AboveAverageBundle -167178.7654 -188413.2933 0.0000 optimal
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario -48558.6530 -45603.5221 None Reported None Reported
- AverageScenario -109083.6688 -91135.8164 None Reported None Reported
- AboveAverageScenario -167178.7654 -188413.2933 None Reported None Reported
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 76.1927 80.0000 76.4247 Max-Min: 3.8073 Avg: 77.5391
-
- Index: [SUGAR_BEETS] Values: 250.4640 248.5604 250.0000 Max-Min: 1.9037 Avg: 249.6748
-
- Index: [WHEAT] Values: 173.3433 171.4396 173.5753 Max-Min: 2.1357 Avg: 172.7861
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108646.4578 108741.6409 108613.9753 Max-Min: 127.6656 Avg: 108667.3580
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108667.3580 Max-Min= 127.67
-Converger=Normalized term diff value is 0.0098 - threshold reached=False
-Cumulative run-time=8.75 seconds
-
-Initiating PH iteration=17
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: 12.4835 -80.8387 68.3552 Average: 77.5391
- Index: [SUGAR_BEETS] Weights: 56.5275 132.6886 -189.2160 Average: 249.6748
- Index: [WHEAT] Weights: -69.0109 -51.8499 120.8608 Average: 172.7861
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108646.4578 108741.6409 108613.9753 Max-Min: 127.6656 Avg: 108667.3580
-------------------------------------------------
-Starting PH iteration 17 solves
-Queuing solve for scenario bundle=BelowAverageBundle
-Queuing solve for scenario bundle=AverageBundle
-Queuing solve for scenario bundle=AboveAverageBundle
-Waiting for bundle sub-problem solves
-Results obtained for bundle=BelowAverageBundle
-Successfully loaded solution for bundle=BelowAverageBundle
-Results obtained for bundle=AverageBundle
-Successfully loaded solution for bundle=AverageBundle
-Results obtained for bundle=AboveAverageBundle
-Successfully loaded solution for bundle=AboveAverageBundle
-Successfully completed PH iteration 17 solves
-- solution statistics:
-
- Scenario Bundle Cost Objective Objective Gap Solution Status
- BelowAverageBundle -48633.2384 -45416.7771 0.0000 optimal
- AverageBundle -109104.9040 -91454.2268 0.0000 optimal
- AboveAverageBundle -167068.5343 -188284.1689 0.0000 optimal
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario -48633.2384 -45416.7771 None Reported None Reported
- AverageScenario -109104.9040 -91454.2268 None Reported None Reported
- AboveAverageScenario -167068.5343 -188284.1689 None Reported None Reported
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 79.0556 80.0000 78.6293 Max-Min: 1.3707 Avg: 79.2283
-
- Index: [SUGAR_BEETS] Values: 249.1473 248.6752 250.0000 Max-Min: 1.3248 Avg: 249.2742
-
- Index: [WHEAT] Values: 171.7970 171.3248 171.3707 Max-Min: 0.4722 Avg: 171.4975
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108730.6584 108754.2672 108790.3452 Max-Min: 59.6867 Avg: 108758.4236
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108758.4236 Max-Min= 59.69
-Converger=Normalized term diff value is 0.0032 - threshold reached=False
-Cumulative run-time=9.25 seconds
-
-Initiating PH iteration=18
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: 12.3108 -80.0670 67.7562 Average: 79.2283
- Index: [SUGAR_BEETS] Weights: 56.4006 132.0895 -188.4902 Average: 249.2742
- Index: [WHEAT] Weights: -68.7114 -52.0225 120.7340 Average: 171.4975
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108730.6584 108754.2672 108790.3452 Max-Min: 59.6867 Avg: 108758.4236
-------------------------------------------------
-Starting PH iteration 18 solves
-Queuing solve for scenario bundle=BelowAverageBundle
-Queuing solve for scenario bundle=AverageBundle
-Queuing solve for scenario bundle=AboveAverageBundle
-Waiting for bundle sub-problem solves
-Results obtained for bundle=BelowAverageBundle
-Successfully loaded solution for bundle=BelowAverageBundle
-Results obtained for bundle=AverageBundle
-Successfully loaded solution for bundle=AverageBundle
-Results obtained for bundle=AboveAverageBundle
-Successfully loaded solution for bundle=AboveAverageBundle
-Successfully completed PH iteration 18 solves
-- solution statistics:
-
- Scenario Bundle Cost Objective Objective Gap Solution Status
- BelowAverageBundle -48755.1357 -45415.3157 0.0000 optimal
- AverageBundle -109226.4725 -91575.5685 0.0000 optimal
- AboveAverageBundle -166982.2859 -188175.7176 0.0000 optimal
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario -48755.1357 -45415.3157 None Reported None Reported
- AverageScenario -109226.4725 -91575.5685 None Reported None Reported
- AboveAverageScenario -166982.2859 -188175.7176 None Reported None Reported
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 80.9175 80.0000 80.3543 Max-Min: 0.9175 Avg: 80.4239
-
- Index: [SUGAR_BEETS] Values: 248.8735 249.3323 250.0000 Max-Min: 1.1265 Avg: 249.4019
-
- Index: [WHEAT] Values: 170.2090 170.6677 169.6457 Max-Min: 1.0220 Avg: 170.1741
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108849.4892 108826.5512 108928.3426 Max-Min: 101.7914 Avg: 108868.1277
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108868.1277 Max-Min= 101.79
-Converger=Normalized term diff value is 0.0026 - threshold reached=False
-Cumulative run-time=9.76 seconds
-
-Initiating PH iteration=19
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: 12.8044 -80.4909 67.6866 Average: 80.4239
- Index: [SUGAR_BEETS] Weights: 55.8722 132.0199 -187.8921 Average: 249.4019
- Index: [WHEAT] Weights: -68.6766 -51.5289 120.2056 Average: 170.1741
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108849.4892 108826.5512 108928.3426 Max-Min: 101.7914 Avg: 108868.1277
-------------------------------------------------
-Starting PH iteration 19 solves
-Queuing solve for scenario bundle=BelowAverageBundle
-Queuing solve for scenario bundle=AverageBundle
-Queuing solve for scenario bundle=AboveAverageBundle
-Waiting for bundle sub-problem solves
-Results obtained for bundle=BelowAverageBundle
-Successfully loaded solution for bundle=BelowAverageBundle
-Results obtained for bundle=AverageBundle
-Successfully loaded solution for bundle=AverageBundle
-Results obtained for bundle=AboveAverageBundle
-Successfully loaded solution for bundle=AboveAverageBundle
-Successfully completed PH iteration 19 solves
-- solution statistics:
-
- Scenario Bundle Cost Objective Objective Gap Solution Status
- BelowAverageBundle -48896.7853 -45504.4152 0.0000 optimal
- AverageBundle -109412.8043 -91544.0545 0.0000 optimal
- AboveAverageBundle -166930.7799 -188124.7934 0.0000 optimal
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario -48896.7853 -45504.4152 None Reported None Reported
- AverageScenario -109412.8043 -91544.0545 None Reported None Reported
- AboveAverageScenario -166930.7799 -188124.7934 None Reported None Reported
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 81.6195 80.0000 81.3844 Max-Min: 1.6195 Avg: 81.0013
-
- Index: [SUGAR_BEETS] Values: 249.5297 250.3395 250.0000 Max-Min: 0.8098 Avg: 249.9564
-
- Index: [WHEAT] Values: 168.8507 169.6605 168.6156 Max-Min: 1.0449 Avg: 169.0423
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108977.8318 108937.3431 109010.7521 Max-Min: 73.4091 Avg: 108975.3090
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108975.3090 Max-Min= 73.41
-Converger=Normalized term diff value is 0.0039 - threshold reached=False
-Cumulative run-time=10.25 seconds
-
-Initiating PH iteration=20
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: 13.4226 -81.4923 68.0696 Average: 81.0013
- Index: [SUGAR_BEETS] Weights: 55.4455 132.4030 -187.8485 Average: 249.9564
- Index: [WHEAT] Weights: -68.8682 -50.9107 119.7789 Average: 169.0423
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108977.8318 108937.3431 109010.7521 Max-Min: 73.4091 Avg: 108975.3090
-------------------------------------------------
-Starting PH iteration 20 solves
-Queuing solve for scenario bundle=BelowAverageBundle
-Queuing solve for scenario bundle=AverageBundle
-Queuing solve for scenario bundle=AboveAverageBundle
-Waiting for bundle sub-problem solves
-Results obtained for bundle=BelowAverageBundle
-Successfully loaded solution for bundle=BelowAverageBundle
-Results obtained for bundle=AverageBundle
-Successfully loaded solution for bundle=AverageBundle
-Results obtained for bundle=AboveAverageBundle
-Successfully loaded solution for bundle=AboveAverageBundle
-Successfully completed PH iteration 20 solves
-- solution statistics:
-
- Scenario Bundle Cost Objective Objective Gap Solution Status
- BelowAverageBundle -49016.9788 -45594.9914 0.0000 optimal
- AverageBundle -109590.5384 -91424.1875 0.0000 optimal
- AboveAverageBundle -166908.2936 -188156.5533 0.0000 optimal
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario -49016.9788 -45594.9914 None Reported None Reported
- AverageScenario -109590.5384 -91424.1875 None Reported None Reported
- AboveAverageScenario -166908.2936 -188156.5533 None Reported None Reported
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 81.5787 80.0000 81.8341 Max-Min: 1.8341 Avg: 81.1376
-
- Index: [SUGAR_BEETS] Values: 250.5109 251.3002 250.0000 Max-Min: 1.3002 Avg: 250.6037
-
- Index: [WHEAT] Values: 167.9104 168.6998 168.1659 Max-Min: 0.7893 Avg: 168.2587
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 109082.4903 109043.0228 109046.7302 Max-Min: 39.4675 Avg: 109057.4144
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 109057.4144 Max-Min= 39.47
-Converger=Normalized term diff value is 0.0043 - threshold reached=False
-Cumulative run-time=10.92 seconds
-
-Initiating PH iteration=21
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: 13.8637 -82.6299 68.7662 Average: 81.1376
- Index: [SUGAR_BEETS] Weights: 55.3527 133.0995 -188.4522 Average: 250.6037
- Index: [WHEAT] Weights: -69.2164 -50.4696 119.6860 Average: 168.2587
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 109082.4903 109043.0228 109046.7302 Max-Min: 39.4675 Avg: 109057.4144
-------------------------------------------------
-Starting PH iteration 21 solves
-Queuing solve for scenario bundle=BelowAverageBundle
-Queuing solve for scenario bundle=AverageBundle
-Queuing solve for scenario bundle=AboveAverageBundle
-Waiting for bundle sub-problem solves
-Results obtained for bundle=BelowAverageBundle
-Successfully loaded solution for bundle=BelowAverageBundle
-Results obtained for bundle=AverageBundle
-Successfully loaded solution for bundle=AverageBundle
-Results obtained for bundle=AboveAverageBundle
-Successfully loaded solution for bundle=AboveAverageBundle
-Successfully completed PH iteration 21 solves
-- solution statistics:
-
- Scenario Bundle Cost Objective Objective Gap Solution Status
- BelowAverageBundle -49084.6312 -45641.9531 0.0000 optimal
- AverageBundle -109699.2672 -91266.5705 0.0000 optimal
- AboveAverageBundle -166905.0304 -188266.3943 0.0000 optimal
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario -49084.6312 -45641.9531 None Reported None Reported
- AverageScenario -109699.2672 -91266.5705 None Reported None Reported
- AboveAverageScenario -166905.0304 -188266.3943 None Reported None Reported
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 81.2739 80.0000 81.8994 Max-Min: 1.8994 Avg: 81.0578
-
- Index: [SUGAR_BEETS] Values: 251.2510 251.8879 250.0000 Max-Min: 1.8879 Avg: 251.0463
-
- Index: [WHEAT] Values: 167.4751 168.1121 168.1006 Max-Min: 0.6370 Avg: 167.8959
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 109139.5199 109107.6724 109051.9513 Max-Min: 87.5686 Avg: 109099.7145
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 109099.7145 Max-Min= 87.57
-Converger=Normalized term diff value is 0.0044 - threshold reached=False
-Cumulative run-time=11.43 seconds
-
-Initiating PH iteration=22
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: 14.0798 -83.6876 69.6078 Average: 81.0578
- Index: [SUGAR_BEETS] Weights: 55.5574 133.9411 -189.4985 Average: 251.0463
- Index: [WHEAT] Weights: -69.6372 -50.2535 119.8907 Average: 167.8959
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 109139.5199 109107.6724 109051.9513 Max-Min: 87.5686 Avg: 109099.7145
-------------------------------------------------
-Starting PH iteration 22 solves
-Queuing solve for scenario bundle=BelowAverageBundle
-Queuing solve for scenario bundle=AverageBundle
-Queuing solve for scenario bundle=AboveAverageBundle
-Waiting for bundle sub-problem solves
-Results obtained for bundle=BelowAverageBundle
-Successfully loaded solution for bundle=BelowAverageBundle
-Results obtained for bundle=AverageBundle
-Successfully loaded solution for bundle=AverageBundle
-Results obtained for bundle=AboveAverageBundle
-Successfully loaded solution for bundle=AboveAverageBundle
-Successfully completed PH iteration 22 solves
-- solution statistics:
-
- Scenario Bundle Cost Objective Objective Gap Solution Status
- BelowAverageBundle -49089.7490 -45643.9041 0.0000 optimal
- AverageBundle -109715.9075 -91103.4143 0.0000 optimal
- AboveAverageBundle -166913.8811 -188424.2289 0.0000 optimal
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario -49089.7490 -45643.9041 None Reported None Reported
- AverageScenario -109715.9075 -91103.4143 None Reported None Reported
- AboveAverageScenario -166913.8811 -188424.2289 None Reported None Reported
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 80.9779 80.0000 81.7224 Max-Min: 1.7224 Avg: 80.9001
-
- Index: [SUGAR_BEETS] Values: 251.4889 251.9779 250.0000 Max-Min: 1.9779 Avg: 251.1556
-
- Index: [WHEAT] Values: 167.5332 168.0221 168.2776 Max-Min: 0.7445 Avg: 167.9443
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 109142.0146 109117.5666 109037.7903 Max-Min: 104.2243 Avg: 109099.1238
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 109099.1238 Max-Min= 104.22
-Converger=Normalized term diff value is 0.0040 - threshold reached=False
-Cumulative run-time=11.93 seconds
-
-Initiating PH iteration=23
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: 14.1577 -84.5877 70.4301 Average: 80.9001
- Index: [SUGAR_BEETS] Weights: 55.8907 134.7634 -190.6541 Average: 251.1556
- Index: [WHEAT] Weights: -70.0484 -50.1757 120.2240 Average: 167.9443
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 109142.0146 109117.5666 109037.7903 Max-Min: 104.2243 Avg: 109099.1238
-------------------------------------------------
-Starting PH iteration 23 solves
-Queuing solve for scenario bundle=BelowAverageBundle
-Queuing solve for scenario bundle=AverageBundle
-Queuing solve for scenario bundle=AboveAverageBundle
-Waiting for bundle sub-problem solves
-Results obtained for bundle=BelowAverageBundle
-Successfully loaded solution for bundle=BelowAverageBundle
-Results obtained for bundle=AverageBundle
-Successfully loaded solution for bundle=AverageBundle
-Results obtained for bundle=AboveAverageBundle
-Successfully loaded solution for bundle=AboveAverageBundle
-Successfully completed PH iteration 23 solves
-- solution statistics:
-
- Scenario Bundle Cost Objective Objective Gap Solution Status
- BelowAverageBundle -49041.7412 -45622.8380 0.0000 optimal
- AverageBundle -109652.6806 -90955.5225 0.0000 optimal
- AboveAverageBundle -166931.2559 -188589.7403 0.0000 optimal
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario -49041.7412 -45622.8380 None Reported None Reported
- AverageScenario -109652.6806 -90955.5225 None Reported None Reported
- AboveAverageScenario -166931.2559 -188589.7403 None Reported None Reported
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 80.7424 80.0000 81.3749 Max-Min: 1.3749 Avg: 80.7058
-
- Index: [SUGAR_BEETS] Values: 251.2649 251.6361 250.0000 Max-Min: 1.6361 Avg: 250.9670
-
- Index: [WHEAT] Values: 167.9927 168.3639 168.6251 Max-Min: 0.6324 Avg: 168.3272
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 109098.5331 109079.9723 109009.9905 Max-Min: 88.5426 Avg: 109062.8320
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 109062.8320 Max-Min= 88.54
-Converger=Normalized term diff value is 0.0032 - threshold reached=False
-Cumulative run-time=12.44 seconds
-
-Initiating PH iteration=24
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: 14.1943 -85.2935 71.0992 Average: 80.7058
- Index: [SUGAR_BEETS] Weights: 56.1886 135.4325 -191.6211 Average: 250.9670
- Index: [WHEAT] Weights: -70.3829 -50.1390 120.5219 Average: 168.3272
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 109098.5331 109079.9723 109009.9905 Max-Min: 88.5426 Avg: 109062.8320
-------------------------------------------------
-Starting PH iteration 24 solves
-Queuing solve for scenario bundle=BelowAverageBundle
-Queuing solve for scenario bundle=AverageBundle
-Queuing solve for scenario bundle=AboveAverageBundle
-Waiting for bundle sub-problem solves
-Results obtained for bundle=BelowAverageBundle
-Successfully loaded solution for bundle=BelowAverageBundle
-Results obtained for bundle=AverageBundle
-Successfully loaded solution for bundle=AverageBundle
-Results obtained for bundle=AboveAverageBundle
-Successfully loaded solution for bundle=AboveAverageBundle
-Successfully completed PH iteration 24 solves
-- solution statistics:
-
- Scenario Bundle Cost Objective Objective Gap Solution Status
- BelowAverageBundle -48961.0404 -45601.5516 0.0000 optimal
- AverageBundle -109541.3136 -90837.9368 0.0000 optimal
- AboveAverageBundle -166954.9676 -188727.3112 0.0000 optimal
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario -48961.0404 -45601.5516 None Reported None Reported
- AverageScenario -109541.3136 -90837.9368 None Reported None Reported
- AboveAverageScenario -166954.9676 -188727.3112 None Reported None Reported
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 80.5114 80.0000 80.9006 Max-Min: 0.9006 Avg: 80.4707
-
- Index: [SUGAR_BEETS] Values: 250.7784 251.0341 250.0000 Max-Min: 1.0341 Avg: 250.6042
-
- Index: [WHEAT] Values: 168.7102 168.9659 169.0994 Max-Min: 0.3892 Avg: 168.9251
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 109026.5401 109013.7540 108972.0518 Max-Min: 54.4883 Avg: 109004.1153
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 109004.1153 Max-Min= 54.49
-Converger=Normalized term diff value is 0.0021 - threshold reached=False
-Cumulative run-time=12.94 seconds
-
-Initiating PH iteration=25
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: 14.2351 -85.7642 71.5291 Average: 80.4707
- Index: [SUGAR_BEETS] Weights: 56.3628 135.8625 -192.2253 Average: 250.6042
- Index: [WHEAT] Weights: -70.5979 -50.0983 120.6962 Average: 168.9251
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 109026.5401 109013.7540 108972.0518 Max-Min: 54.4883 Avg: 109004.1153
-------------------------------------------------
-Starting PH iteration 25 solves
-Queuing solve for scenario bundle=BelowAverageBundle
-Queuing solve for scenario bundle=AverageBundle
-Queuing solve for scenario bundle=AboveAverageBundle
-Waiting for bundle sub-problem solves
-Results obtained for bundle=BelowAverageBundle
-Successfully loaded solution for bundle=BelowAverageBundle
-Results obtained for bundle=AverageBundle
-Successfully loaded solution for bundle=AverageBundle
-Results obtained for bundle=AboveAverageBundle
-Successfully loaded solution for bundle=AboveAverageBundle
-Successfully completed PH iteration 25 solves
-- solution statistics:
-
- Scenario Bundle Cost Objective Objective Gap Solution Status
- BelowAverageBundle -48870.2028 -45591.4304 0.0000 optimal
- AverageBundle -109416.4454 -90761.4824 0.0000 optimal
- AboveAverageBundle -166982.1850 -188814.9014 0.0000 optimal
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario -48870.2028 -45591.4304 None Reported None Reported
- AverageScenario -109416.4454 -90761.4824 None Reported None Reported
- AboveAverageScenario -166982.1850 -188814.9014 None Reported None Reported
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 80.2356 80.0000 80.3563 Max-Min: 0.3563 Avg: 80.1973
-
- Index: [SUGAR_BEETS] Values: 250.2414 250.3592 250.0000 Max-Min: 0.3592 Avg: 250.2002
-
- Index: [WHEAT] Values: 169.5230 169.6408 169.6437 Max-Min: 0.1207 Avg: 169.6025
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108945.3987 108939.5081 108928.5039 Max-Min: 16.8947 Avg: 108937.8036
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108937.8036 Max-Min= 16.89
-Converger=Normalized term diff value is 0.0008 - threshold reached=False
-Cumulative run-time=13.43 seconds
-
-Initiating PH iteration=26
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: 14.2734 -85.9615 71.6881 Average: 80.1973
- Index: [SUGAR_BEETS] Weights: 56.4040 136.0215 -192.4255 Average: 250.2002
- Index: [WHEAT] Weights: -70.6774 -50.0599 120.7373 Average: 169.6025
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108945.3987 108939.5081 108928.5039 Max-Min: 16.8947 Avg: 108937.8036
-------------------------------------------------
-Starting PH iteration 26 solves
-Queuing solve for scenario bundle=BelowAverageBundle
-Queuing solve for scenario bundle=AverageBundle
-Queuing solve for scenario bundle=AboveAverageBundle
-Waiting for bundle sub-problem solves
-Results obtained for bundle=BelowAverageBundle
-Successfully loaded solution for bundle=BelowAverageBundle
-Results obtained for bundle=AverageBundle
-Successfully loaded solution for bundle=AverageBundle
-Results obtained for bundle=AboveAverageBundle
-Successfully loaded solution for bundle=AboveAverageBundle
-Successfully completed PH iteration 26 solves
-- solution statistics:
-
- Scenario Bundle Cost Objective Objective Gap Solution Status
- BelowAverageBundle -48787.9261 -45592.2291 0.0000 optimal
- AverageBundle -109305.2533 -90731.6873 0.0000 optimal
- AboveAverageBundle -167008.9000 -188845.8817 0.0000 optimal
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario -48787.9261 -45592.2291 None Reported None Reported
- AverageScenario -109305.2533 -90731.6873 None Reported None Reported
- AboveAverageScenario -167008.9000 -188845.8817 None Reported None Reported
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 79.9239 80.0000 79.8220 Max-Min: 0.1780 Avg: 79.9153
-
- Index: [SUGAR_BEETS] Values: 249.7962 249.7581 250.0000 Max-Min: 0.2419 Avg: 249.8514
-
- Index: [WHEAT] Values: 170.2799 170.2419 170.1780 Max-Min: 0.1019 Avg: 170.2333
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108871.4918 108873.3939 108885.7601 Max-Min: 14.2683 Avg: 108876.8819
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108876.8819 Max-Min= 14.27
-Converger=Normalized term diff value is 0.0005 - threshold reached=False
-Cumulative run-time=13.91 seconds
-
-Initiating PH iteration=27
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: 14.2820 -85.8768 71.5948 Average: 79.9153
- Index: [SUGAR_BEETS] Weights: 56.3487 135.9282 -192.2769 Average: 249.8514
- Index: [WHEAT] Weights: -70.6307 -50.0513 120.6821 Average: 170.2333
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108871.4918 108873.3939 108885.7601 Max-Min: 14.2683 Avg: 108876.8819
-------------------------------------------------
-Starting PH iteration 27 solves
-Queuing solve for scenario bundle=BelowAverageBundle
-Queuing solve for scenario bundle=AverageBundle
-Queuing solve for scenario bundle=AboveAverageBundle
-Waiting for bundle sub-problem solves
-Results obtained for bundle=BelowAverageBundle
-Successfully loaded solution for bundle=BelowAverageBundle
-Results obtained for bundle=AverageBundle
-Successfully loaded solution for bundle=AverageBundle
-Results obtained for bundle=AboveAverageBundle
-Successfully loaded solution for bundle=AboveAverageBundle
-Successfully completed PH iteration 27 solves
-- solution statistics:
-
- Scenario Bundle Cost Objective Objective Gap Solution Status
- BelowAverageBundle -48726.5365 -45598.0031 0.0000 optimal
- AverageBundle -109224.0783 -90747.2556 0.0000 optimal
- AboveAverageBundle -167030.7675 -188826.0224 0.0000 optimal
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario -48726.5365 -45598.0031 None Reported None Reported
- AverageScenario -109224.0783 -90747.2556 None Reported None Reported
- AboveAverageScenario -167030.7675 -188826.0224 None Reported None Reported
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 79.6333 80.0000 79.3846 Max-Min: 0.6154 Avg: 79.6727
-
- Index: [SUGAR_BEETS] Values: 249.5027 249.3193 250.0000 Max-Min: 0.6807 Avg: 249.6073
-
- Index: [WHEAT] Values: 170.8640 170.6807 170.6154 Max-Min: 0.2487 Avg: 170.7200
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108815.9603 108825.1277 108850.7720 Max-Min: 34.8117 Avg: 108830.6200
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108830.6200 Max-Min= 34.81
-Converger=Normalized term diff value is 0.0015 - threshold reached=False
-Cumulative run-time=14.41 seconds
-
-Initiating PH iteration=28
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: 14.2427 -85.5495 71.3068 Average: 79.6727
- Index: [SUGAR_BEETS] Weights: 56.2441 135.6401 -191.8842 Average: 249.6073
- Index: [WHEAT] Weights: -70.4867 -50.0907 120.5774 Average: 170.7200
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108815.9603 108825.1277 108850.7720 Max-Min: 34.8117 Avg: 108830.6200
-------------------------------------------------
-Starting PH iteration 28 solves
-Queuing solve for scenario bundle=BelowAverageBundle
-Queuing solve for scenario bundle=AverageBundle
-Queuing solve for scenario bundle=AboveAverageBundle
-Waiting for bundle sub-problem solves
-Results obtained for bundle=BelowAverageBundle
-Successfully loaded solution for bundle=BelowAverageBundle
-Results obtained for bundle=AverageBundle
-Successfully loaded solution for bundle=AverageBundle
-Results obtained for bundle=AboveAverageBundle
-Successfully loaded solution for bundle=AboveAverageBundle
-Successfully completed PH iteration 28 solves
-- solution statistics:
-
- Scenario Bundle Cost Objective Objective Gap Solution Status
- BelowAverageBundle -48691.8901 -45603.0154 0.0000 optimal
- AverageBundle -109179.4772 -90799.7954 0.0000 optimal
- AboveAverageBundle -167044.4187 -188768.7523 0.0000 optimal
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario -48691.8901 -45603.0154 None Reported None Reported
- AverageScenario -109179.4772 -90799.7954 None Reported None Reported
- AboveAverageScenario -167044.4187 -188768.7523 None Reported None Reported
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 79.4300 80.0000 79.1116 Max-Min: 0.8884 Avg: 79.5139
-
- Index: [SUGAR_BEETS] Values: 249.3633 249.0783 250.0000 Max-Min: 0.9217 Avg: 249.4805
-
- Index: [WHEAT] Values: 171.2067 170.9217 170.8884 Max-Min: 0.3184 Avg: 171.0056
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108784.3580 108798.6081 108828.9300 Max-Min: 44.5720 Avg: 108803.9654
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108803.9654 Max-Min= 44.57
-Converger=Normalized term diff value is 0.0021 - threshold reached=False
-Cumulative run-time=14.92 seconds
-
-Initiating PH iteration=29
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: 14.1588 -85.0633 70.9046 Average: 79.5139
- Index: [SUGAR_BEETS] Weights: 56.1268 135.2379 -191.3647 Average: 249.4805
- Index: [WHEAT] Weights: -70.2856 -50.1746 120.4602 Average: 171.0056
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108784.3580 108798.6081 108828.9300 Max-Min: 44.5720 Avg: 108803.9654
-------------------------------------------------
-Starting PH iteration 29 solves
-Queuing solve for scenario bundle=BelowAverageBundle
-Queuing solve for scenario bundle=AverageBundle
-Queuing solve for scenario bundle=AboveAverageBundle
-Waiting for bundle sub-problem solves
-Results obtained for bundle=BelowAverageBundle
-Successfully loaded solution for bundle=BelowAverageBundle
-Results obtained for bundle=AverageBundle
-Successfully loaded solution for bundle=AverageBundle
-Results obtained for bundle=AboveAverageBundle
-Successfully loaded solution for bundle=AboveAverageBundle
-Successfully completed PH iteration 29 solves
-- solution statistics:
-
- Scenario Bundle Cost Objective Objective Gap Solution Status
- BelowAverageBundle -48684.3898 -45604.6345 0.0000 optimal
- AverageBundle -109170.7743 -90875.4467 0.0000 optimal
- AboveAverageBundle -167048.4036 -188690.7693 0.0000 optimal
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario -48684.3898 -45604.6345 None Reported None Reported
- AverageScenario -109170.7743 -90875.4467 None Reported None Reported
- AboveAverageScenario -167048.4036 -188690.7693 None Reported None Reported
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 79.3551 80.0000 79.0319 Max-Min: 0.9681 Avg: 79.4623
-
- Index: [SUGAR_BEETS] Values: 249.3537 249.0312 250.0000 Max-Min: 0.9688 Avg: 249.4616
-
- Index: [WHEAT] Values: 171.2912 170.9688 170.9681 Max-Min: 0.3232 Avg: 171.0760
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108777.3108 108793.4334 108822.5543 Max-Min: 45.2435 Avg: 108797.7662
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108797.7662 Max-Min= 45.24
-Converger=Normalized term diff value is 0.0023 - threshold reached=False
-Cumulative run-time=15.44 seconds
-
-Initiating PH iteration=30
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: 14.0515 -84.5257 70.4742 Average: 79.4623
- Index: [SUGAR_BEETS] Weights: 56.0189 134.8075 -190.8264 Average: 249.4616
- Index: [WHEAT] Weights: -70.0704 -50.2818 120.3522 Average: 171.0760
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108777.3108 108793.4334 108822.5543 Max-Min: 45.2435 Avg: 108797.7662
-------------------------------------------------
-Starting PH iteration 30 solves
-Queuing solve for scenario bundle=BelowAverageBundle
-Queuing solve for scenario bundle=AverageBundle
-Queuing solve for scenario bundle=AboveAverageBundle
-Waiting for bundle sub-problem solves
-Results obtained for bundle=BelowAverageBundle
-Successfully loaded solution for bundle=BelowAverageBundle
-Results obtained for bundle=AverageBundle
-Successfully loaded solution for bundle=AverageBundle
-Results obtained for bundle=AboveAverageBundle
-Successfully loaded solution for bundle=AboveAverageBundle
-Successfully completed PH iteration 30 solves
-- solution statistics:
-
- Scenario Bundle Cost Objective Objective Gap Solution Status
- BelowAverageBundle -48700.2941 -45603.2452 0.0000 optimal
- AverageBundle -109192.4081 -90957.9464 0.0000 optimal
- AboveAverageBundle -167043.3908 -188608.6685 0.0000 optimal
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario -48700.2941 -45603.2452 None Reported None Reported
- AverageScenario -109192.4081 -90957.9464 None Reported None Reported
- AboveAverageScenario -167043.3908 -188608.6685 None Reported None Reported
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 79.4108 80.0000 79.1322 Max-Min: 0.8678 Avg: 79.5143
-
- Index: [SUGAR_BEETS] Values: 249.4427 249.1482 250.0000 Max-Min: 0.8518 Avg: 249.5303
-
- Index: [WHEAT] Values: 171.1464 170.8518 170.8678 Max-Min: 0.2946 Avg: 170.9554
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108791.5669 108806.2967 108830.5746 Max-Min: 39.0077 Avg: 108809.4794
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108809.4794 Max-Min= 39.01
-Converger=Normalized term diff value is 0.0020 - threshold reached=False
-Cumulative run-time=16.11 seconds
-
-Initiating PH iteration=31
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: 13.9480 -84.0400 70.0920 Average: 79.5143
- Index: [SUGAR_BEETS] Weights: 55.9313 134.4253 -190.3567 Average: 249.5303
- Index: [WHEAT] Weights: -69.8793 -50.3853 120.2647 Average: 170.9554
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108791.5669 108806.2967 108830.5746 Max-Min: 39.0077 Avg: 108809.4794
-------------------------------------------------
-Starting PH iteration 31 solves
-Queuing solve for scenario bundle=BelowAverageBundle
-Queuing solve for scenario bundle=AverageBundle
-Queuing solve for scenario bundle=AboveAverageBundle
-Waiting for bundle sub-problem solves
-Results obtained for bundle=BelowAverageBundle
-Successfully loaded solution for bundle=BelowAverageBundle
-Results obtained for bundle=AverageBundle
-Successfully loaded solution for bundle=AverageBundle
-Results obtained for bundle=AboveAverageBundle
-Successfully loaded solution for bundle=AboveAverageBundle
-Successfully completed PH iteration 31 solves
-- solution statistics:
-
- Scenario Bundle Cost Objective Objective Gap Solution Status
- BelowAverageBundle -48733.0416 -45600.6531 0.0000 optimal
- AverageBundle -109235.6947 -91032.0684 0.0000 optimal
- AboveAverageBundle -167031.7097 -188536.5320 0.0000 optimal
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario -48733.0416 -45600.6531 None Reported None Reported
- AverageScenario -109235.6947 -91032.0684 None Reported None Reported
- AboveAverageScenario -167031.7097 -188536.5320 None Reported None Reported
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 79.5663 80.0000 79.3658 Max-Min: 0.6342 Avg: 79.6440
-
- Index: [SUGAR_BEETS] Values: 249.5990 249.3821 250.0000 Max-Min: 0.6179 Avg: 249.6604
-
- Index: [WHEAT] Values: 170.8347 170.6179 170.6342 Max-Min: 0.2168 Avg: 170.6956
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108821.1927 108832.0347 108849.2645 Max-Min: 28.0718 Avg: 108834.1640
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108834.1640 Max-Min= 28.07
-Converger=Normalized term diff value is 0.0015 - threshold reached=False
-Cumulative run-time=16.62 seconds
-
-Initiating PH iteration=32
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: 13.8703 -83.6841 69.8138 Average: 79.6440
- Index: [SUGAR_BEETS] Weights: 55.8699 134.1471 -190.0170 Average: 249.6604
- Index: [WHEAT] Weights: -69.7402 -50.4630 120.2033 Average: 170.6956
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108821.1927 108832.0347 108849.2645 Max-Min: 28.0718 Avg: 108834.1640
-------------------------------------------------
-Starting PH iteration 32 solves
-Queuing solve for scenario bundle=BelowAverageBundle
-Queuing solve for scenario bundle=AverageBundle
-Queuing solve for scenario bundle=AboveAverageBundle
-Waiting for bundle sub-problem solves
-Results obtained for bundle=BelowAverageBundle
-Successfully loaded solution for bundle=BelowAverageBundle
-Results obtained for bundle=AverageBundle
-Successfully loaded solution for bundle=AverageBundle
-Results obtained for bundle=AboveAverageBundle
-Successfully loaded solution for bundle=AboveAverageBundle
-Successfully completed PH iteration 32 solves
-- solution statistics:
-
- Scenario Bundle Cost Objective Objective Gap Solution Status
- BelowAverageBundle -48774.5906 -45598.5111 0.0000 optimal
- AverageBundle -109290.3033 -91086.4074 0.0000 optimal
- AboveAverageBundle -167016.5514 -188484.3494 0.0000 optimal
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario -48774.5906 -45598.5111 None Reported None Reported
- AverageScenario -109290.3033 -91086.4074 None Reported None Reported
- AboveAverageScenario -167016.5514 -188484.3494 None Reported None Reported
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 79.7738 80.0000 79.6690 Max-Min: 0.3310 Avg: 79.8142
-
- Index: [SUGAR_BEETS] Values: 249.7904 249.6773 250.0000 Max-Min: 0.3227 Avg: 249.8226
-
- Index: [WHEAT] Values: 170.4358 170.3227 170.3310 Max-Min: 0.1131 Avg: 170.3632
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108858.8485 108864.5047 108873.5178 Max-Min: 14.6693 Avg: 108865.6237
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108865.6237 Max-Min= 14.67
-Converger=Normalized term diff value is 0.0008 - threshold reached=False
-Cumulative run-time=17.12 seconds
-
-Initiating PH iteration=33
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: 13.8298 -83.4983 69.6685 Average: 79.8142
- Index: [SUGAR_BEETS] Weights: 55.8378 134.0018 -189.8396 Average: 249.8226
- Index: [WHEAT] Weights: -69.6676 -50.5035 120.1711 Average: 170.3632
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108858.8485 108864.5047 108873.5178 Max-Min: 14.6693 Avg: 108865.6237
-------------------------------------------------
-Starting PH iteration 33 solves
-Queuing solve for scenario bundle=BelowAverageBundle
-Queuing solve for scenario bundle=AverageBundle
-Queuing solve for scenario bundle=AboveAverageBundle
-Waiting for bundle sub-problem solves
-Results obtained for bundle=BelowAverageBundle
-Successfully loaded solution for bundle=BelowAverageBundle
-Results obtained for bundle=AverageBundle
-Successfully loaded solution for bundle=AverageBundle
-Results obtained for bundle=AboveAverageBundle
-Successfully loaded solution for bundle=AboveAverageBundle
-Successfully completed PH iteration 33 solves
-- solution statistics:
-
- Scenario Bundle Cost Objective Objective Gap Solution Status
- BelowAverageBundle -48816.7780 -45597.5610 0.0000 optimal
- AverageBundle -109345.7489 -91114.9076 0.0000 optimal
- AboveAverageBundle -167001.1579 -188457.2369 0.0000 optimal
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario -48816.7780 -45597.5610 None Reported None Reported
- AverageScenario -109345.7489 -91114.9076 None Reported None Reported
- AboveAverageScenario -167001.1579 -188457.2369 None Reported None Reported
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 79.9844 80.0000 79.9768 Max-Min: 0.0232 Avg: 79.9871
-
- Index: [SUGAR_BEETS] Values: 249.9848 249.9770 250.0000 Max-Min: 0.0230 Avg: 249.9873
-
- Index: [WHEAT] Values: 170.0308 170.0230 170.0232 Max-Min: 0.0078 Avg: 170.0256
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108897.0834 108897.4723 108898.1474 Max-Min: 1.0640 Avg: 108897.5677
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108897.5677 Max-Min= 1.06
-Converger=Normalized term diff value is 0.0001 - threshold reached=True
-Cumulative run-time=17.64 seconds
-
-Number of discrete variables fixed before final plugin calls=0 (total=0)
-Number of continuous variables fixed before final plugin calls=0 (total=3)
-PH complete
-
-Convergence history:
-Converger=Normalized term diff
-Iteration Metric Value
- 0 0.2540
- 1 0.1259
- 2 0.0816
- 3 0.0796
- 4 0.0776
- 5 0.0794
- 6 0.0668
- 7 0.0542
- 8 0.0360
- 9 0.0243
- 10 0.0256
- 11 0.0248
- 12 0.0163
- 13 0.0081
- 14 0.0168
- 15 0.0163
- 16 0.0098
- 17 0.0032
- 18 0.0026
- 19 0.0039
- 20 0.0043
- 21 0.0044
- 22 0.0040
- 23 0.0032
- 24 0.0021
- 25 0.0008
- 26 0.0005
- 27 0.0015
- 28 0.0021
- 29 0.0023
- 30 0.0020
- 31 0.0015
- 32 0.0008
- 33 0.0001
-
-
-Final number of discrete variables fixed=0 (total=0)
-Final number of continuous variables fixed=0 (total=3)
-
-Computing objective inner bound at xhat solution
-Queuing solve for scenario bundle=BelowAverageBundle
-Queuing solve for scenario bundle=AverageBundle
-Queuing solve for scenario bundle=AboveAverageBundle
-Waiting for bundle sub-problem solves
-Results obtained for bundle=BelowAverageBundle
-Successfully loaded solution for bundle=BelowAverageBundle
-Results obtained for bundle=AverageBundle
-Successfully loaded solution for bundle=AverageBundle
-Results obtained for bundle=AboveAverageBundle
-Successfully loaded solution for bundle=AboveAverageBundle
-Successfully completed xhat inner bound solves
-
- Scenario Bundle Cost Objective Objective Gap Solution Status
- BelowAverageBundle -48818.0547 -48818.0547 0.0000 optimal
- AverageBundle -109347.1053 -109347.1053 0.0000 optimal
- AboveAverageBundle -167001.1579 -167001.1579 0.0000 optimal
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario -48818.0547 -48818.0547 None Reported None Reported
- AverageScenario -109347.1053 -109347.1053 None Reported None Reported
- AboveAverageScenario -167001.1579 -167001.1579 None Reported None Reported
-
-
-Computed objective upper bound=-108388.7726
-
-X-hat variable values:
-
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 79.9768 79.9768 79.9768
-
- Index: [SUGAR_BEETS] Values: 250.0000 250.0000 250.0000
-
- Index: [WHEAT] Values: 170.0232 170.0232 170.0232
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108898.1474 108898.1474 108898.1474 Max-Min: 0.0000 Avg: 108898.1474
-
-X-hat costs:
-
-Scenario Tree Costs
-----------------------------------------------------
-Tree Nodes:
-
- Name=AboveAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AboveAverageScenario
- Expected cost of (sub)tree rooted at node=-275899.3053
-
- Name=AverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AverageScenario
- Expected cost of (sub)tree rooted at node=-218245.2526
-
- Name=BelowAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-157716.2021
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- AboveAverageNode
- AverageNode
- BelowAverageNode
- Scenarios:
- AboveAverageScenario
- AverageScenario
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-108388.7726
-
-----------------------------------------------------
-Scenarios:
-
- Name=AboveAverageScenario
- Probability=0.3333
- Leaf Node=AboveAverageNode
- Tree node sequence:
- RootNode
- AboveAverageNode
- Stage= FirstStage Cost=108898.1474
- Stage= SecondStage Cost=-275899.3053
- Total scenario cost=-167001.1579
-
- Name=AverageScenario
- Probability=0.3333
- Leaf Node=AverageNode
- Tree node sequence:
- RootNode
- AverageNode
- Stage= FirstStage Cost=108898.1474
- Stage= SecondStage Cost=-218245.2526
- Total scenario cost=-109347.1053
-
- Name=BelowAverageScenario
- Probability=0.3333
- Leaf Node=BelowAverageNode
- Tree node sequence:
- RootNode
- BelowAverageNode
- Stage= FirstStage Cost=108898.1474
- Stage= SecondStage Cost=-157716.2021
- Total scenario cost=-48818.0547
-
-----------------------------------------------------
-
-
-Total PH execution time=18.13 seconds
-
-
-Total execution time=18.17 seconds
diff --git a/pyomo/pysp/tests/unit/baselines/farmer_quadratic_trivial_bundling_ipopt.baseline b/pyomo/pysp/tests/unit/baselines/farmer_quadratic_trivial_bundling_ipopt.baseline
deleted file mode 100644
index d12e27f26e5..00000000000
--- a/pyomo/pysp/tests/unit/baselines/farmer_quadratic_trivial_bundling_ipopt.baseline
+++ /dev/null
@@ -1,2185 +0,0 @@
-Importing model and scenario tree files
-Time to import model and scenario tree structure files=0.01 seconds
-Scenario Tree Detail
-----------------------------------------------------
-Tree Nodes:
-
- Name=AboveAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AboveAverageScenario
-
- Name=AverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AverageScenario
-
- Name=BelowAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- BelowAverageScenario
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- AboveAverageNode
- AverageNode
- BelowAverageNode
- Scenarios:
- AboveAverageScenario
- AverageScenario
- BelowAverageScenario
-
-----------------------------------------------------
-Stages:
- Name=FirstStage
- Tree Nodes:
- RootNode
- Variables:
- DevotedAcreage : [*]
- Cost Variable:
- FirstStageCost
-
- Name=SecondStage
- Tree Nodes:
- AboveAverageNode
- AverageNode
- BelowAverageNode
- Variables:
- QuantityPurchased : [*]
- QuantitySubQuotaSold : [*]
- QuantitySuperQuotaSold : [*]
- Cost Variable:
- SecondStageCost
-
-----------------------------------------------------
-Scenarios:
- Name=AboveAverageScenario
- Probability=0.3333
- Leaf node=AboveAverageNode
- Tree node sequence:
- RootNode
- AboveAverageNode
-
- Name=AverageScenario
- Probability=0.3333
- Leaf node=AverageNode
- Tree node sequence:
- RootNode
- AverageNode
-
- Name=BelowAverageScenario
- Probability=0.3333
- Leaf node=BelowAverageNode
- Tree node sequence:
- RootNode
- BelowAverageNode
-
-----------------------------------------------------
-Scenario Bundles:
- Name=AboveAverageBundle
- Probability=0.3333
- Scenarios: AboveAverageScenario
-
- Name=AverageBundle
- Probability=0.3333
- Scenarios: AverageScenario
-
- Name=BelowAverageBundle
- Probability=0.3333
- Scenarios: BelowAverageScenario
-
-----------------------------------------------------
-Scenario tree is valid!
-Scenario-based instance initialization enabled
-Creating instance for scenario=BelowAverageScenario
-Data for scenario=BelowAverageScenario loads from file=/home/hudson/slave/workspace/Pyomo_trunk_python2.6/src/pyomo/examples/pysp/farmer/scenariodataWithTrivialBundles/BelowAverageScenario.dat
-Creating instance for scenario=AverageScenario
-Data for scenario=AverageScenario loads from file=/home/hudson/slave/workspace/Pyomo_trunk_python2.6/src/pyomo/examples/pysp/farmer/scenariodataWithTrivialBundles/AverageScenario.dat
-Creating instance for scenario=AboveAverageScenario
-Data for scenario=AboveAverageScenario loads from file=/home/hudson/slave/workspace/Pyomo_trunk_python2.6/src/pyomo/examples/pysp/farmer/scenariodataWithTrivialBundles/AboveAverageScenario.dat
-Time to construct scenario instances=0.02 seconds
-Time link scenario tree with instances=0.00 seconds
-Constructing solver manager of type=serial
-Constructing solver type=ipopt
-PH solver configuration:
- Max iterations=100
- Async mode=False
- Async buffer length=1
- Default global rho=1.0
- Over-relaxation enabled=False
- Sub-problem solver type='ipopt'
- Keep solver files? False
- Output solver results? False
- Output solver log? False
- Output times? False
-Initializing PH
-
-Invoking pre-initialization PH plugins
-Creating weight, average, and rho parameter vectors for scenario instances
-Creating deterministic SymbolMaps for scenario instances
-Forming binding instances for all scenario bundles
-Creating binding instance for scenario bundle=BelowAverageBundle
-Creating variables for master binding instance
-Creating binding instance for scenario bundle=AverageBundle
-Creating variables for master binding instance
-Creating binding instance for scenario bundle=AboveAverageBundle
-Creating variables for master binding instance
-PH successfully created model instances for all scenarios
-PH is successfully initialized
-Invoking post-initialization PH plugins
-Starting PH
-
-Initiating PH iteration=0
-------------------------------------------------
-Starting PH iteration 0 solves
-Queuing solve for scenario bundle=BelowAverageBundle
-Queuing solve for scenario bundle=AverageBundle
-Queuing solve for scenario bundle=AboveAverageBundle
-Waiting for bundle sub-problem solves
-Results obtained for bundle=BelowAverageBundle
-Successfully loaded solution for bundle=BelowAverageBundle
-Results obtained for bundle=AverageBundle
-Successfully loaded solution for bundle=AverageBundle
-Results obtained for bundle=AboveAverageBundle
-Successfully loaded solution for bundle=AboveAverageBundle
-Successfully completed PH iteration 0 solves
-- solution statistics:
-
- Scenario Bundle Cost Objective Objective Gap Solution Status
- BelowAverageBundle -59950.0024 -59950.0024 None Reported optimal
- AverageBundle -118600.0026 -118600.0026 None Reported optimal
- AboveAverageBundle -167666.6698 -167666.6698 None Reported optimal
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario -59950.0024 -59950.0024 None Reported None Reported
- AverageScenario -118600.0026 -118600.0026 None Reported None Reported
- AboveAverageScenario -167666.6698 -167666.6698 None Reported None Reported
-
-Total number of non-stale discrete instance variables=0
-Total number of non-stale continuous instance variables=3
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 25.0000 80.0000 66.6667 Max-Min: 55.0000 Avg: 57.2222
-
- Index: [SUGAR_BEETS] Values: 375.0000 300.0000 250.0000 Max-Min: 125.0000 Avg: 308.3333
-
- Index: [WHEAT] Values: 100.0000 120.0000 183.3333 Max-Min: 83.3333 Avg: 134.4444
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 118250.0013 114400.0010 107833.3343 Max-Min: 10416.6670 Avg: 113494.4456
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 113494.4456 Max-Min=10416.67
-Converger=Normalized term diff value is 0.2540 - threshold reached=False
-Cumulative run-time=0.25 seconds
-
-Initiating PH iteration=1
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: -32.2222 22.7778 9.4444 Average: 57.2222
- Index: [SUGAR_BEETS] Weights: 66.6667 -8.3333 -58.3333 Average: 308.3333
- Index: [WHEAT] Weights: -34.4444 -14.4444 48.8889 Average: 134.4444
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 118250.0013 114400.0010 107833.3343 Max-Min: 10416.6670 Avg: 113494.4456
-------------------------------------------------
-Starting PH iteration 1 solves
-Queuing solve for scenario bundle=BelowAverageBundle
-Queuing solve for scenario bundle=AverageBundle
-Queuing solve for scenario bundle=AboveAverageBundle
-Waiting for bundle sub-problem solves
-Results obtained for bundle=BelowAverageBundle
-Successfully loaded solution for bundle=BelowAverageBundle
-Results obtained for bundle=AverageBundle
-Successfully loaded solution for bundle=AverageBundle
-Results obtained for bundle=AboveAverageBundle
-Successfully loaded solution for bundle=AboveAverageBundle
-Successfully completed PH iteration 1 solves
-- solution statistics:
-
- Scenario Bundle Cost Objective Objective Gap Solution Status
- BelowAverageBundle -56723.0018 -41924.1408 None Reported optimal
- AverageBundle -118600.0026 -120612.6570 None Reported optimal
- AboveAverageBundle -166944.4474 -169925.0030 None Reported optimal
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario -56723.0018 -41924.1408 None Reported None Reported
- AverageScenario -118600.0026 -120612.6570 None Reported None Reported
- AboveAverageScenario -166944.4474 -169925.0030 None Reported None Reported
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 100.0000 80.0000 81.1111 Max-Min: 20.0000 Avg: 87.0370
-
- Index: [SUGAR_BEETS] Values: 299.3889 300.0000 250.0000 Max-Min: 50.0000 Avg: 283.1296
-
- Index: [WHEAT] Values: 100.6111 120.0000 168.8889 Max-Min: 68.2778 Avg: 129.8333
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 115932.7785 114400.0010 108988.8901 Max-Min: 6943.8884 Avg: 113107.2232
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 113107.2232 Max-Min= 6943.89
-Converger=Normalized term diff value is 0.1259 - threshold reached=False
-Cumulative run-time=0.51 seconds
-
-Initiating PH iteration=2
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: -19.2593 15.7407 3.5185 Average: 87.0370
- Index: [SUGAR_BEETS] Weights: 82.9259 8.5370 -91.4630 Average: 283.1296
- Index: [WHEAT] Weights: -63.6667 -24.2778 87.9444 Average: 129.8333
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 115932.7785 114400.0010 108988.8901 Max-Min: 6943.8884 Avg: 113107.2232
-------------------------------------------------
-Starting PH iteration 2 solves
-Queuing solve for scenario bundle=BelowAverageBundle
-Queuing solve for scenario bundle=AverageBundle
-Queuing solve for scenario bundle=AboveAverageBundle
-Waiting for bundle sub-problem solves
-Results obtained for bundle=BelowAverageBundle
-Successfully loaded solution for bundle=BelowAverageBundle
-Results obtained for bundle=AverageBundle
-Successfully loaded solution for bundle=AverageBundle
-Results obtained for bundle=AboveAverageBundle
-Successfully loaded solution for bundle=AboveAverageBundle
-Successfully completed PH iteration 2 solves
-- solution statistics:
-
- Scenario Bundle Cost Objective Objective Gap Solution Status
- BelowAverageBundle -52560.3354 -40675.6770 None Reported optimal
- AverageBundle -118600.0026 -117477.5536 None Reported optimal
- AboveAverageBundle -164959.2624 -174919.3293 None Reported optimal
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario -52560.3354 -40675.6770 None Reported None Reported
- AverageScenario -118600.0026 -117477.5536 None Reported None Reported
- AboveAverageScenario -164959.2624 -174919.3293 None Reported None Reported
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 100.0000 80.0000 120.8148 Max-Min: 40.8148 Avg: 100.2716
-
- Index: [SUGAR_BEETS] Values: 266.3519 300.0000 250.0000 Max-Min: 50.0000 Avg: 272.1173
-
- Index: [WHEAT] Values: 133.6482 120.0000 129.1852 Max-Min: 13.6481 Avg: 127.6111
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 112298.7047 114400.0010 112165.1861 Max-Min: 2234.8149 Avg: 112954.6306
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 112954.6306 Max-Min= 2234.81
-Converger=Normalized term diff value is 0.0816 - threshold reached=False
-Cumulative run-time=0.78 seconds
-
-Initiating PH iteration=3
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: -19.5309 -4.5309 24.0617 Average: 100.2716
- Index: [SUGAR_BEETS] Weights: 77.1605 36.4198 -113.5802 Average: 272.1173
- Index: [WHEAT] Weights: -57.6296 -31.8889 89.5185 Average: 127.6111
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 112298.7047 114400.0010 112165.1861 Max-Min: 2234.8149 Avg: 112954.6306
-------------------------------------------------
-Starting PH iteration 3 solves
-Queuing solve for scenario bundle=BelowAverageBundle
-Queuing solve for scenario bundle=AverageBundle
-Queuing solve for scenario bundle=AboveAverageBundle
-Waiting for bundle sub-problem solves
-Results obtained for bundle=BelowAverageBundle
-Successfully loaded solution for bundle=BelowAverageBundle
-Results obtained for bundle=AverageBundle
-Successfully loaded solution for bundle=AverageBundle
-Results obtained for bundle=AboveAverageBundle
-Successfully loaded solution for bundle=AboveAverageBundle
-Successfully completed PH iteration 3 solves
-- solution statistics:
-
- Scenario Bundle Cost Objective Objective Gap Solution Status
- BelowAverageBundle -52750.1132 -41631.0634 None Reported optimal
- AverageBundle -118600.0026 -111240.0559 None Reported optimal
- AboveAverageBundle -165047.0711 -178429.0910 None Reported optimal
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario -52750.1132 -41631.0634 None Reported None Reported
- AverageScenario -118600.0026 -111240.0559 None Reported None Reported
- AboveAverageScenario -165047.0711 -178429.0910 None Reported None Reported
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 100.0000 80.0000 119.0586 Max-Min: 39.0586 Avg: 99.6862
-
- Index: [SUGAR_BEETS] Values: 267.8580 300.0000 250.0000 Max-Min: 50.0000 Avg: 272.6193
-
- Index: [WHEAT] Values: 132.1420 120.0000 130.9414 Max-Min: 12.1420 Avg: 127.6944
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 112464.3838 114400.0010 112024.6923 Max-Min: 2375.3088 Avg: 112963.0257
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 112963.0257 Max-Min= 2375.31
-Converger=Normalized term diff value is 0.0796 - threshold reached=False
-Cumulative run-time=1.05 seconds
-
-Initiating PH iteration=4
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: -19.2171 -24.2171 43.4342 Average: 99.6862
- Index: [SUGAR_BEETS] Weights: 72.3992 63.8004 -136.1996 Average: 272.6193
- Index: [WHEAT] Weights: -53.1821 -39.5833 92.7654 Average: 127.6944
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 112464.3838 114400.0010 112024.6923 Max-Min: 2375.3088 Avg: 112963.0257
-------------------------------------------------
-Starting PH iteration 4 solves
-Queuing solve for scenario bundle=BelowAverageBundle
-Queuing solve for scenario bundle=AverageBundle
-Queuing solve for scenario bundle=AboveAverageBundle
-Waiting for bundle sub-problem solves
-Results obtained for bundle=BelowAverageBundle
-Successfully loaded solution for bundle=BelowAverageBundle
-Results obtained for bundle=AverageBundle
-Successfully loaded solution for bundle=AverageBundle
-Results obtained for bundle=AboveAverageBundle
-Successfully loaded solution for bundle=AboveAverageBundle
-Successfully completed PH iteration 4 solves
-- solution statistics:
-
- Scenario Bundle Cost Objective Objective Gap Solution Status
- BelowAverageBundle -53356.6502 -42308.6060 None Reported optimal
- AverageBundle -118600.0026 -105549.0193 None Reported optimal
- AboveAverageBundle -165466.9270 -181400.7027 None Reported optimal
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario -53356.6502 -42308.6060 None Reported None Reported
- AverageScenario -118600.0026 -105549.0193 None Reported None Reported
- AboveAverageScenario -165466.9270 -181400.7027 None Reported None Reported
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 100.0000 80.0000 110.6615 Max-Min: 30.6615 Avg: 96.8872
-
- Index: [SUGAR_BEETS] Values: 272.6718 300.0000 250.0000 Max-Min: 50.0000 Avg: 274.2239
-
- Index: [WHEAT] Values: 127.3282 120.0000 139.3385 Max-Min: 19.3385 Avg: 128.8889
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 112993.9002 114400.0010 111352.9228 Max-Min: 3047.0783 Avg: 112915.6080
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 112915.6080 Max-Min= 3047.08
-Converger=Normalized term diff value is 0.0776 - threshold reached=False
-Cumulative run-time=1.32 seconds
-
-Initiating PH iteration=5
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: -16.1043 -41.1043 57.2085 Average: 96.8872
- Index: [SUGAR_BEETS] Weights: 70.8471 89.5765 -160.4235 Average: 274.2239
- Index: [WHEAT] Weights: -54.7428 -48.4722 103.2150 Average: 128.8889
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 112993.9002 114400.0010 111352.9228 Max-Min: 3047.0783 Avg: 112915.6080
-------------------------------------------------
-Starting PH iteration 5 solves
-Queuing solve for scenario bundle=BelowAverageBundle
-Queuing solve for scenario bundle=AverageBundle
-Queuing solve for scenario bundle=AboveAverageBundle
-Waiting for bundle sub-problem solves
-Results obtained for bundle=BelowAverageBundle
-Successfully loaded solution for bundle=BelowAverageBundle
-Results obtained for bundle=AverageBundle
-Successfully loaded solution for bundle=AverageBundle
-Results obtained for bundle=AboveAverageBundle
-Successfully loaded solution for bundle=AboveAverageBundle
-Successfully completed PH iteration 5 solves
-- solution statistics:
-
- Scenario Bundle Cost Objective Objective Gap Solution Status
- BelowAverageBundle -53381.9496 -42612.1563 None Reported optimal
- AverageBundle -118600.0026 -100317.7697 None Reported optimal
- AboveAverageBundle -165649.8831 -184430.7310 None Reported optimal
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario -53381.9496 -42612.1563 None Reported None Reported
- AverageScenario -118600.0026 -100317.7697 None Reported None Reported
- AboveAverageScenario -165649.8831 -184430.7310 None Reported None Reported
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 100.0000 80.0000 107.0024 Max-Min: 27.0024 Avg: 95.6675
-
- Index: [SUGAR_BEETS] Values: 272.8726 300.0000 250.0000 Max-Min: 50.0000 Avg: 274.2909
-
- Index: [WHEAT] Values: 127.1274 120.0000 142.9976 Max-Min: 22.9976 Avg: 130.0417
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 113015.9869 114400.0010 111060.1930 Max-Min: 3339.8079 Avg: 112825.3937
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 112825.3936 Max-Min= 3339.81
-Converger=Normalized term diff value is 0.0794 - threshold reached=False
-Cumulative run-time=1.59 seconds
-
-Initiating PH iteration=6
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: -11.7717 -56.7717 68.5434 Average: 95.6675
- Index: [SUGAR_BEETS] Weights: 69.4288 115.2856 -184.7144 Average: 274.2909
- Index: [WHEAT] Weights: -57.6571 -58.5139 116.1710 Average: 130.0417
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 113015.9869 114400.0010 111060.1930 Max-Min: 3339.8079 Avg: 112825.3937
-------------------------------------------------
-Starting PH iteration 6 solves
-Queuing solve for scenario bundle=BelowAverageBundle
-Queuing solve for scenario bundle=AverageBundle
-Queuing solve for scenario bundle=AboveAverageBundle
-Waiting for bundle sub-problem solves
-Results obtained for bundle=BelowAverageBundle
-Successfully loaded solution for bundle=BelowAverageBundle
-Results obtained for bundle=AverageBundle
-Successfully loaded solution for bundle=AverageBundle
-Results obtained for bundle=AboveAverageBundle
-Successfully loaded solution for bundle=AboveAverageBundle
-Successfully completed PH iteration 6 solves
-- solution statistics:
-
- Scenario Bundle Cost Objective Objective Gap Solution Status
- BelowAverageBundle -53219.2932 -42930.7305 None Reported optimal
- AverageBundle -116329.1002 -95224.7714 None Reported optimal
- AboveAverageBundle -165668.6702 -187438.9512 None Reported optimal
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario -53219.2932 -42930.7305 None Reported None Reported
- AverageScenario -116329.1002 -95224.7714 None Reported None Reported
- AboveAverageScenario -165668.6702 -187438.9512 None Reported None Reported
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 100.0000 80.0000 106.6267 Max-Min: 26.6267 Avg: 95.5422
-
- Index: [SUGAR_BEETS] Values: 271.5817 287.7249 250.0000 Max-Min: 37.7249 Avg: 269.7688
-
- Index: [WHEAT] Values: 128.4183 132.2752 143.3733 Max-Min: 14.9550 Avg: 134.6889
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 112873.9853 113049.7347 111030.1336 Max-Min: 2019.6011 Avg: 112317.9512
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 112317.9512 Max-Min= 2019.60
-Converger=Normalized term diff value is 0.0668 - threshold reached=False
-Cumulative run-time=1.85 seconds
-
-Initiating PH iteration=7
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: -7.3139 -72.3139 79.6279 Average: 95.5422
- Index: [SUGAR_BEETS] Weights: 71.2416 133.2416 -204.4832 Average: 269.7688
- Index: [WHEAT] Weights: -63.9277 -60.9277 124.8554 Average: 134.6889
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 112873.9853 113049.7347 111030.1336 Max-Min: 2019.6011 Avg: 112317.9512
-------------------------------------------------
-Starting PH iteration 7 solves
-Queuing solve for scenario bundle=BelowAverageBundle
-Queuing solve for scenario bundle=AverageBundle
-Queuing solve for scenario bundle=AboveAverageBundle
-Waiting for bundle sub-problem solves
-Results obtained for bundle=BelowAverageBundle
-Successfully loaded solution for bundle=BelowAverageBundle
-Results obtained for bundle=AverageBundle
-Successfully loaded solution for bundle=AverageBundle
-Results obtained for bundle=AboveAverageBundle
-Successfully loaded solution for bundle=AboveAverageBundle
-Successfully completed PH iteration 7 solves
-- solution statistics:
-
- Scenario Bundle Cost Objective Objective Gap Solution Status
- BelowAverageBundle -52132.3704 -42855.4297 None Reported optimal
- AverageBundle -113596.7339 -91769.7451 None Reported optimal
- AboveAverageBundle -165847.9840 -190116.4111 None Reported optimal
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario -52132.3704 -42855.4297 None Reported None Reported
- AverageScenario -113596.7339 -91769.7451 None Reported None Reported
- AboveAverageScenario -165847.9840 -190116.4111 None Reported None Reported
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 100.0000 80.0000 103.0404 Max-Min: 23.0404 Avg: 94.3468
-
- Index: [SUGAR_BEETS] Values: 262.9553 272.9553 250.0000 Max-Min: 22.9553 Avg: 261.9702
-
- Index: [WHEAT] Values: 137.0447 147.0447 146.9596 Max-Min: 10.0000 Avg: 143.6830
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 111925.0845 111425.0845 110743.2314 Max-Min: 1181.8530 Avg: 111364.4668
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 111364.4668 Max-Min= 1181.85
-Converger=Normalized term diff value is 0.0542 - threshold reached=False
-Cumulative run-time=2.12 seconds
-
-Initiating PH iteration=8
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: -1.6607 -86.6607 88.3215 Average: 94.3468
- Index: [SUGAR_BEETS] Weights: 72.2267 144.2267 -216.4534 Average: 261.9702
- Index: [WHEAT] Weights: -70.5660 -57.5660 128.1320 Average: 143.6830
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 111925.0845 111425.0845 110743.2314 Max-Min: 1181.8530 Avg: 111364.4668
-------------------------------------------------
-Starting PH iteration 8 solves
-Queuing solve for scenario bundle=BelowAverageBundle
-Queuing solve for scenario bundle=AverageBundle
-Queuing solve for scenario bundle=AboveAverageBundle
-Waiting for bundle sub-problem solves
-Results obtained for bundle=BelowAverageBundle
-Successfully loaded solution for bundle=BelowAverageBundle
-Results obtained for bundle=AverageBundle
-Successfully loaded solution for bundle=AverageBundle
-Results obtained for bundle=AboveAverageBundle
-Successfully loaded solution for bundle=AboveAverageBundle
-Successfully completed PH iteration 8 solves
-- solution statistics:
-
- Scenario Bundle Cost Objective Objective Gap Solution Status
- BelowAverageBundle -50594.1552 -43087.2776 None Reported optimal
- AverageBundle -110943.8000 -89612.4155 None Reported optimal
- AboveAverageBundle -166238.1456 -191976.5309 None Reported optimal
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario -50594.1552 -43087.2776 None Reported None Reported
- AverageScenario -110943.8000 -89612.4155 None Reported None Reported
- AboveAverageScenario -166238.1456 -191976.5309 None Reported None Reported
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 100.0000 82.6742 95.2371 Max-Min: 17.3258 Avg: 92.6371
-
- Index: [SUGAR_BEETS] Values: 250.7473 259.4102 250.0000 Max-Min: 9.4102 Avg: 253.3858
-
- Index: [WHEAT] Values: 149.2528 157.9157 154.7629 Max-Min: 8.6629 Avg: 153.9771
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 110582.1982 110149.0530 110118.9730 Max-Min: 463.2252 Avg: 110283.4081
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 110283.4081 Max-Min= 463.23
-Converger=Normalized term diff value is 0.0360 - threshold reached=False
-Cumulative run-time=2.38 seconds
-
-Initiating PH iteration=9
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: 5.7022 -96.6237 90.9215 Average: 92.6371
- Index: [SUGAR_BEETS] Weights: 69.5882 150.2511 -219.8392 Average: 253.3858
- Index: [WHEAT] Weights: -75.2903 -53.6274 128.9177 Average: 153.9771
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 110582.1982 110149.0530 110118.9730 Max-Min: 463.2252 Avg: 110283.4081
-------------------------------------------------
-Starting PH iteration 9 solves
-Queuing solve for scenario bundle=BelowAverageBundle
-Queuing solve for scenario bundle=AverageBundle
-Queuing solve for scenario bundle=AboveAverageBundle
-Waiting for bundle sub-problem solves
-Results obtained for bundle=BelowAverageBundle
-Successfully loaded solution for bundle=BelowAverageBundle
-Results obtained for bundle=AverageBundle
-Successfully loaded solution for bundle=AverageBundle
-Results obtained for bundle=AboveAverageBundle
-Successfully loaded solution for bundle=AboveAverageBundle
-Successfully completed PH iteration 9 solves
-- solution statistics:
-
- Scenario Bundle Cost Objective Objective Gap Solution Status
- BelowAverageBundle -49273.4062 -43880.3148 None Reported optimal
- AverageBundle -107787.2520 -88509.4678 None Reported optimal
- AboveAverageBundle -166583.5965 -192625.4884 None Reported optimal
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario -49273.4062 -43880.3148 None Reported None Reported
- AverageScenario -107787.2520 -88509.4678 None Reported None Reported
- AboveAverageScenario -166583.5965 -192625.4884 None Reported None Reported
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 100.0000 90.9274 88.3281 Max-Min: 11.6719 Avg: 93.0852
-
- Index: [SUGAR_BEETS] Values: 240.2651 244.8014 250.0000 Max-Min: 9.7349 Avg: 245.0222
-
- Index: [WHEAT] Values: 159.7349 164.2712 161.6719 Max-Min: 4.5363 Avg: 161.8926
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 109429.1633 109202.3493 109566.2516 Max-Min: 363.9023 Avg: 109399.2547
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 109399.2547 Max-Min= 363.90
-Converger=Normalized term diff value is 0.0243 - threshold reached=False
-Cumulative run-time=2.65 seconds
-
-Initiating PH iteration=10
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: 12.6170 -98.7814 86.1644 Average: 93.0852
- Index: [SUGAR_BEETS] Weights: 64.8311 150.0303 -214.8614 Average: 245.0222
- Index: [WHEAT] Weights: -77.4481 -51.2489 128.6970 Average: 161.8926
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 109429.1633 109202.3493 109566.2516 Max-Min: 363.9023 Avg: 109399.2547
-------------------------------------------------
-Starting PH iteration 10 solves
-Queuing solve for scenario bundle=BelowAverageBundle
-Queuing solve for scenario bundle=AverageBundle
-Queuing solve for scenario bundle=AboveAverageBundle
-Waiting for bundle sub-problem solves
-Results obtained for bundle=BelowAverageBundle
-Successfully loaded solution for bundle=BelowAverageBundle
-Results obtained for bundle=AverageBundle
-Successfully loaded solution for bundle=AverageBundle
-Results obtained for bundle=AboveAverageBundle
-Successfully loaded solution for bundle=AboveAverageBundle
-Successfully completed PH iteration 10 solves
-- solution statistics:
-
- Scenario Bundle Cost Objective Objective Gap Solution Status
- BelowAverageBundle -48295.4064 -44838.4002 None Reported optimal
- AverageBundle -106137.5036 -88506.9773 None Reported optimal
- AboveAverageBundle -166656.8766 -191859.9457 None Reported optimal
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario -48295.4064 -44838.4002 None Reported None Reported
- AverageScenario -106137.5036 -88506.9773 None Reported None Reported
- AboveAverageScenario -166656.8766 -191859.9457 None Reported None Reported
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 94.4682 93.5333 86.8625 Max-Min: 7.6057 Avg: 91.6213
-
- Index: [SUGAR_BEETS] Values: 236.1911 236.6585 250.0000 Max-Min: 13.8089 Avg: 240.9499
-
- Index: [WHEAT] Values: 169.3407 169.8082 163.1375 Max-Min: 6.6707 Avg: 167.4288
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108538.4755 108515.1014 109449.0034 Max-Min: 933.9021 Avg: 108834.1934
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108834.1934 Max-Min= 933.90
-Converger=Normalized term diff value is 0.0256 - threshold reached=False
-Cumulative run-time=2.93 seconds
-
-Initiating PH iteration=11
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: 15.4638 -96.8695 81.4056 Average: 91.6213
- Index: [SUGAR_BEETS] Weights: 60.0723 145.7390 -205.8113 Average: 240.9499
- Index: [WHEAT] Weights: -75.5362 -48.8695 124.4056 Average: 167.4288
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108538.4755 108515.1014 109449.0034 Max-Min: 933.9021 Avg: 108834.1934
-------------------------------------------------
-Starting PH iteration 11 solves
-Queuing solve for scenario bundle=BelowAverageBundle
-Queuing solve for scenario bundle=AverageBundle
-Queuing solve for scenario bundle=AboveAverageBundle
-Waiting for bundle sub-problem solves
-Results obtained for bundle=BelowAverageBundle
-Successfully loaded solution for bundle=BelowAverageBundle
-Results obtained for bundle=AverageBundle
-Successfully loaded solution for bundle=AverageBundle
-Results obtained for bundle=AboveAverageBundle
-Successfully loaded solution for bundle=AboveAverageBundle
-Successfully completed PH iteration 11 solves
-- solution statistics:
-
- Scenario Bundle Cost Objective Objective Gap Solution Status
- BelowAverageBundle -48019.8042 -45436.2603 None Reported optimal
- AverageBundle -106363.6899 -89002.9272 None Reported optimal
- AboveAverageBundle -166820.1895 -190692.5606 None Reported optimal
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario -48019.8042 -45436.2603 None Reported None Reported
- AverageScenario -106363.6899 -89002.9272 None Reported None Reported
- AboveAverageScenario -166820.1895 -190692.5606 None Reported None Reported
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 90.1575 90.1575 83.5963 Max-Min: 6.5612 Avg: 87.9704
-
- Index: [SUGAR_BEETS] Values: 236.8776 236.8776 250.0000 Max-Min: 13.1224 Avg: 241.2517
-
- Index: [WHEAT] Values: 172.9649 172.9649 166.4037 Max-Min: 6.5612 Avg: 170.7779
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108269.1322 108269.1322 109187.7027 Max-Min: 918.5705 Avg: 108575.3223
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108575.3224 Max-Min= 918.57
-Converger=Normalized term diff value is 0.0248 - threshold reached=False
-Cumulative run-time=3.20 seconds
-
-Initiating PH iteration=12
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: 17.6509 -94.6824 77.0315 Average: 87.9704
- Index: [SUGAR_BEETS] Weights: 55.6982 141.3648 -197.0630 Average: 241.2517
- Index: [WHEAT] Weights: -73.3491 -46.6824 120.0315 Average: 170.7779
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108269.1322 108269.1322 109187.7027 Max-Min: 918.5705 Avg: 108575.3223
-------------------------------------------------
-Starting PH iteration 12 solves
-Queuing solve for scenario bundle=BelowAverageBundle
-Queuing solve for scenario bundle=AverageBundle
-Queuing solve for scenario bundle=AboveAverageBundle
-Waiting for bundle sub-problem solves
-Results obtained for bundle=BelowAverageBundle
-Successfully loaded solution for bundle=BelowAverageBundle
-Results obtained for bundle=AverageBundle
-Successfully loaded solution for bundle=AverageBundle
-Results obtained for bundle=AboveAverageBundle
-Successfully loaded solution for bundle=AboveAverageBundle
-Successfully completed PH iteration 12 solves
-- solution statistics:
-
- Scenario Bundle Cost Objective Objective Gap Solution Status
- BelowAverageBundle -48118.5871 -45935.9159 None Reported optimal
- AverageBundle -107549.8371 -89502.5827 None Reported optimal
- AboveAverageBundle -166995.1895 -189627.5534 None Reported optimal
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario -48118.5871 -45935.9159 None Reported None Reported
- AverageScenario -107549.8371 -89502.5827 None Reported None Reported
- AboveAverageScenario -166995.1895 -189627.5534 None Reported None Reported
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 84.3195 84.3195 80.0963 Max-Min: 4.2232 Avg: 82.9118
-
- Index: [SUGAR_BEETS] Values: 241.5536 241.5536 250.0000 Max-Min: 8.4464 Avg: 244.3690
-
- Index: [WHEAT] Values: 174.1270 174.1270 169.9037 Max-Min: 4.2232 Avg: 172.7192
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108316.4513 108316.4513 108907.7027 Max-Min: 591.2515 Avg: 108513.5351
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108513.5351 Max-Min= 591.25
-Converger=Normalized term diff value is 0.0163 - threshold reached=False
-Cumulative run-time=3.47 seconds
-
-Initiating PH iteration=13
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: 19.0587 -93.2747 74.2160 Average: 82.9118
- Index: [SUGAR_BEETS] Weights: 52.8827 138.5493 -191.4320 Average: 244.3690
- Index: [WHEAT] Weights: -71.9413 -45.2747 117.2160 Average: 172.7192
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108316.4513 108316.4513 108907.7027 Max-Min: 591.2515 Avg: 108513.5351
-------------------------------------------------
-Starting PH iteration 13 solves
-Queuing solve for scenario bundle=BelowAverageBundle
-Queuing solve for scenario bundle=AverageBundle
-Queuing solve for scenario bundle=AboveAverageBundle
-Waiting for bundle sub-problem solves
-Results obtained for bundle=BelowAverageBundle
-Successfully loaded solution for bundle=BelowAverageBundle
-Results obtained for bundle=AverageBundle
-Successfully loaded solution for bundle=AverageBundle
-Results obtained for bundle=AboveAverageBundle
-Successfully loaded solution for bundle=AboveAverageBundle
-Successfully completed PH iteration 13 solves
-- solution statistics:
-
- Scenario Bundle Cost Objective Objective Gap Solution Status
- BelowAverageBundle -48322.9430 -46297.2018 None Reported optimal
- AverageBundle -108686.3897 -89860.4118 None Reported optimal
- AboveAverageBundle -167170.1895 -188981.8012 None Reported optimal
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario -48322.9430 -46297.2018 None Reported None Reported
- AverageScenario -108686.3897 -89860.4118 None Reported None Reported
- AboveAverageScenario -167170.1895 -188981.8012 None Reported None Reported
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 77.8531 80.0000 76.5963 Max-Min: 3.4037 Avg: 78.1498
-
- Index: [SUGAR_BEETS] Values: 247.4864 246.4129 250.0000 Max-Min: 3.5871 Avg: 247.9664
-
- Index: [WHEAT] Values: 174.6606 173.5871 173.4037 Max-Min: 1.2568 Avg: 173.8838
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108451.7478 108505.4205 108627.7027 Max-Min: 175.9549 Avg: 108528.2903
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108528.2903 Max-Min= 175.95
-Converger=Normalized term diff value is 0.0081 - threshold reached=False
-Cumulative run-time=3.73 seconds
-
-Initiating PH iteration=14
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: 18.7620 -91.4245 72.6625 Average: 78.1498
- Index: [SUGAR_BEETS] Weights: 52.4026 136.9958 -189.3984 Average: 247.9664
- Index: [WHEAT] Weights: -71.1646 -45.5714 116.7359 Average: 173.8838
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108451.7478 108505.4205 108627.7027 Max-Min: 175.9549 Avg: 108528.2903
-------------------------------------------------
-Starting PH iteration 14 solves
-Queuing solve for scenario bundle=BelowAverageBundle
-Queuing solve for scenario bundle=AverageBundle
-Queuing solve for scenario bundle=AboveAverageBundle
-Waiting for bundle sub-problem solves
-Results obtained for bundle=BelowAverageBundle
-Successfully loaded solution for bundle=BelowAverageBundle
-Results obtained for bundle=AverageBundle
-Successfully loaded solution for bundle=AverageBundle
-Results obtained for bundle=AboveAverageBundle
-Successfully loaded solution for bundle=AboveAverageBundle
-Successfully completed PH iteration 14 solves
-- solution statistics:
-
- Scenario Bundle Cost Objective Objective Gap Solution Status
- BelowAverageBundle -48461.6189 -46340.8750 None Reported optimal
- AverageBundle -109027.6805 -90153.8494 None Reported optimal
- AboveAverageBundle -167291.5168 -188714.1739 None Reported optimal
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario -48461.6189 -46340.8750 None Reported None Reported
- AverageScenario -109027.6805 -90153.8494 None Reported None Reported
- AboveAverageScenario -167291.5168 -188714.1739 None Reported None Reported
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 73.3878 80.0000 74.1697 Max-Min: 6.6122 Avg: 75.8525
-
- Index: [SUGAR_BEETS] Values: 251.5638 248.2577 250.0000 Max-Min: 3.3061 Avg: 249.9405
-
- Index: [WHEAT] Values: 175.0484 171.7423 175.8303 Max-Min: 4.0880 Avg: 174.2070
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108543.0456 108708.3501 108433.5791 Max-Min: 274.7710 Avg: 108561.6583
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108561.6583 Max-Min= 274.77
-Converger=Normalized term diff value is 0.0168 - threshold reached=False
-Cumulative run-time=4.00 seconds
-
-Initiating PH iteration=15
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: 16.2973 -87.2770 70.9797 Average: 75.8525
- Index: [SUGAR_BEETS] Weights: 54.0259 135.3130 -189.3390 Average: 249.9405
- Index: [WHEAT] Weights: -70.3232 -48.0361 118.3592 Average: 174.2070
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108543.0456 108708.3501 108433.5791 Max-Min: 274.7710 Avg: 108561.6583
-------------------------------------------------
-Starting PH iteration 15 solves
-Queuing solve for scenario bundle=BelowAverageBundle
-Queuing solve for scenario bundle=AverageBundle
-Queuing solve for scenario bundle=AboveAverageBundle
-Waiting for bundle sub-problem solves
-Results obtained for bundle=BelowAverageBundle
-Successfully loaded solution for bundle=BelowAverageBundle
-Results obtained for bundle=AverageBundle
-Successfully loaded solution for bundle=AverageBundle
-Results obtained for bundle=AboveAverageBundle
-Successfully loaded solution for bundle=AboveAverageBundle
-Successfully completed PH iteration 15 solves
-- solution statistics:
-
- Scenario Bundle Cost Objective Objective Gap Solution Status
- BelowAverageBundle -48519.8818 -45980.0932 None Reported optimal
- AverageBundle -109108.0631 -90654.2903 None Reported optimal
- AboveAverageBundle -167274.3760 -188547.9530 None Reported optimal
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario -48519.8818 -45980.0932 None Reported None Reported
- AverageScenario -109108.0631 -90654.2903 None Reported None Reported
- AboveAverageScenario -167274.3760 -188547.9530 None Reported None Reported
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 73.5552 80.0000 74.5125 Max-Min: 6.4448 Avg: 76.0226
-
- Index: [SUGAR_BEETS] Values: 251.9146 248.6922 250.0000 Max-Min: 3.2224 Avg: 250.2023
-
- Index: [WHEAT] Values: 174.5302 171.3078 175.4875 Max-Min: 4.1797 Avg: 173.7751
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108595.0262 108756.1451 108461.0044 Max-Min: 295.1407 Avg: 108604.0585
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108604.0585 Max-Min= 295.14
-Converger=Normalized term diff value is 0.0163 - threshold reached=False
-Cumulative run-time=4.27 seconds
-
-Initiating PH iteration=16
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: 13.8299 -83.2996 69.4697 Average: 76.0226
- Index: [SUGAR_BEETS] Weights: 55.7382 133.8030 -189.5412 Average: 250.2023
- Index: [WHEAT] Weights: -69.5682 -50.5034 120.0716 Average: 173.7751
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108595.0262 108756.1451 108461.0044 Max-Min: 295.1407 Avg: 108604.0585
-------------------------------------------------
-Starting PH iteration 16 solves
-Queuing solve for scenario bundle=BelowAverageBundle
-Queuing solve for scenario bundle=AverageBundle
-Queuing solve for scenario bundle=AboveAverageBundle
-Waiting for bundle sub-problem solves
-Results obtained for bundle=BelowAverageBundle
-Successfully loaded solution for bundle=BelowAverageBundle
-Results obtained for bundle=AverageBundle
-Successfully loaded solution for bundle=AverageBundle
-Results obtained for bundle=AboveAverageBundle
-Successfully loaded solution for bundle=AboveAverageBundle
-Successfully completed PH iteration 16 solves
-- solution statistics:
-
- Scenario Bundle Cost Objective Objective Gap Solution Status
- BelowAverageBundle -48558.6552 -45603.5242 None Reported optimal
- AverageBundle -109083.6715 -91135.8189 None Reported optimal
- AboveAverageBundle -167178.7685 -188413.2963 None Reported optimal
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario -48558.6552 -45603.5242 None Reported None Reported
- AverageScenario -109083.6715 -91135.8189 None Reported None Reported
- AboveAverageScenario -167178.7685 -188413.2963 None Reported None Reported
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 76.1927 80.0000 76.4247 Max-Min: 3.8073 Avg: 77.5391
-
- Index: [SUGAR_BEETS] Values: 250.4640 248.5604 250.0000 Max-Min: 1.9037 Avg: 249.6748
-
- Index: [WHEAT] Values: 173.3433 171.4396 173.5753 Max-Min: 2.1357 Avg: 172.7861
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108646.4588 108741.6420 108613.9764 Max-Min: 127.6656 Avg: 108667.3591
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108667.3591 Max-Min= 127.67
-Converger=Normalized term diff value is 0.0098 - threshold reached=False
-Cumulative run-time=4.53 seconds
-
-Initiating PH iteration=17
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: 12.4835 -80.8387 68.3552 Average: 77.5391
- Index: [SUGAR_BEETS] Weights: 56.5275 132.6886 -189.2160 Average: 249.6748
- Index: [WHEAT] Weights: -69.0109 -51.8499 120.8608 Average: 172.7861
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108646.4588 108741.6420 108613.9764 Max-Min: 127.6656 Avg: 108667.3591
-------------------------------------------------
-Starting PH iteration 17 solves
-Queuing solve for scenario bundle=BelowAverageBundle
-Queuing solve for scenario bundle=AverageBundle
-Queuing solve for scenario bundle=AboveAverageBundle
-Waiting for bundle sub-problem solves
-Results obtained for bundle=BelowAverageBundle
-Successfully loaded solution for bundle=BelowAverageBundle
-Results obtained for bundle=AverageBundle
-Successfully loaded solution for bundle=AverageBundle
-Results obtained for bundle=AboveAverageBundle
-Successfully loaded solution for bundle=AboveAverageBundle
-Successfully completed PH iteration 17 solves
-- solution statistics:
-
- Scenario Bundle Cost Objective Objective Gap Solution Status
- BelowAverageBundle -48633.2405 -45416.7793 None Reported optimal
- AverageBundle -109104.9067 -91454.2292 None Reported optimal
- AboveAverageBundle -167068.5373 -188284.1720 None Reported optimal
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario -48633.2405 -45416.7793 None Reported None Reported
- AverageScenario -109104.9067 -91454.2292 None Reported None Reported
- AboveAverageScenario -167068.5373 -188284.1720 None Reported None Reported
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 79.0556 80.0000 78.6293 Max-Min: 1.3707 Avg: 79.2283
-
- Index: [SUGAR_BEETS] Values: 249.1473 248.6752 250.0000 Max-Min: 1.3248 Avg: 249.2742
-
- Index: [WHEAT] Values: 171.7970 171.3248 171.3707 Max-Min: 0.4722 Avg: 171.4975
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108730.6596 108754.2683 108790.3462 Max-Min: 59.6867 Avg: 108758.4247
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108758.4247 Max-Min= 59.69
-Converger=Normalized term diff value is 0.0032 - threshold reached=False
-Cumulative run-time=4.79 seconds
-
-Initiating PH iteration=18
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: 12.3108 -80.0670 67.7562 Average: 79.2283
- Index: [SUGAR_BEETS] Weights: 56.4006 132.0895 -188.4902 Average: 249.2742
- Index: [WHEAT] Weights: -68.7114 -52.0225 120.7340 Average: 171.4975
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108730.6596 108754.2683 108790.3462 Max-Min: 59.6867 Avg: 108758.4247
-------------------------------------------------
-Starting PH iteration 18 solves
-Queuing solve for scenario bundle=BelowAverageBundle
-Queuing solve for scenario bundle=AverageBundle
-Queuing solve for scenario bundle=AboveAverageBundle
-Waiting for bundle sub-problem solves
-Results obtained for bundle=BelowAverageBundle
-Successfully loaded solution for bundle=BelowAverageBundle
-Results obtained for bundle=AverageBundle
-Successfully loaded solution for bundle=AverageBundle
-Results obtained for bundle=AboveAverageBundle
-Successfully loaded solution for bundle=AboveAverageBundle
-Successfully completed PH iteration 18 solves
-- solution statistics:
-
- Scenario Bundle Cost Objective Objective Gap Solution Status
- BelowAverageBundle -48755.1379 -45415.3179 None Reported optimal
- AverageBundle -109226.4753 -91575.5709 None Reported optimal
- AboveAverageBundle -166982.2889 -188175.7208 None Reported optimal
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario -48755.1379 -45415.3179 None Reported None Reported
- AverageScenario -109226.4753 -91575.5709 None Reported None Reported
- AboveAverageScenario -166982.2889 -188175.7208 None Reported None Reported
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 80.9175 80.0000 80.3543 Max-Min: 0.9175 Avg: 80.4239
-
- Index: [SUGAR_BEETS] Values: 248.8735 249.3323 250.0000 Max-Min: 1.1265 Avg: 249.4019
-
- Index: [WHEAT] Values: 170.2090 170.6677 169.6457 Max-Min: 1.0220 Avg: 170.1741
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108849.4904 108826.5523 108928.3436 Max-Min: 101.7913 Avg: 108868.1288
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108868.1288 Max-Min= 101.79
-Converger=Normalized term diff value is 0.0026 - threshold reached=False
-Cumulative run-time=5.06 seconds
-
-Initiating PH iteration=19
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: 12.8044 -80.4909 67.6866 Average: 80.4239
- Index: [SUGAR_BEETS] Weights: 55.8722 132.0199 -187.8921 Average: 249.4019
- Index: [WHEAT] Weights: -68.6766 -51.5289 120.2056 Average: 170.1741
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108849.4904 108826.5523 108928.3436 Max-Min: 101.7913 Avg: 108868.1288
-------------------------------------------------
-Starting PH iteration 19 solves
-Queuing solve for scenario bundle=BelowAverageBundle
-Queuing solve for scenario bundle=AverageBundle
-Queuing solve for scenario bundle=AboveAverageBundle
-Waiting for bundle sub-problem solves
-Results obtained for bundle=BelowAverageBundle
-Successfully loaded solution for bundle=BelowAverageBundle
-Results obtained for bundle=AverageBundle
-Successfully loaded solution for bundle=AverageBundle
-Results obtained for bundle=AboveAverageBundle
-Successfully loaded solution for bundle=AboveAverageBundle
-Successfully completed PH iteration 19 solves
-- solution statistics:
-
- Scenario Bundle Cost Objective Objective Gap Solution Status
- BelowAverageBundle -48896.7875 -45504.4174 None Reported optimal
- AverageBundle -109412.8070 -91544.0569 None Reported optimal
- AboveAverageBundle -166930.7830 -188124.7967 None Reported optimal
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario -48896.7875 -45504.4174 None Reported None Reported
- AverageScenario -109412.8070 -91544.0569 None Reported None Reported
- AboveAverageScenario -166930.7830 -188124.7967 None Reported None Reported
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 81.6195 80.0000 81.3844 Max-Min: 1.6195 Avg: 81.0013
-
- Index: [SUGAR_BEETS] Values: 249.5297 250.3395 250.0000 Max-Min: 0.8098 Avg: 249.9564
-
- Index: [WHEAT] Values: 168.8507 169.6605 168.6156 Max-Min: 1.0449 Avg: 169.0423
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108977.8328 108937.3442 109010.7532 Max-Min: 73.4090 Avg: 108975.3101
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108975.3101 Max-Min= 73.41
-Converger=Normalized term diff value is 0.0039 - threshold reached=False
-Cumulative run-time=5.50 seconds
-
-Initiating PH iteration=20
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: 13.4226 -81.4923 68.0696 Average: 81.0013
- Index: [SUGAR_BEETS] Weights: 55.4455 132.4030 -187.8485 Average: 249.9564
- Index: [WHEAT] Weights: -68.8682 -50.9107 119.7789 Average: 169.0423
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108977.8328 108937.3442 109010.7532 Max-Min: 73.4090 Avg: 108975.3101
-------------------------------------------------
-Starting PH iteration 20 solves
-Queuing solve for scenario bundle=BelowAverageBundle
-Queuing solve for scenario bundle=AverageBundle
-Queuing solve for scenario bundle=AboveAverageBundle
-Waiting for bundle sub-problem solves
-Results obtained for bundle=BelowAverageBundle
-Successfully loaded solution for bundle=BelowAverageBundle
-Results obtained for bundle=AverageBundle
-Successfully loaded solution for bundle=AverageBundle
-Results obtained for bundle=AboveAverageBundle
-Successfully loaded solution for bundle=AboveAverageBundle
-Successfully completed PH iteration 20 solves
-- solution statistics:
-
- Scenario Bundle Cost Objective Objective Gap Solution Status
- BelowAverageBundle -49016.9809 -45594.9935 None Reported optimal
- AverageBundle -109590.5410 -91424.1898 None Reported optimal
- AboveAverageBundle -166908.2967 -188156.5567 None Reported optimal
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario -49016.9809 -45594.9935 None Reported None Reported
- AverageScenario -109590.5410 -91424.1898 None Reported None Reported
- AboveAverageScenario -166908.2967 -188156.5567 None Reported None Reported
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 81.5787 80.0000 81.8341 Max-Min: 1.8341 Avg: 81.1376
-
- Index: [SUGAR_BEETS] Values: 250.5109 251.3002 250.0000 Max-Min: 1.3002 Avg: 250.6037
-
- Index: [WHEAT] Values: 167.9104 168.6998 168.1659 Max-Min: 0.7893 Avg: 168.2587
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 109082.4913 109043.0239 109046.7312 Max-Min: 39.4675 Avg: 109057.4155
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 109057.4155 Max-Min= 39.47
-Converger=Normalized term diff value is 0.0043 - threshold reached=False
-Cumulative run-time=5.76 seconds
-
-Initiating PH iteration=21
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: 13.8637 -82.6299 68.7662 Average: 81.1376
- Index: [SUGAR_BEETS] Weights: 55.3527 133.0995 -188.4522 Average: 250.6037
- Index: [WHEAT] Weights: -69.2164 -50.4696 119.6860 Average: 168.2587
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 109082.4913 109043.0239 109046.7312 Max-Min: 39.4675 Avg: 109057.4155
-------------------------------------------------
-Starting PH iteration 21 solves
-Queuing solve for scenario bundle=BelowAverageBundle
-Queuing solve for scenario bundle=AverageBundle
-Queuing solve for scenario bundle=AboveAverageBundle
-Waiting for bundle sub-problem solves
-Results obtained for bundle=BelowAverageBundle
-Successfully loaded solution for bundle=BelowAverageBundle
-Results obtained for bundle=AverageBundle
-Successfully loaded solution for bundle=AverageBundle
-Results obtained for bundle=AboveAverageBundle
-Successfully loaded solution for bundle=AboveAverageBundle
-Successfully completed PH iteration 21 solves
-- solution statistics:
-
- Scenario Bundle Cost Objective Objective Gap Solution Status
- BelowAverageBundle -49084.6333 -45641.9552 None Reported optimal
- AverageBundle -109699.2698 -91266.5727 None Reported optimal
- AboveAverageBundle -166905.0335 -188266.3977 None Reported optimal
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario -49084.6333 -45641.9552 None Reported None Reported
- AverageScenario -109699.2698 -91266.5727 None Reported None Reported
- AboveAverageScenario -166905.0335 -188266.3977 None Reported None Reported
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 81.2739 80.0000 81.8994 Max-Min: 1.8994 Avg: 81.0578
-
- Index: [SUGAR_BEETS] Values: 251.2510 251.8879 250.0000 Max-Min: 1.8879 Avg: 251.0463
-
- Index: [WHEAT] Values: 167.4751 168.1121 168.1006 Max-Min: 0.6370 Avg: 167.8959
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 109139.5209 109107.6734 109051.9523 Max-Min: 87.5686 Avg: 109099.7155
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 109099.7155 Max-Min= 87.57
-Converger=Normalized term diff value is 0.0044 - threshold reached=False
-Cumulative run-time=6.03 seconds
-
-Initiating PH iteration=22
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: 14.0798 -83.6876 69.6078 Average: 81.0578
- Index: [SUGAR_BEETS] Weights: 55.5574 133.9411 -189.4985 Average: 251.0463
- Index: [WHEAT] Weights: -69.6372 -50.2535 119.8907 Average: 167.8959
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 109139.5209 109107.6734 109051.9523 Max-Min: 87.5686 Avg: 109099.7155
-------------------------------------------------
-Starting PH iteration 22 solves
-Queuing solve for scenario bundle=BelowAverageBundle
-Queuing solve for scenario bundle=AverageBundle
-Queuing solve for scenario bundle=AboveAverageBundle
-Waiting for bundle sub-problem solves
-Results obtained for bundle=BelowAverageBundle
-Successfully loaded solution for bundle=BelowAverageBundle
-Results obtained for bundle=AverageBundle
-Successfully loaded solution for bundle=AverageBundle
-Results obtained for bundle=AboveAverageBundle
-Successfully loaded solution for bundle=AboveAverageBundle
-Successfully completed PH iteration 22 solves
-- solution statistics:
-
- Scenario Bundle Cost Objective Objective Gap Solution Status
- BelowAverageBundle -49089.7510 -45643.9062 None Reported optimal
- AverageBundle -109715.9100 -91103.4165 None Reported optimal
- AboveAverageBundle -166913.8842 -188424.2323 None Reported optimal
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario -49089.7510 -45643.9062 None Reported None Reported
- AverageScenario -109715.9100 -91103.4165 None Reported None Reported
- AboveAverageScenario -166913.8842 -188424.2323 None Reported None Reported
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 80.9779 80.0000 81.7224 Max-Min: 1.7224 Avg: 80.9001
-
- Index: [SUGAR_BEETS] Values: 251.4889 251.9779 250.0000 Max-Min: 1.9779 Avg: 251.1556
-
- Index: [WHEAT] Values: 167.5332 168.0221 168.2776 Max-Min: 0.7445 Avg: 167.9443
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 109142.0156 109117.5676 109037.7913 Max-Min: 104.2243 Avg: 109099.1248
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 109099.1248 Max-Min= 104.22
-Converger=Normalized term diff value is 0.0040 - threshold reached=False
-Cumulative run-time=6.30 seconds
-
-Initiating PH iteration=23
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: 14.1577 -84.5877 70.4301 Average: 80.9001
- Index: [SUGAR_BEETS] Weights: 55.8907 134.7634 -190.6541 Average: 251.1556
- Index: [WHEAT] Weights: -70.0484 -50.1757 120.2240 Average: 167.9443
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 109142.0156 109117.5676 109037.7913 Max-Min: 104.2243 Avg: 109099.1248
-------------------------------------------------
-Starting PH iteration 23 solves
-Queuing solve for scenario bundle=BelowAverageBundle
-Queuing solve for scenario bundle=AverageBundle
-Queuing solve for scenario bundle=AboveAverageBundle
-Waiting for bundle sub-problem solves
-Results obtained for bundle=BelowAverageBundle
-Successfully loaded solution for bundle=BelowAverageBundle
-Results obtained for bundle=AverageBundle
-Successfully loaded solution for bundle=AverageBundle
-Results obtained for bundle=AboveAverageBundle
-Successfully loaded solution for bundle=AboveAverageBundle
-Successfully completed PH iteration 23 solves
-- solution statistics:
-
- Scenario Bundle Cost Objective Objective Gap Solution Status
- BelowAverageBundle -49041.7432 -45622.8401 None Reported optimal
- AverageBundle -109652.6831 -90955.5247 None Reported optimal
- AboveAverageBundle -166931.2590 -188589.7437 None Reported optimal
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario -49041.7432 -45622.8401 None Reported None Reported
- AverageScenario -109652.6831 -90955.5247 None Reported None Reported
- AboveAverageScenario -166931.2590 -188589.7437 None Reported None Reported
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 80.7424 80.0000 81.3749 Max-Min: 1.3749 Avg: 80.7058
-
- Index: [SUGAR_BEETS] Values: 251.2649 251.6361 250.0000 Max-Min: 1.6361 Avg: 250.9670
-
- Index: [WHEAT] Values: 167.9927 168.3639 168.6251 Max-Min: 0.6324 Avg: 168.3272
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 109098.5341 109079.9732 109009.9915 Max-Min: 88.5426 Avg: 109062.8329
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 109062.8329 Max-Min= 88.54
-Converger=Normalized term diff value is 0.0032 - threshold reached=False
-Cumulative run-time=6.56 seconds
-
-Initiating PH iteration=24
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: 14.1943 -85.2935 71.0992 Average: 80.7058
- Index: [SUGAR_BEETS] Weights: 56.1886 135.4325 -191.6211 Average: 250.9670
- Index: [WHEAT] Weights: -70.3829 -50.1390 120.5219 Average: 168.3272
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 109098.5341 109079.9732 109009.9915 Max-Min: 88.5426 Avg: 109062.8329
-------------------------------------------------
-Starting PH iteration 24 solves
-Queuing solve for scenario bundle=BelowAverageBundle
-Queuing solve for scenario bundle=AverageBundle
-Queuing solve for scenario bundle=AboveAverageBundle
-Waiting for bundle sub-problem solves
-Results obtained for bundle=BelowAverageBundle
-Successfully loaded solution for bundle=BelowAverageBundle
-Results obtained for bundle=AverageBundle
-Successfully loaded solution for bundle=AverageBundle
-Results obtained for bundle=AboveAverageBundle
-Successfully loaded solution for bundle=AboveAverageBundle
-Successfully completed PH iteration 24 solves
-- solution statistics:
-
- Scenario Bundle Cost Objective Objective Gap Solution Status
- BelowAverageBundle -48961.0424 -45601.5537 None Reported optimal
- AverageBundle -109541.3161 -90837.9390 None Reported optimal
- AboveAverageBundle -166954.9707 -188727.3146 None Reported optimal
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario -48961.0424 -45601.5537 None Reported None Reported
- AverageScenario -109541.3161 -90837.9390 None Reported None Reported
- AboveAverageScenario -166954.9707 -188727.3146 None Reported None Reported
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 80.5114 80.0000 80.9006 Max-Min: 0.9006 Avg: 80.4707
-
- Index: [SUGAR_BEETS] Values: 250.7784 251.0341 250.0000 Max-Min: 1.0341 Avg: 250.6042
-
- Index: [WHEAT] Values: 168.7102 168.9659 169.0994 Max-Min: 0.3892 Avg: 168.9251
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 109026.5411 109013.7550 108972.0527 Max-Min: 54.4883 Avg: 109004.1163
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 109004.1163 Max-Min= 54.49
-Converger=Normalized term diff value is 0.0021 - threshold reached=False
-Cumulative run-time=6.83 seconds
-
-Initiating PH iteration=25
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: 14.2351 -85.7642 71.5291 Average: 80.4707
- Index: [SUGAR_BEETS] Weights: 56.3628 135.8625 -192.2253 Average: 250.6042
- Index: [WHEAT] Weights: -70.5979 -50.0983 120.6962 Average: 168.9251
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 109026.5411 109013.7550 108972.0527 Max-Min: 54.4883 Avg: 109004.1163
-------------------------------------------------
-Starting PH iteration 25 solves
-Queuing solve for scenario bundle=BelowAverageBundle
-Queuing solve for scenario bundle=AverageBundle
-Queuing solve for scenario bundle=AboveAverageBundle
-Waiting for bundle sub-problem solves
-Results obtained for bundle=BelowAverageBundle
-Successfully loaded solution for bundle=BelowAverageBundle
-Results obtained for bundle=AverageBundle
-Successfully loaded solution for bundle=AverageBundle
-Results obtained for bundle=AboveAverageBundle
-Successfully loaded solution for bundle=AboveAverageBundle
-Successfully completed PH iteration 25 solves
-- solution statistics:
-
- Scenario Bundle Cost Objective Objective Gap Solution Status
- BelowAverageBundle -48870.2048 -45591.4325 None Reported optimal
- AverageBundle -109416.4479 -90761.4846 None Reported optimal
- AboveAverageBundle -166982.1882 -188814.9048 None Reported optimal
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario -48870.2048 -45591.4325 None Reported None Reported
- AverageScenario -109416.4479 -90761.4846 None Reported None Reported
- AboveAverageScenario -166982.1882 -188814.9048 None Reported None Reported
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 80.2356 80.0000 80.3563 Max-Min: 0.3563 Avg: 80.1973
-
- Index: [SUGAR_BEETS] Values: 250.2414 250.3592 250.0000 Max-Min: 0.3592 Avg: 250.2002
-
- Index: [WHEAT] Values: 169.5230 169.6408 169.6437 Max-Min: 0.1207 Avg: 169.6025
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108945.3996 108939.5090 108928.5049 Max-Min: 16.8947 Avg: 108937.8045
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108937.8045 Max-Min= 16.89
-Converger=Normalized term diff value is 0.0008 - threshold reached=False
-Cumulative run-time=7.10 seconds
-
-Initiating PH iteration=26
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: 14.2734 -85.9615 71.6881 Average: 80.1973
- Index: [SUGAR_BEETS] Weights: 56.4040 136.0215 -192.4255 Average: 250.2002
- Index: [WHEAT] Weights: -70.6774 -50.0599 120.7373 Average: 169.6025
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108945.3996 108939.5090 108928.5049 Max-Min: 16.8947 Avg: 108937.8045
-------------------------------------------------
-Starting PH iteration 26 solves
-Queuing solve for scenario bundle=BelowAverageBundle
-Queuing solve for scenario bundle=AverageBundle
-Queuing solve for scenario bundle=AboveAverageBundle
-Waiting for bundle sub-problem solves
-Results obtained for bundle=BelowAverageBundle
-Successfully loaded solution for bundle=BelowAverageBundle
-Results obtained for bundle=AverageBundle
-Successfully loaded solution for bundle=AverageBundle
-Results obtained for bundle=AboveAverageBundle
-Successfully loaded solution for bundle=AboveAverageBundle
-Successfully completed PH iteration 26 solves
-- solution statistics:
-
- Scenario Bundle Cost Objective Objective Gap Solution Status
- BelowAverageBundle -48787.9281 -45592.2312 None Reported optimal
- AverageBundle -109305.2558 -90731.6896 None Reported optimal
- AboveAverageBundle -167008.9031 -188845.8850 None Reported optimal
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario -48787.9281 -45592.2312 None Reported None Reported
- AverageScenario -109305.2558 -90731.6896 None Reported None Reported
- AboveAverageScenario -167008.9031 -188845.8850 None Reported None Reported
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 79.9239 80.0000 79.8220 Max-Min: 0.1780 Avg: 79.9153
-
- Index: [SUGAR_BEETS] Values: 249.7962 249.7581 250.0000 Max-Min: 0.2419 Avg: 249.8514
-
- Index: [WHEAT] Values: 170.2799 170.2419 170.1780 Max-Min: 0.1019 Avg: 170.2333
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108871.4927 108873.3948 108885.7610 Max-Min: 14.2683 Avg: 108876.8829
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108876.8829 Max-Min= 14.27
-Converger=Normalized term diff value is 0.0005 - threshold reached=False
-Cumulative run-time=7.38 seconds
-
-Initiating PH iteration=27
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: 14.2820 -85.8768 71.5948 Average: 79.9153
- Index: [SUGAR_BEETS] Weights: 56.3487 135.9282 -192.2769 Average: 249.8514
- Index: [WHEAT] Weights: -70.6307 -50.0513 120.6821 Average: 170.2333
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108871.4927 108873.3948 108885.7610 Max-Min: 14.2683 Avg: 108876.8829
-------------------------------------------------
-Starting PH iteration 27 solves
-Queuing solve for scenario bundle=BelowAverageBundle
-Queuing solve for scenario bundle=AverageBundle
-Queuing solve for scenario bundle=AboveAverageBundle
-Waiting for bundle sub-problem solves
-Results obtained for bundle=BelowAverageBundle
-Successfully loaded solution for bundle=BelowAverageBundle
-Results obtained for bundle=AverageBundle
-Successfully loaded solution for bundle=AverageBundle
-Results obtained for bundle=AboveAverageBundle
-Successfully loaded solution for bundle=AboveAverageBundle
-Successfully completed PH iteration 27 solves
-- solution statistics:
-
- Scenario Bundle Cost Objective Objective Gap Solution Status
- BelowAverageBundle -48726.5385 -45598.0052 None Reported optimal
- AverageBundle -109224.0808 -90747.2580 None Reported optimal
- AboveAverageBundle -167030.7706 -188826.0257 None Reported optimal
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario -48726.5385 -45598.0052 None Reported None Reported
- AverageScenario -109224.0808 -90747.2580 None Reported None Reported
- AboveAverageScenario -167030.7706 -188826.0257 None Reported None Reported
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 79.6333 80.0000 79.3846 Max-Min: 0.6154 Avg: 79.6727
-
- Index: [SUGAR_BEETS] Values: 249.5027 249.3193 250.0000 Max-Min: 0.6807 Avg: 249.6073
-
- Index: [WHEAT] Values: 170.8640 170.6807 170.6154 Max-Min: 0.2487 Avg: 170.7200
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108815.9612 108825.1286 108850.7729 Max-Min: 34.8117 Avg: 108830.6209
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108830.6209 Max-Min= 34.81
-Converger=Normalized term diff value is 0.0015 - threshold reached=False
-Cumulative run-time=7.65 seconds
-
-Initiating PH iteration=28
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: 14.2427 -85.5495 71.3068 Average: 79.6727
- Index: [SUGAR_BEETS] Weights: 56.2441 135.6401 -191.8842 Average: 249.6073
- Index: [WHEAT] Weights: -70.4867 -50.0907 120.5774 Average: 170.7200
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108815.9612 108825.1286 108850.7729 Max-Min: 34.8117 Avg: 108830.6209
-------------------------------------------------
-Starting PH iteration 28 solves
-Queuing solve for scenario bundle=BelowAverageBundle
-Queuing solve for scenario bundle=AverageBundle
-Queuing solve for scenario bundle=AboveAverageBundle
-Waiting for bundle sub-problem solves
-Results obtained for bundle=BelowAverageBundle
-Successfully loaded solution for bundle=BelowAverageBundle
-Results obtained for bundle=AverageBundle
-Successfully loaded solution for bundle=AverageBundle
-Results obtained for bundle=AboveAverageBundle
-Successfully loaded solution for bundle=AboveAverageBundle
-Successfully completed PH iteration 28 solves
-- solution statistics:
-
- Scenario Bundle Cost Objective Objective Gap Solution Status
- BelowAverageBundle -48691.8922 -45603.0175 None Reported optimal
- AverageBundle -109179.4798 -90799.7978 None Reported optimal
- AboveAverageBundle -167044.4218 -188768.7555 None Reported optimal
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario -48691.8922 -45603.0175 None Reported None Reported
- AverageScenario -109179.4798 -90799.7978 None Reported None Reported
- AboveAverageScenario -167044.4218 -188768.7555 None Reported None Reported
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 79.4300 80.0000 79.1116 Max-Min: 0.8884 Avg: 79.5139
-
- Index: [SUGAR_BEETS] Values: 249.3633 249.0783 250.0000 Max-Min: 0.9217 Avg: 249.4805
-
- Index: [WHEAT] Values: 171.2067 170.9217 170.8884 Max-Min: 0.3184 Avg: 171.0056
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108784.3590 108798.6091 108828.9310 Max-Min: 44.5720 Avg: 108803.9664
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108803.9664 Max-Min= 44.57
-Converger=Normalized term diff value is 0.0021 - threshold reached=False
-Cumulative run-time=7.92 seconds
-
-Initiating PH iteration=29
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: 14.1588 -85.0633 70.9046 Average: 79.5139
- Index: [SUGAR_BEETS] Weights: 56.1268 135.2379 -191.3647 Average: 249.4805
- Index: [WHEAT] Weights: -70.2856 -50.1746 120.4602 Average: 171.0056
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108784.3590 108798.6091 108828.9310 Max-Min: 44.5720 Avg: 108803.9664
-------------------------------------------------
-Starting PH iteration 29 solves
-Queuing solve for scenario bundle=BelowAverageBundle
-Queuing solve for scenario bundle=AverageBundle
-Queuing solve for scenario bundle=AboveAverageBundle
-Waiting for bundle sub-problem solves
-Results obtained for bundle=BelowAverageBundle
-Successfully loaded solution for bundle=BelowAverageBundle
-Results obtained for bundle=AverageBundle
-Successfully loaded solution for bundle=AverageBundle
-Results obtained for bundle=AboveAverageBundle
-Successfully loaded solution for bundle=AboveAverageBundle
-Successfully completed PH iteration 29 solves
-- solution statistics:
-
- Scenario Bundle Cost Objective Objective Gap Solution Status
- BelowAverageBundle -48684.3919 -45604.6366 None Reported optimal
- AverageBundle -109170.7769 -90875.4491 None Reported optimal
- AboveAverageBundle -167048.4067 -188690.7726 None Reported optimal
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario -48684.3919 -45604.6366 None Reported None Reported
- AverageScenario -109170.7769 -90875.4491 None Reported None Reported
- AboveAverageScenario -167048.4067 -188690.7726 None Reported None Reported
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 79.3551 80.0000 79.0319 Max-Min: 0.9681 Avg: 79.4623
-
- Index: [SUGAR_BEETS] Values: 249.3537 249.0312 250.0000 Max-Min: 0.9688 Avg: 249.4616
-
- Index: [WHEAT] Values: 171.2912 170.9688 170.9681 Max-Min: 0.3232 Avg: 171.0760
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108777.3118 108793.4344 108822.5553 Max-Min: 45.2435 Avg: 108797.7672
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108797.7672 Max-Min= 45.24
-Converger=Normalized term diff value is 0.0023 - threshold reached=False
-Cumulative run-time=8.19 seconds
-
-Initiating PH iteration=30
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: 14.0515 -84.5257 70.4742 Average: 79.4623
- Index: [SUGAR_BEETS] Weights: 56.0189 134.8075 -190.8264 Average: 249.4616
- Index: [WHEAT] Weights: -70.0704 -50.2818 120.3522 Average: 171.0760
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108777.3118 108793.4344 108822.5553 Max-Min: 45.2435 Avg: 108797.7672
-------------------------------------------------
-Starting PH iteration 30 solves
-Queuing solve for scenario bundle=BelowAverageBundle
-Queuing solve for scenario bundle=AverageBundle
-Queuing solve for scenario bundle=AboveAverageBundle
-Waiting for bundle sub-problem solves
-Results obtained for bundle=BelowAverageBundle
-Successfully loaded solution for bundle=BelowAverageBundle
-Results obtained for bundle=AverageBundle
-Successfully loaded solution for bundle=AverageBundle
-Results obtained for bundle=AboveAverageBundle
-Successfully loaded solution for bundle=AboveAverageBundle
-Successfully completed PH iteration 30 solves
-- solution statistics:
-
- Scenario Bundle Cost Objective Objective Gap Solution Status
- BelowAverageBundle -48700.2962 -45603.2474 None Reported optimal
- AverageBundle -109192.4107 -90957.9488 None Reported optimal
- AboveAverageBundle -167043.3939 -188608.6717 None Reported optimal
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario -48700.2962 -45603.2474 None Reported None Reported
- AverageScenario -109192.4107 -90957.9488 None Reported None Reported
- AboveAverageScenario -167043.3939 -188608.6717 None Reported None Reported
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 79.4108 80.0000 79.1322 Max-Min: 0.8678 Avg: 79.5143
-
- Index: [SUGAR_BEETS] Values: 249.4427 249.1482 250.0000 Max-Min: 0.8518 Avg: 249.5303
-
- Index: [WHEAT] Values: 171.1464 170.8519 170.8678 Max-Min: 0.2946 Avg: 170.9554
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108791.5679 108806.2977 108830.5756 Max-Min: 39.0077 Avg: 108809.4804
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108809.4804 Max-Min= 39.01
-Converger=Normalized term diff value is 0.0020 - threshold reached=False
-Cumulative run-time=8.46 seconds
-
-Initiating PH iteration=31
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: 13.9480 -84.0400 70.0920 Average: 79.5143
- Index: [SUGAR_BEETS] Weights: 55.9313 134.4253 -190.3567 Average: 249.5303
- Index: [WHEAT] Weights: -69.8793 -50.3853 120.2647 Average: 170.9554
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108791.5679 108806.2977 108830.5756 Max-Min: 39.0077 Avg: 108809.4804
-------------------------------------------------
-Starting PH iteration 31 solves
-Queuing solve for scenario bundle=BelowAverageBundle
-Queuing solve for scenario bundle=AverageBundle
-Queuing solve for scenario bundle=AboveAverageBundle
-Waiting for bundle sub-problem solves
-Results obtained for bundle=BelowAverageBundle
-Successfully loaded solution for bundle=BelowAverageBundle
-Results obtained for bundle=AverageBundle
-Successfully loaded solution for bundle=AverageBundle
-Results obtained for bundle=AboveAverageBundle
-Successfully loaded solution for bundle=AboveAverageBundle
-Successfully completed PH iteration 31 solves
-- solution statistics:
-
- Scenario Bundle Cost Objective Objective Gap Solution Status
- BelowAverageBundle -48733.0436 -45600.6552 None Reported optimal
- AverageBundle -109235.6973 -91032.0707 None Reported optimal
- AboveAverageBundle -167031.7127 -188536.5353 None Reported optimal
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario -48733.0436 -45600.6552 None Reported None Reported
- AverageScenario -109235.6973 -91032.0707 None Reported None Reported
- AboveAverageScenario -167031.7127 -188536.5353 None Reported None Reported
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 79.5663 80.0000 79.3658 Max-Min: 0.6342 Avg: 79.6440
-
- Index: [SUGAR_BEETS] Values: 249.5990 249.3821 250.0000 Max-Min: 0.6179 Avg: 249.6604
-
- Index: [WHEAT] Values: 170.8347 170.6179 170.6342 Max-Min: 0.2168 Avg: 170.6956
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108821.1937 108832.0357 108849.2655 Max-Min: 28.0718 Avg: 108834.1650
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108834.1650 Max-Min= 28.07
-Converger=Normalized term diff value is 0.0015 - threshold reached=False
-Cumulative run-time=8.73 seconds
-
-Initiating PH iteration=32
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: 13.8703 -83.6841 69.8138 Average: 79.6440
- Index: [SUGAR_BEETS] Weights: 55.8699 134.1471 -190.0170 Average: 249.6604
- Index: [WHEAT] Weights: -69.7402 -50.4630 120.2033 Average: 170.6956
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108821.1937 108832.0357 108849.2655 Max-Min: 28.0718 Avg: 108834.1650
-------------------------------------------------
-Starting PH iteration 32 solves
-Queuing solve for scenario bundle=BelowAverageBundle
-Queuing solve for scenario bundle=AverageBundle
-Queuing solve for scenario bundle=AboveAverageBundle
-Waiting for bundle sub-problem solves
-Results obtained for bundle=BelowAverageBundle
-Successfully loaded solution for bundle=BelowAverageBundle
-Results obtained for bundle=AverageBundle
-Successfully loaded solution for bundle=AverageBundle
-Results obtained for bundle=AboveAverageBundle
-Successfully loaded solution for bundle=AboveAverageBundle
-Successfully completed PH iteration 32 solves
-- solution statistics:
-
- Scenario Bundle Cost Objective Objective Gap Solution Status
- BelowAverageBundle -48774.5926 -45598.5132 None Reported optimal
- AverageBundle -109290.3059 -91086.4098 None Reported optimal
- AboveAverageBundle -167016.5544 -188484.3527 None Reported optimal
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario -48774.5926 -45598.5132 None Reported None Reported
- AverageScenario -109290.3059 -91086.4098 None Reported None Reported
- AboveAverageScenario -167016.5544 -188484.3527 None Reported None Reported
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 79.7738 80.0000 79.6690 Max-Min: 0.3310 Avg: 79.8142
-
- Index: [SUGAR_BEETS] Values: 249.7904 249.6773 250.0000 Max-Min: 0.3227 Avg: 249.8226
-
- Index: [WHEAT] Values: 170.4358 170.3227 170.3310 Max-Min: 0.1131 Avg: 170.3632
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108858.8495 108864.5057 108873.5188 Max-Min: 14.6693 Avg: 108865.6247
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108865.6247 Max-Min= 14.67
-Converger=Normalized term diff value is 0.0008 - threshold reached=False
-Cumulative run-time=9.00 seconds
-
-Initiating PH iteration=33
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: 13.8298 -83.4983 69.6685 Average: 79.8142
- Index: [SUGAR_BEETS] Weights: 55.8378 134.0018 -189.8396 Average: 249.8226
- Index: [WHEAT] Weights: -69.6676 -50.5035 120.1711 Average: 170.3632
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108858.8495 108864.5057 108873.5188 Max-Min: 14.6693 Avg: 108865.6247
-------------------------------------------------
-Starting PH iteration 33 solves
-Queuing solve for scenario bundle=BelowAverageBundle
-Queuing solve for scenario bundle=AverageBundle
-Queuing solve for scenario bundle=AboveAverageBundle
-Waiting for bundle sub-problem solves
-Results obtained for bundle=BelowAverageBundle
-Successfully loaded solution for bundle=BelowAverageBundle
-Results obtained for bundle=AverageBundle
-Successfully loaded solution for bundle=AverageBundle
-Results obtained for bundle=AboveAverageBundle
-Successfully loaded solution for bundle=AboveAverageBundle
-Successfully completed PH iteration 33 solves
-- solution statistics:
-
- Scenario Bundle Cost Objective Objective Gap Solution Status
- BelowAverageBundle -48816.7800 -45597.5631 None Reported optimal
- AverageBundle -109345.7515 -91114.9099 None Reported optimal
- AboveAverageBundle -167001.1610 -188457.2402 None Reported optimal
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario -48816.7800 -45597.5631 None Reported None Reported
- AverageScenario -109345.7515 -91114.9099 None Reported None Reported
- AboveAverageScenario -167001.1610 -188457.2402 None Reported None Reported
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 79.9844 80.0000 79.9768 Max-Min: 0.0232 Avg: 79.9871
-
- Index: [SUGAR_BEETS] Values: 249.9848 249.9770 250.0000 Max-Min: 0.0230 Avg: 249.9873
-
- Index: [WHEAT] Values: 170.0308 170.0230 170.0232 Max-Min: 0.0078 Avg: 170.0256
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108897.0844 108897.4733 108898.1484 Max-Min: 1.0640 Avg: 108897.5687
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108897.5687 Max-Min= 1.06
-Converger=Normalized term diff value is 0.0001 - threshold reached=True
-Cumulative run-time=9.27 seconds
-
-Number of discrete variables fixed before final plugin calls=0 (total=0)
-Number of continuous variables fixed before final plugin calls=0 (total=3)
-PH complete
-
-Convergence history:
-Converger=Normalized term diff
-Iteration Metric Value
- 0 0.2540
- 1 0.1259
- 2 0.0816
- 3 0.0796
- 4 0.0776
- 5 0.0794
- 6 0.0668
- 7 0.0542
- 8 0.0360
- 9 0.0243
- 10 0.0256
- 11 0.0248
- 12 0.0163
- 13 0.0081
- 14 0.0168
- 15 0.0163
- 16 0.0098
- 17 0.0032
- 18 0.0026
- 19 0.0039
- 20 0.0043
- 21 0.0044
- 22 0.0040
- 23 0.0032
- 24 0.0021
- 25 0.0008
- 26 0.0005
- 27 0.0015
- 28 0.0021
- 29 0.0023
- 30 0.0020
- 31 0.0015
- 32 0.0008
- 33 0.0001
-
-
-Final number of discrete variables fixed=0 (total=0)
-Final number of continuous variables fixed=0 (total=3)
-
-Computing objective inner bound at xhat solution
-Queuing solve for scenario bundle=BelowAverageBundle
-Queuing solve for scenario bundle=AverageBundle
-Queuing solve for scenario bundle=AboveAverageBundle
-Waiting for bundle sub-problem solves
-Results obtained for bundle=BelowAverageBundle
-Successfully loaded solution for bundle=BelowAverageBundle
-Results obtained for bundle=AverageBundle
-Successfully loaded solution for bundle=AverageBundle
-Results obtained for bundle=AboveAverageBundle
-Successfully loaded solution for bundle=AboveAverageBundle
-Successfully completed xhat inner bound solves
-
- Scenario Bundle Cost Objective Objective Gap Solution Status
- BelowAverageBundle -48818.0568 -48818.0568 None Reported optimal
- AverageBundle -109347.1079 -109347.1079 None Reported optimal
- AboveAverageBundle -167001.1610 -167001.1610 None Reported optimal
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario -48818.0568 -48818.0568 None Reported None Reported
- AverageScenario -109347.1079 -109347.1079 None Reported None Reported
- AboveAverageScenario -167001.1610 -167001.1610 None Reported None Reported
-
-
-Computed objective upper bound=-108388.7752
-
-X-hat variable values:
-
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 79.9768 79.9768 79.9768
-
- Index: [SUGAR_BEETS] Values: 250.0000 250.0000 250.0000
-
- Index: [WHEAT] Values: 170.0232 170.0232 170.0232
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108898.1484 108898.1484 108898.1484 Max-Min: 0.0000 Avg: 108898.1484
-
-X-hat costs:
-
-Scenario Tree Costs
-----------------------------------------------------
-Tree Nodes:
-
- Name=AboveAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AboveAverageScenario
- Expected cost of (sub)tree rooted at node=-275899.3094
-
- Name=AverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AverageScenario
- Expected cost of (sub)tree rooted at node=-218245.2563
-
- Name=BelowAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-157716.2052
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- AboveAverageNode
- AverageNode
- BelowAverageNode
- Scenarios:
- AboveAverageScenario
- AverageScenario
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-108388.7752
-
-----------------------------------------------------
-Scenarios:
-
- Name=AboveAverageScenario
- Probability=0.3333
- Leaf Node=AboveAverageNode
- Tree node sequence:
- RootNode
- AboveAverageNode
- Stage= FirstStage Cost=108898.1484
- Stage= SecondStage Cost=-275899.3094
- Total scenario cost=-167001.1610
-
- Name=AverageScenario
- Probability=0.3333
- Leaf Node=AverageNode
- Tree node sequence:
- RootNode
- AverageNode
- Stage= FirstStage Cost=108898.1484
- Stage= SecondStage Cost=-218245.2563
- Total scenario cost=-109347.1079
-
- Name=BelowAverageScenario
- Probability=0.3333
- Leaf Node=BelowAverageNode
- Tree node sequence:
- RootNode
- BelowAverageNode
- Stage= FirstStage Cost=108898.1484
- Stage= SecondStage Cost=-157716.2052
- Total scenario cost=-48818.0568
-
-----------------------------------------------------
-
-
-Total PH execution time=9.53 seconds
-
-
-Total execution time=9.58 seconds
diff --git a/pyomo/pysp/tests/unit/baselines/farmer_quadratic_trivial_bundling_ipopt_with_phpyro.baseline b/pyomo/pysp/tests/unit/baselines/farmer_quadratic_trivial_bundling_ipopt_with_phpyro.baseline
deleted file mode 100644
index 4d871d63a4d..00000000000
--- a/pyomo/pysp/tests/unit/baselines/farmer_quadratic_trivial_bundling_ipopt_with_phpyro.baseline
+++ /dev/null
@@ -1,398 +0,0 @@
-Client assigned dispatcher with URI=PYRO::PyUtilibServer.dispatcher.cf9047d9-2b8e-486c-92cb-d72c474bec4b@localhost:44210
-Initializing PH
-
-Starting PH
-
-Initiating PH iteration=0
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 113494.4456 Max-Min=10416.67
-Converger=Normalized term diff value is 0.2540 - threshold reached=False
-Cumulative run-time=0.13 seconds
-
-Initiating PH iteration=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 113107.2232 Max-Min= 6943.89
-Converger=Normalized term diff value is 0.1259 - threshold reached=False
-Cumulative run-time=0.28 seconds
-
-Initiating PH iteration=2
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 112954.6306 Max-Min= 2234.81
-Converger=Normalized term diff value is 0.0816 - threshold reached=False
-Cumulative run-time=0.43 seconds
-
-Initiating PH iteration=3
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 112963.0257 Max-Min= 2375.31
-Converger=Normalized term diff value is 0.0796 - threshold reached=False
-Cumulative run-time=0.58 seconds
-
-Initiating PH iteration=4
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 112915.6080 Max-Min= 3047.08
-Converger=Normalized term diff value is 0.0776 - threshold reached=False
-Cumulative run-time=0.73 seconds
-
-Initiating PH iteration=5
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 112825.3936 Max-Min= 3339.81
-Converger=Normalized term diff value is 0.0794 - threshold reached=False
-Cumulative run-time=0.89 seconds
-
-Initiating PH iteration=6
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 112317.9512 Max-Min= 2019.60
-Converger=Normalized term diff value is 0.0668 - threshold reached=False
-Cumulative run-time=1.05 seconds
-
-Initiating PH iteration=7
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 111364.4668 Max-Min= 1181.85
-Converger=Normalized term diff value is 0.0542 - threshold reached=False
-Cumulative run-time=1.20 seconds
-
-Initiating PH iteration=8
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 110283.4081 Max-Min= 463.23
-Converger=Normalized term diff value is 0.0360 - threshold reached=False
-Cumulative run-time=1.34 seconds
-
-Initiating PH iteration=9
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 109399.2547 Max-Min= 363.90
-Converger=Normalized term diff value is 0.0243 - threshold reached=False
-Cumulative run-time=1.48 seconds
-
-Initiating PH iteration=10
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108834.1934 Max-Min= 933.90
-Converger=Normalized term diff value is 0.0256 - threshold reached=False
-Cumulative run-time=1.62 seconds
-
-Initiating PH iteration=11
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108575.3224 Max-Min= 918.57
-Converger=Normalized term diff value is 0.0248 - threshold reached=False
-Cumulative run-time=1.77 seconds
-
-Initiating PH iteration=12
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108513.5351 Max-Min= 591.25
-Converger=Normalized term diff value is 0.0163 - threshold reached=False
-Cumulative run-time=1.92 seconds
-
-Initiating PH iteration=13
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108528.2903 Max-Min= 175.95
-Converger=Normalized term diff value is 0.0081 - threshold reached=False
-Cumulative run-time=2.07 seconds
-
-Initiating PH iteration=14
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108561.6583 Max-Min= 274.77
-Converger=Normalized term diff value is 0.0168 - threshold reached=False
-Cumulative run-time=2.22 seconds
-
-Initiating PH iteration=15
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108604.0585 Max-Min= 295.14
-Converger=Normalized term diff value is 0.0163 - threshold reached=False
-Cumulative run-time=2.37 seconds
-
-Initiating PH iteration=16
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108667.3591 Max-Min= 127.67
-Converger=Normalized term diff value is 0.0098 - threshold reached=False
-Cumulative run-time=2.55 seconds
-
-Initiating PH iteration=17
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108758.4247 Max-Min= 59.69
-Converger=Normalized term diff value is 0.0032 - threshold reached=False
-Cumulative run-time=2.71 seconds
-
-Initiating PH iteration=18
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108868.1288 Max-Min= 101.79
-Converger=Normalized term diff value is 0.0026 - threshold reached=False
-Cumulative run-time=2.85 seconds
-
-Initiating PH iteration=19
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108975.3101 Max-Min= 73.41
-Converger=Normalized term diff value is 0.0039 - threshold reached=False
-Cumulative run-time=3.01 seconds
-
-Initiating PH iteration=20
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 109057.4155 Max-Min= 39.47
-Converger=Normalized term diff value is 0.0043 - threshold reached=False
-Cumulative run-time=3.15 seconds
-
-Initiating PH iteration=21
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 109099.7155 Max-Min= 87.57
-Converger=Normalized term diff value is 0.0044 - threshold reached=False
-Cumulative run-time=3.30 seconds
-
-Initiating PH iteration=22
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 109099.1248 Max-Min= 104.22
-Converger=Normalized term diff value is 0.0040 - threshold reached=False
-Cumulative run-time=3.46 seconds
-
-Initiating PH iteration=23
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 109062.8329 Max-Min= 88.54
-Converger=Normalized term diff value is 0.0032 - threshold reached=False
-Cumulative run-time=3.62 seconds
-
-Initiating PH iteration=24
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 109004.1163 Max-Min= 54.49
-Converger=Normalized term diff value is 0.0021 - threshold reached=False
-Cumulative run-time=3.76 seconds
-
-Initiating PH iteration=25
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108937.8045 Max-Min= 16.89
-Converger=Normalized term diff value is 0.0008 - threshold reached=False
-Cumulative run-time=3.92 seconds
-
-Initiating PH iteration=26
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108876.8829 Max-Min= 14.27
-Converger=Normalized term diff value is 0.0005 - threshold reached=False
-Cumulative run-time=4.06 seconds
-
-Initiating PH iteration=27
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108830.6209 Max-Min= 34.81
-Converger=Normalized term diff value is 0.0015 - threshold reached=False
-Cumulative run-time=4.22 seconds
-
-Initiating PH iteration=28
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108803.9664 Max-Min= 44.57
-Converger=Normalized term diff value is 0.0021 - threshold reached=False
-Cumulative run-time=4.36 seconds
-
-Initiating PH iteration=29
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108797.7672 Max-Min= 45.24
-Converger=Normalized term diff value is 0.0023 - threshold reached=False
-Cumulative run-time=4.51 seconds
-
-Initiating PH iteration=30
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108809.4804 Max-Min= 39.01
-Converger=Normalized term diff value is 0.0020 - threshold reached=False
-Cumulative run-time=4.66 seconds
-
-Initiating PH iteration=31
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108834.1650 Max-Min= 28.07
-Converger=Normalized term diff value is 0.0015 - threshold reached=False
-Cumulative run-time=4.81 seconds
-
-Initiating PH iteration=32
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108865.6247 Max-Min= 14.67
-Converger=Normalized term diff value is 0.0008 - threshold reached=False
-Cumulative run-time=4.96 seconds
-
-Initiating PH iteration=33
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108897.5687 Max-Min= 1.06
-Converger=Normalized term diff value is 0.0001 - threshold reached=True
-Cumulative run-time=5.14 seconds
-
-Number of discrete variables fixed before final plugin calls=0 (total=0)
-Number of continuous variables fixed before final plugin calls=0 (total=3)
-PH complete
-
-Convergence history:
-Converger=Normalized term diff
-Iteration Metric Value
- 0 0.2540
- 1 0.1259
- 2 0.0816
- 3 0.0796
- 4 0.0776
- 5 0.0794
- 6 0.0668
- 7 0.0542
- 8 0.0360
- 9 0.0243
- 10 0.0256
- 11 0.0248
- 12 0.0163
- 13 0.0081
- 14 0.0168
- 15 0.0163
- 16 0.0098
- 17 0.0032
- 18 0.0026
- 19 0.0039
- 20 0.0043
- 21 0.0044
- 22 0.0040
- 23 0.0032
- 24 0.0021
- 25 0.0008
- 26 0.0005
- 27 0.0015
- 28 0.0021
- 29 0.0023
- 30 0.0020
- 31 0.0015
- 32 0.0008
- 33 0.0001
-
-
-Final number of discrete variables fixed=0 (total=0)
-Final number of continuous variables fixed=0 (total=3)
-
-Computing objective inner bound at xhat solution
-
-Computed objective upper bound=-108388.7752
-
-X-hat variable values:
-
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 79.9768 79.9768 79.9768
-
- Index: [SUGAR_BEETS] Values: 250.0000 250.0000 250.0000
-
- Index: [WHEAT] Values: 170.0232 170.0232 170.0232
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108898.1484 108898.1484 108898.1484 Max-Min: 0.0000 Avg: 108898.1484
-
-X-hat costs:
-
-Scenario Tree Costs
-----------------------------------------------------
-Tree Nodes:
-
- Name=AboveAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AboveAverageScenario
- Expected cost of (sub)tree rooted at node=-275899.3094
-
- Name=AverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AverageScenario
- Expected cost of (sub)tree rooted at node=-218245.2563
-
- Name=BelowAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-157716.2052
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- AboveAverageNode
- AverageNode
- BelowAverageNode
- Scenarios:
- AboveAverageScenario
- AverageScenario
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-108388.7752
-
-----------------------------------------------------
-Scenarios:
-
- Name=AboveAverageScenario
- Probability=0.3333
- Leaf Node=AboveAverageNode
- Tree node sequence:
- RootNode
- AboveAverageNode
- Stage= FirstStage Cost=108898.1484
- Stage= SecondStage Cost=-275899.3094
- Total scenario cost=-167001.1610
-
- Name=AverageScenario
- Probability=0.3333
- Leaf Node=AverageNode
- Tree node sequence:
- RootNode
- AverageNode
- Stage= FirstStage Cost=108898.1484
- Stage= SecondStage Cost=-218245.2563
- Total scenario cost=-109347.1079
-
- Name=BelowAverageScenario
- Probability=0.3333
- Leaf Node=BelowAverageNode
- Tree node sequence:
- RootNode
- BelowAverageNode
- Stage= FirstStage Cost=108898.1484
- Stage= SecondStage Cost=-157716.2052
- Total scenario cost=-48818.0568
-
-----------------------------------------------------
-
-
-Total PH execution time=5.40 seconds
-
-
-Total execution time=5.56 seconds
diff --git a/pyomo/pysp/tests/unit/baselines/farmer_quadratic_verbose_cplex.baseline b/pyomo/pysp/tests/unit/baselines/farmer_quadratic_verbose_cplex.baseline
deleted file mode 100644
index 716fa9350ac..00000000000
--- a/pyomo/pysp/tests/unit/baselines/farmer_quadratic_verbose_cplex.baseline
+++ /dev/null
@@ -1,1989 +0,0 @@
-Importing model and scenario tree files
-Time to import model and scenario tree structure files=0.01 seconds
-Scenario Tree Detail
-----------------------------------------------------
-Tree Nodes:
-
- Name=AboveAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AboveAverageScenario
-
- Name=AverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AverageScenario
-
- Name=BelowAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- BelowAverageScenario
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- AboveAverageNode
- AverageNode
- BelowAverageNode
- Scenarios:
- AboveAverageScenario
- AverageScenario
- BelowAverageScenario
-
-----------------------------------------------------
-Stages:
- Name=FirstStage
- Tree Nodes:
- RootNode
- Variables:
- DevotedAcreage : [*]
- Cost Variable:
- FirstStageCost
-
- Name=SecondStage
- Tree Nodes:
- AboveAverageNode
- AverageNode
- BelowAverageNode
- Variables:
- QuantityPurchased : [*]
- QuantitySubQuotaSold : [*]
- QuantitySuperQuotaSold : [*]
- Cost Variable:
- SecondStageCost
-
-----------------------------------------------------
-Scenarios:
- Name=AboveAverageScenario
- Probability=0.3333
- Leaf node=AboveAverageNode
- Tree node sequence:
- RootNode
- AboveAverageNode
-
- Name=AverageScenario
- Probability=0.3333
- Leaf node=AverageNode
- Tree node sequence:
- RootNode
- AverageNode
-
- Name=BelowAverageScenario
- Probability=0.3333
- Leaf node=BelowAverageNode
- Tree node sequence:
- RootNode
- BelowAverageNode
-
-----------------------------------------------------
-Scenario tree is valid!
-Scenario-based instance initialization enabled
-Creating instance for scenario=BelowAverageScenario
-Data for scenario=BelowAverageScenario loads from file=/home/jwatson/sp/pyomo/pyomo/examples/pysp/farmer/scenariodata/BelowAverageScenario.dat
-Creating instance for scenario=AverageScenario
-Data for scenario=AverageScenario loads from file=/home/jwatson/sp/pyomo/pyomo/examples/pysp/farmer/scenariodata/AverageScenario.dat
-Creating instance for scenario=AboveAverageScenario
-Data for scenario=AboveAverageScenario loads from file=/home/jwatson/sp/pyomo/pyomo/examples/pysp/farmer/scenariodata/AboveAverageScenario.dat
-Time to construct scenario instances=0.02 seconds
-Time link scenario tree with instances=0.00 seconds
-Constructing solver manager of type=serial
-Constructing solver type=cplex
-PH solver configuration:
- Max iterations=100
- Async mode=False
- Async buffer length=1
- Default global rho=1.0
- Over-relaxation enabled=False
- Sub-problem solver type='cplex'
- Keep solver files? False
- Output solver results? False
- Output solver log? False
- Output times? False
-Initializing PH
-
-Invoking pre-initialization PH plugins
-Creating weight, average, and rho parameter vectors for scenario instances
-Creating deterministic SymbolMaps for scenario instances
-PH successfully created model instances for all scenarios
-PH is successfully initialized
-Invoking post-initialization PH plugins
-Starting PH
-
-Initiating PH iteration=0
-------------------------------------------------
-Starting PH iteration 0 solves
-Queuing solve for scenario=BelowAverageScenario
-Queuing solve for scenario=AverageScenario
-Queuing solve for scenario=AboveAverageScenario
-Waiting for scenario sub-problem solves
-Results obtained for scenario=BelowAverageScenario
-Successfully loaded solution for scenario=BelowAverageScenario - waiting on 2 more
-Results obtained for scenario=AverageScenario
-Successfully loaded solution for scenario=AverageScenario - waiting on 1 more
-Results obtained for scenario=AboveAverageScenario
-Successfully loaded solution for scenario=AboveAverageScenario - waiting on 0 more
-Successfully completed PH iteration 0 solves
-- solution statistics:
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario -59950.0000 -59950.0000 0.0000 optimal
- AverageScenario -118600.0000 -118600.0000 0.0000 optimal
- AboveAverageScenario -167666.6667 -167666.6667 0.0000 optimal
-
-Total number of non-stale discrete instance variables=0
-Total number of non-stale continuous instance variables=3
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 25.0000 80.0000 66.6667 Max-Min: 55.0000 Avg: 57.2222
-
- Index: [SUGAR_BEETS] Values: 375.0000 300.0000 250.0000 Max-Min: 125.0000 Avg: 308.3333
-
- Index: [WHEAT] Values: 100.0000 120.0000 183.3333 Max-Min: 83.3333 Avg: 134.4444
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 118250.0000 114400.0000 107833.3333 Max-Min: 10416.6667 Avg: 113494.4445
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 113494.4444 Max-Min=10416.67
-Converger=Normalized term diff value is 0.2540 - threshold reached=False
-Cumulative run-time=0.07 seconds
-
-Initiating PH iteration=1
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: -32.2222 22.7778 9.4444 Average: 57.2222
- Index: [SUGAR_BEETS] Weights: 66.6667 -8.3333 -58.3333 Average: 308.3333
- Index: [WHEAT] Weights: -34.4444 -14.4444 48.8889 Average: 134.4444
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 118250.0000 114400.0000 107833.3333 Max-Min: 10416.6667 Avg: 113494.4445
-------------------------------------------------
-Starting PH iteration 1 solves
-Queuing solve for scenario=BelowAverageScenario
-Queuing solve for scenario=AverageScenario
-Queuing solve for scenario=AboveAverageScenario
-Waiting for scenario sub-problem solves
-Results obtained for scenario=BelowAverageScenario
-Successfully loaded solution for scenario=BelowAverageScenario - waiting on 2 more
-Results obtained for scenario=AverageScenario
-Successfully loaded solution for scenario=AverageScenario - waiting on 1 more
-Results obtained for scenario=AboveAverageScenario
-Successfully loaded solution for scenario=AboveAverageScenario - waiting on 0 more
-Successfully completed PH iteration 1 solves
-- solution statistics:
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario -56722.9993 -41924.1388 0.0000 optimal
- AverageScenario -118599.9999 -120612.6542 0.0000 optimal
- AboveAverageScenario -166944.4439 -169924.9996 0.0000 optimal
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 100.0000 80.0000 81.1111 Max-Min: 20.0000 Avg: 87.0370
-
- Index: [SUGAR_BEETS] Values: 299.3889 300.0000 250.0000 Max-Min: 50.0000 Avg: 283.1296
-
- Index: [WHEAT] Values: 100.6111 120.0000 168.8889 Max-Min: 68.2778 Avg: 129.8333
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 115932.7772 114400.0000 108988.8890 Max-Min: 6943.8882 Avg: 113107.2221
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 113107.2221 Max-Min= 6943.89
-Converger=Normalized term diff value is 0.1259 - threshold reached=False
-Cumulative run-time=0.16 seconds
-
-Initiating PH iteration=2
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: -19.2593 15.7407 3.5185 Average: 87.0370
- Index: [SUGAR_BEETS] Weights: 82.9259 8.5370 -91.4630 Average: 283.1296
- Index: [WHEAT] Weights: -63.6667 -24.2778 87.9444 Average: 129.8333
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 115932.7772 114400.0000 108988.8890 Max-Min: 6943.8882 Avg: 113107.2221
-------------------------------------------------
-Starting PH iteration 2 solves
-Queuing solve for scenario=BelowAverageScenario
-Queuing solve for scenario=AverageScenario
-Queuing solve for scenario=AboveAverageScenario
-Waiting for scenario sub-problem solves
-Results obtained for scenario=BelowAverageScenario
-Successfully loaded solution for scenario=BelowAverageScenario - waiting on 2 more
-Results obtained for scenario=AverageScenario
-Successfully loaded solution for scenario=AverageScenario - waiting on 1 more
-Results obtained for scenario=AboveAverageScenario
-Successfully loaded solution for scenario=AboveAverageScenario - waiting on 0 more
-Successfully completed PH iteration 2 solves
-- solution statistics:
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario -52560.3335 -40675.6752 0.0000 optimal
- AverageScenario -118599.9997 -117477.5506 0.0000 optimal
- AboveAverageScenario -164959.2593 -174919.3259 0.0000 optimal
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 100.0000 80.0000 120.8148 Max-Min: 40.8148 Avg: 100.2716
-
- Index: [SUGAR_BEETS] Values: 266.3519 300.0000 250.0000 Max-Min: 50.0000 Avg: 272.1173
-
- Index: [WHEAT] Values: 133.6481 120.0000 129.1852 Max-Min: 13.6481 Avg: 127.6111
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 112298.7040 114400.0000 112165.1850 Max-Min: 2234.8150 Avg: 112954.6297
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 112954.6296 Max-Min= 2234.82
-Converger=Normalized term diff value is 0.0816 - threshold reached=False
-Cumulative run-time=0.26 seconds
-
-Initiating PH iteration=3
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: -19.5309 -4.5309 24.0617 Average: 100.2716
- Index: [SUGAR_BEETS] Weights: 77.1605 36.4198 -113.5802 Average: 272.1173
- Index: [WHEAT] Weights: -57.6296 -31.8889 89.5185 Average: 127.6111
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 112298.7040 114400.0000 112165.1850 Max-Min: 2234.8150 Avg: 112954.6297
-------------------------------------------------
-Starting PH iteration 3 solves
-Queuing solve for scenario=BelowAverageScenario
-Queuing solve for scenario=AverageScenario
-Queuing solve for scenario=AboveAverageScenario
-Waiting for scenario sub-problem solves
-Results obtained for scenario=BelowAverageScenario
-Successfully loaded solution for scenario=BelowAverageScenario - waiting on 2 more
-Results obtained for scenario=AverageScenario
-Successfully loaded solution for scenario=AverageScenario - waiting on 1 more
-Results obtained for scenario=AboveAverageScenario
-Successfully loaded solution for scenario=AboveAverageScenario - waiting on 0 more
-Successfully completed PH iteration 3 solves
-- solution statistics:
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario -52750.1114 -41631.0614 0.0000 optimal
- AverageScenario -118599.9999 -111240.0534 0.0000 optimal
- AboveAverageScenario -165047.0678 -178429.0876 0.0000 optimal
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 100.0000 80.0000 119.0586 Max-Min: 39.0586 Avg: 99.6862
-
- Index: [SUGAR_BEETS] Values: 267.8580 300.0000 250.0000 Max-Min: 50.0000 Avg: 272.6193
-
- Index: [WHEAT] Values: 132.1420 120.0000 130.9414 Max-Min: 12.1420 Avg: 127.6944
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 112464.3830 114400.0000 112024.6913 Max-Min: 2375.3087 Avg: 112963.0248
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 112963.0248 Max-Min= 2375.31
-Converger=Normalized term diff value is 0.0796 - threshold reached=False
-Cumulative run-time=0.35 seconds
-
-Initiating PH iteration=4
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: -19.2171 -24.2171 43.4342 Average: 99.6862
- Index: [SUGAR_BEETS] Weights: 72.3992 63.8004 -136.1996 Average: 272.6193
- Index: [WHEAT] Weights: -53.1821 -39.5833 92.7654 Average: 127.6944
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 112464.3830 114400.0000 112024.6913 Max-Min: 2375.3087 Avg: 112963.0248
-------------------------------------------------
-Starting PH iteration 4 solves
-Queuing solve for scenario=BelowAverageScenario
-Queuing solve for scenario=AverageScenario
-Queuing solve for scenario=AboveAverageScenario
-Waiting for scenario sub-problem solves
-Results obtained for scenario=BelowAverageScenario
-Successfully loaded solution for scenario=BelowAverageScenario - waiting on 2 more
-Results obtained for scenario=AverageScenario
-Successfully loaded solution for scenario=AverageScenario - waiting on 1 more
-Results obtained for scenario=AboveAverageScenario
-Successfully loaded solution for scenario=AboveAverageScenario - waiting on 0 more
-Successfully completed PH iteration 4 solves
-- solution statistics:
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario -53356.6481 -42308.6039 0.0000 optimal
- AverageScenario -118599.9999 -105549.0171 0.0000 optimal
- AboveAverageScenario -165466.9237 -181400.6992 0.0000 optimal
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 100.0000 80.0000 110.6615 Max-Min: 30.6615 Avg: 96.8872
-
- Index: [SUGAR_BEETS] Values: 272.6718 300.0000 250.0000 Max-Min: 50.0000 Avg: 274.2239
-
- Index: [WHEAT] Values: 127.3282 120.0000 139.3385 Max-Min: 19.3385 Avg: 128.8889
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 112993.8993 114400.0000 111352.9219 Max-Min: 3047.0781 Avg: 112915.6071
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 112915.6071 Max-Min= 3047.08
-Converger=Normalized term diff value is 0.0776 - threshold reached=False
-Cumulative run-time=0.44 seconds
-
-Initiating PH iteration=5
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: -16.1043 -41.1043 57.2085 Average: 96.8872
- Index: [SUGAR_BEETS] Weights: 70.8471 89.5765 -160.4235 Average: 274.2239
- Index: [WHEAT] Weights: -54.7428 -48.4722 103.2150 Average: 128.8889
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 112993.8993 114400.0000 111352.9219 Max-Min: 3047.0781 Avg: 112915.6071
-------------------------------------------------
-Starting PH iteration 5 solves
-Queuing solve for scenario=BelowAverageScenario
-Queuing solve for scenario=AverageScenario
-Queuing solve for scenario=AboveAverageScenario
-Waiting for scenario sub-problem solves
-Results obtained for scenario=BelowAverageScenario
-Successfully loaded solution for scenario=BelowAverageScenario - waiting on 2 more
-Results obtained for scenario=AverageScenario
-Successfully loaded solution for scenario=AverageScenario - waiting on 1 more
-Results obtained for scenario=AboveAverageScenario
-Successfully loaded solution for scenario=AboveAverageScenario - waiting on 0 more
-Successfully completed PH iteration 5 solves
-- solution statistics:
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario -53381.9474 -42612.1540 0.0000 optimal
- AverageScenario -118599.9995 -100317.7674 0.0000 optimal
- AboveAverageScenario -165649.8797 -184430.7274 0.0000 optimal
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 100.0000 80.0000 107.0024 Max-Min: 27.0024 Avg: 95.6675
-
- Index: [SUGAR_BEETS] Values: 272.8726 300.0000 250.0000 Max-Min: 50.0000 Avg: 274.2909
-
- Index: [WHEAT] Values: 127.1274 120.0000 142.9976 Max-Min: 22.9976 Avg: 130.0417
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 113015.9860 114399.9998 111060.1921 Max-Min: 3339.8077 Avg: 112825.3926
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 112825.3926 Max-Min= 3339.81
-Converger=Normalized term diff value is 0.0794 - threshold reached=False
-Cumulative run-time=0.54 seconds
-
-Initiating PH iteration=6
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: -11.7717 -56.7717 68.5434 Average: 95.6675
- Index: [SUGAR_BEETS] Weights: 69.4288 115.2856 -184.7144 Average: 274.2909
- Index: [WHEAT] Weights: -57.6571 -58.5139 116.1710 Average: 130.0417
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 113015.9860 114399.9998 111060.1921 Max-Min: 3339.8077 Avg: 112825.3926
-------------------------------------------------
-Starting PH iteration 6 solves
-Queuing solve for scenario=BelowAverageScenario
-Queuing solve for scenario=AverageScenario
-Queuing solve for scenario=AboveAverageScenario
-Waiting for scenario sub-problem solves
-Results obtained for scenario=BelowAverageScenario
-Successfully loaded solution for scenario=BelowAverageScenario - waiting on 2 more
-Results obtained for scenario=AverageScenario
-Successfully loaded solution for scenario=AverageScenario - waiting on 1 more
-Results obtained for scenario=AboveAverageScenario
-Successfully loaded solution for scenario=AboveAverageScenario - waiting on 0 more
-Successfully completed PH iteration 6 solves
-- solution statistics:
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario -53219.2909 -42930.7281 0.0000 optimal
- AverageScenario -116329.0977 -95224.7694 0.0000 optimal
- AboveAverageScenario -165668.6669 -187438.9477 0.0000 optimal
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 100.0000 80.0000 106.6267 Max-Min: 26.6267 Avg: 95.5422
-
- Index: [SUGAR_BEETS] Values: 271.5817 287.7249 250.0000 Max-Min: 37.7249 Avg: 269.7688
-
- Index: [WHEAT] Values: 128.4183 132.2751 143.3733 Max-Min: 14.9550 Avg: 134.6889
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 112873.9843 113049.7339 111030.1326 Max-Min: 2019.6013 Avg: 112317.9502
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 112317.9502 Max-Min= 2019.60
-Converger=Normalized term diff value is 0.0668 - threshold reached=False
-Cumulative run-time=0.63 seconds
-
-Initiating PH iteration=7
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: -7.3139 -72.3139 79.6279 Average: 95.5422
- Index: [SUGAR_BEETS] Weights: 71.2416 133.2416 -204.4832 Average: 269.7688
- Index: [WHEAT] Weights: -63.9277 -60.9277 124.8554 Average: 134.6889
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 112873.9843 113049.7339 111030.1326 Max-Min: 2019.6013 Avg: 112317.9502
-------------------------------------------------
-Starting PH iteration 7 solves
-Queuing solve for scenario=BelowAverageScenario
-Queuing solve for scenario=AverageScenario
-Queuing solve for scenario=AboveAverageScenario
-Waiting for scenario sub-problem solves
-Results obtained for scenario=BelowAverageScenario
-Successfully loaded solution for scenario=BelowAverageScenario - waiting on 2 more
-Results obtained for scenario=AverageScenario
-Successfully loaded solution for scenario=AverageScenario - waiting on 1 more
-Results obtained for scenario=AboveAverageScenario
-Successfully loaded solution for scenario=AboveAverageScenario - waiting on 0 more
-Successfully completed PH iteration 7 solves
-- solution statistics:
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario -52132.3683 -42855.4274 0.0000 optimal
- AverageScenario -113596.7312 -91769.7430 0.0000 optimal
- AboveAverageScenario -165847.9786 -190116.4068 0.0000 optimal
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 100.0000 80.0000 103.0404 Max-Min: 23.0404 Avg: 94.3468
-
- Index: [SUGAR_BEETS] Values: 262.9553 272.9553 250.0000 Max-Min: 22.9553 Avg: 261.9702
-
- Index: [WHEAT] Values: 137.0447 147.0447 146.9596 Max-Min: 10.0000 Avg: 143.6830
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 111925.0836 111425.0836 110743.2308 Max-Min: 1181.8528 Avg: 111364.4660
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 111364.4660 Max-Min= 1181.85
-Converger=Normalized term diff value is 0.0542 - threshold reached=False
-Cumulative run-time=0.72 seconds
-
-Initiating PH iteration=8
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: -1.6607 -86.6607 88.3215 Average: 94.3468
- Index: [SUGAR_BEETS] Weights: 72.2267 144.2267 -216.4534 Average: 261.9702
- Index: [WHEAT] Weights: -70.5660 -57.5660 128.1320 Average: 143.6830
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 111925.0836 111425.0836 110743.2308 Max-Min: 1181.8528 Avg: 111364.4660
-------------------------------------------------
-Starting PH iteration 8 solves
-Queuing solve for scenario=BelowAverageScenario
-Queuing solve for scenario=AverageScenario
-Queuing solve for scenario=AboveAverageScenario
-Waiting for scenario sub-problem solves
-Results obtained for scenario=BelowAverageScenario
-Successfully loaded solution for scenario=BelowAverageScenario - waiting on 2 more
-Results obtained for scenario=AverageScenario
-Successfully loaded solution for scenario=AverageScenario - waiting on 1 more
-Results obtained for scenario=AboveAverageScenario
-Successfully loaded solution for scenario=AboveAverageScenario - waiting on 0 more
-Successfully completed PH iteration 8 solves
-- solution statistics:
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario -50594.1536 -43087.2755 0.0000 optimal
- AverageScenario -110943.7960 -89612.4133 0.0000 optimal
- AboveAverageScenario -166238.1422 -191976.5270 0.0000 optimal
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 100.0000 82.6742 95.2371 Max-Min: 17.3258 Avg: 92.6371
-
- Index: [SUGAR_BEETS] Values: 250.7473 259.4101 250.0000 Max-Min: 9.4101 Avg: 253.3858
-
- Index: [WHEAT] Values: 149.2527 157.9156 154.7628 Max-Min: 8.6629 Avg: 153.9771
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 110582.1976 110149.0525 110118.9721 Max-Min: 463.2255 Avg: 110283.4074
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 110283.4074 Max-Min= 463.23
-Converger=Normalized term diff value is 0.0360 - threshold reached=False
-Cumulative run-time=0.82 seconds
-
-Initiating PH iteration=9
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: 5.7022 -96.6236 90.9215 Average: 92.6371
- Index: [SUGAR_BEETS] Weights: 69.5882 150.2511 -219.8392 Average: 253.3858
- Index: [WHEAT] Weights: -75.2903 -53.6274 128.9177 Average: 153.9771
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 110582.1976 110149.0525 110118.9721 Max-Min: 463.2255 Avg: 110283.4074
-------------------------------------------------
-Starting PH iteration 9 solves
-Queuing solve for scenario=BelowAverageScenario
-Queuing solve for scenario=AverageScenario
-Queuing solve for scenario=AboveAverageScenario
-Waiting for scenario sub-problem solves
-Results obtained for scenario=BelowAverageScenario
-Successfully loaded solution for scenario=BelowAverageScenario - waiting on 2 more
-Results obtained for scenario=AverageScenario
-Successfully loaded solution for scenario=AverageScenario - waiting on 1 more
-Results obtained for scenario=AboveAverageScenario
-Successfully loaded solution for scenario=AboveAverageScenario - waiting on 0 more
-Successfully completed PH iteration 9 solves
-- solution statistics:
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario -49273.4045 -43880.3122 0.0000 optimal
- AverageScenario -107787.2503 -88509.4663 0.0000 optimal
- AboveAverageScenario -166583.5915 -192625.4838 0.0000 optimal
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 100.0000 90.9274 88.3281 Max-Min: 11.6719 Avg: 93.0852
-
- Index: [SUGAR_BEETS] Values: 240.2651 244.8014 250.0000 Max-Min: 9.7349 Avg: 245.0222
-
- Index: [WHEAT] Values: 159.7349 164.2712 161.6719 Max-Min: 4.5363 Avg: 161.8926
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 109429.1627 109202.3486 109566.2514 Max-Min: 363.9028 Avg: 109399.2542
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 109399.2542 Max-Min= 363.90
-Converger=Normalized term diff value is 0.0243 - threshold reached=False
-Cumulative run-time=0.92 seconds
-
-Initiating PH iteration=10
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: 12.6170 -98.7814 86.1644 Average: 93.0852
- Index: [SUGAR_BEETS] Weights: 64.8311 150.0303 -214.8614 Average: 245.0222
- Index: [WHEAT] Weights: -77.4481 -51.2489 128.6970 Average: 161.8926
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 109429.1627 109202.3486 109566.2514 Max-Min: 363.9028 Avg: 109399.2542
-------------------------------------------------
-Starting PH iteration 10 solves
-Queuing solve for scenario=BelowAverageScenario
-Queuing solve for scenario=AverageScenario
-Queuing solve for scenario=AboveAverageScenario
-Waiting for scenario sub-problem solves
-Results obtained for scenario=BelowAverageScenario
-Successfully loaded solution for scenario=BelowAverageScenario - waiting on 2 more
-Results obtained for scenario=AverageScenario
-Successfully loaded solution for scenario=AverageScenario - waiting on 1 more
-Results obtained for scenario=AboveAverageScenario
-Successfully loaded solution for scenario=AboveAverageScenario - waiting on 0 more
-Successfully completed PH iteration 10 solves
-- solution statistics:
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario -48295.4051 -44838.3975 0.0000 optimal
- AverageScenario -106137.5026 -88506.9755 0.0000 optimal
- AboveAverageScenario -166656.8719 -191859.9413 0.0000 optimal
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 94.4682 93.5333 86.8625 Max-Min: 7.6057 Avg: 91.6213
-
- Index: [SUGAR_BEETS] Values: 236.1911 236.6585 250.0000 Max-Min: 13.8089 Avg: 240.9499
-
- Index: [WHEAT] Values: 169.3407 169.8082 163.1375 Max-Min: 6.6707 Avg: 167.4288
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108538.4753 108515.1010 109449.0028 Max-Min: 933.9018 Avg: 108834.1930
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108834.1930 Max-Min= 933.90
-Converger=Normalized term diff value is 0.0256 - threshold reached=False
-Cumulative run-time=1.01 seconds
-
-Initiating PH iteration=11
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: 15.4638 -96.8695 81.4056 Average: 91.6213
- Index: [SUGAR_BEETS] Weights: 60.0723 145.7390 -205.8113 Average: 240.9499
- Index: [WHEAT] Weights: -75.5362 -48.8695 124.4056 Average: 167.4288
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108538.4753 108515.1010 109449.0028 Max-Min: 933.9018 Avg: 108834.1930
-------------------------------------------------
-Starting PH iteration 11 solves
-Queuing solve for scenario=BelowAverageScenario
-Queuing solve for scenario=AverageScenario
-Queuing solve for scenario=AboveAverageScenario
-Waiting for scenario sub-problem solves
-Results obtained for scenario=BelowAverageScenario
-Successfully loaded solution for scenario=BelowAverageScenario - waiting on 2 more
-Results obtained for scenario=AverageScenario
-Successfully loaded solution for scenario=AverageScenario - waiting on 1 more
-Results obtained for scenario=AboveAverageScenario
-Successfully loaded solution for scenario=AboveAverageScenario - waiting on 0 more
-Successfully completed PH iteration 11 solves
-- solution statistics:
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario -48019.8029 -45436.2580 0.0000 optimal
- AverageScenario -106363.6874 -89002.9246 0.0000 optimal
- AboveAverageScenario -166820.1853 -190692.5567 0.0000 optimal
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 90.1575 90.1575 83.5963 Max-Min: 6.5612 Avg: 87.9704
-
- Index: [SUGAR_BEETS] Values: 236.8776 236.8776 250.0000 Max-Min: 13.1224 Avg: 241.2517
-
- Index: [WHEAT] Values: 172.9649 172.9649 166.4037 Max-Min: 6.5612 Avg: 170.7779
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108269.1319 108269.1318 109187.7021 Max-Min: 918.5702 Avg: 108575.3219
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108575.3219 Max-Min= 918.57
-Converger=Normalized term diff value is 0.0248 - threshold reached=False
-Cumulative run-time=1.10 seconds
-
-Initiating PH iteration=12
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: 17.6509 -94.6824 77.0315 Average: 87.9704
- Index: [SUGAR_BEETS] Weights: 55.6982 141.3648 -197.0630 Average: 241.2517
- Index: [WHEAT] Weights: -73.3491 -46.6824 120.0315 Average: 170.7779
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108269.1319 108269.1318 109187.7021 Max-Min: 918.5702 Avg: 108575.3219
-------------------------------------------------
-Starting PH iteration 12 solves
-Queuing solve for scenario=BelowAverageScenario
-Queuing solve for scenario=AverageScenario
-Queuing solve for scenario=AboveAverageScenario
-Waiting for scenario sub-problem solves
-Results obtained for scenario=BelowAverageScenario
-Successfully loaded solution for scenario=BelowAverageScenario - waiting on 2 more
-Results obtained for scenario=AverageScenario
-Successfully loaded solution for scenario=AverageScenario - waiting on 1 more
-Results obtained for scenario=AboveAverageScenario
-Successfully loaded solution for scenario=AboveAverageScenario - waiting on 0 more
-Successfully completed PH iteration 12 solves
-- solution statistics:
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario -48118.5854 -45935.9131 0.0000 optimal
- AverageScenario -107549.8351 -89502.5805 0.0000 optimal
- AboveAverageScenario -166995.1849 -189627.5495 0.0000 optimal
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 84.3195 84.3195 80.0963 Max-Min: 4.2232 Avg: 82.9118
-
- Index: [SUGAR_BEETS] Values: 241.5536 241.5536 250.0000 Max-Min: 8.4464 Avg: 244.3690
-
- Index: [WHEAT] Values: 174.1269 174.1269 169.9037 Max-Min: 4.2232 Avg: 172.7192
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108316.4508 108316.4509 108907.7023 Max-Min: 591.2515 Avg: 108513.5347
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108513.5347 Max-Min= 591.25
-Converger=Normalized term diff value is 0.0163 - threshold reached=False
-Cumulative run-time=1.19 seconds
-
-Initiating PH iteration=13
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: 19.0587 -93.2747 74.2160 Average: 82.9118
- Index: [SUGAR_BEETS] Weights: 52.8827 138.5493 -191.4320 Average: 244.3690
- Index: [WHEAT] Weights: -71.9413 -45.2747 117.2160 Average: 172.7192
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108316.4508 108316.4509 108907.7023 Max-Min: 591.2515 Avg: 108513.5347
-------------------------------------------------
-Starting PH iteration 13 solves
-Queuing solve for scenario=BelowAverageScenario
-Queuing solve for scenario=AverageScenario
-Queuing solve for scenario=AboveAverageScenario
-Waiting for scenario sub-problem solves
-Results obtained for scenario=BelowAverageScenario
-Successfully loaded solution for scenario=BelowAverageScenario - waiting on 2 more
-Results obtained for scenario=AverageScenario
-Successfully loaded solution for scenario=AverageScenario - waiting on 1 more
-Results obtained for scenario=AboveAverageScenario
-Successfully loaded solution for scenario=AboveAverageScenario - waiting on 0 more
-Successfully completed PH iteration 13 solves
-- solution statistics:
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario -48322.9415 -46297.1991 0.0000 optimal
- AverageScenario -108686.3876 -89860.4092 0.0000 optimal
- AboveAverageScenario -167170.1858 -188981.7981 0.0000 optimal
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 77.8531 80.0000 76.5963 Max-Min: 3.4037 Avg: 78.1498
-
- Index: [SUGAR_BEETS] Values: 247.4864 246.4129 250.0000 Max-Min: 3.5871 Avg: 247.9664
-
- Index: [WHEAT] Values: 174.6605 173.5871 173.4037 Max-Min: 1.2568 Avg: 173.8838
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108451.7474 108505.4201 108627.7021 Max-Min: 175.9546 Avg: 108528.2899
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108528.2899 Max-Min= 175.95
-Converger=Normalized term diff value is 0.0081 - threshold reached=False
-Cumulative run-time=1.28 seconds
-
-Initiating PH iteration=14
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: 18.7620 -91.4245 72.6625 Average: 78.1498
- Index: [SUGAR_BEETS] Weights: 52.4026 136.9958 -189.3984 Average: 247.9664
- Index: [WHEAT] Weights: -71.1646 -45.5714 116.7359 Average: 173.8838
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108451.7474 108505.4201 108627.7021 Max-Min: 175.9546 Avg: 108528.2899
-------------------------------------------------
-Starting PH iteration 14 solves
-Queuing solve for scenario=BelowAverageScenario
-Queuing solve for scenario=AverageScenario
-Queuing solve for scenario=AboveAverageScenario
-Waiting for scenario sub-problem solves
-Results obtained for scenario=BelowAverageScenario
-Successfully loaded solution for scenario=BelowAverageScenario - waiting on 2 more
-Results obtained for scenario=AverageScenario
-Successfully loaded solution for scenario=AverageScenario - waiting on 1 more
-Results obtained for scenario=AboveAverageScenario
-Successfully loaded solution for scenario=AboveAverageScenario - waiting on 0 more
-Successfully completed PH iteration 14 solves
-- solution statistics:
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario -48461.6172 -46340.8726 0.0000 optimal
- AverageScenario -109027.6783 -90153.8466 0.0000 optimal
- AboveAverageScenario -167291.5122 -188714.1705 0.0000 optimal
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 73.3878 80.0000 74.1697 Max-Min: 6.6122 Avg: 75.8525
-
- Index: [SUGAR_BEETS] Values: 251.5638 248.2577 250.0000 Max-Min: 3.3061 Avg: 249.9405
-
- Index: [WHEAT] Values: 175.0484 171.7423 175.8303 Max-Min: 4.0880 Avg: 174.2070
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108543.0451 108708.3494 108433.5787 Max-Min: 274.7707 Avg: 108561.6577
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108561.6577 Max-Min= 274.77
-Converger=Normalized term diff value is 0.0168 - threshold reached=False
-Cumulative run-time=1.37 seconds
-
-Initiating PH iteration=15
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: 16.2973 -87.2770 70.9797 Average: 75.8525
- Index: [SUGAR_BEETS] Weights: 54.0259 135.3130 -189.3390 Average: 249.9405
- Index: [WHEAT] Weights: -70.3232 -48.0361 118.3592 Average: 174.2070
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108543.0451 108708.3494 108433.5787 Max-Min: 274.7707 Avg: 108561.6577
-------------------------------------------------
-Starting PH iteration 15 solves
-Queuing solve for scenario=BelowAverageScenario
-Queuing solve for scenario=AverageScenario
-Queuing solve for scenario=AboveAverageScenario
-Waiting for scenario sub-problem solves
-Results obtained for scenario=BelowAverageScenario
-Successfully loaded solution for scenario=BelowAverageScenario - waiting on 2 more
-Results obtained for scenario=AverageScenario
-Successfully loaded solution for scenario=AverageScenario - waiting on 1 more
-Results obtained for scenario=AboveAverageScenario
-Successfully loaded solution for scenario=AboveAverageScenario - waiting on 0 more
-Successfully completed PH iteration 15 solves
-- solution statistics:
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario -48519.8801 -45980.0909 0.0000 optimal
- AverageScenario -109108.0604 -90654.2868 0.0000 optimal
- AboveAverageScenario -167274.3717 -188547.9501 0.0000 optimal
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 73.5552 80.0000 74.5125 Max-Min: 6.4448 Avg: 76.0226
-
- Index: [SUGAR_BEETS] Values: 251.9146 248.6922 250.0000 Max-Min: 3.2224 Avg: 250.2023
-
- Index: [WHEAT] Values: 174.5302 171.3078 175.4875 Max-Min: 4.1797 Avg: 173.7751
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108595.0256 108756.1444 108461.0037 Max-Min: 295.1407 Avg: 108604.0579
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108604.0579 Max-Min= 295.14
-Converger=Normalized term diff value is 0.0163 - threshold reached=False
-Cumulative run-time=1.47 seconds
-
-Initiating PH iteration=16
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: 13.8299 -83.2996 69.4697 Average: 76.0226
- Index: [SUGAR_BEETS] Weights: 55.7382 133.8030 -189.5412 Average: 250.2023
- Index: [WHEAT] Weights: -69.5682 -50.5034 120.0716 Average: 173.7751
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108595.0256 108756.1444 108461.0037 Max-Min: 295.1407 Avg: 108604.0579
-------------------------------------------------
-Starting PH iteration 16 solves
-Queuing solve for scenario=BelowAverageScenario
-Queuing solve for scenario=AverageScenario
-Queuing solve for scenario=AboveAverageScenario
-Waiting for scenario sub-problem solves
-Results obtained for scenario=BelowAverageScenario
-Successfully loaded solution for scenario=BelowAverageScenario - waiting on 2 more
-Results obtained for scenario=AverageScenario
-Successfully loaded solution for scenario=AverageScenario - waiting on 1 more
-Results obtained for scenario=AboveAverageScenario
-Successfully loaded solution for scenario=AboveAverageScenario - waiting on 0 more
-Successfully completed PH iteration 16 solves
-- solution statistics:
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario -48558.6533 -45603.5219 0.0000 optimal
- AverageScenario -109083.6691 -91135.8155 0.0000 optimal
- AboveAverageScenario -167178.7649 -188413.2938 0.0000 optimal
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 76.1927 80.0000 76.4247 Max-Min: 3.8073 Avg: 77.5391
-
- Index: [SUGAR_BEETS] Values: 250.4640 248.5604 250.0000 Max-Min: 1.9037 Avg: 249.6748
-
- Index: [WHEAT] Values: 173.3433 171.4396 173.5753 Max-Min: 2.1357 Avg: 172.7861
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108646.4582 108741.6413 108613.9754 Max-Min: 127.6659 Avg: 108667.3583
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108667.3583 Max-Min= 127.67
-Converger=Normalized term diff value is 0.0098 - threshold reached=False
-Cumulative run-time=1.56 seconds
-
-Initiating PH iteration=17
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: 12.4835 -80.8387 68.3552 Average: 77.5391
- Index: [SUGAR_BEETS] Weights: 56.5275 132.6886 -189.2160 Average: 249.6748
- Index: [WHEAT] Weights: -69.0109 -51.8499 120.8608 Average: 172.7861
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108646.4582 108741.6413 108613.9754 Max-Min: 127.6659 Avg: 108667.3583
-------------------------------------------------
-Starting PH iteration 17 solves
-Queuing solve for scenario=BelowAverageScenario
-Queuing solve for scenario=AverageScenario
-Queuing solve for scenario=AboveAverageScenario
-Waiting for scenario sub-problem solves
-Results obtained for scenario=BelowAverageScenario
-Successfully loaded solution for scenario=BelowAverageScenario - waiting on 2 more
-Results obtained for scenario=AverageScenario
-Successfully loaded solution for scenario=AverageScenario - waiting on 1 more
-Results obtained for scenario=AboveAverageScenario
-Successfully loaded solution for scenario=AboveAverageScenario - waiting on 0 more
-Successfully completed PH iteration 17 solves
-- solution statistics:
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario -48633.2384 -45416.7770 0.0000 optimal
- AverageScenario -109104.9041 -91454.2257 0.0000 optimal
- AboveAverageScenario -167068.5341 -188284.1696 0.0000 optimal
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 79.0556 80.0000 78.6293 Max-Min: 1.3707 Avg: 79.2283
-
- Index: [SUGAR_BEETS] Values: 249.1473 248.6752 250.0000 Max-Min: 1.3248 Avg: 249.2742
-
- Index: [WHEAT] Values: 171.7970 171.3248 171.3707 Max-Min: 0.4722 Avg: 171.4975
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108730.6586 108754.2674 108790.3452 Max-Min: 59.6865 Avg: 108758.4237
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108758.4237 Max-Min= 59.69
-Converger=Normalized term diff value is 0.0032 - threshold reached=False
-Cumulative run-time=1.64 seconds
-
-Initiating PH iteration=18
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: 12.3108 -80.0670 67.7562 Average: 79.2283
- Index: [SUGAR_BEETS] Weights: 56.4006 132.0896 -188.4902 Average: 249.2742
- Index: [WHEAT] Weights: -68.7114 -52.0225 120.7340 Average: 171.4975
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108730.6586 108754.2674 108790.3452 Max-Min: 59.6865 Avg: 108758.4237
-------------------------------------------------
-Starting PH iteration 18 solves
-Queuing solve for scenario=BelowAverageScenario
-Queuing solve for scenario=AverageScenario
-Queuing solve for scenario=AboveAverageScenario
-Waiting for scenario sub-problem solves
-Results obtained for scenario=BelowAverageScenario
-Successfully loaded solution for scenario=BelowAverageScenario - waiting on 2 more
-Results obtained for scenario=AverageScenario
-Successfully loaded solution for scenario=AverageScenario - waiting on 1 more
-Results obtained for scenario=AboveAverageScenario
-Successfully loaded solution for scenario=AboveAverageScenario - waiting on 0 more
-Successfully completed PH iteration 18 solves
-- solution statistics:
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario -48755.1355 -45415.3155 0.0000 optimal
- AverageScenario -109226.4723 -91575.5674 0.0000 optimal
- AboveAverageScenario -166982.2847 -188175.7178 0.0000 optimal
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 80.9175 80.0000 80.3543 Max-Min: 0.9175 Avg: 80.4239
-
- Index: [SUGAR_BEETS] Values: 248.8735 249.3323 250.0000 Max-Min: 1.1265 Avg: 249.4019
-
- Index: [WHEAT] Values: 170.2090 170.6677 169.6457 Max-Min: 1.0220 Avg: 170.1741
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108849.4892 108826.5512 108928.3427 Max-Min: 101.7914 Avg: 108868.1277
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108868.1277 Max-Min= 101.79
-Converger=Normalized term diff value is 0.0026 - threshold reached=False
-Cumulative run-time=1.74 seconds
-
-Initiating PH iteration=19
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: 12.8044 -80.4910 67.6866 Average: 80.4239
- Index: [SUGAR_BEETS] Weights: 55.8722 132.0199 -187.8921 Average: 249.4019
- Index: [WHEAT] Weights: -68.6766 -51.5289 120.2056 Average: 170.1741
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108849.4892 108826.5512 108928.3427 Max-Min: 101.7914 Avg: 108868.1277
-------------------------------------------------
-Starting PH iteration 19 solves
-Queuing solve for scenario=BelowAverageScenario
-Queuing solve for scenario=AverageScenario
-Queuing solve for scenario=AboveAverageScenario
-Waiting for scenario sub-problem solves
-Results obtained for scenario=BelowAverageScenario
-Successfully loaded solution for scenario=BelowAverageScenario - waiting on 2 more
-Results obtained for scenario=AverageScenario
-Successfully loaded solution for scenario=AverageScenario - waiting on 1 more
-Results obtained for scenario=AboveAverageScenario
-Successfully loaded solution for scenario=AboveAverageScenario - waiting on 0 more
-Successfully completed PH iteration 19 solves
-- solution statistics:
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario -48896.7850 -45504.4148 0.0000 optimal
- AverageScenario -109412.8038 -91544.0535 0.0000 optimal
- AboveAverageScenario -166930.7790 -188124.7937 0.0000 optimal
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 81.6195 80.0000 81.3844 Max-Min: 1.6195 Avg: 81.0013
-
- Index: [SUGAR_BEETS] Values: 249.5297 250.3395 250.0000 Max-Min: 0.8098 Avg: 249.9564
-
- Index: [WHEAT] Values: 168.8507 169.6605 168.6156 Max-Min: 1.0449 Avg: 169.0423
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108977.8317 108937.3430 109010.7521 Max-Min: 73.4090 Avg: 108975.3089
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108975.3089 Max-Min= 73.41
-Converger=Normalized term diff value is 0.0039 - threshold reached=False
-Cumulative run-time=1.83 seconds
-
-Initiating PH iteration=20
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: 13.4226 -81.4923 68.0697 Average: 81.0013
- Index: [SUGAR_BEETS] Weights: 55.4455 132.4030 -187.8485 Average: 249.9564
- Index: [WHEAT] Weights: -68.8682 -50.9107 119.7789 Average: 169.0423
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108977.8317 108937.3430 109010.7521 Max-Min: 73.4090 Avg: 108975.3089
-------------------------------------------------
-Starting PH iteration 20 solves
-Queuing solve for scenario=BelowAverageScenario
-Queuing solve for scenario=AverageScenario
-Queuing solve for scenario=AboveAverageScenario
-Waiting for scenario sub-problem solves
-Results obtained for scenario=BelowAverageScenario
-Successfully loaded solution for scenario=BelowAverageScenario - waiting on 2 more
-Results obtained for scenario=AverageScenario
-Successfully loaded solution for scenario=AverageScenario - waiting on 1 more
-Results obtained for scenario=AboveAverageScenario
-Successfully loaded solution for scenario=AboveAverageScenario - waiting on 0 more
-Successfully completed PH iteration 20 solves
-- solution statistics:
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario -49016.9785 -45594.9909 0.0000 optimal
- AverageScenario -109590.5376 -91424.1866 0.0000 optimal
- AboveAverageScenario -166908.2927 -188156.5534 0.0000 optimal
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 81.5787 80.0000 81.8341 Max-Min: 1.8341 Avg: 81.1376
-
- Index: [SUGAR_BEETS] Values: 250.5109 251.3002 250.0000 Max-Min: 1.3002 Avg: 250.6037
-
- Index: [WHEAT] Values: 167.9104 168.6998 168.1659 Max-Min: 0.7893 Avg: 168.2587
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 109082.4902 109043.0227 109046.7302 Max-Min: 39.4674 Avg: 109057.4144
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 109057.4144 Max-Min= 39.47
-Converger=Normalized term diff value is 0.0043 - threshold reached=False
-Cumulative run-time=1.92 seconds
-
-Initiating PH iteration=21
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: 13.8637 -82.6299 68.7662 Average: 81.1376
- Index: [SUGAR_BEETS] Weights: 55.3527 133.0995 -188.4522 Average: 250.6037
- Index: [WHEAT] Weights: -69.2164 -50.4696 119.6860 Average: 168.2587
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 109082.4902 109043.0227 109046.7302 Max-Min: 39.4674 Avg: 109057.4144
-------------------------------------------------
-Starting PH iteration 21 solves
-Queuing solve for scenario=BelowAverageScenario
-Queuing solve for scenario=AverageScenario
-Queuing solve for scenario=AboveAverageScenario
-Waiting for scenario sub-problem solves
-Results obtained for scenario=BelowAverageScenario
-Successfully loaded solution for scenario=BelowAverageScenario - waiting on 2 more
-Results obtained for scenario=AverageScenario
-Successfully loaded solution for scenario=AverageScenario - waiting on 1 more
-Results obtained for scenario=AboveAverageScenario
-Successfully loaded solution for scenario=AboveAverageScenario - waiting on 0 more
-Successfully completed PH iteration 21 solves
-- solution statistics:
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario -49084.6309 -45641.9525 0.0000 optimal
- AverageScenario -109699.2661 -91266.5697 0.0000 optimal
- AboveAverageScenario -166905.0295 -188266.3942 0.0000 optimal
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 81.2739 80.0000 81.8994 Max-Min: 1.8994 Avg: 81.0578
-
- Index: [SUGAR_BEETS] Values: 251.2510 251.8879 250.0000 Max-Min: 1.8879 Avg: 251.0463
-
- Index: [WHEAT] Values: 167.4751 168.1121 168.1006 Max-Min: 0.6369 Avg: 167.8959
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 109139.5198 109107.6723 109051.9513 Max-Min: 87.5685 Avg: 109099.7145
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 109099.7145 Max-Min= 87.57
-Converger=Normalized term diff value is 0.0044 - threshold reached=False
-Cumulative run-time=2.01 seconds
-
-Initiating PH iteration=22
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: 14.0798 -83.6876 69.6078 Average: 81.0578
- Index: [SUGAR_BEETS] Weights: 55.5574 133.9411 -189.4985 Average: 251.0463
- Index: [WHEAT] Weights: -69.6372 -50.2535 119.8907 Average: 167.8959
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 109139.5198 109107.6723 109051.9513 Max-Min: 87.5685 Avg: 109099.7145
-------------------------------------------------
-Starting PH iteration 22 solves
-Queuing solve for scenario=BelowAverageScenario
-Queuing solve for scenario=AverageScenario
-Queuing solve for scenario=AboveAverageScenario
-Waiting for scenario sub-problem solves
-Results obtained for scenario=BelowAverageScenario
-Successfully loaded solution for scenario=BelowAverageScenario - waiting on 2 more
-Results obtained for scenario=AverageScenario
-Successfully loaded solution for scenario=AverageScenario - waiting on 1 more
-Results obtained for scenario=AboveAverageScenario
-Successfully loaded solution for scenario=AboveAverageScenario - waiting on 0 more
-Successfully completed PH iteration 22 solves
-- solution statistics:
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario -49089.7488 -45643.9036 0.0000 optimal
- AverageScenario -109715.9076 -91103.4143 0.0000 optimal
- AboveAverageScenario -166913.8800 -188424.2285 0.0000 optimal
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 80.9779 80.0000 81.7224 Max-Min: 1.7224 Avg: 80.9001
-
- Index: [SUGAR_BEETS] Values: 251.4889 251.9779 250.0000 Max-Min: 1.9779 Avg: 251.1556
-
- Index: [WHEAT] Values: 167.5332 168.0221 168.2776 Max-Min: 0.7445 Avg: 167.9443
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 109142.0146 109117.5667 109037.7904 Max-Min: 104.2242 Avg: 109099.1239
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 109099.1239 Max-Min= 104.22
-Converger=Normalized term diff value is 0.0040 - threshold reached=False
-Cumulative run-time=2.09 seconds
-
-Initiating PH iteration=23
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: 14.1577 -84.5877 70.4301 Average: 80.9001
- Index: [SUGAR_BEETS] Weights: 55.8907 134.7634 -190.6541 Average: 251.1556
- Index: [WHEAT] Weights: -70.0484 -50.1757 120.2240 Average: 167.9443
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 109142.0146 109117.5667 109037.7904 Max-Min: 104.2242 Avg: 109099.1239
-------------------------------------------------
-Starting PH iteration 23 solves
-Queuing solve for scenario=BelowAverageScenario
-Queuing solve for scenario=AverageScenario
-Queuing solve for scenario=AboveAverageScenario
-Waiting for scenario sub-problem solves
-Results obtained for scenario=BelowAverageScenario
-Successfully loaded solution for scenario=BelowAverageScenario - waiting on 2 more
-Results obtained for scenario=AverageScenario
-Successfully loaded solution for scenario=AverageScenario - waiting on 1 more
-Results obtained for scenario=AboveAverageScenario
-Successfully loaded solution for scenario=AboveAverageScenario - waiting on 0 more
-Successfully completed PH iteration 23 solves
-- solution statistics:
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario -49041.7412 -45622.8376 0.0000 optimal
- AverageScenario -109652.6809 -90955.5224 0.0000 optimal
- AboveAverageScenario -166931.2547 -188589.7398 0.0000 optimal
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 80.7424 80.0000 81.3749 Max-Min: 1.3749 Avg: 80.7058
-
- Index: [SUGAR_BEETS] Values: 251.2649 251.6361 250.0000 Max-Min: 1.6361 Avg: 250.9670
-
- Index: [WHEAT] Values: 167.9927 168.3639 168.6251 Max-Min: 0.6324 Avg: 168.3272
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 109098.5333 109079.9725 109009.9907 Max-Min: 88.5426 Avg: 109062.8322
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 109062.8322 Max-Min= 88.54
-Converger=Normalized term diff value is 0.0032 - threshold reached=False
-Cumulative run-time=2.18 seconds
-
-Initiating PH iteration=24
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: 14.1943 -85.2935 71.0992 Average: 80.7058
- Index: [SUGAR_BEETS] Weights: 56.1886 135.4325 -191.6211 Average: 250.9670
- Index: [WHEAT] Weights: -70.3829 -50.1390 120.5219 Average: 168.3272
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 109098.5333 109079.9725 109009.9907 Max-Min: 88.5426 Avg: 109062.8322
-------------------------------------------------
-Starting PH iteration 24 solves
-Queuing solve for scenario=BelowAverageScenario
-Queuing solve for scenario=AverageScenario
-Queuing solve for scenario=AboveAverageScenario
-Waiting for scenario sub-problem solves
-Results obtained for scenario=BelowAverageScenario
-Successfully loaded solution for scenario=BelowAverageScenario - waiting on 2 more
-Results obtained for scenario=AverageScenario
-Successfully loaded solution for scenario=AverageScenario - waiting on 1 more
-Results obtained for scenario=AboveAverageScenario
-Successfully loaded solution for scenario=AboveAverageScenario - waiting on 0 more
-Successfully completed PH iteration 24 solves
-- solution statistics:
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario -48961.0406 -45601.5513 0.0000 optimal
- AverageScenario -109541.3140 -90837.9367 0.0000 optimal
- AboveAverageScenario -166954.9663 -188727.3107 0.0000 optimal
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 80.5114 80.0000 80.9006 Max-Min: 0.9006 Avg: 80.4707
-
- Index: [SUGAR_BEETS] Values: 250.7784 251.0341 250.0000 Max-Min: 1.0341 Avg: 250.6042
-
- Index: [WHEAT] Values: 168.7101 168.9659 169.0993 Max-Min: 0.3892 Avg: 168.9251
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 109026.5404 109013.7543 108972.0520 Max-Min: 54.4884 Avg: 109004.1156
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 109004.1156 Max-Min= 54.49
-Converger=Normalized term diff value is 0.0021 - threshold reached=False
-Cumulative run-time=2.27 seconds
-
-Initiating PH iteration=25
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: 14.2351 -85.7642 71.5291 Average: 80.4707
- Index: [SUGAR_BEETS] Weights: 56.3628 135.8625 -192.2253 Average: 250.6042
- Index: [WHEAT] Weights: -70.5979 -50.0983 120.6962 Average: 168.9251
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 109026.5404 109013.7543 108972.0520 Max-Min: 54.4884 Avg: 109004.1156
-------------------------------------------------
-Starting PH iteration 25 solves
-Queuing solve for scenario=BelowAverageScenario
-Queuing solve for scenario=AverageScenario
-Queuing solve for scenario=AboveAverageScenario
-Waiting for scenario sub-problem solves
-Results obtained for scenario=BelowAverageScenario
-Successfully loaded solution for scenario=BelowAverageScenario - waiting on 2 more
-Results obtained for scenario=AverageScenario
-Successfully loaded solution for scenario=AverageScenario - waiting on 1 more
-Results obtained for scenario=AboveAverageScenario
-Successfully loaded solution for scenario=AboveAverageScenario - waiting on 0 more
-Successfully completed PH iteration 25 solves
-- solution statistics:
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario -48870.2030 -45591.4301 0.0000 optimal
- AverageScenario -109416.4460 -90761.4821 0.0000 optimal
- AboveAverageScenario -166982.1836 -188814.9010 0.0000 optimal
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 80.2356 80.0000 80.3563 Max-Min: 0.3563 Avg: 80.1973
-
- Index: [SUGAR_BEETS] Values: 250.2414 250.3592 250.0000 Max-Min: 0.3592 Avg: 250.2002
-
- Index: [WHEAT] Values: 169.5230 169.6408 169.6437 Max-Min: 0.1207 Avg: 169.6025
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108945.3990 108939.5085 108928.5042 Max-Min: 16.8948 Avg: 108937.8039
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108937.8039 Max-Min= 16.89
-Converger=Normalized term diff value is 0.0008 - threshold reached=False
-Cumulative run-time=2.36 seconds
-
-Initiating PH iteration=26
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: 14.2734 -85.9615 71.6881 Average: 80.1973
- Index: [SUGAR_BEETS] Weights: 56.4040 136.0215 -192.4255 Average: 250.2002
- Index: [WHEAT] Weights: -70.6774 -50.0599 120.7373 Average: 169.6025
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108945.3990 108939.5085 108928.5042 Max-Min: 16.8948 Avg: 108937.8039
-------------------------------------------------
-Starting PH iteration 26 solves
-Queuing solve for scenario=BelowAverageScenario
-Queuing solve for scenario=AverageScenario
-Queuing solve for scenario=AboveAverageScenario
-Waiting for scenario sub-problem solves
-Results obtained for scenario=BelowAverageScenario
-Successfully loaded solution for scenario=BelowAverageScenario - waiting on 2 more
-Results obtained for scenario=AverageScenario
-Successfully loaded solution for scenario=AverageScenario - waiting on 1 more
-Results obtained for scenario=AboveAverageScenario
-Successfully loaded solution for scenario=AboveAverageScenario - waiting on 0 more
-Successfully completed PH iteration 26 solves
-- solution statistics:
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario -48787.9265 -45592.2286 0.0000 optimal
- AverageScenario -109305.2539 -90731.6870 0.0000 optimal
- AboveAverageScenario -167008.8998 -188845.8822 0.0000 optimal
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 79.9239 80.0000 79.8220 Max-Min: 0.1780 Avg: 79.9153
-
- Index: [SUGAR_BEETS] Values: 249.7962 249.7581 250.0000 Max-Min: 0.2419 Avg: 249.8514
-
- Index: [WHEAT] Values: 170.2799 170.2419 170.1780 Max-Min: 0.1019 Avg: 170.2333
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108871.4922 108873.3943 108885.7601 Max-Min: 14.2679 Avg: 108876.8822
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108876.8822 Max-Min= 14.27
-Converger=Normalized term diff value is 0.0005 - threshold reached=False
-Cumulative run-time=2.46 seconds
-
-Initiating PH iteration=27
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: 14.2820 -85.8768 71.5948 Average: 79.9153
- Index: [SUGAR_BEETS] Weights: 56.3487 135.9282 -192.2769 Average: 249.8514
- Index: [WHEAT] Weights: -70.6307 -50.0513 120.6821 Average: 170.2333
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108871.4922 108873.3943 108885.7601 Max-Min: 14.2679 Avg: 108876.8822
-------------------------------------------------
-Starting PH iteration 27 solves
-Queuing solve for scenario=BelowAverageScenario
-Queuing solve for scenario=AverageScenario
-Queuing solve for scenario=AboveAverageScenario
-Waiting for scenario sub-problem solves
-Results obtained for scenario=BelowAverageScenario
-Successfully loaded solution for scenario=BelowAverageScenario - waiting on 2 more
-Results obtained for scenario=AverageScenario
-Successfully loaded solution for scenario=AverageScenario - waiting on 1 more
-Results obtained for scenario=AboveAverageScenario
-Successfully loaded solution for scenario=AboveAverageScenario - waiting on 0 more
-Successfully completed PH iteration 27 solves
-- solution statistics:
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario -48726.5366 -45598.0027 0.0000 optimal
- AverageScenario -109224.0786 -90747.2552 0.0000 optimal
- AboveAverageScenario -167030.7673 -188826.0230 0.0000 optimal
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 79.6333 80.0000 79.3847 Max-Min: 0.6153 Avg: 79.6727
-
- Index: [SUGAR_BEETS] Values: 249.5027 249.3193 250.0000 Max-Min: 0.6807 Avg: 249.6073
-
- Index: [WHEAT] Values: 170.8640 170.6807 170.6153 Max-Min: 0.2487 Avg: 170.7200
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108815.9605 108825.1279 108850.7721 Max-Min: 34.8116 Avg: 108830.6201
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108830.6201 Max-Min= 34.81
-Converger=Normalized term diff value is 0.0015 - threshold reached=False
-Cumulative run-time=2.55 seconds
-
-Initiating PH iteration=28
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: 14.2427 -85.5495 71.3068 Average: 79.6727
- Index: [SUGAR_BEETS] Weights: 56.2441 135.6402 -191.8842 Average: 249.6073
- Index: [WHEAT] Weights: -70.4867 -50.0907 120.5774 Average: 170.7200
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108815.9605 108825.1279 108850.7721 Max-Min: 34.8116 Avg: 108830.6201
-------------------------------------------------
-Starting PH iteration 28 solves
-Queuing solve for scenario=BelowAverageScenario
-Queuing solve for scenario=AverageScenario
-Queuing solve for scenario=AboveAverageScenario
-Waiting for scenario sub-problem solves
-Results obtained for scenario=BelowAverageScenario
-Successfully loaded solution for scenario=BelowAverageScenario - waiting on 2 more
-Results obtained for scenario=AverageScenario
-Successfully loaded solution for scenario=AverageScenario - waiting on 1 more
-Results obtained for scenario=AboveAverageScenario
-Successfully loaded solution for scenario=AboveAverageScenario - waiting on 0 more
-Successfully completed PH iteration 28 solves
-- solution statistics:
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario -48691.8900 -45603.0149 0.0000 optimal
- AverageScenario -109179.4773 -90799.7949 0.0000 optimal
- AboveAverageScenario -167044.4185 -188768.7530 0.0000 optimal
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 79.4300 80.0000 79.1116 Max-Min: 0.8884 Avg: 79.5139
-
- Index: [SUGAR_BEETS] Values: 249.3633 249.0783 250.0000 Max-Min: 0.9217 Avg: 249.4805
-
- Index: [WHEAT] Values: 171.2067 170.9217 170.8884 Max-Min: 0.3184 Avg: 171.0056
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108784.3581 108798.6082 108828.9301 Max-Min: 44.5720 Avg: 108803.9655
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108803.9655 Max-Min= 44.57
-Converger=Normalized term diff value is 0.0021 - threshold reached=False
-Cumulative run-time=2.64 seconds
-
-Initiating PH iteration=29
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: 14.1588 -85.0633 70.9046 Average: 79.5139
- Index: [SUGAR_BEETS] Weights: 56.1268 135.2379 -191.3647 Average: 249.4805
- Index: [WHEAT] Weights: -70.2856 -50.1746 120.4602 Average: 171.0056
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108784.3581 108798.6082 108828.9301 Max-Min: 44.5720 Avg: 108803.9655
-------------------------------------------------
-Starting PH iteration 29 solves
-Queuing solve for scenario=BelowAverageScenario
-Queuing solve for scenario=AverageScenario
-Queuing solve for scenario=AboveAverageScenario
-Waiting for scenario sub-problem solves
-Results obtained for scenario=BelowAverageScenario
-Successfully loaded solution for scenario=BelowAverageScenario - waiting on 2 more
-Results obtained for scenario=AverageScenario
-Successfully loaded solution for scenario=AverageScenario - waiting on 1 more
-Results obtained for scenario=AboveAverageScenario
-Successfully loaded solution for scenario=AboveAverageScenario - waiting on 0 more
-Successfully completed PH iteration 29 solves
-- solution statistics:
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario -48684.3896 -45604.6341 0.0000 optimal
- AverageScenario -109170.7742 -90875.4461 0.0000 optimal
- AboveAverageScenario -167048.4033 -188690.7700 0.0000 optimal
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 79.3551 80.0000 79.0319 Max-Min: 0.9681 Avg: 79.4623
-
- Index: [SUGAR_BEETS] Values: 249.3537 249.0312 250.0000 Max-Min: 0.9688 Avg: 249.4616
-
- Index: [WHEAT] Values: 171.2912 170.9688 170.9681 Max-Min: 0.3232 Avg: 171.0760
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108777.3108 108793.4333 108822.5543 Max-Min: 45.2436 Avg: 108797.7661
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108797.7661 Max-Min= 45.24
-Converger=Normalized term diff value is 0.0023 - threshold reached=False
-Cumulative run-time=2.73 seconds
-
-Initiating PH iteration=30
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: 14.0515 -84.5257 70.4742 Average: 79.4623
- Index: [SUGAR_BEETS] Weights: 56.0189 134.8075 -190.8264 Average: 249.4616
- Index: [WHEAT] Weights: -70.0704 -50.2818 120.3522 Average: 171.0760
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108777.3108 108793.4333 108822.5543 Max-Min: 45.2436 Avg: 108797.7661
-------------------------------------------------
-Starting PH iteration 30 solves
-Queuing solve for scenario=BelowAverageScenario
-Queuing solve for scenario=AverageScenario
-Queuing solve for scenario=AboveAverageScenario
-Waiting for scenario sub-problem solves
-Results obtained for scenario=BelowAverageScenario
-Successfully loaded solution for scenario=BelowAverageScenario - waiting on 2 more
-Results obtained for scenario=AverageScenario
-Successfully loaded solution for scenario=AverageScenario - waiting on 1 more
-Results obtained for scenario=AboveAverageScenario
-Successfully loaded solution for scenario=AboveAverageScenario - waiting on 0 more
-Successfully completed PH iteration 30 solves
-- solution statistics:
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario -48700.2938 -45603.2448 0.0000 optimal
- AverageScenario -109192.4069 -90957.9453 0.0000 optimal
- AboveAverageScenario -167043.3907 -188608.6691 0.0000 optimal
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 79.4108 80.0000 79.1322 Max-Min: 0.8678 Avg: 79.5143
-
- Index: [SUGAR_BEETS] Values: 249.4427 249.1481 250.0000 Max-Min: 0.8519 Avg: 249.5303
-
- Index: [WHEAT] Values: 171.1464 170.8518 170.8678 Max-Min: 0.2946 Avg: 170.9554
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108791.5668 108806.2965 108830.5746 Max-Min: 39.0078 Avg: 108809.4793
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108809.4793 Max-Min= 39.01
-Converger=Normalized term diff value is 0.0020 - threshold reached=False
-Cumulative run-time=2.82 seconds
-
-Initiating PH iteration=31
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: 13.9480 -84.0400 70.0920 Average: 79.5143
- Index: [SUGAR_BEETS] Weights: 55.9313 134.4253 -190.3567 Average: 249.5303
- Index: [WHEAT] Weights: -69.8793 -50.3853 120.2647 Average: 170.9554
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108791.5668 108806.2965 108830.5746 Max-Min: 39.0078 Avg: 108809.4793
-------------------------------------------------
-Starting PH iteration 31 solves
-Queuing solve for scenario=BelowAverageScenario
-Queuing solve for scenario=AverageScenario
-Queuing solve for scenario=AboveAverageScenario
-Waiting for scenario sub-problem solves
-Results obtained for scenario=BelowAverageScenario
-Successfully loaded solution for scenario=BelowAverageScenario - waiting on 2 more
-Results obtained for scenario=AverageScenario
-Successfully loaded solution for scenario=AverageScenario - waiting on 1 more
-Results obtained for scenario=AboveAverageScenario
-Successfully loaded solution for scenario=AboveAverageScenario - waiting on 0 more
-Successfully completed PH iteration 31 solves
-- solution statistics:
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario -48733.0412 -45600.6526 0.0000 optimal
- AverageScenario -109235.6937 -91032.0676 0.0000 optimal
- AboveAverageScenario -167031.7095 -188536.5325 0.0000 optimal
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 79.5663 80.0000 79.3658 Max-Min: 0.6342 Avg: 79.6440
-
- Index: [SUGAR_BEETS] Values: 249.5990 249.3821 250.0000 Max-Min: 0.6179 Avg: 249.6604
-
- Index: [WHEAT] Values: 170.8347 170.6179 170.6342 Max-Min: 0.2168 Avg: 170.6956
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108821.1925 108832.0345 108849.2645 Max-Min: 28.0720 Avg: 108834.1639
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108834.1639 Max-Min= 28.07
-Converger=Normalized term diff value is 0.0015 - threshold reached=False
-Cumulative run-time=2.91 seconds
-
-Initiating PH iteration=32
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: 13.8703 -83.6841 69.8138 Average: 79.6440
- Index: [SUGAR_BEETS] Weights: 55.8699 134.1471 -190.0170 Average: 249.6604
- Index: [WHEAT] Weights: -69.7402 -50.4630 120.2033 Average: 170.6956
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108821.1925 108832.0345 108849.2645 Max-Min: 28.0720 Avg: 108834.1639
-------------------------------------------------
-Starting PH iteration 32 solves
-Queuing solve for scenario=BelowAverageScenario
-Queuing solve for scenario=AverageScenario
-Queuing solve for scenario=AboveAverageScenario
-Waiting for scenario sub-problem solves
-Results obtained for scenario=BelowAverageScenario
-Successfully loaded solution for scenario=BelowAverageScenario - waiting on 2 more
-Results obtained for scenario=AverageScenario
-Successfully loaded solution for scenario=AverageScenario - waiting on 1 more
-Results obtained for scenario=AboveAverageScenario
-Successfully loaded solution for scenario=AboveAverageScenario - waiting on 0 more
-Successfully completed PH iteration 32 solves
-- solution statistics:
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario -48774.5902 -45598.5106 0.0000 optimal
- AverageScenario -109290.3024 -91086.4069 0.0000 optimal
- AboveAverageScenario -167016.5499 -188484.3489 0.0000 optimal
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 79.7738 80.0000 79.6690 Max-Min: 0.3310 Avg: 79.8142
-
- Index: [SUGAR_BEETS] Values: 249.7904 249.6773 250.0000 Max-Min: 0.3227 Avg: 249.8226
-
- Index: [WHEAT] Values: 170.4358 170.3227 170.3310 Max-Min: 0.1131 Avg: 170.3632
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108858.8484 108864.5046 108873.5181 Max-Min: 14.6697 Avg: 108865.6237
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108865.6237 Max-Min= 14.67
-Converger=Normalized term diff value is 0.0008 - threshold reached=False
-Cumulative run-time=3.00 seconds
-
-Initiating PH iteration=33
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: 13.8298 -83.4983 69.6685 Average: 79.8142
- Index: [SUGAR_BEETS] Weights: 55.8378 134.0018 -189.8396 Average: 249.8226
- Index: [WHEAT] Weights: -69.6676 -50.5035 120.1711 Average: 170.3632
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108858.8484 108864.5046 108873.5181 Max-Min: 14.6697 Avg: 108865.6237
-------------------------------------------------
-Starting PH iteration 33 solves
-Queuing solve for scenario=BelowAverageScenario
-Queuing solve for scenario=AverageScenario
-Queuing solve for scenario=AboveAverageScenario
-Waiting for scenario sub-problem solves
-Results obtained for scenario=BelowAverageScenario
-Successfully loaded solution for scenario=BelowAverageScenario - waiting on 2 more
-Results obtained for scenario=AverageScenario
-Successfully loaded solution for scenario=AverageScenario - waiting on 1 more
-Results obtained for scenario=AboveAverageScenario
-Successfully loaded solution for scenario=AboveAverageScenario - waiting on 0 more
-Successfully completed PH iteration 33 solves
-- solution statistics:
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario -48816.7780 -45597.5606 0.0000 optimal
- AverageScenario -109345.7484 -91114.9072 0.0000 optimal
- AboveAverageScenario -167001.1565 -188457.2363 0.0000 optimal
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 79.9844 80.0000 79.9768 Max-Min: 0.0232 Avg: 79.9871
-
- Index: [SUGAR_BEETS] Values: 249.9848 249.9770 250.0000 Max-Min: 0.0230 Avg: 249.9873
-
- Index: [WHEAT] Values: 170.0308 170.0230 170.0232 Max-Min: 0.0078 Avg: 170.0256
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108897.0836 108897.4725 108898.1476 Max-Min: 1.0640 Avg: 108897.5679
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108897.5679 Max-Min= 1.06
-Converger=Normalized term diff value is 0.0001 - threshold reached=True
-Cumulative run-time=3.09 seconds
-
-Number of discrete variables fixed before final plugin calls=0 (total=0)
-Number of continuous variables fixed before final plugin calls=0 (total=3)
-PH complete
-
-Convergence history:
-Converger=Normalized term diff
-Iteration Metric Value
- 0 0.2540
- 1 0.1259
- 2 0.0816
- 3 0.0796
- 4 0.0776
- 5 0.0794
- 6 0.0668
- 7 0.0542
- 8 0.0360
- 9 0.0243
- 10 0.0256
- 11 0.0248
- 12 0.0163
- 13 0.0081
- 14 0.0168
- 15 0.0163
- 16 0.0098
- 17 0.0032
- 18 0.0026
- 19 0.0039
- 20 0.0043
- 21 0.0044
- 22 0.0040
- 23 0.0032
- 24 0.0021
- 25 0.0008
- 26 0.0005
- 27 0.0015
- 28 0.0021
- 29 0.0023
- 30 0.0020
- 31 0.0015
- 32 0.0008
- 33 0.0001
-
-
-Final number of discrete variables fixed=0 (total=0)
-Final number of continuous variables fixed=0 (total=3)
-
-Computing objective inner bound at xhat solution
-Queuing solve for scenario=BelowAverageScenario
-Queuing solve for scenario=AverageScenario
-Queuing solve for scenario=AboveAverageScenario
-Waiting for scenario sub-problem solves
-Results obtained for scenario=BelowAverageScenario
-Successfully loaded solution for scenario=BelowAverageScenario - waiting on 2 more
-Results obtained for scenario=AverageScenario
-Successfully loaded solution for scenario=AverageScenario - waiting on 1 more
-Results obtained for scenario=AboveAverageScenario
-Successfully loaded solution for scenario=AboveAverageScenario - waiting on 0 more
-Successfully completed xhat inner bound solves
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario -48818.0550 -48818.0550 0.0000 optimal
- AverageScenario -109347.1056 -109347.1056 0.0000 optimal
- AboveAverageScenario -167001.1571 -167001.1571 0.0000 optimal
-
-
-Computed objective upper bound=-108388.7726
-
-X-hat variable values:
-
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 79.9768 79.9768 79.9768
-
- Index: [SUGAR_BEETS] Values: 250.0000 250.0000 250.0000
-
- Index: [WHEAT] Values: 170.0232 170.0232 170.0232
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108898.1476 108898.1476 108898.1476 Max-Min: 0.0000 Avg: 108898.1476
-
-X-hat costs:
-
-Scenario Tree Costs
-----------------------------------------------------
-Tree Nodes:
-
- Name=AboveAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AboveAverageScenario
- Expected cost of (sub)tree rooted at node=-275899.3047
-
- Name=AverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AverageScenario
- Expected cost of (sub)tree rooted at node=-218245.2532
-
- Name=BelowAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-157716.2026
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- AboveAverageNode
- AverageNode
- BelowAverageNode
- Scenarios:
- AboveAverageScenario
- AverageScenario
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-108388.7726
-
-----------------------------------------------------
-Scenarios:
-
- Name=AboveAverageScenario
- Probability=0.3333
- Leaf Node=AboveAverageNode
- Tree node sequence:
- RootNode
- AboveAverageNode
- Stage= FirstStage Cost=108898.1476
- Stage= SecondStage Cost=-275899.3047
- Total scenario cost=-167001.1571
-
- Name=AverageScenario
- Probability=0.3333
- Leaf Node=AverageNode
- Tree node sequence:
- RootNode
- AverageNode
- Stage= FirstStage Cost=108898.1476
- Stage= SecondStage Cost=-218245.2532
- Total scenario cost=-109347.1056
-
- Name=BelowAverageScenario
- Probability=0.3333
- Leaf Node=BelowAverageNode
- Tree node sequence:
- RootNode
- BelowAverageNode
- Stage= FirstStage Cost=108898.1476
- Stage= SecondStage Cost=-157716.2026
- Total scenario cost=-48818.0550
-
-----------------------------------------------------
-
-
-Total PH execution time=3.16 seconds
-
-
-Total execution time=3.20 seconds
diff --git a/pyomo/pysp/tests/unit/baselines/farmer_quadratic_verbose_gurobi.baseline b/pyomo/pysp/tests/unit/baselines/farmer_quadratic_verbose_gurobi.baseline
deleted file mode 100644
index 4a22bfe6972..00000000000
--- a/pyomo/pysp/tests/unit/baselines/farmer_quadratic_verbose_gurobi.baseline
+++ /dev/null
@@ -1,1989 +0,0 @@
-Importing model and scenario tree files
-Time to import model and scenario tree structure files=0.01 seconds
-Scenario Tree Detail
-----------------------------------------------------
-Tree Nodes:
-
- Name=AboveAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AboveAverageScenario
-
- Name=AverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AverageScenario
-
- Name=BelowAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- BelowAverageScenario
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- AboveAverageNode
- AverageNode
- BelowAverageNode
- Scenarios:
- AboveAverageScenario
- AverageScenario
- BelowAverageScenario
-
-----------------------------------------------------
-Stages:
- Name=FirstStage
- Tree Nodes:
- RootNode
- Variables:
- DevotedAcreage : [*]
- Cost Variable:
- FirstStageCost
-
- Name=SecondStage
- Tree Nodes:
- AboveAverageNode
- AverageNode
- BelowAverageNode
- Variables:
- QuantityPurchased : [*]
- QuantitySubQuotaSold : [*]
- QuantitySuperQuotaSold : [*]
- Cost Variable:
- SecondStageCost
-
-----------------------------------------------------
-Scenarios:
- Name=AboveAverageScenario
- Probability=0.3333
- Leaf node=AboveAverageNode
- Tree node sequence:
- RootNode
- AboveAverageNode
-
- Name=AverageScenario
- Probability=0.3333
- Leaf node=AverageNode
- Tree node sequence:
- RootNode
- AverageNode
-
- Name=BelowAverageScenario
- Probability=0.3333
- Leaf node=BelowAverageNode
- Tree node sequence:
- RootNode
- BelowAverageNode
-
-----------------------------------------------------
-Scenario tree is valid!
-Scenario-based instance initialization enabled
-Creating instance for scenario=BelowAverageScenario
-Data for scenario=BelowAverageScenario loads from file=/home/hudson/slave/workspace/Pyomo_trunk_python2.6/src/pyomo/examples/pysp/farmer/scenariodata/BelowAverageScenario.dat
-Creating instance for scenario=AverageScenario
-Data for scenario=AverageScenario loads from file=/home/hudson/slave/workspace/Pyomo_trunk_python2.6/src/pyomo/examples/pysp/farmer/scenariodata/AverageScenario.dat
-Creating instance for scenario=AboveAverageScenario
-Data for scenario=AboveAverageScenario loads from file=/home/hudson/slave/workspace/Pyomo_trunk_python2.6/src/pyomo/examples/pysp/farmer/scenariodata/AboveAverageScenario.dat
-Time to construct scenario instances=0.02 seconds
-Time link scenario tree with instances=0.00 seconds
-Constructing solver manager of type=serial
-Constructing solver type=gurobi
-PH solver configuration:
- Max iterations=100
- Async mode=False
- Async buffer length=1
- Default global rho=1.0
- Over-relaxation enabled=False
- Sub-problem solver type='gurobi'
- Keep solver files? False
- Output solver results? False
- Output solver log? False
- Output times? False
-Initializing PH
-
-Invoking pre-initialization PH plugins
-Creating weight, average, and rho parameter vectors for scenario instances
-Creating deterministic SymbolMaps for scenario instances
-PH successfully created model instances for all scenarios
-PH is successfully initialized
-Invoking post-initialization PH plugins
-Starting PH
-
-Initiating PH iteration=0
-------------------------------------------------
-Starting PH iteration 0 solves
-Queuing solve for scenario=BelowAverageScenario
-Queuing solve for scenario=AverageScenario
-Queuing solve for scenario=AboveAverageScenario
-Waiting for scenario sub-problem solves
-Results obtained for scenario=BelowAverageScenario
-Successfully loaded solution for scenario=BelowAverageScenario - waiting on 2 more
-Results obtained for scenario=AverageScenario
-Successfully loaded solution for scenario=AverageScenario - waiting on 1 more
-Results obtained for scenario=AboveAverageScenario
-Successfully loaded solution for scenario=AboveAverageScenario - waiting on 0 more
-Successfully completed PH iteration 0 solves
-- solution statistics:
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario -59950.0000 -59950.0000 0.0000 optimal
- AverageScenario -118600.0000 -118600.0000 0.0000 optimal
- AboveAverageScenario -167666.6667 -167666.6667 0.0000 optimal
-
-Total number of non-stale discrete instance variables=0
-Total number of non-stale continuous instance variables=3
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 25.0000 80.0000 66.6667 Max-Min: 55.0000 Avg: 57.2222
-
- Index: [SUGAR_BEETS] Values: 375.0000 300.0000 250.0000 Max-Min: 125.0000 Avg: 308.3333
-
- Index: [WHEAT] Values: 100.0000 120.0000 183.3333 Max-Min: 83.3333 Avg: 134.4444
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 118250.0000 114400.0000 107833.3333 Max-Min: 10416.6667 Avg: 113494.4445
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 113494.4444 Max-Min=10416.67
-Converger=Normalized term diff value is 0.2540 - threshold reached=False
-Cumulative run-time=0.49 seconds
-
-Initiating PH iteration=1
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: -32.2222 22.7778 9.4444 Average: 57.2222
- Index: [SUGAR_BEETS] Weights: 66.6667 -8.3333 -58.3333 Average: 308.3333
- Index: [WHEAT] Weights: -34.4444 -14.4444 48.8889 Average: 134.4444
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 118250.0000 114400.0000 107833.3333 Max-Min: 10416.6667 Avg: 113494.4445
-------------------------------------------------
-Starting PH iteration 1 solves
-Queuing solve for scenario=BelowAverageScenario
-Queuing solve for scenario=AverageScenario
-Queuing solve for scenario=AboveAverageScenario
-Waiting for scenario sub-problem solves
-Results obtained for scenario=BelowAverageScenario
-Successfully loaded solution for scenario=BelowAverageScenario - waiting on 2 more
-Results obtained for scenario=AverageScenario
-Successfully loaded solution for scenario=AverageScenario - waiting on 1 more
-Results obtained for scenario=AboveAverageScenario
-Successfully loaded solution for scenario=AboveAverageScenario - waiting on 0 more
-Successfully completed PH iteration 1 solves
-- solution statistics:
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario -56723.0000 -41924.1389 0.0000 optimal
- AverageScenario -118600.0000 -120612.6543 0.0000 optimal
- AboveAverageScenario -166944.4444 -169925.0000 0.0000 optimal
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 100.0000 80.0000 81.1111 Max-Min: 20.0000 Avg: 87.0370
-
- Index: [SUGAR_BEETS] Values: 299.3889 300.0000 250.0000 Max-Min: 50.0000 Avg: 283.1296
-
- Index: [WHEAT] Values: 100.6111 120.0000 168.8889 Max-Min: 68.2778 Avg: 129.8333
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 115932.7778 114400.0000 108988.8889 Max-Min: 6943.8889 Avg: 113107.2222
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 113107.2222 Max-Min= 6943.89
-Converger=Normalized term diff value is 0.1259 - threshold reached=False
-Cumulative run-time=1.00 seconds
-
-Initiating PH iteration=2
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: -19.2593 15.7407 3.5185 Average: 87.0370
- Index: [SUGAR_BEETS] Weights: 82.9259 8.5370 -91.4630 Average: 283.1296
- Index: [WHEAT] Weights: -63.6667 -24.2778 87.9444 Average: 129.8333
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 115932.7778 114400.0000 108988.8889 Max-Min: 6943.8889 Avg: 113107.2222
-------------------------------------------------
-Starting PH iteration 2 solves
-Queuing solve for scenario=BelowAverageScenario
-Queuing solve for scenario=AverageScenario
-Queuing solve for scenario=AboveAverageScenario
-Waiting for scenario sub-problem solves
-Results obtained for scenario=BelowAverageScenario
-Successfully loaded solution for scenario=BelowAverageScenario - waiting on 2 more
-Results obtained for scenario=AverageScenario
-Successfully loaded solution for scenario=AverageScenario - waiting on 1 more
-Results obtained for scenario=AboveAverageScenario
-Successfully loaded solution for scenario=AboveAverageScenario - waiting on 0 more
-Successfully completed PH iteration 2 solves
-- solution statistics:
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario -52560.3334 -40675.6749 0.0000 optimal
- AverageScenario -118600.0000 -117477.5511 0.0000 optimal
- AboveAverageScenario -164959.2593 -174919.3261 0.0000 optimal
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 100.0000 80.0000 120.8148 Max-Min: 40.8148 Avg: 100.2716
-
- Index: [SUGAR_BEETS] Values: 266.3519 300.0000 250.0000 Max-Min: 50.0000 Avg: 272.1173
-
- Index: [WHEAT] Values: 133.6481 120.0000 129.1852 Max-Min: 13.6481 Avg: 127.6111
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 112298.7037 114400.0000 112165.1852 Max-Min: 2234.8148 Avg: 112954.6297
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 112954.6296 Max-Min= 2234.81
-Converger=Normalized term diff value is 0.0816 - threshold reached=False
-Cumulative run-time=1.50 seconds
-
-Initiating PH iteration=3
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: -19.5309 -4.5309 24.0617 Average: 100.2716
- Index: [SUGAR_BEETS] Weights: 77.1605 36.4198 -113.5802 Average: 272.1173
- Index: [WHEAT] Weights: -57.6296 -31.8889 89.5185 Average: 127.6111
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 112298.7037 114400.0000 112165.1852 Max-Min: 2234.8148 Avg: 112954.6297
-------------------------------------------------
-Starting PH iteration 3 solves
-Queuing solve for scenario=BelowAverageScenario
-Queuing solve for scenario=AverageScenario
-Queuing solve for scenario=AboveAverageScenario
-Waiting for scenario sub-problem solves
-Results obtained for scenario=BelowAverageScenario
-Successfully loaded solution for scenario=BelowAverageScenario - waiting on 2 more
-Results obtained for scenario=AverageScenario
-Successfully loaded solution for scenario=AverageScenario - waiting on 1 more
-Results obtained for scenario=AboveAverageScenario
-Successfully loaded solution for scenario=AboveAverageScenario - waiting on 0 more
-Successfully completed PH iteration 3 solves
-- solution statistics:
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario -52750.1112 -41631.0613 0.0000 optimal
- AverageScenario -118600.0000 -111240.0536 0.0000 optimal
- AboveAverageScenario -165047.0679 -178429.0878 0.0000 optimal
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 100.0000 80.0000 119.0586 Max-Min: 39.0586 Avg: 99.6862
-
- Index: [SUGAR_BEETS] Values: 267.8580 300.0000 250.0000 Max-Min: 50.0000 Avg: 272.6193
-
- Index: [WHEAT] Values: 132.1420 120.0000 130.9414 Max-Min: 12.1420 Avg: 127.6944
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 112464.3828 114400.0000 112024.6914 Max-Min: 2375.3086 Avg: 112963.0247
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 112963.0247 Max-Min= 2375.31
-Converger=Normalized term diff value is 0.0796 - threshold reached=False
-Cumulative run-time=1.98 seconds
-
-Initiating PH iteration=4
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: -19.2171 -24.2171 43.4342 Average: 99.6862
- Index: [SUGAR_BEETS] Weights: 72.3992 63.8004 -136.1996 Average: 272.6193
- Index: [WHEAT] Weights: -53.1821 -39.5833 92.7654 Average: 127.6944
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 112464.3828 114400.0000 112024.6914 Max-Min: 2375.3086 Avg: 112963.0247
-------------------------------------------------
-Starting PH iteration 4 solves
-Queuing solve for scenario=BelowAverageScenario
-Queuing solve for scenario=AverageScenario
-Queuing solve for scenario=AboveAverageScenario
-Waiting for scenario sub-problem solves
-Results obtained for scenario=BelowAverageScenario
-Successfully loaded solution for scenario=BelowAverageScenario - waiting on 2 more
-Results obtained for scenario=AverageScenario
-Successfully loaded solution for scenario=AverageScenario - waiting on 1 more
-Results obtained for scenario=AboveAverageScenario
-Successfully loaded solution for scenario=AboveAverageScenario - waiting on 0 more
-Successfully completed PH iteration 4 solves
-- solution statistics:
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario -53356.6482 -42308.6040 0.0000 optimal
- AverageScenario -118600.0000 -105549.0170 0.0000 optimal
- AboveAverageScenario -165466.9239 -181400.6994 0.0000 optimal
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 100.0000 80.0000 110.6615 Max-Min: 30.6615 Avg: 96.8872
-
- Index: [SUGAR_BEETS] Values: 272.6718 300.0000 250.0000 Max-Min: 50.0000 Avg: 274.2239
-
- Index: [WHEAT] Values: 127.3282 120.0000 139.3385 Max-Min: 19.3385 Avg: 128.8889
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 112993.8992 114400.0000 111352.9218 Max-Min: 3047.0782 Avg: 112915.6070
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 112915.6070 Max-Min= 3047.08
-Converger=Normalized term diff value is 0.0776 - threshold reached=False
-Cumulative run-time=2.47 seconds
-
-Initiating PH iteration=5
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: -16.1043 -41.1043 57.2085 Average: 96.8872
- Index: [SUGAR_BEETS] Weights: 70.8471 89.5765 -160.4235 Average: 274.2239
- Index: [WHEAT] Weights: -54.7428 -48.4722 103.2150 Average: 128.8889
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 112993.8992 114400.0000 111352.9218 Max-Min: 3047.0782 Avg: 112915.6070
-------------------------------------------------
-Starting PH iteration 5 solves
-Queuing solve for scenario=BelowAverageScenario
-Queuing solve for scenario=AverageScenario
-Queuing solve for scenario=AboveAverageScenario
-Waiting for scenario sub-problem solves
-Results obtained for scenario=BelowAverageScenario
-Successfully loaded solution for scenario=BelowAverageScenario - waiting on 2 more
-Results obtained for scenario=AverageScenario
-Successfully loaded solution for scenario=AverageScenario - waiting on 1 more
-Results obtained for scenario=AboveAverageScenario
-Successfully loaded solution for scenario=AboveAverageScenario - waiting on 0 more
-Successfully completed PH iteration 5 solves
-- solution statistics:
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario -53381.9476 -42612.1542 0.0000 optimal
- AverageScenario -118600.0000 -100317.7675 0.0000 optimal
- AboveAverageScenario -165649.8800 -184430.7276 0.0000 optimal
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 100.0000 80.0000 107.0024 Max-Min: 27.0024 Avg: 95.6675
-
- Index: [SUGAR_BEETS] Values: 272.8726 300.0000 250.0000 Max-Min: 50.0000 Avg: 274.2909
-
- Index: [WHEAT] Values: 127.1274 120.0000 142.9976 Max-Min: 22.9976 Avg: 130.0417
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 113015.9860 114400.0000 111060.1920 Max-Min: 3339.8080 Avg: 112825.3927
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 112825.3927 Max-Min= 3339.81
-Converger=Normalized term diff value is 0.0794 - threshold reached=False
-Cumulative run-time=2.96 seconds
-
-Initiating PH iteration=6
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: -11.7717 -56.7717 68.5434 Average: 95.6675
- Index: [SUGAR_BEETS] Weights: 69.4288 115.2856 -184.7144 Average: 274.2909
- Index: [WHEAT] Weights: -57.6571 -58.5139 116.1710 Average: 130.0417
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 113015.9860 114400.0000 111060.1920 Max-Min: 3339.8080 Avg: 112825.3927
-------------------------------------------------
-Starting PH iteration 6 solves
-Queuing solve for scenario=BelowAverageScenario
-Queuing solve for scenario=AverageScenario
-Queuing solve for scenario=AboveAverageScenario
-Waiting for scenario sub-problem solves
-Results obtained for scenario=BelowAverageScenario
-Successfully loaded solution for scenario=BelowAverageScenario - waiting on 2 more
-Results obtained for scenario=AverageScenario
-Successfully loaded solution for scenario=AverageScenario - waiting on 1 more
-Results obtained for scenario=AboveAverageScenario
-Successfully loaded solution for scenario=AboveAverageScenario - waiting on 0 more
-Successfully completed PH iteration 6 solves
-- solution statistics:
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario -53219.2912 -42930.7284 0.0000 optimal
- AverageScenario -116329.0978 -95224.7693 0.0000 optimal
- AboveAverageScenario -165668.6671 -187438.9478 0.0000 optimal
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 100.0000 80.0000 106.6267 Max-Min: 26.6267 Avg: 95.5422
-
- Index: [SUGAR_BEETS] Values: 271.5817 287.7249 250.0000 Max-Min: 37.7249 Avg: 269.7688
-
- Index: [WHEAT] Values: 128.4183 132.2751 143.3733 Max-Min: 14.9550 Avg: 134.6889
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 112873.9844 113049.7338 111030.1326 Max-Min: 2019.6012 Avg: 112317.9503
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 112317.9503 Max-Min= 2019.60
-Converger=Normalized term diff value is 0.0668 - threshold reached=False
-Cumulative run-time=3.45 seconds
-
-Initiating PH iteration=7
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: -7.3139 -72.3139 79.6279 Average: 95.5422
- Index: [SUGAR_BEETS] Weights: 71.2416 133.2416 -204.4832 Average: 269.7688
- Index: [WHEAT] Weights: -63.9277 -60.9277 124.8554 Average: 134.6889
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 112873.9844 113049.7338 111030.1326 Max-Min: 2019.6012 Avg: 112317.9503
-------------------------------------------------
-Starting PH iteration 7 solves
-Queuing solve for scenario=BelowAverageScenario
-Queuing solve for scenario=AverageScenario
-Queuing solve for scenario=AboveAverageScenario
-Waiting for scenario sub-problem solves
-Results obtained for scenario=BelowAverageScenario
-Successfully loaded solution for scenario=BelowAverageScenario - waiting on 2 more
-Results obtained for scenario=AverageScenario
-Successfully loaded solution for scenario=AverageScenario - waiting on 1 more
-Results obtained for scenario=AboveAverageScenario
-Successfully loaded solution for scenario=AboveAverageScenario - waiting on 0 more
-Successfully completed PH iteration 7 solves
-- solution statistics:
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario -52132.3685 -42855.4276 0.0000 optimal
- AverageScenario -113596.7315 -91769.7429 0.0000 optimal
- AboveAverageScenario -165847.9809 -190116.4077 0.0000 optimal
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 100.0000 80.0000 103.0404 Max-Min: 23.0404 Avg: 94.3468
-
- Index: [SUGAR_BEETS] Values: 262.9553 272.9553 250.0000 Max-Min: 22.9553 Avg: 261.9702
-
- Index: [WHEAT] Values: 137.0447 147.0447 146.9596 Max-Min: 10.0000 Avg: 143.6830
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 111925.0836 111425.0836 110743.2305 Max-Min: 1181.8531 Avg: 111364.4659
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 111364.4659 Max-Min= 1181.85
-Converger=Normalized term diff value is 0.0542 - threshold reached=False
-Cumulative run-time=3.95 seconds
-
-Initiating PH iteration=8
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: -1.6607 -86.6607 88.3215 Average: 94.3468
- Index: [SUGAR_BEETS] Weights: 72.2267 144.2267 -216.4534 Average: 261.9702
- Index: [WHEAT] Weights: -70.5660 -57.5660 128.1320 Average: 143.6830
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 111925.0836 111425.0836 110743.2305 Max-Min: 1181.8531 Avg: 111364.4659
-------------------------------------------------
-Starting PH iteration 8 solves
-Queuing solve for scenario=BelowAverageScenario
-Queuing solve for scenario=AverageScenario
-Queuing solve for scenario=AboveAverageScenario
-Waiting for scenario sub-problem solves
-Results obtained for scenario=BelowAverageScenario
-Successfully loaded solution for scenario=BelowAverageScenario - waiting on 2 more
-Results obtained for scenario=AverageScenario
-Successfully loaded solution for scenario=AverageScenario - waiting on 1 more
-Results obtained for scenario=AboveAverageScenario
-Successfully loaded solution for scenario=AboveAverageScenario - waiting on 0 more
-Successfully completed PH iteration 8 solves
-- solution statistics:
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario -50594.1533 -43087.2755 0.0000 optimal
- AverageScenario -110943.7976 -89612.4133 0.0000 optimal
- AboveAverageScenario -166238.1425 -191976.5276 0.0000 optimal
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 100.0000 82.6742 95.2372 Max-Min: 17.3258 Avg: 92.6371
-
- Index: [SUGAR_BEETS] Values: 250.7472 259.4102 250.0000 Max-Min: 9.4102 Avg: 253.3858
-
- Index: [WHEAT] Values: 149.2528 157.9157 154.7628 Max-Min: 8.6629 Avg: 153.9771
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 110582.1973 110149.0521 110118.9720 Max-Min: 463.2253 Avg: 110283.4071
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 110283.4071 Max-Min= 463.23
-Converger=Normalized term diff value is 0.0360 - threshold reached=False
-Cumulative run-time=4.47 seconds
-
-Initiating PH iteration=9
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: 5.7022 -96.6237 90.9215 Average: 92.6371
- Index: [SUGAR_BEETS] Weights: 69.5882 150.2511 -219.8392 Average: 253.3858
- Index: [WHEAT] Weights: -75.2903 -53.6274 128.9177 Average: 153.9771
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 110582.1973 110149.0521 110118.9720 Max-Min: 463.2253 Avg: 110283.4071
-------------------------------------------------
-Starting PH iteration 9 solves
-Queuing solve for scenario=BelowAverageScenario
-Queuing solve for scenario=AverageScenario
-Queuing solve for scenario=AboveAverageScenario
-Waiting for scenario sub-problem solves
-Results obtained for scenario=BelowAverageScenario
-Successfully loaded solution for scenario=BelowAverageScenario - waiting on 2 more
-Results obtained for scenario=AverageScenario
-Successfully loaded solution for scenario=AverageScenario - waiting on 1 more
-Results obtained for scenario=AboveAverageScenario
-Successfully loaded solution for scenario=AboveAverageScenario - waiting on 0 more
-Successfully completed PH iteration 9 solves
-- solution statistics:
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario -49273.4043 -43880.3127 0.0000 optimal
- AverageScenario -107787.2495 -88509.4654 0.0000 optimal
- AboveAverageScenario -166583.5934 -192625.4852 0.0000 optimal
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 100.0000 90.9274 88.3281 Max-Min: 11.6719 Avg: 93.0852
-
- Index: [SUGAR_BEETS] Values: 240.2651 244.8014 250.0000 Max-Min: 9.7349 Avg: 245.0222
-
- Index: [WHEAT] Values: 159.7349 164.2712 161.6719 Max-Min: 4.5363 Avg: 161.8926
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 109429.1625 109202.3484 109566.2506 Max-Min: 363.9022 Avg: 109399.2538
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 109399.2538 Max-Min= 363.90
-Converger=Normalized term diff value is 0.0243 - threshold reached=False
-Cumulative run-time=4.97 seconds
-
-Initiating PH iteration=10
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: 12.6170 -98.7814 86.1644 Average: 93.0852
- Index: [SUGAR_BEETS] Weights: 64.8311 150.0303 -214.8614 Average: 245.0222
- Index: [WHEAT] Weights: -77.4481 -51.2489 128.6970 Average: 161.8926
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 109429.1625 109202.3484 109566.2506 Max-Min: 363.9022 Avg: 109399.2538
-------------------------------------------------
-Starting PH iteration 10 solves
-Queuing solve for scenario=BelowAverageScenario
-Queuing solve for scenario=AverageScenario
-Queuing solve for scenario=AboveAverageScenario
-Waiting for scenario sub-problem solves
-Results obtained for scenario=BelowAverageScenario
-Successfully loaded solution for scenario=BelowAverageScenario - waiting on 2 more
-Results obtained for scenario=AverageScenario
-Successfully loaded solution for scenario=AverageScenario - waiting on 1 more
-Results obtained for scenario=AboveAverageScenario
-Successfully loaded solution for scenario=AboveAverageScenario - waiting on 0 more
-Successfully completed PH iteration 10 solves
-- solution statistics:
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario -48295.4044 -44838.3985 0.0000 optimal
- AverageScenario -106137.5004 -88506.9747 0.0000 optimal
- AboveAverageScenario -166656.8733 -191859.9422 0.0000 optimal
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 94.4682 93.5333 86.8625 Max-Min: 7.6057 Avg: 91.6213
-
- Index: [SUGAR_BEETS] Values: 236.1911 236.6585 250.0000 Max-Min: 13.8089 Avg: 240.9499
-
- Index: [WHEAT] Values: 169.3407 169.8082 163.1375 Max-Min: 6.6707 Avg: 167.4288
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108538.4745 108515.1005 109449.0027 Max-Min: 933.9022 Avg: 108834.1926
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108834.1926 Max-Min= 933.90
-Converger=Normalized term diff value is 0.0256 - threshold reached=False
-Cumulative run-time=5.46 seconds
-
-Initiating PH iteration=11
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: 15.4638 -96.8695 81.4056 Average: 91.6213
- Index: [SUGAR_BEETS] Weights: 60.0723 145.7390 -205.8113 Average: 240.9499
- Index: [WHEAT] Weights: -75.5362 -48.8695 124.4056 Average: 167.4288
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108538.4745 108515.1005 109449.0027 Max-Min: 933.9022 Avg: 108834.1926
-------------------------------------------------
-Starting PH iteration 11 solves
-Queuing solve for scenario=BelowAverageScenario
-Queuing solve for scenario=AverageScenario
-Queuing solve for scenario=AboveAverageScenario
-Waiting for scenario sub-problem solves
-Results obtained for scenario=BelowAverageScenario
-Successfully loaded solution for scenario=BelowAverageScenario - waiting on 2 more
-Results obtained for scenario=AverageScenario
-Successfully loaded solution for scenario=AverageScenario - waiting on 1 more
-Results obtained for scenario=AboveAverageScenario
-Successfully loaded solution for scenario=AboveAverageScenario - waiting on 0 more
-Successfully completed PH iteration 11 solves
-- solution statistics:
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario -48019.8023 -45436.2583 0.0000 optimal
- AverageScenario -106363.6872 -89002.9249 0.0000 optimal
- AboveAverageScenario -166820.1863 -190692.5571 0.0000 optimal
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 90.1575 90.1575 83.5963 Max-Min: 6.5612 Avg: 87.9704
-
- Index: [SUGAR_BEETS] Values: 236.8776 236.8776 250.0000 Max-Min: 13.1224 Avg: 241.2517
-
- Index: [WHEAT] Values: 172.9649 172.9649 166.4037 Max-Min: 6.5612 Avg: 170.7779
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108269.1313 108269.1313 109187.7019 Max-Min: 918.5705 Avg: 108575.3215
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108575.3215 Max-Min= 918.57
-Converger=Normalized term diff value is 0.0248 - threshold reached=False
-Cumulative run-time=6.13 seconds
-
-Initiating PH iteration=12
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: 17.6509 -94.6824 77.0315 Average: 87.9704
- Index: [SUGAR_BEETS] Weights: 55.6982 141.3648 -197.0630 Average: 241.2517
- Index: [WHEAT] Weights: -73.3491 -46.6824 120.0315 Average: 170.7779
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108269.1313 108269.1313 109187.7019 Max-Min: 918.5705 Avg: 108575.3215
-------------------------------------------------
-Starting PH iteration 12 solves
-Queuing solve for scenario=BelowAverageScenario
-Queuing solve for scenario=AverageScenario
-Queuing solve for scenario=AboveAverageScenario
-Waiting for scenario sub-problem solves
-Results obtained for scenario=BelowAverageScenario
-Successfully loaded solution for scenario=BelowAverageScenario - waiting on 2 more
-Results obtained for scenario=AverageScenario
-Successfully loaded solution for scenario=AverageScenario - waiting on 1 more
-Results obtained for scenario=AboveAverageScenario
-Successfully loaded solution for scenario=AboveAverageScenario - waiting on 0 more
-Successfully completed PH iteration 12 solves
-- solution statistics:
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario -48118.5852 -45935.9138 0.0000 optimal
- AverageScenario -107549.8346 -89502.5805 0.0000 optimal
- AboveAverageScenario -166995.1863 -189627.5500 0.0000 optimal
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 84.3195 84.3195 80.0963 Max-Min: 4.2232 Avg: 82.9118
-
- Index: [SUGAR_BEETS] Values: 241.5536 241.5536 250.0000 Max-Min: 8.4464 Avg: 244.3690
-
- Index: [WHEAT] Values: 174.1270 174.1270 169.9037 Max-Min: 4.2232 Avg: 172.7192
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108316.4504 108316.4504 108907.7019 Max-Min: 591.2514 Avg: 108513.5342
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108513.5342 Max-Min= 591.25
-Converger=Normalized term diff value is 0.0163 - threshold reached=False
-Cumulative run-time=6.60 seconds
-
-Initiating PH iteration=13
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: 19.0587 -93.2747 74.2160 Average: 82.9118
- Index: [SUGAR_BEETS] Weights: 52.8827 138.5493 -191.4320 Average: 244.3690
- Index: [WHEAT] Weights: -71.9413 -45.2747 117.2160 Average: 172.7192
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108316.4504 108316.4504 108907.7019 Max-Min: 591.2514 Avg: 108513.5342
-------------------------------------------------
-Starting PH iteration 13 solves
-Queuing solve for scenario=BelowAverageScenario
-Queuing solve for scenario=AverageScenario
-Queuing solve for scenario=AboveAverageScenario
-Waiting for scenario sub-problem solves
-Results obtained for scenario=BelowAverageScenario
-Successfully loaded solution for scenario=BelowAverageScenario - waiting on 2 more
-Results obtained for scenario=AverageScenario
-Successfully loaded solution for scenario=AverageScenario - waiting on 1 more
-Results obtained for scenario=AboveAverageScenario
-Successfully loaded solution for scenario=AboveAverageScenario - waiting on 0 more
-Successfully completed PH iteration 13 solves
-- solution statistics:
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario -48322.9411 -46297.1997 0.0000 optimal
- AverageScenario -108686.3876 -89860.4095 0.0000 optimal
- AboveAverageScenario -167170.1864 -188981.7979 0.0000 optimal
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 77.8531 80.0000 76.5963 Max-Min: 3.4037 Avg: 78.1498
-
- Index: [SUGAR_BEETS] Values: 247.4864 246.4129 250.0000 Max-Min: 3.5871 Avg: 247.9664
-
- Index: [WHEAT] Values: 174.6605 173.5871 173.4037 Max-Min: 1.2568 Avg: 173.8838
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108451.7470 108505.4196 108627.7018 Max-Min: 175.9549 Avg: 108528.2895
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108528.2895 Max-Min= 175.95
-Converger=Normalized term diff value is 0.0081 - threshold reached=False
-Cumulative run-time=7.11 seconds
-
-Initiating PH iteration=14
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: 18.7620 -91.4245 72.6625 Average: 78.1498
- Index: [SUGAR_BEETS] Weights: 52.4026 136.9958 -189.3984 Average: 247.9664
- Index: [WHEAT] Weights: -71.1646 -45.5714 116.7359 Average: 173.8838
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108451.7470 108505.4196 108627.7018 Max-Min: 175.9549 Avg: 108528.2895
-------------------------------------------------
-Starting PH iteration 14 solves
-Queuing solve for scenario=BelowAverageScenario
-Queuing solve for scenario=AverageScenario
-Queuing solve for scenario=AboveAverageScenario
-Waiting for scenario sub-problem solves
-Results obtained for scenario=BelowAverageScenario
-Successfully loaded solution for scenario=BelowAverageScenario - waiting on 2 more
-Results obtained for scenario=AverageScenario
-Successfully loaded solution for scenario=AverageScenario - waiting on 1 more
-Results obtained for scenario=AboveAverageScenario
-Successfully loaded solution for scenario=AboveAverageScenario - waiting on 0 more
-Successfully completed PH iteration 14 solves
-- solution statistics:
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario -48461.6170 -46340.8730 0.0000 optimal
- AverageScenario -109027.6782 -90153.8469 0.0000 optimal
- AboveAverageScenario -167291.5137 -188714.1707 0.0000 optimal
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 73.3878 80.0000 74.1697 Max-Min: 6.6122 Avg: 75.8525
-
- Index: [SUGAR_BEETS] Values: 251.5638 248.2577 250.0000 Max-Min: 3.3061 Avg: 249.9405
-
- Index: [WHEAT] Values: 175.0484 171.7423 175.8303 Max-Min: 4.0880 Avg: 174.2070
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108543.0447 108708.3492 108433.5781 Max-Min: 274.7711 Avg: 108561.6573
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108561.6573 Max-Min= 274.77
-Converger=Normalized term diff value is 0.0168 - threshold reached=False
-Cumulative run-time=7.61 seconds
-
-Initiating PH iteration=15
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: 16.2973 -87.2770 70.9797 Average: 75.8525
- Index: [SUGAR_BEETS] Weights: 54.0259 135.3130 -189.3390 Average: 249.9405
- Index: [WHEAT] Weights: -70.3232 -48.0361 118.3592 Average: 174.2070
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108543.0447 108708.3492 108433.5781 Max-Min: 274.7711 Avg: 108561.6573
-------------------------------------------------
-Starting PH iteration 15 solves
-Queuing solve for scenario=BelowAverageScenario
-Queuing solve for scenario=AverageScenario
-Queuing solve for scenario=AboveAverageScenario
-Waiting for scenario sub-problem solves
-Results obtained for scenario=BelowAverageScenario
-Successfully loaded solution for scenario=BelowAverageScenario - waiting on 2 more
-Results obtained for scenario=AverageScenario
-Successfully loaded solution for scenario=AverageScenario - waiting on 1 more
-Results obtained for scenario=AboveAverageScenario
-Successfully loaded solution for scenario=AboveAverageScenario - waiting on 0 more
-Successfully completed PH iteration 15 solves
-- solution statistics:
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario -48519.8797 -45980.0912 0.0000 optimal
- AverageScenario -109108.0606 -90654.2877 0.0000 optimal
- AboveAverageScenario -167274.3729 -188547.9499 0.0000 optimal
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 73.5552 80.0000 74.5125 Max-Min: 6.4448 Avg: 76.0226
-
- Index: [SUGAR_BEETS] Values: 251.9146 248.6922 250.0000 Max-Min: 3.2224 Avg: 250.2023
-
- Index: [WHEAT] Values: 174.5302 171.3078 175.4875 Max-Min: 4.1797 Avg: 173.7751
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108595.0252 108756.1441 108461.0033 Max-Min: 295.1408 Avg: 108604.0575
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108604.0575 Max-Min= 295.14
-Converger=Normalized term diff value is 0.0163 - threshold reached=False
-Cumulative run-time=8.11 seconds
-
-Initiating PH iteration=16
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: 13.8299 -83.2996 69.4697 Average: 76.0226
- Index: [SUGAR_BEETS] Weights: 55.7382 133.8030 -189.5412 Average: 250.2023
- Index: [WHEAT] Weights: -69.5682 -50.5034 120.0716 Average: 173.7751
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108595.0252 108756.1441 108461.0033 Max-Min: 295.1408 Avg: 108604.0575
-------------------------------------------------
-Starting PH iteration 16 solves
-Queuing solve for scenario=BelowAverageScenario
-Queuing solve for scenario=AverageScenario
-Queuing solve for scenario=AboveAverageScenario
-Waiting for scenario sub-problem solves
-Results obtained for scenario=BelowAverageScenario
-Successfully loaded solution for scenario=BelowAverageScenario - waiting on 2 more
-Results obtained for scenario=AverageScenario
-Successfully loaded solution for scenario=AverageScenario - waiting on 1 more
-Results obtained for scenario=AboveAverageScenario
-Successfully loaded solution for scenario=AboveAverageScenario - waiting on 0 more
-Successfully completed PH iteration 16 solves
-- solution statistics:
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario -48558.6530 -45603.5221 0.0000 optimal
- AverageScenario -109083.6688 -91135.8164 0.0000 optimal
- AboveAverageScenario -167178.7654 -188413.2933 0.0000 optimal
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 76.1927 80.0000 76.4247 Max-Min: 3.8073 Avg: 77.5391
-
- Index: [SUGAR_BEETS] Values: 250.4640 248.5604 250.0000 Max-Min: 1.9037 Avg: 249.6748
-
- Index: [WHEAT] Values: 173.3433 171.4396 173.5753 Max-Min: 2.1357 Avg: 172.7861
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108646.4578 108741.6409 108613.9753 Max-Min: 127.6656 Avg: 108667.3580
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108667.3580 Max-Min= 127.67
-Converger=Normalized term diff value is 0.0098 - threshold reached=False
-Cumulative run-time=8.60 seconds
-
-Initiating PH iteration=17
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: 12.4835 -80.8387 68.3552 Average: 77.5391
- Index: [SUGAR_BEETS] Weights: 56.5275 132.6886 -189.2160 Average: 249.6748
- Index: [WHEAT] Weights: -69.0109 -51.8499 120.8608 Average: 172.7861
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108646.4578 108741.6409 108613.9753 Max-Min: 127.6656 Avg: 108667.3580
-------------------------------------------------
-Starting PH iteration 17 solves
-Queuing solve for scenario=BelowAverageScenario
-Queuing solve for scenario=AverageScenario
-Queuing solve for scenario=AboveAverageScenario
-Waiting for scenario sub-problem solves
-Results obtained for scenario=BelowAverageScenario
-Successfully loaded solution for scenario=BelowAverageScenario - waiting on 2 more
-Results obtained for scenario=AverageScenario
-Successfully loaded solution for scenario=AverageScenario - waiting on 1 more
-Results obtained for scenario=AboveAverageScenario
-Successfully loaded solution for scenario=AboveAverageScenario - waiting on 0 more
-Successfully completed PH iteration 17 solves
-- solution statistics:
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario -48633.2384 -45416.7771 0.0000 optimal
- AverageScenario -109104.9040 -91454.2268 0.0000 optimal
- AboveAverageScenario -167068.5343 -188284.1689 0.0000 optimal
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 79.0556 80.0000 78.6293 Max-Min: 1.3707 Avg: 79.2283
-
- Index: [SUGAR_BEETS] Values: 249.1473 248.6752 250.0000 Max-Min: 1.3248 Avg: 249.2742
-
- Index: [WHEAT] Values: 171.7970 171.3248 171.3707 Max-Min: 0.4722 Avg: 171.4975
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108730.6584 108754.2672 108790.3452 Max-Min: 59.6867 Avg: 108758.4236
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108758.4236 Max-Min= 59.69
-Converger=Normalized term diff value is 0.0032 - threshold reached=False
-Cumulative run-time=9.09 seconds
-
-Initiating PH iteration=18
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: 12.3108 -80.0670 67.7562 Average: 79.2283
- Index: [SUGAR_BEETS] Weights: 56.4006 132.0895 -188.4902 Average: 249.2742
- Index: [WHEAT] Weights: -68.7114 -52.0225 120.7340 Average: 171.4975
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108730.6584 108754.2672 108790.3452 Max-Min: 59.6867 Avg: 108758.4236
-------------------------------------------------
-Starting PH iteration 18 solves
-Queuing solve for scenario=BelowAverageScenario
-Queuing solve for scenario=AverageScenario
-Queuing solve for scenario=AboveAverageScenario
-Waiting for scenario sub-problem solves
-Results obtained for scenario=BelowAverageScenario
-Successfully loaded solution for scenario=BelowAverageScenario - waiting on 2 more
-Results obtained for scenario=AverageScenario
-Successfully loaded solution for scenario=AverageScenario - waiting on 1 more
-Results obtained for scenario=AboveAverageScenario
-Successfully loaded solution for scenario=AboveAverageScenario - waiting on 0 more
-Successfully completed PH iteration 18 solves
-- solution statistics:
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario -48755.1357 -45415.3157 0.0000 optimal
- AverageScenario -109226.4725 -91575.5685 0.0000 optimal
- AboveAverageScenario -166982.2859 -188175.7176 0.0000 optimal
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 80.9175 80.0000 80.3543 Max-Min: 0.9175 Avg: 80.4239
-
- Index: [SUGAR_BEETS] Values: 248.8735 249.3323 250.0000 Max-Min: 1.1265 Avg: 249.4019
-
- Index: [WHEAT] Values: 170.2090 170.6677 169.6457 Max-Min: 1.0220 Avg: 170.1741
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108849.4892 108826.5512 108928.3426 Max-Min: 101.7914 Avg: 108868.1277
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108868.1277 Max-Min= 101.79
-Converger=Normalized term diff value is 0.0026 - threshold reached=False
-Cumulative run-time=9.58 seconds
-
-Initiating PH iteration=19
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: 12.8044 -80.4909 67.6866 Average: 80.4239
- Index: [SUGAR_BEETS] Weights: 55.8722 132.0199 -187.8921 Average: 249.4019
- Index: [WHEAT] Weights: -68.6766 -51.5289 120.2056 Average: 170.1741
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108849.4892 108826.5512 108928.3426 Max-Min: 101.7914 Avg: 108868.1277
-------------------------------------------------
-Starting PH iteration 19 solves
-Queuing solve for scenario=BelowAverageScenario
-Queuing solve for scenario=AverageScenario
-Queuing solve for scenario=AboveAverageScenario
-Waiting for scenario sub-problem solves
-Results obtained for scenario=BelowAverageScenario
-Successfully loaded solution for scenario=BelowAverageScenario - waiting on 2 more
-Results obtained for scenario=AverageScenario
-Successfully loaded solution for scenario=AverageScenario - waiting on 1 more
-Results obtained for scenario=AboveAverageScenario
-Successfully loaded solution for scenario=AboveAverageScenario - waiting on 0 more
-Successfully completed PH iteration 19 solves
-- solution statistics:
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario -48896.7853 -45504.4152 0.0000 optimal
- AverageScenario -109412.8043 -91544.0545 0.0000 optimal
- AboveAverageScenario -166930.7799 -188124.7934 0.0000 optimal
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 81.6195 80.0000 81.3844 Max-Min: 1.6195 Avg: 81.0013
-
- Index: [SUGAR_BEETS] Values: 249.5297 250.3395 250.0000 Max-Min: 0.8098 Avg: 249.9564
-
- Index: [WHEAT] Values: 168.8507 169.6605 168.6156 Max-Min: 1.0449 Avg: 169.0423
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108977.8318 108937.3431 109010.7521 Max-Min: 73.4091 Avg: 108975.3090
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108975.3090 Max-Min= 73.41
-Converger=Normalized term diff value is 0.0039 - threshold reached=False
-Cumulative run-time=10.07 seconds
-
-Initiating PH iteration=20
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: 13.4226 -81.4923 68.0696 Average: 81.0013
- Index: [SUGAR_BEETS] Weights: 55.4455 132.4030 -187.8485 Average: 249.9564
- Index: [WHEAT] Weights: -68.8682 -50.9107 119.7789 Average: 169.0423
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108977.8318 108937.3431 109010.7521 Max-Min: 73.4091 Avg: 108975.3090
-------------------------------------------------
-Starting PH iteration 20 solves
-Queuing solve for scenario=BelowAverageScenario
-Queuing solve for scenario=AverageScenario
-Queuing solve for scenario=AboveAverageScenario
-Waiting for scenario sub-problem solves
-Results obtained for scenario=BelowAverageScenario
-Successfully loaded solution for scenario=BelowAverageScenario - waiting on 2 more
-Results obtained for scenario=AverageScenario
-Successfully loaded solution for scenario=AverageScenario - waiting on 1 more
-Results obtained for scenario=AboveAverageScenario
-Successfully loaded solution for scenario=AboveAverageScenario - waiting on 0 more
-Successfully completed PH iteration 20 solves
-- solution statistics:
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario -49016.9788 -45594.9914 0.0000 optimal
- AverageScenario -109590.5384 -91424.1875 0.0000 optimal
- AboveAverageScenario -166908.2936 -188156.5533 0.0000 optimal
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 81.5787 80.0000 81.8341 Max-Min: 1.8341 Avg: 81.1376
-
- Index: [SUGAR_BEETS] Values: 250.5109 251.3002 250.0000 Max-Min: 1.3002 Avg: 250.6037
-
- Index: [WHEAT] Values: 167.9104 168.6998 168.1659 Max-Min: 0.7893 Avg: 168.2587
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 109082.4903 109043.0228 109046.7302 Max-Min: 39.4675 Avg: 109057.4144
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 109057.4144 Max-Min= 39.47
-Converger=Normalized term diff value is 0.0043 - threshold reached=False
-Cumulative run-time=10.57 seconds
-
-Initiating PH iteration=21
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: 13.8637 -82.6299 68.7662 Average: 81.1376
- Index: [SUGAR_BEETS] Weights: 55.3527 133.0995 -188.4522 Average: 250.6037
- Index: [WHEAT] Weights: -69.2164 -50.4696 119.6860 Average: 168.2587
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 109082.4903 109043.0228 109046.7302 Max-Min: 39.4675 Avg: 109057.4144
-------------------------------------------------
-Starting PH iteration 21 solves
-Queuing solve for scenario=BelowAverageScenario
-Queuing solve for scenario=AverageScenario
-Queuing solve for scenario=AboveAverageScenario
-Waiting for scenario sub-problem solves
-Results obtained for scenario=BelowAverageScenario
-Successfully loaded solution for scenario=BelowAverageScenario - waiting on 2 more
-Results obtained for scenario=AverageScenario
-Successfully loaded solution for scenario=AverageScenario - waiting on 1 more
-Results obtained for scenario=AboveAverageScenario
-Successfully loaded solution for scenario=AboveAverageScenario - waiting on 0 more
-Successfully completed PH iteration 21 solves
-- solution statistics:
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario -49084.6312 -45641.9531 0.0000 optimal
- AverageScenario -109699.2672 -91266.5705 0.0000 optimal
- AboveAverageScenario -166905.0304 -188266.3943 0.0000 optimal
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 81.2739 80.0000 81.8994 Max-Min: 1.8994 Avg: 81.0578
-
- Index: [SUGAR_BEETS] Values: 251.2510 251.8879 250.0000 Max-Min: 1.8879 Avg: 251.0463
-
- Index: [WHEAT] Values: 167.4751 168.1121 168.1006 Max-Min: 0.6370 Avg: 167.8959
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 109139.5199 109107.6724 109051.9513 Max-Min: 87.5686 Avg: 109099.7145
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 109099.7145 Max-Min= 87.57
-Converger=Normalized term diff value is 0.0044 - threshold reached=False
-Cumulative run-time=11.05 seconds
-
-Initiating PH iteration=22
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: 14.0798 -83.6876 69.6078 Average: 81.0578
- Index: [SUGAR_BEETS] Weights: 55.5574 133.9411 -189.4985 Average: 251.0463
- Index: [WHEAT] Weights: -69.6372 -50.2535 119.8907 Average: 167.8959
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 109139.5199 109107.6724 109051.9513 Max-Min: 87.5686 Avg: 109099.7145
-------------------------------------------------
-Starting PH iteration 22 solves
-Queuing solve for scenario=BelowAverageScenario
-Queuing solve for scenario=AverageScenario
-Queuing solve for scenario=AboveAverageScenario
-Waiting for scenario sub-problem solves
-Results obtained for scenario=BelowAverageScenario
-Successfully loaded solution for scenario=BelowAverageScenario - waiting on 2 more
-Results obtained for scenario=AverageScenario
-Successfully loaded solution for scenario=AverageScenario - waiting on 1 more
-Results obtained for scenario=AboveAverageScenario
-Successfully loaded solution for scenario=AboveAverageScenario - waiting on 0 more
-Successfully completed PH iteration 22 solves
-- solution statistics:
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario -49089.7490 -45643.9041 0.0000 optimal
- AverageScenario -109715.9075 -91103.4143 0.0000 optimal
- AboveAverageScenario -166913.8811 -188424.2289 0.0000 optimal
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 80.9779 80.0000 81.7224 Max-Min: 1.7224 Avg: 80.9001
-
- Index: [SUGAR_BEETS] Values: 251.4889 251.9779 250.0000 Max-Min: 1.9779 Avg: 251.1556
-
- Index: [WHEAT] Values: 167.5332 168.0221 168.2776 Max-Min: 0.7445 Avg: 167.9443
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 109142.0146 109117.5666 109037.7903 Max-Min: 104.2243 Avg: 109099.1238
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 109099.1238 Max-Min= 104.22
-Converger=Normalized term diff value is 0.0040 - threshold reached=False
-Cumulative run-time=11.71 seconds
-
-Initiating PH iteration=23
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: 14.1577 -84.5877 70.4301 Average: 80.9001
- Index: [SUGAR_BEETS] Weights: 55.8907 134.7634 -190.6541 Average: 251.1556
- Index: [WHEAT] Weights: -70.0484 -50.1757 120.2240 Average: 167.9443
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 109142.0146 109117.5666 109037.7903 Max-Min: 104.2243 Avg: 109099.1238
-------------------------------------------------
-Starting PH iteration 23 solves
-Queuing solve for scenario=BelowAverageScenario
-Queuing solve for scenario=AverageScenario
-Queuing solve for scenario=AboveAverageScenario
-Waiting for scenario sub-problem solves
-Results obtained for scenario=BelowAverageScenario
-Successfully loaded solution for scenario=BelowAverageScenario - waiting on 2 more
-Results obtained for scenario=AverageScenario
-Successfully loaded solution for scenario=AverageScenario - waiting on 1 more
-Results obtained for scenario=AboveAverageScenario
-Successfully loaded solution for scenario=AboveAverageScenario - waiting on 0 more
-Successfully completed PH iteration 23 solves
-- solution statistics:
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario -49041.7412 -45622.8380 0.0000 optimal
- AverageScenario -109652.6806 -90955.5225 0.0000 optimal
- AboveAverageScenario -166931.2559 -188589.7403 0.0000 optimal
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 80.7424 80.0000 81.3749 Max-Min: 1.3749 Avg: 80.7058
-
- Index: [SUGAR_BEETS] Values: 251.2649 251.6361 250.0000 Max-Min: 1.6361 Avg: 250.9670
-
- Index: [WHEAT] Values: 167.9927 168.3639 168.6251 Max-Min: 0.6324 Avg: 168.3272
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 109098.5331 109079.9723 109009.9905 Max-Min: 88.5426 Avg: 109062.8320
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 109062.8320 Max-Min= 88.54
-Converger=Normalized term diff value is 0.0032 - threshold reached=False
-Cumulative run-time=12.22 seconds
-
-Initiating PH iteration=24
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: 14.1943 -85.2935 71.0992 Average: 80.7058
- Index: [SUGAR_BEETS] Weights: 56.1886 135.4325 -191.6211 Average: 250.9670
- Index: [WHEAT] Weights: -70.3829 -50.1390 120.5219 Average: 168.3272
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 109098.5331 109079.9723 109009.9905 Max-Min: 88.5426 Avg: 109062.8320
-------------------------------------------------
-Starting PH iteration 24 solves
-Queuing solve for scenario=BelowAverageScenario
-Queuing solve for scenario=AverageScenario
-Queuing solve for scenario=AboveAverageScenario
-Waiting for scenario sub-problem solves
-Results obtained for scenario=BelowAverageScenario
-Successfully loaded solution for scenario=BelowAverageScenario - waiting on 2 more
-Results obtained for scenario=AverageScenario
-Successfully loaded solution for scenario=AverageScenario - waiting on 1 more
-Results obtained for scenario=AboveAverageScenario
-Successfully loaded solution for scenario=AboveAverageScenario - waiting on 0 more
-Successfully completed PH iteration 24 solves
-- solution statistics:
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario -48961.0404 -45601.5516 0.0000 optimal
- AverageScenario -109541.3136 -90837.9368 0.0000 optimal
- AboveAverageScenario -166954.9676 -188727.3112 0.0000 optimal
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 80.5114 80.0000 80.9006 Max-Min: 0.9006 Avg: 80.4707
-
- Index: [SUGAR_BEETS] Values: 250.7784 251.0341 250.0000 Max-Min: 1.0341 Avg: 250.6042
-
- Index: [WHEAT] Values: 168.7102 168.9659 169.0994 Max-Min: 0.3892 Avg: 168.9251
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 109026.5401 109013.7540 108972.0518 Max-Min: 54.4883 Avg: 109004.1153
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 109004.1153 Max-Min= 54.49
-Converger=Normalized term diff value is 0.0021 - threshold reached=False
-Cumulative run-time=12.72 seconds
-
-Initiating PH iteration=25
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: 14.2351 -85.7642 71.5291 Average: 80.4707
- Index: [SUGAR_BEETS] Weights: 56.3628 135.8625 -192.2253 Average: 250.6042
- Index: [WHEAT] Weights: -70.5979 -50.0983 120.6962 Average: 168.9251
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 109026.5401 109013.7540 108972.0518 Max-Min: 54.4883 Avg: 109004.1153
-------------------------------------------------
-Starting PH iteration 25 solves
-Queuing solve for scenario=BelowAverageScenario
-Queuing solve for scenario=AverageScenario
-Queuing solve for scenario=AboveAverageScenario
-Waiting for scenario sub-problem solves
-Results obtained for scenario=BelowAverageScenario
-Successfully loaded solution for scenario=BelowAverageScenario - waiting on 2 more
-Results obtained for scenario=AverageScenario
-Successfully loaded solution for scenario=AverageScenario - waiting on 1 more
-Results obtained for scenario=AboveAverageScenario
-Successfully loaded solution for scenario=AboveAverageScenario - waiting on 0 more
-Successfully completed PH iteration 25 solves
-- solution statistics:
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario -48870.2028 -45591.4304 0.0000 optimal
- AverageScenario -109416.4454 -90761.4824 0.0000 optimal
- AboveAverageScenario -166982.1850 -188814.9014 0.0000 optimal
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 80.2356 80.0000 80.3563 Max-Min: 0.3563 Avg: 80.1973
-
- Index: [SUGAR_BEETS] Values: 250.2414 250.3592 250.0000 Max-Min: 0.3592 Avg: 250.2002
-
- Index: [WHEAT] Values: 169.5230 169.6408 169.6437 Max-Min: 0.1207 Avg: 169.6025
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108945.3987 108939.5081 108928.5039 Max-Min: 16.8947 Avg: 108937.8036
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108937.8036 Max-Min= 16.89
-Converger=Normalized term diff value is 0.0008 - threshold reached=False
-Cumulative run-time=13.20 seconds
-
-Initiating PH iteration=26
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: 14.2734 -85.9615 71.6881 Average: 80.1973
- Index: [SUGAR_BEETS] Weights: 56.4040 136.0215 -192.4255 Average: 250.2002
- Index: [WHEAT] Weights: -70.6774 -50.0599 120.7373 Average: 169.6025
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108945.3987 108939.5081 108928.5039 Max-Min: 16.8947 Avg: 108937.8036
-------------------------------------------------
-Starting PH iteration 26 solves
-Queuing solve for scenario=BelowAverageScenario
-Queuing solve for scenario=AverageScenario
-Queuing solve for scenario=AboveAverageScenario
-Waiting for scenario sub-problem solves
-Results obtained for scenario=BelowAverageScenario
-Successfully loaded solution for scenario=BelowAverageScenario - waiting on 2 more
-Results obtained for scenario=AverageScenario
-Successfully loaded solution for scenario=AverageScenario - waiting on 1 more
-Results obtained for scenario=AboveAverageScenario
-Successfully loaded solution for scenario=AboveAverageScenario - waiting on 0 more
-Successfully completed PH iteration 26 solves
-- solution statistics:
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario -48787.9261 -45592.2291 0.0000 optimal
- AverageScenario -109305.2533 -90731.6873 0.0000 optimal
- AboveAverageScenario -167008.9000 -188845.8817 0.0000 optimal
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 79.9239 80.0000 79.8220 Max-Min: 0.1780 Avg: 79.9153
-
- Index: [SUGAR_BEETS] Values: 249.7962 249.7581 250.0000 Max-Min: 0.2419 Avg: 249.8514
-
- Index: [WHEAT] Values: 170.2799 170.2419 170.1780 Max-Min: 0.1019 Avg: 170.2333
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108871.4918 108873.3939 108885.7601 Max-Min: 14.2683 Avg: 108876.8819
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108876.8819 Max-Min= 14.27
-Converger=Normalized term diff value is 0.0005 - threshold reached=False
-Cumulative run-time=13.69 seconds
-
-Initiating PH iteration=27
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: 14.2820 -85.8768 71.5948 Average: 79.9153
- Index: [SUGAR_BEETS] Weights: 56.3487 135.9282 -192.2769 Average: 249.8514
- Index: [WHEAT] Weights: -70.6307 -50.0513 120.6821 Average: 170.2333
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108871.4918 108873.3939 108885.7601 Max-Min: 14.2683 Avg: 108876.8819
-------------------------------------------------
-Starting PH iteration 27 solves
-Queuing solve for scenario=BelowAverageScenario
-Queuing solve for scenario=AverageScenario
-Queuing solve for scenario=AboveAverageScenario
-Waiting for scenario sub-problem solves
-Results obtained for scenario=BelowAverageScenario
-Successfully loaded solution for scenario=BelowAverageScenario - waiting on 2 more
-Results obtained for scenario=AverageScenario
-Successfully loaded solution for scenario=AverageScenario - waiting on 1 more
-Results obtained for scenario=AboveAverageScenario
-Successfully loaded solution for scenario=AboveAverageScenario - waiting on 0 more
-Successfully completed PH iteration 27 solves
-- solution statistics:
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario -48726.5365 -45598.0031 0.0000 optimal
- AverageScenario -109224.0783 -90747.2556 0.0000 optimal
- AboveAverageScenario -167030.7675 -188826.0224 0.0000 optimal
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 79.6333 80.0000 79.3846 Max-Min: 0.6154 Avg: 79.6727
-
- Index: [SUGAR_BEETS] Values: 249.5027 249.3193 250.0000 Max-Min: 0.6807 Avg: 249.6073
-
- Index: [WHEAT] Values: 170.8640 170.6807 170.6154 Max-Min: 0.2487 Avg: 170.7200
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108815.9603 108825.1277 108850.7720 Max-Min: 34.8117 Avg: 108830.6200
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108830.6200 Max-Min= 34.81
-Converger=Normalized term diff value is 0.0015 - threshold reached=False
-Cumulative run-time=14.19 seconds
-
-Initiating PH iteration=28
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: 14.2427 -85.5495 71.3068 Average: 79.6727
- Index: [SUGAR_BEETS] Weights: 56.2441 135.6401 -191.8842 Average: 249.6073
- Index: [WHEAT] Weights: -70.4867 -50.0907 120.5774 Average: 170.7200
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108815.9603 108825.1277 108850.7720 Max-Min: 34.8117 Avg: 108830.6200
-------------------------------------------------
-Starting PH iteration 28 solves
-Queuing solve for scenario=BelowAverageScenario
-Queuing solve for scenario=AverageScenario
-Queuing solve for scenario=AboveAverageScenario
-Waiting for scenario sub-problem solves
-Results obtained for scenario=BelowAverageScenario
-Successfully loaded solution for scenario=BelowAverageScenario - waiting on 2 more
-Results obtained for scenario=AverageScenario
-Successfully loaded solution for scenario=AverageScenario - waiting on 1 more
-Results obtained for scenario=AboveAverageScenario
-Successfully loaded solution for scenario=AboveAverageScenario - waiting on 0 more
-Successfully completed PH iteration 28 solves
-- solution statistics:
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario -48691.8901 -45603.0154 0.0000 optimal
- AverageScenario -109179.4772 -90799.7954 0.0000 optimal
- AboveAverageScenario -167044.4187 -188768.7523 0.0000 optimal
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 79.4300 80.0000 79.1116 Max-Min: 0.8884 Avg: 79.5139
-
- Index: [SUGAR_BEETS] Values: 249.3633 249.0783 250.0000 Max-Min: 0.9217 Avg: 249.4805
-
- Index: [WHEAT] Values: 171.2067 170.9217 170.8884 Max-Min: 0.3184 Avg: 171.0056
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108784.3580 108798.6081 108828.9300 Max-Min: 44.5720 Avg: 108803.9654
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108803.9654 Max-Min= 44.57
-Converger=Normalized term diff value is 0.0021 - threshold reached=False
-Cumulative run-time=14.70 seconds
-
-Initiating PH iteration=29
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: 14.1588 -85.0633 70.9046 Average: 79.5139
- Index: [SUGAR_BEETS] Weights: 56.1268 135.2379 -191.3647 Average: 249.4805
- Index: [WHEAT] Weights: -70.2856 -50.1746 120.4602 Average: 171.0056
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108784.3580 108798.6081 108828.9300 Max-Min: 44.5720 Avg: 108803.9654
-------------------------------------------------
-Starting PH iteration 29 solves
-Queuing solve for scenario=BelowAverageScenario
-Queuing solve for scenario=AverageScenario
-Queuing solve for scenario=AboveAverageScenario
-Waiting for scenario sub-problem solves
-Results obtained for scenario=BelowAverageScenario
-Successfully loaded solution for scenario=BelowAverageScenario - waiting on 2 more
-Results obtained for scenario=AverageScenario
-Successfully loaded solution for scenario=AverageScenario - waiting on 1 more
-Results obtained for scenario=AboveAverageScenario
-Successfully loaded solution for scenario=AboveAverageScenario - waiting on 0 more
-Successfully completed PH iteration 29 solves
-- solution statistics:
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario -48684.3898 -45604.6345 0.0000 optimal
- AverageScenario -109170.7743 -90875.4467 0.0000 optimal
- AboveAverageScenario -167048.4036 -188690.7693 0.0000 optimal
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 79.3551 80.0000 79.0319 Max-Min: 0.9681 Avg: 79.4623
-
- Index: [SUGAR_BEETS] Values: 249.3537 249.0312 250.0000 Max-Min: 0.9688 Avg: 249.4616
-
- Index: [WHEAT] Values: 171.2912 170.9688 170.9681 Max-Min: 0.3232 Avg: 171.0760
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108777.3108 108793.4334 108822.5543 Max-Min: 45.2435 Avg: 108797.7662
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108797.7662 Max-Min= 45.24
-Converger=Normalized term diff value is 0.0023 - threshold reached=False
-Cumulative run-time=15.19 seconds
-
-Initiating PH iteration=30
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: 14.0515 -84.5257 70.4742 Average: 79.4623
- Index: [SUGAR_BEETS] Weights: 56.0189 134.8075 -190.8264 Average: 249.4616
- Index: [WHEAT] Weights: -70.0704 -50.2818 120.3522 Average: 171.0760
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108777.3108 108793.4334 108822.5543 Max-Min: 45.2435 Avg: 108797.7662
-------------------------------------------------
-Starting PH iteration 30 solves
-Queuing solve for scenario=BelowAverageScenario
-Queuing solve for scenario=AverageScenario
-Queuing solve for scenario=AboveAverageScenario
-Waiting for scenario sub-problem solves
-Results obtained for scenario=BelowAverageScenario
-Successfully loaded solution for scenario=BelowAverageScenario - waiting on 2 more
-Results obtained for scenario=AverageScenario
-Successfully loaded solution for scenario=AverageScenario - waiting on 1 more
-Results obtained for scenario=AboveAverageScenario
-Successfully loaded solution for scenario=AboveAverageScenario - waiting on 0 more
-Successfully completed PH iteration 30 solves
-- solution statistics:
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario -48700.2941 -45603.2452 0.0000 optimal
- AverageScenario -109192.4081 -90957.9464 0.0000 optimal
- AboveAverageScenario -167043.3908 -188608.6685 0.0000 optimal
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 79.4108 80.0000 79.1322 Max-Min: 0.8678 Avg: 79.5143
-
- Index: [SUGAR_BEETS] Values: 249.4427 249.1482 250.0000 Max-Min: 0.8518 Avg: 249.5303
-
- Index: [WHEAT] Values: 171.1464 170.8518 170.8678 Max-Min: 0.2946 Avg: 170.9554
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108791.5669 108806.2967 108830.5746 Max-Min: 39.0077 Avg: 108809.4794
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108809.4794 Max-Min= 39.01
-Converger=Normalized term diff value is 0.0020 - threshold reached=False
-Cumulative run-time=15.69 seconds
-
-Initiating PH iteration=31
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: 13.9480 -84.0400 70.0920 Average: 79.5143
- Index: [SUGAR_BEETS] Weights: 55.9313 134.4253 -190.3567 Average: 249.5303
- Index: [WHEAT] Weights: -69.8793 -50.3853 120.2647 Average: 170.9554
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108791.5669 108806.2967 108830.5746 Max-Min: 39.0077 Avg: 108809.4794
-------------------------------------------------
-Starting PH iteration 31 solves
-Queuing solve for scenario=BelowAverageScenario
-Queuing solve for scenario=AverageScenario
-Queuing solve for scenario=AboveAverageScenario
-Waiting for scenario sub-problem solves
-Results obtained for scenario=BelowAverageScenario
-Successfully loaded solution for scenario=BelowAverageScenario - waiting on 2 more
-Results obtained for scenario=AverageScenario
-Successfully loaded solution for scenario=AverageScenario - waiting on 1 more
-Results obtained for scenario=AboveAverageScenario
-Successfully loaded solution for scenario=AboveAverageScenario - waiting on 0 more
-Successfully completed PH iteration 31 solves
-- solution statistics:
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario -48733.0416 -45600.6531 0.0000 optimal
- AverageScenario -109235.6947 -91032.0684 0.0000 optimal
- AboveAverageScenario -167031.7097 -188536.5320 0.0000 optimal
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 79.5663 80.0000 79.3658 Max-Min: 0.6342 Avg: 79.6440
-
- Index: [SUGAR_BEETS] Values: 249.5990 249.3821 250.0000 Max-Min: 0.6179 Avg: 249.6604
-
- Index: [WHEAT] Values: 170.8347 170.6179 170.6342 Max-Min: 0.2168 Avg: 170.6956
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108821.1927 108832.0347 108849.2645 Max-Min: 28.0718 Avg: 108834.1640
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108834.1640 Max-Min= 28.07
-Converger=Normalized term diff value is 0.0015 - threshold reached=False
-Cumulative run-time=16.17 seconds
-
-Initiating PH iteration=32
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: 13.8703 -83.6841 69.8138 Average: 79.6440
- Index: [SUGAR_BEETS] Weights: 55.8699 134.1471 -190.0170 Average: 249.6604
- Index: [WHEAT] Weights: -69.7402 -50.4630 120.2033 Average: 170.6956
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108821.1927 108832.0347 108849.2645 Max-Min: 28.0718 Avg: 108834.1640
-------------------------------------------------
-Starting PH iteration 32 solves
-Queuing solve for scenario=BelowAverageScenario
-Queuing solve for scenario=AverageScenario
-Queuing solve for scenario=AboveAverageScenario
-Waiting for scenario sub-problem solves
-Results obtained for scenario=BelowAverageScenario
-Successfully loaded solution for scenario=BelowAverageScenario - waiting on 2 more
-Results obtained for scenario=AverageScenario
-Successfully loaded solution for scenario=AverageScenario - waiting on 1 more
-Results obtained for scenario=AboveAverageScenario
-Successfully loaded solution for scenario=AboveAverageScenario - waiting on 0 more
-Successfully completed PH iteration 32 solves
-- solution statistics:
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario -48774.5906 -45598.5111 0.0000 optimal
- AverageScenario -109290.3033 -91086.4074 0.0000 optimal
- AboveAverageScenario -167016.5514 -188484.3494 0.0000 optimal
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 79.7738 80.0000 79.6690 Max-Min: 0.3310 Avg: 79.8142
-
- Index: [SUGAR_BEETS] Values: 249.7904 249.6773 250.0000 Max-Min: 0.3227 Avg: 249.8226
-
- Index: [WHEAT] Values: 170.4358 170.3227 170.3310 Max-Min: 0.1131 Avg: 170.3632
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108858.8485 108864.5047 108873.5178 Max-Min: 14.6693 Avg: 108865.6237
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108865.6237 Max-Min= 14.67
-Converger=Normalized term diff value is 0.0008 - threshold reached=False
-Cumulative run-time=16.65 seconds
-
-Initiating PH iteration=33
-Variable averages and weights prior to scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Weights: 13.8298 -83.4983 69.6685 Average: 79.8142
- Index: [SUGAR_BEETS] Weights: 55.8378 134.0018 -189.8396 Average: 249.8226
- Index: [WHEAT] Weights: -69.6676 -50.5035 120.1711 Average: 170.3632
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108858.8485 108864.5047 108873.5178 Max-Min: 14.6693 Avg: 108865.6237
-------------------------------------------------
-Starting PH iteration 33 solves
-Queuing solve for scenario=BelowAverageScenario
-Queuing solve for scenario=AverageScenario
-Queuing solve for scenario=AboveAverageScenario
-Waiting for scenario sub-problem solves
-Results obtained for scenario=BelowAverageScenario
-Successfully loaded solution for scenario=BelowAverageScenario - waiting on 2 more
-Results obtained for scenario=AverageScenario
-Successfully loaded solution for scenario=AverageScenario - waiting on 1 more
-Results obtained for scenario=AboveAverageScenario
-Successfully loaded solution for scenario=AboveAverageScenario - waiting on 0 more
-Successfully completed PH iteration 33 solves
-- solution statistics:
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario -48816.7780 -45597.5610 0.0000 optimal
- AverageScenario -109345.7489 -91114.9076 0.0000 optimal
- AboveAverageScenario -167001.1579 -188457.2369 0.0000 optimal
-
-Variable values following scenario solves:
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 79.9844 80.0000 79.9768 Max-Min: 0.0232 Avg: 79.9871
-
- Index: [SUGAR_BEETS] Values: 249.9848 249.9770 250.0000 Max-Min: 0.0230 Avg: 249.9873
-
- Index: [WHEAT] Values: 170.0308 170.0230 170.0232 Max-Min: 0.0078 Avg: 170.0256
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108897.0834 108897.4723 108898.1474 Max-Min: 1.0640 Avg: 108897.5677
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108897.5677 Max-Min= 1.06
-Converger=Normalized term diff value is 0.0001 - threshold reached=True
-Cumulative run-time=17.29 seconds
-
-Number of discrete variables fixed before final plugin calls=0 (total=0)
-Number of continuous variables fixed before final plugin calls=0 (total=3)
-PH complete
-
-Convergence history:
-Converger=Normalized term diff
-Iteration Metric Value
- 0 0.2540
- 1 0.1259
- 2 0.0816
- 3 0.0796
- 4 0.0776
- 5 0.0794
- 6 0.0668
- 7 0.0542
- 8 0.0360
- 9 0.0243
- 10 0.0256
- 11 0.0248
- 12 0.0163
- 13 0.0081
- 14 0.0168
- 15 0.0163
- 16 0.0098
- 17 0.0032
- 18 0.0026
- 19 0.0039
- 20 0.0043
- 21 0.0044
- 22 0.0040
- 23 0.0032
- 24 0.0021
- 25 0.0008
- 26 0.0005
- 27 0.0015
- 28 0.0021
- 29 0.0023
- 30 0.0020
- 31 0.0015
- 32 0.0008
- 33 0.0001
-
-
-Final number of discrete variables fixed=0 (total=0)
-Final number of continuous variables fixed=0 (total=3)
-
-Computing objective inner bound at xhat solution
-Queuing solve for scenario=BelowAverageScenario
-Queuing solve for scenario=AverageScenario
-Queuing solve for scenario=AboveAverageScenario
-Waiting for scenario sub-problem solves
-Results obtained for scenario=BelowAverageScenario
-Successfully loaded solution for scenario=BelowAverageScenario - waiting on 2 more
-Results obtained for scenario=AverageScenario
-Successfully loaded solution for scenario=AverageScenario - waiting on 1 more
-Results obtained for scenario=AboveAverageScenario
-Successfully loaded solution for scenario=AboveAverageScenario - waiting on 0 more
-Successfully completed xhat inner bound solves
-
- Scenario Cost Objective Objective Gap Solution Status
- BelowAverageScenario -48818.0547 -48818.0547 0.0000 optimal
- AverageScenario -109347.1053 -109347.1053 0.0000 optimal
- AboveAverageScenario -167001.1579 -167001.1579 0.0000 optimal
-
-
-Computed objective upper bound=-108388.7726
-
-X-hat variable values:
-
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 79.9768 79.9768 79.9768
-
- Index: [SUGAR_BEETS] Values: 250.0000 250.0000 250.0000
-
- Index: [WHEAT] Values: 170.0232 170.0232 170.0232
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108898.1474 108898.1474 108898.1474 Max-Min: 0.0000 Avg: 108898.1474
-
-X-hat costs:
-
-Scenario Tree Costs
-----------------------------------------------------
-Tree Nodes:
-
- Name=AboveAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AboveAverageScenario
- Expected cost of (sub)tree rooted at node=-275899.3053
-
- Name=AverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AverageScenario
- Expected cost of (sub)tree rooted at node=-218245.2526
-
- Name=BelowAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-157716.2021
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- AboveAverageNode
- AverageNode
- BelowAverageNode
- Scenarios:
- AboveAverageScenario
- AverageScenario
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-108388.7726
-
-----------------------------------------------------
-Scenarios:
-
- Name=AboveAverageScenario
- Probability=0.3333
- Leaf Node=AboveAverageNode
- Tree node sequence:
- RootNode
- AboveAverageNode
- Stage= FirstStage Cost=108898.1474
- Stage= SecondStage Cost=-275899.3053
- Total scenario cost=-167001.1579
-
- Name=AverageScenario
- Probability=0.3333
- Leaf Node=AverageNode
- Tree node sequence:
- RootNode
- AverageNode
- Stage= FirstStage Cost=108898.1474
- Stage= SecondStage Cost=-218245.2526
- Total scenario cost=-109347.1053
-
- Name=BelowAverageScenario
- Probability=0.3333
- Leaf Node=BelowAverageNode
- Tree node sequence:
- RootNode
- BelowAverageNode
- Stage= FirstStage Cost=108898.1474
- Stage= SecondStage Cost=-157716.2021
- Total scenario cost=-48818.0547
-
-----------------------------------------------------
-
-
-Total PH execution time=17.79 seconds
-
-
-Total execution time=17.83 seconds
diff --git a/pyomo/pysp/tests/unit/baselines/farmer_quadratic_with_bundles_cplex_with_pyro.baseline b/pyomo/pysp/tests/unit/baselines/farmer_quadratic_with_bundles_cplex_with_pyro.baseline
deleted file mode 100644
index 4726c2a19fa..00000000000
--- a/pyomo/pysp/tests/unit/baselines/farmer_quadratic_with_bundles_cplex_with_pyro.baseline
+++ /dev/null
@@ -1,256 +0,0 @@
-Client attempting to find Pyro dispatcher object...
-Dispatcher Object URI: PYRO://134.253.194.1:35852/86fdc201bde32195ca4b8c8933b43481ec
-Connection to dispatch server established after 1 attempts and 0.00 seconds - this is client: 476@snotra.sandia.gov
-Initializing PH
-
-Starting PH
-
-Initiating PH iteration=0
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 112016.6667 Max-Min= 9350.00
-Converger=Normalized term diff value is 0.2663 - threshold reached=False
-Cumulative run-time=0.04 seconds
-
-Initiating PH iteration=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 111376.6667 Max-Min= 2067.50
-Converger=Normalized term diff value is 0.0612 - threshold reached=False
-Cumulative run-time=0.09 seconds
-
-Initiating PH iteration=2
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 110111.6669 Max-Min= 500.00
-Converger=Normalized term diff value is 0.0494 - threshold reached=False
-Cumulative run-time=0.14 seconds
-
-Initiating PH iteration=3
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108993.3337 Max-Min= 280.00
-Converger=Normalized term diff value is 0.0485 - threshold reached=False
-Cumulative run-time=0.18 seconds
-
-Initiating PH iteration=4
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108647.2224 Max-Min= 758.33
-Converger=Normalized term diff value is 0.0437 - threshold reached=False
-Cumulative run-time=0.23 seconds
-
-Initiating PH iteration=5
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108700.3705 Max-Min= 598.89
-Converger=Normalized term diff value is 0.0178 - threshold reached=False
-Cumulative run-time=0.27 seconds
-
-Initiating PH iteration=6
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108851.1731 Max-Min= 146.48
-Converger=Normalized term diff value is 0.0068 - threshold reached=False
-Cumulative run-time=0.33 seconds
-
-Initiating PH iteration=7
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108933.9920 Max-Min= 101.98
-Converger=Normalized term diff value is 0.0082 - threshold reached=False
-Cumulative run-time=0.40 seconds
-
-Initiating PH iteration=8
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108938.9370 Max-Min= 116.81
-Converger=Normalized term diff value is 0.0044 - threshold reached=False
-Cumulative run-time=0.46 seconds
-
-Initiating PH iteration=9
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108914.6274 Max-Min= 43.88
-Converger=Normalized term diff value is 0.0009 - threshold reached=False
-Cumulative run-time=0.51 seconds
-
-Initiating PH iteration=10
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108896.7727 Max-Min= 9.68
-Converger=Normalized term diff value is 0.0014 - threshold reached=False
-Cumulative run-time=0.58 seconds
-
-Initiating PH iteration=11
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108892.9728 Max-Min= 21.08
-Converger=Normalized term diff value is 0.0009 - threshold reached=False
-Cumulative run-time=0.64 seconds
-
-Initiating PH iteration=12
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108896.3910 Max-Min= 10.83
-Converger=Normalized term diff value is 0.0002 - threshold reached=False
-Cumulative run-time=0.69 seconds
-
-Initiating PH iteration=13
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108899.9365 Max-Min= 0.19
-Converger=Normalized term diff value is 0.0002 - threshold reached=False
-Cumulative run-time=0.75 seconds
-
-Initiating PH iteration=14
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108901.1608 Max-Min= 3.48
-Converger=Normalized term diff value is 0.0002 - threshold reached=False
-Cumulative run-time=0.81 seconds
-
-Initiating PH iteration=15
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=3)
-First stage cost avg= 108900.7951 Max-Min= 2.38
-Converger=Normalized term diff value is 0.0001 - threshold reached=True
-Cumulative run-time=0.90 seconds
-
-Number of discrete variables fixed before final plugin calls=0 (total=0)
-Number of continuous variables fixed before final plugin calls=0 (total=3)
-PH complete
-
-Convergence history:
-Converger=Normalized term diff
-Iteration Metric Value
- 0 0.2663
- 1 0.0612
- 2 0.0494
- 3 0.0485
- 4 0.0437
- 5 0.0178
- 6 0.0068
- 7 0.0082
- 8 0.0044
- 9 0.0009
- 10 0.0014
- 11 0.0009
- 12 0.0002
- 13 0.0002
- 14 0.0002
- 15 0.0001
-
-
-Final number of discrete variables fixed=0 (total=0)
-Final number of continuous variables fixed=0 (total=3)
-
-Computing objective inner bound at xhat solution
-
-Computed objective upper bound=-108390.0000
-
-X-hat variable values:
-
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 80.0000 80.0000 80.0000
-
- Index: [SUGAR_BEETS] Values: 250.0000 250.0000 250.0000
-
- Index: [WHEAT] Values: 170.0000 170.0000 170.0000
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 108900.0001 108900.0001 108900.0001 Max-Min: 0.0000 Avg: 108900.0001
-
-X-hat costs:
-
-Scenario Tree Costs
-----------------------------------------------------
-Tree Nodes:
-
- Name=AboveAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AboveAverageScenario
- Expected cost of (sub)tree rooted at node=-275899.9999
-
- Name=AverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AverageScenario
- Expected cost of (sub)tree rooted at node=-218250.0001
-
- Name=BelowAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-157720.0003
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- AboveAverageNode
- AverageNode
- BelowAverageNode
- Scenarios:
- AboveAverageScenario
- AverageScenario
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-108390.0000
-
-----------------------------------------------------
-Scenarios:
-
- Name=AboveAverageScenario
- Probability=0.3333
- Leaf Node=AboveAverageNode
- Tree node sequence:
- RootNode
- AboveAverageNode
- Stage= FirstStage Cost=108900.0001
- Stage= SecondStage Cost=-275899.9999
- Total scenario cost=-166999.9997
-
- Name=AverageScenario
- Probability=0.3333
- Leaf Node=AverageNode
- Tree node sequence:
- RootNode
- AverageNode
- Stage= FirstStage Cost=108900.0001
- Stage= SecondStage Cost=-218250.0001
- Total scenario cost=-109350.0000
-
- Name=BelowAverageScenario
- Probability=0.3333
- Leaf Node=BelowAverageNode
- Tree node sequence:
- RootNode
- BelowAverageNode
- Stage= FirstStage Cost=108900.0001
- Stage= SecondStage Cost=-157720.0003
- Total scenario cost=-48820.0001
-
-----------------------------------------------------
-
-
-Total PH execution time=0.97 seconds
-
-
-Total execution time=1.05 seconds
diff --git a/pyomo/pysp/tests/unit/baselines/farmer_with_integers_linearized_cplex_with_phpyro.baseline b/pyomo/pysp/tests/unit/baselines/farmer_with_integers_linearized_cplex_with_phpyro.baseline
deleted file mode 100644
index 7734f93ee38..00000000000
--- a/pyomo/pysp/tests/unit/baselines/farmer_with_integers_linearized_cplex_with_phpyro.baseline
+++ /dev/null
@@ -1,270 +0,0 @@
-Client assigned dispatcher with URI=PYRO://134.253.194.1:35852/86fdc201bde32195ca4b8c8933b43481ec
-Initializing PH
-
-Starting PH
-
-Initiating PH iteration=0
-Number of discrete variables fixed=0 (total=3)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 113503.3333 Max-Min=10390.00
-Converger=Normalized term diff value is 0.2539 - threshold reached=False
-Cumulative run-time=0.05 seconds
-
-Initiating PH iteration=1
-Number of discrete variables fixed=0 (total=3)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 112833.3333 Max-Min= 7900.00
-Converger=Normalized term diff value is 0.1484 - threshold reached=False
-Cumulative run-time=0.11 seconds
-
-Initiating PH iteration=2
-Number of discrete variables fixed=0 (total=3)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 113303.3333 Max-Min= 2030.00
-Converger=Normalized term diff value is 0.1011 - threshold reached=False
-Cumulative run-time=0.16 seconds
-
-Initiating PH iteration=3
-Number of discrete variables fixed=0 (total=3)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 113363.3333 Max-Min= 1740.00
-Converger=Normalized term diff value is 0.0810 - threshold reached=False
-Cumulative run-time=0.20 seconds
-
-Initiating PH iteration=4
-Number of discrete variables fixed=0 (total=3)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 112806.6667 Max-Min= 3740.00
-Converger=Normalized term diff value is 0.0830 - threshold reached=False
-Cumulative run-time=0.25 seconds
-
-Initiating PH iteration=5
-Number of discrete variables fixed=0 (total=3)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 112373.3333 Max-Min= 4380.00
-Converger=Normalized term diff value is 0.0832 - threshold reached=False
-Cumulative run-time=0.30 seconds
-
-Initiating PH iteration=6
-Number of discrete variables fixed=0 (total=3)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 112280.0000 Max-Min= 1050.00
-Converger=Normalized term diff value is 0.0609 - threshold reached=False
-Cumulative run-time=0.35 seconds
-
-Initiating PH iteration=7
-Number of discrete variables fixed=0 (total=3)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 111693.3333 Max-Min= 2570.00
-Converger=Normalized term diff value is 0.0642 - threshold reached=False
-Cumulative run-time=0.39 seconds
-
-Initiating PH iteration=8
-Number of discrete variables fixed=0 (total=3)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 111400.0000 Max-Min= 960.00
-Converger=Normalized term diff value is 0.0338 - threshold reached=False
-Cumulative run-time=0.44 seconds
-
-Initiating PH iteration=9
-Number of discrete variables fixed=0 (total=3)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 111400.0000 Max-Min= 30.00
-Converger=Normalized term diff value is 0.0022 - threshold reached=False
-Cumulative run-time=0.49 seconds
-
-Initiating PH iteration=10
-Number of discrete variables fixed=0 (total=3)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 111400.0000 Max-Min= 30.00
-Converger=Normalized term diff value is 0.0022 - threshold reached=False
-Cumulative run-time=0.54 seconds
-
-Initiating PH iteration=11
-Number of discrete variables fixed=0 (total=3)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 111400.0000 Max-Min= 30.00
-Converger=Normalized term diff value is 0.0022 - threshold reached=False
-Cumulative run-time=0.60 seconds
-
-Initiating PH iteration=12
-Number of discrete variables fixed=0 (total=3)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 111400.0000 Max-Min= 30.00
-Converger=Normalized term diff value is 0.0022 - threshold reached=False
-Cumulative run-time=0.65 seconds
-
-Initiating PH iteration=13
-Number of discrete variables fixed=0 (total=3)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 111400.0000 Max-Min= 30.00
-Converger=Normalized term diff value is 0.0022 - threshold reached=False
-Cumulative run-time=0.70 seconds
-
-Initiating PH iteration=14
-Number of discrete variables fixed=0 (total=3)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 111400.0000 Max-Min= 30.00
-Converger=Normalized term diff value is 0.0022 - threshold reached=False
-Cumulative run-time=0.75 seconds
-
-Initiating PH iteration=15
-Number of discrete variables fixed=0 (total=3)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 111400.0000 Max-Min= 30.00
-Converger=Normalized term diff value is 0.0022 - threshold reached=False
-Cumulative run-time=0.80 seconds
-
-Initiating PH iteration=16
-Number of discrete variables fixed=0 (total=3)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 111400.0000 Max-Min= 30.00
-Converger=Normalized term diff value is 0.0022 - threshold reached=False
-Cumulative run-time=0.85 seconds
-
-Initiating PH iteration=17
-Number of discrete variables fixed=0 (total=3)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 111410.0000 Max-Min= 0.00
-Converger=Normalized term diff value is 0.0000 - threshold reached=True
-Cumulative run-time=0.90 seconds
-
-Number of discrete variables fixed before final plugin calls=0 (total=3)
-Number of continuous variables fixed before final plugin calls=0 (total=0)
-PH complete
-
-Convergence history:
-Converger=Normalized term diff
-Iteration Metric Value
- 0 0.2539
- 1 0.1484
- 2 0.1011
- 3 0.0810
- 4 0.0830
- 5 0.0832
- 6 0.0609
- 7 0.0642
- 8 0.0338
- 9 0.0022
- 10 0.0022
- 11 0.0022
- 12 0.0022
- 13 0.0022
- 14 0.0022
- 15 0.0022
- 16 0.0022
- 17 0.0000
-
-
-Final number of discrete variables fixed=0 (total=3)
-Final number of continuous variables fixed=0 (total=0)
-
-Computing objective inner bound at xhat solution
-
-Computed objective upper bound=-107943.0000
-
-X-hat variable values:
-
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 88.0000 88.0000 88.0000
-
- Index: [SUGAR_BEETS] Values: 267.0000 267.0000 267.0000
-
- Index: [WHEAT] Values: 145.0000 145.0000 145.0000
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 111410.0000 111410.0000 111410.0000 Max-Min: 0.0000 Avg: 111410.0000
-
-X-hat costs:
-
-Scenario Tree Costs
-----------------------------------------------------
-Tree Nodes:
-
- Name=AboveAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AboveAverageScenario
- Expected cost of (sub)tree rooted at node=-271550.0000
-
- Name=AverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AverageScenario
- Expected cost of (sub)tree rooted at node=-223465.0000
-
- Name=BelowAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-163044.0000
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- AboveAverageNode
- AverageNode
- BelowAverageNode
- Scenarios:
- AboveAverageScenario
- AverageScenario
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-107943.0000
-
-----------------------------------------------------
-Scenarios:
-
- Name=AboveAverageScenario
- Probability=0.3333
- Leaf Node=AboveAverageNode
- Tree node sequence:
- RootNode
- AboveAverageNode
- Stage= FirstStage Cost=111410.0000
- Stage= SecondStage Cost=-271550.0000
- Total scenario cost=-160140.0000
-
- Name=AverageScenario
- Probability=0.3333
- Leaf Node=AverageNode
- Tree node sequence:
- RootNode
- AverageNode
- Stage= FirstStage Cost=111410.0000
- Stage= SecondStage Cost=-223465.0000
- Total scenario cost=-112055.0000
-
- Name=BelowAverageScenario
- Probability=0.3333
- Leaf Node=BelowAverageNode
- Tree node sequence:
- RootNode
- BelowAverageNode
- Stage= FirstStage Cost=111410.0000
- Stage= SecondStage Cost=-163044.0000
- Total scenario cost=-51634.0000
-
-----------------------------------------------------
-
-
-Total PH execution time=0.95 seconds
-
-
-Total execution time=1.03 seconds
diff --git a/pyomo/pysp/tests/unit/baselines/farmer_with_integers_quadratic_cplex.baseline b/pyomo/pysp/tests/unit/baselines/farmer_with_integers_quadratic_cplex.baseline
deleted file mode 100644
index a85026b8af9..00000000000
--- a/pyomo/pysp/tests/unit/baselines/farmer_with_integers_quadratic_cplex.baseline
+++ /dev/null
@@ -1,189 +0,0 @@
-Initializing PH
-
-Starting PH
-
-Initiating PH iteration=0
-Number of discrete variables fixed=0 (total=3)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 113503.3333 Max-Min=10390.00
-Converger=Normalized term diff value is 0.2539 - threshold reached=False
-Cumulative run-time=0.52 seconds
-
-Initiating PH iteration=1
-Number of discrete variables fixed=0 (total=3)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 112970.0000 Max-Min= 8090.00
-Converger=Normalized term diff value is 0.1740 - threshold reached=False
-Cumulative run-time=1.42 seconds
-
-Initiating PH iteration=2
-Number of discrete variables fixed=0 (total=3)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 112810.0000 Max-Min= 1590.00
-Converger=Normalized term diff value is 0.0409 - threshold reached=False
-Cumulative run-time=2.15 seconds
-
-Initiating PH iteration=3
-Number of discrete variables fixed=0 (total=3)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 112763.3333 Max-Min= 530.00
-Converger=Normalized term diff value is 0.0141 - threshold reached=False
-Cumulative run-time=2.79 seconds
-
-Initiating PH iteration=4
-Number of discrete variables fixed=0 (total=3)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 112726.6667 Max-Min= 130.00
-Converger=Normalized term diff value is 0.0081 - threshold reached=False
-Cumulative run-time=3.31 seconds
-
-Initiating PH iteration=5
-Number of discrete variables fixed=0 (total=3)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 112650.0000 Max-Min= 110.00
-Converger=Normalized term diff value is 0.0124 - threshold reached=False
-Cumulative run-time=3.91 seconds
-
-Initiating PH iteration=6
-Number of discrete variables fixed=0 (total=3)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 112530.0000 Max-Min= 210.00
-Converger=Normalized term diff value is 0.0109 - threshold reached=False
-Cumulative run-time=4.41 seconds
-
-Initiating PH iteration=7
-Number of discrete variables fixed=0 (total=3)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 112410.0000 Max-Min= 0.00
-Converger=Normalized term diff value is 0.0000 - threshold reached=True
-Cumulative run-time=4.92 seconds
-
-Number of discrete variables fixed before final plugin calls=0 (total=3)
-Number of continuous variables fixed before final plugin calls=0 (total=0)
-PH complete
-
-Convergence history:
-Converger=Normalized term diff
-Iteration Metric Value
- 0 0.2539
- 1 0.1740
- 2 0.0409
- 3 0.0141
- 4 0.0081
- 5 0.0124
- 6 0.0109
- 7 0.0000
-
-
-Final number of discrete variables fixed=0 (total=3)
-Final number of continuous variables fixed=0 (total=0)
-
-Computing objective inner bound at xhat solution
-
-Computed objective upper bound=-107695.0001
-
-X-hat variable values:
-
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 84.0000 84.0000 84.0000
-
- Index: [SUGAR_BEETS] Values: 279.0000 279.0000 279.0000
-
- Index: [WHEAT] Values: 137.0000 137.0000 137.0000
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 112410.0000 112410.0000 112410.0000 Max-Min: 0.0000 Avg: 112410.0000
-
-X-hat costs:
-
-Scenario Tree Costs
-----------------------------------------------------
-Tree Nodes:
-
- Name=AboveAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AboveAverageScenario
- Expected cost of (sub)tree rooted at node=-268190.0000
-
- Name=AverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AverageScenario
- Expected cost of (sub)tree rooted at node=-226905.0000
-
- Name=BelowAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-165220.0000
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- AboveAverageNode
- AverageNode
- BelowAverageNode
- Scenarios:
- AboveAverageScenario
- AverageScenario
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-107695.0001
-
-----------------------------------------------------
-Scenarios:
-
- Name=AboveAverageScenario
- Probability=0.3333
- Leaf Node=AboveAverageNode
- Tree node sequence:
- RootNode
- AboveAverageNode
- Stage= FirstStage Cost=112410.0000
- Stage= SecondStage Cost=-268190.0000
- Total scenario cost=-155780.0000
-
- Name=AverageScenario
- Probability=0.3333
- Leaf Node=AverageNode
- Tree node sequence:
- RootNode
- AverageNode
- Stage= FirstStage Cost=112410.0000
- Stage= SecondStage Cost=-226905.0000
- Total scenario cost=-114495.0000
-
- Name=BelowAverageScenario
- Probability=0.3333
- Leaf Node=BelowAverageNode
- Tree node sequence:
- RootNode
- BelowAverageNode
- Stage= FirstStage Cost=112410.0000
- Stage= SecondStage Cost=-165220.0000
- Total scenario cost=-52810.0000
-
-----------------------------------------------------
-
-
-Total PH execution time=5.40 seconds
-
-
-Total execution time=5.47 seconds
diff --git a/pyomo/pysp/tests/unit/baselines/farmer_with_integers_quadratic_cplex_with_pyro_with_postef_solve.baseline b/pyomo/pysp/tests/unit/baselines/farmer_with_integers_quadratic_cplex_with_pyro_with_postef_solve.baseline
deleted file mode 100644
index 1002bb285fe..00000000000
--- a/pyomo/pysp/tests/unit/baselines/farmer_with_integers_quadratic_cplex_with_pyro_with_postef_solve.baseline
+++ /dev/null
@@ -1,347 +0,0 @@
-Client attempting to find Pyro dispatcher object...
-Dispatcher Object URI: PYRO://10.249.254.199:55746/0af9fec7a9aa21faa7e72dc7d9dfd6355f
-Connection to dispatch server established after 1 attempts and 0.00 seconds - this is client: 43439@10-249-254-199.wireless.oregonstate.edu
-Initializing PH
-
-Starting PH
-
-Initiating PH iteration=0
-Number of discrete variables fixed=0 (total=3)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 113503.3333 Max-Min=10390.00
-Converger=Normalized term diff value is 0.2539 - threshold reached=False
-Cumulative run-time=0.06 seconds
-
-Initiating PH iteration=1
-Number of discrete variables fixed=0 (total=3)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 113126.6667 Max-Min= 7020.00
-Converger=Normalized term diff value is 0.1268 - threshold reached=False
-Cumulative run-time=0.09 seconds
-
-Initiating PH iteration=2
-Number of discrete variables fixed=0 (total=3)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 112946.6667 Max-Min= 2220.00
-Converger=Normalized term diff value is 0.0820 - threshold reached=False
-Cumulative run-time=0.12 seconds
-
-Initiating PH iteration=3
-Number of discrete variables fixed=0 (total=3)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 112946.6667 Max-Min= 2220.00
-Converger=Normalized term diff value is 0.0820 - threshold reached=False
-Cumulative run-time=0.15 seconds
-
-Initiating PH iteration=4
-Number of discrete variables fixed=0 (total=3)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 112920.0000 Max-Min= 3180.00
-Converger=Normalized term diff value is 0.0788 - threshold reached=False
-Cumulative run-time=0.18 seconds
-
-Initiating PH iteration=5
-Number of discrete variables fixed=0 (total=3)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 112920.0000 Max-Min= 3180.00
-Converger=Normalized term diff value is 0.0788 - threshold reached=False
-Cumulative run-time=0.21 seconds
-
-Initiating PH iteration=6
-Number of discrete variables fixed=0 (total=3)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 112516.6667 Max-Min= 1970.00
-Converger=Normalized term diff value is 0.0689 - threshold reached=False
-Cumulative run-time=0.24 seconds
-
-Initiating PH iteration=7
-Number of discrete variables fixed=0 (total=3)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 111486.6667 Max-Min= 1380.00
-Converger=Normalized term diff value is 0.0547 - threshold reached=False
-Cumulative run-time=0.26 seconds
-
-Initiating PH iteration=8
-Number of discrete variables fixed=0 (total=3)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 110280.0000 Max-Min= 590.00
-Converger=Normalized term diff value is 0.0330 - threshold reached=False
-Cumulative run-time=0.29 seconds
-
-Initiating PH iteration=9
-Number of discrete variables fixed=0 (total=3)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 109316.6667 Max-Min= 420.00
-Converger=Normalized term diff value is 0.0251 - threshold reached=False
-Cumulative run-time=0.32 seconds
-
-Initiating PH iteration=10
-Number of discrete variables fixed=0 (total=3)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 108750.0000 Max-Min= 1250.00
-Converger=Normalized term diff value is 0.0279 - threshold reached=False
-Cumulative run-time=0.35 seconds
-Halting PH - reached maximal iteration count=10
-
-Number of discrete variables fixed before final plugin calls=0 (total=3)
-Number of continuous variables fixed before final plugin calls=0 (total=0)
-PH complete
-
-Convergence history:
-Converger=Normalized term diff
-Iteration Metric Value
- 0 0.2539
- 1 0.1268
- 2 0.0820
- 3 0.0820
- 4 0.0788
- 5 0.0788
- 6 0.0689
- 7 0.0547
- 8 0.0330
- 9 0.0251
- 10 0.0279
-
-
-Final number of discrete variables fixed=0 (total=3)
-Final number of continuous variables fixed=0 (total=0)
-
-Computing objective inner bound at xhat solution
-
-Computed objective upper bound=-108334.0000
-
-X-hat variable values:
-
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 88.0000 88.0000 88.0000
-
- Index: [SUGAR_BEETS] Values: 250.0000 250.0000 250.0000
-
- Index: [WHEAT] Values: 162.0000 162.0000 162.0000
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 109540.0000 109540.0000 109540.0000 Max-Min: 0.0000 Avg: 109540.0000
-
-X-hat costs:
-
-Scenario Tree Costs
-----------------------------------------------------
-Tree Nodes:
-
- Name=AboveAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AboveAverageScenario
- Expected cost of (sub)tree rooted at node=-276140.0000
-
- Name=AverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AverageScenario
- Expected cost of (sub)tree rooted at node=-218450.0000
-
- Name=BelowAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-159032.0000
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- AboveAverageNode
- AverageNode
- BelowAverageNode
- Scenarios:
- AboveAverageScenario
- AverageScenario
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-108334.0000
-
-----------------------------------------------------
-Scenarios:
-
- Name=AboveAverageScenario
- Probability=0.3333
- Leaf Node=AboveAverageNode
- Tree node sequence:
- RootNode
- AboveAverageNode
- Stage= FirstStage Cost=109540.0000
- Stage= SecondStage Cost=-276140.0000
- Total scenario cost=-166600.0000
-
- Name=AverageScenario
- Probability=0.3333
- Leaf Node=AverageNode
- Tree node sequence:
- RootNode
- AverageNode
- Stage= FirstStage Cost=109540.0000
- Stage= SecondStage Cost=-218450.0000
- Total scenario cost=-108910.0000
-
- Name=BelowAverageScenario
- Probability=0.3333
- Leaf Node=BelowAverageNode
- Tree node sequence:
- RootNode
- BelowAverageNode
- Stage= FirstStage Cost=109540.0000
- Stage= SecondStage Cost=-159032.0000
- Total scenario cost=-49492.0000
-
-----------------------------------------------------
-
-
-Total PH execution time=0.38 seconds
-
-Pushing fixed variable statuses to scenario instances
-Number of discrete variables fixed prior to ef creation=0 (total=3)
-Number of continuous variables fixed prior to ef creation=0 (total=0)
-Creating extensive form for remainder problem
-Solving extensive form
-EF solve completed and solution status is optimal
-EF solve termination condition is optimal
-EF objective: -108390.00001
-EF gap: 0.00000
-EF bound: -108390.00001
-
-Extensive form solution:
-----------------------------------------------------
-Tree Nodes:
-
- Name=AboveAverageNode
- Stage=SecondStage
- Parent=RootNode
- Variables:
- QuantitySubQuotaSold[CORN]=48.0
- QuantitySubQuotaSold[SUGAR_BEETS]=6000.0
- QuantitySubQuotaSold[WHEAT]=310.0
-
- Name=AverageNode
- Stage=SecondStage
- Parent=RootNode
- Variables:
- QuantitySubQuotaSold[SUGAR_BEETS]=5000.0
- QuantitySubQuotaSold[WHEAT]=225.0
-
- Name=BelowAverageNode
- Stage=SecondStage
- Parent=RootNode
- Variables:
- QuantityPurchased[CORN]=48.0
- QuantitySubQuotaSold[SUGAR_BEETS]=4000.0
- QuantitySubQuotaSold[WHEAT]=140.0
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Variables:
- DevotedAcreage[CORN]=80.0
- DevotedAcreage[SUGAR_BEETS]=250.0
- DevotedAcreage[WHEAT]=170.0
-
-
-Extensive form costs:
-Scenario Tree Costs
-----------------------------------------------------
-Tree Nodes:
-
- Name=AboveAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AboveAverageScenario
- Expected cost of (sub)tree rooted at node=-275900.0000
-
- Name=AverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AverageScenario
- Expected cost of (sub)tree rooted at node=-218250.0000
-
- Name=BelowAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-157720.0000
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- AboveAverageNode
- AverageNode
- BelowAverageNode
- Scenarios:
- AboveAverageScenario
- AverageScenario
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-108390.0000
-
-----------------------------------------------------
-Scenarios:
-
- Name=AboveAverageScenario
- Probability=0.3333
- Leaf Node=AboveAverageNode
- Tree node sequence:
- RootNode
- AboveAverageNode
- Stage= FirstStage Cost=108900.0000
- Stage= SecondStage Cost=-275900.0000
- Total scenario cost=-167000.0000
-
- Name=AverageScenario
- Probability=0.3333
- Leaf Node=AverageNode
- Tree node sequence:
- RootNode
- AverageNode
- Stage= FirstStage Cost=108900.0000
- Stage= SecondStage Cost=-218250.0000
- Total scenario cost=-109350.0000
-
- Name=BelowAverageScenario
- Probability=0.3333
- Leaf Node=BelowAverageNode
- Tree node sequence:
- RootNode
- BelowAverageNode
- Stage= FirstStage Cost=108900.0000
- Stage= SecondStage Cost=-157720.0000
- Total scenario cost=-48820.0000
-
-----------------------------------------------------
-
-Total execution time=0.45 seconds
diff --git a/pyomo/pysp/tests/unit/baselines/farmer_with_integers_quadratic_gurobi.baseline-a b/pyomo/pysp/tests/unit/baselines/farmer_with_integers_quadratic_gurobi.baseline-a
deleted file mode 100644
index bba7f5b8915..00000000000
--- a/pyomo/pysp/tests/unit/baselines/farmer_with_integers_quadratic_gurobi.baseline-a
+++ /dev/null
@@ -1,221 +0,0 @@
-Initializing PH
-
-Starting PH
-
-Initiating PH iteration=0
-Number of discrete variables fixed=0 (total=3)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 113503.3333 Max-Min=10390.00
-Converger=Normalized term diff value is 0.2539 - threshold reached=False
-Cumulative run-time=0.82 seconds
-
-Initiating PH iteration=1
-Number of discrete variables fixed=0 (total=3)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 113006.6667 Max-Min= 7980.00
-Converger=Normalized term diff value is 0.1731 - threshold reached=False
-Cumulative run-time=1.65 seconds
-
-Initiating PH iteration=2
-Number of discrete variables fixed=0 (total=3)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 112800.0000 Max-Min= 1510.00
-Converger=Normalized term diff value is 0.0401 - threshold reached=False
-Cumulative run-time=2.48 seconds
-
-Initiating PH iteration=3
-Number of discrete variables fixed=0 (total=3)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 112790.0000 Max-Min= 450.00
-Converger=Normalized term diff value is 0.0144 - threshold reached=False
-Cumulative run-time=3.32 seconds
-
-Initiating PH iteration=4
-Number of discrete variables fixed=0 (total=3)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 112736.6667 Max-Min= 80.00
-Converger=Normalized term diff value is 0.0067 - threshold reached=False
-Cumulative run-time=4.15 seconds
-
-Initiating PH iteration=5
-Number of discrete variables fixed=0 (total=3)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 112650.0000 Max-Min= 180.00
-Converger=Normalized term diff value is 0.0132 - threshold reached=False
-Cumulative run-time=4.99 seconds
-
-Initiating PH iteration=6
-Number of discrete variables fixed=0 (total=3)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 112576.6667 Max-Min= 210.00
-Converger=Normalized term diff value is 0.0097 - threshold reached=False
-Cumulative run-time=5.84 seconds
-
-Initiating PH iteration=7
-Number of discrete variables fixed=0 (total=3)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 112430.0000 Max-Min= 190.00
-Converger=Normalized term diff value is 0.0039 - threshold reached=False
-Cumulative run-time=6.69 seconds
-
-Initiating PH iteration=8
-Number of discrete variables fixed=0 (total=3)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 112320.0000 Max-Min= 30.00
-Converger=Normalized term diff value is 0.0023 - threshold reached=False
-Cumulative run-time=7.52 seconds
-
-Initiating PH iteration=9
-Number of discrete variables fixed=0 (total=3)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 112200.0000 Max-Min= 190.00
-Converger=Normalized term diff value is 0.0039 - threshold reached=False
-Cumulative run-time=8.35 seconds
-
-Initiating PH iteration=10
-Number of discrete variables fixed=0 (total=3)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 112080.0000 Max-Min= 160.00
-Converger=Normalized term diff value is 0.0042 - threshold reached=False
-Cumulative run-time=9.21 seconds
-
-Initiating PH iteration=11
-Number of discrete variables fixed=0 (total=3)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 111970.0000 Max-Min= 0.00
-Converger=Normalized term diff value is 0.0000 - threshold reached=True
-Cumulative run-time=10.13 seconds
-
-Number of discrete variables fixed before final plugin calls=0 (total=3)
-Number of continuous variables fixed before final plugin calls=0 (total=0)
-PH complete
-
-Convergence history:
-Converger=Normalized term diff
-Iteration Metric Value
- 0 0.2539
- 1 0.1731
- 2 0.0401
- 3 0.0144
- 4 0.0067
- 5 0.0132
- 6 0.0097
- 7 0.0039
- 8 0.0023
- 9 0.0039
- 10 0.0042
- 11 0.0000
-
-
-Final number of discrete variables fixed=0 (total=3)
-Final number of continuous variables fixed=0 (total=0)
-
-Computing objective inner bound at xhat solution
-
-Computed objective upper bound=-107787.0001
-
-X-hat variable values:
-
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 84.0000 84.0000 84.0000
-
- Index: [SUGAR_BEETS] Values: 275.0000 275.0000 275.0000
-
- Index: [WHEAT] Values: 141.0000 141.0000 141.0000
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 111970.0000 111970.0000 111970.0000 Max-Min: 0.0000 Avg: 111970.0000
-
-X-hat costs:
-
-Scenario Tree Costs
-----------------------------------------------------
-Tree Nodes:
-
- Name=AboveAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AboveAverageScenario
- Expected cost of (sub)tree rooted at node=-269270.0000
-
- Name=AverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AverageScenario
- Expected cost of (sub)tree rooted at node=-225725.0000
-
- Name=BelowAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-164276.0000
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- AboveAverageNode
- AverageNode
- BelowAverageNode
- Scenarios:
- AboveAverageScenario
- AverageScenario
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-107787.0001
-
-----------------------------------------------------
-Scenarios:
-
- Name=AboveAverageScenario
- Probability=0.3333
- Leaf Node=AboveAverageNode
- Tree node sequence:
- RootNode
- AboveAverageNode
- Stage= FirstStage Cost=111970.0000
- Stage= SecondStage Cost=-269270.0000
- Total scenario cost=-157300.0000
-
- Name=AverageScenario
- Probability=0.3333
- Leaf Node=AverageNode
- Tree node sequence:
- RootNode
- AverageNode
- Stage= FirstStage Cost=111970.0000
- Stage= SecondStage Cost=-225725.0000
- Total scenario cost=-113755.0000
-
- Name=BelowAverageScenario
- Probability=0.3333
- Leaf Node=BelowAverageNode
- Tree node sequence:
- RootNode
- BelowAverageNode
- Stage= FirstStage Cost=111970.0000
- Stage= SecondStage Cost=-164276.0000
- Total scenario cost=-52306.0000
-
-----------------------------------------------------
-
-
-Total PH execution time=11.08 seconds
-
-
-Total execution time=11.14 seconds
diff --git a/pyomo/pysp/tests/unit/baselines/farmer_with_integers_quadratic_gurobi.baseline-b b/pyomo/pysp/tests/unit/baselines/farmer_with_integers_quadratic_gurobi.baseline-b
deleted file mode 100644
index f26374f5820..00000000000
--- a/pyomo/pysp/tests/unit/baselines/farmer_with_integers_quadratic_gurobi.baseline-b
+++ /dev/null
@@ -1,277 +0,0 @@
-Initializing PH
-
-Starting PH
-
-Initiating PH iteration=0
-Number of discrete variables fixed=0 (total=3)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 113503.3333 Max-Min=10390.00
-Converger=Normalized term diff value is 0.2539 - threshold reached=False
-Cumulative run-time=0.75 seconds
-
-Initiating PH iteration=1
-Number of discrete variables fixed=0 (total=3)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 113006.6667 Max-Min= 7980.00
-Converger=Normalized term diff value is 0.1731 - threshold reached=False
-Cumulative run-time=1.44 seconds
-
-Initiating PH iteration=2
-Number of discrete variables fixed=0 (total=3)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 112800.0000 Max-Min= 1510.00
-Converger=Normalized term diff value is 0.0401 - threshold reached=False
-Cumulative run-time=2.14 seconds
-
-Initiating PH iteration=3
-Number of discrete variables fixed=0 (total=3)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 112790.0000 Max-Min= 450.00
-Converger=Normalized term diff value is 0.0144 - threshold reached=False
-Cumulative run-time=2.49 seconds
-
-Initiating PH iteration=4
-Number of discrete variables fixed=0 (total=3)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 112736.6667 Max-Min= 80.00
-Converger=Normalized term diff value is 0.0067 - threshold reached=False
-Cumulative run-time=2.98 seconds
-
-Initiating PH iteration=5
-Number of discrete variables fixed=0 (total=3)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 112660.0000 Max-Min= 210.00
-Converger=Normalized term diff value is 0.0121 - threshold reached=False
-Cumulative run-time=3.47 seconds
-
-Initiating PH iteration=6
-Number of discrete variables fixed=0 (total=3)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 112550.0000 Max-Min= 40.00
-Converger=Normalized term diff value is 0.0112 - threshold reached=False
-Cumulative run-time=4.12 seconds
-
-Initiating PH iteration=7
-Number of discrete variables fixed=0 (total=3)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 112430.0000 Max-Min= 30.00
-Converger=Normalized term diff value is 0.0023 - threshold reached=False
-Cumulative run-time=4.57 seconds
-
-Initiating PH iteration=8
-Number of discrete variables fixed=0 (total=3)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 112356.6667 Max-Min= 140.00
-Converger=Normalized term diff value is 0.0037 - threshold reached=False
-Cumulative run-time=5.17 seconds
-
-Initiating PH iteration=9
-Number of discrete variables fixed=0 (total=3)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 112210.0000 Max-Min= 190.00
-Converger=Normalized term diff value is 0.0039 - threshold reached=False
-Cumulative run-time=5.77 seconds
-
-Initiating PH iteration=10
-Number of discrete variables fixed=0 (total=3)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 112100.0000 Max-Min= 30.00
-Converger=Normalized term diff value is 0.0023 - threshold reached=False
-Cumulative run-time=6.17 seconds
-
-Initiating PH iteration=11
-Number of discrete variables fixed=0 (total=3)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 112043.3333 Max-Min= 110.00
-Converger=Normalized term diff value is 0.0016 - threshold reached=False
-Cumulative run-time=6.46 seconds
-
-Initiating PH iteration=12
-Number of discrete variables fixed=0 (total=3)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 111933.3333 Max-Min= 80.00
-Converger=Normalized term diff value is 0.0042 - threshold reached=False
-Cumulative run-time=7.17 seconds
-
-Initiating PH iteration=13
-Number of discrete variables fixed=0 (total=3)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 111850.0000 Max-Min= 30.00
-Converger=Normalized term diff value is 0.0023 - threshold reached=False
-Cumulative run-time=7.79 seconds
-
-Initiating PH iteration=14
-Number of discrete variables fixed=0 (total=3)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 111730.0000 Max-Min= 190.00
-Converger=Normalized term diff value is 0.0038 - threshold reached=False
-Cumulative run-time=8.30 seconds
-
-Initiating PH iteration=15
-Number of discrete variables fixed=0 (total=3)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 111583.3333 Max-Min= 80.00
-Converger=Normalized term diff value is 0.0028 - threshold reached=False
-Cumulative run-time=8.84 seconds
-
-Initiating PH iteration=16
-Number of discrete variables fixed=0 (total=3)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 111510.0000 Max-Min= 190.00
-Converger=Normalized term diff value is 0.0038 - threshold reached=False
-Cumulative run-time=9.25 seconds
-
-Initiating PH iteration=17
-Number of discrete variables fixed=0 (total=3)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 111426.6667 Max-Min= 220.00
-Converger=Normalized term diff value is 0.0031 - threshold reached=False
-Cumulative run-time=9.78 seconds
-
-Initiating PH iteration=18
-Number of discrete variables fixed=0 (total=3)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 111280.0000 Max-Min= 0.00
-Converger=Normalized term diff value is 0.0000 - threshold reached=True
-Cumulative run-time=10.06 seconds
-
-Number of discrete variables fixed before final plugin calls=0 (total=3)
-Number of continuous variables fixed before final plugin calls=0 (total=0)
-PH complete
-
-Convergence history:
-Converger=Normalized term diff
-Iteration Metric Value
- 0 0.2539
- 1 0.1731
- 2 0.0401
- 3 0.0144
- 4 0.0067
- 5 0.0121
- 6 0.0112
- 7 0.0023
- 8 0.0037
- 9 0.0039
- 10 0.0023
- 11 0.0016
- 12 0.0042
- 13 0.0023
- 14 0.0038
- 15 0.0028
- 16 0.0038
- 17 0.0031
- 18 0.0000
-
-
-Final number of discrete variables fixed=0 (total=3)
-Final number of continuous variables fixed=0 (total=0)
-
-Computing objective inner bound at xhat solution
-
-Computed objective upper bound=-107941.0000
-
-X-hat variable values:
-
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 85.0000 85.0000 85.0000
-
- Index: [SUGAR_BEETS] Values: 268.0000 268.0000 268.0000
-
- Index: [WHEAT] Values: 147.0000 147.0000 147.0000
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 111280.0000 111280.0000 111280.0000 Max-Min: 0.0000 Avg: 111280.0000
-
-X-hat costs:
-
-Scenario Tree Costs
-----------------------------------------------------
-Tree Nodes:
-
- Name=AboveAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AboveAverageScenario
- Expected cost of (sub)tree rooted at node=-271190.0000
-
- Name=AverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AverageScenario
- Expected cost of (sub)tree rooted at node=-223685.0000
-
- Name=BelowAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-162788.0000
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- AboveAverageNode
- AverageNode
- BelowAverageNode
- Scenarios:
- AboveAverageScenario
- AverageScenario
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-107941.0000
-
-----------------------------------------------------
-Scenarios:
-
- Name=AboveAverageScenario
- Probability=0.3333
- Leaf Node=AboveAverageNode
- Tree node sequence:
- RootNode
- AboveAverageNode
- Stage= FirstStage Cost=111280.0000
- Stage= SecondStage Cost=-271190.0000
- Total scenario cost=-159910.0000
-
- Name=AverageScenario
- Probability=0.3333
- Leaf Node=AverageNode
- Tree node sequence:
- RootNode
- AverageNode
- Stage= FirstStage Cost=111280.0000
- Stage= SecondStage Cost=-223685.0000
- Total scenario cost=-112405.0000
-
- Name=BelowAverageScenario
- Probability=0.3333
- Leaf Node=BelowAverageNode
- Tree node sequence:
- RootNode
- BelowAverageNode
- Stage= FirstStage Cost=111280.0000
- Stage= SecondStage Cost=-162788.0000
- Total scenario cost=-51508.0000
-
-----------------------------------------------------
-
-
-Total PH execution time=10.42 seconds
-
-
-Total execution time=10.57 seconds
diff --git a/pyomo/pysp/tests/unit/baselines/farmer_with_integers_quadratic_gurobi_darwin.baseline b/pyomo/pysp/tests/unit/baselines/farmer_with_integers_quadratic_gurobi_darwin.baseline
deleted file mode 100644
index 2b6f0200e31..00000000000
--- a/pyomo/pysp/tests/unit/baselines/farmer_with_integers_quadratic_gurobi_darwin.baseline
+++ /dev/null
@@ -1,277 +0,0 @@
-Initializing PH
-
-Starting PH
-
-Initiating PH iteration=0
-Number of discrete variables fixed=0 (total=3)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 113503.3333 Max-Min=10390.00
-Converger=Normalized term diff value is 0.2539 - threshold reached=False
-Cumulative run-time=0.18 seconds
-
-Initiating PH iteration=1
-Number of discrete variables fixed=0 (total=3)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 113006.6667 Max-Min= 7980.00
-Converger=Normalized term diff value is 0.1731 - threshold reached=False
-Cumulative run-time=0.36 seconds
-
-Initiating PH iteration=2
-Number of discrete variables fixed=0 (total=3)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 112800.0000 Max-Min= 1510.00
-Converger=Normalized term diff value is 0.0401 - threshold reached=False
-Cumulative run-time=0.54 seconds
-
-Initiating PH iteration=3
-Number of discrete variables fixed=0 (total=3)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 112790.0000 Max-Min= 450.00
-Converger=Normalized term diff value is 0.0144 - threshold reached=False
-Cumulative run-time=0.72 seconds
-
-Initiating PH iteration=4
-Number of discrete variables fixed=0 (total=3)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 112736.6667 Max-Min= 80.00
-Converger=Normalized term diff value is 0.0067 - threshold reached=False
-Cumulative run-time=0.91 seconds
-
-Initiating PH iteration=5
-Number of discrete variables fixed=0 (total=3)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 112660.0000 Max-Min= 210.00
-Converger=Normalized term diff value is 0.0121 - threshold reached=False
-Cumulative run-time=1.10 seconds
-
-Initiating PH iteration=6
-Number of discrete variables fixed=0 (total=3)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 112550.0000 Max-Min= 40.00
-Converger=Normalized term diff value is 0.0112 - threshold reached=False
-Cumulative run-time=1.28 seconds
-
-Initiating PH iteration=7
-Number of discrete variables fixed=0 (total=3)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 112430.0000 Max-Min= 30.00
-Converger=Normalized term diff value is 0.0023 - threshold reached=False
-Cumulative run-time=1.47 seconds
-
-Initiating PH iteration=8
-Number of discrete variables fixed=0 (total=3)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 112356.6667 Max-Min= 140.00
-Converger=Normalized term diff value is 0.0037 - threshold reached=False
-Cumulative run-time=1.65 seconds
-
-Initiating PH iteration=9
-Number of discrete variables fixed=0 (total=3)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 112210.0000 Max-Min= 190.00
-Converger=Normalized term diff value is 0.0039 - threshold reached=False
-Cumulative run-time=1.84 seconds
-
-Initiating PH iteration=10
-Number of discrete variables fixed=0 (total=3)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 112100.0000 Max-Min= 30.00
-Converger=Normalized term diff value is 0.0023 - threshold reached=False
-Cumulative run-time=2.03 seconds
-
-Initiating PH iteration=11
-Number of discrete variables fixed=0 (total=3)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 112043.3333 Max-Min= 110.00
-Converger=Normalized term diff value is 0.0016 - threshold reached=False
-Cumulative run-time=2.22 seconds
-
-Initiating PH iteration=12
-Number of discrete variables fixed=0 (total=3)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 111933.3333 Max-Min= 80.00
-Converger=Normalized term diff value is 0.0042 - threshold reached=False
-Cumulative run-time=2.42 seconds
-
-Initiating PH iteration=13
-Number of discrete variables fixed=0 (total=3)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 111850.0000 Max-Min= 30.00
-Converger=Normalized term diff value is 0.0023 - threshold reached=False
-Cumulative run-time=2.60 seconds
-
-Initiating PH iteration=14
-Number of discrete variables fixed=0 (total=3)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 111730.0000 Max-Min= 190.00
-Converger=Normalized term diff value is 0.0038 - threshold reached=False
-Cumulative run-time=2.78 seconds
-
-Initiating PH iteration=15
-Number of discrete variables fixed=0 (total=3)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 111583.3333 Max-Min= 80.00
-Converger=Normalized term diff value is 0.0028 - threshold reached=False
-Cumulative run-time=2.96 seconds
-
-Initiating PH iteration=16
-Number of discrete variables fixed=0 (total=3)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 111510.0000 Max-Min= 190.00
-Converger=Normalized term diff value is 0.0038 - threshold reached=False
-Cumulative run-time=3.15 seconds
-
-Initiating PH iteration=17
-Number of discrete variables fixed=0 (total=3)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 111426.6667 Max-Min= 220.00
-Converger=Normalized term diff value is 0.0031 - threshold reached=False
-Cumulative run-time=3.33 seconds
-
-Initiating PH iteration=18
-Number of discrete variables fixed=0 (total=3)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 111280.0000 Max-Min= 0.00
-Converger=Normalized term diff value is 0.0000 - threshold reached=True
-Cumulative run-time=3.51 seconds
-
-Number of discrete variables fixed before final plugin calls=0 (total=3)
-Number of continuous variables fixed before final plugin calls=0 (total=0)
-PH complete
-
-Convergence history:
-Converger=Normalized term diff
-Iteration Metric Value
- 0 0.2539
- 1 0.1731
- 2 0.0401
- 3 0.0144
- 4 0.0067
- 5 0.0121
- 6 0.0112
- 7 0.0023
- 8 0.0037
- 9 0.0039
- 10 0.0023
- 11 0.0016
- 12 0.0042
- 13 0.0023
- 14 0.0038
- 15 0.0028
- 16 0.0038
- 17 0.0031
- 18 0.0000
-
-
-Final number of discrete variables fixed=0 (total=3)
-Final number of continuous variables fixed=0 (total=0)
-
-Computing objective inner bound at xhat solution
-
-Computed objective upper bound=-107941.0000
-
-X-hat variable values:
-
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [CORN] Values: 85.0000 85.0000 85.0000
-
- Index: [SUGAR_BEETS] Values: 268.0000 268.0000 268.0000
-
- Index: [WHEAT] Values: 147.0000 147.0000 147.0000
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: 111280.0000 111280.0000 111280.0000 Max-Min: 0.0000 Avg: 111280.0000
-
-X-hat costs:
-
-Scenario Tree Costs
-----------------------------------------------------
-Tree Nodes:
-
- Name=AboveAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AboveAverageScenario
- Expected cost of (sub)tree rooted at node=-271190.0000
-
- Name=AverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AverageScenario
- Expected cost of (sub)tree rooted at node=-223685.0000
-
- Name=BelowAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-162788.0000
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- AboveAverageNode
- AverageNode
- BelowAverageNode
- Scenarios:
- AboveAverageScenario
- AverageScenario
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-107941.0000
-
-----------------------------------------------------
-Scenarios:
-
- Name=AboveAverageScenario
- Probability=0.3333
- Leaf Node=AboveAverageNode
- Tree node sequence:
- RootNode
- AboveAverageNode
- Stage= FirstStage Cost=111280.0000
- Stage= SecondStage Cost=-271190.0000
- Total scenario cost=-159910.0000
-
- Name=AverageScenario
- Probability=0.3333
- Leaf Node=AverageNode
- Tree node sequence:
- RootNode
- AverageNode
- Stage= FirstStage Cost=111280.0000
- Stage= SecondStage Cost=-223685.0000
- Total scenario cost=-112405.0000
-
- Name=BelowAverageScenario
- Probability=0.3333
- Leaf Node=BelowAverageNode
- Tree node sequence:
- RootNode
- BelowAverageNode
- Stage= FirstStage Cost=111280.0000
- Stage= SecondStage Cost=-162788.0000
- Total scenario cost=-51508.0000
-
-----------------------------------------------------
-
-
-Total PH execution time=3.68 seconds
-
-
-Total execution time=3.70 seconds
diff --git a/pyomo/pysp/tests/unit/baselines/farmer_with_rent_quadratic_cplex.baseline b/pyomo/pysp/tests/unit/baselines/farmer_with_rent_quadratic_cplex.baseline
deleted file mode 100644
index 868d9a35e58..00000000000
--- a/pyomo/pysp/tests/unit/baselines/farmer_with_rent_quadratic_cplex.baseline
+++ /dev/null
@@ -1,415 +0,0 @@
-Initializing PH
-
-Starting PH
-
-Initiating PH iteration=0
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=4)
-First stage cost avg= -40812.2222 Max-Min=247883.33
-Converger=Normalized term diff value is 0.8394 - threshold reached=False
-Cumulative run-time=0.50 seconds
-
-Initiating PH iteration=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=4)
-First stage cost avg= -26877.2820 Max-Min=187244.96
-Converger=Normalized term diff value is 0.6330 - threshold reached=False
-Cumulative run-time=1.01 seconds
-
-Initiating PH iteration=2
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=4)
-First stage cost avg= -10368.0119 Max-Min= 517.82
-Converger=Normalized term diff value is 0.0049 - threshold reached=False
-Cumulative run-time=1.58 seconds
-
-Initiating PH iteration=3
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=4)
-First stage cost avg= 4768.0325 Max-Min= 7677.05
-Converger=Normalized term diff value is 0.0215 - threshold reached=False
-Cumulative run-time=2.15 seconds
-
-Initiating PH iteration=4
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=4)
-First stage cost avg= 13152.7184 Max-Min=20254.08
-Converger=Normalized term diff value is 0.0436 - threshold reached=False
-Cumulative run-time=2.69 seconds
-
-Initiating PH iteration=5
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=4)
-First stage cost avg= 17028.6497 Max-Min=13526.26
-Converger=Normalized term diff value is 0.3686 - threshold reached=False
-Cumulative run-time=3.22 seconds
-
-Initiating PH iteration=6
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=4)
-First stage cost avg= 16882.8970 Max-Min= 6056.16
-Converger=Normalized term diff value is 0.3583 - threshold reached=False
-Cumulative run-time=3.79 seconds
-
-Initiating PH iteration=7
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=4)
-First stage cost avg= 13503.2279 Max-Min= 3682.66
-Converger=Normalized term diff value is 0.3277 - threshold reached=False
-Cumulative run-time=4.30 seconds
-
-Initiating PH iteration=8
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=4)
-First stage cost avg= 8583.0162 Max-Min= 3300.10
-Converger=Normalized term diff value is 0.1817 - threshold reached=False
-Cumulative run-time=4.80 seconds
-
-Initiating PH iteration=9
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=4)
-First stage cost avg= 3197.9304 Max-Min= 1148.43
-Converger=Normalized term diff value is 0.1750 - threshold reached=False
-Cumulative run-time=5.31 seconds
-
-Initiating PH iteration=10
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=4)
-First stage cost avg= -1696.0052 Max-Min= 2200.93
-Converger=Normalized term diff value is 0.3349 - threshold reached=False
-Cumulative run-time=5.82 seconds
-
-Initiating PH iteration=11
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=4)
-First stage cost avg= -4119.6209 Max-Min= 5654.43
-Converger=Normalized term diff value is 0.0099 - threshold reached=False
-Cumulative run-time=6.33 seconds
-
-Initiating PH iteration=12
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=4)
-First stage cost avg= -4396.0027 Max-Min= 6069.01
-Converger=Normalized term diff value is 0.0133 - threshold reached=False
-Cumulative run-time=6.83 seconds
-
-Initiating PH iteration=13
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=4)
-First stage cost avg= -3231.5892 Max-Min= 4322.39
-Converger=Normalized term diff value is 0.0111 - threshold reached=False
-Cumulative run-time=7.31 seconds
-
-Initiating PH iteration=14
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=4)
-First stage cost avg= -1494.7833 Max-Min= 1717.18
-Converger=Normalized term diff value is 0.0059 - threshold reached=False
-Cumulative run-time=7.79 seconds
-
-Initiating PH iteration=15
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=4)
-First stage cost avg= 44.6823 Max-Min= 592.02
-Converger=Normalized term diff value is 0.0029 - threshold reached=False
-Cumulative run-time=8.29 seconds
-
-Initiating PH iteration=16
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=4)
-First stage cost avg= 939.4326 Max-Min= 1934.15
-Converger=Normalized term diff value is 0.0033 - threshold reached=False
-Cumulative run-time=8.81 seconds
-
-Initiating PH iteration=17
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=4)
-First stage cost avg= 1106.1226 Max-Min= 2184.18
-Converger=Normalized term diff value is 0.0047 - threshold reached=False
-Cumulative run-time=9.30 seconds
-
-Initiating PH iteration=18
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=4)
-First stage cost avg= 731.8762 Max-Min= 1622.81
-Converger=Normalized term diff value is 0.0041 - threshold reached=False
-Cumulative run-time=9.82 seconds
-
-Initiating PH iteration=19
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=4)
-First stage cost avg= 121.7544 Max-Min= 707.63
-Converger=Normalized term diff value is 0.0023 - threshold reached=False
-Cumulative run-time=10.36 seconds
-
-Initiating PH iteration=20
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=4)
-First stage cost avg= -442.2438 Max-Min= 138.37
-Converger=Normalized term diff value is 0.0010 - threshold reached=False
-Cumulative run-time=10.87 seconds
-
-Initiating PH iteration=21
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=4)
-First stage cost avg= -787.4936 Max-Min= 656.25
-Converger=Normalized term diff value is 0.0011 - threshold reached=False
-Cumulative run-time=11.36 seconds
-
-Initiating PH iteration=22
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=4)
-First stage cost avg= -871.8281 Max-Min= 782.75
-Converger=Normalized term diff value is 0.0017 - threshold reached=False
-Cumulative run-time=11.85 seconds
-
-Initiating PH iteration=23
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=4)
-First stage cost avg= -754.1074 Max-Min= 606.17
-Converger=Normalized term diff value is 0.0015 - threshold reached=False
-Cumulative run-time=12.37 seconds
-
-Initiating PH iteration=24
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=4)
-First stage cost avg= -540.9237 Max-Min= 286.39
-Converger=Normalized term diff value is 0.0009 - threshold reached=False
-Cumulative run-time=12.89 seconds
-
-Initiating PH iteration=25
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=4)
-First stage cost avg= -335.1591 Max-Min= 22.26
-Converger=Normalized term diff value is 0.0003 - threshold reached=False
-Cumulative run-time=13.47 seconds
-
-Initiating PH iteration=26
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=4)
-First stage cost avg= -202.9288 Max-Min= 220.60
-Converger=Normalized term diff value is 0.0004 - threshold reached=False
-Cumulative run-time=14.09 seconds
-
-Initiating PH iteration=27
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=4)
-First stage cost avg= -163.7981 Max-Min= 279.30
-Converger=Normalized term diff value is 0.0006 - threshold reached=False
-Cumulative run-time=14.76 seconds
-
-Initiating PH iteration=28
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=4)
-First stage cost avg= -199.7774 Max-Min= 225.33
-Converger=Normalized term diff value is 0.0005 - threshold reached=False
-Cumulative run-time=15.34 seconds
-
-Initiating PH iteration=29
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=4)
-First stage cost avg= -273.8368 Max-Min= 114.24
-Converger=Normalized term diff value is 0.0003 - threshold reached=False
-Cumulative run-time=15.91 seconds
-
-Initiating PH iteration=30
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=4)
-First stage cost avg= -348.5966 Max-Min= 2.10
-Converger=Normalized term diff value is 0.0001 - threshold reached=False
-Cumulative run-time=16.47 seconds
-
-Initiating PH iteration=31
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=4)
-First stage cost avg= -398.9033 Max-Min= 73.36
-Converger=Normalized term diff value is 0.0001 - threshold reached=False
-Cumulative run-time=17.05 seconds
-
-Initiating PH iteration=32
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=4)
-First stage cost avg= -416.1391 Max-Min= 99.21
-Converger=Normalized term diff value is 0.0002 - threshold reached=False
-Cumulative run-time=17.61 seconds
-
-Initiating PH iteration=33
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=4)
-First stage cost avg= -405.5824 Max-Min= 83.38
-Converger=Normalized term diff value is 0.0002 - threshold reached=False
-Cumulative run-time=18.11 seconds
-
-Initiating PH iteration=34
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=4)
-First stage cost avg= -380.0162 Max-Min= 45.03
-Converger=Normalized term diff value is 0.0001 - threshold reached=False
-Cumulative run-time=18.63 seconds
-
-Initiating PH iteration=35
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=4)
-First stage cost avg= -352.9658 Max-Min= 4.45
-Converger=Normalized term diff value is 0.0001 - threshold reached=True
-Cumulative run-time=19.12 seconds
-
-Number of discrete variables fixed before final plugin calls=0 (total=0)
-Number of continuous variables fixed before final plugin calls=0 (total=4)
-PH complete
-
-Convergence history:
-Converger=Normalized term diff
-Iteration Metric Value
- 0 0.8394
- 1 0.6330
- 2 0.0049
- 3 0.0215
- 4 0.0436
- 5 0.3686
- 6 0.3583
- 7 0.3277
- 8 0.1817
- 9 0.1750
- 10 0.3349
- 11 0.0099
- 12 0.0133
- 13 0.0111
- 14 0.0059
- 15 0.0029
- 16 0.0033
- 17 0.0047
- 18 0.0041
- 19 0.0023
- 20 0.0010
- 21 0.0011
- 22 0.0017
- 23 0.0015
- 24 0.0009
- 25 0.0003
- 26 0.0004
- 27 0.0006
- 28 0.0005
- 29 0.0003
- 30 0.0001
- 31 0.0001
- 32 0.0002
- 33 0.0002
- 34 0.0001
- 35 0.0001
-
-
-Final number of discrete variables fixed=0 (total=0)
-Final number of continuous variables fixed=0 (total=4)
-
-Computing objective inner bound at xhat solution
-
-Computed objective upper bound=-122016.6666
-
-X-hat variable values:
-
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [SUGAR_BEETS] Values: 250.0000 250.0000 250.0000
-
- Index: [WHEAT] Values: 66.6667 66.6667 66.6667
-
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: RentedOutAcreage
- Values: 183.3333 183.3333 183.3333
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: -349.9973 -349.9973 -349.9973 Max-Min: 0.0000 Avg: -349.9973
-
-X-hat costs:
-
-Scenario Tree Costs
-----------------------------------------------------
-Tree Nodes:
-
- Name=AboveAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AboveAverageScenario
- Expected cost of (sub)tree rooted at node=-165600.0032
-
- Name=AverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AverageScenario
- Expected cost of (sub)tree rooted at node=-121666.6693
-
- Name=BelowAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-77733.3355
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- AboveAverageNode
- AverageNode
- BelowAverageNode
- Scenarios:
- AboveAverageScenario
- AverageScenario
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-122016.6666
-
-----------------------------------------------------
-Scenarios:
-
- Name=AboveAverageScenario
- Probability=0.3333
- Leaf Node=AboveAverageNode
- Tree node sequence:
- RootNode
- AboveAverageNode
- Stage= FirstStage Cost= -349.9973
- Stage= SecondStage Cost=-165600.0032
- Total scenario cost=-165950.0005
-
- Name=AverageScenario
- Probability=0.3333
- Leaf Node=AverageNode
- Tree node sequence:
- RootNode
- AverageNode
- Stage= FirstStage Cost= -349.9973
- Stage= SecondStage Cost=-121666.6693
- Total scenario cost=-122016.6666
-
- Name=BelowAverageScenario
- Probability=0.3333
- Leaf Node=BelowAverageNode
- Tree node sequence:
- RootNode
- BelowAverageNode
- Stage= FirstStage Cost= -349.9973
- Stage= SecondStage Cost=-77733.3355
- Total scenario cost=-78083.3327
-
-----------------------------------------------------
-
-
-Total PH execution time=19.57 seconds
-
-
-Total execution time=19.66 seconds
diff --git a/pyomo/pysp/tests/unit/baselines/farmer_with_rent_quadratic_gurobi.baseline b/pyomo/pysp/tests/unit/baselines/farmer_with_rent_quadratic_gurobi.baseline
deleted file mode 100644
index 98fcd369743..00000000000
--- a/pyomo/pysp/tests/unit/baselines/farmer_with_rent_quadratic_gurobi.baseline
+++ /dev/null
@@ -1,415 +0,0 @@
-Initializing PH
-
-Starting PH
-
-Initiating PH iteration=0
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=4)
-First stage cost avg= -40812.2222 Max-Min=247883.33
-Converger=Normalized term diff value is 0.8394 - threshold reached=False
-Cumulative run-time=0.83 seconds
-
-Initiating PH iteration=1
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=4)
-First stage cost avg= -26877.2823 Max-Min=187244.96
-Converger=Normalized term diff value is 0.6330 - threshold reached=False
-Cumulative run-time=1.73 seconds
-
-Initiating PH iteration=2
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=4)
-First stage cost avg= -10368.0115 Max-Min= 517.81
-Converger=Normalized term diff value is 0.0049 - threshold reached=False
-Cumulative run-time=2.63 seconds
-
-Initiating PH iteration=3
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=4)
-First stage cost avg= 4768.0335 Max-Min= 7677.05
-Converger=Normalized term diff value is 0.0215 - threshold reached=False
-Cumulative run-time=3.47 seconds
-
-Initiating PH iteration=4
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=4)
-First stage cost avg= 13152.7190 Max-Min=20254.08
-Converger=Normalized term diff value is 0.0436 - threshold reached=False
-Cumulative run-time=4.32 seconds
-
-Initiating PH iteration=5
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=4)
-First stage cost avg= 17028.6490 Max-Min=13526.27
-Converger=Normalized term diff value is 0.3686 - threshold reached=False
-Cumulative run-time=5.17 seconds
-
-Initiating PH iteration=6
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=4)
-First stage cost avg= 16882.8960 Max-Min= 6056.16
-Converger=Normalized term diff value is 0.3583 - threshold reached=False
-Cumulative run-time=6.04 seconds
-
-Initiating PH iteration=7
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=4)
-First stage cost avg= 13503.2240 Max-Min= 3682.65
-Converger=Normalized term diff value is 0.3277 - threshold reached=False
-Cumulative run-time=6.94 seconds
-
-Initiating PH iteration=8
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=4)
-First stage cost avg= 8583.0111 Max-Min= 3300.10
-Converger=Normalized term diff value is 0.1817 - threshold reached=False
-Cumulative run-time=7.87 seconds
-
-Initiating PH iteration=9
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=4)
-First stage cost avg= 3197.9224 Max-Min= 1148.43
-Converger=Normalized term diff value is 0.1750 - threshold reached=False
-Cumulative run-time=8.84 seconds
-
-Initiating PH iteration=10
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=4)
-First stage cost avg= -1696.4283 Max-Min= 2202.12
-Converger=Normalized term diff value is 0.3365 - threshold reached=False
-Cumulative run-time=9.81 seconds
-
-Initiating PH iteration=11
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=4)
-First stage cost avg= -4119.6354 Max-Min= 5654.45
-Converger=Normalized term diff value is 0.0099 - threshold reached=False
-Cumulative run-time=10.82 seconds
-
-Initiating PH iteration=12
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=4)
-First stage cost avg= -4396.0142 Max-Min= 6069.02
-Converger=Normalized term diff value is 0.0133 - threshold reached=False
-Cumulative run-time=11.76 seconds
-
-Initiating PH iteration=13
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=4)
-First stage cost avg= -3231.5954 Max-Min= 4322.39
-Converger=Normalized term diff value is 0.0111 - threshold reached=False
-Cumulative run-time=12.75 seconds
-
-Initiating PH iteration=14
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=4)
-First stage cost avg= -1494.7843 Max-Min= 1717.18
-Converger=Normalized term diff value is 0.0059 - threshold reached=False
-Cumulative run-time=13.71 seconds
-
-Initiating PH iteration=15
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=4)
-First stage cost avg= 44.6844 Max-Min= 592.03
-Converger=Normalized term diff value is 0.0029 - threshold reached=False
-Cumulative run-time=14.64 seconds
-
-Initiating PH iteration=16
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=4)
-First stage cost avg= 939.4355 Max-Min= 1934.15
-Converger=Normalized term diff value is 0.0033 - threshold reached=False
-Cumulative run-time=15.59 seconds
-
-Initiating PH iteration=17
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=4)
-First stage cost avg= 1106.1244 Max-Min= 2184.19
-Converger=Normalized term diff value is 0.0047 - threshold reached=False
-Cumulative run-time=16.53 seconds
-
-Initiating PH iteration=18
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=4)
-First stage cost avg= 731.8755 Max-Min= 1622.81
-Converger=Normalized term diff value is 0.0041 - threshold reached=False
-Cumulative run-time=17.39 seconds
-
-Initiating PH iteration=19
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=4)
-First stage cost avg= 121.7511 Max-Min= 707.63
-Converger=Normalized term diff value is 0.0023 - threshold reached=False
-Cumulative run-time=18.28 seconds
-
-Initiating PH iteration=20
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=4)
-First stage cost avg= -442.2489 Max-Min= 138.37
-Converger=Normalized term diff value is 0.0010 - threshold reached=False
-Cumulative run-time=19.21 seconds
-
-Initiating PH iteration=21
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=4)
-First stage cost avg= -787.4992 Max-Min= 656.25
-Converger=Normalized term diff value is 0.0011 - threshold reached=False
-Cumulative run-time=20.15 seconds
-
-Initiating PH iteration=22
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=4)
-First stage cost avg= -871.8331 Max-Min= 782.75
-Converger=Normalized term diff value is 0.0017 - threshold reached=False
-Cumulative run-time=21.08 seconds
-
-Initiating PH iteration=23
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=4)
-First stage cost avg= -754.1113 Max-Min= 606.17
-Converger=Normalized term diff value is 0.0015 - threshold reached=False
-Cumulative run-time=22.02 seconds
-
-Initiating PH iteration=24
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=4)
-First stage cost avg= -540.9263 Max-Min= 286.39
-Converger=Normalized term diff value is 0.0009 - threshold reached=False
-Cumulative run-time=22.93 seconds
-
-Initiating PH iteration=25
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=4)
-First stage cost avg= -335.1609 Max-Min= 22.26
-Converger=Normalized term diff value is 0.0003 - threshold reached=False
-Cumulative run-time=23.84 seconds
-
-Initiating PH iteration=26
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=4)
-First stage cost avg= -202.9303 Max-Min= 220.60
-Converger=Normalized term diff value is 0.0004 - threshold reached=False
-Cumulative run-time=24.75 seconds
-
-Initiating PH iteration=27
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=4)
-First stage cost avg= -163.7998 Max-Min= 279.30
-Converger=Normalized term diff value is 0.0006 - threshold reached=False
-Cumulative run-time=25.74 seconds
-
-Initiating PH iteration=28
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=4)
-First stage cost avg= -199.7796 Max-Min= 225.33
-Converger=Normalized term diff value is 0.0005 - threshold reached=False
-Cumulative run-time=26.69 seconds
-
-Initiating PH iteration=29
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=4)
-First stage cost avg= -273.8395 Max-Min= 114.24
-Converger=Normalized term diff value is 0.0003 - threshold reached=False
-Cumulative run-time=27.56 seconds
-
-Initiating PH iteration=30
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=4)
-First stage cost avg= -348.5997 Max-Min= 2.10
-Converger=Normalized term diff value is 0.0001 - threshold reached=False
-Cumulative run-time=28.43 seconds
-
-Initiating PH iteration=31
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=4)
-First stage cost avg= -398.9065 Max-Min= 73.36
-Converger=Normalized term diff value is 0.0001 - threshold reached=False
-Cumulative run-time=29.29 seconds
-
-Initiating PH iteration=32
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=4)
-First stage cost avg= -416.1423 Max-Min= 99.21
-Converger=Normalized term diff value is 0.0002 - threshold reached=False
-Cumulative run-time=30.15 seconds
-
-Initiating PH iteration=33
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=4)
-First stage cost avg= -405.5853 Max-Min= 83.38
-Converger=Normalized term diff value is 0.0002 - threshold reached=False
-Cumulative run-time=31.08 seconds
-
-Initiating PH iteration=34
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=4)
-First stage cost avg= -380.0189 Max-Min= 45.03
-Converger=Normalized term diff value is 0.0001 - threshold reached=False
-Cumulative run-time=32.02 seconds
-
-Initiating PH iteration=35
-Number of discrete variables fixed=0 (total=0)
-Number of continuous variables fixed=0 (total=4)
-First stage cost avg= -352.9684 Max-Min= 4.45
-Converger=Normalized term diff value is 0.0001 - threshold reached=True
-Cumulative run-time=32.96 seconds
-
-Number of discrete variables fixed before final plugin calls=0 (total=0)
-Number of continuous variables fixed before final plugin calls=0 (total=4)
-PH complete
-
-Convergence history:
-Converger=Normalized term diff
-Iteration Metric Value
- 0 0.8394
- 1 0.6330
- 2 0.0049
- 3 0.0215
- 4 0.0436
- 5 0.3686
- 6 0.3583
- 7 0.3277
- 8 0.1817
- 9 0.1750
- 10 0.3365
- 11 0.0099
- 12 0.0133
- 13 0.0111
- 14 0.0059
- 15 0.0029
- 16 0.0033
- 17 0.0047
- 18 0.0041
- 19 0.0023
- 20 0.0010
- 21 0.0011
- 22 0.0017
- 23 0.0015
- 24 0.0009
- 25 0.0003
- 26 0.0004
- 27 0.0006
- 28 0.0005
- 29 0.0003
- 30 0.0001
- 31 0.0001
- 32 0.0002
- 33 0.0002
- 34 0.0001
- 35 0.0001
-
-
-Final number of discrete variables fixed=0 (total=0)
-Final number of continuous variables fixed=0 (total=4)
-
-Computing objective inner bound at xhat solution
-
-Computed objective upper bound=-122016.6667
-
-X-hat variable values:
-
- Stage: FirstStage
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: DevotedAcreage
- Index: [SUGAR_BEETS] Values: 250.0000 250.0000 250.0000
-
- Index: [WHEAT] Values: 66.6667 66.6667 66.6667
-
- (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Variable: RentedOutAcreage
- Values: 183.3333 183.3333 183.3333
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: BelowAverageScenario AverageScenario AboveAverageScenario )
- Values: -350.0000 -350.0000 -350.0000 Max-Min: 0.0000 Avg: -350.0000
-
-X-hat costs:
-
-Scenario Tree Costs
-----------------------------------------------------
-Tree Nodes:
-
- Name=AboveAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AboveAverageScenario
- Expected cost of (sub)tree rooted at node=-165600.0000
-
- Name=AverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- AverageScenario
- Expected cost of (sub)tree rooted at node=-121666.6667
-
- Name=BelowAverageNode
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-77733.3333
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- AboveAverageNode
- AverageNode
- BelowAverageNode
- Scenarios:
- AboveAverageScenario
- AverageScenario
- BelowAverageScenario
- Expected cost of (sub)tree rooted at node=-122016.6667
-
-----------------------------------------------------
-Scenarios:
-
- Name=AboveAverageScenario
- Probability=0.3333
- Leaf Node=AboveAverageNode
- Tree node sequence:
- RootNode
- AboveAverageNode
- Stage= FirstStage Cost= -350.0000
- Stage= SecondStage Cost=-165600.0000
- Total scenario cost=-165950.0000
-
- Name=AverageScenario
- Probability=0.3333
- Leaf Node=AverageNode
- Tree node sequence:
- RootNode
- AverageNode
- Stage= FirstStage Cost= -350.0000
- Stage= SecondStage Cost=-121666.6667
- Total scenario cost=-122016.6667
-
- Name=BelowAverageScenario
- Probability=0.3333
- Leaf Node=BelowAverageNode
- Tree node sequence:
- RootNode
- BelowAverageNode
- Stage= FirstStage Cost= -350.0000
- Stage= SecondStage Cost=-77733.3333
- Total scenario cost=-78083.3333
-
-----------------------------------------------------
-
-
-Total PH execution time=33.89 seconds
-
-
-Total execution time=33.96 seconds
diff --git a/pyomo/pysp/tests/unit/baselines/forestry_ef.baseline.lp.gz b/pyomo/pysp/tests/unit/baselines/forestry_ef.baseline.lp.gz
deleted file mode 100644
index fbb96b76579..00000000000
Binary files a/pyomo/pysp/tests/unit/baselines/forestry_ef.baseline.lp.gz and /dev/null differ
diff --git a/pyomo/pysp/tests/unit/baselines/forestry_ef.baseline.txt b/pyomo/pysp/tests/unit/baselines/forestry_ef.baseline.txt
deleted file mode 100644
index b3085853c54..00000000000
--- a/pyomo/pysp/tests/unit/baselines/forestry_ef.baseline.txt
+++ /dev/null
@@ -1,712 +0,0 @@
-Importing model and scenario tree files
-Time to import model and scenario tree structure files=0.03 seconds
-Scenario Tree Detail
-----------------------------------------------------
-Tree Nodes:
-
- Name=Leaf1
- Stage=Ano4Stage
- Parent=StageThreeHighHigh
- Conditional probability=0.5000
- Children:
- None
- Scenarios:
- ForestChile1
-
- Name=Leaf10
- Stage=Ano4Stage
- Parent=StageThreeMediumMedium
- Conditional probability=0.5000
- Children:
- None
- Scenarios:
- ForestChile10
-
- Name=Leaf11
- Stage=Ano4Stage
- Parent=StageThreeMediumLow
- Conditional probability=0.5000
- Children:
- None
- Scenarios:
- ForestChile11
-
- Name=Leaf12
- Stage=Ano4Stage
- Parent=StageThreeMediumLow
- Conditional probability=0.5000
- Children:
- None
- Scenarios:
- ForestChile12
-
- Name=Leaf13
- Stage=Ano4Stage
- Parent=StageThreeLowHigh
- Conditional probability=0.5000
- Children:
- None
- Scenarios:
- ForestChile13
-
- Name=Leaf14
- Stage=Ano4Stage
- Parent=StageThreeLowHigh
- Conditional probability=0.5000
- Children:
- None
- Scenarios:
- ForestChile14
-
- Name=Leaf15
- Stage=Ano4Stage
- Parent=StageThreeLowMedium
- Conditional probability=0.5000
- Children:
- None
- Scenarios:
- ForestChile15
-
- Name=Leaf16
- Stage=Ano4Stage
- Parent=StageThreeLowMedium
- Conditional probability=0.5000
- Children:
- None
- Scenarios:
- ForestChile16
-
- Name=Leaf17
- Stage=Ano4Stage
- Parent=StageThreeLowLow
- Conditional probability=0.5000
- Children:
- None
- Scenarios:
- ForestChile17
-
- Name=Leaf18
- Stage=Ano4Stage
- Parent=StageThreeLowLow
- Conditional probability=0.5000
- Children:
- None
- Scenarios:
- ForestChile18
-
- Name=Leaf2
- Stage=Ano4Stage
- Parent=StageThreeHighHigh
- Conditional probability=0.5000
- Children:
- None
- Scenarios:
- ForestChile2
-
- Name=Leaf3
- Stage=Ano4Stage
- Parent=StageThreeHighMedium
- Conditional probability=0.5000
- Children:
- None
- Scenarios:
- ForestChile3
-
- Name=Leaf4
- Stage=Ano4Stage
- Parent=StageThreeHighMedium
- Conditional probability=0.5000
- Children:
- None
- Scenarios:
- ForestChile4
-
- Name=Leaf5
- Stage=Ano4Stage
- Parent=StageThreeHighLow
- Conditional probability=0.5000
- Children:
- None
- Scenarios:
- ForestChile5
-
- Name=Leaf6
- Stage=Ano4Stage
- Parent=StageThreeHighLow
- Conditional probability=0.5000
- Children:
- None
- Scenarios:
- ForestChile6
-
- Name=Leaf7
- Stage=Ano4Stage
- Parent=StageThreeMediumHigh
- Conditional probability=0.5000
- Children:
- None
- Scenarios:
- ForestChile7
-
- Name=Leaf8
- Stage=Ano4Stage
- Parent=StageThreeMediumHigh
- Conditional probability=0.5000
- Children:
- None
- Scenarios:
- ForestChile8
-
- Name=Leaf9
- Stage=Ano4Stage
- Parent=StageThreeMediumMedium
- Conditional probability=0.5000
- Children:
- None
- Scenarios:
- ForestChile9
-
- Name=RootNode
- Stage=Ano1Stage
- Parent=None
- Conditional probability=1.0000
- Children:
- StageTwoHigh
- StageTwoLow
- StageTwoMedium
- Scenarios:
- ForestChile1
- ForestChile10
- ForestChile11
- ForestChile12
- ForestChile13
- ForestChile14
- ForestChile15
- ForestChile16
- ForestChile17
- ForestChile18
- ForestChile2
- ForestChile3
- ForestChile4
- ForestChile5
- ForestChile6
- ForestChile7
- ForestChile8
- ForestChile9
-
- Name=StageThreeHighHigh
- Stage=Ano3Stage
- Parent=StageTwoHigh
- Conditional probability=0.3300
- Children:
- Leaf1
- Leaf2
- Scenarios:
- ForestChile1
- ForestChile2
-
- Name=StageThreeHighLow
- Stage=Ano3Stage
- Parent=StageTwoHigh
- Conditional probability=0.3400
- Children:
- Leaf5
- Leaf6
- Scenarios:
- ForestChile5
- ForestChile6
-
- Name=StageThreeHighMedium
- Stage=Ano3Stage
- Parent=StageTwoHigh
- Conditional probability=0.3300
- Children:
- Leaf3
- Leaf4
- Scenarios:
- ForestChile3
- ForestChile4
-
- Name=StageThreeLowHigh
- Stage=Ano3Stage
- Parent=StageTwoLow
- Conditional probability=0.3300
- Children:
- Leaf13
- Leaf14
- Scenarios:
- ForestChile13
- ForestChile14
-
- Name=StageThreeLowLow
- Stage=Ano3Stage
- Parent=StageTwoLow
- Conditional probability=0.3400
- Children:
- Leaf17
- Leaf18
- Scenarios:
- ForestChile17
- ForestChile18
-
- Name=StageThreeLowMedium
- Stage=Ano3Stage
- Parent=StageTwoLow
- Conditional probability=0.3300
- Children:
- Leaf15
- Leaf16
- Scenarios:
- ForestChile15
- ForestChile16
-
- Name=StageThreeMediumHigh
- Stage=Ano3Stage
- Parent=StageTwoMedium
- Conditional probability=0.3300
- Children:
- Leaf7
- Leaf8
- Scenarios:
- ForestChile7
- ForestChile8
-
- Name=StageThreeMediumLow
- Stage=Ano3Stage
- Parent=StageTwoMedium
- Conditional probability=0.3400
- Children:
- Leaf11
- Leaf12
- Scenarios:
- ForestChile11
- ForestChile12
-
- Name=StageThreeMediumMedium
- Stage=Ano3Stage
- Parent=StageTwoMedium
- Conditional probability=0.3300
- Children:
- Leaf10
- Leaf9
- Scenarios:
- ForestChile10
- ForestChile9
-
- Name=StageTwoHigh
- Stage=Ano2Stage
- Parent=RootNode
- Conditional probability=0.3300
- Children:
- StageThreeHighHigh
- StageThreeHighLow
- StageThreeHighMedium
- Scenarios:
- ForestChile1
- ForestChile2
- ForestChile3
- ForestChile4
- ForestChile5
- ForestChile6
-
- Name=StageTwoLow
- Stage=Ano2Stage
- Parent=RootNode
- Conditional probability=0.3400
- Children:
- StageThreeLowHigh
- StageThreeLowLow
- StageThreeLowMedium
- Scenarios:
- ForestChile13
- ForestChile14
- ForestChile15
- ForestChile16
- ForestChile17
- ForestChile18
-
- Name=StageTwoMedium
- Stage=Ano2Stage
- Parent=RootNode
- Conditional probability=0.3300
- Children:
- StageThreeMediumHigh
- StageThreeMediumLow
- StageThreeMediumMedium
- Scenarios:
- ForestChile10
- ForestChile11
- ForestChile12
- ForestChile7
- ForestChile8
- ForestChile9
-
-----------------------------------------------------
-Stages:
- Name=Ano1Stage
- Tree Nodes:
- RootNode
- Variables:
- delta : [U1,Ano1] [U2,Ano1] [U3,Ano1] [U4,Ano1] [U5,Ano1] [U6,Ano1] [U7,Ano1] [U8,Ano1] [U9,Ano1] [U10,Ano1] [U11,Ano1] [U12,Ano1] [U13,Ano1] [U14,Ano1] [U15,Ano1] [U16,Ano1] [U17,Ano1] [U18,Ano1] [U19,Ano1] [U20,Ano1] [U21,Ano1] [U22,Ano1] [U23,Ano1] [U24,Ano1] [U25,Ano1]
- f : [C02,C03,Ano1] [C03,E1,Ano1] [C05,I1,Ano1] [I1,I2,Ano1] [I2,I3,Ano1] [I3,E1,Ano1] [C01,C09,Ano1] [C01,C02,Ano1] [C02,C09,Ano1] [C09,C02,Ano1] [C09,E1,Ano1] [C09,C03,Ano1] [C04,C03,Ano1] [C04,I3,Ano1] [C06,I3,Ano1] [C08,C06,Ano1] [C08,I2,Ano1] [C07,C08,Ano1] [C07,I1,Ano1] [C07,C05,Ano1]
- gamma : [C01,C09,Ano1] [C01,C02,Ano1] [C02,C09,Ano1] [C09,C02,Ano1] [C09,E1,Ano1] [C09,C03,Ano1] [C04,C03,Ano1] [C04,I3,Ano1] [C06,I3,Ano1] [C08,C06,Ano1] [C08,I2,Ano1] [C07,C08,Ano1] [C07,I1,Ano1] [C07,C05,Ano1]
- Derived Variables:
- z : [E1,Ano1]
- Cost Variable:
- AnoProfit[Ano1]
-
- Name=Ano2Stage
- Tree Nodes:
- StageTwoHigh
- StageTwoLow
- StageTwoMedium
- Variables:
- delta : [U1,Ano2] [U2,Ano2] [U3,Ano2] [U4,Ano2] [U5,Ano2] [U6,Ano2] [U7,Ano2] [U8,Ano2] [U9,Ano2] [U10,Ano2] [U11,Ano2] [U12,Ano2] [U13,Ano2] [U14,Ano2] [U15,Ano2] [U16,Ano2] [U17,Ano2] [U18,Ano2] [U19,Ano2] [U20,Ano2] [U21,Ano2] [U22,Ano2] [U23,Ano2] [U24,Ano2] [U25,Ano2]
- f : [C02,C03,Ano2] [C03,E1,Ano2] [C05,I1,Ano2] [I1,I2,Ano2] [I2,I3,Ano2] [I3,E1,Ano2] [C01,C09,Ano2] [C01,C02,Ano2] [C02,C09,Ano2] [C09,C02,Ano2] [C09,E1,Ano2] [C09,C03,Ano2] [C04,C03,Ano2] [C04,I3,Ano2] [C06,I3,Ano2] [C08,C06,Ano2] [C08,I2,Ano2] [C07,C08,Ano2] [C07,I1,Ano2] [C07,C05,Ano2]
- gamma : [C01,C09,Ano2] [C01,C02,Ano2] [C02,C09,Ano2] [C09,C02,Ano2] [C09,E1,Ano2] [C09,C03,Ano2] [C04,C03,Ano2] [C04,I3,Ano2] [C06,I3,Ano2] [C08,C06,Ano2] [C08,I2,Ano2] [C07,C08,Ano2] [C07,I1,Ano2] [C07,C05,Ano2]
- Derived Variables:
- z : [E1,Ano2]
- Cost Variable:
- AnoProfit[Ano2]
-
- Name=Ano3Stage
- Tree Nodes:
- StageThreeHighHigh
- StageThreeHighLow
- StageThreeHighMedium
- StageThreeLowHigh
- StageThreeLowLow
- StageThreeLowMedium
- StageThreeMediumHigh
- StageThreeMediumLow
- StageThreeMediumMedium
- Variables:
- delta : [U1,Ano3] [U2,Ano3] [U3,Ano3] [U4,Ano3] [U5,Ano3] [U6,Ano3] [U7,Ano3] [U8,Ano3] [U9,Ano3] [U10,Ano3] [U11,Ano3] [U12,Ano3] [U13,Ano3] [U14,Ano3] [U15,Ano3] [U16,Ano3] [U17,Ano3] [U18,Ano3] [U19,Ano3] [U20,Ano3] [U21,Ano3] [U22,Ano3] [U23,Ano3] [U24,Ano3] [U25,Ano3]
- f : [C02,C03,Ano3] [C03,E1,Ano3] [C05,I1,Ano3] [I1,I2,Ano3] [I2,I3,Ano3] [I3,E1,Ano3] [C01,C09,Ano3] [C01,C02,Ano3] [C02,C09,Ano3] [C09,C02,Ano3] [C09,E1,Ano3] [C09,C03,Ano3] [C04,C03,Ano3] [C04,I3,Ano3] [C06,I3,Ano3] [C08,C06,Ano3] [C08,I2,Ano3] [C07,C08,Ano3] [C07,I1,Ano3] [C07,C05,Ano3]
- gamma : [C01,C09,Ano3] [C01,C02,Ano3] [C02,C09,Ano3] [C09,C02,Ano3] [C09,E1,Ano3] [C09,C03,Ano3] [C04,C03,Ano3] [C04,I3,Ano3] [C06,I3,Ano3] [C08,C06,Ano3] [C08,I2,Ano3] [C07,C08,Ano3] [C07,I1,Ano3] [C07,C05,Ano3]
- Derived Variables:
- z : [E1,Ano3]
- Cost Variable:
- AnoProfit[Ano3]
-
- Name=Ano4Stage
- Tree Nodes:
- Leaf1
- Leaf10
- Leaf11
- Leaf12
- Leaf13
- Leaf14
- Leaf15
- Leaf16
- Leaf17
- Leaf18
- Leaf2
- Leaf3
- Leaf4
- Leaf5
- Leaf6
- Leaf7
- Leaf8
- Leaf9
- Variables:
- delta : [U1,Ano4] [U2,Ano4] [U3,Ano4] [U4,Ano4] [U5,Ano4] [U6,Ano4] [U7,Ano4] [U8,Ano4] [U9,Ano4] [U10,Ano4] [U11,Ano4] [U12,Ano4] [U13,Ano4] [U14,Ano4] [U15,Ano4] [U16,Ano4] [U17,Ano4] [U18,Ano4] [U19,Ano4] [U20,Ano4] [U21,Ano4] [U22,Ano4] [U23,Ano4] [U24,Ano4] [U25,Ano4]
- f : [C02,C03,Ano4] [C03,E1,Ano4] [C05,I1,Ano4] [I1,I2,Ano4] [I2,I3,Ano4] [I3,E1,Ano4] [C01,C09,Ano4] [C01,C02,Ano4] [C02,C09,Ano4] [C09,C02,Ano4] [C09,E1,Ano4] [C09,C03,Ano4] [C04,C03,Ano4] [C04,I3,Ano4] [C06,I3,Ano4] [C08,C06,Ano4] [C08,I2,Ano4] [C07,C08,Ano4] [C07,I1,Ano4] [C07,C05,Ano4]
- gamma : [C01,C09,Ano4] [C01,C02,Ano4] [C02,C09,Ano4] [C09,C02,Ano4] [C09,E1,Ano4] [C09,C03,Ano4] [C04,C03,Ano4] [C04,I3,Ano4] [C06,I3,Ano4] [C08,C06,Ano4] [C08,I2,Ano4] [C07,C08,Ano4] [C07,I1,Ano4] [C07,C05,Ano4]
- Derived Variables:
- z : [E1,Ano4]
- Cost Variable:
- AnoProfit[Ano4]
-
-----------------------------------------------------
-Scenarios:
- Name=ForestChile1
- Probability=0.0545
- Leaf node=Leaf1
- Tree node sequence:
- RootNode
- StageTwoHigh
- StageThreeHighHigh
- Leaf1
-
- Name=ForestChile10
- Probability=0.0545
- Leaf node=Leaf10
- Tree node sequence:
- RootNode
- StageTwoMedium
- StageThreeMediumMedium
- Leaf10
-
- Name=ForestChile11
- Probability=0.0561
- Leaf node=Leaf11
- Tree node sequence:
- RootNode
- StageTwoMedium
- StageThreeMediumLow
- Leaf11
-
- Name=ForestChile12
- Probability=0.0561
- Leaf node=Leaf12
- Tree node sequence:
- RootNode
- StageTwoMedium
- StageThreeMediumLow
- Leaf12
-
- Name=ForestChile13
- Probability=0.0561
- Leaf node=Leaf13
- Tree node sequence:
- RootNode
- StageTwoLow
- StageThreeLowHigh
- Leaf13
-
- Name=ForestChile14
- Probability=0.0561
- Leaf node=Leaf14
- Tree node sequence:
- RootNode
- StageTwoLow
- StageThreeLowHigh
- Leaf14
-
- Name=ForestChile15
- Probability=0.0561
- Leaf node=Leaf15
- Tree node sequence:
- RootNode
- StageTwoLow
- StageThreeLowMedium
- Leaf15
-
- Name=ForestChile16
- Probability=0.0561
- Leaf node=Leaf16
- Tree node sequence:
- RootNode
- StageTwoLow
- StageThreeLowMedium
- Leaf16
-
- Name=ForestChile17
- Probability=0.0578
- Leaf node=Leaf17
- Tree node sequence:
- RootNode
- StageTwoLow
- StageThreeLowLow
- Leaf17
-
- Name=ForestChile18
- Probability=0.0578
- Leaf node=Leaf18
- Tree node sequence:
- RootNode
- StageTwoLow
- StageThreeLowLow
- Leaf18
-
- Name=ForestChile2
- Probability=0.0545
- Leaf node=Leaf2
- Tree node sequence:
- RootNode
- StageTwoHigh
- StageThreeHighHigh
- Leaf2
-
- Name=ForestChile3
- Probability=0.0545
- Leaf node=Leaf3
- Tree node sequence:
- RootNode
- StageTwoHigh
- StageThreeHighMedium
- Leaf3
-
- Name=ForestChile4
- Probability=0.0545
- Leaf node=Leaf4
- Tree node sequence:
- RootNode
- StageTwoHigh
- StageThreeHighMedium
- Leaf4
-
- Name=ForestChile5
- Probability=0.0561
- Leaf node=Leaf5
- Tree node sequence:
- RootNode
- StageTwoHigh
- StageThreeHighLow
- Leaf5
-
- Name=ForestChile6
- Probability=0.0561
- Leaf node=Leaf6
- Tree node sequence:
- RootNode
- StageTwoHigh
- StageThreeHighLow
- Leaf6
-
- Name=ForestChile7
- Probability=0.0545
- Leaf node=Leaf7
- Tree node sequence:
- RootNode
- StageTwoMedium
- StageThreeMediumHigh
- Leaf7
-
- Name=ForestChile8
- Probability=0.0545
- Leaf node=Leaf8
- Tree node sequence:
- RootNode
- StageTwoMedium
- StageThreeMediumHigh
- Leaf8
-
- Name=ForestChile9
- Probability=0.0545
- Leaf node=Leaf9
- Tree node sequence:
- RootNode
- StageTwoMedium
- StageThreeMediumMedium
- Leaf9
-
-----------------------------------------------------
-Scenario tree is valid!
-Initializing ScenarioTreeManagerClientSerial with options:
- * verbose: True
- - disable_gc: False
- - profile: 0
- - traceback: False
- - output_scenario_tree_solution: False
- - solution_saver_extension: ()
- - solution_loader_extension: ()
- - solution_writer: ()
- * output_file: /home/jwatson/sp/pyomo/pyomo/pyomo/pysp/tests/unit/test_forestry_ef.lp
- - solve: False
- - output_scenario_costs: None
- - output_instance_construction_time: False
- - compile_scenario_instances: False
- - output_times: False
- * model_location: /home/jwatson/sp/pyomo/pyomo/examples/pysp/forestry/models-nb-yr
- - model_directory: None (DEPRECATED)
- * scenario_tree_location: /home/jwatson/sp/pyomo/pyomo/examples/pysp/forestry/18scenarios
- - instance_directory: None (DEPRECATED)
- * objective_sense_stage_based: -1
- - postinit_callback_location: ()
- - bounds_cfgfile: None (DEPRECATED)
- - aggregategetter_callback_location: ()
- - aggregate_cfgfile: None (DEPRECATED)
- - scenario_tree_random_seed: None
- - scenario_tree_seed: None (DEPRECATED)
- - scenario_tree_downsample_fraction: 1.0
- - scenario_bundle_specification: None
- - create_random_bundles: 0
- - profile_memory: 0
- - cvar_weight: 1.0
- - generate_weighted_cvar: False
- - risk_alpha: 0.95
- - cc_alpha: 0.0
- - cc_indicator_var: None
- - mipgap: None
- - solver: cplex
- - solver_io: None
- - solver_manager: serial
- - solver_options: ()
- - disable_warmstart: False
- - pyro_host: None
- - pyro_port: None
- - pyro_shutdown: False
- - shutdown_pyro: None (DEPRECATED)
- - output_solver_results: False
- * symbolic_solver_labels: True
- - output_solver_log: False
- - keep_solver_files: False
- - pyro_shutdown_workers: False
- - shutdown_pyro_workers: None (DEPRECATED)
- - activate_jsonio_solution_saver: None
-
-Constructing scenario tree instances
-Scenario-based instance initialization enabled
-Creating instance for scenario=ForestChile1
-Data for scenario=ForestChile1 loads from file=/home/jwatson/sp/pyomo/pyomo/examples/pysp/forestry/18scenarios/ForestChile1.dat
-Creating instance for scenario=ForestChile2
-Data for scenario=ForestChile2 loads from file=/home/jwatson/sp/pyomo/pyomo/examples/pysp/forestry/18scenarios/ForestChile2.dat
-Creating instance for scenario=ForestChile3
-Data for scenario=ForestChile3 loads from file=/home/jwatson/sp/pyomo/pyomo/examples/pysp/forestry/18scenarios/ForestChile3.dat
-Creating instance for scenario=ForestChile4
-Data for scenario=ForestChile4 loads from file=/home/jwatson/sp/pyomo/pyomo/examples/pysp/forestry/18scenarios/ForestChile4.dat
-Creating instance for scenario=ForestChile5
-Data for scenario=ForestChile5 loads from file=/home/jwatson/sp/pyomo/pyomo/examples/pysp/forestry/18scenarios/ForestChile5.dat
-Creating instance for scenario=ForestChile6
-Data for scenario=ForestChile6 loads from file=/home/jwatson/sp/pyomo/pyomo/examples/pysp/forestry/18scenarios/ForestChile6.dat
-Creating instance for scenario=ForestChile7
-Data for scenario=ForestChile7 loads from file=/home/jwatson/sp/pyomo/pyomo/examples/pysp/forestry/18scenarios/ForestChile7.dat
-Creating instance for scenario=ForestChile8
-Data for scenario=ForestChile8 loads from file=/home/jwatson/sp/pyomo/pyomo/examples/pysp/forestry/18scenarios/ForestChile8.dat
-Creating instance for scenario=ForestChile9
-Data for scenario=ForestChile9 loads from file=/home/jwatson/sp/pyomo/pyomo/examples/pysp/forestry/18scenarios/ForestChile9.dat
-Creating instance for scenario=ForestChile10
-Data for scenario=ForestChile10 loads from file=/home/jwatson/sp/pyomo/pyomo/examples/pysp/forestry/18scenarios/ForestChile10.dat
-Creating instance for scenario=ForestChile11
-Data for scenario=ForestChile11 loads from file=/home/jwatson/sp/pyomo/pyomo/examples/pysp/forestry/18scenarios/ForestChile11.dat
-Creating instance for scenario=ForestChile12
-Data for scenario=ForestChile12 loads from file=/home/jwatson/sp/pyomo/pyomo/examples/pysp/forestry/18scenarios/ForestChile12.dat
-Creating instance for scenario=ForestChile13
-Data for scenario=ForestChile13 loads from file=/home/jwatson/sp/pyomo/pyomo/examples/pysp/forestry/18scenarios/ForestChile13.dat
-Creating instance for scenario=ForestChile14
-Data for scenario=ForestChile14 loads from file=/home/jwatson/sp/pyomo/pyomo/examples/pysp/forestry/18scenarios/ForestChile14.dat
-Creating instance for scenario=ForestChile15
-Data for scenario=ForestChile15 loads from file=/home/jwatson/sp/pyomo/pyomo/examples/pysp/forestry/18scenarios/ForestChile15.dat
-Creating instance for scenario=ForestChile16
-Data for scenario=ForestChile16 loads from file=/home/jwatson/sp/pyomo/pyomo/examples/pysp/forestry/18scenarios/ForestChile16.dat
-Creating instance for scenario=ForestChile17
-Data for scenario=ForestChile17 loads from file=/home/jwatson/sp/pyomo/pyomo/examples/pysp/forestry/18scenarios/ForestChile17.dat
-Creating instance for scenario=ForestChile18
-Data for scenario=ForestChile18 loads from file=/home/jwatson/sp/pyomo/pyomo/examples/pysp/forestry/18scenarios/ForestChile18.dat
-Time to construct scenario instances=2.48 seconds
-Linking instances into scenario tree
-*** Active Objective 'Production_Profit_Objective' on scenario instance 'ForestChile1' will not be used. ***
-*** Active Objective 'Production_Profit_Objective' on scenario instance 'ForestChile10' will not be used. ***
-*** Active Objective 'Production_Profit_Objective' on scenario instance 'ForestChile11' will not be used. ***
-*** Active Objective 'Production_Profit_Objective' on scenario instance 'ForestChile12' will not be used. ***
-*** Active Objective 'Production_Profit_Objective' on scenario instance 'ForestChile13' will not be used. ***
-*** Active Objective 'Production_Profit_Objective' on scenario instance 'ForestChile14' will not be used. ***
-*** Active Objective 'Production_Profit_Objective' on scenario instance 'ForestChile15' will not be used. ***
-*** Active Objective 'Production_Profit_Objective' on scenario instance 'ForestChile16' will not be used. ***
-*** Active Objective 'Production_Profit_Objective' on scenario instance 'ForestChile17' will not be used. ***
-*** Active Objective 'Production_Profit_Objective' on scenario instance 'ForestChile18' will not be used. ***
-*** Active Objective 'Production_Profit_Objective' on scenario instance 'ForestChile2' will not be used. ***
-*** Active Objective 'Production_Profit_Objective' on scenario instance 'ForestChile3' will not be used. ***
-*** Active Objective 'Production_Profit_Objective' on scenario instance 'ForestChile4' will not be used. ***
-*** Active Objective 'Production_Profit_Objective' on scenario instance 'ForestChile5' will not be used. ***
-*** Active Objective 'Production_Profit_Objective' on scenario instance 'ForestChile6' will not be used. ***
-*** Active Objective 'Production_Profit_Objective' on scenario instance 'ForestChile7' will not be used. ***
-*** Active Objective 'Production_Profit_Objective' on scenario instance 'ForestChile8' will not be used. ***
-*** Active Objective 'Production_Profit_Objective' on scenario instance 'ForestChile9' will not be used. ***
-Time link scenario tree with instances=0.28 seconds
-ScenarioTreeManagerClientSerial is successfully initialized
-Overall initialization time=2.75 seconds
-
-Initializing extensive form algorithm for stochastic programming problems.
-Creating extensive form instance
-Creating variables for master binding instance
-Time to construct extensive form instance=0.10 seconds
-Starting to write extensive form
-Extensive form written to file=/home/jwatson/sp/pyomo/pyomo/pyomo/pysp/tests/unit/test_forestry_ef.lp
-Time to write output file=1.10 seconds
-Closing ScenarioTreeManagerClientSerial
-
-Total EF execution time=3.99 seconds
-
diff --git a/pyomo/pysp/tests/unit/baselines/forestry_linearized_cplex.baseline-a b/pyomo/pysp/tests/unit/baselines/forestry_linearized_cplex.baseline-a
deleted file mode 100644
index 4f446c375f5..00000000000
--- a/pyomo/pysp/tests/unit/baselines/forestry_linearized_cplex.baseline-a
+++ /dev/null
@@ -1,2571 +0,0 @@
-*** Active Objective 'Production_Profit_Objective' on scenario instance 'ForestChile1' will not be used. ***
-*** Active Objective 'Production_Profit_Objective' on scenario instance 'ForestChile10' will not be used. ***
-*** Active Objective 'Production_Profit_Objective' on scenario instance 'ForestChile11' will not be used. ***
-*** Active Objective 'Production_Profit_Objective' on scenario instance 'ForestChile12' will not be used. ***
-*** Active Objective 'Production_Profit_Objective' on scenario instance 'ForestChile13' will not be used. ***
-*** Active Objective 'Production_Profit_Objective' on scenario instance 'ForestChile14' will not be used. ***
-*** Active Objective 'Production_Profit_Objective' on scenario instance 'ForestChile15' will not be used. ***
-*** Active Objective 'Production_Profit_Objective' on scenario instance 'ForestChile16' will not be used. ***
-*** Active Objective 'Production_Profit_Objective' on scenario instance 'ForestChile17' will not be used. ***
-*** Active Objective 'Production_Profit_Objective' on scenario instance 'ForestChile18' will not be used. ***
-*** Active Objective 'Production_Profit_Objective' on scenario instance 'ForestChile2' will not be used. ***
-*** Active Objective 'Production_Profit_Objective' on scenario instance 'ForestChile3' will not be used. ***
-*** Active Objective 'Production_Profit_Objective' on scenario instance 'ForestChile4' will not be used. ***
-*** Active Objective 'Production_Profit_Objective' on scenario instance 'ForestChile5' will not be used. ***
-*** Active Objective 'Production_Profit_Objective' on scenario instance 'ForestChile6' will not be used. ***
-*** Active Objective 'Production_Profit_Objective' on scenario instance 'ForestChile7' will not be used. ***
-*** Active Objective 'Production_Profit_Objective' on scenario instance 'ForestChile8' will not be used. ***
-*** Active Objective 'Production_Profit_Objective' on scenario instance 'ForestChile9' will not be used. ***
-Importing module=/home/hudson/slave/workspace/Pyomo_trunk_python2.6/src/pyomo/examples/pysp/forestry/config/rhosetter.py
-Module successfully loaded
-Importing module=/home/hudson/slave/workspace/Pyomo_trunk_python2.6/src/pyomo/examples/pysp/forestry/config/boundsetter.py
-Module successfully loaded
-Initializing PH
-
-Executing user rho setter callback function
-Executing user bound setter callback function
-WW PH Extension: Loading user-specified configuration from file=/home/hudson/slave/workspace/Pyomo_trunk_python2.6/src/pyomo/examples/pysp/forestry/config/wwph.cfg
-WW PH Extension: Loading variable suffixes from file=/home/hudson/slave/workspace/Pyomo_trunk_python2.6/src/pyomo/examples/pysp/forestry/config/wwph-nb.suffixes
-WW PH Extension: Setting mipgap to 0.0210000, as specified in the configuration file
-Starting PH
-
-Initiating PH iteration=0
-Number of discrete variables fixed=0 (total=507)
-Number of continuous variables fixed=0 (total=260)
-First stage cost avg=1642205.5572 Max-Min=186491.00
-Converger=Normalized term diff value is 0.1047 - threshold reached=False
-Cumulative run-time=13.79 seconds
-
-Initiating PH iteration=1
-WW PH Extension: Setting mipgap to 0.0200000, as specified in the configuration file
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=17 (total=507)
-Number of continuous variables fixed=0 (total=260)
-First stage cost avg=1404922.1811 Max-Min=385400.94
-Converger=Normalized term diff value is 0.0572 - threshold reached=False
-Cumulative run-time=29.67 seconds
-
-Initiating PH iteration=2
-WW PH Extension: Setting mipgap to 0.0181847, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=31 (total=507)
-Number of continuous variables fixed=0 (total=260)
-First stage cost avg=1374587.3289 Max-Min=69453.50
-Converger=Normalized term diff value is 0.0328 - threshold reached=False
-Cumulative run-time=47.97 seconds
-
-Initiating PH iteration=3
-WW PH Extension: Setting mipgap to 0.0172517, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=33 (total=507)
-Number of continuous variables fixed=0 (total=260)
-First stage cost avg=1379705.1156 Max-Min=25345.68
-Converger=Normalized term diff value is 0.0208 - threshold reached=False
-Cumulative run-time=56.77 seconds
-
-Initiating PH iteration=4
-WW PH Extension: Setting mipgap to 0.0167922, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=90 (total=507)
-Number of continuous variables fixed=0 (total=260)
-First stage cost avg=1373518.9200 Max-Min=25345.68
-Converger=Normalized term diff value is 0.0177 - threshold reached=False
-Cumulative run-time=68.93 seconds
-
-Initiating PH iteration=5
-WW PH Extension: Setting mipgap to 0.0166741, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=99 (total=507)
-Number of continuous variables fixed=0 (total=260)
-First stage cost avg=1366478.4533 Max-Min=25345.68
-Converger=Normalized term diff value is 0.0127 - threshold reached=False
-Cumulative run-time=73.47 seconds
-
-Initiating PH iteration=6
-WW PH Extension: Setting mipgap to 0.0164827, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=329 (total=507)
-Number of continuous variables fixed=0 (total=260)
-First stage cost avg=1365070.3600 Max-Min= 0.00
-Converger=Normalized term diff value is 0.0064 - threshold reached=False
-Cumulative run-time=76.81 seconds
-
-Initiating PH iteration=7
-WW PH Extension: Setting mipgap to 0.0162418, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=368 (total=507)
-Number of continuous variables fixed=0 (total=260)
-First stage cost avg=1365070.3600 Max-Min= 0.00
-Converger=Normalized term diff value is 0.0082 - threshold reached=False
-Cumulative run-time=80.03 seconds
-
-Initiating PH iteration=8
-WW PH Extension: Setting mipgap to 0.0163102, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=409 (total=507)
-Number of continuous variables fixed=0 (total=260)
-First stage cost avg=1365070.3600 Max-Min= 0.00
-Converger=Normalized term diff value is 0.0091 - threshold reached=False
-Cumulative run-time=82.71 seconds
-
-Initiating PH iteration=9
-WW PH Extension: Setting mipgap to 0.0163445, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=425 (total=507)
-Number of continuous variables fixed=0 (total=260)
-First stage cost avg=1365070.3600 Max-Min= 0.00
-Converger=Normalized term diff value is 0.0064 - threshold reached=False
-Cumulative run-time=86.48 seconds
-
-Initiating PH iteration=10
-WW PH Extension: Setting mipgap to 0.0162416, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=429 (total=507)
-Number of continuous variables fixed=0 (total=260)
-First stage cost avg=1365070.3600 Max-Min= 0.00
-Converger=Normalized term diff value is 0.0064 - threshold reached=False
-Cumulative run-time=88.94 seconds
-Halting PH - reached maximal iteration count=10
-
-Number of discrete variables fixed before final plugin calls=429 (total=507)
-Number of continuous variables fixed before final plugin calls=0 (total=260)
-PH complete
-
-Convergence history:
-Converger=Normalized term diff
-Iteration Metric Value
- 0 0.1047
- 1 0.0572
- 2 0.0328
- 3 0.0208
- 4 0.0177
- 5 0.0127
- 6 0.0064
- 7 0.0082
- 8 0.0091
- 9 0.0064
- 10 0.0064
-
-
-Final number of discrete variables fixed=429 (total=507)
-Final number of continuous variables fixed=0 (total=260)
-
-Computing objective inner bound at xhat solution
-At least one sub-problem solve time was undefined - skipping timing statistics
-At least one sub-problem solve time was undefined - skipping timing statistics
- ** At least one sub-problem failed to solve! **
- Failed sub-problems:
- ForestChile1
- ForestChile2
- ForestChile3
- ForestChile4
-
-Failed to compute bound at xhat due to one or more solve failures. Restoring PH to solution at final iteration.
-Generating scenario tree solution from scenario averages
-
-Scenario tree variable values:
-
- Stage: Ano1Stage
- (Scenarios: ForestChile1 ForestChile2 ForestChile3 ForestChile4 ForestChile5 ForestChile6 ForestChile7 ForestChile8 ForestChile9 ForestChile10 ForestChile11 ForestChile12 ForestChile13 ForestChile14 ForestChile15 ForestChile16 ForestChile17 ForestChile18 )
- Variable: delta
- Index: [U11,Ano1] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [U12,Ano1] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [U16,Ano1] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [U17,Ano1] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [U19,Ano1] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- (Scenarios: ForestChile1 ForestChile2 ForestChile3 ForestChile4 ForestChile5 ForestChile6 ForestChile7 ForestChile8 ForestChile9 ForestChile10 ForestChile11 ForestChile12 ForestChile13 ForestChile14 ForestChile15 ForestChile16 ForestChile17 ForestChile18 )
- Variable: f
- Index: [C03,E1,Ano1] Values: 22753.6000 22753.6000 22753.6000 22753.6000 22753.6000 22753.6000 22753.6000 22753.6000 22753.6000 22753.6000 22753.6000 22753.6000 22753.6000 22753.6000 22753.6000 22753.6000 22753.6000 22753.6000
-
- Index: [C04,C03,Ano1] Values: 14880.0000 14880.0000 14880.0000 14880.0000 14880.0000 14880.0000 14880.0000 14880.0000 14880.0000 14880.0000 14880.0000 14880.0000 14880.0000 14880.0000 14880.0000 14880.0000 14880.0000 14880.0000
-
- Index: [C06,I3,Ano1] Values: 9510.8000 9510.8000 9510.8000 9510.8000 9510.8000 9510.8000 9510.8000 9510.8000 9510.8000 9510.8000 9510.8000 9510.8000 9510.8000 9510.8000 9510.8000 9510.8000 9510.8000 9510.8000
-
- Index: [I3,E1,Ano1] Values: 9510.8000 9510.8000 9510.8000 9510.8000 9510.8000 9510.8000 9510.8000 9510.8000 9510.8000 9510.8000 9510.8000 9510.8000 9510.8000 9510.8000 9510.8000 9510.8000 9510.8000 9510.8000
-
- (Scenarios: ForestChile1 ForestChile2 ForestChile3 ForestChile4 ForestChile5 ForestChile6 ForestChile7 ForestChile8 ForestChile9 ForestChile10 ForestChile11 ForestChile12 ForestChile13 ForestChile14 ForestChile15 ForestChile16 ForestChile17 ForestChile18 )
- Variable: gamma
- Index: [C04,C03,Ano1] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [C06,I3,Ano1] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Cost Variable: AnoProfit[Ano1]
- Tree Node: RootNode (Scenarios: ForestChile1 ForestChile2 ForestChile3 ForestChile4 ForestChile5 ForestChile6 ForestChile7 ForestChile8 ForestChile9 ForestChile10 ForestChile11 ForestChile12 ForestChile13 ForestChile14 ForestChile15 ForestChile16 ForestChile17 ForestChile18 )
- Values: 1365070.36001365070.36001365070.36001365070.36001365070.36001365070.36001365070.36001365070.36001365070.36001365070.36001365070.36001365070.36001365070.36001365070.36001365070.36001365070.36001365070.36001365070.3600 Max-Min: 0.0000 Avg: 1365070.3600
- Stage: Ano2Stage
- (Scenarios: ForestChile1 ForestChile2 ForestChile3 ForestChile4 ForestChile5 ForestChile6 )
- Variable: delta
- Index: [U10,Ano2]
- Tree Node: StageTwoHigh Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [U13,Ano2]
- Tree Node: StageTwoHigh Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [U15,Ano2]
- Tree Node: StageTwoHigh Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [U6,Ano2]
- Tree Node: StageTwoHigh Values: 1.0000 1.0000 0.0000 0.0000 1.0000 1.0000
-
- Index: [U7,Ano2]
- Tree Node: StageTwoHigh Values: 1.0000 1.0000 0.0000 0.0000 1.0000 1.0000
-
- Index: [U9,Ano2]
- Tree Node: StageTwoHigh Values: 0.0000 0.0000 1.0000 1.0000 0.0000 0.0000
-
- (Scenarios: ForestChile7 ForestChile8 ForestChile9 ForestChile10 ForestChile11 ForestChile12 )
- Index: [U15,Ano2]
- Tree Node: StageTwoMedium Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [U3,Ano2]
- Tree Node: StageTwoMedium Values: 0.0000 0.0000 0.0000 0.0000 1.0000 0.0000
-
- Index: [U5,Ano2]
- Tree Node: StageTwoMedium Values: 0.0000 0.0000 1.0000 0.0000 0.0000 0.0000
-
- Index: [U8,Ano2]
- Tree Node: StageTwoMedium Values: 1.0000 1.0000 0.0000 1.0000 0.0000 1.0000
-
- Index: [U9,Ano2]
- Tree Node: StageTwoMedium Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- (Scenarios: ForestChile13 ForestChile14 ForestChile15 ForestChile16 ForestChile17 ForestChile18 )
- Index: [U13,Ano2]
- Tree Node: StageTwoLow Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [U18,Ano2]
- Tree Node: StageTwoLow Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [U3,Ano2]
- Tree Node: StageTwoLow Values: 1.0000 1.0000 1.0000 0.0000 1.0000 1.0000
-
- Index: [U8,Ano2]
- Tree Node: StageTwoLow Values: 0.0000 0.0000 0.0000 1.0000 0.0000 0.0000
-
- (Scenarios: ForestChile1 ForestChile2 ForestChile3 ForestChile4 ForestChile5 ForestChile6 )
- Variable: f
- Index: [C02,C03,Ano2]
- Tree Node: StageTwoHigh Values: 21250.2000 21250.2000 18939.0000 18939.0000 21250.2000 21250.2000
-
- Index: [C03,E1,Ano2]
- Tree Node: StageTwoHigh Values: 34663.6000 34663.6000 32352.4000 32352.4000 34663.6000 34663.6000
-
- Index: [C04,C03,Ano2]
- Tree Node: StageTwoHigh Values: 7560.0000 7560.0000 7560.0000 7560.0000 7560.0000 7560.0000
-
- (Scenarios: ForestChile7 ForestChile8 ForestChile9 ForestChile10 ForestChile11 ForestChile12 )
- Index: [C02,C03,Ano2]
- Tree Node: StageTwoMedium Values: 9862.4312 9886.8662 9862.4312 9862.4312 9862.4312 9886.8662
-
- Index: [C02,C09,Ano2]
- Tree Node: StageTwoMedium Values: 858.9688 834.5338 858.9688 858.9688 858.9688 834.5338
-
- Index: [C03,E1,Ano2]
- Tree Node: StageTwoMedium Values: 17422.4312 17446.8662 17422.4312 17422.4312 17422.4312 17446.8662
-
- Index: [C04,C03,Ano2]
- Tree Node: StageTwoMedium Values: 7560.0000 7560.0000 7560.0000 7560.0000 7560.0000 7560.0000
-
- Index: [C09,E1,Ano2]
- Tree Node: StageTwoMedium Values: 4623.7688 4599.3338 4587.5688 4623.7688 4515.1688 4599.3338
-
- (Scenarios: ForestChile13 ForestChile14 ForestChile15 ForestChile16 ForestChile17 ForestChile18 )
- Index: [C02,C03,Ano2]
- Tree Node: StageTwoLow Values: 3.9461 3.9461 0.0000 21.8651 21.8651 21.8651
-
- Index: [C03,E1,Ano2]
- Tree Node: StageTwoLow Values: 6296.5590 6296.5590 6296.5590 6405.1590 6314.4780 6296.5590
-
- Index: [C06,I3,Ano2]
- Tree Node: StageTwoLow Values: 5774.4000 5774.4000 5774.4000 5774.4000 5774.4000 5774.4000
-
- Index: [C09,C02,Ano2]
- Tree Node: StageTwoLow Values: 3.9461 3.9461 0.0000 21.8651 21.8651 21.8651
-
- Index: [C09,C03,Ano2]
- Tree Node: StageTwoLow Values: 439.2129 439.2129 443.1590 529.8939 439.2129 421.2939
-
- Index: [C09,E1,Ano2]
- Tree Node: StageTwoLow Values: 3213.0410 3213.0410 3213.0410 3213.0410 3195.1220 3213.0410
-
- Index: [I3,E1,Ano2]
- Tree Node: StageTwoLow Values: 5774.4000 5774.4000 5774.4000 5774.4000 5774.4000 5774.4000
-
- (Scenarios: ForestChile1 ForestChile2 ForestChile3 ForestChile4 ForestChile5 ForestChile6 )
- Variable: gamma
- Index: [C02,C09,Ano2]
- Tree Node: StageTwoHigh Values: 1.0000 1.0000 0.0000 0.0000 0.0000 0.0000
-
- Index: [C09,E1,Ano2]
- Tree Node: StageTwoHigh Values: 1.0000 1.0000 0.0000 0.0000 0.0000 0.0000
-
- (Scenarios: ForestChile7 ForestChile8 ForestChile9 ForestChile10 ForestChile11 ForestChile12 )
- Index: [C02,C09,Ano2]
- Tree Node: StageTwoMedium Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [C09,E1,Ano2]
- Tree Node: StageTwoMedium Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- (Scenarios: ForestChile13 ForestChile14 ForestChile15 ForestChile16 ForestChile17 ForestChile18 )
- Index: [C09,C02,Ano2]
- Tree Node: StageTwoLow Values: 1.0000 1.0000 0.0000 1.0000 1.0000 1.0000
-
- Index: [C09,C03,Ano2]
- Tree Node: StageTwoLow Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [C09,E1,Ano2]
- Tree Node: StageTwoLow Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Cost Variable: AnoProfit[Ano2]
- Tree Node: StageTwoHigh (Scenarios: ForestChile1 ForestChile2 ForestChile3 ForestChile4 ForestChile5 ForestChile6 )
- Values: 1738803.33001738803.33001628339.22001628339.22001742509.69201742509.6920 Max-Min: 114170.4720 Avg: 1703610.3368
- Tree Node: StageTwoMedium (Scenarios: ForestChile7 ForestChile8 ForestChile9 ForestChile10 ForestChile11 ForestChile12 )
- Values: 800841.9737 800873.8614 799513.4297 800841.9737 796856.3417 800873.8614 Max-Min: 4017.5197 Avg: 799955.8889
- Tree Node: StageTwoLow (Scenarios: ForestChile13 ForestChile14 ForestChile15 ForestChile16 ForestChile17 ForestChile18 )
- Values: 372849.4556 372849.4556 374240.3480 375239.0422 372797.0425 372812.3632 Max-Min: 2441.9997 Avg: 373458.0187
- Stage: Ano3Stage
- (Scenarios: ForestChile1 ForestChile2 )
- Variable: delta
- Index: [U14,Ano3]
- Tree Node: StageThreeHighHigh Values: 1.0000 1.0000
-
- Index: [U2,Ano3]
- Tree Node: StageThreeHighHigh Values: 1.0000 1.0000
-
- Index: [U20,Ano3]
- Tree Node: StageThreeHighHigh Values: 1.0000 1.0000
-
- Index: [U23,Ano3]
- Tree Node: StageThreeHighHigh Values: 1.0000 1.0000
-
- Index: [U24,Ano3]
- Tree Node: StageThreeHighHigh Values: 1.0000 1.0000
-
- Index: [U3,Ano3]
- Tree Node: StageThreeHighHigh Values: 1.0000 1.0000
-
- Index: [U9,Ano3]
- Tree Node: StageThreeHighHigh Values: 1.0000 1.0000
-
- (Scenarios: ForestChile3 ForestChile4 )
- Index: [U1,Ano3]
- Tree Node: StageThreeHighMedium Values: 1.0000 1.0000
-
- Index: [U18,Ano3]
- Tree Node: StageThreeHighMedium Values: 1.0000 1.0000
-
- Index: [U2,Ano3]
- Tree Node: StageThreeHighMedium Values: 1.0000 1.0000
-
- Index: [U24,Ano3]
- Tree Node: StageThreeHighMedium Values: 1.0000 1.0000
-
- Index: [U7,Ano3]
- Tree Node: StageThreeHighMedium Values: 1.0000 1.0000
-
- (Scenarios: ForestChile5 ForestChile6 )
- Index: [U18,Ano3]
- Tree Node: StageThreeHighLow Values: 1.0000 1.0000
-
- Index: [U20,Ano3]
- Tree Node: StageThreeHighLow Values: 1.0000 1.0000
-
- Index: [U21,Ano3]
- Tree Node: StageThreeHighLow Values: 1.0000 1.0000
-
- Index: [U24,Ano3]
- Tree Node: StageThreeHighLow Values: 1.0000 1.0000
-
- (Scenarios: ForestChile7 ForestChile8 )
- Index: [U10,Ano3]
- Tree Node: StageThreeMediumHigh Values: 1.0000 1.0000
-
- Index: [U18,Ano3]
- Tree Node: StageThreeMediumHigh Values: 1.0000 1.0000
-
- Index: [U20,Ano3]
- Tree Node: StageThreeMediumHigh Values: 1.0000 1.0000
-
- Index: [U6,Ano3]
- Tree Node: StageThreeMediumHigh Values: 1.0000 1.0000
-
- Index: [U7,Ano3]
- Tree Node: StageThreeMediumHigh Values: 1.0000 1.0000
-
- (Scenarios: ForestChile9 ForestChile10 )
- Index: [U10,Ano3]
- Tree Node: StageThreeMediumMedium Values: 1.0000 1.0000
-
- Index: [U14,Ano3]
- Tree Node: StageThreeMediumMedium Values: 1.0000 1.0000
-
- Index: [U4,Ano3]
- Tree Node: StageThreeMediumMedium Values: 1.0000 1.0000
-
- Index: [U6,Ano3]
- Tree Node: StageThreeMediumMedium Values: 1.0000 1.0000
-
- Index: [U7,Ano3]
- Tree Node: StageThreeMediumMedium Values: 1.0000 1.0000
-
- (Scenarios: ForestChile11 ForestChile12 )
- Index: [U10,Ano3]
- Tree Node: StageThreeMediumLow Values: 1.0000 1.0000
-
- Index: [U13,Ano3]
- Tree Node: StageThreeMediumLow Values: 1.0000 1.0000
-
- Index: [U14,Ano3]
- Tree Node: StageThreeMediumLow Values: 1.0000 1.0000
-
- Index: [U7,Ano3]
- Tree Node: StageThreeMediumLow Values: 1.0000 1.0000
-
- (Scenarios: ForestChile13 ForestChile14 )
- Index: [U10,Ano3]
- Tree Node: StageThreeLowHigh Values: 1.0000 1.0000
-
- Index: [U6,Ano3]
- Tree Node: StageThreeLowHigh Values: 1.0000 1.0000
-
- Index: [U7,Ano3]
- Tree Node: StageThreeLowHigh Values: 1.0000 1.0000
-
- Index: [U9,Ano3]
- Tree Node: StageThreeLowHigh Values: 1.0000 1.0000
-
- (Scenarios: ForestChile15 ForestChile16 )
- Index: [U10,Ano3]
- Tree Node: StageThreeLowMedium Values: 1.0000 1.0000
-
- Index: [U9,Ano3]
- Tree Node: StageThreeLowMedium Values: 1.0000 1.0000
-
- (Scenarios: ForestChile17 ForestChile18 )
- Index: [U15,Ano3]
- Tree Node: StageThreeLowLow Values: 1.0000 1.0000
-
- Index: [U6,Ano3]
- Tree Node: StageThreeLowLow Values: 1.0000 1.0000
-
- Index: [U7,Ano3]
- Tree Node: StageThreeLowLow Values: 1.0000 1.0000
-
- (Scenarios: ForestChile1 ForestChile2 )
- Variable: f
- Index: [C01,C09,Ano3]
- Tree Node: StageThreeHighHigh Values: 3656.2000 3656.2000
-
- Index: [C02,C03,Ano3]
- Tree Node: StageThreeHighHigh Values: 10015.7000 10015.7000
-
- Index: [C02,C09,Ano3]
- Tree Node: StageThreeHighHigh Values: 705.7000 705.7000
-
- Index: [C03,E1,Ano3]
- Tree Node: StageThreeHighHigh Values: 10015.7000 10015.7000
-
- Index: [C05,I1,Ano3]
- Tree Node: StageThreeHighHigh Values: 22056.3000 22056.3000
-
- Index: [C08,I2,Ano3]
- Tree Node: StageThreeHighHigh Values: 4170.4000 4170.4000
-
- Index: [C09,E1,Ano3]
- Tree Node: StageThreeHighHigh Values: 8018.1000 8018.1000
-
- Index: [I1,I2,Ano3]
- Tree Node: StageThreeHighHigh Values: 22056.3000 22056.3000
-
- Index: [I2,I3,Ano3]
- Tree Node: StageThreeHighHigh Values: 26226.7000 26226.7000
-
- Index: [I3,E1,Ano3]
- Tree Node: StageThreeHighHigh Values: 26226.7000 26226.7000
-
- (Scenarios: ForestChile3 ForestChile4 )
- Index: [C01,C09,Ano3]
- Tree Node: StageThreeHighMedium Values: 7312.4000 7312.4000
-
- Index: [C02,C03,Ano3]
- Tree Node: StageThreeHighMedium Values: 6484.2000 6484.2000
-
- Index: [C03,E1,Ano3]
- Tree Node: StageThreeHighMedium Values: 7398.2500 7398.2500
-
- Index: [C05,I1,Ano3]
- Tree Node: StageThreeHighMedium Values: 8391.6000 8391.6000
-
- Index: [C06,I3,Ano3]
- Tree Node: StageThreeHighMedium Values: 5774.4000 5774.4000
-
- Index: [C09,C03,Ano3]
- Tree Node: StageThreeHighMedium Values: 914.0500 914.0500
-
- Index: [C09,E1,Ano3]
- Tree Node: StageThreeHighMedium Values: 6398.3500 6398.3500
-
- Index: [I1,I2,Ano3]
- Tree Node: StageThreeHighMedium Values: 8391.6000 8391.6000
-
- Index: [I2,I3,Ano3]
- Tree Node: StageThreeHighMedium Values: 8391.6000 8391.6000
-
- Index: [I3,E1,Ano3]
- Tree Node: StageThreeHighMedium Values: 14166.0000 14166.0000
-
- (Scenarios: ForestChile5 ForestChile6 )
- Index: [C05,I1,Ano3]
- Tree Node: StageThreeHighLow Values: 8391.6000 8391.6000
-
- Index: [C06,I3,Ano3]
- Tree Node: StageThreeHighLow Values: 5774.4000 5774.4000
-
- Index: [C08,I2,Ano3]
- Tree Node: StageThreeHighLow Values: 10287.6000 10287.6000
-
- Index: [I1,I2,Ano3]
- Tree Node: StageThreeHighLow Values: 8391.6000 8391.6000
-
- Index: [I2,I3,Ano3]
- Tree Node: StageThreeHighLow Values: 18679.2000 18679.2000
-
- Index: [I3,E1,Ano3]
- Tree Node: StageThreeHighLow Values: 24453.6000 24453.6000
-
- (Scenarios: ForestChile7 ForestChile8 )
- Index: [C02,C03,Ano3]
- Tree Node: StageThreeMediumHigh Values: 21250.2000 21250.2000
-
- Index: [C03,E1,Ano3]
- Tree Node: StageThreeMediumHigh Values: 21250.2000 21250.2000
-
- Index: [C06,I3,Ano3]
- Tree Node: StageThreeMediumHigh Values: 5774.4000 5774.4000
-
- Index: [C08,I2,Ano3]
- Tree Node: StageThreeMediumHigh Values: 4170.4000 4170.4000
-
- Index: [I2,I3,Ano3]
- Tree Node: StageThreeMediumHigh Values: 4170.4000 4170.4000
-
- Index: [I3,E1,Ano3]
- Tree Node: StageThreeMediumHigh Values: 9944.8000 9944.8000
-
- (Scenarios: ForestChile9 ForestChile10 )
- Index: [C01,C09,Ano3]
- Tree Node: StageThreeMediumMedium Values: 8602.8000 8602.8000
-
- Index: [C02,C03,Ano3]
- Tree Node: StageThreeMediumMedium Values: 20672.4000 20672.4000
-
- Index: [C02,C09,Ano3]
- Tree Node: StageThreeMediumMedium Values: 577.8000 577.8000
-
- Index: [C03,E1,Ano3]
- Tree Node: StageThreeMediumMedium Values: 20672.4000 20672.4000
-
- Index: [C05,I1,Ano3]
- Tree Node: StageThreeMediumMedium Values: 7200.9000 7200.9000
-
- Index: [C09,E1,Ano3]
- Tree Node: StageThreeMediumMedium Values: 9180.6000 9180.6000
-
- Index: [I1,I2,Ano3]
- Tree Node: StageThreeMediumMedium Values: 7200.9000 7200.9000
-
- Index: [I2,I3,Ano3]
- Tree Node: StageThreeMediumMedium Values: 7200.9000 7200.9000
-
- Index: [I3,E1,Ano3]
- Tree Node: StageThreeMediumMedium Values: 7200.9000 7200.9000
-
- (Scenarios: ForestChile11 ForestChile12 )
- Index: [C02,C03,Ano3]
- Tree Node: StageThreeMediumLow Values: 14701.8000 14701.8000
-
- Index: [C03,E1,Ano3]
- Tree Node: StageThreeMediumLow Values: 20555.2000 20555.2000
-
- Index: [C05,I1,Ano3]
- Tree Node: StageThreeMediumLow Values: 7200.9000 7200.9000
-
- Index: [I1,I2,Ano3]
- Tree Node: StageThreeMediumLow Values: 7200.9000 7200.9000
-
- Index: [I2,I3,Ano3]
- Tree Node: StageThreeMediumLow Values: 7200.9000 7200.9000
-
- Index: [I3,E1,Ano3]
- Tree Node: StageThreeMediumLow Values: 7200.9000 7200.9000
-
- (Scenarios: ForestChile13 ForestChile14 )
- Index: [C02,C03,Ano3]
- Tree Node: StageThreeLowHigh Values: 31971.6000 31971.6000
-
- Index: [C03,E1,Ano3]
- Tree Node: StageThreeLowHigh Values: 31971.6000 31971.6000
-
- (Scenarios: ForestChile15 ForestChile16 )
- Index: [C02,C03,Ano3]
- Tree Node: StageThreeLowMedium Values: 18939.0000 18938.3104
-
- Index: [C02,C09,Ano3]
- Tree Node: StageThreeLowMedium Values: 0.0000 0.6896
-
- Index: [C03,E1,Ano3]
- Tree Node: StageThreeLowMedium Values: 18939.0000 18938.3104
-
- Index: [C09,E1,Ano3]
- Tree Node: StageThreeLowMedium Values: 0.0000 0.6896
-
- (Scenarios: ForestChile17 ForestChile18 )
- Index: [C02,C03,Ano3]
- Tree Node: StageThreeLowLow Values: 12118.5500 12118.5500
-
- Index: [C02,C09,Ano3]
- Tree Node: StageThreeLowLow Values: 914.0500 914.0500
-
- Index: [C03,E1,Ano3]
- Tree Node: StageThreeLowLow Values: 17976.2000 17976.2000
-
- Index: [C04,C03,Ano3]
- Tree Node: StageThreeLowLow Values: 4943.6000 4943.6000
-
- Index: [C04,I3,Ano3]
- Tree Node: StageThreeLowLow Values: 2616.4000 2616.4000
-
- Index: [C09,C03,Ano3]
- Tree Node: StageThreeLowLow Values: 914.0500 914.0500
-
- Index: [I3,E1,Ano3]
- Tree Node: StageThreeLowLow Values: 2616.4000 2616.4000
-
- (Scenarios: ForestChile1 ForestChile2 )
- Variable: gamma
- Index: [C01,C09,Ano3]
- Tree Node: StageThreeHighHigh Values: 1.0000 1.0000
-
- Index: [C08,I2,Ano3]
- Tree Node: StageThreeHighHigh Values: 1.0000 1.0000
-
- (Scenarios: ForestChile3 ForestChile4 )
- Index: [C01,C09,Ano3]
- Tree Node: StageThreeHighMedium Values: 1.0000 1.0000
-
- Index: [C09,C03,Ano3]
- Tree Node: StageThreeHighMedium Values: 1.0000 1.0000
-
- Index: [C09,E1,Ano3]
- Tree Node: StageThreeHighMedium Values: 1.0000 1.0000
-
- (Scenarios: ForestChile5 ForestChile6 )
- Index: [C08,I2,Ano3]
- Tree Node: StageThreeHighLow Values: 1.0000 1.0000
-
- (Scenarios: ForestChile7 ForestChile8 )
- Index: [C08,I2,Ano3]
- Tree Node: StageThreeMediumHigh Values: 1.0000 1.0000
-
- Index: [C09,C02,Ano3]
- Tree Node: StageThreeMediumHigh Values: 1.0000 0.0000
-
- (Scenarios: ForestChile9 ForestChile10 )
- Index: [C01,C09,Ano3]
- Tree Node: StageThreeMediumMedium Values: 1.0000 1.0000
-
- (Scenarios: ForestChile11 ForestChile12 )
- (Scenarios: ForestChile13 ForestChile14 )
- (Scenarios: ForestChile15 ForestChile16 )
- Index: [C02,C09,Ano3]
- Tree Node: StageThreeLowMedium Values: 0.0000 1.0000
-
- (Scenarios: ForestChile17 ForestChile18 )
- Index: [C02,C09,Ano3]
- Tree Node: StageThreeLowLow Values: 1.0000 1.0000
-
- Index: [C04,I3,Ano3]
- Tree Node: StageThreeLowLow Values: 1.0000 1.0000
-
- Cost Variable: AnoProfit[Ano3]
- Tree Node: StageThreeHighHigh (Scenarios: ForestChile1 ForestChile2 )
- Values: 2135200.57292135200.5729 Max-Min: 0.0000 Avg: 2135200.5729
- Tree Node: StageThreeHighMedium (Scenarios: ForestChile3 ForestChile4 )
- Values: 1128914.80581128914.8058 Max-Min: 0.0000 Avg: 1128914.8058
- Tree Node: StageThreeHighLow (Scenarios: ForestChile5 ForestChile6 )
- Values: 797164.3188 797164.3188 Max-Min: 0.0000 Avg: 797164.3188
- Tree Node: StageThreeMediumHigh (Scenarios: ForestChile7 ForestChile8 )
- Values: 1195069.11571196200.4346 Max-Min: 1131.3189 Avg: 1195634.7751
- Tree Node: StageThreeMediumMedium (Scenarios: ForestChile9 ForestChile10 )
- Values: 1185925.79111185925.7911 Max-Min: 0.0000 Avg: 1185925.7911
- Tree Node: StageThreeMediumLow (Scenarios: ForestChile11 ForestChile12 )
- Values: 573952.6552 573952.6552 Max-Min: 0.0000 Avg: 573952.6552
- Tree Node: StageThreeLowHigh (Scenarios: ForestChile13 ForestChile14 )
- Values: 1032967.43641032967.4364 Max-Min: 0.0000 Avg: 1032967.4364
- Tree Node: StageThreeLowMedium (Scenarios: ForestChile15 ForestChile16 )
- Values: 381789.5310 380657.4021 Max-Min: 1132.1289 Avg: 381223.4666
- Tree Node: StageThreeLowLow (Scenarios: ForestChile17 ForestChile18 )
- Values: 286295.5530 286295.5530 Max-Min: 0.0000 Avg: 286295.5530
-Scenario tree costs:
-Scenario Tree Costs
-----------------------------------------------------
-Tree Nodes:
-
- Name=Leaf1
- Stage=Ano4Stage
- Parent=StageThreeHighHigh
- Conditional probability=0.5000
- Children:
- None
- Scenarios:
- ForestChile1
- Expected cost of (sub)tree rooted at node=1790538.5915
-
- Name=Leaf10
- Stage=Ano4Stage
- Parent=StageThreeMediumMedium
- Conditional probability=0.5000
- Children:
- None
- Scenarios:
- ForestChile10
- Expected cost of (sub)tree rooted at node=828103.9779
-
- Name=Leaf11
- Stage=Ano4Stage
- Parent=StageThreeMediumLow
- Conditional probability=0.5000
- Children:
- None
- Scenarios:
- ForestChile11
- Expected cost of (sub)tree rooted at node=882834.9287
-
- Name=Leaf12
- Stage=Ano4Stage
- Parent=StageThreeMediumLow
- Conditional probability=0.5000
- Children:
- None
- Scenarios:
- ForestChile12
- Expected cost of (sub)tree rooted at node=657261.3553
-
- Name=Leaf13
- Stage=Ano4Stage
- Parent=StageThreeLowHigh
- Conditional probability=0.5000
- Children:
- None
- Scenarios:
- ForestChile13
- Expected cost of (sub)tree rooted at node=461821.9009
-
- Name=Leaf14
- Stage=Ano4Stage
- Parent=StageThreeLowHigh
- Conditional probability=0.5000
- Children:
- None
- Scenarios:
- ForestChile14
- Expected cost of (sub)tree rooted at node=332143.0070
-
- Name=Leaf15
- Stage=Ano4Stage
- Parent=StageThreeLowMedium
- Conditional probability=0.5000
- Children:
- None
- Scenarios:
- ForestChile15
- Expected cost of (sub)tree rooted at node=466101.7506
-
- Name=Leaf16
- Stage=Ano4Stage
- Parent=StageThreeLowMedium
- Conditional probability=0.5000
- Children:
- None
- Scenarios:
- ForestChile16
- Expected cost of (sub)tree rooted at node=306518.8538
-
- Name=Leaf17
- Stage=Ano4Stage
- Parent=StageThreeLowLow
- Conditional probability=0.5000
- Children:
- None
- Scenarios:
- ForestChile17
- Expected cost of (sub)tree rooted at node=263516.3539
-
- Name=Leaf18
- Stage=Ano4Stage
- Parent=StageThreeLowLow
- Conditional probability=0.5000
- Children:
- None
- Scenarios:
- ForestChile18
- Expected cost of (sub)tree rooted at node=161970.3317
-
- Name=Leaf2
- Stage=Ano4Stage
- Parent=StageThreeHighHigh
- Conditional probability=0.5000
- Children:
- None
- Scenarios:
- ForestChile2
- Expected cost of (sub)tree rooted at node=1476664.5068
-
- Name=Leaf3
- Stage=Ano4Stage
- Parent=StageThreeHighMedium
- Conditional probability=0.5000
- Children:
- None
- Scenarios:
- ForestChile3
- Expected cost of (sub)tree rooted at node=1905799.8375
-
- Name=Leaf4
- Stage=Ano4Stage
- Parent=StageThreeHighMedium
- Conditional probability=0.5000
- Children:
- None
- Scenarios:
- ForestChile4
- Expected cost of (sub)tree rooted at node=1557135.2411
-
- Name=Leaf5
- Stage=Ano4Stage
- Parent=StageThreeHighLow
- Conditional probability=0.5000
- Children:
- None
- Scenarios:
- ForestChile5
- Expected cost of (sub)tree rooted at node=1835653.5402
-
- Name=Leaf6
- Stage=Ano4Stage
- Parent=StageThreeHighLow
- Conditional probability=0.5000
- Children:
- None
- Scenarios:
- ForestChile6
- Expected cost of (sub)tree rooted at node=1224279.3341
-
- Name=Leaf7
- Stage=Ano4Stage
- Parent=StageThreeMediumHigh
- Conditional probability=0.5000
- Children:
- None
- Scenarios:
- ForestChile7
- Expected cost of (sub)tree rooted at node=1811043.7832
-
- Name=Leaf8
- Stage=Ano4Stage
- Parent=StageThreeMediumHigh
- Conditional probability=0.5000
- Children:
- None
- Scenarios:
- ForestChile8
- Expected cost of (sub)tree rooted at node=1187909.1086
-
- Name=Leaf9
- Stage=Ano4Stage
- Parent=StageThreeMediumMedium
- Conditional probability=0.5000
- Children:
- None
- Scenarios:
- ForestChile9
- Expected cost of (sub)tree rooted at node=1198737.4704
-
- Name=RootNode
- Stage=Ano1Stage
- Parent=None
- Conditional probability=1.0000
- Children:
- StageTwoHigh
- StageTwoLow
- StageTwoMedium
- Scenarios:
- ForestChile1
- ForestChile10
- ForestChile11
- ForestChile12
- ForestChile13
- ForestChile14
- ForestChile15
- ForestChile16
- ForestChile17
- ForestChile18
- ForestChile2
- ForestChile3
- ForestChile4
- ForestChile5
- ForestChile6
- ForestChile7
- ForestChile8
- ForestChile9
- Expected cost of (sub)tree rooted at node=4300996.1964
-
- Name=StageThreeHighHigh
- Stage=Ano3Stage
- Parent=StageTwoHigh
- Conditional probability=0.3300
- Children:
- Leaf1
- Leaf2
- Scenarios:
- ForestChile1
- ForestChile2
- Expected cost of (sub)tree rooted at node=3768802.1221
-
- Name=StageThreeHighLow
- Stage=Ano3Stage
- Parent=StageTwoHigh
- Conditional probability=0.3400
- Children:
- Leaf5
- Leaf6
- Scenarios:
- ForestChile5
- ForestChile6
- Expected cost of (sub)tree rooted at node=2327130.7559
-
- Name=StageThreeHighMedium
- Stage=Ano3Stage
- Parent=StageTwoHigh
- Conditional probability=0.3300
- Children:
- Leaf3
- Leaf4
- Scenarios:
- ForestChile3
- ForestChile4
- Expected cost of (sub)tree rooted at node=2860382.3451
-
- Name=StageThreeLowHigh
- Stage=Ano3Stage
- Parent=StageTwoLow
- Conditional probability=0.3300
- Children:
- Leaf13
- Leaf14
- Scenarios:
- ForestChile13
- ForestChile14
- Expected cost of (sub)tree rooted at node=1429949.8904
-
- Name=StageThreeLowLow
- Stage=Ano3Stage
- Parent=StageTwoLow
- Conditional probability=0.3400
- Children:
- Leaf17
- Leaf18
- Scenarios:
- ForestChile17
- ForestChile18
- Expected cost of (sub)tree rooted at node=499038.8958
-
- Name=StageThreeLowMedium
- Stage=Ano3Stage
- Parent=StageTwoLow
- Conditional probability=0.3300
- Children:
- Leaf15
- Leaf16
- Scenarios:
- ForestChile15
- ForestChile16
- Expected cost of (sub)tree rooted at node=768099.8332
-
- Name=StageThreeMediumHigh
- Stage=Ano3Stage
- Parent=StageTwoMedium
- Conditional probability=0.3300
- Children:
- Leaf7
- Leaf8
- Scenarios:
- ForestChile7
- ForestChile8
- Expected cost of (sub)tree rooted at node=2694545.5616
-
- Name=StageThreeMediumLow
- Stage=Ano3Stage
- Parent=StageTwoMedium
- Conditional probability=0.3400
- Children:
- Leaf11
- Leaf12
- Scenarios:
- ForestChile11
- ForestChile12
- Expected cost of (sub)tree rooted at node=1344000.7972
-
- Name=StageThreeMediumMedium
- Stage=Ano3Stage
- Parent=StageTwoMedium
- Conditional probability=0.3300
- Children:
- Leaf10
- Leaf9
- Scenarios:
- ForestChile10
- ForestChile9
- Expected cost of (sub)tree rooted at node=2199346.5153
-
- Name=StageTwoHigh
- Stage=Ano2Stage
- Parent=RootNode
- Conditional probability=0.3300
- Children:
- StageThreeHighHigh
- StageThreeHighLow
- StageThreeHighMedium
- Scenarios:
- ForestChile1
- ForestChile2
- ForestChile3
- ForestChile4
- ForestChile5
- ForestChile6
- Expected cost of (sub)tree rooted at node=4717658.6612
-
- Name=StageTwoLow
- Stage=Ano2Stage
- Parent=RootNode
- Conditional probability=0.3400
- Children:
- StageThreeLowHigh
- StageThreeLowLow
- StageThreeLowMedium
- Scenarios:
- ForestChile13
- ForestChile14
- ForestChile15
- ForestChile16
- ForestChile17
- ForestChile18
- Expected cost of (sub)tree rooted at node=1267879.0889
-
- Name=StageTwoMedium
- Stage=Ano2Stage
- Parent=RootNode
- Conditional probability=0.3300
- Children:
- StageThreeMediumHigh
- StageThreeMediumLow
- StageThreeMediumMedium
- Scenarios:
- ForestChile10
- ForestChile11
- ForestChile12
- ForestChile7
- ForestChile8
- ForestChile9
- Expected cost of (sub)tree rooted at node=2872786.6301
-
-----------------------------------------------------
-Scenarios:
-
- Name=ForestChile1
- Probability=0.0545
- Leaf Node=Leaf1
- Tree node sequence:
- RootNode
- StageTwoHigh
- StageThreeHighHigh
- Leaf1
- Stage= Ano1Stage Cost=1365070.3600
- Stage= Ano2Stage Cost=1738803.3300
- Stage= Ano3Stage Cost=2135200.5729
- Stage= Ano4Stage Cost=1790538.5915
- Total scenario cost=7029612.8544
-
- Name=ForestChile10
- Probability=0.0545
- Leaf Node=Leaf10
- Tree node sequence:
- RootNode
- StageTwoMedium
- StageThreeMediumMedium
- Leaf10
- Stage= Ano1Stage Cost=1365070.3600
- Stage= Ano2Stage Cost=800841.9737
- Stage= Ano3Stage Cost=1185925.7911
- Stage= Ano4Stage Cost=828103.9779
- Total scenario cost=4179942.1028
-
- Name=ForestChile11
- Probability=0.0561
- Leaf Node=Leaf11
- Tree node sequence:
- RootNode
- StageTwoMedium
- StageThreeMediumLow
- Leaf11
- Stage= Ano1Stage Cost=1365070.3600
- Stage= Ano2Stage Cost=796856.3417
- Stage= Ano3Stage Cost=573952.6552
- Stage= Ano4Stage Cost=882834.9287
- Total scenario cost=3618714.2856
-
- Name=ForestChile12
- Probability=0.0561
- Leaf Node=Leaf12
- Tree node sequence:
- RootNode
- StageTwoMedium
- StageThreeMediumLow
- Leaf12
- Stage= Ano1Stage Cost=1365070.3600
- Stage= Ano2Stage Cost=800873.8614
- Stage= Ano3Stage Cost=573952.6552
- Stage= Ano4Stage Cost=657261.3553
- Total scenario cost=3397158.2319
-
- Name=ForestChile13
- Probability=0.0561
- Leaf Node=Leaf13
- Tree node sequence:
- RootNode
- StageTwoLow
- StageThreeLowHigh
- Leaf13
- Stage= Ano1Stage Cost=1365070.3600
- Stage= Ano2Stage Cost=372849.4556
- Stage= Ano3Stage Cost=1032967.4364
- Stage= Ano4Stage Cost=461821.9009
- Total scenario cost=3232709.1529
-
- Name=ForestChile14
- Probability=0.0561
- Leaf Node=Leaf14
- Tree node sequence:
- RootNode
- StageTwoLow
- StageThreeLowHigh
- Leaf14
- Stage= Ano1Stage Cost=1365070.3600
- Stage= Ano2Stage Cost=372849.4556
- Stage= Ano3Stage Cost=1032967.4364
- Stage= Ano4Stage Cost=332143.0070
- Total scenario cost=3103030.2589
-
- Name=ForestChile15
- Probability=0.0561
- Leaf Node=Leaf15
- Tree node sequence:
- RootNode
- StageTwoLow
- StageThreeLowMedium
- Leaf15
- Stage= Ano1Stage Cost=1365070.3600
- Stage= Ano2Stage Cost=374240.3480
- Stage= Ano3Stage Cost=381789.5310
- Stage= Ano4Stage Cost=466101.7506
- Total scenario cost=2587201.9896
-
- Name=ForestChile16
- Probability=0.0561
- Leaf Node=Leaf16
- Tree node sequence:
- RootNode
- StageTwoLow
- StageThreeLowMedium
- Leaf16
- Stage= Ano1Stage Cost=1365070.3600
- Stage= Ano2Stage Cost=375239.0422
- Stage= Ano3Stage Cost=380657.4021
- Stage= Ano4Stage Cost=306518.8538
- Total scenario cost=2427485.6581
-
- Name=ForestChile17
- Probability=0.0578
- Leaf Node=Leaf17
- Tree node sequence:
- RootNode
- StageTwoLow
- StageThreeLowLow
- Leaf17
- Stage= Ano1Stage Cost=1365070.3600
- Stage= Ano2Stage Cost=372797.0425
- Stage= Ano3Stage Cost=286295.5530
- Stage= Ano4Stage Cost=263516.3539
- Total scenario cost=2287679.3094
-
- Name=ForestChile18
- Probability=0.0578
- Leaf Node=Leaf18
- Tree node sequence:
- RootNode
- StageTwoLow
- StageThreeLowLow
- Leaf18
- Stage= Ano1Stage Cost=1365070.3600
- Stage= Ano2Stage Cost=372812.3632
- Stage= Ano3Stage Cost=286295.5530
- Stage= Ano4Stage Cost=161970.3317
- Total scenario cost=2186148.6080
-
- Name=ForestChile2
- Probability=0.0545
- Leaf Node=Leaf2
- Tree node sequence:
- RootNode
- StageTwoHigh
- StageThreeHighHigh
- Leaf2
- Stage= Ano1Stage Cost=1365070.3600
- Stage= Ano2Stage Cost=1738803.3300
- Stage= Ano3Stage Cost=2135200.5729
- Stage= Ano4Stage Cost=1476664.5068
- Total scenario cost=6715738.7697
-
- Name=ForestChile3
- Probability=0.0545
- Leaf Node=Leaf3
- Tree node sequence:
- RootNode
- StageTwoHigh
- StageThreeHighMedium
- Leaf3
- Stage= Ano1Stage Cost=1365070.3600
- Stage= Ano2Stage Cost=1628339.2200
- Stage= Ano3Stage Cost=1128914.8058
- Stage= Ano4Stage Cost=1905799.8375
- Total scenario cost=6028124.2233
-
- Name=ForestChile4
- Probability=0.0545
- Leaf Node=Leaf4
- Tree node sequence:
- RootNode
- StageTwoHigh
- StageThreeHighMedium
- Leaf4
- Stage= Ano1Stage Cost=1365070.3600
- Stage= Ano2Stage Cost=1628339.2200
- Stage= Ano3Stage Cost=1128914.8058
- Stage= Ano4Stage Cost=1557135.2411
- Total scenario cost=5679459.6269
-
- Name=ForestChile5
- Probability=0.0561
- Leaf Node=Leaf5
- Tree node sequence:
- RootNode
- StageTwoHigh
- StageThreeHighLow
- Leaf5
- Stage= Ano1Stage Cost=1365070.3600
- Stage= Ano2Stage Cost=1742509.6920
- Stage= Ano3Stage Cost=797164.3188
- Stage= Ano4Stage Cost=1835653.5402
- Total scenario cost=5740397.9110
-
- Name=ForestChile6
- Probability=0.0561
- Leaf Node=Leaf6
- Tree node sequence:
- RootNode
- StageTwoHigh
- StageThreeHighLow
- Leaf6
- Stage= Ano1Stage Cost=1365070.3600
- Stage= Ano2Stage Cost=1742509.6920
- Stage= Ano3Stage Cost=797164.3188
- Stage= Ano4Stage Cost=1224279.3341
- Total scenario cost=5129023.7049
-
- Name=ForestChile7
- Probability=0.0545
- Leaf Node=Leaf7
- Tree node sequence:
- RootNode
- StageTwoMedium
- StageThreeMediumHigh
- Leaf7
- Stage= Ano1Stage Cost=1365070.3600
- Stage= Ano2Stage Cost=800841.9737
- Stage= Ano3Stage Cost=1195069.1157
- Stage= Ano4Stage Cost=1811043.7832
- Total scenario cost=5172025.2326
-
- Name=ForestChile8
- Probability=0.0545
- Leaf Node=Leaf8
- Tree node sequence:
- RootNode
- StageTwoMedium
- StageThreeMediumHigh
- Leaf8
- Stage= Ano1Stage Cost=1365070.3600
- Stage= Ano2Stage Cost=800873.8614
- Stage= Ano3Stage Cost=1196200.4346
- Stage= Ano4Stage Cost=1187909.1086
- Total scenario cost=4550053.7645
-
- Name=ForestChile9
- Probability=0.0545
- Leaf Node=Leaf9
- Tree node sequence:
- RootNode
- StageTwoMedium
- StageThreeMediumMedium
- Leaf9
- Stage= Ano1Stage Cost=1365070.3600
- Stage= Ano2Stage Cost=799513.4297
- Stage= Ano3Stage Cost=1185925.7911
- Stage= Ano4Stage Cost=1198737.4704
- Total scenario cost=4549247.0513
-
-----------------------------------------------------
-
-***WARNING***: PH exiting with fixed or freed variables in the scenario tree queue whose statuses have not been pushed to the scenario instances. This is because these requests were placed in the queue after the most recent solve. If these statuses are pushed to the scenario instances, a new solution should be obtained in order to reflect accurate solution data within the scenario tree. This warning can be safely ignored in most cases.
-
-Total PH execution time=90.87 seconds
-
-Pushing fixed variable statuses to scenario instances
-Number of discrete variables fixed prior to ef creation=431 (total=507)
-Number of continuous variables fixed prior to ef creation=0 (total=260)
-Creating extensive form for remainder problem
-Solving extensive form
-
-***********************************************************************************************
->>>THE EXPECTED SUM OF THE STAGE COST VARIABLES=4441880.10393<<<
-***********************************************************************************************
-
-Extensive form solution:
-----------------------------------------------------
-Tree Nodes:
-
- Name=Leaf1
- Stage=Ano4Stage
- Parent=StageThreeHighHigh
- Variables:
- delta[U18,Ano4]=1.0
- delta[U21,Ano4]=1.0
- delta[U22,Ano4]=1.0
- delta[U25,Ano4]=1.0
- delta[U4,Ano4]=1.0
- delta[U5,Ano4]=1.0
- delta[U7,Ano4]=1.0
- delta[U8,Ano4]=1.0
- f[C01,C09,Ano4]=8602.8
- f[C02,C03,Ano4]=6484.2
- f[C03,E1,Ano4]=6484.2
- f[C06,I3,Ano4]=5774.4
- f[C07,C08,Ano4]=7497.3
- f[C08,I2,Ano4]=13614.5
- f[C09,E1,Ano4]=16096.2
- f[I2,I3,Ano4]=13614.5
- f[I3,E1,Ano4]=19388.9
- gamma[C07,C08,Ano4]=1.0
- Derived Variables:
-
- Name=Leaf10
- Stage=Ano4Stage
- Parent=StageThreeMediumMedium
- Variables:
- delta[U13,Ano4]=1.0
- delta[U18,Ano4]=1.0
- delta[U21,Ano4]=1.0
- delta[U24,Ano4]=1.0
- delta[U25,Ano4]=1.0
- f[C03,E1,Ano4]=5853.4
- f[C05,I1,Ano4]=8391.6
- f[C06,I3,Ano4]=5774.4
- f[C07,C08,Ano4]=3767.3
- f[C08,I2,Ano4]=9884.5
- f[I1,I2,Ano4]=8391.6
- f[I2,I3,Ano4]=18276.1
- f[I3,E1,Ano4]=24050.5
- gamma[C07,C08,Ano4]=1.0
- gamma[C08,I2,Ano4]=1.0
- Derived Variables:
-
- Name=Leaf11
- Stage=Ano4Stage
- Parent=StageThreeMediumLow
- Variables:
- delta[U1,Ano4]=1.0
- delta[U18,Ano4]=1.0
- delta[U2,Ano4]=1.0
- delta[U23,Ano4]=1.0
- delta[U24,Ano4]=1.0
- f[C01,C09,Ano4]=7312.4
- f[C05,I1,Ano4]=14855.4
- f[C06,I3,Ano4]=5774.4
- f[C09,E1,Ano4]=7312.4
- f[I1,I2,Ano4]=14855.4
- f[I2,I3,Ano4]=14855.4
- f[I3,E1,Ano4]=20629.8
- gamma[C01,C09,Ano4]=1.0
- Derived Variables:
-
- Name=Leaf12
- Stage=Ano4Stage
- Parent=StageThreeMediumLow
- Variables:
- delta[U1,Ano4]=1.0
- delta[U18,Ano4]=1.0
- delta[U21,Ano4]=1.0
- delta[U24,Ano4]=1.0
- f[C01,C09,Ano4]=3656.2
- f[C05,I1,Ano4]=8391.6
- f[C06,I3,Ano4]=5774.4
- f[C08,I2,Ano4]=6117.2
- f[C09,E1,Ano4]=3656.2
- f[I1,I2,Ano4]=8391.6
- f[I2,I3,Ano4]=14508.8
- f[I3,E1,Ano4]=20283.2
- gamma[C01,C09,Ano4]=1.0
- gamma[C08,I2,Ano4]=1.0
- Derived Variables:
-
- Name=Leaf13
- Stage=Ano4Stage
- Parent=StageThreeLowHigh
- Variables:
- delta[U15,Ano4]=1.0
- delta[U23,Ano4]=1.0
- delta[U5,Ano4]=1.0
- f[C03,E1,Ano4]=7560.0
- f[C04,C03,Ano4]=7560.0
- f[C05,I1,Ano4]=6463.8
- f[C09,E1,Ano4]=3728.6
- f[I1,I2,Ano4]=6463.8
- f[I2,I3,Ano4]=6463.8
- f[I3,E1,Ano4]=6463.8
- Derived Variables:
-
- Name=Leaf14
- Stage=Ano4Stage
- Parent=StageThreeLowHigh
- Variables:
- delta[U15,Ano4]=1.0
- delta[U23,Ano4]=1.0
- delta[U5,Ano4]=1.0
- f[C03,E1,Ano4]=7560.0
- f[C04,C03,Ano4]=7560.0
- f[C05,I1,Ano4]=6463.8
- f[C09,E1,Ano4]=3728.6
- f[I1,I2,Ano4]=6463.8
- f[I2,I3,Ano4]=6463.8
- f[I3,E1,Ano4]=6463.8
- Derived Variables:
-
- Name=Leaf15
- Stage=Ano4Stage
- Parent=StageThreeLowMedium
- Variables:
- delta[U15,Ano4]=1.0
- delta[U5,Ano4]=1.0
- delta[U6,Ano4]=1.0
- f[C02,C03,Ano4]=6548.4
- f[C03,E1,Ano4]=14108.4
- f[C04,C03,Ano4]=7560.0
- f[C09,E1,Ano4]=3728.6
- Derived Variables:
-
- Name=Leaf16
- Stage=Ano4Stage
- Parent=StageThreeLowMedium
- Variables:
- delta[U5,Ano4]=1.0
- delta[U6,Ano4]=1.0
- delta[U7,Ano4]=1.0
- f[C02,C03,Ano4]=13032.6
- f[C03,E1,Ano4]=13032.6
- f[C09,E1,Ano4]=3728.6
- Derived Variables:
-
- Name=Leaf17
- Stage=Ano4Stage
- Parent=StageThreeLowLow
- Variables:
- delta[U10,Ano4]=1.0
- delta[U3,Ano4]=1.0
- delta[U5,Ano4]=1.0
- f[C02,C03,Ano4]=8217.6
- f[C03,E1,Ano4]=8217.6
- f[C09,E1,Ano4]=7384.8
- Derived Variables:
-
- Name=Leaf18
- Stage=Ano4Stage
- Parent=StageThreeLowLow
- Variables:
- delta[U14,Ano4]=1.0
- delta[U3,Ano4]=1.0
- delta[U5,Ano4]=1.0
- f[C05,I1,Ano4]=7200.9
- f[C09,E1,Ano4]=7384.8
- f[I1,I2,Ano4]=7200.9
- f[I2,I3,Ano4]=7200.9
- f[I3,E1,Ano4]=7200.9
- Derived Variables:
-
- Name=Leaf2
- Stage=Ano4Stage
- Parent=StageThreeHighHigh
- Variables:
- delta[U18,Ano4]=1.0
- delta[U21,Ano4]=1.0
- delta[U22,Ano4]=1.0
- delta[U25,Ano4]=1.0
- delta[U4,Ano4]=1.0
- delta[U5,Ano4]=1.0
- delta[U7,Ano4]=1.0
- delta[U8,Ano4]=1.0
- f[C01,C09,Ano4]=8602.8
- f[C02,C03,Ano4]=6484.2
- f[C03,E1,Ano4]=6484.2
- f[C06,I3,Ano4]=5774.4
- f[C07,C08,Ano4]=7497.3
- f[C08,I2,Ano4]=13614.5
- f[C09,E1,Ano4]=16096.2
- f[I2,I3,Ano4]=13614.5
- f[I3,E1,Ano4]=19388.9
- gamma[C07,C08,Ano4]=1.0
- Derived Variables:
-
- Name=Leaf3
- Stage=Ano4Stage
- Parent=StageThreeHighMedium
- Variables:
- delta[U14,Ano4]=1.0
- delta[U20,Ano4]=1.0
- delta[U21,Ano4]=1.0
- delta[U23,Ano4]=1.0
- delta[U25,Ano4]=1.0
- delta[U3,Ano4]=1.0
- delta[U4,Ano4]=1.0
- delta[U5,Ano4]=1.0
- delta[U8,Ano4]=1.0
- f[C01,C09,Ano4]=8602.8
- f[C05,I1,Ano4]=13664.7
- f[C07,C08,Ano4]=3767.3
- f[C08,I2,Ano4]=14054.9
- f[C09,E1,Ano4]=19752.4
- f[I1,I2,Ano4]=13664.7
- f[I2,I3,Ano4]=27719.6
- f[I3,E1,Ano4]=27719.6
- gamma[C07,C08,Ano4]=1.0
- gamma[C08,I2,Ano4]=1.0
- Derived Variables:
-
- Name=Leaf4
- Stage=Ano4Stage
- Parent=StageThreeHighMedium
- Variables:
- delta[U14,Ano4]=1.0
- delta[U20,Ano4]=1.0
- delta[U21,Ano4]=1.0
- delta[U23,Ano4]=1.0
- delta[U25,Ano4]=1.0
- delta[U3,Ano4]=1.0
- delta[U4,Ano4]=1.0
- delta[U5,Ano4]=1.0
- delta[U8,Ano4]=1.0
- f[C01,C09,Ano4]=8602.8
- f[C05,I1,Ano4]=13664.7
- f[C07,C08,Ano4]=3767.3
- f[C08,I2,Ano4]=14054.9
- f[C09,E1,Ano4]=19752.4
- f[I1,I2,Ano4]=13664.7
- f[I2,I3,Ano4]=27719.6
- f[I3,E1,Ano4]=27719.6
- gamma[C07,C08,Ano4]=1.0
- gamma[C08,I2,Ano4]=1.0
- Derived Variables:
-
- Name=Leaf5
- Stage=Ano4Stage
- Parent=StageThreeHighLow
- Variables:
- delta[U1,Ano4]=1.0
- delta[U2,Ano4]=1.0
- delta[U22,Ano4]=1.0
- delta[U23,Ano4]=1.0
- delta[U25,Ano4]=1.0
- delta[U3,Ano4]=1.0
- delta[U4,Ano4]=1.0
- delta[U5,Ano4]=1.0
- delta[U7,Ano4]=1.0
- delta[U8,Ano4]=1.0
- f[C01,C09,Ano4]=15915.2
- f[C02,C03,Ano4]=6484.2
- f[C03,E1,Ano4]=6484.2
- f[C05,I1,Ano4]=6463.8
- f[C07,C08,Ano4]=7497.3
- f[C08,I2,Ano4]=7497.3
- f[C09,E1,Ano4]=27064.8
- f[I1,I2,Ano4]=6463.8
- f[I2,I3,Ano4]=13961.1
- f[I3,E1,Ano4]=13961.1
- gamma[C01,C09,Ano4]=1.0
- gamma[C07,C08,Ano4]=1.0
- Derived Variables:
-
- Name=Leaf6
- Stage=Ano4Stage
- Parent=StageThreeHighLow
- Variables:
- delta[U14,Ano4]=1.0
- delta[U23,Ano4]=1.0
- delta[U3,Ano4]=1.0
- delta[U4,Ano4]=1.0
- delta[U5,Ano4]=1.0
- delta[U7,Ano4]=1.0
- delta[U8,Ano4]=1.0
- f[C01,C09,Ano4]=8602.8
- f[C02,C03,Ano4]=6484.2
- f[C03,E1,Ano4]=6484.2
- f[C05,I1,Ano4]=13664.7
- f[C09,E1,Ano4]=19752.4
- f[I1,I2,Ano4]=13664.7
- f[I2,I3,Ano4]=13664.7
- f[I3,E1,Ano4]=13664.7
- gamma[C01,C09,Ano4]=1.0
- Derived Variables:
-
- Name=Leaf7
- Stage=Ano4Stage
- Parent=StageThreeMediumHigh
- Variables:
- delta[U1,Ano4]=1.0
- delta[U13,Ano4]=1.0
- delta[U14,Ano4]=1.0
- delta[U2,Ano4]=1.0
- delta[U21,Ano4]=1.0
- delta[U23,Ano4]=1.0
- delta[U24,Ano4]=1.0
- delta[U4,Ano4]=1.0
- f[C01,C09,Ano4]=15915.2
- f[C03,E1,Ano4]=5853.4
- f[C05,I1,Ano4]=22056.3
- f[C08,I2,Ano4]=6117.2
- f[C09,E1,Ano4]=15915.2
- f[I1,I2,Ano4]=22056.3
- f[I2,I3,Ano4]=28173.5
- f[I3,E1,Ano4]=28173.5
- gamma[C01,C09,Ano4]=1.0
- Derived Variables:
-
- Name=Leaf8
- Stage=Ano4Stage
- Parent=StageThreeMediumHigh
- Variables:
- delta[U1,Ano4]=1.0
- delta[U13,Ano4]=1.0
- delta[U2,Ano4]=1.0
- delta[U21,Ano4]=1.0
- delta[U22,Ano4]=1.0
- delta[U23,Ano4]=1.0
- delta[U25,Ano4]=1.0
- delta[U4,Ano4]=1.0
- f[C01,C09,Ano4]=15915.2
- f[C03,E1,Ano4]=5853.4
- f[C05,I1,Ano4]=6463.8
- f[C07,C08,Ano4]=7497.3
- f[C08,I2,Ano4]=13614.5
- f[C09,E1,Ano4]=15915.2
- f[I1,I2,Ano4]=6463.8
- f[I2,I3,Ano4]=20078.3
- f[I3,E1,Ano4]=20078.3
- gamma[C01,C09,Ano4]=1.0
- gamma[C07,C08,Ano4]=1.0
- Derived Variables:
-
- Name=Leaf9
- Stage=Ano4Stage
- Parent=StageThreeMediumMedium
- Variables:
- delta[U13,Ano4]=1.0
- delta[U18,Ano4]=1.0
- delta[U20,Ano4]=1.0
- delta[U21,Ano4]=1.0
- delta[U22,Ano4]=1.0
- delta[U23,Ano4]=1.0
- delta[U25,Ano4]=1.0
- f[C03,E1,Ano4]=5853.4
- f[C05,I1,Ano4]=6463.8
- f[C06,I3,Ano4]=5774.4
- f[C07,C08,Ano4]=7497.3
- f[C08,I2,Ano4]=17784.9
- f[I1,I2,Ano4]=6463.8
- f[I2,I3,Ano4]=24248.7
- f[I3,E1,Ano4]=30023.1
- gamma[C07,C08,Ano4]=1.0
- gamma[C08,I2,Ano4]=1.0
- Derived Variables:
-
- Name=RootNode
- Stage=Ano1Stage
- Parent=None
- Variables:
- delta[U11,Ano1]=1.0
- delta[U12,Ano1]=1.0
- delta[U16,Ano1]=1.0
- delta[U17,Ano1]=1.0
- delta[U19,Ano1]=1.0
- f[C03,E1,Ano1]=22753.6
- f[C04,C03,Ano1]=14880.0
- f[C06,I3,Ano1]=9510.8
- f[I3,E1,Ano1]=9510.8
- gamma[C04,C03,Ano1]=1.0
- gamma[C06,I3,Ano1]=1.0
- Derived Variables:
-
- Name=StageThreeHighHigh
- Stage=Ano3Stage
- Parent=StageTwoHigh
- Variables:
- delta[U1,Ano3]=1.0
- delta[U14,Ano3]=1.0
- delta[U2,Ano3]=1.0
- delta[U20,Ano3]=1.0
- delta[U23,Ano3]=1.0
- delta[U24,Ano3]=1.0
- delta[U3,Ano3]=1.0
- f[C01,C09,Ano3]=7312.4
- f[C05,I1,Ano3]=22056.3
- f[C08,I2,Ano3]=4170.4
- f[C09,E1,Ano3]=10968.6
- f[I1,I2,Ano3]=22056.3
- f[I2,I3,Ano3]=26226.7
- f[I3,E1,Ano3]=26226.7
- gamma[C01,C09,Ano3]=1.0
- gamma[C08,I2,Ano3]=1.0
- Derived Variables:
-
- Name=StageThreeHighLow
- Stage=Ano3Stage
- Parent=StageTwoHigh
- Variables:
- delta[U18,Ano3]=1.0
- delta[U20,Ano3]=1.0
- delta[U21,Ano3]=1.0
- delta[U24,Ano3]=1.0
- f[C05,I1,Ano3]=8391.6
- f[C06,I3,Ano3]=5774.4
- f[C08,I2,Ano3]=10287.6
- f[I1,I2,Ano3]=8391.6
- f[I2,I3,Ano3]=18679.2
- f[I3,E1,Ano3]=24453.6
- gamma[C08,I2,Ano3]=1.0
- Derived Variables:
-
- Name=StageThreeHighMedium
- Stage=Ano3Stage
- Parent=StageTwoHigh
- Variables:
- delta[U1,Ano3]=1.0
- delta[U18,Ano3]=1.0
- delta[U2,Ano3]=1.0
- delta[U24,Ano3]=1.0
- delta[U7,Ano3]=1.0
- f[C01,C09,Ano3]=7312.4
- f[C02,C03,Ano3]=6484.2
- f[C03,E1,Ano3]=6484.2
- f[C05,I1,Ano3]=8391.6
- f[C06,I3,Ano3]=5774.4
- f[C09,E1,Ano3]=7312.4
- f[I1,I2,Ano3]=8391.6
- f[I2,I3,Ano3]=8391.6
- f[I3,E1,Ano3]=14166.0
- gamma[C01,C09,Ano3]=1.0
- Derived Variables:
-
- Name=StageThreeLowHigh
- Stage=Ano3Stage
- Parent=StageTwoLow
- Variables:
- delta[U10,Ano3]=1.0
- delta[U6,Ano3]=1.0
- delta[U7,Ano3]=1.0
- delta[U9,Ano3]=1.0
- f[C02,C03,Ano3]=31971.6
- f[C03,E1,Ano3]=31971.6
- Derived Variables:
-
- Name=StageThreeLowLow
- Stage=Ano3Stage
- Parent=StageTwoLow
- Variables:
- delta[U15,Ano3]=1.0
- delta[U6,Ano3]=1.0
- delta[U7,Ano3]=1.0
- f[C02,C03,Ano3]=13032.6
- f[C03,E1,Ano3]=20592.6
- f[C04,C03,Ano3]=7560.0
- Derived Variables:
-
- Name=StageThreeLowMedium
- Stage=Ano3Stage
- Parent=StageTwoLow
- Variables:
- delta[U10,Ano3]=1.0
- delta[U9,Ano3]=1.0
- f[C02,C03,Ano3]=18939.0
- f[C03,E1,Ano3]=18939.0
- Derived Variables:
-
- Name=StageThreeMediumHigh
- Stage=Ano3Stage
- Parent=StageTwoMedium
- Variables:
- delta[U10,Ano3]=1.0
- delta[U18,Ano3]=1.0
- delta[U20,Ano3]=1.0
- delta[U6,Ano3]=1.0
- delta[U7,Ano3]=1.0
- f[C02,C03,Ano3]=21250.2
- f[C03,E1,Ano3]=21250.2
- f[C06,I3,Ano3]=5774.4
- f[C08,I2,Ano3]=4170.4
- f[I2,I3,Ano3]=4170.4
- f[I3,E1,Ano3]=9944.8
- gamma[C08,I2,Ano3]=1.0
- Derived Variables:
-
- Name=StageThreeMediumLow
- Stage=Ano3Stage
- Parent=StageTwoMedium
- Variables:
- delta[U10,Ano3]=1.0
- delta[U13,Ano3]=1.0
- delta[U14,Ano3]=1.0
- delta[U7,Ano3]=1.0
- f[C02,C03,Ano3]=14701.8
- f[C03,E1,Ano3]=20555.2
- f[C05,I1,Ano3]=7200.9
- f[I1,I2,Ano3]=7200.9
- f[I2,I3,Ano3]=7200.9
- f[I3,E1,Ano3]=7200.9
- Derived Variables:
-
- Name=StageThreeMediumMedium
- Stage=Ano3Stage
- Parent=StageTwoMedium
- Variables:
- delta[U10,Ano3]=1.0
- delta[U14,Ano3]=1.0
- delta[U4,Ano3]=1.0
- delta[U6,Ano3]=1.0
- delta[U7,Ano3]=1.0
- f[C01,C09,Ano3]=8602.8
- f[C02,C03,Ano3]=21250.2
- f[C03,E1,Ano3]=21250.2
- f[C05,I1,Ano3]=7200.9
- f[C09,E1,Ano3]=8602.8
- f[I1,I2,Ano3]=7200.9
- f[I2,I3,Ano3]=7200.9
- f[I3,E1,Ano3]=7200.9
- gamma[C01,C09,Ano3]=1.0
- Derived Variables:
-
- Name=StageTwoHigh
- Stage=Ano2Stage
- Parent=RootNode
- Variables:
- delta[U10,Ano2]=1.0
- delta[U13,Ano2]=1.0
- delta[U15,Ano2]=1.0
- delta[U6,Ano2]=1.0
- delta[U9,Ano2]=1.0
- f[C02,C03,Ano2]=25487.4
- f[C03,E1,Ano2]=38900.8
- f[C04,C03,Ano2]=7560.0
- gamma[C02,C09,Ano2]=1.0
- gamma[C09,E1,Ano2]=1.0
- Derived Variables:
- z[E1,Ano2]=38900.8
-
- Name=StageTwoLow
- Stage=Ano2Stage
- Parent=RootNode
- Variables:
- delta[U13,Ano2]=1.0
- delta[U18,Ano2]=1.0
- delta[U8,Ano2]=1.0
- f[C03,E1,Ano2]=5853.4
- f[C06,I3,Ano2]=5774.4
- f[C09,E1,Ano2]=3764.8
- f[I3,E1,Ano2]=5774.4
- gamma[C09,C02,Ano2]=1.0
- gamma[C09,E1,Ano2]=1.0
- Derived Variables:
- z[E1,Ano2]=15392.6
-
- Name=StageTwoMedium
- Stage=Ano2Stage
- Parent=RootNode
- Variables:
- delta[U15,Ano2]=1.0
- delta[U3,Ano2]=1.0
- delta[U5,Ano2]=1.0
- delta[U8,Ano2]=1.0
- delta[U9,Ano2]=1.0
- f[C02,C03,Ano2]=10721.4
- f[C03,E1,Ano2]=18281.4
- f[C04,C03,Ano2]=7560.0
- f[C09,E1,Ano2]=11149.6
- gamma[C02,C09,Ano2]=1.0
- gamma[C09,E1,Ano2]=1.0
- Derived Variables:
- z[E1,Ano2]=29431.0
-
-
-Extensive form costs:
-Scenario Tree Costs
-----------------------------------------------------
-Tree Nodes:
-
- Name=Leaf1
- Stage=Ano4Stage
- Parent=StageThreeHighHigh
- Conditional probability=0.5000
- Children:
- None
- Scenarios:
- ForestChile1
- Expected cost of (sub)tree rooted at node=1922879.3561
-
- Name=Leaf10
- Stage=Ano4Stage
- Parent=StageThreeMediumMedium
- Conditional probability=0.5000
- Children:
- None
- Scenarios:
- ForestChile10
- Expected cost of (sub)tree rooted at node=821247.0258
-
- Name=Leaf11
- Stage=Ano4Stage
- Parent=StageThreeMediumLow
- Conditional probability=0.5000
- Children:
- None
- Scenarios:
- ForestChile11
- Expected cost of (sub)tree rooted at node=874306.5253
-
- Name=Leaf12
- Stage=Ano4Stage
- Parent=StageThreeMediumLow
- Conditional probability=0.5000
- Children:
- None
- Scenarios:
- ForestChile12
- Expected cost of (sub)tree rooted at node=647504.3683
-
- Name=Leaf13
- Stage=Ano4Stage
- Parent=StageThreeLowHigh
- Conditional probability=0.5000
- Children:
- None
- Scenarios:
- ForestChile13
- Expected cost of (sub)tree rooted at node=460877.7293
-
- Name=Leaf14
- Stage=Ano4Stage
- Parent=StageThreeLowHigh
- Conditional probability=0.5000
- Children:
- None
- Scenarios:
- ForestChile14
- Expected cost of (sub)tree rooted at node=331462.7333
-
- Name=Leaf15
- Stage=Ano4Stage
- Parent=StageThreeLowMedium
- Conditional probability=0.5000
- Children:
- None
- Scenarios:
- ForestChile15
- Expected cost of (sub)tree rooted at node=465157.5790
-
- Name=Leaf16
- Stage=Ano4Stage
- Parent=StageThreeLowMedium
- Conditional probability=0.5000
- Children:
- None
- Scenarios:
- ForestChile16
- Expected cost of (sub)tree rooted at node=306518.8538
-
- Name=Leaf17
- Stage=Ano4Stage
- Parent=StageThreeLowLow
- Conditional probability=0.5000
- Children:
- None
- Scenarios:
- ForestChile17
- Expected cost of (sub)tree rooted at node=344738.6179
-
- Name=Leaf18
- Stage=Ano4Stage
- Parent=StageThreeLowLow
- Conditional probability=0.5000
- Children:
- None
- Scenarios:
- ForestChile18
- Expected cost of (sub)tree rooted at node=160721.2048
-
- Name=Leaf2
- Stage=Ano4Stage
- Parent=StageThreeHighHigh
- Conditional probability=0.5000
- Children:
- None
- Scenarios:
- ForestChile2
- Expected cost of (sub)tree rooted at node=1586327.5394
-
- Name=Leaf3
- Stage=Ano4Stage
- Parent=StageThreeHighMedium
- Conditional probability=0.5000
- Children:
- None
- Scenarios:
- ForestChile3
- Expected cost of (sub)tree rooted at node=1957155.1974
-
- Name=Leaf4
- Stage=Ano4Stage
- Parent=StageThreeHighMedium
- Conditional probability=0.5000
- Children:
- None
- Scenarios:
- ForestChile4
- Expected cost of (sub)tree rooted at node=1541870.1414
-
- Name=Leaf5
- Stage=Ano4Stage
- Parent=StageThreeHighLow
- Conditional probability=0.5000
- Children:
- None
- Scenarios:
- ForestChile5
- Expected cost of (sub)tree rooted at node=1814022.6558
-
- Name=Leaf6
- Stage=Ano4Stage
- Parent=StageThreeHighLow
- Conditional probability=0.5000
- Children:
- None
- Scenarios:
- ForestChile6
- Expected cost of (sub)tree rooted at node=1243192.4262
-
- Name=Leaf7
- Stage=Ano4Stage
- Parent=StageThreeMediumHigh
- Conditional probability=0.5000
- Children:
- None
- Scenarios:
- ForestChile7
- Expected cost of (sub)tree rooted at node=1810784.7549
-
- Name=Leaf8
- Stage=Ano4Stage
- Parent=StageThreeMediumHigh
- Conditional probability=0.5000
- Children:
- None
- Scenarios:
- ForestChile8
- Expected cost of (sub)tree rooted at node=1175545.5164
-
- Name=Leaf9
- Stage=Ano4Stage
- Parent=StageThreeMediumMedium
- Conditional probability=0.5000
- Children:
- None
- Scenarios:
- ForestChile9
- Expected cost of (sub)tree rooted at node=1186021.0204
-
- Name=RootNode
- Stage=Ano1Stage
- Parent=None
- Conditional probability=1.0000
- Children:
- StageTwoHigh
- StageTwoLow
- StageTwoMedium
- Scenarios:
- ForestChile1
- ForestChile10
- ForestChile11
- ForestChile12
- ForestChile13
- ForestChile14
- ForestChile15
- ForestChile16
- ForestChile17
- ForestChile18
- ForestChile2
- ForestChile3
- ForestChile4
- ForestChile5
- ForestChile6
- ForestChile7
- ForestChile8
- ForestChile9
- Expected cost of (sub)tree rooted at node=4441880.1039
-
- Name=StageThreeHighHigh
- Stage=Ano3Stage
- Parent=StageTwoHigh
- Conditional probability=0.3300
- Children:
- Leaf1
- Leaf2
- Scenarios:
- ForestChile1
- ForestChile2
- Expected cost of (sub)tree rooted at node=3544917.6725
-
- Name=StageThreeHighLow
- Stage=Ano3Stage
- Parent=StageTwoHigh
- Conditional probability=0.3400
- Children:
- Leaf5
- Leaf6
- Scenarios:
- ForestChile5
- ForestChile6
- Expected cost of (sub)tree rooted at node=2325771.8598
-
- Name=StageThreeHighMedium
- Stage=Ano3Stage
- Parent=StageTwoHigh
- Conditional probability=0.3300
- Children:
- Leaf3
- Leaf4
- Scenarios:
- ForestChile3
- ForestChile4
- Expected cost of (sub)tree rooted at node=2882498.0310
-
- Name=StageThreeLowHigh
- Stage=Ano3Stage
- Parent=StageTwoLow
- Conditional probability=0.3300
- Children:
- Leaf13
- Leaf14
- Scenarios:
- ForestChile13
- ForestChile14
- Expected cost of (sub)tree rooted at node=1429137.6677
-
- Name=StageThreeLowLow
- Stage=Ano3Stage
- Parent=StageTwoLow
- Conditional probability=0.3400
- Children:
- Leaf17
- Leaf18
- Scenarios:
- ForestChile17
- ForestChile18
- Expected cost of (sub)tree rooted at node=544512.7608
-
- Name=StageThreeLowMedium
- Stage=Ano3Stage
- Parent=StageTwoLow
- Conditional probability=0.3300
- Children:
- Leaf15
- Leaf16
- Scenarios:
- ForestChile15
- ForestChile16
- Expected cost of (sub)tree rooted at node=767627.7474
-
- Name=StageThreeMediumHigh
- Stage=Ano3Stage
- Parent=StageTwoMedium
- Conditional probability=0.3300
- Children:
- Leaf7
- Leaf8
- Scenarios:
- ForestChile7
- ForestChile8
- Expected cost of (sub)tree rooted at node=2689365.5703
-
- Name=StageThreeMediumLow
- Stage=Ano3Stage
- Parent=StageTwoMedium
- Conditional probability=0.3400
- Children:
- Leaf11
- Leaf12
- Scenarios:
- ForestChile11
- ForestChile12
- Expected cost of (sub)tree rooted at node=1334858.1021
-
- Name=StageThreeMediumMedium
- Stage=Ano3Stage
- Parent=StageTwoMedium
- Conditional probability=0.3300
- Children:
- Leaf10
- Leaf9
- Scenarios:
- ForestChile10
- ForestChile9
- Expected cost of (sub)tree rooted at node=2190238.4403
-
- Name=StageTwoHigh
- Stage=Ano2Stage
- Parent=RootNode
- Conditional probability=0.3300
- Children:
- StageThreeHighHigh
- StageThreeHighLow
- StageThreeHighMedium
- Scenarios:
- ForestChile1
- ForestChile2
- ForestChile3
- ForestChile4
- ForestChile5
- ForestChile6
- Expected cost of (sub)tree rooted at node=4859925.4765
-
- Name=StageTwoLow
- Stage=Ano2Stage
- Parent=RootNode
- Conditional probability=0.3400
- Children:
- StageThreeLowHigh
- StageThreeLowLow
- StageThreeLowMedium
- Scenarios:
- ForestChile13
- ForestChile14
- ForestChile15
- ForestChile16
- ForestChile17
- ForestChile18
- Expected cost of (sub)tree rooted at node=1287614.8016
-
- Name=StageTwoMedium
- Stage=Ano2Stage
- Parent=RootNode
- Conditional probability=0.3300
- Children:
- StageThreeMediumHigh
- StageThreeMediumLow
- StageThreeMediumMedium
- Scenarios:
- ForestChile10
- ForestChile11
- ForestChile12
- ForestChile7
- ForestChile8
- ForestChile9
- Expected cost of (sub)tree rooted at node=3137106.9822
-
-----------------------------------------------------
-Scenarios:
-
- Name=ForestChile1
- Probability=0.0545
- Leaf Node=Leaf1
- Tree node sequence:
- RootNode
- StageTwoHigh
- StageThreeHighHigh
- Leaf1
- Stage= Ano1Stage Cost=1365070.3600
- Stage= Ano2Stage Cost=1948115.8620
- Stage= Ano3Stage Cost=1790314.2248
- Stage= Ano4Stage Cost=1922879.3561
- Total scenario cost=7026379.8029
-
- Name=ForestChile10
- Probability=0.0545
- Leaf Node=Leaf10
- Tree node sequence:
- RootNode
- StageTwoMedium
- StageThreeMediumMedium
- Leaf10
- Stage= Ano1Stage Cost=1365070.3600
- Stage= Ano2Stage Cost=1072985.9040
- Stage= Ano3Stage Cost=1186604.4172
- Stage= Ano4Stage Cost=821247.0258
- Total scenario cost=4445907.7070
-
- Name=ForestChile11
- Probability=0.0561
- Leaf Node=Leaf11
- Tree node sequence:
- RootNode
- StageTwoMedium
- StageThreeMediumLow
- Leaf11
- Stage= Ano1Stage Cost=1365070.3600
- Stage= Ano2Stage Cost=1072985.9040
- Stage= Ano3Stage Cost=573952.6552
- Stage= Ano4Stage Cost=874306.5253
- Total scenario cost=3886315.4446
-
- Name=ForestChile12
- Probability=0.0561
- Leaf Node=Leaf12
- Tree node sequence:
- RootNode
- StageTwoMedium
- StageThreeMediumLow
- Leaf12
- Stage= Ano1Stage Cost=1365070.3600
- Stage= Ano2Stage Cost=1072985.9040
- Stage= Ano3Stage Cost=573952.6552
- Stage= Ano4Stage Cost=647504.3683
- Total scenario cost=3659513.2875
-
- Name=ForestChile13
- Probability=0.0561
- Leaf Node=Leaf13
- Tree node sequence:
- RootNode
- StageTwoLow
- StageThreeLowHigh
- Leaf13
- Stage= Ano1Stage Cost=1365070.3600
- Stage= Ano2Stage Cost=377547.8760
- Stage= Ano3Stage Cost=1032967.4364
- Stage= Ano4Stage Cost=460877.7293
- Total scenario cost=3236463.4017
-
- Name=ForestChile14
- Probability=0.0561
- Leaf Node=Leaf14
- Tree node sequence:
- RootNode
- StageTwoLow
- StageThreeLowHigh
- Leaf14
- Stage= Ano1Stage Cost=1365070.3600
- Stage= Ano2Stage Cost=377547.8760
- Stage= Ano3Stage Cost=1032967.4364
- Stage= Ano4Stage Cost=331462.7333
- Total scenario cost=3107048.4057
-
- Name=ForestChile15
- Probability=0.0561
- Leaf Node=Leaf15
- Tree node sequence:
- RootNode
- StageTwoLow
- StageThreeLowMedium
- Leaf15
- Stage= Ano1Stage Cost=1365070.3600
- Stage= Ano2Stage Cost=377547.8760
- Stage= Ano3Stage Cost=381789.5310
- Stage= Ano4Stage Cost=465157.5790
- Total scenario cost=2589565.3460
-
- Name=ForestChile16
- Probability=0.0561
- Leaf Node=Leaf16
- Tree node sequence:
- RootNode
- StageTwoLow
- StageThreeLowMedium
- Leaf16
- Stage= Ano1Stage Cost=1365070.3600
- Stage= Ano2Stage Cost=377547.8760
- Stage= Ano3Stage Cost=381789.5310
- Stage= Ano4Stage Cost=306518.8538
- Total scenario cost=2430926.6208
-
- Name=ForestChile17
- Probability=0.0578
- Leaf Node=Leaf17
- Tree node sequence:
- RootNode
- StageTwoLow
- StageThreeLowLow
- Leaf17
- Stage= Ano1Stage Cost=1365070.3600
- Stage= Ano2Stage Cost=377547.8760
- Stage= Ano3Stage Cost=291782.8494
- Stage= Ano4Stage Cost=344738.6179
- Total scenario cost=2379139.7033
-
- Name=ForestChile18
- Probability=0.0578
- Leaf Node=Leaf18
- Tree node sequence:
- RootNode
- StageTwoLow
- StageThreeLowLow
- Leaf18
- Stage= Ano1Stage Cost=1365070.3600
- Stage= Ano2Stage Cost=377547.8760
- Stage= Ano3Stage Cost=291782.8494
- Stage= Ano4Stage Cost=160721.2048
- Total scenario cost=2195122.2902
-
- Name=ForestChile2
- Probability=0.0545
- Leaf Node=Leaf2
- Tree node sequence:
- RootNode
- StageTwoHigh
- StageThreeHighHigh
- Leaf2
- Stage= Ano1Stage Cost=1365070.3600
- Stage= Ano2Stage Cost=1948115.8620
- Stage= Ano3Stage Cost=1790314.2248
- Stage= Ano4Stage Cost=1586327.5394
- Total scenario cost=6689827.9862
-
- Name=ForestChile3
- Probability=0.0545
- Leaf Node=Leaf3
- Tree node sequence:
- RootNode
- StageTwoHigh
- StageThreeHighMedium
- Leaf3
- Stage= Ano1Stage Cost=1365070.3600
- Stage= Ano2Stage Cost=1948115.8620
- Stage= Ano3Stage Cost=1132985.3616
- Stage= Ano4Stage Cost=1957155.1974
- Total scenario cost=6403326.7810
-
- Name=ForestChile4
- Probability=0.0545
- Leaf Node=Leaf4
- Tree node sequence:
- RootNode
- StageTwoHigh
- StageThreeHighMedium
- Leaf4
- Stage= Ano1Stage Cost=1365070.3600
- Stage= Ano2Stage Cost=1948115.8620
- Stage= Ano3Stage Cost=1132985.3616
- Stage= Ano4Stage Cost=1541870.1414
- Total scenario cost=5988041.7250
-
- Name=ForestChile5
- Probability=0.0561
- Leaf Node=Leaf5
- Tree node sequence:
- RootNode
- StageTwoHigh
- StageThreeHighLow
- Leaf5
- Stage= Ano1Stage Cost=1365070.3600
- Stage= Ano2Stage Cost=1948115.8620
- Stage= Ano3Stage Cost=797164.3188
- Stage= Ano4Stage Cost=1814022.6558
- Total scenario cost=5924373.1966
-
- Name=ForestChile6
- Probability=0.0561
- Leaf Node=Leaf6
- Tree node sequence:
- RootNode
- StageTwoHigh
- StageThreeHighLow
- Leaf6
- Stage= Ano1Stage Cost=1365070.3600
- Stage= Ano2Stage Cost=1948115.8620
- Stage= Ano3Stage Cost=797164.3188
- Stage= Ano4Stage Cost=1243192.4262
- Total scenario cost=5353542.9670
-
- Name=ForestChile7
- Probability=0.0545
- Leaf Node=Leaf7
- Tree node sequence:
- RootNode
- StageTwoMedium
- StageThreeMediumHigh
- Leaf7
- Stage= Ano1Stage Cost=1365070.3600
- Stage= Ano2Stage Cost=1072985.9040
- Stage= Ano3Stage Cost=1196200.4346
- Stage= Ano4Stage Cost=1810784.7549
- Total scenario cost=5445041.4535
-
- Name=ForestChile8
- Probability=0.0545
- Leaf Node=Leaf8
- Tree node sequence:
- RootNode
- StageTwoMedium
- StageThreeMediumHigh
- Leaf8
- Stage= Ano1Stage Cost=1365070.3600
- Stage= Ano2Stage Cost=1072985.9040
- Stage= Ano3Stage Cost=1196200.4346
- Stage= Ano4Stage Cost=1175545.5164
- Total scenario cost=4809802.2150
-
- Name=ForestChile9
- Probability=0.0545
- Leaf Node=Leaf9
- Tree node sequence:
- RootNode
- StageTwoMedium
- StageThreeMediumMedium
- Leaf9
- Stage= Ano1Stage Cost=1365070.3600
- Stage= Ano2Stage Cost=1072985.9040
- Stage= Ano3Stage Cost=1186604.4172
- Stage= Ano4Stage Cost=1186021.0204
- Total scenario cost=4810681.7017
-
-----------------------------------------------------
-
-Total execution time=103.75 seconds
diff --git a/pyomo/pysp/tests/unit/baselines/forestry_linearized_cplex.baseline-b b/pyomo/pysp/tests/unit/baselines/forestry_linearized_cplex.baseline-b
deleted file mode 100644
index b6597dfa291..00000000000
--- a/pyomo/pysp/tests/unit/baselines/forestry_linearized_cplex.baseline-b
+++ /dev/null
@@ -1,2572 +0,0 @@
-*** Active Objective 'Production_Profit_Objective' on scenario instance 'ForestChile1' will not be used. ***
-*** Active Objective 'Production_Profit_Objective' on scenario instance 'ForestChile10' will not be used. ***
-*** Active Objective 'Production_Profit_Objective' on scenario instance 'ForestChile11' will not be used. ***
-*** Active Objective 'Production_Profit_Objective' on scenario instance 'ForestChile12' will not be used. ***
-*** Active Objective 'Production_Profit_Objective' on scenario instance 'ForestChile13' will not be used. ***
-*** Active Objective 'Production_Profit_Objective' on scenario instance 'ForestChile14' will not be used. ***
-*** Active Objective 'Production_Profit_Objective' on scenario instance 'ForestChile15' will not be used. ***
-*** Active Objective 'Production_Profit_Objective' on scenario instance 'ForestChile16' will not be used. ***
-*** Active Objective 'Production_Profit_Objective' on scenario instance 'ForestChile17' will not be used. ***
-*** Active Objective 'Production_Profit_Objective' on scenario instance 'ForestChile18' will not be used. ***
-*** Active Objective 'Production_Profit_Objective' on scenario instance 'ForestChile2' will not be used. ***
-*** Active Objective 'Production_Profit_Objective' on scenario instance 'ForestChile3' will not be used. ***
-*** Active Objective 'Production_Profit_Objective' on scenario instance 'ForestChile4' will not be used. ***
-*** Active Objective 'Production_Profit_Objective' on scenario instance 'ForestChile5' will not be used. ***
-*** Active Objective 'Production_Profit_Objective' on scenario instance 'ForestChile6' will not be used. ***
-*** Active Objective 'Production_Profit_Objective' on scenario instance 'ForestChile7' will not be used. ***
-*** Active Objective 'Production_Profit_Objective' on scenario instance 'ForestChile8' will not be used. ***
-*** Active Objective 'Production_Profit_Objective' on scenario instance 'ForestChile9' will not be used. ***
-Importing module=/home/hudson/slave/workspace/Pyomo_trunk_python2.6/src/pyomo/examples/pysp/forestry/config/rhosetter.py
-Module successfully loaded
-Importing module=/home/hudson/slave/workspace/Pyomo_trunk_python2.6/src/pyomo/examples/pysp/forestry/config/boundsetter.py
-Module successfully loaded
-Initializing PH
-
-Executing user rho setter callback function
-Executing user bound setter callback function
-WW PH Extension: Loading user-specified configuration from file=/home/hudson/slave/workspace/Pyomo_trunk_python2.6/src/pyomo/examples/pysp/forestry/config/wwph.cfg
-WW PH Extension: Loading variable suffixes from file=/home/hudson/slave/workspace/Pyomo_trunk_python2.6/src/pyomo/examples/pysp/forestry/config/wwph-nb.suffixes
-WW PH Extension: Setting mipgap to 0.0210000, as specified in the configuration file
-Starting PH
-
-Initiating PH iteration=0
-Number of discrete variables fixed=0 (total=507)
-Number of continuous variables fixed=0 (total=260)
-First stage cost avg=1642205.5572 Max-Min=186491.00
-Converger=Normalized term diff value is 0.1047 - threshold reached=False
-Cumulative run-time=22.22 seconds
-
-Initiating PH iteration=1
-WW PH Extension: Setting mipgap to 0.0200000, as specified in the configuration file
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=17 (total=507)
-Number of continuous variables fixed=0 (total=260)
-First stage cost avg=1404922.1811 Max-Min=385400.94
-Converger=Normalized term diff value is 0.0572 - threshold reached=False
-Cumulative run-time=36.52 seconds
-
-Initiating PH iteration=2
-WW PH Extension: Setting mipgap to 0.0181847, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=31 (total=507)
-Number of continuous variables fixed=0 (total=260)
-First stage cost avg=1374587.3289 Max-Min=69453.50
-Converger=Normalized term diff value is 0.0328 - threshold reached=False
-Cumulative run-time=50.41 seconds
-
-Initiating PH iteration=3
-WW PH Extension: Setting mipgap to 0.0172517, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=33 (total=507)
-Number of continuous variables fixed=0 (total=260)
-First stage cost avg=1379705.1156 Max-Min=25345.68
-Converger=Normalized term diff value is 0.0208 - threshold reached=False
-Cumulative run-time=61.78 seconds
-
-Initiating PH iteration=4
-WW PH Extension: Setting mipgap to 0.0167922, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=90 (total=507)
-Number of continuous variables fixed=0 (total=260)
-First stage cost avg=1373518.9200 Max-Min=25345.68
-Converger=Normalized term diff value is 0.0177 - threshold reached=False
-Cumulative run-time=73.87 seconds
-
-Initiating PH iteration=5
-WW PH Extension: Setting mipgap to 0.0166741, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=99 (total=507)
-Number of continuous variables fixed=0 (total=260)
-First stage cost avg=1366478.4533 Max-Min=25345.68
-Converger=Normalized term diff value is 0.0127 - threshold reached=False
-Cumulative run-time=85.72 seconds
-
-Initiating PH iteration=6
-WW PH Extension: Setting mipgap to 0.0164827, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=329 (total=507)
-Number of continuous variables fixed=0 (total=260)
-First stage cost avg=1365070.3600 Max-Min= 0.00
-Converger=Normalized term diff value is 0.0064 - threshold reached=False
-Cumulative run-time=90.19 seconds
-
-Initiating PH iteration=7
-WW PH Extension: Setting mipgap to 0.0162418, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=368 (total=507)
-Number of continuous variables fixed=0 (total=260)
-First stage cost avg=1365070.3600 Max-Min= 0.00
-Converger=Normalized term diff value is 0.0082 - threshold reached=False
-Cumulative run-time=92.80 seconds
-
-Initiating PH iteration=8
-WW PH Extension: Setting mipgap to 0.0163102, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=409 (total=507)
-Number of continuous variables fixed=0 (total=260)
-First stage cost avg=1365070.3600 Max-Min= 0.00
-Converger=Normalized term diff value is 0.0091 - threshold reached=False
-Cumulative run-time=95.90 seconds
-
-Initiating PH iteration=9
-WW PH Extension: Setting mipgap to 0.0163445, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=425 (total=507)
-Number of continuous variables fixed=0 (total=260)
-First stage cost avg=1365070.3600 Max-Min= 0.00
-Converger=Normalized term diff value is 0.0064 - threshold reached=False
-Cumulative run-time=98.99 seconds
-
-Initiating PH iteration=10
-WW PH Extension: Setting mipgap to 0.0162416, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=429 (total=507)
-Number of continuous variables fixed=0 (total=260)
-First stage cost avg=1365070.3600 Max-Min= 0.00
-Converger=Normalized term diff value is 0.0064 - threshold reached=False
-Cumulative run-time=101.90 seconds
-Halting PH - reached maximal iteration count=10
-
-Number of discrete variables fixed before final plugin calls=429 (total=507)
-Number of continuous variables fixed before final plugin calls=0 (total=260)
-PH complete
-
-Convergence history:
-Converger=Normalized term diff
-Iteration Metric Value
- 0 0.1047
- 1 0.0572
- 2 0.0328
- 3 0.0208
- 4 0.0177
- 5 0.0127
- 6 0.0064
- 7 0.0082
- 8 0.0091
- 9 0.0064
- 10 0.0064
-
-
-Final number of discrete variables fixed=429 (total=507)
-Final number of continuous variables fixed=0 (total=260)
-
-Computing objective inner bound at xhat solution
-At least one sub-problem solve time was undefined - skipping timing statistics
-At least one sub-problem solve time was undefined - skipping timing statistics
- ** At least one sub-problem failed to solve! **
- Failed sub-problems:
- ForestChile1
- ForestChile2
- ForestChile3
- ForestChile4
-
-Failed to compute bound at xhat due to one or more solve failures. Restoring PH to solution at final iteration.
-Generating scenario tree solution from scenario averages
-
-Scenario tree variable values:
-
- Stage: Ano1Stage
- (Scenarios: ForestChile1 ForestChile2 ForestChile3 ForestChile4 ForestChile5 ForestChile6 ForestChile7 ForestChile8 ForestChile9 ForestChile10 ForestChile11 ForestChile12 ForestChile13 ForestChile14 ForestChile15 ForestChile16 ForestChile17 ForestChile18 )
- Variable: delta
- Index: [U11,Ano1] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [U12,Ano1] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [U16,Ano1] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [U17,Ano1] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [U19,Ano1] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- (Scenarios: ForestChile1 ForestChile2 ForestChile3 ForestChile4 ForestChile5 ForestChile6 ForestChile7 ForestChile8 ForestChile9 ForestChile10 ForestChile11 ForestChile12 ForestChile13 ForestChile14 ForestChile15 ForestChile16 ForestChile17 ForestChile18 )
- Variable: f
- Index: [C03,E1,Ano1] Values: 22753.6000 22753.6000 22753.6000 22753.6000 22753.6000 22753.6000 22753.6000 22753.6000 22753.6000 22753.6000 22753.6000 22753.6000 22753.6000 22753.6000 22753.6000 22753.6000 22753.6000 22753.6000
-
- Index: [C04,C03,Ano1] Values: 14880.0000 14880.0000 14880.0000 14880.0000 14880.0000 14880.0000 14880.0000 14880.0000 14880.0000 14880.0000 14880.0000 14880.0000 14880.0000 14880.0000 14880.0000 14880.0000 14880.0000 14880.0000
-
- Index: [C06,I3,Ano1] Values: 9510.8000 9510.8000 9510.8000 9510.8000 9510.8000 9510.8000 9510.8000 9510.8000 9510.8000 9510.8000 9510.8000 9510.8000 9510.8000 9510.8000 9510.8000 9510.8000 9510.8000 9510.8000
-
- Index: [I3,E1,Ano1] Values: 9510.8000 9510.8000 9510.8000 9510.8000 9510.8000 9510.8000 9510.8000 9510.8000 9510.8000 9510.8000 9510.8000 9510.8000 9510.8000 9510.8000 9510.8000 9510.8000 9510.8000 9510.8000
-
- (Scenarios: ForestChile1 ForestChile2 ForestChile3 ForestChile4 ForestChile5 ForestChile6 ForestChile7 ForestChile8 ForestChile9 ForestChile10 ForestChile11 ForestChile12 ForestChile13 ForestChile14 ForestChile15 ForestChile16 ForestChile17 ForestChile18 )
- Variable: gamma
- Index: [C04,C03,Ano1] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [C06,I3,Ano1] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Cost Variable: AnoProfit[Ano1]
- Tree Node: RootNode (Scenarios: ForestChile1 ForestChile2 ForestChile3 ForestChile4 ForestChile5 ForestChile6 ForestChile7 ForestChile8 ForestChile9 ForestChile10 ForestChile11 ForestChile12 ForestChile13 ForestChile14 ForestChile15 ForestChile16 ForestChile17 ForestChile18 )
- Values: 1365070.36001365070.36001365070.36001365070.36001365070.36001365070.36001365070.36001365070.36001365070.36001365070.36001365070.36001365070.36001365070.36001365070.36001365070.36001365070.36001365070.36001365070.3600 Max-Min: 0.0000 Avg: 1365070.3600
- Stage: Ano2Stage
- (Scenarios: ForestChile1 ForestChile2 ForestChile3 ForestChile4 ForestChile5 ForestChile6 )
- Variable: delta
- Index: [U10,Ano2]
- Tree Node: StageTwoHigh Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [U13,Ano2]
- Tree Node: StageTwoHigh Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [U15,Ano2]
- Tree Node: StageTwoHigh Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [U6,Ano2]
- Tree Node: StageTwoHigh Values: 1.0000 1.0000 0.0000 0.0000 1.0000 1.0000
-
- Index: [U7,Ano2]
- Tree Node: StageTwoHigh Values: 1.0000 1.0000 0.0000 0.0000 1.0000 1.0000
-
- Index: [U9,Ano2]
- Tree Node: StageTwoHigh Values: 0.0000 0.0000 1.0000 1.0000 0.0000 0.0000
-
- (Scenarios: ForestChile7 ForestChile8 ForestChile9 ForestChile10 ForestChile11 ForestChile12 )
- Index: [U15,Ano2]
- Tree Node: StageTwoMedium Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [U3,Ano2]
- Tree Node: StageTwoMedium Values: 0.0000 0.0000 0.0000 0.0000 1.0000 0.0000
-
- Index: [U5,Ano2]
- Tree Node: StageTwoMedium Values: 0.0000 0.0000 1.0000 0.0000 0.0000 0.0000
-
- Index: [U8,Ano2]
- Tree Node: StageTwoMedium Values: 1.0000 1.0000 0.0000 1.0000 0.0000 1.0000
-
- Index: [U9,Ano2]
- Tree Node: StageTwoMedium Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- (Scenarios: ForestChile13 ForestChile14 ForestChile15 ForestChile16 ForestChile17 ForestChile18 )
- Index: [U13,Ano2]
- Tree Node: StageTwoLow Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [U18,Ano2]
- Tree Node: StageTwoLow Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [U3,Ano2]
- Tree Node: StageTwoLow Values: 1.0000 1.0000 1.0000 0.0000 1.0000 1.0000
-
- Index: [U8,Ano2]
- Tree Node: StageTwoLow Values: 0.0000 0.0000 0.0000 1.0000 0.0000 0.0000
-
- (Scenarios: ForestChile1 ForestChile2 ForestChile3 ForestChile4 ForestChile5 ForestChile6 )
- Variable: f
- Index: [C02,C03,Ano2]
- Tree Node: StageTwoHigh Values: 21250.2000 21250.2000 18939.0000 18939.0000 21250.2000 21250.2000
-
- Index: [C03,E1,Ano2]
- Tree Node: StageTwoHigh Values: 34663.6000 34663.6000 32352.4000 32352.4000 34663.6000 34663.6000
-
- Index: [C04,C03,Ano2]
- Tree Node: StageTwoHigh Values: 7560.0000 7560.0000 7560.0000 7560.0000 7560.0000 7560.0000
-
- (Scenarios: ForestChile7 ForestChile8 ForestChile9 ForestChile10 ForestChile11 ForestChile12 )
- Index: [C02,C03,Ano2]
- Tree Node: StageTwoMedium Values: 9862.4312 9886.8662 9862.4312 9862.4312 9862.4312 9886.8662
-
- Index: [C02,C09,Ano2]
- Tree Node: StageTwoMedium Values: 858.9688 834.5338 858.9688 858.9688 858.9688 834.5338
-
- Index: [C03,E1,Ano2]
- Tree Node: StageTwoMedium Values: 17422.4312 17446.8662 17422.4312 17422.4312 17422.4312 17446.8662
-
- Index: [C04,C03,Ano2]
- Tree Node: StageTwoMedium Values: 7560.0000 7560.0000 7560.0000 7560.0000 7560.0000 7560.0000
-
- Index: [C09,E1,Ano2]
- Tree Node: StageTwoMedium Values: 4623.7688 4599.3338 4587.5688 4623.7688 4515.1688 4599.3338
-
- (Scenarios: ForestChile13 ForestChile14 ForestChile15 ForestChile16 ForestChile17 ForestChile18 )
- Index: [C02,C03,Ano2]
- Tree Node: StageTwoLow Values: 3.9461 3.9461 0.0000 21.8651 21.8651 21.8651
-
- Index: [C03,E1,Ano2]
- Tree Node: StageTwoLow Values: 6296.5590 6296.5590 6296.5590 6405.1590 6314.4780 6296.5590
-
- Index: [C06,I3,Ano2]
- Tree Node: StageTwoLow Values: 5774.4000 5774.4000 5774.4000 5774.4000 5774.4000 5774.4000
-
- Index: [C09,C02,Ano2]
- Tree Node: StageTwoLow Values: 3.9461 3.9461 0.0000 21.8651 21.8651 21.8651
-
- Index: [C09,C03,Ano2]
- Tree Node: StageTwoLow Values: 439.2129 439.2129 443.1590 529.8939 439.2129 421.2939
-
- Index: [C09,E1,Ano2]
- Tree Node: StageTwoLow Values: 3213.0410 3213.0410 3213.0410 3213.0410 3195.1220 3213.0410
-
- Index: [I3,E1,Ano2]
- Tree Node: StageTwoLow Values: 5774.4000 5774.4000 5774.4000 5774.4000 5774.4000 5774.4000
-
- (Scenarios: ForestChile1 ForestChile2 ForestChile3 ForestChile4 ForestChile5 ForestChile6 )
- Variable: gamma
- Index: [C02,C09,Ano2]
- Tree Node: StageTwoHigh Values: 1.0000 1.0000 0.0000 0.0000 0.0000 0.0000
-
- Index: [C09,E1,Ano2]
- Tree Node: StageTwoHigh Values: 1.0000 1.0000 0.0000 0.0000 0.0000 0.0000
-
- (Scenarios: ForestChile7 ForestChile8 ForestChile9 ForestChile10 ForestChile11 ForestChile12 )
- Index: [C02,C09,Ano2]
- Tree Node: StageTwoMedium Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [C09,E1,Ano2]
- Tree Node: StageTwoMedium Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- (Scenarios: ForestChile13 ForestChile14 ForestChile15 ForestChile16 ForestChile17 ForestChile18 )
- Index: [C09,C02,Ano2]
- Tree Node: StageTwoLow Values: 1.0000 1.0000 0.0000 1.0000 1.0000 1.0000
-
- Index: [C09,C03,Ano2]
- Tree Node: StageTwoLow Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [C09,E1,Ano2]
- Tree Node: StageTwoLow Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Cost Variable: AnoProfit[Ano2]
- Tree Node: StageTwoHigh (Scenarios: ForestChile1 ForestChile2 ForestChile3 ForestChile4 ForestChile5 ForestChile6 )
- Values: 1738803.33001738803.33001628339.22001628339.22001742509.69201742509.6920 Max-Min: 114170.4720 Avg: 1703610.3368
- Tree Node: StageTwoMedium (Scenarios: ForestChile7 ForestChile8 ForestChile9 ForestChile10 ForestChile11 ForestChile12 )
- Values: 800841.9737 800873.8614 799513.4297 800841.9737 796856.3417 800873.8614 Max-Min: 4017.5197 Avg: 799955.8889
- Tree Node: StageTwoLow (Scenarios: ForestChile13 ForestChile14 ForestChile15 ForestChile16 ForestChile17 ForestChile18 )
- Values: 372849.4556 372849.4556 374240.3480 375239.0422 372797.0425 372812.3632 Max-Min: 2441.9997 Avg: 373458.0187
- Stage: Ano3Stage
- (Scenarios: ForestChile1 ForestChile2 )
- Variable: delta
- Index: [U14,Ano3]
- Tree Node: StageThreeHighHigh Values: 1.0000 1.0000
-
- Index: [U2,Ano3]
- Tree Node: StageThreeHighHigh Values: 1.0000 1.0000
-
- Index: [U20,Ano3]
- Tree Node: StageThreeHighHigh Values: 1.0000 1.0000
-
- Index: [U23,Ano3]
- Tree Node: StageThreeHighHigh Values: 1.0000 1.0000
-
- Index: [U24,Ano3]
- Tree Node: StageThreeHighHigh Values: 1.0000 1.0000
-
- Index: [U3,Ano3]
- Tree Node: StageThreeHighHigh Values: 1.0000 1.0000
-
- Index: [U9,Ano3]
- Tree Node: StageThreeHighHigh Values: 1.0000 1.0000
-
- (Scenarios: ForestChile3 ForestChile4 )
- Index: [U1,Ano3]
- Tree Node: StageThreeHighMedium Values: 1.0000 1.0000
-
- Index: [U18,Ano3]
- Tree Node: StageThreeHighMedium Values: 1.0000 1.0000
-
- Index: [U2,Ano3]
- Tree Node: StageThreeHighMedium Values: 1.0000 1.0000
-
- Index: [U24,Ano3]
- Tree Node: StageThreeHighMedium Values: 1.0000 1.0000
-
- Index: [U7,Ano3]
- Tree Node: StageThreeHighMedium Values: 1.0000 1.0000
-
- (Scenarios: ForestChile5 ForestChile6 )
- Index: [U18,Ano3]
- Tree Node: StageThreeHighLow Values: 1.0000 1.0000
-
- Index: [U20,Ano3]
- Tree Node: StageThreeHighLow Values: 1.0000 1.0000
-
- Index: [U21,Ano3]
- Tree Node: StageThreeHighLow Values: 1.0000 1.0000
-
- Index: [U24,Ano3]
- Tree Node: StageThreeHighLow Values: 1.0000 1.0000
-
- (Scenarios: ForestChile7 ForestChile8 )
- Index: [U10,Ano3]
- Tree Node: StageThreeMediumHigh Values: 1.0000 1.0000
-
- Index: [U18,Ano3]
- Tree Node: StageThreeMediumHigh Values: 1.0000 1.0000
-
- Index: [U20,Ano3]
- Tree Node: StageThreeMediumHigh Values: 1.0000 1.0000
-
- Index: [U6,Ano3]
- Tree Node: StageThreeMediumHigh Values: 1.0000 1.0000
-
- Index: [U7,Ano3]
- Tree Node: StageThreeMediumHigh Values: 1.0000 1.0000
-
- (Scenarios: ForestChile9 ForestChile10 )
- Index: [U10,Ano3]
- Tree Node: StageThreeMediumMedium Values: 1.0000 1.0000
-
- Index: [U14,Ano3]
- Tree Node: StageThreeMediumMedium Values: 1.0000 1.0000
-
- Index: [U4,Ano3]
- Tree Node: StageThreeMediumMedium Values: 1.0000 1.0000
-
- Index: [U6,Ano3]
- Tree Node: StageThreeMediumMedium Values: 1.0000 1.0000
-
- Index: [U7,Ano3]
- Tree Node: StageThreeMediumMedium Values: 1.0000 1.0000
-
- (Scenarios: ForestChile11 ForestChile12 )
- Index: [U10,Ano3]
- Tree Node: StageThreeMediumLow Values: 1.0000 1.0000
-
- Index: [U13,Ano3]
- Tree Node: StageThreeMediumLow Values: 1.0000 1.0000
-
- Index: [U14,Ano3]
- Tree Node: StageThreeMediumLow Values: 1.0000 1.0000
-
- Index: [U7,Ano3]
- Tree Node: StageThreeMediumLow Values: 1.0000 1.0000
-
- (Scenarios: ForestChile13 ForestChile14 )
- Index: [U10,Ano3]
- Tree Node: StageThreeLowHigh Values: 1.0000 1.0000
-
- Index: [U6,Ano3]
- Tree Node: StageThreeLowHigh Values: 1.0000 1.0000
-
- Index: [U7,Ano3]
- Tree Node: StageThreeLowHigh Values: 1.0000 1.0000
-
- Index: [U9,Ano3]
- Tree Node: StageThreeLowHigh Values: 1.0000 1.0000
-
- (Scenarios: ForestChile15 ForestChile16 )
- Index: [U10,Ano3]
- Tree Node: StageThreeLowMedium Values: 1.0000 1.0000
-
- Index: [U9,Ano3]
- Tree Node: StageThreeLowMedium Values: 1.0000 1.0000
-
- (Scenarios: ForestChile17 ForestChile18 )
- Index: [U15,Ano3]
- Tree Node: StageThreeLowLow Values: 1.0000 1.0000
-
- Index: [U6,Ano3]
- Tree Node: StageThreeLowLow Values: 1.0000 1.0000
-
- Index: [U7,Ano3]
- Tree Node: StageThreeLowLow Values: 1.0000 1.0000
-
- (Scenarios: ForestChile1 ForestChile2 )
- Variable: f
- Index: [C01,C09,Ano3]
- Tree Node: StageThreeHighHigh Values: 3656.2000 3656.2000
-
- Index: [C02,C03,Ano3]
- Tree Node: StageThreeHighHigh Values: 10015.7000 10015.7000
-
- Index: [C02,C09,Ano3]
- Tree Node: StageThreeHighHigh Values: 705.7000 705.7000
-
- Index: [C03,E1,Ano3]
- Tree Node: StageThreeHighHigh Values: 10015.7000 10015.7000
-
- Index: [C05,I1,Ano3]
- Tree Node: StageThreeHighHigh Values: 22056.3000 22056.3000
-
- Index: [C08,I2,Ano3]
- Tree Node: StageThreeHighHigh Values: 4170.4000 4170.4000
-
- Index: [C09,E1,Ano3]
- Tree Node: StageThreeHighHigh Values: 8018.1000 8018.1000
-
- Index: [I1,I2,Ano3]
- Tree Node: StageThreeHighHigh Values: 22056.3000 22056.3000
-
- Index: [I2,I3,Ano3]
- Tree Node: StageThreeHighHigh Values: 26226.7000 26226.7000
-
- Index: [I3,E1,Ano3]
- Tree Node: StageThreeHighHigh Values: 26226.7000 26226.7000
-
- (Scenarios: ForestChile3 ForestChile4 )
- Index: [C01,C09,Ano3]
- Tree Node: StageThreeHighMedium Values: 7312.4000 7312.4000
-
- Index: [C02,C03,Ano3]
- Tree Node: StageThreeHighMedium Values: 6484.2000 6484.2000
-
- Index: [C03,E1,Ano3]
- Tree Node: StageThreeHighMedium Values: 7398.2500 7398.2500
-
- Index: [C05,I1,Ano3]
- Tree Node: StageThreeHighMedium Values: 8391.6000 8391.6000
-
- Index: [C06,I3,Ano3]
- Tree Node: StageThreeHighMedium Values: 5774.4000 5774.4000
-
- Index: [C09,C03,Ano3]
- Tree Node: StageThreeHighMedium Values: 914.0500 914.0500
-
- Index: [C09,E1,Ano3]
- Tree Node: StageThreeHighMedium Values: 6398.3500 6398.3500
-
- Index: [I1,I2,Ano3]
- Tree Node: StageThreeHighMedium Values: 8391.6000 8391.6000
-
- Index: [I2,I3,Ano3]
- Tree Node: StageThreeHighMedium Values: 8391.6000 8391.6000
-
- Index: [I3,E1,Ano3]
- Tree Node: StageThreeHighMedium Values: 14166.0000 14166.0000
-
- (Scenarios: ForestChile5 ForestChile6 )
- Index: [C05,I1,Ano3]
- Tree Node: StageThreeHighLow Values: 8391.6000 8391.6000
-
- Index: [C06,I3,Ano3]
- Tree Node: StageThreeHighLow Values: 5774.4000 5774.4000
-
- Index: [C08,I2,Ano3]
- Tree Node: StageThreeHighLow Values: 10287.6000 10287.6000
-
- Index: [I1,I2,Ano3]
- Tree Node: StageThreeHighLow Values: 8391.6000 8391.6000
-
- Index: [I2,I3,Ano3]
- Tree Node: StageThreeHighLow Values: 18679.2000 18679.2000
-
- Index: [I3,E1,Ano3]
- Tree Node: StageThreeHighLow Values: 24453.6000 24453.6000
-
- (Scenarios: ForestChile7 ForestChile8 )
- Index: [C02,C03,Ano3]
- Tree Node: StageThreeMediumHigh Values: 21250.2000 21250.2000
-
- Index: [C03,E1,Ano3]
- Tree Node: StageThreeMediumHigh Values: 21250.2000 21250.2000
-
- Index: [C06,I3,Ano3]
- Tree Node: StageThreeMediumHigh Values: 5774.4000 5774.4000
-
- Index: [C08,I2,Ano3]
- Tree Node: StageThreeMediumHigh Values: 4170.4000 4170.4000
-
- Index: [I2,I3,Ano3]
- Tree Node: StageThreeMediumHigh Values: 4170.4000 4170.4000
-
- Index: [I3,E1,Ano3]
- Tree Node: StageThreeMediumHigh Values: 9944.8000 9944.8000
-
- (Scenarios: ForestChile9 ForestChile10 )
- Index: [C01,C09,Ano3]
- Tree Node: StageThreeMediumMedium Values: 8602.8000 8602.8000
-
- Index: [C02,C03,Ano3]
- Tree Node: StageThreeMediumMedium Values: 20672.4000 20672.4000
-
- Index: [C02,C09,Ano3]
- Tree Node: StageThreeMediumMedium Values: 577.8000 577.8000
-
- Index: [C03,E1,Ano3]
- Tree Node: StageThreeMediumMedium Values: 20672.4000 20672.4000
-
- Index: [C05,I1,Ano3]
- Tree Node: StageThreeMediumMedium Values: 7200.9000 7200.9000
-
- Index: [C09,E1,Ano3]
- Tree Node: StageThreeMediumMedium Values: 9180.6000 9180.6000
-
- Index: [I1,I2,Ano3]
- Tree Node: StageThreeMediumMedium Values: 7200.9000 7200.9000
-
- Index: [I2,I3,Ano3]
- Tree Node: StageThreeMediumMedium Values: 7200.9000 7200.9000
-
- Index: [I3,E1,Ano3]
- Tree Node: StageThreeMediumMedium Values: 7200.9000 7200.9000
-
- (Scenarios: ForestChile11 ForestChile12 )
- Index: [C02,C03,Ano3]
- Tree Node: StageThreeMediumLow Values: 14701.8000 14701.8000
-
- Index: [C03,E1,Ano3]
- Tree Node: StageThreeMediumLow Values: 20555.2000 20555.2000
-
- Index: [C05,I1,Ano3]
- Tree Node: StageThreeMediumLow Values: 7200.9000 7200.9000
-
- Index: [I1,I2,Ano3]
- Tree Node: StageThreeMediumLow Values: 7200.9000 7200.9000
-
- Index: [I2,I3,Ano3]
- Tree Node: StageThreeMediumLow Values: 7200.9000 7200.9000
-
- Index: [I3,E1,Ano3]
- Tree Node: StageThreeMediumLow Values: 7200.9000 7200.9000
-
- (Scenarios: ForestChile13 ForestChile14 )
- Index: [C02,C03,Ano3]
- Tree Node: StageThreeLowHigh Values: 31971.6000 31971.6000
-
- Index: [C03,E1,Ano3]
- Tree Node: StageThreeLowHigh Values: 31971.6000 31971.6000
-
- (Scenarios: ForestChile15 ForestChile16 )
- Index: [C02,C03,Ano3]
- Tree Node: StageThreeLowMedium Values: 18939.0000 18938.3104
-
- Index: [C02,C09,Ano3]
- Tree Node: StageThreeLowMedium Values: 0.0000 0.6896
-
- Index: [C03,E1,Ano3]
- Tree Node: StageThreeLowMedium Values: 18939.0000 18938.3104
-
- Index: [C09,E1,Ano3]
- Tree Node: StageThreeLowMedium Values: 0.0000 0.6896
-
- (Scenarios: ForestChile17 ForestChile18 )
- Index: [C02,C03,Ano3]
- Tree Node: StageThreeLowLow Values: 12118.5500 12118.5500
-
- Index: [C02,C09,Ano3]
- Tree Node: StageThreeLowLow Values: 914.0500 914.0500
-
- Index: [C03,E1,Ano3]
- Tree Node: StageThreeLowLow Values: 17976.2000 17976.2000
-
- Index: [C04,C03,Ano3]
- Tree Node: StageThreeLowLow Values: 4943.6000 4943.6000
-
- Index: [C04,I3,Ano3]
- Tree Node: StageThreeLowLow Values: 2616.4000 2616.4000
-
- Index: [C09,C03,Ano3]
- Tree Node: StageThreeLowLow Values: 914.0500 914.0500
-
- Index: [I3,E1,Ano3]
- Tree Node: StageThreeLowLow Values: 2616.4000 2616.4000
-
- (Scenarios: ForestChile1 ForestChile2 )
- Variable: gamma
- Index: [C01,C09,Ano3]
- Tree Node: StageThreeHighHigh Values: 1.0000 1.0000
-
- Index: [C08,I2,Ano3]
- Tree Node: StageThreeHighHigh Values: 1.0000 1.0000
-
- (Scenarios: ForestChile3 ForestChile4 )
- Index: [C01,C09,Ano3]
- Tree Node: StageThreeHighMedium Values: 1.0000 1.0000
-
- Index: [C09,C03,Ano3]
- Tree Node: StageThreeHighMedium Values: 1.0000 1.0000
-
- Index: [C09,E1,Ano3]
- Tree Node: StageThreeHighMedium Values: 1.0000 1.0000
-
- (Scenarios: ForestChile5 ForestChile6 )
- Index: [C08,I2,Ano3]
- Tree Node: StageThreeHighLow Values: 1.0000 1.0000
-
- (Scenarios: ForestChile7 ForestChile8 )
- Index: [C08,I2,Ano3]
- Tree Node: StageThreeMediumHigh Values: 1.0000 1.0000
-
- Index: [C09,C02,Ano3]
- Tree Node: StageThreeMediumHigh Values: 1.0000 0.0000
-
- (Scenarios: ForestChile9 ForestChile10 )
- Index: [C01,C09,Ano3]
- Tree Node: StageThreeMediumMedium Values: 1.0000 1.0000
-
- (Scenarios: ForestChile11 ForestChile12 )
- (Scenarios: ForestChile13 ForestChile14 )
- (Scenarios: ForestChile15 ForestChile16 )
- Index: [C02,C09,Ano3]
- Tree Node: StageThreeLowMedium Values: 0.0000 1.0000
-
- (Scenarios: ForestChile17 ForestChile18 )
- Index: [C02,C09,Ano3]
- Tree Node: StageThreeLowLow Values: 1.0000 1.0000
-
- Index: [C04,I3,Ano3]
- Tree Node: StageThreeLowLow Values: 1.0000 1.0000
-
- Cost Variable: AnoProfit[Ano3]
- Tree Node: StageThreeHighHigh (Scenarios: ForestChile1 ForestChile2 )
- Values: 2135200.57292135200.5729 Max-Min: 0.0000 Avg: 2135200.5729
- Tree Node: StageThreeHighMedium (Scenarios: ForestChile3 ForestChile4 )
- Values: 1128914.80581128914.8058 Max-Min: 0.0000 Avg: 1128914.8058
- Tree Node: StageThreeHighLow (Scenarios: ForestChile5 ForestChile6 )
- Values: 797164.3188 797164.3188 Max-Min: 0.0000 Avg: 797164.3188
- Tree Node: StageThreeMediumHigh (Scenarios: ForestChile7 ForestChile8 )
- Values: 1195069.11571196200.4346 Max-Min: 1131.3189 Avg: 1195634.7751
- Tree Node: StageThreeMediumMedium (Scenarios: ForestChile9 ForestChile10 )
- Values: 1185925.79111185925.7911 Max-Min: 0.0000 Avg: 1185925.7911
- Tree Node: StageThreeMediumLow (Scenarios: ForestChile11 ForestChile12 )
- Values: 573952.6552 573952.6552 Max-Min: 0.0000 Avg: 573952.6552
- Tree Node: StageThreeLowHigh (Scenarios: ForestChile13 ForestChile14 )
- Values: 1032967.43641032967.4364 Max-Min: 0.0000 Avg: 1032967.4364
- Tree Node: StageThreeLowMedium (Scenarios: ForestChile15 ForestChile16 )
- Values: 381789.5310 380657.4021 Max-Min: 1132.1289 Avg: 381223.4666
- Tree Node: StageThreeLowLow (Scenarios: ForestChile17 ForestChile18 )
- Values: 286295.5530 286295.5530 Max-Min: 0.0000 Avg: 286295.5530
-Scenario tree costs:
-Scenario Tree Costs
-----------------------------------------------------
-Tree Nodes:
-
- Name=Leaf1
- Stage=Ano4Stage
- Parent=StageThreeHighHigh
- Conditional probability=0.5000
- Children:
- None
- Scenarios:
- ForestChile1
- Expected cost of (sub)tree rooted at node=1790538.5915
-
- Name=Leaf10
- Stage=Ano4Stage
- Parent=StageThreeMediumMedium
- Conditional probability=0.5000
- Children:
- None
- Scenarios:
- ForestChile10
- Expected cost of (sub)tree rooted at node=828103.9779
-
- Name=Leaf11
- Stage=Ano4Stage
- Parent=StageThreeMediumLow
- Conditional probability=0.5000
- Children:
- None
- Scenarios:
- ForestChile11
- Expected cost of (sub)tree rooted at node=882834.9287
-
- Name=Leaf12
- Stage=Ano4Stage
- Parent=StageThreeMediumLow
- Conditional probability=0.5000
- Children:
- None
- Scenarios:
- ForestChile12
- Expected cost of (sub)tree rooted at node=657261.3553
-
- Name=Leaf13
- Stage=Ano4Stage
- Parent=StageThreeLowHigh
- Conditional probability=0.5000
- Children:
- None
- Scenarios:
- ForestChile13
- Expected cost of (sub)tree rooted at node=461821.9009
-
- Name=Leaf14
- Stage=Ano4Stage
- Parent=StageThreeLowHigh
- Conditional probability=0.5000
- Children:
- None
- Scenarios:
- ForestChile14
- Expected cost of (sub)tree rooted at node=332143.0070
-
- Name=Leaf15
- Stage=Ano4Stage
- Parent=StageThreeLowMedium
- Conditional probability=0.5000
- Children:
- None
- Scenarios:
- ForestChile15
- Expected cost of (sub)tree rooted at node=466101.7506
-
- Name=Leaf16
- Stage=Ano4Stage
- Parent=StageThreeLowMedium
- Conditional probability=0.5000
- Children:
- None
- Scenarios:
- ForestChile16
- Expected cost of (sub)tree rooted at node=306518.8538
-
- Name=Leaf17
- Stage=Ano4Stage
- Parent=StageThreeLowLow
- Conditional probability=0.5000
- Children:
- None
- Scenarios:
- ForestChile17
- Expected cost of (sub)tree rooted at node=263516.3539
-
- Name=Leaf18
- Stage=Ano4Stage
- Parent=StageThreeLowLow
- Conditional probability=0.5000
- Children:
- None
- Scenarios:
- ForestChile18
- Expected cost of (sub)tree rooted at node=161970.3317
-
- Name=Leaf2
- Stage=Ano4Stage
- Parent=StageThreeHighHigh
- Conditional probability=0.5000
- Children:
- None
- Scenarios:
- ForestChile2
- Expected cost of (sub)tree rooted at node=1476664.5068
-
- Name=Leaf3
- Stage=Ano4Stage
- Parent=StageThreeHighMedium
- Conditional probability=0.5000
- Children:
- None
- Scenarios:
- ForestChile3
- Expected cost of (sub)tree rooted at node=1905799.8375
-
- Name=Leaf4
- Stage=Ano4Stage
- Parent=StageThreeHighMedium
- Conditional probability=0.5000
- Children:
- None
- Scenarios:
- ForestChile4
- Expected cost of (sub)tree rooted at node=1557135.2411
-
- Name=Leaf5
- Stage=Ano4Stage
- Parent=StageThreeHighLow
- Conditional probability=0.5000
- Children:
- None
- Scenarios:
- ForestChile5
- Expected cost of (sub)tree rooted at node=1835653.5402
-
- Name=Leaf6
- Stage=Ano4Stage
- Parent=StageThreeHighLow
- Conditional probability=0.5000
- Children:
- None
- Scenarios:
- ForestChile6
- Expected cost of (sub)tree rooted at node=1224279.3341
-
- Name=Leaf7
- Stage=Ano4Stage
- Parent=StageThreeMediumHigh
- Conditional probability=0.5000
- Children:
- None
- Scenarios:
- ForestChile7
- Expected cost of (sub)tree rooted at node=1811043.7832
-
- Name=Leaf8
- Stage=Ano4Stage
- Parent=StageThreeMediumHigh
- Conditional probability=0.5000
- Children:
- None
- Scenarios:
- ForestChile8
- Expected cost of (sub)tree rooted at node=1187909.1086
-
- Name=Leaf9
- Stage=Ano4Stage
- Parent=StageThreeMediumMedium
- Conditional probability=0.5000
- Children:
- None
- Scenarios:
- ForestChile9
- Expected cost of (sub)tree rooted at node=1198737.4704
-
- Name=RootNode
- Stage=Ano1Stage
- Parent=None
- Conditional probability=1.0000
- Children:
- StageTwoHigh
- StageTwoLow
- StageTwoMedium
- Scenarios:
- ForestChile1
- ForestChile10
- ForestChile11
- ForestChile12
- ForestChile13
- ForestChile14
- ForestChile15
- ForestChile16
- ForestChile17
- ForestChile18
- ForestChile2
- ForestChile3
- ForestChile4
- ForestChile5
- ForestChile6
- ForestChile7
- ForestChile8
- ForestChile9
- Expected cost of (sub)tree rooted at node=4300996.1964
-
- Name=StageThreeHighHigh
- Stage=Ano3Stage
- Parent=StageTwoHigh
- Conditional probability=0.3300
- Children:
- Leaf1
- Leaf2
- Scenarios:
- ForestChile1
- ForestChile2
- Expected cost of (sub)tree rooted at node=3768802.1221
-
- Name=StageThreeHighLow
- Stage=Ano3Stage
- Parent=StageTwoHigh
- Conditional probability=0.3400
- Children:
- Leaf5
- Leaf6
- Scenarios:
- ForestChile5
- ForestChile6
- Expected cost of (sub)tree rooted at node=2327130.7559
-
- Name=StageThreeHighMedium
- Stage=Ano3Stage
- Parent=StageTwoHigh
- Conditional probability=0.3300
- Children:
- Leaf3
- Leaf4
- Scenarios:
- ForestChile3
- ForestChile4
- Expected cost of (sub)tree rooted at node=2860382.3451
-
- Name=StageThreeLowHigh
- Stage=Ano3Stage
- Parent=StageTwoLow
- Conditional probability=0.3300
- Children:
- Leaf13
- Leaf14
- Scenarios:
- ForestChile13
- ForestChile14
- Expected cost of (sub)tree rooted at node=1429949.8904
-
- Name=StageThreeLowLow
- Stage=Ano3Stage
- Parent=StageTwoLow
- Conditional probability=0.3400
- Children:
- Leaf17
- Leaf18
- Scenarios:
- ForestChile17
- ForestChile18
- Expected cost of (sub)tree rooted at node=499038.8958
-
- Name=StageThreeLowMedium
- Stage=Ano3Stage
- Parent=StageTwoLow
- Conditional probability=0.3300
- Children:
- Leaf15
- Leaf16
- Scenarios:
- ForestChile15
- ForestChile16
- Expected cost of (sub)tree rooted at node=768099.8332
-
- Name=StageThreeMediumHigh
- Stage=Ano3Stage
- Parent=StageTwoMedium
- Conditional probability=0.3300
- Children:
- Leaf7
- Leaf8
- Scenarios:
- ForestChile7
- ForestChile8
- Expected cost of (sub)tree rooted at node=2694545.5616
-
- Name=StageThreeMediumLow
- Stage=Ano3Stage
- Parent=StageTwoMedium
- Conditional probability=0.3400
- Children:
- Leaf11
- Leaf12
- Scenarios:
- ForestChile11
- ForestChile12
- Expected cost of (sub)tree rooted at node=1344000.7972
-
- Name=StageThreeMediumMedium
- Stage=Ano3Stage
- Parent=StageTwoMedium
- Conditional probability=0.3300
- Children:
- Leaf10
- Leaf9
- Scenarios:
- ForestChile10
- ForestChile9
- Expected cost of (sub)tree rooted at node=2199346.5153
-
- Name=StageTwoHigh
- Stage=Ano2Stage
- Parent=RootNode
- Conditional probability=0.3300
- Children:
- StageThreeHighHigh
- StageThreeHighLow
- StageThreeHighMedium
- Scenarios:
- ForestChile1
- ForestChile2
- ForestChile3
- ForestChile4
- ForestChile5
- ForestChile6
- Expected cost of (sub)tree rooted at node=4717658.6612
-
- Name=StageTwoLow
- Stage=Ano2Stage
- Parent=RootNode
- Conditional probability=0.3400
- Children:
- StageThreeLowHigh
- StageThreeLowLow
- StageThreeLowMedium
- Scenarios:
- ForestChile13
- ForestChile14
- ForestChile15
- ForestChile16
- ForestChile17
- ForestChile18
- Expected cost of (sub)tree rooted at node=1267879.0889
-
- Name=StageTwoMedium
- Stage=Ano2Stage
- Parent=RootNode
- Conditional probability=0.3300
- Children:
- StageThreeMediumHigh
- StageThreeMediumLow
- StageThreeMediumMedium
- Scenarios:
- ForestChile10
- ForestChile11
- ForestChile12
- ForestChile7
- ForestChile8
- ForestChile9
- Expected cost of (sub)tree rooted at node=2872786.6301
-
-----------------------------------------------------
-Scenarios:
-
- Name=ForestChile1
- Probability=0.0545
- Leaf Node=Leaf1
- Tree node sequence:
- RootNode
- StageTwoHigh
- StageThreeHighHigh
- Leaf1
- Stage= Ano1Stage Cost=1365070.3600
- Stage= Ano2Stage Cost=1738803.3300
- Stage= Ano3Stage Cost=2135200.5729
- Stage= Ano4Stage Cost=1790538.5915
- Total scenario cost=7029612.8544
-
- Name=ForestChile10
- Probability=0.0545
- Leaf Node=Leaf10
- Tree node sequence:
- RootNode
- StageTwoMedium
- StageThreeMediumMedium
- Leaf10
- Stage= Ano1Stage Cost=1365070.3600
- Stage= Ano2Stage Cost=800841.9737
- Stage= Ano3Stage Cost=1185925.7911
- Stage= Ano4Stage Cost=828103.9779
- Total scenario cost=4179942.1028
-
- Name=ForestChile11
- Probability=0.0561
- Leaf Node=Leaf11
- Tree node sequence:
- RootNode
- StageTwoMedium
- StageThreeMediumLow
- Leaf11
- Stage= Ano1Stage Cost=1365070.3600
- Stage= Ano2Stage Cost=796856.3417
- Stage= Ano3Stage Cost=573952.6552
- Stage= Ano4Stage Cost=882834.9287
- Total scenario cost=3618714.2856
-
- Name=ForestChile12
- Probability=0.0561
- Leaf Node=Leaf12
- Tree node sequence:
- RootNode
- StageTwoMedium
- StageThreeMediumLow
- Leaf12
- Stage= Ano1Stage Cost=1365070.3600
- Stage= Ano2Stage Cost=800873.8614
- Stage= Ano3Stage Cost=573952.6552
- Stage= Ano4Stage Cost=657261.3553
- Total scenario cost=3397158.2319
-
- Name=ForestChile13
- Probability=0.0561
- Leaf Node=Leaf13
- Tree node sequence:
- RootNode
- StageTwoLow
- StageThreeLowHigh
- Leaf13
- Stage= Ano1Stage Cost=1365070.3600
- Stage= Ano2Stage Cost=372849.4556
- Stage= Ano3Stage Cost=1032967.4364
- Stage= Ano4Stage Cost=461821.9009
- Total scenario cost=3232709.1529
-
- Name=ForestChile14
- Probability=0.0561
- Leaf Node=Leaf14
- Tree node sequence:
- RootNode
- StageTwoLow
- StageThreeLowHigh
- Leaf14
- Stage= Ano1Stage Cost=1365070.3600
- Stage= Ano2Stage Cost=372849.4556
- Stage= Ano3Stage Cost=1032967.4364
- Stage= Ano4Stage Cost=332143.0070
- Total scenario cost=3103030.2589
-
- Name=ForestChile15
- Probability=0.0561
- Leaf Node=Leaf15
- Tree node sequence:
- RootNode
- StageTwoLow
- StageThreeLowMedium
- Leaf15
- Stage= Ano1Stage Cost=1365070.3600
- Stage= Ano2Stage Cost=374240.3480
- Stage= Ano3Stage Cost=381789.5310
- Stage= Ano4Stage Cost=466101.7506
- Total scenario cost=2587201.9896
-
- Name=ForestChile16
- Probability=0.0561
- Leaf Node=Leaf16
- Tree node sequence:
- RootNode
- StageTwoLow
- StageThreeLowMedium
- Leaf16
- Stage= Ano1Stage Cost=1365070.3600
- Stage= Ano2Stage Cost=375239.0422
- Stage= Ano3Stage Cost=380657.4021
- Stage= Ano4Stage Cost=306518.8538
- Total scenario cost=2427485.6581
-
- Name=ForestChile17
- Probability=0.0578
- Leaf Node=Leaf17
- Tree node sequence:
- RootNode
- StageTwoLow
- StageThreeLowLow
- Leaf17
- Stage= Ano1Stage Cost=1365070.3600
- Stage= Ano2Stage Cost=372797.0425
- Stage= Ano3Stage Cost=286295.5530
- Stage= Ano4Stage Cost=263516.3539
- Total scenario cost=2287679.3094
-
- Name=ForestChile18
- Probability=0.0578
- Leaf Node=Leaf18
- Tree node sequence:
- RootNode
- StageTwoLow
- StageThreeLowLow
- Leaf18
- Stage= Ano1Stage Cost=1365070.3600
- Stage= Ano2Stage Cost=372812.3632
- Stage= Ano3Stage Cost=286295.5530
- Stage= Ano4Stage Cost=161970.3317
- Total scenario cost=2186148.6080
-
- Name=ForestChile2
- Probability=0.0545
- Leaf Node=Leaf2
- Tree node sequence:
- RootNode
- StageTwoHigh
- StageThreeHighHigh
- Leaf2
- Stage= Ano1Stage Cost=1365070.3600
- Stage= Ano2Stage Cost=1738803.3300
- Stage= Ano3Stage Cost=2135200.5729
- Stage= Ano4Stage Cost=1476664.5068
- Total scenario cost=6715738.7697
-
- Name=ForestChile3
- Probability=0.0545
- Leaf Node=Leaf3
- Tree node sequence:
- RootNode
- StageTwoHigh
- StageThreeHighMedium
- Leaf3
- Stage= Ano1Stage Cost=1365070.3600
- Stage= Ano2Stage Cost=1628339.2200
- Stage= Ano3Stage Cost=1128914.8058
- Stage= Ano4Stage Cost=1905799.8375
- Total scenario cost=6028124.2233
-
- Name=ForestChile4
- Probability=0.0545
- Leaf Node=Leaf4
- Tree node sequence:
- RootNode
- StageTwoHigh
- StageThreeHighMedium
- Leaf4
- Stage= Ano1Stage Cost=1365070.3600
- Stage= Ano2Stage Cost=1628339.2200
- Stage= Ano3Stage Cost=1128914.8058
- Stage= Ano4Stage Cost=1557135.2411
- Total scenario cost=5679459.6269
-
- Name=ForestChile5
- Probability=0.0561
- Leaf Node=Leaf5
- Tree node sequence:
- RootNode
- StageTwoHigh
- StageThreeHighLow
- Leaf5
- Stage= Ano1Stage Cost=1365070.3600
- Stage= Ano2Stage Cost=1742509.6920
- Stage= Ano3Stage Cost=797164.3188
- Stage= Ano4Stage Cost=1835653.5402
- Total scenario cost=5740397.9110
-
- Name=ForestChile6
- Probability=0.0561
- Leaf Node=Leaf6
- Tree node sequence:
- RootNode
- StageTwoHigh
- StageThreeHighLow
- Leaf6
- Stage= Ano1Stage Cost=1365070.3600
- Stage= Ano2Stage Cost=1742509.6920
- Stage= Ano3Stage Cost=797164.3188
- Stage= Ano4Stage Cost=1224279.3341
- Total scenario cost=5129023.7049
-
- Name=ForestChile7
- Probability=0.0545
- Leaf Node=Leaf7
- Tree node sequence:
- RootNode
- StageTwoMedium
- StageThreeMediumHigh
- Leaf7
- Stage= Ano1Stage Cost=1365070.3600
- Stage= Ano2Stage Cost=800841.9737
- Stage= Ano3Stage Cost=1195069.1157
- Stage= Ano4Stage Cost=1811043.7832
- Total scenario cost=5172025.2326
-
- Name=ForestChile8
- Probability=0.0545
- Leaf Node=Leaf8
- Tree node sequence:
- RootNode
- StageTwoMedium
- StageThreeMediumHigh
- Leaf8
- Stage= Ano1Stage Cost=1365070.3600
- Stage= Ano2Stage Cost=800873.8614
- Stage= Ano3Stage Cost=1196200.4346
- Stage= Ano4Stage Cost=1187909.1086
- Total scenario cost=4550053.7645
-
- Name=ForestChile9
- Probability=0.0545
- Leaf Node=Leaf9
- Tree node sequence:
- RootNode
- StageTwoMedium
- StageThreeMediumMedium
- Leaf9
- Stage= Ano1Stage Cost=1365070.3600
- Stage= Ano2Stage Cost=799513.4297
- Stage= Ano3Stage Cost=1185925.7911
- Stage= Ano4Stage Cost=1198737.4704
- Total scenario cost=4549247.0513
-
-----------------------------------------------------
-
-***WARNING***: PH exiting with fixed or freed variables in the scenario tree queue whose statuses have not been pushed to the scenario instances. This is because these requests were placed in the queue after the most recent solve. If these statuses are pushed to the scenario instances, a new solution should be obtained in order to reflect accurate solution data within the scenario tree. This warning can be safely ignored in most cases.
-
-Total PH execution time=103.71 seconds
-
-Pushing fixed variable statuses to scenario instances
-Number of discrete variables fixed prior to ef creation=431 (total=507)
-Number of continuous variables fixed prior to ef creation=0 (total=260)
-Creating extensive form for remainder problem
-Solving extensive form
-EF solve completed and solution status is optimal
-EF solve termination condition is optimal
-EF objective: 4441880.10393
-EF gap: 440.39400
-EF bound: 4442320.49793
-
-Extensive form solution:
-----------------------------------------------------
-Tree Nodes:
-
- Name=Leaf1
- Stage=Ano4Stage
- Parent=StageThreeHighHigh
- Variables:
- delta[U18,Ano4]=1.0
- delta[U21,Ano4]=1.0
- delta[U22,Ano4]=1.0
- delta[U25,Ano4]=1.0
- delta[U4,Ano4]=1.0
- delta[U5,Ano4]=1.0
- delta[U7,Ano4]=1.0
- delta[U8,Ano4]=1.0
- f[C01,C09,Ano4]=8602.8
- f[C02,C03,Ano4]=6484.2
- f[C03,E1,Ano4]=6484.2
- f[C06,I3,Ano4]=5774.4
- f[C07,C08,Ano4]=7497.3
- f[C08,I2,Ano4]=13614.5
- f[C09,E1,Ano4]=16096.2
- f[I2,I3,Ano4]=13614.5
- f[I3,E1,Ano4]=19388.9
- gamma[C07,C08,Ano4]=1.0
- Derived Variables:
-
- Name=Leaf10
- Stage=Ano4Stage
- Parent=StageThreeMediumMedium
- Variables:
- delta[U13,Ano4]=1.0
- delta[U18,Ano4]=1.0
- delta[U21,Ano4]=1.0
- delta[U24,Ano4]=1.0
- delta[U25,Ano4]=1.0
- f[C03,E1,Ano4]=5853.4
- f[C05,I1,Ano4]=8391.6
- f[C06,I3,Ano4]=5774.4
- f[C07,C08,Ano4]=3767.3
- f[C08,I2,Ano4]=9884.5
- f[I1,I2,Ano4]=8391.6
- f[I2,I3,Ano4]=18276.1
- f[I3,E1,Ano4]=24050.5
- gamma[C07,C08,Ano4]=1.0
- gamma[C08,I2,Ano4]=1.0
- Derived Variables:
-
- Name=Leaf11
- Stage=Ano4Stage
- Parent=StageThreeMediumLow
- Variables:
- delta[U1,Ano4]=1.0
- delta[U18,Ano4]=1.0
- delta[U2,Ano4]=1.0
- delta[U23,Ano4]=1.0
- delta[U24,Ano4]=1.0
- f[C01,C09,Ano4]=7312.4
- f[C05,I1,Ano4]=14855.4
- f[C06,I3,Ano4]=5774.4
- f[C09,E1,Ano4]=7312.4
- f[I1,I2,Ano4]=14855.4
- f[I2,I3,Ano4]=14855.4
- f[I3,E1,Ano4]=20629.8
- gamma[C01,C09,Ano4]=1.0
- Derived Variables:
-
- Name=Leaf12
- Stage=Ano4Stage
- Parent=StageThreeMediumLow
- Variables:
- delta[U1,Ano4]=1.0
- delta[U18,Ano4]=1.0
- delta[U21,Ano4]=1.0
- delta[U24,Ano4]=1.0
- f[C01,C09,Ano4]=3656.2
- f[C05,I1,Ano4]=8391.6
- f[C06,I3,Ano4]=5774.4
- f[C08,I2,Ano4]=6117.2
- f[C09,E1,Ano4]=3656.2
- f[I1,I2,Ano4]=8391.6
- f[I2,I3,Ano4]=14508.8
- f[I3,E1,Ano4]=20283.2
- gamma[C01,C09,Ano4]=1.0
- gamma[C08,I2,Ano4]=1.0
- Derived Variables:
-
- Name=Leaf13
- Stage=Ano4Stage
- Parent=StageThreeLowHigh
- Variables:
- delta[U15,Ano4]=1.0
- delta[U23,Ano4]=1.0
- delta[U5,Ano4]=1.0
- f[C03,E1,Ano4]=7560.0
- f[C04,C03,Ano4]=7560.0
- f[C05,I1,Ano4]=6463.8
- f[C09,E1,Ano4]=3728.6
- f[I1,I2,Ano4]=6463.8
- f[I2,I3,Ano4]=6463.8
- f[I3,E1,Ano4]=6463.8
- Derived Variables:
-
- Name=Leaf14
- Stage=Ano4Stage
- Parent=StageThreeLowHigh
- Variables:
- delta[U15,Ano4]=1.0
- delta[U23,Ano4]=1.0
- delta[U5,Ano4]=1.0
- f[C03,E1,Ano4]=7560.0
- f[C04,C03,Ano4]=7560.0
- f[C05,I1,Ano4]=6463.8
- f[C09,E1,Ano4]=3728.6
- f[I1,I2,Ano4]=6463.8
- f[I2,I3,Ano4]=6463.8
- f[I3,E1,Ano4]=6463.8
- Derived Variables:
-
- Name=Leaf15
- Stage=Ano4Stage
- Parent=StageThreeLowMedium
- Variables:
- delta[U15,Ano4]=1.0
- delta[U5,Ano4]=1.0
- delta[U6,Ano4]=1.0
- f[C02,C03,Ano4]=6548.4
- f[C03,E1,Ano4]=14108.4
- f[C04,C03,Ano4]=7560.0
- f[C09,E1,Ano4]=3728.6
- Derived Variables:
-
- Name=Leaf16
- Stage=Ano4Stage
- Parent=StageThreeLowMedium
- Variables:
- delta[U5,Ano4]=1.0
- delta[U6,Ano4]=1.0
- delta[U7,Ano4]=1.0
- f[C02,C03,Ano4]=13032.6
- f[C03,E1,Ano4]=13032.6
- f[C09,E1,Ano4]=3728.6
- Derived Variables:
-
- Name=Leaf17
- Stage=Ano4Stage
- Parent=StageThreeLowLow
- Variables:
- delta[U10,Ano4]=1.0
- delta[U3,Ano4]=1.0
- delta[U5,Ano4]=1.0
- f[C02,C03,Ano4]=8217.6
- f[C03,E1,Ano4]=8217.6
- f[C09,E1,Ano4]=7384.8
- Derived Variables:
-
- Name=Leaf18
- Stage=Ano4Stage
- Parent=StageThreeLowLow
- Variables:
- delta[U14,Ano4]=1.0
- delta[U3,Ano4]=1.0
- delta[U5,Ano4]=1.0
- f[C05,I1,Ano4]=7200.9
- f[C09,E1,Ano4]=7384.8
- f[I1,I2,Ano4]=7200.9
- f[I2,I3,Ano4]=7200.9
- f[I3,E1,Ano4]=7200.9
- Derived Variables:
-
- Name=Leaf2
- Stage=Ano4Stage
- Parent=StageThreeHighHigh
- Variables:
- delta[U18,Ano4]=1.0
- delta[U21,Ano4]=1.0
- delta[U22,Ano4]=1.0
- delta[U25,Ano4]=1.0
- delta[U4,Ano4]=1.0
- delta[U5,Ano4]=1.0
- delta[U7,Ano4]=1.0
- delta[U8,Ano4]=1.0
- f[C01,C09,Ano4]=8602.8
- f[C02,C03,Ano4]=6484.2
- f[C03,E1,Ano4]=6484.2
- f[C06,I3,Ano4]=5774.4
- f[C07,C08,Ano4]=7497.3
- f[C08,I2,Ano4]=13614.5
- f[C09,E1,Ano4]=16096.2
- f[I2,I3,Ano4]=13614.5
- f[I3,E1,Ano4]=19388.9
- gamma[C07,C08,Ano4]=1.0
- Derived Variables:
-
- Name=Leaf3
- Stage=Ano4Stage
- Parent=StageThreeHighMedium
- Variables:
- delta[U14,Ano4]=1.0
- delta[U20,Ano4]=1.0
- delta[U21,Ano4]=1.0
- delta[U23,Ano4]=1.0
- delta[U25,Ano4]=1.0
- delta[U3,Ano4]=1.0
- delta[U4,Ano4]=1.0
- delta[U5,Ano4]=1.0
- delta[U8,Ano4]=1.0
- f[C01,C09,Ano4]=8602.8
- f[C05,I1,Ano4]=13664.7
- f[C07,C08,Ano4]=3767.3
- f[C08,I2,Ano4]=14054.9
- f[C09,E1,Ano4]=19752.4
- f[I1,I2,Ano4]=13664.7
- f[I2,I3,Ano4]=27719.6
- f[I3,E1,Ano4]=27719.6
- gamma[C07,C08,Ano4]=1.0
- gamma[C08,I2,Ano4]=1.0
- Derived Variables:
-
- Name=Leaf4
- Stage=Ano4Stage
- Parent=StageThreeHighMedium
- Variables:
- delta[U14,Ano4]=1.0
- delta[U20,Ano4]=1.0
- delta[U21,Ano4]=1.0
- delta[U23,Ano4]=1.0
- delta[U25,Ano4]=1.0
- delta[U3,Ano4]=1.0
- delta[U4,Ano4]=1.0
- delta[U5,Ano4]=1.0
- delta[U8,Ano4]=1.0
- f[C01,C09,Ano4]=8602.8
- f[C05,I1,Ano4]=13664.7
- f[C07,C08,Ano4]=3767.3
- f[C08,I2,Ano4]=14054.9
- f[C09,E1,Ano4]=19752.4
- f[I1,I2,Ano4]=13664.7
- f[I2,I3,Ano4]=27719.6
- f[I3,E1,Ano4]=27719.6
- gamma[C07,C08,Ano4]=1.0
- gamma[C08,I2,Ano4]=1.0
- Derived Variables:
-
- Name=Leaf5
- Stage=Ano4Stage
- Parent=StageThreeHighLow
- Variables:
- delta[U1,Ano4]=1.0
- delta[U2,Ano4]=1.0
- delta[U22,Ano4]=1.0
- delta[U23,Ano4]=1.0
- delta[U25,Ano4]=1.0
- delta[U3,Ano4]=1.0
- delta[U4,Ano4]=1.0
- delta[U5,Ano4]=1.0
- delta[U7,Ano4]=1.0
- delta[U8,Ano4]=1.0
- f[C01,C09,Ano4]=15915.2
- f[C02,C03,Ano4]=6484.2
- f[C03,E1,Ano4]=6484.2
- f[C05,I1,Ano4]=6463.8
- f[C07,C08,Ano4]=7497.3
- f[C08,I2,Ano4]=7497.3
- f[C09,E1,Ano4]=27064.8
- f[I1,I2,Ano4]=6463.8
- f[I2,I3,Ano4]=13961.1
- f[I3,E1,Ano4]=13961.1
- gamma[C01,C09,Ano4]=1.0
- gamma[C07,C08,Ano4]=1.0
- Derived Variables:
-
- Name=Leaf6
- Stage=Ano4Stage
- Parent=StageThreeHighLow
- Variables:
- delta[U14,Ano4]=1.0
- delta[U23,Ano4]=1.0
- delta[U3,Ano4]=1.0
- delta[U4,Ano4]=1.0
- delta[U5,Ano4]=1.0
- delta[U7,Ano4]=1.0
- delta[U8,Ano4]=1.0
- f[C01,C09,Ano4]=8602.8
- f[C02,C03,Ano4]=6484.2
- f[C03,E1,Ano4]=6484.2
- f[C05,I1,Ano4]=13664.7
- f[C09,E1,Ano4]=19752.4
- f[I1,I2,Ano4]=13664.7
- f[I2,I3,Ano4]=13664.7
- f[I3,E1,Ano4]=13664.7
- gamma[C01,C09,Ano4]=1.0
- Derived Variables:
-
- Name=Leaf7
- Stage=Ano4Stage
- Parent=StageThreeMediumHigh
- Variables:
- delta[U1,Ano4]=1.0
- delta[U13,Ano4]=1.0
- delta[U14,Ano4]=1.0
- delta[U2,Ano4]=1.0
- delta[U21,Ano4]=1.0
- delta[U23,Ano4]=1.0
- delta[U24,Ano4]=1.0
- delta[U4,Ano4]=1.0
- f[C01,C09,Ano4]=15915.2
- f[C03,E1,Ano4]=5853.4
- f[C05,I1,Ano4]=22056.3
- f[C08,I2,Ano4]=6117.2
- f[C09,E1,Ano4]=15915.2
- f[I1,I2,Ano4]=22056.3
- f[I2,I3,Ano4]=28173.5
- f[I3,E1,Ano4]=28173.5
- gamma[C01,C09,Ano4]=1.0
- Derived Variables:
-
- Name=Leaf8
- Stage=Ano4Stage
- Parent=StageThreeMediumHigh
- Variables:
- delta[U1,Ano4]=1.0
- delta[U13,Ano4]=1.0
- delta[U2,Ano4]=1.0
- delta[U21,Ano4]=1.0
- delta[U22,Ano4]=1.0
- delta[U23,Ano4]=1.0
- delta[U25,Ano4]=1.0
- delta[U4,Ano4]=1.0
- f[C01,C09,Ano4]=15915.2
- f[C03,E1,Ano4]=5853.4
- f[C05,I1,Ano4]=6463.8
- f[C07,C08,Ano4]=7497.3
- f[C08,I2,Ano4]=13614.5
- f[C09,E1,Ano4]=15915.2
- f[I1,I2,Ano4]=6463.8
- f[I2,I3,Ano4]=20078.3
- f[I3,E1,Ano4]=20078.3
- gamma[C01,C09,Ano4]=1.0
- gamma[C07,C08,Ano4]=1.0
- Derived Variables:
-
- Name=Leaf9
- Stage=Ano4Stage
- Parent=StageThreeMediumMedium
- Variables:
- delta[U13,Ano4]=1.0
- delta[U18,Ano4]=1.0
- delta[U20,Ano4]=1.0
- delta[U21,Ano4]=1.0
- delta[U22,Ano4]=1.0
- delta[U23,Ano4]=1.0
- delta[U25,Ano4]=1.0
- f[C03,E1,Ano4]=5853.4
- f[C05,I1,Ano4]=6463.8
- f[C06,I3,Ano4]=5774.4
- f[C07,C08,Ano4]=7497.3
- f[C08,I2,Ano4]=17784.9
- f[I1,I2,Ano4]=6463.8
- f[I2,I3,Ano4]=24248.7
- f[I3,E1,Ano4]=30023.1
- gamma[C07,C08,Ano4]=1.0
- gamma[C08,I2,Ano4]=1.0
- Derived Variables:
-
- Name=RootNode
- Stage=Ano1Stage
- Parent=None
- Variables:
- delta[U11,Ano1]=1.0
- delta[U12,Ano1]=1.0
- delta[U16,Ano1]=1.0
- delta[U17,Ano1]=1.0
- delta[U19,Ano1]=1.0
- f[C03,E1,Ano1]=22753.6
- f[C04,C03,Ano1]=14880.0
- f[C06,I3,Ano1]=9510.8
- f[I3,E1,Ano1]=9510.8
- gamma[C04,C03,Ano1]=1.0
- gamma[C06,I3,Ano1]=1.0
- Derived Variables:
-
- Name=StageThreeHighHigh
- Stage=Ano3Stage
- Parent=StageTwoHigh
- Variables:
- delta[U1,Ano3]=1.0
- delta[U14,Ano3]=1.0
- delta[U2,Ano3]=1.0
- delta[U20,Ano3]=1.0
- delta[U23,Ano3]=1.0
- delta[U24,Ano3]=1.0
- delta[U3,Ano3]=1.0
- f[C01,C09,Ano3]=7312.4
- f[C05,I1,Ano3]=22056.3
- f[C08,I2,Ano3]=4170.4
- f[C09,E1,Ano3]=10968.6
- f[I1,I2,Ano3]=22056.3
- f[I2,I3,Ano3]=26226.7
- f[I3,E1,Ano3]=26226.7
- gamma[C01,C09,Ano3]=1.0
- gamma[C08,I2,Ano3]=1.0
- Derived Variables:
-
- Name=StageThreeHighLow
- Stage=Ano3Stage
- Parent=StageTwoHigh
- Variables:
- delta[U18,Ano3]=1.0
- delta[U20,Ano3]=1.0
- delta[U21,Ano3]=1.0
- delta[U24,Ano3]=1.0
- f[C05,I1,Ano3]=8391.6
- f[C06,I3,Ano3]=5774.4
- f[C08,I2,Ano3]=10287.6
- f[I1,I2,Ano3]=8391.6
- f[I2,I3,Ano3]=18679.2
- f[I3,E1,Ano3]=24453.6
- gamma[C08,I2,Ano3]=1.0
- Derived Variables:
-
- Name=StageThreeHighMedium
- Stage=Ano3Stage
- Parent=StageTwoHigh
- Variables:
- delta[U1,Ano3]=1.0
- delta[U18,Ano3]=1.0
- delta[U2,Ano3]=1.0
- delta[U24,Ano3]=1.0
- delta[U7,Ano3]=1.0
- f[C01,C09,Ano3]=7312.4
- f[C02,C03,Ano3]=6484.2
- f[C03,E1,Ano3]=6484.2
- f[C05,I1,Ano3]=8391.6
- f[C06,I3,Ano3]=5774.4
- f[C09,E1,Ano3]=7312.4
- f[I1,I2,Ano3]=8391.6
- f[I2,I3,Ano3]=8391.6
- f[I3,E1,Ano3]=14166.0
- gamma[C01,C09,Ano3]=1.0
- Derived Variables:
-
- Name=StageThreeLowHigh
- Stage=Ano3Stage
- Parent=StageTwoLow
- Variables:
- delta[U10,Ano3]=1.0
- delta[U6,Ano3]=1.0
- delta[U7,Ano3]=1.0
- delta[U9,Ano3]=1.0
- f[C02,C03,Ano3]=31971.6
- f[C03,E1,Ano3]=31971.6
- Derived Variables:
-
- Name=StageThreeLowLow
- Stage=Ano3Stage
- Parent=StageTwoLow
- Variables:
- delta[U15,Ano3]=1.0
- delta[U6,Ano3]=1.0
- delta[U7,Ano3]=1.0
- f[C02,C03,Ano3]=13032.6
- f[C03,E1,Ano3]=20592.6
- f[C04,C03,Ano3]=7560.0
- Derived Variables:
-
- Name=StageThreeLowMedium
- Stage=Ano3Stage
- Parent=StageTwoLow
- Variables:
- delta[U10,Ano3]=1.0
- delta[U9,Ano3]=1.0
- f[C02,C03,Ano3]=18939.0
- f[C03,E1,Ano3]=18939.0
- Derived Variables:
-
- Name=StageThreeMediumHigh
- Stage=Ano3Stage
- Parent=StageTwoMedium
- Variables:
- delta[U10,Ano3]=1.0
- delta[U18,Ano3]=1.0
- delta[U20,Ano3]=1.0
- delta[U6,Ano3]=1.0
- delta[U7,Ano3]=1.0
- f[C02,C03,Ano3]=21250.2
- f[C03,E1,Ano3]=21250.2
- f[C06,I3,Ano3]=5774.4
- f[C08,I2,Ano3]=4170.4
- f[I2,I3,Ano3]=4170.4
- f[I3,E1,Ano3]=9944.8
- gamma[C08,I2,Ano3]=1.0
- Derived Variables:
-
- Name=StageThreeMediumLow
- Stage=Ano3Stage
- Parent=StageTwoMedium
- Variables:
- delta[U10,Ano3]=1.0
- delta[U13,Ano3]=1.0
- delta[U14,Ano3]=1.0
- delta[U7,Ano3]=1.0
- f[C02,C03,Ano3]=14701.8
- f[C03,E1,Ano3]=20555.2
- f[C05,I1,Ano3]=7200.9
- f[I1,I2,Ano3]=7200.9
- f[I2,I3,Ano3]=7200.9
- f[I3,E1,Ano3]=7200.9
- Derived Variables:
-
- Name=StageThreeMediumMedium
- Stage=Ano3Stage
- Parent=StageTwoMedium
- Variables:
- delta[U10,Ano3]=1.0
- delta[U14,Ano3]=1.0
- delta[U4,Ano3]=1.0
- delta[U6,Ano3]=1.0
- delta[U7,Ano3]=1.0
- f[C01,C09,Ano3]=8602.8
- f[C02,C03,Ano3]=21250.2
- f[C03,E1,Ano3]=21250.2
- f[C05,I1,Ano3]=7200.9
- f[C09,E1,Ano3]=8602.8
- f[I1,I2,Ano3]=7200.9
- f[I2,I3,Ano3]=7200.9
- f[I3,E1,Ano3]=7200.9
- gamma[C01,C09,Ano3]=1.0
- Derived Variables:
-
- Name=StageTwoHigh
- Stage=Ano2Stage
- Parent=RootNode
- Variables:
- delta[U10,Ano2]=1.0
- delta[U13,Ano2]=1.0
- delta[U15,Ano2]=1.0
- delta[U6,Ano2]=1.0
- delta[U9,Ano2]=1.0
- f[C02,C03,Ano2]=25487.4
- f[C03,E1,Ano2]=38900.8
- f[C04,C03,Ano2]=7560.0
- gamma[C02,C09,Ano2]=1.0
- gamma[C09,E1,Ano2]=1.0
- Derived Variables:
- z[E1,Ano2]=38900.8
-
- Name=StageTwoLow
- Stage=Ano2Stage
- Parent=RootNode
- Variables:
- delta[U13,Ano2]=1.0
- delta[U18,Ano2]=1.0
- delta[U8,Ano2]=1.0
- f[C03,E1,Ano2]=5853.4
- f[C06,I3,Ano2]=5774.4
- f[C09,E1,Ano2]=3764.8
- f[I3,E1,Ano2]=5774.4
- gamma[C09,C02,Ano2]=1.0
- gamma[C09,E1,Ano2]=1.0
- Derived Variables:
- z[E1,Ano2]=15392.6
-
- Name=StageTwoMedium
- Stage=Ano2Stage
- Parent=RootNode
- Variables:
- delta[U15,Ano2]=1.0
- delta[U3,Ano2]=1.0
- delta[U5,Ano2]=1.0
- delta[U8,Ano2]=1.0
- delta[U9,Ano2]=1.0
- f[C02,C03,Ano2]=10721.4
- f[C03,E1,Ano2]=18281.4
- f[C04,C03,Ano2]=7560.0
- f[C09,E1,Ano2]=11149.6
- gamma[C02,C09,Ano2]=1.0
- gamma[C09,E1,Ano2]=1.0
- Derived Variables:
- z[E1,Ano2]=29431.0
-
-
-Extensive form costs:
-Scenario Tree Costs
-----------------------------------------------------
-Tree Nodes:
-
- Name=Leaf1
- Stage=Ano4Stage
- Parent=StageThreeHighHigh
- Conditional probability=0.5000
- Children:
- None
- Scenarios:
- ForestChile1
- Expected cost of (sub)tree rooted at node=1922879.3561
-
- Name=Leaf10
- Stage=Ano4Stage
- Parent=StageThreeMediumMedium
- Conditional probability=0.5000
- Children:
- None
- Scenarios:
- ForestChile10
- Expected cost of (sub)tree rooted at node=821247.0258
-
- Name=Leaf11
- Stage=Ano4Stage
- Parent=StageThreeMediumLow
- Conditional probability=0.5000
- Children:
- None
- Scenarios:
- ForestChile11
- Expected cost of (sub)tree rooted at node=874306.5253
-
- Name=Leaf12
- Stage=Ano4Stage
- Parent=StageThreeMediumLow
- Conditional probability=0.5000
- Children:
- None
- Scenarios:
- ForestChile12
- Expected cost of (sub)tree rooted at node=647504.3683
-
- Name=Leaf13
- Stage=Ano4Stage
- Parent=StageThreeLowHigh
- Conditional probability=0.5000
- Children:
- None
- Scenarios:
- ForestChile13
- Expected cost of (sub)tree rooted at node=460877.7293
-
- Name=Leaf14
- Stage=Ano4Stage
- Parent=StageThreeLowHigh
- Conditional probability=0.5000
- Children:
- None
- Scenarios:
- ForestChile14
- Expected cost of (sub)tree rooted at node=331462.7333
-
- Name=Leaf15
- Stage=Ano4Stage
- Parent=StageThreeLowMedium
- Conditional probability=0.5000
- Children:
- None
- Scenarios:
- ForestChile15
- Expected cost of (sub)tree rooted at node=465157.5790
-
- Name=Leaf16
- Stage=Ano4Stage
- Parent=StageThreeLowMedium
- Conditional probability=0.5000
- Children:
- None
- Scenarios:
- ForestChile16
- Expected cost of (sub)tree rooted at node=306518.8538
-
- Name=Leaf17
- Stage=Ano4Stage
- Parent=StageThreeLowLow
- Conditional probability=0.5000
- Children:
- None
- Scenarios:
- ForestChile17
- Expected cost of (sub)tree rooted at node=344738.6179
-
- Name=Leaf18
- Stage=Ano4Stage
- Parent=StageThreeLowLow
- Conditional probability=0.5000
- Children:
- None
- Scenarios:
- ForestChile18
- Expected cost of (sub)tree rooted at node=160721.2048
-
- Name=Leaf2
- Stage=Ano4Stage
- Parent=StageThreeHighHigh
- Conditional probability=0.5000
- Children:
- None
- Scenarios:
- ForestChile2
- Expected cost of (sub)tree rooted at node=1586327.5394
-
- Name=Leaf3
- Stage=Ano4Stage
- Parent=StageThreeHighMedium
- Conditional probability=0.5000
- Children:
- None
- Scenarios:
- ForestChile3
- Expected cost of (sub)tree rooted at node=1957155.1974
-
- Name=Leaf4
- Stage=Ano4Stage
- Parent=StageThreeHighMedium
- Conditional probability=0.5000
- Children:
- None
- Scenarios:
- ForestChile4
- Expected cost of (sub)tree rooted at node=1541870.1414
-
- Name=Leaf5
- Stage=Ano4Stage
- Parent=StageThreeHighLow
- Conditional probability=0.5000
- Children:
- None
- Scenarios:
- ForestChile5
- Expected cost of (sub)tree rooted at node=1814022.6558
-
- Name=Leaf6
- Stage=Ano4Stage
- Parent=StageThreeHighLow
- Conditional probability=0.5000
- Children:
- None
- Scenarios:
- ForestChile6
- Expected cost of (sub)tree rooted at node=1243192.4262
-
- Name=Leaf7
- Stage=Ano4Stage
- Parent=StageThreeMediumHigh
- Conditional probability=0.5000
- Children:
- None
- Scenarios:
- ForestChile7
- Expected cost of (sub)tree rooted at node=1810784.7549
-
- Name=Leaf8
- Stage=Ano4Stage
- Parent=StageThreeMediumHigh
- Conditional probability=0.5000
- Children:
- None
- Scenarios:
- ForestChile8
- Expected cost of (sub)tree rooted at node=1175545.5164
-
- Name=Leaf9
- Stage=Ano4Stage
- Parent=StageThreeMediumMedium
- Conditional probability=0.5000
- Children:
- None
- Scenarios:
- ForestChile9
- Expected cost of (sub)tree rooted at node=1186021.0204
-
- Name=RootNode
- Stage=Ano1Stage
- Parent=None
- Conditional probability=1.0000
- Children:
- StageTwoHigh
- StageTwoLow
- StageTwoMedium
- Scenarios:
- ForestChile1
- ForestChile10
- ForestChile11
- ForestChile12
- ForestChile13
- ForestChile14
- ForestChile15
- ForestChile16
- ForestChile17
- ForestChile18
- ForestChile2
- ForestChile3
- ForestChile4
- ForestChile5
- ForestChile6
- ForestChile7
- ForestChile8
- ForestChile9
- Expected cost of (sub)tree rooted at node=4441880.1039
-
- Name=StageThreeHighHigh
- Stage=Ano3Stage
- Parent=StageTwoHigh
- Conditional probability=0.3300
- Children:
- Leaf1
- Leaf2
- Scenarios:
- ForestChile1
- ForestChile2
- Expected cost of (sub)tree rooted at node=3544917.6725
-
- Name=StageThreeHighLow
- Stage=Ano3Stage
- Parent=StageTwoHigh
- Conditional probability=0.3400
- Children:
- Leaf5
- Leaf6
- Scenarios:
- ForestChile5
- ForestChile6
- Expected cost of (sub)tree rooted at node=2325771.8598
-
- Name=StageThreeHighMedium
- Stage=Ano3Stage
- Parent=StageTwoHigh
- Conditional probability=0.3300
- Children:
- Leaf3
- Leaf4
- Scenarios:
- ForestChile3
- ForestChile4
- Expected cost of (sub)tree rooted at node=2882498.0310
-
- Name=StageThreeLowHigh
- Stage=Ano3Stage
- Parent=StageTwoLow
- Conditional probability=0.3300
- Children:
- Leaf13
- Leaf14
- Scenarios:
- ForestChile13
- ForestChile14
- Expected cost of (sub)tree rooted at node=1429137.6677
-
- Name=StageThreeLowLow
- Stage=Ano3Stage
- Parent=StageTwoLow
- Conditional probability=0.3400
- Children:
- Leaf17
- Leaf18
- Scenarios:
- ForestChile17
- ForestChile18
- Expected cost of (sub)tree rooted at node=544512.7608
-
- Name=StageThreeLowMedium
- Stage=Ano3Stage
- Parent=StageTwoLow
- Conditional probability=0.3300
- Children:
- Leaf15
- Leaf16
- Scenarios:
- ForestChile15
- ForestChile16
- Expected cost of (sub)tree rooted at node=767627.7474
-
- Name=StageThreeMediumHigh
- Stage=Ano3Stage
- Parent=StageTwoMedium
- Conditional probability=0.3300
- Children:
- Leaf7
- Leaf8
- Scenarios:
- ForestChile7
- ForestChile8
- Expected cost of (sub)tree rooted at node=2689365.5703
-
- Name=StageThreeMediumLow
- Stage=Ano3Stage
- Parent=StageTwoMedium
- Conditional probability=0.3400
- Children:
- Leaf11
- Leaf12
- Scenarios:
- ForestChile11
- ForestChile12
- Expected cost of (sub)tree rooted at node=1334858.1021
-
- Name=StageThreeMediumMedium
- Stage=Ano3Stage
- Parent=StageTwoMedium
- Conditional probability=0.3300
- Children:
- Leaf10
- Leaf9
- Scenarios:
- ForestChile10
- ForestChile9
- Expected cost of (sub)tree rooted at node=2190238.4403
-
- Name=StageTwoHigh
- Stage=Ano2Stage
- Parent=RootNode
- Conditional probability=0.3300
- Children:
- StageThreeHighHigh
- StageThreeHighLow
- StageThreeHighMedium
- Scenarios:
- ForestChile1
- ForestChile2
- ForestChile3
- ForestChile4
- ForestChile5
- ForestChile6
- Expected cost of (sub)tree rooted at node=4859925.4765
-
- Name=StageTwoLow
- Stage=Ano2Stage
- Parent=RootNode
- Conditional probability=0.3400
- Children:
- StageThreeLowHigh
- StageThreeLowLow
- StageThreeLowMedium
- Scenarios:
- ForestChile13
- ForestChile14
- ForestChile15
- ForestChile16
- ForestChile17
- ForestChile18
- Expected cost of (sub)tree rooted at node=1287614.8016
-
- Name=StageTwoMedium
- Stage=Ano2Stage
- Parent=RootNode
- Conditional probability=0.3300
- Children:
- StageThreeMediumHigh
- StageThreeMediumLow
- StageThreeMediumMedium
- Scenarios:
- ForestChile10
- ForestChile11
- ForestChile12
- ForestChile7
- ForestChile8
- ForestChile9
- Expected cost of (sub)tree rooted at node=3137106.9822
-
-----------------------------------------------------
-Scenarios:
-
- Name=ForestChile1
- Probability=0.0545
- Leaf Node=Leaf1
- Tree node sequence:
- RootNode
- StageTwoHigh
- StageThreeHighHigh
- Leaf1
- Stage= Ano1Stage Cost=1365070.3600
- Stage= Ano2Stage Cost=1948115.8620
- Stage= Ano3Stage Cost=1790314.2248
- Stage= Ano4Stage Cost=1922879.3561
- Total scenario cost=7026379.8029
-
- Name=ForestChile10
- Probability=0.0545
- Leaf Node=Leaf10
- Tree node sequence:
- RootNode
- StageTwoMedium
- StageThreeMediumMedium
- Leaf10
- Stage= Ano1Stage Cost=1365070.3600
- Stage= Ano2Stage Cost=1072985.9040
- Stage= Ano3Stage Cost=1186604.4172
- Stage= Ano4Stage Cost=821247.0258
- Total scenario cost=4445907.7070
-
- Name=ForestChile11
- Probability=0.0561
- Leaf Node=Leaf11
- Tree node sequence:
- RootNode
- StageTwoMedium
- StageThreeMediumLow
- Leaf11
- Stage= Ano1Stage Cost=1365070.3600
- Stage= Ano2Stage Cost=1072985.9040
- Stage= Ano3Stage Cost=573952.6552
- Stage= Ano4Stage Cost=874306.5253
- Total scenario cost=3886315.4446
-
- Name=ForestChile12
- Probability=0.0561
- Leaf Node=Leaf12
- Tree node sequence:
- RootNode
- StageTwoMedium
- StageThreeMediumLow
- Leaf12
- Stage= Ano1Stage Cost=1365070.3600
- Stage= Ano2Stage Cost=1072985.9040
- Stage= Ano3Stage Cost=573952.6552
- Stage= Ano4Stage Cost=647504.3683
- Total scenario cost=3659513.2875
-
- Name=ForestChile13
- Probability=0.0561
- Leaf Node=Leaf13
- Tree node sequence:
- RootNode
- StageTwoLow
- StageThreeLowHigh
- Leaf13
- Stage= Ano1Stage Cost=1365070.3600
- Stage= Ano2Stage Cost=377547.8760
- Stage= Ano3Stage Cost=1032967.4364
- Stage= Ano4Stage Cost=460877.7293
- Total scenario cost=3236463.4017
-
- Name=ForestChile14
- Probability=0.0561
- Leaf Node=Leaf14
- Tree node sequence:
- RootNode
- StageTwoLow
- StageThreeLowHigh
- Leaf14
- Stage= Ano1Stage Cost=1365070.3600
- Stage= Ano2Stage Cost=377547.8760
- Stage= Ano3Stage Cost=1032967.4364
- Stage= Ano4Stage Cost=331462.7333
- Total scenario cost=3107048.4057
-
- Name=ForestChile15
- Probability=0.0561
- Leaf Node=Leaf15
- Tree node sequence:
- RootNode
- StageTwoLow
- StageThreeLowMedium
- Leaf15
- Stage= Ano1Stage Cost=1365070.3600
- Stage= Ano2Stage Cost=377547.8760
- Stage= Ano3Stage Cost=381789.5310
- Stage= Ano4Stage Cost=465157.5790
- Total scenario cost=2589565.3460
-
- Name=ForestChile16
- Probability=0.0561
- Leaf Node=Leaf16
- Tree node sequence:
- RootNode
- StageTwoLow
- StageThreeLowMedium
- Leaf16
- Stage= Ano1Stage Cost=1365070.3600
- Stage= Ano2Stage Cost=377547.8760
- Stage= Ano3Stage Cost=381789.5310
- Stage= Ano4Stage Cost=306518.8538
- Total scenario cost=2430926.6208
-
- Name=ForestChile17
- Probability=0.0578
- Leaf Node=Leaf17
- Tree node sequence:
- RootNode
- StageTwoLow
- StageThreeLowLow
- Leaf17
- Stage= Ano1Stage Cost=1365070.3600
- Stage= Ano2Stage Cost=377547.8760
- Stage= Ano3Stage Cost=291782.8494
- Stage= Ano4Stage Cost=344738.6179
- Total scenario cost=2379139.7033
-
- Name=ForestChile18
- Probability=0.0578
- Leaf Node=Leaf18
- Tree node sequence:
- RootNode
- StageTwoLow
- StageThreeLowLow
- Leaf18
- Stage= Ano1Stage Cost=1365070.3600
- Stage= Ano2Stage Cost=377547.8760
- Stage= Ano3Stage Cost=291782.8494
- Stage= Ano4Stage Cost=160721.2048
- Total scenario cost=2195122.2902
-
- Name=ForestChile2
- Probability=0.0545
- Leaf Node=Leaf2
- Tree node sequence:
- RootNode
- StageTwoHigh
- StageThreeHighHigh
- Leaf2
- Stage= Ano1Stage Cost=1365070.3600
- Stage= Ano2Stage Cost=1948115.8620
- Stage= Ano3Stage Cost=1790314.2248
- Stage= Ano4Stage Cost=1586327.5394
- Total scenario cost=6689827.9862
-
- Name=ForestChile3
- Probability=0.0545
- Leaf Node=Leaf3
- Tree node sequence:
- RootNode
- StageTwoHigh
- StageThreeHighMedium
- Leaf3
- Stage= Ano1Stage Cost=1365070.3600
- Stage= Ano2Stage Cost=1948115.8620
- Stage= Ano3Stage Cost=1132985.3616
- Stage= Ano4Stage Cost=1957155.1974
- Total scenario cost=6403326.7810
-
- Name=ForestChile4
- Probability=0.0545
- Leaf Node=Leaf4
- Tree node sequence:
- RootNode
- StageTwoHigh
- StageThreeHighMedium
- Leaf4
- Stage= Ano1Stage Cost=1365070.3600
- Stage= Ano2Stage Cost=1948115.8620
- Stage= Ano3Stage Cost=1132985.3616
- Stage= Ano4Stage Cost=1541870.1414
- Total scenario cost=5988041.7250
-
- Name=ForestChile5
- Probability=0.0561
- Leaf Node=Leaf5
- Tree node sequence:
- RootNode
- StageTwoHigh
- StageThreeHighLow
- Leaf5
- Stage= Ano1Stage Cost=1365070.3600
- Stage= Ano2Stage Cost=1948115.8620
- Stage= Ano3Stage Cost=797164.3188
- Stage= Ano4Stage Cost=1814022.6558
- Total scenario cost=5924373.1966
-
- Name=ForestChile6
- Probability=0.0561
- Leaf Node=Leaf6
- Tree node sequence:
- RootNode
- StageTwoHigh
- StageThreeHighLow
- Leaf6
- Stage= Ano1Stage Cost=1365070.3600
- Stage= Ano2Stage Cost=1948115.8620
- Stage= Ano3Stage Cost=797164.3188
- Stage= Ano4Stage Cost=1243192.4262
- Total scenario cost=5353542.9670
-
- Name=ForestChile7
- Probability=0.0545
- Leaf Node=Leaf7
- Tree node sequence:
- RootNode
- StageTwoMedium
- StageThreeMediumHigh
- Leaf7
- Stage= Ano1Stage Cost=1365070.3600
- Stage= Ano2Stage Cost=1072985.9040
- Stage= Ano3Stage Cost=1196200.4346
- Stage= Ano4Stage Cost=1810784.7549
- Total scenario cost=5445041.4535
-
- Name=ForestChile8
- Probability=0.0545
- Leaf Node=Leaf8
- Tree node sequence:
- RootNode
- StageTwoMedium
- StageThreeMediumHigh
- Leaf8
- Stage= Ano1Stage Cost=1365070.3600
- Stage= Ano2Stage Cost=1072985.9040
- Stage= Ano3Stage Cost=1196200.4346
- Stage= Ano4Stage Cost=1175545.5164
- Total scenario cost=4809802.2150
-
- Name=ForestChile9
- Probability=0.0545
- Leaf Node=Leaf9
- Tree node sequence:
- RootNode
- StageTwoMedium
- StageThreeMediumMedium
- Leaf9
- Stage= Ano1Stage Cost=1365070.3600
- Stage= Ano2Stage Cost=1072985.9040
- Stage= Ano3Stage Cost=1186604.4172
- Stage= Ano4Stage Cost=1186021.0204
- Total scenario cost=4810681.7017
-
-----------------------------------------------------
-
-Total execution time=127.34 seconds
diff --git a/pyomo/pysp/tests/unit/baselines/forestry_linearized_cplex_darwin.baseline b/pyomo/pysp/tests/unit/baselines/forestry_linearized_cplex_darwin.baseline
deleted file mode 100644
index 489802f25d7..00000000000
--- a/pyomo/pysp/tests/unit/baselines/forestry_linearized_cplex_darwin.baseline
+++ /dev/null
@@ -1,2635 +0,0 @@
-*** Active Objective 'Production_Profit_Objective' on scenario instance 'ForestChile1' will not be used. ***
-*** Active Objective 'Production_Profit_Objective' on scenario instance 'ForestChile10' will not be used. ***
-*** Active Objective 'Production_Profit_Objective' on scenario instance 'ForestChile11' will not be used. ***
-*** Active Objective 'Production_Profit_Objective' on scenario instance 'ForestChile12' will not be used. ***
-*** Active Objective 'Production_Profit_Objective' on scenario instance 'ForestChile13' will not be used. ***
-*** Active Objective 'Production_Profit_Objective' on scenario instance 'ForestChile14' will not be used. ***
-*** Active Objective 'Production_Profit_Objective' on scenario instance 'ForestChile15' will not be used. ***
-*** Active Objective 'Production_Profit_Objective' on scenario instance 'ForestChile16' will not be used. ***
-*** Active Objective 'Production_Profit_Objective' on scenario instance 'ForestChile17' will not be used. ***
-*** Active Objective 'Production_Profit_Objective' on scenario instance 'ForestChile18' will not be used. ***
-*** Active Objective 'Production_Profit_Objective' on scenario instance 'ForestChile2' will not be used. ***
-*** Active Objective 'Production_Profit_Objective' on scenario instance 'ForestChile3' will not be used. ***
-*** Active Objective 'Production_Profit_Objective' on scenario instance 'ForestChile4' will not be used. ***
-*** Active Objective 'Production_Profit_Objective' on scenario instance 'ForestChile5' will not be used. ***
-*** Active Objective 'Production_Profit_Objective' on scenario instance 'ForestChile6' will not be used. ***
-*** Active Objective 'Production_Profit_Objective' on scenario instance 'ForestChile7' will not be used. ***
-*** Active Objective 'Production_Profit_Objective' on scenario instance 'ForestChile8' will not be used. ***
-*** Active Objective 'Production_Profit_Objective' on scenario instance 'ForestChile9' will not be used. ***
-Importing module=/Users/ghackebeil/Projects/pyomo/src/pyomo/examples/pysp/forestry/config/rhosetter.py
-Module successfully loaded
-Importing module=/Users/ghackebeil/Projects/pyomo/src/pyomo/examples/pysp/forestry/config/boundsetter.py
-Module successfully loaded
-Initializing PH
-
-Executing user rho setter callback function
-Executing user bound setter callback function
-WW PH Extension: Loading user-specified configuration from file=/Users/ghackebeil/Projects/pyomo/src/pyomo/examples/pysp/forestry/config/wwph.cfg
-WW PH Extension: Loading variable suffixes from file=/Users/ghackebeil/Projects/pyomo/src/pyomo/examples/pysp/forestry/config/wwph-nb.suffixes
-WW PH Extension: Setting mipgap to 0.0210000, as specified in the configuration file
-Starting PH
-
-Initiating PH iteration=0
-Number of discrete variables fixed=0 (total=507)
-Number of continuous variables fixed=0 (total=260)
-First stage cost avg=1642302.2606 Max-Min=186491.00
-Converger=Normalized term diff value is 0.1007 - threshold reached=False
-Cumulative run-time=2.12 seconds
-
-Initiating PH iteration=1
-WW PH Extension: Setting mipgap to 0.0200000, as specified in the configuration file
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=18 (total=507)
-Number of continuous variables fixed=0 (total=260)
-First stage cost avg=1416596.5107 Max-Min=383710.94
-Converger=Normalized term diff value is 0.0655 - threshold reached=False
-Cumulative run-time=5.27 seconds
-
-Initiating PH iteration=2
-WW PH Extension: Setting mipgap to 0.0186018, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=28 (total=507)
-Number of continuous variables fixed=0 (total=260)
-First stage cost avg=1375803.7300 Max-Min=59484.70
-Converger=Normalized term diff value is 0.0338 - threshold reached=False
-Cumulative run-time=8.60 seconds
-
-Initiating PH iteration=3
-WW PH Extension: Setting mipgap to 0.0173412, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=34 (total=507)
-Number of continuous variables fixed=0 (total=260)
-First stage cost avg=1377167.3800 Max-Min= 0.00
-Converger=Normalized term diff value is 0.0181 - threshold reached=False
-Cumulative run-time=11.08 seconds
-
-Initiating PH iteration=4
-WW PH Extension: Setting mipgap to 0.0167174, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=97 (total=507)
-Number of continuous variables fixed=0 (total=260)
-First stage cost avg=1377167.3800 Max-Min= 0.00
-Converger=Normalized term diff value is 0.0151 - threshold reached=False
-Cumulative run-time=12.91 seconds
-
-Initiating PH iteration=5
-WW PH Extension: Setting mipgap to 0.0165960, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=109 (total=507)
-Number of continuous variables fixed=0 (total=260)
-First stage cost avg=1377167.3800 Max-Min= 0.00
-Converger=Normalized term diff value is 0.0168 - threshold reached=False
-Cumulative run-time=14.57 seconds
-
-Initiating PH iteration=6
-WW PH Extension: Setting mipgap to 0.0166627, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=357 (total=507)
-Number of continuous variables fixed=0 (total=260)
-First stage cost avg=1377167.3800 Max-Min= 0.00
-Converger=Normalized term diff value is 0.0140 - threshold reached=False
-Cumulative run-time=16.08 seconds
-
-Initiating PH iteration=7
-WW PH Extension: Setting mipgap to 0.0165523, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=381 (total=507)
-Number of continuous variables fixed=0 (total=260)
-First stage cost avg=1377167.3800 Max-Min= 0.00
-Converger=Normalized term diff value is 0.0104 - threshold reached=False
-Cumulative run-time=17.45 seconds
-
-Initiating PH iteration=8
-WW PH Extension: Setting mipgap to 0.0164104, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=405 (total=507)
-Number of continuous variables fixed=0 (total=260)
-First stage cost avg=1377167.3800 Max-Min= 0.00
-Converger=Normalized term diff value is 0.0134 - threshold reached=False
-Cumulative run-time=18.90 seconds
-
-Initiating PH iteration=9
-WW PH Extension: Setting mipgap to 0.0165268, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=417 (total=507)
-Number of continuous variables fixed=0 (total=260)
-First stage cost avg=1377167.3800 Max-Min= 0.00
-Converger=Normalized term diff value is 0.0122 - threshold reached=False
-Cumulative run-time=20.29 seconds
-
-Initiating PH iteration=10
-WW PH Extension: Setting mipgap to 0.0164828, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=425 (total=507)
-Number of continuous variables fixed=0 (total=260)
-First stage cost avg=1377167.3800 Max-Min= 0.00
-Converger=Normalized term diff value is 0.0105 - threshold reached=False
-Cumulative run-time=21.78 seconds
-Halting PH - reached maximal iteration count=10
-
-Number of discrete variables fixed before final plugin calls=425 (total=507)
-Number of continuous variables fixed before final plugin calls=0 (total=260)
-PH complete
-
-Convergence history:
-Converger=Normalized term diff
-Iteration Metric Value
- 0 0.1007
- 1 0.0655
- 2 0.0338
- 3 0.0181
- 4 0.0151
- 5 0.0168
- 6 0.0140
- 7 0.0104
- 8 0.0134
- 9 0.0122
- 10 0.0105
-
-
-Final number of discrete variables fixed=425 (total=507)
-Final number of continuous variables fixed=0 (total=260)
-
-Computing objective inner bound at xhat solution
-At least one sub-problem solve time was undefined - skipping timing statistics
-At least one sub-problem solve time was undefined - skipping timing statistics
- ** At least one sub-problem failed to solve! **
- Failed sub-problems:
- ForestChile1
- ForestChile10
- ForestChile11
- ForestChile12
- ForestChile2
- ForestChile3
- ForestChile4
- ForestChile5
- ForestChile6
- ForestChile7
- ForestChile8
- ForestChile9
-
-Failed to compute bound at xhat due to one or more solve failures. Restoring PH to solution at final iteration.
-Generating scenario tree solution from scenario averages
-
-Scenario tree variable values:
-
- Stage: Ano1Stage
- (Scenarios: ForestChile1 ForestChile2 ForestChile3 ForestChile4 ForestChile5 ForestChile6 ForestChile7 ForestChile8 ForestChile9 ForestChile10 ForestChile11 ForestChile12 ForestChile13 ForestChile14 ForestChile15 ForestChile16 ForestChile17 ForestChile18 )
- Variable: delta
- Index: [U12,Ano1] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [U13,Ano1] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [U15,Ano1] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 0.0000 0.0000 1.0000 0.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 0.0000 0.0000
-
- Index: [U16,Ano1] Values: 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 1.0000 1.0000 0.0000 1.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 1.0000 1.0000
-
- Index: [U17,Ano1] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [U18,Ano1] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- (Scenarios: ForestChile1 ForestChile2 ForestChile3 ForestChile4 ForestChile5 ForestChile6 ForestChile7 ForestChile8 ForestChile9 ForestChile10 ForestChile11 ForestChile12 ForestChile13 ForestChile14 ForestChile15 ForestChile16 ForestChile17 ForestChile18 )
- Variable: f
- Index: [C03,E1,Ano1] Values: 21287.0000 21287.0000 21287.0000 21287.0000 21287.0000 21287.0000 21287.0000 21287.0000 21287.0000 21287.0000 21287.0000 21287.0000 21287.0000 21287.0000 21287.0000 21287.0000 21287.0000 21287.0000
-
- Index: [C04,C03,Ano1] Values: 7560.0000 7560.0000 7560.0000 7560.0000 7560.0000 7560.0000 7560.0000 7560.0000 7560.0000 7560.0000 7560.0000 7560.0000 7560.0000 7560.0000 7560.0000 7560.0000 7560.0000 7560.0000
-
- Index: [C06,I3,Ano1] Values: 10954.4000 10954.4000 10954.4000 10954.4000 10954.4000 10954.4000 10954.4000 10954.4000 10954.4000 10954.4000 10954.4000 10954.4000 10954.4000 10954.4000 10954.4000 10954.4000 10954.4000 10954.4000
-
- Index: [I3,E1,Ano1] Values: 10954.4000 10954.4000 10954.4000 10954.4000 10954.4000 10954.4000 10954.4000 10954.4000 10954.4000 10954.4000 10954.4000 10954.4000 10954.4000 10954.4000 10954.4000 10954.4000 10954.4000 10954.4000
-
- (Scenarios: ForestChile1 ForestChile2 ForestChile3 ForestChile4 ForestChile5 ForestChile6 ForestChile7 ForestChile8 ForestChile9 ForestChile10 ForestChile11 ForestChile12 ForestChile13 ForestChile14 ForestChile15 ForestChile16 ForestChile17 ForestChile18 )
- Variable: gamma
- Index: [C04,C03,Ano1] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [C06,I3,Ano1] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Cost Variable: AnoProfit[Ano1]
- Tree Node: RootNode (Scenarios: ForestChile1 ForestChile2 ForestChile3 ForestChile4 ForestChile5 ForestChile6 ForestChile7 ForestChile8 ForestChile9 ForestChile10 ForestChile11 ForestChile12 ForestChile13 ForestChile14 ForestChile15 ForestChile16 ForestChile17 ForestChile18 )
- Values: 1377167.38001377167.38001377167.38001377167.38001377167.38001377167.38001377167.38001377167.38001377167.38001377167.38001377167.38001377167.38001377167.38001377167.38001377167.38001377167.38001377167.38001377167.3800 Max-Min: 0.0000 Avg: 1377167.3800
- Stage: Ano2Stage
- (Scenarios: ForestChile1 ForestChile2 ForestChile3 ForestChile4 ForestChile5 ForestChile6 )
- Variable: delta
- Index: [U10,Ano2]
- Tree Node: StageTwoHigh Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [U11,Ano2]
- Tree Node: StageTwoHigh Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [U16,Ano2]
- Tree Node: StageTwoHigh Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [U6,Ano2]
- Tree Node: StageTwoHigh Values: 1.0000 1.0000 0.0000 0.0000 1.0000 1.0000
-
- Index: [U7,Ano2]
- Tree Node: StageTwoHigh Values: 1.0000 1.0000 0.0000 0.0000 1.0000 1.0000
-
- Index: [U9,Ano2]
- Tree Node: StageTwoHigh Values: 0.0000 0.0000 1.0000 1.0000 0.0000 0.0000
-
- (Scenarios: ForestChile7 ForestChile8 ForestChile9 ForestChile10 ForestChile11 ForestChile12 )
- Index: [U11,Ano2]
- Tree Node: StageTwoMedium Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [U15,Ano2]
- Tree Node: StageTwoMedium Values: 1.0000 1.0000 0.0000 1.0000 0.0000 0.0000
-
- Index: [U16,Ano2]
- Tree Node: StageTwoMedium Values: 0.0000 0.0000 1.0000 0.0000 1.0000 1.0000
-
- Index: [U6,Ano2]
- Tree Node: StageTwoMedium Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- (Scenarios: ForestChile13 ForestChile14 ForestChile15 ForestChile16 ForestChile17 ForestChile18 )
- Index: [U11,Ano2]
- Tree Node: StageTwoLow Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [U3,Ano2]
- Tree Node: StageTwoLow Values: 1.0000 0.0000 0.0000 0.0000 0.0000 0.0000
-
- Index: [U8,Ano2]
- Tree Node: StageTwoLow Values: 0.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- (Scenarios: ForestChile1 ForestChile2 ForestChile3 ForestChile4 ForestChile5 ForestChile6 )
- Variable: f
- Index: [C02,C03,Ano2]
- Tree Node: StageTwoHigh Values: 21250.2000 21250.2000 18939.0000 18939.0000 21250.2000 21250.2000
-
- Index: [C03,E1,Ano2]
- Tree Node: StageTwoHigh Values: 36130.2000 36130.2000 33819.0000 33819.0000 36130.2000 36130.2000
-
- Index: [C04,C03,Ano2]
- Tree Node: StageTwoHigh Values: 14880.0000 14880.0000 14880.0000 14880.0000 14880.0000 14880.0000
-
- (Scenarios: ForestChile7 ForestChile8 ForestChile9 ForestChile10 ForestChile11 ForestChile12 )
- Index: [C02,C03,Ano2]
- Tree Node: StageTwoMedium Values: 6548.4000 6548.4000 6548.4000 6548.4000 6548.4000 6548.4000
-
- Index: [C02,C09,Ano2]
- Tree Node: StageTwoMedium Values: 0.0000 0.0000 0.0000 0.0944 0.0000 0.0944
-
- Index: [C03,E1,Ano2]
- Tree Node: StageTwoMedium Values: 21420.8657 21420.8657 21420.8657 21420.8657 21420.8657 21420.8657
-
- Index: [C04,C03,Ano2]
- Tree Node: StageTwoMedium Values: 14872.4657 14872.4657 14872.4657 14872.4657 14872.4657 14872.4657
-
- Index: [C04,I3,Ano2]
- Tree Node: StageTwoMedium Values: 7.5343 7.5343 7.5343 7.5343 7.5343 7.5343
-
- Index: [C09,C02,Ano2]
- Tree Node: StageTwoMedium Values: 0.0000 0.0000 0.0000 0.0944 0.0000 0.0944
-
- Index: [I3,E1,Ano2]
- Tree Node: StageTwoMedium Values: 7.5343 7.5343 7.5343 7.5343 7.5343 7.5343
-
- (Scenarios: ForestChile13 ForestChile14 ForestChile15 ForestChile16 ForestChile17 ForestChile18 )
- Index: [C02,C03,Ano2]
- Tree Node: StageTwoLow Values: 117.8615 208.5425 208.5425 208.5425 208.5425 208.5425
-
- Index: [C03,E1,Ano2]
- Tree Node: StageTwoLow Values: 7122.7773 7213.4583 7213.4583 7213.4583 7213.4583 7213.4583
-
- Index: [C04,C03,Ano2]
- Tree Node: StageTwoLow Values: 7004.9159 7004.9159 7004.9159 7004.9159 7004.9159 7004.9159
-
- Index: [C04,I3,Ano2]
- Tree Node: StageTwoLow Values: 315.0841 315.0841 315.0841 315.0841 315.0841 315.0841
-
- Index: [C09,C02,Ano2]
- Tree Node: StageTwoLow Values: 117.8615 208.5425 208.5425 208.5425 208.5425 208.5425
-
- Index: [C09,E1,Ano2]
- Tree Node: StageTwoLow Values: 3538.3385 3556.2575 3556.2575 3556.2575 3556.2575 3556.2575
-
- Index: [I3,E1,Ano2]
- Tree Node: StageTwoLow Values: 315.0841 315.0841 315.0841 315.0841 315.0841 315.0841
-
- (Scenarios: ForestChile1 ForestChile2 ForestChile3 ForestChile4 ForestChile5 ForestChile6 )
- Variable: gamma
- Index: [C02,C09,Ano2]
- Tree Node: StageTwoHigh Values: 1.0000 0.0000 1.0000 0.0000 0.0000 0.0000
-
- Index: [C09,C02,Ano2]
- Tree Node: StageTwoHigh Values: 0.0000 1.0000 0.0000 0.0000 0.0000 0.0000
-
- Index: [C09,C03,Ano2]
- Tree Node: StageTwoHigh Values: 0.0000 0.0000 0.0000 1.0000 0.0000 0.0000
-
- Index: [C09,E1,Ano2]
- Tree Node: StageTwoHigh Values: 1.0000 1.0000 1.0000 1.0000 0.0000 0.0000
-
- (Scenarios: ForestChile7 ForestChile8 ForestChile9 ForestChile10 ForestChile11 ForestChile12 )
- Index: [C02,C09,Ano2]
- Tree Node: StageTwoMedium Values: 0.0000 0.0000 0.0000 1.0000 0.0000 1.0000
-
- Index: [C04,I3,Ano2]
- Tree Node: StageTwoMedium Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [C09,C02,Ano2]
- Tree Node: StageTwoMedium Values: 0.0000 0.0000 0.0000 1.0000 0.0000 1.0000
-
- (Scenarios: ForestChile13 ForestChile14 ForestChile15 ForestChile16 ForestChile17 ForestChile18 )
- Index: [C04,I3,Ano2]
- Tree Node: StageTwoLow Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [C09,C02,Ano2]
- Tree Node: StageTwoLow Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [C09,E1,Ano2]
- Tree Node: StageTwoLow Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Cost Variable: AnoProfit[Ano2]
- Tree Node: StageTwoHigh (Scenarios: ForestChile1 ForestChile2 ForestChile3 ForestChile4 ForestChile5 ForestChile6 )
- Values: 1803166.74001803166.74001688996.26801688587.17301806873.10201806873.1020 Max-Min: 118285.9290 Avg: 1766683.1466
- Tree Node: StageTwoMedium (Scenarios: ForestChile7 ForestChile8 ForestChile9 ForestChile10 ForestChile11 ForestChile12 )
- Values: 790253.2193 790253.2193 790253.2193 787487.3719 790253.2193 787487.3719 Max-Min: 2765.8474 Avg: 789326.6604
- Tree Node: StageTwoLow (Scenarios: ForestChile13 ForestChile14 ForestChile15 ForestChile16 ForestChile17 ForestChile18 )
- Values: 254289.8367 256544.1268 256544.1268 256544.1268 256544.1268 256544.1268 Max-Min: 2254.2901 Avg: 256172.1689
- Stage: Ano3Stage
- (Scenarios: ForestChile1 ForestChile2 )
- Variable: delta
- Index: [U1,Ano3]
- Tree Node: StageThreeHighHigh Values: 1.0000 1.0000
-
- Index: [U14,Ano3]
- Tree Node: StageThreeHighHigh Values: 1.0000 1.0000
-
- Index: [U20,Ano3]
- Tree Node: StageThreeHighHigh Values: 1.0000 1.0000
-
- Index: [U23,Ano3]
- Tree Node: StageThreeHighHigh Values: 1.0000 1.0000
-
- Index: [U24,Ano3]
- Tree Node: StageThreeHighHigh Values: 1.0000 1.0000
-
- Index: [U5,Ano3]
- Tree Node: StageThreeHighHigh Values: 1.0000 1.0000
-
- Index: [U9,Ano3]
- Tree Node: StageThreeHighHigh Values: 1.0000 1.0000
-
- (Scenarios: ForestChile3 ForestChile4 )
- Index: [U1,Ano3]
- Tree Node: StageThreeHighMedium Values: 1.0000 1.0000
-
- Index: [U19,Ano3]
- Tree Node: StageThreeHighMedium Values: 1.0000 1.0000
-
- Index: [U2,Ano3]
- Tree Node: StageThreeHighMedium Values: 1.0000 1.0000
-
- Index: [U24,Ano3]
- Tree Node: StageThreeHighMedium Values: 1.0000 1.0000
-
- Index: [U7,Ano3]
- Tree Node: StageThreeHighMedium Values: 1.0000 1.0000
-
- (Scenarios: ForestChile5 ForestChile6 )
- Index: [U14,Ano3]
- Tree Node: StageThreeHighLow Values: 1.0000 1.0000
-
- Index: [U19,Ano3]
- Tree Node: StageThreeHighLow Values: 1.0000 1.0000
-
- Index: [U21,Ano3]
- Tree Node: StageThreeHighLow Values: 1.0000 1.0000
-
- Index: [U23,Ano3]
- Tree Node: StageThreeHighLow Values: 1.0000 1.0000
-
- (Scenarios: ForestChile7 ForestChile8 )
- Index: [U10,Ano3]
- Tree Node: StageThreeMediumHigh Values: 1.0000 1.0000
-
- Index: [U19,Ano3]
- Tree Node: StageThreeMediumHigh Values: 1.0000 1.0000
-
- Index: [U24,Ano3]
- Tree Node: StageThreeMediumHigh Values: 1.0000 1.0000
-
- Index: [U7,Ano3]
- Tree Node: StageThreeMediumHigh Values: 1.0000 1.0000
-
- Index: [U9,Ano3]
- Tree Node: StageThreeMediumHigh Values: 1.0000 1.0000
-
- (Scenarios: ForestChile9 ForestChile10 )
- Index: [U14,Ano3]
- Tree Node: StageThreeMediumMedium Values: 1.0000 1.0000
-
- Index: [U21,Ano3]
- Tree Node: StageThreeMediumMedium Values: 1.0000 1.0000
-
- Index: [U4,Ano3]
- Tree Node: StageThreeMediumMedium Values: 1.0000 1.0000
-
- Index: [U7,Ano3]
- Tree Node: StageThreeMediumMedium Values: 1.0000 1.0000
-
- Index: [U9,Ano3]
- Tree Node: StageThreeMediumMedium Values: 1.0000 1.0000
-
- (Scenarios: ForestChile11 ForestChile12 )
- Index: [U10,Ano3]
- Tree Node: StageThreeMediumLow Values: 1.0000 1.0000
-
- Index: [U14,Ano3]
- Tree Node: StageThreeMediumLow Values: 1.0000 1.0000
-
- Index: [U7,Ano3]
- Tree Node: StageThreeMediumLow Values: 1.0000 1.0000
-
- (Scenarios: ForestChile13 ForestChile14 )
- Index: [U10,Ano3]
- Tree Node: StageThreeLowHigh Values: 1.0000 1.0000
-
- Index: [U21,Ano3]
- Tree Node: StageThreeLowHigh Values: 1.0000 1.0000
-
- Index: [U24,Ano3]
- Tree Node: StageThreeLowHigh Values: 1.0000 1.0000
-
- Index: [U6,Ano3]
- Tree Node: StageThreeLowHigh Values: 1.0000 1.0000
-
- Index: [U9,Ano3]
- Tree Node: StageThreeLowHigh Values: 1.0000 1.0000
-
- (Scenarios: ForestChile15 ForestChile16 )
- Index: [U3,Ano3]
- Tree Node: StageThreeLowMedium Values: 1.0000 1.0000
-
- Index: [U7,Ano3]
- Tree Node: StageThreeLowMedium Values: 1.0000 1.0000
-
- Index: [U9,Ano3]
- Tree Node: StageThreeLowMedium Values: 1.0000 1.0000
-
- (Scenarios: ForestChile17 ForestChile18 )
- Index: [U10,Ano3]
- Tree Node: StageThreeLowLow Values: 1.0000 1.0000
-
- Index: [U6,Ano3]
- Tree Node: StageThreeLowLow Values: 1.0000 1.0000
-
- Index: [U7,Ano3]
- Tree Node: StageThreeLowLow Values: 1.0000 1.0000
-
- (Scenarios: ForestChile1 ForestChile2 )
- Variable: f
- Index: [C01,C02,Ano3]
- Tree Node: StageThreeHighHigh Values: 273.1000 273.1000
-
- Index: [C01,C09,Ano3]
- Tree Node: StageThreeHighHigh Values: 3383.1000 3383.1000
-
- Index: [C02,C03,Ano3]
- Tree Node: StageThreeHighHigh Values: 10994.5000 10994.5000
-
- Index: [C03,E1,Ano3]
- Tree Node: StageThreeHighHigh Values: 10994.5000 10994.5000
-
- Index: [C05,I1,Ano3]
- Tree Node: StageThreeHighHigh Values: 22056.3000 22056.3000
-
- Index: [C08,I2,Ano3]
- Tree Node: StageThreeHighHigh Values: 4170.4000 4170.4000
-
- Index: [C09,E1,Ano3]
- Tree Node: StageThreeHighHigh Values: 7111.7000 7111.7000
-
- Index: [I1,I2,Ano3]
- Tree Node: StageThreeHighHigh Values: 22056.3000 22056.3000
-
- Index: [I2,I3,Ano3]
- Tree Node: StageThreeHighHigh Values: 26226.7000 26226.7000
-
- Index: [I3,E1,Ano3]
- Tree Node: StageThreeHighHigh Values: 26226.7000 26226.7000
-
- (Scenarios: ForestChile3 ForestChile4 )
- Index: [C01,C09,Ano3]
- Tree Node: StageThreeHighMedium Values: 7312.4000 7312.4000
-
- Index: [C02,C03,Ano3]
- Tree Node: StageThreeHighMedium Values: 6484.2000 6484.2000
-
- Index: [C03,E1,Ano3]
- Tree Node: StageThreeHighMedium Values: 7398.2500 7398.2500
-
- Index: [C05,I1,Ano3]
- Tree Node: StageThreeHighMedium Values: 8391.6000 8391.6000
-
- Index: [C06,I3,Ano3]
- Tree Node: StageThreeHighMedium Values: 4330.8000 4330.8000
-
- Index: [C09,C03,Ano3]
- Tree Node: StageThreeHighMedium Values: 914.0500 914.0500
-
- Index: [C09,E1,Ano3]
- Tree Node: StageThreeHighMedium Values: 6398.3500 6398.3500
-
- Index: [I1,I2,Ano3]
- Tree Node: StageThreeHighMedium Values: 8391.6000 8391.6000
-
- Index: [I2,I3,Ano3]
- Tree Node: StageThreeHighMedium Values: 8391.6000 8391.6000
-
- Index: [I3,E1,Ano3]
- Tree Node: StageThreeHighMedium Values: 12722.4000 12722.4000
-
- (Scenarios: ForestChile5 ForestChile6 )
- Index: [C05,I1,Ano3]
- Tree Node: StageThreeHighLow Values: 13664.7000 13664.7000
-
- Index: [C06,I3,Ano3]
- Tree Node: StageThreeHighLow Values: 4330.8000 4330.8000
-
- Index: [C08,I2,Ano3]
- Tree Node: StageThreeHighLow Values: 6117.2000 6117.2000
-
- Index: [I1,I2,Ano3]
- Tree Node: StageThreeHighLow Values: 13664.7000 13664.7000
-
- Index: [I2,I3,Ano3]
- Tree Node: StageThreeHighLow Values: 19781.9000 19781.9000
-
- Index: [I3,E1,Ano3]
- Tree Node: StageThreeHighLow Values: 24112.7000 24112.7000
-
- (Scenarios: ForestChile7 ForestChile8 )
- Index: [C02,C03,Ano3]
- Tree Node: StageThreeMediumHigh Values: 24091.8500 24091.8500
-
- Index: [C02,C09,Ano3]
- Tree Node: StageThreeMediumHigh Values: 1331.3500 1331.3500
-
- Index: [C03,E1,Ano3]
- Tree Node: StageThreeMediumHigh Values: 24091.8500 24091.8500
-
- Index: [C05,I1,Ano3]
- Tree Node: StageThreeMediumHigh Values: 8391.6000 8391.6000
-
- Index: [C06,I3,Ano3]
- Tree Node: StageThreeMediumHigh Values: 4330.8000 4330.8000
-
- Index: [C09,E1,Ano3]
- Tree Node: StageThreeMediumHigh Values: 1331.3500 1331.3500
-
- Index: [I1,I2,Ano3]
- Tree Node: StageThreeMediumHigh Values: 8391.6000 8391.6000
-
- Index: [I2,I3,Ano3]
- Tree Node: StageThreeMediumHigh Values: 8391.6000 8391.6000
-
- Index: [I3,E1,Ano3]
- Tree Node: StageThreeMediumHigh Values: 12722.4000 12722.4000
-
- (Scenarios: ForestChile9 ForestChile10 )
- Index: [C01,C09,Ano3]
- Tree Node: StageThreeMediumMedium Values: 8602.8000 8602.8000
-
- Index: [C02,C03,Ano3]
- Tree Node: StageThreeMediumMedium Values: 17205.6000 17205.6000
-
- Index: [C03,E1,Ano3]
- Tree Node: StageThreeMediumMedium Values: 17205.6000 17205.6000
-
- Index: [C05,I1,Ano3]
- Tree Node: StageThreeMediumMedium Values: 7200.9000 7200.9000
-
- Index: [C08,I2,Ano3]
- Tree Node: StageThreeMediumMedium Values: 6117.2000 6117.2000
-
- Index: [C09,E1,Ano3]
- Tree Node: StageThreeMediumMedium Values: 8602.8000 8602.8000
-
- Index: [I1,I2,Ano3]
- Tree Node: StageThreeMediumMedium Values: 7200.9000 7200.9000
-
- Index: [I2,I3,Ano3]
- Tree Node: StageThreeMediumMedium Values: 13318.1000 13318.1000
-
- Index: [I3,E1,Ano3]
- Tree Node: StageThreeMediumMedium Values: 13318.1000 13318.1000
-
- (Scenarios: ForestChile11 ForestChile12 )
- Index: [C02,C03,Ano3]
- Tree Node: StageThreeMediumLow Values: 14701.8000 14701.8000
-
- Index: [C03,E1,Ano3]
- Tree Node: StageThreeMediumLow Values: 14701.8000 14701.8000
-
- Index: [C05,I1,Ano3]
- Tree Node: StageThreeMediumLow Values: 7200.9000 7200.9000
-
- Index: [I1,I2,Ano3]
- Tree Node: StageThreeMediumLow Values: 7200.9000 7200.9000
-
- Index: [I2,I3,Ano3]
- Tree Node: StageThreeMediumLow Values: 7200.9000 7200.9000
-
- Index: [I3,E1,Ano3]
- Tree Node: StageThreeMediumLow Values: 7200.9000 7200.9000
-
- (Scenarios: ForestChile13 ForestChile14 )
- Index: [C02,C03,Ano3]
- Tree Node: StageThreeLowHigh Values: 25487.4000 25487.4000
-
- Index: [C03,E1,Ano3]
- Tree Node: StageThreeLowHigh Values: 25487.4000 25487.4000
-
- Index: [C05,I1,Ano3]
- Tree Node: StageThreeLowHigh Values: 8391.6000 8391.6000
-
- Index: [C08,I2,Ano3]
- Tree Node: StageThreeLowHigh Values: 6117.2000 6117.2000
-
- Index: [I1,I2,Ano3]
- Tree Node: StageThreeLowHigh Values: 8391.6000 8391.6000
-
- Index: [I2,I3,Ano3]
- Tree Node: StageThreeLowHigh Values: 14508.8000 14508.8000
-
- Index: [I3,E1,Ano3]
- Tree Node: StageThreeLowHigh Values: 14508.8000 14508.8000
-
- (Scenarios: ForestChile15 ForestChile16 )
- Index: [C02,C03,Ano3]
- Tree Node: StageThreeLowMedium Values: 17228.5000 17228.5000
-
- Index: [C03,E1,Ano3]
- Tree Node: StageThreeLowMedium Values: 17228.5000 17228.5000
-
- Index: [C09,C02,Ano3]
- Tree Node: StageThreeLowMedium Values: 22.9000 22.9000
-
- Index: [C09,E1,Ano3]
- Tree Node: StageThreeLowMedium Values: 3633.3000 3633.3000
-
- (Scenarios: ForestChile17 ForestChile18 )
- Index: [C02,C03,Ano3]
- Tree Node: StageThreeLowLow Values: 21250.2000 21250.2000
-
- Index: [C03,E1,Ano3]
- Tree Node: StageThreeLowLow Values: 21250.2000 21250.2000
-
- (Scenarios: ForestChile1 ForestChile2 )
- Variable: gamma
- Index: [C01,C02,Ano3]
- Tree Node: StageThreeHighHigh Values: 1.0000 1.0000
-
- Index: [C01,C09,Ano3]
- Tree Node: StageThreeHighHigh Values: 1.0000 1.0000
-
- Index: [C08,I2,Ano3]
- Tree Node: StageThreeHighHigh Values: 1.0000 1.0000
-
- (Scenarios: ForestChile3 ForestChile4 )
- Index: [C01,C09,Ano3]
- Tree Node: StageThreeHighMedium Values: 1.0000 1.0000
-
- Index: [C09,C03,Ano3]
- Tree Node: StageThreeHighMedium Values: 1.0000 0.0000
-
- (Scenarios: ForestChile5 ForestChile6 )
- Index: [C08,I2,Ano3]
- Tree Node: StageThreeHighLow Values: 1.0000 1.0000
-
- (Scenarios: ForestChile7 ForestChile8 )
- Index: [C02,C09,Ano3]
- Tree Node: StageThreeMediumHigh Values: 1.0000 1.0000
-
- Index: [C09,E1,Ano3]
- Tree Node: StageThreeMediumHigh Values: 1.0000 1.0000
-
- (Scenarios: ForestChile9 ForestChile10 )
- Index: [C01,C09,Ano3]
- Tree Node: StageThreeMediumMedium Values: 1.0000 1.0000
-
- Index: [C08,I2,Ano3]
- Tree Node: StageThreeMediumMedium Values: 1.0000 1.0000
-
- Index: [C09,E1,Ano3]
- Tree Node: StageThreeMediumMedium Values: 1.0000 1.0000
-
- (Scenarios: ForestChile11 ForestChile12 )
- (Scenarios: ForestChile13 ForestChile14 )
- Index: [C08,I2,Ano3]
- Tree Node: StageThreeLowHigh Values: 1.0000 1.0000
-
- (Scenarios: ForestChile15 ForestChile16 )
- Index: [C02,C09,Ano3]
- Tree Node: StageThreeLowMedium Values: 0.0000 1.0000
-
- (Scenarios: ForestChile17 ForestChile18 )
- Cost Variable: AnoProfit[Ano3]
- Tree Node: StageThreeHighHigh (Scenarios: ForestChile1 ForestChile2 )
- Values: 2137790.58032137790.5803 Max-Min: 0.0000 Avg: 2137790.5803
- Tree Node: StageThreeHighMedium (Scenarios: ForestChile3 ForestChile4 )
- Values: 1069216.33971070682.3749 Max-Min: 1466.0352 Avg: 1069949.3573
- Tree Node: StageThreeHighLow (Scenarios: ForestChile5 ForestChile6 )
- Values: 781825.6040 781825.6040 Max-Min: 0.0000 Avg: 781825.6040
- Tree Node: StageThreeMediumHigh (Scenarios: ForestChile7 ForestChile8 )
- Values: 1450858.07001450858.0700 Max-Min: 0.0000 Avg: 1450858.0700
- Tree Node: StageThreeMediumMedium (Scenarios: ForestChile9 ForestChile10 )
- Values: 1249640.37501249640.3750 Max-Min: 0.0000 Avg: 1249640.3750
- Tree Node: StageThreeMediumLow (Scenarios: ForestChile11 ForestChile12 )
- Values: 438900.1402 438900.1402 Max-Min: 0.0000 Avg: 438900.1402
- Tree Node: StageThreeLowHigh (Scenarios: ForestChile13 ForestChile14 )
- Values: 1287137.22301287137.2230 Max-Min: 0.0000 Avg: 1287137.2230
- Tree Node: StageThreeLowMedium (Scenarios: ForestChile15 ForestChile16 )
- Values: 423127.6177 421996.2989 Max-Min: 1131.3189 Avg: 422561.9583
- Tree Node: StageThreeLowLow (Scenarios: ForestChile17 ForestChile18 )
- Values: 290679.4998 290679.4998 Max-Min: 0.0000 Avg: 290679.4998
-Scenario tree costs:
-Scenario Tree Costs
-----------------------------------------------------
-Tree Nodes:
-
- Name=Leaf1
- Stage=Ano4Stage
- Parent=StageThreeHighHigh
- Conditional probability=0.5000
- Children:
- None
- Scenarios:
- ForestChile1
- Expected cost of (sub)tree rooted at node=1718051.7596
-
- Name=Leaf10
- Stage=Ano4Stage
- Parent=StageThreeMediumMedium
- Conditional probability=0.5000
- Children:
- None
- Scenarios:
- ForestChile10
- Expected cost of (sub)tree rooted at node=811018.2518
-
- Name=Leaf11
- Stage=Ano4Stage
- Parent=StageThreeMediumLow
- Conditional probability=0.5000
- Children:
- None
- Scenarios:
- ForestChile11
- Expected cost of (sub)tree rooted at node=868924.7120
-
- Name=Leaf12
- Stage=Ano4Stage
- Parent=StageThreeMediumLow
- Conditional probability=0.5000
- Children:
- None
- Scenarios:
- ForestChile12
- Expected cost of (sub)tree rooted at node=653677.1904
-
- Name=Leaf13
- Stage=Ano4Stage
- Parent=StageThreeLowHigh
- Conditional probability=0.5000
- Children:
- None
- Scenarios:
- ForestChile13
- Expected cost of (sub)tree rooted at node=464468.9510
-
- Name=Leaf14
- Stage=Ano4Stage
- Parent=StageThreeLowHigh
- Conditional probability=0.5000
- Children:
- None
- Scenarios:
- ForestChile14
- Expected cost of (sub)tree rooted at node=303708.2818
-
- Name=Leaf15
- Stage=Ano4Stage
- Parent=StageThreeLowMedium
- Conditional probability=0.5000
- Children:
- None
- Scenarios:
- ForestChile15
- Expected cost of (sub)tree rooted at node=465157.5790
-
- Name=Leaf16
- Stage=Ano4Stage
- Parent=StageThreeLowMedium
- Conditional probability=0.5000
- Children:
- None
- Scenarios:
- ForestChile16
- Expected cost of (sub)tree rooted at node=315419.4481
-
- Name=Leaf17
- Stage=Ano4Stage
- Parent=StageThreeLowLow
- Conditional probability=0.5000
- Children:
- None
- Scenarios:
- ForestChile17
- Expected cost of (sub)tree rooted at node=360640.9948
-
- Name=Leaf18
- Stage=Ano4Stage
- Parent=StageThreeLowLow
- Conditional probability=0.5000
- Children:
- None
- Scenarios:
- ForestChile18
- Expected cost of (sub)tree rooted at node=176078.1694
-
- Name=Leaf2
- Stage=Ano4Stage
- Parent=StageThreeHighHigh
- Conditional probability=0.5000
- Children:
- None
- Scenarios:
- ForestChile2
- Expected cost of (sub)tree rooted at node=1416334.4789
-
- Name=Leaf3
- Stage=Ano4Stage
- Parent=StageThreeHighMedium
- Conditional probability=0.5000
- Children:
- None
- Scenarios:
- ForestChile3
- Expected cost of (sub)tree rooted at node=1976192.4347
-
- Name=Leaf4
- Stage=Ano4Stage
- Parent=StageThreeHighMedium
- Conditional probability=0.5000
- Children:
- None
- Scenarios:
- ForestChile4
- Expected cost of (sub)tree rooted at node=1557135.2411
-
- Name=Leaf5
- Stage=Ano4Stage
- Parent=StageThreeHighLow
- Conditional probability=0.5000
- Children:
- None
- Scenarios:
- ForestChile5
- Expected cost of (sub)tree rooted at node=1792595.2536
-
- Name=Leaf6
- Stage=Ano4Stage
- Parent=StageThreeHighLow
- Conditional probability=0.5000
- Children:
- None
- Scenarios:
- ForestChile6
- Expected cost of (sub)tree rooted at node=1071318.2942
-
- Name=Leaf7
- Stage=Ano4Stage
- Parent=StageThreeMediumHigh
- Conditional probability=0.5000
- Children:
- None
- Scenarios:
- ForestChile7
- Expected cost of (sub)tree rooted at node=1798810.6748
-
- Name=Leaf8
- Stage=Ano4Stage
- Parent=StageThreeMediumHigh
- Conditional probability=0.5000
- Children:
- None
- Scenarios:
- ForestChile8
- Expected cost of (sub)tree rooted at node=1179294.5265
-
- Name=Leaf9
- Stage=Ano4Stage
- Parent=StageThreeMediumMedium
- Conditional probability=0.5000
- Children:
- None
- Scenarios:
- ForestChile9
- Expected cost of (sub)tree rooted at node=1181158.7581
-
- Name=RootNode
- Stage=Ano1Stage
- Parent=None
- Conditional probability=1.0000
- Children:
- StageTwoHigh
- StageTwoLow
- StageTwoMedium
- Scenarios:
- ForestChile1
- ForestChile10
- ForestChile11
- ForestChile12
- ForestChile13
- ForestChile14
- ForestChile15
- ForestChile16
- ForestChile17
- ForestChile18
- ForestChile2
- ForestChile3
- ForestChile4
- ForestChile5
- ForestChile6
- ForestChile7
- ForestChile8
- ForestChile9
- Expected cost of (sub)tree rooted at node=4322921.4265
-
- Name=StageThreeHighHigh
- Stage=Ano3Stage
- Parent=StageTwoHigh
- Conditional probability=0.3300
- Children:
- Leaf1
- Leaf2
- Scenarios:
- ForestChile1
- ForestChile2
- Expected cost of (sub)tree rooted at node=3704983.6995
-
- Name=StageThreeHighLow
- Stage=Ano3Stage
- Parent=StageTwoHigh
- Conditional probability=0.3400
- Children:
- Leaf5
- Leaf6
- Scenarios:
- ForestChile5
- ForestChile6
- Expected cost of (sub)tree rooted at node=2213782.3778
-
- Name=StageThreeHighMedium
- Stage=Ano3Stage
- Parent=StageTwoHigh
- Conditional probability=0.3300
- Children:
- Leaf3
- Leaf4
- Scenarios:
- ForestChile3
- ForestChile4
- Expected cost of (sub)tree rooted at node=2835880.1776
-
- Name=StageThreeLowHigh
- Stage=Ano3Stage
- Parent=StageTwoLow
- Conditional probability=0.3300
- Children:
- Leaf13
- Leaf14
- Scenarios:
- ForestChile13
- ForestChile14
- Expected cost of (sub)tree rooted at node=1671225.8394
-
- Name=StageThreeLowLow
- Stage=Ano3Stage
- Parent=StageTwoLow
- Conditional probability=0.3400
- Children:
- Leaf17
- Leaf18
- Scenarios:
- ForestChile17
- ForestChile18
- Expected cost of (sub)tree rooted at node=559039.0819
-
- Name=StageThreeLowMedium
- Stage=Ano3Stage
- Parent=StageTwoLow
- Conditional probability=0.3300
- Children:
- Leaf15
- Leaf16
- Scenarios:
- ForestChile15
- ForestChile16
- Expected cost of (sub)tree rooted at node=813416.1313
-
- Name=StageThreeMediumHigh
- Stage=Ano3Stage
- Parent=StageTwoMedium
- Conditional probability=0.3300
- Children:
- Leaf7
- Leaf8
- Scenarios:
- ForestChile7
- ForestChile8
- Expected cost of (sub)tree rooted at node=2939910.6707
-
- Name=StageThreeMediumLow
- Stage=Ano3Stage
- Parent=StageTwoMedium
- Conditional probability=0.3400
- Children:
- Leaf11
- Leaf12
- Scenarios:
- ForestChile11
- ForestChile12
- Expected cost of (sub)tree rooted at node=1200201.0914
-
- Name=StageThreeMediumMedium
- Stage=Ano3Stage
- Parent=StageTwoMedium
- Conditional probability=0.3300
- Children:
- Leaf10
- Leaf9
- Scenarios:
- ForestChile10
- ForestChile9
- Expected cost of (sub)tree rooted at node=2245728.8799
-
- Name=StageTwoHigh
- Stage=Ano2Stage
- Parent=RootNode
- Conditional probability=0.3300
- Children:
- StageThreeHighHigh
- StageThreeHighLow
- StageThreeHighMedium
- Scenarios:
- ForestChile1
- ForestChile2
- ForestChile3
- ForestChile4
- ForestChile5
- ForestChile6
- Expected cost of (sub)tree rooted at node=4714337.8279
-
- Name=StageTwoLow
- Stage=Ano2Stage
- Parent=RootNode
- Conditional probability=0.3400
- Children:
- StageThreeLowHigh
- StageThreeLowLow
- StageThreeLowMedium
- Scenarios:
- ForestChile13
- ForestChile14
- ForestChile15
- ForestChile16
- ForestChile17
- ForestChile18
- Expected cost of (sub)tree rooted at node=1264294.9748
-
- Name=StageTwoMedium
- Stage=Ano2Stage
- Parent=RootNode
- Conditional probability=0.3300
- Children:
- StageThreeMediumHigh
- StageThreeMediumLow
- StageThreeMediumMedium
- Scenarios:
- ForestChile10
- ForestChile11
- ForestChile12
- ForestChile7
- ForestChile8
- ForestChile9
- Expected cost of (sub)tree rooted at node=2909582.6421
-
-----------------------------------------------------
-Scenarios:
-
- Name=ForestChile1
- Probability=0.0545
- Leaf Node=Leaf1
- Tree node sequence:
- RootNode
- StageTwoHigh
- StageThreeHighHigh
- Leaf1
- Stage= Ano1Stage Cost=1377167.3800
- Stage= Ano2Stage Cost=1803166.7400
- Stage= Ano3Stage Cost=2137790.5803
- Stage= Ano4Stage Cost=1718051.7596
- Total scenario cost=7036176.4599
-
- Name=ForestChile10
- Probability=0.0545
- Leaf Node=Leaf10
- Tree node sequence:
- RootNode
- StageTwoMedium
- StageThreeMediumMedium
- Leaf10
- Stage= Ano1Stage Cost=1377167.3800
- Stage= Ano2Stage Cost=787487.3719
- Stage= Ano3Stage Cost=1249640.3750
- Stage= Ano4Stage Cost=811018.2518
- Total scenario cost=4225313.3786
-
- Name=ForestChile11
- Probability=0.0561
- Leaf Node=Leaf11
- Tree node sequence:
- RootNode
- StageTwoMedium
- StageThreeMediumLow
- Leaf11
- Stage= Ano1Stage Cost=1377167.3800
- Stage= Ano2Stage Cost=790253.2193
- Stage= Ano3Stage Cost=438900.1402
- Stage= Ano4Stage Cost=868924.7120
- Total scenario cost=3475245.4515
-
- Name=ForestChile12
- Probability=0.0561
- Leaf Node=Leaf12
- Tree node sequence:
- RootNode
- StageTwoMedium
- StageThreeMediumLow
- Leaf12
- Stage= Ano1Stage Cost=1377167.3800
- Stage= Ano2Stage Cost=787487.3719
- Stage= Ano3Stage Cost=438900.1402
- Stage= Ano4Stage Cost=653677.1904
- Total scenario cost=3257232.0825
-
- Name=ForestChile13
- Probability=0.0561
- Leaf Node=Leaf13
- Tree node sequence:
- RootNode
- StageTwoLow
- StageThreeLowHigh
- Leaf13
- Stage= Ano1Stage Cost=1377167.3800
- Stage= Ano2Stage Cost=254289.8367
- Stage= Ano3Stage Cost=1287137.2230
- Stage= Ano4Stage Cost=464468.9510
- Total scenario cost=3383063.3907
-
- Name=ForestChile14
- Probability=0.0561
- Leaf Node=Leaf14
- Tree node sequence:
- RootNode
- StageTwoLow
- StageThreeLowHigh
- Leaf14
- Stage= Ano1Stage Cost=1377167.3800
- Stage= Ano2Stage Cost=256544.1268
- Stage= Ano3Stage Cost=1287137.2230
- Stage= Ano4Stage Cost=303708.2818
- Total scenario cost=3224557.0115
-
- Name=ForestChile15
- Probability=0.0561
- Leaf Node=Leaf15
- Tree node sequence:
- RootNode
- StageTwoLow
- StageThreeLowMedium
- Leaf15
- Stage= Ano1Stage Cost=1377167.3800
- Stage= Ano2Stage Cost=256544.1268
- Stage= Ano3Stage Cost=423127.6177
- Stage= Ano4Stage Cost=465157.5790
- Total scenario cost=2521996.7035
-
- Name=ForestChile16
- Probability=0.0561
- Leaf Node=Leaf16
- Tree node sequence:
- RootNode
- StageTwoLow
- StageThreeLowMedium
- Leaf16
- Stage= Ano1Stage Cost=1377167.3800
- Stage= Ano2Stage Cost=256544.1268
- Stage= Ano3Stage Cost=421996.2989
- Stage= Ano4Stage Cost=315419.4481
- Total scenario cost=2371127.2537
-
- Name=ForestChile17
- Probability=0.0578
- Leaf Node=Leaf17
- Tree node sequence:
- RootNode
- StageTwoLow
- StageThreeLowLow
- Leaf17
- Stage= Ano1Stage Cost=1377167.3800
- Stage= Ano2Stage Cost=256544.1268
- Stage= Ano3Stage Cost=290679.4998
- Stage= Ano4Stage Cost=360640.9948
- Total scenario cost=2285032.0013
-
- Name=ForestChile18
- Probability=0.0578
- Leaf Node=Leaf18
- Tree node sequence:
- RootNode
- StageTwoLow
- StageThreeLowLow
- Leaf18
- Stage= Ano1Stage Cost=1377167.3800
- Stage= Ano2Stage Cost=256544.1268
- Stage= Ano3Stage Cost=290679.4998
- Stage= Ano4Stage Cost=176078.1694
- Total scenario cost=2100469.1759
-
- Name=ForestChile2
- Probability=0.0545
- Leaf Node=Leaf2
- Tree node sequence:
- RootNode
- StageTwoHigh
- StageThreeHighHigh
- Leaf2
- Stage= Ano1Stage Cost=1377167.3800
- Stage= Ano2Stage Cost=1803166.7400
- Stage= Ano3Stage Cost=2137790.5803
- Stage= Ano4Stage Cost=1416334.4789
- Total scenario cost=6734459.1792
-
- Name=ForestChile3
- Probability=0.0545
- Leaf Node=Leaf3
- Tree node sequence:
- RootNode
- StageTwoHigh
- StageThreeHighMedium
- Leaf3
- Stage= Ano1Stage Cost=1377167.3800
- Stage= Ano2Stage Cost=1688996.2680
- Stage= Ano3Stage Cost=1069216.3397
- Stage= Ano4Stage Cost=1976192.4347
- Total scenario cost=6111572.4224
-
- Name=ForestChile4
- Probability=0.0545
- Leaf Node=Leaf4
- Tree node sequence:
- RootNode
- StageTwoHigh
- StageThreeHighMedium
- Leaf4
- Stage= Ano1Stage Cost=1377167.3800
- Stage= Ano2Stage Cost=1688587.1730
- Stage= Ano3Stage Cost=1070682.3749
- Stage= Ano4Stage Cost=1557135.2411
- Total scenario cost=5693572.1690
-
- Name=ForestChile5
- Probability=0.0561
- Leaf Node=Leaf5
- Tree node sequence:
- RootNode
- StageTwoHigh
- StageThreeHighLow
- Leaf5
- Stage= Ano1Stage Cost=1377167.3800
- Stage= Ano2Stage Cost=1806873.1020
- Stage= Ano3Stage Cost=781825.6040
- Stage= Ano4Stage Cost=1792595.2536
- Total scenario cost=5758461.3395
-
- Name=ForestChile6
- Probability=0.0561
- Leaf Node=Leaf6
- Tree node sequence:
- RootNode
- StageTwoHigh
- StageThreeHighLow
- Leaf6
- Stage= Ano1Stage Cost=1377167.3800
- Stage= Ano2Stage Cost=1806873.1020
- Stage= Ano3Stage Cost=781825.6040
- Stage= Ano4Stage Cost=1071318.2942
- Total scenario cost=5037184.3801
-
- Name=ForestChile7
- Probability=0.0545
- Leaf Node=Leaf7
- Tree node sequence:
- RootNode
- StageTwoMedium
- StageThreeMediumHigh
- Leaf7
- Stage= Ano1Stage Cost=1377167.3800
- Stage= Ano2Stage Cost=790253.2193
- Stage= Ano3Stage Cost=1450858.0700
- Stage= Ano4Stage Cost=1798810.6748
- Total scenario cost=5417089.3441
-
- Name=ForestChile8
- Probability=0.0545
- Leaf Node=Leaf8
- Tree node sequence:
- RootNode
- StageTwoMedium
- StageThreeMediumHigh
- Leaf8
- Stage= Ano1Stage Cost=1377167.3800
- Stage= Ano2Stage Cost=790253.2193
- Stage= Ano3Stage Cost=1450858.0700
- Stage= Ano4Stage Cost=1179294.5265
- Total scenario cost=4797573.1958
-
- Name=ForestChile9
- Probability=0.0545
- Leaf Node=Leaf9
- Tree node sequence:
- RootNode
- StageTwoMedium
- StageThreeMediumMedium
- Leaf9
- Stage= Ano1Stage Cost=1377167.3800
- Stage= Ano2Stage Cost=790253.2193
- Stage= Ano3Stage Cost=1249640.3750
- Stage= Ano4Stage Cost=1181158.7581
- Total scenario cost=4598219.7323
-
-----------------------------------------------------
-
-***WARNING***: PH exiting with fixed or freed variables in the scenario tree queue whose statuses have not been pushed to the scenario instances. This is because these requests were placed in the queue after the most recent solve. If these statuses are pushed to the scenario instances, a new solution should be obtained in order to reflect accurate solution data within the scenario tree. This warning can be safely ignored in most cases.
-
-Total PH execution time=22.72 seconds
-
-Pushing fixed variable statuses to scenario instances
-Number of discrete variables fixed prior to ef creation=427 (total=507)
-Number of continuous variables fixed prior to ef creation=0 (total=260)
-Creating extensive form for remainder problem
-Solving extensive form
-EF solve completed and solution status is optimal
-EF solve termination condition is optimal
-EF objective: 4408118.67055
-EF gap: 438.71000
-EF bound: 4408557.38055
-
-Extensive form solution:
-----------------------------------------------------
-Tree Nodes:
-
- Name=Leaf1
- Stage=Ano4Stage
- Parent=StageThreeHighHigh
- Variables:
- delta[U19,Ano4]=1.0
- delta[U2,Ano4]=1.0
- delta[U21,Ano4]=1.0
- delta[U22,Ano4]=1.0
- delta[U25,Ano4]=1.0
- delta[U3,Ano4]=1.0
- delta[U4,Ano4]=1.0
- delta[U7,Ano4]=1.0
- delta[U8,Ano4]=1.0
- f[C01,C09,Ano4]=12259.0
- f[C02,C03,Ano4]=6484.2
- f[C03,E1,Ano4]=6484.2
- f[C06,I3,Ano4]=4330.8
- f[C07,C08,Ano4]=7497.3
- f[C08,I2,Ano4]=13614.5
- f[C09,E1,Ano4]=19680.0
- f[I2,I3,Ano4]=13614.5
- f[I3,E1,Ano4]=17945.3
- gamma[C07,C08,Ano4]=1.0
- Derived Variables:
-
- Name=Leaf10
- Stage=Ano4Stage
- Parent=StageThreeMediumMedium
- Variables:
- delta[U19,Ano4]=1.0
- delta[U20,Ano4]=1.0
- delta[U23,Ano4]=1.0
- delta[U25,Ano4]=1.0
- delta[U3,Ano4]=1.0
- delta[U5,Ano4]=1.0
- delta[U8,Ano4]=1.0
- f[C05,I1,Ano4]=6463.8
- f[C06,I3,Ano4]=4330.8
- f[C07,C08,Ano4]=3767.3
- f[C08,I2,Ano4]=7937.7
- f[C09,E1,Ano4]=11149.6
- f[I1,I2,Ano4]=6463.8
- f[I2,I3,Ano4]=14401.5
- f[I3,E1,Ano4]=18732.3
- gamma[C07,C08,Ano4]=1.0
- Derived Variables:
-
- Name=Leaf11
- Stage=Ano4Stage
- Parent=StageThreeMediumLow
- Variables:
- delta[U19,Ano4]=1.0
- delta[U2,Ano4]=1.0
- delta[U20,Ano4]=1.0
- delta[U24,Ano4]=1.0
- delta[U3,Ano4]=1.0
- delta[U8,Ano4]=1.0
- f[C01,C09,Ano4]=3656.2
- f[C05,I1,Ano4]=8391.6
- f[C06,I3,Ano4]=4330.8
- f[C08,I2,Ano4]=4170.4
- f[C09,E1,Ano4]=11077.2
- f[I1,I2,Ano4]=8391.6
- f[I2,I3,Ano4]=12562.0
- f[I3,E1,Ano4]=16892.8
- gamma[C01,C09,Ano4]=1.0
- gamma[C08,I2,Ano4]=1.0
- gamma[C09,E1,Ano4]=1.0
- Derived Variables:
- z[E1,Ano4]=27970.0
-
- Name=Leaf12
- Stage=Ano4Stage
- Parent=StageThreeMediumLow
- Variables:
- delta[U19,Ano4]=1.0
- delta[U24,Ano4]=1.0
- delta[U3,Ano4]=1.0
- delta[U5,Ano4]=1.0
- delta[U8,Ano4]=1.0
- f[C05,I1,Ano4]=8391.6
- f[C06,I3,Ano4]=4330.8
- f[C09,E1,Ano4]=11149.6
- f[I1,I2,Ano4]=8391.6
- f[I2,I3,Ano4]=8391.6
- f[I3,E1,Ano4]=12722.4
- gamma[C01,C09,Ano4]=1.0
- gamma[C09,E1,Ano4]=1.0
- Derived Variables:
- z[E1,Ano4]=23872.0
-
- Name=Leaf13
- Stage=Ano4Stage
- Parent=StageThreeLowHigh
- Variables:
- delta[U14,Ano4]=1.0
- delta[U19,Ano4]=1.0
- delta[U23,Ano4]=1.0
- f[C05,I1,Ano4]=13664.7
- f[C06,I3,Ano4]=4330.8
- f[I1,I2,Ano4]=13664.7
- f[I2,I3,Ano4]=13664.7
- f[I3,E1,Ano4]=17995.5
- Derived Variables:
-
- Name=Leaf14
- Stage=Ano4Stage
- Parent=StageThreeLowHigh
- Variables:
- delta[U14,Ano4]=1.0
- delta[U19,Ano4]=1.0
- delta[U23,Ano4]=1.0
- f[C05,I1,Ano4]=13664.7
- f[C06,I3,Ano4]=4330.8
- f[I1,I2,Ano4]=13664.7
- f[I2,I3,Ano4]=13664.7
- f[I3,E1,Ano4]=17995.5
- Derived Variables:
-
- Name=Leaf15
- Stage=Ano4Stage
- Parent=StageThreeLowMedium
- Variables:
- delta[U19,Ano4]=1.0
- delta[U21,Ano4]=1.0
- delta[U5,Ano4]=1.0
- delta[U8,Ano4]=1.0
- f[C06,I3,Ano4]=4330.8
- f[C08,I2,Ano4]=6117.2
- f[C09,E1,Ano4]=7493.4
- f[I2,I3,Ano4]=6117.2
- f[I3,E1,Ano4]=10448.0
- gamma[C08,I2,Ano4]=1.0
- Derived Variables:
-
- Name=Leaf16
- Stage=Ano4Stage
- Parent=StageThreeLowMedium
- Variables:
- delta[U19,Ano4]=1.0
- delta[U21,Ano4]=1.0
- delta[U6,Ano4]=1.0
- f[C02,C03,Ano4]=6548.4
- f[C03,E1,Ano4]=6548.4
- f[C06,I3,Ano4]=4330.8
- f[C08,I2,Ano4]=6117.2
- f[I2,I3,Ano4]=6117.2
- f[I3,E1,Ano4]=10448.0
- gamma[C08,I2,Ano4]=1.0
- Derived Variables:
-
- Name=Leaf17
- Stage=Ano4Stage
- Parent=StageThreeLowLow
- Variables:
- delta[U19,Ano4]=1.0
- delta[U20,Ano4]=1.0
- delta[U5,Ano4]=1.0
- delta[U8,Ano4]=1.0
- f[C06,I3,Ano4]=4330.8
- f[C08,I2,Ano4]=4170.4
- f[C09,E1,Ano4]=7493.4
- f[I2,I3,Ano4]=4170.4
- f[I3,E1,Ano4]=8501.2
- gamma[C08,I2,Ano4]=1.0
- Derived Variables:
-
- Name=Leaf18
- Stage=Ano4Stage
- Parent=StageThreeLowLow
- Variables:
- delta[U19,Ano4]=1.0
- delta[U20,Ano4]=1.0
- delta[U23,Ano4]=1.0
- f[C05,I1,Ano4]=6463.8
- f[C06,I3,Ano4]=4330.8
- f[C08,I2,Ano4]=4170.4
- f[I1,I2,Ano4]=6463.8
- f[I2,I3,Ano4]=10634.2
- f[I3,E1,Ano4]=14965.0
- gamma[C08,I2,Ano4]=1.0
- Derived Variables:
-
- Name=Leaf2
- Stage=Ano4Stage
- Parent=StageThreeHighHigh
- Variables:
- delta[U19,Ano4]=1.0
- delta[U2,Ano4]=1.0
- delta[U21,Ano4]=1.0
- delta[U22,Ano4]=1.0
- delta[U25,Ano4]=1.0
- delta[U3,Ano4]=1.0
- delta[U4,Ano4]=1.0
- delta[U7,Ano4]=1.0
- delta[U8,Ano4]=1.0
- f[C01,C09,Ano4]=12259.0
- f[C02,C03,Ano4]=6484.2
- f[C03,E1,Ano4]=6484.2
- f[C06,I3,Ano4]=4330.8
- f[C07,C08,Ano4]=7497.3
- f[C08,I2,Ano4]=13614.5
- f[C09,E1,Ano4]=19680.0
- f[I2,I3,Ano4]=13614.5
- f[I3,E1,Ano4]=17945.3
- gamma[C07,C08,Ano4]=1.0
- Derived Variables:
-
- Name=Leaf3
- Stage=Ano4Stage
- Parent=StageThreeHighMedium
- Variables:
- delta[U14,Ano4]=1.0
- delta[U20,Ano4]=1.0
- delta[U21,Ano4]=1.0
- delta[U23,Ano4]=1.0
- delta[U25,Ano4]=1.0
- delta[U3,Ano4]=1.0
- delta[U4,Ano4]=1.0
- delta[U5,Ano4]=1.0
- delta[U8,Ano4]=1.0
- f[C01,C09,Ano4]=8602.8
- f[C05,I1,Ano4]=13664.7
- f[C07,C08,Ano4]=3767.3
- f[C08,I2,Ano4]=14054.9
- f[C09,E1,Ano4]=19752.4
- f[I1,I2,Ano4]=13664.7
- f[I2,I3,Ano4]=27719.6
- f[I3,E1,Ano4]=27719.6
- gamma[C07,C08,Ano4]=1.0
- gamma[C08,I2,Ano4]=1.0
- Derived Variables:
-
- Name=Leaf4
- Stage=Ano4Stage
- Parent=StageThreeHighMedium
- Variables:
- delta[U14,Ano4]=1.0
- delta[U20,Ano4]=1.0
- delta[U21,Ano4]=1.0
- delta[U23,Ano4]=1.0
- delta[U25,Ano4]=1.0
- delta[U3,Ano4]=1.0
- delta[U4,Ano4]=1.0
- delta[U5,Ano4]=1.0
- delta[U8,Ano4]=1.0
- f[C01,C09,Ano4]=8602.8
- f[C05,I1,Ano4]=13664.7
- f[C07,C08,Ano4]=3767.3
- f[C08,I2,Ano4]=14054.9
- f[C09,E1,Ano4]=19752.4
- f[I1,I2,Ano4]=13664.7
- f[I2,I3,Ano4]=27719.6
- f[I3,E1,Ano4]=27719.6
- gamma[C07,C08,Ano4]=1.0
- gamma[C08,I2,Ano4]=1.0
- Derived Variables:
-
- Name=Leaf5
- Stage=Ano4Stage
- Parent=StageThreeHighLow
- Variables:
- delta[U1,Ano4]=1.0
- delta[U2,Ano4]=1.0
- delta[U20,Ano4]=1.0
- delta[U22,Ano4]=1.0
- delta[U24,Ano4]=1.0
- delta[U25,Ano4]=1.0
- delta[U3,Ano4]=1.0
- delta[U4,Ano4]=1.0
- delta[U5,Ano4]=1.0
- delta[U8,Ano4]=1.0
- f[C01,C09,Ano4]=15915.2
- f[C05,I1,Ano4]=8391.6
- f[C07,C08,Ano4]=7497.3
- f[C08,I2,Ano4]=11667.7
- f[C09,E1,Ano4]=27064.8
- f[I1,I2,Ano4]=8391.6
- f[I2,I3,Ano4]=20059.3
- f[I3,E1,Ano4]=20059.3
- gamma[C01,C09,Ano4]=1.0
- gamma[C07,C08,Ano4]=1.0
- Derived Variables:
-
- Name=Leaf6
- Stage=Ano4Stage
- Parent=StageThreeHighLow
- Variables:
- delta[U20,Ano4]=1.0
- delta[U22,Ano4]=1.0
- delta[U24,Ano4]=1.0
- delta[U25,Ano4]=1.0
- delta[U3,Ano4]=1.0
- delta[U4,Ano4]=1.0
- delta[U5,Ano4]=1.0
- delta[U8,Ano4]=1.0
- f[C01,C09,Ano4]=8602.8
- f[C05,I1,Ano4]=8391.6
- f[C07,C08,Ano4]=7497.3
- f[C08,I2,Ano4]=11667.7
- f[C09,E1,Ano4]=19752.4
- f[I1,I2,Ano4]=8391.6
- f[I2,I3,Ano4]=20059.3
- f[I3,E1,Ano4]=20059.3
- gamma[C01,C09,Ano4]=1.0
- gamma[C07,C08,Ano4]=1.0
- Derived Variables:
-
- Name=Leaf7
- Stage=Ano4Stage
- Parent=StageThreeMediumHigh
- Variables:
- delta[U1,Ano4]=1.0
- delta[U14,Ano4]=1.0
- delta[U2,Ano4]=1.0
- delta[U20,Ano4]=1.0
- delta[U21,Ano4]=1.0
- delta[U22,Ano4]=1.0
- delta[U23,Ano4]=1.0
- delta[U25,Ano4]=1.0
- delta[U3,Ano4]=1.0
- delta[U5,Ano4]=1.0
- delta[U8,Ano4]=1.0
- f[C01,C09,Ano4]=7312.4
- f[C05,I1,Ano4]=13664.7
- f[C07,C08,Ano4]=7497.3
- f[C08,I2,Ano4]=17784.9
- f[C09,E1,Ano4]=18462.0
- f[I1,I2,Ano4]=13664.7
- f[I2,I3,Ano4]=31449.6
- f[I3,E1,Ano4]=31449.6
- gamma[C01,C09,Ano4]=1.0
- gamma[C07,C08,Ano4]=1.0
- gamma[C08,I2,Ano4]=1.0
- gamma[C09,E1,Ano4]=1.0
- Derived Variables:
- z[E1,Ano4]=49911.6
-
- Name=Leaf8
- Stage=Ano4Stage
- Parent=StageThreeMediumHigh
- Variables:
- delta[U1,Ano4]=1.0
- delta[U14,Ano4]=1.0
- delta[U2,Ano4]=1.0
- delta[U21,Ano4]=1.0
- delta[U22,Ano4]=1.0
- delta[U23,Ano4]=1.0
- delta[U3,Ano4]=1.0
- delta[U5,Ano4]=1.0
- delta[U8,Ano4]=1.0
- f[C01,C09,Ano4]=7312.4
- f[C05,I1,Ano4]=13664.7
- f[C07,C08,Ano4]=3730.0
- f[C08,I2,Ano4]=9847.2
- f[C09,E1,Ano4]=18462.0
- f[I1,I2,Ano4]=13664.7
- f[I2,I3,Ano4]=23511.9
- f[I3,E1,Ano4]=23511.9
- gamma[C01,C09,Ano4]=1.0
- gamma[C07,C08,Ano4]=1.0
- gamma[C08,I2,Ano4]=1.0
- gamma[C09,E1,Ano4]=1.0
- Derived Variables:
- z[E1,Ano4]=41973.9
-
- Name=Leaf9
- Stage=Ano4Stage
- Parent=StageThreeMediumMedium
- Variables:
- delta[U10,Ano4]=1.0
- delta[U19,Ano4]=1.0
- delta[U24,Ano4]=1.0
- delta[U25,Ano4]=1.0
- delta[U3,Ano4]=1.0
- delta[U5,Ano4]=1.0
- delta[U8,Ano4]=1.0
- f[C02,C03,Ano4]=8217.6
- f[C03,E1,Ano4]=8217.6
- f[C05,I1,Ano4]=8391.6
- f[C06,I3,Ano4]=4330.8
- f[C07,C08,Ano4]=3767.3
- f[C08,I2,Ano4]=3767.3
- f[C09,E1,Ano4]=11149.6
- f[I1,I2,Ano4]=8391.6
- f[I2,I3,Ano4]=12158.9
- f[I3,E1,Ano4]=16489.7
- gamma[C07,C08,Ano4]=1.0
- Derived Variables:
-
- Name=RootNode
- Stage=Ano1Stage
- Parent=None
- Variables:
- delta[U12,Ano1]=1.0
- delta[U13,Ano1]=1.0
- delta[U15,Ano1]=1.0
- delta[U17,Ano1]=1.0
- delta[U18,Ano1]=1.0
- f[C03,E1,Ano1]=21287.0
- f[C04,C03,Ano1]=7560.0
- f[C06,I3,Ano1]=10954.4
- f[I3,E1,Ano1]=10954.4
- gamma[C04,C03,Ano1]=1.0
- gamma[C06,I3,Ano1]=1.0
- Derived Variables:
-
- Name=StageThreeHighHigh
- Stage=Ano3Stage
- Parent=StageTwoHigh
- Variables:
- delta[U1,Ano3]=1.0
- delta[U14,Ano3]=1.0
- delta[U20,Ano3]=1.0
- delta[U23,Ano3]=1.0
- delta[U24,Ano3]=1.0
- delta[U5,Ano3]=1.0
- f[C01,C09,Ano3]=3656.2
- f[C05,I1,Ano3]=22056.3
- f[C08,I2,Ano3]=4170.4
- f[C09,E1,Ano3]=7384.8
- f[I1,I2,Ano3]=22056.3
- f[I2,I3,Ano3]=26226.7
- f[I3,E1,Ano3]=26226.7
- gamma[C01,C09,Ano3]=1.0
- gamma[C08,I2,Ano3]=1.0
- Derived Variables:
-
- Name=StageThreeHighLow
- Stage=Ano3Stage
- Parent=StageTwoHigh
- Variables:
- delta[U14,Ano3]=1.0
- delta[U19,Ano3]=1.0
- delta[U21,Ano3]=1.0
- delta[U23,Ano3]=1.0
- f[C05,I1,Ano3]=13664.7
- f[C06,I3,Ano3]=4330.8
- f[C08,I2,Ano3]=6117.2
- f[I1,I2,Ano3]=13664.7
- f[I2,I3,Ano3]=19781.9
- f[I3,E1,Ano3]=24112.7
- gamma[C08,I2,Ano3]=1.0
- Derived Variables:
-
- Name=StageThreeHighMedium
- Stage=Ano3Stage
- Parent=StageTwoHigh
- Variables:
- delta[U1,Ano3]=1.0
- delta[U19,Ano3]=1.0
- delta[U2,Ano3]=1.0
- delta[U24,Ano3]=1.0
- delta[U7,Ano3]=1.0
- f[C01,C09,Ano3]=7312.4
- f[C02,C03,Ano3]=6484.2
- f[C03,E1,Ano3]=6484.2
- f[C05,I1,Ano3]=8391.6
- f[C06,I3,Ano3]=4330.8
- f[C09,E1,Ano3]=7312.4
- f[I1,I2,Ano3]=8391.6
- f[I2,I3,Ano3]=8391.6
- f[I3,E1,Ano3]=12722.4
- gamma[C01,C09,Ano3]=1.0
- Derived Variables:
-
- Name=StageThreeLowHigh
- Stage=Ano3Stage
- Parent=StageTwoLow
- Variables:
- delta[U10,Ano3]=1.0
- delta[U21,Ano3]=1.0
- delta[U24,Ano3]=1.0
- delta[U6,Ano3]=1.0
- delta[U9,Ano3]=1.0
- f[C02,C03,Ano3]=25487.4
- f[C03,E1,Ano3]=25487.4
- f[C05,I1,Ano3]=8391.6
- f[C08,I2,Ano3]=6117.2
- f[I1,I2,Ano3]=8391.6
- f[I2,I3,Ano3]=14508.8
- f[I3,E1,Ano3]=14508.8
- gamma[C08,I2,Ano3]=1.0
- Derived Variables:
-
- Name=StageThreeLowLow
- Stage=Ano3Stage
- Parent=StageTwoLow
- Variables:
- delta[U10,Ano3]=1.0
- delta[U6,Ano3]=1.0
- delta[U7,Ano3]=1.0
- f[C02,C03,Ano3]=21250.2
- f[C03,E1,Ano3]=21250.2
- Derived Variables:
-
- Name=StageThreeLowMedium
- Stage=Ano3Stage
- Parent=StageTwoLow
- Variables:
- delta[U3,Ano3]=1.0
- delta[U7,Ano3]=1.0
- delta[U9,Ano3]=1.0
- f[C02,C03,Ano3]=17205.6
- f[C03,E1,Ano3]=17205.6
- f[C09,E1,Ano3]=3656.2
- Derived Variables:
-
- Name=StageThreeMediumHigh
- Stage=Ano3Stage
- Parent=StageTwoMedium
- Variables:
- delta[U10,Ano3]=1.0
- delta[U19,Ano3]=1.0
- delta[U24,Ano3]=1.0
- delta[U7,Ano3]=1.0
- delta[U9,Ano3]=1.0
- f[C02,C03,Ano3]=25423.2
- f[C03,E1,Ano3]=25423.2
- f[C05,I1,Ano3]=8391.6
- f[C06,I3,Ano3]=4330.8
- f[I1,I2,Ano3]=8391.6
- f[I2,I3,Ano3]=8391.6
- f[I3,E1,Ano3]=12722.4
- Derived Variables:
-
- Name=StageThreeMediumLow
- Stage=Ano3Stage
- Parent=StageTwoMedium
- Variables:
- delta[U10,Ano3]=1.0
- delta[U14,Ano3]=1.0
- delta[U7,Ano3]=1.0
- f[C02,C03,Ano3]=14701.8
- f[C03,E1,Ano3]=14701.8
- f[C05,I1,Ano3]=7200.9
- f[I1,I2,Ano3]=7200.9
- f[I2,I3,Ano3]=7200.9
- f[I3,E1,Ano3]=7200.9
- Derived Variables:
-
- Name=StageThreeMediumMedium
- Stage=Ano3Stage
- Parent=StageTwoMedium
- Variables:
- delta[U14,Ano3]=1.0
- delta[U21,Ano3]=1.0
- delta[U4,Ano3]=1.0
- delta[U7,Ano3]=1.0
- delta[U9,Ano3]=1.0
- f[C01,C09,Ano3]=8602.8
- f[C02,C03,Ano3]=17205.6
- f[C03,E1,Ano3]=17205.6
- f[C05,I1,Ano3]=7200.9
- f[C08,I2,Ano3]=6117.2
- f[C09,E1,Ano3]=8602.8
- f[I1,I2,Ano3]=7200.9
- f[I2,I3,Ano3]=13318.1
- f[I3,E1,Ano3]=13318.1
- gamma[C01,C09,Ano3]=1.0
- gamma[C08,I2,Ano3]=1.0
- gamma[C09,E1,Ano3]=1.0
- Derived Variables:
- z[E1,Ano3]=39126.5
-
- Name=StageTwoHigh
- Stage=Ano2Stage
- Parent=RootNode
- Variables:
- delta[U10,Ano2]=1.0
- delta[U11,Ano2]=1.0
- delta[U16,Ano2]=1.0
- delta[U6,Ano2]=1.0
- delta[U9,Ano2]=1.0
- f[C02,C03,Ano2]=25487.4
- f[C03,E1,Ano2]=40367.4
- f[C04,C03,Ano2]=14880.0
- gamma[C09,C02,Ano2]=1.0
- gamma[C09,E1,Ano2]=1.0
- Derived Variables:
- z[E1,Ano2]=40367.4
-
- Name=StageTwoLow
- Stage=Ano2Stage
- Parent=RootNode
- Variables:
- delta[U11,Ano2]=1.0
- delta[U16,Ano2]=1.0
- f[C03,E1,Ano2]=14880.0
- f[C04,C03,Ano2]=14880.0
- gamma[C09,C02,Ano2]=1.0
- gamma[C09,E1,Ano2]=1.0
- Derived Variables:
- z[E1,Ano2]=14880.0
-
- Name=StageTwoMedium
- Stage=Ano2Stage
- Parent=RootNode
- Variables:
- delta[U11,Ano2]=1.0
- delta[U16,Ano2]=1.0
- delta[U6,Ano2]=1.0
- f[C02,C03,Ano2]=6548.4
- f[C03,E1,Ano2]=21428.4
- f[C04,C03,Ano2]=14880.0
- Derived Variables:
-
-
-Extensive form costs:
-Scenario Tree Costs
-----------------------------------------------------
-Tree Nodes:
-
- Name=Leaf1
- Stage=Ano4Stage
- Parent=StageThreeHighHigh
- Conditional probability=0.5000
- Children:
- None
- Scenarios:
- ForestChile1
- Expected cost of (sub)tree rooted at node=2015320.0116
-
- Name=Leaf10
- Stage=Ano4Stage
- Parent=StageThreeMediumMedium
- Conditional probability=0.5000
- Children:
- None
- Scenarios:
- ForestChile10
- Expected cost of (sub)tree rooted at node=811219.4048
-
- Name=Leaf11
- Stage=Ano4Stage
- Parent=StageThreeMediumLow
- Conditional probability=0.5000
- Children:
- None
- Scenarios:
- ForestChile11
- Expected cost of (sub)tree rooted at node=878926.6795
-
- Name=Leaf12
- Stage=Ano4Stage
- Parent=StageThreeMediumLow
- Conditional probability=0.5000
- Children:
- None
- Scenarios:
- ForestChile12
- Expected cost of (sub)tree rooted at node=652888.4926
-
- Name=Leaf13
- Stage=Ano4Stage
- Parent=StageThreeLowHigh
- Conditional probability=0.5000
- Children:
- None
- Scenarios:
- ForestChile13
- Expected cost of (sub)tree rooted at node=461997.0979
-
- Name=Leaf14
- Stage=Ano4Stage
- Parent=StageThreeLowHigh
- Conditional probability=0.5000
- Children:
- None
- Scenarios:
- ForestChile14
- Expected cost of (sub)tree rooted at node=330809.9029
-
- Name=Leaf15
- Stage=Ano4Stage
- Parent=StageThreeLowMedium
- Conditional probability=0.5000
- Children:
- None
- Scenarios:
- ForestChile15
- Expected cost of (sub)tree rooted at node=468221.1723
-
- Name=Leaf16
- Stage=Ano4Stage
- Parent=StageThreeLowMedium
- Conditional probability=0.5000
- Children:
- None
- Scenarios:
- ForestChile16
- Expected cost of (sub)tree rooted at node=315419.4481
-
- Name=Leaf17
- Stage=Ano4Stage
- Parent=StageThreeLowLow
- Conditional probability=0.5000
- Children:
- None
- Scenarios:
- ForestChile17
- Expected cost of (sub)tree rooted at node=360779.9713
-
- Name=Leaf18
- Stage=Ano4Stage
- Parent=StageThreeLowLow
- Conditional probability=0.5000
- Children:
- None
- Scenarios:
- ForestChile18
- Expected cost of (sub)tree rooted at node=167712.7704
-
- Name=Leaf2
- Stage=Ano4Stage
- Parent=StageThreeHighHigh
- Conditional probability=0.5000
- Children:
- None
- Scenarios:
- ForestChile2
- Expected cost of (sub)tree rooted at node=1661605.9311
-
- Name=Leaf3
- Stage=Ano4Stage
- Parent=StageThreeHighMedium
- Conditional probability=0.5000
- Children:
- None
- Scenarios:
- ForestChile3
- Expected cost of (sub)tree rooted at node=1957155.1974
-
- Name=Leaf4
- Stage=Ano4Stage
- Parent=StageThreeHighMedium
- Conditional probability=0.5000
- Children:
- None
- Scenarios:
- ForestChile4
- Expected cost of (sub)tree rooted at node=1541870.1414
-
- Name=Leaf5
- Stage=Ano4Stage
- Parent=StageThreeHighLow
- Conditional probability=0.5000
- Children:
- None
- Scenarios:
- ForestChile5
- Expected cost of (sub)tree rooted at node=1797722.8646
-
- Name=Leaf6
- Stage=Ano4Stage
- Parent=StageThreeHighLow
- Conditional probability=0.5000
- Children:
- None
- Scenarios:
- ForestChile6
- Expected cost of (sub)tree rooted at node=1230947.9928
-
- Name=Leaf7
- Stage=Ano4Stage
- Parent=StageThreeMediumHigh
- Conditional probability=0.5000
- Children:
- None
- Scenarios:
- ForestChile7
- Expected cost of (sub)tree rooted at node=1797255.1856
-
- Name=Leaf8
- Stage=Ano4Stage
- Parent=StageThreeMediumHigh
- Conditional probability=0.5000
- Children:
- None
- Scenarios:
- ForestChile8
- Expected cost of (sub)tree rooted at node=1177739.0373
-
- Name=Leaf9
- Stage=Ano4Stage
- Parent=StageThreeMediumMedium
- Conditional probability=0.5000
- Children:
- None
- Scenarios:
- ForestChile9
- Expected cost of (sub)tree rooted at node=1181158.7581
-
- Name=RootNode
- Stage=Ano1Stage
- Parent=None
- Conditional probability=1.0000
- Children:
- StageTwoHigh
- StageTwoLow
- StageTwoMedium
- Scenarios:
- ForestChile1
- ForestChile10
- ForestChile11
- ForestChile12
- ForestChile13
- ForestChile14
- ForestChile15
- ForestChile16
- ForestChile17
- ForestChile18
- ForestChile2
- ForestChile3
- ForestChile4
- ForestChile5
- ForestChile6
- ForestChile7
- ForestChile8
- ForestChile9
- Expected cost of (sub)tree rooted at node=4408118.6706
-
- Name=StageThreeHighHigh
- Stage=Ano3Stage
- Parent=StageTwoHigh
- Conditional probability=0.3300
- Children:
- Leaf1
- Leaf2
- Scenarios:
- ForestChile1
- ForestChile2
- Expected cost of (sub)tree rooted at node=3457973.2575
-
- Name=StageThreeHighLow
- Stage=Ano3Stage
- Parent=StageTwoHigh
- Conditional probability=0.3400
- Children:
- Leaf5
- Leaf6
- Scenarios:
- ForestChile5
- ForestChile6
- Expected cost of (sub)tree rooted at node=2296161.0327
-
- Name=StageThreeHighMedium
- Stage=Ano3Stage
- Parent=StageTwoHigh
- Conditional probability=0.3300
- Children:
- Leaf3
- Leaf4
- Scenarios:
- ForestChile3
- ForestChile4
- Expected cost of (sub)tree rooted at node=2820898.4058
-
- Name=StageThreeLowHigh
- Stage=Ano3Stage
- Parent=StageTwoLow
- Conditional probability=0.3300
- Children:
- Leaf13
- Leaf14
- Scenarios:
- ForestChile13
- ForestChile14
- Expected cost of (sub)tree rooted at node=1683540.7234
-
- Name=StageThreeLowLow
- Stage=Ano3Stage
- Parent=StageTwoLow
- Conditional probability=0.3400
- Children:
- Leaf17
- Leaf18
- Scenarios:
- ForestChile17
- ForestChile18
- Expected cost of (sub)tree rooted at node=554925.8707
-
- Name=StageThreeLowMedium
- Stage=Ano3Stage
- Parent=StageTwoLow
- Conditional probability=0.3300
- Children:
- Leaf15
- Leaf16
- Scenarios:
- ForestChile15
- ForestChile16
- Expected cost of (sub)tree rooted at node=815008.2122
-
- Name=StageThreeMediumHigh
- Stage=Ano3Stage
- Parent=StageTwoMedium
- Conditional probability=0.3300
- Children:
- Leaf7
- Leaf8
- Scenarios:
- ForestChile7
- ForestChile8
- Expected cost of (sub)tree rooted at node=2942951.3301
-
- Name=StageThreeMediumLow
- Stage=Ano3Stage
- Parent=StageTwoMedium
- Conditional probability=0.3400
- Children:
- Leaf11
- Leaf12
- Scenarios:
- ForestChile11
- ForestChile12
- Expected cost of (sub)tree rooted at node=1204807.7263
-
- Name=StageThreeMediumMedium
- Stage=Ano3Stage
- Parent=StageTwoMedium
- Conditional probability=0.3300
- Children:
- Leaf10
- Leaf9
- Scenarios:
- ForestChile10
- ForestChile9
- Expected cost of (sub)tree rooted at node=2245829.4564
-
- Name=StageTwoHigh
- Stage=Ano2Stage
- Parent=RootNode
- Conditional probability=0.3300
- Children:
- StageThreeHighHigh
- StageThreeHighLow
- StageThreeHighMedium
- Scenarios:
- ForestChile1
- ForestChile2
- ForestChile3
- ForestChile4
- ForestChile5
- ForestChile6
- Expected cost of (sub)tree rooted at node=4865201.6720
-
- Name=StageTwoLow
- Stage=Ano2Stage
- Parent=RootNode
- Conditional probability=0.3400
- Children:
- StageThreeLowHigh
- StageThreeLowLow
- StageThreeLowMedium
- Scenarios:
- ForestChile13
- ForestChile14
- ForestChile15
- ForestChile16
- ForestChile17
- ForestChile18
- Expected cost of (sub)tree rooted at node=1364868.6228
-
- Name=StageTwoMedium
- Stage=Ano2Stage
- Parent=RootNode
- Conditional probability=0.3300
- Children:
- StageThreeMediumHigh
- StageThreeMediumLow
- StageThreeMediumMedium
- Scenarios:
- ForestChile10
- ForestChile11
- ForestChile12
- ForestChile7
- ForestChile8
- ForestChile9
- Expected cost of (sub)tree rooted at node=2913270.9305
-
-----------------------------------------------------
-Scenarios:
-
- Name=ForestChile1
- Probability=0.0545
- Leaf Node=Leaf1
- Tree node sequence:
- RootNode
- StageTwoHigh
- StageThreeHighHigh
- Leaf1
- Stage= Ano1Stage Cost=1377167.3800
- Stage= Ano2Stage Cost=2012479.2720
- Stage= Ano3Stage Cost=1619510.2862
- Stage= Ano4Stage Cost=2015320.0116
- Total scenario cost=7024476.9497
-
- Name=ForestChile10
- Probability=0.0545
- Leaf Node=Leaf10
- Tree node sequence:
- RootNode
- StageTwoMedium
- StageThreeMediumMedium
- Leaf10
- Stage= Ano1Stage Cost=1377167.3800
- Stage= Ano2Stage Cost=791338.6440
- Stage= Ano3Stage Cost=1249640.3750
- Stage= Ano4Stage Cost=811219.4048
- Total scenario cost=4229365.8037
-
- Name=ForestChile11
- Probability=0.0561
- Leaf Node=Leaf11
- Tree node sequence:
- RootNode
- StageTwoMedium
- StageThreeMediumLow
- Leaf11
- Stage= Ano1Stage Cost=1377167.3800
- Stage= Ano2Stage Cost=791338.6440
- Stage= Ano3Stage Cost=438900.1402
- Stage= Ano4Stage Cost=878926.6795
- Total scenario cost=3486332.8437
-
- Name=ForestChile12
- Probability=0.0561
- Leaf Node=Leaf12
- Tree node sequence:
- RootNode
- StageTwoMedium
- StageThreeMediumLow
- Leaf12
- Stage= Ano1Stage Cost=1377167.3800
- Stage= Ano2Stage Cost=791338.6440
- Stage= Ano3Stage Cost=438900.1402
- Stage= Ano4Stage Cost=652888.4926
- Total scenario cost=3260294.6568
-
- Name=ForestChile13
- Probability=0.0561
- Leaf Node=Leaf13
- Tree node sequence:
- RootNode
- StageTwoLow
- StageThreeLowHigh
- Leaf13
- Stage= Ano1Stage Cost=1377167.3800
- Stage= Ano2Stage Cost=351672.6780
- Stage= Ano3Stage Cost=1287137.2230
- Stage= Ano4Stage Cost=461997.0979
- Total scenario cost=3477974.3789
-
- Name=ForestChile14
- Probability=0.0561
- Leaf Node=Leaf14
- Tree node sequence:
- RootNode
- StageTwoLow
- StageThreeLowHigh
- Leaf14
- Stage= Ano1Stage Cost=1377167.3800
- Stage= Ano2Stage Cost=351672.6780
- Stage= Ano3Stage Cost=1287137.2230
- Stage= Ano4Stage Cost=330809.9029
- Total scenario cost=3346787.1839
-
- Name=ForestChile15
- Probability=0.0561
- Leaf Node=Leaf15
- Tree node sequence:
- RootNode
- StageTwoLow
- StageThreeLowMedium
- Leaf15
- Stage= Ano1Stage Cost=1377167.3800
- Stage= Ano2Stage Cost=351672.6780
- Stage= Ano3Stage Cost=423187.9020
- Stage= Ano4Stage Cost=468221.1723
- Total scenario cost=2620249.1323
-
- Name=ForestChile16
- Probability=0.0561
- Leaf Node=Leaf16
- Tree node sequence:
- RootNode
- StageTwoLow
- StageThreeLowMedium
- Leaf16
- Stage= Ano1Stage Cost=1377167.3800
- Stage= Ano2Stage Cost=351672.6780
- Stage= Ano3Stage Cost=423187.9020
- Stage= Ano4Stage Cost=315419.4481
- Total scenario cost=2467447.4081
-
- Name=ForestChile17
- Probability=0.0578
- Leaf Node=Leaf17
- Tree node sequence:
- RootNode
- StageTwoLow
- StageThreeLowLow
- Leaf17
- Stage= Ano1Stage Cost=1377167.3800
- Stage= Ano2Stage Cost=351672.6780
- Stage= Ano3Stage Cost=290679.4998
- Stage= Ano4Stage Cost=360779.9713
- Total scenario cost=2380299.5291
-
- Name=ForestChile18
- Probability=0.0578
- Leaf Node=Leaf18
- Tree node sequence:
- RootNode
- StageTwoLow
- StageThreeLowLow
- Leaf18
- Stage= Ano1Stage Cost=1377167.3800
- Stage= Ano2Stage Cost=351672.6780
- Stage= Ano3Stage Cost=290679.4998
- Stage= Ano4Stage Cost=167712.7704
- Total scenario cost=2187232.3282
-
- Name=ForestChile2
- Probability=0.0545
- Leaf Node=Leaf2
- Tree node sequence:
- RootNode
- StageTwoHigh
- StageThreeHighHigh
- Leaf2
- Stage= Ano1Stage Cost=1377167.3800
- Stage= Ano2Stage Cost=2012479.2720
- Stage= Ano3Stage Cost=1619510.2862
- Stage= Ano4Stage Cost=1661605.9311
- Total scenario cost=6670762.8692
-
- Name=ForestChile3
- Probability=0.0545
- Leaf Node=Leaf3
- Tree node sequence:
- RootNode
- StageTwoHigh
- StageThreeHighMedium
- Leaf3
- Stage= Ano1Stage Cost=1377167.3800
- Stage= Ano2Stage Cost=2012479.2720
- Stage= Ano3Stage Cost=1071385.7364
- Stage= Ano4Stage Cost=1957155.1974
- Total scenario cost=6418187.5858
-
- Name=ForestChile4
- Probability=0.0545
- Leaf Node=Leaf4
- Tree node sequence:
- RootNode
- StageTwoHigh
- StageThreeHighMedium
- Leaf4
- Stage= Ano1Stage Cost=1377167.3800
- Stage= Ano2Stage Cost=2012479.2720
- Stage= Ano3Stage Cost=1071385.7364
- Stage= Ano4Stage Cost=1541870.1414
- Total scenario cost=6002902.5298
-
- Name=ForestChile5
- Probability=0.0561
- Leaf Node=Leaf5
- Tree node sequence:
- RootNode
- StageTwoHigh
- StageThreeHighLow
- Leaf5
- Stage= Ano1Stage Cost=1377167.3800
- Stage= Ano2Stage Cost=2012479.2720
- Stage= Ano3Stage Cost=781825.6040
- Stage= Ano4Stage Cost=1797722.8646
- Total scenario cost=5969195.1206
-
- Name=ForestChile6
- Probability=0.0561
- Leaf Node=Leaf6
- Tree node sequence:
- RootNode
- StageTwoHigh
- StageThreeHighLow
- Leaf6
- Stage= Ano1Stage Cost=1377167.3800
- Stage= Ano2Stage Cost=2012479.2720
- Stage= Ano3Stage Cost=781825.6040
- Stage= Ano4Stage Cost=1230947.9928
- Total scenario cost=5402420.2487
-
- Name=ForestChile7
- Probability=0.0545
- Leaf Node=Leaf7
- Tree node sequence:
- RootNode
- StageTwoMedium
- StageThreeMediumHigh
- Leaf7
- Stage= Ano1Stage Cost=1377167.3800
- Stage= Ano2Stage Cost=791338.6440
- Stage= Ano3Stage Cost=1455454.2186
- Stage= Ano4Stage Cost=1797255.1856
- Total scenario cost=5421215.4282
-
- Name=ForestChile8
- Probability=0.0545
- Leaf Node=Leaf8
- Tree node sequence:
- RootNode
- StageTwoMedium
- StageThreeMediumHigh
- Leaf8
- Stage= Ano1Stage Cost=1377167.3800
- Stage= Ano2Stage Cost=791338.6440
- Stage= Ano3Stage Cost=1455454.2186
- Stage= Ano4Stage Cost=1177739.0373
- Total scenario cost=4801699.2799
-
- Name=ForestChile9
- Probability=0.0545
- Leaf Node=Leaf9
- Tree node sequence:
- RootNode
- StageTwoMedium
- StageThreeMediumMedium
- Leaf9
- Stage= Ano1Stage Cost=1377167.3800
- Stage= Ano2Stage Cost=791338.6440
- Stage= Ano3Stage Cost=1249640.3750
- Stage= Ano4Stage Cost=1181158.7581
- Total scenario cost=4599305.1570
-
-----------------------------------------------------
-
-Total execution time=25.73 seconds
diff --git a/pyomo/pysp/tests/unit/baselines/forestry_linearized_gurobi.baseline b/pyomo/pysp/tests/unit/baselines/forestry_linearized_gurobi.baseline
deleted file mode 100644
index 8e11c518fd1..00000000000
--- a/pyomo/pysp/tests/unit/baselines/forestry_linearized_gurobi.baseline
+++ /dev/null
@@ -1,1338 +0,0 @@
-*** Active Objective 'Production_Profit_Objective' on scenario instance 'ForestChile1' will not be used. ***
-*** Active Objective 'Production_Profit_Objective' on scenario instance 'ForestChile10' will not be used. ***
-*** Active Objective 'Production_Profit_Objective' on scenario instance 'ForestChile11' will not be used. ***
-*** Active Objective 'Production_Profit_Objective' on scenario instance 'ForestChile12' will not be used. ***
-*** Active Objective 'Production_Profit_Objective' on scenario instance 'ForestChile13' will not be used. ***
-*** Active Objective 'Production_Profit_Objective' on scenario instance 'ForestChile14' will not be used. ***
-*** Active Objective 'Production_Profit_Objective' on scenario instance 'ForestChile15' will not be used. ***
-*** Active Objective 'Production_Profit_Objective' on scenario instance 'ForestChile16' will not be used. ***
-*** Active Objective 'Production_Profit_Objective' on scenario instance 'ForestChile17' will not be used. ***
-*** Active Objective 'Production_Profit_Objective' on scenario instance 'ForestChile18' will not be used. ***
-*** Active Objective 'Production_Profit_Objective' on scenario instance 'ForestChile2' will not be used. ***
-*** Active Objective 'Production_Profit_Objective' on scenario instance 'ForestChile3' will not be used. ***
-*** Active Objective 'Production_Profit_Objective' on scenario instance 'ForestChile4' will not be used. ***
-*** Active Objective 'Production_Profit_Objective' on scenario instance 'ForestChile5' will not be used. ***
-*** Active Objective 'Production_Profit_Objective' on scenario instance 'ForestChile6' will not be used. ***
-*** Active Objective 'Production_Profit_Objective' on scenario instance 'ForestChile7' will not be used. ***
-*** Active Objective 'Production_Profit_Objective' on scenario instance 'ForestChile8' will not be used. ***
-*** Active Objective 'Production_Profit_Objective' on scenario instance 'ForestChile9' will not be used. ***
-Importing module=/home/gahacke/Project/Pyomo/jenkins/src/pyomo/examples/pysp/forestry/config/rhosetter.py
-Module successfully loaded
-Importing module=/home/gahacke/Project/Pyomo/jenkins/src/pyomo/examples/pysp/forestry/config/boundsetter.py
-Module successfully loaded
-Initializing PH
-
-Executing user rho setter callback function
-Executing user bound setter callback function
-WW PH Extension: Loading user-specified configuration from file=/home/gahacke/Project/Pyomo/jenkins/src/pyomo/examples/pysp/forestry/config/wwph.cfg
-WW PH Extension: Loading variable suffixes from file=/home/gahacke/Project/Pyomo/jenkins/src/pyomo/examples/pysp/forestry/config/wwph-nb.suffixes
-WW PH Extension: Setting mipgap to 0.0210000, as specified in the configuration file
-Starting PH
-
-Initiating PH iteration=0
-Number of discrete variables fixed=0 (total=507)
-Number of continuous variables fixed=0 (total=260)
-First stage cost avg=1589635.6261 Max-Min=422944.35
-Converger=Normalized term diff value is 0.1259 - threshold reached=False
-Cumulative run-time=10.51 seconds
-
-Initiating PH iteration=1
-WW PH Extension: Setting mipgap to 0.0200000, as specified in the configuration file
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=16 (total=507)
-Number of continuous variables fixed=0 (total=260)
-First stage cost avg=1361367.6844 Max-Min=433542.12
-Converger=Normalized term diff value is 0.0840 - threshold reached=False
-Cumulative run-time=62.17 seconds
-
-Initiating PH iteration=2
-WW PH Extension: Setting mipgap to 0.0186680, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=27 (total=507)
-Number of continuous variables fixed=0 (total=260)
-First stage cost avg=1359413.9489 Max-Min=71581.72
-Converger=Normalized term diff value is 0.0362 - threshold reached=False
-Cumulative run-time=98.89 seconds
-
-Initiating PH iteration=3
-WW PH Extension: Setting mipgap to 0.0171483, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=34 (total=507)
-Number of continuous variables fixed=0 (total=260)
-First stage cost avg=1354060.6422 Max-Min=61612.92
-Converger=Normalized term diff value is 0.0244 - threshold reached=False
-Cumulative run-time=121.08 seconds
-
-Initiating PH iteration=4
-WW PH Extension: Setting mipgap to 0.0167720, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=93 (total=507)
-Number of continuous variables fixed=0 (total=260)
-First stage cost avg=1336392.1200 Max-Min=61612.92
-Converger=Normalized term diff value is 0.0116 - threshold reached=False
-Cumulative run-time=140.06 seconds
-
-Initiating PH iteration=5
-WW PH Extension: Setting mipgap to 0.0163669, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=104 (total=507)
-Number of continuous variables fixed=0 (total=260)
-First stage cost avg=1319277.4200 Max-Min=61612.92
-Converger=Normalized term diff value is 0.0117 - threshold reached=False
-Cumulative run-time=155.65 seconds
-
-Initiating PH iteration=6
-WW PH Extension: Setting mipgap to 0.0163693, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=329 (total=507)
-Number of continuous variables fixed=0 (total=260)
-First stage cost avg=1312431.5400 Max-Min=61612.92
-Converger=Normalized term diff value is 0.0097 - threshold reached=False
-Cumulative run-time=166.72 seconds
-
-Initiating PH iteration=7
-WW PH Extension: Setting mipgap to 0.0163045, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=359 (total=507)
-Number of continuous variables fixed=0 (total=260)
-First stage cost avg=1312431.5400 Max-Min=61612.92
-Converger=Normalized term diff value is 0.0064 - threshold reached=False
-Cumulative run-time=177.38 seconds
-
-Initiating PH iteration=8
-WW PH Extension: Setting mipgap to 0.0161995, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=392 (total=507)
-Number of continuous variables fixed=0 (total=260)
-First stage cost avg=1312431.5400 Max-Min=61612.92
-Converger=Normalized term diff value is 0.0064 - threshold reached=False
-Cumulative run-time=187.85 seconds
-
-Initiating PH iteration=9
-WW PH Extension: Setting mipgap to 0.0161989, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=411 (total=507)
-Number of continuous variables fixed=0 (total=260)
-First stage cost avg=1312431.5400 Max-Min=61612.92
-Converger=Normalized term diff value is 0.0071 - threshold reached=False
-Cumulative run-time=198.57 seconds
-
-Initiating PH iteration=10
-WW PH Extension: Setting mipgap to 0.0162220, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=420 (total=507)
-Number of continuous variables fixed=0 (total=260)
-First stage cost avg=1312431.5400 Max-Min=61612.92
-Converger=Normalized term diff value is 0.0054 - threshold reached=False
-Cumulative run-time=209.09 seconds
-Halting PH - reached maximal iteration count=10
-
-Number of discrete variables fixed before final plugin calls=420 (total=507)
-Number of continuous variables fixed before final plugin calls=0 (total=260)
-PH complete
-
-Convergence history:
-Converger=Normalized term diff
-Iteration Metric Value
- 0 0.1259
- 1 0.0840
- 2 0.0362
- 3 0.0244
- 4 0.0116
- 5 0.0117
- 6 0.0097
- 7 0.0064
- 8 0.0064
- 9 0.0071
- 10 0.0054
-
-
-Final number of discrete variables fixed=420 (total=507)
-Final number of continuous variables fixed=0 (total=260)
-
-Computing objective inner bound at xhat solution
-At least one sub-problem solve time was undefined - skipping timing statistics
-At least one sub-problem solve time was undefined - skipping timing statistics
- ** At least one sub-problem failed to solve! **
- Failed sub-problems:
- ForestChile10
- ForestChile15
- ForestChile16
- ForestChile5
- ForestChile6
- ForestChile7
- ForestChile8
- ForestChile9
-
-Failed to compute bound at xhat due to one or more solve failures. Restoring PH to solution at final iteration.
-Generating scenario tree solution from scenario averages
-
-Scenario tree variable values:
-
- Stage: Ano1Stage
- (Scenarios: ForestChile1 ForestChile2 ForestChile3 ForestChile4 ForestChile5 ForestChile6 ForestChile7 ForestChile8 ForestChile9 ForestChile10 ForestChile11 ForestChile12 ForestChile13 ForestChile14 ForestChile15 ForestChile16 ForestChile17 ForestChile18 )
- Variable: delta
- Index: [U11,Ano1] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [U12,Ano1] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [U13,Ano1] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [U17,Ano1] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [U18,Ano1] Values: 0.0000 0.0000 0.0000 0.0000 1.0000 1.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000
-
- Index: [U19,Ano1] Values: 1.0000 1.0000 1.0000 1.0000 0.0000 0.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- (Scenarios: ForestChile1 ForestChile2 ForestChile3 ForestChile4 ForestChile5 ForestChile6 ForestChile7 ForestChile8 ForestChile9 ForestChile10 ForestChile11 ForestChile12 ForestChile13 ForestChile14 ForestChile15 ForestChile16 ForestChile17 ForestChile18 )
- Variable: f
- Index: [C03,E1,Ano1] Values: 21047.0000 21047.0000 21047.0000 21047.0000 21047.0000 21047.0000 21047.0000 21047.0000 21047.0000 21047.0000 21047.0000 21047.0000 21047.0000 21047.0000 21047.0000 21047.0000 21047.0000 21047.0000
-
- Index: [C04,C03,Ano1] Values: 7320.0000 7320.0000 7320.0000 7320.0000 7320.0000 7320.0000 7320.0000 7320.0000 7320.0000 7320.0000 7320.0000 7320.0000 7320.0000 7320.0000 7320.0000 7320.0000 7320.0000 7320.0000
-
- Index: [C06,I3,Ano1] Values: 9510.8000 9510.8000 9510.8000 9510.8000 10954.4000 10954.4000 9510.8000 9510.8000 9510.8000 9510.8000 9510.8000 9510.8000 9510.8000 9510.8000 9510.8000 9510.8000 9510.8000 9510.8000
-
- Index: [I3,E1,Ano1] Values: 9510.8000 9510.8000 9510.8000 9510.8000 10954.4000 10954.4000 9510.8000 9510.8000 9510.8000 9510.8000 9510.8000 9510.8000 9510.8000 9510.8000 9510.8000 9510.8000 9510.8000 9510.8000
-
- (Scenarios: ForestChile1 ForestChile2 ForestChile3 ForestChile4 ForestChile5 ForestChile6 ForestChile7 ForestChile8 ForestChile9 ForestChile10 ForestChile11 ForestChile12 ForestChile13 ForestChile14 ForestChile15 ForestChile16 ForestChile17 ForestChile18 )
- Variable: gamma
- Index: [C04,C03,Ano1] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [C06,I3,Ano1] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Cost Variable: AnoProfit[Ano1]
- Tree Node: RootNode (Scenarios: ForestChile1 ForestChile2 ForestChile3 ForestChile4 ForestChile5 ForestChile6 ForestChile7 ForestChile8 ForestChile9 ForestChile10 ForestChile11 ForestChile12 ForestChile13 ForestChile14 ForestChile15 ForestChile16 ForestChile17 ForestChile18 )
- Values: 1305585.66001305585.66001305585.66001305585.66001367198.58001367198.58001305585.66001305585.66001305585.66001305585.66001305585.66001305585.66001305585.66001305585.66001305585.66001305585.66001305585.66001305585.6600 Max-Min: 61612.9200 Avg: 1312498.6296
- Stage: Ano2Stage
- (Scenarios: ForestChile1 ForestChile2 ForestChile3 ForestChile4 ForestChile5 ForestChile6 )
- Variable: delta
- Index: [U10,Ano2]
- Tree Node: StageTwoHigh Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [U15,Ano2]
- Tree Node: StageTwoHigh Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [U16,Ano2]
- Tree Node: StageTwoHigh Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [U9,Ano2]
- Tree Node: StageTwoHigh Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- (Scenarios: ForestChile7 ForestChile8 ForestChile9 ForestChile10 ForestChile11 ForestChile12 )
- Index: [U15,Ano2]
- Tree Node: StageTwoMedium Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [U16,Ano2]
- Tree Node: StageTwoMedium Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- (Scenarios: ForestChile13 ForestChile14 ForestChile15 ForestChile16 ForestChile17 ForestChile18 )
- Index: [U15,Ano2]
- Tree Node: StageTwoLow Values: 1.0000 1.0000 0.0000 0.0000 0.0000 1.0000
-
- Index: [U16,Ano2]
- Tree Node: StageTwoLow Values: 0.0000 0.0000 1.0000 1.0000 1.0000 0.0000
-
- Index: [U3,Ano2]
- Tree Node: StageTwoLow Values: 0.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [U5,Ano2]
- Tree Node: StageTwoLow Values: 1.0000 0.0000 0.0000 0.0000 0.0000 0.0000
-
- (Scenarios: ForestChile1 ForestChile2 ForestChile3 ForestChile4 ForestChile5 ForestChile6 )
- Variable: f
- Index: [C02,C03,Ano2]
- Tree Node: StageTwoHigh Values: 18939.0000 18939.0000 18939.0000 18939.0000 18939.0000 18939.0000
-
- Index: [C03,E1,Ano2]
- Tree Node: StageTwoHigh Values: 34059.0000 34059.0000 34059.0000 34059.0000 34059.0000 34059.0000
-
- Index: [C04,C03,Ano2]
- Tree Node: StageTwoHigh Values: 15120.0000 15120.0000 15120.0000 15120.0000 15120.0000 15120.0000
-
- (Scenarios: ForestChile7 ForestChile8 ForestChile9 ForestChile10 ForestChile11 ForestChile12 )
- Index: [C03,E1,Ano2]
- Tree Node: StageTwoMedium Values: 15120.0000 15120.0000 15120.0000 15120.0000 15120.0000 15120.0000
-
- Index: [C04,C03,Ano2]
- Tree Node: StageTwoMedium Values: 15120.0000 15120.0000 15120.0000 15120.0000 15120.0000 15120.0000
-
- (Scenarios: ForestChile13 ForestChile14 ForestChile15 ForestChile16 ForestChile17 ForestChile18 )
- Index: [C02,C03,Ano2]
- Tree Node: StageTwoLow Values: 424.4640 423.5407 425.1895 427.2203 411.5947 424.4640
-
- Index: [C03,E1,Ano2]
- Tree Node: StageTwoLow Values: 8128.7538 8125.7996 8129.4792 8131.5101 8113.8536 8116.8078
-
- Index: [C04,C03,Ano2]
- Tree Node: StageTwoLow Values: 7314.8588 7313.7514 7314.1334 7312.1026 7313.7514 7314.8588
-
- Index: [C04,I3,Ano2]
- Tree Node: StageTwoLow Values: 245.1412 246.2486 245.8666 247.8974 246.2486 245.1412
-
- Index: [C09,C02,Ano2]
- Tree Node: StageTwoLow Values: 424.4640 423.5407 425.1895 427.2203 411.5947 424.4640
-
- Index: [C09,C03,Ano2]
- Tree Node: StageTwoLow Values: 389.4309 388.5075 390.1564 392.1872 388.5075 377.4849
-
- Index: [C09,E1,Ano2]
- Tree Node: StageTwoLow Values: 2914.7051 2844.1518 2840.8541 2836.7925 2856.0978 2854.2511
-
- Index: [I3,E1,Ano2]
- Tree Node: StageTwoLow Values: 245.1412 246.2486 245.8666 247.8974 246.2486 245.1412
-
- (Scenarios: ForestChile1 ForestChile2 ForestChile3 ForestChile4 ForestChile5 ForestChile6 )
- (Scenarios: ForestChile7 ForestChile8 ForestChile9 ForestChile10 ForestChile11 ForestChile12 )
- Variable: gamma
- Index: [C02,C09,Ano2]
- Tree Node: StageTwoMedium Values: 1.0000 1.0000 1.0000 1.0000 0.0000 0.0000
-
- Index: [C09,E1,Ano2]
- Tree Node: StageTwoMedium Values: 1.0000 1.0000 1.0000 1.0000 0.0000 0.0000
-
- (Scenarios: ForestChile13 ForestChile14 ForestChile15 ForestChile16 ForestChile17 ForestChile18 )
- Index: [C04,I3,Ano2]
- Tree Node: StageTwoLow Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [C09,C02,Ano2]
- Tree Node: StageTwoLow Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [C09,C03,Ano2]
- Tree Node: StageTwoLow Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [C09,E1,Ano2]
- Tree Node: StageTwoLow Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Cost Variable: AnoProfit[Ano2]
- Tree Node: StageTwoHigh (Scenarios: ForestChile1 ForestChile2 ForestChile3 ForestChile4 ForestChile5 ForestChile6 )
- Values: 1704914.55001704914.55001704914.55001704914.55001704914.55001704914.5500 Max-Min: 0.0000 Avg: 1704914.5500
- Tree Node: StageTwoMedium (Scenarios: ForestChile7 ForestChile8 ForestChile9 ForestChile10 ForestChile11 ForestChile12 )
- Values: 561524.5980 561524.5980 561524.5980 561524.5980 565230.9600 565230.9600 Max-Min: 3706.3620 Avg: 562784.7611
- Tree Node: StageTwoLow (Scenarios: ForestChile13 ForestChile14 ForestChile15 ForestChile16 ForestChile17 ForestChile18 )
- Values: 258730.2086 257053.2135 257047.2561 257038.1174 257088.1556 257060.7345 Max-Min: 1692.0913 Avg: 257333.6626
- Stage: Ano3Stage
- (Scenarios: ForestChile1 ForestChile2 )
- Variable: delta
- Index: [U14,Ano3]
- Tree Node: StageThreeHighHigh Values: 1.0000 1.0000
-
- Index: [U2,Ano3]
- Tree Node: StageThreeHighHigh Values: 1.0000 1.0000
-
- Index: [U20,Ano3]
- Tree Node: StageThreeHighHigh Values: 1.0000 1.0000
-
- Index: [U21,Ano3]
- Tree Node: StageThreeHighHigh Values: 1.0000 1.0000
-
- Index: [U23,Ano3]
- Tree Node: StageThreeHighHigh Values: 1.0000 1.0000
-
- Index: [U7,Ano3]
- Tree Node: StageThreeHighHigh Values: 1.0000 1.0000
-
- (Scenarios: ForestChile3 ForestChile4 )
- Index: [U1,Ano3]
- Tree Node: StageThreeHighMedium Values: 1.0000 1.0000
-
- Index: [U18,Ano3]
- Tree Node: StageThreeHighMedium Values: 1.0000 1.0000
-
- Index: [U20,Ano3]
- Tree Node: StageThreeHighMedium Values: 1.0000 1.0000
-
- Index: [U6,Ano3]
- Tree Node: StageThreeHighMedium Values: 1.0000 1.0000
-
- Index: [U7,Ano3]
- Tree Node: StageThreeHighMedium Values: 1.0000 1.0000
-
- (Scenarios: ForestChile5 ForestChile6 )
- Index: [U19,Ano3]
- Tree Node: StageThreeHighLow Values: 1.0000 1.0000
-
- Index: [U20,Ano3]
- Tree Node: StageThreeHighLow Values: 1.0000 1.0000
-
- Index: [U21,Ano3]
- Tree Node: StageThreeHighLow Values: 1.0000 1.0000
-
- Index: [U22,Ano3]
- Tree Node: StageThreeHighLow Values: 1.0000 1.0000
-
- Index: [U24,Ano3]
- Tree Node: StageThreeHighLow Values: 1.0000 1.0000
-
- (Scenarios: ForestChile7 ForestChile8 )
- Index: [U10,Ano3]
- Tree Node: StageThreeMediumHigh Values: 1.0000 1.0000
-
- Index: [U5,Ano3]
- Tree Node: StageThreeMediumHigh Values: 1.0000 1.0000
-
- Index: [U7,Ano3]
- Tree Node: StageThreeMediumHigh Values: 1.0000 1.0000
-
- Index: [U8,Ano3]
- Tree Node: StageThreeMediumHigh Values: 1.0000 1.0000
-
- Index: [U9,Ano3]
- Tree Node: StageThreeMediumHigh Values: 1.0000 1.0000
-
- (Scenarios: ForestChile9 ForestChile10 )
- Index: [U20,Ano3]
- Tree Node: StageThreeMediumMedium Values: 1.0000 1.0000
-
- Index: [U3,Ano3]
- Tree Node: StageThreeMediumMedium Values: 1.0000 1.0000
-
- Index: [U7,Ano3]
- Tree Node: StageThreeMediumMedium Values: 1.0000 1.0000
-
- Index: [U8,Ano3]
- Tree Node: StageThreeMediumMedium Values: 1.0000 1.0000
-
- Index: [U9,Ano3]
- Tree Node: StageThreeMediumMedium Values: 1.0000 1.0000
-
- (Scenarios: ForestChile11 ForestChile12 )
- Index: [U10,Ano3]
- Tree Node: StageThreeMediumLow Values: 1.0000 1.0000
-
- Index: [U3,Ano3]
- Tree Node: StageThreeMediumLow Values: 1.0000 1.0000
-
- Index: [U6,Ano3]
- Tree Node: StageThreeMediumLow Values: 1.0000 1.0000
-
- Index: [U9,Ano3]
- Tree Node: StageThreeMediumLow Values: 1.0000 1.0000
-
- (Scenarios: ForestChile13 ForestChile14 )
- Index: [U10,Ano3]
- Tree Node: StageThreeLowHigh Values: 1.0000 1.0000
-
- Index: [U21,Ano3]
- Tree Node: StageThreeLowHigh Values: 1.0000 1.0000
-
- Index: [U6,Ano3]
- Tree Node: StageThreeLowHigh Values: 1.0000 1.0000
-
- Index: [U7,Ano3]
- Tree Node: StageThreeLowHigh Values: 1.0000 1.0000
-
- (Scenarios: ForestChile15 ForestChile16 )
- Index: [U10,Ano3]
- Tree Node: StageThreeLowMedium Values: 1.0000 1.0000
-
- Index: [U15,Ano3]
- Tree Node: StageThreeLowMedium Values: 1.0000 1.0000
-
- (Scenarios: ForestChile17 ForestChile18 )
- Index: [U5,Ano3]
- Tree Node: StageThreeLowLow Values: 0.0000 1.0000
-
- Index: [U8,Ano3]
- Tree Node: StageThreeLowLow Values: 1.0000 0.0000
-
- Index: [U9,Ano3]
- Tree Node: StageThreeLowLow Values: 1.0000 1.0000
-
- (Scenarios: ForestChile1 ForestChile2 )
- Variable: f
- Index: [C01,C02,Ano3]
- Tree Node: StageThreeHighHigh Values: 3222.8500 3222.8500
-
- Index: [C01,C09,Ano3]
- Tree Node: StageThreeHighHigh Values: 433.3500 433.3500
-
- Index: [C02,C03,Ano3]
- Tree Node: StageThreeHighHigh Values: 9707.0500 9707.0500
-
- Index: [C03,E1,Ano3]
- Tree Node: StageThreeHighHigh Values: 10140.4000 10140.4000
-
- Index: [C05,I1,Ano3]
- Tree Node: StageThreeHighHigh Values: 13664.7000 13664.7000
-
- Index: [C08,I2,Ano3]
- Tree Node: StageThreeHighHigh Values: 10287.6000 10287.6000
-
- Index: [C09,C03,Ano3]
- Tree Node: StageThreeHighHigh Values: 433.3500 433.3500
-
- Index: [I1,I2,Ano3]
- Tree Node: StageThreeHighHigh Values: 13664.7000 13664.7000
-
- Index: [I2,I3,Ano3]
- Tree Node: StageThreeHighHigh Values: 23952.3000 23952.3000
-
- Index: [I3,E1,Ano3]
- Tree Node: StageThreeHighHigh Values: 23952.3000 23952.3000
-
- (Scenarios: ForestChile3 ForestChile4 )
- Index: [C01,C02,Ano3]
- Tree Node: StageThreeHighMedium Values: 1944.9750 1944.9750
-
- Index: [C01,C09,Ano3]
- Tree Node: StageThreeHighMedium Values: 1711.2250 1711.2250
-
- Index: [C02,C03,Ano3]
- Tree Node: StageThreeHighMedium Values: 14341.7000 14341.7000
-
- Index: [C02,C09,Ano3]
- Tree Node: StageThreeHighMedium Values: 635.8750 635.8750
-
- Index: [C03,E1,Ano3]
- Tree Node: StageThreeHighMedium Values: 14745.1500 14745.1500
-
- Index: [C06,I3,Ano3]
- Tree Node: StageThreeHighMedium Values: 5774.4000 5774.4000
-
- Index: [C08,I2,Ano3]
- Tree Node: StageThreeHighMedium Values: 4170.4000 4170.4000
-
- Index: [C09,C03,Ano3]
- Tree Node: StageThreeHighMedium Values: 403.4500 403.4500
-
- Index: [C09,E1,Ano3]
- Tree Node: StageThreeHighMedium Values: 1943.6500 1943.6500
-
- Index: [I2,I3,Ano3]
- Tree Node: StageThreeHighMedium Values: 4170.4000 4170.4000
-
- Index: [I3,E1,Ano3]
- Tree Node: StageThreeHighMedium Values: 9944.8000 9944.8000
-
- (Scenarios: ForestChile5 ForestChile6 )
- Index: [C05,I1,Ano3]
- Tree Node: StageThreeHighLow Values: 8391.6000 8391.6000
-
- Index: [C06,I3,Ano3]
- Tree Node: StageThreeHighLow Values: 4330.8000 4330.8000
-
- Index: [C07,C08,Ano3]
- Tree Node: StageThreeHighLow Values: 3730.0000 3730.0000
-
- Index: [C08,I2,Ano3]
- Tree Node: StageThreeHighLow Values: 14017.6000 14017.6000
-
- Index: [I1,I2,Ano3]
- Tree Node: StageThreeHighLow Values: 8391.6000 8391.6000
-
- Index: [I2,I3,Ano3]
- Tree Node: StageThreeHighLow Values: 22409.2000 22409.2000
-
- Index: [I3,E1,Ano3]
- Tree Node: StageThreeHighLow Values: 26740.0000 26740.0000
-
- (Scenarios: ForestChile7 ForestChile8 )
- Index: [C02,C03,Ano3]
- Tree Node: StageThreeMediumHigh Values: 24701.1250 24701.1250
-
- Index: [C02,C09,Ano3]
- Tree Node: StageThreeMediumHigh Values: 722.0750 722.0750
-
- Index: [C03,E1,Ano3]
- Tree Node: StageThreeMediumHigh Values: 24701.1250 24701.1250
-
- Index: [C09,E1,Ano3]
- Tree Node: StageThreeMediumHigh Values: 8215.4750 8215.4750
-
- (Scenarios: ForestChile9 ForestChile10 )
- Index: [C02,C03,Ano3]
- Tree Node: StageThreeMediumMedium Values: 17058.2500 17058.2500
-
- Index: [C02,C09,Ano3]
- Tree Node: StageThreeMediumMedium Values: 147.3500 147.3500
-
- Index: [C03,E1,Ano3]
- Tree Node: StageThreeMediumMedium Values: 17058.2500 17058.2500
-
- Index: [C08,I2,Ano3]
- Tree Node: StageThreeMediumMedium Values: 4170.4000 4170.4000
-
- Index: [C09,E1,Ano3]
- Tree Node: StageThreeMediumMedium Values: 7568.3500 7568.3500
-
- Index: [I2,I3,Ano3]
- Tree Node: StageThreeMediumMedium Values: 4170.4000 4170.4000
-
- Index: [I3,E1,Ano3]
- Tree Node: StageThreeMediumMedium Values: 4170.4000 4170.4000
-
- (Scenarios: ForestChile11 ForestChile12 )
- Index: [C02,C03,Ano3]
- Tree Node: StageThreeMediumLow Values: 29143.6000 29143.6000
-
- Index: [C03,E1,Ano3]
- Tree Node: StageThreeMediumLow Values: 29143.6000 29143.6000
-
- Index: [C09,C02,Ano3]
- Tree Node: StageThreeMediumLow Values: 3656.2000 3656.2000
-
- (Scenarios: ForestChile13 ForestChile14 )
- Index: [C02,C03,Ano3]
- Tree Node: StageThreeLowHigh Values: 19983.7000 19983.7000
-
- Index: [C02,C09,Ano3]
- Tree Node: StageThreeLowHigh Values: 1266.5000 1266.5000
-
- Index: [C03,E1,Ano3]
- Tree Node: StageThreeLowHigh Values: 19983.7000 19983.7000
-
- Index: [C08,I2,Ano3]
- Tree Node: StageThreeLowHigh Values: 6117.2000 6117.2000
-
- Index: [C09,E1,Ano3]
- Tree Node: StageThreeLowHigh Values: 1266.5000 1266.5000
-
- Index: [I2,I3,Ano3]
- Tree Node: StageThreeLowHigh Values: 6117.2000 6117.2000
-
- Index: [I3,E1,Ano3]
- Tree Node: StageThreeLowHigh Values: 6117.2000 6117.2000
-
- (Scenarios: ForestChile15 ForestChile16 )
- Index: [C02,C03,Ano3]
- Tree Node: StageThreeLowMedium Values: 8217.6000 8217.6000
-
- Index: [C03,E1,Ano3]
- Tree Node: StageThreeLowMedium Values: 15777.6000 15777.6000
-
- Index: [C04,C03,Ano3]
- Tree Node: StageThreeLowMedium Values: 7560.0000 7560.0000
-
- (Scenarios: ForestChile17 ForestChile18 )
- Index: [C02,C03,Ano3]
- Tree Node: StageThreeLowLow Values: 10721.4000 10721.4000
-
- Index: [C03,E1,Ano3]
- Tree Node: StageThreeLowLow Values: 10721.4000 10721.4000
-
- Index: [C09,E1,Ano3]
- Tree Node: StageThreeLowLow Values: 3764.8000 3728.6000
-
- (Scenarios: ForestChile1 ForestChile2 )
- Variable: gamma
- Index: [C01,C02,Ano3]
- Tree Node: StageThreeHighHigh Values: 1.0000 1.0000
-
- Index: [C01,C09,Ano3]
- Tree Node: StageThreeHighHigh Values: 1.0000 1.0000
-
- Index: [C08,I2,Ano3]
- Tree Node: StageThreeHighHigh Values: 1.0000 1.0000
-
- Index: [C09,C03,Ano3]
- Tree Node: StageThreeHighHigh Values: 1.0000 1.0000
-
- (Scenarios: ForestChile3 ForestChile4 )
- Index: [C01,C02,Ano3]
- Tree Node: StageThreeHighMedium Values: 1.0000 1.0000
-
- Index: [C01,C09,Ano3]
- Tree Node: StageThreeHighMedium Values: 1.0000 1.0000
-
- Index: [C02,C09,Ano3]
- Tree Node: StageThreeHighMedium Values: 1.0000 1.0000
-
- Index: [C08,I2,Ano3]
- Tree Node: StageThreeHighMedium Values: 1.0000 1.0000
-
- Index: [C09,C03,Ano3]
- Tree Node: StageThreeHighMedium Values: 1.0000 1.0000
-
- Index: [C09,E1,Ano3]
- Tree Node: StageThreeHighMedium Values: 1.0000 1.0000
-
- (Scenarios: ForestChile5 ForestChile6 )
- Index: [C07,C08,Ano3]
- Tree Node: StageThreeHighLow Values: 1.0000 1.0000
-
- Index: [C08,I2,Ano3]
- Tree Node: StageThreeHighLow Values: 1.0000 1.0000
-
- (Scenarios: ForestChile7 ForestChile8 )
- (Scenarios: ForestChile9 ForestChile10 )
- Index: [C08,I2,Ano3]
- Tree Node: StageThreeMediumMedium Values: 1.0000 1.0000
-
- (Scenarios: ForestChile11 ForestChile12 )
- Index: [C09,C02,Ano3]
- Tree Node: StageThreeMediumLow Values: 1.0000 1.0000
-
- (Scenarios: ForestChile13 ForestChile14 )
- Index: [C02,C09,Ano3]
- Tree Node: StageThreeLowHigh Values: 1.0000 1.0000
-
- Index: [C08,I2,Ano3]
- Tree Node: StageThreeLowHigh Values: 1.0000 1.0000
-
- (Scenarios: ForestChile15 ForestChile16 )
- (Scenarios: ForestChile17 ForestChile18 )
- Cost Variable: AnoProfit[Ano3]
- Tree Node: StageThreeHighHigh (Scenarios: ForestChile1 ForestChile2 )
- Values: 1632971.89891632971.8989 Max-Min: 0.0000 Avg: 1632971.8989
- Tree Node: StageThreeHighMedium (Scenarios: ForestChile3 ForestChile4 )
- Values: 1073323.17541073323.1754 Max-Min: 0.0000 Avg: 1073323.1754
- Tree Node: StageThreeHighLow (Scenarios: ForestChile5 ForestChile6 )
- Values: 861682.0176 861682.0176 Max-Min: 0.0000 Avg: 861682.0176
- Tree Node: StageThreeMediumHigh (Scenarios: ForestChile7 ForestChile8 )
- Values: 1254692.58491254692.5849 Max-Min: 0.0000 Avg: 1254692.5849
- Tree Node: StageThreeMediumMedium (Scenarios: ForestChile9 ForestChile10 )
- Values: 933965.6258 933965.6258 Max-Min: 0.0000 Avg: 933965.6258
- Tree Node: StageThreeMediumLow (Scenarios: ForestChile11 ForestChile12 )
- Values: 579383.6688 579383.6688 Max-Min: 0.0000 Avg: 579383.6688
- Tree Node: StageThreeLowHigh (Scenarios: ForestChile13 ForestChile14 )
- Values: 879565.6229 879565.6229 Max-Min: 0.0000 Avg: 879565.6229
- Tree Node: StageThreeLowMedium (Scenarios: ForestChile15 ForestChile16 )
- Values: 328157.7624 328157.7624 Max-Min: 0.0000 Avg: 328157.7624
- Tree Node: StageThreeLowLow (Scenarios: ForestChile17 ForestChile18 )
- Values: 200870.5230 200349.2394 Max-Min: 521.2836 Avg: 200609.8812
-Scenario tree costs:
-Scenario Tree Costs
-----------------------------------------------------
-Tree Nodes:
-
- Name=Leaf1
- Stage=Ano4Stage
- Parent=StageThreeHighHigh
- Conditional probability=0.5000
- Children:
- None
- Scenarios:
- ForestChile1
- Expected cost of (sub)tree rooted at node=2194104.3893
-
- Name=Leaf10
- Stage=Ano4Stage
- Parent=StageThreeMediumMedium
- Conditional probability=0.5000
- Children:
- None
- Scenarios:
- ForestChile10
- Expected cost of (sub)tree rooted at node=800425.1637
-
- Name=Leaf11
- Stage=Ano4Stage
- Parent=StageThreeMediumLow
- Conditional probability=0.5000
- Children:
- None
- Scenarios:
- ForestChile11
- Expected cost of (sub)tree rooted at node=839177.1489
-
- Name=Leaf12
- Stage=Ano4Stage
- Parent=StageThreeMediumLow
- Conditional probability=0.5000
- Children:
- None
- Scenarios:
- ForestChile12
- Expected cost of (sub)tree rooted at node=656970.3167
-
- Name=Leaf13
- Stage=Ano4Stage
- Parent=StageThreeLowHigh
- Conditional probability=0.5000
- Children:
- None
- Scenarios:
- ForestChile13
- Expected cost of (sub)tree rooted at node=458171.7761
-
- Name=Leaf14
- Stage=Ano4Stage
- Parent=StageThreeLowHigh
- Conditional probability=0.5000
- Children:
- None
- Scenarios:
- ForestChile14
- Expected cost of (sub)tree rooted at node=333518.6081
-
- Name=Leaf15
- Stage=Ano4Stage
- Parent=StageThreeLowMedium
- Conditional probability=0.5000
- Children:
- None
- Scenarios:
- ForestChile15
- Expected cost of (sub)tree rooted at node=423354.9985
-
- Name=Leaf16
- Stage=Ano4Stage
- Parent=StageThreeLowMedium
- Conditional probability=0.5000
- Children:
- None
- Scenarios:
- ForestChile16
- Expected cost of (sub)tree rooted at node=306076.3945
-
- Name=Leaf17
- Stage=Ano4Stage
- Parent=StageThreeLowLow
- Conditional probability=0.5000
- Children:
- None
- Scenarios:
- ForestChile17
- Expected cost of (sub)tree rooted at node=311374.0375
-
- Name=Leaf18
- Stage=Ano4Stage
- Parent=StageThreeLowLow
- Conditional probability=0.5000
- Children:
- None
- Scenarios:
- ForestChile18
- Expected cost of (sub)tree rooted at node=165562.3735
-
- Name=Leaf2
- Stage=Ano4Stage
- Parent=StageThreeHighHigh
- Conditional probability=0.5000
- Children:
- None
- Scenarios:
- ForestChile2
- Expected cost of (sub)tree rooted at node=1812296.5807
-
- Name=Leaf3
- Stage=Ano4Stage
- Parent=StageThreeHighMedium
- Conditional probability=0.5000
- Children:
- None
- Scenarios:
- ForestChile3
- Expected cost of (sub)tree rooted at node=1980084.2230
-
- Name=Leaf4
- Stage=Ano4Stage
- Parent=StageThreeHighMedium
- Conditional probability=0.5000
- Children:
- None
- Scenarios:
- ForestChile4
- Expected cost of (sub)tree rooted at node=1555764.2472
-
- Name=Leaf5
- Stage=Ano4Stage
- Parent=StageThreeHighLow
- Conditional probability=0.5000
- Children:
- None
- Scenarios:
- ForestChile5
- Expected cost of (sub)tree rooted at node=1816461.3540
-
- Name=Leaf6
- Stage=Ano4Stage
- Parent=StageThreeHighLow
- Conditional probability=0.5000
- Children:
- None
- Scenarios:
- ForestChile6
- Expected cost of (sub)tree rooted at node=1246410.1739
-
- Name=Leaf7
- Stage=Ano4Stage
- Parent=StageThreeMediumHigh
- Conditional probability=0.5000
- Children:
- None
- Scenarios:
- ForestChile7
- Expected cost of (sub)tree rooted at node=1710434.6244
-
- Name=Leaf8
- Stage=Ano4Stage
- Parent=StageThreeMediumHigh
- Conditional probability=0.5000
- Children:
- None
- Scenarios:
- ForestChile8
- Expected cost of (sub)tree rooted at node=1193113.0422
-
- Name=Leaf9
- Stage=Ano4Stage
- Parent=StageThreeMediumMedium
- Conditional probability=0.5000
- Children:
- None
- Scenarios:
- ForestChile9
- Expected cost of (sub)tree rooted at node=1116181.5702
-
- Name=RootNode
- Stage=Ano1Stage
- Parent=None
- Conditional probability=1.0000
- Children:
- StageTwoHigh
- StageTwoLow
- StageTwoMedium
- Scenarios:
- ForestChile1
- ForestChile10
- ForestChile11
- ForestChile12
- ForestChile13
- ForestChile14
- ForestChile15
- ForestChile16
- ForestChile17
- ForestChile18
- ForestChile2
- ForestChile3
- ForestChile4
- ForestChile5
- ForestChile6
- ForestChile7
- ForestChile8
- ForestChile9
- Expected cost of (sub)tree rooted at node=4036749.7397
-
- Name=StageThreeHighHigh
- Stage=Ano3Stage
- Parent=StageTwoHigh
- Conditional probability=0.3300
- Children:
- Leaf1
- Leaf2
- Scenarios:
- ForestChile1
- ForestChile2
- Expected cost of (sub)tree rooted at node=3636172.3839
-
- Name=StageThreeHighLow
- Stage=Ano3Stage
- Parent=StageTwoHigh
- Conditional probability=0.3400
- Children:
- Leaf5
- Leaf6
- Scenarios:
- ForestChile5
- ForestChile6
- Expected cost of (sub)tree rooted at node=2393117.7816
-
- Name=StageThreeHighMedium
- Stage=Ano3Stage
- Parent=StageTwoHigh
- Conditional probability=0.3300
- Children:
- Leaf3
- Leaf4
- Scenarios:
- ForestChile3
- ForestChile4
- Expected cost of (sub)tree rooted at node=2841247.4105
-
- Name=StageThreeLowHigh
- Stage=Ano3Stage
- Parent=StageTwoLow
- Conditional probability=0.3300
- Children:
- Leaf13
- Leaf14
- Scenarios:
- ForestChile13
- ForestChile14
- Expected cost of (sub)tree rooted at node=1275410.8149
-
- Name=StageThreeLowLow
- Stage=Ano3Stage
- Parent=StageTwoLow
- Conditional probability=0.3400
- Children:
- Leaf17
- Leaf18
- Scenarios:
- ForestChile17
- ForestChile18
- Expected cost of (sub)tree rooted at node=439338.7285
-
- Name=StageThreeLowMedium
- Stage=Ano3Stage
- Parent=StageTwoLow
- Conditional probability=0.3300
- Children:
- Leaf15
- Leaf16
- Scenarios:
- ForestChile15
- ForestChile16
- Expected cost of (sub)tree rooted at node=692873.4589
-
- Name=StageThreeMediumHigh
- Stage=Ano3Stage
- Parent=StageTwoMedium
- Conditional probability=0.3300
- Children:
- Leaf7
- Leaf8
- Scenarios:
- ForestChile7
- ForestChile8
- Expected cost of (sub)tree rooted at node=2706466.4183
-
- Name=StageThreeMediumLow
- Stage=Ano3Stage
- Parent=StageTwoMedium
- Conditional probability=0.3400
- Children:
- Leaf11
- Leaf12
- Scenarios:
- ForestChile11
- ForestChile12
- Expected cost of (sub)tree rooted at node=1327457.4016
-
- Name=StageThreeMediumMedium
- Stage=Ano3Stage
- Parent=StageTwoMedium
- Conditional probability=0.3300
- Children:
- Leaf10
- Leaf9
- Scenarios:
- ForestChile10
- ForestChile9
- Expected cost of (sub)tree rooted at node=1892268.9928
-
- Name=StageTwoHigh
- Stage=Ano2Stage
- Parent=RootNode
- Conditional probability=0.3300
- Children:
- StageThreeHighHigh
- StageThreeHighLow
- StageThreeHighMedium
- Scenarios:
- ForestChile1
- ForestChile2
- ForestChile3
- ForestChile4
- ForestChile5
- ForestChile6
- Expected cost of (sub)tree rooted at node=4656123.1279
-
- Name=StageTwoLow
- Stage=Ano2Stage
- Parent=RootNode
- Conditional probability=0.3400
- Children:
- StageThreeLowHigh
- StageThreeLowLow
- StageThreeLowMedium
- Scenarios:
- ForestChile13
- ForestChile14
- ForestChile15
- ForestChile16
- ForestChile17
- ForestChile18
- Expected cost of (sub)tree rooted at node=1057639.1867
-
- Name=StageTwoMedium
- Stage=Ano2Stage
- Parent=RootNode
- Conditional probability=0.3300
- Children:
- StageThreeMediumHigh
- StageThreeMediumLow
- StageThreeMediumMedium
- Scenarios:
- ForestChile10
- ForestChile11
- ForestChile12
- ForestChile7
- ForestChile8
- ForestChile9
- Expected cost of (sub)tree rooted at node=2530442.8002
-
-----------------------------------------------------
-Scenarios:
-
- Name=ForestChile1
- Probability=0.0545
- Leaf Node=Leaf1
- Tree node sequence:
- RootNode
- StageTwoHigh
- StageThreeHighHigh
- Leaf1
- Stage= Ano1Stage Cost=1305585.6600
- Stage= Ano2Stage Cost=1704914.5500
- Stage= Ano3Stage Cost=1632971.8989
- Stage= Ano4Stage Cost=2194104.3893
- Total scenario cost=6837576.4982
-
- Name=ForestChile10
- Probability=0.0545
- Leaf Node=Leaf10
- Tree node sequence:
- RootNode
- StageTwoMedium
- StageThreeMediumMedium
- Leaf10
- Stage= Ano1Stage Cost=1305585.6600
- Stage= Ano2Stage Cost=561524.5980
- Stage= Ano3Stage Cost=933965.6258
- Stage= Ano4Stage Cost=800425.1637
- Total scenario cost=3601501.0476
-
- Name=ForestChile11
- Probability=0.0561
- Leaf Node=Leaf11
- Tree node sequence:
- RootNode
- StageTwoMedium
- StageThreeMediumLow
- Leaf11
- Stage= Ano1Stage Cost=1305585.6600
- Stage= Ano2Stage Cost=565230.9600
- Stage= Ano3Stage Cost=579383.6688
- Stage= Ano4Stage Cost=839177.1489
- Total scenario cost=3289377.4377
-
- Name=ForestChile12
- Probability=0.0561
- Leaf Node=Leaf12
- Tree node sequence:
- RootNode
- StageTwoMedium
- StageThreeMediumLow
- Leaf12
- Stage= Ano1Stage Cost=1305585.6600
- Stage= Ano2Stage Cost=565230.9600
- Stage= Ano3Stage Cost=579383.6688
- Stage= Ano4Stage Cost=656970.3167
- Total scenario cost=3107170.6054
-
- Name=ForestChile13
- Probability=0.0561
- Leaf Node=Leaf13
- Tree node sequence:
- RootNode
- StageTwoLow
- StageThreeLowHigh
- Leaf13
- Stage= Ano1Stage Cost=1305585.6600
- Stage= Ano2Stage Cost=258730.2086
- Stage= Ano3Stage Cost=879565.6229
- Stage= Ano4Stage Cost=458171.7761
- Total scenario cost=2902053.2676
-
- Name=ForestChile14
- Probability=0.0561
- Leaf Node=Leaf14
- Tree node sequence:
- RootNode
- StageTwoLow
- StageThreeLowHigh
- Leaf14
- Stage= Ano1Stage Cost=1305585.6600
- Stage= Ano2Stage Cost=257053.2135
- Stage= Ano3Stage Cost=879565.6229
- Stage= Ano4Stage Cost=333518.6081
- Total scenario cost=2775723.1045
-
- Name=ForestChile15
- Probability=0.0561
- Leaf Node=Leaf15
- Tree node sequence:
- RootNode
- StageTwoLow
- StageThreeLowMedium
- Leaf15
- Stage= Ano1Stage Cost=1305585.6600
- Stage= Ano2Stage Cost=257047.2561
- Stage= Ano3Stage Cost=328157.7624
- Stage= Ano4Stage Cost=423354.9985
- Total scenario cost=2314145.6770
-
- Name=ForestChile16
- Probability=0.0561
- Leaf Node=Leaf16
- Tree node sequence:
- RootNode
- StageTwoLow
- StageThreeLowMedium
- Leaf16
- Stage= Ano1Stage Cost=1305585.6600
- Stage= Ano2Stage Cost=257038.1174
- Stage= Ano3Stage Cost=328157.7624
- Stage= Ano4Stage Cost=306076.3945
- Total scenario cost=2196857.9343
-
- Name=ForestChile17
- Probability=0.0578
- Leaf Node=Leaf17
- Tree node sequence:
- RootNode
- StageTwoLow
- StageThreeLowLow
- Leaf17
- Stage= Ano1Stage Cost=1305585.6600
- Stage= Ano2Stage Cost=257088.1556
- Stage= Ano3Stage Cost=200870.5230
- Stage= Ano4Stage Cost=311374.0375
- Total scenario cost=2074918.3761
-
- Name=ForestChile18
- Probability=0.0578
- Leaf Node=Leaf18
- Tree node sequence:
- RootNode
- StageTwoLow
- StageThreeLowLow
- Leaf18
- Stage= Ano1Stage Cost=1305585.6600
- Stage= Ano2Stage Cost=257060.7345
- Stage= Ano3Stage Cost=200349.2394
- Stage= Ano4Stage Cost=165562.3735
- Total scenario cost=1928558.0074
-
- Name=ForestChile2
- Probability=0.0545
- Leaf Node=Leaf2
- Tree node sequence:
- RootNode
- StageTwoHigh
- StageThreeHighHigh
- Leaf2
- Stage= Ano1Stage Cost=1305585.6600
- Stage= Ano2Stage Cost=1704914.5500
- Stage= Ano3Stage Cost=1632971.8989
- Stage= Ano4Stage Cost=1812296.5807
- Total scenario cost=6455768.6896
-
- Name=ForestChile3
- Probability=0.0545
- Leaf Node=Leaf3
- Tree node sequence:
- RootNode
- StageTwoHigh
- StageThreeHighMedium
- Leaf3
- Stage= Ano1Stage Cost=1305585.6600
- Stage= Ano2Stage Cost=1704914.5500
- Stage= Ano3Stage Cost=1073323.1754
- Stage= Ano4Stage Cost=1980084.2230
- Total scenario cost=6063907.6084
-
- Name=ForestChile4
- Probability=0.0545
- Leaf Node=Leaf4
- Tree node sequence:
- RootNode
- StageTwoHigh
- StageThreeHighMedium
- Leaf4
- Stage= Ano1Stage Cost=1305585.6600
- Stage= Ano2Stage Cost=1704914.5500
- Stage= Ano3Stage Cost=1073323.1754
- Stage= Ano4Stage Cost=1555764.2472
- Total scenario cost=5639587.6326
-
- Name=ForestChile5
- Probability=0.0561
- Leaf Node=Leaf5
- Tree node sequence:
- RootNode
- StageTwoHigh
- StageThreeHighLow
- Leaf5
- Stage= Ano1Stage Cost=1367198.5800
- Stage= Ano2Stage Cost=1704914.5500
- Stage= Ano3Stage Cost=861682.0176
- Stage= Ano4Stage Cost=1816461.3540
- Total scenario cost=5750256.5016
-
- Name=ForestChile6
- Probability=0.0561
- Leaf Node=Leaf6
- Tree node sequence:
- RootNode
- StageTwoHigh
- StageThreeHighLow
- Leaf6
- Stage= Ano1Stage Cost=1367198.5800
- Stage= Ano2Stage Cost=1704914.5500
- Stage= Ano3Stage Cost=861682.0176
- Stage= Ano4Stage Cost=1246410.1739
- Total scenario cost=5180205.3215
-
- Name=ForestChile7
- Probability=0.0545
- Leaf Node=Leaf7
- Tree node sequence:
- RootNode
- StageTwoMedium
- StageThreeMediumHigh
- Leaf7
- Stage= Ano1Stage Cost=1305585.6600
- Stage= Ano2Stage Cost=561524.5980
- Stage= Ano3Stage Cost=1254692.5849
- Stage= Ano4Stage Cost=1710434.6244
- Total scenario cost=4832237.4674
-
- Name=ForestChile8
- Probability=0.0545
- Leaf Node=Leaf8
- Tree node sequence:
- RootNode
- StageTwoMedium
- StageThreeMediumHigh
- Leaf8
- Stage= Ano1Stage Cost=1305585.6600
- Stage= Ano2Stage Cost=561524.5980
- Stage= Ano3Stage Cost=1254692.5849
- Stage= Ano4Stage Cost=1193113.0422
- Total scenario cost=4314915.8852
-
- Name=ForestChile9
- Probability=0.0545
- Leaf Node=Leaf9
- Tree node sequence:
- RootNode
- StageTwoMedium
- StageThreeMediumMedium
- Leaf9
- Stage= Ano1Stage Cost=1305585.6600
- Stage= Ano2Stage Cost=561524.5980
- Stage= Ano3Stage Cost=933965.6258
- Stage= Ano4Stage Cost=1116181.5702
- Total scenario cost=3917257.4540
-
-----------------------------------------------------
-
-***WARNING***: PH exiting with fixed or freed variables in the scenario tree queue whose statuses have not been pushed to the scenario instances. This is because these requests were placed in the queue after the most recent solve. If these statuses are pushed to the scenario instances, a new solution should be obtained in order to reflect accurate solution data within the scenario tree. This warning can be safely ignored in most cases.
-
-Total PH execution time=218.95 seconds
-
-Pushing fixed variable statuses to scenario instances
-Number of discrete variables fixed prior to ef creation=423 (total=507)
-Number of continuous variables fixed prior to ef creation=0 (total=260)
-Creating extensive form for remainder problem
-Solving extensive form
-EF solve failed solution status check:
-Solver Status: ok
-Termination Condition: infeasible
-Solution Status:
-
-
-Total execution time=228.46 seconds
diff --git a/pyomo/pysp/tests/unit/baselines/forestry_linearized_gurobi_darwin.baseline b/pyomo/pysp/tests/unit/baselines/forestry_linearized_gurobi_darwin.baseline
deleted file mode 100644
index 987a4a0deba..00000000000
--- a/pyomo/pysp/tests/unit/baselines/forestry_linearized_gurobi_darwin.baseline
+++ /dev/null
@@ -1,2559 +0,0 @@
-*** Active Objective 'Production_Profit_Objective' on scenario instance 'ForestChile1' will not be used. ***
-*** Active Objective 'Production_Profit_Objective' on scenario instance 'ForestChile10' will not be used. ***
-*** Active Objective 'Production_Profit_Objective' on scenario instance 'ForestChile11' will not be used. ***
-*** Active Objective 'Production_Profit_Objective' on scenario instance 'ForestChile12' will not be used. ***
-*** Active Objective 'Production_Profit_Objective' on scenario instance 'ForestChile13' will not be used. ***
-*** Active Objective 'Production_Profit_Objective' on scenario instance 'ForestChile14' will not be used. ***
-*** Active Objective 'Production_Profit_Objective' on scenario instance 'ForestChile15' will not be used. ***
-*** Active Objective 'Production_Profit_Objective' on scenario instance 'ForestChile16' will not be used. ***
-*** Active Objective 'Production_Profit_Objective' on scenario instance 'ForestChile17' will not be used. ***
-*** Active Objective 'Production_Profit_Objective' on scenario instance 'ForestChile18' will not be used. ***
-*** Active Objective 'Production_Profit_Objective' on scenario instance 'ForestChile2' will not be used. ***
-*** Active Objective 'Production_Profit_Objective' on scenario instance 'ForestChile3' will not be used. ***
-*** Active Objective 'Production_Profit_Objective' on scenario instance 'ForestChile4' will not be used. ***
-*** Active Objective 'Production_Profit_Objective' on scenario instance 'ForestChile5' will not be used. ***
-*** Active Objective 'Production_Profit_Objective' on scenario instance 'ForestChile6' will not be used. ***
-*** Active Objective 'Production_Profit_Objective' on scenario instance 'ForestChile7' will not be used. ***
-*** Active Objective 'Production_Profit_Objective' on scenario instance 'ForestChile8' will not be used. ***
-*** Active Objective 'Production_Profit_Objective' on scenario instance 'ForestChile9' will not be used. ***
-Importing module=/Users/ghackebeil/Projects/Pyomo/pyomo/examples/pysp/forestry/config/rhosetter.py
-Module successfully loaded
-Importing module=/Users/ghackebeil/Projects/Pyomo/pyomo/examples/pysp/forestry/config/boundsetter.py
-Module successfully loaded
-Initializing PH
-
-Executing user rho setter callback function
-Executing user bound setter callback function
-WW PH Extension: Loading user-specified configuration from file=/Users/ghackebeil/Projects/Pyomo/pyomo/examples/pysp/forestry/config/wwph.cfg
-WW PH Extension: Loading variable suffixes from file=/Users/ghackebeil/Projects/Pyomo/pyomo/examples/pysp/forestry/config/wwph-nb.suffixes
-WW PH Extension: Setting mipgap to 0.0210000, as specified in the configuration file
-Starting PH
-
-Initiating PH iteration=0
-Number of discrete variables fixed=0 (total=507)
-Number of continuous variables fixed=0 (total=260)
-First stage cost avg=1574525.5800 Max-Min=415265.52
-Converger=Normalized term diff value is 0.1177 - threshold reached=False
-Cumulative run-time=2.74 seconds
-
-Initiating PH iteration=1
-WW PH Extension: Setting mipgap to 0.0200000, as specified in the configuration file
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=18 (total=507)
-Number of continuous variables fixed=0 (total=260)
-First stage cost avg=1404658.0000 Max-Min=383710.94
-Converger=Normalized term diff value is 0.0604 - threshold reached=False
-Cumulative run-time=10.13 seconds
-
-Initiating PH iteration=2
-WW PH Extension: Setting mipgap to 0.0180517, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=30 (total=507)
-Number of continuous variables fixed=0 (total=260)
-First stage cost avg=1390903.5689 Max-Min=59484.70
-Converger=Normalized term diff value is 0.0349 - threshold reached=False
-Cumulative run-time=16.67 seconds
-
-Initiating PH iteration=3
-WW PH Extension: Setting mipgap to 0.0171828, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=35 (total=507)
-Number of continuous variables fixed=0 (total=260)
-First stage cost avg=1390921.7967 Max-Min=49515.90
-Converger=Normalized term diff value is 0.0257 - threshold reached=False
-Cumulative run-time=20.35 seconds
-
-Initiating PH iteration=4
-WW PH Extension: Setting mipgap to 0.0168724, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=83 (total=507)
-Number of continuous variables fixed=0 (total=260)
-First stage cost avg=1376613.5578 Max-Min= 9968.80
-Converger=Normalized term diff value is 0.0199 - threshold reached=False
-Cumulative run-time=23.05 seconds
-
-Initiating PH iteration=5
-WW PH Extension: Setting mipgap to 0.0166749, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=100 (total=507)
-Number of continuous variables fixed=0 (total=260)
-First stage cost avg=1377167.3800 Max-Min= 0.00
-Converger=Normalized term diff value is 0.0141 - threshold reached=False
-Cumulative run-time=25.84 seconds
-
-Initiating PH iteration=6
-WW PH Extension: Setting mipgap to 0.0164747, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=331 (total=507)
-Number of continuous variables fixed=0 (total=260)
-First stage cost avg=1377167.3800 Max-Min= 0.00
-Converger=Normalized term diff value is 0.0140 - threshold reached=False
-Cumulative run-time=27.95 seconds
-
-Initiating PH iteration=7
-WW PH Extension: Setting mipgap to 0.0164739, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=364 (total=507)
-Number of continuous variables fixed=0 (total=260)
-First stage cost avg=1377167.3800 Max-Min= 0.00
-Converger=Normalized term diff value is 0.0115 - threshold reached=False
-Cumulative run-time=29.98 seconds
-
-Initiating PH iteration=8
-WW PH Extension: Setting mipgap to 0.0163884, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=394 (total=507)
-Number of continuous variables fixed=0 (total=260)
-First stage cost avg=1377167.3800 Max-Min= 0.00
-Converger=Normalized term diff value is 0.0106 - threshold reached=False
-Cumulative run-time=32.07 seconds
-
-Initiating PH iteration=9
-WW PH Extension: Setting mipgap to 0.0163572, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=412 (total=507)
-Number of continuous variables fixed=0 (total=260)
-First stage cost avg=1377167.3800 Max-Min= 0.00
-Converger=Normalized term diff value is 0.0105 - threshold reached=False
-Cumulative run-time=34.06 seconds
-
-Initiating PH iteration=10
-WW PH Extension: Setting mipgap to 0.0163544, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=422 (total=507)
-Number of continuous variables fixed=0 (total=260)
-First stage cost avg=1377167.3800 Max-Min= 0.00
-Converger=Normalized term diff value is 0.0102 - threshold reached=False
-Cumulative run-time=36.02 seconds
-Halting PH - reached maximal iteration count=10
-
-Number of discrete variables fixed before final plugin calls=422 (total=507)
-Number of continuous variables fixed before final plugin calls=0 (total=260)
-PH complete
-
-Convergence history:
-Converger=Normalized term diff
-Iteration Metric Value
- 0 0.1177
- 1 0.0604
- 2 0.0349
- 3 0.0257
- 4 0.0199
- 5 0.0141
- 6 0.0140
- 7 0.0115
- 8 0.0106
- 9 0.0105
- 10 0.0102
-
-
-Final number of discrete variables fixed=422 (total=507)
-Final number of continuous variables fixed=0 (total=260)
-
-Computing objective inner bound at xhat solution
-At least one sub-problem solve time was undefined - skipping timing statistics
-At least one sub-problem solve time was undefined - skipping timing statistics
- ** At least one sub-problem failed to solve! **
- Failed sub-problems:
- ForestChile1
- ForestChile2
- ForestChile3
- ForestChile4
-
-Failed to compute bound at xhat due to one or more solve failures. Restoring PH to solution at final iteration.
-Generating scenario tree solution from scenario averages
-
-Scenario tree variable values:
-
- Stage: Ano1Stage
- (Scenarios: ForestChile1 ForestChile2 ForestChile3 ForestChile4 ForestChile5 ForestChile6 ForestChile7 ForestChile8 ForestChile9 ForestChile10 ForestChile11 ForestChile12 ForestChile13 ForestChile14 ForestChile15 ForestChile16 ForestChile17 ForestChile18 )
- Variable: delta
- Index: [U12,Ano1] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [U13,Ano1] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [U15,Ano1] Values: 0.0000 1.0000 1.0000 1.0000 1.0000 1.0000 0.0000 1.0000 0.0000 0.0000 1.0000 1.0000 0.0000 0.0000 1.0000 1.0000 0.0000 1.0000
-
- Index: [U16,Ano1] Values: 1.0000 0.0000 0.0000 0.0000 0.0000 0.0000 1.0000 0.0000 1.0000 1.0000 0.0000 0.0000 1.0000 1.0000 0.0000 0.0000 1.0000 0.0000
-
- Index: [U17,Ano1] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [U18,Ano1] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- (Scenarios: ForestChile1 ForestChile2 ForestChile3 ForestChile4 ForestChile5 ForestChile6 ForestChile7 ForestChile8 ForestChile9 ForestChile10 ForestChile11 ForestChile12 ForestChile13 ForestChile14 ForestChile15 ForestChile16 ForestChile17 ForestChile18 )
- Variable: f
- Index: [C03,E1,Ano1] Values: 21287.0000 21287.0000 21287.0000 21287.0000 21287.0000 21287.0000 21287.0000 21287.0000 21287.0000 21287.0000 21287.0000 21287.0000 21287.0000 21287.0000 21287.0000 21287.0000 21287.0000 21287.0000
-
- Index: [C04,C03,Ano1] Values: 7560.0000 7560.0000 7560.0000 7560.0000 7560.0000 7560.0000 7560.0000 7560.0000 7560.0000 7560.0000 7560.0000 7560.0000 7560.0000 7560.0000 7560.0000 7560.0000 7560.0000 7560.0000
-
- Index: [C06,I3,Ano1] Values: 10954.4000 10954.4000 10954.4000 10954.4000 10954.4000 10954.4000 10954.4000 10954.4000 10954.4000 10954.4000 10954.4000 10954.4000 10954.4000 10954.4000 10954.4000 10954.4000 10954.4000 10954.4000
-
- Index: [I3,E1,Ano1] Values: 10954.4000 10954.4000 10954.4000 10954.4000 10954.4000 10954.4000 10954.4000 10954.4000 10954.4000 10954.4000 10954.4000 10954.4000 10954.4000 10954.4000 10954.4000 10954.4000 10954.4000 10954.4000
-
- (Scenarios: ForestChile1 ForestChile2 ForestChile3 ForestChile4 ForestChile5 ForestChile6 ForestChile7 ForestChile8 ForestChile9 ForestChile10 ForestChile11 ForestChile12 ForestChile13 ForestChile14 ForestChile15 ForestChile16 ForestChile17 ForestChile18 )
- Variable: gamma
- Index: [C04,C03,Ano1] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [C06,I3,Ano1] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Cost Variable: AnoProfit[Ano1]
- Tree Node: RootNode (Scenarios: ForestChile1 ForestChile2 ForestChile3 ForestChile4 ForestChile5 ForestChile6 ForestChile7 ForestChile8 ForestChile9 ForestChile10 ForestChile11 ForestChile12 ForestChile13 ForestChile14 ForestChile15 ForestChile16 ForestChile17 ForestChile18 )
- Values: 1377167.38001377167.38001377167.38001377167.38001377167.38001377167.38001377167.38001377167.38001377167.38001377167.38001377167.38001377167.38001377167.38001377167.38001377167.38001377167.38001377167.38001377167.3800 Max-Min: 0.0000 Avg: 1377167.3800
- Stage: Ano2Stage
- (Scenarios: ForestChile1 ForestChile2 ForestChile3 ForestChile4 ForestChile5 ForestChile6 )
- Variable: delta
- Index: [U10,Ano2]
- Tree Node: StageTwoHigh Values: 1.0000 1.0000 1.0000 1.0000 0.0000 0.0000
-
- Index: [U11,Ano2]
- Tree Node: StageTwoHigh Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [U3,Ano2]
- Tree Node: StageTwoHigh Values: 0.0000 0.0000 0.0000 0.0000 1.0000 1.0000
-
- Index: [U6,Ano2]
- Tree Node: StageTwoHigh Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [U7,Ano2]
- Tree Node: StageTwoHigh Values: 1.0000 1.0000 1.0000 1.0000 0.0000 0.0000
-
- Index: [U9,Ano2]
- Tree Node: StageTwoHigh Values: 0.0000 0.0000 0.0000 0.0000 1.0000 1.0000
-
- (Scenarios: ForestChile7 ForestChile8 ForestChile9 ForestChile10 ForestChile11 ForestChile12 )
- Index: [U15,Ano2]
- Tree Node: StageTwoMedium Values: 1.0000 0.0000 1.0000 1.0000 0.0000 0.0000
-
- Index: [U16,Ano2]
- Tree Node: StageTwoMedium Values: 0.0000 1.0000 0.0000 0.0000 1.0000 1.0000
-
- Index: [U19,Ano2]
- Tree Node: StageTwoMedium Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [U9,Ano2]
- Tree Node: StageTwoMedium Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- (Scenarios: ForestChile13 ForestChile14 ForestChile15 ForestChile16 ForestChile17 ForestChile18 )
- Index: [U11,Ano2]
- Tree Node: StageTwoLow Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [U3,Ano2]
- Tree Node: StageTwoLow Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- (Scenarios: ForestChile1 ForestChile2 ForestChile3 ForestChile4 ForestChile5 ForestChile6 )
- Variable: f
- Index: [C02,C03,Ano2]
- Tree Node: StageTwoHigh Values: 20825.8235 21036.1800 20854.4326 20884.6884 20501.6235 20501.6235
-
- Index: [C02,C09,Ano2]
- Tree Node: StageTwoHigh Values: 424.3765 214.0200 395.7674 365.5116 0.0000 0.0000
-
- Index: [C03,E1,Ano2]
- Tree Node: StageTwoHigh Values: 28541.5909 28570.2000 28570.2000 28570.2000 28217.3909 28217.3909
-
- Index: [C04,C03,Ano2]
- Tree Node: StageTwoHigh Values: 7320.0000 7320.0000 7320.0000 7320.0000 7320.0000 7320.0000
-
- Index: [C09,C02,Ano2]
- Tree Node: StageTwoHigh Values: 0.0000 0.0000 0.0000 0.0000 3231.8235 3231.8235
-
- Index: [C09,C03,Ano2]
- Tree Node: StageTwoHigh Values: 395.7674 214.0200 395.7674 365.5116 395.7674 395.7674
-
- Index: [C09,E1,Ano2]
- Tree Node: StageTwoHigh Values: 28.6091 0.0000 0.0000 0.0000 28.6091 28.6091
-
- (Scenarios: ForestChile7 ForestChile8 ForestChile9 ForestChile10 ForestChile11 ForestChile12 )
- Index: [C02,C03,Ano2]
- Tree Node: StageTwoMedium Values: 10612.2870 10612.2870 10618.2356 10615.2613 10618.2356 10615.2613
-
- Index: [C02,C09,Ano2]
- Tree Node: StageTwoMedium Values: 109.1130 109.1130 103.1644 106.1387 103.1644 106.1387
-
- Index: [C03,E1,Ano2]
- Tree Node: StageTwoMedium Values: 18178.2356 18178.2356 18178.2356 18178.2356 18178.2356 18178.2356
-
- Index: [C04,C03,Ano2]
- Tree Node: StageTwoMedium Values: 7560.0000 7560.0000 7560.0000 7560.0000 7560.0000 7560.0000
-
- Index: [C06,I3,Ano2]
- Tree Node: StageTwoMedium Values: 4330.8000 4330.8000 4330.8000 4330.8000 4330.8000 4330.8000
-
- Index: [C09,C03,Ano2]
- Tree Node: StageTwoMedium Values: 5.9486 5.9486 0.0000 2.9743 0.0000 2.9743
-
- Index: [C09,E1,Ano2]
- Tree Node: StageTwoMedium Values: 103.1644 103.1644 103.1644 103.1644 103.1644 103.1644
-
- Index: [I3,E1,Ano2]
- Tree Node: StageTwoMedium Values: 4330.8000 4330.8000 4330.8000 4330.8000 4330.8000 4330.8000
-
- (Scenarios: ForestChile13 ForestChile14 ForestChile15 ForestChile16 ForestChile17 ForestChile18 )
- Index: [C02,C03,Ano2]
- Tree Node: StageTwoLow Values: 698.3585 674.2634 682.7033 677.1270 684.5886 680.9394
-
- Index: [C03,E1,Ano2]
- Tree Node: StageTwoLow Values: 6981.2845 6957.1894 6965.6293 6969.1354 6967.5146 6965.3639
-
- Index: [C04,C03,Ano2]
- Tree Node: StageTwoLow Values: 6282.9260 6282.9260 6282.9260 6282.9260 6282.9260 6282.9260
-
- Index: [C04,I3,Ano2]
- Tree Node: StageTwoLow Values: 1037.0740 1037.0740 1037.0740 1037.0740 1037.0740 1037.0740
-
- Index: [C09,C02,Ano2]
- Tree Node: StageTwoLow Values: 698.3585 674.2634 682.7033 677.1270 684.5886 680.9394
-
- Index: [C09,C03,Ano2]
- Tree Node: StageTwoLow Values: 0.0000 0.0000 0.0000 9.0825 0.0000 1.4986
-
- Index: [C09,E1,Ano2]
- Tree Node: StageTwoLow Values: 2957.8415 2981.9366 2973.4967 2969.9906 2971.6114 2973.7620
-
- Index: [I3,E1,Ano2]
- Tree Node: StageTwoLow Values: 1037.0740 1037.0740 1037.0740 1037.0740 1037.0740 1037.0740
-
- (Scenarios: ForestChile1 ForestChile2 ForestChile3 ForestChile4 ForestChile5 ForestChile6 )
- Variable: gamma
- Index: [C02,C09,Ano2]
- Tree Node: StageTwoHigh Values: 1.0000 1.0000 1.0000 1.0000 0.0000 0.0000
-
- Index: [C09,C02,Ano2]
- Tree Node: StageTwoHigh Values: 0.0000 0.0000 0.0000 0.0000 1.0000 1.0000
-
- Index: [C09,C03,Ano2]
- Tree Node: StageTwoHigh Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [C09,E1,Ano2]
- Tree Node: StageTwoHigh Values: 1.0000 0.0000 0.0000 0.0000 1.0000 1.0000
-
- (Scenarios: ForestChile7 ForestChile8 ForestChile9 ForestChile10 ForestChile11 ForestChile12 )
- Index: [C02,C09,Ano2]
- Tree Node: StageTwoMedium Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [C09,C03,Ano2]
- Tree Node: StageTwoMedium Values: 1.0000 1.0000 0.0000 1.0000 0.0000 1.0000
-
- Index: [C09,E1,Ano2]
- Tree Node: StageTwoMedium Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- (Scenarios: ForestChile13 ForestChile14 ForestChile15 ForestChile16 ForestChile17 ForestChile18 )
- Index: [C04,I3,Ano2]
- Tree Node: StageTwoLow Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [C09,C02,Ano2]
- Tree Node: StageTwoLow Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [C09,C03,Ano2]
- Tree Node: StageTwoLow Values: 0.0000 0.0000 0.0000 1.0000 0.0000 1.0000
-
- Index: [C09,E1,Ano2]
- Tree Node: StageTwoLow Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Cost Variable: AnoProfit[Ano2]
- Tree Node: StageTwoHigh (Scenarios: ForestChile1 ForestChile2 ForestChile3 ForestChile4 ForestChile5 ForestChile6 )
- Values: 1415807.24861418560.79591418168.22151418233.57401393822.69611393822.6961 Max-Min: 24738.0998 Avg: 1409576.7403
- Tree Node: StageTwoMedium (Scenarios: ForestChile7 ForestChile8 ForestChile9 ForestChile10 ForestChile11 ForestChile12 )
- Values: 828209.9385 828209.9385 830014.6065 828216.3630 830014.6065 828216.3630 Max-Min: 1804.6680 Avg: 828816.6545
- Tree Node: StageTwoLow (Scenarios: ForestChile13 ForestChile14 ForestChile15 ForestChile16 ForestChile17 ForestChile18 )
- Values: 252072.0500 252142.5281 252117.8414 250334.5678 252112.3269 250329.9007 Max-Min: 1812.6274 Avg: 251515.2316
- Stage: Ano3Stage
- (Scenarios: ForestChile1 ForestChile2 )
- Variable: delta
- Index: [U21,Ano3]
- Tree Node: StageThreeHighHigh Values: 1.0000 1.0000
-
- Index: [U23,Ano3]
- Tree Node: StageThreeHighHigh Values: 1.0000 1.0000
-
- Index: [U24,Ano3]
- Tree Node: StageThreeHighHigh Values: 1.0000 1.0000
-
- Index: [U9,Ano3]
- Tree Node: StageThreeHighHigh Values: 1.0000 1.0000
-
- (Scenarios: ForestChile3 ForestChile4 )
- Index: [U19,Ano3]
- Tree Node: StageThreeHighMedium Values: 1.0000 1.0000
-
- Index: [U20,Ano3]
- Tree Node: StageThreeHighMedium Values: 1.0000 1.0000
-
- Index: [U3,Ano3]
- Tree Node: StageThreeHighMedium Values: 1.0000 1.0000
-
- Index: [U5,Ano3]
- Tree Node: StageThreeHighMedium Values: 1.0000 0.0000
-
- Index: [U8,Ano3]
- Tree Node: StageThreeHighMedium Values: 0.0000 1.0000
-
- Index: [U9,Ano3]
- Tree Node: StageThreeHighMedium Values: 1.0000 1.0000
-
- (Scenarios: ForestChile5 ForestChile6 )
- Index: [U19,Ano3]
- Tree Node: StageThreeHighLow Values: 1.0000 1.0000
-
- Index: [U20,Ano3]
- Tree Node: StageThreeHighLow Values: 1.0000 1.0000
-
- Index: [U21,Ano3]
- Tree Node: StageThreeHighLow Values: 1.0000 1.0000
-
- Index: [U24,Ano3]
- Tree Node: StageThreeHighLow Values: 1.0000 1.0000
-
- Index: [U7,Ano3]
- Tree Node: StageThreeHighLow Values: 1.0000 1.0000
-
- (Scenarios: ForestChile7 ForestChile8 )
- Index: [U10,Ano3]
- Tree Node: StageThreeMediumHigh Values: 1.0000 1.0000
-
- Index: [U3,Ano3]
- Tree Node: StageThreeMediumHigh Values: 1.0000 1.0000
-
- Index: [U5,Ano3]
- Tree Node: StageThreeMediumHigh Values: 1.0000 1.0000
-
- Index: [U6,Ano3]
- Tree Node: StageThreeMediumHigh Values: 1.0000 1.0000
-
- Index: [U7,Ano3]
- Tree Node: StageThreeMediumHigh Values: 1.0000 1.0000
-
- (Scenarios: ForestChile9 ForestChile10 )
- Index: [U1,Ano3]
- Tree Node: StageThreeMediumMedium Values: 1.0000 0.0000
-
- Index: [U10,Ano3]
- Tree Node: StageThreeMediumMedium Values: 1.0000 1.0000
-
- Index: [U2,Ano3]
- Tree Node: StageThreeMediumMedium Values: 0.0000 1.0000
-
- Index: [U21,Ano3]
- Tree Node: StageThreeMediumMedium Values: 1.0000 1.0000
-
- Index: [U5,Ano3]
- Tree Node: StageThreeMediumMedium Values: 1.0000 1.0000
-
- Index: [U6,Ano3]
- Tree Node: StageThreeMediumMedium Values: 1.0000 1.0000
-
- (Scenarios: ForestChile11 ForestChile12 )
- Index: [U10,Ano3]
- Tree Node: StageThreeMediumLow Values: 1.0000 1.0000
-
- Index: [U3,Ano3]
- Tree Node: StageThreeMediumLow Values: 1.0000 1.0000
-
- Index: [U6,Ano3]
- Tree Node: StageThreeMediumLow Values: 1.0000 1.0000
-
- Index: [U7,Ano3]
- Tree Node: StageThreeMediumLow Values: 1.0000 1.0000
-
- (Scenarios: ForestChile13 ForestChile14 )
- Index: [U10,Ano3]
- Tree Node: StageThreeLowHigh Values: 1.0000 1.0000
-
- Index: [U7,Ano3]
- Tree Node: StageThreeLowHigh Values: 1.0000 1.0000
-
- Index: [U9,Ano3]
- Tree Node: StageThreeLowHigh Values: 1.0000 1.0000
-
- (Scenarios: ForestChile15 ForestChile16 )
- Index: [U10,Ano3]
- Tree Node: StageThreeLowMedium Values: 1.0000 1.0000
-
- Index: [U16,Ano3]
- Tree Node: StageThreeLowMedium Values: 1.0000 1.0000
-
- (Scenarios: ForestChile17 ForestChile18 )
- Index: [U5,Ano3]
- Tree Node: StageThreeLowLow Values: 1.0000 1.0000
-
- Index: [U9,Ano3]
- Tree Node: StageThreeLowLow Values: 1.0000 1.0000
-
- (Scenarios: ForestChile1 ForestChile2 )
- Variable: f
- Index: [C02,C03,Ano3]
- Tree Node: StageThreeHighHigh Values: 10721.4000 10721.4000
-
- Index: [C03,E1,Ano3]
- Tree Node: StageThreeHighHigh Values: 10721.4000 10721.4000
-
- Index: [C05,I1,Ano3]
- Tree Node: StageThreeHighHigh Values: 14855.4000 14855.4000
-
- Index: [C08,I2,Ano3]
- Tree Node: StageThreeHighHigh Values: 6117.2000 6117.2000
-
- Index: [I1,I2,Ano3]
- Tree Node: StageThreeHighHigh Values: 14855.4000 14855.4000
-
- Index: [I2,I3,Ano3]
- Tree Node: StageThreeHighHigh Values: 20972.6000 20972.6000
-
- Index: [I3,E1,Ano3]
- Tree Node: StageThreeHighHigh Values: 20972.6000 20972.6000
-
- (Scenarios: ForestChile3 ForestChile4 )
- Index: [C02,C03,Ano3]
- Tree Node: StageThreeHighMedium Values: 11635.7250 11635.7250
-
- Index: [C03,E1,Ano3]
- Tree Node: StageThreeHighMedium Values: 11635.7250 11635.7250
-
- Index: [C06,I3,Ano3]
- Tree Node: StageThreeHighMedium Values: 4330.8000 4330.8000
-
- Index: [C08,I2,Ano3]
- Tree Node: StageThreeHighMedium Values: 4170.4000 4170.4000
-
- Index: [C09,C02,Ano3]
- Tree Node: StageThreeHighMedium Values: 914.3250 914.3250
-
- Index: [C09,E1,Ano3]
- Tree Node: StageThreeHighMedium Values: 6470.4750 6506.6750
-
- Index: [I2,I3,Ano3]
- Tree Node: StageThreeHighMedium Values: 4170.4000 4170.4000
-
- Index: [I3,E1,Ano3]
- Tree Node: StageThreeHighMedium Values: 8501.2000 8501.2000
-
- (Scenarios: ForestChile5 ForestChile6 )
- Index: [C02,C03,Ano3]
- Tree Node: StageThreeHighLow Values: 6484.2000 6484.2000
-
- Index: [C03,E1,Ano3]
- Tree Node: StageThreeHighLow Values: 6484.2000 6484.2000
-
- Index: [C05,I1,Ano3]
- Tree Node: StageThreeHighLow Values: 8391.6000 8391.6000
-
- Index: [C06,I3,Ano3]
- Tree Node: StageThreeHighLow Values: 4330.8000 4330.8000
-
- Index: [C08,I2,Ano3]
- Tree Node: StageThreeHighLow Values: 10287.6000 10287.6000
-
- Index: [I1,I2,Ano3]
- Tree Node: StageThreeHighLow Values: 8391.6000 8391.6000
-
- Index: [I2,I3,Ano3]
- Tree Node: StageThreeHighLow Values: 18679.2000 18679.2000
-
- Index: [I3,E1,Ano3]
- Tree Node: StageThreeHighLow Values: 23010.0000 23010.0000
-
- (Scenarios: ForestChile7 ForestChile8 )
- Index: [C02,C03,Ano3]
- Tree Node: StageThreeMediumHigh Values: 21538.9500 21538.9500
-
- Index: [C03,E1,Ano3]
- Tree Node: StageThreeMediumHigh Values: 21538.9500 21538.9500
-
- Index: [C09,C02,Ano3]
- Tree Node: StageThreeMediumHigh Values: 288.7500 288.7500
-
- Index: [C09,E1,Ano3]
- Tree Node: StageThreeMediumHigh Values: 7096.0500 7096.0500
-
- (Scenarios: ForestChile9 ForestChile10 )
- Index: [C01,C09,Ano3]
- Tree Node: StageThreeMediumMedium Values: 3656.2000 3656.2000
-
- Index: [C02,C03,Ano3]
- Tree Node: StageThreeMediumMedium Values: 14766.0000 14766.0000
-
- Index: [C03,E1,Ano3]
- Tree Node: StageThreeMediumMedium Values: 14766.0000 14766.0000
-
- Index: [C08,I2,Ano3]
- Tree Node: StageThreeMediumMedium Values: 6117.2000 6117.2000
-
- Index: [C09,E1,Ano3]
- Tree Node: StageThreeMediumMedium Values: 7384.8000 7384.8000
-
- Index: [I2,I3,Ano3]
- Tree Node: StageThreeMediumMedium Values: 6117.2000 6117.2000
-
- Index: [I3,E1,Ano3]
- Tree Node: StageThreeMediumMedium Values: 6117.2000 6117.2000
-
- (Scenarios: ForestChile11 ForestChile12 )
- Index: [C02,C03,Ano3]
- Tree Node: StageThreeMediumLow Values: 21611.3250 21611.3250
-
- Index: [C03,E1,Ano3]
- Tree Node: StageThreeMediumLow Values: 21611.3250 21611.3250
-
- Index: [C09,C02,Ano3]
- Tree Node: StageThreeMediumLow Values: 361.1250 361.1250
-
- Index: [C09,E1,Ano3]
- Tree Node: StageThreeMediumLow Values: 3295.0750 3295.0750
-
- (Scenarios: ForestChile13 ForestChile14 )
- Index: [C02,C03,Ano3]
- Tree Node: StageThreeLowHigh Values: 25261.9000 25261.9000
-
- Index: [C02,C09,Ano3]
- Tree Node: StageThreeLowHigh Values: 161.3000 161.3000
-
- Index: [C03,E1,Ano3]
- Tree Node: StageThreeLowHigh Values: 25261.9000 25261.9000
-
- Index: [C09,E1,Ano3]
- Tree Node: StageThreeLowHigh Values: 161.3000 161.3000
-
- (Scenarios: ForestChile15 ForestChile16 )
- Index: [C02,C03,Ano3]
- Tree Node: StageThreeLowMedium Values: 8217.6000 8217.6000
-
- Index: [C03,E1,Ano3]
- Tree Node: StageThreeLowMedium Values: 15777.6000 15777.6000
-
- Index: [C04,C03,Ano3]
- Tree Node: StageThreeLowMedium Values: 7560.0000 7560.0000
-
- (Scenarios: ForestChile17 ForestChile18 )
- Index: [C02,C03,Ano3]
- Tree Node: StageThreeLowLow Values: 10721.4000 10721.4000
-
- Index: [C03,E1,Ano3]
- Tree Node: StageThreeLowLow Values: 10721.4000 10721.4000
-
- Index: [C09,E1,Ano3]
- Tree Node: StageThreeLowLow Values: 3728.6000 3728.6000
-
- (Scenarios: ForestChile1 ForestChile2 )
- Variable: gamma
- Index: [C08,I2,Ano3]
- Tree Node: StageThreeHighHigh Values: 1.0000 1.0000
-
- (Scenarios: ForestChile3 ForestChile4 )
- Index: [C08,I2,Ano3]
- Tree Node: StageThreeHighMedium Values: 1.0000 1.0000
-
- Index: [C09,C02,Ano3]
- Tree Node: StageThreeHighMedium Values: 1.0000 1.0000
-
- Index: [C09,E1,Ano3]
- Tree Node: StageThreeHighMedium Values: 1.0000 1.0000
-
- (Scenarios: ForestChile5 ForestChile6 )
- Index: [C08,I2,Ano3]
- Tree Node: StageThreeHighLow Values: 1.0000 1.0000
-
- (Scenarios: ForestChile7 ForestChile8 )
- Index: [C09,C02,Ano3]
- Tree Node: StageThreeMediumHigh Values: 1.0000 1.0000
-
- (Scenarios: ForestChile9 ForestChile10 )
- Index: [C01,C09,Ano3]
- Tree Node: StageThreeMediumMedium Values: 1.0000 1.0000
-
- Index: [C08,I2,Ano3]
- Tree Node: StageThreeMediumMedium Values: 1.0000 1.0000
-
- (Scenarios: ForestChile11 ForestChile12 )
- Index: [C09,C02,Ano3]
- Tree Node: StageThreeMediumLow Values: 1.0000 1.0000
-
- (Scenarios: ForestChile13 ForestChile14 )
- Index: [C02,C09,Ano3]
- Tree Node: StageThreeLowHigh Values: 1.0000 1.0000
-
- (Scenarios: ForestChile15 ForestChile16 )
- (Scenarios: ForestChile17 ForestChile18 )
- Cost Variable: AnoProfit[Ano3]
- Tree Node: StageThreeHighHigh (Scenarios: ForestChile1 ForestChile2 )
- Values: 1529980.33411529980.3341 Max-Min: 0.0000 Avg: 1529980.3341
- Tree Node: StageThreeHighMedium (Scenarios: ForestChile3 ForestChile4 )
- Values: 1083245.48401084734.3936 Max-Min: 1488.9096 Avg: 1083989.9388
- Tree Node: StageThreeHighLow (Scenarios: ForestChile5 ForestChile6 )
- Values: 956755.2654 956755.2654 Max-Min: 0.0000 Avg: 956755.2654
- Tree Node: StageThreeMediumHigh (Scenarios: ForestChile7 ForestChile8 )
- Values: 1090960.40091090960.4009 Max-Min: 0.0000 Avg: 1090960.4009
- Tree Node: StageThreeMediumMedium (Scenarios: ForestChile9 ForestChile10 )
- Values: 910016.8560 910016.8560 Max-Min: 0.0000 Avg: 910016.8560
- Tree Node: StageThreeMediumLow (Scenarios: ForestChile11 ForestChile12 )
- Values: 502640.6349 502640.6349 Max-Min: 0.0000 Avg: 502640.6349
- Tree Node: StageThreeLowHigh (Scenarios: ForestChile13 ForestChile14 )
- Values: 820075.0271 820075.0271 Max-Min: 0.0000 Avg: 820075.0271
- Tree Node: StageThreeLowMedium (Scenarios: ForestChile15 ForestChile16 )
- Values: 328157.7624 328157.7624 Max-Min: 0.0000 Avg: 328157.7624
- Tree Node: StageThreeLowLow (Scenarios: ForestChile17 ForestChile18 )
- Values: 200349.2394 200349.2394 Max-Min: 0.0000 Avg: 200349.2394
-Scenario tree costs:
-Scenario Tree Costs
-----------------------------------------------------
-Tree Nodes:
-
- Name=Leaf1
- Stage=Ano4Stage
- Parent=StageThreeHighHigh
- Conditional probability=0.5000
- Children:
- None
- Scenarios:
- ForestChile1
- Expected cost of (sub)tree rooted at node=2261976.9101
-
- Name=Leaf10
- Stage=Ano4Stage
- Parent=StageThreeMediumMedium
- Conditional probability=0.5000
- Children:
- None
- Scenarios:
- ForestChile10
- Expected cost of (sub)tree rooted at node=800586.5789
-
- Name=Leaf11
- Stage=Ano4Stage
- Parent=StageThreeMediumLow
- Conditional probability=0.5000
- Children:
- None
- Scenarios:
- ForestChile11
- Expected cost of (sub)tree rooted at node=795901.4235
-
- Name=Leaf12
- Stage=Ano4Stage
- Parent=StageThreeMediumLow
- Conditional probability=0.5000
- Children:
- None
- Scenarios:
- ForestChile12
- Expected cost of (sub)tree rooted at node=636289.2427
-
- Name=Leaf13
- Stage=Ano4Stage
- Parent=StageThreeLowHigh
- Conditional probability=0.5000
- Children:
- None
- Scenarios:
- ForestChile13
- Expected cost of (sub)tree rooted at node=417573.7078
-
- Name=Leaf14
- Stage=Ano4Stage
- Parent=StageThreeLowHigh
- Conditional probability=0.5000
- Children:
- None
- Scenarios:
- ForestChile14
- Expected cost of (sub)tree rooted at node=337428.3663
-
- Name=Leaf15
- Stage=Ano4Stage
- Parent=StageThreeLowMedium
- Conditional probability=0.5000
- Children:
- None
- Scenarios:
- ForestChile15
- Expected cost of (sub)tree rooted at node=468221.1723
-
- Name=Leaf16
- Stage=Ano4Stage
- Parent=StageThreeLowMedium
- Conditional probability=0.5000
- Children:
- None
- Scenarios:
- ForestChile16
- Expected cost of (sub)tree rooted at node=302479.6543
-
- Name=Leaf17
- Stage=Ano4Stage
- Parent=StageThreeLowLow
- Conditional probability=0.5000
- Children:
- None
- Scenarios:
- ForestChile17
- Expected cost of (sub)tree rooted at node=361453.2174
-
- Name=Leaf18
- Stage=Ano4Stage
- Parent=StageThreeLowLow
- Conditional probability=0.5000
- Children:
- None
- Scenarios:
- ForestChile18
- Expected cost of (sub)tree rooted at node=146956.1648
-
- Name=Leaf2
- Stage=Ano4Stage
- Parent=StageThreeHighHigh
- Conditional probability=0.5000
- Children:
- None
- Scenarios:
- ForestChile2
- Expected cost of (sub)tree rooted at node=1779234.3530
-
- Name=Leaf3
- Stage=Ano4Stage
- Parent=StageThreeHighMedium
- Conditional probability=0.5000
- Children:
- None
- Scenarios:
- ForestChile3
- Expected cost of (sub)tree rooted at node=1981218.2627
-
- Name=Leaf4
- Stage=Ano4Stage
- Parent=StageThreeHighMedium
- Conditional probability=0.5000
- Children:
- None
- Scenarios:
- ForestChile4
- Expected cost of (sub)tree rooted at node=1546287.1379
-
- Name=Leaf5
- Stage=Ano4Stage
- Parent=StageThreeHighLow
- Conditional probability=0.5000
- Children:
- None
- Scenarios:
- ForestChile5
- Expected cost of (sub)tree rooted at node=1847650.6640
-
- Name=Leaf6
- Stage=Ano4Stage
- Parent=StageThreeHighLow
- Conditional probability=0.5000
- Children:
- None
- Scenarios:
- ForestChile6
- Expected cost of (sub)tree rooted at node=1242163.3917
-
- Name=Leaf7
- Stage=Ano4Stage
- Parent=StageThreeMediumHigh
- Conditional probability=0.5000
- Children:
- None
- Scenarios:
- ForestChile7
- Expected cost of (sub)tree rooted at node=1747296.3928
-
- Name=Leaf8
- Stage=Ano4Stage
- Parent=StageThreeMediumHigh
- Conditional probability=0.5000
- Children:
- None
- Scenarios:
- ForestChile8
- Expected cost of (sub)tree rooted at node=1151652.7200
-
- Name=Leaf9
- Stage=Ano4Stage
- Parent=StageThreeMediumMedium
- Conditional probability=0.5000
- Children:
- None
- Scenarios:
- ForestChile9
- Expected cost of (sub)tree rooted at node=1174323.4390
-
- Name=RootNode
- Stage=Ano1Stage
- Parent=None
- Conditional probability=1.0000
- Children:
- StageTwoHigh
- StageTwoLow
- StageTwoMedium
- Scenarios:
- ForestChile1
- ForestChile10
- ForestChile11
- ForestChile12
- ForestChile13
- ForestChile14
- ForestChile15
- ForestChile16
- ForestChile17
- ForestChile18
- ForestChile2
- ForestChile3
- ForestChile4
- ForestChile5
- ForestChile6
- ForestChile7
- ForestChile8
- ForestChile9
- Expected cost of (sub)tree rooted at node=4067781.2866
-
- Name=StageThreeHighHigh
- Stage=Ano3Stage
- Parent=StageTwoHigh
- Conditional probability=0.3300
- Children:
- Leaf1
- Leaf2
- Scenarios:
- ForestChile1
- ForestChile2
- Expected cost of (sub)tree rooted at node=3550585.9656
-
- Name=StageThreeHighLow
- Stage=Ano3Stage
- Parent=StageTwoHigh
- Conditional probability=0.3400
- Children:
- Leaf5
- Leaf6
- Scenarios:
- ForestChile5
- ForestChile6
- Expected cost of (sub)tree rooted at node=2501662.2933
-
- Name=StageThreeHighMedium
- Stage=Ano3Stage
- Parent=StageTwoHigh
- Conditional probability=0.3300
- Children:
- Leaf3
- Leaf4
- Scenarios:
- ForestChile3
- ForestChile4
- Expected cost of (sub)tree rooted at node=2846998.1843
-
- Name=StageThreeLowHigh
- Stage=Ano3Stage
- Parent=StageTwoLow
- Conditional probability=0.3300
- Children:
- Leaf13
- Leaf14
- Scenarios:
- ForestChile13
- ForestChile14
- Expected cost of (sub)tree rooted at node=1197576.0641
-
- Name=StageThreeLowLow
- Stage=Ano3Stage
- Parent=StageTwoLow
- Conditional probability=0.3400
- Children:
- Leaf17
- Leaf18
- Scenarios:
- ForestChile17
- ForestChile18
- Expected cost of (sub)tree rooted at node=454553.9305
-
- Name=StageThreeLowMedium
- Stage=Ano3Stage
- Parent=StageTwoLow
- Conditional probability=0.3300
- Children:
- Leaf15
- Leaf16
- Scenarios:
- ForestChile15
- ForestChile16
- Expected cost of (sub)tree rooted at node=713508.1757
-
- Name=StageThreeMediumHigh
- Stage=Ano3Stage
- Parent=StageTwoMedium
- Conditional probability=0.3300
- Children:
- Leaf7
- Leaf8
- Scenarios:
- ForestChile7
- ForestChile8
- Expected cost of (sub)tree rooted at node=2540434.9573
-
- Name=StageThreeMediumLow
- Stage=Ano3Stage
- Parent=StageTwoMedium
- Conditional probability=0.3400
- Children:
- Leaf11
- Leaf12
- Scenarios:
- ForestChile11
- ForestChile12
- Expected cost of (sub)tree rooted at node=1218735.9681
-
- Name=StageThreeMediumMedium
- Stage=Ano3Stage
- Parent=StageTwoMedium
- Conditional probability=0.3300
- Children:
- Leaf10
- Leaf9
- Scenarios:
- ForestChile10
- ForestChile9
- Expected cost of (sub)tree rooted at node=1897471.8650
-
- Name=StageTwoHigh
- Stage=Ano2Stage
- Parent=RootNode
- Conditional probability=0.3300
- Children:
- StageThreeHighHigh
- StageThreeHighLow
- StageThreeHighMedium
- Scenarios:
- ForestChile1
- ForestChile2
- ForestChile3
- ForestChile4
- ForestChile5
- ForestChile6
- Expected cost of (sub)tree rooted at node=4377575.1978
-
- Name=StageTwoLow
- Stage=Ano2Stage
- Parent=RootNode
- Conditional probability=0.3400
- Children:
- StageThreeLowHigh
- StageThreeLowLow
- StageThreeLowMedium
- Scenarios:
- ForestChile13
- ForestChile14
- ForestChile15
- ForestChile16
- ForestChile17
- ForestChile18
- Expected cost of (sub)tree rooted at node=1037278.1855
-
- Name=StageTwoMedium
- Stage=Ano2Stage
- Parent=RootNode
- Conditional probability=0.3300
- Children:
- StageThreeMediumHigh
- StageThreeMediumLow
- StageThreeMediumMedium
- Scenarios:
- ForestChile10
- ForestChile11
- ForestChile12
- ForestChile7
- ForestChile8
- ForestChile9
- Expected cost of (sub)tree rooted at node=2707089.4190
-
-----------------------------------------------------
-Scenarios:
-
- Name=ForestChile1
- Probability=0.0545
- Leaf Node=Leaf1
- Tree node sequence:
- RootNode
- StageTwoHigh
- StageThreeHighHigh
- Leaf1
- Stage= Ano1Stage Cost=1377167.3800
- Stage= Ano2Stage Cost=1415807.2486
- Stage= Ano3Stage Cost=1529980.3341
- Stage= Ano4Stage Cost=2261976.9101
- Total scenario cost=6584931.8728
-
- Name=ForestChile10
- Probability=0.0545
- Leaf Node=Leaf10
- Tree node sequence:
- RootNode
- StageTwoMedium
- StageThreeMediumMedium
- Leaf10
- Stage= Ano1Stage Cost=1377167.3800
- Stage= Ano2Stage Cost=828216.3630
- Stage= Ano3Stage Cost=910016.8560
- Stage= Ano4Stage Cost=800586.5789
- Total scenario cost=3915987.1779
-
- Name=ForestChile11
- Probability=0.0561
- Leaf Node=Leaf11
- Tree node sequence:
- RootNode
- StageTwoMedium
- StageThreeMediumLow
- Leaf11
- Stage= Ano1Stage Cost=1377167.3800
- Stage= Ano2Stage Cost=830014.6065
- Stage= Ano3Stage Cost=502640.6349
- Stage= Ano4Stage Cost=795901.4235
- Total scenario cost=3505724.0449
-
- Name=ForestChile12
- Probability=0.0561
- Leaf Node=Leaf12
- Tree node sequence:
- RootNode
- StageTwoMedium
- StageThreeMediumLow
- Leaf12
- Stage= Ano1Stage Cost=1377167.3800
- Stage= Ano2Stage Cost=828216.3630
- Stage= Ano3Stage Cost=502640.6349
- Stage= Ano4Stage Cost=636289.2427
- Total scenario cost=3344313.6207
-
- Name=ForestChile13
- Probability=0.0561
- Leaf Node=Leaf13
- Tree node sequence:
- RootNode
- StageTwoLow
- StageThreeLowHigh
- Leaf13
- Stage= Ano1Stage Cost=1377167.3800
- Stage= Ano2Stage Cost=252072.0500
- Stage= Ano3Stage Cost=820075.0271
- Stage= Ano4Stage Cost=417573.7078
- Total scenario cost=2866888.1648
-
- Name=ForestChile14
- Probability=0.0561
- Leaf Node=Leaf14
- Tree node sequence:
- RootNode
- StageTwoLow
- StageThreeLowHigh
- Leaf14
- Stage= Ano1Stage Cost=1377167.3800
- Stage= Ano2Stage Cost=252142.5281
- Stage= Ano3Stage Cost=820075.0271
- Stage= Ano4Stage Cost=337428.3663
- Total scenario cost=2786813.3015
-
- Name=ForestChile15
- Probability=0.0561
- Leaf Node=Leaf15
- Tree node sequence:
- RootNode
- StageTwoLow
- StageThreeLowMedium
- Leaf15
- Stage= Ano1Stage Cost=1377167.3800
- Stage= Ano2Stage Cost=252117.8414
- Stage= Ano3Stage Cost=328157.7624
- Stage= Ano4Stage Cost=468221.1723
- Total scenario cost=2425664.1561
-
- Name=ForestChile16
- Probability=0.0561
- Leaf Node=Leaf16
- Tree node sequence:
- RootNode
- StageTwoLow
- StageThreeLowMedium
- Leaf16
- Stage= Ano1Stage Cost=1377167.3800
- Stage= Ano2Stage Cost=250334.5678
- Stage= Ano3Stage Cost=328157.7624
- Stage= Ano4Stage Cost=302479.6543
- Total scenario cost=2258139.3645
-
- Name=ForestChile17
- Probability=0.0578
- Leaf Node=Leaf17
- Tree node sequence:
- RootNode
- StageTwoLow
- StageThreeLowLow
- Leaf17
- Stage= Ano1Stage Cost=1377167.3800
- Stage= Ano2Stage Cost=252112.3269
- Stage= Ano3Stage Cost=200349.2394
- Stage= Ano4Stage Cost=361453.2174
- Total scenario cost=2191082.1637
-
- Name=ForestChile18
- Probability=0.0578
- Leaf Node=Leaf18
- Tree node sequence:
- RootNode
- StageTwoLow
- StageThreeLowLow
- Leaf18
- Stage= Ano1Stage Cost=1377167.3800
- Stage= Ano2Stage Cost=250329.9007
- Stage= Ano3Stage Cost=200349.2394
- Stage= Ano4Stage Cost=146956.1648
- Total scenario cost=1974802.6849
-
- Name=ForestChile2
- Probability=0.0545
- Leaf Node=Leaf2
- Tree node sequence:
- RootNode
- StageTwoHigh
- StageThreeHighHigh
- Leaf2
- Stage= Ano1Stage Cost=1377167.3800
- Stage= Ano2Stage Cost=1418560.7959
- Stage= Ano3Stage Cost=1529980.3341
- Stage= Ano4Stage Cost=1779234.3530
- Total scenario cost=6104942.8630
-
- Name=ForestChile3
- Probability=0.0545
- Leaf Node=Leaf3
- Tree node sequence:
- RootNode
- StageTwoHigh
- StageThreeHighMedium
- Leaf3
- Stage= Ano1Stage Cost=1377167.3800
- Stage= Ano2Stage Cost=1418168.2215
- Stage= Ano3Stage Cost=1083245.4840
- Stage= Ano4Stage Cost=1981218.2627
- Total scenario cost=5859799.3483
-
- Name=ForestChile4
- Probability=0.0545
- Leaf Node=Leaf4
- Tree node sequence:
- RootNode
- StageTwoHigh
- StageThreeHighMedium
- Leaf4
- Stage= Ano1Stage Cost=1377167.3800
- Stage= Ano2Stage Cost=1418233.5740
- Stage= Ano3Stage Cost=1084734.3936
- Stage= Ano4Stage Cost=1546287.1379
- Total scenario cost=5426422.4855
-
- Name=ForestChile5
- Probability=0.0561
- Leaf Node=Leaf5
- Tree node sequence:
- RootNode
- StageTwoHigh
- StageThreeHighLow
- Leaf5
- Stage= Ano1Stage Cost=1377167.3800
- Stage= Ano2Stage Cost=1393822.6961
- Stage= Ano3Stage Cost=956755.2654
- Stage= Ano4Stage Cost=1847650.6640
- Total scenario cost=5575396.0055
-
- Name=ForestChile6
- Probability=0.0561
- Leaf Node=Leaf6
- Tree node sequence:
- RootNode
- StageTwoHigh
- StageThreeHighLow
- Leaf6
- Stage= Ano1Stage Cost=1377167.3800
- Stage= Ano2Stage Cost=1393822.6961
- Stage= Ano3Stage Cost=956755.2654
- Stage= Ano4Stage Cost=1242163.3917
- Total scenario cost=4969908.7332
-
- Name=ForestChile7
- Probability=0.0545
- Leaf Node=Leaf7
- Tree node sequence:
- RootNode
- StageTwoMedium
- StageThreeMediumHigh
- Leaf7
- Stage= Ano1Stage Cost=1377167.3800
- Stage= Ano2Stage Cost=828209.9385
- Stage= Ano3Stage Cost=1090960.4009
- Stage= Ano4Stage Cost=1747296.3928
- Total scenario cost=5043634.1122
-
- Name=ForestChile8
- Probability=0.0545
- Leaf Node=Leaf8
- Tree node sequence:
- RootNode
- StageTwoMedium
- StageThreeMediumHigh
- Leaf8
- Stage= Ano1Stage Cost=1377167.3800
- Stage= Ano2Stage Cost=828209.9385
- Stage= Ano3Stage Cost=1090960.4009
- Stage= Ano4Stage Cost=1151652.7200
- Total scenario cost=4447990.4394
-
- Name=ForestChile9
- Probability=0.0545
- Leaf Node=Leaf9
- Tree node sequence:
- RootNode
- StageTwoMedium
- StageThreeMediumMedium
- Leaf9
- Stage= Ano1Stage Cost=1377167.3800
- Stage= Ano2Stage Cost=830014.6065
- Stage= Ano3Stage Cost=910016.8560
- Stage= Ano4Stage Cost=1174323.4390
- Total scenario cost=4291522.2815
-
-----------------------------------------------------
-
-***WARNING***: PH exiting with fixed or freed variables in the scenario tree queue whose statuses have not been pushed to the scenario instances. This is because these requests were placed in the queue after the most recent solve. If these statuses are pushed to the scenario instances, a new solution should be obtained in order to reflect accurate solution data within the scenario tree. This warning can be safely ignored in most cases.
-
-Total PH execution time=37.71 seconds
-
-Pushing fixed variable statuses to scenario instances
-Number of discrete variables fixed prior to ef creation=431 (total=507)
-Number of continuous variables fixed prior to ef creation=0 (total=260)
-Creating extensive form for remainder problem
-Solving extensive form
-EF solve completed and solution status is optimal
-EF solve termination condition is optimal
-EF objective: 4204337.64190
-EF gap: 370.23900
-EF bound: 4204707.88090
-
-Extensive form solution:
-----------------------------------------------------
-Tree Nodes:
-
- Name=Leaf1
- Stage=Ano4Stage
- Parent=StageThreeHighHigh
- Variables:
- delta[U1,Ano4]=1.0
- delta[U14,Ano4]=1.0
- delta[U19,Ano4]=1.0
- delta[U2,Ano4]=1.0
- delta[U20,Ano4]=1.0
- delta[U22,Ano4]=1.0
- delta[U25,Ano4]=1.0
- delta[U4,Ano4]=1.0
- delta[U5,Ano4]=1.0
- delta[U8,Ano4]=1.0
- f[C01,C09,Ano4]=15915.2
- f[C05,I1,Ano4]=7200.9
- f[C06,I3,Ano4]=4330.8
- f[C07,C08,Ano4]=7497.3
- f[C08,I2,Ano4]=11667.7
- f[C09,E1,Ano4]=23408.6
- f[I1,I2,Ano4]=7200.9
- f[I2,I3,Ano4]=18868.6
- f[I3,E1,Ano4]=23199.4
- gamma[C01,C09,Ano4]=1.0
- gamma[C07,C08,Ano4]=1.0
- Derived Variables:
-
- Name=Leaf10
- Stage=Ano4Stage
- Parent=StageThreeMediumMedium
- Variables:
- delta[U11,Ano4]=1.0
- delta[U3,Ano4]=1.0
- delta[U4,Ano4]=1.0
- delta[U7,Ano4]=1.0
- delta[U8,Ano4]=1.0
- f[C01,C09,Ano4]=8602.8
- f[C02,C03,Ano4]=6484.2
- f[C03,E1,Ano4]=13804.2
- f[C04,C03,Ano4]=7320.0
- f[C09,E1,Ano4]=16023.8
- Derived Variables:
-
- Name=Leaf11
- Stage=Ano4Stage
- Parent=StageThreeMediumLow
- Variables:
- delta[U11,Ano4]=1.0
- delta[U20,Ano4]=1.0
- delta[U21,Ano4]=1.0
- delta[U23,Ano4]=1.0
- delta[U8,Ano4]=1.0
- f[C03,E1,Ano4]=7320.0
- f[C04,C03,Ano4]=7320.0
- f[C05,I1,Ano4]=6463.8
- f[C08,I2,Ano4]=10287.6
- f[C09,E1,Ano4]=3764.8
- f[I1,I2,Ano4]=6463.8
- f[I2,I3,Ano4]=16751.4
- f[I3,E1,Ano4]=16751.4
- gamma[C08,I2,Ano4]=1.0
- Derived Variables:
-
- Name=Leaf12
- Stage=Ano4Stage
- Parent=StageThreeMediumLow
- Variables:
- delta[U11,Ano4]=1.0
- delta[U20,Ano4]=1.0
- delta[U4,Ano4]=1.0
- delta[U8,Ano4]=1.0
- f[C01,C09,Ano4]=8602.8
- f[C03,E1,Ano4]=7320.0
- f[C04,C03,Ano4]=7320.0
- f[C08,I2,Ano4]=4170.4
- f[C09,E1,Ano4]=12367.6
- f[I2,I3,Ano4]=4170.4
- f[I3,E1,Ano4]=4170.4
- gamma[C01,C09,Ano4]=1.0
- gamma[C08,I2,Ano4]=1.0
- Derived Variables:
-
- Name=Leaf13
- Stage=Ano4Stage
- Parent=StageThreeLowHigh
- Variables:
- delta[U19,Ano4]=1.0
- delta[U21,Ano4]=1.0
- delta[U5,Ano4]=1.0
- delta[U8,Ano4]=1.0
- f[C06,I3,Ano4]=4330.8
- f[C08,I2,Ano4]=6117.2
- f[C09,E1,Ano4]=7493.4
- f[I2,I3,Ano4]=6117.2
- f[I3,E1,Ano4]=10448.0
- gamma[C08,I2,Ano4]=1.0
- Derived Variables:
-
- Name=Leaf14
- Stage=Ano4Stage
- Parent=StageThreeLowHigh
- Variables:
- delta[U19,Ano4]=1.0
- delta[U21,Ano4]=1.0
- delta[U5,Ano4]=1.0
- delta[U8,Ano4]=1.0
- f[C06,I3,Ano4]=4330.8
- f[C08,I2,Ano4]=6117.2
- f[C09,E1,Ano4]=7493.4
- f[I2,I3,Ano4]=6117.2
- f[I3,E1,Ano4]=10448.0
- gamma[C08,I2,Ano4]=1.0
- Derived Variables:
-
- Name=Leaf15
- Stage=Ano4Stage
- Parent=StageThreeLowMedium
- Variables:
- delta[U19,Ano4]=1.0
- delta[U21,Ano4]=1.0
- delta[U5,Ano4]=1.0
- delta[U8,Ano4]=1.0
- f[C06,I3,Ano4]=4330.8
- f[C08,I2,Ano4]=6117.2
- f[C09,E1,Ano4]=7493.4
- f[I2,I3,Ano4]=6117.2
- f[I3,E1,Ano4]=10448.0
- gamma[C08,I2,Ano4]=1.0
- Derived Variables:
-
- Name=Leaf16
- Stage=Ano4Stage
- Parent=StageThreeLowMedium
- Variables:
- delta[U19,Ano4]=1.0
- delta[U21,Ano4]=1.0
- delta[U6,Ano4]=1.0
- f[C02,C03,Ano4]=6548.4
- f[C03,E1,Ano4]=6548.4
- f[C06,I3,Ano4]=4330.8
- f[C08,I2,Ano4]=6117.2
- f[I2,I3,Ano4]=6117.2
- f[I3,E1,Ano4]=10448.0
- gamma[C08,I2,Ano4]=1.0
- Derived Variables:
-
- Name=Leaf17
- Stage=Ano4Stage
- Parent=StageThreeLowLow
- Variables:
- delta[U15,Ano4]=0.999999999991
- delta[U19,Ano4]=1.0
- delta[U8,Ano4]=1.00000000001
- f[C03,E1,Ano4]=7559.99999993
- f[C04,C03,Ano4]=7559.99999993
- f[C06,I3,Ano4]=4330.8
- f[C09,E1,Ano4]=3764.80000004
- f[I3,E1,Ano4]=4330.80000004
- Derived Variables:
-
- Name=Leaf18
- Stage=Ano4Stage
- Parent=StageThreeLowLow
- Variables:
- delta[U1,Ano4]=1.0
- delta[U15,Ano4]=1.0
- delta[U8,Ano4]=1.0
- f[C01,C09,Ano4]=3656.2
- f[C03,E1,Ano4]=7560.0
- f[C04,C03,Ano4]=7560.0
- f[C09,E1,Ano4]=7421.0
- gamma[C01,C09,Ano4]=1.0
- Derived Variables:
-
- Name=Leaf2
- Stage=Ano4Stage
- Parent=StageThreeHighHigh
- Variables:
- delta[U1,Ano4]=1.0
- delta[U14,Ano4]=1.0
- delta[U19,Ano4]=1.0
- delta[U2,Ano4]=1.0
- delta[U20,Ano4]=1.0
- delta[U22,Ano4]=1.0
- delta[U25,Ano4]=1.0
- delta[U4,Ano4]=1.0
- delta[U5,Ano4]=1.0
- delta[U8,Ano4]=1.0
- f[C01,C09,Ano4]=15915.2
- f[C05,I1,Ano4]=7200.9
- f[C06,I3,Ano4]=4330.8
- f[C07,C08,Ano4]=7497.3
- f[C08,I2,Ano4]=11667.7
- f[C09,E1,Ano4]=23408.6
- f[I1,I2,Ano4]=7200.9
- f[I2,I3,Ano4]=18868.6
- f[I3,E1,Ano4]=23199.4
- gamma[C01,C09,Ano4]=1.0
- gamma[C07,C08,Ano4]=1.0
- Derived Variables:
-
- Name=Leaf3
- Stage=Ano4Stage
- Parent=StageThreeHighMedium
- Variables:
- delta[U1,Ano4]=1.0
- delta[U14,Ano4]=1.0
- delta[U21,Ano4]=1.0
- delta[U22,Ano4]=1.0
- delta[U24,Ano4]=1.0
- delta[U25,Ano4]=1.0
- delta[U4,Ano4]=1.0
- delta[U7,Ano4]=1.0
- f[C01,C09,Ano4]=12259.0
- f[C02,C03,Ano4]=6484.2
- f[C03,E1,Ano4]=6484.2
- f[C05,I1,Ano4]=15592.5
- f[C07,C08,Ano4]=7497.3
- f[C08,I2,Ano4]=13614.5
- f[C09,E1,Ano4]=12259.0
- f[I1,I2,Ano4]=15592.5
- f[I2,I3,Ano4]=29207.0
- f[I3,E1,Ano4]=29207.0
- gamma[C01,C09,Ano4]=1.0
- gamma[C07,C08,Ano4]=1.0
- Derived Variables:
-
- Name=Leaf4
- Stage=Ano4Stage
- Parent=StageThreeHighMedium
- Variables:
- delta[U1,Ano4]=1.0
- delta[U14,Ano4]=1.0
- delta[U22,Ano4]=1.0
- delta[U23,Ano4]=1.0
- delta[U24,Ano4]=1.0
- delta[U25,Ano4]=1.0
- delta[U4,Ano4]=1.0
- delta[U7,Ano4]=1.0
- f[C01,C09,Ano4]=12259.0
- f[C02,C03,Ano4]=6484.2
- f[C03,E1,Ano4]=6484.2
- f[C05,I1,Ano4]=22056.3
- f[C07,C08,Ano4]=7497.3
- f[C08,I2,Ano4]=7497.3
- f[C09,E1,Ano4]=12259.0
- f[I1,I2,Ano4]=22056.3
- f[I2,I3,Ano4]=29553.6
- f[I3,E1,Ano4]=29553.6
- gamma[C01,C09,Ano4]=1.0
- gamma[C07,C08,Ano4]=1.0
- Derived Variables:
-
- Name=Leaf5
- Stage=Ano4Stage
- Parent=StageThreeHighLow
- Variables:
- delta[U14,Ano4]=1.0
- delta[U22,Ano4]=1.0
- delta[U23,Ano4]=1.0
- delta[U25,Ano4]=1.0
- delta[U4,Ano4]=1.0
- delta[U5,Ano4]=1.0
- delta[U8,Ano4]=1.0
- delta[U9,Ano4]=1.0
- f[C01,C09,Ano4]=8602.8
- f[C02,C03,Ano4]=10721.4
- f[C03,E1,Ano4]=10721.4
- f[C05,I1,Ano4]=13664.7
- f[C07,C08,Ano4]=7497.3
- f[C08,I2,Ano4]=7497.3
- f[C09,E1,Ano4]=16096.2
- f[I1,I2,Ano4]=13664.7
- f[I2,I3,Ano4]=21162.0
- f[I3,E1,Ano4]=21162.0
- gamma[C01,C09,Ano4]=1.0
- gamma[C07,C08,Ano4]=1.0
- Derived Variables:
-
- Name=Leaf6
- Stage=Ano4Stage
- Parent=StageThreeHighLow
- Variables:
- delta[U14,Ano4]=1.0
- delta[U22,Ano4]=1.0
- delta[U23,Ano4]=1.0
- delta[U25,Ano4]=1.0
- delta[U5,Ano4]=1.0
- delta[U8,Ano4]=1.0
- delta[U9,Ano4]=1.0
- f[C02,C03,Ano4]=10721.4
- f[C03,E1,Ano4]=10721.4
- f[C05,I1,Ano4]=13664.7
- f[C07,C08,Ano4]=7497.3
- f[C08,I2,Ano4]=7497.3
- f[C09,E1,Ano4]=7493.4
- f[I1,I2,Ano4]=13664.7
- f[I2,I3,Ano4]=21162.0
- f[I3,E1,Ano4]=21162.0
- gamma[C07,C08,Ano4]=1.0
- Derived Variables:
-
- Name=Leaf7
- Stage=Ano4Stage
- Parent=StageThreeMediumHigh
- Variables:
- delta[U1,Ano4]=1.0
- delta[U11,Ano4]=1.0
- delta[U14,Ano4]=1.0
- delta[U2,Ano4]=1.0
- delta[U20,Ano4]=1.0
- delta[U21,Ano4]=1.0
- delta[U22,Ano4]=1.0
- delta[U23,Ano4]=1.0
- delta[U25,Ano4]=1.0
- delta[U8,Ano4]=1.0
- f[C01,C09,Ano4]=7312.4
- f[C03,E1,Ano4]=7320.0
- f[C04,C03,Ano4]=7320.0
- f[C05,I1,Ano4]=13664.7
- f[C07,C08,Ano4]=7497.3
- f[C08,I2,Ano4]=17784.9
- f[C09,E1,Ano4]=11077.2
- f[I1,I2,Ano4]=13664.7
- f[I2,I3,Ano4]=31449.6
- f[I3,E1,Ano4]=31449.6
- gamma[C01,C09,Ano4]=1.0
- gamma[C07,C08,Ano4]=1.0
- gamma[C08,I2,Ano4]=1.0
- Derived Variables:
-
- Name=Leaf8
- Stage=Ano4Stage
- Parent=StageThreeMediumHigh
- Variables:
- delta[U1,Ano4]=1.0
- delta[U11,Ano4]=1.0
- delta[U14,Ano4]=1.0
- delta[U2,Ano4]=1.0
- delta[U20,Ano4]=1.0
- delta[U24,Ano4]=1.0
- delta[U25,Ano4]=1.0
- delta[U8,Ano4]=1.0
- f[C01,C09,Ano4]=7312.4
- f[C03,E1,Ano4]=7320.0
- f[C04,C03,Ano4]=7320.0
- f[C05,I1,Ano4]=15592.5
- f[C07,C08,Ano4]=3767.3
- f[C08,I2,Ano4]=7937.7
- f[C09,E1,Ano4]=11077.2
- f[I1,I2,Ano4]=15592.5
- f[I2,I3,Ano4]=23530.2
- f[I3,E1,Ano4]=23530.2
- gamma[C01,C09,Ano4]=1.0
- gamma[C07,C08,Ano4]=1.0
- gamma[C08,I2,Ano4]=1.0
- Derived Variables:
-
- Name=Leaf9
- Stage=Ano4Stage
- Parent=StageThreeMediumMedium
- Variables:
- delta[U11,Ano4]=1.0
- delta[U20,Ano4]=1.0
- delta[U24,Ano4]=1.0
- delta[U3,Ano4]=1.0
- delta[U4,Ano4]=1.0
- delta[U8,Ano4]=1.0
- f[C01,C09,Ano4]=8602.8
- f[C03,E1,Ano4]=7320.0
- f[C04,C03,Ano4]=7320.0
- f[C05,I1,Ano4]=8391.6
- f[C08,I2,Ano4]=4170.4
- f[C09,E1,Ano4]=16023.8
- f[I1,I2,Ano4]=8391.6
- f[I2,I3,Ano4]=12562.0
- f[I3,E1,Ano4]=12562.0
- Derived Variables:
-
- Name=RootNode
- Stage=Ano1Stage
- Parent=None
- Variables:
- delta[U12,Ano1]=1.0
- delta[U13,Ano1]=1.0
- delta[U16,Ano1]=1.0
- delta[U17,Ano1]=1.0
- delta[U18,Ano1]=1.0
- f[C03,E1,Ano1]=21287.0
- f[C04,C03,Ano1]=7560.0
- f[C06,I3,Ano1]=10954.4
- f[I3,E1,Ano1]=10954.4
- gamma[C04,C03,Ano1]=1.0
- gamma[C06,I3,Ano1]=1.0
- Derived Variables:
-
- Name=StageThreeHighHigh
- Stage=Ano3Stage
- Parent=StageTwoHigh
- Variables:
- delta[U21,Ano3]=1.0
- delta[U23,Ano3]=1.0
- delta[U24,Ano3]=1.0
- delta[U7,Ano3]=1.0
- delta[U9,Ano3]=1.0
- f[C02,C03,Ano3]=17205.6
- f[C03,E1,Ano3]=17205.6
- f[C05,I1,Ano3]=14855.4
- f[C08,I2,Ano3]=6117.2
- f[I1,I2,Ano3]=14855.4
- f[I2,I3,Ano3]=20972.6
- f[I3,E1,Ano3]=20972.6
- gamma[C08,I2,Ano3]=1.0
- Derived Variables:
-
- Name=StageThreeHighLow
- Stage=Ano3Stage
- Parent=StageTwoHigh
- Variables:
- delta[U19,Ano3]=1.0
- delta[U20,Ano3]=1.0
- delta[U21,Ano3]=1.0
- delta[U24,Ano3]=1.0
- delta[U7,Ano3]=1.0
- f[C02,C03,Ano3]=6484.2
- f[C03,E1,Ano3]=6484.2
- f[C05,I1,Ano3]=8391.6
- f[C06,I3,Ano3]=4330.8
- f[C08,I2,Ano3]=10287.6
- f[I1,I2,Ano3]=8391.6
- f[I2,I3,Ano3]=18679.2
- f[I3,E1,Ano3]=23010.0
- gamma[C08,I2,Ano3]=1.0
- Derived Variables:
-
- Name=StageThreeHighMedium
- Stage=Ano3Stage
- Parent=StageTwoHigh
- Variables:
- delta[U19,Ano3]=1.0
- delta[U20,Ano3]=1.0
- delta[U5,Ano3]=1.0
- delta[U8,Ano3]=1.0
- delta[U9,Ano3]=1.0
- f[C02,C03,Ano3]=10721.4
- f[C03,E1,Ano3]=10721.4
- f[C06,I3,Ano3]=4330.8
- f[C08,I2,Ano3]=4170.4
- f[C09,E1,Ano3]=7493.4
- f[I2,I3,Ano3]=4170.4
- f[I3,E1,Ano3]=8501.2
- gamma[C08,I2,Ano3]=1.0
- Derived Variables:
-
- Name=StageThreeLowHigh
- Stage=Ano3Stage
- Parent=StageTwoLow
- Variables:
- delta[U10,Ano3]=1.0
- delta[U7,Ano3]=1.0
- delta[U9,Ano3]=1.0
- f[C02,C03,Ano3]=25423.2
- f[C03,E1,Ano3]=25423.2
- Derived Variables:
-
- Name=StageThreeLowLow
- Stage=Ano3Stage
- Parent=StageTwoLow
- Variables:
- delta[U5,Ano3]=1.0
- delta[U9,Ano3]=1.0
- f[C02,C03,Ano3]=10721.4
- f[C03,E1,Ano3]=10721.4
- f[C09,E1,Ano3]=3728.6
- Derived Variables:
-
- Name=StageThreeLowMedium
- Stage=Ano3Stage
- Parent=StageTwoLow
- Variables:
- delta[U10,Ano3]=1.0
- delta[U15,Ano3]=1.0
- f[C02,C03,Ano3]=8217.6
- f[C03,E1,Ano3]=15777.6
- f[C04,C03,Ano3]=7560.0
- Derived Variables:
-
- Name=StageThreeMediumHigh
- Stage=Ano3Stage
- Parent=StageTwoMedium
- Variables:
- delta[U10,Ano3]=1.0
- delta[U3,Ano3]=1.0
- delta[U5,Ano3]=1.0
- delta[U6,Ano3]=1.0
- delta[U7,Ano3]=1.0
- f[C02,C03,Ano3]=21250.2
- f[C03,E1,Ano3]=21250.2
- f[C09,E1,Ano3]=7384.8
- Derived Variables:
-
- Name=StageThreeMediumLow
- Stage=Ano3Stage
- Parent=StageTwoMedium
- Variables:
- delta[U10,Ano3]=1.0
- delta[U3,Ano3]=1.0
- delta[U6,Ano3]=1.0
- delta[U7,Ano3]=1.0
- f[C02,C03,Ano3]=21250.2
- f[C03,E1,Ano3]=21250.2
- f[C09,E1,Ano3]=3656.2
- Derived Variables:
-
- Name=StageThreeMediumMedium
- Stage=Ano3Stage
- Parent=StageTwoMedium
- Variables:
- delta[U1,Ano3]=1.0
- delta[U10,Ano3]=1.0
- delta[U2,Ano3]=1.0
- delta[U21,Ano3]=1.0
- delta[U5,Ano3]=1.0
- delta[U6,Ano3]=1.0
- f[C01,C09,Ano3]=7312.4
- f[C02,C03,Ano3]=14766.0
- f[C03,E1,Ano3]=14766.0
- f[C08,I2,Ano3]=6117.2
- f[C09,E1,Ano3]=11041.0
- f[I2,I3,Ano3]=6117.2
- f[I3,E1,Ano3]=6117.2
- gamma[C01,C09,Ano3]=1.0
- gamma[C08,I2,Ano3]=1.0
- Derived Variables:
-
- Name=StageTwoHigh
- Stage=Ano2Stage
- Parent=RootNode
- Variables:
- delta[U10,Ano2]=1.0
- delta[U11,Ano2]=1.0
- delta[U15,Ano2]=1.0
- delta[U3,Ano2]=1.0
- delta[U6,Ano2]=1.0
- f[C02,C03,Ano2]=14766.0
- f[C03,E1,Ano2]=29646.0
- f[C04,C03,Ano2]=14880.0
- f[C09,E1,Ano2]=3656.2
- gamma[C09,C02,Ano2]=1.0
- gamma[C09,E1,Ano2]=1.0
- Derived Variables:
- z[E1,Ano2]=33302.2
-
- Name=StageTwoLow
- Stage=Ano2Stage
- Parent=RootNode
- Variables:
- delta[U11,Ano2]=1.0
- delta[U3,Ano2]=1.0
- f[C03,E1,Ano2]=7320.0
- f[C04,C03,Ano2]=7320.0
- f[C09,E1,Ano2]=3656.2
- gamma[C09,C02,Ano2]=1.0
- gamma[C09,E1,Ano2]=1.0
- Derived Variables:
- z[E1,Ano2]=10976.2
-
- Name=StageTwoMedium
- Stage=Ano2Stage
- Parent=RootNode
- Variables:
- delta[U15,Ano2]=1.0
- delta[U19,Ano2]=1.0
- delta[U9,Ano2]=1.0
- f[C02,C03,Ano2]=10721.4
- f[C03,E1,Ano2]=18281.4
- f[C04,C03,Ano2]=7560.0
- f[C06,I3,Ano2]=4330.8
- f[I3,E1,Ano2]=4330.8
- gamma[C02,C09,Ano2]=1.0
- gamma[C09,E1,Ano2]=1.0
- Derived Variables:
- z[E1,Ano2]=22612.2
-
-
-Extensive form costs:
-Scenario Tree Costs
-----------------------------------------------------
-Tree Nodes:
-
- Name=Leaf1
- Stage=Ano4Stage
- Parent=StageThreeHighHigh
- Conditional probability=0.5000
- Children:
- None
- Scenarios:
- ForestChile1
- Expected cost of (sub)tree rooted at node=2124432.2227
-
- Name=Leaf10
- Stage=Ano4Stage
- Parent=StageThreeMediumMedium
- Conditional probability=0.5000
- Children:
- None
- Scenarios:
- ForestChile10
- Expected cost of (sub)tree rooted at node=809450.7633
-
- Name=Leaf11
- Stage=Ano4Stage
- Parent=StageThreeMediumLow
- Conditional probability=0.5000
- Children:
- None
- Scenarios:
- ForestChile11
- Expected cost of (sub)tree rooted at node=876869.1426
-
- Name=Leaf12
- Stage=Ano4Stage
- Parent=StageThreeMediumLow
- Conditional probability=0.5000
- Children:
- None
- Scenarios:
- ForestChile12
- Expected cost of (sub)tree rooted at node=644358.7770
-
- Name=Leaf13
- Stage=Ano4Stage
- Parent=StageThreeLowHigh
- Conditional probability=0.5000
- Children:
- None
- Scenarios:
- ForestChile13
- Expected cost of (sub)tree rooted at node=468221.1723
-
- Name=Leaf14
- Stage=Ano4Stage
- Parent=StageThreeLowHigh
- Conditional probability=0.5000
- Children:
- None
- Scenarios:
- ForestChile14
- Expected cost of (sub)tree rooted at node=337428.3663
-
- Name=Leaf15
- Stage=Ano4Stage
- Parent=StageThreeLowMedium
- Conditional probability=0.5000
- Children:
- None
- Scenarios:
- ForestChile15
- Expected cost of (sub)tree rooted at node=468221.1723
-
- Name=Leaf16
- Stage=Ano4Stage
- Parent=StageThreeLowMedium
- Conditional probability=0.5000
- Children:
- None
- Scenarios:
- ForestChile16
- Expected cost of (sub)tree rooted at node=315419.4481
-
- Name=Leaf17
- Stage=Ano4Stage
- Parent=StageThreeLowLow
- Conditional probability=0.5000
- Children:
- None
- Scenarios:
- ForestChile17
- Expected cost of (sub)tree rooted at node=361453.2174
-
- Name=Leaf18
- Stage=Ano4Stage
- Parent=StageThreeLowLow
- Conditional probability=0.5000
- Children:
- None
- Scenarios:
- ForestChile18
- Expected cost of (sub)tree rooted at node=170641.6446
-
- Name=Leaf2
- Stage=Ano4Stage
- Parent=StageThreeHighHigh
- Conditional probability=0.5000
- Children:
- None
- Scenarios:
- ForestChile2
- Expected cost of (sub)tree rooted at node=1750682.6707
-
- Name=Leaf3
- Stage=Ano4Stage
- Parent=StageThreeHighMedium
- Conditional probability=0.5000
- Children:
- None
- Scenarios:
- ForestChile3
- Expected cost of (sub)tree rooted at node=1962107.0757
-
- Name=Leaf4
- Stage=Ano4Stage
- Parent=StageThreeHighMedium
- Conditional probability=0.5000
- Children:
- None
- Scenarios:
- ForestChile4
- Expected cost of (sub)tree rooted at node=1553007.2421
-
- Name=Leaf5
- Stage=Ano4Stage
- Parent=StageThreeHighLow
- Conditional probability=0.5000
- Children:
- None
- Scenarios:
- ForestChile5
- Expected cost of (sub)tree rooted at node=1832762.3043
-
- Name=Leaf6
- Stage=Ano4Stage
- Parent=StageThreeHighLow
- Conditional probability=0.5000
- Children:
- None
- Scenarios:
- ForestChile6
- Expected cost of (sub)tree rooted at node=1221084.4806
-
- Name=Leaf7
- Stage=Ano4Stage
- Parent=StageThreeMediumHigh
- Conditional probability=0.5000
- Children:
- None
- Scenarios:
- ForestChile7
- Expected cost of (sub)tree rooted at node=1800460.9558
-
- Name=Leaf8
- Stage=Ano4Stage
- Parent=StageThreeMediumHigh
- Conditional probability=0.5000
- Children:
- None
- Scenarios:
- ForestChile8
- Expected cost of (sub)tree rooted at node=1181671.4164
-
- Name=Leaf9
- Stage=Ano4Stage
- Parent=StageThreeMediumMedium
- Conditional probability=0.5000
- Children:
- None
- Scenarios:
- ForestChile9
- Expected cost of (sub)tree rooted at node=1178745.8337
-
- Name=RootNode
- Stage=Ano1Stage
- Parent=None
- Conditional probability=1.0000
- Children:
- StageTwoHigh
- StageTwoLow
- StageTwoMedium
- Scenarios:
- ForestChile1
- ForestChile10
- ForestChile11
- ForestChile12
- ForestChile13
- ForestChile14
- ForestChile15
- ForestChile16
- ForestChile17
- ForestChile18
- ForestChile2
- ForestChile3
- ForestChile4
- ForestChile5
- ForestChile6
- ForestChile7
- ForestChile8
- ForestChile9
- Expected cost of (sub)tree rooted at node=4204337.6419
-
- Name=StageThreeHighHigh
- Stage=Ano3Stage
- Parent=StageTwoHigh
- Conditional probability=0.3300
- Children:
- Leaf1
- Leaf2
- Scenarios:
- ForestChile1
- ForestChile2
- Expected cost of (sub)tree rooted at node=3782079.2326
-
- Name=StageThreeHighLow
- Stage=Ano3Stage
- Parent=StageTwoHigh
- Conditional probability=0.3400
- Children:
- Leaf5
- Leaf6
- Scenarios:
- ForestChile5
- ForestChile6
- Expected cost of (sub)tree rooted at node=2483678.6579
-
- Name=StageThreeHighMedium
- Stage=Ano3Stage
- Parent=StageTwoHigh
- Conditional probability=0.3300
- Children:
- Leaf3
- Leaf4
- Scenarios:
- ForestChile3
- ForestChile4
- Expected cost of (sub)tree rooted at node=2850708.8103
-
- Name=StageThreeLowHigh
- Stage=Ano3Stage
- Parent=StageTwoLow
- Conditional probability=0.3300
- Children:
- Leaf13
- Leaf14
- Scenarios:
- ForestChile13
- ForestChile14
- Expected cost of (sub)tree rooted at node=1224220.5621
-
- Name=StageThreeLowLow
- Stage=Ano3Stage
- Parent=StageTwoLow
- Conditional probability=0.3400
- Children:
- Leaf17
- Leaf18
- Scenarios:
- ForestChile17
- ForestChile18
- Expected cost of (sub)tree rooted at node=466396.6704
-
- Name=StageThreeLowMedium
- Stage=Ano3Stage
- Parent=StageTwoLow
- Conditional probability=0.3300
- Children:
- Leaf15
- Leaf16
- Scenarios:
- ForestChile15
- ForestChile16
- Expected cost of (sub)tree rooted at node=719978.0726
-
- Name=StageThreeMediumHigh
- Stage=Ano3Stage
- Parent=StageTwoMedium
- Conditional probability=0.3300
- Children:
- Leaf7
- Leaf8
- Scenarios:
- ForestChile7
- ForestChile8
- Expected cost of (sub)tree rooted at node=2583918.0403
-
- Name=StageThreeMediumLow
- Stage=Ano3Stage
- Parent=StageTwoMedium
- Conditional probability=0.3400
- Children:
- Leaf11
- Leaf12
- Scenarios:
- ForestChile11
- ForestChile12
- Expected cost of (sub)tree rooted at node=1265336.5752
-
- Name=StageThreeMediumMedium
- Stage=Ano3Stage
- Parent=StageTwoMedium
- Conditional probability=0.3300
- Children:
- Leaf10
- Leaf9
- Scenarios:
- ForestChile10
- ForestChile9
- Expected cost of (sub)tree rooted at node=2019252.9123
-
- Name=StageTwoHigh
- Stage=Ano2Stage
- Parent=RootNode
- Conditional probability=0.3300
- Children:
- StageThreeHighHigh
- StageThreeHighLow
- StageThreeHighMedium
- Scenarios:
- ForestChile1
- ForestChile2
- ForestChile3
- ForestChile4
- ForestChile5
- ForestChile6
- Expected cost of (sub)tree rooted at node=4699667.5798
-
- Name=StageTwoLow
- Stage=Ano2Stage
- Parent=RootNode
- Conditional probability=0.3400
- Children:
- StageThreeLowHigh
- StageThreeLowLow
- StageThreeLowMedium
- Scenarios:
- ForestChile13
- ForestChile14
- ForestChile15
- ForestChile16
- ForestChile17
- ForestChile18
- Expected cost of (sub)tree rooted at node=1056101.8594
-
- Name=StageTwoMedium
- Stage=Ano2Stage
- Parent=RootNode
- Conditional probability=0.3300
- Children:
- StageThreeMediumHigh
- StageThreeMediumLow
- StageThreeMediumMedium
- Scenarios:
- ForestChile10
- ForestChile11
- ForestChile12
- ForestChile7
- ForestChile8
- ForestChile9
- Expected cost of (sub)tree rooted at node=2779410.0859
-
-----------------------------------------------------
-Scenarios:
-
- Name=ForestChile1
- Probability=0.0545
- Leaf Node=Leaf1
- Tree node sequence:
- RootNode
- StageTwoHigh
- StageThreeHighHigh
- Leaf1
- Stage= Ano1Stage Cost=1377167.3800
- Stage= Ano2Stage Cost=1666396.7820
- Stage= Ano3Stage Cost=1844521.7859
- Stage= Ano4Stage Cost=2124432.2227
- Total scenario cost=7012518.1706
-
- Name=ForestChile10
- Probability=0.0545
- Leaf Node=Leaf10
- Tree node sequence:
- RootNode
- StageTwoMedium
- StageThreeMediumMedium
- Leaf10
- Stage= Ano1Stage Cost=1377167.3800
- Stage= Ano2Stage Cost=830149.2360
- Stage= Ano3Stage Cost=1025154.6138
- Stage= Ano4Stage Cost=809450.7633
- Total scenario cost=4041921.9931
-
- Name=ForestChile11
- Probability=0.0561
- Leaf Node=Leaf11
- Tree node sequence:
- RootNode
- StageTwoMedium
- StageThreeMediumLow
- Leaf11
- Stage= Ano1Stage Cost=1377167.3800
- Stage= Ano2Stage Cost=830149.2360
- Stage= Ano3Stage Cost=504722.6154
- Stage= Ano4Stage Cost=876869.1426
- Total scenario cost=3588908.3740
-
- Name=ForestChile12
- Probability=0.0561
- Leaf Node=Leaf12
- Tree node sequence:
- RootNode
- StageTwoMedium
- StageThreeMediumLow
- Leaf12
- Stage= Ano1Stage Cost=1377167.3800
- Stage= Ano2Stage Cost=830149.2360
- Stage= Ano3Stage Cost=504722.6154
- Stage= Ano4Stage Cost=644358.7770
- Total scenario cost=3356398.0084
-
- Name=ForestChile13
- Probability=0.0561
- Leaf Node=Leaf13
- Tree node sequence:
- RootNode
- StageTwoLow
- StageThreeLowHigh
- Leaf13
- Stage= Ano1Stage Cost=1377167.3800
- Stage= Ano2Stage Cost=255941.4420
- Stage= Ano3Stage Cost=821395.7928
- Stage= Ano4Stage Cost=468221.1723
- Total scenario cost=2922725.7871
-
- Name=ForestChile14
- Probability=0.0561
- Leaf Node=Leaf14
- Tree node sequence:
- RootNode
- StageTwoLow
- StageThreeLowHigh
- Leaf14
- Stage= Ano1Stage Cost=1377167.3800
- Stage= Ano2Stage Cost=255941.4420
- Stage= Ano3Stage Cost=821395.7928
- Stage= Ano4Stage Cost=337428.3663
- Total scenario cost=2791932.9811
-
- Name=ForestChile15
- Probability=0.0561
- Leaf Node=Leaf15
- Tree node sequence:
- RootNode
- StageTwoLow
- StageThreeLowMedium
- Leaf15
- Stage= Ano1Stage Cost=1377167.3800
- Stage= Ano2Stage Cost=255941.4420
- Stage= Ano3Stage Cost=328157.7624
- Stage= Ano4Stage Cost=468221.1723
- Total scenario cost=2429487.7567
-
- Name=ForestChile16
- Probability=0.0561
- Leaf Node=Leaf16
- Tree node sequence:
- RootNode
- StageTwoLow
- StageThreeLowMedium
- Leaf16
- Stage= Ano1Stage Cost=1377167.3800
- Stage= Ano2Stage Cost=255941.4420
- Stage= Ano3Stage Cost=328157.7624
- Stage= Ano4Stage Cost=315419.4481
- Total scenario cost=2276686.0325
-
- Name=ForestChile17
- Probability=0.0578
- Leaf Node=Leaf17
- Tree node sequence:
- RootNode
- StageTwoLow
- StageThreeLowLow
- Leaf17
- Stage= Ano1Stage Cost=1377167.3800
- Stage= Ano2Stage Cost=255941.4420
- Stage= Ano3Stage Cost=200349.2394
- Stage= Ano4Stage Cost=361453.2174
- Total scenario cost=2194911.2788
-
- Name=ForestChile18
- Probability=0.0578
- Leaf Node=Leaf18
- Tree node sequence:
- RootNode
- StageTwoLow
- StageThreeLowLow
- Leaf18
- Stage= Ano1Stage Cost=1377167.3800
- Stage= Ano2Stage Cost=255941.4420
- Stage= Ano3Stage Cost=200349.2394
- Stage= Ano4Stage Cost=170641.6446
- Total scenario cost=2004099.7060
-
- Name=ForestChile2
- Probability=0.0545
- Leaf Node=Leaf2
- Tree node sequence:
- RootNode
- StageTwoHigh
- StageThreeHighHigh
- Leaf2
- Stage= Ano1Stage Cost=1377167.3800
- Stage= Ano2Stage Cost=1666396.7820
- Stage= Ano3Stage Cost=1844521.7859
- Stage= Ano4Stage Cost=1750682.6707
- Total scenario cost=6638768.6186
-
- Name=ForestChile3
- Probability=0.0545
- Leaf Node=Leaf3
- Tree node sequence:
- RootNode
- StageTwoHigh
- StageThreeHighMedium
- Leaf3
- Stage= Ano1Stage Cost=1377167.3800
- Stage= Ano2Stage Cost=1666396.7820
- Stage= Ano3Stage Cost=1093151.6514
- Stage= Ano4Stage Cost=1962107.0757
- Total scenario cost=6098822.8891
-
- Name=ForestChile4
- Probability=0.0545
- Leaf Node=Leaf4
- Tree node sequence:
- RootNode
- StageTwoHigh
- StageThreeHighMedium
- Leaf4
- Stage= Ano1Stage Cost=1377167.3800
- Stage= Ano2Stage Cost=1666396.7820
- Stage= Ano3Stage Cost=1093151.6514
- Stage= Ano4Stage Cost=1553007.2421
- Total scenario cost=5689723.0555
-
- Name=ForestChile5
- Probability=0.0561
- Leaf Node=Leaf5
- Tree node sequence:
- RootNode
- StageTwoHigh
- StageThreeHighLow
- Leaf5
- Stage= Ano1Stage Cost=1377167.3800
- Stage= Ano2Stage Cost=1666396.7820
- Stage= Ano3Stage Cost=956755.2654
- Stage= Ano4Stage Cost=1832762.3043
- Total scenario cost=5833081.7317
-
- Name=ForestChile6
- Probability=0.0561
- Leaf Node=Leaf6
- Tree node sequence:
- RootNode
- StageTwoHigh
- StageThreeHighLow
- Leaf6
- Stage= Ano1Stage Cost=1377167.3800
- Stage= Ano2Stage Cost=1666396.7820
- Stage= Ano3Stage Cost=956755.2654
- Stage= Ano4Stage Cost=1221084.4806
- Total scenario cost=5221403.9080
-
- Name=ForestChile7
- Probability=0.0545
- Leaf Node=Leaf7
- Tree node sequence:
- RootNode
- StageTwoMedium
- StageThreeMediumHigh
- Leaf7
- Stage= Ano1Stage Cost=1377167.3800
- Stage= Ano2Stage Cost=830149.2360
- Stage= Ano3Stage Cost=1092851.8542
- Stage= Ano4Stage Cost=1800460.9558
- Total scenario cost=5100629.4260
-
- Name=ForestChile8
- Probability=0.0545
- Leaf Node=Leaf8
- Tree node sequence:
- RootNode
- StageTwoMedium
- StageThreeMediumHigh
- Leaf8
- Stage= Ano1Stage Cost=1377167.3800
- Stage= Ano2Stage Cost=830149.2360
- Stage= Ano3Stage Cost=1092851.8542
- Stage= Ano4Stage Cost=1181671.4164
- Total scenario cost=4481839.8866
-
- Name=ForestChile9
- Probability=0.0545
- Leaf Node=Leaf9
- Tree node sequence:
- RootNode
- StageTwoMedium
- StageThreeMediumMedium
- Leaf9
- Stage= Ano1Stage Cost=1377167.3800
- Stage= Ano2Stage Cost=830149.2360
- Stage= Ano3Stage Cost=1025154.6138
- Stage= Ano4Stage Cost=1178745.8337
- Total scenario cost=4411217.0635
-
-----------------------------------------------------
-
-Total execution time=43.74 seconds
diff --git a/pyomo/pysp/tests/unit/baselines/hydro_ef.baseline.lp b/pyomo/pysp/tests/unit/baselines/hydro_ef.baseline.lp
deleted file mode 100644
index 83405264cc1..00000000000
--- a/pyomo/pysp/tests/unit/baselines/hydro_ef.baseline.lp
+++ /dev/null
@@ -1,1090 +0,0 @@
-\* Source Pyomo model name=MASTER *\
-
-min
-MASTER:
-+0.11088900000000002 Scen1_StageCost(1)
-+0.11088900000000002 Scen1_StageCost(2)
-+0.11088900000000002 Scen1_StageCost(3)
-+0.11088900000000002 Scen2_StageCost(1)
-+0.11088900000000002 Scen2_StageCost(2)
-+0.11088900000000002 Scen2_StageCost(3)
-+0.11122200000000002 Scen3_StageCost(1)
-+0.11122200000000002 Scen3_StageCost(2)
-+0.11122200000000002 Scen3_StageCost(3)
-+0.11088900000000002 Scen4_StageCost(1)
-+0.11088900000000002 Scen4_StageCost(2)
-+0.11088900000000002 Scen4_StageCost(3)
-+0.11088900000000002 Scen5_StageCost(1)
-+0.11088900000000002 Scen5_StageCost(2)
-+0.11088900000000002 Scen5_StageCost(3)
-+0.11122200000000002 Scen6_StageCost(1)
-+0.11122200000000002 Scen6_StageCost(2)
-+0.11122200000000002 Scen6_StageCost(3)
-+0.11122200000000002 Scen7_StageCost(1)
-+0.11122200000000002 Scen7_StageCost(2)
-+0.11122200000000002 Scen7_StageCost(3)
-+0.11122200000000002 Scen8_StageCost(1)
-+0.11122200000000002 Scen8_StageCost(2)
-+0.11122200000000002 Scen8_StageCost(3)
-+0.11155600000000002 Scen9_StageCost(1)
-+0.11155600000000002 Scen9_StageCost(2)
-+0.11155600000000002 Scen9_StageCost(3)
-
-s.t.
-
-c_e_MASTER_BLEND_CONSTRAINT_RootNode(1)_:
-+1 MASTER_BLEND_VAR_RootNode(PDns__1)
--1 Scen1_PDns(1)
-= 0
-
-c_e_MASTER_BLEND_CONSTRAINT_RootNode(2)_:
-+1 MASTER_BLEND_VAR_RootNode(PDns__1)
--1 Scen2_PDns(1)
-= 0
-
-c_e_MASTER_BLEND_CONSTRAINT_RootNode(3)_:
-+1 MASTER_BLEND_VAR_RootNode(PDns__1)
--1 Scen3_PDns(1)
-= 0
-
-c_e_MASTER_BLEND_CONSTRAINT_RootNode(4)_:
-+1 MASTER_BLEND_VAR_RootNode(PDns__1)
--1 Scen4_PDns(1)
-= 0
-
-c_e_MASTER_BLEND_CONSTRAINT_RootNode(5)_:
-+1 MASTER_BLEND_VAR_RootNode(PDns__1)
--1 Scen5_PDns(1)
-= 0
-
-c_e_MASTER_BLEND_CONSTRAINT_RootNode(6)_:
-+1 MASTER_BLEND_VAR_RootNode(PDns__1)
--1 Scen6_PDns(1)
-= 0
-
-c_e_MASTER_BLEND_CONSTRAINT_RootNode(7)_:
-+1 MASTER_BLEND_VAR_RootNode(PDns__1)
--1 Scen7_PDns(1)
-= 0
-
-c_e_MASTER_BLEND_CONSTRAINT_RootNode(8)_:
-+1 MASTER_BLEND_VAR_RootNode(PDns__1)
--1 Scen8_PDns(1)
-= 0
-
-c_e_MASTER_BLEND_CONSTRAINT_RootNode(9)_:
-+1 MASTER_BLEND_VAR_RootNode(PDns__1)
--1 Scen9_PDns(1)
-= 0
-
-c_e_MASTER_BLEND_CONSTRAINT_RootNode(10)_:
-+1 MASTER_BLEND_VAR_RootNode(Pgh__1)
--1 Scen1_Pgh(1)
-= 0
-
-c_e_MASTER_BLEND_CONSTRAINT_RootNode(11)_:
-+1 MASTER_BLEND_VAR_RootNode(Pgh__1)
--1 Scen2_Pgh(1)
-= 0
-
-c_e_MASTER_BLEND_CONSTRAINT_RootNode(12)_:
-+1 MASTER_BLEND_VAR_RootNode(Pgh__1)
--1 Scen3_Pgh(1)
-= 0
-
-c_e_MASTER_BLEND_CONSTRAINT_RootNode(13)_:
-+1 MASTER_BLEND_VAR_RootNode(Pgh__1)
--1 Scen4_Pgh(1)
-= 0
-
-c_e_MASTER_BLEND_CONSTRAINT_RootNode(14)_:
-+1 MASTER_BLEND_VAR_RootNode(Pgh__1)
--1 Scen5_Pgh(1)
-= 0
-
-c_e_MASTER_BLEND_CONSTRAINT_RootNode(15)_:
-+1 MASTER_BLEND_VAR_RootNode(Pgh__1)
--1 Scen6_Pgh(1)
-= 0
-
-c_e_MASTER_BLEND_CONSTRAINT_RootNode(16)_:
-+1 MASTER_BLEND_VAR_RootNode(Pgh__1)
--1 Scen7_Pgh(1)
-= 0
-
-c_e_MASTER_BLEND_CONSTRAINT_RootNode(17)_:
-+1 MASTER_BLEND_VAR_RootNode(Pgh__1)
--1 Scen8_Pgh(1)
-= 0
-
-c_e_MASTER_BLEND_CONSTRAINT_RootNode(18)_:
-+1 MASTER_BLEND_VAR_RootNode(Pgh__1)
--1 Scen9_Pgh(1)
-= 0
-
-c_e_MASTER_BLEND_CONSTRAINT_RootNode(19)_:
-+1 MASTER_BLEND_VAR_RootNode(Pgt__1)
--1 Scen1_Pgt(1)
-= 0
-
-c_e_MASTER_BLEND_CONSTRAINT_RootNode(20)_:
-+1 MASTER_BLEND_VAR_RootNode(Pgt__1)
--1 Scen2_Pgt(1)
-= 0
-
-c_e_MASTER_BLEND_CONSTRAINT_RootNode(21)_:
-+1 MASTER_BLEND_VAR_RootNode(Pgt__1)
--1 Scen3_Pgt(1)
-= 0
-
-c_e_MASTER_BLEND_CONSTRAINT_RootNode(22)_:
-+1 MASTER_BLEND_VAR_RootNode(Pgt__1)
--1 Scen4_Pgt(1)
-= 0
-
-c_e_MASTER_BLEND_CONSTRAINT_RootNode(23)_:
-+1 MASTER_BLEND_VAR_RootNode(Pgt__1)
--1 Scen5_Pgt(1)
-= 0
-
-c_e_MASTER_BLEND_CONSTRAINT_RootNode(24)_:
-+1 MASTER_BLEND_VAR_RootNode(Pgt__1)
--1 Scen6_Pgt(1)
-= 0
-
-c_e_MASTER_BLEND_CONSTRAINT_RootNode(25)_:
-+1 MASTER_BLEND_VAR_RootNode(Pgt__1)
--1 Scen7_Pgt(1)
-= 0
-
-c_e_MASTER_BLEND_CONSTRAINT_RootNode(26)_:
-+1 MASTER_BLEND_VAR_RootNode(Pgt__1)
--1 Scen8_Pgt(1)
-= 0
-
-c_e_MASTER_BLEND_CONSTRAINT_RootNode(27)_:
-+1 MASTER_BLEND_VAR_RootNode(Pgt__1)
--1 Scen9_Pgt(1)
-= 0
-
-c_e_MASTER_BLEND_CONSTRAINT_RootNode(28)_:
-+1 MASTER_BLEND_VAR_RootNode(Vol__1)
--1 Scen1_Vol(1)
-= 0
-
-c_e_MASTER_BLEND_CONSTRAINT_RootNode(29)_:
-+1 MASTER_BLEND_VAR_RootNode(Vol__1)
--1 Scen2_Vol(1)
-= 0
-
-c_e_MASTER_BLEND_CONSTRAINT_RootNode(30)_:
-+1 MASTER_BLEND_VAR_RootNode(Vol__1)
--1 Scen3_Vol(1)
-= 0
-
-c_e_MASTER_BLEND_CONSTRAINT_RootNode(31)_:
-+1 MASTER_BLEND_VAR_RootNode(Vol__1)
--1 Scen4_Vol(1)
-= 0
-
-c_e_MASTER_BLEND_CONSTRAINT_RootNode(32)_:
-+1 MASTER_BLEND_VAR_RootNode(Vol__1)
--1 Scen5_Vol(1)
-= 0
-
-c_e_MASTER_BLEND_CONSTRAINT_RootNode(33)_:
-+1 MASTER_BLEND_VAR_RootNode(Vol__1)
--1 Scen6_Vol(1)
-= 0
-
-c_e_MASTER_BLEND_CONSTRAINT_RootNode(34)_:
-+1 MASTER_BLEND_VAR_RootNode(Vol__1)
--1 Scen7_Vol(1)
-= 0
-
-c_e_MASTER_BLEND_CONSTRAINT_RootNode(35)_:
-+1 MASTER_BLEND_VAR_RootNode(Vol__1)
--1 Scen8_Vol(1)
-= 0
-
-c_e_MASTER_BLEND_CONSTRAINT_RootNode(36)_:
-+1 MASTER_BLEND_VAR_RootNode(Vol__1)
--1 Scen9_Vol(1)
-= 0
-
-c_e_MASTER_BLEND_CONSTRAINT_Node2_1(1)_:
-+1 MASTER_BLEND_VAR_Node2_1(PDns__2)
--1 Scen1_PDns(2)
-= 0
-
-c_e_MASTER_BLEND_CONSTRAINT_Node2_1(2)_:
-+1 MASTER_BLEND_VAR_Node2_1(PDns__2)
--1 Scen2_PDns(2)
-= 0
-
-c_e_MASTER_BLEND_CONSTRAINT_Node2_1(3)_:
-+1 MASTER_BLEND_VAR_Node2_1(PDns__2)
--1 Scen3_PDns(2)
-= 0
-
-c_e_MASTER_BLEND_CONSTRAINT_Node2_1(4)_:
-+1 MASTER_BLEND_VAR_Node2_1(Pgh__2)
--1 Scen1_Pgh(2)
-= 0
-
-c_e_MASTER_BLEND_CONSTRAINT_Node2_1(5)_:
-+1 MASTER_BLEND_VAR_Node2_1(Pgh__2)
--1 Scen2_Pgh(2)
-= 0
-
-c_e_MASTER_BLEND_CONSTRAINT_Node2_1(6)_:
-+1 MASTER_BLEND_VAR_Node2_1(Pgh__2)
--1 Scen3_Pgh(2)
-= 0
-
-c_e_MASTER_BLEND_CONSTRAINT_Node2_1(7)_:
-+1 MASTER_BLEND_VAR_Node2_1(Pgt__2)
--1 Scen1_Pgt(2)
-= 0
-
-c_e_MASTER_BLEND_CONSTRAINT_Node2_1(8)_:
-+1 MASTER_BLEND_VAR_Node2_1(Pgt__2)
--1 Scen2_Pgt(2)
-= 0
-
-c_e_MASTER_BLEND_CONSTRAINT_Node2_1(9)_:
-+1 MASTER_BLEND_VAR_Node2_1(Pgt__2)
--1 Scen3_Pgt(2)
-= 0
-
-c_e_MASTER_BLEND_CONSTRAINT_Node2_1(10)_:
-+1 MASTER_BLEND_VAR_Node2_1(Vol__2)
--1 Scen1_Vol(2)
-= 0
-
-c_e_MASTER_BLEND_CONSTRAINT_Node2_1(11)_:
-+1 MASTER_BLEND_VAR_Node2_1(Vol__2)
--1 Scen2_Vol(2)
-= 0
-
-c_e_MASTER_BLEND_CONSTRAINT_Node2_1(12)_:
-+1 MASTER_BLEND_VAR_Node2_1(Vol__2)
--1 Scen3_Vol(2)
-= 0
-
-c_e_MASTER_BLEND_CONSTRAINT_Node2_2(1)_:
-+1 MASTER_BLEND_VAR_Node2_2(PDns__2)
--1 Scen4_PDns(2)
-= 0
-
-c_e_MASTER_BLEND_CONSTRAINT_Node2_2(2)_:
-+1 MASTER_BLEND_VAR_Node2_2(PDns__2)
--1 Scen5_PDns(2)
-= 0
-
-c_e_MASTER_BLEND_CONSTRAINT_Node2_2(3)_:
-+1 MASTER_BLEND_VAR_Node2_2(PDns__2)
--1 Scen6_PDns(2)
-= 0
-
-c_e_MASTER_BLEND_CONSTRAINT_Node2_2(4)_:
-+1 MASTER_BLEND_VAR_Node2_2(Pgh__2)
--1 Scen4_Pgh(2)
-= 0
-
-c_e_MASTER_BLEND_CONSTRAINT_Node2_2(5)_:
-+1 MASTER_BLEND_VAR_Node2_2(Pgh__2)
--1 Scen5_Pgh(2)
-= 0
-
-c_e_MASTER_BLEND_CONSTRAINT_Node2_2(6)_:
-+1 MASTER_BLEND_VAR_Node2_2(Pgh__2)
--1 Scen6_Pgh(2)
-= 0
-
-c_e_MASTER_BLEND_CONSTRAINT_Node2_2(7)_:
-+1 MASTER_BLEND_VAR_Node2_2(Pgt__2)
--1 Scen4_Pgt(2)
-= 0
-
-c_e_MASTER_BLEND_CONSTRAINT_Node2_2(8)_:
-+1 MASTER_BLEND_VAR_Node2_2(Pgt__2)
--1 Scen5_Pgt(2)
-= 0
-
-c_e_MASTER_BLEND_CONSTRAINT_Node2_2(9)_:
-+1 MASTER_BLEND_VAR_Node2_2(Pgt__2)
--1 Scen6_Pgt(2)
-= 0
-
-c_e_MASTER_BLEND_CONSTRAINT_Node2_2(10)_:
-+1 MASTER_BLEND_VAR_Node2_2(Vol__2)
--1 Scen4_Vol(2)
-= 0
-
-c_e_MASTER_BLEND_CONSTRAINT_Node2_2(11)_:
-+1 MASTER_BLEND_VAR_Node2_2(Vol__2)
--1 Scen5_Vol(2)
-= 0
-
-c_e_MASTER_BLEND_CONSTRAINT_Node2_2(12)_:
-+1 MASTER_BLEND_VAR_Node2_2(Vol__2)
--1 Scen6_Vol(2)
-= 0
-
-c_e_MASTER_BLEND_CONSTRAINT_Node2_3(1)_:
-+1 MASTER_BLEND_VAR_Node2_3(PDns__2)
--1 Scen7_PDns(2)
-= 0
-
-c_e_MASTER_BLEND_CONSTRAINT_Node2_3(2)_:
-+1 MASTER_BLEND_VAR_Node2_3(PDns__2)
--1 Scen8_PDns(2)
-= 0
-
-c_e_MASTER_BLEND_CONSTRAINT_Node2_3(3)_:
-+1 MASTER_BLEND_VAR_Node2_3(PDns__2)
--1 Scen9_PDns(2)
-= 0
-
-c_e_MASTER_BLEND_CONSTRAINT_Node2_3(4)_:
-+1 MASTER_BLEND_VAR_Node2_3(Pgh__2)
--1 Scen7_Pgh(2)
-= 0
-
-c_e_MASTER_BLEND_CONSTRAINT_Node2_3(5)_:
-+1 MASTER_BLEND_VAR_Node2_3(Pgh__2)
--1 Scen8_Pgh(2)
-= 0
-
-c_e_MASTER_BLEND_CONSTRAINT_Node2_3(6)_:
-+1 MASTER_BLEND_VAR_Node2_3(Pgh__2)
--1 Scen9_Pgh(2)
-= 0
-
-c_e_MASTER_BLEND_CONSTRAINT_Node2_3(7)_:
-+1 MASTER_BLEND_VAR_Node2_3(Pgt__2)
--1 Scen7_Pgt(2)
-= 0
-
-c_e_MASTER_BLEND_CONSTRAINT_Node2_3(8)_:
-+1 MASTER_BLEND_VAR_Node2_3(Pgt__2)
--1 Scen8_Pgt(2)
-= 0
-
-c_e_MASTER_BLEND_CONSTRAINT_Node2_3(9)_:
-+1 MASTER_BLEND_VAR_Node2_3(Pgt__2)
--1 Scen9_Pgt(2)
-= 0
-
-c_e_MASTER_BLEND_CONSTRAINT_Node2_3(10)_:
-+1 MASTER_BLEND_VAR_Node2_3(Vol__2)
--1 Scen7_Vol(2)
-= 0
-
-c_e_MASTER_BLEND_CONSTRAINT_Node2_3(11)_:
-+1 MASTER_BLEND_VAR_Node2_3(Vol__2)
--1 Scen8_Vol(2)
-= 0
-
-c_e_MASTER_BLEND_CONSTRAINT_Node2_3(12)_:
-+1 MASTER_BLEND_VAR_Node2_3(Vol__2)
--1 Scen9_Vol(2)
-= 0
-
-c_e_Scen1_StageCostConstraint(1)_:
--9.9817380306851948 Scen1_PDns(1)
--0.99817380306851944 Scen1_Pgt(1)
-+1 Scen1_StageCost(1)
-= 0
-
-c_e_Scen1_StageCostConstraint(2)_:
--9.9817380306851948 Scen1_PDns(2)
--0.99817380306851944 Scen1_Pgt(2)
-+1 Scen1_StageCost(2)
-= 0
-
-c_e_Scen1_StageCostConstraint(3)_:
--9.9635094113227147 Scen1_PDns(3)
--0.99635094113227152 Scen1_Pgt(3)
-+1 Scen1_StageCost(3)
--1 Scen1_sl
-= 0
-
-c_e_Scen1_demand(1)_:
-+1 Scen1_PDns(1)
-+1 Scen1_Pgh(1)
-+1 Scen1_Pgt(1)
-= 90
-
-c_e_Scen1_demand(2)_:
-+1 Scen1_PDns(2)
-+1 Scen1_Pgh(2)
-+1 Scen1_Pgt(2)
-= 160
-
-c_e_Scen1_demand(3)_:
-+1 Scen1_PDns(3)
-+1 Scen1_Pgh(3)
-+1 Scen1_Pgt(3)
-= 110
-
-c_u_Scen1_conserv(1)_:
-+0.6048 Scen1_Pgh(1)
-+1 Scen1_Vol(1)
-<= 90.719999999999999
-
-c_u_Scen1_conserv(2)_:
-+0.6048 Scen1_Pgh(2)
--1 Scen1_Vol(1)
-+1 Scen1_Vol(2)
-<= 6.048
-
-c_u_Scen1_conserv(3)_:
-+1.2096 Scen1_Pgh(3)
--1 Scen1_Vol(2)
-+1 Scen1_Vol(3)
-<= 48.384
-
-c_u_Scen1_fcfe_:
--4166.6700000000001 Scen1_Vol(3)
--1 Scen1_sl
-<= -252000.2016
-
-c_e_Scen2_StageCostConstraint(1)_:
--9.9817380306851948 Scen2_PDns(1)
--0.99817380306851944 Scen2_Pgt(1)
-+1 Scen2_StageCost(1)
-= 0
-
-c_e_Scen2_StageCostConstraint(2)_:
--9.9817380306851948 Scen2_PDns(2)
--0.99817380306851944 Scen2_Pgt(2)
-+1 Scen2_StageCost(2)
-= 0
-
-c_e_Scen2_StageCostConstraint(3)_:
--9.9635094113227147 Scen2_PDns(3)
--0.99635094113227152 Scen2_Pgt(3)
-+1 Scen2_StageCost(3)
--1 Scen2_sl
-= 0
-
-c_e_Scen2_demand(1)_:
-+1 Scen2_PDns(1)
-+1 Scen2_Pgh(1)
-+1 Scen2_Pgt(1)
-= 90
-
-c_e_Scen2_demand(2)_:
-+1 Scen2_PDns(2)
-+1 Scen2_Pgh(2)
-+1 Scen2_Pgt(2)
-= 160
-
-c_e_Scen2_demand(3)_:
-+1 Scen2_PDns(3)
-+1 Scen2_Pgh(3)
-+1 Scen2_Pgt(3)
-= 110
-
-c_u_Scen2_conserv(1)_:
-+0.6048 Scen2_Pgh(1)
-+1 Scen2_Vol(1)
-<= 90.719999999999999
-
-c_u_Scen2_conserv(2)_:
-+0.6048 Scen2_Pgh(2)
--1 Scen2_Vol(1)
-+1 Scen2_Vol(2)
-<= 6.048
-
-c_u_Scen2_conserv(3)_:
-+1.2096 Scen2_Pgh(3)
--1 Scen2_Vol(2)
-+1 Scen2_Vol(3)
-<= 60.480000000000004
-
-c_u_Scen2_fcfe_:
--4166.6700000000001 Scen2_Vol(3)
--1 Scen2_sl
-<= -252000.2016
-
-c_e_Scen3_StageCostConstraint(1)_:
--9.9817380306851948 Scen3_PDns(1)
--0.99817380306851944 Scen3_Pgt(1)
-+1 Scen3_StageCost(1)
-= 0
-
-c_e_Scen3_StageCostConstraint(2)_:
--9.9817380306851948 Scen3_PDns(2)
--0.99817380306851944 Scen3_Pgt(2)
-+1 Scen3_StageCost(2)
-= 0
-
-c_e_Scen3_StageCostConstraint(3)_:
--9.9635094113227147 Scen3_PDns(3)
--0.99635094113227152 Scen3_Pgt(3)
-+1 Scen3_StageCost(3)
--1 Scen3_sl
-= 0
-
-c_e_Scen3_demand(1)_:
-+1 Scen3_PDns(1)
-+1 Scen3_Pgh(1)
-+1 Scen3_Pgt(1)
-= 90
-
-c_e_Scen3_demand(2)_:
-+1 Scen3_PDns(2)
-+1 Scen3_Pgh(2)
-+1 Scen3_Pgt(2)
-= 160
-
-c_e_Scen3_demand(3)_:
-+1 Scen3_PDns(3)
-+1 Scen3_Pgh(3)
-+1 Scen3_Pgt(3)
-= 110
-
-c_u_Scen3_conserv(1)_:
-+0.6048 Scen3_Pgh(1)
-+1 Scen3_Vol(1)
-<= 90.719999999999999
-
-c_u_Scen3_conserv(2)_:
-+0.6048 Scen3_Pgh(2)
--1 Scen3_Vol(1)
-+1 Scen3_Vol(2)
-<= 6.048
-
-c_u_Scen3_conserv(3)_:
-+1.2096 Scen3_Pgh(3)
--1 Scen3_Vol(2)
-+1 Scen3_Vol(3)
-<= 72.575999999999993
-
-c_u_Scen3_fcfe_:
--4166.6700000000001 Scen3_Vol(3)
--1 Scen3_sl
-<= -252000.2016
-
-c_e_Scen4_StageCostConstraint(1)_:
--9.9817380306851948 Scen4_PDns(1)
--0.99817380306851944 Scen4_Pgt(1)
-+1 Scen4_StageCost(1)
-= 0
-
-c_e_Scen4_StageCostConstraint(2)_:
--9.9817380306851948 Scen4_PDns(2)
--0.99817380306851944 Scen4_Pgt(2)
-+1 Scen4_StageCost(2)
-= 0
-
-c_e_Scen4_StageCostConstraint(3)_:
--9.9635094113227147 Scen4_PDns(3)
--0.99635094113227152 Scen4_Pgt(3)
-+1 Scen4_StageCost(3)
--1 Scen4_sl
-= 0
-
-c_e_Scen4_demand(1)_:
-+1 Scen4_PDns(1)
-+1 Scen4_Pgh(1)
-+1 Scen4_Pgt(1)
-= 90
-
-c_e_Scen4_demand(2)_:
-+1 Scen4_PDns(2)
-+1 Scen4_Pgh(2)
-+1 Scen4_Pgt(2)
-= 160
-
-c_e_Scen4_demand(3)_:
-+1 Scen4_PDns(3)
-+1 Scen4_Pgh(3)
-+1 Scen4_Pgt(3)
-= 110
-
-c_u_Scen4_conserv(1)_:
-+0.6048 Scen4_Pgh(1)
-+1 Scen4_Vol(1)
-<= 90.719999999999999
-
-c_u_Scen4_conserv(2)_:
-+0.6048 Scen4_Pgh(2)
--1 Scen4_Vol(1)
-+1 Scen4_Vol(2)
-<= 30.240000000000002
-
-c_u_Scen4_conserv(3)_:
-+1.2096 Scen4_Pgh(3)
--1 Scen4_Vol(2)
-+1 Scen4_Vol(3)
-<= 48.384
-
-c_u_Scen4_fcfe_:
--4166.6700000000001 Scen4_Vol(3)
--1 Scen4_sl
-<= -252000.2016
-
-c_e_Scen5_StageCostConstraint(1)_:
--9.9817380306851948 Scen5_PDns(1)
--0.99817380306851944 Scen5_Pgt(1)
-+1 Scen5_StageCost(1)
-= 0
-
-c_e_Scen5_StageCostConstraint(2)_:
--9.9817380306851948 Scen5_PDns(2)
--0.99817380306851944 Scen5_Pgt(2)
-+1 Scen5_StageCost(2)
-= 0
-
-c_e_Scen5_StageCostConstraint(3)_:
--9.9635094113227147 Scen5_PDns(3)
--0.99635094113227152 Scen5_Pgt(3)
-+1 Scen5_StageCost(3)
--1 Scen5_sl
-= 0
-
-c_e_Scen5_demand(1)_:
-+1 Scen5_PDns(1)
-+1 Scen5_Pgh(1)
-+1 Scen5_Pgt(1)
-= 90
-
-c_e_Scen5_demand(2)_:
-+1 Scen5_PDns(2)
-+1 Scen5_Pgh(2)
-+1 Scen5_Pgt(2)
-= 160
-
-c_e_Scen5_demand(3)_:
-+1 Scen5_PDns(3)
-+1 Scen5_Pgh(3)
-+1 Scen5_Pgt(3)
-= 110
-
-c_u_Scen5_conserv(1)_:
-+0.6048 Scen5_Pgh(1)
-+1 Scen5_Vol(1)
-<= 90.719999999999999
-
-c_u_Scen5_conserv(2)_:
-+0.6048 Scen5_Pgh(2)
--1 Scen5_Vol(1)
-+1 Scen5_Vol(2)
-<= 30.240000000000002
-
-c_u_Scen5_conserv(3)_:
-+1.2096 Scen5_Pgh(3)
--1 Scen5_Vol(2)
-+1 Scen5_Vol(3)
-<= 60.480000000000004
-
-c_u_Scen5_fcfe_:
--4166.6700000000001 Scen5_Vol(3)
--1 Scen5_sl
-<= -252000.2016
-
-c_e_Scen6_StageCostConstraint(1)_:
--9.9817380306851948 Scen6_PDns(1)
--0.99817380306851944 Scen6_Pgt(1)
-+1 Scen6_StageCost(1)
-= 0
-
-c_e_Scen6_StageCostConstraint(2)_:
--9.9817380306851948 Scen6_PDns(2)
--0.99817380306851944 Scen6_Pgt(2)
-+1 Scen6_StageCost(2)
-= 0
-
-c_e_Scen6_StageCostConstraint(3)_:
--9.9635094113227147 Scen6_PDns(3)
--0.99635094113227152 Scen6_Pgt(3)
-+1 Scen6_StageCost(3)
--1 Scen6_sl
-= 0
-
-c_e_Scen6_demand(1)_:
-+1 Scen6_PDns(1)
-+1 Scen6_Pgh(1)
-+1 Scen6_Pgt(1)
-= 90
-
-c_e_Scen6_demand(2)_:
-+1 Scen6_PDns(2)
-+1 Scen6_Pgh(2)
-+1 Scen6_Pgt(2)
-= 160
-
-c_e_Scen6_demand(3)_:
-+1 Scen6_PDns(3)
-+1 Scen6_Pgh(3)
-+1 Scen6_Pgt(3)
-= 110
-
-c_u_Scen6_conserv(1)_:
-+0.6048 Scen6_Pgh(1)
-+1 Scen6_Vol(1)
-<= 90.719999999999999
-
-c_u_Scen6_conserv(2)_:
-+0.6048 Scen6_Pgh(2)
--1 Scen6_Vol(1)
-+1 Scen6_Vol(2)
-<= 30.240000000000002
-
-c_u_Scen6_conserv(3)_:
-+1.2096 Scen6_Pgh(3)
--1 Scen6_Vol(2)
-+1 Scen6_Vol(3)
-<= 72.575999999999993
-
-c_u_Scen6_fcfe_:
--4166.6700000000001 Scen6_Vol(3)
--1 Scen6_sl
-<= -252000.2016
-
-c_e_Scen7_StageCostConstraint(1)_:
--9.9817380306851948 Scen7_PDns(1)
--0.99817380306851944 Scen7_Pgt(1)
-+1 Scen7_StageCost(1)
-= 0
-
-c_e_Scen7_StageCostConstraint(2)_:
--9.9817380306851948 Scen7_PDns(2)
--0.99817380306851944 Scen7_Pgt(2)
-+1 Scen7_StageCost(2)
-= 0
-
-c_e_Scen7_StageCostConstraint(3)_:
--9.9635094113227147 Scen7_PDns(3)
--0.99635094113227152 Scen7_Pgt(3)
-+1 Scen7_StageCost(3)
--1 Scen7_sl
-= 0
-
-c_e_Scen7_demand(1)_:
-+1 Scen7_PDns(1)
-+1 Scen7_Pgh(1)
-+1 Scen7_Pgt(1)
-= 90
-
-c_e_Scen7_demand(2)_:
-+1 Scen7_PDns(2)
-+1 Scen7_Pgh(2)
-+1 Scen7_Pgt(2)
-= 160
-
-c_e_Scen7_demand(3)_:
-+1 Scen7_PDns(3)
-+1 Scen7_Pgh(3)
-+1 Scen7_Pgt(3)
-= 110
-
-c_u_Scen7_conserv(1)_:
-+0.6048 Scen7_Pgh(1)
-+1 Scen7_Vol(1)
-<= 90.719999999999999
-
-c_u_Scen7_conserv(2)_:
-+0.6048 Scen7_Pgh(2)
--1 Scen7_Vol(1)
-+1 Scen7_Vol(2)
-<= 54.432000000000002
-
-c_u_Scen7_conserv(3)_:
-+1.2096 Scen7_Pgh(3)
--1 Scen7_Vol(2)
-+1 Scen7_Vol(3)
-<= 48.384
-
-c_u_Scen7_fcfe_:
--4166.6700000000001 Scen7_Vol(3)
--1 Scen7_sl
-<= -252000.2016
-
-c_e_Scen8_StageCostConstraint(1)_:
--9.9817380306851948 Scen8_PDns(1)
--0.99817380306851944 Scen8_Pgt(1)
-+1 Scen8_StageCost(1)
-= 0
-
-c_e_Scen8_StageCostConstraint(2)_:
--9.9817380306851948 Scen8_PDns(2)
--0.99817380306851944 Scen8_Pgt(2)
-+1 Scen8_StageCost(2)
-= 0
-
-c_e_Scen8_StageCostConstraint(3)_:
--9.9635094113227147 Scen8_PDns(3)
--0.99635094113227152 Scen8_Pgt(3)
-+1 Scen8_StageCost(3)
--1 Scen8_sl
-= 0
-
-c_e_Scen8_demand(1)_:
-+1 Scen8_PDns(1)
-+1 Scen8_Pgh(1)
-+1 Scen8_Pgt(1)
-= 90
-
-c_e_Scen8_demand(2)_:
-+1 Scen8_PDns(2)
-+1 Scen8_Pgh(2)
-+1 Scen8_Pgt(2)
-= 160
-
-c_e_Scen8_demand(3)_:
-+1 Scen8_PDns(3)
-+1 Scen8_Pgh(3)
-+1 Scen8_Pgt(3)
-= 110
-
-c_u_Scen8_conserv(1)_:
-+0.6048 Scen8_Pgh(1)
-+1 Scen8_Vol(1)
-<= 90.719999999999999
-
-c_u_Scen8_conserv(2)_:
-+0.6048 Scen8_Pgh(2)
--1 Scen8_Vol(1)
-+1 Scen8_Vol(2)
-<= 54.432000000000002
-
-c_u_Scen8_conserv(3)_:
-+1.2096 Scen8_Pgh(3)
--1 Scen8_Vol(2)
-+1 Scen8_Vol(3)
-<= 60.480000000000004
-
-c_u_Scen8_fcfe_:
--4166.6700000000001 Scen8_Vol(3)
--1 Scen8_sl
-<= -252000.2016
-
-c_e_Scen9_StageCostConstraint(1)_:
--9.9817380306851948 Scen9_PDns(1)
--0.99817380306851944 Scen9_Pgt(1)
-+1 Scen9_StageCost(1)
-= 0
-
-c_e_Scen9_StageCostConstraint(2)_:
--9.9817380306851948 Scen9_PDns(2)
--0.99817380306851944 Scen9_Pgt(2)
-+1 Scen9_StageCost(2)
-= 0
-
-c_e_Scen9_StageCostConstraint(3)_:
--9.9635094113227147 Scen9_PDns(3)
--0.99635094113227152 Scen9_Pgt(3)
-+1 Scen9_StageCost(3)
--1 Scen9_sl
-= 0
-
-c_e_Scen9_demand(1)_:
-+1 Scen9_PDns(1)
-+1 Scen9_Pgh(1)
-+1 Scen9_Pgt(1)
-= 90
-
-c_e_Scen9_demand(2)_:
-+1 Scen9_PDns(2)
-+1 Scen9_Pgh(2)
-+1 Scen9_Pgt(2)
-= 160
-
-c_e_Scen9_demand(3)_:
-+1 Scen9_PDns(3)
-+1 Scen9_Pgh(3)
-+1 Scen9_Pgt(3)
-= 110
-
-c_u_Scen9_conserv(1)_:
-+0.6048 Scen9_Pgh(1)
-+1 Scen9_Vol(1)
-<= 90.719999999999999
-
-c_u_Scen9_conserv(2)_:
-+0.6048 Scen9_Pgh(2)
--1 Scen9_Vol(1)
-+1 Scen9_Vol(2)
-<= 54.432000000000002
-
-c_u_Scen9_conserv(3)_:
-+1.2096 Scen9_Pgh(3)
--1 Scen9_Vol(2)
-+1 Scen9_Vol(3)
-<= 72.575999999999993
-
-c_u_Scen9_fcfe_:
--4166.6700000000001 Scen9_Vol(3)
--1 Scen9_sl
-<= -252000.2016
-
-c_e_ONE_VAR_CONSTANT:
-ONE_VAR_CONSTANT = 1.0
-
-bounds
- -inf <= MASTER_BLEND_VAR_RootNode(PDns__1) <= +inf
- -inf <= MASTER_BLEND_VAR_RootNode(Pgh__1) <= +inf
- -inf <= MASTER_BLEND_VAR_RootNode(Pgt__1) <= +inf
- -inf <= MASTER_BLEND_VAR_RootNode(Vol__1) <= +inf
- -inf <= MASTER_BLEND_VAR_Node2_1(PDns__2) <= +inf
- -inf <= MASTER_BLEND_VAR_Node2_1(Pgh__2) <= +inf
- -inf <= MASTER_BLEND_VAR_Node2_1(Pgt__2) <= +inf
- -inf <= MASTER_BLEND_VAR_Node2_1(Vol__2) <= +inf
- -inf <= MASTER_BLEND_VAR_Node2_2(PDns__2) <= +inf
- -inf <= MASTER_BLEND_VAR_Node2_2(Pgh__2) <= +inf
- -inf <= MASTER_BLEND_VAR_Node2_2(Pgt__2) <= +inf
- -inf <= MASTER_BLEND_VAR_Node2_2(Vol__2) <= +inf
- -inf <= MASTER_BLEND_VAR_Node2_3(PDns__2) <= +inf
- -inf <= MASTER_BLEND_VAR_Node2_3(Pgh__2) <= +inf
- -inf <= MASTER_BLEND_VAR_Node2_3(Pgt__2) <= +inf
- -inf <= MASTER_BLEND_VAR_Node2_3(Vol__2) <= +inf
- 0 <= Scen1_Pgt(1) <= 100
- 0 <= Scen1_Pgt(2) <= 100
- 0 <= Scen1_Pgt(3) <= 100
- 0 <= Scen1_Pgh(1) <= 100
- 0 <= Scen1_Pgh(2) <= 100
- 0 <= Scen1_Pgh(3) <= 100
- 0 <= Scen1_PDns(1) <= 90
- 0 <= Scen1_PDns(2) <= 160
- 0 <= Scen1_PDns(3) <= 110
- 0 <= Scen1_Vol(1) <= 100
- 0 <= Scen1_Vol(2) <= 100
- 0 <= Scen1_Vol(3) <= 100
- 0 <= Scen1_sl <= +inf
- -inf <= Scen1_StageCost(1) <= +inf
- -inf <= Scen1_StageCost(2) <= +inf
- -inf <= Scen1_StageCost(3) <= +inf
- 0 <= Scen2_Pgt(1) <= 100
- 0 <= Scen2_Pgt(2) <= 100
- 0 <= Scen2_Pgt(3) <= 100
- 0 <= Scen2_Pgh(1) <= 100
- 0 <= Scen2_Pgh(2) <= 100
- 0 <= Scen2_Pgh(3) <= 100
- 0 <= Scen2_PDns(1) <= 90
- 0 <= Scen2_PDns(2) <= 160
- 0 <= Scen2_PDns(3) <= 110
- 0 <= Scen2_Vol(1) <= 100
- 0 <= Scen2_Vol(2) <= 100
- 0 <= Scen2_Vol(3) <= 100
- 0 <= Scen2_sl <= +inf
- -inf <= Scen2_StageCost(1) <= +inf
- -inf <= Scen2_StageCost(2) <= +inf
- -inf <= Scen2_StageCost(3) <= +inf
- 0 <= Scen3_Pgt(1) <= 100
- 0 <= Scen3_Pgt(2) <= 100
- 0 <= Scen3_Pgt(3) <= 100
- 0 <= Scen3_Pgh(1) <= 100
- 0 <= Scen3_Pgh(2) <= 100
- 0 <= Scen3_Pgh(3) <= 100
- 0 <= Scen3_PDns(1) <= 90
- 0 <= Scen3_PDns(2) <= 160
- 0 <= Scen3_PDns(3) <= 110
- 0 <= Scen3_Vol(1) <= 100
- 0 <= Scen3_Vol(2) <= 100
- 0 <= Scen3_Vol(3) <= 100
- 0 <= Scen3_sl <= +inf
- -inf <= Scen3_StageCost(1) <= +inf
- -inf <= Scen3_StageCost(2) <= +inf
- -inf <= Scen3_StageCost(3) <= +inf
- 0 <= Scen4_Pgt(1) <= 100
- 0 <= Scen4_Pgt(2) <= 100
- 0 <= Scen4_Pgt(3) <= 100
- 0 <= Scen4_Pgh(1) <= 100
- 0 <= Scen4_Pgh(2) <= 100
- 0 <= Scen4_Pgh(3) <= 100
- 0 <= Scen4_PDns(1) <= 90
- 0 <= Scen4_PDns(2) <= 160
- 0 <= Scen4_PDns(3) <= 110
- 0 <= Scen4_Vol(1) <= 100
- 0 <= Scen4_Vol(2) <= 100
- 0 <= Scen4_Vol(3) <= 100
- 0 <= Scen4_sl <= +inf
- -inf <= Scen4_StageCost(1) <= +inf
- -inf <= Scen4_StageCost(2) <= +inf
- -inf <= Scen4_StageCost(3) <= +inf
- 0 <= Scen5_Pgt(1) <= 100
- 0 <= Scen5_Pgt(2) <= 100
- 0 <= Scen5_Pgt(3) <= 100
- 0 <= Scen5_Pgh(1) <= 100
- 0 <= Scen5_Pgh(2) <= 100
- 0 <= Scen5_Pgh(3) <= 100
- 0 <= Scen5_PDns(1) <= 90
- 0 <= Scen5_PDns(2) <= 160
- 0 <= Scen5_PDns(3) <= 110
- 0 <= Scen5_Vol(1) <= 100
- 0 <= Scen5_Vol(2) <= 100
- 0 <= Scen5_Vol(3) <= 100
- 0 <= Scen5_sl <= +inf
- -inf <= Scen5_StageCost(1) <= +inf
- -inf <= Scen5_StageCost(2) <= +inf
- -inf <= Scen5_StageCost(3) <= +inf
- 0 <= Scen6_Pgt(1) <= 100
- 0 <= Scen6_Pgt(2) <= 100
- 0 <= Scen6_Pgt(3) <= 100
- 0 <= Scen6_Pgh(1) <= 100
- 0 <= Scen6_Pgh(2) <= 100
- 0 <= Scen6_Pgh(3) <= 100
- 0 <= Scen6_PDns(1) <= 90
- 0 <= Scen6_PDns(2) <= 160
- 0 <= Scen6_PDns(3) <= 110
- 0 <= Scen6_Vol(1) <= 100
- 0 <= Scen6_Vol(2) <= 100
- 0 <= Scen6_Vol(3) <= 100
- 0 <= Scen6_sl <= +inf
- -inf <= Scen6_StageCost(1) <= +inf
- -inf <= Scen6_StageCost(2) <= +inf
- -inf <= Scen6_StageCost(3) <= +inf
- 0 <= Scen7_Pgt(1) <= 100
- 0 <= Scen7_Pgt(2) <= 100
- 0 <= Scen7_Pgt(3) <= 100
- 0 <= Scen7_Pgh(1) <= 100
- 0 <= Scen7_Pgh(2) <= 100
- 0 <= Scen7_Pgh(3) <= 100
- 0 <= Scen7_PDns(1) <= 90
- 0 <= Scen7_PDns(2) <= 160
- 0 <= Scen7_PDns(3) <= 110
- 0 <= Scen7_Vol(1) <= 100
- 0 <= Scen7_Vol(2) <= 100
- 0 <= Scen7_Vol(3) <= 100
- 0 <= Scen7_sl <= +inf
- -inf <= Scen7_StageCost(1) <= +inf
- -inf <= Scen7_StageCost(2) <= +inf
- -inf <= Scen7_StageCost(3) <= +inf
- 0 <= Scen8_Pgt(1) <= 100
- 0 <= Scen8_Pgt(2) <= 100
- 0 <= Scen8_Pgt(3) <= 100
- 0 <= Scen8_Pgh(1) <= 100
- 0 <= Scen8_Pgh(2) <= 100
- 0 <= Scen8_Pgh(3) <= 100
- 0 <= Scen8_PDns(1) <= 90
- 0 <= Scen8_PDns(2) <= 160
- 0 <= Scen8_PDns(3) <= 110
- 0 <= Scen8_Vol(1) <= 100
- 0 <= Scen8_Vol(2) <= 100
- 0 <= Scen8_Vol(3) <= 100
- 0 <= Scen8_sl <= +inf
- -inf <= Scen8_StageCost(1) <= +inf
- -inf <= Scen8_StageCost(2) <= +inf
- -inf <= Scen8_StageCost(3) <= +inf
- 0 <= Scen9_Pgt(1) <= 100
- 0 <= Scen9_Pgt(2) <= 100
- 0 <= Scen9_Pgt(3) <= 100
- 0 <= Scen9_Pgh(1) <= 100
- 0 <= Scen9_Pgh(2) <= 100
- 0 <= Scen9_Pgh(3) <= 100
- 0 <= Scen9_PDns(1) <= 90
- 0 <= Scen9_PDns(2) <= 160
- 0 <= Scen9_PDns(3) <= 110
- 0 <= Scen9_Vol(1) <= 100
- 0 <= Scen9_Vol(2) <= 100
- 0 <= Scen9_Vol(3) <= 100
- 0 <= Scen9_sl <= +inf
- -inf <= Scen9_StageCost(1) <= +inf
- -inf <= Scen9_StageCost(2) <= +inf
- -inf <= Scen9_StageCost(3) <= +inf
-end
diff --git a/pyomo/pysp/tests/unit/baselines/hydro_ef.baseline.txt b/pyomo/pysp/tests/unit/baselines/hydro_ef.baseline.txt
deleted file mode 100644
index 4ed2dff6df2..00000000000
--- a/pyomo/pysp/tests/unit/baselines/hydro_ef.baseline.txt
+++ /dev/null
@@ -1,357 +0,0 @@
-Importing model and scenario tree files
-Time to import model and scenario tree structure files=0.01 seconds
-Scenario Tree Detail
-----------------------------------------------------
-Tree Nodes:
-
- Name=Node2_1
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3330
- Children:
- Node3_1_1
- Node3_1_2
- Node3_1_3
- Scenarios:
- Scen1
- Scen2
- Scen3
-
- Name=Node2_2
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3330
- Children:
- Node3_2_1
- Node3_2_2
- Node3_2_3
- Scenarios:
- Scen4
- Scen5
- Scen6
-
- Name=Node2_3
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3340
- Children:
- Node3_3_1
- Node3_3_2
- Node3_3_3
- Scenarios:
- Scen7
- Scen8
- Scen9
-
- Name=Node3_1_1
- Stage=ThirdStage
- Parent=Node2_1
- Conditional probability=0.3330
- Children:
- None
- Scenarios:
- Scen1
-
- Name=Node3_1_2
- Stage=ThirdStage
- Parent=Node2_1
- Conditional probability=0.3330
- Children:
- None
- Scenarios:
- Scen2
-
- Name=Node3_1_3
- Stage=ThirdStage
- Parent=Node2_1
- Conditional probability=0.3340
- Children:
- None
- Scenarios:
- Scen3
-
- Name=Node3_2_1
- Stage=ThirdStage
- Parent=Node2_2
- Conditional probability=0.3330
- Children:
- None
- Scenarios:
- Scen4
-
- Name=Node3_2_2
- Stage=ThirdStage
- Parent=Node2_2
- Conditional probability=0.3330
- Children:
- None
- Scenarios:
- Scen5
-
- Name=Node3_2_3
- Stage=ThirdStage
- Parent=Node2_2
- Conditional probability=0.3340
- Children:
- None
- Scenarios:
- Scen6
-
- Name=Node3_3_1
- Stage=ThirdStage
- Parent=Node2_3
- Conditional probability=0.3330
- Children:
- None
- Scenarios:
- Scen7
-
- Name=Node3_3_2
- Stage=ThirdStage
- Parent=Node2_3
- Conditional probability=0.3330
- Children:
- None
- Scenarios:
- Scen8
-
- Name=Node3_3_3
- Stage=ThirdStage
- Parent=Node2_3
- Conditional probability=0.3340
- Children:
- None
- Scenarios:
- Scen9
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- Node2_1
- Node2_2
- Node2_3
- Scenarios:
- Scen1
- Scen2
- Scen3
- Scen4
- Scen5
- Scen6
- Scen7
- Scen8
- Scen9
-
-----------------------------------------------------
-Stages:
- Name=FirstStage
- Tree Nodes:
- RootNode
- Variables:
- PDns : [1]
- Pgh : [1]
- Pgt : [1]
- Vol : [1]
- Cost Variable:
- StageCost[1]
-
- Name=SecondStage
- Tree Nodes:
- Node2_1
- Node2_2
- Node2_3
- Variables:
- PDns : [2]
- Pgh : [2]
- Pgt : [2]
- Vol : [2]
- Cost Variable:
- StageCost[2]
-
- Name=ThirdStage
- Tree Nodes:
- Node3_1_1
- Node3_1_2
- Node3_1_3
- Node3_2_1
- Node3_2_2
- Node3_2_3
- Node3_3_1
- Node3_3_2
- Node3_3_3
- Variables:
- PDns : [3]
- Pgh : [3]
- Pgt : [3]
- Vol : [3]
- sl : []
- Cost Variable:
- StageCost[3]
-
-----------------------------------------------------
-Scenarios:
- Name=Scen1
- Probability=0.1109
- Leaf node=Node3_1_1
- Tree node sequence:
- RootNode
- Node2_1
- Node3_1_1
-
- Name=Scen2
- Probability=0.1109
- Leaf node=Node3_1_2
- Tree node sequence:
- RootNode
- Node2_1
- Node3_1_2
-
- Name=Scen3
- Probability=0.1112
- Leaf node=Node3_1_3
- Tree node sequence:
- RootNode
- Node2_1
- Node3_1_3
-
- Name=Scen4
- Probability=0.1109
- Leaf node=Node3_2_1
- Tree node sequence:
- RootNode
- Node2_2
- Node3_2_1
-
- Name=Scen5
- Probability=0.1109
- Leaf node=Node3_2_2
- Tree node sequence:
- RootNode
- Node2_2
- Node3_2_2
-
- Name=Scen6
- Probability=0.1112
- Leaf node=Node3_2_3
- Tree node sequence:
- RootNode
- Node2_2
- Node3_2_3
-
- Name=Scen7
- Probability=0.1112
- Leaf node=Node3_3_1
- Tree node sequence:
- RootNode
- Node2_3
- Node3_3_1
-
- Name=Scen8
- Probability=0.1112
- Leaf node=Node3_3_2
- Tree node sequence:
- RootNode
- Node2_3
- Node3_3_2
-
- Name=Scen9
- Probability=0.1116
- Leaf node=Node3_3_3
- Tree node sequence:
- RootNode
- Node2_3
- Node3_3_3
-
-----------------------------------------------------
-Scenario tree is valid!
-Initializing ScenarioTreeManagerClientSerial with options:
- * verbose: True
- - disable_gc: False
- - profile: 0
- - traceback: False
- - output_scenario_tree_solution: False
- - solution_saver_extension: ()
- - solution_loader_extension: ()
- - solution_writer: ()
- * output_file: /home/jwatson/sp/pyomo/pyomo/pyomo/pysp/tests/unit/test_hydro_ef.lp
- - solve: False
- - output_scenario_costs: None
- - output_instance_construction_time: False
- - compile_scenario_instances: False
- - output_times: False
- * model_location: /home/jwatson/sp/pyomo/pyomo/examples/pysp/hydro/models
- - model_directory: None (DEPRECATED)
- * scenario_tree_location: /home/jwatson/sp/pyomo/pyomo/examples/pysp/hydro/scenariodata
- - instance_directory: None (DEPRECATED)
- - objective_sense_stage_based: None
- - postinit_callback_location: ()
- - bounds_cfgfile: None (DEPRECATED)
- - aggregategetter_callback_location: ()
- - aggregate_cfgfile: None (DEPRECATED)
- - scenario_tree_random_seed: None
- - scenario_tree_seed: None (DEPRECATED)
- - scenario_tree_downsample_fraction: 1.0
- - scenario_bundle_specification: None
- - create_random_bundles: 0
- - profile_memory: 0
- - cvar_weight: 1.0
- - generate_weighted_cvar: False
- - risk_alpha: 0.95
- - cc_alpha: 0.0
- - cc_indicator_var: None
- - mipgap: None
- - solver: cplex
- - solver_io: None
- - solver_manager: serial
- - solver_options: ()
- - disable_warmstart: False
- - pyro_host: None
- - pyro_port: None
- - pyro_shutdown: False
- - shutdown_pyro: None (DEPRECATED)
- - output_solver_results: False
- * symbolic_solver_labels: True
- - output_solver_log: False
- - keep_solver_files: False
- - pyro_shutdown_workers: False
- - shutdown_pyro_workers: None (DEPRECATED)
- - activate_jsonio_solution_saver: None
-
-Constructing scenario tree instances
-Scenario-based instance initialization enabled
-Creating instance for scenario=Scen1
-Data for scenario=Scen1 loads from file=/home/jwatson/sp/pyomo/pyomo/examples/pysp/hydro/scenariodata/Scen1.dat
-Creating instance for scenario=Scen2
-Data for scenario=Scen2 loads from file=/home/jwatson/sp/pyomo/pyomo/examples/pysp/hydro/scenariodata/Scen2.dat
-Creating instance for scenario=Scen3
-Data for scenario=Scen3 loads from file=/home/jwatson/sp/pyomo/pyomo/examples/pysp/hydro/scenariodata/Scen3.dat
-Creating instance for scenario=Scen4
-Data for scenario=Scen4 loads from file=/home/jwatson/sp/pyomo/pyomo/examples/pysp/hydro/scenariodata/Scen4.dat
-Creating instance for scenario=Scen5
-Data for scenario=Scen5 loads from file=/home/jwatson/sp/pyomo/pyomo/examples/pysp/hydro/scenariodata/Scen5.dat
-Creating instance for scenario=Scen6
-Data for scenario=Scen6 loads from file=/home/jwatson/sp/pyomo/pyomo/examples/pysp/hydro/scenariodata/Scen6.dat
-Creating instance for scenario=Scen7
-Data for scenario=Scen7 loads from file=/home/jwatson/sp/pyomo/pyomo/examples/pysp/hydro/scenariodata/Scen7.dat
-Creating instance for scenario=Scen8
-Data for scenario=Scen8 loads from file=/home/jwatson/sp/pyomo/pyomo/examples/pysp/hydro/scenariodata/Scen8.dat
-Creating instance for scenario=Scen9
-Data for scenario=Scen9 loads from file=/home/jwatson/sp/pyomo/pyomo/examples/pysp/hydro/scenariodata/Scen9.dat
-Time to construct scenario instances=0.07 seconds
-Linking instances into scenario tree
-Time link scenario tree with instances=0.01 seconds
-ScenarioTreeManagerClientSerial is successfully initialized
-Overall initialization time=0.08 seconds
-
-Initializing extensive form algorithm for stochastic programming problems.
-Creating extensive form instance
-Creating variables for master binding instance
-Time to construct extensive form instance=0.00 seconds
-Starting to write extensive form
-Extensive form written to file=/home/jwatson/sp/pyomo/pyomo/pyomo/pysp/tests/unit/test_hydro_ef.lp
-Time to write output file=0.02 seconds
-Closing ScenarioTreeManagerClientSerial
-
-Total EF execution time=0.13 seconds
-
diff --git a/pyomo/pysp/tests/unit/baselines/lagrange_pr_testOptimalSelections.csv b/pyomo/pysp/tests/unit/baselines/lagrange_pr_testOptimalSelections.csv
deleted file mode 100644
index 714c5361725..00000000000
--- a/pyomo/pysp/tests/unit/baselines/lagrange_pr_testOptimalSelections.csv
+++ /dev/null
@@ -1,2 +0,0 @@
-
-Scenario1,Scenario2,Scenario3
diff --git a/pyomo/pysp/tests/unit/baselines/lagrange_pr_testPRoptimal.csv b/pyomo/pysp/tests/unit/baselines/lagrange_pr_testPRoptimal.csv
deleted file mode 100644
index 9919643a365..00000000000
--- a/pyomo/pysp/tests/unit/baselines/lagrange_pr_testPRoptimal.csv
+++ /dev/null
@@ -1,2 +0,0 @@
-0.0, 108879.328
-1.0, 129654.16
diff --git a/pyomo/pysp/tests/unit/baselines/lagrange_pr_testScenarioList.csv b/pyomo/pysp/tests/unit/baselines/lagrange_pr_testScenarioList.csv
deleted file mode 100644
index 4d9530b3758..00000000000
--- a/pyomo/pysp/tests/unit/baselines/lagrange_pr_testScenarioList.csv
+++ /dev/null
@@ -1,3 +0,0 @@
-Scenario1, 0.33
-Scenario2, 0.33
-Scenario3, 0.34
diff --git a/pyomo/pysp/tests/unit/baselines/lagrangian_cc_networkflow1ef3_cplex.baseline b/pyomo/pysp/tests/unit/baselines/lagrangian_cc_networkflow1ef3_cplex.baseline
deleted file mode 100644
index d80d4957d2e..00000000000
--- a/pyomo/pysp/tests/unit/baselines/lagrangian_cc_networkflow1ef3_cplex.baseline
+++ /dev/null
@@ -1,17 +0,0 @@
-lagrangeParam begins
-Initializing PH
-
-We are solving a MINIMIZATION problem.
-
-lambda= 0.0 ...run begins 3 scenarios
-SolStatus=ok
- ...ends
-Initial cost = 108879.328 for bL = 0.0
-lambda= 0.0 ...run begins
-SolStatus=ok
- ...ends
-initial gap = 0.1602326682
-
-End of test; this is only a test.
-
-returned from partialLagrangeParametric
diff --git a/pyomo/pysp/tests/unit/baselines/lagrangian_morepr_1cc_networkflow1ef3_cplex.baseline b/pyomo/pysp/tests/unit/baselines/lagrangian_morepr_1cc_networkflow1ef3_cplex.baseline
deleted file mode 100644
index bb9d6081f8f..00000000000
--- a/pyomo/pysp/tests/unit/baselines/lagrangian_morepr_1cc_networkflow1ef3_cplex.baseline
+++ /dev/null
@@ -1,117 +0,0 @@
-lagrangeMorePR begins datetime = 2015-09-17 13:46:42.869610
-Initializing PH
-
-We are solving a MINIMIZATION problem.
-3 scenarios read from file: /home/hudson/slave/workspace/Pyomo_trunk_python2.7_snotra_expensive/src/pyomo/pyomo/pysp/tests/unit/lagrange_pr_testScenarioList.csv
-2 PR points read from file: /home/hudson/slave/workspace/Pyomo_trunk_python2.7_snotra_expensive/src/pyomo/pyomo/pysp/tests/unit/lagrange_pr_testPRoptimal.csv (envelope function)
-2 PR points:
- lambda beta-probability min cost
- 0 0.0 108,879.0
- 20774.832 1.0 129,654.0
-==================================================================
-2 Optimal selections read from file: /home/hudson/slave/workspace/Pyomo_trunk_python2.7_snotra_expensive/src/pyomo/pyomo/pysp/tests/unit/lagrange_pr_testOptimalSelections.csv
-10 probabilities
-solve begins datetime = 2015-09-17 13:46:44.623256
- - lambda = 0.000000
-SolStatus=ok
-solve ends datetime = 2015-09-17 13:46:47.974590
- - SolStat = ok
- - b = 0.34
- - z = 111828.56
-(adding to more PR points)
-solve begins datetime = 2015-09-17 13:46:47.974828
- - lambda = 0.000000
-SolStatus=ok
-solve ends datetime = 2015-09-17 13:46:51.005417
- - SolStat = ok
- - b = 0.34
- - z = 111828.56
-(adding to more PR points)
- Not generating PR point...flipping from bU failed
- Not generating PR point...flipping from bU failed
-solve begins datetime = 2015-09-17 13:46:51.005785
- - lambda = 0.000000
-SolStatus=ok
-solve ends datetime = 2015-09-17 13:46:54.190231
- - SolStat = ok
- - b = 0.67
- - z = 111983.43
-(adding to more PR points)
- Not generating PR point...flipping from bU failed
-solve begins datetime = 2015-09-17 13:46:54.190554
- - lambda = 0.000000
-SolStatus=ok
-solve ends datetime = 2015-09-17 13:46:57.417929
- - SolStat = ok
- - b = 0.67
- - z = 111983.43
-(adding to more PR points)
-solve begins datetime = 2015-09-17 13:46:57.418162
- - lambda = 0.000000
-SolStatus=ok
-solve ends datetime = 2015-09-17 13:47:00.615758
- - SolStat = ok
- - b = 0.67
- - z = 111983.43
-(adding to more PR points)
-solve begins datetime = 2015-09-17 13:47:00.616012
- - lambda = 0.000000
-SolStatus=ok
-solve ends datetime = 2015-09-17 13:47:03.752152
- - SolStat = ok
- - b = 0.34
- - z = 111828.56
-(adding to more PR points)
-solve begins datetime = 2015-09-17 13:47:03.752439
- - lambda = 0.000000
-SolStatus=ok
-solve ends datetime = 2015-09-17 13:47:06.885387
- - SolStat = ok
- - b = 0.67
- - z = 111983.43
-(adding to more PR points)
-7 PR points written to file: /home/hudson/slave/workspace/Pyomo_trunk_python2.7_snotra_expensive/src/pyomo/pyomo/pysp/tests/unit/lagrange_pr_testPRmore.csv
-lapsed time = 24.022742033
-
-==================== returned from LagrangeMorePR
-starting datetime = 2015-09-17 13:46:42.869730
-3 scenarios read from file: /home/hudson/slave/workspace/Pyomo_trunk_python2.7_snotra_expensive/src/pyomo/pyomo/pysp/tests/unit/lagrange_pr_testScenarioList.csv
-2 PR points read from file: /home/hudson/slave/workspace/Pyomo_trunk_python2.7_snotra_expensive/src/pyomo/pyomo/pysp/tests/unit/lagrange_pr_testPRoptimal.csv (envelope function)
-2 Optimal selections read from file: /home/hudson/slave/workspace/Pyomo_trunk_python2.7_snotra_expensive/src/pyomo/pyomo/pysp/tests/unit/lagrange_pr_testOptimalSelections.csv
-10 probabilities
-Initialize complete...lapsed time = 1.75337696075
-7 PR points written to file: /home/hudson/slave/workspace/Pyomo_trunk_python2.7_snotra_expensive/src/pyomo/pyomo/pysp/tests/unit/lagrange_pr_testPRmore.csv
-lapsed time = 24.022742033
-Envelope:
-2 PR points:
- lambda beta-probability min cost
- 0 0.0 108,879.0
- 20774.832 1.0 129,654.0
-==================================================================
-None
-
-Added:
-7 PR points:
- lambda beta-probability min cost
- None 0.34 111,829.0
- None 0.34 111,829.0
- None 0.67 111,983.0
- None 0.67 111,983.0
- None 0.67 111,983.0
- None 0.34 111,829.0
- None 0.67 111,983.0
-==================================================================
-Combined table of PR points (sorted):
-9 PR points:
- lambda beta-probability min cost
- 0 0.0 108,879.0
- None 0.34 111,829.0
- None 0.34 111,829.0
- None 0.34 111,829.0
- None 0.67 111,983.0
- None 0.67 111,983.0
- None 0.67 111,983.0
- None 0.67 111,983.0
- 20774.832 1.0 129,654.0
-==================================================================
-None
diff --git a/pyomo/pysp/tests/unit/baselines/lagrangian_param_1cc_networkflow1ef3_cplex.baseline b/pyomo/pysp/tests/unit/baselines/lagrangian_param_1cc_networkflow1ef3_cplex.baseline
deleted file mode 100644
index 7eeecbdbcf3..00000000000
--- a/pyomo/pysp/tests/unit/baselines/lagrangian_param_1cc_networkflow1ef3_cplex.baseline
+++ /dev/null
@@ -1,105 +0,0 @@
-RUNNING - run args=['lagrangeParam.py', '-r', '1.0', '--solver=cplex', '--model-directory=/home/hudson/slave/workspace/Pyomo_trunk_python2.7_snotra_expensive/src/pyomo/examples/pysp/networkflow/models-cc', '--instance-directory=/home/hudson/slave/workspace/Pyomo_trunk_python2.7_snotra_expensive/src/pyomo/examples/pysp/networkflow/1ef3-cc']
-Loading reference model and scenario tree
-From LagrangeParametric, status = options set STARTTIME = 1442519228.2
-Initializing PH
-
-min 3 scenarios
-starting at datetime = 2015-09-17 13:47:09.637924
-probabilities sum to 1.000000 range: 0.330000 to 0.340000
-writing to ScenarioList.csv
-Scenario List written to ScenarioList.csv
-solve begins datetime = 2015-09-17 13:47:09.958970
- - lambda = 0.000000
-SolStatus=ok
-solve ends datetime = 2015-09-17 13:47:13.354498
- - status = ok
- - zL = 108879.328
-Initial optimal obj = 108879.328 for bL = 0.0
-solve begins datetime = 2015-09-17 13:47:13.354656
- - lambda = 0.0
-SolStatus=ok
-solve ends datetime = 2015-09-17 13:47:15.953221
- - status = ok
- - zU = 129654.16
-We have bU = 1.0 ...about to free all delta for 3 scenarios
- all delta freed; elapsed time = 7.753151
-Initial relative Lagrangian gap = 0.160233 maxIntervals = 100
-entering while loop datetime = 2015-09-17 13:47:15.953480
-
-
-Top of while with 1 intervals elapsed time = 7.753226
-2 PR points:
- lambda beta-probability min cost
- 0.0 0.0 108,879.0
- None 1.0 129,654.0
-==================================================================
-exited for loop with PRpoint = 1 ...lambdaval = 20774.832
-2 PR points:
- lambda beta-probability min cost
- 0.0 0.0 108,879.0
- None 1.0 129,654.0
-==================================================================
-Searching for b in [0.0, 1.0] with lambdaMult = 20774.832000
-solve begins datetime = 2015-09-17 13:47:15.953738
- - lambdaMult = 20774.832000
-SolStatus=ok
-solve ends datetime = 2015-09-17 13:47:19.606258
- - Lagrangian = 108879.328000
- - b = 0.0
- - z = 108879.328
-
-
- testing b
- testing z
-No anomalies...testing if b = bL or bU
-oldLagrangian = 108879.328
-:= Lagrangian = 108879.328
- not an endpoint lbz = [20774.83200000001, 1.0, 129654.16]
-Lagangian solution is new PR point on line segment of (0.0, 1.0)
- splitting (bL,bU) into (bL,b) and (b,bU), both fathomed
- alternativeOpt True newPRpoint = False
-bottom of while loop
-2 PR points:
- lambda beta-probability min cost
- 0.0 0.0 108,879.0
- 20774.832 1.0 129,654.0
-==================================================================
-Top of while with 1 intervals elapsed time = 11.406283
-2 PR points:
- lambda beta-probability min cost
- 0.0 0.0 108,879.0
- 20774.832 1.0 129,654.0
-==================================================================
-exited for loop with PRpoint = 1 ...lambdaval = None
-
-end while loop...setting multipliers
-2 PR points:
- lambda beta-probability min cost
- 0.0 0.0 108,879.0
- 20774.832 1.0 129,654.0
-==================================================================
-
-Lagrange multiplier search endsdatetime = 2015-09-17 13:47:19.606728
-
-writing PR points to PRoptimal.csv
-
-writing optimal selections for each PR point to PRoptimal.csv
-
-
-Returning status:
- starting at datetime = 2015-09-17 13:47:09.637924
-Scenario List written to ScenarioList.csv
-Lagrange multiplier search endsdatetime = 2015-09-17 13:47:19.606728
-=======================
-
-===========================================
-
-returned from LagrangeParametric
-status = starting at datetime = 2015-09-17 13:47:09.637924
-Scenario List written to ScenarioList.csv
-Lagrange multiplier search endsdatetime = 2015-09-17 13:47:19.606728
-2 PR points:
- lambda beta-probability min cost
- 0.0 0.0 108,879.0
- 20774.832 1.0 129,654.0
-==================================================================
diff --git a/pyomo/pysp/tests/unit/baselines/networkflow1ef10_advanced_linearized_cplex_with_phpyro.baseline-a b/pyomo/pysp/tests/unit/baselines/networkflow1ef10_advanced_linearized_cplex_with_phpyro.baseline-a
deleted file mode 100644
index f629fc9f45d..00000000000
--- a/pyomo/pysp/tests/unit/baselines/networkflow1ef10_advanced_linearized_cplex_with_phpyro.baseline-a
+++ /dev/null
@@ -1,476 +0,0 @@
-Importing module=/Users/ghackebeil/Projects/Pyomo/pyomo/examples/pysp/networkflow/config/aggregategetter.py
-Module successfully loaded
-Importing module=/Users/ghackebeil/Projects/Pyomo/pyomo/examples/pysp/networkflow/config/rhosettermixed.py
-Module successfully loaded
-Importing module=/Users/ghackebeil/Projects/Pyomo/pyomo/examples/pysp/networkflow/config/xboundsetter.py
-Module successfully loaded
-Client assigned dispatcher with URI=PYRO://127.0.0.1:36525/86fdc201264e22e2f40c023d2949ad36b1
-Initializing PH
-
-Transmitting user aggregate callback invocations to phsolverservers
-Broadcasting final aggregate data to phsolverservers
-Transmitting user rho callback invocations to phsolverservers
-Transmitting user bound callback invocations to phsolverservers
-WW PH Extension: Loading user-specified configuration from file=/home/gahacke/Project/Pyomo/jenkins/src/pyomo/examples/pysp/networkflow/config/wwph-aggressivefixing.cfg
-WW PH Extension: Loading variable suffixes from file=/home/gahacke/Project/Pyomo/jenkins/src/pyomo/examples/pysp/networkflow/config/wwph.suffixes
-Starting PH
-
-Initiating PH iteration=0
-Number of discrete variables fixed=0 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 114953.9940 Max-Min=32195.68
-Converger= Term diff value is 206.2356 - threshold reached=False
-Cumulative run-time=10.94 seconds
-
-Initiating PH iteration=1
-WW PH Extension: Setting mipgap to 0.1000000, as specified in the configuration file
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 122007.4722 Max-Min=27458.15
-Converger= Term diff value is 166.5949 - threshold reached=False
-Cumulative run-time=15.80 seconds
-
-Initiating PH iteration=2
-WW PH Extension: Setting mipgap to 0.0807972, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=12 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 119532.8887 Max-Min=22958.46
-Converger= Term diff value is 98.4805 - threshold reached=False
-Cumulative run-time=21.54 seconds
-
-Initiating PH iteration=3
-WW PH Extension: Setting mipgap to 0.0478012, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=16 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 118008.6233 Max-Min=20619.70
-Converger= Term diff value is 77.5545 - threshold reached=False
-Cumulative run-time=26.47 seconds
-
-Initiating PH iteration=4
-WW PH Extension: Setting mipgap to 0.0376642, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=20 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 117847.4982 Max-Min=21260.56
-Converger= Term diff value is 55.0777 - threshold reached=False
-Cumulative run-time=30.64 seconds
-
-Initiating PH iteration=5
-WW PH Extension: Setting mipgap to 0.0267759, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=24 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 118979.8207 Max-Min=18876.77
-Converger= Term diff value is 43.8660 - threshold reached=False
-Cumulative run-time=35.11 seconds
-
-Initiating PH iteration=6
-WW PH Extension: Setting mipgap to 0.0213448, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=24 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 120159.8917 Max-Min=18470.78
-Converger= Term diff value is 37.9238 - threshold reached=False
-Cumulative run-time=38.90 seconds
-
-Initiating PH iteration=7
-WW PH Extension: Setting mipgap to 0.0184662, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=24 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 120835.1097 Max-Min=15618.05
-Converger= Term diff value is 39.6613 - threshold reached=False
-Cumulative run-time=41.90 seconds
-
-Initiating PH iteration=8
-WW PH Extension: Setting mipgap to 0.0193079, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=24 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 120984.3240 Max-Min=15462.60
-Converger= Term diff value is 27.4876 - threshold reached=False
-Cumulative run-time=45.18 seconds
-
-Initiating PH iteration=9
-WW PH Extension: Setting mipgap to 0.0134107, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=24 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 122467.2269 Max-Min=13109.72
-Converger= Term diff value is 36.8455 - threshold reached=False
-Cumulative run-time=49.03 seconds
-
-Initiating PH iteration=10
-WW PH Extension: Setting mipgap to 0.0179439, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=28 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 123261.0036 Max-Min=12195.81
-Converger= Term diff value is 28.1811 - threshold reached=False
-Cumulative run-time=52.13 seconds
-Halting PH - reached maximal iteration count=10
-
-Number of discrete variables fixed before final plugin calls=28 (total=30)
-Number of continuous variables fixed before final plugin calls=0 (total=30)
-PH complete
-
-Convergence history:
-Converger= Term diff
-Iteration Metric Value
- 0 206.2356
- 1 166.5949
- 2 98.4805
- 3 77.5545
- 4 55.0777
- 5 43.8660
- 6 37.9238
- 7 39.6613
- 8 27.4876
- 9 36.8455
- 10 28.1811
-
-
-Final number of discrete variables fixed=28 (total=30)
-Final number of continuous variables fixed=0 (total=30)
-
-Computing objective inner bound at xhat solution
-At least one sub-problem solve time was undefined - skipping timing statistics
-At least one sub-problem solve time was undefined - skipping timing statistics
- ** At least one sub-problem failed to solve! **
- Failed sub-problems:
- Scenario1
- Scenario5
- Scenario7
- Scenario9
-
-Failed to compute bound at xhat due to one or more solve failures. Restoring PH to solution at final iteration.
-Generating scenario tree solution from scenario averages
-
-Scenario tree variable values:
-
- Stage: FirstStage
- (Scenarios: Scenario1 Scenario2 Scenario3 Scenario4 Scenario5 Scenario6 Scenario7 Scenario8 Scenario9 Scenario10 )
- Variable: b0
- Index: [A,B] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [B,A] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [B,C] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [B,E] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [C,B] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [D,E] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [E,B] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [E,D] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [E,F] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [F,E] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [F,G] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [F,H] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [G,F] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [G,I] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [G,J] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [H,F] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [I,G] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [J,G] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- (Scenarios: Scenario1 Scenario2 Scenario3 Scenario4 Scenario5 Scenario6 Scenario7 Scenario8 Scenario9 Scenario10 )
- Variable: x
- Index: [A,B] Values: 34.7300 31.5404 31.5404 31.5404 32.0100 31.5404 30.2400 31.5404 32.1100 31.5404
-
- Index: [B,A] Values: 34.7300 31.5404 31.5404 31.5404 32.0100 31.5404 30.2400 31.5404 32.1100 31.5404
-
- Index: [B,C] Values: 36.5300 28.6800 30.3374 30.3374 31.3200 30.3374 30.3374 30.3374 30.7900 29.9400
-
- Index: [B,E] Values: 82.7400 73.0559 73.0559 73.0559 75.6700 73.0559 73.0559 73.0559 72.6300 73.0559
-
- Index: [C,B] Values: 36.5300 28.6800 30.3374 30.3374 31.3200 30.3374 30.3374 30.3374 30.7900 29.9400
-
- Index: [D,E] Values: 35.3500 30.6327 30.6327 30.6327 32.6900 30.6327 29.0200 30.6327 30.9700 28.7200
-
- Index: [E,B] Values: 82.7400 73.0559 73.0559 73.0559 75.6700 73.0559 73.0559 73.0559 72.6300 73.0559
-
- Index: [E,D] Values: 35.3500 30.6327 30.6327 30.6327 32.6900 30.6327 29.0200 30.6327 30.9700 28.7200
-
- Index: [E,F] Values: 97.0800 91.9061 91.9061 91.9061 90.3500 102.2778 102.2778 102.2778 91.9061 91.9061
-
- Index: [F,E] Values: 97.0800 91.9061 91.9061 91.9061 90.3500 102.2778 102.2778 102.2778 91.9061 91.9061
-
- Index: [F,G] Values: 80.1400 75.8089 75.8089 75.8089 76.2500 75.8089 75.8089 75.8089 72.8500 75.8089
-
- Index: [F,H] Values: 34.5200 28.7700 28.4800 29.7864 31.9400 29.7864 28.9200 27.4400 31.4900 28.9600
-
- Index: [G,F] Values: 80.1400 75.8089 75.8089 75.8089 76.2500 75.8089 75.8089 75.8089 72.8500 75.8089
-
- Index: [G,I] Values: 32.9000 28.4000 28.7500 30.2497 33.0200 30.2497 29.1800 30.2497 30.8400 29.2000
-
- Index: [G,J] Values: 35.4800 31.6510 31.6510 31.6510 32.6900 31.6510 31.6510 31.6510 30.7700 29.5800
-
- Index: [H,F] Values: 34.5200 28.7700 28.4800 29.7864 31.9400 29.7864 28.9200 27.4400 31.4900 28.9600
-
- Index: [I,G] Values: 32.9000 28.4000 28.7500 30.2497 33.0200 30.2497 29.1800 30.2497 30.8400 29.2000
-
- Index: [J,G] Values: 35.4800 31.6510 31.6510 31.6510 32.6900 31.6510 31.6510 31.6510 30.7700 29.5800
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: Scenario1 Scenario2 Scenario3 Scenario4 Scenario5 Scenario6 Scenario7 Scenario8 Scenario9 Scenario10 )
- Values: 132428.1600 120653.8234 121050.2116 121753.5629 124478.4400 124035.3457 122904.3282 123434.6771 121639.1375 120232.3490 Max-Min: 12195.8110 Avg: 123261.0036
-Scenario tree costs:
-Scenario Tree Costs
-----------------------------------------------------
-Tree Nodes:
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- Scenario10Node
- Scenario1Node
- Scenario2Node
- Scenario3Node
- Scenario4Node
- Scenario5Node
- Scenario6Node
- Scenario7Node
- Scenario8Node
- Scenario9Node
- Scenarios:
- Scenario1
- Scenario10
- Scenario2
- Scenario3
- Scenario4
- Scenario5
- Scenario6
- Scenario7
- Scenario8
- Scenario9
- Expected cost of (sub)tree rooted at node=153513.1600
-
- Name=Scenario10Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario10
- Expected cost of (sub)tree rooted at node=20270.0000
-
- Name=Scenario1Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario1
- Expected cost of (sub)tree rooted at node=17830.0000
-
- Name=Scenario2Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario2
- Expected cost of (sub)tree rooted at node=20140.0000
-
- Name=Scenario3Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario3
- Expected cost of (sub)tree rooted at node=21290.0000
-
- Name=Scenario4Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario4
- Expected cost of (sub)tree rooted at node=23080.0000
-
- Name=Scenario5Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario5
- Expected cost of (sub)tree rooted at node=22870.0000
-
- Name=Scenario6Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario6
- Expected cost of (sub)tree rooted at node=22470.0000
-
- Name=Scenario7Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario7
- Expected cost of (sub)tree rooted at node=21330.0000
-
- Name=Scenario8Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario8
- Expected cost of (sub)tree rooted at node=22730.0000
-
- Name=Scenario9Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario9
- Expected cost of (sub)tree rooted at node=18840.0000
-
-----------------------------------------------------
-Scenarios:
-
- Name=Scenario1
- Probability=0.1000
- Leaf Node=Scenario1Node
- Tree node sequence:
- RootNode
- Scenario1Node
- Stage= FirstStage Cost=132428.1600
- Stage= SecondStage Cost=17830.0000
- Total scenario cost=150258.1600
-
- Name=Scenario10
- Probability=0.1000
- Leaf Node=Scenario10Node
- Tree node sequence:
- RootNode
- Scenario10Node
- Stage= FirstStage Cost=120232.3490
- Stage= SecondStage Cost=20270.0000
- Total scenario cost=140502.3490
-
- Name=Scenario2
- Probability=0.1000
- Leaf Node=Scenario2Node
- Tree node sequence:
- RootNode
- Scenario2Node
- Stage= FirstStage Cost=120653.8234
- Stage= SecondStage Cost=20140.0000
- Total scenario cost=140793.8234
-
- Name=Scenario3
- Probability=0.1000
- Leaf Node=Scenario3Node
- Tree node sequence:
- RootNode
- Scenario3Node
- Stage= FirstStage Cost=121050.2116
- Stage= SecondStage Cost=21290.0000
- Total scenario cost=142340.2116
-
- Name=Scenario4
- Probability=0.1000
- Leaf Node=Scenario4Node
- Tree node sequence:
- RootNode
- Scenario4Node
- Stage= FirstStage Cost=121753.5629
- Stage= SecondStage Cost=23080.0000
- Total scenario cost=144833.5629
-
- Name=Scenario5
- Probability=0.1000
- Leaf Node=Scenario5Node
- Tree node sequence:
- RootNode
- Scenario5Node
- Stage= FirstStage Cost=124478.4400
- Stage= SecondStage Cost=22870.0000
- Total scenario cost=147348.4400
-
- Name=Scenario6
- Probability=0.1000
- Leaf Node=Scenario6Node
- Tree node sequence:
- RootNode
- Scenario6Node
- Stage= FirstStage Cost=124035.3457
- Stage= SecondStage Cost=22470.0000
- Total scenario cost=146505.3457
-
- Name=Scenario7
- Probability=0.1000
- Leaf Node=Scenario7Node
- Tree node sequence:
- RootNode
- Scenario7Node
- Stage= FirstStage Cost=122904.3282
- Stage= SecondStage Cost=21330.0000
- Total scenario cost=144234.3282
-
- Name=Scenario8
- Probability=0.1000
- Leaf Node=Scenario8Node
- Tree node sequence:
- RootNode
- Scenario8Node
- Stage= FirstStage Cost=123434.6771
- Stage= SecondStage Cost=22730.0000
- Total scenario cost=146164.6771
-
- Name=Scenario9
- Probability=0.1000
- Leaf Node=Scenario9Node
- Tree node sequence:
- RootNode
- Scenario9Node
- Stage= FirstStage Cost=121639.1375
- Stage= SecondStage Cost=18840.0000
- Total scenario cost=140479.1375
-
-----------------------------------------------------
-
-
-Total PH execution time=56.12 seconds
-
-
-Total execution time=59.32 seconds
diff --git a/pyomo/pysp/tests/unit/baselines/networkflow1ef10_advanced_linearized_cplex_with_phpyro.baseline-b b/pyomo/pysp/tests/unit/baselines/networkflow1ef10_advanced_linearized_cplex_with_phpyro.baseline-b
deleted file mode 100755
index ff0384b036e..00000000000
--- a/pyomo/pysp/tests/unit/baselines/networkflow1ef10_advanced_linearized_cplex_with_phpyro.baseline-b
+++ /dev/null
@@ -1,475 +0,0 @@
-Importing module=/Users/ghackebeil/Projects/Pyomo/pyomo/examples/pysp/networkflow/config/aggregategetter.py
-Module successfully loaded
-Importing module=/Users/ghackebeil/Projects/Pyomo/pyomo/examples/pysp/networkflow/config/rhosettermixed.py
-Module successfully loaded
-Importing module=/Users/ghackebeil/Projects/Pyomo/pyomo/examples/pysp/networkflow/config/xboundsetter.py
-Module successfully loaded
-Client assigned dispatcher with URI=PYRO::PyUtilibServer.dispatcher.13695837-ca8f-43e1-9323-756f99396929@localhost:44687
-Initializing PH
-
-Transmitting user aggregate callback invocations to phsolverservers
-Broadcasting final aggregate data to phsolverservers
-Transmitting user rho callback invocations to phsolverservers
-Transmitting user bound callback invocations to phsolverservers
-WW PH Extension: Loading user-specified configuration from file=/home/hudson/slave/workspace/Pyomo_trunk_python3.4_snotra_parallel/src/pyomo/examples/pysp/networkflow/config/wwph-aggressivefixing.cfg
-WW PH Extension: Loading variable suffixes from file=/home/hudson/slave/workspace/Pyomo_trunk_python3.4_snotra_parallel/src/pyomo/examples/pysp/networkflow/config/wwph.suffixes
-Starting PH
-
-Initiating PH iteration=0
-Number of discrete variables fixed=0 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 114953.9940 Max-Min=32195.68
-Converger= Term diff value is 206.2356 - threshold reached=False
-Cumulative run-time=5.07 seconds
-
-Initiating PH iteration=1
-WW PH Extension: Setting mipgap to 0.1000000, as specified in the configuration file
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 120484.9125 Max-Min=30754.56
-Converger= Term diff value is 144.7361 - threshold reached=False
-Cumulative run-time=6.34 seconds
-
-Initiating PH iteration=2
-WW PH Extension: Setting mipgap to 0.0702084, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=12 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 117447.6168 Max-Min=22968.30
-Converger= Term diff value is 94.9754 - threshold reached=False
-Cumulative run-time=7.80 seconds
-
-Initiating PH iteration=3
-WW PH Extension: Setting mipgap to 0.0461032, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=16 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 117925.4323 Max-Min=21153.24
-Converger= Term diff value is 73.9361 - threshold reached=False
-Cumulative run-time=9.04 seconds
-
-Initiating PH iteration=4
-WW PH Extension: Setting mipgap to 0.0359114, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=18 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 117955.1658 Max-Min=20047.93
-Converger= Term diff value is 50.1466 - threshold reached=False
-Cumulative run-time=10.35 seconds
-
-Initiating PH iteration=5
-WW PH Extension: Setting mipgap to 0.0243872, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=24 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 119940.8937 Max-Min=17401.73
-Converger= Term diff value is 57.4997 - threshold reached=False
-Cumulative run-time=11.48 seconds
-
-Initiating PH iteration=6
-WW PH Extension: Setting mipgap to 0.0279492, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=24 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 119837.0373 Max-Min=16821.50
-Converger= Term diff value is 39.7346 - threshold reached=False
-Cumulative run-time=12.67 seconds
-
-Initiating PH iteration=7
-WW PH Extension: Setting mipgap to 0.0193434, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=24 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 120394.0116 Max-Min=15323.57
-Converger= Term diff value is 33.5322 - threshold reached=False
-Cumulative run-time=13.91 seconds
-
-Initiating PH iteration=8
-WW PH Extension: Setting mipgap to 0.0163388, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=24 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 121614.0727 Max-Min=14151.97
-Converger= Term diff value is 29.8778 - threshold reached=False
-Cumulative run-time=15.04 seconds
-
-Initiating PH iteration=9
-WW PH Extension: Setting mipgap to 0.0145686, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=30 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 122707.8618 Max-Min=13164.72
-Converger= Term diff value is 27.5433 - threshold reached=False
-Cumulative run-time=15.88 seconds
-
-Initiating PH iteration=10
-WW PH Extension: Setting mipgap to 0.0134377, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=30 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 123796.0946 Max-Min=11472.07
-Converger= Term diff value is 23.7956 - threshold reached=False
-Cumulative run-time=16.65 seconds
-Halting PH - reached maximal iteration count=10
-
-Number of discrete variables fixed before final plugin calls=30 (total=30)
-Number of continuous variables fixed before final plugin calls=0 (total=30)
-PH complete
-
-Convergence history:
-Converger= Term diff
-Iteration Metric Value
- 0 206.2356
- 1 144.7361
- 2 94.9754
- 3 73.9361
- 4 50.1466
- 5 57.4997
- 6 39.7346
- 7 33.5322
- 8 29.8778
- 9 27.5433
- 10 23.7956
-
-
-Final number of discrete variables fixed=30 (total=30)
-Final number of continuous variables fixed=0 (total=30)
-
-Computing objective inner bound at xhat solution
-At least one sub-problem solve time was undefined - skipping timing statistics
-At least one sub-problem solve time was undefined - skipping timing statistics
- ** At least one sub-problem failed to solve! **
- Failed sub-problems:
- Scenario1
- Scenario5
- Scenario9
-
-Failed to compute bound at xhat due to one or more solve failures. Restoring PH to solution at final iteration.
-Generating scenario tree solution from scenario averages
-
-Scenario tree variable values:
-
- Stage: FirstStage
- (Scenarios: Scenario1 Scenario2 Scenario3 Scenario4 Scenario5 Scenario6 Scenario7 Scenario8 Scenario9 Scenario10 )
- Variable: b0
- Index: [A,B] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [B,A] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [B,C] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [B,E] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [C,B] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [D,E] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [E,B] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [E,D] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [E,F] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [F,E] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [F,G] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [F,H] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [G,F] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [G,I] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [G,J] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [H,F] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [I,G] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [J,G] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- (Scenarios: Scenario1 Scenario2 Scenario3 Scenario4 Scenario5 Scenario6 Scenario7 Scenario8 Scenario9 Scenario10 )
- Variable: x
- Index: [A,B] Values: 34.7300 31.4926 31.4926 31.4926 32.0100 31.4926 30.2400 31.4926 32.1100 31.4926
-
- Index: [B,A] Values: 34.7300 31.4926 31.4926 31.4926 32.0100 31.4926 30.2400 31.4926 32.1100 31.4926
-
- Index: [B,C] Values: 36.5300 28.6800 28.4100 30.2002 31.3200 30.2002 30.2002 30.2002 30.7900 29.9400
-
- Index: [B,E] Values: 82.7400 74.6074 74.6074 79.8890 75.6700 79.8890 74.6074 74.6074 72.6300 74.6074
-
- Index: [C,B] Values: 36.5300 28.6800 28.4100 30.2002 31.3200 30.2002 30.2002 30.2002 30.7900 29.9400
-
- Index: [D,E] Values: 35.3500 30.3241 28.0900 30.3241 32.6900 30.3241 30.3241 30.3241 30.9700 30.3241
-
- Index: [E,B] Values: 82.7400 74.6074 74.6074 79.8890 75.6700 79.8890 74.6074 74.6074 72.6300 74.6074
-
- Index: [E,D] Values: 35.3500 30.3241 28.0900 30.3241 32.6900 30.3241 30.3241 30.3241 30.9700 30.3241
-
- Index: [E,F] Values: 97.0800 94.2310 94.2310 94.2310 90.3500 94.2310 94.2310 94.2310 94.2310 97.0597
-
- Index: [F,E] Values: 97.0800 94.2310 94.2310 94.2310 90.3500 94.2310 94.2310 94.2310 94.2310 97.0597
-
- Index: [F,G] Values: 80.1400 75.7192 75.7192 80.8618 76.2500 75.7192 75.7192 75.7192 72.8500 75.7192
-
- Index: [F,H] Values: 34.5200 28.7700 28.4800 30.0274 31.9400 30.0274 28.9200 30.0274 31.4900 28.9600
-
- Index: [G,F] Values: 80.1400 75.7192 75.7192 80.8618 76.2500 75.7192 75.7192 75.7192 72.8500 75.7192
-
- Index: [G,I] Values: 32.9000 30.5745 28.7500 30.5745 33.0200 30.5745 29.1800 30.5745 30.8400 29.2000
-
- Index: [G,J] Values: 35.4800 31.7600 31.7600 31.7600 32.6900 31.7600 31.7600 31.7600 30.7700 29.5800
-
- Index: [H,F] Values: 34.5200 28.7700 28.4800 30.0274 31.9400 30.0274 28.9200 30.0274 31.4900 28.9600
-
- Index: [I,G] Values: 32.9000 30.5745 28.7500 30.5745 33.0200 30.5745 29.1800 30.5745 30.8400 29.2000
-
- Index: [J,G] Values: 35.4800 31.7600 31.7600 31.7600 32.6900 31.7600 31.7600 31.7600 30.7700 29.5800
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: Scenario1 Scenario2 Scenario3 Scenario4 Scenario5 Scenario6 Scenario7 Scenario8 Scenario9 Scenario10 )
- Values: 132428.1600 122033.2852 120956.0920 125233.0139 124478.4400 124081.0705 121800.7569 122707.8618 122150.6304 122091.6354 Max-Min: 11472.0680 Avg: 123796.0946
-Scenario tree costs:
-Scenario Tree Costs
-----------------------------------------------------
-Tree Nodes:
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- Scenario10Node
- Scenario1Node
- Scenario2Node
- Scenario3Node
- Scenario4Node
- Scenario5Node
- Scenario6Node
- Scenario7Node
- Scenario8Node
- Scenario9Node
- Scenarios:
- Scenario1
- Scenario10
- Scenario2
- Scenario3
- Scenario4
- Scenario5
- Scenario6
- Scenario7
- Scenario8
- Scenario9
- Expected cost of (sub)tree rooted at node=153513.1600
-
- Name=Scenario10Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario10
- Expected cost of (sub)tree rooted at node=20270.0000
-
- Name=Scenario1Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario1
- Expected cost of (sub)tree rooted at node=17830.0000
-
- Name=Scenario2Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario2
- Expected cost of (sub)tree rooted at node=20140.0000
-
- Name=Scenario3Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario3
- Expected cost of (sub)tree rooted at node=21290.0000
-
- Name=Scenario4Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario4
- Expected cost of (sub)tree rooted at node=23080.0000
-
- Name=Scenario5Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario5
- Expected cost of (sub)tree rooted at node=22870.0000
-
- Name=Scenario6Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario6
- Expected cost of (sub)tree rooted at node=22470.0000
-
- Name=Scenario7Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario7
- Expected cost of (sub)tree rooted at node=21330.0000
-
- Name=Scenario8Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario8
- Expected cost of (sub)tree rooted at node=22730.0000
-
- Name=Scenario9Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario9
- Expected cost of (sub)tree rooted at node=18840.0000
-
-----------------------------------------------------
-Scenarios:
-
- Name=Scenario1
- Probability=0.1000
- Leaf Node=Scenario1Node
- Tree node sequence:
- RootNode
- Scenario1Node
- Stage= FirstStage Cost=132428.1600
- Stage= SecondStage Cost=17830.0000
- Total scenario cost=150258.1600
-
- Name=Scenario10
- Probability=0.1000
- Leaf Node=Scenario10Node
- Tree node sequence:
- RootNode
- Scenario10Node
- Stage= FirstStage Cost=122091.6354
- Stage= SecondStage Cost=20270.0000
- Total scenario cost=142361.6354
-
- Name=Scenario2
- Probability=0.1000
- Leaf Node=Scenario2Node
- Tree node sequence:
- RootNode
- Scenario2Node
- Stage= FirstStage Cost=122033.2852
- Stage= SecondStage Cost=20140.0000
- Total scenario cost=142173.2852
-
- Name=Scenario3
- Probability=0.1000
- Leaf Node=Scenario3Node
- Tree node sequence:
- RootNode
- Scenario3Node
- Stage= FirstStage Cost=120956.0920
- Stage= SecondStage Cost=21290.0000
- Total scenario cost=142246.0920
-
- Name=Scenario4
- Probability=0.1000
- Leaf Node=Scenario4Node
- Tree node sequence:
- RootNode
- Scenario4Node
- Stage= FirstStage Cost=125233.0139
- Stage= SecondStage Cost=23080.0000
- Total scenario cost=148313.0139
-
- Name=Scenario5
- Probability=0.1000
- Leaf Node=Scenario5Node
- Tree node sequence:
- RootNode
- Scenario5Node
- Stage= FirstStage Cost=124478.4400
- Stage= SecondStage Cost=22870.0000
- Total scenario cost=147348.4400
-
- Name=Scenario6
- Probability=0.1000
- Leaf Node=Scenario6Node
- Tree node sequence:
- RootNode
- Scenario6Node
- Stage= FirstStage Cost=124081.0705
- Stage= SecondStage Cost=22470.0000
- Total scenario cost=146551.0705
-
- Name=Scenario7
- Probability=0.1000
- Leaf Node=Scenario7Node
- Tree node sequence:
- RootNode
- Scenario7Node
- Stage= FirstStage Cost=121800.7569
- Stage= SecondStage Cost=21330.0000
- Total scenario cost=143130.7569
-
- Name=Scenario8
- Probability=0.1000
- Leaf Node=Scenario8Node
- Tree node sequence:
- RootNode
- Scenario8Node
- Stage= FirstStage Cost=122707.8618
- Stage= SecondStage Cost=22730.0000
- Total scenario cost=145437.8618
-
- Name=Scenario9
- Probability=0.1000
- Leaf Node=Scenario9Node
- Tree node sequence:
- RootNode
- Scenario9Node
- Stage= FirstStage Cost=122150.6304
- Stage= SecondStage Cost=18840.0000
- Total scenario cost=140990.6304
-
-----------------------------------------------------
-
-
-Total PH execution time=18.22 seconds
-
-
-Total execution time=25.74 seconds
diff --git a/pyomo/pysp/tests/unit/baselines/networkflow1ef10_advanced_linearized_cplex_with_phpyro.baseline-c b/pyomo/pysp/tests/unit/baselines/networkflow1ef10_advanced_linearized_cplex_with_phpyro.baseline-c
deleted file mode 100755
index 7dbb562adf6..00000000000
--- a/pyomo/pysp/tests/unit/baselines/networkflow1ef10_advanced_linearized_cplex_with_phpyro.baseline-c
+++ /dev/null
@@ -1,483 +0,0 @@
-Importing module=/Users/ghackebeil/Projects/Pyomo/pyomo/examples/pysp/networkflow/config/aggregategetter.py
-Module successfully loaded
-Importing module=/Users/ghackebeil/Projects/Pyomo/pyomo/examples/pysp/networkflow/config/rhosettermixed.py
-Module successfully loaded
-Importing module=/Users/ghackebeil/Projects/Pyomo/pyomo/examples/pysp/networkflow/config/xboundsetter.py
-Module successfully loaded
-Client assigned dispatcher with URI=PYRO::PyUtilibServer.dispatcher.cf9047d9-2b8e-486c-92cb-d72c474bec4b@localhost:44210
-Initializing PH
-
-Transmitting user aggregate callback invocations to phsolverservers
-Broadcasting final aggregate data to phsolverservers
-Transmitting user rho callback invocations to phsolverservers
-Transmitting user bound callback invocations to phsolverservers
-WW PH Extension: Loading user-specified configuration from file=/home/hudson/slave/workspace/Pyomo_trunk_python3.4_snotra_expensive/src/pyomo/examples/pysp/networkflow/config/wwph-aggressivefixing.cfg
-WW PH Extension: Loading variable suffixes from file=/home/hudson/slave/workspace/Pyomo_trunk_python3.4_snotra_expensive/src/pyomo/examples/pysp/networkflow/config/wwph.suffixes
-Starting PH
-
-Initiating PH iteration=0
-Number of discrete variables fixed=0 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 114953.9940 Max-Min=32195.68
-Converger= Term diff value is 206.2356 - threshold reached=False
-Cumulative run-time=5.27 seconds
-
-Initiating PH iteration=1
-WW PH Extension: Setting mipgap to 0.1000000, as specified in the configuration file
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 119784.9938 Max-Min=27033.10
-Converger= Term diff value is 153.2656 - threshold reached=False
-Cumulative run-time=6.82 seconds
-
-Initiating PH iteration=2
-WW PH Extension: Setting mipgap to 0.0743402, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=12 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 118228.0400 Max-Min=22692.71
-Converger= Term diff value is 128.9728 - threshold reached=False
-Cumulative run-time=8.26 seconds
-
-Initiating PH iteration=3
-WW PH Extension: Setting mipgap to 0.0625723, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=14 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 119334.5520 Max-Min=18293.71
-Converger= Term diff value is 95.5444 - threshold reached=False
-Cumulative run-time=9.77 seconds
-
-Initiating PH iteration=4
-WW PH Extension: Setting mipgap to 0.0463788, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=18 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 118854.8836 Max-Min=18968.39
-Converger= Term diff value is 97.6539 - threshold reached=False
-Cumulative run-time=10.95 seconds
-
-Initiating PH iteration=5
-WW PH Extension: Setting mipgap to 0.0474007, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=20 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 119000.5720 Max-Min=17348.92
-Converger= Term diff value is 68.6052 - threshold reached=False
-Cumulative run-time=12.10 seconds
-
-Initiating PH iteration=6
-WW PH Extension: Setting mipgap to 0.0333290, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=20 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 120150.6146 Max-Min=16018.44
-Converger= Term diff value is 54.4193 - threshold reached=False
-Cumulative run-time=13.33 seconds
-
-Initiating PH iteration=7
-WW PH Extension: Setting mipgap to 0.0264570, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=20 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 120331.1747 Max-Min=15288.50
-Converger= Term diff value is 38.8581 - threshold reached=False
-Cumulative run-time=14.52 seconds
-
-Initiating PH iteration=8
-WW PH Extension: Setting mipgap to 0.0189188, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=26 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 121757.5668 Max-Min=15541.75
-Converger= Term diff value is 45.7973 - threshold reached=False
-Cumulative run-time=15.81 seconds
-
-Initiating PH iteration=9
-WW PH Extension: Setting mipgap to 0.0222803, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=26 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 121699.6541 Max-Min=14850.14
-Converger= Term diff value is 28.0430 - threshold reached=False
-Cumulative run-time=17.06 seconds
-
-Initiating PH iteration=10
-WW PH Extension: Setting mipgap to 0.0136797, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=26 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 122161.9941 Max-Min=12901.22
-Converger= Term diff value is 31.5249 - threshold reached=False
-Cumulative run-time=18.39 seconds
-Halting PH - reached maximal iteration count=10
-
-Number of discrete variables fixed before final plugin calls=26 (total=30)
-Number of continuous variables fixed before final plugin calls=0 (total=30)
-PH complete
-
-Convergence history:
-Converger= Term diff
-Iteration Metric Value
- 0 206.2356
- 1 153.2656
- 2 128.9728
- 3 95.5444
- 4 97.6539
- 5 68.6052
- 6 54.4193
- 7 38.8581
- 8 45.7973
- 9 28.0430
- 10 31.5249
-
-
-Final number of discrete variables fixed=26 (total=30)
-Final number of continuous variables fixed=0 (total=30)
-
-Computing objective inner bound at xhat solution
-At least one sub-problem solve time was undefined - skipping timing statistics
-At least one sub-problem solve time was undefined - skipping timing statistics
- ** At least one sub-problem failed to solve! **
- Failed sub-problems:
- Scenario1
- Scenario5
- Scenario9
-
-Failed to compute bound at xhat due to one or more solve failures. Restoring PH to solution at final iteration.
-Generating scenario tree solution from scenario averages
-
-Scenario tree variable values:
-
- Stage: FirstStage
- (Scenarios: Scenario1 Scenario2 Scenario3 Scenario4 Scenario5 Scenario6 Scenario7 Scenario8 Scenario9 Scenario10 )
- Variable: b0
- Index: [A,B] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [B,A] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [B,C] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [B,E] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [C,B] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [C,D] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [D,C] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [D,E] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [E,B] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [E,D] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [E,F] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [F,E] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [F,G] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [F,H] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [G,F] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [G,I] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [G,J] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [H,F] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [I,G] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [J,G] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- (Scenarios: Scenario1 Scenario2 Scenario3 Scenario4 Scenario5 Scenario6 Scenario7 Scenario8 Scenario9 Scenario10 )
- Variable: x
- Index: [A,B] Values: 34.7300 31.5386 31.5386 31.5386 32.0100 31.5386 30.2400 31.5386 32.1100 31.5386
-
- Index: [B,A] Values: 34.7300 31.5386 31.5386 31.5386 32.0100 31.5386 30.2400 31.5386 32.1100 31.5386
-
- Index: [B,C] Values: 18.0829 16.0976 17.5520 10.9700 21.7276 15.4876 16.1276 17.5520 20.3376 16.9776
-
- Index: [B,E] Values: 64.1979 56.6748 56.6748 56.6748 56.6748 56.6748 56.6748 56.6748 57.8523 54.9223
-
- Index: [C,B] Values: 18.0829 16.0976 17.5520 10.9700 21.7276 15.4876 16.1276 17.5520 20.3376 16.9776
-
- Index: [C,D] Values: 18.5421 14.7777 14.7777 23.9200 18.9952 14.7777 14.7777 14.7777 14.7777 14.7777
-
- Index: [D,C] Values: 18.5421 14.7777 14.7777 23.9200 18.9952 14.7777 14.7777 14.7777 14.7777 14.7777
-
- Index: [D,E] Values: 45.2171 34.9824 34.9824 42.1500 34.9824 34.9824 34.9824 34.9824 34.9824 34.9824
-
- Index: [E,B] Values: 64.1979 56.6748 56.6748 56.6748 56.6748 56.6748 56.6748 56.6748 57.8523 54.9223
-
- Index: [E,D] Values: 45.2171 34.9824 34.9824 42.1500 34.9824 34.9824 34.9824 34.9824 34.9824 34.9824
-
- Index: [E,F] Values: 97.0800 94.2310 94.2310 94.2310 90.3500 94.2310 94.2310 94.2310 94.2310 97.0597
-
- Index: [F,E] Values: 97.0800 94.2310 94.2310 94.2310 90.3500 94.2310 94.2310 94.2310 94.2310 97.0597
-
- Index: [F,G] Values: 80.1400 73.5315 73.5315 73.5315 76.2500 73.5315 73.5315 73.5315 72.8500 68.7500
-
- Index: [F,H] Values: 34.5200 28.7700 28.4800 29.3079 31.9400 27.6300 28.9200 29.3079 31.4900 28.9600
-
- Index: [G,F] Values: 80.1400 73.5315 73.5315 73.5315 76.2500 73.5315 73.5315 73.5315 72.8500 68.7500
-
- Index: [G,I] Values: 32.9000 28.4000 28.7500 30.1553 33.0200 30.1553 29.1800 30.1553 30.8400 29.2000
-
- Index: [G,J] Values: 35.4800 31.6509 31.6509 31.6509 32.6900 31.6509 31.6509 31.6509 30.7700 29.5800
-
- Index: [H,F] Values: 34.5200 28.7700 28.4800 29.3079 31.9400 27.6300 28.9200 29.3079 31.4900 28.9600
-
- Index: [I,G] Values: 32.9000 28.4000 28.7500 30.1553 33.0200 30.1553 29.1800 30.1553 30.8400 29.2000
-
- Index: [J,G] Values: 35.4800 31.6509 31.6509 31.6509 32.6900 31.6509 31.6509 31.6509 30.7700 29.5800
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: Scenario1 Scenario2 Scenario3 Scenario4 Scenario5 Scenario6 Scenario7 Scenario8 Scenario9 Scenario10 )
- Values: 131891.6796 119983.7031 120332.9890 122988.3586 124313.5024 119982.1448 119930.0616 120890.6334 122316.4051 118990.4629 Max-Min: 12901.2167 Avg: 122161.9941
-Scenario tree costs:
-Scenario Tree Costs
-----------------------------------------------------
-Tree Nodes:
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- Scenario10Node
- Scenario1Node
- Scenario2Node
- Scenario3Node
- Scenario4Node
- Scenario5Node
- Scenario6Node
- Scenario7Node
- Scenario8Node
- Scenario9Node
- Scenarios:
- Scenario1
- Scenario10
- Scenario2
- Scenario3
- Scenario4
- Scenario5
- Scenario6
- Scenario7
- Scenario8
- Scenario9
- Expected cost of (sub)tree rooted at node=154984.6796
-
- Name=Scenario10Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario10
- Expected cost of (sub)tree rooted at node=23630.0000
-
- Name=Scenario1Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario1
- Expected cost of (sub)tree rooted at node=21190.0000
-
- Name=Scenario2Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario2
- Expected cost of (sub)tree rooted at node=22380.0000
-
- Name=Scenario3Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario3
- Expected cost of (sub)tree rooted at node=22410.0000
-
- Name=Scenario4Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario4
- Expected cost of (sub)tree rooted at node=23000.0000
-
- Name=Scenario5Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario5
- Expected cost of (sub)tree rooted at node=23990.0000
-
- Name=Scenario6Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario6
- Expected cost of (sub)tree rooted at node=25830.0000
-
- Name=Scenario7Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario7
- Expected cost of (sub)tree rooted at node=22450.0000
-
- Name=Scenario8Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario8
- Expected cost of (sub)tree rooted at node=23850.0000
-
- Name=Scenario9Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario9
- Expected cost of (sub)tree rooted at node=22200.0000
-
-----------------------------------------------------
-Scenarios:
-
- Name=Scenario1
- Probability=0.1000
- Leaf Node=Scenario1Node
- Tree node sequence:
- RootNode
- Scenario1Node
- Stage= FirstStage Cost=131891.6796
- Stage= SecondStage Cost=21190.0000
- Total scenario cost=153081.6796
-
- Name=Scenario10
- Probability=0.1000
- Leaf Node=Scenario10Node
- Tree node sequence:
- RootNode
- Scenario10Node
- Stage= FirstStage Cost=118990.4629
- Stage= SecondStage Cost=23630.0000
- Total scenario cost=142620.4629
-
- Name=Scenario2
- Probability=0.1000
- Leaf Node=Scenario2Node
- Tree node sequence:
- RootNode
- Scenario2Node
- Stage= FirstStage Cost=119983.7031
- Stage= SecondStage Cost=22380.0000
- Total scenario cost=142363.7031
-
- Name=Scenario3
- Probability=0.1000
- Leaf Node=Scenario3Node
- Tree node sequence:
- RootNode
- Scenario3Node
- Stage= FirstStage Cost=120332.9890
- Stage= SecondStage Cost=22410.0000
- Total scenario cost=142742.9890
-
- Name=Scenario4
- Probability=0.1000
- Leaf Node=Scenario4Node
- Tree node sequence:
- RootNode
- Scenario4Node
- Stage= FirstStage Cost=122988.3586
- Stage= SecondStage Cost=23000.0000
- Total scenario cost=145988.3586
-
- Name=Scenario5
- Probability=0.1000
- Leaf Node=Scenario5Node
- Tree node sequence:
- RootNode
- Scenario5Node
- Stage= FirstStage Cost=124313.5024
- Stage= SecondStage Cost=23990.0000
- Total scenario cost=148303.5024
-
- Name=Scenario6
- Probability=0.1000
- Leaf Node=Scenario6Node
- Tree node sequence:
- RootNode
- Scenario6Node
- Stage= FirstStage Cost=119982.1448
- Stage= SecondStage Cost=25830.0000
- Total scenario cost=145812.1448
-
- Name=Scenario7
- Probability=0.1000
- Leaf Node=Scenario7Node
- Tree node sequence:
- RootNode
- Scenario7Node
- Stage= FirstStage Cost=119930.0616
- Stage= SecondStage Cost=22450.0000
- Total scenario cost=142380.0616
-
- Name=Scenario8
- Probability=0.1000
- Leaf Node=Scenario8Node
- Tree node sequence:
- RootNode
- Scenario8Node
- Stage= FirstStage Cost=120890.6334
- Stage= SecondStage Cost=23850.0000
- Total scenario cost=144740.6334
-
- Name=Scenario9
- Probability=0.1000
- Leaf Node=Scenario9Node
- Tree node sequence:
- RootNode
- Scenario9Node
- Stage= FirstStage Cost=122316.4051
- Stage= SecondStage Cost=22200.0000
- Total scenario cost=144516.4051
-
-----------------------------------------------------
-
-
-Total PH execution time=20.21 seconds
-
-
-Total execution time=28.06 seconds
diff --git a/pyomo/pysp/tests/unit/baselines/networkflow1ef10_advanced_quadratic_cplex_with_phpyro.baseline b/pyomo/pysp/tests/unit/baselines/networkflow1ef10_advanced_quadratic_cplex_with_phpyro.baseline
deleted file mode 100644
index 09d3e15762b..00000000000
--- a/pyomo/pysp/tests/unit/baselines/networkflow1ef10_advanced_quadratic_cplex_with_phpyro.baseline
+++ /dev/null
@@ -1,419 +0,0 @@
-Importing module=/Users/ghackebeil/Projects/Pyomo/pyomo/examples/pysp/networkflow/config/rhosettermixed.py
-Module successfully loaded
-Client assigned dispatcher with URI=PYRO://127.0.0.1:36879/86fdc20177a622e2f4ca4fa58ad8689466
-Initializing PH
-
-Transmitting user rho callback invocations to phsolverservers
-WW PH Extension: Loading user-specified configuration from file=/home/gahacke/Project/Pyomo/jenkins/src/pyomo/examples/pysp/networkflow/config/wwph-mipgaponly.cfg
-Starting PH
-
-Initiating PH iteration=0
-Number of discrete variables fixed=0 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 114953.9940 Max-Min=32195.68
-Converger=Normalized term diff value is 0.6629 - threshold reached=False
-Cumulative run-time=16.93 seconds
-
-Initiating PH iteration=1
-WW PH Extension: Setting mipgap to 0.1000000, as specified in the configuration file
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 118679.2769 Max-Min=31520.77
-Converger=Normalized term diff value is 0.6960 - threshold reached=False
-Cumulative run-time=43.45 seconds
-
-Initiating PH iteration=2
-WW PH Extension: ***CAUTION - setting mipgap to thresholded maximal initial value=0.1000000; unthresholded value=0.1049869
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 118402.6085 Max-Min=26072.18
-Converger=Normalized term diff value is 0.6531 - threshold reached=False
-Cumulative run-time=77.56 seconds
-
-Initiating PH iteration=3
-WW PH Extension: Setting mipgap to 0.0985128, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 118199.7244 Max-Min=22305.18
-Converger=Normalized term diff value is 0.1421 - threshold reached=False
-Cumulative run-time=122.56 seconds
-
-Initiating PH iteration=4
-WW PH Extension: Setting mipgap to 0.0215003, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 120065.6274 Max-Min=16350.32
-Converger=Normalized term diff value is 0.2303 - threshold reached=False
-Cumulative run-time=209.11 seconds
-
-Initiating PH iteration=5
-WW PH Extension: Setting mipgap to 0.0347996, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 120087.1343 Max-Min=16963.66
-Converger=Normalized term diff value is 0.2208 - threshold reached=False
-Cumulative run-time=296.01 seconds
-Halting PH - reached maximal iteration count=5
-
-Number of discrete variables fixed before final plugin calls=0 (total=30)
-Number of continuous variables fixed before final plugin calls=0 (total=30)
-PH complete
-
-Convergence history:
-Converger=Normalized term diff
-Iteration Metric Value
- 0 0.6629
- 1 0.6960
- 2 0.6531
- 3 0.1421
- 4 0.2303
- 5 0.2208
-
-
-Final number of discrete variables fixed=0 (total=30)
-Final number of continuous variables fixed=0 (total=30)
-
-Computing objective inner bound at xhat solution
-
-Computed objective upper bound= 144439.4165
-
-X-hat variable values:
-
- Stage: FirstStage
- (Scenarios: Scenario1 Scenario2 Scenario3 Scenario4 Scenario5 Scenario6 Scenario7 Scenario8 Scenario9 Scenario10 )
- Variable: b0
- Index: [A,B] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [B,A] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [B,E] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [C,D] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [D,C] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [D,E] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [E,B] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [E,D] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [E,F] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [F,E] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [F,G] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [F,H] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [G,F] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [G,H] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [G,I] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [G,J] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [H,F] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [H,G] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [I,G] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [J,G] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- (Scenarios: Scenario1 Scenario2 Scenario3 Scenario4 Scenario5 Scenario6 Scenario7 Scenario8 Scenario9 Scenario10 )
- Variable: x
- Index: [A,B] Values: 28.9100 28.9100 28.9100 28.9100 28.9100 28.9100 28.9100 28.9100 28.9100 28.9100
-
- Index: [B,A] Values: 28.9100 28.9100 28.9100 28.9100 28.9100 28.9100 28.9100 28.9100 28.9100 28.9100
-
- Index: [B,E] Values: 53.2800 53.2800 53.2800 53.2800 53.2800 53.2800 53.2800 53.2800 53.2800 53.2800
-
- Index: [C,D] Values: 29.9400 29.9400 29.9400 29.9400 29.9400 29.9400 29.9400 29.9400 29.9400 29.9400
-
- Index: [D,C] Values: 29.9400 29.9400 29.9400 29.9400 29.9400 29.9400 29.9400 29.9400 29.9400 29.9400
-
- Index: [D,E] Values: 51.9600 51.9600 51.9600 51.9600 51.9600 51.9600 51.9600 51.9600 51.9600 51.9600
-
- Index: [E,B] Values: 53.2800 53.2800 53.2800 53.2800 53.2800 53.2800 53.2800 53.2800 53.2800 53.2800
-
- Index: [E,D] Values: 51.9600 51.9600 51.9600 51.9600 51.9600 51.9600 51.9600 51.9600 51.9600 51.9600
-
- Index: [E,F] Values: 92.1839 92.1839 92.1839 92.1839 92.1839 92.1839 92.1839 92.1839 92.1839 92.1839
-
- Index: [F,E] Values: 92.1839 92.1839 92.1839 92.1839 92.1839 92.1839 92.1839 92.1839 92.1839 92.1839
-
- Index: [F,G] Values: 66.2498 66.2498 66.2498 66.2498 66.2498 66.2498 66.2498 66.2498 66.2498 66.2498
-
- Index: [F,H] Values: 15.7177 15.7177 15.7177 15.7177 15.7177 15.7177 15.7177 15.7177 15.7177 15.7177
-
- Index: [G,F] Values: 66.2498 66.2498 66.2498 66.2498 66.2498 66.2498 66.2498 66.2498 66.2498 66.2498
-
- Index: [G,H] Values: 13.2423 13.2423 13.2423 13.2423 13.2423 13.2423 13.2423 13.2423 13.2423 13.2423
-
- Index: [G,I] Values: 29.2000 29.2000 29.2000 29.2000 29.2000 29.2000 29.2000 29.2000 29.2000 29.2000
-
- Index: [G,J] Values: 29.5800 29.5800 29.5800 29.5800 29.5800 29.5800 29.5800 29.5800 29.5800 29.5800
-
- Index: [H,F] Values: 15.7177 15.7177 15.7177 15.7177 15.7177 15.7177 15.7177 15.7177 15.7177 15.7177
-
- Index: [H,G] Values: 13.2423 13.2423 13.2423 13.2423 13.2423 13.2423 13.2423 13.2423 13.2423 13.2423
-
- Index: [I,G] Values: 29.2000 29.2000 29.2000 29.2000 29.2000 29.2000 29.2000 29.2000 29.2000 29.2000
-
- Index: [J,G] Values: 29.5800 29.5800 29.5800 29.5800 29.5800 29.5800 29.5800 29.5800 29.5800 29.5800
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: Scenario1 Scenario2 Scenario3 Scenario4 Scenario5 Scenario6 Scenario7 Scenario8 Scenario9 Scenario10 )
- Values: 132889.4277 119221.2511 122629.5685 121826.2285 125357.3337 119216.7711 119514.6911 119216.7711 122855.3513 119216.7711 Max-Min: 13672.6567 Avg: 122194.4165
-
-X-hat costs:
-
-Scenario Tree Costs
-----------------------------------------------------
-Tree Nodes:
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- Scenario10Node
- Scenario1Node
- Scenario2Node
- Scenario3Node
- Scenario4Node
- Scenario5Node
- Scenario6Node
- Scenario7Node
- Scenario8Node
- Scenario9Node
- Scenarios:
- Scenario1
- Scenario10
- Scenario2
- Scenario3
- Scenario4
- Scenario5
- Scenario6
- Scenario7
- Scenario8
- Scenario9
- Expected cost of (sub)tree rooted at node=155134.4277
-
- Name=Scenario10Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario10
- Expected cost of (sub)tree rooted at node=23630.0000
-
- Name=Scenario1Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario1
- Expected cost of (sub)tree rooted at node=21190.0000
-
- Name=Scenario2Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario2
- Expected cost of (sub)tree rooted at node=22380.0000
-
- Name=Scenario3Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario3
- Expected cost of (sub)tree rooted at node=20090.0000
-
- Name=Scenario4Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario4
- Expected cost of (sub)tree rooted at node=21480.0000
-
- Name=Scenario5Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario5
- Expected cost of (sub)tree rooted at node=23990.0000
-
- Name=Scenario6Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario6
- Expected cost of (sub)tree rooted at node=23510.0000
-
- Name=Scenario7Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario7
- Expected cost of (sub)tree rooted at node=21290.0000
-
- Name=Scenario8Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario8
- Expected cost of (sub)tree rooted at node=23850.0000
-
- Name=Scenario9Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario9
- Expected cost of (sub)tree rooted at node=21040.0000
-
-----------------------------------------------------
-Scenarios:
-
- Name=Scenario1
- Probability=0.1000
- Leaf Node=Scenario1Node
- Tree node sequence:
- RootNode
- Scenario1Node
- Stage= FirstStage Cost=132889.4277
- Stage= SecondStage Cost=21190.0000
- Total scenario cost=154079.4277
-
- Name=Scenario10
- Probability=0.1000
- Leaf Node=Scenario10Node
- Tree node sequence:
- RootNode
- Scenario10Node
- Stage= FirstStage Cost=119216.7711
- Stage= SecondStage Cost=23630.0000
- Total scenario cost=142846.7711
-
- Name=Scenario2
- Probability=0.1000
- Leaf Node=Scenario2Node
- Tree node sequence:
- RootNode
- Scenario2Node
- Stage= FirstStage Cost=119221.2511
- Stage= SecondStage Cost=22380.0000
- Total scenario cost=141601.2511
-
- Name=Scenario3
- Probability=0.1000
- Leaf Node=Scenario3Node
- Tree node sequence:
- RootNode
- Scenario3Node
- Stage= FirstStage Cost=122629.5685
- Stage= SecondStage Cost=20090.0000
- Total scenario cost=142719.5685
-
- Name=Scenario4
- Probability=0.1000
- Leaf Node=Scenario4Node
- Tree node sequence:
- RootNode
- Scenario4Node
- Stage= FirstStage Cost=121826.2285
- Stage= SecondStage Cost=21480.0000
- Total scenario cost=143306.2285
-
- Name=Scenario5
- Probability=0.1000
- Leaf Node=Scenario5Node
- Tree node sequence:
- RootNode
- Scenario5Node
- Stage= FirstStage Cost=125357.3337
- Stage= SecondStage Cost=23990.0000
- Total scenario cost=149347.3337
-
- Name=Scenario6
- Probability=0.1000
- Leaf Node=Scenario6Node
- Tree node sequence:
- RootNode
- Scenario6Node
- Stage= FirstStage Cost=119216.7711
- Stage= SecondStage Cost=23510.0000
- Total scenario cost=142726.7711
-
- Name=Scenario7
- Probability=0.1000
- Leaf Node=Scenario7Node
- Tree node sequence:
- RootNode
- Scenario7Node
- Stage= FirstStage Cost=119514.6911
- Stage= SecondStage Cost=21290.0000
- Total scenario cost=140804.6911
-
- Name=Scenario8
- Probability=0.1000
- Leaf Node=Scenario8Node
- Tree node sequence:
- RootNode
- Scenario8Node
- Stage= FirstStage Cost=119216.7711
- Stage= SecondStage Cost=23850.0000
- Total scenario cost=143066.7711
-
- Name=Scenario9
- Probability=0.1000
- Leaf Node=Scenario9Node
- Tree node sequence:
- RootNode
- Scenario9Node
- Stage= FirstStage Cost=122855.3513
- Stage= SecondStage Cost=21040.0000
- Total scenario cost=143895.3513
-
-----------------------------------------------------
-
-
-Total PH execution time=304.38 seconds
-
-
-Total execution time=309.02 seconds
diff --git a/pyomo/pysp/tests/unit/baselines/networkflow1ef10_advanced_quadratic_cplex_with_phpyro_darwin.baseline b/pyomo/pysp/tests/unit/baselines/networkflow1ef10_advanced_quadratic_cplex_with_phpyro_darwin.baseline
deleted file mode 100644
index 3d88a0fa3ad..00000000000
--- a/pyomo/pysp/tests/unit/baselines/networkflow1ef10_advanced_quadratic_cplex_with_phpyro_darwin.baseline
+++ /dev/null
@@ -1,419 +0,0 @@
-Importing module=/Users/ghackebeil/Projects/Pyomo/pyomo/examples/pysp/networkflow/config/rhosettermixed.py
-Module successfully loaded
-Client assigned dispatcher with URI=PYRO::PyUtilibServer.dispatcher.7c788ec5-81ac-4073-9191-30523cb7ca91@127.0.0.1:52733
-Initializing PH
-
-Transmitting user rho callback invocations to phsolverservers
-WW PH Extension: Loading user-specified configuration from file=/Users/ghackebeil/Projects/Pyomo/pyomo/examples/pysp/networkflow/config/wwph-mipgaponly.cfg
-Starting PH
-
-Initiating PH iteration=0
-Number of discrete variables fixed=0 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 114953.9940 Max-Min=32195.68
-Converger=Normalized term diff value is 0.6629 - threshold reached=False
-Cumulative run-time=8.67 seconds
-
-Initiating PH iteration=1
-WW PH Extension: Setting mipgap to 0.1000000, as specified in the configuration file
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 118679.2769 Max-Min=31520.77
-Converger=Normalized term diff value is 0.6960 - threshold reached=False
-Cumulative run-time=16.88 seconds
-
-Initiating PH iteration=2
-WW PH Extension: ***CAUTION - setting mipgap to thresholded maximal initial value=0.1000000; unthresholded value=0.1049869
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 118402.6085 Max-Min=26072.18
-Converger=Normalized term diff value is 0.6531 - threshold reached=False
-Cumulative run-time=25.89 seconds
-
-Initiating PH iteration=3
-WW PH Extension: Setting mipgap to 0.0985128, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 118199.7244 Max-Min=22305.18
-Converger=Normalized term diff value is 0.1421 - threshold reached=False
-Cumulative run-time=35.79 seconds
-
-Initiating PH iteration=4
-WW PH Extension: Setting mipgap to 0.0215003, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 120065.6274 Max-Min=16350.32
-Converger=Normalized term diff value is 0.2303 - threshold reached=False
-Cumulative run-time=54.75 seconds
-
-Initiating PH iteration=5
-WW PH Extension: Setting mipgap to 0.0347996, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 120087.1343 Max-Min=16963.66
-Converger=Normalized term diff value is 0.2208 - threshold reached=False
-Cumulative run-time=72.10 seconds
-Halting PH - reached maximal iteration count=5
-
-Number of discrete variables fixed before final plugin calls=0 (total=30)
-Number of continuous variables fixed before final plugin calls=0 (total=30)
-PH complete
-
-Convergence history:
-Converger=Normalized term diff
-Iteration Metric Value
- 0 0.6629
- 1 0.6960
- 2 0.6531
- 3 0.1421
- 4 0.2303
- 5 0.2208
-
-
-Final number of discrete variables fixed=0 (total=30)
-Final number of continuous variables fixed=0 (total=30)
-
-Computing objective inner bound at xhat solution
-
-Computed objective upper bound= 144439.4165
-
-X-hat variable values:
-
- Stage: FirstStage
- (Scenarios: Scenario1 Scenario2 Scenario3 Scenario4 Scenario5 Scenario6 Scenario7 Scenario8 Scenario9 Scenario10 )
- Variable: b0
- Index: [A,B] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [B,A] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [B,E] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [C,D] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [D,C] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [D,E] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [E,B] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [E,D] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [E,F] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [F,E] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [F,G] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [F,H] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [G,F] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [G,H] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [G,I] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [G,J] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [H,F] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [H,G] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [I,G] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [J,G] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- (Scenarios: Scenario1 Scenario2 Scenario3 Scenario4 Scenario5 Scenario6 Scenario7 Scenario8 Scenario9 Scenario10 )
- Variable: x
- Index: [A,B] Values: 28.9100 28.9100 28.9100 28.9100 28.9100 28.9100 28.9100 28.9100 28.9100 28.9100
-
- Index: [B,A] Values: 28.9100 28.9100 28.9100 28.9100 28.9100 28.9100 28.9100 28.9100 28.9100 28.9100
-
- Index: [B,E] Values: 53.2800 53.2800 53.2800 53.2800 53.2800 53.2800 53.2800 53.2800 53.2800 53.2800
-
- Index: [C,D] Values: 29.9400 29.9400 29.9400 29.9400 29.9400 29.9400 29.9400 29.9400 29.9400 29.9400
-
- Index: [D,C] Values: 29.9400 29.9400 29.9400 29.9400 29.9400 29.9400 29.9400 29.9400 29.9400 29.9400
-
- Index: [D,E] Values: 51.9600 51.9600 51.9600 51.9600 51.9600 51.9600 51.9600 51.9600 51.9600 51.9600
-
- Index: [E,B] Values: 53.2800 53.2800 53.2800 53.2800 53.2800 53.2800 53.2800 53.2800 53.2800 53.2800
-
- Index: [E,D] Values: 51.9600 51.9600 51.9600 51.9600 51.9600 51.9600 51.9600 51.9600 51.9600 51.9600
-
- Index: [E,F] Values: 92.1839 92.1839 92.1839 92.1839 92.1839 92.1839 92.1839 92.1839 92.1839 92.1839
-
- Index: [F,E] Values: 92.1839 92.1839 92.1839 92.1839 92.1839 92.1839 92.1839 92.1839 92.1839 92.1839
-
- Index: [F,G] Values: 66.2498 66.2498 66.2498 66.2498 66.2498 66.2498 66.2498 66.2498 66.2498 66.2498
-
- Index: [F,H] Values: 15.7177 15.7177 15.7177 15.7177 15.7177 15.7177 15.7177 15.7177 15.7177 15.7177
-
- Index: [G,F] Values: 66.2498 66.2498 66.2498 66.2498 66.2498 66.2498 66.2498 66.2498 66.2498 66.2498
-
- Index: [G,H] Values: 13.2423 13.2423 13.2423 13.2423 13.2423 13.2423 13.2423 13.2423 13.2423 13.2423
-
- Index: [G,I] Values: 29.2000 29.2000 29.2000 29.2000 29.2000 29.2000 29.2000 29.2000 29.2000 29.2000
-
- Index: [G,J] Values: 29.5800 29.5800 29.5800 29.5800 29.5800 29.5800 29.5800 29.5800 29.5800 29.5800
-
- Index: [H,F] Values: 15.7177 15.7177 15.7177 15.7177 15.7177 15.7177 15.7177 15.7177 15.7177 15.7177
-
- Index: [H,G] Values: 13.2423 13.2423 13.2423 13.2423 13.2423 13.2423 13.2423 13.2423 13.2423 13.2423
-
- Index: [I,G] Values: 29.2000 29.2000 29.2000 29.2000 29.2000 29.2000 29.2000 29.2000 29.2000 29.2000
-
- Index: [J,G] Values: 29.5800 29.5800 29.5800 29.5800 29.5800 29.5800 29.5800 29.5800 29.5800 29.5800
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: Scenario1 Scenario2 Scenario3 Scenario4 Scenario5 Scenario6 Scenario7 Scenario8 Scenario9 Scenario10 )
- Values: 132889.4277 119221.2511 122629.5685 121826.2285 125357.3337 119216.7711 119514.6911 119216.7711 122855.3513 119216.7711 Max-Min: 13672.6567 Avg: 122194.4165
-
-X-hat costs:
-
-Scenario Tree Costs
-----------------------------------------------------
-Tree Nodes:
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- Scenario10Node
- Scenario1Node
- Scenario2Node
- Scenario3Node
- Scenario4Node
- Scenario5Node
- Scenario6Node
- Scenario7Node
- Scenario8Node
- Scenario9Node
- Scenarios:
- Scenario1
- Scenario10
- Scenario2
- Scenario3
- Scenario4
- Scenario5
- Scenario6
- Scenario7
- Scenario8
- Scenario9
- Expected cost of (sub)tree rooted at node=155134.4277
-
- Name=Scenario10Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario10
- Expected cost of (sub)tree rooted at node=23630.0000
-
- Name=Scenario1Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario1
- Expected cost of (sub)tree rooted at node=21190.0000
-
- Name=Scenario2Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario2
- Expected cost of (sub)tree rooted at node=22380.0000
-
- Name=Scenario3Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario3
- Expected cost of (sub)tree rooted at node=20090.0000
-
- Name=Scenario4Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario4
- Expected cost of (sub)tree rooted at node=21480.0000
-
- Name=Scenario5Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario5
- Expected cost of (sub)tree rooted at node=23990.0000
-
- Name=Scenario6Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario6
- Expected cost of (sub)tree rooted at node=23510.0000
-
- Name=Scenario7Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario7
- Expected cost of (sub)tree rooted at node=21290.0000
-
- Name=Scenario8Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario8
- Expected cost of (sub)tree rooted at node=23850.0000
-
- Name=Scenario9Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario9
- Expected cost of (sub)tree rooted at node=21040.0000
-
-----------------------------------------------------
-Scenarios:
-
- Name=Scenario1
- Probability=0.1000
- Leaf Node=Scenario1Node
- Tree node sequence:
- RootNode
- Scenario1Node
- Stage= FirstStage Cost=132889.4277
- Stage= SecondStage Cost=21190.0000
- Total scenario cost=154079.4277
-
- Name=Scenario10
- Probability=0.1000
- Leaf Node=Scenario10Node
- Tree node sequence:
- RootNode
- Scenario10Node
- Stage= FirstStage Cost=119216.7711
- Stage= SecondStage Cost=23630.0000
- Total scenario cost=142846.7711
-
- Name=Scenario2
- Probability=0.1000
- Leaf Node=Scenario2Node
- Tree node sequence:
- RootNode
- Scenario2Node
- Stage= FirstStage Cost=119221.2511
- Stage= SecondStage Cost=22380.0000
- Total scenario cost=141601.2511
-
- Name=Scenario3
- Probability=0.1000
- Leaf Node=Scenario3Node
- Tree node sequence:
- RootNode
- Scenario3Node
- Stage= FirstStage Cost=122629.5685
- Stage= SecondStage Cost=20090.0000
- Total scenario cost=142719.5685
-
- Name=Scenario4
- Probability=0.1000
- Leaf Node=Scenario4Node
- Tree node sequence:
- RootNode
- Scenario4Node
- Stage= FirstStage Cost=121826.2285
- Stage= SecondStage Cost=21480.0000
- Total scenario cost=143306.2285
-
- Name=Scenario5
- Probability=0.1000
- Leaf Node=Scenario5Node
- Tree node sequence:
- RootNode
- Scenario5Node
- Stage= FirstStage Cost=125357.3337
- Stage= SecondStage Cost=23990.0000
- Total scenario cost=149347.3337
-
- Name=Scenario6
- Probability=0.1000
- Leaf Node=Scenario6Node
- Tree node sequence:
- RootNode
- Scenario6Node
- Stage= FirstStage Cost=119216.7711
- Stage= SecondStage Cost=23510.0000
- Total scenario cost=142726.7711
-
- Name=Scenario7
- Probability=0.1000
- Leaf Node=Scenario7Node
- Tree node sequence:
- RootNode
- Scenario7Node
- Stage= FirstStage Cost=119514.6911
- Stage= SecondStage Cost=21290.0000
- Total scenario cost=140804.6911
-
- Name=Scenario8
- Probability=0.1000
- Leaf Node=Scenario8Node
- Tree node sequence:
- RootNode
- Scenario8Node
- Stage= FirstStage Cost=119216.7711
- Stage= SecondStage Cost=23850.0000
- Total scenario cost=143066.7711
-
- Name=Scenario9
- Probability=0.1000
- Leaf Node=Scenario9Node
- Tree node sequence:
- RootNode
- Scenario9Node
- Stage= FirstStage Cost=122855.3513
- Stage= SecondStage Cost=21040.0000
- Total scenario cost=143895.3513
-
-----------------------------------------------------
-
-
-Total PH execution time=74.86 seconds
-
-
-Total execution time=85.80 seconds
diff --git a/pyomo/pysp/tests/unit/baselines/networkflow1ef10_ef.baseline.lp.gz b/pyomo/pysp/tests/unit/baselines/networkflow1ef10_ef.baseline.lp.gz
deleted file mode 100644
index b339a96392f..00000000000
Binary files a/pyomo/pysp/tests/unit/baselines/networkflow1ef10_ef.baseline.lp.gz and /dev/null differ
diff --git a/pyomo/pysp/tests/unit/baselines/networkflow1ef10_ef.baseline.txt b/pyomo/pysp/tests/unit/baselines/networkflow1ef10_ef.baseline.txt
deleted file mode 100644
index f93eaee2e9f..00000000000
--- a/pyomo/pysp/tests/unit/baselines/networkflow1ef10_ef.baseline.txt
+++ /dev/null
@@ -1,318 +0,0 @@
-Importing model and scenario tree files
-Time to import model and scenario tree structure files=0.02 seconds
-Scenario Tree Detail
-----------------------------------------------------
-Tree Nodes:
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- Scenario10Node
- Scenario1Node
- Scenario2Node
- Scenario3Node
- Scenario4Node
- Scenario5Node
- Scenario6Node
- Scenario7Node
- Scenario8Node
- Scenario9Node
- Scenarios:
- Scenario1
- Scenario10
- Scenario2
- Scenario3
- Scenario4
- Scenario5
- Scenario6
- Scenario7
- Scenario8
- Scenario9
-
- Name=Scenario10Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario10
-
- Name=Scenario1Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario1
-
- Name=Scenario2Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario2
-
- Name=Scenario3Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario3
-
- Name=Scenario4Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario4
-
- Name=Scenario5Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario5
-
- Name=Scenario6Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario6
-
- Name=Scenario7Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario7
-
- Name=Scenario8Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario8
-
- Name=Scenario9Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario9
-
-----------------------------------------------------
-Stages:
- Name=FirstStage
- Tree Nodes:
- RootNode
- Variables:
- b0 : [*,*]
- x : [*,*]
- Cost Variable:
- FirstStageCost
-
- Name=SecondStage
- Tree Nodes:
- Scenario10Node
- Scenario1Node
- Scenario2Node
- Scenario3Node
- Scenario4Node
- Scenario5Node
- Scenario6Node
- Scenario7Node
- Scenario8Node
- Scenario9Node
- Variables:
- b : [*,*]
- y : [*,*,*,*]
- Cost Variable:
- SecondStageCost
-
-----------------------------------------------------
-Scenarios:
- Name=Scenario1
- Probability=0.1000
- Leaf node=Scenario1Node
- Tree node sequence:
- RootNode
- Scenario1Node
-
- Name=Scenario10
- Probability=0.1000
- Leaf node=Scenario10Node
- Tree node sequence:
- RootNode
- Scenario10Node
-
- Name=Scenario2
- Probability=0.1000
- Leaf node=Scenario2Node
- Tree node sequence:
- RootNode
- Scenario2Node
-
- Name=Scenario3
- Probability=0.1000
- Leaf node=Scenario3Node
- Tree node sequence:
- RootNode
- Scenario3Node
-
- Name=Scenario4
- Probability=0.1000
- Leaf node=Scenario4Node
- Tree node sequence:
- RootNode
- Scenario4Node
-
- Name=Scenario5
- Probability=0.1000
- Leaf node=Scenario5Node
- Tree node sequence:
- RootNode
- Scenario5Node
-
- Name=Scenario6
- Probability=0.1000
- Leaf node=Scenario6Node
- Tree node sequence:
- RootNode
- Scenario6Node
-
- Name=Scenario7
- Probability=0.1000
- Leaf node=Scenario7Node
- Tree node sequence:
- RootNode
- Scenario7Node
-
- Name=Scenario8
- Probability=0.1000
- Leaf node=Scenario8Node
- Tree node sequence:
- RootNode
- Scenario8Node
-
- Name=Scenario9
- Probability=0.1000
- Leaf node=Scenario9Node
- Tree node sequence:
- RootNode
- Scenario9Node
-
-----------------------------------------------------
-Scenario tree is valid!
-Initializing ScenarioTreeManagerClientSerial with options:
- * verbose: True
- - disable_gc: False
- - profile: 0
- - traceback: False
- - output_scenario_tree_solution: False
- - solution_saver_extension: ()
- - solution_loader_extension: ()
- - solution_writer: ()
- * output_file: /home/jwatson/sp/pyomo/pyomo/pyomo/pysp/tests/unit/test_networkflow1ef10_ef.lp
- - solve: False
- - output_scenario_costs: None
- - output_instance_construction_time: False
- - compile_scenario_instances: False
- - output_times: False
- * model_location: /home/jwatson/sp/pyomo/pyomo/examples/pysp/networkflow/models
- - model_directory: None (DEPRECATED)
- * scenario_tree_location: /home/jwatson/sp/pyomo/pyomo/examples/pysp/networkflow/1ef10
- - instance_directory: None (DEPRECATED)
- - objective_sense_stage_based: None
- - postinit_callback_location: ()
- - bounds_cfgfile: None (DEPRECATED)
- - aggregategetter_callback_location: ()
- - aggregate_cfgfile: None (DEPRECATED)
- - scenario_tree_random_seed: None
- - scenario_tree_seed: None (DEPRECATED)
- - scenario_tree_downsample_fraction: 1.0
- - scenario_bundle_specification: None
- - create_random_bundles: 0
- - profile_memory: 0
- - cvar_weight: 1.0
- - generate_weighted_cvar: False
- - risk_alpha: 0.95
- - cc_alpha: 0.0
- - cc_indicator_var: None
- - mipgap: None
- - solver: cplex
- - solver_io: None
- - solver_manager: serial
- - solver_options: ()
- - disable_warmstart: False
- - pyro_host: None
- - pyro_port: None
- - pyro_shutdown: False
- - shutdown_pyro: None (DEPRECATED)
- - output_solver_results: False
- * symbolic_solver_labels: True
- - output_solver_log: False
- - keep_solver_files: False
- - pyro_shutdown_workers: False
- - shutdown_pyro_workers: None (DEPRECATED)
- - activate_jsonio_solution_saver: None
-
-Constructing scenario tree instances
-Scenario-based instance initialization enabled
-Creating instance for scenario=Scenario1
-Data for scenario=Scenario1 loads from file=/home/jwatson/sp/pyomo/pyomo/examples/pysp/networkflow/1ef10/Scenario1.dat
-Creating instance for scenario=Scenario2
-Data for scenario=Scenario2 loads from file=/home/jwatson/sp/pyomo/pyomo/examples/pysp/networkflow/1ef10/Scenario2.dat
-Creating instance for scenario=Scenario3
-Data for scenario=Scenario3 loads from file=/home/jwatson/sp/pyomo/pyomo/examples/pysp/networkflow/1ef10/Scenario3.dat
-Creating instance for scenario=Scenario4
-Data for scenario=Scenario4 loads from file=/home/jwatson/sp/pyomo/pyomo/examples/pysp/networkflow/1ef10/Scenario4.dat
-Creating instance for scenario=Scenario5
-Data for scenario=Scenario5 loads from file=/home/jwatson/sp/pyomo/pyomo/examples/pysp/networkflow/1ef10/Scenario5.dat
-Creating instance for scenario=Scenario6
-Data for scenario=Scenario6 loads from file=/home/jwatson/sp/pyomo/pyomo/examples/pysp/networkflow/1ef10/Scenario6.dat
-Creating instance for scenario=Scenario7
-Data for scenario=Scenario7 loads from file=/home/jwatson/sp/pyomo/pyomo/examples/pysp/networkflow/1ef10/Scenario7.dat
-Creating instance for scenario=Scenario8
-Data for scenario=Scenario8 loads from file=/home/jwatson/sp/pyomo/pyomo/examples/pysp/networkflow/1ef10/Scenario8.dat
-Creating instance for scenario=Scenario9
-Data for scenario=Scenario9 loads from file=/home/jwatson/sp/pyomo/pyomo/examples/pysp/networkflow/1ef10/Scenario9.dat
-Creating instance for scenario=Scenario10
-Data for scenario=Scenario10 loads from file=/home/jwatson/sp/pyomo/pyomo/examples/pysp/networkflow/1ef10/Scenario10.dat
-Time to construct scenario instances=3.54 seconds
-Linking instances into scenario tree
-Time link scenario tree with instances=2.32 seconds
-ScenarioTreeManagerClientSerial is successfully initialized
-Overall initialization time=5.86 seconds
-
-Initializing extensive form algorithm for stochastic programming problems.
-Creating extensive form instance
-Creating variables for master binding instance
-Time to construct extensive form instance=0.02 seconds
-Starting to write extensive form
-Extensive form written to file=/home/jwatson/sp/pyomo/pyomo/pyomo/pysp/tests/unit/test_networkflow1ef10_ef.lp
-Time to write output file=8.17 seconds
-Closing ScenarioTreeManagerClientSerial
-
-Total EF execution time=14.07 seconds
-
diff --git a/pyomo/pysp/tests/unit/baselines/networkflow1ef10_linearized_cplex.baseline-a b/pyomo/pysp/tests/unit/baselines/networkflow1ef10_linearized_cplex.baseline-a
deleted file mode 100644
index 53e1d77db4a..00000000000
--- a/pyomo/pysp/tests/unit/baselines/networkflow1ef10_linearized_cplex.baseline-a
+++ /dev/null
@@ -1,476 +0,0 @@
-Importing module=/Users/ghackebeil/Projects/Pyomo/pyomo/examples/pysp/networkflow/config/aggregategetter.py
-Module successfully loaded
-Importing module=/Users/ghackebeil/Projects/Pyomo/pyomo/examples/pysp/networkflow/config/rhosettermixed.py
-Module successfully loaded
-Importing module=/Users/ghackebeil/Projects/Pyomo/pyomo/examples/pysp/networkflow/config/xboundsetter.py
-Module successfully loaded
-Initializing PH
-
-Executing user aggregate getter callback function
-Executing user rho setter callback function
-Executing user bound setter callback function
-Starting PH
-
-Initiating PH iteration=0
-Number of discrete variables fixed=0 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 114953.9940 Max-Min=32195.68
-Converger=Normalized term diff value is 0.6629 - threshold reached=False
-Cumulative run-time=32.61 seconds
-
-Initiating PH iteration=1
-Number of discrete variables fixed=0 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 117602.5586 Max-Min=25401.79
-Converger=Normalized term diff value is 0.1815 - threshold reached=False
-Cumulative run-time=57.54 seconds
-
-Initiating PH iteration=2
-Number of discrete variables fixed=0 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 117449.8442 Max-Min=21875.36
-Converger=Normalized term diff value is 0.1744 - threshold reached=False
-Cumulative run-time=81.27 seconds
-
-Initiating PH iteration=3
-Number of discrete variables fixed=0 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 118978.2158 Max-Min=18274.39
-Converger=Normalized term diff value is 0.3423 - threshold reached=False
-Cumulative run-time=102.76 seconds
-
-Initiating PH iteration=4
-Number of discrete variables fixed=0 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 119118.3469 Max-Min=18709.94
-Converger=Normalized term diff value is 0.4773 - threshold reached=False
-Cumulative run-time=126.83 seconds
-
-Initiating PH iteration=5
-Number of discrete variables fixed=0 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 118706.1666 Max-Min=17997.46
-Converger=Normalized term diff value is 0.3837 - threshold reached=False
-Cumulative run-time=149.84 seconds
-
-Initiating PH iteration=6
-Number of discrete variables fixed=0 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 119544.3928 Max-Min=16795.51
-Converger=Normalized term diff value is 0.3824 - threshold reached=False
-Cumulative run-time=171.97 seconds
-
-Initiating PH iteration=7
-Number of discrete variables fixed=0 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 120528.2957 Max-Min=16337.65
-Converger=Normalized term diff value is 0.1429 - threshold reached=False
-Cumulative run-time=195.77 seconds
-
-Initiating PH iteration=8
-Number of discrete variables fixed=0 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 121493.9662 Max-Min=14296.26
-Converger=Normalized term diff value is 0.1420 - threshold reached=False
-Cumulative run-time=217.78 seconds
-
-Initiating PH iteration=9
-Number of discrete variables fixed=0 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 123203.6220 Max-Min=11664.42
-Converger=Normalized term diff value is 0.4943 - threshold reached=False
-Cumulative run-time=238.35 seconds
-
-Initiating PH iteration=10
-Number of discrete variables fixed=0 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 123063.9406 Max-Min=13463.62
-Converger=Normalized term diff value is 0.2668 - threshold reached=False
-Cumulative run-time=259.96 seconds
-Halting PH - reached maximal iteration count=10
-
-Number of discrete variables fixed before final plugin calls=0 (total=30)
-Number of continuous variables fixed before final plugin calls=0 (total=30)
-PH complete
-
-Convergence history:
-Converger=Normalized term diff
-Iteration Metric Value
- 0 0.6629
- 1 0.1815
- 2 0.1744
- 3 0.3423
- 4 0.4773
- 5 0.3837
- 6 0.3824
- 7 0.1429
- 8 0.1420
- 9 0.4943
- 10 0.2668
-
-
-Final number of discrete variables fixed=0 (total=30)
-Final number of continuous variables fixed=0 (total=30)
-
-Computing objective inner bound at xhat solution
-At least one sub-problem solve time was undefined - skipping timing statistics
-At least one sub-problem solve time was undefined - skipping timing statistics
- ** At least one sub-problem failed to solve! **
- Failed sub-problems:
- Scenario1
- Scenario5
- Scenario7
- Scenario9
-
-Failed to compute bound at xhat due to one or more solve failures. Restoring PH to solution at final iteration.
-Generating scenario tree solution from scenario averages
-
-Scenario tree variable values:
-
- Stage: FirstStage
- (Scenarios: Scenario1 Scenario2 Scenario3 Scenario4 Scenario5 Scenario6 Scenario7 Scenario8 Scenario9 Scenario10 )
- Variable: b0
- Index: [A,B] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [B,A] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [B,C] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [B,E] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [C,B] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [C,D] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [D,C] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [D,E] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [E,B] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [E,D] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [E,F] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [F,E] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [F,G] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [F,H] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [G,F] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [G,I] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [G,J] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [H,F] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [H,I] Values: 1.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000
-
- Index: [I,G] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [I,H] Values: 1.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000
-
- Index: [I,J] Values: 1.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000
-
- Index: [J,G] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [J,I] Values: 1.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000
-
- (Scenarios: Scenario1 Scenario2 Scenario3 Scenario4 Scenario5 Scenario6 Scenario7 Scenario8 Scenario9 Scenario10 )
- Variable: x
- Index: [A,B] Values: 34.7300 29.9118 29.9118 29.9118 32.0100 29.9118 30.2400 29.9118 32.1100 29.9118
-
- Index: [B,A] Values: 34.7300 29.9118 29.9118 29.9118 32.0100 29.9118 30.2400 29.9118 32.1100 29.9118
-
- Index: [B,C] Values: 24.7615 13.7396 13.7396 23.9200 15.7024 1.9628 17.3889 15.7024 15.7024 13.4215
-
- Index: [B,E] Values: 63.8045 57.1514 57.1514 57.1514 56.7345 50.0074 57.1514 57.1514 53.6945 57.1514
-
- Index: [C,B] Values: 24.7615 13.7396 13.7396 23.9200 15.7024 1.9628 17.3889 15.7024 15.7024 13.4215
-
- Index: [C,D] Values: 18.9355 28.6800 18.9355 14.2016 18.9355 27.6800 11.8347 28.3400 18.9355 18.9355
-
- Index: [D,C] Values: 18.9355 28.6800 18.9355 14.2016 18.9355 27.6800 11.8347 28.3400 18.9355 18.9355
-
- Index: [D,E] Values: 38.5385 51.0800 38.5385 33.7211 41.0076 50.4700 33.7211 49.4300 39.6176 38.5385
-
- Index: [E,B] Values: 63.8045 57.1514 57.1514 57.1514 56.7345 50.0074 57.1514 57.1514 53.6945 57.1514
-
- Index: [E,D] Values: 38.5385 51.0800 38.5385 33.7211 41.0076 50.4700 33.7211 49.4300 39.6176 38.5385
-
- Index: [E,F] Values: 97.0800 94.2310 94.2310 94.2310 90.3500 94.2310 94.2310 94.2310 94.2310 97.0597
-
- Index: [F,E] Values: 97.0800 94.2310 94.2310 94.2310 90.3500 94.2310 94.2310 94.2310 94.2310 97.0597
-
- Index: [F,G] Values: 72.2321 72.2321 72.2321 72.2321 76.2500 72.2321 72.2321 72.2321 72.8500 72.2321
-
- Index: [F,H] Values: 26.6121 28.7700 28.4800 28.3791 31.9400 27.6300 28.9200 27.4400 31.4900 28.9600
-
- Index: [G,F] Values: 72.2321 72.2321 72.2321 72.2321 76.2500 72.2321 72.2321 72.2321 72.8500 72.2321
-
- Index: [G,I] Values: 26.1641 28.4000 28.7500 29.2634 33.0200 29.2634 29.1800 29.2634 30.8400 29.2000
-
- Index: [G,J] Values: 27.0038 30.8614 30.8614 30.8614 32.6900 30.8614 30.8614 30.8614 30.7700 29.5800
-
- Index: [H,F] Values: 26.6121 28.7700 28.4800 28.3791 31.9400 27.6300 28.9200 27.4400 31.4900 28.9600
-
- Index: [H,I] Values: 7.9079 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000
-
- Index: [I,G] Values: 26.1641 28.4000 28.7500 29.2634 33.0200 29.2634 29.1800 29.2634 30.8400 29.2000
-
- Index: [I,H] Values: 7.9079 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000
-
- Index: [I,J] Values: 8.4762 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000
-
- Index: [J,G] Values: 27.0038 30.8614 30.8614 30.8614 32.6900 30.8614 30.8614 30.8614 30.7700 29.5800
-
- Index: [J,I] Values: 8.4762 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: Scenario1 Scenario2 Scenario3 Scenario4 Scenario5 Scenario6 Scenario7 Scenario8 Scenario9 Scenario10 )
- Values: 132377.1668 125355.4202 120425.3745 120767.4957 124243.3505 120328.1280 118913.5460 125243.5383 122111.1009 120874.2852 Max-Min: 13463.6209 Avg: 123063.9406
-Scenario tree costs:
-Scenario Tree Costs
-----------------------------------------------------
-Tree Nodes:
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- Scenario10Node
- Scenario1Node
- Scenario2Node
- Scenario3Node
- Scenario4Node
- Scenario5Node
- Scenario6Node
- Scenario7Node
- Scenario8Node
- Scenario9Node
- Scenarios:
- Scenario1
- Scenario10
- Scenario2
- Scenario3
- Scenario4
- Scenario5
- Scenario6
- Scenario7
- Scenario8
- Scenario9
- Expected cost of (sub)tree rooted at node=155004.1668
-
- Name=Scenario10Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario10
- Expected cost of (sub)tree rooted at node=23630.0000
-
- Name=Scenario1Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario1
- Expected cost of (sub)tree rooted at node=23410.0000
-
- Name=Scenario2Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario2
- Expected cost of (sub)tree rooted at node=20060.0000
-
- Name=Scenario3Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario3
- Expected cost of (sub)tree rooted at node=22410.0000
-
- Name=Scenario4Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario4
- Expected cost of (sub)tree rooted at node=23080.0000
-
- Name=Scenario5Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario5
- Expected cost of (sub)tree rooted at node=23990.0000
-
- Name=Scenario6Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario6
- Expected cost of (sub)tree rooted at node=22350.0000
-
- Name=Scenario7Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario7
- Expected cost of (sub)tree rooted at node=22450.0000
-
- Name=Scenario8Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario8
- Expected cost of (sub)tree rooted at node=22690.0000
-
- Name=Scenario9Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario9
- Expected cost of (sub)tree rooted at node=22200.0000
-
-----------------------------------------------------
-Scenarios:
-
- Name=Scenario1
- Probability=0.1000
- Leaf Node=Scenario1Node
- Tree node sequence:
- RootNode
- Scenario1Node
- Stage= FirstStage Cost=132377.1668
- Stage= SecondStage Cost=23410.0000
- Total scenario cost=155787.1668
-
- Name=Scenario10
- Probability=0.1000
- Leaf Node=Scenario10Node
- Tree node sequence:
- RootNode
- Scenario10Node
- Stage= FirstStage Cost=120874.2852
- Stage= SecondStage Cost=23630.0000
- Total scenario cost=144504.2852
-
- Name=Scenario2
- Probability=0.1000
- Leaf Node=Scenario2Node
- Tree node sequence:
- RootNode
- Scenario2Node
- Stage= FirstStage Cost=125355.4202
- Stage= SecondStage Cost=20060.0000
- Total scenario cost=145415.4202
-
- Name=Scenario3
- Probability=0.1000
- Leaf Node=Scenario3Node
- Tree node sequence:
- RootNode
- Scenario3Node
- Stage= FirstStage Cost=120425.3745
- Stage= SecondStage Cost=22410.0000
- Total scenario cost=142835.3745
-
- Name=Scenario4
- Probability=0.1000
- Leaf Node=Scenario4Node
- Tree node sequence:
- RootNode
- Scenario4Node
- Stage= FirstStage Cost=120767.4957
- Stage= SecondStage Cost=23080.0000
- Total scenario cost=143847.4957
-
- Name=Scenario5
- Probability=0.1000
- Leaf Node=Scenario5Node
- Tree node sequence:
- RootNode
- Scenario5Node
- Stage= FirstStage Cost=124243.3505
- Stage= SecondStage Cost=23990.0000
- Total scenario cost=148233.3505
-
- Name=Scenario6
- Probability=0.1000
- Leaf Node=Scenario6Node
- Tree node sequence:
- RootNode
- Scenario6Node
- Stage= FirstStage Cost=120328.1280
- Stage= SecondStage Cost=22350.0000
- Total scenario cost=142678.1280
-
- Name=Scenario7
- Probability=0.1000
- Leaf Node=Scenario7Node
- Tree node sequence:
- RootNode
- Scenario7Node
- Stage= FirstStage Cost=118913.5460
- Stage= SecondStage Cost=22450.0000
- Total scenario cost=141363.5460
-
- Name=Scenario8
- Probability=0.1000
- Leaf Node=Scenario8Node
- Tree node sequence:
- RootNode
- Scenario8Node
- Stage= FirstStage Cost=125243.5383
- Stage= SecondStage Cost=22690.0000
- Total scenario cost=147933.5383
-
- Name=Scenario9
- Probability=0.1000
- Leaf Node=Scenario9Node
- Tree node sequence:
- RootNode
- Scenario9Node
- Stage= FirstStage Cost=122111.1009
- Stage= SecondStage Cost=22200.0000
- Total scenario cost=144311.1009
-
-----------------------------------------------------
-
-
-Total PH execution time=270.61 seconds
-
-
-Total execution time=278.76 seconds
diff --git a/pyomo/pysp/tests/unit/baselines/networkflow1ef10_linearized_cplex.baseline-b b/pyomo/pysp/tests/unit/baselines/networkflow1ef10_linearized_cplex.baseline-b
deleted file mode 100644
index e025d1efa4c..00000000000
--- a/pyomo/pysp/tests/unit/baselines/networkflow1ef10_linearized_cplex.baseline-b
+++ /dev/null
@@ -1,452 +0,0 @@
-Importing module=/Users/ghackebeil/Projects/Pyomo/pyomo/examples/pysp/networkflow/config/aggregategetter.py
-Module successfully loaded
-Importing module=/Users/ghackebeil/Projects/Pyomo/pyomo/examples/pysp/networkflow/config/rhosettermixed.py
-Module successfully loaded
-Importing module=/Users/ghackebeil/Projects/Pyomo/pyomo/examples/pysp/networkflow/config/xboundsetter.py
-Module successfully loaded
-Initializing PH
-
-Executing user aggregate getter callback function
-Executing user rho setter callback function
-Executing user bound setter callback function
-Starting PH
-
-Initiating PH iteration=0
-Number of discrete variables fixed=0 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 114953.9940 Max-Min=32195.68
-Converger=Normalized term diff value is 0.6629 - threshold reached=False
-Cumulative run-time=163.11 seconds
-
-Initiating PH iteration=1
-Number of discrete variables fixed=0 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 118788.3808 Max-Min=27009.62
-Converger=Normalized term diff value is 0.1874 - threshold reached=False
-Cumulative run-time=304.70 seconds
-
-Initiating PH iteration=2
-Number of discrete variables fixed=0 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 117633.0981 Max-Min=21620.70
-Converger=Normalized term diff value is 0.2645 - threshold reached=False
-Cumulative run-time=398.84 seconds
-
-Initiating PH iteration=3
-Number of discrete variables fixed=0 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 117501.6469 Max-Min=23011.86
-Converger=Normalized term diff value is 0.2892 - threshold reached=False
-Cumulative run-time=508.37 seconds
-
-Initiating PH iteration=4
-Number of discrete variables fixed=0 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 118469.5312 Max-Min=18688.56
-Converger=Normalized term diff value is 0.4050 - threshold reached=False
-Cumulative run-time=555.65 seconds
-
-Initiating PH iteration=5
-Number of discrete variables fixed=0 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 119025.8913 Max-Min=17171.44
-Converger=Normalized term diff value is 0.1731 - threshold reached=False
-Cumulative run-time=615.51 seconds
-
-Initiating PH iteration=6
-Number of discrete variables fixed=0 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 119725.6070 Max-Min=17625.86
-Converger=Normalized term diff value is 0.3237 - threshold reached=False
-Cumulative run-time=689.79 seconds
-
-Initiating PH iteration=7
-Number of discrete variables fixed=0 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 119687.1521 Max-Min=17076.76
-Converger=Normalized term diff value is 0.4936 - threshold reached=False
-Cumulative run-time=745.06 seconds
-
-Initiating PH iteration=8
-Number of discrete variables fixed=0 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 120749.1000 Max-Min=15324.64
-Converger=Normalized term diff value is 0.2422 - threshold reached=False
-Cumulative run-time=769.32 seconds
-
-Initiating PH iteration=9
-Number of discrete variables fixed=0 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 120552.4689 Max-Min=15566.47
-Converger=Normalized term diff value is 0.2506 - threshold reached=False
-Cumulative run-time=794.91 seconds
-
-Initiating PH iteration=10
-Number of discrete variables fixed=0 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 121826.5032 Max-Min=13946.93
-Converger=Normalized term diff value is 0.0122 - threshold reached=False
-Cumulative run-time=821.09 seconds
-Halting PH - reached maximal iteration count=10
-
-Number of discrete variables fixed before final plugin calls=0 (total=30)
-Number of continuous variables fixed before final plugin calls=0 (total=30)
-PH complete
-
-Convergence history:
-Converger=Normalized term diff
-Iteration Metric Value
- 0 0.6629
- 1 0.1874
- 2 0.2645
- 3 0.2892
- 4 0.4050
- 5 0.1731
- 6 0.3237
- 7 0.4936
- 8 0.2422
- 9 0.2506
- 10 0.0122
-
-
-Final number of discrete variables fixed=0 (total=30)
-Final number of continuous variables fixed=0 (total=30)
-
-Computing objective inner bound at xhat solution
-At least one sub-problem solve time was undefined - skipping timing statistics
-At least one sub-problem solve time was undefined - skipping timing statistics
- ** At least one sub-problem failed to solve! **
- Failed sub-problems:
- Scenario1
- Scenario5
- Scenario7
- Scenario9
-
-Failed to compute bound at xhat due to one or more solve failures. Restoring PH to solution at final iteration.
-Generating scenario tree solution from scenario averages
-
-Scenario tree variable values:
-
- Stage: FirstStage
- (Scenarios: Scenario1 Scenario2 Scenario3 Scenario4 Scenario5 Scenario6 Scenario7 Scenario8 Scenario9 Scenario10 )
- Variable: b0
- Index: [A,B] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [B,A] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [B,C] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [B,E] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [C,B] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [D,E] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [E,B] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [E,D] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [E,F] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [F,E] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [F,G] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [F,H] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [G,F] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [G,I] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [G,J] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [H,F] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [I,G] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [J,G] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- (Scenarios: Scenario1 Scenario2 Scenario3 Scenario4 Scenario5 Scenario6 Scenario7 Scenario8 Scenario9 Scenario10 )
- Variable: x
- Index: [A,B] Values: 34.7300 31.7720 31.7720 31.7720 32.0100 31.7720 30.2400 31.7720 32.1100 31.7720
-
- Index: [B,A] Values: 34.7300 31.7720 31.7720 31.7720 32.0100 31.7720 30.2400 31.7720 32.1100 31.7720
-
- Index: [B,C] Values: 36.5300 28.6800 28.4100 26.5921 31.3200 30.3910 30.3910 30.3910 30.7900 29.9400
-
- Index: [B,E] Values: 82.7400 69.5738 69.5738 69.5738 75.6700 69.5738 69.5738 69.5738 72.6300 69.7000
-
- Index: [C,B] Values: 36.5300 28.6800 28.4100 26.5921 31.3200 30.3910 30.3910 30.3910 30.7900 29.9400
-
- Index: [D,E] Values: 35.3500 28.4200 28.0900 28.4362 32.6900 28.1700 29.0200 28.4362 30.9700 28.7200
-
- Index: [E,B] Values: 82.7400 69.5738 69.5738 69.5738 75.6700 69.5738 69.5738 69.5738 72.6300 69.7000
-
- Index: [E,D] Values: 35.3500 28.4200 28.0900 28.4362 32.6900 28.1700 29.0200 28.4362 30.9700 28.7200
-
- Index: [E,F] Values: 97.0800 91.9061 91.9061 91.9061 90.3500 102.2778 102.2778 102.2778 91.9061 91.9061
-
- Index: [F,E] Values: 97.0800 91.9061 91.9061 91.9061 90.3500 102.2778 102.2778 102.2778 91.9061 91.9061
-
- Index: [F,G] Values: 80.1400 73.0839 73.0839 73.0839 76.2500 73.0839 73.0839 73.0839 72.8500 73.0839
-
- Index: [F,H] Values: 34.5200 28.7700 28.4800 28.8670 31.9400 28.8670 28.9200 28.8670 31.4900 28.9600
-
- Index: [G,F] Values: 80.1400 73.0839 73.0839 73.0839 76.2500 73.0839 73.0839 73.0839 72.8500 73.0839
-
- Index: [G,I] Values: 32.9000 30.2456 28.7500 30.2456 33.0200 30.2456 29.1800 30.2456 30.8400 29.2000
-
- Index: [G,J] Values: 35.4800 31.2719 31.2719 31.2719 32.6900 31.2719 31.2719 31.2719 30.7700 29.5800
-
- Index: [H,F] Values: 34.5200 28.7700 28.4800 28.8670 31.9400 28.8670 28.9200 28.8670 31.4900 28.9600
-
- Index: [I,G] Values: 32.9000 30.2456 28.7500 30.2456 33.0200 30.2456 29.1800 30.2456 30.8400 29.2000
-
- Index: [J,G] Values: 35.4800 31.2719 31.2719 31.2719 32.6900 31.2719 31.2719 31.2719 30.7700 29.5800
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: Scenario1 Scenario2 Scenario3 Scenario4 Scenario5 Scenario6 Scenario7 Scenario8 Scenario9 Scenario10 )
- Values: 132428.1600 119058.6415 118481.2344 118602.6582 124478.4400 121707.2130 121302.4605 121765.7797 121639.1375 118801.3073 Max-Min: 13946.9256 Avg: 121826.5032
-Scenario tree costs:
-Scenario Tree Costs
-----------------------------------------------------
-Tree Nodes:
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- Scenario10Node
- Scenario1Node
- Scenario2Node
- Scenario3Node
- Scenario4Node
- Scenario5Node
- Scenario6Node
- Scenario7Node
- Scenario8Node
- Scenario9Node
- Scenarios:
- Scenario1
- Scenario10
- Scenario2
- Scenario3
- Scenario4
- Scenario5
- Scenario6
- Scenario7
- Scenario8
- Scenario9
- Expected cost of (sub)tree rooted at node=153513.1600
-
- Name=Scenario10Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario10
- Expected cost of (sub)tree rooted at node=20270.0000
-
- Name=Scenario1Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario1
- Expected cost of (sub)tree rooted at node=17830.0000
-
- Name=Scenario2Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario2
- Expected cost of (sub)tree rooted at node=20140.0000
-
- Name=Scenario3Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario3
- Expected cost of (sub)tree rooted at node=21290.0000
-
- Name=Scenario4Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario4
- Expected cost of (sub)tree rooted at node=23080.0000
-
- Name=Scenario5Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario5
- Expected cost of (sub)tree rooted at node=22870.0000
-
- Name=Scenario6Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario6
- Expected cost of (sub)tree rooted at node=22470.0000
-
- Name=Scenario7Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario7
- Expected cost of (sub)tree rooted at node=21330.0000
-
- Name=Scenario8Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario8
- Expected cost of (sub)tree rooted at node=22730.0000
-
- Name=Scenario9Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario9
- Expected cost of (sub)tree rooted at node=18840.0000
-
-----------------------------------------------------
-Scenarios:
-
- Name=Scenario1
- Probability=0.1000
- Leaf Node=Scenario1Node
- Tree node sequence:
- RootNode
- Scenario1Node
- Stage= FirstStage Cost=132428.1600
- Stage= SecondStage Cost=17830.0000
- Total scenario cost=150258.1600
-
- Name=Scenario10
- Probability=0.1000
- Leaf Node=Scenario10Node
- Tree node sequence:
- RootNode
- Scenario10Node
- Stage= FirstStage Cost=118801.3073
- Stage= SecondStage Cost=20270.0000
- Total scenario cost=139071.3073
-
- Name=Scenario2
- Probability=0.1000
- Leaf Node=Scenario2Node
- Tree node sequence:
- RootNode
- Scenario2Node
- Stage= FirstStage Cost=119058.6415
- Stage= SecondStage Cost=20140.0000
- Total scenario cost=139198.6415
-
- Name=Scenario3
- Probability=0.1000
- Leaf Node=Scenario3Node
- Tree node sequence:
- RootNode
- Scenario3Node
- Stage= FirstStage Cost=118481.2344
- Stage= SecondStage Cost=21290.0000
- Total scenario cost=139771.2344
-
- Name=Scenario4
- Probability=0.1000
- Leaf Node=Scenario4Node
- Tree node sequence:
- RootNode
- Scenario4Node
- Stage= FirstStage Cost=118602.6582
- Stage= SecondStage Cost=23080.0000
- Total scenario cost=141682.6582
-
- Name=Scenario5
- Probability=0.1000
- Leaf Node=Scenario5Node
- Tree node sequence:
- RootNode
- Scenario5Node
- Stage= FirstStage Cost=124478.4400
- Stage= SecondStage Cost=22870.0000
- Total scenario cost=147348.4400
-
- Name=Scenario6
- Probability=0.1000
- Leaf Node=Scenario6Node
- Tree node sequence:
- RootNode
- Scenario6Node
- Stage= FirstStage Cost=121707.2130
- Stage= SecondStage Cost=22470.0000
- Total scenario cost=144177.2130
-
- Name=Scenario7
- Probability=0.1000
- Leaf Node=Scenario7Node
- Tree node sequence:
- RootNode
- Scenario7Node
- Stage= FirstStage Cost=121302.4605
- Stage= SecondStage Cost=21330.0000
- Total scenario cost=142632.4605
-
- Name=Scenario8
- Probability=0.1000
- Leaf Node=Scenario8Node
- Tree node sequence:
- RootNode
- Scenario8Node
- Stage= FirstStage Cost=121765.7797
- Stage= SecondStage Cost=22730.0000
- Total scenario cost=144495.7797
-
- Name=Scenario9
- Probability=0.1000
- Leaf Node=Scenario9Node
- Tree node sequence:
- RootNode
- Scenario9Node
- Stage= FirstStage Cost=121639.1375
- Stage= SecondStage Cost=18840.0000
- Total scenario cost=140479.1375
-
-----------------------------------------------------
-
-
-Total PH execution time=829.54 seconds
-
-
-Total execution time=839.81 seconds
diff --git a/pyomo/pysp/tests/unit/baselines/networkflow1ef10_linearized_cplex_darwin.baseline b/pyomo/pysp/tests/unit/baselines/networkflow1ef10_linearized_cplex_darwin.baseline
deleted file mode 100644
index 90ccaf640e9..00000000000
--- a/pyomo/pysp/tests/unit/baselines/networkflow1ef10_linearized_cplex_darwin.baseline
+++ /dev/null
@@ -1,452 +0,0 @@
-Importing module=/Users/ghackebeil/Projects/Pyomo/pyomo/examples/pysp/networkflow/config/aggregategetter.py
-Module successfully loaded
-Importing module=/Users/ghackebeil/Projects/Pyomo/pyomo/examples/pysp/networkflow/config/rhosettermixed.py
-Module successfully loaded
-Importing module=/Users/ghackebeil/Projects/Pyomo/pyomo/examples/pysp/networkflow/config/xboundsetter.py
-Module successfully loaded
-Initializing PH
-
-Executing user aggregate getter callback function
-Executing user rho setter callback function
-Executing user bound setter callback function
-Starting PH
-
-Initiating PH iteration=0
-Number of discrete variables fixed=0 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 114953.9940 Max-Min=32195.68
-Converger=Normalized term diff value is 0.6629 - threshold reached=False
-Cumulative run-time=13.12 seconds
-
-Initiating PH iteration=1
-Number of discrete variables fixed=0 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 118788.3808 Max-Min=27009.62
-Converger=Normalized term diff value is 0.1874 - threshold reached=False
-Cumulative run-time=22.67 seconds
-
-Initiating PH iteration=2
-Number of discrete variables fixed=0 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 117633.0981 Max-Min=21620.70
-Converger=Normalized term diff value is 0.2645 - threshold reached=False
-Cumulative run-time=31.71 seconds
-
-Initiating PH iteration=3
-Number of discrete variables fixed=0 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 117501.6469 Max-Min=23011.86
-Converger=Normalized term diff value is 0.2892 - threshold reached=False
-Cumulative run-time=41.30 seconds
-
-Initiating PH iteration=4
-Number of discrete variables fixed=0 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 118469.5312 Max-Min=18688.56
-Converger=Normalized term diff value is 0.4050 - threshold reached=False
-Cumulative run-time=50.03 seconds
-
-Initiating PH iteration=5
-Number of discrete variables fixed=0 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 119025.8913 Max-Min=17171.44
-Converger=Normalized term diff value is 0.1731 - threshold reached=False
-Cumulative run-time=58.97 seconds
-
-Initiating PH iteration=6
-Number of discrete variables fixed=0 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 119725.6070 Max-Min=17625.86
-Converger=Normalized term diff value is 0.3237 - threshold reached=False
-Cumulative run-time=67.63 seconds
-
-Initiating PH iteration=7
-Number of discrete variables fixed=0 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 119687.1521 Max-Min=17076.76
-Converger=Normalized term diff value is 0.4936 - threshold reached=False
-Cumulative run-time=75.87 seconds
-
-Initiating PH iteration=8
-Number of discrete variables fixed=0 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 120749.1000 Max-Min=15324.64
-Converger=Normalized term diff value is 0.2422 - threshold reached=False
-Cumulative run-time=83.68 seconds
-
-Initiating PH iteration=9
-Number of discrete variables fixed=0 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 120552.4689 Max-Min=15566.47
-Converger=Normalized term diff value is 0.2506 - threshold reached=False
-Cumulative run-time=91.44 seconds
-
-Initiating PH iteration=10
-Number of discrete variables fixed=0 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 121826.5032 Max-Min=13946.93
-Converger=Normalized term diff value is 0.0122 - threshold reached=False
-Cumulative run-time=99.14 seconds
-Halting PH - reached maximal iteration count=10
-
-Number of discrete variables fixed before final plugin calls=0 (total=30)
-Number of continuous variables fixed before final plugin calls=0 (total=30)
-PH complete
-
-Convergence history:
-Converger=Normalized term diff
-Iteration Metric Value
- 0 0.6629
- 1 0.1874
- 2 0.2645
- 3 0.2892
- 4 0.4050
- 5 0.1731
- 6 0.3237
- 7 0.4936
- 8 0.2422
- 9 0.2506
- 10 0.0122
-
-
-Final number of discrete variables fixed=0 (total=30)
-Final number of continuous variables fixed=0 (total=30)
-
-Computing objective inner bound at xhat solution
-At least one sub-problem solve time was undefined - skipping timing statistics
-At least one sub-problem solve time was undefined - skipping timing statistics
- ** At least one sub-problem failed to solve! **
- Failed sub-problems:
- Scenario1
- Scenario5
- Scenario7
- Scenario9
-
-Failed to compute bound at xhat due to one or more solve failures. Restoring PH to solution at final iteration.
-Generating scenario tree solution from scenario averages
-
-Scenario tree variable values:
-
- Stage: FirstStage
- (Scenarios: Scenario1 Scenario2 Scenario3 Scenario4 Scenario5 Scenario6 Scenario7 Scenario8 Scenario9 Scenario10 )
- Variable: b0
- Index: [A,B] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [B,A] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [B,C] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [B,E] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [C,B] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [D,E] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [E,B] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [E,D] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [E,F] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [F,E] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [F,G] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [F,H] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [G,F] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [G,I] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [G,J] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [H,F] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [I,G] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [J,G] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- (Scenarios: Scenario1 Scenario2 Scenario3 Scenario4 Scenario5 Scenario6 Scenario7 Scenario8 Scenario9 Scenario10 )
- Variable: x
- Index: [A,B] Values: 34.7300 31.7720 31.7720 31.7720 32.0100 31.7720 30.2400 31.7720 32.1100 31.7720
-
- Index: [B,A] Values: 34.7300 31.7720 31.7720 31.7720 32.0100 31.7720 30.2400 31.7720 32.1100 31.7720
-
- Index: [B,C] Values: 36.5300 28.6800 28.4100 26.5921 31.3200 30.3910 30.3910 30.3910 30.7900 29.9400
-
- Index: [B,E] Values: 82.7400 69.5738 69.5738 69.5738 75.6700 69.5738 69.5738 69.5738 72.6300 69.7000
-
- Index: [C,B] Values: 36.5300 28.6800 28.4100 26.5921 31.3200 30.3910 30.3910 30.3910 30.7900 29.9400
-
- Index: [D,E] Values: 35.3500 28.4200 28.0900 28.4362 32.6900 28.1700 29.0200 28.4362 30.9700 28.7200
-
- Index: [E,B] Values: 82.7400 69.5738 69.5738 69.5738 75.6700 69.5738 69.5738 69.5738 72.6300 69.7000
-
- Index: [E,D] Values: 35.3500 28.4200 28.0900 28.4362 32.6900 28.1700 29.0200 28.4362 30.9700 28.7200
-
- Index: [E,F] Values: 97.0800 91.9061 91.9061 91.9061 90.3500 102.2778 102.2778 102.2778 91.9061 91.9061
-
- Index: [F,E] Values: 97.0800 91.9061 91.9061 91.9061 90.3500 102.2778 102.2778 102.2778 91.9061 91.9061
-
- Index: [F,G] Values: 80.1400 73.0839 73.0839 73.0839 76.2500 73.0839 73.0839 73.0839 72.8500 73.0839
-
- Index: [F,H] Values: 34.5200 28.7700 28.4800 28.8670 31.9400 28.8670 28.9200 28.8670 31.4900 28.9600
-
- Index: [G,F] Values: 80.1400 73.0839 73.0839 73.0839 76.2500 73.0839 73.0839 73.0839 72.8500 73.0839
-
- Index: [G,I] Values: 32.9000 30.2456 28.7500 30.2456 33.0200 30.2456 29.1800 30.2456 30.8400 29.2000
-
- Index: [G,J] Values: 35.4800 31.2719 31.2719 31.2719 32.6900 31.2719 31.2719 31.2719 30.7700 29.5800
-
- Index: [H,F] Values: 34.5200 28.7700 28.4800 28.8670 31.9400 28.8670 28.9200 28.8670 31.4900 28.9600
-
- Index: [I,G] Values: 32.9000 30.2456 28.7500 30.2456 33.0200 30.2456 29.1800 30.2456 30.8400 29.2000
-
- Index: [J,G] Values: 35.4800 31.2719 31.2719 31.2719 32.6900 31.2719 31.2719 31.2719 30.7700 29.5800
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: Scenario1 Scenario2 Scenario3 Scenario4 Scenario5 Scenario6 Scenario7 Scenario8 Scenario9 Scenario10 )
- Values: 132428.1600 119058.6415 118481.2344 118602.6582 124478.4400 121707.2130 121302.4605 121765.7797 121639.1375 118801.3073 Max-Min: 13946.9256 Avg: 121826.5032
-Scenario tree costs:
-Scenario Tree Costs
-----------------------------------------------------
-Tree Nodes:
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- Scenario10Node
- Scenario1Node
- Scenario2Node
- Scenario3Node
- Scenario4Node
- Scenario5Node
- Scenario6Node
- Scenario7Node
- Scenario8Node
- Scenario9Node
- Scenarios:
- Scenario1
- Scenario10
- Scenario2
- Scenario3
- Scenario4
- Scenario5
- Scenario6
- Scenario7
- Scenario8
- Scenario9
- Expected cost of (sub)tree rooted at node=153513.1600
-
- Name=Scenario10Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario10
- Expected cost of (sub)tree rooted at node=20270.0000
-
- Name=Scenario1Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario1
- Expected cost of (sub)tree rooted at node=17830.0000
-
- Name=Scenario2Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario2
- Expected cost of (sub)tree rooted at node=20140.0000
-
- Name=Scenario3Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario3
- Expected cost of (sub)tree rooted at node=21290.0000
-
- Name=Scenario4Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario4
- Expected cost of (sub)tree rooted at node=23080.0000
-
- Name=Scenario5Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario5
- Expected cost of (sub)tree rooted at node=22870.0000
-
- Name=Scenario6Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario6
- Expected cost of (sub)tree rooted at node=22470.0000
-
- Name=Scenario7Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario7
- Expected cost of (sub)tree rooted at node=21330.0000
-
- Name=Scenario8Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario8
- Expected cost of (sub)tree rooted at node=22730.0000
-
- Name=Scenario9Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario9
- Expected cost of (sub)tree rooted at node=18840.0000
-
-----------------------------------------------------
-Scenarios:
-
- Name=Scenario1
- Probability=0.1000
- Leaf Node=Scenario1Node
- Tree node sequence:
- RootNode
- Scenario1Node
- Stage= FirstStage Cost=132428.1600
- Stage= SecondStage Cost=17830.0000
- Total scenario cost=150258.1600
-
- Name=Scenario10
- Probability=0.1000
- Leaf Node=Scenario10Node
- Tree node sequence:
- RootNode
- Scenario10Node
- Stage= FirstStage Cost=118801.3073
- Stage= SecondStage Cost=20270.0000
- Total scenario cost=139071.3073
-
- Name=Scenario2
- Probability=0.1000
- Leaf Node=Scenario2Node
- Tree node sequence:
- RootNode
- Scenario2Node
- Stage= FirstStage Cost=119058.6415
- Stage= SecondStage Cost=20140.0000
- Total scenario cost=139198.6415
-
- Name=Scenario3
- Probability=0.1000
- Leaf Node=Scenario3Node
- Tree node sequence:
- RootNode
- Scenario3Node
- Stage= FirstStage Cost=118481.2344
- Stage= SecondStage Cost=21290.0000
- Total scenario cost=139771.2344
-
- Name=Scenario4
- Probability=0.1000
- Leaf Node=Scenario4Node
- Tree node sequence:
- RootNode
- Scenario4Node
- Stage= FirstStage Cost=118602.6582
- Stage= SecondStage Cost=23080.0000
- Total scenario cost=141682.6582
-
- Name=Scenario5
- Probability=0.1000
- Leaf Node=Scenario5Node
- Tree node sequence:
- RootNode
- Scenario5Node
- Stage= FirstStage Cost=124478.4400
- Stage= SecondStage Cost=22870.0000
- Total scenario cost=147348.4400
-
- Name=Scenario6
- Probability=0.1000
- Leaf Node=Scenario6Node
- Tree node sequence:
- RootNode
- Scenario6Node
- Stage= FirstStage Cost=121707.2130
- Stage= SecondStage Cost=22470.0000
- Total scenario cost=144177.2130
-
- Name=Scenario7
- Probability=0.1000
- Leaf Node=Scenario7Node
- Tree node sequence:
- RootNode
- Scenario7Node
- Stage= FirstStage Cost=121302.4605
- Stage= SecondStage Cost=21330.0000
- Total scenario cost=142632.4605
-
- Name=Scenario8
- Probability=0.1000
- Leaf Node=Scenario8Node
- Tree node sequence:
- RootNode
- Scenario8Node
- Stage= FirstStage Cost=121765.7797
- Stage= SecondStage Cost=22730.0000
- Total scenario cost=144495.7797
-
- Name=Scenario9
- Probability=0.1000
- Leaf Node=Scenario9Node
- Tree node sequence:
- RootNode
- Scenario9Node
- Stage= FirstStage Cost=121639.1375
- Stage= SecondStage Cost=18840.0000
- Total scenario cost=140479.1375
-
-----------------------------------------------------
-
-
-Total PH execution time=103.18 seconds
-
-
-Total execution time=105.77 seconds
diff --git a/pyomo/pysp/tests/unit/baselines/networkflow1ef10_linearized_cplex_with_bundles_with_phpyro.baseline-a b/pyomo/pysp/tests/unit/baselines/networkflow1ef10_linearized_cplex_with_bundles_with_phpyro.baseline-a
deleted file mode 100644
index 92e8e0307a5..00000000000
--- a/pyomo/pysp/tests/unit/baselines/networkflow1ef10_linearized_cplex_with_bundles_with_phpyro.baseline-a
+++ /dev/null
@@ -1,490 +0,0 @@
-Importing module=/Users/ghackebeil/Projects/Pyomo/pyomo/examples/pysp/networkflow/config/aggregategetter.py
-Module successfully loaded
-Importing module=/Users/ghackebeil/Projects/Pyomo/pyomo/examples/pysp/networkflow/config/rhosettermixed.py
-Module successfully loaded
-Importing module=/Users/ghackebeil/Projects/Pyomo/pyomo/examples/pysp/networkflow/config/xboundsetter.py
-Module successfully loaded
-Client assigned dispatcher with URI=PYRO://127.0.0.1:52889/86fdc201ef4522e2f7bc817d847786ad05
-Initializing PH
-
-Transmitting user aggregate callback invocations to phsolverservers
-Broadcasting final aggregate data to phsolverservers
-Transmitting user rho callback invocations to phsolverservers
-Transmitting user bound callback invocations to phsolverservers
-WW PH Extension: Loading user-specified configuration from file=/home/gahacke/Project/Pyomo/jenkins/src/pyomo/examples/pysp/networkflow/config/wwph-aggressivefixing.cfg
-WW PH Extension: Loading variable suffixes from file=/home/gahacke/Project/Pyomo/jenkins/src/pyomo/examples/pysp/networkflow/config/wwph.suffixes
-Starting PH
-
-Initiating PH iteration=0
-Number of discrete variables fixed=0 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 120970.4440 Max-Min=18660.78
-Converger= Term diff value is 228.6928 - threshold reached=False
-Cumulative run-time=38.07 seconds
-
-Initiating PH iteration=1
-WW PH Extension: Setting mipgap to 0.1000000, as specified in the configuration file
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 125706.0607 Max-Min=20101.64
-Converger= Term diff value is 192.1309 - threshold reached=False
-Cumulative run-time=43.64 seconds
-
-Initiating PH iteration=2
-WW PH Extension: Setting mipgap to 0.0840279, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=12 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 125206.0486 Max-Min=18565.45
-Converger= Term diff value is 56.9963 - threshold reached=False
-Cumulative run-time=48.00 seconds
-
-Initiating PH iteration=3
-WW PH Extension: Setting mipgap to 0.0249944, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=16 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 123735.4272 Max-Min=16140.00
-Converger= Term diff value is 60.9946 - threshold reached=False
-Cumulative run-time=58.74 seconds
-
-Initiating PH iteration=4
-WW PH Extension: Setting mipgap to 0.0267411, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=22 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 124244.6383 Max-Min=14352.87
-Converger= Term diff value is 53.2038 - threshold reached=False
-Cumulative run-time=67.85 seconds
-
-Initiating PH iteration=5
-WW PH Extension: Setting mipgap to 0.0233377, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=24 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 124964.5526 Max-Min=12929.45
-Converger= Term diff value is 53.0762 - threshold reached=False
-Cumulative run-time=73.46 seconds
-
-Initiating PH iteration=6
-WW PH Extension: Setting mipgap to 0.0232820, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=26 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 125265.5953 Max-Min=10796.72
-Converger= Term diff value is 33.7493 - threshold reached=False
-Cumulative run-time=76.98 seconds
-
-Initiating PH iteration=7
-WW PH Extension: Setting mipgap to 0.0148390, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=30 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 126895.8494 Max-Min= 8004.71
-Converger= Term diff value is 57.4644 - threshold reached=False
-Cumulative run-time=81.33 seconds
-
-Initiating PH iteration=8
-WW PH Extension: Setting mipgap to 0.0251989, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=30 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 127800.1625 Max-Min= 7454.76
-Converger= Term diff value is 21.6434 - threshold reached=False
-Cumulative run-time=86.21 seconds
-
-Initiating PH iteration=9
-WW PH Extension: Setting mipgap to 0.0095506, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=30 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 128742.5007 Max-Min= 6548.01
-Converger= Term diff value is 27.8884 - threshold reached=False
-Cumulative run-time=89.51 seconds
-
-Initiating PH iteration=10
-WW PH Extension: Setting mipgap to 0.0122787, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=30 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 130041.0217 Max-Min= 5989.40
-Converger= Term diff value is 25.4683 - threshold reached=False
-Cumulative run-time=92.25 seconds
-Halting PH - reached maximal iteration count=10
-
-Number of discrete variables fixed before final plugin calls=30 (total=30)
-Number of continuous variables fixed before final plugin calls=0 (total=30)
-PH complete
-
-Convergence history:
-Converger= Term diff
-Iteration Metric Value
- 0 228.6928
- 1 192.1309
- 2 56.9963
- 3 60.9946
- 4 53.2038
- 5 53.0762
- 6 33.7493
- 7 57.4644
- 8 21.6434
- 9 27.8884
- 10 25.4683
-
-
-Final number of discrete variables fixed=30 (total=30)
-Final number of continuous variables fixed=0 (total=30)
-
-Computing objective inner bound at xhat solution
-At least one sub-problem solve time was undefined - skipping timing statistics
-At least one sub-problem solve time was undefined - skipping timing statistics
- ** At least one sub-problem failed to solve! **
- Failed sub-problems:
- Bundle1
- Bundle3
-
-Failed to compute bound at xhat due to one or more solve failures. Restoring PH to solution at final iteration.
-Generating scenario tree solution from scenario averages
-
-Scenario tree variable values:
-
- Stage: FirstStage
- (Scenarios: Scenario1 Scenario2 Scenario3 Scenario4 Scenario5 Scenario6 Scenario7 Scenario8 Scenario9 Scenario10 )
- Variable: b0
- Index: [A,B] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [B,A] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [B,C] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [B,E] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [C,B] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [C,D] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [D,C] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [D,E] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [E,B] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [E,D] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [E,F] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [F,E] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [F,G] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [F,H] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [G,F] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [G,I] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [G,J] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [H,F] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [H,I] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [I,G] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [I,H] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [J,G] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- (Scenarios: Scenario1 Scenario2 Scenario3 Scenario4 Scenario5 Scenario6 Scenario7 Scenario8 Scenario9 Scenario10 )
- Variable: x
- Index: [A,B] Values: 34.7300 34.7300 32.9063 32.9063 32.0100 32.0100 32.9063 32.9063 32.1100 32.1100
-
- Index: [B,A] Values: 34.7300 34.7300 32.9063 32.9063 32.0100 32.0100 32.9063 32.9063 32.1100 32.1100
-
- Index: [B,C] Values: 29.9602 29.9602 26.2138 26.2138 27.6800 27.6800 28.6100 28.6100 30.7900 30.7900
-
- Index: [B,E] Values: 69.1271 69.1271 65.9415 65.9415 64.4300 64.4300 67.3300 67.3300 72.6300 72.6300
-
- Index: [C,B] Values: 29.9602 29.9602 26.2138 26.2138 27.6800 27.6800 28.6100 28.6100 30.7900 30.7900
-
- Index: [C,D] Values: 13.6129 13.6129 13.6129 13.6129 11.2400 11.2400 13.6129 13.6129 13.6129 13.6129
-
- Index: [D,C] Values: 13.6129 13.6129 13.6129 13.6129 11.2400 11.2400 13.6129 13.6129 13.6129 13.6129
-
- Index: [D,E] Values: 33.3398 33.3398 33.3398 33.3398 29.1723 29.1723 33.3398 33.3398 30.9700 30.9700
-
- Index: [E,B] Values: 69.1271 69.1271 65.9415 65.9415 64.4300 64.4300 67.3300 67.3300 72.6300 72.6300
-
- Index: [E,D] Values: 33.3398 33.3398 33.3398 33.3398 29.1723 29.1723 33.3398 33.3398 30.9700 30.9700
-
- Index: [E,F] Values: 97.0800 97.0800 106.8677 106.8677 97.1517 97.1517 97.1517 97.1517 97.1517 97.1517
-
- Index: [F,E] Values: 97.0800 97.0800 106.8677 106.8677 97.1517 97.1517 97.1517 97.1517 97.1517 97.1517
-
- Index: [F,G] Values: 74.7000 74.7000 73.4436 73.4436 72.5673 72.5673 73.4436 73.4436 73.4436 73.4436
-
- Index: [F,H] Values: 29.0800 29.0800 28.4800 28.4800 28.5627 28.5627 28.9200 28.9200 28.9600 28.9600
-
- Index: [G,F] Values: 74.7000 74.7000 73.4436 73.4436 72.5673 72.5673 73.4436 73.4436 73.4436 73.4436
-
- Index: [G,I] Values: 31.2400 31.2400 28.7500 28.7500 29.3373 29.3373 29.1800 29.1800 29.2000 29.2000
-
- Index: [G,J] Values: 35.4800 35.4800 32.9557 32.9557 32.6900 32.6900 32.9557 32.9557 32.9557 32.9557
-
- Index: [H,F] Values: 29.0800 29.0800 28.4800 28.4800 28.5627 28.5627 28.9200 28.9200 28.9600 28.9600
-
- Index: [H,I] Values: 5.4400 5.4400 3.6827 3.6827 3.6827 3.6827 3.2224 3.2224 3.6827 3.6827
-
- Index: [I,G] Values: 31.2400 31.2400 28.7500 28.7500 29.3373 29.3373 29.1800 29.1800 29.2000 29.2000
-
- Index: [I,H] Values: 5.4400 5.4400 3.6827 3.6827 3.6827 3.6827 3.2224 3.2224 3.6827 3.6827
-
- Index: [J,G] Values: 35.4800 35.4800 32.9557 32.9557 32.6900 32.6900 32.9557 32.9557 32.9557 32.9557
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: Scenario1 Scenario2 Scenario3 Scenario4 Scenario5 Scenario6 Scenario7 Scenario8 Scenario9 Scenario10 )
- Values: 132650.6595 132650.6595 130600.4777 130600.4777 126661.2628 126661.2628 129495.1942 129495.1942 130797.5141 130797.5141 Max-Min: 5989.3966 Avg: 130041.0217
-Scenario tree costs:
-Scenario Tree Costs
-----------------------------------------------------
-Tree Nodes:
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- Scenario10Node
- Scenario1Node
- Scenario2Node
- Scenario3Node
- Scenario4Node
- Scenario5Node
- Scenario6Node
- Scenario7Node
- Scenario8Node
- Scenario9Node
- Scenarios:
- Scenario1
- Scenario10
- Scenario2
- Scenario3
- Scenario4
- Scenario5
- Scenario6
- Scenario7
- Scenario8
- Scenario9
- Expected cost of (sub)tree rooted at node=155191.6595
-
- Name=Scenario10Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario10
- Expected cost of (sub)tree rooted at node=20270.0000
-
- Name=Scenario1Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario1
- Expected cost of (sub)tree rooted at node=22310.0000
-
- Name=Scenario2Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario2
- Expected cost of (sub)tree rooted at node=24620.0000
-
- Name=Scenario3Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario3
- Expected cost of (sub)tree rooted at node=22410.0000
-
- Name=Scenario4Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario4
- Expected cost of (sub)tree rooted at node=23080.0000
-
- Name=Scenario5Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario5
- Expected cost of (sub)tree rooted at node=25110.0000
-
- Name=Scenario6Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario6
- Expected cost of (sub)tree rooted at node=22470.0000
-
- Name=Scenario7Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario7
- Expected cost of (sub)tree rooted at node=21330.0000
-
- Name=Scenario8Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario8
- Expected cost of (sub)tree rooted at node=22730.0000
-
- Name=Scenario9Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario9
- Expected cost of (sub)tree rooted at node=21080.0000
-
-----------------------------------------------------
-Scenarios:
-
- Name=Scenario1
- Probability=0.1000
- Leaf Node=Scenario1Node
- Tree node sequence:
- RootNode
- Scenario1Node
- Stage= FirstStage Cost=132650.6595
- Stage= SecondStage Cost=22310.0000
- Total scenario cost=154960.6595
-
- Name=Scenario10
- Probability=0.1000
- Leaf Node=Scenario10Node
- Tree node sequence:
- RootNode
- Scenario10Node
- Stage= FirstStage Cost=130797.5141
- Stage= SecondStage Cost=20270.0000
- Total scenario cost=151067.5141
-
- Name=Scenario2
- Probability=0.1000
- Leaf Node=Scenario2Node
- Tree node sequence:
- RootNode
- Scenario2Node
- Stage= FirstStage Cost=132650.6595
- Stage= SecondStage Cost=24620.0000
- Total scenario cost=157270.6595
-
- Name=Scenario3
- Probability=0.1000
- Leaf Node=Scenario3Node
- Tree node sequence:
- RootNode
- Scenario3Node
- Stage= FirstStage Cost=130600.4777
- Stage= SecondStage Cost=22410.0000
- Total scenario cost=153010.4777
-
- Name=Scenario4
- Probability=0.1000
- Leaf Node=Scenario4Node
- Tree node sequence:
- RootNode
- Scenario4Node
- Stage= FirstStage Cost=130600.4777
- Stage= SecondStage Cost=23080.0000
- Total scenario cost=153680.4777
-
- Name=Scenario5
- Probability=0.1000
- Leaf Node=Scenario5Node
- Tree node sequence:
- RootNode
- Scenario5Node
- Stage= FirstStage Cost=126661.2628
- Stage= SecondStage Cost=25110.0000
- Total scenario cost=151771.2628
-
- Name=Scenario6
- Probability=0.1000
- Leaf Node=Scenario6Node
- Tree node sequence:
- RootNode
- Scenario6Node
- Stage= FirstStage Cost=126661.2628
- Stage= SecondStage Cost=22470.0000
- Total scenario cost=149131.2628
-
- Name=Scenario7
- Probability=0.1000
- Leaf Node=Scenario7Node
- Tree node sequence:
- RootNode
- Scenario7Node
- Stage= FirstStage Cost=129495.1942
- Stage= SecondStage Cost=21330.0000
- Total scenario cost=150825.1942
-
- Name=Scenario8
- Probability=0.1000
- Leaf Node=Scenario8Node
- Tree node sequence:
- RootNode
- Scenario8Node
- Stage= FirstStage Cost=129495.1942
- Stage= SecondStage Cost=22730.0000
- Total scenario cost=152225.1942
-
- Name=Scenario9
- Probability=0.1000
- Leaf Node=Scenario9Node
- Tree node sequence:
- RootNode
- Scenario9Node
- Stage= FirstStage Cost=130797.5141
- Stage= SecondStage Cost=21080.0000
- Total scenario cost=151877.5141
-
-----------------------------------------------------
-
-
-Total PH execution time=94.99 seconds
-
-
-Total execution time=98.35 seconds
diff --git a/pyomo/pysp/tests/unit/baselines/networkflow1ef10_linearized_cplex_with_bundles_with_phpyro.baseline-b b/pyomo/pysp/tests/unit/baselines/networkflow1ef10_linearized_cplex_with_bundles_with_phpyro.baseline-b
deleted file mode 100755
index 5db414c5fe2..00000000000
--- a/pyomo/pysp/tests/unit/baselines/networkflow1ef10_linearized_cplex_with_bundles_with_phpyro.baseline-b
+++ /dev/null
@@ -1,474 +0,0 @@
-Importing module=/Users/ghackebeil/Projects/Pyomo/pyomo/examples/pysp/networkflow/config/aggregategetter.py
-Module successfully loaded
-Importing module=/Users/ghackebeil/Projects/Pyomo/pyomo/examples/pysp/networkflow/config/rhosettermixed.py
-Module successfully loaded
-Importing module=/Users/ghackebeil/Projects/Pyomo/pyomo/examples/pysp/networkflow/config/xboundsetter.py
-Module successfully loaded
-Client assigned dispatcher with URI=PYRO::PyUtilibServer.dispatcher.3a85ed4a-2b08-4f58-8ed3-cf2d6d174d5f@localhost:52435
-Initializing PH
-
-Transmitting user aggregate callback invocations to phsolverservers
-Broadcasting final aggregate data to phsolverservers
-Transmitting user rho callback invocations to phsolverservers
-Transmitting user bound callback invocations to phsolverservers
-WW PH Extension: Loading user-specified configuration from file=/home/hudson/slave/workspace/Pyomo_trunk_python3.4_snotra_parallel/src/pyomo/examples/pysp/networkflow/config/wwph-aggressivefixing.cfg
-WW PH Extension: Loading variable suffixes from file=/home/hudson/slave/workspace/Pyomo_trunk_python3.4_snotra_parallel/src/pyomo/examples/pysp/networkflow/config/wwph.suffixes
-Starting PH
-
-Initiating PH iteration=0
-Number of discrete variables fixed=0 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 120970.4440 Max-Min=18660.78
-Converger= Term diff value is 228.6928 - threshold reached=False
-Cumulative run-time=21.69 seconds
-
-Initiating PH iteration=1
-WW PH Extension: Setting mipgap to 0.1000000, as specified in the configuration file
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 125192.4855 Max-Min=20879.35
-Converger= Term diff value is 181.7657 - threshold reached=False
-Cumulative run-time=24.92 seconds
-
-Initiating PH iteration=2
-WW PH Extension: Setting mipgap to 0.0794999, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=14 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 124498.7507 Max-Min=12838.57
-Converger= Term diff value is 94.5785 - threshold reached=False
-Cumulative run-time=30.22 seconds
-
-Initiating PH iteration=3
-WW PH Extension: Setting mipgap to 0.0414122, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=18 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 124060.7430 Max-Min=17309.55
-Converger= Term diff value is 96.8763 - threshold reached=False
-Cumulative run-time=34.79 seconds
-
-Initiating PH iteration=4
-WW PH Extension: Setting mipgap to 0.0424160, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=20 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 124382.5376 Max-Min=10650.53
-Converger= Term diff value is 63.3176 - threshold reached=False
-Cumulative run-time=38.87 seconds
-
-Initiating PH iteration=5
-WW PH Extension: Setting mipgap to 0.0277559, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=22 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 123742.7221 Max-Min=13493.67
-Converger= Term diff value is 42.2137 - threshold reached=False
-Cumulative run-time=41.12 seconds
-
-Initiating PH iteration=6
-WW PH Extension: Setting mipgap to 0.0185367, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=26 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 124535.7478 Max-Min= 9635.34
-Converger= Term diff value is 38.5211 - threshold reached=False
-Cumulative run-time=42.86 seconds
-
-Initiating PH iteration=7
-WW PH Extension: Setting mipgap to 0.0169236, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=28 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 125644.3185 Max-Min=10383.14
-Converger= Term diff value is 28.6729 - threshold reached=False
-Cumulative run-time=44.47 seconds
-
-Initiating PH iteration=8
-WW PH Extension: Setting mipgap to 0.0126214, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=28 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 127042.5622 Max-Min= 9180.30
-Converger= Term diff value is 25.4320 - threshold reached=False
-Cumulative run-time=46.09 seconds
-
-Initiating PH iteration=9
-WW PH Extension: Setting mipgap to 0.0112056, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=30 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 128253.0981 Max-Min= 8601.63
-Converger= Term diff value is 26.0326 - threshold reached=False
-Cumulative run-time=47.48 seconds
-
-Initiating PH iteration=10
-WW PH Extension: Setting mipgap to 0.0114680, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=30 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 128352.5846 Max-Min= 7116.03
-Converger= Term diff value is 20.5476 - threshold reached=False
-Cumulative run-time=48.85 seconds
-Halting PH - reached maximal iteration count=10
-
-Number of discrete variables fixed before final plugin calls=30 (total=30)
-Number of continuous variables fixed before final plugin calls=0 (total=30)
-PH complete
-
-Convergence history:
-Converger= Term diff
-Iteration Metric Value
- 0 228.6928
- 1 181.7657
- 2 94.5785
- 3 96.8763
- 4 63.3176
- 5 42.2137
- 6 38.5211
- 7 28.6729
- 8 25.4320
- 9 26.0326
- 10 20.5476
-
-
-Final number of discrete variables fixed=30 (total=30)
-Final number of continuous variables fixed=0 (total=30)
-
-Computing objective inner bound at xhat solution
-At least one sub-problem solve time was undefined - skipping timing statistics
-At least one sub-problem solve time was undefined - skipping timing statistics
- ** At least one sub-problem failed to solve! **
- Failed sub-problems:
- Bundle1
- Bundle3
-
-Failed to compute bound at xhat due to one or more solve failures. Restoring PH to solution at final iteration.
-Generating scenario tree solution from scenario averages
-
-Scenario tree variable values:
-
- Stage: FirstStage
- (Scenarios: Scenario1 Scenario2 Scenario3 Scenario4 Scenario5 Scenario6 Scenario7 Scenario8 Scenario9 Scenario10 )
- Variable: b0
- Index: [A,B] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [B,A] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [B,E] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [C,D] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [D,C] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [D,E] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [E,B] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [E,D] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [E,F] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [F,E] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [F,G] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [F,H] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [G,F] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [G,I] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [G,J] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [H,F] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [I,G] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [J,G] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- (Scenarios: Scenario1 Scenario2 Scenario3 Scenario4 Scenario5 Scenario6 Scenario7 Scenario8 Scenario9 Scenario10 )
- Variable: x
- Index: [A,B] Values: 34.7300 34.7300 32.9063 32.9063 32.0100 32.0100 32.9063 32.9063 32.1100 32.1100
-
- Index: [B,A] Values: 34.7300 34.7300 32.9063 32.9063 32.0100 32.0100 32.9063 32.9063 32.1100 32.1100
-
- Index: [B,E] Values: 62.9500 62.9500 60.0874 60.0874 57.7900 57.7900 60.0874 60.0874 55.8200 55.8200
-
- Index: [C,D] Values: 36.5300 36.5300 32.4008 32.4008 31.3200 31.3200 32.4008 32.4008 30.7900 30.7900
-
- Index: [D,C] Values: 36.5300 36.5300 32.4008 32.4008 31.3200 31.3200 32.4008 32.4008 30.7900 30.7900
-
- Index: [D,E] Values: 63.3000 63.3000 58.3053 58.3053 56.7100 56.7100 58.3053 58.3053 55.3200 55.3200
-
- Index: [E,B] Values: 62.9500 62.9500 60.0874 60.0874 57.7900 57.7900 60.0874 60.0874 55.8200 55.8200
-
- Index: [E,D] Values: 63.3000 63.3000 58.3053 58.3053 56.7100 56.7100 58.3053 58.3053 55.3200 55.3200
-
- Index: [E,F] Values: 97.0800 97.0800 97.0329 97.0329 97.0329 97.0329 97.0329 97.0329 99.5113 99.5113
-
- Index: [F,E] Values: 97.0800 97.0800 97.0329 97.0329 97.0329 97.0329 97.0329 97.0329 99.5113 99.5113
-
- Index: [F,G] Values: 80.1400 80.1400 79.1023 79.1023 76.2500 76.2500 79.1023 79.1023 79.1023 79.1023
-
- Index: [F,H] Values: 34.5200 34.5200 32.4801 32.4801 31.9400 31.9400 32.4801 32.4801 31.4900 31.4900
-
- Index: [G,F] Values: 80.1400 80.1400 79.1023 79.1023 76.2500 76.2500 79.1023 79.1023 79.1023 79.1023
-
- Index: [G,I] Values: 32.9000 32.9000 32.0429 32.0429 33.0200 33.0200 32.0429 32.0429 30.8400 30.8400
-
- Index: [G,J] Values: 35.4800 35.4800 32.9647 32.9647 32.6900 32.6900 32.9647 32.9647 32.9647 32.9647
-
- Index: [H,F] Values: 34.5200 34.5200 32.4801 32.4801 31.9400 31.9400 32.4801 32.4801 31.4900 31.4900
-
- Index: [I,G] Values: 32.9000 32.9000 32.0429 32.0429 33.0200 33.0200 32.0429 32.0429 30.8400 30.8400
-
- Index: [J,G] Values: 35.4800 35.4800 32.9647 32.9647 32.6900 32.6900 32.9647 32.9647 32.9647 32.9647
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: Scenario1 Scenario2 Scenario3 Scenario4 Scenario5 Scenario6 Scenario7 Scenario8 Scenario9 Scenario10 )
- Values: 133059.5200 133059.5200 128253.0981 128253.0981 126253.7192 126253.7192 128253.0981 128253.0981 125943.4874 125943.4874 Max-Min: 7116.0326 Avg: 128352.5846
-Scenario tree costs:
-Scenario Tree Costs
-----------------------------------------------------
-Tree Nodes:
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- Scenario10Node
- Scenario1Node
- Scenario2Node
- Scenario3Node
- Scenario4Node
- Scenario5Node
- Scenario6Node
- Scenario7Node
- Scenario8Node
- Scenario9Node
- Scenarios:
- Scenario1
- Scenario10
- Scenario2
- Scenario3
- Scenario4
- Scenario5
- Scenario6
- Scenario7
- Scenario8
- Scenario9
- Expected cost of (sub)tree rooted at node=153600.5200
-
- Name=Scenario10Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario10
- Expected cost of (sub)tree rooted at node=21310.0000
-
- Name=Scenario1Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario1
- Expected cost of (sub)tree rooted at node=17710.0000
-
- Name=Scenario2Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario2
- Expected cost of (sub)tree rooted at node=20060.0000
-
- Name=Scenario3Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario3
- Expected cost of (sub)tree rooted at node=20090.0000
-
- Name=Scenario4Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario4
- Expected cost of (sub)tree rooted at node=23000.0000
-
- Name=Scenario5Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario5
- Expected cost of (sub)tree rooted at node=20510.0000
-
- Name=Scenario6Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario6
- Expected cost of (sub)tree rooted at node=22350.0000
-
- Name=Scenario7Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario7
- Expected cost of (sub)tree rooted at node=18970.0000
-
- Name=Scenario8Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario8
- Expected cost of (sub)tree rooted at node=22690.0000
-
- Name=Scenario9Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario9
- Expected cost of (sub)tree rooted at node=18720.0000
-
-----------------------------------------------------
-Scenarios:
-
- Name=Scenario1
- Probability=0.1000
- Leaf Node=Scenario1Node
- Tree node sequence:
- RootNode
- Scenario1Node
- Stage= FirstStage Cost=133059.5200
- Stage= SecondStage Cost=17710.0000
- Total scenario cost=150769.5200
-
- Name=Scenario10
- Probability=0.1000
- Leaf Node=Scenario10Node
- Tree node sequence:
- RootNode
- Scenario10Node
- Stage= FirstStage Cost=125943.4874
- Stage= SecondStage Cost=21310.0000
- Total scenario cost=147253.4874
-
- Name=Scenario2
- Probability=0.1000
- Leaf Node=Scenario2Node
- Tree node sequence:
- RootNode
- Scenario2Node
- Stage= FirstStage Cost=133059.5200
- Stage= SecondStage Cost=20060.0000
- Total scenario cost=153119.5200
-
- Name=Scenario3
- Probability=0.1000
- Leaf Node=Scenario3Node
- Tree node sequence:
- RootNode
- Scenario3Node
- Stage= FirstStage Cost=128253.0981
- Stage= SecondStage Cost=20090.0000
- Total scenario cost=148343.0981
-
- Name=Scenario4
- Probability=0.1000
- Leaf Node=Scenario4Node
- Tree node sequence:
- RootNode
- Scenario4Node
- Stage= FirstStage Cost=128253.0981
- Stage= SecondStage Cost=23000.0000
- Total scenario cost=151253.0981
-
- Name=Scenario5
- Probability=0.1000
- Leaf Node=Scenario5Node
- Tree node sequence:
- RootNode
- Scenario5Node
- Stage= FirstStage Cost=126253.7192
- Stage= SecondStage Cost=20510.0000
- Total scenario cost=146763.7192
-
- Name=Scenario6
- Probability=0.1000
- Leaf Node=Scenario6Node
- Tree node sequence:
- RootNode
- Scenario6Node
- Stage= FirstStage Cost=126253.7192
- Stage= SecondStage Cost=22350.0000
- Total scenario cost=148603.7192
-
- Name=Scenario7
- Probability=0.1000
- Leaf Node=Scenario7Node
- Tree node sequence:
- RootNode
- Scenario7Node
- Stage= FirstStage Cost=128253.0981
- Stage= SecondStage Cost=18970.0000
- Total scenario cost=147223.0981
-
- Name=Scenario8
- Probability=0.1000
- Leaf Node=Scenario8Node
- Tree node sequence:
- RootNode
- Scenario8Node
- Stage= FirstStage Cost=128253.0981
- Stage= SecondStage Cost=22690.0000
- Total scenario cost=150943.0981
-
- Name=Scenario9
- Probability=0.1000
- Leaf Node=Scenario9Node
- Tree node sequence:
- RootNode
- Scenario9Node
- Stage= FirstStage Cost=125943.4874
- Stage= SecondStage Cost=18720.0000
- Total scenario cost=144663.4874
-
-----------------------------------------------------
-
-
-Total PH execution time=50.86 seconds
-
-
-Total execution time=58.93 seconds
diff --git a/pyomo/pysp/tests/unit/baselines/networkflow1ef10_linearized_cplex_with_bundles_with_phpyro.baseline-c b/pyomo/pysp/tests/unit/baselines/networkflow1ef10_linearized_cplex_with_bundles_with_phpyro.baseline-c
deleted file mode 100644
index bd62713bf08..00000000000
--- a/pyomo/pysp/tests/unit/baselines/networkflow1ef10_linearized_cplex_with_bundles_with_phpyro.baseline-c
+++ /dev/null
@@ -1,490 +0,0 @@
-Importing module=/Users/ghackebeil/Projects/Pyomo/pyomo/examples/pysp/networkflow/config/aggregategetter.py
-Module successfully loaded
-Importing module=/Users/ghackebeil/Projects/Pyomo/pyomo/examples/pysp/networkflow/config/rhosettermixed.py
-Module successfully loaded
-Importing module=/Users/ghackebeil/Projects/Pyomo/pyomo/examples/pysp/networkflow/config/xboundsetter.py
-Module successfully loaded
-Client assigned dispatcher with URI=PYRO::PyUtilibServer.dispatcher.7c788ec5-81ac-4073-9191-30523cb7ca91@127.0.0.1:52733
-Initializing PH
-
-Transmitting user aggregate callback invocations to phsolverservers
-Broadcasting final aggregate data to phsolverservers
-Transmitting user rho callback invocations to phsolverservers
-Transmitting user bound callback invocations to phsolverservers
-WW PH Extension: Loading user-specified configuration from file=/Users/ghackebeil/Projects/Pyomo/pyomo/examples/pysp/networkflow/config/wwph-aggressivefixing.cfg
-WW PH Extension: Loading variable suffixes from file=/Users/ghackebeil/Projects/Pyomo/pyomo/examples/pysp/networkflow/config/wwph.suffixes
-Starting PH
-
-Initiating PH iteration=0
-Number of discrete variables fixed=0 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 120970.4440 Max-Min=18660.78
-Converger= Term diff value is 228.6928 - threshold reached=False
-Cumulative run-time=26.86 seconds
-
-Initiating PH iteration=1
-WW PH Extension: Setting mipgap to 0.1000000, as specified in the configuration file
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 125706.0607 Max-Min=20101.64
-Converger= Term diff value is 192.1309 - threshold reached=False
-Cumulative run-time=29.98 seconds
-
-Initiating PH iteration=2
-WW PH Extension: Setting mipgap to 0.0840279, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=12 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 125206.0486 Max-Min=18565.45
-Converger= Term diff value is 56.9963 - threshold reached=False
-Cumulative run-time=34.04 seconds
-
-Initiating PH iteration=3
-WW PH Extension: Setting mipgap to 0.0249944, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=16 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 123735.4272 Max-Min=16140.00
-Converger= Term diff value is 60.9946 - threshold reached=False
-Cumulative run-time=43.17 seconds
-
-Initiating PH iteration=4
-WW PH Extension: Setting mipgap to 0.0267411, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=22 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 124244.6383 Max-Min=14352.87
-Converger= Term diff value is 53.2038 - threshold reached=False
-Cumulative run-time=48.58 seconds
-
-Initiating PH iteration=5
-WW PH Extension: Setting mipgap to 0.0233377, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=24 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 124964.5526 Max-Min=12929.45
-Converger= Term diff value is 53.0762 - threshold reached=False
-Cumulative run-time=52.06 seconds
-
-Initiating PH iteration=6
-WW PH Extension: Setting mipgap to 0.0232820, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=26 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 125265.5953 Max-Min=10796.72
-Converger= Term diff value is 33.7493 - threshold reached=False
-Cumulative run-time=54.47 seconds
-
-Initiating PH iteration=7
-WW PH Extension: Setting mipgap to 0.0148390, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=30 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 126895.8494 Max-Min= 8004.71
-Converger= Term diff value is 57.4644 - threshold reached=False
-Cumulative run-time=56.67 seconds
-
-Initiating PH iteration=8
-WW PH Extension: Setting mipgap to 0.0251989, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=30 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 127800.1625 Max-Min= 7454.76
-Converger= Term diff value is 21.6434 - threshold reached=False
-Cumulative run-time=58.72 seconds
-
-Initiating PH iteration=9
-WW PH Extension: Setting mipgap to 0.0095506, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=30 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 128742.5007 Max-Min= 6548.01
-Converger= Term diff value is 27.8884 - threshold reached=False
-Cumulative run-time=60.97 seconds
-
-Initiating PH iteration=10
-WW PH Extension: Setting mipgap to 0.0122787, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=30 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 130041.0217 Max-Min= 5989.40
-Converger= Term diff value is 25.4683 - threshold reached=False
-Cumulative run-time=63.23 seconds
-Halting PH - reached maximal iteration count=10
-
-Number of discrete variables fixed before final plugin calls=30 (total=30)
-Number of continuous variables fixed before final plugin calls=0 (total=30)
-PH complete
-
-Convergence history:
-Converger= Term diff
-Iteration Metric Value
- 0 228.6928
- 1 192.1309
- 2 56.9963
- 3 60.9946
- 4 53.2038
- 5 53.0762
- 6 33.7493
- 7 57.4644
- 8 21.6434
- 9 27.8884
- 10 25.4683
-
-
-Final number of discrete variables fixed=30 (total=30)
-Final number of continuous variables fixed=0 (total=30)
-
-Computing objective inner bound at xhat solution
-At least one sub-problem solve time was undefined - skipping timing statistics
-At least one sub-problem solve time was undefined - skipping timing statistics
- ** At least one sub-problem failed to solve! **
- Failed sub-problems:
- Bundle1
- Bundle3
-
-Failed to compute bound at xhat due to one or more solve failures. Restoring PH to solution at final iteration.
-Generating scenario tree solution from scenario averages
-
-Scenario tree variable values:
-
- Stage: FirstStage
- (Scenarios: Scenario1 Scenario2 Scenario3 Scenario4 Scenario5 Scenario6 Scenario7 Scenario8 Scenario9 Scenario10 )
- Variable: b0
- Index: [A,B] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [B,A] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [B,C] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [B,E] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [C,B] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [C,D] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [D,C] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [D,E] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [E,B] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [E,D] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [E,F] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [F,E] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [F,G] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [F,H] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [G,F] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [G,I] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [G,J] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [H,F] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [H,I] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [I,G] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [I,H] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [J,G] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- (Scenarios: Scenario1 Scenario2 Scenario3 Scenario4 Scenario5 Scenario6 Scenario7 Scenario8 Scenario9 Scenario10 )
- Variable: x
- Index: [A,B] Values: 34.7300 34.7300 32.9063 32.9063 32.0100 32.0100 32.9063 32.9063 32.1100 32.1100
-
- Index: [B,A] Values: 34.7300 34.7300 32.9063 32.9063 32.0100 32.0100 32.9063 32.9063 32.1100 32.1100
-
- Index: [B,C] Values: 29.9602 29.9602 26.2138 26.2138 27.6800 27.6800 28.6100 28.6100 30.7900 30.7900
-
- Index: [B,E] Values: 69.1271 69.1271 65.9415 65.9415 64.4300 64.4300 67.3300 67.3300 72.6300 72.6300
-
- Index: [C,B] Values: 29.9602 29.9602 26.2138 26.2138 27.6800 27.6800 28.6100 28.6100 30.7900 30.7900
-
- Index: [C,D] Values: 13.6129 13.6129 13.6129 13.6129 11.2400 11.2400 13.6129 13.6129 13.6129 13.6129
-
- Index: [D,C] Values: 13.6129 13.6129 13.6129 13.6129 11.2400 11.2400 13.6129 13.6129 13.6129 13.6129
-
- Index: [D,E] Values: 33.3398 33.3398 33.3398 33.3398 29.1723 29.1723 33.3398 33.3398 30.9700 30.9700
-
- Index: [E,B] Values: 69.1271 69.1271 65.9415 65.9415 64.4300 64.4300 67.3300 67.3300 72.6300 72.6300
-
- Index: [E,D] Values: 33.3398 33.3398 33.3398 33.3398 29.1723 29.1723 33.3398 33.3398 30.9700 30.9700
-
- Index: [E,F] Values: 97.0800 97.0800 106.8677 106.8677 97.1517 97.1517 97.1517 97.1517 97.1517 97.1517
-
- Index: [F,E] Values: 97.0800 97.0800 106.8677 106.8677 97.1517 97.1517 97.1517 97.1517 97.1517 97.1517
-
- Index: [F,G] Values: 74.7000 74.7000 73.4436 73.4436 72.5673 72.5673 73.4436 73.4436 73.4436 73.4436
-
- Index: [F,H] Values: 29.0800 29.0800 28.4800 28.4800 28.5627 28.5627 28.9200 28.9200 28.9600 28.9600
-
- Index: [G,F] Values: 74.7000 74.7000 73.4436 73.4436 72.5673 72.5673 73.4436 73.4436 73.4436 73.4436
-
- Index: [G,I] Values: 31.2400 31.2400 28.7500 28.7500 29.3373 29.3373 29.1800 29.1800 29.2000 29.2000
-
- Index: [G,J] Values: 35.4800 35.4800 32.9557 32.9557 32.6900 32.6900 32.9557 32.9557 32.9557 32.9557
-
- Index: [H,F] Values: 29.0800 29.0800 28.4800 28.4800 28.5627 28.5627 28.9200 28.9200 28.9600 28.9600
-
- Index: [H,I] Values: 5.4400 5.4400 3.6827 3.6827 3.6827 3.6827 3.2224 3.2224 3.6827 3.6827
-
- Index: [I,G] Values: 31.2400 31.2400 28.7500 28.7500 29.3373 29.3373 29.1800 29.1800 29.2000 29.2000
-
- Index: [I,H] Values: 5.4400 5.4400 3.6827 3.6827 3.6827 3.6827 3.2224 3.2224 3.6827 3.6827
-
- Index: [J,G] Values: 35.4800 35.4800 32.9557 32.9557 32.6900 32.6900 32.9557 32.9557 32.9557 32.9557
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: Scenario1 Scenario2 Scenario3 Scenario4 Scenario5 Scenario6 Scenario7 Scenario8 Scenario9 Scenario10 )
- Values: 132650.6595 132650.6595 130600.4777 130600.4777 126661.2628 126661.2628 129495.1942 129495.1942 130797.5141 130797.5141 Max-Min: 5989.3966 Avg: 130041.0217
-Scenario tree costs:
-Scenario Tree Costs
-----------------------------------------------------
-Tree Nodes:
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- Scenario10Node
- Scenario1Node
- Scenario2Node
- Scenario3Node
- Scenario4Node
- Scenario5Node
- Scenario6Node
- Scenario7Node
- Scenario8Node
- Scenario9Node
- Scenarios:
- Scenario1
- Scenario10
- Scenario2
- Scenario3
- Scenario4
- Scenario5
- Scenario6
- Scenario7
- Scenario8
- Scenario9
- Expected cost of (sub)tree rooted at node=155191.6595
-
- Name=Scenario10Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario10
- Expected cost of (sub)tree rooted at node=20270.0000
-
- Name=Scenario1Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario1
- Expected cost of (sub)tree rooted at node=22310.0000
-
- Name=Scenario2Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario2
- Expected cost of (sub)tree rooted at node=24620.0000
-
- Name=Scenario3Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario3
- Expected cost of (sub)tree rooted at node=22410.0000
-
- Name=Scenario4Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario4
- Expected cost of (sub)tree rooted at node=23080.0000
-
- Name=Scenario5Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario5
- Expected cost of (sub)tree rooted at node=25110.0000
-
- Name=Scenario6Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario6
- Expected cost of (sub)tree rooted at node=22470.0000
-
- Name=Scenario7Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario7
- Expected cost of (sub)tree rooted at node=21330.0000
-
- Name=Scenario8Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario8
- Expected cost of (sub)tree rooted at node=22730.0000
-
- Name=Scenario9Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario9
- Expected cost of (sub)tree rooted at node=21080.0000
-
-----------------------------------------------------
-Scenarios:
-
- Name=Scenario1
- Probability=0.1000
- Leaf Node=Scenario1Node
- Tree node sequence:
- RootNode
- Scenario1Node
- Stage= FirstStage Cost=132650.6595
- Stage= SecondStage Cost=22310.0000
- Total scenario cost=154960.6595
-
- Name=Scenario10
- Probability=0.1000
- Leaf Node=Scenario10Node
- Tree node sequence:
- RootNode
- Scenario10Node
- Stage= FirstStage Cost=130797.5141
- Stage= SecondStage Cost=20270.0000
- Total scenario cost=151067.5141
-
- Name=Scenario2
- Probability=0.1000
- Leaf Node=Scenario2Node
- Tree node sequence:
- RootNode
- Scenario2Node
- Stage= FirstStage Cost=132650.6595
- Stage= SecondStage Cost=24620.0000
- Total scenario cost=157270.6595
-
- Name=Scenario3
- Probability=0.1000
- Leaf Node=Scenario3Node
- Tree node sequence:
- RootNode
- Scenario3Node
- Stage= FirstStage Cost=130600.4777
- Stage= SecondStage Cost=22410.0000
- Total scenario cost=153010.4777
-
- Name=Scenario4
- Probability=0.1000
- Leaf Node=Scenario4Node
- Tree node sequence:
- RootNode
- Scenario4Node
- Stage= FirstStage Cost=130600.4777
- Stage= SecondStage Cost=23080.0000
- Total scenario cost=153680.4777
-
- Name=Scenario5
- Probability=0.1000
- Leaf Node=Scenario5Node
- Tree node sequence:
- RootNode
- Scenario5Node
- Stage= FirstStage Cost=126661.2628
- Stage= SecondStage Cost=25110.0000
- Total scenario cost=151771.2628
-
- Name=Scenario6
- Probability=0.1000
- Leaf Node=Scenario6Node
- Tree node sequence:
- RootNode
- Scenario6Node
- Stage= FirstStage Cost=126661.2628
- Stage= SecondStage Cost=22470.0000
- Total scenario cost=149131.2628
-
- Name=Scenario7
- Probability=0.1000
- Leaf Node=Scenario7Node
- Tree node sequence:
- RootNode
- Scenario7Node
- Stage= FirstStage Cost=129495.1942
- Stage= SecondStage Cost=21330.0000
- Total scenario cost=150825.1942
-
- Name=Scenario8
- Probability=0.1000
- Leaf Node=Scenario8Node
- Tree node sequence:
- RootNode
- Scenario8Node
- Stage= FirstStage Cost=129495.1942
- Stage= SecondStage Cost=22730.0000
- Total scenario cost=152225.1942
-
- Name=Scenario9
- Probability=0.1000
- Leaf Node=Scenario9Node
- Tree node sequence:
- RootNode
- Scenario9Node
- Stage= FirstStage Cost=130797.5141
- Stage= SecondStage Cost=21080.0000
- Total scenario cost=151877.5141
-
-----------------------------------------------------
-
-
-Total PH execution time=65.90 seconds
-
-
-Total execution time=76.36 seconds
diff --git a/pyomo/pysp/tests/unit/baselines/networkflow1ef10_linearized_gurobi.baseline-a b/pyomo/pysp/tests/unit/baselines/networkflow1ef10_linearized_gurobi.baseline-a
deleted file mode 100644
index 62f0853e87f..00000000000
--- a/pyomo/pysp/tests/unit/baselines/networkflow1ef10_linearized_gurobi.baseline-a
+++ /dev/null
@@ -1,452 +0,0 @@
-Importing module=/Users/ghackebeil/Projects/Pyomo/pyomo/examples/pysp/networkflow/config/aggregategetter.py
-Module successfully loaded
-Importing module=/Users/ghackebeil/Projects/Pyomo/pyomo/examples/pysp/networkflow/config/rhosettermixed.py
-Module successfully loaded
-Importing module=/Users/ghackebeil/Projects/Pyomo/pyomo/examples/pysp/networkflow/config/xboundsetter.py
-Module successfully loaded
-Initializing PH
-
-Executing user aggregate getter callback function
-Executing user rho setter callback function
-Executing user bound setter callback function
-Starting PH
-
-Initiating PH iteration=0
-Number of discrete variables fixed=0 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 114953.9940 Max-Min=32195.68
-Converger=Normalized term diff value is 0.6629 - threshold reached=False
-Cumulative run-time=82.31 seconds
-
-Initiating PH iteration=1
-Number of discrete variables fixed=0 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 118788.3807 Max-Min=27009.62
-Converger=Normalized term diff value is 0.1874 - threshold reached=False
-Cumulative run-time=133.54 seconds
-
-Initiating PH iteration=2
-Number of discrete variables fixed=0 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 117633.0981 Max-Min=21620.70
-Converger=Normalized term diff value is 0.2645 - threshold reached=False
-Cumulative run-time=210.75 seconds
-
-Initiating PH iteration=3
-Number of discrete variables fixed=0 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 117501.6469 Max-Min=23011.86
-Converger=Normalized term diff value is 0.2892 - threshold reached=False
-Cumulative run-time=269.87 seconds
-
-Initiating PH iteration=4
-Number of discrete variables fixed=0 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 118469.5312 Max-Min=18688.56
-Converger=Normalized term diff value is 0.4050 - threshold reached=False
-Cumulative run-time=314.57 seconds
-
-Initiating PH iteration=5
-Number of discrete variables fixed=0 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 119025.8913 Max-Min=17171.44
-Converger=Normalized term diff value is 0.1731 - threshold reached=False
-Cumulative run-time=375.56 seconds
-
-Initiating PH iteration=6
-Number of discrete variables fixed=0 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 119725.6070 Max-Min=17625.86
-Converger=Normalized term diff value is 0.3237 - threshold reached=False
-Cumulative run-time=427.92 seconds
-
-Initiating PH iteration=7
-Number of discrete variables fixed=0 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 119687.1521 Max-Min=17076.76
-Converger=Normalized term diff value is 0.4936 - threshold reached=False
-Cumulative run-time=480.27 seconds
-
-Initiating PH iteration=8
-Number of discrete variables fixed=0 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 120749.1000 Max-Min=15324.64
-Converger=Normalized term diff value is 0.2422 - threshold reached=False
-Cumulative run-time=527.41 seconds
-
-Initiating PH iteration=9
-Number of discrete variables fixed=0 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 120552.4689 Max-Min=15566.47
-Converger=Normalized term diff value is 0.2506 - threshold reached=False
-Cumulative run-time=565.97 seconds
-
-Initiating PH iteration=10
-Number of discrete variables fixed=0 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 121826.5032 Max-Min=13946.93
-Converger=Normalized term diff value is 0.0122 - threshold reached=False
-Cumulative run-time=605.99 seconds
-Halting PH - reached maximal iteration count=10
-
-Number of discrete variables fixed before final plugin calls=0 (total=30)
-Number of continuous variables fixed before final plugin calls=0 (total=30)
-PH complete
-
-Convergence history:
-Converger=Normalized term diff
-Iteration Metric Value
- 0 0.6629
- 1 0.1874
- 2 0.2645
- 3 0.2892
- 4 0.4050
- 5 0.1731
- 6 0.3237
- 7 0.4936
- 8 0.2422
- 9 0.2506
- 10 0.0122
-
-
-Final number of discrete variables fixed=0 (total=30)
-Final number of continuous variables fixed=0 (total=30)
-
-Computing objective inner bound at xhat solution
-At least one sub-problem solve time was undefined - skipping timing statistics
-At least one sub-problem solve time was undefined - skipping timing statistics
- ** At least one sub-problem failed to solve! **
- Failed sub-problems:
- Scenario1
- Scenario5
- Scenario7
- Scenario9
-
-Failed to compute bound at xhat due to one or more solve failures. Restoring PH to solution at final iteration.
-Generating scenario tree solution from scenario averages
-
-Scenario tree variable values:
-
- Stage: FirstStage
- (Scenarios: Scenario1 Scenario2 Scenario3 Scenario4 Scenario5 Scenario6 Scenario7 Scenario8 Scenario9 Scenario10 )
- Variable: b0
- Index: [A,B] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [B,A] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [B,C] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [B,E] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [C,B] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [D,E] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [E,B] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [E,D] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [E,F] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [F,E] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [F,G] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [F,H] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [G,F] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [G,I] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [G,J] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [H,F] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [I,G] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [J,G] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- (Scenarios: Scenario1 Scenario2 Scenario3 Scenario4 Scenario5 Scenario6 Scenario7 Scenario8 Scenario9 Scenario10 )
- Variable: x
- Index: [A,B] Values: 34.7300 31.7720 31.7720 31.7720 32.0100 31.7720 30.2400 31.7720 32.1100 31.7720
-
- Index: [B,A] Values: 34.7300 31.7720 31.7720 31.7720 32.0100 31.7720 30.2400 31.7720 32.1100 31.7720
-
- Index: [B,C] Values: 36.5300 28.6800 28.4100 26.5921 31.3200 30.3910 30.3910 30.3910 30.7900 29.9400
-
- Index: [B,E] Values: 82.7400 69.5738 69.5738 69.5738 75.6700 69.5738 69.5738 69.5738 72.6300 69.7000
-
- Index: [C,B] Values: 36.5300 28.6800 28.4100 26.5921 31.3200 30.3910 30.3910 30.3910 30.7900 29.9400
-
- Index: [D,E] Values: 35.3500 28.4200 28.0900 28.4362 32.6900 28.1700 29.0200 28.4362 30.9700 28.7200
-
- Index: [E,B] Values: 82.7400 69.5738 69.5738 69.5738 75.6700 69.5738 69.5738 69.5738 72.6300 69.7000
-
- Index: [E,D] Values: 35.3500 28.4200 28.0900 28.4362 32.6900 28.1700 29.0200 28.4362 30.9700 28.7200
-
- Index: [E,F] Values: 97.0800 91.9061 91.9061 91.9061 90.3500 102.2778 102.2778 102.2778 91.9061 91.9061
-
- Index: [F,E] Values: 97.0800 91.9061 91.9061 91.9061 90.3500 102.2778 102.2778 102.2778 91.9061 91.9061
-
- Index: [F,G] Values: 80.1400 73.0839 73.0839 73.0839 76.2500 73.0839 73.0839 73.0839 72.8500 73.0839
-
- Index: [F,H] Values: 34.5200 28.7700 28.4800 28.8670 31.9400 28.8670 28.9200 28.8670 31.4900 28.9600
-
- Index: [G,F] Values: 80.1400 73.0839 73.0839 73.0839 76.2500 73.0839 73.0839 73.0839 72.8500 73.0839
-
- Index: [G,I] Values: 32.9000 30.2456 28.7500 30.2456 33.0200 30.2456 29.1800 30.2456 30.8400 29.2000
-
- Index: [G,J] Values: 35.4800 31.2719 31.2719 31.2719 32.6900 31.2719 31.2719 31.2719 30.7700 29.5800
-
- Index: [H,F] Values: 34.5200 28.7700 28.4800 28.8670 31.9400 28.8670 28.9200 28.8670 31.4900 28.9600
-
- Index: [I,G] Values: 32.9000 30.2456 28.7500 30.2456 33.0200 30.2456 29.1800 30.2456 30.8400 29.2000
-
- Index: [J,G] Values: 35.4800 31.2719 31.2719 31.2719 32.6900 31.2719 31.2719 31.2719 30.7700 29.5800
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: Scenario1 Scenario2 Scenario3 Scenario4 Scenario5 Scenario6 Scenario7 Scenario8 Scenario9 Scenario10 )
- Values: 132428.1600 119058.6415 118481.2344 118602.6582 124478.4400 121707.2130 121302.4605 121765.7797 121639.1375 118801.3073 Max-Min: 13946.9256 Avg: 121826.5032
-Scenario tree costs:
-Scenario Tree Costs
-----------------------------------------------------
-Tree Nodes:
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- Scenario10Node
- Scenario1Node
- Scenario2Node
- Scenario3Node
- Scenario4Node
- Scenario5Node
- Scenario6Node
- Scenario7Node
- Scenario8Node
- Scenario9Node
- Scenarios:
- Scenario1
- Scenario10
- Scenario2
- Scenario3
- Scenario4
- Scenario5
- Scenario6
- Scenario7
- Scenario8
- Scenario9
- Expected cost of (sub)tree rooted at node=153513.1600
-
- Name=Scenario10Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario10
- Expected cost of (sub)tree rooted at node=20270.0000
-
- Name=Scenario1Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario1
- Expected cost of (sub)tree rooted at node=17830.0000
-
- Name=Scenario2Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario2
- Expected cost of (sub)tree rooted at node=20140.0000
-
- Name=Scenario3Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario3
- Expected cost of (sub)tree rooted at node=21290.0000
-
- Name=Scenario4Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario4
- Expected cost of (sub)tree rooted at node=23080.0000
-
- Name=Scenario5Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario5
- Expected cost of (sub)tree rooted at node=22870.0000
-
- Name=Scenario6Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario6
- Expected cost of (sub)tree rooted at node=22470.0000
-
- Name=Scenario7Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario7
- Expected cost of (sub)tree rooted at node=21330.0000
-
- Name=Scenario8Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario8
- Expected cost of (sub)tree rooted at node=22730.0000
-
- Name=Scenario9Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario9
- Expected cost of (sub)tree rooted at node=18840.0000
-
-----------------------------------------------------
-Scenarios:
-
- Name=Scenario1
- Probability=0.1000
- Leaf Node=Scenario1Node
- Tree node sequence:
- RootNode
- Scenario1Node
- Stage= FirstStage Cost=132428.1600
- Stage= SecondStage Cost=17830.0000
- Total scenario cost=150258.1600
-
- Name=Scenario10
- Probability=0.1000
- Leaf Node=Scenario10Node
- Tree node sequence:
- RootNode
- Scenario10Node
- Stage= FirstStage Cost=118801.3073
- Stage= SecondStage Cost=20270.0000
- Total scenario cost=139071.3073
-
- Name=Scenario2
- Probability=0.1000
- Leaf Node=Scenario2Node
- Tree node sequence:
- RootNode
- Scenario2Node
- Stage= FirstStage Cost=119058.6415
- Stage= SecondStage Cost=20140.0000
- Total scenario cost=139198.6415
-
- Name=Scenario3
- Probability=0.1000
- Leaf Node=Scenario3Node
- Tree node sequence:
- RootNode
- Scenario3Node
- Stage= FirstStage Cost=118481.2344
- Stage= SecondStage Cost=21290.0000
- Total scenario cost=139771.2344
-
- Name=Scenario4
- Probability=0.1000
- Leaf Node=Scenario4Node
- Tree node sequence:
- RootNode
- Scenario4Node
- Stage= FirstStage Cost=118602.6582
- Stage= SecondStage Cost=23080.0000
- Total scenario cost=141682.6582
-
- Name=Scenario5
- Probability=0.1000
- Leaf Node=Scenario5Node
- Tree node sequence:
- RootNode
- Scenario5Node
- Stage= FirstStage Cost=124478.4400
- Stage= SecondStage Cost=22870.0000
- Total scenario cost=147348.4400
-
- Name=Scenario6
- Probability=0.1000
- Leaf Node=Scenario6Node
- Tree node sequence:
- RootNode
- Scenario6Node
- Stage= FirstStage Cost=121707.2130
- Stage= SecondStage Cost=22470.0000
- Total scenario cost=144177.2130
-
- Name=Scenario7
- Probability=0.1000
- Leaf Node=Scenario7Node
- Tree node sequence:
- RootNode
- Scenario7Node
- Stage= FirstStage Cost=121302.4605
- Stage= SecondStage Cost=21330.0000
- Total scenario cost=142632.4605
-
- Name=Scenario8
- Probability=0.1000
- Leaf Node=Scenario8Node
- Tree node sequence:
- RootNode
- Scenario8Node
- Stage= FirstStage Cost=121765.7797
- Stage= SecondStage Cost=22730.0000
- Total scenario cost=144495.7797
-
- Name=Scenario9
- Probability=0.1000
- Leaf Node=Scenario9Node
- Tree node sequence:
- RootNode
- Scenario9Node
- Stage= FirstStage Cost=121639.1375
- Stage= SecondStage Cost=18840.0000
- Total scenario cost=140479.1375
-
-----------------------------------------------------
-
-
-Total PH execution time=632.35 seconds
-
-
-Total execution time=655.55 seconds
diff --git a/pyomo/pysp/tests/unit/baselines/networkflow1ef10_linearized_gurobi.baseline-b b/pyomo/pysp/tests/unit/baselines/networkflow1ef10_linearized_gurobi.baseline-b
deleted file mode 100755
index d2b325f0269..00000000000
--- a/pyomo/pysp/tests/unit/baselines/networkflow1ef10_linearized_gurobi.baseline-b
+++ /dev/null
@@ -1,476 +0,0 @@
-Importing module=/Users/ghackebeil/Projects/Pyomo/pyomo/examples/pysp/networkflow/config/aggregategetter.py
-Module successfully loaded
-Importing module=/Users/ghackebeil/Projects/Pyomo/pyomo/examples/pysp/networkflow/config/rhosettermixed.py
-Module successfully loaded
-Importing module=/Users/ghackebeil/Projects/Pyomo/pyomo/examples/pysp/networkflow/config/xboundsetter.py
-Module successfully loaded
-Initializing PH
-
-Executing user aggregate getter callback function
-Executing user rho setter callback function
-Executing user bound setter callback function
-Starting PH
-
-Initiating PH iteration=0
-Number of discrete variables fixed=0 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 114953.9940 Max-Min=32195.68
-Converger=Normalized term diff value is 0.6629 - threshold reached=False
-Cumulative run-time=25.21 seconds
-
-Initiating PH iteration=1
-Number of discrete variables fixed=0 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 117602.5586 Max-Min=25401.79
-Converger=Normalized term diff value is 0.1815 - threshold reached=False
-Cumulative run-time=48.22 seconds
-
-Initiating PH iteration=2
-Number of discrete variables fixed=0 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 117449.8442 Max-Min=21875.36
-Converger=Normalized term diff value is 0.1744 - threshold reached=False
-Cumulative run-time=71.25 seconds
-
-Initiating PH iteration=3
-Number of discrete variables fixed=0 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 118978.2158 Max-Min=18274.39
-Converger=Normalized term diff value is 0.3423 - threshold reached=False
-Cumulative run-time=93.18 seconds
-
-Initiating PH iteration=4
-Number of discrete variables fixed=0 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 119118.3469 Max-Min=18709.94
-Converger=Normalized term diff value is 0.4773 - threshold reached=False
-Cumulative run-time=117.68 seconds
-
-Initiating PH iteration=5
-Number of discrete variables fixed=0 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 118706.1666 Max-Min=17997.46
-Converger=Normalized term diff value is 0.3837 - threshold reached=False
-Cumulative run-time=142.14 seconds
-
-Initiating PH iteration=6
-Number of discrete variables fixed=0 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 119544.3928 Max-Min=16795.51
-Converger=Normalized term diff value is 0.3824 - threshold reached=False
-Cumulative run-time=167.08 seconds
-
-Initiating PH iteration=7
-Number of discrete variables fixed=0 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 120528.2957 Max-Min=16337.65
-Converger=Normalized term diff value is 0.1429 - threshold reached=False
-Cumulative run-time=191.77 seconds
-
-Initiating PH iteration=8
-Number of discrete variables fixed=0 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 121493.9662 Max-Min=14296.26
-Converger=Normalized term diff value is 0.1420 - threshold reached=False
-Cumulative run-time=215.53 seconds
-
-Initiating PH iteration=9
-Number of discrete variables fixed=0 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 123203.6220 Max-Min=11664.42
-Converger=Normalized term diff value is 0.4943 - threshold reached=False
-Cumulative run-time=239.40 seconds
-
-Initiating PH iteration=10
-Number of discrete variables fixed=0 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 123063.9406 Max-Min=13463.62
-Converger=Normalized term diff value is 0.2668 - threshold reached=False
-Cumulative run-time=265.64 seconds
-Halting PH - reached maximal iteration count=10
-
-Number of discrete variables fixed before final plugin calls=0 (total=30)
-Number of continuous variables fixed before final plugin calls=0 (total=30)
-PH complete
-
-Convergence history:
-Converger=Normalized term diff
-Iteration Metric Value
- 0 0.6629
- 1 0.1815
- 2 0.1744
- 3 0.3423
- 4 0.4773
- 5 0.3837
- 6 0.3824
- 7 0.1429
- 8 0.1420
- 9 0.4943
- 10 0.2668
-
-
-Final number of discrete variables fixed=0 (total=30)
-Final number of continuous variables fixed=0 (total=30)
-
-Computing objective inner bound at xhat solution
-At least one sub-problem solve time was undefined - skipping timing statistics
-At least one sub-problem solve time was undefined - skipping timing statistics
- ** At least one sub-problem failed to solve! **
- Failed sub-problems:
- Scenario1
- Scenario5
- Scenario7
- Scenario9
-
-Failed to compute bound at xhat due to one or more solve failures. Restoring PH to solution at final iteration.
-Generating scenario tree solution from scenario averages
-
-Scenario tree variable values:
-
- Stage: FirstStage
- (Scenarios: Scenario1 Scenario2 Scenario3 Scenario4 Scenario5 Scenario6 Scenario7 Scenario8 Scenario9 Scenario10 )
- Variable: b0
- Index: [A,B] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [B,A] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [B,C] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [B,E] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [C,B] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [C,D] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [D,C] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [D,E] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [E,B] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [E,D] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [E,F] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [F,E] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [F,G] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [F,H] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [G,F] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [G,I] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [G,J] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [H,F] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [H,I] Values: 1.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000
-
- Index: [I,G] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [I,H] Values: 1.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000
-
- Index: [I,J] Values: 1.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000
-
- Index: [J,G] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [J,I] Values: 1.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000
-
- (Scenarios: Scenario1 Scenario2 Scenario3 Scenario4 Scenario5 Scenario6 Scenario7 Scenario8 Scenario9 Scenario10 )
- Variable: x
- Index: [A,B] Values: 34.7300 29.9118 29.9118 29.9118 32.0100 29.9118 30.2400 29.9118 32.1100 29.9118
-
- Index: [B,A] Values: 34.7300 29.9118 29.9118 29.9118 32.0100 29.9118 30.2400 29.9118 32.1100 29.9118
-
- Index: [B,C] Values: 24.7615 13.7396 13.7396 23.9200 15.7024 1.9628 17.3889 15.7024 15.7024 13.4215
-
- Index: [B,E] Values: 63.8045 57.1514 57.1514 57.1514 56.7345 50.0074 57.1514 57.1514 53.6945 57.1514
-
- Index: [C,B] Values: 24.7615 13.7396 13.7396 23.9200 15.7024 1.9628 17.3889 15.7024 15.7024 13.4215
-
- Index: [C,D] Values: 18.9355 28.6800 18.9355 14.2016 18.9355 27.6800 11.8347 28.3400 18.9355 18.9355
-
- Index: [D,C] Values: 18.9355 28.6800 18.9355 14.2016 18.9355 27.6800 11.8347 28.3400 18.9355 18.9355
-
- Index: [D,E] Values: 38.5385 51.0800 38.5385 33.7211 41.0076 50.4700 33.7211 49.4300 39.6176 38.5385
-
- Index: [E,B] Values: 63.8045 57.1514 57.1514 57.1514 56.7345 50.0074 57.1514 57.1514 53.6945 57.1514
-
- Index: [E,D] Values: 38.5385 51.0800 38.5385 33.7211 41.0076 50.4700 33.7211 49.4300 39.6176 38.5385
-
- Index: [E,F] Values: 97.0800 94.2310 94.2310 94.2310 90.3500 94.2310 94.2310 94.2310 94.2310 97.0597
-
- Index: [F,E] Values: 97.0800 94.2310 94.2310 94.2310 90.3500 94.2310 94.2310 94.2310 94.2310 97.0597
-
- Index: [F,G] Values: 72.2321 72.2321 72.2321 72.2321 76.2500 72.2321 72.2321 72.2321 72.8500 72.2321
-
- Index: [F,H] Values: 26.6121 28.7700 28.4800 28.3791 31.9400 27.6300 28.9200 27.4400 31.4900 28.9600
-
- Index: [G,F] Values: 72.2321 72.2321 72.2321 72.2321 76.2500 72.2321 72.2321 72.2321 72.8500 72.2321
-
- Index: [G,I] Values: 26.1641 28.4000 28.7500 29.2634 33.0200 29.2634 29.1800 29.2634 30.8400 29.2000
-
- Index: [G,J] Values: 27.0038 30.8614 30.8614 30.8614 32.6900 30.8614 30.8614 30.8614 30.7700 29.5800
-
- Index: [H,F] Values: 26.6121 28.7700 28.4800 28.3791 31.9400 27.6300 28.9200 27.4400 31.4900 28.9600
-
- Index: [H,I] Values: 7.9079 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000
-
- Index: [I,G] Values: 26.1641 28.4000 28.7500 29.2634 33.0200 29.2634 29.1800 29.2634 30.8400 29.2000
-
- Index: [I,H] Values: 7.9079 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000
-
- Index: [I,J] Values: 8.4762 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000
-
- Index: [J,G] Values: 27.0038 30.8614 30.8614 30.8614 32.6900 30.8614 30.8614 30.8614 30.7700 29.5800
-
- Index: [J,I] Values: 8.4762 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: Scenario1 Scenario2 Scenario3 Scenario4 Scenario5 Scenario6 Scenario7 Scenario8 Scenario9 Scenario10 )
- Values: 132377.1668 125355.4202 120425.3745 120767.4957 124243.3505 120328.1280 118913.5460 125243.5383 122111.1009 120874.2852 Max-Min: 13463.6209 Avg: 123063.9406
-Scenario tree costs:
-Scenario Tree Costs
-----------------------------------------------------
-Tree Nodes:
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- Scenario10Node
- Scenario1Node
- Scenario2Node
- Scenario3Node
- Scenario4Node
- Scenario5Node
- Scenario6Node
- Scenario7Node
- Scenario8Node
- Scenario9Node
- Scenarios:
- Scenario1
- Scenario10
- Scenario2
- Scenario3
- Scenario4
- Scenario5
- Scenario6
- Scenario7
- Scenario8
- Scenario9
- Expected cost of (sub)tree rooted at node=155004.1668
-
- Name=Scenario10Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario10
- Expected cost of (sub)tree rooted at node=23630.0000
-
- Name=Scenario1Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario1
- Expected cost of (sub)tree rooted at node=23410.0000
-
- Name=Scenario2Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario2
- Expected cost of (sub)tree rooted at node=20060.0000
-
- Name=Scenario3Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario3
- Expected cost of (sub)tree rooted at node=22410.0000
-
- Name=Scenario4Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario4
- Expected cost of (sub)tree rooted at node=23080.0000
-
- Name=Scenario5Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario5
- Expected cost of (sub)tree rooted at node=23990.0000
-
- Name=Scenario6Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario6
- Expected cost of (sub)tree rooted at node=22350.0000
-
- Name=Scenario7Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario7
- Expected cost of (sub)tree rooted at node=22450.0000
-
- Name=Scenario8Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario8
- Expected cost of (sub)tree rooted at node=22690.0000
-
- Name=Scenario9Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario9
- Expected cost of (sub)tree rooted at node=22200.0000
-
-----------------------------------------------------
-Scenarios:
-
- Name=Scenario1
- Probability=0.1000
- Leaf Node=Scenario1Node
- Tree node sequence:
- RootNode
- Scenario1Node
- Stage= FirstStage Cost=132377.1668
- Stage= SecondStage Cost=23410.0000
- Total scenario cost=155787.1668
-
- Name=Scenario10
- Probability=0.1000
- Leaf Node=Scenario10Node
- Tree node sequence:
- RootNode
- Scenario10Node
- Stage= FirstStage Cost=120874.2852
- Stage= SecondStage Cost=23630.0000
- Total scenario cost=144504.2852
-
- Name=Scenario2
- Probability=0.1000
- Leaf Node=Scenario2Node
- Tree node sequence:
- RootNode
- Scenario2Node
- Stage= FirstStage Cost=125355.4202
- Stage= SecondStage Cost=20060.0000
- Total scenario cost=145415.4202
-
- Name=Scenario3
- Probability=0.1000
- Leaf Node=Scenario3Node
- Tree node sequence:
- RootNode
- Scenario3Node
- Stage= FirstStage Cost=120425.3745
- Stage= SecondStage Cost=22410.0000
- Total scenario cost=142835.3745
-
- Name=Scenario4
- Probability=0.1000
- Leaf Node=Scenario4Node
- Tree node sequence:
- RootNode
- Scenario4Node
- Stage= FirstStage Cost=120767.4957
- Stage= SecondStage Cost=23080.0000
- Total scenario cost=143847.4957
-
- Name=Scenario5
- Probability=0.1000
- Leaf Node=Scenario5Node
- Tree node sequence:
- RootNode
- Scenario5Node
- Stage= FirstStage Cost=124243.3505
- Stage= SecondStage Cost=23990.0000
- Total scenario cost=148233.3505
-
- Name=Scenario6
- Probability=0.1000
- Leaf Node=Scenario6Node
- Tree node sequence:
- RootNode
- Scenario6Node
- Stage= FirstStage Cost=120328.1280
- Stage= SecondStage Cost=22350.0000
- Total scenario cost=142678.1280
-
- Name=Scenario7
- Probability=0.1000
- Leaf Node=Scenario7Node
- Tree node sequence:
- RootNode
- Scenario7Node
- Stage= FirstStage Cost=118913.5460
- Stage= SecondStage Cost=22450.0000
- Total scenario cost=141363.5460
-
- Name=Scenario8
- Probability=0.1000
- Leaf Node=Scenario8Node
- Tree node sequence:
- RootNode
- Scenario8Node
- Stage= FirstStage Cost=125243.5383
- Stage= SecondStage Cost=22690.0000
- Total scenario cost=147933.5383
-
- Name=Scenario9
- Probability=0.1000
- Leaf Node=Scenario9Node
- Tree node sequence:
- RootNode
- Scenario9Node
- Stage= FirstStage Cost=122111.1009
- Stage= SecondStage Cost=22200.0000
- Total scenario cost=144311.1009
-
-----------------------------------------------------
-
-
-Total PH execution time=277.76 seconds
-
-
-Total execution time=289.74 seconds
diff --git a/pyomo/pysp/tests/unit/baselines/networkflow1ef10_linearized_gurobi_darwin.baseline b/pyomo/pysp/tests/unit/baselines/networkflow1ef10_linearized_gurobi_darwin.baseline
deleted file mode 100644
index 77475857cb5..00000000000
--- a/pyomo/pysp/tests/unit/baselines/networkflow1ef10_linearized_gurobi_darwin.baseline
+++ /dev/null
@@ -1,452 +0,0 @@
-Importing module=/Users/ghackebeil/Projects/Pyomo/pyomo/examples/pysp/networkflow/config/aggregategetter.py
-Module successfully loaded
-Importing module=/Users/ghackebeil/Projects/Pyomo/pyomo/examples/pysp/networkflow/config/rhosettermixed.py
-Module successfully loaded
-Importing module=/Users/ghackebeil/Projects/Pyomo/pyomo/examples/pysp/networkflow/config/xboundsetter.py
-Module successfully loaded
-Initializing PH
-
-Executing user aggregate getter callback function
-Executing user rho setter callback function
-Executing user bound setter callback function
-Starting PH
-
-Initiating PH iteration=0
-Number of discrete variables fixed=0 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 114953.9940 Max-Min=32195.68
-Converger=Normalized term diff value is 0.6629 - threshold reached=False
-Cumulative run-time=12.59 seconds
-
-Initiating PH iteration=1
-Number of discrete variables fixed=0 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 118788.3807 Max-Min=27009.62
-Converger=Normalized term diff value is 0.1874 - threshold reached=False
-Cumulative run-time=21.87 seconds
-
-Initiating PH iteration=2
-Number of discrete variables fixed=0 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 117633.0981 Max-Min=21620.70
-Converger=Normalized term diff value is 0.2645 - threshold reached=False
-Cumulative run-time=34.00 seconds
-
-Initiating PH iteration=3
-Number of discrete variables fixed=0 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 117501.6469 Max-Min=23011.86
-Converger=Normalized term diff value is 0.2892 - threshold reached=False
-Cumulative run-time=43.68 seconds
-
-Initiating PH iteration=4
-Number of discrete variables fixed=0 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 118469.5312 Max-Min=18688.56
-Converger=Normalized term diff value is 0.4050 - threshold reached=False
-Cumulative run-time=52.02 seconds
-
-Initiating PH iteration=5
-Number of discrete variables fixed=0 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 119025.8913 Max-Min=17171.44
-Converger=Normalized term diff value is 0.1731 - threshold reached=False
-Cumulative run-time=61.22 seconds
-
-Initiating PH iteration=6
-Number of discrete variables fixed=0 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 119725.6070 Max-Min=17625.86
-Converger=Normalized term diff value is 0.3237 - threshold reached=False
-Cumulative run-time=70.41 seconds
-
-Initiating PH iteration=7
-Number of discrete variables fixed=0 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 119687.1521 Max-Min=17076.76
-Converger=Normalized term diff value is 0.4936 - threshold reached=False
-Cumulative run-time=78.68 seconds
-
-Initiating PH iteration=8
-Number of discrete variables fixed=0 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 120749.1000 Max-Min=15324.64
-Converger=Normalized term diff value is 0.2422 - threshold reached=False
-Cumulative run-time=86.07 seconds
-
-Initiating PH iteration=9
-Number of discrete variables fixed=0 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 120552.4689 Max-Min=15566.47
-Converger=Normalized term diff value is 0.2506 - threshold reached=False
-Cumulative run-time=93.86 seconds
-
-Initiating PH iteration=10
-Number of discrete variables fixed=0 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 121826.5032 Max-Min=13946.93
-Converger=Normalized term diff value is 0.0122 - threshold reached=False
-Cumulative run-time=102.33 seconds
-Halting PH - reached maximal iteration count=10
-
-Number of discrete variables fixed before final plugin calls=0 (total=30)
-Number of continuous variables fixed before final plugin calls=0 (total=30)
-PH complete
-
-Convergence history:
-Converger=Normalized term diff
-Iteration Metric Value
- 0 0.6629
- 1 0.1874
- 2 0.2645
- 3 0.2892
- 4 0.4050
- 5 0.1731
- 6 0.3237
- 7 0.4936
- 8 0.2422
- 9 0.2506
- 10 0.0122
-
-
-Final number of discrete variables fixed=0 (total=30)
-Final number of continuous variables fixed=0 (total=30)
-
-Computing objective inner bound at xhat solution
-At least one sub-problem solve time was undefined - skipping timing statistics
-At least one sub-problem solve time was undefined - skipping timing statistics
- ** At least one sub-problem failed to solve! **
- Failed sub-problems:
- Scenario1
- Scenario5
- Scenario7
- Scenario9
-
-Failed to compute bound at xhat due to one or more solve failures. Restoring PH to solution at final iteration.
-Generating scenario tree solution from scenario averages
-
-Scenario tree variable values:
-
- Stage: FirstStage
- (Scenarios: Scenario1 Scenario2 Scenario3 Scenario4 Scenario5 Scenario6 Scenario7 Scenario8 Scenario9 Scenario10 )
- Variable: b0
- Index: [A,B] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [B,A] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [B,C] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [B,E] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [C,B] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [D,E] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [E,B] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [E,D] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [E,F] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [F,E] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [F,G] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [F,H] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [G,F] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [G,I] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [G,J] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [H,F] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [I,G] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [J,G] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- (Scenarios: Scenario1 Scenario2 Scenario3 Scenario4 Scenario5 Scenario6 Scenario7 Scenario8 Scenario9 Scenario10 )
- Variable: x
- Index: [A,B] Values: 34.7300 31.7720 31.7720 31.7720 32.0100 31.7720 30.2400 31.7720 32.1100 31.7720
-
- Index: [B,A] Values: 34.7300 31.7720 31.7720 31.7720 32.0100 31.7720 30.2400 31.7720 32.1100 31.7720
-
- Index: [B,C] Values: 36.5300 28.6800 28.4100 26.5921 31.3200 30.3910 30.3910 30.3910 30.7900 29.9400
-
- Index: [B,E] Values: 82.7400 69.5738 69.5738 69.5738 75.6700 69.5738 69.5738 69.5738 72.6300 69.7000
-
- Index: [C,B] Values: 36.5300 28.6800 28.4100 26.5921 31.3200 30.3910 30.3910 30.3910 30.7900 29.9400
-
- Index: [D,E] Values: 35.3500 28.4200 28.0900 28.4362 32.6900 28.1700 29.0200 28.4362 30.9700 28.7200
-
- Index: [E,B] Values: 82.7400 69.5738 69.5738 69.5738 75.6700 69.5738 69.5738 69.5738 72.6300 69.7000
-
- Index: [E,D] Values: 35.3500 28.4200 28.0900 28.4362 32.6900 28.1700 29.0200 28.4362 30.9700 28.7200
-
- Index: [E,F] Values: 97.0800 91.9061 91.9061 91.9061 90.3500 102.2778 102.2778 102.2778 91.9061 91.9061
-
- Index: [F,E] Values: 97.0800 91.9061 91.9061 91.9061 90.3500 102.2778 102.2778 102.2778 91.9061 91.9061
-
- Index: [F,G] Values: 80.1400 73.0839 73.0839 73.0839 76.2500 73.0839 73.0839 73.0839 72.8500 73.0839
-
- Index: [F,H] Values: 34.5200 28.7700 28.4800 28.8670 31.9400 28.8670 28.9200 28.8670 31.4900 28.9600
-
- Index: [G,F] Values: 80.1400 73.0839 73.0839 73.0839 76.2500 73.0839 73.0839 73.0839 72.8500 73.0839
-
- Index: [G,I] Values: 32.9000 30.2456 28.7500 30.2456 33.0200 30.2456 29.1800 30.2456 30.8400 29.2000
-
- Index: [G,J] Values: 35.4800 31.2719 31.2719 31.2719 32.6900 31.2719 31.2719 31.2719 30.7700 29.5800
-
- Index: [H,F] Values: 34.5200 28.7700 28.4800 28.8670 31.9400 28.8670 28.9200 28.8670 31.4900 28.9600
-
- Index: [I,G] Values: 32.9000 30.2456 28.7500 30.2456 33.0200 30.2456 29.1800 30.2456 30.8400 29.2000
-
- Index: [J,G] Values: 35.4800 31.2719 31.2719 31.2719 32.6900 31.2719 31.2719 31.2719 30.7700 29.5800
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: Scenario1 Scenario2 Scenario3 Scenario4 Scenario5 Scenario6 Scenario7 Scenario8 Scenario9 Scenario10 )
- Values: 132428.1600 119058.6415 118481.2344 118602.6582 124478.4400 121707.2130 121302.4605 121765.7797 121639.1375 118801.3073 Max-Min: 13946.9256 Avg: 121826.5032
-Scenario tree costs:
-Scenario Tree Costs
-----------------------------------------------------
-Tree Nodes:
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- Scenario10Node
- Scenario1Node
- Scenario2Node
- Scenario3Node
- Scenario4Node
- Scenario5Node
- Scenario6Node
- Scenario7Node
- Scenario8Node
- Scenario9Node
- Scenarios:
- Scenario1
- Scenario10
- Scenario2
- Scenario3
- Scenario4
- Scenario5
- Scenario6
- Scenario7
- Scenario8
- Scenario9
- Expected cost of (sub)tree rooted at node=153513.1600
-
- Name=Scenario10Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario10
- Expected cost of (sub)tree rooted at node=20270.0000
-
- Name=Scenario1Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario1
- Expected cost of (sub)tree rooted at node=17830.0000
-
- Name=Scenario2Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario2
- Expected cost of (sub)tree rooted at node=20140.0000
-
- Name=Scenario3Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario3
- Expected cost of (sub)tree rooted at node=21290.0000
-
- Name=Scenario4Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario4
- Expected cost of (sub)tree rooted at node=23080.0000
-
- Name=Scenario5Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario5
- Expected cost of (sub)tree rooted at node=22870.0000
-
- Name=Scenario6Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario6
- Expected cost of (sub)tree rooted at node=22470.0000
-
- Name=Scenario7Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario7
- Expected cost of (sub)tree rooted at node=21330.0000
-
- Name=Scenario8Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario8
- Expected cost of (sub)tree rooted at node=22730.0000
-
- Name=Scenario9Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario9
- Expected cost of (sub)tree rooted at node=18840.0000
-
-----------------------------------------------------
-Scenarios:
-
- Name=Scenario1
- Probability=0.1000
- Leaf Node=Scenario1Node
- Tree node sequence:
- RootNode
- Scenario1Node
- Stage= FirstStage Cost=132428.1600
- Stage= SecondStage Cost=17830.0000
- Total scenario cost=150258.1600
-
- Name=Scenario10
- Probability=0.1000
- Leaf Node=Scenario10Node
- Tree node sequence:
- RootNode
- Scenario10Node
- Stage= FirstStage Cost=118801.3073
- Stage= SecondStage Cost=20270.0000
- Total scenario cost=139071.3073
-
- Name=Scenario2
- Probability=0.1000
- Leaf Node=Scenario2Node
- Tree node sequence:
- RootNode
- Scenario2Node
- Stage= FirstStage Cost=119058.6415
- Stage= SecondStage Cost=20140.0000
- Total scenario cost=139198.6415
-
- Name=Scenario3
- Probability=0.1000
- Leaf Node=Scenario3Node
- Tree node sequence:
- RootNode
- Scenario3Node
- Stage= FirstStage Cost=118481.2344
- Stage= SecondStage Cost=21290.0000
- Total scenario cost=139771.2344
-
- Name=Scenario4
- Probability=0.1000
- Leaf Node=Scenario4Node
- Tree node sequence:
- RootNode
- Scenario4Node
- Stage= FirstStage Cost=118602.6582
- Stage= SecondStage Cost=23080.0000
- Total scenario cost=141682.6582
-
- Name=Scenario5
- Probability=0.1000
- Leaf Node=Scenario5Node
- Tree node sequence:
- RootNode
- Scenario5Node
- Stage= FirstStage Cost=124478.4400
- Stage= SecondStage Cost=22870.0000
- Total scenario cost=147348.4400
-
- Name=Scenario6
- Probability=0.1000
- Leaf Node=Scenario6Node
- Tree node sequence:
- RootNode
- Scenario6Node
- Stage= FirstStage Cost=121707.2130
- Stage= SecondStage Cost=22470.0000
- Total scenario cost=144177.2130
-
- Name=Scenario7
- Probability=0.1000
- Leaf Node=Scenario7Node
- Tree node sequence:
- RootNode
- Scenario7Node
- Stage= FirstStage Cost=121302.4605
- Stage= SecondStage Cost=21330.0000
- Total scenario cost=142632.4605
-
- Name=Scenario8
- Probability=0.1000
- Leaf Node=Scenario8Node
- Tree node sequence:
- RootNode
- Scenario8Node
- Stage= FirstStage Cost=121765.7797
- Stage= SecondStage Cost=22730.0000
- Total scenario cost=144495.7797
-
- Name=Scenario9
- Probability=0.1000
- Leaf Node=Scenario9Node
- Tree node sequence:
- RootNode
- Scenario9Node
- Stage= FirstStage Cost=121639.1375
- Stage= SecondStage Cost=18840.0000
- Total scenario cost=140479.1375
-
-----------------------------------------------------
-
-
-Total PH execution time=106.72 seconds
-
-
-Total execution time=109.85 seconds
diff --git a/pyomo/pysp/tests/unit/baselines/networkflow1ef10_linearized_gurobi_with_phpyro.baseline-a b/pyomo/pysp/tests/unit/baselines/networkflow1ef10_linearized_gurobi_with_phpyro.baseline-a
deleted file mode 100644
index c2adf4f3e0a..00000000000
--- a/pyomo/pysp/tests/unit/baselines/networkflow1ef10_linearized_gurobi_with_phpyro.baseline-a
+++ /dev/null
@@ -1,483 +0,0 @@
-Importing module=/Users/ghackebeil/Projects/Pyomo/pyomo/examples/pysp/networkflow/config/aggregategetter.py
-Module successfully loaded
-Importing module=/Users/ghackebeil/Projects/Pyomo/pyomo/examples/pysp/networkflow/config/rhosettermixed.py
-Module successfully loaded
-Importing module=/Users/ghackebeil/Projects/Pyomo/pyomo/examples/pysp/networkflow/config/xboundsetter.py
-Module successfully loaded
-Client assigned dispatcher with URI=PYRO://127.0.0.1:41320/86fdc201594e22e2f5760b50a456554892
-Initializing PH
-
-Transmitting user aggregate callback invocations to phsolverservers
-Broadcasting final aggregate data to phsolverservers
-Transmitting user rho callback invocations to phsolverservers
-Transmitting user bound callback invocations to phsolverservers
-WW PH Extension: Loading user-specified configuration from file=/home/gahacke/Project/Pyomo/jenkins/src/pyomo/examples/pysp/networkflow/config/wwph-aggressivefixing.cfg
-WW PH Extension: Loading variable suffixes from file=/home/gahacke/Project/Pyomo/jenkins/src/pyomo/examples/pysp/networkflow/config/wwph.suffixes
-Starting PH
-
-Initiating PH iteration=0
-Number of discrete variables fixed=0 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 114953.9940 Max-Min=32195.68
-Converger= Term diff value is 206.2356 - threshold reached=False
-Cumulative run-time=22.54 seconds
-
-Initiating PH iteration=1
-WW PH Extension: Setting mipgap to 0.1000000, as specified in the configuration file
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 118958.3555 Max-Min=25309.87
-Converger= Term diff value is 151.7783 - threshold reached=False
-Cumulative run-time=30.16 seconds
-
-Initiating PH iteration=2
-WW PH Extension: Setting mipgap to 0.0736197, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=14 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 117417.7114 Max-Min=20221.53
-Converger= Term diff value is 75.6391 - threshold reached=False
-Cumulative run-time=37.80 seconds
-
-Initiating PH iteration=3
-WW PH Extension: Setting mipgap to 0.0367363, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=24 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 118302.1865 Max-Min=18878.48
-Converger= Term diff value is 66.8346 - threshold reached=False
-Cumulative run-time=44.03 seconds
-
-Initiating PH iteration=4
-WW PH Extension: Setting mipgap to 0.0324712, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=26 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 118169.8779 Max-Min=18312.43
-Converger= Term diff value is 49.6584 - threshold reached=False
-Cumulative run-time=54.17 seconds
-
-Initiating PH iteration=5
-WW PH Extension: Setting mipgap to 0.0241507, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=26 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 119041.2646 Max-Min=17507.28
-Converger= Term diff value is 37.8991 - threshold reached=False
-Cumulative run-time=61.99 seconds
-
-Initiating PH iteration=6
-WW PH Extension: Setting mipgap to 0.0184543, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=28 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 120861.9276 Max-Min=16361.71
-Converger= Term diff value is 40.0766 - threshold reached=False
-Cumulative run-time=71.03 seconds
-
-Initiating PH iteration=7
-WW PH Extension: Setting mipgap to 0.0195091, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=30 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 121812.0398 Max-Min=14079.78
-Converger= Term diff value is 29.4998 - threshold reached=False
-Cumulative run-time=76.22 seconds
-
-Initiating PH iteration=8
-WW PH Extension: Setting mipgap to 0.0143855, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=30 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 122624.8738 Max-Min=11889.57
-Converger= Term diff value is 25.5387 - threshold reached=False
-Cumulative run-time=82.29 seconds
-
-Initiating PH iteration=9
-WW PH Extension: Setting mipgap to 0.0124666, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=30 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 124227.2825 Max-Min=10526.66
-Converger= Term diff value is 25.1696 - threshold reached=False
-Cumulative run-time=88.35 seconds
-
-Initiating PH iteration=10
-WW PH Extension: Setting mipgap to 0.0122878, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=30 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 125467.6911 Max-Min=12009.55
-Converger= Term diff value is 29.9476 - threshold reached=False
-Cumulative run-time=95.97 seconds
-Halting PH - reached maximal iteration count=10
-
-Number of discrete variables fixed before final plugin calls=30 (total=30)
-Number of continuous variables fixed before final plugin calls=0 (total=30)
-PH complete
-
-Convergence history:
-Converger= Term diff
-Iteration Metric Value
- 0 206.2356
- 1 151.7783
- 2 75.6391
- 3 66.8346
- 4 49.6584
- 5 37.8991
- 6 40.0766
- 7 29.4998
- 8 25.5387
- 9 25.1696
- 10 29.9476
-
-
-Final number of discrete variables fixed=30 (total=30)
-Final number of continuous variables fixed=0 (total=30)
-
-Computing objective inner bound at xhat solution
-At least one sub-problem solve time was undefined - skipping timing statistics
-At least one sub-problem solve time was undefined - skipping timing statistics
- ** At least one sub-problem failed to solve! **
- Failed sub-problems:
- Scenario1
- Scenario5
- Scenario9
-
-Failed to compute bound at xhat due to one or more solve failures. Restoring PH to solution at final iteration.
-Generating scenario tree solution from scenario averages
-
-Scenario tree variable values:
-
- Stage: FirstStage
- (Scenarios: Scenario1 Scenario2 Scenario3 Scenario4 Scenario5 Scenario6 Scenario7 Scenario8 Scenario9 Scenario10 )
- Variable: b0
- Index: [A,B] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [B,A] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [B,C] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [B,E] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [C,B] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [C,D] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [D,C] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [D,E] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [E,B] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [E,D] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [E,F] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [F,E] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [F,G] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [F,H] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [G,F] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [G,I] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [G,J] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [H,F] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [I,G] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [J,G] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- (Scenarios: Scenario1 Scenario2 Scenario3 Scenario4 Scenario5 Scenario6 Scenario7 Scenario8 Scenario9 Scenario10 )
- Variable: x
- Index: [A,B] Values: 34.7300 31.9740 31.9740 31.9740 32.0100 31.9740 30.2400 31.9740 32.1100 31.9740
-
- Index: [B,A] Values: 34.7300 31.9740 31.9740 31.9740 32.0100 31.9740 30.2400 31.9740 32.1100 31.9740
-
- Index: [B,C] Values: 25.3647 28.6800 28.4100 23.9200 26.2452 27.6800 28.6100 28.3400 26.2452 22.9645
-
- Index: [B,E] Values: 71.5747 67.1900 67.3600 64.6125 63.1029 64.6125 67.3300 65.1600 63.2047 57.1329
-
- Index: [C,B] Values: 25.3647 28.6800 28.4100 23.9200 26.2452 27.6800 28.6100 28.3400 26.2452 22.9645
-
- Index: [C,D] Values: 11.1653 12.5671 12.5671 12.5671 12.5671 12.5671 12.5671 12.5671 9.4253 12.5671
-
- Index: [D,C] Values: 11.1653 12.5671 12.5671 12.5671 12.5671 12.5671 12.5671 12.5671 9.4253 12.5671
-
- Index: [D,E] Values: 37.9353 31.1421 31.1421 31.1421 30.4648 31.1421 31.1421 31.1421 29.0748 31.1421
-
- Index: [E,B] Values: 71.5747 67.1900 67.3600 64.6125 63.1029 64.6125 67.3300 65.1600 63.2047 57.1329
-
- Index: [E,D] Values: 37.9353 31.1421 31.1421 31.1421 30.4648 31.1421 31.1421 31.1421 29.0748 31.1421
-
- Index: [E,F] Values: 97.0800 91.8723 91.8723 91.8723 90.3500 102.2483 102.2483 102.2483 91.8723 91.8723
-
- Index: [F,E] Values: 97.0800 91.8723 91.8723 91.8723 90.3500 102.2483 102.2483 102.2483 91.8723 91.8723
-
- Index: [F,G] Values: 80.1400 76.1813 76.1813 76.1813 76.2500 76.1813 76.1813 76.1813 76.1813 76.1813
-
- Index: [F,H] Values: 34.5200 28.7700 30.4715 30.4715 31.9400 30.4715 28.9200 30.4715 31.4900 28.9600
-
- Index: [G,F] Values: 80.1400 76.1813 76.1813 76.1813 76.2500 76.1813 76.1813 76.1813 76.1813 76.1813
-
- Index: [G,I] Values: 32.9000 30.5150 30.5150 30.5150 33.0200 30.5150 29.1800 30.5150 30.8400 29.2000
-
- Index: [G,J] Values: 35.4800 31.7952 31.7952 31.7952 32.6900 31.7952 31.7952 31.7952 30.7700 29.5800
-
- Index: [H,F] Values: 34.5200 28.7700 30.4715 30.4715 31.9400 30.4715 28.9200 30.4715 31.4900 28.9600
-
- Index: [I,G] Values: 32.9000 30.5150 30.5150 30.5150 33.0200 30.5150 29.1800 30.5150 30.8400 29.2000
-
- Index: [J,G] Values: 35.4800 31.7952 31.7952 31.7952 32.6900 31.7952 31.7952 31.7952 30.7700 29.5800
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: Scenario1 Scenario2 Scenario3 Scenario4 Scenario5 Scenario6 Scenario7 Scenario8 Scenario9 Scenario10 )
- Values: 132244.6268 125026.7148 125443.8668 123687.8467 124599.1253 126842.8788 126651.1586 127138.3389 122807.2747 120235.0802 Max-Min: 12009.5466 Avg: 125467.6911
-Scenario tree costs:
-Scenario Tree Costs
-----------------------------------------------------
-Tree Nodes:
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- Scenario10Node
- Scenario1Node
- Scenario2Node
- Scenario3Node
- Scenario4Node
- Scenario5Node
- Scenario6Node
- Scenario7Node
- Scenario8Node
- Scenario9Node
- Scenarios:
- Scenario1
- Scenario10
- Scenario2
- Scenario3
- Scenario4
- Scenario5
- Scenario6
- Scenario7
- Scenario8
- Scenario9
- Expected cost of (sub)tree rooted at node=154449.6268
-
- Name=Scenario10Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario10
- Expected cost of (sub)tree rooted at node=23630.0000
-
- Name=Scenario1Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario1
- Expected cost of (sub)tree rooted at node=21190.0000
-
- Name=Scenario2Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario2
- Expected cost of (sub)tree rooted at node=20140.0000
-
- Name=Scenario3Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario3
- Expected cost of (sub)tree rooted at node=21290.0000
-
- Name=Scenario4Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario4
- Expected cost of (sub)tree rooted at node=23080.0000
-
- Name=Scenario5Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario5
- Expected cost of (sub)tree rooted at node=23990.0000
-
- Name=Scenario6Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario6
- Expected cost of (sub)tree rooted at node=22470.0000
-
- Name=Scenario7Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario7
- Expected cost of (sub)tree rooted at node=21330.0000
-
- Name=Scenario8Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario8
- Expected cost of (sub)tree rooted at node=22730.0000
-
- Name=Scenario9Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario9
- Expected cost of (sub)tree rooted at node=22200.0000
-
-----------------------------------------------------
-Scenarios:
-
- Name=Scenario1
- Probability=0.1000
- Leaf Node=Scenario1Node
- Tree node sequence:
- RootNode
- Scenario1Node
- Stage= FirstStage Cost=132244.6268
- Stage= SecondStage Cost=21190.0000
- Total scenario cost=153434.6268
-
- Name=Scenario10
- Probability=0.1000
- Leaf Node=Scenario10Node
- Tree node sequence:
- RootNode
- Scenario10Node
- Stage= FirstStage Cost=120235.0802
- Stage= SecondStage Cost=23630.0000
- Total scenario cost=143865.0802
-
- Name=Scenario2
- Probability=0.1000
- Leaf Node=Scenario2Node
- Tree node sequence:
- RootNode
- Scenario2Node
- Stage= FirstStage Cost=125026.7148
- Stage= SecondStage Cost=20140.0000
- Total scenario cost=145166.7148
-
- Name=Scenario3
- Probability=0.1000
- Leaf Node=Scenario3Node
- Tree node sequence:
- RootNode
- Scenario3Node
- Stage= FirstStage Cost=125443.8668
- Stage= SecondStage Cost=21290.0000
- Total scenario cost=146733.8668
-
- Name=Scenario4
- Probability=0.1000
- Leaf Node=Scenario4Node
- Tree node sequence:
- RootNode
- Scenario4Node
- Stage= FirstStage Cost=123687.8467
- Stage= SecondStage Cost=23080.0000
- Total scenario cost=146767.8467
-
- Name=Scenario5
- Probability=0.1000
- Leaf Node=Scenario5Node
- Tree node sequence:
- RootNode
- Scenario5Node
- Stage= FirstStage Cost=124599.1253
- Stage= SecondStage Cost=23990.0000
- Total scenario cost=148589.1253
-
- Name=Scenario6
- Probability=0.1000
- Leaf Node=Scenario6Node
- Tree node sequence:
- RootNode
- Scenario6Node
- Stage= FirstStage Cost=126842.8788
- Stage= SecondStage Cost=22470.0000
- Total scenario cost=149312.8788
-
- Name=Scenario7
- Probability=0.1000
- Leaf Node=Scenario7Node
- Tree node sequence:
- RootNode
- Scenario7Node
- Stage= FirstStage Cost=126651.1586
- Stage= SecondStage Cost=21330.0000
- Total scenario cost=147981.1586
-
- Name=Scenario8
- Probability=0.1000
- Leaf Node=Scenario8Node
- Tree node sequence:
- RootNode
- Scenario8Node
- Stage= FirstStage Cost=127138.3389
- Stage= SecondStage Cost=22730.0000
- Total scenario cost=149868.3389
-
- Name=Scenario9
- Probability=0.1000
- Leaf Node=Scenario9Node
- Tree node sequence:
- RootNode
- Scenario9Node
- Stage= FirstStage Cost=122807.2747
- Stage= SecondStage Cost=22200.0000
- Total scenario cost=145007.2747
-
-----------------------------------------------------
-
-
-Total PH execution time=102.94 seconds
-
-
-Total execution time=107.55 seconds
diff --git a/pyomo/pysp/tests/unit/baselines/networkflow1ef10_linearized_gurobi_with_phpyro.baseline-b b/pyomo/pysp/tests/unit/baselines/networkflow1ef10_linearized_gurobi_with_phpyro.baseline-b
deleted file mode 100755
index 3712a7bb722..00000000000
--- a/pyomo/pysp/tests/unit/baselines/networkflow1ef10_linearized_gurobi_with_phpyro.baseline-b
+++ /dev/null
@@ -1,476 +0,0 @@
-Importing module=/Users/ghackebeil/Projects/Pyomo/pyomo/examples/pysp/networkflow/config/aggregategetter.py
-Module successfully loaded
-Importing module=/Users/ghackebeil/Projects/Pyomo/pyomo/examples/pysp/networkflow/config/rhosettermixed.py
-Module successfully loaded
-Importing module=/Users/ghackebeil/Projects/Pyomo/pyomo/examples/pysp/networkflow/config/xboundsetter.py
-Module successfully loaded
-Client assigned dispatcher with URI=PYRO::PyUtilibServer.dispatcher.3a85ed4a-2b08-4f58-8ed3-cf2d6d174d5f@localhost:52435
-Initializing PH
-
-Transmitting user aggregate callback invocations to phsolverservers
-Broadcasting final aggregate data to phsolverservers
-Transmitting user rho callback invocations to phsolverservers
-Transmitting user bound callback invocations to phsolverservers
-WW PH Extension: Loading user-specified configuration from file=/home/hudson/slave/workspace/Pyomo_trunk_python3.4_snotra_parallel/src/pyomo/examples/pysp/networkflow/config/wwph-aggressivefixing.cfg
-WW PH Extension: Loading variable suffixes from file=/home/hudson/slave/workspace/Pyomo_trunk_python3.4_snotra_parallel/src/pyomo/examples/pysp/networkflow/config/wwph.suffixes
-Starting PH
-
-Initiating PH iteration=0
-Number of discrete variables fixed=0 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 114953.9940 Max-Min=32195.68
-Converger= Term diff value is 206.2356 - threshold reached=False
-Cumulative run-time=3.99 seconds
-
-Initiating PH iteration=1
-WW PH Extension: Setting mipgap to 0.1000000, as specified in the configuration file
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 119020.8072 Max-Min=32471.13
-Converger= Term diff value is 188.3438 - threshold reached=False
-Cumulative run-time=5.38 seconds
-
-Initiating PH iteration=2
-WW PH Extension: Setting mipgap to 0.0913328, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=12 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 118348.2123 Max-Min=27516.15
-Converger= Term diff value is 145.0843 - threshold reached=False
-Cumulative run-time=6.96 seconds
-
-Initiating PH iteration=3
-WW PH Extension: Setting mipgap to 0.0703770, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=14 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 116938.6862 Max-Min=21643.97
-Converger= Term diff value is 71.9291 - threshold reached=False
-Cumulative run-time=8.34 seconds
-
-Initiating PH iteration=4
-WW PH Extension: Setting mipgap to 0.0349391, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=14 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 117850.5224 Max-Min=20023.14
-Converger= Term diff value is 43.9874 - threshold reached=False
-Cumulative run-time=9.43 seconds
-
-Initiating PH iteration=5
-WW PH Extension: Setting mipgap to 0.0214036, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=26 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 120073.5137 Max-Min=16489.60
-Converger= Term diff value is 43.8570 - threshold reached=False
-Cumulative run-time=10.42 seconds
-
-Initiating PH iteration=6
-WW PH Extension: Setting mipgap to 0.0213404, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=28 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 120492.6638 Max-Min=16305.26
-Converger= Term diff value is 34.5095 - threshold reached=False
-Cumulative run-time=11.39 seconds
-
-Initiating PH iteration=7
-WW PH Extension: Setting mipgap to 0.0168123, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=28 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 121603.3927 Max-Min=14060.11
-Converger= Term diff value is 32.0388 - threshold reached=False
-Cumulative run-time=12.29 seconds
-
-Initiating PH iteration=8
-WW PH Extension: Setting mipgap to 0.0156154, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=28 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 122584.8087 Max-Min=12759.07
-Converger= Term diff value is 28.5125 - threshold reached=False
-Cumulative run-time=13.22 seconds
-
-Initiating PH iteration=9
-WW PH Extension: Setting mipgap to 0.0139072, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=28 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 123822.6161 Max-Min=11584.76
-Converger= Term diff value is 32.4924 - threshold reached=False
-Cumulative run-time=14.22 seconds
-
-Initiating PH iteration=10
-WW PH Extension: Setting mipgap to 0.0158351, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=28 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 124191.0941 Max-Min=11584.76
-Converger= Term diff value is 24.6815 - threshold reached=False
-Cumulative run-time=15.30 seconds
-Halting PH - reached maximal iteration count=10
-
-Number of discrete variables fixed before final plugin calls=28 (total=30)
-Number of continuous variables fixed before final plugin calls=0 (total=30)
-PH complete
-
-Convergence history:
-Converger= Term diff
-Iteration Metric Value
- 0 206.2356
- 1 188.3438
- 2 145.0843
- 3 71.9291
- 4 43.9874
- 5 43.8570
- 6 34.5095
- 7 32.0388
- 8 28.5125
- 9 32.4924
- 10 24.6815
-
-
-Final number of discrete variables fixed=28 (total=30)
-Final number of continuous variables fixed=0 (total=30)
-
-Computing objective inner bound at xhat solution
-At least one sub-problem solve time was undefined - skipping timing statistics
-At least one sub-problem solve time was undefined - skipping timing statistics
- ** At least one sub-problem failed to solve! **
- Failed sub-problems:
- Scenario1
- Scenario5
- Scenario7
- Scenario9
-
-Failed to compute bound at xhat due to one or more solve failures. Restoring PH to solution at final iteration.
-Generating scenario tree solution from scenario averages
-
-Scenario tree variable values:
-
- Stage: FirstStage
- (Scenarios: Scenario1 Scenario2 Scenario3 Scenario4 Scenario5 Scenario6 Scenario7 Scenario8 Scenario9 Scenario10 )
- Variable: b0
- Index: [A,B] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [B,A] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [B,C] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [B,E] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [C,B] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [D,E] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [E,B] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [E,D] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [E,F] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [F,E] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [F,G] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [F,H] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [G,F] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [G,I] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [G,J] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [H,F] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [I,G] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [J,G] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- (Scenarios: Scenario1 Scenario2 Scenario3 Scenario4 Scenario5 Scenario6 Scenario7 Scenario8 Scenario9 Scenario10 )
- Variable: x
- Index: [A,B] Values: 34.7300 31.4459 31.4459 31.4459 32.0100 31.4459 30.2400 31.4459 32.1100 30.8949
-
- Index: [B,A] Values: 34.7300 31.4459 31.4459 31.4459 32.0100 31.4459 30.2400 31.4459 32.1100 30.8949
-
- Index: [B,C] Values: 36.5300 28.6800 28.4100 30.1944 31.3200 30.1944 28.6100 30.1944 30.7900 29.9400
-
- Index: [B,E] Values: 82.7400 73.7772 73.7772 73.7772 75.6700 79.1625 72.9791 79.1625 72.6300 69.7000
-
- Index: [C,B] Values: 36.5300 28.6800 28.4100 30.1944 31.3200 30.1944 28.6100 30.1944 30.7900 29.9400
-
- Index: [D,E] Values: 35.3500 30.5666 30.5666 30.5666 32.6900 30.5666 30.7135 30.5666 30.9700 28.7200
-
- Index: [E,B] Values: 82.7400 73.7772 73.7772 73.7772 75.6700 79.1625 72.9791 79.1625 72.6300 69.7000
-
- Index: [E,D] Values: 35.3500 30.5666 30.5666 30.5666 32.6900 30.5666 30.7135 30.5666 30.9700 28.7200
-
- Index: [E,F] Values: 97.0800 96.7408 96.7408 96.7408 90.3500 99.2557 96.2064 96.7408 96.7408 98.7881
-
- Index: [F,E] Values: 97.0800 96.7408 96.7408 96.7408 90.3500 99.2557 96.2064 96.7408 96.7408 98.7881
-
- Index: [F,G] Values: 80.1400 76.8536 81.8544 76.8536 76.2500 76.8536 76.3184 76.8536 72.8500 76.3184
-
- Index: [F,H] Values: 34.5200 30.5585 30.5585 30.5585 31.9400 30.5585 28.9200 30.5585 31.4900 28.9600
-
- Index: [G,F] Values: 80.1400 76.8536 81.8544 76.8536 76.2500 76.8536 76.3184 76.8536 72.8500 76.3184
-
- Index: [G,I] Values: 32.9000 30.3214 28.7500 30.3214 33.0200 30.3214 29.1800 30.3214 30.8400 29.2000
-
- Index: [G,J] Values: 35.4800 31.4540 31.4540 31.4540 32.6900 31.4540 31.0034 31.4540 30.7700 29.5800
-
- Index: [H,F] Values: 34.5200 30.5585 30.5585 30.5585 31.9400 30.5585 28.9200 30.5585 31.4900 28.9600
-
- Index: [I,G] Values: 32.9000 30.3214 28.7500 30.3214 33.0200 30.3214 29.1800 30.3214 30.8400 29.2000
-
- Index: [J,G] Values: 35.4800 31.4540 31.4540 31.4540 32.6900 31.4540 31.0034 31.4540 30.7700 29.5800
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: Scenario1 Scenario2 Scenario3 Scenario4 Scenario5 Scenario6 Scenario7 Scenario8 Scenario9 Scenario10 )
- Values: 132428.1600 122982.6524 123653.6145 123333.9991 124478.4400 125287.4685 121466.2344 124734.1909 122702.7797 120843.4018 Max-Min: 11584.7582 Avg: 124191.0941
-Scenario tree costs:
-Scenario Tree Costs
-----------------------------------------------------
-Tree Nodes:
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- Scenario10Node
- Scenario1Node
- Scenario2Node
- Scenario3Node
- Scenario4Node
- Scenario5Node
- Scenario6Node
- Scenario7Node
- Scenario8Node
- Scenario9Node
- Scenarios:
- Scenario1
- Scenario10
- Scenario2
- Scenario3
- Scenario4
- Scenario5
- Scenario6
- Scenario7
- Scenario8
- Scenario9
- Expected cost of (sub)tree rooted at node=153513.1600
-
- Name=Scenario10Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario10
- Expected cost of (sub)tree rooted at node=20270.0000
-
- Name=Scenario1Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario1
- Expected cost of (sub)tree rooted at node=17830.0000
-
- Name=Scenario2Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario2
- Expected cost of (sub)tree rooted at node=20140.0000
-
- Name=Scenario3Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario3
- Expected cost of (sub)tree rooted at node=21290.0000
-
- Name=Scenario4Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario4
- Expected cost of (sub)tree rooted at node=23080.0000
-
- Name=Scenario5Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario5
- Expected cost of (sub)tree rooted at node=22870.0000
-
- Name=Scenario6Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario6
- Expected cost of (sub)tree rooted at node=22470.0000
-
- Name=Scenario7Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario7
- Expected cost of (sub)tree rooted at node=21330.0000
-
- Name=Scenario8Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario8
- Expected cost of (sub)tree rooted at node=22730.0000
-
- Name=Scenario9Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario9
- Expected cost of (sub)tree rooted at node=18840.0000
-
-----------------------------------------------------
-Scenarios:
-
- Name=Scenario1
- Probability=0.1000
- Leaf Node=Scenario1Node
- Tree node sequence:
- RootNode
- Scenario1Node
- Stage= FirstStage Cost=132428.1600
- Stage= SecondStage Cost=17830.0000
- Total scenario cost=150258.1600
-
- Name=Scenario10
- Probability=0.1000
- Leaf Node=Scenario10Node
- Tree node sequence:
- RootNode
- Scenario10Node
- Stage= FirstStage Cost=120843.4018
- Stage= SecondStage Cost=20270.0000
- Total scenario cost=141113.4018
-
- Name=Scenario2
- Probability=0.1000
- Leaf Node=Scenario2Node
- Tree node sequence:
- RootNode
- Scenario2Node
- Stage= FirstStage Cost=122982.6524
- Stage= SecondStage Cost=20140.0000
- Total scenario cost=143122.6524
-
- Name=Scenario3
- Probability=0.1000
- Leaf Node=Scenario3Node
- Tree node sequence:
- RootNode
- Scenario3Node
- Stage= FirstStage Cost=123653.6145
- Stage= SecondStage Cost=21290.0000
- Total scenario cost=144943.6145
-
- Name=Scenario4
- Probability=0.1000
- Leaf Node=Scenario4Node
- Tree node sequence:
- RootNode
- Scenario4Node
- Stage= FirstStage Cost=123333.9991
- Stage= SecondStage Cost=23080.0000
- Total scenario cost=146413.9991
-
- Name=Scenario5
- Probability=0.1000
- Leaf Node=Scenario5Node
- Tree node sequence:
- RootNode
- Scenario5Node
- Stage= FirstStage Cost=124478.4400
- Stage= SecondStage Cost=22870.0000
- Total scenario cost=147348.4400
-
- Name=Scenario6
- Probability=0.1000
- Leaf Node=Scenario6Node
- Tree node sequence:
- RootNode
- Scenario6Node
- Stage= FirstStage Cost=125287.4685
- Stage= SecondStage Cost=22470.0000
- Total scenario cost=147757.4685
-
- Name=Scenario7
- Probability=0.1000
- Leaf Node=Scenario7Node
- Tree node sequence:
- RootNode
- Scenario7Node
- Stage= FirstStage Cost=121466.2344
- Stage= SecondStage Cost=21330.0000
- Total scenario cost=142796.2344
-
- Name=Scenario8
- Probability=0.1000
- Leaf Node=Scenario8Node
- Tree node sequence:
- RootNode
- Scenario8Node
- Stage= FirstStage Cost=124734.1909
- Stage= SecondStage Cost=22730.0000
- Total scenario cost=147464.1909
-
- Name=Scenario9
- Probability=0.1000
- Leaf Node=Scenario9Node
- Tree node sequence:
- RootNode
- Scenario9Node
- Stage= FirstStage Cost=122702.7797
- Stage= SecondStage Cost=18840.0000
- Total scenario cost=141542.7797
-
-----------------------------------------------------
-
-
-Total PH execution time=16.96 seconds
-
-
-Total execution time=24.23 seconds
diff --git a/pyomo/pysp/tests/unit/baselines/networkflow1ef10_linearized_gurobi_with_phpyro.baseline-c b/pyomo/pysp/tests/unit/baselines/networkflow1ef10_linearized_gurobi_with_phpyro.baseline-c
deleted file mode 100644
index c28572322f2..00000000000
--- a/pyomo/pysp/tests/unit/baselines/networkflow1ef10_linearized_gurobi_with_phpyro.baseline-c
+++ /dev/null
@@ -1,492 +0,0 @@
-Importing module=/Users/ghackebeil/Projects/Pyomo/pyomo/examples/pysp/networkflow/config/aggregategetter.py
-Module successfully loaded
-Importing module=/Users/ghackebeil/Projects/Pyomo/pyomo/examples/pysp/networkflow/config/rhosettermixed.py
-Module successfully loaded
-Importing module=/Users/ghackebeil/Projects/Pyomo/pyomo/examples/pysp/networkflow/config/xboundsetter.py
-Module successfully loaded
-Client assigned dispatcher with URI=PYRO::PyUtilibServer.dispatcher.832e2483-57d6-4b90-ada3-693a4e778de3@localhost:49079
-Initializing PH
-
-Transmitting user aggregate callback invocations to phsolverservers
-Broadcasting final aggregate data to phsolverservers
-Transmitting user rho callback invocations to phsolverservers
-Transmitting user bound callback invocations to phsolverservers
-WW PH Extension: Loading user-specified configuration from file=/home/hudson/slave/workspace/Pyomo_trunk_python3.4_snotra_parallel/src/pyomo/examples/pysp/networkflow/config/wwph-aggressivefixing.cfg
-WW PH Extension: Loading variable suffixes from file=/home/hudson/slave/workspace/Pyomo_trunk_python3.4_snotra_parallel/src/pyomo/examples/pysp/networkflow/config/wwph.suffixes
-Starting PH
-
-Initiating PH iteration=0
-Number of discrete variables fixed=0 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 114953.9940 Max-Min=32195.68
-Converger= Term diff value is 206.2356 - threshold reached=False
-Cumulative run-time=4.07 seconds
-
-Initiating PH iteration=1
-WW PH Extension: Setting mipgap to 0.1000000, as specified in the configuration file
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 119041.3277 Max-Min=32471.13
-Converger= Term diff value is 182.0860 - threshold reached=False
-Cumulative run-time=5.42 seconds
-
-Initiating PH iteration=2
-WW PH Extension: Setting mipgap to 0.0883014, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=12 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 118363.5141 Max-Min=27509.66
-Converger= Term diff value is 164.6465 - threshold reached=False
-Cumulative run-time=6.83 seconds
-
-Initiating PH iteration=3
-WW PH Extension: Setting mipgap to 0.0798533, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=14 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 117977.2041 Max-Min=19812.22
-Converger= Term diff value is 133.3001 - threshold reached=False
-Cumulative run-time=8.25 seconds
-
-Initiating PH iteration=4
-WW PH Extension: Setting mipgap to 0.0646685, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=16 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 119397.3249 Max-Min=20443.58
-Converger= Term diff value is 116.1611 - threshold reached=False
-Cumulative run-time=9.51 seconds
-
-Initiating PH iteration=5
-WW PH Extension: Setting mipgap to 0.0563660, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=22 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 120922.7408 Max-Min=15636.37
-Converger= Term diff value is 98.0799 - threshold reached=False
-Cumulative run-time=10.74 seconds
-
-Initiating PH iteration=6
-WW PH Extension: Setting mipgap to 0.0476071, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=24 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 121614.6438 Max-Min=13513.19
-Converger= Term diff value is 59.0619 - threshold reached=False
-Cumulative run-time=11.98 seconds
-
-Initiating PH iteration=7
-WW PH Extension: Setting mipgap to 0.0287060, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=24 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 121027.6901 Max-Min=15253.43
-Converger= Term diff value is 58.7473 - threshold reached=False
-Cumulative run-time=13.11 seconds
-
-Initiating PH iteration=8
-WW PH Extension: Setting mipgap to 0.0285536, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=26 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 122275.6399 Max-Min=14576.76
-Converger= Term diff value is 43.5260 - threshold reached=False
-Cumulative run-time=14.48 seconds
-
-Initiating PH iteration=9
-WW PH Extension: Setting mipgap to 0.0211801, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=26 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 123267.4230 Max-Min=13342.56
-Converger= Term diff value is 41.5175 - threshold reached=False
-Cumulative run-time=16.45 seconds
-
-Initiating PH iteration=10
-WW PH Extension: Setting mipgap to 0.0202071, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=26 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 124237.1324 Max-Min=12780.57
-Converger= Term diff value is 37.3340 - threshold reached=False
-Cumulative run-time=18.22 seconds
-Halting PH - reached maximal iteration count=10
-
-Number of discrete variables fixed before final plugin calls=26 (total=30)
-Number of continuous variables fixed before final plugin calls=0 (total=30)
-PH complete
-
-Convergence history:
-Converger= Term diff
-Iteration Metric Value
- 0 206.2356
- 1 182.0860
- 2 164.6465
- 3 133.3001
- 4 116.1611
- 5 98.0799
- 6 59.0619
- 7 58.7473
- 8 43.5260
- 9 41.5175
- 10 37.3340
-
-
-Final number of discrete variables fixed=26 (total=30)
-Final number of continuous variables fixed=0 (total=30)
-
-Computing objective inner bound at xhat solution
-At least one sub-problem solve time was undefined - skipping timing statistics
-At least one sub-problem solve time was undefined - skipping timing statistics
- ** At least one sub-problem failed to solve! **
- Failed sub-problems:
- Scenario1
- Scenario5
- Scenario7
- Scenario9
-
-Failed to compute bound at xhat due to one or more solve failures. Restoring PH to solution at final iteration.
-Generating scenario tree solution from scenario averages
-
-Scenario tree variable values:
-
- Stage: FirstStage
- (Scenarios: Scenario1 Scenario2 Scenario3 Scenario4 Scenario5 Scenario6 Scenario7 Scenario8 Scenario9 Scenario10 )
- Variable: b0
- Index: [A,B] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [B,A] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [B,C] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [B,E] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [C,B] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [C,D] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 0.0000
-
- Index: [D,C] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 0.0000
-
- Index: [D,E] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [E,B] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [E,D] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [E,F] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [F,E] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [F,G] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [F,H] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [G,F] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [G,H] Values: 0.0000 1.0000 1.0000 0.0000 0.0000 1.0000 0.0000 0.0000 0.0000 0.0000
-
- Index: [G,I] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [G,J] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [H,F] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [H,G] Values: 0.0000 1.0000 1.0000 0.0000 0.0000 1.0000 0.0000 0.0000 0.0000 0.0000
-
- Index: [I,G] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [J,G] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- (Scenarios: Scenario1 Scenario2 Scenario3 Scenario4 Scenario5 Scenario6 Scenario7 Scenario8 Scenario9 Scenario10 )
- Variable: x
- Index: [A,B] Values: 34.7300 31.4460 31.4460 31.4460 32.0100 31.4460 30.2400 31.4460 32.1100 31.4460
-
- Index: [B,A] Values: 34.7300 31.4460 31.4460 31.4460 32.0100 31.4460 30.2400 31.4460 32.1100 31.4460
-
- Index: [B,C] Values: 30.6219 28.6800 22.8876 26.1573 26.5531 27.6800 22.8876 28.3400 26.1573 29.9400
-
- Index: [B,E] Values: 70.7522 70.7522 57.6157 64.1653 64.7540 64.4300 56.8971 65.1600 64.1653 69.7000
-
- Index: [C,B] Values: 30.6219 28.6800 22.8876 26.1573 26.5531 27.6800 22.8876 28.3400 26.1573 29.9400
-
- Index: [C,D] Values: 11.9878 3.6541 9.7443 9.7443 10.9160 9.7443 10.8729 23.1338 8.4647 0.0000
-
- Index: [D,C] Values: 11.9878 3.6541 9.7443 9.7443 10.9160 9.7443 10.8729 23.1338 8.4647 0.0000
-
- Index: [D,E] Values: 32.6781 28.4200 27.2524 30.1939 30.1569 30.1939 30.1939 30.1939 29.1627 28.7200
-
- Index: [E,B] Values: 70.7522 70.7522 57.6157 64.1653 64.7540 64.4300 56.8971 65.1600 64.1653 69.7000
-
- Index: [E,D] Values: 32.6781 28.4200 27.2524 30.1939 30.1569 30.1939 30.1939 30.1939 29.1627 28.7200
-
- Index: [E,F] Values: 97.0800 95.4991 95.4991 95.4991 90.3500 95.4991 98.1692 95.4991 95.4991 95.4991
-
- Index: [F,E] Values: 97.0800 95.4991 95.4991 95.4991 90.3500 95.4991 98.1692 95.4991 95.4991 95.4991
-
- Index: [F,G] Values: 80.1400 72.9893 72.9893 72.9893 76.2500 72.9893 72.9893 72.9893 72.8500 72.9893
-
- Index: [F,H] Values: 34.5200 28.7700 28.4800 28.9338 31.9400 27.6300 28.9338 28.9338 31.4900 28.9600
-
- Index: [G,F] Values: 80.1400 72.9893 72.9893 72.9893 76.2500 72.9893 72.9893 72.9893 72.8500 72.9893
-
- Index: [G,H] Values: 0.0000 1.1470 1.1470 0.0000 0.0000 1.1470 0.0000 0.0000 0.0000 0.0000
-
- Index: [G,I] Values: 32.9000 30.3215 28.7500 30.3215 33.0200 30.3215 29.1800 30.3215 30.8400 29.2000
-
- Index: [G,J] Values: 35.4800 32.6424 32.6424 32.6424 32.6900 28.5621 32.6424 32.6424 30.7700 29.5800
-
- Index: [H,F] Values: 34.5200 28.7700 28.4800 28.9338 31.9400 27.6300 28.9338 28.9338 31.4900 28.9600
-
- Index: [H,G] Values: 0.0000 1.1470 1.1470 0.0000 0.0000 1.1470 0.0000 0.0000 0.0000 0.0000
-
- Index: [I,G] Values: 32.9000 30.3215 28.7500 30.3215 33.0200 30.3215 29.1800 30.3215 30.8400 29.2000
-
- Index: [J,G] Values: 35.4800 32.6424 32.6424 32.6424 32.6900 28.5621 32.6424 32.6424 30.7700 29.5800
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: Scenario1 Scenario2 Scenario3 Scenario4 Scenario5 Scenario6 Scenario7 Scenario8 Scenario9 Scenario10 )
- Values: 132278.1003 126080.8639 121968.0557 122993.3190 124662.2610 124606.8457 120634.3098 126757.5621 122892.4795 119497.5274 Max-Min: 12780.5728 Avg: 124237.1324
-Scenario tree costs:
-Scenario Tree Costs
-----------------------------------------------------
-Tree Nodes:
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- Scenario10Node
- Scenario1Node
- Scenario2Node
- Scenario3Node
- Scenario4Node
- Scenario5Node
- Scenario6Node
- Scenario7Node
- Scenario8Node
- Scenario9Node
- Scenarios:
- Scenario1
- Scenario10
- Scenario2
- Scenario3
- Scenario4
- Scenario5
- Scenario6
- Scenario7
- Scenario8
- Scenario9
- Expected cost of (sub)tree rooted at node=154371.1003
-
- Name=Scenario10Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario10
- Expected cost of (sub)tree rooted at node=20270.0000
-
- Name=Scenario1Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario1
- Expected cost of (sub)tree rooted at node=21190.0000
-
- Name=Scenario2Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario2
- Expected cost of (sub)tree rooted at node=20140.0000
-
- Name=Scenario3Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario3
- Expected cost of (sub)tree rooted at node=22410.0000
-
- Name=Scenario4Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario4
- Expected cost of (sub)tree rooted at node=23080.0000
-
- Name=Scenario5Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario5
- Expected cost of (sub)tree rooted at node=23990.0000
-
- Name=Scenario6Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario6
- Expected cost of (sub)tree rooted at node=22470.0000
-
- Name=Scenario7Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario7
- Expected cost of (sub)tree rooted at node=22450.0000
-
- Name=Scenario8Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario8
- Expected cost of (sub)tree rooted at node=22730.0000
-
- Name=Scenario9Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario9
- Expected cost of (sub)tree rooted at node=22200.0000
-
-----------------------------------------------------
-Scenarios:
-
- Name=Scenario1
- Probability=0.1000
- Leaf Node=Scenario1Node
- Tree node sequence:
- RootNode
- Scenario1Node
- Stage= FirstStage Cost=132278.1003
- Stage= SecondStage Cost=21190.0000
- Total scenario cost=153468.1003
-
- Name=Scenario10
- Probability=0.1000
- Leaf Node=Scenario10Node
- Tree node sequence:
- RootNode
- Scenario10Node
- Stage= FirstStage Cost=119497.5274
- Stage= SecondStage Cost=20270.0000
- Total scenario cost=139767.5274
-
- Name=Scenario2
- Probability=0.1000
- Leaf Node=Scenario2Node
- Tree node sequence:
- RootNode
- Scenario2Node
- Stage= FirstStage Cost=126080.8639
- Stage= SecondStage Cost=20140.0000
- Total scenario cost=146220.8639
-
- Name=Scenario3
- Probability=0.1000
- Leaf Node=Scenario3Node
- Tree node sequence:
- RootNode
- Scenario3Node
- Stage= FirstStage Cost=121968.0557
- Stage= SecondStage Cost=22410.0000
- Total scenario cost=144378.0557
-
- Name=Scenario4
- Probability=0.1000
- Leaf Node=Scenario4Node
- Tree node sequence:
- RootNode
- Scenario4Node
- Stage= FirstStage Cost=122993.3190
- Stage= SecondStage Cost=23080.0000
- Total scenario cost=146073.3190
-
- Name=Scenario5
- Probability=0.1000
- Leaf Node=Scenario5Node
- Tree node sequence:
- RootNode
- Scenario5Node
- Stage= FirstStage Cost=124662.2610
- Stage= SecondStage Cost=23990.0000
- Total scenario cost=148652.2610
-
- Name=Scenario6
- Probability=0.1000
- Leaf Node=Scenario6Node
- Tree node sequence:
- RootNode
- Scenario6Node
- Stage= FirstStage Cost=124606.8457
- Stage= SecondStage Cost=22470.0000
- Total scenario cost=147076.8457
-
- Name=Scenario7
- Probability=0.1000
- Leaf Node=Scenario7Node
- Tree node sequence:
- RootNode
- Scenario7Node
- Stage= FirstStage Cost=120634.3098
- Stage= SecondStage Cost=22450.0000
- Total scenario cost=143084.3098
-
- Name=Scenario8
- Probability=0.1000
- Leaf Node=Scenario8Node
- Tree node sequence:
- RootNode
- Scenario8Node
- Stage= FirstStage Cost=126757.5621
- Stage= SecondStage Cost=22730.0000
- Total scenario cost=149487.5621
-
- Name=Scenario9
- Probability=0.1000
- Leaf Node=Scenario9Node
- Tree node sequence:
- RootNode
- Scenario9Node
- Stage= FirstStage Cost=122892.4795
- Stage= SecondStage Cost=22200.0000
- Total scenario cost=145092.4795
-
-----------------------------------------------------
-
-
-Total PH execution time=20.00 seconds
-
-
-Total execution time=26.99 seconds
diff --git a/pyomo/pysp/tests/unit/baselines/networkflow1ef10_linearized_gurobi_with_phpyro_darwin.baseline b/pyomo/pysp/tests/unit/baselines/networkflow1ef10_linearized_gurobi_with_phpyro_darwin.baseline
deleted file mode 100644
index eb07a30cea1..00000000000
--- a/pyomo/pysp/tests/unit/baselines/networkflow1ef10_linearized_gurobi_with_phpyro_darwin.baseline
+++ /dev/null
@@ -1,483 +0,0 @@
-Importing module=/Users/ghackebeil/Projects/Pyomo/pyomo/examples/pysp/networkflow/config/aggregategetter.py
-Module successfully loaded
-Importing module=/Users/ghackebeil/Projects/Pyomo/pyomo/examples/pysp/networkflow/config/rhosettermixed.py
-Module successfully loaded
-Importing module=/Users/ghackebeil/Projects/Pyomo/pyomo/examples/pysp/networkflow/config/xboundsetter.py
-Module successfully loaded
-Client assigned dispatcher with URI=PYRO::PyUtilibServer.dispatcher.7c788ec5-81ac-4073-9191-30523cb7ca91@127.0.0.1:52733
-Initializing PH
-
-Transmitting user aggregate callback invocations to phsolverservers
-Broadcasting final aggregate data to phsolverservers
-Transmitting user rho callback invocations to phsolverservers
-Transmitting user bound callback invocations to phsolverservers
-WW PH Extension: Loading user-specified configuration from file=/Users/ghackebeil/Projects/Pyomo/pyomo/examples/pysp/networkflow/config/wwph-aggressivefixing.cfg
-WW PH Extension: Loading variable suffixes from file=/Users/ghackebeil/Projects/Pyomo/pyomo/examples/pysp/networkflow/config/wwph.suffixes
-Starting PH
-
-Initiating PH iteration=0
-Number of discrete variables fixed=0 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 114953.9940 Max-Min=32195.68
-Converger= Term diff value is 206.2356 - threshold reached=False
-Cumulative run-time=14.35 seconds
-
-Initiating PH iteration=1
-WW PH Extension: Setting mipgap to 0.1000000, as specified in the configuration file
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 118958.3555 Max-Min=25309.87
-Converger= Term diff value is 151.7783 - threshold reached=False
-Cumulative run-time=18.29 seconds
-
-Initiating PH iteration=2
-WW PH Extension: Setting mipgap to 0.0736197, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=14 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 117417.7114 Max-Min=20221.53
-Converger= Term diff value is 75.6391 - threshold reached=False
-Cumulative run-time=22.37 seconds
-
-Initiating PH iteration=3
-WW PH Extension: Setting mipgap to 0.0367363, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=24 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 118302.1865 Max-Min=18878.48
-Converger= Term diff value is 66.8346 - threshold reached=False
-Cumulative run-time=25.19 seconds
-
-Initiating PH iteration=4
-WW PH Extension: Setting mipgap to 0.0324712, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=26 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 118169.8779 Max-Min=18312.43
-Converger= Term diff value is 49.6584 - threshold reached=False
-Cumulative run-time=27.94 seconds
-
-Initiating PH iteration=5
-WW PH Extension: Setting mipgap to 0.0241507, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=26 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 119041.4961 Max-Min=17507.28
-Converger= Term diff value is 37.9349 - threshold reached=False
-Cumulative run-time=30.76 seconds
-
-Initiating PH iteration=6
-WW PH Extension: Setting mipgap to 0.0184716, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=28 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 120860.9325 Max-Min=16360.78
-Converger= Term diff value is 40.0642 - threshold reached=False
-Cumulative run-time=33.58 seconds
-
-Initiating PH iteration=7
-WW PH Extension: Setting mipgap to 0.0195031, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=30 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 121811.5953 Max-Min=14078.86
-Converger= Term diff value is 29.4914 - threshold reached=False
-Cumulative run-time=35.80 seconds
-
-Initiating PH iteration=8
-WW PH Extension: Setting mipgap to 0.0143814, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=30 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 122624.4160 Max-Min=11889.27
-Converger= Term diff value is 25.5252 - threshold reached=False
-Cumulative run-time=38.12 seconds
-
-Initiating PH iteration=9
-WW PH Extension: Setting mipgap to 0.0124601, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=30 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 124226.1461 Max-Min=10527.27
-Converger= Term diff value is 25.1624 - threshold reached=False
-Cumulative run-time=40.23 seconds
-
-Initiating PH iteration=10
-WW PH Extension: Setting mipgap to 0.0122844, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=30 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 125466.1341 Max-Min=12010.57
-Converger= Term diff value is 29.9436 - threshold reached=False
-Cumulative run-time=42.51 seconds
-Halting PH - reached maximal iteration count=10
-
-Number of discrete variables fixed before final plugin calls=30 (total=30)
-Number of continuous variables fixed before final plugin calls=0 (total=30)
-PH complete
-
-Convergence history:
-Converger= Term diff
-Iteration Metric Value
- 0 206.2356
- 1 151.7783
- 2 75.6391
- 3 66.8346
- 4 49.6584
- 5 37.9349
- 6 40.0642
- 7 29.4914
- 8 25.5252
- 9 25.1624
- 10 29.9436
-
-
-Final number of discrete variables fixed=30 (total=30)
-Final number of continuous variables fixed=0 (total=30)
-
-Computing objective inner bound at xhat solution
-At least one sub-problem solve time was undefined - skipping timing statistics
-At least one sub-problem solve time was undefined - skipping timing statistics
- ** At least one sub-problem failed to solve! **
- Failed sub-problems:
- Scenario1
- Scenario5
- Scenario9
-
-Failed to compute bound at xhat due to one or more solve failures. Restoring PH to solution at final iteration.
-Generating scenario tree solution from scenario averages
-
-Scenario tree variable values:
-
- Stage: FirstStage
- (Scenarios: Scenario1 Scenario2 Scenario3 Scenario4 Scenario5 Scenario6 Scenario7 Scenario8 Scenario9 Scenario10 )
- Variable: b0
- Index: [A,B] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [B,A] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [B,C] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [B,E] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [C,B] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [C,D] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [D,C] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [D,E] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [E,B] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [E,D] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [E,F] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [F,E] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [F,G] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [F,H] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [G,F] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [G,I] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [G,J] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [H,F] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [I,G] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [J,G] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- (Scenarios: Scenario1 Scenario2 Scenario3 Scenario4 Scenario5 Scenario6 Scenario7 Scenario8 Scenario9 Scenario10 )
- Variable: x
- Index: [A,B] Values: 34.7300 31.9740 31.9740 31.9740 32.0100 31.9740 30.2400 31.9740 32.1100 31.9740
-
- Index: [B,A] Values: 34.7300 31.9740 31.9740 31.9740 32.0100 31.9740 30.2400 31.9740 32.1100 31.9740
-
- Index: [B,C] Values: 25.3679 28.6800 28.4100 23.9200 26.2497 27.6800 28.6100 28.3400 26.2497 22.9685
-
- Index: [B,E] Values: 71.5779 67.1900 67.3600 64.6144 63.1063 64.6144 67.3300 65.1600 63.2072 57.1363
-
- Index: [C,B] Values: 25.3679 28.6800 28.4100 23.9200 26.2497 27.6800 28.6100 28.3400 26.2497 22.9685
-
- Index: [C,D] Values: 11.1621 12.5637 12.5637 12.5637 12.5637 12.5637 12.5637 12.5637 9.4228 12.5637
-
- Index: [D,C] Values: 11.1621 12.5637 12.5637 12.5637 12.5637 12.5637 12.5637 12.5637 9.4228 12.5637
-
- Index: [D,E] Values: 37.9321 31.1333 31.1333 31.1333 30.4603 31.1333 31.1333 31.1333 29.0703 31.1333
-
- Index: [E,B] Values: 71.5779 67.1900 67.3600 64.6144 63.1063 64.6144 67.3300 65.1600 63.2072 57.1363
-
- Index: [E,D] Values: 37.9321 31.1333 31.1333 31.1333 30.4603 31.1333 31.1333 31.1333 29.0703 31.1333
-
- Index: [E,F] Values: 97.0800 91.8723 91.8723 91.8723 90.3500 102.2483 102.2483 102.2483 91.8723 91.8723
-
- Index: [F,E] Values: 97.0800 91.8723 91.8723 91.8723 90.3500 102.2483 102.2483 102.2483 91.8723 91.8723
-
- Index: [F,G] Values: 80.1400 76.1813 76.1813 76.1813 76.2500 76.1813 76.1813 76.1813 76.1813 76.1813
-
- Index: [F,H] Values: 34.5200 28.7700 30.4715 30.4715 31.9400 30.4715 28.9200 30.4715 31.4900 28.9600
-
- Index: [G,F] Values: 80.1400 76.1813 76.1813 76.1813 76.2500 76.1813 76.1813 76.1813 76.1813 76.1813
-
- Index: [G,I] Values: 32.9000 30.5150 30.5150 30.5150 33.0200 30.5150 29.1800 30.5150 30.8400 29.2000
-
- Index: [G,J] Values: 35.4800 31.7952 31.7952 31.7952 32.6900 31.7952 31.7952 31.7952 30.7700 29.5800
-
- Index: [H,F] Values: 34.5200 28.7700 30.4715 30.4715 31.9400 30.4715 28.9200 30.4715 31.4900 28.9600
-
- Index: [I,G] Values: 32.9000 30.5150 30.5150 30.5150 33.0200 30.5150 29.1800 30.5150 30.8400 29.2000
-
- Index: [J,G] Values: 35.4800 31.7952 31.7952 31.7952 32.6900 31.7952 31.7952 31.7952 30.7700 29.5800
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: Scenario1 Scenario2 Scenario3 Scenario4 Scenario5 Scenario6 Scenario7 Scenario8 Scenario9 Scenario10 )
- Values: 132244.7769 125024.0196 125441.1716 123685.6476 124599.3043 126840.6797 126648.4634 127135.6437 122807.4227 120234.2114 Max-Min: 12010.5655 Avg: 125466.1341
-Scenario tree costs:
-Scenario Tree Costs
-----------------------------------------------------
-Tree Nodes:
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- Scenario10Node
- Scenario1Node
- Scenario2Node
- Scenario3Node
- Scenario4Node
- Scenario5Node
- Scenario6Node
- Scenario7Node
- Scenario8Node
- Scenario9Node
- Scenarios:
- Scenario1
- Scenario10
- Scenario2
- Scenario3
- Scenario4
- Scenario5
- Scenario6
- Scenario7
- Scenario8
- Scenario9
- Expected cost of (sub)tree rooted at node=154449.7769
-
- Name=Scenario10Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario10
- Expected cost of (sub)tree rooted at node=23630.0000
-
- Name=Scenario1Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario1
- Expected cost of (sub)tree rooted at node=21190.0000
-
- Name=Scenario2Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario2
- Expected cost of (sub)tree rooted at node=20140.0000
-
- Name=Scenario3Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario3
- Expected cost of (sub)tree rooted at node=21290.0000
-
- Name=Scenario4Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario4
- Expected cost of (sub)tree rooted at node=23080.0000
-
- Name=Scenario5Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario5
- Expected cost of (sub)tree rooted at node=23990.0000
-
- Name=Scenario6Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario6
- Expected cost of (sub)tree rooted at node=22470.0000
-
- Name=Scenario7Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario7
- Expected cost of (sub)tree rooted at node=21330.0000
-
- Name=Scenario8Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario8
- Expected cost of (sub)tree rooted at node=22730.0000
-
- Name=Scenario9Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario9
- Expected cost of (sub)tree rooted at node=22200.0000
-
-----------------------------------------------------
-Scenarios:
-
- Name=Scenario1
- Probability=0.1000
- Leaf Node=Scenario1Node
- Tree node sequence:
- RootNode
- Scenario1Node
- Stage= FirstStage Cost=132244.7769
- Stage= SecondStage Cost=21190.0000
- Total scenario cost=153434.7769
-
- Name=Scenario10
- Probability=0.1000
- Leaf Node=Scenario10Node
- Tree node sequence:
- RootNode
- Scenario10Node
- Stage= FirstStage Cost=120234.2114
- Stage= SecondStage Cost=23630.0000
- Total scenario cost=143864.2114
-
- Name=Scenario2
- Probability=0.1000
- Leaf Node=Scenario2Node
- Tree node sequence:
- RootNode
- Scenario2Node
- Stage= FirstStage Cost=125024.0196
- Stage= SecondStage Cost=20140.0000
- Total scenario cost=145164.0196
-
- Name=Scenario3
- Probability=0.1000
- Leaf Node=Scenario3Node
- Tree node sequence:
- RootNode
- Scenario3Node
- Stage= FirstStage Cost=125441.1716
- Stage= SecondStage Cost=21290.0000
- Total scenario cost=146731.1716
-
- Name=Scenario4
- Probability=0.1000
- Leaf Node=Scenario4Node
- Tree node sequence:
- RootNode
- Scenario4Node
- Stage= FirstStage Cost=123685.6476
- Stage= SecondStage Cost=23080.0000
- Total scenario cost=146765.6476
-
- Name=Scenario5
- Probability=0.1000
- Leaf Node=Scenario5Node
- Tree node sequence:
- RootNode
- Scenario5Node
- Stage= FirstStage Cost=124599.3043
- Stage= SecondStage Cost=23990.0000
- Total scenario cost=148589.3043
-
- Name=Scenario6
- Probability=0.1000
- Leaf Node=Scenario6Node
- Tree node sequence:
- RootNode
- Scenario6Node
- Stage= FirstStage Cost=126840.6797
- Stage= SecondStage Cost=22470.0000
- Total scenario cost=149310.6797
-
- Name=Scenario7
- Probability=0.1000
- Leaf Node=Scenario7Node
- Tree node sequence:
- RootNode
- Scenario7Node
- Stage= FirstStage Cost=126648.4634
- Stage= SecondStage Cost=21330.0000
- Total scenario cost=147978.4634
-
- Name=Scenario8
- Probability=0.1000
- Leaf Node=Scenario8Node
- Tree node sequence:
- RootNode
- Scenario8Node
- Stage= FirstStage Cost=127135.6437
- Stage= SecondStage Cost=22730.0000
- Total scenario cost=149865.6437
-
- Name=Scenario9
- Probability=0.1000
- Leaf Node=Scenario9Node
- Tree node sequence:
- RootNode
- Scenario9Node
- Stage= FirstStage Cost=122807.4227
- Stage= SecondStage Cost=22200.0000
- Total scenario cost=145007.4227
-
-----------------------------------------------------
-
-
-Total PH execution time=45.38 seconds
-
-
-Total execution time=56.55 seconds
diff --git a/pyomo/pysp/tests/unit/baselines/networkflow1ef10_quadratic_cplex.baseline-a b/pyomo/pysp/tests/unit/baselines/networkflow1ef10_quadratic_cplex.baseline-a
deleted file mode 100644
index 00ce9141940..00000000000
--- a/pyomo/pysp/tests/unit/baselines/networkflow1ef10_quadratic_cplex.baseline-a
+++ /dev/null
@@ -1,568 +0,0 @@
-Importing module=/Users/ghackebeil/Projects/Pyomo/pyomo/examples/pysp/networkflow/config/rhosettermixed.py
-Module successfully loaded
-Initializing PH
-
-Executing user rho setter callback function
-WW PH Extension: Loading user-specified configuration from file=/home/gahacke/Project/Pyomo/jenkins/src/pyomo/examples/pysp/networkflow/config/wwph-immediatefixing.cfg
-Starting PH
-
-Initiating PH iteration=0
-Number of discrete variables fixed=0 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 114953.9940 Max-Min=32195.68
-Converger=Normalized term diff value is 0.6629 - threshold reached=False
-Cumulative run-time=172.05 seconds
-
-Initiating PH iteration=1
-WW PH Extension: Setting mipgap to 0.1000000, as specified in the configuration file
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=14 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 117635.6130 Max-Min=25333.15
-Converger=Normalized term diff value is 0.3899 - threshold reached=False
-Cumulative run-time=248.74 seconds
-
-Initiating PH iteration=2
-WW PH Extension: Setting mipgap to 0.0588529, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=18 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 117038.7755 Max-Min=21706.36
-Converger=Normalized term diff value is 0.2354 - threshold reached=False
-Cumulative run-time=311.18 seconds
-
-Initiating PH iteration=3
-WW PH Extension: Setting mipgap to 0.0355666, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=22 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 117199.7286 Max-Min=20040.71
-Converger=Normalized term diff value is 0.1183 - threshold reached=False
-Cumulative run-time=380.17 seconds
-
-Initiating PH iteration=4
-WW PH Extension: Setting mipgap to 0.0179214, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=26 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 118607.6471 Max-Min=17204.57
-Converger=Normalized term diff value is 0.0926 - threshold reached=False
-Cumulative run-time=505.86 seconds
-
-Initiating PH iteration=5
-WW PH Extension: Setting mipgap to 0.0140461, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=28 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 119030.3613 Max-Min=16451.39
-Converger=Normalized term diff value is 0.1306 - threshold reached=False
-Cumulative run-time=636.50 seconds
-
-Initiating PH iteration=6
-WW PH Extension: Setting mipgap to 0.0197719, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=28 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 120668.6682 Max-Min=15867.12
-Converger=Normalized term diff value is 0.0227 - threshold reached=False
-Cumulative run-time=769.99 seconds
-
-Initiating PH iteration=7
-WW PH Extension: Setting mipgap to 0.0035058, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=30 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 122275.8206 Max-Min=14518.96
-Converger=Normalized term diff value is 0.0222 - threshold reached=False
-Cumulative run-time=886.62 seconds
-
-Initiating PH iteration=8
-WW PH Extension: Setting mipgap to 0.0034269, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=30 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 124048.1600 Max-Min=12360.26
-Converger=Normalized term diff value is 0.0195 - threshold reached=False
-Cumulative run-time=1013.71 seconds
-
-Initiating PH iteration=9
-WW PH Extension: Setting mipgap to 0.0030213, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=30 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 125317.5656 Max-Min=10821.56
-Converger=Normalized term diff value is 0.0139 - threshold reached=False
-Cumulative run-time=1122.94 seconds
-
-Initiating PH iteration=10
-WW PH Extension: Setting mipgap to 0.0021763, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=30 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 125482.2741 Max-Min=10944.78
-Converger=Normalized term diff value is 0.0140 - threshold reached=False
-Cumulative run-time=1209.11 seconds
-
-Initiating PH iteration=11
-WW PH Extension: Setting mipgap to 0.0021905, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=30 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 126066.8706 Max-Min= 7476.24
-Converger=Normalized term diff value is 0.0156 - threshold reached=False
-Cumulative run-time=1286.77 seconds
-
-Initiating PH iteration=12
-WW PH Extension: Setting mipgap to 0.0024382, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=30 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 125806.3972 Max-Min= 8399.55
-Converger=Normalized term diff value is 0.0164 - threshold reached=False
-Cumulative run-time=1380.34 seconds
-
-Initiating PH iteration=13
-WW PH Extension: Setting mipgap to 0.0025580, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=30 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 126052.7871 Max-Min= 7473.71
-Converger=Normalized term diff value is 0.0162 - threshold reached=False
-Cumulative run-time=1440.83 seconds
-
-Initiating PH iteration=14
-WW PH Extension: Setting mipgap to 0.0025335, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=30 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 126392.2062 Max-Min= 6991.52
-Converger=Normalized term diff value is 0.0188 - threshold reached=False
-Cumulative run-time=1526.71 seconds
-
-Initiating PH iteration=15
-WW PH Extension: Setting mipgap to 0.0029245, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=30 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 126813.1675 Max-Min= 8366.74
-Converger=Normalized term diff value is 0.0237 - threshold reached=False
-Cumulative run-time=1610.96 seconds
-
-Initiating PH iteration=16
-WW PH Extension: Setting mipgap to 0.0036601, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=30 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 127296.6009 Max-Min= 6662.22
-Converger=Normalized term diff value is 0.0142 - threshold reached=False
-Cumulative run-time=1680.90 seconds
-
-Initiating PH iteration=17
-WW PH Extension: Setting mipgap to 0.0022266, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=30 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 127784.8807 Max-Min= 6485.79
-Converger=Normalized term diff value is 0.0107 - threshold reached=False
-Cumulative run-time=1758.96 seconds
-
-Initiating PH iteration=18
-WW PH Extension: Setting mipgap to 0.0016993, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=30 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 128128.2409 Max-Min= 7288.73
-Converger=Normalized term diff value is 0.0132 - threshold reached=False
-Cumulative run-time=1803.80 seconds
-
-Initiating PH iteration=19
-WW PH Extension: Setting mipgap to 0.0020698, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=30 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 128424.8170 Max-Min= 6095.60
-Converger=Normalized term diff value is 0.0087 - threshold reached=False
-Cumulative run-time=1852.06 seconds
-
-Initiating PH iteration=20
-WW PH Extension: Setting mipgap to 0.0013939, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=30 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 128423.0776 Max-Min= 5864.08
-Converger=Normalized term diff value is 0.0084 - threshold reached=False
-Cumulative run-time=1899.65 seconds
-Halting PH - reached maximal iteration count=20
-
-Number of discrete variables fixed before final plugin calls=30 (total=30)
-Number of continuous variables fixed before final plugin calls=0 (total=30)
-PH complete
-
-Convergence history:
-Converger=Normalized term diff
-Iteration Metric Value
- 0 0.6629
- 1 0.3899
- 2 0.2354
- 3 0.1183
- 4 0.0926
- 5 0.1306
- 6 0.0227
- 7 0.0222
- 8 0.0195
- 9 0.0139
- 10 0.0140
- 11 0.0156
- 12 0.0164
- 13 0.0162
- 14 0.0188
- 15 0.0237
- 16 0.0142
- 17 0.0107
- 18 0.0132
- 19 0.0087
- 20 0.0084
-
-
-Final number of discrete variables fixed=30 (total=30)
-Final number of continuous variables fixed=0 (total=30)
-
-Computing objective inner bound at xhat solution
-
-Computed objective upper bound= 149545.3029
-
-X-hat variable values:
-
- Stage: FirstStage
- (Scenarios: Scenario1 Scenario2 Scenario3 Scenario4 Scenario5 Scenario6 Scenario7 Scenario8 Scenario9 Scenario10 )
- Variable: b0
- Index: [A,B] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [B,A] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [B,C] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [B,E] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [C,B] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [C,D] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [D,C] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [D,E] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [E,B] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [E,D] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [E,F] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [F,E] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [F,G] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [F,H] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [G,F] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [G,I] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [G,J] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [H,F] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [I,G] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [J,G] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- (Scenarios: Scenario1 Scenario2 Scenario3 Scenario4 Scenario5 Scenario6 Scenario7 Scenario8 Scenario9 Scenario10 )
- Variable: x
- Index: [A,B] Values: 32.8709 32.8709 32.8709 32.8709 32.8709 32.8709 32.8709 32.8709 32.8709 32.8709
-
- Index: [B,A] Values: 32.8709 32.8709 32.8709 32.8709 32.8709 32.8709 32.8709 32.8709 32.8709 32.8709
-
- Index: [B,C] Values: 9.5295 9.5295 9.5295 9.5295 9.5295 9.5295 9.5295 9.5295 9.5295 9.5295
-
- Index: [B,E] Values: 49.2895 49.2895 49.2895 49.2895 49.2895 49.2895 49.2895 49.2895 49.2895 49.2895
-
- Index: [C,B] Values: 9.5295 9.5295 9.5295 9.5295 9.5295 9.5295 9.5295 9.5295 9.5295 9.5295
-
- Index: [C,D] Values: 20.4105 20.4105 20.4105 20.4105 20.4105 20.4105 20.4105 20.4105 20.4105 20.4105
-
- Index: [D,C] Values: 20.4105 20.4105 20.4105 20.4105 20.4105 20.4105 20.4105 20.4105 20.4105 20.4105
-
- Index: [D,E] Values: 49.5354 49.5354 49.5354 49.5354 49.5354 49.5354 49.5354 49.5354 49.5354 49.5354
-
- Index: [E,B] Values: 49.2895 49.2895 49.2895 49.2895 49.2895 49.2895 49.2895 49.2895 49.2895 49.2895
-
- Index: [E,D] Values: 49.5354 49.5354 49.5354 49.5354 49.5354 49.5354 49.5354 49.5354 49.5354 49.5354
-
- Index: [E,F] Values: 97.7326 97.7326 97.7326 97.7326 97.7326 97.7326 97.7326 97.7326 97.7326 97.7326
-
- Index: [F,E] Values: 97.7326 97.7326 97.7326 97.7326 97.7326 97.7326 97.7326 97.7326 97.7326 97.7326
-
- Index: [F,G] Values: 77.8263 77.8263 77.8263 77.8263 77.8263 77.8263 77.8263 77.8263 77.8263 77.8263
-
- Index: [F,H] Values: 32.7868 32.7868 32.7868 32.7868 32.7868 32.7868 32.7868 32.7868 32.7868 32.7868
-
- Index: [G,F] Values: 77.8263 77.8263 77.8263 77.8263 77.8263 77.8263 77.8263 77.8263 77.8263 77.8263
-
- Index: [G,I] Values: 32.7825 32.7825 32.7825 32.7825 32.7825 32.7825 32.7825 32.7825 32.7825 32.7825
-
- Index: [G,J] Values: 34.1599 34.1599 34.1599 34.1599 34.1599 34.1599 34.1599 34.1599 34.1599 34.1599
-
- Index: [H,F] Values: 32.7868 32.7868 32.7868 32.7868 32.7868 32.7868 32.7868 32.7868 32.7868 32.7868
-
- Index: [I,G] Values: 32.7825 32.7825 32.7825 32.7825 32.7825 32.7825 32.7825 32.7825 32.7825 32.7825
-
- Index: [J,G] Values: 34.1599 34.1599 34.1599 34.1599 34.1599 34.1599 34.1599 34.1599 34.1599 34.1599
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: Scenario1 Scenario2 Scenario3 Scenario4 Scenario5 Scenario6 Scenario7 Scenario8 Scenario9 Scenario10 )
- Values: 131445.4699 125792.6684 128107.7081 126578.7884 127188.3729 127709.9881 128945.7081 125792.6684 126448.9884 125792.6684 Max-Min: 5652.8015 Avg: 127380.3029
-
-X-hat costs:
-
-Scenario Tree Costs
-----------------------------------------------------
-Tree Nodes:
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- Scenario10Node
- Scenario1Node
- Scenario2Node
- Scenario3Node
- Scenario4Node
- Scenario5Node
- Scenario6Node
- Scenario7Node
- Scenario8Node
- Scenario9Node
- Scenarios:
- Scenario1
- Scenario10
- Scenario2
- Scenario3
- Scenario4
- Scenario5
- Scenario6
- Scenario7
- Scenario8
- Scenario9
- Expected cost of (sub)tree rooted at node=153610.4699
-
- Name=Scenario10Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario10
- Expected cost of (sub)tree rooted at node=23630.0000
-
- Name=Scenario1Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario1
- Expected cost of (sub)tree rooted at node=21190.0000
-
- Name=Scenario2Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario2
- Expected cost of (sub)tree rooted at node=22380.0000
-
- Name=Scenario3Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario3
- Expected cost of (sub)tree rooted at node=20090.0000
-
- Name=Scenario4Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario4
- Expected cost of (sub)tree rooted at node=23000.0000
-
- Name=Scenario5Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario5
- Expected cost of (sub)tree rooted at node=23990.0000
-
- Name=Scenario6Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario6
- Expected cost of (sub)tree rooted at node=22350.0000
-
- Name=Scenario7Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario7
- Expected cost of (sub)tree rooted at node=18970.0000
-
- Name=Scenario8Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario8
- Expected cost of (sub)tree rooted at node=23850.0000
-
- Name=Scenario9Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario9
- Expected cost of (sub)tree rooted at node=22200.0000
-
-----------------------------------------------------
-Scenarios:
-
- Name=Scenario1
- Probability=0.1000
- Leaf Node=Scenario1Node
- Tree node sequence:
- RootNode
- Scenario1Node
- Stage= FirstStage Cost=131445.4699
- Stage= SecondStage Cost=21190.0000
- Total scenario cost=152635.4699
-
- Name=Scenario10
- Probability=0.1000
- Leaf Node=Scenario10Node
- Tree node sequence:
- RootNode
- Scenario10Node
- Stage= FirstStage Cost=125792.6684
- Stage= SecondStage Cost=23630.0000
- Total scenario cost=149422.6684
-
- Name=Scenario2
- Probability=0.1000
- Leaf Node=Scenario2Node
- Tree node sequence:
- RootNode
- Scenario2Node
- Stage= FirstStage Cost=125792.6684
- Stage= SecondStage Cost=22380.0000
- Total scenario cost=148172.6684
-
- Name=Scenario3
- Probability=0.1000
- Leaf Node=Scenario3Node
- Tree node sequence:
- RootNode
- Scenario3Node
- Stage= FirstStage Cost=128107.7081
- Stage= SecondStage Cost=20090.0000
- Total scenario cost=148197.7081
-
- Name=Scenario4
- Probability=0.1000
- Leaf Node=Scenario4Node
- Tree node sequence:
- RootNode
- Scenario4Node
- Stage= FirstStage Cost=126578.7884
- Stage= SecondStage Cost=23000.0000
- Total scenario cost=149578.7884
-
- Name=Scenario5
- Probability=0.1000
- Leaf Node=Scenario5Node
- Tree node sequence:
- RootNode
- Scenario5Node
- Stage= FirstStage Cost=127188.3729
- Stage= SecondStage Cost=23990.0000
- Total scenario cost=151178.3729
-
- Name=Scenario6
- Probability=0.1000
- Leaf Node=Scenario6Node
- Tree node sequence:
- RootNode
- Scenario6Node
- Stage= FirstStage Cost=127709.9881
- Stage= SecondStage Cost=22350.0000
- Total scenario cost=150059.9881
-
- Name=Scenario7
- Probability=0.1000
- Leaf Node=Scenario7Node
- Tree node sequence:
- RootNode
- Scenario7Node
- Stage= FirstStage Cost=128945.7081
- Stage= SecondStage Cost=18970.0000
- Total scenario cost=147915.7081
-
- Name=Scenario8
- Probability=0.1000
- Leaf Node=Scenario8Node
- Tree node sequence:
- RootNode
- Scenario8Node
- Stage= FirstStage Cost=125792.6684
- Stage= SecondStage Cost=23850.0000
- Total scenario cost=149642.6684
-
- Name=Scenario9
- Probability=0.1000
- Leaf Node=Scenario9Node
- Tree node sequence:
- RootNode
- Scenario9Node
- Stage= FirstStage Cost=126448.9884
- Stage= SecondStage Cost=22200.0000
- Total scenario cost=148648.9884
-
-----------------------------------------------------
-
-
-Total PH execution time=1927.02 seconds
-
-
-Total execution time=1946.49 seconds
diff --git a/pyomo/pysp/tests/unit/baselines/networkflow1ef10_quadratic_cplex.baseline-b b/pyomo/pysp/tests/unit/baselines/networkflow1ef10_quadratic_cplex.baseline-b
deleted file mode 100644
index 550f00a36fe..00000000000
--- a/pyomo/pysp/tests/unit/baselines/networkflow1ef10_quadratic_cplex.baseline-b
+++ /dev/null
@@ -1,333 +0,0 @@
-Importing module=/Users/ghackebeil/Projects/Pyomo/pyomo/examples/pysp/networkflow/config/rhosettermixed.py
-Module successfully loaded
-Initializing PH
-
-Executing user rho setter callback function
-WW PH Extension: Loading user-specified configuration from file=/home/hudson/slave/workspace/Pyomo_trunk_python2.6/src/pyomo/examples/pysp/networkflow/config/wwph-immediatefixing.cfg
-Starting PH
-
-Initiating PH iteration=0
-Number of discrete variables fixed=0 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 114953.9940 Max-Min=32195.68
-Converger=Normalized term diff value is 0.6629 - threshold reached=False
-Cumulative run-time=24.51 seconds
-
-Initiating PH iteration=1
-WW PH Extension: Setting mipgap to 0.1000000, as specified in the configuration file
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=14 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 117754.5815 Max-Min=26932.66
-Converger=Normalized term diff value is 0.4115 - threshold reached=False
-Cumulative run-time=41.70 seconds
-
-Initiating PH iteration=2
-WW PH Extension: Setting mipgap to 0.0620986, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=18 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 117279.2453 Max-Min=20686.96
-Converger=Normalized term diff value is 0.1541 - threshold reached=False
-Cumulative run-time=58.32 seconds
-
-Initiating PH iteration=3
-WW PH Extension: Setting mipgap to 0.0233178, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=22 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 117766.6281 Max-Min=17903.88
-Converger=Normalized term diff value is 0.1231 - threshold reached=False
-Cumulative run-time=74.45 seconds
-
-Initiating PH iteration=4
-WW PH Extension: Setting mipgap to 0.0186425, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=24 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 118426.9709 Max-Min=17397.37
-Converger=Normalized term diff value is 0.1463 - threshold reached=False
-Cumulative run-time=91.18 seconds
-
-Initiating PH iteration=5
-WW PH Extension: Setting mipgap to 0.0221335, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=26 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 119040.7353 Max-Min=15500.72
-Converger=Normalized term diff value is 0.1256 - threshold reached=False
-Cumulative run-time=104.88 seconds
-
-Initiating PH iteration=6
-WW PH Extension: Setting mipgap to 0.0190197, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=26 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 119939.9799 Max-Min=15042.75
-Converger=Normalized term diff value is 0.1237 - threshold reached=False
-Cumulative run-time=119.81 seconds
-
-Initiating PH iteration=7
-WW PH Extension: Setting mipgap to 0.0187245, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=26 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 121041.2010 Max-Min=14370.61
-Converger=Normalized term diff value is 0.1933 - threshold reached=False
-Cumulative run-time=134.71 seconds
-
-Initiating PH iteration=8
-WW PH Extension: Setting mipgap to 0.0292142, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=26 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 121635.4628 Max-Min=13097.29
-Converger=Normalized term diff value is 0.2273 - threshold reached=False
-Cumulative run-time=147.62 seconds
-
-Initiating PH iteration=9
-WW PH Extension: Setting mipgap to 0.0343459, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=26 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 122176.3334 Max-Min=11996.76
-Converger=Normalized term diff value is 0.2362 - threshold reached=False
-Cumulative run-time=160.10 seconds
-
-Initiating PH iteration=10
-WW PH Extension: Setting mipgap to 0.0356828, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=26 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 122443.2319 Max-Min=11842.96
-Converger=Normalized term diff value is 0.1146 - threshold reached=False
-Cumulative run-time=172.67 seconds
-
-Initiating PH iteration=11
-WW PH Extension: Setting mipgap to 0.0173558, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=28 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 124627.6756 Max-Min= 9814.24
-Converger=Normalized term diff value is 0.0808 - threshold reached=False
-Cumulative run-time=183.44 seconds
-
-Initiating PH iteration=12
-WW PH Extension: Setting mipgap to 0.0122589, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=28 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 126504.2835 Max-Min= 9605.97
-Converger=Normalized term diff value is 0.0342 - threshold reached=False
-Cumulative run-time=193.88 seconds
-
-Initiating PH iteration=13
-WW PH Extension: Setting mipgap to 0.0052418, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=28 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 127091.8735 Max-Min= 8694.51
-Converger=Normalized term diff value is 0.0195 - threshold reached=False
-Cumulative run-time=204.82 seconds
-
-Initiating PH iteration=14
-WW PH Extension: Setting mipgap to 0.0030176, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=28 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 127295.9527 Max-Min= 9134.13
-Converger=Normalized term diff value is 0.0211 - threshold reached=False
-Cumulative run-time=215.60 seconds
-
-Initiating PH iteration=15
-WW PH Extension: Setting mipgap to 0.0032637, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=28 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 127049.0227 Max-Min= 8352.03
-Converger=Normalized term diff value is 0.0118 - threshold reached=False
-Cumulative run-time=227.46 seconds
-
-Initiating PH iteration=16
-WW PH Extension: Setting mipgap to 0.0018582, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=30 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 127239.8460 Max-Min= 7689.41
-Converger=Normalized term diff value is 0.0090 - threshold reached=False
-Cumulative run-time=238.91 seconds
-
-Initiating PH iteration=17
-WW PH Extension: Setting mipgap to 0.0014387, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=30 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 128066.0550 Max-Min= 6464.79
-Converger=Normalized term diff value is 0.0086 - threshold reached=False
-Cumulative run-time=250.17 seconds
-
-Initiating PH iteration=18
-WW PH Extension: Setting mipgap to 0.0013861, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=30 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 128103.3774 Max-Min= 7140.79
-Converger=Normalized term diff value is 0.0077 - threshold reached=False
-Cumulative run-time=261.62 seconds
-
-Initiating PH iteration=19
-WW PH Extension: Setting mipgap to 0.0012389, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=30 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 128128.1068 Max-Min= 6681.55
-Converger=Normalized term diff value is 0.0081 - threshold reached=False
-Cumulative run-time=273.06 seconds
-
-Initiating PH iteration=20
-WW PH Extension: Setting mipgap to 0.0013057, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=30 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 128163.1845 Max-Min= 6689.38
-Converger=Normalized term diff value is 0.0075 - threshold reached=False
-Cumulative run-time=284.30 seconds
-Halting PH - reached maximal iteration count=20
-
-Number of discrete variables fixed before final plugin calls=30 (total=30)
-Number of continuous variables fixed before final plugin calls=0 (total=30)
-PH complete
-
-Convergence history:
-Converger=Normalized term diff
-Iteration Metric Value
- 0 0.6629
- 1 0.4115
- 2 0.1541
- 3 0.1231
- 4 0.1463
- 5 0.1256
- 6 0.1237
- 7 0.1933
- 8 0.2273
- 9 0.2362
- 10 0.1146
- 11 0.0808
- 12 0.0342
- 13 0.0195
- 14 0.0211
- 15 0.0118
- 16 0.0090
- 17 0.0086
- 18 0.0077
- 19 0.0081
- 20 0.0075
-
-
-Final number of discrete variables fixed=30 (total=30)
-Final number of continuous variables fixed=0 (total=30)
-
-Computing objective inner bound at xhat solution
-At least one sub-problem solve time was undefined - skipping timing statistics
- ** At least one sub-problem failed to solve! **
- Failed sub-problems:
- Scenario1
- Scenario5
-
-Failed to compute bound at xhat due to one or more solve failures
-
-Scenario tree variable values:
-
- Stage: FirstStage
- (Scenarios: Scenario1 Scenario2 Scenario3 Scenario4 Scenario5 Scenario6 Scenario7 Scenario8 Scenario9 Scenario10 )
- Variable: b0
- Index: [A,B] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
-
- Index: [B,A] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
-
- Index: [B,C] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
-
- Index: [B,E] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
-
- Index: [C,B] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
-
- Index: [C,D] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
-
- Index: [D,C] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
-
- Index: [D,E] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
-
- Index: [E,B] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
-
- Index: [E,D] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
-
- Index: [E,F] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
-
- Index: [F,E] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
-
- Index: [F,G] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
-
- Index: [F,H] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
-
- Index: [G,F] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
-
- Index: [G,I] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
-
- Index: [G,J] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
-
- Index: [H,F] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
-
- Index: [I,G] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
-
- Index: [J,G] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
-
- (Scenarios: Scenario1 Scenario2 Scenario3 Scenario4 Scenario5 Scenario6 Scenario7 Scenario8 Scenario9 Scenario10 )
- Variable: x
- Index: [A,B] Values: 34.7300 32.8709 32.8709 32.8709 32.0100 32.8709 32.8709 32.8709 32.8709 32.8709 Max-Min: 2.7200 Avg: 32.8946
-
- Index: [B,A] Values: 34.7300 32.8709 32.8709 32.8709 32.0100 32.8709 32.8709 32.8709 32.8709 32.8709 Max-Min: 2.7200 Avg: 32.8946
-
- Index: [B,C] Values: 10.3800 8.5539 8.5539 8.5539 7.8548 8.5539 8.5539 8.5539 8.5539 8.5539 Max-Min: 3.2071 Avg: 8.9174
-
- Index: [B,E] Values: 52.5700 53.2800 53.2800 53.2800 49.9352 53.2800 53.2800 53.2800 53.2800 53.2800 Max-Min: 6.4035 Avg: 51.1353
-
- Index: [C,B] Values: 10.3800 8.5539 8.5539 8.5539 7.8548 8.5539 8.5539 8.5539 8.5539 8.5539 Max-Min: 3.2071 Avg: 8.9174
-
- Index: [C,D] Values: 30.1700 29.9400 29.9400 29.9400 25.7348 29.9400 29.9400 29.9400 29.9400 29.9400 Max-Min: 4.4352 Avg: 28.1206
-
- Index: [D,C] Values: 30.1700 29.9400 29.9400 29.9400 25.7348 29.9400 29.9400 29.9400 29.9400 29.9400 Max-Min: 4.4352 Avg: 28.1206
-
- Index: [D,E] Values: 52.9200 51.9600 51.9600 51.9600 48.8552 51.9600 51.9600 51.9600 51.9600 51.9600 Max-Min: 8.6620 Avg: 50.1409
-
- Index: [E,B] Values: 52.5700 53.2800 53.2800 53.2800 49.9352 53.2800 53.2800 53.2800 53.2800 53.2800 Max-Min: 6.4035 Avg: 51.1353
-
- Index: [E,D] Values: 52.9200 51.9600 51.9600 51.9600 48.8552 51.9600 51.9600 51.9600 51.9600 51.9600 Max-Min: 8.6620 Avg: 50.1409
-
- Index: [E,F] Values: 97.0800 97.7326 97.7326 97.7326 97.7326 97.7326 97.7326 97.7326 97.7326 97.7326 Max-Min: 0.6526 Avg: 97.6673
-
- Index: [F,E] Values: 97.0800 97.7326 97.7326 97.7326 97.7326 97.7326 97.7326 97.7326 97.7326 97.7326 Max-Min: 0.6526 Avg: 97.6673
-
- Index: [F,G] Values: 80.1400 78.1567 78.1567 78.1567 76.2500 78.1567 78.1567 78.1567 78.1567 78.1567 Max-Min: 3.8900 Avg: 78.1644
-
- Index: [F,H] Values: 34.5200 33.5763 33.5763 33.5763 31.9400 33.5763 33.5763 33.5763 33.5763 33.5763 Max-Min: 3.0300 Avg: 33.2984
-
- Index: [G,F] Values: 80.1400 78.1567 78.1567 78.1567 76.2500 78.1567 78.1567 78.1567 78.1567 78.1567 Max-Min: 3.8900 Avg: 78.1644
-
- Index: [G,I] Values: 32.9000 32.6950 32.6950 32.6950 33.0200 32.6950 32.6950 32.6950 32.6950 32.6950 Max-Min: 2.1800 Avg: 32.5625
-
- Index: [G,J] Values: 35.4800 34.3171 34.3171 34.3171 32.6900 34.3171 34.3171 34.3171 34.3171 34.3171 Max-Min: 2.7900 Avg: 34.2707
-
- Index: [H,F] Values: 34.5200 33.5763 33.5763 33.5763 31.9400 33.5763 33.5763 33.5763 33.5763 33.5763 Max-Min: 3.0300 Avg: 33.2984
-
- Index: [I,G] Values: 32.9000 32.6950 32.6950 32.6950 33.0200 32.6950 32.6950 32.6950 32.6950 32.6950 Max-Min: 2.1800 Avg: 32.5625
-
- Index: [J,G] Values: 35.4800 34.3171 34.3171 34.3171 32.6900 34.3171 34.3171 34.3171 34.3171 34.3171 Max-Min: 2.7900 Avg: 34.2707
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: Scenario1 Scenario2 Scenario3 Scenario4 Scenario5 Scenario6 Scenario7 Scenario8 Scenario9 Scenario10 )
- Values: 131380.6407 129567.3693 129567.3693 129567.3693 125528.5675 129567.3693 129567.3693 129567.3693 129567.3693 129567.3693 Max-Min: 5852.0731 Avg: 129344.8162
-
-Total PH execution time=291.94 seconds
-
-
-Total execution time=297.48 seconds
diff --git a/pyomo/pysp/tests/unit/baselines/networkflow1ef10_quadratic_cplex_darwin.baseline b/pyomo/pysp/tests/unit/baselines/networkflow1ef10_quadratic_cplex_darwin.baseline
deleted file mode 100644
index d2da32bcd9f..00000000000
--- a/pyomo/pysp/tests/unit/baselines/networkflow1ef10_quadratic_cplex_darwin.baseline
+++ /dev/null
@@ -1,568 +0,0 @@
-Importing module=/Users/ghackebeil/Projects/Pyomo/pyomo/examples/pysp/networkflow/config/rhosettermixed.py
-Module successfully loaded
-Initializing PH
-
-Executing user rho setter callback function
-WW PH Extension: Loading user-specified configuration from file=/Users/ghackebeil/Projects/Pyomo/pyomo/examples/pysp/networkflow/config/wwph-immediatefixing.cfg
-Starting PH
-
-Initiating PH iteration=0
-Number of discrete variables fixed=0 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 114953.9940 Max-Min=32195.68
-Converger=Normalized term diff value is 0.6629 - threshold reached=False
-Cumulative run-time=13.09 seconds
-
-Initiating PH iteration=1
-WW PH Extension: Setting mipgap to 0.1000000, as specified in the configuration file
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=14 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 117552.4213 Max-Min=25333.15
-Converger=Normalized term diff value is 0.2700 - threshold reached=False
-Cumulative run-time=21.12 seconds
-
-Initiating PH iteration=2
-WW PH Extension: Setting mipgap to 0.0407825, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=20 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 116837.8223 Max-Min=21402.54
-Converger=Normalized term diff value is 0.1285 - threshold reached=False
-Cumulative run-time=30.75 seconds
-
-Initiating PH iteration=3
-WW PH Extension: Setting mipgap to 0.0194574, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=24 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 117412.9646 Max-Min=19687.99
-Converger=Normalized term diff value is 0.1060 - threshold reached=False
-Cumulative run-time=37.70 seconds
-
-Initiating PH iteration=4
-WW PH Extension: Setting mipgap to 0.0160559, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=26 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 118627.1027 Max-Min=17306.43
-Converger=Normalized term diff value is 0.0931 - threshold reached=False
-Cumulative run-time=44.17 seconds
-
-Initiating PH iteration=5
-WW PH Extension: Setting mipgap to 0.0141140, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=28 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 119041.7365 Max-Min=16451.39
-Converger=Normalized term diff value is 0.1305 - threshold reached=False
-Cumulative run-time=50.69 seconds
-
-Initiating PH iteration=6
-WW PH Extension: Setting mipgap to 0.0197587, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=28 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 120688.1985 Max-Min=15867.12
-Converger=Normalized term diff value is 0.0226 - threshold reached=False
-Cumulative run-time=57.41 seconds
-
-Initiating PH iteration=7
-WW PH Extension: Setting mipgap to 0.0034911, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=30 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 122381.6789 Max-Min=14232.63
-Converger=Normalized term diff value is 0.0220 - threshold reached=False
-Cumulative run-time=62.36 seconds
-
-Initiating PH iteration=8
-WW PH Extension: Setting mipgap to 0.0034026, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=30 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 124201.7691 Max-Min=12160.03
-Converger=Normalized term diff value is 0.0192 - threshold reached=False
-Cumulative run-time=67.07 seconds
-
-Initiating PH iteration=9
-WW PH Extension: Setting mipgap to 0.0029729, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=30 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 125419.9185 Max-Min=10833.91
-Converger=Normalized term diff value is 0.0139 - threshold reached=False
-Cumulative run-time=72.46 seconds
-
-Initiating PH iteration=10
-WW PH Extension: Setting mipgap to 0.0021798, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=30 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 125553.9022 Max-Min=10906.63
-Converger=Normalized term diff value is 0.0138 - threshold reached=False
-Cumulative run-time=77.53 seconds
-
-Initiating PH iteration=11
-WW PH Extension: Setting mipgap to 0.0021594, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=30 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 126141.2674 Max-Min= 7476.24
-Converger=Normalized term diff value is 0.0154 - threshold reached=False
-Cumulative run-time=82.60 seconds
-
-Initiating PH iteration=12
-WW PH Extension: Setting mipgap to 0.0024045, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=30 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 125884.2384 Max-Min= 8449.67
-Converger=Normalized term diff value is 0.0164 - threshold reached=False
-Cumulative run-time=87.29 seconds
-
-Initiating PH iteration=13
-WW PH Extension: Setting mipgap to 0.0025585, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=30 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 126099.0388 Max-Min= 7473.71
-Converger=Normalized term diff value is 0.0163 - threshold reached=False
-Cumulative run-time=92.19 seconds
-
-Initiating PH iteration=14
-WW PH Extension: Setting mipgap to 0.0025403, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=30 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 126446.7348 Max-Min= 6991.52
-Converger=Normalized term diff value is 0.0186 - threshold reached=False
-Cumulative run-time=96.80 seconds
-
-Initiating PH iteration=15
-WW PH Extension: Setting mipgap to 0.0028914, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=30 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 126905.4572 Max-Min= 8139.18
-Converger=Normalized term diff value is 0.0234 - threshold reached=False
-Cumulative run-time=101.82 seconds
-
-Initiating PH iteration=16
-WW PH Extension: Setting mipgap to 0.0036176, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=30 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 127440.0904 Max-Min= 6662.22
-Converger=Normalized term diff value is 0.0140 - threshold reached=False
-Cumulative run-time=106.30 seconds
-
-Initiating PH iteration=17
-WW PH Extension: Setting mipgap to 0.0021976, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=30 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 127932.9696 Max-Min= 6485.79
-Converger=Normalized term diff value is 0.0107 - threshold reached=False
-Cumulative run-time=111.48 seconds
-
-Initiating PH iteration=18
-WW PH Extension: Setting mipgap to 0.0016946, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=30 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 128248.0727 Max-Min= 7159.23
-Converger=Normalized term diff value is 0.0131 - threshold reached=False
-Cumulative run-time=116.24 seconds
-
-Initiating PH iteration=19
-WW PH Extension: Setting mipgap to 0.0020590, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=30 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 128500.1941 Max-Min= 6095.60
-Converger=Normalized term diff value is 0.0086 - threshold reached=False
-Cumulative run-time=121.71 seconds
-
-Initiating PH iteration=20
-WW PH Extension: Setting mipgap to 0.0013864, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=30 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 128452.4031 Max-Min= 5864.08
-Converger=Normalized term diff value is 0.0084 - threshold reached=False
-Cumulative run-time=126.72 seconds
-Halting PH - reached maximal iteration count=20
-
-Number of discrete variables fixed before final plugin calls=30 (total=30)
-Number of continuous variables fixed before final plugin calls=0 (total=30)
-PH complete
-
-Convergence history:
-Converger=Normalized term diff
-Iteration Metric Value
- 0 0.6629
- 1 0.2700
- 2 0.1285
- 3 0.1060
- 4 0.0931
- 5 0.1305
- 6 0.0226
- 7 0.0220
- 8 0.0192
- 9 0.0139
- 10 0.0138
- 11 0.0154
- 12 0.0164
- 13 0.0163
- 14 0.0186
- 15 0.0234
- 16 0.0140
- 17 0.0107
- 18 0.0131
- 19 0.0086
- 20 0.0084
-
-
-Final number of discrete variables fixed=30 (total=30)
-Final number of continuous variables fixed=0 (total=30)
-
-Computing objective inner bound at xhat solution
-
-Computed objective upper bound= 149576.9341
-
-X-hat variable values:
-
- Stage: FirstStage
- (Scenarios: Scenario1 Scenario2 Scenario3 Scenario4 Scenario5 Scenario6 Scenario7 Scenario8 Scenario9 Scenario10 )
- Variable: b0
- Index: [A,B] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [B,A] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [B,C] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [B,E] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [C,B] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [C,D] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [D,C] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [D,E] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [E,B] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [E,D] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [E,F] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [F,E] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [F,G] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [F,H] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [G,F] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [G,I] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [G,J] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [H,F] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [I,G] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [J,G] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- (Scenarios: Scenario1 Scenario2 Scenario3 Scenario4 Scenario5 Scenario6 Scenario7 Scenario8 Scenario9 Scenario10 )
- Variable: x
- Index: [A,B] Values: 32.8709 32.8709 32.8709 32.8709 32.8709 32.8709 32.8709 32.8709 32.8709 32.8709
-
- Index: [B,A] Values: 32.8709 32.8709 32.8709 32.8709 32.8709 32.8709 32.8709 32.8709 32.8709 32.8709
-
- Index: [B,C] Values: 9.5295 9.5295 9.5295 9.5295 9.5295 9.5295 9.5295 9.5295 9.5295 9.5295
-
- Index: [B,E] Values: 49.2895 49.2895 49.2895 49.2895 49.2895 49.2895 49.2895 49.2895 49.2895 49.2895
-
- Index: [C,B] Values: 9.5295 9.5295 9.5295 9.5295 9.5295 9.5295 9.5295 9.5295 9.5295 9.5295
-
- Index: [C,D] Values: 20.4105 20.4105 20.4105 20.4105 20.4105 20.4105 20.4105 20.4105 20.4105 20.4105
-
- Index: [D,C] Values: 20.4105 20.4105 20.4105 20.4105 20.4105 20.4105 20.4105 20.4105 20.4105 20.4105
-
- Index: [D,E] Values: 49.5354 49.5354 49.5354 49.5354 49.5354 49.5354 49.5354 49.5354 49.5354 49.5354
-
- Index: [E,B] Values: 49.2895 49.2895 49.2895 49.2895 49.2895 49.2895 49.2895 49.2895 49.2895 49.2895
-
- Index: [E,D] Values: 49.5354 49.5354 49.5354 49.5354 49.5354 49.5354 49.5354 49.5354 49.5354 49.5354
-
- Index: [E,F] Values: 97.7326 97.7326 97.7326 97.7326 97.7326 97.7326 97.7326 97.7326 97.7326 97.7326
-
- Index: [F,E] Values: 97.7326 97.7326 97.7326 97.7326 97.7326 97.7326 97.7326 97.7326 97.7326 97.7326
-
- Index: [F,G] Values: 77.8436 77.8436 77.8436 77.8436 77.8436 77.8436 77.8436 77.8436 77.8436 77.8436
-
- Index: [F,H] Values: 32.7561 32.7561 32.7561 32.7561 32.7561 32.7561 32.7561 32.7561 32.7561 32.7561
-
- Index: [G,F] Values: 77.8436 77.8436 77.8436 77.8436 77.8436 77.8436 77.8436 77.8436 77.8436 77.8436
-
- Index: [G,I] Values: 32.6280 32.6280 32.6280 32.6280 32.6280 32.6280 32.6280 32.6280 32.6280 32.6280
-
- Index: [G,J] Values: 34.4404 34.4404 34.4404 34.4404 34.4404 34.4404 34.4404 34.4404 34.4404 34.4404
-
- Index: [H,F] Values: 32.7561 32.7561 32.7561 32.7561 32.7561 32.7561 32.7561 32.7561 32.7561 32.7561
-
- Index: [I,G] Values: 32.6280 32.6280 32.6280 32.6280 32.6280 32.6280 32.6280 32.6280 32.6280 32.6280
-
- Index: [J,G] Values: 34.4404 34.4404 34.4404 34.4404 34.4404 34.4404 34.4404 34.4404 34.4404 34.4404
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: Scenario1 Scenario2 Scenario3 Scenario4 Scenario5 Scenario6 Scenario7 Scenario8 Scenario9 Scenario10 )
- Values: 131445.4699 125823.5908 128138.6305 126609.7108 127257.3054 127740.9105 128976.6305 125823.5908 126479.9108 125823.5908 Max-Min: 5621.8791 Avg: 127411.9341
-
-X-hat costs:
-
-Scenario Tree Costs
-----------------------------------------------------
-Tree Nodes:
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- Scenario10Node
- Scenario1Node
- Scenario2Node
- Scenario3Node
- Scenario4Node
- Scenario5Node
- Scenario6Node
- Scenario7Node
- Scenario8Node
- Scenario9Node
- Scenarios:
- Scenario1
- Scenario10
- Scenario2
- Scenario3
- Scenario4
- Scenario5
- Scenario6
- Scenario7
- Scenario8
- Scenario9
- Expected cost of (sub)tree rooted at node=153610.4699
-
- Name=Scenario10Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario10
- Expected cost of (sub)tree rooted at node=23630.0000
-
- Name=Scenario1Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario1
- Expected cost of (sub)tree rooted at node=21190.0000
-
- Name=Scenario2Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario2
- Expected cost of (sub)tree rooted at node=22380.0000
-
- Name=Scenario3Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario3
- Expected cost of (sub)tree rooted at node=20090.0000
-
- Name=Scenario4Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario4
- Expected cost of (sub)tree rooted at node=23000.0000
-
- Name=Scenario5Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario5
- Expected cost of (sub)tree rooted at node=23990.0000
-
- Name=Scenario6Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario6
- Expected cost of (sub)tree rooted at node=22350.0000
-
- Name=Scenario7Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario7
- Expected cost of (sub)tree rooted at node=18970.0000
-
- Name=Scenario8Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario8
- Expected cost of (sub)tree rooted at node=23850.0000
-
- Name=Scenario9Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario9
- Expected cost of (sub)tree rooted at node=22200.0000
-
-----------------------------------------------------
-Scenarios:
-
- Name=Scenario1
- Probability=0.1000
- Leaf Node=Scenario1Node
- Tree node sequence:
- RootNode
- Scenario1Node
- Stage= FirstStage Cost=131445.4699
- Stage= SecondStage Cost=21190.0000
- Total scenario cost=152635.4699
-
- Name=Scenario10
- Probability=0.1000
- Leaf Node=Scenario10Node
- Tree node sequence:
- RootNode
- Scenario10Node
- Stage= FirstStage Cost=125823.5908
- Stage= SecondStage Cost=23630.0000
- Total scenario cost=149453.5908
-
- Name=Scenario2
- Probability=0.1000
- Leaf Node=Scenario2Node
- Tree node sequence:
- RootNode
- Scenario2Node
- Stage= FirstStage Cost=125823.5908
- Stage= SecondStage Cost=22380.0000
- Total scenario cost=148203.5908
-
- Name=Scenario3
- Probability=0.1000
- Leaf Node=Scenario3Node
- Tree node sequence:
- RootNode
- Scenario3Node
- Stage= FirstStage Cost=128138.6305
- Stage= SecondStage Cost=20090.0000
- Total scenario cost=148228.6305
-
- Name=Scenario4
- Probability=0.1000
- Leaf Node=Scenario4Node
- Tree node sequence:
- RootNode
- Scenario4Node
- Stage= FirstStage Cost=126609.7108
- Stage= SecondStage Cost=23000.0000
- Total scenario cost=149609.7108
-
- Name=Scenario5
- Probability=0.1000
- Leaf Node=Scenario5Node
- Tree node sequence:
- RootNode
- Scenario5Node
- Stage= FirstStage Cost=127257.3054
- Stage= SecondStage Cost=23990.0000
- Total scenario cost=151247.3054
-
- Name=Scenario6
- Probability=0.1000
- Leaf Node=Scenario6Node
- Tree node sequence:
- RootNode
- Scenario6Node
- Stage= FirstStage Cost=127740.9105
- Stage= SecondStage Cost=22350.0000
- Total scenario cost=150090.9105
-
- Name=Scenario7
- Probability=0.1000
- Leaf Node=Scenario7Node
- Tree node sequence:
- RootNode
- Scenario7Node
- Stage= FirstStage Cost=128976.6305
- Stage= SecondStage Cost=18970.0000
- Total scenario cost=147946.6305
-
- Name=Scenario8
- Probability=0.1000
- Leaf Node=Scenario8Node
- Tree node sequence:
- RootNode
- Scenario8Node
- Stage= FirstStage Cost=125823.5908
- Stage= SecondStage Cost=23850.0000
- Total scenario cost=149673.5908
-
- Name=Scenario9
- Probability=0.1000
- Leaf Node=Scenario9Node
- Tree node sequence:
- RootNode
- Scenario9Node
- Stage= FirstStage Cost=126479.9108
- Stage= SecondStage Cost=22200.0000
- Total scenario cost=148679.9108
-
-----------------------------------------------------
-
-
-Total PH execution time=130.94 seconds
-
-
-Total execution time=134.06 seconds
diff --git a/pyomo/pysp/tests/unit/baselines/networkflow1ef10_quadratic_gurobi.baseline-a b/pyomo/pysp/tests/unit/baselines/networkflow1ef10_quadratic_gurobi.baseline-a
deleted file mode 100644
index a2fd4846796..00000000000
--- a/pyomo/pysp/tests/unit/baselines/networkflow1ef10_quadratic_gurobi.baseline-a
+++ /dev/null
@@ -1,565 +0,0 @@
-Importing module=/Users/ghackebeil/Projects/Pyomo/pyomo/examples/pysp/networkflow/config/rhosettermixed.py
-Module successfully loaded
-Initializing PH
-
-Executing user rho setter callback function
-WW PH Extension: Loading user-specified configuration from file=/home/hudson/slave/workspace/Pyomo_trunk_python2.7_snotra_expensive/src/pyomo/examples/pysp/networkflow/config/wwph-immediatefixing.cfg
-Starting PH
-
-Initiating PH iteration=0
-Number of discrete variables fixed=0 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 114953.9940 Max-Min=32195.68
-Converger=Normalized term diff value is 0.6629 - threshold reached=False
-Cumulative run-time=21.90 seconds
-
-Initiating PH iteration=1
-WW PH Extension: Setting mipgap to 0.1000000, as specified in the configuration file
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=14 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 118360.1069 Max-Min=30876.74
-Converger=Normalized term diff value is 0.5568 - threshold reached=False
-Cumulative run-time=40.89 seconds
-
-Initiating PH iteration=2
-WW PH Extension: Setting mipgap to 0.0840018, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=16 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 117742.6281 Max-Min=23981.31
-Converger=Normalized term diff value is 0.5731 - threshold reached=False
-Cumulative run-time=58.18 seconds
-
-Initiating PH iteration=3
-WW PH Extension: Setting mipgap to 0.0864596, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=16 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 118026.2296 Max-Min=22374.92
-Converger=Normalized term diff value is 0.4843 - threshold reached=False
-Cumulative run-time=75.08 seconds
-
-Initiating PH iteration=4
-WW PH Extension: Setting mipgap to 0.0730769, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=18 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 119537.1541 Max-Min=22250.54
-Converger=Normalized term diff value is 0.4732 - threshold reached=False
-Cumulative run-time=92.01 seconds
-
-Initiating PH iteration=5
-WW PH Extension: Setting mipgap to 0.0714075, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=20 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 119306.2332 Max-Min=22250.54
-Converger=Normalized term diff value is 0.2561 - threshold reached=False
-Cumulative run-time=106.79 seconds
-
-Initiating PH iteration=6
-WW PH Extension: Setting mipgap to 0.0386784, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=24 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 120896.1683 Max-Min=15000.90
-Converger=Normalized term diff value is 0.2586 - threshold reached=False
-Cumulative run-time=126.90 seconds
-
-Initiating PH iteration=7
-WW PH Extension: Setting mipgap to 0.0390636, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=26 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 121680.2982 Max-Min=13541.87
-Converger=Normalized term diff value is 0.0130 - threshold reached=False
-Cumulative run-time=142.96 seconds
-
-Initiating PH iteration=8
-WW PH Extension: Setting mipgap to 0.0020440, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=30 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 123082.1085 Max-Min=12615.30
-Converger=Normalized term diff value is 0.0113 - threshold reached=False
-Cumulative run-time=154.56 seconds
-
-Initiating PH iteration=9
-WW PH Extension: Setting mipgap to 0.0017838, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=30 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 124198.1264 Max-Min=10272.28
-Converger=Normalized term diff value is 0.0097 - threshold reached=False
-Cumulative run-time=166.66 seconds
-
-Initiating PH iteration=10
-WW PH Extension: Setting mipgap to 0.0015535, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=30 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 124941.8029 Max-Min= 9783.02
-Converger=Normalized term diff value is 0.0091 - threshold reached=False
-Cumulative run-time=178.66 seconds
-
-Initiating PH iteration=11
-WW PH Extension: Setting mipgap to 0.0014559, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=30 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 125427.2220 Max-Min= 9562.16
-Converger=Normalized term diff value is 0.0081 - threshold reached=False
-Cumulative run-time=190.18 seconds
-
-Initiating PH iteration=12
-WW PH Extension: Setting mipgap to 0.0013059, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=30 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 125807.9944 Max-Min= 8261.09
-Converger=Normalized term diff value is 0.0066 - threshold reached=False
-Cumulative run-time=201.52 seconds
-
-Initiating PH iteration=13
-WW PH Extension: Setting mipgap to 0.0010750, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=30 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 126015.0098 Max-Min= 8347.55
-Converger=Normalized term diff value is 0.0063 - threshold reached=False
-Cumulative run-time=213.29 seconds
-
-Initiating PH iteration=14
-WW PH Extension: Setting mipgap to 0.0010286, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=30 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 126294.8993 Max-Min= 7760.62
-Converger=Normalized term diff value is 0.0057 - threshold reached=False
-Cumulative run-time=225.37 seconds
-
-Initiating PH iteration=15
-WW PH Extension: Setting mipgap to 0.0009438, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=30 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 126566.5022 Max-Min= 7656.31
-Converger=Normalized term diff value is 0.0053 - threshold reached=False
-Cumulative run-time=237.24 seconds
-
-Initiating PH iteration=16
-WW PH Extension: Setting mipgap to 0.0008814, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=30 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 126884.0927 Max-Min= 7467.32
-Converger=Normalized term diff value is 0.0047 - threshold reached=False
-Cumulative run-time=248.16 seconds
-
-Initiating PH iteration=17
-WW PH Extension: Setting mipgap to 0.0007909, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=30 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 127357.3219 Max-Min= 6996.28
-Converger=Normalized term diff value is 0.0038 - threshold reached=False
-Cumulative run-time=259.73 seconds
-
-Initiating PH iteration=18
-WW PH Extension: Setting mipgap to 0.0006507, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=30 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 128006.9924 Max-Min= 6253.49
-Converger=Normalized term diff value is 0.0032 - threshold reached=False
-Cumulative run-time=271.86 seconds
-
-Initiating PH iteration=19
-WW PH Extension: Setting mipgap to 0.0005649, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=30 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 128708.6344 Max-Min= 5638.03
-Converger=Normalized term diff value is 0.0031 - threshold reached=False
-Cumulative run-time=283.66 seconds
-
-Initiating PH iteration=20
-WW PH Extension: Setting mipgap to 0.0005471, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=30 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 129330.4596 Max-Min= 5290.07
-Converger=Normalized term diff value is 0.0031 - threshold reached=False
-Cumulative run-time=295.52 seconds
-Halting PH - reached maximal iteration count=20
-
-Number of discrete variables fixed before final plugin calls=30 (total=30)
-Number of continuous variables fixed before final plugin calls=0 (total=30)
-PH complete
-
-Convergence history:
-Converger=Normalized term diff
-Iteration Metric Value
- 0 0.6629
- 1 0.5568
- 2 0.5731
- 3 0.4843
- 4 0.4732
- 5 0.2561
- 6 0.2586
- 7 0.0130
- 8 0.0113
- 9 0.0097
- 10 0.0091
- 11 0.0081
- 12 0.0066
- 13 0.0063
- 14 0.0057
- 15 0.0053
- 16 0.0047
- 17 0.0038
- 18 0.0032
- 19 0.0031
- 20 0.0031
-
-
-Final number of discrete variables fixed=30 (total=30)
-Final number of continuous variables fixed=0 (total=30)
-
-Computing objective inner bound at xhat solution
-At least one sub-problem solve time was undefined - skipping timing statistics
-At least one sub-problem solve time was undefined - skipping timing statistics
- ** At least one sub-problem failed to solve! **
- Failed sub-problems:
- Scenario1
- Scenario5
-
-Failed to compute bound at xhat due to one or more solve failures. Restoring PH to solution at final iteration.
-Generating scenario tree solution from scenario averages
-
-Scenario tree variable values:
-
- Stage: FirstStage
- (Scenarios: Scenario1 Scenario2 Scenario3 Scenario4 Scenario5 Scenario6 Scenario7 Scenario8 Scenario9 Scenario10 )
- Variable: b0
- Index: [A,B] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [B,A] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [B,C] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [B,E] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [C,B] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [D,E] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [E,B] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [E,D] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [E,F] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [F,E] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [F,G] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [F,H] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [G,F] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [G,I] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [G,J] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [H,F] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [I,G] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [J,G] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- (Scenarios: Scenario1 Scenario2 Scenario3 Scenario4 Scenario5 Scenario6 Scenario7 Scenario8 Scenario9 Scenario10 )
- Variable: x
- Index: [A,B] Values: 34.7300 33.1254 33.1254 33.1254 32.0100 33.1254 33.1254 33.1254 32.1100 33.1254
-
- Index: [B,A] Values: 34.7300 33.1254 33.1254 33.1254 32.0100 33.1254 33.1254 33.1254 32.1100 33.1254
-
- Index: [B,C] Values: 36.5300 34.3111 34.3111 34.3111 31.3200 34.3111 34.3111 34.3111 34.3111 34.3111
-
- Index: [B,E] Values: 82.7400 80.1124 80.1124 80.1124 80.1124 80.1124 80.1124 80.1124 80.1124 80.1124
-
- Index: [C,B] Values: 36.5300 34.3111 34.3111 34.3111 31.3200 34.3111 34.3111 34.3111 34.3111 34.3111
-
- Index: [D,E] Values: 35.3500 32.7993 32.7993 32.7993 32.6900 32.7993 32.7993 32.7993 30.9700 32.7993
-
- Index: [E,B] Values: 82.7400 80.1124 80.1124 80.1124 80.1124 80.1124 80.1124 80.1124 80.1124 80.1124
-
- Index: [E,D] Values: 35.3500 32.7993 32.7993 32.7993 32.6900 32.7993 32.7993 32.7993 30.9700 32.7993
-
- Index: [E,F] Values: 97.0800 97.1892 97.1892 97.1892 97.1892 97.1892 97.1892 97.1892 97.1892 97.1892
-
- Index: [F,E] Values: 97.0800 97.1892 97.1892 97.1892 97.1892 97.1892 97.1892 97.1892 97.1892 97.1892
-
- Index: [F,G] Values: 80.1400 79.2690 79.2690 79.2690 76.2500 79.2690 79.2690 79.2690 79.2690 79.2690
-
- Index: [F,H] Values: 34.5200 33.3191 33.3191 33.3191 31.9400 33.3191 33.3191 33.3191 31.4900 33.3191
-
- Index: [G,F] Values: 80.1400 79.2690 79.2690 79.2690 76.2500 79.2690 79.2690 79.2690 79.2690 79.2690
-
- Index: [G,I] Values: 32.9000 32.6519 32.6519 32.6519 33.0200 32.6519 32.6519 32.6519 30.8400 32.6519
-
- Index: [G,J] Values: 35.4800 34.0962 34.0962 34.0962 32.6900 34.0962 34.0962 34.0962 34.0962 34.0962
-
- Index: [H,F] Values: 34.5200 33.3191 33.3191 33.3191 31.9400 33.3191 33.3191 33.3191 31.4900 33.3191
-
- Index: [I,G] Values: 32.9000 32.6519 32.6519 32.6519 33.0200 32.6519 32.6519 32.6519 30.8400 32.6519
-
- Index: [J,G] Values: 35.4800 34.0962 34.0962 34.0962 32.6900 34.0962 34.0962 34.0962 34.0962 34.0962
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: Scenario1 Scenario2 Scenario3 Scenario4 Scenario5 Scenario6 Scenario7 Scenario8 Scenario9 Scenario10 )
- Values: 132428.1600 129410.2764 129410.2764 129410.2764 127138.0869 129410.2764 129410.2764 129410.2764 127866.4140 129410.2764 Max-Min: 5290.0731 Avg: 129330.4596
-Scenario tree costs:
-Scenario Tree Costs
-----------------------------------------------------
-Tree Nodes:
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- Scenario10Node
- Scenario1Node
- Scenario2Node
- Scenario3Node
- Scenario4Node
- Scenario5Node
- Scenario6Node
- Scenario7Node
- Scenario8Node
- Scenario9Node
- Scenarios:
- Scenario1
- Scenario10
- Scenario2
- Scenario3
- Scenario4
- Scenario5
- Scenario6
- Scenario7
- Scenario8
- Scenario9
- Expected cost of (sub)tree rooted at node=153513.1600
-
- Name=Scenario10Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario10
- Expected cost of (sub)tree rooted at node=20270.0000
-
- Name=Scenario1Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario1
- Expected cost of (sub)tree rooted at node=17830.0000
-
- Name=Scenario2Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario2
- Expected cost of (sub)tree rooted at node=20140.0000
-
- Name=Scenario3Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario3
- Expected cost of (sub)tree rooted at node=21290.0000
-
- Name=Scenario4Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario4
- Expected cost of (sub)tree rooted at node=23080.0000
-
- Name=Scenario5Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario5
- Expected cost of (sub)tree rooted at node=22870.0000
-
- Name=Scenario6Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario6
- Expected cost of (sub)tree rooted at node=22470.0000
-
- Name=Scenario7Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario7
- Expected cost of (sub)tree rooted at node=21330.0000
-
- Name=Scenario8Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario8
- Expected cost of (sub)tree rooted at node=22730.0000
-
- Name=Scenario9Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario9
- Expected cost of (sub)tree rooted at node=18840.0000
-
-----------------------------------------------------
-Scenarios:
-
- Name=Scenario1
- Probability=0.1000
- Leaf Node=Scenario1Node
- Tree node sequence:
- RootNode
- Scenario1Node
- Stage= FirstStage Cost=132428.1600
- Stage= SecondStage Cost=17830.0000
- Total scenario cost=150258.1600
-
- Name=Scenario10
- Probability=0.1000
- Leaf Node=Scenario10Node
- Tree node sequence:
- RootNode
- Scenario10Node
- Stage= FirstStage Cost=129410.2764
- Stage= SecondStage Cost=20270.0000
- Total scenario cost=149680.2764
-
- Name=Scenario2
- Probability=0.1000
- Leaf Node=Scenario2Node
- Tree node sequence:
- RootNode
- Scenario2Node
- Stage= FirstStage Cost=129410.2764
- Stage= SecondStage Cost=20140.0000
- Total scenario cost=149550.2764
-
- Name=Scenario3
- Probability=0.1000
- Leaf Node=Scenario3Node
- Tree node sequence:
- RootNode
- Scenario3Node
- Stage= FirstStage Cost=129410.2764
- Stage= SecondStage Cost=21290.0000
- Total scenario cost=150700.2764
-
- Name=Scenario4
- Probability=0.1000
- Leaf Node=Scenario4Node
- Tree node sequence:
- RootNode
- Scenario4Node
- Stage= FirstStage Cost=129410.2764
- Stage= SecondStage Cost=23080.0000
- Total scenario cost=152490.2764
-
- Name=Scenario5
- Probability=0.1000
- Leaf Node=Scenario5Node
- Tree node sequence:
- RootNode
- Scenario5Node
- Stage= FirstStage Cost=127138.0869
- Stage= SecondStage Cost=22870.0000
- Total scenario cost=150008.0869
-
- Name=Scenario6
- Probability=0.1000
- Leaf Node=Scenario6Node
- Tree node sequence:
- RootNode
- Scenario6Node
- Stage= FirstStage Cost=129410.2764
- Stage= SecondStage Cost=22470.0000
- Total scenario cost=151880.2764
-
- Name=Scenario7
- Probability=0.1000
- Leaf Node=Scenario7Node
- Tree node sequence:
- RootNode
- Scenario7Node
- Stage= FirstStage Cost=129410.2764
- Stage= SecondStage Cost=21330.0000
- Total scenario cost=150740.2764
-
- Name=Scenario8
- Probability=0.1000
- Leaf Node=Scenario8Node
- Tree node sequence:
- RootNode
- Scenario8Node
- Stage= FirstStage Cost=129410.2764
- Stage= SecondStage Cost=22730.0000
- Total scenario cost=152140.2764
-
- Name=Scenario9
- Probability=0.1000
- Leaf Node=Scenario9Node
- Tree node sequence:
- RootNode
- Scenario9Node
- Stage= FirstStage Cost=127866.4140
- Stage= SecondStage Cost=18840.0000
- Total scenario cost=146706.4140
-
-----------------------------------------------------
-
-
-Total PH execution time=306.94 seconds
-
-
-Total execution time=316.01 seconds
diff --git a/pyomo/pysp/tests/unit/baselines/networkflow1ef10_quadratic_gurobi.baseline-b b/pyomo/pysp/tests/unit/baselines/networkflow1ef10_quadratic_gurobi.baseline-b
deleted file mode 100644
index 04a2b5025a4..00000000000
--- a/pyomo/pysp/tests/unit/baselines/networkflow1ef10_quadratic_gurobi.baseline-b
+++ /dev/null
@@ -1,568 +0,0 @@
-Importing module=/Users/ghackebeil/Projects/Pyomo/pyomo/examples/pysp/networkflow/config/rhosettermixed.py
-Module successfully loaded
-Initializing PH
-
-Executing user rho setter callback function
-WW PH Extension: Loading user-specified configuration from file=/home/gahacke/Project/Pyomo/jenkins/src/pyomo/examples/pysp/networkflow/config/wwph-immediatefixing.cfg
-Starting PH
-
-Initiating PH iteration=0
-Number of discrete variables fixed=0 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 114953.9940 Max-Min=32195.68
-Converger=Normalized term diff value is 0.6629 - threshold reached=False
-Cumulative run-time=92.44 seconds
-
-Initiating PH iteration=1
-WW PH Extension: Setting mipgap to 0.1000000, as specified in the configuration file
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=14 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 117633.6842 Max-Min=26168.54
-Converger=Normalized term diff value is 0.4096 - threshold reached=False
-Cumulative run-time=147.18 seconds
-
-Initiating PH iteration=2
-WW PH Extension: Setting mipgap to 0.0618150, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=18 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 117306.2326 Max-Min=21252.60
-Converger=Normalized term diff value is 0.2613 - threshold reached=False
-Cumulative run-time=205.62 seconds
-
-Initiating PH iteration=3
-WW PH Extension: Setting mipgap to 0.0394646, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=20 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 117655.7422 Max-Min=19365.80
-Converger=Normalized term diff value is 0.1292 - threshold reached=False
-Cumulative run-time=254.06 seconds
-
-Initiating PH iteration=4
-WW PH Extension: Setting mipgap to 0.0195507, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=24 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 118471.8137 Max-Min=18342.30
-Converger=Normalized term diff value is 0.1037 - threshold reached=False
-Cumulative run-time=315.44 seconds
-
-Initiating PH iteration=5
-WW PH Extension: Setting mipgap to 0.0157141, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=26 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 119975.3887 Max-Min=15926.83
-Converger=Normalized term diff value is 0.0653 - threshold reached=False
-Cumulative run-time=372.61 seconds
-
-Initiating PH iteration=6
-WW PH Extension: Setting mipgap to 0.0099236, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=28 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 119576.4782 Max-Min=15510.95
-Converger=Normalized term diff value is 0.0899 - threshold reached=False
-Cumulative run-time=410.63 seconds
-
-Initiating PH iteration=7
-WW PH Extension: Setting mipgap to 0.0136356, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=28 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 121518.8650 Max-Min=14428.63
-Converger=Normalized term diff value is 0.0830 - threshold reached=False
-Cumulative run-time=462.58 seconds
-
-Initiating PH iteration=8
-WW PH Extension: Setting mipgap to 0.0125945, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=28 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 122848.6630 Max-Min=13929.60
-Converger=Normalized term diff value is 0.1281 - threshold reached=False
-Cumulative run-time=522.28 seconds
-
-Initiating PH iteration=9
-WW PH Extension: Setting mipgap to 0.0193934, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=28 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 123710.6517 Max-Min=10937.02
-Converger=Normalized term diff value is 0.1370 - threshold reached=False
-Cumulative run-time=569.34 seconds
-
-Initiating PH iteration=10
-WW PH Extension: Setting mipgap to 0.0207292, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=28 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 124709.8705 Max-Min= 9376.62
-Converger=Normalized term diff value is 0.0112 - threshold reached=False
-Cumulative run-time=626.87 seconds
-
-Initiating PH iteration=11
-WW PH Extension: Setting mipgap to 0.0017802, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=30 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 125621.3787 Max-Min= 7476.24
-Converger=Normalized term diff value is 0.0152 - threshold reached=False
-Cumulative run-time=662.71 seconds
-
-Initiating PH iteration=12
-WW PH Extension: Setting mipgap to 0.0023805, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=30 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 125664.0056 Max-Min= 9613.82
-Converger=Normalized term diff value is 0.0152 - threshold reached=False
-Cumulative run-time=689.09 seconds
-
-Initiating PH iteration=13
-WW PH Extension: Setting mipgap to 0.0023798, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=30 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 125901.0602 Max-Min= 7482.04
-Converger=Normalized term diff value is 0.0172 - threshold reached=False
-Cumulative run-time=716.76 seconds
-
-Initiating PH iteration=14
-WW PH Extension: Setting mipgap to 0.0026741, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=30 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 126214.9281 Max-Min= 6991.52
-Converger=Normalized term diff value is 0.0229 - threshold reached=False
-Cumulative run-time=753.39 seconds
-
-Initiating PH iteration=15
-WW PH Extension: Setting mipgap to 0.0035399, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=30 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 126579.3225 Max-Min= 8947.54
-Converger=Normalized term diff value is 0.0276 - threshold reached=False
-Cumulative run-time=781.17 seconds
-
-Initiating PH iteration=16
-WW PH Extension: Setting mipgap to 0.0042457, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=30 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 127145.4869 Max-Min= 6668.93
-Converger=Normalized term diff value is 0.0172 - threshold reached=False
-Cumulative run-time=799.83 seconds
-
-Initiating PH iteration=17
-WW PH Extension: Setting mipgap to 0.0026847, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=30 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 127302.2660 Max-Min= 7718.68
-Converger=Normalized term diff value is 0.0174 - threshold reached=False
-Cumulative run-time=821.49 seconds
-
-Initiating PH iteration=18
-WW PH Extension: Setting mipgap to 0.0027120, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=30 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 127821.5848 Max-Min= 7183.79
-Converger=Normalized term diff value is 0.0183 - threshold reached=False
-Cumulative run-time=843.61 seconds
-
-Initiating PH iteration=19
-WW PH Extension: Setting mipgap to 0.0028363, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=30 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 128291.8148 Max-Min= 6138.73
-Converger=Normalized term diff value is 0.0107 - threshold reached=False
-Cumulative run-time=862.18 seconds
-
-Initiating PH iteration=20
-WW PH Extension: Setting mipgap to 0.0016911, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=30 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 128233.1346 Max-Min= 6763.26
-Converger=Normalized term diff value is 0.0091 - threshold reached=False
-Cumulative run-time=888.34 seconds
-Halting PH - reached maximal iteration count=20
-
-Number of discrete variables fixed before final plugin calls=30 (total=30)
-Number of continuous variables fixed before final plugin calls=0 (total=30)
-PH complete
-
-Convergence history:
-Converger=Normalized term diff
-Iteration Metric Value
- 0 0.6629
- 1 0.4096
- 2 0.2613
- 3 0.1292
- 4 0.1037
- 5 0.0653
- 6 0.0899
- 7 0.0830
- 8 0.1281
- 9 0.1370
- 10 0.0112
- 11 0.0152
- 12 0.0152
- 13 0.0172
- 14 0.0229
- 15 0.0276
- 16 0.0172
- 17 0.0174
- 18 0.0183
- 19 0.0107
- 20 0.0091
-
-
-Final number of discrete variables fixed=30 (total=30)
-Final number of continuous variables fixed=0 (total=30)
-
-Computing objective inner bound at xhat solution
-
-Computed objective upper bound= 150630.5549
-
-X-hat variable values:
-
- Stage: FirstStage
- (Scenarios: Scenario1 Scenario2 Scenario3 Scenario4 Scenario5 Scenario6 Scenario7 Scenario8 Scenario9 Scenario10 )
- Variable: b0
- Index: [A,B] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [B,A] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [B,C] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [B,E] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [C,B] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [C,D] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [D,C] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [D,E] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [E,B] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [E,D] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [E,F] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [F,E] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [F,G] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [F,H] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [G,F] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [G,I] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [G,J] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [H,F] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [I,G] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [J,G] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- (Scenarios: Scenario1 Scenario2 Scenario3 Scenario4 Scenario5 Scenario6 Scenario7 Scenario8 Scenario9 Scenario10 )
- Variable: x
- Index: [A,B] Values: 32.9360 32.9360 32.9360 32.9360 32.9360 32.9360 32.9360 32.9360 32.9360 32.9360
-
- Index: [B,A] Values: 32.9360 32.9360 32.9360 32.9360 32.9360 32.9360 32.9360 32.9360 32.9360 32.9360
-
- Index: [B,C] Values: 7.1974 7.1974 7.1974 7.1974 7.1974 7.1974 7.1974 7.1974 7.1974 7.1974
-
- Index: [B,E] Values: 53.2800 53.2800 53.2800 53.2800 53.2800 53.2800 53.2800 53.2800 53.2800 53.2800
-
- Index: [C,B] Values: 7.1974 7.1974 7.1974 7.1974 7.1974 7.1974 7.1974 7.1974 7.1974 7.1974
-
- Index: [C,D] Values: 29.9400 29.9400 29.9400 29.9400 29.9400 29.9400 29.9400 29.9400 29.9400 29.9400
-
- Index: [D,C] Values: 29.9400 29.9400 29.9400 29.9400 29.9400 29.9400 29.9400 29.9400 29.9400 29.9400
-
- Index: [D,E] Values: 51.9600 51.9600 51.9600 51.9600 51.9600 51.9600 51.9600 51.9600 51.9600 51.9600
-
- Index: [E,B] Values: 53.2800 53.2800 53.2800 53.2800 53.2800 53.2800 53.2800 53.2800 53.2800 53.2800
-
- Index: [E,D] Values: 51.9600 51.9600 51.9600 51.9600 51.9600 51.9600 51.9600 51.9600 51.9600 51.9600
-
- Index: [E,F] Values: 97.6810 97.6810 97.6810 97.6810 97.6810 97.6810 97.6810 97.6810 97.6810 97.6810
-
- Index: [F,E] Values: 97.6810 97.6810 97.6810 97.6810 97.6810 97.6810 97.6810 97.6810 97.6810 97.6810
-
- Index: [F,G] Values: 77.5460 77.5460 77.5460 77.5460 77.5460 77.5460 77.5460 77.5460 77.5460 77.5460
-
- Index: [F,H] Values: 33.3090 33.3090 33.3090 33.3090 33.3090 33.3090 33.3090 33.3090 33.3090 33.3090
-
- Index: [G,F] Values: 77.5460 77.5460 77.5460 77.5460 77.5460 77.5460 77.5460 77.5460 77.5460 77.5460
-
- Index: [G,I] Values: 32.5309 32.5309 32.5309 32.5309 32.5309 32.5309 32.5309 32.5309 32.5309 32.5309
-
- Index: [G,J] Values: 34.5087 34.5087 34.5087 34.5087 34.5087 34.5087 34.5087 34.5087 34.5087 34.5087
-
- Index: [H,F] Values: 33.3090 33.3090 33.3090 33.3090 33.3090 33.3090 33.3090 33.3090 33.3090 33.3090
-
- Index: [I,G] Values: 32.5309 32.5309 32.5309 32.5309 32.5309 32.5309 32.5309 32.5309 32.5309 32.5309
-
- Index: [J,G] Values: 34.5087 34.5087 34.5087 34.5087 34.5087 34.5087 34.5087 34.5087 34.5087 34.5087
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: Scenario1 Scenario2 Scenario3 Scenario4 Scenario5 Scenario6 Scenario7 Scenario8 Scenario9 Scenario10 )
- Values: 131637.4181 129060.1220 129060.1220 129060.1220 131707.1549 129060.1220 129060.1220 129060.1220 130650.1220 129060.1220 Max-Min: 2647.0329 Avg: 129741.5549
-
-X-hat costs:
-
-Scenario Tree Costs
-----------------------------------------------------
-Tree Nodes:
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- Scenario10Node
- Scenario1Node
- Scenario2Node
- Scenario3Node
- Scenario4Node
- Scenario5Node
- Scenario6Node
- Scenario7Node
- Scenario8Node
- Scenario9Node
- Scenarios:
- Scenario1
- Scenario10
- Scenario2
- Scenario3
- Scenario4
- Scenario5
- Scenario6
- Scenario7
- Scenario8
- Scenario9
- Expected cost of (sub)tree rooted at node=152526.4181
-
- Name=Scenario10Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario10
- Expected cost of (sub)tree rooted at node=21310.0000
-
- Name=Scenario1Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario1
- Expected cost of (sub)tree rooted at node=21190.0000
-
- Name=Scenario2Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario2
- Expected cost of (sub)tree rooted at node=20060.0000
-
- Name=Scenario3Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario3
- Expected cost of (sub)tree rooted at node=20090.0000
-
- Name=Scenario4Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario4
- Expected cost of (sub)tree rooted at node=23000.0000
-
- Name=Scenario5Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario5
- Expected cost of (sub)tree rooted at node=20510.0000
-
- Name=Scenario6Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario6
- Expected cost of (sub)tree rooted at node=22350.0000
-
- Name=Scenario7Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario7
- Expected cost of (sub)tree rooted at node=18970.0000
-
- Name=Scenario8Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario8
- Expected cost of (sub)tree rooted at node=22690.0000
-
- Name=Scenario9Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario9
- Expected cost of (sub)tree rooted at node=18720.0000
-
-----------------------------------------------------
-Scenarios:
-
- Name=Scenario1
- Probability=0.1000
- Leaf Node=Scenario1Node
- Tree node sequence:
- RootNode
- Scenario1Node
- Stage= FirstStage Cost=131637.4181
- Stage= SecondStage Cost=21190.0000
- Total scenario cost=152827.4181
-
- Name=Scenario10
- Probability=0.1000
- Leaf Node=Scenario10Node
- Tree node sequence:
- RootNode
- Scenario10Node
- Stage= FirstStage Cost=129060.1220
- Stage= SecondStage Cost=21310.0000
- Total scenario cost=150370.1220
-
- Name=Scenario2
- Probability=0.1000
- Leaf Node=Scenario2Node
- Tree node sequence:
- RootNode
- Scenario2Node
- Stage= FirstStage Cost=129060.1220
- Stage= SecondStage Cost=20060.0000
- Total scenario cost=149120.1220
-
- Name=Scenario3
- Probability=0.1000
- Leaf Node=Scenario3Node
- Tree node sequence:
- RootNode
- Scenario3Node
- Stage= FirstStage Cost=129060.1220
- Stage= SecondStage Cost=20090.0000
- Total scenario cost=149150.1220
-
- Name=Scenario4
- Probability=0.1000
- Leaf Node=Scenario4Node
- Tree node sequence:
- RootNode
- Scenario4Node
- Stage= FirstStage Cost=129060.1220
- Stage= SecondStage Cost=23000.0000
- Total scenario cost=152060.1220
-
- Name=Scenario5
- Probability=0.1000
- Leaf Node=Scenario5Node
- Tree node sequence:
- RootNode
- Scenario5Node
- Stage= FirstStage Cost=131707.1549
- Stage= SecondStage Cost=20510.0000
- Total scenario cost=152217.1549
-
- Name=Scenario6
- Probability=0.1000
- Leaf Node=Scenario6Node
- Tree node sequence:
- RootNode
- Scenario6Node
- Stage= FirstStage Cost=129060.1220
- Stage= SecondStage Cost=22350.0000
- Total scenario cost=151410.1220
-
- Name=Scenario7
- Probability=0.1000
- Leaf Node=Scenario7Node
- Tree node sequence:
- RootNode
- Scenario7Node
- Stage= FirstStage Cost=129060.1220
- Stage= SecondStage Cost=18970.0000
- Total scenario cost=148030.1220
-
- Name=Scenario8
- Probability=0.1000
- Leaf Node=Scenario8Node
- Tree node sequence:
- RootNode
- Scenario8Node
- Stage= FirstStage Cost=129060.1220
- Stage= SecondStage Cost=22690.0000
- Total scenario cost=151750.1220
-
- Name=Scenario9
- Probability=0.1000
- Leaf Node=Scenario9Node
- Tree node sequence:
- RootNode
- Scenario9Node
- Stage= FirstStage Cost=130650.1220
- Stage= SecondStage Cost=18720.0000
- Total scenario cost=149370.1220
-
-----------------------------------------------------
-
-
-Total PH execution time=903.79 seconds
-
-
-Total execution time=930.02 seconds
diff --git a/pyomo/pysp/tests/unit/baselines/networkflow1ef10_quadratic_gurobi_darwin.baseline b/pyomo/pysp/tests/unit/baselines/networkflow1ef10_quadratic_gurobi_darwin.baseline
deleted file mode 100644
index 73e456f8332..00000000000
--- a/pyomo/pysp/tests/unit/baselines/networkflow1ef10_quadratic_gurobi_darwin.baseline
+++ /dev/null
@@ -1,568 +0,0 @@
-Importing module=/Users/ghackebeil/Projects/Pyomo/pyomo/examples/pysp/networkflow/config/rhosettermixed.py
-Module successfully loaded
-Initializing PH
-
-Executing user rho setter callback function
-WW PH Extension: Loading user-specified configuration from file=/Users/ghackebeil/Projects/Pyomo/pyomo/examples/pysp/networkflow/config/wwph-immediatefixing.cfg
-Starting PH
-
-Initiating PH iteration=0
-Number of discrete variables fixed=0 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 114953.9940 Max-Min=32195.68
-Converger=Normalized term diff value is 0.6629 - threshold reached=False
-Cumulative run-time=12.72 seconds
-
-Initiating PH iteration=1
-WW PH Extension: Setting mipgap to 0.1000000, as specified in the configuration file
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=14 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 117339.3087 Max-Min=26878.78
-Converger=Normalized term diff value is 0.4144 - threshold reached=False
-Cumulative run-time=20.82 seconds
-
-Initiating PH iteration=2
-WW PH Extension: Setting mipgap to 0.0625454, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=18 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 117110.7904 Max-Min=21744.65
-Converger=Normalized term diff value is 0.2859 - threshold reached=False
-Cumulative run-time=28.40 seconds
-
-Initiating PH iteration=3
-WW PH Extension: Setting mipgap to 0.0431724, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=22 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 117536.4041 Max-Min=19910.59
-Converger=Normalized term diff value is 0.2687 - threshold reached=False
-Cumulative run-time=35.37 seconds
-
-Initiating PH iteration=4
-WW PH Extension: Setting mipgap to 0.0405790, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=24 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 118186.5270 Max-Min=18639.12
-Converger=Normalized term diff value is 0.2662 - threshold reached=False
-Cumulative run-time=42.96 seconds
-
-Initiating PH iteration=5
-WW PH Extension: Setting mipgap to 0.0402101, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=26 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 119133.6484 Max-Min=16634.99
-Converger=Normalized term diff value is 0.0225 - threshold reached=False
-Cumulative run-time=49.70 seconds
-
-Initiating PH iteration=6
-WW PH Extension: Setting mipgap to 0.0034776, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=30 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 120945.8936 Max-Min=15215.35
-Converger=Normalized term diff value is 0.0235 - threshold reached=False
-Cumulative run-time=55.40 seconds
-
-Initiating PH iteration=7
-WW PH Extension: Setting mipgap to 0.0036315, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=30 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 121884.2226 Max-Min=14450.53
-Converger=Normalized term diff value is 0.0211 - threshold reached=False
-Cumulative run-time=62.30 seconds
-
-Initiating PH iteration=8
-WW PH Extension: Setting mipgap to 0.0032592, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=30 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 124297.7724 Max-Min=11543.78
-Converger=Normalized term diff value is 0.0179 - threshold reached=False
-Cumulative run-time=68.64 seconds
-
-Initiating PH iteration=9
-WW PH Extension: Setting mipgap to 0.0027830, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=30 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 124870.3540 Max-Min=10963.88
-Converger=Normalized term diff value is 0.0160 - threshold reached=False
-Cumulative run-time=74.81 seconds
-
-Initiating PH iteration=10
-WW PH Extension: Setting mipgap to 0.0024956, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=30 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 125778.0195 Max-Min= 9351.29
-Converger=Normalized term diff value is 0.0131 - threshold reached=False
-Cumulative run-time=80.67 seconds
-
-Initiating PH iteration=11
-WW PH Extension: Setting mipgap to 0.0020587, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=30 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 126187.3355 Max-Min= 9664.19
-Converger=Normalized term diff value is 0.0154 - threshold reached=False
-Cumulative run-time=87.49 seconds
-
-Initiating PH iteration=12
-WW PH Extension: Setting mipgap to 0.0024013, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=30 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 126099.3338 Max-Min= 9527.39
-Converger=Normalized term diff value is 0.0132 - threshold reached=False
-Cumulative run-time=94.41 seconds
-
-Initiating PH iteration=13
-WW PH Extension: Setting mipgap to 0.0020771, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=30 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 126430.0175 Max-Min= 7476.24
-Converger=Normalized term diff value is 0.0121 - threshold reached=False
-Cumulative run-time=101.26 seconds
-
-Initiating PH iteration=14
-WW PH Extension: Setting mipgap to 0.0019157, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=30 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 126347.6858 Max-Min= 8820.75
-Converger=Normalized term diff value is 0.0165 - threshold reached=False
-Cumulative run-time=107.64 seconds
-
-Initiating PH iteration=15
-WW PH Extension: Setting mipgap to 0.0025719, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=30 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 126715.8351 Max-Min= 6787.39
-Converger=Normalized term diff value is 0.0130 - threshold reached=False
-Cumulative run-time=114.21 seconds
-
-Initiating PH iteration=16
-WW PH Extension: Setting mipgap to 0.0020383, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=30 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 127206.0166 Max-Min= 6672.06
-Converger=Normalized term diff value is 0.0110 - threshold reached=False
-Cumulative run-time=120.49 seconds
-
-Initiating PH iteration=17
-WW PH Extension: Setting mipgap to 0.0017485, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=30 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 127575.7077 Max-Min= 7614.91
-Converger=Normalized term diff value is 0.0144 - threshold reached=False
-Cumulative run-time=126.58 seconds
-
-Initiating PH iteration=18
-WW PH Extension: Setting mipgap to 0.0022545, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=30 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 127936.7492 Max-Min= 6280.08
-Converger=Normalized term diff value is 0.0096 - threshold reached=False
-Cumulative run-time=132.81 seconds
-
-Initiating PH iteration=19
-WW PH Extension: Setting mipgap to 0.0015382, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=30 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 128675.2521 Max-Min= 3484.93
-Converger=Normalized term diff value is 0.0110 - threshold reached=False
-Cumulative run-time=138.85 seconds
-
-Initiating PH iteration=20
-WW PH Extension: Setting mipgap to 0.0017449, based on current value of the convergence metric
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=30 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 128550.6488 Max-Min= 6595.40
-Converger=Normalized term diff value is 0.0125 - threshold reached=False
-Cumulative run-time=144.49 seconds
-Halting PH - reached maximal iteration count=20
-
-Number of discrete variables fixed before final plugin calls=30 (total=30)
-Number of continuous variables fixed before final plugin calls=0 (total=30)
-PH complete
-
-Convergence history:
-Converger=Normalized term diff
-Iteration Metric Value
- 0 0.6629
- 1 0.4144
- 2 0.2859
- 3 0.2687
- 4 0.2662
- 5 0.0225
- 6 0.0235
- 7 0.0211
- 8 0.0179
- 9 0.0160
- 10 0.0131
- 11 0.0154
- 12 0.0132
- 13 0.0121
- 14 0.0165
- 15 0.0130
- 16 0.0110
- 17 0.0144
- 18 0.0096
- 19 0.0110
- 20 0.0125
-
-
-Final number of discrete variables fixed=30 (total=30)
-Final number of continuous variables fixed=0 (total=30)
-
-Computing objective inner bound at xhat solution
-
-Computed objective upper bound= 150317.1941
-
-X-hat variable values:
-
- Stage: FirstStage
- (Scenarios: Scenario1 Scenario2 Scenario3 Scenario4 Scenario5 Scenario6 Scenario7 Scenario8 Scenario9 Scenario10 )
- Variable: b0
- Index: [A,B] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [B,A] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [B,C] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [B,E] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [C,B] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [C,D] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [D,C] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [D,E] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [E,B] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [E,D] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [E,F] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [F,E] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [F,G] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [F,H] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [G,F] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [G,I] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [G,J] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [H,F] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [I,G] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [J,G] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- (Scenarios: Scenario1 Scenario2 Scenario3 Scenario4 Scenario5 Scenario6 Scenario7 Scenario8 Scenario9 Scenario10 )
- Variable: x
- Index: [A,B] Values: 32.8709 32.8709 32.8709 32.8709 32.8709 32.8709 32.8709 32.8709 32.8709 32.8709
-
- Index: [B,A] Values: 32.8709 32.8709 32.8709 32.8709 32.8709 32.8709 32.8709 32.8709 32.8709 32.8709
-
- Index: [B,C] Values: 5.7431 5.7431 5.7431 5.7431 5.7431 5.7431 5.7431 5.7431 5.7431 5.7431
-
- Index: [B,E] Values: 53.2800 53.2800 53.2800 53.2800 53.2800 53.2800 53.2800 53.2800 53.2800 53.2800
-
- Index: [C,B] Values: 5.7431 5.7431 5.7431 5.7431 5.7431 5.7431 5.7431 5.7431 5.7431 5.7431
-
- Index: [C,D] Values: 29.9400 29.9400 29.9400 29.9400 29.9400 29.9400 29.9400 29.9400 29.9400 29.9400
-
- Index: [D,C] Values: 29.9400 29.9400 29.9400 29.9400 29.9400 29.9400 29.9400 29.9400 29.9400 29.9400
-
- Index: [D,E] Values: 52.3026 52.3026 52.3026 52.3026 52.3026 52.3026 52.3026 52.3026 52.3026 52.3026
-
- Index: [E,B] Values: 53.2800 53.2800 53.2800 53.2800 53.2800 53.2800 53.2800 53.2800 53.2800 53.2800
-
- Index: [E,D] Values: 52.3026 52.3026 52.3026 52.3026 52.3026 52.3026 52.3026 52.3026 52.3026 52.3026
-
- Index: [E,F] Values: 97.7175 97.7175 97.7175 97.7175 97.7175 97.7175 97.7175 97.7175 97.7175 97.7175
-
- Index: [F,E] Values: 97.7175 97.7175 97.7175 97.7175 97.7175 97.7175 97.7175 97.7175 97.7175 97.7175
-
- Index: [F,G] Values: 78.6201 78.6201 78.6201 78.6201 78.6201 78.6201 78.6201 78.6201 78.6201 78.6201
-
- Index: [F,H] Values: 32.3490 32.3490 32.3490 32.3490 32.3490 32.3490 32.3490 32.3490 32.3490 32.3490
-
- Index: [G,F] Values: 78.6201 78.6201 78.6201 78.6201 78.6201 78.6201 78.6201 78.6201 78.6201 78.6201
-
- Index: [G,I] Values: 32.6396 32.6396 32.6396 32.6396 32.6396 32.6396 32.6396 32.6396 32.6396 32.6396
-
- Index: [G,J] Values: 34.1921 34.1921 34.1921 34.1921 34.1921 34.1921 34.1921 34.1921 34.1921 34.1921
-
- Index: [H,F] Values: 32.3490 32.3490 32.3490 32.3490 32.3490 32.3490 32.3490 32.3490 32.3490 32.3490
-
- Index: [I,G] Values: 32.6396 32.6396 32.6396 32.6396 32.6396 32.6396 32.6396 32.6396 32.6396 32.6396
-
- Index: [J,G] Values: 34.1921 34.1921 34.1921 34.1921 34.1921 34.1921 34.1921 34.1921 34.1921 34.1921
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: Scenario1 Scenario2 Scenario3 Scenario4 Scenario5 Scenario6 Scenario7 Scenario8 Scenario9 Scenario10 )
- Values: 131645.4493 128730.7701 128730.7701 128730.7701 131275.7001 128730.7701 128730.7701 128730.7701 130245.4006 128730.7701 Max-Min: 2914.6792 Avg: 129428.1941
-
-X-hat costs:
-
-Scenario Tree Costs
-----------------------------------------------------
-Tree Nodes:
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- Scenario10Node
- Scenario1Node
- Scenario2Node
- Scenario3Node
- Scenario4Node
- Scenario5Node
- Scenario6Node
- Scenario7Node
- Scenario8Node
- Scenario9Node
- Scenarios:
- Scenario1
- Scenario10
- Scenario2
- Scenario3
- Scenario4
- Scenario5
- Scenario6
- Scenario7
- Scenario8
- Scenario9
- Expected cost of (sub)tree rooted at node=152534.4493
-
- Name=Scenario10Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario10
- Expected cost of (sub)tree rooted at node=21310.0000
-
- Name=Scenario1Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario1
- Expected cost of (sub)tree rooted at node=21190.0000
-
- Name=Scenario2Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario2
- Expected cost of (sub)tree rooted at node=20060.0000
-
- Name=Scenario3Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario3
- Expected cost of (sub)tree rooted at node=20090.0000
-
- Name=Scenario4Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario4
- Expected cost of (sub)tree rooted at node=23000.0000
-
- Name=Scenario5Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario5
- Expected cost of (sub)tree rooted at node=20510.0000
-
- Name=Scenario6Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario6
- Expected cost of (sub)tree rooted at node=22350.0000
-
- Name=Scenario7Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario7
- Expected cost of (sub)tree rooted at node=18970.0000
-
- Name=Scenario8Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario8
- Expected cost of (sub)tree rooted at node=22690.0000
-
- Name=Scenario9Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario9
- Expected cost of (sub)tree rooted at node=18720.0000
-
-----------------------------------------------------
-Scenarios:
-
- Name=Scenario1
- Probability=0.1000
- Leaf Node=Scenario1Node
- Tree node sequence:
- RootNode
- Scenario1Node
- Stage= FirstStage Cost=131645.4493
- Stage= SecondStage Cost=21190.0000
- Total scenario cost=152835.4493
-
- Name=Scenario10
- Probability=0.1000
- Leaf Node=Scenario10Node
- Tree node sequence:
- RootNode
- Scenario10Node
- Stage= FirstStage Cost=128730.7701
- Stage= SecondStage Cost=21310.0000
- Total scenario cost=150040.7701
-
- Name=Scenario2
- Probability=0.1000
- Leaf Node=Scenario2Node
- Tree node sequence:
- RootNode
- Scenario2Node
- Stage= FirstStage Cost=128730.7701
- Stage= SecondStage Cost=20060.0000
- Total scenario cost=148790.7701
-
- Name=Scenario3
- Probability=0.1000
- Leaf Node=Scenario3Node
- Tree node sequence:
- RootNode
- Scenario3Node
- Stage= FirstStage Cost=128730.7701
- Stage= SecondStage Cost=20090.0000
- Total scenario cost=148820.7701
-
- Name=Scenario4
- Probability=0.1000
- Leaf Node=Scenario4Node
- Tree node sequence:
- RootNode
- Scenario4Node
- Stage= FirstStage Cost=128730.7701
- Stage= SecondStage Cost=23000.0000
- Total scenario cost=151730.7701
-
- Name=Scenario5
- Probability=0.1000
- Leaf Node=Scenario5Node
- Tree node sequence:
- RootNode
- Scenario5Node
- Stage= FirstStage Cost=131275.7001
- Stage= SecondStage Cost=20510.0000
- Total scenario cost=151785.7001
-
- Name=Scenario6
- Probability=0.1000
- Leaf Node=Scenario6Node
- Tree node sequence:
- RootNode
- Scenario6Node
- Stage= FirstStage Cost=128730.7701
- Stage= SecondStage Cost=22350.0000
- Total scenario cost=151080.7701
-
- Name=Scenario7
- Probability=0.1000
- Leaf Node=Scenario7Node
- Tree node sequence:
- RootNode
- Scenario7Node
- Stage= FirstStage Cost=128730.7701
- Stage= SecondStage Cost=18970.0000
- Total scenario cost=147700.7701
-
- Name=Scenario8
- Probability=0.1000
- Leaf Node=Scenario8Node
- Tree node sequence:
- RootNode
- Scenario8Node
- Stage= FirstStage Cost=128730.7701
- Stage= SecondStage Cost=22690.0000
- Total scenario cost=151420.7701
-
- Name=Scenario9
- Probability=0.1000
- Leaf Node=Scenario9Node
- Tree node sequence:
- RootNode
- Scenario9Node
- Stage= FirstStage Cost=130245.4006
- Stage= SecondStage Cost=18720.0000
- Total scenario cost=148965.4006
-
-----------------------------------------------------
-
-
-Total PH execution time=148.93 seconds
-
-
-Total execution time=151.89 seconds
diff --git a/pyomo/pysp/tests/unit/baselines/networkflow1ef10_simple_linearized_cplex_with_phpyro.baseline-a b/pyomo/pysp/tests/unit/baselines/networkflow1ef10_simple_linearized_cplex_with_phpyro.baseline-a
deleted file mode 100644
index bcc95454b2d..00000000000
--- a/pyomo/pysp/tests/unit/baselines/networkflow1ef10_simple_linearized_cplex_with_phpyro.baseline-a
+++ /dev/null
@@ -1,454 +0,0 @@
-Importing module=/Users/ghackebeil/Projects/Pyomo/pyomo/examples/pysp/networkflow/config/aggregategetter.py
-Module successfully loaded
-Importing module=/Users/ghackebeil/Projects/Pyomo/pyomo/examples/pysp/networkflow/config/rhosettermixed.py
-Module successfully loaded
-Importing module=/Users/ghackebeil/Projects/Pyomo/pyomo/examples/pysp/networkflow/config/xboundsetter.py
-Module successfully loaded
-Client assigned dispatcher with URI=PYRO://127.0.0.1:46522/86fdc20132b122e2f625ac142ddf146f56
-Initializing PH
-
-Transmitting user aggregate callback invocations to phsolverservers
-Broadcasting final aggregate data to phsolverservers
-Transmitting user rho callback invocations to phsolverservers
-Transmitting user bound callback invocations to phsolverservers
-Starting PH
-
-Initiating PH iteration=0
-Number of discrete variables fixed=0 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 114953.9940 Max-Min=32195.68
-Converger=Normalized term diff value is 0.6629 - threshold reached=False
-Cumulative run-time=12.71 seconds
-
-Initiating PH iteration=1
-Number of discrete variables fixed=0 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 118788.3807 Max-Min=27009.62
-Converger=Normalized term diff value is 0.1874 - threshold reached=False
-Cumulative run-time=25.25 seconds
-
-Initiating PH iteration=2
-Number of discrete variables fixed=0 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 117633.0981 Max-Min=21620.70
-Converger=Normalized term diff value is 0.2645 - threshold reached=False
-Cumulative run-time=35.65 seconds
-
-Initiating PH iteration=3
-Number of discrete variables fixed=0 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 117501.6469 Max-Min=23011.86
-Converger=Normalized term diff value is 0.2892 - threshold reached=False
-Cumulative run-time=46.46 seconds
-
-Initiating PH iteration=4
-Number of discrete variables fixed=0 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 118469.5312 Max-Min=18688.56
-Converger=Normalized term diff value is 0.4050 - threshold reached=False
-Cumulative run-time=57.45 seconds
-
-Initiating PH iteration=5
-Number of discrete variables fixed=0 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 119025.8913 Max-Min=17171.44
-Converger=Normalized term diff value is 0.1731 - threshold reached=False
-Cumulative run-time=70.22 seconds
-
-Initiating PH iteration=6
-Number of discrete variables fixed=0 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 119725.6070 Max-Min=17625.86
-Converger=Normalized term diff value is 0.3237 - threshold reached=False
-Cumulative run-time=79.54 seconds
-
-Initiating PH iteration=7
-Number of discrete variables fixed=0 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 119687.1521 Max-Min=17076.76
-Converger=Normalized term diff value is 0.4936 - threshold reached=False
-Cumulative run-time=87.88 seconds
-
-Initiating PH iteration=8
-Number of discrete variables fixed=0 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 120749.1000 Max-Min=15324.64
-Converger=Normalized term diff value is 0.2422 - threshold reached=False
-Cumulative run-time=97.42 seconds
-
-Initiating PH iteration=9
-Number of discrete variables fixed=0 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 120552.4689 Max-Min=15566.47
-Converger=Normalized term diff value is 0.2506 - threshold reached=False
-Cumulative run-time=104.72 seconds
-
-Initiating PH iteration=10
-Number of discrete variables fixed=0 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 121826.5032 Max-Min=13946.93
-Converger=Normalized term diff value is 0.0122 - threshold reached=False
-Cumulative run-time=115.39 seconds
-Halting PH - reached maximal iteration count=10
-
-Number of discrete variables fixed before final plugin calls=0 (total=30)
-Number of continuous variables fixed before final plugin calls=0 (total=30)
-PH complete
-
-Convergence history:
-Converger=Normalized term diff
-Iteration Metric Value
- 0 0.6629
- 1 0.1874
- 2 0.2645
- 3 0.2892
- 4 0.4050
- 5 0.1731
- 6 0.3237
- 7 0.4936
- 8 0.2422
- 9 0.2506
- 10 0.0122
-
-
-Final number of discrete variables fixed=0 (total=30)
-Final number of continuous variables fixed=0 (total=30)
-
-Computing objective inner bound at xhat solution
-At least one sub-problem solve time was undefined - skipping timing statistics
-At least one sub-problem solve time was undefined - skipping timing statistics
- ** At least one sub-problem failed to solve! **
- Failed sub-problems:
- Scenario1
- Scenario5
- Scenario7
- Scenario9
-
-Failed to compute bound at xhat due to one or more solve failures. Restoring PH to solution at final iteration.
-Generating scenario tree solution from scenario averages
-
-Scenario tree variable values:
-
- Stage: FirstStage
- (Scenarios: Scenario1 Scenario2 Scenario3 Scenario4 Scenario5 Scenario6 Scenario7 Scenario8 Scenario9 Scenario10 )
- Variable: b0
- Index: [A,B] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [B,A] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [B,C] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [B,E] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [C,B] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [D,E] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [E,B] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [E,D] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [E,F] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [F,E] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [F,G] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [F,H] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [G,F] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [G,I] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [G,J] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [H,F] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [I,G] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [J,G] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- (Scenarios: Scenario1 Scenario2 Scenario3 Scenario4 Scenario5 Scenario6 Scenario7 Scenario8 Scenario9 Scenario10 )
- Variable: x
- Index: [A,B] Values: 34.7300 31.7720 31.7720 31.7720 32.0100 31.7720 30.2400 31.7720 32.1100 31.7720
-
- Index: [B,A] Values: 34.7300 31.7720 31.7720 31.7720 32.0100 31.7720 30.2400 31.7720 32.1100 31.7720
-
- Index: [B,C] Values: 36.5300 28.6800 28.4100 26.5921 31.3200 30.3910 30.3910 30.3910 30.7900 29.9400
-
- Index: [B,E] Values: 82.7400 69.5738 69.5738 69.5738 75.6700 69.5738 69.5738 69.5738 72.6300 69.7000
-
- Index: [C,B] Values: 36.5300 28.6800 28.4100 26.5921 31.3200 30.3910 30.3910 30.3910 30.7900 29.9400
-
- Index: [D,E] Values: 35.3500 28.4200 28.0900 28.4362 32.6900 28.1700 29.0200 28.4362 30.9700 28.7200
-
- Index: [E,B] Values: 82.7400 69.5738 69.5738 69.5738 75.6700 69.5738 69.5738 69.5738 72.6300 69.7000
-
- Index: [E,D] Values: 35.3500 28.4200 28.0900 28.4362 32.6900 28.1700 29.0200 28.4362 30.9700 28.7200
-
- Index: [E,F] Values: 97.0800 91.9061 91.9061 91.9061 90.3500 102.2778 102.2778 102.2778 91.9061 91.9061
-
- Index: [F,E] Values: 97.0800 91.9061 91.9061 91.9061 90.3500 102.2778 102.2778 102.2778 91.9061 91.9061
-
- Index: [F,G] Values: 80.1400 73.0839 73.0839 73.0839 76.2500 73.0839 73.0839 73.0839 72.8500 73.0839
-
- Index: [F,H] Values: 34.5200 28.7700 28.4800 28.8670 31.9400 28.8670 28.9200 28.8670 31.4900 28.9600
-
- Index: [G,F] Values: 80.1400 73.0839 73.0839 73.0839 76.2500 73.0839 73.0839 73.0839 72.8500 73.0839
-
- Index: [G,I] Values: 32.9000 30.2456 28.7500 30.2456 33.0200 30.2456 29.1800 30.2456 30.8400 29.2000
-
- Index: [G,J] Values: 35.4800 31.2719 31.2719 31.2719 32.6900 31.2719 31.2719 31.2719 30.7700 29.5800
-
- Index: [H,F] Values: 34.5200 28.7700 28.4800 28.8670 31.9400 28.8670 28.9200 28.8670 31.4900 28.9600
-
- Index: [I,G] Values: 32.9000 30.2456 28.7500 30.2456 33.0200 30.2456 29.1800 30.2456 30.8400 29.2000
-
- Index: [J,G] Values: 35.4800 31.2719 31.2719 31.2719 32.6900 31.2719 31.2719 31.2719 30.7700 29.5800
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: Scenario1 Scenario2 Scenario3 Scenario4 Scenario5 Scenario6 Scenario7 Scenario8 Scenario9 Scenario10 )
- Values: 132428.1600 119058.6415 118481.2344 118602.6582 124478.4400 121707.2130 121302.4605 121765.7797 121639.1375 118801.3073 Max-Min: 13946.9256 Avg: 121826.5032
-Scenario tree costs:
-Scenario Tree Costs
-----------------------------------------------------
-Tree Nodes:
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- Scenario10Node
- Scenario1Node
- Scenario2Node
- Scenario3Node
- Scenario4Node
- Scenario5Node
- Scenario6Node
- Scenario7Node
- Scenario8Node
- Scenario9Node
- Scenarios:
- Scenario1
- Scenario10
- Scenario2
- Scenario3
- Scenario4
- Scenario5
- Scenario6
- Scenario7
- Scenario8
- Scenario9
- Expected cost of (sub)tree rooted at node=153513.1600
-
- Name=Scenario10Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario10
- Expected cost of (sub)tree rooted at node=20270.0000
-
- Name=Scenario1Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario1
- Expected cost of (sub)tree rooted at node=17830.0000
-
- Name=Scenario2Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario2
- Expected cost of (sub)tree rooted at node=20140.0000
-
- Name=Scenario3Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario3
- Expected cost of (sub)tree rooted at node=21290.0000
-
- Name=Scenario4Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario4
- Expected cost of (sub)tree rooted at node=23080.0000
-
- Name=Scenario5Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario5
- Expected cost of (sub)tree rooted at node=22870.0000
-
- Name=Scenario6Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario6
- Expected cost of (sub)tree rooted at node=22470.0000
-
- Name=Scenario7Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario7
- Expected cost of (sub)tree rooted at node=21330.0000
-
- Name=Scenario8Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario8
- Expected cost of (sub)tree rooted at node=22730.0000
-
- Name=Scenario9Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario9
- Expected cost of (sub)tree rooted at node=18840.0000
-
-----------------------------------------------------
-Scenarios:
-
- Name=Scenario1
- Probability=0.1000
- Leaf Node=Scenario1Node
- Tree node sequence:
- RootNode
- Scenario1Node
- Stage= FirstStage Cost=132428.1600
- Stage= SecondStage Cost=17830.0000
- Total scenario cost=150258.1600
-
- Name=Scenario10
- Probability=0.1000
- Leaf Node=Scenario10Node
- Tree node sequence:
- RootNode
- Scenario10Node
- Stage= FirstStage Cost=118801.3073
- Stage= SecondStage Cost=20270.0000
- Total scenario cost=139071.3073
-
- Name=Scenario2
- Probability=0.1000
- Leaf Node=Scenario2Node
- Tree node sequence:
- RootNode
- Scenario2Node
- Stage= FirstStage Cost=119058.6415
- Stage= SecondStage Cost=20140.0000
- Total scenario cost=139198.6415
-
- Name=Scenario3
- Probability=0.1000
- Leaf Node=Scenario3Node
- Tree node sequence:
- RootNode
- Scenario3Node
- Stage= FirstStage Cost=118481.2344
- Stage= SecondStage Cost=21290.0000
- Total scenario cost=139771.2344
-
- Name=Scenario4
- Probability=0.1000
- Leaf Node=Scenario4Node
- Tree node sequence:
- RootNode
- Scenario4Node
- Stage= FirstStage Cost=118602.6582
- Stage= SecondStage Cost=23080.0000
- Total scenario cost=141682.6582
-
- Name=Scenario5
- Probability=0.1000
- Leaf Node=Scenario5Node
- Tree node sequence:
- RootNode
- Scenario5Node
- Stage= FirstStage Cost=124478.4400
- Stage= SecondStage Cost=22870.0000
- Total scenario cost=147348.4400
-
- Name=Scenario6
- Probability=0.1000
- Leaf Node=Scenario6Node
- Tree node sequence:
- RootNode
- Scenario6Node
- Stage= FirstStage Cost=121707.2130
- Stage= SecondStage Cost=22470.0000
- Total scenario cost=144177.2130
-
- Name=Scenario7
- Probability=0.1000
- Leaf Node=Scenario7Node
- Tree node sequence:
- RootNode
- Scenario7Node
- Stage= FirstStage Cost=121302.4605
- Stage= SecondStage Cost=21330.0000
- Total scenario cost=142632.4605
-
- Name=Scenario8
- Probability=0.1000
- Leaf Node=Scenario8Node
- Tree node sequence:
- RootNode
- Scenario8Node
- Stage= FirstStage Cost=121765.7797
- Stage= SecondStage Cost=22730.0000
- Total scenario cost=144495.7797
-
- Name=Scenario9
- Probability=0.1000
- Leaf Node=Scenario9Node
- Tree node sequence:
- RootNode
- Scenario9Node
- Stage= FirstStage Cost=121639.1375
- Stage= SecondStage Cost=18840.0000
- Total scenario cost=140479.1375
-
-----------------------------------------------------
-
-
-Total PH execution time=124.16 seconds
-
-
-Total execution time=127.90 seconds
diff --git a/pyomo/pysp/tests/unit/baselines/networkflow1ef10_simple_linearized_cplex_with_phpyro.baseline-b b/pyomo/pysp/tests/unit/baselines/networkflow1ef10_simple_linearized_cplex_with_phpyro.baseline-b
deleted file mode 100755
index 5c0db5e05b0..00000000000
--- a/pyomo/pysp/tests/unit/baselines/networkflow1ef10_simple_linearized_cplex_with_phpyro.baseline-b
+++ /dev/null
@@ -1,478 +0,0 @@
-Importing module=/Users/ghackebeil/Projects/Pyomo/pyomo/examples/pysp/networkflow/config/aggregategetter.py
-Module successfully loaded
-Importing module=/Users/ghackebeil/Projects/Pyomo/pyomo/examples/pysp/networkflow/config/rhosettermixed.py
-Module successfully loaded
-Importing module=/Users/ghackebeil/Projects/Pyomo/pyomo/examples/pysp/networkflow/config/xboundsetter.py
-Module successfully loaded
-Client assigned dispatcher with URI=PYRO::PyUtilibServer.dispatcher.3a85ed4a-2b08-4f58-8ed3-cf2d6d174d5f@localhost:52435
-Initializing PH
-
-Transmitting user aggregate callback invocations to phsolverservers
-Broadcasting final aggregate data to phsolverservers
-Transmitting user rho callback invocations to phsolverservers
-Transmitting user bound callback invocations to phsolverservers
-Starting PH
-
-Initiating PH iteration=0
-Number of discrete variables fixed=0 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 114953.9940 Max-Min=32195.68
-Converger=Normalized term diff value is 0.6629 - threshold reached=False
-Cumulative run-time=5.63 seconds
-
-Initiating PH iteration=1
-Number of discrete variables fixed=0 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 117602.5586 Max-Min=25401.79
-Converger=Normalized term diff value is 0.1815 - threshold reached=False
-Cumulative run-time=7.98 seconds
-
-Initiating PH iteration=2
-Number of discrete variables fixed=0 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 117449.8442 Max-Min=21875.36
-Converger=Normalized term diff value is 0.1744 - threshold reached=False
-Cumulative run-time=9.91 seconds
-
-Initiating PH iteration=3
-Number of discrete variables fixed=0 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 118978.2158 Max-Min=18274.39
-Converger=Normalized term diff value is 0.3423 - threshold reached=False
-Cumulative run-time=11.86 seconds
-
-Initiating PH iteration=4
-Number of discrete variables fixed=0 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 119118.3469 Max-Min=18709.94
-Converger=Normalized term diff value is 0.4773 - threshold reached=False
-Cumulative run-time=13.61 seconds
-
-Initiating PH iteration=5
-Number of discrete variables fixed=0 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 118706.1666 Max-Min=17997.46
-Converger=Normalized term diff value is 0.3837 - threshold reached=False
-Cumulative run-time=15.59 seconds
-
-Initiating PH iteration=6
-Number of discrete variables fixed=0 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 119544.3928 Max-Min=16795.51
-Converger=Normalized term diff value is 0.3824 - threshold reached=False
-Cumulative run-time=17.80 seconds
-
-Initiating PH iteration=7
-Number of discrete variables fixed=0 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 120528.2957 Max-Min=16337.65
-Converger=Normalized term diff value is 0.1429 - threshold reached=False
-Cumulative run-time=19.81 seconds
-
-Initiating PH iteration=8
-Number of discrete variables fixed=0 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 121493.9662 Max-Min=14296.26
-Converger=Normalized term diff value is 0.1420 - threshold reached=False
-Cumulative run-time=21.86 seconds
-
-Initiating PH iteration=9
-Number of discrete variables fixed=0 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 123203.6220 Max-Min=11664.42
-Converger=Normalized term diff value is 0.4943 - threshold reached=False
-Cumulative run-time=23.77 seconds
-
-Initiating PH iteration=10
-Number of discrete variables fixed=0 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 123063.9406 Max-Min=13463.62
-Converger=Normalized term diff value is 0.2668 - threshold reached=False
-Cumulative run-time=25.91 seconds
-Halting PH - reached maximal iteration count=10
-
-Number of discrete variables fixed before final plugin calls=0 (total=30)
-Number of continuous variables fixed before final plugin calls=0 (total=30)
-PH complete
-
-Convergence history:
-Converger=Normalized term diff
-Iteration Metric Value
- 0 0.6629
- 1 0.1815
- 2 0.1744
- 3 0.3423
- 4 0.4773
- 5 0.3837
- 6 0.3824
- 7 0.1429
- 8 0.1420
- 9 0.4943
- 10 0.2668
-
-
-Final number of discrete variables fixed=0 (total=30)
-Final number of continuous variables fixed=0 (total=30)
-
-Computing objective inner bound at xhat solution
-At least one sub-problem solve time was undefined - skipping timing statistics
-At least one sub-problem solve time was undefined - skipping timing statistics
- ** At least one sub-problem failed to solve! **
- Failed sub-problems:
- Scenario1
- Scenario5
- Scenario7
- Scenario9
-
-Failed to compute bound at xhat due to one or more solve failures. Restoring PH to solution at final iteration.
-Generating scenario tree solution from scenario averages
-
-Scenario tree variable values:
-
- Stage: FirstStage
- (Scenarios: Scenario1 Scenario2 Scenario3 Scenario4 Scenario5 Scenario6 Scenario7 Scenario8 Scenario9 Scenario10 )
- Variable: b0
- Index: [A,B] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [B,A] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [B,C] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [B,E] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [C,B] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [C,D] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [D,C] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [D,E] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [E,B] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [E,D] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [E,F] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [F,E] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [F,G] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [F,H] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [G,F] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [G,I] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [G,J] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [H,F] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [H,I] Values: 1.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000
-
- Index: [I,G] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [I,H] Values: 1.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000
-
- Index: [I,J] Values: 1.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000
-
- Index: [J,G] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [J,I] Values: 1.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000
-
- (Scenarios: Scenario1 Scenario2 Scenario3 Scenario4 Scenario5 Scenario6 Scenario7 Scenario8 Scenario9 Scenario10 )
- Variable: x
- Index: [A,B] Values: 34.7300 29.9118 29.9118 29.9118 32.0100 29.9118 30.2400 29.9118 32.1100 29.9118
-
- Index: [B,A] Values: 34.7300 29.9118 29.9118 29.9118 32.0100 29.9118 30.2400 29.9118 32.1100 29.9118
-
- Index: [B,C] Values: 24.7615 13.7396 13.7396 23.9200 15.7024 1.9628 17.3889 15.7024 15.7024 13.4215
-
- Index: [B,E] Values: 63.8045 57.1514 57.1514 57.1514 56.7345 50.0074 57.1514 57.1514 53.6945 57.1514
-
- Index: [C,B] Values: 24.7615 13.7396 13.7396 23.9200 15.7024 1.9628 17.3889 15.7024 15.7024 13.4215
-
- Index: [C,D] Values: 18.9355 28.6800 18.9355 14.2016 18.9355 27.6800 11.8347 28.3400 18.9355 18.9355
-
- Index: [D,C] Values: 18.9355 28.6800 18.9355 14.2016 18.9355 27.6800 11.8347 28.3400 18.9355 18.9355
-
- Index: [D,E] Values: 38.5385 51.0800 38.5385 33.7211 41.0076 50.4700 33.7211 49.4300 39.6176 38.5385
-
- Index: [E,B] Values: 63.8045 57.1514 57.1514 57.1514 56.7345 50.0074 57.1514 57.1514 53.6945 57.1514
-
- Index: [E,D] Values: 38.5385 51.0800 38.5385 33.7211 41.0076 50.4700 33.7211 49.4300 39.6176 38.5385
-
- Index: [E,F] Values: 97.0800 94.2310 94.2310 94.2310 90.3500 94.2310 94.2310 94.2310 94.2310 97.0597
-
- Index: [F,E] Values: 97.0800 94.2310 94.2310 94.2310 90.3500 94.2310 94.2310 94.2310 94.2310 97.0597
-
- Index: [F,G] Values: 72.2321 72.2321 72.2321 72.2321 76.2500 72.2321 72.2321 72.2321 72.8500 72.2321
-
- Index: [F,H] Values: 26.6121 28.7700 28.4800 28.3791 31.9400 27.6300 28.9200 27.4400 31.4900 28.9600
-
- Index: [G,F] Values: 72.2321 72.2321 72.2321 72.2321 76.2500 72.2321 72.2321 72.2321 72.8500 72.2321
-
- Index: [G,I] Values: 26.1641 28.4000 28.7500 29.2634 33.0200 29.2634 29.1800 29.2634 30.8400 29.2000
-
- Index: [G,J] Values: 27.0038 30.8614 30.8614 30.8614 32.6900 30.8614 30.8614 30.8614 30.7700 29.5800
-
- Index: [H,F] Values: 26.6121 28.7700 28.4800 28.3791 31.9400 27.6300 28.9200 27.4400 31.4900 28.9600
-
- Index: [H,I] Values: 7.9079 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000
-
- Index: [I,G] Values: 26.1641 28.4000 28.7500 29.2634 33.0200 29.2634 29.1800 29.2634 30.8400 29.2000
-
- Index: [I,H] Values: 7.9079 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000
-
- Index: [I,J] Values: 8.4762 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000
-
- Index: [J,G] Values: 27.0038 30.8614 30.8614 30.8614 32.6900 30.8614 30.8614 30.8614 30.7700 29.5800
-
- Index: [J,I] Values: 8.4762 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: Scenario1 Scenario2 Scenario3 Scenario4 Scenario5 Scenario6 Scenario7 Scenario8 Scenario9 Scenario10 )
- Values: 132377.1668 125355.4202 120425.3745 120767.4957 124243.3505 120328.1280 118913.5460 125243.5383 122111.1009 120874.2852 Max-Min: 13463.6209 Avg: 123063.9406
-Scenario tree costs:
-Scenario Tree Costs
-----------------------------------------------------
-Tree Nodes:
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- Scenario10Node
- Scenario1Node
- Scenario2Node
- Scenario3Node
- Scenario4Node
- Scenario5Node
- Scenario6Node
- Scenario7Node
- Scenario8Node
- Scenario9Node
- Scenarios:
- Scenario1
- Scenario10
- Scenario2
- Scenario3
- Scenario4
- Scenario5
- Scenario6
- Scenario7
- Scenario8
- Scenario9
- Expected cost of (sub)tree rooted at node=155004.1668
-
- Name=Scenario10Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario10
- Expected cost of (sub)tree rooted at node=23630.0000
-
- Name=Scenario1Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario1
- Expected cost of (sub)tree rooted at node=23410.0000
-
- Name=Scenario2Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario2
- Expected cost of (sub)tree rooted at node=20060.0000
-
- Name=Scenario3Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario3
- Expected cost of (sub)tree rooted at node=22410.0000
-
- Name=Scenario4Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario4
- Expected cost of (sub)tree rooted at node=23080.0000
-
- Name=Scenario5Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario5
- Expected cost of (sub)tree rooted at node=23990.0000
-
- Name=Scenario6Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario6
- Expected cost of (sub)tree rooted at node=22350.0000
-
- Name=Scenario7Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario7
- Expected cost of (sub)tree rooted at node=22450.0000
-
- Name=Scenario8Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario8
- Expected cost of (sub)tree rooted at node=22690.0000
-
- Name=Scenario9Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario9
- Expected cost of (sub)tree rooted at node=22200.0000
-
-----------------------------------------------------
-Scenarios:
-
- Name=Scenario1
- Probability=0.1000
- Leaf Node=Scenario1Node
- Tree node sequence:
- RootNode
- Scenario1Node
- Stage= FirstStage Cost=132377.1668
- Stage= SecondStage Cost=23410.0000
- Total scenario cost=155787.1668
-
- Name=Scenario10
- Probability=0.1000
- Leaf Node=Scenario10Node
- Tree node sequence:
- RootNode
- Scenario10Node
- Stage= FirstStage Cost=120874.2852
- Stage= SecondStage Cost=23630.0000
- Total scenario cost=144504.2852
-
- Name=Scenario2
- Probability=0.1000
- Leaf Node=Scenario2Node
- Tree node sequence:
- RootNode
- Scenario2Node
- Stage= FirstStage Cost=125355.4202
- Stage= SecondStage Cost=20060.0000
- Total scenario cost=145415.4202
-
- Name=Scenario3
- Probability=0.1000
- Leaf Node=Scenario3Node
- Tree node sequence:
- RootNode
- Scenario3Node
- Stage= FirstStage Cost=120425.3745
- Stage= SecondStage Cost=22410.0000
- Total scenario cost=142835.3745
-
- Name=Scenario4
- Probability=0.1000
- Leaf Node=Scenario4Node
- Tree node sequence:
- RootNode
- Scenario4Node
- Stage= FirstStage Cost=120767.4957
- Stage= SecondStage Cost=23080.0000
- Total scenario cost=143847.4957
-
- Name=Scenario5
- Probability=0.1000
- Leaf Node=Scenario5Node
- Tree node sequence:
- RootNode
- Scenario5Node
- Stage= FirstStage Cost=124243.3505
- Stage= SecondStage Cost=23990.0000
- Total scenario cost=148233.3505
-
- Name=Scenario6
- Probability=0.1000
- Leaf Node=Scenario6Node
- Tree node sequence:
- RootNode
- Scenario6Node
- Stage= FirstStage Cost=120328.1280
- Stage= SecondStage Cost=22350.0000
- Total scenario cost=142678.1280
-
- Name=Scenario7
- Probability=0.1000
- Leaf Node=Scenario7Node
- Tree node sequence:
- RootNode
- Scenario7Node
- Stage= FirstStage Cost=118913.5460
- Stage= SecondStage Cost=22450.0000
- Total scenario cost=141363.5460
-
- Name=Scenario8
- Probability=0.1000
- Leaf Node=Scenario8Node
- Tree node sequence:
- RootNode
- Scenario8Node
- Stage= FirstStage Cost=125243.5383
- Stage= SecondStage Cost=22690.0000
- Total scenario cost=147933.5383
-
- Name=Scenario9
- Probability=0.1000
- Leaf Node=Scenario9Node
- Tree node sequence:
- RootNode
- Scenario9Node
- Stage= FirstStage Cost=122111.1009
- Stage= SecondStage Cost=22200.0000
- Total scenario cost=144311.1009
-
-----------------------------------------------------
-
-
-Total PH execution time=27.41 seconds
-
-
-Total execution time=34.44 seconds
diff --git a/pyomo/pysp/tests/unit/baselines/networkflow1ef10_simple_linearized_cplex_with_phpyro.baseline-c b/pyomo/pysp/tests/unit/baselines/networkflow1ef10_simple_linearized_cplex_with_phpyro.baseline-c
deleted file mode 100644
index a0c14545333..00000000000
--- a/pyomo/pysp/tests/unit/baselines/networkflow1ef10_simple_linearized_cplex_with_phpyro.baseline-c
+++ /dev/null
@@ -1,478 +0,0 @@
-Importing module=/Users/ghackebeil/Projects/Pyomo/pyomo/examples/pysp/networkflow/config/aggregategetter.py
-Module successfully loaded
-Importing module=/Users/ghackebeil/Projects/Pyomo/pyomo/examples/pysp/networkflow/config/rhosettermixed.py
-Module successfully loaded
-Importing module=/Users/ghackebeil/Projects/Pyomo/pyomo/examples/pysp/networkflow/config/xboundsetter.py
-Module successfully loaded
-Client assigned dispatcher with URI=PYRO::PyUtilibServer.dispatcher.4894fc6d-ff34-4240-9c3f-ba004d2cb669@localhost:52731
-Initializing PH
-
-Transmitting user aggregate callback invocations to phsolverservers
-Broadcasting final aggregate data to phsolverservers
-Transmitting user rho callback invocations to phsolverservers
-Transmitting user bound callback invocations to phsolverservers
-Starting PH
-
-Initiating PH iteration=0
-Number of discrete variables fixed=0 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 114953.9940 Max-Min=32195.68
-Converger=Normalized term diff value is 0.6629 - threshold reached=False
-Cumulative run-time=5.12 seconds
-
-Initiating PH iteration=1
-Number of discrete variables fixed=0 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 117602.5586 Max-Min=25401.79
-Converger=Normalized term diff value is 0.1815 - threshold reached=False
-Cumulative run-time=7.65 seconds
-
-Initiating PH iteration=2
-Number of discrete variables fixed=0 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 117449.8442 Max-Min=21875.36
-Converger=Normalized term diff value is 0.1744 - threshold reached=False
-Cumulative run-time=9.80 seconds
-
-Initiating PH iteration=3
-Number of discrete variables fixed=0 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 118978.2158 Max-Min=18274.39
-Converger=Normalized term diff value is 0.3423 - threshold reached=False
-Cumulative run-time=11.74 seconds
-
-Initiating PH iteration=4
-Number of discrete variables fixed=0 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 119118.3469 Max-Min=18709.94
-Converger=Normalized term diff value is 0.4773 - threshold reached=False
-Cumulative run-time=13.82 seconds
-
-Initiating PH iteration=5
-Number of discrete variables fixed=0 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 118706.1666 Max-Min=17997.46
-Converger=Normalized term diff value is 0.3837 - threshold reached=False
-Cumulative run-time=15.83 seconds
-
-Initiating PH iteration=6
-Number of discrete variables fixed=0 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 119544.3928 Max-Min=16795.51
-Converger=Normalized term diff value is 0.3824 - threshold reached=False
-Cumulative run-time=17.82 seconds
-
-Initiating PH iteration=7
-Number of discrete variables fixed=0 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 120528.2957 Max-Min=16337.65
-Converger=Normalized term diff value is 0.1429 - threshold reached=False
-Cumulative run-time=19.71 seconds
-
-Initiating PH iteration=8
-Number of discrete variables fixed=0 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 121493.9662 Max-Min=14296.26
-Converger=Normalized term diff value is 0.1420 - threshold reached=False
-Cumulative run-time=21.82 seconds
-
-Initiating PH iteration=9
-Number of discrete variables fixed=0 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 123203.6220 Max-Min=11664.42
-Converger=Normalized term diff value is 0.4943 - threshold reached=False
-Cumulative run-time=23.79 seconds
-
-Initiating PH iteration=10
-Number of discrete variables fixed=0 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 123063.9406 Max-Min=13463.62
-Converger=Normalized term diff value is 0.2668 - threshold reached=False
-Cumulative run-time=26.38 seconds
-Halting PH - reached maximal iteration count=10
-
-Number of discrete variables fixed before final plugin calls=0 (total=30)
-Number of continuous variables fixed before final plugin calls=0 (total=30)
-PH complete
-
-Convergence history:
-Converger=Normalized term diff
-Iteration Metric Value
- 0 0.6629
- 1 0.1815
- 2 0.1744
- 3 0.3423
- 4 0.4773
- 5 0.3837
- 6 0.3824
- 7 0.1429
- 8 0.1420
- 9 0.4943
- 10 0.2668
-
-
-Final number of discrete variables fixed=0 (total=30)
-Final number of continuous variables fixed=0 (total=30)
-
-Computing objective inner bound at xhat solution
-At least one sub-problem solve time was undefined - skipping timing statistics
-At least one sub-problem solve time was undefined - skipping timing statistics
- ** At least one sub-problem failed to solve! **
- Failed sub-problems:
- Scenario1
- Scenario5
- Scenario7
- Scenario9
-
-Failed to compute bound at xhat due to one or more solve failures. Restoring PH to solution at final iteration.
-Generating scenario tree solution from scenario averages
-
-Scenario tree variable values:
-
- Stage: FirstStage
- (Scenarios: Scenario1 Scenario2 Scenario3 Scenario4 Scenario5 Scenario6 Scenario7 Scenario8 Scenario9 Scenario10 )
- Variable: b0
- Index: [A,B] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [B,A] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [B,C] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [B,E] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [C,B] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [C,D] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [D,C] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [D,E] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [E,B] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [E,D] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [E,F] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [F,E] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [F,G] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [F,H] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [G,F] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [G,I] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [G,J] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [H,F] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [H,I] Values: 1.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000
-
- Index: [I,G] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [I,H] Values: 1.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000
-
- Index: [I,J] Values: 1.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000
-
- Index: [J,G] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [J,I] Values: 1.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000
-
- (Scenarios: Scenario1 Scenario2 Scenario3 Scenario4 Scenario5 Scenario6 Scenario7 Scenario8 Scenario9 Scenario10 )
- Variable: x
- Index: [A,B] Values: 34.7300 29.9118 29.9118 29.9118 32.0100 29.9118 30.2400 29.9118 32.1100 29.9118
-
- Index: [B,A] Values: 34.7300 29.9118 29.9118 29.9118 32.0100 29.9118 30.2400 29.9118 32.1100 29.9118
-
- Index: [B,C] Values: 24.7615 13.7396 13.7396 23.9200 15.7024 1.9628 17.3889 15.7024 15.7024 13.4215
-
- Index: [B,E] Values: 63.8045 57.1514 57.1514 57.1514 56.7345 50.0074 57.1514 57.1514 53.6945 57.1514
-
- Index: [C,B] Values: 24.7615 13.7396 13.7396 23.9200 15.7024 1.9628 17.3889 15.7024 15.7024 13.4215
-
- Index: [C,D] Values: 18.9355 28.6800 18.9355 14.2016 18.9355 27.6800 11.8347 28.3400 18.9355 18.9355
-
- Index: [D,C] Values: 18.9355 28.6800 18.9355 14.2016 18.9355 27.6800 11.8347 28.3400 18.9355 18.9355
-
- Index: [D,E] Values: 38.5385 51.0800 38.5385 33.7211 41.0076 50.4700 33.7211 49.4300 39.6176 38.5385
-
- Index: [E,B] Values: 63.8045 57.1514 57.1514 57.1514 56.7345 50.0074 57.1514 57.1514 53.6945 57.1514
-
- Index: [E,D] Values: 38.5385 51.0800 38.5385 33.7211 41.0076 50.4700 33.7211 49.4300 39.6176 38.5385
-
- Index: [E,F] Values: 97.0800 94.2310 94.2310 94.2310 90.3500 94.2310 94.2310 94.2310 94.2310 97.0597
-
- Index: [F,E] Values: 97.0800 94.2310 94.2310 94.2310 90.3500 94.2310 94.2310 94.2310 94.2310 97.0597
-
- Index: [F,G] Values: 72.2321 72.2321 72.2321 72.2321 76.2500 72.2321 72.2321 72.2321 72.8500 72.2321
-
- Index: [F,H] Values: 26.6121 28.7700 28.4800 28.3791 31.9400 27.6300 28.9200 27.4400 31.4900 28.9600
-
- Index: [G,F] Values: 72.2321 72.2321 72.2321 72.2321 76.2500 72.2321 72.2321 72.2321 72.8500 72.2321
-
- Index: [G,I] Values: 26.1641 28.4000 28.7500 29.2634 33.0200 29.2634 29.1800 29.2634 30.8400 29.2000
-
- Index: [G,J] Values: 27.0038 30.8614 30.8614 30.8614 32.6900 30.8614 30.8614 30.8614 30.7700 29.5800
-
- Index: [H,F] Values: 26.6121 28.7700 28.4800 28.3791 31.9400 27.6300 28.9200 27.4400 31.4900 28.9600
-
- Index: [H,I] Values: 7.9079 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000
-
- Index: [I,G] Values: 26.1641 28.4000 28.7500 29.2634 33.0200 29.2634 29.1800 29.2634 30.8400 29.2000
-
- Index: [I,H] Values: 7.9079 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000
-
- Index: [I,J] Values: 8.4762 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000
-
- Index: [J,G] Values: 27.0038 30.8614 30.8614 30.8614 32.6900 30.8614 30.8614 30.8614 30.7700 29.5800
-
- Index: [J,I] Values: 8.4762 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: Scenario1 Scenario2 Scenario3 Scenario4 Scenario5 Scenario6 Scenario7 Scenario8 Scenario9 Scenario10 )
- Values: 132377.1668 125355.4202 120425.3745 120767.4957 124243.3505 120328.1280 118913.5460 125243.5383 122111.1009 120874.2852 Max-Min: 13463.6209 Avg: 123063.9406
-Scenario tree costs:
-Scenario Tree Costs
-----------------------------------------------------
-Tree Nodes:
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- Scenario10Node
- Scenario1Node
- Scenario2Node
- Scenario3Node
- Scenario4Node
- Scenario5Node
- Scenario6Node
- Scenario7Node
- Scenario8Node
- Scenario9Node
- Scenarios:
- Scenario1
- Scenario10
- Scenario2
- Scenario3
- Scenario4
- Scenario5
- Scenario6
- Scenario7
- Scenario8
- Scenario9
- Expected cost of (sub)tree rooted at node=155004.1668
-
- Name=Scenario10Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario10
- Expected cost of (sub)tree rooted at node=23630.0000
-
- Name=Scenario1Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario1
- Expected cost of (sub)tree rooted at node=23410.0000
-
- Name=Scenario2Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario2
- Expected cost of (sub)tree rooted at node=20060.0000
-
- Name=Scenario3Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario3
- Expected cost of (sub)tree rooted at node=22410.0000
-
- Name=Scenario4Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario4
- Expected cost of (sub)tree rooted at node=23080.0000
-
- Name=Scenario5Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario5
- Expected cost of (sub)tree rooted at node=23990.0000
-
- Name=Scenario6Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario6
- Expected cost of (sub)tree rooted at node=22350.0000
-
- Name=Scenario7Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario7
- Expected cost of (sub)tree rooted at node=22450.0000
-
- Name=Scenario8Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario8
- Expected cost of (sub)tree rooted at node=22690.0000
-
- Name=Scenario9Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario9
- Expected cost of (sub)tree rooted at node=22200.0000
-
-----------------------------------------------------
-Scenarios:
-
- Name=Scenario1
- Probability=0.1000
- Leaf Node=Scenario1Node
- Tree node sequence:
- RootNode
- Scenario1Node
- Stage= FirstStage Cost=132377.1668
- Stage= SecondStage Cost=23410.0000
- Total scenario cost=155787.1668
-
- Name=Scenario10
- Probability=0.1000
- Leaf Node=Scenario10Node
- Tree node sequence:
- RootNode
- Scenario10Node
- Stage= FirstStage Cost=120874.2852
- Stage= SecondStage Cost=23630.0000
- Total scenario cost=144504.2852
-
- Name=Scenario2
- Probability=0.1000
- Leaf Node=Scenario2Node
- Tree node sequence:
- RootNode
- Scenario2Node
- Stage= FirstStage Cost=125355.4202
- Stage= SecondStage Cost=20060.0000
- Total scenario cost=145415.4202
-
- Name=Scenario3
- Probability=0.1000
- Leaf Node=Scenario3Node
- Tree node sequence:
- RootNode
- Scenario3Node
- Stage= FirstStage Cost=120425.3745
- Stage= SecondStage Cost=22410.0000
- Total scenario cost=142835.3745
-
- Name=Scenario4
- Probability=0.1000
- Leaf Node=Scenario4Node
- Tree node sequence:
- RootNode
- Scenario4Node
- Stage= FirstStage Cost=120767.4957
- Stage= SecondStage Cost=23080.0000
- Total scenario cost=143847.4957
-
- Name=Scenario5
- Probability=0.1000
- Leaf Node=Scenario5Node
- Tree node sequence:
- RootNode
- Scenario5Node
- Stage= FirstStage Cost=124243.3505
- Stage= SecondStage Cost=23990.0000
- Total scenario cost=148233.3505
-
- Name=Scenario6
- Probability=0.1000
- Leaf Node=Scenario6Node
- Tree node sequence:
- RootNode
- Scenario6Node
- Stage= FirstStage Cost=120328.1280
- Stage= SecondStage Cost=22350.0000
- Total scenario cost=142678.1280
-
- Name=Scenario7
- Probability=0.1000
- Leaf Node=Scenario7Node
- Tree node sequence:
- RootNode
- Scenario7Node
- Stage= FirstStage Cost=118913.5460
- Stage= SecondStage Cost=22450.0000
- Total scenario cost=141363.5460
-
- Name=Scenario8
- Probability=0.1000
- Leaf Node=Scenario8Node
- Tree node sequence:
- RootNode
- Scenario8Node
- Stage= FirstStage Cost=125243.5383
- Stage= SecondStage Cost=22690.0000
- Total scenario cost=147933.5383
-
- Name=Scenario9
- Probability=0.1000
- Leaf Node=Scenario9Node
- Tree node sequence:
- RootNode
- Scenario9Node
- Stage= FirstStage Cost=122111.1009
- Stage= SecondStage Cost=22200.0000
- Total scenario cost=144311.1009
-
-----------------------------------------------------
-
-
-Total PH execution time=28.33 seconds
-
-
-Total execution time=35.70 seconds
diff --git a/pyomo/pysp/tests/unit/baselines/networkflow1ef10_simple_linearized_cplex_with_phpyro_darwin.baseline b/pyomo/pysp/tests/unit/baselines/networkflow1ef10_simple_linearized_cplex_with_phpyro_darwin.baseline
deleted file mode 100644
index a81c3b9fd2c..00000000000
--- a/pyomo/pysp/tests/unit/baselines/networkflow1ef10_simple_linearized_cplex_with_phpyro_darwin.baseline
+++ /dev/null
@@ -1,481 +0,0 @@
-*** Pyro Name Server ***
-Name server listening on: ('0.0.0.0', 9090)
-Broadcast server listening on: ('0.0.0.0', 9090)
-URI is: PYRO://134.253.112.95:9090/86fd705f135821f227b08afaa118d0f4271
-URI written to: /Users/jwatson/sp/pyomo/src/pyomo.gdp/pyomo/gdp/tests/Pyro_NS_URI
-Name Server started.
-Failed to locate nameserver - trying again.
-Attempting to find Pyro dispatcher object...
-Attempting to find Pyro dispatcher object...
-Dispatcher is ready.
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI:PYRO://134.253.112.95:7766/86fd705f135831f227b09e34bfb6f4b8be0
-This is worker Worker_79238@sanj2010-112-95.sandia.gov
-Listening for work from dispatcher...
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI:PYRO://134.253.112.95:7766/86fd705f135831f227b09e34bfb6f4b8be0
-This is worker Worker_79242@sanj2010-112-95.sandia.gov
-Listening for work from dispatcher...
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI:PYRO://134.253.112.95:7766/86fd705f135831f227b09e34bfb6f4b8be0
-This is worker Worker_79245@sanj2010-112-95.sandia.gov
-Listening for work from dispatcher...
-Attempting to find Pyro dispatcher object...
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI:PYRO://134.253.112.95:7766/86fd705f135831f227b09e34bfb6f4b8be0
-This is worker Worker_79239@sanj2010-112-95.sandia.gov
-Listening for work from dispatcher...
-Dispatcher Object URI:PYRO://134.253.112.95:7766/86fd705f135831f227b09e34bfb6f4b8be0
-This is worker Worker_79241@sanj2010-112-95.sandia.gov
-Listening for work from dispatcher...
-Attempting to find Pyro dispatcher object...
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI:PYRO://134.253.112.95:7766/86fd705f135831f227b09e34bfb6f4b8be0
-This is worker Worker_79237@sanj2010-112-95.sandia.gov
-Listening for work from dispatcher...
-Dispatcher Object URI:PYRO://134.253.112.95:7766/86fd705f135831f227b09e34bfb6f4b8be0
-This is worker Worker_79236@sanj2010-112-95.sandia.gov
-Listening for work from dispatcher...
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI:PYRO://134.253.112.95:7766/86fd705f135831f227b09e34bfb6f4b8be0
-This is worker Worker_79243@sanj2010-112-95.sandia.gov
-Listening for work from dispatcher...
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI: PYRO://134.253.112.95:7766/86fd705f135831f227b09e34bfb6f4b8be0
-Importing module=/Users/ghackebeil/Projects/Pyomo/pyomo/examples/pysp/networkflow/config/aggregategetter.py
-Module successfully loaded
-Importing module=/Users/ghackebeil/Projects/Pyomo/pyomo/examples/pysp/networkflow/config/rhosettermixed.py
-Module successfully loaded
-Importing module=/Users/ghackebeil/Projects/Pyomo/pyomo/examples/pysp/networkflow/config/xboundsetter.py
-Module successfully loaded
-This is client 79246@sanj2010-112-95.sandia.gov
-Initializing PH
-
-Failed to find dispatcher object from name server - trying again.
-Dispatcher Object URI:PYRO://134.253.112.95:7766/86fd705f135831f227b09e34bfb6f4b8be0
-This is worker Worker_79244@sanj2010-112-95.sandia.gov
-Listening for work from dispatcher...
-Failed to find dispatcher object from name server - trying again.
-Dispatcher Object URI:PYRO://134.253.112.95:7766/86fd705f135831f227b09e34bfb6f4b8be0
-This is worker Worker_79240@sanj2010-112-95.sandia.gov
-Listening for work from dispatcher...
-
-Transmitting user aggregate callback invocations to phsolverservers
-Broadcasting final aggregate data to phsolverservers
-Transmitting user rho callback invocations to phsolverservers
-Transmitting user bound callback invocations to phsolverservers
-Starting PH
-
-Initiating PH iteration=0
-Convergence metric= 0.6629 First stage cost avg= 114953.9940 Max-Min=32195.68
-
-Initiating PH iteration=1
-Convergence metric= 0.1815 First stage cost avg= 117602.5586 Max-Min=25401.79
-
-Initiating PH iteration=2
-Convergence metric= 0.1744 First stage cost avg= 117449.8439 Max-Min=21875.36
-
-Initiating PH iteration=3
-Convergence metric= 0.3423 First stage cost avg= 118978.2157 Max-Min=18274.39
-
-Initiating PH iteration=4
-Convergence metric= 0.4773 First stage cost avg= 119118.3469 Max-Min=18709.94
-
-Initiating PH iteration=5
-Convergence metric= 0.3837 First stage cost avg= 118706.1671 Max-Min=17997.46
-
-Initiating PH iteration=6
-Convergence metric= 0.3824 First stage cost avg= 119544.3928 Max-Min=16795.51
-
-Initiating PH iteration=7
-Convergence metric= 0.1429 First stage cost avg= 120528.2959 Max-Min=16337.65
-
-Initiating PH iteration=8
-Convergence metric= 0.1420 First stage cost avg= 121493.9669 Max-Min=14296.26
-
-Initiating PH iteration=9
-Convergence metric= 0.4943 First stage cost avg= 123203.6228 Max-Min=11664.42
-
-Initiating PH iteration=10
-Convergence metric= 0.2668 First stage cost avg= 123063.9427 Max-Min=13463.62
-Halting PH - reached maximal iteration count=10
-PH complete
-Convergence history:
-Iteration Metric Value
- 0 0.6629
- 1 0.1815
- 2 0.1744
- 3 0.3423
- 4 0.4773
- 5 0.3837
- 6 0.3824
- 7 0.1429
- 8 0.1420
- 9 0.4943
- 10 0.2668
-
-***********************************************************************************************
->>>THE EXPECTED SUM OF THE STAGE COST VARIABLES=155004.166568<<<
->>>***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise<<<
-***********************************************************************************************
-Final number of discrete variables fixed=0 (total=30)
-Final number of continuous variables fixed=0 (total=30)
-Final variable values:
- Stage=FirstStage
- Variable=x
- Index: [A,B] (Scenarios: Scenario1 Scenario2 Scenario3 Scenario4 Scenario5 Scenario6 Scenario7 Scenario8 Scenario9 Scenario10 )
- Values: 34.7300 29.9118 29.9118 29.9118 32.0100 29.9118 30.2400 29.9118 32.1100 29.9118 Max-Min= 4.8182 Avg= 30.8561
- Index: [B,A] (Scenarios: Scenario1 Scenario2 Scenario3 Scenario4 Scenario5 Scenario6 Scenario7 Scenario8 Scenario9 Scenario10 )
- Values: 34.7300 29.9118 29.9118 29.9118 32.0100 29.9118 30.2400 29.9118 32.1100 29.9118 Max-Min= 4.8182 Avg= 30.8561
- Index: [B,C] (Scenarios: Scenario1 Scenario2 Scenario3 Scenario4 Scenario5 Scenario6 Scenario7 Scenario8 Scenario9 Scenario10 )
- Values: 24.7615 13.7396 13.7396 23.9200 15.7024 1.9628 17.3889 15.7024 15.7024 13.4215 Max-Min= 22.7987 Avg= 15.6041
- Index: [B,E] (Scenarios: Scenario1 Scenario2 Scenario3 Scenario4 Scenario5 Scenario6 Scenario7 Scenario8 Scenario9 Scenario10 )
- Values: 63.8045 57.1514 57.1514 57.1514 56.7345 50.0074 57.1514 57.1514 53.6945 57.1514 Max-Min= 13.7970 Avg= 56.7149
- Index: [C,B] (Scenarios: Scenario1 Scenario2 Scenario3 Scenario4 Scenario5 Scenario6 Scenario7 Scenario8 Scenario9 Scenario10 )
- Values: 24.7615 13.7396 13.7396 23.9200 15.7024 1.9628 17.3889 15.7024 15.7024 13.4215 Max-Min= 22.7987 Avg= 15.6041
- Index: [C,D] (Scenarios: Scenario1 Scenario2 Scenario3 Scenario4 Scenario5 Scenario6 Scenario7 Scenario8 Scenario9 Scenario10 )
- Values: 18.9355 28.6800 18.9355 14.2016 18.9355 27.6800 11.8347 28.3400 18.9355 18.9355 Max-Min= 16.8453 Avg= 20.5414
- Index: [D,C] (Scenarios: Scenario1 Scenario2 Scenario3 Scenario4 Scenario5 Scenario6 Scenario7 Scenario8 Scenario9 Scenario10 )
- Values: 18.9355 28.6800 18.9355 14.2016 18.9355 27.6800 11.8347 28.3400 18.9355 18.9355 Max-Min= 16.8453 Avg= 20.5414
- Index: [D,E] (Scenarios: Scenario1 Scenario2 Scenario3 Scenario4 Scenario5 Scenario6 Scenario7 Scenario8 Scenario9 Scenario10 )
- Values: 38.5385 51.0800 38.5385 33.7211 41.0076 50.4700 33.7211 49.4300 39.6176 38.5385 Max-Min= 17.3589 Avg= 41.4663
- Index: [E,B] (Scenarios: Scenario1 Scenario2 Scenario3 Scenario4 Scenario5 Scenario6 Scenario7 Scenario8 Scenario9 Scenario10 )
- Values: 63.8045 57.1514 57.1514 57.1514 56.7345 50.0074 57.1514 57.1514 53.6945 57.1514 Max-Min= 13.7970 Avg= 56.7149
- Index: [E,D] (Scenarios: Scenario1 Scenario2 Scenario3 Scenario4 Scenario5 Scenario6 Scenario7 Scenario8 Scenario9 Scenario10 )
- Values: 38.5385 51.0800 38.5385 33.7211 41.0076 50.4700 33.7211 49.4300 39.6176 38.5385 Max-Min= 17.3589 Avg= 41.4663
- Index: [E,F] (Scenarios: Scenario1 Scenario2 Scenario3 Scenario4 Scenario5 Scenario6 Scenario7 Scenario8 Scenario9 Scenario10 )
- Values: 97.0800 94.2311 94.2311 94.2310 90.3500 94.2311 94.2311 94.2311 94.2311 97.0597 Max-Min= 6.7300 Avg= 94.4107
- Index: [F,E] (Scenarios: Scenario1 Scenario2 Scenario3 Scenario4 Scenario5 Scenario6 Scenario7 Scenario8 Scenario9 Scenario10 )
- Values: 97.0800 94.2311 94.2311 94.2310 90.3500 94.2311 94.2311 94.2311 94.2311 97.0597 Max-Min= 6.7300 Avg= 94.4107
- Index: [F,G] (Scenarios: Scenario1 Scenario2 Scenario3 Scenario4 Scenario5 Scenario6 Scenario7 Scenario8 Scenario9 Scenario10 )
- Values: 72.2321 72.2321 72.2321 72.2321 76.2500 72.2321 72.2321 72.2321 72.8500 72.2321 Max-Min= 4.0179 Avg= 72.6957
- Index: [F,H] (Scenarios: Scenario1 Scenario2 Scenario3 Scenario4 Scenario5 Scenario6 Scenario7 Scenario8 Scenario9 Scenario10 )
- Values: 26.6121 28.7700 28.4800 28.3791 31.9400 27.6300 28.9200 27.4400 31.4900 28.9600 Max-Min= 5.3279 Avg= 28.8621
- Index: [G,F] (Scenarios: Scenario1 Scenario2 Scenario3 Scenario4 Scenario5 Scenario6 Scenario7 Scenario8 Scenario9 Scenario10 )
- Values: 72.2321 72.2321 72.2321 72.2321 76.2500 72.2321 72.2321 72.2321 72.8500 72.2321 Max-Min= 4.0179 Avg= 72.6957
- Index: [G,I] (Scenarios: Scenario1 Scenario2 Scenario3 Scenario4 Scenario5 Scenario6 Scenario7 Scenario8 Scenario9 Scenario10 )
- Values: 26.1641 28.4000 28.7500 29.2634 33.0200 29.2634 29.1800 29.2634 30.8400 29.2000 Max-Min= 6.8559 Avg= 29.3344
- Index: [G,J] (Scenarios: Scenario1 Scenario2 Scenario3 Scenario4 Scenario5 Scenario6 Scenario7 Scenario8 Scenario9 Scenario10 )
- Values: 27.0038 30.8614 30.8614 30.8614 32.6900 30.8614 30.8614 30.8614 30.7700 29.5800 Max-Min= 5.6862 Avg= 30.5212
- Index: [H,F] (Scenarios: Scenario1 Scenario2 Scenario3 Scenario4 Scenario5 Scenario6 Scenario7 Scenario8 Scenario9 Scenario10 )
- Values: 26.6121 28.7700 28.4800 28.3791 31.9400 27.6300 28.9200 27.4400 31.4900 28.9600 Max-Min= 5.3279 Avg= 28.8621
- Index: [H,I] (Scenarios: Scenario1 Scenario2 Scenario3 Scenario4 Scenario5 Scenario6 Scenario7 Scenario8 Scenario9 Scenario10 )
- Values: 7.9079 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 Max-Min= 7.9079 Avg= 0.7908
- Index: [I,G] (Scenarios: Scenario1 Scenario2 Scenario3 Scenario4 Scenario5 Scenario6 Scenario7 Scenario8 Scenario9 Scenario10 )
- Values: 26.1641 28.4000 28.7500 29.2634 33.0200 29.2634 29.1800 29.2634 30.8400 29.2000 Max-Min= 6.8559 Avg= 29.3344
- Index: [I,H] (Scenarios: Scenario1 Scenario2 Scenario3 Scenario4 Scenario5 Scenario6 Scenario7 Scenario8 Scenario9 Scenario10 )
- Values: 7.9079 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 Max-Min= 7.9079 Avg= 0.7908
- Index: [I,J] (Scenarios: Scenario1 Scenario2 Scenario3 Scenario4 Scenario5 Scenario6 Scenario7 Scenario8 Scenario9 Scenario10 )
- Values: 8.4762 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 Max-Min= 8.4762 Avg= 0.8476
- Index: [J,G] (Scenarios: Scenario1 Scenario2 Scenario3 Scenario4 Scenario5 Scenario6 Scenario7 Scenario8 Scenario9 Scenario10 )
- Values: 27.0038 30.8614 30.8614 30.8614 32.6900 30.8614 30.8614 30.8614 30.7700 29.5800 Max-Min= 5.6862 Avg= 30.5212
- Index: [J,I] (Scenarios: Scenario1 Scenario2 Scenario3 Scenario4 Scenario5 Scenario6 Scenario7 Scenario8 Scenario9 Scenario10 )
- Values: 8.4762 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 Max-Min= 8.4762 Avg= 0.8476
- Variable=b0
- Index: [A,B] (Scenarios: Scenario1 Scenario2 Scenario3 Scenario4 Scenario5 Scenario6 Scenario7 Scenario8 Scenario9 Scenario10 )
- Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 Max-Min= 0.0000 Avg= 1.0000
- Index: [B,A] (Scenarios: Scenario1 Scenario2 Scenario3 Scenario4 Scenario5 Scenario6 Scenario7 Scenario8 Scenario9 Scenario10 )
- Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 Max-Min= 0.0000 Avg= 1.0000
- Index: [B,C] (Scenarios: Scenario1 Scenario2 Scenario3 Scenario4 Scenario5 Scenario6 Scenario7 Scenario8 Scenario9 Scenario10 )
- Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 Max-Min= 0.0000 Avg= 1.0000
- Index: [B,E] (Scenarios: Scenario1 Scenario2 Scenario3 Scenario4 Scenario5 Scenario6 Scenario7 Scenario8 Scenario9 Scenario10 )
- Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 Max-Min= 0.0000 Avg= 1.0000
- Index: [C,B] (Scenarios: Scenario1 Scenario2 Scenario3 Scenario4 Scenario5 Scenario6 Scenario7 Scenario8 Scenario9 Scenario10 )
- Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 Max-Min= 0.0000 Avg= 1.0000
- Index: [C,D] (Scenarios: Scenario1 Scenario2 Scenario3 Scenario4 Scenario5 Scenario6 Scenario7 Scenario8 Scenario9 Scenario10 )
- Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 Max-Min= 0.0000 Avg= 1.0000
- Index: [D,C] (Scenarios: Scenario1 Scenario2 Scenario3 Scenario4 Scenario5 Scenario6 Scenario7 Scenario8 Scenario9 Scenario10 )
- Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 Max-Min= 0.0000 Avg= 1.0000
- Index: [D,E] (Scenarios: Scenario1 Scenario2 Scenario3 Scenario4 Scenario5 Scenario6 Scenario7 Scenario8 Scenario9 Scenario10 )
- Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 Max-Min= 0.0000 Avg= 1.0000
- Index: [E,B] (Scenarios: Scenario1 Scenario2 Scenario3 Scenario4 Scenario5 Scenario6 Scenario7 Scenario8 Scenario9 Scenario10 )
- Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 Max-Min= 0.0000 Avg= 1.0000
- Index: [E,D] (Scenarios: Scenario1 Scenario2 Scenario3 Scenario4 Scenario5 Scenario6 Scenario7 Scenario8 Scenario9 Scenario10 )
- Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 Max-Min= 0.0000 Avg= 1.0000
- Index: [E,F] (Scenarios: Scenario1 Scenario2 Scenario3 Scenario4 Scenario5 Scenario6 Scenario7 Scenario8 Scenario9 Scenario10 )
- Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 Max-Min= 0.0000 Avg= 1.0000
- Index: [F,E] (Scenarios: Scenario1 Scenario2 Scenario3 Scenario4 Scenario5 Scenario6 Scenario7 Scenario8 Scenario9 Scenario10 )
- Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 Max-Min= 0.0000 Avg= 1.0000
- Index: [F,G] (Scenarios: Scenario1 Scenario2 Scenario3 Scenario4 Scenario5 Scenario6 Scenario7 Scenario8 Scenario9 Scenario10 )
- Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 Max-Min= 0.0000 Avg= 1.0000
- Index: [F,H] (Scenarios: Scenario1 Scenario2 Scenario3 Scenario4 Scenario5 Scenario6 Scenario7 Scenario8 Scenario9 Scenario10 )
- Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 Max-Min= 0.0000 Avg= 1.0000
- Index: [G,F] (Scenarios: Scenario1 Scenario2 Scenario3 Scenario4 Scenario5 Scenario6 Scenario7 Scenario8 Scenario9 Scenario10 )
- Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 Max-Min= 0.0000 Avg= 1.0000
- Index: [G,I] (Scenarios: Scenario1 Scenario2 Scenario3 Scenario4 Scenario5 Scenario6 Scenario7 Scenario8 Scenario9 Scenario10 )
- Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 Max-Min= 0.0000 Avg= 1.0000
- Index: [G,J] (Scenarios: Scenario1 Scenario2 Scenario3 Scenario4 Scenario5 Scenario6 Scenario7 Scenario8 Scenario9 Scenario10 )
- Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 Max-Min= 0.0000 Avg= 1.0000
- Index: [H,F] (Scenarios: Scenario1 Scenario2 Scenario3 Scenario4 Scenario5 Scenario6 Scenario7 Scenario8 Scenario9 Scenario10 )
- Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 Max-Min= 0.0000 Avg= 1.0000
- Index: [H,I] (Scenarios: Scenario1 Scenario2 Scenario3 Scenario4 Scenario5 Scenario6 Scenario7 Scenario8 Scenario9 Scenario10 )
- Values: 1.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 Max-Min= 1.0000 Avg= 0.1000
- Index: [I,G] (Scenarios: Scenario1 Scenario2 Scenario3 Scenario4 Scenario5 Scenario6 Scenario7 Scenario8 Scenario9 Scenario10 )
- Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 Max-Min= 0.0000 Avg= 1.0000
- Index: [I,H] (Scenarios: Scenario1 Scenario2 Scenario3 Scenario4 Scenario5 Scenario6 Scenario7 Scenario8 Scenario9 Scenario10 )
- Values: 1.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 Max-Min= 1.0000 Avg= 0.1000
- Index: [I,J] (Scenarios: Scenario1 Scenario2 Scenario3 Scenario4 Scenario5 Scenario6 Scenario7 Scenario8 Scenario9 Scenario10 )
- Values: 1.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 Max-Min= 1.0000 Avg= 0.1000
- Index: [J,G] (Scenarios: Scenario1 Scenario2 Scenario3 Scenario4 Scenario5 Scenario6 Scenario7 Scenario8 Scenario9 Scenario10 )
- Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 Max-Min= 0.0000 Avg= 1.0000
- Index: [J,I] (Scenarios: Scenario1 Scenario2 Scenario3 Scenario4 Scenario5 Scenario6 Scenario7 Scenario8 Scenario9 Scenario10 )
- Values: 1.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 Max-Min= 1.0000 Avg= 0.1000
- Cost Variable=FirstStageCost
- Tree Node=RootNode (Scenarios: Scenario1 Scenario2 Scenario3 Scenario4 Scenario5 Scenario6 Scenario7 Scenario8 Scenario9 Scenario10 )
- Values: 132377.1666 125355.4229 120425.3771 120767.4956 124243.3505 120328.1314 118913.5503 125243.5428 122111.1055 120874.2848 Max-Min= 13463.6163 Avg= 123063.9427
-Final costs:
-Scenario Tree Costs
-***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise
-----------------------------------------------------
-Tree Nodes:
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- Scenario10Node
- Scenario1Node
- Scenario2Node
- Scenario3Node
- Scenario4Node
- Scenario5Node
- Scenario6Node
- Scenario7Node
- Scenario8Node
- Scenario9Node
- Scenarios:
- Scenario1
- Scenario10
- Scenario2
- Scenario3
- Scenario4
- Scenario5
- Scenario6
- Scenario7
- Scenario8
- Scenario9
- Expected cost of (sub)tree rooted at node=155004.1666
-
- Name=Scenario10Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario10
- Expected cost of (sub)tree rooted at node=23630.0000
-
- Name=Scenario1Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario1
- Expected cost of (sub)tree rooted at node=23410.0000
-
- Name=Scenario2Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario2
- Expected cost of (sub)tree rooted at node=20060.0000
-
- Name=Scenario3Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario3
- Expected cost of (sub)tree rooted at node=22410.0000
-
- Name=Scenario4Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario4
- Expected cost of (sub)tree rooted at node=23080.0000
-
- Name=Scenario5Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario5
- Expected cost of (sub)tree rooted at node=23990.0000
-
- Name=Scenario6Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario6
- Expected cost of (sub)tree rooted at node=22350.0000
-
- Name=Scenario7Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario7
- Expected cost of (sub)tree rooted at node=22450.0000
-
- Name=Scenario8Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario8
- Expected cost of (sub)tree rooted at node=22690.0000
-
- Name=Scenario9Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario9
- Expected cost of (sub)tree rooted at node=22200.0000
-
-----------------------------------------------------
-Scenarios:
-
- Name=Scenario1
- Probability=0.1000
- Leaf Node=Scenario1Node
- Tree node sequence:
- RootNode
- Scenario1Node
- Stage= FirstStage Cost=132377.1666
- Stage= SecondStage Cost=23410.0000
- Total scenario cost=155787.1666
-
- Name=Scenario10
- Probability=0.1000
- Leaf Node=Scenario10Node
- Tree node sequence:
- RootNode
- Scenario10Node
- Stage= FirstStage Cost=120874.2848
- Stage= SecondStage Cost=23630.0000
- Total scenario cost=144504.2848
-
- Name=Scenario2
- Probability=0.1000
- Leaf Node=Scenario2Node
- Tree node sequence:
- RootNode
- Scenario2Node
- Stage= FirstStage Cost=125355.4229
- Stage= SecondStage Cost=20060.0000
- Total scenario cost=145415.4229
-
- Name=Scenario3
- Probability=0.1000
- Leaf Node=Scenario3Node
- Tree node sequence:
- RootNode
- Scenario3Node
- Stage= FirstStage Cost=120425.3771
- Stage= SecondStage Cost=22410.0000
- Total scenario cost=142835.3771
-
- Name=Scenario4
- Probability=0.1000
- Leaf Node=Scenario4Node
- Tree node sequence:
- RootNode
- Scenario4Node
- Stage= FirstStage Cost=120767.4956
- Stage= SecondStage Cost=23080.0000
- Total scenario cost=143847.4956
-
- Name=Scenario5
- Probability=0.1000
- Leaf Node=Scenario5Node
- Tree node sequence:
- RootNode
- Scenario5Node
- Stage= FirstStage Cost=124243.3505
- Stage= SecondStage Cost=23990.0000
- Total scenario cost=148233.3505
-
- Name=Scenario6
- Probability=0.1000
- Leaf Node=Scenario6Node
- Tree node sequence:
- RootNode
- Scenario6Node
- Stage= FirstStage Cost=120328.1314
- Stage= SecondStage Cost=22350.0000
- Total scenario cost=142678.1314
-
- Name=Scenario7
- Probability=0.1000
- Leaf Node=Scenario7Node
- Tree node sequence:
- RootNode
- Scenario7Node
- Stage= FirstStage Cost=118913.5503
- Stage= SecondStage Cost=22450.0000
- Total scenario cost=141363.5503
-
- Name=Scenario8
- Probability=0.1000
- Leaf Node=Scenario8Node
- Tree node sequence:
- RootNode
- Scenario8Node
- Stage= FirstStage Cost=125243.5428
- Stage= SecondStage Cost=22690.0000
- Total scenario cost=147933.5428
-
- Name=Scenario9
- Probability=0.1000
- Leaf Node=Scenario9Node
- Tree node sequence:
- RootNode
- Scenario9Node
- Stage= FirstStage Cost=122111.1055
- Stage= SecondStage Cost=22200.0000
- Total scenario cost=144311.1055
-
-----------------------------------------------------
-
-Total PH execution time=189.04 seconds
-
-Shutting down Pyro solver components
-Dispatcher received request to shut down - initiating...
-
-Total execution time=215.94 seconds
-Lost connection to dispatch server - shutting down...
-Lost connection to dispatch server - shutting down...
-Lost connection to dispatch server - shutting down...
-Lost connection to dispatch server - shutting down...
-Lost connection to dispatch server - shutting down...
-Lost connection to dispatch server - shutting down...
-Lost connection to dispatch server - shutting down...
-Name Server gracefully stopped.
-Lost connection to dispatch server - shutting down...
-Lost connection to dispatch server - shutting down...
-Lost connection to dispatch server - shutting down...
diff --git a/pyomo/pysp/tests/unit/baselines/networkflow1ef10_simple_quadratic_cplex_with_phpyro.baseline b/pyomo/pysp/tests/unit/baselines/networkflow1ef10_simple_quadratic_cplex_with_phpyro.baseline
deleted file mode 100644
index d71f5806a93..00000000000
--- a/pyomo/pysp/tests/unit/baselines/networkflow1ef10_simple_quadratic_cplex_with_phpyro.baseline
+++ /dev/null
@@ -1,408 +0,0 @@
-Importing module=/Users/ghackebeil/Projects/Pyomo/pyomo/examples/pysp/networkflow/config/rhosettermixed.py
-Module successfully loaded
-Client assigned dispatcher with URI=PYRO://127.0.0.1:42774/86fdc20117ba22e2f6b956a0fb8c965dd7
-Initializing PH
-
-Transmitting user rho callback invocations to phsolverservers
-Starting PH
-
-Initiating PH iteration=0
-Number of discrete variables fixed=0 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 114953.9940 Max-Min=32195.68
-Converger=Normalized term diff value is 0.6629 - threshold reached=False
-Cumulative run-time=13.05 seconds
-
-Initiating PH iteration=1
-Number of discrete variables fixed=0 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 117160.6775 Max-Min=25333.15
-Converger=Normalized term diff value is 0.1803 - threshold reached=False
-Cumulative run-time=75.89 seconds
-
-Initiating PH iteration=2
-Number of discrete variables fixed=0 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 117269.5105 Max-Min=21256.48
-Converger=Normalized term diff value is 0.2938 - threshold reached=False
-Cumulative run-time=139.45 seconds
-
-Initiating PH iteration=3
-Number of discrete variables fixed=0 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 118505.4561 Max-Min=18268.78
-Converger=Normalized term diff value is 0.2165 - threshold reached=False
-Cumulative run-time=200.28 seconds
-
-Initiating PH iteration=4
-Number of discrete variables fixed=0 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 118713.3327 Max-Min=19255.06
-Converger=Normalized term diff value is 0.3612 - threshold reached=False
-Cumulative run-time=251.75 seconds
-
-Initiating PH iteration=5
-Number of discrete variables fixed=0 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 118908.8697 Max-Min=17466.06
-Converger=Normalized term diff value is 0.3672 - threshold reached=False
-Cumulative run-time=301.13 seconds
-Halting PH - reached maximal iteration count=5
-
-Number of discrete variables fixed before final plugin calls=0 (total=30)
-Number of continuous variables fixed before final plugin calls=0 (total=30)
-PH complete
-
-Convergence history:
-Converger=Normalized term diff
-Iteration Metric Value
- 0 0.6629
- 1 0.1803
- 2 0.2938
- 3 0.2165
- 4 0.3612
- 5 0.3672
-
-
-Final number of discrete variables fixed=0 (total=30)
-Final number of continuous variables fixed=0 (total=30)
-
-Computing objective inner bound at xhat solution
-
-Computed objective upper bound= 143214.1876
-
-X-hat variable values:
-
- Stage: FirstStage
- (Scenarios: Scenario1 Scenario2 Scenario3 Scenario4 Scenario5 Scenario6 Scenario7 Scenario8 Scenario9 Scenario10 )
- Variable: b0
- Index: [A,B] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [B,A] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [B,C] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [B,E] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [C,B] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [C,D] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [D,C] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [D,E] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [E,B] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [E,D] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [E,F] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [F,E] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [F,G] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [F,H] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [G,F] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [G,I] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [G,J] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [H,F] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [I,G] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [J,G] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- (Scenarios: Scenario1 Scenario2 Scenario3 Scenario4 Scenario5 Scenario6 Scenario7 Scenario8 Scenario9 Scenario10 )
- Variable: x
- Index: [A,B] Values: 28.9100 28.9100 28.9100 28.9100 28.9100 28.9100 28.9100 28.9100 28.9100 28.9100
-
- Index: [B,A] Values: 28.9100 28.9100 28.9100 28.9100 28.9100 28.9100 28.9100 28.9100 28.9100 28.9100
-
- Index: [B,C] Values: 17.1027 17.1027 17.1027 17.1027 17.1027 17.1027 17.1027 17.1027 17.1027 17.1027
-
- Index: [B,E] Values: 53.2830 53.2830 53.2830 53.2830 53.2830 53.2830 53.2830 53.2830 53.2830 53.2830
-
- Index: [C,B] Values: 17.1027 17.1027 17.1027 17.1027 17.1027 17.1027 17.1027 17.1027 17.1027 17.1027
-
- Index: [C,D] Values: 16.4170 16.4170 16.4170 16.4170 16.4170 16.4170 16.4170 16.4170 16.4170 16.4170
-
- Index: [D,C] Values: 16.4170 16.4170 16.4170 16.4170 16.4170 16.4170 16.4170 16.4170 16.4170 16.4170
-
- Index: [D,E] Values: 34.8573 34.8573 34.8573 34.8573 34.8573 34.8573 34.8573 34.8573 34.8573 34.8573
-
- Index: [E,B] Values: 53.2830 53.2830 53.2830 53.2830 53.2830 53.2830 53.2830 53.2830 53.2830 53.2830
-
- Index: [E,D] Values: 34.8573 34.8573 34.8573 34.8573 34.8573 34.8573 34.8573 34.8573 34.8573 34.8573
-
- Index: [E,F] Values: 92.1839 92.1839 92.1839 92.1839 92.1839 92.1839 92.1839 92.1839 92.1839 92.1839
-
- Index: [F,E] Values: 92.1839 92.1839 92.1839 92.1839 92.1839 92.1839 92.1839 92.1839 92.1839 92.1839
-
- Index: [F,G] Values: 68.7500 68.7500 68.7500 68.7500 68.7500 68.7500 68.7500 68.7500 68.7500 68.7500
-
- Index: [F,H] Values: 28.9600 28.9600 28.9600 28.9600 28.9600 28.9600 28.9600 28.9600 28.9600 28.9600
-
- Index: [G,F] Values: 68.7500 68.7500 68.7500 68.7500 68.7500 68.7500 68.7500 68.7500 68.7500 68.7500
-
- Index: [G,I] Values: 29.2000 29.2000 29.2000 29.2000 29.2000 29.2000 29.2000 29.2000 29.2000 29.2000
-
- Index: [G,J] Values: 29.5800 29.5800 29.5800 29.5800 29.5800 29.5800 29.5800 29.5800 29.5800 29.5800
-
- Index: [H,F] Values: 28.9600 28.9600 28.9600 28.9600 28.9600 28.9600 28.9600 28.9600 28.9600 28.9600
-
- Index: [I,G] Values: 29.2000 29.2000 29.2000 29.2000 29.2000 29.2000 29.2000 29.2000 29.2000 29.2000
-
- Index: [J,G] Values: 29.5800 29.5800 29.5800 29.5800 29.5800 29.5800 29.5800 29.5800 29.5800 29.5800
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: Scenario1 Scenario2 Scenario3 Scenario4 Scenario5 Scenario6 Scenario7 Scenario8 Scenario9 Scenario10 )
- Values: 131486.9803 117275.9662 117271.4862 117271.4862 124539.3662 117271.4862 117569.4062 117271.4862 121662.7262 117271.4862 Max-Min: 14215.4941 Avg: 119889.1876
-
-X-hat costs:
-
-Scenario Tree Costs
-----------------------------------------------------
-Tree Nodes:
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- Scenario10Node
- Scenario1Node
- Scenario2Node
- Scenario3Node
- Scenario4Node
- Scenario5Node
- Scenario6Node
- Scenario7Node
- Scenario8Node
- Scenario9Node
- Scenarios:
- Scenario1
- Scenario10
- Scenario2
- Scenario3
- Scenario4
- Scenario5
- Scenario6
- Scenario7
- Scenario8
- Scenario9
- Expected cost of (sub)tree rooted at node=154811.9803
-
- Name=Scenario10Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario10
- Expected cost of (sub)tree rooted at node=23630.0000
-
- Name=Scenario1Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario1
- Expected cost of (sub)tree rooted at node=21190.0000
-
- Name=Scenario2Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario2
- Expected cost of (sub)tree rooted at node=22380.0000
-
- Name=Scenario3Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario3
- Expected cost of (sub)tree rooted at node=22410.0000
-
- Name=Scenario4Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario4
- Expected cost of (sub)tree rooted at node=25320.0000
-
- Name=Scenario5Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario5
- Expected cost of (sub)tree rooted at node=23990.0000
-
- Name=Scenario6Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario6
- Expected cost of (sub)tree rooted at node=25830.0000
-
- Name=Scenario7Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario7
- Expected cost of (sub)tree rooted at node=22450.0000
-
- Name=Scenario8Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario8
- Expected cost of (sub)tree rooted at node=23850.0000
-
- Name=Scenario9Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario9
- Expected cost of (sub)tree rooted at node=22200.0000
-
-----------------------------------------------------
-Scenarios:
-
- Name=Scenario1
- Probability=0.1000
- Leaf Node=Scenario1Node
- Tree node sequence:
- RootNode
- Scenario1Node
- Stage= FirstStage Cost=131486.9803
- Stage= SecondStage Cost=21190.0000
- Total scenario cost=152676.9803
-
- Name=Scenario10
- Probability=0.1000
- Leaf Node=Scenario10Node
- Tree node sequence:
- RootNode
- Scenario10Node
- Stage= FirstStage Cost=117271.4862
- Stage= SecondStage Cost=23630.0000
- Total scenario cost=140901.4862
-
- Name=Scenario2
- Probability=0.1000
- Leaf Node=Scenario2Node
- Tree node sequence:
- RootNode
- Scenario2Node
- Stage= FirstStage Cost=117275.9662
- Stage= SecondStage Cost=22380.0000
- Total scenario cost=139655.9662
-
- Name=Scenario3
- Probability=0.1000
- Leaf Node=Scenario3Node
- Tree node sequence:
- RootNode
- Scenario3Node
- Stage= FirstStage Cost=117271.4862
- Stage= SecondStage Cost=22410.0000
- Total scenario cost=139681.4862
-
- Name=Scenario4
- Probability=0.1000
- Leaf Node=Scenario4Node
- Tree node sequence:
- RootNode
- Scenario4Node
- Stage= FirstStage Cost=117271.4862
- Stage= SecondStage Cost=25320.0000
- Total scenario cost=142591.4862
-
- Name=Scenario5
- Probability=0.1000
- Leaf Node=Scenario5Node
- Tree node sequence:
- RootNode
- Scenario5Node
- Stage= FirstStage Cost=124539.3662
- Stage= SecondStage Cost=23990.0000
- Total scenario cost=148529.3662
-
- Name=Scenario6
- Probability=0.1000
- Leaf Node=Scenario6Node
- Tree node sequence:
- RootNode
- Scenario6Node
- Stage= FirstStage Cost=117271.4862
- Stage= SecondStage Cost=25830.0000
- Total scenario cost=143101.4862
-
- Name=Scenario7
- Probability=0.1000
- Leaf Node=Scenario7Node
- Tree node sequence:
- RootNode
- Scenario7Node
- Stage= FirstStage Cost=117569.4062
- Stage= SecondStage Cost=22450.0000
- Total scenario cost=140019.4062
-
- Name=Scenario8
- Probability=0.1000
- Leaf Node=Scenario8Node
- Tree node sequence:
- RootNode
- Scenario8Node
- Stage= FirstStage Cost=117271.4862
- Stage= SecondStage Cost=23850.0000
- Total scenario cost=141121.4862
-
- Name=Scenario9
- Probability=0.1000
- Leaf Node=Scenario9Node
- Tree node sequence:
- RootNode
- Scenario9Node
- Stage= FirstStage Cost=121662.7262
- Stage= SecondStage Cost=22200.0000
- Total scenario cost=143862.7262
-
-----------------------------------------------------
-
-
-Total PH execution time=305.06 seconds
-
-
-Total execution time=309.34 seconds
diff --git a/pyomo/pysp/tests/unit/baselines/networkflow1ef3_simple_linearized_cplex_with_phpyro.baseline b/pyomo/pysp/tests/unit/baselines/networkflow1ef3_simple_linearized_cplex_with_phpyro.baseline
deleted file mode 100644
index fe6998eca9a..00000000000
--- a/pyomo/pysp/tests/unit/baselines/networkflow1ef3_simple_linearized_cplex_with_phpyro.baseline
+++ /dev/null
@@ -1,313 +0,0 @@
-Importing module=/Users/ghackebeil/Projects/Pyomo/pyomo/examples/pysp/networkflow/config/aggregategetter.py
-Module successfully loaded
-Importing module=/Users/ghackebeil/Projects/Pyomo/pyomo/examples/pysp/networkflow/config/rhosettermixed.py
-Module successfully loaded
-Importing module=/Users/ghackebeil/Projects/Pyomo/pyomo/examples/pysp/networkflow/config/xboundsetter.py
-Module successfully loaded
-Client assigned dispatcher with URI=PYRO://127.0.0.1:53781/86fdc201d5b522e2f689dda745edf1b9ef
-Initializing PH
-
-Transmitting user aggregate callback invocations to phsolverservers
-Broadcasting final aggregate data to phsolverservers
-Transmitting user rho callback invocations to phsolverservers
-Transmitting user bound callback invocations to phsolverservers
-Starting PH
-
-Initiating PH iteration=0
-Number of discrete variables fixed=0 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 118896.6867 Max-Min=18777.76
-Converger=Normalized term diff value is 0.3877 - threshold reached=False
-Cumulative run-time=11.39 seconds
-
-Initiating PH iteration=1
-Number of discrete variables fixed=0 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 121019.3461 Max-Min=17258.23
-Converger=Normalized term diff value is 0.1281 - threshold reached=False
-Cumulative run-time=13.81 seconds
-
-Initiating PH iteration=2
-Number of discrete variables fixed=0 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 123405.6334 Max-Min=15073.97
-Converger=Normalized term diff value is 0.0689 - threshold reached=False
-Cumulative run-time=19.10 seconds
-
-Initiating PH iteration=3
-Number of discrete variables fixed=0 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 124802.7724 Max-Min=12231.69
-Converger=Normalized term diff value is 0.0345 - threshold reached=False
-Cumulative run-time=24.69 seconds
-
-Initiating PH iteration=4
-Number of discrete variables fixed=0 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 126648.1915 Max-Min=10192.87
-Converger=Normalized term diff value is 0.1114 - threshold reached=False
-Cumulative run-time=28.53 seconds
-
-Initiating PH iteration=5
-Number of discrete variables fixed=0 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 127200.8669 Max-Min= 9584.77
-Converger=Normalized term diff value is 0.1096 - threshold reached=False
-Cumulative run-time=36.41 seconds
-
-Initiating PH iteration=6
-Number of discrete variables fixed=0 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 127367.0590 Max-Min= 8087.78
-Converger=Normalized term diff value is 0.0221 - threshold reached=False
-Cumulative run-time=42.25 seconds
-
-Initiating PH iteration=7
-Number of discrete variables fixed=0 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 128127.9347 Max-Min= 7898.03
-Converger=Normalized term diff value is 0.0566 - threshold reached=False
-Cumulative run-time=49.57 seconds
-
-Initiating PH iteration=8
-Number of discrete variables fixed=0 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 129588.9151 Max-Min= 6359.53
-Converger=Normalized term diff value is 0.0523 - threshold reached=False
-Cumulative run-time=54.86 seconds
-
-Initiating PH iteration=9
-Number of discrete variables fixed=0 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 129132.3079 Max-Min= 5363.28
-Converger=Normalized term diff value is 0.0945 - threshold reached=False
-Cumulative run-time=60.97 seconds
-
-Initiating PH iteration=10
-Number of discrete variables fixed=0 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 129171.3830 Max-Min= 3784.24
-Converger=Normalized term diff value is 0.1031 - threshold reached=False
-Cumulative run-time=68.53 seconds
-Halting PH - reached maximal iteration count=10
-
-Number of discrete variables fixed before final plugin calls=0 (total=30)
-Number of continuous variables fixed before final plugin calls=0 (total=30)
-PH complete
-
-Convergence history:
-Converger=Normalized term diff
-Iteration Metric Value
- 0 0.3877
- 1 0.1281
- 2 0.0689
- 3 0.0345
- 4 0.1114
- 5 0.1096
- 6 0.0221
- 7 0.0566
- 8 0.0523
- 9 0.0945
- 10 0.1031
-
-
-Final number of discrete variables fixed=0 (total=30)
-Final number of continuous variables fixed=0 (total=30)
-
-Computing objective inner bound at xhat solution
-At least one sub-problem solve time was undefined - skipping timing statistics
-At least one sub-problem solve time was undefined - skipping timing statistics
- ** At least one sub-problem failed to solve! **
- Failed sub-problems:
- Scenario1
-
-Failed to compute bound at xhat due to one or more solve failures. Restoring PH to solution at final iteration.
-Generating scenario tree solution from scenario averages
-
-Scenario tree variable values:
-
- Stage: FirstStage
- (Scenarios: Scenario1 Scenario2 Scenario3 )
- Variable: b0
- Index: [A,B] Values: 1.0000 1.0000 1.0000
-
- Index: [B,A] Values: 1.0000 1.0000 1.0000
-
- Index: [B,C] Values: 1.0000 1.0000 1.0000
-
- Index: [B,E] Values: 1.0000 1.0000 1.0000
-
- Index: [C,B] Values: 1.0000 1.0000 1.0000
-
- Index: [C,D] Values: 1.0000 1.0000 1.0000
-
- Index: [D,C] Values: 1.0000 1.0000 1.0000
-
- Index: [D,E] Values: 1.0000 1.0000 1.0000
-
- Index: [E,B] Values: 1.0000 1.0000 1.0000
-
- Index: [E,D] Values: 1.0000 1.0000 1.0000
-
- Index: [E,F] Values: 1.0000 1.0000 1.0000
-
- Index: [F,E] Values: 1.0000 1.0000 1.0000
-
- Index: [F,G] Values: 1.0000 1.0000 1.0000
-
- Index: [F,H] Values: 1.0000 1.0000 1.0000
-
- Index: [G,F] Values: 1.0000 1.0000 1.0000
-
- Index: [G,H] Values: 1.0000 0.0000 0.0000
-
- Index: [G,I] Values: 1.0000 1.0000 1.0000
-
- Index: [G,J] Values: 1.0000 1.0000 1.0000
-
- Index: [H,F] Values: 1.0000 1.0000 1.0000
-
- Index: [H,G] Values: 1.0000 0.0000 0.0000
-
- Index: [I,G] Values: 1.0000 1.0000 1.0000
-
- Index: [J,G] Values: 1.0000 1.0000 1.0000
-
- (Scenarios: Scenario1 Scenario2 Scenario3 )
- Variable: x
- Index: [A,B] Values: 34.7300 34.4334 34.4334
-
- Index: [B,A] Values: 34.7300 34.4334 34.4334
-
- Index: [B,C] Values: 23.4260 28.6800 23.4260
-
- Index: [B,E] Values: 68.7702 68.7702 68.7702
-
- Index: [C,B] Values: 23.4260 28.6800 23.4260
-
- Index: [C,D] Values: 13.9698 12.0436 12.0436
-
- Index: [D,C] Values: 13.9698 12.0436 12.0436
-
- Index: [D,E] Values: 39.8740 37.6595 37.6595
-
- Index: [E,B] Values: 68.7702 68.7702 68.7702
-
- Index: [E,D] Values: 39.8740 37.6595 37.6595
-
- Index: [E,F] Values: 97.0800 96.7744 96.7744
-
- Index: [F,E] Values: 97.0800 96.7744 96.7744
-
- Index: [F,G] Values: 68.6700 72.1583 72.1583
-
- Index: [F,H] Values: 23.0500 28.7700 34.3479
-
- Index: [G,F] Values: 68.6700 72.1583 72.1583
-
- Index: [G,H] Values: 11.4700 0.0000 0.0000
-
- Index: [G,I] Values: 32.9000 28.4000 28.7500
-
- Index: [G,J] Values: 35.4800 35.0627 35.0627
-
- Index: [H,F] Values: 23.0500 28.7700 34.3479
-
- Index: [H,G] Values: 11.4700 0.0000 0.0000
-
- Index: [I,G] Values: 32.9000 28.4000 28.7500
-
- Index: [J,G] Values: 35.4800 35.0627 35.0627
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: Scenario1 Scenario2 Scenario3 )
- Values: 131595.8382 127811.5956 128106.7152 Max-Min: 3784.2426 Avg: 129160.7363
-Scenario tree costs:
-Scenario Tree Costs
-----------------------------------------------------
-Tree Nodes:
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- Scenario1Node
- Scenario2Node
- Scenario3Node
- Scenarios:
- Scenario1
- Scenario2
- Scenario3
- Expected cost of (sub)tree rooted at node=154002.5382
-
- Name=Scenario1Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3300
- Children:
- None
- Scenarios:
- Scenario1
- Expected cost of (sub)tree rooted at node=24670.0000
-
- Name=Scenario2Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3300
- Children:
- None
- Scenarios:
- Scenario2
- Expected cost of (sub)tree rooted at node=20140.0000
-
- Name=Scenario3Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3400
- Children:
- None
- Scenarios:
- Scenario3
- Expected cost of (sub)tree rooted at node=22410.0000
-
-----------------------------------------------------
-Scenarios:
-
- Name=Scenario1
- Probability=0.3300
- Leaf Node=Scenario1Node
- Tree node sequence:
- RootNode
- Scenario1Node
- Stage= FirstStage Cost=131595.8382
- Stage= SecondStage Cost=24670.0000
- Total scenario cost=156265.8382
-
- Name=Scenario2
- Probability=0.3300
- Leaf Node=Scenario2Node
- Tree node sequence:
- RootNode
- Scenario2Node
- Stage= FirstStage Cost=127811.5956
- Stage= SecondStage Cost=20140.0000
- Total scenario cost=147951.5956
-
- Name=Scenario3
- Probability=0.3400
- Leaf Node=Scenario3Node
- Tree node sequence:
- RootNode
- Scenario3Node
- Stage= FirstStage Cost=128106.7152
- Stage= SecondStage Cost=22410.0000
- Total scenario cost=150516.7152
-
-----------------------------------------------------
-
-
-Total PH execution time=71.41 seconds
-
-
-Total execution time=74.09 seconds
diff --git a/pyomo/pysp/tests/unit/baselines/networkflow1ef3_simple_linearized_cplex_with_phpyro_darwin.baseline b/pyomo/pysp/tests/unit/baselines/networkflow1ef3_simple_linearized_cplex_with_phpyro_darwin.baseline
deleted file mode 100644
index 167a1e5de72..00000000000
--- a/pyomo/pysp/tests/unit/baselines/networkflow1ef3_simple_linearized_cplex_with_phpyro_darwin.baseline
+++ /dev/null
@@ -1,313 +0,0 @@
-Importing module=/Users/ghackebeil/Projects/Pyomo/pyomo/examples/pysp/networkflow/config/aggregategetter.py
-Module successfully loaded
-Importing module=/Users/ghackebeil/Projects/Pyomo/pyomo/examples/pysp/networkflow/config/rhosettermixed.py
-Module successfully loaded
-Importing module=/Users/ghackebeil/Projects/Pyomo/pyomo/examples/pysp/networkflow/config/xboundsetter.py
-Module successfully loaded
-Client assigned dispatcher with URI=PYRO::PyUtilibServer.dispatcher.7c788ec5-81ac-4073-9191-30523cb7ca91@127.0.0.1:52733
-Initializing PH
-
-Transmitting user aggregate callback invocations to phsolverservers
-Broadcasting final aggregate data to phsolverservers
-Transmitting user rho callback invocations to phsolverservers
-Transmitting user bound callback invocations to phsolverservers
-Starting PH
-
-Initiating PH iteration=0
-Number of discrete variables fixed=0 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 118896.6867 Max-Min=18777.76
-Converger=Normalized term diff value is 0.3877 - threshold reached=False
-Cumulative run-time=2.58 seconds
-
-Initiating PH iteration=1
-Number of discrete variables fixed=0 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 121019.3461 Max-Min=17258.23
-Converger=Normalized term diff value is 0.1281 - threshold reached=False
-Cumulative run-time=3.55 seconds
-
-Initiating PH iteration=2
-Number of discrete variables fixed=0 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 123405.6334 Max-Min=15073.97
-Converger=Normalized term diff value is 0.0689 - threshold reached=False
-Cumulative run-time=4.70 seconds
-
-Initiating PH iteration=3
-Number of discrete variables fixed=0 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 124802.7724 Max-Min=12231.69
-Converger=Normalized term diff value is 0.0345 - threshold reached=False
-Cumulative run-time=6.07 seconds
-
-Initiating PH iteration=4
-Number of discrete variables fixed=0 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 126648.1915 Max-Min=10192.87
-Converger=Normalized term diff value is 0.1114 - threshold reached=False
-Cumulative run-time=7.05 seconds
-
-Initiating PH iteration=5
-Number of discrete variables fixed=0 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 127200.8669 Max-Min= 9584.77
-Converger=Normalized term diff value is 0.1096 - threshold reached=False
-Cumulative run-time=8.41 seconds
-
-Initiating PH iteration=6
-Number of discrete variables fixed=0 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 127367.0590 Max-Min= 8087.78
-Converger=Normalized term diff value is 0.0221 - threshold reached=False
-Cumulative run-time=9.77 seconds
-
-Initiating PH iteration=7
-Number of discrete variables fixed=0 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 128127.9347 Max-Min= 7898.03
-Converger=Normalized term diff value is 0.0566 - threshold reached=False
-Cumulative run-time=11.09 seconds
-
-Initiating PH iteration=8
-Number of discrete variables fixed=0 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 129588.9151 Max-Min= 6359.53
-Converger=Normalized term diff value is 0.0523 - threshold reached=False
-Cumulative run-time=12.32 seconds
-
-Initiating PH iteration=9
-Number of discrete variables fixed=0 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 129132.3079 Max-Min= 5363.28
-Converger=Normalized term diff value is 0.0945 - threshold reached=False
-Cumulative run-time=13.96 seconds
-
-Initiating PH iteration=10
-Number of discrete variables fixed=0 (total=30)
-Number of continuous variables fixed=0 (total=30)
-First stage cost avg= 129171.3830 Max-Min= 3784.24
-Converger=Normalized term diff value is 0.1031 - threshold reached=False
-Cumulative run-time=15.21 seconds
-Halting PH - reached maximal iteration count=10
-
-Number of discrete variables fixed before final plugin calls=0 (total=30)
-Number of continuous variables fixed before final plugin calls=0 (total=30)
-PH complete
-
-Convergence history:
-Converger=Normalized term diff
-Iteration Metric Value
- 0 0.3877
- 1 0.1281
- 2 0.0689
- 3 0.0345
- 4 0.1114
- 5 0.1096
- 6 0.0221
- 7 0.0566
- 8 0.0523
- 9 0.0945
- 10 0.1031
-
-
-Final number of discrete variables fixed=0 (total=30)
-Final number of continuous variables fixed=0 (total=30)
-
-Computing objective inner bound at xhat solution
-At least one sub-problem solve time was undefined - skipping timing statistics
-At least one sub-problem solve time was undefined - skipping timing statistics
- ** At least one sub-problem failed to solve! **
- Failed sub-problems:
- Scenario1
-
-Failed to compute bound at xhat due to one or more solve failures. Restoring PH to solution at final iteration.
-Generating scenario tree solution from scenario averages
-
-Scenario tree variable values:
-
- Stage: FirstStage
- (Scenarios: Scenario1 Scenario2 Scenario3 )
- Variable: b0
- Index: [A,B] Values: 1.0000 1.0000 1.0000
-
- Index: [B,A] Values: 1.0000 1.0000 1.0000
-
- Index: [B,C] Values: 1.0000 1.0000 1.0000
-
- Index: [B,E] Values: 1.0000 1.0000 1.0000
-
- Index: [C,B] Values: 1.0000 1.0000 1.0000
-
- Index: [C,D] Values: 1.0000 1.0000 1.0000
-
- Index: [D,C] Values: 1.0000 1.0000 1.0000
-
- Index: [D,E] Values: 1.0000 1.0000 1.0000
-
- Index: [E,B] Values: 1.0000 1.0000 1.0000
-
- Index: [E,D] Values: 1.0000 1.0000 1.0000
-
- Index: [E,F] Values: 1.0000 1.0000 1.0000
-
- Index: [F,E] Values: 1.0000 1.0000 1.0000
-
- Index: [F,G] Values: 1.0000 1.0000 1.0000
-
- Index: [F,H] Values: 1.0000 1.0000 1.0000
-
- Index: [G,F] Values: 1.0000 1.0000 1.0000
-
- Index: [G,H] Values: 1.0000 0.0000 0.0000
-
- Index: [G,I] Values: 1.0000 1.0000 1.0000
-
- Index: [G,J] Values: 1.0000 1.0000 1.0000
-
- Index: [H,F] Values: 1.0000 1.0000 1.0000
-
- Index: [H,G] Values: 1.0000 0.0000 0.0000
-
- Index: [I,G] Values: 1.0000 1.0000 1.0000
-
- Index: [J,G] Values: 1.0000 1.0000 1.0000
-
- (Scenarios: Scenario1 Scenario2 Scenario3 )
- Variable: x
- Index: [A,B] Values: 34.7300 34.4334 34.4334
-
- Index: [B,A] Values: 34.7300 34.4334 34.4334
-
- Index: [B,C] Values: 23.4260 28.6800 23.4260
-
- Index: [B,E] Values: 68.7702 68.7702 68.7702
-
- Index: [C,B] Values: 23.4260 28.6800 23.4260
-
- Index: [C,D] Values: 13.9698 12.0436 12.0436
-
- Index: [D,C] Values: 13.9698 12.0436 12.0436
-
- Index: [D,E] Values: 39.8740 37.6595 37.6595
-
- Index: [E,B] Values: 68.7702 68.7702 68.7702
-
- Index: [E,D] Values: 39.8740 37.6595 37.6595
-
- Index: [E,F] Values: 97.0800 96.7744 96.7744
-
- Index: [F,E] Values: 97.0800 96.7744 96.7744
-
- Index: [F,G] Values: 68.6700 72.1583 72.1583
-
- Index: [F,H] Values: 23.0500 28.7700 34.3479
-
- Index: [G,F] Values: 68.6700 72.1583 72.1583
-
- Index: [G,H] Values: 11.4700 0.0000 0.0000
-
- Index: [G,I] Values: 32.9000 28.4000 28.7500
-
- Index: [G,J] Values: 35.4800 35.0627 35.0627
-
- Index: [H,F] Values: 23.0500 28.7700 34.3479
-
- Index: [H,G] Values: 11.4700 0.0000 0.0000
-
- Index: [I,G] Values: 32.9000 28.4000 28.7500
-
- Index: [J,G] Values: 35.4800 35.0627 35.0627
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: Scenario1 Scenario2 Scenario3 )
- Values: 131595.8382 127811.5956 128106.7152 Max-Min: 3784.2426 Avg: 129160.7363
-Scenario tree costs:
-Scenario Tree Costs
-----------------------------------------------------
-Tree Nodes:
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- Scenario1Node
- Scenario2Node
- Scenario3Node
- Scenarios:
- Scenario1
- Scenario2
- Scenario3
- Expected cost of (sub)tree rooted at node=154002.5382
-
- Name=Scenario1Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3300
- Children:
- None
- Scenarios:
- Scenario1
- Expected cost of (sub)tree rooted at node=24670.0000
-
- Name=Scenario2Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3300
- Children:
- None
- Scenarios:
- Scenario2
- Expected cost of (sub)tree rooted at node=20140.0000
-
- Name=Scenario3Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3400
- Children:
- None
- Scenarios:
- Scenario3
- Expected cost of (sub)tree rooted at node=22410.0000
-
-----------------------------------------------------
-Scenarios:
-
- Name=Scenario1
- Probability=0.3300
- Leaf Node=Scenario1Node
- Tree node sequence:
- RootNode
- Scenario1Node
- Stage= FirstStage Cost=131595.8382
- Stage= SecondStage Cost=24670.0000
- Total scenario cost=156265.8382
-
- Name=Scenario2
- Probability=0.3300
- Leaf Node=Scenario2Node
- Tree node sequence:
- RootNode
- Scenario2Node
- Stage= FirstStage Cost=127811.5956
- Stage= SecondStage Cost=20140.0000
- Total scenario cost=147951.5956
-
- Name=Scenario3
- Probability=0.3400
- Leaf Node=Scenario3Node
- Tree node sequence:
- RootNode
- Scenario3Node
- Stage= FirstStage Cost=128106.7152
- Stage= SecondStage Cost=22410.0000
- Total scenario cost=150516.7152
-
-----------------------------------------------------
-
-
-Total PH execution time=16.02 seconds
-
-
-Total execution time=19.38 seconds
diff --git a/pyomo/pysp/tests/unit/baselines/sizes10_quadratic_twobundles_cplex.baseline-a b/pyomo/pysp/tests/unit/baselines/sizes10_quadratic_twobundles_cplex.baseline-a
deleted file mode 100644
index d870b985f28..00000000000
--- a/pyomo/pysp/tests/unit/baselines/sizes10_quadratic_twobundles_cplex.baseline-a
+++ /dev/null
@@ -1,341 +0,0 @@
-Initializing PH
-
-Starting PH
-
-Initiating PH iteration=0
-Number of discrete variables fixed=0 (total=75)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 163090.9000 Max-Min= 85.80
-Converger=Normalized term diff value is 0.0019 - threshold reached=False
-Cumulative run-time=6.54 seconds
-
-Initiating PH iteration=1
-Number of discrete variables fixed=0 (total=75)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 163090.9000 Max-Min= 85.80
-Converger=Normalized term diff value is 0.0019 - threshold reached=False
-Cumulative run-time=8.64 seconds
-
-Initiating PH iteration=2
-Number of discrete variables fixed=0 (total=75)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 163090.9000 Max-Min= 0.00
-Converger=Normalized term diff value is 0.0000 - threshold reached=True
-Cumulative run-time=22.06 seconds
-
-Number of discrete variables fixed before final plugin calls=0 (total=75)
-Number of continuous variables fixed before final plugin calls=0 (total=0)
-PH complete
-
-Convergence history:
-Converger=Normalized term diff
-Iteration Metric Value
- 0 0.0019
- 1 0.0019
- 2 0.0000
-
-
-Final number of discrete variables fixed=0 (total=75)
-Final number of continuous variables fixed=0 (total=0)
-
-Computing objective inner bound at xhat solution
-
-Computed objective upper bound= 224495.4100
-
-X-hat variable values:
-
- Stage: FirstStage
- (Scenarios: Scenario1 Scenario2 Scenario3 Scenario4 Scenario5 Scenario6 Scenario7 Scenario8 Scenario9 Scenario10 )
- Variable: NumProducedFirstStage
- Index: [3] Values: 34875.0000 34875.0000 34875.0000 34875.0000 34875.0000 34875.0000 34875.0000 34875.0000 34875.0000 34875.0000
-
- Index: [5] Values: 47500.0000 47500.0000 47500.0000 47500.0000 47500.0000 47500.0000 47500.0000 47500.0000 47500.0000 47500.0000
-
- Index: [6] Values: 47250.0000 47250.0000 47250.0000 47250.0000 47250.0000 47250.0000 47250.0000 47250.0000 47250.0000 47250.0000
-
- Index: [8] Values: 43250.0000 43250.0000 43250.0000 43250.0000 43250.0000 43250.0000 43250.0000 43250.0000 43250.0000 43250.0000
-
- Index: [10] Values: 27125.0000 27125.0000 27125.0000 27125.0000 27125.0000 27125.0000 27125.0000 27125.0000 27125.0000 27125.0000
-
- (Scenarios: Scenario1 Scenario2 Scenario3 Scenario4 Scenario5 Scenario6 Scenario7 Scenario8 Scenario9 Scenario10 )
- Variable: NumUnitsCutFirstStage
- Index: [3,1] Values: 2500.0000 2500.0000 2500.0000 2500.0000 2500.0000 2500.0000 2500.0000 2500.0000 2500.0000 2500.0000
-
- Index: [3,2] Values: 7500.0000 7500.0000 7500.0000 7500.0000 7500.0000 7500.0000 7500.0000 7500.0000 7500.0000 7500.0000
-
- Index: [3,3] Values: 12500.0000 12500.0000 12500.0000 12500.0000 12500.0000 12500.0000 12500.0000 12500.0000 12500.0000 12500.0000
-
- Index: [5,4] Values: 10000.0000 10000.0000 10000.0000 10000.0000 10000.0000 10000.0000 10000.0000 10000.0000 10000.0000 10000.0000
-
- Index: [5,5] Values: 35000.0000 35000.0000 35000.0000 35000.0000 35000.0000 35000.0000 35000.0000 35000.0000 35000.0000 35000.0000
-
- Index: [6,6] Values: 25000.0000 25000.0000 25000.0000 25000.0000 25000.0000 25000.0000 25000.0000 25000.0000 25000.0000 25000.0000
-
- Index: [8,7] Values: 15000.0000 15000.0000 15000.0000 15000.0000 15000.0000 15000.0000 15000.0000 15000.0000 15000.0000 15000.0000
-
- Index: [8,8] Values: 12500.0000 12500.0000 12500.0000 12500.0000 12500.0000 12500.0000 12500.0000 12500.0000 12500.0000 12500.0000
-
- Index: [10,9] Values: 12500.0000 12500.0000 12500.0000 12500.0000 12500.0000 12500.0000 12500.0000 12500.0000 12500.0000 12500.0000
-
- Index: [10,10] Values: 5000.0000 5000.0000 5000.0000 5000.0000 5000.0000 5000.0000 5000.0000 5000.0000 5000.0000 5000.0000
-
- (Scenarios: Scenario1 Scenario2 Scenario3 Scenario4 Scenario5 Scenario6 Scenario7 Scenario8 Scenario9 Scenario10 )
- Variable: ProduceSizeFirstStage
- Index: [3] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [5] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [6] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [8] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [10] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: Scenario1 Scenario2 Scenario3 Scenario4 Scenario5 Scenario6 Scenario7 Scenario8 Scenario9 Scenario10 )
- Values: 163090.9000 163090.9000 163090.9000 163090.9000 163090.9000 163090.9000 163090.9000 163090.9000 163090.9000 163090.9000 Max-Min: 0.0000 Avg: 163090.9000
-
-X-hat costs:
-
-Scenario Tree Costs
-----------------------------------------------------
-Tree Nodes:
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- Scenario10Node
- Scenario1Node
- Scenario2Node
- Scenario3Node
- Scenario4Node
- Scenario5Node
- Scenario6Node
- Scenario7Node
- Scenario8Node
- Scenario9Node
- Scenarios:
- Scenario1
- Scenario10
- Scenario2
- Scenario3
- Scenario4
- Scenario5
- Scenario6
- Scenario7
- Scenario8
- Scenario9
- Expected cost of (sub)tree rooted at node=224495.4100
-
- Name=Scenario10Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario10
- Expected cost of (sub)tree rooted at node=116797.6000
-
- Name=Scenario1Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario1
- Expected cost of (sub)tree rooted at node= 6527.3000
-
- Name=Scenario2Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario2
- Expected cost of (sub)tree rooted at node=16981.6000
-
- Name=Scenario3Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario3
- Expected cost of (sub)tree rooted at node=28026.8000
-
- Name=Scenario4Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario4
- Expected cost of (sub)tree rooted at node=39078.0000
-
- Name=Scenario5Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario5
- Expected cost of (sub)tree rooted at node=50162.6000
-
- Name=Scenario6Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario6
- Expected cost of (sub)tree rooted at node=72509.2000
-
- Name=Scenario7Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario7
- Expected cost of (sub)tree rooted at node=83590.2000
-
- Name=Scenario8Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario8
- Expected cost of (sub)tree rooted at node=94651.0000
-
- Name=Scenario9Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario9
- Expected cost of (sub)tree rooted at node=105720.8000
-
-----------------------------------------------------
-Scenarios:
-
- Name=Scenario1
- Probability=0.1000
- Leaf Node=Scenario1Node
- Tree node sequence:
- RootNode
- Scenario1Node
- Stage= FirstStage Cost=163090.9000
- Stage= SecondStage Cost= 6527.3000
- Total scenario cost=169618.2000
-
- Name=Scenario10
- Probability=0.1000
- Leaf Node=Scenario10Node
- Tree node sequence:
- RootNode
- Scenario10Node
- Stage= FirstStage Cost=163090.9000
- Stage= SecondStage Cost=116797.6000
- Total scenario cost=279888.5000
-
- Name=Scenario2
- Probability=0.1000
- Leaf Node=Scenario2Node
- Tree node sequence:
- RootNode
- Scenario2Node
- Stage= FirstStage Cost=163090.9000
- Stage= SecondStage Cost=16981.6000
- Total scenario cost=180072.5000
-
- Name=Scenario3
- Probability=0.1000
- Leaf Node=Scenario3Node
- Tree node sequence:
- RootNode
- Scenario3Node
- Stage= FirstStage Cost=163090.9000
- Stage= SecondStage Cost=28026.8000
- Total scenario cost=191117.7000
-
- Name=Scenario4
- Probability=0.1000
- Leaf Node=Scenario4Node
- Tree node sequence:
- RootNode
- Scenario4Node
- Stage= FirstStage Cost=163090.9000
- Stage= SecondStage Cost=39078.0000
- Total scenario cost=202168.9000
-
- Name=Scenario5
- Probability=0.1000
- Leaf Node=Scenario5Node
- Tree node sequence:
- RootNode
- Scenario5Node
- Stage= FirstStage Cost=163090.9000
- Stage= SecondStage Cost=50162.6000
- Total scenario cost=213253.5000
-
- Name=Scenario6
- Probability=0.1000
- Leaf Node=Scenario6Node
- Tree node sequence:
- RootNode
- Scenario6Node
- Stage= FirstStage Cost=163090.9000
- Stage= SecondStage Cost=72509.2000
- Total scenario cost=235600.1000
-
- Name=Scenario7
- Probability=0.1000
- Leaf Node=Scenario7Node
- Tree node sequence:
- RootNode
- Scenario7Node
- Stage= FirstStage Cost=163090.9000
- Stage= SecondStage Cost=83590.2000
- Total scenario cost=246681.1000
-
- Name=Scenario8
- Probability=0.1000
- Leaf Node=Scenario8Node
- Tree node sequence:
- RootNode
- Scenario8Node
- Stage= FirstStage Cost=163090.9000
- Stage= SecondStage Cost=94651.0000
- Total scenario cost=257741.9000
-
- Name=Scenario9
- Probability=0.1000
- Leaf Node=Scenario9Node
- Tree node sequence:
- RootNode
- Scenario9Node
- Stage= FirstStage Cost=163090.9000
- Stage= SecondStage Cost=105720.8000
- Total scenario cost=268811.7000
-
-----------------------------------------------------
-
-
-Total PH execution time=24.43 seconds
-
-
-Total execution time=25.06 seconds
diff --git a/pyomo/pysp/tests/unit/baselines/sizes10_quadratic_twobundles_cplex.baseline-b b/pyomo/pysp/tests/unit/baselines/sizes10_quadratic_twobundles_cplex.baseline-b
deleted file mode 100755
index 60fd83df187..00000000000
--- a/pyomo/pysp/tests/unit/baselines/sizes10_quadratic_twobundles_cplex.baseline-b
+++ /dev/null
@@ -1,311 +0,0 @@
-Initializing PH
-
-Starting PH
-
-Initiating PH iteration=0
-Number of discrete variables fixed=0 (total=75)
-Number of continuous variables fixed=0 (total=0)
-Convergence metric= 0.0019 First stage cost avg= 163090.9000 Max-Min= 85.80
-Cumulative run-time=12.96 seconds
-
-Initiating PH iteration=1
-Number of discrete variables fixed=0 (total=75)
-Number of continuous variables fixed=0 (total=0)
-Convergence metric= 0.0019 First stage cost avg= 163090.9000 Max-Min= 85.80
-Cumulative run-time=14.06 seconds
-
-Initiating PH iteration=2
-Number of discrete variables fixed=0 (total=75)
-Number of continuous variables fixed=0 (total=0)
-Convergence metric= 0.0000 First stage cost avg= 163090.9000 Max-Min= 0.00
-Cumulative run-time=90.51 seconds
-PH converged - convergence metric is below threshold=0.0001 or all discrete variables are fixed
-Number of discrete variables fixed before final plugin calls=0 (total=75)
-Number of continuous variables fixed before final plugin calls=0 (total=0)
-PH complete
-Convergence history:
-Iteration Metric Value
- 0 0.0019
- 1 0.0019
- 2 0.0000
-
-***********************************************************************************************
->>>THE EXPECTED SUM OF THE STAGE COST VARIABLES=224495.41<<<
->>>***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise<<<
-***********************************************************************************************
-Final number of discrete variables fixed=0 (total=75)
-Final number of continuous variables fixed=0 (total=0)
-Final variable values:
- Stage: FirstStage
- (Scenarios: Scenario1 Scenario2 Scenario3 Scenario4 Scenario5 Scenario6 Scenario7 Scenario8 Scenario9 Scenario10 )
- Variable: NumProducedFirstStage
- Index: [3] Values: 34875.0000 34875.0000 34875.0000 34875.0000 34875.0000 34875.0000 34875.0000 34875.0000 34875.0000 34875.0000 Max-Min: 0.0000 Avg: 34875.0000
- Index: [5] Values: 47500.0000 47500.0000 47500.0000 47500.0000 47500.0000 47500.0000 47500.0000 47500.0000 47500.0000 47500.0000 Max-Min: 0.0000 Avg: 47500.0000
- Index: [6] Values: 47250.0000 47250.0000 47250.0000 47250.0000 47250.0000 47250.0000 47250.0000 47250.0000 47250.0000 47250.0000 Max-Min: 0.0000 Avg: 47250.0000
- Index: [8] Values: 43250.0000 43250.0000 43250.0000 43250.0000 43250.0000 43250.0000 43250.0000 43250.0000 43250.0000 43250.0000 Max-Min: 0.0000 Avg: 43250.0000
- Index: [10] Values: 27125.0000 27125.0000 27125.0000 27125.0000 27125.0000 27125.0000 27125.0000 27125.0000 27125.0000 27125.0000 Max-Min: 0.0000 Avg: 27125.0000
- (Scenarios: Scenario1 Scenario2 Scenario3 Scenario4 Scenario5 Scenario6 Scenario7 Scenario8 Scenario9 Scenario10 )
- Variable: NumUnitsCutFirstStage
- Index: [3,1] Values: 2500.0000 2500.0000 2500.0000 2500.0000 2500.0000 2500.0000 2500.0000 2500.0000 2500.0000 2500.0000 Max-Min: 0.0000 Avg: 2500.0000
- Index: [3,2] Values: 7500.0000 7500.0000 7500.0000 7500.0000 7500.0000 7500.0000 7500.0000 7500.0000 7500.0000 7500.0000 Max-Min: 0.0000 Avg: 7500.0000
- Index: [3,3] Values: 12500.0000 12500.0000 12500.0000 12500.0000 12500.0000 12500.0000 12500.0000 12500.0000 12500.0000 12500.0000 Max-Min: 0.0000 Avg: 12500.0000
- Index: [5,4] Values: 10000.0000 10000.0000 10000.0000 10000.0000 10000.0000 10000.0000 10000.0000 10000.0000 10000.0000 10000.0000 Max-Min: 0.0000 Avg: 10000.0000
- Index: [5,5] Values: 35000.0000 35000.0000 35000.0000 35000.0000 35000.0000 35000.0000 35000.0000 35000.0000 35000.0000 35000.0000 Max-Min: 0.0000 Avg: 35000.0000
- Index: [6,6] Values: 25000.0000 25000.0000 25000.0000 25000.0000 25000.0000 25000.0000 25000.0000 25000.0000 25000.0000 25000.0000 Max-Min: 0.0000 Avg: 25000.0000
- Index: [8,7] Values: 15000.0000 15000.0000 15000.0000 15000.0000 15000.0000 15000.0000 15000.0000 15000.0000 15000.0000 15000.0000 Max-Min: 0.0000 Avg: 15000.0000
- Index: [8,8] Values: 12500.0000 12500.0000 12500.0000 12500.0000 12500.0000 12500.0000 12500.0000 12500.0000 12500.0000 12500.0000 Max-Min: 0.0000 Avg: 12500.0000
- Index: [10,9] Values: 12500.0000 12500.0000 12500.0000 12500.0000 12500.0000 12500.0000 12500.0000 12500.0000 12500.0000 12500.0000 Max-Min: 0.0000 Avg: 12500.0000
- Index: [10,10] Values: 5000.0000 5000.0000 5000.0000 5000.0000 5000.0000 5000.0000 5000.0000 5000.0000 5000.0000 5000.0000 Max-Min: 0.0000 Avg: 5000.0000
- (Scenarios: Scenario1 Scenario2 Scenario3 Scenario4 Scenario5 Scenario6 Scenario7 Scenario8 Scenario9 Scenario10 )
- Variable: ProduceSizeFirstStage
- Index: [3] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- Index: [5] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- Index: [6] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- Index: [8] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- Index: [10] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: Scenario1 Scenario2 Scenario3 Scenario4 Scenario5 Scenario6 Scenario7 Scenario8 Scenario9 Scenario10 )
- Values: 163090.9000 163090.9000 163090.9000 163090.9000 163090.9000 163090.9000 163090.9000 163090.9000 163090.9000 163090.9000 Max-Min: 0.0000 Avg: 163090.9000
-Final costs:
-Scenario Tree Costs
-***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise
-----------------------------------------------------
-Tree Nodes:
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- Scenario10Node
- Scenario1Node
- Scenario2Node
- Scenario3Node
- Scenario4Node
- Scenario5Node
- Scenario6Node
- Scenario7Node
- Scenario8Node
- Scenario9Node
- Scenarios:
- Scenario1
- Scenario10
- Scenario2
- Scenario3
- Scenario4
- Scenario5
- Scenario6
- Scenario7
- Scenario8
- Scenario9
- Expected cost of (sub)tree rooted at node=224495.4100
-
- Name=Scenario10Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario10
- Expected cost of (sub)tree rooted at node=116797.6000
-
- Name=Scenario1Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario1
- Expected cost of (sub)tree rooted at node= 6527.3000
-
- Name=Scenario2Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario2
- Expected cost of (sub)tree rooted at node=16981.6000
-
- Name=Scenario3Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario3
- Expected cost of (sub)tree rooted at node=28026.8000
-
- Name=Scenario4Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario4
- Expected cost of (sub)tree rooted at node=39078.0000
-
- Name=Scenario5Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario5
- Expected cost of (sub)tree rooted at node=50162.6000
-
- Name=Scenario6Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario6
- Expected cost of (sub)tree rooted at node=72509.2000
-
- Name=Scenario7Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario7
- Expected cost of (sub)tree rooted at node=83590.2000
-
- Name=Scenario8Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario8
- Expected cost of (sub)tree rooted at node=94651.0000
-
- Name=Scenario9Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario9
- Expected cost of (sub)tree rooted at node=105720.8000
-
-----------------------------------------------------
-Scenarios:
-
- Name=Scenario1
- Probability=0.1000
- Leaf Node=Scenario1Node
- Tree node sequence:
- RootNode
- Scenario1Node
- Stage= FirstStage Cost=163090.9000
- Stage= SecondStage Cost= 6527.3000
- Total scenario cost=169618.2000
-
- Name=Scenario10
- Probability=0.1000
- Leaf Node=Scenario10Node
- Tree node sequence:
- RootNode
- Scenario10Node
- Stage= FirstStage Cost=163090.9000
- Stage= SecondStage Cost=116797.6000
- Total scenario cost=279888.5000
-
- Name=Scenario2
- Probability=0.1000
- Leaf Node=Scenario2Node
- Tree node sequence:
- RootNode
- Scenario2Node
- Stage= FirstStage Cost=163090.9000
- Stage= SecondStage Cost=16981.6000
- Total scenario cost=180072.5000
-
- Name=Scenario3
- Probability=0.1000
- Leaf Node=Scenario3Node
- Tree node sequence:
- RootNode
- Scenario3Node
- Stage= FirstStage Cost=163090.9000
- Stage= SecondStage Cost=28026.8000
- Total scenario cost=191117.7000
-
- Name=Scenario4
- Probability=0.1000
- Leaf Node=Scenario4Node
- Tree node sequence:
- RootNode
- Scenario4Node
- Stage= FirstStage Cost=163090.9000
- Stage= SecondStage Cost=39078.0000
- Total scenario cost=202168.9000
-
- Name=Scenario5
- Probability=0.1000
- Leaf Node=Scenario5Node
- Tree node sequence:
- RootNode
- Scenario5Node
- Stage= FirstStage Cost=163090.9000
- Stage= SecondStage Cost=50162.6000
- Total scenario cost=213253.5000
-
- Name=Scenario6
- Probability=0.1000
- Leaf Node=Scenario6Node
- Tree node sequence:
- RootNode
- Scenario6Node
- Stage= FirstStage Cost=163090.9000
- Stage= SecondStage Cost=72509.2000
- Total scenario cost=235600.1000
-
- Name=Scenario7
- Probability=0.1000
- Leaf Node=Scenario7Node
- Tree node sequence:
- RootNode
- Scenario7Node
- Stage= FirstStage Cost=163090.9000
- Stage= SecondStage Cost=83590.2000
- Total scenario cost=246681.1000
-
- Name=Scenario8
- Probability=0.1000
- Leaf Node=Scenario8Node
- Tree node sequence:
- RootNode
- Scenario8Node
- Stage= FirstStage Cost=163090.9000
- Stage= SecondStage Cost=94651.0000
- Total scenario cost=257741.9000
-
- Name=Scenario9
- Probability=0.1000
- Leaf Node=Scenario9Node
- Tree node sequence:
- RootNode
- Scenario9Node
- Stage= FirstStage Cost=163090.9000
- Stage= SecondStage Cost=105720.8000
- Total scenario cost=268811.7000
-
-----------------------------------------------------
-
-Total PH execution time=90.53 seconds
-
-
-Total execution time=90.81 seconds
diff --git a/pyomo/pysp/tests/unit/baselines/sizes10_quadratic_twobundles_gurobi.baseline b/pyomo/pysp/tests/unit/baselines/sizes10_quadratic_twobundles_gurobi.baseline
deleted file mode 100644
index 530e94fbb8a..00000000000
--- a/pyomo/pysp/tests/unit/baselines/sizes10_quadratic_twobundles_gurobi.baseline
+++ /dev/null
@@ -1,341 +0,0 @@
-Initializing PH
-
-Starting PH
-
-Initiating PH iteration=0
-Number of discrete variables fixed=0 (total=75)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 163090.9000 Max-Min= 85.80
-Converger=Normalized term diff value is 0.0019 - threshold reached=False
-Cumulative run-time=2.94 seconds
-
-Initiating PH iteration=1
-Number of discrete variables fixed=0 (total=75)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 163090.9000 Max-Min= 85.80
-Converger=Normalized term diff value is 0.0019 - threshold reached=False
-Cumulative run-time=4.97 seconds
-
-Initiating PH iteration=2
-Number of discrete variables fixed=0 (total=75)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 163090.9000 Max-Min= 0.00
-Converger=Normalized term diff value is 0.0000 - threshold reached=True
-Cumulative run-time=8.14 seconds
-
-Number of discrete variables fixed before final plugin calls=0 (total=75)
-Number of continuous variables fixed before final plugin calls=0 (total=0)
-PH complete
-
-Convergence history:
-Converger=Normalized term diff
-Iteration Metric Value
- 0 0.0019
- 1 0.0019
- 2 0.0000
-
-
-Final number of discrete variables fixed=0 (total=75)
-Final number of continuous variables fixed=0 (total=0)
-
-Computing objective inner bound at xhat solution
-
-Computed objective upper bound= 224495.4100
-
-X-hat variable values:
-
- Stage: FirstStage
- (Scenarios: Scenario1 Scenario2 Scenario3 Scenario4 Scenario5 Scenario6 Scenario7 Scenario8 Scenario9 Scenario10 )
- Variable: NumProducedFirstStage
- Index: [3] Values: 34875.0000 34875.0000 34875.0000 34875.0000 34875.0000 34875.0000 34875.0000 34875.0000 34875.0000 34875.0000
-
- Index: [5] Values: 47500.0000 47500.0000 47500.0000 47500.0000 47500.0000 47500.0000 47500.0000 47500.0000 47500.0000 47500.0000
-
- Index: [6] Values: 47250.0000 47250.0000 47250.0000 47250.0000 47250.0000 47250.0000 47250.0000 47250.0000 47250.0000 47250.0000
-
- Index: [8] Values: 43250.0000 43250.0000 43250.0000 43250.0000 43250.0000 43250.0000 43250.0000 43250.0000 43250.0000 43250.0000
-
- Index: [10] Values: 27125.0000 27125.0000 27125.0000 27125.0000 27125.0000 27125.0000 27125.0000 27125.0000 27125.0000 27125.0000
-
- (Scenarios: Scenario1 Scenario2 Scenario3 Scenario4 Scenario5 Scenario6 Scenario7 Scenario8 Scenario9 Scenario10 )
- Variable: NumUnitsCutFirstStage
- Index: [3,1] Values: 2500.0000 2500.0000 2500.0000 2500.0000 2500.0000 2500.0000 2500.0000 2500.0000 2500.0000 2500.0000
-
- Index: [3,2] Values: 7500.0000 7500.0000 7500.0000 7500.0000 7500.0000 7500.0000 7500.0000 7500.0000 7500.0000 7500.0000
-
- Index: [3,3] Values: 12500.0000 12500.0000 12500.0000 12500.0000 12500.0000 12500.0000 12500.0000 12500.0000 12500.0000 12500.0000
-
- Index: [5,4] Values: 10000.0000 10000.0000 10000.0000 10000.0000 10000.0000 10000.0000 10000.0000 10000.0000 10000.0000 10000.0000
-
- Index: [5,5] Values: 35000.0000 35000.0000 35000.0000 35000.0000 35000.0000 35000.0000 35000.0000 35000.0000 35000.0000 35000.0000
-
- Index: [6,6] Values: 25000.0000 25000.0000 25000.0000 25000.0000 25000.0000 25000.0000 25000.0000 25000.0000 25000.0000 25000.0000
-
- Index: [8,7] Values: 15000.0000 15000.0000 15000.0000 15000.0000 15000.0000 15000.0000 15000.0000 15000.0000 15000.0000 15000.0000
-
- Index: [8,8] Values: 12500.0000 12500.0000 12500.0000 12500.0000 12500.0000 12500.0000 12500.0000 12500.0000 12500.0000 12500.0000
-
- Index: [10,9] Values: 12500.0000 12500.0000 12500.0000 12500.0000 12500.0000 12500.0000 12500.0000 12500.0000 12500.0000 12500.0000
-
- Index: [10,10] Values: 5000.0000 5000.0000 5000.0000 5000.0000 5000.0000 5000.0000 5000.0000 5000.0000 5000.0000 5000.0000
-
- (Scenarios: Scenario1 Scenario2 Scenario3 Scenario4 Scenario5 Scenario6 Scenario7 Scenario8 Scenario9 Scenario10 )
- Variable: ProduceSizeFirstStage
- Index: [3] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [5] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [6] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [8] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [10] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: Scenario1 Scenario2 Scenario3 Scenario4 Scenario5 Scenario6 Scenario7 Scenario8 Scenario9 Scenario10 )
- Values: 163090.9000 163090.9000 163090.9000 163090.9000 163090.9000 163090.9000 163090.9000 163090.9000 163090.9000 163090.9000 Max-Min: 0.0000 Avg: 163090.9000
-
-X-hat costs:
-
-Scenario Tree Costs
-----------------------------------------------------
-Tree Nodes:
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- Scenario10Node
- Scenario1Node
- Scenario2Node
- Scenario3Node
- Scenario4Node
- Scenario5Node
- Scenario6Node
- Scenario7Node
- Scenario8Node
- Scenario9Node
- Scenarios:
- Scenario1
- Scenario10
- Scenario2
- Scenario3
- Scenario4
- Scenario5
- Scenario6
- Scenario7
- Scenario8
- Scenario9
- Expected cost of (sub)tree rooted at node=224495.4100
-
- Name=Scenario10Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario10
- Expected cost of (sub)tree rooted at node=116797.5999
-
- Name=Scenario1Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario1
- Expected cost of (sub)tree rooted at node= 6527.3000
-
- Name=Scenario2Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario2
- Expected cost of (sub)tree rooted at node=16981.6000
-
- Name=Scenario3Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario3
- Expected cost of (sub)tree rooted at node=28026.8000
-
- Name=Scenario4Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario4
- Expected cost of (sub)tree rooted at node=39078.0001
-
- Name=Scenario5Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario5
- Expected cost of (sub)tree rooted at node=50162.6000
-
- Name=Scenario6Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario6
- Expected cost of (sub)tree rooted at node=72509.2000
-
- Name=Scenario7Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario7
- Expected cost of (sub)tree rooted at node=83590.2000
-
- Name=Scenario8Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario8
- Expected cost of (sub)tree rooted at node=94650.9999
-
- Name=Scenario9Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario9
- Expected cost of (sub)tree rooted at node=105720.8000
-
-----------------------------------------------------
-Scenarios:
-
- Name=Scenario1
- Probability=0.1000
- Leaf Node=Scenario1Node
- Tree node sequence:
- RootNode
- Scenario1Node
- Stage= FirstStage Cost=163090.9000
- Stage= SecondStage Cost= 6527.3000
- Total scenario cost=169618.2000
-
- Name=Scenario10
- Probability=0.1000
- Leaf Node=Scenario10Node
- Tree node sequence:
- RootNode
- Scenario10Node
- Stage= FirstStage Cost=163090.9000
- Stage= SecondStage Cost=116797.5999
- Total scenario cost=279888.4999
-
- Name=Scenario2
- Probability=0.1000
- Leaf Node=Scenario2Node
- Tree node sequence:
- RootNode
- Scenario2Node
- Stage= FirstStage Cost=163090.9000
- Stage= SecondStage Cost=16981.6000
- Total scenario cost=180072.5000
-
- Name=Scenario3
- Probability=0.1000
- Leaf Node=Scenario3Node
- Tree node sequence:
- RootNode
- Scenario3Node
- Stage= FirstStage Cost=163090.9000
- Stage= SecondStage Cost=28026.8000
- Total scenario cost=191117.7000
-
- Name=Scenario4
- Probability=0.1000
- Leaf Node=Scenario4Node
- Tree node sequence:
- RootNode
- Scenario4Node
- Stage= FirstStage Cost=163090.9000
- Stage= SecondStage Cost=39078.0001
- Total scenario cost=202168.9001
-
- Name=Scenario5
- Probability=0.1000
- Leaf Node=Scenario5Node
- Tree node sequence:
- RootNode
- Scenario5Node
- Stage= FirstStage Cost=163090.9000
- Stage= SecondStage Cost=50162.6000
- Total scenario cost=213253.5000
-
- Name=Scenario6
- Probability=0.1000
- Leaf Node=Scenario6Node
- Tree node sequence:
- RootNode
- Scenario6Node
- Stage= FirstStage Cost=163090.9000
- Stage= SecondStage Cost=72509.2000
- Total scenario cost=235600.1000
-
- Name=Scenario7
- Probability=0.1000
- Leaf Node=Scenario7Node
- Tree node sequence:
- RootNode
- Scenario7Node
- Stage= FirstStage Cost=163090.9000
- Stage= SecondStage Cost=83590.2000
- Total scenario cost=246681.1000
-
- Name=Scenario8
- Probability=0.1000
- Leaf Node=Scenario8Node
- Tree node sequence:
- RootNode
- Scenario8Node
- Stage= FirstStage Cost=163090.9000
- Stage= SecondStage Cost=94650.9999
- Total scenario cost=257741.8999
-
- Name=Scenario9
- Probability=0.1000
- Leaf Node=Scenario9Node
- Tree node sequence:
- RootNode
- Scenario9Node
- Stage= FirstStage Cost=163090.9000
- Stage= SecondStage Cost=105720.8000
- Total scenario cost=268811.7000
-
-----------------------------------------------------
-
-
-Total PH execution time=9.02 seconds
-
-
-Total execution time=9.54 seconds
diff --git a/pyomo/pysp/tests/unit/baselines/sizes10_quadratic_twobundles_gurobi_darwin.baseline b/pyomo/pysp/tests/unit/baselines/sizes10_quadratic_twobundles_gurobi_darwin.baseline
deleted file mode 100644
index 55fac16d631..00000000000
--- a/pyomo/pysp/tests/unit/baselines/sizes10_quadratic_twobundles_gurobi_darwin.baseline
+++ /dev/null
@@ -1,341 +0,0 @@
-Initializing PH
-
-Starting PH
-
-Initiating PH iteration=0
-Number of discrete variables fixed=0 (total=75)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 163090.9000 Max-Min= 85.80
-Converger=Normalized term diff value is 0.0019 - threshold reached=False
-Cumulative run-time=1.97 seconds
-
-Initiating PH iteration=1
-Number of discrete variables fixed=0 (total=75)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 163090.9000 Max-Min= 85.80
-Converger=Normalized term diff value is 0.0019 - threshold reached=False
-Cumulative run-time=2.41 seconds
-
-Initiating PH iteration=2
-Number of discrete variables fixed=0 (total=75)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 163090.9000 Max-Min= 0.00
-Converger=Normalized term diff value is 0.0000 - threshold reached=True
-Cumulative run-time=4.05 seconds
-
-Number of discrete variables fixed before final plugin calls=0 (total=75)
-Number of continuous variables fixed before final plugin calls=0 (total=0)
-PH complete
-
-Convergence history:
-Converger=Normalized term diff
-Iteration Metric Value
- 0 0.0019
- 1 0.0019
- 2 0.0000
-
-
-Final number of discrete variables fixed=0 (total=75)
-Final number of continuous variables fixed=0 (total=0)
-
-Computing objective inner bound at xhat solution
-
-Computed objective upper bound= 224495.4100
-
-X-hat variable values:
-
- Stage: FirstStage
- (Scenarios: Scenario1 Scenario2 Scenario3 Scenario4 Scenario5 Scenario6 Scenario7 Scenario8 Scenario9 Scenario10 )
- Variable: NumProducedFirstStage
- Index: [3] Values: 34875.0000 34875.0000 34875.0000 34875.0000 34875.0000 34875.0000 34875.0000 34875.0000 34875.0000 34875.0000
-
- Index: [5] Values: 47500.0000 47500.0000 47500.0000 47500.0000 47500.0000 47500.0000 47500.0000 47500.0000 47500.0000 47500.0000
-
- Index: [6] Values: 47250.0000 47250.0000 47250.0000 47250.0000 47250.0000 47250.0000 47250.0000 47250.0000 47250.0000 47250.0000
-
- Index: [8] Values: 43250.0000 43250.0000 43250.0000 43250.0000 43250.0000 43250.0000 43250.0000 43250.0000 43250.0000 43250.0000
-
- Index: [10] Values: 27125.0000 27125.0000 27125.0000 27125.0000 27125.0000 27125.0000 27125.0000 27125.0000 27125.0000 27125.0000
-
- (Scenarios: Scenario1 Scenario2 Scenario3 Scenario4 Scenario5 Scenario6 Scenario7 Scenario8 Scenario9 Scenario10 )
- Variable: NumUnitsCutFirstStage
- Index: [3,1] Values: 2500.0000 2500.0000 2500.0000 2500.0000 2500.0000 2500.0000 2500.0000 2500.0000 2500.0000 2500.0000
-
- Index: [3,2] Values: 7500.0000 7500.0000 7500.0000 7500.0000 7500.0000 7500.0000 7500.0000 7500.0000 7500.0000 7500.0000
-
- Index: [3,3] Values: 12500.0000 12500.0000 12500.0000 12500.0000 12500.0000 12500.0000 12500.0000 12500.0000 12500.0000 12500.0000
-
- Index: [5,4] Values: 10000.0000 10000.0000 10000.0000 10000.0000 10000.0000 10000.0000 10000.0000 10000.0000 10000.0000 10000.0000
-
- Index: [5,5] Values: 35000.0000 35000.0000 35000.0000 35000.0000 35000.0000 35000.0000 35000.0000 35000.0000 35000.0000 35000.0000
-
- Index: [6,6] Values: 25000.0000 25000.0000 25000.0000 25000.0000 25000.0000 25000.0000 25000.0000 25000.0000 25000.0000 25000.0000
-
- Index: [8,7] Values: 15000.0000 15000.0000 15000.0000 15000.0000 15000.0000 15000.0000 15000.0000 15000.0000 15000.0000 15000.0000
-
- Index: [8,8] Values: 12500.0000 12500.0000 12500.0000 12500.0000 12500.0000 12500.0000 12500.0000 12500.0000 12500.0000 12500.0000
-
- Index: [10,9] Values: 12500.0000 12500.0000 12500.0000 12500.0000 12500.0000 12500.0000 12500.0000 12500.0000 12500.0000 12500.0000
-
- Index: [10,10] Values: 5000.0000 5000.0000 5000.0000 5000.0000 5000.0000 5000.0000 5000.0000 5000.0000 5000.0000 5000.0000
-
- (Scenarios: Scenario1 Scenario2 Scenario3 Scenario4 Scenario5 Scenario6 Scenario7 Scenario8 Scenario9 Scenario10 )
- Variable: ProduceSizeFirstStage
- Index: [3] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [5] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [6] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [8] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Index: [10] Values: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: Scenario1 Scenario2 Scenario3 Scenario4 Scenario5 Scenario6 Scenario7 Scenario8 Scenario9 Scenario10 )
- Values: 163090.9000 163090.9000 163090.9000 163090.9000 163090.9000 163090.9000 163090.9000 163090.9000 163090.9000 163090.9000 Max-Min: 0.0000 Avg: 163090.9000
-
-X-hat costs:
-
-Scenario Tree Costs
-----------------------------------------------------
-Tree Nodes:
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- Scenario10Node
- Scenario1Node
- Scenario2Node
- Scenario3Node
- Scenario4Node
- Scenario5Node
- Scenario6Node
- Scenario7Node
- Scenario8Node
- Scenario9Node
- Scenarios:
- Scenario1
- Scenario10
- Scenario2
- Scenario3
- Scenario4
- Scenario5
- Scenario6
- Scenario7
- Scenario8
- Scenario9
- Expected cost of (sub)tree rooted at node=224495.4100
-
- Name=Scenario10Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario10
- Expected cost of (sub)tree rooted at node=116797.6000
-
- Name=Scenario1Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario1
- Expected cost of (sub)tree rooted at node= 6527.3000
-
- Name=Scenario2Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario2
- Expected cost of (sub)tree rooted at node=16981.6000
-
- Name=Scenario3Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario3
- Expected cost of (sub)tree rooted at node=28026.8000
-
- Name=Scenario4Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario4
- Expected cost of (sub)tree rooted at node=39078.0000
-
- Name=Scenario5Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario5
- Expected cost of (sub)tree rooted at node=50162.6000
-
- Name=Scenario6Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario6
- Expected cost of (sub)tree rooted at node=72509.2000
-
- Name=Scenario7Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario7
- Expected cost of (sub)tree rooted at node=83590.2000
-
- Name=Scenario8Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario8
- Expected cost of (sub)tree rooted at node=94651.0000
-
- Name=Scenario9Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.1000
- Children:
- None
- Scenarios:
- Scenario9
- Expected cost of (sub)tree rooted at node=105720.8000
-
-----------------------------------------------------
-Scenarios:
-
- Name=Scenario1
- Probability=0.1000
- Leaf Node=Scenario1Node
- Tree node sequence:
- RootNode
- Scenario1Node
- Stage= FirstStage Cost=163090.9000
- Stage= SecondStage Cost= 6527.3000
- Total scenario cost=169618.2000
-
- Name=Scenario10
- Probability=0.1000
- Leaf Node=Scenario10Node
- Tree node sequence:
- RootNode
- Scenario10Node
- Stage= FirstStage Cost=163090.9000
- Stage= SecondStage Cost=116797.6000
- Total scenario cost=279888.5000
-
- Name=Scenario2
- Probability=0.1000
- Leaf Node=Scenario2Node
- Tree node sequence:
- RootNode
- Scenario2Node
- Stage= FirstStage Cost=163090.9000
- Stage= SecondStage Cost=16981.6000
- Total scenario cost=180072.5000
-
- Name=Scenario3
- Probability=0.1000
- Leaf Node=Scenario3Node
- Tree node sequence:
- RootNode
- Scenario3Node
- Stage= FirstStage Cost=163090.9000
- Stage= SecondStage Cost=28026.8000
- Total scenario cost=191117.7000
-
- Name=Scenario4
- Probability=0.1000
- Leaf Node=Scenario4Node
- Tree node sequence:
- RootNode
- Scenario4Node
- Stage= FirstStage Cost=163090.9000
- Stage= SecondStage Cost=39078.0000
- Total scenario cost=202168.9000
-
- Name=Scenario5
- Probability=0.1000
- Leaf Node=Scenario5Node
- Tree node sequence:
- RootNode
- Scenario5Node
- Stage= FirstStage Cost=163090.9000
- Stage= SecondStage Cost=50162.6000
- Total scenario cost=213253.5000
-
- Name=Scenario6
- Probability=0.1000
- Leaf Node=Scenario6Node
- Tree node sequence:
- RootNode
- Scenario6Node
- Stage= FirstStage Cost=163090.9000
- Stage= SecondStage Cost=72509.2000
- Total scenario cost=235600.1000
-
- Name=Scenario7
- Probability=0.1000
- Leaf Node=Scenario7Node
- Tree node sequence:
- RootNode
- Scenario7Node
- Stage= FirstStage Cost=163090.9000
- Stage= SecondStage Cost=83590.2000
- Total scenario cost=246681.1000
-
- Name=Scenario8
- Probability=0.1000
- Leaf Node=Scenario8Node
- Tree node sequence:
- RootNode
- Scenario8Node
- Stage= FirstStage Cost=163090.9000
- Stage= SecondStage Cost=94651.0000
- Total scenario cost=257741.9000
-
- Name=Scenario9
- Probability=0.1000
- Leaf Node=Scenario9Node
- Tree node sequence:
- RootNode
- Scenario9Node
- Stage= FirstStage Cost=163090.9000
- Stage= SecondStage Cost=105720.8000
- Total scenario cost=268811.7000
-
-----------------------------------------------------
-
-
-Total PH execution time=4.32 seconds
-
-
-Total execution time=4.50 seconds
diff --git a/pyomo/pysp/tests/unit/baselines/sizes3_ef.baseline.lp.gz b/pyomo/pysp/tests/unit/baselines/sizes3_ef.baseline.lp.gz
deleted file mode 100644
index ba463026e1f..00000000000
Binary files a/pyomo/pysp/tests/unit/baselines/sizes3_ef.baseline.lp.gz and /dev/null differ
diff --git a/pyomo/pysp/tests/unit/baselines/sizes3_ef.baseline.txt b/pyomo/pysp/tests/unit/baselines/sizes3_ef.baseline.txt
deleted file mode 100644
index 445e06b2ef4..00000000000
--- a/pyomo/pysp/tests/unit/baselines/sizes3_ef.baseline.txt
+++ /dev/null
@@ -1,175 +0,0 @@
-Importing model and scenario tree files
-Time to import model and scenario tree structure files=0.01 seconds
-Scenario Tree Detail
-----------------------------------------------------
-Tree Nodes:
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- Scenario1Node
- Scenario2Node
- Scenario3Node
- Scenarios:
- Scenario1
- Scenario2
- Scenario3
-
- Name=Scenario1Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- Scenario1
-
- Name=Scenario2Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- Scenario2
-
- Name=Scenario3Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- Scenario3
-
-----------------------------------------------------
-Stages:
- Name=FirstStage
- Tree Nodes:
- RootNode
- Variables:
- NumProducedFirstStage : [*]
- NumUnitsCutFirstStage : [*,*]
- Derived Variables:
- ProduceSizeFirstStage : [*]
- Cost Variable:
- FirstStageCost
-
- Name=SecondStage
- Tree Nodes:
- Scenario1Node
- Scenario2Node
- Scenario3Node
- Variables:
- NumProducedSecondStage : [*]
- NumUnitsCutSecondStage : [*,*]
- Derived Variables:
- ProduceSizeSecondStage : [*]
- Cost Variable:
- SecondStageCost
-
-----------------------------------------------------
-Scenarios:
- Name=Scenario1
- Probability=0.3333
- Leaf node=Scenario1Node
- Tree node sequence:
- RootNode
- Scenario1Node
-
- Name=Scenario2
- Probability=0.3333
- Leaf node=Scenario2Node
- Tree node sequence:
- RootNode
- Scenario2Node
-
- Name=Scenario3
- Probability=0.3333
- Leaf node=Scenario3Node
- Tree node sequence:
- RootNode
- Scenario3Node
-
-----------------------------------------------------
-Scenario tree is valid!
-Initializing ScenarioTreeManagerClientSerial with options:
- * verbose: True
- - disable_gc: False
- - profile: 0
- - traceback: False
- - output_scenario_tree_solution: False
- - solution_saver_extension: ()
- - solution_loader_extension: ()
- - solution_writer: ()
- * output_file: /home/jwatson/sp/pyomo/pyomo/pyomo/pysp/tests/unit/test_sizes3_ef.lp
- - solve: False
- - output_scenario_costs: None
- - output_instance_construction_time: False
- - compile_scenario_instances: False
- - output_times: False
- * model_location: /home/jwatson/sp/pyomo/pyomo/examples/pysp/sizes/models
- - model_directory: None (DEPRECATED)
- * scenario_tree_location: /home/jwatson/sp/pyomo/pyomo/examples/pysp/sizes/SIZES3
- - instance_directory: None (DEPRECATED)
- - objective_sense_stage_based: None
- - postinit_callback_location: ()
- - bounds_cfgfile: None (DEPRECATED)
- - aggregategetter_callback_location: ()
- - aggregate_cfgfile: None (DEPRECATED)
- - scenario_tree_random_seed: None
- - scenario_tree_seed: None (DEPRECATED)
- - scenario_tree_downsample_fraction: 1.0
- - scenario_bundle_specification: None
- - create_random_bundles: 0
- - profile_memory: 0
- - cvar_weight: 1.0
- - generate_weighted_cvar: False
- - risk_alpha: 0.95
- - cc_alpha: 0.0
- - cc_indicator_var: None
- - mipgap: None
- - solver: cplex
- - solver_io: None
- - solver_manager: serial
- - solver_options: ()
- - disable_warmstart: False
- - pyro_host: None
- - pyro_port: None
- - pyro_shutdown: False
- - shutdown_pyro: None (DEPRECATED)
- - output_solver_results: False
- * symbolic_solver_labels: True
- - output_solver_log: False
- - keep_solver_files: False
- - pyro_shutdown_workers: False
- - shutdown_pyro_workers: None (DEPRECATED)
- - activate_jsonio_solution_saver: None
-
-Constructing scenario tree instances
-Scenario-based instance initialization enabled
-Creating instance for scenario=Scenario1
-Data for scenario=Scenario1 loads from file=/home/jwatson/sp/pyomo/pyomo/examples/pysp/sizes/SIZES3/Scenario1.dat
-Creating instance for scenario=Scenario2
-Data for scenario=Scenario2 loads from file=/home/jwatson/sp/pyomo/pyomo/examples/pysp/sizes/SIZES3/Scenario2.dat
-Creating instance for scenario=Scenario3
-Data for scenario=Scenario3 loads from file=/home/jwatson/sp/pyomo/pyomo/examples/pysp/sizes/SIZES3/Scenario3.dat
-Time to construct scenario instances=0.59 seconds
-Linking instances into scenario tree
-Time link scenario tree with instances=0.01 seconds
-ScenarioTreeManagerClientSerial is successfully initialized
-Overall initialization time=0.61 seconds
-
-Initializing extensive form algorithm for stochastic programming problems.
-Creating extensive form instance
-Creating variables for master binding instance
-Time to construct extensive form instance=0.01 seconds
-Starting to write extensive form
-Extensive form written to file=/home/jwatson/sp/pyomo/pyomo/pyomo/pysp/tests/unit/test_sizes3_ef.lp
-Time to write output file=0.06 seconds
-Closing ScenarioTreeManagerClientSerial
-
-Total EF execution time=0.69 seconds
-
diff --git a/pyomo/pysp/tests/unit/baselines/sizes3_ef_with_solve_cplex.baseline-a b/pyomo/pysp/tests/unit/baselines/sizes3_ef_with_solve_cplex.baseline-a
deleted file mode 100644
index e829b82fc70..00000000000
--- a/pyomo/pysp/tests/unit/baselines/sizes3_ef_with_solve_cplex.baseline-a
+++ /dev/null
@@ -1,398 +0,0 @@
-Time to import model and scenario tree structure files=0.01 seconds
-Scenario Tree Detail
-----------------------------------------------------
-Tree Nodes:
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- Scenario1Node
- Scenario2Node
- Scenario3Node
- Scenarios:
- Scenario1
- Scenario2
- Scenario3
-
- Name=Scenario1Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- Scenario1
-
- Name=Scenario2Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- Scenario2
-
- Name=Scenario3Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- Scenario3
-
-----------------------------------------------------
-Stages:
- Name=FirstStage
- Tree Nodes:
- RootNode
- Variables:
- NumProducedFirstStage : [*]
- NumUnitsCutFirstStage : [*,*]
- Derived Variables:
- ProduceSizeFirstStage : [*]
- Cost Variable:
- FirstStageCost
-
- Name=SecondStage
- Tree Nodes:
- Scenario1Node
- Scenario2Node
- Scenario3Node
- Variables:
- NumProducedSecondStage : [*]
- NumUnitsCutSecondStage : [*,*]
- Derived Variables:
- ProduceSizeSecondStage : [*]
- Cost Variable:
- SecondStageCost
-
-----------------------------------------------------
-Scenarios:
- Name=Scenario1
- Probability=0.3333
- Leaf node=Scenario1Node
- Tree node sequence:
- RootNode
- Scenario1Node
-
- Name=Scenario2
- Probability=0.3333
- Leaf node=Scenario2Node
- Tree node sequence:
- RootNode
- Scenario2Node
-
- Name=Scenario3
- Probability=0.3333
- Leaf node=Scenario3Node
- Tree node sequence:
- RootNode
- Scenario3Node
-
-----------------------------------------------------
-Scenario tree is valid!
-Initializing ScenarioTreeManagerClientSerial with options:
- * verbose: True
- - disable_gc: False
- - profile: 0
- - traceback: False
- - output_scenario_tree_solution: False
- - solution_saver_extension: ()
- - solution_loader_extension: ()
- - solution_writer: ()
- * output_file: /home/hudson/slave/workspace/Pyomo_trunk_python2.6/src/pyomo/pyomo/pysp/tests/unit/test_sizes3_ef.lp
- * solve: True
- - output_scenario_costs: None
- - output_instance_construction_time: False
- - compile_scenario_instances: False
- - output_times: False
- * model_location: /home/hudson/slave/workspace/Pyomo_trunk_python2.6/src/pyomo/examples/pysp/sizes/models
- - model_directory: None (DEPRECATED)
- * scenario_tree_location: /home/hudson/slave/workspace/Pyomo_trunk_python2.6/src/pyomo/examples/pysp/sizes/SIZES3
- - instance_directory: None (DEPRECATED)
- - objective_sense_stage_based: None
- - postinit_callback_location: ()
- - bounds_cfgfile: None (DEPRECATED)
- - aggregategetter_callback_location: ()
- - aggregate_cfgfile: None (DEPRECATED)
- - scenario_tree_random_seed: None
- - scenario_tree_seed: None (DEPRECATED)
- - scenario_tree_downsample_fraction: 1.0
- - scenario_bundle_specification: None
- - create_random_bundles: 0
- - profile_memory: 0
- - cvar_weight: 1.0
- - generate_weighted_cvar: False
- - risk_alpha: 0.95
- - cc_alpha: 0.0
- - cc_indicator_var: None
- - mipgap: None
- * solver: cplex
- - solver_io: None
- - solver_manager: serial
- - solver_options: ()
- - disable_warmstart: False
- - pyro_host: None
- - pyro_port: None
- - pyro_shutdown: False
- - shutdown_pyro: None (DEPRECATED)
- - output_solver_results: False
- - symbolic_solver_labels: False
- - output_solver_log: False
- - keep_solver_files: False
- - pyro_shutdown_workers: False
- - shutdown_pyro_workers: None (DEPRECATED)
- - activate_jsonio_solution_saver: None
-
-Constructing scenario tree instances
-Scenario-based instance initialization enabled
-Creating instance for scenario=Scenario1
-Data for scenario=Scenario1 loads from file=/home/hudson/slave/workspace/Pyomo_trunk_python2.6/src/pyomo/examples/pysp/sizes/SIZES3/Scenario1.dat
-Creating instance for scenario=Scenario2
-Data for scenario=Scenario2 loads from file=/home/hudson/slave/workspace/Pyomo_trunk_python2.6/src/pyomo/examples/pysp/sizes/SIZES3/Scenario2.dat
-Creating instance for scenario=Scenario3
-Data for scenario=Scenario3 loads from file=/home/hudson/slave/workspace/Pyomo_trunk_python2.6/src/pyomo/examples/pysp/sizes/SIZES3/Scenario3.dat
-Time to construct scenario instances=0.05 seconds
-Linking instances into scenario tree
-Time link scenario tree with instances=0.01 seconds
-ScenarioTreeManagerClientSerial is successfully initialized
-Overall initialization time=0.06 seconds
-
-Initializing extensive form algorithm for stochastic programming problems.
-Creating extensive form instance
-Creating variables for master binding instance
-Time to construct extensive form instance=0.01 seconds
-Starting to write extensive form
-Extensive form written to file=/home/hudson/slave/workspace/Pyomo_trunk_python2.6/src/pyomo/pyomo/pysp/tests/unit/test_sizes3_ef.lp
-Time to write output file=0.05 seconds
-Queuing extensive form solve
-Waiting for extensive form solve
-Done with extensive form solve - loading results
-Storing solution in scenario tree
-Time to solve and load results for the extensive form=1.02 seconds
-EF solve completed and solution status is optimal
-EF solve termination condition is optimal
-EF objective: 224276.66670
-EF gap: 21.01230
-EF bound: 224255.65440
-
-Extensive form solution:
-----------------------------------------------------
-Tree Nodes:
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Variables:
- NumProducedFirstStage[3]=38250.0
- NumProducedFirstStage[5]=44999.9999998
- NumProducedFirstStage[6]=49000.0000002
- NumProducedFirstStage[8]=43749.9999999
- NumProducedFirstStage[10]=24000.0
- NumUnitsCutFirstStage[3,1]=2500.0
- NumUnitsCutFirstStage[3,2]=7500.0
- NumUnitsCutFirstStage[3,3]=12500.0
- NumUnitsCutFirstStage[5,4]=10000.0
- NumUnitsCutFirstStage[5,5]=35000.0
- NumUnitsCutFirstStage[6,6]=25000.0
- NumUnitsCutFirstStage[8,7]=15000.0
- NumUnitsCutFirstStage[8,8]=12500.0
- NumUnitsCutFirstStage[10,9]=12500.0
- NumUnitsCutFirstStage[10,10]=5000.0
- Derived Variables:
- ProduceSizeFirstStage[1]=0.0
- ProduceSizeFirstStage[2]=0.0
- ProduceSizeFirstStage[3]=1.0
- ProduceSizeFirstStage[4]=3.28922074433e-13
- ProduceSizeFirstStage[5]=1.0
- ProduceSizeFirstStage[6]=1.0
- ProduceSizeFirstStage[7]=7.27714185208e-13
- ProduceSizeFirstStage[8]=1.0
- ProduceSizeFirstStage[9]=-4.85204469438e-13
- ProduceSizeFirstStage[10]=1.0
-
- Name=Scenario1Node
- Stage=SecondStage
- Parent=RootNode
- Variables:
- NumProducedSecondStage[5]=24999.9999999
- NumProducedSecondStage[9]=8749.99999998
- NumUnitsCutSecondStage[3,1]=1750.0
- NumUnitsCutSecondStage[3,2]=5250.0
- NumUnitsCutSecondStage[3,3]=8750.00000003
- NumUnitsCutSecondStage[5,4]=499.999999754
- NumUnitsCutSecondStage[5,5]=24500.0
- NumUnitsCutSecondStage[6,4]=6500.00000024
- NumUnitsCutSecondStage[6,6]=17500.0
- NumUnitsCutSecondStage[8,7]=7500.00000002
- NumUnitsCutSecondStage[8,8]=8750.0
- NumUnitsCutSecondStage[9,9]=8749.99999998
- NumUnitsCutSecondStage[10,7]=2999.99999997
- NumUnitsCutSecondStage[10,10]=3500.0
- Derived Variables:
- ProduceSizeSecondStage[1]=0.0
- ProduceSizeSecondStage[2]=0.0
- ProduceSizeSecondStage[3]=0.0
- ProduceSizeSecondStage[4]=-4.67193261625e-13
- ProduceSizeSecondStage[5]=1.0
- ProduceSizeSecondStage[6]=0.0
- ProduceSizeSecondStage[7]=0.0
- ProduceSizeSecondStage[8]=2.57247001478e-12
- ProduceSizeSecondStage[9]=1.0
- ProduceSizeSecondStage[10]=0.0
-
- Name=Scenario2Node
- Stage=SecondStage
- Parent=RootNode
- Variables:
- NumProducedSecondStage[5]=51750.0000001
- NumProducedSecondStage[9]=23249.9999999
- NumUnitsCutSecondStage[3,2]=3250.00000003
- NumUnitsCutSecondStage[3,3]=12500.0
- NumUnitsCutSecondStage[5,1]=2500.0
- NumUnitsCutSecondStage[5,2]=4249.99999997
- NumUnitsCutSecondStage[5,4]=10000.0
- NumUnitsCutSecondStage[5,5]=35000.0
- NumUnitsCutSecondStage[6,6]=24000.0000002
- NumUnitsCutSecondStage[8,6]=999.999999758
- NumUnitsCutSecondStage[8,7]=2750.00000013
- NumUnitsCutSecondStage[8,8]=12500.0
- NumUnitsCutSecondStage[9,7]=10749.9999999
- NumUnitsCutSecondStage[9,9]=12500.0
- NumUnitsCutSecondStage[10,7]=1500.0
- NumUnitsCutSecondStage[10,10]=5000.0
- Derived Variables:
- ProduceSizeSecondStage[1]=0.0
- ProduceSizeSecondStage[2]=0.0
- ProduceSizeSecondStage[3]=0.0
- ProduceSizeSecondStage[4]=0.0
- ProduceSizeSecondStage[5]=1.0
- ProduceSizeSecondStage[6]=0.0
- ProduceSizeSecondStage[7]=0.0
- ProduceSizeSecondStage[8]=0.0
- ProduceSizeSecondStage[9]=1.0
- ProduceSizeSecondStage[10]=0.0
-
- Name=Scenario3Node
- Stage=SecondStage
- Parent=RootNode
- Variables:
- NumProducedSecondStage[2]=13000.0
- NumProducedSecondStage[5]=59000.0000001
- NumProducedSecondStage[7]=27999.9999997
- NumProducedSecondStage[9]=16250.0
- NumUnitsCutSecondStage[2,1]=3250.0
- NumUnitsCutSecondStage[2,2]=9750.0
- NumUnitsCutSecondStage[3,3]=15750.0
- NumUnitsCutSecondStage[5,3]=499.999999975
- NumUnitsCutSecondStage[5,4]=13000.0
- NumUnitsCutSecondStage[5,5]=45500.0
- NumUnitsCutSecondStage[6,6]=24000.0000002
- NumUnitsCutSecondStage[7,6]=8499.99999976
- NumUnitsCutSecondStage[7,7]=19500.0
- NumUnitsCutSecondStage[8,8]=16249.9999999
- NumUnitsCutSecondStage[9,9]=16249.9999999
- NumUnitsCutSecondStage[10,10]=6500.0
- Derived Variables:
- ProduceSizeSecondStage[1]=0.0
- ProduceSizeSecondStage[2]=1.0
- ProduceSizeSecondStage[3]=0.0
- ProduceSizeSecondStage[4]=0.0
- ProduceSizeSecondStage[5]=1.0
- ProduceSizeSecondStage[6]=0.0
- ProduceSizeSecondStage[7]=1.0
- ProduceSizeSecondStage[8]=0.0
- ProduceSizeSecondStage[9]=1.0
- ProduceSizeSecondStage[10]=3.9719338929e-12
-
-
-Extensive form costs:
-Scenario Tree Costs
-----------------------------------------------------
-Tree Nodes:
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- Scenario1Node
- Scenario2Node
- Scenario3Node
- Scenarios:
- Scenario1
- Scenario2
- Scenario3
- Expected cost of (sub)tree rooted at node=224276.6667
-
- Name=Scenario1Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- Scenario1
- Expected cost of (sub)tree rooted at node=28115.0000
-
- Name=Scenario2Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- Scenario2
- Expected cost of (sub)tree rooted at node=61381.2000
-
- Name=Scenario3Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- Scenario3
- Expected cost of (sub)tree rooted at node=94657.8000
-
-----------------------------------------------------
-Scenarios:
-
- Name=Scenario1
- Probability=0.3333
- Leaf Node=Scenario1Node
- Tree node sequence:
- RootNode
- Scenario1Node
- Stage= FirstStage Cost=162892.0000
- Stage= SecondStage Cost=28115.0000
- Total scenario cost=191007.0000
-
- Name=Scenario2
- Probability=0.3333
- Leaf Node=Scenario2Node
- Tree node sequence:
- RootNode
- Scenario2Node
- Stage= FirstStage Cost=162892.0000
- Stage= SecondStage Cost=61381.2000
- Total scenario cost=224273.2000
-
- Name=Scenario3
- Probability=0.3333
- Leaf Node=Scenario3Node
- Tree node sequence:
- RootNode
- Scenario3Node
- Stage= FirstStage Cost=162892.0000
- Stage= SecondStage Cost=94657.8000
- Total scenario cost=257549.8000
-
-----------------------------------------------------
-Closing ScenarioTreeManagerClientSerial
-
-Total EF execution time=1.16 seconds
-
diff --git a/pyomo/pysp/tests/unit/baselines/sizes3_ef_with_solve_cplex.baseline-b b/pyomo/pysp/tests/unit/baselines/sizes3_ef_with_solve_cplex.baseline-b
deleted file mode 100755
index ff1c501543a..00000000000
--- a/pyomo/pysp/tests/unit/baselines/sizes3_ef_with_solve_cplex.baseline-b
+++ /dev/null
@@ -1,397 +0,0 @@
-Scenario Tree Detail
-----------------------------------------------------
-Tree Nodes:
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- Scenario1Node
- Scenario2Node
- Scenario3Node
- Scenarios:
- Scenario1
- Scenario2
- Scenario3
-
- Name=Scenario1Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- Scenario1
-
- Name=Scenario2Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- Scenario2
-
- Name=Scenario3Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- Scenario3
-
-----------------------------------------------------
-Stages:
- Name=FirstStage
- Tree Nodes:
- RootNode
- Variables:
- NumProducedFirstStage : [*]
- NumUnitsCutFirstStage : [*,*]
- Derived Variables:
- ProduceSizeFirstStage : [*]
- Cost Variable:
- FirstStageCost
-
- Name=SecondStage
- Tree Nodes:
- Scenario1Node
- Scenario2Node
- Scenario3Node
- Variables:
- NumProducedSecondStage : [*]
- NumUnitsCutSecondStage : [*,*]
- Derived Variables:
- ProduceSizeSecondStage : [*]
- Cost Variable:
- SecondStageCost
-
-----------------------------------------------------
-Scenarios:
- Name=Scenario1
- Probability=0.3333
- Leaf node=Scenario1Node
- Tree node sequence:
- RootNode
- Scenario1Node
-
- Name=Scenario2
- Probability=0.3333
- Leaf node=Scenario2Node
- Tree node sequence:
- RootNode
- Scenario2Node
-
- Name=Scenario3
- Probability=0.3333
- Leaf node=Scenario3Node
- Tree node sequence:
- RootNode
- Scenario3Node
-
-----------------------------------------------------
-Scenario tree is valid!
-Initializing ScenarioTreeManagerClientSerial with options:
- * verbose: True
- - disable_gc: False
- - profile: 0
- - traceback: False
- - output_scenario_tree_solution: False
- - solution_saver_extension: ()
- - solution_loader_extension: ()
- - solution_writer: ()
- * output_file: /Users/ghackebeil/Projects/pyomo/src/pyomo/pyomo/pysp/tests/unit/test_sizes3_ef.lp
- * solve: True
- - output_scenario_costs: None
- - output_instance_construction_time: False
- - compile_scenario_instances: False
- - output_times: False
- * model_location: /Users/ghackebeil/Projects/pyomo/src/pyomo/examples/pysp/sizes/models
- - model_directory: None (DEPRECATED)
- * scenario_tree_location: /Users/ghackebeil/Projects/pyomo/src/pyomo/examples/pysp/sizes/SIZES3
- - instance_directory: None (DEPRECATED)
- - objective_sense_stage_based: None
- - postinit_callback_location: ()
- - bounds_cfgfile: None (DEPRECATED)
- - aggregategetter_callback_location: ()
- - aggregate_cfgfile: None (DEPRECATED)
- - scenario_tree_random_seed: None
- - scenario_tree_seed: None (DEPRECATED)
- - scenario_tree_downsample_fraction: 1.0
- - scenario_bundle_specification: None
- - create_random_bundles: 0
- - profile_memory: 0
- - cvar_weight: 1.0
- - generate_weighted_cvar: False
- - risk_alpha: 0.95
- - cc_alpha: 0.0
- - cc_indicator_var: None
- - mipgap: None
- * solver: cplex
- - solver_io: None
- - solver_manager: serial
- - solver_options: ()
- - disable_warmstart: False
- - pyro_host: None
- - pyro_port: None
- - pyro_shutdown: False
- - shutdown_pyro: None (DEPRECATED)
- - output_solver_results: False
- - symbolic_solver_labels: False
- - output_solver_log: False
- - keep_solver_files: False
- - pyro_shutdown_workers: False
- - shutdown_pyro_workers: None (DEPRECATED)
- - activate_jsonio_solution_saver: None
-
-Constructing scenario tree instances
-Scenario-based instance initialization enabled
-Creating instance for scenario=Scenario1
-Data for scenario=Scenario1 loads from file=/home/hudson/slave/workspace/Pyomo_trunk_python3.4_snotra_expensive/src/pyomo/examples/pysp/sizes/SIZES3/Scenario1.dat
-Creating instance for scenario=Scenario2
-Data for scenario=Scenario2 loads from file=/home/hudson/slave/workspace/Pyomo_trunk_python3.4_snotra_expensive/src/pyomo/examples/pysp/sizes/SIZES3/Scenario2.dat
-Creating instance for scenario=Scenario3
-Data for scenario=Scenario3 loads from file=/home/hudson/slave/workspace/Pyomo_trunk_python3.4_snotra_expensive/src/pyomo/examples/pysp/sizes/SIZES3/Scenario3.dat
-Time to construct scenario instances=0.10 seconds
-Linking instances into scenario tree
-Time link scenario tree with instances=0.00 seconds
-ScenarioTreeManagerClientSerial is successfully initialized
-Overall initialization time=0.03 seconds
-
-Initializing extensive form algorithm for stochastic programming problems.
-Creating extensive form instance
-Creating variables for master binding instance
-Time to construct extensive form instance=0.02 seconds
-Starting to write extensive form
-Extensive form written to file=/Users/ghackebeil/Projects/pyomo/src/pyomo/pyomo/pysp/tests/unit/test_sizes3_ef.lp
-Time to write output file=0.02 seconds
-Queuing extensive form solve
-Waiting for extensive form solve
-Done with extensive form solve - loading results
-Storing solution in scenario tree
-EF solve completed and solve status is optimal
-Time to solve and load results for the extensive form=1.24 seconds
-
-***********************************************************************************************
->>>THE EXPECTED SUM OF THE STAGE COST VARIABLES=224276.6667<<<
-***********************************************************************************************
-
-Extensive form solution:
-----------------------------------------------------
-Tree Nodes:
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Variables:
- NumProducedFirstStage[3]=38250.0000000294
- NumProducedFirstStage[5]=44999.9999998301
- NumProducedFirstStage[6]=49000.0000002425
- NumProducedFirstStage[8]=43749.9999999004
- NumProducedFirstStage[10]=23999.9999999972
- NumUnitsCutFirstStage[3,1]=2500.0
- NumUnitsCutFirstStage[3,2]=7500.0
- NumUnitsCutFirstStage[3,3]=12500.0
- NumUnitsCutFirstStage[5,4]=10000.0
- NumUnitsCutFirstStage[5,5]=35000.0
- NumUnitsCutFirstStage[6,6]=25000.0
- NumUnitsCutFirstStage[8,7]=14999.9999999891
- NumUnitsCutFirstStage[8,8]=12500.000000009102
- NumUnitsCutFirstStage[10,9]=12500.000000009102
- NumUnitsCutFirstStage[10,10]=5000.0
- Derived Variables:
- ProduceSizeFirstStage[1]=0.0
- ProduceSizeFirstStage[2]=0.0
- ProduceSizeFirstStage[3]=1.0000000000004834
- ProduceSizeFirstStage[4]=3.2892207443335756e-13
- ProduceSizeFirstStage[5]=1.0
- ProduceSizeFirstStage[6]=1.0
- ProduceSizeFirstStage[7]=7.27714185208268e-13
- ProduceSizeFirstStage[8]=1.000000000000244
- ProduceSizeFirstStage[9]=-4.852044694380054e-13
- ProduceSizeFirstStage[10]=1.0
-
- Name=Scenario1Node
- Stage=SecondStage
- Parent=RootNode
- Variables:
- NumProducedSecondStage[5]=24999.999999923795
- NumProducedSecondStage[9]=8749.99999998181
- NumUnitsCutSecondStage[3,1]=1750.00000000255
- NumUnitsCutSecondStage[3,2]=5249.99999999745
- NumUnitsCutSecondStage[3,3]=8750.00000002945
- NumUnitsCutSecondStage[5,4]=499.99999975388795
- NumUnitsCutSecondStage[5,5]=24500.0
- NumUnitsCutSecondStage[6,4]=6500.00000024247
- NumUnitsCutSecondStage[6,6]=17500.0
- NumUnitsCutSecondStage[8,7]=7500.000000022459
- NumUnitsCutSecondStage[8,8]=8750.0
- NumUnitsCutSecondStage[9,9]=8749.99999998181
- NumUnitsCutSecondStage[10,7]=2999.9999999699
- NumUnitsCutSecondStage[10,10]=3500.0000000000005
- Derived Variables:
- ProduceSizeSecondStage[1]=0.0
- ProduceSizeSecondStage[2]=0.0
- ProduceSizeSecondStage[3]=0.0
- ProduceSizeSecondStage[4]=-4.67193261624903e-13
- ProduceSizeSecondStage[5]=1.0
- ProduceSizeSecondStage[6]=0.0
- ProduceSizeSecondStage[7]=0.0
- ProduceSizeSecondStage[8]=2.57247001478333e-12
- ProduceSizeSecondStage[9]=1.0
- ProduceSizeSecondStage[10]=0.0
-
- Name=Scenario2Node
- Stage=SecondStage
- Parent=RootNode
- Variables:
- NumProducedSecondStage[5]=51750.0000001404
- NumProducedSecondStage[9]=23249.9999998596
- NumUnitsCutSecondStage[3,2]=3250.00000002945
- NumUnitsCutSecondStage[3,3]=12499.999999999998
- NumUnitsCutSecondStage[5,1]=2500.0
- NumUnitsCutSecondStage[5,2]=4249.99999997055
- NumUnitsCutSecondStage[5,4]=10000.0
- NumUnitsCutSecondStage[5,5]=35000.0
- NumUnitsCutSecondStage[6,6]=24000.0000002425
- NumUnitsCutSecondStage[8,6]=999.99999975754
- NumUnitsCutSecondStage[8,7]=2750.00000013073
- NumUnitsCutSecondStage[8,8]=12500.0000000139
- NumUnitsCutSecondStage[9,7]=10749.9999998596
- NumUnitsCutSecondStage[9,9]=12499.999999999998
- NumUnitsCutSecondStage[10,7]=1500.00000000203
- NumUnitsCutSecondStage[10,10]=5000.0
- Derived Variables:
- ProduceSizeSecondStage[1]=0.0
- ProduceSizeSecondStage[2]=0.0
- ProduceSizeSecondStage[3]=0.0
- ProduceSizeSecondStage[4]=0.0
- ProduceSizeSecondStage[5]=1.0
- ProduceSizeSecondStage[6]=0.0
- ProduceSizeSecondStage[7]=0.0
- ProduceSizeSecondStage[8]=0.0
- ProduceSizeSecondStage[9]=1.0
- ProduceSizeSecondStage[10]=0.0
-
- Name=Scenario3Node
- Stage=SecondStage
- Parent=RootNode
- Variables:
- NumProducedSecondStage[2]=12999.9999999954
- NumProducedSecondStage[5]=59000.000000145
- NumProducedSecondStage[7]=27999.999999749904
- NumProducedSecondStage[9]=16250.0
- NumUnitsCutSecondStage[2,1]=3250.0
- NumUnitsCutSecondStage[2,2]=9749.99999999539
- NumUnitsCutSecondStage[3,3]=15750.0000000294
- NumUnitsCutSecondStage[5,3]=499.999999975164
- NumUnitsCutSecondStage[5,4]=13000.0
- NumUnitsCutSecondStage[5,5]=45500.0
- NumUnitsCutSecondStage[6,6]=24000.0000002425
- NumUnitsCutSecondStage[7,6]=8499.99999975754
- NumUnitsCutSecondStage[7,7]=19500.0
- NumUnitsCutSecondStage[8,8]=16249.9999999022
- NumUnitsCutSecondStage[9,9]=16249.9999999022
- NumUnitsCutSecondStage[10,10]=6500.0
- Derived Variables:
- ProduceSizeSecondStage[1]=0.0
- ProduceSizeSecondStage[2]=1.0
- ProduceSizeSecondStage[3]=0.0
- ProduceSizeSecondStage[4]=0.0
- ProduceSizeSecondStage[5]=1.0
- ProduceSizeSecondStage[6]=0.0
- ProduceSizeSecondStage[7]=1.0
- ProduceSizeSecondStage[8]=0.0
- ProduceSizeSecondStage[9]=1.0
- ProduceSizeSecondStage[10]=3.97193389289896e-12
-
-
-Extensive form costs:
-Scenario Tree Costs
-----------------------------------------------------
-Tree Nodes:
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- Scenario1Node
- Scenario2Node
- Scenario3Node
- Scenarios:
- Scenario1
- Scenario2
- Scenario3
- Expected cost of (sub)tree rooted at node=224276.6667
-
- Name=Scenario1Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- Scenario1
- Expected cost of (sub)tree rooted at node=28115.0000
-
- Name=Scenario2Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- Scenario2
- Expected cost of (sub)tree rooted at node=61381.2000
-
- Name=Scenario3Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- Scenario3
- Expected cost of (sub)tree rooted at node=94657.8000
-
-----------------------------------------------------
-Scenarios:
-
- Name=Scenario1
- Probability=0.3333
- Leaf Node=Scenario1Node
- Tree node sequence:
- RootNode
- Scenario1Node
- Stage= FirstStage Cost=162892.0000
- Stage= SecondStage Cost=28115.0000
- Total scenario cost=191007.0000
-
- Name=Scenario2
- Probability=0.3333
- Leaf Node=Scenario2Node
- Tree node sequence:
- RootNode
- Scenario2Node
- Stage= FirstStage Cost=162892.0000
- Stage= SecondStage Cost=61381.2000
- Total scenario cost=224273.2000
-
- Name=Scenario3
- Probability=0.3333
- Leaf Node=Scenario3Node
- Tree node sequence:
- RootNode
- Scenario3Node
- Stage= FirstStage Cost=162892.0000
- Stage= SecondStage Cost=94657.8000
- Total scenario cost=257549.8000
-
-----------------------------------------------------
-Closing ScenarioTreeManagerClientSerial
-
-Total EF execution time=1.39 seconds
-
diff --git a/pyomo/pysp/tests/unit/baselines/sizes3_ef_with_solve_cplex_darwin.baseline b/pyomo/pysp/tests/unit/baselines/sizes3_ef_with_solve_cplex_darwin.baseline
deleted file mode 100644
index b58acee8e7b..00000000000
--- a/pyomo/pysp/tests/unit/baselines/sizes3_ef_with_solve_cplex_darwin.baseline
+++ /dev/null
@@ -1,399 +0,0 @@
-Importing model and scenario tree files
-Time to import model and scenario tree structure files=0.02 seconds
-Scenario Tree Detail
-----------------------------------------------------
-Tree Nodes:
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- Scenario1Node
- Scenario2Node
- Scenario3Node
- Scenarios:
- Scenario1
- Scenario2
- Scenario3
-
- Name=Scenario1Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- Scenario1
-
- Name=Scenario2Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- Scenario2
-
- Name=Scenario3Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- Scenario3
-
-----------------------------------------------------
-Stages:
- Name=FirstStage
- Tree Nodes:
- RootNode
- Variables:
- NumProducedFirstStage : [*]
- NumUnitsCutFirstStage : [*,*]
- Derived Variables:
- ProduceSizeFirstStage : [*]
- Cost Variable:
- FirstStageCost
-
- Name=SecondStage
- Tree Nodes:
- Scenario1Node
- Scenario2Node
- Scenario3Node
- Variables:
- NumProducedSecondStage : [*]
- NumUnitsCutSecondStage : [*,*]
- Derived Variables:
- ProduceSizeSecondStage : [*]
- Cost Variable:
- SecondStageCost
-
-----------------------------------------------------
-Scenarios:
- Name=Scenario1
- Probability=0.3333
- Leaf node=Scenario1Node
- Tree node sequence:
- RootNode
- Scenario1Node
-
- Name=Scenario2
- Probability=0.3333
- Leaf node=Scenario2Node
- Tree node sequence:
- RootNode
- Scenario2Node
-
- Name=Scenario3
- Probability=0.3333
- Leaf node=Scenario3Node
- Tree node sequence:
- RootNode
- Scenario3Node
-
-----------------------------------------------------
-Scenario tree is valid!
-Initializing ScenarioTreeManagerClientSerial with options:
- * verbose: True
- - disable_gc: False
- - profile: 0
- - traceback: False
- - output_scenario_tree_solution: False
- - solution_saver_extension: ()
- - solution_loader_extension: ()
- - solution_writer: ()
- * output_file: /Users/ghackebeil/Projects/pyomo/src/pyomo/pyomo/pysp/tests/unit/test_sizes3_ef.lp
- * solve: True
- - output_scenario_costs: None
- - output_instance_construction_time: False
- - compile_scenario_instances: False
- - output_times: False
- * model_location: /Users/ghackebeil/Projects/pyomo/src/pyomo/examples/pysp/sizes/models
- - model_directory: None (DEPRECATED)
- * scenario_tree_location: /Users/ghackebeil/Projects/pyomo/src/pyomo/examples/pysp/sizes/SIZES3
- - instance_directory: None (DEPRECATED)
- - objective_sense_stage_based: None
- - postinit_callback_location: ()
- - bounds_cfgfile: None (DEPRECATED)
- - aggregategetter_callback_location: ()
- - aggregate_cfgfile: None (DEPRECATED)
- - scenario_tree_random_seed: None
- - scenario_tree_seed: None (DEPRECATED)
- - scenario_tree_downsample_fraction: 1.0
- - scenario_bundle_specification: None
- - create_random_bundles: 0
- - profile_memory: 0
- - cvar_weight: 1.0
- - generate_weighted_cvar: False
- - risk_alpha: 0.95
- - cc_alpha: 0.0
- - cc_indicator_var: None
- - mipgap: None
- * solver: cplex
- - solver_io: None
- - solver_manager: serial
- - solver_options: ()
- - disable_warmstart: False
- - pyro_host: None
- - pyro_port: None
- - pyro_shutdown: False
- - shutdown_pyro: None (DEPRECATED)
- - output_solver_results: False
- - symbolic_solver_labels: False
- - output_solver_log: False
- - keep_solver_files: False
- - pyro_shutdown_workers: False
- - shutdown_pyro_workers: None (DEPRECATED)
- - activate_jsonio_solution_saver: None
-
-Constructing scenario tree instances
-Scenario-based instance initialization enabled
-Creating instance for scenario=Scenario1
-Data for scenario=Scenario1 loads from file=/Users/ghackebeil/Projects/pyomo/src/pyomo/examples/pysp/sizes/SIZES3/Scenario1.dat
-Creating instance for scenario=Scenario2
-Data for scenario=Scenario2 loads from file=/Users/ghackebeil/Projects/pyomo/src/pyomo/examples/pysp/sizes/SIZES3/Scenario2.dat
-Creating instance for scenario=Scenario3
-Data for scenario=Scenario3 loads from file=/Users/ghackebeil/Projects/pyomo/src/pyomo/examples/pysp/sizes/SIZES3/Scenario3.dat
-Time to construct scenario instances=0.03 seconds
-Linking instances into scenario tree
-Time link scenario tree with instances=0.00 seconds
-ScenarioTreeManagerClientSerial is successfully initialized
-Overall initialization time=0.03 seconds
-
-Initializing extensive form algorithm for stochastic programming problems.
-Creating extensive form instance
-Creating variables for master binding instance
-Time to construct extensive form instance=0.00 seconds
-Starting to write extensive form
-Extensive form written to file=/Users/ghackebeil/Projects/pyomo/src/pyomo/pyomo/pysp/tests/unit/test_sizes3_ef.lp
-Time to write output file=0.02 seconds
-Queuing extensive form solve
-Waiting for extensive form solve
-Done with extensive form solve - loading results
-Storing solution in scenario tree
-Time to solve and load results for the extensive form=0.37 seconds
-EF solve completed and solution status is optimal
-EF solve termination condition is optimal
-EF objective: 224276.66670
-EF gap: 22.41030
-EF bound: 224254.25640
-
-Extensive form solution:
-----------------------------------------------------
-Tree Nodes:
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Variables:
- NumProducedFirstStage[3]=38250.0
- NumProducedFirstStage[5]=45000.0
- NumProducedFirstStage[6]=49000.0
- NumProducedFirstStage[8]=43749.9999999
- NumProducedFirstStage[10]=24000.0
- NumUnitsCutFirstStage[3,1]=2500.0
- NumUnitsCutFirstStage[3,2]=7500.0
- NumUnitsCutFirstStage[3,3]=12500.0
- NumUnitsCutFirstStage[5,4]=10000.0
- NumUnitsCutFirstStage[5,5]=35000.0
- NumUnitsCutFirstStage[6,6]=25000.0
- NumUnitsCutFirstStage[8,7]=14999.9999999
- NumUnitsCutFirstStage[8,8]=12500.0
- NumUnitsCutFirstStage[10,9]=12500.0
- NumUnitsCutFirstStage[10,10]=5000.0
- Derived Variables:
- ProduceSizeFirstStage[1]=0.0
- ProduceSizeFirstStage[2]=0.0
- ProduceSizeFirstStage[3]=1.0
- ProduceSizeFirstStage[4]=2.98324672459e-13
- ProduceSizeFirstStage[5]=1.0
- ProduceSizeFirstStage[6]=1.0
- ProduceSizeFirstStage[7]=3.87915761735e-12
- ProduceSizeFirstStage[8]=0.999999999997
- ProduceSizeFirstStage[9]=0.0
- ProduceSizeFirstStage[10]=1.0
-
- Name=Scenario1Node
- Stage=SecondStage
- Parent=RootNode
- Variables:
- NumProducedSecondStage[5]=25000.0
- NumProducedSecondStage[9]=8750.0
- NumUnitsCutSecondStage[3,1]=1750.0
- NumUnitsCutSecondStage[3,2]=5250.0
- NumUnitsCutSecondStage[3,3]=8750.00000001
- NumUnitsCutSecondStage[5,4]=500.000000041
- NumUnitsCutSecondStage[5,5]=24500.0
- NumUnitsCutSecondStage[6,4]=6499.99999996
- NumUnitsCutSecondStage[6,6]=17500.0
- NumUnitsCutSecondStage[8,7]=7499.99999996
- NumUnitsCutSecondStage[8,8]=8750.0
- NumUnitsCutSecondStage[9,9]=8750.0
- NumUnitsCutSecondStage[10,7]=3000.0
- NumUnitsCutSecondStage[10,10]=3500.0
- Derived Variables:
- ProduceSizeSecondStage[1]=0.0
- ProduceSizeSecondStage[2]=0.0
- ProduceSizeSecondStage[3]=0.0
- ProduceSizeSecondStage[4]=0.0
- ProduceSizeSecondStage[5]=1.0
- ProduceSizeSecondStage[6]=0.0
- ProduceSizeSecondStage[7]=0.0
- ProduceSizeSecondStage[8]=-8.71303029726e-13
- ProduceSizeSecondStage[9]=1.0
- ProduceSizeSecondStage[10]=0.0
-
- Name=Scenario2Node
- Stage=SecondStage
- Parent=RootNode
- Variables:
- NumProducedSecondStage[5]=51750.0
- NumProducedSecondStage[9]=23250.0
- NumUnitsCutSecondStage[3,2]=3250.00000001
- NumUnitsCutSecondStage[3,3]=12500.0
- NumUnitsCutSecondStage[5,1]=2500.0
- NumUnitsCutSecondStage[5,2]=4249.99999999
- NumUnitsCutSecondStage[5,4]=10000.0
- NumUnitsCutSecondStage[5,5]=35000.0
- NumUnitsCutSecondStage[6,6]=24000.0
- NumUnitsCutSecondStage[8,6]=1000.00000004
- NumUnitsCutSecondStage[8,7]=2749.99999998
- NumUnitsCutSecondStage[8,8]=12500.0
- NumUnitsCutSecondStage[9,7]=10750.0
- NumUnitsCutSecondStage[9,9]=12500.0
- NumUnitsCutSecondStage[10,7]=1500.0
- NumUnitsCutSecondStage[10,10]=5000.0
- Derived Variables:
- ProduceSizeSecondStage[1]=0.0
- ProduceSizeSecondStage[2]=0.0
- ProduceSizeSecondStage[3]=0.0
- ProduceSizeSecondStage[4]=0.0
- ProduceSizeSecondStage[5]=0.999999999995
- ProduceSizeSecondStage[6]=0.0
- ProduceSizeSecondStage[7]=0.0
- ProduceSizeSecondStage[8]=0.0
- ProduceSizeSecondStage[9]=1.0
- ProduceSizeSecondStage[10]=0.0
-
- Name=Scenario3Node
- Stage=SecondStage
- Parent=RootNode
- Variables:
- NumProducedSecondStage[2]=13000.0
- NumProducedSecondStage[5]=59000.0
- NumProducedSecondStage[7]=28000.0
- NumProducedSecondStage[9]=16250.0
- NumUnitsCutSecondStage[2,1]=3250.0
- NumUnitsCutSecondStage[2,2]=9750.0
- NumUnitsCutSecondStage[3,3]=15750.0
- NumUnitsCutSecondStage[5,3]=499.999999989
- NumUnitsCutSecondStage[5,4]=13000.0
- NumUnitsCutSecondStage[5,5]=45500.0
- NumUnitsCutSecondStage[6,6]=24000.0
- NumUnitsCutSecondStage[7,6]=8500.00000004
- NumUnitsCutSecondStage[7,7]=19500.0
- NumUnitsCutSecondStage[8,8]=16250.0
- NumUnitsCutSecondStage[9,9]=16250.0
- NumUnitsCutSecondStage[10,10]=6500.0
- Derived Variables:
- ProduceSizeSecondStage[1]=0.0
- ProduceSizeSecondStage[2]=1.0
- ProduceSizeSecondStage[3]=0.0
- ProduceSizeSecondStage[4]=0.0
- ProduceSizeSecondStage[5]=1.0
- ProduceSizeSecondStage[6]=0.0
- ProduceSizeSecondStage[7]=1.0
- ProduceSizeSecondStage[8]=0.0
- ProduceSizeSecondStage[9]=1.0
- ProduceSizeSecondStage[10]=0.0
-
-
-Extensive form costs:
-Scenario Tree Costs
-----------------------------------------------------
-Tree Nodes:
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- Scenario1Node
- Scenario2Node
- Scenario3Node
- Scenarios:
- Scenario1
- Scenario2
- Scenario3
- Expected cost of (sub)tree rooted at node=224276.6667
-
- Name=Scenario1Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- Scenario1
- Expected cost of (sub)tree rooted at node=28115.0000
-
- Name=Scenario2Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- Scenario2
- Expected cost of (sub)tree rooted at node=61381.2000
-
- Name=Scenario3Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- Scenario3
- Expected cost of (sub)tree rooted at node=94657.8000
-
-----------------------------------------------------
-Scenarios:
-
- Name=Scenario1
- Probability=0.3333
- Leaf Node=Scenario1Node
- Tree node sequence:
- RootNode
- Scenario1Node
- Stage= FirstStage Cost=162892.0000
- Stage= SecondStage Cost=28115.0000
- Total scenario cost=191007.0000
-
- Name=Scenario2
- Probability=0.3333
- Leaf Node=Scenario2Node
- Tree node sequence:
- RootNode
- Scenario2Node
- Stage= FirstStage Cost=162892.0000
- Stage= SecondStage Cost=61381.2000
- Total scenario cost=224273.2000
-
- Name=Scenario3
- Probability=0.3333
- Leaf Node=Scenario3Node
- Tree node sequence:
- RootNode
- Scenario3Node
- Stage= FirstStage Cost=162892.0000
- Stage= SecondStage Cost=94657.8000
- Total scenario cost=257549.8000
-
-----------------------------------------------------
-Closing ScenarioTreeManagerClientSerial
-
-Total EF execution time=0.45 seconds
-
diff --git a/pyomo/pysp/tests/unit/baselines/sizes3_ef_with_solve_gurobi.baseline-a b/pyomo/pysp/tests/unit/baselines/sizes3_ef_with_solve_gurobi.baseline-a
deleted file mode 100644
index 31ef9521be2..00000000000
--- a/pyomo/pysp/tests/unit/baselines/sizes3_ef_with_solve_gurobi.baseline-a
+++ /dev/null
@@ -1,373 +0,0 @@
-Importing model and scenario tree files
-Time to import model and scenario tree structure files=0.02 seconds
-Scenario Tree Detail
-----------------------------------------------------
-Tree Nodes:
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- Scenario1Node
- Scenario2Node
- Scenario3Node
- Scenarios:
- Scenario1
- Scenario2
- Scenario3
-
- Name=Scenario1Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- Scenario1
-
- Name=Scenario2Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- Scenario2
-
- Name=Scenario3Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- Scenario3
-
-----------------------------------------------------
-Stages:
- Name=FirstStage
- Tree Nodes:
- RootNode
- Variables:
- NumProducedFirstStage : [*]
- NumUnitsCutFirstStage : [*,*]
- Derived Variables:
- ProduceSizeFirstStage : [*]
- Cost Variable:
- FirstStageCost
-
- Name=SecondStage
- Tree Nodes:
- Scenario1Node
- Scenario2Node
- Scenario3Node
- Variables:
- NumProducedSecondStage : [*]
- NumUnitsCutSecondStage : [*,*]
- Derived Variables:
- ProduceSizeSecondStage : [*]
- Cost Variable:
- SecondStageCost
-
-----------------------------------------------------
-Scenarios:
- Name=Scenario1
- Probability=0.3333
- Leaf node=Scenario1Node
- Tree node sequence:
- RootNode
- Scenario1Node
-
- Name=Scenario2
- Probability=0.3333
- Leaf node=Scenario2Node
- Tree node sequence:
- RootNode
- Scenario2Node
-
- Name=Scenario3
- Probability=0.3333
- Leaf node=Scenario3Node
- Tree node sequence:
- RootNode
- Scenario3Node
-
-----------------------------------------------------
-Scenario tree is valid!
-Initializing ScenarioTreeManagerClientSerial with options:
- * verbose: True
- - disable_gc: False
- - profile: 0
- - traceback: False
- - output_scenario_tree_solution: False
- - solution_saver_extension: ()
- - solution_loader_extension: ()
- - solution_writer: ()
- * output_file: /home/hudson/slave/workspace/Pyomo_trunk_python2.6/src/pyomo/pyomo/pysp/tests/unit/test_sizes3_ef.lp
- * solve: True
- - output_scenario_costs: None
- - output_instance_construction_time: False
- - compile_scenario_instances: False
- - output_times: False
- * model_location: /home/hudson/slave/workspace/Pyomo_trunk_python2.6/src/pyomo/examples/pysp/sizes/models
- - model_directory: None (DEPRECATED)
- * scenario_tree_location: /home/hudson/slave/workspace/Pyomo_trunk_python2.6/src/pyomo/examples/pysp/sizes/SIZES3
- - instance_directory: None (DEPRECATED)
- - objective_sense_stage_based: None
- - postinit_callback_location: ()
- - bounds_cfgfile: None (DEPRECATED)
- - aggregategetter_callback_location: ()
- - aggregate_cfgfile: None (DEPRECATED)
- - scenario_tree_random_seed: None
- - scenario_tree_seed: None (DEPRECATED)
- - scenario_tree_downsample_fraction: 1.0
- - scenario_bundle_specification: None
- - create_random_bundles: 0
- - profile_memory: 0
- - cvar_weight: 1.0
- - generate_weighted_cvar: False
- - risk_alpha: 0.95
- - cc_alpha: 0.0
- - cc_indicator_var: None
- - mipgap: None
- * solver: gurobi
- - solver_io: None
- - solver_manager: serial
- - solver_options: ()
- - disable_warmstart: False
- - pyro_host: None
- - pyro_port: None
- - pyro_shutdown: False
- - shutdown_pyro: None (DEPRECATED)
- - output_solver_results: False
- - symbolic_solver_labels: False
- - output_solver_log: False
- - keep_solver_files: False
- - pyro_shutdown_workers: False
- - shutdown_pyro_workers: None (DEPRECATED)
- - activate_jsonio_solution_saver: None
-
-Constructing scenario tree instances
-Scenario-based instance initialization enabled
-Creating instance for scenario=Scenario1
-Data for scenario=Scenario1 loads from file=/home/hudson/slave/workspace/Pyomo_trunk_python2.6/src/pyomo/examples/pysp/sizes/SIZES3/Scenario1.dat
-Creating instance for scenario=Scenario2
-Data for scenario=Scenario2 loads from file=/home/hudson/slave/workspace/Pyomo_trunk_python2.6/src/pyomo/examples/pysp/sizes/SIZES3/Scenario2.dat
-Creating instance for scenario=Scenario3
-Data for scenario=Scenario3 loads from file=/home/hudson/slave/workspace/Pyomo_trunk_python2.6/src/pyomo/examples/pysp/sizes/SIZES3/Scenario3.dat
-Time to construct scenario instances=0.05 seconds
-Linking instances into scenario tree
-Time link scenario tree with instances=0.01 seconds
-ScenarioTreeManagerClientSerial is successfully initialized
-Overall initialization time=0.06 seconds
-
-Initializing extensive form algorithm for stochastic programming problems.
-Creating extensive form instance
-Creating variables for master binding instance
-Time to construct extensive form instance=0.01 seconds
-Starting to write extensive form
-Extensive form written to file=/home/hudson/slave/workspace/Pyomo_trunk_python2.6/src/pyomo/pyomo/pysp/tests/unit/test_sizes3_ef.lp
-Time to write output file=0.06 seconds
-Queuing extensive form solve
-Waiting for extensive form solve
-Done with extensive form solve - loading results
-Storing solution in scenario tree
-Time to solve and load results for the extensive form=0.47 seconds
-EF solve completed and solution status is optimal
-EF solve termination condition is optimal
-EF objective: 224275.33337
-EF gap: 0.00000
-EF bound: 224275.33337
-
-Extensive form solution:
-----------------------------------------------------
-Tree Nodes:
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Variables:
- NumProducedFirstStage[3]=38250.0
- NumProducedFirstStage[5]=45000.0
- NumProducedFirstStage[6]=49500.0
- NumProducedFirstStage[8]=43250.0
- NumProducedFirstStage[10]=24000.0
- NumUnitsCutFirstStage[3,1]=2500.0
- NumUnitsCutFirstStage[3,2]=7500.0
- NumUnitsCutFirstStage[3,3]=12500.0
- NumUnitsCutFirstStage[5,4]=10000.0
- NumUnitsCutFirstStage[5,5]=35000.0
- NumUnitsCutFirstStage[6,6]=25000.0
- NumUnitsCutFirstStage[8,7]=15000.0
- NumUnitsCutFirstStage[8,8]=12500.0
- NumUnitsCutFirstStage[10,9]=12500.0
- NumUnitsCutFirstStage[10,10]=5000.0
- Derived Variables:
- ProduceSizeFirstStage[3]=1.0
- ProduceSizeFirstStage[5]=1.0
- ProduceSizeFirstStage[6]=1.0
- ProduceSizeFirstStage[8]=1.0
- ProduceSizeFirstStage[10]=1.0
-
- Name=Scenario1Node
- Stage=SecondStage
- Parent=RootNode
- Variables:
- NumProducedSecondStage[5]=24500.0
- NumProducedSecondStage[9]=9250.0
- NumUnitsCutSecondStage[3,1]=1750.0
- NumUnitsCutSecondStage[3,2]=5250.0
- NumUnitsCutSecondStage[3,3]=8750.0
- NumUnitsCutSecondStage[5,5]=24500.0
- NumUnitsCutSecondStage[6,4]=7000.0
- NumUnitsCutSecondStage[6,6]=17500.0
- NumUnitsCutSecondStage[8,7]=7000.0
- NumUnitsCutSecondStage[8,8]=8750.0
- NumUnitsCutSecondStage[9,7]=499.999999946
- NumUnitsCutSecondStage[9,9]=8750.00000005
- NumUnitsCutSecondStage[10,7]=3000.00000005
- NumUnitsCutSecondStage[10,10]=3500.0
- Derived Variables:
- ProduceSizeSecondStage[5]=1.0
- ProduceSizeSecondStage[9]=1.0
-
- Name=Scenario2Node
- Stage=SecondStage
- Parent=RootNode
- Variables:
- NumProducedSecondStage[5]=51750.0
- NumProducedSecondStage[9]=23250.0
- NumUnitsCutSecondStage[3,2]=3250.0
- NumUnitsCutSecondStage[3,3]=12500.0
- NumUnitsCutSecondStage[5,1]=2500.0
- NumUnitsCutSecondStage[5,2]=4250.0
- NumUnitsCutSecondStage[5,4]=10000.0
- NumUnitsCutSecondStage[5,5]=35000.0
- NumUnitsCutSecondStage[6,6]=24500.0
- NumUnitsCutSecondStage[8,6]=500.0
- NumUnitsCutSecondStage[8,7]=2750.0
- NumUnitsCutSecondStage[8,8]=12500.0
- NumUnitsCutSecondStage[9,7]=10750.0
- NumUnitsCutSecondStage[9,9]=12500.0
- NumUnitsCutSecondStage[10,7]=1500.0
- NumUnitsCutSecondStage[10,10]=5000.0
- Derived Variables:
- ProduceSizeSecondStage[5]=1.0
- ProduceSizeSecondStage[9]=1.0
-
- Name=Scenario3Node
- Stage=SecondStage
- Parent=RootNode
- Variables:
- NumProducedSecondStage[2]=13000.0
- NumProducedSecondStage[5]=59000.0
- NumProducedSecondStage[7]=27500.0
- NumProducedSecondStage[9]=16750.0
- NumUnitsCutSecondStage[2,1]=3250.0
- NumUnitsCutSecondStage[2,2]=9750.0
- NumUnitsCutSecondStage[3,3]=15750.0
- NumUnitsCutSecondStage[5,3]=500.0
- NumUnitsCutSecondStage[5,4]=13000.0
- NumUnitsCutSecondStage[5,5]=45500.0
- NumUnitsCutSecondStage[6,6]=24500.0
- NumUnitsCutSecondStage[7,6]=8000.0
- NumUnitsCutSecondStage[7,7]=19500.0
- NumUnitsCutSecondStage[8,8]=15750.0
- NumUnitsCutSecondStage[9,8]=500.0
- NumUnitsCutSecondStage[9,9]=16250.0
- NumUnitsCutSecondStage[10,10]=6500.0
- Derived Variables:
- ProduceSizeSecondStage[2]=1.0
- ProduceSizeSecondStage[5]=1.0
- ProduceSizeSecondStage[7]=1.0
- ProduceSizeSecondStage[9]=0.999999999994
-
-
-Extensive form costs:
-Scenario Tree Costs
-----------------------------------------------------
-Tree Nodes:
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- Scenario1Node
- Scenario2Node
- Scenario3Node
- Scenarios:
- Scenario1
- Scenario2
- Scenario3
- Expected cost of (sub)tree rooted at node=224275.3334
-
- Name=Scenario1Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- Scenario1
- Expected cost of (sub)tree rooted at node=28135.8000
-
- Name=Scenario2Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- Scenario2
- Expected cost of (sub)tree rooted at node=61377.2000
-
- Name=Scenario3Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- Scenario3
- Expected cost of (sub)tree rooted at node=94668.2000
-
-----------------------------------------------------
-Scenarios:
-
- Name=Scenario1
- Probability=0.3333
- Leaf Node=Scenario1Node
- Tree node sequence:
- RootNode
- Scenario1Node
- Stage= FirstStage Cost=162881.6000
- Stage= SecondStage Cost=28135.8000
- Total scenario cost=191017.4000
-
- Name=Scenario2
- Probability=0.3333
- Leaf Node=Scenario2Node
- Tree node sequence:
- RootNode
- Scenario2Node
- Stage= FirstStage Cost=162881.6000
- Stage= SecondStage Cost=61377.2000
- Total scenario cost=224258.8000
-
- Name=Scenario3
- Probability=0.3333
- Leaf Node=Scenario3Node
- Tree node sequence:
- RootNode
- Scenario3Node
- Stage= FirstStage Cost=162881.6000
- Stage= SecondStage Cost=94668.2000
- Total scenario cost=257549.8000
-
-----------------------------------------------------
-Closing ScenarioTreeManagerClientSerial
-
-Total EF execution time=0.62 seconds
-
diff --git a/pyomo/pysp/tests/unit/baselines/sizes3_ef_with_solve_gurobi.baseline-b b/pyomo/pysp/tests/unit/baselines/sizes3_ef_with_solve_gurobi.baseline-b
deleted file mode 100644
index 60623f3654f..00000000000
--- a/pyomo/pysp/tests/unit/baselines/sizes3_ef_with_solve_gurobi.baseline-b
+++ /dev/null
@@ -1,400 +0,0 @@
-Importing model and scenario tree files
-Time to import model and scenario tree structure files=0.07 seconds
-Scenario Tree Detail
-----------------------------------------------------
-Tree Nodes:
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- Scenario1Node
- Scenario2Node
- Scenario3Node
- Scenarios:
- Scenario1
- Scenario2
- Scenario3
-
- Name=Scenario1Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- Scenario1
-
- Name=Scenario2Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- Scenario2
-
- Name=Scenario3Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- Scenario3
-
-----------------------------------------------------
-Stages:
- Name=FirstStage
- Tree Nodes:
- RootNode
- Variables:
- NumProducedFirstStage : [*]
- NumUnitsCutFirstStage : [*,*]
- Derived Variables:
- ProduceSizeFirstStage : [*]
- Cost Variable:
- FirstStageCost
-
- Name=SecondStage
- Tree Nodes:
- Scenario1Node
- Scenario2Node
- Scenario3Node
- Variables:
- NumProducedSecondStage : [*]
- NumUnitsCutSecondStage : [*,*]
- Derived Variables:
- ProduceSizeSecondStage : [*]
- Cost Variable:
- SecondStageCost
-
-----------------------------------------------------
-Scenarios:
- Name=Scenario1
- Probability=0.3333
- Leaf node=Scenario1Node
- Tree node sequence:
- RootNode
- Scenario1Node
-
- Name=Scenario2
- Probability=0.3333
- Leaf node=Scenario2Node
- Tree node sequence:
- RootNode
- Scenario2Node
-
- Name=Scenario3
- Probability=0.3333
- Leaf node=Scenario3Node
- Tree node sequence:
- RootNode
- Scenario3Node
-
-----------------------------------------------------
-Scenario tree is valid!
-Initializing ScenarioTreeManagerClientSerial with options:
- * verbose: True
- - disable_gc: False
- - profile: 0
- - traceback: False
- - output_scenario_tree_solution: False
- - solution_saver_extension: ()
- - solution_loader_extension: ()
- - solution_writer: ()
- * output_file: /home/gahacke/Project/Pyomo/jenkins/src/pyomo/pyomo/pysp/tests/unit/test_sizes3_ef.lp
- * solve: True
- - output_scenario_costs: None
- - output_instance_construction_time: False
- - compile_scenario_instances: False
- - output_times: False
- * model_location: /home/gahacke/Project/Pyomo/jenkins/src/pyomo/examples/pysp/sizes/models
- - model_directory: None (DEPRECATED)
- * scenario_tree_location: /home/gahacke/Project/Pyomo/jenkins/src/pyomo/examples/pysp/sizes/SIZES3
- - instance_directory: None (DEPRECATED)
- - objective_sense_stage_based: None
- - postinit_callback_location: ()
- - bounds_cfgfile: None (DEPRECATED)
- - aggregategetter_callback_location: ()
- - aggregate_cfgfile: None (DEPRECATED)
- - scenario_tree_random_seed: None
- - scenario_tree_seed: None (DEPRECATED)
- - scenario_tree_downsample_fraction: 1.0
- - scenario_bundle_specification: None
- - create_random_bundles: 0
- - profile_memory: 0
- - cvar_weight: 1.0
- - generate_weighted_cvar: False
- - risk_alpha: 0.95
- - cc_alpha: 0.0
- - cc_indicator_var: None
- - mipgap: None
- * solver: gurobi
- - solver_io: None
- - solver_manager: serial
- - solver_options: ()
- - disable_warmstart: False
- - pyro_host: None
- - pyro_port: None
- - pyro_shutdown: False
- - shutdown_pyro: None (DEPRECATED)
- - output_solver_results: False
- - symbolic_solver_labels: False
- - output_solver_log: False
- - keep_solver_files: False
- - pyro_shutdown_workers: False
- - shutdown_pyro_workers: None (DEPRECATED)
- - activate_jsonio_solution_saver: None
-
-Constructing scenario tree instances
-Scenario-based instance initialization enabled
-Creating instance for scenario=Scenario1
-Data for scenario=Scenario1 loads from file=/home/gahacke/Project/Pyomo/jenkins/src/pyomo/examples/pysp/sizes/SIZES3/Scenario1.dat
-Creating instance for scenario=Scenario2
-Data for scenario=Scenario2 loads from file=/home/gahacke/Project/Pyomo/jenkins/src/pyomo/examples/pysp/sizes/SIZES3/Scenario2.dat
-Creating instance for scenario=Scenario3
-Data for scenario=Scenario3 loads from file=/home/gahacke/Project/Pyomo/jenkins/src/pyomo/examples/pysp/sizes/SIZES3/Scenario3.dat
-Time to construct scenario instances=0.30 seconds
-Linking instances into scenario tree
-Time link scenario tree with instances=0.03 seconds
-ScenarioTreeManagerClientSerial is successfully initialized
-Overall initialization time=0.33 seconds
-
-Initializing extensive form algorithm for stochastic programming problems.
-Creating extensive form instance
-Creating variables for master binding instance
-Time to construct extensive form instance=0.03 seconds
-Starting to write extensive form
-Extensive form written to file=/home/gahacke/Project/Pyomo/jenkins/src/pyomo/pyomo/pysp/tests/unit/test_sizes3_ef.lp
-Time to write output file=0.18 seconds
-Queuing extensive form solve
-Waiting for extensive form solve
-Done with extensive form solve - loading results
-Storing solution in scenario tree
-Time to solve and load results for the extensive form=1.43 seconds
-EF solve completed and solution status is optimal
-EF solve termination condition is optimal
-EF objective: 224275.33337
-EF gap: 0.00000
-EF bound: 224275.33337
-
-Extensive form solution:
-----------------------------------------------------
-Tree Nodes:
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Variables:
- NumProducedFirstStage[3]=38250.0
- NumProducedFirstStage[5]=45000.0
- NumProducedFirstStage[6]=49500.0
- NumProducedFirstStage[8]=43250.0
- NumProducedFirstStage[10]=24000.0
- NumUnitsCutFirstStage[3,1]=2500.0
- NumUnitsCutFirstStage[3,2]=7500.0
- NumUnitsCutFirstStage[3,3]=12500.0
- NumUnitsCutFirstStage[5,4]=10000.0
- NumUnitsCutFirstStage[5,5]=35000.0
- NumUnitsCutFirstStage[6,6]=25000.0
- NumUnitsCutFirstStage[8,7]=15000.0
- NumUnitsCutFirstStage[8,8]=12500.0
- NumUnitsCutFirstStage[10,9]=12500.0
- NumUnitsCutFirstStage[10,10]=5000.0
- Derived Variables:
- ProduceSizeFirstStage[1]=0.0
- ProduceSizeFirstStage[2]=0.0
- ProduceSizeFirstStage[3]=1.0
- ProduceSizeFirstStage[4]=0.0
- ProduceSizeFirstStage[5]=1.0
- ProduceSizeFirstStage[6]=1.0
- ProduceSizeFirstStage[7]=0.0
- ProduceSizeFirstStage[8]=0.999999999998
- ProduceSizeFirstStage[9]=1.77593656739e-12
- ProduceSizeFirstStage[10]=1.0
-
- Name=Scenario1Node
- Stage=SecondStage
- Parent=RootNode
- Variables:
- NumProducedSecondStage[5]=24500.0
- NumProducedSecondStage[9]=9250.0
- NumUnitsCutSecondStage[3,1]=1750.0
- NumUnitsCutSecondStage[3,2]=5250.0
- NumUnitsCutSecondStage[3,3]=8750.0
- NumUnitsCutSecondStage[5,5]=24500.0
- NumUnitsCutSecondStage[6,4]=7000.0
- NumUnitsCutSecondStage[6,6]=17500.0
- NumUnitsCutSecondStage[8,7]=7000.00000012
- NumUnitsCutSecondStage[8,8]=8749.99999998
- NumUnitsCutSecondStage[9,7]=499.999999914
- NumUnitsCutSecondStage[9,9]=8750.0
- NumUnitsCutSecondStage[10,7]=2999.99999998
- NumUnitsCutSecondStage[10,10]=3500.0
- Derived Variables:
- ProduceSizeSecondStage[1]=0.0
- ProduceSizeSecondStage[2]=0.0
- ProduceSizeSecondStage[3]=0.0
- ProduceSizeSecondStage[4]=0.0
- ProduceSizeSecondStage[5]=1.0
- ProduceSizeSecondStage[6]=0.0
- ProduceSizeSecondStage[7]=0.0
- ProduceSizeSecondStage[8]=0.0
- ProduceSizeSecondStage[9]=1.0
- ProduceSizeSecondStage[10]=0.0
-
- Name=Scenario2Node
- Stage=SecondStage
- Parent=RootNode
- Variables:
- NumProducedSecondStage[5]=51750.0
- NumProducedSecondStage[9]=23250.0
- NumUnitsCutSecondStage[3,1]=2500.0
- NumUnitsCutSecondStage[3,2]=750.0
- NumUnitsCutSecondStage[3,3]=12500.0
- NumUnitsCutSecondStage[5,2]=6750.0
- NumUnitsCutSecondStage[5,4]=10000.0
- NumUnitsCutSecondStage[5,5]=35000.0
- NumUnitsCutSecondStage[6,6]=24500.0
- NumUnitsCutSecondStage[8,6]=500.0
- NumUnitsCutSecondStage[8,7]=2750.0000001
- NumUnitsCutSecondStage[8,8]=12500.0
- NumUnitsCutSecondStage[9,7]=10749.9999999
- NumUnitsCutSecondStage[9,9]=12500.0
- NumUnitsCutSecondStage[10,7]=1500.00000002
- NumUnitsCutSecondStage[10,10]=5000.0
- Derived Variables:
- ProduceSizeSecondStage[1]=0.0
- ProduceSizeSecondStage[2]=0.0
- ProduceSizeSecondStage[3]=0.0
- ProduceSizeSecondStage[4]=0.0
- ProduceSizeSecondStage[5]=1.0
- ProduceSizeSecondStage[6]=0.0
- ProduceSizeSecondStage[7]=0.0
- ProduceSizeSecondStage[8]=0.0
- ProduceSizeSecondStage[9]=1.0
- ProduceSizeSecondStage[10]=0.0
-
- Name=Scenario3Node
- Stage=SecondStage
- Parent=RootNode
- Variables:
- NumProducedSecondStage[2]=13000.0
- NumProducedSecondStage[5]=59000.0
- NumProducedSecondStage[7]=27500.0
- NumProducedSecondStage[9]=16750.0
- NumUnitsCutSecondStage[2,1]=3250.0
- NumUnitsCutSecondStage[2,2]=9750.0
- NumUnitsCutSecondStage[3,3]=15750.0
- NumUnitsCutSecondStage[5,3]=500.0
- NumUnitsCutSecondStage[5,4]=13000.0
- NumUnitsCutSecondStage[5,5]=45500.0
- NumUnitsCutSecondStage[6,6]=24500.0
- NumUnitsCutSecondStage[7,6]=8000.0
- NumUnitsCutSecondStage[7,7]=19500.0
- NumUnitsCutSecondStage[8,8]=15750.0000001
- NumUnitsCutSecondStage[9,8]=499.999999914
- NumUnitsCutSecondStage[9,9]=16250.0
- NumUnitsCutSecondStage[10,10]=6500.0
- Derived Variables:
- ProduceSizeSecondStage[1]=0.0
- ProduceSizeSecondStage[2]=1.0
- ProduceSizeSecondStage[3]=0.0
- ProduceSizeSecondStage[4]=0.0
- ProduceSizeSecondStage[5]=1.0
- ProduceSizeSecondStage[6]=0.0
- ProduceSizeSecondStage[7]=1.0
- ProduceSizeSecondStage[8]=0.0
- ProduceSizeSecondStage[9]=1.0
- ProduceSizeSecondStage[10]=0.0
-
-
-Extensive form costs:
-Scenario Tree Costs
-----------------------------------------------------
-Tree Nodes:
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- Scenario1Node
- Scenario2Node
- Scenario3Node
- Scenarios:
- Scenario1
- Scenario2
- Scenario3
- Expected cost of (sub)tree rooted at node=224275.3334
-
- Name=Scenario1Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- Scenario1
- Expected cost of (sub)tree rooted at node=28135.8000
-
- Name=Scenario2Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- Scenario2
- Expected cost of (sub)tree rooted at node=61377.2000
-
- Name=Scenario3Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- Scenario3
- Expected cost of (sub)tree rooted at node=94668.2000
-
-----------------------------------------------------
-Scenarios:
-
- Name=Scenario1
- Probability=0.3333
- Leaf Node=Scenario1Node
- Tree node sequence:
- RootNode
- Scenario1Node
- Stage= FirstStage Cost=162881.6000
- Stage= SecondStage Cost=28135.8000
- Total scenario cost=191017.4000
-
- Name=Scenario2
- Probability=0.3333
- Leaf Node=Scenario2Node
- Tree node sequence:
- RootNode
- Scenario2Node
- Stage= FirstStage Cost=162881.6000
- Stage= SecondStage Cost=61377.2000
- Total scenario cost=224258.8000
-
- Name=Scenario3
- Probability=0.3333
- Leaf Node=Scenario3Node
- Tree node sequence:
- RootNode
- Scenario3Node
- Stage= FirstStage Cost=162881.6000
- Stage= SecondStage Cost=94668.2000
- Total scenario cost=257549.8000
-
-----------------------------------------------------
-Closing ScenarioTreeManagerClientSerial
-
-Total EF execution time=2.08 seconds
-
diff --git a/pyomo/pysp/tests/unit/baselines/sizes3_ef_with_solve_gurobi_darwin.baseline b/pyomo/pysp/tests/unit/baselines/sizes3_ef_with_solve_gurobi_darwin.baseline
deleted file mode 100644
index 5101f289629..00000000000
--- a/pyomo/pysp/tests/unit/baselines/sizes3_ef_with_solve_gurobi_darwin.baseline
+++ /dev/null
@@ -1,400 +0,0 @@
-Importing model and scenario tree files
-Time to import model and scenario tree structure files=0.01 seconds
-Scenario Tree Detail
-----------------------------------------------------
-Tree Nodes:
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- Scenario1Node
- Scenario2Node
- Scenario3Node
- Scenarios:
- Scenario1
- Scenario2
- Scenario3
-
- Name=Scenario1Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- Scenario1
-
- Name=Scenario2Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- Scenario2
-
- Name=Scenario3Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- Scenario3
-
-----------------------------------------------------
-Stages:
- Name=FirstStage
- Tree Nodes:
- RootNode
- Variables:
- NumProducedFirstStage : [*]
- NumUnitsCutFirstStage : [*,*]
- Derived Variables:
- ProduceSizeFirstStage : [*]
- Cost Variable:
- FirstStageCost
-
- Name=SecondStage
- Tree Nodes:
- Scenario1Node
- Scenario2Node
- Scenario3Node
- Variables:
- NumProducedSecondStage : [*]
- NumUnitsCutSecondStage : [*,*]
- Derived Variables:
- ProduceSizeSecondStage : [*]
- Cost Variable:
- SecondStageCost
-
-----------------------------------------------------
-Scenarios:
- Name=Scenario1
- Probability=0.3333
- Leaf node=Scenario1Node
- Tree node sequence:
- RootNode
- Scenario1Node
-
- Name=Scenario2
- Probability=0.3333
- Leaf node=Scenario2Node
- Tree node sequence:
- RootNode
- Scenario2Node
-
- Name=Scenario3
- Probability=0.3333
- Leaf node=Scenario3Node
- Tree node sequence:
- RootNode
- Scenario3Node
-
-----------------------------------------------------
-Scenario tree is valid!
-Initializing ScenarioTreeManagerClientSerial with options:
- * verbose: True
- - disable_gc: False
- - profile: 0
- - traceback: False
- - output_scenario_tree_solution: False
- - solution_saver_extension: ()
- - solution_loader_extension: ()
- - solution_writer: ()
- * output_file: /Users/ghackebeil/Projects/Pyomo/pyomo/pyomo/pysp/tests/unit/test_sizes3_ef.lp
- * solve: True
- - output_scenario_costs: None
- - output_instance_construction_time: False
- - compile_scenario_instances: False
- - output_times: False
- * model_location: /Users/ghackebeil/Projects/Pyomo/pyomo/examples/pysp/sizes/models
- - model_directory: None (DEPRECATED)
- * scenario_tree_location: /Users/ghackebeil/Projects/Pyomo/pyomo/examples/pysp/sizes/SIZES3
- - instance_directory: None (DEPRECATED)
- - objective_sense_stage_based: None
- - postinit_callback_location: ()
- - bounds_cfgfile: None (DEPRECATED)
- - aggregategetter_callback_location: ()
- - aggregate_cfgfile: None (DEPRECATED)
- - scenario_tree_random_seed: None
- - scenario_tree_seed: None (DEPRECATED)
- - scenario_tree_downsample_fraction: 1.0
- - scenario_bundle_specification: None
- - create_random_bundles: 0
- - profile_memory: 0
- - cvar_weight: 1.0
- - generate_weighted_cvar: False
- - risk_alpha: 0.95
- - cc_alpha: 0.0
- - cc_indicator_var: None
- - mipgap: None
- * solver: gurobi
- - solver_io: None
- - solver_manager: serial
- - solver_options: ()
- - disable_warmstart: False
- - pyro_host: None
- - pyro_port: None
- - pyro_shutdown: False
- - shutdown_pyro: None (DEPRECATED)
- - output_solver_results: False
- - symbolic_solver_labels: False
- - output_solver_log: False
- - keep_solver_files: False
- - pyro_shutdown_workers: False
- - shutdown_pyro_workers: None (DEPRECATED)
- - activate_jsonio_solution_saver: None
-
-Constructing scenario tree instances
-Scenario-based instance initialization enabled
-Creating instance for scenario=Scenario1
-Data for scenario=Scenario1 loads from file=/Users/ghackebeil/Projects/Pyomo/pyomo/examples/pysp/sizes/SIZES3/Scenario1.dat
-Creating instance for scenario=Scenario2
-Data for scenario=Scenario2 loads from file=/Users/ghackebeil/Projects/Pyomo/pyomo/examples/pysp/sizes/SIZES3/Scenario2.dat
-Creating instance for scenario=Scenario3
-Data for scenario=Scenario3 loads from file=/Users/ghackebeil/Projects/Pyomo/pyomo/examples/pysp/sizes/SIZES3/Scenario3.dat
-Time to construct scenario instances=0.04 seconds
-Linking instances into scenario tree
-Time link scenario tree with instances=0.00 seconds
-ScenarioTreeManagerClientSerial is successfully initialized
-Overall initialization time=0.05 seconds
-
-Initializing extensive form algorithm for stochastic programming problems.
-Creating extensive form instance
-Creating variables for master binding instance
-Time to construct extensive form instance=0.00 seconds
-Starting to write extensive form
-Extensive form written to file=/Users/ghackebeil/Projects/Pyomo/pyomo/pyomo/pysp/tests/unit/test_sizes3_ef.lp
-Time to write output file=0.03 seconds
-Queuing extensive form solve
-Waiting for extensive form solve
-Done with extensive form solve - loading results
-Storing solution in scenario tree
-Time to solve and load results for the extensive form=0.26 seconds
-EF solve completed and solution status is optimal
-EF solve termination condition is optimal
-EF objective: 224275.33337
-EF gap: 0.00000
-EF bound: 224275.33337
-
-Extensive form solution:
-----------------------------------------------------
-Tree Nodes:
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Variables:
- NumProducedFirstStage[3]=38250.0
- NumProducedFirstStage[5]=45000.0
- NumProducedFirstStage[6]=49500.0
- NumProducedFirstStage[8]=43250.0
- NumProducedFirstStage[10]=24000.0
- NumUnitsCutFirstStage[3,1]=2500.0
- NumUnitsCutFirstStage[3,2]=7500.0
- NumUnitsCutFirstStage[3,3]=12500.0
- NumUnitsCutFirstStage[5,4]=10000.0
- NumUnitsCutFirstStage[5,5]=35000.0
- NumUnitsCutFirstStage[6,6]=25000.0
- NumUnitsCutFirstStage[8,7]=15000.0
- NumUnitsCutFirstStage[8,8]=12500.0
- NumUnitsCutFirstStage[10,9]=12500.0
- NumUnitsCutFirstStage[10,10]=5000.0
- Derived Variables:
- ProduceSizeFirstStage[1]=0.0
- ProduceSizeFirstStage[2]=0.0
- ProduceSizeFirstStage[3]=1.0
- ProduceSizeFirstStage[4]=0.0
- ProduceSizeFirstStage[5]=1.0
- ProduceSizeFirstStage[6]=1.0
- ProduceSizeFirstStage[7]=0.0
- ProduceSizeFirstStage[8]=1.0
- ProduceSizeFirstStage[9]=0.0
- ProduceSizeFirstStage[10]=1.0
-
- Name=Scenario1Node
- Stage=SecondStage
- Parent=RootNode
- Variables:
- NumProducedSecondStage[5]=24500.0
- NumProducedSecondStage[9]=9250.0
- NumUnitsCutSecondStage[3,1]=1750.0
- NumUnitsCutSecondStage[3,2]=5250.0
- NumUnitsCutSecondStage[3,3]=8750.0
- NumUnitsCutSecondStage[5,5]=24500.0
- NumUnitsCutSecondStage[6,4]=7000.0
- NumUnitsCutSecondStage[6,6]=17500.0
- NumUnitsCutSecondStage[8,7]=7000.0
- NumUnitsCutSecondStage[8,8]=8750.0
- NumUnitsCutSecondStage[9,7]=500.0
- NumUnitsCutSecondStage[9,9]=8750.0
- NumUnitsCutSecondStage[10,7]=3000.0
- NumUnitsCutSecondStage[10,10]=3500.0
- Derived Variables:
- ProduceSizeSecondStage[1]=0.0
- ProduceSizeSecondStage[2]=0.0
- ProduceSizeSecondStage[3]=0.0
- ProduceSizeSecondStage[4]=0.0
- ProduceSizeSecondStage[5]=1.0
- ProduceSizeSecondStage[6]=0.0
- ProduceSizeSecondStage[7]=0.0
- ProduceSizeSecondStage[8]=0.0
- ProduceSizeSecondStage[9]=1.0
- ProduceSizeSecondStage[10]=0.0
-
- Name=Scenario2Node
- Stage=SecondStage
- Parent=RootNode
- Variables:
- NumProducedSecondStage[5]=51750.0
- NumProducedSecondStage[9]=23250.0
- NumUnitsCutSecondStage[3,2]=3250.0
- NumUnitsCutSecondStage[3,3]=12500.0
- NumUnitsCutSecondStage[5,1]=2500.0
- NumUnitsCutSecondStage[5,2]=4250.0
- NumUnitsCutSecondStage[5,4]=10000.0
- NumUnitsCutSecondStage[5,5]=35000.0
- NumUnitsCutSecondStage[6,6]=24500.0
- NumUnitsCutSecondStage[8,6]=500.0
- NumUnitsCutSecondStage[8,7]=2750.0
- NumUnitsCutSecondStage[8,8]=12500.0
- NumUnitsCutSecondStage[9,7]=10750.0
- NumUnitsCutSecondStage[9,9]=12500.0
- NumUnitsCutSecondStage[10,7]=1500.0
- NumUnitsCutSecondStage[10,10]=5000.0
- Derived Variables:
- ProduceSizeSecondStage[1]=0.0
- ProduceSizeSecondStage[2]=0.0
- ProduceSizeSecondStage[3]=0.0
- ProduceSizeSecondStage[4]=0.0
- ProduceSizeSecondStage[5]=1.0
- ProduceSizeSecondStage[6]=0.0
- ProduceSizeSecondStage[7]=0.0
- ProduceSizeSecondStage[8]=0.0
- ProduceSizeSecondStage[9]=1.0
- ProduceSizeSecondStage[10]=0.0
-
- Name=Scenario3Node
- Stage=SecondStage
- Parent=RootNode
- Variables:
- NumProducedSecondStage[2]=13000.0
- NumProducedSecondStage[5]=59000.0
- NumProducedSecondStage[7]=27500.0
- NumProducedSecondStage[9]=16750.0
- NumUnitsCutSecondStage[2,1]=3250.0
- NumUnitsCutSecondStage[2,2]=9750.0
- NumUnitsCutSecondStage[3,3]=15750.0
- NumUnitsCutSecondStage[5,3]=500.0
- NumUnitsCutSecondStage[5,4]=13000.0
- NumUnitsCutSecondStage[5,5]=45500.0
- NumUnitsCutSecondStage[6,6]=24500.0
- NumUnitsCutSecondStage[7,6]=8000.0
- NumUnitsCutSecondStage[7,7]=19500.0
- NumUnitsCutSecondStage[8,8]=15750.0
- NumUnitsCutSecondStage[9,8]=500.0
- NumUnitsCutSecondStage[9,9]=16250.0
- NumUnitsCutSecondStage[10,10]=6500.0
- Derived Variables:
- ProduceSizeSecondStage[1]=0.0
- ProduceSizeSecondStage[2]=1.0
- ProduceSizeSecondStage[3]=0.0
- ProduceSizeSecondStage[4]=0.0
- ProduceSizeSecondStage[5]=1.0
- ProduceSizeSecondStage[6]=0.0
- ProduceSizeSecondStage[7]=1.0
- ProduceSizeSecondStage[8]=0.0
- ProduceSizeSecondStage[9]=0.999999999994
- ProduceSizeSecondStage[10]=0.0
-
-
-Extensive form costs:
-Scenario Tree Costs
-----------------------------------------------------
-Tree Nodes:
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- Scenario1Node
- Scenario2Node
- Scenario3Node
- Scenarios:
- Scenario1
- Scenario2
- Scenario3
- Expected cost of (sub)tree rooted at node=224275.3334
-
- Name=Scenario1Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- Scenario1
- Expected cost of (sub)tree rooted at node=28135.8000
-
- Name=Scenario2Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- Scenario2
- Expected cost of (sub)tree rooted at node=61377.2000
-
- Name=Scenario3Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- Scenario3
- Expected cost of (sub)tree rooted at node=94668.2000
-
-----------------------------------------------------
-Scenarios:
-
- Name=Scenario1
- Probability=0.3333
- Leaf Node=Scenario1Node
- Tree node sequence:
- RootNode
- Scenario1Node
- Stage= FirstStage Cost=162881.6000
- Stage= SecondStage Cost=28135.8000
- Total scenario cost=191017.4000
-
- Name=Scenario2
- Probability=0.3333
- Leaf Node=Scenario2Node
- Tree node sequence:
- RootNode
- Scenario2Node
- Stage= FirstStage Cost=162881.6000
- Stage= SecondStage Cost=61377.2000
- Total scenario cost=224258.8000
-
- Name=Scenario3
- Probability=0.3333
- Leaf Node=Scenario3Node
- Tree node sequence:
- RootNode
- Scenario3Node
- Stage= FirstStage Cost=162881.6000
- Stage= SecondStage Cost=94668.2000
- Total scenario cost=257549.8000
-
-----------------------------------------------------
-Closing ScenarioTreeManagerClientSerial
-
-Total EF execution time=0.35 seconds
-
diff --git a/pyomo/pysp/tests/unit/baselines/sizes3_linearized_cplex_with_phpyro.baseline-a b/pyomo/pysp/tests/unit/baselines/sizes3_linearized_cplex_with_phpyro.baseline-a
deleted file mode 100644
index 8452e1e9913..00000000000
--- a/pyomo/pysp/tests/unit/baselines/sizes3_linearized_cplex_with_phpyro.baseline-a
+++ /dev/null
@@ -1,211 +0,0 @@
-Importing module=/Users/ghackebeil/Projects/Pyomo/pyomo/examples/pysp/sizes/config/rhosetter.py
-Module successfully loaded
-Client assigned dispatcher with URI=PYRO://134.253.194.1:33420/86fdc2010b5e21961830507288e4638c01
-Initializing PH
-
-Transmitting user rho callback invocations to phsolverservers
-WW PH Extension: Loading user-specified configuration from file=/home/hudson/slave/workspace/Pyomo_trunk_python2.7_snotra_expensive/src/pyomo/examples/pysp/sizes/config/wwph.cfg
-WW PH Extension: Loading variable suffixes from file=/home/hudson/slave/workspace/Pyomo_trunk_python2.7_snotra_expensive/src/pyomo/examples/pysp/sizes/config/wwph.suffixes
-Starting PH
-
-Initiating PH iteration=0
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162978.2000 Max-Min= 654.60
-Converger=Normalized term diff value is 0.0882 - threshold reached=False
-Cumulative run-time=0.27 seconds
-
-Initiating PH iteration=1
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 152923.2389 Max-Min=20543.80
-Converger=Normalized term diff value is 0.1011 - threshold reached=False
-Cumulative run-time=0.58 seconds
-
-Initiating PH iteration=2
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 146502.9760 Max-Min=12727.18
-Converger=Normalized term diff value is 0.0534 - threshold reached=False
-Cumulative run-time=1.02 seconds
-
-Initiating PH iteration=3
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 141599.6061 Max-Min= 8735.48
-Converger=Normalized term diff value is 0.0450 - threshold reached=False
-Cumulative run-time=1.23 seconds
-
-Initiating PH iteration=4
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 141599.0451 Max-Min= 0.01
-Converger=Normalized term diff value is 0.0000 - threshold reached=True
-Cumulative run-time=1.50 seconds
-
-Number of discrete variables fixed before final plugin calls=0 (total=65)
-Number of continuous variables fixed before final plugin calls=0 (total=0)
-PH complete
-
-Convergence history:
-Converger=Normalized term diff
-Iteration Metric Value
- 0 0.0882
- 1 0.1011
- 2 0.0534
- 3 0.0450
- 4 0.0000
-
-
-Final number of discrete variables fixed=0 (total=65)
-Final number of continuous variables fixed=0 (total=0)
-
-Computing objective inner bound at xhat solution
-
-Computed objective upper bound= 225428.1272
-
-X-hat variable values:
-
- Stage: FirstStage
- (Scenarios: Scenario1 Scenario2 Scenario3 )
- Variable: NumProducedFirstStage
- Index: [3] Values: 39034.0000 39034.0000 39034.0000
-
- Index: [5] Values: 43882.0000 43882.0000 43882.0000
-
- Index: [6] Values: 27426.0000 27426.0000 27426.0000
-
- Index: [7] Values: 24749.0000 24749.0000 24749.0000
-
- Index: [9] Values: 27688.0000 27688.0000 27688.0000
-
- Index: [10] Values: 10608.0000 10608.0000 10608.0000
-
- (Scenarios: Scenario1 Scenario2 Scenario3 )
- Variable: NumUnitsCutFirstStage
- Index: [3,1] Values: 2500.0000 2500.0000 2500.0000
-
- Index: [3,2] Values: 7500.0000 7500.0000 7500.0000
-
- Index: [3,3] Values: 12500.0000 12500.0000 12500.0000
-
- Index: [5,4] Values: 8882.0000 8882.0000 8882.0000
-
- Index: [5,5] Values: 35000.0000 35000.0000 35000.0000
-
- Index: [6,6] Values: 23613.0000 23613.0000 23613.0000
-
- Index: [7,7] Values: 15000.0000 15000.0000 15000.0000
-
- Index: [9,4] Values: 1118.0000 1118.0000 1118.0000
-
- Index: [9,6] Values: 1387.0000 1387.0000 1387.0000
-
- Index: [9,8] Values: 9074.0000 9074.0000 9074.0000
-
- Index: [9,9] Values: 10995.0000 10995.0000 10995.0000
-
- Index: [10,8] Values: 3426.0000 3426.0000 3426.0000
-
- Index: [10,9] Values: 1505.0000 1505.0000 1505.0000
-
- Index: [10,10] Values: 5000.0000 5000.0000 5000.0000
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: Scenario1 Scenario2 Scenario3 )
- Values: 141599.0504 141599.0504 141599.0504 Max-Min: 0.0000 Avg: 141599.0504
-
-X-hat costs:
-
-Scenario Tree Costs
-----------------------------------------------------
-Tree Nodes:
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- Scenario1Node
- Scenario2Node
- Scenario3Node
- Scenarios:
- Scenario1
- Scenario2
- Scenario3
- Expected cost of (sub)tree rooted at node=225428.1272
-
- Name=Scenario1Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- Scenario1
- Expected cost of (sub)tree rooted at node=50836.0400
-
- Name=Scenario2Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- Scenario2
- Expected cost of (sub)tree rooted at node=83689.7648
-
- Name=Scenario3Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- Scenario3
- Expected cost of (sub)tree rooted at node=116961.4256
-
-----------------------------------------------------
-Scenarios:
-
- Name=Scenario1
- Probability=0.3333
- Leaf Node=Scenario1Node
- Tree node sequence:
- RootNode
- Scenario1Node
- Stage= FirstStage Cost=141599.0504
- Stage= SecondStage Cost=50836.0400
- Total scenario cost=192435.0904
-
- Name=Scenario2
- Probability=0.3333
- Leaf Node=Scenario2Node
- Tree node sequence:
- RootNode
- Scenario2Node
- Stage= FirstStage Cost=141599.0504
- Stage= SecondStage Cost=83689.7648
- Total scenario cost=225288.8152
-
- Name=Scenario3
- Probability=0.3333
- Leaf Node=Scenario3Node
- Tree node sequence:
- RootNode
- Scenario3Node
- Stage= FirstStage Cost=141599.0504
- Stage= SecondStage Cost=116961.4256
- Total scenario cost=258560.4760
-
-----------------------------------------------------
-
-
-Total PH execution time=1.62 seconds
-
-
-Total execution time=1.74 seconds
diff --git a/pyomo/pysp/tests/unit/baselines/sizes3_linearized_cplex_with_phpyro.baseline-b b/pyomo/pysp/tests/unit/baselines/sizes3_linearized_cplex_with_phpyro.baseline-b
deleted file mode 100644
index 930c400f070..00000000000
--- a/pyomo/pysp/tests/unit/baselines/sizes3_linearized_cplex_with_phpyro.baseline-b
+++ /dev/null
@@ -1,228 +0,0 @@
-*** Pyro Name Server ***
-Name server listening on: ('0.0.0.0', 9090)
-Broadcast server listening on: ('255.255.255.255', 9090)
-URI is: PYRO://134.253.194.1:9090/86fdc2011d4721230b4f0ebe62bf56b5d7
-URI written to: /home/hudson/slave/workspace/Pyomo_trunk_python2.7_snotra_expensive/src/pyomo/pyomo/gdp/tests/Pyro_NS_URI
-Name Server started.
-Dispatcher is ready.
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI:PYRO://134.253.194.1:7768/86fdc2011d4821230b4f10cbb5cca2072b
-This is worker Worker_7498@snotra.sandia.gov
-Listening for work from dispatcher...
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI:PYRO://134.253.194.1:7768/86fdc2011d4821230b4f10cbb5cca2072b
-This is worker Worker_7497@snotra.sandia.gov
-Listening for work from dispatcher...
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI:PYRO://134.253.194.1:7768/86fdc2011d4821230b4f10cbb5cca2072b
-This is worker Worker_7499@snotra.sandia.gov
-Listening for work from dispatcher...
-Attempting to find Pyro dispatcher object...
-Dispatcher Object URI: PYRO://134.253.194.1:7768/86fdc2011d4821230b4f10cbb5cca2072b
-This is client 7500@snotra.sandia.gov
-Importing module=/Users/ghackebeil/Projects/Pyomo/pyomo/examples/pysp/sizes/config/rhosetter.py
-Module successfully loaded
-Initializing PH
-
-Transmitting user rho callback invocations to phsolverservers
-WW PH Extension: Loading user-specified configuration from file=/home/hudson/slave/workspace/Pyomo_trunk_python2.7_snotra_expensive/src/pyomo/examples/pysp/sizes/config/wwph.cfg
-WW PH Extension: Loading variable suffixes from file=/home/hudson/slave/workspace/Pyomo_trunk_python2.7_snotra_expensive/src/pyomo/examples/pysp/sizes/config/wwph.suffixes
-Starting PH
-
-Initiating PH iteration=0
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-Convergence metric= 0.0882 First stage cost avg= 162978.2000 Max-Min= 654.60
-Cumulative run-time=0.35 seconds
-
-Initiating PH iteration=1
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-Convergence metric= 0.1011 First stage cost avg= 152923.5187 Max-Min=20543.84
-Cumulative run-time=0.59 seconds
-
-Initiating PH iteration=2
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-Convergence metric= 0.0329 First stage cost avg= 146503.7837 Max-Min=12727.18
-Cumulative run-time=0.87 seconds
-
-Initiating PH iteration=3
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-Convergence metric= 0.0245 First stage cost avg= 141600.4139 Max-Min= 8735.48
-Cumulative run-time=1.09 seconds
-
-Initiating PH iteration=4
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-Convergence metric= 0.0000 First stage cost avg= 141599.8528 Max-Min= 0.00
-Cumulative run-time=1.36 seconds
-PH converged - convergence metric is below threshold=0.0001 or all discrete variables are fixed
-Number of discrete variables fixed before final plugin calls=0 (total=65)
-Number of continuous variables fixed before final plugin calls=0 (total=0)
-PH complete
-Convergence history:
-Iteration Metric Value
- 0 0.0882
- 1 0.1011
- 2 0.0329
- 3 0.0245
- 4 0.0000
-
-***********************************************************************************************
->>>THE EXPECTED SUM OF THE STAGE COST VARIABLES=225426.041633<<<
->>>***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise<<<
-***********************************************************************************************
-Final number of discrete variables fixed=0 (total=65)
-Final number of continuous variables fixed=0 (total=0)
-Final variable values:
- Stage: FirstStage
- (Scenarios: Scenario1 Scenario2 Scenario3 )
- Variable: NumProducedFirstStage
- Index: [3] Values: 39034.0000 39034.0000 39034.0000 Max-Min: 0.0000 Avg: 39034.0000
-
- Index: [5] Values: 43882.0000 43882.0000 43882.0000 Max-Min: 0.0000 Avg: 43882.0000
-
- Index: [6] Values: 27426.0000 27426.0000 27426.0000 Max-Min: 0.0000 Avg: 27426.0000
-
- Index: [7] Values: 24750.0000 24750.0000 24750.0000 Max-Min: 0.0000 Avg: 24750.0000
-
- Index: [9] Values: 27688.0000 27688.0000 27688.0000 Max-Min: 0.0000 Avg: 27688.0000
-
- Index: [10] Values: 10608.0000 10608.0000 10608.0000 Max-Min: 0.0000 Avg: 10608.0000
-
- (Scenarios: Scenario1 Scenario2 Scenario3 )
- Variable: NumUnitsCutFirstStage
- Index: [3,1] Values: 2500.0000 2500.0000 2500.0000 Max-Min: 0.0000 Avg: 2500.0000
-
- Index: [3,2] Values: 7500.0000 7500.0000 7500.0000 Max-Min: 0.0000 Avg: 7500.0000
-
- Index: [3,3] Values: 12500.0000 12500.0000 12500.0000 Max-Min: 0.0000 Avg: 12500.0000
-
- Index: [5,4] Values: 8882.0000 8882.0000 8882.0000 Max-Min: 0.0000 Avg: 8882.0000
-
- Index: [5,5] Values: 35000.0000 35000.0000 35000.0000 Max-Min: 0.0000 Avg: 35000.0000
-
- Index: [6,6] Values: 23614.0000 23614.0000 23614.0000 Max-Min: 0.0000 Avg: 23614.0000
-
- Index: [7,7] Values: 15000.0000 15000.0000 15000.0000 Max-Min: 0.0000 Avg: 15000.0000
-
- Index: [9,4] Values: 1118.0000 1118.0000 1118.0000 Max-Min: 0.0000 Avg: 1118.0000
-
- Index: [9,6] Values: 1386.0000 1386.0000 1386.0000 Max-Min: 0.0000 Avg: 1386.0000
-
- Index: [9,8] Values: 9074.0000 9074.0000 9074.0000 Max-Min: 0.0000 Avg: 9074.0000
-
- Index: [9,9] Values: 10995.0000 10995.0000 10995.0000 Max-Min: 0.0000 Avg: 10995.0000
-
- Index: [10,8] Values: 3426.0000 3426.0000 3426.0000 Max-Min: 0.0000 Avg: 3426.0000
-
- Index: [10,9] Values: 1505.0000 1505.0000 1505.0000 Max-Min: 0.0000 Avg: 1505.0000
-
- Index: [10,10] Values: 5000.0000 5000.0000 5000.0000 Max-Min: 0.0000 Avg: 5000.0000
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: Scenario1 Scenario2 Scenario3 )
- Values: 141599.8528 141599.8528 141599.8528 Max-Min: 0.0000 Avg: 141599.8528
-Final costs:
-Scenario Tree Costs
-***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise
-----------------------------------------------------
-Tree Nodes:
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- Scenario1Node
- Scenario2Node
- Scenario3Node
- Scenarios:
- Scenario1
- Scenario2
- Scenario3
- Expected cost of (sub)tree rooted at node=225426.0416
-
- Name=Scenario1Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- Scenario1
- Expected cost of (sub)tree rooted at node=50829.1328
-
- Name=Scenario2Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- Scenario2
- Expected cost of (sub)tree rooted at node=83688.8864
-
- Name=Scenario3Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- Scenario3
- Expected cost of (sub)tree rooted at node=116960.5472
-
-----------------------------------------------------
-Scenarios:
-
- Name=Scenario1
- Probability=0.3333
- Leaf Node=Scenario1Node
- Tree node sequence:
- RootNode
- Scenario1Node
- Stage= FirstStage Cost=141599.8528
- Stage= SecondStage Cost=50829.1328
- Total scenario cost=192428.9856
-
- Name=Scenario2
- Probability=0.3333
- Leaf Node=Scenario2Node
- Tree node sequence:
- RootNode
- Scenario2Node
- Stage= FirstStage Cost=141599.8528
- Stage= SecondStage Cost=83688.8864
- Total scenario cost=225288.7392
-
- Name=Scenario3
- Probability=0.3333
- Leaf Node=Scenario3Node
- Tree node sequence:
- RootNode
- Scenario3Node
- Stage= FirstStage Cost=141599.8528
- Stage= SecondStage Cost=116960.5472
- Total scenario cost=258560.4000
-
-----------------------------------------------------
-
-Total PH execution time=1.40 seconds
-
-
-
-Shutting down Pyro solver components.
-Dispatcher received request to shut down - initiating...
-
-Total execution time=4.78 seconds
-Lost connection to dispatch server - shutting down...
-Lost connection to dispatch server - shutting down...
-Lost connection to dispatch server - shutting down...
-Name Server gracefully stopped.
diff --git a/pyomo/pysp/tests/unit/baselines/sizes3_linearized_cplex_with_phpyro_darwin.baseline b/pyomo/pysp/tests/unit/baselines/sizes3_linearized_cplex_with_phpyro_darwin.baseline
deleted file mode 100644
index 8452e1e9913..00000000000
--- a/pyomo/pysp/tests/unit/baselines/sizes3_linearized_cplex_with_phpyro_darwin.baseline
+++ /dev/null
@@ -1,211 +0,0 @@
-Importing module=/Users/ghackebeil/Projects/Pyomo/pyomo/examples/pysp/sizes/config/rhosetter.py
-Module successfully loaded
-Client assigned dispatcher with URI=PYRO://134.253.194.1:33420/86fdc2010b5e21961830507288e4638c01
-Initializing PH
-
-Transmitting user rho callback invocations to phsolverservers
-WW PH Extension: Loading user-specified configuration from file=/home/hudson/slave/workspace/Pyomo_trunk_python2.7_snotra_expensive/src/pyomo/examples/pysp/sizes/config/wwph.cfg
-WW PH Extension: Loading variable suffixes from file=/home/hudson/slave/workspace/Pyomo_trunk_python2.7_snotra_expensive/src/pyomo/examples/pysp/sizes/config/wwph.suffixes
-Starting PH
-
-Initiating PH iteration=0
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162978.2000 Max-Min= 654.60
-Converger=Normalized term diff value is 0.0882 - threshold reached=False
-Cumulative run-time=0.27 seconds
-
-Initiating PH iteration=1
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 152923.2389 Max-Min=20543.80
-Converger=Normalized term diff value is 0.1011 - threshold reached=False
-Cumulative run-time=0.58 seconds
-
-Initiating PH iteration=2
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 146502.9760 Max-Min=12727.18
-Converger=Normalized term diff value is 0.0534 - threshold reached=False
-Cumulative run-time=1.02 seconds
-
-Initiating PH iteration=3
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 141599.6061 Max-Min= 8735.48
-Converger=Normalized term diff value is 0.0450 - threshold reached=False
-Cumulative run-time=1.23 seconds
-
-Initiating PH iteration=4
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 141599.0451 Max-Min= 0.01
-Converger=Normalized term diff value is 0.0000 - threshold reached=True
-Cumulative run-time=1.50 seconds
-
-Number of discrete variables fixed before final plugin calls=0 (total=65)
-Number of continuous variables fixed before final plugin calls=0 (total=0)
-PH complete
-
-Convergence history:
-Converger=Normalized term diff
-Iteration Metric Value
- 0 0.0882
- 1 0.1011
- 2 0.0534
- 3 0.0450
- 4 0.0000
-
-
-Final number of discrete variables fixed=0 (total=65)
-Final number of continuous variables fixed=0 (total=0)
-
-Computing objective inner bound at xhat solution
-
-Computed objective upper bound= 225428.1272
-
-X-hat variable values:
-
- Stage: FirstStage
- (Scenarios: Scenario1 Scenario2 Scenario3 )
- Variable: NumProducedFirstStage
- Index: [3] Values: 39034.0000 39034.0000 39034.0000
-
- Index: [5] Values: 43882.0000 43882.0000 43882.0000
-
- Index: [6] Values: 27426.0000 27426.0000 27426.0000
-
- Index: [7] Values: 24749.0000 24749.0000 24749.0000
-
- Index: [9] Values: 27688.0000 27688.0000 27688.0000
-
- Index: [10] Values: 10608.0000 10608.0000 10608.0000
-
- (Scenarios: Scenario1 Scenario2 Scenario3 )
- Variable: NumUnitsCutFirstStage
- Index: [3,1] Values: 2500.0000 2500.0000 2500.0000
-
- Index: [3,2] Values: 7500.0000 7500.0000 7500.0000
-
- Index: [3,3] Values: 12500.0000 12500.0000 12500.0000
-
- Index: [5,4] Values: 8882.0000 8882.0000 8882.0000
-
- Index: [5,5] Values: 35000.0000 35000.0000 35000.0000
-
- Index: [6,6] Values: 23613.0000 23613.0000 23613.0000
-
- Index: [7,7] Values: 15000.0000 15000.0000 15000.0000
-
- Index: [9,4] Values: 1118.0000 1118.0000 1118.0000
-
- Index: [9,6] Values: 1387.0000 1387.0000 1387.0000
-
- Index: [9,8] Values: 9074.0000 9074.0000 9074.0000
-
- Index: [9,9] Values: 10995.0000 10995.0000 10995.0000
-
- Index: [10,8] Values: 3426.0000 3426.0000 3426.0000
-
- Index: [10,9] Values: 1505.0000 1505.0000 1505.0000
-
- Index: [10,10] Values: 5000.0000 5000.0000 5000.0000
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: Scenario1 Scenario2 Scenario3 )
- Values: 141599.0504 141599.0504 141599.0504 Max-Min: 0.0000 Avg: 141599.0504
-
-X-hat costs:
-
-Scenario Tree Costs
-----------------------------------------------------
-Tree Nodes:
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- Scenario1Node
- Scenario2Node
- Scenario3Node
- Scenarios:
- Scenario1
- Scenario2
- Scenario3
- Expected cost of (sub)tree rooted at node=225428.1272
-
- Name=Scenario1Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- Scenario1
- Expected cost of (sub)tree rooted at node=50836.0400
-
- Name=Scenario2Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- Scenario2
- Expected cost of (sub)tree rooted at node=83689.7648
-
- Name=Scenario3Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- Scenario3
- Expected cost of (sub)tree rooted at node=116961.4256
-
-----------------------------------------------------
-Scenarios:
-
- Name=Scenario1
- Probability=0.3333
- Leaf Node=Scenario1Node
- Tree node sequence:
- RootNode
- Scenario1Node
- Stage= FirstStage Cost=141599.0504
- Stage= SecondStage Cost=50836.0400
- Total scenario cost=192435.0904
-
- Name=Scenario2
- Probability=0.3333
- Leaf Node=Scenario2Node
- Tree node sequence:
- RootNode
- Scenario2Node
- Stage= FirstStage Cost=141599.0504
- Stage= SecondStage Cost=83689.7648
- Total scenario cost=225288.8152
-
- Name=Scenario3
- Probability=0.3333
- Leaf Node=Scenario3Node
- Tree node sequence:
- RootNode
- Scenario3Node
- Stage= FirstStage Cost=141599.0504
- Stage= SecondStage Cost=116961.4256
- Total scenario cost=258560.4760
-
-----------------------------------------------------
-
-
-Total PH execution time=1.62 seconds
-
-
-Total execution time=1.74 seconds
diff --git a/pyomo/pysp/tests/unit/baselines/sizes3_quadratic_cplex.baseline-a b/pyomo/pysp/tests/unit/baselines/sizes3_quadratic_cplex.baseline-a
deleted file mode 100644
index f42805aa2c0..00000000000
--- a/pyomo/pysp/tests/unit/baselines/sizes3_quadratic_cplex.baseline-a
+++ /dev/null
@@ -1,535 +0,0 @@
-Importing module=/Users/ghackebeil/Projects/Pyomo/pyomo/examples/pysp/sizes/config/rhosetter.py
-Module successfully loaded
-Initializing PH
-
-Executing user rho setter callback function
-WW PH Extension: Loading user-specified configuration from file=/home/hudson/slave/workspace/Pyomo_trunk_python2.7_snotra_expensive/src/pyomo/examples/pysp/sizes/config/wwph.cfg
-WW PH Extension: Loading variable suffixes from file=/home/hudson/slave/workspace/Pyomo_trunk_python2.7_snotra_expensive/src/pyomo/examples/pysp/sizes/config/wwph.suffixes
-Starting PH
-
-Initiating PH iteration=0
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 163129.6000 Max-Min= 703.20
-Converger=Normalized term diff value is 0.1785 - threshold reached=False
-Cumulative run-time=1.82 seconds
-
-Initiating PH iteration=1
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=24 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 163462.4349 Max-Min= 1115.01
-Converger=Normalized term diff value is 0.2036 - threshold reached=False
-Cumulative run-time=4.15 seconds
-
-Initiating PH iteration=2
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=24 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 163508.5069 Max-Min= 204.10
-Converger=Normalized term diff value is 0.1442 - threshold reached=False
-Cumulative run-time=5.78 seconds
-
-Initiating PH iteration=3
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=24 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 163254.2101 Max-Min= 126.24
-Converger=Normalized term diff value is 0.1744 - threshold reached=False
-Cumulative run-time=10.78 seconds
-
-Initiating PH iteration=4
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=24 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162999.0752 Max-Min= 101.79
-Converger=Normalized term diff value is 0.1220 - threshold reached=False
-Cumulative run-time=12.46 seconds
-
-Initiating PH iteration=5
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=24 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162790.2747 Max-Min= 72.00
-Converger=Normalized term diff value is 0.0571 - threshold reached=False
-Cumulative run-time=14.42 seconds
-
-Initiating PH iteration=6
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=24 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162661.0075 Max-Min= 286.04
-Converger=Normalized term diff value is 0.0650 - threshold reached=False
-Cumulative run-time=19.08 seconds
-
-Initiating PH iteration=7
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=24 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162626.4381 Max-Min= 362.22
-Converger=Normalized term diff value is 0.0660 - threshold reached=False
-Cumulative run-time=20.78 seconds
-
-Initiating PH iteration=8
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=24 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162638.2067 Max-Min= 372.72
-Converger=Normalized term diff value is 0.0667 - threshold reached=False
-Cumulative run-time=22.02 seconds
-
-Initiating PH iteration=9
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=24 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162652.9179 Max-Min= 233.28
-Converger=Normalized term diff value is 0.0949 - threshold reached=False
-Cumulative run-time=23.68 seconds
-
-Initiating PH iteration=10
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=24 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162610.6451 Max-Min= 202.32
-Converger=Normalized term diff value is 0.1154 - threshold reached=False
-Cumulative run-time=27.58 seconds
-
-Initiating PH iteration=11
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=24 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162683.0357 Max-Min= 107.73
-Converger=Normalized term diff value is 0.0885 - threshold reached=False
-Cumulative run-time=30.56 seconds
-
-Initiating PH iteration=12
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=24 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162699.7805 Max-Min= 91.32
-Converger=Normalized term diff value is 0.1096 - threshold reached=False
-Cumulative run-time=32.50 seconds
-
-Initiating PH iteration=13
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=24 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162698.8200 Max-Min= 93.97
-Converger=Normalized term diff value is 0.1127 - threshold reached=False
-Cumulative run-time=36.40 seconds
-
-Initiating PH iteration=14
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=24 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162668.0448 Max-Min= 246.69
-Converger=Normalized term diff value is 0.0296 - threshold reached=False
-Cumulative run-time=37.92 seconds
-
-Initiating PH iteration=15
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=24 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162662.7181 Max-Min= 236.99
-Converger=Normalized term diff value is 0.0296 - threshold reached=False
-Cumulative run-time=39.74 seconds
-
-Initiating PH iteration=16
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=24 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162577.1621 Max-Min= 209.12
-Converger=Normalized term diff value is 0.0353 - threshold reached=False
-Cumulative run-time=42.76 seconds
-
-Initiating PH iteration=17
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=24 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162555.0795 Max-Min= 220.37
-Converger=Normalized term diff value is 0.0659 - threshold reached=False
-Cumulative run-time=47.26 seconds
-
-Initiating PH iteration=18
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=24 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162543.2389 Max-Min= 85.53
-Converger=Normalized term diff value is 0.0853 - threshold reached=False
-Cumulative run-time=48.76 seconds
-
-Initiating PH iteration=19
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=24 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162523.1077 Max-Min= 60.43
-Converger=Normalized term diff value is 0.0650 - threshold reached=False
-Cumulative run-time=50.84 seconds
-
-Initiating PH iteration=20
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=24 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162486.0941 Max-Min= 92.46
-Converger=Normalized term diff value is 0.0548 - threshold reached=False
-Cumulative run-time=54.61 seconds
-
-Initiating PH iteration=21
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=24 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162466.0685 Max-Min= 71.26
-Converger=Normalized term diff value is 0.0557 - threshold reached=False
-Cumulative run-time=56.74 seconds
-
-Initiating PH iteration=22
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=24 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162444.6960 Max-Min= 44.19
-Converger=Normalized term diff value is 0.0269 - threshold reached=False
-Cumulative run-time=58.49 seconds
-
-Initiating PH iteration=23
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=24 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162435.7920 Max-Min= 37.93
-Converger=Normalized term diff value is 0.0285 - threshold reached=False
-Cumulative run-time=62.61 seconds
-
-Initiating PH iteration=24
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=24 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162463.3635 Max-Min= 85.47
-Converger=Normalized term diff value is 0.0278 - threshold reached=False
-Cumulative run-time=64.43 seconds
-
-Initiating PH iteration=25
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=24 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162464.5280 Max-Min= 51.34
-Converger=Normalized term diff value is 0.0486 - threshold reached=False
-Cumulative run-time=65.79 seconds
-
-Initiating PH iteration=26
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=24 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162463.9987 Max-Min= 19.39
-Converger=Normalized term diff value is 0.0477 - threshold reached=False
-Cumulative run-time=67.47 seconds
-
-Initiating PH iteration=27
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=24 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162429.1936 Max-Min= 112.26
-Converger=Normalized term diff value is 0.0560 - threshold reached=False
-Cumulative run-time=71.40 seconds
-
-Initiating PH iteration=28
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=24 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162425.1605 Max-Min= 141.85
-Converger=Normalized term diff value is 0.0803 - threshold reached=False
-Cumulative run-time=73.15 seconds
-
-Initiating PH iteration=29
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=24 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162483.7291 Max-Min= 63.39
-Converger=Normalized term diff value is 0.0953 - threshold reached=False
-Cumulative run-time=75.58 seconds
-
-Initiating PH iteration=30
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=24 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162520.4096 Max-Min= 101.13
-Converger=Normalized term diff value is 0.0935 - threshold reached=False
-Cumulative run-time=79.35 seconds
-
-Initiating PH iteration=31
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=24 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162599.9320 Max-Min= 225.50
-Converger=Normalized term diff value is 0.1082 - threshold reached=False
-Cumulative run-time=80.64 seconds
-
-Initiating PH iteration=32
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=24 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162607.5720 Max-Min= 208.57
-Converger=Normalized term diff value is 0.0889 - threshold reached=False
-Cumulative run-time=82.02 seconds
-
-Initiating PH iteration=33
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=24 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162645.6075 Max-Min= 101.77
-Converger=Normalized term diff value is 0.0417 - threshold reached=False
-Cumulative run-time=83.55 seconds
-
-Initiating PH iteration=34
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=24 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162601.1061 Max-Min= 83.78
-Converger=Normalized term diff value is 0.0433 - threshold reached=False
-Cumulative run-time=87.32 seconds
-
-Initiating PH iteration=35
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=24 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162594.3133 Max-Min= 100.28
-Converger=Normalized term diff value is 0.0359 - threshold reached=False
-Cumulative run-time=89.32 seconds
-
-Initiating PH iteration=36
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=24 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162543.7803 Max-Min= 121.41
-Converger=Normalized term diff value is 0.0461 - threshold reached=False
-Cumulative run-time=91.36 seconds
-
-Initiating PH iteration=37
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=24 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162561.0496 Max-Min= 62.10
-Converger=Normalized term diff value is 0.0379 - threshold reached=False
-Cumulative run-time=95.93 seconds
-
-Initiating PH iteration=38
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=24 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162588.2613 Max-Min= 71.90
-Converger=Normalized term diff value is 0.0134 - threshold reached=False
-Cumulative run-time=97.09 seconds
-
-Initiating PH iteration=39
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=24 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162602.5080 Max-Min= 105.28
-Converger=Normalized term diff value is 0.0133 - threshold reached=False
-Cumulative run-time=98.86 seconds
-
-Initiating PH iteration=40
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=39 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162678.2387 Max-Min= 96.08
-Converger=Normalized term diff value is 0.0138 - threshold reached=False
-Cumulative run-time=100.19 seconds
-Halting PH - reached maximal iteration count=40
-
-Number of discrete variables fixed before final plugin calls=39 (total=65)
-Number of continuous variables fixed before final plugin calls=0 (total=0)
-PH complete
-
-Convergence history:
-Converger=Normalized term diff
-Iteration Metric Value
- 0 0.1785
- 1 0.2036
- 2 0.1442
- 3 0.1744
- 4 0.1220
- 5 0.0571
- 6 0.0650
- 7 0.0660
- 8 0.0667
- 9 0.0949
- 10 0.1154
- 11 0.0885
- 12 0.1096
- 13 0.1127
- 14 0.0296
- 15 0.0296
- 16 0.0353
- 17 0.0659
- 18 0.0853
- 19 0.0650
- 20 0.0548
- 21 0.0557
- 22 0.0269
- 23 0.0285
- 24 0.0278
- 25 0.0486
- 26 0.0477
- 27 0.0560
- 28 0.0803
- 29 0.0953
- 30 0.0935
- 31 0.1082
- 32 0.0889
- 33 0.0417
- 34 0.0433
- 35 0.0359
- 36 0.0461
- 37 0.0379
- 38 0.0134
- 39 0.0133
- 40 0.0138
-
-
-Final number of discrete variables fixed=39 (total=65)
-Final number of continuous variables fixed=0 (total=0)
-
-Computing objective inner bound at xhat solution
-
-Computed objective upper bound= 224828.3758
-
-X-hat variable values:
-
- Stage: FirstStage
- (Scenarios: Scenario1 Scenario2 Scenario3 )
- Variable: NumProducedFirstStage
- Index: [3] Values: 38368.0000 38368.0000 38368.0000
-
- Index: [5] Values: 44466.0000 44466.0000 44466.0000
-
- Index: [6] Values: 38285.0000 38285.0000 38285.0000
-
- Index: [7] Values: 17635.0000 17635.0000 17635.0000
-
- Index: [8] Values: 19197.0000 19197.0000 19197.0000
-
- Index: [9] Values: 22680.0000 22680.0000 22680.0000
-
- Index: [10] Values: 18143.0000 18143.0000 18143.0000
-
- (Scenarios: Scenario1 Scenario2 Scenario3 )
- Variable: NumUnitsCutFirstStage
- Index: [3,1] Values: 2500.0000 2500.0000 2500.0000
-
- Index: [3,2] Values: 7500.0000 7500.0000 7500.0000
-
- Index: [3,3] Values: 12500.0000 12500.0000 12500.0000
-
- Index: [5,4] Values: 9490.0000 9490.0000 9490.0000
-
- Index: [5,5] Values: 34976.0000 34976.0000 34976.0000
-
- Index: [6,4] Values: 510.0000 510.0000 510.0000
-
- Index: [6,5] Values: 24.0000 24.0000 24.0000
-
- Index: [6,6] Values: 25000.0000 25000.0000 25000.0000
-
- Index: [7,7] Values: 15000.0000 15000.0000 15000.0000
-
- Index: [8,8] Values: 12396.0000 12396.0000 12396.0000
-
- Index: [9,9] Values: 12500.0000 12500.0000 12500.0000
-
- Index: [10,8] Values: 104.0000 104.0000 104.0000
-
- Index: [10,10] Values: 5000.0000 5000.0000 5000.0000
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: Scenario1 Scenario2 Scenario3 )
- Values: 162736.7624 162736.7624 162736.7624 Max-Min: 0.0000 Avg: 162736.7624
-
-X-hat costs:
-
-Scenario Tree Costs
-----------------------------------------------------
-Tree Nodes:
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- Scenario1Node
- Scenario2Node
- Scenario3Node
- Scenarios:
- Scenario1
- Scenario2
- Scenario3
- Expected cost of (sub)tree rooted at node=224828.3758
-
- Name=Scenario1Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- Scenario1
- Expected cost of (sub)tree rooted at node=28853.3520
-
- Name=Scenario2Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- Scenario2
- Expected cost of (sub)tree rooted at node=61927.7488
-
- Name=Scenario3Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- Scenario3
- Expected cost of (sub)tree rooted at node=95493.7392
-
-----------------------------------------------------
-Scenarios:
-
- Name=Scenario1
- Probability=0.3333
- Leaf Node=Scenario1Node
- Tree node sequence:
- RootNode
- Scenario1Node
- Stage= FirstStage Cost=162736.7624
- Stage= SecondStage Cost=28853.3520
- Total scenario cost=191590.1144
-
- Name=Scenario2
- Probability=0.3333
- Leaf Node=Scenario2Node
- Tree node sequence:
- RootNode
- Scenario2Node
- Stage= FirstStage Cost=162736.7624
- Stage= SecondStage Cost=61927.7488
- Total scenario cost=224664.5112
-
- Name=Scenario3
- Probability=0.3333
- Leaf Node=Scenario3Node
- Tree node sequence:
- RootNode
- Scenario3Node
- Stage= FirstStage Cost=162736.7624
- Stage= SecondStage Cost=95493.7392
- Total scenario cost=258230.5016
-
-----------------------------------------------------
-
-
-Total PH execution time=103.38 seconds
-
-
-Total execution time=103.59 seconds
diff --git a/pyomo/pysp/tests/unit/baselines/sizes3_quadratic_cplex.baseline-b b/pyomo/pysp/tests/unit/baselines/sizes3_quadratic_cplex.baseline-b
deleted file mode 100644
index 4927d0a5244..00000000000
--- a/pyomo/pysp/tests/unit/baselines/sizes3_quadratic_cplex.baseline-b
+++ /dev/null
@@ -1,257 +0,0 @@
-Importing module=/Users/ghackebeil/Projects/Pyomo/pyomo/examples/pysp/sizes/config/rhosetter.py
-Module successfully loaded
-Initializing PH
-
-Executing user rho setter callback function
-WW PH Extension: Loading user-specified configuration from file=/Users/ghackebeil/Projects/Pyomo/pyomo/examples/pysp/sizes/config/wwph.cfg
-WW PH Extension: Loading variable suffixes from file=/Users/ghackebeil/Projects/Pyomo/pyomo/examples/pysp/sizes/config/wwph.suffixes
-Starting PH
-
-Initiating PH iteration=0
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162978.2000 Max-Min= 654.60
-Converger=Normalized term diff value is 0.1460 - threshold reached=False
-Cumulative run-time=0.33 seconds
-
-Initiating PH iteration=1
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 163388.6131 Max-Min= 658.30
-Converger=Normalized term diff value is 0.2314 - threshold reached=False
-Cumulative run-time=0.73 seconds
-
-Initiating PH iteration=2
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 163512.4491 Max-Min= 700.85
-Converger=Normalized term diff value is 0.1746 - threshold reached=False
-Cumulative run-time=1.14 seconds
-
-Initiating PH iteration=3
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 163331.8203 Max-Min= 264.91
-Converger=Normalized term diff value is 0.1340 - threshold reached=False
-Cumulative run-time=1.51 seconds
-
-Initiating PH iteration=4
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 163100.0312 Max-Min= 140.91
-Converger=Normalized term diff value is 0.0841 - threshold reached=False
-Cumulative run-time=1.88 seconds
-
-Initiating PH iteration=5
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162834.7509 Max-Min= 110.32
-Converger=Normalized term diff value is 0.0436 - threshold reached=False
-Cumulative run-time=2.25 seconds
-
-Initiating PH iteration=6
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162589.8104 Max-Min= 59.00
-Converger=Normalized term diff value is 0.0438 - threshold reached=False
-Cumulative run-time=2.68 seconds
-
-Initiating PH iteration=7
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162350.0504 Max-Min= 44.92
-Converger=Normalized term diff value is 0.0237 - threshold reached=False
-Cumulative run-time=3.03 seconds
-
-Initiating PH iteration=8
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162120.3859 Max-Min= 27.80
-Converger=Normalized term diff value is 0.0028 - threshold reached=False
-Cumulative run-time=3.42 seconds
-
-Initiating PH iteration=9
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 161900.3739 Max-Min= 25.41
-Converger=Normalized term diff value is 0.0000 - threshold reached=True
-Cumulative run-time=3.78 seconds
-
-Number of discrete variables fixed before final plugin calls=0 (total=65)
-Number of continuous variables fixed before final plugin calls=0 (total=0)
-PH complete
-
-Convergence history:
-Converger=Normalized term diff
-Iteration Metric Value
- 0 0.1460
- 1 0.2314
- 2 0.1746
- 3 0.1340
- 4 0.0841
- 5 0.0436
- 6 0.0438
- 7 0.0237
- 8 0.0028
- 9 0.0000
-
-
-Final number of discrete variables fixed=0 (total=65)
-Final number of continuous variables fixed=0 (total=0)
-
-Computing objective inner bound at xhat solution
-
-Computed objective upper bound= 225120.0656
-
-X-hat variable values:
-
- Stage: FirstStage
- (Scenarios: Scenario1 Scenario2 Scenario3 )
- Variable: NumProducedFirstStage
- Index: [3] Values: 38446.0000 38446.0000 38446.0000
-
- Index: [5] Values: 44082.0000 44082.0000 44082.0000
-
- Index: [6] Values: 38157.0000 38157.0000 38157.0000
-
- Index: [7] Values: 26001.0000 26001.0000 26001.0000
-
- Index: [8] Values: 8795.0000 8795.0000 8795.0000
-
- Index: [9] Values: 17990.0000 17990.0000 17990.0000
-
- Index: [10] Values: 24207.0000 24207.0000 24207.0000
-
- (Scenarios: Scenario1 Scenario2 Scenario3 )
- Variable: NumUnitsCutFirstStage
- Index: [3,1] Values: 2500.0000 2500.0000 2500.0000
-
- Index: [3,2] Values: 7500.0000 7500.0000 7500.0000
-
- Index: [3,3] Values: 12500.0000 12500.0000 12500.0000
-
- Index: [5,4] Values: 9082.0000 9082.0000 9082.0000
-
- Index: [5,5] Values: 35000.0000 35000.0000 35000.0000
-
- Index: [6,4] Values: 918.0000 918.0000 918.0000
-
- Index: [6,6] Values: 25000.0000 25000.0000 25000.0000
-
- Index: [7,7] Values: 15000.0000 15000.0000 15000.0000
-
- Index: [8,8] Values: 7246.0000 7246.0000 7246.0000
-
- Index: [9,8] Values: 1057.0000 1057.0000 1057.0000
-
- Index: [9,9] Values: 7936.0000 7936.0000 7936.0000
-
- Index: [10,8] Values: 4197.0000 4197.0000 4197.0000
-
- Index: [10,9] Values: 4564.0000 4564.0000 4564.0000
-
- Index: [10,10] Values: 5000.0000 5000.0000 5000.0000
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: Scenario1 Scenario2 Scenario3 )
- Values: 161915.6216 161915.6216 161915.6216 Max-Min: 0.0000 Avg: 161915.6216
-
-X-hat costs:
-
-Scenario Tree Costs
-----------------------------------------------------
-Tree Nodes:
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- Scenario1Node
- Scenario2Node
- Scenario3Node
- Scenarios:
- Scenario1
- Scenario2
- Scenario3
- Expected cost of (sub)tree rooted at node=225120.0656
-
- Name=Scenario1Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- Scenario1
- Expected cost of (sub)tree rooted at node=29865.5264
-
- Name=Scenario2Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- Scenario2
- Expected cost of (sub)tree rooted at node=63085.5168
-
- Name=Scenario3Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- Scenario3
- Expected cost of (sub)tree rooted at node=96662.2888
-
-----------------------------------------------------
-Scenarios:
-
- Name=Scenario1
- Probability=0.3333
- Leaf Node=Scenario1Node
- Tree node sequence:
- RootNode
- Scenario1Node
- Stage= FirstStage Cost=161915.6216
- Stage= SecondStage Cost=29865.5264
- Total scenario cost=191781.1480
-
- Name=Scenario2
- Probability=0.3333
- Leaf Node=Scenario2Node
- Tree node sequence:
- RootNode
- Scenario2Node
- Stage= FirstStage Cost=161915.6216
- Stage= SecondStage Cost=63085.5168
- Total scenario cost=225001.1384
-
- Name=Scenario3
- Probability=0.3333
- Leaf Node=Scenario3Node
- Tree node sequence:
- RootNode
- Scenario3Node
- Stage= FirstStage Cost=161915.6216
- Stage= SecondStage Cost=96662.2888
- Total scenario cost=258577.9104
-
-----------------------------------------------------
-
-
-Total PH execution time=3.94 seconds
-
-
-Total execution time=4.01 seconds
diff --git a/pyomo/pysp/tests/unit/baselines/sizes3_quadratic_cplex.baseline-c b/pyomo/pysp/tests/unit/baselines/sizes3_quadratic_cplex.baseline-c
deleted file mode 100644
index deb4268c5a6..00000000000
--- a/pyomo/pysp/tests/unit/baselines/sizes3_quadratic_cplex.baseline-c
+++ /dev/null
@@ -1,540 +0,0 @@
-Importing module=/Users/ghackebeil/Projects/Pyomo/pyomo/examples/pysp/sizes/config/rhosetter.py
-Module successfully loaded
-Initializing PH
-
-Executing user rho setter callback function
-WW PH Extension: Loading user-specified configuration from file=/Users/ghackebeil/Projects/Pyomo/pyomo/examples/pysp/sizes/config/wwph.cfg
-WW PH Extension: Loading variable suffixes from file=/Users/ghackebeil/Projects/Pyomo/pyomo/examples/pysp/sizes/config/wwph.suffixes
-Starting PH
-
-Initiating PH iteration=0
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162978.2000 Max-Min= 654.60
-Converger=Normalized term diff value is 0.1460 - threshold reached=False
-Cumulative run-time=0.30 seconds
-
-Initiating PH iteration=1
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=24 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 163389.5928 Max-Min= 657.96
-Converger=Normalized term diff value is 0.1722 - threshold reached=False
-Cumulative run-time=0.62 seconds
-
-Initiating PH iteration=2
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=24 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 163513.5541 Max-Min= 703.31
-Converger=Normalized term diff value is 0.1434 - threshold reached=False
-Cumulative run-time=0.92 seconds
-
-Initiating PH iteration=3
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=24 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 163343.2203 Max-Min= 261.64
-Converger=Normalized term diff value is 0.1049 - threshold reached=False
-Cumulative run-time=1.23 seconds
-
-Initiating PH iteration=4
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=24 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 163106.5419 Max-Min= 142.41
-Converger=Normalized term diff value is 0.0435 - threshold reached=False
-Cumulative run-time=1.51 seconds
-
-Initiating PH iteration=5
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=24 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162859.2683 Max-Min= 137.80
-Converger=Normalized term diff value is 0.0466 - threshold reached=False
-Cumulative run-time=1.79 seconds
-
-Initiating PH iteration=6
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=24 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162611.1795 Max-Min= 34.17
-Converger=Normalized term diff value is 0.0400 - threshold reached=False
-Cumulative run-time=2.08 seconds
-
-Initiating PH iteration=7
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=24 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162353.0379 Max-Min= 55.77
-Converger=Normalized term diff value is 0.0578 - threshold reached=False
-Cumulative run-time=2.36 seconds
-
-Initiating PH iteration=8
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=24 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162121.7779 Max-Min= 81.95
-Converger=Normalized term diff value is 0.0521 - threshold reached=False
-Cumulative run-time=2.64 seconds
-
-Initiating PH iteration=9
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=24 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 161905.0131 Max-Min= 38.42
-Converger=Normalized term diff value is 0.0266 - threshold reached=False
-Cumulative run-time=2.91 seconds
-
-Initiating PH iteration=10
-At least one sub-problem solve time was undefined - skipping timing statistics
-At least one sub-problem solve time was undefined - skipping timing statistics
- ** At least one sub-problem failed to solve! **
- Failed sub-problems:
- Scenario3
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=24 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 161800.5427 Max-Min= 239.45
-Converger=Normalized term diff value is 0.0260 - threshold reached=False
-Cumulative run-time=3.16 seconds
-
-Initiating PH iteration=11
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=24 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 161654.7133 Max-Min= 339.88
-Converger=Normalized term diff value is 0.0267 - threshold reached=False
-Cumulative run-time=3.44 seconds
-
-Initiating PH iteration=12
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=24 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 161627.1741 Max-Min= 352.48
-Converger=Normalized term diff value is 0.0518 - threshold reached=False
-Cumulative run-time=3.73 seconds
-
-Initiating PH iteration=13
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=24 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 161674.6837 Max-Min= 298.51
-Converger=Normalized term diff value is 0.0474 - threshold reached=False
-Cumulative run-time=4.01 seconds
-
-Initiating PH iteration=14
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=24 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 161668.0475 Max-Min= 148.33
-Converger=Normalized term diff value is 0.0225 - threshold reached=False
-Cumulative run-time=4.33 seconds
-
-Initiating PH iteration=15
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=24 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 161751.4475 Max-Min= 145.85
-Converger=Normalized term diff value is 0.0034 - threshold reached=False
-Cumulative run-time=4.75 seconds
-
-Initiating PH iteration=16
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=24 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 161781.2312 Max-Min= 148.43
-Converger=Normalized term diff value is 0.0029 - threshold reached=False
-Cumulative run-time=5.11 seconds
-
-Initiating PH iteration=17
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=24 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 161802.6147 Max-Min= 86.24
-Converger=Normalized term diff value is 0.0016 - threshold reached=False
-Cumulative run-time=6.04 seconds
-
-Initiating PH iteration=18
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=24 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 161819.0104 Max-Min= 57.94
-Converger=Normalized term diff value is 0.0227 - threshold reached=False
-Cumulative run-time=6.31 seconds
-
-Initiating PH iteration=19
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=24 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 161825.0443 Max-Min= 103.55
-Converger=Normalized term diff value is 0.0016 - threshold reached=False
-Cumulative run-time=6.61 seconds
-
-Initiating PH iteration=20
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=24 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 161839.5075 Max-Min= 119.32
-Converger=Normalized term diff value is 0.0019 - threshold reached=False
-Cumulative run-time=6.88 seconds
-
-Initiating PH iteration=21
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=24 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 161862.1755 Max-Min= 67.84
-Converger=Normalized term diff value is 0.0014 - threshold reached=False
-Cumulative run-time=7.19 seconds
-
-Initiating PH iteration=22
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=24 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 161924.6392 Max-Min= 113.96
-Converger=Normalized term diff value is 0.0016 - threshold reached=False
-Cumulative run-time=7.46 seconds
-
-Initiating PH iteration=23
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=24 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 161963.7187 Max-Min= 92.56
-Converger=Normalized term diff value is 0.0016 - threshold reached=False
-Cumulative run-time=7.71 seconds
-
-Initiating PH iteration=24
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=24 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 161974.9096 Max-Min= 159.87
-Converger=Normalized term diff value is 0.0014 - threshold reached=False
-Cumulative run-time=7.95 seconds
-
-Initiating PH iteration=25
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=24 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162043.2709 Max-Min= 121.78
-Converger=Normalized term diff value is 0.0036 - threshold reached=False
-Cumulative run-time=8.25 seconds
-
-Initiating PH iteration=26
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=24 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162084.9171 Max-Min= 159.87
-Converger=Normalized term diff value is 0.0020 - threshold reached=False
-Cumulative run-time=8.54 seconds
-
-Initiating PH iteration=27
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=24 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162144.7344 Max-Min= 108.22
-Converger=Normalized term diff value is 0.0021 - threshold reached=False
-Cumulative run-time=8.80 seconds
-
-Initiating PH iteration=28
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=24 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162204.8995 Max-Min= 123.78
-Converger=Normalized term diff value is 0.0015 - threshold reached=False
-Cumulative run-time=9.08 seconds
-
-Initiating PH iteration=29
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=24 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162172.5536 Max-Min= 141.00
-Converger=Normalized term diff value is 0.0016 - threshold reached=False
-Cumulative run-time=9.34 seconds
-
-Initiating PH iteration=30
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=24 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162123.4301 Max-Min= 46.14
-Converger=Normalized term diff value is 0.0015 - threshold reached=False
-Cumulative run-time=9.58 seconds
-
-Initiating PH iteration=31
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=24 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162107.2763 Max-Min= 80.07
-Converger=Normalized term diff value is 0.0011 - threshold reached=False
-Cumulative run-time=9.82 seconds
-
-Initiating PH iteration=32
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=24 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162149.6808 Max-Min= 165.28
-Converger=Normalized term diff value is 0.0007 - threshold reached=False
-Cumulative run-time=10.07 seconds
-
-Initiating PH iteration=33
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=24 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162186.6648 Max-Min= 94.57
-Converger=Normalized term diff value is 0.0033 - threshold reached=False
-Cumulative run-time=10.34 seconds
-
-Initiating PH iteration=34
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=24 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162240.0731 Max-Min= 39.17
-Converger=Normalized term diff value is 0.0022 - threshold reached=False
-Cumulative run-time=10.75 seconds
-
-Initiating PH iteration=35
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=24 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162296.5851 Max-Min= 58.12
-Converger=Normalized term diff value is 0.0226 - threshold reached=False
-Cumulative run-time=11.14 seconds
-
-Initiating PH iteration=36
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=24 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162313.6795 Max-Min= 85.72
-Converger=Normalized term diff value is 0.0234 - threshold reached=False
-Cumulative run-time=11.57 seconds
-
-Initiating PH iteration=37
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=24 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162307.0365 Max-Min= 116.97
-Converger=Normalized term diff value is 0.0233 - threshold reached=False
-Cumulative run-time=11.81 seconds
-
-Initiating PH iteration=38
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=24 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162325.3864 Max-Min= 127.43
-Converger=Normalized term diff value is 0.0235 - threshold reached=False
-Cumulative run-time=12.06 seconds
-
-Initiating PH iteration=39
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=24 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162402.9509 Max-Min= 57.75
-Converger=Normalized term diff value is 0.0453 - threshold reached=False
-Cumulative run-time=12.31 seconds
-
-Initiating PH iteration=40
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=44 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162401.2464 Max-Min= 174.48
-Converger=Normalized term diff value is 0.0220 - threshold reached=False
-Cumulative run-time=12.58 seconds
-Halting PH - reached maximal iteration count=40
-
-Number of discrete variables fixed before final plugin calls=44 (total=65)
-Number of continuous variables fixed before final plugin calls=0 (total=0)
-PH complete
-
-Convergence history:
-Converger=Normalized term diff
-Iteration Metric Value
- 0 0.1460
- 1 0.1722
- 2 0.1434
- 3 0.1049
- 4 0.0435
- 5 0.0466
- 6 0.0400
- 7 0.0578
- 8 0.0521
- 9 0.0266
- 10 0.0260
- 11 0.0267
- 12 0.0518
- 13 0.0474
- 14 0.0225
- 15 0.0034
- 16 0.0029
- 17 0.0016
- 18 0.0227
- 19 0.0016
- 20 0.0019
- 21 0.0014
- 22 0.0016
- 23 0.0016
- 24 0.0014
- 25 0.0036
- 26 0.0020
- 27 0.0021
- 28 0.0015
- 29 0.0016
- 30 0.0015
- 31 0.0011
- 32 0.0007
- 33 0.0033
- 34 0.0022
- 35 0.0226
- 36 0.0234
- 37 0.0233
- 38 0.0235
- 39 0.0453
- 40 0.0220
-
-
-Final number of discrete variables fixed=44 (total=65)
-Final number of continuous variables fixed=0 (total=0)
-
-Computing objective inner bound at xhat solution
-
-Computed objective upper bound= 225001.9030
-
-X-hat variable values:
-
- Stage: FirstStage
- (Scenarios: Scenario1 Scenario2 Scenario3 )
- Variable: NumProducedFirstStage
- Index: [3] Values: 38213.0000 38213.0000 38213.0000
-
- Index: [5] Values: 44509.0000 44509.0000 44509.0000
-
- Index: [6] Values: 38405.0000 38405.0000 38405.0000
-
- Index: [7] Values: 26219.0000 26219.0000 26219.0000
-
- Index: [8] Values: 9101.0000 9101.0000 9101.0000
-
- Index: [9] Values: 18039.0000 18039.0000 18039.0000
-
- Index: [10] Values: 23948.0000 23948.0000 23948.0000
-
- (Scenarios: Scenario1 Scenario2 Scenario3 )
- Variable: NumUnitsCutFirstStage
- Index: [3,1] Values: 2500.0000 2500.0000 2500.0000
-
- Index: [3,2] Values: 7500.0000 7500.0000 7500.0000
-
- Index: [3,3] Values: 12500.0000 12500.0000 12500.0000
-
- Index: [5,4] Values: 9509.0000 9509.0000 9509.0000
-
- Index: [5,5] Values: 35000.0000 35000.0000 35000.0000
-
- Index: [6,4] Values: 491.0000 491.0000 491.0000
-
- Index: [6,6] Values: 25000.0000 25000.0000 25000.0000
-
- Index: [7,7] Values: 15000.0000 15000.0000 15000.0000
-
- Index: [8,8] Values: 9101.0000 9101.0000 9101.0000
-
- Index: [9,9] Values: 11141.0000 11141.0000 11141.0000
-
- Index: [10,8] Values: 3399.0000 3399.0000 3399.0000
-
- Index: [10,9] Values: 1359.0000 1359.0000 1359.0000
-
- Index: [10,10] Values: 5000.0000 5000.0000 5000.0000
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: Scenario1 Scenario2 Scenario3 )
- Values: 162482.1568 162482.1568 162482.1568 Max-Min: 0.0000 Avg: 162482.1568
-
-X-hat costs:
-
-Scenario Tree Costs
-----------------------------------------------------
-Tree Nodes:
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- Scenario1Node
- Scenario2Node
- Scenario3Node
- Scenarios:
- Scenario1
- Scenario2
- Scenario3
- Expected cost of (sub)tree rooted at node=225001.9030
-
- Name=Scenario1Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- Scenario1
- Expected cost of (sub)tree rooted at node=29034.0872
-
- Name=Scenario2Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- Scenario2
- Expected cost of (sub)tree rooted at node=62467.3704
-
- Name=Scenario3Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- Scenario3
- Expected cost of (sub)tree rooted at node=96057.7808
-
-----------------------------------------------------
-Scenarios:
-
- Name=Scenario1
- Probability=0.3333
- Leaf Node=Scenario1Node
- Tree node sequence:
- RootNode
- Scenario1Node
- Stage= FirstStage Cost=162482.1568
- Stage= SecondStage Cost=29034.0872
- Total scenario cost=191516.2440
-
- Name=Scenario2
- Probability=0.3333
- Leaf Node=Scenario2Node
- Tree node sequence:
- RootNode
- Scenario2Node
- Stage= FirstStage Cost=162482.1568
- Stage= SecondStage Cost=62467.3704
- Total scenario cost=224949.5272
-
- Name=Scenario3
- Probability=0.3333
- Leaf Node=Scenario3Node
- Tree node sequence:
- RootNode
- Scenario3Node
- Stage= FirstStage Cost=162482.1568
- Stage= SecondStage Cost=96057.7808
- Total scenario cost=258539.9376
-
-----------------------------------------------------
-
-
-Total PH execution time=12.71 seconds
-
-
-Total execution time=12.79 seconds
diff --git a/pyomo/pysp/tests/unit/baselines/sizes3_quadratic_cplex_direct.baseline-a b/pyomo/pysp/tests/unit/baselines/sizes3_quadratic_cplex_direct.baseline-a
deleted file mode 100644
index 065357b45a5..00000000000
--- a/pyomo/pysp/tests/unit/baselines/sizes3_quadratic_cplex_direct.baseline-a
+++ /dev/null
@@ -1,547 +0,0 @@
-Importing module=/Users/ghackebeil/Projects/Pyomo/pyomo/examples/pysp/sizes/config/rhosetter.py
-Module successfully loaded
-Initializing PH
-
-Executing user rho setter callback function
-WW PH Extension: Loading user-specified configuration from file=/home/hudson/slave/workspace/Pyomo_trunk_python2.7_snotra_expensive/src/pyomo/examples/pysp/sizes/config/wwph.cfg
-WW PH Extension: Loading variable suffixes from file=/home/hudson/slave/workspace/Pyomo_trunk_python2.7_snotra_expensive/src/pyomo/examples/pysp/sizes/config/wwph.suffixes
-Starting PH
-
-Initiating PH iteration=0
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162890.6667 Max-Min= 668.20
-Converger=Normalized term diff value is 0.1472 - threshold reached=False
-Cumulative run-time=1.81 seconds
-
-Initiating PH iteration=1
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=24 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 163317.3104 Max-Min= 331.50
-Converger=Normalized term diff value is 0.1974 - threshold reached=False
-Cumulative run-time=4.28 seconds
-
-Initiating PH iteration=2
-Warning: integer solution contains unscaled infeasibilities.
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=24 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 163359.0749 Max-Min= 1216.70
-Converger=Normalized term diff value is 0.1653 - threshold reached=False
-Cumulative run-time=7.21 seconds
-
-Initiating PH iteration=3
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=24 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 163160.0824 Max-Min= 103.82
-Converger=Normalized term diff value is 0.0973 - threshold reached=False
-Cumulative run-time=10.79 seconds
-
-Initiating PH iteration=4
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=24 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162965.3651 Max-Min= 4.88
-Converger=Normalized term diff value is 0.0556 - threshold reached=False
-Cumulative run-time=13.23 seconds
-
-Initiating PH iteration=5
-Warning: integer solution contains unscaled infeasibilities.
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=24 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162769.0939 Max-Min= 17.46
-Converger=Normalized term diff value is 0.0022 - threshold reached=False
-Cumulative run-time=15.26 seconds
-
-Initiating PH iteration=6
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=24 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162551.0349 Max-Min= 11.59
-Converger=Normalized term diff value is 0.0036 - threshold reached=False
-Cumulative run-time=20.09 seconds
-
-Initiating PH iteration=7
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=24 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162339.9192 Max-Min= 31.68
-Converger=Normalized term diff value is 0.0041 - threshold reached=False
-Cumulative run-time=21.60 seconds
-
-Initiating PH iteration=8
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=24 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162120.1040 Max-Min= 18.32
-Converger=Normalized term diff value is 0.0014 - threshold reached=False
-Cumulative run-time=23.54 seconds
-
-Initiating PH iteration=9
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=24 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 161922.3211 Max-Min= 38.44
-Converger=Normalized term diff value is 0.0018 - threshold reached=False
-Cumulative run-time=27.46 seconds
-
-Initiating PH iteration=10
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=24 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 161743.7659 Max-Min= 55.44
-Converger=Normalized term diff value is 0.0006 - threshold reached=False
-Cumulative run-time=28.48 seconds
-
-Initiating PH iteration=11
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=24 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 161640.8632 Max-Min= 257.23
-Converger=Normalized term diff value is 0.0220 - threshold reached=False
-Cumulative run-time=30.48 seconds
-
-Initiating PH iteration=12
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=24 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 161629.8437 Max-Min= 269.92
-Converger=Normalized term diff value is 0.0217 - threshold reached=False
-Cumulative run-time=32.48 seconds
-
-Initiating PH iteration=13
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=24 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 161672.3224 Max-Min= 293.43
-Converger=Normalized term diff value is 0.0220 - threshold reached=False
-Cumulative run-time=36.67 seconds
-
-Initiating PH iteration=14
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=24 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 161738.5549 Max-Min= 68.23
-Converger=Normalized term diff value is 0.0016 - threshold reached=False
-Cumulative run-time=39.12 seconds
-
-Initiating PH iteration=15
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=24 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 161788.9792 Max-Min= 131.81
-Converger=Normalized term diff value is 0.0013 - threshold reached=False
-Cumulative run-time=41.38 seconds
-
-Initiating PH iteration=16
-Warning: integer solution contains unscaled infeasibilities.
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=24 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 161843.1616 Max-Min= 164.43
-Converger=Normalized term diff value is 0.0014 - threshold reached=False
-Cumulative run-time=46.09 seconds
-
-Initiating PH iteration=17
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=24 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 161864.7176 Max-Min= 169.69
-Converger=Normalized term diff value is 0.0015 - threshold reached=False
-Cumulative run-time=48.09 seconds
-
-Initiating PH iteration=18
-Warning: integer solution contains unscaled infeasibilities.
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=24 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 161966.2888 Max-Min= 168.92
-Converger=Normalized term diff value is 0.0027 - threshold reached=False
-Cumulative run-time=50.52 seconds
-
-Initiating PH iteration=19
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=24 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162038.7387 Max-Min= 91.64
-Converger=Normalized term diff value is 0.0024 - threshold reached=False
-Cumulative run-time=54.54 seconds
-
-Initiating PH iteration=20
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=24 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162073.2461 Max-Min= 121.51
-Converger=Normalized term diff value is 0.0028 - threshold reached=False
-Cumulative run-time=56.08 seconds
-
-Initiating PH iteration=21
-Warning: integer solution contains unscaled infeasibilities.
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=24 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162129.4125 Max-Min= 53.40
-Converger=Normalized term diff value is 0.0032 - threshold reached=False
-Cumulative run-time=57.82 seconds
-
-Initiating PH iteration=22
-Warning: integer solution contains unscaled infeasibilities.
-Warning: integer solution contains unscaled infeasibilities.
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=24 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162155.6504 Max-Min= 71.51
-Converger=Normalized term diff value is 0.0016 - threshold reached=False
-Cumulative run-time=62.36 seconds
-
-Initiating PH iteration=23
-Warning: integer solution contains unscaled infeasibilities.
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=24 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162159.0109 Max-Min= 66.15
-Converger=Normalized term diff value is 0.0009 - threshold reached=False
-Cumulative run-time=64.31 seconds
-
-Initiating PH iteration=24
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=24 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162165.2573 Max-Min= 7.09
-Converger=Normalized term diff value is 0.0020 - threshold reached=False
-Cumulative run-time=66.26 seconds
-
-Initiating PH iteration=25
-Warning: integer solution contains unscaled infeasibilities.
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=24 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162170.0323 Max-Min= 0.09
-Converger=Normalized term diff value is 0.0023 - threshold reached=False
-Cumulative run-time=70.53 seconds
-
-Initiating PH iteration=26
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=24 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162193.7955 Max-Min= 57.12
-Converger=Normalized term diff value is 0.0225 - threshold reached=False
-Cumulative run-time=72.42 seconds
-
-Initiating PH iteration=27
-Warning: integer solution contains unscaled infeasibilities.
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=24 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162221.6576 Max-Min= 14.97
-Converger=Normalized term diff value is 0.0226 - threshold reached=False
-Cumulative run-time=74.21 seconds
-
-Initiating PH iteration=28
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=24 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162226.2731 Max-Min= 14.14
-Converger=Normalized term diff value is 0.0225 - threshold reached=False
-Cumulative run-time=78.78 seconds
-
-Initiating PH iteration=29
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=24 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162241.8155 Max-Min= 49.73
-Converger=Normalized term diff value is 0.0228 - threshold reached=False
-Cumulative run-time=81.58 seconds
-
-Initiating PH iteration=30
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=24 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162254.9160 Max-Min= 25.13
-Converger=Normalized term diff value is 0.0257 - threshold reached=False
-Cumulative run-time=83.40 seconds
-
-Initiating PH iteration=31
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=24 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162273.3165 Max-Min= 77.31
-Converger=Normalized term diff value is 0.0256 - threshold reached=False
-Cumulative run-time=87.76 seconds
-
-Initiating PH iteration=32
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=24 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162285.4248 Max-Min= 29.99
-Converger=Normalized term diff value is 0.0258 - threshold reached=False
-Cumulative run-time=89.17 seconds
-
-Initiating PH iteration=33
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=24 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162284.9016 Max-Min= 97.26
-Converger=Normalized term diff value is 0.0038 - threshold reached=False
-Cumulative run-time=90.61 seconds
-
-Initiating PH iteration=34
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=24 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162275.1693 Max-Min= 88.35
-Converger=Normalized term diff value is 0.0039 - threshold reached=False
-Cumulative run-time=93.23 seconds
-
-Initiating PH iteration=35
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=24 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162275.8899 Max-Min= 117.34
-Converger=Normalized term diff value is 0.0118 - threshold reached=False
-Cumulative run-time=97.71 seconds
-
-Initiating PH iteration=36
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=24 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162300.3043 Max-Min= 118.97
-Converger=Normalized term diff value is 0.0138 - threshold reached=False
-Cumulative run-time=99.12 seconds
-
-Initiating PH iteration=37
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=24 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162257.6901 Max-Min= 117.65
-Converger=Normalized term diff value is 0.0174 - threshold reached=False
-Cumulative run-time=100.61 seconds
-
-Initiating PH iteration=38
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=24 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162220.5096 Max-Min= 32.77
-Converger=Normalized term diff value is 0.0083 - threshold reached=False
-Cumulative run-time=104.63 seconds
-
-Initiating PH iteration=39
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=24 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162250.3456 Max-Min= 135.92
-Converger=Normalized term diff value is 0.0325 - threshold reached=False
-Cumulative run-time=106.93 seconds
-
-Initiating PH iteration=40
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=44 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162292.5501 Max-Min= 21.70
-Converger=Normalized term diff value is 0.0332 - threshold reached=False
-Cumulative run-time=108.50 seconds
-Halting PH - reached maximal iteration count=40
-
-Number of discrete variables fixed before final plugin calls=44 (total=65)
-Number of continuous variables fixed before final plugin calls=0 (total=0)
-PH complete
-
-Convergence history:
-Converger=Normalized term diff
-Iteration Metric Value
- 0 0.1472
- 1 0.1974
- 2 0.1653
- 3 0.0973
- 4 0.0556
- 5 0.0022
- 6 0.0036
- 7 0.0041
- 8 0.0014
- 9 0.0018
- 10 0.0006
- 11 0.0220
- 12 0.0217
- 13 0.0220
- 14 0.0016
- 15 0.0013
- 16 0.0014
- 17 0.0015
- 18 0.0027
- 19 0.0024
- 20 0.0028
- 21 0.0032
- 22 0.0016
- 23 0.0009
- 24 0.0020
- 25 0.0023
- 26 0.0225
- 27 0.0226
- 28 0.0225
- 29 0.0228
- 30 0.0257
- 31 0.0256
- 32 0.0258
- 33 0.0038
- 34 0.0039
- 35 0.0118
- 36 0.0138
- 37 0.0174
- 38 0.0083
- 39 0.0325
- 40 0.0332
-
-
-Final number of discrete variables fixed=44 (total=65)
-Final number of continuous variables fixed=0 (total=0)
-
-Computing objective inner bound at xhat solution
-Warning: No solution found from 1 MIP starts.
-Warning: No solution found from 1 MIP starts.
-
-Computed objective upper bound= 224923.7387
-
-X-hat variable values:
-
- Stage: FirstStage
- (Scenarios: Scenario1 Scenario2 Scenario3 )
- Variable: NumProducedFirstStage
- Index: [3] Values: 38250.0000 38250.0000 38250.0000
-
- Index: [5] Values: 44718.0000 44718.0000 44718.0000
-
- Index: [6] Values: 38509.0000 38509.0000 38509.0000
-
- Index: [7] Values: 29363.0000 29363.0000 29363.0000
-
- Index: [8] Values: 8352.0000 8352.0000 8352.0000
-
- Index: [9] Values: 18334.0000 18334.0000 18334.0000
-
- Index: [10] Values: 20795.0000 20795.0000 20795.0000
-
- (Scenarios: Scenario1 Scenario2 Scenario3 )
- Variable: NumUnitsCutFirstStage
- Index: [3,1] Values: 2500.0000 2500.0000 2500.0000
-
- Index: [3,2] Values: 7500.0000 7500.0000 7500.0000
-
- Index: [3,3] Values: 12500.0000 12500.0000 12500.0000
-
- Index: [5,4] Values: 9718.0000 9718.0000 9718.0000
-
- Index: [5,5] Values: 35000.0000 35000.0000 35000.0000
-
- Index: [6,4] Values: 282.0000 282.0000 282.0000
-
- Index: [6,6] Values: 25000.0000 25000.0000 25000.0000
-
- Index: [7,7] Values: 15000.0000 15000.0000 15000.0000
-
- Index: [8,8] Values: 8352.0000 8352.0000 8352.0000
-
- Index: [9,9] Values: 12282.0000 12282.0000 12282.0000
-
- Index: [10,8] Values: 4148.0000 4148.0000 4148.0000
-
- Index: [10,9] Values: 218.0000 218.0000 218.0000
-
- Index: [10,10] Values: 5000.0000 5000.0000 5000.0000
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: Scenario1 Scenario2 Scenario3 )
- Values: 158223.0968 156869.8040 158131.3728 Max-Min: 1353.2928 Avg: 157741.4245
-
-X-hat costs:
-
-Scenario Tree Costs
-----------------------------------------------------
-Tree Nodes:
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- Scenario1Node
- Scenario2Node
- Scenario3Node
- Scenarios:
- Scenario1
- Scenario2
- Scenario3
- Expected cost of (sub)tree rooted at node=225405.4110
-
- Name=Scenario1Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- Scenario1
- Expected cost of (sub)tree rooted at node=33128.1680
-
- Name=Scenario2Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- Scenario2
- Expected cost of (sub)tree rooted at node=68183.3480
-
- Name=Scenario3Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- Scenario3
- Expected cost of (sub)tree rooted at node=100235.4264
-
-----------------------------------------------------
-Scenarios:
-
- Name=Scenario1
- Probability=0.3333
- Leaf Node=Scenario1Node
- Tree node sequence:
- RootNode
- Scenario1Node
- Stage= FirstStage Cost=158223.0968
- Stage= SecondStage Cost=33128.1680
- Total scenario cost=191351.2648
-
- Name=Scenario2
- Probability=0.3333
- Leaf Node=Scenario2Node
- Tree node sequence:
- RootNode
- Scenario2Node
- Stage= FirstStage Cost=156869.8040
- Stage= SecondStage Cost=68183.3480
- Total scenario cost=225053.1520
-
- Name=Scenario3
- Probability=0.3333
- Leaf Node=Scenario3Node
- Tree node sequence:
- RootNode
- Scenario3Node
- Stage= FirstStage Cost=158131.3728
- Stage= SecondStage Cost=100235.4264
- Total scenario cost=258366.7992
-
-----------------------------------------------------
-
-
-Total PH execution time=112.45 seconds
-
-
-Total execution time=112.68 seconds
diff --git a/pyomo/pysp/tests/unit/baselines/sizes3_quadratic_cplex_direct.baseline-b b/pyomo/pysp/tests/unit/baselines/sizes3_quadratic_cplex_direct.baseline-b
deleted file mode 100644
index bd4ba59060f..00000000000
--- a/pyomo/pysp/tests/unit/baselines/sizes3_quadratic_cplex_direct.baseline-b
+++ /dev/null
@@ -1,547 +0,0 @@
-Importing module=/Users/ghackebeil/Projects/Pyomo/pyomo/examples/pysp/sizes/config/rhosetter.py
-Module successfully loaded
-Initializing PH
-
-Executing user rho setter callback function
-WW PH Extension: Loading user-specified configuration from file=/Users/ghackebeil/Projects/Pyomo/pyomo/examples/pysp/sizes/config/wwph.cfg
-WW PH Extension: Loading variable suffixes from file=/Users/ghackebeil/Projects/Pyomo/pyomo/examples/pysp/sizes/config/wwph.suffixes
-Starting PH
-
-Initiating PH iteration=0
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162978.2000 Max-Min= 654.60
-Converger=Normalized term diff value is 0.0882 - threshold reached=False
-Cumulative run-time=0.32 seconds
-
-Initiating PH iteration=1
-Warning: integer solution contains unscaled infeasibilities.
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 163147.9997 Max-Min= 492.27
-Converger=Normalized term diff value is 0.1013 - threshold reached=False
-Cumulative run-time=0.68 seconds
-
-Initiating PH iteration=2
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162937.1301 Max-Min= 752.77
-Converger=Normalized term diff value is 0.1018 - threshold reached=False
-Cumulative run-time=1.02 seconds
-
-Initiating PH iteration=3
-Warning: integer solution contains unscaled infeasibilities.
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162770.8448 Max-Min= 147.84
-Converger=Normalized term diff value is 0.0562 - threshold reached=False
-Cumulative run-time=1.38 seconds
-
-Initiating PH iteration=4
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162656.2067 Max-Min= 112.08
-Converger=Normalized term diff value is 0.0278 - threshold reached=False
-Cumulative run-time=1.65 seconds
-
-Initiating PH iteration=5
-Warning: integer solution contains unscaled infeasibilities.
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162470.0355 Max-Min= 118.42
-Converger=Normalized term diff value is 0.0333 - threshold reached=False
-Cumulative run-time=1.95 seconds
-
-Initiating PH iteration=6
-Warning: integer solution contains unscaled infeasibilities.
-Warning: integer solution contains unscaled infeasibilities.
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162249.5509 Max-Min= 87.42
-Converger=Normalized term diff value is 0.0501 - threshold reached=False
-Cumulative run-time=2.22 seconds
-
-Initiating PH iteration=7
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162063.8077 Max-Min= 108.17
-Converger=Normalized term diff value is 0.0541 - threshold reached=False
-Cumulative run-time=2.45 seconds
-
-Initiating PH iteration=8
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 161835.7072 Max-Min= 93.42
-Converger=Normalized term diff value is 0.0539 - threshold reached=False
-Cumulative run-time=2.66 seconds
-
-Initiating PH iteration=9
-Warning: integer solution contains unscaled infeasibilities.
-At least one sub-problem solve time was undefined - skipping timing statistics
-At least one sub-problem solve time was undefined - skipping timing statistics
- ** At least one sub-problem failed to solve! **
- Failed sub-problems:
- Scenario3
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 161807.6232 Max-Min= 159.28
-Converger=Normalized term diff value is 0.0433 - threshold reached=False
-Cumulative run-time=2.88 seconds
-
-Initiating PH iteration=10
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 161597.2539 Max-Min= 247.81
-Converger=Normalized term diff value is 0.0117 - threshold reached=False
-Cumulative run-time=3.09 seconds
-
-Initiating PH iteration=11
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 161408.6685 Max-Min= 146.83
-Converger=Normalized term diff value is 0.0231 - threshold reached=False
-Cumulative run-time=3.29 seconds
-
-Initiating PH iteration=12
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 161245.9907 Max-Min= 171.92
-Converger=Normalized term diff value is 0.0468 - threshold reached=False
-Cumulative run-time=3.49 seconds
-
-Initiating PH iteration=13
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 161035.5347 Max-Min= 297.41
-Converger=Normalized term diff value is 0.0456 - threshold reached=False
-Cumulative run-time=3.69 seconds
-
-Initiating PH iteration=14
-Warning: integer solution contains unscaled infeasibilities.
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 160801.5949 Max-Min= 129.24
-Converger=Normalized term diff value is 0.0262 - threshold reached=False
-Cumulative run-time=3.88 seconds
-
-Initiating PH iteration=15
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 160722.5744 Max-Min= 302.18
-Converger=Normalized term diff value is 0.0255 - threshold reached=False
-Cumulative run-time=4.10 seconds
-
-Initiating PH iteration=16
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 160632.4485 Max-Min= 339.05
-Converger=Normalized term diff value is 0.0517 - threshold reached=False
-Cumulative run-time=4.31 seconds
-
-Initiating PH iteration=17
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 160625.6517 Max-Min= 337.14
-Converger=Normalized term diff value is 0.0627 - threshold reached=False
-Cumulative run-time=4.50 seconds
-
-Initiating PH iteration=18
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 160688.2136 Max-Min= 57.95
-Converger=Normalized term diff value is 0.0208 - threshold reached=False
-Cumulative run-time=4.70 seconds
-
-Initiating PH iteration=19
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 160735.4963 Max-Min= 115.59
-Converger=Normalized term diff value is 0.0310 - threshold reached=False
-Cumulative run-time=4.91 seconds
-
-Initiating PH iteration=20
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 160747.4133 Max-Min= 118.88
-Converger=Normalized term diff value is 0.0311 - threshold reached=False
-Cumulative run-time=5.10 seconds
-
-Initiating PH iteration=21
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 160779.0213 Max-Min= 194.68
-Converger=Normalized term diff value is 0.0311 - threshold reached=False
-Cumulative run-time=5.34 seconds
-
-Initiating PH iteration=22
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 160917.1536 Max-Min= 281.87
-Converger=Normalized term diff value is 0.0315 - threshold reached=False
-Cumulative run-time=5.51 seconds
-
-Initiating PH iteration=23
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 160989.0592 Max-Min= 169.84
-Converger=Normalized term diff value is 0.0330 - threshold reached=False
-Cumulative run-time=5.71 seconds
-
-Initiating PH iteration=24
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 161013.6883 Max-Min= 162.67
-Converger=Normalized term diff value is 0.0333 - threshold reached=False
-Cumulative run-time=5.90 seconds
-
-Initiating PH iteration=25
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 161067.8664 Max-Min= 100.57
-Converger=Normalized term diff value is 0.0108 - threshold reached=False
-Cumulative run-time=6.10 seconds
-
-Initiating PH iteration=26
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 161085.0232 Max-Min= 69.51
-Converger=Normalized term diff value is 0.0106 - threshold reached=False
-Cumulative run-time=6.29 seconds
-
-Initiating PH iteration=27
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 161073.9123 Max-Min= 185.00
-Converger=Normalized term diff value is 0.0209 - threshold reached=False
-Cumulative run-time=6.49 seconds
-
-Initiating PH iteration=28
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 161086.5840 Max-Min= 134.04
-Converger=Normalized term diff value is 0.0224 - threshold reached=False
-Cumulative run-time=6.69 seconds
-
-Initiating PH iteration=29
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 161070.2989 Max-Min= 70.24
-Converger=Normalized term diff value is 0.0224 - threshold reached=False
-Cumulative run-time=6.89 seconds
-
-Initiating PH iteration=30
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=4 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 161078.0216 Max-Min= 90.46
-Converger=Normalized term diff value is 0.0224 - threshold reached=False
-Cumulative run-time=7.07 seconds
-
-Initiating PH iteration=31
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=4 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 161127.7992 Max-Min= 75.52
-Converger=Normalized term diff value is 0.0226 - threshold reached=False
-Cumulative run-time=7.25 seconds
-
-Initiating PH iteration=32
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=4 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 161169.2789 Max-Min= 69.45
-Converger=Normalized term diff value is 0.0226 - threshold reached=False
-Cumulative run-time=7.49 seconds
-
-Initiating PH iteration=33
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=4 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 161186.1341 Max-Min= 65.66
-Converger=Normalized term diff value is 0.0226 - threshold reached=False
-Cumulative run-time=7.74 seconds
-
-Initiating PH iteration=34
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=4 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 161267.4152 Max-Min= 131.68
-Converger=Normalized term diff value is 0.0247 - threshold reached=False
-Cumulative run-time=7.98 seconds
-
-Initiating PH iteration=35
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=4 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 161316.8003 Max-Min= 26.65
-Converger=Normalized term diff value is 0.0454 - threshold reached=False
-Cumulative run-time=8.25 seconds
-
-Initiating PH iteration=36
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=4 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 161343.0373 Max-Min= 40.55
-Converger=Normalized term diff value is 0.0417 - threshold reached=False
-Cumulative run-time=8.54 seconds
-
-Initiating PH iteration=37
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=4 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 161371.8304 Max-Min= 74.58
-Converger=Normalized term diff value is 0.0430 - threshold reached=False
-Cumulative run-time=8.80 seconds
-
-Initiating PH iteration=38
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=4 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 161401.1019 Max-Min= 57.80
-Converger=Normalized term diff value is 0.0318 - threshold reached=False
-Cumulative run-time=9.06 seconds
-
-Initiating PH iteration=39
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=4 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 161426.7573 Max-Min= 32.94
-Converger=Normalized term diff value is 0.0315 - threshold reached=False
-Cumulative run-time=9.32 seconds
-
-Initiating PH iteration=40
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=44 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 161427.0584 Max-Min= 33.14
-Converger=Normalized term diff value is 0.0315 - threshold reached=False
-Cumulative run-time=9.56 seconds
-Halting PH - reached maximal iteration count=40
-
-Number of discrete variables fixed before final plugin calls=44 (total=65)
-Number of continuous variables fixed before final plugin calls=0 (total=0)
-PH complete
-
-Convergence history:
-Converger=Normalized term diff
-Iteration Metric Value
- 0 0.0882
- 1 0.1013
- 2 0.1018
- 3 0.0562
- 4 0.0278
- 5 0.0333
- 6 0.0501
- 7 0.0541
- 8 0.0539
- 9 0.0433
- 10 0.0117
- 11 0.0231
- 12 0.0468
- 13 0.0456
- 14 0.0262
- 15 0.0255
- 16 0.0517
- 17 0.0627
- 18 0.0208
- 19 0.0310
- 20 0.0311
- 21 0.0311
- 22 0.0315
- 23 0.0330
- 24 0.0333
- 25 0.0108
- 26 0.0106
- 27 0.0209
- 28 0.0224
- 29 0.0224
- 30 0.0224
- 31 0.0226
- 32 0.0226
- 33 0.0226
- 34 0.0247
- 35 0.0454
- 36 0.0417
- 37 0.0430
- 38 0.0318
- 39 0.0315
- 40 0.0315
-
-
-Final number of discrete variables fixed=44 (total=65)
-Final number of continuous variables fixed=0 (total=0)
-
-Computing objective inner bound at xhat solution
-Warning: No solution found from 1 MIP starts.
-Warning: No solution found from 1 MIP starts.
-
-Computed objective upper bound= 224659.0795
-
-X-hat variable values:
-
- Stage: FirstStage
- (Scenarios: Scenario1 Scenario2 Scenario3 )
- Variable: NumProducedFirstStage
- Index: [3] Values: 38278.0000 38278.0000 38278.0000
-
- Index: [5] Values: 45143.0000 45143.0000 45143.0000
-
- Index: [6] Values: 39561.0000 39561.0000 39561.0000
-
- Index: [7] Values: 27220.0000 27220.0000 27220.0000
-
- Index: [9] Values: 27999.0000 27999.0000 27999.0000
-
- Index: [10] Values: 19485.0000 19485.0000 19485.0000
-
- (Scenarios: Scenario1 Scenario2 Scenario3 )
- Variable: NumUnitsCutFirstStage
- Index: [3,1] Values: 2495.0000 2495.0000 2495.0000
-
- Index: [3,2] Values: 7411.0000 7411.0000 7411.0000
-
- Index: [3,3] Values: 12500.0000 12500.0000 12500.0000
-
- Index: [5,1] Values: 5.0000 5.0000 5.0000
-
- Index: [5,2] Values: 89.0000 89.0000 89.0000
-
- Index: [5,4] Values: 10000.0000 10000.0000 10000.0000
-
- Index: [5,5] Values: 35000.0000 35000.0000 35000.0000
-
- Index: [6,6] Values: 25000.0000 25000.0000 25000.0000
-
- Index: [7,7] Values: 15000.0000 15000.0000 15000.0000
-
- Index: [9,8] Values: 4515.0000 4515.0000 4515.0000
-
- Index: [9,9] Values: 12500.0000 12500.0000 12500.0000
-
- Index: [10,8] Values: 7985.0000 7985.0000 7985.0000
-
- Index: [10,10] Values: 5000.0000 5000.0000 5000.0000
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: Scenario1 Scenario2 Scenario3 )
- Values: 156954.7776 160167.8720 161430.2720 Max-Min: 4475.4944 Avg: 159517.6405
-
-X-hat costs:
-
-Scenario Tree Costs
-----------------------------------------------------
-Tree Nodes:
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- Scenario1Node
- Scenario2Node
- Scenario3Node
- Scenarios:
- Scenario1
- Scenario2
- Scenario3
- Expected cost of (sub)tree rooted at node=222096.2166
-
- Name=Scenario1Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- Scenario1
- Expected cost of (sub)tree rooted at node=34057.7768
-
- Name=Scenario2Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- Scenario2
- Expected cost of (sub)tree rooted at node=64636.2624
-
- Name=Scenario3Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- Scenario3
- Expected cost of (sub)tree rooted at node=96730.2776
-
-----------------------------------------------------
-Scenarios:
-
- Name=Scenario1
- Probability=0.3333
- Leaf Node=Scenario1Node
- Tree node sequence:
- RootNode
- Scenario1Node
- Stage= FirstStage Cost=156954.7776
- Stage= SecondStage Cost=34057.7768
- Total scenario cost=191012.5544
-
- Name=Scenario2
- Probability=0.3333
- Leaf Node=Scenario2Node
- Tree node sequence:
- RootNode
- Scenario2Node
- Stage= FirstStage Cost=160167.8720
- Stage= SecondStage Cost=64636.2624
- Total scenario cost=224804.1344
-
- Name=Scenario3
- Probability=0.3333
- Leaf Node=Scenario3Node
- Tree node sequence:
- RootNode
- Scenario3Node
- Stage= FirstStage Cost=161430.2720
- Stage= SecondStage Cost=96730.2776
- Total scenario cost=258160.5496
-
-----------------------------------------------------
-
-
-Total PH execution time=9.68 seconds
-
-
-Total execution time=9.76 seconds
diff --git a/pyomo/pysp/tests/unit/baselines/sizes3_quadratic_cplex_direct.baseline-c b/pyomo/pysp/tests/unit/baselines/sizes3_quadratic_cplex_direct.baseline-c
deleted file mode 100644
index 2a18021cba6..00000000000
--- a/pyomo/pysp/tests/unit/baselines/sizes3_quadratic_cplex_direct.baseline-c
+++ /dev/null
@@ -1,548 +0,0 @@
-Importing module=/Users/ghackebeil/Projects/Pyomo/pyomo/examples/pysp/sizes/config/rhosetter.py
-Module successfully loaded
-Initializing PH
-
-Executing user rho setter callback function
-WW PH Extension: Loading user-specified configuration from file=/Users/ghackebeil/Projects/Pyomo/pyomo/examples/pysp/sizes/config/wwph.cfg
-WW PH Extension: Loading variable suffixes from file=/Users/ghackebeil/Projects/Pyomo/pyomo/examples/pysp/sizes/config/wwph.suffixes
-Starting PH
-
-Initiating PH iteration=0
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162978.2000 Max-Min= 654.60
-Converger=Normalized term diff value is 0.0882 - threshold reached=False
-Cumulative run-time=0.27 seconds
-
-Initiating PH iteration=1
-Warning: integer solution contains unscaled infeasibilities.
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=26 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 163147.9805 Max-Min= 492.28
-Converger=Normalized term diff value is 0.1013 - threshold reached=False
-Cumulative run-time=0.49 seconds
-
-Initiating PH iteration=2
-Warning: integer solution contains unscaled infeasibilities.
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=26 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162938.1595 Max-Min= 751.21
-Converger=Normalized term diff value is 0.0607 - threshold reached=False
-Cumulative run-time=0.71 seconds
-
-Initiating PH iteration=3
-Warning: integer solution contains unscaled infeasibilities.
-At least one sub-problem solve time was undefined - skipping timing statistics
-At least one sub-problem solve time was undefined - skipping timing statistics
- ** At least one sub-problem failed to solve! **
- Failed sub-problems:
- Scenario3
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=26 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162947.9989 Max-Min= 521.32
-Converger=Normalized term diff value is 0.0399 - threshold reached=False
-Cumulative run-time=0.98 seconds
-
-Initiating PH iteration=4
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=26 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162736.5965 Max-Min= 538.34
-Converger=Normalized term diff value is 0.0368 - threshold reached=False
-Cumulative run-time=1.18 seconds
-
-Initiating PH iteration=5
-Warning: integer solution contains unscaled infeasibilities.
-Warning: integer solution contains unscaled infeasibilities.
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=26 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162524.2136 Max-Min= 2.00
-Converger=Normalized term diff value is 0.0536 - threshold reached=False
-Cumulative run-time=1.39 seconds
-
-Initiating PH iteration=6
-Warning: integer solution contains unscaled infeasibilities.
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=26 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162312.6619 Max-Min= 1.59
-Converger=Normalized term diff value is 0.0387 - threshold reached=False
-Cumulative run-time=1.61 seconds
-
-Initiating PH iteration=7
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=26 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162090.5840 Max-Min= 32.32
-Converger=Normalized term diff value is 0.0108 - threshold reached=False
-Cumulative run-time=1.80 seconds
-
-Initiating PH iteration=8
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=26 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 161862.9021 Max-Min= 14.44
-Converger=Normalized term diff value is 0.0039 - threshold reached=False
-Cumulative run-time=2.02 seconds
-
-Initiating PH iteration=9
-Warning: integer solution contains unscaled infeasibilities.
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=26 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 161639.6128 Max-Min= 13.18
-Converger=Normalized term diff value is 0.0055 - threshold reached=False
-Cumulative run-time=2.20 seconds
-
-Initiating PH iteration=10
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=26 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 161409.0245 Max-Min= 22.71
-Converger=Normalized term diff value is 0.0056 - threshold reached=False
-Cumulative run-time=2.38 seconds
-
-Initiating PH iteration=11
-Warning: integer solution contains unscaled infeasibilities.
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=26 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 161184.7795 Max-Min= 19.87
-Converger=Normalized term diff value is 0.0174 - threshold reached=False
-Cumulative run-time=2.57 seconds
-
-Initiating PH iteration=12
-Warning: integer solution contains unscaled infeasibilities.
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=26 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 160962.0429 Max-Min= 43.89
-Converger=Normalized term diff value is 0.0041 - threshold reached=False
-Cumulative run-time=2.77 seconds
-
-Initiating PH iteration=13
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=26 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 160740.6936 Max-Min= 21.54
-Converger=Normalized term diff value is 0.0047 - threshold reached=False
-Cumulative run-time=2.95 seconds
-
-Initiating PH iteration=14
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=26 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 160669.0411 Max-Min= 238.68
-Converger=Normalized term diff value is 0.0173 - threshold reached=False
-Cumulative run-time=3.14 seconds
-
-Initiating PH iteration=15
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=26 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 160588.7011 Max-Min= 393.44
-Converger=Normalized term diff value is 0.0183 - threshold reached=False
-Cumulative run-time=3.30 seconds
-
-Initiating PH iteration=16
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=26 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 160598.2491 Max-Min= 323.07
-Converger=Normalized term diff value is 0.0124 - threshold reached=False
-Cumulative run-time=3.47 seconds
-
-Initiating PH iteration=17
-Warning: integer solution contains unscaled infeasibilities.
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=26 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 160667.7667 Max-Min= 43.36
-Converger=Normalized term diff value is 0.0122 - threshold reached=False
-Cumulative run-time=3.69 seconds
-
-Initiating PH iteration=18
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=26 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 160708.2917 Max-Min= 58.21
-Converger=Normalized term diff value is 0.0121 - threshold reached=False
-Cumulative run-time=3.94 seconds
-
-Initiating PH iteration=19
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=26 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 160727.9976 Max-Min= 25.30
-Converger=Normalized term diff value is 0.0160 - threshold reached=False
-Cumulative run-time=4.20 seconds
-
-Initiating PH iteration=20
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=26 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 160718.8749 Max-Min= 6.01
-Converger=Normalized term diff value is 0.0015 - threshold reached=False
-Cumulative run-time=4.45 seconds
-
-Initiating PH iteration=21
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=26 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 160791.9971 Max-Min= 72.47
-Converger=Normalized term diff value is 0.0016 - threshold reached=False
-Cumulative run-time=4.63 seconds
-
-Initiating PH iteration=22
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=26 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 160836.9771 Max-Min= 70.72
-Converger=Normalized term diff value is 0.0016 - threshold reached=False
-Cumulative run-time=4.81 seconds
-
-Initiating PH iteration=23
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=26 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 160874.8837 Max-Min= 65.00
-Converger=Normalized term diff value is 0.0016 - threshold reached=False
-Cumulative run-time=4.98 seconds
-
-Initiating PH iteration=24
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=26 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 160882.0549 Max-Min= 33.47
-Converger=Normalized term diff value is 0.0015 - threshold reached=False
-Cumulative run-time=5.36 seconds
-
-Initiating PH iteration=25
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=26 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 160883.9480 Max-Min= 15.99
-Converger=Normalized term diff value is 0.0015 - threshold reached=False
-Cumulative run-time=5.52 seconds
-
-Initiating PH iteration=26
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=26 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 160902.8632 Max-Min= 35.36
-Converger=Normalized term diff value is 0.0035 - threshold reached=False
-Cumulative run-time=5.69 seconds
-
-Initiating PH iteration=27
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=26 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 160934.5651 Max-Min= 115.19
-Converger=Normalized term diff value is 0.0020 - threshold reached=False
-Cumulative run-time=5.87 seconds
-
-Initiating PH iteration=28
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=26 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 160970.4509 Max-Min= 50.25
-Converger=Normalized term diff value is 0.0015 - threshold reached=False
-Cumulative run-time=6.05 seconds
-
-Initiating PH iteration=29
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=26 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 160988.8552 Max-Min= 39.96
-Converger=Normalized term diff value is 0.0004 - threshold reached=False
-Cumulative run-time=6.22 seconds
-
-Initiating PH iteration=30
-Warning: integer solution contains unscaled infeasibilities.
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=26 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 160986.9157 Max-Min= 29.91
-Converger=Normalized term diff value is 0.0008 - threshold reached=False
-Cumulative run-time=6.43 seconds
-
-Initiating PH iteration=31
-Warning: integer solution contains unscaled infeasibilities.
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=26 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 160988.9944 Max-Min= 25.61
-Converger=Normalized term diff value is 0.0007 - threshold reached=False
-Cumulative run-time=6.65 seconds
-
-Initiating PH iteration=32
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=26 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 161002.5880 Max-Min= 17.94
-Converger=Normalized term diff value is 0.0007 - threshold reached=False
-Cumulative run-time=6.85 seconds
-
-Initiating PH iteration=33
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=26 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 161013.2197 Max-Min= 3.68
-Converger=Normalized term diff value is 0.0006 - threshold reached=False
-Cumulative run-time=7.03 seconds
-
-Initiating PH iteration=34
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=26 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 161022.9408 Max-Min= 19.98
-Converger=Normalized term diff value is 0.0006 - threshold reached=False
-Cumulative run-time=7.21 seconds
-
-Initiating PH iteration=35
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=26 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 161027.1624 Max-Min= 27.17
-Converger=Normalized term diff value is 0.0005 - threshold reached=False
-Cumulative run-time=7.39 seconds
-
-Initiating PH iteration=36
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=26 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 161028.3987 Max-Min= 28.07
-Converger=Normalized term diff value is 0.0004 - threshold reached=False
-Cumulative run-time=7.58 seconds
-
-Initiating PH iteration=37
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=26 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 161022.7640 Max-Min= 19.22
-Converger=Normalized term diff value is 0.0004 - threshold reached=False
-Cumulative run-time=7.75 seconds
-
-Initiating PH iteration=38
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=26 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 161067.9760 Max-Min= 149.14
-Converger=Normalized term diff value is 0.0031 - threshold reached=False
-Cumulative run-time=7.93 seconds
-
-Initiating PH iteration=39
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=26 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 161114.1856 Max-Min= 30.70
-Converger=Normalized term diff value is 0.0024 - threshold reached=False
-Cumulative run-time=8.11 seconds
-
-Initiating PH iteration=40
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=47 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 161124.4051 Max-Min= 46.93
-Converger=Normalized term diff value is 0.0023 - threshold reached=False
-Cumulative run-time=8.28 seconds
-Halting PH - reached maximal iteration count=40
-
-Number of discrete variables fixed before final plugin calls=47 (total=65)
-Number of continuous variables fixed before final plugin calls=0 (total=0)
-PH complete
-
-Convergence history:
-Converger=Normalized term diff
-Iteration Metric Value
- 0 0.0882
- 1 0.1013
- 2 0.0607
- 3 0.0399
- 4 0.0368
- 5 0.0536
- 6 0.0387
- 7 0.0108
- 8 0.0039
- 9 0.0055
- 10 0.0056
- 11 0.0174
- 12 0.0041
- 13 0.0047
- 14 0.0173
- 15 0.0183
- 16 0.0124
- 17 0.0122
- 18 0.0121
- 19 0.0160
- 20 0.0015
- 21 0.0016
- 22 0.0016
- 23 0.0016
- 24 0.0015
- 25 0.0015
- 26 0.0035
- 27 0.0020
- 28 0.0015
- 29 0.0004
- 30 0.0008
- 31 0.0007
- 32 0.0007
- 33 0.0006
- 34 0.0006
- 35 0.0005
- 36 0.0004
- 37 0.0004
- 38 0.0031
- 39 0.0024
- 40 0.0023
-
-
-Final number of discrete variables fixed=47 (total=65)
-Final number of continuous variables fixed=0 (total=0)
-
-Computing objective inner bound at xhat solution
-Warning: No solution found from 1 MIP starts.
-Warning: No solution found from 1 MIP starts.
-
-Computed objective upper bound= 224666.1590
-
-X-hat variable values:
-
- Stage: FirstStage
- (Scenarios: Scenario1 Scenario2 Scenario3 )
- Variable: NumProducedFirstStage
- Index: [3] Values: 38269.0000 38269.0000 38269.0000
-
- Index: [5] Values: 45037.0000 45037.0000 45037.0000
-
- Index: [6] Values: 39338.0000 39338.0000 39338.0000
-
- Index: [7] Values: 27198.0000 27198.0000 27198.0000
-
- Index: [9] Values: 27828.0000 27828.0000 27828.0000
-
- Index: [10] Values: 19656.0000 19656.0000 19656.0000
-
- (Scenarios: Scenario1 Scenario2 Scenario3 )
- Variable: NumUnitsCutFirstStage
- Index: [3,1] Values: 2500.0000 2500.0000 2500.0000
-
- Index: [3,2] Values: 7500.0000 7500.0000 7500.0000
-
- Index: [3,3] Values: 12500.0000 12500.0000 12500.0000
-
- Index: [5,4] Values: 10000.0000 10000.0000 10000.0000
-
- Index: [5,5] Values: 35000.0000 35000.0000 35000.0000
-
- Index: [6,6] Values: 25000.0000 25000.0000 25000.0000
-
- Index: [7,7] Values: 15000.0000 15000.0000 15000.0000
-
- Index: [9,8] Values: 4344.0000 4344.0000 4344.0000
-
- Index: [9,9] Values: 12500.0000 12500.0000 12500.0000
-
- Index: [10,8] Values: 8156.0000 8156.0000 8156.0000
-
- Index: [10,10] Values: 5000.0000 5000.0000 5000.0000
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: Scenario1 Scenario2 Scenario3 )
- Values: 156748.8968 159882.8048 161145.2048 Max-Min: 4396.3080 Avg: 159258.9688
-
-X-hat costs:
-
-Scenario Tree Costs
-----------------------------------------------------
-Tree Nodes:
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- Scenario1Node
- Scenario2Node
- Scenario3Node
- Scenarios:
- Scenario1
- Scenario2
- Scenario3
- Expected cost of (sub)tree rooted at node=222156.0870
-
- Name=Scenario1Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- Scenario1
- Expected cost of (sub)tree rooted at node=34270.1320
-
- Name=Scenario2Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- Scenario2
- Expected cost of (sub)tree rooted at node=64932.6704
-
- Name=Scenario3Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- Scenario3
- Expected cost of (sub)tree rooted at node=97018.7680
-
-----------------------------------------------------
-Scenarios:
-
- Name=Scenario1
- Probability=0.3333
- Leaf Node=Scenario1Node
- Tree node sequence:
- RootNode
- Scenario1Node
- Stage= FirstStage Cost=156748.8968
- Stage= SecondStage Cost=34270.1320
- Total scenario cost=191019.0288
-
- Name=Scenario2
- Probability=0.3333
- Leaf Node=Scenario2Node
- Tree node sequence:
- RootNode
- Scenario2Node
- Stage= FirstStage Cost=159882.8048
- Stage= SecondStage Cost=64932.6704
- Total scenario cost=224815.4752
-
- Name=Scenario3
- Probability=0.3333
- Leaf Node=Scenario3Node
- Tree node sequence:
- RootNode
- Scenario3Node
- Stage= FirstStage Cost=161145.2048
- Stage= SecondStage Cost=97018.7680
- Total scenario cost=258163.9728
-
-----------------------------------------------------
-
-
-Total PH execution time=8.39 seconds
-
-
-Total execution time=8.46 seconds
diff --git a/pyomo/pysp/tests/unit/baselines/sizes3_quadratic_cplex_with_phpyro.baseline-a b/pyomo/pysp/tests/unit/baselines/sizes3_quadratic_cplex_with_phpyro.baseline-a
deleted file mode 100644
index b0214f0621b..00000000000
--- a/pyomo/pysp/tests/unit/baselines/sizes3_quadratic_cplex_with_phpyro.baseline-a
+++ /dev/null
@@ -1,534 +0,0 @@
-Importing module=/Users/ghackebeil/Projects/Pyomo/pyomo/examples/pysp/sizes/config/rhosetter.py
-Module successfully loaded
-Client assigned dispatcher with URI=PYRO://134.253.194.1:33420/86fdc2010b5e21961830507288e4638c01
-Initializing PH
-
-Transmitting user rho callback invocations to phsolverservers
-WW PH Extension: Loading user-specified configuration from file=/home/hudson/slave/workspace/Pyomo_trunk_python2.7_snotra_expensive/src/pyomo/examples/pysp/sizes/config/wwph.cfg
-WW PH Extension: Loading variable suffixes from file=/home/hudson/slave/workspace/Pyomo_trunk_python2.7_snotra_expensive/src/pyomo/examples/pysp/sizes/config/wwph.suffixes
-Starting PH
-
-Initiating PH iteration=0
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162978.2000 Max-Min= 654.60
-Converger=Normalized term diff value is 0.0882 - threshold reached=False
-Cumulative run-time=0.27 seconds
-
-Initiating PH iteration=1
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 163147.9944 Max-Min= 492.27
-Converger=Normalized term diff value is 0.1013 - threshold reached=False
-Cumulative run-time=0.43 seconds
-
-Initiating PH iteration=2
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162937.1248 Max-Min= 752.76
-Converger=Normalized term diff value is 0.1018 - threshold reached=False
-Cumulative run-time=0.57 seconds
-
-Initiating PH iteration=3
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162770.5755 Max-Min= 147.05
-Converger=Normalized term diff value is 0.0562 - threshold reached=False
-Cumulative run-time=0.73 seconds
-
-Initiating PH iteration=4
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162621.8688 Max-Min= 67.16
-Converger=Normalized term diff value is 0.0579 - threshold reached=False
-Cumulative run-time=0.87 seconds
-
-Initiating PH iteration=5
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162473.6584 Max-Min= 9.80
-Converger=Normalized term diff value is 0.0523 - threshold reached=False
-Cumulative run-time=1.01 seconds
-
-Initiating PH iteration=6
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162315.4139 Max-Min= 31.73
-Converger=Normalized term diff value is 0.0410 - threshold reached=False
-Cumulative run-time=1.14 seconds
-
-Initiating PH iteration=7
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162140.7184 Max-Min= 48.44
-Converger=Normalized term diff value is 0.0464 - threshold reached=False
-Cumulative run-time=1.29 seconds
-
-Initiating PH iteration=8
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 161952.3469 Max-Min= 43.48
-Converger=Normalized term diff value is 0.0308 - threshold reached=False
-Cumulative run-time=1.44 seconds
-
-Initiating PH iteration=9
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 161730.9464 Max-Min= 33.37
-Converger=Normalized term diff value is 0.0003 - threshold reached=False
-Cumulative run-time=1.59 seconds
-
-Initiating PH iteration=10
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 161501.0381 Max-Min= 20.08
-Converger=Normalized term diff value is 0.0018 - threshold reached=False
-Cumulative run-time=1.74 seconds
-
-Initiating PH iteration=11
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 161271.0429 Max-Min= 3.62
-Converger=Normalized term diff value is 0.0046 - threshold reached=False
-Cumulative run-time=1.88 seconds
-
-Initiating PH iteration=12
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 161061.1736 Max-Min= 45.46
-Converger=Normalized term diff value is 0.0412 - threshold reached=False
-Cumulative run-time=2.03 seconds
-
-Initiating PH iteration=13
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 160867.3267 Max-Min= 28.15
-Converger=Normalized term diff value is 0.0210 - threshold reached=False
-Cumulative run-time=2.16 seconds
-
-Initiating PH iteration=14
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 160759.8419 Max-Min= 249.80
-Converger=Normalized term diff value is 0.0207 - threshold reached=False
-Cumulative run-time=2.29 seconds
-
-Initiating PH iteration=15
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 160758.3304 Max-Min= 312.94
-Converger=Normalized term diff value is 0.0213 - threshold reached=False
-Cumulative run-time=2.42 seconds
-
-Initiating PH iteration=16
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 160822.1981 Max-Min= 194.55
-Converger=Normalized term diff value is 0.0093 - threshold reached=False
-Cumulative run-time=2.57 seconds
-
-Initiating PH iteration=17
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 160884.1368 Max-Min= 5.02
-Converger=Normalized term diff value is 0.0012 - threshold reached=False
-Cumulative run-time=3.01 seconds
-
-Initiating PH iteration=18
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 160943.8451 Max-Min= 6.67
-Converger=Normalized term diff value is 0.0013 - threshold reached=False
-Cumulative run-time=3.15 seconds
-
-Initiating PH iteration=19
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 161001.8805 Max-Min= 4.16
-Converger=Normalized term diff value is 0.0008 - threshold reached=False
-Cumulative run-time=3.29 seconds
-
-Initiating PH iteration=20
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 161059.6216 Max-Min= 1.67
-Converger=Normalized term diff value is 0.0007 - threshold reached=False
-Cumulative run-time=3.76 seconds
-
-Initiating PH iteration=21
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 161117.6536 Max-Min= 0.04
-Converger=Normalized term diff value is 0.0008 - threshold reached=False
-Cumulative run-time=3.89 seconds
-
-Initiating PH iteration=22
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 161175.6856 Max-Min= 1.69
-Converger=Normalized term diff value is 0.0003 - threshold reached=False
-Cumulative run-time=4.04 seconds
-
-Initiating PH iteration=23
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 161234.5696 Max-Min= 2.46
-Converger=Normalized term diff value is 0.0067 - threshold reached=False
-Cumulative run-time=4.19 seconds
-
-Initiating PH iteration=24
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 161293.2043 Max-Min= 2.40
-Converger=Normalized term diff value is 0.0206 - threshold reached=False
-Cumulative run-time=4.33 seconds
-
-Initiating PH iteration=25
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 161344.1925 Max-Min= 26.24
-Converger=Normalized term diff value is 0.0233 - threshold reached=False
-Cumulative run-time=4.49 seconds
-
-Initiating PH iteration=26
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 161385.5293 Max-Min= 33.33
-Converger=Normalized term diff value is 0.0260 - threshold reached=False
-Cumulative run-time=4.63 seconds
-
-Initiating PH iteration=27
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 161419.2128 Max-Min= 26.30
-Converger=Normalized term diff value is 0.0234 - threshold reached=False
-Cumulative run-time=4.77 seconds
-
-Initiating PH iteration=28
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 161447.1717 Max-Min= 17.27
-Converger=Normalized term diff value is 0.0213 - threshold reached=False
-Cumulative run-time=4.91 seconds
-
-Initiating PH iteration=29
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 161474.3099 Max-Min= 7.52
-Converger=Normalized term diff value is 0.0208 - threshold reached=False
-Cumulative run-time=5.08 seconds
-
-Initiating PH iteration=30
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=4 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 161502.6184 Max-Min= 13.52
-Converger=Normalized term diff value is 0.0206 - threshold reached=False
-Cumulative run-time=5.19 seconds
-
-Initiating PH iteration=31
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=4 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 161533.9155 Max-Min= 11.63
-Converger=Normalized term diff value is 0.0209 - threshold reached=False
-Cumulative run-time=5.31 seconds
-
-Initiating PH iteration=32
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=4 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 161567.7683 Max-Min= 10.07
-Converger=Normalized term diff value is 0.0212 - threshold reached=False
-Cumulative run-time=5.43 seconds
-
-Initiating PH iteration=33
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=4 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 161603.9864 Max-Min= 7.11
-Converger=Normalized term diff value is 0.0208 - threshold reached=False
-Cumulative run-time=5.55 seconds
-
-Initiating PH iteration=34
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=4 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 161641.3093 Max-Min= 6.58
-Converger=Normalized term diff value is 0.0207 - threshold reached=False
-Cumulative run-time=5.67 seconds
-
-Initiating PH iteration=35
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=4 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 161678.7085 Max-Min= 6.49
-Converger=Normalized term diff value is 0.0206 - threshold reached=False
-Cumulative run-time=5.79 seconds
-
-Initiating PH iteration=36
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=4 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 161715.9555 Max-Min= 3.86
-Converger=Normalized term diff value is 0.0208 - threshold reached=False
-Cumulative run-time=5.91 seconds
-
-Initiating PH iteration=37
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=4 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 161751.3565 Max-Min= 3.94
-Converger=Normalized term diff value is 0.0210 - threshold reached=False
-Cumulative run-time=6.03 seconds
-
-Initiating PH iteration=38
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=4 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 161785.4347 Max-Min= 3.27
-Converger=Normalized term diff value is 0.0209 - threshold reached=False
-Cumulative run-time=6.14 seconds
-
-Initiating PH iteration=39
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=4 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 161818.9379 Max-Min= 2.56
-Converger=Normalized term diff value is 0.0208 - threshold reached=False
-Cumulative run-time=6.25 seconds
-
-Initiating PH iteration=40
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=44 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 161847.8973 Max-Min= 11.90
-Converger=Normalized term diff value is 0.0206 - threshold reached=False
-Cumulative run-time=6.35 seconds
-Halting PH - reached maximal iteration count=40
-
-Number of discrete variables fixed before final plugin calls=44 (total=65)
-Number of continuous variables fixed before final plugin calls=0 (total=0)
-PH complete
-
-Convergence history:
-Converger=Normalized term diff
-Iteration Metric Value
- 0 0.0882
- 1 0.1013
- 2 0.1018
- 3 0.0562
- 4 0.0579
- 5 0.0523
- 6 0.0410
- 7 0.0464
- 8 0.0308
- 9 0.0003
- 10 0.0018
- 11 0.0046
- 12 0.0412
- 13 0.0210
- 14 0.0207
- 15 0.0213
- 16 0.0093
- 17 0.0012
- 18 0.0013
- 19 0.0008
- 20 0.0007
- 21 0.0008
- 22 0.0003
- 23 0.0067
- 24 0.0206
- 25 0.0233
- 26 0.0260
- 27 0.0234
- 28 0.0213
- 29 0.0208
- 30 0.0206
- 31 0.0209
- 32 0.0212
- 33 0.0208
- 34 0.0207
- 35 0.0206
- 36 0.0208
- 37 0.0210
- 38 0.0209
- 39 0.0208
- 40 0.0206
-
-
-Final number of discrete variables fixed=44 (total=65)
-Final number of continuous variables fixed=0 (total=0)
-
-Computing objective inner bound at xhat solution
-
-Computed objective upper bound= 224596.1504
-
-X-hat variable values:
-
- Stage: FirstStage
- (Scenarios: Scenario1 Scenario2 Scenario3 )
- Variable: NumProducedFirstStage
- Index: [3] Values: 38250.0000 38250.0000 38250.0000
-
- Index: [5] Values: 45083.0000 45083.0000 45083.0000
-
- Index: [6] Values: 39778.0000 39778.0000 39778.0000
-
- Index: [7] Values: 27573.0000 27573.0000 27573.0000
-
- Index: [9] Values: 28150.0000 28150.0000 28150.0000
-
- Index: [10] Values: 19359.0000 19359.0000 19359.0000
-
- (Scenarios: Scenario1 Scenario2 Scenario3 )
- Variable: NumUnitsCutFirstStage
- Index: [3,1] Values: 2459.0000 2459.0000 2459.0000
-
- Index: [3,2] Values: 7458.0000 7458.0000 7458.0000
-
- Index: [3,3] Values: 12500.0000 12500.0000 12500.0000
-
- Index: [5,1] Values: 41.0000 41.0000 41.0000
-
- Index: [5,2] Values: 42.0000 42.0000 42.0000
-
- Index: [5,4] Values: 10000.0000 10000.0000 10000.0000
-
- Index: [5,5] Values: 35000.0000 35000.0000 35000.0000
-
- Index: [6,6] Values: 25000.0000 25000.0000 25000.0000
-
- Index: [7,7] Values: 15000.0000 15000.0000 15000.0000
-
- Index: [9,8] Values: 4641.0000 4641.0000 4641.0000
-
- Index: [9,9] Values: 12500.0000 12500.0000 12500.0000
-
- Index: [10,8] Values: 7859.0000 7859.0000 7859.0000
-
- Index: [10,10] Values: 5000.0000 5000.0000 5000.0000
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: Scenario1 Scenario2 Scenario3 )
- Values: 161840.5104 161840.5104 161840.5104 Max-Min: 0.0000 Avg: 161840.5104
-
-X-hat costs:
-
-Scenario Tree Costs
-----------------------------------------------------
-Tree Nodes:
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- Scenario1Node
- Scenario2Node
- Scenario3Node
- Scenarios:
- Scenario1
- Scenario2
- Scenario3
- Expected cost of (sub)tree rooted at node=224596.1504
-
- Name=Scenario1Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- Scenario1
- Expected cost of (sub)tree rooted at node=29347.1680
-
- Name=Scenario2Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- Scenario2
- Expected cost of (sub)tree rooted at node=62610.2952
-
- Name=Scenario3Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- Scenario3
- Expected cost of (sub)tree rooted at node=96309.4568
-
-----------------------------------------------------
-Scenarios:
-
- Name=Scenario1
- Probability=0.3333
- Leaf Node=Scenario1Node
- Tree node sequence:
- RootNode
- Scenario1Node
- Stage= FirstStage Cost=161840.5104
- Stage= SecondStage Cost=29347.1680
- Total scenario cost=191187.6784
-
- Name=Scenario2
- Probability=0.3333
- Leaf Node=Scenario2Node
- Tree node sequence:
- RootNode
- Scenario2Node
- Stage= FirstStage Cost=161840.5104
- Stage= SecondStage Cost=62610.2952
- Total scenario cost=224450.8056
-
- Name=Scenario3
- Probability=0.3333
- Leaf Node=Scenario3Node
- Tree node sequence:
- RootNode
- Scenario3Node
- Stage= FirstStage Cost=161840.5104
- Stage= SecondStage Cost=96309.4568
- Total scenario cost=258149.9672
-
-----------------------------------------------------
-
-
-Total PH execution time=6.47 seconds
-
-
-Total execution time=6.60 seconds
diff --git a/pyomo/pysp/tests/unit/baselines/sizes3_quadratic_cplex_with_phpyro.baseline-b b/pyomo/pysp/tests/unit/baselines/sizes3_quadratic_cplex_with_phpyro.baseline-b
deleted file mode 100644
index 6b70ed47e09..00000000000
--- a/pyomo/pysp/tests/unit/baselines/sizes3_quadratic_cplex_with_phpyro.baseline-b
+++ /dev/null
@@ -1,378 +0,0 @@
-*** Pyro Name Server ***
-Dispatcher is ready.
-The Name Server appears to be already running on this segment.
-(host: 127.0.0.1 port: 9090 )
-Cannot start multiple Name Servers in the same network segment.
-Worker attempting to find Pyro dispatcher object...
-Dispatcher Object URI:PYRO://134.253.194.1:7766/86fdc2012827217077fdbd479937e98f07
-Connection to dispatch server established after 1 attempts and 0.00 seconds - this is worker: Worker_10281@snotra.sandia.gov
-Listening for work from dispatcher...
-Worker attempting to find Pyro dispatcher object...
-Dispatcher Object URI:PYRO://134.253.194.1:7766/86fdc2012827217077fdbd479937e98f07
-Connection to dispatch server established after 1 attempts and 0.00 seconds - this is worker: Worker_10280@snotra.sandia.gov
-Listening for work from dispatcher...
-Worker attempting to find Pyro dispatcher object...
-Dispatcher Object URI:PYRO://134.253.194.1:7766/86fdc2012827217077fdbd479937e98f07
-Connection to dispatch server established after 1 attempts and 0.00 seconds - this is worker: Worker_10282@snotra.sandia.gov
-Listening for work from dispatcher...
-Client attempting to find Pyro dispatcher object...
-Dispatcher Object URI: PYRO://134.253.194.1:7766/86fdc2012827217077fdbd479937e98f07
-Connection to dispatch server established after 1 attempts and 0.00 seconds - this is client: 10283@snotra.sandia.gov
-Importing module=/Users/ghackebeil/Projects/Pyomo/pyomo/examples/pysp/sizes/config/rhosetter.py
-Module successfully loaded
-Initializing PH
-
-Transmitting user rho callback invocations to phsolverservers
-WW PH Extension: Loading user-specified configuration from file=/home/hudson/slave/workspace/Pyomo_trunk_python2.7_snotra_parallel/src/pyomo/examples/pysp/sizes/config/wwph.cfg
-WW PH Extension: Loading variable suffixes from file=/home/hudson/slave/workspace/Pyomo_trunk_python2.7_snotra_parallel/src/pyomo/examples/pysp/sizes/config/wwph.suffixes
-Starting PH
-
-Initiating PH iteration=0
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162978.2000 Max-Min= 654.60
-Converger=Normalized term diff value is 0.0882 - threshold reached=False
-Cumulative run-time=0.35 seconds
-
-Initiating PH iteration=1
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 163148.0005 Max-Min= 492.28
-Converger=Normalized term diff value is 0.1013 - threshold reached=False
-Cumulative run-time=0.50 seconds
-
-Initiating PH iteration=2
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162938.2045 Max-Min= 753.58
-Converger=Normalized term diff value is 0.1018 - threshold reached=False
-Cumulative run-time=0.64 seconds
-
-Initiating PH iteration=3
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162771.6533 Max-Min= 147.85
-Converger=Normalized term diff value is 0.0562 - threshold reached=False
-Cumulative run-time=0.76 seconds
-
-Initiating PH iteration=4
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162622.9493 Max-Min= 67.16
-Converger=Normalized term diff value is 0.0579 - threshold reached=False
-Cumulative run-time=0.89 seconds
-
-Initiating PH iteration=5
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162474.7363 Max-Min= 8.99
-Converger=Normalized term diff value is 0.0523 - threshold reached=False
-Cumulative run-time=1.02 seconds
-
-Initiating PH iteration=6
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162316.4864 Max-Min= 31.73
-Converger=Normalized term diff value is 0.0410 - threshold reached=False
-Cumulative run-time=1.15 seconds
-
-Initiating PH iteration=7
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162141.7909 Max-Min= 49.25
-Converger=Normalized term diff value is 0.0462 - threshold reached=False
-Cumulative run-time=1.25 seconds
-
-Initiating PH iteration=8
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 161953.4221 Max-Min= 43.51
-Converger=Normalized term diff value is 0.0308 - threshold reached=False
-Cumulative run-time=1.35 seconds
-
-Initiating PH iteration=9
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 161732.0269 Max-Min= 31.77
-Converger=Normalized term diff value is 0.0004 - threshold reached=False
-Cumulative run-time=1.47 seconds
-
-Initiating PH iteration=10
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 161502.1187 Max-Min= 20.08
-Converger=Normalized term diff value is 0.0018 - threshold reached=False
-Cumulative run-time=1.59 seconds
-
-Initiating PH iteration=11
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 161272.1288 Max-Min= 4.42
-Converger=Normalized term diff value is 0.0046 - threshold reached=False
-Cumulative run-time=1.70 seconds
-
-Initiating PH iteration=12
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 161062.2541 Max-Min= 47.08
-Converger=Normalized term diff value is 0.0412 - threshold reached=False
-Cumulative run-time=1.83 seconds
-
-Initiating PH iteration=13
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 160868.4072 Max-Min= 28.96
-Converger=Normalized term diff value is 0.0210 - threshold reached=False
-Cumulative run-time=1.94 seconds
-
-Initiating PH iteration=14
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 160760.9224 Max-Min= 250.61
-Converger=Normalized term diff value is 0.0207 - threshold reached=False
-Cumulative run-time=2.06 seconds
-
-Initiating PH iteration=15
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 160759.4109 Max-Min= 311.32
-Converger=Normalized term diff value is 0.0213 - threshold reached=False
-Cumulative run-time=2.18 seconds
-
-Initiating PH iteration=16
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 160823.2787 Max-Min= 195.36
-Converger=Normalized term diff value is 0.0093 - threshold reached=False
-Cumulative run-time=2.30 seconds
-
-Initiating PH iteration=17
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 160885.2173 Max-Min= 5.04
-Converger=Normalized term diff value is 0.0005 - threshold reached=False
-Cumulative run-time=2.72 seconds
-
-Initiating PH iteration=18
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 160945.1888 Max-Min= 5.84
-Converger=Normalized term diff value is 0.0013 - threshold reached=False
-Cumulative run-time=2.85 seconds
-
-Initiating PH iteration=19
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 161003.2243 Max-Min= 4.97
-Converger=Normalized term diff value is 0.0012 - threshold reached=False
-Cumulative run-time=3.28 seconds
-
-Initiating PH iteration=20
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 161060.7021 Max-Min= 2.48
-Converger=Normalized term diff value is 0.0000 - threshold reached=True
-Cumulative run-time=3.72 seconds
-
-Number of discrete variables fixed before final plugin calls=0 (total=65)
-Number of continuous variables fixed before final plugin calls=0 (total=0)
-PH complete
-
-Convergence history:
-Converger=Normalized term diff
-Iteration Metric Value
- 0 0.0882
- 1 0.1013
- 2 0.1018
- 3 0.0562
- 4 0.0579
- 5 0.0523
- 6 0.0410
- 7 0.0462
- 8 0.0308
- 9 0.0004
- 10 0.0018
- 11 0.0046
- 12 0.0412
- 13 0.0210
- 14 0.0207
- 15 0.0213
- 16 0.0093
- 17 0.0005
- 18 0.0013
- 19 0.0012
- 20 0.0000
-
-
-Final number of discrete variables fixed=0 (total=65)
-Final number of continuous variables fixed=0 (total=0)
-
-Computing objective inner bound at xhat solution
-
-Computed objective upper bound= 224594.1083
-
-X-hat variable values:
-
- Stage: FirstStage
- (Scenarios: Scenario1 Scenario2 Scenario3 )
- Variable: NumProducedFirstStage
- Index: [3] Values: 38131.0000 38131.0000 38131.0000 Max-Min: 0.0000 Avg: 38131.0000
-
- Index: [5] Values: 45038.0000 45038.0000 45038.0000 Max-Min: 0.0000 Avg: 45038.0000
-
- Index: [6] Values: 39358.0000 39358.0000 39358.0000 Max-Min: 0.0000 Avg: 39358.0000
-
- Index: [7] Values: 27188.0000 27188.0000 27188.0000 Max-Min: 1.0000 Avg: 27188.3333
-
- Index: [9] Values: 28016.0000 28016.0000 28016.0000 Max-Min: 1.0000 Avg: 28015.6667
-
- Index: [10] Values: 19486.0000 19486.0000 19486.0000 Max-Min: 1.0000 Avg: 19485.6667
-
- (Scenarios: Scenario1 Scenario2 Scenario3 )
- Variable: NumUnitsCutFirstStage
- Index: [3,1] Values: 2481.0000 2481.0000 2481.0000 Max-Min: 0.0000 Avg: 2481.0000
-
- Index: [3,2] Values: 7481.0000 7481.0000 7481.0000 Max-Min: 0.0000 Avg: 7481.0000
-
- Index: [3,3] Values: 12500.0000 12500.0000 12500.0000 Max-Min: 0.0000 Avg: 12500.0000
-
- Index: [5,1] Values: 19.0000 19.0000 19.0000 Max-Min: 0.0000 Avg: 19.0000
-
- Index: [5,2] Values: 19.0000 19.0000 19.0000 Max-Min: 0.0000 Avg: 19.0000
-
- Index: [5,4] Values: 10000.0000 10000.0000 10000.0000 Max-Min: 0.0000 Avg: 10000.0000
-
- Index: [5,5] Values: 35000.0000 35000.0000 35000.0000 Max-Min: 0.0000 Avg: 35000.0000
-
- Index: [6,6] Values: 25000.0000 25000.0000 25000.0000 Max-Min: 0.0000 Avg: 25000.0000
-
- Index: [7,7] Values: 15000.0000 15000.0000 15000.0000 Max-Min: 0.0000 Avg: 15000.0000
-
- Index: [9,8] Values: 5380.0000 5380.0000 5380.0000 Max-Min: 0.0000 Avg: 5380.0000
-
- Index: [9,9] Values: 12500.0000 12500.0000 12500.0000 Max-Min: 0.0000 Avg: 12500.0000
-
- Index: [10,8] Values: 7120.0000 7120.0000 7120.0000 Max-Min: 0.0000 Avg: 7120.0000
-
- Index: [10,10] Values: 5000.0000 5000.0000 5000.0000 Max-Min: 0.0000 Avg: 5000.0000
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: Scenario1 Scenario2 Scenario3 )
- Values: 161060.9896 161060.9896 161060.9896 Max-Min: 0.0000 Avg: 161060.9896
-
-X-hat costs:
-
-Scenario Tree Costs
-----------------------------------------------------
-Tree Nodes:
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- Scenario1Node
- Scenario2Node
- Scenario3Node
- Scenarios:
- Scenario1
- Scenario2
- Scenario3
- Expected cost of (sub)tree rooted at node=224594.1083
-
- Name=Scenario1Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- Scenario1
- Expected cost of (sub)tree rooted at node=30074.4792
-
- Name=Scenario2Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- Scenario2
- Expected cost of (sub)tree rooted at node=63419.7032
-
- Name=Scenario3Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- Scenario3
- Expected cost of (sub)tree rooted at node=97105.1736
-
-----------------------------------------------------
-Scenarios:
-
- Name=Scenario1
- Probability=0.3333
- Leaf Node=Scenario1Node
- Tree node sequence:
- RootNode
- Scenario1Node
- Stage= FirstStage Cost=161060.9896
- Stage= SecondStage Cost=30074.4792
- Total scenario cost=191135.4688
-
- Name=Scenario2
- Probability=0.3333
- Leaf Node=Scenario2Node
- Tree node sequence:
- RootNode
- Scenario2Node
- Stage= FirstStage Cost=161060.9896
- Stage= SecondStage Cost=63419.7032
- Total scenario cost=224480.6928
-
- Name=Scenario3
- Probability=0.3333
- Leaf Node=Scenario3Node
- Tree node sequence:
- RootNode
- Scenario3Node
- Stage= FirstStage Cost=161060.9896
- Stage= SecondStage Cost=97105.1736
- Total scenario cost=258166.1632
-
-----------------------------------------------------
-
-Total PH execution time=3.85 seconds
-
-
-
-Shutting down Pyro solver components.
-Dispatcher received request to shut down - initiating...
-
-Total execution time=7.18 seconds
-Lost connection to dispatch server - shutting down...
-Lost connection to dispatch server - shutting down...
-Lost connection to dispatch server - shutting down...
diff --git a/pyomo/pysp/tests/unit/baselines/sizes3_quadratic_cplex_with_phpyro_darwin.baseline b/pyomo/pysp/tests/unit/baselines/sizes3_quadratic_cplex_with_phpyro_darwin.baseline
deleted file mode 100644
index 9e808b44f33..00000000000
--- a/pyomo/pysp/tests/unit/baselines/sizes3_quadratic_cplex_with_phpyro_darwin.baseline
+++ /dev/null
@@ -1,534 +0,0 @@
-Importing module=/Users/ghackebeil/Projects/Pyomo/pyomo/examples/pysp/sizes/config/rhosetter.py
-Module successfully loaded
-Client assigned dispatcher with URI=PYRO://127.0.0.1:51869/7f000001976e21e2e891354c8619feecf0
-Initializing PH
-
-Transmitting user rho callback invocations to phsolverservers
-WW PH Extension: Loading user-specified configuration from file=/Users/ghackebeil/Projects/pyomo/src/pyomo/examples/pysp/sizes/config/wwph.cfg
-WW PH Extension: Loading variable suffixes from file=/Users/ghackebeil/Projects/pyomo/src/pyomo/examples/pysp/sizes/config/wwph.suffixes
-Starting PH
-
-Initiating PH iteration=0
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162978.2000 Max-Min= 654.60
-Converger=Normalized term diff value is 0.0882 - threshold reached=False
-Cumulative run-time=0.15 seconds
-
-Initiating PH iteration=1
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 163147.9944 Max-Min= 492.27
-Converger=Normalized term diff value is 0.1013 - threshold reached=False
-Cumulative run-time=0.24 seconds
-
-Initiating PH iteration=2
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162937.1248 Max-Min= 752.76
-Converger=Normalized term diff value is 0.1018 - threshold reached=False
-Cumulative run-time=0.32 seconds
-
-Initiating PH iteration=3
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162770.5755 Max-Min= 147.05
-Converger=Normalized term diff value is 0.0562 - threshold reached=False
-Cumulative run-time=0.41 seconds
-
-Initiating PH iteration=4
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162621.8688 Max-Min= 67.16
-Converger=Normalized term diff value is 0.0579 - threshold reached=False
-Cumulative run-time=0.48 seconds
-
-Initiating PH iteration=5
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162473.6584 Max-Min= 9.80
-Converger=Normalized term diff value is 0.0523 - threshold reached=False
-Cumulative run-time=0.56 seconds
-
-Initiating PH iteration=6
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162315.4139 Max-Min= 31.73
-Converger=Normalized term diff value is 0.0410 - threshold reached=False
-Cumulative run-time=0.64 seconds
-
-Initiating PH iteration=7
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162140.7184 Max-Min= 48.44
-Converger=Normalized term diff value is 0.0464 - threshold reached=False
-Cumulative run-time=0.72 seconds
-
-Initiating PH iteration=8
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 161952.3469 Max-Min= 43.48
-Converger=Normalized term diff value is 0.0308 - threshold reached=False
-Cumulative run-time=0.79 seconds
-
-Initiating PH iteration=9
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 161730.9464 Max-Min= 33.37
-Converger=Normalized term diff value is 0.0003 - threshold reached=False
-Cumulative run-time=0.87 seconds
-
-Initiating PH iteration=10
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 161501.0381 Max-Min= 20.08
-Converger=Normalized term diff value is 0.0018 - threshold reached=False
-Cumulative run-time=0.95 seconds
-
-Initiating PH iteration=11
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 161271.0429 Max-Min= 3.62
-Converger=Normalized term diff value is 0.0046 - threshold reached=False
-Cumulative run-time=1.03 seconds
-
-Initiating PH iteration=12
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 161061.1736 Max-Min= 45.46
-Converger=Normalized term diff value is 0.0412 - threshold reached=False
-Cumulative run-time=1.10 seconds
-
-Initiating PH iteration=13
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 160867.3267 Max-Min= 28.15
-Converger=Normalized term diff value is 0.0210 - threshold reached=False
-Cumulative run-time=1.18 seconds
-
-Initiating PH iteration=14
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 160759.8419 Max-Min= 249.80
-Converger=Normalized term diff value is 0.0207 - threshold reached=False
-Cumulative run-time=1.25 seconds
-
-Initiating PH iteration=15
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 160758.3304 Max-Min= 312.94
-Converger=Normalized term diff value is 0.0213 - threshold reached=False
-Cumulative run-time=1.33 seconds
-
-Initiating PH iteration=16
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 160822.1981 Max-Min= 194.55
-Converger=Normalized term diff value is 0.0093 - threshold reached=False
-Cumulative run-time=1.41 seconds
-
-Initiating PH iteration=17
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 160884.1368 Max-Min= 5.02
-Converger=Normalized term diff value is 0.0012 - threshold reached=False
-Cumulative run-time=1.68 seconds
-
-Initiating PH iteration=18
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 160943.8451 Max-Min= 6.67
-Converger=Normalized term diff value is 0.0013 - threshold reached=False
-Cumulative run-time=1.76 seconds
-
-Initiating PH iteration=19
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 161001.8805 Max-Min= 4.16
-Converger=Normalized term diff value is 0.0008 - threshold reached=False
-Cumulative run-time=1.84 seconds
-
-Initiating PH iteration=20
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 161059.6216 Max-Min= 1.67
-Converger=Normalized term diff value is 0.0007 - threshold reached=False
-Cumulative run-time=2.12 seconds
-
-Initiating PH iteration=21
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 161117.6536 Max-Min= 0.04
-Converger=Normalized term diff value is 0.0008 - threshold reached=False
-Cumulative run-time=2.19 seconds
-
-Initiating PH iteration=22
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 161175.6856 Max-Min= 1.69
-Converger=Normalized term diff value is 0.0003 - threshold reached=False
-Cumulative run-time=2.28 seconds
-
-Initiating PH iteration=23
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 161234.5696 Max-Min= 2.46
-Converger=Normalized term diff value is 0.0067 - threshold reached=False
-Cumulative run-time=2.36 seconds
-
-Initiating PH iteration=24
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 161293.2043 Max-Min= 2.40
-Converger=Normalized term diff value is 0.0206 - threshold reached=False
-Cumulative run-time=2.43 seconds
-
-Initiating PH iteration=25
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 161344.1925 Max-Min= 26.24
-Converger=Normalized term diff value is 0.0233 - threshold reached=False
-Cumulative run-time=2.51 seconds
-
-Initiating PH iteration=26
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 161385.5293 Max-Min= 33.33
-Converger=Normalized term diff value is 0.0260 - threshold reached=False
-Cumulative run-time=2.59 seconds
-
-Initiating PH iteration=27
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 161419.2128 Max-Min= 26.30
-Converger=Normalized term diff value is 0.0234 - threshold reached=False
-Cumulative run-time=2.67 seconds
-
-Initiating PH iteration=28
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 161447.1717 Max-Min= 17.27
-Converger=Normalized term diff value is 0.0213 - threshold reached=False
-Cumulative run-time=2.74 seconds
-
-Initiating PH iteration=29
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 161474.3099 Max-Min= 7.52
-Converger=Normalized term diff value is 0.0208 - threshold reached=False
-Cumulative run-time=2.82 seconds
-
-Initiating PH iteration=30
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=4 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 161502.6184 Max-Min= 13.52
-Converger=Normalized term diff value is 0.0206 - threshold reached=False
-Cumulative run-time=2.89 seconds
-
-Initiating PH iteration=31
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=4 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 161533.9155 Max-Min= 11.63
-Converger=Normalized term diff value is 0.0209 - threshold reached=False
-Cumulative run-time=2.95 seconds
-
-Initiating PH iteration=32
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=4 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 161567.7683 Max-Min= 10.07
-Converger=Normalized term diff value is 0.0212 - threshold reached=False
-Cumulative run-time=3.02 seconds
-
-Initiating PH iteration=33
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=4 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 161603.9864 Max-Min= 7.11
-Converger=Normalized term diff value is 0.0208 - threshold reached=False
-Cumulative run-time=3.09 seconds
-
-Initiating PH iteration=34
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=4 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 161641.3093 Max-Min= 6.58
-Converger=Normalized term diff value is 0.0207 - threshold reached=False
-Cumulative run-time=3.15 seconds
-
-Initiating PH iteration=35
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=4 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 161678.7085 Max-Min= 6.49
-Converger=Normalized term diff value is 0.0206 - threshold reached=False
-Cumulative run-time=3.22 seconds
-
-Initiating PH iteration=36
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=4 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 161715.9555 Max-Min= 3.86
-Converger=Normalized term diff value is 0.0208 - threshold reached=False
-Cumulative run-time=3.29 seconds
-
-Initiating PH iteration=37
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=4 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 161751.3565 Max-Min= 3.94
-Converger=Normalized term diff value is 0.0210 - threshold reached=False
-Cumulative run-time=3.35 seconds
-
-Initiating PH iteration=38
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=4 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 161785.4347 Max-Min= 3.27
-Converger=Normalized term diff value is 0.0209 - threshold reached=False
-Cumulative run-time=3.41 seconds
-
-Initiating PH iteration=39
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=4 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 161818.9379 Max-Min= 2.56
-Converger=Normalized term diff value is 0.0208 - threshold reached=False
-Cumulative run-time=3.48 seconds
-
-Initiating PH iteration=40
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=44 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 161847.8973 Max-Min= 11.90
-Converger=Normalized term diff value is 0.0206 - threshold reached=False
-Cumulative run-time=3.54 seconds
-Halting PH - reached maximal iteration count=40
-
-Number of discrete variables fixed before final plugin calls=44 (total=65)
-Number of continuous variables fixed before final plugin calls=0 (total=0)
-PH complete
-
-Convergence history:
-Converger=Normalized term diff
-Iteration Metric Value
- 0 0.0882
- 1 0.1013
- 2 0.1018
- 3 0.0562
- 4 0.0579
- 5 0.0523
- 6 0.0410
- 7 0.0464
- 8 0.0308
- 9 0.0003
- 10 0.0018
- 11 0.0046
- 12 0.0412
- 13 0.0210
- 14 0.0207
- 15 0.0213
- 16 0.0093
- 17 0.0012
- 18 0.0013
- 19 0.0008
- 20 0.0007
- 21 0.0008
- 22 0.0003
- 23 0.0067
- 24 0.0206
- 25 0.0233
- 26 0.0260
- 27 0.0234
- 28 0.0213
- 29 0.0208
- 30 0.0206
- 31 0.0209
- 32 0.0212
- 33 0.0208
- 34 0.0207
- 35 0.0206
- 36 0.0208
- 37 0.0210
- 38 0.0209
- 39 0.0208
- 40 0.0206
-
-
-Final number of discrete variables fixed=44 (total=65)
-Final number of continuous variables fixed=0 (total=0)
-
-Computing objective inner bound at xhat solution
-
-Computed objective upper bound= 224596.1504
-
-X-hat variable values:
-
- Stage: FirstStage
- (Scenarios: Scenario1 Scenario2 Scenario3 )
- Variable: NumProducedFirstStage
- Index: [3] Values: 38250.0000 38250.0000 38250.0000
-
- Index: [5] Values: 45083.0000 45083.0000 45083.0000
-
- Index: [6] Values: 39778.0000 39778.0000 39778.0000
-
- Index: [7] Values: 27573.0000 27573.0000 27573.0000
-
- Index: [9] Values: 28150.0000 28150.0000 28150.0000
-
- Index: [10] Values: 19359.0000 19359.0000 19359.0000
-
- (Scenarios: Scenario1 Scenario2 Scenario3 )
- Variable: NumUnitsCutFirstStage
- Index: [3,1] Values: 2459.0000 2459.0000 2459.0000
-
- Index: [3,2] Values: 7458.0000 7458.0000 7458.0000
-
- Index: [3,3] Values: 12500.0000 12500.0000 12500.0000
-
- Index: [5,1] Values: 41.0000 41.0000 41.0000
-
- Index: [5,2] Values: 42.0000 42.0000 42.0000
-
- Index: [5,4] Values: 10000.0000 10000.0000 10000.0000
-
- Index: [5,5] Values: 35000.0000 35000.0000 35000.0000
-
- Index: [6,6] Values: 25000.0000 25000.0000 25000.0000
-
- Index: [7,7] Values: 15000.0000 15000.0000 15000.0000
-
- Index: [9,8] Values: 4641.0000 4641.0000 4641.0000
-
- Index: [9,9] Values: 12500.0000 12500.0000 12500.0000
-
- Index: [10,8] Values: 7859.0000 7859.0000 7859.0000
-
- Index: [10,10] Values: 5000.0000 5000.0000 5000.0000
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: Scenario1 Scenario2 Scenario3 )
- Values: 161840.5104 161840.5104 161840.5104 Max-Min: 0.0000 Avg: 161840.5104
-
-X-hat costs:
-
-Scenario Tree Costs
-----------------------------------------------------
-Tree Nodes:
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- Scenario1Node
- Scenario2Node
- Scenario3Node
- Scenarios:
- Scenario1
- Scenario2
- Scenario3
- Expected cost of (sub)tree rooted at node=224596.1504
-
- Name=Scenario1Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- Scenario1
- Expected cost of (sub)tree rooted at node=29347.1680
-
- Name=Scenario2Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- Scenario2
- Expected cost of (sub)tree rooted at node=62610.2952
-
- Name=Scenario3Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- Scenario3
- Expected cost of (sub)tree rooted at node=96309.4568
-
-----------------------------------------------------
-Scenarios:
-
- Name=Scenario1
- Probability=0.3333
- Leaf Node=Scenario1Node
- Tree node sequence:
- RootNode
- Scenario1Node
- Stage= FirstStage Cost=161840.5104
- Stage= SecondStage Cost=29347.1680
- Total scenario cost=191187.6784
-
- Name=Scenario2
- Probability=0.3333
- Leaf Node=Scenario2Node
- Tree node sequence:
- RootNode
- Scenario2Node
- Stage= FirstStage Cost=161840.5104
- Stage= SecondStage Cost=62610.2952
- Total scenario cost=224450.8056
-
- Name=Scenario3
- Probability=0.3333
- Leaf Node=Scenario3Node
- Tree node sequence:
- RootNode
- Scenario3Node
- Stage= FirstStage Cost=161840.5104
- Stage= SecondStage Cost=96309.4568
- Total scenario cost=258149.9672
-
-----------------------------------------------------
-
-
-Total PH execution time=3.62 seconds
-
-
-Total execution time=3.73 seconds
diff --git a/pyomo/pysp/tests/unit/baselines/sizes3_quadratic_gurobi.baseline-a b/pyomo/pysp/tests/unit/baselines/sizes3_quadratic_gurobi.baseline-a
deleted file mode 100644
index 88c538e2973..00000000000
--- a/pyomo/pysp/tests/unit/baselines/sizes3_quadratic_gurobi.baseline-a
+++ /dev/null
@@ -1,516 +0,0 @@
-Importing module=/Users/ghackebeil/Projects/Pyomo/pyomo/examples/pysp/sizes/config/rhosetter.py
-Module successfully loaded
-Initializing PH
-
-Executing user rho setter callback function
-WW PH Extension: Loading user-specified configuration from file=/home/gahacke/Project/Pyomo/jenkins/src/pyomo/examples/pysp/sizes/config/wwph.cfg
-WW PH Extension: Loading variable suffixes from file=/home/gahacke/Project/Pyomo/jenkins/src/pyomo/examples/pysp/sizes/config/wwph.suffixes
-Starting PH
-
-Initiating PH iteration=0
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162890.6667 Max-Min= 668.20
-Converger=Normalized term diff value is 0.1472 - threshold reached=False
-Cumulative run-time=0.43 seconds
-
-Initiating PH iteration=1
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 163321.6899 Max-Min= 331.98
-Converger=Normalized term diff value is 0.2346 - threshold reached=False
-Cumulative run-time=0.91 seconds
-
-Initiating PH iteration=2
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 163362.6488 Max-Min= 1204.85
-Converger=Normalized term diff value is 0.1297 - threshold reached=False
-Cumulative run-time=1.46 seconds
-
-Initiating PH iteration=3
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 163178.4904 Max-Min= 118.68
-Converger=Normalized term diff value is 0.1437 - threshold reached=False
-Cumulative run-time=1.90 seconds
-
-Initiating PH iteration=4
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162977.3400 Max-Min= 41.04
-Converger=Normalized term diff value is 0.1136 - threshold reached=False
-Cumulative run-time=2.32 seconds
-
-Initiating PH iteration=5
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162751.0325 Max-Min= 85.17
-Converger=Normalized term diff value is 0.1119 - threshold reached=False
-Cumulative run-time=2.82 seconds
-
-Initiating PH iteration=6
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162600.6077 Max-Min= 78.42
-Converger=Normalized term diff value is 0.0278 - threshold reached=False
-Cumulative run-time=3.39 seconds
-
-Initiating PH iteration=7
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162344.1419 Max-Min= 37.51
-Converger=Normalized term diff value is 0.0242 - threshold reached=False
-Cumulative run-time=4.11 seconds
-
-Initiating PH iteration=8
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162153.7571 Max-Min= 158.59
-Converger=Normalized term diff value is 0.0242 - threshold reached=False
-Cumulative run-time=4.95 seconds
-
-Initiating PH iteration=9
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 161945.5067 Max-Min= 286.42
-Converger=Normalized term diff value is 0.0465 - threshold reached=False
-Cumulative run-time=5.82 seconds
-
-Initiating PH iteration=10
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 161814.9829 Max-Min= 278.31
-Converger=Normalized term diff value is 0.1272 - threshold reached=False
-Cumulative run-time=6.73 seconds
-
-Initiating PH iteration=11
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 161669.7360 Max-Min= 99.95
-Converger=Normalized term diff value is 0.0489 - threshold reached=False
-Cumulative run-time=7.18 seconds
-
-Initiating PH iteration=12
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 161669.7360 Max-Min= 99.95
-Converger=Normalized term diff value is 0.0517 - threshold reached=False
-Cumulative run-time=7.66 seconds
-
-Initiating PH iteration=13
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 161670.9843 Max-Min= 283.29
-Converger=Normalized term diff value is 0.0543 - threshold reached=False
-Cumulative run-time=8.21 seconds
-
-Initiating PH iteration=14
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 161708.8619 Max-Min= 207.81
-Converger=Normalized term diff value is 0.0433 - threshold reached=False
-Cumulative run-time=8.69 seconds
-
-Initiating PH iteration=15
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 161691.3680 Max-Min= 118.87
-Converger=Normalized term diff value is 0.0222 - threshold reached=False
-Cumulative run-time=9.19 seconds
-
-Initiating PH iteration=16
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 161668.6891 Max-Min= 82.83
-Converger=Normalized term diff value is 0.0223 - threshold reached=False
-Cumulative run-time=9.67 seconds
-
-Initiating PH iteration=17
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 161658.7659 Max-Min= 82.44
-Converger=Normalized term diff value is 0.0155 - threshold reached=False
-Cumulative run-time=10.12 seconds
-
-Initiating PH iteration=18
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 161742.1989 Max-Min= 223.81
-Converger=Normalized term diff value is 0.0638 - threshold reached=False
-Cumulative run-time=10.58 seconds
-
-Initiating PH iteration=19
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 161742.1989 Max-Min= 223.81
-Converger=Normalized term diff value is 0.0638 - threshold reached=False
-Cumulative run-time=11.10 seconds
-
-Initiating PH iteration=20
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 161857.4672 Max-Min= 287.71
-Converger=Normalized term diff value is 0.0638 - threshold reached=False
-Cumulative run-time=11.67 seconds
-
-Initiating PH iteration=21
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 161975.1408 Max-Min= 282.54
-Converger=Normalized term diff value is 0.0348 - threshold reached=False
-Cumulative run-time=12.25 seconds
-
-Initiating PH iteration=22
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 161975.7715 Max-Min= 220.87
-Converger=Normalized term diff value is 0.0339 - threshold reached=False
-Cumulative run-time=13.15 seconds
-
-Initiating PH iteration=23
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 161975.7715 Max-Min= 220.87
-Converger=Normalized term diff value is 0.0339 - threshold reached=False
-Cumulative run-time=14.15 seconds
-
-Initiating PH iteration=24
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162026.8283 Max-Min= 333.63
-Converger=Normalized term diff value is 0.0035 - threshold reached=False
-Cumulative run-time=15.18 seconds
-
-Initiating PH iteration=25
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162078.7000 Max-Min= 259.40
-Converger=Normalized term diff value is 0.0031 - threshold reached=False
-Cumulative run-time=16.35 seconds
-
-Initiating PH iteration=26
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162196.1861 Max-Min= 105.05
-Converger=Normalized term diff value is 0.0023 - threshold reached=False
-Cumulative run-time=17.41 seconds
-
-Initiating PH iteration=27
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162257.7557 Max-Min= 89.70
-Converger=Normalized term diff value is 0.0021 - threshold reached=False
-Cumulative run-time=18.30 seconds
-
-Initiating PH iteration=28
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162285.1981 Max-Min= 92.37
-Converger=Normalized term diff value is 0.0029 - threshold reached=False
-Cumulative run-time=19.16 seconds
-
-Initiating PH iteration=29
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162286.5592 Max-Min= 93.78
-Converger=Normalized term diff value is 0.0029 - threshold reached=False
-Cumulative run-time=19.95 seconds
-
-Initiating PH iteration=30
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=3 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162307.9227 Max-Min= 31.08
-Converger=Normalized term diff value is 0.0050 - threshold reached=False
-Cumulative run-time=20.46 seconds
-
-Initiating PH iteration=31
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=3 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162337.1389 Max-Min= 36.96
-Converger=Normalized term diff value is 0.0028 - threshold reached=False
-Cumulative run-time=20.96 seconds
-
-Initiating PH iteration=32
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=3 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162349.1224 Max-Min= 43.90
-Converger=Normalized term diff value is 0.0033 - threshold reached=False
-Cumulative run-time=21.42 seconds
-
-Initiating PH iteration=33
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=3 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162347.1923 Max-Min= 38.11
-Converger=Normalized term diff value is 0.0026 - threshold reached=False
-Cumulative run-time=22.07 seconds
-
-Initiating PH iteration=34
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=3 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162424.5005 Max-Min= 224.35
-Converger=Normalized term diff value is 0.0062 - threshold reached=False
-Cumulative run-time=22.89 seconds
-
-Initiating PH iteration=35
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=3 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162523.4045 Max-Min= 71.11
-Converger=Normalized term diff value is 0.0029 - threshold reached=False
-Cumulative run-time=23.48 seconds
-
-Initiating PH iteration=36
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=3 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162563.2309 Max-Min= 123.83
-Converger=Normalized term diff value is 0.0047 - threshold reached=False
-Cumulative run-time=24.03 seconds
-
-Initiating PH iteration=37
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=3 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162623.9576 Max-Min= 182.38
-Converger=Normalized term diff value is 0.0076 - threshold reached=False
-Cumulative run-time=24.51 seconds
-
-Initiating PH iteration=38
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=3 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162674.7141 Max-Min= 32.39
-Converger=Normalized term diff value is 0.0000 - threshold reached=True
-Cumulative run-time=25.34 seconds
-
-Number of discrete variables fixed before final plugin calls=3 (total=65)
-Number of continuous variables fixed before final plugin calls=0 (total=0)
-PH complete
-
-Convergence history:
-Converger=Normalized term diff
-Iteration Metric Value
- 0 0.1472
- 1 0.2346
- 2 0.1297
- 3 0.1437
- 4 0.1136
- 5 0.1119
- 6 0.0278
- 7 0.0242
- 8 0.0242
- 9 0.0465
- 10 0.1272
- 11 0.0489
- 12 0.0517
- 13 0.0543
- 14 0.0433
- 15 0.0222
- 16 0.0223
- 17 0.0155
- 18 0.0638
- 19 0.0638
- 20 0.0638
- 21 0.0348
- 22 0.0339
- 23 0.0339
- 24 0.0035
- 25 0.0031
- 26 0.0023
- 27 0.0021
- 28 0.0029
- 29 0.0029
- 30 0.0050
- 31 0.0028
- 32 0.0033
- 33 0.0026
- 34 0.0062
- 35 0.0029
- 36 0.0047
- 37 0.0076
- 38 0.0000
-
-
-Final number of discrete variables fixed=3 (total=65)
-Final number of continuous variables fixed=0 (total=0)
-
-Computing objective inner bound at xhat solution
-
-Computed objective upper bound= 224924.0448
-
-X-hat variable values:
-
- Stage: FirstStage
- (Scenarios: Scenario1 Scenario2 Scenario3 )
- Variable: NumProducedFirstStage
- Index: [3] Values: 38290.0000 38290.0000 38290.0000
-
- Index: [5] Values: 44720.0000 44720.0000 44720.0000
-
- Index: [6] Values: 38532.0000 38532.0000 38532.0000
-
- Index: [7] Values: 29353.0000 29353.0000 29353.0000
-
- Index: [8] Values: 8415.0000 8415.0000 8415.0000
-
- Index: [9] Values: 18453.0000 18453.0000 18453.0000
-
- Index: [10] Values: 21047.0000 21047.0000 21047.0000
-
- (Scenarios: Scenario1 Scenario2 Scenario3 )
- Variable: NumUnitsCutFirstStage
- Index: [3,1] Values: 2500.0000 2500.0000 2500.0000
-
- Index: [3,2] Values: 7500.0000 7500.0000 7500.0000
-
- Index: [3,3] Values: 12500.0000 12500.0000 12500.0000
-
- Index: [5,4] Values: 9720.0000 9720.0000 9720.0000
-
- Index: [5,5] Values: 35000.0000 35000.0000 35000.0000
-
- Index: [6,4] Values: 280.0000 280.0000 280.0000
-
- Index: [6,6] Values: 25000.0000 25000.0000 25000.0000
-
- Index: [7,7] Values: 15000.0000 15000.0000 15000.0000
-
- Index: [8,8] Values: 8415.0000 8415.0000 8415.0000
-
- Index: [9,9] Values: 12253.0000 12253.0000 12253.0000
-
- Index: [10,8] Values: 4085.0000 4085.0000 4085.0000
-
- Index: [10,9] Values: 247.0000 247.0000 247.0000
-
- Index: [10,10] Values: 5000.0000 5000.0000 5000.0000
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: Scenario1 Scenario2 Scenario3 )
- Values: 162685.5120 162685.5120 162685.5120 Max-Min: 0.0000 Avg: 162685.5120
-
-X-hat costs:
-
-Scenario Tree Costs
-----------------------------------------------------
-Tree Nodes:
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- Scenario1Node
- Scenario2Node
- Scenario3Node
- Scenarios:
- Scenario1
- Scenario2
- Scenario3
- Expected cost of (sub)tree rooted at node=224924.0448
-
- Name=Scenario1Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- Scenario1
- Expected cost of (sub)tree rooted at node=28843.3280
-
- Name=Scenario2Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- Scenario2
- Expected cost of (sub)tree rooted at node=62138.9600
-
- Name=Scenario3Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- Scenario3
- Expected cost of (sub)tree rooted at node=95733.3104
-
-----------------------------------------------------
-Scenarios:
-
- Name=Scenario1
- Probability=0.3333
- Leaf Node=Scenario1Node
- Tree node sequence:
- RootNode
- Scenario1Node
- Stage= FirstStage Cost=162685.5120
- Stage= SecondStage Cost=28843.3280
- Total scenario cost=191528.8400
-
- Name=Scenario2
- Probability=0.3333
- Leaf Node=Scenario2Node
- Tree node sequence:
- RootNode
- Scenario2Node
- Stage= FirstStage Cost=162685.5120
- Stage= SecondStage Cost=62138.9600
- Total scenario cost=224824.4720
-
- Name=Scenario3
- Probability=0.3333
- Leaf Node=Scenario3Node
- Tree node sequence:
- RootNode
- Scenario3Node
- Stage= FirstStage Cost=162685.5120
- Stage= SecondStage Cost=95733.3104
- Total scenario cost=258418.8224
-
-----------------------------------------------------
-
-
-Total PH execution time=25.85 seconds
-
-
-Total execution time=25.98 seconds
diff --git a/pyomo/pysp/tests/unit/baselines/sizes3_quadratic_gurobi.baseline-b b/pyomo/pysp/tests/unit/baselines/sizes3_quadratic_gurobi.baseline-b
deleted file mode 100644
index d57f5c39507..00000000000
--- a/pyomo/pysp/tests/unit/baselines/sizes3_quadratic_gurobi.baseline-b
+++ /dev/null
@@ -1,219 +0,0 @@
-Importing module=/Users/ghackebeil/Projects/Pyomo/pyomo/examples/pysp/sizes/config/rhosetter.py
-Module successfully loaded
-Initializing PH
-
-Executing user rho setter callback function
-WW PH Extension: Loading user-specified configuration from file=/Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/examples/pysp/sizes/config/wwph.cfg
-WW PH Extension: Loading variable suffixes from file=/Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/examples/pysp/sizes/config/wwph.suffixes
-Starting PH
-
-Initiating PH iteration=0
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Fixing variable=ProduceSizeFirstStage[1] at tree node=RootNode to value=0; converged for 1 iterations
-Fixing variable=ProduceSizeFirstStage[10] at tree node=RootNode to value=1; converged for 1 iterations
-Convergence metric= 0.1631 First stage cost avg= 162890.6667 Max-Min= 668.20
-
-Initiating PH iteration=1
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Convergence metric= 0.2070 First stage cost avg= 163317.2712 Max-Min= 331.36
-
-Initiating PH iteration=2
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Convergence metric= 0.1597 First stage cost avg= 163358.5571 Max-Min= 1216.82
-
-Initiating PH iteration=3
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Convergence metric= 0.1188 First stage cost avg= 163160.0867 Max-Min= 106.74
-
-Initiating PH iteration=4
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Convergence metric= 0.0844 First stage cost avg= 162965.5917 Max-Min= 4.56
-
-Initiating PH iteration=5
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Convergence metric= 0.0464 First stage cost avg= 162769.8507 Max-Min= 17.00
-
-Initiating PH iteration=6
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Convergence metric= 0.0200 First stage cost avg= 162562.0656 Max-Min= 29.37
-
-Initiating PH iteration=7
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Convergence metric= 0.0560 First stage cost avg= 162350.8779 Max-Min= 2.67
-
-Initiating PH iteration=8
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Convergence metric= 0.0195 First stage cost avg= 162149.7008 Max-Min= 33.08
-
-Initiating PH iteration=9
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Convergence metric= 0.0183 First stage cost avg= 161951.3032 Max-Min= 7.69
-
-Initiating PH iteration=10
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Convergence metric= 0.0202 First stage cost avg= 161773.0232 Max-Min= 58.68
-
-Initiating PH iteration=11
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Convergence metric= 0.0186 First stage cost avg= 161681.6085 Max-Min= 264.25
-
-Initiating PH iteration=12
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Convergence metric= 0.0181 First stage cost avg= 161691.9349 Max-Min= 307.89
-
-Initiating PH iteration=13
-Sub-problem solve time statistics - Min: 0.00 Avg: 0.00 Max: 0.00 (seconds)
-Convergence metric= 0.0001 First stage cost avg= 161757.2000 Max-Min= 167.66
-PH converged - convergence metric is below threshold=0.0001 or all discrete variables are fixed
-PH complete
-Convergence history:
-Iteration Metric Value
- 0 0.1631
- 1 0.2070
- 2 0.1597
- 3 0.1188
- 4 0.0844
- 5 0.0464
- 6 0.0200
- 7 0.0560
- 8 0.0195
- 9 0.0183
- 10 0.0202
- 11 0.0186
- 12 0.0181
- 13 0.0001
-
-***********************************************************************************************
->>>THE EXPECTED SUM OF THE STAGE COST VARIABLES=225061.324567<<<
->>>***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise<<<
-***********************************************************************************************
-Final number of discrete variables fixed=2 (total=75)
-Final number of continuous variables fixed=0 (total=0)
-Final variable values:
- Stage: FirstStage
- (Scenarios: Scenario1 Scenario2 Scenario3 )
- Variable: NumUnitsCutFirstStage
- Index: [3,1] Values: 2500.0000 2500.0000 2500.0000 Max-Min: 0.0000 Avg: 2500.0000
- Index: [3,2] Values: 7500.0000 7500.0000 7500.0000 Max-Min: 0.0000 Avg: 7500.0000
- Index: [3,3] Values: 12500.0000 12500.0000 12500.0000 Max-Min: 0.0000 Avg: 12500.0000
- Index: [5,4] Values: 9300.0000 9300.0000 9299.0000 Max-Min: 1.0000 Avg: 9299.6667
- Index: [5,5] Values: 35000.0000 35000.0000 35000.0000 Max-Min: 0.0000 Avg: 35000.0000
- Index: [6,4] Values: 700.0000 700.0000 701.0000 Max-Min: 1.0000 Avg: 700.3333
- Index: [6,6] Values: 25000.0000 25000.0000 25000.0000 Max-Min: 0.0000 Avg: 25000.0000
- Index: [7,7] Values: 15000.0000 15000.0000 15000.0000 Max-Min: 0.0000 Avg: 15000.0000
- Index: [8,8] Values: 8181.0000 8155.0000 8182.0000 Max-Min: 27.0000 Avg: 8172.6667
- Index: [9,9] Values: 10226.0000 10226.0000 10226.0000 Max-Min: 0.0000 Avg: 10226.0000
- Index: [10,8] Values: 4319.0000 4345.0000 4318.0000 Max-Min: 27.0000 Avg: 4327.3333
- Index: [10,9] Values: 2274.0000 2274.0000 2274.0000 Max-Min: 0.0000 Avg: 2274.0000
- Index: [10,10] Values: 5000.0000 5000.0000 5000.0000 Max-Min: 0.0000 Avg: 5000.0000
- (Scenarios: Scenario1 Scenario2 Scenario3 )
- Variable: NumProducedFirstStage
- Index: [3] Values: 38159.0000 37942.0000 37942.0000 Max-Min: 217.0000 Avg: 38014.3333
- Index: [5] Values: 44300.0000 44300.0000 44299.0000 Max-Min: 1.0000 Avg: 44299.6667
- Index: [6] Values: 38303.0000 38303.0000 38304.0000 Max-Min: 1.0000 Avg: 38303.3333
- Index: [7] Values: 29134.0000 29133.0000 29133.0000 Max-Min: 1.0000 Avg: 29133.3333
- Index: [8] Values: 8181.0000 8181.0000 8182.0000 Max-Min: 1.0000 Avg: 8181.3333
- Index: [9] Values: 18478.0000 18478.0000 18478.0000 Max-Min: 0.0000 Avg: 18478.0000
- Index: [10] Values: 21201.0000 21201.0000 21200.0000 Max-Min: 1.0000 Avg: 21200.6667
- (Scenarios: Scenario1 Scenario2 Scenario3 )
- Variable: ProduceSizeFirstStage
- Index: [3] Values: 1.0000 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- Index: [5] Values: 1.0000 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- Index: [6] Values: 1.0000 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- Index: [7] Values: 1.0000 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- Index: [8] Values: 1.0000 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- Index: [9] Values: 1.0000 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- Index: [10] Values: 1.0000 1.0000 1.0000 Max-Min: 0.0000 Avg: 1.0000
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: Scenario1 Scenario2 Scenario3 )
- Values: 161868.8968 161701.4648 161701.2384 Max-Min: 167.6584 Avg: 161757.2000
-Final costs:
-Scenario Tree Costs
-***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise
-----------------------------------------------------
-Tree Nodes:
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- Scenario1Node
- Scenario2Node
- Scenario3Node
- Scenarios:
- Scenario1
- Scenario2
- Scenario3
- Expected cost of (sub)tree rooted at node=225061.3246
-
- Name=Scenario1Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- Scenario1
- Expected cost of (sub)tree rooted at node=29654.1720
-
- Name=Scenario2Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- Scenario2
- Expected cost of (sub)tree rooted at node=63162.6960
-
- Name=Scenario3Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- Scenario3
- Expected cost of (sub)tree rooted at node=96760.4152
-
-----------------------------------------------------
-Scenarios:
-
- Name=Scenario1
- Probability=0.3333
- Leaf Node=Scenario1Node
- Tree node sequence:
- RootNode
- Scenario1Node
- Stage= FirstStage Cost=161868.8968
- Stage= SecondStage Cost=29654.1720
- Total scenario cost=191523.0688
-
- Name=Scenario2
- Probability=0.3333
- Leaf Node=Scenario2Node
- Tree node sequence:
- RootNode
- Scenario2Node
- Stage= FirstStage Cost=161701.4648
- Stage= SecondStage Cost=63162.6960
- Total scenario cost=224864.1608
-
- Name=Scenario3
- Probability=0.3333
- Leaf Node=Scenario3Node
- Tree node sequence:
- RootNode
- Scenario3Node
- Stage= FirstStage Cost=161701.2384
- Stage= SecondStage Cost=96760.4152
- Total scenario cost=258461.6536
-
-----------------------------------------------------
-
-Total PH execution time=11.11 seconds
-
-
-
-Total execution time=11.29 seconds
diff --git a/pyomo/pysp/tests/unit/baselines/sizes3_quadratic_gurobi.baseline-c b/pyomo/pysp/tests/unit/baselines/sizes3_quadratic_gurobi.baseline-c
deleted file mode 100644
index 02c9a55c4bd..00000000000
--- a/pyomo/pysp/tests/unit/baselines/sizes3_quadratic_gurobi.baseline-c
+++ /dev/null
@@ -1,535 +0,0 @@
-Importing module=/Users/ghackebeil/Projects/Pyomo/pyomo/examples/pysp/sizes/config/rhosetter.py
-Module successfully loaded
-Initializing PH
-
-Executing user rho setter callback function
-WW PH Extension: Loading user-specified configuration from file=/home/gahacke/Project/Pyomo/jenkins/src/pyomo/examples/pysp/sizes/config/wwph.cfg
-WW PH Extension: Loading variable suffixes from file=/home/gahacke/Project/Pyomo/jenkins/src/pyomo/examples/pysp/sizes/config/wwph.suffixes
-Starting PH
-
-Initiating PH iteration=0
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162890.6667 Max-Min= 668.20
-Converger=Normalized term diff value is 0.1472 - threshold reached=False
-Cumulative run-time=0.43 seconds
-
-Initiating PH iteration=1
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=24 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 163321.5381 Max-Min= 331.46
-Converger=Normalized term diff value is 0.1891 - threshold reached=False
-Cumulative run-time=0.93 seconds
-
-Initiating PH iteration=2
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=24 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 163362.3589 Max-Min= 1206.69
-Converger=Normalized term diff value is 0.1636 - threshold reached=False
-Cumulative run-time=1.39 seconds
-
-Initiating PH iteration=3
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=24 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 163153.9827 Max-Min= 99.64
-Converger=Normalized term diff value is 0.0951 - threshold reached=False
-Cumulative run-time=1.91 seconds
-
-Initiating PH iteration=4
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=24 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162949.1096 Max-Min= 3.03
-Converger=Normalized term diff value is 0.0760 - threshold reached=False
-Cumulative run-time=2.42 seconds
-
-Initiating PH iteration=5
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=24 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162752.5379 Max-Min= 46.06
-Converger=Normalized term diff value is 0.0022 - threshold reached=False
-Cumulative run-time=2.95 seconds
-
-Initiating PH iteration=6
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=24 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162545.8725 Max-Min= 27.98
-Converger=Normalized term diff value is 0.0024 - threshold reached=False
-Cumulative run-time=3.48 seconds
-
-Initiating PH iteration=7
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=24 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162325.0261 Max-Min= 35.42
-Converger=Normalized term diff value is 0.0030 - threshold reached=False
-Cumulative run-time=4.02 seconds
-
-Initiating PH iteration=8
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=24 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162106.9051 Max-Min= 50.61
-Converger=Normalized term diff value is 0.0023 - threshold reached=False
-Cumulative run-time=4.55 seconds
-
-Initiating PH iteration=9
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=24 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 161908.9635 Max-Min= 41.63
-Converger=Normalized term diff value is 0.0005 - threshold reached=False
-Cumulative run-time=5.08 seconds
-
-Initiating PH iteration=10
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=24 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 161740.5440 Max-Min= 92.00
-Converger=Normalized term diff value is 0.0027 - threshold reached=False
-Cumulative run-time=5.91 seconds
-
-Initiating PH iteration=11
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=24 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 161755.3984 Max-Min= 136.57
-Converger=Normalized term diff value is 0.0110 - threshold reached=False
-Cumulative run-time=6.46 seconds
-
-Initiating PH iteration=12
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=24 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 161750.1771 Max-Min= 120.90
-Converger=Normalized term diff value is 0.0109 - threshold reached=False
-Cumulative run-time=7.00 seconds
-
-Initiating PH iteration=13
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=24 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 161725.5920 Max-Min= 140.64
-Converger=Normalized term diff value is 0.0223 - threshold reached=False
-Cumulative run-time=7.54 seconds
-
-Initiating PH iteration=14
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=24 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 161721.1680 Max-Min= 146.05
-Converger=Normalized term diff value is 0.0023 - threshold reached=False
-Cumulative run-time=8.06 seconds
-
-Initiating PH iteration=15
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=24 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 161767.2317 Max-Min= 266.67
-Converger=Normalized term diff value is 0.0008 - threshold reached=False
-Cumulative run-time=8.57 seconds
-
-Initiating PH iteration=16
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=24 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 161870.1456 Max-Min= 111.69
-Converger=Normalized term diff value is 0.0010 - threshold reached=False
-Cumulative run-time=9.09 seconds
-
-Initiating PH iteration=17
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=24 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 161922.6627 Max-Min= 98.05
-Converger=Normalized term diff value is 0.0010 - threshold reached=False
-Cumulative run-time=9.60 seconds
-
-Initiating PH iteration=18
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=24 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 161924.3672 Max-Min= 103.17
-Converger=Normalized term diff value is 0.0005 - threshold reached=False
-Cumulative run-time=10.12 seconds
-
-Initiating PH iteration=19
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=24 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 161993.0061 Max-Min= 202.59
-Converger=Normalized term diff value is 0.0009 - threshold reached=False
-Cumulative run-time=10.64 seconds
-
-Initiating PH iteration=20
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=24 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162037.6584 Max-Min= 202.59
-Converger=Normalized term diff value is 0.0008 - threshold reached=False
-Cumulative run-time=11.45 seconds
-
-Initiating PH iteration=21
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=24 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162098.4621 Max-Min= 45.07
-Converger=Normalized term diff value is 0.0034 - threshold reached=False
-Cumulative run-time=12.00 seconds
-
-Initiating PH iteration=22
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=24 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162123.9477 Max-Min= 73.03
-Converger=Normalized term diff value is 0.0029 - threshold reached=False
-Cumulative run-time=12.52 seconds
-
-Initiating PH iteration=23
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=24 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162105.2717 Max-Min= 87.41
-Converger=Normalized term diff value is 0.0016 - threshold reached=False
-Cumulative run-time=13.02 seconds
-
-Initiating PH iteration=24
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=24 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162077.9392 Max-Min= 14.38
-Converger=Normalized term diff value is 0.0017 - threshold reached=False
-Cumulative run-time=13.53 seconds
-
-Initiating PH iteration=25
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=24 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162069.4824 Max-Min= 34.34
-Converger=Normalized term diff value is 0.0017 - threshold reached=False
-Cumulative run-time=14.03 seconds
-
-Initiating PH iteration=26
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=24 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162113.0224 Max-Min= 140.29
-Converger=Normalized term diff value is 0.0025 - threshold reached=False
-Cumulative run-time=14.56 seconds
-
-Initiating PH iteration=27
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=24 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162142.9816 Max-Min= 132.67
-Converger=Normalized term diff value is 0.0021 - threshold reached=False
-Cumulative run-time=15.06 seconds
-
-Initiating PH iteration=28
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=24 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162177.2549 Max-Min= 50.55
-Converger=Normalized term diff value is 0.0023 - threshold reached=False
-Cumulative run-time=15.57 seconds
-
-Initiating PH iteration=29
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=24 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162189.3237 Max-Min= 57.04
-Converger=Normalized term diff value is 0.0026 - threshold reached=False
-Cumulative run-time=16.06 seconds
-
-Initiating PH iteration=30
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=24 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162250.7859 Max-Min= 149.87
-Converger=Normalized term diff value is 0.0063 - threshold reached=False
-Cumulative run-time=16.83 seconds
-
-Initiating PH iteration=31
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=24 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162283.0917 Max-Min= 127.96
-Converger=Normalized term diff value is 0.0050 - threshold reached=False
-Cumulative run-time=17.35 seconds
-
-Initiating PH iteration=32
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=24 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162342.9557 Max-Min= 67.16
-Converger=Normalized term diff value is 0.0024 - threshold reached=False
-Cumulative run-time=17.86 seconds
-
-Initiating PH iteration=33
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=24 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162365.9376 Max-Min= 51.85
-Converger=Normalized term diff value is 0.0032 - threshold reached=False
-Cumulative run-time=18.37 seconds
-
-Initiating PH iteration=34
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=24 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162374.1499 Max-Min= 76.49
-Converger=Normalized term diff value is 0.0029 - threshold reached=False
-Cumulative run-time=18.88 seconds
-
-Initiating PH iteration=35
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=24 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162365.6299 Max-Min= 50.93
-Converger=Normalized term diff value is 0.0019 - threshold reached=False
-Cumulative run-time=19.38 seconds
-
-Initiating PH iteration=36
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=24 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162357.2173 Max-Min= 50.06
-Converger=Normalized term diff value is 0.0017 - threshold reached=False
-Cumulative run-time=19.89 seconds
-
-Initiating PH iteration=37
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=24 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162326.1659 Max-Min= 48.42
-Converger=Normalized term diff value is 0.0030 - threshold reached=False
-Cumulative run-time=20.42 seconds
-
-Initiating PH iteration=38
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=24 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162308.8005 Max-Min= 36.59
-Converger=Normalized term diff value is 0.0023 - threshold reached=False
-Cumulative run-time=20.94 seconds
-
-Initiating PH iteration=39
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=24 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162307.5733 Max-Min= 40.27
-Converger=Normalized term diff value is 0.0025 - threshold reached=False
-Cumulative run-time=21.45 seconds
-
-Initiating PH iteration=40
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=44 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162339.3376 Max-Min= 113.55
-Converger=Normalized term diff value is 0.0113 - threshold reached=False
-Cumulative run-time=22.26 seconds
-Halting PH - reached maximal iteration count=40
-
-Number of discrete variables fixed before final plugin calls=44 (total=65)
-Number of continuous variables fixed before final plugin calls=0 (total=0)
-PH complete
-
-Convergence history:
-Converger=Normalized term diff
-Iteration Metric Value
- 0 0.1472
- 1 0.1891
- 2 0.1636
- 3 0.0951
- 4 0.0760
- 5 0.0022
- 6 0.0024
- 7 0.0030
- 8 0.0023
- 9 0.0005
- 10 0.0027
- 11 0.0110
- 12 0.0109
- 13 0.0223
- 14 0.0023
- 15 0.0008
- 16 0.0010
- 17 0.0010
- 18 0.0005
- 19 0.0009
- 20 0.0008
- 21 0.0034
- 22 0.0029
- 23 0.0016
- 24 0.0017
- 25 0.0017
- 26 0.0025
- 27 0.0021
- 28 0.0023
- 29 0.0026
- 30 0.0063
- 31 0.0050
- 32 0.0024
- 33 0.0032
- 34 0.0029
- 35 0.0019
- 36 0.0017
- 37 0.0030
- 38 0.0023
- 39 0.0025
- 40 0.0113
-
-
-Final number of discrete variables fixed=44 (total=65)
-Final number of continuous variables fixed=0 (total=0)
-
-Computing objective inner bound at xhat solution
-
-Computed objective upper bound= 224910.0371
-
-X-hat variable values:
-
- Stage: FirstStage
- (Scenarios: Scenario1 Scenario2 Scenario3 )
- Variable: NumProducedFirstStage
- Index: [3] Values: 38194.0000 38194.0000 38194.0000
-
- Index: [5] Values: 44677.0000 44677.0000 44677.0000
-
- Index: [6] Values: 38624.0000 38624.0000 38624.0000
-
- Index: [7] Values: 29408.0000 29408.0000 29408.0000
-
- Index: [8] Values: 8347.0000 8347.0000 8347.0000
-
- Index: [9] Values: 18403.0000 18403.0000 18403.0000
-
- Index: [10] Values: 20827.0000 20827.0000 20827.0000
-
- (Scenarios: Scenario1 Scenario2 Scenario3 )
- Variable: NumUnitsCutFirstStage
- Index: [3,1] Values: 2500.0000 2500.0000 2500.0000
-
- Index: [3,2] Values: 7500.0000 7500.0000 7500.0000
-
- Index: [3,3] Values: 12500.0000 12500.0000 12500.0000
-
- Index: [5,4] Values: 9677.0000 9677.0000 9677.0000
-
- Index: [5,5] Values: 35000.0000 35000.0000 35000.0000
-
- Index: [6,4] Values: 323.0000 323.0000 323.0000
-
- Index: [6,6] Values: 25000.0000 25000.0000 25000.0000
-
- Index: [7,7] Values: 15000.0000 15000.0000 15000.0000
-
- Index: [8,8] Values: 8347.0000 8347.0000 8347.0000
-
- Index: [9,9] Values: 12420.0000 12420.0000 12420.0000
-
- Index: [10,8] Values: 4153.0000 4153.0000 4153.0000
-
- Index: [10,9] Values: 80.0000 80.0000 80.0000
-
- Index: [10,10] Values: 5000.0000 5000.0000 5000.0000
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: Scenario1 Scenario2 Scenario3 )
- Values: 162412.6080 162412.6080 162412.6080 Max-Min: 0.0000 Avg: 162412.6080
-
-X-hat costs:
-
-Scenario Tree Costs
-----------------------------------------------------
-Tree Nodes:
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- Scenario1Node
- Scenario2Node
- Scenario3Node
- Scenarios:
- Scenario1
- Scenario2
- Scenario3
- Expected cost of (sub)tree rooted at node=224910.0371
-
- Name=Scenario1Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- Scenario1
- Expected cost of (sub)tree rooted at node=29079.0848
-
- Name=Scenario2Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- Scenario2
- Expected cost of (sub)tree rooted at node=62407.7328
-
- Name=Scenario3Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- Scenario3
- Expected cost of (sub)tree rooted at node=96005.4696
-
-----------------------------------------------------
-Scenarios:
-
- Name=Scenario1
- Probability=0.3333
- Leaf Node=Scenario1Node
- Tree node sequence:
- RootNode
- Scenario1Node
- Stage= FirstStage Cost=162412.6080
- Stage= SecondStage Cost=29079.0848
- Total scenario cost=191491.6928
-
- Name=Scenario2
- Probability=0.3333
- Leaf Node=Scenario2Node
- Tree node sequence:
- RootNode
- Scenario2Node
- Stage= FirstStage Cost=162412.6080
- Stage= SecondStage Cost=62407.7328
- Total scenario cost=224820.3408
-
- Name=Scenario3
- Probability=0.3333
- Leaf Node=Scenario3Node
- Tree node sequence:
- RootNode
- Scenario3Node
- Stage= FirstStage Cost=162412.6080
- Stage= SecondStage Cost=96005.4696
- Total scenario cost=258418.0776
-
-----------------------------------------------------
-
-
-Total PH execution time=22.64 seconds
-
-
-Total execution time=22.74 seconds
diff --git a/pyomo/pysp/tests/unit/baselines/sizes3_quadratic_gurobi_darwin.baseline-a b/pyomo/pysp/tests/unit/baselines/sizes3_quadratic_gurobi_darwin.baseline-a
deleted file mode 100644
index 071caad52b6..00000000000
--- a/pyomo/pysp/tests/unit/baselines/sizes3_quadratic_gurobi_darwin.baseline-a
+++ /dev/null
@@ -1,224 +0,0 @@
-Importing module=/Users/ghackebeil/Projects/Pyomo/pyomo/examples/pysp/sizes/config/rhosetter.py
-Module successfully loaded
-Initializing PH
-
-Executing user rho setter callback function
-WW PH Extension: Loading user-specified configuration from file=/Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/examples/pysp/sizes/config/wwph.cfg
-WW PH Extension: Loading variable suffixes from file=/Users/ghackebeil/Projects/pyomo/src/pyomo.pysp/examples/pysp/sizes/config/wwph.suffixes
-Starting PH
-
-Initiating PH iteration=0
-Fixing variable=ProduceSizeFirstStage[1] at tree node=RootNode to value=0; converged for 1 iterations
-Fixing variable=ProduceSizeFirstStage[10] at tree node=RootNode to value=1; converged for 1 iterations
-Convergence metric= 0.1902 First stage cost avg= 163129.6000 Max-Min= 703.20
-Initiating PH iteration=1
-Convergence metric= 0.2029 First stage cost avg= 163462.7499 Max-Min= 1115.94
-Initiating PH iteration=2
-Convergence metric= 0.1894 First stage cost avg= 163507.3949 Max-Min= 192.88
-Initiating PH iteration=3
-Convergence metric= 0.1820 First stage cost avg= 163264.3573 Max-Min= 227.34
-Initiating PH iteration=4
-Convergence metric= 0.1492 First stage cost avg= 163034.9347 Max-Min= 19.38
-Initiating PH iteration=5
-Convergence metric= 0.1266 First stage cost avg= 162838.3600 Max-Min= 134.36
-Initiating PH iteration=6
-Convergence metric= 0.0899 First stage cost avg= 162711.8965 Max-Min= 303.14
-Initiating PH iteration=7
-Convergence metric= 0.0543 First stage cost avg= 162662.8739 Max-Min= 371.86
-Initiating PH iteration=8
-Convergence metric= 0.0643 First stage cost avg= 162650.6323 Max-Min= 148.73
-Initiating PH iteration=9
-Convergence metric= 0.0912 First stage cost avg= 162636.3949 Max-Min= 9.51
-Initiating PH iteration=10
-Convergence metric= 0.0736 First stage cost avg= 162622.1059 Max-Min= 4.88
-Initiating PH iteration=11
-Convergence metric= 0.0726 First stage cost avg= 162609.0989 Max-Min= 2.90
-Initiating PH iteration=12
-Convergence metric= 0.0509 First stage cost avg= 162600.3549 Max-Min= 11.97
-Initiating PH iteration=13
-Convergence metric= 0.0362 First stage cost avg= 162587.2480 Max-Min= 13.00
-Initiating PH iteration=14
-Convergence metric= 0.0362 First stage cost avg= 162575.7787 Max-Min= 5.40
-Initiating PH iteration=15
-Convergence metric= 0.0184 First stage cost avg= 162563.0192 Max-Min= 7.06
-Initiating PH iteration=16
-Convergence metric= 0.0178 First stage cost avg= 162550.5341 Max-Min= 2.47
-Initiating PH iteration=17
-Convergence metric= 0.0000 First stage cost avg= 162530.1051 Max-Min= 24.70
-PH converged - convergence metric is below threshold=0.0001 or all discrete variables are fixed
-PH complete
-Convergence history:
-Iteration Metric Value
- 0 0.1902
- 1 0.2029
- 2 0.1894
- 3 0.1820
- 4 0.1492
- 5 0.1266
- 6 0.0899
- 7 0.0543
- 8 0.0643
- 9 0.0912
- 10 0.0736
- 11 0.0726
- 12 0.0509
- 13 0.0362
- 14 0.0362
- 15 0.0184
- 16 0.0178
- 17 0.0000
-
-***********************************************************************************************
->>>THE EXPECTED SUM OF THE STAGE COST VARIABLES=224789.685531<<<
->>>***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise<<<
-***********************************************************************************************
-Final number of discrete variables fixed=2 (total=75)
-Final number of continuous variables fixed=0 (total=0)
-Final variable values:
- Stage=FirstStage
- Variable=NumUnitsCutFirstStage
- Index: [3,1] (Scenarios: Scenario1 Scenario2 Scenario3 )
- Values: 2500.0000 2500.0000 2500.0000 Max-Min= 0.0000 Avg= 2500.0000
- Index: [3,2] (Scenarios: Scenario1 Scenario2 Scenario3 )
- Values: 7500.0000 7500.0000 7500.0000 Max-Min= 0.0000 Avg= 7500.0000
- Index: [3,3] (Scenarios: Scenario1 Scenario2 Scenario3 )
- Values: 12500.0000 12500.0000 12500.0000 Max-Min= 0.0000 Avg= 12500.0000
- Index: [5,4] (Scenarios: Scenario1 Scenario2 Scenario3 )
- Values: 9330.0000 9331.0000 9331.0000 Max-Min= 1.0000 Avg= 9330.6667
- Index: [5,5] (Scenarios: Scenario1 Scenario2 Scenario3 )
- Values: 35000.0000 35000.0000 35000.0000 Max-Min= 0.0000 Avg= 35000.0000
- Index: [6,4] (Scenarios: Scenario1 Scenario2 Scenario3 )
- Values: 670.0000 669.0000 669.0000 Max-Min= 1.0000 Avg= 669.3333
- Index: [6,6] (Scenarios: Scenario1 Scenario2 Scenario3 )
- Values: 25000.0000 25000.0000 25000.0000 Max-Min= 0.0000 Avg= 25000.0000
- Index: [7,7] (Scenarios: Scenario1 Scenario2 Scenario3 )
- Values: 15000.0000 15000.0000 15000.0000 Max-Min= 0.0000 Avg= 15000.0000
- Index: [8,8] (Scenarios: Scenario1 Scenario2 Scenario3 )
- Values: 12500.0000 12500.0000 12500.0000 Max-Min= 0.0000 Avg= 12500.0000
- Index: [9,9] (Scenarios: Scenario1 Scenario2 Scenario3 )
- Values: 11432.0000 11431.0000 11428.0000 Max-Min= 4.0000 Avg= 11430.3333
- Index: [10,9] (Scenarios: Scenario1 Scenario2 Scenario3 )
- Values: 1068.0000 1069.0000 1072.0000 Max-Min= 4.0000 Avg= 1069.6667
- Index: [10,10] (Scenarios: Scenario1 Scenario2 Scenario3 )
- Values: 5000.0000 5000.0000 5000.0000 Max-Min= 0.0000 Avg= 5000.0000
- Variable=NumProducedFirstStage
- Index: [3] (Scenarios: Scenario1 Scenario2 Scenario3 )
- Values: 38250.0000 38280.0000 38281.0000 Max-Min= 31.0000 Avg= 38270.3333
- Index: [5] (Scenarios: Scenario1 Scenario2 Scenario3 )
- Values: 44330.0000 44331.0000 44331.0000 Max-Min= 1.0000 Avg= 44330.6667
- Index: [6] (Scenarios: Scenario1 Scenario2 Scenario3 )
- Values: 38302.0000 38302.0000 38301.0000 Max-Min= 1.0000 Avg= 38301.6667
- Index: [7] (Scenarios: Scenario1 Scenario2 Scenario3 )
- Values: 17568.0000 17568.0000 17568.0000 Max-Min= 0.0000 Avg= 17568.0000
- Index: [8] (Scenarios: Scenario1 Scenario2 Scenario3 )
- Values: 19194.0000 19194.0000 19194.0000 Max-Min= 0.0000 Avg= 19194.0000
- Index: [9] (Scenarios: Scenario1 Scenario2 Scenario3 )
- Values: 22603.0000 22603.0000 22603.0000 Max-Min= 0.0000 Avg= 22603.0000
- Index: [10] (Scenarios: Scenario1 Scenario2 Scenario3 )
- Values: 18232.0000 18232.0000 18233.0000 Max-Min= 1.0000 Avg= 18232.3333
- Variable=ProduceSizeFirstStage
- Index: [3] (Scenarios: Scenario1 Scenario2 Scenario3 )
- Values: 1.0000 1.0000 1.0000 Max-Min= 0.0000 Avg= 1.0000
- Index: [5] (Scenarios: Scenario1 Scenario2 Scenario3 )
- Values: 1.0000 1.0000 1.0000 Max-Min= 0.0000 Avg= 1.0000
- Index: [6] (Scenarios: Scenario1 Scenario2 Scenario3 )
- Values: 1.0000 1.0000 1.0000 Max-Min= 0.0000 Avg= 1.0000
- Index: [7] (Scenarios: Scenario1 Scenario2 Scenario3 )
- Values: 1.0000 1.0000 1.0000 Max-Min= 0.0000 Avg= 1.0000
- Index: [8] (Scenarios: Scenario1 Scenario2 Scenario3 )
- Values: 1.0000 1.0000 1.0000 Max-Min= 0.0000 Avg= 1.0000
- Index: [9] (Scenarios: Scenario1 Scenario2 Scenario3 )
- Values: 1.0000 1.0000 1.0000 Max-Min= 0.0000 Avg= 1.0000
- Index: [10] (Scenarios: Scenario1 Scenario2 Scenario3 )
- Values: 1.0000 1.0000 1.0000 Max-Min= 0.0000 Avg= 1.0000
- Cost Variable=FirstStageCost
- Tree Node=RootNode (Scenarios: Scenario1 Scenario2 Scenario3 )
- Values: 162513.9192 162537.7808 162538.6152 Max-Min= 24.6960 Avg= 162530.1051
-Final costs:
-Scenario Tree Costs
-***CAUTION***: Assumes full (or nearly so) convergence of scenario solutions at each node in the scenario tree - computed costs are invalid otherwise
-----------------------------------------------------
-Tree Nodes:
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- Scenario1Node
- Scenario2Node
- Scenario3Node
- Scenarios:
- Scenario1
- Scenario2
- Scenario3
- Expected cost of (sub)tree rooted at node=224789.6855
-
- Name=Scenario1Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- Scenario1
- Expected cost of (sub)tree rooted at node=28995.8800
-
- Name=Scenario2Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- Scenario2
- Expected cost of (sub)tree rooted at node=62133.7280
-
- Name=Scenario3Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- Scenario3
- Expected cost of (sub)tree rooted at node=95697.6909
-
-----------------------------------------------------
-Scenarios:
-
- Name=Scenario1
- Probability=0.3333
- Leaf Node=Scenario1Node
- Tree node sequence:
- RootNode
- Scenario1Node
- Stage= FirstStage Cost=162513.9192
- Stage= SecondStage Cost=28995.8800
- Total scenario cost=191509.7992
-
- Name=Scenario2
- Probability=0.3333
- Leaf Node=Scenario2Node
- Tree node sequence:
- RootNode
- Scenario2Node
- Stage= FirstStage Cost=162537.7808
- Stage= SecondStage Cost=62133.7280
- Total scenario cost=224671.5088
-
- Name=Scenario3
- Probability=0.3333
- Leaf Node=Scenario3Node
- Tree node sequence:
- RootNode
- Scenario3Node
- Stage= FirstStage Cost=162538.6152
- Stage= SecondStage Cost=95697.6909
- Total scenario cost=258236.3061
-
-----------------------------------------------------
-
-Total PH execution time=24.88 seconds
-
-Total execution time=24.88 seconds
diff --git a/pyomo/pysp/tests/unit/baselines/sizes3_quadratic_gurobi_darwin.baseline-b b/pyomo/pysp/tests/unit/baselines/sizes3_quadratic_gurobi_darwin.baseline-b
deleted file mode 100644
index 05dad9126d1..00000000000
--- a/pyomo/pysp/tests/unit/baselines/sizes3_quadratic_gurobi_darwin.baseline-b
+++ /dev/null
@@ -1,533 +0,0 @@
-Importing module=/Users/ghackebeil/Projects/Pyomo/pyomo/examples/pysp/sizes/config/rhosetter.py
-Module successfully loaded
-Initializing PH
-
-Executing user rho setter callback function
-WW PH Extension: Loading user-specified configuration from file=/Users/ghackebeil/Projects/Pyomo/pyomo/examples/pysp/sizes/config/wwph.cfg
-WW PH Extension: Loading variable suffixes from file=/Users/ghackebeil/Projects/Pyomo/pyomo/examples/pysp/sizes/config/wwph.suffixes
-Starting PH
-
-Initiating PH iteration=0
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162890.6667 Max-Min= 668.20
-Converger=Normalized term diff value is 0.1472 - threshold reached=False
-Cumulative run-time=0.26 seconds
-
-Initiating PH iteration=1
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=24 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 163321.5216 Max-Min= 331.50
-Converger=Normalized term diff value is 0.1891 - threshold reached=False
-Cumulative run-time=0.56 seconds
-
-Initiating PH iteration=2
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=24 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 163362.1045 Max-Min= 1207.50
-Converger=Normalized term diff value is 0.1636 - threshold reached=False
-Cumulative run-time=0.84 seconds
-
-Initiating PH iteration=3
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=24 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 163163.1571 Max-Min= 102.87
-Converger=Normalized term diff value is 0.0950 - threshold reached=False
-Cumulative run-time=1.13 seconds
-
-Initiating PH iteration=4
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=24 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162959.3656 Max-Min= 38.84
-Converger=Normalized term diff value is 0.0760 - threshold reached=False
-Cumulative run-time=1.40 seconds
-
-Initiating PH iteration=5
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=24 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162752.8157 Max-Min= 21.00
-Converger=Normalized term diff value is 0.0022 - threshold reached=False
-Cumulative run-time=1.66 seconds
-
-Initiating PH iteration=6
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=24 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162544.5323 Max-Min= 23.62
-Converger=Normalized term diff value is 0.0024 - threshold reached=False
-Cumulative run-time=1.94 seconds
-
-Initiating PH iteration=7
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=24 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162314.3427 Max-Min= 55.87
-Converger=Normalized term diff value is 0.0049 - threshold reached=False
-Cumulative run-time=2.21 seconds
-
-Initiating PH iteration=8
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=24 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162101.4840 Max-Min= 61.96
-Converger=Normalized term diff value is 0.0047 - threshold reached=False
-Cumulative run-time=2.47 seconds
-
-Initiating PH iteration=9
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=24 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 161881.2037 Max-Min= 106.24
-Converger=Normalized term diff value is 0.0021 - threshold reached=False
-Cumulative run-time=2.74 seconds
-
-Initiating PH iteration=10
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=24 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 161712.8813 Max-Min= 158.03
-Converger=Normalized term diff value is 0.0015 - threshold reached=False
-Cumulative run-time=3.03 seconds
-
-Initiating PH iteration=11
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=24 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 161674.2419 Max-Min= 273.95
-Converger=Normalized term diff value is 0.0120 - threshold reached=False
-Cumulative run-time=3.30 seconds
-
-Initiating PH iteration=12
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=24 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 161658.9312 Max-Min= 295.29
-Converger=Normalized term diff value is 0.0225 - threshold reached=False
-Cumulative run-time=3.57 seconds
-
-Initiating PH iteration=13
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=24 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 161662.1451 Max-Min= 295.29
-Converger=Normalized term diff value is 0.0226 - threshold reached=False
-Cumulative run-time=3.84 seconds
-
-Initiating PH iteration=14
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=24 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 161729.1181 Max-Min= 120.72
-Converger=Normalized term diff value is 0.0229 - threshold reached=False
-Cumulative run-time=4.11 seconds
-
-Initiating PH iteration=15
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=24 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 161772.8048 Max-Min= 57.96
-Converger=Normalized term diff value is 0.0023 - threshold reached=False
-Cumulative run-time=4.38 seconds
-
-Initiating PH iteration=16
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=24 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 161779.9517 Max-Min= 79.41
-Converger=Normalized term diff value is 0.0024 - threshold reached=False
-Cumulative run-time=4.66 seconds
-
-Initiating PH iteration=17
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=24 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 161846.1224 Max-Min= 136.54
-Converger=Normalized term diff value is 0.0049 - threshold reached=False
-Cumulative run-time=4.93 seconds
-
-Initiating PH iteration=18
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=24 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 161894.0261 Max-Min= 115.17
-Converger=Normalized term diff value is 0.0025 - threshold reached=False
-Cumulative run-time=5.21 seconds
-
-Initiating PH iteration=19
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=24 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 161904.3605 Max-Min= 116.77
-Converger=Normalized term diff value is 0.0029 - threshold reached=False
-Cumulative run-time=5.66 seconds
-
-Initiating PH iteration=20
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=24 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 161967.9669 Max-Min= 223.40
-Converger=Normalized term diff value is 0.0045 - threshold reached=False
-Cumulative run-time=5.93 seconds
-
-Initiating PH iteration=21
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=24 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162007.9029 Max-Min= 223.40
-Converger=Normalized term diff value is 0.0050 - threshold reached=False
-Cumulative run-time=6.20 seconds
-
-Initiating PH iteration=22
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=24 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162057.6288 Max-Min= 187.44
-Converger=Normalized term diff value is 0.0054 - threshold reached=False
-Cumulative run-time=6.48 seconds
-
-Initiating PH iteration=23
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=24 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162088.8621 Max-Min= 187.44
-Converger=Normalized term diff value is 0.0056 - threshold reached=False
-Cumulative run-time=6.75 seconds
-
-Initiating PH iteration=24
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=24 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162157.1224 Max-Min= 157.62
-Converger=Normalized term diff value is 0.0065 - threshold reached=False
-Cumulative run-time=7.03 seconds
-
-Initiating PH iteration=25
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=24 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162189.0381 Max-Min= 157.62
-Converger=Normalized term diff value is 0.0069 - threshold reached=False
-Cumulative run-time=7.31 seconds
-
-Initiating PH iteration=26
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=24 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162235.4443 Max-Min= 99.91
-Converger=Normalized term diff value is 0.0081 - threshold reached=False
-Cumulative run-time=7.58 seconds
-
-Initiating PH iteration=27
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=24 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162256.0899 Max-Min= 99.91
-Converger=Normalized term diff value is 0.0089 - threshold reached=False
-Cumulative run-time=7.85 seconds
-
-Initiating PH iteration=28
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=24 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162264.4656 Max-Min= 130.44
-Converger=Normalized term diff value is 0.0122 - threshold reached=False
-Cumulative run-time=8.13 seconds
-
-Initiating PH iteration=29
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=24 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162263.9003 Max-Min= 130.44
-Converger=Normalized term diff value is 0.0194 - threshold reached=False
-Cumulative run-time=8.41 seconds
-
-Initiating PH iteration=30
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=24 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162367.5811 Max-Min= 249.92
-Converger=Normalized term diff value is 0.0403 - threshold reached=False
-Cumulative run-time=8.69 seconds
-
-Initiating PH iteration=31
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=24 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162436.1275 Max-Min= 190.80
-Converger=Normalized term diff value is 0.0300 - threshold reached=False
-Cumulative run-time=8.96 seconds
-
-Initiating PH iteration=32
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=24 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162447.5384 Max-Min= 190.80
-Converger=Normalized term diff value is 0.0300 - threshold reached=False
-Cumulative run-time=9.23 seconds
-
-Initiating PH iteration=33
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=24 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162522.4563 Max-Min= 178.96
-Converger=Normalized term diff value is 0.0279 - threshold reached=False
-Cumulative run-time=9.51 seconds
-
-Initiating PH iteration=34
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=24 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162575.5909 Max-Min= 101.44
-Converger=Normalized term diff value is 0.0235 - threshold reached=False
-Cumulative run-time=9.78 seconds
-
-Initiating PH iteration=35
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=24 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162593.1563 Max-Min= 138.89
-Converger=Normalized term diff value is 0.0339 - threshold reached=False
-Cumulative run-time=10.05 seconds
-
-Initiating PH iteration=36
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=24 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162645.1008 Max-Min= 98.03
-Converger=Normalized term diff value is 0.0251 - threshold reached=False
-Cumulative run-time=10.32 seconds
-
-Initiating PH iteration=37
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=24 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162674.0272 Max-Min= 92.78
-Converger=Normalized term diff value is 0.0047 - threshold reached=False
-Cumulative run-time=10.59 seconds
-
-Initiating PH iteration=38
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=24 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162701.0011 Max-Min= 11.86
-Converger=Normalized term diff value is 0.0217 - threshold reached=False
-Cumulative run-time=11.03 seconds
-
-Initiating PH iteration=39
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=24 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162701.0011 Max-Min= 11.86
-Converger=Normalized term diff value is 0.0217 - threshold reached=False
-Cumulative run-time=11.28 seconds
-
-Initiating PH iteration=40
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=42 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162749.8597 Max-Min= 113.45
-Converger=Normalized term diff value is 0.0262 - threshold reached=False
-Cumulative run-time=11.55 seconds
-Halting PH - reached maximal iteration count=40
-
-Number of discrete variables fixed before final plugin calls=42 (total=65)
-Number of continuous variables fixed before final plugin calls=0 (total=0)
-PH complete
-
-Convergence history:
-Converger=Normalized term diff
-Iteration Metric Value
- 0 0.1472
- 1 0.1891
- 2 0.1636
- 3 0.0950
- 4 0.0760
- 5 0.0022
- 6 0.0024
- 7 0.0049
- 8 0.0047
- 9 0.0021
- 10 0.0015
- 11 0.0120
- 12 0.0225
- 13 0.0226
- 14 0.0229
- 15 0.0023
- 16 0.0024
- 17 0.0049
- 18 0.0025
- 19 0.0029
- 20 0.0045
- 21 0.0050
- 22 0.0054
- 23 0.0056
- 24 0.0065
- 25 0.0069
- 26 0.0081
- 27 0.0089
- 28 0.0122
- 29 0.0194
- 30 0.0403
- 31 0.0300
- 32 0.0300
- 33 0.0279
- 34 0.0235
- 35 0.0339
- 36 0.0251
- 37 0.0047
- 38 0.0217
- 39 0.0217
- 40 0.0262
-
-
-Final number of discrete variables fixed=42 (total=65)
-Final number of continuous variables fixed=0 (total=0)
-
-Computing objective inner bound at xhat solution
-
-Computed objective upper bound= 224900.8803
-
-X-hat variable values:
-
- Stage: FirstStage
- (Scenarios: Scenario1 Scenario2 Scenario3 )
- Variable: NumProducedFirstStage
- Index: [3] Values: 38250.0000 38250.0000 38250.0000
-
- Index: [5] Values: 44885.0000 44885.0000 44885.0000
-
- Index: [6] Values: 38657.0000 38657.0000 38657.0000
-
- Index: [7] Values: 29461.0000 29461.0000 29461.0000
-
- Index: [8] Values: 8378.0000 8378.0000 8378.0000
-
- Index: [9] Values: 18404.0000 18404.0000 18404.0000
-
- Index: [10] Values: 20809.0000 20809.0000 20809.0000
-
- (Scenarios: Scenario1 Scenario2 Scenario3 )
- Variable: NumUnitsCutFirstStage
- Index: [3,1] Values: 2500.0000 2500.0000 2500.0000
-
- Index: [3,2] Values: 7500.0000 7500.0000 7500.0000
-
- Index: [3,3] Values: 12500.0000 12500.0000 12500.0000
-
- Index: [5,4] Values: 9885.0000 9885.0000 9885.0000
-
- Index: [5,5] Values: 35000.0000 35000.0000 35000.0000
-
- Index: [6,4] Values: 115.0000 115.0000 115.0000
-
- Index: [6,6] Values: 25000.0000 25000.0000 25000.0000
-
- Index: [7,7] Values: 15000.0000 15000.0000 15000.0000
-
- Index: [8,8] Values: 8378.0000 8378.0000 8378.0000
-
- Index: [9,9] Values: 12500.0000 12500.0000 12500.0000
-
- Index: [10,8] Values: 4122.0000 4122.0000 4122.0000
-
- Index: [10,10] Values: 5000.0000 5000.0000 5000.0000
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: Scenario1 Scenario2 Scenario3 )
- Values: 162699.4880 162699.4880 162699.4880 Max-Min: 0.0000 Avg: 162699.4880
-
-X-hat costs:
-
-Scenario Tree Costs
-----------------------------------------------------
-Tree Nodes:
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- Scenario1Node
- Scenario2Node
- Scenario3Node
- Scenarios:
- Scenario1
- Scenario2
- Scenario3
- Expected cost of (sub)tree rooted at node=224900.8803
-
- Name=Scenario1Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- Scenario1
- Expected cost of (sub)tree rooted at node=28783.2984
-
- Name=Scenario2Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- Scenario2
- Expected cost of (sub)tree rooted at node=62108.9888
-
- Name=Scenario3Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- Scenario3
- Expected cost of (sub)tree rooted at node=95711.8896
-
-----------------------------------------------------
-Scenarios:
-
- Name=Scenario1
- Probability=0.3333
- Leaf Node=Scenario1Node
- Tree node sequence:
- RootNode
- Scenario1Node
- Stage= FirstStage Cost=162699.4880
- Stage= SecondStage Cost=28783.2984
- Total scenario cost=191482.7864
-
- Name=Scenario2
- Probability=0.3333
- Leaf Node=Scenario2Node
- Tree node sequence:
- RootNode
- Scenario2Node
- Stage= FirstStage Cost=162699.4880
- Stage= SecondStage Cost=62108.9888
- Total scenario cost=224808.4768
-
- Name=Scenario3
- Probability=0.3333
- Leaf Node=Scenario3Node
- Tree node sequence:
- RootNode
- Scenario3Node
- Stage= FirstStage Cost=162699.4880
- Stage= SecondStage Cost=95711.8896
- Total scenario cost=258411.3776
-
-----------------------------------------------------
-
-
-Total PH execution time=11.77 seconds
-
-
-Total execution time=11.83 seconds
diff --git a/pyomo/pysp/tests/unit/baselines/sizes3_quadratic_gurobi_with_phpyro.baseline-a b/pyomo/pysp/tests/unit/baselines/sizes3_quadratic_gurobi_with_phpyro.baseline-a
deleted file mode 100644
index 1d0e23bb12b..00000000000
--- a/pyomo/pysp/tests/unit/baselines/sizes3_quadratic_gurobi_with_phpyro.baseline-a
+++ /dev/null
@@ -1,459 +0,0 @@
-Importing module=/Users/ghackebeil/Projects/Pyomo/pyomo/examples/pysp/sizes/config/rhosetter.py
-Module successfully loaded
-Client assigned dispatcher with URI=PYRO://127.0.0.1:42030/86fdc201aebc22e2f5cb5a1a3f279b0a78
-Initializing PH
-
-Transmitting user rho callback invocations to phsolverservers
-WW PH Extension: Loading user-specified configuration from file=/home/gahacke/Project/Pyomo/jenkins/src/pyomo/examples/pysp/sizes/config/wwph.cfg
-WW PH Extension: Loading variable suffixes from file=/home/gahacke/Project/Pyomo/jenkins/src/pyomo/examples/pysp/sizes/config/wwph.suffixes
-Starting PH
-
-Initiating PH iteration=0
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 163129.6000 Max-Min= 703.20
-Converger=Normalized term diff value is 0.1785 - threshold reached=False
-Cumulative run-time=0.51 seconds
-
-Initiating PH iteration=1
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 163462.7280 Max-Min= 1115.87
-Converger=Normalized term diff value is 0.2033 - threshold reached=False
-Cumulative run-time=1.19 seconds
-
-Initiating PH iteration=2
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 163523.9963 Max-Min= 245.08
-Converger=Normalized term diff value is 0.1981 - threshold reached=False
-Cumulative run-time=1.94 seconds
-
-Initiating PH iteration=3
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 163281.5440 Max-Min= 281.25
-Converger=Normalized term diff value is 0.1894 - threshold reached=False
-Cumulative run-time=2.58 seconds
-
-Initiating PH iteration=4
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 163069.9232 Max-Min= 27.43
-Converger=Normalized term diff value is 0.2121 - threshold reached=False
-Cumulative run-time=3.53 seconds
-
-Initiating PH iteration=5
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162873.9147 Max-Min= 93.09
-Converger=Normalized term diff value is 0.1242 - threshold reached=False
-Cumulative run-time=4.28 seconds
-
-Initiating PH iteration=6
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162764.7789 Max-Min= 301.47
-Converger=Normalized term diff value is 0.0834 - threshold reached=False
-Cumulative run-time=5.12 seconds
-
-Initiating PH iteration=7
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162733.6744 Max-Min= 365.68
-Converger=Normalized term diff value is 0.0842 - threshold reached=False
-Cumulative run-time=6.37 seconds
-
-Initiating PH iteration=8
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162733.2499 Max-Min= 139.78
-Converger=Normalized term diff value is 0.0917 - threshold reached=False
-Cumulative run-time=7.24 seconds
-
-Initiating PH iteration=9
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162722.2936 Max-Min= 86.57
-Converger=Normalized term diff value is 0.0873 - threshold reached=False
-Cumulative run-time=8.09 seconds
-
-Initiating PH iteration=10
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162727.1224 Max-Min= 37.75
-Converger=Normalized term diff value is 0.1245 - threshold reached=False
-Cumulative run-time=8.90 seconds
-
-Initiating PH iteration=11
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162730.9579 Max-Min= 37.75
-Converger=Normalized term diff value is 0.1180 - threshold reached=False
-Cumulative run-time=9.55 seconds
-
-Initiating PH iteration=12
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162741.9731 Max-Min= 14.48
-Converger=Normalized term diff value is 0.1108 - threshold reached=False
-Cumulative run-time=10.35 seconds
-
-Initiating PH iteration=13
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162747.7805 Max-Min= 9.50
-Converger=Normalized term diff value is 0.1116 - threshold reached=False
-Cumulative run-time=11.10 seconds
-
-Initiating PH iteration=14
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162761.0435 Max-Min= 31.56
-Converger=Normalized term diff value is 0.1080 - threshold reached=False
-Cumulative run-time=12.14 seconds
-
-Initiating PH iteration=15
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162761.9525 Max-Min= 48.72
-Converger=Normalized term diff value is 0.0346 - threshold reached=False
-Cumulative run-time=12.84 seconds
-
-Initiating PH iteration=16
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162758.8651 Max-Min= 48.72
-Converger=Normalized term diff value is 0.0341 - threshold reached=False
-Cumulative run-time=13.48 seconds
-
-Initiating PH iteration=17
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162732.3229 Max-Min= 46.86
-Converger=Normalized term diff value is 0.0402 - threshold reached=False
-Cumulative run-time=14.56 seconds
-
-Initiating PH iteration=18
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162715.7645 Max-Min= 25.50
-Converger=Normalized term diff value is 0.0433 - threshold reached=False
-Cumulative run-time=15.18 seconds
-
-Initiating PH iteration=19
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162708.5245 Max-Min= 74.00
-Converger=Normalized term diff value is 0.0632 - threshold reached=False
-Cumulative run-time=16.36 seconds
-
-Initiating PH iteration=20
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162694.5349 Max-Min= 34.09
-Converger=Normalized term diff value is 0.0426 - threshold reached=False
-Cumulative run-time=17.36 seconds
-
-Initiating PH iteration=21
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162688.2827 Max-Min= 34.09
-Converger=Normalized term diff value is 0.0428 - threshold reached=False
-Cumulative run-time=18.49 seconds
-
-Initiating PH iteration=22
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162688.3656 Max-Min= 34.09
-Converger=Normalized term diff value is 0.0425 - threshold reached=False
-Cumulative run-time=19.19 seconds
-
-Initiating PH iteration=23
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162672.3949 Max-Min= 89.25
-Converger=Normalized term diff value is 0.1252 - threshold reached=False
-Cumulative run-time=20.01 seconds
-
-Initiating PH iteration=24
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162629.3048 Max-Min= 49.87
-Converger=Normalized term diff value is 0.1305 - threshold reached=False
-Cumulative run-time=20.88 seconds
-
-Initiating PH iteration=25
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162626.1787 Max-Min= 83.06
-Converger=Normalized term diff value is 0.1290 - threshold reached=False
-Cumulative run-time=21.74 seconds
-
-Initiating PH iteration=26
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162646.3235 Max-Min= 76.51
-Converger=Normalized term diff value is 0.1314 - threshold reached=False
-Cumulative run-time=22.65 seconds
-
-Initiating PH iteration=27
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162712.9883 Max-Min= 97.24
-Converger=Normalized term diff value is 0.0476 - threshold reached=False
-Cumulative run-time=23.73 seconds
-
-Initiating PH iteration=28
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162776.9715 Max-Min= 20.88
-Converger=Normalized term diff value is 0.0025 - threshold reached=False
-Cumulative run-time=24.89 seconds
-
-Initiating PH iteration=29
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162832.3984 Max-Min= 20.58
-Converger=Normalized term diff value is 0.0010 - threshold reached=False
-Cumulative run-time=25.70 seconds
-
-Initiating PH iteration=30
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=3 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162848.6579 Max-Min= 69.36
-Converger=Normalized term diff value is 0.0004 - threshold reached=False
-Cumulative run-time=26.23 seconds
-
-Initiating PH iteration=31
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=3 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162841.1253 Max-Min= 46.76
-Converger=Normalized term diff value is 0.0003 - threshold reached=False
-Cumulative run-time=26.79 seconds
-
-Initiating PH iteration=32
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=3 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162830.2509 Max-Min= 19.01
-Converger=Normalized term diff value is 0.0001 - threshold reached=True
-Cumulative run-time=27.51 seconds
-
-Number of discrete variables fixed before final plugin calls=3 (total=65)
-Number of continuous variables fixed before final plugin calls=0 (total=0)
-PH complete
-
-Convergence history:
-Converger=Normalized term diff
-Iteration Metric Value
- 0 0.1785
- 1 0.2033
- 2 0.1981
- 3 0.1894
- 4 0.2121
- 5 0.1242
- 6 0.0834
- 7 0.0842
- 8 0.0917
- 9 0.0873
- 10 0.1245
- 11 0.1180
- 12 0.1108
- 13 0.1116
- 14 0.1080
- 15 0.0346
- 16 0.0341
- 17 0.0402
- 18 0.0433
- 19 0.0632
- 20 0.0426
- 21 0.0428
- 22 0.0425
- 23 0.1252
- 24 0.1305
- 25 0.1290
- 26 0.1314
- 27 0.0476
- 28 0.0025
- 29 0.0010
- 30 0.0004
- 31 0.0003
- 32 0.0001
-
-
-Final number of discrete variables fixed=3 (total=65)
-Final number of continuous variables fixed=0 (total=0)
-
-Computing objective inner bound at xhat solution
-
-Computed objective upper bound= 224797.9182
-
-X-hat variable values:
-
- Stage: FirstStage
- (Scenarios: Scenario1 Scenario2 Scenario3 )
- Variable: NumProducedFirstStage
- Index: [3] Values: 38258.0000 38258.0000 38258.0000
-
- Index: [5] Values: 44541.0000 44541.0000 44541.0000
-
- Index: [6] Values: 38408.0000 38408.0000 38408.0000
-
- Index: [7] Values: 17671.0000 17671.0000 17671.0000
-
- Index: [8] Values: 19293.0000 19293.0000 19293.0000
-
- Index: [9] Values: 22609.0000 22609.0000 22609.0000
-
- Index: [10] Values: 18114.0000 18114.0000 18114.0000
-
- (Scenarios: Scenario1 Scenario2 Scenario3 )
- Variable: NumUnitsCutFirstStage
- Index: [3,1] Values: 2500.0000 2500.0000 2500.0000
-
- Index: [3,2] Values: 7500.0000 7500.0000 7500.0000
-
- Index: [3,3] Values: 12500.0000 12500.0000 12500.0000
-
- Index: [5,4] Values: 9541.0000 9541.0000 9541.0000
-
- Index: [5,5] Values: 35000.0000 35000.0000 35000.0000
-
- Index: [6,4] Values: 459.0000 459.0000 459.0000
-
- Index: [6,6] Values: 25000.0000 25000.0000 25000.0000
-
- Index: [7,7] Values: 15000.0000 15000.0000 15000.0000
-
- Index: [8,8] Values: 12500.0000 12500.0000 12500.0000
-
- Index: [9,9] Values: 12500.0000 12500.0000 12500.0000
-
- Index: [10,10] Values: 5000.0000 5000.0000 5000.0000
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: Scenario1 Scenario2 Scenario3 )
- Values: 162833.3400 162833.3400 162833.3400 Max-Min: 0.0000 Avg: 162833.3400
-
-X-hat costs:
-
-Scenario Tree Costs
-----------------------------------------------------
-Tree Nodes:
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- Scenario1Node
- Scenario2Node
- Scenario3Node
- Scenarios:
- Scenario1
- Scenario2
- Scenario3
- Expected cost of (sub)tree rooted at node=224797.9182
-
- Name=Scenario1Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- Scenario1
- Expected cost of (sub)tree rooted at node=28669.3840
-
- Name=Scenario2Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- Scenario2
- Expected cost of (sub)tree rooted at node=61827.2608
-
- Name=Scenario3Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- Scenario3
- Expected cost of (sub)tree rooted at node=95397.0896
-
-----------------------------------------------------
-Scenarios:
-
- Name=Scenario1
- Probability=0.3333
- Leaf Node=Scenario1Node
- Tree node sequence:
- RootNode
- Scenario1Node
- Stage= FirstStage Cost=162833.3400
- Stage= SecondStage Cost=28669.3840
- Total scenario cost=191502.7240
-
- Name=Scenario2
- Probability=0.3333
- Leaf Node=Scenario2Node
- Tree node sequence:
- RootNode
- Scenario2Node
- Stage= FirstStage Cost=162833.3400
- Stage= SecondStage Cost=61827.2608
- Total scenario cost=224660.6008
-
- Name=Scenario3
- Probability=0.3333
- Leaf Node=Scenario3Node
- Tree node sequence:
- RootNode
- Scenario3Node
- Stage= FirstStage Cost=162833.3400
- Stage= SecondStage Cost=95397.0896
- Total scenario cost=258230.4296
-
-----------------------------------------------------
-
-
-Total PH execution time=28.07 seconds
-
-
-Total execution time=28.41 seconds
diff --git a/pyomo/pysp/tests/unit/baselines/sizes3_quadratic_gurobi_with_phpyro.baseline-b b/pyomo/pysp/tests/unit/baselines/sizes3_quadratic_gurobi_with_phpyro.baseline-b
deleted file mode 100644
index f930464a1a6..00000000000
--- a/pyomo/pysp/tests/unit/baselines/sizes3_quadratic_gurobi_with_phpyro.baseline-b
+++ /dev/null
@@ -1,289 +0,0 @@
-Importing module=/Users/ghackebeil/Projects/Pyomo/pyomo/examples/pysp/sizes/config/rhosetter.py
-Module successfully loaded
-Client assigned dispatcher with URI=PYRO::PyUtilibServer.dispatcher.7c788ec5-81ac-4073-9191-30523cb7ca91@127.0.0.1:52733
-Initializing PH
-
-Transmitting user rho callback invocations to phsolverservers
-WW PH Extension: Loading user-specified configuration from file=/home/hudson/slave/workspace/Pyomo_trunk_python2.7_snotra_parallel/src/pyomo/examples/pysp/sizes/config/wwph.cfg
-WW PH Extension: Loading variable suffixes from file=/home/hudson/slave/workspace/Pyomo_trunk_python2.7_snotra_parallel/src/pyomo/examples/pysp/sizes/config/wwph.suffixes
-Starting PH
-
-Initiating PH iteration=0
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162978.2000 Max-Min= 654.60
-Converger=Normalized term diff value is 0.1460 - threshold reached=False
-Cumulative run-time=0.29 seconds
-
-Initiating PH iteration=1
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 163388.6520 Max-Min= 658.29
-Converger=Normalized term diff value is 0.2314 - threshold reached=False
-Cumulative run-time=0.52 seconds
-
-Initiating PH iteration=2
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 163513.2933 Max-Min= 700.13
-Converger=Normalized term diff value is 0.1746 - threshold reached=False
-Cumulative run-time=1.07 seconds
-
-Initiating PH iteration=3
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 163332.9051 Max-Min= 267.34
-Converger=Normalized term diff value is 0.1340 - threshold reached=False
-Cumulative run-time=1.29 seconds
-
-Initiating PH iteration=4
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 163114.8856 Max-Min= 171.42
-Converger=Normalized term diff value is 0.1031 - threshold reached=False
-Cumulative run-time=1.77 seconds
-
-Initiating PH iteration=5
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162874.6797 Max-Min= 33.19
-Converger=Normalized term diff value is 0.0797 - threshold reached=False
-Cumulative run-time=2.33 seconds
-
-Initiating PH iteration=6
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162628.3251 Max-Min= 18.50
-Converger=Normalized term diff value is 0.0332 - threshold reached=False
-Cumulative run-time=3.14 seconds
-
-Initiating PH iteration=7
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162380.5157 Max-Min= 3.77
-Converger=Normalized term diff value is 0.0221 - threshold reached=False
-Cumulative run-time=4.01 seconds
-
-Initiating PH iteration=8
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162183.1600 Max-Min= 149.12
-Converger=Normalized term diff value is 0.0214 - threshold reached=False
-Cumulative run-time=4.50 seconds
-
-Initiating PH iteration=9
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 161973.5867 Max-Min= 108.31
-Converger=Normalized term diff value is 0.0413 - threshold reached=False
-Cumulative run-time=4.95 seconds
-
-Initiating PH iteration=10
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 161797.3816 Max-Min= 103.35
-Converger=Normalized term diff value is 0.0513 - threshold reached=False
-Cumulative run-time=5.42 seconds
-
-Initiating PH iteration=11
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 161714.8955 Max-Min= 277.93
-Converger=Normalized term diff value is 0.0207 - threshold reached=False
-Cumulative run-time=5.87 seconds
-
-Initiating PH iteration=12
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 161734.5213 Max-Min= 304.90
-Converger=Normalized term diff value is 0.0001 - threshold reached=True
-Cumulative run-time=6.36 seconds
-
-Number of discrete variables fixed before final plugin calls=0 (total=65)
-Number of continuous variables fixed before final plugin calls=0 (total=0)
-PH complete
-
-Convergence history:
-Converger=Normalized term diff
-Iteration Metric Value
- 0 0.1460
- 1 0.2314
- 2 0.1746
- 3 0.1340
- 4 0.1031
- 5 0.0797
- 6 0.0332
- 7 0.0221
- 8 0.0214
- 9 0.0413
- 10 0.0513
- 11 0.0207
- 12 0.0001
-
-
-Final number of discrete variables fixed=0 (total=65)
-Final number of continuous variables fixed=0 (total=0)
-
-Computing objective inner bound at xhat solution
-
-Computed objective upper bound= 225063.2952
-
-X-hat variable values:
-
- Stage: FirstStage
- (Scenarios: Scenario1 Scenario2 Scenario3 )
- Variable: NumProducedFirstStage
- Index: [3] Values: 37862.0000 37862.0000 37862.0000 Max-Min: 388.0000 Avg: 37991.6667
-
- Index: [5] Values: 44196.0000 44196.0000 44196.0000 Max-Min: 0.0000 Avg: 44196.0000
-
- Index: [6] Values: 38213.0000 38213.0000 38213.0000 Max-Min: 0.0000 Avg: 38213.0000
-
- Index: [7] Values: 26063.0000 26063.0000 26063.0000 Max-Min: 1.0000 Avg: 26063.3333
-
- Index: [8] Values: 8853.0000 8853.0000 8853.0000 Max-Min: 3.0000 Avg: 8854.0000
-
- Index: [9] Values: 17990.0000 17990.0000 17990.0000 Max-Min: 2.0000 Avg: 17990.6667
-
- Index: [10] Values: 24150.0000 24150.0000 24150.0000 Max-Min: 2.0000 Avg: 24150.6667
-
- (Scenarios: Scenario1 Scenario2 Scenario3 )
- Variable: NumUnitsCutFirstStage
- Index: [3,1] Values: 2500.0000 2500.0000 2500.0000 Max-Min: 0.0000 Avg: 2500.0000
-
- Index: [3,2] Values: 7500.0000 7500.0000 7500.0000 Max-Min: 0.0000 Avg: 7500.0000
-
- Index: [3,3] Values: 12500.0000 12500.0000 12500.0000 Max-Min: 0.0000 Avg: 12500.0000
-
- Index: [5,4] Values: 9196.0000 9196.0000 9196.0000 Max-Min: 0.0000 Avg: 9196.0000
-
- Index: [5,5] Values: 35000.0000 35000.0000 35000.0000 Max-Min: 0.0000 Avg: 35000.0000
-
- Index: [6,4] Values: 804.0000 804.0000 804.0000 Max-Min: 0.0000 Avg: 804.0000
-
- Index: [6,6] Values: 25000.0000 25000.0000 25000.0000 Max-Min: 0.0000 Avg: 25000.0000
-
- Index: [7,7] Values: 15000.0000 15000.0000 15000.0000 Max-Min: 0.0000 Avg: 15000.0000
-
- Index: [8,8] Values: 8340.0000 8340.0000 8340.0000 Max-Min: 1.0000 Avg: 8340.6667
-
- Index: [9,9] Values: 9180.0000 9180.0000 9180.0000 Max-Min: 0.0000 Avg: 9180.0000
-
- Index: [10,8] Values: 4160.0000 4160.0000 4160.0000 Max-Min: 1.0000 Avg: 4159.3333
-
- Index: [10,9] Values: 3320.0000 3320.0000 3320.0000 Max-Min: 0.0000 Avg: 3320.0000
-
- Index: [10,10] Values: 5000.0000 5000.0000 5000.0000 Max-Min: 0.0000 Avg: 5000.0000
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: Scenario1 Scenario2 Scenario3 )
- Values: 161632.6328 161632.6328 161632.6328 Max-Min: 0.0000 Avg: 161632.6328
-
-X-hat costs:
-
-Scenario Tree Costs
-----------------------------------------------------
-Tree Nodes:
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- Scenario1Node
- Scenario2Node
- Scenario3Node
- Scenarios:
- Scenario1
- Scenario2
- Scenario3
- Expected cost of (sub)tree rooted at node=225063.2952
-
- Name=Scenario1Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- Scenario1
- Expected cost of (sub)tree rooted at node=29989.4368
-
- Name=Scenario2Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- Scenario2
- Expected cost of (sub)tree rooted at node=63355.0368
-
- Name=Scenario3Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- Scenario3
- Expected cost of (sub)tree rooted at node=96947.5136
-
-----------------------------------------------------
-Scenarios:
-
- Name=Scenario1
- Probability=0.3333
- Leaf Node=Scenario1Node
- Tree node sequence:
- RootNode
- Scenario1Node
- Stage= FirstStage Cost=161632.6328
- Stage= SecondStage Cost=29989.4368
- Total scenario cost=191622.0696
-
- Name=Scenario2
- Probability=0.3333
- Leaf Node=Scenario2Node
- Tree node sequence:
- RootNode
- Scenario2Node
- Stage= FirstStage Cost=161632.6328
- Stage= SecondStage Cost=63355.0368
- Total scenario cost=224987.6696
-
- Name=Scenario3
- Probability=0.3333
- Leaf Node=Scenario3Node
- Tree node sequence:
- RootNode
- Scenario3Node
- Stage= FirstStage Cost=161632.6328
- Stage= SecondStage Cost=96947.5136
- Total scenario cost=258580.1464
-
-----------------------------------------------------
-
-Total PH execution time=6.55 seconds
-
-
-
-Shutting down Pyro solver components.
-Dispatcher received request to shut down - initiating...
-Lost connection to dispatch server - shutting down...
-
-Total execution time=9.86 seconds
-Lost connection to dispatch server - shutting down...
-Lost connection to dispatch server - shutting down...
diff --git a/pyomo/pysp/tests/unit/baselines/sizes3_quadratic_gurobi_with_phpyro_darwin.baseline-a b/pyomo/pysp/tests/unit/baselines/sizes3_quadratic_gurobi_with_phpyro_darwin.baseline-a
deleted file mode 100644
index 74314ac997a..00000000000
--- a/pyomo/pysp/tests/unit/baselines/sizes3_quadratic_gurobi_with_phpyro_darwin.baseline-a
+++ /dev/null
@@ -1,423 +0,0 @@
-Importing module=/Users/ghackebeil/Projects/Pyomo/pyomo/examples/pysp/sizes/config/rhosetter.py
-Module successfully loaded
-Client assigned dispatcher with URI=PYRO::PyUtilibServer.dispatcher.7c788ec5-81ac-4073-9191-30523cb7ca91@127.0.0.1:52733
-Initializing PH
-
-Transmitting user rho callback invocations to phsolverservers
-WW PH Extension: Loading user-specified configuration from file=/Users/ghackebeil/Projects/Pyomo/pyomo/examples/pysp/sizes/config/wwph.cfg
-WW PH Extension: Loading variable suffixes from file=/Users/ghackebeil/Projects/Pyomo/pyomo/examples/pysp/sizes/config/wwph.suffixes
-Starting PH
-
-Initiating PH iteration=0
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 163129.6000 Max-Min= 703.20
-Converger=Normalized term diff value is 0.1785 - threshold reached=False
-Cumulative run-time=0.21 seconds
-
-Initiating PH iteration=1
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 163462.7280 Max-Min= 1115.87
-Converger=Normalized term diff value is 0.2033 - threshold reached=False
-Cumulative run-time=0.41 seconds
-
-Initiating PH iteration=2
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 163523.9963 Max-Min= 245.08
-Converger=Normalized term diff value is 0.1981 - threshold reached=False
-Cumulative run-time=0.66 seconds
-
-Initiating PH iteration=3
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 163281.5440 Max-Min= 281.25
-Converger=Normalized term diff value is 0.1894 - threshold reached=False
-Cumulative run-time=0.88 seconds
-
-Initiating PH iteration=4
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 163069.9232 Max-Min= 27.43
-Converger=Normalized term diff value is 0.2121 - threshold reached=False
-Cumulative run-time=1.26 seconds
-
-Initiating PH iteration=5
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162888.0376 Max-Min= 135.46
-Converger=Normalized term diff value is 0.1601 - threshold reached=False
-Cumulative run-time=1.51 seconds
-
-Initiating PH iteration=6
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162790.5781 Max-Min= 296.16
-Converger=Normalized term diff value is 0.0667 - threshold reached=False
-Cumulative run-time=1.74 seconds
-
-Initiating PH iteration=7
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162763.2091 Max-Min= 367.29
-Converger=Normalized term diff value is 0.0652 - threshold reached=False
-Cumulative run-time=1.95 seconds
-
-Initiating PH iteration=8
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162795.9392 Max-Min= 129.72
-Converger=Normalized term diff value is 0.0870 - threshold reached=False
-Cumulative run-time=2.13 seconds
-
-Initiating PH iteration=9
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162815.1413 Max-Min= 37.96
-Converger=Normalized term diff value is 0.1044 - threshold reached=False
-Cumulative run-time=2.32 seconds
-
-Initiating PH iteration=10
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162814.9704 Max-Min= 49.92
-Converger=Normalized term diff value is 0.2064 - threshold reached=False
-Cumulative run-time=2.53 seconds
-
-Initiating PH iteration=11
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162801.2749 Max-Min= 26.55
-Converger=Normalized term diff value is 0.1738 - threshold reached=False
-Cumulative run-time=2.74 seconds
-
-Initiating PH iteration=12
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162791.9984 Max-Min= 15.45
-Converger=Normalized term diff value is 0.1666 - threshold reached=False
-Cumulative run-time=2.94 seconds
-
-Initiating PH iteration=13
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162789.5424 Max-Min= 15.45
-Converger=Normalized term diff value is 0.1682 - threshold reached=False
-Cumulative run-time=3.13 seconds
-
-Initiating PH iteration=14
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162780.2616 Max-Min= 13.99
-Converger=Normalized term diff value is 0.1684 - threshold reached=False
-Cumulative run-time=3.33 seconds
-
-Initiating PH iteration=15
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162790.7859 Max-Min= 46.98
-Converger=Normalized term diff value is 0.0901 - threshold reached=False
-Cumulative run-time=3.52 seconds
-
-Initiating PH iteration=16
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162804.0595 Max-Min= 22.69
-Converger=Normalized term diff value is 0.0876 - threshold reached=False
-Cumulative run-time=3.71 seconds
-
-Initiating PH iteration=17
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162800.4120 Max-Min= 43.93
-Converger=Normalized term diff value is 0.0641 - threshold reached=False
-Cumulative run-time=3.90 seconds
-
-Initiating PH iteration=18
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162789.5965 Max-Min= 24.15
-Converger=Normalized term diff value is 0.0658 - threshold reached=False
-Cumulative run-time=4.10 seconds
-
-Initiating PH iteration=19
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162777.6859 Max-Min= 5.36
-Converger=Normalized term diff value is 0.0680 - threshold reached=False
-Cumulative run-time=4.29 seconds
-
-Initiating PH iteration=20
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162756.3880 Max-Min= 55.50
-Converger=Normalized term diff value is 0.0747 - threshold reached=False
-Cumulative run-time=4.48 seconds
-
-Initiating PH iteration=21
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162745.8835 Max-Min= 55.50
-Converger=Normalized term diff value is 0.0816 - threshold reached=False
-Cumulative run-time=4.65 seconds
-
-Initiating PH iteration=22
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162715.5363 Max-Min= 50.31
-Converger=Normalized term diff value is 0.0233 - threshold reached=False
-Cumulative run-time=4.83 seconds
-
-Initiating PH iteration=23
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162698.4616 Max-Min= 38.86
-Converger=Normalized term diff value is 0.0236 - threshold reached=False
-Cumulative run-time=5.03 seconds
-
-Initiating PH iteration=24
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162690.4336 Max-Min= 19.30
-Converger=Normalized term diff value is 0.0237 - threshold reached=False
-Cumulative run-time=5.22 seconds
-
-Initiating PH iteration=25
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162713.6504 Max-Min= 76.47
-Converger=Normalized term diff value is 0.0012 - threshold reached=False
-Cumulative run-time=5.41 seconds
-
-Initiating PH iteration=26
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162742.9571 Max-Min= 87.28
-Converger=Normalized term diff value is 0.0053 - threshold reached=False
-Cumulative run-time=5.61 seconds
-
-Initiating PH iteration=27
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162791.2672 Max-Min= 27.67
-Converger=Normalized term diff value is 0.0108 - threshold reached=False
-Cumulative run-time=5.81 seconds
-
-Initiating PH iteration=28
-WW PH Extension: Analyzing variables for fixing
-Number of discrete variables fixed=0 (total=65)
-Number of continuous variables fixed=0 (total=0)
-First stage cost avg= 162832.9963 Max-Min= 58.61
-Converger=Normalized term diff value is 0.0001 - threshold reached=True
-Cumulative run-time=6.01 seconds
-
-Number of discrete variables fixed before final plugin calls=0 (total=65)
-Number of continuous variables fixed before final plugin calls=0 (total=0)
-PH complete
-
-Convergence history:
-Converger=Normalized term diff
-Iteration Metric Value
- 0 0.1785
- 1 0.2033
- 2 0.1981
- 3 0.1894
- 4 0.2121
- 5 0.1601
- 6 0.0667
- 7 0.0652
- 8 0.0870
- 9 0.1044
- 10 0.2064
- 11 0.1738
- 12 0.1666
- 13 0.1682
- 14 0.1684
- 15 0.0901
- 16 0.0876
- 17 0.0641
- 18 0.0658
- 19 0.0680
- 20 0.0747
- 21 0.0816
- 22 0.0233
- 23 0.0236
- 24 0.0237
- 25 0.0012
- 26 0.0053
- 27 0.0108
- 28 0.0001
-
-
-Final number of discrete variables fixed=0 (total=65)
-Final number of continuous variables fixed=0 (total=0)
-
-Computing objective inner bound at xhat solution
-
-Computed objective upper bound= 224900.5107
-
-X-hat variable values:
-
- Stage: FirstStage
- (Scenarios: Scenario1 Scenario2 Scenario3 )
- Variable: NumProducedFirstStage
- Index: [3] Values: 38264.0000 38264.0000 38264.0000
-
- Index: [5] Values: 44541.0000 44541.0000 44541.0000
-
- Index: [6] Values: 38408.0000 38408.0000 38408.0000
-
- Index: [7] Values: 17706.0000 17706.0000 17706.0000
-
- Index: [8] Values: 19283.0000 19283.0000 19283.0000
-
- Index: [9] Values: 22602.0000 22602.0000 22602.0000
-
- Index: [10] Values: 18098.0000 18098.0000 18098.0000
-
- (Scenarios: Scenario1 Scenario2 Scenario3 )
- Variable: NumUnitsCutFirstStage
- Index: [3,1] Values: 2500.0000 2500.0000 2500.0000
-
- Index: [3,2] Values: 7500.0000 7500.0000 7500.0000
-
- Index: [3,3] Values: 12500.0000 12500.0000 12500.0000
-
- Index: [5,4] Values: 9541.0000 9541.0000 9541.0000
-
- Index: [5,5] Values: 35000.0000 35000.0000 35000.0000
-
- Index: [6,4] Values: 459.0000 459.0000 459.0000
-
- Index: [6,6] Values: 25000.0000 25000.0000 25000.0000
-
- Index: [7,7] Values: 15000.0000 15000.0000 15000.0000
-
- Index: [8,8] Values: 12500.0000 12500.0000 12500.0000
-
- Index: [9,9] Values: 12500.0000 12500.0000 12500.0000
-
- Index: [10,10] Values: 5000.0000 5000.0000 5000.0000
-
- Cost Variable: FirstStageCost
- Tree Node: RootNode (Scenarios: Scenario1 Scenario2 Scenario3 )
- Values: 162838.8248 162838.8248 162838.8248 Max-Min: 0.0000 Avg: 162838.8248
-
-X-hat costs:
-
-Scenario Tree Costs
-----------------------------------------------------
-Tree Nodes:
-
- Name=RootNode
- Stage=FirstStage
- Parent=None
- Conditional probability=1.0000
- Children:
- Scenario1Node
- Scenario2Node
- Scenario3Node
- Scenarios:
- Scenario1
- Scenario2
- Scenario3
- Expected cost of (sub)tree rooted at node=224900.5107
-
- Name=Scenario1Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- Scenario1
- Expected cost of (sub)tree rooted at node=28667.6000
-
- Name=Scenario2Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- Scenario2
- Expected cost of (sub)tree rooted at node=62127.0192
-
- Name=Scenario3Node
- Stage=SecondStage
- Parent=RootNode
- Conditional probability=0.3333
- Children:
- None
- Scenarios:
- Scenario3
- Expected cost of (sub)tree rooted at node=95390.4384
-
-----------------------------------------------------
-Scenarios:
-
- Name=Scenario1
- Probability=0.3333
- Leaf Node=Scenario1Node
- Tree node sequence:
- RootNode
- Scenario1Node
- Stage= FirstStage Cost=162838.8248
- Stage= SecondStage Cost=28667.6000
- Total scenario cost=191506.4248
-
- Name=Scenario2
- Probability=0.3333
- Leaf Node=Scenario2Node
- Tree node sequence:
- RootNode
- Scenario2Node
- Stage= FirstStage Cost=162838.8248
- Stage= SecondStage Cost=62127.0192
- Total scenario cost=224965.8440
-
- Name=Scenario3
- Probability=0.3333
- Leaf Node=Scenario3Node
- Tree node sequence:
- RootNode
- Scenario3Node
- Stage= FirstStage Cost=162838.8248
- Stage= SecondStage Cost=95390.4384
- Total scenario cost=258229.2632
-
-----------------------------------------------------
-
-
-Total PH execution time=6.22 seconds
-
-
-Total execution time=6.46 seconds
diff --git a/pyomo/pysp/tests/unit/test_annotations.py b/pyomo/pysp/tests/unit/test_annotations.py
deleted file mode 100644
index 791c5cc7782..00000000000
--- a/pyomo/pysp/tests/unit/test_annotations.py
+++ /dev/null
@@ -1,418 +0,0 @@
-# ___________________________________________________________________________
-#
-# Pyomo: Python Optimization Modeling Objects
-# Copyright 2017 National Technology and Engineering Solutions of Sandia, LLC
-# Under the terms of Contract DE-NA0003525 with National Technology and
-# Engineering Solutions of Sandia, LLC, the U.S. Government retains certain
-# rights in this software.
-# This software is distributed under the 3-clause BSD License.
-# ___________________________________________________________________________
-
-import pyutilib.th as unittest
-
-import pyomo.environ as pyo
-from pyomo.pysp.annotations import (locate_annotations,
- StageCostAnnotation,
- PySP_StageCostAnnotation,
- VariableStageAnnotation,
- PySP_VariableStageAnnotation,
- _ConstraintStageAnnotation,
- ConstraintStageAnnotation,
- PySP_ConstraintStageAnnotation,
- StochasticDataAnnotation,
- PySP_StochasticDataAnnotation,
- StochasticConstraintBoundsAnnotation,
- PySP_StochasticRHSAnnotation,
- StochasticConstraintBodyAnnotation,
- PySP_StochasticMatrixAnnotation,
- StochasticObjectiveAnnotation,
- PySP_StochasticObjectiveAnnotation,
- StochasticVariableBoundsAnnotation)
-
-class TestAnnotations(unittest.TestCase):
-
- def test_deprecated(self):
- self.assertIs(StageCostAnnotation,
- type(PySP_StageCostAnnotation()))
- self.assertIs(VariableStageAnnotation,
- type(PySP_VariableStageAnnotation()))
- self.assertIs(_ConstraintStageAnnotation,
- type(PySP_ConstraintStageAnnotation()))
- self.assertIs(_ConstraintStageAnnotation,
- type(ConstraintStageAnnotation()))
- self.assertIs(StochasticDataAnnotation,
- type(PySP_StochasticDataAnnotation()))
- self.assertIs(StochasticConstraintBoundsAnnotation,
- type(PySP_StochasticRHSAnnotation()))
- self.assertIs(StochasticConstraintBodyAnnotation,
- type(PySP_StochasticMatrixAnnotation()))
- self.assertIs(StochasticObjectiveAnnotation,
- type(PySP_StochasticObjectiveAnnotation()))
-
- def _populate_block_with_vars_expressions(self, b):
- b.x = pyo.Var()
- b.X1 = pyo.Var([1])
- b.X2 = pyo.Var([1])
- b.e = pyo.Expression()
- b.E1 = pyo.Expression([1])
- b.E2 = pyo.Expression([1])
-
- def _populate_block_with_vars(self, b):
- b.x = pyo.Var()
- b.X1 = pyo.Var([1])
- b.X2 = pyo.Var([1])
-
- def _populate_block_with_constraints(self, b):
- b.x = pyo.Var()
- b.c = pyo.Constraint(expr= b.x == 1)
- b.C1 = pyo.Constraint([1], rule=lambda m, i: m.x == 1)
- b.C2 = pyo.Constraint([1], rule=lambda m, i: m.x == 1)
- b.C3 = pyo.ConstraintList()
- b.C3.add(b.x == 1)
-
- def _populate_block_with_objectives(self, b):
- b.x = pyo.Var()
- b.o = pyo.Objective(expr= b.x + 1)
- b.O1 = pyo.Objective([1], rule=lambda m, i: m.x + 1)
- b.O2 = pyo.Objective([1], rule=lambda m, i: m.x + 1)
-
- def _populate_block_with_params(self, b):
- b.p = pyo.Param(mutable=True ,initialize=0)
- b.P1 = pyo.Param([1], mutable=True, initialize=0)
- b.P2 = pyo.Param([1], mutable=True, initialize=0)
-
- def test_multiple_declarations(self):
- m = pyo.ConcreteModel()
- m.x = pyo.Var()
- a = StageCostAnnotation()
- a.declare(m, 1)
- a.declare(m.x, 1)
- with self.assertRaises(RuntimeError) as cm:
- a.expand_entries()
-
- def test_locate_annotations(self):
- m = pyo.ConcreteModel()
- m.a = StageCostAnnotation()
- m.b = pyo.Block()
- m.b.a = StageCostAnnotation()
- self.assertEqual(locate_annotations(m, StageCostAnnotation),
- [('a', m.a), ('a', m.b.a)])
- with self.assertRaises(ValueError):
- locate_annotations(m, StageCostAnnotation, max_allowed=1)
- m.b.deactivate()
- self.assertEqual(locate_annotations(m, StageCostAnnotation),
- [('a', m.a)])
- self.assertEqual(locate_annotations(m, VariableStageAnnotation),
- [])
-
- def test_stage_cost(self):
- m = pyo.ConcreteModel()
- self._populate_block_with_vars_expressions(m)
- m.b = pyo.Block()
- self._populate_block_with_vars_expressions(m.b)
- m.b_inactive = pyo.Block()
- self._populate_block_with_vars_expressions(m.b_inactive)
- m.b_inactive.deactivate()
- m.B = pyo.Block([1],
- rule=lambda b: \
- self._populate_block_with_vars_expressions(b))
-
- a = StageCostAnnotation()
- self.assertEqual(a.default, None)
- self.assertEqual(a.has_declarations, False)
- a.declare(m.x, 1)
- self.assertEqual(a.has_declarations, True)
- a.declare(m.X1, 1)
- a.declare(m.X2[1], 1)
- a.declare(m.e, 1)
- a.declare(m.E1, 1)
- a.declare(m.E2[1], 1)
- with self.assertRaises(TypeError):
- a.declare(m.b, None)
- a.declare(m.b, 1)
- a.declare(m.b_inactive, 1)
- a.declare(m.B, 2)
- with self.assertRaises(TypeError):
- a.declare(None, 1)
- self.assertEqual(
- set([(v[0].name, v[1]) for v in a.expand_entries()]),
- set([('x', 1), ('X1[1]', 1), ('X2[1]', 1),
- ('e', 1), ('E1[1]', 1), ('E2[1]', 1),
- ('b.x', 1), ('b.X1[1]', 1), ('b.X2[1]', 1),
- ('b.e', 1), ('b.E1[1]', 1), ('b.E2[1]', 1),
- ('B[1].x', 2), ('B[1].X1[1]', 2), ('B[1].X2[1]', 2),
- ('B[1].e', 2), ('B[1].E1[1]', 2), ('B[1].E2[1]', 2)]))
- self.assertEqual(
- set([(v[0].name, v[1]) for v in a.expand_entries(expand_containers=False)]),
- set([('x', 1), ('X1', 1), ('X2[1]', 1),
- ('e', 1), ('E1', 1), ('E2[1]', 1),
- ('b.x', 1), ('b.X1', 1), ('b.X2', 1),
- ('b.e', 1), ('b.E1', 1), ('b.E2', 1),
- ('B[1].x', 2), ('B[1].X1', 2), ('B[1].X2', 2),
- ('B[1].e', 2), ('B[1].E1', 2), ('B[1].E2', 2)]))
-
- def test_variable_stage(self):
- m = pyo.ConcreteModel()
- self._populate_block_with_vars_expressions(m)
- m.b = pyo.Block()
- self._populate_block_with_vars_expressions(m.b)
- m.b_inactive = pyo.Block()
- self._populate_block_with_vars_expressions(m.b_inactive)
- m.b_inactive.deactivate()
- m.B = pyo.Block([1],
- rule=lambda b: \
- self._populate_block_with_vars_expressions(b))
-
- a = VariableStageAnnotation()
- self.assertEqual(a.default, None)
- self.assertEqual(a.has_declarations, False)
- a.declare(m.x, 1)
- self.assertEqual(a.has_declarations, True)
- a.declare(m.X1, 1)
- a.declare(m.X2[1], 1)
- a.declare(m.e, 1)
- a.declare(m.E1, 1)
- a.declare(m.E2[1], 1)
- with self.assertRaises(TypeError):
- a.declare(m.b, None)
- a.declare(m.b, 1)
- a.declare(m.b_inactive, 1)
- a.declare(m.B, 2, derived=True)
- with self.assertRaises(TypeError):
- a.declare(None, 1)
- self.assertEqual(
- set([(v[0].name, v[1]) for v in a.expand_entries()]),
- set([('x', (1,False)), ('X1[1]', (1,False)), ('X2[1]', (1,False)),
- ('e', (1,False)), ('E1[1]', (1,False)), ('E2[1]', (1,False)),
- ('b.x', (1,False)), ('b.X1[1]', (1,False)), ('b.X2[1]', (1,False)),
- ('b.e', (1,False)), ('b.E1[1]', (1,False)), ('b.E2[1]', (1,False)),
- ('B[1].x', (2,True)), ('B[1].X1[1]', (2,True)), ('B[1].X2[1]', (2,True)),
- ('B[1].e', (2,True)), ('B[1].E1[1]', (2,True)), ('B[1].E2[1]', (2,True))]))
- self.assertEqual(
- set([(v[0].name, v[1]) for v in a.expand_entries(expand_containers=False)]),
- set([('x', (1,False)), ('X1', (1,False)), ('X2[1]', (1,False)),
- ('e', (1,False)), ('E1', (1,False)), ('E2[1]', (1,False)),
- ('b.x', (1,False)), ('b.X1', (1,False)), ('b.X2', (1,False)),
- ('b.e', (1,False)), ('b.E1', (1,False)), ('b.E2', (1,False)),
- ('B[1].x', (2,True)), ('B[1].X1', (2,True)), ('B[1].X2', (2,True)),
- ('B[1].e', (2,True)), ('B[1].E1', (2,True)), ('B[1].E2', (2,True))]))
-
- def test_constraint_stage(self):
- m = pyo.ConcreteModel()
- self._populate_block_with_constraints(m)
- m.b = pyo.Block()
- self._populate_block_with_constraints(m.b)
- m.b_inactive = pyo.Block()
- self._populate_block_with_constraints(m.b_inactive)
- m.b_inactive.deactivate()
- m.B = pyo.Block([1],
- rule=lambda b: \
- self._populate_block_with_constraints(b))
-
- a = _ConstraintStageAnnotation()
- self.assertEqual(a.default, None)
- self.assertEqual(a.has_declarations, False)
- a.declare(m.c, 1)
- self.assertEqual(a.has_declarations, True)
- a.declare(m.C1, 1)
- a.declare(m.C2[1], 1)
- a.declare(m.C3, 1)
- with self.assertRaises(TypeError):
- a.declare(m.b, None)
- a.declare(m.b, 1)
- a.declare(m.b_inactive, 1)
- a.declare(m.B, 2)
- with self.assertRaises(TypeError):
- a.declare(None, 1)
- self.assertEqual(
- set([(v[0].name, v[1]) for v in a.expand_entries()]),
- set([('c', 1), ('C1[1]', 1), ('C2[1]', 1), ('C3[1]', 1),
- ('b.c', 1), ('b.C1[1]', 1), ('b.C2[1]', 1), ('b.C3[1]', 1),
- ('B[1].c', 2), ('B[1].C1[1]', 2), ('B[1].C2[1]', 2), ('B[1].C3[1]', 2)]))
- self.assertEqual(
- set([(v[0].name, v[1]) for v in a.expand_entries(expand_containers=False)]),
- set([('c', 1), ('C1', 1), ('C2[1]', 1), ('C3', 1),
- ('b.c', 1), ('b.C1', 1), ('b.C2', 1), ('b.C3', 1),
- ('B[1].c', 2), ('B[1].C1', 2), ('B[1].C2', 2), ('B[1].C3', 2)]))
-
- def test_stochastic_data(self):
- m = pyo.ConcreteModel()
- self._populate_block_with_params(m)
- m.b = pyo.Block()
- self._populate_block_with_params(m.b)
- m.b_inactive = pyo.Block()
- self._populate_block_with_params(m.b_inactive)
- m.b_inactive.deactivate()
- m.B = pyo.Block([1],
- rule=lambda b: \
- self._populate_block_with_params(b))
-
- a = StochasticDataAnnotation()
- self.assertEqual(a.default, None)
- self.assertEqual(a.has_declarations, False)
- a.declare(m.p, 1)
- self.assertEqual(a.has_declarations, True)
- a.declare(m.P1, 1)
- a.declare(m.P2[1], 1)
- a.declare(m.b, 1)
- a.declare(m.b_inactive, 1)
- a.declare(m.B, 2)
- with self.assertRaises(TypeError):
- a.declare(None, 1)
- self.assertEqual(
- set([(v[0].name, v[1]) for v in a.expand_entries()]),
- set([('p', 1), ('P1[1]', 1), ('P2[1]', 1),
- ('b.p', 1), ('b.P1[1]', 1), ('b.P2[1]', 1),
- ('B[1].p', 2), ('B[1].P1[1]', 2), ('B[1].P2[1]', 2)]))
- self.assertEqual(
- set([(v[0].name, v[1]) for v in a.expand_entries(expand_containers=False)]),
- set([('p', 1), ('P1', 1), ('P2[1]', 1),
- ('b.p', 1), ('b.P1', 1), ('b.P2', 1),
- ('B[1].p', 2), ('B[1].P1', 2), ('B[1].P2', 2)]))
-
- def test_constraint_bounds(self):
- m = pyo.ConcreteModel()
- self._populate_block_with_constraints(m)
- m.b = pyo.Block()
- self._populate_block_with_constraints(m.b)
- m.b_inactive = pyo.Block()
- self._populate_block_with_constraints(m.b_inactive)
- m.b_inactive.deactivate()
- m.B = pyo.Block([1],
- rule=lambda b: \
- self._populate_block_with_constraints(b))
-
- a = StochasticConstraintBoundsAnnotation()
- self.assertEqual(a.default, True)
- self.assertEqual(a.has_declarations, False)
- a.declare(m.c)
- self.assertEqual(a.has_declarations, True)
- a.declare(m.C1)
- a.declare(m.C2[1])
- a.declare(m.C3)
- a.declare(m.b)
- a.declare(m.b_inactive)
- a.declare(m.B, lb=False, ub=True)
- with self.assertRaises(TypeError):
- a.declare(None, 1)
- self.assertEqual(
- set([(v[0].name, v[1]) for v in a.expand_entries()]),
- set([('c', True), ('C1[1]', True), ('C2[1]', True), ('C3[1]', True),
- ('b.c', True), ('b.C1[1]', True), ('b.C2[1]', True), ('b.C3[1]', True),
- ('B[1].c', (False,True)), ('B[1].C1[1]', (False,True)),
- ('B[1].C2[1]', (False,True)), ('B[1].C3[1]', (False,True))]))
- self.assertEqual(
- set([(v[0].name, v[1]) for v in a.expand_entries(expand_containers=False)]),
- set([('c', True), ('C1', True), ('C2[1]', True), ('C3', True),
- ('b.c', True), ('b.C1', True), ('b.C2', True), ('b.C3', True),
- ('B[1].c', (False,True)), ('B[1].C1', (False,True)),
- ('B[1].C2', (False,True)), ('B[1].C3', (False,True))]))
-
- def test_stochastic_constraint_body(self):
- m = pyo.ConcreteModel()
- self._populate_block_with_constraints(m)
- m.b = pyo.Block()
- self._populate_block_with_constraints(m.b)
- m.b_inactive = pyo.Block()
- self._populate_block_with_constraints(m.b_inactive)
- m.b_inactive.deactivate()
- m.B = pyo.Block([1],
- rule=lambda b: \
- self._populate_block_with_constraints(b))
-
- a = StochasticConstraintBodyAnnotation()
- self.assertEqual(a.default, None)
- self.assertEqual(a.has_declarations, False)
- a.declare(m.c)
- self.assertEqual(a.has_declarations, True)
- a.declare(m.C1)
- a.declare(m.C2[1])
- a.declare(m.C3)
- a.declare(m.b)
- a.declare(m.b_inactive)
- a.declare(m.B, variables=2)
- with self.assertRaises(TypeError):
- a.declare(None, 1)
- self.assertEqual(
- set([(v[0].name, v[1]) for v in a.expand_entries()]),
- set([('c', None), ('C1[1]', None), ('C2[1]', None), ('C3[1]', None),
- ('b.c', None), ('b.C1[1]', None), ('b.C2[1]', None), ('b.C3[1]', None),
- ('B[1].c', 2), ('B[1].C1[1]', 2), ('B[1].C2[1]', 2), ('B[1].C3[1]', 2)]))
- self.assertEqual(
- set([(v[0].name, v[1]) for v in a.expand_entries(expand_containers=False)]),
- set([('c', None), ('C1', None), ('C2[1]', None), ('C3', None),
- ('b.c', None), ('b.C1', None), ('b.C2', None), ('b.C3', None),
- ('B[1].c', 2), ('B[1].C1', 2), ('B[1].C2', 2), ('B[1].C3', 2)]))
-
- def test_stochastic_objective(self):
- m = pyo.ConcreteModel()
- self._populate_block_with_objectives(m)
- m.b = pyo.Block()
- self._populate_block_with_objectives(m.b)
- m.b_inactive = pyo.Block()
- self._populate_block_with_objectives(m.b_inactive)
- m.b_inactive.deactivate()
- m.B = pyo.Block([1],
- rule=lambda b: \
- self._populate_block_with_objectives(b))
-
- a = StochasticObjectiveAnnotation()
- self.assertEqual(a.default, (None, True))
- self.assertEqual(a.has_declarations, False)
- a.declare(m.o)
- self.assertEqual(a.has_declarations, True)
- a.declare(m.O1)
- a.declare(m.O2[1])
- a.declare(m.b)
- a.declare(m.b_inactive)
- a.declare(m.B, variables=1, include_constant=False)
- with self.assertRaises(TypeError):
- a.declare(None, 1)
- self.assertEqual(
- set([(v[0].name, v[1]) for v in a.expand_entries()]),
- set([('o', (None,True)), ('O1[1]', (None,True)), ('O2[1]', (None,True)),
- ('b.o', (None,True)), ('b.O1[1]', (None,True)), ('b.O2[1]', (None,True)),
- ('B[1].o', (1,False)), ('B[1].O1[1]', (1,False)), ('B[1].O2[1]', (1,False))]))
- self.assertEqual(
- set([(v[0].name, v[1]) for v in a.expand_entries(expand_containers=False)]),
- set([('o', (None,True)), ('O1', (None,True)), ('O2[1]', (None,True)),
- ('b.o', (None,True)), ('b.O1', (None,True)), ('b.O2', (None,True)),
- ('B[1].o', (1,False)), ('B[1].O1', (1,False)), ('B[1].O2', (1,False))]))
-
- def test_stochastic_variable_bounds(self):
- m = pyo.ConcreteModel()
- self._populate_block_with_vars(m)
- m.b = pyo.Block()
- self._populate_block_with_vars(m.b)
- m.b_inactive = pyo.Block()
- self._populate_block_with_vars(m.b_inactive)
- m.b_inactive.deactivate()
- m.B = pyo.Block([1],
- rule=lambda b: \
- self._populate_block_with_vars(b))
-
- a = StochasticVariableBoundsAnnotation()
- self.assertEqual(a.default, (True, True))
- self.assertEqual(a.has_declarations, False)
- a.declare(m.x)
- self.assertEqual(a.has_declarations, True)
- a.declare(m.X1)
- a.declare(m.X2[1])
- a.declare(m.b)
- a.declare(m.b_inactive)
- a.declare(m.B, lb=False, ub=True)
- with self.assertRaises(TypeError):
- a.declare(None, 1)
- self.assertEqual(
- set([(v[0].name, v[1]) for v in a.expand_entries()]),
- set([('x', (True,True)), ('X1[1]', (True,True)), ('X2[1]', (True,True)),
- ('b.x', (True,True)), ('b.X1[1]', (True,True)), ('b.X2[1]', (True,True)),
- ('B[1].x', (False,True)), ('B[1].X1[1]', (False,True)), ('B[1].X2[1]', (False,True))]))
- self.assertEqual(
- set([(v[0].name, v[1]) for v in a.expand_entries(expand_containers=False)]),
- set([('x', (True,True)), ('X1', (True,True)), ('X2[1]', (True,True)),
- ('b.x', (True,True)), ('b.X1', (True,True)), ('b.X2', (True,True)),
- ('B[1].x', (False,True)), ('B[1].X1', (False,True)), ('B[1].X2', (False,True))]))
-
-if __name__ == "__main__":
- unittest.main()
diff --git a/pyomo/pysp/tests/unit/test_config.py b/pyomo/pysp/tests/unit/test_config.py
deleted file mode 100644
index ef91d34c1a4..00000000000
--- a/pyomo/pysp/tests/unit/test_config.py
+++ /dev/null
@@ -1,95 +0,0 @@
-# ___________________________________________________________________________
-#
-# Pyomo: Python Optimization Modeling Objects
-# Copyright 2017 National Technology and Engineering Solutions of Sandia, LLC
-# Under the terms of Contract DE-NA0003525 with National Technology and
-# Engineering Solutions of Sandia, LLC, the U.S. Government retains certain
-# rights in this software.
-# This software is distributed under the 3-clause BSD License.
-# ___________________________________________________________________________
-
-import pyutilib.th as unittest
-
-from pyomo.pysp.util.config import (PySPConfigValue,
- PySPConfigBlock,
- safe_register_common_option)
-import six
-from six import StringIO
-
-class TestPySPConfigValue(unittest.TestCase):
-
- def test_init(self):
- PySPConfigValue(
- "default",
- domain=str,
- description="a description",
- doc=None,
- visibility=0)
-
-class TestPySPConfigBlock(unittest.TestCase):
-
- def test_init(self):
- PySPConfigBlock()
-
- def test_declared(self):
- b = PySPConfigBlock()
- safe_register_common_option(b, "verbose")
- b.display()
- b.display()
- out = StringIO()
- b.display(ostream=out)
- self.assertEqual(out.getvalue(),
- "verbose: false\n")
- self.assertEqual(b.check_usage(), True)
- self.assertEqual(b.check_usage(error=False), True)
- b.verbose = True
- out = StringIO()
- b.display(ostream=out)
- self.assertEqual(out.getvalue(),
- "verbose: true\n")
- with self.assertRaises(ValueError):
- b.check_usage()
- with self.assertRaises(ValueError):
- b.check_usage()
- self.assertEqual(b.check_usage(error=False), False)
- b.verbose
- self.assertEqual(b.check_usage(), True)
- self.assertEqual(b.check_usage(error=False), True)
- verbose_about = \
-"""PySPConfigValue: verbose
- - type: <%s 'bool'>
- - default: False
- - doc: Generate verbose output for both initialization and
- execution.""" % ('class' if six.PY3 else 'type')
- self.assertEqual(b.about("verbose"),
- verbose_about)
-
- def test_implicit(self):
- b = PySPConfigBlock()
- b._implicit_declaration = True
- b.name_a = 1
- b.nameb = 2
- b.display()
- out = StringIO()
- b.display(ostream=out)
- self.assertEqual(out.getvalue(),
- "name_a: 1\nnameb: 2\n")
- with self.assertRaises(ValueError):
- b.check_usage()
- with self.assertRaises(ValueError):
- b.check_usage()
- self.assertEqual(b.check_usage(error=False), False)
- b.name_a
- b.nameb
- self.assertEqual(b.check_usage(), True)
- self.assertEqual(b.check_usage(error=False), True)
- name_a_about = \
-"""ConfigValue: name_a
- - type: None
- - default: 1
- - doc: None"""
- self.assertEqual(b.about("name_a"),
- name_a_about)
-
-if __name__ == "__main__":
- unittest.main()
diff --git a/pyomo/pysp/tests/unit/test_embeddedsp.py b/pyomo/pysp/tests/unit/test_embeddedsp.py
deleted file mode 100644
index 776edb50c2b..00000000000
--- a/pyomo/pysp/tests/unit/test_embeddedsp.py
+++ /dev/null
@@ -1,555 +0,0 @@
-# _________________________________________________________________________
-#
-# Pyomo: Python Optimization Modeling Objects
-# Copyright (c) 2014 Sandia Corporation.
-# Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation,
-# the U.S. Government retains certain rights in this software.
-# This software is distributed under the BSD License.
-# _________________________________________________________________________
-import pyutilib.th as unittest
-
-import pyomo.core as pc
-from pyomo.pysp.embeddedsp import (EmbeddedSP,
- StageCostAnnotation,
- VariableStageAnnotation,
- StochasticDataAnnotation,
- Distribution,
- TableDistribution,
- UniformDistribution,
- NormalDistribution,
- LogNormalDistribution,
- GammaDistribution,
- BetaDistribution)
-from pyomo.environ import (ConcreteModel,
- Var,
- ConstraintList,
- Objective,
- Expression,
- Param)
-
-class TestEmbeddedSP(unittest.TestCase):
-
- def test_collect_mutable_parameters(self):
- model = pc.ConcreteModel()
- model.p = pc.Param(mutable=True)
- model.q = pc.Param([1], mutable=True, initialize=1.0)
- model.r = pc.Param(initialize=1.1, mutable=False)
- model.x = pc.Var()
- for obj in [model.p, model.q[1]]:
-
- result = EmbeddedSP._collect_mutable_parameters(
- obj)
- self.assertTrue(id(obj) in result)
- self.assertEqual(len(result), 1)
- del result
-
- result = EmbeddedSP._collect_mutable_parameters(
- obj + 1)
- self.assertTrue(id(obj) in result)
- self.assertEqual(len(result), 1)
- del result
-
- result = EmbeddedSP._collect_mutable_parameters(
- 2 * (obj + 1))
- self.assertTrue(id(obj) in result)
- self.assertEqual(len(result), 1)
- del result
-
- result = EmbeddedSP._collect_mutable_parameters(
- 2 * obj)
- self.assertTrue(id(obj) in result)
- self.assertEqual(len(result), 1)
- del result
-
- result = EmbeddedSP._collect_mutable_parameters(
- 2 * obj + 1)
- self.assertTrue(id(obj) in result)
- self.assertEqual(len(result), 1)
- del result
-
- result = EmbeddedSP._collect_mutable_parameters(
- 2 * obj + 1 + model.x)
- self.assertTrue(id(obj) in result)
- self.assertEqual(len(result), 1)
- del result
-
- result = EmbeddedSP._collect_mutable_parameters(
- obj * model.x)
- self.assertTrue(id(obj) in result)
- self.assertEqual(len(result), 1)
- del result
-
- result = EmbeddedSP._collect_mutable_parameters(
- model.x / obj)
- self.assertTrue(id(obj) in result)
- self.assertEqual(len(result), 1)
- del result
-
- result = EmbeddedSP._collect_mutable_parameters(
- model.x / (2 * obj))
- self.assertTrue(id(obj) in result)
- self.assertEqual(len(result), 1)
- del result
-
- result = EmbeddedSP._collect_mutable_parameters(
- obj * pc.log(2 * model.x))
- self.assertTrue(id(obj) in result)
- self.assertEqual(len(result), 1)
- del result
-
- result = EmbeddedSP._collect_mutable_parameters(
- obj * pc.sin(model.r) ** model.x)
- self.assertTrue(id(obj) in result)
- self.assertEqual(len(result), 1)
- del result
-
- result = EmbeddedSP._collect_mutable_parameters(
- model.x**(obj * pc.sin(model.r)))
- self.assertTrue(id(obj) in result)
- self.assertEqual(len(result), 1)
- del result
-
- result = EmbeddedSP._collect_mutable_parameters(
- 1.0)
- self.assertEqual(len(result), 0)
- del result
-
- result = EmbeddedSP._collect_mutable_parameters(
- model.p + model.q[1] + model.r)
- self.assertTrue(id(model.p) in result)
- self.assertTrue(id(model.q[1]) in result)
- self.assertEqual(len(result), 2)
- del result
-
- result = EmbeddedSP._collect_mutable_parameters(
- model.p + 1 + model.r + model.q[1])
- self.assertTrue(id(model.p) in result)
- self.assertTrue(id(model.q[1]) in result)
- self.assertEqual(len(result), 2)
-
- result = EmbeddedSP._collect_mutable_parameters(
- model.q[1] * 2 * (model.p + model.r) + model.r)
- self.assertTrue(id(model.p) in result)
- self.assertTrue(id(model.q[1]) in result)
- self.assertEqual(len(result), 2)
- del result
-
- result = EmbeddedSP._collect_mutable_parameters(
- 2 * model.x * model.p * model.q[1] * model.r)
- self.assertTrue(id(model.p) in result)
- self.assertTrue(id(model.q[1]) in result)
- self.assertEqual(len(result), 2)
- del result
-
- result = EmbeddedSP._collect_mutable_parameters(
- 2 * obj * model.q[1] * model.r + 1)
- self.assertTrue(id(model.q[1]) in result)
- self.assertEqual(len(result), 1)
- del result
-
- result = EmbeddedSP._collect_mutable_parameters(
- 2 * model.q[1] + 1 + model.x - model.p)
- self.assertTrue(id(model.p) in result)
- self.assertTrue(id(model.q[1]) in result)
- self.assertEqual(len(result), 2)
- del result
-
- result = EmbeddedSP._collect_mutable_parameters(
- model.r * model.x)
- self.assertEqual(len(result), 0)
- del result
-
- result = EmbeddedSP._collect_mutable_parameters(
- model.x / obj)
- self.assertTrue(id(obj) in result)
- self.assertEqual(len(result), 1)
- del result
-
- result = EmbeddedSP._collect_mutable_parameters(
- model.x / (2 * model.q[1] / model.p))
- self.assertTrue(id(model.p) in result)
- self.assertTrue(id(model.q[1]) in result)
- self.assertEqual(len(result), 2)
- del result
-
- result = EmbeddedSP._collect_mutable_parameters(
- (model.p / model.q[1]) * pc.log(2 * model.x))
- self.assertTrue(id(model.p) in result)
- self.assertTrue(id(model.q[1]) in result)
- self.assertEqual(len(result), 2)
- del result
-
- result = EmbeddedSP._collect_mutable_parameters(
- model.q[1] * pc.sin(model.p) ** (model.x + model.r))
- self.assertTrue(id(model.p) in result)
- self.assertTrue(id(model.q[1]) in result)
- self.assertEqual(len(result), 2)
- del result
-
- result = EmbeddedSP._collect_mutable_parameters(
- (model.p + model.x) ** (model.q[1] * pc.sin(model.r)))
- self.assertTrue(id(model.p) in result)
- self.assertTrue(id(model.q[1]) in result)
- self.assertEqual(len(result), 2)
- del result
-
- def test_collect_variables(self):
- model = pc.ConcreteModel()
- model.p = pc.Var()
- model.p.fixed = True
- model.q = pc.Var([1])
- model.r = pc.Param(mutable=True)
- model.x = pc.Var()
- for obj in [model.p, model.q[1]]:
-
- result = EmbeddedSP._collect_variables(
- obj)
- self.assertTrue(id(obj) in result)
- self.assertEqual(len(result), 1)
- del result
-
- result = EmbeddedSP._collect_variables(
- obj + 1)
- self.assertTrue(id(obj) in result)
- self.assertEqual(len(result), 1)
- del result
-
- result = EmbeddedSP._collect_variables(
- 2 * (obj + 1))
- self.assertTrue(id(obj) in result)
- self.assertEqual(len(result), 1)
- del result
-
- result = EmbeddedSP._collect_variables(
- 2 * obj)
- self.assertTrue(id(obj) in result)
- self.assertEqual(len(result), 1)
- del result
-
- result = EmbeddedSP._collect_variables(
- 2 * obj + 1)
- self.assertTrue(id(obj) in result)
- self.assertEqual(len(result), 1)
- del result
-
- result = EmbeddedSP._collect_variables(
- 2 * obj + 1 + model.x)
- self.assertTrue(id(obj) in result)
- self.assertTrue(id(model.x) in result)
- self.assertEqual(len(result), 2)
- del result
-
- result = EmbeddedSP._collect_variables(
- obj * model.x)
- self.assertTrue(id(obj) in result)
- self.assertTrue(id(model.x) in result)
- self.assertEqual(len(result), 2)
- del result
-
- result = EmbeddedSP._collect_variables(
- model.x / obj)
- self.assertTrue(id(obj) in result)
- self.assertTrue(id(model.x) in result)
- self.assertEqual(len(result), 2)
- del result
-
- result = EmbeddedSP._collect_variables(
- model.x / (2 * obj))
- self.assertTrue(id(obj) in result)
- self.assertTrue(id(model.x) in result)
- self.assertEqual(len(result), 2)
- del result
-
- result = EmbeddedSP._collect_variables(
- obj * pc.log(2 * model.x))
- self.assertTrue(id(obj) in result)
- self.assertTrue(id(model.x) in result)
- self.assertEqual(len(result), 2)
- del result
-
- result = EmbeddedSP._collect_variables(
- obj * pc.sin(model.r) ** model.x)
- self.assertTrue(id(obj) in result)
- self.assertTrue(id(model.x) in result)
- self.assertEqual(len(result), 2)
- del result
-
- result = EmbeddedSP._collect_variables(
- model.x**(obj * pc.sin(model.r)))
- self.assertTrue(id(obj) in result)
- self.assertTrue(id(model.x) in result)
- self.assertEqual(len(result), 2)
- del result
-
- result = EmbeddedSP._collect_variables(
- 1.0)
- self.assertEqual(len(result), 0)
- del result
-
- result = EmbeddedSP._collect_variables(
- model.p + model.q[1] + model.r)
- self.assertTrue(id(model.p) in result)
- self.assertTrue(id(model.q[1]) in result)
- self.assertEqual(len(result), 2)
- del result
-
- result = EmbeddedSP._collect_variables(
- model.p + 1 + model.r + model.q[1])
- self.assertTrue(id(model.p) in result)
- self.assertTrue(id(model.q[1]) in result)
- self.assertEqual(len(result), 2)
-
- result = EmbeddedSP._collect_variables(
- model.q[1] * 2 * (model.p + model.r) + model.r)
- self.assertTrue(id(model.p) in result)
- self.assertTrue(id(model.q[1]) in result)
- self.assertEqual(len(result), 2)
- del result
-
- result = EmbeddedSP._collect_variables(
- 2 * model.x * model.p * model.q[1] * model.r)
- self.assertTrue(id(model.p) in result)
- self.assertTrue(id(model.q[1]) in result)
- self.assertTrue(id(model.x) in result)
- self.assertEqual(len(result), 3)
- del result
-
- result = EmbeddedSP._collect_variables(
- 2 * obj * model.q[1] * model.r + 1)
- self.assertTrue(id(model.q[1]) in result)
- self.assertEqual(len(result), 1)
- del result
-
- result = EmbeddedSP._collect_variables(
- 2 * model.q[1] + 1 + model.x - model.p)
- self.assertTrue(id(model.p) in result)
- self.assertTrue(id(model.q[1]) in result)
- self.assertTrue(id(model.x) in result)
- self.assertEqual(len(result), 3)
- del result
-
- result = EmbeddedSP._collect_variables(
- model.r * model.x)
- self.assertTrue(id(model.x) in result)
- self.assertEqual(len(result), 1)
- del result
-
- result = EmbeddedSP._collect_variables(
- model.x / obj)
- self.assertTrue(id(obj) in result)
- self.assertTrue(id(model.x) in result)
- self.assertEqual(len(result), 2)
- del result
-
- result = EmbeddedSP._collect_variables(
- model.x / (2 * model.q[1] / model.p))
- self.assertTrue(id(model.p) in result)
- self.assertTrue(id(model.q[1]) in result)
- self.assertTrue(id(model.x) in result)
- self.assertEqual(len(result), 3)
- del result
-
- result = EmbeddedSP._collect_variables(
- (model.p / model.q[1]) * pc.log(2 * model.x))
- self.assertTrue(id(model.p) in result)
- self.assertTrue(id(model.q[1]) in result)
- self.assertTrue(id(model.x) in result)
- self.assertEqual(len(result), 3)
- del result
-
- result = EmbeddedSP._collect_variables(
- model.q[1] * pc.sin(model.p) ** (model.x + model.r))
- self.assertTrue(id(model.p) in result)
- self.assertTrue(id(model.q[1]) in result)
- self.assertTrue(id(model.x) in result)
- self.assertEqual(len(result), 3)
- del result
-
- result = EmbeddedSP._collect_variables(
- (model.p + model.x) ** (model.q[1] * pc.sin(model.r)))
- self.assertTrue(id(model.p) in result)
- self.assertTrue(id(model.q[1]) in result)
- self.assertTrue(id(model.x) in result)
- self.assertEqual(len(result), 3)
- del result
-
- def test_compute_time_stage(self):
- model = ConcreteModel()
- model.x = Var()
- model.y = Var([0,1])
- model.z = Var()
- model.p = Param(mutable=True)
- model.cost = Expression([0,1])
- model.cost[0] = model.x + model.y[0]
- model.cost[1] = model.p + model.y[1] + model.y[0]*model.p
- model.o = Objective(expr=model.cost[0] + model.cost[1])
- model.c = ConstraintList()
- model.c.add(model.x >= 1) # 1
- model.c.add(model.y[0] >= 1) # 2
- model.c.add(model.p * model.y[0] >= 1) # 3
- model.c.add(model.y[0] >= model.p) # 4
- model.c.add(model.p <= model.y[1]) # 5
- model.c.add(model.y[1] <= 1) # 6
- model.c.add(model.x >= model.p) # 7
- model.c.add(model.z == 1) # 8
-
- model.varstage = VariableStageAnnotation()
- model.varstage.declare(model.x, 1)
- model.varstage.declare(model.y[0], 1, derived=True)
- model.varstage.declare(model.y[1], 2)
- model.varstage.declare(model.z, 2, derived=True)
-
- model.stagecost = StageCostAnnotation()
- model.stagecost.declare(model.cost[0], 1)
- model.stagecost.declare(model.cost[1], 2)
-
- model.stochdata = StochasticDataAnnotation()
- model.stochdata.declare(model.p,
- distribution=UniformDistribution(0, 1))
- sp = EmbeddedSP(model)
-
- #
- # check variables
- #
- self.assertEqual(sp.compute_time_stage(model.x),
- min(sp.time_stages))
- self.assertEqual(sp.compute_time_stage(model.x,
- derived_last_stage=True),
- min(sp.time_stages))
-
- self.assertEqual(sp.compute_time_stage(model.y[0]),
- min(sp.time_stages))
- self.assertEqual(sp.compute_time_stage(model.y[0],
- derived_last_stage=True),
- max(sp.time_stages))
-
- self.assertEqual(sp.compute_time_stage(model.y[1]),
- max(sp.time_stages))
- self.assertEqual(sp.compute_time_stage(model.y[1],
- derived_last_stage=True),
- max(sp.time_stages))
-
- self.assertEqual(sp.compute_time_stage(model.z),
- max(sp.time_stages))
- self.assertEqual(sp.compute_time_stage(model.z,
- derived_last_stage=True),
- max(sp.time_stages))
-
- #
- # check constraints
- #
- self.assertEqual(sp.compute_time_stage(model.c[1]),
- min(sp.time_stages))
- self.assertEqual(sp.compute_time_stage(model.c[1],
- derived_last_stage=True),
- min(sp.time_stages))
-
- self.assertEqual(sp.compute_time_stage(model.c[2]),
- min(sp.time_stages))
- self.assertEqual(sp.compute_time_stage(model.c[2],
- derived_last_stage=True),
- max(sp.time_stages))
-
- self.assertEqual(sp.compute_time_stage(model.c[3]),
- max(sp.time_stages))
- self.assertEqual(sp.compute_time_stage(model.c[3],
- derived_last_stage=True),
- max(sp.time_stages))
-
- self.assertEqual(sp.compute_time_stage(model.c[4]),
- max(sp.time_stages))
- self.assertEqual(sp.compute_time_stage(model.c[4],
- derived_last_stage=True),
- max(sp.time_stages))
-
- self.assertEqual(sp.compute_time_stage(model.c[5]),
- max(sp.time_stages))
- self.assertEqual(sp.compute_time_stage(model.c[5],
- derived_last_stage=True),
- max(sp.time_stages))
-
- self.assertEqual(sp.compute_time_stage(model.c[6]),
- max(sp.time_stages))
- self.assertEqual(sp.compute_time_stage(model.c[6],
- derived_last_stage=True),
- max(sp.time_stages))
-
- self.assertEqual(sp.compute_time_stage(model.c[7]),
- max(sp.time_stages))
- self.assertEqual(sp.compute_time_stage(model.c[7],
- derived_last_stage=True),
- max(sp.time_stages))
-
- self.assertEqual(sp.compute_time_stage(model.c[8]),
- max(sp.time_stages))
- self.assertEqual(sp.compute_time_stage(model.c[8],
- derived_last_stage=True),
- max(sp.time_stages))
-
- #
- # check objectives and expressions
- #
- self.assertEqual(sp.compute_time_stage(model.cost[0]),
- min(sp.time_stages))
- self.assertEqual(sp.compute_time_stage(model.cost[0],
- derived_last_stage=True),
- max(sp.time_stages))
-
- self.assertEqual(sp.compute_time_stage(model.cost[1]),
- max(sp.time_stages))
- self.assertEqual(sp.compute_time_stage(model.cost[1],
- derived_last_stage=True),
- max(sp.time_stages))
-
- self.assertEqual(sp.compute_time_stage(model.o),
- max(sp.time_stages))
- self.assertEqual(sp.compute_time_stage(model.o,
- derived_last_stage=True),
- max(sp.time_stages))
-
- def test_Distribution(self):
- d = Distribution()
- with self.assertRaises(NotImplementedError):
- d.sample()
-
- def test_TableDistrubtion(self):
- with self.assertRaises(ValueError):
- TableDistribution([])
- with self.assertRaises(ValueError):
- TableDistribution([1],weights=[])
- with self.assertRaises(ValueError):
- TableDistribution([1],weights=[0.5])
- d = TableDistribution([1,2,3])
- v = d.sample()
- self.assertTrue(v in d.values)
- d = TableDistribution([1,2], weights=[0.5, 0.5])
- v = d.sample()
- self.assertTrue(v in d.values)
- d = TableDistribution([1,2], weights=[1, 0])
- v = d.sample()
- self.assertEqual(v, 1)
-
- def test_UniformDistrubtion(self):
- d = UniformDistribution(1,10)
- v = d.sample()
- self.assertTrue(1 <= v <= 10)
-
- def test_NormalDistrubtion(self):
- d = NormalDistribution(0,1)
- d.sample()
-
- def test_LogNormalDistrubtion(self):
- d = LogNormalDistribution(0,1)
- d.sample()
-
- def test_GammaDistrubtion(self):
- d = GammaDistribution(1,1)
- d.sample()
-
- def test_BetaDistrubtion(self):
- d = BetaDistribution(1,1)
- d.sample()
-
-
-if __name__ == "__main__":
- unittest.main()
diff --git a/pyomo/pysp/tests/unit/test_instancefactory.py b/pyomo/pysp/tests/unit/test_instancefactory.py
deleted file mode 100644
index 68b5d4f7482..00000000000
--- a/pyomo/pysp/tests/unit/test_instancefactory.py
+++ /dev/null
@@ -1,701 +0,0 @@
-# ___________________________________________________________________________
-#
-# Pyomo: Python Optimization Modeling Objects
-# Copyright 2017 National Technology and Engineering Solutions of Sandia, LLC
-# Under the terms of Contract DE-NA0003525 with National Technology and
-# Engineering Solutions of Sandia, LLC, the U.S. Government retains certain
-# rights in this software.
-# This software is distributed under the 3-clause BSD License.
-# ___________________________________________________________________________
-import os
-import sys
-import shutil
-from os.path import join, dirname, abspath, exists
-
-import pyutilib.th as unittest
-
-from pyomo.common.dependencies import yaml_available
-from pyomo.pysp.scenariotree.instance_factory import \
- ScenarioTreeInstanceFactory
-from pyomo.pysp.scenariotree.tree_structure_model import \
- CreateAbstractScenarioTreeModel
-from pyomo.pysp.scenariotree.tree_structure import \
- ScenarioTree
-from pyomo.pysp.util.misc import load_external_module
-
-try:
- import networkx
- has_networkx = True
-except:
- has_networkx = False
-
-thisfile = abspath(__file__)
-thisdir = dirname(thisfile)
-testdatadir = join(thisdir, "testdata")
-
-reference_test_model = None
-def setUpModule():
- global reference_test_model
- reference_test_model = load_external_module(
- join(testdatadir, "reference_test_model.py"))[0].model
-
-
-class Test(unittest.TestCase):
-
- @classmethod
- def setUpClass(cls):
- import pyomo.environ
-
- def setUp(self):
- if "ReferenceModel" in sys.modules:
- del sys.modules["ReferenceModel"]
- if "reference_test_model" in sys.modules:
- del sys.modules["reference_test_model"]
- if "reference_test_model_with_callback" in sys.modules:
- del sys.modules["reference_test_model_with_callback"]
- if "reference_test_scenario_tree_model" in sys.modules:
- del sys.modules["reference_test_scenario_tree_model"]
- if "ScenarioStructure" in sys.modules:
- del sys.modules["ScenarioStructure"]
- if "both_callbacks" in sys.modules:
- del sys.modules["both_callbacks"]
-
- def _get_testfname_prefix(self):
- class_name, test_name = self.id().split('.')[-2:]
- return join(thisdir, class_name+"."+test_name)
-
- def _check_factory(self, factory):
- scenario_tree = factory.generate_scenario_tree()
- instances = factory.construct_instances_for_scenario_tree(scenario_tree,
- verbose=True)
- self.assertEqual(len(instances), 3)
- self.assertEqual(instances["s1"].p(), 1)
- self.assertEqual(instances["s2"].p(), 2)
- self.assertEqual(instances["s3"].p(), 3)
- instances = factory.construct_instances_for_scenario_tree(scenario_tree,
- compile_scenario_instances=True,
- verbose=True)
- self.assertEqual(len(instances), 3)
- self.assertEqual(instances["s1"].p(), 1)
- self.assertEqual(instances["s2"].p(), 2)
- self.assertEqual(instances["s3"].p(), 3)
- self.assertEqual(factory.construct_scenario_instance("s1", scenario_tree, verbose=True).p(), 1)
- with self.assertRaises(ValueError):
- factory.construct_scenario_instance("s0", scenario_tree, verbose=True)
-
- with self.assertRaises(ValueError):
- scenario_tree = factory.generate_scenario_tree(random_bundles=1000, verbose=True)
- with self.assertRaises(ValueError):
- scenario_tree = factory.generate_scenario_tree(random_bundles=2, bundles={}, verbose=True)
-
- scenario_tree = factory.generate_scenario_tree(random_bundles=2, verbose=True)
- self.assertEqual(scenario_tree.contains_bundles(), True)
- self.assertEqual(len(scenario_tree._scenario_bundles), 2)
- scenario_tree = factory.generate_scenario_tree(downsample_fraction=0.1, verbose=True)
- scenario_tree = factory.generate_scenario_tree(bundles={'b1': ['s1'],
- 'b2': ['s2'],
- 'b3': ['s3']},
- verbose=True)
- self.assertEqual(scenario_tree.contains_bundles(), True)
- self.assertEqual(len(scenario_tree.bundles), 3)
- if factory._scenario_tree is not None:
- self.assertTrue(factory._scenario_tree_model is None)
- with self.assertRaises(ValueError):
- scenario_tree = factory.generate_scenario_tree(
- bundles=join(testdatadir, "bundles.dat"),
- verbose=True)
- else:
- scenario_tree = factory.generate_scenario_tree(
- bundles=join(testdatadir, "bundles.dat"),
- verbose=True)
- self.assertEqual(scenario_tree.contains_bundles(), True)
- self.assertEqual(len(scenario_tree.bundles), 3)
- scenario_tree = factory.generate_scenario_tree(
- bundles=join(testdatadir, "bundles"),
- verbose=True)
- self.assertEqual(scenario_tree.contains_bundles(), True)
- self.assertEqual(len(scenario_tree.bundles), 3)
- if (factory.data_directory() is not None) and \
- exists(join(factory.data_directory(), "bundles.dat")):
- scenario_tree = factory.generate_scenario_tree(
- bundles="bundles.dat",
- verbose=True)
- self.assertEqual(scenario_tree.contains_bundles(), True)
- self.assertEqual(len(scenario_tree.bundles), 3)
- scenario_tree = factory.generate_scenario_tree(
- bundles="bundles",
- verbose=True)
- self.assertEqual(scenario_tree.contains_bundles(), True)
- self.assertEqual(len(scenario_tree.bundles), 3)
- with self.assertRaises(ValueError):
- scenario_tree = factory.generate_scenario_tree(
- bundles="bundles.notexists",
- verbose=True)
-
- # model: name of .py file with model
- # scenario_tree: name of .dat file
- def test_init1(self):
- self.assertTrue("reference_test_model" not in sys.modules)
- with ScenarioTreeInstanceFactory(
- model=join(testdatadir,
- "reference_test_model.py"),
- scenario_tree=join(testdatadir,
- "reference_test_scenario_tree.dat")) as factory:
- self.assertEqual(len(factory._archives), 0)
- self.assertTrue(factory.model_directory() is not None)
- self.assertTrue(factory.scenario_tree_directory() is not None)
- self._check_factory(factory)
- self.assertTrue("reference_test_model" in sys.modules)
-
- # model: name of directory with ReferenceModel.py with model
- # scenario_tree: name of directory with ScenarioStructure.dat
- def test_init1_default(self):
- self.assertTrue("ReferenceModel" not in sys.modules)
- with ScenarioTreeInstanceFactory(
- model=testdatadir,
- scenario_tree=testdatadir) as factory:
- self.assertEqual(len(factory._archives), 0)
- self.assertTrue(factory.model_directory() is not None)
- self.assertTrue(factory.scenario_tree_directory() is not None)
- self._check_factory(factory)
- self.assertTrue("ReferenceModel" in sys.modules)
-
- # model: name of archive with .py file with model
- # scenario_tree: name of .dat file
- def test_init2(self):
- self.assertTrue("reference_test_model" not in sys.modules)
- with ScenarioTreeInstanceFactory(
- model=join(testdatadir,
- "archive_test.tgz,reference_test_model.py"),
- scenario_tree=join(testdatadir,
- "reference_test_scenario_tree.dat")) as factory:
- self.assertEqual(len(factory._archives), 1)
- self.assertTrue(factory.model_directory() is not None)
- self.assertTrue(factory.scenario_tree_directory() is not None)
- self._check_factory(factory)
- self.assertTrue("reference_test_model" in sys.modules)
-
- # model: name of archive containing ReferenceModel.py with model
- # scenario_tree: name of directory with ScenarioStructure.dat file
- def test_init2_default(self):
- self.assertTrue("ReferenceModel" not in sys.modules)
- with ScenarioTreeInstanceFactory(
- model=join(testdatadir, "archive_test.tgz,"),
- scenario_tree=testdatadir) as factory:
- self.assertEqual(len(factory._archives), 1)
- self.assertTrue(factory.model_directory() is not None)
- self.assertTrue(factory.scenario_tree_directory() is not None)
- self._check_factory(factory)
- self.assertTrue("ReferenceModel" in sys.modules)
-
- # model: name of .py file with model
- # scenario_tree: name of archive with .dat file
- def test_init3(self):
- self.assertTrue("reference_test_model" not in sys.modules)
- with ScenarioTreeInstanceFactory(
- model=join(testdatadir,
- "reference_test_model.py"),
- scenario_tree=join(testdatadir,
- "archive_test.tgz,reference_test_scenario_tree.dat")) as factory:
- self.assertEqual(len(factory._archives), 1)
- self.assertTrue(factory.model_directory() is not None)
- self.assertTrue(factory.scenario_tree_directory() is not None)
- self._check_factory(factory)
- self.assertTrue("reference_test_model" in sys.modules)
-
- # model: name of directory with ReferenceModel.py file with model
- # scenario_tree: name of archive with ScenarioStructure.dat file
- def test_init3_default(self):
- self.assertTrue("ReferenceModel" not in sys.modules)
- with ScenarioTreeInstanceFactory(
- model=testdatadir,
- scenario_tree=join(testdatadir,
- "archive_test.tgz")) as factory:
- self.assertEqual(len(factory._archives), 1)
- self.assertTrue(factory.model_directory() is not None)
- self.assertTrue(factory.scenario_tree_directory() is not None)
- self._check_factory(factory)
- self.assertTrue("ReferenceModel" in sys.modules)
-
- # model: name of archive with .py file with model
- # scenario_tree: name of copy of archive with .dat file
- def test_init4(self):
- self.assertTrue("reference_test_model" not in sys.modules)
- archive_copy = self._get_testfname_prefix()+".archive_copy.tgz"
- shutil.copyfile(join(testdatadir, "archive_test.tgz"),
- archive_copy)
- with ScenarioTreeInstanceFactory(
- model=join(testdatadir,
- "archive_test.tgz,reference_test_model.py"),
- scenario_tree=join(testdatadir,
- archive_copy+",reference_test_scenario_tree.dat")) as factory:
- self.assertEqual(len(factory._archives), 2)
- self.assertTrue(factory.model_directory() is not None)
- self.assertTrue(factory.scenario_tree_directory() is not None)
- self._check_factory(factory)
- self.assertEqual(len(factory._archives), 0)
- os.remove(archive_copy)
- self.assertTrue("reference_test_model" in sys.modules)
-
- # model: name of archive with ReferenceModel.py file with model
- # scenario_tree: name of copy of archive with ScenarioStructure.dat file
- def test_init4_default(self):
- self.assertTrue("ReferenceModel" not in sys.modules)
- archive_copy = self._get_testfname_prefix()+".archive_copy.tgz"
- shutil.copyfile(join(testdatadir, "archive_test.tgz"),
- archive_copy)
- with ScenarioTreeInstanceFactory(
- model=join(testdatadir, "archive_test.tgz,"),
- scenario_tree=join(testdatadir,
- archive_copy+",")) as factory:
- self.assertEqual(len(factory._archives), 2)
- self.assertTrue(factory.model_directory() is not None)
- self.assertTrue(factory.scenario_tree_directory() is not None)
- self._check_factory(factory)
- self.assertEqual(len(factory._archives), 0)
- os.remove(archive_copy)
- self.assertTrue("ReferenceModel" in sys.modules)
-
- # model: name of archive with .py file with model
- # scenario_tree: name of same archive with .dat file
- def test_init5(self):
- self.assertTrue("reference_test_model" not in sys.modules)
- with ScenarioTreeInstanceFactory(
- model=join(testdatadir,
- "archive_test.tgz,reference_test_model.py"),
- scenario_tree=join(testdatadir,
- "archive_test.tgz,reference_test_scenario_tree.dat")) as factory:
- self.assertEqual(len(factory._archives), 1)
- self.assertTrue(factory.model_directory() is not None)
- self.assertTrue(factory.scenario_tree_directory() is not None)
- self._check_factory(factory)
- self.assertEqual(len(factory._archives), 0)
- self.assertTrue("reference_test_model" in sys.modules)
-
- # model: name of archive with ReferenceModel.py file with model
- # scenario_tree: name of same archive with ScenarioStructure.dat file
- def test_init5_default(self):
- self.assertTrue("ReferenceModel" not in sys.modules)
- with ScenarioTreeInstanceFactory(
- model=join(testdatadir, "archive_test.tgz,"),
- scenario_tree=join(testdatadir, "archive_test.tgz,")) as factory:
- self.assertEqual(len(factory._archives), 1)
- self.assertTrue(factory.model_directory() is not None)
- self.assertTrue(factory.scenario_tree_directory() is not None)
- self._check_factory(factory)
- self.assertEqual(len(factory._archives), 0)
- self.assertTrue("ReferenceModel" in sys.modules)
-
- # model: name of .py file with model
- # scenario_tree: Pyomo scenario tree model
- def test_init6(self):
- self.assertTrue("reference_test_model" not in sys.modules)
- scenario_tree_model = CreateAbstractScenarioTreeModel().\
- create_instance(
- join(testdatadir, "reference_test_scenario_tree.dat"))
- with ScenarioTreeInstanceFactory(
- model=join(testdatadir, "reference_test_model.py"),
- scenario_tree=scenario_tree_model) as factory:
- self.assertTrue(factory.model_directory() is not None)
- self.assertTrue(factory.scenario_tree_directory() is None)
- self._check_factory(factory)
- with self.assertRaises(TypeError):
- with ScenarioTreeInstanceFactory(
- model=join(testdatadir, "reference_test_model.py"),
- scenario_tree=int) as f:
- pass
- with self.assertRaises(ValueError):
- with ScenarioTreeInstanceFactory(
- model=join(testdatadir, "reference_test_model.py"),
- scenario_tree=None) as f:
- pass
- with self.assertRaises(TypeError):
- with ScenarioTreeInstanceFactory(
- model=None,
- scenario_tree=scenario_tree_model) as f:
- pass
- with self.assertRaises(IOError):
- with ScenarioTreeInstanceFactory(
- model=join(testdatadir, "reference_test_model_does_not_exist.py"),
- scenario_tree=scenario_tree_model) as f:
- pass
- with self.assertRaises(ValueError):
- with ScenarioTreeInstanceFactory(
- model=join(testdatadir, "reference_test_model.py"),
- scenario_tree=CreateAbstractScenarioTreeModel()) as f:
- pass
- self.assertEqual(len(factory._archives), 0)
- self.assertTrue("reference_test_model" in sys.modules)
-
- # model: Pyomo model
- # scenario_tree: Pyomo scenario tree model
- def test_init7(self):
- self.assertTrue("reference_test_model" not in sys.modules)
- scenario_tree_model = CreateAbstractScenarioTreeModel().\
- create_instance(
- join(testdatadir, "reference_test_scenario_tree.dat"))
- with self.assertRaises(ValueError):
- with ScenarioTreeInstanceFactory(
- model=reference_test_model,
- scenario_tree=scenario_tree_model) as factory:
- pass
- with ScenarioTreeInstanceFactory(
- model=reference_test_model,
- scenario_tree=scenario_tree_model,
- data=testdatadir) as factory:
- self.assertTrue(factory.model_directory() is None)
- self.assertTrue(factory.scenario_tree_directory() is None)
- self._check_factory(factory)
- self.assertEqual(factory._closed, True)
- with ScenarioTreeInstanceFactory(
- model=reference_test_model,
- scenario_tree=join(testdatadir,
- "reference_test_scenario_tree.dat")) as factory:
- self.assertTrue(factory.model_directory() is None)
- self.assertTrue(factory.scenario_tree_directory() is not None)
- self._check_factory(factory)
- self.assertEqual(len(factory._archives), 0)
-
- # model: Pyomo model
- # scenario_tree: name of .py file with Pyomo scenario tree model
- def test_init8(self):
- self.assertTrue("reference_test_model" not in sys.modules)
- self.assertTrue("reference_test_scenario_tree_model" not in sys.modules)
- with ScenarioTreeInstanceFactory(
- model=reference_test_model,
- scenario_tree=join(testdatadir,
- "reference_test_scenario_tree_model.py"),
- data=testdatadir) as factory:
- self.assertTrue(factory.model_directory() is None)
- self.assertTrue(factory.scenario_tree_directory() is not None)
- self.assertTrue(factory._scenario_tree_module is not None)
- self._check_factory(factory)
- self.assertEqual(factory._closed, True)
- self.assertEqual(len(factory._archives), 0)
- self.assertTrue("reference_test_model" not in sys.modules)
- self.assertTrue("reference_test_scenario_tree_model" in sys.modules)
-
- # model: name of .py file with model callback
- # scenario_tree: name of .dat file
- def test_init9(self):
- self.assertTrue("reference_test_model_with_callback" not in sys.modules)
- with ScenarioTreeInstanceFactory(
- model=join(testdatadir,
- "reference_test_model_with_callback.py"),
- scenario_tree=join(testdatadir,
- "reference_test_scenario_tree.dat")) as factory:
- self.assertEqual(len(factory._archives), 0)
- self.assertTrue(factory.model_directory() is not None)
- self.assertTrue(factory.scenario_tree_directory() is not None)
- self._check_factory(factory)
- self.assertEqual(len(factory._archives), 0)
- self.assertTrue("reference_test_model_with_callback" in sys.modules)
-
- # model: name of directory with ReferenceModel.py file with model
- # scenario_tree: name of .dat file
- # data: name of directory with yaml files
- @unittest.skipIf(not yaml_available, "PyYAML is not available")
- def test_init10(self):
- with ScenarioTreeInstanceFactory(
- model=testdatadir,
- scenario_tree=join(testdatadir,
- "reference_test_scenario_tree.dat"),
- data=join(testdatadir, "yaml_data")) as factory:
- self.assertEqual(len(factory._archives), 0)
- self.assertTrue(factory.model_directory() is not None)
- self.assertTrue(factory.scenario_tree_directory() is not None)
- self.assertTrue(factory.data_directory(),
- join(testdatadir, "yaml_data"))
- self._check_factory(factory)
- self.assertEqual(len(factory._archives), 0)
-
- # model: Pyomo model
- # scenario_tree: Pyomo scenario tree model
- # data: name of directory with .dat files
- def test_init11(self):
- self.assertTrue("reference_test_model" not in sys.modules)
- scenario_tree_model = CreateAbstractScenarioTreeModel().\
- create_instance(
- join(testdatadir, "reference_test_scenario_tree.dat"))
- scenario_tree_model.ScenarioBasedData = False
- with ScenarioTreeInstanceFactory(
- model=reference_test_model,
- scenario_tree=scenario_tree_model,
- data=testdatadir) as factory:
- self.assertTrue(factory.model_directory() is None)
- self.assertTrue(factory.scenario_tree_directory() is None)
- self._check_factory(factory)
- self.assertEqual(factory._closed, True)
- self.assertEqual(len(factory._archives), 0)
-
- # model: model callback
- # scenario_tree: Pyomo scenario tree model
- def test_init12(self):
- self.assertTrue("reference_test_model" not in sys.modules)
- scenario_tree_model = CreateAbstractScenarioTreeModel().\
- create_instance(
- join(testdatadir, "reference_test_scenario_tree.dat"))
- def scenario_model_callback(scenario_tree, scenario_name, node_list):
- self.assertIs(scenario_tree, scenario_tree_model)
- instance = reference_test_model.create_instance()
- if scenario_name == "s1":
- instance.p = 1.0
- elif scenario_name == "s2":
- instance.p = 2.0
- else:
- assert scenario_name == "s3"
- instance.p = 3.0
- return instance
- with ScenarioTreeInstanceFactory(
- model=scenario_model_callback,
- scenario_tree=scenario_tree_model) as factory:
- self.assertTrue(factory.model_directory() is None)
- self.assertTrue(factory.scenario_tree_directory() is None)
- self._check_factory(factory)
- self.assertEqual(factory._closed, True)
- self.assertEqual(len(factory._archives), 0)
-
- # model: Pyomo model
- # scenario_tree: Pyomo scenario tree model
- def test_init13(self):
- model = reference_test_model.create_instance()
- scenario_tree_model = CreateAbstractScenarioTreeModel().\
- create_instance(
- join(testdatadir, "reference_test_scenario_tree.dat"))
- with ScenarioTreeInstanceFactory(
- model=model,
- scenario_tree=scenario_tree_model) as factory:
- self.assertTrue(factory.model_directory() is None)
- self.assertTrue(factory.scenario_tree_directory() is None)
-
- scenario_tree = factory.generate_scenario_tree()
- instances = factory.construct_instances_for_scenario_tree(
- scenario_tree,
- verbose=True)
- self.assertEqual(len(instances), 3)
- self.assertEqual(instances["s1"].p(), model.p())
- self.assertEqual(instances["s2"].p(), model.p())
- self.assertEqual(instances["s3"].p(), model.p())
-
- self.assertEqual(factory._closed, True)
- self.assertEqual(len(factory._archives), 0)
-
- # model: Pyomo model
- # scenario_tree: Pyomo scenario tree model
- # data: name of a directory with .dat files
- def test_init14(self):
- self.assertTrue("reference_test_model" not in sys.modules)
- scenario_tree_model = CreateAbstractScenarioTreeModel().\
- create_instance(
- join(testdatadir, "reference_test_scenario_tree.dat"))
- with ScenarioTreeInstanceFactory(
- model=reference_test_model,
- scenario_tree=scenario_tree_model,
- data=testdatadir) as factory:
- scenario_tree = factory.generate_scenario_tree()
- self.assertEqual(factory._closed, True)
- self.assertEqual(len(factory._archives), 0)
- # start with a scenario tree (not a scenario tree model)
- with ScenarioTreeInstanceFactory(
- model=reference_test_model,
- scenario_tree=scenario_tree,
- data=testdatadir) as factory:
- self._check_factory(factory)
- self.assertEqual(factory._closed, True)
- self.assertEqual(len(factory._archives), 0)
-
- # model: name of a .py file with model
- # scenario_tree: name of a .py file
- # data: name of a directory with .dat files
- @unittest.skipIf(not has_networkx, "Requires networkx module")
- def test_init15(self):
- self.assertTrue("reference_test_model" not in sys.modules)
- with ScenarioTreeInstanceFactory(
- model=join(testdatadir,
- "reference_test_model.py"),
- scenario_tree=join(testdatadir,
- "ScenarioStructure.py")) as factory:
- self.assertEqual(len(factory._archives), 0)
- self.assertTrue(factory.model_directory() is not None)
- self.assertTrue(factory.scenario_tree_directory() is not None)
- self._check_factory(factory)
- self.assertTrue("reference_test_model" in sys.modules)
-
- # model: name of a .py file with model
- # scenario_tree: networkx tree
- @unittest.skipIf(not has_networkx, "Requires networkx module")
- def test_init16(self):
- self.assertTrue("reference_test_model" not in sys.modules)
- self.assertTrue("ScenarioStructure" not in sys.modules)
- nx_tree = load_external_module(os.path.join(testdatadir,
- "ScenarioStructure.py"))[0].G
- with ScenarioTreeInstanceFactory(
- model=join(testdatadir,
- "reference_test_model.py"),
- scenario_tree=nx_tree) as factory:
- self.assertEqual(len(factory._archives), 0)
- self.assertTrue(factory.model_directory() is not None)
- self.assertTrue(factory.scenario_tree_directory() is None)
- self._check_factory(factory)
- self.assertTrue("reference_test_model" in sys.modules)
- self.assertTrue("ScenarioStructure" in sys.modules)
-
- # model: name of a .py file with model
- # scenario_tree: networkx tree
- @unittest.skipIf(not has_networkx, "Requires networkx module")
- def test_init17(self):
- self.assertTrue("reference_test_model" not in sys.modules)
- self.assertTrue("ScenarioStructure" not in sys.modules)
- nx_tree = load_external_module(os.path.join(testdatadir,
- "ScenarioStructure.py"))[0].G
- with ScenarioTreeInstanceFactory(
- model=join(testdatadir,
- "reference_test_model.py"),
- scenario_tree=nx_tree) as factory:
- self.assertEqual(len(factory._archives), 0)
- self.assertTrue(factory.model_directory() is not None)
- self.assertTrue(factory.scenario_tree_directory() is None)
- self._check_factory(factory)
-
- scenario_tree = factory.generate_scenario_tree()
- self.assertEqual(scenario_tree.contains_bundles(), False)
- # check that we can modify the networkx tree to redefine
- # bundles
- nx_tree.nodes["s1"]["bundle"] = 0
- nx_tree.nodes["s2"]["bundle"] = 0
- nx_tree.nodes["s3"]["bundle"] = 0
- scenario_tree = factory.generate_scenario_tree()
- self.assertEqual(scenario_tree.contains_bundles(), True)
- self.assertEqual(len(scenario_tree.bundles), 1)
- nx_tree.nodes["s1"]["bundle"] = 0
- nx_tree.nodes["s2"]["bundle"] = 1
- nx_tree.nodes["s3"]["bundle"] = 2
- scenario_tree = factory.generate_scenario_tree()
- self.assertEqual(scenario_tree.contains_bundles(), True)
- self.assertEqual(len(scenario_tree.bundles), 3)
- nx_tree.nodes["s1"]["bundle"] = None
- nx_tree.nodes["s2"]["bundle"] = None
- nx_tree.nodes["s3"]["bundle"] = None
- scenario_tree = factory.generate_scenario_tree()
- self.assertEqual(scenario_tree.contains_bundles(), False)
-
- self.assertTrue("reference_test_model" in sys.modules)
- self.assertTrue("ScenarioStructure" in sys.modules)
-
- # model: model callback
- # scenario_tree: networkx tree
- @unittest.skipIf(not has_networkx, "Requires networkx module")
- def test_init18(self):
- self.assertTrue("reference_test_model" not in sys.modules)
- self.assertTrue("ScenarioStructure" not in sys.modules)
- nx_tree = load_external_module(os.path.join(testdatadir,
- "ScenarioStructure.py"))[0].G
- def scenario_model_callback(scenario_tree, scenario_name, node_list):
- self.assertIs(scenario_tree, nx_tree)
- instance = reference_test_model.create_instance()
- if scenario_name == "s1":
- instance.p = 1.0
- elif scenario_name == "s2":
- instance.p = 2.0
- else:
- assert scenario_name == "s3"
- instance.p = 3.0
- return instance
- with ScenarioTreeInstanceFactory(
- model=scenario_model_callback,
- scenario_tree=nx_tree) as factory:
- self.assertTrue(factory.model_directory() is None)
- self.assertTrue(factory.scenario_tree_directory() is None)
- self._check_factory(factory)
- self.assertEqual(factory._closed, True)
- self.assertEqual(len(factory._archives), 0)
-
- # model: model callback
- # scenario_tree: name of .dat file
- def test_init19(self):
- self.assertTrue("reference_test_model" not in sys.modules)
- def scenario_model_callback(scenario_tree, scenario_name, node_list):
- self.assertTrue(isinstance(scenario_tree, ScenarioTree))
- instance = reference_test_model.create_instance()
- if scenario_name == "s1":
- instance.p = 1.0
- elif scenario_name == "s2":
- instance.p = 2.0
- else:
- assert scenario_name == "s3"
- instance.p = 3.0
- return instance
- with ScenarioTreeInstanceFactory(
- model=scenario_model_callback,
- scenario_tree=join(testdatadir,
- "reference_test_scenario_tree.dat")) as factory:
- self.assertTrue(factory.model_directory() is None)
- self.assertTrue(factory.scenario_tree_directory() is not None)
- self._check_factory(factory)
- self.assertEqual(factory._closed, True)
- self.assertEqual(len(factory._archives), 0)
-
- # model: model callback
- # scenario_tree: PySP scenario tree
- def test_init20(self):
- self.assertTrue("reference_test_model" not in sys.modules)
- def scenario_model_callback(scenario_tree, scenario_name, node_list):
- self.assertTrue(isinstance(scenario_tree, ScenarioTree))
- instance = reference_test_model.create_instance()
- if scenario_name == "s1":
- instance.p = 1.0
- elif scenario_name == "s2":
- instance.p = 2.0
- else:
- assert scenario_name == "s3"
- instance.p = 3.0
- return instance
- with ScenarioTreeInstanceFactory(
- model=scenario_model_callback,
- scenario_tree=join(testdatadir,
- "reference_test_scenario_tree.dat")) as factory:
- my_scenario_tree = factory.generate_scenario_tree()
- with ScenarioTreeInstanceFactory(
- model=scenario_model_callback,
- scenario_tree=my_scenario_tree) as factory:
- self.assertTrue(factory.model_directory() is None)
- self.assertTrue(factory.scenario_tree_directory() is None)
- self._check_factory(factory)
- self.assertEqual(factory._closed, True)
- self.assertEqual(len(factory._archives), 0)
-
- # model: name of .py file with model callback
- # scenario_tree: name of same .py file with scenario tree callback
- @unittest.skipIf(not has_networkx, "Requires networkx module")
- def test_init21(self):
- self.assertTrue("both_callbacks" not in sys.modules)
- with ScenarioTreeInstanceFactory(
- model=join(testdatadir,
- "both_callbacks.py"),
- scenario_tree=join(testdatadir,
- "both_callbacks.py")) as factory:
- self.assertEqual(len(factory._archives), 0)
- self.assertTrue(factory.model_directory() is not None)
- self.assertTrue(factory.scenario_tree_directory() is not None)
- self._check_factory(factory)
- self.assertEqual(len(factory._archives), 0)
- self.assertTrue("both_callbacks" in sys.modules)
-
- # model: name of .py file with model callback
- # scenario_tree: None (which implies the model filename)
- @unittest.skipIf(not has_networkx, "Requires networkx module")
- def test_init22(self):
- self.assertTrue("both_callbacks" not in sys.modules)
- with ScenarioTreeInstanceFactory(
- model=join(testdatadir,
- "both_callbacks.py"),
- scenario_tree=None) as factory:
- self.assertEqual(len(factory._archives), 0)
- self.assertTrue(factory.model_directory() is not None)
- self.assertTrue(factory.scenario_tree_directory() is not None)
- self._check_factory(factory)
- self.assertEqual(len(factory._archives), 0)
- self.assertTrue("both_callbacks" in sys.modules)
-
-if __name__ == "__main__":
- unittest.main()
diff --git a/pyomo/pysp/tests/unit/test_ph.py b/pyomo/pysp/tests/unit/test_ph.py
deleted file mode 100644
index 7893a97f7cb..00000000000
--- a/pyomo/pysp/tests/unit/test_ph.py
+++ /dev/null
@@ -1,2585 +0,0 @@
-# ___________________________________________________________________________
-#
-# Pyomo: Python Optimization Modeling Objects
-# Copyright 2017 National Technology and Engineering Solutions of Sandia, LLC
-# Under the terms of Contract DE-NA0003525 with National Technology and
-# Engineering Solutions of Sandia, LLC, the U.S. Government retains certain
-# rights in this software.
-# This software is distributed under the 3-clause BSD License.
-# ___________________________________________________________________________
-#
-# Get the directory where this script is defined, and where the baseline
-# files are located.
-#
-
-import os
-import sys
-import subprocess
-from os.path import abspath, dirname
-
-try:
- from subprocess import check_output as _run_cmd
-except:
- # python 2.6
- from subprocess import check_call as _run_cmd
-
-thisdir = dirname(abspath(__file__))
-this_test_file_directory = dirname(abspath(__file__))+os.sep
-
-pysp_examples_dir = dirname(dirname(dirname(dirname(dirname(abspath(__file__))))))+os.sep+"examples"+os.sep+"pysp"+os.sep
-
-pyomo_bin_dir = dirname(dirname(dirname(dirname(dirname(dirname(dirname(abspath(__file__))))))))+os.sep+"bin"+os.sep
-
-baseline_dir = this_test_file_directory+"baselines"+os.sep
-
-#
-# Import the testing packages
-#
-import pyutilib.misc
-import pyutilib.th as unittest
-from pyutilib.pyro import using_pyro3, using_pyro4
-
-from pyomo.pysp.util.misc import (_get_test_nameserver,
- _get_test_dispatcher,
- _poll,
- _kill)
-import pyomo.opt
-import pyomo.pysp
-import pyomo.pysp.phinit
-import pyomo.pysp.ef_writer_script
-import pyomo.environ
-
-_diff_tolerance = 1e-5
-_diff_tolerance_relaxed = 1e-3
-
-def _remove(filename):
- try:
- os.remove(filename)
- except OSError:
- pass
-
-def filter_time_and_data_dirs(line):
- return ("Constructing solvers of type=" in line) or \
- ("Constructing solver type=" in line) or \
- ("Async buffer length=" in line) or \
- ("seconds" in line) or \
- ("starting at" in line) or \
- ("solve ends" in line) or \
- line.startswith("Output file written to") or \
- ("filename" in line) or \
- ("directory" in line) or \
- ("file" in line) or \
- ("module=" in line) or \
- line.startswith("WARNING:") or \
- ("model_location: " in line) or \
- ("model_directory: " in line) or \
- ("scenario_tree_location: " in line) or \
- ("instance_directory: " in line) or \
- line.startswith("Freeing MIP data") or \
- line.startswith("Freeing QP data") or \
- line.startswith("At least one sub-problem solve time was undefined")
-
-def filter_lagrange(line):
- return filter_time_and_data_dirs(line) or \
- ("STARTTIME = ") in line or \
- ("datetime = ") in line or \
- ("lapsed time = ") in line
-
-# pyro output filtering is complex, due to asynchronous behaviors -
-# filter all blather regarding what Pyro components are doing.
-def filter_pyro(line):
- if line.startswith("URI") or line.startswith("Object URI") or line.startswith("Dispatcher Object URI") or line.startswith("Dispatcher is ready"):
- return True
- elif ("pyro_host: " in line) or ("pyro_port: " in line):
- return True
- elif ("Timeout reached before " in line):
- return True
- elif line.startswith('Client assigned dispatcher with URI'):
- return True
- elif line.startswith("Initializing PH"): # added to prevent diff'ing showing up a positive because of PH initialization order relative to the other pyro-based components
- return True
- elif line.startswith("Applying solver") or line.find("Applying solver") != -1:
- return True
- elif line.startswith("Name server listening on:"):
- return True
- elif line.startswith("Client attempting to find Pyro dispatcher object"):
- return True
- elif line.startswith("Connection to dispatch server established after"):
- return True
- elif line.startswith("Worker attempting to find Pyro dispatcher object"):
- return True
- elif line.startswith("Getting work from"):
- return True
- elif line.startswith("Name Server started."):
- return True
- elif line.startswith("Name Server gracefully stopped."):
- return True
- elif line.startswith("The Name Server appears to be already running on this segment."):
- return True
- elif line.startswith("(host:"):
- return True
- elif line.startswith("Cannot start multiple Name Servers in the same network segment."):
- return True
- elif line.startswith("Listening for work from"):
- return True
- elif line.startswith("Error loading pyomo.opt entry point"): # supressing weird error that occasionally pops up when loading plugins
- return True
- elif line.startswith("Broadcast server"):
- return True
- elif line.startswith("Failed to locate nameserver - trying again"):
- return True
- elif line.startswith("Failed to find dispatcher object from name server - trying again"):
- return True
- elif line.startswith("Lost connection to"): # happens when shutting down pyro objects
- return True
- elif line.startswith("WARNING: daemon bound on hostname that resolves"): # happens when not connected to a network.
- return True
- elif line.startswith("This is worker") or line.startswith("This is client") or line.startswith("Finding Pyro"):
- return True
- elif line.find("Applying solver") != -1:
- return True
- elif line.find("Solve completed") != -1:
- return True
- elif line.find("Freeing MIP data") != -1: # CPLEX 12.4 python interface idiocy
- return True
- elif line.find("Warning: integer solution") != -1: # CPLEX 12.4 python interface idiocy
- return True
- elif line.startswith("Creating instance"): # non-deterministic order for PH Pyro solver manager
- return True
- elif line.startswith("Exception in thread"): # occasionally raised during Pyro component shutdown
- return True
- elif line.startswith("Traceback"): # occasionally raised during Pyro component shutdown
- return True
- elif line.startswith("File"): # occasionally raised during Pyro component shutdown
- return True
- return filter_time_and_data_dirs(line)
-
-_pyomo_ns_host = '127.0.0.1'
-_pyomo_ns_port = None
-_pyomo_ns_process = None
-_dispatch_srvr_port = None
-_dispatch_srvr_process = None
-def _setUpModule():
- global _pyomo_ns_port
- global _pyomo_ns_process
- global _dispatch_srvr_port
- global _dispatch_srvr_process
- if _pyomo_ns_process is None:
- _pyomo_ns_process, _pyomo_ns_port = \
- _get_test_nameserver(ns_host=_pyomo_ns_host)
- assert _pyomo_ns_process is not None
- if _dispatch_srvr_process is None:
- _dispatch_srvr_process, _dispatch_srvr_port = \
- _get_test_dispatcher(ns_host=_pyomo_ns_host,
- ns_port=_pyomo_ns_port)
- assert _dispatch_srvr_process is not None
-
-def tearDownModule():
- global _pyomo_ns_port
- global _pyomo_ns_process
- global _dispatch_srvr_port
- global _dispatch_srvr_process
- _kill(_pyomo_ns_process)
- _pyomo_ns_port = None
- _pyomo_ns_process = None
- _kill(_dispatch_srvr_process)
- _dispatch_srvr_port = None
- _dispatch_srvr_process = None
- if os.path.exists("gurobi.log"):
- os.remove("gurobi.log")
- if os.path.exists("cplex.log"):
- os.remove("cplex.log")
-
-#
-# Define a testing class, using the unittest.TestCase class.
-#
-
-solver = {}
-solver['cplex','lp'] = False
-solver['cplex','python'] = False
-solver['gurobi','lp'] = False
-solver['gurobi','python'] = False
-solver['cbc','lp'] = False
-solver['ipopt','nl'] = False
-
-def _setUpClass(cls):
- global solvers
- import pyomo.environ
- from pyomo.solvers.tests.solvers import test_solver_cases
- for _solver, _io in test_solver_cases():
- if (_solver, _io) in solver and \
- test_solver_cases(_solver, _io).available:
- solver[_solver, _io] = True
-
-@unittest.category('nightly', 'performance')
-class TestPH(unittest.TestCase):
-
- @classmethod
- def setUpClass(cls):
- _setUpClass(cls)
-
- def setUp(self):
- os.chdir(thisdir)
-
- def tearDown(self):
-
- # IMPT: This step is key, as Python keys off the name of the module, not the location.
- # So, different reference models in different directories won't be detected.
- # If you don't do this, the symptom is a model that doesn't have the attributes
- # that the data file expects.
- if "ReferenceModel" in sys.modules:
- del sys.modules["ReferenceModel"]
-
- def test_farmer_quadratic_cplex(self):
- if not solver['cplex','lp']:
- self.skipTest("The 'cplex' executable is not available")
- farmer_examples_dir = pysp_examples_dir + "farmer"
- model_dir = farmer_examples_dir + os.sep + "models"
- instance_dir = farmer_examples_dir + os.sep + "scenariodata"
- argstring = "runph --traceback -r 1.0 --solver=cplex --solver-manager=serial --model-directory="+model_dir+" --instance-directory="+instance_dir
- print("Testing command: " + argstring)
-
- pyutilib.misc.setup_redirect(
- this_test_file_directory+"farmer_quadratic_cplex.out")
- args = argstring.split()
- pyomo.pysp.phinit.main(args=args[1:])
- pyutilib.misc.reset_redirect()
- self.assertFileEqualsBaseline(
- this_test_file_directory+"farmer_quadratic_cplex.out",
- baseline_dir+"farmer_quadratic_cplex.baseline",
- filter=filter_time_and_data_dirs,
- tolerance=_diff_tolerance)
-
- def test_farmer_quadratic_nonnormalized_termdiff_cplex(self):
- if not solver['cplex','lp']:
- self.skipTest("The 'cplex' executable is not available")
- farmer_examples_dir = pysp_examples_dir + "farmer"
- model_dir = farmer_examples_dir + os.sep + "models"
- instance_dir = farmer_examples_dir + os.sep + "scenariodata"
- argstring = "runph --traceback -r 1.0 --solver=cplex --solver-manager=serial --model-directory="+model_dir+" --instance-directory="+instance_dir+" --enable-termdiff-convergence --termdiff-threshold=0.01"
- print("Testing command: " + argstring)
-
- pyutilib.misc.setup_redirect(
- this_test_file_directory+"farmer_quadratic_nonnormalized_termdiff_cplex.out")
- args = argstring.split()
- pyomo.pysp.phinit.main(args=args[1:])
- pyutilib.misc.reset_redirect()
- self.assertFileEqualsBaseline(
- this_test_file_directory+"farmer_quadratic_nonnormalized_termdiff_cplex.out",
- baseline_dir+"farmer_quadratic_nonnormalized_termdiff_cplex.baseline",
- filter=filter_time_and_data_dirs,
- tolerance=_diff_tolerance)
-
- def test_farmer_quadratic_cplex_direct(self):
- if not solver['cplex','python']:
- self.skipTest("The 'cplex' python solver is not available")
- farmer_examples_dir = pysp_examples_dir + "farmer"
- model_dir = farmer_examples_dir + os.sep + "models"
- instance_dir = farmer_examples_dir + os.sep + "scenariodata"
- argstring = "runph --traceback -r 1.0 --solver=cplex --solver-io=python --solver-manager=serial --model-directory="+model_dir+" --instance-directory="+instance_dir
- print("Testing command: " + argstring)
-
- pyutilib.misc.setup_redirect(
- this_test_file_directory+"farmer_quadratic_cplex_direct.out")
- args = argstring.split()
- pyomo.pysp.phinit.main(args=args[1:])
- pyutilib.misc.reset_redirect()
- self.assertFileEqualsBaseline(
- this_test_file_directory+"farmer_quadratic_cplex_direct.out",
- baseline_dir+"farmer_quadratic_cplex_direct.baseline",
- filter=filter_time_and_data_dirs,
- tolerance=_diff_tolerance_relaxed)
-
- def test_farmer_quadratic_gurobi_direct(self):
- if not solver['gurobi','python']:
- self.skipTest("The 'gurobi' python solver is not available")
- farmer_examples_dir = pysp_examples_dir + "farmer"
- model_dir = farmer_examples_dir + os.sep + "models"
- instance_dir = farmer_examples_dir + os.sep + "scenariodata"
- argstring = "runph --traceback -r 1.0 --solver=gurobi --solver-io=python --solver-manager=serial --model-directory="+model_dir+" --instance-directory="+instance_dir
- print("Testing command: " + argstring)
-
- pyutilib.misc.setup_redirect(
- this_test_file_directory+"farmer_quadratic_gurobi_direct.out")
- args = argstring.split()
- pyomo.pysp.phinit.main(args=args[1:])
- pyutilib.misc.reset_redirect()
- self.assertFileEqualsBaseline(
- this_test_file_directory+"farmer_quadratic_gurobi_direct.out",
- baseline_dir+"farmer_quadratic_gurobi_direct.baseline",
- filter=filter_time_and_data_dirs,
- tolerance=_diff_tolerance)
-
- def test_farmer_quadratic_gurobi(self):
- if not solver['gurobi','lp']:
- self.skipTest("The 'gurobi' executable is not available")
-
- farmer_examples_dir = pysp_examples_dir + "farmer"
- model_dir = farmer_examples_dir + os.sep + "models"
- instance_dir = farmer_examples_dir + os.sep + "scenariodata"
- argstring = "runph --traceback -r 1.0 --solver=gurobi --solver-manager=serial --model-directory="+model_dir+" --instance-directory="+instance_dir
- print("Testing command: " + argstring)
-
- pyutilib.misc.setup_redirect(
- this_test_file_directory+"farmer_quadratic_gurobi.out")
- args = argstring.split()
- pyomo.pysp.phinit.main(args=args[1:])
- pyutilib.misc.reset_redirect()
- self.assertFileEqualsBaseline(
- this_test_file_directory+"farmer_quadratic_gurobi.out",
- baseline_dir+"farmer_quadratic_gurobi.baseline",
- filter=filter_time_and_data_dirs,
- tolerance=_diff_tolerance)
-
- def test_farmer_quadratic_nonnormalized_termdiff_gurobi(self):
- if not solver['gurobi','lp']:
- self.skipTest("The 'gurobi' executable is not available")
- farmer_examples_dir = pysp_examples_dir + "farmer"
- model_dir = farmer_examples_dir + os.sep + "models"
- instance_dir = farmer_examples_dir + os.sep + "scenariodata"
- argstring = "runph --traceback -r 1.0 --solver=gurobi --solver-manager=serial --model-directory="+model_dir+" --instance-directory="+instance_dir+" --enable-termdiff-convergence --termdiff-threshold=0.01"
- print("Testing command: " + argstring)
-
- pyutilib.misc.setup_redirect(
- this_test_file_directory+"farmer_quadratic_nonnormalized_termdiff_gurobi.out")
- args = argstring.split()
- pyomo.pysp.phinit.main(args=args[1:])
- pyutilib.misc.reset_redirect()
- self.assertFileEqualsBaseline(
- this_test_file_directory+"farmer_quadratic_nonnormalized_termdiff_gurobi.out",
- baseline_dir+"farmer_quadratic_nonnormalized_termdiff_gurobi.baseline",
- filter=filter_time_and_data_dirs,
- tolerance=_diff_tolerance)
-
- def test_farmer_quadratic_ipopt(self):
- if not solver['ipopt','nl']:
- self.skipTest("The 'ipopt' executable is not available")
- farmer_examples_dir = pysp_examples_dir + "farmer"
- model_dir = farmer_examples_dir + os.sep + "models"
- instance_dir = farmer_examples_dir + os.sep + "scenariodata"
- argstring = "runph --traceback -r 1.0 --solver=ipopt --solver-manager=serial --model-directory="+model_dir+" --instance-directory="+instance_dir
- print("Testing command: " + argstring)
-
- pyutilib.misc.setup_redirect(
- this_test_file_directory+"farmer_quadratic_ipopt.out")
- args = argstring.split()
- pyomo.pysp.phinit.main(args=args[1:])
- pyutilib.misc.reset_redirect()
- self.assertFileEqualsBaseline(
- this_test_file_directory+"farmer_quadratic_ipopt.out",
- baseline_dir+"farmer_quadratic_ipopt.baseline",
- filter=filter_time_and_data_dirs,
- tolerance=_diff_tolerance)
-
- def test_farmer_maximize_quadratic_gurobi(self):
- if not solver['gurobi','lp']:
- self.skipTest("The 'gurobi' executable is not available")
- farmer_examples_dir = pysp_examples_dir + "farmer"
- model_dir = farmer_examples_dir + os.sep + "maxmodels"
- instance_dir = farmer_examples_dir + os.sep + "scenariodata"
- argstring = "runph --traceback -r 1.0 --verbose --solver=gurobi --solver-manager=serial --model-directory="+model_dir+" --instance-directory="+instance_dir+" -o max"
- print("Testing command: " + argstring)
-
- pyutilib.misc.setup_redirect(
- this_test_file_directory+"farmer_maximize_quadratic_gurobi.out")
- args = argstring.split()
- pyomo.pysp.phinit.main(args=args[1:])
- pyutilib.misc.reset_redirect()
- self.assertFileEqualsBaseline(
- this_test_file_directory+"farmer_maximize_quadratic_gurobi.out",
- baseline_dir+"farmer_maximize_quadratic_gurobi.baseline",
- filter=filter_time_and_data_dirs,
- tolerance=_diff_tolerance)
-
- @unittest.category('fragile')
- def test_farmer_with_integers_quadratic_cplex(self):
- if not solver['cplex','lp']:
- self.skipTest("The 'cplex' executable is not available")
- farmer_examples_dir = pysp_examples_dir + "farmerWintegers"
- model_dir = farmer_examples_dir + os.sep + "models"
- instance_dir = farmer_examples_dir + os.sep + "scenariodata"
- argstring = "runph --traceback --solver=cplex --solver-manager=serial --model-directory="+model_dir+" --instance-directory="+instance_dir+" --default-rho=10"
- print("Testing command: " + argstring)
-
- pyutilib.misc.setup_redirect(
- this_test_file_directory+"farmer_with_integers_quadratic_cplex.out")
- args = argstring.split()
- pyomo.pysp.phinit.main(args=args[1:])
- pyutilib.misc.reset_redirect()
- self.assertFileEqualsBaseline(
- this_test_file_directory+"farmer_with_integers_quadratic_cplex.out",
- baseline_dir+"farmer_with_integers_quadratic_cplex.baseline",
- filter=filter_time_and_data_dirs,
- tolerance=_diff_tolerance)
-
- @unittest.category('fragile')
- def test_farmer_with_integers_quadratic_gurobi(self):
- if not solver['gurobi','lp']:
- self.skipTest("The 'gurobi' executable is not available")
- farmer_examples_dir = pysp_examples_dir + "farmerWintegers"
- model_dir = farmer_examples_dir + os.sep + "models"
- instance_dir = farmer_examples_dir + os.sep + "scenariodata"
- argstring = "runph --traceback --solver=gurobi --solver-manager=serial --model-directory="+model_dir+" --instance-directory="+instance_dir+" --default-rho=10"
- print("Testing command: " + argstring)
- log_output_file = this_test_file_directory+"farmer_with_integers_quadratic_gurobi.out"
- pyutilib.misc.setup_redirect(log_output_file)
- args = argstring.split()
- pyomo.pysp.phinit.main(args=args[1:])
- pyutilib.misc.reset_redirect()
- if os.sys.platform == "darwin":
- self.assertFileEqualsBaseline(
- log_output_file,
- baseline_dir+"farmer_with_integers_quadratic_gurobi_darwin.baseline",
- filter=filter_time_and_data_dirs,
- tolerance=_diff_tolerance)
- else:
- [flag_a,lineno_a,diffs_a] = pyutilib.misc.compare_file(
- log_output_file,
- baseline_dir+"farmer_with_integers_quadratic_gurobi.baseline-a",
- filter=filter_time_and_data_dirs,
- tolerance=_diff_tolerance)
- [flag_b,lineno_b,diffs_b] = pyutilib.misc.compare_file(
- log_output_file,
- baseline_dir+"farmer_with_integers_quadratic_gurobi.baseline-b",
- filter=filter_time_and_data_dirs,
- tolerance=_diff_tolerance)
- if (flag_a) and (flag_b):
- print(diffs_a)
- print(diffs_b)
- self.fail("Differences identified relative to all baseline output file alternatives")
- os.remove(log_output_file)
-
- def test_farmer_quadratic_verbose_cplex(self):
- if not solver['cplex','lp']:
- self.skipTest("The 'cplex' executable is not available")
- farmer_examples_dir = pysp_examples_dir + "farmer"
- model_dir = farmer_examples_dir + os.sep + "models"
- instance_dir = farmer_examples_dir + os.sep + "scenariodata"
- argstring = "runph --traceback -r 1.0 --solver=cplex --solver-manager=serial --verbose --model-directory="+model_dir+" --instance-directory="+instance_dir
- print("Testing command: " + argstring)
-
- pyutilib.misc.setup_redirect(
- this_test_file_directory+"farmer_quadratic_verbose_cplex.out")
- args = argstring.split()
- pyomo.pysp.phinit.main(args=args[1:])
- pyutilib.misc.reset_redirect()
- self.assertFileEqualsBaseline(
- this_test_file_directory+"farmer_quadratic_verbose_cplex.out",
- baseline_dir+"farmer_quadratic_verbose_cplex.baseline",
- filter=filter_time_and_data_dirs,
- tolerance=_diff_tolerance)
-
- def test_farmer_quadratic_verbose_gurobi(self):
- if not solver['gurobi','lp']:
- self.skipTest("The 'gurobi' executable is not available")
- farmer_examples_dir = pysp_examples_dir + "farmer"
- model_dir = farmer_examples_dir + os.sep + "models"
- instance_dir = farmer_examples_dir + os.sep + "scenariodata"
- argstring = "runph --traceback -r 1.0 --solver=gurobi --solver-manager=serial --verbose --model-directory="+model_dir+" --instance-directory="+instance_dir
- print("Testing command: " + argstring)
-
- pyutilib.misc.setup_redirect(
- this_test_file_directory+"farmer_quadratic_verbose_gurobi.out")
- args = argstring.split()
- pyomo.pysp.phinit.main(args=args[1:])
- pyutilib.misc.reset_redirect()
- self.assertFileEqualsBaseline(
- this_test_file_directory+"farmer_quadratic_verbose_gurobi.out",
- baseline_dir+"farmer_quadratic_verbose_gurobi.baseline",
- filter=filter_time_and_data_dirs,
- tolerance=_diff_tolerance)
-
- def test_farmer_quadratic_trivial_bundling_cplex(self):
- if not solver['cplex','lp']:
- self.skipTest("The 'cplex' executable is not available")
- farmer_examples_dir = pysp_examples_dir + "farmer"
- model_dir = farmer_examples_dir + os.sep + "models"
- instance_dir = farmer_examples_dir + os.sep + "scenariodataWithTrivialBundles"
- argstring = "runph --traceback -r 1.0 --solver=cplex --solver-manager=serial --verbose --model-directory="+model_dir+" --instance-directory="+instance_dir
- print("Testing command: " + argstring)
-
- pyutilib.misc.setup_redirect(
- this_test_file_directory+"farmer_quadratic_trivial_bundling_cplex.out")
- args = argstring.split()
- pyomo.pysp.phinit.main(args=args[1:])
- pyutilib.misc.reset_redirect()
- self.assertFileEqualsBaseline(
- this_test_file_directory+"farmer_quadratic_trivial_bundling_cplex.out",
- baseline_dir+"farmer_quadratic_trivial_bundling_cplex.baseline",
- filter=filter_time_and_data_dirs,
- tolerance=_diff_tolerance)
-
- def test_farmer_quadratic_trivial_bundling_gurobi(self):
- if not solver['gurobi','lp']:
- self.skipTest("The 'gurobi' executable is not available")
- farmer_examples_dir = pysp_examples_dir + "farmer"
- model_dir = farmer_examples_dir + os.sep + "models"
- instance_dir = farmer_examples_dir + os.sep + "scenariodataWithTrivialBundles"
- argstring = "runph --traceback -r 1.0 --solver=gurobi --solver-manager=serial --verbose --model-directory="+model_dir+" --instance-directory="+instance_dir
- print("Testing command: " + argstring)
-
- pyutilib.misc.setup_redirect(
- this_test_file_directory+"farmer_quadratic_trivial_bundling_gurobi.out")
- args = argstring.split()
- pyomo.pysp.phinit.main(args=args[1:])
- pyutilib.misc.reset_redirect()
- self.assertFileEqualsBaseline(
- this_test_file_directory+"farmer_quadratic_trivial_bundling_gurobi.out",
- baseline_dir+"farmer_quadratic_trivial_bundling_gurobi.baseline",
- filter=filter_time_and_data_dirs,
- tolerance=_diff_tolerance)
-
- def test_farmer_quadratic_trivial_bundling_ipopt(self):
- if not solver['ipopt','nl']:
- self.skipTest("The 'ipopt' executable is not available")
- farmer_examples_dir = pysp_examples_dir + "farmer"
- model_dir = farmer_examples_dir + os.sep + "models"
- instance_dir = farmer_examples_dir + os.sep + "scenariodataWithTrivialBundles"
- argstring = "runph --traceback -r 1.0 --solver=ipopt --solver-manager=serial --verbose --model-directory="+model_dir+" --instance-directory="+instance_dir
- print("Testing command: " + argstring)
-
- pyutilib.misc.setup_redirect(
- this_test_file_directory+"farmer_quadratic_trivial_bundling_ipopt.out")
- args = argstring.split()
- pyomo.pysp.phinit.main(args=args[1:])
- pyutilib.misc.reset_redirect()
- self.assertFileEqualsBaseline(
- this_test_file_directory+"farmer_quadratic_trivial_bundling_ipopt.out",
- baseline_dir+"farmer_quadratic_trivial_bundling_ipopt.baseline",
- filter=filter_time_and_data_dirs,
- tolerance=_diff_tolerance)
-
- def test_farmer_quadratic_basic_bundling_cplex(self):
- if not solver['cplex','lp']:
- self.skipTest("The 'cplex' executable is not available")
- farmer_examples_dir = pysp_examples_dir + "farmer"
- model_dir = farmer_examples_dir + os.sep + "models"
- instance_dir = farmer_examples_dir + os.sep + "scenariodataWithTwoBundles"
- argstring = "runph --traceback -r 1.0 --solver=cplex --solver-manager=serial --verbose --model-directory="+model_dir+" --instance-directory="+instance_dir
- print("Testing command: " + argstring)
-
- pyutilib.misc.setup_redirect(
- this_test_file_directory+"farmer_quadratic_basic_bundling_cplex.out")
- args = argstring.split()
- pyomo.pysp.phinit.main(args=args[1:])
- pyutilib.misc.reset_redirect()
- self.assertFileEqualsBaseline(
- this_test_file_directory+"farmer_quadratic_basic_bundling_cplex.out",
- baseline_dir+"farmer_quadratic_basic_bundling_cplex.baseline",
- filter=filter_time_and_data_dirs,
- tolerance=_diff_tolerance)
-
- def test_farmer_quadratic_basic_bundling_gurobi(self):
- if not solver['gurobi','lp']:
- self.skipTest("The 'gurobi' executable is not available")
- farmer_examples_dir = pysp_examples_dir + "farmer"
- model_dir = farmer_examples_dir + os.sep + "models"
- instance_dir = farmer_examples_dir + os.sep + "scenariodataWithTwoBundles"
- argstring = "runph --traceback -r 1.0 --solver=gurobi --solver-manager=serial --verbose --model-directory="+model_dir+" --instance-directory="+instance_dir
- print("Testing command: " + argstring)
-
- pyutilib.misc.setup_redirect(
- this_test_file_directory+"farmer_quadratic_basic_bundling_gurobi.out")
- args = argstring.split()
- pyomo.pysp.phinit.main(args=args[1:])
- pyutilib.misc.reset_redirect()
- self.assertFileEqualsBaseline(
- this_test_file_directory+"farmer_quadratic_basic_bundling_gurobi.out",
- baseline_dir+"farmer_quadratic_basic_bundling_gurobi.baseline",
- filter=filter_time_and_data_dirs,
- tolerance=_diff_tolerance)
-
- def test_farmer_with_rent_quadratic_cplex(self):
- if not solver['cplex','lp']:
- self.skipTest("The 'cplex' executable is not available")
- farmer_examples_dir = pysp_examples_dir + "farmerWrent"
- model_dir = farmer_examples_dir + os.sep + "models"
- instance_dir = farmer_examples_dir + os.sep + "nodedata"
- argstring = "runph --traceback -r 1.0 --solver=cplex --solver-manager=serial --model-directory="+model_dir+" --instance-directory="+instance_dir
- print("Testing command: " + argstring)
-
- pyutilib.misc.setup_redirect(
- this_test_file_directory+"farmer_with_rent_quadratic_cplex.out")
- args = argstring.split()
- pyomo.pysp.phinit.main(args=args[1:])
- pyutilib.misc.reset_redirect()
- self.assertFileEqualsBaseline(
- this_test_file_directory+"farmer_with_rent_quadratic_cplex.out",
- baseline_dir+"farmer_with_rent_quadratic_cplex.baseline",
- filter=filter_time_and_data_dirs,
- tolerance=_diff_tolerance)
-
- def test_farmer_with_rent_quadratic_gurobi(self):
- if not solver['gurobi','lp']:
- self.skipTest("The 'gurobi' executable is not available")
- farmer_examples_dir = pysp_examples_dir + "farmerWrent"
- model_dir = farmer_examples_dir + os.sep + "models"
- instance_dir = farmer_examples_dir + os.sep + "nodedata"
- argstring = "runph --traceback -r 1.0 --solver=gurobi --solver-manager=serial --model-directory="+model_dir+" --instance-directory="+instance_dir
- print("Testing command: " + argstring)
-
- pyutilib.misc.setup_redirect(
- this_test_file_directory+"farmer_with_rent_quadratic_gurobi.out")
- args = argstring.split()
- pyomo.pysp.phinit.main(args=args[1:])
- pyutilib.misc.reset_redirect()
- self.assertFileEqualsBaseline(
- this_test_file_directory+"farmer_with_rent_quadratic_gurobi.out",
- baseline_dir+"farmer_with_rent_quadratic_gurobi.baseline",
- filter=filter_time_and_data_dirs,
- tolerance=_diff_tolerance)
-
- def test_linearized_farmer_cplex(self):
- if not solver['cplex','lp']:
- self.skipTest("The 'cplex' executable is not available")
- solver_string="cplex"
- farmer_examples_dir = pysp_examples_dir + "farmer"
- model_dir = farmer_examples_dir + os.sep + "models"
- instance_dir = farmer_examples_dir + os.sep + "scenariodata"
- argstring = "runph --traceback -r 1.0 --solver="+solver_string+" --solver-manager=serial --model-directory="+model_dir+" --instance-directory="+instance_dir+" --linearize-nonbinary-penalty-terms=10"
- print("Testing command: " + argstring)
-
- pyutilib.misc.setup_redirect(
- this_test_file_directory+"farmer_linearized_cplex.out")
- args = argstring.split()
- pyomo.pysp.phinit.main(args=args[1:])
- pyutilib.misc.reset_redirect()
- self.assertFileEqualsBaseline(
- this_test_file_directory+"farmer_linearized_cplex.out",
- baseline_dir+"farmer_linearized_cplex.baseline",
- filter=filter_time_and_data_dirs,
- tolerance=_diff_tolerance)
-
- def test_linearized_farmer_cbc(self):
- if not solver['cbc','lp']:
- self.skipTest("The 'cbc' executable is not available")
- solver_string="cbc"
- farmer_examples_dir = pysp_examples_dir + "farmer"
- model_dir = farmer_examples_dir + os.sep + "models"
- instance_dir = farmer_examples_dir + os.sep + "scenariodata"
- argstring = "runph --traceback -r 1.0 --solver="+solver_string+" --solver-manager=serial --model-directory="+model_dir+" --instance-directory="+instance_dir+" --linearize-nonbinary-penalty-terms=10"
- print("Testing command: " + argstring)
-
- pyutilib.misc.setup_redirect(
- this_test_file_directory+"farmer_linearized_cbc.out")
- args = argstring.split()
- pyomo.pysp.phinit.main(args=args[1:])
- pyutilib.misc.reset_redirect()
- self.assertFileEqualsBaseline(
- this_test_file_directory+"farmer_linearized_cbc.out",
- baseline_dir+"farmer_linearized_cbc.baseline",
- filter=filter_time_and_data_dirs,
- tolerance=_diff_tolerance)
-
- def test_linearized_farmer_maximize_cplex(self):
- if not solver['cplex','lp']:
- self.skipTest("The 'cplex' executable is not available")
- solver_string="cplex"
- farmer_examples_dir = pysp_examples_dir + "farmer"
- model_dir = farmer_examples_dir + os.sep + "maxmodels"
- instance_dir = farmer_examples_dir + os.sep + "scenariodata"
- argstring = "runph --traceback -r 1.0 --solver="+solver_string+" --solver-manager=serial --model-directory="+model_dir+" --instance-directory="+instance_dir+" -o max --linearize-nonbinary-penalty-terms=10"
- print("Testing command: " + argstring)
-
- pyutilib.misc.setup_redirect(
- this_test_file_directory+"farmer_maximize_linearized_cplex.out")
- args = argstring.split()
- pyomo.pysp.phinit.main(args=args[1:])
- pyutilib.misc.reset_redirect()
- self.assertFileEqualsBaseline(
- this_test_file_directory+"farmer_maximize_linearized_cplex.out",
- baseline_dir+"farmer_maximize_linearized_cplex.baseline",
- filter=filter_time_and_data_dirs,
- tolerance=_diff_tolerance)
-
- def test_linearized_farmer_gurobi(self):
- if not solver['gurobi','lp']:
- self.skipTest("The 'gurobi' executable is not available")
- solver_string="gurobi"
- farmer_examples_dir = pysp_examples_dir + "farmer"
- model_dir = farmer_examples_dir + os.sep + "models"
- instance_dir = farmer_examples_dir + os.sep + "scenariodata"
- argstring = "runph --traceback -r 1.0 --solver="+solver_string+" --solver-manager=serial --model-directory="+model_dir+" --instance-directory="+instance_dir+" --linearize-nonbinary-penalty-terms=10"
- print("Testing command: " + argstring)
-
- pyutilib.misc.setup_redirect(
- this_test_file_directory+"farmer_linearized_gurobi.out")
- args = argstring.split()
- pyomo.pysp.phinit.main(args=args[1:])
- pyutilib.misc.reset_redirect()
- self.assertFileEqualsBaseline(
- this_test_file_directory+"farmer_linearized_gurobi.out",
- baseline_dir+"farmer_linearized_gurobi.baseline",
- filter=filter_time_and_data_dirs,
- tolerance=_diff_tolerance)
-
- def test_linearized_farmer_maximize_gurobi(self):
- if not solver['gurobi','lp']:
- self.skipTest("The 'gurobi' executable is not available")
- solver_string="gurobi"
- farmer_examples_dir = pysp_examples_dir + "farmer"
- model_dir = farmer_examples_dir + os.sep + "maxmodels"
- instance_dir = farmer_examples_dir + os.sep + "scenariodata"
- argstring = "runph --traceback -r 1.0 --solver="+solver_string+" --solver-manager=serial --model-directory="+model_dir+" --instance-directory="+instance_dir+" -o max --linearize-nonbinary-penalty-terms=10"
- print("Testing command: " + argstring)
-
- pyutilib.misc.setup_redirect(
- this_test_file_directory+"farmer_maximize_linearized_gurobi.out")
- args = argstring.split()
- pyomo.pysp.phinit.main(args=args[1:])
- pyutilib.misc.reset_redirect()
- self.assertFileEqualsBaseline(
- this_test_file_directory+"farmer_maximize_linearized_gurobi.out",
- baseline_dir+"farmer_maximize_linearized_gurobi.baseline",
- filter=filter_time_and_data_dirs,
- tolerance=_diff_tolerance)
-
- def test_linearized_farmer_nodedata_cplex(self):
- if not solver['cplex','lp']:
- self.skipTest("The 'cplex' executable is not available")
- solver_string="cplex"
- farmer_examples_dir = pysp_examples_dir + "farmer"
- model_dir = farmer_examples_dir + os.sep + "models"
- instance_dir = farmer_examples_dir + os.sep + "nodedata"
- argstring = "runph --traceback -r 1.0 --solver="+solver_string+" --solver-manager=serial --model-directory="+model_dir+" --instance-directory="+instance_dir+" --linearize-nonbinary-penalty-terms=10"
- print("Testing command: " + argstring)
-
- pyutilib.misc.setup_redirect(
- this_test_file_directory+"farmer_linearized_nodedata_cplex.out")
- args = argstring.split()
- pyomo.pysp.phinit.main(args=args[1:])
- pyutilib.misc.reset_redirect()
- self.assertFileEqualsBaseline(
- this_test_file_directory+"farmer_linearized_nodedata_cplex.out",
- baseline_dir+"farmer_linearized_nodedata_cplex.baseline",
- filter=filter_time_and_data_dirs,
- tolerance=_diff_tolerance)
-
- def test_linearized_farmer_nodedata_gurobi(self):
- if not solver['gurobi','lp']:
- self.skipTest("The 'gurobi' executable is not available")
- solver_string="gurobi"
- farmer_examples_dir = pysp_examples_dir + "farmer"
- model_dir = farmer_examples_dir + os.sep + "models"
- instance_dir = farmer_examples_dir + os.sep + "nodedata"
- argstring = "runph --traceback -r 1.0 --solver="+solver_string+" --solver-manager=serial --model-directory="+model_dir+" --instance-directory="+instance_dir+" --linearize-nonbinary-penalty-terms=10"
- print("Testing command: " + argstring)
-
- pyutilib.misc.setup_redirect(
- this_test_file_directory+"farmer_linearized_nodedata_gurobi.out")
- args = argstring.split()
- pyomo.pysp.phinit.main(args=args[1:])
- pyutilib.misc.reset_redirect()
- self.assertFileEqualsBaseline(
- this_test_file_directory+"farmer_linearized_nodedata_gurobi.out",
- baseline_dir+"farmer_linearized_nodedata_gurobi.baseline",
- filter=filter_time_and_data_dirs,
- tolerance=_diff_tolerance)
-
- def test_farmer_ef(self):
- farmer_examples_dir = pysp_examples_dir + "farmer"
- model_dir = farmer_examples_dir + os.sep + "models"
- instance_dir = farmer_examples_dir + os.sep + "scenariodata"
- ef_output_file = this_test_file_directory+"test_farmer_ef.lp"
- argstring = "runef --symbolic-solver-labels --verbose -m "+model_dir+" -s "+instance_dir+" --output-file="+ef_output_file
- print("Testing command: " + argstring)
-
- pyutilib.misc.setup_redirect(
- this_test_file_directory+"farmer_ef.out")
- args = argstring.split()
- pyomo.pysp.ef_writer_script.main(args=args[1:])
- pyutilib.misc.reset_redirect()
- self.assertFileEqualsBaseline(
- this_test_file_directory+"farmer_ef.out",
- baseline_dir+"farmer_ef.baseline.txt",
- filter=filter_time_and_data_dirs,
- tolerance=_diff_tolerance)
- self.assertFileEqualsBaseline(
- ef_output_file,
- baseline_dir+"farmer_ef.baseline.lp")
-
- def test_farmer_maximize_ef(self):
- farmer_examples_dir = pysp_examples_dir + "farmer"
- model_dir = farmer_examples_dir + os.sep + "maxmodels"
- instance_dir = farmer_examples_dir + os.sep + "scenariodata"
- ef_output_file = this_test_file_directory+"farmer_maximize_ef.lp"
- argstring = "runef --symbolic-solver-labels --verbose -m "+model_dir+" -s "+instance_dir+" -o max --output-file="+ef_output_file
- print("Testing command: " + argstring)
-
- pyutilib.misc.setup_redirect(
- this_test_file_directory+"farmer_maximize_ef.out")
- args = argstring.split()
- pyomo.pysp.ef_writer_script.main(args=args[1:])
- pyutilib.misc.reset_redirect()
- self.assertFileEqualsBaseline(
- this_test_file_directory+"farmer_maximize_ef.out",
- baseline_dir+"farmer_maximize_ef.baseline.txt",
- filter=filter_time_and_data_dirs,
- tolerance=_diff_tolerance)
- self.assertFileEqualsBaseline(
- ef_output_file,
- baseline_dir+"farmer_maximize_ef.baseline.lp")
-
- def test_farmer_piecewise_ef(self):
- farmer_examples_dir = pysp_examples_dir + "farmerWpiecewise"
- model_dir = farmer_examples_dir + os.sep + "models"
- instance_dir = farmer_examples_dir + os.sep + "nodedata"
- ef_output_file = this_test_file_directory+"test_farmer_piecewise_ef.lp"
- argstring = "runef --symbolic-solver-labels --verbose -m "+model_dir+" -s "+instance_dir+" --output-file="+ef_output_file
- print("Testing command: " + argstring)
-
- pyutilib.misc.setup_redirect(
- this_test_file_directory+"farmer_piecewise_ef.out")
- args = argstring.split()
- pyomo.pysp.ef_writer_script.main(args=args[1:])
- pyutilib.misc.reset_redirect()
- self.assertFileEqualsBaseline(
- this_test_file_directory+"farmer_piecewise_ef.out",
- baseline_dir+"farmer_piecewise_ef.baseline.txt",
- filter=filter_time_and_data_dirs,
- tolerance=_diff_tolerance)
- self.assertFileEqualsBaseline(
- ef_output_file,
- baseline_dir+"farmer_piecewise_ef.baseline.lp")
-
- def test_farmer_ef_with_solve_cplex(self):
- if not solver['cplex','lp']:
- self.skipTest("The 'cplex' executable is not available")
- farmer_examples_dir = pysp_examples_dir + "farmer"
- model_dir = farmer_examples_dir + os.sep + "models"
- instance_dir = farmer_examples_dir + os.sep + "scenariodata"
- ef_output_file = this_test_file_directory+"test_farmer_with_solve_cplex.lp"
- argstring = "runef --verbose -m "+model_dir+" -s "+instance_dir+" --output-file="+ef_output_file+" --solver=cplex --solve"
- print("Testing command: " + argstring)
- pyutilib.misc.setup_redirect(
- this_test_file_directory+"farmer_ef_with_solve_cplex.out")
- args = argstring.split()
- pyomo.pysp.ef_writer_script.main(args=args[1:])
- pyutilib.misc.reset_redirect()
- self.assertFileEqualsBaseline(
- this_test_file_directory+"farmer_ef_with_solve_cplex.out",
- baseline_dir+"farmer_ef_with_solve_cplex.baseline",
- filter=filter_time_and_data_dirs,
- tolerance=_diff_tolerance)
- self.assertTrue(os.path.exists(ef_output_file))
- os.remove(ef_output_file)
-
- def test_farmer_ef_with_solve_cplex_with_csv_writer(self):
- if not solver['cplex','lp']:
- self.skipTest("The 'cplex' executable is not available")
- farmer_examples_dir = pysp_examples_dir + "farmer"
- model_dir = farmer_examples_dir + os.sep + "models"
- instance_dir = farmer_examples_dir + os.sep + "scenariodata"
- argstring = "runef --verbose -m "+model_dir+" -s "+instance_dir+" --solver=cplex --solve --solution-writer=pyomo.pysp.plugins.csvsolutionwriter"
- print("Testing command: " + argstring)
- pyutilib.misc.setup_redirect(
- this_test_file_directory+"farmer_ef_with_solve_cplex_with_csv_writer.out")
- args = argstring.split()
- pyomo.pysp.ef_writer_script.main(args=args[1:])
- pyutilib.misc.reset_redirect()
- self.assertFileEqualsBaseline(
- this_test_file_directory+"farmer_ef_with_solve_cplex_with_csv_writer.out",
- baseline_dir+"farmer_ef_with_solve_cplex_with_csv_writer.baseline",
- filter=filter_time_and_data_dirs,
- tolerance=_diff_tolerance)
- # the following comparison is a bit weird, in that "ef.csv" is written to the current directory.
- # at present, we can't specify a directory for this file in pysp. so, we'll look for it here,
- # and if the test passes, clean up after ourselves if the test passes.
- self.assertFileEqualsBaseline(
- "ef.csv",
- baseline_dir+"farmer_ef_with_solve_cplex_with_csv_writer.csv",
- filter=filter_time_and_data_dirs,
- tolerance=_diff_tolerance)
- self.assertFileEqualsBaseline(
- "ef_StageCostDetail.csv",
- baseline_dir+"farmer_ef_with_solve_cplex_with_csv_writer_StageCostDetail.csv",
- filter=filter_time_and_data_dirs,
- tolerance=_diff_tolerance)
-
-
- def test_farmer_maximize_ef_with_solve_cplex(self):
- if not solver['cplex','lp']:
- self.skipTest("The 'cplex' executable is not available")
- farmer_examples_dir = pysp_examples_dir + "farmer"
- model_dir = farmer_examples_dir + os.sep + "maxmodels"
- instance_dir = farmer_examples_dir + os.sep + "scenariodata"
- ef_output_file = this_test_file_directory+"test_farmer_maximize_with_solve_cplex.lp"
- argstring = "runef --verbose -m "+model_dir+" -s "+instance_dir+" -o max --output-file="+ef_output_file+" --solver=cplex --solve"
- print("Testing command: " + argstring)
- pyutilib.misc.setup_redirect(
- this_test_file_directory+"farmer_maximize_ef_with_solve_cplex.out")
- args = argstring.split()
- pyomo.pysp.ef_writer_script.main(args=args[1:])
- pyutilib.misc.reset_redirect()
- self.assertFileEqualsBaseline(
- this_test_file_directory+"farmer_maximize_ef_with_solve_cplex.out",
- baseline_dir+"farmer_maximize_ef_with_solve_cplex.baseline",
- filter=filter_time_and_data_dirs,
- tolerance=_diff_tolerance)
- self.assertTrue(os.path.exists(ef_output_file))
- os.remove(ef_output_file)
-
- def test_farmer_ef_with_solve_gurobi(self):
- if not solver['gurobi','lp']:
- self.skipTest("The 'gurobi' executable is not available")
- farmer_examples_dir = pysp_examples_dir + "farmer"
- model_dir = farmer_examples_dir + os.sep + "models"
- instance_dir = farmer_examples_dir + os.sep + "scenariodata"
- ef_output_file = this_test_file_directory+"test_farmer_with_solve_gurobi.lp"
- argstring = "runef --verbose -m "+model_dir+" -s "+instance_dir+" --output-file="+ef_output_file+" --solver=gurobi --solve"
- print("Testing command: " + argstring)
-
- pyutilib.misc.setup_redirect(
- this_test_file_directory+"farmer_ef_with_solve_gurobi.out")
- args = argstring.split()
- pyomo.pysp.ef_writer_script.main(args=args[1:])
- pyutilib.misc.reset_redirect()
- self.assertFileEqualsBaseline(
- this_test_file_directory+"farmer_ef_with_solve_gurobi.out",
- baseline_dir+"farmer_ef_with_solve_gurobi.baseline",
- filter=filter_time_and_data_dirs,
- tolerance=_diff_tolerance)
- self.assertTrue(os.path.exists(ef_output_file))
- os.remove(ef_output_file)
-
- def test_farmer_maximize_ef_with_solve_gurobi(self):
- if not solver['gurobi','lp']:
- self.skipTest("The 'gurobi' executable is not available")
- farmer_examples_dir = pysp_examples_dir + "farmer"
- model_dir = farmer_examples_dir + os.sep + "maxmodels"
- instance_dir = farmer_examples_dir + os.sep + "scenariodata"
- ef_output_file = this_test_file_directory+"test_farmer_maximize_with_solve_gurobi.lp"
- argstring = "runef --verbose -m "+model_dir+" -s "+instance_dir+" -o max --output-file="+ef_output_file+" --solver=gurobi --solve"
- print("Testing command: " + argstring)
- pyutilib.misc.setup_redirect(
- this_test_file_directory+"farmer_maximize_ef_with_solve_gurobi.out")
- args = argstring.split()
- pyomo.pysp.ef_writer_script.main(args=args[1:])
- pyutilib.misc.reset_redirect()
- self.assertFileEqualsBaseline(
- this_test_file_directory+"farmer_maximize_ef_with_solve_gurobi.out",
- baseline_dir+"farmer_maximize_ef_with_solve_gurobi.baseline",
- filter=filter_time_and_data_dirs,
- tolerance=_diff_tolerance)
- self.assertTrue(os.path.exists(ef_output_file))
- os.remove(ef_output_file)
-
- def test_farmer_ef_with_solve_ipopt(self):
- if not solver['ipopt','nl']:
- self.skipTest("The 'ipopt' executable is not available")
- farmer_examples_dir = pysp_examples_dir + "farmer"
- model_dir = farmer_examples_dir + os.sep + "models"
- instance_dir = farmer_examples_dir + os.sep + "scenariodata"
- ef_output_file = this_test_file_directory+"test_farmer_with_solve_ipopt.nl"
- argstring = "runef --verbose -m "+model_dir+" -s "+instance_dir+" --output-file="+ef_output_file+" --solver=ipopt --solve"
- print("Testing command: " + argstring)
- pyutilib.misc.setup_redirect(
- this_test_file_directory+"farmer_ef_with_solve_ipopt.out")
- args = argstring.split()
- pyomo.pysp.ef_writer_script.main(args=args[1:])
- pyutilib.misc.reset_redirect()
- if os.sys.platform == "darwin":
- self.assertFileEqualsBaseline(
- this_test_file_directory+"farmer_ef_with_solve_ipopt.out",
- baseline_dir+"farmer_ef_with_solve_ipopt_darwin.baseline",
- filter=filter_time_and_data_dirs,
- tolerance=_diff_tolerance)
- else:
- self.assertFileEqualsBaseline(
- this_test_file_directory+"farmer_ef_with_solve_ipopt.out",
- baseline_dir+"farmer_ef_with_solve_ipopt.baseline",
- filter=filter_time_and_data_dirs,
- tolerance=_diff_tolerance)
- self.assertTrue(os.path.exists(ef_output_file))
- os.remove(ef_output_file)
-
- def test_hydro_ef(self):
- hydro_examples_dir = pysp_examples_dir + "hydro"
- model_dir = hydro_examples_dir + os.sep + "models"
- instance_dir = hydro_examples_dir + os.sep + "scenariodata"
- ef_output_file = this_test_file_directory+"test_hydro_ef.lp"
- argstring = "runef --symbolic-solver-labels --verbose -m "+model_dir+" -s "+instance_dir+" --output-file="+ef_output_file
- print("Testing command: " + argstring)
-
- pyutilib.misc.setup_redirect(
- this_test_file_directory+"hydro_ef.out")
- args = argstring.split()
- pyomo.pysp.ef_writer_script.main(args=args[1:])
- pyutilib.misc.reset_redirect()
- self.assertFileEqualsBaseline(
- this_test_file_directory+"hydro_ef.out",
- baseline_dir+"hydro_ef.baseline.txt",
- filter=filter_time_and_data_dirs,
- tolerance=_diff_tolerance)
- self.assertFileEqualsBaseline(
- ef_output_file,
- baseline_dir+"hydro_ef.baseline.lp")
-
- def test_sizes3_ef(self):
- sizes3_examples_dir = pysp_examples_dir + "sizes"
- model_dir = sizes3_examples_dir + os.sep + "models"
- instance_dir = sizes3_examples_dir + os.sep + "SIZES3"
- ef_output_file = this_test_file_directory+"test_sizes3_ef.lp"
- argstring = "runef --symbolic-solver-labels --verbose -m "+model_dir+" -s "+instance_dir+" --output-file="+ef_output_file
- print("Testing command: " + argstring)
-
- pyutilib.misc.setup_redirect(
- this_test_file_directory+"sizes3_ef.out")
- args = argstring.split()
- pyomo.pysp.ef_writer_script.main(args=args[1:])
- pyutilib.misc.reset_redirect()
- self.assertFileEqualsBaseline(
- this_test_file_directory+"sizes3_ef.out",
- baseline_dir+"sizes3_ef.baseline.txt",
- filter=filter_time_and_data_dirs,
- tolerance=_diff_tolerance)
- self.assertFileEqualsBaseline(
- ef_output_file,
- baseline_dir+"sizes3_ef.baseline.lp.gz")
-
- @unittest.category('fragile')
- def test_sizes3_ef_with_solve_cplex(self):
- if not solver['cplex','lp']:
- self.skipTest("The 'cplex' executable is not available")
- sizes3_examples_dir = pysp_examples_dir + "sizes"
- model_dir = sizes3_examples_dir + os.sep + "models"
- instance_dir = sizes3_examples_dir + os.sep + "SIZES3"
- ef_output_file = this_test_file_directory+"test_sizes3_ef.lp"
- argstring = "runef --verbose -m "+model_dir+" -s "+instance_dir+" --output-file="+ef_output_file+" --solver=cplex --solve"
- print("Testing command: " + argstring)
- log_output_file = this_test_file_directory+"sizes3_ef_with_solve_cplex.out"
- pyutilib.misc.setup_redirect(log_output_file)
- args = argstring.split()
- pyomo.pysp.ef_writer_script.main(args=args[1:])
- pyutilib.misc.reset_redirect()
- if os.sys.platform == "darwin":
- self.assertFileEqualsBaseline(
- log_output_file,
- baseline_dir+"sizes3_ef_with_solve_cplex_darwin.baseline",
- filter=filter_time_and_data_dirs,
- tolerance=_diff_tolerance)
- else:
- [flag_a,lineno_a,diffs_a] = pyutilib.misc.compare_file(
- log_output_file,
- baseline_dir+"sizes3_ef_with_solve_cplex.baseline-a",
- filter=filter_time_and_data_dirs,
- tolerance=_diff_tolerance)
- [flag_b,lineno_b,diffs_b] = pyutilib.misc.compare_file(
- log_output_file,
- baseline_dir+"sizes3_ef_with_solve_cplex.baseline-b",
- filter=filter_time_and_data_dirs,
- tolerance=_diff_tolerance)
- if (flag_a) and (flag_b):
- print(diffs_a)
- print(diffs_b)
- self.fail("Differences identified relative to all baseline output file alternatives")
- os.remove(log_output_file)
- self.assertTrue(os.path.exists(ef_output_file))
- os.remove(ef_output_file)
-
- @unittest.category('fragile')
- def test_sizes3_ef_with_solve_gurobi(self):
- if not solver['gurobi','lp']:
- self.skipTest("The 'gurobi' executable is not available")
- sizes3_examples_dir = pysp_examples_dir + "sizes"
- model_dir = sizes3_examples_dir + os.sep + "models"
- instance_dir = sizes3_examples_dir + os.sep + "SIZES3"
- ef_output_file = this_test_file_directory+"test_sizes3_ef.lp"
- argstring = "runef --verbose -m "+model_dir+" -s "+instance_dir+" --output-file="+ef_output_file+" --solver=gurobi --solve"
- print("Testing command: " + argstring)
- log_output_file = this_test_file_directory+"sizes3_ef_with_solve_gurobi.out"
- pyutilib.misc.setup_redirect(log_output_file)
- args = argstring.split()
- pyomo.pysp.ef_writer_script.main(args=args[1:])
- pyutilib.misc.reset_redirect()
- if os.sys.platform == "darwin":
- self.assertFileEqualsBaseline(
- log_output_file,
- baseline_dir+"sizes3_ef_with_solve_gurobi_darwin.baseline",
- filter=filter_time_and_data_dirs,
- tolerance=_diff_tolerance)
- else:
- [flag_a,lineno_a,diffs_a] = pyutilib.misc.compare_file(
- log_output_file,
- baseline_dir+"sizes3_ef_with_solve_gurobi.baseline-a",
- filter=filter_time_and_data_dirs,
- tolerance=_diff_tolerance)
- [flag_b,lineno_b,diffs_b] = pyutilib.misc.compare_file(
- log_output_file,
- baseline_dir+"sizes3_ef_with_solve_gurobi.baseline-b",
- filter=filter_time_and_data_dirs,
- tolerance=_diff_tolerance)
- if (flag_a) and (flag_b):
- print(diffs_a)
- print(diffs_b)
- self.fail("Differences identified relative to all baseline output file alternatives")
- os.remove(log_output_file)
- self.assertTrue(os.path.exists(ef_output_file))
- os.remove(ef_output_file)
-
- def test_forestry_ef(self):
- forestry_examples_dir = pysp_examples_dir + "forestry"
- model_dir = forestry_examples_dir + os.sep + "models-nb-yr"
- instance_dir = forestry_examples_dir + os.sep + "18scenarios"
- ef_output_file = this_test_file_directory+"test_forestry_ef.lp"
- argstring = "runef -o max --symbolic-solver-labels --verbose -m "+model_dir+" -s "+instance_dir+" --output-file="+ef_output_file
- print("Testing command: " + argstring)
-
- pyutilib.misc.setup_redirect(
- this_test_file_directory+"forestry_ef.out")
- args = argstring.split()
- pyomo.pysp.ef_writer_script.main(args=args[1:])
- pyutilib.misc.reset_redirect()
- self.assertFileEqualsBaseline(
- this_test_file_directory+"forestry_ef.out",
- baseline_dir+"forestry_ef.baseline.txt",
- filter=filter_time_and_data_dirs,
- tolerance=_diff_tolerance)
- self.assertFileEqualsBaseline(
- ef_output_file,
- baseline_dir+"forestry_ef.baseline.lp.gz",
- tolerance=_diff_tolerance)
-
- def test_networkflow1ef10_ef(self):
- networkflow1ef10_examples_dir = pysp_examples_dir + "networkflow"
- model_dir = networkflow1ef10_examples_dir + os.sep + "models"
- instance_dir = networkflow1ef10_examples_dir + os.sep + "1ef10"
- ef_output_file = this_test_file_directory+"test_networkflow1ef10_ef.lp"
- argstring = "runef --symbolic-solver-labels --verbose -m "+model_dir+" -s "+instance_dir+" --output-file="+ef_output_file
- print("Testing command: " + argstring)
-
- pyutilib.misc.setup_redirect(
- this_test_file_directory+"networkflow1ef10_ef.out")
- args = argstring.split()
- pyomo.pysp.ef_writer_script.main(args=args[1:])
- pyutilib.misc.reset_redirect()
- self.assertFileEqualsBaseline(
- this_test_file_directory+"networkflow1ef10_ef.out",
- baseline_dir+"networkflow1ef10_ef.baseline.txt",
- filter=filter_time_and_data_dirs,
- tolerance=_diff_tolerance)
- self.assertFileEqualsBaseline(
- ef_output_file,
- baseline_dir+"networkflow1ef10_ef.baseline.lp.gz")
-
- def test_farmer_ef_cvar(self):
- farmer_examples_dir = pysp_examples_dir + "farmer"
- model_dir = farmer_examples_dir + os.sep + "models"
- instance_dir = farmer_examples_dir + os.sep + "scenariodata"
- ef_output_file = this_test_file_directory+"test_farmer_ef_cvar.lp"
- argstring = "runef --symbolic-solver-labels --verbose --generate-weighted-cvar --risk-alpha=0.90 --cvar-weight=0.0 -m "+model_dir+" -s "+instance_dir+" --output-file="+ef_output_file
- print("Testing command: " + argstring)
-
- pyutilib.misc.setup_redirect(
- this_test_file_directory+"farmer_ef_cvar.out")
- args = argstring.split()
- pyomo.pysp.ef_writer_script.main(args=args[1:])
- pyutilib.misc.reset_redirect()
- self.assertFileEqualsBaseline(
- this_test_file_directory+"farmer_ef_cvar.out",
- baseline_dir+"farmer_ef_cvar.baseline.txt",
- filter=filter_time_and_data_dirs,
- tolerance=_diff_tolerance)
- self.assertFileEqualsBaseline(
- ef_output_file,
- baseline_dir+"farmer_ef_cvar.baseline.lp")
-
- @unittest.category('fragile')
- def test_cc_ef_networkflow1ef3_cplex(self):
- if not solver['cplex','lp']:
- self.skipTest("The 'cplex' executable is not available")
- networkflow_example_dir = pysp_examples_dir + "networkflow"
- model_dir = networkflow_example_dir + os.sep + "models-cc"
- instance_dir = networkflow_example_dir + os.sep + "1ef3-cc"
- argstring = "runef --solver=cplex -m "+model_dir+" -s "+instance_dir+ \
- " --cc-alpha=0.5" + \
- " --cc-indicator-var=delta" + \
- " --solver-options=\"mipgap=0.001\"" + \
- " --solve"
- print("Testing command: " + argstring)
- log_output_file = this_test_file_directory+"cc_ef_networkflow1ef3_cplex.out"
- pyutilib.misc.setup_redirect(log_output_file)
- args = argstring.split()
- pyomo.pysp.ef_writer_script.main(args=args[1:])
- pyutilib.misc.reset_redirect()
- [flag_a,lineno_a,diffs_a] = pyutilib.misc.compare_file(
- log_output_file,
- baseline_dir+"cc_ef_networkflow1ef3_cplex.baseline-a",
- filter=filter_time_and_data_dirs,
- tolerance=_diff_tolerance)
- [flag_b,lineno_b,diffs_b] = pyutilib.misc.compare_file(
- log_output_file,
- baseline_dir+"cc_ef_networkflow1ef3_cplex.baseline-b",
- filter=filter_time_and_data_dirs,
- tolerance=_diff_tolerance)
- if (flag_a) and (flag_b):
- print(diffs_a)
- print(diffs_b)
- self.fail("Differences identified relative to all baseline output file alternatives")
- os.remove(log_output_file)
-
- def test_lagrangian_cc_networkflow1ef3_cplex(self):
- if not solver['cplex','lp']:
- self.skipTest("The 'cplex' executable is not available")
- networkflow_example_dir = pysp_examples_dir + "networkflow"
- model_dir = networkflow_example_dir + os.sep + "models-cc"
- instance_dir = networkflow_example_dir + os.sep + "1ef3-cc"
- argstring = "drive_lagrangian_cc.py -r 1.0 --solver=cplex --model-directory="+model_dir+" --instance-directory="+instance_dir+ \
- " --alpha-min=0.5" + \
- " --alpha-max=0.5" + \
- " --ef-solver-options=\"mipgap=0.001\""
- print("Testing command: " + argstring)
-
- pyutilib.misc.setup_redirect(
- this_test_file_directory+"lagrangian_cc_networkflow1ef3_cplex.out")
- args = argstring.split()
- pyomo.pysp.drive_lagrangian_cc.run(args=args[1:])
- pyutilib.misc.reset_redirect()
- self.assertFileEqualsBaseline(
- this_test_file_directory+"lagrangian_cc_networkflow1ef3_cplex.out",
- baseline_dir+"lagrangian_cc_networkflow1ef3_cplex.baseline",
- filter=filter_time_and_data_dirs,
- tolerance=_diff_tolerance)
- self.assertTrue(os.path.exists(
- this_test_file_directory+"ScenarioList.csv"))
- os.remove(this_test_file_directory+"ScenarioList.csv")
-
- @unittest.category('fragile')
- def test_lagrangian_param_1cc_networkflow1ef3_cplex(self):
- if not solver['cplex','lp']:
- self.skipTest("The 'cplex' executable is not available")
- networkflow_example_dir = pysp_examples_dir + "networkflow"
- model_dir = networkflow_example_dir + os.sep + "models-cc"
- instance_dir = networkflow_example_dir + os.sep + "1ef3-cc"
- argstring = "lagrangeParam.py -r 1.0 --solver=cplex --model-directory="+model_dir+" --instance-directory="+instance_dir
- print("Testing command: " + argstring)
- args = argstring.split()
-
- pyutilib.misc.setup_redirect(
- this_test_file_directory+"lagrangian_param_1cc_networkflow1ef3_cplex.out")
-
- import pyomo.pysp.lagrangeParam
- pyomo.pysp.lagrangeParam.run(args=args[1:])
- pyutilib.misc.reset_redirect()
- self.assertFileEqualsBaseline(
- this_test_file_directory+"lagrangian_param_1cc_networkflow1ef3_cplex.out",
- baseline_dir+"lagrangian_param_1cc_networkflow1ef3_cplex.baseline",
- filter=filter_lagrange,
- tolerance=_diff_tolerance)
- self.assertTrue(os.path.exists(
- this_test_file_directory+"ScenarioList.csv"))
- os.remove(this_test_file_directory+"ScenarioList.csv")
- self.assertTrue(os.path.exists(
- this_test_file_directory+"OptimalSelections.csv"))
- os.remove(this_test_file_directory+"OptimalSelections.csv")
- self.assertTrue(os.path.exists(
- this_test_file_directory+"PRoptimal.csv"))
- os.remove(this_test_file_directory+"PRoptimal.csv")
-
- def test_lagrangian_morepr_1cc_networkflow1ef3_cplex(self):
- if not solver['cplex','lp']:
- self.skipTest("The 'cplex' executable is not available")
- networkflow_example_dir = pysp_examples_dir + "networkflow"
- model_dir = networkflow_example_dir + os.sep + "models-cc"
- instance_dir = networkflow_example_dir + os.sep + "1ef3-cc"
- _remove(baseline_dir+"lagrange_pr_testPRmore.csv")
- argstring = "lagrangeMorePR.py -r 1.0 --solver=cplex --model-directory="+model_dir+" --instance-directory="+instance_dir+" --csvPrefix="+baseline_dir+"lagrange_pr_test"
- print("Testing command: " + argstring)
- args = argstring.split()
-
- pyutilib.misc.setup_redirect(
- this_test_file_directory+"lagrangian_morepr_1cc_networkflow1ef3_cplex.out")
-
- import pyomo.pysp.lagrangeMorePR
- pyomo.pysp.lagrangeMorePR.run(args=args[1:])
- pyutilib.misc.reset_redirect()
- self.assertFileEqualsBaseline(
- this_test_file_directory+"lagrangian_morepr_1cc_networkflow1ef3_cplex.out",
- baseline_dir+"lagrangian_morepr_1cc_networkflow1ef3_cplex.baseline",
- filter=filter_lagrange,
- tolerance=_diff_tolerance)
- _remove(baseline_dir+"lagrange_pr_testPRmore.csv")
-
-@unittest.category('expensive', 'performance')
-class TestPHExpensive(unittest.TestCase):
-
- @classmethod
- def setUpClass(cls):
- _setUpClass(cls)
-
- def setUp(self):
- os.chdir(thisdir)
-
- def tearDown(self):
-
- # IMPT: This step is key, as Python keys off the name of the module, not the location.
- # So, different reference models in different directories won't be detected.
- # If you don't do this, the symptom is a model that doesn't have the attributes
- # that the data file expects.
- if "ReferenceModel" in sys.modules:
- del sys.modules["ReferenceModel"]
-
- def test_computeconf_networkflow1ef10_cplex(self):
- if not solver['cplex','lp']:
- self.skipTest("The 'cplex' executable is not available")
- # IMPORTANT - the following code is quite sensitive to the choice of random seed. the particular
- # seed below yields feasible sub-problem solves when computing the cost of x^ fixed
- # relative to a new sample size. without this property, you can't compute confidence
- # intervals (it means you need a bigger sample size).
- networkflow_example_dir = pysp_examples_dir + "networkflow"
- model_dir = networkflow_example_dir + os.sep + "models"
- instance_dir = networkflow_example_dir + os.sep + "1ef10"
- # the random seed is critical for reproducability - computeconf randomly partitions the scenarios into different groups
- argstring = "computeconf --solver=cplex --model-directory="+model_dir+" --instance-directory="+instance_dir+ \
- " --fraction-scenarios-for-solve=0.2"+ \
- " --number-samples-for-confidence-interval=4"+ \
- " --random-seed=125"
- print("Testing command: " + argstring)
- log_output_file = this_test_file_directory+"computeconf_networkflow1ef10_cplex.out"
- pyutilib.misc.setup_redirect(log_output_file)
- args = argstring.split()
- pyomo.pysp.computeconf.main(args=args[1:])
- pyutilib.misc.reset_redirect()
- if os.sys.platform == "darwin":
- [flag_a,lineno_a,diffs_a] = pyutilib.misc.compare_file(
- log_output_file,
- baseline_dir+"computeconf_networkflow1ef10_cplex_darwin.baseline-a",
- filter=filter_time_and_data_dirs,
- tolerance=_diff_tolerance)
- [flag_b,lineno_b,diffs_b] = pyutilib.misc.compare_file(
- log_output_file,
- baseline_dir+"computeconf_networkflow1ef10_cplex_darwin.baseline-b",
- filter=filter_time_and_data_dirs,
- tolerance=_diff_tolerance)
- if (flag_a) and (flag_b):
- print(diffs_a)
- print(diffs_b)
- self.fail("Differences identified relative to all baseline output file alternatives")
- os.remove(log_output_file)
- else:
- [flag_a,lineno_a,diffs_a] = pyutilib.misc.compare_file(
- log_output_file,
- baseline_dir+"computeconf_networkflow1ef10_cplex.baseline-a",
- filter=filter_time_and_data_dirs,
- tolerance=_diff_tolerance)
- [flag_b,lineno_b,diffs_b] = pyutilib.misc.compare_file(
- log_output_file,
- baseline_dir+"computeconf_networkflow1ef10_cplex.baseline-b",
- filter=filter_time_and_data_dirs,
- tolerance=_diff_tolerance)
- [flag_c,lineno_c,diffs_c] = pyutilib.misc.compare_file(
- log_output_file,
- baseline_dir+"computeconf_networkflow1ef10_cplex.baseline-c",
- filter=filter_time_and_data_dirs,
- tolerance=_diff_tolerance)
- if (flag_a) and (flag_b) and (flag_c):
- print(diffs_a)
- print(diffs_b)
- print(diffs_c)
- self.fail("Differences identified relative to all baseline output file alternatives")
- os.remove(log_output_file)
-
- def test_quadratic_sizes3_cplex(self):
- if (not solver['cplex','lp']) or (not yaml_available):
- self.skipTest("Either the 'cplex' executable is not "
- "available or PyYAML is not available")
- sizes_example_dir = pysp_examples_dir + "sizes"
- model_dir = sizes_example_dir + os.sep + "models"
- instance_dir = sizes_example_dir + os.sep + "SIZES3"
- argstring = "runph --traceback -r 1.0 --solver=cplex --solver-manager=serial --model-directory="+model_dir+" --instance-directory="+instance_dir+ \
- " --max-iterations=40"+ \
- " --rho-cfgfile="+sizes_example_dir+os.sep+"config"+os.sep+"rhosetter.py"+ \
- " --scenario-solver-options=mip_tolerances_integrality=1e-7"+ \
- " --enable-ww-extensions"+ \
- " --ww-extension-cfgfile="+sizes_example_dir+os.sep+"config"+os.sep+"wwph.cfg"+ \
- " --ww-extension-suffixfile="+sizes_example_dir+os.sep+"config"+os.sep+"wwph.suffixes"
- print("Testing command: " + argstring)
- log_output_file = this_test_file_directory+"sizes3_quadratic_cplex.out"
- pyutilib.misc.setup_redirect(log_output_file)
- args = argstring.split()
- pyomo.pysp.phinit.main(args=args[1:])
- pyutilib.misc.reset_redirect()
- [flag_a,lineno_a,diffs_a] = pyutilib.misc.compare_file(
- log_output_file,
- baseline_dir+"sizes3_quadratic_cplex.baseline-a",
- filter=filter_time_and_data_dirs,
- tolerance=_diff_tolerance)
- [flag_b,lineno_b,diffs_b] = pyutilib.misc.compare_file(
- log_output_file,
- baseline_dir+"sizes3_quadratic_cplex.baseline-b",
- filter=filter_time_and_data_dirs,
- tolerance=_diff_tolerance)
- [flag_c,lineno_c,diffs_c] = pyutilib.misc.compare_file(
- log_output_file,
- baseline_dir+"sizes3_quadratic_cplex.baseline-c",
- filter=filter_time_and_data_dirs,
- tolerance=_diff_tolerance)
- if (flag_a) and (flag_b) and (flag_c):
- print(diffs_a)
- print(diffs_b)
- print(diffs_c)
- self.fail("Differences identified relative to all baseline output file alternatives")
- os.remove(log_output_file)
-
- def test_quadratic_sizes3_cplex_direct(self):
- if (not solver['cplex','python']) or (not yaml_available):
- self.skipTest("The 'cplex' python solver is not "
- "available or PyYAML is not available")
- sizes_example_dir = pysp_examples_dir + "sizes"
- model_dir = sizes_example_dir + os.sep + "models"
- instance_dir = sizes_example_dir + os.sep + "SIZES3"
- argstring = "runph --traceback -r 1.0 --solver=cplex --solver-io=python --solver-manager=serial --model-directory="+model_dir+" --instance-directory="+instance_dir+ \
- " --max-iterations=40"+ \
- " --rho-cfgfile="+sizes_example_dir+os.sep+"config"+os.sep+"rhosetter.py"+ \
- " --scenario-solver-options=mip_tolerances_integrality=1e-7"+ \
- " --enable-ww-extensions"+ \
- " --ww-extension-cfgfile="+sizes_example_dir+os.sep+"config"+os.sep+"wwph.cfg"+ \
- " --ww-extension-suffixfile="+sizes_example_dir+os.sep+"config"+os.sep+"wwph.suffixes"
- print("Testing command: " + argstring)
- log_output_file = this_test_file_directory+"sizes3_quadratic_cplex_direct.out"
- pyutilib.misc.setup_redirect(log_output_file)
- args = argstring.split()
- pyomo.pysp.phinit.main(args=args[1:])
- pyutilib.misc.reset_redirect()
- [flag_a,lineno_a,diffs_a] = pyutilib.misc.compare_file(
- log_output_file,
- baseline_dir+"sizes3_quadratic_cplex_direct.baseline-a",
- filter=filter_time_and_data_dirs,
- tolerance=_diff_tolerance)
- [flag_b,lineno_b,diffs_b] = pyutilib.misc.compare_file(
- log_output_file,
- baseline_dir+"sizes3_quadratic_cplex_direct.baseline-b",
- filter=filter_time_and_data_dirs,
- tolerance=_diff_tolerance)
- [flag_c,lineno_c,diffs_c] = pyutilib.misc.compare_file(
- log_output_file,
- baseline_dir+"sizes3_quadratic_cplex_direct.baseline-c",
- filter=filter_time_and_data_dirs,
- tolerance=_diff_tolerance)
- if (flag_a) and (flag_b) and (flag_c):
- print(diffs_a)
- print(diffs_b)
- print(diffs_c)
- self.fail("Differences identified relative to all baseline output file alternatives")
- os.remove(log_output_file)
-
- def test_quadratic_sizes3_gurobi(self):
- if (not solver['gurobi','lp']) or (not yaml_available):
- self.skipTest("Either the 'gurobi' executable is not "
- "available or PyYAML is not available")
-
- sizes_example_dir = pysp_examples_dir + "sizes"
- model_dir = sizes_example_dir + os.sep + "models"
- instance_dir = sizes_example_dir + os.sep + "SIZES3"
- argstring = "runph --traceback -r 1.0 --solver=gurobi --model-directory="+model_dir+" --instance-directory="+instance_dir+ \
- " --max-iterations=40"+ \
- " --rho-cfgfile="+sizes_example_dir+os.sep+"config"+os.sep+"rhosetter.py"+ \
- " --scenario-solver-options=mip_tolerances_integrality=1e-7"+ \
- " --enable-ww-extensions"+ \
- " --ww-extension-cfgfile="+sizes_example_dir+os.sep+"config"+os.sep+"wwph.cfg"+ \
- " --ww-extension-suffixfile="+sizes_example_dir+os.sep+"config"+os.sep+"wwph.suffixes"
- print("Testing command: " + argstring)
- log_output_file = this_test_file_directory+"sizes3_quadratic_gurobi.out"
- pyutilib.misc.setup_redirect(log_output_file)
- args = argstring.split()
- pyomo.pysp.phinit.main(args=args[1:])
- pyutilib.misc.reset_redirect()
- if os.sys.platform == "darwin":
- [flag_a,lineno_a,diffs_a] = pyutilib.misc.compare_file(
- log_output_file,
- baseline_dir+"sizes3_quadratic_gurobi_darwin.baseline-a",
- filter=filter_time_and_data_dirs,
- tolerance=_diff_tolerance)
- [flag_b,lineno_b,diffs_b] = pyutilib.misc.compare_file(
- log_output_file,
- baseline_dir+"sizes3_quadratic_gurobi_darwin.baseline-b",
- filter=filter_time_and_data_dirs,
- tolerance=_diff_tolerance)
- if (flag_a) and (flag_b):
- print(diffs_a)
- print(diffs_b)
- self.fail("Differences identified relative to all baseline output file alternatives")
- os.remove(log_output_file)
- else:
- [flag_a,lineno_a,diffs_a] = pyutilib.misc.compare_file(
- log_output_file,
- baseline_dir+"sizes3_quadratic_gurobi.baseline-a",
- filter=filter_time_and_data_dirs,
- tolerance=_diff_tolerance)
- [flag_b,lineno_b,diffs_b] = pyutilib.misc.compare_file(
- log_output_file,
- baseline_dir+"sizes3_quadratic_gurobi.baseline-b",
- filter=filter_time_and_data_dirs,
- tolerance=_diff_tolerance)
- [flag_c,lineno_c,diffs_c] = pyutilib.misc.compare_file(
- log_output_file,
- baseline_dir+"sizes3_quadratic_gurobi.baseline-c",
- filter=filter_time_and_data_dirs,
- tolerance=_diff_tolerance)
- if (flag_a) and (flag_b) and (flag_c):
- print(diffs_a)
- print(diffs_b)
- print(diffs_c)
- self.fail("Differences identified relative to all baseline output file alternatives")
- os.remove(log_output_file)
-
- def test_sizes10_quadratic_twobundles_cplex(self):
- if not solver['cplex','lp']:
- self.skipTest("The 'cplex' executable is not available")
- sizes_example_dir = pysp_examples_dir + "sizes"
- model_dir = sizes_example_dir + os.sep + "models"
- instance_dir = sizes_example_dir + os.sep + "SIZES10WithTwoBundles"
- argstring = "runph --traceback -r 1.0 --solver=cplex --solver-manager=serial --model-directory="+model_dir+" --instance-directory="+instance_dir+ \
- " --max-iterations=10"
- print("Testing command: " + argstring)
- log_output_file = this_test_file_directory+"sizes10_quadratic_twobundles_cplex.out"
- pyutilib.misc.setup_redirect(log_output_file)
- args = argstring.split()
- pyomo.pysp.phinit.main(args=args[1:])
- pyutilib.misc.reset_redirect()
- [flag_a,lineno_a,diffs_a] = pyutilib.misc.compare_file(
- log_output_file,
- baseline_dir+"sizes10_quadratic_twobundles_cplex.baseline-a",
- filter=filter_time_and_data_dirs)
- [flag_b,lineno_b,diffs_b] = pyutilib.misc.compare_file(
- log_output_file,
- baseline_dir+"sizes10_quadratic_twobundles_cplex.baseline-b",
- filter=filter_time_and_data_dirs)
- if (flag_a) and (flag_b):
- print(diffs_a)
- print(diffs_b)
- self.fail("Differences identified relative to all baseline output file alternatives")
- os.remove(log_output_file)
-
- def test_sizes10_quadratic_twobundles_gurobi(self):
- if not solver['gurobi','lp']:
- self.skipTest("The 'gurobi' executable is not available")
- sizes_example_dir = pysp_examples_dir + "sizes"
- model_dir = sizes_example_dir + os.sep + "models"
- instance_dir = sizes_example_dir + os.sep + "SIZES10WithTwoBundles"
- argstring = "runph --traceback -r 1.0 --solver=gurobi --solver-manager=serial --model-directory="+model_dir+" --instance-directory="+instance_dir+ \
- " --max-iterations=10"
- print("Testing command: " + argstring)
- log_output_file = this_test_file_directory+"sizes10_quadratic_twobundles_gurobi.out"
- pyutilib.misc.setup_redirect(log_output_file)
- args = argstring.split()
- pyomo.pysp.phinit.main(args=args[1:])
- pyutilib.misc.reset_redirect()
- if os.sys.platform == "darwin":
- self.assertFileEqualsBaseline(
- log_output_file,
- baseline_dir+"sizes10_quadratic_twobundles_gurobi_darwin.baseline",
- filter=filter_time_and_data_dirs,
- tolerance=_diff_tolerance_relaxed)
- else:
- self.assertFileEqualsBaseline(
- log_output_file,
- baseline_dir+"sizes10_quadratic_twobundles_gurobi.baseline",
- filter=filter_time_and_data_dirs,
- tolerance=_diff_tolerance_relaxed)
- # dlw, Feb 2018; just checking for a stack trace (no baseline)
- def test_sorgw_sizes3_cplex(self):
- if not solver['cplex','lp']:
- self.skipTest("The 'cplex' executable is not available")
- sizes_example_dir = pysp_examples_dir + "sizes"
- model_dir = sizes_example_dir + os.sep + "models"
- instance_dir = sizes_example_dir + os.sep + "SIZES3"
- argstring = "runph --traceback -r 100.0 --solver=cplex --solver-manager=serial --model-directory="+model_dir+" --instance-directory="+instance_dir+ \
- " --max-iterations=5 --user-defined-extension=pyomo.pysp.plugins.sorgw"
- print("Testing command: " + argstring)
- log_output_file = this_test_file_directory+"sorgw_sizes3_cplex.out"
- pyutilib.misc.setup_redirect(log_output_file)
- args = argstring.split()
- pyomo.pysp.phinit.main(args=args[1:])
- pyutilib.misc.reset_redirect()
- os.remove(log_output_file)
- # these files should be here if all is OK
- os.remove(this_test_file_directory+"winterest.ssv")
- os.remove(this_test_file_directory+"wsummary.ssv")
- #
- def test_quadratic_networkflow1ef10_cplex(self):
- if not solver['cplex','lp']:
- self.skipTest("The 'cplex' executable is not available")
- networkflow_example_dir = pysp_examples_dir + "networkflow"
- model_dir = networkflow_example_dir + os.sep + "models"
- instance_dir = networkflow_example_dir + os.sep + "1ef10"
- argstring = "runph --traceback -r 1.0 --solver=cplex --model-directory="+model_dir+" --instance-directory="+instance_dir+ \
- " --max-iterations=20"+ \
- " --rho-cfgfile="+networkflow_example_dir+os.sep+"config"+os.sep+"rhosettermixed.py"+ \
- " --enable-ww-extensions"+ \
- " --ww-extension-cfgfile="+networkflow_example_dir+os.sep+"config"+os.sep+"wwph-immediatefixing.cfg"
- print("Testing command: " + argstring)
- log_output_file = this_test_file_directory+"networkflow1ef10_quadratic_cplex.out"
- pyutilib.misc.setup_redirect(log_output_file)
- args = argstring.split()
- pyomo.pysp.phinit.main(args=args[1:])
- pyutilib.misc.reset_redirect()
- if os.sys.platform == "darwin":
- self.assertFileEqualsBaseline(
- log_output_file,
- baseline_dir+"networkflow1ef10_quadratic_cplex_darwin.baseline",
- filter=filter_time_and_data_dirs,
- tolerance=_diff_tolerance)
- else:
- [flag_a,lineno_a,diffs_a] = pyutilib.misc.compare_file(
- log_output_file,
- baseline_dir+"networkflow1ef10_quadratic_cplex.baseline-a",
- filter=filter_time_and_data_dirs,
- tolerance=_diff_tolerance)
- [flag_b,lineno_b,diffs_b] = pyutilib.misc.compare_file(
- log_output_file,
- baseline_dir+"networkflow1ef10_quadratic_cplex.baseline-b",
- filter=filter_time_and_data_dirs,
- tolerance=_diff_tolerance)
- if (flag_a) and (flag_b):
- print(diffs_a)
- print(diffs_b)
- self.fail("Differences identified relative to all baseline output file alternatives")
- os.remove(log_output_file)
-
- def test_quadratic_networkflow1ef10_gurobi(self):
- if not solver['gurobi','lp']:
- self.skipTest("The 'gurobi' executable is not available")
- networkflow_example_dir = pysp_examples_dir + "networkflow"
- model_dir = networkflow_example_dir + os.sep + "models"
- instance_dir = networkflow_example_dir + os.sep + "1ef10"
- argstring = "runph --traceback -r 1.0 --solver=gurobi --model-directory="+model_dir+" --instance-directory="+instance_dir+ \
- " --max-iterations=20"+ \
- " --rho-cfgfile="+networkflow_example_dir+os.sep+"config"+os.sep+"rhosettermixed.py"+ \
- " --enable-ww-extensions"+ \
- " --ww-extension-cfgfile="+networkflow_example_dir+os.sep+"config"+os.sep+"wwph-immediatefixing.cfg"
- print("Testing command: " + argstring)
- log_output_file = this_test_file_directory+"networkflow1ef10_quadratic_gurobi.out"
- pyutilib.misc.setup_redirect(log_output_file)
- args = argstring.split()
- pyomo.pysp.phinit.main(args=args[1:])
- pyutilib.misc.reset_redirect()
- if os.sys.platform == "darwin":
- self.assertFileEqualsBaseline(
- log_output_file,
- baseline_dir+"networkflow1ef10_quadratic_gurobi_darwin.baseline",
- filter=filter_time_and_data_dirs,
- tolerance=_diff_tolerance)
- else:
- [flag_a,lineno_a,diffs_a] = pyutilib.misc.compare_file(
- log_output_file,
- baseline_dir+"networkflow1ef10_quadratic_gurobi.baseline-a",
- filter=filter_time_and_data_dirs,
- tolerance=_diff_tolerance)
- [flag_b,lineno_b,diffs_b] = pyutilib.misc.compare_file(
- log_output_file,
- baseline_dir+"networkflow1ef10_quadratic_gurobi.baseline-b",
- filter=filter_time_and_data_dirs,
- tolerance=_diff_tolerance)
- if (flag_a) and (flag_b):
- print(diffs_a)
- print(diffs_b)
- self.fail("Differences identified relative to all baseline output file alternatives")
- os.remove(log_output_file)
-
- def test_linearized_networkflow1ef10_cplex(self):
- if not solver['cplex','lp']:
- self.skipTest("The 'cplex' executable is not available")
- networkflow_example_dir = pysp_examples_dir + "networkflow"
- model_dir = networkflow_example_dir + os.sep + "models"
- instance_dir = networkflow_example_dir + os.sep + "1ef10"
- argstring = "runph --traceback -r 1.0 --solver=cplex --model-directory="+model_dir+" --instance-directory="+instance_dir+ \
- " --max-iterations=10"+ \
- " --rho-cfgfile="+networkflow_example_dir+os.sep+"config"+os.sep+"rhosettermixed.py"+ \
- " --linearize-nonbinary-penalty-terms=8"+ \
- " --bounds-cfgfile="+networkflow_example_dir+os.sep+"config"+os.sep+"xboundsetter.py"+ \
- " --aggregate-cfgfile="+networkflow_example_dir+os.sep+"config"+os.sep+"aggregategetter.py"
- print("Testing command: " + argstring)
- log_output_file = this_test_file_directory+"networkflow1ef10_linearized_cplex.out"
- pyutilib.misc.setup_redirect(log_output_file)
- args = argstring.split()
- pyomo.pysp.phinit.main(args=args[1:])
- pyutilib.misc.reset_redirect()
- if os.sys.platform == "darwin":
- self.assertFileEqualsBaseline(
- log_output_file,
- baseline_dir+"networkflow1ef10_linearized_cplex_darwin.baseline",
- filter=filter_time_and_data_dirs,
- tolerance=_diff_tolerance)
- else:
- [flag_a,lineno_a,diffs_a] = pyutilib.misc.compare_file(
- log_output_file,
- baseline_dir+"networkflow1ef10_linearized_cplex.baseline-a",
- filter=filter_time_and_data_dirs,
- tolerance=_diff_tolerance)
- [flag_b,lineno_b,diffs_b] = pyutilib.misc.compare_file(
- log_output_file,
- baseline_dir+"networkflow1ef10_linearized_cplex.baseline-b",
- filter=filter_time_and_data_dirs,
- tolerance=_diff_tolerance)
- if (flag_a) and (flag_b):
- print(diffs_a)
- print(diffs_b)
- self.fail("Differences identified relative to all baseline output file alternatives")
- os.remove(log_output_file)
-
- def test_linearized_networkflow1ef10_gurobi(self):
- if not solver['gurobi','lp']:
- self.skipTest("The 'gurobi' executable is not available")
- networkflow_example_dir = pysp_examples_dir + "networkflow"
- model_dir = networkflow_example_dir + os.sep + "models"
- instance_dir = networkflow_example_dir + os.sep + "1ef10"
- argstring = "runph --traceback -r 1.0 --solver=gurobi --model-directory="+model_dir+" --instance-directory="+instance_dir+ \
- " --max-iterations=10"+ \
- " --rho-cfgfile="+networkflow_example_dir+os.sep+"config"+os.sep+"rhosettermixed.py"+ \
- " --linearize-nonbinary-penalty-terms=8"+ \
- " --bounds-cfgfile="+networkflow_example_dir+os.sep+"config"+os.sep+"xboundsetter.py"+ \
- " --aggregate-cfgfile="+networkflow_example_dir+os.sep+"config"+os.sep+"aggregategetter.py"
- print("Testing command: " + argstring)
- log_output_file = this_test_file_directory+"networkflow1ef10_linearized_gurobi.out"
- pyutilib.misc.setup_redirect(log_output_file)
- args = argstring.split()
- pyomo.pysp.phinit.main(args=args[1:])
- pyutilib.misc.reset_redirect()
- if os.sys.platform == "darwin":
- self.assertFileEqualsBaseline(
- log_output_file,
- baseline_dir+"networkflow1ef10_linearized_gurobi_darwin.baseline",
- filter=filter_time_and_data_dirs,
- tolerance=_diff_tolerance)
- else:
- [flag_a,lineno_a,diffs_a] = pyutilib.misc.compare_file(
- log_output_file,
- baseline_dir+"networkflow1ef10_linearized_gurobi.baseline-a",
- filter=filter_time_and_data_dirs,
- tolerance=_diff_tolerance)
- [flag_b,lineno_b,diffs_b] = pyutilib.misc.compare_file(
- log_output_file,
- baseline_dir+"networkflow1ef10_linearized_gurobi.baseline-b",
- filter=filter_time_and_data_dirs,
- tolerance=_diff_tolerance)
- if (flag_a) and (flag_b):
- print(diffs_a)
- print(diffs_b)
- self.fail("Differences identified relative to all baseline output file alternatives")
- os.remove(log_output_file)
-
- def test_linearized_forestry_cplex(self):
- if (not solver['cplex','lp']) or (not yaml_available):
- self.skipTest("Either the 'cplex' executable is not "
- "available or PyYAML is not available")
-
- forestry_example_dir = pysp_examples_dir + "forestry"
- model_dir = forestry_example_dir + os.sep + "models-nb-yr"
- instance_dir = forestry_example_dir + os.sep + "18scenarios"
- argstring = "runph --traceback -o max --solver=cplex --model-directory="+model_dir+" --instance-directory="+instance_dir+ \
- " --max-iterations=10" + " --scenario-mipgap=0.05" + " --default-rho=0.001" + \
- " --rho-cfgfile="+forestry_example_dir+os.sep+"config"+os.sep+"rhosetter.py"+ \
- " --linearize-nonbinary-penalty-terms=2"+ \
- " --bounds-cfgfile="+forestry_example_dir+os.sep+"config"+os.sep+"boundsetter.py" + \
- " --enable-ww-extension" + " --ww-extension-cfgfile="+forestry_example_dir+os.sep+"config"+os.sep+"wwph.cfg" + \
- " --ww-extension-suffixfile="+forestry_example_dir+os.sep+"config"+os.sep+"wwph-nb.suffixes" + \
- " --solve-ef"
- print("Testing command: " + argstring)
- log_output_file = this_test_file_directory+"forestry_linearized_cplex.out"
- pyutilib.misc.setup_redirect(log_output_file)
- args = argstring.split()
- pyomo.pysp.phinit.main(args=args[1:])
- pyutilib.misc.reset_redirect()
- if os.sys.platform == "darwin":
- self.assertFileEqualsBaseline(
- log_output_file,
- baseline_dir+"forestry_linearized_cplex_darwin.baseline",
- filter=filter_time_and_data_dirs,
- tolerance=_diff_tolerance)
- else:
- [flag_a,lineno_a,diffs_a] = pyutilib.misc.compare_file(
- log_output_file,
- baseline_dir+"forestry_linearized_cplex.baseline-a",
- filter=filter_time_and_data_dirs,
- tolerance=_diff_tolerance)
- [flag_b,lineno_b,diffs_b] = pyutilib.misc.compare_file(
- log_output_file,
- baseline_dir+"forestry_linearized_cplex.baseline-b",
- filter=filter_time_and_data_dirs,
- tolerance=_diff_tolerance)
- if (flag_a) and (flag_b):
- print(diffs_a)
- print(diffs_b)
- self.fail("Differences identified relative to all baseline output file alternatives")
- os.remove(log_output_file)
-
- def test_linearized_forestry_gurobi(self):
- if (not solver['gurobi','lp']) or (not yaml_available):
- self.skipTest("Either the 'gurobi' executable is not "
- "available or PyYAML is not available")
-
- forestry_example_dir = pysp_examples_dir + "forestry"
- model_dir = forestry_example_dir + os.sep + "models-nb-yr"
- instance_dir = forestry_example_dir + os.sep + "18scenarios"
- argstring = "runph --traceback -o max --solver=gurobi --model-directory="+model_dir+" --instance-directory="+instance_dir+ \
- " --max-iterations=10" + " --scenario-mipgap=0.05" + " --default-rho=0.001" + \
- " --rho-cfgfile="+forestry_example_dir+os.sep+"config"+os.sep+"rhosetter.py"+ \
- " --linearize-nonbinary-penalty-terms=2"+ \
- " --bounds-cfgfile="+forestry_example_dir+os.sep+"config"+os.sep+"boundsetter.py" + \
- " --enable-ww-extension" + " --ww-extension-cfgfile="+forestry_example_dir+os.sep+"config"+os.sep+"wwph.cfg" + \
- " --ww-extension-suffixfile="+forestry_example_dir+os.sep+"config"+os.sep+"wwph-nb.suffixes" + \
- " --solve-ef"
- print("Testing command: " + argstring)
- log_output_file = this_test_file_directory+"forestry_linearized_gurobi.out"
- pyutilib.misc.setup_redirect(log_output_file)
- args = argstring.split()
- pyomo.pysp.phinit.main(args=args[1:])
- pyutilib.misc.reset_redirect()
- if os.sys.platform == "darwin":
- self.assertFileEqualsBaseline(
- log_output_file,
- baseline_dir+"forestry_linearized_gurobi_darwin.baseline",
- filter=filter_time_and_data_dirs,
- tolerance=_diff_tolerance)
- else:
- self.assertFileEqualsBaseline(
- log_output_file,
- baseline_dir+"forestry_linearized_gurobi.baseline",
- filter=filter_time_and_data_dirs,
- tolerance=_diff_tolerance)
-
-@unittest.skipIf(not (using_pyro3 or using_pyro4), "Pyro or Pyro4 is not available")
-@unittest.category('parallel','performance')
-class TestPHParallel(unittest.TestCase):
-
- @classmethod
- def setUpClass(cls):
- _setUpClass(cls)
-
- def setUp(self):
- os.chdir(thisdir)
- _setUpModule()
- self._taskworker_processes = []
-
- def tearDown(self):
- try:
- [_poll(proc) for proc in self._taskworker_processes]
- finally:
- [_kill(proc) for proc in self._taskworker_processes]
- self._taskworker_processes = []
- # IMPT: This step is key, as Python keys off the name of the module, not the location.
- # So, different reference models in different directories won't be detected.
- # If you don't do this, the symptom is a model that doesn't have the attributes
- # that the data file expects.
- if "ReferenceModel" in sys.modules:
- del sys.modules["ReferenceModel"]
-
- def _setup_pyro_mip_server(self, count):
- assert len(self._taskworker_processes) == 0
- for i in range(count):
- self._taskworker_processes.append(
- subprocess.Popen(["pyro_mip_server", "--traceback"] + \
- ["--pyro-host="+str(_pyomo_ns_host)] + \
- ["--pyro-port="+str(_pyomo_ns_port)]))
-
- def _setup_phsolverserver(self, count):
- assert len(self._taskworker_processes) == 0
- for i in range(count):
- self._taskworker_processes.append(
- subprocess.Popen(["phsolverserver", "--traceback"] + \
- ["--pyro-host="+str(_pyomo_ns_host)] + \
- ["--pyro-port="+str(_pyomo_ns_port)]))
-
- def test_farmer_quadratic_cplex_with_pyro(self):
- if not solver['cplex','lp']:
- self.skipTest("The 'cplex' executable is not available")
- farmer_examples_dir = pysp_examples_dir + "farmer"
- model_dir = farmer_examples_dir + os.sep + "models"
- instance_dir = farmer_examples_dir + os.sep + "scenariodata"
- self._setup_pyro_mip_server(3)
- argstring = "runph --pyro-port="+str(_pyomo_ns_port)+" --pyro-host="+str(_pyomo_ns_host)+" --traceback -r 1.0 --solver=cplex --scenario-solver-options=\"threads=1\" --solver-manager=pyro --shutdown-pyro-workers --model-directory="+model_dir+" --instance-directory="+instance_dir+" > "+this_test_file_directory+"farmer_quadratic_cplex_with_pyro.out 2>&1"
- print("Testing command: " + argstring)
-
- _run_cmd(argstring, shell=True)
- self.assertFileEqualsBaseline(
- this_test_file_directory+"farmer_quadratic_cplex_with_pyro.out",
- baseline_dir+"farmer_quadratic_cplex_with_pyro.baseline",
- filter=filter_pyro)
-
- @unittest.category('fragile')
- def test_farmer_quadratic_cplex_with_phpyro(self):
- if not solver['cplex','lp']:
- self.skipTest("The 'cplex' executable is not available")
-
- farmer_examples_dir = pysp_examples_dir + "farmer"
- model_dir = farmer_examples_dir + os.sep + "models"
- instance_dir = farmer_examples_dir + os.sep + "scenariodata"
- self._setup_phsolverserver(3)
- argstring = "runph --pyro-port="+str(_pyomo_ns_port)+" --pyro-host="+str(_pyomo_ns_host)+" --traceback -r 1.0 --handshake-with-phpyro --solver=cplex --scenario-solver-options=\"threads=1\" --solver-manager=phpyro --shutdown-pyro-workers --model-directory="+model_dir+" --instance-directory="+instance_dir+" > "+this_test_file_directory+"farmer_quadratic_cplex_with_phpyro.out 2>&1"
- print("Testing command: " + argstring)
-
- _run_cmd(argstring, shell=True)
- self.assertFileEqualsBaseline(
- this_test_file_directory+"farmer_quadratic_cplex_with_phpyro.out",
- baseline_dir+"farmer_quadratic_cplex_with_phpyro.baseline",
- filter=filter_pyro)
-
- def test_farmer_quadratic_with_bundles_cplex_with_pyro(self):
- if not solver['cplex','lp']:
- self.skipTest("The 'cplex' executable is not available")
-
- farmer_examples_dir = pysp_examples_dir + "farmer"
- model_dir = farmer_examples_dir + os.sep + "models"
- instance_dir = farmer_examples_dir + os.sep + "scenariodataWithTwoBundles"
- self._setup_pyro_mip_server(3)
- argstring = "runph --pyro-port="+str(_pyomo_ns_port)+" --pyro-host="+str(_pyomo_ns_host)+" --traceback -r 1.0 --solver=cplex --scenario-solver-options=\"threads=1\" --solver-manager=pyro --shutdown-pyro-workers --model-directory="+model_dir+" --instance-directory="+instance_dir+" > "+this_test_file_directory+"farmer_quadratic_with_bundles_cplex_with_pyro.out 2>&1"
- print("Testing command: " + argstring)
-
- _run_cmd(argstring, shell=True)
- self.assertFileEqualsBaseline(
- this_test_file_directory+"farmer_quadratic_with_bundles_cplex_with_pyro.out",
- baseline_dir+"farmer_quadratic_with_bundles_cplex_with_pyro.baseline",
- filter=filter_pyro)
-
- def test_farmer_quadratic_gurobi_with_phpyro(self):
- if not solver['gurobi','lp']:
- self.skipTest("The 'gurobi' executable is not available")
-
- farmer_examples_dir = pysp_examples_dir + "farmer"
- model_dir = farmer_examples_dir + os.sep + "models"
- instance_dir = farmer_examples_dir + os.sep + "scenariodata"
- self._setup_phsolverserver(3)
- argstring = "runph --pyro-port="+str(_pyomo_ns_port)+" --pyro-host="+str(_pyomo_ns_host)+" --traceback -r 1.0 --solver=gurobi --solver-manager=phpyro --shutdown-pyro-workers --model-directory="+model_dir+" --instance-directory="+instance_dir+" > "+this_test_file_directory+"farmer_quadratic_gurobi_with_phpyro.out 2>&1"
- print("Testing command: " + argstring)
-
- _run_cmd(argstring, shell=True)
- self.assertFileEqualsBaseline(
- this_test_file_directory+"farmer_quadratic_gurobi_with_phpyro.out",
- baseline_dir+"farmer_quadratic_gurobi_with_phpyro.baseline",
- filter=filter_pyro)
-
- def test_farmer_linearized_gurobi_with_phpyro(self):
- if not solver['gurobi','lp']:
- self.skipTest("The 'gurobi' executable is not available")
-
- farmer_examples_dir = pysp_examples_dir + "farmer"
- model_dir = farmer_examples_dir + os.sep + "models"
- instance_dir = farmer_examples_dir + os.sep + "scenariodata"
- self._setup_phsolverserver(3)
- argstring = "runph --pyro-port="+str(_pyomo_ns_port)+" --pyro-host="+str(_pyomo_ns_host)+" --traceback -r 1.0 --linearize-nonbinary-penalty-terms=10 --solver=gurobi --solver-manager=phpyro --shutdown-pyro-workers --model-directory="+model_dir+" --instance-directory="+instance_dir+" > "+this_test_file_directory+"farmer_linearized_gurobi_with_phpyro.out 2>&1"
- print("Testing command: " + argstring)
-
- _run_cmd(argstring, shell=True)
- self.assertFileEqualsBaseline(
- this_test_file_directory+"farmer_linearized_gurobi_with_phpyro.out",
- baseline_dir+"farmer_linearized_gurobi_with_phpyro.baseline",
- filter=filter_pyro)
-
- @unittest.category('fragile')
- def test_farmer_quadratic_ipopt_with_pyro(self):
- if not solver['ipopt','nl']:
- self.skipTest("The 'ipopt' executable is not available")
-
- farmer_examples_dir = pysp_examples_dir + "farmer"
- model_dir = farmer_examples_dir + os.sep + "models"
- instance_dir = farmer_examples_dir + os.sep + "scenariodata"
- self._setup_pyro_mip_server(3)
- argstring = "runph --pyro-port="+str(_pyomo_ns_port)+" --pyro-host="+str(_pyomo_ns_host)+" --traceback -r 1.0 --solver=ipopt --solver-manager=pyro --shutdown-pyro-workers --model-directory="+model_dir+" --instance-directory="+instance_dir+" > "+this_test_file_directory+"farmer_quadratic_ipopt_with_pyro.out 2>&1"
- print("Testing command: " + argstring)
-
- _run_cmd(argstring, shell=True)
- self.assertFileEqualsBaseline(
- this_test_file_directory+"farmer_quadratic_ipopt_with_pyro.out",
- baseline_dir+"farmer_quadratic_ipopt_with_pyro.baseline",
- filter=filter_pyro,
- tolerance=_diff_tolerance)
-
- @unittest.category('fragile')
- def test_farmer_quadratic_ipopt_with_phpyro(self):
- if not solver['ipopt','nl']:
- self.skipTest("The 'ipopt' executable is not available")
-
- farmer_examples_dir = pysp_examples_dir + "farmer"
- model_dir = farmer_examples_dir + os.sep + "models"
- instance_dir = farmer_examples_dir + os.sep + "scenariodata"
- self._setup_phsolverserver(3)
- argstring = "runph --pyro-port="+str(_pyomo_ns_port)+" --pyro-host="+str(_pyomo_ns_host)+" --traceback -r 1.0 --solver=ipopt --solver-manager=phpyro --shutdown-pyro-workers --model-directory="+model_dir+" --instance-directory="+instance_dir+" > "+this_test_file_directory+"farmer_quadratic_ipopt_with_phpyro.out 2>&1"
- print("Testing command: " + argstring)
-
- _run_cmd(argstring, shell=True)
- self.assertFileEqualsBaseline(
- this_test_file_directory+"farmer_quadratic_ipopt_with_phpyro.out",
- baseline_dir+"farmer_quadratic_ipopt_with_phpyro.baseline",
- filter=filter_pyro,
- tolerance=_diff_tolerance)
-
- @unittest.category('fragile')
- def test_farmer_linearized_ipopt_with_phpyro(self):
- if not solver['ipopt','nl']:
- self.skipTest("The 'ipopt' executable is not available")
-
- farmer_examples_dir = pysp_examples_dir + "farmer"
- model_dir = farmer_examples_dir + os.sep + "models"
- instance_dir = farmer_examples_dir + os.sep + "scenariodata"
- self._setup_phsolverserver(3)
- argstring = "runph --pyro-port="+str(_pyomo_ns_port)+" --pyro-host="+str(_pyomo_ns_host)+" --traceback -r 1.0 --linearize-nonbinary-penalty-terms=10 --solver=ipopt --solver-manager=phpyro --shutdown-pyro-workers --model-directory="+model_dir+" --instance-directory="+instance_dir+" > "+this_test_file_directory+"farmer_linearized_ipopt_with_phpyro.out 2>&1"
- print("Testing command: " + argstring)
-
- _run_cmd(argstring, shell=True)
- self.assertFileEqualsBaseline(
- this_test_file_directory+"farmer_linearized_ipopt_with_phpyro.out",
- baseline_dir+"farmer_linearized_ipopt_with_phpyro.baseline",
- filter=filter_pyro,
- tolerance=_diff_tolerance)
-
- @unittest.category('fragile')
- def test_farmer_quadratic_trivial_bundling_ipopt_with_phpyro(self):
- if not solver['ipopt','nl']:
- self.skipTest("The 'ipopt' executable is not available")
-
- farmer_examples_dir = pysp_examples_dir + "farmer"
- model_dir = farmer_examples_dir + os.sep + "models"
- instance_dir = farmer_examples_dir + os.sep + "scenariodataWithTrivialBundles"
- self._setup_phsolverserver(3)
- argstring = "runph --pyro-port="+str(_pyomo_ns_port)+" --pyro-host="+str(_pyomo_ns_host)+" --traceback -r 1.0 --solver=ipopt --solver-manager=phpyro --shutdown-pyro-workers --model-directory="+model_dir+" --instance-directory="+instance_dir+" > "+this_test_file_directory+"farmer_quadratic_trivial_bundling_ipopt_with_phpyro.out 2>&1"
- print("Testing command: " + argstring)
-
- _run_cmd(argstring, shell=True)
- self.assertFileEqualsBaseline(
- this_test_file_directory+"farmer_quadratic_trivial_bundling_ipopt_with_phpyro.out",
- baseline_dir+"farmer_quadratic_trivial_bundling_ipopt_with_phpyro.baseline",
- filter=filter_pyro)
-
- @unittest.category('fragile')
- def test_farmer_quadratic_bundling_ipopt_with_phpyro(self):
- if not solver['ipopt','nl']:
- self.skipTest("The 'ipopt' executable is not available")
-
- farmer_examples_dir = pysp_examples_dir + "farmer"
- model_dir = farmer_examples_dir + os.sep + "models"
- instance_dir = farmer_examples_dir + os.sep + "scenariodataWithTwoBundles"
- self._setup_phsolverserver(2)
- argstring = "runph --pyro-port="+str(_pyomo_ns_port)+" --pyro-host="+str(_pyomo_ns_host)+" --traceback -r 1.0 --solver=ipopt --solver-manager=phpyro --shutdown-pyro-workers --model-directory="+model_dir+" --instance-directory="+instance_dir+" > "+this_test_file_directory+"farmer_quadratic_bundling_ipopt_with_phpyro.out 2>&1"
- print("Testing command: " + argstring)
-
- _run_cmd(argstring, shell=True)
- self.assertFileEqualsBaseline(
- this_test_file_directory+"farmer_quadratic_bundling_ipopt_with_phpyro.out",
- baseline_dir+"farmer_quadratic_bundling_ipopt_with_phpyro.baseline",
- filter=filter_pyro,
- tolerance=_diff_tolerance)
-
- @unittest.category('fragile')
- def test_quadratic_sizes3_cplex_with_phpyro(self):
- if (not solver['cplex','lp']) or (not yaml_available):
- self.skipTest("The 'cplex' executable is not available "
- "or PyYAML is not available")
-
- sizes_example_dir = pysp_examples_dir + "sizes"
- model_dir = sizes_example_dir + os.sep + "models"
- instance_dir = sizes_example_dir + os.sep + "SIZES3"
- self._setup_phsolverserver(3)
- log_output_file = this_test_file_directory+"sizes3_quadratic_cplex_with_phpyro.out"
- argstring = "runph --pyro-port="+str(_pyomo_ns_port)+" --pyro-host="+str(_pyomo_ns_host)+" --traceback -r 1.0 --solver=cplex --scenario-solver-options=\"threads=1\" --solver-manager=phpyro --shutdown-pyro-workers --model-directory="+model_dir+" --instance-directory="+instance_dir+ \
- " --max-iterations=40"+ \
- " --rho-cfgfile="+sizes_example_dir+os.sep+"config"+os.sep+"rhosetter.py"+ \
- " --scenario-solver-options=\"mip_tolerances_integrality=1e-7 threads=1\""+ \
- " --enable-ww-extensions"+ \
- " --ww-extension-cfgfile="+sizes_example_dir+os.sep+"config"+os.sep+"wwph.cfg"+ \
- " --ww-extension-suffixfile="+sizes_example_dir+os.sep+"config"+os.sep+"wwph.suffixes"+ \
- " > "+log_output_file+" 2>&1"
- print("Testing command: " + argstring)
-
- _run_cmd(argstring, shell=True)
- if os.sys.platform == "darwin":
- self.assertFileEqualsBaseline(
- log_output_file,
- baseline_dir+"sizes3_quadratic_cplex_with_phpyro_darwin.baseline",
- filter=filter_pyro)
- else:
- [flag_a,lineno_a,diffs_a] = pyutilib.misc.compare_file(
- log_output_file,
- baseline_dir+"sizes3_quadratic_cplex_with_phpyro.baseline-a",
- filter=filter_pyro)
- [flag_b,lineno_b,diffs_b] = pyutilib.misc.compare_file(
- log_output_file,
- baseline_dir+"sizes3_quadratic_cplex_with_phpyro.baseline-b",
- filter=filter_pyro)
- if (flag_a) and (flag_b):
- print(diffs_a)
- print(diffs_b)
- self.fail("Differences identified relative to all baseline output file alternatives")
- os.remove(log_output_file)
-
- @unittest.category('fragile')
- def test_farmer_with_integers_quadratic_cplex_with_pyro_with_postef_solve(self):
- if not solver['cplex','lp']:
- self.skipTest("The 'cplex' executable is not available")
-
- farmer_examples_dir = pysp_examples_dir + "farmerWintegers"
- model_dir = farmer_examples_dir + os.sep + "models"
- instance_dir = farmer_examples_dir + os.sep + "scenariodata"
- self._setup_pyro_mip_server(3)
- argstring = "runph --pyro-port="+str(_pyomo_ns_port)+" --pyro-host="+str(_pyomo_ns_host)+" --traceback -r 1.0 --max-iterations=10 --solve-ef --solver=cplex --scenario-solver-options=\"threads=1\" --solver-manager=pyro --shutdown-pyro-workers --model-directory="+model_dir+" --instance-directory="+instance_dir+" > "+this_test_file_directory+"farmer_with_integers_quadratic_cplex_with_pyro_with_postef_solve.out 2>&1"
- print("Testing command: " + argstring)
-
- _run_cmd(argstring, shell=True)
- self.assertFileEqualsBaseline(
- this_test_file_directory+"farmer_with_integers_quadratic_cplex_with_pyro_with_postef_solve.out",
- baseline_dir+"farmer_with_integers_quadratic_cplex_with_pyro_with_postef_solve.baseline",
- filter=filter_pyro,
- tolerance=_diff_tolerance)
-
- @unittest.category('fragile')
- def test_linearized_sizes3_cplex_with_phpyro(self):
- if (not solver['cplex','lp']) or (not yaml_available):
- self.skipTest("The 'cplex' executable is not available "
- "or PyYAML is not available")
-
- sizes_example_dir = pysp_examples_dir + "sizes"
- model_dir = sizes_example_dir + os.sep + "models"
- instance_dir = sizes_example_dir + os.sep + "SIZES3"
- self._setup_phsolverserver(3)
- log_output_file = this_test_file_directory+"sizes3_linearized_cplex_with_phpyro.out"
- argstring = "runph --pyro-port="+str(_pyomo_ns_port)+" --pyro-host="+str(_pyomo_ns_host)+" --traceback -r 1.0 --solver=cplex --scenario-solver-options=\"threads=1\" --solver-manager=phpyro --shutdown-pyro-workers --model-directory="+model_dir+" --instance-directory="+instance_dir+ \
- " --max-iterations=10"+ \
- " --rho-cfgfile="+sizes_example_dir+os.sep+"config"+os.sep+"rhosetter.py"+ \
- " --scenario-solver-options=mip_tolerances_integrality=1e-7"+ \
- " --enable-ww-extensions"+ \
- " --ww-extension-cfgfile="+sizes_example_dir+os.sep+"config"+os.sep+"wwph.cfg"+ \
- " --ww-extension-suffixfile="+sizes_example_dir+os.sep+"config"+os.sep+"wwph.suffixes"+ \
- " --linearize-nonbinary-penalty-terms=4" + \
- " > "+log_output_file+" 2>&1"
- print("Testing command: " + argstring)
-
- _run_cmd(argstring, shell=True)
- if os.sys.platform == "darwin":
- self.assertFileEqualsBaseline(
- log_output_file,
- baseline_dir+"sizes3_linearized_cplex_with_phpyro_darwin.baseline",
- filter=filter_pyro)
- else:
- [flag_a,lineno_a,diffs_a] = pyutilib.misc.compare_file(
- log_output_file,
- baseline_dir+"sizes3_linearized_cplex_with_phpyro.baseline-a",
- filter=filter_pyro)
- [flag_b,lineno_b,diffs_b] = pyutilib.misc.compare_file(
- log_output_file,
- baseline_dir+"sizes3_linearized_cplex_with_phpyro.baseline-b",
- filter=filter_pyro)
- if (flag_a) and (flag_b):
- print(diffs_a)
- print(diffs_b)
- self.fail("Differences identified relative to all baseline output file alternatives")
- os.remove(log_output_file)
-
- def test_quadratic_sizes3_gurobi_with_phpyro(self):
- if (not solver['gurobi','lp']) or (not yaml_available):
- self.skipTest("The 'gurobi' executable is not available "
- "or PyYAML is not available")
-
- sizes_example_dir = pysp_examples_dir + "sizes"
- model_dir = sizes_example_dir + os.sep + "models"
- instance_dir = sizes_example_dir + os.sep + "SIZES3"
- self._setup_phsolverserver(3)
- log_output_file = this_test_file_directory+"sizes3_quadratic_gurobi_with_phpyro.out"
- argstring = "runph --pyro-port="+str(_pyomo_ns_port)+" --pyro-host="+str(_pyomo_ns_host)+" --traceback -r 1.0 --solver=gurobi --solver-manager=phpyro --shutdown-pyro-workers --model-directory="+model_dir+" --instance-directory="+instance_dir+ \
- " --max-iterations=40"+ \
- " --rho-cfgfile="+sizes_example_dir+os.sep+"config"+os.sep+"rhosetter.py"+ \
- " --scenario-solver-options=\"mip_tolerances_integrality=1e-7 threads=1\""+ \
- " --enable-ww-extensions"+ \
- " --ww-extension-cfgfile="+sizes_example_dir+os.sep+"config"+os.sep+"wwph.cfg"+ \
- " --ww-extension-suffixfile="+sizes_example_dir+os.sep+"config"+os.sep+"wwph.suffixes"+ \
- " > "+log_output_file+" 2>&1"
- print("Testing command: " + argstring)
-
- _run_cmd(argstring, shell=True)
- if os.sys.platform == "darwin":
- [flag_a,lineno_a,diffs_a] = pyutilib.misc.compare_file(
- log_output_file,
- baseline_dir+"sizes3_quadratic_gurobi_with_phpyro_darwin.baseline-a",
- filter=filter_pyro,
- tolerance=_diff_tolerance)
- if (flag_a):
- print(diffs_a)
- self.fail("Differences identified relative to all baseline output file alternatives")
- os.remove(log_output_file)
- else:
- [flag_a,lineno_a,diffs_a] = pyutilib.misc.compare_file(
- log_output_file,
- baseline_dir+"sizes3_quadratic_gurobi_with_phpyro.baseline-a",
- filter=filter_pyro,
- tolerance=_diff_tolerance)
- [flag_b,lineno_b,diffs_b] = pyutilib.misc.compare_file(
- log_output_file,
- baseline_dir+"sizes3_quadratic_gurobi_with_phpyro.baseline-b",
- filter=filter_pyro,
- tolerance=_diff_tolerance)
- if (flag_a) and (flag_b):
- print(diffs_a)
- print(diffs_b)
- self.fail("Differences identified relative to all baseline output file alternatives")
- os.remove(log_output_file)
-
- def test_farmer_ef_with_solve_cplex_with_pyro(self):
- if not solver['cplex','lp']:
- self.skipTest("The 'cplex' executable is not available")
-
- farmer_examples_dir = pysp_examples_dir + "farmer"
- model_dir = farmer_examples_dir + os.sep + "models"
- instance_dir = farmer_examples_dir + os.sep + "scenariodata"
- self._setup_pyro_mip_server(1)
- argstring = "runef --pyro-port="+str(_pyomo_ns_port)+" --pyro-host="+str(_pyomo_ns_host)+" --verbose --solver=cplex --solver-manager=pyro --solve --pyro-shutdown-workers -m "+model_dir+" -s "+instance_dir+" > "+this_test_file_directory+"farmer_ef_with_solve_cplex_with_pyro.out 2>&1"
- print("Testing command: " + argstring)
-
- _run_cmd(argstring, shell=True)
- self.assertFileEqualsBaseline(
- this_test_file_directory+"farmer_ef_with_solve_cplex_with_pyro.out",
- baseline_dir+"farmer_ef_with_solve_cplex_with_pyro.baseline",
- filter=filter_pyro,
- tolerance=_diff_tolerance)
-
- # async PH with one pyro solver server should yield the same behavior as serial PH.
- def test_farmer_quadratic_async_ipopt_with_pyro(self):
- if not solver['ipopt','nl']:
- self.skipTest("The 'ipopt' executable is not available")
-
- farmer_examples_dir = pysp_examples_dir + "farmer"
- model_dir = farmer_examples_dir + os.sep + "models"
- instance_dir = farmer_examples_dir + os.sep + "scenariodata"
- self._setup_pyro_mip_server(3)
- argstring = "runph --pyro-port="+str(_pyomo_ns_port)+" --pyro-host="+str(_pyomo_ns_host)+" --traceback -r 1.0 --solver=ipopt --solver-manager=pyro --shutdown-pyro-workers --model-directory="+model_dir+" --instance-directory="+instance_dir+" > "+this_test_file_directory+"farmer_quadratic_async_ipopt_with_pyro.out 2>&1"
- print("Testing command: " + argstring)
-
- _run_cmd(argstring, shell=True)
- self.assertFileEqualsBaseline(
- this_test_file_directory+"farmer_quadratic_async_ipopt_with_pyro.out",
- baseline_dir+"farmer_quadratic_async_ipopt_with_pyro.baseline",
- filter=filter_pyro,
- tolerance=_diff_tolerance)
-
- # async PH with one pyro solver server should yield the same behavior as serial PH.
- def test_farmer_quadratic_async_gurobi_with_pyro(self):
- if not solver['gurobi','lp']:
- self.skipTest("The 'gurobi' executable is not available")
-
- farmer_examples_dir = pysp_examples_dir + "farmer"
- model_dir = farmer_examples_dir + os.sep + "models"
- instance_dir = farmer_examples_dir + os.sep + "scenariodata"
- self._setup_pyro_mip_server(3)
- argstring = "runph --pyro-port="+str(_pyomo_ns_port)+" --pyro-host="+str(_pyomo_ns_host)+" --traceback -r 1.0 --solver=gurobi --solver-manager=pyro --shutdown-pyro-workers --model-directory="+model_dir+" --instance-directory="+instance_dir+" > "+this_test_file_directory+"farmer_quadratic_async_gurobi_with_pyro.out 2>&1"
- print("Testing command: " + argstring)
-
- _run_cmd(argstring, shell=True)
- self.assertFileEqualsBaseline(
- this_test_file_directory+"farmer_quadratic_async_gurobi_with_pyro.out",
- baseline_dir+"farmer_quadratic_async_gurobi_with_pyro.baseline",
- filter=filter_pyro)
-
- # async PH with one pyro solver server should yield the same behavior as serial PH.
- def test_farmer_linearized_async_gurobi_with_pyro(self):
- if not solver['gurobi','lp']:
- self.skipTest("The 'gurobi' executable is not available")
-
- farmer_examples_dir = pysp_examples_dir + "farmer"
- model_dir = farmer_examples_dir + os.sep + "models"
- instance_dir = farmer_examples_dir + os.sep + "scenariodata"
- self._setup_pyro_mip_server(3)
- argstring = "runph --pyro-port="+str(_pyomo_ns_port)+" --pyro-host="+str(_pyomo_ns_host)+" --traceback -r 1.0 --solver=gurobi --solver-manager=pyro --shutdown-pyro-workers --model-directory="+model_dir+" --instance-directory="+instance_dir+" --linearize-nonbinary-penalty-terms=10 "+" > "+this_test_file_directory+"farmer_linearized_async_gurobi_with_pyro.out 2>&1"
- print("Testing command: " + argstring)
-
- _run_cmd(argstring, shell=True)
- self.assertFileEqualsBaseline(
- this_test_file_directory+"farmer_linearized_async_gurobi_with_pyro.out",
- baseline_dir+"farmer_linearized_async_gurobi_with_pyro.baseline",
- filter=filter_pyro)
-
- # async PH with one pyro solver server should yield the same behavior as serial PH.
- def test_farmer_linearized_async_ipopt_with_pyro(self):
- if not solver['ipopt','nl']:
- self.skipTest("The 'ipopt' executable is not available")
-
- farmer_examples_dir = pysp_examples_dir + "farmer"
- model_dir = farmer_examples_dir + os.sep + "models"
- instance_dir = farmer_examples_dir + os.sep + "scenariodata"
- self._setup_pyro_mip_server(3)
- argstring = "runph --pyro-port="+str(_pyomo_ns_port)+" --pyro-host="+str(_pyomo_ns_host)+" --traceback -r 1.0 --solver=ipopt --solver-manager=pyro --shutdown-pyro-workers --model-directory="+model_dir+" --instance-directory="+instance_dir+" --linearize-nonbinary-penalty-terms=10 "+" > "+this_test_file_directory+"farmer_linearized_async_ipopt_with_pyro.out 2>&1"
-
- print("Testing command: " + argstring)
- _run_cmd(argstring, shell=True)
- self.assertFileEqualsBaseline(
- this_test_file_directory+"farmer_linearized_async_ipopt_with_pyro.out",
- baseline_dir+"farmer_linearized_async_ipopt_with_pyro.baseline",
- filter=filter_pyro,
- tolerance=_diff_tolerance)
-
- @unittest.category('fragile')
- def test_farmer_with_integers_linearized_cplex_with_phpyro(self):
- if not solver['cplex','lp']:
- self.skipTest("The 'cplex' executable is not available")
-
- farmer_examples_dir = pysp_examples_dir + "farmerWintegers"
- model_dir = farmer_examples_dir + os.sep + "models"
- instance_dir = farmer_examples_dir + os.sep + "scenariodata"
- self._setup_phsolverserver(3)
- argstring = "runph --pyro-port="+str(_pyomo_ns_port)+" --pyro-host="+str(_pyomo_ns_host)+" --traceback -r 1.0 --solver=cplex --scenario-solver-options=\"threads=1\" --solver-manager=phpyro --shutdown-pyro-workers --linearize-nonbinary-penalty-terms=8 --model-directory="+model_dir+" --instance-directory="+instance_dir+" > "+this_test_file_directory+"farmer_with_integers_linearized_cplex_with_phpyro.out 2>&1"
- print("Testing command: " + argstring)
-
- _run_cmd(argstring, shell=True)
- self.assertFileEqualsBaseline(
- this_test_file_directory+"farmer_with_integers_linearized_cplex_with_phpyro.out",
- baseline_dir+"farmer_with_integers_linearized_cplex_with_phpyro.baseline",
- filter=filter_pyro,
- tolerance=_diff_tolerance)
-
- # the primary objective of this test is to validate the bare minimum level of functionality on the PH solver server
- # end (solves and rho setting) - obviously should yield the same results as serial PH.
- @unittest.category('fragile')
- def test_simple_quadratic_networkflow1ef10_cplex_with_phpyro(self):
- if not solver['cplex','lp']:
- self.skipTest("The 'cplex' executable is not available")
-
- networkflow_example_dir = pysp_examples_dir + "networkflow"
- model_dir = networkflow_example_dir + os.sep + "models"
- instance_dir = networkflow_example_dir + os.sep + "1ef10"
- self._setup_phsolverserver(10)
- argstring = "runph --pyro-port="+str(_pyomo_ns_port)+" --pyro-host="+str(_pyomo_ns_host)+" --traceback -r 1.0 --solver=cplex --solver-manager=phpyro --scenario-solver-options=\"threads=1\" --shutdown-pyro-workers --model-directory="+model_dir+" --instance-directory="+instance_dir+ \
- " --max-iterations=5"+ \
- " --rho-cfgfile="+networkflow_example_dir+os.sep+"config"+os.sep+"rhosettermixed.py"+ \
- " > "+this_test_file_directory+"networkflow1ef10_simple_quadratic_cplex_with_phpyro.out 2>&1"
- print("Testing command: " + argstring)
-
- _run_cmd(argstring, shell=True)
- self.assertFileEqualsBaseline(
- this_test_file_directory+"networkflow1ef10_simple_quadratic_cplex_with_phpyro.out",
- baseline_dir+"networkflow1ef10_simple_quadratic_cplex_with_phpyro.baseline",
- filter=filter_pyro)
-
- # builds on the above test, to validate warm-start capabilities; by imposing a migap,
- # executions with and without warm-starts will arrive at different solutions.
- @unittest.category('fragile')
- def test_advanced_quadratic_networkflow1ef10_cplex_with_phpyro(self):
- if not solver['cplex','lp']:
- self.skipTest("The 'cplex' executable is not available")
-
- networkflow_example_dir = pysp_examples_dir + "networkflow"
- model_dir = networkflow_example_dir + os.sep + "models"
- instance_dir = networkflow_example_dir + os.sep + "1ef10"
- self._setup_phsolverserver(10)
- argstring = "runph --pyro-port="+str(_pyomo_ns_port)+" --pyro-host="+str(_pyomo_ns_host)+" --traceback -r 1.0 --solver=cplex --scenario-solver-options=\"threads=1\" --solver-manager=phpyro --shutdown-pyro-workers --model-directory="+model_dir+" --instance-directory="+instance_dir+ \
- " --max-iterations=5"+ \
- " --rho-cfgfile="+networkflow_example_dir+os.sep+"config"+os.sep+"rhosettermixed.py"+ \
- " --enable-ww-extensions"+ \
- " --ww-extension-cfgfile="+networkflow_example_dir+os.sep+"config"+os.sep+"wwph-mipgaponly.cfg" + \
- " > "+this_test_file_directory+"networkflow1ef10_advanced_quadratic_cplex_with_phpyro.out 2>&1"
- print("Testing command: " + argstring)
-
- _run_cmd(argstring, shell=True)
- if os.sys.platform == "darwin":
- self.assertFileEqualsBaseline(
- this_test_file_directory+"networkflow1ef10_advanced_quadratic_cplex_with_phpyro.out",
- baseline_dir+"networkflow1ef10_advanced_quadratic_cplex_with_phpyro_darwin.baseline",
- filter=filter_pyro)
- else:
- self.assertFileEqualsBaseline(
- this_test_file_directory+"networkflow1ef10_advanced_quadratic_cplex_with_phpyro.out",
- baseline_dir+"networkflow1ef10_advanced_quadratic_cplex_with_phpyro.baseline",
- filter=filter_pyro)
-
- def test_linearized_networkflow1ef10_gurobi_with_phpyro(self):
- if (not solver['gurobi','lp']) or (not yaml_available):
- self.skipTest("The 'gurobi' executable is not available "
- "or PyYAML is not available")
-
- networkflow_example_dir = pysp_examples_dir + "networkflow"
- model_dir = networkflow_example_dir + os.sep + "models"
- instance_dir = networkflow_example_dir + os.sep + "1ef10"
- self._setup_phsolverserver(10)
- log_output_file = this_test_file_directory+"networkflow1ef10_linearized_gurobi_with_phpyro.out"
- argstring = "runph --pyro-port="+str(_pyomo_ns_port)+" --pyro-host="+str(_pyomo_ns_host)+" --traceback -r 1.0 --solver=gurobi --solver-manager=phpyro --shutdown-pyro-workers --model-directory="+model_dir+" --instance-directory="+instance_dir+ \
- " --max-iterations=10"+ \
- " --enable-termdiff-convergence --termdiff-threshold=0.01" + \
- " --enable-ww-extensions"+ \
- " --ww-extension-cfgfile="+networkflow_example_dir+os.sep+"config"+os.sep+"wwph-aggressivefixing.cfg"+ \
- " --ww-extension-suffixfile="+networkflow_example_dir+os.sep+"config"+os.sep+"wwph.suffixes"+ \
- " --rho-cfgfile="+networkflow_example_dir+os.sep+"config"+os.sep+"rhosettermixed.py"+ \
- " --linearize-nonbinary-penalty-terms=8"+ \
- " --bounds-cfgfile="+networkflow_example_dir+os.sep+"config"+os.sep+"xboundsetter.py" + \
- " --aggregate-cfgfile="+networkflow_example_dir+os.sep+"config"+os.sep+"aggregategetter.py"+ \
- " > "+log_output_file+" 2>&1"
- print("Testing command: " + argstring)
-
- _run_cmd(argstring, shell=True)
- if os.sys.platform == "darwin":
- self.assertFileEqualsBaseline(
- log_output_file,
- baseline_dir+"networkflow1ef10_linearized_gurobi_with_phpyro_darwin.baseline",
- filter=filter_pyro)
- else:
- [flag_a,lineno_a,diffs_a] = pyutilib.misc.compare_file(
- log_output_file,
- baseline_dir+"networkflow1ef10_linearized_gurobi_with_phpyro.baseline-a",
- filter=filter_pyro)
- [flag_b,lineno_b,diffs_b] = pyutilib.misc.compare_file(
- log_output_file,
- baseline_dir+"networkflow1ef10_linearized_gurobi_with_phpyro.baseline-b",
- filter=filter_pyro)
- [flag_c,lineno_c,diffs_c] = pyutilib.misc.compare_file(
- log_output_file,
- baseline_dir+"networkflow1ef10_linearized_gurobi_with_phpyro.baseline-c",
- filter=filter_pyro)
- if (flag_a) and (flag_b) and (flag_c):
- print(diffs_a)
- print(diffs_b)
- print(diffs_c)
- self.fail("Differences identified relative to all baseline output file alternatives")
- os.remove(log_output_file)
-
- @unittest.category('fragile')
- def test_simple_linearized_networkflow1ef3_cplex_with_phpyro(self):
- if not solver['cplex','lp']:
- self.skipTest("The 'cplex' executable is not available")
-
- networkflow_example_dir = pysp_examples_dir + "networkflow"
- model_dir = networkflow_example_dir + os.sep + "models"
- instance_dir = networkflow_example_dir + os.sep + "1ef3"
- self._setup_phsolverserver(3)
- argstring = "runph --pyro-port="+str(_pyomo_ns_port)+" --pyro-host="+str(_pyomo_ns_host)+" --traceback -r 1.0 --solver=cplex --scenario-solver-options=\"threads=1\" --solver-manager=phpyro --shutdown-pyro-workers --model-directory="+model_dir+" --instance-directory="+instance_dir+ \
- " --max-iterations=10"+ \
- " --rho-cfgfile="+networkflow_example_dir+os.sep+"config"+os.sep+"rhosettermixed.py"+ \
- " --linearize-nonbinary-penalty-terms=4"+ \
- " --bounds-cfgfile="+networkflow_example_dir+os.sep+"config"+os.sep+"xboundsetter.py" + \
- " --aggregate-cfgfile="+networkflow_example_dir+os.sep+"config"+os.sep+"aggregategetter.py"+ \
- " > "+this_test_file_directory+"networkflow1ef3_simple_linearized_cplex_with_phpyro.out 2>&1"
- print("Testing command: " + argstring)
-
- _run_cmd(argstring, shell=True)
- if os.sys.platform == "darwin":
- self.assertFileEqualsBaseline(
- this_test_file_directory+"networkflow1ef3_simple_linearized_cplex_with_phpyro.out",
- baseline_dir+"networkflow1ef3_simple_linearized_cplex_with_phpyro_darwin.baseline",
- filter=filter_pyro)
- else:
- self.assertFileEqualsBaseline(
- this_test_file_directory+"networkflow1ef3_simple_linearized_cplex_with_phpyro.out",
- baseline_dir+"networkflow1ef3_simple_linearized_cplex_with_phpyro.baseline",
- filter=filter_pyro)
-
- @unittest.category('fragile')
- def test_simple_linearized_networkflow1ef10_cplex_with_phpyro(self):
- if not solver['cplex','lp']:
- self.skipTest("The 'cplex' executable is not available")
-
- networkflow_example_dir = pysp_examples_dir + "networkflow"
- model_dir = networkflow_example_dir + os.sep + "models"
- instance_dir = networkflow_example_dir + os.sep + "1ef10"
- self._setup_phsolverserver(10)
- argstring = "runph --pyro-port="+str(_pyomo_ns_port)+" --pyro-host="+str(_pyomo_ns_host)+" --traceback -r 1.0 --solver=cplex --scenario-solver-options=\"threads=1\" --solver-manager=phpyro --shutdown-pyro-workers --model-directory="+model_dir+" --instance-directory="+instance_dir+ \
- " --max-iterations=10"+ \
- " --rho-cfgfile="+networkflow_example_dir+os.sep+"config"+os.sep+"rhosettermixed.py"+ \
- " --linearize-nonbinary-penalty-terms=8"+ \
- " --bounds-cfgfile="+networkflow_example_dir+os.sep+"config"+os.sep+"xboundsetter.py" + \
- " --aggregate-cfgfile="+networkflow_example_dir+os.sep+"config"+os.sep+"aggregategetter.py"+ \
- " > "+this_test_file_directory+"networkflow1ef10_simple_linearized_cplex_with_phpyro.out 2>&1"
- print("Testing command: " + argstring)
-
- _run_cmd(argstring, shell=True)
- [flag_a,lineno_a,diffs_a] = pyutilib.misc.compare_file(
- this_test_file_directory+"networkflow1ef10_simple_linearized_cplex_with_phpyro.out",
- baseline_dir+"networkflow1ef10_simple_linearized_cplex_with_phpyro.baseline-a",
- filter=filter_pyro)
- [flag_b,lineno_b,diffs_b] = pyutilib.misc.compare_file(
- this_test_file_directory+"networkflow1ef10_simple_linearized_cplex_with_phpyro.out",
- baseline_dir+"networkflow1ef10_simple_linearized_cplex_with_phpyro.baseline-b",
- filter=filter_pyro)
- [flag_c,lineno_c,diffs_c] = pyutilib.misc.compare_file(
- this_test_file_directory+"networkflow1ef10_simple_linearized_cplex_with_phpyro.out",
- baseline_dir+"networkflow1ef10_simple_linearized_cplex_with_phpyro.baseline-c",
- filter=filter_pyro)
- if (flag_a) and (flag_b) and (flag_c):
- print(diffs_a)
- print(diffs_b)
- print(diffs_c)
- self.fail("Differences identified relative to all baseline output file alternatives")
- _remove(this_test_file_directory+"networkflow1ef10_simple_linearized_cplex_with_phpyro.out")
-
- @unittest.category('fragile')
- def test_advanced_linearized_networkflow1ef10_cplex_with_phpyro(self):
- if (not solver['cplex','lp']) or (not yaml_available):
- self.skipTest("The 'cplex' executable is not available "
- "or PyYAML is not available")
-
- networkflow_example_dir = pysp_examples_dir + "networkflow"
- model_dir = networkflow_example_dir + os.sep + "models"
- instance_dir = networkflow_example_dir + os.sep + "1ef10"
- self._setup_phsolverserver(10)
- argstring = "runph --pyro-port="+str(_pyomo_ns_port)+" --pyro-host="+str(_pyomo_ns_host)+" --traceback -r 1.0 --solver=cplex --scenario-solver-options=\"threads=1\" --solver-manager=phpyro --shutdown-pyro-workers --model-directory="+model_dir+" --instance-directory="+instance_dir+ \
- " --max-iterations=10"+ \
- " --enable-termdiff-convergence --termdiff-threshold=0.01" + \
- " --enable-ww-extensions"+ \
- " --ww-extension-cfgfile="+networkflow_example_dir+os.sep+"config"+os.sep+"wwph-aggressivefixing.cfg"+ \
- " --ww-extension-suffixfile="+networkflow_example_dir+os.sep+"config"+os.sep+"wwph.suffixes"+ \
- " --rho-cfgfile="+networkflow_example_dir+os.sep+"config"+os.sep+"rhosettermixed.py"+ \
- " --linearize-nonbinary-penalty-terms=8"+ \
- " --bounds-cfgfile="+networkflow_example_dir+os.sep+"config"+os.sep+"xboundsetter.py"+ \
- " --aggregate-cfgfile="+networkflow_example_dir+os.sep+"config"+os.sep+"aggregategetter.py"+ \
- " > "+this_test_file_directory+"networkflow1ef10_advanced_linearized_cplex_with_phpyro.out 2>&1"
- print("Testing command: " + argstring)
-
- _run_cmd(argstring, shell=True)
- [flag_a,lineno_a,diffs_a] = pyutilib.misc.compare_file(
- this_test_file_directory+"networkflow1ef10_advanced_linearized_cplex_with_phpyro.out",
- baseline_dir+"networkflow1ef10_advanced_linearized_cplex_with_phpyro.baseline-a",
- filter=filter_pyro)
- [flag_b,lineno_b,diffs_b] = pyutilib.misc.compare_file(
- this_test_file_directory+"networkflow1ef10_advanced_linearized_cplex_with_phpyro.out",
- baseline_dir+"networkflow1ef10_advanced_linearized_cplex_with_phpyro.baseline-b",
- filter=filter_pyro)
- [flag_c,lineno_c,diffs_c] = pyutilib.misc.compare_file(
- this_test_file_directory+"networkflow1ef10_advanced_linearized_cplex_with_phpyro.out",
- baseline_dir+"networkflow1ef10_advanced_linearized_cplex_with_phpyro.baseline-c",
- filter=filter_pyro)
- if (flag_a) and (flag_b) and (flag_c):
- print(diffs_a)
- print(diffs_b)
- print(diffs_c)
- self.fail("Differences identified relative to all baseline output file alternatives")
- _remove(this_test_file_directory+"networkflow1ef10_advanced_linearized_cplex_with_phpyro.out")
-
- @unittest.category('fragile')
- def test_linearized_networkflow1ef10_cplex_with_bundles_with_phpyro(self):
- if (not solver['cplex','lp']) or (not yaml_available):
- self.skipTest("The 'cplex' executable is not available "
- "or PyYAML is not available")
-
- networkflow_example_dir = pysp_examples_dir + "networkflow"
- model_dir = networkflow_example_dir + os.sep + "models"
- instance_dir = networkflow_example_dir + os.sep + "1ef10"
- self._setup_phsolverserver(5)
- argstring = "runph --pyro-port="+str(_pyomo_ns_port)+" --pyro-host="+str(_pyomo_ns_host)+" --traceback -r 1.0 --solver=cplex --scenario-solver-options=\"threads=1\" --solver-manager=phpyro --shutdown-pyro-workers --model-directory="+model_dir+" --instance-directory="+instance_dir+ \
- " --scenario-bundle-specification="+networkflow_example_dir+os.sep+"10scenario-bundle-specs/FiveBundles.dat" + \
- " --max-iterations=10"+ \
- " --enable-termdiff-convergence --termdiff-threshold=0.01" + \
- " --enable-ww-extensions"+ \
- " --ww-extension-cfgfile="+networkflow_example_dir+os.sep+"config"+os.sep+"wwph-aggressivefixing.cfg"+ \
- " --ww-extension-suffixfile="+networkflow_example_dir+os.sep+"config"+os.sep+"wwph.suffixes"+ \
- " --rho-cfgfile="+networkflow_example_dir+os.sep+"config"+os.sep+"rhosettermixed.py"+ \
- " --linearize-nonbinary-penalty-terms=8"+ \
- " --bounds-cfgfile="+networkflow_example_dir+os.sep+"config"+os.sep+"xboundsetter.py"+ \
- " --aggregate-cfgfile="+networkflow_example_dir+os.sep+"config"+os.sep+"aggregategetter.py"+ \
- " > "+this_test_file_directory+"networkflow1ef10_linearized_cplex_with_bundles_with_phpyro.out 2>&1"
- print("Testing command: " + argstring)
-
- _run_cmd(argstring, shell=True)
- [flag_a,lineno_a,diffs_a] = pyutilib.misc.compare_file(
- this_test_file_directory+"networkflow1ef10_linearized_cplex_with_bundles_with_phpyro.out",
- baseline_dir+"networkflow1ef10_linearized_cplex_with_bundles_with_phpyro.baseline-a",
- filter=filter_pyro)
- [flag_b,lineno_b,diffs_b] = pyutilib.misc.compare_file(
- this_test_file_directory+"networkflow1ef10_linearized_cplex_with_bundles_with_phpyro.out",
- baseline_dir+"networkflow1ef10_linearized_cplex_with_bundles_with_phpyro.baseline-b",
- filter=filter_pyro)
- [flag_c,lineno_c,diffs_c] = pyutilib.misc.compare_file(
- this_test_file_directory+"networkflow1ef10_linearized_cplex_with_bundles_with_phpyro.out",
- baseline_dir+"networkflow1ef10_linearized_cplex_with_bundles_with_phpyro.baseline-c",
- filter=filter_pyro)
- if (flag_a) and (flag_b) and (flag_c):
- print(diffs_a)
- print(diffs_b)
- print(diffs_c)
- self.fail("Differences identified relative to all baseline output file alternatives")
- _remove(this_test_file_directory+"networkflow1ef10_linearized_cplex_with_bundles_with_phpyro.out")
-
-if __name__ == "__main__":
- unittest.main()
diff --git a/pyomo/pysp/tests/unit/test_scenariotree.py b/pyomo/pysp/tests/unit/test_scenariotree.py
deleted file mode 100644
index b4f9538ea9c..00000000000
--- a/pyomo/pysp/tests/unit/test_scenariotree.py
+++ /dev/null
@@ -1,800 +0,0 @@
-# ___________________________________________________________________________
-#
-# Pyomo: Python Optimization Modeling Objects
-# Copyright 2017 National Technology and Engineering Solutions of Sandia, LLC
-# Under the terms of Contract DE-NA0003525 with National Technology and
-# Engineering Solutions of Sandia, LLC, the U.S. Government retains certain
-# rights in this software.
-# This software is distributed under the 3-clause BSD License.
-# ___________________________________________________________________________
-import pyutilib.th as unittest
-
-from pyomo.pysp.scenariotree.tree_structure_model import \
- (ScenarioTreeModelFromNetworkX,
- CreateConcreteTwoStageScenarioTreeModel)
-from pyomo.pysp.scenariotree.tree_structure import ScenarioTree
-from pyomo.core import (ConcreteModel,
- Set,
- Var,
- Expression,
- Objective,
- Block)
-from pyomo.common.dependencies import (
- networkx, networkx_available as has_networkx
-)
-
-class TestScenarioTree(unittest.TestCase):
-
- def _get_block_model(self):
- model = ConcreteModel()
- model.s = Set(initialize=[1,2])
- b = Block(concrete=True)
- b.s = Set(initialize=[1,2])
- b.x = Var()
- b.X = Var(model.s)
- model.b1 = b.clone()
- model.b2 = b.clone()
- model.b3 = b.clone()
- model.b4 = b.clone()
- model.B1 = Block(model.s, rule=lambda _,i: b.clone())
- model.B2 = Block(model.s, rule=lambda _,i: b.clone())
- model.B3 = Block(model.s, rule=lambda _,i: b.clone())
- model.B4 = Block(model.s, rule=lambda _,i: b.clone())
- model.FirstStageCost = Expression(expr=0.0)
- model.SecondStageCost = Expression(expr=0.0)
- model.obj = Objective(expr=0.0)
- return model
-
- def test_indexedblock_noindextemplate(self):
- st_model = CreateConcreteTwoStageScenarioTreeModel(1)
- st_model.StageVariables['Stage1'].add("B1")
- st_model.StageDerivedVariables['Stage1'].add("B2")
- st_model.NodeVariables['RootNode'].add("B3")
- st_model.NodeDerivedVariables['RootNode'].add("B4")
- st_model.StageCost['Stage1'] = "FirstStageCost"
- st_model.StageCost['Stage2'] = "SecondStageCost"
-
- scenario_tree = ScenarioTree(scenariotreeinstance=st_model)
- self.assertEqual(len(scenario_tree.stages), 2)
- self.assertEqual(len(scenario_tree.nodes), 2)
- self.assertEqual(len(scenario_tree.scenarios), 1)
-
- model = self._get_block_model()
-
- scenario_tree.linkInInstances({'Scenario1': model})
-
- root = scenario_tree.findRootNode()
- self.assertEqual(len(root._variable_ids), 24)
- self.assertEqual(len(root._standard_variable_ids), 12)
- self.assertEqual(len(root._derived_variable_ids), 12)
- for name in ("B1[1].x", "B1[2].x",
- "B2[1].x", "B2[2].x",
- "B3[1].x", "B3[2].x",
- "B4[1].x", "B4[2].x"):
- for index in [None]:
- self.assertEqual(
- (name,index) in root._name_index_to_id, True)
- for name in ("B1[1].X", "B1[2].X",
- "B2[1].X", "B2[2].X",
- "B3[1].X", "B3[2].X",
- "B4[1].X", "B4[2].X"):
- for index in model.s:
- self.assertEqual(
- (name,index) in root._name_index_to_id, True)
-
- def test_indexedblock_wildcardtemplate(self):
- st_model = CreateConcreteTwoStageScenarioTreeModel(1)
- st_model.StageVariables['Stage1'].add("B1[*]")
- st_model.StageDerivedVariables['Stage1'].add("B2[*]")
- st_model.NodeVariables['RootNode'].add("B3[*]")
- st_model.NodeDerivedVariables['RootNode'].add("B4[*]")
- st_model.StageCost['Stage1'] = "FirstStageCost"
- st_model.StageCost['Stage2'] = "SecondStageCost"
-
- scenario_tree = ScenarioTree(scenariotreeinstance=st_model)
- self.assertEqual(len(scenario_tree.stages), 2)
- self.assertEqual(len(scenario_tree.nodes), 2)
- self.assertEqual(len(scenario_tree.scenarios), 1)
-
- model = self._get_block_model()
-
- scenario_tree.linkInInstances({'Scenario1': model})
-
- root = scenario_tree.findRootNode()
- self.assertEqual(len(root._variable_ids), 24)
- self.assertEqual(len(root._standard_variable_ids), 12)
- self.assertEqual(len(root._derived_variable_ids), 12)
- for name in ("B1[1].x", "B1[2].x",
- "B2[1].x", "B2[2].x",
- "B3[1].x", "B3[2].x",
- "B4[1].x", "B4[2].x"):
- for index in [None]:
- self.assertEqual(
- (name,index) in root._name_index_to_id, True)
- for name in ("B1[1].X", "B1[2].X",
- "B2[1].X", "B2[2].X",
- "B3[1].X", "B3[2].X",
- "B4[1].X", "B4[2].X"):
- for index in model.s:
- self.assertEqual(
- (name,index) in root._name_index_to_id, True)
-
- def test_singletonblock_wildcardtemplate(self):
- st_model = CreateConcreteTwoStageScenarioTreeModel(1)
- st_model.StageVariables['Stage1'].add("b1[*]")
- st_model.StageDerivedVariables['Stage1'].add("b2[*]")
- st_model.NodeVariables['RootNode'].add("b3[*]")
- st_model.NodeDerivedVariables['RootNode'].add("b4[*]")
- st_model.StageCost['Stage1'] = "FirstStageCost"
- st_model.StageCost['Stage2'] = "SecondStageCost"
-
- scenario_tree = ScenarioTree(scenariotreeinstance=st_model)
- self.assertEqual(len(scenario_tree.stages), 2)
- self.assertEqual(len(scenario_tree.nodes), 2)
- self.assertEqual(len(scenario_tree.scenarios), 1)
-
- model = self._get_block_model()
-
- scenario_tree.linkInInstances({'Scenario1': model})
-
- root = scenario_tree.findRootNode()
- self.assertEqual(len(root._variable_ids), 12)
- self.assertEqual(len(root._standard_variable_ids), 6)
- self.assertEqual(len(root._derived_variable_ids), 6)
- for name in ("b1.x", "b2.x", "b3.x", "b4.x"):
- for index in [None]:
- self.assertEqual(
- (name,index) in root._name_index_to_id, True)
- for name in ("b1.X", "b2.X", "b3.X", "b4.X"):
- for index in model.s:
- self.assertEqual(
- (name,index) in root._name_index_to_id, True)
-
- def test_singletonblock_noindextemplate(self):
- st_model = CreateConcreteTwoStageScenarioTreeModel(1)
- st_model.StageVariables['Stage1'].add("b1")
- st_model.StageDerivedVariables['Stage1'].add("b2")
- st_model.NodeVariables['RootNode'].add("b3")
- st_model.NodeDerivedVariables['RootNode'].add("b4")
- st_model.StageCost['Stage1'] = "FirstStageCost"
- st_model.StageCost['Stage2'] = "SecondStageCost"
-
- scenario_tree = ScenarioTree(scenariotreeinstance=st_model)
- self.assertEqual(len(scenario_tree.stages), 2)
- self.assertEqual(len(scenario_tree.nodes), 2)
- self.assertEqual(len(scenario_tree.scenarios), 1)
-
- model = self._get_block_model()
-
- scenario_tree.linkInInstances({'Scenario1': model})
-
- root = scenario_tree.findRootNode()
- self.assertEqual(len(root._variable_ids), 12)
- self.assertEqual(len(root._standard_variable_ids), 6)
- self.assertEqual(len(root._derived_variable_ids), 6)
- for name in ("b1.x", "b2.x", "b3.x", "b4.x"):
- for index in [None]:
- self.assertEqual(
- (name,index) in root._name_index_to_id, True)
- for name in ("b1.X", "b2.X", "b3.X", "b4.X"):
- for index in model.s:
- self.assertEqual(
- (name,index) in root._name_index_to_id, True)
-
- def test_singletonvar_noindextemplate(self):
- st_model = CreateConcreteTwoStageScenarioTreeModel(1)
- st_model.StageVariables['Stage1'].add("x")
- st_model.StageDerivedVariables['Stage1'].add("y")
- st_model.NodeVariables['RootNode'].add("z")
- st_model.NodeDerivedVariables['RootNode'].add("q")
- st_model.StageCost['Stage1'] = "FirstStageCost"
- st_model.StageCost['Stage2'] = "SecondStageCost"
-
- scenario_tree = ScenarioTree(scenariotreeinstance=st_model)
- self.assertEqual(len(scenario_tree.stages), 2)
- self.assertEqual(len(scenario_tree.nodes), 2)
- self.assertEqual(len(scenario_tree.scenarios), 1)
-
- model = ConcreteModel()
- model.x = Var()
- model.y = Var()
- model.z = Var()
- model.q = Var()
- model.FirstStageCost = Expression(expr=0.0)
- model.SecondStageCost = Expression(expr=0.0)
- model.obj = Objective(expr=0.0)
-
- scenario_tree.linkInInstances({'Scenario1': model})
-
- root = scenario_tree.findRootNode()
- self.assertEqual(len(root._variable_ids), 4)
- self.assertEqual(len(root._standard_variable_ids), 2)
- self.assertEqual(len(root._derived_variable_ids), 2)
- for name in ("x", "y", "z", "q"):
- for index in [None]:
- self.assertEqual(
- (name,index) in root._name_index_to_id, True)
-
- def test_singletonvar_wildcardtemplate(self):
- st_model = CreateConcreteTwoStageScenarioTreeModel(1)
- st_model.StageVariables['Stage1'].add("x[*]")
- st_model.StageDerivedVariables['Stage1'].add("y[*]")
- st_model.NodeVariables['RootNode'].add("z[*]")
- st_model.NodeDerivedVariables['RootNode'].add("q[*]")
- st_model.StageCost['Stage1'] = "FirstStageCost"
- st_model.StageCost['Stage2'] = "SecondStageCost"
-
- scenario_tree = ScenarioTree(scenariotreeinstance=st_model)
- self.assertEqual(len(scenario_tree.stages), 2)
- self.assertEqual(len(scenario_tree.nodes), 2)
- self.assertEqual(len(scenario_tree.scenarios), 1)
-
- model = ConcreteModel()
- model.x = Var()
- model.y = Var()
- model.z = Var()
- model.q = Var()
- model.FirstStageCost = Expression(expr=0.0)
- model.SecondStageCost = Expression(expr=0.0)
- model.obj = Objective(expr=0.0)
-
- scenario_tree.linkInInstances({'Scenario1': model})
-
- root = scenario_tree.findRootNode()
- self.assertEqual(len(root._variable_ids), 4)
- self.assertEqual(len(root._standard_variable_ids), 2)
- self.assertEqual(len(root._derived_variable_ids), 2)
- for name in ("x", "y", "z", "q"):
- for index in [None]:
- self.assertEqual(
- (name,index) in root._name_index_to_id, True)
-
- def test_multiindexedvar_singlewildcardtemplate(self):
- st_model = CreateConcreteTwoStageScenarioTreeModel(1)
- st_model.StageVariables['Stage1'].add("x[*,* ]")
- st_model.StageDerivedVariables['Stage1'].add("y[ *,*]")
- st_model.NodeVariables['RootNode'].add("z[*,*]")
- st_model.NodeDerivedVariables['RootNode'].add("q[ * , * ]")
- st_model.StageCost['Stage1'] = "FirstStageCost"
- st_model.StageCost['Stage2'] = "SecondStageCost"
-
- scenario_tree = ScenarioTree(scenariotreeinstance=st_model)
- self.assertEqual(len(scenario_tree.stages), 2)
- self.assertEqual(len(scenario_tree.nodes), 2)
- self.assertEqual(len(scenario_tree.scenarios), 1)
-
- model = ConcreteModel()
- model.s = Set(initialize=[(1,'a'),(2,'b'),(3,'c')])
- model.x = Var(model.s)
- model.y = Var(model.s)
- model.z = Var(model.s)
- model.q = Var(model.s)
- model.FirstStageCost = Expression(expr=0.0)
- model.SecondStageCost = Expression(expr=0.0)
- model.obj = Objective(expr=0.0)
-
- scenario_tree.linkInInstances({'Scenario1': model})
-
- root = scenario_tree.findRootNode()
- self.assertEqual(len(root._variable_ids), 12)
- self.assertEqual(len(root._standard_variable_ids), 6)
- self.assertEqual(len(root._derived_variable_ids), 6)
- for name in ("x", "y", "z", "q"):
- for index in model.s:
- self.assertEqual(
- (name,index) in root._name_index_to_id, True)
-
- def test_indexedvar_indextemplate(self):
- st_model = CreateConcreteTwoStageScenarioTreeModel(1)
- st_model.StageVariables['Stage1'].add("x[*]")
- st_model.StageDerivedVariables['Stage1'].add("y[*]")
- st_model.NodeVariables['RootNode'].add("z[*]")
- st_model.NodeDerivedVariables['RootNode'].add("q[*]")
- st_model.StageCost['Stage1'] = "FirstStageCost"
- st_model.StageCost['Stage2'] = "SecondStageCost"
-
- scenario_tree = ScenarioTree(scenariotreeinstance=st_model)
- self.assertEqual(len(scenario_tree.stages), 2)
- self.assertEqual(len(scenario_tree.nodes), 2)
- self.assertEqual(len(scenario_tree.scenarios), 1)
-
- model = ConcreteModel()
- model.s = Set(initialize=[1,2,3])
- model.x = Var(model.s)
- model.y = Var(model.s)
- model.z = Var(model.s)
- model.q = Var(model.s)
- model.FirstStageCost = Expression(expr=0.0)
- model.SecondStageCost = Expression(expr=0.0)
- model.obj = Objective(expr=0.0)
-
- scenario_tree.linkInInstances({'Scenario1': model})
-
- root = scenario_tree.findRootNode()
- self.assertEqual(len(root._variable_ids), 12)
- self.assertEqual(len(root._standard_variable_ids), 6)
- self.assertEqual(len(root._derived_variable_ids), 6)
- for name in ("x", "y", "z", "q"):
- for index in model.s:
- self.assertEqual(
- (name,index) in root._name_index_to_id, True)
-
- def test_indexedvar_noindextemplate(self):
- st_model = CreateConcreteTwoStageScenarioTreeModel(1)
- st_model.StageVariables['Stage1'].add("x")
- st_model.StageDerivedVariables['Stage1'].add("y")
- st_model.NodeVariables['RootNode'].add("z")
- st_model.NodeDerivedVariables['RootNode'].add("q")
- st_model.StageCost['Stage1'] = "FirstStageCost"
- st_model.StageCost['Stage2'] = "SecondStageCost"
-
- scenario_tree = ScenarioTree(scenariotreeinstance=st_model)
- self.assertEqual(len(scenario_tree.stages), 2)
- self.assertEqual(len(scenario_tree.nodes), 2)
- self.assertEqual(len(scenario_tree.scenarios), 1)
-
- model = ConcreteModel()
- model.s = Set(initialize=[1,2,3])
- model.x = Var(model.s)
- model.y = Var(model.s)
- model.z = Var(model.s)
- model.q = Var(model.s)
- model.FirstStageCost = Expression(expr=0.0)
- model.SecondStageCost = Expression(expr=0.0)
- model.obj = Objective(expr=0.0)
-
- scenario_tree.linkInInstances({'Scenario1': model})
-
- root = scenario_tree.findRootNode()
- self.assertEqual(len(root._variable_ids), 12)
- self.assertEqual(len(root._standard_variable_ids), 6)
- self.assertEqual(len(root._derived_variable_ids), 6)
- for name in ("x", "y", "z", "q"):
- for index in model.s:
- self.assertEqual(
- (name,index) in root._name_index_to_id, True)
-
-@unittest.skipIf(not has_networkx, "Requires networkx module")
-class TestScenarioTreeFromNetworkX(unittest.TestCase):
-
- def test_empty(self):
- G = networkx.DiGraph()
- with self.assertRaises(networkx.NetworkXPointlessConcept):
- ScenarioTreeModelFromNetworkX(G)
-
- def test_not_tree(self):
- G = networkx.DiGraph()
- G.add_node("1")
- G.add_node("2")
- G.add_edge("1", "2")
- G.add_edge("2", "1")
- with self.assertRaises(TypeError):
- ScenarioTreeModelFromNetworkX(G)
-
- def test_not_directed(self):
- G = networkx.Graph()
- G.add_node("1")
- G.add_node("2")
- G.add_edge("1", "2")
- with self.assertRaises(TypeError):
- ScenarioTreeModelFromNetworkX(G)
-
- def test_not_branching(self):
- G = networkx.DiGraph()
- G.add_node("1")
- G.add_node("2")
- G.add_node("R")
- G.add_edge("1", "R")
- G.add_edge("2", "R")
- with self.assertRaises(TypeError):
- ScenarioTreeModelFromNetworkX(G)
-
- def test_not_enough_stages(self):
- G = networkx.DiGraph()
- G.add_node("R")
- with self.assertRaises(ValueError):
- ScenarioTreeModelFromNetworkX(G)
-
- def test_missing_node_name(self):
- G = networkx.DiGraph()
- G.add_node("R", name="Root")
- G.add_node("C")
- G.add_edge("R", "C", weight=1)
- with self.assertRaises(KeyError):
- ScenarioTreeModelFromNetworkX(
- G,
- node_name_attribute="name")
-
- def test_missing_scenario_name(self):
- G = networkx.DiGraph()
- G.add_node("R", name="Root")
- G.add_node("C")
- G.add_edge("R", "C", weight=1)
- with self.assertRaises(KeyError):
- ScenarioTreeModelFromNetworkX(
- G,
- scenario_name_attribute="name")
-
- def test_missing_weight(self):
- G = networkx.DiGraph()
- G.add_node("R", name="Root")
- G.add_node("C", name="Child")
- G.add_edge("R", "C")
- with self.assertRaises(KeyError):
- ScenarioTreeModelFromNetworkX(G)
-
- def test_bad_weight1(self):
- G = networkx.DiGraph()
- G.add_node("R",)
- G.add_node("C",)
- G.add_edge("R", "C",weight=0.8)
- with self.assertRaises(ValueError):
- ScenarioTreeModelFromNetworkX(G)
-
- def test_bad_weight2(self):
- G = networkx.DiGraph()
- G.add_node("R")
- G.add_node("C1")
- G.add_edge("R", "C1", weight=0.8)
- G.add_node("C2")
- G.add_edge("R", "C2", weight=0.1)
- with self.assertRaises(ValueError):
- ScenarioTreeModelFromNetworkX(G)
-
- def test_bad_custom_stage_names1(self):
- G = networkx.DiGraph()
- G.add_node("R",)
- G.add_node("C1")
- G.add_edge("R", "C1", weight=1.0)
- with self.assertRaises(ValueError):
- ScenarioTreeModelFromNetworkX(
- G, stage_names=["Stage1"])
-
- def test_bad_custom_stage_names2(self):
- G = networkx.DiGraph()
- G.add_node("R")
- G.add_node("C1")
- G.add_edge("R", "C1", weight=1.0)
- with self.assertRaises(ValueError):
- ScenarioTreeModelFromNetworkX(
- G, stage_names=["Stage1","Stage1"])
-
- def test_two_stage(self):
- G = networkx.DiGraph()
- G.add_node("Root")
- G.add_node("Child1")
- G.add_edge("Root", "Child1", weight=0.8)
- G.add_node("Child2")
- G.add_edge("Root", "Child2", weight=0.2)
- model = ScenarioTreeModelFromNetworkX(G)
- self.assertEqual(
- sorted(list(model.Stages)),
- sorted(["Stage1", "Stage2"]))
- self.assertEqual(
- sorted(list(model.Nodes)),
- sorted(["Root", "Child1", "Child2"]))
- self.assertEqual(
- sorted(list(model.Children["Root"])),
- sorted(["Child1", "Child2"]))
- self.assertEqual(
- sorted(list(model.Children["Child1"])),
- sorted([]))
- self.assertEqual(
- sorted(list(model.Children["Child2"])),
- sorted([]))
- self.assertEqual(
- sorted(list(model.Scenarios)),
- sorted(["Child1", "Child2"]))
- self.assertEqual(model.ConditionalProbability["Root"], 1.0)
- self.assertEqual(model.ConditionalProbability["Child1"], 0.8)
- self.assertEqual(model.ConditionalProbability["Child2"], 0.2)
- model.StageCost["Stage1"] = "c1"
- model.StageCost["Stage2"] = "c2"
- model.StageVariables["Stage1"].add("x")
- self.assertEqual(model.Bundling.value, False)
- self.assertEqual(list(model.Bundles), [])
- self.assertEqual(len(model.BundleScenarios), 0)
- ScenarioTree(scenariotreeinstance=model)
-
- def test_two_stage_more_node_attributes(self):
- G = networkx.DiGraph()
- G.add_node("Root",
- cost="c1",
- variables=["x"],
- derived_variables=["y"])
- G.add_node("Child1",
- cost="c2",
- variables=["q"],
- derived_variables=["z"])
- G.add_edge("Root", "Child1", weight=0.8)
- G.add_node("Child2",
- cost="c2",
- variables=["q"],
- derived_variables=["z"])
- G.add_edge("Root", "Child2", weight=0.2)
- model = ScenarioTreeModelFromNetworkX(G)
- self.assertEqual(
- sorted(list(model.Stages)),
- sorted(["Stage1", "Stage2"]))
- self.assertEqual(
- sorted(list(model.Nodes)),
- sorted(["Root", "Child1", "Child2"]))
- self.assertEqual(
- sorted(list(model.Children["Root"])),
- sorted(["Child1", "Child2"]))
- self.assertEqual(
- sorted(list(model.Children["Child1"])),
- sorted([]))
- self.assertEqual(
- sorted(list(model.Children["Child2"])),
- sorted([]))
- self.assertEqual(
- sorted(list(model.Scenarios)),
- sorted(["Child1", "Child2"]))
- self.assertEqual(model.ConditionalProbability["Root"], 1.0)
- self.assertEqual(model.ConditionalProbability["Child1"], 0.8)
- self.assertEqual(model.ConditionalProbability["Child2"], 0.2)
-
- self.assertEqual(model.StageCost["Stage1"].value, None)
- self.assertEqual(list(model.StageVariables["Stage1"]), [])
- self.assertEqual(list(model.StageDerivedVariables["Stage1"]), [])
-
- self.assertEqual(model.NodeCost["Root"].value, "c1")
- self.assertEqual(list(model.NodeVariables["Root"]), ["x"])
- self.assertEqual(list(model.NodeDerivedVariables["Root"]), ["y"])
-
- self.assertEqual(model.StageCost["Stage2"].value, None)
- self.assertEqual(list(model.StageVariables["Stage2"]), [])
- self.assertEqual(list(model.StageDerivedVariables["Stage2"]), [])
-
- self.assertEqual(model.NodeCost["Child1"].value, "c2")
- self.assertEqual(list(model.NodeVariables["Child1"]), ["q"])
- self.assertEqual(list(model.NodeDerivedVariables["Child1"]), ["z"])
-
- self.assertEqual(model.NodeCost["Child2"].value, "c2")
- self.assertEqual(list(model.NodeVariables["Child2"]), ["q"])
- self.assertEqual(list(model.NodeDerivedVariables["Child2"]), ["z"])
- self.assertEqual(model.Bundling.value, False)
- self.assertEqual(list(model.Bundles), [])
- self.assertEqual(len(model.BundleScenarios), 0)
- ScenarioTree(scenariotreeinstance=model)
-
- def test_two_stage_custom_names(self):
- G = networkx.DiGraph()
- G.add_node("R", label="Root")
- G.add_node("C1", label="Child1", scenario="S1")
- G.add_edge("R", "C1", probability=0.8)
- G.add_node("C2", label="Child2", scenario="S2")
- G.add_edge("R", "C2", probability=0.2)
- model = ScenarioTreeModelFromNetworkX(
- G,
- edge_probability_attribute="probability",
- node_name_attribute="label",
- stage_names=["T1","T2"],
- scenario_name_attribute="scenario")
- self.assertEqual(
- sorted(list(model.Stages)),
- sorted(["T1", "T2"]))
- self.assertEqual(
- sorted(list(model.Nodes)),
- sorted(["Root", "Child1", "Child2"]))
- self.assertEqual(
- sorted(list(model.Children["Root"])),
- sorted(["Child1", "Child2"]))
- self.assertEqual(
- sorted(list(model.Children["Child1"])),
- sorted([]))
- self.assertEqual(
- sorted(list(model.Children["Child2"])),
- sorted([]))
- self.assertEqual(
- sorted(list(model.Scenarios)),
- sorted(["S1", "S2"]))
- self.assertEqual(model.ConditionalProbability["Root"], 1.0)
- self.assertEqual(model.ConditionalProbability["Child1"], 0.8)
- self.assertEqual(model.ConditionalProbability["Child2"], 0.2)
- model.StageCost["T1"] = "c1"
- model.StageCost["T2"] = "c2"
- model.StageVariables["T1"].add("x")
- self.assertEqual(model.Bundling.value, False)
- self.assertEqual(list(model.Bundles), [])
- self.assertEqual(len(model.BundleScenarios), 0)
- ScenarioTree(scenariotreeinstance=model)
-
- def test_multi_stage(self):
- G = networkx.balanced_tree(3,2,networkx.DiGraph())
- model = ScenarioTreeModelFromNetworkX(
- G,
- edge_probability_attribute=None)
- self.assertEqual(
- sorted(list(model.Stages)),
- sorted(["Stage1", "Stage2", "Stage3"]))
- self.assertEqual(
- sorted(list(model.Nodes)),
- sorted([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]))
- self.assertEqual(
- sorted(list(model.Children[0])),
- sorted([1,2,3]))
- self.assertEqual(
- sorted(list(model.Children[1])),
- sorted([4,5,6]))
- self.assertEqual(
- sorted(list(model.Children[2])),
- sorted([7,8,9]))
- self.assertEqual(
- sorted(list(model.Children[3])),
- sorted([10,11,12]))
- self.assertEqual(
- sorted(list(model.Children[4])),
- sorted([]))
- self.assertEqual(
- sorted(list(model.Children[5])),
- sorted([]))
- self.assertEqual(
- sorted(list(model.Children[6])),
- sorted([]))
- self.assertEqual(
- sorted(list(model.Children[7])),
- sorted([]))
- self.assertEqual(
- sorted(list(model.Children[8])),
- sorted([]))
- self.assertEqual(
- sorted(list(model.Children[9])),
- sorted([]))
- self.assertEqual(
- sorted(list(model.Children[10])),
- sorted([]))
- self.assertEqual(
- sorted(list(model.Children[11])),
- sorted([]))
- self.assertEqual(
- sorted(list(model.Children[12])),
- sorted([]))
- self.assertEqual(
- sorted(list(model.Scenarios)),
- sorted([4, 5, 6, 7, 8, 9, 10, 11, 12]))
- self.assertEqual(model.ConditionalProbability[0], 1.0)
- self.assertAlmostEqual(model.ConditionalProbability[1], 1.0/3)
- self.assertAlmostEqual(model.ConditionalProbability[2], 1.0/3)
- self.assertAlmostEqual(model.ConditionalProbability[3], 1.0/3)
- self.assertAlmostEqual(model.ConditionalProbability[4], 1.0/3)
- self.assertAlmostEqual(model.ConditionalProbability[5], 1.0/3)
- self.assertAlmostEqual(model.ConditionalProbability[6], 1.0/3)
- self.assertAlmostEqual(model.ConditionalProbability[7], 1.0/3)
- self.assertAlmostEqual(model.ConditionalProbability[8], 1.0/3)
- self.assertAlmostEqual(model.ConditionalProbability[9], 1.0/3)
- self.assertAlmostEqual(model.ConditionalProbability[10], 1.0/3)
- self.assertAlmostEqual(model.ConditionalProbability[11], 1.0/3)
- self.assertAlmostEqual(model.ConditionalProbability[12], 1.0/3)
- model.StageCost["Stage1"] = "c1"
- model.StageCost["Stage2"] = "c2"
- model.StageCost["Stage3"] = "c3"
- model.StageVariables["Stage1"].add("x")
- model.StageVariables["Stage2"].add("y")
- model.StageVariables["Stage3"].add("y")
- self.assertEqual(model.Bundling.value, False)
- self.assertEqual(list(model.Bundles), [])
- self.assertEqual(len(model.BundleScenarios), 0)
- ScenarioTree(scenariotreeinstance=model)
-
- def test_unbalanced(self):
- G = networkx.DiGraph()
- G.add_node("R")
- G.add_node("0")
- G.add_node("1")
- G.add_edge("R", "0")
- G.add_edge("R", "1")
- G.add_node("00")
- G.add_node("01")
- G.add_edge("0", "00")
- G.add_edge("0", "01")
- model = ScenarioTreeModelFromNetworkX(
- G,
- edge_probability_attribute=None)
- self.assertEqual(
- sorted(list(model.Stages)),
- sorted(["Stage1", "Stage2", "Stage3"]))
- self.assertEqual(
- sorted(list(model.Nodes)),
- sorted(["R","0","1","00","01"]))
- self.assertEqual(
- sorted(list(model.Children["R"])),
- sorted(["0", "1"]))
- self.assertEqual(
- sorted(list(model.Children["0"])),
- sorted(["00","01"]))
- self.assertEqual(
- sorted(list(model.Children["1"])),
- sorted([]))
- self.assertEqual(
- sorted(list(model.Children["00"])),
- sorted([]))
- self.assertEqual(
- sorted(list(model.Children["01"])),
- sorted([]))
- self.assertEqual(
- sorted(list(model.Scenarios)),
- sorted(["00", "01", "1"]))
- self.assertEqual(model.ConditionalProbability["R"], 1.0)
- self.assertEqual(model.ConditionalProbability["0"], 0.5)
- self.assertEqual(model.ConditionalProbability["1"], 0.5)
- self.assertEqual(model.ConditionalProbability["00"], 0.5)
- self.assertEqual(model.ConditionalProbability["01"], 0.5)
- model.StageCost["Stage1"] = "c1"
- model.StageCost["Stage2"] = "c2"
- model.StageCost["Stage3"] = "c3"
- model.StageVariables["Stage1"].add("x")
- model.StageVariables["Stage2"].add("x")
- self.assertEqual(model.Bundling.value, False)
- self.assertEqual(list(model.Bundles), [])
- self.assertEqual(len(model.BundleScenarios), 0)
- ScenarioTree(scenariotreeinstance=model)
-
- def test_bundles(self):
- G = networkx.DiGraph()
- G.add_node("r")
- for i in range(4):
- G.add_node("u"+str(i), bundle=i%2)
- G.add_edge("r", "u"+str(i))
- model = ScenarioTreeModelFromNetworkX(
- G,
- edge_probability_attribute=None)
- self.assertEqual(
- sorted(list(model.Stages)),
- sorted(["Stage1", "Stage2"]))
- self.assertEqual(
- sorted(list(model.Nodes)),
- sorted(["r", "u0", "u1", "u2", "u3"]))
- self.assertEqual(
- sorted(list(model.Children["r"])),
- sorted(["u0", "u1", "u2", "u3"]))
- for i in range(4):
- self.assertEqual(
- sorted(list(model.Children["u"+str(i)])),
- sorted([]))
- self.assertEqual(
- sorted(list(model.Scenarios)),
- sorted(["u0", "u1", "u2", "u3"]))
- self.assertEqual(model.ConditionalProbability["r"], 1.0)
- for i in range(4):
- self.assertEqual(model.ConditionalProbability["u"+str(i)],
- 0.25)
- self.assertEqual(model.Bundling.value, True)
- self.assertEqual(list(model.Bundles), [0, 1])
- for k, bundle_name in enumerate(model.Bundles):
- self.assertEqual(list(model.BundleScenarios[bundle_name]),
- ["u"+str(i) for i in range(4)
- if i%2 == k])
- model.StageCost["Stage1"] = "c1"
- model.StageCost["Stage2"] = "c2"
- model.StageVariables["Stage1"].add("x")
- ScenarioTree(scenariotreeinstance=model)
-
- def test_bundles_incomplete(self):
- G = networkx.DiGraph()
- G.add_node("r")
- for i in range(4):
- G.add_node("u"+str(i), bundle="B")
- G.add_edge("r", "u"+str(i))
- model = ScenarioTreeModelFromNetworkX(
- G,
- edge_probability_attribute=None)
- self.assertEqual(model.Bundling.value, True)
- self.assertEqual(list(model.Bundles), ["B"])
- self.assertEqual(list(model.BundleScenarios["B"]),
- ["u"+str(i) for i in range(4)])
- G.nodes["u0"]["bundle"] = None
- with self.assertRaises(ValueError):
- ScenarioTreeModelFromNetworkX(
- G,
- edge_probability_attribute=None)
- del G.nodes["u0"]["bundle"]
- with self.assertRaises(ValueError):
- ScenarioTreeModelFromNetworkX(
- G,
- edge_probability_attribute=None)
-
-
-if __name__ == "__main__":
- unittest.main()
diff --git a/pyomo/pysp/tests/unit/test_util.py b/pyomo/pysp/tests/unit/test_util.py
deleted file mode 100644
index f2530fc1259..00000000000
--- a/pyomo/pysp/tests/unit/test_util.py
+++ /dev/null
@@ -1,169 +0,0 @@
-# _________________________________________________________________________
-#
-# Pyomo: Python Optimization Modeling Objects
-# Copyright (c) 2014 Sandia Corporation.
-# Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation,
-# the U.S. Government retains certain rights in this software.
-# This software is distributed under the BSD License.
-# _________________________________________________________________________
-
-import uuid
-
-import pyutilib.th as unittest
-
-from pyomo.pysp.scenariotree.util import \
- (_max_int32,
- _max_uint32,
- _convert_range_one_to_max_int32,
- _convert_range_zero_to_max_int32,
- _convert_range_one_to_max_uint32,
- _convert_range_zero_to_max_uint32,
- scenario_tree_id_to_pint32,
- scenario_tree_id_to_nzint32,
- scenario_tree_id_to_puint32,
- scenario_tree_id_to_nzuint32,
- _max_int64,
- _max_uint64,
- _convert_range_one_to_max_int64,
- _convert_range_zero_to_max_int64,
- _convert_range_one_to_max_uint64,
- _convert_range_zero_to_max_uint64,
- scenario_tree_id_to_pint64,
- scenario_tree_id_to_nzint64,
- scenario_tree_id_to_puint64,
- scenario_tree_id_to_nzuint64)
-
-class TestScenarioTreeIDToInteger(unittest.TestCase):
-
- _name = "Root"
-
- def test_scenario_tree_id_to_pint32(self):
- self.assertEqual(_convert_range_one_to_max_int32(0),
- 1)
- self.assertEqual(_convert_range_one_to_max_int32(1),
- 1)
- self.assertEqual(_convert_range_one_to_max_int32(2),
- 2)
- self.assertEqual(_convert_range_one_to_max_int32(_max_int32-1),
- _max_int32-1)
- self.assertEqual(_convert_range_one_to_max_int32(_max_int32),
- _max_int32)
- self.assertEqual(_convert_range_one_to_max_int32(_max_int32+1),
- 1)
- v = scenario_tree_id_to_pint32(self._name, str(uuid.uuid4()))
- self.assertTrue(1 <= v <= 2**31 -1)
-
- def test_scenario_tree_id_to_nzint32(self):
- self.assertEqual(_convert_range_zero_to_max_int32(0),
- 0)
- self.assertEqual(_convert_range_zero_to_max_int32(1),
- 1)
- self.assertEqual(_convert_range_zero_to_max_int32(2),
- 2)
- self.assertEqual(_convert_range_zero_to_max_int32(_max_int32-1),
- _max_int32-1)
- self.assertEqual(_convert_range_zero_to_max_int32(_max_int32),
- _max_int32)
- self.assertEqual(_convert_range_zero_to_max_int32(_max_int32+1),
- 0)
- v = scenario_tree_id_to_nzint32(self._name, str(uuid.uuid4()))
- self.assertTrue(0 <= v <= 2**31 -1)
-
- def test_scenario_tree_id_to_puint32(self):
- self.assertEqual(_convert_range_one_to_max_uint32(0),
- 1)
- self.assertEqual(_convert_range_one_to_max_uint32(1),
- 1)
- self.assertEqual(_convert_range_one_to_max_uint32(2),
- 2)
- self.assertEqual(_convert_range_one_to_max_uint32(_max_uint32-1),
- _max_uint32-1)
- self.assertEqual(_convert_range_one_to_max_uint32(_max_uint32),
- _max_uint32)
- self.assertEqual(_convert_range_one_to_max_uint32(_max_uint32+1),
- 1)
- v = scenario_tree_id_to_puint32(self._name, str(uuid.uuid4()))
- self.assertTrue(1 <= v <= 2**32 -1)
-
- def test_scenario_tree_id_to_nzuint32(self):
- self.assertEqual(_convert_range_zero_to_max_uint32(0),
- 0)
- self.assertEqual(_convert_range_zero_to_max_uint32(1),
- 1)
- self.assertEqual(_convert_range_zero_to_max_uint32(2),
- 2)
- self.assertEqual(_convert_range_zero_to_max_uint32(_max_uint32-1),
- _max_uint32-1)
- self.assertEqual(_convert_range_zero_to_max_uint32(_max_uint32),
- _max_uint32)
- self.assertEqual(_convert_range_zero_to_max_uint32(_max_uint32+1),
- 0)
- v = scenario_tree_id_to_nzuint32(self._name, str(uuid.uuid4()))
- self.assertTrue(0 <= v <= 2**32 -1)
-
- def test_scenario_tree_id_to_pint64(self):
- self.assertEqual(_convert_range_one_to_max_int64(0),
- 1)
- self.assertEqual(_convert_range_one_to_max_int64(1),
- 1)
- self.assertEqual(_convert_range_one_to_max_int64(2),
- 2)
- self.assertEqual(_convert_range_one_to_max_int64(_max_int64-1),
- _max_int64-1)
- self.assertEqual(_convert_range_one_to_max_int64(_max_int64),
- _max_int64)
- self.assertEqual(_convert_range_one_to_max_int64(_max_int64+1),
- 1)
- v = scenario_tree_id_to_pint64(self._name, str(uuid.uuid4()))
- self.assertTrue(1 <= v <= 2**63 -1)
-
- def test_scenario_tree_id_to_nzint64(self):
- self.assertEqual(_convert_range_zero_to_max_int64(0),
- 0)
- self.assertEqual(_convert_range_zero_to_max_int64(1),
- 1)
- self.assertEqual(_convert_range_zero_to_max_int64(2),
- 2)
- self.assertEqual(_convert_range_zero_to_max_int64(_max_int64-1),
- _max_int64-1)
- self.assertEqual(_convert_range_zero_to_max_int64(_max_int64),
- _max_int64)
- self.assertEqual(_convert_range_zero_to_max_int64(_max_int64+1),
- 0)
- v = scenario_tree_id_to_nzint64(self._name, str(uuid.uuid4()))
- self.assertTrue(0 <= v <= 2**63 -1)
-
- def test_scenario_tree_id_to_puint64(self):
- self.assertEqual(_convert_range_one_to_max_uint64(0),
- 1)
- self.assertEqual(_convert_range_one_to_max_uint64(1),
- 1)
- self.assertEqual(_convert_range_one_to_max_uint64(2),
- 2)
- self.assertEqual(_convert_range_one_to_max_uint64(_max_uint64-1),
- _max_uint64-1)
- self.assertEqual(_convert_range_one_to_max_uint64(_max_uint64),
- _max_uint64)
- self.assertEqual(_convert_range_one_to_max_uint64(_max_uint64+1),
- 1)
- v = scenario_tree_id_to_puint64(self._name, str(uuid.uuid4()))
- self.assertTrue(1 <= v <= 2**64 -1)
-
- def test_scenario_tree_id_to_nzuint64(self):
- self.assertEqual(_convert_range_zero_to_max_uint64(0),
- 0)
- self.assertEqual(_convert_range_zero_to_max_uint64(1),
- 1)
- self.assertEqual(_convert_range_zero_to_max_uint64(2),
- 2)
- self.assertEqual(_convert_range_zero_to_max_uint64(_max_uint64-1),
- _max_uint64-1)
- self.assertEqual(_convert_range_zero_to_max_uint64(_max_uint64),
- _max_uint64)
- self.assertEqual(_convert_range_zero_to_max_uint64(_max_uint64+1),
- 0)
- v = scenario_tree_id_to_nzuint64(self._name, str(uuid.uuid4()))
- self.assertTrue(0 <= v <= 2**64 -1)
-
-if __name__ == "__main__":
- unittest.main()
diff --git a/pyomo/pysp/tests/unit/testdata/ReferenceModel.py b/pyomo/pysp/tests/unit/testdata/ReferenceModel.py
deleted file mode 100644
index dd34bdc1e4e..00000000000
--- a/pyomo/pysp/tests/unit/testdata/ReferenceModel.py
+++ /dev/null
@@ -1,27 +0,0 @@
-# ___________________________________________________________________________
-#
-# Pyomo: Python Optimization Modeling Objects
-# Copyright 2017 National Technology and Engineering Solutions of Sandia, LLC
-# Under the terms of Contract DE-NA0003525 with National Technology and
-# Engineering Solutions of Sandia, LLC, the U.S. Government retains certain
-# rights in this software.
-# This software is distributed under the 3-clause BSD License.
-# ___________________________________________________________________________
-
-from pyomo.environ import AbstractModel, Var, Param, Expression, Objective, Constraint
-
-model = AbstractModel()
-model.x = Var()
-model.p = Param(mutable=True, initialize=1.0)
-def cost_rule(model, i):
- if i == 1:
- return model.x
- else:
- return 0.0
-model.cost = Expression([1,2], rule=cost_rule)
-def o_rule(model):
- return model.x
-model.o = Objective(rule=o_rule)
-def c_rule(model):
- return model.x >= model.p
-model.c = Constraint(rule=c_rule)
diff --git a/pyomo/pysp/tests/unit/testdata/ScenarioStructure.dat b/pyomo/pysp/tests/unit/testdata/ScenarioStructure.dat
deleted file mode 100644
index 692ebde2cee..00000000000
--- a/pyomo/pysp/tests/unit/testdata/ScenarioStructure.dat
+++ /dev/null
@@ -1,52 +0,0 @@
-set Stages :=
-t1
-t2
-;
-
-set Nodes :=
-root
-n1
-n2
-n3
-;
-
-param NodeStage :=
-root t1
-n1 t2
-n2 t2
-n3 t2
-;
-
-set Children[root] :=
-n1
-n2
-n3
-;
-
-param ConditionalProbability :=
-root 1.0
-n1 0.33333333
-n2 0.33333334
-n3 0.33333333
-;
-
-set Scenarios :=
-s1
-s2
-s3
-;
-
-param ScenarioLeafNode :=
-s1 n1
-s2 n2
-s3 n3
-;
-
-set StageVariables[t1] :=
-x
-;
-
-param StageCost :=
-t1 cost[1]
-t2 cost[2]
-;
diff --git a/pyomo/pysp/tests/unit/testdata/ScenarioStructure.py b/pyomo/pysp/tests/unit/testdata/ScenarioStructure.py
deleted file mode 100644
index 0102ef89ba0..00000000000
--- a/pyomo/pysp/tests/unit/testdata/ScenarioStructure.py
+++ /dev/null
@@ -1,24 +0,0 @@
-import networkx
-
-G = networkx.DiGraph()
-G.add_node("root",
- variables=["x"],
- cost="cost[1]")
-
-G.add_node("s1",
- cost="cost[2]")
-G.add_edge("root",
- "s1",
- weight=0.33333333)
-
-G.add_node("s2",
- cost="cost[2]")
-G.add_edge("root",
- "s2",
- weight=0.33333334)
-
-G.add_node("s3",
- cost="cost[2]")
-G.add_edge("root",
- "s3",
- weight=0.33333333)
diff --git a/pyomo/pysp/tests/unit/testdata/archive_test.tgz b/pyomo/pysp/tests/unit/testdata/archive_test.tgz
deleted file mode 100644
index a10ca174c0a..00000000000
Binary files a/pyomo/pysp/tests/unit/testdata/archive_test.tgz and /dev/null differ
diff --git a/pyomo/pysp/tests/unit/testdata/both_callbacks.py b/pyomo/pysp/tests/unit/testdata/both_callbacks.py
deleted file mode 100644
index f7cd1861ea6..00000000000
--- a/pyomo/pysp/tests/unit/testdata/both_callbacks.py
+++ /dev/null
@@ -1,65 +0,0 @@
-# ___________________________________________________________________________
-#
-# Pyomo: Python Optimization Modeling Objects
-# Copyright 2017 National Technology and Engineering Solutions of Sandia, LLC
-# Under the terms of Contract DE-NA0003525 with National Technology and
-# Engineering Solutions of Sandia, LLC, the U.S. Government retains certain
-# rights in this software.
-# This software is distributed under the 3-clause BSD License.
-# ___________________________________________________________________________
-
-from pyomo.environ import AbstractModel, Var, Param, Expression, Objective, Constraint
-
-model = AbstractModel()
-model.x = Var()
-model.p = Param(mutable=True, initialize=1.0)
-def cost_rule(model, i):
- if i == 1:
- return model.x
- else:
- return 0.0
-model.cost = Expression([1,2], rule=cost_rule)
-def o_rule(model):
- return model.x
-model.o = Objective(rule=o_rule)
-def c_rule(model):
- return model.x >= model.p
-model.c = Constraint(rule=c_rule)
-
-def pysp_instance_creation_callback(scenario_tree, scenario_name, node_names):
- instance = model.create_instance()
- if scenario_name == "s1":
- instance.p.value = 1.0
- elif scenario_name == "s2":
- instance.p.value = 2.0
- else:
- assert scenario_name == "s3"
- instance.p.value = 3.0
- return instance
-
-def pysp_scenario_tree_model_callback():
- import networkx
-
- G = networkx.DiGraph()
- G.add_node("root",
- variables=["x"],
- cost="cost[1]")
-
- G.add_node("s1",
- cost="cost[2]")
- G.add_edge("root",
- "s1",
- weight=0.33333333)
-
- G.add_node("s2",
- cost="cost[2]")
- G.add_edge("root",
- "s2",
- weight=0.33333334)
-
- G.add_node("s3",
- cost="cost[2]")
- G.add_edge("root",
- "s3",
- weight=0.33333333)
- return G
diff --git a/pyomo/pysp/tests/unit/testdata/bundles.dat b/pyomo/pysp/tests/unit/testdata/bundles.dat
deleted file mode 100644
index 53140d07f37..00000000000
--- a/pyomo/pysp/tests/unit/testdata/bundles.dat
+++ /dev/null
@@ -1,11 +0,0 @@
-param Bundling := True;
-
-set Bundles :=
-b1
-b2
-b3
-;
-
-set BundleScenarios[b1] := s1;
-set BundleScenarios[b2] := s2;
-set BundleScenarios[b3] := s3;
diff --git a/pyomo/pysp/tests/unit/testdata/n1.dat b/pyomo/pysp/tests/unit/testdata/n1.dat
deleted file mode 100644
index dfb7d4f7ccd..00000000000
--- a/pyomo/pysp/tests/unit/testdata/n1.dat
+++ /dev/null
@@ -1 +0,0 @@
-param p := 1.0;
diff --git a/pyomo/pysp/tests/unit/testdata/n2.dat b/pyomo/pysp/tests/unit/testdata/n2.dat
deleted file mode 100644
index 5e432955ee5..00000000000
--- a/pyomo/pysp/tests/unit/testdata/n2.dat
+++ /dev/null
@@ -1 +0,0 @@
-param p := 2.0;
\ No newline at end of file
diff --git a/pyomo/pysp/tests/unit/testdata/n3.dat b/pyomo/pysp/tests/unit/testdata/n3.dat
deleted file mode 100644
index f528c57013a..00000000000
--- a/pyomo/pysp/tests/unit/testdata/n3.dat
+++ /dev/null
@@ -1 +0,0 @@
-param p := 3.0;
\ No newline at end of file
diff --git a/pyomo/pysp/tests/unit/testdata/reference_test_model.py b/pyomo/pysp/tests/unit/testdata/reference_test_model.py
deleted file mode 100644
index dd34bdc1e4e..00000000000
--- a/pyomo/pysp/tests/unit/testdata/reference_test_model.py
+++ /dev/null
@@ -1,27 +0,0 @@
-# ___________________________________________________________________________
-#
-# Pyomo: Python Optimization Modeling Objects
-# Copyright 2017 National Technology and Engineering Solutions of Sandia, LLC
-# Under the terms of Contract DE-NA0003525 with National Technology and
-# Engineering Solutions of Sandia, LLC, the U.S. Government retains certain
-# rights in this software.
-# This software is distributed under the 3-clause BSD License.
-# ___________________________________________________________________________
-
-from pyomo.environ import AbstractModel, Var, Param, Expression, Objective, Constraint
-
-model = AbstractModel()
-model.x = Var()
-model.p = Param(mutable=True, initialize=1.0)
-def cost_rule(model, i):
- if i == 1:
- return model.x
- else:
- return 0.0
-model.cost = Expression([1,2], rule=cost_rule)
-def o_rule(model):
- return model.x
-model.o = Objective(rule=o_rule)
-def c_rule(model):
- return model.x >= model.p
-model.c = Constraint(rule=c_rule)
diff --git a/pyomo/pysp/tests/unit/testdata/reference_test_model_with_callback.py b/pyomo/pysp/tests/unit/testdata/reference_test_model_with_callback.py
deleted file mode 100644
index 36ebb7023ad..00000000000
--- a/pyomo/pysp/tests/unit/testdata/reference_test_model_with_callback.py
+++ /dev/null
@@ -1,38 +0,0 @@
-# ___________________________________________________________________________
-#
-# Pyomo: Python Optimization Modeling Objects
-# Copyright 2017 National Technology and Engineering Solutions of Sandia, LLC
-# Under the terms of Contract DE-NA0003525 with National Technology and
-# Engineering Solutions of Sandia, LLC, the U.S. Government retains certain
-# rights in this software.
-# This software is distributed under the 3-clause BSD License.
-# ___________________________________________________________________________
-
-from pyomo.environ import AbstractModel, Var, Param, Expression, Objective, Constraint
-
-model = AbstractModel()
-model.x = Var()
-model.p = Param(mutable=True, initialize=1.0)
-def cost_rule(model, i):
- if i == 1:
- return model.x
- else:
- return 0.0
-model.cost = Expression([1,2], rule=cost_rule)
-def o_rule(model):
- return model.x
-model.o = Objective(rule=o_rule)
-def c_rule(model):
- return model.x >= model.p
-model.c = Constraint(rule=c_rule)
-
-def pysp_instance_creation_callback(scenario_tree, scenario_name, node_names):
- instance = model.create_instance()
- if scenario_name == "s1":
- instance.p.value = 1.0
- elif scenario_name == "s2":
- instance.p.value = 2.0
- else:
- assert scenario_name == "s3"
- instance.p.value = 3.0
- return instance
diff --git a/pyomo/pysp/tests/unit/testdata/reference_test_scenario_tree.dat b/pyomo/pysp/tests/unit/testdata/reference_test_scenario_tree.dat
deleted file mode 100644
index 692ebde2cee..00000000000
--- a/pyomo/pysp/tests/unit/testdata/reference_test_scenario_tree.dat
+++ /dev/null
@@ -1,52 +0,0 @@
-set Stages :=
-t1
-t2
-;
-
-set Nodes :=
-root
-n1
-n2
-n3
-;
-
-param NodeStage :=
-root t1
-n1 t2
-n2 t2
-n3 t2
-;
-
-set Children[root] :=
-n1
-n2
-n3
-;
-
-param ConditionalProbability :=
-root 1.0
-n1 0.33333333
-n2 0.33333334
-n3 0.33333333
-;
-
-set Scenarios :=
-s1
-s2
-s3
-;
-
-param ScenarioLeafNode :=
-s1 n1
-s2 n2
-s3 n3
-;
-
-set StageVariables[t1] :=
-x
-;
-
-param StageCost :=
-t1 cost[1]
-t2 cost[2]
-;
diff --git a/pyomo/pysp/tests/unit/testdata/reference_test_scenario_tree_model.py b/pyomo/pysp/tests/unit/testdata/reference_test_scenario_tree_model.py
deleted file mode 100644
index 429c0e00fa4..00000000000
--- a/pyomo/pysp/tests/unit/testdata/reference_test_scenario_tree_model.py
+++ /dev/null
@@ -1,74 +0,0 @@
-# ___________________________________________________________________________
-#
-# Pyomo: Python Optimization Modeling Objects
-# Copyright 2017 National Technology and Engineering Solutions of Sandia, LLC
-# Under the terms of Contract DE-NA0003525 with National Technology and
-# Engineering Solutions of Sandia, LLC, the U.S. Government retains certain
-# rights in this software.
-# This software is distributed under the 3-clause BSD License.
-# ___________________________________________________________________________
-
-import os
-import tempfile
-
-from pyomo.pysp.scenariotree.tree_structure_model import \
- CreateAbstractScenarioTreeModel
-
-with tempfile.NamedTemporaryFile(mode="w", suffix=".dat", delete=False) as f:
- f.write("""
-set Stages :=
-t1
-t2
-;
-
-set Nodes :=
-root
-n1
-n2
-n3
-;
-
-param NodeStage :=
-root t1
-n1 t2
-n2 t2
-n3 t2
-;
-
-set Children[root] :=
-n1
-n2
-n3
-;
-
-param ConditionalProbability :=
-root 1.0
-n1 0.33333333
-n2 0.33333334
-n3 0.33333333
-;
-
-set Scenarios :=
-s1
-s2
-s3
-;
-
-param ScenarioLeafNode :=
-s1 n1
-s2 n2
-s3 n3
-;
-
-set StageVariables[t1] :=
-x
-;
-
-param StageCost :=
-t1 cost[1]
-t2 cost[2]
-;
- """)
-
-model = CreateAbstractScenarioTreeModel().create_instance(f.name)
-os.remove(f.name)
diff --git a/pyomo/pysp/tests/unit/testdata/s1.dat b/pyomo/pysp/tests/unit/testdata/s1.dat
deleted file mode 100644
index dfb7d4f7ccd..00000000000
--- a/pyomo/pysp/tests/unit/testdata/s1.dat
+++ /dev/null
@@ -1 +0,0 @@
-param p := 1.0;
diff --git a/pyomo/pysp/tests/unit/testdata/s2.dat b/pyomo/pysp/tests/unit/testdata/s2.dat
deleted file mode 100644
index 5e432955ee5..00000000000
--- a/pyomo/pysp/tests/unit/testdata/s2.dat
+++ /dev/null
@@ -1 +0,0 @@
-param p := 2.0;
\ No newline at end of file
diff --git a/pyomo/pysp/tests/unit/testdata/s3.dat b/pyomo/pysp/tests/unit/testdata/s3.dat
deleted file mode 100644
index f528c57013a..00000000000
--- a/pyomo/pysp/tests/unit/testdata/s3.dat
+++ /dev/null
@@ -1 +0,0 @@
-param p := 3.0;
\ No newline at end of file
diff --git a/pyomo/pysp/tests/unit/testdata/yaml_data/s1.yaml b/pyomo/pysp/tests/unit/testdata/yaml_data/s1.yaml
deleted file mode 100644
index c4f3ea28447..00000000000
--- a/pyomo/pysp/tests/unit/testdata/yaml_data/s1.yaml
+++ /dev/null
@@ -1,3 +0,0 @@
-null:
- p:
- null: 1.0
diff --git a/pyomo/pysp/tests/unit/testdata/yaml_data/s2.yaml b/pyomo/pysp/tests/unit/testdata/yaml_data/s2.yaml
deleted file mode 100644
index b16fdff8586..00000000000
--- a/pyomo/pysp/tests/unit/testdata/yaml_data/s2.yaml
+++ /dev/null
@@ -1,3 +0,0 @@
-null:
- p:
- null: 2.0
diff --git a/pyomo/pysp/tests/unit/testdata/yaml_data/s3.yaml b/pyomo/pysp/tests/unit/testdata/yaml_data/s3.yaml
deleted file mode 100644
index 220f5f9c4c6..00000000000
--- a/pyomo/pysp/tests/unit/testdata/yaml_data/s3.yaml
+++ /dev/null
@@ -1,3 +0,0 @@
-null:
- p:
- null: 3.0
diff --git a/pyomo/pysp/util/__init__.py b/pyomo/pysp/util/__init__.py
deleted file mode 100644
index 7ba039c3558..00000000000
--- a/pyomo/pysp/util/__init__.py
+++ /dev/null
@@ -1,13 +0,0 @@
-# ___________________________________________________________________________
-#
-# Pyomo: Python Optimization Modeling Objects
-# Copyright 2017 National Technology and Engineering Solutions of Sandia, LLC
-# Under the terms of Contract DE-NA0003525 with National Technology and
-# Engineering Solutions of Sandia, LLC, the U.S. Government retains certain
-# rights in this software.
-# This software is distributed under the 3-clause BSD License.
-# ___________________________________________________________________________
-
-import pyomo.pysp.util.config
-import pyomo.pysp.util.configured_object
-import pyomo.pysp.util.misc
diff --git a/pyomo/pysp/util/config.py b/pyomo/pysp/util/config.py
deleted file mode 100644
index c9769e00b6b..00000000000
--- a/pyomo/pysp/util/config.py
+++ /dev/null
@@ -1,2765 +0,0 @@
-# ___________________________________________________________________________
-#
-# Pyomo: Python Optimization Modeling Objects
-# Copyright 2017 National Technology and Engineering Solutions of Sandia, LLC
-# Under the terms of Contract DE-NA0003525 with National Technology and
-# Engineering Solutions of Sandia, LLC, the U.S. Government retains certain
-# rights in this software.
-# This software is distributed under the 3-clause BSD License.
-# ___________________________________________________________________________
-
-#
-# This module is meant as a tool for developers. Rarely should a user
-# require any functions defined in this module.
-#
-
-__all__ = ()
-
-import sys
-import copy
-import logging
-import textwrap
-
-from pyomo.common.config import (ConfigValue,
- ConfigBlock)
-from pyomo.core.base import maximize, minimize
-import argparse
-
-import six
-
-logger = logging.getLogger('pyomo.pysp')
-
-# Major Changes:
-# - Separated scenario tree manager from solver manager
-# - misc renames (boundsetter -> postinit)
-# - deprecate rhosetter?
-
-# FINISHED TODOS:
-# - restoreCachedSolutions to restore_cached_solutions
-# - cacheSolutions to cache_solutions
-# - anything phpyro named to pyro
-# - from model_name to model_location
-# - objective_sense to objective_sense_stage_based
-# - from bound_cfgfile to postinit_callback_location
-# - from aggregate_cfgfile to aggregategetter_callback_location
-# - from "--scenario-tree-seed" to "--scenario-tree-random-seed"
-# - from solver_manager scenario_tree_manager
-# - profile_memory implemented?
-# - add and implement option to disable PH advanced preprocessing
-
-# TODO:
-# - add pyro solver manager support with pyro scenario tree manager
-# - implement ph_timelimit
-# - generalize for options configurations with enable_ww_extensions, ww_extension_cfgfile, ww_extension_annotationfile, user_defined_extension,
-# - generalize options collection for ph convergers
-
-# Maybe TODOS:
-# - from rho_cfgfile to phrhosetter_callback_location
-# - Default True? for enable_normalized_termdiff_convergence
-# - implementation of drop_proximal_terms
-
-#
-# Subclassing the pyutilib versions just
-# in case we need to add functionality
-#
-class PySPConfigValue(ConfigValue):
- __slots__ = ('ap_group','ap_kwds','ap_args')
-
- def __init__(self, *args, **kwds):
- super(PySPConfigValue, self).__init__(*args, **kwds)
- self.ap_group = None
- self.ap_args = ()
- self.ap_kwds = {}
-
- def __getstate__(self):
- ans = super(PySPConfigValue, self).__getstate__()
- for key in PySPConfigValue.__slots__:
- ans[key] = getattr(self, key)
- return ans
-
- def __str__(self):
- return ("%s(name=%s)" % (self.__class__.__name__,
- self._name))
- __repr__ = __str__
-
-class PySPConfigBlock(ConfigBlock):
-
- def about(self, name):
- """Return a summary string for an option
- registered on this block."""
- configval = self.get(name)
- outstr = ("%s: %s\n"
- % (configval.__class__.__name__,
- configval._name))
- outstr += (" - type: %s\n"
- " - default: %s\n"
- % ((configval._domain.doc if \
- hasattr(configval._domain, 'doc') else \
- configval._domain),
- configval._default))
- if configval._description is None:
- lines = ["None"]
- else:
- lines = textwrap.wrap(configval._description,
- width=58)
- while lines[-1].strip() == "":
- lines.pop()
- for i, line in enumerate(lines):
- if i == 0:
- tmp = " - doc: %s"
- else:
- tmp = " %s"
- if i != len(lines) - 1:
- tmp += "\n"
- tmp %= line
- outstr += tmp
-
- return outstr
-
- #
- # Overriding the behavior of ConfigBlock.display
- # so that it prints by default. I think it is
- # confusing that a method on that class named
- # 'display' returns a string
- #
- def display(self, ostream=None, **kwds):
- """Displays the list of options registered to this
- block. The optional keyword 'ostream' can be a file
- like object to write to."""
- # Note: this functionality has been migrated into the
- # PyUtilib.ConfigBlock. We will attempt the new API and fall
- # back on the old one in case PyUtilib is too old.
- try:
- super(PySPConfigBlock, self).display(ostream=ostream, **kwds)
- except TypeError:
- outstr = super(PySPConfigBlock, self).display(**kwds)
- if ostream is None:
- print(outstr)
- else:
- ostream.write(outstr)
-
- #
- # Change the default behavior of ConfigBlock when
- # _implicit_declaration are allowed. For some reason, in
- # this case underscores are removed in implicitly
- # assigned names (which does not happen when __setitem__
- # is called).
- #
- def __setattr__(self, name, value):
- # this is copied from the base class, except the
- # part that replaces '_' with ' ' is removed
- if name in ConfigBlock._all_slots:
- super(ConfigBlock, self).__setattr__(name, value)
- else:
- ConfigBlock.__setitem__(self, name, value)
-
- #
- # Allow deletion of entries to get around issues with
- # clashing options registration
- #
- def __delattr__(self, name):
- if name not in self._data:
- _name = name.replace('_', ' ')
- if _name not in self._data:
- raise AttributeError("Unknown attribute '%s'" % name)
- name = _name
- self._data[name]._parent = None
- del self._data[name]
- self._decl_order.remove(name)
-
- #
- # Change more strange default behavior for ConfigBlock
- # when _implicit_declaration are allowed. If the userSet
- # flag gets set to True on ConfigBlock (happens when new
- # implicit entry is assigned), this will cause strange
- # behavior with the user_values() method (it returns
- # this block).
- #
- # Also, make sure that implicitly created entries
- # have their _userSet flag set to True.
- def add(self, name, config):
- ans = super(PySPConfigBlock, self).add(name, config)
- ans._userSet = True
- self._userSet = False
- return ans
-
- def check_usage(self, error=True):
- """Check for usage of options that have set
- by a user.
-
- Args:
- error (bool): When :const:`True` (default), an
- exception is raised when any options set by
- the user have not been accessed by any
- code. Otherwise, a warning is logged.
-
- Returns:
- :const:`True` when all options set by the user \
- have been accessed; otherwise, returns \
- :const:`False` if the :attr:`error` keyword is
- set to :const:`False`.
-
- Raises:
- ValueError: when user-set options exist but have
- not been accessed (and the :attr:`error`
- keyword is :const:`True`)
- """
- ignored_options = dict((_c._name, _c.value(False))
- for _c in self.unused_user_values())
- if len(ignored_options):
- msg = ("The following options were "
- "explicitly set but never accessed:\n")
- for name in sorted(ignored_options):
- msg += (" - %s: %s\n" % (name, ignored_options[name]))
- msg += ("If you believe this is a bug, please report it "
- "to the PySP developers.\n")
- logger.warning(msg)
- if error:
- raise ValueError(msg)
- else:
- return False
- return True
-
-
-def check_options_match(opt1,
- opt2,
- include_argparse=True,
- include_default=True,
- include_value=True,
- include_accessed=True):
- assert isinstance(opt1, PySPConfigValue)
- assert isinstance(opt2, PySPConfigValue)
- if (opt1._domain == opt2._domain) and \
- (opt1._description == opt2._description) and \
- (opt1._doc == opt2._doc) and \
- (opt1._visibility == opt2._visibility) and \
- ((not include_argparse) or (opt1._argparse == opt2._argparse)) and \
- ((not include_default) or (opt1._default == opt2._default)) and \
- ((not include_value) or (opt1._data == opt2._data)) and \
- ((not include_value) or (opt1._userSet == opt2._userSet)) and \
- ((not include_accessed) or (opt1._userAccessed == opt2._userAccessed)):
- return
-
- msg = "Options do not match. This is likely a developer error. Summary:\n"
- if opt1._domain != opt2._domain:
- msg += "\n"
- msg += "opt1._domain: "+str(opt1._domain)+"\n"
- msg += "opt2._domain: "+str(opt2._domain)+"\n"
- if opt1._description != opt2._description:
- msg += "\n"
- msg += "opt1._description: "+str(opt1._description)+"\n"
- msg += "opt2._description: "+str(opt2._description)+"\n"
- if opt1._doc != opt2._doc:
- msg += "\n"
- msg += "opt1._doc: "+str(opt1._doc)+"\n"
- msg += "opt2._doc: "+str(opt2._doc)+"\n"
- if opt1._visibility != opt2._visibility:
- msg += "\n"
- msg += "opt1._visibility: "+str(opt1._visibility)+"\n"
- msg += "opt2._visibility: "+str(opt2._visibility)+"\n"
- if (include_argparse and (opt1._argparse != opt2._argparse)):
- msg += "\n"
- msg += "opt1._argparse: "+str(opt1._argparse)+"\n"
- msg += "opt2._argparse: "+str(opt2._argparse)+"\n"
- if (include_default and (opt1._default != opt2._default)):
- msg += "\n"
- msg += "opt1._default: "+str(opt1._default)+"\n"
- msg += "opt2._default: "+str(opt2._default)+"\n"
- if (include_value and (opt1._data != opt2._data)):
- msg += "\n"
- msg += "opt1._data: "+str(opt1._data)+"\n"
- msg += "opt2._data: "+str(opt2._data)+"\n"
- if (include_value and (opt1._userSet != opt2._userSet)):
- msg += "\n"
- msg += "opt1._userSet: "+str(opt1._userSet)+"\n"
- msg += "opt2._userSet: "+str(opt2._userSet)+"\n"
- if (include_accessed and (opt1._userAccessed != opt2._userAccessed)):
- msg += "\n"
- msg += "opt1._userAccessed: "+str(opt1._userAccessed)+"\n"
- msg += "opt2._userAccessed: "+str(opt2._userAccessed)+"\n"
- raise ValueError(msg)
-
-#
-# register an option to a PySPConfigBlock,
-# making sure nothing is overwritten
-#
-def safe_declare_option(configblock,
- name,
- configvalue,
- ap_group=None,
- relax_default_check=False,
- declare_for_argparse=False,
- ap_args=None,
- ap_kwds=None):
- assert isinstance(configblock, PySPConfigBlock)
- assert configvalue._parent == None
- assert configvalue._userSet == False
- assert configvalue._userAccessed == False
- if ap_group is not None:
- assert isinstance(ap_group, six.string_types)
- configvalue.ap_group = ap_group
- if ap_args is not None:
- assert type(ap_args) is tuple
- configvalue.ap_args = ap_args
- if ap_kwds is not None:
- assert type(ap_kwds) is dict
- configvalue.ap_kwds = ap_kwds
- if name not in configblock:
- configblock.declare(
- name,
- copy.deepcopy(configvalue))
- if declare_for_argparse:
- assert configblock.get(name)._argparse is None
- if ap_args is None:
- ap_args = configblock.get(name).ap_args
- if ap_kwds is None:
- ap_kwds = configblock.get(name).ap_kwds
- if (configblock.get(name).ap_group is not None) and \
- ('group' not in ap_kwds):
- ap_kwds['group'] = configblock.get(name).ap_group
- configblock.get(name).\
- declare_as_argument(*ap_args, **ap_kwds)
- else:
- current = configblock.get(name)
- check_options_match(current,
- configvalue,
- include_default=not relax_default_check,
- include_argparse=False,
- include_value=False,
- include_accessed=False)
- if declare_for_argparse:
- assert current._argparse is None
- if ap_args is None:
- ap_args = current.ap_args
- if ap_kwds is None:
- ap_kwds = current.ap_kwds
- if (current.ap_group is not None) and \
- ('group' not in ap_kwds):
- ap_kwds['group'] = current.ap_group
- current.declare_as_argument(*ap_args, **ap_kwds)
-
-#
-# Register an option to a PySPConfigBlock,
-# throwing an error if the name is not new
-#
-def safe_declare_unique_option(configblock,
- name,
- configvalue,
- ap_group=None,
- declare_for_argparse=False,
- ap_args=None,
- ap_kwds=None,
- check_for_deprecated=False):
- assert isinstance(configblock, PySPConfigBlock)
- assert configvalue._parent == None
- assert configvalue._userSet == False
- assert configvalue._userAccessed == False
- if name in configblock:
- raise RuntimeError(
- "Option registration failed. An option "
- "with name '%s' already exists on the PySPConfigBlock."
- % (name))
- if ap_group is not None:
- assert isinstance(ap_group, six.string_types)
- configvalue.ap_group = ap_group
- if ap_args is not None:
- assert type(ap_args) is tuple
- configvalue.ap_args = ap_args
- if ap_kwds is not None:
- assert type(ap_kwds) is dict
- configvalue.ap_kwds = ap_kwds
- configblock.declare(
- name,
- copy.deepcopy(configvalue))
- assert configblock.get(name)._argparse is None
- if declare_for_argparse:
- if ap_args is None:
- ap_args = configblock.get(name).ap_args
- if ap_kwds is None:
- ap_kwds = configblock.get(name).ap_kwds
- if (configblock.get(name).ap_group is not None) and \
- ('group' not in ap_kwds):
- ap_kwds['group'] = configblock.get(name).ap_group
- configblock.get(name).\
- declare_as_argument(*ap_args, **ap_kwds)
- assert not check_for_deprecated
- else:
- if check_for_deprecated:
- if name in _map_to_deprecated:
- deprecated_value = _map_to_deprecated[name]
- assert deprecated_value._parent == _deprecated_block
- assert deprecated_value._userSet == False
- assert deprecated_value._userAccessed == False
- deprecated_value._parent = None
- deprecated_value_copy = copy.deepcopy(deprecated_value)
- deprecated_value._parent = _deprecated_block
- configblock.declare(deprecated_value_copy._name,
- deprecated_value_copy)
-
-#
-# Register an option to a PySPConfigBlock,
-# throwing an error if the name is not new.
-# After registering the option, make sure
-# it has been declared for argparse
-#
-def safe_register_unique_option(configblock,
- name,
- configvalue,
- ap_group=None,
- ap_args=None,
- ap_kwds=None):
- safe_declare_unique_option(configblock,
- name,
- configvalue,
- ap_group=ap_group,
- ap_args=ap_args,
- ap_kwds=ap_kwds,
- declare_for_argparse=True)
-
-common_block = PySPConfigBlock("A collection of common PySP options")
-
-def _domain_unit_interval(val):
- val = float(val)
- if not (0 <= val <= 1):
- raise ValueError(
- "Value %s is not in the interval [0,1]."
- % (val))
- return val
-_domain_unit_interval.doc = \
- ""
-
-def _domain_percent(val):
- val = float(val)
- if not (0 <= val <= 100):
- raise ValueError(
- "Value %s is not between 0 and 100")
- return val
-_domain_percent.doc = \
- ""
-
-def _domain_nonnegative_integer(val):
- val = int(val)
- if val < 0:
- raise ValueError(
- "Value %s is not a non-negative integer."
- % (val))
- return val
-_domain_nonnegative_integer.doc = \
- ""
-
-def _domain_positive_integer(val):
- val = int(val)
- if val <= 0:
- raise ValueError(
- "Value %s is not a positive integer."
- % (val))
- return val
-_domain_positive_integer.doc = \
- ""
-
-class _domain_integer_interval(object):
- def __init__(self, start, stop):
- assert start <= stop
- assert int(start) == start
- assert int(stop) == stop
- self.start = int(start)
- self.stop = int(stop)
- self.doc = (""
-
-def _domain_positive(val):
- val = float(val)
- if val <= 0:
- raise ValueError(
- "Value %s is not positive."
- % (val))
- return val
-_domain_nonnegative.doc = \
- ""
-
-def _domain_must_be_str(val):
- if not isinstance(val, six.string_types):
- raise TypeError(
- "Value must be a built-in "
- "string type, not '%s'" % (type(val)))
- return val
-_domain_must_be_str.doc = \
- ""
-
-def _domain_tuple_of_str(val):
- if isinstance(val, six.string_types):
- return (val,)
- elif not isinstance(val, (list, tuple)):
- raise TypeError(
- "Value must be a built-in list or "
- "tuple of string types, not '%s'" % (type(val)))
- else:
- for _v in val:
- if not isinstance(_v, six.string_types):
- raise TypeError(
- "Value must be a built-in "
- "string type, not '%s'" % (type(_v)))
- return tuple(_v for _v in val)
-_domain_tuple_of_str.doc = \
- ""
-
-def _domain_tuple_of_str_or_dict(val):
- if isinstance(val, six.string_types):
- return (val,)
- elif isinstance(val, (list, tuple)):
- for _v in val:
- if not isinstance(_v, six.string_types):
- raise TypeError(
- "Value must be a built-in "
- "string type, not '%s'" % (type(_v)))
- return tuple(_v for _v in val)
- elif isinstance(val, dict):
- for _v in val:
- if not isinstance(_v, six.string_types):
- raise TypeError(
- "Dict keys must be a built-in "
- "string type, not '%s'" % (type(_v)))
- return val
- else:
- raise TypeError(
- "Value must be a built-in list or "
- "tuple of string types, or a dict, not '%s'" % (type(val)))
-_domain_tuple_of_str_or_dict.doc = \
- ""
-
-#
-# Common 'Input Options'
-#
-_input_options_group_title = "Input Options"
-
-safe_declare_unique_option(
- common_block,
- "model_location",
- PySPConfigValue(
- ".",
- domain=_domain_must_be_str,
- description=(
- "The directory or filename where the reference model is "
- "found. If a directory is given, the reference model is "
- "assumed to reside in a file named 'ReferenceModel.py' under "
- "that directory. If the reference model file contains a "
- "function named 'pysp_instance_creation_callback', it will "
- "be called to construct each scenario model (not necessarily "
- "by the same running process). Otherwise, the reference "
- "model file must contain an AbstractModel object named "
- "'model'. Default is '.'. "
- ),
- doc=None,
- visibility=0),
- ap_args=("-m", "--model-location"),
- ap_group=_input_options_group_title,
- declare_for_argparse=True)
-
-safe_declare_unique_option(
- common_block,
- "scenario_tree_location",
- PySPConfigValue(
- None,
- domain=_domain_must_be_str,
- description=(
- "The directory or filename where the scenario tree "
- "structure .dat file is found. If a directory is "
- "given, the scenario tree structure is assumed to "
- "reside in a file named 'ScenarioStructure.dat' under "
- "that directory. The location of any required scenario "
- "data files will also be inferred from the value of "
- "this option. If unspecified, the reference model file "
- "must define a function named "
- "'pysp_scenario_tree_model_callback' and must be in the "
- "same location as any required scenario data files."
- ),
- doc=None,
- visibility=0),
- ap_args=("-s", "--scenario-tree-location"),
- ap_group=_input_options_group_title,
- declare_for_argparse=True)
-
-_objective_sense_choices = \
- [maximize, 'max', 'maximize',
- minimize, 'min', 'minimize', None]
-def _objective_sense_domain(val):
- if val in ('min', 'minimize', minimize):
- return minimize
- elif val in ('max', 'maximize', maximize):
- return maximize
- elif val is None:
- return None
- else:
- raise ValueError(
- "Invalid choice: %s. (choose from one of %s"
- % (val, _objective_sense_choices))
-safe_declare_unique_option(
- common_block,
- "objective_sense_stage_based",
- PySPConfigValue(
- None,
- domain=_objective_sense_domain,
- description=(
- "The objective sense to use when auto-generating the "
- "scenario instance objective function, which is equal to "
- "the sum of the scenario-tree stage costs declared on the "
- "reference model. If unspecified, it is assumed a "
- "stage-cost based objective function has been declared on "
- "the reference model."
- ),
- doc=None,
- visibility=0),
- ap_args=("-o", "--objective-sense-stage-based"),
- ap_kwds={'choices':_objective_sense_choices},
- ap_group=_input_options_group_title,
- declare_for_argparse=True)
-
-safe_declare_unique_option(
- common_block,
- "postinit_callback_location",
- PySPConfigValue(
- (),
- domain=_domain_tuple_of_str,
- description=(
- "File that contains a 'pysp_postinit_callback' "
- "function, which is executed on each scenario at "
- "the end of scenario tree manager "
- "initialization. If the scenario tree is "
- "distributed, then this callback will be "
- "transmitted to the respective scenario tree "
- "workers where the constructed scenario instances "
- "are available. This callback can be used to "
- "update things like variable bounds as well as "
- "other scenario-specific information stored on "
- "the Scenario objects. This callback will be "
- "executed immediately after any "
- "'pysp_aggregategetter_callback' function that is "
- "specified. This option can be used multiple "
- "times from the command line to specify more than "
- "one callback function location."
- ),
- doc=None,
- visibility=0),
- ap_kwds={'action': 'append'},
- ap_group=_input_options_group_title,
- declare_for_argparse=True)
-
-safe_declare_unique_option(
- common_block,
- "aggregategetter_callback_location",
- PySPConfigValue(
- (),
- domain=_domain_tuple_of_str,
- description=(
- "File that contains a "
- "'pysp_aggregategetter_callback' function, which "
- "is executed in a sequential call chain on each "
- "scenario at the end of scenario tree manager "
- "initialization. Most useful in cases where the "
- "scenario tree is distributed across multiple "
- "processes, it can be used to execute arbitrary "
- "code whose return value is passed as input into "
- "the next call in the chain. At the end of the "
- "call chain, the final result is broadcast to all "
- "scenario tree worker processes and stored under "
- "the name _aggregate_user_data on the worker "
- "object. Potential uses include collecting "
- "aggregate scenario information that is "
- "subsequently used by a 'pysp_postinit_callback' "
- "function to set tight variable bounds. This "
- "option can be used multiple times from the "
- "command line to specify more than one callback "
- "function location."
- ),
- doc=None,
- visibility=0),
- ap_kwds={'action': 'append'},
- ap_group=_input_options_group_title,
- declare_for_argparse=True)
-
-#
-# Common 'Scenario Tree Options'
-#
-_scenario_tree_options_group_title = "Scenario Tree Options"
-
-safe_declare_unique_option(
- common_block,
- "scenario_tree_random_seed",
- PySPConfigValue(
- None,
- domain=int,
- description=(
- "The random seed associated with manipulation operations "
- "on the scenario tree (e.g., down-sampling or bundle "
- "creation). Default is None, indicating unassigned."
- ),
- doc=None,
- visibility=0),
- ap_group=_scenario_tree_options_group_title)
-
-safe_declare_unique_option(
- common_block,
- "scenario_tree_downsample_fraction",
- PySPConfigValue(
- 1,
- domain=_domain_unit_interval,
- description=(
- "The proportion of the scenarios in the scenario tree that "
- "are actually used. Specific scenarios are selected at "
- "random. Default is 1.0, indicating no down-sampling."
- ),
- doc=None,
- visibility=0),
- ap_group=_scenario_tree_options_group_title)
-
-safe_declare_unique_option(
- common_block,
- "scenario_bundle_specification",
- PySPConfigValue(
- None,
- domain=None,
- description=(
- "The name of the scenario bundling specification to be "
- "used when generating the scenario tree. Default is "
- "None, indicating no bundling is employed. If the "
- "specified name ends with a .dat suffix, the argument is "
- "interpreted as the path to a file. Otherwise, the name "
- "is interpreted as a file in the instance directory, "
- "constructed by adding the .dat suffix automatically. "
- "If scripting, this option can alternatively be assigned "
- "a dictionary mapping bundle names to a list of scenario "
- "names."
- ),
- doc=None,
- visibility=0),
- ap_group=_scenario_tree_options_group_title)
-
-safe_declare_unique_option(
- common_block,
- "create_random_bundles",
- PySPConfigValue(
- 0,
- domain=_domain_nonnegative_integer,
- description=(
- "Specification to create the indicated number of random, "
- "equally-sized (to the degree possible) scenario "
- "bundles. Default is 0, indicating no scenario bundles "
- "will be created."
- ),
- doc=None,
- visibility=0),
- ap_group=_scenario_tree_options_group_title)
-
-safe_declare_unique_option(
- common_block,
- "scenario_tree_manager",
- PySPConfigValue(
- "serial",
- domain=_domain_must_be_str,
- description=(
- "The type of scenario tree manager to use. The default, "
- "'serial', builds all scenario instances on the parent "
- "process and performs all scenario tree operations "
- "sequentially. If 'pyro' is specified, the scenario tree "
- "is fully distributed and scenario tree operations are "
- "performed asynchronously."
- ),
- doc=None,
- visibility=0),
- ap_group=_scenario_tree_options_group_title)
-
-#
-# Common 'Pyro Options'
-#
-_pyro_options_group_title = "Pyro Options"
-
-safe_declare_unique_option(
- common_block,
- "pyro_host",
- PySPConfigValue(
- None,
- domain=_domain_must_be_str,
- description=(
- "The hostname to bind on when searching for a Pyro "
- "nameserver."
- ),
- doc=None,
- visibility=0),
- ap_group=_pyro_options_group_title)
-
-safe_declare_unique_option(
- common_block,
- "pyro_port",
- PySPConfigValue(
- None,
- domain=int,
- description=(
- "The port to bind on when searching for a Pyro "
- "nameserver."
- ),
- doc=None,
- visibility=0),
- ap_group=_pyro_options_group_title)
-
-
-safe_declare_unique_option(
- common_block,
- "pyro_handshake_at_startup",
- PySPConfigValue(
- False,
- domain=bool,
- description=(
- "Take extra steps to acknowledge Pyro-based requests are "
- "received by workers during pyro scenario tree manager "
- "initialization. This option can be useful for debugging "
- "connection issues during startup."
- ),
- doc=None,
- visibility=0),
- ap_group=_pyro_options_group_title)
-
-safe_declare_unique_option(
- common_block,
- "pyro_required_scenariotreeservers",
- PySPConfigValue(
- 0,
- domain=_domain_nonnegative_integer,
- description=(
- "Set the number of idle scenario tree server processes "
- "expected to be available when the 'pyro' scenario tree "
- "manager is selected. This option should be used when the "
- "number of workers is less than the total number of "
- "scenarios (or bundles). The default value of 0 "
- "indicates that the manager should attempt to assign each "
- "scenario (or bundle) to a single scenariotreeserver process "
- "until the timeout (indicated by the "
- "pyro_find_scenariotreeservers_timeout option) occurs."
- ),
- doc=None,
- visibility=0),
- ap_group=_pyro_options_group_title)
-
-safe_declare_unique_option(
- common_block,
- "pyro_find_scenariotreeservers_timeout",
- PySPConfigValue(
- 30,
- domain=float,
- description=(
- "Set the time limit (seconds) for finding idle "
- "scenario tree server processes when the 'pyro' "
- "scenario tree manager is selected. This option "
- "is ignored when "
- "pyro_required_scenariotreeservers is used. "
- "Default is 30 seconds."
- ),
- doc=None,
- visibility=0),
- ap_group=_pyro_options_group_title)
-
-safe_declare_unique_option(
- common_block,
- "pyro_shutdown",
- PySPConfigValue(
- False,
- domain=bool,
- description=(
- "Attempt to shut down all Pyro-related components "
- "associated with the Pyro name server for the "
- "scenario tree manager. Components to shutdown "
- "include the name server, dispatch server, and "
- "any scenariotreeserver registered with the "
- "dispatcher. Note that if Pyro4 is in use the "
- "nameserver will always ignore this request."
- ),
- doc=None,
- visibility=0),
- ap_group=_pyro_options_group_title)
-
-safe_declare_unique_option(
- common_block,
- "pyro_shutdown_workers",
- PySPConfigValue(
- False,
- domain=bool,
- description=(
- "Upon exit, send shutdown requests to all worker "
- "processes that were acquired through the "
- "dispatcher used by the scenario tree manager. "
- "This leaves any dispatchers and namservers "
- "running as well as any processes registered with "
- "the dispather that were not acquired for work by "
- "this client."
- ),
- doc=None,
- visibility=0),
- ap_group=_pyro_options_group_title)
-
-#
-# Common 'Output Options'
-#
-_output_options_group_title = "Output Options"
-
-safe_declare_unique_option(
- common_block,
- "output_solver_results",
- PySPConfigValue(
- False,
- domain=bool,
- description=(
- "Output solutions obtained after each scenario sub-problem "
- "solve."
- ),
- doc=None,
- visibility=0),
- ap_group=_output_options_group_title)
-
-safe_declare_unique_option(
- common_block,
- "output_scenario_tree_solution",
- PySPConfigValue(
- False,
- domain=bool,
- description=(
- "Report the solution in scenario tree format upon termination. "
- "Default is False."
- ),
- doc=None,
- visibility=0),
- ap_group=_output_options_group_title)
-
-safe_declare_unique_option(
- common_block,
- "symbolic_solver_labels",
- PySPConfigValue(
- False,
- domain=bool,
- description=(
- "When interfacing with the solver, use symbol names "
- "derived from the model. For example, "
- "'my_special_variable[1_2_3]' instead of 'x552'. Useful "
- "for debugging. When using NL file based solvers, this "
- "option results in corresponding .row (constraints) and "
- ".col (variables) file being created. The ordering in these "
- "files provides a mapping from NL file index to symbolic "
- "model names."
- ),
- doc=None,
- visibility=0),
- ap_group=_output_options_group_title)
-
-safe_declare_unique_option(
- common_block,
- "file_determinism",
- PySPConfigValue(
- 1,
- domain=int,
- description=(
- "When interfacing with a solver using file based I/O, set "
- "the effort level for ensuring the file creation process is "
- "determistic. The default (1) sorts the index of components "
- "when transforming the model. Anything less than 1 "
- "disables index sorting and can speed up model I/O. "
- "Anything greater than 1 additionaly sorts by component "
- "name to override declartion order."
- ),
- doc=None,
- visibility=0),
- ap_group=_output_options_group_title)
-
-safe_declare_unique_option(
- common_block,
- "output_solver_log",
- PySPConfigValue(
- False,
- domain=bool,
- description=(
- "Output solver log during solves."
- ),
- doc=None,
- visibility=0),
- ap_group=_output_options_group_title)
-
-safe_declare_unique_option(
- common_block,
- "output_times",
- PySPConfigValue(
- False,
- domain=bool,
- description=(
- "Output timing statistics during various runtime stages."
- ),
- doc=None,
- visibility=0),
- ap_group=_output_options_group_title)
-
-safe_declare_unique_option(
- common_block,
- "output_instance_construction_time",
- PySPConfigValue(
- False,
- domain=bool,
- description=(
- "Output timing information during instance construction. "
- "This option will be ignored when a "
- "'pysp_instance_creation_callback' function is defined "
- "inside the reference model file."
- ),
- doc=None,
- visibility=0),
- ap_group=_output_options_group_title)
-
-safe_declare_unique_option(
- common_block,
- "keep_solver_files",
- PySPConfigValue(
- False,
- domain=bool,
- description=(
- "Retain temporary input and output files for scenario "
- "sub-problem solves."
- ),
- doc=None,
- visibility=0),
- ap_group=_output_options_group_title)
-
-safe_declare_unique_option(
- common_block,
- "verbose",
- PySPConfigValue(
- False,
- domain=bool,
- description=(
- "Generate verbose output for both initialization and "
- "execution."
- ),
- doc=None,
- visibility=0),
- ap_group=_output_options_group_title)
-
-#
-# Common 'PH Options'
-#
-_ph_options_group_title = "PH Options"
-
-safe_declare_unique_option(
- common_block,
- "ph_warmstart_file",
- PySPConfigValue(
- "",
- domain=_domain_must_be_str,
- description=(
- "Disable iteration 0 solves and warmstart rho, weight, "
- "and xbar parameters from solution or history file."
- ),
- doc=None,
- visibility=0),
- ap_group=_ph_options_group_title)
-
-safe_declare_unique_option(
- common_block,
- "ph_warmstart_index",
- PySPConfigValue(
- "",
- domain=_domain_must_be_str,
- description=(
- "Indicates the iteration inside a history file from which "
- "to load a warmstart."
- ),
- doc=None,
- visibility=0),
- ap_group=_ph_options_group_title)
-
-def _rho_domain(val):
- val = float(val)
- if val < 0:
- raise ValueError(
- "Invalid value for default rho: %s. "
- "Value must be non-negative or None."
- % (val))
- return val
-
-safe_declare_unique_option(
- common_block,
- "default_rho",
- PySPConfigValue(
- None,
- domain=_rho_domain,
- description=(
- "The default PH rho value for all non-anticipative "
- "variables. *** Required ***"
- ),
- doc=None,
- visibility=0),
- ap_args=("-r", "--default-rho"),
- ap_group=_ph_options_group_title,
- declare_for_argparse=True)
-
-_xhat_method_choices = \
- ['closest-scenario','voting','rounding']
-def _xhat_method_domain(val):
- if val in _xhat_method_choices:
- return val
- else:
- raise ValueError(
- "Invalid choice: %s. (choose from one of %s"
- % (val, _xhat_method_choices))
-
-safe_declare_unique_option(
- common_block,
- "xhat_method",
- PySPConfigValue(
- "closest-scenario",
- domain=_xhat_method_domain,
- description=(
- "Specify the method used to compute a bounding solution at "
- "PH termination. Defaults to 'closest-scenario'. Other "
- "variants are: 'voting' and 'rounding'."
- ),
- doc=None,
- visibility=0),
- ap_kwds={'choices':_xhat_method_choices},
- ap_group=_ph_options_group_title,
- declare_for_argparse=True)
-
-safe_declare_unique_option(
- common_block,
- "overrelax",
- PySPConfigValue(
- False,
- domain=bool,
- description=(
- "Compute weight updates using combination of previous and "
- "current variable averages."
- ),
- doc=None,
- visibility=0),
- ap_group=_ph_options_group_title)
-
-safe_declare_unique_option(
- common_block,
- "nu",
- PySPConfigValue(
- 1.5,
- domain=float,
- description=(
- "Parameter used to update weights when using the overrelax "
- "option."
- ),
- doc=None,
- visibility=0),
- ap_group=_ph_options_group_title)
-
-safe_declare_unique_option(
- common_block,
- "async",
- PySPConfigValue(
- False,
- domain=bool,
- description=(
- "Run PH in asychronous mode after iteration 0."
- ),
- doc=None,
- visibility=0),
- ap_group=_ph_options_group_title)
-
-safe_declare_unique_option(
- common_block,
- "async_buffer_length",
- PySPConfigValue(
- 1,
- domain=_domain_positive_integer,
- description=(
- "Number of scenarios to collect, if in async mode, before "
- "doing statistics and weight updates. Default is 1."
- ),
- doc=None,
- visibility=0),
- ap_group=_ph_options_group_title)
-
-#safe_declare_unique_option(
-# common_block,
-# "phrhosetter_callback_location",
-# PySPConfigValue(
-# None,
-# domain=_domain_must_be_str,
-# description=(
-# "File containing a 'pysp_phrhosetter_callback' function, which "
-# "is used to update per-variable rho parameters. This callback "
-# "will be executed during PH initialization."
-# ),
-# doc=None,
-# visibility=0))
-
-safe_declare_unique_option(
- common_block,
- "max_iterations",
- PySPConfigValue(
- 100,
- domain=_domain_nonnegative_integer,
- description=(
- "The maximal number of PH iterations. Default is 100."
- ),
- doc=None,
- visibility=0),
- ap_group=_ph_options_group_title)
-
-safe_declare_unique_option(
- common_block,
- "ph_timelimit",
- PySPConfigValue(
- None,
- domain=float,
- description=(
- "Limits the number of seconds spent inside the solve "
- "method of PH."
- ),
- doc=None,
- visibility=0),
- ap_group=_ph_options_group_title)
-
-safe_declare_unique_option(
- common_block,
- "termdiff_threshold",
- PySPConfigValue(
- 0.0001,
- domain=float,
- description=(
- "The convergence threshold used in the term-diff and "
- "normalized term-diff convergence criteria. Default is "
- "0.0001."
- ),
- doc=None,
- visibility=0),
- ap_group=_ph_options_group_title)
-
-safe_declare_unique_option(
- common_block,
- "enable_free_discrete_count_convergence",
- PySPConfigValue(
- False,
- domain=bool,
- description=(
- "Terminate PH based on the free discrete variable count "
- "convergence metric."
- ),
- doc=None,
- visibility=0),
- ap_group=_ph_options_group_title)
-
-safe_declare_unique_option(
- common_block,
- "free_discrete_count_threshold",
- PySPConfigValue(
- 20,
- domain=_domain_positive_integer,
- description=(
- "The convergence threshold used in the criterion based on "
- "when the free discrete variable count convergence "
- "criterion. Default is 20."
- ),
- doc=None,
- visibility=0),
- ap_group=_ph_options_group_title)
-
-safe_declare_unique_option(
- common_block,
- "enable_normalized_termdiff_convergence",
- PySPConfigValue(
- True,
- domain=bool,
- description=(
- "Terminate PH based on the normalized termdiff convergence "
- "metric. Default is True. "
- ),
- doc=None,
- visibility=0),
- ap_group=_ph_options_group_title)
-
-safe_declare_unique_option(
- common_block,
- "enable_termdiff_convergence",
- PySPConfigValue(
- False,
- domain=bool,
- description=(
- "Terminate PH based on the termdiff convergence metric."
- ),
- doc=None,
- visibility=0),
- ap_group=_ph_options_group_title)
-
-safe_declare_unique_option(
- common_block,
- "enable_outer_bound_convergence",
- PySPConfigValue(
- False,
- domain=bool,
- description=(
- "Terminate PH based on the outer bound convergence "
- "metric."
- ),
- doc=None,
- visibility=0),
- ap_group=_ph_options_group_title)
-
-safe_declare_unique_option(
- common_block,
- "outer_bound_convergence_threshold",
- PySPConfigValue(
- None,
- domain=float,
- description=(
- "The convergence threshold used in the outer bound "
- "convergence criterion. Default is None, indicating "
- "unassigned."
- ),
- doc=None,
- visibility=0),
- ap_group=_ph_options_group_title)
-
-safe_declare_unique_option(
- common_block,
- "linearize_nonbinary_penalty_terms",
- PySPConfigValue(
- 0,
- domain=_domain_nonnegative_integer,
- description=(
- "Approximate the PH quadratic term for non-binary "
- "variables with a piece-wise linear function, using the "
- "supplied number of equal-length pieces from each bound to "
- "the average. The default value of 0 indications no "
- "linearization shall take place."
- ),
- doc=None,
- visibility=0),
- ap_group=_ph_options_group_title)
-
-safe_declare_unique_option(
- common_block,
- "breakpoint_strategy",
- PySPConfigValue(
- 0,
- domain=int,
- description=(
- "Specify the strategy to distribute breakpoints on the "
- "[lb, ub] interval of each variable when linearizing. 0 "
- "indicates uniform distribution. 1 indicates breakpoints at "
- "the node min and max, uniformly in-between. 2 indicates "
- "more aggressive concentration of breakpoints near the "
- "observed node min/max."
- ),
- doc=None,
- visibility=0),
- ap_group=_ph_options_group_title)
-
-safe_declare_unique_option(
- common_block,
- "retain_quadratic_binary_terms",
- PySPConfigValue(
- False,
- domain=bool,
- description=(
- "Do not linearize PH objective terms involving binary "
- "decision variables."
- ),
- doc=None,
- visibility=0),
- ap_group=_ph_options_group_title)
-
-safe_declare_unique_option(
- common_block,
- "drop_proximal_terms",
- PySPConfigValue(
- False,
- domain=bool,
- description=(
- "Eliminate proximal terms (i.e., the quadratic penalty "
- "terms) from the weighted PH objective."
- ),
- doc=None,
- visibility=0),
- ap_group=_ph_options_group_title)
-
-safe_declare_unique_option(
- common_block,
- "report_solutions",
- PySPConfigValue(
- False,
- domain=bool,
- description=(
- "Always report PH solutions after each iteration. Enabled "
- "if verbose output is enabled."
- ),
- doc=None,
- visibility=0),
- ap_group=_ph_options_group_title)
-
-safe_declare_unique_option(
- common_block,
- "report_weights",
- PySPConfigValue(
- False,
- domain=bool,
- description=(
- "Always report PH weights prior to each iteration. Enabled "
- "if verbose output is enabled."
- ),
- doc=None,
- visibility=0),
- ap_group=_ph_options_group_title)
-
-safe_declare_unique_option(
- common_block,
- "report_rhos_each_iteration",
- PySPConfigValue(
- False,
- domain=bool,
- description=(
- "Always report PH rhos prior to each iteration."
- ),
- doc=None,
- visibility=0),
- ap_group=_ph_options_group_title)
-
-safe_declare_unique_option(
- common_block,
- "report_rhos_first_iteration",
- PySPConfigValue(
- False,
- domain=bool,
- description=(
- "Report rhos prior to PH iteration 1. Enabled if --verbose "
- "is enabled."
- ),
- doc=None,
- visibility=0),
- ap_group=_ph_options_group_title)
-
-safe_declare_unique_option(
- common_block,
- "report_for_zero_variable_values",
- PySPConfigValue(
- False,
- domain=bool,
- description=(
- "Report statistics (variables and weights) for all "
- "variables, not just those with values differing from 0."
- ),
- doc=None,
- visibility=0),
- ap_group=_ph_options_group_title)
-
-safe_declare_unique_option(
- common_block,
- "report_only_nonconverged_variables",
- PySPConfigValue(
- False,
- domain=bool,
- description=(
- "Report statistics (variables and weights) only for "
- "non-converged variables."
- ),
- doc=None,
- visibility=0),
- ap_group=_ph_options_group_title)
-
-safe_declare_unique_option(
- common_block,
- "suppress_continuous_variable_output",
- PySPConfigValue(
- False,
- domain=bool,
- description=(
- "Eliminate PH-related output involving continuous "
- "variables."
- ),
- doc=None,
- visibility=0),
- ap_group=_ph_options_group_title)
-
-#
-# Common 'Extension Options'
-#
-_extension_options_group_title = "Extension Options"
-
-safe_declare_unique_option(
- common_block,
- "enable_ww_extensions",
- PySPConfigValue(
- False,
- domain=bool,
- description=(
- "Enable the Watson-Woodruff PH extensions plugin."
- ),
- doc=None,
- visibility=0),
- ap_group=_extension_options_group_title)
-
-safe_declare_unique_option(
- common_block,
- "ww_extension_cfgfile",
- PySPConfigValue(
- "",
- domain=_domain_must_be_str,
- description=(
- "The name of a configuration file for the Watson-Woodruff "
- "PH extensions plugin."
- ),
- doc=None,
- visibility=0),
- ap_group=_extension_options_group_title)
-
-safe_declare_unique_option(
- common_block,
- "ww_extension_annotationfile",
- PySPConfigValue(
- "",
- domain=_domain_must_be_str,
- description=(
- "The name of a variable annotation file for the "
- "Watson-Woodruff PH extensions plugin."
- ),
- doc=None,
- visibility=0),
- ap_group=_extension_options_group_title)
-
-safe_declare_unique_option(
- common_block,
- "user_defined_extension",
- PySPConfigValue(
- (),
- domain=_domain_tuple_of_str,
- description=(
- "The name of a python module specifying a user-defined PH "
- "extension plugin. Use this option when generating a "
- "template configuration file or invoking command-line help "
- "in order to include any plugin-specific options. This "
- "option can used multiple times from the command line to "
- "specify more than one plugin."
- ),
- doc=None,
- visibility=0),
- ap_kwds={'action': 'append'},
- ap_group=_extension_options_group_title,
- declare_for_argparse=True)
-
-safe_declare_unique_option(
- common_block,
- "solution_writer",
- PySPConfigValue(
- (),
- domain=_domain_tuple_of_str,
- description=(
- "The name of a python module specifying a user-defined "
- "plugin invoked to write the scenario tree solution. Use "
- "this option when generating a template configuration file "
- "or invoking command-line help in order to include any "
- "plugin-specific options. This option can be used multiple "
- "times from the command line to specify more than one plugin."
- ),
- doc=None,
- visibility=0),
- ap_kwds={'action': 'append'},
- ap_group=_extension_options_group_title,
- declare_for_argparse=True)
-
-safe_declare_unique_option(
- common_block,
- "extension_precedence",
- PySPConfigValue(
- 0,
- domain=int,
- description=(
- "Sets the priority for execution of this extension "
- "relative to other extensions of the same type. Extensions "
- "with higher precedence values are guaranteed to be "
- "executed before any extensions having strictly lower "
- "precedence values. Default is 0."
- ),
- doc=None,
- visibility=0),
- ap_group=_extension_options_group_title)
-
-safe_declare_unique_option(
- common_block,
- "output_name",
- PySPConfigValue(
- None,
- domain=_domain_must_be_str,
- description=(
- "The directory or filename where the scenario tree solution "
- "should be saved to."
- ),
- doc=None,
- visibility=0),
- ap_group=_extension_options_group_title)
-
-safe_declare_unique_option(
- common_block,
- "input_name",
- PySPConfigValue(
- None,
- domain=_domain_must_be_str,
- description=(
- "The directory or filename where the scenario tree solution "
- "should be loaded from."
- ),
- doc=None,
- visibility=0),
- ap_group=_extension_options_group_title)
-
-safe_declare_unique_option(
- common_block,
- "solution_saver_extension",
- PySPConfigValue(
- (),
- domain=_domain_tuple_of_str,
- description=(
- "The name of a python module specifying a user-defined "
- "plugin implementing the IPySPSolutionSaverExtension "
- "interface. Invoked to save a scenario tree solution. Use "
- "this option when generating a template configuration file "
- "or invoking command-line help in order to include any "
- "plugin-specific options. This option can be used multiple "
- "times from the command line to specify more than one plugin."
- ),
- doc=None,
- visibility=0),
- ap_kwds={'action': 'append'},
- ap_group=_extension_options_group_title,
- declare_for_argparse=True)
-
-safe_declare_unique_option(
- common_block,
- "solution_loader_extension",
- PySPConfigValue(
- (),
- domain=_domain_tuple_of_str,
- description=(
- "The name of a python module specifying a user-defined "
- "plugin implementing the IPySPSolutionLoaderExtension "
- "interface. Invoked to load a scenario tree solution. Use "
- "this option when generating a template configuration file "
- "or invoking command-line help in order to include any "
- "plugin-specific options. This option can be used multiple "
- "times from the command line to specify more than one plugin."
- ),
- doc=None,
- visibility=0),
- ap_kwds={'action': 'append'},
- ap_group=_extension_options_group_title,
- declare_for_argparse=True)
-
-safe_declare_unique_option(
- common_block,
- "save_stages",
- PySPConfigValue(
- 0,
- domain=_domain_nonnegative_integer,
- description=(
- "The number of scenario tree time stages to save from the solution. "
- "The default value of 0 indicates that all stages should be saved."
- ),
- doc=None,
- visibility=0),
- ap_group=_extension_options_group_title)
-
-safe_declare_unique_option(
- common_block,
- "load_stages",
- PySPConfigValue(
- 0,
- domain=_domain_nonnegative_integer,
- description=(
- "The number of scenario tree stages to load from the solution. "
- "The default value of 0 indicates that all stages should be loaded."
- ),
- doc=None,
- visibility=0),
- ap_group=_extension_options_group_title)
-
-#
-# Common 'Advanced Options'
-#
-_advanced_options_group_title = 'Advanced Options'
-
-safe_declare_unique_option(
- common_block,
- "pyro_transmit_leaf_stage_variable_solutions",
- PySPConfigValue(
- False,
- domain=bool,
- description=(
- "By default, when running PH using the pyro scenario "
- "tree manager, leaf-stage variable solutions are not "
- "transmitted back to the master scenario tree during "
- "intermediate iterations. This flag will override that "
- "behavior for cases where leaf-stage variable solutions are "
- "required on the master scenario tree. Using this option "
- "can degrade runtime performance. When PH exits, variable "
- "values are collected from all stages whether or not this "
- "option was used. Also, note that PH extensions have the "
- "ability to override this flag at runtime."
- ),
- doc=None,
- visibility=0),
- ap_group=_advanced_options_group_title)
-
-safe_declare_unique_option(
- common_block,
- "disable_advanced_preprocessing",
- PySPConfigValue(
- False,
- domain=bool,
- description=(
- "Disable advanced preprocessing directives designed to "
- "speed up model I/O for scenario or bundle instances. This "
- "can be useful in debugging situations but will slow down "
- "algorithms that repeatedly solve subproblems. Use of this "
- "option will cause the '--preprocess-fixed-variables' option "
- "to be ignored."
- ),
- doc=None,
- visibility=0),
- ap_group=_advanced_options_group_title)
-
-safe_declare_unique_option(
- common_block,
- "preprocess_fixed_variables",
- PySPConfigValue(
- False,
- domain=bool,
- description=(
- "Perform full preprocessing of instances after fixing or "
- "freeing variables in scenarios. By default, fixed "
- "variables will be included in the problem but 'fixed' by "
- "overriding their bounds. This increases the speed of "
- "Pyomo model I/O, but may be useful to disable in "
- "debugging situations or if numerical issues are "
- "encountered with certain solvers."
- ),
- doc=None,
- visibility=0),
- ap_group=_advanced_options_group_title)
-
-safe_declare_unique_option(
- common_block,
- "comparison_tolerance_for_fixed_variables",
- PySPConfigValue(
- False,
- domain=bool,
- description=(
- "Perform full preprocessing of instances after fixing or "
- "freeing variables in scenarios. By default, fixed "
- "variables will be included in the problem but 'fixed' by "
- "overriding their bounds. This increases the speed of "
- "Pyomo model I/O, but may be useful to disable in "
- "debugging situations or if numerical issues are "
- "encountered with certain solvers."
- ),
- doc=None,
- visibility=0),
- ap_group=_advanced_options_group_title)
-
-#
-# Common 'Solve Options'
-#
-_solve_options_group_title = 'Solve Options'
-
-safe_declare_unique_option(
- common_block,
- "mipgap",
- PySPConfigValue(
- None,
- domain=_domain_unit_interval,
- description=(
- "Specifies the mipgap for all sub-problems (scenarios or bundles). "
- "The default value of None indicates not mipgap should be used."
- ),
- doc=None,
- visibility=0),
- ap_group=_solve_options_group_title)
-
-safe_declare_unique_option(
- common_block,
- "solver_options",
- PySPConfigValue(
- (),
- domain=_domain_tuple_of_str_or_dict,
- description=(
- "Persistent solver options for all sub-problems (scenarios or bundles). "
- "This option can be used multiple times from the command line to specify "
- "more than one solver option."
- ),
- doc=None,
- visibility=0),
- ap_kwds={'action': 'append'},
- ap_group=_solve_options_group_title)
-
-safe_declare_unique_option(
- common_block,
- "solver",
- PySPConfigValue(
- "cplex",
- domain=_domain_must_be_str,
- description=(
- "Specify the solver with which to solve scenarios "
- "(or bundles). Default is cplex."
- ),
- doc=None,
- visibility=0),
- ap_group=_solve_options_group_title)
-
-safe_declare_unique_option(
- common_block,
- "solver_io",
- PySPConfigValue(
- None,
- domain=_domain_must_be_str,
- description=(
- "The type of IO used to execute the solver. Different "
- "solvers support different types of IO, but the following "
- "are common options: lp - generate LP files, nl - generate "
- "NL files, python - direct Python interface, os - generate "
- "OSiL XML files."
- ),
- doc=None,
- visibility=0),
- ap_group=_solve_options_group_title)
-
-safe_declare_unique_option(
- common_block,
- "solver_manager",
- PySPConfigValue(
- "serial",
- domain=_domain_must_be_str,
- description=(
- "The type of solver manager used to coordinate scenario "
- "sub-problem solves. Default is serial."
- ),
- doc=None,
- visibility=0),
- ap_group=_solve_options_group_title)
-
-safe_declare_unique_option(
- common_block,
- "disable_warmstart",
- PySPConfigValue(
- False,
- domain=bool,
- description=(
- "Disable warm-start of all sub-problem solves."
- ),
- doc=None,
- visibility=0),
- ap_group=_solve_options_group_title)
-
-safe_declare_unique_option(
- common_block,
- "solver_manager_pyro_host",
- PySPConfigValue(
- None,
- domain=_domain_must_be_str,
- description=(
- "The hostname to bind on when searching for a Pyro "
- "nameserver controlling the solver manager."
- ),
- doc=None,
- visibility=0),
- ap_group=_solve_options_group_title)
-
-safe_declare_unique_option(
- common_block,
- "solver_manager_pyro_port",
- PySPConfigValue(
- None,
- domain=int,
- description=(
- "The port to bind on when searching for a Pyro "
- "nameserver controlling the solver_manager."
- ),
- doc=None,
- visibility=0),
- ap_group=_solve_options_group_title)
-
-safe_declare_unique_option(
- common_block,
- "solver_manager_pyro_shutdown",
- PySPConfigValue(
- False,
- domain=bool,
- description=(
- "Attempt to shut down all Pyro-related components "
- "associated with the Pyro name server for the "
- "solver manager. Components to shutdown include "
- "the name server, dispatch server, and any "
- "pyro_mip_server processes. Note that if Pyro4 is "
- "in use the nameserver will always ignore this "
- "request."
- ),
- doc=None,
- visibility=0),
- ap_group=_solve_options_group_title)
-
-#
-# Common 'Other Options'
-#
-_other_options_group_title = 'Other Options'
-
-safe_declare_unique_option(
- common_block,
- "disable_gc",
- PySPConfigValue(
- False,
- domain=bool,
- description=(
- "Disable the python garbage collecter."
- ),
- doc=None,
- visibility=0),
- ap_group=_other_options_group_title)
-
-safe_declare_unique_option(
- common_block,
- "profile_memory",
- PySPConfigValue(
- 0,
- domain=_domain_nonnegative_integer,
- description=(
- "If Guppy or Pympler is available, report memory usage statistics "
- "for objects created by various PySP constructs. The default value "
- "of 0 disables memory profiling. Values greater than 0 indiciate "
- "increasing levels of verbosity."
- ),
- doc=None,
- visibility=0),
- ap_group=_other_options_group_title)
-
-safe_declare_unique_option(
- common_block,
- "profile",
- PySPConfigValue(
- 0,
- domain=_domain_nonnegative_integer,
- description=(
- "Enable profiling of Python code. The value of this "
- "option is the number of functions that are summarized. "
- "The default value of 0 disables profiling."
- ),
- doc=None,
- visibility=0),
- ap_group=_other_options_group_title)
-
-safe_declare_unique_option(
- common_block,
- "traceback",
- PySPConfigValue(
- False,
- domain=bool,
- description=(
- "When an exception is thrown, show the entire call "
- "stack. Ignored if profiling is enabled."
- ),
- doc=None,
- visibility=0),
- ap_group=_other_options_group_title)
-
-safe_declare_unique_option(
- common_block,
- "compile_scenario_instances",
- PySPConfigValue(
- False,
- domain=bool,
- description=(
- "Replace all linear constraints on scenario instances with "
- "a more memory efficient sparse matrix representation."
- ),
- doc=None,
- visibility=0),
- ap_group=_other_options_group_title)
-
-#
-# Deprecated command-line option names
-# (DO NOT REGISTER THEM OUTSIDE OF THIS FILE)
-#
-_map_to_deprecated = {}
-_deprecated_block = \
- PySPConfigBlock("A collection of common deprecated PySP command-line options")
-_deprecated_options_group_title = "Deprecated Options"
-
-#
-# --model-directory
-#
-class _DeprecatedModelDirectory(argparse.Action):
- def __init__(self, option_strings, dest, nargs=None, **kwargs):
- if nargs is not None:
- raise ValueError("nargs not allowed")
- super(_DeprecatedModelDirectory, self).\
- __init__(option_strings, dest, **kwargs)
- def __call__(self, parser, namespace, values, option_string=None):
- logger.warning(
- "DEPRECATED: The '--model-directory' command-line "
- "option has been deprecated and will be removed "
- "in the future. Please use --model-location instead.")
- setattr(namespace, 'CONFIGBLOCK.model_location', values)
-
-def _warn_model_directory(val):
- # don't use logger here since users might not import
- # the pyomo logger in a scripting interface
- sys.stderr.write(
- "\tWARNING: The 'model_directory' config item will be ignored "
- "unless it is being used as a command-line option "
- "where it can be redirected to 'model_location'. "
- "Please use 'model_location' instead.\n")
- return _domain_must_be_str(val)
-
-safe_declare_unique_option(
- _deprecated_block,
- "model_directory",
- PySPConfigValue(
- None,
- domain=_warn_model_directory,
- description=(
- "Deprecated alias for --model-location"
- ),
- doc=None,
- visibility=1),
- ap_args=("--model-directory",),
- ap_kwds={'action':_DeprecatedModelDirectory},
- ap_group=_deprecated_options_group_title,
- declare_for_argparse=True)
-_map_to_deprecated['model_location'] = \
- _deprecated_block.get('model_directory')
-
-#
-# -i, --instance-directory
-#
-class _DeprecatedInstanceDirectory(argparse.Action):
- def __init__(self, option_strings, dest, nargs=None, **kwargs):
- if nargs is not None:
- raise ValueError("nargs not allowed")
- super(_DeprecatedInstanceDirectory, self).\
- __init__(option_strings, dest, **kwargs)
- def __call__(self, parser, namespace, values, option_string=None):
-# logger.warning(
-# "DEPRECATED: The '--instance-directory' ('-i') command-line "
-# "option has been deprecated and will be removed "
-# "in the future. Please use '--scenario-tree-location' ('-s') instead.")
- setattr(namespace, 'CONFIGBLOCK.scenario_tree_location', values)
-
-def _warn_instance_directory(val):
- # don't use logger here since users might not import
- # the pyomo logger in a scripting interface
- sys.stderr.write(
- "\tWARNING: The 'instance_directory' config item will be ignored "
- "unless it is being used as a command-line option "
- "where it can be redirected to 'scenario_tree_location'. "
- "Please use 'scenario_tree_location' instead.\n")
- return _domain_must_be_str(val)
-
-safe_declare_unique_option(
- _deprecated_block,
- "instance_directory",
- PySPConfigValue(
- None,
- domain=_warn_instance_directory,
- description=(
- "Deprecated alias for --scenario-tree-location, -s"
- ),
- doc=None,
- visibility=1),
- ap_args=("-i", "--instance-directory"),
- ap_kwds={'action':_DeprecatedInstanceDirectory},
- ap_group=_deprecated_options_group_title,
- declare_for_argparse=True)
-_map_to_deprecated['scenario_tree_location'] = \
- _deprecated_block.get('instance_directory')
-
-#
-# --handshake-with-phpyro
-#
-
-class _DeprecatedHandshakeWithPHPyro(argparse.Action):
- def __init__(self, option_strings, dest, nargs=None, **kwargs):
- if nargs is not None:
- raise ValueError("nargs not allowed")
- super(_DeprecatedHandshakeWithPHPyro, self).\
- __init__(option_strings, dest, nargs=0, **kwargs)
- def __call__(self, parser, namespace, values, option_string=None):
- logger.warning(
- "DEPRECATED: The '--handshake-with-phpyro command-line "
- "option has been deprecated and will be removed "
- "in the future. Please use '--pyro-handshake-at-startup instead.")
- setattr(namespace, 'CONFIGBLOCK.pyro_handshake_at_startup', True)
-
-def _warn_handshake_with_phpyro(val):
- # don't use logger here since users might not import
- # the pyomo logger in a scripting interface
- sys.stderr.write(
- "\tWARNING: The 'handshake_with_phpyro' config item will be ignored "
- "unless it is being used as a command-line option "
- "where it can be redirected to 'pyro_handshake_at_startup'. "
- "Please use 'pyro_handshake_at_startup' instead.\n")
- return bool(val)
-
-safe_declare_unique_option(
- _deprecated_block,
- "handshake_with_phpyro",
- PySPConfigValue(
- None,
- domain=_warn_handshake_with_phpyro,
- description=(
- "Deprecated alias for --pyro-handshake-at-startup"
- ),
- doc=None,
- visibility=1),
- ap_kwds={'action':_DeprecatedHandshakeWithPHPyro},
- ap_group=_deprecated_options_group_title,
- declare_for_argparse=True)
-_map_to_deprecated['pyro_handshake_at_startup'] = \
- _deprecated_block.get('handshake_with_phpyro')
-
-#
-# --phpyro-required-workers
-#
-
-class _DeprecatedPHPyroRequiredWorkers(argparse.Action):
- def __init__(self, option_strings, dest, nargs=None, **kwargs):
- if nargs is not None:
- raise ValueError("nargs not allowed")
- super(_DeprecatedPHPyroRequiredWorkers, self).\
- __init__(option_strings, dest, **kwargs)
- def __call__(self, parser, namespace, values, option_string=None):
- logger.warning(
- "DEPRECATED: The '--phpyro-required-workers command-line "
- "option has been deprecated and will be removed "
- "in the future. Please use '--pyro-required-scenariotreeservers instead.")
- setattr(namespace, 'CONFIGBLOCK.pyro_required_scenariotreeservers', values)
-
-def _warn_phpyro_required_workers(val):
- # don't use logger here since users might not import
- # the pyomo logger in a scripting interface
- sys.stderr.write(
- "\tWARNING: The 'phpyro_required_workers' config item will be ignored "
- "unless it is being used as a command-line option "
- "where it can be redirected to 'pyro_required_scenariotreeservers'. "
- "Please use 'pyro_required_scenariotreeservers' instead.\n")
- return _domain_nonnegative_integer(val)
-
-safe_declare_unique_option(
- _deprecated_block,
- "phpyro_required_workers",
- PySPConfigValue(
- None,
- domain=_warn_phpyro_required_workers,
- description=(
- "Deprecated alias for --pyro-required-scenariotreeservers"
- ),
- doc=None,
- visibility=1),
- ap_kwds={'action':_DeprecatedPHPyroRequiredWorkers},
- ap_group=_deprecated_options_group_title,
- declare_for_argparse=True)
-_map_to_deprecated['pyro_required_scenariotreeservers'] = \
- _deprecated_block.get('phpyro_required_workers')
-
-#
-# --phpyro-workers-timeout
-#
-
-class _DeprecatedPHPyroWorkersTimeout(argparse.Action):
- def __init__(self, option_strings, dest, nargs=None, **kwargs):
- if nargs is not None:
- raise ValueError("nargs not allowed")
- super(_DeprecatedPHPyroWorkersTimeout, self).\
- __init__(option_strings, dest, **kwargs)
- def __call__(self, parser, namespace, values, option_string=None):
- logger.warning(
- "DEPRECATED: The '--phpyro-workers-timeout command-line "
- "option has been deprecated and will be removed "
- "in the future. Please use '--pyro-find-scenariotreeservers-timeout instead.")
- setattr(namespace, 'CONFIGBLOCK.pyro_find_scenariotreeservers_timeout', values)
-
-def _warn_phpyro_workers_timeout(val):
- # don't use logger here since users might not import
- # the pyomo logger in a scripting interface
- sys.stderr.write(
- "\tWARNING: The 'phpyro_workers_timeout' config item will be ignored "
- "unless it is being used as a command-line option "
- "where it can be redirected to 'pyro_find_scenariotreeservers_timeout'. "
- "Please use 'pyro_find_scenariotreeservers_timeout' instead.\n")
- return float(val)
-
-safe_declare_unique_option(
- _deprecated_block,
- "phpyro_workers_timeout",
- PySPConfigValue(
- None,
- domain=_warn_phpyro_workers_timeout,
- description=(
- "Deprecated alias for --pyro-find-scenariotreeservers-timeout"
- ),
- doc=None,
- visibility=1),
- ap_kwds={'action':_DeprecatedPHPyroWorkersTimeout},
- ap_group=_deprecated_options_group_title,
- declare_for_argparse=True)
-_map_to_deprecated['pyro_find_scenariotreeservers_timeout'] = \
- _deprecated_block.get('phpyro_workers_timeout')
-
-#
-# --phpyro-transmit-leaf-stage-variable-solutions
-#
-
-class _DeprecatedPHPyroTransmitLeafStageVariableSolutions(
- argparse.Action):
- def __init__(self, option_strings, dest, nargs=None, **kwargs):
- if nargs is not None:
- raise ValueError("nargs not allowed")
- super(_DeprecatedPHPyroTransmitLeafStageVariableSolutions, self).\
- __init__(option_strings, dest, nargs=0, **kwargs)
- def __call__(self, parser, namespace, values, option_string=None):
- logger.warning(
- "DEPRECATED: The '--phpyro-transmit-leaf-stage-variable-solutions "
- "command-line option has been deprecated and will be removed "
- "in the future. Please use "
- "'--pyro-transmit-leaf-stage-variable-solutions instead.")
- setattr(namespace,
- 'CONFIGBLOCK.pyro_transmit_leaf_stage_variable_solutions',
- True)
-
-def _warn_phpyro_transmit_leaf_stage_variable_solutions(val):
- # don't use logger here since users might not import
- # the pyomo logger in a scripting interface
- sys.stderr.write(
- "\tWARNING: The 'phpyro_transmit_leaf_stage_variable_solutions' config "
- "item will be ignored unless it is being used as a command-line option "
- "where it can be redirected to "
- "'pyro_transmit_leaf_stage_variable_solutions'. Please use "
- "'pyro_transmit_leaf_stage_variable_solutions' instead.\n")
- return bool(val)
-
-safe_declare_unique_option(
- _deprecated_block,
- "phpyro_transmit_leaf_stage_variable_solutions",
- PySPConfigValue(
- None,
- domain=_warn_phpyro_transmit_leaf_stage_variable_solutions,
- description=(
- "Deprecated alias for --pyro-transmit-leaf-stage-variable-solutions"
- ),
- doc=None,
- visibility=1),
- ap_kwds={'action':_DeprecatedPHPyroTransmitLeafStageVariableSolutions},
- ap_group=_deprecated_options_group_title,
- declare_for_argparse=True)
-_map_to_deprecated['pyro_transmit_leaf_stage_variable_solutions'] = \
- _deprecated_block.get('phpyro_transmit_leaf_stage_variable_solutions')
-
-#
-# --scenario-tree-seed
-#
-
-class _DeprecatedScenarioTreeSeed(argparse.Action):
- def __init__(self, option_strings, dest, nargs=None, **kwargs):
- if nargs is not None:
- raise ValueError("nargs not allowed")
- super(_DeprecatedScenarioTreeSeed, self).\
- __init__(option_strings, dest, **kwargs)
- def __call__(self, parser, namespace, values, option_string=None):
- logger.warning(
- "DEPRECATED: The '--scenario-tree-seed command-line "
- "option has been deprecated and will be removed "
- "in the future. Please use '--scenario-tree-random-seed instead.")
- setattr(namespace, 'CONFIGBLOCK.scenario_tree_random_seed', values)
-
-def _warn_scenario_tree_seed(val):
- # don't use logger here since users might not import
- # the pyomo logger in a scripting interface
- sys.stderr.write(
- "\tWARNING: The 'scenario_tree_seed' config item will be ignored "
- "unless it is being used as a command-line option "
- "where it can be redirected to 'scenario_tree_random_seed'. "
- "Please use 'scenario_tree_random_seed' instead.\n")
- return int(val)
-
-safe_declare_unique_option(
- _deprecated_block,
- "scenario_tree_seed",
- PySPConfigValue(
- None,
- domain=_warn_scenario_tree_seed,
- description=(
- "Deprecated alias for --scenario-tree-random-seed"
- ),
- doc=None,
- visibility=1),
- ap_kwds={'action':_DeprecatedScenarioTreeSeed},
- ap_group=_deprecated_options_group_title,
- declare_for_argparse=True)
-_map_to_deprecated['scenario_tree_random_seed'] = \
- _deprecated_block.get('scenario_tree_seed')
-
-#
-# --scenario-mipgap
-#
-
-class _DeprecatedScenarioMipGap(argparse.Action):
- def __init__(self, option_strings, dest, nargs=None, **kwargs):
- if nargs is not None:
- raise ValueError("nargs not allowed")
- super(_DeprecatedScenarioMipGap, self).\
- __init__(option_strings, dest, **kwargs)
- def __call__(self, parser, namespace, values, option_string=None):
- logger.warning(
- "DEPRECATED: The '--scenario-mipgap command-line "
- "option has been deprecated and will be removed "
- "in the future. Please use '--mipgap instead.")
- setattr(namespace, 'CONFIGBLOCK.mipgap', values)
-
-def _warn_scenario_mipgap(val):
- # don't use logger here since users might not import
- # the pyomo logger in a scripting interface
- sys.stderr.write(
- "\tWARNING: The 'scenario_mipgap' config item will be ignored "
- "unless it is being used as a command-line option "
- "where it can be redirected to 'mipgap'. "
- "Please use 'mipgap' instead.\n")
- return _domain_unit_interval(val)
-
-safe_declare_unique_option(
- _deprecated_block,
- "scenario_mipgap",
- PySPConfigValue(
- None,
- domain=_warn_scenario_mipgap,
- description=(
- "Deprecated alias for --mipgap"
- ),
- doc=None,
- visibility=1),
- ap_kwds={'action':_DeprecatedScenarioMipGap},
- ap_group=_deprecated_options_group_title,
- declare_for_argparse=True)
-_map_to_deprecated['mipgap'] = \
- _deprecated_block.get('scenario_mipgap')
-
-#
-# --scenario-solver-options
-#
-
-class _DeprecatedScenarioSolverOptions(argparse.Action):
- def __init__(self, option_strings, dest, nargs=None, **kwargs):
- if nargs is not None:
- raise ValueError("nargs not allowed")
- super(_DeprecatedScenarioSolverOptions, self).\
- __init__(option_strings, dest, **kwargs)
- def __call__(self, parser, namespace, values, option_string=None):
- logger.warning(
- "DEPRECATED: The '--scenario-solver-options command-line "
- "option has been deprecated and will be removed "
- "in the future. Please use '--solver-options instead.")
- current = getattr(namespace, 'CONFIGBLOCK.solver_options', values)
- current.append(values)
-
-#
-# --bounds-cfgfile
-#
-
-class _DeprecatedBoundsCFGFile(argparse.Action):
- def __init__(self, option_strings, dest, nargs=None, **kwargs):
- if nargs is not None:
- raise ValueError("nargs not allowed")
- super(_DeprecatedBoundsCFGFile, self).\
- __init__(option_strings, dest, **kwargs)
- def __call__(self, parser, namespace, values, option_string=None):
- logger.warning(
- "DEPRECATED: The '--bounds-cfgfile command-line "
- "option has been deprecated and will be removed "
- "in the future. Please use '--postinit-callback-location instead.")
- current = getattr(namespace,
- 'CONFIGBLOCK.postinit_callback_location')
- current.append(values)
-
-def _warn_bounds_cfgfile(val):
- # don't use logger here since users might not import
- # the pyomo logger in a scripting interface
- sys.stderr.write(
- "\tWARNING: The 'bounds_cfgfile' config item will be ignored "
- "unless it is being used as a command-line option "
- "where it can be redirected to 'postinit_callback_location'. "
- "Please use 'postinit_callback_location' instead.\n")
- return _domain_tuple_of_str(val)
-
-safe_declare_unique_option(
- _deprecated_block,
- "bounds_cfgfile",
- PySPConfigValue(
- None,
- domain=_warn_bounds_cfgfile,
- description=(
- "Deprecated alias for --postinit-callback-location"
- ),
- doc=None,
- visibility=1),
- ap_kwds={'action':_DeprecatedBoundsCFGFile},
- ap_group=_deprecated_options_group_title,
- declare_for_argparse=True)
-_map_to_deprecated['postinit_callback_location'] = \
- _deprecated_block.get('bounds_cfgfile')
-
-#
-# --aggregate-cfgfile
-#
-
-class _DeprecatedAggregateCFGFile(argparse.Action):
- def __init__(self, option_strings, dest, nargs=None, **kwargs):
- if nargs is not None:
- raise ValueError("nargs not allowed")
- super(_DeprecatedAggregateCFGFile, self).\
- __init__(option_strings, dest, **kwargs)
- def __call__(self, parser, namespace, values, option_string=None):
- logger.warning(
- "DEPRECATED: The '--aggregate-cfgfile command-line "
- "option has been deprecated and will be removed "
- "in the future. Please use '--aggregategetter-callback-location "
- "instead.")
- current = getattr(namespace,
- 'CONFIGBLOCK.aggregategetter_callback_location')
- current.append(values)
-
-def _warn_aggregate_cfgfile(val):
- # don't use logger here since users might not import
- # the pyomo logger in a scripting interface
- sys.stderr.write(
- "\tWARNING: The 'aggregate_cfgfile' config item will be ignored "
- "unless it is being used as a command-line option "
- "where it can be redirected to 'aggregategetter_callback_location'. "
- "Please use 'aggregategetter_callback_location' instead.\n")
- return _domain_tuple_of_str(val)
-
-safe_declare_unique_option(
- _deprecated_block,
- "aggregate_cfgfile",
- PySPConfigValue(
- None,
- domain=_warn_aggregate_cfgfile,
- description=(
- "Deprecated alias for --aggregategetter-callback-location"
- ),
- doc=None,
- visibility=1),
- ap_kwds={'action':_DeprecatedAggregateCFGFile},
- ap_group=_deprecated_options_group_title,
- declare_for_argparse=True)
-_map_to_deprecated['aggregategetter_callback_location'] = \
- _deprecated_block.get('aggregate_cfgfile')
-
-#
-# --shutdown-pyro
-#
-
-class _DeprecatedShutdownPyro(argparse.Action):
- def __init__(self, option_strings, dest, nargs=None, **kwargs):
- if nargs is not None:
- raise ValueError("nargs not allowed")
- super(_DeprecatedShutdownPyro, self).\
- __init__(option_strings, dest, nargs=0, **kwargs)
- def __call__(self, parser, namespace, values, option_string=None):
- logger.warning(
- "DEPRECATED: The '--shutdown-pyro command-line "
- "option has been deprecated and will be removed "
- "in the future. Please use '--pyro-shutdown "
- "instead.")
- setattr(namespace,
- 'CONFIGBLOCK.pyro_shutdown',
- True)
-
-def _warn_shutdown_pyro(val):
- # don't use logger here since users might not import
- # the pyomo logger in a scripting interface
- sys.stderr.write(
- "\tWARNING: The 'shutdown_pyro' config item will be ignored "
- "unless it is being used as a command-line option "
- "where it can be redirected to 'pyro_shutdown'. "
- "Please use 'pyro_shutdown' instead.\n")
- return bool(val)
-
-safe_declare_unique_option(
- _deprecated_block,
- "shutdown_pyro",
- PySPConfigValue(
- None,
- domain=_warn_shutdown_pyro,
- description=(
- "Deprecated alias for --pyro-shutdown"
- ),
- doc=None,
- visibility=1),
- ap_kwds={'action':_DeprecatedShutdownPyro},
- ap_group=_deprecated_options_group_title,
- declare_for_argparse=True)
-_map_to_deprecated['pyro_shutdown'] = \
- _deprecated_block.get('shutdown_pyro')
-
-class _DeprecatedShutdownPyroWorkers(argparse.Action):
- def __init__(self, option_strings, dest, nargs=None, **kwargs):
- if nargs is not None:
- raise ValueError("nargs not allowed")
- super(_DeprecatedShutdownPyroWorkers, self).\
- __init__(option_strings, dest, nargs=0, **kwargs)
- def __call__(self, parser, namespace, values, option_string=None):
- logger.warning(
- "DEPRECATED: The '--shutdown-pyro-workers command-line "
- "option has been deprecated and will be removed "
- "in the future. Please use '--pyro-shutdown-workers "
- "instead.")
- setattr(namespace,
- 'CONFIGBLOCK.pyro_shutdown_workers',
- True)
-
-def _warn_shutdown_pyro_workers(val):
- # don't use logger here since users might not import
- # the pyomo logger in a scripting interface
- sys.stderr.write(
- "\tWARNING: The 'shutdown_pyro_workers' config item will be ignored "
- "unless it is being used as a command-line option "
- "where it can be redirected to 'pyro_shutdown_workers'. "
- "Please use 'pyro_shutdown_workers' instead.\n")
- return bool(val)
-
-safe_declare_unique_option(
- _deprecated_block,
- "shutdown_pyro_workers",
- PySPConfigValue(
- None,
- domain=_warn_shutdown_pyro_workers,
- description=(
- "Deprecated alias for --pyro-shutdown-workers"
- ),
- doc=None,
- visibility=1),
- ap_kwds={'action':_DeprecatedShutdownPyroWorkers},
- ap_group=_deprecated_options_group_title,
- declare_for_argparse=True)
-_map_to_deprecated['pyro_shutdown_workers'] = \
- _deprecated_block.get('shutdown_pyro_workers')
-
-#
-# Register a common option
-#
-def safe_declare_common_option(configblock,
- name,
- prefix=None,
- ap_group=None):
- assert isinstance(configblock, PySPConfigBlock)
- assert name not in _deprecated_block
- assert name in common_block
- common_value = common_block.get(name)
- assert common_value._parent == common_block
- assert common_value._userSet == False
- assert common_value._userAccessed == False
- if prefix is not None:
- if common_value._argparse is not None:
- raise ValueError(
- "Cannot register a common option with a prefix "
- "when the PySPConfigValue has already been declared "
- "with argparse data"
- "short name")
- if name in _map_to_deprecated:
- raise ValueError(
- "Cannot register a common option with a prefix "
- "when the common option is mapped to a deprecated "
- "option name")
- name = prefix + name
- if name in _map_to_deprecated:
- raise ValueError(
- "Cannot register a common option with a prefix "
- "when the prefixed name is mapped to a deprecated "
- "option name")
- if name not in configblock:
- common_value._parent = None
- common_value_copy = copy.deepcopy(common_value)
- common_value._parent = common_block
- if ap_group is not None:
- common_value_copy.ap_group = ap_group
- configblock.declare(name, common_value_copy)
- #
- # handle deprecated command-line option names
- #
- if name in _map_to_deprecated:
- deprecated_value = _map_to_deprecated[name]
- assert deprecated_value._parent == _deprecated_block
- assert deprecated_value._userSet == False
- assert deprecated_value._userAccessed == False
- deprecated_value._parent = None
- deprecated_value_copy = copy.deepcopy(deprecated_value)
- deprecated_value._parent = _deprecated_block
- configblock.declare(deprecated_value_copy._name, deprecated_value_copy)
- else:
- current = configblock.get(name)
- check_options_match(current, common_value)
- if ap_group is not None:
- current.ap_group = ap_group
- if name in _map_to_deprecated:
- deprecated_value = _map_to_deprecated[name]
- assert deprecated_value._name in configblock
- current = configblock.get(deprecated_value._name)
- check_options_match(current, deprecated_value)
-
-#
-# Register a common option and make sure it is declared for argparse
-#
-def safe_register_common_option(configblock,
- name,
- prefix=None):
-
- assert isinstance(configblock, PySPConfigBlock)
- assert name not in _deprecated_block
- assert name in common_block, name
- common_value = common_block.get(name)
- assert common_value._parent == common_block
- assert common_value._userSet == False
- assert common_value._userAccessed == False
- if prefix is not None:
- if common_value._argparse is not None:
- raise ValueError(
- "Cannot register a common option with a prefix "
- "when the PySPConfigValue has already been declared "
- "with argparse data"
- "short name")
- if name in _map_to_deprecated:
- raise ValueError(
- "Cannot register a common option with a prefix "
- "when the common option is mapped to a deprecated "
- "option name")
- name = prefix + name
- if name in _map_to_deprecated:
- raise ValueError(
- "Cannot register a common option with a prefix "
- "when the prefixed name is mapped to a deprecated "
- "option name")
- if name not in configblock:
- common_value._parent = None
- common_value_copy = copy.deepcopy(common_value)
- common_value._parent = common_block
- configblock.declare(name, common_value_copy)
- if common_value_copy._argparse is None:
- _kwds = {}
- if common_value.ap_group is not None:
- _kwds['group'] = common_value.ap_group
- common_value_copy.declare_as_argument(**_kwds)
- #
- # handle deprecated command-line option names
- #
- if name in _map_to_deprecated:
- deprecated_value = _map_to_deprecated[name]
- assert deprecated_value._parent == _deprecated_block
- assert deprecated_value._userSet == False
- assert deprecated_value._userAccessed == False
- deprecated_value._parent = None
- deprecated_value_copy = copy.deepcopy(deprecated_value)
- deprecated_value._parent = _deprecated_block
- configblock.declare(deprecated_value_copy._name, deprecated_value_copy)
- else:
- current = configblock.get(name)
- if common_value._argparse is not None:
- check_options_match(current,
- common_value)
- else:
- check_options_match(current,
- common_value,
- include_argparse=False)
- if name in _map_to_deprecated:
- deprecated_value = _map_to_deprecated[name]
- if deprecated_value._name not in configblock:
- assert deprecated_value._parent == _deprecated_block
- assert deprecated_value._userSet == False
- assert deprecated_value._userAccessed == False
- deprecated_value._parent = None
- deprecated_value_copy = copy.deepcopy(deprecated_value)
- deprecated_value._parent = _deprecated_block
- configblock.declare(deprecated_value_copy._name,
- deprecated_value_copy)
- current = configblock.get(deprecated_value._name)
- check_options_match(current, deprecated_value)
-
-if __name__ == "__main__":
- import pyomo.environ
-
- class Junk1(object):
-
- @staticmethod
- def register_options(config_block):
- common_option_names = [
- 'model_location',
- 'scenario_tree_location',
- 'objective_sense_stage_based']
- for name in common_option_names:
- safe_declare_common_option(config_block, name)
- if config_block.get(name)._argparse is None:
- config_block.get(name).declare_as_argument()
-
- class Junk2(object):
- @staticmethod
- def register_options(config_block):
- for name in common_block:
- safe_declare_common_option(config_block, name)
- if config_block.get(name)._argparse is None:
- config_block.get(name).declare_as_argument()
-
-
- block = PySPConfigBlock()
- #Junk1.register_options(block)
- Junk2.register_options(block)
- block.declare('b', PySPConfigBlock())
- #Junk3.register_options(block.b)
-
- ap = argparse.ArgumentParser()
- block.initialize_argparse(ap)
- block.import_argparse(ap.parse_args())
-
- #print block.generate_yaml_template()
- #print block.model_location
- #block.model_location = 'gabe'
- #print block.model_location
- #print block['model_location']
- #print block.get('model_location')
- #print list(block.user_values())
- #print list(block.unused_user_values())
- #block.model_location = '2'
- #block.phpyro_transmit_leaf_stage_variable_solutions = 1
- #print 'model_location' in block
- #print 'model location' in block
-# block.solution_writer
- #print type(block.model_location)
- print("")
- print(block.bounds_cfgfile)
- print(block.postinit_callback_location)
- print(list((_c._name, _c.value(False)) for _c in block.user_values()))
- print(list(_c._name for _c in block.unused_user_values()))
-
- #options = PySPConfigBlock()
- #options.model_location = common.get('model_location')
-
- print("Deprecation Pairs:")
- for name in _map_to_deprecated:
- print(_map_to_deprecated[name]._name+" -> "+name)
diff --git a/pyomo/pysp/util/configured_object.py b/pyomo/pysp/util/configured_object.py
deleted file mode 100644
index 53e3a05739c..00000000000
--- a/pyomo/pysp/util/configured_object.py
+++ /dev/null
@@ -1,692 +0,0 @@
-# ___________________________________________________________________________
-#
-# Pyomo: Python Optimization Modeling Objects
-# Copyright 2017 National Technology and Engineering Solutions of Sandia, LLC
-# Under the terms of Contract DE-NA0003525 with National Technology and
-# Engineering Solutions of Sandia, LLC, the U.S. Government retains certain
-# rights in this software.
-# This software is distributed under the 3-clause BSD License.
-# ___________________________________________________________________________
-
-__all__ = ('PySPConfiguredObject', 'PySPConfiguredExtension')
-
-import inspect
-from collections import defaultdict
-
-from pyomo.common.plugin import SingletonPlugin
-from pyomo.pysp.util.config import (PySPConfigBlock,
- safe_declare_option,
- check_options_match,
- safe_declare_common_option,
- _deprecated_block)
-
-import six
-
-class PySPConfiguredObject(object):
- """
- A base class for classes that declare options using
- on a PySPConfigBlock.
-
- All classes that derive from PySPConfiguredObject should
- defined a _declare_options classmethod that returns or
- updates a PySPConfigBlock populated with with
- PySPConfigValue objects. This base class will handle the
- rest. To avoid name conflicts when declared with a
- prefix, all implementations should check for option
- values using self.get_option() rather than
- directly accessing the _options member.
-
- This class is designed to allow appearing multiple times
- in an inheritance hierarchy. All derived classes should
- call their base class __init__ using super().
- """
-
- @classmethod
- def _declare_options(cls, options=None):
- if options is None:
- options = PySPConfigBlock()
- return options
-
- def __init__(self, options, options_prefix=""):
- self._options_prefix = None
- self._options = None
- self.set_options_prefix(options_prefix)
- if options is not None:
- self.set_options(options)
-
- def get_option(self, name):
- """Get the value for the option with the input
- name. The options prefix currently set will
- automatically be prepended to the name."""
- assert self._options is not None
- configval = self._options.get(self._options_prefix + name)
- return configval.value()
-
- def get_full_option_name(self, name):
- """Return the full option name obtained by
- prepending the current options prefix to the input
- name."""
- assert self._options is not None
- configval = self._options.get(self._options_prefix + name)
- return self._options_prefix + name
-
- def set_options_prefix(self, options_prefix):
- """Set the options prefix used to read options from
- the current options object assigned to this
- class."""
- if not isinstance(options_prefix, six.string_types):
- raise TypeError(
- "Options prefix must be a built-in "
- "string type, not '%s'" % (type(options_prefix)))
- self._options_prefix = options_prefix
-
- def set_options(self, options):
- """Assign an options block to this class instance
- after validating that all registered options for
- this class exist on the block."""
- self.validate_options(options, options_prefix=self._options_prefix)
- self._options = options
-
- def display_options(self,
- ostream=None,
- registered_only=False):
- """Display the options on the options block currently
- assigned to this class instance. Options that have been
- explicitly set will be marked with a '*' symbol.
-
- Args:
- ostream: A file-like object that can be written
- to. The default is :const:`None`, indicating that
- output will be printed to the screen.
- registered_only (bool): Indicates whether or not options
- not necessarily registered for this class should be
- filtered from the output. Default is :const:`True`.
- """
- if (self._options is None) or \
- (len(self._options) == 0):
- # Note: writing to directly to stdout rather
- # than using 'print' as the default causes
- # issues with some of the redirection used
- # in test_ph.py
- if ostream is None:
- print("None")
- else:
- ostream.write("None\n")
- else:
- if registered_only:
- names = \
- list(cls.register_options(options_prefix=self._options_prefix).keys())
- else:
- names = list(self._options.keys())
- max_len = max(len(name) for name in names)
- line_template = " %s %"+str(max_len)+"s: %s"
- for name in names:
- configval = self._options.get(name)
- flag = "-"
- if configval._userSet:
- flag = "*"
- out = (line_template
- % (flag,name,configval.value(accessValue=False)))
- if name in _deprecated_block:
- out += " (DEPRECATED)"
- if ostream is None:
- print(out)
- else:
- ostream.write(out+"\n")
-
- @classmethod
- def register_options(cls, *args, **kwds):
- """
- Updates and/or returns an options block with options
- registered for this class.
-
- Args:
- *args: A single argument can be provided which
- should be an existing PySPConfigBlock to add
- options to.
- options_prefix (str): A string to prefix the
- name of all options added by this class.
-
- Returns:
- a PySPConfigBlock with the registered options \
- for this class
- """
-
- options_prefix = kwds.pop('options_prefix',"")
- assert isinstance(options_prefix, six.string_types)
- setup_argparse = kwds.pop('setup_argparse',True)
- if len(kwds) != 0:
- raise ValueError("Unexpected keywords: %s"
- % (str(kwds)))
- if len(args) == 0:
- options = PySPConfigBlock()
- else:
- if len(args) != 1:
- raise TypeError(
- "register_options(...) takes at most 1 argument (%s given)"
- % (len(args)))
- options = args[0]
- if not isinstance(options, PySPConfigBlock):
- raise TypeError(
- "register_options(...) argument must be of "
- "type PySPConfigBlock, not %s"
- % (type(options).__name__))
-
- bases = inspect.getmro(cls)
- assert bases[-1] is object
- #
- # Register options in order of most derived class
- # first. This allows derived classes to update
- # option default values. The safe_declare_option
- # function will simply validate that an existing
- # option matches when a base class attempts to
- # register an option that is already registered (in
- # which cases we tell it to accept differences in
- # default values).
- #
- for base in bases:
- #
- # The check here is that PySPConfiguredObject
- # needs to appear as an immediate base in a
- # class definition for us to assume that class
- # is declaring options. This allows declared
- # options to be distributed across different
- # containers in the class hierarchy, while
- # leaving the ability for derived classes to NOT
- # have to define an empty _declared_options
- # block or dummy _declare_options classmethod if
- # they don't have any new options to add but are
- # derived from some class which does use
- # PySPConfiguredObject as a base class. By not
- # declaring PySPConfiguredObject as an immediate
- # base class, we know not to check for a
- # _declared_options or _declare options in this
- # derived class's scope (because otherwise we'd
- # be getting some base class's definition)
- #
- if any(_base is PySPConfiguredObject
- for _base in base.__bases__):
- # make sure we've removed this older form
- assert not hasattr(base, "_declared_options")
- if "_declare_options" in base.__dict__:
- _declared_options = base._declare_options()
- for name in _declared_options:
- configval = _declared_options.get(name)
- assert configval._parent is _declared_options
- configval._parent = None
- declare_for_argparse = False
- if (setup_argparse) and \
- (configval._argparse is None) and \
- (options_prefix+name not in options):
- declare_for_argparse = True
- safe_declare_option(
- options,
- options_prefix+name,
- configval,
- relax_default_check=True,
- declare_for_argparse=declare_for_argparse)
- configval._parent = _declared_options
- return options
-
- @classmethod
- def extract_options(cls,
- options,
- options_prefix="",
- source_options_prefix="",
- error_if_missing=True):
- """Copy the set of registered options for this class
- from an existing options block and return a new
- options block with only those values.
-
- This method will preserve the _userSet status of all
- options.
-
- Args:
- options: The options block to extract options from.
- options_prefix (str): A string to prefix the
- name of all options added by this class.
- source_options_prefix (str): A string prefix to
- use when looking for this class's options on
- the :attr:`options` argument.
- error_if_missing (bool): Controls whether or not
- an exception is raised when registered
- options are missing from the input options
- object. Default is :const:`True`.
-
- Returns:
- a PySPConfigBlock with values copied from the \
- source options block but with only the options \
- associated with this class
- """
-
- assert isinstance(options_prefix, six.string_types)
- bare_options = cls.register_options(options_prefix="")
- return_options = cls.register_options(options_prefix=options_prefix)
- for name in bare_options.keys():
- configval = None
- if source_options_prefix+name in options:
- configval = options.get(source_options_prefix+name)
- elif error_if_missing:
- raise KeyError(source_options_prefix+name)
- else:
- continue
- assert configval is not None
- this_configval = return_options.get(options_prefix+name)
- include_argparse = False
- check_options_match(this_configval,
- configval,
- include_default=True,
- include_argparse=include_argparse,
- include_value=False,
- include_accessed=False)
- if configval._userSet:
- this_configval.set_value(configval.value())
-
- return return_options
-
- @classmethod
- def extract_user_options_to_dict(cls,
- options,
- options_prefix="",
- source_options_prefix="",
- error_if_missing=True,
- sparse=False):
- """Copy the set of registered options for this class
- from an existing options block and return a
- dictionary of options (name -> value) with those
- values.
-
- This method will preserve the _userSet status of all
- options.
-
- Args:
- options: The options block to extract options from.
- options_prefix (str): A string to prefix the
- name of all options added by this class.
- source_options_prefix (str): A string prefix to
- use when looking for this class's options on
- the :attr:`options` argument.
- error_if_missing (bool): Controls whether or not
- an exception is raised when registered
- options are missing from the input options
- object. Default is :const:`True`.
- sparse (bool): Controls whether non user-set
- values should be included in the returned
- dictionary. Default is :const:`False`.
-
- Returns:
- a dictionary mapping option names to values \
- extracted from the source options block
- """
-
- assert isinstance(options_prefix, six.string_types)
- bare_options = \
- cls.extract_options(options,
- options_prefix="",
- source_options_prefix=source_options_prefix,
- error_if_missing=error_if_missing)
- options_dict = {}
- for name in bare_options:
- configval = bare_options.get(name)
- if (not sparse) or configval._userSet:
- options_dict[options_prefix+name] = configval.value()
- return options_dict
-
- @classmethod
- def update_options_from_argparse(cls,
- options,
- ap_data,
- options_prefix="",
- source_options_prefix="",
- error_if_missing=True,
- skip_userset=False):
- """Update the input options object by extracting all
- registered options for this class from an argparse
- Namespace object.
-
- This method cannot determine if the values on the
- argparse Namespace object were set explicitly or are
- defaults. Therefore, the _userSet status will be
- updated on all options that are found. The method
- only compares the names against the attributes found
- on the argparse Namespace object. No other form of
- validation is performed.
-
- Args:
- options: The options block to update options on.
- ap_data: An argparse Namespace object to extract
- option values from.
- options_prefix (str): A string to prefix the
- name of all options added by this class.
- source_options_prefix (str): A string prefix to
- use when looking for this class's options on
- the :attr:`ap_data` argument.
- error_if_missing (bool): Controls whether or not
- an exception is raised when registered
- options are missing from the input Namespace
- object. Default is :const:`True`.
- skip_userset (bool): If set to :const:`True`,
- options that have been explicity set on the
- :attr:`options` argument will not be
- modified by the value stored in the argparse
- Namespace.
- """
-
- assert isinstance(options_prefix, six.string_types)
- assert isinstance(source_options_prefix, six.string_types)
- bare_options = \
- cls.extract_options(options,
- options_prefix="",
- error_if_missing=error_if_missing)
- for name in bare_options:
- configval = options.get(options_prefix+name)
- if (not skip_userset) or (not configval._userSet):
- try:
- ap_val = getattr(ap_data, source_options_prefix+name)
- except AttributeError:
- if error_if_missing:
- raise
- else:
- configval.set_value(ap_val)
-
- @classmethod
- def validate_options(cls,
- options,
- options_prefix="",
- error_if_missing=True):
- """Validate that all registered options can be found
- in the options block and that their option
- definitions are the same.
-
- Args:
- options: The options block to validate.
- options_prefix (str): A string to prefix the
- name of all options registered for class.
- error_if_missing (bool): Controls whether or not
- an exception is raised when registered
- options are missing from the input Namespace
- object. Default is :const:`True`.
- """
-
- assert isinstance(options_prefix, six.string_types)
- bases = inspect.getmro(cls)
- first = defaultdict(lambda: True)
- for base in bases:
- # The check here is that PySPConfiguredObject needs to
- # appear as an immediate base in a class definition for us
- # to check the list of _registered options declared in
- # that class definitions immediate scope. This allows
- # _declared_options to be distributed across different
- # containers in the class hierarchy, while leaving the
- # ability for derived classes to NOT have to define an
- # empty _declared_options block if they don't have any
- # new options to add but are derived from some class which
- # does use PySPConfiguredObject as a base class. By not
- # declaring PySPConfiguredObject as an immediate base
- # class, we know not to check for a _declared_options
- # data member in this derived class's scope (because
- # otherwise we'd be getting some base class's definition)
- #
- if any(base is PySPConfiguredObject
- for base in base.__bases__):
- # make sure we've removed this older form
- assert not hasattr(base, "_declared_options")
- if "_declare_options" in base.__dict__:
- _declared_options = base._declare_options()
- for name in _declared_options:
- configval = None
- if options_prefix+name in options:
- configval = options.get(options_prefix+name)
- elif error_if_missing:
- raise KeyError(options_prefix+name)
- else:
- continue
- assert configval is not None
- this_configval = _declared_options.get(name)
- include_argparse = False
- if this_configval._argparse is not None:
- include_argparse = True
- check_options_match(this_configval,
- configval,
- include_argparse=include_argparse,
- include_default=first[options_prefix + name],
- include_value=False,
- include_accessed=False)
- first[options_prefix + name] = False
-
-#
-# Classes that derive from PySPConfiguredExtension are meant to be
-# implemented as SingletonPlugin objects. By default, they prefix all
-# registered option names by their class name, but the implementor can
-# override this by declaring _default_options_prefix at the class level in
-# their implementation.
-#
-# Note: This class is NOT designed appear multiple times
-# in an inheritance hierarchy. All derived classes
-# must directly call this bases class __init__ method
-# rather than relying on super(). This is due to
-# how Pyutilib implements its Singleton type, causing
-# the __class__ cell to be empty.
-# (See: https://stackoverflow.com/questions/
-# 13126727/how-is-super-in-python-3-implemented)
-#
-
-class PySPConfiguredExtension(PySPConfiguredObject):
-
- @classmethod
- def _declare_options(cls, options=None):
- if options is None:
- options = PySPConfigBlock()
-
- safe_declare_common_option(options,
- "extension_precedence")
-
- return options
-
- _default_options_prefix = None
-
- def __init__(self):
- PySPConfiguredObject.__init__(self,
- None,
- options_prefix=self.extension_options_prefix())
- if not isinstance(self, SingletonPlugin):
- raise TypeError("PySPConfiguredExtension implementations must "
- "inherit from SingletonPlugin")
-
- @classmethod
- def extension_options_prefix(cls):
- bases = inspect.getmro(cls)
- assert bases[-1] is object
- for base in bases:
- if getattr(base, '_default_options_prefix', None) is not None:
- return base._default_options_prefix
- return cls.__name__.lower()+"_"
-
- @classmethod
- def register_options(cls, *args, **kwds):
- """
- Updates and/or returns an options block with options
- registered for this class.
-
- Args:
- *args: A single argument can be provided which
- should be an existing PySPConfigBlock to add
- options to.
- options_prefix (str): A string to prefix the
- name of all options added by this class.
-
- Returns:
- a PySPConfigBlock with the registered options \
- for this class
- """
- if 'options_prefix' not in kwds:
- kwds['options_prefix'] = cls.extension_options_prefix()
- return super(PySPConfiguredExtension, cls).\
- register_options(*args, **kwds)
-
- @classmethod
- def extract_options(cls,
- options,
- options_prefix=None,
- source_options_prefix=None,
- error_if_missing=True):
- """Copy the set of registered options for this class
- from an existing options block and return a new
- options block with only those values.
-
- This method will preserve the _userSet status of all
- options.
-
- Args:
- options: The options block to extract options from.
- options_prefix (str): A string to prefix the
- name of all options added by this class.
- source_options_prefix (str): A string prefix to
- use when looking for this class's options on
- the :attr:`options` argument.
- error_if_missing (bool): Controls whether or not
- an exception is raised when registered
- options are missing from the input options
- object.
-
- Returns:
- a PySPConfigBlock with values copied from the \
- source options block but with only the options \
- associated with this class
- """
-
- if options_prefix is None:
- options_prefix = cls.extension_options_prefix()
- if source_options_prefix is None:
- source_options_prefix = cls.extension_options_prefix()
- return super(PySPConfiguredExtension, cls).extract_options(
- options,
- options_prefix=options_prefix,
- source_options_prefix=source_options_prefix,
- error_if_missing=error_if_missing)
-
- @classmethod
- def extract_user_options_to_dict(cls,
- options,
- options_prefix=None,
- source_options_prefix=None,
- error_if_missing=True,
- sparse=False):
- """Copy the set of registered options for this class
- from an existing options block and return a
- dictionary of options (name -> value) with those
- values.
-
- This method will preserve the _userSet status of all
- options.
-
- Args:
- options: The options block to extract options from.
- options_prefix (str): A string to prefix the
- name of all options added by this class.
- source_options_prefix (str): A string prefix to
- use when looking for this class's options on
- the :attr:`options` argument.
- error_if_missing (bool): Controls whether or not
- an exception is raised when registered
- options are missing from the input options
- object. Default is :const:`True`.
- sparse (bool): Controls whether non user-set
- values should be included in the returned
- dictionary. Default is :const:`False`.
-
- Returns:
- a dictionary mapping option names to values \
- extracted from the source options block
- """
-
- if options_prefix is None:
- options_prefix = cls.extension_options_prefix()
- if source_options_prefix is None:
- source_options_prefix = cls.extension_options_prefix()
- return super(PySPConfiguredExtension, cls).\
- extract_user_options_to_dict(
- options,
- options_prefix=options_prefix,
- source_options_prefix=source_options_prefix,
- error_if_missing=error_if_missing,
- sparse=sparse)
-
- @classmethod
- def update_options_from_argparse(cls,
- options,
- ap_data,
- options_prefix=None,
- source_options_prefix=None,
- error_if_missing=True,
- skip_userset=False):
- """Update the input options object by extracting all
- registered options for this class from an argparse
- Namespace object.
-
- This method cannot determine if the values on the
- argparse Namespace object were set explicitly or are
- defaults. Therefore, the _userSet status will be
- updated on all options that are found. The method
- only compares the names against the attributes found
- on the argparse Namespace object. No other form of
- validation is performed.
-
- Args:
- options: The options block to update options on.
- ap_data: An argparse Namespace object to extract
- option values from.
- options_prefix (str): A string to prefix the
- name of all options added by this class.
- source_options_prefix (str): A string prefix to
- use when looking for this class's options on
- the :attr:`ap_data` argument.
- error_if_missing (bool): Controls whether or not
- an exception is raised when registered
- options are missing from the input Namespace
- object. Default is :const:`True`.
- skip_userset (bool): If set to :const:`True`,
- options that have been explicity set on the
- :attr:`options` argument will not be
- modified by the value stored in the argparse
- Namespace.
- """
-
- if options_prefix is None:
- options_prefix = cls.extension_options_prefix()
- if source_options_prefix is None:
- source_options_prefix = cls.extension_options_prefix()
- return super(PySPConfiguredExtension, cls).\
- update_options_from_argparse(
- options,
- ap_data,
- options_prefix=options_prefix,
- source_options_prefix=source_options_prefix,
- skip_userset=skip_userset,
- error_if_missing=error_if_missing)
-
- @classmethod
- def validate_options(cls,
- options,
- options_prefix=None,
- error_if_missing=True):
- """Validate that all registered options can be found
- in the options block and that their option
- definitions are the same.
-
- Args:
- options: The options block to validate.
- options_prefix (str): A string to prefix the
- name of all options registered for class.
- error_if_missing (bool): Controls whether or not
- an exception is raised when registered
- options are missing from the input Namespace
- object. Default is :const:`True`.
- """
-
- if options_prefix is None:
- options_prefix = cls.extension_options_prefix()
- return super(PySPConfiguredExtension, cls).validate_options(
- options,
- options_prefix=options_prefix,
- error_if_missing=error_if_missing)
diff --git a/pyomo/pysp/util/misc.py b/pyomo/pysp/util/misc.py
deleted file mode 100644
index 73140ff0ccd..00000000000
--- a/pyomo/pysp/util/misc.py
+++ /dev/null
@@ -1,518 +0,0 @@
-# ___________________________________________________________________________
-#
-# Pyomo: Python Optimization Modeling Objects
-# Copyright 2017 National Technology and Engineering Solutions of Sandia, LLC
-# Under the terms of Contract DE-NA0003525 with National Technology and
-# Engineering Solutions of Sandia, LLC, the U.S. Government retains certain
-# rights in this software.
-# This software is distributed under the 3-clause BSD License.
-# ___________________________________________________________________________
-
-__all__ = ("launch_command",
- "load_external_module",
- "parse_command_line")
-
-import logging
-import time
-import six
-import sys
-import subprocess
-import inspect
-import argparse
-
-from pyutilib.misc import import_file
-from pyomo.common.tempfiles import TempfileManager
-from pyomo.common.errors import ApplicationError
-from pyomo.common.gc_manager import PauseGC
-from pyomo.opt.base import ConverterError
-from pyomo.common.dependencies import attempt_import
-from pyomo.common.plugin import (ExtensionPoint,
- SingletonPlugin)
-from pyomo.pysp.util.config import PySPConfigBlock
-from pyomo.pysp.util.configured_object import PySPConfiguredObject
-
-pyu_pyro = attempt_import('pyutilib.pyro', alt_names=['pyu_pyro'])[0]
-
-
-logger = logging.getLogger('pyomo.pysp')
-
-def _generate_unique_module_name():
- import uuid
- name = str(uuid.uuid4())
- while name in sys.modules:
- name = str(uuid.uuid4())
- return name
-
-def load_external_module(module_name,
- unique=False,
- clear_cache=False,
- verbose=False):
- try:
- # make sure "." is in the PATH.
- original_path = list(sys.path)
- sys.path.insert(0,'.')
-
- sys_modules_key = None
- module_to_find = None
- #
- # Getting around CPython implementation detail:
- # sys.modules contains dummy entries set to None.
- # It is related to relative imports. Long story short,
- # we must check that both module_name is in sys.modules
- # AND its entry is not None.
- #
- if (module_name in sys.modules) and \
- (sys.modules[module_name] is not None):
- sys_modules_key = module_name
- if clear_cache:
- if unique:
- sys_modules_key = _generate_unique_module_name()
- if verbose:
- print("Module="+module_name+" is already imported - "
- "forcing re-import using unique module id="
- +str(sys_modules_key))
- module_to_find = import_file(module_name, name=sys_modules_key)
- if verbose:
- print("Module successfully loaded")
- else:
- if verbose:
- print("Module="+module_name+" is already imported - "
- "forcing re-import")
- module_to_find = import_file(module_name, clear_cache=True)
- if verbose:
- print("Module successfully loaded")
- else:
- if verbose:
- print("Module="+module_name+" is already imported - skipping")
- module_to_find = sys.modules[module_name]
- else:
- if unique:
- sys_modules_key = _generate_unique_module_name()
- if verbose:
- print("Importing module="+module_name+" using "
- "unique module id="+str(sys_modules_key))
- module_to_find = import_file(module_name, name=sys_modules_key)
- if verbose:
- print("Module successfully loaded")
- else:
- if verbose:
- print("Importing module="+module_name)
- _context = {}
- module_to_find = import_file(module_name, context=_context, clear_cache=clear_cache)
- assert len(_context) == 1
- sys_modules_key = list(_context.keys())[0]
- if verbose:
- print("Module successfully loaded")
-
- finally:
- # restore to what it was
- sys.path[:] = original_path
-
- return module_to_find, sys_modules_key
-
-def sort_extensions_by_precedence(extensions):
- import pyomo.pysp.util.configured_object
- return tuple(sorted(
- extensions,
- key=lambda ext:
- (ext.get_option('extension_precedence') if \
- isinstance(ext, pyomo.pysp.util.configured_object.\
- PySPConfiguredExtension) else \
- float('-inf'))))
-
-def load_extensions(names, ep_type):
- import pyomo.environ
-
- plugins = ExtensionPoint(ep_type)
-
- active_plugins = []
- for this_extension in names:
- module, _ = load_external_module(this_extension)
- assert module is not None
- for name, obj in inspect.getmembers(module, inspect.isclass):
- # the second condition gets around goofyness related
- # to issubclass returning True when the obj is the
- # same as the test class.
- if issubclass(obj, SingletonPlugin) and \
- (name != "SingletonPlugin"):
- for plugin in plugins(all=True):
- if isinstance(plugin, obj):
- active_plugins.append(plugin)
-
- return tuple(active_plugins)
-
-#
-# A utility function for generating an argparse object and parsing the
-# command line from a callback that registers options onto a
-# PySPConfigBlock. Optionally, a list of extension point types can be
-# supplied, which causes reparsing to occur when any extensions are
-# specified on the command-line that might register additional
-# options.
-#
-# with_extensions: should be a dictionary mapping registered
-# option name to the ExtensionPoint service
-#
-
-def parse_command_line(args,
- register_options_callback,
- with_extensions=None,
- **kwds):
- import pyomo.pysp.plugins
- pyomo.pysp.plugins.load()
- from pyomo.pysp.util.config import _domain_tuple_of_str
-
- registered_extensions = {}
- if with_extensions is not None:
- for name in with_extensions:
- plugins = ExtensionPoint(with_extensions[name])
- for plugin in plugins(all=True):
- registered_extensions.setdefault(name,[]).\
- append(plugin.__class__.__module__)
-
- def _get_argument_parser(options):
- # if we modify this and don't copy it,
- # the this output will appear twice the second
- # time this function gets called
- _kwds = dict(kwds)
- if len(registered_extensions) > 0:
- assert with_extensions is not None
- epilog = _kwds.pop('epilog',"")
- if epilog != "":
- epilog += "\n\n"
- epilog += "Registered Extensions:\n"
- for name in registered_extensions:
- epilog += " - "+str(with_extensions[name].__name__)+": "
- epilog += str(registered_extensions[name])+"\n"
- _kwds['epilog'] = epilog
- ap = argparse.ArgumentParser(
- add_help=False,
- formatter_class=argparse.RawDescriptionHelpFormatter,
- **_kwds)
- options.initialize_argparse(ap)
- ap.add_argument("-h", "--help", dest="show_help",
- action="store_true", default=False,
- help="show this help message and exit")
-
- return ap
-
- #
- # Register options
- #
- options = PySPConfigBlock()
- register_options_callback(options)
-
- if with_extensions is not None:
- for name in with_extensions:
- configval = options.get(name, None)
- assert configval is not None
- assert configval._domain is _domain_tuple_of_str
-
- ap = _get_argument_parser(options)
- # First parse known args, then import any extension plugins
- # specified by the user, regenerate the options block and
- # reparse to pick up plugin specific registered options
- opts, _ = ap.parse_known_args(args=args)
- options.import_argparse(opts)
- extensions = {}
- if with_extensions is None:
- if opts.show_help:
- pass
- else:
- if all(len(options.get(name).value()) == 0
- for name in with_extensions) and \
- opts.show_help:
- ap.print_help()
- sys.exit(0)
- for name in with_extensions:
- extensions[name] = load_extensions(
- options.get(name).value(),
- with_extensions[name])
-
- # regenerate the options
- options = PySPConfigBlock()
- register_options_callback(options)
- for name in extensions:
- for plugin in extensions[name]:
- if isinstance(plugin, PySPConfiguredObject):
- plugin.register_options(options)
- # do a dummy access to option to prevent
- # a warning about it not being used
- options.get(name).value()
-
- ap = _get_argument_parser(options)
- opts = ap.parse_args(args=args)
- options.import_argparse(opts)
- for name in extensions:
- for plugin in extensions[name]:
- if isinstance(plugin, PySPConfiguredObject):
- plugin.set_options(options)
- if opts.show_help:
- ap.print_help()
- sys.exit(0)
-
- if with_extensions:
- for name in extensions:
- extensions[name] = sort_extensions_by_precedence(extensions[name])
- return options, extensions
- else:
- return options
-
-#
-# When we create official command-line applications
-# there is a long list of processing related to
-# traceback and profile handling that should not need
-# to be copy-pasted everywhere
-#
-def launch_command(command,
- options,
- cmd_args=None,
- cmd_kwds=None,
- error_label="",
- disable_gc=False,
- profile_count=0,
- log_level=logging.INFO,
- traceback=False):
- # This is not the effective level, but the
- # level on the current logger. We want to
- # return the logger to its original state
- # before this function exits
- prev_log_level = logger.level
- logger.setLevel(log_level)
-
- if cmd_args is None:
- cmd_args = ()
- if cmd_kwds is None:
- cmd_kwds = {}
-
- #
- # Control the garbage collector - more critical than I would like
- # at the moment.
- #
- with PauseGC(disable_gc) as pgc:
-
- #
- # Run command - precise invocation depends on whether we want
- # profiling output, traceback, etc.
- #
-
- rc = 0
-
- if profile_count > 0:
- # Defer import of profiling packages until we know that they
- # are needed
- try:
- try:
- import cProfile as profile
- except ImportError:
- import profile
- import pstats
- except ImportError:
- raise ValueError(
- "Cannot use the 'profile' option: the Python "
- "'profile' or 'pstats' package cannot be imported!")
- #
- # Call the main routine with profiling.
- #
- try:
- tfile = TempfileManager.create_tempfile(suffix=".profile")
- tmp = profile.runctx('command(options, *cmd_args, **cmd_kwds)',
- globals(),
- locals(),
- tfile)
- p = pstats.Stats(tfile).strip_dirs()
- p.sort_stats('time', 'cumulative')
- p = p.print_stats(profile_count)
- p.print_callers(profile_count)
- p.print_callees(profile_count)
- p = p.sort_stats('cumulative','calls')
- p.print_stats(profile_count)
- p.print_callers(profile_count)
- p.print_callees(profile_count)
- p = p.sort_stats('calls')
- p.print_stats(profile_count)
- p.print_callers(profile_count)
- p.print_callees(profile_count)
- TempfileManager.clear_tempfiles()
- rc = tmp
- finally:
- logger.setLevel(prev_log_level)
- else:
-
- #
- # Call the main PH routine without profiling.
- #
- if traceback:
- try:
- rc = command(options, *cmd_args, **cmd_kwds)
- finally:
- logger.setLevel(prev_log_level)
- else:
- try:
- try:
- rc = command(options, *cmd_args, **cmd_kwds)
- except ValueError:
- sys.stderr.write(error_label+"VALUE ERROR:\n")
- sys.stderr.write(str(sys.exc_info()[1])+"\n")
- raise
- except KeyError:
- sys.stderr.write(error_label+"KEY ERROR:\n")
- sys.stderr.write(str(sys.exc_info()[1])+"\n")
- raise
- except TypeError:
- sys.stderr.write(error_label+"TYPE ERROR:\n")
- sys.stderr.write(str(sys.exc_info()[1])+"\n")
- raise
- except NameError:
- sys.stderr.write(error_label+"NAME ERROR:\n")
- sys.stderr.write(str(sys.exc_info()[1])+"\n")
- raise
- except IOError:
- sys.stderr.write(error_label+"IO ERROR:\n")
- sys.stderr.write(str(sys.exc_info()[1])+"\n")
- raise
- except ConverterError:
- sys.stderr.write(error_label+"CONVERTER ERROR:\n")
- sys.stderr.write(str(sys.exc_info()[1])+"\n")
- raise
- except ApplicationError:
- sys.stderr.write(error_label+"APPLICATION ERROR:\n")
- sys.stderr.write(str(sys.exc_info()[1])+"\n")
- raise
- except RuntimeError:
- sys.stderr.write(error_label+"RUN-TIME ERROR:\n")
- sys.stderr.write(str(sys.exc_info()[1])+"\n")
- raise
- except:
- sys.stderr.write(error_label+
- "Encountered unhandled exception:\n")
- if len(sys.exc_info()) > 1:
- sys.stderr.write(str(sys.exc_info()[1])+"\n")
- else:
- traceback.print_exc(file=sys.stderr)
- raise
- except:
- sys.stderr.write("\n")
- sys.stderr.write(
- "To obtain further information regarding the "
- "source of the exception, use the "
- "--traceback option\n")
- rc = 1
-
- #
- # TODO: Once we incorporate options registration into
- # all of the PySP commands we will assume the
- # options object is always a PySPConfigBlock
- #
- if isinstance(options, PySPConfigBlock):
- options.check_usage(error=False)
-
- logger.setLevel(prev_log_level)
-
- return rc
-
-def _poll(proc):
- if proc is None:
- return
- proc.poll()
- if proc.returncode:
- raise OSError
-
-def _kill(proc):
- if proc is None:
- return
- if proc.stdout is not None:
- proc.stdout.close()
- if proc.stderr is not None:
- proc.stderr.close()
- while proc.returncode is None:
- try:
- proc.terminate()
- except:
- pass
- if six.PY3:
- proc.wait(timeout=1)
- if proc.returncode is None:
- try:
- proc.kill()
- except:
- pass
- proc.wait(timeout=1)
- else:
- proc.poll()
- if proc.returncode is None:
- time.sleep(0.5)
- try:
- proc.kill()
- except:
- pass
- proc.poll()
-
-def _get_test_nameserver(ns_host="127.0.0.1", num_tries=20):
- if not (pyu_pyro.using_pyro3 or pyu_pyro.using_pyro4):
- return None, None
- ns_options = None
- if pyu_pyro.using_pyro3:
- ns_options = ["-r","-k","-n "+ns_host]
- elif pyu_pyro.using_pyro4:
- ns_options = ["--host="+ns_host]
- # don't start the broadcast server
- ns_options += ["-x"]
- ns_port = None
- ns_process = None
- for i in range(num_tries):
- try:
- ns_port = pyu_pyro.util.find_unused_port()
- print("Trying nameserver with port: "
- +str(ns_port))
- cmd = ["pyomo_ns"] + ns_options
- if pyu_pyro.using_pyro3:
- cmd += ["-p "+str(ns_port)]
- elif pyu_pyro.using_pyro4:
- cmd += ["--port="+str(ns_port)]
- print(' '.join(cmd))
- ns_process = \
- subprocess.Popen(cmd, stdout=subprocess.PIPE)
- time.sleep(5)
- _poll(ns_process)
- break
- except OSError:
- print(sys.exc_info())
- print("Failed to find open port - trying again in 20 seconds")
- time.sleep(20)
- _kill(ns_process)
- ns_port = None
- ns_process = None
- return ns_process, ns_port
-
-def _get_test_dispatcher(ns_host=None,
- ns_port=None,
- dispatcher_host="127.0.0.1",
- num_tries=20):
- if not (pyu_pyro.using_pyro3 or pyu_pyro.using_pyro4):
- return None, None
- dispatcher_port = None
- dispatcher_process = None
- for i in range(num_tries):
- try:
- dispatcher_port = pyu_pyro.util.find_unused_port()
- print("Trying dispatcher with port: "
- +str(dispatcher_port))
- cmd = ["dispatch_srvr",
- "--host="+str(ns_host),
- "--port="+str(ns_port),
- "--daemon-host="+str(dispatcher_host),
- "--daemon-port="+str(dispatcher_port)]
- print(' '.join(cmd))
- dispatcher_process = \
- subprocess.Popen(cmd, stdout=subprocess.PIPE)
- time.sleep(5)
- _poll(dispatcher_process)
- break
- except OSError as e:
- print(sys.exc_info())
- print("Failed to find open port - trying again in 20 seconds")
- time.sleep(20)
- _kill(dispatcher_process)
- dispatcher_port = None
- dispatcher_process = None
- return dispatcher_process, dispatcher_port
diff --git a/pyomo/pysp/util/rapper.py b/pyomo/pysp/util/rapper.py
deleted file mode 100644
index af899f39dac..00000000000
--- a/pyomo/pysp/util/rapper.py
+++ /dev/null
@@ -1,354 +0,0 @@
-"""
-A class and some utilities to wrap PySP.
-In particular to enable programmatic access to some of
-the functionality in runef and runph for ConcreteModels
-Author: David L. Woodruff, started February 2017
-"""
-
-import inspect
-from pyomo.core.base.component import _name_index_generator
-from pyomo.environ import SolverFactory
-from pyomo.pysp.scenariotree.instance_factory \
- import ScenarioTreeInstanceFactory
-from pyomo.pysp.ef import create_ef_instance
-
-from pyomo.pysp.phinit import construct_ph_options_parser, GenerateScenarioTreeForPH, PHAlgorithmBuilder
-
-def _optiondict_2_list(phopts, args_list = None):
- """ A little utility to change the format of options"""
- if args_list is None:
- args_list = []
- if phopts is not None:
- for key in phopts:
- args_list.append(key)
- if phopts[key] is not None:
- args_list.append(phopts[key])
- return args_list
-
-def _kwfromphopts(phopts):
- """
- This is really local to the StochSolver __init__ but
- I moved it way out to make the init more readable. The
- function takes the phopts dictionary and returns
- a kwargs dictionary suitable for a call to generate_scenario_tree.
- Note that only some options (i.e., bundle options) are needed
- when the tree is created. The rest can be passed in when the
- ph object is created.
- inputs:
- phopts: a ph options dictionary.
- return:
- kwargs: a dictionary suitable for a call to generate_scenario_tree.
- """
- kwargs = {}
- def dointpair(pho, fo):
- if pho in phopts and phopts[pho] is not None:
- kwargs[fo] = int(phopts[pho])
- else:
- kwargs[fo] = None
- if phopts is not None:
- dointpair("--create-random-bundles", 'random_bundles')
- dointpair("--scenario-tree-seed", 'random_seed')
- if "--scenario-tree-downsample-fraction" in phopts:
- kwargs['downsample_fraction'] = \
- float(phopts["--scenario-tree-downsample-fraction"])
- else:
- kwargs['downsample_fraction'] = None
-
- if "--scenario-bundle-specification" in phopts:
- kwargs['bundles'] = phopts["--scenario-tree-bundle-specification"]
- else:
- kwargs['bundles'] = None
-
- return kwargs
-
-
-#==================================
-class StochSolver:
- """A class for solving stochastic versions of concrete models and
- abstract models.
- Inspired by the IDAES use case and by daps ability to create tree models.
- Author: David L. Woodruff, February 2017
-
- Args:
- fsfile (str): is a path to the file that contains the scenario
- callback for concrete or the reference model for abstract.
- fsfct (str, or fct, or None):
- | str: callback function name in the file
- | fct: callback function (fsfile is ignored)
- | None: it is a AbstractModel
- tree_model (concrete model, or networkx tree, or path):
- gives the tree as a concrete model (which could be a fct)
- or a valid networkx scenario tree
- or path to AMPL data file.
- phopts: dictionary of ph options; needed during construction
- if there is bundling.
-
- Attributes:
- scenario_tree: scenario tree object (that includes data)
-
- """
- def __init__(self, fsfile,
- fsfct = None,
- tree_model = None,
- phopts = None):
- """Initialize a StochSolver object.
- """
- if fsfct is None:
- # Changed in October 2018: None implies AbstractModel
- args_list = _optiondict_2_list(phopts)
- parser = construct_ph_options_parser("")
- options = parser.parse_args(args_list)
-
- scenario_instance_factory = \
- ScenarioTreeInstanceFactory(fsfile, tree_model)
-
- try:
- self.scenario_tree = \
- GenerateScenarioTreeForPH(options,
- scenario_instance_factory)
- except:
- print ("ERROR in StochSolver called from",inspect.stack()[1][3])
- raise RuntimeError("fsfct is None, so assuming",
- "AbstractModel but could not find all ingredients.")
-
- else: # concrete model
- if callable(fsfct):
- scen_function = fsfct
- else: # better be a string
- fsfile = fsfile.replace('.py','') # import does not like .py
- # __import__ only gives the top level module
- # probably need to be dealing with modules installed via setup.py
- m = __import__(fsfile)
- for n in fsfile.split(".")[1:]:
- m = getattr(m, n)
- scen_function = getattr(m, fsfct)
-
- if tree_model is None:
- treecbname = "pysp_scenario_tree_model_callback"
- tree_maker = getattr(m, treecbname)
-
- tree = tree_maker()
-
- scenario_instance_factory = ScenarioTreeInstanceFactory(scen_function, tree_model)
-
- else:
- # DLW March 21: still not correct
- scenario_instance_factory = \
- ScenarioTreeInstanceFactory(scen_function, tree_model)
-
-
- kwargs = _kwfromphopts(phopts)
- self.scenario_tree = \
- scenario_instance_factory.generate_scenario_tree(**kwargs) #verbose = True)
- instances = scenario_instance_factory. \
- construct_instances_for_scenario_tree(self.scenario_tree)
- self.scenario_tree.linkInInstances(instances)
-
- #=========================
- def make_ef(self,
- verbose=False,
- generate_weighted_cvar = False,
- cvar_weight = None,
- risk_alpha = None,
- cc_indicator_var_name=None,
- cc_alpha=0.0):
- """ Make an ef object (used by solve_ef); all Args are optional.
-
- Args:
- verbose (boolean): indicates verbosity to PySP for construction
- generate_weighted_cvar (boolean): indicates we want weighted CVar
- cvar_weight (float): weight for the cvar term
- risk_alpha (float): alpha value for cvar
- cc_indicator_var_name (string): name of the Var used for chance constraint
- cc_alpha (float): alpha for chance constraint
-
- Returns:
- ef_instance: the ef object
- """
- return create_ef_instance(self.scenario_tree,
- verbose_output=verbose,
- generate_weighted_cvar = generate_weighted_cvar,
- cvar_weight = cvar_weight,
- risk_alpha = risk_alpha,
- cc_indicator_var_name = cc_indicator_var_name,
- cc_alpha = cc_alpha)
-
- def solve_ef(self, subsolver, sopts = None, tee = False, need_gap = False,
- verbose=False,
- generate_weighted_cvar = False,
- cvar_weight = None,
- risk_alpha = None,
- cc_indicator_var_name=None,
- cc_alpha=0.0):
-
- """Solve the stochastic program directly using the extensive form.
- All Args other than subsolver are optional.
-
- Args:
- subsolver (str): the solver to call (e.g., 'ipopt')
- sopts (dict): solver options
- tee (bool): indicates dynamic solver output to terminal.
- need_gap (bool): indicates the need for the optimality gap
- verbose (boolean): indicates verbosity to PySP for construction
- generate_weighted_cvar (boolean): indicates we want weighted CVar
- cvar_weight (float): weight for the cvar term
- risk_alpha (float): alpha value for cvar
- cc_indicator_var_name (string): name of the Var used for chance constraint
- cc_alpha (float): alpha for chance constraint
-
- Returns: (`Pyomo solver result`, `float`)
-
- solve_result is the solver return value.
-
- absgap is the absolute optimality gap (might not be valid); only if requested
-
- Note:
- Also update the scenario tree, populated with the solution.
- Also attach the full ef instance to the object. So you might want
- obj = pyo.value(stsolver.ef_instance.MASTER)
- This needs more work to deal with solver failure (dlw, March, 2018)
-
- """
-
- self.ef_instance = self.make_ef(verbose=verbose,
- generate_weighted_cvar = generate_weighted_cvar,
- cvar_weight = cvar_weight,
- risk_alpha = risk_alpha,
- cc_indicator_var_name = cc_indicator_var_name,
- cc_alpha = cc_alpha)
-
- solver = SolverFactory(subsolver)
- if sopts is not None:
- for key in sopts:
- solver.options[key] = sopts[key]
-
- if need_gap:
- solve_result = solver.solve(self.ef_instance, tee = tee, load_solutions=False)
- if len(solve_result.solution) > 0:
- absgap = solve_result.solution(0).gap
- else:
- absgap = None
- self.ef_instance.solutions.load_from(solve_result)
- else:
- solve_result = solver.solve(self.ef_instance, tee = tee)
-
- # note: the objective is probably called MASTER
- #print ("debug value(ef_instance.MASTER)=",value(ef_instance.MASTER))
- self.scenario_tree.pullScenarioSolutionsFromInstances()
- self.scenario_tree.snapshotSolutionFromScenarios() # update nodes
- if need_gap:
- return solve_result, absgap
- else:
- return solve_result
-
- #=========================
- def solve_ph(self, subsolver, default_rho, phopts = None, sopts = None):
- """Solve the stochastic program given by this.scenario_tree using ph
-
- Args:
- subsolver (str): the solver to call (e.g., 'ipopt')
- default_rho (float): the rho value to use by default
- phopts: dictionary of ph options (optional)
- sopts: dictionary of subsolver options (optional)
-
- Returns: the ph object
-
- Note:
- Updates the scenario tree, populated with the xbar values;
- however, you probably want to do
- obj, xhat = ph.compute_and_report_inner_bound_using_xhat()
- where ph is the return value.
-
- """
-
- ph = None
-
- # Build up the options for PH.
- parser = construct_ph_options_parser("")
- phargslist = ['--default-rho',str(default_rho)]
- phargslist.append('--solver')
- phargslist.append(str(subsolver))
- phargslist = _optiondict_2_list(phopts, args_list = phargslist)
-
- # Subproblem options go to PH as space-delimited, equals-separated pairs.
- if sopts is not None:
- soptstring = ""
- for key in sopts:
- soptstring += key + '=' + str(sopts[key]) + ' '
- phargslist.append('--scenario-solver-options')
- phargslist.append(soptstring)
- phoptions = parser.parse_args(phargslist)
-
- # construct the PH solver object
- try:
- ph = PHAlgorithmBuilder(phoptions, self.scenario_tree)
- except:
- print ("Internal error: ph construction failed.")
- if ph is not None:
- ph.release_components()
- raise
-
- retval = ph.solve()
- if retval is not None:
- raise RuntimeError("ph Failure Encountered="+str(retval))
- # dlw May 2017: I am not sure if the next line is really needed
- ph.save_solution()
-
- return ph
-
- #=========================
- def root_Var_solution(self):
- """Generator to loop over x-bar
-
- Yields:
- name, value pair for root node solution values
- """
- root_node = self.scenario_tree.findRootNode()
- for variable_id in sorted(root_node._variable_ids):
- var_name, index = root_node._variable_ids[variable_id]
- name = var_name
- if index is not None:
- name += _name_index_generator(index)
- yield name, root_node._solution[variable_id]
-
- #=========================
- def root_E_obj(self):
- """post solve Expected cost of the solution in the scenario tree (xbar)
-
- Returns:
- float: the expected costs of the solution in the tree (xbar)
- """
- root_node = self.scenario_tree.findRootNode()
- return root_node.computeExpectedNodeCost()
-
-#=========================
-def xhat_from_ph(ph):
- """a service fuction to wrap a call to get xhat
-
- Args:
- ph: a post-solve ph object
-
- Returns: (float, object)
-
- float: the expected cost of the xhat solution for the scenarios
-
- xhat: an object with the solution tree
- """
- obj, xhat = ph.compute_and_report_inner_bound_using_xhat()
- return obj, xhat
-
-#=========================
-def xhat_walker(xhat):
- """A service generator to walk over a given xhat
-
- Args:
- xhat (dict): an xhat solution (probably from xhat_from_ph)
-
- Yields:
- (nodename, varname, varvalue)
- """
- for nodename in xhat:
- for varname, varvalue in xhat[nodename].items():
- yield (nodename, varname, varvalue)
-
-
diff --git a/pyomo/repn/plugins/ampl/ampl_.py b/pyomo/repn/plugins/ampl/ampl_.py
index 5429cdf671e..dd35a94e5d1 100644
--- a/pyomo/repn/plugins/ampl/ampl_.py
+++ b/pyomo/repn/plugins/ampl/ampl_.py
@@ -14,11 +14,6 @@
__all__ = ['ProblemWriter_nl']
-try:
- basestring
-except:
- basestring = str
-
import itertools
import logging
import operator
@@ -562,7 +557,7 @@ def _print_nonlinear_terms_NL(self, exp):
exp.nargs(),
exp.name))
for arg in exp.args:
- if isinstance(arg, basestring):
+ if isinstance(arg, str):
OUTPUT.write(string_arg_str % (len(arg), arg))
elif arg.is_fixed():
self._print_nonlinear_terms_NL(arg())
@@ -1228,6 +1223,10 @@ def _print_model_NL(self, model,
subsection_timer.report("Write .col file")
subsection_timer.reset()
+ if len(full_var_list) < 1:
+ raise ValueError("No variables appear in the Pyomo model constraints or"
+ " objective. This is not supported by the NL file interface")
+
#
# Print Header
#
diff --git a/pyomo/repn/plugins/gams_writer.py b/pyomo/repn/plugins/gams_writer.py
index fe2d6fb4b06..ace1471aaac 100644
--- a/pyomo/repn/plugins/gams_writer.py
+++ b/pyomo/repn/plugins/gams_writer.py
@@ -12,7 +12,7 @@
# Problem Writer for GAMS Format Files
#
-from six import StringIO, string_types, iteritems
+from six import StringIO, iteritems
from pyomo.common.gc_manager import PauseGC
from pyomo.core.expr import current as EXPR
@@ -459,7 +459,7 @@ def var_label(obj):
# immediately anyway.
with PauseGC() as pgc:
try:
- if isinstance(output_filename, string_types):
+ if isinstance(output_filename, str):
output_file = open(output_filename, "w")
else:
# Support passing of stream such as a StringIO
@@ -487,7 +487,7 @@ def var_label(obj):
put_results_format=put_results_format,
)
finally:
- if isinstance(output_filename, string_types):
+ if isinstance(output_filename, str):
output_file.close()
return output_filename, symbolMap
diff --git a/pyomo/repn/standard_repn.py b/pyomo/repn/standard_repn.py
index 2e7f9d6b42c..9bc4d16b68a 100755
--- a/pyomo/repn/standard_repn.py
+++ b/pyomo/repn/standard_repn.py
@@ -21,8 +21,6 @@
Objective,
ComponentMap)
-from math import isclose
-
from pyomo.core.expr import current as EXPR
from pyomo.core.base.objective import (_GeneralObjectiveData,
SimpleObjective)
@@ -40,10 +38,6 @@
from six import iteritems, StringIO, PY3
from six.moves import zip
-try:
- basestring
-except:
- basestring = str
logger = logging.getLogger('pyomo.core')
@@ -243,12 +237,6 @@ def generate_standard_repn(expr, idMap=None, compute_values=True, verbose=False,
Results = ResultsWithQuadratics
else:
Results = ResultsWithoutQuadratics
- #
- # Use a custom isclose function
- #
- global isclose
- if not compute_values:
- isclose = isclose_const
if True:
#
diff --git a/pyomo/repn/tests/ampl/test_ampl_comparison.py b/pyomo/repn/tests/ampl/test_ampl_comparison.py
index 783cd8ea476..9ade6ef99a7 100644
--- a/pyomo/repn/tests/ampl/test_ampl_comparison.py
+++ b/pyomo/repn/tests/ampl/test_ampl_comparison.py
@@ -13,12 +13,12 @@
import re
import glob
+import subprocess
import os
from os.path import abspath, dirname
currdir = dirname(abspath(__file__))+os.sep
import pyutilib.th as unittest
-import pyutilib.subprocess
import pyomo.scripting.pyomo_main as main
@@ -98,16 +98,22 @@ def nlwriter_asl_test(self, name):
pass
# obtain the nl file summary information for comparison with ampl
- p = pyutilib.subprocess.run(
- 'gjh_asl_json '+currdir+name+'.test.nl rows='
- +currdir+name+'.test.row cols='+currdir+name+'.test.col')
- self.assertTrue(p[0] == 0, msg=p[1])
+ p = subprocess.run(['gjh_asl_json',
+ currdir+name+'.test.nl',
+ 'rows='+currdir+name+'.test.row',
+ 'cols='+currdir+name+'.test.col'],
+ stdout=subprocess.PIPE, stderr=subprocess.STDOUT,
+ universal_newlines=True)
+ self.assertTrue(p.returncode == 0, msg=p.stdout)
# obtain the nl file summary information for comparison with pyomo
- p = pyutilib.subprocess.run(
- 'gjh_asl_json '+currdir+name+'.ampl.nl rows='
- +currdir+name+'.ampl.row cols='+currdir+name+'.ampl.col')
- self.assertTrue(p[0] == 0, msg=p[1])
+ p = subprocess.run(['gjh_asl_json',
+ currdir+name+'.ampl.nl',
+ 'rows='+currdir+name+'.ampl.row',
+ 'cols='+currdir+name+'.ampl.col'],
+ stdout=subprocess.PIPE, stderr=subprocess.STDOUT,
+ universal_newlines=True)
+ self.assertTrue(p.returncode == 0, msg=p.stdout)
self.assertMatchesJsonBaseline(
currdir+name+'.test.json',
diff --git a/pyomo/scripting/commands.py b/pyomo/scripting/commands.py
index 0053f194231..49d65ba847f 100644
--- a/pyomo/scripting/commands.py
+++ b/pyomo/scripting/commands.py
@@ -14,12 +14,12 @@
import string
import signal
import subprocess
-import pyutilib.subprocess
import pyutilib.pyro
-from pyomo.common.collections import Options
+from pyomo.common.collections import Bunch
from pyomo.opt import SolverResults
from pyomo.common._command import pyomo_command
+from pyomo.common.deprecation import deprecated
import pyomo.scripting.pyomo_parser
@pyomo_command('pyomo_ns', "Launch a Pyro name server for Pyomo")
@@ -81,40 +81,11 @@ def launch_pyro_mip_servers():
print("PIDs for launched servers recorded in file="+pid_output_filename)
-@pyomo_command('OSSolverService', "Launch an OS solver service")
-def OSSolverService():
- import pyomo.opt
-
- if len(sys.argv) == 1:
- print("OSSolverService -osil -solver ")
- sys.exit(1)
-
- osilFile = None
- solver = None
- i=1
- while i 1:
- print("results_schema - Print the predefined schema in a SolverResults object")
- options = Options(schema=True)
- r=SolverResults()
- repn = r._repn_(options)
- r.pprint(sys.stdout, options, repn=repn)
-
diff --git a/pyomo/scripting/convert.py b/pyomo/scripting/convert.py
index c064bf6e687..84742a2e8ed 100644
--- a/pyomo/scripting/convert.py
+++ b/pyomo/scripting/convert.py
@@ -13,7 +13,7 @@
import os
import sys
-from pyomo.common.collections import Options, Container
+from pyomo.common.collections import Bunch
from pyomo.opt import ProblemFormat
from pyomo.core.base import (Objective,
Var,
@@ -24,7 +24,7 @@
_format = None
-def convert(options=Options(), parser=None, model_format=None):
+def convert(options=Bunch(), parser=None, model_format=None):
global _format
if not model_format is None:
_format = model_format
@@ -40,7 +40,7 @@ def convert(options=Options(), parser=None, model_format=None):
options.model.save_file = 'unknown.'+str(_format)
options.model.save_format = _format
- data = Options(options=options)
+ data = Bunch(options=options)
model_data = None
try:
@@ -49,7 +49,7 @@ def convert(options=Options(), parser=None, model_format=None):
pyomo.scripting.util.apply_preprocessing(data, parser=parser)
if data.error:
- return Container()
+ return Bunch()
model_data = pyomo.scripting.util.create_model(data)
@@ -73,7 +73,7 @@ def convert(options=Options(), parser=None, model_format=None):
return model_data
-def convert_dakota(options=Options(), parser=None):
+def convert_dakota(options=Bunch(), parser=None):
#
# Import plugins
#
diff --git a/pyomo/scripting/driver_help.py b/pyomo/scripting/driver_help.py
index a6c0949d500..38a174cb46a 100644
--- a/pyomo/scripting/driver_help.py
+++ b/pyomo/scripting/driver_help.py
@@ -16,11 +16,10 @@
import textwrap
import logging
import socket
-
-import pyutilib.subprocess
+import subprocess
import pyomo.common
-from pyomo.common.collections import Options
+from pyomo.common.collections import Bunch
import pyomo.scripting.pyomo_parser
logger = logging.getLogger('pyomo.solvers')
@@ -53,7 +52,9 @@ def command_exec(options):
if not os.path.exists(cmddir+options.command[0]):
print(" ERROR: the command '%s' does not exist" % (cmddir+options.command[0]))
return 1
- return pyutilib.subprocess.run(cmddir+' '.join(options.command), tee=True)[0]
+ return subprocess.run([cmddir] + options.command,
+ stdout=subprocess.DEVNULL,
+ stderr=subprocess.DEVNULL).returncode
#
# Add a subparser for the pyomo command
@@ -220,9 +221,9 @@ def help_api(options):
print(" "+line)
def help_environment():
- info = Options()
+ info = Bunch()
#
- info.python = Options()
+ info.python = Bunch()
info.python.version = '%d.%d.%d' % sys.version_info[:3]
info.python.executable = sys.executable
info.python.platform = sys.platform
@@ -230,13 +231,13 @@ def help_environment():
packages = []
import pip
for package in pip.get_installed_distributions():
- packages.append(Options(name=package.project_name,
+ packages.append(Bunch(name=package.project_name,
version=package.version))
info.python.packages = packages
except:
pass
#
- info.environment = Options()
+ info.environment = Bunch()
path = os.environ.get('PATH', None)
if not path is None:
info.environment['shell path'] = path.split(os.pathsep)
@@ -290,13 +291,13 @@ def help_solvers():
print(wrapper.fill(format % (s , pyomo.opt.SolverManagerFactory.doc(s))))
print("")
wrapper = textwrap.TextWrapper(subsequent_indent='')
- print(wrapper.fill("If no solver manager is specified, Pyomo uses the serial solver manager to execute solvers locally. The pyro and phpyro solver managers require the installation and configuration of the pyro software. The neos solver manager is used to execute solvers on the NEOS optimization server."))
+ print(wrapper.fill("If no solver manager is specified, Pyomo uses the serial solver manager to execute solvers locally. The pyro solver manager requires the installation and configuration of the pyro software. The neos solver manager is used to execute solvers on the NEOS optimization server."))
print("")
print("")
print("Serial Solver Interfaces")
print("------------------------")
- print(wrapper.fill("The serial, pyro and phpyro solver managers support the following solver interfaces:"))
+ print(wrapper.fill("The serial and pyro solver managers support the following solver interfaces:"))
print("")
solver_list = list(pyomo.opt.SolverFactory)
solver_list = sorted( filter(lambda x: '_' != x[0], solver_list) )
@@ -397,7 +398,7 @@ def print_components(data):
print("Pyomo Model Components:")
print("----------------------------------------------------------------")
components = pyomo.core.base._pyomo.model_components()
- index = pyutilib.misc.sort_index(components)
+ index = list(idx for idx, item in sorted(enumerate(components), key=lambda item: item[1]))
for i in index:
print("")
print(" "+components[i][0])
@@ -408,7 +409,7 @@ def print_components(data):
print("Pyomo Virtual Sets:")
print("----------------------------------------------------------------")
pyomo_sets = pyomo.core.base._pyomo.predefined_sets()
- index = pyutilib.misc.sort_index(pyomo_sets)
+ index = list(idx for idx, item in sorted(enumerate(pyomo_sets), key=lambda item: item[1]))
for i in index:
print("")
print(" "+pyomo_sets[i][0])
diff --git a/pyomo/scripting/plugins/convert.py b/pyomo/scripting/plugins/convert.py
index 631f76780d8..f05f119b09d 100644
--- a/pyomo/scripting/plugins/convert.py
+++ b/pyomo/scripting/plugins/convert.py
@@ -12,7 +12,7 @@
import sys
import argparse
-from pyomo.common.collections import Options
+from pyomo.common.collections import Bunch
from pyomo.opt import ProblemConfigFactory, guess_format
from pyomo.scripting.pyomo_parser import add_subparser, CustomHelpFormatter
@@ -42,7 +42,7 @@ def create_parser(parser=None):
return parser
-def run_convert(options=Options(), parser=None):
+def run_convert(options=Bunch(), parser=None):
from pyomo.scripting.convert import convert, convert_dakota
if options.model.save_format is None and options.model.save_file:
options.model.save_format = options.model.save_file.split('.')[-1]
diff --git a/pyomo/scripting/pyomo_command.py b/pyomo/scripting/pyomo_command.py
index e3901f2b6b6..f9bed65b152 100644
--- a/pyomo/scripting/pyomo_command.py
+++ b/pyomo/scripting/pyomo_command.py
@@ -9,7 +9,7 @@
# ___________________________________________________________________________
from pyomo.common.dependencies import pympler_available
-from pyomo.common.collections import Options, Container
+from pyomo.common.collections import Bunch
import pyomo.scripting.util
from pyomo.core import ConcreteModel
@@ -273,12 +273,12 @@ def add_misc_group(parser):
return group
-def run_pyomo(options=Options(), parser=None):
- data = Options(options=options)
+def run_pyomo(options=Bunch(), parser=None):
+ data = Bunch(options=options)
if options.model.filename == '':
parser.print_help()
- return Container()
+ return Bunch()
try:
pyomo.scripting.util.setup_environment(data)
@@ -307,7 +307,7 @@ def run_pyomo(options=Options(), parser=None):
model=ConcreteModel(),
instance=None,
results=None)
- return Container() #pragma:nocover
+ return Bunch() #pragma:nocover
try:
model_data = pyomo.scripting.util.create_model(data)
@@ -330,7 +330,7 @@ def run_pyomo(options=Options(), parser=None):
model=model_data.model,
instance=model_data.instance,
results=None)
- return Container(instance=model_data.instance)
+ return Bunch(instance=model_data.instance)
try:
opt_data = pyomo.scripting.util.apply_optimizer(data,
@@ -361,7 +361,7 @@ def run_pyomo(options=Options(), parser=None):
instance=model_data.instance,
results=opt_data.results)
- return Container(options=options,
+ return Bunch(options=options,
instance=model_data.instance,
results=opt_data.results,
local=opt_data.local)
diff --git a/pyomo/scripting/tests/test_cmds.py b/pyomo/scripting/tests/test_cmds.py
index 7201342ed14..44322621813 100644
--- a/pyomo/scripting/tests/test_cmds.py
+++ b/pyomo/scripting/tests/test_cmds.py
@@ -10,7 +10,7 @@
#
import re
import pyutilib.th as unittest
-from pyutilib.misc.redirect_io import capture_output
+from pyomo.common.tee import capture_output
from pyomo.environ import SolverFactory
from pyomo.scripting.driver_help import help_solvers, help_transformations
diff --git a/pyomo/scripting/tests/test_pms.py b/pyomo/scripting/tests/test_pms.py
index 166e6663156..2cd0c439d24 100644
--- a/pyomo/scripting/tests/test_pms.py
+++ b/pyomo/scripting/tests/test_pms.py
@@ -19,7 +19,7 @@
from pyutilib.pyro import using_pyro4
import pyutilib.th as unittest
-from pyomo.common.collections import Options
+from pyomo.common.collections import Bunch
from pyomo.common.tempfiles import TempfileManager
import pyomo.opt
from pyomo.environ import (ConcreteModel, RangeSet, Var,
@@ -63,7 +63,7 @@ def c_rule(model):
model.c = Constraint(rule=c_rule)
#
- data = Options()
+ data = Bunch()
data.suffixes = {}
data.solver_options = {}
data.warmstart_filename = None
diff --git a/pyomo/scripting/util.py b/pyomo/scripting/util.py
index 620f4fc6e6e..1dd9c1d4a6c 100644
--- a/pyomo/scripting/util.py
+++ b/pyomo/scripting/util.py
@@ -23,15 +23,14 @@
from pyomo.common.log import is_debug_set
from pyomo.common.tempfiles import TempfileManager
from pyomo.common.fileutils import import_file
-
-from pyutilib.misc import setup_redirect, reset_redirect
+from pyomo.common.tee import capture_output
from pyomo.common.dependencies import (
yaml, yaml_available, yaml_load_args,
pympler, pympler_available,
)
from pyomo.common.plugin import ExtensionPoint, Plugin, implements
-from pyomo.common.collections import Container, Options
+from pyomo.common.collections import Bunch
from pyomo.opt import ProblemFormat
from pyomo.opt.base import SolverFactory
from pyomo.opt.parallel import SolverManagerFactory
@@ -39,7 +38,7 @@
from pyomo.core import IPyomoScriptCreateModel, IPyomoScriptCreateDataPortal, IPyomoScriptPrintModel, IPyomoScriptModifyInstance, IPyomoScriptPrintInstance, IPyomoScriptSaveInstance, IPyomoScriptPrintResults, IPyomoScriptSaveResults, IPyomoScriptPostprocess, IPyomoScriptPreprocess, Model, TransformationFactory, Suffix, display
-memory_data = Options()
+memory_data = Bunch()
# Importing IPython is slow; defer the import to the point that it is
# actually needed.
IPython_available = None
@@ -157,7 +156,7 @@ def apply_preprocessing(data, parser=None):
Returned:
error: This is true if an error has occurred.
"""
- data.local = Options()
+ data.local = Bunch()
#
if not data.options.runtime.logging == 'quiet':
sys.stdout.write('[%8.2f] Applying Pyomo preprocessing actions\n' % (time.time()-start_time))
@@ -275,8 +274,8 @@ def create_model(data):
else:
model_options = data.options.model.options.value()
tick = time.time()
- model = ep.service().apply( options = Container(*data.options),
- model_options=Container(*model_options) )
+ model = ep.service().apply( options = Bunch(*data.options),
+ model_options=Bunch(*model_options) )
if data.options.runtime.report_timing is True:
print(" %6.2f seconds required to construct instance" % (time.time() - tick))
data.local.time_initial_import = None
@@ -475,8 +474,8 @@ def create_model(data):
data.local.max_memory = mem_used
print(" Total memory = %d bytes following Pyomo instance creation" % mem_used)
- return Options(model=model, instance=instance,
- smap_id=smap_id, filename=fname, local=data.local )
+ return Bunch(model=model, instance=instance,
+ smap_id=smap_id, filename=fname, local=data.local )
@pyomo_api(namespace='pyomo.script')
def apply_optimizer(data, instance=None):
@@ -621,7 +620,7 @@ def apply_optimizer(data, instance=None):
data.local.max_memory = mem_used
print(" Total memory = %d bytes following optimization" % mem_used)
- return Options(results=results, opt=solver, local=data.local)
+ return Bunch(results=results, opt=solver, local=data.local)
@pyomo_api(namespace='pyomo.script')
@@ -827,9 +826,9 @@ class PyomoCommandLogContext(object):
def __init__(self, options):
if options is None:
- options = Options()
+ options = Bunch()
if options.runtime is None:
- options.runtime = Options()
+ options.runtime = Bunch()
self.options = options
self.fileLogger = None
self.original = None
@@ -868,7 +867,8 @@ def __enter__(self):
_pyutilib.addHandler(self.fileLogger)
# TBD: This seems dangerous in Windows, as the process will
# have multiple open file handles pointing to the same file.
- setup_redirect(_logfile)
+ self.capture = capture_output(_logfile)
+ self.capture.setup()
return self
@@ -884,7 +884,7 @@ def __exit__(self, et, ev, tb):
self.fileLogger.close()
# TBD: This seems dangerous in Windows, as the process will
# have multiple open file handles pointing to the same file.
- reset_redirect()
+ self.capture.reset()
@pyomo_api(namespace='pyomo.script')
@@ -926,8 +926,8 @@ def run_command(command=None, parser=None, args=None, name='unknown', data=None,
else:
_options = parser.parse_args(args=args)
# Replace the parser options object with a
- # pyutilib.misc.Options object
- options = Options()
+ # pyomo.common.collections.Options object
+ options = Bunch()
for key in dir(_options):
if key[0] != '_':
val = getattr(_options, key)
@@ -936,7 +936,7 @@ def run_command(command=None, parser=None, args=None, name='unknown', data=None,
except SystemExit:
# the parser throws a system exit if "-h" is specified - catch
# it to exit gracefully.
- return Container(retval=None, errorcode=0)
+ return Bunch(retval=None, errorcode=0)
#
# Configure loggers
#
@@ -950,7 +950,7 @@ def run_command(command=None, parser=None, args=None, name='unknown', data=None,
gc.enable()
TempfileManager.pop(remove=not options.runtime.keep_files)
- return Container(retval=retval, errorcode=errorcode)
+ return Bunch(retval=retval, errorcode=errorcode)
def _run_command_impl(command, parser, args, name, data, options):
diff --git a/pyomo/solvers/plugins/converter/ampl.py b/pyomo/solvers/plugins/converter/ampl.py
index 1882040d67c..7874bad9f99 100644
--- a/pyomo/solvers/plugins/converter/ampl.py
+++ b/pyomo/solvers/plugins/converter/ampl.py
@@ -9,7 +9,7 @@
# ___________________________________________________________________________
import os.path
-import pyutilib.subprocess
+import subprocess
from pyomo.common.errors import ApplicationError
import pyomo.common
@@ -17,11 +17,6 @@
from pyomo.opt.base import ProblemFormat, ConverterError
from pyomo.opt.base.convert import ProblemConverterFactory
-try:
- unicode
-except:
- basestring = unicode = str
-
@ProblemConverterFactory.register('ampl')
class AmplMIPConverter(object):
@@ -44,7 +39,7 @@ def can_convert(self, from_type, to_type):
def apply(self, *args, **kwargs):
"""Convert an instance of one type into another"""
- if not isinstance(args[2],basestring):
+ if not isinstance(args[2], str):
raise ConverterError("Can only apply ampl to convert file data")
_exec = pyomo.common.Executable("ampl")
if not _exec:
@@ -78,7 +73,9 @@ def apply(self, *args, **kwargs):
#
# Execute command and cleanup
#
- output = pyutilib.subprocess.run(cmd)
+ output = subprocess.run(cmd, stdout=subprocess.PIPE,
+ stderr=subprocess.STDOUT,
+ universal_newlines=True)
if not os.path.exists(output_filename): #pragma:nocover
- raise ApplicationError("Problem launching 'ampl' to create '%s': %s" % (output_filename, output))
+ raise ApplicationError("Problem launching 'ampl' to create '%s': %s" % (output_filename, output.stdout))
return (output_filename,),None # empty variable map
diff --git a/pyomo/solvers/plugins/converter/glpsol.py b/pyomo/solvers/plugins/converter/glpsol.py
index 4a16efab349..821642705ce 100644
--- a/pyomo/solvers/plugins/converter/glpsol.py
+++ b/pyomo/solvers/plugins/converter/glpsol.py
@@ -9,9 +9,8 @@
# ___________________________________________________________________________
import os
-import six
-import pyutilib.subprocess
+import subprocess
import pyomo.common
from pyomo.common.errors import ApplicationError
from pyomo.common.tempfiles import TempfileManager
@@ -44,7 +43,7 @@ def can_convert(self, from_type, to_type):
def apply(self, *args, **kwargs):
"""Convert an instance of one type into another"""
- if not isinstance(args[2],six.string_types):
+ if not isinstance(args[2], str):
raise ConverterError("Can only apply glpsol to convert file data")
_exec = pyomo.common.Executable("glpsol")
if not _exec:
@@ -104,7 +103,8 @@ def apply(self, *args, **kwargs):
OUTPUT.write("end;\n")
OUTPUT.close()
cmd.append(modfile)
- pyutilib.subprocess.run(cmd)
+ subprocess.run(cmd, stdout=subprocess.DEVNULL,
+ stderr=subprocess.DEVNULL)
if not os.path.exists(ofile): #pragma:nocover
raise ApplicationError("Problem launching 'glpsol' to create "+ofile)
if os.path.exists(modfile):
diff --git a/pyomo/solvers/plugins/converter/model.py b/pyomo/solvers/plugins/converter/model.py
index 86090b102e1..aabc807f027 100644
--- a/pyomo/solvers/plugins/converter/model.py
+++ b/pyomo/solvers/plugins/converter/model.py
@@ -10,7 +10,7 @@
import os
-from six import iteritems, PY3
+from six import iteritems
from pyomo.common.tempfiles import TempfileManager
from pyomo.opt.base import ProblemFormat
@@ -57,13 +57,7 @@ def apply(self, *args, **kwds):
io_options[kwd] = value
kwds.clear()
- # basestring is gone in Python 3.x, merged with str.
- if PY3:
- compare_type = str
- else:
- compare_type = basestring
-
- if isinstance(args[2], compare_type):
+ if isinstance(args[2], str):
instance = None
else:
instance = args[2]
diff --git a/pyomo/solvers/plugins/converter/pico.py b/pyomo/solvers/plugins/converter/pico.py
index cc524a0e6ad..eb94df35002 100644
--- a/pyomo/solvers/plugins/converter/pico.py
+++ b/pyomo/solvers/plugins/converter/pico.py
@@ -8,11 +8,9 @@
# This software is distributed under the 3-clause BSD License.
# ___________________________________________________________________________
-import six
-
import os.path
+import subprocess
-import pyutilib.subprocess
import pyomo.common
from pyomo.common.tempfiles import TempfileManager
from pyomo.common.errors import ApplicationError
@@ -61,7 +59,7 @@ def apply(self, *args, **kwargs):
target="lp"
# NOTE: if you have an extra "." in the suffix, the pico_convert program fails to output to the correct filename.
output_filename = TempfileManager.create_tempfile(suffix = 'pico_convert.' + target)
- if not isinstance(args[2],six.string_types):
+ if not isinstance(args[2], str):
fname= TempfileManager.create_tempfile(suffix= 'pico_convert.' +str(args[0]))
args[2].write(filename=fname, format=args[1])
cmd = pico_convert_cmd +" --output="+output_filename+" "+target+" "+fname
@@ -72,7 +70,8 @@ def apply(self, *args, **kwargs):
raise ConverterError("File "+item+" does not exist!")
cmd = cmd + " "+item
print("Running command: "+cmd)
- pyutilib.subprocess.run(cmd)
+ subprocess.run(cmd, stdout=subprocess.DEVNULL,
+ stderr=subprocess.DEVNULL)
if not os.path.exists(output_filename): #pragma:nocover
raise ApplicationError(\
"Problem launching 'pico_convert' to create "+output_filename)
diff --git a/pyomo/solvers/plugins/smanager/__init__.py b/pyomo/solvers/plugins/smanager/__init__.py
index 5f783fa60b4..ed88cfae7e9 100644
--- a/pyomo/solvers/plugins/smanager/__init__.py
+++ b/pyomo/solvers/plugins/smanager/__init__.py
@@ -9,4 +9,3 @@
# ___________________________________________________________________________
import pyomo.solvers.plugins.smanager.pyro
-import pyomo.solvers.plugins.smanager.phpyro
diff --git a/pyomo/solvers/plugins/smanager/phpyro.py b/pyomo/solvers/plugins/smanager/phpyro.py
deleted file mode 100644
index cab0759ea84..00000000000
--- a/pyomo/solvers/plugins/smanager/phpyro.py
+++ /dev/null
@@ -1,368 +0,0 @@
-# ___________________________________________________________________________
-#
-# Pyomo: Python Optimization Modeling Objects
-# Copyright 2017 National Technology and Engineering Solutions of Sandia, LLC
-# Under the terms of Contract DE-NA0003525 with National Technology and
-# Engineering Solutions of Sandia, LLC, the U.S. Government retains certain
-# rights in this software.
-# This software is distributed under the 3-clause BSD License.
-# ___________________________________________________________________________
-
-
-__all__ = ["SolverManager_PHPyro"]
-
-import time
-import itertools
-from collections import defaultdict
-
-import pyutilib.pyro
-from pyutilib.pyro import using_pyro3, using_pyro4
-from pyutilib.pyro import Pyro as _pyro
-from pyutilib.pyro.util import _connection_problem
-from pyomo.opt.parallel.manager import AsynchronousActionManager, ActionStatus
-from pyomo.opt.parallel.async_solver import SolverManagerFactory, AsynchronousSolverManager
-
-from six import advance_iterator, iteritems, itervalues
-
-#
-# a specialized asynchronous solver manager for Progressive Hedging.
-#
-
-@SolverManagerFactory.register('phpyro',
- doc="Specialized PH solver manager that uses pyro")
-class SolverManager_PHPyro(AsynchronousSolverManager):
-
- def __init__(self, host=None, port=None, verbose=False):
-
- # the PHPyroWorker objects associated with this manager
- self.host = host
- self.port = port
- self._verbose = verbose
- self._bulk_transmit_mode = False
- self._bulk_task_dict = {}
- self.server_pool = []
- self._dispatcher_name_to_client = {}
- self._server_name_to_dispatcher_name = {}
- self._dispatcher_name_to_server_names = {}
- self._dispatcher_proxies = {}
- # map from task id to the corresponding action handle.
- # we only retain entries for tasks for which we expect
- # a result/response.
- self._ah = {}
- # the list of cached results obtained from the dispatch server.
- # to avoid communication overhead, grab any/all results available,
- # and then cache them here - but return one-at-a-time via
- # the standard _perform_wait_any interface. the elements in this
- # list are simply tasks - at this point, we don't care about the
- # queue name associated with the task.
- self._results_waiting = []
- AsynchronousActionManager.__init__(self)
-
- def clear(self):
- """
- Clear manager state
- """
-
- AsynchronousSolverManager.clear(self)
-
- if len(self.server_pool):
- self.release_servers()
-
- self._bulk_transmit_mode = False
- self._bulk_task_dict = {}
-
- # only useful for debugging communication patterns - results
- # in a ton of output.
- self._verbose = False
-
- # map from task id to the corresponding action handle.
- # we only retain entries for tasks for which we expect
- # a result/response.
- self._ah = {}
-
- # the list of cached results obtained from the dispatch server.
- # to avoid communication overhead, grab any/all results available,
- # and then cache them here - but return one-at-a-time via
- # the standard _perform_wait_any interface. the elements in this
- # list are simply tasks - at this point, we don't care about the
- # queue name associated with the task.
- self._results_waiting = []
-
- def begin_bulk(self):
- self._bulk_transmit_mode = True
-
- def end_bulk(self):
- self._bulk_transmit_mode = False
- if len(self._bulk_task_dict):
- for dispatcher_name in self._bulk_task_dict:
- client = self._dispatcher_name_to_client[dispatcher_name]
- client.add_tasks(self._bulk_task_dict[dispatcher_name])
- self._bulk_task_dict = {}
-
- #
- # a utility to extract a single result from the _results_waiting
- # list.
- #
-
- def _extract_result(self):
-
- if len(self._results_waiting) == 0:
- raise RuntimeError("There are no results available for "
- "extraction from the PHPyro solver manager "
- "- call to _extract_result is not valid.")
-
- task = self._results_waiting.pop(0)
-
- if task['id'] in self._ah:
- ah = self._ah[task['id']]
- self._ah[task['id']] = None
- ah.status = ActionStatus.done
- # TBD - what is the 'results' object - can we just load
- # results directly into there?
- self.results[ah.id] = task['result']
- return ah
- else:
- # if we are here, this is really bad news!
- raise RuntimeError("The PHPyro solver manager found "
- "results for task with id="+str(task['id'])+
- " - but no corresponding action handle "
- "could be located!")
-
- def _perform_queue(self, ah, *args, **kwds):
- """
- Perform the queue operation. This method returns the
- ActionHandle, and the ActionHandle status indicates whether
- the queue was successful.
- """
-
- # the PH solver server expects no non-keyword arguments.
- if len(args) > 0:
- raise RuntimeError("ERROR: The _perform_queue method of PH "
- "pyro solver manager received position input "
- "arguments, but accepts none.")
-
- if "action" not in kwds:
- raise RuntimeError("ERROR: No 'action' keyword supplied to "
- "_perform_queue method of PH pyro solver manager")
-
- if "queue_name" not in kwds:
- raise RuntimeError("ERROR: No 'queue_name' keyword supplied to "
- "_perform_queue method of PH pyro solver manager")
-
- queue_name = kwds["queue_name"]
-
- if "verbose" not in kwds:
- # we always want to pass a verbose flag to the solver server.
- kwds["verbose"] = False
-
- if "generateResponse" in kwds:
- generateResponse = kwds.pop("generateResponse")
- else:
- generateResponse = True
-
- task = pyutilib.pyro.Task(data=kwds,
- id=ah.id,
- generateResponse=generateResponse)
-
- dispatcher_name = self._server_name_to_dispatcher_name[queue_name]
- if self._bulk_transmit_mode:
- if dispatcher_name not in self._bulk_task_dict:
- self._bulk_task_dict[dispatcher_name] = dict()
- if queue_name not in self._bulk_task_dict[dispatcher_name]:
- self._bulk_task_dict[dispatcher_name][queue_name] = []
- self._bulk_task_dict[dispatcher_name][queue_name].append(task)
- else:
- client = self._dispatcher_name_to_client[dispatcher_name]
- client.add_task(task, verbose=self._verbose, override_type=queue_name)
-
- # only populate the action_handle-to-task dictionary is a
- # response is expected.
- if generateResponse:
- self._ah[task['id']] = ah
-
- return ah
-
- def _perform_wait_any(self):
- """
- Perform the wait_any operation. This method returns an
- ActionHandle with the results of waiting. If None is returned
- then the ActionManager assumes that it can call this method
- again. Note that an ActionHandle can be returned with a dummy
- value, to indicate an error.
- """
-
- if len(self._results_waiting) > 0:
- return self._extract_result()
-
- all_results = []
- for client in itervalues(self._dispatcher_name_to_client):
- all_results.extend(client.get_results_all_queues())
-
- if len(all_results) > 0:
-
- for task in all_results:
- self._results_waiting.append(task)
- else:
-
- # if the queues are all empty, wait some time for things to
- # fill up. constantly pinging dispatch servers wastes their
- # time, and inhibits task server communication. the good
- # thing about queues_to_check is that it simultaneously
- # grabs information for any queues with results => one
- # client query can yield many results.
-
- # TBD: We really need to parameterize the time-out value,
- # but it isn't clear how to propagate this though the
- # solver manager interface layers.
- time.sleep(0.01)
-
- def acquire_servers(self, servers_requested, timeout=None):
- assert len(self.server_pool) == 0
- assert len(self._dispatcher_name_to_client) == 0
- assert len(self._server_name_to_dispatcher_name) == 0
- assert len(self._dispatcher_name_to_server_names) == 0
- assert len(self._dispatcher_proxies) == 0
- #
- # This process consists of the following steps:
- #
- # (1) Obtain the list of dispatchers from the nameserver
- # (2) Acquire all workers currently registered on each dispatcher
- # (3) Repeat (1) and (2) until we reach the timeout (if it exists)
- # or until we obtain the number of servers requested
- # (4) Release any servers we don't need on dispatchers
- #
- wait_start = time.time()
- dispatcher_registered_servers = defaultdict(list)
- dispatcher_servers_to_release = defaultdict(list)
- dispatcher_proxies = {}
- servers_acquired = 0
- while servers_acquired < servers_requested:
-
- if (timeout is not None) and \
- ((time.time()-wait_start) > timeout):
- print("Timeout reached before %s servers could be acquired. "
- "Proceeding with %s servers."
- % (servers_requested, servers_acquired))
- break
-
- dispatchers = pyutilib.pyro.util.get_dispatchers(
- host=self.host,
- port=self.port,
- caller_name="Client")
- for (name, uri) in dispatchers:
- dispatcher = None
- server_names = None
- if name not in dispatcher_proxies:
- # connect to the dispatcher
- if using_pyro3:
- dispatcher = _pyro.core.getProxyForURI(uri)
- else:
- dispatcher = _pyro.Proxy(uri)
- dispatcher._pyroTimeout = 10
- try:
- server_names = dispatcher.acquire_available_workers()
- except _connection_problem:
- if using_pyro4:
- dispatcher._pyroRelease()
- else:
- dispatcher._release()
- continue
- dispatcher_proxies[name] = dispatcher
- if using_pyro4:
- dispatcher._pyroTimeout = None
- else:
- dispatcher = dispatcher_proxies[name]
- server_names = dispatcher.acquire_available_workers()
-
- # collect the list of registered PySP workers
- servers_to_release = dispatcher_servers_to_release[name]
- registered_servers = dispatcher_registered_servers[name]
- for server_name in server_names:
- if server_name.startswith("PySPWorker_"):
- registered_servers.append(server_name)
- else:
- servers_to_release.append(server_name)
-
- if (timeout is not None) and \
- ((time.time()-wait_start) > timeout):
- break
-
- servers_acquired = sum(len(_serverlist) for _serverlist
- in itervalues(dispatcher_registered_servers))
-
- for name, servers_to_release in iteritems(dispatcher_servers_to_release):
- dispatcher_proxies[name].release_acquired_workers(servers_to_release)
- del dispatcher_servers_to_release
-
- #
- # Decide which servers we will utilize and do this in such a way
- # as to balance the workload we place on each dispatcher
- #
- server_to_dispatcher_map = {}
- dispatcher_servers_utilized = defaultdict(list)
- servers_utilized = 0
- dispatcher_names = itertools.cycle(dispatcher_registered_servers.keys())
- while servers_utilized < min(servers_requested, servers_acquired):
- name = advance_iterator(dispatcher_names)
- if len(dispatcher_registered_servers[name]) > 0:
- servername = dispatcher_registered_servers[name].pop()
- server_to_dispatcher_map[servername] = name
- dispatcher_servers_utilized[name].append(servername)
- servers_utilized += 1
-
- # copy the keys as we are modifying this list
- for name in list(dispatcher_proxies.keys()):
- dispatcher = dispatcher_proxies[name]
- servers = dispatcher_servers_utilized[name]
- if len(dispatcher_registered_servers[name]) > 0:
- # release any servers we do not need
- dispatcher.release_acquired_workers(
- dispatcher_registered_servers[name])
- if len(servers) == 0:
- # release the proxy to this dispatcher,
- # we don't need it
- if using_pyro4:
- dispatcher._pyroRelease()
- else:
- dispatcher._release()
- del dispatcher_proxies[name]
- else:
- # when we initialize a client directly with a dispatcher
- # proxy it does not need to know the nameserver host or port
- client = pyutilib.pyro.Client(dispatcher=dispatcher)
- self._dispatcher_name_to_client[name] = client
- self._dispatcher_name_to_server_names[name] = servers
- for servername in servers:
- self._server_name_to_dispatcher_name[servername] = name
- self.server_pool.append(servername)
- self._dispatcher_proxies = dispatcher_proxies
-
- def release_servers(self, shutdown=False):
-
- shutdown_task = pyutilib.pyro.Task(data={'action':'shutdown'},
- id=float('inf'),
- generateResponse=False)
- # copy the keys as we are modifying this list
- for name in self._dispatcher_proxies:
- dispatcher = self._dispatcher_proxies[name]
- servers = self._dispatcher_name_to_server_names[name]
- # tell dispatcher that the servers we have acquired are
- # no longer needed
- dispatcher.release_acquired_workers(servers)
- client = self._dispatcher_name_to_client[name]
- if shutdown:
- for server_name in servers:
- client.add_task(shutdown_task,
- verbose=self._verbose,
- override_type=server_name)
- # the client will release the dispatcher proxy
- client.close()
-
- self.server_pool = []
- self._dispatcher_name_to_client = {}
- self._server_name_to_dispatcher_name = {}
- self._dispatcher_name_to_server_names = {}
- self._dispatcher_proxies = {}
-
-if pyutilib.pyro.Pyro is None:
- SolverManagerFactory.unregister('phpyro')
diff --git a/pyomo/solvers/plugins/smanager/pyro.py b/pyomo/solvers/plugins/smanager/pyro.py
index 32a6d879d43..f96fd67a841 100644
--- a/pyomo/solvers/plugins/smanager/pyro.py
+++ b/pyomo/solvers/plugins/smanager/pyro.py
@@ -70,7 +70,7 @@ def _get_task_data(self, ah, *args, **kwds):
raise ActionManagerError(
"No solver passed to %s, use keyword option 'solver'"
% (type(self).__name__) )
- if isinstance(opt, six.string_types):
+ if isinstance(opt, str):
opt = SolverFactory(opt, solver_io=kwds.pop('solver_io', None))
#
diff --git a/pyomo/solvers/plugins/solvers/ASL.py b/pyomo/solvers/plugins/solvers/ASL.py
index bdedfafb6ad..288a51e64c3 100644
--- a/pyomo/solvers/plugins/solvers/ASL.py
+++ b/pyomo/solvers/plugins/solvers/ASL.py
@@ -10,13 +10,12 @@
import os
-import six
+import subprocess
from pyomo.common import Executable
from pyomo.common.errors import ApplicationError
-from pyomo.common.collections import Options, Bunch
+from pyomo.common.collections import Bunch
from pyomo.common.tempfiles import TempfileManager
-from pyutilib.subprocess import run
from pyomo.opt.base import ProblemFormat, ResultsFormat
from pyomo.opt.base.solvers import _extract_version, SolverFactory
@@ -54,7 +53,7 @@ def __init__(self, **kwds):
#
# Note: Undefined capabilities default to 'None'
#
- self._capabilities = Options()
+ self._capabilities = Bunch()
self._capabilities.linear = True
self._capabilities.integer = True
self._capabilities.quadratic_objective = True
@@ -93,8 +92,14 @@ def _get_version(self):
solver_exec = self.executable()
if solver_exec is None:
return _extract_version('')
- results = run( [solver_exec,"-v"], timelimit=1 )
- return _extract_version(results[1])
+ try:
+ results = subprocess.run([solver_exec,"-v"], timeout=1,
+ stdout=subprocess.PIPE,
+ stderr=subprocess.STDOUT,
+ universal_newlines=True)
+ return _extract_version(results.stdout)
+ except OSError:
+ pass
def create_command_line(self, executable, problem_files):
assert(self._problem_format == ProblemFormat.nl)
@@ -157,7 +162,7 @@ def create_command_line(self, executable, problem_files):
for key in self.options:
if key == 'solver':
continue
- if isinstance(self.options[key],six.string_types) and \
+ if isinstance(self.options[key], str) and \
(' ' in self.options[key]):
opt.append(key+"=\""+str(self.options[key])+"\"")
cmd.append(str(key)+"="+str(self.options[key]))
@@ -175,7 +180,7 @@ def create_command_line(self, executable, problem_files):
return Bunch(cmd=cmd, log_file=self._log_file, env=env)
def _presolve(self, *args, **kwds):
- if (not isinstance(args[0], six.string_types)) and \
+ if (not isinstance(args[0], str)) and \
(not isinstance(args[0], IBlock)):
self._instance = args[0]
xfrm = TransformationFactory('mpec.nl')
diff --git a/pyomo/solvers/plugins/solvers/BARON.py b/pyomo/solvers/plugins/solvers/BARON.py
index d85b4d6d5d6..ef12b97ad07 100644
--- a/pyomo/solvers/plugins/solvers/BARON.py
+++ b/pyomo/solvers/plugins/solvers/BARON.py
@@ -15,9 +15,8 @@
import tempfile
from pyomo.common import Executable
-from pyomo.common.collections import Options, Bunch
+from pyomo.common.collections import Bunch
from pyomo.common.tempfiles import TempfileManager
-from pyutilib.subprocess import run
from pyomo.opt.base import ProblemFormat, ResultsFormat, OptSolver
from pyomo.opt.base.solvers import _extract_version, SolverFactory
@@ -51,7 +50,7 @@ def __init__(self, **kwds):
self._valid_result_formats[ProblemFormat.bar] = [ResultsFormat.soln]
self.set_problem_format(ProblemFormat.bar)
- self._capabilities = Options()
+ self._capabilities = Bunch()
self._capabilities.linear = True
self._capabilities.quadratic_objective = True
self._capabilities.quadratic_constraint = True
@@ -177,8 +176,11 @@ def _get_version(self):
else:
fnames = self._get_dummy_input_files(check_license=False)
try:
- results = run([solver_exec, fnames[0]])
- ver = _extract_version(results[1])
+ results = subprocess.run([solver_exec, fnames[0]],
+ stdout=subprocess.PIPE,
+ stderr=subprocess.STDOUT,
+ universal_newlines=True)
+ ver = _extract_version(results.stdout)
finally:
self._remove_dummy_input_files(fnames)
diff --git a/pyomo/solvers/plugins/solvers/CBCplugin.py b/pyomo/solvers/plugins/solvers/CBCplugin.py
index 0d7f7b46290..adec7fe916a 100644
--- a/pyomo/solvers/plugins/solvers/CBCplugin.py
+++ b/pyomo/solvers/plugins/solvers/CBCplugin.py
@@ -14,14 +14,13 @@
import re
import time
import logging
-
-from six import iteritems, string_types
+import subprocess
+from six import iteritems
from pyomo.common import Executable
from pyomo.common.errors import ApplicationError
-from pyomo.common.collections import Options, Bunch
+from pyomo.common.collections import Bunch
from pyomo.common.tempfiles import TempfileManager
-from pyutilib.subprocess import run
from pyomo.core.kernel.block import IBlock
from pyomo.core import Var
@@ -53,11 +52,15 @@ def configure_cbc():
if not executable:
return
cbc_exec = executable.path()
- results = run( [cbc_exec,"-stop"], timelimit=1 )
- _cbc_version = _extract_version(results[1])
- results = run(
- [cbc_exec,"dummy","-AMPL","-stop"], timelimit=1 )
- _cbc_compiled_with_asl = not ('No match for AMPL' in results[1])
+ results = subprocess.run([cbc_exec,"-stop"], timeout=1,
+ stdout=subprocess.PIPE, stderr=subprocess.STDOUT,
+ universal_newlines=True)
+ _cbc_version = _extract_version(results.stdout)
+ results = subprocess.run([cbc_exec, "dummy", "-AMPL", "-stop"], timeout=1,
+ stdout=subprocess.PIPE,
+ stderr=subprocess.STDOUT,
+ universal_newlines=True)
+ _cbc_compiled_with_asl = not ('No match for AMPL' in results.stdout)
if _cbc_version is not None:
_cbc_old_version = _cbc_version < (2,7,0,0)
@@ -158,7 +161,7 @@ def __init__(self, **kwds):
self._valid_result_formats[ProblemFormat.mps] = [ResultsFormat.soln]
# Note: Undefined capabilities default to 'None'
- self._capabilities = Options()
+ self._capabilities = Bunch()
self._capabilities.linear = True
self._capabilities.integer = True
# The quadratic capabilities may be true but there is
@@ -250,11 +253,11 @@ def _presolve(self, *args, **kwds):
# create the temporary file - assuming that the user has already, via some external
# mechanism, invoked warm_start() with a instance to create the warm start file.
if self._warm_start_solve and \
- isinstance(args[0], string_types):
+ isinstance(args[0], str):
# we assume the user knows what they are doing...
pass
elif self._warm_start_solve and \
- (not isinstance(args[0], string_types)):
+ (not isinstance(args[0], str)):
# assign the name of the warm start file *before* calling the base class
# presolve - the base class method ends up creating the command line,
# and the warm start file-name is (obviously) needed there.
@@ -270,7 +273,7 @@ def _presolve(self, *args, **kwds):
# NB: we must let the base class presolve run first so that the
# symbol_map is actually constructed!
- if (len(args) > 0) and (not isinstance(args[0], string_types)):
+ if (len(args) > 0) and (not isinstance(args[0], str)):
if len(args) != 1:
raise ValueError(
diff --git a/pyomo/solvers/plugins/solvers/CONOPT.py b/pyomo/solvers/plugins/solvers/CONOPT.py
index 195f7cde77e..7faef069c5e 100644
--- a/pyomo/solvers/plugins/solvers/CONOPT.py
+++ b/pyomo/solvers/plugins/solvers/CONOPT.py
@@ -9,11 +9,11 @@
# ___________________________________________________________________________
import os
+import subprocess
from pyomo.common import Executable
-from pyomo.common.collections import Options, Bunch
+from pyomo.common.collections import Bunch
from pyomo.common.tempfiles import TempfileManager
-from pyutilib.subprocess import run
from pyomo.opt.base import ProblemFormat, ResultsFormat
from pyomo.opt.base.solvers import _extract_version, SolverFactory
@@ -23,11 +23,6 @@
import logging
logger = logging.getLogger('pyomo.solvers')
-try:
- unicode
-except:
- basestring = str
-
@SolverFactory.register('conopt', doc='The CONOPT NLP solver')
class CONOPT(SystemCallSolver):
@@ -52,7 +47,7 @@ def __init__(self, **kwds):
self.set_problem_format(ProblemFormat.nl)
# Note: Undefined capabilities default to 'None'
- self._capabilities = Options()
+ self._capabilities = Bunch()
self._capabilities.linear = True
self._capabilities.integer = True
self._capabilities.quadratic_objective = True
@@ -79,8 +74,11 @@ def _get_version(self):
solver_exec = self.executable()
if solver_exec is None:
return _extract_version('')
- results = run( [solver_exec], timelimit=1 )
- return _extract_version(results[1])
+ results = subprocess.run( [solver_exec], timeout=1,
+ stdout=subprocess.PIPE,
+ stderr=subprocess.STDOUT,
+ universal_newlines=True)
+ return _extract_version(results.stdout)
def create_command_line(self, executable, problem_files):
@@ -135,7 +133,7 @@ def create_command_line(self, executable, problem_files):
for key in self.options:
if key == 'solver':
continue
- if isinstance(self.options[key], basestring) and ' ' in self.options[key]:
+ if isinstance(self.options[key], str) and ' ' in self.options[key]:
opt.append(key+"=\""+str(self.options[key])+"\"")
cmd.append(str(key)+"="+str(self.options[key]))
elif key == 'subsolver':
diff --git a/pyomo/solvers/plugins/solvers/CPLEX.py b/pyomo/solvers/plugins/solvers/CPLEX.py
index f514d40edf1..a03a0fc41d4 100644
--- a/pyomo/solvers/plugins/solvers/CPLEX.py
+++ b/pyomo/solvers/plugins/solvers/CPLEX.py
@@ -13,14 +13,13 @@
import re
import time
import logging
+import subprocess
from pyomo.common import Executable
from pyomo.common.errors import ApplicationError
-from pyutilib.misc import yaml_fix
from pyomo.common.tempfiles import TempfileManager
-from pyutilib.subprocess import run
-from pyomo.common.collections import ComponentMap, Options, Bunch
+from pyomo.common.collections import ComponentMap, Bunch
from pyomo.opt.base import (
ProblemFormat, ResultsFormat, OptSolver, BranchDirection,
)
@@ -41,10 +40,6 @@
from six import iteritems
from six.moves import xrange
-try:
- unicode
-except:
- basestring = unicode = str
def _validate_file_name(cplex, filename, description):
"""Validate filenames against the set of allowable chaacters in CPLEX.
@@ -174,7 +169,7 @@ def __init__(self, **kwds):
self.set_problem_format(ProblemFormat.cpxlp)
# Note: Undefined capabilities default to 'None'
- self._capabilities = Options()
+ self._capabilities = Bunch()
self._capabilities.linear = True
self._capabilities.quadratic_objective = True
self._capabilities.quadratic_constraint = True
@@ -317,11 +312,11 @@ def _presolve(self, *args, **kwds):
# create the temporary file - assuming that the user has already, via some external
# mechanism, invoked warm_start() with a instance to create the warm start file.
if self._warm_start_solve and \
- isinstance(args[0], basestring):
+ isinstance(args[0], str):
# we assume the user knows what they are doing...
pass
elif self._warm_start_solve and \
- (not isinstance(args[0], basestring)):
+ (not isinstance(args[0], str)):
# assign the name of the warm start file *before* calling the base class
# presolve - the base class method ends up creating the command line,
# and the warm start file-name is (obviously) needed there.
@@ -338,7 +333,7 @@ def _presolve(self, *args, **kwds):
if (
self._priorities_solve
- and not isinstance(args[0], basestring)
+ and not isinstance(args[0], str)
and not user_priorities
):
self._priorities_file_name = TempfileManager.create_tempfile(
@@ -351,7 +346,7 @@ def _presolve(self, *args, **kwds):
# NB: we must let the base class presolve run first so that the
# symbol_map is actually constructed!
- if (len(args) > 0) and (not isinstance(args[0], basestring)):
+ if (len(args) > 0) and (not isinstance(args[0], str)):
if len(args) != 1:
raise ValueError(
@@ -397,8 +392,11 @@ def _get_version(self):
solver_exec = self.executable()
if solver_exec is None:
return _extract_version('')
- results = run( [solver_exec,'-c','quit'], timelimit=1 )
- return _extract_version(results[1])
+ results = subprocess.run( [solver_exec,'-c','quit'], timeout=1,
+ stdout=subprocess.PIPE,
+ stderr=subprocess.STDOUT,
+ universal_newlines=True)
+ return _extract_version(results.stdout)
def create_command_line(self, executable, problem_files):
@@ -434,7 +432,7 @@ def create_command_line(self, executable, problem_files):
for key in self.options:
if key == 'relax_integrality' or key == 'mipgap':
continue
- elif isinstance(self.options[key], basestring) and \
+ elif isinstance(self.options[key], str) and \
(' ' in self.options[key]):
opt = ' '.join(key.split('_'))+' '+str(self.options[key])
else:
@@ -621,7 +619,8 @@ def process_logfile(self):
results.solver.termination_message = ' '.join(tokens)
try:
- results.solver.termination_message = yaml_fix(results.solver.termination_message)
+ if isinstance(results.solver.termination_message, str):
+ results.solver.termination_message = results.solver.termination_message.replace(':', '\\x3a')
except:
pass
return results
diff --git a/pyomo/solvers/plugins/solvers/GAMS.py b/pyomo/solvers/plugins/solvers/GAMS.py
index b4bcac0799b..1c6cbbbe182 100644
--- a/pyomo/solvers/plugins/solvers/GAMS.py
+++ b/pyomo/solvers/plugins/solvers/GAMS.py
@@ -8,19 +8,19 @@
# This software is distributed under the 3-clause BSD License.
# ___________________________________________________________________________
-from six import StringIO, iteritems, string_types
+from six import StringIO, iteritems
+import shlex
from tempfile import mkdtemp
-import os, sys, math, logging, shutil, time
+import os, sys, math, logging, shutil, time, subprocess
from pyomo.core.base import Constraint, Var, value, Objective
from pyomo.opt import ProblemFormat, SolverFactory
import pyomo.common
-from pyomo.common.collections import Options
+from pyomo.common.collections import Bunch
+from pyomo.common.tee import TeeStream
from pyomo.opt.base.solvers import _extract_version
-import pyutilib.subprocess
-from pyutilib.misc import quote_split
from pyomo.core.kernel.block import IBlock
from pyomo.core.kernel.objective import IObjective
@@ -45,7 +45,7 @@ def __init__(self, **kwds):
self._default_variable_value = None
self._metasolver = False
- self._capabilities = Options()
+ self._capabilities = Bunch()
self._capabilities.linear = True
self._capabilities.quadratic_objective = True
self._capabilities.quadratic_constraint = True
@@ -53,7 +53,7 @@ def __init__(self, **kwds):
self._capabilities.sos1 = False
self._capabilities.sos2 = False
- self.options = Options()
+ self.options = Bunch()
def version(self):
"""Returns a 4-tuple describing the solver executable version."""
@@ -69,7 +69,7 @@ def default_variable_value(self):
return self._default_variable_value
def set_options(self, istr):
- if isinstance(istr, string_types):
+ if isinstance(istr, str):
istr = self._options_string_to_dict(istr)
for key in istr:
if not istr[key] is None:
@@ -83,7 +83,7 @@ def _options_string_to_dict(istr):
return ans
if istr[0] == "'" or istr[0] == '"':
istr = eval(istr)
- tokens = quote_split('[ ]+',istr)
+ tokens = shlex.split(istr)
for token in tokens:
index = token.find('=')
if index == -1:
@@ -192,7 +192,7 @@ def _run_simple_model(self, n):
tmpdir = mkdtemp()
try:
from gams import GamsWorkspace, DebugLevel
- GamsWorkspace(debug=DebugLevel.Off,
+ ws = GamsWorkspace(debug=DebugLevel.Off,
working_directory=tmpdir)
t1 = ws.add_job_from_string(self._simple_model(n))
t1.run()
@@ -630,9 +630,11 @@ def _run_simple_model(self, n):
test = os.path.join(tmpdir, 'test.gms')
with open(test, 'w') as FILE:
FILE.write(self._simple_model(n))
- rc, txt = pyutilib.subprocess.run(
- [self.executable(), test, "curdir=" + tmpdir, 'lo=0'])
- return not rc
+ result = subprocess.run(
+ [self.executable(), test, "curdir=" + tmpdir, 'lo=0'],
+ stdout=subprocess.DEVNULL,
+ stderr=subprocess.DEVNULL)
+ return not result.returncode
finally:
shutil.rmtree(tmpdir)
return False
@@ -659,8 +661,10 @@ def _get_version(self):
else:
# specify logging to stdout for windows compatibility
cmd = [solver_exec, "audit", "lo=3"]
- _, txt = pyutilib.subprocess.run(cmd, tee=False)
- return _extract_version(txt)
+ results = subprocess.run(cmd, stdout=subprocess.PIPE,
+ stderr=subprocess.STDOUT,
+ universal_newlines=True)
+ return _extract_version(results.stdout)
@staticmethod
def _parse_special_values(value):
@@ -811,7 +815,14 @@ def solve(self, *args, **kwds):
command.append("lf=" + str(logfile))
try:
- rc, txt = pyutilib.subprocess.run(command, tee=tee)
+ ostreams = [StringIO()]
+ if tee:
+ ostreams.append(sys.stdout)
+ with TeeStream(*ostreams) as t:
+ result = subprocess.run(command, stdout=t.STDOUT,
+ stderr=t.STDERR)
+ rc = result.returncode
+ txt = ostreams[0].getvalue()
if keepfiles:
print("\nGAMS WORKING DIRECTORY: %s\n" % tmpdir)
diff --git a/pyomo/solvers/plugins/solvers/GLPK.py b/pyomo/solvers/plugins/solvers/GLPK.py
index 9b4bbe6ce27..c12301e89e4 100644
--- a/pyomo/solvers/plugins/solvers/GLPK.py
+++ b/pyomo/solvers/plugins/solvers/GLPK.py
@@ -12,17 +12,17 @@
import re
import sys
import csv
+import subprocess
-import pyutilib.subprocess
from pyomo.common.tempfiles import TempfileManager
from pyomo.common import Executable
-from pyomo.common.collections import Bunch, Options
+from pyomo.common.collections import Bunch
from pyomo.opt import SolverFactory, OptSolver, ProblemFormat, ResultsFormat, SolverResults, TerminationCondition, SolutionStatus, ProblemSense
from pyomo.opt.base.solvers import _extract_version
from pyomo.opt.solver import SystemCallSolver
-from six import iteritems, string_types
+from six import iteritems
logger = logging.getLogger('pyomo.solvers')
@@ -34,10 +34,11 @@ def configure_glpk():
_glpk_version = _extract_version("")
if not Executable("glpsol"):
return
- errcode, results = pyutilib.subprocess.run(
- [Executable('glpsol').path(), "--version"], timelimit=2)
- if errcode == 0:
- _glpk_version = _extract_version(results)
+ result = subprocess.run([Executable('glpsol').path(), "--version"],
+ stdout=subprocess.PIPE, stderr=subprocess.STDOUT,
+ timeout=1, universal_newlines=True)
+ if not result.returncode:
+ _glpk_version = _extract_version(result.stdout)
# Not sure how better to get these constants, but pulled from GLPK
# documentation and source code (include/glpk.h)
@@ -135,7 +136,7 @@ def __init__ (self, **kwargs):
self.set_problem_format(ProblemFormat.cpxlp)
# Note: Undefined capabilities default to 'None'
- self._capabilities = Options()
+ self._capabilities = Bunch()
self._capabilities.linear = True
self._capabilities.integer = True
@@ -182,16 +183,12 @@ def create_command_line(self, executable, problem_files):
cmd.insert(0, self._timer)
for key in self.options:
opt = self.options[key]
- if opt is None or (isinstance(opt, string_types) and opt.strip() == ''):
+ if opt is None or (isinstance(opt, str) and opt.strip() == ''):
# Handle the case for options that must be
# specified without a value
cmd.append("--%s" % key)
else:
cmd.extend(["--%s" % key, str(opt)])
- #if isinstance(opt, basestring) and ' ' in opt:
- # cmd.append('--%s "%s"' % (key, str(opt)))
- #else:
- # cmd.append('--%s %s' % (key, str(opt)))
if self._timelimit is not None and self._timelimit > 0.0:
cmd.extend(['--tmlim', str(self._timelimit)])
diff --git a/pyomo/solvers/plugins/solvers/GLPK_old.py b/pyomo/solvers/plugins/solvers/GLPK_old.py
index a60a132db6d..03fe0a388c5 100644
--- a/pyomo/solvers/plugins/solvers/GLPK_old.py
+++ b/pyomo/solvers/plugins/solvers/GLPK_old.py
@@ -12,11 +12,11 @@
import os
import re
import sys
+import subprocess
from pyomo.common.errors import ApplicationError
-from pyomo.common.collections import Bunch, Options
+from pyomo.common.collections import Bunch
from pyomo.common.tempfiles import TempfileManager
-import pyutilib.subprocess
from pyomo.common import Executable
from pyomo.opt.base import ProblemFormat, ResultsFormat
@@ -26,7 +26,7 @@
from pyomo.solvers.mockmip import MockMIP
from pyomo.solvers.plugins.solvers.GLPK import _glpk_version, configure_glpk
-from six import iteritems, string_types
+from six import iteritems
import logging
logger = logging.getLogger('pyomo.solvers')
@@ -77,7 +77,7 @@ def __init__ (self, **kwargs):
self.set_problem_format(ProblemFormat.cpxlp)
# Note: Undefined capabilities default to 'None'
- self._capabilities = Options()
+ self._capabilities = Bunch()
self._capabilities.linear = True
self._capabilities.integer = True
@@ -124,16 +124,12 @@ def create_command_line(self, executable, problem_files):
cmd.insert(0, self._timer)
for key in self.options:
opt = self.options[key]
- if opt is None or (isinstance(opt, string_types) and opt.strip() == ''):
+ if opt is None or (isinstance(opt, str) and opt.strip() == ''):
# Handle the case for options that must be
# specified without a value
cmd.append("--%s" % key)
else:
cmd.extend(["--%s" % key, str(opt)])
- #if isinstance(opt, basestring) and ' ' in opt:
- # cmd.append('--%s "%s"' % (key, str(opt)))
- #else:
- # cmd.append('--%s %s' % (key, str(opt)))
if self._timelimit is not None and self._timelimit > 0.0:
cmd.extend(['--tmlim', str(self._timelimit)])
@@ -431,7 +427,7 @@ def __init__(self, **kwds):
self.set_problem_format(ProblemFormat.cpxlp)
# Note: Undefined capabilities default to 'None'
- self._capabilities = Options()
+ self._capabilities = Bunch()
self._capabilities.linear = True
self._capabilities.integer = True
@@ -455,10 +451,11 @@ def _get_version(self):
solver_exec = self.executable()
if solver_exec is None:
return _extract_version('')
- errcode, results = pyutilib.subprocess.run(
- [solver_exec, "--version"], timelimit=1)
- if errcode == 0:
- return _extract_version(results)
+ result = subprocess.run([solver_exec, "--version"], timeout=1,
+ stdout=subprocess.PIPE, stderr=subprocess.STDOUT,
+ universal_newlines=True)
+ if not result.returncode:
+ return _extract_version(result.stdout)
return _extract_version('')
def create_command_line(self, executable, problem_files):
@@ -487,11 +484,6 @@ def create_command_line(self, executable, problem_files):
cmd.append("--%s" % key)
else:
cmd.extend(["--%s" % key, str(opt)])
- #if isinstance(self.options[key], basestring) \
- # and ' ' in self.options[key]:
- # cmd.append('--%s "%s"' % (key, str(self.options[key])))
- #else:
- # cmd.append('--%s %s' % (key, str(self.options[key])))
if self._timelimit is not None and self._timelimit > 0.0:
cmd.extend(['--tmlim', str(self._timelimit)])
diff --git a/pyomo/solvers/plugins/solvers/GUROBI.py b/pyomo/solvers/plugins/solvers/GUROBI.py
index c4eef1d4431..8860f4da732 100644
--- a/pyomo/solvers/plugins/solvers/GUROBI.py
+++ b/pyomo/solvers/plugins/solvers/GUROBI.py
@@ -16,9 +16,8 @@
import subprocess
from pyomo.common import Executable
-from pyomo.common.collections import Options, Bunch
+from pyomo.common.collections import Bunch
from pyomo.common.tempfiles import TempfileManager
-from pyutilib.subprocess import run
from pyomo.opt.base import ProblemFormat, ResultsFormat, OptSolver
from pyomo.opt.base.solvers import _extract_version, SolverFactory
@@ -28,12 +27,7 @@
logger = logging.getLogger('pyomo.solvers')
-from six import iteritems, StringIO
-
-try:
- unicode
-except:
- basestring = str
+from six import iteritems
@SolverFactory.register('gurobi', doc='The GUROBI LP/MIP solver')
@@ -110,7 +104,7 @@ def __init__(self, **kwds):
self.set_problem_format(ProblemFormat.cpxlp)
# Note: Undefined capabilities default to 'None'
- self._capabilities = Options()
+ self._capabilities = Bunch()
self._capabilities.linear = True
self._capabilities.quadratic_objective = True
self._capabilities.quadratic_constraint = True
@@ -219,11 +213,11 @@ def _presolve(self, *args, **kwds):
# create the temporary file - assuming that the user has already, via some external
# mechanism, invoked warm_start() with a instance to create the warm start file.
if self._warm_start_solve and \
- isinstance(args[0], basestring):
+ isinstance(args[0], str):
# we assume the user knows what they are doing...
pass
elif self._warm_start_solve and \
- (not isinstance(args[0], basestring)):
+ (not isinstance(args[0], str)):
# assign the name of the warm start file *before* calling the base class
# presolve - the base class method ends up creating the command line,
# and the warm start file-name is (obviously) needed there.
@@ -238,7 +232,7 @@ def _presolve(self, *args, **kwds):
# NB: we must let the base class presolve run first so that the
# symbol_map is actually constructed!
- if (len(args) > 0) and (not isinstance(args[0], basestring)):
+ if (len(args) > 0) and (not isinstance(args[0], str)):
if len(args) != 1:
raise ValueError(
@@ -278,14 +272,16 @@ def _get_version(self):
if solver_exec is None:
ver = _extract_version('')
else:
- f = StringIO()
- results = run([solver_exec],
- stdin=('from gurobipy import *; '
- 'print(gurobi.version()); exit()'),
- ostream=f)
+ results = subprocess.run(
+ [solver_exec],
+ input='from gurobipy import *; print(gurobi.version()); exit()',
+ stdout=subprocess.PIPE,
+ stderr=subprocess.STDOUT,
+ universal_newlines=True,
+ )
ver = None
try:
- ver = tuple(eval(f.getvalue().strip()))
+ ver = tuple(eval(results.stdout.strip()))
while(len(ver) < 4):
ver += (0,)
except SyntaxError:
@@ -389,13 +385,13 @@ def process_soln_file(self, results):
extract_rc = False
for suffix in self._suffixes:
flag=False
- if re.match(suffix,"dual"):
+ if re.match(suffix, "dual"):
extract_duals = True
flag=True
- if re.match(suffix,"slack"):
+ if re.match(suffix, "slack"):
extract_slacks = True
flag=True
- if re.match(suffix,"rc"):
+ if re.match(suffix, "rc"):
extract_rc = True
flag=True
if not flag:
diff --git a/pyomo/solvers/plugins/solvers/IPOPT.py b/pyomo/solvers/plugins/solvers/IPOPT.py
index b6608a27e22..1b290f29ff4 100644
--- a/pyomo/solvers/plugins/solvers/IPOPT.py
+++ b/pyomo/solvers/plugins/solvers/IPOPT.py
@@ -9,11 +9,11 @@
# ___________________________________________________________________________
import os
+import subprocess
from pyomo.common import Executable
-from pyomo.common.collections import Options, Bunch
+from pyomo.common.collections import Bunch
from pyomo.common.tempfiles import TempfileManager
-from pyutilib.subprocess import run
from pyomo.opt.base import ProblemFormat, ResultsFormat
from pyomo.opt.base.solvers import _extract_version, SolverFactory
@@ -23,11 +23,6 @@
import logging
logger = logging.getLogger('pyomo.solvers')
-try:
- unicode
-except:
- basestring = str
-
@SolverFactory.register('ipopt', doc='The Ipopt NLP solver')
class IPOPT(SystemCallSolver):
@@ -51,7 +46,7 @@ def __init__(self, **kwds):
self.set_problem_format(ProblemFormat.nl)
# Note: Undefined capabilities default to 'None'
- self._capabilities = Options()
+ self._capabilities = Bunch()
self._capabilities.linear = True
self._capabilities.integer = False
self._capabilities.quadratic_objective = True
@@ -78,8 +73,11 @@ def _get_version(self):
solver_exec = self.executable()
if solver_exec is None:
return _extract_version('')
- results = run( [solver_exec,"-v"], timelimit=1 )
- return _extract_version(results[1])
+ results = subprocess.run( [solver_exec,"-v"], timeout=1,
+ stdout=subprocess.PIPE,
+ stderr=subprocess.STDOUT,
+ universal_newlines=True)
+ return _extract_version(results.stdout)
def create_command_line(self, executable, problem_files):
@@ -138,7 +136,7 @@ def create_command_line(self, executable, problem_files):
else:
if key == "option_file_name":
ofn_option_used = True
- if isinstance(self.options[key], basestring) and ' ' in self.options[key]:
+ if isinstance(self.options[key], str) and ' ' in self.options[key]:
env_opt.append(key+"=\""+str(self.options[key])+"\"")
cmd.append(str(key)+"="+str(self.options[key]))
else:
diff --git a/pyomo/solvers/plugins/solvers/PICO.py b/pyomo/solvers/plugins/solvers/PICO.py
index d346ae6fe58..0089a32e915 100644
--- a/pyomo/solvers/plugins/solvers/PICO.py
+++ b/pyomo/solvers/plugins/solvers/PICO.py
@@ -10,14 +10,13 @@
import re
import os
-
+import subprocess
from six import iteritems
from pyomo.common import Executable
from pyomo.common.errors import ApplicationError
-from pyomo.common.collections import Options, Bunch
+from pyomo.common.collections import Bunch
from pyomo.common.tempfiles import TempfileManager
-from pyutilib.subprocess import run
from pyomo.opt.base import ProblemFormat, ResultsFormat, OptSolver
from pyomo.opt.base.solvers import _extract_version, SolverFactory
@@ -92,7 +91,7 @@ def __init__(self, **kwds):
self.set_problem_format(ProblemFormat.cpxlp)
# Note: Undefined capabilities default to 'None'
- self._capabilities = Options()
+ self._capabilities = Bunch()
self._capabilities.linear = True
self._capabilities.integer = True
#self._capabilities.sos1 = True
@@ -134,12 +133,15 @@ def _get_version(self):
solver_exec = self.executable()
if solver_exec is None:
return _extract_version('')
- results = run([solver_exec, "--version"], timelimit=1)
+ results = subprocess.run([solver_exec, "--version"], timeout=1,
+ stdout=subprocess.PIPE,
+ stderr=subprocess.STDOUT,
+ universal_newlines=True)
# 'PICO --version' seems to print 'pebble , PICO
# we don't wan't the pebble version being advertised so we split
# the string at the comma before extracting a version number. It
# also exits with a nonzero return code so don't bother checking it.
- return _extract_version(results[1].split(',')[1])
+ return _extract_version(results.stdout.split(',')[1])
# Nothing needs to be done here
#def _presolve(self, *args, **kwds):
diff --git a/pyomo/solvers/plugins/solvers/SCIPAMPL.py b/pyomo/solvers/plugins/solvers/SCIPAMPL.py
index 94948969bd9..8d35aeb91b1 100644
--- a/pyomo/solvers/plugins/solvers/SCIPAMPL.py
+++ b/pyomo/solvers/plugins/solvers/SCIPAMPL.py
@@ -9,11 +9,11 @@
# ___________________________________________________________________________
import os
+import subprocess
from pyomo.common import Executable
-from pyomo.common.collections import Options, Bunch
+from pyomo.common.collections import Bunch
from pyomo.common.tempfiles import TempfileManager
-from pyutilib.subprocess import run
from pyomo.opt.base import ProblemFormat, ResultsFormat
from pyomo.opt.base.solvers import _extract_version, SolverFactory
@@ -23,11 +23,6 @@
import logging
logger = logging.getLogger('pyomo.solvers')
-try:
- unicode
-except:
- basestring = str
-
@SolverFactory.register('scip', doc='The SCIP LP/MIP solver')
class SCIPAMPL(SystemCallSolver):
@@ -50,7 +45,7 @@ def __init__(self, **kwds):
self.set_problem_format(ProblemFormat.nl)
# Note: Undefined capabilities default to 'None'
- self._capabilities = Options()
+ self._capabilities = Bunch()
self._capabilities.linear = True
self._capabilities.integer = True
self._capabilities.quadratic_objective = True
@@ -77,8 +72,11 @@ def _get_version(self):
solver_exec = self.executable()
if solver_exec is None:
return _extract_version('')
- results = run( [solver_exec], timelimit=1 )
- return _extract_version(results[1])
+ results = subprocess.run( [solver_exec], timeout=1,
+ stdout=subprocess.PIPE,
+ stderr=subprocess.STDOUT,
+ universal_newlines=True)
+ return _extract_version(results.stdout)
def create_command_line(self, executable, problem_files):
@@ -134,7 +132,7 @@ def create_command_line(self, executable, problem_files):
for key in self.options:
if key == 'solver':
continue
- if isinstance(self.options[key], basestring) and ' ' in self.options[key]:
+ if isinstance(self.options[key], str) and ' ' in self.options[key]:
env_opt.append(key+"=\""+str(self.options[key])+"\"")
else:
env_opt.append(key+"="+str(self.options[key]))
diff --git a/pyomo/solvers/plugins/solvers/XPRESS.py b/pyomo/solvers/plugins/solvers/XPRESS.py
index afa7726440e..9a3e1027131 100644
--- a/pyomo/solvers/plugins/solvers/XPRESS.py
+++ b/pyomo/solvers/plugins/solvers/XPRESS.py
@@ -12,11 +12,11 @@
import os
import re
import logging
+from six import string_types
from pyomo.common import Executable
from pyomo.common.errors import ApplicationError
-from pyomo.common.collections import Options, Bunch
-from pyutilib.misc import yaml_fix
+from pyomo.common.collections import Bunch
from pyomo.common.tempfiles import TempfileManager
from pyomo.opt.base import ProblemFormat, ResultsFormat, OptSolver
@@ -27,7 +27,6 @@
logger = logging.getLogger('pyomo.solvers')
-
@SolverFactory.register('xpress', doc='The XPRESS LP/MIP solver')
class XPRESS(OptSolver):
"""The XPRESS LP/MIP solver
@@ -100,7 +99,7 @@ def __init__(self, **kwds):
#
# Note: Undefined capabilities default to 'None'
- self._capabilities = Options()
+ self._capabilities = Bunch()
self._capabilities.linear = True
self._capabilities.quadratic_objective = True
self._capabilities.quadratic_constraint = True
@@ -303,7 +302,8 @@ def process_logfile(self):
results.solver.termination_message = ' '.join(tokens)
try:
- results.solver.termination_message = yaml_fix(results.solver.termination_message)
+ if isinstance(results.solver.termination_message, string_types):
+ results.solver.termination_message = results.solver.termination_message.replace(':', '\\x3a')
except:
pass
return results
@@ -372,6 +372,7 @@ def process_soln_file(self, results):
variable_reduced_cost = None
### TODO: What is going on here with field_name, and shortly thereafter, with variable_status and whatnot? They've never been defined.
### It seems like this is trying to mimic the CPLEX solver but has some issues
+ ## !! THIS SEEMS LIKE A BUG!! - mrmundt
if (extract_reduced_costs is True) and (field_name == "reducedCost"):
variable_reduced_cost = tertiary_value
diff --git a/pyomo/solvers/plugins/solvers/cplex_direct.py b/pyomo/solvers/plugins/solvers/cplex_direct.py
index be9ec7442b4..20468381459 100644
--- a/pyomo/solvers/plugins/solvers/cplex_direct.py
+++ b/pyomo/solvers/plugins/solvers/cplex_direct.py
@@ -10,7 +10,6 @@
import logging
import re
-import six
import sys
from pyomo.common.tempfiles import TempfileManager
@@ -168,7 +167,7 @@ def _apply_solver(self):
# least as far back as CPLEX 12.5.1 [the oldest version
# supported by IBM as of 1 Oct 2020]
if self.version() >= (12, 5, 1) \
- and isinstance(self._log_file, six.string_types):
+ and isinstance(self._log_file, str):
_log_file = (open(self._log_file, 'a'),)
_close_log_file = True
else:
diff --git a/pyomo/solvers/plugins/solvers/direct_or_persistent_solver.py b/pyomo/solvers/plugins/solvers/direct_or_persistent_solver.py
index 159473c958b..158c65c5e4f 100644
--- a/pyomo/solvers/plugins/solvers/direct_or_persistent_solver.py
+++ b/pyomo/solvers/plugins/solvers/direct_or_persistent_solver.py
@@ -15,7 +15,7 @@
from pyomo.core.base import SymbolMap, NumericLabeler, TextLabeler
import pyomo.common
from pyomo.common.errors import ApplicationError
-from pyomo.common.collections import ComponentMap, ComponentSet, Options
+from pyomo.common.collections import ComponentMap, ComponentSet, Bunch
from pyomo.common.tempfiles import TempfileManager
import pyomo.opt.base.solvers
from pyomo.opt.base.formats import ResultsFormat
@@ -101,7 +101,7 @@ def __init__(self, **kwds):
self._symbolic_solver_labels = False
"""A bool. If true then the solver components will be given names corresponding to the pyomo component names."""
- self._capabilites = Options()
+ self._capabilites = Bunch()
self._referenced_variables = ComponentMap()
"""dict: {var: count} where count is the number of constraints/objective referencing the var"""
diff --git a/pyomo/solvers/plugins/solvers/direct_solver.py b/pyomo/solvers/plugins/solvers/direct_solver.py
index 3faa4b17a0d..c0fcd4113f9 100644
--- a/pyomo/solvers/plugins/solvers/direct_solver.py
+++ b/pyomo/solvers/plugins/solvers/direct_solver.py
@@ -17,7 +17,7 @@
from pyomo.core.base.suffix import active_import_suffix_generator
from pyomo.core.kernel.suffix import import_suffix_generator
from pyomo.common.errors import ApplicationError
-from pyomo.common.collections import Options
+from pyomo.common.collections import Bunch
logger = logging.getLogger('pyomo.solvers')
@@ -106,7 +106,7 @@ def solve(self, *args, **kwds):
orig_options = self.options
- self.options = Options()
+ self.options = Bunch()
self.options.update(orig_options)
self.options.update(kwds.pop('options', {}))
self.options.update(
diff --git a/pyomo/solvers/plugins/solvers/glpk_direct.py b/pyomo/solvers/plugins/solvers/glpk_direct.py
index 1e81a69c14b..cd7ebffdb7e 100644
--- a/pyomo/solvers/plugins/solvers/glpk_direct.py
+++ b/pyomo/solvers/plugins/solvers/glpk_direct.py
@@ -38,7 +38,7 @@ def configure_glpk_direct():
print("Import of glpk failed - glpk message="+str(e)+"\n")
glpk_python_api_exists = False
-from pyomo.common.collections import Bunch, Options
+from pyomo.common.collections import Bunch
from pyomo.opt.base import OptSolver
from pyomo.opt.base.solvers import _extract_version, SolverFactory
@@ -104,7 +104,7 @@ def __init__(self, **kwds):
self._timelimit = None
# Note: Undefined capabilities default to 'None'
- self._capabilities = Options()
+ self._capabilities = Bunch()
self._capabilities.linear = True
self._capabilities.integer = True
diff --git a/pyomo/solvers/plugins/solvers/mosek_direct.py b/pyomo/solvers/plugins/solvers/mosek_direct.py
index 3e7a358a96a..8e62b6ff9c9 100644
--- a/pyomo/solvers/plugins/solvers/mosek_direct.py
+++ b/pyomo/solvers/plugins/solvers/mosek_direct.py
@@ -44,6 +44,7 @@ def accumulate(it):
else:
from itertools import accumulate
+
class DegreeError(ValueError):
pass
@@ -250,7 +251,7 @@ def _get_expr_from_pyomo_repn(self, repn, max_degree=2):
self._pyomo_var_to_solver_var_map[j] for i, j in repn.quadratic_vars)
qvals = tuple(v * 2 if qsubi[i] is qsubj[i] else v
for i, v in enumerate(repn.quadratic_coefs))
- mosek_qexp = (qsubi, qsubj, qvals)
+ mosek_qexp = (qsubj, qsubi, qvals)
return mosek_arow, mosek_qexp, referenced_vars
def _get_expr_from_pyomo_expr(self, expr, max_degree=2):
@@ -292,10 +293,16 @@ def _add_vars(self, var_seq):
vnames = tuple(self._symbol_map.getSymbol(
v, self._labeler) for v in var_seq)
vtypes = tuple(map(self._mosek_vartype_from_var, var_seq))
- lbs = tuple(-inf if value(v.lb) is None else value(v.lb)
- for v in var_seq)
- ubs = tuple(inf if value(v.ub) is None else value(v.ub)
- for v in var_seq)
+ lbs = tuple( value(v) if v.fixed
+ else -inf if value(v.lb) is None
+ else value(v.lb)
+ for v in var_seq
+ )
+ ubs = tuple( value(v) if v.fixed
+ else inf if value(v.ub) is None
+ else value(v.ub)
+ for v in var_seq
+ )
fxs = tuple(v.is_fixed() for v in var_seq)
bound_types = tuple(map(self._mosek_bounds, lbs, ubs, fxs))
self._solver_model.appendvars(len(var_seq))
@@ -355,7 +362,7 @@ def _add_constraints(self, con_seq):
qcsubi = tuple(itertools.chain.from_iterable(q_is))
qcsubj = tuple(itertools.chain.from_iterable(q_js))
qcval = tuple(itertools.chain.from_iterable(q_vals))
- qcsubk = tuple(i*len(q_is[i - con_num]) for i in sub)
+ qcsubk = tuple(i for i in sub for j in range(len(q_is[i-con_num])))
self._solver_model.appendcons(num_lq)
self._solver_model.putarowlist(sub, ptrb, ptre, asubs, avals)
self._solver_model.putqcon(qcsubk, qcsubi, qcsubj, qcval)
diff --git a/pyomo/solvers/plugins/solvers/mosek_persistent.py b/pyomo/solvers/plugins/solvers/mosek_persistent.py
index 61e60b13840..b790a52752c 100644
--- a/pyomo/solvers/plugins/solvers/mosek_persistent.py
+++ b/pyomo/solvers/plugins/solvers/mosek_persistent.py
@@ -208,10 +208,16 @@ def update_vars(self, *solver_vars):
for v in solver_vars:
var_ids.append(self._pyomo_var_to_solver_var_map[v])
vtypes = tuple(map(self._mosek_vartype_from_var, solver_vars))
- lbs = tuple(-float('inf') if value(v.lb) is None else value(v.lb)
- for v in solver_vars)
- ubs = tuple(float('inf') if value(v.ub) is None else value(v.ub)
- for v in solver_vars)
+ lbs = tuple( value(v) if v.fixed
+ else -float('inf') if value(v.lb) is None
+ else value(v.lb)
+ for v in solver_vars
+ )
+ ubs = tuple( value(v) if v.fixed
+ else float('inf') if value(v.ub) is None
+ else value(v.ub)
+ for v in solver_vars
+ )
fxs = tuple(v.is_fixed() for v in solver_vars)
bound_types = tuple(map(self._mosek_bounds, lbs, ubs, fxs))
self._solver_model.putvartypelist(var_ids, vtypes)
diff --git a/pyomo/solvers/plugins/solvers/persistent_solver.py b/pyomo/solvers/plugins/solvers/persistent_solver.py
index 0d4962ed75b..9a42f4e8974 100644
--- a/pyomo/solvers/plugins/solvers/persistent_solver.py
+++ b/pyomo/solvers/plugins/solvers/persistent_solver.py
@@ -20,7 +20,7 @@
from pyomo.core.base.sos import SOSConstraint
from pyomo.common.errors import ApplicationError
-from pyomo.common.collections import Options
+from pyomo.common.collections import Bunch
import time
import logging
@@ -449,7 +449,7 @@ def solve(self, *args, **kwds):
orig_options = self.options
- self.options = Options()
+ self.options = Bunch()
self.options.update(orig_options)
self.options.update(kwds.pop('options', {}))
self.options.update(self._options_string_to_dict(kwds.pop('options_string', '')))
diff --git a/pyomo/solvers/tests/checks/test_GAMS.py b/pyomo/solvers/tests/checks/test_GAMS.py
index b843a615c05..65680aa79a5 100644
--- a/pyomo/solvers/tests/checks/test_GAMS.py
+++ b/pyomo/solvers/tests/checks/test_GAMS.py
@@ -16,7 +16,7 @@
GAMSShell, GAMSDirect, gdxcc_available
)
import pyutilib.th as unittest
-from pyutilib.misc import capture_output
+from pyomo.common.tee import capture_output
import os, shutil
from tempfile import mkdtemp
diff --git a/pyomo/solvers/tests/checks/test_cbc.py b/pyomo/solvers/tests/checks/test_cbc.py
index ab92b88b3f7..255c8ebb9ca 100644
--- a/pyomo/solvers/tests/checks/test_cbc.py
+++ b/pyomo/solvers/tests/checks/test_cbc.py
@@ -11,7 +11,7 @@
from pyomo.environ import SolverFactory, ConcreteModel, Var, Constraint, Objective, Integers, Boolean
import pyutilib.th as unittest
-from pyutilib.misc import capture_output
+from pyomo.common.tee import capture_output
opt_cbc = SolverFactory('cbc')
cbc_available = opt_cbc.available(exception_flag=False)
diff --git a/pyomo/solvers/tests/checks/test_pickle.py b/pyomo/solvers/tests/checks/test_pickle.py
index 5e903365d32..99c633f7d58 100644
--- a/pyomo/solvers/tests/checks/test_pickle.py
+++ b/pyomo/solvers/tests/checks/test_pickle.py
@@ -45,12 +45,17 @@ def pickle_test(self):
load_solutions = (not model_class.solve_should_fail) and \
(test_case.status != 'expected failure')
- opt, status = model_class.solve(solver,
- io,
- test_case.testcase.io_options,
- test_case.testcase.options,
- symbolic_labels,
- load_solutions)
+ try:
+ opt, status = model_class.solve(solver,
+ io,
+ test_case.testcase.io_options,
+ test_case.testcase.options,
+ symbolic_labels,
+ load_solutions)
+ except:
+ if test_case.status == 'expected failure':
+ return
+ raise
m = pickle.loads(pickle.dumps(model_class.model))
#
diff --git a/pyomo/solvers/tests/core/solvers.py b/pyomo/solvers/tests/core/solvers.py
index 73390759769..5ace70a9d4d 100644
--- a/pyomo/solvers/tests/core/solvers.py
+++ b/pyomo/solvers/tests/core/solvers.py
@@ -18,7 +18,7 @@
import logging
from functools import reduce
-from pyomo.common.collections import Bunch, Options
+from pyomo.common.collections import Bunch
import pyutilib.th as unittest
import pyutilib.autotest
import pyomo.misc.plugin
@@ -268,7 +268,7 @@ def test_solvers(options=None, argv=None):
else:
sys.argv=argv
# Create the tests defined in the YAML configuration file
- autotest_options = Options()
+ autotest_options = Bunch()
autotest_options.testname_format = "%s_TEST_%s"
pyutilib.autotest.create_test_suites(filename=currdir+'test_solvers.yml', _globals=globals(), options=autotest_options)
# Execute the tests, using a custom test runner
diff --git a/pyomo/solvers/tests/solvers.py b/pyomo/solvers/tests/solvers.py
index e1a1090df6d..32f08675767 100644
--- a/pyomo/solvers/tests/solvers.py
+++ b/pyomo/solvers/tests/solvers.py
@@ -13,7 +13,7 @@
import six
import logging
-from pyomo.common.collections import Options
+from pyomo.common.collections import Bunch
from pyomo.opt import SolverFactory
from pyomo.opt.base.solvers import UnknownSolver
@@ -36,7 +36,7 @@
# interfaces may be used for the same "solver"
#
def initialize(**kwds):
- obj = Options(**kwds)
+ obj = Bunch(**kwds)
#
# Set obj.available
#
@@ -97,7 +97,7 @@ def test_solver_cases(*args):
'conic_constraints'])
_test_solver_cases['mosek', 'python'] = initialize(
- name='mosek_direct',
+ name='mosek',
io='python',
capabilities=_mosek_capabilities,
import_suffixes=['dual', 'rc', 'slack'])
@@ -105,9 +105,9 @@ def test_solver_cases(*args):
#
# MOSEK Persistent
#
- _test_solver_cases['mosek_persistent','python'] = initialize(
- name = 'mosek_persistent',
- io = 'python',
+ _test_solver_cases['mosek','persistent'] = initialize(
+ name = 'mosek',
+ io = 'persistent',
capabilities=_mosek_capabilities,
import_suffixes=['dual','rc','slack'])
diff --git a/pyomo/solvers/tests/testcases.py b/pyomo/solvers/tests/testcases.py
index 70ae91bded0..e785a3dfeef 100644
--- a/pyomo/solvers/tests/testcases.py
+++ b/pyomo/solvers/tests/testcases.py
@@ -13,7 +13,7 @@
import pyutilib.th as unittest
-from pyomo.common.collections import Options
+from pyomo.common.collections import Bunch
from pyomo.opt import TerminationCondition
from pyomo.solvers.tests.models.base import test_models
from pyomo.solvers.tests.solvers import test_solver_cases
@@ -45,17 +45,12 @@
# MOSEK
#
-ExpectedFailures['mosek_direct', 'python', 'QCP_simple'] = \
- (lambda v: True,
- "Conic constraints not yet handled by this interface")
+for _io in ('python', 'persistent'):
+ for _test in ('QCP_simple', 'QCP_simple_nosuffixes', 'MIQCP_simple'):
+ ExpectedFailures['mosek', _io, _test] = (
+ lambda v: True,
+ "Mosek does not handle nonconvex quadratic constraints")
-ExpectedFailures['mosek_direct', 'python', 'QCP_simple_nosuffixes'] = \
- (lambda v: True,
- "Conic constraints not yet handled by this interface")
-
-ExpectedFailures['mosek_direct', 'python', 'MIQCP_simple'] = \
- (lambda v: True,
- "Conic constraints not yet handled by this interface")
#
# CPLEX
#
@@ -397,7 +392,7 @@ def test_scenarios(arg=None):
msg=case[2]
# Return scenario dimensions and scenario information
- yield (model, solver, io), Options(
+ yield (model, solver, io), Bunch(
status=status, msg=msg, model=_model, solver=None,
testcase=_solver_case, demo_limits=_solver_case.demo_limits,
exclude_suffixes=exclude_suffixes)
@@ -477,11 +472,12 @@ def run_test_scenarios(options):
# Summarize the runtime statistics, by solver
#
summary = {}
- total = Options(NumEPass=0, NumEFail=0, NumUPass=0, NumUFail=0)
+ total = Bunch(NumEPass=0, NumEFail=0, NumUPass=0, NumUFail=0)
for key in stat:
model, solver, io = key
if not solver in summary:
- summary[solver] = Options(NumEPass=0, NumEFail=0, NumUPass=0, NumUFail=0)
+ summary[solver] = Bunch(NumEPass=0, NumEFail=0,
+ NumUPass=0, NumUFail=0)
_pass, _str = stat[key]
if _pass:
if _str == "Expected failure":
diff --git a/pyomo/util/model_size.py b/pyomo/util/model_size.py
index e8fd02ae3f4..3bbf91435c0 100644
--- a/pyomo/util/model_size.py
+++ b/pyomo/util/model_size.py
@@ -11,7 +11,7 @@
"""This module contains functions to interrogate the size of a Pyomo model."""
import logging
-from pyomo.common.collections import ComponentSet, Container
+from pyomo.common.collections import ComponentSet, Bunch
from pyomo.core import Block, Constraint, Var
from pyomo.core.expr import current as EXPR
from pyomo.gdp import Disjunct, Disjunction
@@ -21,7 +21,7 @@
default_logger.setLevel(logging.INFO)
-class ModelSizeReport(Container):
+class ModelSizeReport(Bunch):
"""Stores model size information.
Activated blocks are those who have an active flag of True and whose
@@ -86,7 +86,7 @@ def build_model_size_report(model):
activated_vars.update(
disj.indicator_var for disj in activated_disjuncts)
- report.activated = Container()
+ report.activated = Bunch()
report.activated.variables = len(activated_vars)
report.activated.binary_variables = sum(
1 for v in activated_vars if v.is_binary())
@@ -101,7 +101,7 @@ def build_model_size_report(model):
1 for c in activated_constraints
if c.body.polynomial_degree() not in (1, 0))
- report.overall = Container()
+ report.overall = Bunch()
block_like = (Block, Disjunct)
all_vars = ComponentSet(
model.component_data_objects(Var, descend_into=block_like))
@@ -125,7 +125,7 @@ def build_model_size_report(model):
Constraint, descend_into=block_like)
if c.body.polynomial_degree() not in (1, 0))
- report.warning = Container()
+ report.warning = Bunch()
report.warning.unassociated_disjuncts = sum(
1 for d in model.component_data_objects(
Disjunct, descend_into=block_like)
diff --git a/pyomo/util/slices.py b/pyomo/util/slices.py
index bed54098ad4..13b624e1ed5 100644
--- a/pyomo/util/slices.py
+++ b/pyomo/util/slices.py
@@ -8,15 +8,12 @@
# This software is distributed under the 3-clause BSD License.
# ___________________________________________________________________________
-import six
-
from pyomo.core.base.indexed_component import normalize_index
from pyomo.core.base.indexed_component_slice import IndexedComponent_slice
from pyomo.core.base.global_set import UnindexedComponent_set
-from pyomo.common.collections import ComponentSet, ComponentMap
def _to_iterable(source):
- iterable_scalars = six.string_types + (six.binary_type, six.text_type)
+ iterable_scalars = (str, bytes)
if hasattr(source, '__iter__'):
if isinstance(source, iterable_scalars):
yield source
diff --git a/pyomo/version/info.py b/pyomo/version/info.py
index 9025523efff..6501c04bc51 100644
--- a/pyomo/version/info.py
+++ b/pyomo/version/info.py
@@ -22,7 +22,7 @@
# The VOTD zipbuilder will automatically change releaselevel to "VOTD
# {hash}" and set the serial number to YYMMDDhhmm. The serial number
# should generally be left at 0, unless a downstream package is tracking
-# master and needs a hard reference to "suitably new" development.
+# main and needs a hard reference to "suitably new" development.
major=6
minor=0
micro=0
diff --git a/setup.py b/setup.py
index 7919afbdd11..8e804e92943 100644
--- a/setup.py
+++ b/setup.py
@@ -134,40 +134,19 @@ def run_setup():
ext_modules = ext_modules,
entry_points="""
[console_scripts]
- runbenders=pyomo.pysp.benders:Benders_main
- evaluate_xhat=pyomo.pysp.evaluate_xhat:EvaluateXhat_main
- runph=pyomo.pysp.phinit:PH_main
- runef=pyomo.pysp.ef_writer_script:main
- phsolverserver=pyomo.pysp.phsolverserver:main
- scenariotreeserver=pyomo.pysp.scenariotree.server_pyro:main
- computeconf=pyomo.pysp.computeconf:main
-
- results_schema=pyomo.scripting.commands:results_schema
- pyro_mip_server = pyomo.scripting.pyro_mip_server:main
- test.pyomo = pyomo.scripting.runtests:runPyomoTests
pyomo = pyomo.scripting.pyomo_main:main_console_script
+ test.pyomo = pyomo.scripting.runtests:runPyomoTests
+ pyomo_python = pyomo.scripting.commands:pyomo_python
+ pyro_mip_server = pyomo.scripting.pyro_mip_server:main
pyomo_ns = pyomo.scripting.commands:pyomo_ns
pyomo_nsc = pyomo.scripting.commands:pyomo_nsc
kill_pyro_mip_servers = pyomo.scripting.commands:kill_pyro_mip_servers
launch_pyro_mip_servers = pyomo.scripting.commands:launch_pyro_mip_servers
- readsol = pyomo.scripting.commands:readsol
- OSSolverService = pyomo.scripting.commands:OSSolverService
- pyomo_python = pyomo.scripting.commands:pyomo_python
- pyomo_old=pyomo.scripting.pyomo_command:main
[pyomo.command]
- pyomo.runbenders=pyomo.pysp.benders
- pyomo.evaluate_xhat=pyomo.pysp.evaluate_xhat
- pyomo.runph=pyomo.pysp.phinit
- pyomo.runef=pyomo.pysp.ef_writer_script
- pyomo.phsolverserver=pyomo.pysp.phsolverserver
- pyomo.scenariotreeserver=pyomo.pysp.scenariotree.server_pyro
- pyomo.computeconf=pyomo.pysp.computeconf
-
pyomo.help = pyomo.scripting.driver_help
pyomo.test.pyomo = pyomo.scripting.runtests
pyomo.pyro_mip_server = pyomo.scripting.pyro_mip_server
- pyomo.results_schema=pyomo.scripting.commands
pyomo.viewer=pyomo.contrib.viewer.pyomo_viewer
"""
)